From 68ffbc06c74b717946d1bcb3a7e433d5fb859c85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Coelho?= Date: Fri, 2 Aug 2019 14:16:43 +0100 Subject: [PATCH 001/123] explained a bit more the core_window_letterbox example (#925) --- examples/core/core_window_letterbox.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/core/core_window_letterbox.c b/examples/core/core_window_letterbox.c index 7ee1a8328..fe67fe0a0 100644 --- a/examples/core/core_window_letterbox.c +++ b/examples/core/core_window_letterbox.c @@ -29,7 +29,7 @@ int main(void) int gameScreenWidth = 640; int gameScreenHeight = 480; - // Render texture initialization + // Render texture initialization, used to hold the rendering result so we can easily resize it RenderTexture2D target = LoadRenderTexture(gameScreenWidth, gameScreenHeight); SetTextureFilter(target.texture, FILTER_BILINEAR); // Texture scale filter to use @@ -59,7 +59,7 @@ int main(void) BeginDrawing(); ClearBackground(BLACK); - // Draw everything in the render texture + // Draw everything in the render texture, note this will not be rendered on screen, yet BeginTextureMode(target); ClearBackground(RAYWHITE); // Clear render texture background color From 89c16baf182aed201b75b99a253c0b074ffffeed Mon Sep 17 00:00:00 2001 From: Leandro Gabriel <45115495+VelocityIsNotSpeed@users.noreply.github.com> Date: Sat, 3 Aug 2019 06:07:41 -0300 Subject: [PATCH 002/123] Replace tabs with spaces and update year of copyright notices (#927) * Update year of copyright notices * Fix mistake in comment * Fix typo ("algorythms") * Replace tabs with spaces * Remove trailing whitespace and fix mistake in comment * Fix ExportImageAsCode missing comment rectangle corner * Replace tab with spaces * Replace tabs with spaces --- examples/core/core_basic_window.cpp | 64 ++--- examples/network/network_ping_pong.c | 310 +++++++++++------------ examples/network/network_resolve_host.c | 56 ++-- examples/network/network_tcp_client.c | 174 ++++++------- examples/network/network_tcp_server.c | 198 +++++++-------- examples/network/network_test.c | 146 +++++------ examples/network/network_udp_client.c | 140 +++++----- examples/network/network_udp_server.c | 152 +++++------ examples/others/raudio_standalone.c | 36 +-- examples/shaders/shaders_texture_waves.c | 60 ++--- games/just_do/just_do.c | 4 +- games/koala_seasons/koala_seasons.c | 4 +- games/light_my_ritual/light_my_ritual.c | 8 +- games/skully_escape/player.c | 6 +- games/skully_escape/skully_escape.c | 12 +- games/transmission/transmission.c | 6 +- games/wave_collector/wave_collector.c | 6 +- projects/4coder/main.c | 56 ++-- projects/VSCode/main.c | 50 ++-- src/easings.h | 4 +- src/models.c | 8 +- src/raylib.h | 2 +- src/raymath.h | 72 +++--- src/rglfw.c | 2 +- src/textures.c | 5 +- 25 files changed, 791 insertions(+), 790 deletions(-) diff --git a/examples/core/core_basic_window.cpp b/examples/core/core_basic_window.cpp index fa12026a0..414f91852 100644 --- a/examples/core/core_basic_window.cpp +++ b/examples/core/core_basic_window.cpp @@ -23,40 +23,40 @@ int main(int argc, char* argv[]) { - // Initialization - //-------------------------------------------------------------------------------------- - int screenWidth = 800; - int screenHeight = 450; + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 800; + int screenHeight = 450; - InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window"); + InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window"); - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - // TODO: Update your variables here - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - CloseWindow(); // Close window and OpenGL context + SetTargetFPS(60); //-------------------------------------------------------------------------------------- - return 0; + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + // TODO: Update your variables here + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; } \ No newline at end of file diff --git a/examples/network/network_ping_pong.c b/examples/network/network_ping_pong.c index 719f6739e..684678c51 100644 --- a/examples/network/network_ping_pong.c +++ b/examples/network/network_ping_pong.c @@ -48,178 +48,178 @@ char recvBuffer[512]; // Attempt to connect to the network (Either TCP, or UDP) void NetworkConnect() { - // If the server is configured as UDP, ignore connection requests - if (server_cfg.type == SOCKET_UDP && client_cfg.type == SOCKET_UDP) { - ping = true; - connected = true; - } else { - // If the client is connected, run the server code to check for a connection - if (client_connected) { - int active = CheckSockets(socket_set, 0); - if (active != 0) { - TraceLog(LOG_DEBUG, - "There are currently %d socket(s) with data to be processed.", active); - } - if (active > 0) { - if ((connection = SocketAccept(server_res->socket, &connection_cfg)) != NULL) { - AddSocket(socket_set, connection); - ping = true; - connected = true; - } - } - } else { - // Check if we're connected every _delay_ seconds - elapsed += GetFrameTime(); - if (elapsed > delay) { - if (IsSocketConnected(client_res->socket)) { - client_connected = true; - } - elapsed = 0.0f; - } - } - } + // If the server is configured as UDP, ignore connection requests + if (server_cfg.type == SOCKET_UDP && client_cfg.type == SOCKET_UDP) { + ping = true; + connected = true; + } else { + // If the client is connected, run the server code to check for a connection + if (client_connected) { + int active = CheckSockets(socket_set, 0); + if (active != 0) { + TraceLog(LOG_DEBUG, + "There are currently %d socket(s) with data to be processed.", active); + } + if (active > 0) { + if ((connection = SocketAccept(server_res->socket, &connection_cfg)) != NULL) { + AddSocket(socket_set, connection); + ping = true; + connected = true; + } + } + } else { + // Check if we're connected every _delay_ seconds + elapsed += GetFrameTime(); + if (elapsed > delay) { + if (IsSocketConnected(client_res->socket)) { + client_connected = true; + } + elapsed = 0.0f; + } + } + } } // Once connected to the network, check the sockets for pending information // and when information is ready, send either a Ping or a Pong. void NetworkUpdate() { - // CheckSockets - // - // If any of the sockets in the socket_set are pending (received data, or requests) - // then mark the socket as being ready. You can check this with IsSocketReady(client_res->socket) - int active = CheckSockets(socket_set, 0); - if (active != 0) { - TraceLog(LOG_DEBUG, - "There are currently %d socket(s) with data to be processed.", active); - } + // CheckSockets + // + // If any of the sockets in the socket_set are pending (received data, or requests) + // then mark the socket as being ready. You can check this with IsSocketReady(client_res->socket) + int active = CheckSockets(socket_set, 0); + if (active != 0) { + TraceLog(LOG_DEBUG, + "There are currently %d socket(s) with data to be processed.", active); + } - // IsSocketReady - // - // If the socket is ready, attempt to receive data from the socket - int bytesRecv = 0; - if (server_cfg.type == SOCKET_UDP && client_cfg.type == SOCKET_UDP) { - if (IsSocketReady(client_res->socket)) { - bytesRecv = SocketReceive(client_res->socket, recvBuffer, msglen); - } - if (IsSocketReady(server_res->socket)) { - bytesRecv = SocketReceive(server_res->socket, recvBuffer, msglen); - } - } else { - if (IsSocketReady(connection)) { - bytesRecv = SocketReceive(connection, recvBuffer, msglen); - } - } + // IsSocketReady + // + // If the socket is ready, attempt to receive data from the socket + int bytesRecv = 0; + if (server_cfg.type == SOCKET_UDP && client_cfg.type == SOCKET_UDP) { + if (IsSocketReady(client_res->socket)) { + bytesRecv = SocketReceive(client_res->socket, recvBuffer, msglen); + } + if (IsSocketReady(server_res->socket)) { + bytesRecv = SocketReceive(server_res->socket, recvBuffer, msglen); + } + } else { + if (IsSocketReady(connection)) { + bytesRecv = SocketReceive(connection, recvBuffer, msglen); + } + } - // If we received data, was that data a "Ping!" or a "Pong!" - if (bytesRecv > 0) { - if (strcmp(recvBuffer, pingmsg) == 0) { pong = true; } - if (strcmp(recvBuffer, pongmsg) == 0) { ping = true; } - } + // If we received data, was that data a "Ping!" or a "Pong!" + if (bytesRecv > 0) { + if (strcmp(recvBuffer, pingmsg) == 0) { pong = true; } + if (strcmp(recvBuffer, pongmsg) == 0) { ping = true; } + } - // After each delay has expired, send a response "Ping!" for a "Pong!" and vice versa - elapsed += GetFrameTime(); - if (elapsed > delay) { - if (ping) { - ping = false; - if (server_cfg.type == SOCKET_UDP && client_cfg.type == SOCKET_UDP) { - SocketSend(client_res->socket, pingmsg, msglen); - } else { - SocketSend(client_res->socket, pingmsg, msglen); - } - } else if (pong) { - pong = false; - if (server_cfg.type == SOCKET_UDP && client_cfg.type == SOCKET_UDP) { - SocketSend(client_res->socket, pongmsg, msglen); - } else { - SocketSend(client_res->socket, pongmsg, msglen); - } - } - elapsed = 0.0f; - } + // After each delay has expired, send a response "Ping!" for a "Pong!" and vice versa + elapsed += GetFrameTime(); + if (elapsed > delay) { + if (ping) { + ping = false; + if (server_cfg.type == SOCKET_UDP && client_cfg.type == SOCKET_UDP) { + SocketSend(client_res->socket, pingmsg, msglen); + } else { + SocketSend(client_res->socket, pingmsg, msglen); + } + } else if (pong) { + pong = false; + if (server_cfg.type == SOCKET_UDP && client_cfg.type == SOCKET_UDP) { + SocketSend(client_res->socket, pongmsg, msglen); + } else { + SocketSend(client_res->socket, pongmsg, msglen); + } + } + elapsed = 0.0f; + } } int main() { - // Setup - int screenWidth = 800; - int screenHeight = 450; - InitWindow( - screenWidth, screenHeight, "raylib [network] example - ping pong"); - SetTargetFPS(60); - SetTraceLogLevel(LOG_DEBUG); + // Setup + int screenWidth = 800; + int screenHeight = 450; + InitWindow( + screenWidth, screenHeight, "raylib [network] example - ping pong"); + SetTargetFPS(60); + SetTraceLogLevel(LOG_DEBUG); - // Networking - InitNetwork(); + // Networking + InitNetwork(); - // Create the server - // - // Performs - // getaddrinfo - // socket - // setsockopt - // bind - // listen - server_res = AllocSocketResult(); - if (!SocketCreate(&server_cfg, server_res)) { - TraceLog(LOG_WARNING, "Failed to open server: status %d, errno %d", - server_res->status, server_res->socket->status); - } else { - if (!SocketBind(&server_cfg, server_res)) { - TraceLog(LOG_WARNING, "Failed to bind server: status %d, errno %d", - server_res->status, server_res->socket->status); - } else { - if (!(server_cfg.type == SOCKET_UDP)) { - if (!SocketListen(&server_cfg, server_res)) { - TraceLog(LOG_WARNING, - "Failed to start listen server: status %d, errno %d", - server_res->status, server_res->socket->status); - } - } - } - } + // Create the server + // + // Performs + // getaddrinfo + // socket + // setsockopt + // bind + // listen + server_res = AllocSocketResult(); + if (!SocketCreate(&server_cfg, server_res)) { + TraceLog(LOG_WARNING, "Failed to open server: status %d, errno %d", + server_res->status, server_res->socket->status); + } else { + if (!SocketBind(&server_cfg, server_res)) { + TraceLog(LOG_WARNING, "Failed to bind server: status %d, errno %d", + server_res->status, server_res->socket->status); + } else { + if (!(server_cfg.type == SOCKET_UDP)) { + if (!SocketListen(&server_cfg, server_res)) { + TraceLog(LOG_WARNING, + "Failed to start listen server: status %d, errno %d", + server_res->status, server_res->socket->status); + } + } + } + } - // Create the client - // - // Performs - // getaddrinfo - // socket - // setsockopt - // connect (TCP only) - client_res = AllocSocketResult(); - if (!SocketCreate(&client_cfg, client_res)) { - TraceLog(LOG_WARNING, "Failed to open client: status %d, errno %d", - client_res->status, client_res->socket->status); - } else { - if (!(client_cfg.type == SOCKET_UDP)) { - if (!SocketConnect(&client_cfg, client_res)) { - TraceLog(LOG_WARNING, - "Failed to connect to server: status %d, errno %d", - client_res->status, client_res->socket->status); - } - } - } + // Create the client + // + // Performs + // getaddrinfo + // socket + // setsockopt + // connect (TCP only) + client_res = AllocSocketResult(); + if (!SocketCreate(&client_cfg, client_res)) { + TraceLog(LOG_WARNING, "Failed to open client: status %d, errno %d", + client_res->status, client_res->socket->status); + } else { + if (!(client_cfg.type == SOCKET_UDP)) { + if (!SocketConnect(&client_cfg, client_res)) { + TraceLog(LOG_WARNING, + "Failed to connect to server: status %d, errno %d", + client_res->status, client_res->socket->status); + } + } + } - // Create & Add sockets to the socket set - socket_set = AllocSocketSet(3); - msglen = strlen(pingmsg) + 1; - memset(recvBuffer, '\0', sizeof(recvBuffer)); - AddSocket(socket_set, server_res->socket); - AddSocket(socket_set, client_res->socket); + // Create & Add sockets to the socket set + socket_set = AllocSocketSet(3); + msglen = strlen(pingmsg) + 1; + memset(recvBuffer, '\0', sizeof(recvBuffer)); + AddSocket(socket_set, server_res->socket); + AddSocket(socket_set, client_res->socket); - // Main game loop - while (!WindowShouldClose()) { - BeginDrawing(); - ClearBackground(RAYWHITE); - if (connected) { - NetworkUpdate(); - } else { - NetworkConnect(); - } - EndDrawing(); - } + // Main game loop + while (!WindowShouldClose()) { + BeginDrawing(); + ClearBackground(RAYWHITE); + if (connected) { + NetworkUpdate(); + } else { + NetworkConnect(); + } + EndDrawing(); + } - // Cleanup - CloseWindow(); - return 0; + // Cleanup + CloseWindow(); + return 0; } \ No newline at end of file diff --git a/examples/network/network_resolve_host.c b/examples/network/network_resolve_host.c index 195e03b52..45d6e4e9a 100644 --- a/examples/network/network_resolve_host.c +++ b/examples/network/network_resolve_host.c @@ -28,30 +28,30 @@ uint16_t port = 0; int main() { - // Setup - int screenWidth = 800; - int screenHeight = 450; - InitWindow( - screenWidth, screenHeight, "raylib [network] example - ping pong"); - SetTargetFPS(60); + // Setup + int screenWidth = 800; + int screenHeight = 450; + InitWindow( + screenWidth, screenHeight, "raylib [network] example - ping pong"); + SetTargetFPS(60); - SetTraceLogLevel(LOG_DEBUG); + SetTraceLogLevel(LOG_DEBUG); - // Networking - InitNetwork(); - + // Networking + InitNetwork(); + AddressInformation* addr = AllocAddressList(1); - int count = ResolveHost( - NULL, - "5210", - ADDRESS_TYPE_IPV4, + int count = ResolveHost( + NULL, + "5210", + ADDRESS_TYPE_IPV4, 0 // Uncomment any of these flags // ADDRESS_INFO_NUMERICHOST // or try them in conjunction to // ADDRESS_INFO_NUMERICSERV // specify custom behaviour from // ADDRESS_INFO_DNS_ONLY // the function getaddrinfo() // ADDRESS_INFO_ALL // // ADDRESS_INFO_FQDN // e.g. ADDRESS_INFO_CANONNAME | ADDRESS_INFO_NUMERICSERV - , + , addr ); @@ -61,20 +61,20 @@ int main() TraceLog(LOG_INFO, "Resolved to ip %s::%d\n", buffer, port); } - // Main game loop - while (!WindowShouldClose()) - { - // Draw - BeginDrawing(); + // Main game loop + while (!WindowShouldClose()) + { + // Draw + BeginDrawing(); - // Clear - ClearBackground(RAYWHITE); + // Clear + ClearBackground(RAYWHITE); - // End draw - EndDrawing(); - } + // End draw + EndDrawing(); + } - // Cleanup - CloseWindow(); - return 0; + // Cleanup + CloseWindow(); + return 0; } \ No newline at end of file diff --git a/examples/network/network_tcp_client.c b/examples/network/network_tcp_client.c index 6eed205ae..3f69dcd28 100644 --- a/examples/network/network_tcp_client.c +++ b/examples/network/network_tcp_client.c @@ -43,109 +43,109 @@ char recvBuffer[512]; // Attempt to connect to the network (Either TCP, or UDP) void NetworkConnect() { - // Check if we're connected every _delay_ seconds - elapsed += GetFrameTime(); - if (elapsed > delay) { - if (IsSocketConnected(client_res->socket)) { connected = true; } - elapsed = 0.0f; - } + // Check if we're connected every _delay_ seconds + elapsed += GetFrameTime(); + if (elapsed > delay) { + if (IsSocketConnected(client_res->socket)) { connected = true; } + elapsed = 0.0f; + } } // Once connected to the network, check the sockets for pending information // and when information is ready, send either a Ping or a Pong. void NetworkUpdate() { - // CheckSockets - // - // If any of the sockets in the socket_set are pending (received data, or requests) - // then mark the socket as being ready. You can check this with IsSocketReady(client_res->socket) - int active = CheckSockets(socket_set, 0); - if (active != 0) { - TraceLog(LOG_DEBUG, - "There are currently %d socket(s) with data to be processed.", active); - } + // CheckSockets + // + // If any of the sockets in the socket_set are pending (received data, or requests) + // then mark the socket as being ready. You can check this with IsSocketReady(client_res->socket) + int active = CheckSockets(socket_set, 0); + if (active != 0) { + TraceLog(LOG_DEBUG, + "There are currently %d socket(s) with data to be processed.", active); + } - // IsSocketReady - // - // If the socket is ready, attempt to receive data from the socket - int bytesRecv = 0; - if (IsSocketReady(client_res->socket)) { - bytesRecv = SocketReceive(client_res->socket, recvBuffer, msglen); - } + // IsSocketReady + // + // If the socket is ready, attempt to receive data from the socket + int bytesRecv = 0; + if (IsSocketReady(client_res->socket)) { + bytesRecv = SocketReceive(client_res->socket, recvBuffer, msglen); + } - // If we received data, was that data a "Ping!" or a "Pong!" - if (bytesRecv > 0) { - if (strcmp(recvBuffer, pingmsg) == 0) { pong = true; } - if (strcmp(recvBuffer, pongmsg) == 0) { ping = true; } - } + // If we received data, was that data a "Ping!" or a "Pong!" + if (bytesRecv > 0) { + if (strcmp(recvBuffer, pingmsg) == 0) { pong = true; } + if (strcmp(recvBuffer, pongmsg) == 0) { ping = true; } + } - // After each delay has expired, send a response "Ping!" for a "Pong!" and vice versa - elapsed += GetFrameTime(); - if (elapsed > delay) { - if (ping) { - ping = false; - SocketSend(client_res->socket, pingmsg, msglen); - } else if (pong) { - pong = false; - SocketSend(client_res->socket, pongmsg, msglen); - } - elapsed = 0.0f; - } + // After each delay has expired, send a response "Ping!" for a "Pong!" and vice versa + elapsed += GetFrameTime(); + if (elapsed > delay) { + if (ping) { + ping = false; + SocketSend(client_res->socket, pingmsg, msglen); + } else if (pong) { + pong = false; + SocketSend(client_res->socket, pongmsg, msglen); + } + elapsed = 0.0f; + } } int main() { - // Setup - int screenWidth = 800; - int screenHeight = 450; - InitWindow( - screenWidth, screenHeight, "raylib [network] example - tcp client"); - SetTargetFPS(60); - SetTraceLogLevel(LOG_DEBUG); + // Setup + int screenWidth = 800; + int screenHeight = 450; + InitWindow( + screenWidth, screenHeight, "raylib [network] example - tcp client"); + SetTargetFPS(60); + SetTraceLogLevel(LOG_DEBUG); - // Networking - InitNetwork(); + // Networking + InitNetwork(); - // Create the client - // - // Performs - // getaddrinfo - // socket - // setsockopt - // connect (TCP only) - client_res = AllocSocketResult(); - if (!SocketCreate(&client_cfg, client_res)) { - TraceLog(LOG_WARNING, "Failed to open client: status %d, errno %d", - client_res->status, client_res->socket->status); - } else { - if (!(client_cfg.type == SOCKET_UDP)) { - if (!SocketConnect(&client_cfg, client_res)) { - TraceLog(LOG_WARNING, - "Failed to connect to server: status %d, errno %d", - client_res->status, client_res->socket->status); - } - } - } + // Create the client + // + // Performs + // getaddrinfo + // socket + // setsockopt + // connect (TCP only) + client_res = AllocSocketResult(); + if (!SocketCreate(&client_cfg, client_res)) { + TraceLog(LOG_WARNING, "Failed to open client: status %d, errno %d", + client_res->status, client_res->socket->status); + } else { + if (!(client_cfg.type == SOCKET_UDP)) { + if (!SocketConnect(&client_cfg, client_res)) { + TraceLog(LOG_WARNING, + "Failed to connect to server: status %d, errno %d", + client_res->status, client_res->socket->status); + } + } + } - // Create & Add sockets to the socket set - socket_set = AllocSocketSet(1); - msglen = strlen(pingmsg) + 1; - memset(recvBuffer, '\0', sizeof(recvBuffer)); - AddSocket(socket_set, client_res->socket); + // Create & Add sockets to the socket set + socket_set = AllocSocketSet(1); + msglen = strlen(pingmsg) + 1; + memset(recvBuffer, '\0', sizeof(recvBuffer)); + AddSocket(socket_set, client_res->socket); - // Main game loop - while (!WindowShouldClose()) { - BeginDrawing(); - ClearBackground(RAYWHITE); - if (connected) { - NetworkUpdate(); - } else { - NetworkConnect(); - } - EndDrawing(); - } + // Main game loop + while (!WindowShouldClose()) { + BeginDrawing(); + ClearBackground(RAYWHITE); + if (connected) { + NetworkUpdate(); + } else { + NetworkConnect(); + } + EndDrawing(); + } - // Cleanup - CloseWindow(); - return 0; + // Cleanup + CloseWindow(); + return 0; } \ No newline at end of file diff --git a/examples/network/network_tcp_server.c b/examples/network/network_tcp_server.c index 89e9c1810..e93687260 100644 --- a/examples/network/network_tcp_server.c +++ b/examples/network/network_tcp_server.c @@ -45,121 +45,121 @@ char recvBuffer[512]; // Attempt to connect to the network (Either TCP, or UDP) void NetworkConnect() { - int active = CheckSockets(socket_set, 0); - if (active != 0) { - TraceLog(LOG_DEBUG, - "There are currently %d socket(s) with data to be processed.", active); - } - if (active > 0) { - if ((connection = SocketAccept(server_res->socket, &connection_cfg)) != NULL) { - AddSocket(socket_set, connection); - ping = true; - connected = true; - } - } + int active = CheckSockets(socket_set, 0); + if (active != 0) { + TraceLog(LOG_DEBUG, + "There are currently %d socket(s) with data to be processed.", active); + } + if (active > 0) { + if ((connection = SocketAccept(server_res->socket, &connection_cfg)) != NULL) { + AddSocket(socket_set, connection); + ping = true; + connected = true; + } + } } // Once connected to the network, check the sockets for pending information // and when information is ready, send either a Ping or a Pong. void NetworkUpdate() { - // CheckSockets - // - // If any of the sockets in the socket_set are pending (received data, or requests) - // then mark the socket as being ready. You can check this with IsSocketReady(client_res->socket) - int active = CheckSockets(socket_set, 0); - if (active != 0) { - TraceLog(LOG_DEBUG, - "There are currently %d socket(s) with data to be processed.", active); - } + // CheckSockets + // + // If any of the sockets in the socket_set are pending (received data, or requests) + // then mark the socket as being ready. You can check this with IsSocketReady(client_res->socket) + int active = CheckSockets(socket_set, 0); + if (active != 0) { + TraceLog(LOG_DEBUG, + "There are currently %d socket(s) with data to be processed.", active); + } - // IsSocketReady - // - // If the socket is ready, attempt to receive data from the socket - int bytesRecv = 0; - if (IsSocketReady(connection)) { - bytesRecv = SocketReceive(connection, recvBuffer, msglen); - } + // IsSocketReady + // + // If the socket is ready, attempt to receive data from the socket + int bytesRecv = 0; + if (IsSocketReady(connection)) { + bytesRecv = SocketReceive(connection, recvBuffer, msglen); + } - // If we received data, was that data a "Ping!" or a "Pong!" - if (bytesRecv > 0) { - if (strcmp(recvBuffer, pingmsg) == 0) { pong = true; } - if (strcmp(recvBuffer, pongmsg) == 0) { ping = true; } - } + // If we received data, was that data a "Ping!" or a "Pong!" + if (bytesRecv > 0) { + if (strcmp(recvBuffer, pingmsg) == 0) { pong = true; } + if (strcmp(recvBuffer, pongmsg) == 0) { ping = true; } + } - // After each delay has expired, send a response "Ping!" for a "Pong!" and vice versa - elapsed += GetFrameTime(); - if (elapsed > delay) { - if (ping) { - ping = false; - SocketSend(connection, pingmsg, msglen); - } else if (pong) { - pong = false; - SocketSend(connection, pongmsg, msglen); - } - elapsed = 0.0f; - } + // After each delay has expired, send a response "Ping!" for a "Pong!" and vice versa + elapsed += GetFrameTime(); + if (elapsed > delay) { + if (ping) { + ping = false; + SocketSend(connection, pingmsg, msglen); + } else if (pong) { + pong = false; + SocketSend(connection, pongmsg, msglen); + } + elapsed = 0.0f; + } } int main() { - // Setup - int screenWidth = 800; - int screenHeight = 450; - InitWindow( - screenWidth, screenHeight, "raylib [network] example - tcp server"); - SetTargetFPS(60); - SetTraceLogLevel(LOG_DEBUG); + // Setup + int screenWidth = 800; + int screenHeight = 450; + InitWindow( + screenWidth, screenHeight, "raylib [network] example - tcp server"); + SetTargetFPS(60); + SetTraceLogLevel(LOG_DEBUG); - // Networking - InitNetwork(); + // Networking + InitNetwork(); - // Create the server - // - // Performs - // getaddrinfo - // socket - // setsockopt - // bind - // listen - server_res = AllocSocketResult(); - if (!SocketCreate(&server_cfg, server_res)) { - TraceLog(LOG_WARNING, "Failed to open server: status %d, errno %d", - server_res->status, server_res->socket->status); - } else { - if (!SocketBind(&server_cfg, server_res)) { - TraceLog(LOG_WARNING, "Failed to bind server: status %d, errno %d", - server_res->status, server_res->socket->status); - } else { - if (!(server_cfg.type == SOCKET_UDP)) { - if (!SocketListen(&server_cfg, server_res)) { - TraceLog(LOG_WARNING, - "Failed to start listen server: status %d, errno %d", - server_res->status, server_res->socket->status); - } - } - } - } + // Create the server + // + // Performs + // getaddrinfo + // socket + // setsockopt + // bind + // listen + server_res = AllocSocketResult(); + if (!SocketCreate(&server_cfg, server_res)) { + TraceLog(LOG_WARNING, "Failed to open server: status %d, errno %d", + server_res->status, server_res->socket->status); + } else { + if (!SocketBind(&server_cfg, server_res)) { + TraceLog(LOG_WARNING, "Failed to bind server: status %d, errno %d", + server_res->status, server_res->socket->status); + } else { + if (!(server_cfg.type == SOCKET_UDP)) { + if (!SocketListen(&server_cfg, server_res)) { + TraceLog(LOG_WARNING, + "Failed to start listen server: status %d, errno %d", + server_res->status, server_res->socket->status); + } + } + } + } - // Create & Add sockets to the socket set - socket_set = AllocSocketSet(2); - msglen = strlen(pingmsg) + 1; - memset(recvBuffer, '\0', sizeof(recvBuffer)); - AddSocket(socket_set, server_res->socket); + // Create & Add sockets to the socket set + socket_set = AllocSocketSet(2); + msglen = strlen(pingmsg) + 1; + memset(recvBuffer, '\0', sizeof(recvBuffer)); + AddSocket(socket_set, server_res->socket); - // Main game loop - while (!WindowShouldClose()) { - BeginDrawing(); - ClearBackground(RAYWHITE); - if (connected) { - NetworkUpdate(); - } else { - NetworkConnect(); - } - EndDrawing(); - } + // Main game loop + while (!WindowShouldClose()) { + BeginDrawing(); + ClearBackground(RAYWHITE); + if (connected) { + NetworkUpdate(); + } else { + NetworkConnect(); + } + EndDrawing(); + } - // Cleanup - CloseWindow(); - return 0; + // Cleanup + CloseWindow(); + return 0; } \ No newline at end of file diff --git a/examples/network/network_test.c b/examples/network/network_test.c index f18a8b13c..56d9095ed 100644 --- a/examples/network/network_test.c +++ b/examples/network/network_test.c @@ -27,80 +27,80 @@ void test_network_initialise() { - assert(InitNetwork() == true); + assert(InitNetwork() == true); } void test_socket_result() { - SocketResult *result = AllocSocketResult(); - assert(result != NULL); - FreeSocketResult(&result); - assert(result == NULL); + SocketResult *result = AllocSocketResult(); + assert(result != NULL); + FreeSocketResult(&result); + assert(result == NULL); } void test_socket() { - Socket *socket = AllocSocket(); - assert(socket != NULL); - FreeSocket(&socket); - assert(socket == NULL); + Socket *socket = AllocSocket(); + assert(socket != NULL); + FreeSocket(&socket); + assert(socket == NULL); } void test_resolve_ip() { - const char *host = "8.8.8.8"; - const char *port = "8080"; - char ip[ADDRESS_IPV6_ADDRSTRLEN]; + const char *host = "8.8.8.8"; + const char *port = "8080"; + char ip[ADDRESS_IPV6_ADDRSTRLEN]; char service[ADDRESS_MAXSERV]; - memset(ip, '\0', ADDRESS_IPV6_ADDRSTRLEN); - ResolveIP(host, port, NAME_INFO_NUMERICHOST, ip, service); - TraceLog(LOG_INFO, "Resolved %s to %s", host, ip); - assert(strcmp(ip, "8.8.8.8") == 0); + memset(ip, '\0', ADDRESS_IPV6_ADDRSTRLEN); + ResolveIP(host, port, NAME_INFO_NUMERICHOST, ip, service); + TraceLog(LOG_INFO, "Resolved %s to %s", host, ip); + assert(strcmp(ip, "8.8.8.8") == 0); - memset(ip, '\0', ADDRESS_IPV6_ADDRSTRLEN); - ResolveIP(host, port, NAME_INFO_DEFAULT, ip, service); - TraceLog(LOG_INFO, "Resolved %s to %s", host, ip); - assert(strcmp(ip, "google-public-dns-a.google.com") == 0); + memset(ip, '\0', ADDRESS_IPV6_ADDRSTRLEN); + ResolveIP(host, port, NAME_INFO_DEFAULT, ip, service); + TraceLog(LOG_INFO, "Resolved %s to %s", host, ip); + assert(strcmp(ip, "google-public-dns-a.google.com") == 0); - memset(ip, '\0', ADDRESS_IPV6_ADDRSTRLEN); - ResolveIP(host, port, NAME_INFO_NOFQDN, ip, service); - TraceLog(LOG_INFO, "Resolved %s to %s", host, ip); - assert(strcmp(ip, "google-public-dns-a") == 0); + memset(ip, '\0', ADDRESS_IPV6_ADDRSTRLEN); + ResolveIP(host, port, NAME_INFO_NOFQDN, ip, service); + TraceLog(LOG_INFO, "Resolved %s to %s", host, ip); + assert(strcmp(ip, "google-public-dns-a") == 0); - memset(ip, '\0', ADDRESS_IPV6_ADDRSTRLEN); - ResolveIP(host, port, NAME_INFO_NUMERICHOST, ip, service); - TraceLog(LOG_INFO, "Resolved %s to %s", host, ip); - assert(strcmp(ip, "8.8.8.8") == 0); + memset(ip, '\0', ADDRESS_IPV6_ADDRSTRLEN); + ResolveIP(host, port, NAME_INFO_NUMERICHOST, ip, service); + TraceLog(LOG_INFO, "Resolved %s to %s", host, ip); + assert(strcmp(ip, "8.8.8.8") == 0); - memset(ip, '\0', ADDRESS_IPV6_ADDRSTRLEN); - ResolveIP(host, port, NAME_INFO_NAMEREQD, ip, service); - TraceLog(LOG_INFO, "Resolved %s to %s", host, ip); - assert(strcmp(ip, "google-public-dns-a.google.com") == 0); + memset(ip, '\0', ADDRESS_IPV6_ADDRSTRLEN); + ResolveIP(host, port, NAME_INFO_NAMEREQD, ip, service); + TraceLog(LOG_INFO, "Resolved %s to %s", host, ip); + assert(strcmp(ip, "google-public-dns-a.google.com") == 0); - memset(ip, '\0', ADDRESS_IPV6_ADDRSTRLEN); - ResolveIP(host, port, NAME_INFO_NUMERICSERV, ip, service); - TraceLog(LOG_INFO, "Resolved %s to %s", host, ip); - assert(strcmp(ip, "google-public-dns-a.google.com") == 0); + memset(ip, '\0', ADDRESS_IPV6_ADDRSTRLEN); + ResolveIP(host, port, NAME_INFO_NUMERICSERV, ip, service); + TraceLog(LOG_INFO, "Resolved %s to %s", host, ip); + assert(strcmp(ip, "google-public-dns-a.google.com") == 0); - memset(ip, '\0', ADDRESS_IPV6_ADDRSTRLEN); - ResolveIP(host, port, NAME_INFO_DGRAM, ip, service); - TraceLog(LOG_INFO, "Resolved %s to %s", host, ip); - assert(strcmp(ip, "google-public-dns-a.google.com") == 0); + memset(ip, '\0', ADDRESS_IPV6_ADDRSTRLEN); + ResolveIP(host, port, NAME_INFO_DGRAM, ip, service); + TraceLog(LOG_INFO, "Resolved %s to %s", host, ip); + assert(strcmp(ip, "google-public-dns-a.google.com") == 0); } void test_resolve_host() { - const char * address = "localhost"; - const char * port = "80"; - AddressInformation *addr = AllocAddressList(3); - int count = ResolveHost(address, port, ADDRESS_TYPE_ANY, 0, addr); + const char * address = "localhost"; + const char * port = "80"; + AddressInformation *addr = AllocAddressList(3); + int count = ResolveHost(address, port, ADDRESS_TYPE_ANY, 0, addr); - assert(GetAddressFamily(addr[0]) == ADDRESS_TYPE_IPV6); - assert(GetAddressFamily(addr[1]) == ADDRESS_TYPE_IPV4); - assert(GetAddressSocketType(addr[0]) == 0); - assert(GetAddressProtocol(addr[0]) == 0); - // for (size_t i = 0; i < count; i++) { PrintAddressInfo(addr[i]); } + assert(GetAddressFamily(addr[0]) == ADDRESS_TYPE_IPV6); + assert(GetAddressFamily(addr[1]) == ADDRESS_TYPE_IPV4); + assert(GetAddressSocketType(addr[0]) == 0); + assert(GetAddressProtocol(addr[0]) == 0); + // for (size_t i = 0; i < count; i++) { PrintAddressInfo(addr[i]); } } void test_address() @@ -113,36 +113,36 @@ void test_address_list() void test_socket_create() { - SocketConfig server_cfg = {.host = "127.0.0.1", .port = "8080", .server = true, .nonblocking = true}; - Socket * socket = AllocSocket(); - SocketResult *server_res = AllocSocketResult(); - SocketSet * socket_set = AllocSocketSet(1); - assert(SocketCreate(&server_cfg, server_res)); - assert(AddSocket(socket_set, server_res->socket)); - assert(SocketListen(&server_cfg, server_res)); + SocketConfig server_cfg = {.host = "127.0.0.1", .port = "8080", .server = true, .nonblocking = true}; + Socket * socket = AllocSocket(); + SocketResult *server_res = AllocSocketResult(); + SocketSet * socket_set = AllocSocketSet(1); + assert(SocketCreate(&server_cfg, server_res)); + assert(AddSocket(socket_set, server_res->socket)); + assert(SocketListen(&server_cfg, server_res)); } int main() { - int screenWidth = 800; - int screenHeight = 450; - InitWindow( - screenWidth, screenHeight, "raylib [network] example - network test"); - SetTargetFPS(60); + int screenWidth = 800; + int screenHeight = 450; + InitWindow( + screenWidth, screenHeight, "raylib [network] example - network test"); + SetTargetFPS(60); - // Run the tests - test_network_initialise(); - test_resolve_host(); + // Run the tests + test_network_initialise(); + test_resolve_host(); // test_socket_create(); - // Main game loop - while (!WindowShouldClose()) { - BeginDrawing(); - ClearBackground(RAYWHITE); - DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY); - EndDrawing(); - } - CloseWindow(); + // Main game loop + while (!WindowShouldClose()) { + BeginDrawing(); + ClearBackground(RAYWHITE); + DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY); + EndDrawing(); + } + CloseWindow(); - return 0; + return 0; } \ No newline at end of file diff --git a/examples/network/network_udp_client.c b/examples/network/network_udp_client.c index c1c89c8db..fbc0589fb 100644 --- a/examples/network/network_udp_client.c +++ b/examples/network/network_udp_client.c @@ -43,86 +43,86 @@ char recvBuffer[512]; // and when information is ready, send either a Ping or a Pong. void NetworkUpdate() { - // CheckSockets - // - // If any of the sockets in the socket_set are pending (received data, or requests) - // then mark the socket as being ready. You can check this with IsSocketReady(client_res->socket) - int active = CheckSockets(socket_set, 0); - if (active != 0) { - TraceLog(LOG_DEBUG, - "There are currently %d socket(s) with data to be processed.", active); - } + // CheckSockets + // + // If any of the sockets in the socket_set are pending (received data, or requests) + // then mark the socket as being ready. You can check this with IsSocketReady(client_res->socket) + int active = CheckSockets(socket_set, 0); + if (active != 0) { + TraceLog(LOG_DEBUG, + "There are currently %d socket(s) with data to be processed.", active); + } - // IsSocketReady - // - // If the socket is ready, attempt to receive data from the socket - int bytesRecv = 0; - if (IsSocketReady(client_res->socket)) { - bytesRecv = SocketReceive(client_res->socket, recvBuffer, msglen); - } + // IsSocketReady + // + // If the socket is ready, attempt to receive data from the socket + int bytesRecv = 0; + if (IsSocketReady(client_res->socket)) { + bytesRecv = SocketReceive(client_res->socket, recvBuffer, msglen); + } - // If we received data, was that data a "Ping!" or a "Pong!" - if (bytesRecv > 0) { - if (strcmp(recvBuffer, pingmsg) == 0) { pong = true; } - if (strcmp(recvBuffer, pongmsg) == 0) { ping = true; } - } + // If we received data, was that data a "Ping!" or a "Pong!" + if (bytesRecv > 0) { + if (strcmp(recvBuffer, pingmsg) == 0) { pong = true; } + if (strcmp(recvBuffer, pongmsg) == 0) { ping = true; } + } - // After each delay has expired, send a response "Ping!" for a "Pong!" and vice versa - elapsed += GetFrameTime(); - if (elapsed > delay) { - if (ping) { - ping = false; - SocketSend(client_res->socket, pingmsg, msglen); - } else if (pong) { - pong = false; - SocketSend(client_res->socket, pongmsg, msglen); - } - elapsed = 0.0f; - } + // After each delay has expired, send a response "Ping!" for a "Pong!" and vice versa + elapsed += GetFrameTime(); + if (elapsed > delay) { + if (ping) { + ping = false; + SocketSend(client_res->socket, pingmsg, msglen); + } else if (pong) { + pong = false; + SocketSend(client_res->socket, pongmsg, msglen); + } + elapsed = 0.0f; + } } int main() { - // Setup - int screenWidth = 800; - int screenHeight = 450; - InitWindow( - screenWidth, screenHeight, "raylib [network] example - udp client"); - SetTargetFPS(60); - SetTraceLogLevel(LOG_DEBUG); + // Setup + int screenWidth = 800; + int screenHeight = 450; + InitWindow( + screenWidth, screenHeight, "raylib [network] example - udp client"); + SetTargetFPS(60); + SetTraceLogLevel(LOG_DEBUG); - // Networking - InitNetwork(); + // Networking + InitNetwork(); - // Create the client - // - // Performs - // getaddrinfo - // socket - // setsockopt - // connect (TCP only) - client_res = AllocSocketResult(); - if (!SocketCreate(&client_cfg, client_res)) { - TraceLog(LOG_WARNING, "Failed to open client: status %d, errno %d", - client_res->status, client_res->socket->status); - } + // Create the client + // + // Performs + // getaddrinfo + // socket + // setsockopt + // connect (TCP only) + client_res = AllocSocketResult(); + if (!SocketCreate(&client_cfg, client_res)) { + TraceLog(LOG_WARNING, "Failed to open client: status %d, errno %d", + client_res->status, client_res->socket->status); + } - // Create & Add sockets to the socket set - socket_set = AllocSocketSet(1); - msglen = strlen(pingmsg) + 1; - ping = true; - memset(recvBuffer, '\0', sizeof(recvBuffer)); - AddSocket(socket_set, client_res->socket); + // Create & Add sockets to the socket set + socket_set = AllocSocketSet(1); + msglen = strlen(pingmsg) + 1; + ping = true; + memset(recvBuffer, '\0', sizeof(recvBuffer)); + AddSocket(socket_set, client_res->socket); - // Main game loop - while (!WindowShouldClose()) { - BeginDrawing(); - ClearBackground(RAYWHITE); - NetworkUpdate(); - EndDrawing(); - } + // Main game loop + while (!WindowShouldClose()) { + BeginDrawing(); + ClearBackground(RAYWHITE); + NetworkUpdate(); + EndDrawing(); + } - // Cleanup - CloseWindow(); - return 0; + // Cleanup + CloseWindow(); + return 0; } \ No newline at end of file diff --git a/examples/network/network_udp_server.c b/examples/network/network_udp_server.c index 982cdf633..5ab45bb5c 100644 --- a/examples/network/network_udp_server.c +++ b/examples/network/network_udp_server.c @@ -43,92 +43,92 @@ char recvBuffer[512]; // and when information is ready, send either a Ping or a Pong. void NetworkUpdate() { - // CheckSockets - // - // If any of the sockets in the socket_set are pending (received data, or requests) - // then mark the socket as being ready. You can check this with IsSocketReady(client_res->socket) - int active = CheckSockets(socket_set, 0); - if (active != 0) { - TraceLog(LOG_DEBUG, - "There are currently %d socket(s) with data to be processed.", active); - } + // CheckSockets + // + // If any of the sockets in the socket_set are pending (received data, or requests) + // then mark the socket as being ready. You can check this with IsSocketReady(client_res->socket) + int active = CheckSockets(socket_set, 0); + if (active != 0) { + TraceLog(LOG_DEBUG, + "There are currently %d socket(s) with data to be processed.", active); + } - // IsSocketReady - // - // If the socket is ready, attempt to receive data from the socket - // int bytesRecv = 0; - // if (IsSocketReady(server_res->socket)) { - // bytesRecv = SocketReceive(server_res->socket, recvBuffer, msglen); - // } - int bytesRecv = SocketReceive(server_res->socket, recvBuffer, msglen); + // IsSocketReady + // + // If the socket is ready, attempt to receive data from the socket + // int bytesRecv = 0; + // if (IsSocketReady(server_res->socket)) { + // bytesRecv = SocketReceive(server_res->socket, recvBuffer, msglen); + // } + int bytesRecv = SocketReceive(server_res->socket, recvBuffer, msglen); - // If we received data, was that data a "Ping!" or a "Pong!" - if (bytesRecv > 0) { - if (strcmp(recvBuffer, pingmsg) == 0) { pong = true; } - if (strcmp(recvBuffer, pongmsg) == 0) { ping = true; } - } + // If we received data, was that data a "Ping!" or a "Pong!" + if (bytesRecv > 0) { + if (strcmp(recvBuffer, pingmsg) == 0) { pong = true; } + if (strcmp(recvBuffer, pongmsg) == 0) { ping = true; } + } - // After each delay has expired, send a response "Ping!" for a "Pong!" and vice versa - elapsed += GetFrameTime(); - if (elapsed > delay) { - if (ping) { - ping = false; - SocketSend(server_res->socket, pingmsg, msglen); - } else if (pong) { - pong = false; - SocketSend(server_res->socket, pongmsg, msglen); - } - elapsed = 0.0f; - } + // After each delay has expired, send a response "Ping!" for a "Pong!" and vice versa + elapsed += GetFrameTime(); + if (elapsed > delay) { + if (ping) { + ping = false; + SocketSend(server_res->socket, pingmsg, msglen); + } else if (pong) { + pong = false; + SocketSend(server_res->socket, pongmsg, msglen); + } + elapsed = 0.0f; + } } int main() { - // Setup - int screenWidth = 800; - int screenHeight = 450; - InitWindow( - screenWidth, screenHeight, "raylib [network] example - udp server"); - SetTargetFPS(60); - SetTraceLogLevel(LOG_DEBUG); + // Setup + int screenWidth = 800; + int screenHeight = 450; + InitWindow( + screenWidth, screenHeight, "raylib [network] example - udp server"); + SetTargetFPS(60); + SetTraceLogLevel(LOG_DEBUG); - // Networking - InitNetwork(); + // Networking + InitNetwork(); - // Create the server - // - // Performs - // getaddrinfo - // socket - // setsockopt - // bind - // listen - server_res = AllocSocketResult(); - if (!SocketCreate(&server_cfg, server_res)) { - TraceLog(LOG_WARNING, "Failed to open server: status %d, errno %d", - server_res->status, server_res->socket->status); - } else { - if (!SocketBind(&server_cfg, server_res)) { - TraceLog(LOG_WARNING, "Failed to bind server: status %d, errno %d", - server_res->status, server_res->socket->status); - } - } + // Create the server + // + // Performs + // getaddrinfo + // socket + // setsockopt + // bind + // listen + server_res = AllocSocketResult(); + if (!SocketCreate(&server_cfg, server_res)) { + TraceLog(LOG_WARNING, "Failed to open server: status %d, errno %d", + server_res->status, server_res->socket->status); + } else { + if (!SocketBind(&server_cfg, server_res)) { + TraceLog(LOG_WARNING, "Failed to bind server: status %d, errno %d", + server_res->status, server_res->socket->status); + } + } - // Create & Add sockets to the socket set - socket_set = AllocSocketSet(1); - msglen = strlen(pingmsg) + 1; - memset(recvBuffer, '\0', sizeof(recvBuffer)); - AddSocket(socket_set, server_res->socket); + // Create & Add sockets to the socket set + socket_set = AllocSocketSet(1); + msglen = strlen(pingmsg) + 1; + memset(recvBuffer, '\0', sizeof(recvBuffer)); + AddSocket(socket_set, server_res->socket); - // Main game loop - while (!WindowShouldClose()) { - BeginDrawing(); - ClearBackground(RAYWHITE); - NetworkUpdate(); - EndDrawing(); - } + // Main game loop + while (!WindowShouldClose()) { + BeginDrawing(); + ClearBackground(RAYWHITE); + NetworkUpdate(); + EndDrawing(); + } - // Cleanup - CloseWindow(); - return 0; + // Cleanup + CloseWindow(); + return 0; } \ No newline at end of file diff --git a/examples/others/raudio_standalone.c b/examples/others/raudio_standalone.c index 63d5b8d28..9122c3210 100644 --- a/examples/others/raudio_standalone.c +++ b/examples/others/raudio_standalone.c @@ -58,29 +58,29 @@ // Check if a key has been pressed static int kbhit(void) { - struct termios oldt, newt; - int ch; - int oldf; + struct termios oldt, newt; + int ch; + int oldf; - tcgetattr(STDIN_FILENO, &oldt); - newt = oldt; - newt.c_lflag &= ~(ICANON | ECHO); - tcsetattr(STDIN_FILENO, TCSANOW, &newt); - oldf = fcntl(STDIN_FILENO, F_GETFL, 0); - fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK); + tcgetattr(STDIN_FILENO, &oldt); + newt = oldt; + newt.c_lflag &= ~(ICANON | ECHO); + tcsetattr(STDIN_FILENO, TCSANOW, &newt); + oldf = fcntl(STDIN_FILENO, F_GETFL, 0); + fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK); - ch = getchar(); + ch = getchar(); - tcsetattr(STDIN_FILENO, TCSANOW, &oldt); - fcntl(STDIN_FILENO, F_SETFL, oldf); + tcsetattr(STDIN_FILENO, TCSANOW, &oldt); + fcntl(STDIN_FILENO, F_SETFL, oldf); - if (ch != EOF) - { - ungetc(ch, stdin); - return 1; - } + if (ch != EOF) + { + ungetc(ch, stdin); + return 1; + } - return 0; + return 0; } // Get pressed character diff --git a/examples/shaders/shaders_texture_waves.c b/examples/shaders/shaders_texture_waves.c index 07186d379..c04503614 100644 --- a/examples/shaders/shaders_texture_waves.c +++ b/examples/shaders/shaders_texture_waves.c @@ -33,38 +33,38 @@ int main(void) const int screenWidth = 800; const int screenHeight = 450; - InitWindow(screenWidth, screenHeight, "raylib [shaders] example - texture waves"); - + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - texture waves"); + // Load texture texture to apply shaders - Texture2D texture = LoadTexture("resources/space.png"); - + Texture2D texture = LoadTexture("resources/space.png"); + // Load shader and setup location points and values Shader shader = LoadShader(0, FormatText("resources/shaders/glsl%i/wave.fs", GLSL_VERSION)); - int secondsLoc = GetShaderLocation(shader, "secondes"); - int freqXLoc = GetShaderLocation(shader, "freqX"); - int freqYLoc = GetShaderLocation(shader, "freqY"); - int ampXLoc = GetShaderLocation(shader, "ampX"); - int ampYLoc = GetShaderLocation(shader, "ampY"); - int speedXLoc = GetShaderLocation(shader, "speedX"); - int speedYLoc = GetShaderLocation(shader, "speedY"); + int secondsLoc = GetShaderLocation(shader, "secondes"); + int freqXLoc = GetShaderLocation(shader, "freqX"); + int freqYLoc = GetShaderLocation(shader, "freqY"); + int ampXLoc = GetShaderLocation(shader, "ampX"); + int ampYLoc = GetShaderLocation(shader, "ampY"); + int speedXLoc = GetShaderLocation(shader, "speedX"); + int speedYLoc = GetShaderLocation(shader, "speedY"); // Shader uniform values that can be updated at any time - float freqX = 25.0f; - float freqY = 25.0f; - float ampX = 5.0f; - float ampY = 5.0f; - float speedX = 8.0f; - float speedY = 8.0f; + float freqX = 25.0f; + float freqY = 25.0f; + float ampX = 5.0f; + float ampY = 5.0f; + float speedX = 8.0f; + float speedY = 8.0f; float screenSize[2] = { (float)GetScreenWidth(), (float)GetScreenHeight() }; - SetShaderValue(shader, GetShaderLocation(shader, "size"), &screenSize, UNIFORM_VEC2); - SetShaderValue(shader, freqXLoc, &freqX, UNIFORM_FLOAT); - SetShaderValue(shader, freqYLoc, &freqY, UNIFORM_FLOAT); - SetShaderValue(shader, ampXLoc, &X, UNIFORM_FLOAT); - SetShaderValue(shader, ampYLoc, &Y, UNIFORM_FLOAT); - SetShaderValue(shader, speedXLoc, &speedX, UNIFORM_FLOAT); - SetShaderValue(shader, speedYLoc, &speedY, UNIFORM_FLOAT); + SetShaderValue(shader, GetShaderLocation(shader, "size"), &screenSize, UNIFORM_VEC2); + SetShaderValue(shader, freqXLoc, &freqX, UNIFORM_FLOAT); + SetShaderValue(shader, freqYLoc, &freqY, UNIFORM_FLOAT); + SetShaderValue(shader, ampXLoc, &X, UNIFORM_FLOAT); + SetShaderValue(shader, ampYLoc, &Y, UNIFORM_FLOAT); + SetShaderValue(shader, speedXLoc, &speedX, UNIFORM_FLOAT); + SetShaderValue(shader, speedYLoc, &speedY, UNIFORM_FLOAT); float seconds = 0.0f; @@ -76,9 +76,9 @@ int main(void) { // Update //---------------------------------------------------------------------------------- - seconds += GetFrameTime(); + seconds += GetFrameTime(); - SetShaderValue(shader, secondsLoc, &seconds, UNIFORM_FLOAT); + SetShaderValue(shader, secondsLoc, &seconds, UNIFORM_FLOAT); //---------------------------------------------------------------------------------- // Draw @@ -87,12 +87,12 @@ int main(void) ClearBackground(RAYWHITE); - BeginShaderMode(shader); + BeginShaderMode(shader); - DrawTexture(texture, 0, 0, WHITE); - DrawTexture(texture, texture.width, 0, WHITE); + DrawTexture(texture, 0, 0, WHITE); + DrawTexture(texture, texture.width, 0, WHITE); - EndShaderMode(); + EndShaderMode(); EndDrawing(); //---------------------------------------------------------------------------------- diff --git a/games/just_do/just_do.c b/games/just_do/just_do.c index e9a21526d..6a73a2b38 100644 --- a/games/just_do/just_do.c +++ b/games/just_do/just_do.c @@ -50,8 +50,8 @@ void UpdateDrawFrame(void); // Update and Draw one frame //---------------------------------------------------------------------------------- int main(void) { - // Initialization (Note windowTitle is unused on Android) - //--------------------------------------------------------- + // Initialization (Note windowTitle is unused on Android) + //--------------------------------------------------------- InitWindow(screenWidth, screenHeight, "JUST DO [GGJ15]"); // Load global data here (assets that must be available in all screens, i.e. fonts) diff --git a/games/koala_seasons/koala_seasons.c b/games/koala_seasons/koala_seasons.c index ad7892b88..aaad52769 100644 --- a/games/koala_seasons/koala_seasons.c +++ b/games/koala_seasons/koala_seasons.c @@ -48,8 +48,8 @@ void UpdateDrawFrame(void); // Update and Draw one frame //---------------------------------------------------------------------------------- int main(void) { - // Initialization (Note windowTitle is unused on Android) - //--------------------------------------------------------- + // Initialization (Note windowTitle is unused on Android) + //--------------------------------------------------------- InitWindow(screenWidth, screenHeight, "KOALA SEASONS"); // Load global data here (assets that must be available in all screens, i.e. fonts) diff --git a/games/light_my_ritual/light_my_ritual.c b/games/light_my_ritual/light_my_ritual.c index 87d12ad1a..73e40485e 100644 --- a/games/light_my_ritual/light_my_ritual.c +++ b/games/light_my_ritual/light_my_ritual.c @@ -53,8 +53,8 @@ void UpdateDrawFrame(void); // Update and Draw one frame //---------------------------------------------------------------------------------- int main(void) { - // Initialization (Note windowTitle is unused on Android) - //--------------------------------------------------------- + // Initialization (Note windowTitle is unused on Android) + //--------------------------------------------------------- InitWindow(screenWidth, screenHeight, "LIGHT MY RITUAL! [GGJ16]"); // Global data loading (assets that must be available in all screens, i.e. fonts) @@ -69,7 +69,7 @@ int main(void) UnloadImage(image); // Unload image from CPU memory (RAM) font = LoadFont("resources/font_arcadian.png"); - //doors = LoadTexture("resources/textures/doors.png"); + //doors = LoadTexture("resources/textures/doors.png"); //sndDoor = LoadSound("resources/audio/door.ogg"); music = LoadMusicStream("resources/audio/ambient.ogg"); @@ -270,7 +270,7 @@ void UpdateDrawFrame(void) case GAMEPLAY: DrawGameplayScreen(); break; default: break; } - + if (onTransition) DrawTransition(); //DrawFPS(10, 10); diff --git a/games/skully_escape/player.c b/games/skully_escape/player.c index 857ff5388..552326e18 100644 --- a/games/skully_escape/player.c +++ b/games/skully_escape/player.c @@ -271,11 +271,11 @@ static void DrawLifes(void) { if (player.numLifes != 0) { - Vector2 position = { 20, GetScreenHeight() - texLife.height - 20 }; - + Vector2 position = { 20, GetScreenHeight() - texLife.height - 20 }; + for(int i = 0; i < player.numLifes; i++) { - DrawTexture(texLife, position.x + i*texLife.width, position.y, Fade(RAYWHITE, 0.7f)); + DrawTexture(texLife, position.x + i*texLife.width, position.y, Fade(RAYWHITE, 0.7f)); } } } \ No newline at end of file diff --git a/games/skully_escape/skully_escape.c b/games/skully_escape/skully_escape.c index 712282cc7..1bb598ea3 100644 --- a/games/skully_escape/skully_escape.c +++ b/games/skully_escape/skully_escape.c @@ -52,8 +52,8 @@ void UpdateDrawFrame(void); // Update and Draw one frame //---------------------------------------------------------------------------------- int main(void) { - // Initialization (Note windowTitle is unused on Android) - //--------------------------------------------------------- + // Initialization (Note windowTitle is unused on Android) + //--------------------------------------------------------- InitWindow(screenWidth, screenHeight, "SKULLY ESCAPE [KING GAMEJAM 2015]"); // Global data loading (assets that must be available in all screens, i.e. fonts) @@ -63,10 +63,10 @@ int main(void) PlayMusicStream(music); font = LoadFont("resources/textures/alagard.png"); - doors = LoadTexture("resources/textures/doors.png"); + doors = LoadTexture("resources/textures/doors.png"); sndDoor = LoadSound("resources/audio/door.ogg"); sndScream = LoadSound("resources/audio/scream.ogg"); - + InitPlayer(); // Setup and Init first screen @@ -90,7 +90,7 @@ int main(void) //-------------------------------------------------------------------------------------- // Unload all global loaded data (i.e. fonts) here! - UnloadPlayer(); + UnloadPlayer(); UnloadFont(font); UnloadTexture(doors); UnloadSound(sndDoor); @@ -397,7 +397,7 @@ void UpdateDrawFrame(void) case ENDING: DrawEndingScreen(); break; default: break; } - + if (onTransition) DrawTransition(); //DrawFPS(10, 10); diff --git a/games/transmission/transmission.c b/games/transmission/transmission.c index a948365fc..79097b069 100644 --- a/games/transmission/transmission.c +++ b/games/transmission/transmission.c @@ -70,7 +70,7 @@ int main(void) fontMission = LoadFontEx("resources/fonts/traveling_typewriter.ttf", 64, 0, 250); texButton = LoadTexture("resources/textures/title_ribbon.png"); - // UI BUTTON + // UI BUTTON recButton.width = texButton.width; recButton.height = texButton.height; recButton.x = screenWidth - recButton.width; @@ -121,7 +121,7 @@ int main(void) UnloadFont(fontMission); UnloadTexture(texButton); - + CloseAudioDevice(); // Close audio context CloseWindow(); // Close window and OpenGL context @@ -438,7 +438,7 @@ bool IsButtonPressed() } } else fadeButton = 0.80f; - + return false; } diff --git a/games/wave_collector/wave_collector.c b/games/wave_collector/wave_collector.c index c52f88355..64881816d 100644 --- a/games/wave_collector/wave_collector.c +++ b/games/wave_collector/wave_collector.c @@ -58,8 +58,8 @@ static void UpdateDrawFrame(void); // Update and Draw one frame //---------------------------------------------------------------------------------- int main(int argc, char *argv[]) { - // Initialization - //--------------------------------------------------------- + // Initialization + //--------------------------------------------------------- #if defined(PLATFORM_DESKTOP) // TODO: Support for dropped files on the exe @@ -299,7 +299,7 @@ static void UpdateDrawFrame(void) case ENDING: DrawEndingScreen(); break; default: break; } - + // Draw full screen rectangle in front of everything if (onTransition) DrawTransition(); diff --git a/projects/4coder/main.c b/projects/4coder/main.c index e79184226..47e16b885 100644 --- a/projects/4coder/main.c +++ b/projects/4coder/main.c @@ -2,38 +2,38 @@ #include "raylib.h" int main() { - int screenWidth = 800; - int screenHeight = 450; + int screenWidth = 800; + int screenHeight = 450; - InitWindow(screenWidth, screenHeight, "raylib"); + InitWindow(screenWidth, screenHeight, "raylib"); - Camera cam; - cam.position = (Vector3){ 0.f, 10.f, 8.f }; - cam.target = (Vector3){ 0.f, 0.f, 0.f }; - cam.up = (Vector3){ 0.f, 1.f, 0.f }; - cam.fovy = 60.f; - cam.type = CAMERA_PERSPECTIVE; + Camera cam; + cam.position = (Vector3){ 0.f, 10.f, 8.f }; + cam.target = (Vector3){ 0.f, 0.f, 0.f }; + cam.up = (Vector3){ 0.f, 1.f, 0.f }; + cam.fovy = 60.f; + cam.type = CAMERA_PERSPECTIVE; - Vector3 cubePos = { 0.f, 0.f, 0.f }; + Vector3 cubePos = { 0.f, 0.f, 0.f }; - SetTargetFPS(60); + SetTargetFPS(60); - while (!WindowShouldClose()) { - cam.position.x = sin(GetTime()) * 10.f; - cam.position.z = cos(GetTime()) * 10.f; + while (!WindowShouldClose()) { + cam.position.x = sin(GetTime()) * 10.f; + cam.position.z = cos(GetTime()) * 10.f; - BeginDrawing(); - ClearBackground(RAYWHITE); - BeginMode3D(cam); - DrawCube(cubePos, 2.f, 2.f, 2.f, RED); - DrawCubeWires(cubePos, 2.f, 2.f, 2.f, MAROON); - DrawGrid(10, 1.f); - EndMode3D(); - DrawText("This is a raylib example", 10, 40, 20, DARKGRAY); - DrawFPS(10, 10); - EndDrawing(); - } - - CloseWindow(); - return 0; + BeginDrawing(); + ClearBackground(RAYWHITE); + BeginMode3D(cam); + DrawCube(cubePos, 2.f, 2.f, 2.f, RED); + DrawCubeWires(cubePos, 2.f, 2.f, 2.f, MAROON); + DrawGrid(10, 1.f); + EndMode3D(); + DrawText("This is a raylib example", 10, 40, 20, DARKGRAY); + DrawFPS(10, 10); + EndDrawing(); + } + + CloseWindow(); + return 0; } \ No newline at end of file diff --git a/projects/VSCode/main.c b/projects/VSCode/main.c index ecda25fae..97bccafbe 100644 --- a/projects/VSCode/main.c +++ b/projects/VSCode/main.c @@ -25,21 +25,21 @@ int main() { // Initialization //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; + const int screenWidth = 800; + const int screenHeight = 450; - InitWindow(screenWidth, screenHeight, "raylib"); + InitWindow(screenWidth, screenHeight, "raylib"); - Camera camera = { 0 }; - camera.position = (Vector3){ 10.0f, 10.0f, 8.0f }; - camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; - camera.fovy = 60.0f; - camera.type = CAMERA_PERSPECTIVE; - - SetCameraMode(camera, CAMERA_ORBITAL); + Camera camera = { 0 }; + camera.position = (Vector3){ 10.0f, 10.0f, 8.0f }; + camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; + camera.fovy = 60.0f; + camera.type = CAMERA_PERSPECTIVE; + + SetCameraMode(camera, CAMERA_ORBITAL); - Vector3 cubePosition = { 0.0f }; + Vector3 cubePosition = { 0.0f }; SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- @@ -49,30 +49,30 @@ int main() { // Update //---------------------------------------------------------------------------------- - UpdateCamera(&camera); + UpdateCamera(&camera); //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- - BeginDrawing(); + BeginDrawing(); - ClearBackground(RAYWHITE); + ClearBackground(RAYWHITE); - BeginMode3D(camera); + BeginMode3D(camera); - DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); - DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); - DrawGrid(10, 1.0f); + DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); + DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON); + DrawGrid(10, 1.0f); - EndMode3D(); + EndMode3D(); - DrawText("This is a raylib example", 10, 40, 20, DARKGRAY); + DrawText("This is a raylib example", 10, 40, 20, DARKGRAY); - DrawFPS(10, 10); + DrawFPS(10, 10); - EndDrawing(); - //---------------------------------------------------------------------------------- - } + EndDrawing(); + //---------------------------------------------------------------------------------- + } // De-Initialization //-------------------------------------------------------------------------------------- diff --git a/src/easings.h b/src/easings.h index 1b08af0a5..f6c384b00 100644 --- a/src/easings.h +++ b/src/easings.h @@ -135,7 +135,7 @@ EASEDEF float EaseQuadOut(float t, float b, float c, float d) { t /= d; return ( EASEDEF float EaseQuadInOut(float t, float b, float c, float d) { if ((t/=d/2) < 1) return (((c/2)*(t*t)) + b); - return (-c/2.0f*(((t - 1.0f)*(t - 3.0f)) - 1.0f) + b); + return (-c/2.0f*(((t - 1.0f)*(t - 3.0f)) - 1.0f) + b); } // Exponential Easing functions @@ -147,7 +147,7 @@ EASEDEF float EaseExpoInOut(float t, float b, float c, float d) if (t == d) return (b + c); if ((t/=d/2.0f) < 1.0f) return (c/2.0f*pow(2.0f, 10.0f*(t - 1.0f)) + b); - return (c/2.0f*(-pow(2.0f, -10.0f*(t - 1.0f)) + 2.0f) + b); + return (c/2.0f*(-pow(2.0f, -10.0f*(t - 1.0f)) + 2.0f) + b); } // Back Easing functions diff --git a/src/models.c b/src/models.c index 6110051cd..ee625906e 100644 --- a/src/models.c +++ b/src/models.c @@ -2480,11 +2480,11 @@ bool CheckCollisionSpheres(Vector3 centerA, float radiusA, Vector3 centerB, floa // Simple way to check for collision, just checking distance between two points // Unfortunately, sqrtf() is a costly operation, so we avoid it with following solution /* - float dx = centerA.x - centerB.x; // X distance between centers - float dy = centerA.y - centerB.y; // Y distance between centers - float dz = centerA.z - centerB.z; // Y distance between centers + float dx = centerA.x - centerB.x; // X distance between centers + float dy = centerA.y - centerB.y; // Y distance between centers + float dz = centerA.z - centerB.z; // Z distance between centers - float distance = sqrtf(dx*dx + dy*dy + dz*dz); // Distance between centers + float distance = sqrtf(dx*dx + dy*dy + dz*dz); // Distance between centers if (distance <= (radiusA + radiusB)) collision = true; */ diff --git a/src/raylib.h b/src/raylib.h index 6180eb346..ec5dee83f 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -33,7 +33,7 @@ * [core] rgif (Charlie Tangora, Ramon Santamaria) for GIF recording * [textures] stb_image (Sean Barret) for images loading (BMP, TGA, PNG, JPEG, HDR...) * [textures] stb_image_write (Sean Barret) for image writting (BMP, TGA, PNG, JPG) -* [textures] stb_image_resize (Sean Barret) for image resizing algorythms +* [textures] stb_image_resize (Sean Barret) for image resizing algorithms * [textures] stb_perlin (Sean Barret) for Perlin noise image generation * [text] stb_truetype (Sean Barret) for ttf fonts loading * [text] stb_rect_pack (Sean Barret) for rectangles packing diff --git a/src/raymath.h b/src/raymath.h index b9dae5546..d866ad826 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -20,7 +20,7 @@ * * LICENSE: zlib/libpng * -* Copyright (c) 2015-2017 Ramon Santamaria (@raysan5) +* Copyright (c) 2015-2019 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. @@ -148,7 +148,7 @@ RMDEF float Clamp(float value, float min, float max) return res > max ? max : res; } -// Calculate linear interpolation between two vectors +// Calculate linear interpolation between two floats RMDEF float Lerp(float start, float end, float amount) { return start + amount*(end - start); @@ -225,8 +225,8 @@ RMDEF Vector2 Vector2Scale(Vector2 v, float scale) // Multiply vector by vector RMDEF Vector2 Vector2MultiplyV(Vector2 v1, Vector2 v2) { - Vector2 result = { v1.x*v2.x, v1.y*v2.y }; - return result; + Vector2 result = { v1.x*v2.x, v1.y*v2.y }; + return result; } // Negate vector @@ -246,8 +246,8 @@ RMDEF Vector2 Vector2Divide(Vector2 v, float div) // Divide vector by vector RMDEF Vector2 Vector2DivideV(Vector2 v1, Vector2 v2) { - Vector2 result = { v1.x/v2.x, v1.y/v2.y }; - return result; + Vector2 result = { v1.x/v2.x, v1.y/v2.y }; + return result; } // Normalize provided vector @@ -388,15 +388,15 @@ RMDEF Vector3 Vector3Negate(Vector3 v) // Divide vector by a float value RMDEF Vector3 Vector3Divide(Vector3 v, float div) { - Vector3 result = { v.x / div, v.y / div, v.z / div }; - return result; + Vector3 result = { v.x / div, v.y / div, v.z / div }; + return result; } // Divide vector by vector RMDEF Vector3 Vector3DivideV(Vector3 v1, Vector3 v2) { - Vector3 result = { v1.x/v2.x, v1.y/v2.y, v1.z/v2.z }; - return result; + Vector3 result = { v1.x/v2.x, v1.y/v2.y, v1.z/v2.z }; + return result; } // Normalize provided vector @@ -1159,7 +1159,7 @@ RMDEF Quaternion QuaternionFromVector3ToVector3(Vector3 from, Vector3 to) // Above lines are equivalent to: //Quaternion result = QuaternionNlerp(q, QuaternionIdentity(), 0.5f); - return result; + return result; } // Returns a quaternion for a given rotation matrix @@ -1320,21 +1320,21 @@ RMDEF void QuaternionToAxisAngle(Quaternion q, Vector3 *outAxis, float *outAngle // Returns he quaternion equivalent to Euler angles RMDEF Quaternion QuaternionFromEuler(float roll, float pitch, float yaw) { - Quaternion q = { 0 }; + Quaternion q = { 0 }; - float x0 = cosf(roll*0.5f); - float x1 = sinf(roll*0.5f); - float y0 = cosf(pitch*0.5f); - float y1 = sinf(pitch*0.5f); - float z0 = cosf(yaw*0.5f); - float z1 = sinf(yaw*0.5f); + float x0 = cosf(roll*0.5f); + float x1 = sinf(roll*0.5f); + float y0 = cosf(pitch*0.5f); + float y1 = sinf(pitch*0.5f); + float z0 = cosf(yaw*0.5f); + float z1 = sinf(yaw*0.5f); - q.x = x1*y0*z0 - x0*y1*z1; - q.y = x0*y1*z0 + x1*y0*z1; - q.z = x0*y0*z1 - x1*y1*z0; - q.w = x0*y0*z0 + x1*y1*z1; + q.x = x1*y0*z0 - x0*y1*z1; + q.y = x0*y1*z0 + x1*y0*z1; + q.z = x0*y0*z1 - x1*y1*z0; + q.w = x0*y0*z0 + x1*y1*z1; - return q; + return q; } // Return the Euler angles equivalent to quaternion (roll, pitch, yaw) @@ -1343,21 +1343,21 @@ RMDEF Vector3 QuaternionToEuler(Quaternion q) { Vector3 result = { 0 }; - // roll (x-axis rotation) - float x0 = 2.0f*(q.w*q.x + q.y*q.z); - float x1 = 1.0f - 2.0f*(q.x*q.x + q.y*q.y); - result.x = atan2f(x0, x1)*RAD2DEG; + // roll (x-axis rotation) + float x0 = 2.0f*(q.w*q.x + q.y*q.z); + float x1 = 1.0f - 2.0f*(q.x*q.x + q.y*q.y); + result.x = atan2f(x0, x1)*RAD2DEG; - // pitch (y-axis rotation) - float y0 = 2.0f*(q.w*q.y - q.z*q.x); - y0 = y0 > 1.0f ? 1.0f : y0; - y0 = y0 < -1.0f ? -1.0f : y0; - result.y = asinf(y0)*RAD2DEG; + // pitch (y-axis rotation) + float y0 = 2.0f*(q.w*q.y - q.z*q.x); + y0 = y0 > 1.0f ? 1.0f : y0; + y0 = y0 < -1.0f ? -1.0f : y0; + result.y = asinf(y0)*RAD2DEG; - // yaw (z-axis rotation) - float z0 = 2.0f*(q.w*q.z + q.x*q.y); - float z1 = 1.0f - 2.0f*(q.y*q.y + q.z*q.z); - result.z = atan2f(z0, z1)*RAD2DEG; + // yaw (z-axis rotation) + float z0 = 2.0f*(q.w*q.z + q.x*q.y); + float z1 = 1.0f - 2.0f*(q.y*q.y + q.z*q.z); + result.z = atan2f(z0, z1)*RAD2DEG; return result; } diff --git a/src/rglfw.c b/src/rglfw.c index 3463bb96d..8d331f9c6 100644 --- a/src/rglfw.c +++ b/src/rglfw.c @@ -46,7 +46,7 @@ #define _GLFW_USE_RETINA // To have windows use the full resolution of Retina displays #endif #if defined(__TINYC__) - #define _WIN32_WINNT_WINXP 0x0501 + #define _WIN32_WINNT_WINXP 0x0501 #endif // NOTE: _GLFW_MIR experimental platform not supported at this moment diff --git a/src/textures.c b/src/textures.c index 53e22341b..18021352b 100644 --- a/src/textures.c +++ b/src/textures.c @@ -823,14 +823,15 @@ void ExportImageAsCode(Image image, const char *fileName) FILE *txtFile = fopen(fileName, "wt"); - fprintf(txtFile, "\n//////////////////////////////////////////////////////////////////////////////////////\n"); + fprintf(txtFile, "\n"); + fprintf(txtFile, "////////////////////////////////////////////////////////////////////////////////////////\n"); fprintf(txtFile, "// //\n"); fprintf(txtFile, "// ImageAsCode exporter v1.0 - Image pixel data exported as an array of bytes //\n"); fprintf(txtFile, "// //\n"); fprintf(txtFile, "// more info and bugs-report: github.com/raysan5/raylib //\n"); fprintf(txtFile, "// feedback and support: ray[at]raylib.com //\n"); fprintf(txtFile, "// //\n"); - fprintf(txtFile, "// Copyright (c) 2018 Ramon Santamaria (@raysan5) //\n"); + fprintf(txtFile, "// Copyright (c) 2019 Ramon Santamaria (@raysan5) //\n"); fprintf(txtFile, "// //\n"); fprintf(txtFile, "////////////////////////////////////////////////////////////////////////////////////////\n\n"); From 94abe0db88e421a0fc33303bfd50f1e289b102a3 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 3 Aug 2019 12:57:06 +0200 Subject: [PATCH 003/123] Allow GitHub Sponsors only --- .github/FUNDING.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 903ad9d69..b96670b17 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,8 +1,8 @@ # These are supported funding model platforms github: raysan5 -patreon: raylib +patreon: # raylib open_collective: # Replace with a single Open Collective username -ko_fi: raysan +ko_fi: # raysan tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel custom: # Replace with a single custom sponsorship URL From e53e42f43dc77c7c8f631b22493f8ef09304d793 Mon Sep 17 00:00:00 2001 From: NimbusFox Date: Tue, 6 Aug 2019 22:06:26 +0100 Subject: [PATCH 004/123] Improved Android Building (#930) Added in a check for x86 and x86_64 branches of android Added in $(OS) checks to see if we're running on windows or *nix Added a default location for android ndks and sdks at /usr/lib/android --- src/Makefile | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/src/Makefile b/src/Makefile index 4af01d916..f43a722f9 100644 --- a/src/Makefile +++ b/src/Makefile @@ -160,15 +160,23 @@ ifeq ($(PLATFORM),PLATFORM_ANDROID) # Android architecture: ARM64 # Starting at 2019 using ARM64 is mandatory for published apps ANDROID_ARCH ?= ARM - ANDROID_API_VERSION = 21 + ANDROID_API_VERSION = 26 # Android required path variables # NOTE: Android NDK is just required to generate the standalone toolchain, # in case is not already provided - ANDROID_NDK = C:/android-ndk + ifeq ($(OS),Windows_NT) + ANDROID_NDK = C:/android-ndk + else + ANDROID_NDK = /usr/lib/android/ndk + endif # Android standalone toolchain path - ANDROID_TOOLCHAIN = C:/android_toolchain_$(ANDROID_ARCH)_API$(ANDROID_API_VERSION) + ifeq ($(OS),Windows_NT) + ANDROID_TOOLCHAIN = C:/android_toolchain_$(ANDROID_ARCH)_API$(ANDROID_API_VERSION) + else + ANDROID_TOOLCHAIN = /usr/lib/android/toolchain_$(ANDROID_ARCH)_API$(ANDROID_API_VERSION) + endif ifeq ($(ANDROID_ARCH),ARM) ANDROID_ARCH_NAME = armeabi-v7a @@ -176,6 +184,12 @@ ifeq ($(PLATFORM),PLATFORM_ANDROID) ifeq ($(ANDROID_ARCH),ARM64) ANDROID_ARCH_NAME = arm64-v8a endif + ifeq ($(ANDROID_ARCH),x86) + ANDROID_ARCH_NAME = i686 + endif + ifeq ($(ANDROID_ARCH),x86_64) + ANDROID_ARCH_NAME = x86_64 + endif endif # Define raylib source code path @@ -242,6 +256,14 @@ ifeq ($(PLATFORM),PLATFORM_ANDROID) CC = $(ANDROID_TOOLCHAIN)/bin/aarch64-linux-android-clang AR = $(ANDROID_TOOLCHAIN)/bin/aarch64-linux-android-ar endif + ifeq ($(ANDROID_ARCH),x86) + CC = $(ANDROID_TOOLCHAIN)/bin/i686-linux-android$(ANDROID_API_VERSION)-clang + AR = $(ANDROID_TOOLCHAIN)/bin/i686-linux-android-ar + endif + ifeq ($(ANDROID_ARCH),x86_64) + CC = $(ANDROID_TOOLCHAIN)/bin/x86_64-linux-android$(ANDROID_API_VERSION)-clang + AR = $(ANDROID_TOOLCHAIN)/bin/x86_64-linux-android-ar + endif endif @@ -305,6 +327,12 @@ ifeq ($(PLATFORM),PLATFORM_ANDROID) ifeq ($(ANDROID_ARCH),ARM64) CFLAGS += -target aarch64 -mfix-cortex-a53-835769 endif + ifeq ($(ANDROID_ARCH), x86) + CFLAGS += -march=i686 + endif + ifeq ($(ANDROID_ARCH), x86_64) + CFLAGS += -march=x86-64 + endif # Compilation functions attributes options CFLAGS += -ffunction-sections -funwind-tables -fstack-protector-strong -fPIE -fPIC # Compiler options for the linker @@ -356,11 +384,12 @@ ifeq ($(PLATFORM),PLATFORM_RPI) INCLUDE_PATHS += -I$(RPI_TOOLCHAIN_SYSROOT)/opt/vc/include/interface/vcos/pthreads endif ifeq ($(PLATFORM),PLATFORM_ANDROID) + NATIVE_APP_GLUE = $(RAYLIB_RELEASE_PATH)/external/android/native_app_glue + #NATIVE_APP_GLUE = $(ANDROID_NDK)/sources/android/native_app_glue # Android required libraries INCLUDE_PATHS += -I$(ANDROID_TOOLCHAIN)/sysroot/usr/include # Include android_native_app_glue.h - INCLUDE_PATHS += -Iexternal/android/native_app_glue - #INCLUDE_PATHS += -I$(ANDROID_NDK)/sources/android/native_app_glue + INCLUDE_PATHS += -I$(NATIVE_APP_GLUE) endif # Define linker options @@ -635,6 +664,6 @@ else rm -fv *.o $(RAYLIB_RELEASE_PATH)/libraylib.a $(RAYLIB_RELEASE_PATH)/libraylib.bc $(RAYLIB_RELEASE_PATH)/libraylib.so* endif ifeq ($(PLATFORM),PLATFORM_ANDROID) - rm -rf $(ANDROID_TOOLCHAIN) + rm -rf $(ANDROID_TOOLCHAIN) $(NATIVE_APP_GLUE)/android_native_app_glue.o endif @echo "removed all generated files!" From f518c4e939a824a4174d1ce4ec0ddb53125cfab0 Mon Sep 17 00:00:00 2001 From: culacant Date: Tue, 6 Aug 2019 23:08:58 +0200 Subject: [PATCH 005/123] Fix loading multiple animations from .iqm file (#928) * Fix loading multiple animations from .iqm file * Fix memory leak in models_animation example * Added export instructions to the animation example * use raylib free * include to appease the travis CI gods * replace tabs with spaces --- examples/models/models_animation.c | 8 + src/models.c | 240 ++++++++++++++--------------- 2 files changed, 127 insertions(+), 121 deletions(-) diff --git a/examples/models/models_animation.c b/examples/models/models_animation.c index 7f38b7f55..5e7c8cf54 100644 --- a/examples/models/models_animation.c +++ b/examples/models/models_animation.c @@ -9,8 +9,15 @@ * * Copyright (c) 2019 Culacant (@culacant) and Ramon Santamaria (@raysan5) * +******************************************************************************************** +* +* To export a model from blender, make sure it is not posed, the vertices need to be in the +* same position as they would be in edit mode. +* and that the scale of your models is set to 0. Scaling can be done from the export menu. +* ********************************************************************************************/ +#include #include "raylib.h" int main(void) @@ -93,6 +100,7 @@ int main(void) //-------------------------------------------------------------------------------------- // Unload model animations data for (int i = 0; i < animsCount; i++) UnloadModelAnimation(anims[i]); + RL_FREE(anims); UnloadModel(model); // Unload model diff --git a/src/models.c b/src/models.c index ee625906e..f848e0abc 100644 --- a/src/models.c +++ b/src/models.c @@ -867,9 +867,6 @@ void SetModelMeshMaterial(Model *model, int meshId, int materialId) // Load model animations from file ModelAnimation *LoadModelAnimations(const char *filename, int *animCount) { - ModelAnimation *animations = (ModelAnimation *)RL_MALLOC(1*sizeof(ModelAnimation)); - int count = 1; - #define IQM_MAGIC "INTERQUAKEMODEL" // IQM file magic number #define IQM_VERSION 2 // only IQM version 2 supported @@ -904,8 +901,6 @@ ModelAnimation *LoadModelAnimations(const char *filename, int *animCount) unsigned int flags; } IQMAnim; - ModelAnimation animation = { 0 }; - FILE *iqmFile; IQMHeader iqm; @@ -931,153 +926,156 @@ ModelAnimation *LoadModelAnimations(const char *filename, int *animCount) fclose(iqmFile); } - // header - if (iqm.num_anims > 1) TraceLog(LOG_WARNING, "More than 1 animation in file, only the first one will be loaded"); - // bones IQMPose *poses; poses = RL_MALLOC(sizeof(IQMPose)*iqm.num_poses); fseek(iqmFile, iqm.ofs_poses, SEEK_SET); fread(poses, sizeof(IQMPose)*iqm.num_poses, 1, iqmFile); - animation.boneCount = iqm.num_poses; - animation.bones = RL_MALLOC(sizeof(BoneInfo)*iqm.num_poses); - - for (int j = 0; j < iqm.num_poses; j++) - { - strcpy(animation.bones[j].name, "ANIMJOINTNAME"); - animation.bones[j].parent = poses[j].parent; - } - // animations - IQMAnim anim = {0}; + *animCount = iqm.num_anims; + IQMAnim *anim = RL_MALLOC(iqm.num_anims*sizeof(IQMAnim)); fseek(iqmFile, iqm.ofs_anims, SEEK_SET); - fread(&anim, sizeof(IQMAnim), 1, iqmFile); + fread(anim, iqm.num_anims*sizeof(IQMAnim), 1, iqmFile); + ModelAnimation *animations = RL_MALLOC(iqm.num_anims*sizeof(ModelAnimation)); - animation.frameCount = anim.num_frames; - //animation.framerate = anim.framerate; // frameposes unsigned short *framedata = RL_MALLOC(sizeof(unsigned short)*iqm.num_frames*iqm.num_framechannels); fseek(iqmFile, iqm.ofs_frames, SEEK_SET); fread(framedata, sizeof(unsigned short)*iqm.num_frames*iqm.num_framechannels, 1, iqmFile); - animation.framePoses = RL_MALLOC(sizeof(Transform*)*anim.num_frames); - for (int j = 0; j < anim.num_frames; j++) animation.framePoses[j] = RL_MALLOC(sizeof(Transform)*iqm.num_poses); - - int dcounter = anim.first_frame*iqm.num_framechannels; - - for (int frame = 0; frame < anim.num_frames; frame++) + for(int a=0;a= 0) + for (int i = 0; i < iqm.num_poses; i++) { - animation.framePoses[frame][i].rotation = QuaternionMultiply(animation.framePoses[frame][animation.bones[i].parent].rotation, animation.framePoses[frame][i].rotation); - animation.framePoses[frame][i].translation = Vector3RotateByQuaternion(animation.framePoses[frame][i].translation, animation.framePoses[frame][animation.bones[i].parent].rotation); - animation.framePoses[frame][i].translation = Vector3Add(animation.framePoses[frame][i].translation, animation.framePoses[frame][animation.bones[i].parent].translation); - animation.framePoses[frame][i].scale = Vector3MultiplyV(animation.framePoses[frame][i].scale, animation.framePoses[frame][animation.bones[i].parent].scale); + animations[a].framePoses[frame][i].translation.x = poses[i].channeloffset[0]; + + if (poses[i].mask & 0x01) + { + animations[a].framePoses[frame][i].translation.x += framedata[dcounter]*poses[i].channelscale[0]; + dcounter++; + } + + animations[a].framePoses[frame][i].translation.y = poses[i].channeloffset[1]; + + if (poses[i].mask & 0x02) + { + animations[a].framePoses[frame][i].translation.y += framedata[dcounter]*poses[i].channelscale[1]; + dcounter++; + } + + animations[a].framePoses[frame][i].translation.z = poses[i].channeloffset[2]; + + if (poses[i].mask & 0x04) + { + animations[a].framePoses[frame][i].translation.z += framedata[dcounter]*poses[i].channelscale[2]; + dcounter++; + } + + animations[a].framePoses[frame][i].rotation.x = poses[i].channeloffset[3]; + + if (poses[i].mask & 0x08) + { + animations[a].framePoses[frame][i].rotation.x += framedata[dcounter]*poses[i].channelscale[3]; + dcounter++; + } + + animations[a].framePoses[frame][i].rotation.y = poses[i].channeloffset[4]; + + if (poses[i].mask & 0x10) + { + animations[a].framePoses[frame][i].rotation.y += framedata[dcounter]*poses[i].channelscale[4]; + dcounter++; + } + + animations[a].framePoses[frame][i].rotation.z = poses[i].channeloffset[5]; + + if (poses[i].mask & 0x20) + { + animations[a].framePoses[frame][i].rotation.z += framedata[dcounter]*poses[i].channelscale[5]; + dcounter++; + } + + animations[a].framePoses[frame][i].rotation.w = poses[i].channeloffset[6]; + + if (poses[i].mask & 0x40) + { + animations[a].framePoses[frame][i].rotation.w += framedata[dcounter]*poses[i].channelscale[6]; + dcounter++; + } + + animations[a].framePoses[frame][i].scale.x = poses[i].channeloffset[7]; + + if (poses[i].mask & 0x80) + { + animations[a].framePoses[frame][i].scale.x += framedata[dcounter]*poses[i].channelscale[7]; + dcounter++; + } + + animations[a].framePoses[frame][i].scale.y = poses[i].channeloffset[8]; + + if (poses[i].mask & 0x100) + { + animations[a].framePoses[frame][i].scale.y += framedata[dcounter]*poses[i].channelscale[8]; + dcounter++; + } + + animations[a].framePoses[frame][i].scale.z = poses[i].channeloffset[9]; + + if (poses[i].mask & 0x200) + { + animations[a].framePoses[frame][i].scale.z += framedata[dcounter]*poses[i].channelscale[9]; + dcounter++; + } + + animations[a].framePoses[frame][i].rotation = QuaternionNormalize(animations[a].framePoses[frame][i].rotation); + } + } + + // Build frameposes + for (int frame = 0; frame < anim[a].num_frames; frame++) + { + for (int i = 0; i < animations[a].boneCount; i++) + { + if (animations[a].bones[i].parent >= 0) + { + animations[a].framePoses[frame][i].rotation = QuaternionMultiply(animations[a].framePoses[frame][animations[a].bones[i].parent].rotation, animations[a].framePoses[frame][i].rotation); + animations[a].framePoses[frame][i].translation = Vector3RotateByQuaternion(animations[a].framePoses[frame][i].translation, animations[a].framePoses[frame][animations[a].bones[i].parent].rotation); + animations[a].framePoses[frame][i].translation = Vector3Add(animations[a].framePoses[frame][i].translation, animations[a].framePoses[frame][animations[a].bones[i].parent].translation); + animations[a].framePoses[frame][i].scale = Vector3MultiplyV(animations[a].framePoses[frame][i].scale, animations[a].framePoses[frame][animations[a].bones[i].parent].scale); + } } } } RL_FREE(framedata); RL_FREE(poses); + RL_FREE(anim); fclose(iqmFile); - animations[0] = animation; - *animCount = count; return animations; } From 6267fd1865a1354cf059567bdbcf56d802e5403b Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Tue, 6 Aug 2019 23:09:27 +0200 Subject: [PATCH 006/123] Fix memory leak in LoadGLTF() (#929) Free texturePath in LoadGLTF() --- src/models.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/models.c b/src/models.c index f848e0abc..8b5fb472b 100644 --- a/src/models.c +++ b/src/models.c @@ -3457,6 +3457,7 @@ static Model LoadGLTF(const char *fileName) ImageColorTint(&image, tint); texture = LoadTextureFromImage(image); UnloadImage(image); + RL_FREE(texturePath); } } else if (img->buffer_view) From b354c1007206e13ce3d6fe8cc6eea486c69b1a2b Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 7 Aug 2019 00:26:33 +0200 Subject: [PATCH 007/123] ADDED: DirectoryExists() ADDED: GetPrevDirectoryPath() --- src/core.c | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/core.c b/src/core.c index 6bb12619a..1dad59d99 100644 --- a/src/core.c +++ b/src/core.c @@ -8,7 +8,7 @@ * - PLATFORM_DESKTOP: FreeBSD, OpenBSD, NetBSD, DragonFly (X11 desktop) * - PLATFORM_DESKTOP: OSX/macOS * - PLATFORM_ANDROID: Android 4.0 (ARM, ARM64) -* - PLATFORM_RPI: Raspberry Pi 0,1,2,3 (Raspbian) +* - PLATFORM_RPI: Raspberry Pi 0,1,2,3,4 (Raspbian) * - PLATFORM_WEB: HTML5 with asm.js (Chrome, Firefox) * - PLATFORM_UWP: Windows 10 App, Windows Phone, Xbox One * @@ -1746,6 +1746,21 @@ bool IsFileExtension(const char *fileName, const char *ext) return result; } +// Check if a directory path exists +bool DirectoryExists(const char *dirPath) +{ + bool result = false; + DIR *dir = opendir(dirPath); + + if (dir != NULL) + { + result = true; + closedir(dir); + } + + return result; +} + // Get pointer to extension for a filename string const char *GetExtension(const char *fileName) { @@ -1816,6 +1831,28 @@ const char *GetDirectoryPath(const char *fileName) return filePath; } +// Get previous directory path for a given path +const char *GetPrevDirectoryPath(const char *path) +{ + static char prevDir[MAX_FILEPATH_LENGTH]; + memset(prevDir, 0, MAX_FILEPATH_LENGTH); + int pathLen = strlen(path); + + for (int i = (pathLen - 1); i >= 0; i--) + { + if ((path[i] == '\\') || (path[i] == '/')) + { + if ((i != (pathLen - 1)) && (path[pathLen - 2] != ':')) + { + strncpy(prevDir, path, i); + break; + } + } + } + + return prevDir; +} + // Get current working directory const char *GetWorkingDirectory(void) { From 042499188c55030cb675df2ac135cf8b71e841dd Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 7 Aug 2019 00:27:32 +0200 Subject: [PATCH 008/123] ADDED: DirectoryExists() and GetPrevDirectoryPath() --- src/raylib.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/raylib.h b/src/raylib.h index ec5dee83f..798d6d89c 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -940,10 +940,12 @@ RLAPI int GetRandomValue(int min, int max); // Returns a r // Files management functions RLAPI bool FileExists(const char *fileName); // Check if file exists RLAPI bool IsFileExtension(const char *fileName, const char *ext);// Check file extension +RLAPI bool DirectoryExists(const char *dirPath); // Check if a directory path exists RLAPI const char *GetExtension(const char *fileName); // Get pointer to extension for a filename string RLAPI const char *GetFileName(const char *filePath); // Get pointer to filename for a path string RLAPI const char *GetFileNameWithoutExt(const char *filePath); // Get filename string without extension (memory should be freed) RLAPI const char *GetDirectoryPath(const char *fileName); // Get full path for a given fileName (uses static string) +RLAPI const char *GetPrevDirectoryPath(const char *path); // Get previous directory path for a given path (uses static string) RLAPI const char *GetWorkingDirectory(void); // Get current working directory (uses static string) RLAPI char **GetDirectoryFiles(const char *dirPath, int *count); // Get filenames in a directory path (memory should be freed) RLAPI void ClearDirectoryFiles(void); // Clear directory files paths buffers (free memory) From 2a913b6587d60dab64c3b81019990e6872a9ac75 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 7 Aug 2019 00:28:05 +0200 Subject: [PATCH 009/123] ADDED: GetImageAlphaBorder() --- src/raylib.h | 1 + src/textures.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/raylib.h b/src/raylib.h index 798d6d89c..dd3ef86c9 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1095,6 +1095,7 @@ RLAPI void UnloadTexture(Texture2D texture); RLAPI void UnloadRenderTexture(RenderTexture2D target); // Unload render texture from GPU memory (VRAM) RLAPI Color *GetImageData(Image image); // Get pixel data from image as a Color struct array RLAPI Vector4 *GetImageDataNormalized(Image image); // Get pixel data from image as Vector4 array (float normalized) +RLAPI Rectangle GetImageAlphaBorder(Image image); // Get image alpha border rectangle RLAPI int GetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes (image or texture) RLAPI Image GetTextureData(Texture2D texture); // Get pixel data from GPU texture and return an Image RLAPI Image GetScreenData(void); // Get pixel data from screen buffer and return an Image (screenshot) diff --git a/src/textures.c b/src/textures.c index 18021352b..a25a23ab2 100644 --- a/src/textures.c +++ b/src/textures.c @@ -680,6 +680,37 @@ Vector4 *GetImageDataNormalized(Image image) return pixels; } +// Get image alpha border rectangle +Rectangle GetImageAlphaBorder(Image image) +{ + Color *pixels = GetImageData(image); + + int xMin = 65536; // Define a big enough number + int xMax = 0; + int yMin = 65536; + int yMax = 0; + + for (int y = 0; y < image->height; y++) + { + for (int x = 0; x < image->width; x++) + { + if (pixels[y*image->width + x].a > (unsigned char)(threshold*255.0f)) + { + if (x < xMin) xMin = x; + if (x > xMax) xMax = x; + if (y < yMin) yMin = y; + if (y > yMax) yMax = y; + } + } + } + + Rectangle crop = { xMin, yMin, (xMax + 1) - xMin, (yMax + 1) - yMin }; + + RL_FREE(pixels); + + return crop; +} + // Get pixel data size in bytes (image or texture) // NOTE: Size depends on pixel format int GetPixelDataSize(int width, int height, int format) @@ -894,7 +925,9 @@ Image ImageFromImage(Image image, Rectangle rec) { Image result = ImageCopy(image); +#if defined(SUPPORT_IMAGE_MANIPULATION) ImageCrop(&result, rec); +#endif return result; } From 3d5fa81bf2753badacf9e8c01c51943a0c3acf85 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 7 Aug 2019 00:32:44 +0200 Subject: [PATCH 010/123] WARNING: Redesigned structs - Mesh, Shader, Material structs have been reviewed to minimize size when passed by value, all required code has been reviewed. - GetCollisionRayModel() reviewed to avoid pointer, not required because model is not modified inside the function - UnloadMesh() reviewed, pointer not required - CheckCollisionRay*() parameters name reviewed --- examples/models/models_mesh_picking.c | 2 +- examples/models/models_obj_viewer.c | 2 +- src/models.c | 101 +++++++++++++++----------- src/raylib.h | 22 +++--- src/rlgl.h | 59 ++++++++------- 5 files changed, 105 insertions(+), 81 deletions(-) diff --git a/examples/models/models_mesh_picking.c b/examples/models/models_mesh_picking.c index 0bf95dd10..f600aae84 100644 --- a/examples/models/models_mesh_picking.c +++ b/examples/models/models_mesh_picking.c @@ -105,7 +105,7 @@ int main(void) // Check ray collision against model // NOTE: It considers model.transform matrix! - meshHitInfo = GetCollisionRayModel(ray, &tower); + meshHitInfo = GetCollisionRayModel(ray, tower); if ((meshHitInfo.hit) && (meshHitInfo.distance < nearestHit.distance)) { diff --git a/examples/models/models_obj_viewer.c b/examples/models/models_obj_viewer.c index 83c8f2f1c..3f43e1c89 100644 --- a/examples/models/models_obj_viewer.c +++ b/examples/models/models_obj_viewer.c @@ -54,7 +54,7 @@ int main(void) { if (IsFileExtension(droppedFiles[0], ".obj")) { - for (int i = 0; i < model.meshCount; i++) UnloadMesh(&model.meshes[i]); + for (int i = 0; i < model.meshCount; i++) UnloadMesh(model.meshes[i]); model.meshes = LoadMeshes(droppedFiles[0], &model.meshCount); bounds = MeshBoundingBox(model.meshes[0]); } diff --git a/src/models.c b/src/models.c index 8b5fb472b..e30eb5472 100644 --- a/src/models.c +++ b/src/models.c @@ -71,7 +71,7 @@ //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- -// ... +#define MAX_MESH_VBO 7 // Maximum number of vbo per mesh //---------------------------------------------------------------------------------- // Types and Structures Definition @@ -702,7 +702,7 @@ Model LoadModelFromMesh(Mesh mesh) // Unload model from memory (RAM and/or VRAM) void UnloadModel(Model model) { - for (int i = 0; i < model.meshCount; i++) UnloadMesh(&model.meshes[i]); + for (int i = 0; i < model.meshCount; i++) UnloadMesh(model.meshes[i]); for (int i = 0; i < model.materialCount; i++) UnloadMaterial(model.materials[i]); RL_FREE(model.meshes); @@ -729,9 +729,10 @@ Mesh *LoadMeshes(const char *fileName, int *meshCount) } // Unload mesh from memory (RAM and/or VRAM) -void UnloadMesh(Mesh *mesh) +void UnloadMesh(Mesh mesh) { rlUnloadMesh(mesh); + RL_FREE(mesh.vboId); } // Export mesh data to file @@ -824,6 +825,7 @@ Material *LoadMaterials(const char *fileName, int *materialCount) Material LoadMaterialDefault(void) { Material material = { 0 }; + material.maps = (MaterialMap *)RL_CALLOC(MAX_MATERIAL_MAPS*sizeof(MaterialMap), 1); material.shader = GetShaderDefault(); material.maps[MAP_DIFFUSE].texture = GetTextureDefault(); // White texture (1x1 pixel) @@ -847,6 +849,8 @@ void UnloadMaterial(Material material) { if (material.maps[i].texture.id != GetTextureDefault().id) rlDeleteTextures(material.maps[i].texture.id); } + + RL_FREE(material.maps); } // Set texture for a material map type (MAP_DIFFUSE, MAP_SPECULAR...) @@ -1173,6 +1177,7 @@ bool IsModelAnimationValid(Model model, ModelAnimation anim) Mesh GenMeshPoly(int sides, float radius) { Mesh mesh = { 0 }; + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); int vertexCount = sides*3; // Vertices definition @@ -1235,6 +1240,7 @@ Mesh GenMeshPoly(int sides, float radius) Mesh GenMeshPlane(float width, float length, int resX, int resZ) { Mesh mesh = { 0 }; + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); #define CUSTOM_MESH_GEN_PLANE #if defined(CUSTOM_MESH_GEN_PLANE) @@ -1337,6 +1343,7 @@ Mesh GenMeshPlane(float width, float length, int resX, int resZ) mesh.vertices = (float *)RL_MALLOC(plane->ntriangles*3*3*sizeof(float)); mesh.texcoords = (float *)RL_MALLOC(plane->ntriangles*3*2*sizeof(float)); mesh.normals = (float *)RL_MALLOC(plane->ntriangles*3*3*sizeof(float)); + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int)); mesh.vertexCount = plane->ntriangles*3; mesh.triangleCount = plane->ntriangles; @@ -1368,6 +1375,7 @@ Mesh GenMeshPlane(float width, float length, int resX, int resZ) Mesh GenMeshCube(float width, float height, float length) { Mesh mesh = { 0 }; + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); #define CUSTOM_MESH_GEN_CUBE #if defined(CUSTOM_MESH_GEN_CUBE) @@ -1533,6 +1541,7 @@ par_shapes_mesh* par_shapes_create_icosahedron(); // 20 sides polyhedron RLAPI Mesh GenMeshSphere(float radius, int rings, int slices) { Mesh mesh = { 0 }; + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); par_shapes_mesh *sphere = par_shapes_create_parametric_sphere(slices, rings); par_shapes_scale(sphere, radius, radius, radius); @@ -1571,6 +1580,7 @@ RLAPI Mesh GenMeshSphere(float radius, int rings, int slices) RLAPI Mesh GenMeshHemiSphere(float radius, int rings, int slices) { Mesh mesh = { 0 }; + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); par_shapes_mesh *sphere = par_shapes_create_hemisphere(slices, rings); par_shapes_scale(sphere, radius, radius, radius); @@ -1609,6 +1619,7 @@ RLAPI Mesh GenMeshHemiSphere(float radius, int rings, int slices) Mesh GenMeshCylinder(float radius, float height, int slices) { Mesh mesh = { 0 }; + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); // 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 @@ -1667,6 +1678,7 @@ Mesh GenMeshCylinder(float radius, float height, int slices) Mesh GenMeshTorus(float radius, float size, int radSeg, int sides) { Mesh mesh = { 0 }; + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); if (radius > 1.0f) radius = 1.0f; else if (radius < 0.1f) radius = 0.1f; @@ -1709,6 +1721,7 @@ Mesh GenMeshTorus(float radius, float size, int radSeg, int sides) Mesh GenMeshKnot(float radius, float size, int radSeg, int sides) { Mesh mesh = { 0 }; + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); if (radius > 3.0f) radius = 3.0f; else if (radius < 0.5f) radius = 0.5f; @@ -1860,13 +1873,14 @@ Mesh GenMeshHeightmap(Image heightmap, Vector3 size) Mesh GenMeshCubicmap(Image cubicmap, Vector3 cubeSize) { Mesh mesh = { 0 }; + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); Color *cubicmapPixels = GetImageData(cubicmap); int mapWidth = cubicmap.width; int mapHeight = cubicmap.height; - // NOTE: Max possible number of triangles numCubes * (12 triangles by cube) + // NOTE: Max possible number of triangles numCubes*(12 triangles by cube) int maxTriangles = cubicmap.width*cubicmap.height*12; int vCounter = 0; // Used to count vertices @@ -2478,11 +2492,11 @@ bool CheckCollisionSpheres(Vector3 centerA, float radiusA, Vector3 centerB, floa // Simple way to check for collision, just checking distance between two points // Unfortunately, sqrtf() is a costly operation, so we avoid it with following solution /* - float dx = centerA.x - centerB.x; // X distance between centers - float dy = centerA.y - centerB.y; // Y distance between centers - float dz = centerA.z - centerB.z; // Z distance between centers + float dx = centerA.x - centerB.x; // X distance between centers + float dy = centerA.y - centerB.y; // Y distance between centers + float dz = centerA.z - centerB.z; // Z distance between centers - float distance = sqrtf(dx*dx + dy*dy + dz*dz); // Distance between centers + float distance = sqrtf(dx*dx + dy*dy + dz*dz); // Distance between centers if (distance <= (radiusA + radiusB)) collision = true; */ @@ -2510,35 +2524,35 @@ bool CheckCollisionBoxes(BoundingBox box1, BoundingBox box2) } // Detect collision between box and sphere -bool CheckCollisionBoxSphere(BoundingBox box, Vector3 centerSphere, float radiusSphere) +bool CheckCollisionBoxSphere(BoundingBox box, Vector3 center, float radius) { bool collision = false; float dmin = 0; - if (centerSphere.x < box.min.x) dmin += powf(centerSphere.x - box.min.x, 2); - else if (centerSphere.x > box.max.x) dmin += powf(centerSphere.x - box.max.x, 2); + if (center.x < box.min.x) dmin += powf(center.x - box.min.x, 2); + else if (center.x > box.max.x) dmin += powf(center.x - box.max.x, 2); - if (centerSphere.y < box.min.y) dmin += powf(centerSphere.y - box.min.y, 2); - else if (centerSphere.y > box.max.y) dmin += powf(centerSphere.y - box.max.y, 2); + if (center.y < box.min.y) dmin += powf(center.y - box.min.y, 2); + else if (center.y > box.max.y) dmin += powf(center.y - box.max.y, 2); - if (centerSphere.z < box.min.z) dmin += powf(centerSphere.z - box.min.z, 2); - else if (centerSphere.z > box.max.z) dmin += powf(centerSphere.z - box.max.z, 2); + if (center.z < box.min.z) dmin += powf(center.z - box.min.z, 2); + else if (center.z > box.max.z) dmin += powf(center.z - box.max.z, 2); - if (dmin <= (radiusSphere*radiusSphere)) collision = true; + if (dmin <= (radius*radius)) collision = true; return collision; } // Detect collision between ray and sphere -bool CheckCollisionRaySphere(Ray ray, Vector3 spherePosition, float sphereRadius) +bool CheckCollisionRaySphere(Ray ray, Vector3 center, float radius) { bool collision = false; - Vector3 raySpherePos = Vector3Subtract(spherePosition, ray.position); + Vector3 raySpherePos = Vector3Subtract(center, ray.position); float distance = Vector3Length(raySpherePos); float vector = Vector3DotProduct(raySpherePos, ray.direction); - float d = sphereRadius*sphereRadius - (distance*distance - vector*vector); + float d = radius*radius - (distance*distance - vector*vector); if (d >= 0.0f) collision = true; @@ -2546,21 +2560,21 @@ bool CheckCollisionRaySphere(Ray ray, Vector3 spherePosition, float sphereRadius } // Detect collision between ray and sphere with extended parameters and collision point detection -bool CheckCollisionRaySphereEx(Ray ray, Vector3 spherePosition, float sphereRadius, Vector3 *collisionPoint) +bool CheckCollisionRaySphereEx(Ray ray, Vector3 center, float radius, Vector3 *collisionPoint) { bool collision = false; - Vector3 raySpherePos = Vector3Subtract(spherePosition, ray.position); + Vector3 raySpherePos = Vector3Subtract(center, ray.position); float distance = Vector3Length(raySpherePos); float vector = Vector3DotProduct(raySpherePos, ray.direction); - float d = sphereRadius*sphereRadius - (distance*distance - vector*vector); + float d = radius*radius - (distance*distance - vector*vector); if (d >= 0.0f) collision = true; // Check if ray origin is inside the sphere to calculate the correct collision point float collisionDistance = 0; - if (distance < sphereRadius) collisionDistance = vector + sqrtf(d); + if (distance < radius) collisionDistance = vector + sqrtf(d); else collisionDistance = vector - sqrtf(d); // Calculate collision point @@ -2594,29 +2608,29 @@ bool CheckCollisionRayBox(Ray ray, BoundingBox box) } // Get collision info between ray and model -RayHitInfo GetCollisionRayModel(Ray ray, Model *model) +RayHitInfo GetCollisionRayModel(Ray ray, Model model) { RayHitInfo result = { 0 }; - for (int m = 0; m < model->meshCount; m++) + for (int m = 0; m < model.meshCount; m++) { // Check if meshhas vertex data on CPU for testing - if (model->meshes[m].vertices != NULL) + if (model.meshes[m].vertices != NULL) { // model->mesh.triangleCount may not be set, vertexCount is more reliable - int triangleCount = model->meshes[m].vertexCount/3; + int triangleCount = model.meshes[m].vertexCount/3; // Test against all triangles in mesh for (int i = 0; i < triangleCount; i++) { Vector3 a, b, c; - Vector3 *vertdata = (Vector3 *)model->meshes[m].vertices; + Vector3 *vertdata = (Vector3 *)model.meshes[m].vertices; - if (model->meshes[m].indices) + if (model.meshes[m].indices) { - a = vertdata[model->meshes[m].indices[i*3 + 0]]; - b = vertdata[model->meshes[m].indices[i*3 + 1]]; - c = vertdata[model->meshes[m].indices[i*3 + 2]]; + a = vertdata[model.meshes[m].indices[i*3 + 0]]; + b = vertdata[model.meshes[m].indices[i*3 + 1]]; + c = vertdata[model.meshes[m].indices[i*3 + 2]]; } else { @@ -2625,9 +2639,9 @@ RayHitInfo GetCollisionRayModel(Ray ray, Model *model) c = vertdata[i*3 + 2]; } - a = Vector3Transform(a, model->transform); - b = Vector3Transform(b, model->transform); - c = Vector3Transform(c, model->transform); + a = Vector3Transform(a, model.transform); + b = Vector3Transform(b, model.transform); + c = Vector3Transform(c, model.transform); RayHitInfo triHitInfo = GetCollisionRayTriangle(ray, a, b, c); @@ -2800,6 +2814,7 @@ static Model LoadOBJ(const char *fileName) mesh.vertices = (float *)RL_MALLOC(mesh.vertexCount*3*sizeof(float)); mesh.texcoords = (float *)RL_MALLOC(mesh.vertexCount*2*sizeof(float)); mesh.normals = (float *)RL_MALLOC(mesh.vertexCount*3*sizeof(float)); + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); int vCount = 0; int vtCount = 0; @@ -3068,6 +3083,8 @@ static Model LoadIQM(const char *fileName) // NOTE: Animated vertex should be re-uploaded to GPU (if not using GPU skinning) model.meshes[i].animVertices = RL_MALLOC(sizeof(float)*model.meshes[i].vertexCount*3); model.meshes[i].animNormals = RL_MALLOC(sizeof(float)*model.meshes[i].vertexCount*3); + + model.meshes[i].vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); } // Triangles data processing @@ -3386,8 +3403,10 @@ static Model LoadGLTF(const char *fileName) model.meshCount = primitivesCount; model.meshes = RL_CALLOC(model.meshCount, sizeof(Mesh)); model.materialCount = data->materials_count + 1; - model.materials = RL_MALLOC(model.materialCount * sizeof(Material)); - model.meshMaterial = RL_MALLOC(model.meshCount * sizeof(int)); + model.materials = RL_MALLOC(model.materialCount*sizeof(Material)); + model.meshMaterial = RL_MALLOC(model.meshCount*sizeof(int)); + + for (int i = 0; i < model.meshCount; i++) model.meshes[i].vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); for (int i = 0; i < model.materialCount - 1; i++) { @@ -3397,10 +3416,10 @@ static Model LoadGLTF(const char *fileName) if (data->materials[i].pbr_metallic_roughness.base_color_factor) { - tint.r = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[0] * 255.99f); - tint.g = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[1] * 255.99f); - tint.b = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[2] * 255.99f); - tint.a = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[3] * 255.99f); + tint.r = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[0]*255.99f); + tint.g = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[1]*255.99f); + tint.b = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[2]*255.99f); + tint.a = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[3]*255.99f); } else { diff --git a/src/raylib.h b/src/raylib.h index dd3ef86c9..04740def8 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -96,10 +96,6 @@ #define MAX_TOUCH_POINTS 10 // Maximum number of touch points supported -// Shader and material limits -#define MAX_SHADER_LOCATIONS 32 // Maximum number of predefined locations stored in shader struct -#define MAX_MATERIAL_MAPS 12 // Maximum number of texture maps stored in shader struct - // Allow custom memory allocators #ifndef RL_MALLOC #define RL_MALLOC(sz) malloc(sz) @@ -322,13 +318,13 @@ typedef struct Mesh { // OpenGL identifiers unsigned int vaoId; // OpenGL Vertex Array Object id - unsigned int vboId[7]; // OpenGL Vertex Buffer Objects id (default vertex data) + unsigned int *vboId; // OpenGL Vertex Buffer Objects id (default vertex data) } Mesh; // Shader type (generic) typedef struct Shader { - unsigned int id; // Shader program id - int locs[MAX_SHADER_LOCATIONS]; // Shader locations array + unsigned int id; // Shader program id + int *locs; // Shader locations array (MAX_SHADER_LOCATIONS) } Shader; // Material texture map @@ -341,7 +337,7 @@ typedef struct MaterialMap { // Material type (generic) typedef struct Material { Shader shader; // Material shader - MaterialMap maps[MAX_MATERIAL_MAPS]; // Material maps + MaterialMap *maps; // Material maps array (MAX_MATERIAL_MAPS) float *params; // Material generic parameters (if required) } Material; @@ -1240,7 +1236,7 @@ RLAPI void UnloadModel(Model model); // Mesh loading/unloading functions RLAPI Mesh *LoadMeshes(const char *fileName, int *meshCount); // Load meshes from model file RLAPI void ExportMesh(Mesh mesh, const char *fileName); // Export mesh data to file -RLAPI void UnloadMesh(Mesh *mesh); // Unload mesh from memory (RAM and/or VRAM) +RLAPI void UnloadMesh(Mesh mesh); // Unload mesh from memory (RAM and/or VRAM) // Material loading/unloading functions RLAPI Material *LoadMaterials(const char *fileName, int *materialCount); // Load materials from model file @@ -1284,11 +1280,11 @@ RLAPI void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle sourceRe // Collision detection functions RLAPI bool CheckCollisionSpheres(Vector3 centerA, float radiusA, Vector3 centerB, float radiusB); // Detect collision between two spheres RLAPI bool CheckCollisionBoxes(BoundingBox box1, BoundingBox box2); // Detect collision between two bounding boxes -RLAPI bool CheckCollisionBoxSphere(BoundingBox box, Vector3 centerSphere, float radiusSphere); // Detect collision between box and sphere -RLAPI bool CheckCollisionRaySphere(Ray ray, Vector3 spherePosition, float sphereRadius); // Detect collision between ray and sphere -RLAPI bool CheckCollisionRaySphereEx(Ray ray, Vector3 spherePosition, float sphereRadius, Vector3 *collisionPoint); // Detect collision between ray and sphere, returns collision point +RLAPI bool CheckCollisionBoxSphere(BoundingBox box, Vector3 center, float radius); // Detect collision between box and sphere +RLAPI bool CheckCollisionRaySphere(Ray ray, Vector3 center, float radius); // Detect collision between ray and sphere +RLAPI bool CheckCollisionRaySphereEx(Ray ray, Vector3 center, float radius, Vector3 *collisionPoint); // Detect collision between ray and sphere, returns collision point RLAPI bool CheckCollisionRayBox(Ray ray, BoundingBox box); // Detect collision between ray and box -RLAPI RayHitInfo GetCollisionRayModel(Ray ray, Model *model); // Get collision info between ray and model +RLAPI RayHitInfo GetCollisionRayModel(Ray ray, Model model); // Get collision info between ray and model RLAPI RayHitInfo GetCollisionRayTriangle(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3); // Get collision info between ray and triangle RLAPI RayHitInfo GetCollisionRayGround(Ray ray, float groundHeight); // Get collision info between ray and ground plane (Y-normal plane) diff --git a/src/rlgl.h b/src/rlgl.h index 797ea9c06..aa0c5e144 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -131,6 +131,10 @@ #define MAX_MATRIX_STACK_SIZE 32 // Max size of Matrix stack #define MAX_DRAWCALL_REGISTERED 256 // Max draws by state changes (mode, texture) +// Shader and material limits +#define MAX_SHADER_LOCATIONS 32 // Maximum number of predefined locations stored in shader struct +#define MAX_MATERIAL_MAPS 12 // Maximum number of texture maps stored in shader struct + // Texture parameters (equivalent to OpenGL defines) #define RL_TEXTURE_WRAP_S 0x2802 // GL_TEXTURE_WRAP_S #define RL_TEXTURE_WRAP_T 0x2803 // GL_TEXTURE_WRAP_T @@ -228,7 +232,7 @@ typedef unsigned char byte; // OpenGL identifiers unsigned int vaoId; // OpenGL Vertex Array Object id - unsigned int vboId[7]; // OpenGL Vertex Buffer Objects id (7 types of vertex data) + unsigned int *vboId; // OpenGL Vertex Buffer Objects id (7 types of vertex data) } Mesh; // Shader and material limits @@ -237,8 +241,8 @@ typedef unsigned char byte; // Shader type (generic) typedef struct Shader { - unsigned int id; // Shader program id - int locs[MAX_SHADER_LOCATIONS]; // Shader locations array + unsigned int id; // Shader program id + int *locs; // Shader locations array (MAX_SHADER_LOCATIONS) } Shader; // Material texture map @@ -251,7 +255,7 @@ typedef unsigned char byte; // Material type (generic) typedef struct Material { Shader shader; // Material shader - MaterialMap maps[MAX_MATERIAL_MAPS]; // Material maps + MaterialMap *maps; // Material maps (MAX_MATERIAL_MAPS) float *params; // Material generic parameters (if required) } Material; @@ -499,7 +503,7 @@ RLAPI bool rlRenderTextureComplete(RenderTexture target); // Ver RLAPI void rlLoadMesh(Mesh *mesh, bool dynamic); // Upload vertex data into GPU and provided VAO/VBO ids RLAPI void rlUpdateMesh(Mesh mesh, int buffer, int numVertex); // Update vertex data on GPU (upload new data to one buffer) RLAPI void rlDrawMesh(Mesh mesh, Material material, Matrix transform); // Draw a 3d mesh with material and transform -RLAPI void rlUnloadMesh(Mesh *mesh); // Unload mesh data from CPU and GPU +RLAPI void rlUnloadMesh(Mesh mesh); // Unload mesh data from CPU and GPU // NOTE: There is a set of shader related functions that are available to end user, // to avoid creating function wrappers through core module, they have been directly declared in raylib.h @@ -2757,30 +2761,30 @@ void rlDrawMesh(Mesh mesh, Material material, Matrix transform) } // Unload mesh data from CPU and GPU -void rlUnloadMesh(Mesh *mesh) +void rlUnloadMesh(Mesh mesh) { - RL_FREE(mesh->vertices); - RL_FREE(mesh->texcoords); - RL_FREE(mesh->normals); - RL_FREE(mesh->colors); - RL_FREE(mesh->tangents); - RL_FREE(mesh->texcoords2); - RL_FREE(mesh->indices); + RL_FREE(mesh.vertices); + RL_FREE(mesh.texcoords); + RL_FREE(mesh.normals); + RL_FREE(mesh.colors); + RL_FREE(mesh.tangents); + RL_FREE(mesh.texcoords2); + RL_FREE(mesh.indices); - RL_FREE(mesh->animVertices); - RL_FREE(mesh->animNormals); - RL_FREE(mesh->boneWeights); - RL_FREE(mesh->boneIds); + RL_FREE(mesh.animVertices); + RL_FREE(mesh.animNormals); + RL_FREE(mesh.boneWeights); + RL_FREE(mesh.boneIds); - rlDeleteBuffers(mesh->vboId[0]); // vertex - rlDeleteBuffers(mesh->vboId[1]); // texcoords - rlDeleteBuffers(mesh->vboId[2]); // normals - rlDeleteBuffers(mesh->vboId[3]); // colors - rlDeleteBuffers(mesh->vboId[4]); // tangents - rlDeleteBuffers(mesh->vboId[5]); // texcoords2 - rlDeleteBuffers(mesh->vboId[6]); // indices + rlDeleteBuffers(mesh.vboId[0]); // vertex + rlDeleteBuffers(mesh.vboId[1]); // texcoords + rlDeleteBuffers(mesh.vboId[2]); // normals + rlDeleteBuffers(mesh.vboId[3]); // colors + rlDeleteBuffers(mesh.vboId[4]); // tangents + rlDeleteBuffers(mesh.vboId[5]); // texcoords2 + rlDeleteBuffers(mesh.vboId[6]); // indices - rlDeleteVertexArrays(mesh->vaoId); + rlDeleteVertexArrays(mesh.vaoId); } // Read screen pixel data (color buffer) @@ -2953,6 +2957,7 @@ char *LoadText(const char *fileName) Shader LoadShader(const char *vsFileName, const char *fsFileName) { Shader shader = { 0 }; + shader.locs = (int *)RL_CALLOC(MAX_SHADER_LOCATIONS*sizeof(int), 1); char *vShaderStr = NULL; char *fShaderStr = NULL; @@ -2973,6 +2978,7 @@ Shader LoadShader(const char *vsFileName, const char *fsFileName) Shader LoadShaderCode(char *vsCode, char *fsCode) { Shader shader = { 0 }; + shader.locs = (int *)RL_CALLOC(MAX_SHADER_LOCATIONS*sizeof(int), 1); // NOTE: All locations must be reseted to -1 (no location) for (int i = 0; i < MAX_SHADER_LOCATIONS; i++) shader.locs[i] = -1; @@ -3038,6 +3044,8 @@ void UnloadShader(Shader shader) rlDeleteShader(shader.id); TraceLog(LOG_INFO, "[SHDR ID %i] Unloaded shader program data", shader.id); } + + RL_FREE(shader.locs); } // Begin custom shader mode @@ -3861,6 +3869,7 @@ static unsigned int LoadShaderProgram(unsigned int vShaderId, unsigned int fShad static Shader LoadShaderDefault(void) { Shader shader = { 0 }; + shader.locs = (int *)RL_CALLOC(MAX_SHADER_LOCATIONS*sizeof(int), 1); // NOTE: All locations must be reseted to -1 (no location) for (int i = 0; i < MAX_SHADER_LOCATIONS; i++) shader.locs[i] = -1; From 439e73a8ece912f2a7df5f4c0ed7fc6fb7673672 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 7 Aug 2019 00:33:33 +0200 Subject: [PATCH 011/123] Change raylib version to 2.6-dev --- src/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.h b/src/config.h index 07cf5fe74..050cce183 100644 --- a/src/config.h +++ b/src/config.h @@ -25,7 +25,7 @@ * **********************************************************************************************/ -#define RAYLIB_VERSION "2.5" +#define RAYLIB_VERSION "2.6-dev" // Edit to control what features Makefile'd raylib is compiled with #if defined(RAYLIB_CMAKE) From 3d46297cc150803a55e27f446b2d4708ff0b04bd Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 7 Aug 2019 00:33:57 +0200 Subject: [PATCH 012/123] Update external libraries --- src/external/cgltf.h | 598 +++++++++++++--- src/external/dr_flac.h | 109 ++- src/external/dr_mp3.h | 114 ++- src/external/dr_wav.h | 17 +- src/external/miniaudio.h | 1219 ++++++++++++++++++++++---------- src/external/stb_image_write.h | 5 - 6 files changed, 1495 insertions(+), 567 deletions(-) diff --git a/src/external/cgltf.h b/src/external/cgltf.h index 85d5c9850..7f3f77f7f 100644 --- a/src/external/cgltf.h +++ b/src/external/cgltf.h @@ -1,7 +1,7 @@ /** * cgltf - a single-file glTF 2.0 parser written in C99. * - * Version: 1.0 + * Version: 1.2 * * Website: https://github.com/jkuhlmann/cgltf * @@ -35,8 +35,15 @@ * variable. * * `cgltf_result cgltf_load_buffers(const cgltf_options*, cgltf_data*, - * const char*)` can be optionally called to open and read buffer - * files using the `FILE*` APIs. + * const char* gltf_path)` can be optionally called to open and read buffer + * files using the `FILE*` APIs. The `gltf_path` argument is the path to + * the original glTF file, which allows the parser to resolve the path to + * buffer files. + * + * `cgltf_result cgltf_load_buffer_base64(const cgltf_options* options, + * cgltf_size size, const char* base64, void** out_data)` decodes + * base64-encoded data content. Used internally by `cgltf_load_buffers()` + * and may be useful if you're not dealing with normal files. * * `cgltf_result cgltf_parse_file(const cgltf_options* options, const * char* path, cgltf_data** out_data)` can be used to open the given @@ -44,6 +51,29 @@ * * `cgltf_result cgltf_validate(cgltf_data*)` can be used to do additional * checks to make sure the parsed glTF data is valid. + * + * `cgltf_node_transform_local` converts the translation / rotation / scale properties of a node + * into a mat4. + * + * `cgltf_node_transform_world` calls `cgltf_node_transform_local` on every ancestor in order + * to compute the root-to-node transformation. + * + * `cgltf_accessor_read_float` reads a certain element from an accessor and converts it to + * floating point, assuming that `cgltf_load_buffers` has already been called. The passed-in element + * size is the number of floats in the output buffer, which should be in the range [1, 16]. 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 + * and only works with single-component data types. + * + * `cgltf_result cgltf_copy_extras_json(const cgltf_data*, const cgltf_extras*, + * char* dest, cgltf_size* dest_size)` allows to retrieve the "extras" data that + * can be attached to many glTF objects (which can be arbitrary JSON data). The + * `cgltf_extras` struct stores the offsets of the start and end of the extras JSON data + * as it appears in the complete glTF JSON data. This function copies the extras data + * into the provided buffer. If `dest` is NULL, the length of the data is written into + * `dest_size`. You can then parse this data using your own JSON parser + * or, if you've included the cgltf implementation using the integrated JSMN JSON parser. */ #ifndef CGLTF_H_INCLUDED__ #define CGLTF_H_INCLUDED__ @@ -175,11 +205,17 @@ typedef enum cgltf_light_type { cgltf_light_type_spot, } cgltf_light_type; +typedef struct cgltf_extras { + cgltf_size start_offset; + cgltf_size end_offset; +} cgltf_extras; + typedef struct cgltf_buffer { cgltf_size size; char* uri; void* data; /* loaded by cgltf_load_buffers */ + cgltf_extras extras; } cgltf_buffer; typedef struct cgltf_buffer_view @@ -189,6 +225,7 @@ typedef struct cgltf_buffer_view cgltf_size size; cgltf_size stride; /* 0 == automatically determined by accessor */ cgltf_buffer_view_type type; + cgltf_extras extras; } cgltf_buffer_view; typedef struct cgltf_accessor_sparse @@ -199,6 +236,9 @@ typedef struct cgltf_accessor_sparse cgltf_component_type indices_component_type; cgltf_buffer_view* values_buffer_view; cgltf_size values_byte_offset; + cgltf_extras extras; + cgltf_extras indices_extras; + cgltf_extras values_extras; } cgltf_accessor_sparse; typedef struct cgltf_accessor @@ -216,6 +256,7 @@ typedef struct cgltf_accessor cgltf_float max[16]; cgltf_bool is_sparse; cgltf_accessor_sparse sparse; + cgltf_extras extras; } cgltf_accessor; typedef struct cgltf_attribute @@ -232,6 +273,7 @@ typedef struct cgltf_image char* uri; cgltf_buffer_view* buffer_view; char* mime_type; + cgltf_extras extras; } cgltf_image; typedef struct cgltf_sampler @@ -240,6 +282,7 @@ typedef struct cgltf_sampler cgltf_int min_filter; cgltf_int wrap_s; cgltf_int wrap_t; + cgltf_extras extras; } cgltf_sampler; typedef struct cgltf_texture @@ -247,6 +290,7 @@ typedef struct cgltf_texture char* name; cgltf_image* image; cgltf_sampler* sampler; + cgltf_extras extras; } cgltf_texture; typedef struct cgltf_texture_transform @@ -264,6 +308,7 @@ typedef struct cgltf_texture_view cgltf_float scale; /* equivalent to strength for occlusion_texture */ cgltf_bool has_transform; cgltf_texture_transform transform; + cgltf_extras extras; } cgltf_texture_view; typedef struct cgltf_pbr_metallic_roughness @@ -274,6 +319,8 @@ typedef struct cgltf_pbr_metallic_roughness cgltf_float base_color_factor[4]; cgltf_float metallic_factor; cgltf_float roughness_factor; + + cgltf_extras extras; } cgltf_pbr_metallic_roughness; typedef struct cgltf_pbr_specular_glossiness @@ -301,6 +348,7 @@ typedef struct cgltf_material cgltf_float alpha_cutoff; cgltf_bool double_sided; cgltf_bool unlit; + cgltf_extras extras; } cgltf_material; typedef struct cgltf_morph_target { @@ -316,6 +364,7 @@ typedef struct cgltf_primitive { cgltf_size attributes_count; cgltf_morph_target* targets; cgltf_size targets_count; + cgltf_extras extras; } cgltf_primitive; typedef struct cgltf_mesh { @@ -324,6 +373,7 @@ typedef struct cgltf_mesh { cgltf_size primitives_count; cgltf_float* weights; cgltf_size weights_count; + cgltf_extras extras; } cgltf_mesh; typedef struct cgltf_node cgltf_node; @@ -334,6 +384,7 @@ typedef struct cgltf_skin { cgltf_size joints_count; cgltf_node* skeleton; cgltf_accessor* inverse_bind_matrices; + cgltf_extras extras; } cgltf_skin; typedef struct cgltf_camera_perspective { @@ -341,6 +392,7 @@ typedef struct cgltf_camera_perspective { cgltf_float yfov; cgltf_float zfar; cgltf_float znear; + cgltf_extras extras; } cgltf_camera_perspective; typedef struct cgltf_camera_orthographic { @@ -348,6 +400,7 @@ typedef struct cgltf_camera_orthographic { cgltf_float ymag; cgltf_float zfar; cgltf_float znear; + cgltf_extras extras; } cgltf_camera_orthographic; typedef struct cgltf_camera { @@ -357,6 +410,7 @@ typedef struct cgltf_camera { cgltf_camera_perspective perspective; cgltf_camera_orthographic orthographic; }; + cgltf_extras extras; } cgltf_camera; typedef struct cgltf_light { @@ -388,24 +442,28 @@ struct cgltf_node { cgltf_float rotation[4]; cgltf_float scale[3]; cgltf_float matrix[16]; + cgltf_extras extras; }; typedef struct cgltf_scene { char* name; cgltf_node** nodes; cgltf_size nodes_count; + cgltf_extras extras; } cgltf_scene; typedef struct cgltf_animation_sampler { cgltf_accessor* input; cgltf_accessor* output; cgltf_interpolation_type interpolation; + cgltf_extras extras; } cgltf_animation_sampler; typedef struct cgltf_animation_channel { cgltf_animation_sampler* sampler; cgltf_node* target_node; cgltf_animation_path_type target_path; + cgltf_extras extras; } cgltf_animation_channel; typedef struct cgltf_animation { @@ -414,6 +472,7 @@ typedef struct cgltf_animation { cgltf_size samplers_count; cgltf_animation_channel* channels; cgltf_size channels_count; + cgltf_extras extras; } cgltf_animation; typedef struct cgltf_asset { @@ -421,6 +480,7 @@ typedef struct cgltf_asset { char* generator; char* version; char* min_version; + cgltf_extras extras; } cgltf_asset; typedef struct cgltf_data @@ -474,6 +534,17 @@ typedef struct cgltf_data cgltf_animation* animations; cgltf_size animations_count; + cgltf_extras extras; + + char** extensions_used; + cgltf_size extensions_used_count; + + char** extensions_required; + cgltf_size extensions_required_count; + + const char* json; + cgltf_size json_size; + const void* bin; cgltf_size bin_size; @@ -495,7 +566,10 @@ cgltf_result cgltf_parse_file( cgltf_result cgltf_load_buffers( const cgltf_options* options, cgltf_data* data, - const char* base_path); + const char* gltf_path); + + +cgltf_result cgltf_load_buffer_base64(const cgltf_options* options, cgltf_size size, const char* base64, void** out_data); cgltf_result cgltf_validate( cgltf_data* data); @@ -505,6 +579,11 @@ void cgltf_free(cgltf_data* data); void cgltf_node_transform_local(const cgltf_node* node, cgltf_float* out_matrix); void cgltf_node_transform_world(const cgltf_node* node, cgltf_float* out_matrix); +cgltf_bool cgltf_accessor_read_float(const cgltf_accessor* accessor, cgltf_size index, cgltf_float* out, cgltf_size element_size); +cgltf_size cgltf_accessor_read_index(const cgltf_accessor* accessor, cgltf_size index); + +cgltf_result cgltf_copy_extras_json(const cgltf_data* data, const cgltf_extras* extras, char* dest, cgltf_size* dest_size); + #ifdef __cplusplus } #endif @@ -528,7 +607,14 @@ void cgltf_node_transform_world(const cgltf_node* node, cgltf_float* out_matrix) #include /* For uint8_t, uint32_t */ #include /* For strncpy */ #include /* For malloc, free */ -#include /* For fopen */ +#include /* For fopen */ +#include /* For UINT_MAX etc */ + +/* JSMN_PARENT_LINKS is necessary to make parsing large structures linear in input size */ +#define JSMN_PARENT_LINKS + +/* JSMN_STRICT is necessary to reject invalid JSON documents */ +#define JSMN_STRICT /* * -- jsmn.h start -- @@ -580,11 +666,13 @@ static const uint32_t GlbMagicBinChunk = 0x004E4942; static void* cgltf_default_alloc(void* user, cgltf_size size) { + (void)user; return malloc(size); } static void cgltf_default_free(void* user, void* ptr) { + (void)user; free(ptr); } @@ -810,22 +898,22 @@ static void cgltf_combine_paths(char* path, const char* base, const char* uri) } else { - strcpy(path, base); + strcpy(path, uri); } } -static cgltf_result cgltf_load_buffer_file(const cgltf_options* options, cgltf_size size, const char* uri, const char* base_path, void** out_data) +static cgltf_result cgltf_load_buffer_file(const cgltf_options* options, cgltf_size size, const char* uri, const char* gltf_path, void** out_data) { void* (*memory_alloc)(void*, cgltf_size) = options->memory_alloc ? options->memory_alloc : &cgltf_default_alloc; void (*memory_free)(void*, void*) = options->memory_free ? options->memory_free : &cgltf_default_free; - char* path = (char*)memory_alloc(options->memory_user_data, strlen(uri) + strlen(base_path) + 1); + char* path = (char*)memory_alloc(options->memory_user_data, strlen(uri) + strlen(gltf_path) + 1); if (!path) { return cgltf_result_out_of_memory; } - cgltf_combine_paths(path, base_path, uri); + cgltf_combine_paths(path, gltf_path, uri); FILE* file = fopen(path, "rb"); @@ -858,7 +946,7 @@ static cgltf_result cgltf_load_buffer_file(const cgltf_options* options, cgltf_s return cgltf_result_success; } -static cgltf_result cgltf_load_buffer_base64(const cgltf_options* options, cgltf_size size, const char* base64, void** out_data) +cgltf_result cgltf_load_buffer_base64(const cgltf_options* options, cgltf_size size, const char* base64, void** out_data) { void* (*memory_alloc)(void*, cgltf_size) = options->memory_alloc ? options->memory_alloc : &cgltf_default_alloc; void (*memory_free)(void*, void*) = options->memory_free ? options->memory_free : &cgltf_default_free; @@ -905,7 +993,7 @@ static cgltf_result cgltf_load_buffer_base64(const cgltf_options* options, cgltf return cgltf_result_success; } -cgltf_result cgltf_load_buffers(const cgltf_options* options, cgltf_data* data, const char* base_path) +cgltf_result cgltf_load_buffers(const cgltf_options* options, cgltf_data* data, const char* gltf_path) { if (options == NULL) { @@ -954,9 +1042,9 @@ cgltf_result cgltf_load_buffers(const cgltf_options* options, cgltf_data* data, return cgltf_result_unknown_format; } } - else if (strstr(uri, "://") == NULL) + else if (strstr(uri, "://") == NULL && gltf_path) { - cgltf_result res = cgltf_load_buffer_file(options, data->buffers[i].size, uri, base_path, &data->buffers[i].data); + cgltf_result res = cgltf_load_buffer_file(options, data->buffers[i].size, uri, gltf_path, &data->buffers[i].data); if (res != cgltf_result_success) { @@ -1150,6 +1238,34 @@ cgltf_result cgltf_validate(cgltf_data* data) return cgltf_result_success; } +cgltf_result cgltf_copy_extras_json(const cgltf_data* data, const cgltf_extras* extras, char* dest, cgltf_size* dest_size) +{ + cgltf_size json_size = extras->end_offset - extras->start_offset; + + if (!dest) + { + if (dest_size) + { + *dest_size = json_size + 1; + return cgltf_result_success; + } + return cgltf_result_invalid_options; + } + + if (*dest_size + 1 < json_size) + { + strncpy(dest, data->json + extras->start_offset, *dest_size - 1); + dest[*dest_size - 1] = 0; + } + else + { + strncpy(dest, data->json + extras->start_offset, json_size); + dest[json_size] = 0; + } + + return cgltf_result_success; +} + void cgltf_free(cgltf_data* data) { if (!data) @@ -1282,6 +1398,20 @@ void cgltf_free(cgltf_data* data) data->memory_free(data->memory_user_data, data->animations); + for (cgltf_size i = 0; i < data->extensions_used_count; ++i) + { + data->memory_free(data->memory_user_data, data->extensions_used[i]); + } + + data->memory_free(data->memory_user_data, data->extensions_used); + + for (cgltf_size i = 0; i < data->extensions_required_count; ++i) + { + data->memory_free(data->memory_user_data, data->extensions_required[i]); + } + + data->memory_free(data->memory_user_data, data->extensions_required); + data->memory_free(data->memory_user_data, data->file_data); data->memory_free(data->memory_user_data, data); @@ -1367,6 +1497,142 @@ void cgltf_node_transform_world(const cgltf_node* node, cgltf_float* out_matrix) } } +static cgltf_size cgltf_component_read_index(const void* in, cgltf_component_type component_type) +{ + switch (component_type) + { + case cgltf_component_type_r_16: + return *((const int16_t*) in); + case cgltf_component_type_r_16u: + return *((const uint16_t*) in); + case cgltf_component_type_r_32u: + return *((const uint32_t*) in); + case cgltf_component_type_r_32f: + return (cgltf_size)*((const float*) in); + case cgltf_component_type_r_8: + return *((const int8_t*) in); + case cgltf_component_type_r_8u: + case cgltf_component_type_invalid: + default: + return *((const uint8_t*) in); + } +} + +static cgltf_float cgltf_component_read_float(const void* in, cgltf_component_type component_type, cgltf_bool normalized) +{ + if (component_type == cgltf_component_type_r_32f) + { + return *((const float*) in); + } + + if (normalized) + { + switch (component_type) + { + case cgltf_component_type_r_32u: + return *((const uint32_t*) in) / (float) UINT_MAX; + case cgltf_component_type_r_16: + return *((const int16_t*) in) / (float) SHRT_MAX; + case cgltf_component_type_r_16u: + return *((const uint16_t*) in) / (float) USHRT_MAX; + case cgltf_component_type_r_8: + return *((const int8_t*) in) / (float) SCHAR_MAX; + case cgltf_component_type_r_8u: + case cgltf_component_type_invalid: + default: + return *((const uint8_t*) in) / (float) CHAR_MAX; + } + } + + return (cgltf_float)cgltf_component_read_index(in, component_type); +} + +static cgltf_size cgltf_num_components(cgltf_type type); +static cgltf_size cgltf_component_size(cgltf_component_type component_type); + +static cgltf_bool cgltf_element_read_float(const uint8_t* element, cgltf_type type, cgltf_component_type component_type, cgltf_bool normalized, cgltf_float* out, cgltf_size element_size) +{ + cgltf_size num_components = cgltf_num_components(type); + + if (element_size < num_components) { + return 0; + } + + // There are three special cases for component extraction, see #data-alignment in the 2.0 spec. + + cgltf_size component_size = cgltf_component_size(component_type); + + if (type == cgltf_type_mat2 && component_size == 1) + { + out[0] = cgltf_component_read_float(element, component_type, normalized); + out[1] = cgltf_component_read_float(element + 1, component_type, normalized); + out[2] = cgltf_component_read_float(element + 4, component_type, normalized); + out[3] = cgltf_component_read_float(element + 5, component_type, normalized); + return 1; + } + + if (type == cgltf_type_mat3 && component_size == 1) + { + out[0] = cgltf_component_read_float(element, component_type, normalized); + out[1] = cgltf_component_read_float(element + 1, component_type, normalized); + out[2] = cgltf_component_read_float(element + 2, component_type, normalized); + out[3] = cgltf_component_read_float(element + 4, component_type, normalized); + out[4] = cgltf_component_read_float(element + 5, component_type, normalized); + out[5] = cgltf_component_read_float(element + 6, component_type, normalized); + out[6] = cgltf_component_read_float(element + 8, component_type, normalized); + out[7] = cgltf_component_read_float(element + 9, component_type, normalized); + out[8] = cgltf_component_read_float(element + 10, component_type, normalized); + return 1; + } + + if (type == cgltf_type_mat3 && component_size == 2) + { + out[0] = cgltf_component_read_float(element, component_type, normalized); + out[1] = cgltf_component_read_float(element + 2, component_type, normalized); + out[2] = cgltf_component_read_float(element + 4, component_type, normalized); + out[3] = cgltf_component_read_float(element + 8, component_type, normalized); + out[4] = cgltf_component_read_float(element + 10, component_type, normalized); + out[5] = cgltf_component_read_float(element + 12, component_type, normalized); + out[6] = cgltf_component_read_float(element + 16, component_type, normalized); + out[7] = cgltf_component_read_float(element + 18, component_type, normalized); + out[8] = cgltf_component_read_float(element + 20, component_type, normalized); + return 1; + } + + for (cgltf_size i = 0; i < num_components; ++i) + { + out[i] = cgltf_component_read_float(element + component_size * i, component_type, normalized); + } + return 1; +} + + +cgltf_bool cgltf_accessor_read_float(const cgltf_accessor* accessor, cgltf_size index, cgltf_float* out, cgltf_size element_size) +{ + if (accessor->is_sparse || accessor->buffer_view == NULL) + { + return 0; + } + + cgltf_size offset = accessor->offset + accessor->buffer_view->offset; + const uint8_t* element = (const uint8_t*) accessor->buffer_view->buffer->data; + element += offset + accessor->stride * index; + return cgltf_element_read_float(element, accessor->type, accessor->component_type, accessor->normalized, out, element_size); +} + +cgltf_size cgltf_accessor_read_index(const cgltf_accessor* accessor, cgltf_size index) +{ + if (accessor->buffer_view) + { + cgltf_size offset = accessor->offset + accessor->buffer_view->offset; + const uint8_t* element = (const uint8_t*) accessor->buffer_view->buffer->data; + element += offset + accessor->stride * index; + return cgltf_component_read_index(element, accessor->component_type); + } + + return 0; +} + #define CGLTF_ERROR_JSON -1 #define CGLTF_ERROR_NOMEM -2 @@ -1413,39 +1679,31 @@ static cgltf_bool cgltf_json_to_bool(jsmntok_t const* tok, const uint8_t* json_c static int cgltf_skip_json(jsmntok_t const* tokens, int i) { - if (tokens[i].type == JSMN_ARRAY) + int end = i + 1; + + while (i < end) { - int size = tokens[i].size; - ++i; - for (int j = 0; j < size; ++j) + switch (tokens[i].type) { - i = cgltf_skip_json(tokens, i); - if (i < 0) - { - return i; - } + case JSMN_OBJECT: + end += tokens[i].size * 2; + break; + + case JSMN_ARRAY: + end += tokens[i].size; + break; + + case JSMN_PRIMITIVE: + case JSMN_STRING: + break; + + default: + return -1; } + + i++; } - else if (tokens[i].type == JSMN_OBJECT) - { - int size = tokens[i].size; - ++i; - for (int j = 0; j < size; ++j) - { - CGLTF_CHECK_KEY(tokens[i]); - ++i; - i = cgltf_skip_json(tokens, i); - if (i < 0) - { - return i; - } - } - } - else if (tokens[i].type == JSMN_PRIMITIVE - || tokens[i].type == JSMN_STRING) - { - return i + 1; - } + return i; } @@ -1495,6 +1753,7 @@ static int cgltf_parse_json_string(cgltf_options* options, jsmntok_t const* toke static int cgltf_parse_json_array(cgltf_options* options, jsmntok_t const* tokens, int i, const uint8_t* json_chunk, size_t element_size, void** out_array, cgltf_size* out_size) { + (void)json_chunk; CGLTF_CHECK_TOKTYPE(tokens[i], JSMN_ARRAY); if (*out_array) { @@ -1511,6 +1770,26 @@ static int cgltf_parse_json_array(cgltf_options* options, jsmntok_t const* token return i + 1; } +static int cgltf_parse_json_string_array(cgltf_options* options, jsmntok_t const* tokens, int i, const uint8_t* json_chunk, char*** out_array, cgltf_size* out_size) +{ + CGLTF_CHECK_TOKTYPE(tokens[i], JSMN_ARRAY); + i = cgltf_parse_json_array(options, tokens, i, json_chunk, sizeof(char*), (void**)out_array, out_size); + if (i < 0) + { + return i; + } + + for (cgltf_size j = 0; j < *out_size; ++j) + { + i = cgltf_parse_json_string(options, tokens, i, json_chunk, j + (*out_array)); + if (i < 0) + { + return i; + } + } + return i; +} + static void cgltf_parse_attribute_type(const char* name, cgltf_attribute_type* out_type, int* out_index) { const char* us = strchr(name, '_'); @@ -1592,6 +1871,15 @@ static int cgltf_parse_json_attribute_list(cgltf_options* options, jsmntok_t con return i; } +static int cgltf_parse_json_extras(jsmntok_t const* tokens, int i, const uint8_t* json_chunk, cgltf_extras* out_extras) +{ + (void)json_chunk; + out_extras->start_offset = tokens[i].start; + out_extras->end_offset = tokens[i].end; + i = cgltf_skip_json(tokens, i); + return i; +} + 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); @@ -1637,15 +1925,19 @@ static int cgltf_parse_json_primitive(cgltf_options* options, jsmntok_t const* t return i; } - for (cgltf_size j = 0; j < out_prim->targets_count; ++j) + for (cgltf_size k = 0; k < out_prim->targets_count; ++k) { - i = cgltf_parse_json_attribute_list(options, tokens, i, json_chunk, &out_prim->targets[j].attributes, &out_prim->targets[j].attributes_count); + i = cgltf_parse_json_attribute_list(options, tokens, i, json_chunk, &out_prim->targets[k].attributes, &out_prim->targets[k].attributes_count); if (i < 0) { return i; } } } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_prim->extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -1702,6 +1994,10 @@ static int cgltf_parse_json_mesh(cgltf_options* options, jsmntok_t const* tokens i = cgltf_parse_json_float_array(tokens, i - 1, json_chunk, out_mesh->weights, (int)out_mesh->weights_count); } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_mesh->extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -1805,6 +2101,10 @@ static int cgltf_parse_json_accessor_sparse(jsmntok_t const* tokens, int i, cons out_sparse->indices_component_type = cgltf_json_to_component_type(tokens + i, json_chunk); ++i; } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_sparse->indices_extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -1840,6 +2140,10 @@ static int cgltf_parse_json_accessor_sparse(jsmntok_t const* tokens, int i, cons out_sparse->values_byte_offset = cgltf_json_to_int(tokens + i, json_chunk); ++i; } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_sparse->values_extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -1851,6 +2155,10 @@ static int cgltf_parse_json_accessor_sparse(jsmntok_t const* tokens, int i, cons } } } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_sparse->extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -1962,6 +2270,10 @@ static int cgltf_parse_json_accessor(jsmntok_t const* tokens, int i, const uint8 out_accessor->is_sparse = 1; i = cgltf_parse_json_accessor_sparse(tokens, i + 1, json_chunk, &out_accessor->sparse); } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_accessor->extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -2059,6 +2371,10 @@ static int cgltf_parse_json_texture_view(jsmntok_t const* tokens, int i, const u out_texture_view->scale = cgltf_json_to_float(tokens + i, json_chunk); ++i; } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_texture_view->extras); + } else if (cgltf_json_strcmp(tokens + i, json_chunk, "extensions") == 0) { ++i; @@ -2070,6 +2386,8 @@ static int cgltf_parse_json_texture_view(jsmntok_t const* tokens, int i, const u for (int k = 0; k < extensions_size; ++k) { + CGLTF_CHECK_KEY(tokens[i]); + if (cgltf_json_strcmp(tokens+i, json_chunk, "KHR_texture_transform") == 0) { out_texture_view->has_transform = 1; @@ -2079,6 +2397,11 @@ static int cgltf_parse_json_texture_view(jsmntok_t const* tokens, int i, const u { i = cgltf_skip_json(tokens, i+1); } + + if (i < 0) + { + return i; + } } } else @@ -2134,6 +2457,10 @@ static int cgltf_parse_json_pbr_metallic_roughness(jsmntok_t const* tokens, int i = cgltf_parse_json_texture_view(tokens, i + 1, json_chunk, &out_pbr->metallic_roughness_texture); } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_pbr->extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -2161,18 +2488,10 @@ static int cgltf_parse_json_pbr_specular_glossiness(jsmntok_t const* tokens, int if (cgltf_json_strcmp(tokens+i, json_chunk, "diffuseFactor") == 0) { i = cgltf_parse_json_float_array(tokens, i + 1, json_chunk, out_pbr->diffuse_factor, 4); - if (i < 0) - { - return i; - } } else if (cgltf_json_strcmp(tokens+i, json_chunk, "specularFactor") == 0) { i = cgltf_parse_json_float_array(tokens, i + 1, json_chunk, out_pbr->specular_factor, 3); - if (i < 0) - { - return i; - } } else if (cgltf_json_strcmp(tokens+i, json_chunk, "glossinessFactor") == 0) { @@ -2183,18 +2502,10 @@ static int cgltf_parse_json_pbr_specular_glossiness(jsmntok_t const* tokens, int else if (cgltf_json_strcmp(tokens+i, json_chunk, "diffuseTexture") == 0) { i = cgltf_parse_json_texture_view(tokens, i + 1, json_chunk, &out_pbr->diffuse_texture); - if (i < 0) - { - return i; - } } else if (cgltf_json_strcmp(tokens+i, json_chunk, "specularGlossinessTexture") == 0) { i = cgltf_parse_json_texture_view(tokens, i + 1, json_chunk, &out_pbr->specular_glossiness_texture); - if (i < 0) - { - return i; - } } else { @@ -2205,7 +2516,6 @@ static int cgltf_parse_json_pbr_specular_glossiness(jsmntok_t const* tokens, int { return i; } - } return i; @@ -2240,6 +2550,10 @@ static int cgltf_parse_json_image(cgltf_options* options, jsmntok_t const* token { i = cgltf_parse_json_string(options, tokens, i + 1, json_chunk, &out_image->name); } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_image->extras); + } else { i = cgltf_skip_json(tokens, i + 1); @@ -2256,6 +2570,7 @@ static int cgltf_parse_json_image(cgltf_options* options, jsmntok_t const* token static int cgltf_parse_json_sampler(cgltf_options* options, jsmntok_t const* tokens, int i, const uint8_t* json_chunk, cgltf_sampler* out_sampler) { + (void)options; CGLTF_CHECK_TOKTYPE(tokens[i], JSMN_OBJECT); out_sampler->wrap_s = 10497; @@ -2296,6 +2611,10 @@ 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, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_sampler->extras); + } else { i = cgltf_skip_json(tokens, i + 1); @@ -2338,6 +2657,10 @@ static int cgltf_parse_json_texture(cgltf_options* options, jsmntok_t const* tok out_texture->image = CGLTF_PTRINDEX(cgltf_image, cgltf_json_to_int(tokens + i, json_chunk)); ++i; } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_texture->extras); + } else { i = cgltf_skip_json(tokens, i + 1); @@ -2431,6 +2754,10 @@ static int cgltf_parse_json_material(cgltf_options* options, jsmntok_t const* to cgltf_json_to_bool(tokens + i, json_chunk); ++i; } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_material->extras); + } else if (cgltf_json_strcmp(tokens + i, json_chunk, "extensions") == 0) { ++i; @@ -2631,6 +2958,10 @@ static int cgltf_parse_json_buffer_view(jsmntok_t const* tokens, int i, const ui out_buffer_view->type = (cgltf_buffer_view_type)type; ++i; } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_buffer_view->extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -2686,6 +3017,10 @@ static int cgltf_parse_json_buffer(cgltf_options* options, jsmntok_t const* toke { i = cgltf_parse_json_string(options, tokens, i + 1, json_chunk, &out_buffer->uri); } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_buffer->extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -2762,6 +3097,10 @@ static int cgltf_parse_json_skin(cgltf_options* options, jsmntok_t const* tokens out_skin->inverse_bind_matrices = CGLTF_PTRINDEX(cgltf_accessor, cgltf_json_to_int(tokens + i, json_chunk)); ++i; } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_skin->extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -2862,6 +3201,10 @@ static int cgltf_parse_json_camera(cgltf_options* options, jsmntok_t const* toke out_camera->perspective.znear = cgltf_json_to_float(tokens + i, json_chunk); ++i; } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_camera->perspective.extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -2912,6 +3255,10 @@ static int cgltf_parse_json_camera(cgltf_options* options, jsmntok_t const* toke out_camera->orthographic.znear = cgltf_json_to_float(tokens + i, json_chunk); ++i; } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_camera->orthographic.extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -2923,6 +3270,10 @@ static int cgltf_parse_json_camera(cgltf_options* options, jsmntok_t const* toke } } } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_camera->extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -3162,6 +3513,10 @@ static int cgltf_parse_json_node(cgltf_options* options, jsmntok_t const* tokens i = cgltf_parse_json_float_array(tokens, i - 1, json_chunk, out_node->weights, (int)out_node->weights_count); } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_node->extras); + } else if (cgltf_json_strcmp(tokens + i, json_chunk, "extensions") == 0) { ++i; @@ -3279,6 +3634,10 @@ static int cgltf_parse_json_scene(cgltf_options* options, jsmntok_t const* token ++i; } } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_scene->extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -3314,6 +3673,7 @@ static int cgltf_parse_json_scenes(cgltf_options* options, jsmntok_t const* toke static int cgltf_parse_json_animation_sampler(cgltf_options* options, jsmntok_t const* tokens, int i, const uint8_t* json_chunk, cgltf_animation_sampler* out_sampler) { + (void)options; CGLTF_CHECK_TOKTYPE(tokens[i], JSMN_OBJECT); int size = tokens[i].size; @@ -3352,6 +3712,10 @@ static int cgltf_parse_json_animation_sampler(cgltf_options* options, jsmntok_t } ++i; } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_sampler->extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -3368,6 +3732,7 @@ static int cgltf_parse_json_animation_sampler(cgltf_options* options, jsmntok_t static int cgltf_parse_json_animation_channel(cgltf_options* options, jsmntok_t const* tokens, int i, const uint8_t* json_chunk, cgltf_animation_channel* out_channel) { + (void)options; CGLTF_CHECK_TOKTYPE(tokens[i], JSMN_OBJECT); int size = tokens[i].size; @@ -3423,6 +3788,10 @@ static int cgltf_parse_json_animation_channel(cgltf_options* options, jsmntok_t } ++i; } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_channel->extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -3497,6 +3866,10 @@ static int cgltf_parse_json_animation(cgltf_options* options, jsmntok_t const* t } } } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_animation->extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -3557,6 +3930,10 @@ static int cgltf_parse_json_asset(cgltf_options* options, jsmntok_t const* token { i = cgltf_parse_json_string(options, tokens, i + 1, json_chunk, &out_asset->min_version); } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_asset->extras); + } else { i = cgltf_skip_json(tokens, i+1); @@ -3571,58 +3948,58 @@ static int cgltf_parse_json_asset(cgltf_options* options, jsmntok_t const* token return i; } -static cgltf_size cgltf_calc_size(cgltf_type type, cgltf_component_type component_type) -{ - cgltf_size size = 0; +static cgltf_size cgltf_num_components(cgltf_type type) { + switch (type) + { + case cgltf_type_vec2: + return 2; + case cgltf_type_vec3: + return 3; + case cgltf_type_vec4: + return 4; + case cgltf_type_mat2: + return 4; + case cgltf_type_mat3: + return 9; + case cgltf_type_mat4: + return 16; + case cgltf_type_invalid: + case cgltf_type_scalar: + default: + return 1; + } +} +static cgltf_size cgltf_component_size(cgltf_component_type component_type) { switch (component_type) { case cgltf_component_type_r_8: case cgltf_component_type_r_8u: - size = 1; - break; + return 1; case cgltf_component_type_r_16: case cgltf_component_type_r_16u: - size = 2; - break; + return 2; case cgltf_component_type_r_32u: case cgltf_component_type_r_32f: - size = 4; - break; + return 4; case cgltf_component_type_invalid: default: - size = 0; - break; + return 0; } +} - switch (type) +static cgltf_size cgltf_calc_size(cgltf_type type, cgltf_component_type component_type) +{ + cgltf_size component_size = cgltf_component_size(component_type); + if (type == cgltf_type_mat2 && component_size == 1) { - case cgltf_type_vec2: - size *= 2; - break; - case cgltf_type_vec3: - size *= 3; - break; - case cgltf_type_vec4: - size *= 4; - break; - case cgltf_type_mat2: - size *= 4; - break; - case cgltf_type_mat3: - size *= 9; - break; - case cgltf_type_mat4: - size *= 16; - break; - case cgltf_type_invalid: - case cgltf_type_scalar: - default: - size *= 1; - break; + return 8 * component_size; } - - return size; + else if (type == cgltf_type_mat3 && (component_size == 1 || component_size == 2)) + { + return 12 * component_size; + } + return component_size * cgltf_num_components(type); } static int cgltf_fixup_pointers(cgltf_data* out_data); @@ -3700,6 +4077,10 @@ static int cgltf_parse_json_root(cgltf_options* options, jsmntok_t const* tokens { i = cgltf_parse_json_animations(options, tokens, i + 1, json_chunk, out_data); } + else if (cgltf_json_strcmp(tokens+i, json_chunk, "extras") == 0) + { + i = cgltf_parse_json_extras(tokens, i + 1, json_chunk, &out_data->extras); + } else if (cgltf_json_strcmp(tokens + i, json_chunk, "extensions") == 0) { ++i; @@ -3743,7 +4124,7 @@ static int cgltf_parse_json_root(cgltf_options* options, jsmntok_t const* tokens } else { - i = cgltf_skip_json(tokens, i+1); + i = cgltf_skip_json(tokens, i + 1); } if (i < 0) @@ -3752,6 +4133,14 @@ static int cgltf_parse_json_root(cgltf_options* options, jsmntok_t const* tokens } } } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extensionsUsed") == 0) + { + i = cgltf_parse_json_string_array(options, tokens, i + 1, json_chunk, &out_data->extensions_used, &out_data->extensions_used_count); + } + else if (cgltf_json_strcmp(tokens + i, json_chunk, "extensionsRequired") == 0) + { + i = cgltf_parse_json_string_array(options, tokens, i + 1, json_chunk, &out_data->extensions_required, &out_data->extensions_required_count); + } else { i = cgltf_skip_json(tokens, i + 1); @@ -3768,7 +4157,7 @@ static int cgltf_parse_json_root(cgltf_options* options, jsmntok_t const* tokens cgltf_result cgltf_parse_json(cgltf_options* options, const uint8_t* json_chunk, cgltf_size size, cgltf_data** out_data) { - jsmn_parser parser = { 0 }; + jsmn_parser parser = { 0, 0, 0 }; if (options->json_token_count == 0) { @@ -3782,7 +4171,7 @@ cgltf_result cgltf_parse_json(cgltf_options* options, const uint8_t* json_chunk, options->json_token_count = token_count; } - jsmntok_t* tokens = (jsmntok_t*)options->memory_alloc(options->memory_user_data, sizeof(jsmntok_t) * options->json_token_count); + jsmntok_t* tokens = (jsmntok_t*)options->memory_alloc(options->memory_user_data, sizeof(jsmntok_t) * (options->json_token_count + 1)); if (!tokens) { @@ -3799,6 +4188,10 @@ cgltf_result cgltf_parse_json(cgltf_options* options, const uint8_t* json_chunk, return cgltf_result_invalid_json; } + // this makes sure that we always have an UNDEFINED token at the end of the stream + // for invalid JSON inputs this makes sure we don't perform out of bound reads of token data + tokens[token_count].type = JSMN_UNDEFINED; + cgltf_data* data = (cgltf_data*)options->memory_alloc(options->memory_user_data, sizeof(cgltf_data)); if (!data) @@ -3827,6 +4220,9 @@ cgltf_result cgltf_parse_json(cgltf_options* options, const uint8_t* json_chunk, return cgltf_result_invalid_gltf; } + data->json = (const char*)json_chunk; + data->json_size = size; + *out_data = data; return cgltf_result_success; diff --git a/src/external/dr_flac.h b/src/external/dr_flac.h index 13f42b2a8..250d0bd2e 100644 --- a/src/external/dr_flac.h +++ b/src/external/dr_flac.h @@ -1,6 +1,6 @@ /* FLAC audio decoder. Choice of public domain or MIT-0. See license statements at the end of this file. -dr_flac - v0.11.7 - 2019-05-06 +dr_flac - v0.11.10 - 2019-06-26 David Reid - mackron@gmail.com */ @@ -149,7 +149,7 @@ typedef drflac_uint32 drflac_bool32; #elif (defined(__GNUC__) && __GNUC__ >= 4) /* GCC 4 */ #define DRFLAC_DEPRECATED __attribute__((deprecated)) #elif defined(__has_feature) /* Clang */ - #if defined(__has_feature(attribute_deprecated)) + #if __has_feature(attribute_deprecated) #define DRFLAC_DEPRECATED __attribute__((deprecated)) #else #define DRFLAC_DEPRECATED @@ -1008,7 +1008,7 @@ static DRFLAC_INLINE drflac_bool32 drflac_has_sse2() return DRFLAC_FALSE; #else int info[4]; - drflac_cpuid(info, 1); + drflac__cpuid(info, 1); return (info[3] & (1 << 26)) != 0; #endif #endif @@ -1033,7 +1033,7 @@ static DRFLAC_INLINE drflac_bool32 drflac_has_sse41() return DRFLAC_FALSE; #else int info[4]; - drflac_cpuid(info, 1); + drflac__cpuid(info, 1); return (info[2] & (1 << 19)) != 0; #endif #endif @@ -1141,21 +1141,43 @@ reference excess prior samples. /* CPU caps. */ static drflac_bool32 drflac__gIsLZCNTSupported = DRFLAC_FALSE; #ifndef DRFLAC_NO_CPUID +/* +I've had a bug report that Clang's ThreadSanitizer presents a warning in this function. Having reviewed this, this does +actually make sense. However, since CPU caps should never differ for a running process, I don't think the trade off of +complicating internal API's by passing around CPU caps versus just disabling the warnings is worthwhile. I'm therefore +just going to disable these warnings. +*/ +#if defined(__has_feature) + #if __has_feature(thread_sanitizer) + #define DRFLAC_NO_THREAD_SANITIZE __attribute__((no_sanitize("thread"))) + #else + #define DRFLAC_NO_THREAD_SANITIZE + #endif +#else + #define DRFLAC_NO_THREAD_SANITIZE +#endif static drflac_bool32 drflac__gIsSSE2Supported = DRFLAC_FALSE; static drflac_bool32 drflac__gIsSSE41Supported = DRFLAC_FALSE; -static void drflac__init_cpu_caps() +DRFLAC_NO_THREAD_SANITIZE static void drflac__init_cpu_caps() { - int info[4] = {0}; + static drflac_bool32 isCPUCapsInitialized = DRFLAC_FALSE; - /* LZCNT */ - drflac__cpuid(info, 0x80000001); - drflac__gIsLZCNTSupported = (info[2] & (1 << 5)) != 0; + if (!isCPUCapsInitialized) { + int info[4] = {0}; - /* SSE2 */ - drflac__gIsSSE2Supported = drflac_has_sse2(); + /* LZCNT */ + drflac__cpuid(info, 0x80000001); + drflac__gIsLZCNTSupported = (info[2] & (1 << 5)) != 0; - /* SSE4.1 */ - drflac__gIsSSE41Supported = drflac_has_sse41(); + /* SSE2 */ + drflac__gIsSSE2Supported = drflac_has_sse2(); + + /* SSE4.1 */ + drflac__gIsSSE41Supported = drflac_has_sse41(); + + /* Initialized. */ + isCPUCapsInitialized = DRFLAC_TRUE; + } } #endif @@ -4897,9 +4919,9 @@ typedef struct static DRFLAC_INLINE void drflac__decode_block_header(drflac_uint32 blockHeader, drflac_uint8* isLastBlock, drflac_uint8* blockType, drflac_uint32* blockSize) { blockHeader = drflac__be2host_32(blockHeader); - *isLastBlock = (blockHeader & (0x01 << 31)) >> 31; - *blockType = (blockHeader & (0x7F << 24)) >> 24; - *blockSize = (blockHeader & 0xFFFFFF); + *isLastBlock = (blockHeader & 0x80000000UL) >> 31; + *blockType = (blockHeader & 0x7F000000UL) >> 24; + *blockSize = (blockHeader & 0x00FFFFFFUL); } static DRFLAC_INLINE drflac_bool32 drflac__read_and_decode_block_header(drflac_read_proc onRead, void* pUserData, drflac_uint8* isLastBlock, drflac_uint8* blockType, drflac_uint32* blockSize) @@ -6759,10 +6781,10 @@ drflac_uint64 drflac__read_s32__misaligned(drflac* pFlac, drflac_uint64 samplesT case DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: { if (channelIndex == 0) { - decodedSample = pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 0].wastedBitsPerSample; + decodedSample = (int)((drflac_uint32)pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 0].wastedBitsPerSample); } else { - int side = pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 0].wastedBitsPerSample; - int left = pFlac->currentFrame.subframes[channelIndex - 1].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex - 1].wastedBitsPerSample; + int side = (int)((drflac_uint32)pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 0].wastedBitsPerSample); + int left = (int)((drflac_uint32)pFlac->currentFrame.subframes[channelIndex - 1].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex - 1].wastedBitsPerSample); decodedSample = left - side; } } break; @@ -6770,11 +6792,11 @@ drflac_uint64 drflac__read_s32__misaligned(drflac* pFlac, drflac_uint64 samplesT case DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: { if (channelIndex == 0) { - int side = pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 0].wastedBitsPerSample; - int right = pFlac->currentFrame.subframes[channelIndex + 1].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 1].wastedBitsPerSample; + int side = (int)((drflac_uint32)pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 0].wastedBitsPerSample); + int right = (int)((drflac_uint32)pFlac->currentFrame.subframes[channelIndex + 1].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 1].wastedBitsPerSample); decodedSample = side + right; } else { - decodedSample = pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 0].wastedBitsPerSample; + decodedSample = (int)((drflac_uint32)pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 0].wastedBitsPerSample); } } break; @@ -6783,14 +6805,14 @@ drflac_uint64 drflac__read_s32__misaligned(drflac* pFlac, drflac_uint64 samplesT int mid; int side; if (channelIndex == 0) { - mid = pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 0].wastedBitsPerSample; - side = pFlac->currentFrame.subframes[channelIndex + 1].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 1].wastedBitsPerSample; + mid = (int)((drflac_uint32)pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 0].wastedBitsPerSample); + side = (int)((drflac_uint32)pFlac->currentFrame.subframes[channelIndex + 1].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 1].wastedBitsPerSample); mid = (((unsigned int)mid) << 1) | (side & 0x01); decodedSample = (mid + side) >> 1; } else { - mid = pFlac->currentFrame.subframes[channelIndex - 1].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex - 1].wastedBitsPerSample; - side = pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 0].wastedBitsPerSample; + mid = (int)((drflac_uint32)pFlac->currentFrame.subframes[channelIndex - 1].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex - 1].wastedBitsPerSample); + side = (int)((drflac_uint32)pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 0].wastedBitsPerSample); mid = (((unsigned int)mid) << 1) | (side & 0x01); decodedSample = (mid - side) >> 1; @@ -6800,11 +6822,11 @@ drflac_uint64 drflac__read_s32__misaligned(drflac* pFlac, drflac_uint64 samplesT case DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: default: { - decodedSample = pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 0].wastedBitsPerSample; + decodedSample = (int)((drflac_uint32)pFlac->currentFrame.subframes[channelIndex + 0].pDecodedSamples[nextSampleInFrame] << pFlac->currentFrame.subframes[channelIndex + 0].wastedBitsPerSample); } break; } - decodedSample <<= (32 - pFlac->bitsPerSample); + decodedSample = (int)((drflac_uint32)decodedSample << (32 - pFlac->bitsPerSample)); if (bufferOut) { *bufferOut++ = decodedSample; @@ -6876,8 +6898,8 @@ drflac_uint64 drflac_read_s32(drflac* pFlac, drflac_uint64 samplesToRead, drflac const drflac_int32* pDecodedSamples1 = pFlac->currentFrame.subframes[1].pDecodedSamples + firstAlignedSampleInFrame; for (i = 0; i < alignedSampleCountPerChannel; ++i) { - int left = pDecodedSamples0[i] << (unusedBitsPerSample + pFlac->currentFrame.subframes[0].wastedBitsPerSample); - int side = pDecodedSamples1[i] << (unusedBitsPerSample + pFlac->currentFrame.subframes[1].wastedBitsPerSample); + int left = (int)((drflac_uint32)pDecodedSamples0[i] << (unusedBitsPerSample + pFlac->currentFrame.subframes[0].wastedBitsPerSample)); + int side = (int)((drflac_uint32)pDecodedSamples1[i] << (unusedBitsPerSample + pFlac->currentFrame.subframes[1].wastedBitsPerSample)); int right = left - side; bufferOut[i*2+0] = left; @@ -6892,8 +6914,8 @@ drflac_uint64 drflac_read_s32(drflac* pFlac, drflac_uint64 samplesToRead, drflac const drflac_int32* pDecodedSamples1 = pFlac->currentFrame.subframes[1].pDecodedSamples + firstAlignedSampleInFrame; for (i = 0; i < alignedSampleCountPerChannel; ++i) { - int side = pDecodedSamples0[i] << (unusedBitsPerSample + pFlac->currentFrame.subframes[0].wastedBitsPerSample); - int right = pDecodedSamples1[i] << (unusedBitsPerSample + pFlac->currentFrame.subframes[1].wastedBitsPerSample); + int side = (int)((drflac_uint32)pDecodedSamples0[i] << (unusedBitsPerSample + pFlac->currentFrame.subframes[0].wastedBitsPerSample)); + int right = (int)((drflac_uint32)pDecodedSamples1[i] << (unusedBitsPerSample + pFlac->currentFrame.subframes[1].wastedBitsPerSample)); int left = right + side; bufferOut[i*2+0] = left; @@ -6908,13 +6930,13 @@ drflac_uint64 drflac_read_s32(drflac* pFlac, drflac_uint64 samplesToRead, drflac const drflac_int32* pDecodedSamples1 = pFlac->currentFrame.subframes[1].pDecodedSamples + firstAlignedSampleInFrame; for (i = 0; i < alignedSampleCountPerChannel; ++i) { - int mid = pDecodedSamples0[i] << pFlac->currentFrame.subframes[0].wastedBitsPerSample; - int side = pDecodedSamples1[i] << pFlac->currentFrame.subframes[1].wastedBitsPerSample; + int mid = (int)((drflac_uint32)pDecodedSamples0[i] << pFlac->currentFrame.subframes[0].wastedBitsPerSample); + int side = (int)((drflac_uint32)pDecodedSamples1[i] << pFlac->currentFrame.subframes[1].wastedBitsPerSample); mid = (((drflac_uint32)mid) << 1) | (side & 0x01); - bufferOut[i*2+0] = ((mid + side) >> 1) << (unusedBitsPerSample); - bufferOut[i*2+1] = ((mid - side) >> 1) << (unusedBitsPerSample); + bufferOut[i*2+0] = (drflac_int32)((drflac_uint32)((mid + side) >> 1) << (unusedBitsPerSample)); + bufferOut[i*2+1] = (drflac_int32)((drflac_uint32)((mid - side) >> 1) << (unusedBitsPerSample)); } } break; @@ -6929,8 +6951,8 @@ drflac_uint64 drflac_read_s32(drflac* pFlac, drflac_uint64 samplesToRead, drflac const drflac_int32* pDecodedSamples1 = pFlac->currentFrame.subframes[1].pDecodedSamples + firstAlignedSampleInFrame; for (i = 0; i < alignedSampleCountPerChannel; ++i) { - bufferOut[i*2+0] = pDecodedSamples0[i] << (unusedBitsPerSample + pFlac->currentFrame.subframes[0].wastedBitsPerSample); - bufferOut[i*2+1] = pDecodedSamples1[i] << (unusedBitsPerSample + pFlac->currentFrame.subframes[1].wastedBitsPerSample); + bufferOut[i*2+0] = (drflac_int32)((drflac_uint32)pDecodedSamples0[i] << (unusedBitsPerSample + pFlac->currentFrame.subframes[0].wastedBitsPerSample)); + bufferOut[i*2+1] = (drflac_int32)((drflac_uint32)pDecodedSamples1[i] << (unusedBitsPerSample + pFlac->currentFrame.subframes[1].wastedBitsPerSample)); } } else @@ -6940,7 +6962,7 @@ drflac_uint64 drflac_read_s32(drflac* pFlac, drflac_uint64 samplesToRead, drflac for (i = 0; i < alignedSampleCountPerChannel; ++i) { unsigned int j; for (j = 0; j < channelCount; ++j) { - bufferOut[(i*channelCount)+j] = (pFlac->currentFrame.subframes[j].pDecodedSamples[firstAlignedSampleInFrame + i]) << (unusedBitsPerSample + pFlac->currentFrame.subframes[j].wastedBitsPerSample); + bufferOut[(i*channelCount)+j] = (drflac_int32)((drflac_uint32)(pFlac->currentFrame.subframes[j].pDecodedSamples[firstAlignedSampleInFrame + i]) << (unusedBitsPerSample + pFlac->currentFrame.subframes[j].wastedBitsPerSample)); } } } @@ -8649,6 +8671,15 @@ drflac_bool32 drflac_next_cuesheet_track(drflac_cuesheet_track_iterator* pIter, /* REVISION HISTORY ================ +v0.11.10 - 2019-06-26 + - Fix a compiler error. + +v0.11.9 - 2019-06-16 + - Silence some ThreadSanitizer warnings. + +v0.11.8 - 2019-05-21 + - Fix warnings. + v0.11.7 - 2019-05-06 - C89 fixes. diff --git a/src/external/dr_mp3.h b/src/external/dr_mp3.h index 26aeec56f..0ecd0d3f6 100644 --- a/src/external/dr_mp3.h +++ b/src/external/dr_mp3.h @@ -1,6 +1,6 @@ /* MP3 audio decoder. Choice of public domain or MIT-0. See license statements at the end of this file. -dr_mp3 - v0.4.4 - 2019-05-06 +dr_mp3 - v0.4.7 - 2019-07-28 David Reid - mackron@gmail.com @@ -1143,41 +1143,72 @@ static void drmp3_L3_huffman(float *dst, drmp3_bs *bs, const drmp3_L3_gr_info *g int sfb_cnt = gr_info->region_count[ireg++]; const drmp3_int16 *codebook = tabs + tabindex[tab_num]; int linbits = g_linbits[tab_num]; - do + if (linbits) { - np = *sfb++ / 2; - pairs_to_decode = DRMP3_MIN(big_val_cnt, np); - one = *scf++; do { - int j, w = 5; - int leaf = codebook[DRMP3_PEEK_BITS(w)]; - while (leaf < 0) + np = *sfb++ / 2; + pairs_to_decode = DRMP3_MIN(big_val_cnt, np); + one = *scf++; + do { - DRMP3_FLUSH_BITS(w); - w = leaf & 7; - leaf = codebook[DRMP3_PEEK_BITS(w) - (leaf >> 3)]; - } - DRMP3_FLUSH_BITS(leaf >> 8); - - for (j = 0; j < 2; j++, dst++, leaf >>= 4) - { - int lsb = leaf & 0x0F; - if (lsb == 15 && linbits) + int j, w = 5; + int leaf = codebook[DRMP3_PEEK_BITS(w)]; + while (leaf < 0) { - lsb += DRMP3_PEEK_BITS(linbits); - DRMP3_FLUSH_BITS(linbits); - DRMP3_CHECK_BITS; - *dst = one*drmp3_L3_pow_43(lsb)*((drmp3_int32)bs_cache < 0 ? -1: 1); - } else - { - *dst = g_drmp3_pow43[16 + lsb - 16*(bs_cache >> 31)]*one; + DRMP3_FLUSH_BITS(w); + w = leaf & 7; + leaf = codebook[DRMP3_PEEK_BITS(w) - (leaf >> 3)]; } - DRMP3_FLUSH_BITS(lsb ? 1 : 0); - } - DRMP3_CHECK_BITS; - } while (--pairs_to_decode); - } while ((big_val_cnt -= np) > 0 && --sfb_cnt >= 0); + DRMP3_FLUSH_BITS(leaf >> 8); + + for (j = 0; j < 2; j++, dst++, leaf >>= 4) + { + int lsb = leaf & 0x0F; + if (lsb == 15) + { + lsb += DRMP3_PEEK_BITS(linbits); + DRMP3_FLUSH_BITS(linbits); + DRMP3_CHECK_BITS; + *dst = one*drmp3_L3_pow_43(lsb)*((drmp3_int32)bs_cache < 0 ? -1: 1); + } else + { + *dst = g_drmp3_pow43[16 + lsb - 16*(bs_cache >> 31)]*one; + } + DRMP3_FLUSH_BITS(lsb ? 1 : 0); + } + DRMP3_CHECK_BITS; + } while (--pairs_to_decode); + } while ((big_val_cnt -= np) > 0 && --sfb_cnt >= 0); + } else + { + do + { + np = *sfb++ / 2; + pairs_to_decode = DRMP3_MIN(big_val_cnt, np); + one = *scf++; + do + { + int j, w = 5; + int leaf = codebook[DRMP3_PEEK_BITS(w)]; + while (leaf < 0) + { + DRMP3_FLUSH_BITS(w); + w = leaf & 7; + leaf = codebook[DRMP3_PEEK_BITS(w) - (leaf >> 3)]; + } + DRMP3_FLUSH_BITS(leaf >> 8); + + for (j = 0; j < 2; j++, dst++, leaf >>= 4) + { + int lsb = leaf & 0x0F; + *dst = g_drmp3_pow43[16 + lsb - 16*(bs_cache >> 31)]*one; + DRMP3_FLUSH_BITS(lsb ? 1 : 0); + } + DRMP3_CHECK_BITS; + } while (--pairs_to_decode); + } while ((big_val_cnt -= np) > 0 && --sfb_cnt >= 0); + } } for (np = 1 - big_val_cnt;; dst += 4) @@ -2133,14 +2164,14 @@ void drmp3dec_f32_to_s16(const float *in, drmp3_int16 *out, int num_samples) int aligned_count = num_samples & ~7; for(; i < aligned_count; i+=8) { - static const drmp3_f4 g_scale = { 32768.0f, 32768.0f, 32768.0f, 32768.0f }; - drmp3_f4 a = DRMP3_VMUL(DRMP3_VLD(&in[i ]), g_scale); - drmp3_f4 b = DRMP3_VMUL(DRMP3_VLD(&in[i+4]), g_scale); + drmp3_f4 scale = DRMP3_VSET(32768.0f); + drmp3_f4 a = DRMP3_VMUL(DRMP3_VLD(&in[i ]), scale); + drmp3_f4 b = DRMP3_VMUL(DRMP3_VLD(&in[i+4]), scale); #if DRMP3_HAVE_SSE - static const drmp3_f4 g_max = { 32767.0f, 32767.0f, 32767.0f, 32767.0f }; - static const drmp3_f4 g_min = { -32768.0f, -32768.0f, -32768.0f, -32768.0f }; - __m128i pcm8 = _mm_packs_epi32(_mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(a, g_max), g_min)), - _mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(b, g_max), g_min))); + drmp3_f4 s16max = DRMP3_VSET( 32767.0f); + drmp3_f4 s16min = DRMP3_VSET(-32768.0f); + __m128i pcm8 = _mm_packs_epi32(_mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(a, s16max), s16min)), + _mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(b, s16max), s16min))); out[i ] = (drmp3_int16)_mm_extract_epi16(pcm8, 0); out[i+1] = (drmp3_int16)_mm_extract_epi16(pcm8, 1); out[i+2] = (drmp3_int16)_mm_extract_epi16(pcm8, 2); @@ -3779,6 +3810,15 @@ DIFFERENCES BETWEEN minimp3 AND dr_mp3 /* REVISION HISTORY ================ +v0.4.7 - 2019-07-28 + - Fix a compiler error. + +v0.4.6 - 2019-06-14 + - Fix a compiler error. + +v0.4.5 - 2019-06-06 + - Bring up to date with minimp3. + v0.4.4 - 2019-05-06 - Fixes to the VC6 build. diff --git a/src/external/dr_wav.h b/src/external/dr_wav.h index b2395bfb1..7c48ac400 100644 --- a/src/external/dr_wav.h +++ b/src/external/dr_wav.h @@ -1,6 +1,6 @@ /* WAV audio loader and writer. Choice of public domain or MIT-0. See license statements at the end of this file. -dr_wav - v0.9.1 - 2019-05-05 +dr_wav - v0.9.2 - 2019-05-21 David Reid - mackron@gmail.com */ @@ -2040,7 +2040,7 @@ drwav_bool32 drwav_init_ex(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc drwav_uint32 drwav_riff_chunk_size_riff(drwav_uint64 dataChunkSize) { - if (dataChunkSize <= (0xFFFFFFFF - 36)) { + if (dataChunkSize <= (0xFFFFFFFFUL - 36)) { return 36 + (drwav_uint32)dataChunkSize; } else { return 0xFFFFFFFF; @@ -2049,10 +2049,10 @@ drwav_uint32 drwav_riff_chunk_size_riff(drwav_uint64 dataChunkSize) drwav_uint32 drwav_data_chunk_size_riff(drwav_uint64 dataChunkSize) { - if (dataChunkSize <= 0xFFFFFFFF) { + if (dataChunkSize <= 0xFFFFFFFFUL) { return (drwav_uint32)dataChunkSize; } else { - return 0xFFFFFFFF; + return 0xFFFFFFFFUL; } } @@ -2121,7 +2121,7 @@ drwav_bool32 drwav_init_write__internal(drwav* pWav, const drwav_data_format* pF so for the sake of simplicity I'm not doing any validation for that. */ if (pFormat->container == drwav_container_riff) { - if (initialDataChunkSize > (0xFFFFFFFF - 36)) { + if (initialDataChunkSize > (0xFFFFFFFFUL - 36)) { return DRWAV_FALSE; /* Not enough room to store every sample. */ } } @@ -3195,8 +3195,8 @@ void drwav_u8_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCou size_t i; for (i = 0; i < sampleCount; ++i) { int x = pIn[i]; - r = x - 128; - r = r << 8; + r = x << 8; + r = r - 32768; pOut[i] = (short)r; } } @@ -4675,6 +4675,9 @@ void drwav_free(void* pDataReturnedByOpenAndRead) /* REVISION HISTORY ================ +v0.9.2 - 2019-05-21 + - Fix warnings. + v0.9.1 - 2019-05-05 - Add support for C89. - Change license to choice of public domain or MIT-0. diff --git a/src/external/miniaudio.h b/src/external/miniaudio.h index f51a1b681..e6752fbf5 100644 --- a/src/external/miniaudio.h +++ b/src/external/miniaudio.h @@ -1,8 +1,10 @@ /* Audio playback and capture library. Choice of public domain or MIT-0. See license statements at the end of this file. -miniaudio (formerly mini_al) - v0.9.4 - 2019-05-06 +miniaudio (formerly mini_al) - v0.9.6 - 2019-xx-xx David Reid - davidreidsoftware@gmail.com + +https://github.com/dr-soft/miniaudio */ /* @@ -304,7 +306,7 @@ UWP Web Audio / Emscripten ---------------------- -- The first time a context is initialized it will create a global object called "mal" whose primary purpose is to act +- The first time a context is initialized it will create a global object called "miniaudio" whose primary purpose is to act as a factory for device objects. - Currently the Web Audio backend uses ScriptProcessorNode's, but this may need to change later as they've been deprecated. - Google is implementing a policy in their browsers that prevent automatic media output without first receiving some kind @@ -395,7 +397,7 @@ OPTIONS MA_LOG_LEVEL_WARNING MA_LOG_LEVEL_ERROR -#define MA_DEBUT_OUTPUT +#define MA_DEBUG_OUTPUT Enable printf() debug output. #define MA_COINIT_VALUE @@ -542,10 +544,10 @@ extern "C" { #endif #endif -typedef ma_uint8 ma_bool8; -typedef ma_uint32 ma_bool32; -#define MA_TRUE 1 -#define MA_FALSE 0 +typedef ma_uint8 ma_bool8; +typedef ma_uint32 ma_bool32; +#define MA_TRUE 1 +#define MA_FALSE 0 typedef void* ma_handle; typedef void* ma_ptr; @@ -944,7 +946,7 @@ MA_ALIGNED_STRUCT(MA_SIMD_ALIGNMENT) ma_src }; typedef struct ma_pcm_converter ma_pcm_converter; -typedef ma_uint32 (* ma_pcm_converter_read_proc)(ma_pcm_converter* pDSP, void* pSamplesOut, ma_uint32 frameCount, void* pUserData); +typedef ma_uint32 (* ma_pcm_converter_read_proc)(ma_pcm_converter* pDSP, void* pFramesOut, ma_uint32 frameCount, void* pUserData); typedef struct { @@ -987,7 +989,7 @@ MA_ALIGNED_STRUCT(MA_SIMD_ALIGNMENT) ma_pcm_converter ma_bool32 isChannelRoutingRequired : 1; ma_bool32 isSRCRequired : 1; ma_bool32 isChannelRoutingAtStart : 1; - ma_bool32 isPassthrough : 1; /* <-- Will be set to true when the DSP pipeline is an optimized passthrough. */ + ma_bool32 isPassthrough : 1; /* <-- Will be set to true when the conversion pipeline is an optimized passthrough. */ }; @@ -1342,7 +1344,7 @@ determine the required size of the output buffer. A return value of 0 indicates an error. -This function is useful for one-off bulk conversions, but if you're streaming data you should use the DSP APIs instead. +This function is useful for one-off bulk conversions, but if you're streaming data you should use the ma_pcm_converter APIs instead. */ ma_uint64 ma_convert_frames(void* pOut, ma_format formatOut, ma_uint32 channelsOut, ma_uint32 sampleRateOut, const void* pIn, ma_format formatIn, ma_uint32 channelsIn, ma_uint32 sampleRateIn, ma_uint64 frameCount); ma_uint64 ma_convert_frames_ex(void* pOut, ma_format formatOut, ma_uint32 channelsOut, ma_uint32 sampleRateOut, ma_channel channelMapOut[MA_MAX_CHANNELS], const void* pIn, ma_format formatIn, ma_uint32 channelsIn, ma_uint32 sampleRateIn, ma_channel channelMapIn[MA_MAX_CHANNELS], ma_uint64 frameCount); @@ -1770,7 +1772,9 @@ pInput is a pointer to a buffer containing input data from the device. This will null for a playback device. frameCount is the number of PCM frames to process. If an output buffer is provided (pOutput is not null), applications should write out -to the entire output buffer. +to the entire output buffer. Note that frameCount will not necessarily be exactly what you asked for when you initialized the deviced. +The bufferSizeInFrames and bufferSizeInMilliseconds members of the device config are just hints, and are not necessarily exactly what +you'll get. Do _not_ call any miniaudio APIs from the callback. Attempting the stop the device can result in a deadlock. The proper way to stop the device is to call ma_device_stop() from a different thread, normally the main application thread. @@ -2691,8 +2695,8 @@ Retrieves information about a device with the given ID. Do _not_ call this from within the ma_context_enumerate_devices() callback. -It's possible for a device to have different information and capabilities depending on wether or -not it's opened in shared or exclusive mode. For example, in shared mode, WASAPI always uses +It's possible for a device to have different information and capabilities depending on whether +or not it's opened in shared or exclusive mode. For example, in shared mode, WASAPI always uses floating point samples for mixing, but in exclusive mode it can be anything. Therefore, this function allows you to specify which share mode you want information for. Note that not all backends and devices support shared or exclusive mode, in which case this function will fail @@ -2723,7 +2727,8 @@ initialization of other devices. The device's configuration is controlled with pConfig. This allows you to configure the sample format, channel count, sample rate, etc. Before calling ma_device_init(), you will need to initialize a ma_device_config object using ma_device_config_init(). You must set the callback in -the device config. +the device config. Once initialized, the device's config is immutable. If you need to change the +config you will need to initialize a new device. Passing in 0 to any property in pConfig will force the use of a default value. In the case of sample format, channel count, sample rate and channel map it will default to the values used by @@ -2787,6 +2792,8 @@ Uninitializes a device. This will explicitly stop the device. You do not need to call ma_device_stop() beforehand, but it's harmless if you do. +Do not call this in any callback. + Return Value: MA_SUCCESS if successful; any other error code otherwise. @@ -2815,6 +2822,8 @@ to be done _before_ the device begins playback. This API waits until the backend device has been started for real by the worker thread. It also waits on a mutex for thread-safety. +Do not call this in any callback. + Return Value: MA_SUCCESS if successful; any other error code otherwise. @@ -2836,6 +2845,8 @@ the resuming it with ma_device_start() (which you might do when your program los in a situation where those samples are never output to the speakers or received from the microphone which can in turn result in de-syncs. +Do not call this in any callback. + Return Value: MA_SUCCESS if successful; any other error code otherwise. @@ -2990,10 +3001,11 @@ typedef enum ma_seek_origin_current } ma_seek_origin; -typedef size_t (* ma_decoder_read_proc) (ma_decoder* pDecoder, void* pBufferOut, size_t bytesToRead); /* Returns the number of bytes read. */ -typedef ma_bool32 (* ma_decoder_seek_proc) (ma_decoder* pDecoder, int byteOffset, ma_seek_origin origin); -typedef ma_result (* ma_decoder_seek_to_pcm_frame_proc)(ma_decoder* pDecoder, ma_uint64 frameIndex); -typedef ma_result (* ma_decoder_uninit_proc) (ma_decoder* pDecoder); +typedef size_t (* ma_decoder_read_proc) (ma_decoder* pDecoder, void* pBufferOut, size_t bytesToRead); /* Returns the number of bytes read. */ +typedef ma_bool32 (* ma_decoder_seek_proc) (ma_decoder* pDecoder, int byteOffset, ma_seek_origin origin); +typedef ma_result (* ma_decoder_seek_to_pcm_frame_proc) (ma_decoder* pDecoder, ma_uint64 frameIndex); +typedef ma_result (* ma_decoder_uninit_proc) (ma_decoder* pDecoder); +typedef ma_uint64 (* ma_decoder_get_length_in_pcm_frames_proc)(ma_decoder* pDecoder); typedef struct { @@ -3027,6 +3039,7 @@ struct ma_decoder ma_pcm_converter dsp; /* <-- Format conversion is achieved by running frames through this. */ ma_decoder_seek_to_pcm_frame_proc onSeekToPCMFrame; ma_decoder_uninit_proc onUninit; + ma_decoder_get_length_in_pcm_frames_proc onGetLengthInPCMFrames; void* pInternalDecoder; /* <-- The drwav/drflac/stb_vorbis/etc. objects. */ struct { @@ -3055,10 +3068,33 @@ ma_result ma_decoder_init_memory_raw(const void* pData, size_t dataSize, const m #ifndef MA_NO_STDIO ma_result ma_decoder_init_file(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); ma_result ma_decoder_init_file_wav(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +ma_result ma_decoder_init_file_flac(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +ma_result ma_decoder_init_file_vorbis(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +ma_result ma_decoder_init_file_mp3(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); + +ma_result ma_decoder_init_file_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +ma_result ma_decoder_init_file_wav_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +ma_result ma_decoder_init_file_flac_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +ma_result ma_decoder_init_file_vorbis_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); +ma_result ma_decoder_init_file_mp3_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder); #endif ma_result ma_decoder_uninit(ma_decoder* pDecoder); +/* +Retrieves the length of the decoder in PCM frames. + +Do not call this on streams of an undefined length, such as internet radio. + +If the length is unknown or an error occurs, 0 will be returned. + +This will always return 0 for Vorbis decoders. This is due to a limitation with stb_vorbis in push mode which is what miniaudio +uses internally. + +This will run in linear time for MP3 decoders. Do not call this in time critical scenarios. +*/ +ma_uint64 ma_decoder_get_length_in_pcm_frames(ma_decoder* pDecoder); + ma_uint64 ma_decoder_read_pcm_frames(ma_decoder* pDecoder, void* pFramesOut, ma_uint64 frameCount); ma_result ma_decoder_seek_to_pcm_frame(ma_decoder* pDecoder, ma_uint64 frameIndex); @@ -3192,7 +3228,7 @@ typedef struct tagBITMAPINFOHEADER { #endif #else -#include /* For malloc()/free() */ +#include /* For malloc(), free(), wcstombs(). */ #include /* For memset() */ #endif @@ -3345,7 +3381,7 @@ typedef struct tagBITMAPINFOHEADER { #define MA_NO_CPUID #endif - #if _MSC_VER >= 1600 + #if _MSC_VER >= 1600 && (defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 160040219) static MA_INLINE unsigned __int64 ma_xgetbv(int reg) { return _xgetbv(reg); @@ -3827,6 +3863,52 @@ int ma_strcat_s(char* dst, size_t dstSizeInBytes, const char* src) return 0; } +int ma_strncat_s(char* dst, size_t dstSizeInBytes, const char* src, size_t count) +{ + char* dstorig; + + if (dst == 0) { + return 22; + } + if (dstSizeInBytes == 0) { + return 34; + } + if (src == 0) { + return 22; + } + + dstorig = dst; + + while (dstSizeInBytes > 0 && dst[0] != '\0') { + dst += 1; + dstSizeInBytes -= 1; + } + + if (dstSizeInBytes == 0) { + return 22; /* Unterminated. */ + } + + + if (count == ((size_t)-1)) { /* _TRUNCATE */ + count = dstSizeInBytes - 1; + } + + while (dstSizeInBytes > 0 && src[0] != '\0' && count > 0) { + *dst++ = *src++; + dstSizeInBytes -= 1; + count -= 1; + } + + if (dstSizeInBytes > 0) { + dst[0] = '\0'; + } else { + dstorig[0] = '\0'; + return 34; + } + + return 0; +} + int ma_itoa_s(int value, char* dst, size_t dstSizeInBytes, int radix) { int sign; @@ -3919,6 +4001,23 @@ int ma_strcmp(const char* str1, const char* str2) return ((unsigned char*)str1)[0] - ((unsigned char*)str2)[0]; } +int ma_strappend(char* dst, size_t dstSize, const char* srcA, const char* srcB) +{ + int result; + + result = ma_strncpy_s(dst, dstSize, srcA, (size_t)-1); + if (result != 0) { + return result; + } + + result = ma_strncat_s(dst, dstSize, srcB, (size_t)-1); + if (result != 0) { + return result; + } + + return result; +} + char* ma_copy_string(const char* src) { size_t sz = strlen(src)+1; @@ -4383,6 +4482,63 @@ typedef LONG (WINAPI * MA_PFN_RegQueryValueExA)(HKEY hKey, LPCSTR lpValueName, L #define MA_DEFAULT_CAPTURE_DEVICE_NAME "Default Capture Device" +const char* ma_log_level_to_string(ma_uint32 logLevel) +{ + switch (logLevel) + { + case MA_LOG_LEVEL_VERBOSE: return ""; + case MA_LOG_LEVEL_INFO: return "INFO"; + case MA_LOG_LEVEL_WARNING: return "WARNING"; + case MA_LOG_LEVEL_ERROR: return "ERROR"; + default: return "ERROR"; + } +} + +/* Posts a log message. */ +void ma_log(ma_context* pContext, ma_device* pDevice, ma_uint32 logLevel, const char* message) +{ + if (pContext == NULL) { + return; + } + +#if defined(MA_LOG_LEVEL) + if (logLevel <= MA_LOG_LEVEL) { + ma_log_proc onLog; + + #if defined(MA_DEBUG_OUTPUT) + if (logLevel <= MA_LOG_LEVEL) { + printf("%s: %s\n", ma_log_level_to_string(logLevel), message); + } + #endif + + onLog = pContext->logCallback; + if (onLog) { + onLog(pContext, pDevice, logLevel, message); + } + } +#endif +} + +/* Posts an log message. Throw a breakpoint in here if you're needing to debug. The return value is always "resultCode". */ +ma_result ma_context_post_error(ma_context* pContext, ma_device* pDevice, ma_uint32 logLevel, const char* message, ma_result resultCode) +{ + /* Derive the context from the device if necessary. */ + if (pContext == NULL) { + if (pDevice != NULL) { + pContext = pDevice->pContext; + } + } + + ma_log(pContext, pDevice, logLevel, message); + return resultCode; +} + +ma_result ma_post_error(ma_device* pDevice, ma_uint32 logLevel, const char* message, ma_result resultCode) +{ + return ma_context_post_error(NULL, pDevice, logLevel, message, resultCode); +} + + /******************************************************************************* Timing @@ -4499,48 +4655,96 @@ double ma_timer_get_time_in_seconds(ma_timer* pTimer) Dynamic Linking *******************************************************************************/ -ma_handle ma_dlopen(const char* filename) +ma_handle ma_dlopen(ma_context* pContext, const char* filename) { + ma_handle handle; + +#if MA_LOG_LEVEL >= MA_LOG_LEVEL_VERBOSE + if (pContext != NULL) { + char message[256]; + ma_strappend(message, sizeof(message), "Loading library: ", filename); + ma_log(pContext, NULL, MA_LOG_LEVEL_VERBOSE, message); + } +#endif + #ifdef _WIN32 #ifdef MA_WIN32_DESKTOP - return (ma_handle)LoadLibraryA(filename); + handle = (ma_handle)LoadLibraryA(filename); #else /* *sigh* It appears there is no ANSI version of LoadPackagedLibrary()... */ WCHAR filenameW[4096]; if (MultiByteToWideChar(CP_UTF8, 0, filename, -1, filenameW, sizeof(filenameW)) == 0) { - return NULL; + handle = NULL; + } else { + handle = (ma_handle)LoadPackagedLibrary(filenameW, 0); } - - return (ma_handle)LoadPackagedLibrary(filenameW, 0); #endif #else - return (ma_handle)dlopen(filename, RTLD_NOW); + handle = (ma_handle)dlopen(filename, RTLD_NOW); #endif + + /* + I'm not considering failure to load a library an error nor a warning because seamlessly falling through to a lower-priority + backend is a deliberate design choice. Instead I'm logging it as an informational message. + */ +#if MA_LOG_LEVEL >= MA_LOG_LEVEL_INFO + if (handle == NULL) { + char message[256]; + ma_strappend(message, sizeof(message), "Failed to load library: ", filename); + ma_log(pContext, NULL, MA_LOG_LEVEL_INFO, message); + } +#endif + + (void)pContext; /* It's possible for pContext to be unused. */ + return handle; } -void ma_dlclose(ma_handle handle) +void ma_dlclose(ma_context* pContext, ma_handle handle) { #ifdef _WIN32 FreeLibrary((HMODULE)handle); #else dlclose((void*)handle); #endif + + (void)pContext; } -ma_proc ma_dlsym(ma_handle handle, const char* symbol) +ma_proc ma_dlsym(ma_context* pContext, ma_handle handle, const char* symbol) { + ma_proc proc; + +#if MA_LOG_LEVEL >= MA_LOG_LEVEL_VERBOSE + if (pContext != NULL) { + char message[256]; + ma_strappend(message, sizeof(message), "Loading symbol: ", symbol); + ma_log(pContext, NULL, MA_LOG_LEVEL_VERBOSE, message); + } +#endif + #ifdef _WIN32 - return (ma_proc)GetProcAddress((HMODULE)handle, symbol); + proc = (ma_proc)GetProcAddress((HMODULE)handle, symbol); #else #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wpedantic" #endif - return (ma_proc)dlsym((void*)handle, symbol); + proc = (ma_proc)dlsym((void*)handle, symbol); #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) #pragma GCC diagnostic pop #endif #endif + +#if MA_LOG_LEVEL >= MA_LOG_LEVEL_WARNING + if (handle == NULL) { + char message[256]; + ma_strappend(message, sizeof(message), "Failed to load symbol: ", symbol); + ma_log(pContext, NULL, MA_LOG_LEVEL_WARNING, message); + } +#endif + + (void)pContext; /* It's possible for pContext to be unused. */ + return proc; } @@ -4560,7 +4764,7 @@ int ma_thread_priority_to_win32(ma_thread_priority priority) case ma_thread_priority_high: return THREAD_PRIORITY_ABOVE_NORMAL; case ma_thread_priority_highest: return THREAD_PRIORITY_HIGHEST; case ma_thread_priority_realtime: return THREAD_PRIORITY_TIME_CRITICAL; - default: return ma_thread_priority_normal; + default: return THREAD_PRIORITY_NORMAL; } } @@ -5102,63 +5306,6 @@ void ma_zero_pcm_frames(void* p, ma_uint32 frameCount, ma_format format, ma_uint } -const char* ma_log_level_to_string(ma_uint32 logLevel) -{ - switch (logLevel) - { - case MA_LOG_LEVEL_VERBOSE: return ""; - case MA_LOG_LEVEL_INFO: return "INFO"; - case MA_LOG_LEVEL_WARNING: return "WARNING"; - case MA_LOG_LEVEL_ERROR: return "ERROR"; - default: return "ERROR"; - } -} - -/* Posts a log message. */ -void ma_log(ma_context* pContext, ma_device* pDevice, ma_uint32 logLevel, const char* message) -{ - if (pContext == NULL) { - return; - } - -#if defined(MA_LOG_LEVEL) - if (logLevel <= MA_LOG_LEVEL) { - ma_log_proc onLog; - - #if defined(MA_DEBUG_OUTPUT) - if (logLevel <= MA_LOG_LEVEL) { - printf("%s: %s\n", ma_log_level_to_string(logLevel), message); - } - #endif - - onLog = pContext->logCallback; - if (onLog) { - onLog(pContext, pDevice, logLevel, message); - } - } -#endif -} - -/* Posts an error. Throw a breakpoint in here if you're needing to debug. The return value is always "resultCode". */ -ma_result ma_context_post_error(ma_context* pContext, ma_device* pDevice, ma_uint32 logLevel, const char* message, ma_result resultCode) -{ - /* Derive the context from the device if necessary. */ - if (pContext == NULL) { - if (pDevice != NULL) { - pContext = pDevice->pContext; - } - } - - ma_log(pContext, pDevice, logLevel, message); - return resultCode; -} - -ma_result ma_post_error(ma_device* pDevice, ma_uint32 logLevel, const char* message, ma_result resultCode) -{ - return ma_context_post_error(NULL, pDevice, logLevel, message, resultCode); -} - - /* The callback for reading from the client -> DSP -> device. */ ma_uint32 ma_device__on_read_from_client(ma_pcm_converter* pDSP, void* pFramesOut, ma_uint32 frameCount, void* pUserData) @@ -5421,13 +5568,10 @@ static MA_INLINE void ma_device__set_state(ma_device* pDevice, ma_uint32 newStat /* A helper for getting the state of the device. */ static MA_INLINE ma_uint32 ma_device__get_state(ma_device* pDevice) { - return pDevice->state; -} + ma_uint32 state; + ma_atomic_exchange_32(&state, pDevice->state); -/* A helper for determining whether or not the device is running in async mode. */ -static MA_INLINE ma_bool32 ma_device__is_async(ma_device* pDevice) -{ - return pDevice->onData != NULL; + return state; } @@ -7116,6 +7260,8 @@ ma_result ma_context_get_device_info_from_IAudioClient__wasapi(ma_context* pCont ma_IPropertyStore_Release(pProperties); return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to retrieve device format for device info retrieval.", MA_FAILED_TO_OPEN_BACKEND_DEVICE); } + + ma_IPropertyStore_Release(pProperties); } else { return ma_context_post_error(pContext, NULL, MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to open property store for device info retrieval.", MA_FAILED_TO_OPEN_BACKEND_DEVICE); } @@ -7578,6 +7724,8 @@ ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device_type d clientProperties.eCategory = MA_AudioCategory_Other; ma_IAudioClient2_SetClientProperties(pAudioClient2, &clientProperties); } + + pAudioClient2->lpVtbl->Release(pAudioClient2); } @@ -7688,7 +7836,7 @@ ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device_type d } if (hr == MA_AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED) { - UINT bufferSizeInFrames; + ma_uint32 bufferSizeInFrames; hr = ma_IAudioClient_GetBufferSize((ma_IAudioClient*)pData->pAudioClient, &bufferSizeInFrames); if (SUCCEEDED(hr)) { bufferDuration = (MA_REFERENCE_TIME)((10000.0 * 1000 / wf.Format.nSamplesPerSec * bufferSizeInFrames) + 0.5); @@ -8744,7 +8892,6 @@ ma_result ma_context_init__wasapi(const ma_context_config* pConfig, ma_context* ma_assert(pContext != NULL); - (void)pContext; (void)pConfig; #ifdef MA_WIN32_DESKTOP @@ -8760,15 +8907,15 @@ ma_result ma_context_init__wasapi(const ma_context_config* pConfig, ma_context* ma_PFNVerifyVersionInfoW _VerifyVersionInfoW; ma_PFNVerSetConditionMask _VerSetConditionMask; - kernel32DLL = ma_dlopen("kernel32.dll"); + kernel32DLL = ma_dlopen(pContext, "kernel32.dll"); if (kernel32DLL == NULL) { return MA_NO_BACKEND; } - _VerifyVersionInfoW = (ma_PFNVerifyVersionInfoW)ma_dlsym(kernel32DLL, "VerifyVersionInfoW"); - _VerSetConditionMask = (ma_PFNVerSetConditionMask)ma_dlsym(kernel32DLL, "VerSetConditionMask"); + _VerifyVersionInfoW = (ma_PFNVerifyVersionInfoW)ma_dlsym(pContext, kernel32DLL, "VerifyVersionInfoW"); + _VerSetConditionMask = (ma_PFNVerSetConditionMask)ma_dlsym(pContext, kernel32DLL, "VerSetConditionMask"); if (_VerifyVersionInfoW == NULL || _VerSetConditionMask == NULL) { - ma_dlclose(kernel32DLL); + ma_dlclose(pContext, kernel32DLL); return MA_NO_BACKEND; } @@ -8783,7 +8930,7 @@ ma_result ma_context_init__wasapi(const ma_context_config* pConfig, ma_context* result = MA_NO_BACKEND; } - ma_dlclose(kernel32DLL); + ma_dlclose(pContext, kernel32DLL); } #endif @@ -10436,7 +10583,7 @@ ma_result ma_context_uninit__dsound(ma_context* pContext) ma_assert(pContext != NULL); ma_assert(pContext->backend == ma_backend_dsound); - ma_dlclose(pContext->dsound.hDSoundDLL); + ma_dlclose(pContext, pContext->dsound.hDSoundDLL); return MA_SUCCESS; } @@ -10447,15 +10594,15 @@ ma_result ma_context_init__dsound(const ma_context_config* pConfig, ma_context* (void)pConfig; - pContext->dsound.hDSoundDLL = ma_dlopen("dsound.dll"); + pContext->dsound.hDSoundDLL = ma_dlopen(pContext, "dsound.dll"); if (pContext->dsound.hDSoundDLL == NULL) { return MA_API_NOT_FOUND; } - pContext->dsound.DirectSoundCreate = ma_dlsym(pContext->dsound.hDSoundDLL, "DirectSoundCreate"); - pContext->dsound.DirectSoundEnumerateA = ma_dlsym(pContext->dsound.hDSoundDLL, "DirectSoundEnumerateA"); - pContext->dsound.DirectSoundCaptureCreate = ma_dlsym(pContext->dsound.hDSoundDLL, "DirectSoundCaptureCreate"); - pContext->dsound.DirectSoundCaptureEnumerateA = ma_dlsym(pContext->dsound.hDSoundDLL, "DirectSoundCaptureEnumerateA"); + pContext->dsound.DirectSoundCreate = ma_dlsym(pContext, pContext->dsound.hDSoundDLL, "DirectSoundCreate"); + pContext->dsound.DirectSoundEnumerateA = ma_dlsym(pContext, pContext->dsound.hDSoundDLL, "DirectSoundEnumerateA"); + pContext->dsound.DirectSoundCaptureCreate = ma_dlsym(pContext, pContext->dsound.hDSoundDLL, "DirectSoundCaptureCreate"); + pContext->dsound.DirectSoundCaptureEnumerateA = ma_dlsym(pContext, pContext->dsound.hDSoundDLL, "DirectSoundCaptureEnumerateA"); pContext->onUninit = ma_context_uninit__dsound; pContext->onDeviceIDEqual = ma_context_is_device_id_equal__dsound; @@ -11454,7 +11601,7 @@ ma_result ma_context_uninit__winmm(ma_context* pContext) ma_assert(pContext != NULL); ma_assert(pContext->backend == ma_backend_winmm); - ma_dlclose(pContext->winmm.hWinMM); + ma_dlclose(pContext, pContext->winmm.hWinMM); return MA_SUCCESS; } @@ -11464,28 +11611,28 @@ ma_result ma_context_init__winmm(const ma_context_config* pConfig, ma_context* p (void)pConfig; - pContext->winmm.hWinMM = ma_dlopen("winmm.dll"); + pContext->winmm.hWinMM = ma_dlopen(pContext, "winmm.dll"); if (pContext->winmm.hWinMM == NULL) { return MA_NO_BACKEND; } - pContext->winmm.waveOutGetNumDevs = ma_dlsym(pContext->winmm.hWinMM, "waveOutGetNumDevs"); - pContext->winmm.waveOutGetDevCapsA = ma_dlsym(pContext->winmm.hWinMM, "waveOutGetDevCapsA"); - pContext->winmm.waveOutOpen = ma_dlsym(pContext->winmm.hWinMM, "waveOutOpen"); - pContext->winmm.waveOutClose = ma_dlsym(pContext->winmm.hWinMM, "waveOutClose"); - pContext->winmm.waveOutPrepareHeader = ma_dlsym(pContext->winmm.hWinMM, "waveOutPrepareHeader"); - pContext->winmm.waveOutUnprepareHeader = ma_dlsym(pContext->winmm.hWinMM, "waveOutUnprepareHeader"); - pContext->winmm.waveOutWrite = ma_dlsym(pContext->winmm.hWinMM, "waveOutWrite"); - pContext->winmm.waveOutReset = ma_dlsym(pContext->winmm.hWinMM, "waveOutReset"); - pContext->winmm.waveInGetNumDevs = ma_dlsym(pContext->winmm.hWinMM, "waveInGetNumDevs"); - pContext->winmm.waveInGetDevCapsA = ma_dlsym(pContext->winmm.hWinMM, "waveInGetDevCapsA"); - pContext->winmm.waveInOpen = ma_dlsym(pContext->winmm.hWinMM, "waveInOpen"); - pContext->winmm.waveInClose = ma_dlsym(pContext->winmm.hWinMM, "waveInClose"); - pContext->winmm.waveInPrepareHeader = ma_dlsym(pContext->winmm.hWinMM, "waveInPrepareHeader"); - pContext->winmm.waveInUnprepareHeader = ma_dlsym(pContext->winmm.hWinMM, "waveInUnprepareHeader"); - pContext->winmm.waveInAddBuffer = ma_dlsym(pContext->winmm.hWinMM, "waveInAddBuffer"); - pContext->winmm.waveInStart = ma_dlsym(pContext->winmm.hWinMM, "waveInStart"); - pContext->winmm.waveInReset = ma_dlsym(pContext->winmm.hWinMM, "waveInReset"); + pContext->winmm.waveOutGetNumDevs = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutGetNumDevs"); + pContext->winmm.waveOutGetDevCapsA = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutGetDevCapsA"); + pContext->winmm.waveOutOpen = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutOpen"); + pContext->winmm.waveOutClose = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutClose"); + pContext->winmm.waveOutPrepareHeader = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutPrepareHeader"); + pContext->winmm.waveOutUnprepareHeader = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutUnprepareHeader"); + pContext->winmm.waveOutWrite = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutWrite"); + pContext->winmm.waveOutReset = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutReset"); + pContext->winmm.waveInGetNumDevs = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInGetNumDevs"); + pContext->winmm.waveInGetDevCapsA = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInGetDevCapsA"); + pContext->winmm.waveInOpen = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInOpen"); + pContext->winmm.waveInClose = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInClose"); + pContext->winmm.waveInPrepareHeader = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInPrepareHeader"); + pContext->winmm.waveInUnprepareHeader = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInUnprepareHeader"); + pContext->winmm.waveInAddBuffer = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInAddBuffer"); + pContext->winmm.waveInStart = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInStart"); + pContext->winmm.waveInReset = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInReset"); pContext->onUninit = ma_context_uninit__winmm; pContext->onDeviceIDEqual = ma_context_is_device_id_equal__winmm; @@ -13261,14 +13408,29 @@ ma_result ma_device_stop__alsa(ma_device* pDevice) if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { ((ma_snd_pcm_drain_proc)pDevice->pContext->alsa.snd_pcm_drain)((ma_snd_pcm_t*)pDevice->alsa.pPCMCapture); + + /* We need to prepare the device again, otherwise we won't be able to restart the device. */ + if (((ma_snd_pcm_prepare_proc)pDevice->pContext->alsa.snd_pcm_prepare)((ma_snd_pcm_t*)pDevice->alsa.pPCMCapture) < 0) { + #ifdef MA_DEBUG_OUTPUT + printf("[ALSA] Failed to prepare capture device after stopping.\n"); + #endif + } } if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { /* Using drain instead of drop because ma_device_stop() is defined such that pending frames are processed before returning. */ ((ma_snd_pcm_drain_proc)pDevice->pContext->alsa.snd_pcm_drain)((ma_snd_pcm_t*)pDevice->alsa.pPCMPlayback); + + /* We need to prepare the device again, otherwise we won't be able to restart the device. */ + if (((ma_snd_pcm_prepare_proc)pDevice->pContext->alsa.snd_pcm_prepare)((ma_snd_pcm_t*)pDevice->alsa.pPCMPlayback) < 0) { + #ifdef MA_DEBUG_OUTPUT + printf("[ALSA] Failed to prepare playback device after stopping.\n"); + #endif + } } + return MA_SUCCESS; } @@ -13415,7 +13577,7 @@ ma_result ma_context_uninit__alsa(ma_context* pContext) ((ma_snd_config_update_free_global_proc)pContext->alsa.snd_config_update_free_global)(); #ifndef MA_NO_RUNTIME_LINKING - ma_dlclose(pContext->alsa.asoundSO); + ma_dlclose(pContext, pContext->alsa.asoundSO); #endif ma_mutex_uninit(&pContext->alsa.internalDeviceEnumLock); @@ -13433,7 +13595,7 @@ ma_result ma_context_init__alsa(const ma_context_config* pConfig, ma_context* pC size_t i; for (i = 0; i < ma_countof(libasoundNames); ++i) { - pContext->alsa.asoundSO = ma_dlopen(libasoundNames[i]); + pContext->alsa.asoundSO = ma_dlopen(pContext, libasoundNames[i]); if (pContext->alsa.asoundSO != NULL) { break; } @@ -13446,61 +13608,61 @@ ma_result ma_context_init__alsa(const ma_context_config* pConfig, ma_context* pC return MA_NO_BACKEND; } - pContext->alsa.snd_pcm_open = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_open"); - pContext->alsa.snd_pcm_close = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_close"); - pContext->alsa.snd_pcm_hw_params_sizeof = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_sizeof"); - pContext->alsa.snd_pcm_hw_params_any = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_any"); - pContext->alsa.snd_pcm_hw_params_set_format = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_set_format"); - pContext->alsa.snd_pcm_hw_params_set_format_first = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_set_format_first"); - pContext->alsa.snd_pcm_hw_params_get_format_mask = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_get_format_mask"); - pContext->alsa.snd_pcm_hw_params_set_channels_near = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_set_channels_near"); - pContext->alsa.snd_pcm_hw_params_set_rate_resample = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_set_rate_resample"); - pContext->alsa.snd_pcm_hw_params_set_rate_near = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_set_rate_near"); - pContext->alsa.snd_pcm_hw_params_set_buffer_size_near = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_set_buffer_size_near"); - pContext->alsa.snd_pcm_hw_params_set_periods_near = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_set_periods_near"); - pContext->alsa.snd_pcm_hw_params_set_access = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_set_access"); - pContext->alsa.snd_pcm_hw_params_get_format = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_get_format"); - pContext->alsa.snd_pcm_hw_params_get_channels = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_get_channels"); - pContext->alsa.snd_pcm_hw_params_get_channels_min = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_get_channels_min"); - pContext->alsa.snd_pcm_hw_params_get_channels_max = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_get_channels_max"); - pContext->alsa.snd_pcm_hw_params_get_rate = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_get_rate"); - pContext->alsa.snd_pcm_hw_params_get_rate_min = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_get_rate_min"); - pContext->alsa.snd_pcm_hw_params_get_rate_max = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_get_rate_max"); - pContext->alsa.snd_pcm_hw_params_get_buffer_size = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_get_buffer_size"); - pContext->alsa.snd_pcm_hw_params_get_periods = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_get_periods"); - pContext->alsa.snd_pcm_hw_params_get_access = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params_get_access"); - pContext->alsa.snd_pcm_hw_params = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_hw_params"); - pContext->alsa.snd_pcm_sw_params_sizeof = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_sw_params_sizeof"); - pContext->alsa.snd_pcm_sw_params_current = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_sw_params_current"); - pContext->alsa.snd_pcm_sw_params_get_boundary = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_sw_params_get_boundary"); - pContext->alsa.snd_pcm_sw_params_set_avail_min = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_sw_params_set_avail_min"); - pContext->alsa.snd_pcm_sw_params_set_start_threshold = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_sw_params_set_start_threshold"); - pContext->alsa.snd_pcm_sw_params_set_stop_threshold = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_sw_params_set_stop_threshold"); - pContext->alsa.snd_pcm_sw_params = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_sw_params"); - pContext->alsa.snd_pcm_format_mask_sizeof = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_format_mask_sizeof"); - pContext->alsa.snd_pcm_format_mask_test = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_format_mask_test"); - pContext->alsa.snd_pcm_get_chmap = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_get_chmap"); - pContext->alsa.snd_pcm_state = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_state"); - pContext->alsa.snd_pcm_prepare = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_prepare"); - pContext->alsa.snd_pcm_start = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_start"); - pContext->alsa.snd_pcm_drop = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_drop"); - pContext->alsa.snd_pcm_drain = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_drain"); - pContext->alsa.snd_device_name_hint = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_device_name_hint"); - pContext->alsa.snd_device_name_get_hint = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_device_name_get_hint"); - pContext->alsa.snd_card_get_index = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_card_get_index"); - pContext->alsa.snd_device_name_free_hint = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_device_name_free_hint"); - pContext->alsa.snd_pcm_mmap_begin = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_mmap_begin"); - pContext->alsa.snd_pcm_mmap_commit = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_mmap_commit"); - pContext->alsa.snd_pcm_recover = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_recover"); - pContext->alsa.snd_pcm_readi = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_readi"); - pContext->alsa.snd_pcm_writei = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_writei"); - pContext->alsa.snd_pcm_avail = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_avail"); - pContext->alsa.snd_pcm_avail_update = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_avail_update"); - pContext->alsa.snd_pcm_wait = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_wait"); - pContext->alsa.snd_pcm_info = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_info"); - pContext->alsa.snd_pcm_info_sizeof = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_info_sizeof"); - pContext->alsa.snd_pcm_info_get_name = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_pcm_info_get_name"); - pContext->alsa.snd_config_update_free_global = (ma_proc)ma_dlsym(pContext->alsa.asoundSO, "snd_config_update_free_global"); + pContext->alsa.snd_pcm_open = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_open"); + pContext->alsa.snd_pcm_close = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_close"); + pContext->alsa.snd_pcm_hw_params_sizeof = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_sizeof"); + pContext->alsa.snd_pcm_hw_params_any = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_any"); + pContext->alsa.snd_pcm_hw_params_set_format = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_format"); + pContext->alsa.snd_pcm_hw_params_set_format_first = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_format_first"); + pContext->alsa.snd_pcm_hw_params_get_format_mask = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_format_mask"); + pContext->alsa.snd_pcm_hw_params_set_channels_near = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_channels_near"); + pContext->alsa.snd_pcm_hw_params_set_rate_resample = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_rate_resample"); + pContext->alsa.snd_pcm_hw_params_set_rate_near = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_rate_near"); + pContext->alsa.snd_pcm_hw_params_set_buffer_size_near = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_buffer_size_near"); + pContext->alsa.snd_pcm_hw_params_set_periods_near = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_periods_near"); + pContext->alsa.snd_pcm_hw_params_set_access = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_access"); + pContext->alsa.snd_pcm_hw_params_get_format = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_format"); + pContext->alsa.snd_pcm_hw_params_get_channels = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_channels"); + pContext->alsa.snd_pcm_hw_params_get_channels_min = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_channels_min"); + pContext->alsa.snd_pcm_hw_params_get_channels_max = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_channels_max"); + pContext->alsa.snd_pcm_hw_params_get_rate = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_rate"); + pContext->alsa.snd_pcm_hw_params_get_rate_min = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_rate_min"); + pContext->alsa.snd_pcm_hw_params_get_rate_max = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_rate_max"); + pContext->alsa.snd_pcm_hw_params_get_buffer_size = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_buffer_size"); + pContext->alsa.snd_pcm_hw_params_get_periods = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_periods"); + pContext->alsa.snd_pcm_hw_params_get_access = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_access"); + pContext->alsa.snd_pcm_hw_params = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params"); + pContext->alsa.snd_pcm_sw_params_sizeof = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_sizeof"); + pContext->alsa.snd_pcm_sw_params_current = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_current"); + pContext->alsa.snd_pcm_sw_params_get_boundary = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_get_boundary"); + pContext->alsa.snd_pcm_sw_params_set_avail_min = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_set_avail_min"); + pContext->alsa.snd_pcm_sw_params_set_start_threshold = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_set_start_threshold"); + pContext->alsa.snd_pcm_sw_params_set_stop_threshold = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_set_stop_threshold"); + pContext->alsa.snd_pcm_sw_params = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params"); + pContext->alsa.snd_pcm_format_mask_sizeof = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_format_mask_sizeof"); + pContext->alsa.snd_pcm_format_mask_test = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_format_mask_test"); + pContext->alsa.snd_pcm_get_chmap = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_get_chmap"); + pContext->alsa.snd_pcm_state = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_state"); + pContext->alsa.snd_pcm_prepare = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_prepare"); + pContext->alsa.snd_pcm_start = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_start"); + pContext->alsa.snd_pcm_drop = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_drop"); + pContext->alsa.snd_pcm_drain = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_drain"); + pContext->alsa.snd_device_name_hint = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_device_name_hint"); + pContext->alsa.snd_device_name_get_hint = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_device_name_get_hint"); + pContext->alsa.snd_card_get_index = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_card_get_index"); + pContext->alsa.snd_device_name_free_hint = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_device_name_free_hint"); + pContext->alsa.snd_pcm_mmap_begin = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_mmap_begin"); + pContext->alsa.snd_pcm_mmap_commit = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_mmap_commit"); + pContext->alsa.snd_pcm_recover = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_recover"); + pContext->alsa.snd_pcm_readi = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_readi"); + pContext->alsa.snd_pcm_writei = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_writei"); + pContext->alsa.snd_pcm_avail = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_avail"); + pContext->alsa.snd_pcm_avail_update = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_avail_update"); + pContext->alsa.snd_pcm_wait = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_wait"); + pContext->alsa.snd_pcm_info = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_info"); + pContext->alsa.snd_pcm_info_sizeof = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_info_sizeof"); + pContext->alsa.snd_pcm_info_get_name = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_info_get_name"); + pContext->alsa.snd_config_update_free_global = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_config_update_free_global"); #else /* The system below is just for type safety. */ ma_snd_pcm_open_proc _snd_pcm_open = snd_pcm_open; @@ -14830,7 +14992,7 @@ ma_pa_buffer_attr ma_device__pa_buffer_attr_new(ma_uint32 bufferSizeInFrames, ma attr.maxlength = bufferSizeInFrames * ma_get_bytes_per_sample(ma_format_from_pulse(ss->format)) * ss->channels; attr.tlength = attr.maxlength / periods; attr.prebuf = (ma_uint32)-1; - attr.minreq = attr.maxlength / periods; + attr.minreq = (ma_uint32)-1; attr.fragsize = attr.maxlength / periods; return attr; @@ -15481,7 +15643,7 @@ ma_result ma_context_uninit__pulse(ma_context* pContext) pContext->pulse.pApplicationName = NULL; #ifndef MA_NO_RUNTIME_LINKING - ma_dlclose(pContext->pulse.pulseSO); + ma_dlclose(pContext, pContext->pulse.pulseSO); #endif return MA_SUCCESS; @@ -15497,7 +15659,7 @@ ma_result ma_context_init__pulse(const ma_context_config* pConfig, ma_context* p size_t i; for (i = 0; i < ma_countof(libpulseNames); ++i) { - pContext->pulse.pulseSO = ma_dlopen(libpulseNames[i]); + pContext->pulse.pulseSO = ma_dlopen(pContext, libpulseNames[i]); if (pContext->pulse.pulseSO != NULL) { break; } @@ -15507,50 +15669,50 @@ ma_result ma_context_init__pulse(const ma_context_config* pConfig, ma_context* p return MA_NO_BACKEND; } - pContext->pulse.pa_mainloop_new = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_mainloop_new"); - pContext->pulse.pa_mainloop_free = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_mainloop_free"); - pContext->pulse.pa_mainloop_get_api = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_mainloop_get_api"); - pContext->pulse.pa_mainloop_iterate = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_mainloop_iterate"); - pContext->pulse.pa_mainloop_wakeup = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_mainloop_wakeup"); - pContext->pulse.pa_context_new = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_context_new"); - pContext->pulse.pa_context_unref = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_context_unref"); - pContext->pulse.pa_context_connect = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_context_connect"); - pContext->pulse.pa_context_disconnect = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_context_disconnect"); - pContext->pulse.pa_context_set_state_callback = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_context_set_state_callback"); - pContext->pulse.pa_context_get_state = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_context_get_state"); - pContext->pulse.pa_context_get_sink_info_list = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_context_get_sink_info_list"); - pContext->pulse.pa_context_get_source_info_list = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_context_get_source_info_list"); - pContext->pulse.pa_context_get_sink_info_by_name = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_context_get_sink_info_by_name"); - pContext->pulse.pa_context_get_source_info_by_name = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_context_get_source_info_by_name"); - pContext->pulse.pa_operation_unref = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_operation_unref"); - pContext->pulse.pa_operation_get_state = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_operation_get_state"); - pContext->pulse.pa_channel_map_init_extend = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_channel_map_init_extend"); - pContext->pulse.pa_channel_map_valid = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_channel_map_valid"); - pContext->pulse.pa_channel_map_compatible = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_channel_map_compatible"); - pContext->pulse.pa_stream_new = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_new"); - pContext->pulse.pa_stream_unref = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_unref"); - pContext->pulse.pa_stream_connect_playback = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_connect_playback"); - pContext->pulse.pa_stream_connect_record = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_connect_record"); - pContext->pulse.pa_stream_disconnect = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_disconnect"); - pContext->pulse.pa_stream_get_state = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_get_state"); - pContext->pulse.pa_stream_get_sample_spec = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_get_sample_spec"); - pContext->pulse.pa_stream_get_channel_map = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_get_channel_map"); - pContext->pulse.pa_stream_get_buffer_attr = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_get_buffer_attr"); - pContext->pulse.pa_stream_set_buffer_attr = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_set_buffer_attr"); - pContext->pulse.pa_stream_get_device_name = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_get_device_name"); - pContext->pulse.pa_stream_set_write_callback = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_set_write_callback"); - pContext->pulse.pa_stream_set_read_callback = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_set_read_callback"); - pContext->pulse.pa_stream_flush = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_flush"); - pContext->pulse.pa_stream_drain = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_drain"); - pContext->pulse.pa_stream_is_corked = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_is_corked"); - pContext->pulse.pa_stream_cork = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_cork"); - pContext->pulse.pa_stream_trigger = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_trigger"); - pContext->pulse.pa_stream_begin_write = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_begin_write"); - pContext->pulse.pa_stream_write = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_write"); - pContext->pulse.pa_stream_peek = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_peek"); - pContext->pulse.pa_stream_drop = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_drop"); - pContext->pulse.pa_stream_writable_size = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_writable_size"); - pContext->pulse.pa_stream_readable_size = (ma_proc)ma_dlsym(pContext->pulse.pulseSO, "pa_stream_readable_size"); + pContext->pulse.pa_mainloop_new = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_new"); + pContext->pulse.pa_mainloop_free = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_free"); + pContext->pulse.pa_mainloop_get_api = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_get_api"); + pContext->pulse.pa_mainloop_iterate = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_iterate"); + pContext->pulse.pa_mainloop_wakeup = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_wakeup"); + pContext->pulse.pa_context_new = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_new"); + pContext->pulse.pa_context_unref = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_unref"); + pContext->pulse.pa_context_connect = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_connect"); + pContext->pulse.pa_context_disconnect = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_disconnect"); + pContext->pulse.pa_context_set_state_callback = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_set_state_callback"); + pContext->pulse.pa_context_get_state = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_get_state"); + pContext->pulse.pa_context_get_sink_info_list = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_get_sink_info_list"); + pContext->pulse.pa_context_get_source_info_list = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_get_source_info_list"); + pContext->pulse.pa_context_get_sink_info_by_name = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_get_sink_info_by_name"); + pContext->pulse.pa_context_get_source_info_by_name = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_get_source_info_by_name"); + pContext->pulse.pa_operation_unref = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_operation_unref"); + pContext->pulse.pa_operation_get_state = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_operation_get_state"); + pContext->pulse.pa_channel_map_init_extend = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_channel_map_init_extend"); + pContext->pulse.pa_channel_map_valid = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_channel_map_valid"); + pContext->pulse.pa_channel_map_compatible = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_channel_map_compatible"); + pContext->pulse.pa_stream_new = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_new"); + pContext->pulse.pa_stream_unref = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_unref"); + pContext->pulse.pa_stream_connect_playback = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_connect_playback"); + pContext->pulse.pa_stream_connect_record = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_connect_record"); + pContext->pulse.pa_stream_disconnect = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_disconnect"); + pContext->pulse.pa_stream_get_state = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_get_state"); + pContext->pulse.pa_stream_get_sample_spec = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_get_sample_spec"); + pContext->pulse.pa_stream_get_channel_map = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_get_channel_map"); + pContext->pulse.pa_stream_get_buffer_attr = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_get_buffer_attr"); + pContext->pulse.pa_stream_set_buffer_attr = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_set_buffer_attr"); + pContext->pulse.pa_stream_get_device_name = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_get_device_name"); + pContext->pulse.pa_stream_set_write_callback = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_set_write_callback"); + pContext->pulse.pa_stream_set_read_callback = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_set_read_callback"); + pContext->pulse.pa_stream_flush = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_flush"); + pContext->pulse.pa_stream_drain = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_drain"); + pContext->pulse.pa_stream_is_corked = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_is_corked"); + pContext->pulse.pa_stream_cork = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_cork"); + pContext->pulse.pa_stream_trigger = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_trigger"); + pContext->pulse.pa_stream_begin_write = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_begin_write"); + pContext->pulse.pa_stream_write = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_write"); + pContext->pulse.pa_stream_peek = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_peek"); + pContext->pulse.pa_stream_drop = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_drop"); + pContext->pulse.pa_stream_writable_size = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_writable_size"); + pContext->pulse.pa_stream_readable_size = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_readable_size"); #else /* This strange assignment system is just for type safety. */ ma_pa_mainloop_new_proc _pa_mainloop_new = pa_mainloop_new; @@ -15678,7 +15840,7 @@ ma_result ma_context_init__pulse(const ma_context_config* pConfig, ma_context* p ma_free(pContext->pulse.pServerName); ma_free(pContext->pulse.pApplicationName); #ifndef MA_NO_RUNTIME_LINKING - ma_dlclose(pContext->pulse.pulseSO); + ma_dlclose(pContext, pContext->pulse.pulseSO); #endif return MA_NO_BACKEND; } @@ -15689,7 +15851,7 @@ ma_result ma_context_init__pulse(const ma_context_config* pConfig, ma_context* p ma_free(pContext->pulse.pApplicationName); ((ma_pa_mainloop_free_proc)pContext->pulse.pa_mainloop_free)(pMainLoop); #ifndef MA_NO_RUNTIME_LINKING - ma_dlclose(pContext->pulse.pulseSO); + ma_dlclose(pContext, pContext->pulse.pulseSO); #endif return MA_NO_BACKEND; } @@ -15700,7 +15862,7 @@ ma_result ma_context_init__pulse(const ma_context_config* pConfig, ma_context* p ma_free(pContext->pulse.pApplicationName); ((ma_pa_mainloop_free_proc)pContext->pulse.pa_mainloop_free)(pMainLoop); #ifndef MA_NO_RUNTIME_LINKING - ma_dlclose(pContext->pulse.pulseSO); + ma_dlclose(pContext, pContext->pulse.pulseSO); #endif return MA_NO_BACKEND; } @@ -15712,7 +15874,7 @@ ma_result ma_context_init__pulse(const ma_context_config* pConfig, ma_context* p ((ma_pa_context_unref_proc)pContext->pulse.pa_context_unref)(pPulseContext); ((ma_pa_mainloop_free_proc)pContext->pulse.pa_mainloop_free)(pMainLoop); #ifndef MA_NO_RUNTIME_LINKING - ma_dlclose(pContext->pulse.pulseSO); + ma_dlclose(pContext, pContext->pulse.pulseSO); #endif return MA_NO_BACKEND; } @@ -16253,7 +16415,7 @@ ma_result ma_context_uninit__jack(ma_context* pContext) pContext->jack.pClientName = NULL; #ifndef MA_NO_RUNTIME_LINKING - ma_dlclose(pContext->jack.jackSO); + ma_dlclose(pContext, pContext->jack.jackSO); #endif return MA_SUCCESS; @@ -16273,7 +16435,7 @@ ma_result ma_context_init__jack(const ma_context_config* pConfig, ma_context* pC size_t i; for (i = 0; i < ma_countof(libjackNames); ++i) { - pContext->jack.jackSO = ma_dlopen(libjackNames[i]); + pContext->jack.jackSO = ma_dlopen(pContext, libjackNames[i]); if (pContext->jack.jackSO != NULL) { break; } @@ -16283,22 +16445,22 @@ ma_result ma_context_init__jack(const ma_context_config* pConfig, ma_context* pC return MA_NO_BACKEND; } - pContext->jack.jack_client_open = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_client_open"); - pContext->jack.jack_client_close = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_client_close"); - pContext->jack.jack_client_name_size = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_client_name_size"); - pContext->jack.jack_set_process_callback = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_set_process_callback"); - pContext->jack.jack_set_buffer_size_callback = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_set_buffer_size_callback"); - pContext->jack.jack_on_shutdown = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_on_shutdown"); - pContext->jack.jack_get_sample_rate = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_get_sample_rate"); - pContext->jack.jack_get_buffer_size = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_get_buffer_size"); - pContext->jack.jack_get_ports = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_get_ports"); - pContext->jack.jack_activate = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_activate"); - pContext->jack.jack_deactivate = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_deactivate"); - pContext->jack.jack_connect = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_connect"); - pContext->jack.jack_port_register = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_port_register"); - pContext->jack.jack_port_name = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_port_name"); - pContext->jack.jack_port_get_buffer = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_port_get_buffer"); - pContext->jack.jack_free = (ma_proc)ma_dlsym(pContext->jack.jackSO, "jack_free"); + pContext->jack.jack_client_open = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_client_open"); + pContext->jack.jack_client_close = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_client_close"); + pContext->jack.jack_client_name_size = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_client_name_size"); + pContext->jack.jack_set_process_callback = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_set_process_callback"); + pContext->jack.jack_set_buffer_size_callback = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_set_buffer_size_callback"); + pContext->jack.jack_on_shutdown = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_on_shutdown"); + pContext->jack.jack_get_sample_rate = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_get_sample_rate"); + pContext->jack.jack_get_buffer_size = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_get_buffer_size"); + pContext->jack.jack_get_ports = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_get_ports"); + pContext->jack.jack_activate = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_activate"); + pContext->jack.jack_deactivate = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_deactivate"); + pContext->jack.jack_connect = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_connect"); + pContext->jack.jack_port_register = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_port_register"); + pContext->jack.jack_port_name = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_port_name"); + pContext->jack.jack_port_get_buffer = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_port_get_buffer"); + pContext->jack.jack_free = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_free"); #else /* This strange assignment system is here just to ensure type safety of miniaudio's function pointer @@ -16365,7 +16527,7 @@ ma_result ma_context_init__jack(const ma_context_config* pConfig, ma_context* pC if (result != MA_SUCCESS) { ma_free(pContext->jack.pClientName); #ifndef MA_NO_RUNTIME_LINKING - ma_dlclose(pContext->jack.jackSO); + ma_dlclose(pContext, pContext->jack.jackSO); #endif return MA_NO_BACKEND; } @@ -18793,9 +18955,9 @@ ma_result ma_context_uninit__coreaudio(ma_context* pContext) ma_assert(pContext->backend == ma_backend_coreaudio); #if !defined(MA_NO_RUNTIME_LINKING) && !defined(MA_APPLE_MOBILE) - ma_dlclose(pContext->coreaudio.hAudioUnit); - ma_dlclose(pContext->coreaudio.hCoreAudio); - ma_dlclose(pContext->coreaudio.hCoreFoundation); + ma_dlclose(pContext, pContext->coreaudio.hAudioUnit); + ma_dlclose(pContext, pContext->coreaudio.hCoreAudio); + ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); #endif (void)pContext; @@ -18824,24 +18986,24 @@ ma_result ma_context_init__coreaudio(const ma_context_config* pConfig, ma_contex #endif #if !defined(MA_NO_RUNTIME_LINKING) && !defined(MA_APPLE_MOBILE) - pContext->coreaudio.hCoreFoundation = ma_dlopen("CoreFoundation.framework/CoreFoundation"); + pContext->coreaudio.hCoreFoundation = ma_dlopen(pContext, "CoreFoundation.framework/CoreFoundation"); if (pContext->coreaudio.hCoreFoundation == NULL) { return MA_API_NOT_FOUND; } - pContext->coreaudio.CFStringGetCString = ma_dlsym(pContext->coreaudio.hCoreFoundation, "CFStringGetCString"); + pContext->coreaudio.CFStringGetCString = ma_dlsym(pContext, pContext->coreaudio.hCoreFoundation, "CFStringGetCString"); - pContext->coreaudio.hCoreAudio = ma_dlopen("CoreAudio.framework/CoreAudio"); + pContext->coreaudio.hCoreAudio = ma_dlopen(pContext, "CoreAudio.framework/CoreAudio"); if (pContext->coreaudio.hCoreAudio == NULL) { - ma_dlclose(pContext->coreaudio.hCoreFoundation); + ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); return MA_API_NOT_FOUND; } - pContext->coreaudio.AudioObjectGetPropertyData = ma_dlsym(pContext->coreaudio.hCoreAudio, "AudioObjectGetPropertyData"); - pContext->coreaudio.AudioObjectGetPropertyDataSize = ma_dlsym(pContext->coreaudio.hCoreAudio, "AudioObjectGetPropertyDataSize"); - pContext->coreaudio.AudioObjectSetPropertyData = ma_dlsym(pContext->coreaudio.hCoreAudio, "AudioObjectSetPropertyData"); - pContext->coreaudio.AudioObjectAddPropertyListener = ma_dlsym(pContext->coreaudio.hCoreAudio, "AudioObjectAddPropertyListener"); + pContext->coreaudio.AudioObjectGetPropertyData = ma_dlsym(pContext, pContext->coreaudio.hCoreAudio, "AudioObjectGetPropertyData"); + pContext->coreaudio.AudioObjectGetPropertyDataSize = ma_dlsym(pContext, pContext->coreaudio.hCoreAudio, "AudioObjectGetPropertyDataSize"); + pContext->coreaudio.AudioObjectSetPropertyData = ma_dlsym(pContext, pContext->coreaudio.hCoreAudio, "AudioObjectSetPropertyData"); + pContext->coreaudio.AudioObjectAddPropertyListener = ma_dlsym(pContext, pContext->coreaudio.hCoreAudio, "AudioObjectAddPropertyListener"); /* It looks like Apple has moved some APIs from AudioUnit into AudioToolbox on more recent versions of macOS. They are still @@ -18849,35 +19011,35 @@ ma_result ma_context_init__coreaudio(const ma_context_config* pConfig, ma_contex The way it'll work is that it'll first try AudioUnit, and if the required symbols are not present there we'll fall back to AudioToolbox. */ - pContext->coreaudio.hAudioUnit = ma_dlopen("AudioUnit.framework/AudioUnit"); + pContext->coreaudio.hAudioUnit = ma_dlopen(pContext, "AudioUnit.framework/AudioUnit"); if (pContext->coreaudio.hAudioUnit == NULL) { - ma_dlclose(pContext->coreaudio.hCoreAudio); - ma_dlclose(pContext->coreaudio.hCoreFoundation); + ma_dlclose(pContext, pContext->coreaudio.hCoreAudio); + ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); return MA_API_NOT_FOUND; } - if (ma_dlsym(pContext->coreaudio.hAudioUnit, "AudioComponentFindNext") == NULL) { + if (ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioComponentFindNext") == NULL) { /* Couldn't find the required symbols in AudioUnit, so fall back to AudioToolbox. */ - ma_dlclose(pContext->coreaudio.hAudioUnit); - pContext->coreaudio.hAudioUnit = ma_dlopen("AudioToolbox.framework/AudioToolbox"); + ma_dlclose(pContext, pContext->coreaudio.hAudioUnit); + pContext->coreaudio.hAudioUnit = ma_dlopen(pContext, "AudioToolbox.framework/AudioToolbox"); if (pContext->coreaudio.hAudioUnit == NULL) { - ma_dlclose(pContext->coreaudio.hCoreAudio); - ma_dlclose(pContext->coreaudio.hCoreFoundation); + ma_dlclose(pContext, pContext->coreaudio.hCoreAudio); + ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); return MA_API_NOT_FOUND; } } - pContext->coreaudio.AudioComponentFindNext = ma_dlsym(pContext->coreaudio.hAudioUnit, "AudioComponentFindNext"); - pContext->coreaudio.AudioComponentInstanceDispose = ma_dlsym(pContext->coreaudio.hAudioUnit, "AudioComponentInstanceDispose"); - pContext->coreaudio.AudioComponentInstanceNew = ma_dlsym(pContext->coreaudio.hAudioUnit, "AudioComponentInstanceNew"); - pContext->coreaudio.AudioOutputUnitStart = ma_dlsym(pContext->coreaudio.hAudioUnit, "AudioOutputUnitStart"); - pContext->coreaudio.AudioOutputUnitStop = ma_dlsym(pContext->coreaudio.hAudioUnit, "AudioOutputUnitStop"); - pContext->coreaudio.AudioUnitAddPropertyListener = ma_dlsym(pContext->coreaudio.hAudioUnit, "AudioUnitAddPropertyListener"); - pContext->coreaudio.AudioUnitGetPropertyInfo = ma_dlsym(pContext->coreaudio.hAudioUnit, "AudioUnitGetPropertyInfo"); - pContext->coreaudio.AudioUnitGetProperty = ma_dlsym(pContext->coreaudio.hAudioUnit, "AudioUnitGetProperty"); - pContext->coreaudio.AudioUnitSetProperty = ma_dlsym(pContext->coreaudio.hAudioUnit, "AudioUnitSetProperty"); - pContext->coreaudio.AudioUnitInitialize = ma_dlsym(pContext->coreaudio.hAudioUnit, "AudioUnitInitialize"); - pContext->coreaudio.AudioUnitRender = ma_dlsym(pContext->coreaudio.hAudioUnit, "AudioUnitRender"); + pContext->coreaudio.AudioComponentFindNext = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioComponentFindNext"); + pContext->coreaudio.AudioComponentInstanceDispose = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioComponentInstanceDispose"); + pContext->coreaudio.AudioComponentInstanceNew = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioComponentInstanceNew"); + pContext->coreaudio.AudioOutputUnitStart = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioOutputUnitStart"); + pContext->coreaudio.AudioOutputUnitStop = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioOutputUnitStop"); + pContext->coreaudio.AudioUnitAddPropertyListener = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitAddPropertyListener"); + pContext->coreaudio.AudioUnitGetPropertyInfo = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitGetPropertyInfo"); + pContext->coreaudio.AudioUnitGetProperty = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitGetProperty"); + pContext->coreaudio.AudioUnitSetProperty = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitSetProperty"); + pContext->coreaudio.AudioUnitInitialize = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitInitialize"); + pContext->coreaudio.AudioUnitRender = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitRender"); #else pContext->coreaudio.CFStringGetCString = (ma_proc)CFStringGetCString; @@ -18928,9 +19090,9 @@ ma_result ma_context_init__coreaudio(const ma_context_config* pConfig, ma_contex pContext->coreaudio.component = ((ma_AudioComponentFindNext_proc)pContext->coreaudio.AudioComponentFindNext)(NULL, &desc); if (pContext->coreaudio.component == NULL) { #if !defined(MA_NO_RUNTIME_LINKING) && !defined(MA_APPLE_MOBILE) - ma_dlclose(pContext->coreaudio.hAudioUnit); - ma_dlclose(pContext->coreaudio.hCoreAudio); - ma_dlclose(pContext->coreaudio.hCoreFoundation); + ma_dlclose(pContext, pContext->coreaudio.hAudioUnit); + ma_dlclose(pContext, pContext->coreaudio.hCoreAudio); + ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); #endif return MA_FAILED_TO_INIT_BACKEND; } @@ -19734,7 +19896,7 @@ ma_result ma_context_init__sndio(const ma_context_config* pConfig, ma_context* p size_t i; for (i = 0; i < ma_countof(libsndioNames); ++i) { - pContext->sndio.sndioSO = ma_dlopen(libsndioNames[i]); + pContext->sndio.sndioSO = ma_dlopen(pContext, libsndioNames[i]); if (pContext->sndio.sndioSO != NULL) { break; } @@ -19744,16 +19906,16 @@ ma_result ma_context_init__sndio(const ma_context_config* pConfig, ma_context* p return MA_NO_BACKEND; } - pContext->sndio.sio_open = (ma_proc)ma_dlsym(pContext->sndio.sndioSO, "sio_open"); - pContext->sndio.sio_close = (ma_proc)ma_dlsym(pContext->sndio.sndioSO, "sio_close"); - pContext->sndio.sio_setpar = (ma_proc)ma_dlsym(pContext->sndio.sndioSO, "sio_setpar"); - pContext->sndio.sio_getpar = (ma_proc)ma_dlsym(pContext->sndio.sndioSO, "sio_getpar"); - pContext->sndio.sio_getcap = (ma_proc)ma_dlsym(pContext->sndio.sndioSO, "sio_getcap"); - pContext->sndio.sio_write = (ma_proc)ma_dlsym(pContext->sndio.sndioSO, "sio_write"); - pContext->sndio.sio_read = (ma_proc)ma_dlsym(pContext->sndio.sndioSO, "sio_read"); - pContext->sndio.sio_start = (ma_proc)ma_dlsym(pContext->sndio.sndioSO, "sio_start"); - pContext->sndio.sio_stop = (ma_proc)ma_dlsym(pContext->sndio.sndioSO, "sio_stop"); - pContext->sndio.sio_initpar = (ma_proc)ma_dlsym(pContext->sndio.sndioSO, "sio_initpar"); + pContext->sndio.sio_open = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_open"); + pContext->sndio.sio_close = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_close"); + pContext->sndio.sio_setpar = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_setpar"); + pContext->sndio.sio_getpar = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_getpar"); + pContext->sndio.sio_getcap = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_getcap"); + pContext->sndio.sio_write = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_write"); + pContext->sndio.sio_read = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_read"); + pContext->sndio.sio_start = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_start"); + pContext->sndio.sio_stop = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_stop"); + pContext->sndio.sio_initpar = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_initpar"); #else pContext->sndio.sio_open = sio_open; pContext->sndio.sio_close = sio_close; @@ -21625,7 +21787,7 @@ ma_result ma_context_uninit__aaudio(ma_context* pContext) ma_assert(pContext != NULL); ma_assert(pContext->backend == ma_backend_aaudio); - ma_dlclose(pContext->aaudio.hAAudio); + ma_dlclose(pContext, pContext->aaudio.hAAudio); pContext->aaudio.hAAudio = NULL; return MA_SUCCESS; @@ -21639,7 +21801,7 @@ ma_result ma_context_init__aaudio(const ma_context_config* pConfig, ma_context* size_t i; for (i = 0; i < ma_countof(libNames); ++i) { - pContext->aaudio.hAAudio = ma_dlopen(libNames[i]); + pContext->aaudio.hAAudio = ma_dlopen(pContext, libNames[i]); if (pContext->aaudio.hAAudio != NULL) { break; } @@ -21649,30 +21811,30 @@ ma_result ma_context_init__aaudio(const ma_context_config* pConfig, ma_context* return MA_FAILED_TO_INIT_BACKEND; } - pContext->aaudio.AAudio_createStreamBuilder = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudio_createStreamBuilder"); - pContext->aaudio.AAudioStreamBuilder_delete = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStreamBuilder_delete"); - pContext->aaudio.AAudioStreamBuilder_setDeviceId = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStreamBuilder_setDeviceId"); - pContext->aaudio.AAudioStreamBuilder_setDirection = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStreamBuilder_setDirection"); - pContext->aaudio.AAudioStreamBuilder_setSharingMode = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStreamBuilder_setSharingMode"); - pContext->aaudio.AAudioStreamBuilder_setFormat = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStreamBuilder_setFormat"); - pContext->aaudio.AAudioStreamBuilder_setChannelCount = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStreamBuilder_setChannelCount"); - pContext->aaudio.AAudioStreamBuilder_setSampleRate = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStreamBuilder_setSampleRate"); - pContext->aaudio.AAudioStreamBuilder_setBufferCapacityInFrames = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStreamBuilder_setBufferCapacityInFrames"); - pContext->aaudio.AAudioStreamBuilder_setFramesPerDataCallback = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStreamBuilder_setFramesPerDataCallback"); - pContext->aaudio.AAudioStreamBuilder_setDataCallback = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStreamBuilder_setDataCallback"); - pContext->aaudio.AAudioStreamBuilder_setPerformanceMode = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStreamBuilder_setPerformanceMode"); - pContext->aaudio.AAudioStreamBuilder_openStream = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStreamBuilder_openStream"); - pContext->aaudio.AAudioStream_close = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStream_close"); - pContext->aaudio.AAudioStream_getState = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStream_getState"); - pContext->aaudio.AAudioStream_waitForStateChange = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStream_waitForStateChange"); - pContext->aaudio.AAudioStream_getFormat = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStream_getFormat"); - pContext->aaudio.AAudioStream_getChannelCount = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStream_getChannelCount"); - pContext->aaudio.AAudioStream_getSampleRate = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStream_getSampleRate"); - pContext->aaudio.AAudioStream_getBufferCapacityInFrames = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStream_getBufferCapacityInFrames"); - pContext->aaudio.AAudioStream_getFramesPerDataCallback = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStream_getFramesPerDataCallback"); - pContext->aaudio.AAudioStream_getFramesPerBurst = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStream_getFramesPerBurst"); - pContext->aaudio.AAudioStream_requestStart = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStream_requestStart"); - pContext->aaudio.AAudioStream_requestStop = (ma_proc)ma_dlsym(pContext->aaudio.hAAudio, "AAudioStream_requestStop"); + pContext->aaudio.AAudio_createStreamBuilder = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudio_createStreamBuilder"); + pContext->aaudio.AAudioStreamBuilder_delete = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_delete"); + pContext->aaudio.AAudioStreamBuilder_setDeviceId = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setDeviceId"); + pContext->aaudio.AAudioStreamBuilder_setDirection = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setDirection"); + pContext->aaudio.AAudioStreamBuilder_setSharingMode = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setSharingMode"); + pContext->aaudio.AAudioStreamBuilder_setFormat = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setFormat"); + pContext->aaudio.AAudioStreamBuilder_setChannelCount = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setChannelCount"); + pContext->aaudio.AAudioStreamBuilder_setSampleRate = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setSampleRate"); + pContext->aaudio.AAudioStreamBuilder_setBufferCapacityInFrames = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setBufferCapacityInFrames"); + pContext->aaudio.AAudioStreamBuilder_setFramesPerDataCallback = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setFramesPerDataCallback"); + pContext->aaudio.AAudioStreamBuilder_setDataCallback = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setDataCallback"); + pContext->aaudio.AAudioStreamBuilder_setPerformanceMode = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setPerformanceMode"); + pContext->aaudio.AAudioStreamBuilder_openStream = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_openStream"); + pContext->aaudio.AAudioStream_close = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_close"); + pContext->aaudio.AAudioStream_getState = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getState"); + pContext->aaudio.AAudioStream_waitForStateChange = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_waitForStateChange"); + pContext->aaudio.AAudioStream_getFormat = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getFormat"); + pContext->aaudio.AAudioStream_getChannelCount = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getChannelCount"); + pContext->aaudio.AAudioStream_getSampleRate = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getSampleRate"); + pContext->aaudio.AAudioStream_getBufferCapacityInFrames = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getBufferCapacityInFrames"); + pContext->aaudio.AAudioStream_getFramesPerDataCallback = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getFramesPerDataCallback"); + pContext->aaudio.AAudioStream_getFramesPerBurst = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getFramesPerBurst"); + pContext->aaudio.AAudioStream_requestStart = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_requestStart"); + pContext->aaudio.AAudioStream_requestStop = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_requestStop"); pContext->isBackendAsynchronous = MA_TRUE; @@ -22522,7 +22684,7 @@ ma_result ma_device_start__opensl(ma_device* pDevice) periodSizeInBytes = (pDevice->capture.internalBufferSizeInFrames / pDevice->capture.internalPeriods) * ma_get_bytes_per_frame(pDevice->capture.internalFormat, pDevice->capture.internalChannels); for (iPeriod = 0; iPeriod < pDevice->capture.internalPeriods; ++iPeriod) { - resultSL = MA_OPENSL_BUFFERQUEUE(pDevice->opensl.pBufferQueuePlayback)->Enqueue((SLAndroidSimpleBufferQueueItf)pDevice->opensl.pBufferQueueCapture, pDevice->opensl.pBufferCapture + (periodSizeInBytes * iPeriod), periodSizeInBytes); + resultSL = MA_OPENSL_BUFFERQUEUE(pDevice->opensl.pBufferQueueCapture)->Enqueue((SLAndroidSimpleBufferQueueItf)pDevice->opensl.pBufferQueueCapture, pDevice->opensl.pBufferCapture + (periodSizeInBytes * iPeriod), periodSizeInBytes); if (resultSL != SL_RESULT_SUCCESS) { MA_OPENSL_RECORD(pDevice->opensl.pAudioRecorder)->SetRecordState((SLRecordItf)pDevice->opensl.pAudioRecorder, SL_RECORDSTATE_STOPPED); return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[OpenSL] Failed to enqueue buffer for capture device.", MA_FAILED_TO_START_BACKEND_DEVICE); @@ -23594,9 +23756,9 @@ ma_bool32 ma_device__is_initialized(ma_device* pDevice) ma_result ma_context_uninit_backend_apis__win32(ma_context* pContext) { ma_CoUninitialize(pContext); - ma_dlclose(pContext->win32.hUser32DLL); - ma_dlclose(pContext->win32.hOle32DLL); - ma_dlclose(pContext->win32.hAdvapi32DLL); + ma_dlclose(pContext, pContext->win32.hUser32DLL); + ma_dlclose(pContext, pContext->win32.hOle32DLL); + ma_dlclose(pContext, pContext->win32.hAdvapi32DLL); return MA_SUCCESS; } @@ -23605,38 +23767,38 @@ ma_result ma_context_init_backend_apis__win32(ma_context* pContext) { #ifdef MA_WIN32_DESKTOP /* Ole32.dll */ - pContext->win32.hOle32DLL = ma_dlopen("ole32.dll"); + pContext->win32.hOle32DLL = ma_dlopen(pContext, "ole32.dll"); if (pContext->win32.hOle32DLL == NULL) { return MA_FAILED_TO_INIT_BACKEND; } - pContext->win32.CoInitializeEx = (ma_proc)ma_dlsym(pContext->win32.hOle32DLL, "CoInitializeEx"); - pContext->win32.CoUninitialize = (ma_proc)ma_dlsym(pContext->win32.hOle32DLL, "CoUninitialize"); - pContext->win32.CoCreateInstance = (ma_proc)ma_dlsym(pContext->win32.hOle32DLL, "CoCreateInstance"); - pContext->win32.CoTaskMemFree = (ma_proc)ma_dlsym(pContext->win32.hOle32DLL, "CoTaskMemFree"); - pContext->win32.PropVariantClear = (ma_proc)ma_dlsym(pContext->win32.hOle32DLL, "PropVariantClear"); - pContext->win32.StringFromGUID2 = (ma_proc)ma_dlsym(pContext->win32.hOle32DLL, "StringFromGUID2"); + pContext->win32.CoInitializeEx = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "CoInitializeEx"); + pContext->win32.CoUninitialize = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "CoUninitialize"); + pContext->win32.CoCreateInstance = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "CoCreateInstance"); + pContext->win32.CoTaskMemFree = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "CoTaskMemFree"); + pContext->win32.PropVariantClear = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "PropVariantClear"); + pContext->win32.StringFromGUID2 = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "StringFromGUID2"); /* User32.dll */ - pContext->win32.hUser32DLL = ma_dlopen("user32.dll"); + pContext->win32.hUser32DLL = ma_dlopen(pContext, "user32.dll"); if (pContext->win32.hUser32DLL == NULL) { return MA_FAILED_TO_INIT_BACKEND; } - pContext->win32.GetForegroundWindow = (ma_proc)ma_dlsym(pContext->win32.hUser32DLL, "GetForegroundWindow"); - pContext->win32.GetDesktopWindow = (ma_proc)ma_dlsym(pContext->win32.hUser32DLL, "GetDesktopWindow"); + pContext->win32.GetForegroundWindow = (ma_proc)ma_dlsym(pContext, pContext->win32.hUser32DLL, "GetForegroundWindow"); + pContext->win32.GetDesktopWindow = (ma_proc)ma_dlsym(pContext, pContext->win32.hUser32DLL, "GetDesktopWindow"); /* Advapi32.dll */ - pContext->win32.hAdvapi32DLL = ma_dlopen("advapi32.dll"); + pContext->win32.hAdvapi32DLL = ma_dlopen(pContext, "advapi32.dll"); if (pContext->win32.hAdvapi32DLL == NULL) { return MA_FAILED_TO_INIT_BACKEND; } - pContext->win32.RegOpenKeyExA = (ma_proc)ma_dlsym(pContext->win32.hAdvapi32DLL, "RegOpenKeyExA"); - pContext->win32.RegCloseKey = (ma_proc)ma_dlsym(pContext->win32.hAdvapi32DLL, "RegCloseKey"); - pContext->win32.RegQueryValueExA = (ma_proc)ma_dlsym(pContext->win32.hAdvapi32DLL, "RegQueryValueExA"); + pContext->win32.RegOpenKeyExA = (ma_proc)ma_dlsym(pContext, pContext->win32.hAdvapi32DLL, "RegOpenKeyExA"); + pContext->win32.RegCloseKey = (ma_proc)ma_dlsym(pContext, pContext->win32.hAdvapi32DLL, "RegCloseKey"); + pContext->win32.RegQueryValueExA = (ma_proc)ma_dlsym(pContext, pContext->win32.hAdvapi32DLL, "RegQueryValueExA"); #endif ma_CoInitializeEx(pContext, NULL, MA_COINIT_VALUE); @@ -23646,7 +23808,7 @@ ma_result ma_context_init_backend_apis__win32(ma_context* pContext) ma_result ma_context_uninit_backend_apis__nix(ma_context* pContext) { #if defined(MA_USE_RUNTIME_LINKING_FOR_PTHREAD) && !defined(MA_NO_RUNTIME_LINKING) - ma_dlclose(pContext->posix.pthreadSO); + ma_dlclose(pContext, pContext->posix.pthreadSO); #else (void)pContext; #endif @@ -23666,7 +23828,7 @@ ma_result ma_context_init_backend_apis__nix(ma_context* pContext) size_t i; for (i = 0; i < sizeof(libpthreadFileNames) / sizeof(libpthreadFileNames[0]); ++i) { - pContext->posix.pthreadSO = ma_dlopen(libpthreadFileNames[i]); + pContext->posix.pthreadSO = ma_dlopen(pContext, libpthreadFileNames[i]); if (pContext->posix.pthreadSO != NULL) { break; } @@ -23676,21 +23838,21 @@ ma_result ma_context_init_backend_apis__nix(ma_context* pContext) return MA_FAILED_TO_INIT_BACKEND; } - pContext->posix.pthread_create = (ma_proc)ma_dlsym(pContext->posix.pthreadSO, "pthread_create"); - pContext->posix.pthread_join = (ma_proc)ma_dlsym(pContext->posix.pthreadSO, "pthread_join"); - pContext->posix.pthread_mutex_init = (ma_proc)ma_dlsym(pContext->posix.pthreadSO, "pthread_mutex_init"); - pContext->posix.pthread_mutex_destroy = (ma_proc)ma_dlsym(pContext->posix.pthreadSO, "pthread_mutex_destroy"); - pContext->posix.pthread_mutex_lock = (ma_proc)ma_dlsym(pContext->posix.pthreadSO, "pthread_mutex_lock"); - pContext->posix.pthread_mutex_unlock = (ma_proc)ma_dlsym(pContext->posix.pthreadSO, "pthread_mutex_unlock"); - pContext->posix.pthread_cond_init = (ma_proc)ma_dlsym(pContext->posix.pthreadSO, "pthread_cond_init"); - pContext->posix.pthread_cond_destroy = (ma_proc)ma_dlsym(pContext->posix.pthreadSO, "pthread_cond_destroy"); - pContext->posix.pthread_cond_wait = (ma_proc)ma_dlsym(pContext->posix.pthreadSO, "pthread_cond_wait"); - pContext->posix.pthread_cond_signal = (ma_proc)ma_dlsym(pContext->posix.pthreadSO, "pthread_cond_signal"); - pContext->posix.pthread_attr_init = (ma_proc)ma_dlsym(pContext->posix.pthreadSO, "pthread_attr_init"); - pContext->posix.pthread_attr_destroy = (ma_proc)ma_dlsym(pContext->posix.pthreadSO, "pthread_attr_destroy"); - pContext->posix.pthread_attr_setschedpolicy = (ma_proc)ma_dlsym(pContext->posix.pthreadSO, "pthread_attr_setschedpolicy"); - pContext->posix.pthread_attr_getschedparam = (ma_proc)ma_dlsym(pContext->posix.pthreadSO, "pthread_attr_getschedparam"); - pContext->posix.pthread_attr_setschedparam = (ma_proc)ma_dlsym(pContext->posix.pthreadSO, "pthread_attr_setschedparam"); + pContext->posix.pthread_create = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_create"); + pContext->posix.pthread_join = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_join"); + pContext->posix.pthread_mutex_init = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_mutex_init"); + pContext->posix.pthread_mutex_destroy = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_mutex_destroy"); + pContext->posix.pthread_mutex_lock = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_mutex_lock"); + pContext->posix.pthread_mutex_unlock = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_mutex_unlock"); + pContext->posix.pthread_cond_init = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_cond_init"); + pContext->posix.pthread_cond_destroy = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_cond_destroy"); + pContext->posix.pthread_cond_wait = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_cond_wait"); + pContext->posix.pthread_cond_signal = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_cond_signal"); + pContext->posix.pthread_attr_init = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_attr_init"); + pContext->posix.pthread_attr_destroy = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_attr_destroy"); + pContext->posix.pthread_attr_setschedpolicy = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_attr_setschedpolicy"); + pContext->posix.pthread_attr_getschedparam = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_attr_getschedparam"); + pContext->posix.pthread_attr_setschedparam = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_attr_setschedparam"); #else pContext->posix.pthread_create = (ma_proc)pthread_create; pContext->posix.pthread_join = (ma_proc)pthread_join; @@ -24431,13 +24593,8 @@ ma_result ma_device_start(ma_device* pDevice) return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "ma_device_start() called for an uninitialized device.", MA_DEVICE_NOT_INITIALIZED); } - /* - Starting the device doesn't do anything in synchronous mode because in that case it's started automatically with - ma_device_write() and ma_device_read(). It's best to return an error so that the application can be aware that - it's not doing it right. - */ - if (!ma_device__is_async(pDevice)) { - return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "ma_device_start() called in synchronous mode. This should only be used in asynchronous/callback mode.", MA_DEVICE_NOT_INITIALIZED); + if (ma_device__get_state(pDevice) == MA_STATE_STARTED) { + return ma_post_error(pDevice, MA_LOG_LEVEL_WARNING, "ma_device_start() called when the device is already started.", MA_INVALID_OPERATION); /* Already started. Returning an error to let the application know because it probably means they're doing something wrong. */ } result = MA_ERROR; @@ -24486,14 +24643,8 @@ ma_result ma_device_stop(ma_device* pDevice) return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "ma_device_stop() called for an uninitialized device.", MA_DEVICE_NOT_INITIALIZED); } - /* - Stopping is slightly different for synchronous mode. In this case it just tells the driver to stop the internal processing of the device. Also, - stopping in synchronous mode does not require state checking. - */ - if (!ma_device__is_async(pDevice)) { - if (pDevice->pContext->onDeviceStop) { - return pDevice->pContext->onDeviceStop(pDevice); - } + if (ma_device__get_state(pDevice) == MA_STATE_STOPPED) { + return ma_post_error(pDevice, MA_LOG_LEVEL_WARNING, "ma_device_stop() called when the device is already stopped.", MA_INVALID_OPERATION); /* Already stopped. Returning an error to let the application know because it probably means they're doing something wrong. */ } result = MA_ERROR; @@ -29347,8 +29498,8 @@ static MA_INLINE float32x4_t ma_src_sinc__interpolation_factor__neon(const ma_sr { float32x4_t xabs; int32x4_t ixabs; - float32x4_t a; - float32x4_t r; + float32x4_t a + float32x4_t r int* ixabsv; float lo[4]; float hi[4]; @@ -30470,7 +30621,7 @@ ma_uint64 ma_convert_frames_ex(void* pOut, ma_format formatOut, ma_uint32 channe */ totalFramesRead = ma_pcm_converter_read(&converter, pOut, frameCountOut); if (totalFramesRead < frameCountOut) { - ma_uint32 bpf = ma_get_bytes_per_frame(formatIn, channelsIn); + ma_uint32 bpfOut = ma_get_bytes_per_frame(formatOut, channelsOut); data.isFeedingZeros = MA_TRUE; data.totalFrameCount = ((ma_uint64)0xFFFFFFFF << 32) | 0xFFFFFFFF; /* C89 does not support 64-bit constants so need to instead construct it like this. Annoying... */ /*data.totalFrameCount = 0xFFFFFFFFFFFFFFFF;*/ @@ -30483,7 +30634,7 @@ ma_uint64 ma_convert_frames_ex(void* pOut, ma_format formatOut, ma_uint32 channe framesToRead = (frameCountOut - totalFramesRead); ma_assert(framesToRead > 0); - framesJustRead = ma_pcm_converter_read(&converter, ma_offset_ptr(pOut, totalFramesRead * bpf), framesToRead); + framesJustRead = ma_pcm_converter_read(&converter, ma_offset_ptr(pOut, totalFramesRead * bpfOut), framesToRead); totalFramesRead += framesJustRead; if (framesJustRead < framesToRead) { @@ -30493,7 +30644,7 @@ ma_uint64 ma_convert_frames_ex(void* pOut, ma_format formatOut, ma_uint32 channe /* At this point we should have output every sample, but just to be super duper sure, just fill the rest with zeros. */ if (totalFramesRead < frameCountOut) { - ma_zero_memory_64(ma_offset_ptr(pOut, totalFramesRead * bpf), ((frameCountOut - totalFramesRead) * bpf)); + ma_zero_memory_64(ma_offset_ptr(pOut, totalFramesRead * bpfOut), ((frameCountOut - totalFramesRead) * bpfOut)); totalFramesRead = frameCountOut; } } @@ -31395,6 +31546,11 @@ ma_result ma_decoder_internal_on_uninit__wav(ma_decoder* pDecoder) return MA_SUCCESS; } +ma_uint64 ma_decoder_internal_on_get_length_in_pcm_frames__wav(ma_decoder* pDecoder) +{ + return ((drwav*)pDecoder->pInternalDecoder)->totalPCMFrameCount; +} + ma_result ma_decoder_init_wav__internal(const ma_decoder_config* pConfig, ma_decoder* pDecoder) { drwav* pWav; @@ -31412,6 +31568,7 @@ ma_result ma_decoder_init_wav__internal(const ma_decoder_config* pConfig, ma_dec /* If we get here it means we successfully initialized the WAV decoder. We can now initialize the rest of the ma_decoder. */ pDecoder->onSeekToPCMFrame = ma_decoder_internal_on_seek_to_pcm_frame__wav; pDecoder->onUninit = ma_decoder_internal_on_uninit__wav; + pDecoder->onGetLengthInPCMFrames = ma_decoder_internal_on_get_length_in_pcm_frames__wav; pDecoder->pInternalDecoder = pWav; /* Try to be as optimal as possible for the internal format. If miniaudio does not support a format we will fall back to f32. */ @@ -31529,6 +31686,11 @@ ma_result ma_decoder_internal_on_uninit__flac(ma_decoder* pDecoder) return MA_SUCCESS; } +ma_uint64 ma_decoder_internal_on_get_length_in_pcm_frames__flac(ma_decoder* pDecoder) +{ + return ((drflac*)pDecoder->pInternalDecoder)->totalPCMFrameCount; +} + ma_result ma_decoder_init_flac__internal(const ma_decoder_config* pConfig, ma_decoder* pDecoder) { drflac* pFlac; @@ -31546,6 +31708,7 @@ ma_result ma_decoder_init_flac__internal(const ma_decoder_config* pConfig, ma_de /* If we get here it means we successfully initialized the FLAC decoder. We can now initialize the rest of the ma_decoder. */ pDecoder->onSeekToPCMFrame = ma_decoder_internal_on_seek_to_pcm_frame__flac; pDecoder->onUninit = ma_decoder_internal_on_uninit__flac; + pDecoder->onGetLengthInPCMFrames = ma_decoder_internal_on_get_length_in_pcm_frames__flac; pDecoder->pInternalDecoder = pFlac; /* @@ -31754,6 +31917,13 @@ ma_uint32 ma_decoder_internal_on_read_pcm_frames__vorbis(ma_pcm_converter* pDSP, return ma_vorbis_decoder_read_pcm_frames(pVorbis, pDecoder, pSamplesOut, frameCount); } +ma_uint64 ma_decoder_internal_on_get_length_in_pcm_frames__vorbis(ma_decoder* pDecoder) +{ + /* No good way to do this with Vorbis. */ + (void)pDecoder; + return 0; +} + ma_result ma_decoder_init_vorbis__internal(const ma_decoder_config* pConfig, ma_decoder* pDecoder) { ma_result result; @@ -31847,6 +32017,7 @@ ma_result ma_decoder_init_vorbis__internal(const ma_decoder_config* pConfig, ma_ pDecoder->onSeekToPCMFrame = ma_decoder_internal_on_seek_to_pcm_frame__vorbis; pDecoder->onUninit = ma_decoder_internal_on_uninit__vorbis; + pDecoder->onGetLengthInPCMFrames = ma_decoder_internal_on_get_length_in_pcm_frames__vorbis; pDecoder->pInternalDecoder = pVorbis; /* The internal format is always f32. */ @@ -31927,6 +32098,11 @@ ma_result ma_decoder_internal_on_uninit__mp3(ma_decoder* pDecoder) return MA_SUCCESS; } +ma_uint64 ma_decoder_internal_on_get_length_in_pcm_frames__mp3(ma_decoder* pDecoder) +{ + return drmp3_get_pcm_frame_count((drmp3*)pDecoder->pInternalDecoder); +} + ma_result ma_decoder_init_mp3__internal(const ma_decoder_config* pConfig, ma_decoder* pDecoder) { drmp3* pMP3; @@ -31962,6 +32138,7 @@ ma_result ma_decoder_init_mp3__internal(const ma_decoder_config* pConfig, ma_dec /* If we get here it means we successfully initialized the MP3 decoder. We can now initialize the rest of the ma_decoder. */ pDecoder->onSeekToPCMFrame = ma_decoder_internal_on_seek_to_pcm_frame__mp3; pDecoder->onUninit = ma_decoder_internal_on_uninit__mp3; + pDecoder->onGetLengthInPCMFrames = ma_decoder_internal_on_get_length_in_pcm_frames__mp3; pDecoder->pInternalDecoder = pMP3; /* Internal format. */ @@ -32047,6 +32224,12 @@ ma_result ma_decoder_internal_on_uninit__raw(ma_decoder* pDecoder) return MA_SUCCESS; } +ma_uint64 ma_decoder_internal_on_get_length_in_pcm_frames__raw(ma_decoder* pDecoder) +{ + (void)pDecoder; + return 0; +} + ma_result ma_decoder_init_raw__internal(const ma_decoder_config* pConfigIn, const ma_decoder_config* pConfigOut, ma_decoder* pDecoder) { ma_result result; @@ -32057,6 +32240,7 @@ ma_result ma_decoder_init_raw__internal(const ma_decoder_config* pConfigIn, cons pDecoder->onSeekToPCMFrame = ma_decoder_internal_on_seek_to_pcm_frame__raw; pDecoder->onUninit = ma_decoder_internal_on_uninit__raw; + pDecoder->onGetLengthInPCMFrames = ma_decoder_internal_on_get_length_in_pcm_frames__raw; /* Internal format. */ pDecoder->internalFormat = pConfigIn->format; @@ -32431,6 +32615,7 @@ ma_result ma_decoder_init_memory_raw(const void* pData, size_t dataSize, const m #include #if !defined(_MSC_VER) && !defined(__DMC__) #include /* For strcasecmp(). */ +#include /* For wcsrtombs() */ #endif const char* ma_path_file_name(const char* path) @@ -32460,6 +32645,34 @@ const char* ma_path_file_name(const char* path) return fileName; } +const wchar_t* ma_path_file_name_w(const wchar_t* path) +{ + const wchar_t* fileName; + + if (path == NULL) { + return NULL; + } + + fileName = path; + + /* We just loop through the path until we find the last slash. */ + while (path[0] != '\0') { + if (path[0] == '/' || path[0] == '\\') { + fileName = path; + } + + path += 1; + } + + /* At this point the file name is sitting on a slash, so just move forward. */ + while (fileName[0] != '\0' && (fileName[0] == '/' || fileName[0] == '\\')) { + fileName += 1; + } + + return fileName; +} + + const char* ma_path_extension(const char* path) { const char* extension; @@ -32485,6 +32698,32 @@ const char* ma_path_extension(const char* path) return (lastOccurance != NULL) ? lastOccurance : extension; } +const wchar_t* ma_path_extension_w(const wchar_t* path) +{ + const wchar_t* extension; + const wchar_t* lastOccurance; + + if (path == NULL) { + path = L""; + } + + extension = ma_path_file_name_w(path); + lastOccurance = NULL; + + /* Just find the last '.' and return. */ + while (extension[0] != '\0') { + if (extension[0] == '.') { + extension += 1; + lastOccurance = extension; + } + + extension += 1; + } + + return (lastOccurance != NULL) ? lastOccurance : extension; +} + + ma_bool32 ma_path_extension_equal(const char* path, const char* extension) { const char* ext1; @@ -32504,6 +32743,49 @@ ma_bool32 ma_path_extension_equal(const char* path, const char* extension) #endif } +ma_bool32 ma_path_extension_equal_w(const wchar_t* path, const wchar_t* extension) +{ + const wchar_t* ext1; + const wchar_t* ext2; + + if (path == NULL || extension == NULL) { + return MA_FALSE; + } + + ext1 = extension; + ext2 = ma_path_extension_w(path); + +#if defined(_MSC_VER) || defined(__DMC__) + return _wcsicmp(ext1, ext2) == 0; +#else + /* + I'm not aware of a wide character version of strcasecmp(). I'm therefore converting the extensions to multibyte strings and comparing those. This + isn't the most efficient way to do it, but it should work OK. + */ + { + char ext1MB[4096]; + char ext2MB[4096]; + const wchar_t* pext1 = ext1; + const wchar_t* pext2 = ext2; + mbstate_t mbs1; + mbstate_t mbs2; + + ma_zero_object(&mbs1); + ma_zero_object(&mbs2); + + if (wcsrtombs(ext1MB, &pext1, sizeof(ext1MB), &mbs1) == (size_t)-1) { + return MA_FALSE; + } + if (wcsrtombs(ext2MB, &pext2, sizeof(ext2MB), &mbs2) == (size_t)-1) { + return MA_FALSE; + } + + return strcasecmp(ext1MB, ext2MB) == 0; + } +#endif +} + + size_t ma_decoder__on_read_stdio(ma_decoder* pDecoder, void* pBufferOut, size_t bytesToRead) { return fread(pBufferOut, 1, bytesToRead, (FILE*)pDecoder->pUserData); @@ -32546,6 +32828,77 @@ ma_result ma_decoder__preinit_file(const char* pFilePath, const ma_decoder_confi return MA_SUCCESS; } +ma_result ma_decoder__preinit_file_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + FILE* pFile; + + if (pDecoder == NULL) { + return MA_INVALID_ARGS; + } + + ma_zero_object(pDecoder); + + if (pFilePath == NULL || pFilePath[0] == '\0') { + return MA_INVALID_ARGS; + } + +#if defined(_WIN32) + /* Use _wfopen() on Windows. */ + #if defined(_MSC_VER) && _MSC_VER >= 1400 + if (_wfopen_s(&pFile, pFilePath, L"rb") != 0) { + return MA_ERROR; + } + #else + pFile = _wfopen(pFilePath, L"rb"); + if (pFile == NULL) { + return MA_ERROR; + } + #endif +#else + /* + Use fopen() on anything other than Windows. Requires a conversion. This is annoying because fopen() is locale specific. The only real way I can + think of to do this is with wcsrtombs(). Note that wcstombs() is apparently not thread-safe because it uses a static global mbstate_t object for + maintaining state. I've checked this with -std=c89 and it works, but if somebody get's a compiler error I'll look into improving compatibility. + */ + { + mbstate_t mbs; + size_t lenMB; + const wchar_t* pFilePathTemp = pFilePath; + char* pFilePathMB = NULL; + + /* Get the length first. */ + ma_zero_object(&mbs); + lenMB = wcsrtombs(NULL, &pFilePathTemp, 0, &mbs); + if (lenMB == (size_t)-1) { + return MA_ERROR; + } + + pFilePathMB = (char*)MA_MALLOC(lenMB + 1); + if (pFilePathMB == NULL) { + return MA_OUT_OF_MEMORY; + } + + pFilePathTemp = pFilePath; + ma_zero_object(&mbs); + wcsrtombs(pFilePathMB, &pFilePathTemp, lenMB + 1, &mbs); + + pFile = fopen(pFilePathMB, "rb"); + + MA_FREE(pFilePathMB); + } + + if (pFile == NULL) { + return MA_ERROR; + } +#endif + + /* We need to manually set the user data so the calls to ma_decoder__on_seek_stdio() succeed. */ + pDecoder->pUserData = pFile; + + (void)pConfig; + return MA_SUCCESS; +} + ma_result ma_decoder_init_file(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) { ma_result result = ma_decoder__preinit_file(pFilePath, pConfig, pDecoder); /* This sets pDecoder->pUserData to a FILE*. */ @@ -32626,6 +32979,88 @@ ma_result ma_decoder_init_file_mp3(const char* pFilePath, const ma_decoder_confi return ma_decoder_init_mp3(ma_decoder__on_read_stdio, ma_decoder__on_seek_stdio, pDecoder->pUserData, pConfig, pDecoder); } + + +ma_result ma_decoder_init_file_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result = ma_decoder__preinit_file_w(pFilePath, pConfig, pDecoder); /* This sets pDecoder->pUserData to a FILE*. */ + if (result != MA_SUCCESS) { + return result; + } + + /* WAV */ + if (ma_path_extension_equal_w(pFilePath, L"wav")) { + result = ma_decoder_init_wav(ma_decoder__on_read_stdio, ma_decoder__on_seek_stdio, pDecoder->pUserData, pConfig, pDecoder); + if (result == MA_SUCCESS) { + return MA_SUCCESS; + } + + ma_decoder__on_seek_stdio(pDecoder, 0, ma_seek_origin_start); + } + + /* FLAC */ + if (ma_path_extension_equal_w(pFilePath, L"flac")) { + result = ma_decoder_init_flac(ma_decoder__on_read_stdio, ma_decoder__on_seek_stdio, pDecoder->pUserData, pConfig, pDecoder); + if (result == MA_SUCCESS) { + return MA_SUCCESS; + } + + ma_decoder__on_seek_stdio(pDecoder, 0, ma_seek_origin_start); + } + + /* MP3 */ + if (ma_path_extension_equal_w(pFilePath, L"mp3")) { + result = ma_decoder_init_mp3(ma_decoder__on_read_stdio, ma_decoder__on_seek_stdio, pDecoder->pUserData, pConfig, pDecoder); + if (result == MA_SUCCESS) { + return MA_SUCCESS; + } + + ma_decoder__on_seek_stdio(pDecoder, 0, ma_seek_origin_start); + } + + /* Trial and error. */ + return ma_decoder_init(ma_decoder__on_read_stdio, ma_decoder__on_seek_stdio, pDecoder->pUserData, pConfig, pDecoder); +} + +ma_result ma_decoder_init_file_wav_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result = ma_decoder__preinit_file_w(pFilePath, pConfig, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder_init_wav(ma_decoder__on_read_stdio, ma_decoder__on_seek_stdio, pDecoder->pUserData, pConfig, pDecoder); +} + +ma_result ma_decoder_init_file_flac_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result = ma_decoder__preinit_file_w(pFilePath, pConfig, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder_init_flac(ma_decoder__on_read_stdio, ma_decoder__on_seek_stdio, pDecoder->pUserData, pConfig, pDecoder); +} + +ma_result ma_decoder_init_file_vorbis_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result = ma_decoder__preinit_file_w(pFilePath, pConfig, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder_init_vorbis(ma_decoder__on_read_stdio, ma_decoder__on_seek_stdio, pDecoder->pUserData, pConfig, pDecoder); +} + +ma_result ma_decoder_init_file_mp3_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result = ma_decoder__preinit_file_w(pFilePath, pConfig, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + return ma_decoder_init_mp3(ma_decoder__on_read_stdio, ma_decoder__on_seek_stdio, pDecoder->pUserData, pConfig, pDecoder); +} #endif ma_result ma_decoder_uninit(ma_decoder* pDecoder) @@ -32648,6 +33083,19 @@ ma_result ma_decoder_uninit(ma_decoder* pDecoder) return MA_SUCCESS; } +ma_uint64 ma_decoder_get_length_in_pcm_frames(ma_decoder* pDecoder) +{ + if (pDecoder == NULL) { + return 0; + } + + if (pDecoder->onGetLengthInPCMFrames) { + return pDecoder->onGetLengthInPCMFrames(pDecoder); + } + + return 0; +} + ma_uint64 ma_decoder_read_pcm_frames(ma_decoder* pDecoder, void* pFramesOut, ma_uint64 frameCount) { if (pDecoder == NULL) { @@ -32913,6 +33361,21 @@ Device /* REVISION HISTORY ================ +v0.9.6 - 2019-xx-xx + - Add support for loading decoders using a wchar_t string for file paths. + - Don't trigger an assert when ma_device_start() is called on a device that is already started. This will now log a warning + and return MA_INVALID_OPERATION. The same applies for ma_device_stop(). + - Try fixing an issue with PulseAudio taking a long time to start playback. + - Fix a bug in ma_convert_frames() and ma_convert_frames_ex(). + - Fix memory leaks in the WASAPI backend. + - Fix a compilation error with Visual Studio 2010. + +v0.9.5 - 2019-05-21 + - Add logging to ma_dlopen() and ma_dlsym(). + - Add ma_decoder_get_length_in_pcm_frames(). + - Fix a bug with capture on the OpenSL|ES backend. + - Fix a bug with the ALSA backend where a device would not restart after being stopped. + v0.9.4 - 2019-05-06 - Add support for C89. With this change, miniaudio should compile clean with GCC/Clang with "-std=c89 -ansi -pedantic" and Microsoft compilers back to VC6. Other compilers should also work, but have not been tested. diff --git a/src/external/stb_image_write.h b/src/external/stb_image_write.h index a19b548ae..082eb69d5 100644 --- a/src/external/stb_image_write.h +++ b/src/external/stb_image_write.h @@ -10,11 +10,6 @@ Will probably not work correctly with strict-aliasing optimizations. - If using a modern Microsoft Compiler, non-safe versions of CRT calls may cause - compilation warnings or even errors. To avoid this, also before #including, - - #define STBI_MSC_SECURE_CRT - ABOUT: This header file is a library for writing images to C stdio or a callback. From 5f1990e0446354fcdbb9abcb852a4cb2d0175f00 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Wed, 7 Aug 2019 09:23:15 +0200 Subject: [PATCH 013/123] Fix build caused by GetImageAlphaBorder() (#931) Fix build failure introduced in 2a913b6587d60dab64c3b81019990e6872a9ac75 --- src/raylib.h | 2 +- src/textures.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 04740def8..1bf0afd5f 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1091,7 +1091,7 @@ RLAPI void UnloadTexture(Texture2D texture); RLAPI void UnloadRenderTexture(RenderTexture2D target); // Unload render texture from GPU memory (VRAM) RLAPI Color *GetImageData(Image image); // Get pixel data from image as a Color struct array RLAPI Vector4 *GetImageDataNormalized(Image image); // Get pixel data from image as Vector4 array (float normalized) -RLAPI Rectangle GetImageAlphaBorder(Image image); // Get image alpha border rectangle +RLAPI Rectangle GetImageAlphaBorder(Image image, float threshold); // Get image alpha border rectangle RLAPI int GetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes (image or texture) RLAPI Image GetTextureData(Texture2D texture); // Get pixel data from GPU texture and return an Image RLAPI Image GetScreenData(void); // Get pixel data from screen buffer and return an Image (screenshot) diff --git a/src/textures.c b/src/textures.c index a25a23ab2..56ff194ab 100644 --- a/src/textures.c +++ b/src/textures.c @@ -681,7 +681,7 @@ Vector4 *GetImageDataNormalized(Image image) } // Get image alpha border rectangle -Rectangle GetImageAlphaBorder(Image image) +Rectangle GetImageAlphaBorder(Image image, float threshold) { Color *pixels = GetImageData(image); @@ -690,11 +690,11 @@ Rectangle GetImageAlphaBorder(Image image) int yMin = 65536; int yMax = 0; - for (int y = 0; y < image->height; y++) + for (int y = 0; y < image.height; y++) { - for (int x = 0; x < image->width; x++) + for (int x = 0; x < image.width; x++) { - if (pixels[y*image->width + x].a > (unsigned char)(threshold*255.0f)) + if (pixels[y*image.width + x].a > (unsigned char)(threshold*255.0f)) { if (x < xMin) xMin = x; if (x > xMax) xMax = x; From f3555a1016ec67105d67959a55b0fd9fda29fd25 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Wed, 7 Aug 2019 09:24:56 +0200 Subject: [PATCH 014/123] Fix memleak in physics_restitution example (#932) --- examples/physac/physics_restitution.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/physac/physics_restitution.c b/examples/physac/physics_restitution.c index a7012520d..12a2a9220 100644 --- a/examples/physac/physics_restitution.c +++ b/examples/physac/physics_restitution.c @@ -120,6 +120,10 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- + DestroyPhysicsBody(circleA); + DestroyPhysicsBody(circleB); + DestroyPhysicsBody(circleC); + DestroyPhysicsBody(floor); ClosePhysics(); // Unitialize physics CloseWindow(); // Close window and OpenGL context From 2d5cc5ddbf3c0d157b67e7896f6b6efe58c65ef4 Mon Sep 17 00:00:00 2001 From: chriscamacho Date: Thu, 8 Aug 2019 08:57:21 +0100 Subject: [PATCH 015/123] fixed xmloader bug, user must free model shaders and textures as they might be shared (#933) --- src/models.c | 21 +++++++++++++-------- src/raudio.c | 2 +- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/models.c b/src/models.c index e30eb5472..df123fa7b 100644 --- a/src/models.c +++ b/src/models.c @@ -71,7 +71,7 @@ //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- -#define MAX_MESH_VBO 7 // Maximum number of vbo per mesh +#define MAX_MESH_VBO 7 // Maximum number of vbo per mesh //---------------------------------------------------------------------------------- // Types and Structures Definition @@ -703,7 +703,12 @@ Model LoadModelFromMesh(Mesh mesh) void UnloadModel(Model model) { for (int i = 0; i < model.meshCount; i++) UnloadMesh(model.meshes[i]); - for (int i = 0; i < model.materialCount; i++) UnloadMaterial(model.materials[i]); + + // as the user could be sharing shaders and textures between + // models, don't unload the material but free it's maps instead + // the user is responsible for freeing models shaders and textures + //for (int i = 0; i < model.materialCount; i++) UnloadMaterial(model.materials[i]); + for (int i = 0; i < model.materialCount; i++) RL_FREE(model.materials[i].maps); RL_FREE(model.meshes); RL_FREE(model.materials); @@ -2492,11 +2497,11 @@ bool CheckCollisionSpheres(Vector3 centerA, float radiusA, Vector3 centerB, floa // Simple way to check for collision, just checking distance between two points // Unfortunately, sqrtf() is a costly operation, so we avoid it with following solution /* - float dx = centerA.x - centerB.x; // X distance between centers - float dy = centerA.y - centerB.y; // Y distance between centers - float dz = centerA.z - centerB.z; // Z distance between centers + float dx = centerA.x - centerB.x; // X distance between centers + float dy = centerA.y - centerB.y; // Y distance between centers + float dz = centerA.z - centerB.z; // Z distance between centers - float distance = sqrtf(dx*dx + dy*dy + dz*dz); // Distance between centers + float distance = sqrtf(dx*dx + dy*dy + dz*dz); // Distance between centers if (distance <= (radiusA + radiusB)) collision = true; */ @@ -3346,7 +3351,7 @@ static Model LoadGLTF(const char *fileName) - Triangle-only meshes - Not supported node hierarchies or transforms - Only loads the diffuse texture... but not too hard to support other maps (normal, roughness/metalness...) - - Only supports unsigned short indices (no byte/unsigned int) + - Only supports unsigned short indices (no byte/unsigned int) - Only supports float for texture coordinates (no byte/unsigned short) *************************************************************************************/ @@ -3435,7 +3440,7 @@ static Model LoadGLTF(const char *fileName) if (img->uri) { - if ((strlen(img->uri) > 5) && + if ((strlen(img->uri) > 5) && (img->uri[0] == 'd') && (img->uri[1] == 'a') && (img->uri[2] == 't') && diff --git a/src/raudio.c b/src/raudio.c index bfd7ef220..40c136674 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -1250,7 +1250,7 @@ Music LoadMusicStream(const char *fileName) int result = jar_xm_create_context_from_file(&ctxXm, 48000, fileName); - if (result > 0) // XM context created successfully + if (result == 0) // XM context created successfully { music.ctxType = MUSIC_MODULE_XM; jar_xm_set_max_loop_count(ctxXm, 0); // Set infinite number of loops From 084fb31186d740c5aa7c72225e3c1ab0965b36f2 Mon Sep 17 00:00:00 2001 From: Kevin Yonan Date: Thu, 8 Aug 2019 01:00:23 -0700 Subject: [PATCH 016/123] Removing '__RemoveNode' (#935) Replaced '__RemoveNode' as it was causing invalid memory accesses with regular doubly linked list deletion algorithm. Replaced double pointer iterator in 'MemPoolAlloc' with single pointer iterator. Fixed undefined variables errors in 'MemPoolFree' for the freelist bucket. --- src/rmem.h | 56 ++++++++++++++++++++++++++---------------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/src/rmem.h b/src/rmem.h index 87ceacc23..11e69588a 100644 --- a/src/rmem.h +++ b/src/rmem.h @@ -5,7 +5,7 @@ * A quick, efficient, and minimal free list and stack-based allocator * * PURPOSE: -* - Aquicker, efficient memory allocator alternative to 'malloc' and friends. +* - A quicker, efficient memory allocator alternative to 'malloc' and friends. * - Reduce the possibilities of memory leaks for beginner developers using Raylib. * - Being able to flexibly range check memory if necessary. * @@ -168,21 +168,6 @@ static inline size_t __AlignSize(const size_t size, const size_t align) return (size + (align - 1)) & -align; } -static void __RemoveNode(MemPool *const mempool, MemNode **const node) -{ - if ((*node)->next != NULL) (*node)->next->prev = (*node)->prev; - else { - mempool->freeList.tail = (*node)->prev; - if (mempool->freeList.tail != NULL) mempool->freeList.tail->next = NULL; - } - - if ((*node)->prev != NULL) (*node)->prev->next = (*node)->next; - else { - mempool->freeList.head = (*node)->next; - if (mempool->freeList.head != NULL) mempool->freeList.head->prev = NULL; - } -} - //---------------------------------------------------------------------------------- // Module Functions Definition - Memory Pool //---------------------------------------------------------------------------------- @@ -244,6 +229,7 @@ void *MemPoolAlloc(MemPool *const mempool, const size_t size) const size_t ALLOC_SIZE = __AlignSize(size + sizeof *new_mem, sizeof(intptr_t)); const size_t BUCKET_INDEX = (ALLOC_SIZE >> MEMPOOL_BUCKET_BITS) - 1; + // If the size is small enough, let's check if our buckets has a fitting memory block. if (BUCKET_INDEX < MEMPOOL_BUCKET_SIZE && mempool->buckets[BUCKET_INDEX] != NULL && mempool->buckets[BUCKET_INDEX]->size >= ALLOC_SIZE) { new_mem = mempool->buckets[BUCKET_INDEX]; @@ -256,22 +242,28 @@ void *MemPoolAlloc(MemPool *const mempool, const size_t size) const size_t MEM_SPLIT_THRESHOLD = 16; // If the freelist is valid, let's allocate FROM the freelist then! - for (MemNode **inode = &mempool->freeList.head; *inode != NULL; inode = &(*inode)->next) + for (MemNode *inode = mempool->freeList.head; inode != NULL; inode = inode->next) { - if ((*inode)->size < ALLOC_SIZE) continue; - else if ((*inode)->size <= (ALLOC_SIZE + MEM_SPLIT_THRESHOLD)) + if (inode->size < ALLOC_SIZE) continue; + else if (inode->size <= (ALLOC_SIZE + MEM_SPLIT_THRESHOLD)) { // Close in size - reduce fragmentation by not splitting. - new_mem = *inode; - __RemoveNode(mempool, inode); + new_mem = inode; + (inode->prev != NULL)? (inode->prev->next = inode->next) : (mempool->freeList.head = inode->next); + (inode->next != NULL)? (inode->next->prev = inode->prev) : (mempool->freeList.tail = inode->prev); + + if (mempool->freeList.head != NULL) mempool->freeList.head->prev = NULL; + else mempool->freeList.tail = NULL; + + if (mempool->freeList.tail != NULL) mempool->freeList.tail->next = NULL; mempool->freeList.len--; break; } else { // Split the memory chunk. - new_mem = (MemNode *)((uint8_t *)*inode + ((*inode)->size - ALLOC_SIZE)); - (*inode)->size -= ALLOC_SIZE; + new_mem = (MemNode *)((uint8_t *)inode + (inode->size - ALLOC_SIZE)); + inode->size -= ALLOC_SIZE; new_mem->size = ALLOC_SIZE; break; } @@ -356,13 +348,13 @@ void MemPoolFree(MemPool *const restrict mempool, void *ptr) // attempted stack merge failed, try to place it into the memnode buckets else if (BUCKET_INDEX < MEMPOOL_BUCKET_SIZE) { - if (mempool->buckets[index] == NULL) mempool->buckets[index] = node; + if (mempool->buckets[BUCKET_INDEX] == NULL) mempool->buckets[BUCKET_INDEX] = mem_node; else { - for (MemNode *n = mempool->buckets[index]; n != NULL; n = n->next) if( n==node ) return; - mempool->buckets[index]->prev = node; - node->next = mempool->buckets[index]; - mempool->buckets[index] = node; + for (MemNode *n = mempool->buckets[BUCKET_INDEX]; n != NULL; n = n->next) if( n==mem_node ) return; + mempool->buckets[BUCKET_INDEX]->prev = mem_node; + mem_node->next = mempool->buckets[BUCKET_INDEX]; + mempool->buckets[BUCKET_INDEX] = mem_node; } } // Otherwise, we add it to the free list. @@ -459,7 +451,13 @@ bool MemPoolDefrag(MemPool *const mempool) // If node is right at the stack, merge it back into the stack. mempool->stack.base += (*node)->size; (*node)->size = 0UL; - __RemoveNode(mempool, node); + ((*node)->prev != NULL)? ((*node)->prev->next = (*node)->next) : (mempool->freeList.head = (*node)->next); + ((*node)->next != NULL)? ((*node)->next->prev = (*node)->prev) : (mempool->freeList.tail = (*node)->prev); + + if (mempool->freeList.head != NULL) mempool->freeList.head->prev = NULL; + else mempool->freeList.tail = NULL; + + if (mempool->freeList.tail != NULL) mempool->freeList.tail->next = NULL; mempool->freeList.len--; node = &mempool->freeList.head; } From 3ebc55fdfe856e5d1086fa35333bff296cc169bb Mon Sep 17 00:00:00 2001 From: raysan5 Date: Thu, 8 Aug 2019 10:18:12 +0200 Subject: [PATCH 017/123] Reviewed comment --- src/models.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/models.c b/src/models.c index df123fa7b..5dce17678 100644 --- a/src/models.c +++ b/src/models.c @@ -704,10 +704,9 @@ void UnloadModel(Model model) { for (int i = 0; i < model.meshCount; i++) UnloadMesh(model.meshes[i]); - // as the user could be sharing shaders and textures between - // models, don't unload the material but free it's maps instead - // the user is responsible for freeing models shaders and textures - //for (int i = 0; i < model.materialCount; i++) UnloadMaterial(model.materials[i]); + // As the user could be sharing shaders and textures between models, + // we don't unload the material but just free it's maps, the user + // is responsible for freeing models shaders and textures for (int i = 0; i < model.materialCount; i++) RL_FREE(model.materials[i].maps); RL_FREE(model.meshes); From 108f7f6fee475642e0d76807fc2fd21db1d56744 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Thu, 8 Aug 2019 10:32:42 +0200 Subject: [PATCH 018/123] Corrected small issue on miniaudio ONly Neon processors --- src/external/miniaudio.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/external/miniaudio.h b/src/external/miniaudio.h index e6752fbf5..528ff5746 100644 --- a/src/external/miniaudio.h +++ b/src/external/miniaudio.h @@ -29498,8 +29498,8 @@ static MA_INLINE float32x4_t ma_src_sinc__interpolation_factor__neon(const ma_sr { float32x4_t xabs; int32x4_t ixabs; - float32x4_t a - float32x4_t r + float32x4_t a; + float32x4_t r; int* ixabsv; float lo[4]; float hi[4]; From e6e48675cc8c8a2a9abe7bae257054f529da419a Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 8 Aug 2019 23:08:54 +0200 Subject: [PATCH 019/123] Formating tweaks --- src/raudio.c | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/src/raudio.c b/src/raudio.c index 40c136674..b6f9191e1 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -204,9 +204,9 @@ struct rAudioBuffer { bool paused; // Audio buffer state: AUDIO_PAUSED bool looping; // Audio buffer looping, always true for AudioStreams int usage; // Audio buffer usage mode: STATIC or STREAM - + bool isSubBufferProcessed[2]; - unsigned int frameCursorPos; + unsigned int frameCursorPos; // Samples processed? unsigned int bufferSizeInFrames; rAudioBuffer *next; @@ -402,7 +402,7 @@ static ma_uint32 OnAudioBufferDSPRead(ma_pcm_converter *pDSP, void *pFramesOut, } else { - ma_uint32 firstFrameIndexOfThisSubBuffer = subBufferSizeInFrames * currentSubBufferIndex; + ma_uint32 firstFrameIndexOfThisSubBuffer = subBufferSizeInFrames*currentSubBufferIndex; framesRemainingInOutputBuffer = subBufferSizeInFrames - (audioBuffer->frameCursorPos - firstFrameIndexOfThisSubBuffer); } @@ -410,7 +410,7 @@ static ma_uint32 OnAudioBufferDSPRead(ma_pcm_converter *pDSP, void *pFramesOut, if (framesToRead > framesRemainingInOutputBuffer) framesToRead = framesRemainingInOutputBuffer; memcpy((unsigned char *)pFramesOut + (framesRead*frameSizeInBytes), audioBuffer->buffer + (audioBuffer->frameCursorPos*frameSizeInBytes), framesToRead*frameSizeInBytes); - audioBuffer->frameCursorPos = (audioBuffer->frameCursorPos + framesToRead) % audioBuffer->bufferSizeInFrames; + audioBuffer->frameCursorPos = (audioBuffer->frameCursorPos + framesToRead)%audioBuffer->bufferSizeInFrames; framesRead += framesToRead; // If we've read to the end of the buffer, mark it as processed @@ -877,7 +877,7 @@ void UpdateSound(Sound sound, const void *data, int samplesCount) StopAudioBuffer(audioBuffer); - // TODO: May want to lock/unlock this since this data buffer is read at mixing time. + // TODO: May want to lock/unlock this since this data buffer is read at mixing time memcpy(audioBuffer->buffer, data, samplesCount*audioBuffer->dsp.formatConverterIn.config.channels*ma_get_bytes_per_sample(audioBuffer->dsp.formatConverterIn.config.formatIn)); } @@ -1188,10 +1188,10 @@ Music LoadMusicStream(const char *fileName) music.loopCount = 0; // Infinite loop by default musicLoaded = true; - TraceLog(LOG_DEBUG, "[%s] OGG total samples: %i", fileName, music.sampleCount); - TraceLog(LOG_DEBUG, "[%s] OGG sample rate: %i", fileName, info.sample_rate); - TraceLog(LOG_DEBUG, "[%s] OGG channels: %i", fileName, info.channels); - TraceLog(LOG_DEBUG, "[%s] OGG memory required: %i", fileName, info.temp_memory_required); + TraceLog(LOG_INFO, "[%s] OGG total samples: %i", fileName, music.sampleCount); + TraceLog(LOG_INFO, "[%s] OGG sample rate: %i", fileName, info.sample_rate); + TraceLog(LOG_INFO, "[%s] OGG channels: %i", fileName, info.channels); + TraceLog(LOG_INFO, "[%s] OGG memory required: %i", fileName, info.temp_memory_required); } } #endif @@ -1289,7 +1289,7 @@ Music LoadMusicStream(const char *fileName) music.loopCount = 0; // Infinite loop by default musicLoaded = true; - TraceLog(LOG_INFO, "[%s] MOD number of samples: %i", fileName, music.sampleLeft); + TraceLog(LOG_INFO, "[%s] MOD number of samples: %i", fileName, music.sampleCount); TraceLog(LOG_INFO, "[%s] MOD track length: %11.6f sec", fileName, (float)music.sampleCount/48000.0f); } } @@ -1354,10 +1354,10 @@ void PlayMusicStream(Music music) return; } - // For music streams, we need to make sure we maintain the frame cursor position. This is 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 (IsMusicPlaying(music)) PlayMusicStream(music); + // 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 (IsMusicPlaying(music)) PlayMusicStream(music); ma_uint32 frameCursorPos = audioBuffer->frameCursorPos; PlayAudioStream(music.stream); // <-- This resets the cursor position. @@ -1528,7 +1528,7 @@ void SetMusicPitch(Music music, float pitch) } // Set music loop count (loop repeats) -// NOTE: If set to -1, means infinite loop +// NOTE: If set to 0, means infinite loop void SetMusicLoopCount(Music music, int count) { music.loopCount = count; @@ -1622,7 +1622,8 @@ void UpdateAudioStream(AudioStream stream, const void *data, int samplesCount) if (audioBuffer->isSubBufferProcessed[0] && audioBuffer->isSubBufferProcessed[1]) { - // Both buffers are available for updating. Update the first one and make sure the cursor is moved back to the front. + // Both buffers are available for updating. + // Update the first one and make sure the cursor is moved back to the front. subBufferToUpdate = 0; audioBuffer->frameCursorPos = 0; } @@ -1635,7 +1636,8 @@ void UpdateAudioStream(AudioStream stream, const void *data, int samplesCount) ma_uint32 subBufferSizeInFrames = audioBuffer->bufferSizeInFrames/2; unsigned char *subBuffer = audioBuffer->buffer + ((subBufferSizeInFrames*stream.channels*(stream.sampleSize/8))*subBufferToUpdate); - // Does this API expect a whole buffer to be updated in one go? Assuming so, but if not will need to change this logic. + // 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)samplesCount/stream.channels) { ma_uint32 framesToWrite = subBufferSizeInFrames; From 6f2f09947f5456cefb3d91d3f667f4d72fa55be6 Mon Sep 17 00:00:00 2001 From: chriscamacho Date: Fri, 9 Aug 2019 16:04:52 +0100 Subject: [PATCH 020/123] addition to raylib to create matrix from 3 euler angles (#938) --- examples/models/models_yaw_pitch_roll.c | 6 ++++- src/raymath.h | 31 +++++++++++++++++++++++-- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/examples/models/models_yaw_pitch_roll.c b/examples/models/models_yaw_pitch_roll.c index 0931c00e9..72529d892 100644 --- a/examples/models/models_yaw_pitch_roll.c +++ b/examples/models/models_yaw_pitch_roll.c @@ -92,6 +92,7 @@ int main(void) while (pitchOffset < -180) pitchOffset += 360; pitchOffset *= 10; + /* matrix transform done with multiplication to combine rotations Matrix transform = MatrixIdentity(); transform = MatrixMultiply(transform, MatrixRotateZ(DEG2RAD*roll)); @@ -99,8 +100,11 @@ int main(void) transform = MatrixMultiply(transform, MatrixRotateY(DEG2RAD*yaw)); model.transform = transform; - //---------------------------------------------------------------------------------- + */ + // matrix created from multiple axes at once + model.transform = MatrixRotateXYZ((Vector3){DEG2RAD*pitch,DEG2RAD*yaw,DEG2RAD*roll}); + //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- BeginDrawing(); diff --git a/src/raymath.h b/src/raymath.h index d866ad826..12ea76b4e 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -56,7 +56,7 @@ #if defined(RAYMATH_IMPLEMENTATION) #if defined(_WIN32) && defined(BUILD_LIBTYPE_SHARED) #define RMDEF __declspec(dllexport) extern inline // We are building raylib as a Win32 shared library (.dll). - #elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) + #elif defined(_WIN32) && defined(USE_LIBTYPE_SHARED) #define RMDEF __declspec(dllimport) // We are using raylib as a Win32 shared library (.dll) #else #define RMDEF extern inline // Provide external definition @@ -113,7 +113,7 @@ float y; float z; } Vector3; - + // Quaternion type typedef struct Quaternion { float x; @@ -794,6 +794,33 @@ RMDEF Matrix MatrixRotate(Vector3 axis, float angle) return result; } +// Returns xyz-rotation matrix (angles in radians) +RMDEF Matrix MatrixRotateXYZ(Vector3 ang) +{ + Matrix result = MatrixIdentity(); + + float cosz = cosf(-ang.z); + float sinz = sinf(-ang.z); + float cosy = cosf(-ang.y); + float siny = sinf(-ang.y); + float cosx = cosf(-ang.x); + float sinx = sinf(-ang.x); + + result.m0 = cosz * cosy; + result.m4 = (cosz * siny * sinx) - (sinz * cosx); + result.m8 = (cosz * siny * cosx) + (sinz * sinx); + + result.m1 = sinz * cosy; + result.m5 = (sinz * siny * sinx) + (cosz * cosx); + result.m9 = (sinz * siny * cosx) - (cosz * sinx); + + result.m2 = -siny; + result.m6 = cosy * sinx; + result.m10= cosy * cosx; + + return result; +} + // Returns x-rotation matrix (angle in radians) RMDEF Matrix MatrixRotateX(float angle) { From 2c2ccadd32df75af312a32f2d07ca1d29e83f42b Mon Sep 17 00:00:00 2001 From: Wayde Reitsma Date: Sun, 11 Aug 2019 19:17:20 +1000 Subject: [PATCH 021/123] Small fix in GetMouseY (#940) --- src/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core.c b/src/core.c index 1dad59d99..930bd2597 100644 --- a/src/core.c +++ b/src/core.c @@ -2324,7 +2324,7 @@ int GetMouseX(void) int GetMouseY(void) { #if defined(PLATFORM_ANDROID) - return (int)touchPosition[0].x; + return (int)touchPosition[0].y; #else return (int)((mousePosition.y + mouseOffset.y)*mouseScale.y); #endif From 740834bb83734d436ba4c5324a4ccb026ebf5c6c Mon Sep 17 00:00:00 2001 From: raysan5 Date: Sun, 11 Aug 2019 12:04:54 +0200 Subject: [PATCH 022/123] REVIEW: GetDirectoryPath() and GetPrevDirectoryPath() --- src/core.c | 42 +++++++++++++++++++++--------------------- src/raylib.h | 4 ++-- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/core.c b/src/core.c index 930bd2597..ac0ddd294 100644 --- a/src/core.c +++ b/src/core.c @@ -1814,43 +1814,43 @@ const char *GetFileNameWithoutExt(const char *filePath) return fileName; } -// Get directory for a given fileName (with path) -const char *GetDirectoryPath(const char *fileName) +// Get directory for a given filePath +const char *GetDirectoryPath(const char *filePath) { const char *lastSlash = NULL; - static char filePath[MAX_FILEPATH_LENGTH]; - memset(filePath, 0, MAX_FILEPATH_LENGTH); + static char dirPath[MAX_FILEPATH_LENGTH]; + memset(dirPath, 0, MAX_FILEPATH_LENGTH); - lastSlash = strprbrk(fileName, "\\/"); + lastSlash = strprbrk(filePath, "\\/"); if (!lastSlash) return NULL; // NOTE: Be careful, strncpy() is not safe, it does not care about '\0' - strncpy(filePath, fileName, strlen(fileName) - (strlen(lastSlash) - 1)); - filePath[strlen(fileName) - strlen(lastSlash)] = '\0'; // Add '\0' manually + strncpy(dirPath, filePath, strlen(filePath) - (strlen(lastSlash) - 1)); + dirPath[strlen(filePath) - strlen(lastSlash)] = '\0'; // Add '\0' manually - return filePath; + return dirPath; } // Get previous directory path for a given path -const char *GetPrevDirectoryPath(const char *path) +const char *GetPrevDirectoryPath(const char *dirPath) { - static char prevDir[MAX_FILEPATH_LENGTH]; - memset(prevDir, 0, MAX_FILEPATH_LENGTH); - int pathLen = strlen(path); - - for (int i = (pathLen - 1); i >= 0; i--) + static char prevDirPath[MAX_FILEPATH_LENGTH]; + memset(prevDirPath, 0, MAX_FILEPATH_LENGTH); + int pathLen = strlen(dirPath); + + if (pathLen <= 3) strcpy(prevDirPath, dirPath); + + for (int i = (pathLen - 1); (i > 0) && (pathLen > 3); i--) { - if ((path[i] == '\\') || (path[i] == '/')) + if ((dirPath[i] == '\\') || (dirPath[i] == '/')) { - if ((i != (pathLen - 1)) && (path[pathLen - 2] != ':')) - { - strncpy(prevDir, path, i); - break; - } + if (i == 2) i++; // Check for root: "C:\" + strncpy(prevDirPath, dirPath, i); + break; } } - return prevDir; + return prevDirPath; } // Get current working directory diff --git a/src/raylib.h b/src/raylib.h index 1bf0afd5f..3cb8d327b 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -940,8 +940,8 @@ RLAPI bool DirectoryExists(const char *dirPath); // Check if a RLAPI const char *GetExtension(const char *fileName); // Get pointer to extension for a filename string RLAPI const char *GetFileName(const char *filePath); // Get pointer to filename for a path string RLAPI const char *GetFileNameWithoutExt(const char *filePath); // Get filename string without extension (memory should be freed) -RLAPI const char *GetDirectoryPath(const char *fileName); // Get full path for a given fileName (uses static string) -RLAPI const char *GetPrevDirectoryPath(const char *path); // Get previous directory path for a given path (uses static string) +RLAPI const char *GetDirectoryPath(const char *filePath); // Get full path for a given fileName with path (uses static string) +RLAPI const char *GetPrevDirectoryPath(const char *dirPath); // Get previous directory path for a given path (uses static string) RLAPI const char *GetWorkingDirectory(void); // Get current working directory (uses static string) RLAPI char **GetDirectoryFiles(const char *dirPath, int *count); // Get filenames in a directory path (memory should be freed) RLAPI void ClearDirectoryFiles(void); // Clear directory files paths buffers (free memory) From cef1e6e2e2a015d56b3018465f9094887ff94bdd Mon Sep 17 00:00:00 2001 From: raysan5 Date: Sun, 11 Aug 2019 21:26:12 +0200 Subject: [PATCH 023/123] Added notes about vertex order --- src/raylib.h | 6 +++--- src/shapes.c | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 3cb8d327b..37557c613 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1054,9 +1054,9 @@ RLAPI void DrawRectangleLines(int posX, int posY, int width, int height, Color c RLAPI void DrawRectangleLinesEx(Rectangle rec, int 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, int 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 -RLAPI void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline -RLAPI void DrawTriangleFan(Vector2 *points, int numPoints, Color color); // Draw a triangle fan defined by points +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 numPoints, Color color); // Draw a triangle fan defined by points (first vertex is the center) RLAPI void DrawTriangleStrip(Vector2 *points, int pointsCount, 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) diff --git a/src/shapes.c b/src/shapes.c index d1956b26a..6217d2ada 100644 --- a/src/shapes.c +++ b/src/shapes.c @@ -1179,6 +1179,7 @@ void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, int } // Draw a triangle +// NOTE: Vertex must be provided in counter-clockwise order void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color) { if (rlCheckBufferLimit(4)) rlglDraw(); @@ -1214,6 +1215,7 @@ void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color) } // Draw a triangle using lines +// NOTE: Vertex must be provided in counter-clockwise order void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color) { if (rlCheckBufferLimit(6)) rlglDraw(); @@ -1232,7 +1234,7 @@ void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color) } // Draw a triangle fan defined by points -// NOTE: First point provided is shared by all triangles +// NOTE: First vertex provided is the center, shared by all triangles void DrawTriangleFan(Vector2 *points, int pointsCount, Color color) { if (pointsCount >= 3) @@ -1263,7 +1265,7 @@ void DrawTriangleFan(Vector2 *points, int pointsCount, Color color) } // Draw a triangle strip defined by points -// NOTE: Every new point connects with previous two +// NOTE: Every new vertex connects with previous two void DrawTriangleStrip(Vector2 *points, int pointsCount, Color color) { if (pointsCount >= 3) From c629b16ebce5c8e7b2d8e2a3e842b069965bd6be Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 12 Aug 2019 12:35:23 +0200 Subject: [PATCH 024/123] Corrected issue on compressed textures data size --- src/rlgl.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/rlgl.h b/src/rlgl.h index aa0c5e144..5e7312bde 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -4623,6 +4623,14 @@ int GetPixelDataSize(int width, int height, int format) } dataSize = width*height*bpp/8; // Total data size in bytes + + // Most compressed formats works on 4x4 blocks, + // if texture is smaller, minimum dataSize is 8 or 16 + if ((width < 4) && (height < 4)) + { + if ((format >= COMPRESSED_DXT1_RGB) && (format < COMPRESSED_DXT3_RGBA)) dataSize = 8; + else if ((format >= COMPRESSED_DXT3_RGBA) && (format < COMPRESSED_ASTC_8x8_RGBA)) dataSize = 16; + } return dataSize; } From c387bc586d9c8b9fe9bb840926d12526aaad9116 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 13 Aug 2019 17:41:31 +0200 Subject: [PATCH 025/123] RENAMED: IsAudioBufferProcessed() -> IsAudioStreamProcessed() Renamed for consistency with similar functions --- examples/audio/audio_raw_stream.c | 2 +- src/raudio.c | 8 ++++---- src/raylib.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/audio/audio_raw_stream.c b/examples/audio/audio_raw_stream.c index 136e02f30..85a77bc0a 100644 --- a/examples/audio/audio_raw_stream.c +++ b/examples/audio/audio_raw_stream.c @@ -99,7 +99,7 @@ int main(void) } // Refill audio stream if required - if (IsAudioBufferProcessed(stream)) + if (IsAudioStreamProcessed(stream)) { // Synthesize a buffer that is exactly the requested size int writeCursor = 0; diff --git a/src/raudio.c b/src/raudio.c index b6f9191e1..576190deb 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -1418,7 +1418,7 @@ void UpdateMusicStream(Music music) int samplesCount = 0; // Total size of data steamed in L+R samples for xm floats, individual L or R for ogg shorts - while (IsAudioBufferProcessed(music.stream)) + while (IsAudioStreamProcessed(music.stream)) { if ((music.sampleLeft/music.stream.channels) >= subBufferSizeInFrames) samplesCount = subBufferSizeInFrames*music.stream.channels; else samplesCount = music.sampleLeft; @@ -1605,7 +1605,7 @@ void CloseAudioStream(AudioStream stream) // Update audio stream buffers with data // NOTE 1: Only updates one buffer of the stream source: unqueue -> update -> queue -// NOTE 2: To unqueue a buffer it needs to be processed: IsAudioBufferProcessed() +// NOTE 2: To unqueue a buffer it needs to be processed: IsAudioStreamProcessed() void UpdateAudioStream(AudioStream stream, const void *data, int samplesCount) { AudioBuffer *audioBuffer = stream.buffer; @@ -1663,11 +1663,11 @@ void UpdateAudioStream(AudioStream stream, const void *data, int samplesCount) } // Check if any audio stream buffers requires refill -bool IsAudioBufferProcessed(AudioStream stream) +bool IsAudioStreamProcessed(AudioStream stream) { if (stream.buffer == NULL) { - TraceLog(LOG_ERROR, "IsAudioBufferProcessed() : No audio buffer"); + TraceLog(LOG_ERROR, "IsAudioStreamProcessed() : No audio buffer"); return false; } diff --git a/src/raylib.h b/src/raylib.h index 37557c613..6cf6fd23b 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1392,7 +1392,7 @@ RLAPI float GetMusicTimePlayed(Music music); // Get cur RLAPI AudioStream InitAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); // Init audio stream (to stream raw audio pcm data) RLAPI void UpdateAudioStream(AudioStream stream, const void *data, int samplesCount); // Update audio stream buffers with data RLAPI void CloseAudioStream(AudioStream stream); // Close audio stream and free memory -RLAPI bool IsAudioBufferProcessed(AudioStream stream); // Check if any audio stream buffers requires refill +RLAPI bool IsAudioStreamProcessed(AudioStream stream); // Check if any audio stream buffers requires refill RLAPI void PlayAudioStream(AudioStream stream); // Play audio stream RLAPI void PauseAudioStream(AudioStream stream); // Pause audio stream RLAPI void ResumeAudioStream(AudioStream stream); // Resume audio stream From d8b8c0f3fc8ab3872c65bcfefd258bd6ad4ece51 Mon Sep 17 00:00:00 2001 From: arvyy Date: Fri, 16 Aug 2019 17:09:50 +0300 Subject: [PATCH 026/123] change Camera2D behavior (#945) --- examples/core/core_2d_camera.c | 6 ++---- src/core.c | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/examples/core/core_2d_camera.c b/examples/core/core_2d_camera.c index 81f580ad3..ba432f460 100644 --- a/examples/core/core_2d_camera.c +++ b/examples/core/core_2d_camera.c @@ -42,7 +42,7 @@ int main(void) Camera2D camera = { 0 }; camera.target = (Vector2){ player.x + 20, player.y + 20 }; - camera.offset = (Vector2){ 0, 0 }; + camera.offset = (Vector2){ screenWidth / 2, screenHeight / 2 }; camera.rotation = 0.0f; camera.zoom = 1.0f; @@ -57,12 +57,10 @@ int main(void) if (IsKeyDown(KEY_RIGHT)) { player.x += 2; // Player movement - camera.offset.x -= 2; // Camera displacement with player movement } else if (IsKeyDown(KEY_LEFT)) { player.x -= 2; // Player movement - camera.offset.x += 2; // Camera displacement with player movement } // Camera target follows player @@ -135,4 +133,4 @@ int main(void) //-------------------------------------------------------------------------------------- return 0; -} \ No newline at end of file +} diff --git a/src/core.c b/src/core.c index ac0ddd294..81bed6075 100644 --- a/src/core.c +++ b/src/core.c @@ -1251,11 +1251,24 @@ void BeginMode2D(Camera2D camera) rlLoadIdentity(); // Reset current matrix (MODELVIEW) rlMultMatrixf(MatrixToFloat(screenScaling)); // Apply screen scaling if required - // Camera rotation and scaling is always relative to target + //The camera in world-space is set by + //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. + //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. + //Since (A*B*C)' = C'*B'*A', the modelview is + //1. Move to offset + //2. Rotate and Scale + //3. Move by -target Matrix matOrigin = MatrixTranslate(-camera.target.x, -camera.target.y, 0.0f); Matrix matRotation = MatrixRotate((Vector3){ 0.0f, 0.0f, 1.0f }, camera.rotation*DEG2RAD); Matrix matScale = MatrixScale(camera.zoom, camera.zoom, 1.0f); - Matrix matTranslation = MatrixTranslate(camera.offset.x + camera.target.x, camera.offset.y + camera.target.y, 0.0f); + Matrix matTranslation = MatrixTranslate(camera.offset.x, camera.offset.y, 0.0f); Matrix matTransform = MatrixMultiply(MatrixMultiply(matOrigin, MatrixMultiply(matScale, matRotation)), matTranslation); From ce8d7042c625d45e28755d80f9b39beb1d2a6c5a Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 16 Aug 2019 16:15:47 +0200 Subject: [PATCH 027/123] PR formatting review --- examples/core/core_2d_camera.c | 14 +++++--------- src/core.c | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/examples/core/core_2d_camera.c b/examples/core/core_2d_camera.c index ba432f460..d6c85079e 100644 --- a/examples/core/core_2d_camera.c +++ b/examples/core/core_2d_camera.c @@ -42,7 +42,7 @@ int main(void) Camera2D camera = { 0 }; camera.target = (Vector2){ player.x + 20, player.y + 20 }; - camera.offset = (Vector2){ screenWidth / 2, screenHeight / 2 }; + camera.offset = (Vector2){ screenWidth/2, screenHeight/2 }; camera.rotation = 0.0f; camera.zoom = 1.0f; @@ -54,14 +54,10 @@ int main(void) { // Update //---------------------------------------------------------------------------------- - if (IsKeyDown(KEY_RIGHT)) - { - player.x += 2; // Player movement - } - else if (IsKeyDown(KEY_LEFT)) - { - player.x -= 2; // Player movement - } + + // Player movement + if (IsKeyDown(KEY_RIGHT)) player.x += 2; + else if (IsKeyDown(KEY_LEFT)) player.x -= 2; // Camera target follows player camera.target = (Vector2){ player.x + 20, player.y + 20 }; diff --git a/src/core.c b/src/core.c index 81bed6075..d4df605f4 100644 --- a/src/core.c +++ b/src/core.c @@ -1251,20 +1251,20 @@ void BeginMode2D(Camera2D camera) rlLoadIdentity(); // Reset current matrix (MODELVIEW) rlMultMatrixf(MatrixToFloat(screenScaling)); // Apply screen scaling if required - //The camera in world-space is set by - //1. Move it to target - //2. Rotate by -rotation and scale by (1/zoom) + // The camera in world-space is set by + // 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. - //3. Move it by (-offset); + // 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. - //Since (A*B*C)' = C'*B'*A', the modelview is - //1. Move to offset - //2. Rotate and Scale - //3. Move by -target + + // 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 + // 3. Move by -target Matrix matOrigin = MatrixTranslate(-camera.target.x, -camera.target.y, 0.0f); Matrix matRotation = MatrixRotate((Vector3){ 0.0f, 0.0f, 1.0f }, camera.rotation*DEG2RAD); Matrix matScale = MatrixScale(camera.zoom, camera.zoom, 1.0f); From 7ebcd066527c021c8b444cb00f05f4c916cee78b Mon Sep 17 00:00:00 2001 From: Oraoto Date: Mon, 19 Aug 2019 16:25:26 +0800 Subject: [PATCH 028/123] Fix uninitialized vboId in GenMeshHeightmap (#949) --- src/models.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/models.c b/src/models.c index 5dce17678..fd139e00b 100644 --- a/src/models.c +++ b/src/models.c @@ -1769,6 +1769,7 @@ Mesh GenMeshHeightmap(Image heightmap, Vector3 size) #define GRAY_VALUE(c) ((c.r+c.g+c.b)/3) Mesh mesh = { 0 }; + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); int mapX = heightmap.width; int mapZ = heightmap.height; From 4b79f63d07ca81c180ce9d021b2d5fa6cb6af401 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 19 Aug 2019 12:08:45 +0200 Subject: [PATCH 029/123] new example: shaders_fog --- .../shaders/resources/shaders/glsl330/fog.fs | 99 ++++++++++++ .../shaders/resources/shaders/glsl330/fog.vs | 32 ++++ examples/shaders/shaders_fog.c | 153 ++++++++++++++++++ examples/shaders/shaders_fog.png | Bin 0 -> 81626 bytes 4 files changed, 284 insertions(+) create mode 100644 examples/shaders/resources/shaders/glsl330/fog.fs create mode 100644 examples/shaders/resources/shaders/glsl330/fog.vs create mode 100644 examples/shaders/shaders_fog.c create mode 100644 examples/shaders/shaders_fog.png diff --git a/examples/shaders/resources/shaders/glsl330/fog.fs b/examples/shaders/resources/shaders/glsl330/fog.fs new file mode 100644 index 000000000..57ed14807 --- /dev/null +++ b/examples/shaders/resources/shaders/glsl330/fog.fs @@ -0,0 +1,99 @@ +#version 330 + +// Input vertex attributes (from vertex shader) +in vec2 fragTexCoord; +in vec4 fragColor; +in vec3 fragPosition; +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 MaterialProperty { + vec3 color; + int useSampler; + sampler2D sampler; +}; + +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; +uniform float fogDensity; + +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);//16 =shine + specular += specCo; + + } + } + + finalColor = (texelColor * ((colDiffuse+vec4(specular,1)) * vec4(lightDot, 1.0))); + finalColor += texelColor * (ambient/10.0); + + // Gamma correction + finalColor = pow(finalColor, vec4(1.0/2.2)); + + // Fog calculation + float dist = length(viewPos - fragPosition); + + // these could be parameters... + const vec4 fogColor = vec4(0.5, 0.5, 0.5, 1.0); + //const float fogDensity = 0.16; + + // Exponential fog + float fogFactor = 1.0/exp((dist*fogDensity)*(dist*fogDensity)); + + // Linear fog (less nice) + //const float fogStart = 2.0; + //const float fogEnd = 10.0; + //float fogFactor = (fogEnd - dist)/(fogEnd - fogStart); + + fogFactor = clamp(fogFactor, 0.0, 1.0); + + finalColor = mix(fogColor, finalColor, fogFactor); +} diff --git a/examples/shaders/resources/shaders/glsl330/fog.vs b/examples/shaders/resources/shaders/glsl330/fog.vs new file mode 100644 index 000000000..00779cfa3 --- /dev/null +++ b/examples/shaders/resources/shaders/glsl330/fog.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; + +// Output vertex attributes (to fragment shader) +out vec2 fragTexCoord; +out vec4 fragColor; +out vec3 fragPosition; +out vec3 fragNormal; + +// NOTE: Add here your custom variables + +void main() +{ + // Send vertex attributes to fragment shader + fragTexCoord = vertexTexCoord; + fragColor = vertexColor; + fragPosition = vec3(matModel*vec4(vertexPosition, 1.0f)); + mat3 normalMatrix = transpose(inverse(mat3(matModel))); + fragNormal = normalize(normalMatrix*vertexNormal); + + // Calculate final vertex position + gl_Position = mvp*vec4(vertexPosition, 1.0); +} diff --git a/examples/shaders/shaders_fog.c b/examples/shaders/shaders_fog.c new file mode 100644 index 000000000..e8f2691d2 --- /dev/null +++ b/examples/shaders/shaders_fog.c @@ -0,0 +1,153 @@ +/******************************************************************************************* +* +* raylib [shaders] example - fog +* +* NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, +* OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. +* +* NOTE: Shaders used in this example are #version 330 (OpenGL 3.3). +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Chris Camacho (@codifies) and reviewed by Ramon Santamaria (@raysan5) +* +* Chris Camacho (@codifies - http://bedroomcoders.co.uk/) notes: +* +* This is based on the PBR lighting example, but greatly simplified to aid learning... +* actually there is very little of the PBR example left! +* When I first looked at the bewildering complexity of the PBR example I feared +* I would never understand how I could do simple lighting with raylib however its +* a testement to the authors of raylib (including rlights.h) that the example +* came together fairly quickly. +* +* Copyright (c) 2019 Chris Camacho (@codifies) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include "raymath.h" + +#define RLIGHTS_IMPLEMENTATION +#include "rlights.h" + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available) + InitWindow(screenWidth, screenHeight, "raylib [shaders] example - fog"); + + // Define the camera to look into our 3d world + Camera camera = { + (Vector3){ 2.0f, 2.0f, 6.0f }, // position + (Vector3){ 0.0f, 0.5f, 0.0f }, // target + (Vector3){ 0.0f, 1.0f, 0.0f }, // up + 45.0f, CAMERA_PERSPECTIVE }; // fov, type + + // Load models and texture + Model modelA = LoadModelFromMesh(GenMeshTorus(0.4f, 1.0f, 16, 32)); + Model modelB = LoadModelFromMesh(GenMeshCube(1.0f, 1.0f, 1.0f)); + Model modelC = LoadModelFromMesh(GenMeshSphere(0.5f, 32, 32)); + Texture texture = LoadTexture("resources/texel_checker.png"); + + // Assign texture to default model material + modelA.materials[0].maps[MAP_DIFFUSE].texture = texture; + modelB.materials[0].maps[MAP_DIFFUSE].texture = texture; + modelC.materials[0].maps[MAP_DIFFUSE].texture = texture; + + // Load shader and set up some uniforms + Shader shader = LoadShader("resources/shaders/glsl330/fog.vs", "resources/shaders/glsl330/fog.fs"); + shader.locs[LOC_MATRIX_MODEL] = GetShaderLocation(shader, "matModel"); + shader.locs[LOC_VECTOR_VIEW] = GetShaderLocation(shader, "viewPos"); + + // Ambient light level + int ambientLoc = GetShaderLocation(shader, "ambient"); + SetShaderValue(shader, ambientLoc, (float[4]){ 0.2f, 0.2f, 0.2f, 1.0f }, UNIFORM_VEC4); + + float fogDensity = 0.15f; + int fogDensityLoc = GetShaderLocation(shader, "fogDensity"); + SetShaderValue(shader, fogDensityLoc, &fogDensity, UNIFORM_FLOAT); + + // NOTE: All models share the same shader + modelA.materials[0].shader = shader; + modelB.materials[0].shader = shader; + modelC.materials[0].shader = shader; + + // Using just 1 point lights + CreateLight(LIGHT_POINT, (Vector3){ 0, 2, 6 }, Vector3Zero(), WHITE, shader); + + SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode + + 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); // Update camera + + if (IsKeyDown(KEY_UP)) + { + fogDensity += 0.001; + if (fogDensity > 1.0) fogDensity = 1.0; + } + + if (IsKeyDown(KEY_DOWN)) + { + fogDensity -= 0.001; + if (fogDensity < 0.0) fogDensity = 0.0; + } + + SetShaderValue(shader, fogDensityLoc, &fogDensity, UNIFORM_FLOAT); + + // Rotate the torus + modelA.transform = MatrixMultiply(modelA.transform, MatrixRotateX(-0.025)); + modelA.transform = MatrixMultiply(modelA.transform, MatrixRotateZ(0.012)); + + // Update the light shader with the camera view position + SetShaderValue(shader, shader.locs[LOC_VECTOR_VIEW], &camera.position.x, UNIFORM_VEC3); + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(GRAY); + + BeginMode3D(camera); + + // Draw the three models + DrawModel(modelA, Vector3Zero(), 1.0f, WHITE); + DrawModel(modelB, (Vector3){ -2.6, 0, 0 }, 1.0f, WHITE); + DrawModel(modelC, (Vector3){ 2.6, 0, 0 }, 1.0f, WHITE); + + for (int i = -20; i < 20; i += 2) DrawModel(modelA,(Vector3){ i, 0, 2 }, 1.0f, WHITE); + + EndMode3D(); + + DrawText(TextFormat("Use KEY_UP/KEY_DOWN to change fog density [%.2f]", fogDensity), 10, 10, 20, RAYWHITE); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadModel(modelA); // Unload the model A + UnloadModel(modelB); // Unload the model B + UnloadModel(modelC); // Unload the model C + UnloadTexture(texture); // Unload the texture + UnloadShader(shader); // Unload shader + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} diff --git a/examples/shaders/shaders_fog.png b/examples/shaders/shaders_fog.png new file mode 100644 index 0000000000000000000000000000000000000000..52008e8a1314fc9c700ff34471806daa105ae158 GIT binary patch literal 81626 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 literal 0 HcmV?d00001 From 973d32f9a73c921dde2d75a6cc3fa9ee111e3e11 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 19 Aug 2019 12:17:02 +0200 Subject: [PATCH 030/123] Reviewed issue #943 --- src/models.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/models.c b/src/models.c index fd139e00b..711576da2 100644 --- a/src/models.c +++ b/src/models.c @@ -3419,7 +3419,7 @@ static Model LoadGLTF(const char *fileName) Texture2D texture = { 0 }; const char *texPath = GetDirectoryPath(fileName); - if (data->materials[i].pbr_metallic_roughness.base_color_factor) + if (data->materials[i].has_pbr_metallic_roughness) { tint.r = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[0]*255.99f); tint.g = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[1]*255.99f); @@ -3428,13 +3428,13 @@ static Model LoadGLTF(const char *fileName) } else { - tint.r = 1.f; - tint.g = 1.f; - tint.b = 1.f; - tint.a = 1.f; + tint.r = 1.0f; + tint.g = 1.0f; + tint.b = 1.0f; + tint.a = 1.0f; } - if (data->materials[i].pbr_metallic_roughness.base_color_texture.texture) + if (data->materials[i].has_pbr_metallic_roughness) { cgltf_image *img = data->materials[i].pbr_metallic_roughness.base_color_texture.texture->image; From 12bcdb977a15a4db933765b3cf4af205a492c8b2 Mon Sep 17 00:00:00 2001 From: Colday96 <34099856+Colday96@users.noreply.github.com> Date: Mon, 19 Aug 2019 12:32:17 +0100 Subject: [PATCH 031/123] Update shapes.c for smoother collision detection (#946) By removing the equal sign, if the 2 rects a right next to each other and not overlapping, there will be no collision detection. This is what a majority of other game libraries do and would make it easier to implement collisions for tile based games. --- src/shapes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/shapes.c b/src/shapes.c index 6217d2ada..a9fafccc7 100644 --- a/src/shapes.c +++ b/src/shapes.c @@ -1392,8 +1392,8 @@ bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2) { bool collision = false; - if ((rec1.x <= (rec2.x + rec2.width) && (rec1.x + rec1.width) >= rec2.x) && - (rec1.y <= (rec2.y + rec2.height) && (rec1.y + rec1.height) >= rec2.y)) collision = true; + if ((rec1.x < (rec2.x + rec2.width) && (rec1.x + rec1.width) > rec2.x) && + (rec1.y < (rec2.y + rec2.height) && (rec1.y + rec1.height) > rec2.y)) collision = true; return collision; } From 2f42b0ce857ff07ad8a9b50e1a2c24bf0d8bf3c1 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 19 Aug 2019 15:09:54 +0200 Subject: [PATCH 032/123] REVIEW: TextSplit() Just adding a security check --- src/text.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/text.c b/src/text.c index 1c775c8db..79e46d0c2 100644 --- a/src/text.c +++ b/src/text.c @@ -1372,20 +1372,25 @@ const char **TextSplit(const char *text, char delimiter, int *count) memset(buffer, 0, MAX_TEXT_BUFFER_LENGTH); result[0] = buffer; - int counter = 1; - - // Count how many substrings we have on text and point to every one - for (int i = 0; i < MAX_TEXT_BUFFER_LENGTH; i++) + int counter = 0; + + if (text != NULL) { - buffer[i] = text[i]; - if (buffer[i] == '\0') break; - else if (buffer[i] == delimiter) + counter = 1; + + // Count how many substrings we have on text and point to every one + for (int i = 0; i < MAX_TEXT_BUFFER_LENGTH; i++) { - buffer[i] = '\0'; // Set an end of string at this point - result[counter] = buffer + i + 1; - counter++; + buffer[i] = text[i]; + if (buffer[i] == '\0') break; + else if (buffer[i] == delimiter) + { + buffer[i] = '\0'; // Set an end of string at this point + result[counter] = buffer + i + 1; + counter++; - if (counter == MAX_SUBSTRINGS_COUNT) break; + if (counter == MAX_SUBSTRINGS_COUNT) break; + } } } From 3414910809500f2d9cf2eb5b00df7ecba1dfa9b5 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 20 Aug 2019 13:15:10 +0200 Subject: [PATCH 033/123] Update README.md --- projects/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/projects/README.md b/projects/README.md index 4009a09b9..c0fa2442f 100644 --- a/projects/README.md +++ b/projects/README.md @@ -4,14 +4,17 @@ This folder contains raylib templates for some common IDEs. IDE | Platform | Template type | State ----| ---------| ------------- | ----- +[4coder](http://4coder.net/) | Windows | example compiling | DONE [Builder](https://wiki.gnome.org/Apps/Builder) | Linux | example compiling | DONE [CMake](https://cmake.org/) | n/a | example compiling and raylib source downloading/building if necessary | DONE [CodeBlocks](http://www.codeblocks.org/) | Linux, Windows | example compiling | DONE -[Geany](https://www.geany.org/) | Linux, Windows | - | INCOMPLETE +[Geany](https://www.geany.org/) | Linux, Windows | - | DONE [KDevelop](https://www.kdevelop.org/) | Linux, Windows, macOS | - | INCOMPLETE [Notepad++](https://notepad-plus-plus.org/) | Windows | source/example compiling | DONE +[Sublime Text](https://www.sublimetext.com/) | source and example | DONE [VS2015](https://www.visualstudio.com) | Windows | source/example compiling | DONE [VS2017](https://www.visualstudio.com) | Windows | source/example compiling | DONE [VSCode](https://code.visualstudio.com/) | Windows, macOS | example compiling | DONE +scripts | Windows, Linux, macOS | source and example | DONE *New IDEs config files are welcome!* From 64575e711b1fc6196c676a22c42ac436fd767d9e Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 20 Aug 2019 13:15:48 +0200 Subject: [PATCH 034/123] Update README.md --- projects/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/README.md b/projects/README.md index c0fa2442f..2f0e0f3d1 100644 --- a/projects/README.md +++ b/projects/README.md @@ -11,7 +11,7 @@ IDE | Platform | Template type | State [Geany](https://www.geany.org/) | Linux, Windows | - | DONE [KDevelop](https://www.kdevelop.org/) | Linux, Windows, macOS | - | INCOMPLETE [Notepad++](https://notepad-plus-plus.org/) | Windows | source/example compiling | DONE -[Sublime Text](https://www.sublimetext.com/) | source and example | DONE +[Sublime Text](https://www.sublimetext.com/) | Windows, Linux, macOS | source and example | DONE [VS2015](https://www.visualstudio.com) | Windows | source/example compiling | DONE [VS2017](https://www.visualstudio.com) | Windows | source/example compiling | DONE [VSCode](https://code.visualstudio.com/) | Windows, macOS | example compiling | DONE From ef3b01dffc964c04b83d08211ff133e22af6059b Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 20 Aug 2019 19:32:12 +0200 Subject: [PATCH 035/123] RPI: Corrected issue when creating 3d projection view --- src/core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core.c b/src/core.c index d4df605f4..2e9bfb635 100644 --- a/src/core.c +++ b/src/core.c @@ -2507,9 +2507,6 @@ static bool InitGraphicsDevice(int width, int height) if (screenHeight <= 0) screenHeight = displayHeight; #endif // PLATFORM_DESKTOP - currentWidth = screenWidth; - currentHeight = screenHeight; - #if defined(PLATFORM_WEB) displayWidth = screenWidth; displayHeight = screenHeight; @@ -3040,6 +3037,9 @@ static bool InitGraphicsDevice(int width, int height) // Setup default viewport SetupViewport(fbWidth, fbHeight); + currentWidth = screenWidth; + currentHeight = screenHeight; + ClearBackground(RAYWHITE); // Default background color for raylib games :P #if defined(PLATFORM_ANDROID) From a727f5768f6e588d45e47dd26da9af82597ba1d3 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 20 Aug 2019 19:33:46 +0200 Subject: [PATCH 036/123] Review OpenGL ES 2.0 extensions check --- src/rlgl.h | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/rlgl.h b/src/rlgl.h index 5e7312bde..9771d30f7 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -1529,24 +1529,33 @@ void rlglInit(int width, int height) const char **extList = RL_MALLOC(sizeof(const char *)*numExt); // Get extensions strings - for (int i = 0; i < numExt; i++) extList[i] = (char *)glGetStringi(GL_EXTENSIONS, i); + for (int i = 0; i < numExt; i++) extList[i] = (const char *)glGetStringi(GL_EXTENSIONS, i); #elif defined(GRAPHICS_API_OPENGL_ES2) // Allocate 512 strings pointers (2 KB) const char **extList = RL_MALLOC(sizeof(const char *)*512); + + const char *extensions = (const char *)glGetString(GL_EXTENSIONS); // One big const string + + // NOTE: We have to duplicate string because glGetString() returns a const string + int len = strlen(extensions) + 1; + char *extensionsDup = (char *)RL_CALLOC(len, 1); + strcpy(extensionsDup, extensions); - // Get extensions strings - char *extensions = (char *)glGetString(GL_EXTENSIONS); // One big static const string returned - int len = strlen(extensions); + extList[numExt] = extensionsDup; for (int i = 0; i < len; i++) { - if (i == ' ') + if (extensionsDup[i] == ' ') { - extList[numExt] = &extensions[i + 1]; + extensionsDup[i] = '\0'; + numExt++; + extList[numExt] = &extensionsDup[i + 1]; } } + + // NOTE: Duplicated string (extensionsDup) must be deallocated #endif TraceLog(LOG_INFO, "Number of supported extensions: %i", numExt); @@ -1622,6 +1631,8 @@ void rlglInit(int width, int height) RL_FREE(extList); #if defined(GRAPHICS_API_OPENGL_ES2) + RL_FREE(extensionsDup); // Duplicated string must be deallocated + if (vaoSupported) TraceLog(LOG_INFO, "[EXTENSION] VAO extension detected, VAO functions initialized successfully"); else TraceLog(LOG_WARNING, "[EXTENSION] VAO extension not found, VAO usage not supported"); From 3db13edd898adcd41aa0768e2e707256687a90ac Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 20 Aug 2019 20:39:22 +0200 Subject: [PATCH 037/123] Support mouse cursor on RPI native Reduced bunnymark limits --- examples/textures/textures_bunnymark.c | 2 +- src/config.h | 2 ++ src/core.c | 9 +++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/examples/textures/textures_bunnymark.c b/examples/textures/textures_bunnymark.c index 784417d21..86605b901 100644 --- a/examples/textures/textures_bunnymark.c +++ b/examples/textures/textures_bunnymark.c @@ -13,7 +13,7 @@ #include // Required for: malloc(), free() -#define MAX_BUNNIES 100000 // 100K bunnies limit +#define MAX_BUNNIES 50000 // 50K bunnies limit // This is the maximum amount of elements (quads) per batch // NOTE: This value is defined in [rlgl] module and can be changed there diff --git a/src/config.h b/src/config.h index 050cce183..398b5e9ad 100644 --- a/src/config.h +++ b/src/config.h @@ -44,6 +44,8 @@ #define SUPPORT_MOUSE_GESTURES 1 // Reconfigure standard input to receive key inputs, works with SSH connection. #define SUPPORT_SSH_KEYBOARD_RPI 1 +// Draw a mouse reference on screen (square cursor box) +#define SUPPORT_MOUSE_CURSOR_RPI 1 // Use busy wait loop for timing sync, if not defined, a high-resolution timer is setup and used //#define SUPPORT_BUSY_WAIT_LOOP 1 // Wait for events passively (sleeping while no events) instead of polling them actively every frame diff --git a/src/core.c b/src/core.c index 2e9bfb635..400712051 100644 --- a/src/core.c +++ b/src/core.c @@ -55,6 +55,9 @@ * WARNING: Reconfiguring standard input could lead to undesired effects, like breaking other running processes or * blocking the device is not restored properly. Use with care. * +* #define SUPPORT_MOUSE_CURSOR_RPI (Raspberry Pi only) +* Draw a mouse reference on screen (square cursor box) +* * #define SUPPORT_BUSY_WAIT_LOOP * Use busy wait loop for timing sync, if not defined, a high-resolution timer is setup and used * @@ -1187,6 +1190,12 @@ void BeginDrawing(void) // End canvas drawing and swap buffers (double buffering) void EndDrawing(void) { +#if defined(PLATFORM_RPI) && defined(SUPPORT_MOUSE_CURSOR_RPI) + // On RPI native mode we have no system mouse cursor, so, + // we draw a small rectangle for user reference + DrawRectangle(mousePosition.x, mousePosition.y, 3, 3, MAROON); +#endif + rlglDraw(); // Draw Buffers (Only OpenGL 3+ and ES2) #if defined(SUPPORT_GIF_RECORDING) From 20257f3e49a25430912330caa98e06b81b4276b3 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 20 Aug 2019 21:17:06 +0200 Subject: [PATCH 038/123] Uniform initialization not supported on GLSL 100 --- examples/core/resources/distortion100.fs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/examples/core/resources/distortion100.fs b/examples/core/resources/distortion100.fs index 6bfe252b3..112cbcb5c 100644 --- a/examples/core/resources/distortion100.fs +++ b/examples/core/resources/distortion100.fs @@ -11,14 +11,14 @@ uniform sampler2D texture0; uniform vec4 colDiffuse; // NOTE: Add here your custom variables -uniform vec2 leftLensCenter = vec2(0.288, 0.5); -uniform vec2 rightLensCenter = vec2(0.712, 0.5); -uniform vec2 leftScreenCenter = vec2(0.25, 0.5); -uniform vec2 rightScreenCenter = vec2(0.75, 0.5); -uniform vec2 scale = vec2(0.25, 0.45); -uniform vec2 scaleIn = vec2(4, 2.2222); -uniform vec4 hmdWarpParam = vec4(1, 0.22, 0.24, 0); -uniform vec4 chromaAbParam = vec4(0.996, -0.004, 1.014, 0.0); +uniform vec2 leftLensCenter; +uniform vec2 rightLensCenter; +uniform vec2 leftScreenCenter; +uniform vec2 rightScreenCenter; +uniform vec2 scale; +uniform vec2 scaleIn; +uniform vec4 hmdWarpParam; +uniform vec4 chromaAbParam; void main() { From 20fa362700cd5eefb9eeb196711dfbec5a73f8ab Mon Sep 17 00:00:00 2001 From: raysan5 Date: Wed, 21 Aug 2019 18:59:15 +0200 Subject: [PATCH 039/123] Review comment --- src/core.c | 4 ++-- src/raylib.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core.c b/src/core.c index 400712051..4352a3214 100644 --- a/src/core.c +++ b/src/core.c @@ -1811,10 +1811,10 @@ const char *GetFileName(const char *filePath) return fileName + 1; } -// Get filename string without extension (memory should be freed) +// Get filename string without extension (uses static string) const char *GetFileNameWithoutExt(const char *filePath) { - #define MAX_FILENAMEWITHOUTEXT_LENGTH 64 + #define MAX_FILENAMEWITHOUTEXT_LENGTH 128 static char fileName[MAX_FILENAMEWITHOUTEXT_LENGTH]; memset(fileName, 0, MAX_FILENAMEWITHOUTEXT_LENGTH); diff --git a/src/raylib.h b/src/raylib.h index 6cf6fd23b..0594b3700 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -939,7 +939,7 @@ RLAPI bool IsFileExtension(const char *fileName, const char *ext);// Check file RLAPI bool DirectoryExists(const char *dirPath); // Check if a directory path exists RLAPI const char *GetExtension(const char *fileName); // Get pointer to extension for a filename string RLAPI const char *GetFileName(const char *filePath); // Get pointer to filename for a path string -RLAPI const char *GetFileNameWithoutExt(const char *filePath); // Get filename string without extension (memory should be freed) +RLAPI const char *GetFileNameWithoutExt(const char *filePath); // Get filename string without extension (uses static string) RLAPI const char *GetDirectoryPath(const char *filePath); // Get full path for a given fileName with path (uses static string) RLAPI const char *GetPrevDirectoryPath(const char *dirPath); // Get previous directory path for a given path (uses static string) RLAPI const char *GetWorkingDirectory(void); // Get current working directory (uses static string) From 061294e4d174f684c77d479e4fb461f4bff844ef Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 24 Aug 2019 10:11:32 +0200 Subject: [PATCH 040/123] Update miniaudio.h --- src/external/miniaudio.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/external/miniaudio.h b/src/external/miniaudio.h index 528ff5746..7eb4beeeb 100644 --- a/src/external/miniaudio.h +++ b/src/external/miniaudio.h @@ -1,6 +1,6 @@ /* Audio playback and capture library. Choice of public domain or MIT-0. See license statements at the end of this file. -miniaudio (formerly mini_al) - v0.9.6 - 2019-xx-xx +miniaudio (formerly mini_al) - v0.9.6 - 2019-08-04 David Reid - davidreidsoftware@gmail.com @@ -33361,7 +33361,7 @@ Device /* REVISION HISTORY ================ -v0.9.6 - 2019-xx-xx +v0.9.6 - 2019-08-04 - Add support for loading decoders using a wchar_t string for file paths. - Don't trigger an assert when ma_device_start() is called on a device that is already started. This will now log a warning and return MA_INVALID_OPERATION. The same applies for ma_device_stop(). From e67c842faa67123b65e2e2c5093c8d532f7bf130 Mon Sep 17 00:00:00 2001 From: Ray Date: Sat, 24 Aug 2019 20:03:47 +0200 Subject: [PATCH 041/123] Tweak on atlas size computing Some generated fonts were not fitting the image... --- src/text.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/text.c b/src/text.c index 79e46d0c2..4eb1b4b04 100644 --- a/src/text.c +++ b/src/text.c @@ -586,7 +586,7 @@ Image GenImageFontAtlas(const CharInfo *chars, Rectangle **charRecs, int charsCo *charRecs = NULL; // In case no chars count provided we suppose default of 95 - charsCount = (charsCount > 0) ? charsCount : 95; + charsCount = (charsCount > 0)? charsCount : 95; // NOTE: Rectangles memory is loaded here! Rectangle *recs = (Rectangle *)RL_MALLOC(charsCount*sizeof(Rectangle)); @@ -597,7 +597,7 @@ Image GenImageFontAtlas(const CharInfo *chars, Rectangle **charRecs, int charsCo // so image size would result bigger than default font type float requiredArea = 0; for (int i = 0; i < charsCount; i++) requiredArea += ((chars[i].image.width + 2*padding)*(chars[i].image.height + 2*padding)); - float guessSize = sqrtf(requiredArea)*1.25f; + float guessSize = sqrtf(requiredArea)*1.3f; int imageSize = (int)powf(2, ceilf(logf((float)guessSize)/logf(2))); // Calculate next POT atlas.width = imageSize; // Atlas bitmap width From 8e86f3586d40992d2cd38416d3b67413f42356c1 Mon Sep 17 00:00:00 2001 From: Zatherz Date: Mon, 26 Aug 2019 00:34:54 +0200 Subject: [PATCH 042/123] IsAudioBufferProcessed -> IsAudioStreamProcessed (#951) It appears that you've missed renaming this function here, which makes trying to compile standalone raudio.c error out. --- src/raudio.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/raudio.h b/src/raudio.h index 8bbbe8613..302993a9f 100644 --- a/src/raudio.h +++ b/src/raudio.h @@ -182,7 +182,7 @@ float GetMusicTimePlayed(Music music); // Get current m AudioStream InitAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); // Init audio stream (to stream raw audio pcm data) void UpdateAudioStream(AudioStream stream, const void *data, int samplesCount); // Update audio stream buffers with data void CloseAudioStream(AudioStream stream); // Close audio stream and free memory -bool IsAudioBufferProcessed(AudioStream stream); // Check if any audio stream buffers requires refill +bool IsAudioStreamProcessed(AudioStream stream); // Check if any audio stream buffers requires refill void PlayAudioStream(AudioStream stream); // Play audio stream void PauseAudioStream(AudioStream stream); // Pause audio stream void ResumeAudioStream(AudioStream stream); // Resume audio stream From addbd88833ffc9a2bd1fe33a83e683245324abd0 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 26 Aug 2019 21:09:03 +0200 Subject: [PATCH 043/123] Expose scissor functionality --- src/core.c | 17 +++++++++++++++++ src/raylib.h | 4 ++-- src/rlgl.h | 51 ++++++++++++++++----------------------------------- 3 files changed, 35 insertions(+), 37 deletions(-) diff --git a/src/core.c b/src/core.c index 4352a3214..bc633e8b7 100644 --- a/src/core.c +++ b/src/core.c @@ -1392,6 +1392,23 @@ void EndTextureMode(void) currentHeight = GetScreenHeight(); } +// Begin scissor mode (define screen area for following drawing) +// NOTE: Scissor rec refers to bottom-left corner, we change it to upper-left +void BeginScissorMode(int x, int y, int width, int height) +{ + rlglDraw(); // Force drawing elements + + rlEnableScissorTest(); + rlScissor(x, GetScreenHeight() - (y + height), width, height); +} + +// End scissor mode +void EndScissorMode(void) +{ + rlglDraw(); // Force drawing elements + rlDisableScissorTest(); +} + // Returns a ray trace from mouse position Ray GetMouseRay(Vector2 mousePosition, Camera camera) { diff --git a/src/raylib.h b/src/raylib.h index 0594b3700..56b1f95ea 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -904,6 +904,8 @@ RLAPI void BeginMode3D(Camera3D camera); // Initializes RLAPI void EndMode3D(void); // Ends 3D mode and returns to default 2D orthographic mode RLAPI void BeginTextureMode(RenderTexture2D target); // Initializes render texture for drawing RLAPI void EndTextureMode(void); // Ends drawing to render texture +RLAPI void BeginScissorMode(int x, int y, int width, int height); // Begin scissor mode (define screen area for following drawing) +RLAPI void EndScissorMode(void); // End scissor mode // Screen-space-related functions RLAPI Ray GetMouseRay(Vector2 mousePosition, Camera camera); // Returns a ray trace from mouse position @@ -1324,8 +1326,6 @@ RLAPI void BeginShaderMode(Shader shader); // Beg RLAPI void EndShaderMode(void); // End custom shader drawing (use default shader) RLAPI void BeginBlendMode(int mode); // Begin blending mode (alpha, additive, multiplied) RLAPI void EndBlendMode(void); // End blending mode (reset to default: alpha blending) -RLAPI void BeginScissorMode(int x, int y, int width, int height); // Begin scissor mode (define screen area for following drawing) -RLAPI void EndScissorMode(void); // End scissor mode // VR control functions RLAPI void InitVrSimulator(void); // Init VR simulator for selected device parameters diff --git a/src/rlgl.h b/src/rlgl.h index 9771d30f7..c71033cb0 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -457,6 +457,9 @@ RLAPI void rlEnableDepthTest(void); // Enable depth te RLAPI void rlDisableDepthTest(void); // Disable depth test RLAPI void rlEnableBackfaceCulling(void); // Enable backface culling RLAPI void rlDisableBackfaceCulling(void); // Disable backface culling +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 rlDisableWireMode(void); // Disable wire mode RLAPI void rlDeleteTextures(unsigned int id); // Delete OpenGL texture from GPU @@ -1344,28 +1347,25 @@ void rlDisableRenderTexture(void) } // Enable depth test -void rlEnableDepthTest(void) -{ - glEnable(GL_DEPTH_TEST); -} +void rlEnableDepthTest(void) { glEnable(GL_DEPTH_TEST); } // Disable depth test -void rlDisableDepthTest(void) -{ - glDisable(GL_DEPTH_TEST); -} +void rlDisableDepthTest(void) { glDisable(GL_DEPTH_TEST); } // Enable backface culling -void rlEnableBackfaceCulling(void) -{ - glEnable(GL_CULL_FACE); -} +void rlEnableBackfaceCulling(void) { glEnable(GL_CULL_FACE); } // Disable backface culling -void rlDisableBackfaceCulling(void) -{ - glDisable(GL_CULL_FACE); -} +void rlDisableBackfaceCulling(void) { glDisable(GL_CULL_FACE); } + +// Enable scissor test +RLAPI void rlEnableScissorTest(void) { glEnable(GL_SCISSOR_TEST); } + +// Disable scissor test +RLAPI void rlDisableScissorTest(void) { glDisable(GL_SCISSOR_TEST); } + +// Scissor test +RLAPI void rlScissor(int x, int y, int width, int height) { glScissor(x, y, width, height); } // Enable wire mode void rlEnableWireMode(void) @@ -1698,7 +1698,6 @@ void rlglInit(int width, int height) // Initialize OpenGL default states //---------------------------------------------------------- - // Init state: Depth test glDepthFunc(GL_LEQUAL); // Type of depth testing to apply glDisable(GL_DEPTH_TEST); // Disable depth testing for 2D (only used for 3D) @@ -3524,24 +3523,6 @@ void EndBlendMode(void) BeginBlendMode(BLEND_ALPHA); } -// Begin scissor mode (define screen area for following drawing) -// NOTE: Scissor rec refers to bottom-left corner, we change it to upper-left -void BeginScissorMode(int x, int y, int width, int height) -{ - rlglDraw(); // Force drawing elements - - glEnable(GL_SCISSOR_TEST); - glScissor(x, framebufferHeight - (y + height), width, height); -} - -// End scissor mode -void EndScissorMode(void) -{ - rlglDraw(); // Force drawing elements - - glDisable(GL_SCISSOR_TEST); -} - #if defined(SUPPORT_VR_SIMULATOR) // Init VR simulator for selected device parameters // NOTE: It modifies the global variable: stereoFbo From 37a6f120377e28d5499f130ff346848a3983bee8 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Mon, 26 Aug 2019 21:19:04 +0200 Subject: [PATCH 044/123] Unload model shaders and textures They are not automatically unloaded when unloading the model! --- examples/models/models_animation.c | 2 ++ examples/models/models_material_pbr.c | 4 +++- examples/models/models_mesh_generation.c | 3 ++- examples/models/models_obj_viewer.c | 1 + examples/models/models_skybox.c | 5 ++++- examples/models/models_yaw_pitch_roll.c | 1 + 6 files changed, 13 insertions(+), 3 deletions(-) diff --git a/examples/models/models_animation.c b/examples/models/models_animation.c index 5e7c8cf54..2aa321cf7 100644 --- a/examples/models/models_animation.c +++ b/examples/models/models_animation.c @@ -98,6 +98,8 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- + UnloadTexture(texture); // Unload texture + // Unload model animations data for (int i = 0; i < animsCount; i++) UnloadModelAnimation(anims[i]); RL_FREE(anims); diff --git a/examples/models/models_material_pbr.c b/examples/models/models_material_pbr.c index 8d51eefd2..fea30cf4b 100644 --- a/examples/models/models_material_pbr.c +++ b/examples/models/models_material_pbr.c @@ -100,7 +100,9 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- - UnloadModel(model); // Unload skybox model + // TODO: Unload materials and shaders + + UnloadModel(model); // Unload model CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- diff --git a/examples/models/models_mesh_generation.c b/examples/models/models_mesh_generation.c index 6c0ae6530..eaecb2712 100644 --- a/examples/models/models_mesh_generation.c +++ b/examples/models/models_mesh_generation.c @@ -115,11 +115,12 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- + UnloadTexture(texture); // Unload texture // Unload models data (GPU VRAM) for (int i = 0; i < NUM_MODELS; i++) UnloadModel(models[i]); - CloseWindow(); // Close window and OpenGL context + CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; diff --git a/examples/models/models_obj_viewer.c b/examples/models/models_obj_viewer.c index 3f43e1c89..1d15fdd9c 100644 --- a/examples/models/models_obj_viewer.c +++ b/examples/models/models_obj_viewer.c @@ -116,6 +116,7 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- + UnloadTexture(texture); // Unload texture UnloadModel(model); // Unload model ClearDroppedFiles(); // Clear internal buffers diff --git a/examples/models/models_skybox.c b/examples/models/models_skybox.c index bad29b96a..c2849032d 100644 --- a/examples/models/models_skybox.c +++ b/examples/models/models_skybox.c @@ -89,7 +89,10 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- - UnloadModel(skybox); // Unload skybox model (and textures) + UnloadShader(skybox.materials[0].shader); + UnloadTexture(skybox.materials[0].maps[MAP_CUBEMAP].texture); + + UnloadModel(skybox); // Unload skybox model CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- diff --git a/examples/models/models_yaw_pitch_roll.c b/examples/models/models_yaw_pitch_roll.c index 72529d892..652738113 100644 --- a/examples/models/models_yaw_pitch_roll.c +++ b/examples/models/models_yaw_pitch_roll.c @@ -169,6 +169,7 @@ int main(void) //-------------------------------------------------------------------------------------- // Unload all loaded data + UnloadTexture(model.materials[0].maps[MAP_DIFFUSE].texture); UnloadModel(model); UnloadRenderTexture(framebuffer); From c661cad692f30cba08b1fac4437b08438128ffcc Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 27 Aug 2019 10:56:49 +0200 Subject: [PATCH 045/123] Review all RL_CALLOC() calls All data should be properly initialized by now --- examples/models/models_material_pbr.c | 3 +-- src/models.c | 30 +++++++++++++-------------- src/raudio.c | 2 +- src/rlgl.h | 8 +++---- 4 files changed, 21 insertions(+), 22 deletions(-) diff --git a/examples/models/models_material_pbr.c b/examples/models/models_material_pbr.c index fea30cf4b..0f896f21c 100644 --- a/examples/models/models_material_pbr.c +++ b/examples/models/models_material_pbr.c @@ -100,8 +100,7 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- - // TODO: Unload materials and shaders - + UnloadMaterial(model.materials[0]); // Unload material: shader and textures UnloadModel(model); // Unload model CloseWindow(); // Close window and OpenGL context diff --git a/src/models.c b/src/models.c index 711576da2..a97b8c6bc 100644 --- a/src/models.c +++ b/src/models.c @@ -829,7 +829,7 @@ Material *LoadMaterials(const char *fileName, int *materialCount) Material LoadMaterialDefault(void) { Material material = { 0 }; - material.maps = (MaterialMap *)RL_CALLOC(MAX_MATERIAL_MAPS*sizeof(MaterialMap), 1); + material.maps = (MaterialMap *)RL_CALLOC(MAX_MATERIAL_MAPS, sizeof(MaterialMap)); material.shader = GetShaderDefault(); material.maps[MAP_DIFFUSE].texture = GetTextureDefault(); // White texture (1x1 pixel) @@ -1181,7 +1181,7 @@ bool IsModelAnimationValid(Model model, ModelAnimation anim) Mesh GenMeshPoly(int sides, float radius) { Mesh mesh = { 0 }; - mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); int vertexCount = sides*3; // Vertices definition @@ -1244,7 +1244,7 @@ Mesh GenMeshPoly(int sides, float radius) Mesh GenMeshPlane(float width, float length, int resX, int resZ) { Mesh mesh = { 0 }; - mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); #define CUSTOM_MESH_GEN_PLANE #if defined(CUSTOM_MESH_GEN_PLANE) @@ -1347,7 +1347,7 @@ Mesh GenMeshPlane(float width, float length, int resX, int resZ) mesh.vertices = (float *)RL_MALLOC(plane->ntriangles*3*3*sizeof(float)); mesh.texcoords = (float *)RL_MALLOC(plane->ntriangles*3*2*sizeof(float)); mesh.normals = (float *)RL_MALLOC(plane->ntriangles*3*3*sizeof(float)); - mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int)); + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); mesh.vertexCount = plane->ntriangles*3; mesh.triangleCount = plane->ntriangles; @@ -1379,7 +1379,7 @@ Mesh GenMeshPlane(float width, float length, int resX, int resZ) Mesh GenMeshCube(float width, float height, float length) { Mesh mesh = { 0 }; - mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); #define CUSTOM_MESH_GEN_CUBE #if defined(CUSTOM_MESH_GEN_CUBE) @@ -1545,7 +1545,7 @@ par_shapes_mesh* par_shapes_create_icosahedron(); // 20 sides polyhedron RLAPI Mesh GenMeshSphere(float radius, int rings, int slices) { Mesh mesh = { 0 }; - mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); par_shapes_mesh *sphere = par_shapes_create_parametric_sphere(slices, rings); par_shapes_scale(sphere, radius, radius, radius); @@ -1584,7 +1584,7 @@ RLAPI Mesh GenMeshSphere(float radius, int rings, int slices) RLAPI Mesh GenMeshHemiSphere(float radius, int rings, int slices) { Mesh mesh = { 0 }; - mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); par_shapes_mesh *sphere = par_shapes_create_hemisphere(slices, rings); par_shapes_scale(sphere, radius, radius, radius); @@ -1623,7 +1623,7 @@ RLAPI Mesh GenMeshHemiSphere(float radius, int rings, int slices) Mesh GenMeshCylinder(float radius, float height, int slices) { Mesh mesh = { 0 }; - mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); // 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 @@ -1682,7 +1682,7 @@ Mesh GenMeshCylinder(float radius, float height, int slices) Mesh GenMeshTorus(float radius, float size, int radSeg, int sides) { Mesh mesh = { 0 }; - mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); if (radius > 1.0f) radius = 1.0f; else if (radius < 0.1f) radius = 0.1f; @@ -1725,7 +1725,7 @@ Mesh GenMeshTorus(float radius, float size, int radSeg, int sides) Mesh GenMeshKnot(float radius, float size, int radSeg, int sides) { Mesh mesh = { 0 }; - mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); if (radius > 3.0f) radius = 3.0f; else if (radius < 0.5f) radius = 0.5f; @@ -1769,7 +1769,7 @@ Mesh GenMeshHeightmap(Image heightmap, Vector3 size) #define GRAY_VALUE(c) ((c.r+c.g+c.b)/3) Mesh mesh = { 0 }; - mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); int mapX = heightmap.width; int mapZ = heightmap.height; @@ -1878,7 +1878,7 @@ Mesh GenMeshHeightmap(Image heightmap, Vector3 size) Mesh GenMeshCubicmap(Image cubicmap, Vector3 cubeSize) { Mesh mesh = { 0 }; - mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); Color *cubicmapPixels = GetImageData(cubicmap); @@ -2819,7 +2819,7 @@ static Model LoadOBJ(const char *fileName) mesh.vertices = (float *)RL_MALLOC(mesh.vertexCount*3*sizeof(float)); mesh.texcoords = (float *)RL_MALLOC(mesh.vertexCount*2*sizeof(float)); mesh.normals = (float *)RL_MALLOC(mesh.vertexCount*3*sizeof(float)); - mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); + mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); int vCount = 0; int vtCount = 0; @@ -3089,7 +3089,7 @@ static Model LoadIQM(const char *fileName) model.meshes[i].animVertices = RL_MALLOC(sizeof(float)*model.meshes[i].vertexCount*3); model.meshes[i].animNormals = RL_MALLOC(sizeof(float)*model.meshes[i].vertexCount*3); - model.meshes[i].vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); + model.meshes[i].vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); } // Triangles data processing @@ -3411,7 +3411,7 @@ static Model LoadGLTF(const char *fileName) model.materials = RL_MALLOC(model.materialCount*sizeof(Material)); model.meshMaterial = RL_MALLOC(model.meshCount*sizeof(int)); - for (int i = 0; i < model.meshCount; i++) model.meshes[i].vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO*sizeof(unsigned int), 1); + for (int i = 0; i < model.meshCount; i++) model.meshes[i].vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); for (int i = 0; i < model.materialCount - 1; i++) { diff --git a/src/raudio.c b/src/raudio.c index 576190deb..43e63bc99 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -591,7 +591,7 @@ void SetMasterVolume(float volume) // Create a new audio buffer. Initially filled with silence AudioBuffer *InitAudioBuffer(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, ma_uint32 bufferSizeInFrames, int usage) { - AudioBuffer *audioBuffer = (AudioBuffer *)RL_CALLOC(sizeof(*audioBuffer), 1); + AudioBuffer *audioBuffer = (AudioBuffer *)RL_CALLOC(1, sizeof(AudioBuffer)); audioBuffer->buffer = RL_CALLOC((bufferSizeInFrames*channels*ma_get_bytes_per_sample(format)), 1); if (audioBuffer == NULL) diff --git a/src/rlgl.h b/src/rlgl.h index c71033cb0..ae75a6441 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -1539,7 +1539,7 @@ void rlglInit(int width, int height) // NOTE: We have to duplicate string because glGetString() returns a const string int len = strlen(extensions) + 1; - char *extensionsDup = (char *)RL_CALLOC(len, 1); + char *extensionsDup = (char *)RL_CALLOC(len, sizeof(char)); strcpy(extensionsDup, extensions); extList[numExt] = extensionsDup; @@ -2967,7 +2967,7 @@ char *LoadText(const char *fileName) Shader LoadShader(const char *vsFileName, const char *fsFileName) { Shader shader = { 0 }; - shader.locs = (int *)RL_CALLOC(MAX_SHADER_LOCATIONS*sizeof(int), 1); + shader.locs = (int *)RL_CALLOC(MAX_SHADER_LOCATIONS, sizeof(int)); char *vShaderStr = NULL; char *fShaderStr = NULL; @@ -2988,7 +2988,7 @@ Shader LoadShader(const char *vsFileName, const char *fsFileName) Shader LoadShaderCode(char *vsCode, char *fsCode) { Shader shader = { 0 }; - shader.locs = (int *)RL_CALLOC(MAX_SHADER_LOCATIONS*sizeof(int), 1); + shader.locs = (int *)RL_CALLOC(MAX_SHADER_LOCATIONS, sizeof(int)); // NOTE: All locations must be reseted to -1 (no location) for (int i = 0; i < MAX_SHADER_LOCATIONS; i++) shader.locs[i] = -1; @@ -3861,7 +3861,7 @@ static unsigned int LoadShaderProgram(unsigned int vShaderId, unsigned int fShad static Shader LoadShaderDefault(void) { Shader shader = { 0 }; - shader.locs = (int *)RL_CALLOC(MAX_SHADER_LOCATIONS*sizeof(int), 1); + shader.locs = (int *)RL_CALLOC(MAX_SHADER_LOCATIONS, sizeof(int)); // NOTE: All locations must be reseted to -1 (no location) for (int i = 0; i < MAX_SHADER_LOCATIONS; i++) shader.locs[i] = -1; From 8241dcf80b1177316d377a6f5e16bdee40692c39 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 27 Aug 2019 11:16:43 +0200 Subject: [PATCH 046/123] Review models loading, memory initialization --- src/models.c | 82 +++++++++++++++++++++++++++------------------------- 1 file changed, 43 insertions(+), 39 deletions(-) diff --git a/src/models.c b/src/models.c index a97b8c6bc..581aa1ac0 100644 --- a/src/models.c +++ b/src/models.c @@ -686,14 +686,14 @@ Model LoadModelFromMesh(Mesh mesh) model.transform = MatrixIdentity(); model.meshCount = 1; - model.meshes = (Mesh *)RL_MALLOC(model.meshCount*sizeof(Mesh)); + model.meshes = (Mesh *)RL_CALLOC(model.meshCount, sizeof(Mesh)); model.meshes[0] = mesh; model.materialCount = 1; - model.materials = (Material *)RL_MALLOC(model.materialCount*sizeof(Material)); + model.materials = (Material *)RL_CALLOC(model.materialCount, sizeof(Material)); model.materials[0] = LoadMaterialDefault(); - model.meshMaterial = (int *)RL_MALLOC(model.meshCount*sizeof(int)); + model.meshMaterial = (int *)RL_CALLOC(model.meshCount, sizeof(int)); model.meshMaterial[0] = 0; // First material index return model; @@ -2792,11 +2792,15 @@ static Model LoadOBJ(const char *fileName) // TODO: Support multiple meshes... in the meantime, only one mesh is returned //model.meshCount = meshCount; model.meshCount = 1; - model.meshes = (Mesh *)RL_MALLOC(model.meshCount*sizeof(Mesh)); + model.meshes = (Mesh *)RL_CALLOC(model.meshCount, sizeof(Mesh)); // Init model materials array - model.materialCount = materialCount; - model.materials = (Material *)RL_MALLOC(model.materialCount*sizeof(Material)); + if (materialCount > 0) + { + model.materialCount = materialCount; + model.materials = (Material *)RL_CALLOC(model.materialCount, sizeof(Material)); + } + model.meshMaterial = (int *)RL_CALLOC(model.meshCount, sizeof(int)); /* @@ -2816,9 +2820,9 @@ static Model LoadOBJ(const char *fileName) memset(&mesh, 0, sizeof(Mesh)); mesh.vertexCount = attrib.num_faces*3; mesh.triangleCount = attrib.num_faces; - mesh.vertices = (float *)RL_MALLOC(mesh.vertexCount*3*sizeof(float)); - mesh.texcoords = (float *)RL_MALLOC(mesh.vertexCount*2*sizeof(float)); - mesh.normals = (float *)RL_MALLOC(mesh.vertexCount*3*sizeof(float)); + mesh.vertices = (float *)RL_CALLOC(mesh.vertexCount*3, sizeof(float)); + mesh.texcoords = (float *)RL_CALLOC(mesh.vertexCount*2, sizeof(float)); + mesh.normals = (float *)RL_CALLOC(mesh.vertexCount*3, sizeof(float)); mesh.vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); int vCount = 0; @@ -3066,36 +3070,36 @@ static Model LoadIQM(const char *fileName) model.meshCount = iqm.num_meshes; model.meshes = RL_CALLOC(model.meshCount, sizeof(Mesh)); - char name[MESH_NAME_LENGTH]; + char name[MESH_NAME_LENGTH] = { 0 }; for (int i = 0; i < model.meshCount; i++) { - fseek(iqmFile,iqm.ofs_text+imesh[i].name,SEEK_SET); + fseek(iqmFile, iqm.ofs_text + imesh[i].name, SEEK_SET); fread(name, sizeof(char)*MESH_NAME_LENGTH, 1, iqmFile); // Mesh name not used... model.meshes[i].vertexCount = imesh[i].num_vertexes; - model.meshes[i].vertices = RL_MALLOC(sizeof(float)*model.meshes[i].vertexCount*3); // Default vertex positions - model.meshes[i].normals = RL_MALLOC(sizeof(float)*model.meshes[i].vertexCount*3); // Default vertex normals - model.meshes[i].texcoords = RL_MALLOC(sizeof(float)*model.meshes[i].vertexCount*2); // Default vertex texcoords + model.meshes[i].vertices = RL_CALLOC(model.meshes[i].vertexCount*3, sizeof(float)); // Default vertex positions + model.meshes[i].normals = RL_CALLOC(model.meshes[i].vertexCount*3, sizeof(float)); // Default vertex normals + model.meshes[i].texcoords = RL_CALLOC(model.meshes[i].vertexCount*2, sizeof(float)); // Default vertex texcoords - model.meshes[i].boneIds = RL_MALLOC(sizeof(int)*model.meshes[i].vertexCount*4); // Up-to 4 bones supported! - model.meshes[i].boneWeights = RL_MALLOC(sizeof(float)*model.meshes[i].vertexCount*4); // Up-to 4 bones supported! + model.meshes[i].boneIds = RL_CALLOC(model.meshes[i].vertexCount*4, sizeof(float)); // Up-to 4 bones supported! + model.meshes[i].boneWeights = RL_CALLOC(model.meshes[i].vertexCount*4, sizeof(float)); // Up-to 4 bones supported! model.meshes[i].triangleCount = imesh[i].num_triangles; - model.meshes[i].indices = RL_MALLOC(sizeof(unsigned short)*model.meshes[i].triangleCount*3); + model.meshes[i].indices = RL_CALLOC(model.meshes[i].triangleCount*3, sizeof(unsigned short)); // Animated verted data, what we actually process for rendering // NOTE: Animated vertex should be re-uploaded to GPU (if not using GPU skinning) - model.meshes[i].animVertices = RL_MALLOC(sizeof(float)*model.meshes[i].vertexCount*3); - model.meshes[i].animNormals = RL_MALLOC(sizeof(float)*model.meshes[i].vertexCount*3); + model.meshes[i].animVertices = RL_CALLOC(model.meshes[i].vertexCount*3, sizeof(float)); + model.meshes[i].animNormals = RL_CALLOC(model.meshes[i].vertexCount*3, sizeof(float)); model.meshes[i].vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); } // Triangles data processing - tri = RL_MALLOC(sizeof(IQMTriangle)*iqm.num_triangles); + tri = RL_MALLOC(iqm.num_triangles*sizeof(IQMTriangle)); fseek(iqmFile, iqm.ofs_triangles, SEEK_SET); - fread(tri, sizeof(IQMTriangle)*iqm.num_triangles, 1, iqmFile); + fread(tri, iqm.num_triangles*sizeof(IQMTriangle), 1, iqmFile); for (int m = 0; m < model.meshCount; m++) { @@ -3112,9 +3116,9 @@ static Model LoadIQM(const char *fileName) } // Vertex arrays data processing - va = RL_MALLOC(sizeof(IQMVertexArray)*iqm.num_vertexarrays); + va = RL_MALLOC(iqm.num_vertexarrays*sizeof(IQMVertexArray)); fseek(iqmFile, iqm.ofs_vertexarrays, SEEK_SET); - fread(va, sizeof(IQMVertexArray)*iqm.num_vertexarrays, 1, iqmFile); + fread(va, iqm.num_vertexarrays*sizeof(IQMVertexArray), 1, iqmFile); for (int i = 0; i < iqm.num_vertexarrays; i++) { @@ -3122,9 +3126,9 @@ static Model LoadIQM(const char *fileName) { case IQM_POSITION: { - vertex = RL_MALLOC(sizeof(float)*iqm.num_vertexes*3); + vertex = RL_MALLOC(iqm.num_vertexes*3*sizeof(float)); fseek(iqmFile, va[i].offset, SEEK_SET); - fread(vertex, sizeof(float)*iqm.num_vertexes*3, 1, iqmFile); + fread(vertex, iqm.num_vertexes*3*sizeof(float), 1, iqmFile); for (int m = 0; m < iqm.num_meshes; m++) { @@ -3139,9 +3143,9 @@ static Model LoadIQM(const char *fileName) } break; case IQM_NORMAL: { - normal = RL_MALLOC(sizeof(float)*iqm.num_vertexes*3); + normal = RL_MALLOC(iqm.num_vertexes*3*sizeof(float)); fseek(iqmFile, va[i].offset, SEEK_SET); - fread(normal, sizeof(float)*iqm.num_vertexes*3, 1, iqmFile); + fread(normal, iqm.num_vertexes*3*sizeof(float), 1, iqmFile); for (int m = 0; m < iqm.num_meshes; m++) { @@ -3156,9 +3160,9 @@ static Model LoadIQM(const char *fileName) } break; case IQM_TEXCOORD: { - text = RL_MALLOC(sizeof(float)*iqm.num_vertexes*2); + text = RL_MALLOC(iqm.num_vertexes*2*sizeof(float)); fseek(iqmFile, va[i].offset, SEEK_SET); - fread(text, sizeof(float)*iqm.num_vertexes*2, 1, iqmFile); + fread(text, iqm.num_vertexes*2*sizeof(float), 1, iqmFile); for (int m = 0; m < iqm.num_meshes; m++) { @@ -3172,9 +3176,9 @@ static Model LoadIQM(const char *fileName) } break; case IQM_BLENDINDEXES: { - blendi = RL_MALLOC(sizeof(char)*iqm.num_vertexes*4); + blendi = RL_MALLOC(iqm.num_vertexes*4*sizeof(char)); fseek(iqmFile, va[i].offset, SEEK_SET); - fread(blendi, sizeof(char)*iqm.num_vertexes*4, 1, iqmFile); + fread(blendi, iqm.num_vertexes*4*sizeof(char), 1, iqmFile); for (int m = 0; m < iqm.num_meshes; m++) { @@ -3188,9 +3192,9 @@ static Model LoadIQM(const char *fileName) } break; case IQM_BLENDWEIGHTS: { - blendw = RL_MALLOC(sizeof(unsigned char)*iqm.num_vertexes*4); - fseek(iqmFile,va[i].offset,SEEK_SET); - fread(blendw,sizeof(unsigned char)*iqm.num_vertexes*4,1,iqmFile); + blendw = RL_MALLOC(iqm.num_vertexes*4*sizeof(unsigned char)); + fseek(iqmFile, va[i].offset, SEEK_SET); + fread(blendw, iqm.num_vertexes*4*sizeof(unsigned char), 1, iqmFile); for (int m = 0; m < iqm.num_meshes; m++) { @@ -3206,20 +3210,20 @@ static Model LoadIQM(const char *fileName) } // Bones (joints) data processing - ijoint = RL_MALLOC(sizeof(IQMJoint)*iqm.num_joints); + ijoint = RL_MALLOC(iqm.num_joints*sizeof(IQMJoint)); fseek(iqmFile, iqm.ofs_joints, SEEK_SET); - fread(ijoint, sizeof(IQMJoint)*iqm.num_joints, 1, iqmFile); + fread(ijoint, iqm.num_joints*sizeof(IQMJoint), 1, iqmFile); model.boneCount = iqm.num_joints; - model.bones = RL_MALLOC(sizeof(BoneInfo)*iqm.num_joints); - model.bindPose = RL_MALLOC(sizeof(Transform)*iqm.num_joints); + model.bones = RL_MALLOC(iqm.num_joints*sizeof(BoneInfo)); + model.bindPose = RL_MALLOC(iqm.num_joints*sizeof(Transform)); for (int i = 0; i < iqm.num_joints; i++) { // Bones model.bones[i].parent = ijoint[i].parent; fseek(iqmFile, iqm.ofs_text + ijoint[i].name, SEEK_SET); - fread(model.bones[i].name,sizeof(char)*BONE_NAME_LENGTH, 1, iqmFile); + fread(model.bones[i].name, BONE_NAME_LENGTH*sizeof(char), 1, iqmFile); // Bind pose (base pose) model.bindPose[i].translation.x = ijoint[i].translate[0]; From f565ff018e194bb0ed4501c732ffaace117ba55a Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 27 Aug 2019 11:24:04 +0200 Subject: [PATCH 047/123] REMOVED: FLAG_SHOW_LOGO raylib logo animation has been removed. That funtionality was very restrictive, not configurable at all and hardly ever used, also, it added a coupling dependency of `core` module with `shapes` and `text` modules. --- src/core.c | 132 --------------------------------------------------- src/raylib.h | 2 +- 2 files changed, 1 insertion(+), 133 deletions(-) diff --git a/src/core.c b/src/core.c index bc633e8b7..f07fcde7f 100644 --- a/src/core.c +++ b/src/core.c @@ -426,7 +426,6 @@ static double targetTime = 0.0; // Desired time for one frame, if 0 // Config internal variables //----------------------------------------------------------------------------------- static unsigned int configFlags = 0; // Configuration flags (bit based) -static bool showLogo = false; // Track if showing logo at init is enabled static char **dropFilesPath; // Store dropped files paths as strings static int dropFilesCount = 0; // Count dropped files strings @@ -469,8 +468,6 @@ static int GetGamepadButton(int button); // Get gamepad button ge static int GetGamepadAxis(int axis); // Get gamepad axis generic to all platforms static void PollInputEvents(void); // Register user events -static void LogoAnimation(void); // Plays raylib logo appearing animation - #if defined(PLATFORM_DESKTOP) || defined(PLATFORM_WEB) static void ErrorCallback(int error, const char *description); // GLFW3 Error Callback, runs on GLFW3 error static void KeyCallback(GLFWwindow *window, int key, int scancode, int action, int mods); // GLFW3 Keyboard Callback, runs on key pressed @@ -700,13 +697,6 @@ void InitWindow(int width, int height, const char *title) mousePosition.x = (float)screenWidth/2.0f; mousePosition.y = (float)screenHeight/2.0f; - - // raylib logo appearing animation (if enabled) - if (showLogo) - { - SetTargetFPS(60); - LogoAnimation(); - } #endif // PLATFORM_ANDROID } @@ -1703,7 +1693,6 @@ void SetConfigFlags(unsigned int flags) { configFlags = flags; - if (configFlags & FLAG_SHOW_LOGO) showLogo = true; if (configFlags & FLAG_FULLSCREEN_MODE) fullscreen = true; if (configFlags & FLAG_WINDOW_ALWAYS_RUN) alwaysRun = true; } @@ -3974,13 +3963,6 @@ static void AndroidCommandCallback(struct android_app *app, int32_t cmd) } } */ - - // raylib logo appearing animation (if enabled) - if (showLogo) - { - SetTargetFPS(60); // Not required on Android - LogoAnimation(); - } } } } break; @@ -5028,117 +5010,3 @@ static void *GamepadThread(void *arg) return NULL; } #endif // PLATFORM_RPI - -// Plays raylib logo appearing animation -static void LogoAnimation(void) -{ -#if !defined(PLATFORM_WEB) && !defined(PLATFORM_UWP) - int logoPositionX = screenWidth/2 - 128; - int logoPositionY = screenHeight/2 - 128; - - int framesCounter = 0; - int lettersCount = 0; - - int topSideRecWidth = 16; - int leftSideRecHeight = 16; - - int bottomSideRecWidth = 16; - int rightSideRecHeight = 16; - - int state = 0; // Tracking animation states (State Machine) - float alpha = 1.0f; // Useful for fading - - while (!WindowShouldClose() && (state != 4)) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - if (state == 0) // State 0: Small box blinking - { - framesCounter++; - - if (framesCounter == 84) - { - state = 1; - framesCounter = 0; // Reset counter... will be used later... - } - } - else if (state == 1) // State 1: Top and left bars growing - { - topSideRecWidth += 4; - leftSideRecHeight += 4; - - if (topSideRecWidth == 256) state = 2; - } - else if (state == 2) // State 2: Bottom and right bars growing - { - bottomSideRecWidth += 4; - rightSideRecHeight += 4; - - if (bottomSideRecWidth == 256) state = 3; - } - else if (state == 3) // State 3: Letters appearing (one by one) - { - framesCounter++; - - if (framesCounter/12) // Every 12 frames, one more letter! - { - lettersCount++; - framesCounter = 0; - } - - if (lettersCount >= 10) // When all letters have appeared, just fade out everything - { - alpha -= 0.02f; - - if (alpha <= 0.0f) - { - alpha = 0.0f; - state = 4; - } - } - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - if (state == 0) - { - if ((framesCounter/12)%2) DrawRectangle(logoPositionX, logoPositionY, 16, 16, BLACK); - } - else if (state == 1) - { - DrawRectangle(logoPositionX, logoPositionY, topSideRecWidth, 16, BLACK); - DrawRectangle(logoPositionX, logoPositionY, 16, leftSideRecHeight, BLACK); - } - else if (state == 2) - { - DrawRectangle(logoPositionX, logoPositionY, topSideRecWidth, 16, BLACK); - DrawRectangle(logoPositionX, logoPositionY, 16, leftSideRecHeight, BLACK); - - DrawRectangle(logoPositionX + 240, logoPositionY, 16, rightSideRecHeight, BLACK); - DrawRectangle(logoPositionX, logoPositionY + 240, bottomSideRecWidth, 16, BLACK); - } - else if (state == 3) - { - DrawRectangle(logoPositionX, logoPositionY, topSideRecWidth, 16, Fade(BLACK, alpha)); - DrawRectangle(logoPositionX, logoPositionY + 16, 16, leftSideRecHeight - 32, Fade(BLACK, alpha)); - - DrawRectangle(logoPositionX + 240, logoPositionY + 16, 16, rightSideRecHeight - 32, Fade(BLACK, alpha)); - DrawRectangle(logoPositionX, logoPositionY + 240, bottomSideRecWidth, 16, Fade(BLACK, alpha)); - - DrawRectangle(screenWidth/2 - 112, screenHeight/2 - 112, 224, 224, Fade(RAYWHITE, alpha)); - - DrawText(TextSubtext("raylib", 0, lettersCount), screenWidth/2 - 44, screenHeight/2 + 48, 50, Fade(BLACK, alpha)); - } - - EndDrawing(); - //---------------------------------------------------------------------------------- - } -#endif - - showLogo = false; // Prevent for repeating when reloading window (Android) -} diff --git a/src/raylib.h b/src/raylib.h index 56b1f95ea..2e664fba8 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -460,7 +460,7 @@ typedef struct VrDeviceInfo { // System config flags // NOTE: Used for bit masks typedef enum { - FLAG_SHOW_LOGO = 1, // Set to show raylib logo at startup + FLAG_RESERVED = 1, // Reserved FLAG_FULLSCREEN_MODE = 2, // Set to run program in fullscreen FLAG_WINDOW_RESIZABLE = 4, // Set to allow resizable window FLAG_WINDOW_UNDECORATED = 8, // Set to disable window decoration (frame and buttons) From e2183f0b9968d9cbff0cce9db63dda2c5c96fb32 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 27 Aug 2019 12:10:09 +0200 Subject: [PATCH 048/123] Update version in case no config.h is being used --- src/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core.c b/src/core.c index f07fcde7f..5ec7d3028 100644 --- a/src/core.c +++ b/src/core.c @@ -108,7 +108,7 @@ #if !defined(EXTERNAL_CONFIG_FLAGS) #include "config.h" // Defines module configuration flags #else - #define RAYLIB_VERSION "2.5" + #define RAYLIB_VERSION "2.6-dev" #endif #if (defined(__linux__) || defined(PLATFORM_WEB)) && _POSIX_C_SOURCE < 199309L From 41732bebe8bd048cb44e5b6a24f8e2cbd8af7120 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 27 Aug 2019 12:22:54 +0200 Subject: [PATCH 049/123] Formatting tweak --- src/core.c | 4 ++-- src/rlgl.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core.c b/src/core.c index 5ec7d3028..c025b2dea 100644 --- a/src/core.c +++ b/src/core.c @@ -4293,8 +4293,8 @@ static EM_BOOL EmscriptenGamepadCallback(int eventType, const EmscriptenGamepadE eventType != 0? emscripten_event_type_to_string(eventType) : "Gamepad state", gamepadEvent->timestamp, gamepadEvent->connected, gamepadEvent->index, gamepadEvent->numAxes, gamepadEvent->numButtons, gamepadEvent->id, gamepadEvent->mapping); - for(int i = 0; i < gamepadEvent->numAxes; ++i) TraceLog(LOG_DEBUG, "Axis %d: %g", i, gamepadEvent->axis[i]); - for(int i = 0; i < gamepadEvent->numButtons; ++i) TraceLog(LOG_DEBUG, "Button %d: Digital: %d, Analog: %g", i, gamepadEvent->digitalButton[i], gamepadEvent->analogButton[i]); + for (int i = 0; i < gamepadEvent->numAxes; ++i) TraceLog(LOG_DEBUG, "Axis %d: %g", i, gamepadEvent->axis[i]); + for (int i = 0; i < gamepadEvent->numButtons; ++i) TraceLog(LOG_DEBUG, "Button %d: Digital: %d, Analog: %g", i, gamepadEvent->digitalButton[i], gamepadEvent->analogButton[i]); */ if ((gamepadEvent->connected) && (gamepadEvent->index < MAX_GAMEPADS)) gamepadReady[gamepadEvent->index] = true; diff --git a/src/rlgl.h b/src/rlgl.h index ae75a6441..85d60fe19 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -3024,7 +3024,7 @@ Shader LoadShaderCode(char *vsCode, char *fsCode) glGetProgramiv(shader.id, GL_ACTIVE_UNIFORMS, &uniformCount); - for(int i = 0; i < uniformCount; i++) + for (int i = 0; i < uniformCount; i++) { int namelen = -1; int num = -1; From 37bb8e9554d49030f888092b9615aff08b07438f Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 27 Aug 2019 12:23:30 +0200 Subject: [PATCH 050/123] UpdateModelAnimation() - Added security check --- src/models.c | 128 +++++++++++++++++++++++++-------------------------- 1 file changed, 63 insertions(+), 65 deletions(-) diff --git a/src/models.c b/src/models.c index 581aa1ac0..b3a50f403 100644 --- a/src/models.c +++ b/src/models.c @@ -919,7 +919,7 @@ ModelAnimation *LoadModelAnimations(const char *filename, int *animCount) TraceLog(LOG_ERROR, "[%s] Unable to open file", filename); } - // header + // Read IQM header fread(&iqm, sizeof(IQMHeader), 1, iqmFile); if (strncmp(iqm.magic, IQM_MAGIC, sizeof(IQM_MAGIC))) @@ -934,34 +934,30 @@ ModelAnimation *LoadModelAnimations(const char *filename, int *animCount) fclose(iqmFile); } - // bones - IQMPose *poses; - poses = RL_MALLOC(sizeof(IQMPose)*iqm.num_poses); + // Get bones data + IQMPose *poses = RL_MALLOC(iqm.num_poses*sizeof(IQMPose)); fseek(iqmFile, iqm.ofs_poses, SEEK_SET); - fread(poses, sizeof(IQMPose)*iqm.num_poses, 1, iqmFile); + fread(poses, iqm.num_poses*sizeof(IQMPose), 1, iqmFile); - // animations + // Get animations data *animCount = iqm.num_anims; IQMAnim *anim = RL_MALLOC(iqm.num_anims*sizeof(IQMAnim)); fseek(iqmFile, iqm.ofs_anims, SEEK_SET); fread(anim, iqm.num_anims*sizeof(IQMAnim), 1, iqmFile); ModelAnimation *animations = RL_MALLOC(iqm.num_anims*sizeof(ModelAnimation)); - // frameposes - unsigned short *framedata = RL_MALLOC(sizeof(unsigned short)*iqm.num_frames*iqm.num_framechannels); + unsigned short *framedata = RL_MALLOC(iqm.num_frames*iqm.num_framechannels*sizeof(unsigned short)); fseek(iqmFile, iqm.ofs_frames, SEEK_SET); - fread(framedata, sizeof(unsigned short)*iqm.num_frames*iqm.num_framechannels, 1, iqmFile); + fread(framedata, iqm.num_frames*iqm.num_framechannels*sizeof(unsigned short), 1, iqmFile); - for(int a=0;a= anim.frameCount) frame = frame%anim.frameCount; - - for (int m = 0; m < model.meshCount; m++) + if ((anim.frameCount > 0) && (anim.bones != NULL) && (anim.framePoses != NULL)) { - Vector3 animVertex = { 0 }; - Vector3 animNormal = { 0 }; + if (frame >= anim.frameCount) frame = frame%anim.frameCount; - Vector3 inTranslation = { 0 }; - Quaternion inRotation = { 0 }; - Vector3 inScale = { 0 }; - - Vector3 outTranslation = { 0 }; - Quaternion outRotation = { 0 }; - Vector3 outScale = { 0 }; - - int vCounter = 0; - int boneCounter = 0; - int boneId = 0; - - for (int i = 0; i < model.meshes[m].vertexCount; i++) + for (int m = 0; m < model.meshCount; m++) { - boneId = model.meshes[m].boneIds[boneCounter]; - inTranslation = model.bindPose[boneId].translation; - inRotation = model.bindPose[boneId].rotation; - inScale = model.bindPose[boneId].scale; - outTranslation = anim.framePoses[frame][boneId].translation; - outRotation = anim.framePoses[frame][boneId].rotation; - outScale = anim.framePoses[frame][boneId].scale; + Vector3 animVertex = { 0 }; + Vector3 animNormal = { 0 }; - // Vertices processing - // NOTE: We use meshes.vertices (default vertex position) to calculate meshes.animVertices (animated vertex position) - animVertex = (Vector3){ model.meshes[m].vertices[vCounter], model.meshes[m].vertices[vCounter + 1], model.meshes[m].vertices[vCounter + 2] }; - animVertex = Vector3MultiplyV(animVertex, outScale); - animVertex = Vector3Subtract(animVertex, inTranslation); - animVertex = Vector3RotateByQuaternion(animVertex, QuaternionMultiply(outRotation, QuaternionInvert(inRotation))); - animVertex = Vector3Add(animVertex, outTranslation); - model.meshes[m].animVertices[vCounter] = animVertex.x; - model.meshes[m].animVertices[vCounter + 1] = animVertex.y; - model.meshes[m].animVertices[vCounter + 2] = animVertex.z; + Vector3 inTranslation = { 0 }; + Quaternion inRotation = { 0 }; + Vector3 inScale = { 0 }; - // Normals processing - // NOTE: We use meshes.baseNormals (default normal) to calculate meshes.normals (animated normals) - animNormal = (Vector3){ model.meshes[m].normals[vCounter], model.meshes[m].normals[vCounter + 1], model.meshes[m].normals[vCounter + 2] }; - animNormal = Vector3RotateByQuaternion(animNormal, QuaternionMultiply(outRotation, QuaternionInvert(inRotation))); - model.meshes[m].animNormals[vCounter] = animNormal.x; - model.meshes[m].animNormals[vCounter + 1] = animNormal.y; - model.meshes[m].animNormals[vCounter + 2] = animNormal.z; - vCounter += 3; + Vector3 outTranslation = { 0 }; + Quaternion outRotation = { 0 }; + Vector3 outScale = { 0 }; - boneCounter += 4; + int vCounter = 0; + int boneCounter = 0; + int boneId = 0; + + for (int i = 0; i < model.meshes[m].vertexCount; i++) + { + boneId = model.meshes[m].boneIds[boneCounter]; + inTranslation = model.bindPose[boneId].translation; + inRotation = model.bindPose[boneId].rotation; + inScale = model.bindPose[boneId].scale; + outTranslation = anim.framePoses[frame][boneId].translation; + outRotation = anim.framePoses[frame][boneId].rotation; + outScale = anim.framePoses[frame][boneId].scale; + + // Vertices processing + // NOTE: We use meshes.vertices (default vertex position) to calculate meshes.animVertices (animated vertex position) + animVertex = (Vector3){ model.meshes[m].vertices[vCounter], model.meshes[m].vertices[vCounter + 1], model.meshes[m].vertices[vCounter + 2] }; + animVertex = Vector3MultiplyV(animVertex, outScale); + animVertex = Vector3Subtract(animVertex, inTranslation); + animVertex = Vector3RotateByQuaternion(animVertex, QuaternionMultiply(outRotation, QuaternionInvert(inRotation))); + animVertex = Vector3Add(animVertex, outTranslation); + model.meshes[m].animVertices[vCounter] = animVertex.x; + model.meshes[m].animVertices[vCounter + 1] = animVertex.y; + model.meshes[m].animVertices[vCounter + 2] = animVertex.z; + + // Normals processing + // NOTE: We use meshes.baseNormals (default normal) to calculate meshes.normals (animated normals) + animNormal = (Vector3){ model.meshes[m].normals[vCounter], model.meshes[m].normals[vCounter + 1], model.meshes[m].normals[vCounter + 2] }; + animNormal = Vector3RotateByQuaternion(animNormal, QuaternionMultiply(outRotation, QuaternionInvert(inRotation))); + model.meshes[m].animNormals[vCounter] = animNormal.x; + model.meshes[m].animNormals[vCounter + 1] = animNormal.y; + model.meshes[m].animNormals[vCounter + 2] = animNormal.z; + vCounter += 3; + + boneCounter += 4; + } + + // Upload new vertex data to GPU for model drawing + rlUpdateBuffer(model.meshes[m].vboId[0], model.meshes[m].animVertices, model.meshes[m].vertexCount*3*sizeof(float)); // Update vertex position + rlUpdateBuffer(model.meshes[m].vboId[2], model.meshes[m].animVertices, model.meshes[m].vertexCount*3*sizeof(float)); // Update vertex normals } - - // Upload new vertex data to GPU for model drawing - rlUpdateBuffer(model.meshes[m].vboId[0], model.meshes[m].animVertices, model.meshes[m].vertexCount*3*sizeof(float)); // Update vertex position - rlUpdateBuffer(model.meshes[m].vboId[2], model.meshes[m].animVertices, model.meshes[m].vertexCount*3*sizeof(float)); // Update vertex normals } } From 97101d1003b182af354530c1447a1ee67af47e8c Mon Sep 17 00:00:00 2001 From: arvyy Date: Tue, 27 Aug 2019 14:05:28 +0300 Subject: [PATCH 051/123] Add screen->world and world->screen functions for 2D; add extended camera2D example (#947) --- examples/core/core_2d_camera_ext.c | 284 +++++++++++++++++++++++++++++ src/core.c | 59 +++--- src/raylib.h | 3 + 3 files changed, 324 insertions(+), 22 deletions(-) create mode 100644 examples/core/core_2d_camera_ext.c diff --git a/examples/core/core_2d_camera_ext.c b/examples/core/core_2d_camera_ext.c new file mode 100644 index 000000000..330e39ef9 --- /dev/null +++ b/examples/core/core_2d_camera_ext.c @@ -0,0 +1,284 @@ +/******************************************************************************************* +* +* raylib [core] example - 2d camera extended +* +* This example has been created using raylib 1.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2016 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" +#include "raymath.h" + +#define G 400 +#define PLAYER_JUMP_SPD 350.f +#define PLAYER_HOR_SPD 200.f + +typedef struct Player { + Vector2 pos; + float vel; + int canJump; +} Player; + +typedef struct EnvItem { + Rectangle rect; + int blocking; + Color color; +} EnvItem; + +void updateCameraCenter( + float delta, + Camera2D *camera, + Player *player, + EnvItem *envItems, + int envItemsLength, + int width, int height +) { + camera->offset = (Vector2){ width/2, height/2 }; + camera->target = player->pos; +} + +void updateCameraCenterInsideMap( + float delta, + Camera2D *camera, + Player *player, + EnvItem *envItems, + int envItemsLength, + int width, int height +) { + camera->target = player->pos; + camera->offset = (Vector2){ width/2, height/2 }; + float minX = 1000, minY = 1000, maxX = -1000, maxY = -1000; + for (int i = 0; i < envItemsLength; i++) { + EnvItem *ei = envItems + i; + minX = fminf(ei->rect.x, minX); + maxX = fmaxf(ei->rect.x + ei->rect.width, maxX); + minY = fminf(ei->rect.y, minY); + maxY = fmaxf(ei->rect.y + ei->rect.height, maxY); + } + Vector2 max = GetWorldToScreen2D((Vector2){ maxX, maxY }, *camera); + Vector2 min = GetWorldToScreen2D((Vector2){ minX, minY }, *camera); + if (max.x < width) { + camera->offset.x = width - (max.x - width/2); + } + if (max.y < height) { + camera->offset.y = height - (max.y - height/2); + } + if (min.x > 0) { + camera->offset.x = width/2 - min.x; + } + if (min.y > 0) { + camera->offset.y = height/2- min.y; + } +} + +void updateCameraCenterSmoothFollow( + float delta, + Camera2D *camera, + Player *player, + EnvItem *envItems, + int envItemsLength, + int width, int height +) { + static float minSpeed = 30; + static float minEffectLength = 10; + static float fractionSpeed = 0.8f; + camera->offset = (Vector2){ width/2, height/2 }; + Vector2 diff = Vector2Subtract(player->pos, camera->target); + float length = Vector2Length(diff); + if (length > minEffectLength) { + float speed = fmaxf(fractionSpeed * length, minSpeed); + camera->target = Vector2Add(camera->target, Vector2Scale(diff, speed*delta/length)); + } +} + +void updateCameraEvenOutOnLanding( + float delta, + Camera2D *camera, + Player *player, + EnvItem *envItems, + int envItemsLength, + int width, int height +) { + static float evenOutSpeed = 700; + static int eveningOut = false; + static float evenOutTarget; + camera->offset = (Vector2){ width/2, height/2 }; + camera->target.x = player->pos.x; + if (eveningOut) { + if (evenOutTarget > camera->target.y) { + camera->target.y += evenOutSpeed * delta; + if (camera->target.y > evenOutTarget) { + camera->target.y = evenOutTarget; + eveningOut = 0; + } + } else { + camera->target.y -= evenOutSpeed * delta; + if (camera->target.y < evenOutTarget) { + camera->target.y = evenOutTarget; + eveningOut = 0; + } + } + } else { + if (player->canJump && + player->vel == 0 && + player->pos.y != camera->target.y + ) { + eveningOut = 1; + evenOutTarget = player->pos.y; + } + } +} + +void updateCameraPlayerBoundsPush( + float delta, + Camera2D *camera, + Player *player, + EnvItem *envItems, + int envItemsLength, + int width, int height +) { + static Vector2 bbox = { 0.2f, 0.2f }; + + Vector2 bboxWorldMin = GetScreenToWorld2D((Vector2){ (1 - bbox.x) * 0.5 * width, (1 - bbox.y) * 0.5 * height }, *camera); + Vector2 bboxWorldMax = GetScreenToWorld2D((Vector2){ (1 + bbox.x) * 0.5 * width, (1 + bbox.y) * 0.5 * height }, *camera); + camera->offset = (Vector2){ (1 - bbox.x) * 0.5 * width, (1 - bbox.y) * 0.5 * height }; + + if (player->pos.x < bboxWorldMin.x) { + camera->target.x = player->pos.x; + } + if (player->pos.y < bboxWorldMin.y) { + camera->target.y = player->pos.y; + } + if (player->pos.x > bboxWorldMax.x) { + camera->target.x = bboxWorldMin.x + (player->pos.x - bboxWorldMax.x); + } + if (player->pos.y > bboxWorldMax.y) { + camera->target.y = bboxWorldMin.y + (player->pos.y - bboxWorldMax.y); + } +} + + +void updatePlayer(float delta, Player *player, EnvItem *envItems, int envItemsLength) { + if (IsKeyDown(KEY_LEFT)) player->pos.x -= PLAYER_HOR_SPD*delta; + if (IsKeyDown(KEY_RIGHT)) player->pos.x += PLAYER_HOR_SPD*delta; + if (IsKeyDown(KEY_SPACE) && player->canJump) { + player->vel = -PLAYER_JUMP_SPD; + player->canJump = 0; + } + + int hitObstacle = 0; + for (int i = 0; i < envItemsLength; i++) { + EnvItem *ei = envItems + i; + Vector2 *p = &(player->pos); + if (ei->blocking && + ei->rect.x <= p->x && + ei->rect.x + ei->rect.width >= p->x && + ei->rect.y >= p->y && + ei->rect.y < p->y + player->vel * delta) + { + hitObstacle = 1; + player->vel = 0.0f; + p->y = ei->rect.y; + } + } + if (!hitObstacle) { + player->pos.y += player->vel * delta; + player->vel += G * delta; + player->canJump = 0; + } else { + player->canJump = 1; + } +} + +void renderWorld(Player *player, EnvItem *envItems, int envItemsLength) { + for (int i = 0; i < envItemsLength; i++) { + DrawRectangleRec(envItems[i].rect, envItems[i].color); + } + Rectangle playerRect = { player->pos.x - 20, player->pos.y - 40, 40, 40 }; + DrawRectangleRec(playerRect, RED); +} + +int main(void) +{ + const int screenWidth = 800; + const int screenHeight = 450; + InitWindow(screenWidth, screenHeight, "raylib [core] example - 2d camera"); + SetTargetFPS(60); + + Player player; + player.pos = (Vector2){ 400, 280 }; + player.vel = 0; + player.canJump = 0; + EnvItem envItems[] = { + {{ 0, 0, 1000, 400 }, 0, LIGHTGRAY }, + {{ 0, 400, 1000, 200 }, 1, GRAY }, + {{ 300, 200, 400, 10 }, 1, GRAY }, + {{ 250, 300, 100, 10 }, 1, GRAY }, + {{ 650, 300, 100, 10 }, 1, GRAY } + }; + int envItemsLength = sizeof(envItems) / sizeof (envItems[0]); + + Camera2D camera = { 0 }; + camera.target = player.pos; + camera.offset = (Vector2){ screenWidth/2, screenHeight/2 }; + camera.rotation = 0.0f; + camera.zoom = 1.0f; + + int cameraOption = 0; + void (*cameraUpdaters[])(float, Camera2D*, Player*, EnvItem*, int, int, int) = { + updateCameraCenter, + updateCameraCenterInsideMap, + updateCameraCenterSmoothFollow, + updateCameraEvenOutOnLanding, + updateCameraPlayerBoundsPush + }; + int cameraUpdatersLength = sizeof(cameraUpdaters) / sizeof(cameraUpdaters[0]); + char* cameraDescriptions[] = { + "Follow player center", + "Follow player center, but clamp to map edges", + "Follow player center; smoothed", + "Follow player center horizontally; updateplayer center vertically after landing", + "Player push camera on getting too close to screen edge" + }; + + while (!WindowShouldClose()) { + float delta = GetFrameTime(); + updatePlayer(delta, &player, envItems, envItemsLength); + + camera.zoom += ((float)GetMouseWheelMove()*0.05f); + if (camera.zoom > 3.0f) camera.zoom = 3.0f; + else if (camera.zoom < 0.25f) camera.zoom = 0.25f; + if (IsKeyPressed(KEY_R)) + { + camera.zoom = 1.0f; + } + + if (IsKeyPressed(KEY_C)) { + cameraOption = (cameraOption + 1) % cameraUpdatersLength; + } + cameraUpdaters[cameraOption](delta, &camera, &player, envItems, envItemsLength, screenWidth, screenHeight); + + BeginDrawing(); + ClearBackground(RAYWHITE); + + BeginMode2D(camera); + renderWorld(&player, envItems, envItemsLength); + EndMode2D(); + + DrawText("Controls:", 20, 20, 10, BLACK); + DrawText("- Right/Left to move", 40, 40, 10, DARKGRAY); + DrawText("- Space to jump", 40, 60, 10, DARKGRAY); + DrawText("- Mouse Wheel to Zoom in-out, R to reset zoom", 40, 80, 10, DARKGRAY); + DrawText("- C to change camera mode", 40, 100, 10, DARKGRAY); + DrawText("Current camera mode:", 20, 120, 10, BLACK); + DrawText(cameraDescriptions[cameraOption], 40, 140, 10, DARKGRAY); + EndDrawing(); + } + + CloseWindow(); // Close window and OpenGL context + + return 0; +} diff --git a/src/core.c b/src/core.c index c025b2dea..987f6e678 100644 --- a/src/core.c +++ b/src/core.c @@ -1250,28 +1250,7 @@ void BeginMode2D(Camera2D camera) rlLoadIdentity(); // Reset current matrix (MODELVIEW) rlMultMatrixf(MatrixToFloat(screenScaling)); // Apply screen scaling if required - // The camera in world-space is set by - // 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. - // 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. - // Since (A*B*C)' = C'*B'*A', the modelview is - // 1. Move to offset - // 2. Rotate and Scale - // 3. Move by -target - Matrix matOrigin = MatrixTranslate(-camera.target.x, -camera.target.y, 0.0f); - Matrix matRotation = MatrixRotate((Vector3){ 0.0f, 0.0f, 1.0f }, camera.rotation*DEG2RAD); - Matrix matScale = MatrixScale(camera.zoom, camera.zoom, 1.0f); - Matrix matTranslation = MatrixTranslate(camera.offset.x, camera.offset.y, 0.0f); - - Matrix matTransform = MatrixMultiply(MatrixMultiply(matOrigin, MatrixMultiply(matScale, matRotation)), matTranslation); - - rlMultMatrixf(MatrixToFloat(matTransform)); // Apply transformation to modelview + rlMultMatrixf(MatrixToFloat(GetCamera2DMatrix(camera))); // Apply transformation to modelview } // Ends 2D mode with custom camera @@ -1502,6 +1481,42 @@ Matrix GetCameraMatrix(Camera camera) return MatrixLookAt(camera.position, camera.target, camera.up); } + +Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera) { + Matrix m = MatrixInvert(GetCamera2DMatrix(camera)); + Vector3 transform = Vector3Transform((Vector3){position.x, position.y, 0}, m); + return (Vector2){transform.x, transform.y}; +} + +Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera) { + Matrix m = GetCamera2DMatrix(camera); + Vector3 transform = Vector3Transform((Vector3){position.x, position.y, 0}, m); + return (Vector2){transform.x, transform.y}; +} + +Matrix GetCamera2DMatrix(Camera2D camera) { + // The camera in world-space is set by + // 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. + // 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. + // Since (A*B*C)' = C'*B'*A', the modelview is + // 1. Move to offset + // 2. Rotate and Scale + // 3. Move by -target + Matrix matOrigin = MatrixTranslate(-camera.target.x, -camera.target.y, 0.0f); + Matrix matRotation = MatrixRotate((Vector3){ 0.0f, 0.0f, 1.0f }, camera.rotation*DEG2RAD); + Matrix matScale = MatrixScale(camera.zoom, camera.zoom, 1.0f); + Matrix matTranslation = MatrixTranslate(camera.offset.x, camera.offset.y, 0.0f); + Matrix matTransform = MatrixMultiply(MatrixMultiply(matOrigin, MatrixMultiply(matScale, matRotation)), matTranslation); + return matTransform; +} + // Set target FPS (maximum) void SetTargetFPS(int fps) { diff --git a/src/raylib.h b/src/raylib.h index 2e664fba8..4dcf78ac8 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -911,6 +911,9 @@ RLAPI void EndScissorMode(void); // End scissor RLAPI Ray GetMouseRay(Vector2 mousePosition, Camera camera); // Returns a ray trace from mouse position RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Returns the screen space position for a 3d world space position RLAPI Matrix GetCameraMatrix(Camera camera); // Returns camera transform matrix (view matrix) +RLAPI Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera); +RLAPI Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera); +RLAPI Matrix GetCamera2DMatrix(Camera2D camera); // Timing-related functions RLAPI void SetTargetFPS(int fps); // Set target FPS (maximum) From 4e43192561f167b7b5c4fb92998c656b4a432a79 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 27 Aug 2019 13:15:56 +0200 Subject: [PATCH 052/123] Review latest PR --- src/core.c | 93 ++++++++++++++++++++++++++++++---------------------- src/raylib.h | 8 ++--- 2 files changed, 57 insertions(+), 44 deletions(-) diff --git a/src/core.c b/src/core.c index 987f6e678..9e26a6399 100644 --- a/src/core.c +++ b/src/core.c @@ -1248,9 +1248,12 @@ void BeginMode2D(Camera2D camera) rlglDraw(); // Draw Buffers (Only OpenGL 3+ and ES2) rlLoadIdentity(); // Reset current matrix (MODELVIEW) - rlMultMatrixf(MatrixToFloat(screenScaling)); // Apply screen scaling if required - - rlMultMatrixf(MatrixToFloat(GetCamera2DMatrix(camera))); // Apply transformation to modelview + + // Apply screen scaling if required + rlMultMatrixf(MatrixToFloat(screenScaling)); + + // Apply 2d camera transformation to modelview + rlMultMatrixf(MatrixToFloat(GetCameraMatrix2D(camera))); } // Ends 2D mode with custom camera @@ -1433,6 +1436,40 @@ Ray GetMouseRay(Vector2 mousePosition, Camera camera) return ray; } +// Get transform matrix for camera +Matrix GetCameraMatrix(Camera camera) +{ + return MatrixLookAt(camera.position, camera.target, camera.up); +} + +// Returns camera 2d transform matrix +Matrix GetCameraMatrix2D(Camera2D camera) +{ + Matrix matTransform = { 0 }; + // The camera in world-space is set by + // 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. + // 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. + // Since (A*B*C)' = C'*B'*A', the modelview is + // 1. Move to offset + // 2. Rotate and Scale + // 3. Move by -target + Matrix matOrigin = MatrixTranslate(-camera.target.x, -camera.target.y, 0.0f); + Matrix matRotation = MatrixRotate((Vector3){ 0.0f, 0.0f, 1.0f }, camera.rotation*DEG2RAD); + Matrix matScale = MatrixScale(camera.zoom, camera.zoom, 1.0f); + Matrix matTranslation = MatrixTranslate(camera.offset.x, camera.offset.y, 0.0f); + + matTransform = MatrixMultiply(MatrixMultiply(matOrigin, MatrixMultiply(matScale, matRotation)), matTranslation); + + return matTransform; +} + // Returns the screen space position from a 3d world space position Vector2 GetWorldToScreen(Vector3 position, Camera camera) { @@ -1475,46 +1512,22 @@ Vector2 GetWorldToScreen(Vector3 position, Camera camera) return screenPosition; } -// Get transform matrix for camera -Matrix GetCameraMatrix(Camera camera) +// Returns the screen space position for a 2d camera world space position +Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera) { - return MatrixLookAt(camera.position, camera.target, camera.up); + Matrix matCamera = GetCameraMatrix2D(camera); + Vector3 transform = Vector3Transform((Vector3){ position.x, position.y, 0 }, matCamera); + + return (Vector2){ transform.x, transform.y }; } - -Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera) { - Matrix m = MatrixInvert(GetCamera2DMatrix(camera)); - Vector3 transform = Vector3Transform((Vector3){position.x, position.y, 0}, m); - return (Vector2){transform.x, transform.y}; -} - -Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera) { - Matrix m = GetCamera2DMatrix(camera); - Vector3 transform = Vector3Transform((Vector3){position.x, position.y, 0}, m); - return (Vector2){transform.x, transform.y}; -} - -Matrix GetCamera2DMatrix(Camera2D camera) { - // The camera in world-space is set by - // 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. - // 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. - // Since (A*B*C)' = C'*B'*A', the modelview is - // 1. Move to offset - // 2. Rotate and Scale - // 3. Move by -target - Matrix matOrigin = MatrixTranslate(-camera.target.x, -camera.target.y, 0.0f); - Matrix matRotation = MatrixRotate((Vector3){ 0.0f, 0.0f, 1.0f }, camera.rotation*DEG2RAD); - Matrix matScale = MatrixScale(camera.zoom, camera.zoom, 1.0f); - Matrix matTranslation = MatrixTranslate(camera.offset.x, camera.offset.y, 0.0f); - Matrix matTransform = MatrixMultiply(MatrixMultiply(matOrigin, MatrixMultiply(matScale, matRotation)), matTranslation); - return matTransform; +// Returns the world space position for a 2d camera screen space position +Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera) +{ + Matrix invMatCamera = MatrixInvert(GetCameraMatrix2D(camera)); + Vector3 transform = Vector3Transform((Vector3){ position.x, position.y, 0 }, invMatCamera); + + return (Vector2){ transform.x, transform.y }; } // Set target FPS (maximum) diff --git a/src/raylib.h b/src/raylib.h index 4dcf78ac8..ec6fd8a11 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -909,11 +909,11 @@ RLAPI void EndScissorMode(void); // End scissor // Screen-space-related functions RLAPI Ray GetMouseRay(Vector2 mousePosition, Camera camera); // Returns a ray trace from mouse position -RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Returns the screen space position for a 3d world space position RLAPI Matrix GetCameraMatrix(Camera camera); // Returns camera transform matrix (view matrix) -RLAPI Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera); -RLAPI Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera); -RLAPI Matrix GetCamera2DMatrix(Camera2D camera); +RLAPI Matrix GetCameraMatrix2D(Camera2D camera); // Returns camera 2d transform matrix +RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Returns the screen space position for a 3d world space position +RLAPI Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera); // Returns the screen space position for a 2d camera world space position +RLAPI Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera); // Returns the world space position for a 2d camera screen space position // Timing-related functions RLAPI void SetTargetFPS(int fps); // Set target FPS (maximum) From dde1e0671ffd71582e3ec2b1e09bcd422d829591 Mon Sep 17 00:00:00 2001 From: chriscamacho Date: Tue, 27 Aug 2019 18:58:49 +0100 Subject: [PATCH 053/123] examples makefile not deleting examples in Linux (#955) I'm not sure why the clean command is so complex (especially given that find -type f -executable | xargs rm -fv works!) but I fixed the version as is, to support x-pie-executable which was preventing it deleting anything on my system... --- examples/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/Makefile b/examples/Makefile index f57888ace..ce02d55fa 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -471,7 +471,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) del *.o *.exe /s endif ifeq ($(PLATFORM_OS),LINUX) - find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -fv + find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable|x-pie-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -fv endif ifeq ($(PLATFORM_OS),OSX) find . -type f -perm +ugo+x -delete From fc95ceadf0143ad6c0f720d26bb28a45889f86d1 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 3 Sep 2019 23:08:02 +0200 Subject: [PATCH 054/123] Remove sampleLeft from Music struct... -WIP- ...moved to internal AudioBuffer structure as totalFramesProcessed, now time measure works again... but there is some problem with looping... Also note some inconsistencies between frames and samples, it seems those concepts are not considered correctly in the code. --- examples/audio/audio_module_playing.c | 22 +-- src/raudio.c | 274 +++++++++++--------------- src/raudio.h | 4 +- src/raylib.h | 1 - 4 files changed, 132 insertions(+), 169 deletions(-) diff --git a/examples/audio/audio_module_playing.c b/examples/audio/audio_module_playing.c index 0dae8aa21..557fcb092 100644 --- a/examples/audio/audio_module_playing.c +++ b/examples/audio/audio_module_playing.c @@ -46,13 +46,13 @@ int main(void) circles[i].radius = GetRandomValue(10, 40); circles[i].position.x = GetRandomValue(circles[i].radius, screenWidth - circles[i].radius); circles[i].position.y = GetRandomValue(circles[i].radius, screenHeight - circles[i].radius); - circles[i].speed = (float)GetRandomValue(1, 100)/20000.0f; + circles[i].speed = (float)GetRandomValue(1, 100)/2000.0f; circles[i].color = colors[GetRandomValue(0, 13)]; } - Music xm = LoadMusicStream("resources/chiptun1.mod"); + Music music = LoadMusicStream("resources/mini1111.xm"); - PlayMusicStream(xm); + PlayMusicStream(music); float timePlayed = 0.0f; bool pause = false; @@ -65,13 +65,13 @@ int main(void) { // Update //---------------------------------------------------------------------------------- - UpdateMusicStream(xm); // Update music buffer with new stream data + UpdateMusicStream(music); // Update music buffer with new stream data // Restart music playing (stop and play) if (IsKeyPressed(KEY_SPACE)) { - StopMusicStream(xm); - PlayMusicStream(xm); + StopMusicStream(music); + PlayMusicStream(music); } // Pause/Resume music playing @@ -79,12 +79,12 @@ int main(void) { pause = !pause; - if (pause) PauseMusicStream(xm); - else ResumeMusicStream(xm); + if (pause) PauseMusicStream(music); + else ResumeMusicStream(music); } // Get timePlayed scaled to bar dimensions - timePlayed = GetMusicTimePlayed(xm)/GetMusicTimeLength(xm)*(screenWidth - 40); + timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music)*(screenWidth - 40); // Color circles animation for (int i = MAX_CIRCLES - 1; (i >= 0) && !pause; i--) @@ -101,7 +101,7 @@ int main(void) circles[i].position.x = GetRandomValue(circles[i].radius, screenWidth - circles[i].radius); circles[i].position.y = GetRandomValue(circles[i].radius, screenHeight - circles[i].radius); circles[i].color = colors[GetRandomValue(0, 13)]; - circles[i].speed = (float)GetRandomValue(1, 100)/20000.0f; + circles[i].speed = (float)GetRandomValue(1, 100)/2000.0f; } } //---------------------------------------------------------------------------------- @@ -128,7 +128,7 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- - UnloadMusicStream(xm); // Unload music stream buffers from RAM + UnloadMusicStream(music); // Unload music stream buffers from RAM CloseAudioDevice(); // Close audio device (music streaming is automatically stopped) diff --git a/src/raudio.c b/src/raudio.c index 43e63bc99..2edf660a3 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -124,7 +124,7 @@ // After some math, considering a sampleRate of 48000, a buffer refill rate of 1/60 seconds and a // standard double-buffering system, a 4096 samples buffer has been chosen, it should be enough // In case of music-stalls, just increase this number -#define AUDIO_BUFFER_SIZE 4096 // PCM data samples (i.e. 16bit, Mono: 8Kb) +#define AUDIO_BUFFER_SIZE 4096 // PCM data samples (i.e. 16bit, Mono: 8Kb) //---------------------------------------------------------------------------------- // Types and Structures Definition @@ -189,6 +189,8 @@ void TraceLog(int msgType, const char *text, ...); // Show trace lo #define DEVICE_CHANNELS 2 #define DEVICE_SAMPLE_RATE 44100 +#define MAX_AUDIO_BUFFER_POOL_CHANNELS 16 + typedef enum { AUDIO_BUFFER_USAGE_STATIC = 0, AUDIO_BUFFER_USAGE_STREAM } AudioBufferUsage; // Audio buffer structure @@ -205,16 +207,22 @@ struct rAudioBuffer { bool looping; // Audio buffer looping, always true for AudioStreams int usage; // Audio buffer usage mode: STATIC or STREAM - bool isSubBufferProcessed[2]; - unsigned int frameCursorPos; // Samples processed? - unsigned int bufferSizeInFrames; + bool isSubBufferProcessed[2]; // SubBuffer processed (virtual double buffer) + unsigned int frameCursorPos; // Frame cursor position + unsigned int bufferSizeInFrames; // Total buffer size in frames + unsigned int totalFramesProcessed; // Total frames processed in this buffer (required for play timming) - rAudioBuffer *next; - rAudioBuffer *prev; - unsigned char *buffer; + unsigned char *buffer; // Data buffer, on music stream keeps filling + + rAudioBuffer *next; // Next audio buffer on the list + rAudioBuffer *prev; // Previous audio buffer on the list }; -#define AudioBuffer rAudioBuffer // HACK: To avoid CoreAudio (macOS) symbol collision +#define AudioBuffer rAudioBuffer // HACK: To avoid CoreAudio (macOS) symbol collision + +// Audio buffers are tracked in a linked list +static AudioBuffer *firstAudioBuffer = NULL; +static AudioBuffer *lastAudioBuffer = NULL; // miniaudio global variables static ma_context context; @@ -223,9 +231,10 @@ static ma_mutex audioLock; static bool isAudioInitialized = false; static float masterVolume = 1.0f; -// Audio buffers are tracked in a linked list -static AudioBuffer *firstAudioBuffer = NULL; -static AudioBuffer *lastAudioBuffer = NULL; +// Multi channel playback global variables +AudioBuffer *audioBufferPool[MAX_AUDIO_BUFFER_POOL_CHANNELS] = { 0 }; +unsigned int audioBufferPoolCounter = 0; +unsigned int audioBufferPoolChannels[MAX_AUDIO_BUFFER_POOL_CHANNELS] = { 0 }; // miniaudio functions declaration static void OnLog(ma_context *pContext, ma_device *pDevice, ma_uint32 logLevel, const char *message); @@ -247,19 +256,9 @@ void SetAudioBufferPitch(AudioBuffer *buffer, float pitch); void TrackAudioBuffer(AudioBuffer *buffer); void UntrackAudioBuffer(AudioBuffer *buffer); + //---------------------------------------------------------------------------------- -// Multi channel playback globals -//---------------------------------------------------------------------------------- - -// Number of channels in the audio pool -#define MAX_AUDIO_BUFFER_POOL_CHANNELS 16 - -// Audio buffer pool -AudioBuffer *audioBufferPool[MAX_AUDIO_BUFFER_POOL_CHANNELS] = { 0 }; - -// These are used to determine the oldest playing channel -unsigned long audioBufferPoolCounter = 0; -unsigned long audioBufferPoolChannels[MAX_AUDIO_BUFFER_POOL_CHANNELS] = { 0 }; +// miniaudio functions definitions //---------------------------------------------------------------------------------- // Log callback function @@ -319,6 +318,7 @@ static void OnSendAudioDataToDevice(ma_device *pDevice, void *pFramesOut, const { float *framesOut = (float *)pFramesOut + (framesRead*device.playback.channels); float *framesIn = tempBuffer; + MixAudioFrames(framesOut, framesIn, framesJustRead, audioBuffer->volume); framesToRead -= framesJustRead; @@ -485,7 +485,6 @@ void InitAudioDevice(void) { // Init audio context ma_context_config contextConfig = ma_context_config_init(); - contextConfig.logCallback = OnLog; ma_result result = ma_context_init(NULL, 0, &contextConfig, &context); @@ -553,11 +552,7 @@ void InitAudioDevice(void) // Close the audio device for all contexts void CloseAudioDevice(void) { - if (!isAudioInitialized) - { - TraceLog(LOG_WARNING, "Could not close audio device because it is not currently initialized"); - } - else + if (isAudioInitialized) { ma_mutex_uninit(&audioLock); ma_device_uninit(&device); @@ -567,6 +562,7 @@ void CloseAudioDevice(void) TraceLog(LOG_INFO, "Audio device closed successfully"); } + else TraceLog(LOG_WARNING, "Could not close audio device because it is not currently initialized"); } // Check if device has been initialized successfully @@ -588,11 +584,11 @@ void SetMasterVolume(float volume) // Module Functions Definition - Audio Buffer management //---------------------------------------------------------------------------------- -// Create a new audio buffer. Initially filled with silence +// Initialize a new audio buffer (filled with silence) AudioBuffer *InitAudioBuffer(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, ma_uint32 bufferSizeInFrames, int usage) { AudioBuffer *audioBuffer = (AudioBuffer *)RL_CALLOC(1, sizeof(AudioBuffer)); - audioBuffer->buffer = RL_CALLOC((bufferSizeInFrames*channels*ma_get_bytes_per_sample(format)), 1); + audioBuffer->buffer = RL_CALLOC(bufferSizeInFrames*channels*ma_get_bytes_per_sample(format), 1); if (audioBuffer == NULL) { @@ -690,6 +686,7 @@ void StopAudioBuffer(AudioBuffer *buffer) buffer->playing = false; buffer->paused = false; buffer->frameCursorPos = 0; + buffer->totalFramesProcessed = 0; buffer->isSubBufferProcessed[0] = true; buffer->isSubBufferProcessed[1] = true; } @@ -725,8 +722,10 @@ void SetAudioBufferPitch(AudioBuffer *buffer, float pitch) { float pitchMul = pitch/buffer->pitch; - // 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. + // 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 ma_uint32 newOutputSampleRate = (ma_uint32)((float)buffer->dsp.src.config.sampleRateOut/pitchMul); buffer->pitch *= (float)buffer->dsp.src.config.sampleRateOut/newOutputSampleRate; @@ -869,16 +868,14 @@ void UpdateSound(Sound sound, const void *data, int samplesCount) { AudioBuffer *audioBuffer = sound.stream.buffer; - if (audioBuffer == NULL) + if (audioBuffer != NULL) { - TraceLog(LOG_ERROR, "UpdateSound() : Invalid sound - no audio buffer"); - return; + StopAudioBuffer(audioBuffer); + + // TODO: May want to lock/unlock this since this data buffer is read at mixing time + memcpy(audioBuffer->buffer, data, samplesCount*audioBuffer->dsp.formatConverterIn.config.channels*ma_get_bytes_per_sample(audioBuffer->dsp.formatConverterIn.config.formatIn)); } - - StopAudioBuffer(audioBuffer); - - // TODO: May want to lock/unlock this since this data buffer is read at mixing time - memcpy(audioBuffer->buffer, data, samplesCount*audioBuffer->dsp.formatConverterIn.config.channels*ma_get_bytes_per_sample(audioBuffer->dsp.formatConverterIn.config.formatIn)); + else TraceLog(LOG_ERROR, "UpdateSound() : Invalid sound - no audio buffer"); } // Export wave data to file @@ -956,7 +953,7 @@ void PlaySound(Sound sound) void PlaySoundMulti(Sound sound) { int index = -1; - unsigned long oldAge = 0; + unsigned int oldAge = 0; int oldIndex = -1; // find the first non playing pool entry @@ -1184,14 +1181,8 @@ Music LoadMusicStream(const char *fileName) // OGG bit rate defaults to 16 bit, it's enough for compressed format music.stream = InitAudioStream(info.sample_rate, 16, info.channels); music.sampleCount = (unsigned int)stb_vorbis_stream_length_in_samples((stb_vorbis *)music.ctxData)*info.channels; - music.sampleLeft = music.sampleCount; music.loopCount = 0; // Infinite loop by default musicLoaded = true; - - TraceLog(LOG_INFO, "[%s] OGG total samples: %i", fileName, music.sampleCount); - TraceLog(LOG_INFO, "[%s] OGG sample rate: %i", fileName, info.sample_rate); - TraceLog(LOG_INFO, "[%s] OGG channels: %i", fileName, info.channels); - TraceLog(LOG_INFO, "[%s] OGG memory required: %i", fileName, info.temp_memory_required); } } #endif @@ -1207,14 +1198,8 @@ Music LoadMusicStream(const char *fileName) music.stream = InitAudioStream(ctxFlac->sampleRate, ctxFlac->bitsPerSample, ctxFlac->channels); music.sampleCount = (unsigned int)ctxFlac->totalSampleCount; - music.sampleLeft = music.sampleCount; music.loopCount = 0; // Infinite loop by default musicLoaded = true; - - TraceLog(LOG_DEBUG, "[%s] FLAC total samples: %i", fileName, music.sampleCount); - TraceLog(LOG_DEBUG, "[%s] FLAC sample rate: %i", fileName, ctxFlac->sampleRate); - TraceLog(LOG_DEBUG, "[%s] FLAC bits per sample: %i", fileName, ctxFlac->bitsPerSample); - TraceLog(LOG_DEBUG, "[%s] FLAC channels: %i", fileName, ctxFlac->channels); } } #endif @@ -1232,14 +1217,8 @@ Music LoadMusicStream(const char *fileName) music.stream = InitAudioStream(ctxMp3->sampleRate, 32, ctxMp3->channels); music.sampleCount = drmp3_get_pcm_frame_count(ctxMp3)*ctxMp3->channels; - music.sampleLeft = music.sampleCount; music.loopCount = 0; // Infinite loop by default musicLoaded = true; - - TraceLog(LOG_INFO, "[%s] MP3 sample rate: %i", fileName, ctxMp3->sampleRate); - TraceLog(LOG_INFO, "[%s] MP3 bits per sample: %i", fileName, 32); - TraceLog(LOG_INFO, "[%s] MP3 channels: %i", fileName, ctxMp3->channels); - TraceLog(LOG_INFO, "[%s] MP3 total samples: %i", fileName, music.sampleCount); } } #endif @@ -1258,14 +1237,10 @@ Music LoadMusicStream(const char *fileName) // NOTE: Only stereo is supported for XM music.stream = InitAudioStream(48000, 16, 2); music.sampleCount = (unsigned int)jar_xm_get_remaining_samples(ctxXm); - music.sampleLeft = music.sampleCount; music.loopCount = 0; // Infinite loop by default musicLoaded = true; music.ctxData = ctxXm; - - TraceLog(LOG_INFO, "[%s] XM number of samples: %i", fileName, music.sampleCount); - TraceLog(LOG_INFO, "[%s] XM track length: %11.6f sec", fileName, (float)music.sampleCount/48000.0f); } } #endif @@ -1285,12 +1260,8 @@ Music LoadMusicStream(const char *fileName) // NOTE: Only stereo is supported for MOD music.stream = InitAudioStream(48000, 16, 2); music.sampleCount = (unsigned int)jar_mod_max_samples(ctxMod); - music.sampleLeft = music.sampleCount; music.loopCount = 0; // Infinite loop by default musicLoaded = true; - - TraceLog(LOG_INFO, "[%s] MOD number of samples: %i", fileName, music.sampleCount); - TraceLog(LOG_INFO, "[%s] MOD track length: %11.6f sec", fileName, (float)music.sampleCount/48000.0f); } } #endif @@ -1316,6 +1287,15 @@ Music LoadMusicStream(const char *fileName) TraceLog(LOG_WARNING, "[%s] Music file could not be opened", fileName); } + else + { + // Show some music stream info + TraceLog(LOG_INFO, "[%s] Music file successfully loaded:", fileName); + TraceLog(LOG_INFO, " Total samples: %i", music.sampleCount); + TraceLog(LOG_INFO, " Sample rate: %i Hz", music.stream.sampleRate); + TraceLog(LOG_INFO, " Sample size: %i bits", music.stream.sampleSize); + TraceLog(LOG_INFO, " Channels: %i (%s)", music.stream.channels, (music.stream.channels == 1)? "Mono" : (music.stream.channels == 2)? "Stereo" : "Multi"); + } return music; } @@ -1348,21 +1328,18 @@ void PlayMusicStream(Music music) { AudioBuffer *audioBuffer = music.stream.buffer; - if (audioBuffer == NULL) + if (audioBuffer != NULL) { - TraceLog(LOG_ERROR, "PlayMusicStream() : No audio buffer"); - return; + // 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 (IsMusicPlaying(music)) PlayMusicStream(music); + ma_uint32 frameCursorPos = audioBuffer->frameCursorPos; + PlayAudioStream(music.stream); // WARNING: This resets the cursor position. + audioBuffer->frameCursorPos = frameCursorPos; } + else TraceLog(LOG_ERROR, "PlayMusicStream() : No audio buffer"); - // 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 (IsMusicPlaying(music)) PlayMusicStream(music); - ma_uint32 frameCursorPos = audioBuffer->frameCursorPos; - - PlayAudioStream(music.stream); // <-- This resets the cursor position. - - audioBuffer->frameCursorPos = frameCursorPos; } // Pause music playing @@ -1389,7 +1366,7 @@ void StopMusicStream(Music music) case MUSIC_AUDIO_OGG: stb_vorbis_seek_start((stb_vorbis *)music.ctxData); break; #endif #if defined(SUPPORT_FILEFORMAT_FLAC) - case MUSIC_AUDIO_FLAC: /* TODO: Restart FLAC context */ break; + case MUSIC_AUDIO_FLAC: drflac_seek_to_sample((drflac *)music.ctxData, 0) break; #endif #if defined(SUPPORT_FILEFORMAT_MP3) case MUSIC_AUDIO_MP3: drmp3_seek_to_pcm_frame((drmp3 *)music.ctxData, 0); break; @@ -1402,8 +1379,6 @@ void StopMusicStream(Music music) #endif default: break; } - - music.sampleLeft = music.sampleCount; } // Update (re-fill) music buffers if data already processed @@ -1416,12 +1391,16 @@ void UpdateMusicStream(Music music) // NOTE: Using dynamic allocation because it could require more than 16KB void *pcm = RL_CALLOC(subBufferSizeInFrames*music.stream.channels*music.stream.sampleSize/8, 1); - int samplesCount = 0; // Total size of data steamed in L+R samples for xm floats, individual L or R for ogg shorts + int samplesCount = 0; // Total size of data streamed in L+R samples for xm floats, individual L or R for ogg shorts + + // TODO: Get the sampleLeft using totalFramesProcessed... but first, get total frames processed correctly... + //ma_uint32 frameSizeInBytes = ma_get_bytes_per_sample(music.stream.buffer->dsp.formatConverterIn.config.formatIn)*music.stream.buffer->dsp.formatConverterIn.config.channels; + int sampleLeft = music.sampleCount - (music.stream.buffer->totalFramesProcessed*music.stream.channels); while (IsAudioStreamProcessed(music.stream)) { - if ((music.sampleLeft/music.stream.channels) >= subBufferSizeInFrames) samplesCount = subBufferSizeInFrames*music.stream.channels; - else samplesCount = music.sampleLeft; + if ((sampleLeft/music.stream.channels) >= subBufferSizeInFrames) samplesCount = subBufferSizeInFrames*music.stream.channels; + else samplesCount = sampleLeft; switch (music.ctxType) { @@ -1470,12 +1449,12 @@ void UpdateMusicStream(Music music) if ((music.ctxType == MUSIC_MODULE_XM) || (music.ctxType == MUSIC_MODULE_MOD)) { - if (samplesCount > 1) music.sampleLeft -= samplesCount/2; - else music.sampleLeft -= samplesCount; + if (samplesCount > 1) sampleLeft -= samplesCount/2; + else sampleLeft -= samplesCount; } - else music.sampleLeft -= samplesCount; + else sampleLeft -= samplesCount; - if (music.sampleLeft <= 0) + if (sampleLeft <= 0) { streamEnding = true; break; @@ -1493,13 +1472,10 @@ void UpdateMusicStream(Music music) // Decrease loopCount to stop when required if (music.loopCount > 1) { - music.loopCount--; // Decrease loop count + music.loopCount--; // Decrease loop count PlayMusicStream(music); // Play again } - else - { - if (music.loopCount == 0) PlayMusicStream(music); - } + else if (music.loopCount == 0) PlayMusicStream(music); } else { @@ -1549,7 +1525,8 @@ float GetMusicTimePlayed(Music music) { float secondsPlayed = 0.0f; - unsigned int samplesPlayed = music.sampleCount - music.sampleLeft; + //ma_uint32 frameSizeInBytes = ma_get_bytes_per_sample(music.stream.buffer->dsp.formatConverterIn.config.formatIn)*music.stream.buffer->dsp.formatConverterIn.config.channels; + unsigned int samplesPlayed = music.stream.buffer->totalFramesProcessed*music.stream.channels; secondsPlayed = (float)samplesPlayed/(music.stream.sampleRate*music.stream.channels); return secondsPlayed; @@ -1562,14 +1539,7 @@ AudioStream InitAudioStream(unsigned int sampleRate, unsigned int sampleSize, un stream.sampleRate = sampleRate; stream.sampleSize = sampleSize; - - // Only mono and stereo channels are supported - if ((channels > 0) && (channels < 3)) stream.channels = channels; - else - { - TraceLog(LOG_WARNING, "Init audio stream: Number of channels not supported: %i", channels); - stream.channels = 1; // Fallback to mono channel - } + stream.channels = channels; ma_format formatIn = ((stream.sampleSize == 8)? ma_format_u8 : ((stream.sampleSize == 16)? ma_format_s16 : ma_format_f32)); @@ -1579,18 +1549,14 @@ AudioStream InitAudioStream(unsigned int sampleRate, unsigned int sampleSize, un if (subBufferSize < periodSize) subBufferSize = periodSize; - AudioBuffer *audioBuffer = InitAudioBuffer(formatIn, stream.channels, stream.sampleRate, subBufferSize*2, AUDIO_BUFFER_USAGE_STREAM); + stream.buffer = InitAudioBuffer(formatIn, stream.channels, stream.sampleRate, subBufferSize*2, AUDIO_BUFFER_USAGE_STREAM); - if (audioBuffer == NULL) + if (stream.buffer != NULL) { - TraceLog(LOG_ERROR, "InitAudioStream() : Failed to create audio buffer"); - return stream; + stream.buffer->looping = true; // Always loop for streaming buffers + TraceLog(LOG_INFO, "Audio stream loaded successfully (%i Hz, %i bit, %s)", stream.sampleRate, stream.sampleSize, (stream.channels == 1)? "Mono" : "Stereo"); } - - audioBuffer->looping = true; // Always loop for streaming buffers - stream.buffer = audioBuffer; - - TraceLog(LOG_INFO, "Audio stream loaded successfully (%i Hz, %i bit, %s)", stream.sampleRate, stream.sampleSize, (stream.channels == 1)? "Mono" : "Stereo"); + else TraceLog(LOG_ERROR, "InitAudioStream() : Failed to create audio buffer"); return stream; } @@ -1610,56 +1576,54 @@ void UpdateAudioStream(AudioStream stream, const void *data, int samplesCount) { AudioBuffer *audioBuffer = stream.buffer; - if (audioBuffer == NULL) + if (audioBuffer != NULL) { - TraceLog(LOG_ERROR, "UpdateAudioStream() : No audio buffer"); - return; - } - - if (audioBuffer->isSubBufferProcessed[0] || audioBuffer->isSubBufferProcessed[1]) - { - ma_uint32 subBufferToUpdate = 0; - - if (audioBuffer->isSubBufferProcessed[0] && audioBuffer->isSubBufferProcessed[1]) + if (audioBuffer->isSubBufferProcessed[0] || audioBuffer->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; - audioBuffer->frameCursorPos = 0; - } - else - { - // Just update whichever sub-buffer is processed. - subBufferToUpdate = (audioBuffer->isSubBufferProcessed[0])? 0 : 1; - } + ma_uint32 subBufferToUpdate = 0; - ma_uint32 subBufferSizeInFrames = audioBuffer->bufferSizeInFrames/2; - unsigned char *subBuffer = audioBuffer->buffer + ((subBufferSizeInFrames*stream.channels*(stream.sampleSize/8))*subBufferToUpdate); - - // 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)samplesCount/stream.channels) - { - ma_uint32 framesToWrite = subBufferSizeInFrames; - - if (framesToWrite > ((ma_uint32)samplesCount/stream.channels)) framesToWrite = (ma_uint32)samplesCount/stream.channels; - - 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) + if (audioBuffer->isSubBufferProcessed[0] && audioBuffer->isSubBufferProcessed[1]) { - memset(subBuffer + bytesToWrite, 0, leftoverFrameCount*stream.channels*(stream.sampleSize/8)); + // Both buffers are available for updating. + // Update the first one and make sure the cursor is moved back to the front. + subBufferToUpdate = 0; + audioBuffer->frameCursorPos = 0; + } + else + { + // Just update whichever sub-buffer is processed. + subBufferToUpdate = (audioBuffer->isSubBufferProcessed[0])? 0 : 1; } - audioBuffer->isSubBufferProcessed[subBufferToUpdate] = false; + ma_uint32 subBufferSizeInFrames = audioBuffer->bufferSizeInFrames/2; + unsigned char *subBuffer = audioBuffer->buffer + ((subBufferSizeInFrames*stream.channels*(stream.sampleSize/8))*subBufferToUpdate); + + // TODO: Get total frames processed on this buffer... DOES NOT WORK. + audioBuffer->totalFramesProcessed += 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)samplesCount/stream.channels) + { + ma_uint32 framesToWrite = subBufferSizeInFrames; + + if (framesToWrite > ((ma_uint32)samplesCount/stream.channels)) framesToWrite = (ma_uint32)samplesCount/stream.channels; + + 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)); + + audioBuffer->isSubBufferProcessed[subBufferToUpdate] = false; + } + else TraceLog(LOG_ERROR, "UpdateAudioStream() : Attempting to write too many frames to buffer"); } - else TraceLog(LOG_ERROR, "UpdateAudioStream() : Attempting to write too many frames to buffer"); + else TraceLog(LOG_ERROR, "UpdateAudioStream() : Audio buffer not available for updating"); } - else TraceLog(LOG_ERROR, "Audio buffer not available for updating"); + else TraceLog(LOG_ERROR, "UpdateAudioStream() : No audio buffer"); } // Check if any audio stream buffers requires refill diff --git a/src/raudio.h b/src/raudio.h index 302993a9f..e508d380e 100644 --- a/src/raudio.h +++ b/src/raudio.h @@ -1,6 +1,6 @@ /********************************************************************************************** * -* raudio - A simple and easy-to-use audio library based on mini_al +* raudio - A simple and easy-to-use audio library based on miniaudio * * FEATURES: * - Manage audio device (init/close) @@ -20,7 +20,7 @@ * * CONTRIBUTORS: * David Reid (github: @mackron) (Nov. 2017): -* - Complete port to mini_al library +* - Complete port to miniaudio library * * Joshua Reisenauer (github: @kd7tck) (2015) * - XM audio module support (jar_xm) diff --git a/src/raylib.h b/src/raylib.h index ec6fd8a11..ed0314d37 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -434,7 +434,6 @@ typedef struct Music { void *ctxData; // Audio context data, depends on type unsigned int sampleCount; // Total number of samples - unsigned int sampleLeft; // Number of samples left to end unsigned int loopCount; // Loops count (times music will play), 0 means infinite loop AudioStream stream; // Audio stream From 861a61905394e09daf8138f481025423baf20dfe Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 3 Sep 2019 23:24:09 +0200 Subject: [PATCH 055/123] Review dr_flac usage Replaced DEPRECATED functions --- src/config.h | 4 ++-- src/raudio.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/config.h b/src/config.h index 398b5e9ad..250b702a1 100644 --- a/src/config.h +++ b/src/config.h @@ -133,8 +133,8 @@ #define SUPPORT_FILEFORMAT_OGG 1 #define SUPPORT_FILEFORMAT_XM 1 #define SUPPORT_FILEFORMAT_MOD 1 -//#define SUPPORT_FILEFORMAT_FLAC 1 -#define SUPPORT_FILEFORMAT_MP3 1 +#define SUPPORT_FILEFORMAT_FLAC 1 +#define SUPPORT_FILEFORMAT_MP3 1 //------------------------------------------------------------------------------------ diff --git a/src/raudio.c b/src/raudio.c index 2edf660a3..1f945be5e 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -1366,7 +1366,7 @@ void StopMusicStream(Music music) case MUSIC_AUDIO_OGG: stb_vorbis_seek_start((stb_vorbis *)music.ctxData); break; #endif #if defined(SUPPORT_FILEFORMAT_FLAC) - case MUSIC_AUDIO_FLAC: drflac_seek_to_sample((drflac *)music.ctxData, 0) break; + case MUSIC_AUDIO_FLAC: drflac_seek_to_pcm_frame((drflac *)music.ctxData, 0); break; #endif #if defined(SUPPORT_FILEFORMAT_MP3) case MUSIC_AUDIO_MP3: drmp3_seek_to_pcm_frame((drmp3 *)music.ctxData, 0); break; @@ -1416,7 +1416,7 @@ void UpdateMusicStream(Music music) case MUSIC_AUDIO_FLAC: { // NOTE: Returns the number of samples to process (not required) - drflac_read_s16((drflac *)music.ctxData, samplesCount, (short *)pcm); + drflac_read_pcm_frames_s16((drflac *)music.ctxData, samplesCount, (short *)pcm); } break; #endif @@ -1928,7 +1928,7 @@ static Wave LoadFLAC(const char *fileName) // Decode an entire FLAC file in one go uint64_t totalSampleCount; - wave.data = drflac_open_and_decode_file_s16(fileName, &wave.channels, &wave.sampleRate, &totalSampleCount); + wave.data = drflac_open_file_and_read_pcm_frames_s16(fileName, &wave.channels, &wave.sampleRate, &totalSampleCount); wave.sampleCount = (unsigned int)totalSampleCount; wave.sampleSize = 16; From 402ce4e53b7a0bf07732ff0c7d72777ea887ce85 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 4 Sep 2019 15:04:09 +0200 Subject: [PATCH 056/123] Update plane_diffuse.png --- examples/models/resources/plane_diffuse.png | Bin 373230 -> 301756 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/models/resources/plane_diffuse.png b/examples/models/resources/plane_diffuse.png index fb16f24c1387eb889256ee9e3d119ca575492df9..8cf75c7d20cd4621209e0b303261932ecd5c8191 100644 GIT binary patch literal 301756 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�Qzx~hcq@PuwXd}B=&Nnty+=`}I6E|mxNGHNW$ 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 F#cQW0w4==IgDqU>4-OnS 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 O0000f6Xi@@54ZTQ_E-Enz5K6$1 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%0D0!9vKWNgAds!n;;}w9FWvV1;RFVz zD!@5TG5N~)imTWX?}bUO+x?P6Zl<`fE9kf@uGj}Si)AQ8L=hU1e1vK8T$Llh0Z`At zm!JOXUFKIKCJO_s<`jPhz(r~co`Wl!Nc8R*#oAK5j?$u0x@=`PDv;|&C1F&OTG-)e z{fNL8j;?LS6aQyEoAcVI$tedhuF6$?001BWNkl%9B&Oc1^$$oB{NQ9MB)~-Fxu-wl|G+J@l37 z>HIC@rn$&|mpA-pUM^NE-jH95{#_}(DUCA?o3Kwx+){@6QrLhLyo3tCC;}q@!H51u zmP<_Eg52&jX3lhaf&uOuS31$ZGih8bowm#T(Hmj40sS4IuT@|a1>R{*sHNFxqWV-S z^>jK(dEKnTF`Py#e7m&_7svXshRx+>erz`!g_#qIsu)))T0IRkAc!)k-a~~#uo*ASO05zQ06AwsN2=6}EY8~^cFm3a2AzW4}Eo|LhHj9}2f3)m{$AziYd; z-3IhW4p?=G(IKy2@rWv@Rpn9x2mqjep|Su+Qcb3k9;tv50Qt=~g)9r=KPdrSrYC@Y z$S0qfJaG4YU-~l6%?+MK+;{(d^l|#7jumz)Tfv|XB*?K? zVg5^jPl>}oZ*ZfB2|xgW2GC{u0uGpZ8I=I13o0C)<=TJ(qfv2TXx52`?Z zn^w7Gq7uM*KWG4h8)A?Hl@I|e)|zL}7}+h%?@$$s=PW?~;GVz%lmB~Y!X_mkFafPi zN#A0_A}n$qr7I5AnKg|3o$W08zC-EH6>UJGskth7* zu6F;`yN1dBYtQpO{!%YPq~kvi!(I7*C&IXHu1>^D}*?)io6wbCw za~@h;K_!5hVopuJ68!b()HKk*eVaxq7d;*#<4=%42{`rQ31EVmvt=IoDS;}m<0cQO z&%QQ$@T-SF_79uFTmGzuO!yah#LfcxwankhgD2rht=a2SSBtJd_C zUh|#w13iE+cX%`2fs_Eq2R7K~VsAJ3XH_a4=ugn!m5>Rd9{Oi)(BQQgZ0$nr60Vj? zCS*9^V`-jEv&#|0u1-M+>Jy@Wpak5IY^XS#5^BO)K~o+n4S=K|{;#bD%{+HGAb}om z^3+KQbc=;srN|6OP9^2Prk0r~?C@O($IKNV7n0(*{K{Q2Je^C229`(Qg=5R2Usn0rWxkAI++&Am)aW^JR1I zM0#WdA2T(zAZ&x?1B)AD)S{|(@ zV`fXxcrs=$TZ;#ldJlGG(S_fuu%FLQjYaQxKIa-T$`mwf`;mzISMIy;hF=C@GstOr3dSE~IM{w9@R^ z)9<=_-&4rm`C2Y9IAIxL!2%~Ut0Xj1xov7p5TO&>5dQ}>hN$HB-`}n9fFjoR;#bf zoS)cROEM{PwlHgg#_gM1-4*P3;wt(wwWBz2$f+s61ufJQ6BDI!sZj9RIi;lxZXbdz z!&~5(dU;BTE3U6Y0~nFFm2KH@ag4#GENS)2c0`G>rnaCDTUW&F=Jb(gri}}hlJgY$ zTCHYWHjr6c0_BvnK~>)f?Y5fRs@E=C<qS3&+Z}hLjy7wFo0Y94=UJVAEVOb6YgipRDxIKcgb_qrXrc z4rM?B^v6zLlcc`By*u^cix$uTeI>g|0S+LLeeR@l=SgQguTB@t^q>U!fjt7BZpy%~z+B*!e0~dQ4}f5*;+2*@&`UvDW>tw7#xAcWvV1 zCV5}qpa5r;*4)XV8cK*JAV7#2s(bRvY{J z5^p&6=jL=gE@Mf&Qe5nKbZ$^9F7~!AWjDqFxQo6= zik?jLM1R0ugmT{$bZOCBvYgQnxUF`}vhfhsL`nBH}( zC()moDQp|dQ-RKq`#hjOlE*>?a$2)GdwNzlE!=+l?K|>20R3lPol*Ve(1i7%yHFuW zWZWS1pPHJ|2lXAf9rP!{UpHv`a@p2 zP=Nwn9-x2I>QE5^i$9?MiDS4Mipsqo#MlD^{X2mD2r@#^P_e_$aIhFxApnt2?qMR(xk*M76T-cQKT?Fe(Myy{ATwv+s zo{77TPhqrht7%)Tw{rw=yrd`ara%LbAJ~oJKm94qGyup2hW-z}CkOe#Zx!D(lFVdT zV2yHJ(`6ul+*YJwzcOHF4R;#p0PDCCT>`<3+nE6*#i7AL;S6d3<<3>dnie;VjtK)m|LX}C;Vc^_TY*Wr z67_t~0ha}l0{@|xsK#Pz2{^N53e2S)03Gle`dj4^^OZyn;JkpCA&7qw@P^tKz}&WgZgx#IG#t;24OtmYY(MTEr?wMxDNynR)g(!LIocEp-gMaGT98FKhQvS zkaIosJ4k9{DiKQn^k>sqIOZ?Rd$tIFY7JXmcTD)%no7!R9bGZ_J)~salw-0SDBlypa_kqrlKVk@P5bv1R}Vz-WS_ z(^Xrz=k5P96=*%6wPNatG|@n-qXE2BJo^f00H6A!PtnIC;BlFrumwHI>P7)2xCeJ{mTJ`md)(>~oN z5G6Ky(Kaa2&TwAho^|VLXsd0lLkv*QiS1t5;k=ln2)C3}2p72+tPb9c61U(;W9&y9 z0IC3?e^%=uZV>Kk3C$3$J(>HffBeH(YyfacSkDcH?{Tfi`q~8OzdbW}y6j2r0PBzf z*M17}oPX2M+Al8o?^ug_8o>G+$3dG%J3n5#VnG58Ae~Y@8fefRPHSV;hdY(|H?#EjJNxJnh*n&|A!!gb=r1tKkMMqhIAH$VJnce5VWzm>>#+hQ z5B)P)jDb_cZ3$9(s>+rc?bwR<0o=#Sm>y8OTq6yDuUm7uscq<3)Iv(Y+FucVg^icM zF_*-D$ctxd9{S^!kmkbK3Mc^yT?N4(#DAiJ;hYNM|3cA(0_3=M()W|0)TlT3*=ZE2 zB#WdgIs@WAdwSR=1pPn*SdMy)6J@YbJX<*Mt_L6c>?3^rS!}^>zZB2||3M8?GzN7(o_h*HmDJ8}MS7|iCkNk7{o9`qIKwrlH^&^wWL^_w{~R2 z1H078AJpFap6r4B`iWCD)Bu)5jDX6N?zxgWzD1orhvkfB{L>GVJ9a5hI3cTb%c)$f zD55Z|sWCsg8O5pgOs@Xxw`|)T5N{q-Dwpl{imUhYbl0~0HRZg8fR7ZYaG+xIftDh2 zOp17m<(ifkOD-xxfpYk`%JfqD)u8?>{i0E~ad$UKq;1~tD}ov<|B?LX;>>WkK*sIp z?2_oT1R`a!DJNqfgaT03Y*}W*Vn%^DF5M~{B`Z@&Cj*mYjUGGqX9oWTQCZ^N?@r@a|xJSob(oDIi)9P)g-kFDgi8> zkEU-ZUASa1=UQjQsTno4&5mcZk)j~sx@t0JHLcR?*4R#+;Ao*>fV@zzJE={wG9b^N zuLBbbdX?Z(e;Y=xe(Y9;L6sBi2Vz&j!azNx$o!xTUNg-^fzZFilSn|t_!4~2`e zS_+!i(W%{Twybpe#wWh8wF52T;La2J-ly%3h z@L3g;`Br+1r!b;v5aU$v1NO#zX`)i+!|Su?(EW0at?vyuAV?SzgstGmp!`f#1WZ?$ zK`j=OniOr-cHz+3QfZ+bqCY`D<;18!K#mhWB7lBs5L_e#Qjd%~A2HV}KOkS9X!+l2 zGCb53Ec8?=fDb^DvF#=tP^d3f5?ovt5-4yxh<=HpwREip_`bBr?mTalq^F{B6_Sk&~da9Hb@NT0wV$8C+ z^K*Oe2s=QfZY*3_Aepyokt6TIPbu(m)HP2JCNY2Z>?{Buu@vMD7IS}W`xwwbv53J! zAVEQ3Ys9YdF0PsCoy#&1wS#ReuUM%~N{X2osu!)?_H^;IXQQu_@mqlYPyhnZG=(-d zR1^^ifXxPXKt$cB2fnRcY2TiAQ-P*c1zJD5s*?CG(EK)Tq#L0r^iO{Bx1aqk267nQ zGFCS{WlNT{rftS#Phh|A{(IrzpYrtN)7eZ0(0}roNdX0;P@7b^m_M#_h6>Mq7bW_) zz1?#ha{59+mL~u~LO=%s5KxO^2G3wm;F&X?P_Q5TK$W z95~75uiED?_=QgwAO0;*Soqinybd(^obldYD}LeEGZVM#Km#B9*YQt%b-gECBi(va z?xj~lU;B)vK;Qk!H=f|HX)G;WSX@_tFI&RRSA9eP@uhMJ#zt@+F-uY614=aFT?3-D zf{uXKH35Lv+o8`a%IvJ4(A=-WOmM^jCIfdGFo650w@Hk`S8YOn$Z29TCWElzP-J!D z0D(b2c@{}*j!I8xKm&#eG#~-10}UwL!W2FMq!IxDu$JcMi_9Yv^3+fY4@LmSoM(f5 z;Ep?wTs%k6FEHE(0wDDN(9eGmp#S{2IiP_Nj<(NSn4@XWL^46Le2@UF=S%ZI1LP)4 z;YRoi0R2-NQ`O5=IQHGK59)c~T?e3^fjidy@4f%AzjzGc|4kkNB;tvMGS-%6K_k&f zU<|3&8W_fM{Zy~ldpe{BX^cskGpA~Un_{_bNB{@kg9fq8NMiC^h4G2u=_vtZ|A~pL zuE&fuKu5mRU3+PmOQsj;x?zI&4+otm-%62f5hM6kAjoOaC@Cn%>UU?60_O1}#lzz_@~(f~T0S2)w65AM&t?auE$d-#)|{N&m; z>0B+0ub?nn$nVIPF3tNVoem8EWdBs>19=Sq#DAax&;W!NLZ8zeL(FTuye!0m& zmSlM;$`JtbECrby^nla`mE?Ljj3o|aqp?z`I@r7k$O`OtEzkZFC;`?=x304EGhY)So!uqL%zZ5l|Bdkge??FJL1N55`7@;e^-3&;&16qG>& zxXM?0raaq~sq{L6OLn8eb3oa!isyd%ES z(xn9Oa;p|cmB3iX@2F?8Y^)U_HJWQ2S7mYoC;{%8NgfL)emz&T`gZ><1Z z|0N2v;454!5KIp9Um^4debMT4aREs63W;QqiNK%%9KBQp0)X<7XO0AO&xc-kzUZq0 z`}glB^oJumoCWlM?%C%7{cqeddieR{!^23T3joF!7KS$u)4JTQ)Uk+n{jD;91BA1} zE6a^O9A-~jkjc7)A>FeRXTu0u{*yO9Q;fCd8b zUtkMsX?|7mLp&)A&_&$7*kz_6tPh|+XaJxG0Qv*;(|393Uz=#(=B_mTiYLv8qM9G; zUdVm@iO~O*(*@|px~4)7vP%?$arcST>GZhLMh9CKtOk9Sh51D*myuGcGPpsm8PKDh z{7nhNXx9u^*TmtJv^yuvT^7u?nBL$vnqJ6GRgfDEyIyyaNlD)T+HOo(#TEhCwsD2F z9(9^a3P9f05o!7?2+{2M(cHGJrpShNbp_u?QsiDUymA_xERJb#TH-u^#6FK9gRjwE zjZWJiR8gQEw$p`6e?uDr9COt=C+Gvu@`KR3XVvktBC)UPQPB;Zg;SIPE#^laz|e57UWBdrR>O-o;N`yV99ee-nS=zJxYM0 z=x$4P9l4HfV6xC^5>ngHp0YoABg^!zJz1nBho&JJRRp*I9V+5%@t5mh3>h>5`PVR$ zk?Ohshucq*o(FtWsrj45v*fP&lMRiUmPkyzd1wCSZG~6PoIH14z<_1d;@GxP=IRHs zc5SIPk{p?zo8SA^z1h(bK~YPk(uo&e`HkQBczwCPP(*P%JDPRdE)3rNcMZ?am+pP{ zJ%v|i3Ny2UzhDitM#!s|s>*;ecFP!U4DRBjNOQS~ovqKqHL6wHZQG6w*XtW~nwHQs zt!C5!@pHpDORzE{ne0&Z_=)3C0mpXaZP2Q0&s3!&z&Z5T2yOo5fC{S_4Rd%n3(B;r zirx<4w9qEfRx~APC2N;!81WDqxQ|8n$DI`gIj&&5|5c%GSaN?Py-6L+sFjOmX};2I zHAlB=P)MisU^OU47iZH6_%@(Q-uBBb?WLheiX4%V;6=AlHJWuU+!#!9#$yCj*8<1H3& zoMco}72UMpr{Ri}FMauIJ9mytqEtLHCEfFGa&TX5wNvS=q9kJqt_Ab~?_r0t!B^rg?5QqZ=`=u~r_|g+^0Ya)d+zCt-$%)yS1TeZ#u=0_fj$ zCaI+Yd)ZGq0q*~}ZWZk0m3<>C1AfFrJ{7d`kT!JyL5A%q8m2EWzt7#bX(;KpgcB#1 zcJJ~C;Co-m?`P8hFT8vWfSz0frdJ97U|81V_fCB57eDyupMM3=zkD4V#lYQ)v!@?; z|9yv;-T>$y*YqW$hb(VgD;Vv16`Rmpr-uGS%{RX(N z`QB4-O}jIq25 z0fmC0-N0=N7n9(qtnVftq&kKPOszdn(I#9j!UG?kyN@%X^!0_SO#;8N@@30i4ZC24 z+j}y_IiHCggRqhA<$TG9e&D8oyUvGoOUIRB1<@;)zP9H~S4wXTCx4QIVYATGrQNb| z_Nh;V@$9TPT~?r9_~Y`!zmz-i0|e9EyR-oPAssnZBLcYhKXgm+K?3pr^g6yYSMjz4 z4*09DA9~kYC!YFVj~H|4^~k!5mh^XJsxK91unrTqY^TCY=Spk8NU2nwKXB*16E99t zY`C7g0`w67BRxj1QLEw9lI3v#AEQa^Ym-?9aoLYD3mm}W)#DchKg7Rhy{VbOJ#CxY zyMnzAm9sFgw!+`H*OmqMj)MEK%;X{TN9s57Vk^lK>K!? zLEfF{6^SVL)4l~z5JnRL2h10dy?_Hoa;ce@ux^C@xve^&zj4`u<0{pFhbA|KLmto{ z4*mj#Q~wG23DW}t$Zgs2*q@_i|Gn>hP~aj8Tb#!T`c1Bi4yp3YRIrN?z?V8J1GrDn z&nJ8#45MVGe*pSJP6R;E&(9hX4Zuw_O<0?H4C2zFHL>=rp8)rBTcjeh;LlwS&nGt^ z2h{zBZ7>IR&;ZO;p*UB|jUo+rGSPqxh4HODOcrO(*XvB|0|J1fLw4k2ZLeRwH*I^>C=!GHtwgih!WWk7%1w$b5e zjWx4x`?^bi4<9q$y1pBz!ggO-j{w#tO;L)hRbh5L$h(&&^BsB2IcZ%4--(khmlv)sayJ68@612VX)IHxE`J4cX#nF zi-sY9A`zKPK(uoczkp4G6H$O5u0#a(} z^%8IZmd7QhBD;o4+H?{ z&wpixZB;fhj3EaW7QCMm#9R|PgNE`+-OzC!fVejY2rM`RlkplxGoi&Q7fm97G{zP+ z7S2_Nw{%F5paf`aH9+xf=m^`j%PwtP0}oBG=aRL9(4XIYNm#SSifCZ|+$=zU5%OHO zrQY&q_#M*(=#PMM356)dgYm%nH-78mAO5+Ay1!_7jRpvg4!J?(7-9~8#t1p!qgWv5 zCmINBL6F0JEUQ8H0ong?pJ<{mV*4C7#-PV#zBfP=wT3miNem{DlZreyU!Oj`eBh}e_lmcx{ai&*8LTB!6cpDv|GJY-OX(Y=$z#p^x9c-!asNn_t$;1g;~U+z z!>zZIqF76AP;Ao}85u4uWkxdRC*FeoOpu>Cb!v=TJ{ZXfLrErpwDLFQ zcWg(7Yb+bJ%N`b_(<2M>#Rop{@X;fa3oPdF%{SjXaodFHIM(yeS+-@bx#p<}RSkCpUr>1|HfvwiOB|PaGW{9bH&3a07s91$5S6 zsS5Pp^iYQAPmYMOji%V|O@|~mu)Vu4n?lRVXqgBG=W(0MO&9liZHMb=*>WgZP?`<* z{H&2qW77fF({54qOLcgs=?pgSU|QL~Z};QhIBG3fJMtsPkCkw<@s=Yg5&^L~ph`ge zQ4IK#O5s#IiE)N8KlS4L@#Ad0#iH@iUwF8-h;OIE z0v^>dmhg%jY*Zk!_2*ElM?Ud!{9*~ea=!T5o(YVQQ!~O5s>eeYxEj~Pf%8tjIDO*P z$?j`dK#~1-+y!lDE!7IMxXd`eV?4htpUvcG7wFz<{K6%(OYayRNdgDlwQo4ma?Z?~ zTQ{pu9;xKBYOtG0yUC;j7VP2T74KWqFGK5y)yp;%8q^y27wO^tJ1@A6~ezQC1vE#ZxLx%}wqLV0mB7pa_2fa7I9X5^1$L-?g7gZJ?1 zt_jB(*+H$q*@$q7fU#8K<_C^kH41c)nzm&vJBq(EsJ-Ibd?5A7QZ(X+YxPDu?hz

Z$B-~YY?Gn|X9QNt0d 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≀2nPWR?1L@863?A?Y$qg` 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�x$`NEO4jV+GoeW93A)=kV%khUEefpQaYwJTSo zNa(h9s}73Az&A~czuSXViu2jAG+jo{bC@_F0GP}*6b2S$>@a=2s9%kpMR7H_o)>wI zpqu(#Nu;YuL_^BWTjE*6d4u6@$Q^`G*^g7RKwbilb4dyUMV}vIHf{4YHkxv7D6O+} z=qGgIyVqh6<+W*=)tCYjW|?8>Qr4_pxhH|{f6B7>vnZbb?%cU|esC28z=@9@>xI(l zdpHq(?_Yft@Nn*t>2G~=FW>6P`MLS|x#eY?-A#L7$(0V5FTabpJbqALU3Mx}>UHRZ zfc}(|T6cFkB}+VZkO82W;rvqbu)0iA8T7D_Q&S8>WTm^E&=}Vw>K~98QSEJi>e#@G zl?2RS$!%@aSO$OqsJ(-J03im_{V++wcRKjEvl;3!WR;v&6M$GhFqAP?ChgVV79LWN z0g^VDQKpp&w)l=h)I?yyhudvHf6jo$+C@sekcLT@KyTq52vQsylyfS4eL~Zn;aWE8 zjL30CwMR*oNwqW&L?w3D0{Fr{$N&%tT2^D|2Ri_EY@&t+F|cJLOu)89oraBhi+0=Hh{_M2QnO%?w8nE!zO68Z|!Q-AKlIhFzV5^guG z)I)pW#TVdREIzTwSbYAi^B@Bx?3Pn|{_6;`4E-Pp_)m#?w!ju-0R6f@{SnZQEHF4; z-+CQBIrGFB76X9(tyXLL!D+An0QZ+(K}`qHzjP1<0GcK=20;CX-)#}!3rIx%iKM{9 z4~7&1fd2HKf$J-y*kw8WA)~)uytfNDmAaG`EUbJOv?M8gc2j!ju)u<%VSoTgIJbiy z&KP~P0Fx^0AO}mEM!0^^bg8uy?D&okx<4l@D43ZSDHP)YK;-mliD}yId9D0Ig4e~P z^T-q~W@72=Jp=&YKA?Z{XZ84TM1Q`cRvjz=!^NB3v!SfQMSfXF3JFARtx-n@j<`L);3 zo4@pr=a*i)P^6LnFMs2YrQysvK!4uO&CPHD$M@e{dHk`tO4<6_zyB8ec?o2IA}xHp za`Aih$;!}}XY?-`N^#!k5qyIB4`WqAk2i5Hd6ArD);!IjQOy}Bx~>!ogZv%6fIVbX z>J?lm|G3H(R=9IB3xiqO>-Rtg7}P!&%Utz>FES;v?Y09eKIj8Dfor6zk|iq)2(YaH z{WmG;+e`VxO{y6NBLF73z0J8mNH+%Bkjly6nr;Z%-V{3{D}|{V0@=3{S37)#>0)5@ zV}eK@>C(i$>w{7+gZi&1I&9UoqlSJ{t~7b z$8N#8R2&@yhbu=u3F?3CUG#&qpyDkKO%K^4(wW^)Kl$|R{Oq^>uW$Xzzxb8k`JaBr zw9Ki=sUwGvfB*p82Ma*_!i|At1`rJEqO=G`0LMr;oSPJFo&Chw#44o_9?CpY7RxXBmtERAr9PzHed4>Ew#*kk*HWB^M8lSP^B!Z|6m7%uCG!$Sr}Ipfzg02AZ0LS^EY8@RHoCXsy;ZVQDXm(X;o^(#zW|j;7-twOVX+V z z62tM_!-J8=NfSBO+0+fgbsX4A{j5G_sl>99AC)oX+~P(tT0;NDPJectM^TjYQt(p^ zUJ8<&bi(o|XCJmvRJNO`++oi*lOFW_6wPlunXQRQE!9VtZE6o|&8zV-+R*={me!38 z!x)eMQl(rmzA!27Lx6L>7dwbx2ZU)}m92?NYqK6u(U4g%U=DD03S12AtY5mQJTByA zKNzPHBmk?>jmdR`-B24_)2->^#M$QBi*TK~E@SHzkko(Z;cC`k&IqcXid*$+qWm(xwmg6*yYYo^*G6**| zHb8|xew-R9-?mGZH4|rxng`7CL44*&s+ALENgOi(I{+jB{8^otkh{^f>xesZ^Fl3k zcU|tlb?OtRPD!V}`uks9zbb4Lr#P4xj5QJQcZR-;y=hSU)D(&U1v{W&+xd)vk|QJM z$IJRy(cNyd5~X2GlE|9c?KGe#+PyJusi_v5X`Y{CDIPH30R2D_o0w+g<1@2~KWaE@ zhuCKP5Ig2{yo8VkU=i*T>@^vNM=~TMUn7IE<h%M-;HWS2=Q0K! z=yOjR8`DJYe^;6TTaA9`%9XXNmo8tsxmg&u^aB<5PThA_d0m+m)CZfU<;s

@PkmSL7G}@9saCPH4-dbgYW=>O4W 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

o?9ECOhUs6 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 $X8g@$+j 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

fZzvBfd5CfxNkqiBS*sCF0 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%0Aqc(${YLu%0NrGcEY=Ud6(mi_J4WurJX9b2$ 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�@LZPEW7>JJQVu#0Q3)1(IYF5 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 q6{ex1keR4c$n#(&p`n Date: Thu, 5 Sep 2019 13:15:47 +0200 Subject: [PATCH 057/123] Update tinyobj_loader_c.h --- src/external/tinyobj_loader_c.h | 202 ++++++++++++++++---------------- 1 file changed, 102 insertions(+), 100 deletions(-) diff --git a/src/external/tinyobj_loader_c.h b/src/external/tinyobj_loader_c.h index 846784fa3..30ff22eb0 100644 --- a/src/external/tinyobj_loader_c.h +++ b/src/external/tinyobj_loader_c.h @@ -24,8 +24,8 @@ #ifndef TINOBJ_LOADER_C_H_ #define TINOBJ_LOADER_C_H_ -/* @todo { Remove stddef dependency. unsigned int? } ---> RAY: DONE. */ -//#include +/* @todo { Remove stddef dependency. size_t? } */ +#include typedef struct { char *name; @@ -93,18 +93,18 @@ typedef struct { * Returns TINYOBJ_ERR_*** when there is an error. */ extern int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, - unsigned int *num_shapes, tinyobj_material_t **materials, - unsigned int *num_materials, const char *buf, unsigned int len, + size_t *num_shapes, tinyobj_material_t **materials, + size_t *num_materials, const char *buf, size_t len, unsigned int flags); extern int tinyobj_parse_mtl_file(tinyobj_material_t **materials_out, - unsigned int *num_materials_out, + size_t *num_materials_out, const char *filename); extern void tinyobj_attrib_init(tinyobj_attrib_t *attrib); extern void tinyobj_attrib_free(tinyobj_attrib_t *attrib); -extern void tinyobj_shapes_free(tinyobj_shape_t *shapes, unsigned int num_shapes); +extern void tinyobj_shapes_free(tinyobj_shape_t *shapes, size_t num_shapes); extern void tinyobj_materials_free(tinyobj_material_t *materials, - unsigned int num_materials); + size_t num_materials); #ifdef TINYOBJ_LOADER_C_IMPLEMENTATION #include @@ -155,8 +155,8 @@ static int until_space(const char *token) { return (int)(p - token); } -static unsigned int length_until_newline(const char *token, unsigned int n) { - unsigned int len = 0; +static size_t length_until_newline(const char *token, size_t n) { + size_t len = 0; /* Assume token[n-1] = '\0' */ for (len = 0; len < n - 1; len++) { @@ -171,8 +171,8 @@ static unsigned int length_until_newline(const char *token, unsigned int n) { return len; } -static unsigned int length_until_line_feed(const char *token, unsigned int n) { - unsigned int len = 0; +static size_t length_until_line_feed(const char *token, size_t n) { + size_t len = 0; /* Assume token[n-1] = '\0' */ for (len = 0; len < n; len++) { @@ -202,7 +202,7 @@ static int my_atoi(const char *c) { } /* Make index zero-base, and also support relative index. */ -static int fixIndex(int idx, unsigned int n) { +static int fixIndex(int idx, size_t n) { if (idx > 0) return idx - 1; if (idx == 0) return 0; return (int)n + idx; /* negative value = relative */ @@ -453,9 +453,14 @@ static void parseFloat3(float *x, float *y, float *z, const char **token) { (*z) = parseFloat(token); } -static char *my_strdup(const char *s, unsigned int max_length) { +static size_t my_strnlen(const char *s, size_t n) { + const char *p = memchr(s, 0, n); + return p ? (size_t)(p - s) : n; +} + +static char *my_strdup(const char *s, size_t max_length) { char *d; - unsigned int len; + size_t len; if (s == NULL) return NULL; @@ -465,36 +470,34 @@ static char *my_strdup(const char *s, unsigned int max_length) { /* trim line ending and append '\0' */ d = (char *)TINYOBJ_MALLOC(len + 1); /* + '\0' */ - memcpy(d, s, (unsigned int)(len)); + memcpy(d, s, (size_t)(len)); d[len] = '\0'; return d; } -static char *my_strndup(const char *s, unsigned int len) { +static char *my_strndup(const char *s, size_t len) { char *d; - unsigned int slen; + size_t slen; if (s == NULL) return NULL; if (len == 0) return NULL; - d = (char *)TINYOBJ_MALLOC(len + 1); /* + '\0' */ - slen = strlen(s); - if (slen < len) { - memcpy(d, s, slen); - d[slen] = '\0'; - } else { - memcpy(d, s, len); - d[len] = '\0'; + slen = my_strnlen(s, len); + d = (char *)TINYOBJ_MALLOC(slen + 1); /* + '\0' */ + if (!d) { + return NULL; } + memcpy(d, s, slen); + d[slen] = '\0'; return d; } -char *dynamic_fgets(char **buf, unsigned int *size, FILE *file) { +char *dynamic_fgets(char **buf, size_t *size, FILE *file) { char *offset; char *ret; - unsigned int old_size; + size_t old_size; if (!(ret = fgets(*buf, (int)*size, file))) { return ret; @@ -560,8 +563,8 @@ typedef struct { unsigned long* hashes; hash_table_entry_t* entries; - unsigned int capacity; - unsigned int n; + size_t capacity; + size_t n; } hash_table_t; static unsigned long hash_djb2(const unsigned char* str) @@ -576,7 +579,7 @@ static unsigned long hash_djb2(const unsigned char* str) return hash; } -static void create_hash_table(unsigned int start_capacity, hash_table_t* hash_table) +static void create_hash_table(size_t start_capacity, hash_table_t* hash_table) { if (start_capacity < 1) start_capacity = HASH_TABLE_DEFAULT_SIZE; @@ -596,10 +599,10 @@ static void destroy_hash_table(hash_table_t* hash_table) static int hash_table_insert_value(unsigned long hash, long value, hash_table_t* hash_table) { /* Insert value */ - unsigned int start_index = hash % hash_table->capacity; - unsigned int index = start_index; + size_t start_index = hash % hash_table->capacity; + size_t index = start_index; hash_table_entry_t* start_entry = hash_table->entries + start_index; - unsigned int i; + size_t i; hash_table_entry_t* entry; for (i = 1; hash_table->entries[index].filled; i++) @@ -648,11 +651,11 @@ static hash_table_entry_t* hash_table_find(unsigned long hash, hash_table_t* has return NULL; } -static void hash_table_maybe_grow(unsigned int new_n, hash_table_t* hash_table) +static void hash_table_maybe_grow(size_t new_n, hash_table_t* hash_table) { - unsigned int new_capacity; + size_t new_capacity; hash_table_t new_hash_table; - unsigned int i; + size_t i; if (new_n <= hash_table->capacity) { return; @@ -680,7 +683,7 @@ static int hash_table_exists(const char* name, hash_table_t* hash_table) return hash_table_find(hash_djb2((const unsigned char*)name), hash_table) != NULL; } -static void hash_table_set(const char* name, unsigned int val, hash_table_t* hash_table) +static void hash_table_set(const char* name, size_t val, hash_table_t* hash_table) { /* Hash name */ unsigned long hash = hash_djb2((const unsigned char *)name); @@ -709,7 +712,7 @@ static long hash_table_get(const char* name, hash_table_t* hash_table) } static tinyobj_material_t *tinyobj_material_add(tinyobj_material_t *prev, - unsigned int num_materials, + size_t num_materials, tinyobj_material_t *new_mat) { tinyobj_material_t *dst; dst = (tinyobj_material_t *)TINYOBJ_REALLOC( @@ -720,14 +723,14 @@ static tinyobj_material_t *tinyobj_material_add(tinyobj_material_t *prev, } static int tinyobj_parse_and_index_mtl_file(tinyobj_material_t **materials_out, - unsigned int *num_materials_out, + size_t *num_materials_out, const char *filename, hash_table_t* material_table) { tinyobj_material_t material; - unsigned int buffer_size = 128; + size_t buffer_size = 128; char *linebuf; FILE *fp; - unsigned int num_materials = 0; + size_t num_materials = 0; tinyobj_material_t *materials = NULL; int has_previous_material = 0; const char *line_end = NULL; @@ -788,7 +791,7 @@ static int tinyobj_parse_and_index_mtl_file(tinyobj_material_t **materials_out, #else sscanf(token, "%s", namebuf); #endif - material.name = my_strdup(namebuf, (unsigned int) (line_end - token)); + material.name = my_strdup(namebuf, (size_t) (line_end - token)); /* Add material to material table */ if (material_table) @@ -889,56 +892,56 @@ static int tinyobj_parse_and_index_mtl_file(tinyobj_material_t **materials_out, /* ambient texture */ if ((0 == strncmp(token, "map_Ka", 6)) && IS_SPACE(token[6])) { token += 7; - material.ambient_texname = my_strdup(token, (unsigned int) (line_end - token)); + material.ambient_texname = my_strdup(token, (size_t) (line_end - token)); continue; } /* diffuse texture */ if ((0 == strncmp(token, "map_Kd", 6)) && IS_SPACE(token[6])) { token += 7; - material.diffuse_texname = my_strdup(token, (unsigned int) (line_end - token)); + material.diffuse_texname = my_strdup(token, (size_t) (line_end - token)); continue; } /* specular texture */ if ((0 == strncmp(token, "map_Ks", 6)) && IS_SPACE(token[6])) { token += 7; - material.specular_texname = my_strdup(token, (unsigned int) (line_end - token)); + material.specular_texname = my_strdup(token, (size_t) (line_end - token)); continue; } /* specular highlight texture */ if ((0 == strncmp(token, "map_Ns", 6)) && IS_SPACE(token[6])) { token += 7; - material.specular_highlight_texname = my_strdup(token, (unsigned int) (line_end - token)); + material.specular_highlight_texname = my_strdup(token, (size_t) (line_end - token)); continue; } /* bump texture */ if ((0 == strncmp(token, "map_bump", 8)) && IS_SPACE(token[8])) { token += 9; - material.bump_texname = my_strdup(token, (unsigned int) (line_end - token)); + material.bump_texname = my_strdup(token, (size_t) (line_end - token)); continue; } /* alpha texture */ if ((0 == strncmp(token, "map_d", 5)) && IS_SPACE(token[5])) { token += 6; - material.alpha_texname = my_strdup(token, (unsigned int) (line_end - token)); + material.alpha_texname = my_strdup(token, (size_t) (line_end - token)); continue; } /* bump texture */ if ((0 == strncmp(token, "bump", 4)) && IS_SPACE(token[4])) { token += 5; - material.bump_texname = my_strdup(token, (unsigned int) (line_end - token)); + material.bump_texname = my_strdup(token, (size_t) (line_end - token)); continue; } /* displacement texture */ if ((0 == strncmp(token, "disp", 4)) && IS_SPACE(token[4])) { token += 5; - material.displacement_texname = my_strdup(token, (unsigned int) (line_end - token)); + material.displacement_texname = my_strdup(token, (size_t) (line_end - token)); continue; } @@ -962,7 +965,7 @@ static int tinyobj_parse_and_index_mtl_file(tinyobj_material_t **materials_out, } int tinyobj_parse_mtl_file(tinyobj_material_t **materials_out, - unsigned int *num_materials_out, + size_t *num_materials_out, const char *filename) { return tinyobj_parse_and_index_mtl_file(materials_out, num_materials_out, filename, NULL); } @@ -988,10 +991,10 @@ typedef struct { /* @todo { Use dynamic array } */ tinyobj_vertex_index_t f[TINYOBJ_MAX_FACES_PER_F_LINE]; - unsigned int num_f; + size_t num_f; int f_num_verts[TINYOBJ_MAX_FACES_PER_F_LINE]; - unsigned int num_f_num_verts; + size_t num_f_num_verts; const char *group_name; unsigned int group_name_len; @@ -1011,7 +1014,7 @@ typedef struct { CommandType type; } Command; -static int parseLine(Command *command, const char *p, unsigned int p_len, +static int parseLine(Command *command, const char *p, size_t p_len, int triangulate) { char linebuf[4096]; const char *token; @@ -1073,7 +1076,7 @@ static int parseLine(Command *command, const char *p, unsigned int p_len, /* face */ if (token[0] == 'f' && IS_SPACE((token[1]))) { - unsigned int num_f = 0; + size_t num_f = 0; tinyobj_vertex_index_t f[TINYOBJ_MAX_FACES_PER_F_LINE]; token += 2; @@ -1090,8 +1093,8 @@ static int parseLine(Command *command, const char *p, unsigned int p_len, command->type = COMMAND_F; if (triangulate) { - unsigned int k; - unsigned int n = 0; + size_t k; + size_t n = 0; tinyobj_vertex_index_t i0 = f[0]; tinyobj_vertex_index_t i1; @@ -1113,7 +1116,7 @@ static int parseLine(Command *command, const char *p, unsigned int p_len, command->num_f_num_verts = n; } else { - unsigned int k = 0; + size_t k = 0; assert(num_f < TINYOBJ_MAX_FACES_PER_F_LINE); for (k = 0; k < num_f; k++) { command->f[k] = f[k]; @@ -1134,7 +1137,7 @@ static int parseLine(Command *command, const char *p, unsigned int p_len, skip_space(&token); command->material_name = p + (token - linebuf); command->material_name_len = (unsigned int)length_until_newline( - token, (p_len - (unsigned int)(token - linebuf)) + 1); + token, (p_len - (size_t)(token - linebuf)) + 1); command->type = COMMAND_USEMTL; return 1; @@ -1148,7 +1151,7 @@ static int parseLine(Command *command, const char *p, unsigned int p_len, skip_space(&token); command->mtllib_name = p + (token - linebuf); command->mtllib_name_len = (unsigned int)length_until_newline( - token, p_len - (unsigned int)(token - linebuf)) + + token, p_len - (size_t)(token - linebuf)) + 1; command->type = COMMAND_MTLLIB; @@ -1162,7 +1165,7 @@ static int parseLine(Command *command, const char *p, unsigned int p_len, command->group_name = p + (token - linebuf); command->group_name_len = (unsigned int)length_until_newline( - token, p_len - (unsigned int)(token - linebuf)) + + token, p_len - (size_t)(token - linebuf)) + 1; command->type = COMMAND_G; @@ -1176,7 +1179,7 @@ static int parseLine(Command *command, const char *p, unsigned int p_len, command->object_name = p + (token - linebuf); command->object_name_len = (unsigned int)length_until_newline( - token, p_len - (unsigned int)(token - linebuf)) + + token, p_len - (size_t)(token - linebuf)) + 1; command->type = COMMAND_O; @@ -1187,11 +1190,11 @@ static int parseLine(Command *command, const char *p, unsigned int p_len, } typedef struct { - unsigned int pos; - unsigned int len; + size_t pos; + size_t len; } LineInfo; -static int is_line_ending(const char *p, unsigned int i, unsigned int end_i) { +static int is_line_ending(const char *p, size_t i, size_t end_i) { if (p[i] == '\0') return 1; if (p[i] == '\n') return 1; /* this includes \r\n */ if (p[i] == '\r') { @@ -1203,23 +1206,23 @@ static int is_line_ending(const char *p, unsigned int i, unsigned int end_i) { } int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, - unsigned int *num_shapes, tinyobj_material_t **materials_out, - unsigned int *num_materials_out, const char *buf, unsigned int len, + size_t *num_shapes, tinyobj_material_t **materials_out, + size_t *num_materials_out, const char *buf, size_t len, unsigned int flags) { LineInfo *line_infos = NULL; Command *commands = NULL; - unsigned int num_lines = 0; + size_t num_lines = 0; - unsigned int num_v = 0; - unsigned int num_vn = 0; - unsigned int num_vt = 0; - unsigned int num_f = 0; - unsigned int num_faces = 0; + size_t num_v = 0; + size_t num_vn = 0; + size_t num_vt = 0; + size_t num_f = 0; + size_t num_faces = 0; int mtllib_line_index = -1; tinyobj_material_t *materials = NULL; - unsigned int num_materials = 0; + size_t num_materials = 0; hash_table_t material_table; @@ -1234,11 +1237,11 @@ int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, tinyobj_attrib_init(attrib); /* 1. Find '\n' and create line data. */ { - unsigned int i; - unsigned int end_idx = len; - unsigned int prev_pos = 0; - unsigned int line_no = 0; - unsigned int last_line_ending = 0; + size_t i; + size_t end_idx = len; + size_t prev_pos = 0; + size_t line_no = 0; + size_t last_line_ending = 0; /* Count # of lines. */ for (i = 0; i < end_idx; i++) { @@ -1280,7 +1283,7 @@ int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, /* 2. parse each line */ { - unsigned int i = 0; + size_t i = 0; for (i = 0; i < num_lines; i++) { int ret = parseLine(&commands[i], &buf[line_infos[i].pos], line_infos[i].len, flags & TINYOBJ_FLAG_TRIANGULATE); @@ -1328,13 +1331,13 @@ int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, /* Construct attributes */ { - unsigned int v_count = 0; - unsigned int n_count = 0; - unsigned int t_count = 0; - unsigned int f_count = 0; - unsigned int face_count = 0; + size_t v_count = 0; + size_t n_count = 0; + size_t t_count = 0; + size_t f_count = 0; + size_t face_count = 0; int material_id = -1; /* -1 = default unknown material. */ - unsigned int i = 0; + size_t i = 0; attrib->vertices = (float *)TINYOBJ_MALLOC(sizeof(float) * num_v * 3); attrib->num_vertices = (unsigned int)num_v; @@ -1342,13 +1345,12 @@ int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, attrib->num_normals = (unsigned int)num_vn; attrib->texcoords = (float *)TINYOBJ_MALLOC(sizeof(float) * num_vt * 2); attrib->num_texcoords = (unsigned int)num_vt; - attrib->faces = (tinyobj_vertex_index_t *)TINYOBJ_MALLOC(sizeof(tinyobj_vertex_index_t) * num_f); + attrib->faces = (tinyobj_vertex_index_t *)TINYOBJ_MALLOC( + sizeof(tinyobj_vertex_index_t) * num_f); + attrib->num_faces = (unsigned int)num_f; attrib->face_num_verts = (int *)TINYOBJ_MALLOC(sizeof(int) * num_faces); - - attrib->num_faces = (unsigned int)num_faces; - attrib->num_face_num_verts = (unsigned int)num_f; - attrib->material_ids = (int *)TINYOBJ_MALLOC(sizeof(int) * num_faces); + attrib->num_face_num_verts = (unsigned int)num_faces; for (i = 0; i < num_lines; i++) { if (commands[i].type == COMMAND_EMPTY) { @@ -1398,7 +1400,7 @@ int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, attrib->texcoords[2 * t_count + 1] = commands[i].ty; t_count++; } else if (commands[i].type == COMMAND_F) { - unsigned int k = 0; + size_t k = 0; for (k = 0; k < commands[i].num_f; k++) { tinyobj_vertex_index_t vi = commands[i].f[k]; int v_idx = fixIndex(vi.v_idx, v_count); @@ -1423,9 +1425,9 @@ int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, /* 5. Construct shape information. */ { unsigned int face_count = 0; - unsigned int i = 0; - unsigned int n = 0; - unsigned int shape_idx = 0; + size_t i = 0; + size_t n = 0; + size_t shape_idx = 0; const char *shape_name = NULL; unsigned int shape_name_len = 0; @@ -1497,7 +1499,7 @@ int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, } if ((face_count - prev_face_offset) > 0) { - unsigned int length = face_count - prev_shape_face_offset; + size_t length = face_count - prev_shape_face_offset; if (length > 0) { (*shapes)[shape_idx].name = my_strndup(prev_shape_name, prev_shape_name_len); @@ -1548,8 +1550,8 @@ void tinyobj_attrib_free(tinyobj_attrib_t *attrib) { if (attrib->material_ids) TINYOBJ_FREE(attrib->material_ids); } -void tinyobj_shapes_free(tinyobj_shape_t *shapes, unsigned int num_shapes) { - unsigned int i; +void tinyobj_shapes_free(tinyobj_shape_t *shapes, size_t num_shapes) { + size_t i; if (shapes == NULL) return; for (i = 0; i < num_shapes; i++) { @@ -1560,8 +1562,8 @@ void tinyobj_shapes_free(tinyobj_shape_t *shapes, unsigned int num_shapes) { } void tinyobj_materials_free(tinyobj_material_t *materials, - unsigned int num_materials) { - unsigned int i; + size_t num_materials) { + size_t i; if (materials == NULL) return; for (i = 0; i < num_materials; i++) { From d93f8eadf838eaa688c5e139c76c7f02b1369f40 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 8 Sep 2019 01:11:53 +0200 Subject: [PATCH 058/123] REVIEW: GetFileName(): Security checks --- src/core.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/core.c b/src/core.c index 9e26a6399..44ac12b52 100644 --- a/src/core.c +++ b/src/core.c @@ -1838,9 +1838,10 @@ static const char *strprbrk(const char *s, const char *charset) // Get pointer to filename for a path string const char *GetFileName(const char *filePath) { - const char *fileName = strprbrk(filePath, "\\/"); + const char *fileName = NULL; + if (filePath != NULL) fileName = strprbrk(filePath, "\\/"); - if (!fileName || fileName == filePath) return filePath; + if (!fileName || (fileName == filePath)) return filePath; return fileName + 1; } @@ -1853,7 +1854,7 @@ const char *GetFileNameWithoutExt(const char *filePath) static char fileName[MAX_FILENAMEWITHOUTEXT_LENGTH]; memset(fileName, 0, MAX_FILENAMEWITHOUTEXT_LENGTH); - strcpy(fileName, GetFileName(filePath)); // Get filename with extension + if (filePath != NULL) strcpy(fileName, GetFileName(filePath)); // Get filename with extension int len = strlen(fileName); From dec5f332ad9467d778c188be24169428907df0be Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 8 Sep 2019 16:46:08 +0200 Subject: [PATCH 059/123] Revert "Update tinyobj_loader_c.h" This reverts commit 53b32f1c209051e87871c4cdd2e09828d8ac407e. --- src/external/tinyobj_loader_c.h | 202 ++++++++++++++++---------------- 1 file changed, 100 insertions(+), 102 deletions(-) diff --git a/src/external/tinyobj_loader_c.h b/src/external/tinyobj_loader_c.h index 30ff22eb0..846784fa3 100644 --- a/src/external/tinyobj_loader_c.h +++ b/src/external/tinyobj_loader_c.h @@ -24,8 +24,8 @@ #ifndef TINOBJ_LOADER_C_H_ #define TINOBJ_LOADER_C_H_ -/* @todo { Remove stddef dependency. size_t? } */ -#include +/* @todo { Remove stddef dependency. unsigned int? } ---> RAY: DONE. */ +//#include typedef struct { char *name; @@ -93,18 +93,18 @@ typedef struct { * Returns TINYOBJ_ERR_*** when there is an error. */ extern int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, - size_t *num_shapes, tinyobj_material_t **materials, - size_t *num_materials, const char *buf, size_t len, + unsigned int *num_shapes, tinyobj_material_t **materials, + unsigned int *num_materials, const char *buf, unsigned int len, unsigned int flags); extern int tinyobj_parse_mtl_file(tinyobj_material_t **materials_out, - size_t *num_materials_out, + unsigned int *num_materials_out, const char *filename); extern void tinyobj_attrib_init(tinyobj_attrib_t *attrib); extern void tinyobj_attrib_free(tinyobj_attrib_t *attrib); -extern void tinyobj_shapes_free(tinyobj_shape_t *shapes, size_t num_shapes); +extern void tinyobj_shapes_free(tinyobj_shape_t *shapes, unsigned int num_shapes); extern void tinyobj_materials_free(tinyobj_material_t *materials, - size_t num_materials); + unsigned int num_materials); #ifdef TINYOBJ_LOADER_C_IMPLEMENTATION #include @@ -155,8 +155,8 @@ static int until_space(const char *token) { return (int)(p - token); } -static size_t length_until_newline(const char *token, size_t n) { - size_t len = 0; +static unsigned int length_until_newline(const char *token, unsigned int n) { + unsigned int len = 0; /* Assume token[n-1] = '\0' */ for (len = 0; len < n - 1; len++) { @@ -171,8 +171,8 @@ static size_t length_until_newline(const char *token, size_t n) { return len; } -static size_t length_until_line_feed(const char *token, size_t n) { - size_t len = 0; +static unsigned int length_until_line_feed(const char *token, unsigned int n) { + unsigned int len = 0; /* Assume token[n-1] = '\0' */ for (len = 0; len < n; len++) { @@ -202,7 +202,7 @@ static int my_atoi(const char *c) { } /* Make index zero-base, and also support relative index. */ -static int fixIndex(int idx, size_t n) { +static int fixIndex(int idx, unsigned int n) { if (idx > 0) return idx - 1; if (idx == 0) return 0; return (int)n + idx; /* negative value = relative */ @@ -453,14 +453,9 @@ static void parseFloat3(float *x, float *y, float *z, const char **token) { (*z) = parseFloat(token); } -static size_t my_strnlen(const char *s, size_t n) { - const char *p = memchr(s, 0, n); - return p ? (size_t)(p - s) : n; -} - -static char *my_strdup(const char *s, size_t max_length) { +static char *my_strdup(const char *s, unsigned int max_length) { char *d; - size_t len; + unsigned int len; if (s == NULL) return NULL; @@ -470,34 +465,36 @@ static char *my_strdup(const char *s, size_t max_length) { /* trim line ending and append '\0' */ d = (char *)TINYOBJ_MALLOC(len + 1); /* + '\0' */ - memcpy(d, s, (size_t)(len)); + memcpy(d, s, (unsigned int)(len)); d[len] = '\0'; return d; } -static char *my_strndup(const char *s, size_t len) { +static char *my_strndup(const char *s, unsigned int len) { char *d; - size_t slen; + unsigned int slen; if (s == NULL) return NULL; if (len == 0) return NULL; - slen = my_strnlen(s, len); - d = (char *)TINYOBJ_MALLOC(slen + 1); /* + '\0' */ - if (!d) { - return NULL; + d = (char *)TINYOBJ_MALLOC(len + 1); /* + '\0' */ + slen = strlen(s); + if (slen < len) { + memcpy(d, s, slen); + d[slen] = '\0'; + } else { + memcpy(d, s, len); + d[len] = '\0'; } - memcpy(d, s, slen); - d[slen] = '\0'; return d; } -char *dynamic_fgets(char **buf, size_t *size, FILE *file) { +char *dynamic_fgets(char **buf, unsigned int *size, FILE *file) { char *offset; char *ret; - size_t old_size; + unsigned int old_size; if (!(ret = fgets(*buf, (int)*size, file))) { return ret; @@ -563,8 +560,8 @@ typedef struct { unsigned long* hashes; hash_table_entry_t* entries; - size_t capacity; - size_t n; + unsigned int capacity; + unsigned int n; } hash_table_t; static unsigned long hash_djb2(const unsigned char* str) @@ -579,7 +576,7 @@ static unsigned long hash_djb2(const unsigned char* str) return hash; } -static void create_hash_table(size_t start_capacity, hash_table_t* hash_table) +static void create_hash_table(unsigned int start_capacity, hash_table_t* hash_table) { if (start_capacity < 1) start_capacity = HASH_TABLE_DEFAULT_SIZE; @@ -599,10 +596,10 @@ static void destroy_hash_table(hash_table_t* hash_table) static int hash_table_insert_value(unsigned long hash, long value, hash_table_t* hash_table) { /* Insert value */ - size_t start_index = hash % hash_table->capacity; - size_t index = start_index; + unsigned int start_index = hash % hash_table->capacity; + unsigned int index = start_index; hash_table_entry_t* start_entry = hash_table->entries + start_index; - size_t i; + unsigned int i; hash_table_entry_t* entry; for (i = 1; hash_table->entries[index].filled; i++) @@ -651,11 +648,11 @@ static hash_table_entry_t* hash_table_find(unsigned long hash, hash_table_t* has return NULL; } -static void hash_table_maybe_grow(size_t new_n, hash_table_t* hash_table) +static void hash_table_maybe_grow(unsigned int new_n, hash_table_t* hash_table) { - size_t new_capacity; + unsigned int new_capacity; hash_table_t new_hash_table; - size_t i; + unsigned int i; if (new_n <= hash_table->capacity) { return; @@ -683,7 +680,7 @@ static int hash_table_exists(const char* name, hash_table_t* hash_table) return hash_table_find(hash_djb2((const unsigned char*)name), hash_table) != NULL; } -static void hash_table_set(const char* name, size_t val, hash_table_t* hash_table) +static void hash_table_set(const char* name, unsigned int val, hash_table_t* hash_table) { /* Hash name */ unsigned long hash = hash_djb2((const unsigned char *)name); @@ -712,7 +709,7 @@ static long hash_table_get(const char* name, hash_table_t* hash_table) } static tinyobj_material_t *tinyobj_material_add(tinyobj_material_t *prev, - size_t num_materials, + unsigned int num_materials, tinyobj_material_t *new_mat) { tinyobj_material_t *dst; dst = (tinyobj_material_t *)TINYOBJ_REALLOC( @@ -723,14 +720,14 @@ static tinyobj_material_t *tinyobj_material_add(tinyobj_material_t *prev, } static int tinyobj_parse_and_index_mtl_file(tinyobj_material_t **materials_out, - size_t *num_materials_out, + unsigned int *num_materials_out, const char *filename, hash_table_t* material_table) { tinyobj_material_t material; - size_t buffer_size = 128; + unsigned int buffer_size = 128; char *linebuf; FILE *fp; - size_t num_materials = 0; + unsigned int num_materials = 0; tinyobj_material_t *materials = NULL; int has_previous_material = 0; const char *line_end = NULL; @@ -791,7 +788,7 @@ static int tinyobj_parse_and_index_mtl_file(tinyobj_material_t **materials_out, #else sscanf(token, "%s", namebuf); #endif - material.name = my_strdup(namebuf, (size_t) (line_end - token)); + material.name = my_strdup(namebuf, (unsigned int) (line_end - token)); /* Add material to material table */ if (material_table) @@ -892,56 +889,56 @@ static int tinyobj_parse_and_index_mtl_file(tinyobj_material_t **materials_out, /* ambient texture */ if ((0 == strncmp(token, "map_Ka", 6)) && IS_SPACE(token[6])) { token += 7; - material.ambient_texname = my_strdup(token, (size_t) (line_end - token)); + material.ambient_texname = my_strdup(token, (unsigned int) (line_end - token)); continue; } /* diffuse texture */ if ((0 == strncmp(token, "map_Kd", 6)) && IS_SPACE(token[6])) { token += 7; - material.diffuse_texname = my_strdup(token, (size_t) (line_end - token)); + material.diffuse_texname = my_strdup(token, (unsigned int) (line_end - token)); continue; } /* specular texture */ if ((0 == strncmp(token, "map_Ks", 6)) && IS_SPACE(token[6])) { token += 7; - material.specular_texname = my_strdup(token, (size_t) (line_end - token)); + material.specular_texname = my_strdup(token, (unsigned int) (line_end - token)); continue; } /* specular highlight texture */ if ((0 == strncmp(token, "map_Ns", 6)) && IS_SPACE(token[6])) { token += 7; - material.specular_highlight_texname = my_strdup(token, (size_t) (line_end - token)); + material.specular_highlight_texname = my_strdup(token, (unsigned int) (line_end - token)); continue; } /* bump texture */ if ((0 == strncmp(token, "map_bump", 8)) && IS_SPACE(token[8])) { token += 9; - material.bump_texname = my_strdup(token, (size_t) (line_end - token)); + material.bump_texname = my_strdup(token, (unsigned int) (line_end - token)); continue; } /* alpha texture */ if ((0 == strncmp(token, "map_d", 5)) && IS_SPACE(token[5])) { token += 6; - material.alpha_texname = my_strdup(token, (size_t) (line_end - token)); + material.alpha_texname = my_strdup(token, (unsigned int) (line_end - token)); continue; } /* bump texture */ if ((0 == strncmp(token, "bump", 4)) && IS_SPACE(token[4])) { token += 5; - material.bump_texname = my_strdup(token, (size_t) (line_end - token)); + material.bump_texname = my_strdup(token, (unsigned int) (line_end - token)); continue; } /* displacement texture */ if ((0 == strncmp(token, "disp", 4)) && IS_SPACE(token[4])) { token += 5; - material.displacement_texname = my_strdup(token, (size_t) (line_end - token)); + material.displacement_texname = my_strdup(token, (unsigned int) (line_end - token)); continue; } @@ -965,7 +962,7 @@ static int tinyobj_parse_and_index_mtl_file(tinyobj_material_t **materials_out, } int tinyobj_parse_mtl_file(tinyobj_material_t **materials_out, - size_t *num_materials_out, + unsigned int *num_materials_out, const char *filename) { return tinyobj_parse_and_index_mtl_file(materials_out, num_materials_out, filename, NULL); } @@ -991,10 +988,10 @@ typedef struct { /* @todo { Use dynamic array } */ tinyobj_vertex_index_t f[TINYOBJ_MAX_FACES_PER_F_LINE]; - size_t num_f; + unsigned int num_f; int f_num_verts[TINYOBJ_MAX_FACES_PER_F_LINE]; - size_t num_f_num_verts; + unsigned int num_f_num_verts; const char *group_name; unsigned int group_name_len; @@ -1014,7 +1011,7 @@ typedef struct { CommandType type; } Command; -static int parseLine(Command *command, const char *p, size_t p_len, +static int parseLine(Command *command, const char *p, unsigned int p_len, int triangulate) { char linebuf[4096]; const char *token; @@ -1076,7 +1073,7 @@ static int parseLine(Command *command, const char *p, size_t p_len, /* face */ if (token[0] == 'f' && IS_SPACE((token[1]))) { - size_t num_f = 0; + unsigned int num_f = 0; tinyobj_vertex_index_t f[TINYOBJ_MAX_FACES_PER_F_LINE]; token += 2; @@ -1093,8 +1090,8 @@ static int parseLine(Command *command, const char *p, size_t p_len, command->type = COMMAND_F; if (triangulate) { - size_t k; - size_t n = 0; + unsigned int k; + unsigned int n = 0; tinyobj_vertex_index_t i0 = f[0]; tinyobj_vertex_index_t i1; @@ -1116,7 +1113,7 @@ static int parseLine(Command *command, const char *p, size_t p_len, command->num_f_num_verts = n; } else { - size_t k = 0; + unsigned int k = 0; assert(num_f < TINYOBJ_MAX_FACES_PER_F_LINE); for (k = 0; k < num_f; k++) { command->f[k] = f[k]; @@ -1137,7 +1134,7 @@ static int parseLine(Command *command, const char *p, size_t p_len, skip_space(&token); command->material_name = p + (token - linebuf); command->material_name_len = (unsigned int)length_until_newline( - token, (p_len - (size_t)(token - linebuf)) + 1); + token, (p_len - (unsigned int)(token - linebuf)) + 1); command->type = COMMAND_USEMTL; return 1; @@ -1151,7 +1148,7 @@ static int parseLine(Command *command, const char *p, size_t p_len, skip_space(&token); command->mtllib_name = p + (token - linebuf); command->mtllib_name_len = (unsigned int)length_until_newline( - token, p_len - (size_t)(token - linebuf)) + + token, p_len - (unsigned int)(token - linebuf)) + 1; command->type = COMMAND_MTLLIB; @@ -1165,7 +1162,7 @@ static int parseLine(Command *command, const char *p, size_t p_len, command->group_name = p + (token - linebuf); command->group_name_len = (unsigned int)length_until_newline( - token, p_len - (size_t)(token - linebuf)) + + token, p_len - (unsigned int)(token - linebuf)) + 1; command->type = COMMAND_G; @@ -1179,7 +1176,7 @@ static int parseLine(Command *command, const char *p, size_t p_len, command->object_name = p + (token - linebuf); command->object_name_len = (unsigned int)length_until_newline( - token, p_len - (size_t)(token - linebuf)) + + token, p_len - (unsigned int)(token - linebuf)) + 1; command->type = COMMAND_O; @@ -1190,11 +1187,11 @@ static int parseLine(Command *command, const char *p, size_t p_len, } typedef struct { - size_t pos; - size_t len; + unsigned int pos; + unsigned int len; } LineInfo; -static int is_line_ending(const char *p, size_t i, size_t end_i) { +static int is_line_ending(const char *p, unsigned int i, unsigned int end_i) { if (p[i] == '\0') return 1; if (p[i] == '\n') return 1; /* this includes \r\n */ if (p[i] == '\r') { @@ -1206,23 +1203,23 @@ static int is_line_ending(const char *p, size_t i, size_t end_i) { } int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, - size_t *num_shapes, tinyobj_material_t **materials_out, - size_t *num_materials_out, const char *buf, size_t len, + unsigned int *num_shapes, tinyobj_material_t **materials_out, + unsigned int *num_materials_out, const char *buf, unsigned int len, unsigned int flags) { LineInfo *line_infos = NULL; Command *commands = NULL; - size_t num_lines = 0; + unsigned int num_lines = 0; - size_t num_v = 0; - size_t num_vn = 0; - size_t num_vt = 0; - size_t num_f = 0; - size_t num_faces = 0; + unsigned int num_v = 0; + unsigned int num_vn = 0; + unsigned int num_vt = 0; + unsigned int num_f = 0; + unsigned int num_faces = 0; int mtllib_line_index = -1; tinyobj_material_t *materials = NULL; - size_t num_materials = 0; + unsigned int num_materials = 0; hash_table_t material_table; @@ -1237,11 +1234,11 @@ int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, tinyobj_attrib_init(attrib); /* 1. Find '\n' and create line data. */ { - size_t i; - size_t end_idx = len; - size_t prev_pos = 0; - size_t line_no = 0; - size_t last_line_ending = 0; + unsigned int i; + unsigned int end_idx = len; + unsigned int prev_pos = 0; + unsigned int line_no = 0; + unsigned int last_line_ending = 0; /* Count # of lines. */ for (i = 0; i < end_idx; i++) { @@ -1283,7 +1280,7 @@ int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, /* 2. parse each line */ { - size_t i = 0; + unsigned int i = 0; for (i = 0; i < num_lines; i++) { int ret = parseLine(&commands[i], &buf[line_infos[i].pos], line_infos[i].len, flags & TINYOBJ_FLAG_TRIANGULATE); @@ -1331,13 +1328,13 @@ int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, /* Construct attributes */ { - size_t v_count = 0; - size_t n_count = 0; - size_t t_count = 0; - size_t f_count = 0; - size_t face_count = 0; + unsigned int v_count = 0; + unsigned int n_count = 0; + unsigned int t_count = 0; + unsigned int f_count = 0; + unsigned int face_count = 0; int material_id = -1; /* -1 = default unknown material. */ - size_t i = 0; + unsigned int i = 0; attrib->vertices = (float *)TINYOBJ_MALLOC(sizeof(float) * num_v * 3); attrib->num_vertices = (unsigned int)num_v; @@ -1345,12 +1342,13 @@ int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, attrib->num_normals = (unsigned int)num_vn; attrib->texcoords = (float *)TINYOBJ_MALLOC(sizeof(float) * num_vt * 2); attrib->num_texcoords = (unsigned int)num_vt; - attrib->faces = (tinyobj_vertex_index_t *)TINYOBJ_MALLOC( - sizeof(tinyobj_vertex_index_t) * num_f); - attrib->num_faces = (unsigned int)num_f; + attrib->faces = (tinyobj_vertex_index_t *)TINYOBJ_MALLOC(sizeof(tinyobj_vertex_index_t) * num_f); attrib->face_num_verts = (int *)TINYOBJ_MALLOC(sizeof(int) * num_faces); + + attrib->num_faces = (unsigned int)num_faces; + attrib->num_face_num_verts = (unsigned int)num_f; + attrib->material_ids = (int *)TINYOBJ_MALLOC(sizeof(int) * num_faces); - attrib->num_face_num_verts = (unsigned int)num_faces; for (i = 0; i < num_lines; i++) { if (commands[i].type == COMMAND_EMPTY) { @@ -1400,7 +1398,7 @@ int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, attrib->texcoords[2 * t_count + 1] = commands[i].ty; t_count++; } else if (commands[i].type == COMMAND_F) { - size_t k = 0; + unsigned int k = 0; for (k = 0; k < commands[i].num_f; k++) { tinyobj_vertex_index_t vi = commands[i].f[k]; int v_idx = fixIndex(vi.v_idx, v_count); @@ -1425,9 +1423,9 @@ int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, /* 5. Construct shape information. */ { unsigned int face_count = 0; - size_t i = 0; - size_t n = 0; - size_t shape_idx = 0; + unsigned int i = 0; + unsigned int n = 0; + unsigned int shape_idx = 0; const char *shape_name = NULL; unsigned int shape_name_len = 0; @@ -1499,7 +1497,7 @@ int tinyobj_parse_obj(tinyobj_attrib_t *attrib, tinyobj_shape_t **shapes, } if ((face_count - prev_face_offset) > 0) { - size_t length = face_count - prev_shape_face_offset; + unsigned int length = face_count - prev_shape_face_offset; if (length > 0) { (*shapes)[shape_idx].name = my_strndup(prev_shape_name, prev_shape_name_len); @@ -1550,8 +1548,8 @@ void tinyobj_attrib_free(tinyobj_attrib_t *attrib) { if (attrib->material_ids) TINYOBJ_FREE(attrib->material_ids); } -void tinyobj_shapes_free(tinyobj_shape_t *shapes, size_t num_shapes) { - size_t i; +void tinyobj_shapes_free(tinyobj_shape_t *shapes, unsigned int num_shapes) { + unsigned int i; if (shapes == NULL) return; for (i = 0; i < num_shapes; i++) { @@ -1562,8 +1560,8 @@ void tinyobj_shapes_free(tinyobj_shape_t *shapes, size_t num_shapes) { } void tinyobj_materials_free(tinyobj_material_t *materials, - size_t num_materials) { - size_t i; + unsigned int num_materials) { + unsigned int i; if (materials == NULL) return; for (i = 0; i < num_materials; i++) { From 2d6bc1ff429a25313415c55f6683956cf6f5ebdc Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 9 Sep 2019 21:54:40 +0200 Subject: [PATCH 060/123] Update raudio.h --- src/raudio.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/raudio.h b/src/raudio.h index e508d380e..eadbf33b4 100644 --- a/src/raudio.h +++ b/src/raudio.h @@ -112,7 +112,6 @@ typedef struct Music { void *ctxData; // Audio context data, depends on type unsigned int sampleCount; // Total number of samples - unsigned int sampleLeft; // Number of samples left to end unsigned int loopCount; // Loops count (times music will play), 0 means infinite loop AudioStream stream; // Audio stream From ae2452d280a07952529ea82bcc2288d73bc3ccdf Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 9 Sep 2019 21:56:16 +0200 Subject: [PATCH 061/123] ADDED small compression API - ADDED: CompressData() - ADDED: DecompressData() --- src/config.h | 3 ++- src/config.h.in | 2 ++ src/core.c | 37 +++++++++++++++++++++++++++++++++++++ src/raylib.h | 3 +++ 4 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/config.h b/src/config.h index 250b702a1..068e2c438 100644 --- a/src/config.h +++ b/src/config.h @@ -56,7 +56,8 @@ #define SUPPORT_GIF_RECORDING 1 // Allow scale all the drawn content to match the high-DPI equivalent size (only PLATFORM_DESKTOP) //#define SUPPORT_HIGH_DPI 1 - +// Support CompressData() and DecompressData() functions +#define SUPPORT_COMPRESSION_API 1 //------------------------------------------------------------------------------------ // Module: rlgl - Configuration Flags diff --git a/src/config.h.in b/src/config.h.in index 10e377269..6a71b77be 100644 --- a/src/config.h.in +++ b/src/config.h.in @@ -19,6 +19,8 @@ #cmakedefine SUPPORT_GIF_RECORDING 1 // Support high DPI displays #cmakedefine SUPPORT_HIGH_DPI 1 +// Support CompressData() and DecompressData() functions +#cmakedefine SUPPORT_COMPRESSION_API 1 // rlgl.h // Support VR simulation functionality (stereo rendering) diff --git a/src/core.c b/src/core.c index 44ac12b52..1506a4fa7 100644 --- a/src/core.c +++ b/src/core.c @@ -74,6 +74,11 @@ * Allow scale all the drawn content to match the high-DPI equivalent size (only PLATFORM_DESKTOP) * NOTE: This flag is forced on macOS, since most displays are high-DPI * +* #define SUPPORT_COMPRESSION_API +* Support CompressData() and DecompressData() functions, those functions use zlib implementation +* provided by stb_image and stb_image_write libraries, so, those libraries must be enabled on textures module +* for linkage +* * DEPENDENCIES: * rglfw - Manage graphic device, OpenGL context and inputs on PLATFORM_DESKTOP (Windows, Linux, OSX. FreeBSD, OpenBSD, NetBSD, DragonFly) * raymath - 3D math functionality (Vector2, Vector3, Matrix, Quaternion) @@ -252,6 +257,12 @@ #include // Emscripten HTML5 library #endif +#if defined(SUPPORT_COMPRESSION_API) + // NOTE: Those declarations require stb_image and stb_image_write definitions, included in textures module + unsigned char *stbi_zlib_compress(unsigned char *data, int data_len, int *out_len, int quality); + char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen); +#endif + //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- @@ -2019,6 +2030,32 @@ long GetFileModTime(const char *fileName) return 0; } +// Compress data (DEFLATE algorythm) +unsigned char *CompressData(unsigned char *data, int dataLength, int *compDataLength) +{ + #define COMPRESSION_QUALITY_DEFLATE 8 + + unsigned char *compData = NULL; + +#if defined(SUPPORT_COMPRESSION_API) + compData = stbi_zlib_compress(data, dataLength, compDataLength, COMPRESSION_QUALITY_DEFLATE); +#endif + + return compData; +} + +// Decompress data (DEFLATE algorythm) +char *DecompressData(char *compData, int compDataLength, int *dataLength) +{ + char *data = NULL; + +#if defined(SUPPORT_COMPRESSION_API) + data = stbi_zlib_decode_malloc(compData, compDataLength, dataLength); +#endif + + return data; +} + // Save integer value to storage file (to defined position) // NOTE: Storage positions is directly related to file memory layout (4 bytes each integer) void StorageSaveValue(int position, int value) diff --git a/src/raylib.h b/src/raylib.h index ed0314d37..3bbf471b3 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -955,6 +955,9 @@ RLAPI char **GetDroppedFiles(int *count); // Get dropped RLAPI void ClearDroppedFiles(void); // Clear dropped files paths buffer (free memory) RLAPI long GetFileModTime(const char *fileName); // Get file modification time (last write time) +RLAPI unsigned char *CompressData(unsigned char *data, int dataLength, int *compDataLength); // Compress data (DEFLATE algorythm) +RLAPI char *DecompressData(char *compData, int compDataLength, int *dataLength); // Decompress data (DEFLATE algorythm) + // Persistent storage management RLAPI void StorageSaveValue(int position, int value); // Save integer value to storage file (to defined position) RLAPI int StorageLoadValue(int position); // Load integer value from storage file (from defined position) From 0a2177b4bc387951e69a2259f3cd78714d18de38 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 10 Sep 2019 12:43:44 +0200 Subject: [PATCH 062/123] ADDED: GetWindowPosition() --- src/core.c | 11 +++++++++++ src/raylib.h | 1 + 2 files changed, 12 insertions(+) diff --git a/src/core.c b/src/core.c index 1506a4fa7..fad2c485f 100644 --- a/src/core.c +++ b/src/core.c @@ -1064,6 +1064,17 @@ int GetMonitorPhysicalHeight(int monitor) return 0; } +// Get window position XY on monitor +Vector2 GetWindowPosition(void) +{ + int x = 0; + int y = 0; +#if defined(PLATFORM_DESKTOP) + glfwGetWindowPos(window, &x, &y); +#endif + return (Vector2){ (float)x, (float)y }; +} + // Get the human-readable, UTF-8 encoded name of the primary monitor const char *GetMonitorName(int monitor) { diff --git a/src/raylib.h b/src/raylib.h index 3bbf471b3..d90dedf07 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -882,6 +882,7 @@ RLAPI int GetMonitorWidth(int monitor); // Get primary RLAPI int GetMonitorHeight(int monitor); // Get primary monitor height RLAPI int GetMonitorPhysicalWidth(int monitor); // Get primary monitor physical width in millimetres RLAPI int GetMonitorPhysicalHeight(int monitor); // Get primary monitor physical height in millimetres +RLAPI Vector2 GetWindowPosition(void); // Get window position XY on monitor RLAPI const char *GetMonitorName(int monitor); // Get the human-readable, UTF-8 encoded name of the primary monitor RLAPI const char *GetClipboardText(void); // Get clipboard text content RLAPI void SetClipboardText(const char *text); // Set clipboard text content From c247c371c35dbf3b078c91e77c071268530fb4a0 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 12 Sep 2019 16:25:14 +0200 Subject: [PATCH 063/123] REDESIGNED: models_obj_loading > models_loading --- examples/Makefile | 3 +- examples/models/models_loading.c | 142 +++++++++++++++++++++++++ examples/models/models_loading.png | Bin 0 -> 222339 bytes examples/models/models_obj_loading.c | 80 -------------- examples/models/models_obj_loading.png | Bin 266343 -> 0 bytes 5 files changed, 143 insertions(+), 82 deletions(-) create mode 100644 examples/models/models_loading.c create mode 100644 examples/models/models_loading.png delete mode 100644 examples/models/models_obj_loading.c delete mode 100644 examples/models/models_obj_loading.png diff --git a/examples/Makefile b/examples/Makefile index ce02d55fa..26cb23283 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -420,8 +420,7 @@ EXAMPLES = \ models/models_material_pbr \ models/models_mesh_generation \ models/models_mesh_picking \ - models/models_obj_loading \ - models/models_obj_viewer \ + models/models_loading \ models/models_orthographic_projection \ models/models_rlgl_solar_system \ models/models_skybox \ diff --git a/examples/models/models_loading.c b/examples/models/models_loading.c new file mode 100644 index 000000000..af9c5e390 --- /dev/null +++ b/examples/models/models_loading.c @@ -0,0 +1,142 @@ +/******************************************************************************************* +* +* raylib [models] example - Models loading +* +* raylib supports multiple models file formats: +* +* - OBJ > Text file, must include vertex position-texcoords-normals information, +* if files references some .mtl materials file, it will be loaded (or try to) +* - GLTF > Modern text/binary file format, includes lot of information and it could +* also reference external files, raylib will try loading mesh and materials data +* - IQM > Binary file format including mesh vertex data but also animation data, +* raylib can load .iqm animations. +* +* This example has been created using raylib 2.6 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2014-2019 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [models] example - models loading"); + + // Define the camera to look into our 3d world + Camera camera = { 0 }; + camera.position = (Vector3){ 50.0f, 50.0f, 50.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 10.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.type = CAMERA_PERSPECTIVE; // Camera mode type + + Model model = LoadModel("resources/models/castle.obj"); // Load model + Texture2D texture = LoadTexture("resources/models/castle_diffuse.png"); // Load model texture + model.materials[0].maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture + + Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position + + BoundingBox bounds = MeshBoundingBox(model.meshes[0]); // Set model bounds + + // NOTE: bounds are calculated from the original size of the model, + // if model is scaled on drawing, bounds must be also scaled + + SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode + + bool selected = false; // Selected object flag + + 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); + + // Load new models/textures on drag&drop + if (IsFileDropped()) + { + int count = 0; + char **droppedFiles = GetDroppedFiles(&count); + + if (count == 1) // Only support one file dropped + { + if (IsFileExtension(droppedFiles[0], ".obj") || + IsFileExtension(droppedFiles[0], ".gltf") || + IsFileExtension(droppedFiles[0], ".iqm")) // Model file formats supported + { + UnloadModel(model); // Unload previous model + model = LoadModel(droppedFiles[0]); // Load new model + model.materials[0].maps[MAP_DIFFUSE].texture = texture; // Set current map diffuse texture + + bounds = MeshBoundingBox(model.meshes[0]); + + // TODO: Move camera position from target enough distance to visualize model properly + } + else if (IsFileExtension(droppedFiles[0], ".png")) // Texture file formats supported + { + // Unload current model texture and load new one + UnloadTexture(texture); + texture = LoadTexture(droppedFiles[0]); + model.materials[0].maps[MAP_DIFFUSE].texture = texture; + } + } + + ClearDroppedFiles(); // Clear internal buffers + } + + // Select model on mouse click + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) + { + // Check collision between ray and box + if (CheckCollisionRayBox(GetMouseRay(GetMousePosition(), camera), bounds)) selected = !selected; + else selected = false; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + BeginMode3D(camera); + + DrawModel(model, position, 1.0f, WHITE); // Draw 3d model with texture + + DrawGrid(20, 10.0f); // Draw a grid + + if (selected) DrawBoundingBox(bounds, GREEN); // Draw selection box + + EndMode3D(); + + DrawText("Drag & drop model to load mesh/texture.", 10, GetScreenHeight() - 20, 10, DARKGRAY); + if (selected) DrawText("MODEL SELECTED", GetScreenWidth() - 110, 10, 10, GREEN); + + DrawText("(c) Castle 3D model by Alberto Cano", screenWidth - 200, screenHeight - 20, 10, GRAY); + + DrawFPS(10, 10); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadTexture(texture); // Unload texture + UnloadModel(model); // Unload model + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file diff --git a/examples/models/models_loading.png b/examples/models/models_loading.png new file mode 100644 index 0000000000000000000000000000000000000000..8ad8cb1950745696e1e123b9541a56e46b7e4870 GIT binary patch literal 222339 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⁣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⤅qUQt$!q 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 z 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%0DMD!S94Xma!Dx;!D4G04wV3+#oR%&*mb-l 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 literal 0 HcmV?d00001 diff --git a/examples/models/models_obj_loading.c b/examples/models/models_obj_loading.c deleted file mode 100644 index 51578bc1c..000000000 --- a/examples/models/models_obj_loading.c +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - Load and draw a 3d model (OBJ) -* -* This example has been created using raylib 1.3 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [models] example - obj model loading"); - - // Define the camera to look into our 3d world - Camera camera = { 0 }; - camera.position = (Vector3){ 8.0f, 8.0f, 8.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 2.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.type = CAMERA_PERSPECTIVE; // Camera mode type - - Model model = LoadModel("resources/models/castle.obj"); // Load OBJ model - Texture2D texture = LoadTexture("resources/models/castle_diffuse.png"); // Load model texture - model.materials[0].maps[MAP_DIFFUSE].texture = texture; // Set map diffuse texture - Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position - - 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 - //---------------------------------------------------------------------------------- - //... - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawModel(model, position, 0.2f, WHITE); // Draw 3d model with texture - - DrawGrid(10, 1.0f); // Draw a grid - - DrawGizmo(position); // Draw gizmo - - EndMode3D(); - - DrawText("(c) Castle 3D model by Alberto Cano", screenWidth - 200, screenHeight - 20, 10, GRAY); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(texture); // Unload texture - UnloadModel(model); // Unload model - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/examples/models/models_obj_loading.png b/examples/models/models_obj_loading.png deleted file mode 100644 index 098aa601f7073268f102406e10edf7d2f588d9c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266343 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%0D3;^T8l5*C`Fj34h>@gD)U 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

5Iccx9A#zBoMP1mnR0(BC>3LN6Nic|+ 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 From ce58b168f6927a576aca952036439c01cd873717 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 12 Sep 2019 16:25:33 +0200 Subject: [PATCH 064/123] REMOVED: models_obj_viewer --- examples/models/models_obj_viewer.c | 128 -------------------------- examples/models/models_obj_viewer.png | Bin 96822 -> 0 bytes 2 files changed, 128 deletions(-) delete mode 100644 examples/models/models_obj_viewer.c delete mode 100644 examples/models/models_obj_viewer.png diff --git a/examples/models/models_obj_viewer.c b/examples/models/models_obj_viewer.c deleted file mode 100644 index 1d15fdd9c..000000000 --- a/examples/models/models_obj_viewer.c +++ /dev/null @@ -1,128 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - OBJ models viewer -* -* This example has been created using raylib 2.0 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2014-2019 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#include // Required for: strcpy() - -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib example - obj viewer"); - - // Define the camera to look into our 3d world - Camera camera = { { 30.0f, 30.0f, 30.0f }, { 0.0f, 10.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; - - Model model = LoadModel("resources/models/turret.obj"); // Load default model obj - Texture2D texture = LoadTexture("resources/models/turret_diffuse.png"); // Load default model texture - model.materials[0].maps[MAP_DIFFUSE].texture = texture; // Bind texture to model - - Vector3 position = { 0.0, 0.0, 0.0 }; // Set model position - BoundingBox bounds = MeshBoundingBox(model.meshes[0]); // Set model bounds - bool selected = false; // Selected object flag - - SetCameraMode(camera, CAMERA_FREE); // Set a free camera mode - - char objFilename[64] = "turret.obj"; - - 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 - //---------------------------------------------------------------------------------- - if (IsFileDropped()) - { - int count = 0; - char **droppedFiles = GetDroppedFiles(&count); - - if (count == 1) - { - if (IsFileExtension(droppedFiles[0], ".obj")) - { - for (int i = 0; i < model.meshCount; i++) UnloadMesh(model.meshes[i]); - model.meshes = LoadMeshes(droppedFiles[0], &model.meshCount); - bounds = MeshBoundingBox(model.meshes[0]); - } - else if (IsFileExtension(droppedFiles[0], ".png")) - { - UnloadTexture(texture); - texture = LoadTexture(droppedFiles[0]); - model.materials[0].maps[MAP_DIFFUSE].texture = texture; - } - - strcpy(objFilename, GetFileName(droppedFiles[0])); - } - - ClearDroppedFiles(); // Clear internal buffers - } - - UpdateCamera(&camera); - - // Select model on mouse click - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) - { - // Check collision between ray and box - if (CheckCollisionRayBox(GetMouseRay(GetMousePosition(), camera), bounds)) selected = !selected; - else selected = false; - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawModel(model, position, 1.0f, WHITE); // Draw 3d model with texture - - DrawGrid(20.0, 10.0); // Draw a grid - - if (selected) DrawBoundingBox(bounds, GREEN); - - EndMode3D(); - - DrawText("Free camera default controls:", 10, 20, 10, DARKGRAY); - DrawText("- Mouse Wheel to Zoom in-out", 20, 40, 10, GRAY); - DrawText("- Mouse Wheel Pressed to Pan", 20, 60, 10, GRAY); - DrawText("- Alt + Mouse Wheel Pressed to Rotate", 20, 80, 10, GRAY); - DrawText("- Alt + Ctrl + Mouse Wheel Pressed for Smooth Zoom", 20, 100, 10, GRAY); - - DrawText("Drag & drop .obj/.png to load mesh/texture.", 10, GetScreenHeight() - 20, 10, DARKGRAY); - DrawText(FormatText("Current file: %s", objFilename), 250, GetScreenHeight() - 20, 10, GRAY); - if (selected) DrawText("MODEL SELECTED", GetScreenWidth() - 110, 10, 10, GREEN); - - DrawText("(c) Turret 3D model by Alberto Cano", screenWidth - 200, screenHeight - 20, 10, GRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadTexture(texture); // Unload texture - UnloadModel(model); // Unload model - - ClearDroppedFiles(); // Clear internal buffers - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} \ No newline at end of file diff --git a/examples/models/models_obj_viewer.png b/examples/models/models_obj_viewer.png deleted file mode 100644 index 6ac707675167e2feb4745108613e2c1ea821d35d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96822 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 literal 0 HcmV?d00001 diff --git a/examples/text/text_ttf_loading.png b/examples/text/text_ttf_loading.png deleted file mode 100644 index 5fdbda19806be216bf0e5c19ada1987bbe70f86e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54908 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

jzrKlT89df>Pp@eivNjk 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 Gi~kS3`|KqE From d9d9c6111b7dd7de65f178ca6375fe80a719ac86 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 12 Sep 2019 16:30:39 +0200 Subject: [PATCH 070/123] RENAMED: text_sprite_font > text_font_spritefont --- examples/Makefile | 6 +++--- ...{text_sprite_fonts.c => text_font_spritefont.c} | 13 +++++++++++-- ...t_sprite_fonts.png => text_font_spritefont.png} | Bin 3 files changed, 14 insertions(+), 5 deletions(-) rename examples/text/{text_sprite_fonts.c => text_font_spritefont.c} (84%) rename examples/text/{text_sprite_fonts.png => text_font_spritefont.png} (100%) diff --git a/examples/Makefile b/examples/Makefile index 26cb23283..278cdee32 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -385,9 +385,9 @@ EXAMPLES = \ shapes/shapes_draw_circle_sector \ shapes/shapes_draw_rectangle_rounded \ text/text_raylib_fonts \ - text/text_sprite_fonts \ - text/text_ttf_loading \ - text/text_bmfont_ttf \ + text/text_font_spritefont \ + text/text_font_loading \ + text/text_font_filters \ text/text_font_sdf \ text/text_format_text \ text/text_input_box \ diff --git a/examples/text/text_sprite_fonts.c b/examples/text/text_font_spritefont.c similarity index 84% rename from examples/text/text_sprite_fonts.c rename to examples/text/text_font_spritefont.c index b7c9ab10f..dff2b47ae 100644 --- a/examples/text/text_sprite_fonts.c +++ b/examples/text/text_font_spritefont.c @@ -1,6 +1,15 @@ /******************************************************************************************* * -* raylib [text] example - Font loading and usage +* raylib [text] example - Sprite font loading +* +* Loaded sprite fonts have been generated following XNA SpriteFont conventions: +* - Characters must be ordered starting with character 32 (Space) +* - Every character must be contained within the same Rectangle height +* - Every character and every line must be separated the same distance +* - Rectangles must be defined by a MAGENTA color background +* +* If following this constraints, a font can be provided just by an image, +* this is quite handy to avoid additional information files (like BMFonts use). * * 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) @@ -18,7 +27,7 @@ int main(void) const int screenWidth = 800; const int screenHeight = 450; - InitWindow(screenWidth, screenHeight, "raylib [text] example - sprite fonts usage"); + InitWindow(screenWidth, screenHeight, "raylib [text] example - sprite font loading"); const char msg1[50] = "THIS IS A custom SPRITE FONT..."; const char msg2[50] = "...and this is ANOTHER CUSTOM font..."; diff --git a/examples/text/text_sprite_fonts.png b/examples/text/text_font_spritefont.png similarity index 100% rename from examples/text/text_sprite_fonts.png rename to examples/text/text_font_spritefont.png From 7caedff9ca4e405c54ba1ea586a891903658b0f1 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 12 Sep 2019 19:22:47 +0200 Subject: [PATCH 071/123] Review weird PBR shader issue >_< --- examples/models/resources/shaders/glsl330/pbr.fs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/examples/models/resources/shaders/glsl330/pbr.fs b/examples/models/resources/shaders/glsl330/pbr.fs index 38d56c5d7..68bf203a2 100644 --- a/examples/models/resources/shaders/glsl330/pbr.fs +++ b/examples/models/resources/shaders/glsl330/pbr.fs @@ -73,6 +73,8 @@ vec3 fresnelSchlick(float cosTheta, vec3 F0); vec3 fresnelSchlickRoughness(float cosTheta, vec3 F0, float roughness); vec2 ParallaxMapping(vec2 texCoords, vec3 viewDir); +// WARNING: There is some weird behaviour with this function, always returns black! +// Yes, I even tried: return texture(property.sampler, texCoord).rgb; vec3 ComputeMaterialProperty(MaterialProperty property) { vec3 result = vec3(0.0, 0.0, 0.0); @@ -187,17 +189,17 @@ void main() else texCoord = fragTexCoord; // Use default texture coordinates // Fetch material values from texture sampler or color attributes - vec3 color = ComputeMaterialProperty(albedo); - vec3 metal = ComputeMaterialProperty(metalness); - vec3 rough = ComputeMaterialProperty(roughness); - vec3 emiss = ComputeMaterialProperty(emission); - vec3 ao = ComputeMaterialProperty(occlusion); + vec3 color = texture(albedo.sampler, texCoord).rgb; //ComputeMaterialProperty(albedo); + vec3 metal = texture(metalness.sampler, texCoord).rgb; //ComputeMaterialProperty(metalness); + vec3 rough = texture(roughness.sampler, texCoord).rgb; //ComputeMaterialProperty(roughness); + vec3 emiss = texture(emission.sampler, texCoord).rgb; //ComputeMaterialProperty(emission); + vec3 ao = texture(occlusion.sampler, texCoord).rgb; //ComputeMaterialProperty(occlusion); // Check if normal mapping is enabled if (normals.useSampler == 1) { // Fetch normal map color and transform lighting values to tangent space - normal = ComputeMaterialProperty(normals); + normal = texture(normals.sampler, texCoord).rgb; //ComputeMaterialProperty(normals); normal = normalize(normal*2.0 - 1.0); normal = normalize(normal*TBN); From e5d5f6e367daad6457fc2b1af3e85e96dead3ce4 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 13 Sep 2019 12:58:42 +0200 Subject: [PATCH 072/123] Review possible memory leak with my_strndup() --- src/external/tinyobj_loader_c.h | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/external/tinyobj_loader_c.h b/src/external/tinyobj_loader_c.h index 846784fa3..242b47d85 100644 --- a/src/external/tinyobj_loader_c.h +++ b/src/external/tinyobj_loader_c.h @@ -453,6 +453,11 @@ static void parseFloat3(float *x, float *y, float *z, const char **token) { (*z) = parseFloat(token); } +static unsigned int my_strnlen(const char *s, unsigned int n) { + const char *p = memchr(s, 0, n); + return p ? (unsigned int)(p - s) : n; +} + static char *my_strdup(const char *s, unsigned int max_length) { char *d; unsigned int len; @@ -478,15 +483,13 @@ static char *my_strndup(const char *s, unsigned int len) { if (s == NULL) return NULL; if (len == 0) return NULL; - d = (char *)TINYOBJ_MALLOC(len + 1); /* + '\0' */ - slen = strlen(s); - if (slen < len) { - memcpy(d, s, slen); - d[slen] = '\0'; - } else { - memcpy(d, s, len); - d[len] = '\0'; + slen = my_strnlen(s, len); + d = (char *)TINYOBJ_MALLOC(slen + 1); /* + '\0' */ + if (!d) { + return NULL; } + memcpy(d, s, slen); + d[slen] = '\0'; return d; } From 6916ff58b109c15e3bc545d3f29bd36623d02def Mon Sep 17 00:00:00 2001 From: chriscamacho Date: Fri, 13 Sep 2019 12:29:52 +0100 Subject: [PATCH 073/123] fixed some memory leaks, still issue with material index allocation leaking 4 bytes (possibly double allocation) (#964) --- src/models.c | 95 ++++++++++++++++++++++++++-------------------------- src/rlgl.h | 23 +++++++------ 2 files changed, 60 insertions(+), 58 deletions(-) diff --git a/src/models.c b/src/models.c index 3a9d3da56..7c69553c3 100644 --- a/src/models.c +++ b/src/models.c @@ -296,7 +296,7 @@ void DrawCubeTexture(Texture2D texture, Vector3 position, float width, float hei float x = position.x; float y = position.y; float z = position.z; - + if (rlCheckBufferLimit(36)) rlglDraw(); rlEnableTexture(texture.id); @@ -362,7 +362,7 @@ void DrawSphereEx(Vector3 centerPos, float radius, int rings, int slices, Color { int numVertex = (rings + 2)*slices*6; if (rlCheckBufferLimit(numVertex)) rlglDraw(); - + rlPushMatrix(); // NOTE: Transformation is applied in inverse order (scale -> translate) rlTranslatef(centerPos.x, centerPos.y, centerPos.z); @@ -405,7 +405,7 @@ void DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Col { int numVertex = (rings + 2)*slices*6; if (rlCheckBufferLimit(numVertex)) rlglDraw(); - + rlPushMatrix(); // NOTE: Transformation is applied in inverse order (scale -> translate) rlTranslatef(centerPos.x, centerPos.y, centerPos.z); @@ -449,7 +449,7 @@ void DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Col void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float height, int sides, Color color) { if (sides < 3) sides = 3; - + int numVertex = sides*6; if (rlCheckBufferLimit(numVertex)) rlglDraw(); @@ -508,7 +508,7 @@ void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float h void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int sides, Color color) { if (sides < 3) sides = 3; - + int numVertex = sides*8; if (rlCheckBufferLimit(numVertex)) rlglDraw(); @@ -540,7 +540,7 @@ void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, fl void DrawPlane(Vector3 centerPos, Vector2 size, Color color) { if (rlCheckBufferLimit(4)) rlglDraw(); - + // NOTE: Plane is always created on XZ ground rlPushMatrix(); rlTranslatef(centerPos.x, centerPos.y, centerPos.z); @@ -725,9 +725,9 @@ Mesh *LoadMeshes(const char *fileName, int *meshCount) { Mesh *meshes = NULL; int count = 0; - + // TODO: Load meshes from file (OBJ, IQM, GLTF) - + *meshCount = count; return meshes; } @@ -800,7 +800,7 @@ Material *LoadMaterials(const char *fileName, int *materialCount) { Material *materials = NULL; unsigned int count = 0; - + // TODO: Support IQM and GLTF for materials parsing #if defined(SUPPORT_FILEFORMAT_MTL) @@ -853,7 +853,7 @@ void UnloadMaterial(Material material) { if (material.maps[i].texture.id != GetTextureDefault().id) rlDeleteTextures(material.maps[i].texture.id); } - + RL_FREE(material.maps); } @@ -908,7 +908,7 @@ ModelAnimation *LoadModelAnimations(const char *filename, int *animCount) float framerate; unsigned int flags; } IQMAnim; - + FILE *iqmFile; IQMHeader iqm; @@ -1076,7 +1076,7 @@ ModelAnimation *LoadModelAnimations(const char *filename, int *animCount) RL_FREE(framedata); RL_FREE(poses); RL_FREE(anim); - + fclose(iqmFile); return animations; @@ -1151,7 +1151,7 @@ void UpdateModelAnimation(Model model, ModelAnimation anim, int frame) void UnloadModelAnimation(ModelAnimation anim) { for (int i = 0; i < anim.frameCount; i++) RL_FREE(anim.framePoses[i]); - + RL_FREE(anim.bones); RL_FREE(anim.framePoses); } @@ -1161,7 +1161,7 @@ void UnloadModelAnimation(ModelAnimation anim) bool IsModelAnimationValid(Model model, ModelAnimation anim) { int result = true; - + if (model.boneCount != anim.boneCount) result = false; else { @@ -2336,7 +2336,7 @@ void MeshTangents(Mesh *mesh) RL_FREE(tan1); RL_FREE(tan2); - + // Load a new tangent attributes buffer mesh->vboId[LOC_VERTEX_TANGENT] = rlLoadAttribBuffer(mesh->vaoId, LOC_VERTEX_TANGENT, mesh->tangents, mesh->vertexCount*4*sizeof(float), false); @@ -2491,7 +2491,7 @@ void DrawBoundingBox(BoundingBox box, Color color) bool CheckCollisionSpheres(Vector3 centerA, float radiusA, Vector3 centerB, float radiusB) { bool collision = false; - + // Simple way to check for collision, just checking distance between two points // Unfortunately, sqrtf() is a costly operation, so we avoid it with following solution /* @@ -2503,10 +2503,10 @@ bool CheckCollisionSpheres(Vector3 centerA, float radiusA, Vector3 centerB, floa if (distance <= (radiusA + radiusB)) collision = true; */ - + // Check for distances squared to avoid sqrtf() if (Vector3DotProduct(Vector3Subtract(centerB, centerA), Vector3Subtract(centerB, centerA)) <= (radiusA + radiusB)*(radiusA + radiusB)) collision = true; - + return collision; } @@ -2798,7 +2798,7 @@ static Model LoadOBJ(const char *fileName) model.materialCount = materialCount; model.materials = (Material *)RL_CALLOC(model.materialCount, sizeof(Material)); } - + model.meshMaterial = (int *)RL_CALLOC(model.meshCount, sizeof(int)); /* @@ -2897,7 +2897,7 @@ static Model LoadOBJ(const char *fileName) */ model.materials[m].maps[MAP_DIFFUSE].texture = GetTextureDefault(); // Get default texture, in case no texture is defined - + if (materials[m].diffuse_texname != NULL) model.materials[m].maps[MAP_DIFFUSE].texture = LoadTexture(materials[m].diffuse_texname); //char *diffuse_texname; // map_Kd model.materials[m].maps[MAP_DIFFUSE].color = (Color){ (float)(materials[m].diffuse[0]*255.0f), (float)(materials[m].diffuse[1]*255.0f), (float)(materials[m].diffuse[2]*255.0f), 255 }; //float diffuse[3]; model.materials[m].maps[MAP_DIFFUSE].value = 0.0f; @@ -2918,6 +2918,7 @@ static Model LoadOBJ(const char *fileName) tinyobj_attrib_free(&attrib); tinyobj_shapes_free(meshes, meshCount); tinyobj_materials_free(materials, materialCount); + RL_FREE(data); // oh ray how did you miss this...! :-p } // NOTE: At this point we have all model data loaded @@ -2966,13 +2967,13 @@ static Model LoadIQM(const char *fileName) typedef struct IQMTriangle { unsigned int vertex[3]; } IQMTriangle; - + typedef struct IQMJoint { unsigned int name; int parent; float translate[3], rotate[4], scale[3]; } IQMJoint; - + typedef struct IQMVertexArray { unsigned int type; unsigned int flags; @@ -3090,7 +3091,7 @@ static Model LoadIQM(const char *fileName) // NOTE: Animated vertex should be re-uploaded to GPU (if not using GPU skinning) model.meshes[i].animVertices = RL_CALLOC(model.meshes[i].vertexCount*3, sizeof(float)); model.meshes[i].animNormals = RL_CALLOC(model.meshes[i].vertexCount*3, sizeof(float)); - + model.meshes[i].vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); } @@ -3286,7 +3287,7 @@ static const unsigned char base64Table[] = { static int GetSizeBase64(char *input) { int size = 0; - + for (int i = 0; input[4*i] != 0; i++) { if (input[4*i + 3] == '=') @@ -3296,7 +3297,7 @@ static int GetSizeBase64(char *input) } else size += 3; } - + return size; } @@ -3340,24 +3341,24 @@ static unsigned char *DecodeBase64(char *input, int *size) static Model LoadGLTF(const char *fileName) { /*********************************************************************************** - + Function implemented by Wilhem Barbier (@wbrbr) - + Features: - Supports .gltf and .glb files - Supports embedded (base64) or external textures - Loads the albedo/diffuse texture (other maps could be added) - Supports multiple mesh per model and multiple primitives per model - + Some restrictions (not exhaustive): - Triangle-only meshes - Not supported node hierarchies or transforms - Only loads the diffuse texture... but not too hard to support other maps (normal, roughness/metalness...) - Only supports unsigned short indices (no byte/unsigned int) - Only supports float for texture coordinates (no byte/unsigned short) - + *************************************************************************************/ - + #define LOAD_ACCESSOR(type, nbcomp, acc, dst) \ { \ int n = 0; \ @@ -3369,7 +3370,7 @@ static Model LoadGLTF(const char *fileName) n += acc->stride/sizeof(type);\ }\ } - + Model model = { 0 }; // glTF file loading @@ -3403,7 +3404,7 @@ static Model LoadGLTF(const char *fileName) result = cgltf_load_buffers(&options, data, fileName); int primitivesCount = 0; - + for (int i = 0; i < data->meshes_count; i++) primitivesCount += (int)data->meshes[i].primitives_count; // Process glTF data and map to model @@ -3412,7 +3413,7 @@ static Model LoadGLTF(const char *fileName) model.materialCount = data->materials_count + 1; model.materials = RL_MALLOC(model.materialCount*sizeof(Material)); model.meshMaterial = RL_MALLOC(model.meshCount*sizeof(int)); - + for (int i = 0; i < model.meshCount; i++) model.meshes[i].vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); for (int i = 0; i < model.materialCount - 1; i++) @@ -3420,7 +3421,7 @@ static Model LoadGLTF(const char *fileName) Color tint = WHITE; Texture2D texture = { 0 }; const char *texPath = GetDirectoryPath(fileName); - + if (data->materials[i].has_pbr_metallic_roughness) { tint.r = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[0]*255.99f); @@ -3435,12 +3436,12 @@ static Model LoadGLTF(const char *fileName) tint.b = 1.0f; tint.a = 1.0f; } - + if (data->materials[i].has_pbr_metallic_roughness) { cgltf_image *img = data->materials[i].pbr_metallic_roughness.base_color_texture.texture->image; - - if (img->uri) + + if (img->uri) { if ((strlen(img->uri) > 5) && (img->uri[0] == 'd') && @@ -3461,10 +3462,10 @@ static Model LoadGLTF(const char *fileName) { int size; unsigned char *data = DecodeBase64(img->uri + i + 1, &size); - + int w, h; unsigned char *raw = stbi_load_from_memory(data, size, &w, &h, NULL, 4); - + Image image = LoadImagePro(raw, w, h, UNCOMPRESSED_R8G8B8A8); ImageColorTint(&image, tint); texture = LoadTextureFromImage(image); @@ -3491,7 +3492,7 @@ static Model LoadGLTF(const char *fileName) unsigned char *data = RL_MALLOC(img->buffer_view->size); int n = img->buffer_view->offset; int stride = img->buffer_view->stride ? img->buffer_view->stride : 1; - + for (int i = 0; i < img->buffer_view->size; i++) { data[i] = ((unsigned char *)img->buffer_view->buffer->data)[n]; @@ -3500,7 +3501,7 @@ static Model LoadGLTF(const char *fileName) int w, h; unsigned char *raw = stbi_load_from_memory(data, img->buffer_view->size, &w, &h, NULL, 4); - + Image image = LoadImagePro(raw, w, h, UNCOMPRESSED_R8G8B8A8); ImageColorTint(&image, tint); texture = LoadTextureFromImage(image); @@ -3512,16 +3513,16 @@ static Model LoadGLTF(const char *fileName) texture = LoadTextureFromImage(image); UnloadImage(image); } - + model.materials[i] = LoadMaterialDefault(); model.materials[i].maps[MAP_DIFFUSE].texture = texture; } } - + model.materials[model.materialCount - 1] = LoadMaterialDefault(); int primitiveIndex = 0; - + for (int i = 0; i < data->meshes_count; i++) { for (int p = 0; p < data->meshes[i].primitives_count; p++) @@ -3546,7 +3547,7 @@ static Model LoadGLTF(const char *fileName) else if (data->meshes[i].primitives[p].attributes[j].type == cgltf_attribute_type_texcoord) { cgltf_accessor *acc = data->meshes[i].primitives[p].attributes[j].data; - + if (acc->component_type == cgltf_component_type_r_32f) { model.meshes[primitiveIndex].texcoords = RL_MALLOC(sizeof(float)*acc->count*2); @@ -3561,7 +3562,7 @@ static Model LoadGLTF(const char *fileName) } cgltf_accessor *acc = data->meshes[i].primitives[p].indices; - + if (acc) { if (acc->component_type == cgltf_component_type_r_16u) @@ -3591,7 +3592,7 @@ static Model LoadGLTF(const char *fileName) { model.meshMaterial[primitiveIndex] = model.materialCount - 1;; } - + primitiveIndex++; } } diff --git a/src/rlgl.h b/src/rlgl.h index 85d60fe19..8eae4426d 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -1527,7 +1527,7 @@ void rlglInit(int width, int height) // Allocate numExt strings pointers const char **extList = RL_MALLOC(sizeof(const char *)*numExt); - + // Get extensions strings for (int i = 0; i < numExt; i++) extList[i] = (const char *)glGetStringi(GL_EXTENSIONS, i); @@ -1541,7 +1541,7 @@ void rlglInit(int width, int height) int len = strlen(extensions) + 1; char *extensionsDup = (char *)RL_CALLOC(len, sizeof(char)); strcpy(extensionsDup, extensions); - + extList[numExt] = extensionsDup; for (int i = 0; i < len; i++) @@ -1549,13 +1549,13 @@ void rlglInit(int width, int height) if (extensionsDup[i] == ' ') { extensionsDup[i] = '\0'; - + numExt++; extList[numExt] = &extensionsDup[i + 1]; } } - - // NOTE: Duplicated string (extensionsDup) must be deallocated + + // NOTE: Duplicated string (extensionsDup) must be deallocated #endif TraceLog(LOG_INFO, "Number of supported extensions: %i", numExt); @@ -2636,11 +2636,11 @@ void rlDrawMesh(Mesh mesh, Material material, Matrix transform) // That's because BeginMode3D() sets it an no model-drawing function modifies it, all use rlPushMatrix() and rlPopMatrix() Matrix matView = modelview; // View matrix (camera) Matrix matProjection = projection; // Projection matrix (perspective) - + // TODO: Matrix nightmare! Trying to combine stack matrices with view matrix and local model transform matrix.. // There is some problem in the order matrices are multiplied... it requires some time to figure out... Matrix matStackTransform = MatrixIdentity(); - + // TODO: Consider possible transform matrices in the stack // Is this the right order? or should we start with the first stored matrix instead of the last one? //for (int i = stackCounter; i > 0; i--) matStackTransform = MatrixMultiply(stack[i], matStackTransform); @@ -2967,7 +2967,8 @@ char *LoadText(const char *fileName) Shader LoadShader(const char *vsFileName, const char *fsFileName) { Shader shader = { 0 }; - shader.locs = (int *)RL_CALLOC(MAX_SHADER_LOCATIONS, sizeof(int)); + // double allocation causing leak (allocation done in LoadShaderCode) + //shader.locs = (int *)RL_CALLOC(MAX_SHADER_LOCATIONS, sizeof(int)); char *vShaderStr = NULL; char *fShaderStr = NULL; @@ -3054,7 +3055,7 @@ void UnloadShader(Shader shader) rlDeleteShader(shader.id); TraceLog(LOG_INFO, "[SHDR ID %i] Unloaded shader program data", shader.id); } - + RL_FREE(shader.locs); } @@ -4615,8 +4616,8 @@ int GetPixelDataSize(int width, int height, int format) } dataSize = width*height*bpp/8; // Total data size in bytes - - // Most compressed formats works on 4x4 blocks, + + // Most compressed formats works on 4x4 blocks, // if texture is smaller, minimum dataSize is 8 or 16 if ((width < 4) && (height < 4)) { From 4ccf1e61be175befe339f235111441f8ca15e2f1 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 13 Sep 2019 17:07:29 +0200 Subject: [PATCH 074/123] Corect typo --- src/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core.c b/src/core.c index fad2c485f..4bdceb851 100644 --- a/src/core.c +++ b/src/core.c @@ -3960,7 +3960,7 @@ static void WindowIconifyCallback(GLFWwindow *window, int iconified) } // GLFW3 Window Drop Callback, runs when drop files into window -// NOTE: Paths are stored in dinamic memory for further retrieval +// NOTE: Paths are stored in dynamic memory for further retrieval // Everytime new files are dropped, old ones are discarded static void WindowDropCallback(GLFWwindow *window, int count, const char **paths) { From 904a7ee03278606f9495bf897fa1ba2918700e3d Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 13 Sep 2019 17:08:20 +0200 Subject: [PATCH 075/123] Update for latest emsdk configuration Note that latest emsdk changed paths --- src/Makefile | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/Makefile b/src/Makefile index f43a722f9..ac864680d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -147,13 +147,12 @@ endif ifeq ($(PLATFORM),PLATFORM_WEB) # Emscripten required variables - EMSDK_PATH ?= C:/emsdk - EMSCRIPTEN_VERSION ?= 1.38.32 - CLANG_VERSION = e$(EMSCRIPTEN_VERSION)_64bit - PYTHON_VERSION = 2.7.13.1_64bit\python-2.7.13.amd64 - NODE_VERSION = 8.9.1_64bit - export PATH = $(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH) - EMSCRIPTEN = $(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION) + EMSDK_PATH ?= C:/emsdk + EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/fastcomp/emscripten + CLANG_PATH = $(EMSDK_PATH)/fastcomp/bin + PYTHON_PATH = $(EMSDK_PATH)/python/2.7.13.1_64bit/python-2.7.13.amd64 + NODE_PATH = $(EMSDK_PATH)/node/12.9.1_64bit/bin + export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH);C:\raylib\MinGW\bin:$$(PATH) endif ifeq ($(PLATFORM),PLATFORM_ANDROID) @@ -278,7 +277,13 @@ endif # -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec # -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 -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces -Werror=pointer-arith -fno-strict-aliasing +CFLAGS += -Wall -D_DEFAULT_SOURCE -Wno-missing-braces -Werror=pointer-arith -fno-strict-aliasing + +ifeq ($(PLATFORM), PLATFORM_WEB) + CFLAGS += -std=gnu99 +else + CFLAGS += -std=c99 +endif ifeq ($(PLATFORM_OS),LINUX) CFLAGS += -fPIC From c10348cc85ffbe57e36e60693fa1f51375aefde0 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Sat, 14 Sep 2019 19:01:33 +0200 Subject: [PATCH 076/123] Review conditions --- src/textures.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/textures.c b/src/textures.c index 56ff194ab..8f5b5c979 100644 --- a/src/textures.c +++ b/src/textures.c @@ -1826,7 +1826,9 @@ void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color } Image srcCopy = ImageCopy(src); // Make a copy of source image to work with it - ImageCrop(&srcCopy, srcRec); // Crop source image to desired source rectangle + + // Crop source image to desired source rectangle (if required) + if ((src.width != (int)srcRec.width) && (src.height != (int)srcRec.height)) ImageCrop(&srcCopy, srcRec); // Scale source image in case destination rec size is different than source rec size if (((int)dstRec.width != (int)srcRec.width) || ((int)dstRec.height != (int)srcRec.height)) @@ -1856,7 +1858,7 @@ void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color dstRec.y = 0; } - if (dstRec.y > (dst->height - dstRec.height)) + if ((dstRec.y + dstRec.height) > dst->height) { ImageCrop(&srcCopy, (Rectangle) { 0, 0, dstRec.width, dst->height - dstRec.y }); dstRec.height = dst->height - dstRec.y; From 112874fe07ae896bf068b20430489f6665b611f5 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Sat, 14 Sep 2019 20:07:44 +0200 Subject: [PATCH 077/123] Review issue with HDR pixels loading --- src/textures.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/textures.c b/src/textures.c index 8f5b5c979..70e4a0e94 100644 --- a/src/textures.c +++ b/src/textures.c @@ -253,13 +253,10 @@ Image LoadImage(const char *fileName) FILE *imFile = fopen(fileName, "rb"); - stbi_set_flip_vertically_on_load(true); - // Load 32 bit per channel floats data + //stbi_set_flip_vertically_on_load(true); image.data = stbi_loadf_from_file(imFile, &image.width, &image.height, &imgBpp, 0); - stbi_set_flip_vertically_on_load(false); - fclose(imFile); image.mipmaps = 1; @@ -551,7 +548,7 @@ Color *GetImageData(Image image) pixels[i].a = 255; k += 3; - } + } break; case UNCOMPRESSED_R32G32B32A32: { pixels[i].r = (unsigned char)(((float *)image.data)[k]*255.0f); @@ -560,7 +557,7 @@ Color *GetImageData(Image image) pixels[i].a = (unsigned char)(((float *)image.data)[k]*255.0f); k += 4; - } + } break; default: break; } } From 08165fed1884c9f8499ea1463b7e6831105ca52b Mon Sep 17 00:00:00 2001 From: raysan5 Date: Sun, 15 Sep 2019 11:15:33 +0200 Subject: [PATCH 078/123] Review DecompressData() types, for consistency --- src/core.c | 6 +++--- src/raylib.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/core.c b/src/core.c index 4bdceb851..305eb33cf 100644 --- a/src/core.c +++ b/src/core.c @@ -2056,15 +2056,15 @@ unsigned char *CompressData(unsigned char *data, int dataLength, int *compDataLe } // Decompress data (DEFLATE algorythm) -char *DecompressData(char *compData, int compDataLength, int *dataLength) +unsigned char *DecompressData(unsigned char *compData, int compDataLength, int *dataLength) { char *data = NULL; #if defined(SUPPORT_COMPRESSION_API) - data = stbi_zlib_decode_malloc(compData, compDataLength, dataLength); + data = stbi_zlib_decode_malloc((char *)compData, compDataLength, dataLength); #endif - return data; + return (unsigned char *)data; } // Save integer value to storage file (to defined position) diff --git a/src/raylib.h b/src/raylib.h index d90dedf07..65210d475 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -956,8 +956,8 @@ RLAPI char **GetDroppedFiles(int *count); // Get dropped RLAPI void ClearDroppedFiles(void); // Clear dropped files paths buffer (free memory) RLAPI long GetFileModTime(const char *fileName); // Get file modification time (last write time) -RLAPI unsigned char *CompressData(unsigned char *data, int dataLength, int *compDataLength); // Compress data (DEFLATE algorythm) -RLAPI char *DecompressData(char *compData, int compDataLength, int *dataLength); // Decompress data (DEFLATE algorythm) +RLAPI unsigned char *CompressData(unsigned char *data, int dataLength, int *compDataLength); // Compress data (DEFLATE algorythm) +RLAPI unsigned char *DecompressData(unsigned char *compData, int compDataLength, int *dataLength); // Decompress data (DEFLATE algorythm) // Persistent storage management RLAPI void StorageSaveValue(int position, int value); // Save integer value to storage file (to defined position) From 314c4061df021425bce7cd173ebfa9d371f414cb Mon Sep 17 00:00:00 2001 From: chriscamacho Date: Thu, 19 Sep 2019 12:28:01 +0100 Subject: [PATCH 079/123] fixs issue mem leak with LoadModel / OBJ and issue with -1 material index (#969) --- src/models.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/models.c b/src/models.c index 7c69553c3..0d4c3619a 100644 --- a/src/models.c +++ b/src/models.c @@ -669,7 +669,9 @@ Model LoadModel(const char *fileName) model.materials = (Material *)RL_CALLOC(model.materialCount, sizeof(Material)); model.materials[0] = LoadMaterialDefault(); - model.meshMaterial = (int *)RL_CALLOC(model.meshCount, sizeof(int)); + if (model.meshMaterial==NULL) { + model.meshMaterial = (int *)RL_CALLOC(model.meshCount, sizeof(int)); + } } return model; @@ -2860,6 +2862,11 @@ static Model LoadOBJ(const char *fileName) // Assign mesh material for current mesh model.meshMaterial[m] = attrib.material_ids[m]; + + // set unfound materials to default + if (model.meshMaterial[m] == -1) { + model.meshMaterial[m] = 0; + } } // Init model materials From 741afde3bcc337f60c50337fef05531363ece120 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 19 Sep 2019 13:36:55 +0200 Subject: [PATCH 080/123] Review PR formatting --- src/models.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/models.c b/src/models.c index 0d4c3619a..3e0cce44f 100644 --- a/src/models.c +++ b/src/models.c @@ -669,9 +669,7 @@ Model LoadModel(const char *fileName) model.materials = (Material *)RL_CALLOC(model.materialCount, sizeof(Material)); model.materials[0] = LoadMaterialDefault(); - if (model.meshMaterial==NULL) { - model.meshMaterial = (int *)RL_CALLOC(model.meshCount, sizeof(int)); - } + if (model.meshMaterial == NULL) model.meshMaterial = (int *)RL_CALLOC(model.meshCount, sizeof(int)); } return model; @@ -2863,10 +2861,8 @@ static Model LoadOBJ(const char *fileName) // Assign mesh material for current mesh model.meshMaterial[m] = attrib.material_ids[m]; - // set unfound materials to default - if (model.meshMaterial[m] == -1) { - model.meshMaterial[m] = 0; - } + // Set unfound materials to default + if (model.meshMaterial[m] == -1) model.meshMaterial[m] = 0; } // Init model materials From d089e1cd34fdae4a17aa589ff20ea0af19b11410 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 19 Sep 2019 16:09:36 +0200 Subject: [PATCH 081/123] ADDED: LoadAnimatedGIF() -WIP- Still looking for a better way to integrate it into raylib API, maybe add a LoadImageAnim()? --- src/textures.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/textures.c b/src/textures.c index 70e4a0e94..a6ace2944 100644 --- a/src/textures.c +++ b/src/textures.c @@ -161,6 +161,9 @@ //---------------------------------------------------------------------------------- // Module specific Functions Declaration //---------------------------------------------------------------------------------- + +static Image LoadAnimatedGIF(const char *fileName, int *frames, int **delays); // Load animated GIF file + #if defined(SUPPORT_FILEFORMAT_DDS) static Image LoadDDS(const char *fileName); // Load DDS file #endif @@ -2961,6 +2964,44 @@ void DrawTextureNPatch(Texture2D texture, NPatchInfo nPatchInfo, Rectangle destR // Module specific Functions Definition //---------------------------------------------------------------------------------- +// Load animated GIF data +// - Image.data buffer includes all frames: [image#0][image#1][image#2][...] +// - Number of frames is returned through 'frames' parameter +// - Frames delay is returned through 'delays' parameter (int array) +// - All frames are returned in RGBA format +static Image LoadAnimatedGIF(const char *fileName, int *frames, int **delays) +{ + Image image = { 0 }; + + FILE *gifFile = fopen(fileName, "rb"); + + if (gifFile == NULL) + { + TraceLog(LOG_WARNING, "[%s] Animated GIF file could not be opened", fileName); + } + else + { + fseek(gifFile, 0L, SEEK_END); + int size = ftell(gifFile); + fseek(gifFile, 0L, SEEK_SET); + + char *buffer = (char *)RL_CALLOC(size, sizeof(char)); + fread(buffer, sizeof(char), size, gifFile); + + fclose(gifFile); // Close file pointer + + int comp = 0; + image.data = stbi_load_gif_from_memory(buffer, size, delays, &image.width, &image.height, frames, &comp, 4); + + image.mipmaps = 1; + image.format = UNCOMPRESSED_R8G8B8A8; + + free(buffer); + } + + return image; +} + #if defined(SUPPORT_FILEFORMAT_DDS) // Loading DDS image data (compressed or uncompressed) static Image LoadDDS(const char *fileName) From bce2dd1231b01964bf619a71d4c9cd2141e41f6b Mon Sep 17 00:00:00 2001 From: chriscamacho Date: Thu, 19 Sep 2019 16:11:37 +0100 Subject: [PATCH 082/123] fixed leak with PBR example (#971) --- examples/models/models_material_pbr.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/examples/models/models_material_pbr.c b/examples/models/models_material_pbr.c index 8702f79a5..2c0a15e38 100644 --- a/examples/models/models_material_pbr.c +++ b/examples/models/models_material_pbr.c @@ -50,6 +50,7 @@ int main(void) // NOTE: New VBO for tangents is generated at default location and also binded to mesh VAO MeshTangents(&model.meshes[0]); + UnloadMaterial(model.materials[0]); // get rid of default material model.materials[0] = LoadMaterialPBR((Color){ 255, 255, 255, 255 }, 1.0f, 1.0f); // Create lights @@ -98,7 +99,19 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- - UnloadMaterial(model.materials[0]); // Unload material: shader and textures + + // user must unload shaders and textures as they could be in use + // by other models.... + UnloadShader(model.materials[0].shader); + UnloadTexture(model.materials[0].maps[MAP_ALBEDO].texture); + UnloadTexture(model.materials[0].maps[MAP_NORMAL].texture); + UnloadTexture(model.materials[0].maps[MAP_METALNESS].texture); + UnloadTexture(model.materials[0].maps[MAP_ROUGHNESS].texture); + UnloadTexture(model.materials[0].maps[MAP_OCCLUSION].texture); + UnloadTexture(model.materials[0].maps[MAP_IRRADIANCE].texture); + UnloadTexture(model.materials[0].maps[MAP_PREFILTER].texture); + UnloadTexture(model.materials[0].maps[MAP_BRDF].texture); + UnloadModel(model); // Unload model CloseWindow(); // Close window and OpenGL context From 9d53e07883b981dccf38b7b7ab335870dd3fe9d6 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 19 Sep 2019 17:36:48 +0200 Subject: [PATCH 083/123] Added preprocessor macros for GIF --- src/textures.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/textures.c b/src/textures.c index a6ace2944..9307773b5 100644 --- a/src/textures.c +++ b/src/textures.c @@ -161,9 +161,9 @@ //---------------------------------------------------------------------------------- // Module specific Functions Declaration //---------------------------------------------------------------------------------- - +#if defined(SUPPORT_FILEFORMAT_GIF) static Image LoadAnimatedGIF(const char *fileName, int *frames, int **delays); // Load animated GIF file - +#endif #if defined(SUPPORT_FILEFORMAT_DDS) static Image LoadDDS(const char *fileName); // Load DDS file #endif @@ -2963,7 +2963,7 @@ void DrawTextureNPatch(Texture2D texture, NPatchInfo nPatchInfo, Rectangle destR //---------------------------------------------------------------------------------- // Module specific Functions Definition //---------------------------------------------------------------------------------- - +#if defined(SUPPORT_FILEFORMAT_GIF) // Load animated GIF data // - Image.data buffer includes all frames: [image#0][image#1][image#2][...] // - Number of frames is returned through 'frames' parameter @@ -3001,6 +3001,7 @@ static Image LoadAnimatedGIF(const char *fileName, int *frames, int **delays) return image; } +#endif #if defined(SUPPORT_FILEFORMAT_DDS) // Loading DDS image data (compressed or uncompressed) From b331edd7a61e925f9a522542bfdb41f3f2f166d8 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 20 Sep 2019 15:54:10 +0200 Subject: [PATCH 084/123] Let the user choose the formats --- src/config.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/config.h b/src/config.h index 068e2c438..169eefd24 100644 --- a/src/config.h +++ b/src/config.h @@ -86,10 +86,10 @@ //#define SUPPORT_FILEFORMAT_JPG 1 //#define SUPPORT_FILEFORMAT_GIF 1 //#define SUPPORT_FILEFORMAT_PSD 1 -#define SUPPORT_FILEFORMAT_DDS 1 +//#define SUPPORT_FILEFORMAT_DDS 1 #define SUPPORT_FILEFORMAT_HDR 1 -#define SUPPORT_FILEFORMAT_KTX 1 -#define SUPPORT_FILEFORMAT_ASTC 1 +//#define SUPPORT_FILEFORMAT_KTX 1 +//#define SUPPORT_FILEFORMAT_ASTC 1 //#define SUPPORT_FILEFORMAT_PKM 1 //#define SUPPORT_FILEFORMAT_PVR 1 From 1f730b3b356d3ac561fe05adf7f6700f86c015ea Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 20 Sep 2019 15:55:55 +0200 Subject: [PATCH 085/123] Review ImageCrop() security checks --- src/textures.c | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/src/textures.c b/src/textures.c index 9307773b5..5a91913f0 100644 --- a/src/textures.c +++ b/src/textures.c @@ -1336,20 +1336,13 @@ void ImageCrop(Image *image, Rectangle crop) { // Security check to avoid program crash if ((image->data == NULL) || (image->width == 0) || (image->height == 0)) return; - - // Security checks to make sure cropping rectangle is inside margins - if ((crop.x + crop.width) > image->width) - { - crop.width = image->width - crop.x; - TraceLog(LOG_WARNING, "Crop rectangle width out of bounds, rescaled crop width: %i", crop.width); - } - - if ((crop.y + crop.height) > image->height) - { - crop.height = image->height - crop.y; - TraceLog(LOG_WARNING, "Crop rectangle height out of bounds, rescaled crop height: %i", crop.height); - } - + + // Security checks to validate crop rectangle + if (crop.x < 0) { crop.width += crop.x; crop.x = 0; } + if (crop.y < 0) { crop.height += crop.y; crop.y = 0; } + if ((crop.x + crop.width) > image->width) crop.width = image->width - crop.x; + if ((crop.y + crop.height) > image->height) crop.height = image->height - crop.y; + if ((crop.x < image->width) && (crop.y < image->height)) { // Start the cropping process @@ -1377,10 +1370,7 @@ void ImageCrop(Image *image, Rectangle crop) // Reformat 32bit RGBA image to original format ImageFormat(image, format); } - else - { - TraceLog(LOG_WARNING, "Image can not be cropped, crop rectangle out of bounds"); - } + else TraceLog(LOG_WARNING, "Image can not be cropped, crop rectangle out of bounds"); } // Crop image depending on alpha value @@ -2985,7 +2975,7 @@ static Image LoadAnimatedGIF(const char *fileName, int *frames, int **delays) int size = ftell(gifFile); fseek(gifFile, 0L, SEEK_SET); - char *buffer = (char *)RL_CALLOC(size, sizeof(char)); + unsigned char *buffer = (unsigned char *)RL_CALLOC(size, sizeof(char)); fread(buffer, sizeof(char), size, gifFile); fclose(gifFile); // Close file pointer From acedf4a0d5f2cb721dc12cf56a176fe420e63d2e Mon Sep 17 00:00:00 2001 From: AlexHCC Date: Sun, 22 Sep 2019 22:25:39 +0300 Subject: [PATCH 086/123] Fixed regular polygon shape rendering (#972) --- src/shapes.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/shapes.c b/src/shapes.c index a9fafccc7..4c4b353a3 100644 --- a/src/shapes.c +++ b/src/shapes.c @@ -1183,7 +1183,7 @@ void DrawRectangleRoundedLines(Rectangle rec, float roundness, int segments, int void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color) { if (rlCheckBufferLimit(4)) rlglDraw(); - + #if defined(SUPPORT_QUADS_DRAW_MODE) rlEnableTexture(GetShapesTexture().id); @@ -1219,7 +1219,7 @@ void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color) void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color) { if (rlCheckBufferLimit(6)) rlglDraw(); - + rlBegin(RL_LINES); rlColor4ub(color.r, color.g, color.b, color.a); rlVertex2f(v1.x, v1.y); @@ -1298,6 +1298,7 @@ void DrawTriangleStrip(Vector2 *points, int pointsCount, Color color) void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color) { if (sides < 3) sides = 3; + float internalAngle = 360.0f/(float)sides; if (rlCheckBufferLimit(4*(360/sides))) rlglDraw(); @@ -1309,7 +1310,7 @@ void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color col rlEnableTexture(GetShapesTexture().id); rlBegin(RL_QUADS); - for (int i = 0; i < 360; i += 360/sides) + for (int i = 0; i < sides; i++) { rlColor4ub(color.r, color.g, color.b, color.a); @@ -1317,25 +1318,28 @@ void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color col rlVertex2f(0, 0); rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); - rlVertex2f(sinf(DEG2RAD*i)*radius, cosf(DEG2RAD*i)*radius); + rlVertex2f(sinf(DEG2RAD*internalAngle)*radius, cosf(DEG2RAD*internalAngle)*radius); rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); - rlVertex2f(sinf(DEG2RAD*i)*radius, cosf(DEG2RAD*i)*radius); + rlVertex2f(sinf(DEG2RAD*internalAngle)*radius, cosf(DEG2RAD*internalAngle)*radius); + internalAngle += 360.0f/(float)sides; rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height); - rlVertex2f(sinf(DEG2RAD*(i + 360/sides))*radius, cosf(DEG2RAD*(i + 360/sides))*radius); + rlVertex2f(sinf(DEG2RAD*internalAngle)*radius, cosf(DEG2RAD*internalAngle)*radius); } rlEnd(); rlDisableTexture(); #else rlBegin(RL_TRIANGLES); - for (int i = 0; i < 360; i += 360/sides) + for (int i = 0; i < sides; i++) { rlColor4ub(color.r, color.g, color.b, color.a); rlVertex2f(0, 0); - rlVertex2f(sinf(DEG2RAD*i)*radius, cosf(DEG2RAD*i)*radius); - rlVertex2f(sinf(DEG2RAD*(i + 360/sides))*radius, cosf(DEG2RAD*(i + 360/sides))*radius); + rlVertex2f(sinf(DEG2RAD*internalAngle)*radius, cosf(DEG2RAD*internalAngle)*radius); + + internalAngle += 360.0f/(float)sides; + rlVertex2f(sinf(DEG2RAD*internalAngle)*radius, cosf(DEG2RAD*internalAngle)*radius); } rlEnd(); #endif @@ -1511,9 +1515,9 @@ Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2) 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; } From a679b0ccc015295ed8c305605b0bf19112f949f3 Mon Sep 17 00:00:00 2001 From: chriscamacho Date: Sun, 22 Sep 2019 20:28:50 +0100 Subject: [PATCH 087/123] contributed simple shader example (#973) Contributed simple shader example --- examples/Makefile | 2 + examples/shaders/resources/mask.png | Bin 0 -> 74820 bytes examples/shaders/resources/plasma.png | Bin 0 -> 581880 bytes .../shaders/resources/shaders/glsl330/mask.fs | 21 +++ .../shaders/resources/shaders/glsl330/mask.vs | 21 +++ examples/shaders/shaders_simple.c | 153 ++++++++++++++++++ 6 files changed, 197 insertions(+) create mode 100644 examples/shaders/resources/mask.png create mode 100644 examples/shaders/resources/plasma.png create mode 100644 examples/shaders/resources/shaders/glsl330/mask.fs create mode 100644 examples/shaders/resources/shaders/glsl330/mask.vs create mode 100644 examples/shaders/shaders_simple.c diff --git a/examples/Makefile b/examples/Makefile index 278cdee32..c4e7c57c6 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -437,6 +437,8 @@ EXAMPLES = \ shaders/shaders_julia_set \ shaders/shaders_eratosthenes \ shaders/shaders_basic_lighting \ + shaders/shaders_fog \ + shaders/shaders_simple \ audio/audio_module_playing \ audio/audio_music_stream \ audio/audio_raw_stream \ diff --git a/examples/shaders/resources/mask.png b/examples/shaders/resources/mask.png new file mode 100644 index 0000000000000000000000000000000000000000..06a25978768c9b062be4bc7d11c9fbbe9655e226 GIT binary patch literal 74820 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

7wawwgwpa%GpbHW&ty2ME@Fntq+h1AA_2m} z3w)Qh8hXpT1QO98>{g1HD_0EBxHJ!k&U`-{gY z4t(@6eA8Pc5lZHp7>8!XgXKnVij~#2lpiME`gxf|Wa79~bubxIbQvD0{;)Oys!yXe zB)2lU2nn{TY_1uPbu5(hDG?%gz$~#~X8za}1}`N`JF>aVEz9Y~N|AlhQ%mW(K5voG z&76Gayg_ae8zQ+&;;9Eq1QLJcMLi2iiuwA=hamAzbG0eoVdmq(L#PL{S6u_cw&8ji z;A2RUli2rE;(ybdmbz{l8^1It@w;@EFn|EgLCUpV2{SnUO&F(l3ARH00`bl7?uJR2 zPDM6>C8Lp5F+fM8+gnwU#<%($k@?YA&E_`SZ0)O=Ep?w!A9#HUo6!~+KK0&E{19*| zc))LPSp~bjF-t7Fb-)u~Zqdr=?hUKi_!5*`-P^P7#K*=%;E!j2H0b{)2tInX-4ev0 z?!5Pt(;H9t!o9bu+-?h7Vu*y0U;s120Pw&P7D7nOm@;F65PuF~yQ{ly_|ge)d~)8A zwXV34$*hu(DzUXO(rsR)t^P7*52Kk!m)knP|MS23?^RkdfIp3g#cv5v#riL!C%Hw{ zWlMOc_oR8-P$4ByyPzl@Gu7EP9ipANKz98aL)75BsB<(d4;keWiF=_tjIq`C(^yQftMACUPE_VwOzt)_rG} zs7Nunusj!UFQCfW2QRu_-cb>6-?8_1iRLShh-eLLHkH-EVc^mJyG!Sv<{h<$YXJQ0 zexVyB?`{(fCrf*Cx369L&xzIb=y^}{yGNs6*LMZfCP-VW(g0F9syvqcs5SS@`|R!F zr7yR_n@@AR7t%s`ABScC(UoCnU-?MRVc^H>qMO>k{Gi2r(tU7G`k}WF>2jpgoM5zc z!&Ve0a+&bsGYIKc6WFy|q6k}mxQ|IM=Q?KbeM<518@$B)W6XUo`b@4aee5RFWJ%7b zycFnhrBT=;v>z|^=IG5bO6|LcHed%feMIm%^)Jy1%NfZ7&Fz5lcgB2wc;2THtTP<@ z0!?y}hQ}7K51#IWAirNx7D^*nt*l^u5;Hr^`{aRI4TK+*5U4P+F$ffn17)Q*ijFG5 z)=}`?x}U}++uIt|x3E9@@@>_H=TqUg;yaImIt2#ljIc9I9~iaxS2zjz2B2@fWUju& zgZ);V9)3Y98-s*49_4G^mmouTVx=bNc+v!#>RUl{j1`K9ymadQ+= zD1~dhnL4pc5T8BZW9Nqr;rb=MZPD>->E|)Mm2sjHS)hE0j=sJXq@9yza7*%0S?li8 zdl!%@j%3Z>3d3qw!5a?HMW*w19$lnwI$Pc-wGWrF24-tbupD7GGrU9b9cc0glIHol)taxd zn`%x9gXZ(CBh8~Jre^U)*8Q>1qd&qd2K5*AcD{nP4hD!%(OqjAGylSq+@MpIgDN38 z$@|5Uw|yv-@i)6mqeF66bm&WMa!~Ty^g`m@rh1QUwgmr?PHhg?^u6~{6+AUxaQpa{ z)8fzBSxNlSA3er+BXQKZW`{Ut^~>xppM)*f6nvPm-)-T`9B>s!x68UNU_a-nN=$HF zylrZ`qo>$$XrG?s)a_)^COW$9$7jR;l>kI%vA;$?60;x01vcZVIFrdg&-LH(l+NgVo*_85*Q zUurh3zmxervE)uoTcT<16}p9ixKWO~dYThZ##2O=CcQFrbo$(|_erZP0h~;EAY1j& z=GWDQS@>6H=s6b^Xoq&=$SU_DImm2Evxiczun+t(s2?L1bAMS+I1<0lR*kQ1>Sfno zD-r8o)V!nOnr&0QKFU87wYyhwbGdyiWhW#_p3Ei9;!7EZ-PebO1bDq`FYaTdX*+iq z;M)sbkx_4v4*>^%$iZJOO#=Ah`DxP;ZY?Y;R3r9a&h-vm+D8n(-D|abIP=;KtaRG-Vd9rq<1GG}~ zNI!QYh69sDm@vT|sXRie{FG9Xjt8H6-84sBJ=P|AIS1NP%li*zF@_zm)ak@_iE&wI zkXWXgM`~Hv920&}Psd&}MfiwoiBTAE0BJ!+d#h_I3)x2oQ2$)=DE40i4AJsnQ=xtA zm)td%B=pL-oE2bX9iZpNkocX*tt8%LON!NgJ8;m4(R9B&~cfbVeBK8Z7vXUJ^1&%ZHmowyb{OvUXm15H&D-ry9}4|eeQvR)AB z1b}coC(5Aex;FBo>22u7~kQT zZwX68h~vw?#aCQ6aL&DA>RX2ylU5{D&{rQr!yZnF~thsXw-+`KXTYHYBz4{j^)( zmEen1!P`}9oWl*w=U;AyxadPI<^-3)@d0FgEo;TmV{66gy#lu49!WVbq3Jr`~EA;V4v6U&0{Smi;c%+N&lFzKLQffNgexP3|JS2)4TU}RKaZyb?hBiBOhZf*Uce(JT(IBP+L^Kd9$uhCKB&0{&;))L(GTF5L^HS*8|2ExIUkJtykVWxxbx#{d;y5yums889jhDG|lL8j6{N0lixPE%~8}75>9HWCD z;x+>D?QZUmVF{CuXN4El6noOT=l5%6pw|oY1Rw9I$Nj(1;37*W*|N5!V1BgG)SiEcp*m_$h&wa)^GW*4iVmEP{RVYm)KWXMI@BOKe zU|h>c_{W1J)bBPmu8iCEAuyDRHvfHo`@uGD)uHVMo=L@7i9zAzXNLz9M7W5deenQH(Ze?A#;cDm}dHa5v zU9tEH3;GB?d|kV6*bd1bDA=Qhdk=TC*%b4jf_U?KU)}yH!F8cv?G55n9xx2I7M8b; zj9Zq!AyS0C&BWk>t@)K**0-kQe}2m83TQFQHT)9F<*fZI=q`2YuD{oZ(YG`usZr(V zeqp{zAIFZt-BIY&rNHztq5&V4^9+z!9r&V^?M!FZ-!DKv$OBtzD>rz5L(lTf2!A|8F8#&pAwQlYm@O~vxcAYw|FE@<6r?@G zbGCeHemQr;KclvJLV94ugb>&F-JN>mR`7KOo87mqIJYdv|IeTPH%O%Oy7e)^FSnlD zKS!tnrJY|qJNm>6XQl3CkhF)0etXbJ`HsDtA^{~n#Zhu?n_8#5B#AAJzpJlmX z($NJ?OZr5^z_4mRv0+Km8)Dk@V~f?+9}iOUuG#x<8Yb%VIt6p+SCOG@JqBT%RhITs z{+0&gx_?7+pnz70iD;%6!%Ne#DBt##FR;=IM7-9UG*me$v5-SWM5^#_b69&0?C;?c zn1N;7;DtD>xEVp_d}qd)P9mhRPQ&PB>{{_1z_I+Kf20M?=yh;h3Vx`zj9u(*>pXF!`j)tkN z8B|gb0`c1KqB+1F(uiGrP!29)_07GqFn>KAc-{al*UjmiG)sY-m7*(aKXrE zP;_+i?+f<*xTU{SJNuAju5)Q;Fk3W=g#l;&t$TyDQ2h$7Z_FLwxz0Os#U9g5~dZgQ4yM2o%COatUE``gy1b#>c2?kgI z1pPsmp~QFU_`M7#JHQJ=z#wCVA9V5Hy+LTT#8@{!8Vb9CpLEFZO8&8!8LO`_-h40#OFq>zv zv%Bfs-#Af|w}>+SHi}i>*$Op-`jeC{s52;UM*jgkAsaxs(fO8igeYvN_aN_@^2C|| z$)B@q4>b{fU&?mGFceWJgBK%;@421hOYz=ouRXjHKs{;cGP7KyOV_q_9v94y<{qT@ zfnV&!pX@NqV@z)^r78gB*maW=@6pFTjyqd8*gSTmPx-c17lwL#e{}r${YJ?wRv;Je zD|ur+DX*J#1frT){Y}jsK#1FZB$2=yao6wsK!bYalx#r${+x~avu90vGq|K~e?{~ma&eH!jEzHQ>NWqu&!;+EfzA45dHyokL2tG3e~)cr#~^VSO@JjxH* zb3^SE@r@h~q34cfd7yG^?#sQv$!W}-m9Y+A0Ou5|6xPJY_&^H zstO5ffBw!5PLTv5jylx1+AfAqVD9X+hIWEcOIe1iGfd>uphfq2#2k8jR};z6!s^M2g! z7gP&$kB9I)#imd=K2HyaZV0q{3;NG>ocuEXe%|=xL_ch%KiT_pzndj)ljd`)$Ken@ zshjK&7Q?ZE-h7BJ>eu_jP`6;qyO(5aSNW4f;iX3HHXCjW^u6dG!Q>99WUBPNd$h2Z zm@Pj-Ah&2O<|yc0pntT-jir_+PolVh>xUV)EIuM`8Z`JjU;FP-wnyEa>BH(bG5u+I z;aR$obo7UO6s3%OC4*UrMzSzSAcU&vCmjcGK_t;_9%kISdtVDT+-kPu&(r-dbr+ib zXco~%6jL>xlVuaV{C>x`cZ6Z9r@Ov3Ns~G1B&)XD-rfRhB3jq!yn_j;sQ>7htS`E> z;wEoH|6(S|RTQj~6hnlPO{n`D=ah(fG#OMPT7qjhO6%Qhthjg3hO@n~P6g=_O_QI7 z$=TvjTM7Y`Q~EARkO!)x?WAe$e{1jL;R#c-%pwps@!&d)&ERmwA?MA>5kUc4_>_Zj zv8smNYAKG=+{0v5cwTlH@f?iB9o=@(M`tfABlE1%KI`BR8E_4)6bxY7z$vNXUS#1> z*1L>TcS^SbN(#|+cSf6^E zpwwl!dXv`#z=Lw!;#_F!In`;L&9?2vv&0YCa@oMP5`GZ-!;7;a%Rv)gvwK*$RpLOs zp2Lv&FTNkMb@e2JQ#R)W*)A?IwFvZjUY8uN*7aC)sc^H8Bki~D=J4&d%xu_E{^|x^ zZeXz(&0KL_Af-oA&am@_4N_)G96|;yQXx18{W|Nr|LD)z(`#@eqM&W%*KKNuyZT%G zPAqzJwMfRREWjf2g>+1QYG&j|foZGsB3)GEU*1ofO;hriwc(DYLul|l?ROX2kE@!9*%UuPcVN|= z@BZ{7oIzsO*Q=itdmm<1bJChip#5JkNYm!~CLAYc7`OV!^_!ZC^&U~a5&Li5bjb#u87obZFbtmb?EnuyOO4mJbmKd@wx$L5k|k;m2(lnx6@)hj-vbRtV-`8#qZw63s$!TJh;Hq!x#?LJ_w+{d~ASA4PV}DYlfD5G{w+* zEQfV|$yY7oJZ=DE8S832uk+loy4bAnhg;q^B)Up5^V{87oo-<)qs#VI8G@p+BSA{` zS-md7IyjtOLBxX!Cv_-2QN1$%07bU1gWMaS_kFp}_aG_lyBs4lVy_Ih+v_4sKF1a> z@_qp8D!cx)372-rKr#Z~WBSCt>9rorZL=6#t#33Af-5C=Ccr62-$zH;?6W>Rqg2hc zhxu}G$Vd}Svd%AW-6@b~7$KGH;0RB#?-{p-BHKGbBM=gg_0IOoD1-pup?{=@X#IvH z>w^9;AsaZ)%AYU_t1Qu@OpwE^K>D+=@ZQ%;3 zWJXU=p?E|%@@F#5)eHmQB}PrW-x-1_?n+|lWEEdxC#|4jZ8jVuvMfQo*}GuyffpYU zk}`pb;E$0RJhv#;s`xW3C1fC(6ae9j4IYAV(^{?I1OVO5_;^4* zIFfF%APxIS`uLUM5vwBEw~dXb05~~WtVgs@VYw1bhmavri%74Ua-#2I>H=WLrEYcl zPJ1J9AOT3kpT;SHiNczDYK~nb2b~}uq6X=-Z|@6G{-J>v4;UW`;ehYgLpSlL=iWrH zp$m@uZ+EJUt|PSz%F!y*p9=01uOV4Gz7=(hh48Nc*y-9Nklbpd0=%G#TxZWCTM+oVt=A<_`uw@MyNKfy>DTo`?djyQ_Khd$F{X2#JQw+wxkzPyN%|)I+kD3v#Ys0E<6C?V5 zmmBX!&e+NMwtEA86SFl993I8e*XWxng+Au>nH((fm;SnDOjpY&Q5Ph#!x|NXE3v+z#r_N^~{_mJcr_4Dzkx|>4u3?%!KpYHfyY%3&4#3jlG z;I6=*AzQrhv~Z_88%tVE#r*hCyq}eyEz^A8+lRm1h{^6hUVIQl^jj-->-yqfb{#nX zrysNN&3!}*9q2RgDz!H6KbtU2jyZT4te>y8IRG_|PHg}B>03@v)V^?&6*0TIAD`&o zhs=!MPRgHmn`3=7yOK)CX)#go%PFa+vkntU(-3~O@}TCR-FnC7ABB4g?uoMU^=}&9 z{CNTS*GOhfdftxey2C3sr&T7hU&KTz7Si!#(1w@oWk<~H$5}~D)h!tBQvY#|qr-`n z(U817%56V)&mVjo|6m($`R(;R@5GcnWvcCez+@bzlM`?|@1og#uYI|Q4Ksg~+Mmeh zc)a=NY#mbI`Zy^2GlwoS`2}2a_`&~MwO!mh9@_64tE2Vvs@G-)r)eFr&KD;(vV1v9 z*I==+OuHD|ry!grp?Y~)n{aMKP`o&8C;rCTKeZlLL!E{+=n?;z+dCxTe%+tyW-3_H zqam&Lb0|!`!mIzGjZxGNDvJrJ=MJzZiGf`6E{AF5^aFIEflAl7o{JW*DKmi$=xn3o zZj6{Ydyf^K#~6(TTc?@gP0VGuY?Zglgt#*Vm30xvanLWE&=)Q^_x*HTuTC88ut*()rfr-M z+ss{T2)%g|QBX2A_lJlyUKtN+nzujAS$w@T{(f$wO;<)Z?kEbRy)O-MUz5Y}SRX{raQ@HO>AV=v(ae*j7i}89KyMb_gt3nkPPF=UkEIBApEv3NoT)%b#cDd&(Cw|;!2jca{oi;$jJ$jneCf+~hWzke zGA}~uCe!ITAGcQSYrY3UW=rvN8J_P3BLPm?Ck|o1o>=s2rx!}W)%%AEHf*RIGe5~6mcIj|S zI){HtW-R-13Sq=nZog#eIcsaJ*bpHdCw`tCN~{izZq9E=|8Bse^UI>fU8bL}iC`rk!2QXcIJPdtXX3AmrU26YoV^QzZ~=x47^%DL}G_ zoUhu6ID!1^&<70KyHHm!?A+Fb>oHC_3pNQa3&3HPr@fuvd|v;$PQFkV89>lR#UW|@2D3R+vHNK5 z>yj;_^R8bcQ!#}wlBcLdbVsh*Ci_k9&3EIO!vntu&+8D!n@>S%ZZG!4(=k+lj0D%+aL%?=RET)$9%@ z@9o>aKa1T2vg5C;rGMT1eo9kO=C>{c)%2ZaPeonR$3KUCYQ{PNwq2vg>~-vZ#(6Y0 zzjyLV(4U_{4W1sm1#Zs6n79Y3-#?zEgzV}Wk801;>sno>dpPP3zwkFTmo`jUwr^*r z?EBRd^)HO4%e`bR=4*(vwg0t9mw4!wdH3|-e6HSc-=9MfUmGsR{x9+3G8c%;D_p?7 zCuP1|^j@uM=UwOAk6rcjTXzrRM_G>wwWJKi>W@Pc(yi&ek&|*T{A6Glvg$}+4sH3y z9@dCoBT#)AgJuq*TLn}!0U2+LX5leD_27ZIm)_}D&}_a&QVgxzM2Un#l7&ch-30Dy zF?!*1ZJSP7uJ^1&pDL^fr6!oDNsp5S)#@oS@)hz!!B7OkzEkgZ=vFYoCpq zQu?86)d=`w5bVvv`Pk!ulYB8^ACN0oT;|L(?CtJ0fsLAV(Lq!i=*Msp(5t;V(S;MQ zl80)p{yus6## z3D}sX4aZj%@C=Lzon9avw53P&#F46gP;XMo?GI^`G*_c6k1i&!k=s+;reA2sN5xPSCn#5h#IM zLshK#Mcw>?j@A%06yJVXcM65J@ z!MEf7Z>2Z=w)WXJsBsu{y5f_4iRSGX4Ezq*c26sHin?)sDzcS-%}qo5&H7+uzD_P( z%X@T67A`rc7X+`{P=6ckR56srRVwUs$cpRzVxj}_ZdN5#Rh_~>zIQG|m2{q&s%b-M zb#elxvj1sI-!2pdud-X(@2F72OaI|$Dr2!0sHnQyUKhi*92 zkv_>J7P`8ThLul|`LvwY%{HIrfq6-KEB}C5EI1|UQ-CW=ux@+Q~2vN4`&%B4{D96l<|A`52aKY8^X5d=u15YBOt##6x|vf(J=Kb zb>cn6tf#|IW;EGoK%4Ll5?KKVRnL&E=)*Q#-q!obQ-3_wc4z1sU{^1zN;iiyye69F z+X>E_DOlF>HjC8E;&$?ZCy?=vUDc-y>pcq5CB{FtEFEdA;>O+;Rq-s2$mwVyqDsad z^kA7_TUnQB&!;1k+k>GQ&%Bx8Fp>!L$}PdL0l>P!GvOT+45?P&W%__8Du}cGLYOGRaw%iDeedbO5}=S7 zILy|tn0hpzdhDTv9!+=D4Yc&gAU6ggxKjfPA5zy8oEU+Y`?U_am$;2yiJ$lEZ{uO% z*MA-l=u2Gw1OT2R5A7IYE{r(ATeYF<>1~B(vsV~k8>?AOYS^p^-o+;By=ahgmPR<% zP%@b}K9fO(CObj}fH>O9c6KE_M~&Ry=P~P^S7I9tozmHa85Y;XOh|6HA$XKc{z!ys zV?dPX5*6Q9y3T^9 zX!0TqvWX-cex*5QkvQ|E{6a;aX! zYb?n_34x|aiEKBaFl_t4n+_@*ZV^y=^}okQuMU@}<2|}LXy;LyH0_ecHJW5}w@xzV zZG&)60-(&jsx9%?^W;x-sQsO3x_l?#i=+z!#+EmPPWr{70I>;N6k3pq=ej@8M5*sz zL?7v-zP9eU4W*ibb&2N%e9%B9-SHkl_bomB(>N@0{Rp~bPRHk4i2wJ0^S|I~*oXT_ z952KFSHuT-_=oa_pQn9aJCRiS9y)q!$p?idKl?s!;qBKI`S*lH>mrnBKi#n)eBU{ zz9jW#8CN@s!>hSO?dI^|o_<3rECnXy*>Uu2i2TA)g>KK{(^$4&=%x$x-(9AQ#v&4p=4!=1PB+9pjsRntpvJ=vTp#P(s2@IgHNJ<@B|$teFUOXu^Z6l}ZgE64dFX^B)t3>!3dTR1EF+Bu>BM^YQ0^@nU^#n!iALk00=F z*QEdCdsd@qWx3c=Cdlg`_u(_6f%3Zmn1|?*UCtoic=P0CiF?J}&TakPUB;7X@>*JN z*?B_x)@$fE*ZMH?>*hQTY<;K`)G4?XMj>fXK%#lJ%?5KiN>nwIx0xDGVBU2VdDz5; z^WB(4WbI#Lk-=7|@&0B%CgRll*=P-e3PT$Im}@l!;&Xcw+udgLv=+vX9$3H0X?wICyOA{sb@MB+2swWb6D(}@bN~P#07*na zR5wQ2vua#z7%V!bf<()#XKjoj)Y8E-qDy9-tzN%)g}0vhI{ILdo923Ep<6A21%)V` zX$Prh%Fkx^ha3E?0UY4g(4{-Nd>Mb!fz^RTf$iYJ{WuQLJdSHe0y57T>X?{&xNelP zbo5(V=7DoFe$nXvCkVcIZp#)0p-w-SH{0*eo>Nt~-fLbr0*Q!(011f}0Vx3@fPjFY zB@&1_A>xOTAOv*Nty}ljF`wOjc{BZFjHr|*6vNH2T+(Qwz%G7HEyRw!s%|31Kvuh#V%WD!P7`#Uiw=T)S5n%G1>+YKh0XSha0}#_&4MfEE1y7FrwI z=Q$vo5MQl;^N(O}Ttd&|YW0jr*ya|DE@~E1T^MDFTiT765=7zv-(H(%;`$>|fC3giRfQ@YIgrZv3>6m* zfO>tDCVWZ9e8ecPs)fV1E8V^LnRdkG8`t6_Z&Y#!KWbiqF}=U3s#BRnD8IV$xOii? za`Gd(6Tg7{7S2Z1p#G74W<4IDK*u!V?MwM{gHd#PPLoNSU3&Sf-}-!x#yEm^$H*)- zFYo^SLUrNc9Ne*%NyE zvwJ*rei+eg1Cp`-Emrd7yF3IXMN;fI~AOGcl7YDL3*Tn}Jr6yT@DMsRrT79Ns z!n%ijL1UD6`gq@u@oZne(^P&rei3r)kM>jX`*gDBJcw-CgLT(~SVU?1!3M?8UgY{b z!$Qs}F8lJqYmlx+dR~C&TNU+=voNfWVfsfqGa1u%GP~VkM?&y(Y$%io9tHC27pVO- z_qTNIMHzH>^j-!M)w3WYsXq}cqi2B2-e^*tc8UG4H^4OU|Sp6)V{zrf!% zkn}o*K|J@gp6zx|^)I9XBr0Ls0AgGSPjsPT-FU~MC8$U|d#VPOWM?`Eo3oGN!V-T| zkV}vg-^*be5oX_`4Tf2+iZCJ9xC&TAZrNw-A6f|!yuXlG&t}B3i%nJy3}rQrMHaTk z_QCRV;WNT{2jf*4RO*7)`QfMKti5@^^`1+xl=Tv%{wqrYeJFJM%1P`S3b<&*Cpx zl-RjTK{14wO{*DO6fjg}*hPd_0w|7H0IPi|h{Fo!mcry`=k)=RJP02RS3A{d-c#)M;-0OERslmYbJ*ennw~=DgR%gg@!Zl;grR*SkkReSJr!n%a}wv`Nwf1h1p-^>#i~6i%b`%%@f- z#yV%oW(w|B1DcQ}S2L9*(kBryH#y3OSUnfnInvh|OoO6TQRQTA(z)S&XGT8&zfQEM zq+PFYfN9({17~9qK{EQa=L4uY0wKq@6{7)F6%XMFQbE>r!}G-F08g;n14Y2Ae?2*v zjqil|jp&4kQr!V;?sN`!LsJKGxs`p_Wm-KNeEs8ZhxT2NL?n`sj%hr10mAgtXJOvh z%&54Vy(Pv3xV?fLeeQ?Y<<~4jD?Ps!L3tx|SY4JV8d2$%(+?AvwtiitX=BqCy+!`hD{!pQh(Ppl0(%haAVl;WE^_aqgS!{Hb@JRt){K zt8evOt^SiqZ_@ZWiEe*7d^0y7IfzAXAw@blq5OSOoG#~+*K5yX{OS50`_r2V`D%D6DwK&|_H zUsNq7VSF6kO`IAYycX5yu1oV!1odC98S<*Gn`IO9V8fHDgd0NicmJ89K+mZ&uvk4_ zQPzko;U6FBaaBik9-6;sdIO*PhcC^$qJp~U3YwfnHN$Ht{=OXdFEI?nuMEuR`J>R| zVk9D6BsE7FY`d&q7V9h3+ChcZ9CpFb%%kn(fYa;g8i$mRQWfVZ?}3x*9qki5B3Ynl zhBuD7V-tTQ#jrd^w&>?pPLb$xz;&_!7WCOFd_->#QR2zx^0Vx z&VVGCHRn@{y%m+)g`(q8F!7;m<%Jm%5%z{z&}k+p7ANy(j4IdKW?t88~a z7fPveV=r7T+dSE24W7f^F_okklzFMx8Gkok3F|GYp$PAhbQpBsVBAf3v%f*5)Cgfu zu7dQ$a25Dzic`UCIHW~!(LRIgL0n@MjWNbo)v8OMg$qCe@Ok06>Dqqrt4%jdX3foR zIJ`z5JdI@i1`feubH}nEyZ!-?0i)1AWUokU>MdUeL+>V(| zyJ|`(tB6F<0~X=%i_D_r?wpeU5VV^h@oJ8A&x`9w2H+uDx3+)ImRbKIp9?vUt%V`_ zH4DxymA}p6Qt&*O3{ZE`^g3z)7VnHLK72#c7zDT2P+>wcnqaT33@^132o0B08n|F+ z@B1jQb)czN36Y}vGHxzYbKn29EIt;dY{H+Gh}7kOUdFw*yeQq3oH|hh3*xNSy(ZgO zdK)5{*7T*pFvcF8Ts607h4z{qPHP;QlZ5e`0DNszpk%rUP7#ey@u?2m=3#@%-5^

=EEPt_W1Yc%3w}Tw{TiLifFZjNxMX{&3En1 z0w!aLPk+HfG2`1m%Uywc@M@~7sbB_b-%qvzV9YKlxGrzgp^Ww~Wm0>l76fS$E>}&Q z_fP$V&gV2FIi6$gmfwHSIRH$uTh>QE6JnC?g*H?rO^0GvJ@W^383uwXc}KWoW;0qM z-7N%gn3@mDV-+I`+WQ5tlm@Hcn{LWi>&KzR<||X;#AR0jH@v zw}cS~+4l*f90J|HGapE#5BZMDiJO4Q#>V!WB=c*HXF#qS#fB~v%Fz0H=6-!V&{##} zh715Tw;e_`q&&vu!-K>5aAu7eb?Qom)I&T8(%^Qk)-n-^5#KhmI9-QxK^$zm zT4b)K!Z3))oSHc^5K4k3(}XnOe1@bJ696{(3+O=_W84Yl=}-^BSkPFS#Kj`_=luow zFyd2h`dWMErwlY|NaJP$N?wLD1nGv@3j+wa2Iir1z-2ix?BEuSje-2UD(TFwQ-eK$Vd-dY&+!;p%5c6!uPNdN`RYD_9o4~6&ci0Eh zI4(6ofk|l)BQ~-|6$4e$U=^`8MlpaEy*5adwIY<_HZ !)4vI`3>oKoRSF1Qacl2 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 z≶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

>M&l< zHvLkQ7%lW`dF)y^kKNTvO?NFArXIc-2lc#oYnJs;GA$>s%l&%w`ZN3#&$%n6 zG;Sb|*jm7#zRrm8ej93ZOG6tg8UVw%5Hk)>bf~&V3$yKLigdXWPVjgK8-QctG+SdM z;g!V%wzKZbisJ2f;ASJTFdG(jPsI*+)}+$kw-I@_fq8ZwXD6c5AT}JyXcWFi9kX zwXPvCxMr+?JGJwH7h#1*#Sx%k(C@^R`DJ@SC{%kAyNHGrO5smLnMBq=K8uwKe~7 zHFPh^C8>Dbe26Es%?K_Qk+x_K0EF=chvKKnc{i?U1~AG*ypsW!G57HXPc*FGtAKk1IIoG-iXNxoL9L7k2=y8|L4^LZn-_cGzh@+BppRGT; z|Do^q`A-q_=3$BZDV|?el2%>(r|MH#Yx+qdGL6-mWpa8jReoUYpqTnJe3`?bgGtVP zvj??r#)C_XY6|3jgUij@dg^7C!7w*Jq8q(0`!uQ4$m2&=`$zRj?iWMx_Um#d3Jniw zECQauG@${|UqBafY!$%QTlwD!Qrfpm3JY6Ye@uPW3gT3h9p}~UpFQ0Bn?nqvr5v|& z#I{@S=jayYk7#NuNV`WKus~+r(;1}QY8gDdH#W!#cj9!1u!yg7m{JR>V@HVT9@XU0 zawZ_?hp_d?D&2}Lbi7HmTE_$>xPK>yglKXN3V%cK0TQOJx@IGox+M@q9JUI^-fPm7 zbcGlL9wlIU=*4*fB1?!mGiJ~TRg7Iy3CBgYoCLBwsoByv_Bv-~p?Dp4gzk4Evq8cb z))Q$Uavg!h_-$uF@;Ie2#<4i@H($`n>$rgtB-+I#0vDy=o(|c1TWF+bVH4{dU_+xG zL_S|)J9S!+1j{f)@C{1aoqca&JGZOofeKj3EZtNmJcz_fWLwBuf^Q|w;0=LAj0;;{ zg4bvB?y;HV=r)V`j`j#_!i?&?d=%W^(_|BfFW|wnnXsqkBhiep zlxT0G(V@I(8?&a2B`cxO519$esMW^~&~sV>BCG`{Dk1(0*I(qq~HBoQU}q9H*e7SC2WKN~H%Xn9}GpjC|-~+F=oVbpnBxBWU7U`3HDO0GmMi&xS0wfH)N(g&H92*HNdn12taLj zay47{(5K0fP`n0aaNKAOu02^b$)uU&OT?G~M>zQ_*Cnc!OR-R)B8YDb%;!mf)ev#G zc|CO9EX>f7EriKZG4vg^)4196YZ?N#DMJfSz@tF%Xo}mjuPCq?U0Dhpd4_Cuvl}|GIfJS-NXB%PvUsSZDhwwaM23W-lNAVS6TT~NR~pf4_=x(a!V_5UM_ z4ILhn_Mg`7q>t6<4Ct;_ldI!f`5~=B{qX-)gci1FpH|&7)ZoWWH7$>*TYmZ}`M&Ba!p|a~`7egL+cO_rMOD0rI$>@t99Jp#L>_Sl}kyeh1Sh z_XajQZ)yHoOa)IqT^_Dqpwrv;%N#8m^%JA-JY_7O@C$gR#xTD9yXegZv!`F&+COfN z|Ml!vSlaaNZd*8=)=hP4H=!Sv$26`3>h!Qd`|Z|GWv-|0*?g~unEgvCBlK&B@tV9h zNHD_j@)*$HQ+o3VB2VUed@9A-l6a+=Jrm75aWZYP|Mxq1i%Nk1RFGxPyGwDi@o zN3$*wzk7WIPgxcjyx0)1b$`#PHiuFdeF~xn&=v z-LRnrB0WKhOz&Xaj&vhNn?{)vRK1OlQ=*KMRk-qIgUEzr9QDMC;RVMiYY4lJ<$5NCM&=pIn;kauHw;J07 zX!UJ9aj>jDv@(gTu-O1jkOnB7XJp}UjZk1D@*7tDN*$oGi~?aPmX%7mw`ul)`52815Bx0=h`ee zk5|vPIntpMYgio6tAf@Ly3V3}qti@VMk0{}LV)f^XQTcqb}lR0+HCnKr4XL(J%qB_ zC0jySGgQfZ2A-oCNcCE&sw?*96LOQf|RQzTi*%Uc0^SCx{w9_f!4VLY&3%-48k-Q98;$Y zX~${uKXSYdUxqqmX(&_LTRdH&z#ux0%bJ{5YIx8SO)1=XS*7qT#)ttFQ%2?}lcjSi zj)nqp%2hpAGIdCVEo{tm^NbPJ+xh@V&*9vRW?AYK{C4Q5+$gxb5%CV+{RY3YY!)iX z2(2DnZuv)$k{hsnc@jM4J2TwZMsYZP?A=v^hYl5*iQtpOGu=_LIeCWGZL)J`HKgOx z$|Kpj?eF0sW3;5bxPf$JOmw})llzCK>@+-0bT&J$m5I}jR|xV!_kr8ji!1VL^p9k# zUfVedvivJf11+NAuGU=x=48$1ZGtS@BX;JlWK$j=AyL(Az+Vemh^&mFd;O*8v3%O^ zf+x{~5(^9+zb0Y+OW9FTg(skN(#uI0fVN`}+RihNT8N>NXR;M+jdNBem+|o&4|o?` z6f<7$IPIN3NRLe6^HlRFOQgXGTMY%vs}DqO3GL>1Afmi48j%^5DHPV4*@@#2(QyIN z>oi{N+j?~Khoj}r&Td>VNW8h`iL|JIR=o8KH51z00-*kexX{_G><)KqfioZ|(rCS% zN>+pHl%U8U;%^8Qz5!l`RAQs%Iz@szR(Mx;^8&MGzXML`cnh4EOn?xAL=&n+$TP-0 zhzp{|YqS|VCfiL%0VDfC#TN&7%>5LtsTm1FE{;(bW1Lx^uZR}}f^`nnY&Dd||FP@- zj(`bK{TF0CG$L|iux8W<$`%JVwa#(l=Ph{0rE( zJ&3Gga4J1^FTm2qpMkU42c#5Frba61B1i2VMg1V}k~z!>?5+W6+#R}VakknZ|Knuc zBuCt);)|DF1r=p<`dDq3`lTx#f}T%=w9CAMf}5YFshN(~xauuXkqOy(^uq*HAkt7* z_Zv1X>xnzd(&S>7d|bL0x5w2zvQow%1;(F#p;rfj-Bu0VmJyb?&R`5ojG43u8N}f{ zc^=0a{gJClq~S zNoFyTih#zQL0^4oB8Lk*eA8)AnwF1XwA9SEPcUBN>nZX0-2OOC zlX$*7rq)eOyV_wVdMpC;^LQ8-*^y)~uXw{(Z;HlFY$HI$EYqX%(Pb>IxnE()Xf|}W z=|tmOigKH;F74WX*tPWOG{EPqjA*EG+f$r=G$1RgU;WZnS-DmFSq=7)vAV7DCFc>8 zi9Y@S_jFF!g6;yM7Vk46!^fX*ofU@)8Pd}?|DTF1#qa@yLMJ!(cfPP%(-|dW;T}1* zhqtdif6Q9gw?(9k)h{3amPD_+_f5VZmpU9GrML0?8r#1efBeRE`)LaTMIQeRzqOm6 zD_XO+8Fk=+6wyQe+g4BL*pBB1AKjmJS_kfmhG;Nn2E!i5+g_tUNX5$zmt_ptdE-yDSju^Ov zr>q_}n<2(~`+Co`xFtUwNrX-HiUaq}01-}@#&zRjDZcFtb_CBC5Ki|2;V2IuVx~1F z6kIWb+da7jV13$5&X6U_L5p3(e{PCJ>>^EICST@q#z0+z_F`40j_XQCo2|BTqpH1p>3?!!u?QMnhK z`h!doGt#7C_;eqlp9=%567%j}_I-WoaZB}av@K_rMH|^lwCKi&j?XQ8!n<@&+HlFe zGaqNIc&2OE3bv|b_i|Eit9qKYt@_%Ec6E@Y1+8P9_|NuEMtXPPIPdR=Kc~(X5<)Jf z$MJdD<9`{Z!Q=nfZslN|hx~?{s9XY|xvbfm9qiCKY9W1rGpLWpG%mr6=9s{{BH=Ui z3C*WbfJ43ua?P4$=?5vll=tjIiw`{F>!ZOQEIQh#IVfABZ4XV{;VCK2&TSN3jt+Rb z`n^QU0Ws8Zh=7$&{@ltVm}8O(;^v|W`gyBF1YsLA9YAIsUFeQM_mBPS_pPW;2h?P_lw%AOxI+H(MA+`eaN%9P2wE%TKP3rHZ);|7$tY!##;@6)+lXW0(K-T z?~8w+qp;aFYUbR8+U}RcO}1xPm7l=(u7+7iU133=kMVG=3$b(%g5q?tWW6U3G4nPp zA|UPpgV_WypJ1zHyDhhOpfT^{0D=r?f;St;A*(Tu@9`;Z}}k9 zj>^~bM$^deE{|>&_LxT=lV;@^`_1s-;Y;abcv_kW+UBVi8k^&MZJ=^CPCC_pVKXiJ zTUlJxDN=hpi>??C`IWhKSU?vaa>qg_14wIIZRe#-iIC|2It0uPT%2ul>!R3I3Uey%~eY+tMSl4b+XOtZ z9Izz@8IRDMFV5#tT&;8G9mlcV5duxfAWvjI)kbalFm^KxXloMeeGh55tu|q@!z%W8 zyUS{@$zqvy2AoJJeHOXkTnOg=d5gEoe2nyYf6J#u&$p--z(voYILfp(Ud2mV4}+I_ zQvBgD4j8V>mGmanU4U*s$7e&bhkGH5!-wxL;Nu{sD>%l9O4aR_(y_vQT5mmQ$M?~k zT!`W4f>}Cl|H6<|JAWEK*CgHL(SZNse@jiYE<>|r5t`eX9M~Z|(y=~o5vv+@)kla@l*`OikWvsJh-ylkpT~3Ic zxVM|>$&4$OVCl02FmVJBKrQgz4mJ-{9rMSjfoP{E=0gOO?Con|K|hUqoB2qTj;wtn zHRK;SWVk8mBM>tU#N}FjR&3yO=O1ka8I0@v+Q$IO$U)VbN(^T zu+#$gvY|f118krUMs(2GKa|sGgm$-776hYiqYWFK0Qd^Q0CEWeEaLEf&*Cj~MO#E- z7HAo+d5D>a_k3MDi({By8Ww{T7wh?*t6@x$;{x8G%~-@pd!w0X-(8h^*so?_&>K)t zjjFu9>nO3U2f8JIBJ?o|f}rCztl@c;7uK@GQXKQ*Z8IDatOL#`@J&3yg&bvwxtwpU)uCcM0dq`$)G_~e(3c=E}%%= zc`|X?(U~^*NrDM^k=i-E6XE-jIk908+Fi_j*QHEAm?D~zb!jq?Qh@Rvcn+bNo*@GO zt_XhG($Pg~Lu^JTJOiP6zsuko9QltSi&6}3w{FYW7acx&dGu5K#Jlv{wmy!cElu`J z3Z8UpJ-B^^zqa#`S+<)VAAUL-KeUk_l>V9dP4u58mK_4wL<1d?>Je0Hzm(!Y{aHj% z1;Yk-l63jT=hCc~DLYbd-rfG9Lj3!_%eqG%ckv=WQWxVlIq{LBgL9iT+~_8&>wTX^ zKYvP~dNb1Mi9P-Q1i?qHElGkPR?}u~uKmgsoY{)= zkaiD_uX%KulJikn*=<998`G7n)iUTg1xpvpw3oUcSN|md2jAgw!>@_r+;$^?j8J1e z`aFKsp`EOApwH6krQnjZ6%;Rai~^iTv1yK7Tyrbo0dF6NwcG}uX)+~}HEJ|r zBecL#e5Bl?2-uY98RNhrf#c7Ql`U+KuNajhjz^?YJd$lQjp_vaOWfFKmL4x z6DCKBuffTNas%hpDub4FTGrpQ{pplsaR~Vnp&ki6Egde)bfKh-1OeimKu`|*VpYmJ z58~!;-g*K@jx*AfYBtUk54jb247YS|8G(K(aE&&$8+?>WI;U+}kxpL2fMOQne7D2% zbz1ffXz`eJ2)@X&p3HJ08Q4$yoGE7xk+LuECf;|KE%_VWuI|UUPGIjWv-SlaZ11Ei ze-5Vs;Qw5raZ0S-$80E`Y%@X(zGxd$eq;hP!5}-veM*zn#3Du4a#|Ww{<0^~mY5J) z7)zia6~*Vv6i*rxAEct>b2D^n&Rvoo##N3NO>8Jizeh05xPh=Il&^*JiL5ZC^Vsdg zhZYqwMU^EhXJsT&4cNG3*juSKbC{VVL(gHv5GmItak#Ezg$a^$Ze&NwEZfYQFU^;^ z^zp8>qPb;5W0MssN==Fj>!(}DMAD^q;jBdj1p-{&XCVQDuq-aKQy?&^N2IP2K`qwX z%?FOLpl z;3HUh3jpky&FnWUMKa5{T*XzH)mN4gnVxj6fX2~|R4)McTqAi}dm_C#xJ2$C7H|y9 zl8v*zHIbkZl?plZjvcr}+K+VhD*5QsnNB>WX?rT^z?>!pJnS9_)$jK)TCtGE#A;5x z(=5D(6`%XhhYA{cUWCcU=X)O#B7dGdPuIJd2Acii``K4Afj9^9?cMI&>L4-2f>DV1 zfJZUFIlE>mHR-~E1W@0ifIvo@L%b2g+K-Us90cE7c8d}qQk$qQVILSR!a<3Bn71HX za#YR;UR8Sv4dZeL@TSlmMeP zeMY$H<@q7h*-e+efS;xoAw+CO9^1b@q=d*X$zpEY$lQq=67;?R z;fKEr)0q}B&_C8JNRtJt!}YfNsT3YzRbkBTLfHCks8NO)y{Vt<-=p_H-=v{VqZL}<)|lx1)c0nD&wQdcjaQm*^4B! z(C+pXA3dP8eb023#vSJ=P%mMvU?|O{#{#FO3XPd5T(wMH&-Ql8X|8ENRGn#`WXKvp z67O;X4C6IvFl2)%Y-jbdnkb2_a@r>##n`Wv!|tz$xZ9LcI51Fkj5P@qGZ0woB_Lf} zib+g#PVoYLI@-|2fD%95f!6|v5l+H$T#epu@=j$1c*AU7Un5#d`yvaDO)Do)*K`wI zg6BOR%@~-L0bin=5O1<}^rA}Vg5YD%@JyGg1O(eVF5G2x3t(w)KDjDZiZB*GH$7GB zrAbBH3fe?Jywgxt`RstejBk5q1ii9ZtTe6eLk1Ffo&7OC*eUE!3g?Pm`%Lb}TU35z z^XWN~rsJ!(G2klPn{hP8_Fzqr{`?|LjQ7G7DzW~L*~-V!e9qOwF909IEdhIt`Xk=V z1^z#4QPC~m{+nN_50q28AGR9yaA=IA?p_F)SbU8W(&Xnkub{{u>CeG|;0%EpyTb04 z7TEbkK`8R{A#R3d{k+|%*@;RHu`{^2p!xYZ@re529S^-L;F1j#=c^6W%0n@Ca!9D2 zy8^R?K#KxvFaF4{ca1zrwLro92ZDT_jMLo+CcPgd+fQ~__?|&Vb8<(!!b~V}>v{1* zZy)PJ%`|`xiMdMh@G-5Thn{C7#Fb^`JqgYfX)!c&v7J)48}o5Shg^`}{O}8_VUV#5 zs6!;m*MrSdlC=k$XKY4vU_P04+Ki1&(x>H6drF(m>l&vJoPa!2xBm0+;{k{%<4x`0MXmL4(|m5_CrIehf|)oX*1=( z+%Btx`=)#!^!5w-zWKK-x=*6GfUbOT(_b54qf}Q=tE*bWl7wmg{n++X0S|BZs=n<0 zeu(qt!5+juoBa9fW|O{EuXXpl+JDq!%jV(E8Yvq9tI(e2wO_K4ew8i)KK}uH-KsJ1A+jI_%fCN5qMdoPuRK`-A^Jn|drJk-}`Ek%N%# z%jr}}mquT89|uy=lA_&NGtrIj*_T}7;cJ5oSkl=;%qMtz9AVqFO)*?_Pf@_@urLI# zF|h2(zMWK-jaP;K#Av^672X!;tx+)RWDQVKbwP^kQuvhI4Y5wRG$iL?eT2{1pc&u7 zhs=&zIoqPw^bvpeP{v|e;QLblA?BM@8@}ET^`S7t8jj?bD+_cPfJ<1pQOQlKI0j<3=IfR(dcI+<-96N| zE83sHBUgZwMlKVIu{4wKqPJ#VTZFRuvhJJ#(;h@CCv2Z&Fc$_=Q)&QtbrLOH*J|WC zlWrW1(f4CM({)?eTQ(jtY9|eUDs2~{HrVIgrV#9$WURkIB38N~2oq@gm;{{W^f zNpzd9t4Gp~QgcOJ6vJ1BmIVF)JE-rC#!v``92b{!8B{&=82cg9xM@)EvHKO_2RN*! z4>Xa0cWk-h{+?AHtHTv6?O6UeOYs}_OkmyW%Wm*At3b6a|Fme(5E8y`sN+2`>^CV2 z6VI5GAN{d85tL=Jn)sGwPiJXfxB4>i&qOCs@W5pExBGEgJ`ZJ9ulHA&f^6$bj6!w% z4ayWv`&;TB`9@35S9+I+e}TPpSq=Ys8b#QbZ3Xz#@$-T>cLS_Itt0N9GDJYnTPPk? z-9NmwW!G2uVZ5zxQ=oKuUVSo&L8OD+^XZ~x<%l897YBu-8TeH<-`5^JwWfPw58Z`1 zG&b}7U#m@?X*S{}V83RER;F}9WkSm_r`=K@GDe2n3ruz9_dh#wKM&Jg>#Qv6WxTx~ zoJwo-B=Xk4jJNducJIyLAasyfwsx$j<4UiWW5ovTNSlvEQp5iG)K}M;uwAhtx+IHO zu2Y#_u%!CCtx zF-uyrlVYcq7pP};C!&>c!%N=|2(Jp{ng9SG07*naRD#)#tU)rZp)xGhfh?HcJED*U zY)r3PB1=^XrYAK2EX2ps40NTKd}_AK$7b$alIf|iDW32Fj*3ONMR_+%m&`Zo>Io2t zG3OQ-p2iIi@fR}~w~#-d&YDwG>)5+wOvx<6NhZ`VigXgIpK=JO?t5L3xlS4zT&GlB z^hJD9)6Q232<7I~!xYW&y`m~zt7~&Wn6U!pYX2RU{-Coe_}gUsmcz!bka<*{Th=f|G&s z0`M@l(^S$~or)LNj~p&rpWEceqirdQ(bCo>YH2f5IJFI%>~2|ekYLiL_;<60WV;4f z{IOHyq{9Iy3xp}i;e!A3?-kNl_T`C}<1!k$3oKh~K@LPCjFYhbScT4PX}~{{w4IYS z*#6D0@s18S-zHCy+WdxppqE4y%DnEjKEL|Jks${l#O->umDn=Gg(ml&E#>GHFOpt= zVmr^{%MMRi4fJ^xHiru-d-d;MLYIf9dee6uQRO_@l&yxB8I0U^9fZOy1azA06_^ zDHh3kUwt0oTjugRAJ%@Gw{J%f?O;u4CKt1@p{$P}rz6hOHuu~6g+1K+>0@{sZIX(d z+{+=34Ef?l@A7uI>FX1m0o=*En~yb{`?AW}qGtFu(`-rRWn#GGTk$7ZMPDjj0XX(g znzsI0DKtDn!QVKY{}>bK`OFXdZ`O?nXU*ALn|OEja8X1GIsE z9){t*wT)tV;QG||EJ3-T*b*VFDEmaCcET<#shw1S^RymfOb&MWL{Sg^5N)b~Nz zf7*Wem7l=-)q&3|c781qZX*4<*$kbpU$NJ1fQoCaWmTpX8bw<55fJ3gyX9zOzuAlF zsp?4i`*JIJ+QXwP??%QW8D9LeY|ATHL>@EMPrOU1Sj_gnJZ|K<)KWU4F(GaUu(-}GBC%WnU1vFTQy zADBMrlI~BHOs`_-*0lT>0UoMZ58T5)@q3qK)DG*qBu=bs&@Qi_Uz`TZn#)`*vS8~O zB;~thB%#dB>TaNkF@t$KB$8)78aF018D7Iuw?SDC_9l)?$zw(m(df*~VUX7pJdNj@ zfqmwZnV{*Nvg$ow&dV2jxIV@VH!CB=)YUe)+9F}x?!FxZUz1vh^4i_=Yy2|>i#x!B zQ3~I`q0ot?k8zzxL_s4asDco)%hIbi5Xj$v1ari4G84l$O&gW<8#R3@M+)A}AeTIQ zNjO=%*4KPHNqw_*0P+Zh<`nc`e#FW3i9a^)!Z1`XkZl#bZZozYi_W&sQ^w^RK$04g z3Hv>TbxhWHt4}q}l9Ubei1}~c(o++*2Hq~LCP(z6)!Nh5lJtXEcCi(&S8pIl>ANm0 zOS>o#*f=$StZcW*btf4p?;HzRLFeJB)8cPu%*xzE)&zVGY~|HXgw z1;GFJ|4I^C&-alb4WH1Qdq2RPjxF3})q1O=9bEb=nWzJ>;l5?>sbdS;M(d-0voKNf zYt)<(>i8o|mL((yec$pXz~=!5H1mhKPnj5*Xm%X~Q0^2FqfV9Di;N_V4 zg{Cn?>flC=9#S{o2ZDjC5<1%{ z0L}oy!WE#Fb}AJP8JdgIgB-dj!oWhGN#e2u(bl9Ka<7u86eb@H$@{BWxL`i@cEveN z6K!B$MML3zqTCRyV1blZA%|BfInG&=cRc_%GQ(aou-L^aoJTdY56&v%O0?=Jy#^An zV@nFt@R9KRny{EyfbV__>FLOqP9@MmSh_^}9^&4vK8fh1&k83fMd9O8yIB$QP(yX7 zKxBQF+r;y+$*53(E{)I34t|yQVi;lsELO5zzD>EWEUlSE2b@&i%fA5gt;0%PKD3l2LUl%i#SqfeB8}b=qHNzIs0zLk(Ix_1d)e%Lz{`BQw81Zc9DV3 z?mQ}bBto{m*kU9ilk#>2{kLy$kDHi7`jH<7IRoF=Vqj#y*@l(ZX}pg{vSNAPe60Z< zs0mDyvtEzS2j#vIMNt#V+h%=8cAd5-gN0dXvq9@W#Aof8n71&)%W}>GILFoP$4rbn z{;&lICXaWRNsUj`A&mQCo$aBTq`~X%p?sgj!|}AvMqMYFG)cW&Ec_Ox3;fX!Fk|}_eT=P#Znc~;zO2} z88CX3#)kmq?jk(mb%ItCjfE-{9RYB5U1lSFkd$aM*PLdiWh_fn_NG|+Oc8P=)Ic)X zyNmIQV?O4#+c^{I6!76S#XfnY2mtZfW;t9JJEY%W7ifY(Tn)DmI%hkZJ!&14-jCCS zlvJsorFOCiAG5cXE@vZAgR5J&cmbzYIuJa?mi7ppRys1nGBvkJJMs5t;Yvm=(;vJF z!02H{@_gN7h|SQ_i$oLE;gJuj++ZJFX0lwIJR!dCvUDCOqve2u%>X&r!7G#i) zi^0dFm}7wQKIX>~Po2zNZ~?$O^Y-6vb>23HiVtOk)j`JC%>ldKB^sk?rIlov74{DBr@ zywF3ouZK$S$LyW_y*aEie(Dhz;72QtAz&h3?vk3`F6|-JtQ`gCeu*xpPxP+Zn{c(l zlfRcVVe*4;alf6MLitY&*45DhaXsc%jct?9b*6bdVJwo$Gxs2Y`rVhi%?@%$3HD-l7k8L}0 z&|9Bxx_;%w5(%(HG`9(-m;!15oVR?)c}P7cK+&SOIsE|6!(_@WAA6sau#DyMxFl*6 zVgcY?g*tiAMMx~TZ{>At7Igo%QArRf1sZ*%aHV!I^9=D>y*7&nU(E+WUz_cWuVQ6) zwtFCvW@d-c_yG-28IW?CP28vN53w)SZCU`-n@C>P0|pNleHTC6G(s#DYk!`x$7ude zOiYON{r+E$OEQL059oF%SF(RMv>v*UH5=la+pzn3#O>VjTy~!3HxZ`vO}!4Rdywhv z|C1rwo7&KQ;t}YKO|LR(#BDYAtI6WO&IUba*{N{Fix;TgtJT#%()1B3oX3+5zFa<< zSlDoHUWEKS!;WT?zVjr#fD&EXj2ym)v-+&9D>r;5c_Sk0g^DV!O?aM}=69B8veP!>?&3QIh3jGv3}FE1|E)?OwzUBMPi6 zd2xw4nd@AhQoMdYqkXFGcUL`l!9eHJ8Un8HmBccbnbav+f_WgDu(s8*9n*8}FDf~} zX)8(xZ)k%K*t0&~p>}Rixy4SRHA1f8?w68WAw$(2G02sfg6Qa|E_x5mS*(@Yp_k+qr?fEU} zA`h1M#lu=avwn!(l3yk3r>TtviDI)w7#Bi^BxkWnm&nC>vkLnu8Z5%fe%q?pZZX>3 zN0sl^ID#KdSm-*^i+N%H1LDJV9lrJ1k`!p1Tf2Ez=rJZFVT;o#!2jug6e?OMigaD% z?Q??cbfSvs%tUduC<%FON3@D%jeZ$qSdgkDDEDl|A^+X-WTQ5j;jr7(E~xScS=if3 zYUk9|q!C3FuvPPfPs?!yZ!}4)agkh0{E75ofHQc|63q@(0Ffp0NDN!#VaB0}8Ou%P z)@e-$Ln_F-!0rJ^b4sVQK=SH0X$_m(PU{FyEKQR(TO=EpoDK;+klHw8Axh7LA`Oau zjw9=$cM~-vuqjm5l&=UEQ6rRqcTGCJ;5--X_FlAW>r_%0NGjqOsB*yN`b#e-V@Qo_ zi-FGOFu-h0cRRh*CsuklP1$kvXAX6){m14g#8jOj+_9C|))|nNJVO(8%2Rjl{3G5dtDf$q+krU{jUoM z`p$Ndz+%5b#U7?^hMt{sL+n%!A*XA*SRWuX9~eF-i)Cz=zV>4{KWqdq3`!R^PQPtR z982Z0CC(-l;Oiv58Qa=(m4F>-9|l40<2rHR=IS}j)jcRAYSOZiw@BJ+8mG~f+o@l9 zTjtp&Q-jTK)3N;O&hhVq{J~TSerHzQc>*%up360X?H5F$81~h2U?o(;&KD~+(yd(OWC!BG&&l9@UmsQQPn-$0iH!Pb#3I8hmcP z(_b+n7Q0ylHuEfb&Wd}l#3}Ism02(sWq!XW0K*n1)!PGqt68SK!Rh-3zcn)%F6L(L zjjr(K_OYpAUtw8v8JnI^T5@o5ykzm?GW!Z2)& zAa>952qM9MQTe>TZd4Ejf&B6MAO~y#dcwR8(>CtV4+Ez8vgv0eiN7!A64m)T!O2qj za9yq|^RO@A*Gmz7d6XQ&DuBB$GX0LHvmxYc2~L;2N%IPg(g3x+YybWkfr6%oOB-$% zBWt;LnqZI~&oJ((x*M;TEiM6g>8nxcWzrNuu$h;z%{Etd_v*S4NijcT6lcw_OwUWo92pj#D?8qT z#Wh*io(x*6uum$9XCreAP?nvUFixeABoCD`kjO150Dm$A%45to1N7lq^ANH5WbNW0 zsIIEWc%7F0M3*xVzT}h0@Q$0;wAnBRnQDs_Zh`YEBsPH)Gvu(d`jZXNF9>%Y0&W&j zFr1opN^E4=yq1c`3g!b%VW(3)j_29S^3lG?2+o3of6ZR(O0XCZ}qaTp8A|V zoy`lLQ5wjJK5XV8&SVMpX&GaeX1nVEkL8>DQg5nP`*xrtz%D6A{;omP>bETaQTAwT zy~&mi(+#bzBZ0HBY5H`7i^J{WRoBWDqkWGw?pv3s^yvFB$Sfq(-vIUotq%dXY-?|E zN$4b!!YW(Tju7F7Aj?$k8N2)m!5Ziz%olu%8=J}OEV!O~Q^^p7^8+N(D3ksKe+Yth zU1l`|h7XH{D_wYfiQ;($V@G_NAFxUPCF^H6q)(_Fmt2K)vw}&;3-!T#Wj2fWk5U=8 z9vgj@aC@BJ)^j?Pj#8Fp$r+@XP@Pcu6^Q*(v$?wQxia~D`qh_m3taIBWuF6m1<#(} zK}``;!x~CkwvPjI_5s`{#=&T+h-2wm=3}2_Ib*kvOV)S2+I)WSsJlfqrn3vnGfM6n zFWA%F#7M<^jCX2rjaFC5N=#LL5BbJ=nFuYF_mykDA1?AGi}dfi<3f1zk>lhP#(HUf z18w;#Cayl4g<+FyrC)8drTH0>+y!50{_~?5t0LQt;(JpixE|(j1ABuZFyK`h4!b$) z|EKy|+j{vnb^UWO0rc?E5WM~%xF!F#rrMcQZ`2=Q(|(6v^RH!Z|B-;K_>a=_xmtei z{?wV;yW(Xai$LA)CL6ip_lM`ic!tiy@UMSZ-tQMe`n!i@k@=MMg=A`PcHDMT_n2By zXZQiiV!0c#ZVmX5yyvHud z?3(jW;?iZ{fm~FM(-~)#$;~&W@lku`>?Qq*X@TZXpSVp%Y&R8Rc;d2K^{BYrD95 zaoE1t)c}m9ZHP(a(pVbtt6O<#%qA7n2>Vh|kmiu}Zmfp|VT4XaK8@X%0&BBuDzkdg zUm#JgPyPK8_E~!u2aS8d`>T`j6S7^?g%)JU{)5}NhGsd?$Q%H~2go6{$vcbiHta`Y z=fMb1#>sUc@ll4|&8!=m5xDN(Y5QrQRIF>~{Z<^4GiWOkiVxFe|MVG`fSeXx=Ej|W zW`u}H*K_jkSr`2YH!d3lDP=_KwR z<6ZwUd5tM|@E*o0mK-o{Pe2qQ#L*yN?50@d{Mw8eg+n^+X8#LIQ7-jsv6p_8igV|` z*sR0*cGFWeZ9?#qO+dP!r(KN(j_XW%n}!ZD2$@F^V4Ol2(h499I%7nr4;cMd_$L2^~C-^7f;$oG6LSj*C*fM^T|5O2*HGdv=-T}KeN!X%lY zfV$xATM}8?#+D}%>E5En&m5x69i7_7cQdE3alK)#$R;(Jxu~s=AhU7GHDX&r2be4H z$tD64u+_^dW8P9vcPp5pB!<_C6CTm&gR{cIj|ydW;=Er)#%>74%<@zuh>)OG z3G&-$8k+;v>wTfd&}n$Hq#Oy{XzIxG>ZAXaVL!S}R|64|6X9}9e(BWp$p?pXcI&4? zSq33px?n{iNB6zYIAW=q-}w+$Pk$c!70*jDNzIF*&oNIZ%^Z$>w!ffd!n;jl>Tf_9a$ZX?tel0VJ+w8E_!@AQ)&gnH=gM#Bs_i%0Q0J#TSt^;8#xPn<@y-trfATWG;Dj1K>>?l#0|PJ9ZmiYLqn2p`v^22q}fquLjch54-#;Jf|GuBS61g*v8O-GpfG{vjfRz$t|y`%SNM3GEAP0r{6 zSRaT3-Nz>J*XKb}iE#Fl$#6(+Y@OLI`PmD%?WeAQR+su5(5X_YHz3 z=Cj#6!L*z1PbwSTYvxzC^3+Y+M-m$>`Mqu_-WV~$Y)2_b7I5Log(VQJ1H#V*5Hf`{0EF;n3T@Z1wH$~ACz7hT(!kUW#W*QWjJ;KTDFV00&zK|g zwI${NXr=CnZI%Fl9!jMrY-2h#jAfxKBRhnY*<(WE9c$bN<8l&~z~s&*fMKF20r_yT z;PVfM82a_FaY5L)Lzpf+=A3fy3T#Iw3KUR?u>ug6l_PLtr39&0QBeQb_aURx{^&b{ zt+`WBFp+qVwQ-PX+^{f|aajmlP7&H%jH8JeiF0BjT>yZ~WH&}e+aEw`u#O??N$+t-Zu!Q0d3-jLzD?tUF_RKp)+2+ z5nW8uKin6SeM6o#O%bZ~1arWjgq4a@}O8G@dp~ z#@mqv08g!o)qu?BU5fgMv077|!F|Lj*`)One&tp~GRN>4@i2{5Qe$4eud(r>pLntv z=i-58E;VN!D!I_gnSTCNTKwHjBIoPRvCJpm8<&VeP-5BgY^Bm|9!Q(Qm0L!!=+hS( zp{S9b>STDKD`Wm}&G{+C<>jL-k;7>}b(5hKyfsxrv?Q*YSf*xqsXK3a5DL|}TN+2#|zry5mb#v%mcat9ZZD_2} z)q;Lb?UP5nyN^6={(x7-l0>=l=MD5|ySsMC+LiTjIcSS${p$kndzZrI?w%CJTlYtz zJ`=JVj#XXcQ!KQ`>6G&OTkyYOS26zmK{s=A`@o!njaj20)h|)OUt8a!|F}e;e=Pa5 zm2+aa4WlMwuCMj!TM}(r;xc5B$n%tX zHpS~NXg>c69hb8Ie%O3F&wM5J9~-B8w0Z2rU9Z}H)QuQEU1E(!7Std8D+8wv>Hc|r zS`N2|VPn>6E2%3I5W!#n>r_o_Mk3GeQ10)^*>pt<-VVnZZheKxr*jQM@%)E20XFX8 z38IYMd%SzLgnSz5f*F=JOnb4b$Ja@J0f#VzU*MMj$6-!Cr;RWxHzw&%qI*}dZC!`#r=9z zK+7)_ED;?`0>;I1s~+4-yQ#VxCs!-X?yVk^7j-76ip|XpfQI?z`LAW43Y9JroC=LF z8?Yita@%|Ya7c>Z4TN%CY25fcrp$D2eGq1~8eW^}NVk99Eg<=yEZtf&kRrkSqx5xH z!FDinOb0~vG7B9EpR$BFLQ}jTFz3Dg*eSVa2aM zFI&my_4rWj=3X%i+a`v4@*sb8c{u$0#o0L?{zhSJE+KaK|NUnGVh=`#=0C`DmrT5@L-Q;dftX(*{P-r`#c?(i0;*^`}!fx*aR| zsyb(zWu{M`k>MHRJjE`|Wt=usNCietlCm-YlJ&ZE5cjiD`b};pF3>uU&>+69cuSK& zPIA-3Y$bGZ6H?VMj_7YLbK0_HQzDtRD)X0=Dba5;Hzy0MzOn(Wg&1ebRAbEC>Ez6z z7{cGYQ?k$Zk@NXcN;?6q{3DbV-rd2In8kYV{joF1n{O%oES~rVTW&miwuj z5-8?}NtO%yGx}3g%chB+9H6p%#(1uaM3gk97$2+lOAje-)@jJgu|a$-pO-+<@+zLE z>51#FJ-?%HjjLrh#4eBM`e>8AMa|h|nqY;pzwS+}W2CdYpzPyRMEsUE z+n<(Hk8yo@8-(6`*=ne*X(`I@e6AVrn$uzR6uX99k2n8Da2AJxxgu5;MhYIOwAectYkLBp+)054cel( zUvJvUTgfSg#Y8-wNwu`v*$8Dwc^JowwkzEv5PxUTy9QETb%p1g?YVd_34l?8iH$&l zxjEw(KZAbBFdXtI=3;J%A4yWFV0#PG+u8dhq6D@icn1r{7U4}SKS{b&>o7ZQJS5xs z%yf8lMcoF7ex(-8`sXi2%~G$O)K(ibg$9*xmZ?y7f=D{BflNaqEIE$MA3zf2UEq0> z{-OOclSjeP{9%lxPwbsMV*X(kLk|Z(vf=tMaUp4pK?6Q*qp3gc7D+>X|J);negZ{Y zFB!wpJN#}YxgNqCaIEvW=Z=WSIz}{T^V0Q2*+tkdmzDt z4g-)5R0wC_9X3*evRqcQo7642>|=Vp(ak)j5wdA$b?hLgj6WgRnUhqU&fe5G?&M6y z+bJ*6m`yU~+nJ#l5_cbHjr~&G%W1l$x*m#UzT$I_w(Jh+Ev#Pt3~|1Yh;`ioT9B7( z`>xVu7%yX*5s^^;-t8id+VZKKWtYNg>E{~mz(&TH9JOEjd|$cDm@(XKbC#Z&4j&jl zg0K=s*A+i)$dzC z_+C_-DAH9wb<6-;%eK0%arP2LkhE)Fx#xvk)n~pGW>L=xj8`|EGn^y-=NlOE*4io* zvU=smmu_c5y%p)SoOu`d!KhEQCw`)vKm(+5Vjmm48CPsJuWZ2cW}v@@A>X^=TorPY z#4mr?k2x8r+*)PhK5&?^`_nY86_1ND=?64y7te3~lKg)63$4WGTk(V8C8TAVS#|sF z^6g-k8=4|`sqRc4S^Kudb7;4Id*ck{#PzYMj$b>ciz7|<-_<*5JNl_e?ABk`wY)W8 zQ^40>viz*B5!i>>fbCW!hRh?*E%}JZCzx;q_@%Y+m2sSIWN}X0sw113w5+we6uY1C zHpfcs(rZ*5uIn<^OL=_p*X8&9%R+$`{o@7XJ>7`Et3SR(cc)(F%sgDT^q8a^v}UbV z|BoHdKif!e&%6Jg==je>B0klD{I|5d3sJv`*EDlWyKIxwO6EH+e(Zhe|gkZ z_X(yHz}>XD#7PNv@7Er{i^N11>p6|x4B+th8l^+w5(j0HaE`hZC=BKW2AZxwl)xS= z%-ceK@q#D*IxH`4_7LsbX$H=uXr338{kEAaJr}g??IAj)5A~e1nwA6du$wNF=+++R zjtcIP8P8D!$wVJWB=9U6Mu8s+OBHej-d6Ez*aE;g%ng*PZ^Vd&P6%|v>77SiRaNw6 zC|Q%eU;BJia+L#;KAR$!E|I4LS$4OC;}qi6jUB+u4PO?#T2y*;j@O)B2~v$e?J5=@%g^YrCex*Q82ub}TgtbN`;E=SnL#XgQZG9Vl8`fK_7=l+(F2Xt2x-k_AuXZ*Et zaA^k-7s*lC4FBKAtpp;hWaZ8+sXH z+>#}p3z3`Xrcs#tC7A$=yOgg>*dCVU9xurYFl839rxBGwYZ9^^G%dN+-Hd%M57Pl+It6;I(B^}2!u zRd7;C#1T-G^D7&YuDDK#s1SA7D0tlb02apq0o__!hB_H*x8PcSMg*LehbW)OnE*?> zbvLotdAw3IB-PJ^8DW7F0tmNK5h>Hcfw(u_a1)vvU+~8U zDzZK`UT?-cc?9PMH|opViyx&+9$p2MCOPKvVffzGs6@aVoK-1VF7u1&nv^o8i@iChH6i5 zx+|ziUHzYRoyY5n62R`;G5Cjkfj+zZot0!a5H+_}=PKAJO~Kh*e;vNY6`6^)1%kbcw}%l1l;k0bo2_oMB;dE#!~7m$hnJB=AzE*7YW0lzagC1uAz`le zeH2Yd0YP_Wghjypk3@>Jnhas?PS)}s?7UN2@pF`)($_800c$~M+bpQ95gO9Vwcs>lS3>Ge0JTOe zFaKX6992XN*fy_Cq<4256E5U;ACT?t zF!zA<7~H*?7N~=at02!=(L-(U7{ef{ccSC080J7zP*awOy#@|a4xBB5eTPQYq=u0* zZxmZJL$Vj%&+Y~Q5)Ljt*u~Rvs`hIjK>}17oY@h!X(%2x$q+@AT`h4{JSkXXh=*i} zRrG$NM#v!$BrI(4lrW>#pOkiwB-1&ah9^2qjIkY-bck`7QGH!{zyZ`M@IKbgjrvau zg|v4f>Qk}L3B=1#RUFWSwe#CDbHRe;@x+Lspq$I@J*n;d0-egaaa?Ubt|KUSdBVow z0-)O(+}Gr>%%ES`sl)&0U-7S(kUiFUM*?5?%^MT=1H>H)BZxK|d<=%8w=XPaD~d`& z;TZt&`xbl!nDuu`u6$&HsI$?#i98||({xj^;XVCrdnunjT>)@*B@^E7?3wt797&th z0LUzTi~yd7E*0t!8Tf|)em3z^zw%2+H$HNK0H8vgdv_HjDyzRfjxXYHfhU^cHH%ax5I-LCnfGq;U|u-pxEp<0@Jyxz#jDR{rtFm~BugKaA+Vg{6+(=nOuriyUqOb(Hka%0tf zb#8+zh+#|cw-%QnObx{J0( zUQcZ82LI&hI|<2j8%}9@hk6YH_0V+G#&@MMD8kDd%)+T2C!MeF79|m*}RT8PE6<)pRWlKB|)Re$?%~G zfo2ll%e!=?F`2%NpuesrVkmE1-acVb&6&OD;&)m}wN04rl5a76$A1aZUT|DT+f%gP zzPq2{)2i;<5$lXSwy%UX8y#{-G%MWs$Xw@cZt>K=$wMXKUkaM zyyZ9_f?r3G$1JhG*z^7(XTNL(d|&q~>+<`FHR%Lp3jPT%Zxc(aKAW18?Ot(l{p4<2 zVDiWo{bh3)nk@A*-cnuYaB0n_IIYLicG+;W%-daQ6^!?G;T)8|-$GSv7D}ZbkKrB# z0Q;|`ZN~>7)VLLOtK(^1rbOFph98lSy@}JQNJB^C|y95aG|p| zFY9=%4n?-<7-i=#sfXw%Ex6P^8BgKc&8!s00A5!m*tkS|TTuxIV;^^HjLQwVBGk6U zGlh~*R4-X&(jiqDZmMOaeE)XbX1NM`Eb+Mkb5`!w=DNP_S(3%8FPpWGvi(|gd1hFW z{Za(&xME$$NL7^mtpNPOZ<}AcPa`J$bF%4EYNp}|$q7?m4yB~u0a+ z)Imqoq_--O%u6*8Toih$AeL}V1>_|0g)_KK*^RrsmnB*;#eix4z?pg}tBAWRXd@3( zt%}*FYdwSZGb@)IQZrN&Jqk3tFj2*V_Y7zRjZIPn;OvCuNt`Ff?K{+uKx&85*>e^B z=rS646-Bf@7ks`eKHD8$5zdHiR`?;aYYI&}Uy{&^a+_4qb{eAvKR+cT@p#z~#*z3# zp&mE9%+NhVIrVc97*@l=VxdT%YzD9%i?uukFW`iRWn^5q&tbD!R?rkaf4HL0acgs7>Cz@yZ4U7bkJ^5?CavSU zUMx#IdFxZ*)~5tse42i{A#V`N;A_#bB#NFJM8yJuvLKBi64B2)dJ0CB{C-Uq6z;Ll zp}jdWJ|yX!&TjtE)bmEJ;HO+)z6A~$ofRBmTc#hjg%;?mxdv}z)MeFUa~Afc4J9VD z&J-O)SoBCs=epcx(C_kmNJxCc*Mue`^q^g{YkAK`dnW}xnCe-{^qCmwTG!CrjJ|sW zDX;fgN-ug@hWnCrI20;>!vQ~yXw}I#Hf%LvIU+YR52)sS5L21v3?pZ8%pX}uSC7+x zqurST|Jp8&Qzu4iGSIF#PZmBG<1Clf#WrN)viH`2gt9)jQ6h_cOgNXKhkYWh8@3P+ z>Hz63Dy|~&ybo7XEn60>g#*MM#x^zN=5`?wvRt@<2rcu9W(ye@XFacp0_~j7#|F)? ziSwNFFr)-2tsad`sU{%NcCKY{N^l4XAt3DHiKODyU->$<$rA+nA(@EZsv-v15zSX5 z$(>hS=vYp?iCAR0iIk(WEINdn^?C2_TNRk|E9c{T+XOMfy7clP zQ%H(^P2(B=UtiX-Rd=4}&w2p9T5I`x@Uza7Iy5+JFM+=d;A2R3zdb8xjlQhw_Evdr zDC}-=geHAxNEj1PAsQ|DU(G$lIj~a}sMT0_xF9Y~%L=SrT`HvwD%lWs#u1yW*(v)_ z8Axw&i0^X*k`_`OTs~6|NgkT@tQdFD;@YuutodnMrgrKLV)!(N6ED_#<>^Ch0+OS#-8 ztUldb5{5)$`p_}N)~O-U+%KUyLCe6D(1)Sq**{497%v3YCnX{p!{~$Z&P1F2Fb6TW zCjcVb83~$!WHwT9xyM7d#G36&Ijg9m?v;rMPK)0e5fkpdzpvQw8|NatI{)kND)(L( zW8=RS?kth)=1)(Bm=vA~(ZXlTM~9;55Ppv2Dbw2Semk;U=p+!lHd`X7h=!-Xpfhdsc1aN;D2 z*w|eUm+0bMjW6Q*`89d-sQBktNgA2_c9QA0M*vRbk3&z2N!}hxL%h@-h`>5hG17|) zeK;cJ|=ft)$YyNe22ol9SX7As|Emz0cscg+$Dpi)> ztN-@9t_HeD`k+9Mi*^#0-?;xDAAdB<#dPccy!}TrX|C%aF>A=$eL)Hu)kXiHYs` zZpAXiHjZ5RTJyV48Vyl@^c$uroPwYg4WuELV?zRNT&pW1>ipcLq3{jjM+>h{qUrf9 z?~TucL-(+*Wjd#;Stv?1639=G&e3)UFW%hrr4aXq%Fbihza0chuLXfaeS;EBmZkMN zQugrVT@;ZUq}~qsx$)QC0uvBRVCFd!(Grj^CNQzYg8^k%gV_vIU!Vlc<2G=buoDd1 z-EcjdxLMhC*i;0m%^kU>uDMe_2lyWRsWhhTp*~DQDq|rI4(C`{D zAy+9YM@gw&T+ioAafKLD*DETE<5NCf?7_UnVRIWjpb+x=;~TYwcpQb^<;IMIc#C7a z>*Qe3LqQOH|Agx|Jb$|&=_@fzRZG&WnzVGk*Nmet9l*2ho?>r;X$1xY{;&T7AaFM+ z5dba04C0k^TCntO*UWbL6JWq$_$+32h!^eels)DA!G~lzXS#SO7PYo|$P@%2SWuaJ z%?0dM%$Xq0S8~1&+|I~TJY_WidL)IyGY6|!Gn6S$Q%IPs7@MqJUxLT?rJxfPC4_Ks zci`ou0mlSSQnPM@Eu$19y}t&Xq*5zU$6-LiniR^w}0iNCMih%#e?WUbiTpC$pw?J86E|gHV z*tBS(!b%(wY;R@eDSq`^0x9!Q&nr)k%awHkK15;|(nuy{9C_JyGfDJjwtl`Rv+y8C zaheHjAM8lvym;2cSjK?r5rITW!T_*+G7*hQGQKYelx6UG)LT+#y>Eynev?_~i7k=Q zxD^$ZiMcBko!2WjZ}M}`u>Oso;_DKvnFI6lpV7wO&_1Vu7QML?^|;hiK~O^ysex3% zFE1MJpclTHhSAthk2rA!vO$%LphiZ*2ar(GpBy_5BgiJs_njQc32K^GUkXZ=uaPYw z=k}ISbo7)jYoR~Hg9gRks7R*^dp(~Lv>(&*x5J9svy1c8^lQMp9kefzScp23Ea;fU zM2irM@xFwyy@sYeK#PYd30uW$_?Lyqk?urtUlwx$b*8ZtUr zpG^fcNqnr z&FAAs8gSBlt)gc}e0}>e#X8e(EAZS@a^oN^ml4J$9f{jsV}3D)_>)Nn zn!INqnf_cOmfkNz7q1{)QdkXD%9Y9@I&D7#J}-e_{7aBHW$F#rT2=KHK7*Bxt$6Lf zt`!EYR0y+?e-?@}gYN7WXt4QJ>x`w5cQaDI+)~%Y?INp3K3|`C1Jbl;z2tL8Q_Y8r z!|fZ1G|6IIF}tkj{eZ}c3zEG>pNfzMLE~7a&Mz?LJm4EdP(1Hr0MvPl zAsEBlG~`#p=0INz-nRh1A*GUN=XEc}=cqyK&>Y`ABKGEOoy7KbD%KRAN; zf8V~aqYLHqo{q500PR;AWT2P(rNBZ577jfdSh|rn5Ij$6I5P!Rk>S-Q38fr_$)`Xl1OU!6 zK^DPiFA)N^q;k%h)Xk>?3YgOZi_9nt?=T}_KopY4wYcb`A&n%D({0&pv#g0a=n6QC z$^MvKq~MS{3wC&aD~($2=|i1cC*uovt-kx)lr45CTy;7u^O#(X$Y0*ykgHkJqo#q| z8}nf4BI)9}yG?kdJ7nS2mB?i9Az6fgB3>J0W)dkZlp>=1HzIo`u&OQx{H^n=Tn8yzEc@vyMH++OP0?Jwq6 zOp(HW$V>nLAOJ~3K~z91wVy`S$IH}4xdzR0{(o~lCPKR#rn~MsFZ*exzrLNGWa|IZ zb@jwZmK{&>d3*i9u|Lz)6_+SC@_2g2_-DL6nQz-4=^1=)u0af}IsA--`=^Mf^Kqjg z{u9yaseTxUY52D585Of)!l0mz(eJ#q>s)|iWOq+qn|VsZ@VD$1ztNY-Y7iT^)c@J0 zIFsOAcZB%7w^at`KZoS}I9jSV-~J0q`?Q+N>`P*@?$@^1cmL7uF}%I?Ga!aWPwgd# zt@aBFKqpu6j}+&#j9Z4o(ajkh0!{!S6A%D9K*Yb@ux^=x$sq12XxEvuBa&{%4-V~d zC_uIUqZJhX6Hk!{eeCUo8^srJFLp_FzbR)yG<>;^Q01niPi!4^Dd6`TO&eNX5kYTv z|KR)`$B`9NvaH8LzbRf+-dE(?9|u2%DTD2{`Ie*WXQ7vkm_b6%VAzZvcNkL*%r^+HztS#91sJ1?K|SpK>%7(Uq(Zej*TbqAB#NjjzhyVIKyG0wNyvfgr$ z>#%=3hjn{W{p`J>FmAhbd>{0yN1tuxsrW?c%;8uC&(jMg?Q2=7187EXqicovxiYSD!b2F)B}qt8Mw>%)OGB-O zvU6OFsj*1}w(-M^tJLoY4KJgg6KgW=A(V%*5U z_|86Y0A9zh-x50Dck|O2{J;Knn#uGE40!tTA@1?}68)zo**v5z3m`e`fwSl`xzbD0 zTv#~{1Ju*N&UNev1}K!T{eY8^qGBAXOkN&&4A2<(dMD+yP84vQegef)2*9LY1G7%I zFnEnZmtUDqQ+bXa``F?>bW{fr-rLY|@#VFXSv-k!@0C*=~*~BmYj<(g~CUp0l#prhZ z+pV~*?G~~q(kbS;$;X58H?w=fcU}|(lYgSYV3zajWBJ0L;(fw~c(Yj@qi8{UzW{%R1C(Vko&-m z!}#3keAxsO)M6UF@Z92KJ;9sl9FK+0zoZAh__;;LDQe~bYTFH7Dd;ksx53{tG zG1D%J_S$p{@96CocT2JwhU5*$wG;up>d1PU|SyvQ+$IC)`JK(dO zwp0NYxvq9RteqXJrW>bHOT$Rdigmk41}PHG70ouZ$hd(ishL)rAZDiSkxOR$fBes4`^COLZkia)e}?S(z(i-A9g#JOXj^IX|mu9-xa7j^su2-o>3mkgxFd;OJ8b6jifi))Z(JN z#rYN^y{s1{zG(d8E81g)=}b~#f3{{P*z3?r7XN0a+0JehoR$T&S%f2#+63S6TExPO zUaWpBKjzv+v!BFy<*^}SCUH?4pa@knQZe6o(hKz|S=~5{>Ygm3!BS1^YqPk1^@+W+ zXc#mLvx@|ViR#>A?C_A^8OzrRY{nM2`3m#LH$0WL;{&lMazk>?R+#IxLh<{**cZ!D z(xxD?yLKU?(=OtQUN9!cO%&1EIpuP|fIEU&)DJYhk0?B+#=o(o zg5_n!-EbDMctcGJd&KD)TES&uXdEt-)dQW1c#rYNvXYD!uf3t{Ps|@J`WxuJtln)* z^phn$Spzs^^0dp66<^X&({fI+1UO)80qGX*| zgPnJ`bYkxr|Ee7$<#ucBi$34M8-H=^ z!xr_z5&sD7%10Bxp?Czo!C>y>Y1WnV_)};n@eE^5m;H#}*UA=67}{D z>@u`*n_Q0maG2(wf%Dms0hjJ0TIDo4EPomXuGRE*9pBJjLTdi0Cx?$o>M^L1 za_7D)!w6GfH&bF=FQ#mjGXJ;O2=>ep=iu^@k9Yj9qjT_lT7DiRy>c4(Vf@4s%PrkTq*phsS|sSX`L>@)57$I(@|R zgZ;~@rqjPq((*w!W;?S_K%!jenk06G%_bh~vK6RzKE~0?j>neLFR4IjY*oBt6I;`P znyUK1DByrhp;p#F=+6QY6|M4I3tIm-M1i|G&lci6WTZd%dI5cdc1jr@x zp`V+Ti)6wZ?Cw6{CWKzwDrCQkMr@+Rc1894I*}Qt82cqjn)o3_PdC_E%R^;7Px@@X z8SO_txTL)Vm5BMIdS>g}Mke^b{!j2MkUc7bMD;B_w8@kRnvxoOv*FLAThJ6nMDiqn-SPI3}S5IkC&i2q$Jv{1uzLsg@Nw z#gV8EL~4Ze9Q#6nkpW8(9grRzCSvk!(5N*C0>uzn=W#oZ6EPa+p14*(mt&J|>)>=O zT@3*;dl%Ly+x1Mk=?yaTjQRkWKLkdM4)F#?@Y7ExC>v!c>GfSjDD_oEJ@JDgiNn}| z;3_(uqfS!cN$!ydRN{`~8q@&+LWbqGl;AQJGg17&TM!{T_GxjOr)``$(#>jWvy~uP z1~%u#TgW+|l|J1IZ`(~s$9nt(tSr&`QP=_!eP?UovS`krhYa;ILae_;)h418<5WXm zN+Jp(Kirrt=#>~F?=Dmlpo^?AyH^mv6ujFd8|4)YDc?*lRt#O1!a2EAhl{r9o4cjx zU89ngkdW^5D7$p|v`*3v@=LtZUZjju(JiG}X}LUum?QjUhUCP%vLp$+7vh%GnjywK z`$6Uaz{(OdMmJVSdYMFfiT*NqIj8Fm;7K3mY=j)^Y>V;W?RAB##G{%|iz_NKHD20^ zOfIe1TEk>6H?ivB`szc0uGcutz6d)tyBP3Qh!}oMtS|!jv$x5|dkPq;C|)d=M_py& zO@a1P>tQ_2<5=dqQRDPO^|ww>=s7zt3O%h8_2sUpueihh0wpvg&q($JGF!d4`G zcPt;4BmZ+H=l~4tdl31siu7RH30hQN?{iErWuylzIyZ47hksKZKV;9F1@^^zyvDu+ zH&WK|Hz%gQpyX`e{`O9IiK-II%#10EK;oK9Eqpqj>GRV=yg<^cPepDc$@)qvy82w9x{Yj6xU$HOfKAFphhiSQsN6%`}IOd&IA4 zk|fi~?jhB;L^yXOV?c8?+|8z{fgzbZHV3}w+x+Gd#@f5x63v#CviUXT){Ok!FF4+M zCjrbOtSDh~nxL9%n1qi`h9X+8Du-K>WyF6d;jtD z@oD1$NESjuT!$q_jPQ(GV8S(USC*hnw@>(Y_|h9IhgB=`JYgm>J|`hc)5HQYj6U9f z#&*urwZ3CB3Cn&gHWkR2(!=|C%{)R-fS5%tnhaKPnO$^;nu=nZnGFR&ItWvZFDA-n z{Gc()TsjyURwsMo%!coXr-SArq!W(Wr)f?7yg&;4aUY75`1Gz5Z755>$cbg<>6%*| zY74fyDG=Mtvf9k`z&>=$9UMKB(`y6F?00An6Nmqg|1rMZR6zg3STQT6D#vdr$fl3w z?oNHmcK*HTe!6W8ZmEnTdW8v{NiQ=LM|+>P-oj=%*9 z?La(yUI5vmWgI1y9}b4i(wL@qVU9b6*?x;=>|(C#&N@arF_Zsy4Qe72({8$SwcY=m zF9c_v<5?sOfY~t%yJ<)x7KHVRTt9TmwJO<46qhdMi0EDTPLrl{_VE2J-;-;z4BPw{z-vOK0tKIYv zR*;y-2$~+HU|k&Wf}`R5Xg0^Ub|5*_Kqnt_&@C-??o$%43wFEv`ZYaORosDTCR2D@ ziOi%m5G5VpzfJcmm3xl(eW2jBY9~BF;yM4<{Y?WNm9EgmTK800vh9I|Hy>)tOtO62-bpGBQSHa=9#Qx{(t4`0vfxww7%W-vhaH|`?fPHhgnzw` zpT^|9dKuTlI$_nms^qwZwI16&G!uK!9~>ml4R%MgZ=oc(dE)u5S(5qdA-)vwak-RJ zf@x$#I2tuRc?n5l%+G@Ev=JXF`%S`XOm8gQrbCsU3k>D_%iOnur5{Kxxn}8~|Drzc z+U97S2Av?y5BSUJMz#@*VsruF@Vztf_7i@+4xZ=X&+lI*5>mcQOK^D((K;^u=I;~f4{2^_d`jF1unk|VKRUFv2Ulurha}PN@qD!X^Im4Nc-3FiE z)-sj1^jkW!k7T6RatEK|O<2T~PyNXyTW zX0n~5K(VOyUy82mpYub52w!1ChMi=$*2C@XCVd19j7)KY1X6CN>Vaqrt-c|U-Eo(` zvMG*gIFIw;Fl(5$>DkkbE*$H1v+#quFJBOWOV8usa?f&p3)$oJ^#|i&BL#`o>lCfy zI&8K|CuIZ8mt{B4N!));ShxteYuC452!RZnhmBpBgia}-j0(?&wRB)vXV!h;jL#6Q z=c(H`ZVRT=9o;TTM9x8bkR-Liv7t2`z*>T6MCr|S&vDayP?TQI&ZgzMI3_>Xa>A8&z-Tk>lx(l^`|;&Ex(Eo*0|xUrx9)W$=Dr=o3w0a1+3E8%O~ z<{D3V5yNJ4>t?t8Z3m(I@`LsU|DXRsuI493r!L9;2V!(Pxdd$dl_^QK$-ne=0$Faz z6`&{(7*R$s$+Nhckl)7M7JIfGC>t#K0W7j@v1X9I0cLoV_y7j8SyoP0{7VneE%xy( z)O}8-l!{AaWn2obV{~7&A@`Hd{Orn06Kj#$fKA_@0M(vbI1ADNn1jhCu8pS&m0%T8 zddqk$2Yhq;!kck=B-{|{1*NELB;SUu#hkE7$8*kMseuX8LorwJfyPeC8e=#+2AUN5@|&1D%LbTA3T(8T%UI)hVw4rv*CjN1 z%}+L5?)es@DBE)!s(oskYT(VZW3 zhusk|`EaVSUxtT0l`VTZTQ}~))4Cpd2`fE?Hj+v57L4kPr%d$Fjky-P`g@j>PRg1W zKy9KvZ%Z5l8jxM!Emg$RIZFSHN7_#D!r611zIh|CKxm?z7-8t{3-oQqf~KIzFgmiasB@PwTj(?lAtyZ2C$@<>L5# zBW0D;M3hF&Jm;QdXr6y-IsR#T_h{rC0O&2g&tp|szh*HtG?qG%lIr0^@Pnpff1EOv~>pj^sziMfr*#QYfjd5{XycmbbvLeqn9>!)bf;R}-hwYxGF7pn<6wBLr;sNqMg{I5-OXZY z8O}}~`bf`f_Hdhg;rx1pl^5Kv-Zo!EDUp14gG(;0$c5J7w})PY6}%;>!qihmky&TDqWxz}(`Q0LsUF{EKY zK&>_+3Uiedh4j)1TT2#emX8&`m~aB1Gg0a=igxeb9Nf56>jM>sXO$v ze_?O=Qrw?IdU+q&{iE{*klFBMUKhFXz0;IL!L31t(7|LPJv5R&Dmblkw40_` zXt6|gXmz);2s)5zuM;9ro-T8$(`%UQbspEPdir=c-w-W}2;kJu{X~n+Qcj{yBEtEm z*PP?RVWrsPlC^u51WR;Er-aUxr&CL2snfW8cMD0HJ`!0HmE1(}=H1U^u6`5Aq97zn zHU#a*2P*H5%z^-?=2%Z6!PjYL;e(4;Cqv@WnFRs))CIz(it|P*nleAnFSMUQxmw&2 z!x~s|Y6YJrl}FQ*7s4a=CCq-jWHfI+=5ub=2fw?Knx=ub8|?{*vhl3}ama+4R}vp8 zF*w;~v)wGaZ`FlPyEy{F?d~ewz`{oARdoNP%QV5`$JZEqIz}r`x7F z9%n?;c>ad+Y5*@V-?~f7zR+c#SHoKr{{sPhIrd3DTxGM}cHjR$C#o6y-_YMlZ|Z2> zz)l0=8Cl(FT(bL^Rq7)f9;$=rqv^&GsxGu><)I;>MzS3=`F{}z>?c~SyA&lz2PJT!;IxX`X^uF#*xx&_a0x&cCr{rE6Tqq`cpV(a9@jk_u+Q} zC^Vv}UN3%mm-Aswx(>~&6HV7sSiE_siQFgi+;ji9&Nshl+7r2OuD+~KBZF8@+nR1h zASlg=zkK?Jv>us16rbMhtbiNE=!UM(&A~;Y9?z)?R(N(Qm#%B}7EnX79(DU0YY+E) zHjkN}u6V;$xc>d}`C$vA_x4V5GN1YlT5d^s5N+MY*FDBy71MRuAhn*IE0DElck|e1 zW$a$!#uR=hJaCvfrYBKg0-yy_-Fo)iFG-4OQ#gY>KnI+(SM#a8E)jE+J5~5_^RN4B z^qNe|?en2%;54ZZcA*s+CYMaR7pWog3$#3=HBdL?l3fw$=91eTWt+m;X&~Fy7I+8_ zuL2&H(YifgQ&B(l_tLQ{5CK$!%d6cN!wc!mF|87pQF^DPqPVcYV5}fgO)>!4p?y$aq zT=~soS$AqFD$;!4VE2||{j2lI-qDjDEd~(ETOsiO{+~9D5rNxy3gG1yg>Kj6Jm_rB zzUO z`;iF8JYoqrq;%GL)z0e>TkSmfWPvUv2$MB9%EG2lZ5gUA;)yS*D(0GP?WDxIL!R)M zZY4#OW=T&5w&4?V#}I~yt-P=x@a&6b(q7pVs|r3OQHq1Y07hEbgad+u9;cNLY+!U9 zP?YZTHxjeLM?ff?hzaT>iPi;lAU6{z+=_I!DO?RvikB(Q6`_lrGeGk6>Gm z^-gReG$NUxY#rGijc(qp;?zBN2MY8aML6#7Lb!Fa9VHx2Cq{!GZ#WAq?_7#ppX?f4u!<*$ZotD=U~{F`dB`_vndCz(DT`OI zdqH~E!e-m~KA6hmS_!_3MKASOCI6vTBWhjHMo>yZJ_7Mi9*izBjjHrfVI9UIl}the&t(Rn6O&Kluh9{=-Yyoxlu1hAguco$q-jDs9;{?!(3^Ou$yPJxPLxt3K9!S>WmXZua;nR((!SSsC zJJ$&}=yM29odb-?mwudfHegpoy12XuetxA0f&fI(FN2%~%Thu)voPH~o~@jvNFCAu z03ZNKL_t*Nc!s)R^c|P+!yId@gt6t^Z6_4_o1inGRM^1F;-1VPORtmMPcz7)rI#e9 z3ptW=w{F7**hUsLa71MyZ$C`kM<~V*HtHwv2mp!)6O~ud=-Xy7{l~iiTc67?p5Cm2=dix*!LUeh3q$hrBp6xOwM;!po2PX3tX;87(bcULlYJu$QI8b$skmj#@HLX7 zAmXi<@wgzd)U1#9c+qi`Ksjy)uTYECVba&gnF&yw%N*ls<8GxI{R9i=)DoN>6@w;` zGYQoKF&lU>x}@-WfJR83Jk&krt9T$LeZW(ez@)%<3VbYHiXi6FkFQ49#L93I7O zQlGUe`nw@cx(<^^}F|`}mE?pI)Kq;eZA$$Ge)^U9N6|963AZ zKv(m#r@3A}@NS&ysKWgim%&GP2`uf+?U{(vev_ZkeMcqYgol<8#6uWtHDn>Od4`Ey z(p^`9?*fS)ms0|!qah!MNP9AgRhxN3kMmLvvBo7qj+@raEasIrI)9V{^sDp7waO6U zj(vW&8#_Ch>0N!qfO z%g}#Z3T%gnx~LW%&p@#(&5k*Gzb}8{qIgt5hY$~CNEX%ZV8RxI%rs5hKZHBI@6J~( zKr;_f5}JD-?=%0ycKIx(0ooC64?fVWC$7&pmxazz=Z5tzatz}SfcEF`2O0c=lQcmK z`eW>e6mD(^B!~?Afj8T=d=O%|p|`C`S26h)Xi+N1*Ptxvvk_2*Sw?s_|hJWL^$ZqhXE*{9I z|CYeijU|fiQs>YfxE7>jZwTCeZGS#I)tp5tj(q({3&<=J6!(y~ zF3Yp;%O)P$KJ3pl*WJvDsh6z`PmNI!Oc(ml(-l95s0cI%oh2EpS)Iq7q>V2&=oqQy3r}`K7G$m^lwX-WgT0Wl{)eYj87Y_%Oi3$r;(>w!?zE$6Pi9Ig z)r}dfH6b8@V{Bz3FE9&S(Pt>?L1ktozFBR$hHl7kV*EJ5MK!@N+YbwJ(Ua%9)ol%{ zk_m2xa=~O9CdsMgF%FzJtA)M@k;KVu)e!{CO=qHICP_ng3yd*iR)(r_8?~O1!Yby5 z@rD_v=A4Vo;gTx^OegUNgRVJ1n*OB9n%%sB|mQeApW4Mi$qk!#UA zdWW7prz%&nYA=8zho05Co(Z(-9zInRDxZE%2%gwrgpA%goo#q`)Ue-=k>*nutV^fq z9ye^9qE;~SU2JnWS3O@+T&LX%!l#m}MGc?uUNf4xSNMbpnCQ$%Z^jC`1OjM>^<{z= zx6rZn*YzG`zx>37*uIRTprFg|;eM&IhzR13%QVxS)M!quC+Vp@Obv*V;XChLoc_L) z?wv(s7LSrCt3bNyYB2lD2$I-6UyMx~ZxGd~P3gv8(*5AkD z-K?8#fuS7d_x58&I3rXV9cUKaDuaLbNkEY|<26LITDMk&i2W@Q|EN(~+V8M{08xmG zs-7X~^>yp!L{9IBxF*(VySc4g0c%g=FK{x8y%ILHmukAcE%~Dh4vfaBV@b((3f*W_^fQ85PXytJ_csb}7+d7p@MJa>u$fDzZ^F zdgsHVMjD4i>&G?L3m%z(a)!DKPiEk3_>N1cfzABcwDAFDe zbOuZ0Y=IAsaqUX0NiYV)Q%c(0=$oyp0s>DCaDoxIQ-24&$Tmq|lXc9yVGf86u5sYu z*2@hTXz)FM@BrZjCHf$t{c>^(;k$cmY+8(t;fq`5VR%*?W2l!4_ha<=x@Pyl@qhmB zWSSCw4$U}jw$-iF8yr^w(k?%dWX(tC@==uqCjPOZNKH3Pz1~_TV z7|6P;5JtAE_|6q?1TztGf`?1`WpOS)B$pL3yRD9I!+A$k0C47sN3y&p^N~(Ikx3@7 zS4m9Pm7rAG!M~Zoqx29riLWMc9%M`$_&VvBMH4fN!w!4XPTGGDQ<4S&ZUTkBd-r9d(jVA&kP!;gZnR&!>yX!G*7_?rm4F zHJX8fU@Knx0%=Da%dlDDw4r$04d2c{{PqBzc(hQP+zXE=-}3eH(cgZHSYiu+MtoiP zkuUE*;(!P_b>LIfB);ej_|os^LlK7e6Nf0OI)>S|AN{V4qUnKNKkQop(GNK+#2xp& zoxc6@&1$~V9^{_eYzD-$M z{ui&OW?3Cu*Ck8nRf2zAY zK~pZ+%ylw~4~?tUqG0}Btz|iZG`f8dt=p*7rkq%>qAz3C*I>7A;!(x})6uuxB0;zH zKb6g7cKE1Xx%tbpS6EFiL3BIb)H%YU)$O1?-loZNf6F)a-xq!l&*a{GDKKgZ`;^o7 zyL#G2XVoh5Ky2^pApbJ0mIzw8WLsZyj45RGST6$xjK}w0muHQ-9X#HUZosR9aT)<) zUVe<*aqP{d4RKZu>IJW55`EW~xo7vSTRpnpf289|d7cR~=VFVE#K2j&nwaisRoam+ zY?KEHj;GlrdB&0!Bmr(cxqbpB{eeK$9U0fZOr;8=Z|@bNcA$@lMN_t`SiH#Z?_QN@)b-NZaTV{5~WSbt6rrp znXoB*aa!}T2w$~Fr>&1-vRy;Zkpd03D~LaBwpR$z503$?*MRg2wu()$$!Rrp+HQ)p z8<7RsBh@yt>_G1YW#8$+rYglAUhys8Y?djDneb7m4Osklop7^#?qtJ~{#Ii9HV~M$ zmD9x6pk5Lv?_+QJ>;^pazvv8BxzVh=Z}b1|0w-R2KN+<6-#=#q#sBF)(AiX`=_Ab5 zo!R3sS%v$}vgy_!lwb3*x~qq*Sc`1z#sC&=G|0`OAoB8vOu|Qw744$W+#%Z!I7O3a zatU>)nVDRO`eG__DIs{;S2r)0R6+k?iBbuy9I9*^D03TKnk}goZh#WX6 zFy&(slA-J)X@{CY$d;lX1uOO;y)iaRRbF|qv@Bh^Am&@-q+QD}@I`inR2`K+e`1iB zrbC4Y9>d74YBM)0gTu$w6QxL?+wHB&roy%KLB8KEY%8Q0kBc7DmZ$5&rNsf>U;@m0 z@}o~!=|V*r7&Gbkl8k$XZtK){o2N~!Wqx?PTQ8Fmyg`+YdD>W)hlPl^juk_n**0(S zotLpCRms;uwIit`6{}kkPYn^9alP?~i&!uI;ftIUAa#xE2i1U0l+TS3mX%L#RRsL5 z-H1bxUxJHD&0(gq!a%vNu9ER4R?f%m(7lkHVkDS9a&^u_(=hac40 ztquR&pOIQ(#)1YZh?1Y4bTDzX-_~uqW)IbRiCY3AsE{Uv-#wZ`G;uzTHMF$VJ`$Jp zx?eihj`jjWj_%Ys9r8?*B9h!?>m z!e`F|l)b$V^s>W3A?36R>qSJ#EkOwz>{i8CPPi5@1s&C6A4nXD$!V7*p#-yxZeXXpUL zN|AhZ7HqU#-6pj#>ki?f2Eq(81 zTQRnGAi`sYlli_wG6N08h0{Prn|ZcLOCcaw$2{HyzL2>eeRmn*xJ?Vl>I$$ar_=2# zDic?jA(YdgwNF)BjOTQaf#J`4Lew(K1owF*7+8yPrgYU`)+8yGD;)`u`hlKi5Mr&Vtn&aI1k|t#nw21s`|jzYZ;$c!g_L-iCm_4et>e6 zJL<@2Qlv}-*^%IPd7vbEkqeD76)mdwh6hvJRy}&OYeSpIyO85_GyE%ES};iidl6=Z zRH)}Dhcq1FJ!(_4Y1WQbN)q_64yM@2%QE7n%%yCs-Gjp7L5$@OaR+aFOLpp+&I;hg z_=h+dm+mN0Pv#zz-FRCgbd<+_S|4%)`Q;AE&qV8~yH;_kKQ0X4aIeIXahx_x=lS0;ek{w2?Uj_5u3?Q@R133Evb61h(zVl)syZhr~AK7^(_yu z|F)%Ak81vOBril()9uHX@$>6V`fB+phTKE`^s#dpdL{i<`!3!};7B0<^x2xpWNEme z##9Nr_y|z}kAC}|aD?IJxM-V9%>1xrX4J*SH=_C&MYo#wzcX{^+ns3PmF8-0;O1+`SuXdCC>0&>=C~%Dy2IBan8*K0DHFjqGuQdMYK0mTJTIS(#orm#f zc8HIG+mnCixhULxC9}R&N%Mx?{>mmisGMULH_=d{`AiVt6Yy=Fjbj4RBsEuRPqh7 z4Mxj{A2g@K_;>$s4eBsj-xe=%pG-HkJ!N_G4{K2ty=EGHAK$;+X1zreF`mw3(m$w~ zugqh?zh6#i+)x)=yqcXOHa|rFZQZ3CGH=cgZzTDQ=UjY7KlkQwe86G;2H+!k=N8|G z0vSTI>Y9^xA}RB{Pe=-r;XKekbf|m$;(F(z}!I+dv@y8!iMWOti9E zA}^2#)-DjRu^;-%ZsqbF**HR-^V@o%X^FvbE!FNW-opg4&gu}-+n3;V64$!!$6twF zFvsOO02QH|{WpHvP@N%HTt)k8GdD5@{XAm+4`_7~*xERFt9 z+s(sPH96XJ@vG>m%-cCbC@{b#eP3m!5?Kns;J5a$^Pf5f1WyUDaIqcL52UX z|7AA-A_M=3^i(|rEEn=rEh#m<_T%ZrifR6!en!oJA49rLO{${)7#z0f0Vmm_^Bg(jxQBOA!KSEkBBpYDRWaU7GJDxpHFJh@XcE@aGYX<5|!I* zf{$AIOTOj3YB>UvO_#VZ@}nH_*-6z*Bo@4O3zXVLX6ni^WH)aUq)|WTahjNNiAR;zwCB6>nH1nxq zg6v6r-|BZC;D;cl21V+f%ifOX+GY`5G^6{hnSf8)+TNkt}AMvBo=eaqlB#Jme)HL zjD9%g(WPCWkat!lvRI9ge97Yd>Pz49a<>3bQ@OG@0^P%5Sw~v1AGb`8MulC+ui<3N z(#$+5WF1JgXT-WApzp^p)F$v)HHW@% zzh`vE#O2atx8)QieRE8Y*t{H84Spnr?%%u35wB5{$ZCcx<7o|K=KQ^#mKq;<_q&nB z<9yg8dd(hEQXIqBNI7N11ACy7nqu4AUUUmsUxIF@Uw&}vTKMmcW>;`PIT@D*1)k6+ z9GO#HQD}L?#00=>e%$PGk&dl#zq1KW*vPjmTIO`2D9k8tBsyoSV4vg~$N_!9sEY^J zU|ZZP5LHfHeYB0P4B#>Pn*i|o?xqqA@mqU@GapcNz+t?{kDvk>BM+s&Hk(+KJ_GS9 zx$1ZH$o!Dmb(2Of?He&ZL4BHRh^$;Oy}eiP`{)wTX?x$U0^FZI+p;iz*$iv6nVIUM z^=bNtLHsurHcp(jWd>(<`CiQF1~-m8qTb2~xO)`OF{#QQaEzP-dcPerqs;m&7m7JT zf1Qq+uC8wt(69n6XX2snVg|ayUmXUhV_6}qbe{D4bk`uc3W9TcMQ6Q^Q?}2uY|w$@ zr-wF@-N8d$KP}#u6?SYTefN3T!mYP&1xaB`!PxL(RJyewhW}QSc^NT#Lq5z4O@NTb z_{Wvv09zuHu$r9)Q3z4IfV)vWNKY&BKE!sBK|iFEp*Ip?y$fTl6SCs~8n(u`s6G2E zW^j($;S%gyKA=kuqLv^){q~e^*&+;7tE;2ltxX<*ehXg^at#Sp>>=Iyb=|Bd!|ChF zsSZpC9t{}gHk!(-!(%c&X&~+Bq|0;OlaTft24mA91zNC_;SZr6*8r8Xymr13(hpoM z@zhZ&*LTV?#Elub%zoGJ-zqY!HEt=u(|ajwfRO^z?NZiy zG2`_ZMtj=)Lyzhsc&Yd4)O+>?|4+Z{>q{~#c-y9x-_T3I4~fo9GJU9DhsJ~gIx3mj z)`y!gD-E~}bJZ;|Oy+XR;s>@YzpHIc%qFWo28BQI$&Sk!M1eLe!ah!Ke2HyEVi&T6 zp)=-6jipZ*&gb@Skv%`vj2*!^rvMPm<7}Ofs!i)t>r>Q5BMmleaY|_Qj$lj9Ng+5uo{)I;wG8;qG8jaNA@{mIL@z~&!QYgHtyF(ls(Yb z00yE?PxBUjzC7OMTP+a1vWQujrecsMiTNYHDLpxruh!q(1!a0%x2S~<#pFST9^t#t zn{^xY`FMC@{iL>!Djy!Kep<_kX?_ke@!j7xA>PaaD-bA9Zk<1OALIbyS$Ug|sMqQA ztnbb(8mT2oZZt7OBw5va}T!-GPh?7D>8ls+XY`z zaBAs&9!*5^@2A}*BG+1RiN%|2xnox9gC`eJ8|HO{Y^no9-C-7?z)$}rW+h# zQ0R1@_wQ0|hXecVh&+05)ao{W%SV5 zZ@AoiJ$>i-^j8$^p4a9gw?N8vlXlwRi$T9`;p?}aqdSig>6gdPAIf_M!_8U0r59@d3%BJYVMp?kumHaUMtluel-QU5h zeUPl*MxQ{o+m9ce1j$gm-M&=otk-}njpAp4++W}0FWHZmVb7XqM}U_Cd#{LJhyS0% z`Pj8ASrEe-K4N=w{56?3tMZv9i53KjfIdJ#k2uqinn-g^^`9iW`{BK+N^{Ne+nd;7 zHPHHk)ymYk_I=R03ef8cv>Awlc$yu*@0;XGy3ein<6*%GYU?T2>paNavb@o<+5a91 zIJ*UQ(R&xMVh);JVf@=8OMU;xd3^d2D6zX8Cez*dC;d5k06f2ldx-N5D6>qcZrtGRJG#`HRoAiHP@r<0oX4hqJ&Br>K zn&YZn&xeX?c|VAdMPT29#)OG$;xV4*??JA_biql5f6DtN`qCF7h4{DB&o<1;0ME;1 zqju|Q9zw1*^h)CG$JBH4MFuvT9t!wr6xOpSZmL?${4|sNGK`u6na{3HY(PBdlQfGE z)l(fm*q=F$*;~U!ge{rOTaY=|xB9Zaf+p2sShM1F0jngQ(4tNF{j)e>yCE>4|0er* zjOdKria0$3d>%`FkNVO=h7UvH0}Z}sc)0LZdvAR(PvJmWdet0{XeFZ}KY%g7?0#(^ zPWnMcm9X)Y9|OiaNZQkC#i1tSoo8DVOa}*Pf)!`^C7#Q6U7d&k03ZNKL_t)T;yMyV zH!X~h);9{~-dQ`BGp(DsXZyUEJRPV_*dT8cNMSfrT=bOAy1BN%1WsCW64vcJz$;%Jtlc#)Tt39S6>9MJGE z(`=;-^Gf?L4j8nnd3rwu6puLAFTb|&Fsoq+os2Blm+Holn%vNWBago18%L+teWM#Pf=_fmleSjIrVmc{jVMI_! zU_Dl=XEumgPIk0|X%Z%;Q5=<4KqDMbfMiBRn_W|!=L-*Fi{3^EQZPKH1`OLV2_{X? z1l93$0=WoeH!eQbkqwu<0U;$j-n&c{(_uV@7b`8}` z-4NH%1Q2;9TRP+cNd6h^6%B zL-!CGG%fsl_<6DN0FK~cTD~qQw(G|*=7acj1zO*-XSUqN))ZspiyUz%N+#pV<|liH zru)~(HZfwSvP)|332OWYn0;Xy1Y!ac1ny0Cf&i7kqI52l%LRAp&KXqzh9D0i9WfT@F{B-N zq>y=DvcPu1vez!S)x=YDDv|JuddC^T;fS5#cL=v6uz|Fp8C94qi&-#g?ePdPhSoW+ z?9c^~@RT4NhX$@E?3ftF9$J-lGYJCcz3o;XOE@jZY=h%Pu>f_HWK}m4K%BM{0kiGo z*BJ&qbhzG_h(;>9EIHo8h-{eDXw3Yur~-gRD$^Vil%`J?sLQ*2#4A!4i_-AtIcQ8x zBkQfe|MGui>v205yYv~~ev2Q(_um5%6bUN>N!aQeO@LwZ148zr$&)z2GBo3G88!OL z3+(tTuY5Hg?T*Rew7_`N0K&_#wXQjgl&(k9MLj=uE>0qv1YXxuO-tCTsgCfro)BkVa#9vACG*%9Co{-8-k0cuazC5VcL88ZD?qRd8i= z)y6j4_u7=K>R369Ts^43gYY`hq$^^OxBWNeY0Q5R%z=uopT%PYYf?}Hf^kK+b-3b~t)r;_1h#NJI?V9cOXm;y z7x;GH#z~*^TbG$Kdy?;DdIF#O_1jk)HiPXP371C7$8ws`?U!ov7W*qa8WW_CEe=qA z|7mpo`#KHn-=D;^`Y>f)hVkuf^U%`{UL`9io}e{(42(rY{)vu^emM|EeOk_&)Xyak zwE0Quv>4BQQ4``UL&q36_L2&EOf6ge(^DDdTk`<8u?R?Das|6zJwFAmFzjUv@-)43=o_UwWAVp4t zSxorC6b*w-Kxzp8GW%0@h~5^AeNaokQWcFs-MnWhm@dhAyXB{|n^Gz2P=HA#Q77i$ zPazaOzl@1KK*s`WmMjYg3>^Y?*1+C3W9;{hIA|85?2P#-NW@8fif48Fh3p=m)9 z1=0SYa9tj+f41|uo^g=>kEYkxA8{b6{J|VdtO<&(5x+c62@R5w|y^ zgLqU;v23kH$c2|n&lp_=J3~fe(n<;hC7+~%m5g6RceZ^o`o@T4?q!I$65|(yRf)}1 z`{EByR(7C3wklO6gS^$pKs;H^k@hQ_G|y{MlSC(TxRY>7)U_GQ*xpS9>%8a#_;E2& zxUF;516zqM2R8r)uuSatGY`1Y%Y7Jwd3$8U;mr)hwo#5q|Em_Vp{y*%@10^zw}!aHqcK?nkhGLI03HbNj8?Vb|ZTOO6fJxB;aw_ zR*vB93>OidIaWMc5|bP>V9>FA?`EIOi&^xz&~)m9m$@!Ric%-=Sv!P{IO7l@yOJ=j zz>*S1-C^Pr9r<@JSlWZY_Lz?gXQhBNLe&(YzzfIp9$v#M=Z530547l`fSFXik2wap z0Nilt`vfoH1x{k4Mw{rfu?Cq7Zx}|s8G=R2o}^li^DH>)^pJM<5Nm0MboYUCBdZ`7 zIRVNBOWgUN<^2F*7Ue$xu^q~a^}J3*fvB;FTFTRWK&RPXXDO1Z4&wTIsBHi=9v}0B zNNoN)vO}Y~5NAt;cie)f_rcB!yM}JEKSvnSeQ|R@06g_+k}RhoR%`T7b`b5MSUDG7ecbe(`-4mKUOmjT3k*EOhf-n7b(Yl=H zZT7Nq>J%Spe=Vv`XItu%R|^Lp**z?B$PUU7VHPI`x*lUL#P$0TnR-`dua{NFRM3%e zr29_*Sqf6J4xxS31@9Etf09tTjSo-D`+sObx=DSSyVX6uY(kRiy!N*?t(h zfTbta+|s>lGf#5QAbx_J=WpCa@D- z$HDjmZJMib8Qbg&!r}{3EDwo%66>28u-Eas8^+N&tY^7N4KL_+v8yDPuKT!8GiqeJ zaW(T?^@I3Rg!s$MmsNB?+3{$`=4Ug+3A-=Mb1>pa(sJ<4mP9UU?ewvsSitJw({xsw z4)Z*IFp)mDR4y}rR#t>vW05ieVWvom^{hQQW0blYJoMND1n*H3V|^vdmV(~XIgwGn zGijFt4}4SHg&KcJS!VWJ%AOJ}#ULF>=P3-Az6+w6ty_vU)M^Uhj85W8oJkU1CgrR1 zo}^-#eQ8|V;kgnnfvdjq61QVm%VtDm1J1q~bTFI8gPH;KOXR1%;}&3A!6n*752LQ- zY*vCp7sgeTrK#0dUnefM7+Md_Qa>xY^n;F2Yx0my!EI@^UDi8;(T3ss&@(!6RkCS! zmSXl}#zw7Fl_VA@c4?VToN(+O$`P!WQN*LXyFmv4gPG4*QwlT{_h%YAyNXQiNM7M+ z{JCcVViwBhxv2b@JDWzmiQ!?G#MDAPlRfaDGo~BQ%4tYbZt%w+$sgfjtv$ME#mqI* z)B6MO{K~&iF3F})qU6VAVF5Z4zX=$t?YDIq;Q#Ai{yBx$@5|-oa=vUATa(W)B53o0 z)V}YoOm*i5K1YD(^E4j5;%^_{$Yo~Wz<^?x{+9< znT&Sv7RGY@-lvwkZeL&5Cs`bQ>1 zR0D@b9Qstg`N$yS#6(k(KV|kCUOd^Be>b35Prs98EI))8CHv=3E-brQ;K`j# zyd9(Sj{I73g5@>h&z*0-99*v?+VeZUlkNNkXf1wK-IiM$8W!Ytb5m*cxT}g5!DqGj zk=(1a&05C~lm0$zVMAwrS;d!+*F|&>5B{7^A8ceB}j?a29d9I|~6?*y2?El9h*vGStxC{)KY+s}QU zInkCZ!)GvNFi%PGerxr-j5T2hEg#l*OGP|+`bd@ofxQ#*K1NrU*=~mIjuFWRjUF|O6_#W@S3VFNK z$R+%8s^8r19@sQYn_dD|1Sq?c7{VhZCIkHpP%KIStEpLce%xaBGd8=$y+!L!>EkP@ zw^7?IJG?3y2SdkI9e5|x5YwW+;CM84h{&P$3JHqsC$wJbH03S72BkgVDJvEYID0b} z%H|e0rOwYh`$I*TyhE^IvvO`Ov`ph+>1&^JNFIvgjf?Hgq7tmlhmgtG)UBDfU0tcs z%By9Wwc~h5ql>Pd)auP$!xYL;&B-dt?;ooG|G0FPm?;$&i8sKB3d_2iLKQD#bK9&pHdeDy zG|id1Z`FB*c)~+4E&>fGc85q>Ix@S8J57pvxG&m0DO?^uXm0K(i~Il#C|6ioEv9)I zq}Y#p|1w=HmnzOqAx_uJ+;dLJ`zUDOhP+wl;b~RV^dd(u2Y+|paZ;<}7dm;M$IZzp zg_jUDrjwayg3ZNuS+)6=Pka0FzKiG%yMK6w|K&eF>5p^LbmS>6`r;G9)a=f(&KhHK zv41Z#v9Ze*-F^^5XZ5PY$Tr*jGcpS5gvf&_B)k)yPM z>p*9w`_f0FNGsUJfILM0nzV13;b4o%iLfXDs?!?f72`ocFiUt#h5}7fzz#}-3LbG4sYy>^I(})qz&trH z$qF7s>~@Qz4FLxS;5ve4T6ec}6p&$R~rG&##vQkQ+DE=;L#mqbt!eZehgR7_HSIlnd>d8Ez`^|Dvw3#CH1zD7)&wfk4+>_hw|7W7j|aCJPeeX!ChObiD2}OP28EASmkM~ zj`%jGc2Abr(^v;UNPwr%<}e#THlt~}y0XNc(50@gW9>QivPRaf5^kJW4WS`un3Rvy zWEWr0xxrwP!N%#DI65vCkxRg6Yt7b~2SZiqg&nrIN)IyRK47TR$fYfsIBJ z>_TkM1xkGwG>XB&11AYKO}qlNSalisEZ`h15Jqf$TPTCB!2i$xhWPanefbV|dj6e? zrKpncWuL(I+w0tQ`W1QW;H8mSqUb3L4~wkE`{}||ijA4V&)b*|&GKg)EK3B1?&Fn1 zQ=xYlm<7TiAQ-Ghq{Yx{CGiv0oeL&?X1fbSFZuGLmf3yTdN+I3 zMi{3hG3s#}UCs)V{y=u77?ezgWK$-?tJO_o9*uIbjg4xfCB5;Q^zqPk z4>qt4r86U^Edi$Kav#2zub<}`u%H{_K16xU#+1jo!?Qm$K>FX3 z=G;x&-F99qu|M1F>`ZW&&o}uWQ872JIXjd$6pw~Iqi%U~X#JegZk%<86Oa!)dURs3oBJjZP#y0iAk-Q^XBQ&{MhI8heJZ8s^=o z-r^Mhh{9QrynBVs%%9q*8*H2Edx^TB|6Mj4uAL=RGKEKz67&y znBgC*1>W;W+w&Tys@=YIQLs+3e>Bp|RV<*`*!LO5^wt)zCG@Wf{K)&eFP^R{&ftNz ziQ2TrIdT!@L#El#bA>%|Q;!3_?#mTE`!$p2b{FkKj_L@raDyjs9u<3PtqMe` zY6JG>5QWWT3|tUuNCeTsjqsT@`AD293dC4anJ&D{Ur(rAv?UNx}m{#Kfft#HCrU*KX zN_4!hH|dCV3)_$BHab!?iyP*ei5X8|EqFQTge1{8&G=Ag=ArLnzKkttEb~awh2cd< z5G~QnjbaG5f4CUB%N8-H9#}N`sGi)AObSgc62WX0ndyu%A(9XzeyCiUWTtA|2*!8A6idK}kyD{yYk@phA2UM-F1YiRJVoir-9Q5EgR3(C`fI5hhvd z{2FAw)06}uKr%?c2p_tM>L3bkE=6}*M;DBI`GMrwse{;2_+Y5uuF(8;nK9OB|LG?D zQK5fdXM>AwH$fl`AsYnRf5ygY3?Z>~q&#@oM`P5o>M@|ml5s!VL&KV1fI-{j(f@9w z8)O2YG#&rc+r|Ep?exTTwm@c_Atl>*-mWe6FV3v`)~i8?tJ= zkI+#7v+>RYcO2S;{l13|Oc5FE9Fp`F%0+b9#8@?zQ8n&B%v0u>V>eZ|sYoti83)r4 zrpdJUU!Z}_q>F@&NoWDe*A;~3HCfFPgW>QymG*dKQAS7Yw#6zKrha55)hE{Y=)^*1bTr`T$cf1{?ZE6T&L` z7A0JuoM!jcx~PW@-d8~ezJFaAI7}vTEEgZg#gQUJvV=S=NEmi;?ap15tizc-9<58f z=>wS8_2zEc9&5Vc>&?#!Op`CI!WrP7=lx?8Qe`n};mw?3EudXS01-YK8wnY|-$Us? zO_w&Jm&>KHNP({Q2L4qhn8K@^+)($2q!^*hh%415lZ2KTn1>S_mN!!D)g4F0xfzyv z-cAf1z>+}LIcP)KC2*gm3??1wsT`Im9r^EQy zp#`EC3YhnO1Z^;YHt{xg_+$URM$nTipM7^`hhTKEfeo52+@#Z$h6Y#p^ioH-nWni1 z`FphiI}ouYOH;G~i;qx@)UrZqiqW!SA#zLmfdET~oTd1h2*N$w>W-$9RU;0V5KH8r z>xJ``$LmbpZ-HD(lFp>Z)yxvs`hagjeH*EstsX~p%UU-vtn02vvIp8Zwxvi>&Ta2U zl7yJ3`jop9Mi|VLnQ$5rh|m-j9h=#bzF0&SVNRffPO<}uun$5$B>Adom$JaM^`0$g z2Cqo^kfR0}PJCC!zFs&H$OKT$$Wiu~OlsY1Om@m~{&|JcKWQYU<&nV-wGYb$SL>%} zna0ndK_21%^}h_8nCFRR&E$rs7L$jbFF&WP>cp+c4xk}v-ib)K;YSio{qhk3j>52@ z4yihv^DJF(K)su+yPWsP9BuT_nHee+&*S$P;|q_AQe3hbSBGx9@XB>cV02jG6E`zf z_J*T}+TOw_y7TB0GaqGf>q^qgHi%7>OnxvAQ{@}Pa42Hk#c`wY(nV2qwj>z#upO5N zW!El`Y!sqPGHu1+cnKEfd{PmsR3OtcI;61bM`pv8001BWNkl3Lr@|dV6 zoepURSqa5c-?Js<6pr#<_bUW@vi7jRn%$&NRr9$*{>c31{GNpIMttyrhb_+`oZ zi99ARA0SzOBoIV1A2uxf+a$TU1*ael%-lY=uRfoHWBlb#fYZWWaAIRT3Lc|Eps zc-qLFs;7S{!((@JaWangj&n@C>wDPL|~W5`^)}eHZx(H zxtE?nO=EVFNf=k_%*8Dj@)b|zja}x%%)^?}Og$~7c2g!tjoi{p+-|i1jWSH~*h!6U z{e5R_YXTvbx?0EZoj!#!(X5$W&E>MmpWneE`Bo7P6c}r5Q69;GyaBAQ7EBA>%q$tJ zGKC3x?~|>!mjTw=+a6W}3KBiB&C*ynb2}D!F`nS+3FA|wz$rj4Efx{3+Ef0hvT7@0 z6FqO-@pxP5?Q4?ear*<3Y*2j??3VQG&&1;Y{eMyF)~3#&i6tPw%T3ecIHIL-T&zJm z&UTjd$zwmB`WEJ~G0}S%j$~NeTwEVu5bnT|NZhs-1y$b*d=rDVFqM5uf({)5!pw{* zidg`_K-x@b1Q;3OXpv{27Q4GcAI=^>>d@HK$m2BvqD zX@%U%7Q37w>?h18P{%t=6;tapzbEnom& zkGok1`N}&#Mv_!rwu>gvPS}B!(l{nJ22$S2I=V83#iqPin`?o#2GSSA6Dfvh4$XX3 zc`|e0=?9ip(PoY0X``=W$Tq#VE#n-+j$(xT$+{?b{r-o%-HWqz+_CmvC;Sf09uPA> z*au3Hm#}@ylp9}osMYAZzb`+EOz-cbF%f>9BRGwru%RIKk`(Q>-E_PKG~TVAE7+$8 z;wVr0cqzk|xu=%XUenZ|aLD`UyUAmiT^GFW@9sN4@Oi$^iHq9H?-5e~(T@G(feA%# z9T4%u)L8_}qxeJw%>VkEpe7LIX_+?hdWDsu!)oa0_Ayjg%s+wi1u5W%pN#p8r{&XO ztw26YDOiynIYM^s64r#1-Y|G0Y%~jHp-($#~YR@T8n5TmpJ5<+$5u zhrfLMoTubzCK;t`HqcqTZJci6>e@!4pEoOFmw$y|sKtBzoTFm9p)KY2yD);@RFX~2 zrp}`Y#%%ABz~^FiUbo(@@U+PzINYmu0>N=ApJD)l_==2}~yG0dJhnn1k7 zYadY-ElJlX>`6^6T@#{VWRH~CR3tE1IoQ>sY?gkSp7=;~`Z49k_W1vP267ucpYos= z^J_C-l!jnw3YN3(LN=Q!7GO%hitpJ_7OIgq{-oK-lXMm3uvo$+J%e$fBvbZdYgdWQ zMArk0fDb09+a<#n_rSmy1Ki9m0P9b;9!J^k`K~Tngpw=(C!&4;XbC`km6$7AeRhXf zpsc#!Ai^*J>Mkm75I*0=?E%?EfM~B2^b(9Zmtle8Fuuuhfp_=Gxkz@GI;GvTvhym~ z%)>ymW1KwL6-^Y7kDyex zivib-GpCUy+aGX9J_n_P4J(vLxQ%UF6e| zM5*2aJ(@O$D6zke#cgxEm3DyPptzvdvg1K?EEm=XT->)vw)B`C*Hbp0mm-8^AJpG& zPg9aN?QiKiCO~X~Mle|Qb!BcJfs1*ym|fRI=+fSI!vfmqI4oIrUZ}~@StV2UWUk>{ zEZOHng9s6@ofX`MOxTC`Uh+A3yLZFtg8&QOhKEtNN(MY7-{f^1dtm~++kIIm{qzrL zijVPr*i7csU%GTc-%--)_Xkt>Hk!(<_g60wHq+DgNmhN{gX{fdOIAa8YBRXaf_|91 z&y%Dc(xSTS0)Z(D9Tdsa?b7=uuhP}Bkdu3e0>P8tF6%D>jwy7yaMv>rpKUzJv?pH= ze@^y7+x|Tu$o?yU>${mtH)%w#IvYAOlx_k1`^dWz8FA|#T+PJpz zD2P`=z9|;d^6J6A$u6P0?>~LgPd_eC(kw~F^oMQ4#;MEJ46kO3BFF%hd^mIGeM(pS z4%T@${XX_$_n?0s^BDD;#wIT>y&pjlNS1K}lYCu6R<^nsN#uDOO!W>13Y=@0$T^#C zS(N@E#`yOv-obAW(Azhq?*6muZR1mLHH2)N%s&sCo6^r$Eo0MlBUM?V7d*~t+p+m> zGs**&5D!$f6qRMvA{oYD6sWK3aJ6WJ<*#m&C-2=~mVNFTx`0 zLYLij$eTiCv$*3|XKgX0z90LEZ;D14i)e`_sQ&TCygWsv>fYE>dsrR5x1gHw|NBpQ z#K*LN10FyI*KYwg!8)tyIRmh(Tv`TU_tRTaep9gpE4R8nCQ+~*(3-%fBE~122o|TW zgygtYQgU&L+5`b_NlilKL&_H1Y2+p&;s|*b=Xq?*Pe`yH?j20M3@S423u8^1wS#-a z;bQGV!A9GKW)NR8osHuV1GL~@QCM;{%86i3!h|>IQyoKS0C&V1x_qSS_%YIcJi2=l z#x7q_WNjxs6|0R#_CD(@=$G1x{{8$ud4VK=29{1gn9Y*yW>0{G_&NzY|9=F*$BrdQ zf+$wg=H}Y{`c)B;ky%;Q{bqXbKoH!K8*=j&1Ocx210=ZP&l2Fww5m!G>Ppwb%-jUe z=`0s1W`&MTAA#}OppHOnRs~YFJZ36eI@m-kNPRkBOgA%!L74wg3rm`pB&BaVPMErf)E)BN@kr}$ChSBLo?69t;?nhW|PSjUP*Z}2h?+ji*__!fFf>U8_6Fzr^l2JLz&xwCZtfp8tp z;hgD+bu2|sxmN(DC0v)OUe4I~FUx`0py#15>MyCmeR|HmH9=o^o^#QqkJOxN_WeZHdS==hR+y%MO2@LlZ0x-X@{6f8M>U#TZr`!Dfh~t{#K6 zOjLmO7La`_U=YrStHt4PUBAVme!oO9>(_CTN3Q_Q;&^%Tp8~)1hgaaB0_YR|MJ9H} zo-IUtN zg}bSNg#Ovw0?tp{9;ElSp&B2ra}bn3M{ir$HYvxje#^4(`QzzmqxhV}ho4C|fHklm zJ2K#F7Rn)T^T_M+mzU%Vzv7B%dv&kRS4de{G>tl#@|U{~3~JmGl9%|&KjzKDN9N`` zL+M{b5=<~i;6gOu{0gBttB>t~GL1*h#nRw7_LT5Wmygl$JaL=_aQ#Rt+-ZJm1kPY; zjrl=p(PZzzmCiNnjziYb-NY`dJaCe(VX+|@9Ye*MD{*B&geR(OhFXOrjAwn4h2}Ke zNYF^-a+1|B)jNbZNw|__v9h^kbnJ$e1Vb=2umTtjr>pM=YrSX&Ged0HO4ok2L+UU3 zz6w=8oKT2V&E&i!0Yy~$EVO*YD8c}k>|p|RHTUsdEns~@Nx0I;Z18o?QQ5_Ap!|tC z-3U5Ogj~iDrk+s|LWA&*hpzTr=FHUTfE$4#JC6#_6Q=>u(HO>jz;XD2pYVNLTtBB@ z6~O%G!kfh4gyus=8V7=EyblKu0Zbfd?w*3a+hjaWoUq&oQZX|iw=b#fP`G)427-dk zfH4T>%-eXa`zQ;M0?lGk%I-to4ew7LWmL4VBN!yHv;&iw8oUlVvViOT`fHR5VT);o zE|ZM0`4eprHa~TJ2avw_X_4ExpJK9xAl4K9pZ`bs{3*ToIg;>rMabHflu78iP{qFR z!P;iwgX4df151a!PXir;`V})jALYN?7Cd);#xq&BYtL32g`HB+vUFNEa7ps=g0^hN zIG^ij2cX$glO!tWXG4O{)H|0?!HT+~D6BlpLu&#P$F;%XxSg?&5NMo5TW{K7F5`zy zQ3zRwW>e`vO@*Bo>7x=vDZ1bK8F-$DfQ=x$5?nqg#ik)OE|OvD@ui~4$`qnfIL30V4Z{L)5V2D_iBPTR&SK6>2vTvvJc8( zGut>KL%t4D`|yx=qD$DIC?YSht_6#saP#q6T2K!QFgU6(8ml&4nm8FS-_kP;pRTOa z5N+2PZe=Xrqtw8;Q?nQzli#A%tz^SDjJvrDLC+H&HfU;y3~hWM?@<-cW-Fe_CJ zWh`vS^|AZ4aW>k5Z?WFB8!roeogcF)ZD_a90L(3xflR}R3|PeF>1~?YsryC$a{Vf+ zslHn{2mcnO+I|34raRTMcg_eq8S-5W)uN^%G4PIB;m+-+wKDua$+Vpvmp_+zbM2xq zozIngX8iQKizcNr@bf03eam9n{6Rj2Q@U0A72!H6T5{7E|7|)Snirb0R|!47 zq4?h{>&EH$3+MgUQ%RVaadb1~Nd4En))$4dbPw%6#p`2K1iB$V)*$OCDnj2u-yOzH ze<#1j^gm-aTfV*dE2@OLE^v4_Z08$ z4H!tr{VblBHPNMhY@=>o9}1&y_#$sUtQk63s`38%QJ%7s%Ldhja$ytuHBG_a=9^;I zM_Q!C(oyP&+4{X3sp{*6q5k@=cCi+J9S+1fy=dxA7Ztvy-`?_|Jk38t)cixEHYwIl z`G@mIB$7w2-ur>6PpMt1B?!_n>*Kc#-#0gMcznK^#KkzeZql&R{gi%69$_mrK^6_! zJ>G>#sQ0K`g0bFNm;a07lRxKv?8PBkPdtKa7l|(ue}9OdCgA;TWjy4k#1U1ZTR0?>#fgABUj~@*{Nq>=a+nE#v)F%zgrH3!SpTRs`e67}M2w z67ELqs}%adhNZCK&XO^4YS*zl=)D?Tid?kHzAbw?@0U9jRxLhT==T&Pp#o!L?8H96 zgX#NgITp}>HqUXJuN;qoC6|7^-r*d0wu=iuO_W%xl_V6*MWmO zK@)qrn{oArjdvuv*lQZPSb^Fi&epIQklx7(atqpf5N@`BG0)F-3|pGHVWk|WopebV z_A6O6OQ6+#k;MHra0Q>u6b)!unfcOfLrII6iAdjqz}IOwQXF)jBZJ#m&}^n`n4MR5 zpi-JelW^WxM+j(vF7(3VY(`-lXUM1gF=m@PkC8aF9ae+{VXZS9DZRr;UZyF-lHE%m z>YpF5W0R8|Bsk!+FL;h#BV>QDTZ*;lvD~#9f)+?K)4D=BQAnGKq-V z2$L|f>oSWBx#fuI5)lV(OwFY;U8;jECI-lz#;hn*N_Xm}umXdCY16S!D;XQO zU>P}?mg|6G*j|-g4({_5Hd!WM=An%G8LpUR+c?K+;%hoDEd? zFuLmJD_MWKZXQHxdbG@|Tm!ex*QigEIzOZX>JpyDaqtjCDZTc8?4gdyh02*+-D)m` z(%Fp{yCYU^!bBkRHmW6DkqTG6)Dr4F+jB`L0~=W*w^W9JDC9 zKimo*tjJ;LHs8XF9o)u^GuO#Y_WlAeuP1BAyZif(9M88YdQKhNHZu&*n}_2HiTQ-U zWNMoPl@lL-k|O+$MdS~Pb;b^H@7a`xXY$XLpXg22u#+^{c2<_5hjfgADYYo@f*XYN-Z$+7hUp3C=3kq!m&=XOkCgclG{?-y;Nz@qD635+kE zx|Oc6RwU4;$e(gC7ybwQJ=*O5S>NyyY)51MHN&* zWW#YCqjlETV-9!&cw}qR$6jEx4l{9daR^vGj*Cs|VcDVyLNWBRY9GOl=a3nDy;h z;9&;I5=gTiKs_weRQDSus@rUkXc$0dE^9nR)-dB8QLCA`Z%3aBNBP*JnUrNrDXJP* zY5c$cH==dX0lR;(FZpBj*4&b*6!{sI<&Vx>al1XY0HG=fmSY=uk~jVy@yFHk9MbKm zg+#qVN>gW+mZ|}XX*uEKZq7hf5B;^9r6T(wxM?;o7QoT7yjuo^ri7Nu?D4&ij(FJK zEe>vaujv2}G{Oi4#s#^&M5Y)cuofteEwdt+H;W#&o?pffMn~i&U!J8%CCzKl-i23* zWu+#)Q^_L|BUh9@Y{v;7EM4w}5ce**rNeg2G83^wPNjilfl#(X9?2;QkXt5_?~8F> zK;JN&dO*|~w}Tkd&Gi24j&?I_P-vQj`!oKWyE40B9KO~1bu?(eJT@Cdb+}hL1OX~L z))H<{=2-O8C6S^-F!{N($6V@?yoN8cLHR4uSxJck$MXA*nNj&8+hLQxFYpbXd08K zPGN1hx9PRGXLTR*?c&StYgOW;J-F;Af!W*ZoQmxy(_iN&WY|2#`x!@}xSwGc{6}gu zx6_|+ZKdFoN49!lYf8x2a^#B>A4SXd)qTzV-pFY9bCk6d#0R>K$5g?151-?8V6wj# z;lm^#c`bd8|Em&upO=0m_dot5hU%WKG6=@<_ywpuntOgCKPyE3l-O@ItmPNEsv>)^ z!NER#W4uHNHlWMz)+_+;)8Ie(X@PG!eg~HYr2TYy%CRQ>6q3Vq|NHX54*tZISKqR2 z6#1K;d$JT^3}|BhiL60l`_B8|d&VI+ZEe0R{}AFK5x;N$u_=zz@99iATmh30#))s# zF}t?&9Ro2;L3vov6s(IoRCikA$imykx4(+@?#d*A3QkPUp;-+A<(oxSI>8!32qcuA z%l%N!Rdmq6IKO0mMz8Y5*1)S27G^&?B27CT7vz@(%;}t+$NiP_oS3Nxiwn5s(|g#~ zW4ZEW$<%caA=F0up}|`e+1YG!`SK37G}l6Pk8qu)%%oKDaO;rdLCq#{NBmD$|Hh^Q zmxUOp4%+#N$H98LL|qLc4$Ps_-)-ajwA8AON7L1|VSRE{D z)7X3B`hoV?hDc{1QE^%{n1>LKtQI>mbm;STwLx= z8sU6PY?S6KT43!<3P!786yG8ZCnTUeN{(i`5WX|zw5+B{VkS+!dPco|T2jNLKY$o3 zJ@4}-k3AfU(-)oM;_h*fw2W4MD)pxmiM>#PwA3LI z?YWfjc{Ot#PG9fzM-0X^DBiLo001BWNkle%J>abfr<^h*fFtr94W%k?Xr6B{ zNQyp!Vw^bA%%hkwtIzUEna zR>R}{@F^*asCe9yyn&jGI6W9=^U(X#UO%54OUQTd6T%>B)?df1XcT;a3;I*pMqzbk z5Se^vUfO#Y2u=bZKS=A(!dR9QPro&2dj)h8l=qLJsOMu=jGMtkY<92Hy6p4p3I^J@ zUyBEnMK=s4a8KXUvv}zd+8gS5e_wMmhYg5MLu;bUrE}PvwpBVAzw|sUOTNJv@?IoldhnJ$=Tsye<%=BIH z6t>FJ5Nk{gGQ&ucmZ1SDNDmf65u;{h=m#6a0AxU$zeOg>&kx(Pm2*&7nKPw~RG$<_ zG>jRd;M5N35x=(zg;Wmz`Na8X@6k#cy~7)DY0h*ut8rPjg*mn`+POMe@7LAEl%XPz z+lO%$ZP*#|=+*QWD{>^)M$c#b$+qAsdA88@@2p-ma3gS%IxXlDNNK!AZ*16?LE z-exBMK=+mDg`~XGNgk%jb_qa$!Z$>~$t;Roz9EYjlxtdtZ!eO@4KL^=a*7=U!@=vW z31$%TR-sYCa~ZFkFt39zH-Rkd6Nb2sEpu~&Iu(H`{lU+!VApdI@MQcV1BacQd3Zv# zQgrhI^w=>TQx(#P>Rf6aSZffYP$%r&LL5CP<&SW8z7sRV<08kU7-L>`d2F+`GmmUW$Ch4-D;g8>|N}Lr`{t=qTN8o4B9*q0(wf+S$Ykl zgu6riMFJ2@U#isQIZb6?*8!aM`VmiYV;8s>adjpotu|e$HcQMxH3c5VVfc{bBd=4T z#=g2k6enRvvjmc+OIRcVd(18!MKQ6#7s(aJm!0%YJO84q6#pOp%XsSV$6kM&f!VH` zZN(sK?oGI(ak^$xA!E2yDTa9bd}c&tGl$(9s1AhBZ-W==6DWsbz~ERErlT)K&wSX% z???otWGI=&xQ#=63sTCk8dkMVd_n8eu-~q088^h&9zK-Bd2^mclC8v!J+?D?4`HhZ z(GpKSCWt3IyV+&Q*37esT&0vX6IUh5ZZK1e)e}z8odg8(jbd+xrO65hI_%tmJh<;j z57CouSU#>DdFThfMk68n&$)FAL}bxFVlWmY@<#@FDAgV#<0pWVPpJYRTh5lZbKyw(40iP*Wk4dt7yFD zhXYuq=6E;|{}1+0@ljRTN;n0tXLN9%{i2Q<66az5O8Be*VZ2c{?9B@hHX9MY*|nB8Aw3F}!U?7x1iZU|fN3<6oA& zh9P)^qm7@+7g(}f{r-I|^St`JF5{Sy$Lr-iea_Xhtt0rc(scL`$;SG1Vcm8iH+v7! zm&uc2{t+(4$ldKY;4sgd?9SeP}~zg#mMRoe}f{N>J5E8Z+Ks{OhtB92>#y%^&A-g6mYDzoy`7Tp>UHb2Otbr9nui}x4HOYoTG(B- zI5QmPzm$6LWb=3dUD`&z-&5G};=dcGsCt$X{MkehdF}>An3CK1hSK8w9_bm*DdRE2 z;T(~~_WdHhLsK)5*!M@0i2@nj}xti{!?-6Vy4!r4ZUQh}Xqn)!9A*2cXt(?L z+;SIvtTf7epkSHa2GmDgwB5RSA;S|*&JvazMQ(DKLGpCN>e(X%Rf^XofeCF=O9FKr zP-OQkBqPhSVdrA^v94hyaT7w)r_H^yRZcAA41S4ANw{0@GD%!>K2e^6o~wtJUYH@$ zn1#ZG(7U1jB}c;>ZPUK^M(9LPDm%1dRw{1@@zWB=C7{y^e7?5VsF$UuzPX2$7{ZqY zifX&CA_a5le2?~YOHo1i8rwm5a5nxikWOOb!iNq1zy1W!KhXqpJ<7nRiZbXX$4J9M z16LLXyD5l|Idx1nDOg>y>3HPY0sAH*YtA0X3G(6>{QR^u}v=%CE{cxXxSTggX6pCfGc(u4TPCdhC zo8>(CWNFtsNN$4j7^5BmyV#brB{T=ES8TlsIjj`e3dP1w|lRumyGE^ z!B1vEL7TmQ%xM1D?BaX-Q5y2d|4TUUWI7*%oFsjZhbS;Zw<~_)2R@4aD9c;$KwAj| zDPezrzM)>c8l|$2&v30KY?@OiguN`Iw~&4;cVOov12{@?BIG)poLWdwK;6Ok-VVDa z0hdL?(%rtI&GKer3G+u!?BI5Myw}~yOBR*dd0pb4sRc51>bU}mwKSITZyT=Ar&Bxd z8vIyS6`xmzeNXD7gOa8;o1*Y#D%}E1fF{og4;LPi(sdn%M~K$cDc}_{E$DV2wNS+2 ztl$^Zwz&}C&e(dPj)u|B4`9FPdDoQDL`uN{U>HD4$$9AdX>;e0`gY~}503Sv#|c3G zthhr0XuRGd=hgrx&z`nZ7v{*zGJy5G%=~6ACmb?lk}Q}*C(!fcm0>T3RP{BIxE=Du zPn+?ab%jLz3~ux@H2^^{mumNO)KM}L(%3NYy+$h;#Qe${5yK2GI>3TMwGJU7@P@xQ zW92DWV;@-P!DdjW)Bwb@z3#(1CDEjZuxd6NAE6Ec3*LgeMicgNd?~3z6PSU8mA#^9 zOkV=vSm?51tCT?+z@Bz~Nz>@fS@B1(u8KlK79|(3bbW8$Z4?@(s9gb{F38wDjl+yo zE#Vwx0HRR}-rPdgL~R^+FlCwUf{}*;Y2^68WP4vYEpAka_2bq>B@a>;YF(aC>DZ)YFz9{*Ek-i!eu*&oZtFhCW+PWJx{YyG<*!|YCU)- z?TWVSvgyjQ;{jwZj##s9qMQdXK)G5*WPlPg#gs?fDKJ4{r+K(?(*<6|6XzE`9bhoi zbzABmCL!iM!AQ$#i}q*jTNBRxMed>byWcwU1b-ojNjmReyjqeH_$8%qbe|@FhZI65 zY7TPYUKiMec;gc65T>}rVqnW2EFYfKr-yrx9edhFpk2pewgbi7=LukoS>CwQCAkW? z@#&lVNTd8P^0p|BXn-F}n(`mO|JTId=RlNUh5tyW{zQ)Hh6kG@d#Cd8jl+CS!69CL z-WRtKN!Q?2ctcQ8F0 zCJyJhIG#1r{QHKj4Xb9kkALy-bq=cZS04$l)p_540bb4X*6s16*PqMJJhShO4;_$R z47e6cldo`yKDQ!B?%?TpJ+oh@(|ffcFGx$^@GHTB!?m5cQn-4uTMjmXO_ zdj6%H)XPW&JkvG!v9^H6Kc};k7w~l1u=DGk40BAI_9(-4%n3;Az; zyX}}?T{h(UJvhoq#@~gnf>~~FQFHo~_%H95JO9;1KKHChAKq`?O@XQ^%=PC@ z)Yk!d;)84lf11;@947lq8cNr=e6=LM(P8VJ|At>dh##;Y-wFS$_Azl5?);X?&E{DJ z5gyNr0P!L9oh+6{dB*FZ>}|apeobpzH@Sh|mb=L0>APuh!CdU$7ny_L6?bIW#utO^ zw@|NgNrQVk=}Kfn``Wg18e>47T{!gS4>|RshlBYte7Xq+?+t9^K4Ypair!x15b)@@ zNEx(&FJWz^wK;URX4%5TmD}UHeJ@!`F{0kUP@JOiFupXtIz0Yyt)gc!#lbK|pGe~q z@%k3;H*frBJf%UKMua`uMX$5;zG^|5^mvXoNmBH@KF-o%c9TMHUiI51iPyQdGMnc3 zsH8Qe=0u3peEh(896Irc#2Rjto#~t;X%KhIuu;oW9{4pKfG;tT#Im}hB004tOLIBF z&_#_MkI8kI(s{Bv;R8JlJ$iG;?&F$ZfbC;3zub&V$=tr6;ulEP;W|+llp_sG4xwhI zXbzJZ5RN&NI*<0(-T+rDna0axqZ}qy-rzpe9WL|!eF+!`K{^&Pbyp`E*p z4w~Q%19J;NM!Rp(anEoM)I-h3WvW>6)=xcX@KWtr=XBw^A_2>_W3I(x(#y#uIUr?dp1mgk4s+%(%I*hU-8sUy*M9OEj)118FN_cG=LOp@eMFA#H44b` zt=x=Q{1(+{_AZzx+BEy3B*oniESz4#Xy{g%MRAnh-rZ*CXtBW~@V~_DQ01RWZ;m~< zV?<|BM`Q3h#A|)%zsX&3proI6LaoJD_%V4LoMJK zX{N1p2}rj8e(v;#_Eqwd6dOX-?|Aoob<^eTXhJ$aR_PC;_h~{#^7Gamg0RzZdq&rh zio@czbr8jVUb;vb{+8SN7f*6cpQ)yzMmgx9O+H^qo?gAhm3S#)}M~)oDVkR zESxjd&RG(`r`r&SFibv!T!kCU!nME}+W@YvoB7u~oAJrf-4qiX-_CRNF>RG#@D78` zFKW7TEl1P^idehfG&sJ=hu=_^kE=?&YkuJp?;cRI?xQy!2KDl>h+#NtLalS#^#iw( zRiUgsj!*q%l1n(+w-EI7MnlE@FJdl$ z{Q);)3!U)cYDHW`(b~YwHAx=O+CGk{Sz^qa2?v)8YacNEF6e3>Hz-^ZDp0mJp#$614pSgU&EJ}K83HOC z?K5P;2{egJ7Ch`WNv%<8qsu{pSAEsVA)UjW*A~qp!6ur2@B9ej%^gPU>)jJPH1$Dh z0TRvIWZL#iSWF8@nBVVm;msN^@`m`W}%jp_5O{IR*Hj%(W0` z4;EO1a9HU|+$o%W3YSHx)=*VQ-lNna9&2p+Rk|cXJ}Lwr5A_)+b=tk{WE@#p~zrC=hvZ1u2J*UVD)fmuB)A+ zPq~-ND2sVOYuftzAxHM{k`DIou&-e;)BFBYeYSjNZ%;FW2{O)g8--D=nIiMA8vCGa z&iPi){=;MD;4O`ZAGzlB+W1X+>~`I4Gw}Aq1i29_8LzXYdKxPB!$cxFzl*695!q90 zSl(f?K{Vo6p=p8lCLXbb`wXW3L=K23MdyYl&I*$cv&GD#0TluTu>@?0?bc;keif|f zgY1jwr#Da4jwHXM!z1wdB@`QR3&gQmmQVR8mf*!=2XEacQx`NeqX>h1WTwe{L2Cot zc?kCi`M2WZ;ac?>+c$Ekm=?DgS#C1V*7GfRZ(ij#L$`PTXvIV$wS2@SJHct|pU|T3 zr7q>5R2|vmjk`nAm~8@XwcfZu<^_jDpVnRb9%KoqVbA26s-#t6G`!7H*Y?%(UcTuf zy+_*pGNAQ-vj&($c)x@)X)%DnXqR-!8LlEq-EfK`w!BQgRH>jZ4fEGJ?>lq2{Bs`L zJmC45xbT0fFQ7}SAMD=ComUnxczD7n|ZjL-K z=lf*(>bZ3Dnmw0OlMYlS<-bmkdH$Z&>-Z^)x+NT|IQyWVw%~R`_!h#%FGIw}Q!Bof zZlk-v8n3>lxPCX8k=`Bu%T9^w&E>zAiuiRk-n--W8?^-d+*vesr6zwLbf3V~f$S~% zy9>AOLY@Ex%A5-m-fTaNxA%$t$>LMC<&Yf%EN1fkkH2!X!5vFCw>-Pj0l$R{U-{jO z`KZG|5wV%J!t4I?L1_p4aw7{?aWQv(3j+M*et+i;>DE8-ssPs(>wOgdZJ&?#d!(cC zxNeq;UV7mJIi>%(UxRy#;1p^0u_4t9lm!`nlFxw{zXS0ynP~`E9C~r&0W1EfvL4I_ zZO)rt;QijF`|ZogrIjMT-%cAMmcwx~x9`h7bK^HcPEAd1G)g0EVAoCi?FFY;2R{mr zwipJ{#q0TJl06=9#;41G%UvJ*vmB?XGTi;^cyFXn=RxSF=0>U)m$)`1>+E2;Y4TqnfRJ-(0UCV|HniFIz%7#gJ%H}DP9*c?JzPtGIx^N z86>o64aMvWC@ZqkU*kVjClxksZys}#B7k4{`_jTab%WLJg@796IQE{4~aSK&&%Iq z9^ahvP49<36Ava{F?4&;4yQG)Bw?nw=BLefxLK0wy~F?azmBW{bcN@g7k841`rPJ( z4zswhD59I^xYJ3_j9dFC6`?-!NWr4dTfY(1tcGr7{w7L7hz zR-B7=#j~BSbH-0WWLM6UDamq04FLh3+$}&Pog?UR?-^BT7V?=CERVeJ?OKN+7Vd?a zupZKf)WP*r6uWL~aOBK%MJx?$L6L-z2Asc3j}p-5x5XZZ2?{r)fn4Tc%EFlTKqSGH zgw{zvx!T|gC%{eEtwKwDeY1;Sy#&wFi7)%Asqvj4O|Qk#6MaH1k5Z1MK{4A9F-8e)}lf z)m=@HqW1C!qT%p8`J(W2vdo<4;85Wjmw1|ELZa$&<8hgeZUfU-4Yf*o%I+-oLH!9Yhk z7yCrBJ#`>2syH-w)(j2chnDtT13Mu3?-}=v0{>7EcVPn)*|*IJhM$T7$!9%4I{;U( zm|$N}EXMvpR4)Hqi_PVzGWjs=z!59QxbOs3pX5@*u)M zM@u=OZ=11R5y1k&lU+e1BtZR&ZA0)Qqt5TzXycKeSkbi^1#?QVU-rEvV zpPQwwQ+N#C$8|&O?p867GiY6VQsg>87Kt9jA-jz4L)|(8aD+(?9)7$*Ng`TOpaFah zd2|UHA;u_n>w-St@54ry-$V#j_4^dqNPe0)qQK6q=JJkG9QO1u>K217mXaTu1|M(! zD71xDM8^(Hjn72S7bv!be=5fy#ttwsl0u;iy(A);lC@ldF1t-8V@6UD(H?_)5Qd9u z!mHG4qOO-E9ZHhTMApF)c%Ublxj@JLkz*wF*U{Ty99D%yn6v^6)v^qV6*GPb=68`I zHngYf5z~N7KxqIC#a#mA93fgbH*Md{iIHsuR=p5(E&|5>e}dp6S#~8s5UXos zil@HF%&IbD(~P^|7C7O60~%-K3TVb1c6C;M^~4n+5zxvVE_hD*qn{KRPK3l{zT_Sn zeBw?4*WpR^UBa6L~(QrAn%ojBDj?7n6Md^CGtg5 z%>n7$=p4~%TKvfW@l46cZmGAn!+yW~K`WO8qq(?QQmKrYg(3Jhj*J zcG>9`X^R2j1JN6{YW)GBtmcI37hyBM@%8f<-(iN~&JkLTW#h==wCAl9;gKKSyCE<* zt$Fj1VZKQ<7o`KY8AelJmX4`};Q2(5@)th_W?w7hmJwqPJu=soGr_Pf?{3;owI5_Q zlSRUxmOWHH68-!(6ssgr11{oT)z6z)0}2szP@84E`H5JHL2MJKO)0+n{RRqJEcn?s z!+;M+cyw|-D7G(lw8#Tm)@iUI*XeuRCtoO^0=Vj3l66`vjTsh9uIwRgtMY?ZW#;et zYrm8G1RcvjD5up!Io9b$E$4^ejw7sfg|Z0W?-R?eN~U3W?!17|!j{3KV1G~#1=D|G zu?H+hgqs?F3>v;oUdVGBIw+I&c0h-nn&Kk2DHFZJkI4`GuTRgYxRH1AC zqUnd}PwFU??{Ug9fB6gp{M!G3MhXDEU>#gFY<7$-R zi#KwZ5FmpJ-RC3DRJv-#M(2S?+BfCvTGQ z`?qp!_k;Y`T5SIdT%?)YD&^sMRs@e?x;sl`==rC=7^`B<&;z`@pJ=S_(K5lv{dfG5zis%? zT=EvAhkK_zvupOi@0)(Ttz+^x7NJ=t@!xM?>6_n~^$br<+?s zwr-P6FbY`SW29Su@Ec!waoMTQBw28a6{#&r$zs}RwYd5V_J@^b;XEg^rWaiZ7}FX@4jH+Rs_D(4%#9?$|MS+jwt4P5kg@(l7%sM0jjl~R88rAt z!sk6N5K46YMyL>~K6F0Axop0eJ^v$p&JtkAL< zClH#I7kY4pYRN5^NqAtjy8x&aI5x{0z$`-BRb&= zS+i+;>^Cv;3@%2O!kw_UVI29)lLw|Kht3j1NkqO|0Gk1B&qFijprtZQee7~e*O*9k zgPaL{e8>KP&y__gNrz5QyDXl|wB95WSL&>JRcL^Mp=0^7XqtS9$=texOfxqr&4#AS zsc+6>*c-4;pmX84@B!LK#K2w45EaPBvWi^==6a5GmHwzT&> z9N^_FmNVMZ(enPn5Tvr z;N`7twiRVT^|c7tYL&r}`PhOnybWx81$2|HgO1=y+|B4EE;F?W4zGm()n4wJys7Ye%NShq7jhue(kEh(P-vkw?b*u44(@$=JU40ZzelK81*Mj zQc>(QthV=RxXVw>hc=z(?-PqO#CYwiiMyZtgVEm37N>TVm4m$%d<7tbJqDU$hyyP{1haI{WQ2-Ar;D-!s7=Zp;zWb78PUIb@UXR-kSG+~X>nx+xN*x74m! z;8!7OF}jVt4kndDMWQWWiw|y`tnYrh$7Fu5k0p7LrbtGBqP}!oE+-6eFvfl|ewRT- zmNSN?-N8e(plaGAdDQn45sQciuUWxawoT*h?)TZB#qjAA*$<6Up~V9lKdl7JM2Rab zy2i(8GnrKuts7&@bEQx~8GklyyN*C;`1xrCz%;^qQPcOCg=rd}#+ckMM$FrRH3@Wg zdq;{0gBlG{--XVQw+;*Fd0pF!rVI0c>p2SQ1}onH{3bkIaE|U%yFP+htC6jI6^(@n zFmiX5l31fI0LX0;INRPB1uIo02JDu}FbUhsEThq*zYNda+P1OBAN|uJd15b*aQ8>&jZdR2XD-!DTfu`rD(WFx8Ed^QlW5v+IbgCc z$v!E|t<4Ydxf>(;;i#e}s~(FF#Uj#aR)U+K zofpKrnUMf?vNS1w1aFnGkshOZ&{2>(Zlb(GH~*53F=pK&BJP_$7#QBw+>iz@T68cq z$WPB_5bVLKca+A{rNnF0c3+kQNG-ufH;_mUOpqxfaX{~Gvdq1kYlywBuH8N&a z59@PvURRH7yj9SUb&s!aopGV!{X8^P>x=8|?eDw0)a!=c){2MNcYr+@8>2a+&mcZ{gcnmQJ0UalDU-siM0)*%{R5(=BpQ#K1Q9rd7T)s%bxjL zaPtB`_)44cQuk91-6q4{%V`rx^Zb~E@KpWk@;3hD-j;npcXJ-n_Ge{9_-9Ez95AsF z#XaV?k7h){`v~po3~zd8B9^b-hCe?$K5x6PQ}Mt(0Ocj!MAIMB7$v2lq?IE&eDAI~mK z3?D!KGiguP%R1TLobN+S>qa*pqKM5u+&&fbyI!S0#@MFm{Wh|2R}OcySe49gs(U+F z=0rz}@^f~o%67`->lKn5HCmm!UfhYdwOkywOXWl4#)!6$Hdt)=9Qf|lCoD$WSvebI zDNNIcPUr;&Q;a;weuOJI)_m&%LR=`YT9$$!Bt3BM!k@&q(W``VB_!lL67$?$s(2kA z=Y=2`jYImxVPgqX%krv_3`iyH;!i`6iR++XkR&+rri2-4o-gBTY}TC05WyyE!(n~s zSv%v7zLU~GoAu5 zt8il~9|b1s?7&bEV#u9O`BM4|>9WEjLWe#;)8IwsZpEH>90UW~q%;O*4FOwhsIFQb zUFb;fxS$*k@#qiBimff~MtP5wFC)o(x(s(DJqv*H5TKhTRGbk^#|ck=`xh6#M8AttS6#yzRQ$GZy zVl9ezywB$)qy;2v$A^wixCS~+jm4UoIAsh=KG;(E_{p1)3w!pbe;J4J1iIX(77Q|3 z^w2#d34wrkrX8n*ZRqhnbXs7e@o>ZA6%XL6b*lk-z1R~Z5MCJ=Dtt( zMDA1*N_)>wx?<~uykR~jopNUaQ8mCJ@zjzp+J@VL@phE`z30o6JZuf7~E9Hv`qf0*k z{}w12j}x?q_1wj4;w%5PYyuUyo|aw@8*K zjUT#r6qnCqJ``JXJBllsvmmB837^s19BmS*ZB%_`+bEoL6C)$jPaKT>0Gd1%uTpp2 z-b;5+2!_Md1U?jlZ1ShY4=7f>W`AOAk%xPX!>U9nwg(fv0WM zc=IPt*MQORN0Ztwz@eZ9F0b%qY4jMQboq6{=tI(7lC{>N3i@O&Lo4^U#Z__;CQZRV zq95RRz{$V1e@z(8v+oqYClI)W77F*S+T8>ON!vL;d#)brPio-%APX(GqASbDvGea1 zF5a05C~@dL&!e51$?h&?Kd1E5?T(xWtNA%1!c?eu=2AA>fXEVh`>92N zbJI|HqOfYl(A|YPR6gafc#o%Oif*I7Je64!a#`$$tS6_Fbiub_&=Ir)Dt2tO%Bx0W z9VNs)OrbQBZeg#hr4C^{9l19J{w199)GXatxg~g(i<~Fz;kohX16Jdt(kH{Lcr<3% zCUA#h=4Uq#7H9?YzNf<`AYIG_N=D=xO+!@kuFV)bG%kV9U3EN;c#e#6%gN6mO-i7PoA%Ky@Vg1i6f!v zkq$F7+#o{zfv-G&7@JuG5t*ZwVj>k^r{OURY%4fG;er$imT7Ik+{pEZXzdZb3w$c| zQf+*#=XMoAXZombh+rD|&Uc7jjl? zw*I#Yp#WJ2&XEX#d_?myTmTN`ijfiH9$JJp3r&M*Gs+Z%uhxbB^#*6~RjPHE@)Tc| zK30EcTTs8Z8w1FE$3pefLK;``PPpF3+v1lFm6Hsg9B|ih*gMsf>qstdxh)w;&EpN; z&v4qTgWuX2e+>VcRuhk8c;U|RiOs8&p-XIr?>dZB_I#1oU4&nxd*2_y@half$62_> zJfOd;BW}zXj%)OZ^&?!S0<=1C(=lgkXaM8#Xi?dyQ9mx4C!iL={|GY zqgn9s`}Czg7{6^p??xAD;Iy)}I7M&bH~bQP0p!(d+!W`x?>K1arI^#tyRh=$3WX+E z{`p~s3z&7K>sqiXBomZd#FBw=50Em{{b4Sh+ zwW)XQ2aG+oeQ}in=hZS zIuWudg8lqcD8c8**tw$-tale|165lXJWd@F98OF zlKK6KoqA5TrM+1JfMAB0Kk2X2ZwS|F^_`AEThCI}TId$R!)ey2 z2l&hQJp$KGEoNbNj)tZLX^8;aWcJ1n&we;rwF0RPis}`J?P_Wy4%YdoynQUADsFMH z1-rpJdE?G*d@xcRqf;9n+%j)XHIh;h8T&!w-A5xN=w$Z&2`I<&XihV4=fJpxT>?46=BO|GzlA zct3s4e-#}DoRaB&ixl;naQ25O({}@7JrO*-E-eIiVk;AcJ2j!6j2bQ2ELQGWAa^yR z2c|S%@}TlJisXS-*fS-kSZ-8=hrodLf*9HpZ~aa*yl{$J;x_lS6EUT|ACMRJgm>GZ zQ&w=WRSX}LyBj-I z>%eCYbPCw9kG-n%-Fz?N)CEBVV-q7&78M(I%@C!lImm{MorY+(>}{F-xc2k|QxodR zf;_)og`BB=p#B0Y2mO*a92mkw$EyQ$E&!!0_<*E-%VXgnlwy_ZsrW-ZoU$HK;9@-@bTvHrYbvY&?A0G)iAb|{<& zN_;CDpk}VU>yD>-VdJ*!i+SnUkLR-q>JiGnl6AjyKG}9(ZFs^=0t0vdBZO7w;P5dA z*~2C(4^Q{tTRpqTH7e&cS7k#voR8W z8Bdm!LGis6hTj~W{kBy* zn9KJ%$|rk;-*>^1)}^K*_B>f<>o|}W%_=7Bc(CZaQ?cW>4?L^9`iH45<>t2<3AF3bUBY8&=a$jRKxI)owURafHDtc0YK z>&7IPTZb^~&>GHQ3^8<=H#eSQf}-AJB5EE2N{u0l*bG`=vMU=w!pl+%;`$LRb_y`@ zml#VhNb368YrqWF+q_(zWMiBCUvX>#uYdj!H28o2TdH3CS@^nIi{!800n2xANR4|* zrgm^~ReF!bNQLi_GE=^C8G)?hM0v6F4?3wHeLT2j`w^Xss)H1tI zb9BMO>1!_W|+Wg~iKnhC>kUa^e}FPJaJUi~2sbm7r~dA;5Fvz-F_ zTIbpAm0Z!c=x6>urWD)zxR@dFmQBC-htD3IZ}%+vnZ0$roAzSGfBaWG%*F8B-{;2w z%rLkwmt8;XOC~dJi?zZ$`FI>^ma>#TfMsvj9re9xDN4F(#8$y+zue+m`{%sHgJO$f-bT6hSOJw_Fma>&w$3-h{x;exTHMt4ZnP|8C z7z?UWj^$s)yx#fd{V;jq!9RVAmyaUfH|NfO8p!+0&_1BZ(66D(kF-?xF51lU=}U6i z=i%+QjQOYRZM>E1czivFVOn=;w=+gRtyiatuYl(euHeP|wK7QgDP31`nzk1Vf$5s@ zQ$xLXOT~X(8Ps%&r$aRAoiB$RaJ+5?6-IKg$zXM(!~Effx=kxD$(*U6?US{EFJr$v z{=N>Tc&=QgvFYw(w8kNL%3p(dgV~STcS$cx|FiopWJ9y`&|5kpU$RqDc_n zl9>%2$|CN004igB_2#R?h;68O@7~r{6OsO4%T&!`2y7oAivM4;w<A~#4eIFU9>m81k*$$jrH0C^EBG|iSSwQCr2!df4g#wSJ!iKK^ z^JVXmB&(d~A+a$&?yUjW&w4Xu zXeA`3RifDJMJNvfX@{l^4qlW>w^;@5jmDu&LxWNvCQSV}AefFf+Y;=G&4mqkExXGz z6ToPqM*e_cb!}T>Y|LhbeLf()4l(MOcDulz9ae~wn#0RS`ecfWgQnZ2-Q=ZM?^rAE zrQgJUta`BWOxuJEg**YU??>DZSghB$H|98jP{cWt%_MZZRKptPt?TMmgnqHs=anV% zL*qeiXviRq7ex?zD*-2G?+1|GqbIV&sn#L3ns?sR!3wx>O$G;(4vafwFxcw;J_hj+ z{f!{_qtg?KZ|{}tKVP~j^j3?0@I5M2+Bb85`z+QOrr4-(N#fU+%gAij`zK?)p%ZZ_ z%iw#ln}elVBh(k>_VU;a@32D;*$TtROJ2g+*SMU5Y9nvt<4^Ctxy5rNYYQd^zK6d~ zje^m0H;*vcu=ZD%`fk-xM}^oplH!b;VE+VZ zTL7<76tb-5u9va9E)xh7Eld4vWAzwK$6avI^le^R0V{ttPyO>{Z+$skW4Ca6)trTo zp;uBLMDorm^sDz~avPMWN;}qs;g|I^OYi;hgJq@&V}&S9{MQe>!kc_**yEqFVc7SL zTE@-7hPu6O!jvM=!WQ1YN7n8e7}cAgoOJD|ds?2uDdU#4l{oE+X6tDEtW}UJ6;?%N6#a@zMx1A!6pJx2sr4 z+~4QbG{pOG9zy>}y__8gyTW?w$0Z__=nlQ-o=3IVTlTwRR<(jF+V}Bfmq|-rSrdE@ zkdfa#tGUmPHi6~2?os>%?0f}_Yw0vkqRDd{{Nuw4pw2^`GOz1$NE}_q!6oP(AQ&$$ zWQ@*ReV*J0I1)Eic8Xs@`tU8Zy@b17FmSwNvz?C5*Fr7l$81usLEP5!mUr7Z?=}m| z6951p07*naRD8g-n0S}k!k=Sw9$W}3>xW|iy)dajZTfKIt1wo>!(W(;cNLTFXF&1=I4dfx)M2$frm8Op-y5~tpY~vbj zPK+5e+hm#*VsPoJ5#N*erpEurZWqNP z!(hq5Hi@R+(qy~1fDB+}I0+@b3hP2Z>$S|JZ@f1RF3||=G86sq;i)bi^0e_*mWu|r z0v)Q9JM#D^i|9i5=TwN^L^)7$+HSVNFrs$32k{5eKmbWVw!anhHp$2;a_b__Vm4_k5CEh}haOt!+Q((Twv{mLXjOcmqGTv;x*t z+9w?frA`fg!Vl-w7{Ba3YzcB4g`^i{wW#-HnZuQLhiZ&+kCt#)&bocVDQnql`xdC?-Vd;RJ>yL_u(D-oTl@(}gIAo=~N zd>r>_`mWK(AJx}nc)D~I4os6BPVc>2$hk`g{CnB~ZCn=~7M;KVoL10?x9}}?ygsr# zO3oL7X7V;ie$lCo$QiFa z*RZEe2In=Hf5ZW5wCJpJ6&(;X;XAddHq!OHKLE3tyIugp*JuOsDUvBJWPwD4vI*6i|Ep6#Ol^|D`{Kqu7pY%D_qUhreQP@XsqW zW-EKuA_&OU>%77F>tVw2o}l-#UE8+ubnv!A5EDrmpyx`Z57;g&+Aiw#R8DmqrmP`2 zA=N{%r2Pt3cK3;0t7BN>*{pW?%iIoYFWn0aGw(-O`NqS-em0m{|DF#%Buk4BZFt!q zW9;=Za`?l}s!Lf1eegHl8BOTYv_&VEuz{Gez|#SYeaNPy$%!G$2S@Ia`M~IiHD5h4 zTX;29Xc6bQcIF+}1d;yk%nEun>723os6d>}o#?@uW<$TA^)~r^H9qz^*HbV*=J_94 z>stKiL8yFE>_#?k z;WcTD?wXEtoXu2NPCiT!^b;(7j}o-bf{p!@$E>TXl?0FbTFc;`q%j=cjvv@Cr9dkY z1XZ+G{(Zc}-K;07fve6apx-H+|A^NsT*d}4xJJhNHr#A<8#maJy+j^ z?V!&EmX|Yh3!oe0v^y1Z6T?V}E2GP0V})y8A|27KxN1d%iF<2$O=`by-p2Pt#vr_} zV0lbFsKJX?a%~r+7ALgHS3XzU0^B|KmhhPz^Nny4T_3B??Tp#yIsCm@%_Z{fJ1hCI z-H?5H5RkuWe41CRR4o1_vQP_&lcW3H^ocRO^r{cCO)<(;(7lvzZ7Z_v<1^ zhjP{9XeNi~+d$$UhWwZjuf;!6QC{BV`HE#bP{h29{NU1a|N5zDCXeB)^Zg)@&rPze zUy^VhKRy*!*nh(ge>;ATy75tLvM#tq{m*{k#c@>8E=ff{@uvc24^01hOxFBA;xi0{ zT&I%eDi0+s#Z5($V!4qFXP#CP|{YEFQ7o^R5Wa zi4>Q%S*+k2+RMCe!A42{UJ4K zVrXvE`^r2`hsF5;_7JJhh*PXVobr0Twh`C3O7bLqkJC-o!p=1~`T7K6;e!Dk@kZal z?T%VKtMKKzFzAN$Z8546mfn}dtT7i^bT8%flzo}2wh74Hy)|fAplnSXsCoi;*)zNP zI$NONW|y=m*_V=Rqskk#40ok{RE`A$EL&bAQ`AB`(p@{%^wQtBQgT(HNQ14cIW|Uz!naR zVmdj1i3U7c%mCkL04FT6EU zewAIQ+Cv7aR#4ns@3{yNBc~VbttdaIZu0Tt!ml}PC&u@kYgcnbQL7b1fb*%&0x!iZ zxQ7+TKes`;5L?6xSV9Zw#pPjlXvW>bX*%=kertRRO}a>DGfwCDvYkB12eCNeX)m3J zbKGqgSaB`{o|pJ-!joxA$w!C+Qa29r2tuG1x%Y1ze89+Rwebghu0u$T|Gi3l3d#|!Lp7nKajwaA1$HRCH7a;B)_Rg za{#90nmk-_75>=Tx-+mj*iwXC+w}HYuZ!#yrOoiybs+I$@YUfAQ0pyy^6;shRkeMI zkKjTysMv{W;rl08k5}$(&BZUOA_#_ZHtG6D6$QTO36N& z`n-C}S*TMVHs=8(5Zs3$nq|cOr1Gni!XMobte@-Q((ayxn`cX()5Fy(069L4=8d>j z>c0JWb0Lj?1T~~hy8tM63!&pXy&R@Jy~?=<>@jCW%9y`CCNC^F;PH$;OS^9T5l?EK z&EH1s{v$hI_{U%U^DU0Ot5%Q&_7Njy@2#&tjmg!!KB!>W&g1ug3-%Xb=S}tOOU3v; zbT`A^Y5QZarD>SV{(YzTXr_5mAlSdd_-RUBeo8WX`thtd+YS)%xKroP&+GJ|_Md{M z*LjFr`tGm2eY2|9mz2(8Gn2AM%ioW2k}l_dyb-F_c$uMbBunN`(YJ);5iD(DyVFpqi=AP5kkkI)~EM(BYsm6e$! zBN%c0@qSyaCHBu#_Fd-vOTGGWIOJtDI~OkB`whT-Md-_TlE`$c#+$cCk8r@kz5=LT zKJ3sNo>%wR-ub(Bl9w?Y;Nh+joEQ14_t$FT|Kd-u^#DH;kVxkvr3w`95R4$O4FCO> z599plKQv&qZ9I3o{(#qQ;H@ubO}AIpj&~1(s7+B|2H@W#i`#TgVcT?v4fE^yn=?Mv z;lsdppo~AfTUf4&^qa5a(_96s`F?{hL6tI5fnl7{`j^G2UGex==lYnVTtX3i#!TFe<62MZiGl-)G^ zCEB{xt=pi(M<<^XvB0}s`i+z+<|ovpNVLDD7ev2{~@8#*$>J9y(zElMs2VW>OsB>L9R-oO4rR0Th} z=!P!q*!5N44Exu%m7h9TM7Ck`s-SgScZJxy7Y*e1Lb?H(N&C#&IEY5}`g6v_f)9@BXfARLX{=hWv8(%FP+KIL62hs{x4Y`Z(D*#TsK! z3s;HF)~PRZlufmV=knTM`_dQH82cC*yG+fe&DM}YFBuDqjK3by$Urfw1m33beQ*Ox^E5rMz8OdK@78V;sko9_D`O?Mg*H z==oJp-h7BmY=fpVHox_=n&qmd9?F^k=O@x=&l(fYNNQ(taD5Np^R_3wm?%1cZTsSS zbip;|-i*aC-sMV(3EO}=#BEX^|LOEHOt&n&xtln2S@oahQ#zNu9|ys_&YkpIvS)B~ z*7wwP+|rv5XERq<>Rh>*-Y_P-c{uW|KEcD~xoS09_5PCidr0qcyiCm9a&HdI4pWt! zChnlac=4~_wFAu~TiTfOaB{-6mmoo3KBfx@<+NV*z81BT!F_ScN6_85PDr;BC>Ngy z-FPhuhbQ0_A&O0CrESx9QC~AE@w@-o7AkfGh`V-ir;xPToq3y8x^h64x~+D}##4b7Y$H$e1 zm=iO&a~gJZG&cN84;xc)%AwV-$5dw1!{k#Z zGQRg7Q4;R7=>m(ZR-|I@wZVu@SjYa#wbF5F3ep8M@RkyLs~27Nk8|}Ow-M9|rIELa z*XGi7f6QJSD0E>n;@3s{V3$0}d741Ay9eD1qhtZ=X(sJH9jmG^V{3yKjhe%^y!zP& zYx(l?QONty3baikrw(l5O%Xz^ikxVl>u?tw`C9+BZaSMf7cSuiSCk2;fYOF6tpRV#5ipP17X_h#zr4{{`2Da{W*LH$M$Kf zguKtb5zL2#FZC7G!@LaJ5O&i`#Ks;6+Gu*{_ShTIGz#!BA?tPvLc6g5Lho{7Kiuhh zSm0KUgNkA745A$<_0LORzaVaeaD+3taStHgmL3FsWJa^_nO52)x9R8>;!dw4sX^&N zYk|gkW|Dpp2GjdA`Yr}V81SIAo{{cqr?-)7%o0#^U1Czqb`XS&09e!CYp^2o0ObQD zab#yAWHtG-?R{z87As9+JM%g!1W|QLX)K4yL;JvQKo>E+jQSqL>0niFSIvn3@6TR! zV>e;pi1jYVY+Cp-Iz&!o7)f$y`p{K453JYyIx-nXKr{eg)R$8pZWH3tpVUppq)a=& z*)AazC5`A9zUgP^EW>%>>o(V)!O&XiX2VoY{$qULN8lwu4MWf{BYEI+e+V1Q!n!Tv z5EsE~TR+&DPa6inoPwDK+wWpl=D*n{f5-Q-?S6Hzz)KnyyA6xG zcpsg0fA3I4Y6=hk9xUkmo`sppOa5NJ1pyFEIO-6rR9V&}RzBoRoM6Sc&-K5yUt|@!+{i88_~Z}@Z;j5h4r+Z zvgpyFx$|37KV?k);j+kO!Q?Gz1FEHTgUu9^R}3Qjb4cUjFm{2r@j80ke6>c_wk99j zZGvCE2bO~;=#cUp@3V1V6o`_teaX2D*QlA?lS@*vXuVULVN029-dXqebJ8->9p4|& zGKh3P|LJxwfdn1fOa%>Vo!&~;lWoY5ooL(LZ{-D=hfQIw3Zkjt$f z;FaZ-AK8wSznoHE9o(cblmk~FAT@}6BNAWe<0#`M< zKBt2+U;7J=|IKRbrq-A-?WgGW31vVJ#XkL%zp8N+r2h?+oCVK*{Nb5)JQ)M!&Nr`q zr~Mf@-J$UWz+d(a7Y^NjZX*S)`}8Ag7USlXYXGxzbhc=67du2OC zEh&6A1oS-q5fQm$*3s#e;oCjA_I1X)OfYIB82XJRKP^4DmiM15T&@`XDx~-&FN9qQ1*ew9aOAUoXBj z+84D5wCtA$v=YlOH?}wOyz1tHi^R&{){xwD+8$wEhwl5xBHCJ6`78zH83$>5n`YO$ zIipvFCIVBu1T`5_#f8`4rWq88eHmqA0MJy87&jArVDwuN zOA0ZhE%s8dt|Stx)Nw4;Oj+ycqVb667wRMrcCR@G1!XzM!Ez=PuWuoV6f$;-q+Ko8 zF?JP)Fhj!l4Y1KQ)-FM6BrL{`7vZfllUm?ffc1U!jMwa0%Yh8@oq@|w+KG16%Z-<+ z^)#T~Q~2O2bPXL%o0_wkZkBEBA?NO%`BXZbw$3)LYg4@ga`{jwFf>PDIn$*CeLn^0 zU-0n(Mv%nMTnxCLM%Np!2ezoA6x{Ug=pQ|eT}h{Ld<>CMg2UB^j5f=UC|!##;oi$K z8#;9aw$id_8=-1z4GY{Fb_B=`R)jk&q`ssMcASYvAnn1pT9peWRCEnB<4Sata(;Y$%5F$d+Er8(@ZELqvH~v$tt#HbFjz&BlUpnHI6kKE5Oa;wP8|sf&w}5g<`J z%qH_H^=i0smL4p-!BOpkwg!`bP{243D%kdZ*^K)o8KHDvoi9dxX79J7lg!W{AI*?8SVBk6B^SRL#4=tT3U3;wwX7L(r^sv7U9gKjpa+jNv^sNT~XH~u-C zll!&2ib*A&9`d2RX6gN}8YhVCrF zrEEYbIKB$2nA+FuqvR;ca?bV51m++p@PMUcR~FUOh7#_CuVu>~m?kmVbi=D$G>_(xI+Bs81TY+{NNDNj7UJDcyqW60cP5{`!p~m0!!%6l0PB~p{?X`X$A?I9TglO9jBeL0#NRWT(BO6=8itFleTuG z&?|`_#GXfn4~|CAy_=jS9hKMFWBvre058@XA6%C!9UTJmGnAa^_I+39&G-(TC4bB4 z61(ei%#e_ctAqF0GsDGMlcwL)sHv+ix5>xq+?mXeqdy#(WxHcm@d)hSy#+M=_)#=8 zXyhuR?%N&Y=ze)oX_z_v(FcI|=Cb5IyiCHI zlFpQWGBTlYXM++MGB4guuwBlfdjAdJOs3P#8}`1h9J$_bGUb{8o+95OByxb2F6Y5= z$JuM?B2ICHzJ#&4yl?bS$;Zz*>obmCgMYeVS#731h{8UqeG!w(rBAZ{+qaWTkT{9$ zZiUipJ6GQyd)|08QWZvb+)c&g*LFAjOns5CX~zBTEnZ!5-@EHiS5&pR2X@Anlk^ib z-(1J7cBSL#fCliii~w=?vvv-}ec75f{b;GZU#rX7ybcfxDzk^-N~Y9~__mAwqK3DB zKA<9ur;evO4dQR`D7rXwhv$#^{(umMare!4)5x2?>&{yRxLS1M_|K=cE!e|I`(i9qn{_zL^14$Or}iVUScv%4a) zHsAExc4+dPv^~mh?eyDWd1CAgY_xivesfu=N7B!$abNE$_a}3Qx0B93AHMqo3`1Qa z3AO4`1FW5{EMJC41`)#1}gXFi>%tpUpIjO-|Z>Uj~ zKP|Tvq*vJwGH|PNi?-f${;qc}{Ya-ATIM)Tz{n-9R6Wqcx}C6#79K=)Z9o73AOJ~3 zK~(nQyBVgsy;#9!+U=bgE__GEj2PAjqM4$I*Tr@5CQ(t2SJBO7aFo zMz(W{d>_dnup|>E5Njb2#zImkk6n%6T>4wSm?qngJ|WKTV%_er@4ymj z2U(o+`#5bb%Sr>AY!pUN7qy3+(y$3PvK+}e_4%a_`Xl)Od=qGU3h3x+54Ox-)vh<} zeIE+O=9kLJb-)kvHJKT8>W;#Gn3t1_SR|j#VB`iws?zgdiJ}$4TO^4(>a*( zNQx@U7OUGGpEM#U@!f`YB)v%$+#HjR(>tTs+$2^)CzrqWQPv;Rrm_olpAT()2O`*nd=^W9Kp$~mC^df6oc28qi z^+B7JI&`Ojj(qM<44R;XhH-C9DRHJRD;%-!;`Z)seLs6h+)LrF*x7xH{ig5}af-S6 zepAq6^mo;OVp3!onV9ks>@nMjsfKR}U}&2m{qcJ)7kB01&Q^PGtO_BN7i{#*bCc_0wkC(IycW16IBF+-8hY{;{r4Xc zqWrrP^n`no<>fgs4M(UjV=lV~(_w*{z-5Vp#+fpZ#YQ+4q&OTdVejf9 z8(lt+GU^|Af4pW^x9fPh51`}Dd()Sa^v$+fEyXjY+Nhy)deDVFn9!$JH2Cadz??uy zvD%)^y!9!Z`j&3Mk*R9|?zM=+eM(K>(?|NQXB4p<_agY`%sM-TnOTwi6N1$q)dm(kVhu_CAawjz(E~ zKZB*~?*ft71Vii)D;fsk{^ADg?9SbUedOQVd9%okkap(8c^}wZObff&(?^Jw_D-pV z=1O($F4fmn#}{bmgqM8fbrac+iEIXkF&fEDQirMGEuUSm=yfHrHq;Dxlue5an{v(+ zjHJF8+#Xx*^HI;*N+*%+Ik@Sd5P>se6x?cT7@gSw7E%lmX`mIJB-Oa~5NL|ocasYL z&;L`HtyJ!>7b?A25tco~pxRApc6y|Tt71h6U5=>x3}!@)thJQ{im*Ph%(G$vI|O^- ziNts78$KlKWAnH(I2_y{e>PJMH&X`<#b~OX(7I|IG~LGY+p=K3V7-i(4^A<47YuyC z{upF1dkY0_qMZ{31I4P|I(}`P1+|B`xu!B5*zHRNGg?M~Fr+hNkhb*Y#;%_ngikojgLHc$^it;u6p=8JfJB`@1%qAB^AnG7OKOKkTe{ zQFjT5k;j@ezal`xDHv{3%}W-mizeAkG;Ayavfk}~rfAbMy1(D*#C9O?1mHj)tNig; zu@(F|(FRLNwE+n5-k%_QdWMwrn^gIxos%*VcI&!JD+5_ z$&7pI4sIa7-Pq^93wCmE9vV8_Z1F4l50B%muq@Or&%8QcgYHP5yoVC5=6wT#shYjq zJ#4%KVg{_x`eAdNaNw{$*s{Pblki@=DE7t>4PPGvZyWxL#@dAo1N=y9PHtA|XW-n# zl*;HfpYc*x^K`rTFHbdFrM;RudLDF3ev2TPKfeBq{M{2C$$8b-Bw$~@G7ZG`IXb~_ z`Zl|{1}EG;QP%lOQm^8`OMbm| z^9R^FKYv!86Q$9X|9sWy1?UXjxPFwjUr7D*HXiSdw*_Pnpx>7Eo7iLZ;&?k*j1Rw7 zf%9W7km&2sb;*-nT?>>??#gZRd5X{$$JkX(d*1Kn;x}d#$V7K|k;9S5uS$>|0%Wgi zb^hz?y7_zM?=|Ny8*@gT*G&GLHNV=W9aRdJyOS|JWWZ}ioS*|_l+@n&4t$*Zly4z_ z<8U7f!|}atX~bT_?vKi0t3{MJS}|s>`?L3LdsF11e*{lX_mlqhfUebt^tRUz`#?`# z8qt=U-Ea5Tnc?l2Eu_uSxs==48vW&XXHf>Tf4nZ67q50Sr{drUSZ(L8ZT!6|*rq!? zw$4dkWW3jixI7gB@FLdW1eI3Pj(K8i;%9SxeaQPGjjG^>uH25dClwJ!R$zYxHEK^4 zC8(|bBI02nbwP^Nh`mRHnwMg)+Ewy)rNp00`b1fOe|z-C_l%yeW=)gv)BA8=*xpoq zf^$q_;)d}Zvz;B#u)j7_fxTV9gT8@>=0Ym}>>9Q89F_k0g{kErT!7mcZ~7*DD6AV9 z{QZHiu4juudc=IxxeY?$4I8<*1x_@+44+z3Pak51+hSgvUF?HuF^{tVBf^j6fcUv@ zg3PRkF~{vfC`~;A!nnpVUICmh&<39D?Lw=~jnoG`UsbeoI|v6;r-Xhq)pL(lt%zBk zV_Whm8FlBs_Y&LK8|i2rOMpyC&O2M-3Rr?~Xg?1#Z@&#Q@z5x;a6%35bIDEM`jbJh zxhbWs+O$hEfe^{1eZv3i3ePCJkBy(gWr&$iL=?(k#&^f*1Ij_AArFy)m>@loz><5HtYMud?ry<(XmoHp`igN8k!elci0LkS@=H7StF9%Q z_P*6}_RW<5ME%+>a7zdccLAB_iG_g$W^)TK3Q*MK@c<;iSUc%LAQxk43F8()*^S;~f zVHWecrF^2ePhA5R2j<&L8k&K77gbK*t+06g?T-rKIS$pnNi&-GJ5u}9a!m$`T;K<* z(RL1QBf&n3d30H+XMa5pS=+n2*V&Yw`(Hxh*n3bh^IH+6=E=9*=an_s^5(f4L|yS=mY6_QfYQy8bVxFBlZq~o zt)_K}Pdhf=V4}K%*uU`*)`1tTlG!&zy-)k(o1B6V68i9Pu~RUtt>I+&bPEcA9EZ8CMa=4NKwXtb{bLBEQ|!|~*pG;QC^QZ89&*cRuVGa~AFx8>x3R@$ow7Bm&p zG~^<;6prDR#go%)Lx9^KgP(bw^WXoGG90(!kbGfj;I-3;@%7E4@2Pn@ty0{`W&QLt z% zO#C`;@C$7wG&kPP+bG<4cXn^$PPIWu=U`0x!5{Rco$#Sun_Hj)#;2}YxuFyGy_C~d zatwDtZW38koonSg2cUSl`lIfYJ{6yR7XgA2M-B7#mal@&uQD%(AL@?U3a7STY(RFT zHnkZvr1F)cc|gs^tfuLBsHM;+i=}Oc3~ZuSxzjYx*k5kRhUsEN>f0^?_XN+?J!+Vb z$cmzTh<)Q^qi$(PovDTlg&APldT4a|?Pe;py<-w|;XbwN$MLdc^DIMS?A7L zF7nZhS66xq`XE}vWulaSx=5LWCe@6r_O9!g{&v-Bthyp{a4=m1&%F&fom*%BOXv9GoP^pK(9olI1vdrhJ?|de~nC3DJQaQ|W4>4m4;Mtk_Zh#of+w=&VJEIw;EHZ9JHNDi40DS8ub;IICm0 zLV_v>JpYWV7;gJ1a<{A7FkV64pR;o37j`%!?=$;H0lEJe&#$(_UDGb>FP|G%_aJ+p z8h5K_U&+gV>^7lWieMELHGg8&Y3De|CAR=3+3EVFjQTwPd<}s9NE~@^ZoI* zyW$_KBGOG(?JchShkdj88QShe4ZRJ8kK|6T?U+o7)hZ3yU@y5XD8$d4@j6#+Vo3JHt#2F)SctnhDLViL zb?eJHND|eltWV2MSCvo^U*F^YKBW79alVE~%olWoznsad z*@@ZaAh7i$^Jc z_+tGT^uD*dgnrX}pPcRLS|e#m9gT;de~8z(dM!fza$Tj-4xH|(QQr&tRYIF_>|Ec` z!~W0gJ!_%~{SYnM=Fh5W|FqTqABR7(uuD%X;)!?t-du1+|FEht!P`PqV1sD>``bf} zta%;Bti!5slK)WrTG@Wjx0l~by_miVonQMrSXKUVthe31T=b8{52w?T2Nfoof_iG{i-~W%@?y}m##_Q& zB2U+A|zR7IRu+&JNf{ts=x{fj5kT!HlfR~-lnGGEi63n3Ev#8;d zh@j{+aaEWi4|Q_cr;4J;+U@S5iUluA$`&vx9Wc0T#swFnV-9g!GTs6F6sooQFoW=@H!sr`#K^|wVY{kjwyQ6jKzo`*$istR1>d*kVqS+HOL|EbC3_Ne?)OLiQ62qp&ftWMOJP}rK8~?)C#U*mYgF|GS+eK1_v7o`#g9{9N}P@ zm-VmLfM$+kd}q3SHEN&@y^_xV1vuUC1g*MS+XQ!}%!63@o_SkDuk3!hlV}U#CnVy% zd4Z8qjb3Nb4(_n8KD!6`M%^d@K zWdm|;wXVH1Lxic7@AcpIm&F;ox|*hN=T?a42o zMoUyadXBv1(#vjx4~gf{0837vPva^Mw-eZNyi805MuiZEy_)v!*c)YZ4Bb1pI|2Tp z_Apgy%Wz1&@vRQ20KIid0ostYQ`pbJ)P#z_aOG^O>P zVmB=bUc1xl8~z5zYx1_UN}9$;;`Vzp3*g0$7fBo3p1whK+3X`{{FPSPh#4^S1RHN1 z|DHj13TNHgV8uzkVIaF)x!t>UTKd)JiSMvo z1%;aFN4ugy!?v^Axi!&4SFtg`0i_dy8_M{S$>U4 zN3w8Aya6n`svf2WIMEhrxjJ4s9UnS>ahtjnF0qxf@|ocqPno2EE8;rh*2_0)mRTYqX4%W8QBpS4wrd+@clMg$V4$)SOV30Bmymr zRI_r)*)&wCB3c1L@U&l;!2kJq8`~6LN1c*JJ)5B~@S4v3J7%5RSqrG%x?8dx=tcJ} zz~H?|Hemot1xZkgnb7Uvz-%(*%_G^)M$_=Fn!{SaCGmu3p@L?H8*p|&2tTIS!Ov&Z z8PK+3hweQhAGl|P=`|g7^8`1-^F<_RHJCN-OShd0rEiZ(XF4}}48GF4Gj4m>J#_D} zA9me8s1C2Rn-<&4S=O)``Zl9Exn zs^oA*b@uewUe0x%6>M@DNBZ;oe(t?6nZJ9q|D9!nMK51jgS+M zyIIdx`+(g+L*O*Gz9yw*z@B30!|iSy?k)DOQ$nvcWWRQ;jlGr_`2RRzKS%xNGdazB9Zh$eA<=+`&$qe@80%%{uyzo$jytdH8PNmhTn zMS=ATf}XN6mycGlcLxP+6kK|<|Eo~8gwj2&e)+7mUqtkwxa7Wy{%tjV;5qWXB6aSr ze%AT9j=I2le{9LBugWNC+qs3SCCQhK|9P~x_8+dKZMA&0?(o*`4|Vek_tgV$U9C~u z>m6Qu_{Z#)ZS!?%No2O%jie8KPXg~(3x7L_CGec=&-Ksy$E3mP7PwxsNH?mh`0!A7 z$0u(-gLWfRB-&t!=WQHRM=(Yp6Ytz@hQNmP8vC%5fHq`KiV0LJTE+P|K=V-jC~gL?4!EhB ze8U?%Q@K$uFh73WyB))`7ms~0SSuONKMF+TQ>G;I@NjBsBK&-U3DT*9Ksfxj^14Wj zw=s-F+b8?(Vg?xrW^5=sFDB>H5#*sm@@W+~Yy44k%jZe7YW;5dYVEv4$j9 z==S(a?o>11pB|iqBYJ^r=Xf?cqQm&@CG48fWdFXV-k0Xbh8-6(qmDtyzGR<%I(Nmr z8FJ@l!&?YMfqwz7Mb5&YS@>Ec^-J**CR5+Wt;NO_`S|*KH(_tTqEmm_w#-C@0yF%fe@s|lITq}>;DpRvP27(WBz4g(z;>kQH zUgZK*$_YQ8Qak(G4S+0aO*Xq-ck#J65;r>IDodK?$ium5)SNf@>4esaCWFzhdWm&N zus3dGLAc!C{ViDLPgkc$Dmr#ubJvXdz#;mrkK9o9V@@wel_VV>mT8h> zL{Y~)yPuUNV?2kG4fWXSBQ-RR#rw!3fXs7C0viZ1>%7iBn*NK6|MT+!?p$eC*IHdD zr+zw0Rz)VXGU=t^9-Ad)o`Q6WLS-$X1d9^OIP2{l0+=Oejh9R94lhZMte7so8CNbE zH{F11(z*2?CYnh}pmfcGJtod*>yC^--HW@u;hHCU`Qfl}@9!mNtr?6rjH}5xdd0hi z(8nB6ezlt@LZF#phDPo)uq>1}v(rNC5#JlVjWgS&arvg?wbqE-vor6uU2Pt@+Ql-g=k{{N&~K7 zr#nVHN|nh7=7h&d@TP2kE4!YIW@XOZ8TvbSMw*_zBlo-3Q@lv+XRjM_^x!n*witK8 zvoi>Y{R?kyR?uG!-&Q+NBj@$qn$^+OblCT1Q_sGBn;T<79X+|+BIVX1?4yQ*N!AGI z)0kN5#xDRS_t90o?}2O8iyM?#9q%zvw`L-I5zS(|J6pgBfr9|Zt^yH;7Y~>ax#$n` zoeDf_hrk#@d>@T;+r+>mu~;`_GnJiigekk<{BX$y10X$@BI3ZQ&Oog{Gb1H|$PjtH9UI7CH{|n}~!bBf5A$v@=q)Z$JWDxuwul7pyTvpZ$oL z*nOi6x;ZteVUx5STzIZ;g2B<6CBR9pJ{b)iHDjLb;El~AwASQgkscMk)UasQsP~sO zjua3#HwK_j$Sg0qJvsSbIyKOzcv%v!aU-Zk-zxbj&UMlBLU&plEK^l88FcN|YWQQe zqcT^M(*(l+v_flGT`a=PQkG~X4xEcK!S61lRrBk~(sk1uTeA8BF4gNSTxT;;BmOck zqAQ2VPAcz%oNd?ioUqqv^a7Av7`%;xS8p|MY1w9Y^P?#oHS^-10%5~iL&v!Su1k2_ z1UJJByRL1GN^^WM2TkjHqpd_H`0b}}nRPKj&dY1_b=gI5b2a!!UfgQvf9bT;H-EKi zh1o0QvO#lmMQd-h*iP>X?dL5T08vUFx8Xs^a9IyQb3~0j$P04sbq!b-RLsi~HXB!0Aa8<0+%3A!)T>tUt|hJSz3@@>hqNv| zm*K!hn}*aD0wTA^@m_3YV1HaD=Ff?W3|(qw>`%P+$DybVE632&avk?BjkKZmVeM|+ zMqo=M@SJzd3eCZ6W@sDyFYdE^{bX>-wAAJG6b)Xll%j}H_NVU4j#{8E@Y2kx&?gQ@ zT>9aJW`P0#aVz>>SJ*A>Wf11@U?+p4Pte!JByFWi*#Ljs84BD2RNnOEQH z<}pbO9KD7_wl^R8$LG=Feu9mab8aT;581g^R;>CpN;tDK4(Wm>SJRR~JVg|m4Cgr0 zShQMh)?u50%(pyt^RJjq5AS#DORz-<=w*h3Wp2H0x5F)|;q^yI3z#y39C!w|)vFy& zM-=ewn_5|mVb%}I)niLNpGv%;SgS!>MV$>d7FV&*UhE6HeE~6KoBTgY>;97>SSRch z40lMmp5=-Hk5+~NSwN=0rU=4Dw!jP{VlJ-${Y`0B5WZb}brIo;8%n@ac!SvK5W%yu)g z;1!-8+GdJccixw#)z?M)-W;-e^xXZzI;C6ZGFEWNRrve%f|~X1KD?%kTkvZ|?Q_mR zXobu=gdH3DuA*4mP~)X?S~)+AFSfb7BYmd3dw3~)I*|GI2sHVLlO1oy!^4;3sN^4w zW-h-vP)nYBGtE94Q?%ytu1_51p4F8w-5Zo$P@Lr2=H9-nn>pCDI2R6Z3I=QAjc5Mj zI09#zTR2i^l7)DXN=F;mnM7nj9Sh2*hISGB8ff`K8{p3`T@71&NZSlS@pXJM9AT{A48;ZLjJXN`SY`&Nj zAc-kfopW(0{=jS2>C=e`>b$A{knqG?eSS|{$4`l+Lipi!a``ssL0;5AN2E0fO7Ju% z5H8z1LjJTKm7p=Th<85 zQT|wm%iyf5@n%LFjex@qI~|_wDh(;lh&8_(4zh*l!CEYhaXr-HR_TQwRbnBAuW5;9$;%+%@eXvvy^ul5b~l z82q}G+<+1-c5BQzpfk7twOYekj2f+Uh<#_yVf_T`zFn9LY}dSS2PPrAoi}XjXyW-H zcqtL*V6c8j@J4HMM!-2!FSuDGX?Kp(QsN(pYqE8NxEPNqV$7=#ozBYrdp_FJlCLx| z#1W-ANaBSY;j!0=<2GM~(D5>EC%x6dh26F&+}a%+Xhi#FZwHHP7h5R=L5~+`<(UVp z+BRT2xYH4hE{?96h;PRx=hKY+84{z5V!N#F8L@PtP2C*Kd2{cigdn$f$bnDBEW`Y{ zq2%S5VawGGw^WE7b#0Nw>KoX?JVC1tgoaZzT3U4-N$u@Oid`tX*`*rWJD~%_($&kj zpY-1K%DHZe2#(VA!?EE>>*_uJ>J*}jO>M5X^b;$`HG>A&x##)ay0Bmwr8918*dFK9 zG@O@JI(Ngsgv)$eE$x7=lf{%(8OkVaS4h1x&prqh@;G!AY7Z@3w(O>bJwXvWvCUs#$*{8EBo^Ug5RtL34a%9$XIJ%lW6VSV zJ+m=8856jdnW|Z-u1e*ur+a*8LhMYBu|qg%BtbynAjWW-eY7ynuAO1I$q45Tl>JTj z*kDPG5%4W)@PPk^|9(5do9{a|v3PEDOQ^4>5r-jD&xi+;TSp_M$y!gL=qbLNDr9Rw zqHHz;wK&cqltudoL@9?28Nc)`?=0N8ehpV( zSQAGKoU_LDs6ignSpGNz8E+BI8c%)(re>=2ihtO`b*JJLY)?`56TsN5or5a?uy5!! zi8R-ar2fJb!>~$Fpy#0`U7e$DD%@1LgIV-_v*|a z@8}|$eQEb2AD}^Rp*7xs6Bn3Ua2tX`07$CnwbSn%r4VOTopX-sLOCvr{uzY3i)=DR2c4q!pZk?Z;sqbZ5G}>p;FO>r^Hul{NV9HLiYNsDEvs!`5_8yINf4D@aI;TE3Ti^Ht>;4IWz zf-E~1m-S4&sx1!UM#EWg#R(Z5@`zp{0*GZ%9a z&j%+&r_o~P63Z}6yX%YpOpCJiu=yv>)~cWQCLMnGwdu@+wZ8b!0)T5igCeNe|0 zKisSzwa2ed*JZpGBiunHH;Oo?C>MX?_0+ZRC_zYof4JO*#lOFds*^Isj)KG2arRIz z*^%RAJ17Zj9mSLQGXVfCb2_OH?#um!)_Jsx*h#nW#nfDqp}yQKP|nS{l~Zz9hT5uw zWvE)wm}}|RSrEo6Y}7_Uo{x>xN7rPAw#i&U1*AW=c*f?3SbZ}@-vBVvk|l|&0* z!#;GUI9Ky_x-`00qS1AsE-?d03aEV!k=dD-VVLLIut_#*kss*OZiI}}&9QKXYd_io z8;8U|aUKS#KK&YNy)?pHu#$QXe z%(r)2+I`rB;w2Te7N!t&)#2dpvjb*OgYNgwqZ}!#2xbB@v%bcrG^9`gY%Ta+^H6fRr zRk<2JHCsKwL7pwc=U!0hga}c6Ts!ts*HD8r?Ub+E?An-GWE)31cCDlO+|rlrPavIO zj>}G$!ISJ4k~`ADL;Fmy%j6gCXlBGd2okg~`<;no)KC14Gq3l@8QMlBL*1ME8flH$ zhd*c2F-x~V!jSTd^%*4AtWIHtLFG?gV;KRKRjb z|F?a)4Dr&5m|yp`ogtnTINxh6`ll_0m)O?qSpy-FT_D3nH}bnNMC+X_<7;>f8r=}j z*@z5{m*phBk;8cACSoJlQIQE3Pfnk)WL%4Am{l+rUt*9E>Sm0smwVy+!kk6hRA=Kdy zHYZPom;)I7spqoev%nt_q7l}t-)c<`943O|tZdtUJxpu;)wzk4b|NEAY*i$)6@{R3 zwrb)E#O^RG_Px?A*;b^pNZ)qBVUC_1Kvyhc0|4XCtF1x^=Zct>IR@OmDShdx_gc*Z zo=&*722UyuM6WYo!`khW@gQby_7%C)DY0SGqY26f)q_&bvhoe`*{I2&GlPq@(>!qt z+Fj#O&kn&ypIoFgX`72q_&FiL5H5q{O3cp}hUmg)pft}KS`+AAbQ_h4|IZ-MGc;pV z8nG8uH@@l9WSI@yfuu)ueOgwnReT1CLBifwn`CHfJ@Zq&qbE_1qkh1`if3}n;?kiT zx<-pvylc6*xUt?qO?Hfs8D=&jNkueX0ybPSOn-qEY+XA-Cl-NK7Mq?wTem~jwDsZ6 z`lh&r&*NOn$c14W^wiiF%(qi+O{Vv?QGzZ4KPp&)egQf{uw9Vj!M6=JuGW5wrxp&o z(}avA!C#m&Lf(VxmFR9a)|&oaeAx*;UqnP?eyc&WlwB0H82`r>So}F7bE>`LCI5cU z-tU+DJy4wkL zYT*{RhbU|FuK4mx(s=?oYsZD_(e;2?^5$+B`aVjNiuOh1v_-!Ns}pfaKUVi4yUn0U z>x1=CU45GTn0+ICUs>L4EZtN=`_%i79<6WAJ$}Jr8^)b;0t#5rUQ|p&5RG_h+W|C> zU`x**5eH;#qY@!TxZG`+I=8rR)47&Ei9 zNYT5&WPWJp=uR&1t03zGg6e2af9LeIknP4xCe zmc=-aI*}SH76+{s z**>YEd`K>*RP%E%m%`n2B9uf!*Hh42OveINki)Sb{b{|0C1Q0azQS9_gqj2F(>#8nBZFOa?1Ylh1SeL6dlf=tBsv(>pV#VD8-t*Y*ds zrm(c_)yvh_exIa)XTZm4L-9gct}d(Fu;Bl7^&8+!Pov2;*s?AavuW*Oav2K(VYsrI z63SHp3ekz)6a81b5cV=qD=;DmN_6Eo%C~fMLjf(e&BPIPLKf5;Xti3h@4<$ z+|aDmh5`6C5bdBNPd|Nv^@za3BAYXjjmI>hi}~}U3=13#*0xpvj=JC65>pgo{Ye!O zatDWF93^jRw){=~=D>3&EUIZ%3k-~G*?IFoN2r1UoovnOos%*38z!<0xOa97Yg6WS zID~pEXW~XhBAtqAy#AHp4^~Uqj36+ffKxrf)Q%72VF)#&Sw4HE`!;q}rr& zpPFv_G_Jd%FCD7)z&ZQN_bW{XTjvIG+>PV#T#UjT9ZkAgCr6Lr>$)^qH>c)BOq=$i zL0>#^=X3$a9Ew7aRnhvUdpq7R9)Y<%wgY#(dU)RKdLi>l=HrHo@)z$DsSgd1<}Rai z1IX{lAsik^xlF4sCrnL;3_U=>Z^>3&)YoJPe_VWW>ThnngAV7^tfM-YG#8ONyv5O6@)jj@v zFst&ec{i%N(X%bptG6XEsMC0Qfu~Q%oUxkD<7pROM+ad%ox?&b1$BZ!bFX3*F39tSorQ4W5$)K>K+~4VjT5Y z4Cbf|K%uZHS8XGx(&`$TKLchr`YjRTZWeoP zil_+-7ie|m^)xb4Hn`4=Ad3$e6h5yyX*VhHCNMN?f}=Vc?Uj3N&g;H3 zEcfv_npHEdcm>kZ@nGXU+pbuQTWo66?5z=@mZKTSyFC^gCUIff8mXPb-B1es-6b%0 zN})UUl2I$r2EXty_El4t`&HZz?uPKA=@Hu3?Gl;(D-%9QZ3wIWt48e&q-ku6R=K;_KbFhcaXzz?8T^5Ep$(d zy8c{iBbdOxgNAAQ^KdeN<(!ccGjchZ9s@tgdE_(`wjAz)t)^(cD9`R{$Bo3K|L09D zYpI)vqnYJW59%*df}G*DJPeuPtZLn>#n7l9^0sJ+et*RWccTzXPQr z7{ia*!&iRwv%kF_s3JAbOmlCXy_I)r$Bi_*9gS|xDW@0(8ZYe&=|(2|3Y(!_47Jw6 zX-!}1^S5C7?7mr^`7`e)4qUP7*WK5`s2@h7ovG$D*V;^Ki+0p}H3CyAboUV% z9lP1@q4Z&%*dp1oEK~h0?WPa4X|`s9?jZ&_Bqr`uU1(PK`?MvUM_0>igl=~q*{K5j z2T1nEtno00kLSJ)AK56h-dDoq>mRuh{Y{omwKMj)si?sA>+MQSfObz0YT(^_#Zp3G0=m$mIS779tmhKXvsjb}LNQ z;N#jNI|AY-ZbA{w%iD$XJu;~1x>oFAKjonn0{j!5WxsYkSs7If4p1LG$40c)g*O;~ zeaju5QYkqm}ys-v9Je)SI_1;_^ zq)po&a?zfHc;)-fDADrrVsAGud&6e~h1uI?bW3Rd!nj*<5gOgIz0wG_)UsR5`#u`@ z4iS91zrTYw-hz;PoMvlkgJdsUT=2m1KYp!z8@NxCxER90=KLaaNq5o_bC7kvYIT&} z&e;9J`u?HUPgazOLi15$Yc3tHj{C(bIyZODj2!Oy`0-7{CoydWa1zb+P$yrlg+3`p zczL^D#P=&Ca4zhRU(ID8Ws4qz@Lj*oSztcb?eOoumf4HBz?(VZ&=>IEX8YG|`n)XQ zp9T$L)ESMdqW}Aj+X&tI`qrt~8w~EFyPAaIoZW%+;E_Dhj_ga74 zraVpH^vR5D8MOBolQcJZE6FPS zKiPi&5S$(?v5*!DCpK1mx$(sGA;V;;&^`kI03ZNKL_t&(Nn;COZ{u4zMe7E)aCdf> z`gX2Nx~W!UCwyr`(lu4$-2oM3j4z+9~l>EA~hNoRny!BEpBPd(wxUqdA@VVsT?3&p((3gY^$RpRAz6C z4Xl%{m<+P?&V==XTz*@Epud@ASbd_LgBqFM6=Nr#wpCNjyIKx%Mn)J6_97VUx3%35 zhFh@rKnw7yvD@_vfHBBNz1&QBlPgX3Z!4mv^g6qEve7KIKap~~^JxQ4)5|IFkg}L; zh{0nj-SrEUouNz^_HLVw)T4ceRZddNTwrZtlUO@2PqtS5bpnzgkNKA+ zmH^lqs9MwV%(fJdWqrORU|fD>#1&5$Q>Rs|484WKah65iOeq(q9e(2S@_9H+x%d4i zFhU3Dr)XpEB|=ekHBm5l*z}F!U+FsS(M2-ls?m_pb5dT|>s&#&x8*{-qdlxClK&ZeliyN7S%;pA89u~W^yR9B^f$7_gJ3MhGAH*1q zn+lZhWkX;S|G@cd48Sxj(sA9F<}y{){7Ok3XII56lN@c^x7UTM!PNy01~2iCX_RPE zAj$Bk8%y5X5J@Bf^S1dFhkAijw3xqJ1}g9KQr4*e(%$IVs39E`+dh~y(VZ4oAMfx= z@c+PSTDR86Agez;PUaM3rysI*G~Op;>CQnn)nuDDY~2JC|M5UX7p}(6w9rymub?$f zcMWvWRNtd`u@-uiK}ti1if_y0ck)72qlRe#^&>dQcAkd|GBtKBHOAqdB^A z{wX&l?VmE+r`|LuZ*iBo15|cSwdC^`i#o(vS??w0W8Z3GU@FiS)8p(4`m8K03D)v< zUe1jylig_?<1Ko7t_P2)Au(qMqP7(VyDW6L%f!kG+2{UQE``Qq)!+E3gE)n>YiYhM z<;|#KXX>af*0>nj;q#)yslnPbq1+1~&;&gn%8v=utsA}v`lt-ntq2%8WFe-<>3No1 ztMyWEsMfEMmy(+W2F6TR68wL7`{7qCbUc%^-NLFMADg7U={1m*cG1ITG1sL26Cn>Q zZyvBM_e%U7DFbnIQ#d`vd~S$wA7YZ*zld`=IZQtLUSZg}Fv?SP=F|a7@fMDL= z@E(V^q=6UPwFWGy7OkPVZZxB9>`$F_`y34!I^J)kM5+;oK@7}U-GhL+oE3_oI?W`qV!Q(OlA0OKfbyLQ%^ z#o9O@%6ENZj6i~WaItUZFV}y8#2rcjZW3yGOG%Hh1llTAu^IP*~dspxsbzfRJ&H1QW zXj&I@nQcpkVOGwo`N01WoOWx$tAWVzt6Om`L5Z)oh39T{3f(p|fgof2;#BD?7*a<8 z%Nc>&+fMym^lq5m+438L5m1bm+6PIlA98o!WLp)aR(rMdso3`O`KKpzyZHOF=Zg1B z5OJ^i?X7#eZxY=@*+3OV2TwRvdPyXP9HH4-Q}ya>k+Zq$hb}zB!`*2pt;*S$g;yND z+xhR1WjEl(!jS)kwLVP|oAQtQT7TaWlGF2VyZA#ZNwT?X7Ve6b1#-E+tHV;Bw^i&j z^s{NQ1!75r)c4M?=97tQA??+BiJ~v@JTA>%I2FBB*p0%oY>o29mi9+B2voaVq{XhC zPWK>~)P*jxxq3}|jL`Sj-A7AJOg+9lQ6s;2z6n|taa|40qw{LJ4z3zs72XXc3a zFEwYOH<^ZB-<%ku=PDlQamhM)Y`zfl$F!P6ZP56S>g2QIVrnn9kQsgT(R=26bRBg* zd|ST9h)6T#B!!QTeh>W|vjh6;F-jajMFAU|TZ;7`o zclZ)G-kG4)Le4KsgcfGR5gxOP0$ztfWhg;Bgaf7=tT$Q$nVRp>*Ll zPIG#__Xnwcnzow!&7t#qUi%e%I~r8~_qVgEt5?(G_^ zR2|$_-wimPPwhEuyAz6SIB5eMYY1pEPdV6t@qNXNP121rG8k_L^bwpzrO&A zE7y$-LWk1lA)cR&l-`gNK}VL^6f%L{G;_0EprWYK%81ii%ajWG0GiTg?vEDR z`rPq_Po4QS_Oh9oJQBE^ZWhYnuK>ChwMAp@Ewm;0)V*7%uL+1qN$0yNTUMz{huw;KC;cT84KW zTK!`;Y3w}Al^-O=)V}-k1MP`7R?Wj~i^J7g;2xNImvoz*){k0dSG$i5Au*+C3&It_ zUJk~p^L2NMA!XFM_v(6{kpIzqq$yc@Q}JYjS?>$CGIWAtQ(v4uOjkm?^F6!5B_ohe z=zX&zRe#4@Z4$@gyKD3mXBy0ItR>#g(K!aC=68Dbq-7npBO`8T&O-q)eAA!yWcd4V z1eL{}=*!4#F2Q2KDHgE3@79&P7!^=ss_Zw2tvAbtvj<$;^{L&Dv%O#4`L$?Y%Lxj@ z36AfcH6r&mS2z1{V=w2c2a>j$Gh;Yh&Sdn5*MD{rePZ6dEtVyn`aUc!7%E?w84{e7 zULsq-TbUZBC&%scG6JOQX1iKD<0&|4a9)^`x7w-9@$IcvCY^oN>r7hEj0X zeVKfGOB1;WNFS@IsV|;u*gCVslcUi{!}W5{-#Sc!H7{?5CX%$asK@2WN-yu6HQbe$ zy$9db(&=^ELJR-@1i{IYWl4e{RGszeoyRxZ;A3QDRb|lv-E3IVCGZP;082KAw6H>i z|KU&AK~+~~hDW%&nLT^+yYoD$a?a4Z1jsQ5qa1&(d)bdexfsz@)px|+YnM)r+jYjY zF(s`5h&KtUp&`y?Fl8wm=)7`BuhCJR{$4Z;DF5G%hm1_i}RXyr(zF&q%Ny2~6(MUu#CL2XW<Ol?mjK=pu9CT z=0ljNaKi?PRHSU3b)UuE8!7Mc`hWTQ3L*N{u*BCl(8i;)SbZpbSJiLq-9K?EGrLDX ze}Ch{^Ix^*gNiQxB~8R-F{B;sadiKT?%g@~WFxIg8svVojMMoyY0}`G?bpKG9~Al3 z`zH;#Qkokd<*AFSj3`q_R@WAF)5!G0dO zZC&G?iL#FS&F!(vn>ko^=GLy>j?&1Yk=2wjaJs+B-rUoxlMQFX=q@wc(BixIWb}NfL{I4B`*9)8 z2v_*WfLrB`Bh|!-v}n=t#<{No6Ojk?vpN&vE$ln#o1~tUV3P1 zj|M#Q(g{ERM8~Bas(bQK68FdbY`gQ%G>B}^M3-0UKeVEzwV&^FkJT4<*q$G*mE36a zTiSkn)ZE&5Z_OpVKYy7HR&rnN7EY_qv_oBD7+j?e)RXfMEtiQ?z#arYT}np802_uM zfm~k(`*XLRQ%vQ3_L#Ic%WwGY2)gr^dDTrSku1=gD<@e^6oS<(wKhYk))V|Rx9!J! zD<^pei;I@R_Cc++fKI=!DruWV{`7I(pJN%rk}tic(CF8+(w34FTm87xKMirEg+|lX zx)GsNlupC}QFz;P8wM4?wt2Ne$wy`6;>di$Zlg0eD$2 zxTjLf*SfiBcsS(tdVTK=-^^nf`Ipi(=V0=Vw>9xn_HK^$S#|9j`UjPIf!1D~y7wmZF>c zt%(^f#wVnD-~39+m`{HF51@-`*bmM23GujhBXVJ%dW1LY!MBP_A%bzzJL8~DgW*@r zR@s4Glej-xoWxy$mM< zIr_h)XFG3COJ)`QD|KS0CM+ap(|Z^~b1IwQg)EOP z_*iX|r;1wAoqjPJ5iRcfOY!(Q1y0d%#qH4Kbo{DGZ+HeKdUhh=a&Cpr-(IbxeJ`ix zI{tb(r;qa%EXE_$lO9b<8+F*XeV>n^XEutavNIjEVYc6*`{eG_dED5N^&5Op{j?ri zurSIJc!YJvxIoF;a%an`x(%EWbMeXCC!kM z*k%yAe)o;9A(zo6|*4Rkm zZ|qj;a&Jkts>Y>R0iKOG3Q4tZ%r1kV**u&5Z!nznY+iLMqs?MxSWV?@t?_-ivVr2I zsn=f!)><3un|ovHlU4b9J}$*@JY67Hv#~VROnq%<2Fw2@(_K6;ne^ji zfoo^!u|dqK<1okNO3yCuuRWE|qYnivr@nV{UG3W+a>LeITmBNJX=ZlzYNK@7S8&l& zBtS~4?%hPzh%V^o@aWfl7a<*3z`Cj4w>Aa+;E*drF);XxH}`b5-j?oMW4Nyb|7f&0 zvv+H=)RY@_X9w3@)AA|r{=-8>T>JLcHtl~s3KbRx7&mXH-8h>|(7?(qip_vSwO;lm zPi?my&D8{+Mj+>XZyNZpSU5E{>Q5z8`Krb0WTl|8r+)c^s&4Kr+PT6NoHYJYl$I1$ zv6YVn+X0YR02ctvKWqcDbWAWe3{kel0xp6Bnt(oVy?g^;L4Y5OB*qjYsd=n5S*fiMb?ygH53uo`cVN zx9RY>8Kqjvk-5nLdi_YhwF)vmtzF@C(^7wQS-S!&1K_e*mYQ>&&1KBsuMa)0bM$E4 zEIO*hB>HgCPSjw2*(et_?pqXyaz1WABfG6Cv`e(e^}D!9V^__{J)Oekl+tGDCu3!~ zZKkUAd@-*@kiARg4%K#BP++MEoblgjeW4|BoF3H0&|MvR4N9$@X4C@;N96ncy5E#= zx(6;-dWV?^M;n|f&SDMG@L+`oJTPJ6guD{T4F3dXXQPnRiNnui8z zR*rPH$>CISlRc^u5EqUVr)X*QW{{lj-x=wcmq}p8RIF7@wW~|>_OTRB^&IpW##*X%WHRo3| zHw&OC0f+3elz+PM`E+AJ^Tqno9H9 zQ&!P# zPl)$^=^m;4xmY*9dsmc}IVr4vqiHg7&v_iPi{=APfaoZFlGN&6Nr>7aVK z`~;ZvHWjcFTr>D^%*!YpiVYu;>GwvsnqCN6(wSViuGOSOAVgGS-$GI z-=PTL2+Qqh3_?QY;rR9!Tzd~X4j-J0s!plMnE3$56@I=Q8*(+zt92&JLVpUG4{y}4 zz8LjdpN{7K$1ppMAu#Q9JUjLH(vG=iIf(U58^W?*-CZs($u`{&|KRuL9CTGIm-KGb zf3~uSc?EE$PA*8M4ZF!Fo&Igmv!#Rbw$W;Hg|w0VC23N-HfBCr4zG$##Z!U{xNfNS zBf-~qGHITEu3N)gNw~I+%7xaPzSb80(Gn*3hj(te2LON%vaGLTWt*C-&(rLJ(*EU} z0E>*jSxbESC_T8E7rbx(mQW&$L_#128P|huR7?R9PVIU0)!c`ugT)_Hh{5k}r-9nj zD*+pLi!MI#O)!R=b;N>k2u(|Z(XKRp9<3F1HZk1$*b~9ue%u{a@{{u8*#=*S*r_M% z{_=9atv31#{b2r#meqY1FqW`)C+AJGXZNffo_+5j*N2Hu&P`N1>s~&#vopVDnQAKh z&)mqzV!q2vuGZZ9l7Ih^;9>995cJaY-TC&TpFS$@WX@L22mc&QX?f0Z zK2UGT_z>aI%KntMSMwhpaeTTqU#xZF(&s}5TBe&J(%_W=1+L~r+$R0*P%i^NiEn)@ z2aUKApvfJ&`HWwH8M*T=srvKNMeCl8sIBDgiA;>>^Hi_i3v+z6W_YGiF)C|HYzo^F z!P7mb^)->6dE;`ZP*bcI*^OrHXlL_n;b^D*h4QhECMzcR`7=4IC%0wCC-oHS%(yXW zjwQVwRkBgGmFZK{(_f(zs8(X6taWwRmUd;TGX;&G;fUTQ18yFIpF z&oG~^c8kP@3xN6+lqK!wze9TxI~>k$0sf!<^fJ@)UDNa{wqQ1dA-hTACMh8Pay zLW}{z`ZQ=gN$dn$%6lMvf zU#sa}i05KTb3lxPrv>~LD(f^_Lhn@F`iVm$Q8)X}#Q4y!7@o<{F#&Epvw8pgKHG-* z*;@8@^8BZCu(}SS+Fn>WIeFZkrE}5x`;m&_e5b9WYuvk&7Mq`Rvdr!i^l|algkxEv zqHUrd_m5m9MA|7wUx$xo3+Ay+3)#~3Nt9jA}6QNFT6ufKj9fzu_9nj^?Qrmz6 zT%XXNMl6t_F)_07L@N24P9zz=8Ifu9=u$qKPOI$hwwzVjxwr!k1@^{CBB}+<;l~Ef zVSGi^{I-^z%N@k47dT@CK7msl&(K5@VZ$v^h8ph__S3!+Cd6R&)Lj*B14j}1Usx#` zMiD(b$3J>G&P#+Uu$*gdz!KWNDoNdg<~{&D2nkxAZ3}RHQv;hdak|%8pBQs^&21U9 zAtwE~4iwfNmuR8txP1>i!|}SiTU)iOJ@r((dL0IefF%Hd4RWY4!yKpK(wdOt4uh1; zBJviRSA?{Oyq}LjCB^|Z;;c9gKw81PpeYpgNm$ExRCm*+O|;pdNez(km2&u{)*{xXjl%XS8$IwM81<)IHVjb}@wV!9Y-JCZi2) zumSxLTYDYzo|%f+jW;eyw7v@YA}&BqJ#Jvnr5!(H&6L19@@9`${>AOA+BIggUVy0x zz?Rr8tiXJ!FP6EQUb%Ts%XegH5)2taEtH&2*86lTBL{4+W?6|cnFl1;q8-jbMhfeE zc>@WjgQY|JYJ-b)l;t)vX7+A1{v*8MEoXH%^r37~P}9bveh;e-dadX)U_#(DKp2Mh zBVP1pl5`_Lb>$374~w|!)lz*=9a@=fe%T0^N*9%pUD_z7ug7U5E+$M|++p47nS0M` zi8H67Q#XzJlTWPCsv}4RDGd7SfMe>UQt&X!WT zX2SMumtlZP2P>{4t)CGGYoqB}ZpWdek1SjaJfR>C_cok4)-s3jj(|y)cd|p<$v%&P z_8@h+!t`%#<5D!(DWcP>AUZ zskCBbP9NQ-KJ4DdNBLb=;!-IOGwwG-YHlJ&E8aC(yrY@@Vr$8%UMUKpk(rgFMKtr` zs+}K=CciC#`F2W6_z{{o!Cg@F1g4h{`qR(9MrroFpDQ8shabRVT3BV}`Z@xmZf~~F z%B;64uh4#PRJ4_~YJw^}(6XTT1Nc^6Z-wt;G1x#3GZ%IU%Ibb<*9wU<~16IE9O`7#im!{LGB!7RU8NHcUp3 z&m#8_QaxD2gMs^N!l?}}G3rG3ark)O^bgt5vq>(77UZru9IZ0T=|mCK0VFWAZ~@!P~X>G7(ASBAnpd8bD&N`cf=pT&Ux#=X};AM4L z%}wTQ<^WMZuD{m)5>0*v&(Z9G@lJ?o#bSsy{qJVubdSG@8Mp|>8h#wTQfOK?f9>(` z(AqooR~Q%OXMFD*h}6)_9k<^BFJ-%pk7pfM0E27yc6r3;u~3HtH@tiY@#?f0O%PpP z=0Y>zS$q@oGtc93Q|}5?rO)lB0dQ;a^PC!A`thwY7XT5nILo1acTLTH>yyfP+?*q4 z{SX%_7H0VJ)K+R`dv`enhx_-B)guskW;w%L)70V~PY$07OvjxgjhWp+(suqu%XB5v zK^Hr)_2gj@Zbs_(dZy?=;+uvSgo(NMITm=CcPvf+xYV$`(Yn|CKwE^({MHsu8wNcU zf3`MDrc&#(*U(v9Ly1auMn$?Cv0-f{n>s5tpD&l6hU zx?T0_k+Fv=r(BNQ`{l73R=*qjx2`rGY5lUe#aCI_@R1>7)Hxc%1`FQQ!;w%#8q`)X zk~Y({BK{`bMb;9o^|Qmww&=Ykxmd$8E8?SBP|lR|1X6C&TkUa;-~Ee;ngl@R9XlGp zTsG!}Y*9_rl)Ig3{;D?Z49^25sGQ4gw5_^!@586~7H(!a3P+#1CVoo;wmiTbZtA2@ z7e+z8gGH%`a$D!!CwICJG;}{kkYwJlIf568mdvlLE|C#4`7ng1F?*c5UhU{FPM@b| zGko}@zuHI}V)8NAYvW%WrMYg8luA9iw0GWo4tCBDKeBTz>V~;#M$Oq|wMOt7SF&9K zM^5*Al&%J%uG4QD4fU{*D>+X?U?Y`R5&l2^b5ymSHki#U8JeQ8_Yjt{*dnJRZp(n~ z`)ZI{H}%3!?b{KW_n>FX zb{^X1Q3BrboM0Iq>q$e~e}ur(#%;&@;Zla>>hX zf8V;l{_YvDw!oAx8^zqL--c>JFgV{Oc%B>kRseBu3;;&6&4;l%XNrAl(3|e~QrXEZ zL+ojcb|Zc3XTo~a#^{P}Etlcq9|J7hYb?U=p>$Xo?=wW({Cy^#ZnMDwbf|g1Chi0( z2D)HKFGmyb+kLAk#nZro^6WP0lRDji&{uY!psk$a(W@r^)gmhwY5uI|h*)`Jc(5ws zsXgH9d=7rt4QMQM|HVCSZzcv6Lvg13ZvKc2v{bd$td7`wSd|{={NA zI_#2647E(}&&IYc1eV>iFJ0u={BoWB-JP2T>Pv?h$zbrsnIT~619H{n)*+>P*+4gx z*9PInyik0L{fcX6;8WlMO2axCZ7ktNoUaWpBmHefm-8qu->kuNR&Xh8ZT_*DTM9*lQUI4_zG zNlqTTPo?w*pzq3?K0?G#ed#@1(Tt5p>c>OZ9lE!3Oy*XAAonbKS zAs2-yu#!XS>N$S=Q7=Z@zFA#6)Q9ZD;bS@D%73b=$Xzp9 zr`eBoRI?*3&(>1#v)Zpn1@ujOi;I!MoCZl?TDpuy03S^4P)!wV>^>dRTd!$F<2tOh z0l0l{%1m#9t1ap-PnKL%#(pXcB|8nS6;(5@d3@ShyNSM7Hza&{E3dgR*@Fj7yEIeN z?Bheo-~>~xD0nK5vNk<$ud-UUph9D0^|nchU^yI52fg;FCSM zy>T$}qsvq6T93Nzjrw_vKUGT9sM*y|MuNk&lh(hZqugGs?BA!WXze@)1}r-{lFH^ z)akIZt*K}pMxEv|(v7q{JQ`nvz&Vi%t?iryX-i3PROh*0f1Z?+n34^|AnE-!*+!h` z4j$fSL)8UvynIL>S>_>gZjGJOi?`30`MTMRV737x@nBE(k4N8e@{6&y3Zu!Ig*%hx zFXC};HlM4@{ruQ5so#?9B2W%L78x-EI23L6<;0W#zRw_zxDk-YpN% zJO-iPe0uru$Va>YUfkp!+lHnZq&FmRl2@tMT^Y2zpXxNS9`iQA$<#P=3p+qM#D-G8 zCt~4N#UJ`^{Wn!_Xp+=^Qxxv~`3#S>wK$ub8_`$O9xub&4@bS3?nnQ;w@vjFuMh3K zYj96p%j?IYAhYgJXYG&g;GnC<^mA{_e}>Q9SexaFYg>I94+E;a^BNjvl1k}xJTdHp zo${&9ub-kUZ+vZ+TwdApE(BEzRuDqnC@%x>Fe|TDT9_+;YBW}9KBRZbhu zkC*ER+7F1fU(&!@NVqIipMvQhd3P(ky?KL%D~ZKq)wLhfsh@HbS=rdo;udZ@V;tE< zO>+2f|J0b;Q}nG8lZM9}Y!dshnt1DMM^>$#=h$a*);n9HlZ~wbylK?r_$85`SfB1; zT+jvo`6_Ra1cORapvL<^=akF&uKF*JBF*P;UPJdfo%GC_naQfELP_kVLYm*j?GGHJoc8+qP5ELe+VtE#MDHWsN32@l(7t(VYIpDxG%zwX zdp~+YE$b~jgK_%#FkjB|wlqxH+opEKiH6{Kk=NLMh9RtRIgfY_SjW7{x7%3Feu6N( z$FxEF0d78xxrukzIiZ)unbY-KHP z!v;nWCvu*tevsW_hIywAPt?|FQ5*EB6<`4Zm2ndk08MMKn)Lf5KSx+d-m`0n|I2^# zFS(%5baipHVV$-xVNgM+YfPaYGLwum9J9@}YsH2Wr}W$B3=&W^Qgqft zQfLtwy&7r=geVi;w>x;(!{pSjsJTHGIi^$!j}A;{0P-chDA${fAy3}t>tJ%j(Bq`EFxO28@JiDFx>uRoK{$tzZnZHmOaMa^4pD|d6!O-*fx_hOeW3Ov zFuY}8dFWaj;0Cs~Zj}~tN|o6az00f{CF*Z2HZ(A&YX&coua^&ll!y~&RA}&+>Jz(xM5q=v={Dgs`aNY?dHXlbmJS0G zD32%c}v)12wFa@Ud_^_KWNP_6G80X!MPi(0CMUPlR8?SrUZd}yU7)@ILY-6qhrQZvHA1)7*Y*F>>;{Sn*KRUt;aodpOMv>*F;qx}`oR7SS0 zm#2teGRM%U5VV)CYjRlg2Hk=y0mTI^brpQ zuP1kyp&>}wA*|4L+pK1Pgl3a?s8qL5s5-4D7q{kx#lh$eaf=+Dl3@NdC&20Z^xC0N zC?D|H+GmYE53zI_V)^%?Z|9O-oC=R<6zv7y9g7&|%nNnrlZ`KK>?9BYkECqhfAIZz zoa=dPjNGydDCXgqa~tMZz>9fFO?`g<4Ug3rJ~%qeXY{F9kYbU^ifwlVzt34VD~OH@ z)Ma{YDNbv^RICHv+Dg@3l+TK!Nd_in-&-V#_mukfy}3{#|@b{=&tp|Ii#eN zp>A_j9Wa)2M8M>AMXduv5PQpjvB~FlA^Xi#vSqztq{IK$fBI-M+Fvi_$*m3KVA)>s zwKV)5RguvBIX4s@lva)qd#CT|tn45@Dnm5jDdZ@lo9iFb|=PD(;o`c}h zs9;$)*<~Kufi0c%R2ufsn3yLgV)Waia2@k(EL_p{FCS;gwM;6vA6pN5MOi<|@7CG4 znVRexYsrV-pd$zz>cT)EXoPM1wn_LU~5|(DiTkbd7|J(R-D)-4{ z!Xm)LdNhyx>?W)7D^pG1S}Ixq-D~gn@fd|DZ}H~CDCx#Ts?O|RGAOkeTLCBhPuWn| z<=3j-{X?lKXX?v8CXIc0J_a%VH?GUH>gM8;u&;f^s;+FYv0UY-eFVo6e2NlYYk1`0 zjoa?~Q0V6@o2+sL@1$T6_(KQRv32+3r7UOBb!yYg?;b{@MyV3*$?srALPCFhUDS3F zRDeasi?5wPwqj#tF5Igx9{;X39d}%?m#1g2zO=w-%lmS&;oub1GPwoNZ1!yb794lE z(?@ub?-Ts6{9Q8}yV$ZngDlPWtReStlzOj~t>AGztKGN+8FYMcNu+LLCnMK3HO_uw z0q59WNsl)R_dVSz85_+{Wo}m>03dzKA2f}R1l*V(pz8pH2ORClfXDs#wDw&U@7nJM zO8}xxe9ISN{W~nD=G@r--FNVe!6-~UK2^m3Y}0U@t2^|j!)>&}M>A8edX3R#QR|6T z8b}`Cg$G(b91F)uvwgVg+R35iUVZJZwH4y!J^X))pS0*Q<7HDX56bxXI!a&Zvn0}q z+*`M%ah`@uZ+tOsVLZjro8WdCl$Tfc>vBBn3GW`A{`?2k@n{|nzay(?&$}mXC_+=C z$j6Q+q(tB^)NN=BwewMJxip(cq7k{Fu+)F9F3}D2Wpvh0-hOfN^4)FX`3^<0484^eV&E0H zTb5rnK;LCibV0!kKf@=f#lcxgrEBTMM@U}-yXGaI6>r%JC$+(bSgHYefGf+<9nezw z5R4Cim^wO)IpbAw-OA7Vo_LE0p-yAonDIlj&;>i7?v@}U{v;Y>AFLs)p$5_BO1c%K=J5*R|)aTS#i`4 z%}mD3? zG;Zl+_1d(*QSZhlNzytf6>y=Y$otk@XFyo{rZ40;q&L%3_T=MzZ6felY!0{gNH zWYvHUYR>~Ix*8g7R)9}Kr&}N)qb96Kza`@=xVeye-VwCSC#Lay)>;b@hD=N1YYT`w z;~T8^jR9B{-458VHF)2#-j`i@M9{T#;|R}c7@6XRuI_e zXWR_Ab4vj;_@S0mE;K@I$VSzdZ$t|nqgk_j%%>>$onX>N(s?z|Iu-zmbG1pANP$k2 z&1hHJH1vk%v!~)TZhNyCCeDY5=&qe(zUYix@OtP4^8&NV*2c1%+@W?!eGrbJ0HmO} zj>xB>(lYzJUwKL26|H5D_$QlHP6uygo$`le ziAiCYRVn&AcHIwfqFMdwkh)ksMgR=CHEX)b$O&FgO8M3N&N75pa<&@cH3Ds#syzr( zw>|S#rLM_F2Kc|jZ}{5#R3!0(tmf3Phx|SQ|IrR4p1AbR$JAKtI%!>IdAPD!y(tg1 z&ikME7r$gcCTT8ChVJfwUG4ARKc+>nwqsv;E9XS3>S45=onQD5d`hm}j@doCqnQF6W zm7T@QYg6hbewwAu2cs_^y1iTwg-X{xwY0lPq5^5uE3%qgiS>WzZt{Ro9 zn5S1={k^qI+<1eY`9QyeM~Eg+7~Y$f^aUCI>Sk!3RNghDbnVF)q0=ylt8#p-u!%(N zgAmP^k`}Fm0WM%6@=&wxulWZe^yPr@)KT6Yz{50mC0Z#DObw0i>$zPn-G$~@5{dU} z6oe!ttdg8J5}I}Id|Zsrs$0l5xI-@7qBN`RU|N(mK_X=gF0wYqt2QR;F>2@i#?7L^ z)hd^?T{!aF{6TZ+&DT-a^>CJHVe0N+Q6(Yvr;_!C&dmj+S0H2}f_{i^rrn7?6o6cm z9D;xE@c;H7zl<5`*=Ko8=*ov+G%7Yh?D4La+m58J*H!T}T(p>=ArQ6;X~^ZGTAA0m z9+AtVPAf)7ZZI0ai#u2{*5}}0{?u;#?vAFV>s9eKH;`(d=H`ua;yG%tNnsA5(o8TLgtZj^gBQou-2Y0Kps#u~Y_ zx94vLs`7t5P2ht8^nAF5P>&mqq{s1P7?8Tw!qw9^-0RN>ozgN(iItbq5jT~0peP$O4;ZuzJiUPzx$5hqc3Q8H$Q)kak*L_$AZ!A zCfodL3PWr9PGUWZ+KD}I04G(hLD0LJz%IDabkTfOg9h0>>mW4sMGKPO&_K^wf=y>+ ze=p~$Vx89}x>UcP;D{z%hdYzgygT;ObjzP7hn4CK-tV@4+KLM;LqF!Xc^U6wS?B#f zs|~5TzqXYHxBuVL8!prH&TQd+HkHwUy)pK`-EmXs#_hU=dB*Fn-Qv)fo9zE52)?x} zR~7`ZhKAO_Q7J0xR^4~s>+V^!IBU`5C(x%!hZY?U>C@w%(Iuz*%@rjx^XPM+5db0( z5!`#7z&4z7lI=g7>Iaf&Og`7#`tzrgPffck&3A*I;-LHbNCvdFV7o@HRnHQ={YGqb zj;>EMltc6L@8M(V@h9KaF1RZg_x69Y9r)Eu!h|JPm-&{_8}b%BPl{TlM2MY8`xFHR ziJuj1LZBHQ@zOH;v%FSeng`$nMm)EthmU;t@-eDohfIB3em^X+n!)2Q_19m{*5}zM zoH~6g7Lv8uZgVF;ub`y*dUF&B*dNtDjXS)wiCGD2!0&~%1Bpr43U<9j>6BiAz|*#I zzgW&1*uTTUEZJrM{}|VLRy`@`z^fpg7QD_Tzp*VZv#}QtZ~Oqg7OzfaU&oIlIyA2& znFh9I@9}{dSew8+c^$<8IA87Otr*;(un%RCLD>%b+Fdi3lhhcv@dh+o3w)WD$t&(>ndKxO9IDoo(0g!!Pcq!*vKepy=|Go`Mk2ZzEsb z-uq??=k8ExyA~F}^^|ThiR8GvKkiXvvR6in#lH^o*=5n#p_BD&fypfF2rNjwRdte& z`zH$IrQ5gJ$t$B*xI5*)SKDzrS{j?BkR3j$aQSrp4NG%rV)=ro(VIlIF&479oiU6361eEwDWfA`|}XSyKo7K17b-|EBUBY31&r!X>RLRIYE{eMt~|MCU<9>xFnCPn(A_1~_x z6X2+aYXA`9001BWNkl^G&|ZnK~3cL9IGOZDI45Vnu(}=0@F*me)RcvY_^0bZlvXkR7#VG)qOS zR;Jn`X6)uZiqqBl0!9>%5Hk}lu!d-|pM^u}X`91?e&6G}* zM)cYAjg@_HItrZag_ukuYqpFUe>g=NnUkxs_UnyL0x5sY&@%8P^p=VShs8!-q``3o z?)Mrwe>~QG__)s3WHgapC3aE&*G%)~)2}KKK1oY&UT`FtO@f zwFo~a@u6~cE8cF%tYtBzst|V=xIz}mJ%&FDMR?}OXlIEL2lFV+ROLid)IS4%j&PdB z2+tAsdhY-e9pQVs-%>>*R~u5`27`I}hXCHx69dCfh%mAJO=+fgrzq2mmo7rnX6CbK)$iL})kc8zc@nPFXXrW`bT>BQ_1Kb(j6 z!PY1Q$(O6-&P-Y8RR4&JHbB>m>+^VDoKi z{T!~)A_sGeVp0MpaXk+A<8%Nub(5aFw%$D!yQvaW4y0Zz%xCfUag zsC_L3J0Dh_c$amWnhtqu<2K8OT~?v~K7lFtxQrs=<9>jNXRhHA8!Ia=j6ban#Q@cz zeJ6~xZDx=g|0YYjZ-4<0TZaM{q8$tXx!a^)Zhb;8%1r|Ya*|g@gOdB}`Le!~o_Ma- z#D~`=$SrY%vpnBr(>cf5D5V!TlkelRg!dJbz|n?{X??4*uub!>Rwv$(Ae~R@-}rL| zl5`x^jWWMEI)f%)Qon&EGP!Et!t^6~UxLn($<|4iEyNJdt%G6BwCmEr30qjZiSmpV zBC=R-e;?UG$Amh|6$uE@iWbslARbri&Y><*#|JlSQRiaEG>MfTq={nRz4~WQLx06Y`v>)A3U2HCF?GxxTnz zuyAZE5~CD)qHw5i{b^=Ox*dap8g}xK@C=g6`*uPa-N+>R@{0fGm;cOSx50@6mT9b~ z-gf8jcf{;jB0KDsy%lV#Nz8ct;0}3|9Q}7xEg#unqtH?vv?8y+HA~|@BHQ>d_wDm^ zv-{lv^!${5Y?b5N=jW?c$#Rz^*H*!73Cmj(L~~@&S-?$N>>~;*Zp9cbix1t~#R;|l z#a*RW3%GJagfx}oY1?Uz>tu3+9U0p3Hk-Bk;T@L`&6?^7tF^zPA0~_1Q_n{EQ-*4| zaOYE_tO<48lGpbwdT7rV=%$RZrqVols8t&@VgyQJSnamT9s=q1L_SIdn%fjx+kIQ7 zAv&#`5#`pQsfQjT11rGGF17<_60PNKV2n*GjsFdejb0gXnaR!{7)ruO^^giXbjx0j z1RF}oNDP?93yUu4e?>Hzzg|4VO5cMB@~k%(bFJx`kV-3#ZA+-1fc#e7IX%*I z8ddQyfcEqEv1(hU7m&X6u~Oh3jM}pmPKue3tSc)2(m+@=#<+BCa7EjVdD?z! zRq^5Pe`(QJn}ycQA5Y)?pDS*8Hv47`4{unv)|4%C6(sH+WXV=$suN4Z;L?2ZUf!J7 z@XxvKJ%-zZMjU@$>2mt^C~l2c5i|XB;8;e@?lRh!{DbTXHyn>%V0s~@YxSl)J3Ilp z{Cj7TwZre{+soe+Yof~x*N>}j=9UI*z7Iu#>3l>#UGP|)+s}6LLj!aytDX8}CzcJKU$x3E|KC zJ?cmC?0!N&FVTquQu}!4_#|k@)9vTrKhJDmm1Jw%ZyLW`uZN_cPixEPuwMdyty?^| z)^Oh0bhM6Pm$`Fdb@4RLG|nC^7`Qk+Ug2X_ye@Qf67H>Gwl~gj@8dhh!^1Htm|a}X zd$pyTw{_pUH}#!#QFG;8qK-R$6@ zDzRqG^cIzYBh)P>i$sL1-6^iUWAM6Z0|=i{V`TySP{ACCRMZJZ(T>OqFic&pK?@LpM3o`>Flx zgtO?cOPCM-WK&4b%M|o!L{Ig28lCs+!KhNUa<%TMu(}5_*|S#~jAHQe{Lo%X+Y(-U zPi9Q>s_t;yewfjH_V@sn?M5&1h{HG-s`R|m&fRe3A%H@w`H9Wr4mbPfl&%c6+UMtY zE-p9V#)8HTKN$mwja)up=)KZs-ENTs;}PZ2Y-Vv-uHI7c4&q?!+ZxA3&QBy-7pP>O zJ@-XOkiUedh;eFJ^4#}TY*-7S&a~gRNwQd$(`Pyz@t|vHFB33awvqN;cU*~VRNovb z0-dxQG$p4U{y+c6e;iK-5OZgTF3q`L;D~ajm&RdOzHi6Bj~H;V_$f(5%t1AcOHvbk zaVQ;_*#gxCxzIv+*kdjSXPbxCPE-Re+r+l@GF{-3xJZTAvT$2dWjq5sIifxh9(5Kq zW_X;9Pmm8}5ZI`$}oFNf<<@pWho1Z9~S+TPHVX@lDNP0~^ zOKGYgYJ@z2lya9uPQW0%JD#ELtMJCSTUTR0?j(=Oy?QMz0}ci(%ymW6)DQ35F|iwS=Dm*lqshbY5iQ<>2L)aXYpv z9f+_QF6#;J{oCXB8lN53={tvtiR`!UN8}Ss@=lp~X?iSfd97sjtUh+#In86!%l+=WtH~6>@}Pg8-)Fgr zJgtYLp1so;4^8z<9<+VFD|8ueiufAB+?jDRjKQw8Itr@*8tys4b?p>tv;}J~0LFEU7Ir}FgJ8Y0yy!fNy~1=ex{RY;)QW6-v>rz0nZD13 zCz;1AXIc%^7VTVJoFe4+-^S^Wh3RbAqrphI zFMJ>{#aG|{o%|fz=K-Qt7G)>1_SUs;IF}D=T`jeBC@;2KByzfg+=rkb7SS{2{;dVv zXaIDd*>8X>?50MMa^Im~{YW1cTpvJH&^2cMQd2ox9+T8*g;r?0E@a9_Q1@jG?jwyY zZ>q1g3C2msptdG$s4Epc-95Q*{G ziu>d=Iojc*UXFlJSvB;67i?L*H+fwzYu5X!*xBVcl9xoU>35KaaGn<>qC?fS>p@`WCl+NgH z9>lIE$9e=Tw9)uNhj>o2f2B-E9ymrdero)AWw_*bW-(Gg!B0qILU9J z7%e-bN!fOn)OhIiqsO>P3fL+&FT;Y_Z_j~aS$bef7g?$LmOWO}z5f*-btH+%axK0k+`D3)L+mki!l2hb0eW~asOZ@3@P5gED z2XHs{K7h@b7KSd&?Sc2$k3XYni!HTmZdmF(?R}#cZ^p1LhW@q@`dg%9e`WJ~6$Rew zsK;4Tgc&M4Ibn6KV~4dNrLC)5Wq(BgS<|1xJnUkTX=Tgyc1A&2>+9fm3~t|mwKLsc z3>5<`2Ojmc|0Gj8z;7KlZvef#Z5ub+cC!DeFNNLyaOYvc?VQk!d$Dy_qGx9%r$2a+ z+jSU(BEpUD?+$`_(Z>n=lIW60k2l}V|Fj=}J67FevD^fHJQL>0N&N_PKhqVD=XN`7 z3q1C4Y=7e2wv00)xZI?Is@H1tog#T{?ia7Y___iw*%y?FC?x{U=!aa!K^QHX_Ywkv$=_6 zH%$Vtg2Y2kX2+gI=O zU|$Po*S>%2sj#gQ`VqNNQ#ZQx;A3gfJQt3qQg_xsz2!^cMIR2}hcdu7kH<+*KZE84 zPH@UhxoFF_rS5mXE>$NmGn1FYMlxaPN6^sa*(%+jx$aH$YfG=9c%aI5$N!KH5iRWQ zM>6Dw{l~VIOO~P z2}l!4$inFIdduojTK)AL&ylC!m6Mz>N#d6VPOm=sJWUC5#Nuu9OZl!k;W$>)r_rPP zYQqg{?O3VyBaTKYb3o(h!Jgh6i#zb~n9|KH!c<94t~C0Gs?OB0i{LbV;rX~=HWT2~ z__cuHVd&lp;2$g3+X(C8hLL7Wzl4jKddM2yD1sg0+`OOmKEIr?Czsf!($qn`jmo9( z8p57PId|KM3<^3p9P$t~Hg<+4bRmEikwF3l1OyU`BNwv{p6pqEVa($=^ggxNh0~ndj%=kkVcCTx#&nc1U37$M!&hXCSvVp;x-NSX38*!nwj~aaU85-a2=gt zV~i*Hqb>x>(dh`qKXo)vuO0e6VrCB!>yhSxUT_f8hMRHvc1P62t#Y6 z-`6k8=VVr17tp7h@|uV-$mWTm4T`c6CN^aHZjIjT4kxP%>CgaYVF=*PL1+7wbClie z7qh2h>tuYq-W_?u?Rv|&)qP#kmYcy_&irq4tUZ;y+hfqJzyCER#2WfAU(k~GqkWrg z3x}%?+}Q;^C7MsqZJJwh<^Q2`ryjOiENGSO7m?z+XB`Qqdl+r~{ETNdty_S+wHEVj zaIRo1j+(@pelr$;oa@@dui4%z<~kp>$gSLYinEVGz6xZIj2cYl{6C zcvjUvR{8wclYcA@A1%)|1ifz;1XQu4GHOA`%JkdNi78AkNLv+Uxo}1%B9e3yzYJ~t zEo(`c&OOYZE=ZPBQZ7y22h1U^fyf4EHalzQ1`|PVBV+WKw#4n!JTPikmv>96k7q5t z36-zCjlVz3n{-e2QbvhvKj6XG!Bt4Q&w&*~! z^w{@){4N#Ylgk1$0&V#82QE=+dO(4yHtq!fFn zkL+JUA`L@ZJlIZdNISqb@G8%6>G{=s28&t(#i>$_y>ayr>De0q{$HOTM*m1&p~O9F zmNE2j9O`~_kQSj&v|~YItXX%zcZH z{jiL)lfdhpc?Lp8xIJ$mu$E3ai2+wu={qcMAdbjS;3ePNK&5^4Cw2*v-dpIKmNMfAy;JoBqDy6n4S6xlNw~^{2Pl)%8J0;g8h*<;}=R*=Vu!xWk*ve3|a7 zZlM!oZ!@r_#W%8k<7Dz$b&k3%_;hYCFa2hgA}9yi59#!&>0{sid7()!+`KIv3f2Am z@H9+%IlX)n)&oaw#`9gE^mrnIG-Q}w`y>wC?B*uEIdtje+4aKCsOR|5o51?s;*PS< zvYSGlUUjZ}?zqn{bxL|av`^whqHal&HoL6*i6+TC`?<#jXzY8)`+p+A;%`fo_dU-8 zyRGC-ssn*f)^~C6aP2>u+eo}tH2G=Q$6o(V|6Z`K^LuJpcg0rxfwsq_w#IR{%t}}t z9NjpnFTqPVuH}!4Ic9cqz{pLIPhHf4s$KggggQ|Vid=%fl1doa?JkCTu&|aN$L*7_ zpgDS@wU_Il6-a#%-WO(zvRf9`srGTO^m!o=RP0L!tFE5 zSonYcAD*!sM(m#Vs@cZW$qgTRHrH7Y$9M#($k7O)r5zz%#K+ioXPc=+Lg>kz0he&tJLX9%fwvIN$aYjI0$LGa-iLm zLYs`Visl8FC3nyU(-N*0&8d&hhXspWi-F~FKv_jX)Lo|o_s^-O^K|!TQj5eHy1rQ+ z`OsqgO^x>I)tbB4d4cn&oUX@OR;mPRV_-Dj9FQl;=^lbfJH~z~Z!)`qt)f?xs=2|q z``~Q`HQhCa5z)R2c@2~mIJd*1R0F53^9uOURv@kFj@Z-@BcHf?ardLxMkm(WHeS#K z^waj;ig8Ft`#4y}vhHOSofSZiUU%;%?f9JCVrH{BiNhco@!k$KJZ$Qg{&0WGHNLV- z;$Z9-tRs5G+YUUroVCpM?;WM?nWNz$9gf~G#$C-7pR*5u(M-HDZ5(Kohm`~32!Jly za=V48R^!t}f0P5s=D^q9!S~H_W+HFPG}-tGF#Pc)TyWJ5BtN}WrSxv1H~myn7*@xO zJ$aTxyM%TB~**28US z*%&!5;WOFC>&APx$_QAm=J6F2fSXI$IqPm#@9r1is?)d~)ueF)0lF4g#qO}YS|?3O zp*VXVr9wfITmp=*E=r#_^?Vc2>>-V@c@m!0Ix+E&47Qr;V*RWv3Yh0Cv*w)_<4ELy zbUgi1R`u+U7Z3>$x5h6wq4im{sujYsnTPgXm#3c455RWSw{sJix>Un z;XDtCYpi-Y@DB&7{7in=yo5{MOp$clM6uBH>>4 zk7I~R+ZQf>_A1EqG_w`xFJ6+RP{BN z$#e3Vxh_Ao^Bum&0}ggAmAr%V!EY>rF=8sdj@M_$v%lYT3yd?1jC$#LPSQ}pyJy2E zsEssO1q`-imamj>N{hpSR8A2jbuVo-DvI0cKbDFSq>4axr-A%t11k=@`_*w<$?x*X zm?|=@yrN#hLeyXn? zFiKm0S(UVZ1Zf2NtqmElQFK})~--D7%zy^ z%c5{=OZ@#8jC9($@k`uH-(e+fZQpJd1P*fCT^@Yv2H;Ze9x~#>xj-Yn!rmi^Kg4Ep z9eZ|IYQJu*NVzITehtr-8}+b}5>dLoFOaedPe^{~2N?yg+^anvz1zx{<_bHv^lsyD zt0U?y%M2vSv~sX^Ec{;=s%CLL$gMj*o<#bU;r)IZfw2APavK$6D zJ5Et4i?k2(2u6$9eDR+#9Nb~Y@7*>QS2qi)x~hINOvr}^LiTsKORmkuPtW!}(oY}8 zW$*brI8fxQJ2VDQ-FTjV{%u`Xe8jAfmpDraxVGs&=f6-LJ75VO|3){U zWahq&+OJ{o)G$B)_q66o;+5#lb0Y7`jH{<^1g+n82gTP9wz|8H+TO`wLpZ;F5ONI4 zlW<(qmihAlLl88o!%h*|ExvzL{QHk{z^+}$M{JJ&bQ<`O`k_0myKi>sjQx*65gA4= zGw^|NQAeqXe;o3dPW(IZqs@6Zxn*GO07JO(erx&e!_~!2#%E_yZuH7k$WE6gPq(k- zyOu7@?yH!wUgc*MQPODJ+mLe2z3VGzAPDH2#5^9NOWX|gOMEQ4NM!y&$ftqccwGO+ zhQa-Xg;MsM;zD5<=4ye*xlqF*?KQI3} zdlO%XVIoJ{E3U6E9@QK;FVhzNH7uIcbg)B^wAITGysXM~J!Y?uKc-OE`WwEw2<`v6 z%JnaYYTnWJ7>3toJc24h`aNFK@bT3?Je9#_{rff2qNCem)INBBhd^BbNkF#0SaukW zt|Kj}ro$BL=G2qkOfZBV0v3zkqby`XH{<61+c;U$2hJyjGey1S>8%r`rjEY<#Wujr@ksvGw+@=t$k?FteT8+Tm& z8Bl!m+jbIz^{3Zt2}-*`E!BJt(7zx!E=@c5AMOVUyqMY_VO)6-yS`5`cki- z>Tz8B>r_8Y(P6;_A0*DsfxKV!WVIK|vBuJbJR8#U*QICC4PH0|g4CFWg>@ssZhd`Q z)^-?b-YV)5@?cJu8#RmavuD>C=-mHJ!>DQCGBGP1 zqZW0395EA5>dYG}w_3<7m^I$zqcfT&HsQS=)*b%8{`;gI;&<`^4kPxWy;BPuN^Bfa z^Tr`7CZy)6cJYi8B%#dQU?ir}F7OvaTtb$>w%x&$N-8sr!$u_Xm5x+7irI^nR@!E9 zDpV^0P+n`-v+@)(j{79=g=!n2F&kg}K)4ep`m(Gr^%mx~-pE^cxYbaO<>W+sgaa}5 z$;o1-xVV+@c zE1;o(QM8^$Beu31$rm#+T=<+C4e)tuVkFYTvJib2AvE_Qkn}wC&^5hP6_^6e#V|&oFIlWA)DK{amfQ9=a=)dZ=*k>XY)1%c)EpR1I6qw z>$m+Gwk&LHr}(XYj{8uv+%{ug&Ts?v7Ug4cQ5o*7r!0*JK5vbGY(FR=qU5AYX-{@$@*wr$+b&~XZS0_^!dj*GQife*?ma_b)^+3R+8yY?|k z-K6P-CYKU4ZiAj7ZV%K{yeSU;a^vy{l$v8i3~Zb~W6 zdtU3MEFlR{w6!QeyUJfa^dOix<>RjK`C;9q9F_Qs+fP|nd%wihpSf1T3?8=d8NpC` zcVR;x9>3K_L+vq%f@ins{q4O(AA{kSIq%!x==HSi-Z@398HFQ9=X3lAmKsd_Ztw~| zB|c7ld<4(LYwapD7sy-}Q4oS{)`nN*9aY;q!5X}S&GeyS17DgeXot-g4agG=#xsTT zK4Jr>%ku6FB2ez=%}%O$C4aGb0H*C4bN|w|#@4nmrBiN))o2WYLB80_-6GIj7V{Sv zF4ots#UN(7t!GmOU;#D&`QipPSXVV*iekfNQ50BemN>xA= zZU*+~dL4XYqJ`$*KNuVA+ZzMXcxRy-3@S|ep3HF6$P3+je?%2>4M<$~4d0cW0VzwD zFXuAS-VB8rzc-C+10A%kTdCl{LgyAn?yAs_j#Xjf)Max%$Xvbatdq9+^41|m8l`Ob zsVjpahK@sqjRm?IMlfxSS^PGEP0?Rse-d8pXnEAjKJ20xH#3Orr?YqW23ea~3{~X0 zPJ50b5)4PzS=4Y@EYG&;Xm-zhDJ^U2NGLnK-XmK9t8mY9bVlsf-11di>!l2~Zi8G2 z9UL_?{GP8Oa}vIelGI~(@SW$mQW?$?ruUW2s*#!v!%)?@=xWCH5z3aMtOHHVFl zKrijwtpXX=H%0R)TY8(@9_sM__MhkR=f@d;tuK#`U5VVbJ;!y@$@4o8(*bE5t%kcS zcy=_4iOv?O{N)kB`(P!0&|~1tmdvax?UCya&$dzxzT$&7xS9~>9I7-~In5cYgug|O zQ5PSj5qHjWAeN_y`oqoIR=!J6f5YTF#3Vyij+TiPVLwC9t$dqxFw@?Kw-CCHLT<{j zKh@X1v0=P=g+MPYOM;_?maF`H7&;En4dUe%96}B*@fomjS~B%DTtbX^ z0d)f)y>ns(mA$(Dft=#^dl~LgmD|};oG^CRBdK;FMMqVx_r`9QK@`r44P@^f|B*j; zYxV2&%1OyhgsN}YO^K5`twS@~U^!Mn4BqaXntXa3PbYK;ml$-XE(*%?{rOiBjC4UA zt+LQe)yow1(^*a4b3a-uXQ8soKn2tj$K#ExU9NoGdOM(i>mp8KOLMO zWO!4F=UU=y)I(ca_O|;5$<%MRM|-4pk_ksHrw>g&nn4F~)|D#z+!e*sq3%dsS=EP4 z(dEmpmoEG``^!fN&px1bgzCt$$q#L|@Soe~eh%Xb-ipclvvB_|e`$4ge?QkdH};N8 z6NB{L&#v-_=b=E}X6HG_P3K#zkbkikSLbA8WW}yG?>dEYVb(sov@1wOjLt4;NYkug(I#r^byRF_A1YVP{zZ2HpF2H}<=qm!@~~1adlSOSSD%fW^12<3&D)@g4j`&zsTyHoyG_ zlRZ3M&z~P3-`G9#S4N*2cl4)N%HA4I86B7&t=YaNW5(cLWl>*i7q6LLS_wF(`r~&b zIge;j(@UDNr9GX_WDS4*jD{8mV{?wY)YwdJUCo<`OgYOvJx_hCO{t(9PHAwIjjvq z_^+|$dEn{S^&{-nr<*>Fc}>_abjH5AC?rGVH>*)NB;2*OP3~~8^T^EYbeX_Iv&w+^ z-JbPYF}ARAy(C?YCZE-PU$SC#`~a=G)}F+lD>++Zca)(L5LRZ|l8_~D^R@7k)4e%_ zr%yWD$DJ@7twY1v9pojO9oHZ$W^#&W?B}xWQmK!dT}=l#kQzsvbjDJ}jTt=6-feHJ zEM&cpZU=VvLmxQx#{Q_;4F+U!zRz#1m78bpPDD6wF1m~9;Iq+nQ0_I8y4abc=y;*! zfNLKf7d|Wszy}c8%D{@L#joo|q)TmK6#1!J;h&;`jw+V61MafmK3M3IoKbhHD<2L=y5hK5EV zp9hclgVj$okN2vsNO9EGORK3FV-DiP z)QX;-Gmy%$oZQcp9O*HeyH6hRSC{GCue@sZA9_2~h^OXsQDYERVH^AAp-JK2Y;bj$+xK6Cs$ny^Mkq`A!K|2T#;Ufr^*q{1x z$Ol98uiOLr+lny$8&QrBn>6K|sIN2{RJ>`8Sb;4`?0<~jk)Hq>cKIYr@G%@gxcR;I zWAdaD6)x`Gdg1*0#JdF-D+g_&S(~FC*x}Di2hVdo{_x1*aCk3>cSaB1X|ch(H#vgs z)3`YY&iAH^vrkLj1J*skq z3;PV;hISSg?<7YdO@NcfT{*t5F@;_U!}(l+CT?mIhLfuwKEV`ZIzrXuWz0u3MpZwK zf2r@BT9@0GZoqAz2^d9S(l3_O33WH2Q;0_S+9ZBLw>x|-yb#lkU))P@Y0n?!&WF8! z@x3OoqS1T2_}%4?(SgYB!~AU5bMGd~GSe4@n2iN25MUK@sPrLQILp(3bY>wpHl8TD95~Q6g)c~B3 z7!OEilK2f-A=Gl{{3$qzsJMYF5Ak|BRW(tQ^H$zCPrwpSfe{4mC5znxZrELC-wW1| zgtP8CxC2Wv`I+bXdBW85u*1#lJQ9sG%jR@xRG1K4xEbh#xc20>=tRG;0E%G8AMT8)?NXHrG1$)~EI=p+An z>WDidBe45jUq?JB2V)w}#$<$EL;o*La*DqV)_GCi1jl_?UdIFA>E16RYP~$~PnZ7T zv-|Fz@^3%G&nWt{aAOU*%$~etjGm%AL-T=s^@668X1aTNoHtK@3zM3ZJ9nsuWXRwM ztuOw-a_+0*uxh0MuNiE-c;;gV?|wzsq7{dX1a&c?tY&-0FFD?w$8GH40qovkzk!Qm zD7E^GA5R};;9Y~6RercqwYrDheoK-zIJVW2|8-I(;=8wo9m2xa+lf-PjXopR`TZLEDj8O>%^Vc*9Er^7y zeCE??+qFkNHJ*M*AnTvH^H0i)usG^7$E|Z*c{kQ|iJ9qoCEe`!(H>S|Zl{_4>Us6< ztjY71uRr$9h_dz4DvsW-20pQAY%vH*`MXw@H0_lXM5WEAV%mS_bMgSbXBiC#c7xyI zY<-N6BFoVsI! zfN7~z%@CWp$#K{Znp!%tg5R|$td2njyFl`5i1qt@QT*h)XG37aj)7f_2apw4=r&PL&xR^}90YI2an&G@PQ#{;#lBvGYJPuig}o6W)^yjIdx|3$}3bR0Pr{^50fP{pYSl= z<|(M6K-w{!EUo8v#*W72q;DJZup9w~v5|Ay#haMO>n|(0q+NfB*3q;~j&+Mn zgalDx#KBAYxO^7zj@>j#P{V~!jzOb)bV+TmWQ3zGcG}7SyjxHv^R#LTjpGmQR*q;8 zWZ?#RskZ`|ify!{Ls$h;6xChkJx39qVT+7*83;)R<$R?UuX=%fD#GkTH&h1I7_!B9 zaRJXBbHIEZ6F}fAGR4R}6ZBN)>+oTG$4T`em*K`@7qPEW6f_DpfNvWI}XD$CYP@M*v!nmuMV zDQG@bTieEK5}K99p_*RX>-Pxa*(CmA(j=on<@+r05lAk zbv%dGvs7y@nser*;~v3mHJ&e;oxRFl`No&*2KzAN5Fjf>=M8D=*_CY9ft=Ulr&th5 z5;MS*WPW`m!H~e{^V`JJ^?25qH1`sQIPK!nzcO=hnIb!mMkAuKNQ{(xx@sguBys-< zC6S)5#HHHXBm+b!hU3xM!+;3F)8zH#01M`Is`0_HOOr5whA*?m=&p}yNH|#Z%mk2) z>SLKGq@oR1jqeZ-$^KHPMs1h@e3&HgaiZ1edOpMPGRM42p_@6E2=g%*DfDeS3#Jc4 zG?xQ3lNo$Ob9OVWEuU*eVEC;W4R_FZT;Tuuzx?ejtoCMo=tL34ANqF3v1+1sKeRF9JrjNx z*?A@IsWlb z<`EgB^Q;_lg3_ul;1+Npssws1kJ3x{!CCK20qtq>$mT2u*_DlOeVAd>deLNBJ9KwV z(EW-K9E2?9aF0NcLx zI&hf%(KjYspT_si7YjLz#EN zFsYk+^VOPRLDRE;Yw2BR`ZlC026|3W-R2LmMuV6mxl~{OWpkb3{ds8Viidr_j$Q6? z8N8Au$^h#B_Wz{=we^C3m6&KD_Gtbi^8cbC!2jA;rz?WTV&%40+_u0%e39)Ke#J#; z@Foh+S$f}GMd;eHL*ew@Y5(B2UQ7PS|6UGrd~X(@;GDe zf6(YAL@tA$>yN{2z5Dv7xotXk{o+cKkGq-w`;?-or+}1 zU6e=n_f@iIK6t1)UtbI0LTd86FeJnqt6MAT6#7^)4mhdEt_fTzdhjpW4DMb)Y#?1$Z#=lhZIB10NFH%#}aoeZu@i`(nxxTwQoLgL~*y z;GFbFQwGipmmAQ*#QaMJZ@XY=ObCu3rXBa%cmQyohziFcE*~VOP+?jHJe88M>wJQ^ z#y)nS?Q^GR8_h+aFX1P|7z7r(cMY`{6u1{3%O#xkyuLp$it%@ZtB%`Y@qh!?`WfA} zcasZnMK^jPQa%FFi;%>=R9)<5&dJJXS-#XHdbuK_R+PQWEjNWPotQ6uZY~kWg4;}{ zEo?<-rr<_f@SvJzrrFEZk5VwxR6VPgKX}@VArC%#odN0_6u@}FaQ7`07*naR99w) z!XAi)%n~g!E<4Gp5(AdiUU!E@?ebN8H`93*_dXpuPp&EoGf4boBy*&jk!BRb!*z{| zvUEwRKc|{qbR%(=iIY2z3kvd#CAZ(ywzcc9upL=<(S>B?SgpHDa0kzxH`RoJG{V!v z`o1-_5KWkr(2m~*=+IP6>+v}~&ExW+{+%U$FtuARH|_GUVd34&mpEwIqL|EFvrTVv zwBQX05=X?>#JNp4I+GKkTOZgiTkQ2I4(tUObDB=+Iqc;8at;?Si(T4e(ekO`Rt3O} z_QMuI2L5b4u(kpIS^uQo;o)p)J+xytaTjAmE3Sv^L&7={r-3{h%wXfOFo#sE|BNR`M*fEG=xc7;CB?%b|7VfN32p5)GB;>={k+;{ z-q^Rf_rTmGb2n+GGNa}bT$tILChDT^BpbO}y>e^8M|AFRP$WBWnGc5`?7&kmbLf#f z=2VZ)0u-fE-jlrXbozy;VEkdO2zxUNIo6I=>&`rcrtYtI$W-@uf(=q^f&gsCwqD~e zCRwEy@8quwZ@KL_uTE|H$qZt%Lrbd$jN-|@m4!FYmcbsa&Y{huTX_xBcY>da6-~B; zV#-0!fcVjJ8-*bV1|Xs5hj^MjW0hs5KHsKx*Nj}_n^N&mv(^n!&>0c=;iSg+c7x_l zQ+Z9O?Dj22cojzjTMrYde40OorcbsSH+#}?qu0rxP@{}}@Y3O3qFCj&xil8?67}&j zOY-wQFlZlKns7QXm~n#3Z`4iZN7*^Eei%$0%*EF4k^6U65i`MA)<_s!}MhWD}v% zH!-t=*n(n-d>))Mku1U@j*zdlLsIR_)558bsL*8s(7@hFqquW+65S0X3C2g-!Ccd2 zCJkuS#*W@P*~n?Q9RX_c^?CBl8n{`($*#_y7W&aBZ*cg3|DXPKzI~&?n1%hz83?1> z4afwJ&RQ=^zQyJ&g9n{%J2S@ql8jO3qm`1@LqU~ckonn@9xyd;wB=?~A?+&rHvo zQHjCc3xO$&$TDh+A!AdsSTn&m?&G<*^%M4RUAvD-O@#*X>Pd;)Y)pDmWE z9y+kT*T~cK0_i7FLUXw2J9boA;^y9%w?gZD`c%Vwf8E#hBBRS@9S%RKQttoRDq7@q%dY;NAud-nka9S+f#_oo{q}s66A|wc=HTHj? zqa!=IA}YS+AGUb@^q#wtARBFUgWZhm^Z283mq0AOYB;cDEv|M-lj(;X!L-Mpe_Z4* zm1Ak8K*yINkHOaDSVZ^@njK033zF5L6xqQ4+fd^D?F}f_@;sX@lY#%jhMCQ01420ek#|FCbFSVyosME?I!&*biFXe>(RrIdek{ORs^ ziY3l|Hh53!DE3>phrhOTnu;|uFSen@?f~Zu{%WmX$?G=lje?^@zg-W1b6{DG{k*+< zF4!w486fA*k26KWe$LYMAdyTSK>a$d+Hg4m?Wx zHe^Wzr^-yLU>vW1v57lBg(+X;?W_uHILi9bTd&~tk5@TvVaSTH!&O%M>RBqhLS2O% z9WY6=qoeSA+wyfyx)~%-uEFOfic$nw)VyBmT)Lq0&k_VX)cglouX@|1K?Pfnjzg%= z@{yC}>&a9uCbXYftuu(54c-7g6&wF_0H0>@<1cPuc@%h8ZW2bjl;h4rP>|(g_2m|H ztG-V^ZTNd$!Yn_iI+60?)*Ey_BDz4eno$y)cuGFJzV;NQ;chr1Zvv`OVW1a6l0m=M z;Xf0GwEy*8v8YxmAL<^r;d^k4zk?F#w<~}V;$}8e3``gY@V}#G$5(i(M!_;E7?o#+ zy>3^H%EO3N6^~?0rl1!*t&WKwPNP@4dmhWV0edRjUARtlH`*}7TjNK{$6kFJJ27J- zJPMM?XoI}TEpIw)Ly-_M6B}sNduHD{Wx^#u3JDqGynC=wWlOE`jI_JR#xT!eF1 z;tvsVy%)^qZOQ76>*-8#R-zVR6fJp9Fj-Mfo7r^;2GqjP@kj`ZXQ!PKCg~I2Hl!UM z*+wnyIu8RYDfI?Ggy?ihCV{7dH^#V5H-MqAr3p6)BFC7=W~4^)3$CX>mkx&p8k=YwvB4lx zCJ_N18E6{GSl8OeL!3-t4#1vxl1!e9D`!rcvj~I&rjx;r=%yiv!P&-T<$o0^=+(TI zJ{V<}&~y$~1{(fXiVG!Ie^*Q>y%oQrCNrY{qvL(sS zQ-n_LR5>5?szRml?IbjM%tO%q`Brf#=iCLwmFe$Ll?FTE|J+@cMzixeS{n;=gqKKeXv$G&lMgx_+_8W zQ&x1RYCnthkg+i+4D5>A5*mHlQ9D|0`GqerTZVpTPVX0**o`)0_Zt!(KuO(@fR$av1#Uo{t`LM+DmV3<&-v!ht^Z~)FU_Qh}ac)3m zyY0ZM>&^4Nd~8G00V6u5U*rP$`-V0N_ zvf5<3!GXD6s4sYzO-J1$L2iTb`u1w3d6hcngWhx zSTG;I7+2AHaUQo0G)gxd6Kzn>=o2-m8+v0OcTsmLcF=`BbbcfZdXL135*wv1&5B=w7zv$2_17Bhi!>HdLQm;_V8>;bZ+y%{Z$V@mA-zj{a)15b` zVmkMeH}MxLy>{P315>+o^zEkf6#P0d<_<$}K`9-5?2BfF&S|$DSAqHlO4fKPV9gHR z0GA=Z{d|4CVv9@FHS`R<75-L6x21oSb1+QZ>Z16PSB(CX3v0=5ZmAA*f|EQ4`4rqO z@7t9~;yiuvx}=IQA$hWMz_c8`|EiQ(AOrWN^>^O+V~E1?pU;JJM;|LrS_Tz~}zPBv5=<~b~#|8`A_-X=7I`=@4pVrfvCb!v8}~PJfIjV>@C5BvoBit$PAf^wB9%j`jMkIS=~)UhOGKO)afdWW6Zbj3 zhVP-Cd$jok#@Q#MyF#G~nDJ)nyv@8K0SaNj!8=&Wkcp!T;{|;nj^%ou5nEj!Vi1el z*?O5eKBKGbL(kVAVf2^}b!|QJmRI5T=Nm&1BZ=|<^Ot|>g1N>Ad4$c=z=5`|SYDtx zPf-BF5Mn-NUflNSEy1(QZr++s-O|s>a=uvIXJlq#1R!3NzUm*o<*jq^yf+Imb_&NS zUiyTJ6y4--t+kvl3lNNfh)BVHCQwxKsDX&WXoE&I9hW`BK7g4D38q)$Nzbik3bgU5 z=oM#&%D5|9-3J=N(ekzU+4^K*6OyZcO)EZ z$Y(I-IfgCk?zz+D4f$yt2eo4ZwZNyN0E=6OY7V}Jeg{_uNl!%9A5VtTNZS5Z&oCO3 zhDE9ByIEgo?)*BdY`^Xt|5QzWFnc~G*aR)oBVNZk*_0<5MZ$e@Ds1-g1E4{TX>TLn zZ!$|EKui+54>h?8P~Cz4!pXI2hNN8u6RyRN)w4MgY5jE5R;WIYXlhQdkVLSFF{779 zklCq@%iwZzLtaMEs|G%E@Y!G6k5;_crsf}B$eT2z-q@b-_bAfu4aB^g$|6-ce-cV7 zS_-L?oi}txtcPLl_}mstStqCA7Ql)$AzWV96Bzu>rQq83Q|u#8=~q6s+izu;r@0Jc1?NvK8qn5T6^<+8s|Qx>;{!mn$0omD zjKQ3D#f>+JwDZLsVYu3zalPv@vEJjjk6~7knUx;Zz3nQrq$^zlKM(lgW)g6i8RBhmm}XA6uhCsHpm=69U?gb>j{~BY-$mdBUy3 z62b~Y_W!M@%$(#F*;&Qo)7(wKV0m>P*4Q;IRrw14=iH!$T5ey-9WrF`^kl@gC@7?fois)`l3w(>}CZrzpB%O)CuhF7t z5LKRvD7)}niXl;4t6g!&;}tQ+B{7fbF3pX1QYcskU!%H1$H@71;7R6?nebTgK5z0H zv#OXz{{|RjeFCDnEwH2{1?A#Mt|A%i`)nm63+750TtT!BuyhH!NNGY3ljst`AU3p5 zp^ukTksgT#fq>gF5Z&6CKDPc6`v|jM0ttN=qc^3G6V<-%L|546h*oBd&(JO=zeXf% zE4mnw;s5$CdKr~)FPeFH8IFwymZDVmZ zGQNeb9$7qPYB(OUsS#$MUfmEi?nRFg@I}n~rCKNH=-Sb(A{J?j4TQV~)h(6#W?6w~ za`xjIxEus?J*mA~g@})%yuK(LbXxZhBD21)ZeEwq=h)w`xQ*l()C~i{xRj{Y=oDI0 ze@-sND|~&NAWb{NqrTcqvzi86$1RST_{VLDNWjl5QK4yq_vk#!Wqt*#Z006^^Xyt( zkSFJMHtVgad*&Qir|f)RYFsCaI@+m3iwS5nB((f!!5op{qPO7ktxzo7Ei*DtR6 zLX8B!_+Tg(5?hi$Ea7S0Iit{pg9yR77E$r_=6!51j2kE;Aa5G2iE{uBLivLuM3`G+ zSvu}KF?mc&vMTANMZdN;RuuZ>l*Imf7Ilh+GHsXkTEv?(tU^H0=u=(iJLYuzz0HzK z^e$@OC+KS4$n+^BHxxv#ur}e|Ggoi@@be#8Pp>}t%OSljZRf#<+NMtY@-Rc~rh|4_ zkaY7a4?g`Kyamh1e-D<@kC%$5bOrPqB{q%86uTUqOI%Gu0K9Um<>Ol)+&!4Xi@a<9 z)&?_;uZr&gkiC1dOVxkF@M3>##_;`dbHvx_V2lubXxIhTmf$;gYMw)@e0(RKS3t+p zLv+f1qv%sOEh_9M`6W=7bg@GCfyvPOBJa)~*!J_7;9K2WWkwwyQ?KTIogC1)b33H% zEUe31FR>rstucBsH$lB1)h``BbI+Sw&3Kh`s_IU#QeB&Fa(UcJU;E0`Vyc}|GzJD3rGLLufveEU6VN0N7wPRf;0|Taq061ee&}N4yrf_rXp&7 z9`c}V2dsk7MV`&aB8Z{gBU#gAxDmN7R>5I2eg#2$oY~^Xj~yF>9s3Y2>7^8%Tet8v z1m67maS4#Pucu-St%}I%76()bVsa2&!TDEc!+azDxNHHjv%4+*0mjasnyM-bc3m7R za1et7>3EoOP$f^e=FF#(wSziA#WxXFg`fp}Jjk9XquRL{OA?%Gy%~(#c8x&olZ+QL z18bH=-U|+Nh*v#x1=*Y1;%6T{R2dHXVqV*1nd@M36V0fWim^$})L$Wy^TgakdB)|= zIZWQdg?SZ|Ag>5ibG5>?nMz|uG&=v$fCj#Xi*(4lSg~gr8qy`|<#SA8I$&w~PG-9< zpu`K=e#!9v`M3YF;Hhm`VC2g0fA);B`WBVluGZt!A}>l}F=jJuo5vJirD%i`Mb6WU zb(aJ}X?dm@Ri~t9GMrQwF+*k2FH>5P0Ab+;zDrvTy=7hkiD(dZD@DwetA>Y?cJqj@ z&ZHP4tHFd0h4fmx$xag{gLDM5*?D1N@F66my9q)d+Hl8RRuP1BCbV>~em51#^oq%{hOO3yB0(jDw8BotZl|50jUU%h#z>ez$&P8+9oCG$;;L$l(+a-%oJ%4%E6 z4-;?wyi6i8aa^i8n2ag943AWQSepRVr_macTNz!11Y1=$*Nn$H7E1b*2oXGBmRK+| zf9wi_my)F&*<9w9<#c1E$iC>QrF31Nw@Bz_PQG*AAh(DOk=!Nm)Pp4giNErqo`odE ze0}9Zka(xL+LZ4w^YP#z)Pvcpu7P3OaJ>xhF{H>z?0YKlzv)d&T{n%5UmBG7T{=q` zKmg|;<=U=<865v6jMKXWTcLh|_~v(a!z4_nBAdXH(a5S8pd-@lt*S`lTYZkm{OGG@ zbDM3p_SMXmy3eQ&yuO6ZXbTLVdT%Ix2sjly;5WFeg5BPjC6?Vf;0Z9dXytVGhSh9* z3CgYR?OAu?W8)$4$Fn~gbjFQLXO%vy)YisGSH4MG{dLUmMl+ADuyq)8SnSlXY9Cbz zmjrCo`+ixhx9HDupTH*O1KCwYPg$UEB-e##mI5s8RgGzwi-UU1&@*I{V&|18pPHZ! zHruE&nZl*?473ca7aSjWBz8|t!_p$$p}?S2JYOLFXQ!g#rCKtr)dDL zm+Nqs`NynfJK=dr;HOg!+Xgo*3nvXy-;VUvmna$L^BT#QM8o1FE!u>>$2>6Z=i7oK z<~)@XZ$zONv+#1B?likEpxVwX8Bv?<@*6qpLDjCn09>Wkj0LYnIG6$XdgrP>(Vj8p zfG_&`wU+~4%g(}ye3ND@eKSpVzBJDcn-CEGX1!xG3TDLMFB5Ta{1ME(zy8zyqt$>@+%p9sT}j1g0nT;ql@ zIo74H5uo_)m%EUH=8^Q}KF710Yc);5)%U|i&?`YBAt~`o{Gb2j*|%OYSKs2nek;yT zzoC_lK|&jk@-^>EkffD+M1{Yq&yV8*ljqF9<;nLK%jj+mJZd%5L*Y6fMYxjb+RP#z z0op`86f*AJ=%Njop}MPKSt$2t-|Y%JwOMD(GS{rz_EFMR8W9jJg)Civ$N6DJ(9f6$ zSE>pdnHEH9hgmyGdztt??QbkdvQCa#sR$nDrvl=}uLdDA7*bFn?L8Vhi2r`*!mhe~ zsPt*`V{g#+f%^jkn$iuL;8SFdT>%g4YT&Nto2hQIrIXlS823E+rStJ|a}-f1g=@T- zImJjo3rH15 zGHtRmPj=CConC(H{g2%v251?7oyByFe|`^#Vld|Z+xo)!dtj);Xuj9Zi{hXJu4pg{ z!)jN-I}XrQrt@|lU8L_iTRteYPuH>rW@}Bb9AP&zyhHH=X!0kL=JmVPny;~&YEBA+ z=F7b!&9f<{X7NSV{khMhKf^2r^%wSWxq-G028hqmLu(o{|H_lxpmUakDj_+^`^A!v zeJGUiH@j=2L-J5`=u2&KQ1biqM&jM3I>k0yg8xRRHiv6^>U~rNFU=R+K7Zu2_-l4i z5`Xqbk1^gz9CfbQA&y!7Hv7v@!j@|aJ~tlwaR2}y07*naRL$7$w(xBZxQe6ubzK** zpYv2DCb%u$HnrW+Q|vgjFE4WHcCu&_9o_fitKt7q0HU+lU!xz1*^lB1n{ic~$>iU1 zF}eh*v}6GPG#(beB|sJH{}{cKa>KS z)6?&X^;f&ZAiS2zcmnVR%I3@Tk-VzEEvUM;L$-O#-x9|EE?<*ftB=dSKAHnU|E7dH zEA8Jm;q$mNul+x(W_vS!Ht>H9m*dAzEX9}m{RaO1bfsWH2TMS zQb28jw6!V?AeE!aW7&^dbI+V+Zx=6pxfR}gp5wic7RtvsEc?%{3`6_QM{)@RKVBEz z)c*AcE#|ZCgGbU2y@g1ZBc0|1qoo_RqBxW5gr8qQNVl56uH6zv*!shLPI@`lF^eBl zijUvmHRhjV?t9VC@@F_ zCu%hieo#W7!pO!TP&f{hmEI^issK|!tiJ?XN5OaNej1l-Z);TF!~W>Yk5w0*Plex# z?>q|X6d0s4!Y(jky;iu$All$ z%dyu?5kBHtViX1(Kw6N|-s_smLiUjX)W4KGiv9NhL$o~ERA?XjC3np=3B58dX9XBp z2k5ymBz`AyD~UJRl47+VIoFsPo9^Hynmym4If8Str^2i}WW+J`*yem#i+VmF2)?LWe_#%NBeO<=6@{Iy04b#a|YN@afU_Yf#)AQ%~IkTmiBYh=cKpVUsx3 z@c_Hs_8*=S+$(6Qw*8b+s#^g)b4AHK^~csUpVblGhopACpLXj>3BE`beB89gIo!Z} z{_Spvi$2w2PH-6tvW_)q+&Et|c!n$7LI*ra@Hzmx>(7rlEzL)tAIf`rMs%cb#8&VJus zXd?ExAE2csvbc+96R*sA@y4V@{&TK@d2f+W@{s?y)#NGWUSW*8aRK8&hG_lpVo?96 zLlTGnvpt66*_WD4>mOu3C6+v>X-hQCy+Zde5O>OPS5I>S%6N*%(xf+rj!s`1cAB)x z62Qrn2eMU9ZGKx_n1z3HhF)?}fp%y&j;wMol7q~qGK zY}NSQre1dYM1P7kN~d_ z?ZthpG;QY&1AKp@D>CXM@*&{hPdPXaXF}0qu}J{mJU?wZ!mWj6g=)l}%%y$-60xt! zPsq62dJofd53f^rnOLR=@1?`kU+)$#QOl&R5_90p)cxpU&*BeFc6#AVNnn%P`)rlMT&sL1rps zIvcjE&v6dZ$t!|y+S&l=mWQ(5${`3`m4!NGbQ_w-GIAc{%r9;h=v<0i6P%Dy>0^T+ zB7|t@3D8cHU>JvKjg22*Z21zwVv;M57@;nM!;*&dP98W~2W2>hdgU&~2+EMlH7?+= zBrn#^bbwZh9_iO^#BgA;2ool_Bb7%;m7h~e((&MPubbwGtLNH8ZTz-hn7l#0>5~UYFmwcSsX{j81GlXs43N;~z$(?n!xSj_L{gL{E{|H@G0H;`ZX^0Q{%a_Y~81mjvp!ap7)p?9yzdn-(4ormH#jK>c~ zMWrO^m0@NRLWx0nEwf*?9eunm2N8WARPQDjj90DGas4*tK3^dH@$9)vLfVo8u%PF7 z^%GKlbSvw^4Oc_=%-hp>cE#c+Ea)Tn^mXmRVLK#$qF|32?ma!wW>d_A3gXTCV|DwR z1h<8PwKs@QdB8B-T3FsYGHzM^fk+YhHWPyjw&ow~x_&ez|LaRmS3rwduHlzZE*I@* zL3gcFcl)D0jJ~BQNsTH;_Z#y~`aE_F?v6sIE(NBK5e@jTTxNj8>cAJRY-c*N{&5BR zNgmi*Te-peJ9?ELM)=ENLX9gnU#_HA7d|1ro_@4Zc)WSeN4<}`yXSueuvSANhWWj% zM%8S`Px95RKhl*AZ`}89kMXpIm|zPKWwXyKZmhc>B*b#vd`0bH!}9@P@kmF zB9xE(FLKMnDsUY{G2{^`H&ZY&_%>h>L%_ofGxlYzin+be3Pj7z{ndw4F8#&pAwOOs zm@RMaxcAYw|GKq}6r?@GbGH1{{C4Sve@AWeg7m6d%A56IgACCYqF=ih8RMkBo;S&cO#32VL6U->p#RkBA*ki3}EPH{(#{`DS` zWG?J^E1Z&_6j?@#^a{$a$J zVawX9<#EoFm(a5d9`8K%Hxm9?#xj|M;2D1#!j1mW{_-OrQJvJWAI5-nVK|+V29eG^38{JeHuSaJ`lTrlDlNEw{K8-@0W>idNYwYwfOV> z<4-XkGDC0y6kHD&U*Ywpyz-MLCvf}e?VnCaht7}sT7Z(+QLwTOD zdx?X|i?@2^{qcP0b(x|eu)o*xWfn_RzVuzJsfQm%;4$VKRDh}B2Q!B;(VeejmZ(&0 zCMyO!z9!^liSB_O=Z17s?5|m{EO#BI{Bfe)z_L&-*lj5Amr%1X^5&jQ7{iM=l4V5U z*6+ZQZsFB@ogrQeLPz}Az0tdXDW2$eF{UN&le${tv^bY7;?OHBbnPwbiu%I5V~}*R zfj2OF#K->!XUrYox8~ z^h~$CcKa4jOmOFALx~^M@kbd>c7RugfI-FzKk5+Vo?*gf zlwo0HhL?0WwquZFUfheAQ`9ZXGp_Vh5FUZAvGW4c}V4 zu-9eqpl##Cjps@PA)wla!gp;sn9VEL+1+&M@0_T~TSOUu8^x+0Y=xRZ{gad~s52<< zM*j&sAsaxs(fO8igeYvN_aq;h^2C||$zQW<4>b{fU&?mGFceWJgEu3J@421hYjNte z*B;&ppq{jJnOQE&w>3TTmmz&j2pZVhZQ#?$ei!YIMYdl6xL}Ny^S5A+)hv46wE`h?3b9o#-*I?QJ|T7#ouYHJ3S z6of#$_Pb~fHp&1(cp#9n| z0mGAqf^N4+uPmv#Pk2m8wqhwZ<&yOsqoQcnz%EE44LqeW)Jr0v6P)*|oe*3wG8z;e zo&3jweLrsLAJoo1WSQ$++8N9ijbdTIg@5ZlU@cU?;{WYG{fB@4mKNQ~#N~MY>DhJJ zE^4e#y-iT+GF-jMYXaawIc{+-wDp|oG|pz*cH>3jr);@yU|R`4i2dQs*^uR+iEr5> zEZiz_px!TG$ox0okJ-9?nVC11~qQSd3<_xGa#;BPnOtdBX-NGbIiogBGa}oP&Oy^}~Pm=j`P@xD!#(w({#X zHN@Tgtv(TpK3px5@g@tfho*xX9SqkB;G@xqBKuop>LO>Lo$MO6h(q~6k` z)7s0r2!9?SdtAZ||N8A~4D^>IpXY1gdtN0zR~v_ z+`oNfVCivo1N+Y?l9I0xXytYn;$N5j08f%?HZ$`vtFP zOUlKH;b#u+dZ61~5S+j3&FV$T$MSGAlj8Q5ZAO{8AMW=*+#$eZPSkJGU1qW<|F92{ zggHZvP@DTcJ)Rpp30W_I9~Ib*K^I@O&{rObwECgba``2`i zkUgix^tM9e`yjW{JIOlV^di~Mldmp5zW>)O_<7q;DC@Xa(@%$A2AVaCd!go39mV+k zH2?A6H#E#vyX2&*kg)dG@7&-NNf6?wLyb#50`uR#dF1mRe~2HWFA6;R*W^ondLnUx zDUL~CvH74CbJ2&G*<^S%dFN%G?HAR`mcstC-#zW(`NdMeZ2O& zS>iTnes1+R9KsiMmmR`lI9AY`5Ajv~zphWi42FZx$7 zxkDVyQY@)Y69{7Gj7`A$P=v$LCnWIj!YP;?2J+LOCb)C*T zn2?J4&z{NpqDw1o@;3CZW|CY*!8%DXL@3#Wy1#QyiI_)|K_#LkxP_y%-rdHEdk1Ye z+Z*dtkS@_Q`DvJ3EFQI`5I{MlCrN@lP#tY2O>_TS`yfv*n3`o4fw+q&*I{f1hbs;_ zZ_bVg3fRJ@9E^)qHS|_Xag^pBCac2pvdf6)U@RW!zKcFPdu17!XO;F@2ZzXjTWF6v~M2^ zQ2wETR}UB;3gLk7*F!h)sOR29u%Qc%{BIAcjIJZK3(C(jD_%T z0NCl)B#_)|qyoI4iri+;Bjb9Kcgpq>E%(fyeqi6CfbZBT#2d1L*4~JrY09 z8MW(hn*Ei+E`2W$4QhmqF**!c-4l(uJP;QZ8;j{OZ&}RsGYLDN&m_})25+tfS;SMa zD0s(S03UUu$&zOmGA)`mUtAE~@gc(2KA}J(odA!_y-7pc?DQ~t?n~(Tagx;r>T%O< z>43c?Tw`{0l``nHrBXg-B<76NqV6cF5#IP7(t9AG8Mgi&@lFPQvpadPorU`Gr^j~5 zlk5{r(Eu)w{=o>?Xcp`D%=g5C(ghFbX$t~hxAnT@NuR$q4;OKqBK^L8sy&@t*S_&2 zJ;rp-v!}UyH)MO)3#@*J{vdP4Nxs=k6$qF52bd|3c#6Te`H17~%lPRfgzq4m%l-&o zAku4TySd2o*HJUVb!}MnZDK?}9&+Q|$pt$(-*+FNZ(_Elfy1L%`Wk&xrO?N`zL0|@ z{?gyptchzh$JfksP1=nhK<;%rPBeP@>x*8?;zg|8*CV3zdKK^y)5_pos%RZ|?)+%Y zA^Fq_Pxl=Qcj?2-9ESK^B#>TDU}bdo{X>4!)^UGWCWl;UPvP=sP61!O6U(}5LE#%C z4TqK&>5pfnAn=A7&f^9!ma(qZ^E%HRtBcJFf4JqeA<<2WncpAI>U0ZZ8C|#c$`BNl9SKsh&+2sv z*1_TQ1|l9*IH^PFiRzvC2Pm?A9pv5sz3Jft9_Gu{ zAtOyR$vVG&bmu@`V1!h%gCji0zGvJTifr!$jX+2|);rrTqYwgsr~a89qV*e+kT;tn zM3gh4&glW&L#M1_p51IhZ;vOj-%3dgrDi25fqcyn5?HvAgFag}q;m^qwS_CBk{LZg zh2jz6$e+nHS2GNJml!qierE`#xGRaFlU00)owS0Awb^it$g%|SX77T*2VQ(cNXi5z zfw^cN{=OYVQQar5Q8IJ8V`jvD z&)BXRjaj{=uC(gOa^y{8R*L`gU;mf2<8}V}%)@Q%*{XMj718LYa|9TW;XRYRVV94x$n_QU=lk! z*A)@QY2Ttl32vXqf4U+m$aEuen?@IV3(QrT#v^cM6^BO2O!esQS8*-cIr5x8Z|!8} zSs*`_YS=g_rZm;-O4Ke;?n8vGYW$JwK6B#ImUOpE#?}X(st#iz_h0e9P1`sjwwb%w z5PJ6}qM&4K?hg@ZyfPltG;e>Iv-oyx{QcZUo34y-+))%r`&b&{z9xsC`|?3d3c^2; z8;S4v!g}jQR{`nxFX6sFgB+!w#TB9iEyn9{>;}T|y$X3yAmz26>TU9ZAezt!syKb= zyj8v1h65O7?(Cu8Ru9F3n(tBe9Q(IxyEIvlEY+1arde?ND=M}7^RCwyKK>c$Xdw!+ zE}72NG=~}adgJ}CK{AYIe<85kf$-bDB%S^4)y3sjzrN0;i!b&nhGpKO>d)V)WZ$>z z4$eL+d-M8=<3)LU|B>o_yjJh`c+L7aXuTSe=)LVqbilAl^6~p5yp|A1u3hltbn<#U z|L{LWkYr!`zq#i;xDv_gQ_mI(;j5jx`Lq38?hTXINAWIiBib7S!&mR%^YOh)bEng@ zJq0^-yFS)`_er5H`4@G+G3l$H`cqpB=?ta`{OZ4l4`R0;ed)WWB=4x7kH6I26rxuk z*_ZtM!2hzXkRTD4C>wyg0e^;U@y7GQo$hQbX*Ct|^HXuUC_h`K`LVZ8f4>uxJ$}6T zAc*L+E<0dO&c5^>|qW>H+Gk!ZOf8K45_08-`Dj}!EM8R+8q@FH1Oe9T1_|?jTnuB)h z9h-j@?j?96%F6e@Yk2qP1>|2NnKkKUJF43buiTthnaF+-6RB88$Fo5jUbfdAF|!|M zB{fyIV7yEH=Q)lJXI4f-^6@OU{oK8N@^SowZM^08_fy`9DSOFO+y8*cI80|J;C9|c zv-@8AauFM5{w%dWk)Px7?q9NXNP+9)pzJRky3FKPaLeH*|L@gyaVI>q-#1oA>(8rR zn;D#^b;LSfoY=_n?IK-+#l|x2V(^%PaGHeb<#lbsxe-C}=Cqyo2W$V*dRz^48q%Og z{Bv#}kc9hnf3BOUU`daLwBFC5F!c&={--uZQ9GzCCZwJ_z+NNvKS9l&{G!|@~W{Nj4m*KKi-YOH~E)Z1KMI6ULzi>j| zxZvFP({;T$akRrC9rCc5w@-TWW;Ee3LTzF zqn1-pc_YOj@WEnMhS6izneQzt^<(Pv2t;Lvbf%qM&1e%eY5Q18Ga%&MXYG4%iF|1J zZSfs2Ba7O{n2~&f>Dois`#xq1C&0i2=!M$)qYJgtR{xk3Yh5#q%dm7bqImV!u`G=j zsK8XcL5`FNBB^!2Ow5NKNxJ$uG7Kk`=`Q$0FH`;dN=!~gr;IZ_|Auqh5?I8c8T8}0}rgYug-##rofzd z_$G`*xQX|ot*H_Swp(2IniL>eM9x?3M4Ui=ap)5U?L(*=7!Udazmj&Q3%k$n&aK5a6 zTPI(rs|+A$qvDV>euLSZsn~rsk9EnG(RsHolBt+N7|C-~BDy0tZIk^b_vVN3%;AYY zg4cD3B|#Ce)uSv7ol{M>GYD1TPyc9Uk}cW zr5pI-=!MHNk1~sJnt4$)6i)!w$$YQrc9HcwUGcrPGwl0Y4(;Ljl(3ZFA8{KO@E@Bk zj2{eo0Bp%DK27oNumI+-P0z~Hgr5(s{IY`r4DP4bTT0_e-2Oavhks9I zEcH$zi1-9c`O0(k<7X*f=5;|^&*{|wY71+1<=5dz{3ZTdWs)EsRGCg zYex6c6`HmY9;<+@RlbUynCRu%wrr(lO!ISKw3KW4iayp{P9}XT3?T!NH;+b#8esMBOGBeF%6dMRb z`ED@u#q>%?+FRa$N8j4`@Jbk}@d`J|5h6wTNi6j~tD=Pk5_l054+{Njvw8qvFDfHx zD^fb*xZU}gmgqI7s-?55ji2>(6Ra?8y^gSP)S?IknCa*xp$cL0lda*x#efXuZ0~7@ zVu^t99P@}X(oszP_F*}Oc7dd(?}!UQcq^dhu21mlW1FjHWi#h$BBo@0rM_v36|LcD zS}V~wKK-~XBM4b_+lmGMKil83=S^IHs4Anc(P_99KNHo~a1kq9uDe`-g%Zejm5&cJ zx;|z@2I=d$^#ZcODVudUT}?8C1GD)UF1M&DW`zu~Y5NO`t5tP0@Kyn%;jR98#7!?( zlC6oymb+cTwZO7JBmmuMkM5~w>xRc+g-~E%wzHYv8U|^_B9zo3~gHS zf|;8gBN12g)mR&)-l(b%iw?DA}ZC;HTaDL6~ zP`xl;Ft5yY|1YJV#IJ0HWge&5<(n-uzNm)8>(Sd`kW$h;VMU(&GLezwY;W zTl(=~T5ywQdG!t8vcRz@^*8t~pxpBC?m>?4@o9gi-rn)|%%9PE?EtoI*Ijl`ow9>x zvp+Goj%Gt6l?fhv(Zor324}LHU!gz3+O-Db|1aFUdbL`M^rsK^hGSV2Nvn(FQ|CbB z{*Y|5f{2x-FZg!c|Go64-`76d1~m?YPFH-gZ_&IRgMmK)+wN(l&QUk+&qcQKueoVx zzgeG*%-6}KYx#)I$-*TE^@8AS8|rVPohpX1xJrec4q0(~TupQ!-rcICs;YAs$W!Ms zR7vNVshT#FR%a(*D*Ioy^y5lV@GiTh{f-JXy!D@+mj@wc%g6gt{3hxJ-=EL(78B}0 zp_5@I@%7(Uvcc6t41|G>yDZ-SW1JJeoT9%T_a1)Lb1JfL;bG2b3P7`2qu%`vRB*rS z!F)e+^_V%DwEz8Wn!1`j;N*RL`!5%3qdt~r`bzU*Yx?X zVV|0@PJnIK=s9~IyI*l0jm;mOyb<)*S5SkO=WcC~c)C1F)?&VfI9vOF6zLKV-7@c9o}ACs3HSXa z6!ER$a_s*pUR>q^aeapi*!QH&m#f~ZRqednocpn>UViT$Vf-xXQK6QUp;-NKXhOO* zy*F}F4u+o%3`15O3Cy7_KiJb6@mmC{FJsWmL3FQxiY6fAZP6?|#^)Y9G56Lx{SKPV z*GP(?b(<)WP)M>6scxIVeJw^We64NMNelM9s)L}eA6fCwe1%c+x%#S!syDTUu7hae z6Hhlm_jbp!MzKS!IDsa7d=3sDMB+!n=s^E^4jur~&|AP5%1Cds=g#SHwGF}9*vknD zE(Uy6kH93>b2-?rf4%kDxGAL{%2thlKL^3yJY9}G9yrMtBlZEgam8iMJi|U7ZWGw3 zSr;8drGb77Cjq_Ms}o%~@h*9&=IWmV7-z!q=~+p;J1WFvH@Om9A;T{2{ zSO0r_^y+YlI^LtZgLWRJNz*QAT%$=wck3i$-ZlvLBml}hs@f8Ny-fZ@huYtnrptE% zzDc?;U~G9u=&au?3J{yXP4VR=K=OPy6JYpj((6-u_czO4KYcU8i;M8=_`&0D9PIty zXj9(6+D0sK(2obD$UOQNDyB59-d!kY?hduI$3Mz#L_kn3I!b@w5qo2F`p;h zlIJzdm>ODw&Q4Hyl5*=bxspY7wCPaIsz4mSXF3PQWf9@%? zL|~=2%*OQBIbT7_ztSh~Z!1v!oa_ET6Q#a?5q+eS`qsMFHk4`#)+L@7@JR!ibjL>o z-M94oZ{x7Y^)u*_IUQf`;e~ho78FK%Zo4)dxN2JDo}J74AHf5gTIG5{@Y6WXe2dLG zbi;*?^hGAI(AAwZth{MQyl#E}@RXO$%LOd=lqQ2};=8BJPs@4TZ1ZUzn3tsY@=uuM z!n5mBbmiLVHHEN?o|Vgg3jZ<9!$pS4lUidcWqb<%dnr}MhOq59`cjX<2*__wMYl#r zG)#Rp~fj3yfmXcN9cA}au)>J_pTecFc0$NCs~>W}Bz?hIW6?CNDz>E>{O zw?xx?JHdG~1=p;lj%Pm)hNI2W( zk4TBz6Eao_Arr|@i$AFKneP4C4-mcgTpC=Eb+5TFF1qZlY-q^*3sjF-tvv}Yce#4K z8P*w?>0nbz#+5C7CU;6LQHxy=(-p5-PS%L0wF1;uKDG5MN8Rfzj#>D!AcxZ+_i;dt zF+QMnb!-yrmTvIM0cY($0e@Eb8up6M%@7IZ2f={+o{?s{`+81u;yURIg>6@QdCZh4 zVl??Z36pm4nKv^WMiPNuxg{7j09ZG8CVYT`A=L`JOrP*X1##A22optEE@ce2r=AWh z0ScLc!)y(UsYe5<#~xbf(R4@MKueDda$_KZJ2jy2DRoW3i4kad-0F~fiQDLv_<7I% zJ{}g1|KDRiXYuLo2^hpf{{xKMgf7*0u}L$3GQFk*&!(h=d z6(m|_J!@kOp_UGw5nVFtZ1wuZE4=l>*U<-y+%&ff3*BlFEGR_jOgl(5Q+_tPKi%MG z4d4K`hA!RF<;(cH4y+C&3Ty`#?#FR}=5bs*5|DY$P{+jF!*!#SrK8`{G7p@a@ta0| zwrXz~O3RX!`V$2v|2DM{Te9ZOl^4D*<`v?3rJJr_9k-ze{Ym@eJW*NE?faVMo@v*u z{b9ZJ`f#Bv@K~ptwhhtfJ;oWZls}iAF@gC!3$pX@!z^(ADvsKQ^fqobpAqre#DLNI zO}@%Iqb#(A*|~KEezv=h-m_n%3mz)|tas)ZpImyN4{|yRSyQuAcbgV&x!0lDh-Ioh zHN?SR=|k}`bsv9rW0VCS2fMrs^)QN1jAy%i@}~(u3D1YUrhX^WmSO`+kK{3s8^ryw z+1cprNAsE3{z4?6fO(&)RA!c(No8G((z^mc{&-!r_dObu5u>E4a*N9cJ$!dF?TAfw zw#8x6$nfla)Vu;?^jylSlktjB^03(@e`94fxe+}rzkuT&&RW)>{u-a+9uIIqm&oVs z_w3saBmeq23MZux(fw4v^~vmyfe)W9zAhBcp8l3E4ta^F@UkPZetIoG2_vgAOzjb zZ7QoWfAhKH!@KQS3#9kc@Cml)qCLkGjK`!q42d2gym&(I9~QxPq7FIvadn^0`B{$( z`pdTKKT5Lx2$O9xi4s@CF5V^La321BneNs8U+-7^Jnj10i>xxY*wbrEK4~)yk+bQoZqm+$EZFeZTzp#|5D$_G+g75qTk~UZWTY6cT@f~1Lx*qd;?B*pRUL7 zvcElvjOy=jjk@nTp+9g`y+Uo>YgVt9QMys=-|RVQ*ZWVm{0GwUU0_0GY6I*Bk3rOTWuh|6}_lphwpd)S0CVA2W~ZsNVll4(-n@&41$4 z;n#@qQoc3KKS6p+AMigeS^p&roI#UhE3u(WkhekY;%7!99d;4056L4tpTKGz%u`Tg z{tb6qzX^MP9*?$J)yf6SHV`UwK|{y6Hv5@h)~9h`@}bU9r{P9ejg&H=nqn|aBnY~`Iegt9XwK5rkUcf* zf?lr^;bs*-lFN1ZwYTD)2#G%y{6DN$Cf=|-9C%Inn?#XqeXx`1@xv~rDn!}NJQXb; zUMBBZ^d${rJ9i1lhXAu_J!6XmLsgot#s$g%w_f?yk5R1zpbX%+oTafdHJ~a)XTv^E z`3(Frp8|sJK|c+PYG4qC7Y>;2iCyN&&6_*s&?eE8hg9sm^coLP5zIn@!R2gBFa|Lo zt~W?20Kh!D2%06KO%qfTWQ$3~>}9v0D4HoLBAc6ohEbdYw=BgRV_6u3U3_cm~wh4`iyTJ-cli$2~ysHu_%g=3_FClZ2qkM?e=RCcH`Zj}UP_)XcjLc0kH{9>d z=m+38v0f@^H)|{~jk;#wY|KMQM!)fV05wM-;P}2~R8Up%0G=UT$fj<17W)j~33dmd z2zc=?X9v^qjZnW`x@8Fy-2rSKbO!fBQwv${WZ!kER?i0Ce*gQieOpMp#FCJXX*_oV zVfx|IAZu)DRMgGh5@Q5zZy-Y-haqy=Eltr{&o8+s?t~8OYl*@U6|S7V8)4e|WtAk2 zOJRbORR?>EOoaNhVYDkEz8l@8jDN$TabN^$y3? zw`3W#&PGe$(#3TB$M@Kwl#d!5b}lA+xM9=Wo%Cm{XqMM=FdlaE{$yGWpQckc=oM

#c%#-I$ueQx!#<}G$~t{|?8j)fFW+b)zns1-a_mp` zL-EICvX@MRHtE5p>p`@HN%GDH#V>xz^ks&*oD*F1#go?{S&#Ix0^y%k*gMXGpgsl3 z@9oTFMBB;i_p3b#z>l$^P{w#%kl*}-+D~(TPd0ujM2AQ3rI4te7c!Fi1HmHvtWuDy zgU!`RS6}QlxWD6nKgCP1yf9=48lbd_ICxj1R3$Y9CjgL_AT6Em}V*uVseWr!9sFR zKO+CsN{Ha&l|*_rBbHrc(rRERt#P!ZL2GO;%8!*#3FjS*)$t({q3$@xxctC6%LpodRXi7?CXm=KfaB(zI7 zIcSz(bXw$oLoq5emCkAes~CvMlPPTHxJ}fu9flG+X_IiIosMKgvFLq}jyUn{q~1wN z5LsF?NRfDilW3p`hhbz}ek^v2Teqnsj`n)uMfj?+T!&71a%IFhHmKRdU>S3xp~)~L z%4twz(lYpm0BBj`8=Hk^GoAbF9jn!;f-AHHcPw1c^J_CtX=y^lH2$Ce`YX>z`m=b& zEZY{HZG+zy)~>5x=?G?fD)>y6=lS~^5XoZ*{VNYdt6^6twL1`aHDbkIQ?|X14Iy>T zXoc&TC8M9#AtGt0!D~l6RKDTM*{ssmjVdmtRc!5*%d*YlecIqT z=p9pWf zsR(#*XzSCk3rK?;-Yqhgw$64b2hxSIlDV&#nS(s^9Io!C)Fxdu#gtVp2ll4DDkd3R??Jy^4ukx-aAQ zIyH~|--`TwWr`;FVabxX?2qes@RsL=yODFZ)WCu$t#z--E|T5`NG3J?*r)c`u|DHe?yCa}o;y6-La%cfErVM9 z-=EMY93S4uw=XpLw*7-o(`T`uX8THq3`fK9I@J4d?wj=Tq4ytl8T!wzzSncL{;wy! zO`_YhbcgftPjd&7ljzgbP@wuQ%7-rfx$X2E#CA@;6qjsv1?)Oy)-BNe4>^Q!Ab$Rw zg^5c-rXW7spQ}Du_~rPRCVB~n=kMF*8AO#=H%)ldB>lVx%D5oiLaqDkkXJ1xL3A44 zOq3WdUh-;mx6(Z2qW;@0MPAi)Q#PUpTOL;h+!CU{`Hut%JtxkpHBn!2CtiJNP&}eQDklU8oChpvhQRGrWPzKg#j&GlF9Im4W#(zvp^fjbuqyam`T* z+b-?Pd~>5(JE+ix!%hs%JlakUIJuo~Q9$`9ReqVW9yqDq&>_Ynk~s=zc;~1)HPL&V z59KMec|W&u3YRVeT*oV5L7xnGK1LCnF}unEW>0EX`uxV!WhFwGTw6W{Iapdggmdsv zucW2xLFQ(!n3+GLBhPN&ntQ!G?!iYSVg@(+Jm~Nph9u_Q^0w7W-M0BtXFx1w&H2<~ zZF-xE?(UQSSphQa-Cl80omX951xkW>cVES9&X#{`Rt2bw1^)87H9mw zteC`yc73D9@ZrrqPD{7xLkn+FlLTQOP#p9ZojL5q zG>)YvNSK6*2(ghhDj%ql2CI;@5sCn`=%qobs1>0Uw}B~e7L;|@W_P5caf(AE3++sZ zUEJoqYz3^@m<2=tF+`M%i(j)@J7WSHg-Q&|vEG6_IWX9#7lR~Qzod@L*KjM@=X}7U z2^r>|@n&2ch+zVAzWB80(Nm+19tFQr7wlP=G?%qHu(?dFF%AS~JyH%LvTh2sLTQY`F7DXfc>j)+q7u>(=JOXP3 zZ_@=-BVC^`O@!?4E!GvC0D7n>^RHvr-*7cSdH0)5vy?KJJe;ekJs%>-ip*g2S~Ql& zehdsUcg#m=&>lVBZxc+UlG)AjK1L}tgUT(2s1SaY-GQIO?k}cXZ_M3Z8&CL8sidcg z9Ui8CD=Wz|T0-yBb$cJ& zCWsI6+j#mTnP{icFU^&I+M0+E@#}II#9y9%5TYyzC6~bNoG5HQSU)IryH-={{I}hYKv!ZYEieM zvu?VAF-x)Z!w#2rI9ukP;u%JEuEU=s2{ePj5Xj@wrR(V5Zhyzl;J9{3>mL&1{FBfQ z&Bxyt+vC56HwH6uz6aC#c?s7gjN1~)Hruy%3z&=~KK}&|`Hb)XlDQoB;KfuoQ^6F} zzMpIbz?fbWa4YZAu?P=8i@5eotq9U2DA!Gt^`H6)T`oyLGCW7zmEXS8SpX*4J?+CE zF)?xXlQvYvO@|^^edbTRrW?uZrBL(VgB=bv+XFzUS#fC0el%e(Q!u{rSq>&2A9T@o8`~#yqs^tB_|HHUA?5Pri)<^kvTDQY9N#ZO{NK`;CzOp zUM2u+{1?!JB*M5`l&3>Ih%u*;G_i}8%wG;yb;pW@!5;vr;gVSPm+ z!#SA54%$vHI=gku_UUR7L zDfNDdLpAIdO0ATX&E;h0+(um;X(IC(HW&7g0{Y&hA9UEg+|D~ln^Jf}MN}&nwUtMh zR_Vg@1xN}a)mENH1#=T&K|1A{^~kJRWH!!pNsW>Rje(j~qqqJjS22EN`pCo>2b240 z0z0NdKXbQqK9&G8Lg7sGI~cH>6!YA!SQ5Z`W}0g-;V0zBzCim)5K3)e?yunzx|0Gs z8CHPXXqx^G*1({2&!XxK>Dak=#lG&Gx|pa3<_X(%#F@?`GIpyyOJ=+hN@h1zy8~W+HeLCUCEni-Nt^rN{ z+3bB%+50c<24;kV_X;1-h<9sJFMg`8ejrrO`v7&*@6`2|VY;L@NOT_DZf+(t=$0Rs zq1VS}ByLU5Lu8JjcXdH&e+iL!^-t*Mp)TW?o%!m{yGM97>uyneZ? z`|!=kCR3cG9pkIUM}JD)m51^AZO*@fV_7j1dBam{WTT~ z>u^o^FF(M3_vi1Z-^vaDaOHH-a4Qi0+jUxRqeTrQ52BcNK?TM~5Tnl55IPs4I!;Vw z(U*N@vdvnciP9(Nz%g!1sT|kGq@_*QUCrc&-BVFxLW0v;$NPZF^88QdCk!4IjJDu+ z?&x%%wum)pP&gg>-7Gdkd7_rl@1NM}xFmU$i;>f5Uv(YJrq(*&Iue*Q?_YboW@g5H zp=Xai_3Zxtu3|rtb3dl>xw*G@_ z_a%xt#~*`_&;?gNY*5k0BL6WgJrfZw?|_xNoq2CBI`@gR?6^p4`vXr5K*U!W(JTG0R41Aw% zFvzh1M?EbGiVWtcXg>f-Xr0}ghPW*Utx(xMiol%hzH{L8VZQUOlEWq_;;U$UgUwW zZn~bKjgWyI4W9XHVxu;VW_+rnRadK35+Hz3-)|lt;vj0h@f0ikzdY)j{yD=gBH+3J zo0d8tEYNPf>tEe>yoh#th5~RZv=*QMU>zK4c5Wb8=uW? zqS8={q&5~+&qIXM1efQM<^g9^2TdKUSWn|9nOKleTxy$fgZs`xnPl=NCYUW5PB92V zH{Dc?$6&NcZ>AMgYAxNdTtWgNN|ha?UyIz`c9(1uTCtm>S>Kt{m1b&i`xP4d;n3q~ z7nmy43!x8pg`>!iPo)XK9Z$kOaluC%63sGmKYzlJ@8^BIp86G-I(Kz;hhfBoJSKb0 z^cr$--taM6`I(45#4&;!7)s$ktdrLP5FA)q1XnztA|Rt~-6Lp^w;11UOA0T;50iMh zN#7OjX~z!%!+&SeEy)bmy*rCjV2As}e4czI7k(NZ z{`_?7+YXuP-27;NQKrC=I- zTMA3l%MAw2Plv)QOmF$k(YKq7hx_k;iy3&XKCqvExy*JP)Spw?EVm~cC2qy5aUj2G zUxZ_NcwqhJ&WoTAaZ5pPPt+ZRiN&Kk=hs!9(ssX_5Q;ZxgdnFHO!Od$yC%aOEze2-<{AphZ)<--5?^!gZzpmil?8Ac7hCa|y?kzIu-}YbnxK znBoPFT3M0bJRPA%|`bNPT^S0?(ATB z3<7BDOezD7bRMKh-v@Ek=EFxVDBHydT3bXx-8}HIqQt0quTi%w$W*nNNWM&hJitkY z_q_gSBn5G+29@KK=b$h^+LQ`bqd_FT2%hdyl4mp-sLh61=>^5XWW&uqgBk;!_IYjA z`4Hj(y))&;{ca(WKYF@c!MO>0YR3y;u!+Xm1bl*;EZ$RrB^q)~sYcAr9_voWS;wO& zEoP#-P~UKtfEm}!PF}Ilb}*{8D6`8_!tLx$pn;}_dD804A(h$y69MTRBLvogg|pgg zGRq0fiY&`gdElclyrrFvCY<`AaWnyDLUo{Z00+c+dS40E#Mepq3xN&tnVl?Nz5vjM zi^0i^Y{c-ZIve~y{WB?}|LTi=aEspmlKL?hlQ|?C=PLmIk~c*|IuUz2u`3wqE=_`y zsl<~GZb0EO?XCvcw7tW%3eurI(Ni-ms6R)ar}=GdZZ(MDl@0Pr$3T+_n|z@PIpPXmthg9f{Ws*onxj+e14S_#&F5{5~x|M_{W_Xxob7CY9{bd>)ru^SnJSSC)xT> zOjA>V3nfT=92YMt&Q*W^#G9$#XraE!ui#9YW)jly{no;v)e{|hi}ukC+f|Y4>PW;! z`n&HBTNW0Co`WnHrbwtF(jNS^YW<#;suJP0Dtq<~CJ0kwGsr*^KQcQnRfUo-Hf>Ei zP5V5QDh*04!bW#83xoJYwaI?L&z~M)-Ch(U#=PuwOF!+8(!%Wi8oo0AOjXP722ra zq$jeh{w$Wf-16nLOE!?@(J=Nd>GxFws<9`}p8H)F90ox4S+A7nzoO(_h}-1iloS6h zUdZEy!XCaoPyDT20v6qA!aq*mFe=pQxFiPP(Ij7`zs1pE3j1nb$mgXjWSvb7Yr&r0 z?w@^L8#LUW=Ca;Jac@r>a89e=&SEH1)^tyq8T($n|N8dP@hxI8E0U$-$&J0}4_XB} z{WtnI6aD?P17nMS;XSpK)T)8U$G7ch8supsaLP%q4*7{`p8QPP zte94qeSUNae_mNEexHDRy1IIwtYI*VzKiQsIGk>JwKQF$k0aRHoa%8s-2q6$)ywHi z&ZGA#Dwm7wz)rs7EpqXrW%fFLPuVTY=8gB`MJ?g_cAd+zL%%e_ zgUHkImaJAG2CbUcQo%s6CTRnCyGU*(-|Brri7Qz}Ko6%$pJu|h|4)c|+oEfQHhNg7 zlI~#%aXn9!Q#)9Q0*`QAHRQ~?vQh5=l}U%#4h8T1)&6mhGN*?IanmdT<+Nr)+$4Gs z485brrkFSf+jhQ$V_vzbLG`U#&|4O4xciYOLvse(Sayx{3M8Njz^O{ZkJ}qd%FpjV z>2`|OoG3{%G*O2P)*_SDA*PPGhg&ol;E&+mOnThtn<_nh5+dKxJ*)KOU91H%U==i`9$b&~Z651Va0 zVABQSI)j~ps(4?_GnN%tiu>mni#5YxK(#HMj|-r)T|xx7rEDgtxz=t?y_><9iOqk! zb_$vBu7FQ*$(nx5ZsRGS*-v{*=b83yGZubsn9yU}uSzOM5KYuAh-C8`1Pc{rJpz>o zY$A*uF{}Hl3RySf|Ng)IccI}?eNX7)r3bsUiHgk~3SWM%L0^5k7Dlt(T*v21E&?Xv za*x)RLK{$N-b^)4=DT0Uo9WI`8jnG4%zcc9m0Cwl4mzi{a-dncFJNN%zkt%{@F610 zq%rXb7t3BAY*)chgRRkk3}?aXexODLaaW}GF@^jvs~!jBCIf9E7H2wkKq@N8vonI~ z!dW*tJs@Id!q^a*g5#vTm$R@%PN&Juoh0S;?p!L(Z64YU$=80UQDXY6?>K3qf%YA` zO|ev)l?y+rQzKPzE2P{c;tchaf}{@#VXtzeA#EWR)2%3Q+*1=HV^%@Cmgk_-(YCA? zQ9Pl<@e8cuA`_8KDlucOpLh>!{>4rMS#uoT+aS`jwu#wW65#oQ!A)e^pu-#>RxZ@R z$6;9xxlcf~5|gOVRma%(b`x)O(6)l@;-y9#kU(d`aXkIvlx3HEmft33_~ww2`}HGv z50ip6i}FF7gjr50fiQk{@boE&_5D;G}B=28?7bbaxf*JR-%n3%ZroMd% z0O=zaV7g+gmtx#CYjQ=dZ;Cvqr3sGZIq-cGKV^B9XLeL&wUYZw6(?iYTp#NxpSBT| zm#l@0>Dv!*8ROOW_M9SR9wp&u*_L+)7Ynsi*ME{x?y_HaGP9OW?fm{3C_92rU#J}n z(Lf7d#Eku^vm-TF{yJ>KN0RXnPN6;nWIW$3_i%q5V@6D#e$!*Vsi-YIz_AbAFA4JB zQuZ$YPS8S=hjt$kVbP}OzRB~w{B!ZHCi;fc4x=TFzH>htWkD>o+T0Lnqr+d5xn#Gu zgT84|i-pxoFs_g6M;x)CO5*>}14Zvg*sj)vkR1!w2D*n^`#5+?m(aigefd32mu>!X zN72t7bU?jfNK)xvw-3(UCgKI{skH;-zeQQ>^2N`Hm50>0!A6caxSfh>=wH%)gzule zo#~Wvc(3h}FK2~|Y)0;V$-XB(so@2vpoQ(ToNms=C^So(TfQor16rA(-s*l%2DYra z^wI$t1j}Fn49Sfg#T=gkfx)pI3t9TWxGDchv2q{s7C=V8aPF5yNMTI$rdR+s+NW8! zNyfpnsn(4|I0i#(%y>zx19`u3hG22X#lx76FzF zX(MOo;AMuVGf2ra=UcmMI7)^$>Y;ZU-VF|*uis-Tc za+^DZRAP;_%dF~il3^9GWsX%pZ(){|YO$cptnFXdHkOi^eb^2C5{zi+qyq;NML9lB z@1F1>JZQ;xfaYPSQ04}3)AD2TM`H%sw-8M#={J&p%!=AioQlLe$U zRiYoJ{)F<9$X7F z{-Q3fZM!ZGc1sfK&(8YQWQ8QcNSH4Ax}M@Adf)UbzwZ*USrU4{~iDAuYZC zK-1}yNxyy5|J2Q_AHH~hUUmoYz@iC??pGU4*+}-6*ArP>{){*T_fCyl_4o%K#Qf=J zbREb}7VpP?kBj@%C;6Cy-7V8ABCl<=Z^IsIm5l#oQjlo3ye`2{b$U#)E9gX_l9nW% zs%>e4_b%M5n(#W^Q{bNRGY{Sul=^FJr)ZZ%^UvUTSiXw3J+j=q)LndWJ zwmW}47mD$wd5dv^E~ja`xcSs47Z6XN_ImX=2hblm_E8MM$wHJBaewx%xVon6WWC*H zFY^0C7{B(jpPJuax4WICZ_XCYmbO2B#;_twiqSDE%hShnlSAQR7pmS1(hRXLalu?X zAgpHIc)NecH_$_{!f;wTa8W;GuCjk+ftg3rxe;zApm7w{MQ^X=b~V-q8J-U|p6K_L zvFq?da3ASW`69@ZJosU4aRx8*jfSg%c#@c*<$Ll8PE(g|GzJHcbqa;Lcq=;A3Cu~gH!Dk!<||-cVl<_mZ<4trU4%gvzaMZ=^}w0_zbIA`%2gy z%+kP!pieIAf{!tKmcjWzgQ*R-np)Lf^d}cdFYY1IwWnq}0|JM5UXNuv?fA7yaN{q$ z_(VjJJ4NDqbd#Ig)_<6Cq{zg@xnxHsQ- z&*Xyt_w<+ZZt1p5Jdw@;O8~={%h?Zog(9(a`abb;8BLI;;4T^(tZ%GJR)v@VD54tF zG8j_|ZE?7ph^h91^6<}NIHTTAPWVA35^wCxZAsZw))pkFOSEWha+)F*Pj&0yA`uaD zXM2Y8t^j%bVR?k};BO{h?i9z1g3Car2Qtu93#XQt>S2Q86|D?gApF8fbW7)YBrxF~9%UCXRot&>#y~xT zYq%})Zjx+P1Z9BCc);gRcOPxe2E9Z;`Pb{uh<*_)qY`32`~a7V@3_K<#r{rk`5 zLKzSnej?DPC4t4}5!St zdT-ggKG}V_9YiOVd`^;~Q)pmakzTRyZ1|mytcz0;ZNBsQkK5>$M$Pbrj`rC^saqy> z3SgG8S&u?eY@g=jfXYkeR#u_^++G;=-9yw=r`(V;cq_I7+I^UB!7W_UzPqzwi-+!<^1*-FezFQ1**`EKCs5AxwoWE-LuZ9q*7{u7iC!qUX`=6KlxggtYXuuBuTtvE&> zAIo%9o^Q+hXm^N`pEmO%|HUcKY45);ALb?m>$~BvoeEBnp?h{6mn%%hy_w9RI{8tQrX6+e7c)v#qaY|~@0|=( zR%^F9t2tCBiZ4$hdpOAB5ow_a6gWk!p9{fI3ushs+;^M=V4fP zlswF2Y(J+uS4whXpr&#T57Goet)d9H#kZRw|sj8?8=*2$B_TO3X% zHeCRa3lh-ZQY5dlGKr@sM+2Ww4T4ypB=`hUx+bm~ftcJ<#TpiK#>gtSsiwma`x!S4 zfO(jH=@bG@BiI#=aL-bh=2QfeSy@c;VXh=wIuKd!@?Uzy@d^)o%|W%CtFmtYQm z{&uD-n&G=>o<@!$@#DQ0F5&aE*w;RUn9I9K*SAa46Yjt!89!X9WVjKkql{S}`n*U~ zd$=c-E{Sf5oZ@Cq!<^N#U6uF({HEE0xrpG9Z$Q5g!7g~lfJCtpm1|nhWvJ=eD`!@ zO!k+66KxuOBU1~e+OLXV;3m))rS|K6^fZ3B(DSYCZ#)x}ovzqZlPm$j_uB7;x&9+}b z5#d+UHt|XT84jzjl??K0M2>nu$*TKD8x{!`XCtKWT`MtfOAhAY?%pPHLt`>9nONV&2)atN%_vo+ogRNzgQj(0Y3|Cmk`a2-7hW^W2 zOih2^xbko3kI(()Bd_gcsvOKZa>07Tq#r-kro2zjI}PY>ZnGg>7%Ek5Y`Z)jh?$|lGc+wA}5 z{|)xp^8@ZAN$Clp1df@&m*NoaVs9BZf*<1H`MTTixJBUciXN+1(`U0lkMp0Kz8a&F z4k0M6k?ez4NBdTRdCZPq^(HMJmMdzSWcOwDugwr6Gaj|l$Kg+?p3KVQGR>O_s2PIi z*Nfk!L{fNL;{{E$`sH3HWAGnrY_-q%n|dvMVk3$F3QuAGnnXhg+mXBQmfnP&quV zR8xr4&|E~2`b2NvKjEGn{A`~=UDDM@^9IAX_Yn$j$|LFikg2+!Xo~l@?dg4-?UH`q zh|M+szaA8n&0Xd9Vg-0IeaIbrNFRbu9aBN)1;{*)1`)r`vTPE%n0Cz>%&Q;Ogi;{l z_!jTTZM%Qu;{e!o?dS8$r}_CT7JOY@)%YCdmw-)63S1@KZm9b(C+F9FwoCgQXMot$ zlULgHBSBs>Cc(#j3CjS|X5pXTCwwrZZvvK0Nu%-?s~YGwTjB%~f8DVD870rt4lTPgO+h;-g(Z(O>(;gq8yi zNEe^JIy@KPpzgBpfL&#(FhwJaW@zXR#>YFwbX3z0JFD1xe}T)`S*sd*+4*kx%p=pC zk7#3ibVqIbLD?hG%A}xYpkQl;$3OjNpI=+O+kwJ|F$_BV-?1lC#VCJ4jT07+wjp-3 z#n+?H@bgt>3r8b8+8dT5Wq1Z3V*u&GTD1JkhKe zKk(yfjxi~#7?B3q@h%O(J*27+!oUJwIciAWVjr2>5*m)efn-_bu_Pja@X96E#bA>P zuISw*duhf0PY`_U>arvXLJl91KJ)j>?6r@ps(br3NYDaiJwyx3N ziJe5AX%5gO(Y|2Z7`;LmK_ZTRu~%fdzgHe){UlWZsO?g``!c)a5c1j-dr`-_>PKhSc5S(wgX+ zWr&BHuj5#>Nnk9g<4=xda=Gzm}Iy4~B<#?{C5)VlVD zB#e?}5`;+p26gkQ6HoiAesjA)vP;2#j>`1VD+3jUTbrJD2EpW(A(Jkj=fmCHj4sCu zJ$%RtHpx$k7egG8?AB{yE+a|ShU~LIwqZW?pPd_JvS#$#A4sj!zlSjI} z5~m_Mi-|wC$p!fIGROPto~z^`{F$)B3tWP!lJ2S^ z29dc25xAD~=zg8o#NGs@bw3vky~)S)`<6$N^zMtbdK=Bt$9$bOr))g;7t*b3mJW$9 zhp_ax*Z^>Nfa`GU*Sb}^hw;ZX<7x7EBUwS(&w+(O>BWHXd=EMtGcv$@{#N+4)yHTv z_Q}7w@Q8heR#$uHH`iJtpr2^#c`~bA9?ygbnak;nz}v~JbGqeYdppFEp_OXnU8^B0(CaxZGIsDCW zmNP0=ELgg#u;xNpHAj!A%L*-8+&gx3UTYC0x-Rj`>G~7L@KgeNh!r;^>b%U}W`aR~ zPpjzQW52y^W{q$ehkHZ=YbHoZKB1@BN?(StC7drADC+DCEmg~CQWq$T{hT_fH*0JO zTvM|pFpfxA9feEm*)3XViM4(6&KgM3ZG#tzq{j5REd*mBSpj?qI3UP1!}&H*3CJ6+ z8DwMpneR{Uu8S^-I7m8|NX$Crr@JoNI<#aqd%Blba}@06bEeV|%j&Hdk2ajaNHy}Y zHD`i><2X-8$njJ4JMxUd~suR`l}=VVLX3ah62K-1?SPjpf1)Q*`wx`%U< zgY9e<<}@&dzt>j#yYc52qLr;`3nml{yii*v?6qmz8>eMzlL*U0M5YLa_WcRk&E2hC z4ZgvZM}?;&DeRkJDMLznB)AoPR`|NQ)fR3JZI51I9a%x5mxUy5I^Fz8MkI1 zFJKjZw_#y;Y`67_ctSGI-bG<)G3%B|g`SzB9)h<_BwfdUeb0Rf;L1VVi!KGJ1n_>% z&y;8QnG7yW{o^qHvGdX0=jnPzsQmSEP?0(eFh5u(vBNU>9E5W4#HsZL$zU z*(4864)e6lIxD*}!}%#rmaF^g5GA{CX) z=;lr@q<=x;F-X$u!<=cMKxyh4^vhodl{C0_++4kS&v-DVCiq}NY>sMRVioEtqcYTR9KF{$G3HuWEJ3g8F{EU$>)%Uh^vo1L<>D6Cy3&x4oNyHGU*;nEh;? z>L?afS>Wd%1tB~R0NYfQ^)=&Dwq)V>B1-GrO}_Dc_MV3F9bbcES>(cC(B>^p%7}iQ z(z_FsGsyOD;TA*nns}1BTW09{b5wrR8%>|VcM;73%jI`O8>y76_u(k)oAKguh>rcY zp>W-z!`ex7s*?0O?2`hSuw3ym*CY6)LTBYxux|SYA*XXQm6Bt^$06QkQOe(ZN9H8o z4xIQvw}8GDrn3gKa0{&0CC3xtNF_l7J1*fvM~pIjK$Z=!@6D_kfj!&ca*oPjRV8~* zi(Tf@}F#Qsh);YZVB> zIft`V8?0WVD?q3}`5jNVp#erLBNVfkw9}G-g^&X-Ct1tRc&%aIkQ=vZc2r573`fN z*mvYqFu&|GqhaOsxC3!r%f}-aD&P0R)Uf^ry;+MkO>R0a=WJTz45MA6sgqF}7u7r| zm~|8i?V~=WHZEufHfD^r)=sFjDR8^Z+QpF+d4_kSC+G6h+-g|px7YEBpNF8(6 z2>HKLdC~<#I9eko$}KjfB%9Yc@l-4(H$ZZK0?9`p{W@~D zi>QIyD4N9N;n#smR6xzfI(;tAdd>||T;0o%t{}dwA}41lNG>-e8uG)wH)Yv zX3Jqerfl69i#`q$Zgf<;B+KLD5515o2eV;+B_H_nMVFCJ{9Bfs`tfN-l%isGzwZvAig*{+cD$3k%TB-LP{>H9jUT~Me#(HE_tJ_cWrf}OvfJBq9%GcPZN^|1 z489|2x4FGo=Kjf(&Q2^!@?Ne<94Yd57@#s~<>3jgCl7ACZRsUgCZ#B0o#j63d@O_< zcW2SK6`|AIP1M1UDD3FXH*9@nEo4RGRO!oRNh3D~LWcxyE@j|Z6fI|1U!@hcxNfdu z9pb?wSnWmarqg?h6Pkx?3et!|0dwu4%mHWJC}58`Z85!#4;gLuimmI-ySx<}w?llq z?0ioFFRcO_85~9e1q~C~*TkHVO)hvh{wGiGCu%(wwjCx` zSA}&d&b5chba@D)8nA+pqUkNN(~?JtTETm-+9e_;K~=W}J5I+nrW|@Duls&K$csF( z?I21=Z>o%Kpp{tqCEtT9fK0@`X1VP*0`>vjt4@>HCvTc#SZH$##{+=@C#UbeSACh4 zcfAND#hfmWTAa5i$=wu3n#|RQ7_0X_$*WYJvZQX}JFK^_qs|+URR|9?$L5M)tWMhy z`oV$AcJM=T0UycK6eqS^&)FGc=d#0i9aItL`tRQ*?b!zR$Uk=qPWpOAPj4 zL$#p{$57#JEexL8km@?ythl`6m}!9QXjH^9du}FC6*AWOWO&;S->QVi|5z{j#V^p^2@4YZRhcNvk6-db+#)g2<(Cop82#McU&mK> zFY-UR{B1w=GHo4d$=koz`|c@tWHxu@P3ZOVp1d{~LmsVP3_!Mu z9bj2$<8QWXL0%>;-|$hV$Gf)Ykp0~sZ0ECG9X`clpKdqTL*u78ejU%Csz`cH?J(cD z1GpLaRJzrXmost)KIC-#0JqHyK4gA)Rv(*?lXRKCNLK$RZ5FB5h-T6@D!)U4YcCt$ z%(s7;)GNsuX>y7^ABN8zw4(YK{II&$uT_-eY-AgR>X`C;!jadPAl({ zX-RK{{F?vYH+z6vJJw@thmTWyca!U{DRkc^T&IO)3>AF;TK>M4+|2*zv!>jp`lY@> zzLN_3AJ#!!y*n`Y6vMG(?s;bUX}RmBd@kRNFrPX$u{2JVK!Nl(r5=Y`;#$2@HOt+~ zg*zv86hGd?Ra19EGP(I?i1qFxDpdS_cm;Frjv2X;w`KV?WUpBobdSttQcp1E-bKqg zSBQ9WaasIkb5yLs#;dtHISV0h`!cL-KyLstw7c?mzr39Aj- z4+`)M)<h!Fst)ev3l)>$H1KM1}v4 z|K>l`kkh_VnDf4>lLff~28W(!q(9>!2gI6fB(3$+e8&DKBB_KilYQiF{ms>u+Wu`UH47j7K{_IvS&n9!v8`(@q?Y+eGPugg}MicBxiNjt{PY{-78W;5-bJ2UG|&-L`&oNNxhq=^ZX>#Qpp* zucI07H3Ey-PR067P0(VK%N}Ei+4eg9Fm0Ck;yX@ya@o?cqrF{2Qz&1CbbQr}Z_M^S z;cSiE-L%UJqJe}9@(GP*mX)Lps4)?H~DkMkPyDDVb?*zvM=JUvaOIB&ZUf7__m*SrJo!#!g0 z{C*8BU~$bRT1p3!w=O8_6!($N{~2>i5#^-V_G)e~#ph#AY(EOm7& zUxzd4%#FAun;Wzc!Cb2JYxHLm(BtnbTX@oZHMFZEsx|ua_0OsF>$NA+4c9MZ&pNsx z@r*|r9a0hiKX3QHN|NK~Jn0`aucPTiv7Qrb#BIU!MUQ-J@MUIxL*nWQZt*^cXBnF5 zC9Zf9wi-ftO(Wg>)=^q$v@{WIfBJu#D@IXGbKe1i9#iRy2dSKxEJj&sKu-={rs z2^8v?weD+V?5_AbxUd*ECIPR0#$vO%bn`HpKdWSks$6Q7G~kDC+gLMPmeP(|r^nxs zW*d-lci#XFCs~}}NHV@-KO%|9wH{##QS>7ZP=bsgGYuyCa-^Xjw+rgCWCL0l zCQ`?IYj91Lb?HvaA`}eeHfXs1cqCnKZH)>F|4|%_AcpG51 zD;5udZ;V{-mI8#Z?5}oNBF+Jk`QrQ%Z)FdCw)Rt4$l{Kk=C3o;U}oI+MH}B-smKx* z3nLseb+EnH7@dL#g*PUwf(OhyfX7bIbxDg0$w*|=usyK(BVAX5Wdt0{+?=v)^s(C% zEME;x5-UYDt!p|xk972I$z)L^m|4w+h^(d&crn$zW1wDw6!6w3UTB;U#14==Ow&<^&TwCQGI&zG^i_?4#le#c7@z&(7PO zRAnjecrk|3(K%jTZNL)$_rLyEYmO;BhyKDWwu}n|dzz+ss;h-#5I=>`e|9FcTU2_WUq6+*xqg3`1(bRI^DnK|PPh<2(9plt}l?ui$>y?;Z~iUo;Q7X zw^uf#$btM((Xx1<#xv9NS0IA1cl6N zB1)9jl!r5N=jvB$a(C{Rb@!gkRW*m19?)OuSZ*MQ_3r*vp#@`-&7X)*XkuSJR9&ai z>aouGuea9)9fW5|{q@1@eyrk`pVn+b{O~gDlSm%RgSo84)4P9J9sX8p(=YC4^q*Zf z*m$_UOb4z`-|6o+e9%>2{i9Mgx$igU1tu1lYEtjMxQ})!MdT0c20*fR{}Hvn(Zi+u zvRMnbc%T%xjWB;)x}BgquU!3EB+>1kXXnd#zSMLnEM{p&4=>A>-Qj)#6l_Wg;4|sq zaP802{q{D?09@UDR6pI-U$6F^X4AbN-nMzUl`|w<9OZmc>Klf5KvhuiaeZsQ+CRW8@~u$x{c;N`9uK%~Nyj3Sbaxq|pcZFP*T?eqHI zD))l2Q#F2^$(^mhHd{;cx6}g-oO*`%e=q-|9?FlEYg;{Zr^^j(@;QFt><++o z+eE0fyGG1XIVvGB^>M+wmTK;`N#mz(5ZmT3?J?hS+H9_(1Iy0DTyO07b+Z;c zM7{94UL0U7sM!ITFHpmIo(c1)(P3mRS>w|qK#CSG9+*_sLx{^&AZZ<1{E|)_g zNbpxy%s$;tB3U;qCc|}?0%_FNMAI!v||J!e|xnCi#8>CHrTYPYCTk}*bga84B*4O)apnu zH}xB-Wsn)e!y3g=GEPkFt`h*uP=`bjhm6h_yOEQ$aoQH?oCG_(&ZLV7SNP8qhBFVf zqyRb3J}vWUbUIi$deP1!pJdxWUZ$qJ{e=0)D0RBex@=8w6pEo7Ihf=XAdY*0bGJis zS^`^3@F6#|2}8nU4Y|3$L|wChNR_x)EN06y<#L@CMHZ3{IHbkrH|tsn9)5~^6#vu@ zjad%UM2*a|OC9>xVaEXlE6-u851|@3Y5J?WTjAKvYlqUqEd+aeT@^{P8;B7)DVVR< z+cEankysaoLrTOiJZP7IySo$i_t!vkCW5R>*U_&u1L0J&#pv5K?iQk74YswBmSp(P zJH)h$FWlaBkdizeOC-K`b?e8Rv)eFi!6D<~-Ila4)ytH(Ndr#vPA)TWeUreuEgOn3 zyw5qI1K&n5mDQ(g_ztgNPH-e87%5x~8dF$YPs<3Q1>U0c=uNyif66AU=4Zy?B;AO{ zzw8HAlZsE$EsR7GufuqsGj1PoFvO29<7HE45QqK*qh{hbAdk}nsXsbh-DPVlytz-) zaZb)fr8K?9MQTo zPM2aAsT&`?wUDl2jVmK44W7ag6l`nFqAjT`$U8QTixTr9Wm|Z$U<;gOwyRAFkZKUyO7AGgVuNeGQz@c(r8KWy(dLHEyoH~(_Ew!hhG zHr^GyP_1n?$M{{lU3vS6PQ$tWB(j%ic4*_8g{Ch}6z`fGRo(lo{j@ub281HT)!XuB zF=d|tw%28spWo8Tn#^+lX)x2;MFqH~S`0A+LzvbY@=OjPy%kNFl6vkj4?n2qr*UYP zvJIA}QGGt#``B&STwJs9;q5r@C;yTm$%@o}EUt{mJgaiRQ-V^~+(;HRmr4b54`-XC zsZTppO?)R)!qxjAe_&t{lbF zEcRe0uPjM+6P#Rn-`>oy@_FW~PL^b0^PkCqT_+@Bi(+_{;B?SY{2I5%?Fu^pIXj~n zKo-cl&~zj`ueBl<^~(0Lz14v&zozM|(C+0L*Vl3czuPN`-NnNFUG+S@<9`QY>%jKB zyRJXD-Oy+gE4e|=iOFic`93yk>_@Se%ayJBXVisMP556|w^02wPnPe@p?4(v7reizGYWPp&*X*1x}|?D1pyn4ebwG5a#3zv=sCLPazm zSh_CyFnlKoeb4pW#QLEp?PuR#kTNpgg_4Pz7sW5?JRaWY{%w^a-pA^(S-`UMcUzX& z>P!5d6~8UuN{ruK_KUjgKLK)Hxab<$3?mFhr&2>Bdzhu! zECfz3!>o7kE4&*8H%-vCn>1^uKktbpRh=9INZ!Jpsv!m5ciT-8THVtoOs7QR|Ls5g)>n+WT;`PX zNG_lQXNG<9zMCJotZS|oGD}CJZ{ak>YpxrAGtEc#z-P1;o|>GBmL& zOD!P6EMr)Lpnh)46R8OGda@u-K+l0+Q|m2+%}RfnVl*67HaAqHdSOi7dS+KCOJhO; zmo1ze1mcyst^tOe7ERre7`|uNqGeG{>`E1T?Ew<=5)ihrBq-Xm93WHx03ZNKL_t&@ zz*I~r>P~A6c?|`QJ~|X9xDIy6yI2>W4}e&PCAE^f zb#T?v@c}9CX=GRkT@*q4ZI0#UUEpj9DvsZ$lr?dEtJ6f%_jDmm-l`}W$H|?JMYgqe za992#0$Hx6LaC+8Cne4=IET9>Gi0@gtY{ZizL1!n+H!P~ZHO$pdmwO|sf5(YS4Tfx zbSgju!CT9tWF8sIYXRAu`-4SWW?Gckr@f!oZO^;OZf+u?>BHryc)-dLINLp3=C0>w z)ns#$jxh`Tm)XFdBd|!gJ@ar6s(4ZF{67BCxgULcdj_`nZi*vg2d+i#>S z-ue=xT%i1J=(p&!gLGE}ew1OlW6ihNe2lQ9TM?&VcDQ4jt`=WM_y>Giu+(Ke;h5X2 zrTB*u?Dpej`GVpm469Y+V^esPq9Qh%GcmDicE2X6bFO~9SF!wFjqXpi*|uzmL!(-V z*V{g!pk5X_81wd>LUChz_Eou;edQYKqsGh1zF{BMh@meJ>5uGAt@)O!{1%P-%;(Hq z8SHVF0P$Uf+>pRySjBRSf0XxS@~@dd<1MX%jPPMX+Vb)+U6$fWPBNX-6u++IZC{uW z4BOg8aO9`q{e8`MMqrQLLq+FDfIfZV>Iv^#|Wa2n_K@a+V4hdvBl3s%D0Uohb_u-6k}&FAn!BIi@_hg!g<+ z5I6!rjhgomCYXI>A0c5Xm}voB-|2(ubD2-GKvtMz-}8Y)|wEH`G6 zOYVm$J}&iym$ShkWU846^NR`dI8XWH^v*657C@}IEL0juXXyCh+=K%65f!@6wTmde zxq{|niu9GMl%#n$-ZB&7sF-CiGpFOSnG&!TRlLt2AW5{BuronQ!e$!mBv$n{@wkY{Teo!pfYU;d?t=a;g}qJV8({RL5?haVY8Y7*>(a{(A5kc7RY%7B-i@(;Jw}?3ThzF9uCl zJH=MQ3=I4oT^i4@9y5dyyBd?#uqJZcY(vg`y{1RGmEr=@94vdf3nksgiPdh7FH6N@ z1O_5FVwSxE4<;9Tv`Q4BP(!EmEZrku7GQ|_2vMST%H4uKwBd|~9L6b&8v;P5j9XF()s-ahUB!V&{o$a@>j5K z-Y9oV62sfLew@PcaRT~et3)QDty(%97*pY1UR%$9cC%ESaV4S4V;@IhtvS0#fBrwe zw-4 z>mT>kWo%u$d{Ky{iKc@b#p>gBUl(^`btJbCew4by>{E4m9VZ#V2?IDu=;(*0`z^|Q}4+eGbHNZHfh@@On?Tj>0H z?b*=&{@YR$Jh?Z7IH*LM4CTn|)4-m8`<2h-T%V3{^~Kt|yG^fO;)}Qz{+HjTH;9w- z(-#|cLklgHc$i_*lLe`rG^TeNT`d?{=%%JfUwJ6KA|z zzjVcKY=$ywT@Vo4!o6$`WrD@F?ZG z_lg1*t@9tJUi(Cl>v??So8>&;U9w5xe;6VnNSg2kbLh-i83B&*1u+nPPBO3Bc20Mu zW-hKUdu`!d#9VdJ3$7ajXrpls+SVUrHVYKJ41pIj(gg;ft(Iir6ES%fNQg>w6=-4? z1m?}jinVQ2SzUn@=hLwBC2%m_k=eZ`qp?1&t3q91{Lytrnsq(P((7k#vJl+{sHR(B zLrG)bfe)ZT87+3fqp{3_L|jSD=Z%^3DWRNt-L;dnV;nngGL>-~bn#3f?R0b|1q(Qr)%CB+x1ZHRAO*$;+f%& zdR6#H6@jmk2T;f$Q zCqbtAAXTf<+=7M0eipi1U zfm1XG9b>M;6RG&2N}W&(eOeHQn{0e;Z_SGBFkCtS3ejw746l-H)4`7_o~rn;xyX^e zbr;n)Y>j6$e=wy72}0hjL{6`EogFA_l)f3D;4Q1}XPnJKtHRDJ*=767T}p;e?534g z59FdgJ{F(wzPG$L!(m9N;Eru~D!m7V|4y;n09y5dc71iY;e@Jm!Z+PUESiD+_PlY& zUWnTg@~KM=r2+))%N-nRzeP$P?{O)sR?L2|aBb50E<33@O|6Tj$E>;;Hv$%~s&HHE zPgh(n`UN9gCGk%?bp@5}H}$4_U^J|_D5U`NaYHZHyE6tJy=l*IR^+D{!|rF8>Mfw% zg!2cQblD$JT23xLzR@xSj&AexaOS%yTCqyYu~Dh~LZa6q&K9hjrc*n+P||VxQuD0* zY13;zvfJN8)VMhvAbzf5=UI(1$JKe|L;Rcz-g8S#HVf%2B4nWHKl2Qc=`Vcf{$Hm(gi`NpEuzn zwmt55nfKQ1s+u76pb-Ne0tq2zFaa@Pz>r}-AT1T$%{7_%AHQwv@DZP9Ep)=}Xd#c$ z+E~~m4!+~%rUpjaD~CEwuAVc>)yJhX;GC3kGGxujmiVxaXULeuWEf{{7H5--Vm89b zN1PzGw3<; zZ^*d8Kre6WQEC`qr@hLvG&WTRUEgJm@()lcp zyBtu90P&tyBlU$Z)AbH@Q;kYm}eMi)Uh+HG1;$yM<6C z?m9?TV(N~=YH%sp{#0EU$oe{mO~wcRQj`NcbDHNt7_6DxxY-F3jte`H{@0MZ@-#CG zQDV5RZY;kC_#k(HNZaaVFx%|L=4wGz9CX^XY4ok00Lbl>^L(T}Ta@GAh(ik7aa2KT zkQkf-01#^LE%(Bhg4e0~wHab3&)5`g7V^gYvn84Tr?6oa)4)ShB+iXT6y43TO z)|4n8hpd#d@(Lus3d?=+DlFIED%tU_&y&XahvwhXp7dX%^(1ee_TKoLYACH}ihn!M zyOQ_dnEA9G{Bmg|5ZB_AM90|3di|$`bgs`ML81G+++@VqkgByLnQr2iAH`1gbsT#f z^2}_>#5T z@sTh2g?-#tMRd)d8{PEF{rUJlX7_Xbl-1T(tnZq|b58vm#@mDAyP@dvKB?ArgyS$i z@Vg$zy;a-ub&2K=*I2k|;41^sQm}rWTN5p}2JVPL7XwLpev;X?u0eJirZpzz`du!` zN1ElIro83fg+UVk0{Q33E;I~zgDl&*#7R9n%(KfKcne`(l z9^%=0Y6bPN|5S^fC(P(DI@H+TgC3(_R{Xc$a2}GOeu|sbVJ%b({$9$P3)kuBWE}sD zV>ol&^3l7yEx7CCl;r{pY{D`9j)40u1A9kW1%eR@ifynA@UW07c!7H zzO&{%))&7@r}{MkPvJ?!mq=F%mm^Bnmyp7()M%l7*{Gw3YZiC-=6JEr+#{}B?H}yF zG}$s7$#!-y`KKFri_bBc?V&wyFZ-oTpUaX&28>keK&JB6b7X2&c9ysqXPBm;6emlWG8Kx~yo z*eGLCnpQg=TW#i{((B&%9Y4vi4P>-eoWauy|7xurP%GEus3N&cK0Mv2;k2K&H=NKM zB|)dH$dUn4c!?QndmK8jwl4)?;+EZ{s5A7~jB43^nSZrw=zCw}LpN&^yi#XW`TnfYFlC!TzjQd=%Iq+)083?Y?rHB#R%V75k4xcUFarSX zLry@`1#fR{wBoF%Ic&73*F$`fdHCRsME4K0S%%jo{?#StQ~c*o6{y~XO^&PlemtKW-+wjRKOV1Dd3D7vm~=D#zyF*6{&nY9-P$y7&vj|CYKe#K zfzNkh(H_13=cCbaP;_P^Bw4oP-*&!Th4LSnZ$B{$!rf=u*2~}r=RU(=8Ci+!?=ipF zyAe*S^aC~CPzsQ%{teGi>=LVEsrq)Aa$!z@f+FJ}gA_T*z+BD-7y*1Td1df9>5|cJ zXjGSPRAu9;w`y4q`Noy~RjZ2jU_+Vu2}0T$JUggx3)W6*N3M3HS*7 z2_o!=#D#L6ZoGzh89&2OXV((A!y;IV(|KY;%;fBHJi}#)cEkO3ie~}Wr^GEn#6H@o zQfJby$=wP<*MaXY(ge>I8eO2wh@NL$fhg~97k5)=*<(H}5Gt%^9$4H_#iE!F7#ZQ-uq;UB9EfWEzjVF`d=HqyG zd%m{tWy2)lWj;@c+w4dmLC( ze3nDrY& z31-*vF`*LiKxXvW7icBbkGEGiZtFdc2YC;9HsT=y*%-<-+^U(b-1jSD`}ttfA4RbX zz}{R>Zs`ea37V2ZFM%K6=nr#O{N~K zU5>c#hp^HQn@YCxsi&*3rtF>4)`>Md?@95o1{kAnlnZgPh`oR#xgqcR-W`CS%c2g1 zyE&#(eot@3(AI*Vy@QMUYd}oL1Yn!l}fZvla^K{R|<`C)Qje5^>tXUA1t}MkZ&4{A~xd1$|`X zZ7sNIadR4%IoQ(|$P2oBi8NB)HS4gX8`7?0p`a)5@T-7@jcU_lv~NZQXw}biOyS6G z3Qitj46l1qT{_#^y84ntQ8I`EoL3fYI!OVg1$bEx?aBfa!D+V17o_5m&T|uui~xI& z;L#oF+;z5((is0A|HF^&xgXCZif3?RH|L)Ib}=U}E@c*fUf(u@_@mZvn2 zU#;}d<)z?ah_-K2jLGp#yIei~)|oG1dlJerp;WhpHwbgL6nHqLlFs(Fh-4qB8uYNu zVoBR(+8H(HNjdR3N*qQmy)eYwT71x~0y(lD6?C=Rq7TwG1JNNRuUNhDC>3c|(-?UyAaiq#71nUU8C zNkrCjD!=36&VM9`Us{sqzg0sN@lDOKS`#t)#|#Z7h6UP2EDZfDlX|r&$3n_}!ck^F zPo7i4W{Mp>kcf0K+j2w(O6_6$4^*OR%yOtqt z>@}70)$uqU$ZwlwUf2j!wwK~9;E_3wc0p0Wh_Gm(X&wcNyr7^vAX@2#karH!p0H!R zd}@{@Gs5~a@@a8!*&f4e)VHsi91u~wu(X#t>2_>73;Rp!iw{T5aWtRn`h3i)zDXYO z?)R*YZfmiHumA9R_+(W!VeDDK2piA+oL}e7^>1yn(8rGq+@~6Rab!DteQm18?8$um z_L1EG=^c|zcKiz#^mG4kH$@(7e~f%#KX_QASPbzckGI;_LjP#-m7sT9#S^6?j?xpEXJzOfe^!FYz*ag z7`W))i`7P7%sf#lf1j3)BEK0|+4(}LN-aOjbgfj{YmB!`%pYOSy5o_2yQ|FDswNA> zferkD)A69$;~dQbOzmxuF89!cc=d_-t%unpy8Msyp*;4-*pVwry)S1m79C1#UF*`X zObliF7;J3FM6P8+s=_-eWfX2PU`GrZdc7nu?mfSeLHC_m^6%4R9}~~6Ex-wgJ2JoN zhbOtXyJC*EKI>qRep#PV4-rq zd|hT)_;Dq{?U-z{7SA$D4484kv3htUI&g6lsAG3yH>KC<{Nt|wX*tQn`$kgZ6qW>7 z*emV)w2DI@4{ah`y{j1$SwpRQOj<%N&OC*5Ozn2&hrEjG{vVhp_1zre?``~gR%1ab z1?O~;0{<`f+-5l_JpD%;^B9c1OuG{x(|l8BaavAk<{Avrr{+iKZGLB4oj5e^Q>7+7 zAr+mMR0A{}I|n_iyBL(`qrekDGEC`8)M$-nJ3-;Sfw-N4B&mi+{QK~LmQ#b$I8z}? z2WLL+Sp^LQMe6iy$B3r1wgihv7#x@&$SxxfpLmT%+~mOwbumGKTZRIE6sbhaex^)de# zP|p%F1rky*l(!9*$Z$V|C80i<5l*sZNce1*OaN}OGXtvBeXG$<-i=B9_u%#u0jSpYbUa$tZ)#*lg+CN)U}!-c7O6jG=figz27+ zGX&Pd>Zsk6Bza^Pjp}&KcaL_MsE}<6K|61<6&j)~vo*i&CoxV$S`={t3uNZMdJnrz z+Sq4|yWPmb9u6^IPCXsE$h0nGVmui?*nUwk(dZBI?KGt$ThH_+r}5gv+oYKW=LKg5 zf^27%nJj)>H10kJx#pXY5HzYaHql(scv12;1_;v=nh{7o29=0@u%j6J-s;u8W9QV) z=46X$`ndPhH1}T^s^%XU6jcWFaE1rdb)lA$MV9?bK=KiorB%<`)H=R<7G0- z{IN%KWxB3wR2NrzsFdleF2T(i3;|_;;D6o@{;d!)Nx)eoykTJbz6LD&I~5D1_m^!3 zdpt28KerG6#UKwQplt^6mVg<}?+(x)lQx8Qo0&dN-oI0onryfZQCnrrp!fKV@BQ?r zDu|>FEKc1#x*`ts5v9A?@OLsYRLZlSV#qp5`C_IOTshdxI3*U@4m2~)E5;uo6Ux1= zWx(Yj?Bc_{8n^^Vb*zM|HM1^}1)5eYRz{~@&(K|p&6bo3V9++|futc1W z%;0r&H%1){NgOb^*>K${=`5_Y=JXUqRi#gE$D|~(-sgIAApXQkzIt@T=U2W zn9m3X#?46cCBpVdQO%`rw7(1CCWi;bu$v>jQWK`MuVpro7%CPdf1t9J<30qvlriA7 zhC^iO{YBzvg!4KEM3%H?L67qu_=T)OaL5&3lo@6POE@}_{YYon@-A<1BEk$)+F-&IdzXTGzFt?G zmOQR+6!#Bl;zQ^a0dX=d^8P;LcYoBjZ_%As@v1Fsq_dA{DOBYKFD-jZ@6raDJ3BXI zS|u4TM>b*otL%%TTYa$xzTyA#zx(%>gTKGb(JNEg?;i_ovdB|`v~bA+_-{C?@3!Lo zuj3ZSMoYDw7J6XEyvaVd;Nfst7typcv}#(mQ(gh;5I3}%?BE&7QIaTisPq=+B*ne@&|0Sdj<|&SM9&F zm^8_0|Ad5}&UjRgZ2DL>(;jTNo>V567Ol6e&OIIE&9kgSv6RMM^96N+#N~{esq0EV zH8|Cab4`HBg-p^LddsR`a#LRx*IoP3JdW1&-j*SbD2hPNgL3NPqMSi;jbP^1UB~a% zeq_lE#~V*Gp;Swt#0nF2wHK(ko#(BO$83tAp5V~67i~Z|O*lT}(+DlTCh>geaiff= z2tmud4E{>h^{#^x1+hgqk5I6duCiuH(?29HE)o{xDL$U}Hlldl=sLo9yvoO1mzM)( zXZ{+cA&yoydX0}TZ1TJF{ofqobh#6vKOBc7@|2>Xc;P2t)b_j{SrO@H4Dqq2l|Ks% z$=vi}c52z8yDaEFlgp|3_TV$+KjNg9pG=##n-}p|ICxE_144JdMRSFWyS~xw>++7q zHEqNEkvtSTUOv;jFF)^Zxv;8Gxtq0$zMEe}(B%wYC1e z5W}^sQ+kSj|JSHbTw4Hh7{Bi7ci+0K#O*DCAI3b?g1=_T*yaSyry5?kNZP;c`Z-%y zZ88jSLMmx=a-J?DL~BN}tGZOO&kkR@{uvp!tTV><%i(l?ld-^^W9WOrs}J=_f-P~^(}@#u8bFloHu^#u$CztZd3l`DtA^2ol=BoQ z#{Gw~f(ba$lQs`ux{(mfZnv?C`Zmd>TbH25Iom#%gvF011Q2?S)jZ(x4M%f>;WFuA z1Kptxqotr}=LO#F@=0@vSlf>dI1F9=bQL%1@|*t%OsiDOq3=HMD&CRt=F*5Rc(cD% zro6Z&-R!r1u{R{jobjxAgACJ)h&F7IrkPB1SpZIknJ^P(Ns=zqF%wL}6|)xTp^J|# zAjw*Ea1w+bC%RtG^A!=djgs`08i!Vi&*P1N>Yg=YcdN=ona+OQ1T#0^NyLYk#c@L? zeQlpAPiO6+1hZFXH1DOSiw{+Np$Rsc10*r_Ql+-+^#s1BVs1bMgIhU4Y*LNf1Ld;f z+v%2N?Ug6SuM3+X!JsF5ysWfAW00N(xv}{bFI5uG=I;a+^~Diz}cP?8>Joz+lqx_6cfezh&(n`Bq3f;R2M0 z!=mH$ye0#?h?rwEuc-pZ!!(pYnh0x5R|e#Mc`h)Vk=13=FQ6u^0Nu2noY!bv(e@nW zl#O(tvraUgGc5^y4b}jwO`7%NkoZEuu94d*Oa?`29KqAvow)dZ$up;ngsO*aa)oCTafOU-<1KPHY?o$Ls&O3nsUMcld>e`YN2myXqmR4m(^^I z=bsU!r~KqUJ<5PqAG}zbS4}0kZgapn089{&le%y3CMP>Fdgg~P_!7!DhKb(8hbXMoL zEK1s1yfGrxl0D4!21!hCq*WBx?{BTNrn!Gg8>e-TMTX0}v<|J9X%)Dv#&!BJ&Gu6- zF1XS!ew}*gMkIh2i6t7~vhpiNK2-v$TXfIdxu=ZpJU}ZS=+M`8)#X|`gO_PCTIQ9w zNIaQ}IXO=vo~!VMOcOHN4~@e~bnrHTz_Qav7g<0WgHYrnHq4e67OHeQfg~(ptphD? zQVcry?lXz}x~CtL(8yyN8;~_z$OP?4E*6jEa2tf8nbCJW;j@vWI8D8as7jrygA8Y6 z7Irqhh?j1~qApB~=kXX+OsEm0R9!UjF*{W~m zwYLQ^Q0oZ5+E*V;wy2+fc&<{B|U2xv30Lj+Q0K!}7sk029t) zd6CKYfvCNpxo@Dty9H5fOgznls7?_iDI z5Ii;aWOK#;NP&0UD9IR(uJgoYT? z=PrB>bG*oDxHUWa>xDHmdDGXjSfwze)706Xt)zMJ6}~5c_BSE%ir%(@(`cRltq{!@)PvR!&fdWo+MRzvj2cKxkM%W6Z& zDKL~d-i!-LZX``54aOr`ZSi10EdWDOTxd}&Ns^z0VT{cldZSXI+J#Bii81Nj6%o`zd6)n%IFfLq)nUPO){<-^OrYTz@^c@$7=g1Tr$-y7zIno-XwyvQ7B< zc3R?ftJybeqba+raHdCJ%mgB>sgiI1dV;4X=e-e^d2sV>F2;LZ3VF(s{GFwnRLt&= z@(M3zetJ67x8yL=0Q$<&ce{Uj{&_qxApmdsY|Nj(BAPzjJ1P5lgUAE1gZy5t@%sLHUVqJ(Q#!jZi~Xv139%o3mY@+hhNNBRD7j%u`G9xudQ5^Ar09n|Xs!oIh@!O~k}cQLFbO%|7QpSZl~?#Ypz=ZVw@Km{soY)z+QC6p?L8q%(6zb{>2WN$;a^F)+*dMZM8#b&>t9 zCbx$P@H1chdXk-l$xE-$e#-5=**uSig&X3~x+xif8eQTx&+Dl;Kh@(oa7yIPNU`r9>51@GB=4{w6NX>29=7qwW zQ7_Ca>0)t;Of`lZ-%^V+GrEPQw}a-Z6?^N;JAne6gxb*7^$|_j&6Vil$MjBh)-68r zXiG4f7MZU5NxR}xB%Mn(lck=U2>1xjW+v5;|BO6cL9pb0B5BaJv~$#ep-pRLVj)$7$+i@;aFZcQ)Z$$Vm2#!g8NfHtx~*Jv)K12EV)~Mw7^C*M8bbF!|A{-O+_1RquPYhWyLV<}sRy9UNaJxqCTm z$M-=uyCLo1owfLX`=2VQc?R_a+q1Sbs(pU0}dv z7&=C?5UEtt`&`2Y8mX3|)sPex8_;FTJu1ejK=lwGo=kwT>lVblbp|clE^NoKFBE1B z<#@d$G04u>4+OdkNg0p5QF42lqlA7JCv)(w`z^9l#~V2-TTQH=K{Cv9x(>6WIJn6& zIt~|?`k!?cm0chd;%r_J8EPt*K;SZt5LHTB?asZ>QHv!g35m%lr)4B4_fwqx6=X_% zrS&}1&FwX&Fmna3MLLfP7SH8*WH;G^{lW=C&Ms4tMZwaUd#z)5K4G^h-t?GvvJEYi z2cS8_mi0h~v4~q;kkZUcdYJ2^;f+M~M?0=V)$svEO=d@K zxiw_HGtQU8m&;mkXC|?Z7Yw)DeOY~HYQ)_mrhb#X{>(RKSW7s$ZdLW`aDXO@fcY{J zek&v1c|#BxcS^p2SMb(or{Vv5UP2MYz8X@I_JwiwnwMpJHsamA_j;FcGB@p|3RNbl z?&hx9t>g2bPH$MLFaA?^*K6>x?mEL{0e4)%Q`#F241-fFsvA{6rIY-mrt_y6p`BZ= zdX#Eq>pj-~7DAlm1=m-zSl`a@Dn9JQRLR~C3EPvgUn&k5%sN=Wjov@T6XIpncD-e> zX`3@loyRy{y+Nagyh`FJCJ9(`93}thTlnqyiL9kxd0(xexdmgSjn7Ys?$dBzf9rT2-6WmxP$s=d+5H@@(SeF#H1KjQN~#bT%lKF%xOkZ- z;vdx|+6Fa#(j8{DDem#iZWKc*aadH!eZBr9^GQ!}X7!tzK`{}-aF)kyR*+33((q}c<*~RSNU6Ldo=6T!nm|H&nNllaSp|4=r*XwTtxc4fvsldbLg0q- z&D<;*+cvA&;)a*YQHOL~X^GP+p22uLj)@q68M7?j?D;hu!VDpKBqsxs>+_ifkF7IK z{kU7<=6L0$z3bD>8qU5qr)X2)|NY+2)0F?*JV%TX?m0XU>*WS(bqM)p^YEJQ*M=>G ze7Fn4+Q|;A@?=*7X)C&qKIZDw2t=M_&j;Ke^E;O5=v)dgUK&EZ+W+@9Qb2Mit@7z>3E$t)4tpHiCUKr z`1W~N^VMyJ#<6bQ?(250X`B_eUV%uWr!2ZG(;USQ5gq&RX}W}5mLNjZ4b8+OAp7yc zN|2sci@lZVakzD>QPBv>Ib7a4{X0_@RU-$z^Q(;mtUAhRcYSFe;YbGrZtroYqCOh& zCSn(R-W~7eb$otsR9=n;x!t^f?e|wgJrw(exULoBMCUE1T|ksIyWLcvdH+8 zUesWJ3rSmVzF(0=7_#$eEH`j!EcZUace}s*6e1so?3fy&uCTSX>eVo|M(ahmOZDAM z9~1m1m0_>q4nNB^K7N9*`cLj7PQQlN|L3y4ql8BL==?TQQqt_Nf67-lJ8#>~D;fV~ zn7Sm3-^AB%G)C|Ias95kUAMRP7~b<+`MPTR@%!}`(WE%Tm;NcVJgjQ5!46!s2-T~# z!#h4~5O+`W_Kf78PmS;&)Y;RK1r?3ff+M<@CJVeusWx=t`Uf* zW*po6YxNJ9OzQ31dyz!L%OHvQM@<~Ej87mJ-MPsvL_wg$68O@r7Z0_h;?`m8@q5XK zvrWDuQKskal6(d;t|?!@G}KV;5EV1Hf%LAfo?Q(3xPa}b`$Vh8|FSH{<+)rvX@i@o z&?8RfVcn)JMQhyH^hsap4MZ7@{%fvRJl$V}^(rb-hLtgSjJy_ww;d!T$=ETya)_I) z?bmsQCwbzpi7+a(Aq|limm8@Pdn67ubcAxrk6QqjB>F<+JeS)fR8DVuqyLfZ+Iwvh{5F!^7oN??a{BEX3U+v+*_4l|+F`eJwKe}0)ZKvb7(SXeUovv1LjFBP0rBoa1|vXdi0i8U{9^9^#PEs*I` zYU3%Is~z;JViUB4^oXv~rW4)R&qY->*)XjF85ArsLb}!=To%!I9=VR<$R=GFDE&*+ zk+4nmm?>N(llq%4XWppGBi}6U4=WTuRPEkrH3&Y6MPDw}DzmMRo;rDqn_paSJk#rN zcRmkEpWWc$n|thkJM7kJbkU~U-hC6y;Q#qgU$zFHIuDz_7@z*vS=({qE4#_IqB<^l z0sMJ9_H}bhQW&>tqIX>RZTCP5G8oURb~q(v4)=~{ZmMlyci2pKTBtwY+zRPJp{Xx! zUhTO6UF@21dvXswoe@b2kNgzXvlHm*iZ+oU8ppWr&Ad{AC(#s?2KOll5siB2^exjQ zK(w$KA5cVH>JWjjKe}PtoBqoI&2d(bCqhNpltth^YimbVXF52=Emo>zSjd8jM1ro# z9y6C0l%Drt>u!EXz9=-Ss+moM@9e5{|?W($t8$V`B5j;Ag+shy_Uj{%ZfJV*PHoW5P474umY9J34dSPq)FwVqsAxuuTd3Hx|d z%WzoTI${?kNxNScS52?-pxy>0<0#(kCweLMHhO5;JS8S=r{6zUm#R|WR^9sRO)R(W z{z`QI+i$jR25Zs|{6?eUhqGElGJVMVGlG|tF5@8^Kv(&P&psxl76Win}1Bk~|-NtE?MbCUI59s=}z+#-Mn{D{=^&-4kGjK=~vD9Sc zBf;&mTOS~n+O}=ER-;iXr1HSHES#9y*G?UHZBXM7noars(Flc)}p z9_Hx#JCaD}9DK5@x=}?cB}O4w@oAx=bvnfbyULk>mH0BH^#u$T?xv zID(|=P&5fDNxvWItwuZumggWugJ0-hxud5{D=nI=<|b=J1)v9d$P zDsRy-?r}7up)sN?#sba!s$%m!MkLq7E?~#8;23w&;rN+QXq!)=sT$6n4tw=QY_PXt zZXu|j5I_-O*`^>rG6!hGwkjY*(s@`QeGe9fTd44CWZ`28hZ#>%dWia!QaCKHwd!-x!#C2CuIzIkVzBQddLL`#4S zb+Lf}=qBtc0jzo*!uY7?QqGq9IIpqw`Qk-=7bVg7nXJ6_FiI8=!%w%LLuY(c)*1sm zj@0WUZtPC@6~K;;;hP)WnBp^uY%{H6jrv3Ox{rxURdFsRny)uqHVo(M1^>r?&Eo#) z^GTLN@yEhqw_ZPF6Pq*t@>8Na$^i_|m*f3o@%FnaW8rG}BV1Jy2OdQp-#^suO8s^a zsv|+#FU$2*xDqGk%z;Zx{HEgEqDoE@rp9(X=DX;we@S&>PYBLSL3#;6j>^8eWRj6E z%nc%xrhFdx+@%!S7IaL#Pd~N9>{1Vke7t1oLmP@TuZJdmeMoE5-q@1QIssP<2EK-eBn5oTz7ljVF3J321ypI9=!nSxH`83aAokyd71B(z6qa4H@QZCsQo^ENc`pH^GEV{ zxVB&Pa&pzPJ`HoNHjUT|2ai;gZA;x33jcqC;3L67u4!8oYjRcxiDI(nc`&Un!7FY9}|L1(XzZLD(rS^@ZOpviQbrFA3 zYTUJC`!$-=(dc%S$R#Q``uIjj{85J0F?9ARKnEYb{!T8L#Fmt9JNoZy3=_S1Uj5h{ z5iPp^mxSfvn9R@N^Ja>8R@ra2?;g9b%n2@vm;dlCkqhp(-vus1H2tZF!v>!eDL{Al z&KEuF0u!G%i&N@h~~n?1WM7iEQ$Ycd59ZqiSYp$cu1 zpET)HvE>-?nEIv7iu;nY_ByUn6M^|^@i_IdzV^|aPg}hyDMa@x(7sBy4`M1igXc%h zvIZSfGjFSk??``s&K;|XMYt7yr*i%Anmulo4=y$E9JIp{(T$y0m`jYfo8yuEJayfkS38 zql!3c#}gP3B%_-`c7^l9+(l}fClG~2g@RMK_PiydpvuE!K|w?a;1@lH31NugW*Ma} zTS)o{V=6JX5tiwmbb|oNBHC3Fe50|J zh_iD0c9I#6rV-GT+~5p!Cg^kH#xQ`HJ+xlJ6iSnL{$mO<-k*TN@yG|L)pW*?Eorw2 zA=nT0+8a{CShmc+o}C%V7-gt*^OT9WQw`iFcP%%*tg<9ruXM0)^EtgC$DA{4%AYp{ zFkQ_&$w-{NF&@&#iNaM>WU=mbEwdRiEiyuX4s@VzMEYdM?_cDw}fk|(ASl&wjx;^LTfE0s@4{_1+j z?U2ULGG|k4uX=f562q#c*`VV0wvF4rGJ$*2JlXuV{GN!*_1!L>KO&L#ZhijPhGqEP zMMB=Tt|7Ajp+^$w@#(KK<6rzNp3I8H&~q@{Lc`(RguMZo`8obsXKNqL=R0B#XSlX& zM5P>Y8`dXAGe+jQ|Lgc|!NK~Z%=<8h;!fFd(={Wq8&?iCxCkHSIpJ%jH}Pc`qTs+b zjYe>?S>9}nPg;6USHx6h!tgDCht$jN!qUXSe2Yh8ZVxr`m~J;fLJ)uNDA-_g8`}hP zI85y`%Uub+&Y)&v8W*$kjan~mfqCTF001BWNkl z$tcNgw4{xeAZw(BYU?Op6)wage#+Kb?382RYMKWn33? zxK@n8+qlRXtqE2*=Gia=RArhbKI;JuvthN;bYZRL(LRSNOk9LszHHHmY~KuQU@M?aHl;mECmfXLX6I82aN9PMuzNHq2V<&D-aof`I!@n zlMDH(zqwVbhGZf%w7gzQ3L*rVUiD>3K*sLX0f`*{pX>7D7~O_vSe&vHLc-fWyg454 z$6JWw({T3`O_yl;4aQt*9%C8VMm=%Z3-VhoPs?3$saozTHaHn(xbM%L3!&43jeVX1 z-tGFqL+u+JlVauSB`+gBwRu*=;HSzyIgiKNJq4#e5_f7CiwNB|UI5C%7$LuO>m1!i z+P3A)1e&^J!3)xtD#^X2$Kfh=BpK}tnfZL(gI{J14%!&pO3Kw>AOFJ}O zSiA#4&Evfr?09Du3lbY4Os4U8Bcigv=b6THd!f}Qwan6DGuo{EK1Y5WT$kf09c6D; z>pZ!EW_@5s@8cQGdNL1xS~+$Zr}-~A?8mc}lBT>pKy277&33YfA~StFRl(}xqaW)X z#)ws;zVcL1+s>d{q3x-f2R4`ZGQjl|&yw(6ROvKQmwo_CK(xQ45o_Y>8Yy*+i~Am_ z!Wd%o*(eA;}z2d(%}xV zs3up^Z^lz;&U+Qt+aC|g%v<|?eb93LUHmeEAyyQ8m(x}yv{;=Fzjj>}pVaH)B^`Be2-nYc za-~VL)$xMIVMP@bA zd*O0KZ79XDi2Hi&dM6<~-3C&nA1{Tr^O)bQuE5PA7xjB>(4y;gOka(vriEnYc{&co zD#w~fc|>kYDuA7P*NiHb=hKNw7mb##V_`5=hkW*@6o0`uY54K*h%1tjmo$<#H!_IHV$|D#%h4<1CBMD4jqT1qt#oX^hJ}W@LQ`ez`b;au&BzREH6i z*y#`O4H9TP_IQjuMF{y*B@vH6qD)9D9)@{rBdM#91|n} z_=m4iD`y|p{Iu6zFUJ|#OZa(%dcwNXky6L9!CXJO5F60!G?WOqKIcZqk(qk1&) z4}CQ2s5+TT)^8uxIKZYv(Qf%r+uc^bTz|@Z-{Sx2&%YI_o11h3?q`OKC0~v5LpHU^jR`Gp(59eLU}l~obipeKh3vrXVHsl66rrfcHWVn4MKC>bZWnRm z=^s!D3Ko@lK0o4q!5>vDQzno@j5bm{y-v#LG-H- zz1tbhtb5YLZOlaaWwXFgW=Y5!yGl}oVN}gf4BgLIoHV69E?fEW*k5$QP+lcrJt}pd zwJik!uw)Y1Zt|dwZolbSSJ~KE82Ev0!&Gv?@?~vSti`uw*Ld8pYbXPB@&x>p5^sz!ue2ja@ZYWK;loxMy6{)7=AyKv!Cz|5 z3&cfGzs4K5XMA@`dO>gJuvbvAbJL=SUPR^FUdI+7J6D{$@BEjfo3}gZdedJPeQ#A)(`Y6tE8~NH#D0HrJ2big zfBaU&`Bc=)#0m7nUtUgpoL<%{&*KB+35Zk<^6B%l%P(bKaQf&Ql#yJfYPai;Gi}Fo zqh8hdmFhuHhrEsJ?_8$ut6Ps4eTX|3;#0F0>Towb6|wIBn03GBm;0-B0ne1BLmC&i z7~JrMnrb+W$hriq;hp3iRN3SNLXSK;)kc(8Hc#Ddk_EJx&~vyi?MCdFp9P7c8KlYw z#ax;XYM$Nxx9-P}NFsiRto5NRGx{bom6$l~iztq7L{UKTdT@mKc_y>Pog9(?-{4IY zkFpTSZKJSz--TusWs1%oEi!ln#&FshYY1Hw8n;)LDbqyWi~`MJ8KyY9fCl(By*Q4t z^C)5N-{6#WyEC`5w9XB15%CEU^0w&C0zYmDh%1&9ONYdL#OL_{r)h{Ce3N0y0B9HM zE@oh7zb-YjE4hhlRJRC88Uxnpc?8n>;8ePbkAR03#A7c?CD1O9S#FTWP?p|d3EUhD z)&p-j%b7BXN!Kzd=(!cZj|xMYO`V=%+{uqxjl@mSS7vx4JfM4v+ze%vWJm}u(Kt3H zF~PJ6%0ZkAXQ$gcU0VqXo$;M-2i4CmEs;tl&M+IHQP+i(i?A~Bc~3Fz!lsBh-DU*N zj8`b}aoTn9H+PB;Ov*dDDIV_6j=o`*K*%MV<%yLDHRUk_)@&X)lrm#H&r$9_eJnT8tlGSd~AG z!AW`B=_<|5my7VJW zu>@}I0~H;{u~ujbUbg>K-LD|nkobQ-K-i7-VuvIjK@|uHH7mk7_(eF;aJajqne-i#$$xAg-f{lP!Ok8^_S5k3DY+MIp(z(FY$1U?3S* zOLNsEnf16sU<6OS@0}Rd$cf|L^*V>B9beAa#XQ|-SopPoFYEcKp3isb)eKX$-Pd>V z3H(&H-bz1ed^r>WsfD2Uboh>`o93atZCAxf4`QXdOBmNg9xp}V?VDoxlf8MpRl5o8 znsXCXiFV%gHm&US-K+AC<($PIWon2<@ z0jljC?h`l`_UUvsIo+Gk|M}~Cb@R`ayl6w zQ#fSRW7i#%`28=d`3BP8ejZ{Pad`K!Wq)Da)zS6-N53Z^%^dEom?GN_9vruT@?>a@DT!*-|Tt3H@>ZZfs5Pye|oA$#3_O62&QqzqlRk@+*w z1uwpd>r8$F!|gh{U-P?_KKyfow$3B?8UH*A@OXbyHx8qb?8Mg)DW%{y9aIeCcrIOG zR>d8IYdbo_G~cc2WtQkKyZ+W~+kKPHFoA80H}^5cDLdWD#{{`yFuKS`;=nykY^&Bg zX=EbnAx`7rq|j8Zz-^4?ic%k@?6VZZwB@Oh!+~;(iiy@7CjAGxt?Ye)BP=a8vxFmbUbA z8PW2gf@eP*pa_ongeTEf|f9hg4^=&2Z z25X|}O^Y{YP}m+g&DE!sD0<-`O9H?9^hMuVLDz2Et9IG)`=9n2--^)WOLw{3-(H?m z{J%Ur^^mX9V3j_OCicz!k=utb{H9RSMh#3%*5|{zzsnPB=aW|JBA)E8ncs0}&9p91 zc=euMs)HP0_Ju8WuAy~C+(abx@B^gtp}!Uba58E7a4!pbp;x#v^|Fv@ zo8{wh>xbS4zM}0EYC|BLM~L$t0nfllyF^>i)r+TDdG0cj7zZfPguA>|89RMOh$;aU zB*@QUfXmzw?;1&I#`-*qdPNs9pd7%MIEZ|_6t{q_E>z}{uHpTZ@YJh{54|VvlO%nT zm$RN(Rr8vUXrtCcqSl;{15JVi7!t%m{Q1HXbn#K97u9`~+)j9a%=6wNhQ~Qwpt~Pf z!ktJmA5j}B-VNoeQy4s46C$ah(zKv|WI+TEw;)riOwLmtZR3FJHh!Oh&xtm+x?oB< zW;%-+n~3dLh2pp@LeZ-pbl8X32UO#=)x^nnH)oZHiK*CZ0B81RCb2nnaFp<+B5?4A ziWq^_w)bZnQd?SgXy$CgQGya{rn#9!awt#$L9oUWBv6NZdY3;eC&}!L@sPe{I;!vC zc3!%FxQu#GbDTGf(R1JVkz;A^;Gd@+E)D3oO2xdI613T1s&J~uQ-luX%cD;!KB73b%-?%zFNptBdh=-+?fNFPT{Glh3!nKGCnqDO$x!UGBNK1*WE* z!MIc}^p0+J!*em2>N?mg7VrIWr1`MMaP^vpq0ZUkE@E`Vo227&^pmrt0T6SvCiG+RI;q7Q}TiFliPL;hT`b>7Ok3~E%d>?#u7LULbBxo*dNb&gR_ zLX%INXXO?46?MT4$v$5*<9r<5OWW6289>71`-Y;D#vUV6uUsxjVE!Dn5{sd^EohqF zrWW;<^Mps&$QqyYy#*fYPQ{?zOb(k<)VH1#2e?>FdI^)MAAI8O`c!5t&H-*Mj}6jG z;`^H+)Od~>zSLv9njOhy)DNyV0>2g{1SN+#Hg;b#9QiUVeMX1iBa=!mND_)t(@VcS zQqP>fwWgOzFnFVuF83r8QEtkUDhushtKi7H39&+XslVYkg4ne=3mW>*~0$;q{%I#l2zWrK!Fo za_|g0Gv7{40g7b|`Jm1MvS(#wy5e>moK9RGFVP&{osT@k5G#MHPEN}lwLe5e(yM*Sg1T(pNfoU0?9&sYY#&7zk55#UD9WgIH)} zadGvUeamkIr>UDjVWtJE%FgHWcr`owF^;ny9lE28v$%)7?( z`noPIJ^T_Ik#z_4kneHGV0+e1jMwCpL+kaQ$P<<#P4AZ(D3sh^jjX~{Y>b+w1}VKu zmaF{-(Q0|8r;Waxw(L02OFAUq*AFPU11cT9fW`%X_i1j!s5jdU|L^nr?xkxmFBf1_L;} zzex=~U;F58-TwSmk~`6dqGBTlpMSx1NgqZ9U22nMAHt>Fgq%ybj zsB;RahDmpkOHvAR5em3nV(UI6k>n`ctvm-TyR^r9@2+kNVH7^tteER@o5L*9zFi6K zVhkttmY?@C#JMToN3_dcBLIgP3*2k~Au zVGQi<668w72_O2I-^@HtF&Ro3i_uJr&AJzr!c@(Qr~x;#-b1Q0i}RdRJjxq83cCGv zKPwfP1-S6gfzTj=557%x--J!PT!d?5Yw;ZoLv&^M-t|AlwrED);~4FuWhqRSLHc=R z&D+3|P0RDW1*+{29IYpYC6p$+In`3U7YSeYE)uu}#aCaN!zp)HpOttRkCRvs`jD2M2@H7h8)#mZ^ z7zUc)|MlNjF4A`-(=k-r<*I1r2Kcl==9ifFdk}4(J1?*AIYdflkXJf3eD=*FjD0-D z2FzXeeK$@DhFg#9S0UiiS>p+VN_#|ZtrFfpLY8it#~#%I5l=fCj0X(+#FMdMq1D#I zWa`fzb;%!Dt;Nuokb{GbSQ5t%O}m7;-F-SY()uL}>se(yT|i_~61#C&ZO807be|_doj8OTIJS*`#zR<=#~u=k$?#sOm>%IY z$ywI3hFX){-O3DwGm|~GA3CHRi{c6d_7+`cFOyX+DkeKkm(tjChtoswA~~P0lY|`0 z6+>S8_U-25#guF5k{DdCi(OW89B)Jr^y~EKcn~n^TvQS!shD_J5O%cY-CZ380Jh=T z{cs<_aM;luDOQZV{H{ivFncpm)K>8WD5BG)O_NaM0QG4<5QDm7l8~1SX19~OrrmU= zDfhZXU|hy^7~gUq;hBv0$IqY(2aNAjwp;7pRuw*)wSn|_*Xa%b%Wu|rzWn27tS|Fj zBu0(?PP-vQrx}t!>kKS?FY?@9&MRJ}!!@6SDm%83$LOT8rOK9f+fydG%^l=Xo4!`c zY?IYln8pn8r}%X(FJXS3Vx!--wISi%_2W;}M}@7AKlk1{wLP10ZvS#K`)M~bJD}oi za9_6<>;V44ZB*q4vQwlTuQ;7&h2sT0fnyzx%VQYIAHy;>=&}pBKa)WzA!|vyStx$Z zhwYM~`c!-=d(WQEoT4$!2Lh>r3!rzUAg0a@{Srm|WAoEkmz{vap3VpHPMth7 zX_DtC**hdd%5CJighV{n{vOgGduDZprouGvb-5ulQ5~()<%35if=xJm0=b(lNzZAZt>Utdk(zAP#Pfg{NpUl0+}9CKdCNPEj;={#qg&Z#{8xvGv-;>y7#M zaF_C?MnT7$?2Saeee?EQ*~KM|Ds@07dkbQ)HEPRDg`JVr5X zkI^cG+XHUMmKA)hqyNa1oqzodo?R379zkJydc>!f| zn(jAr=)Im?nD5$b;Yn|+dJWg7W-|7$KBI+k0}XgS#e|{8J@2E`Z49l_Fv0lg-b}40 zPphApi}Zt!Ry?xJ<>;$X)|{lUi~r{H{zm#^5u3Rsg6!gzgroz~(K z*Q*Z4fByfHxT*65^L6|(z=13U*M?r~sk$Z8ZBA~DJjU}L<XyN z`lOL7e)X3ara3L%Y5nPY9^D187PaQdhC#I0<+pJqt{=r(fx|o(j`e98842>(cH|v) z=Eruk?~m^*VWrh$G*e}=DLRu|cWboSOK>FZwv?s^8iAXFuNYOuzCd|vQ% zj0%hf+O=piA~|qZp2BoLySJq+K9@r@m&B7>ciOl*2n1t=dKu#yBILb#x`^eMu|$Cd zM92&Ho;7*4?OP3ZaA1#qdUtueD{A<@M@0{3VHL|gm203Ewa9c1?Omdj3Py;&dxZ~J z+3PBT*@PBps4s1?jx3zVTPjq|D;^Dmqe!6%OmXWmvYT6CrhI^bh8srAVCmD3*-Av* z?1mK5v7hc-e?pwxNx_C zppMR4DgQAsgb;FeNH_89(*OV<07*naRF*3YH;&Oi0v<=6J+dhuAf$$p$D@>3g$ovOle< z3uB#PSvE^BvCtp$)3S7XnL`>Iw9TgYQ}@v#4#~N55eb(%6cF}410xf=qUidQ^1WZ6 z^wUjfm!z4TZ6u=iBZ?*uflJGjB2unu_qtYXFuDv!2)$m?L*k%#V8nE8vIH+_kFte4 z@PQk<;iT0L^^TV|Q49C$b)M-p*gY(WIgX7TA~M&J=Ae~b2G_D3F(B$bOl&@8Y6-frxY!S|3FOa?3dnYq!b*rJ@|B!8och7_5fX`r9m_#fFu!< zjz@9Jqn5TI-DGeUJ}N>QD6cXHxwm>M%HFPK@c&O zZ{Fk3@@6)kJSQEGh&Bt7f@!lich!ROsqKCC8)4;^Si7g28#Kg zgI=Qf9@OHO)+n&cn+=q>n*jFD8>86$BmZSY^QL3lfZ#ggSboc+5%sO491Q7v+OJt% zznBQj3n{BxxBk}N=wVtAJJPm7eG|ew@x3$)&D%ft%z{kx_g)5>B$Ki-+6$1(#l3)T z8Kc!Zl!Zk@7s~+wn|__gNfdj(DX^M$MM3z$3j)pbdFI><`-mq+o52xfwzS(m^$!dT zUcpV-d%qM@Ue+4~-xFV5Q)ezDcMB?REnpex=O4?B9Z4_rVx;3z;5fN0&45Kh(T%|p zhP%Gk_V$pc*DH_|cy^wa)OCa3!kh{-%}w;aGz}JuKP9D<>8v>-aQ)^MD5sXY!bOCv zWPN`lLlf@H^<6&{8Xo6Zn5*MOwF7LAm=&rjyP1*K+REPTs~$9w%&xG^a)6M-$!*p- z!$H3(T3*zQBFL z)pBnW2wc>qmT_E9lgyS69-N*r9vZaJ2~t=C6-(^qSP&PbBP*hiwHH=MA1Pq}SlbaW zqmD9=B`ec;&eRR^ei@80y~{T-22kiMC$x#=8ejTV9=Ek?bt*zrE#b1ojfa2{EN;3| zcD4vECJo+dRze7J<eBGa)N-R!(z*UTz=XY|6T};0E-o1yiLu0b~ ztMm9uzhx^40I`0>XAUMigK9(1S6(`BYj6E}TTs?Eg0eS*q4BZB3M0CfCW{BWyP4B| zhfL?P7@VIP7lN+EgD4sD*?Ocmm9CYn41%_j;OswR|Kt?Z_f50 zn#3jjY*t3qpSM7@_r0uC@B<5)WW`)9!yFA*idOZP`qXTmd{f%${XzBYo-DF$Kax%# z5uLB9vhOhxmmKq<@Nitfx@Sj;vI7e?MqL6yy4MH0ELqdc(B&&4!cvvPv5&r#`PlX6 zTOgAMxQN$1JzSMPIl4*FJD6yMbf}Av2l{i1G^va53GdcFSIgm&gyhRG`@cT?OT(AZ zWeWayt;zfQyyE%G`STX_pR&ItNMF9yAo;~EjWb_Zae4!p zcqBIsZ!a=W;#%sb>ve4P(ZS;#8GpPM{e{W0dYAdXJ$~S+ll^%4^!W7r_9~-%YZ~Cc z_VbNwpb9+Sty1%Mnr)VY4vr7@8|mqUuPSdr5w6knB}#uvyzhn0h`)4AT{)8_8~F&} z8DTQR+w~C7>_O&aIg`(A8cd8fgPcmj67oDU7D%{;1SOyuM0R%eZhY$DnM_H`F82lQ zre?Ks(|AX_S7_-aJbnrN=?Yhv9HFnWn6dZplH2OkbzfwXvRlzaka(1Y-Z%30@DtDi zWnmk`V?0c(h{^)?!=f4h!6~SFJkAuc^D>WXC9QAXqXFU-%GQZ!#eKLP1@luBtz%C) z#kL>SE}INp_vbf zXLeTMQ6=a68uip)!>9^~!0Np2lHzgQjhs@=c7w&~39&+L#Cu9cS>`^5?Cg@Xo6>4F z->WG!oc>x%DL+ybU#1YcsTeaKAR)00!PNDfnP{9H1QAg#7&NQ(xsH;kzfY6d$#H(J zbc9g8__kQKOFns%P^gv#ZMQlb;YX}~%hqf$vujMAR0wx1@MWgDTIDVTkckQY#Oqx) z_GgS(oT{($a;w_yWsJnUqADNfmv}Pavn2V|6(R{yr97Kku(yVfu$QC9VeeU&CQTn&$6{P9$?GmMrpM0#IM~Cf@gI@eP;{W5n zg&N82n61~-n7XNX{kUthZu|~zs^ z7wKs`iFd=Vc#XHdUM5Rw>GL6P@tAsp4Hq{O?rl_|Fa$YHdeWf3nS?2uOSbAJ8vId>`$qDl6-_ZI+1@ z-c8FGBI|#kb-5oM%Q!30(b@vzAnE3ZTVu+)xvV|o&;SGUs-OUMnFwI_o5YN3jkXbUTkL~ts;J4~(%!fc!U zVf)=9w{EMCsAaH}^*);2N5;vMb~kY~$^yR1DOo||mS!FgMT#!H5sCNptR{U|L{bDp z3H<0P63OP;W!ze>qPY@(A{d>pULKDPPWy5l$K||f|CkO_hwZYQ)0>1_Z$=k^Ct8Wq zL{6z?~@4N>69p_kW5Qnb5~caxV@a4k7Cg5r;x zd!^$tm?Rf6OBVkAMjkyzk}oUPW_|et({ejadL!_Q@-m!I&capFGTG~}iglt}c|6f^ z*Wb~yI}K#qZVg3;emLp`N^&_C1AE^oJKtGW{sjYcmlGZ02GMHxPXN!UO}_oEZ~gQ0 z8zh^p5n;PSIfTWHPhPR^hSI2??+=k%bsT?y7KGdJNvlw~WM&yvaXtL?7bSL5A`uN1 zKT6xu!~F$BFDfN8lKFSH$l{|}l096KdkXRdj=iA$YO)80igBJv{#zosT=S<zzWVU>Tk|8C4o& zB;vlm%G2DV>?16njK_KCKGeDl9&j7*45Q5q>T?bfoKxgSy|pm{>RT8f{i#bL@8=rG$I6 z`z19{FgLA1u7zLgXDG@UBMPA{0%nMe3mKkgHD$YKC8q1598sv! zvC*Qm%iNnRWQ(v9T=}F)jOQ?fb(xZ}3os(p2E5_|cU5Rvf@r+Cj$4zB33&lB{>56u zBe7wpab>3PWWX!yancqS$c=-|n2wn78djg4(892oa~r{KqlAWI=M8r8jpZh?pu&phyvc^VD`-zgmWgioAx6O0o$@4C^M?aZ-+?>rTjwEt?ML%Fkae_y9TJYe>9 zm|TfP;kK^a<7-VenfR7%`2Q&Xr{ElY+(q{d?$4kKJ6g!*{RgmFmb?%@IGjzo2dPYz=x#7O?Z#_6 z(|Q%-OU!15j?ZSZD(Lm-Jw{7AAQfku6jm;!Dp!e+$M`#8mlf-Wsg8N_Sii0dcG0WZ zWC|vt*oY2*zcwkaeq_TD4o(Rtg$gJKM#XU|@BJDHwgzlH&$i^E9@j!Pc|MRjpnD9{ zK?;MTAAOU^x!#HprjfDHC?#b7qm3n=j)6~?D0O~b@IoP*wu4UfC|3sNZXZw{j{Y+# z({V(jni`%7gUiWXk(068jCJ5It<;SAjx6EM0wrEgY5CNnx80!%dPts*Zj*I_t?QP3&(fRw2(tiGwinS- zBF*@rH@RG=jlaaKlJggWVziCbp7RS$!H04y0nck#)MgCXorj|7(ZjC)(@yjN#yIaM z@VgZyyh{wj$l~JMZi9UI^0wT`G`PMayO#_y#J|1<&E(y|`F_dKp<6urbkuK&;2S27 zoj^r;KhS0UH0Obm&u?wISoe+rK86y`6;&?sCPpc-_l=_1~t-T)##ygst0sr>Ob6TO#rc{*Ip=`y(Fm?DUb5 zPiXq8@-O?6#SA8X-so(Xqcmty^dZ$EZf-vhNM86R!S~N9?$C!+1I%gJU6;h$GCz&u zB8o5bwU5_H;?u!>!!qcCK3zx=kp*s;stBXZ2*srM82kA1;}jtAznIA?Tr_(sH(L|S z&u+c>7fsp>;uew$Hl00Im${}h3vs&tAoloodWIt{{vGu>zH7D)o0+j>n$Y<09%4b7 zBmUBnLY6n{KogI-ReZXA;6+>$*H!QDQLuHf&z$32?xXR#?)QbQKm@YE_3^2^dvkv} zIRNx?{H*xTjaYJRxnbgXyjiUTz(C9m<=&3?a=w9}`DZSzy|fYW8!B|a4Q z=KgqOc5T@%i>bvu#E8fivm|Sh&U10*ig_OTxOnjVea2;Jz6I;K(=AxnSfgGMRbTL*q3diMkpvRbq=Vl6eiMScBbWB0MG0fCIBZ%VK zOfKxJeLc>nQnKkvk1E2Rw1np9>NYiHvMjVPqajKq0RY0n^oxe4QsOYDxG>aoeW++EXbXMv9=H}7F1TMOt-16>Tu?8`j~`|%9g&%4U2_{Li6;(PQB zBJv2-N&(0J`~ULaKP+n}ltZ`fh%=V0?1_H|W4+6CT=Znw>-SD$NLhLNr>2b7F?9%K z`P_@YdV*Q;Wp&17kB}K()oL*59s*5ZJ;hrw%WJNs>>;J|mNj$F*3#f@;Y{**)Ng)^U~nnXs$qtr2$A!2_4R}^Mk0<W)$nr36}14Ab`T zoUj-|yk&lKD4@xv$HGnnOfF4;tbe>tE@`On3Ad}OHgfwVPZ-j@G`kv~FfP{ax=aSl z0^?pJK!!kRuP5^ zw(*k1iRAzzGX5ad;3zVcS;X$6R0%YD&@FNuS_+>2m%*+ zzoinH??2qb*A(Mix!~p|I&+=Tlt^pSt$Bq^ZCkJNw4U7*ujxhQneSo(<{>%u+0*by z{mP!-$59HngX=sRiMeh+mvirBX?Hf++_3JeefgiRCgheL1kg#Yt|Nbc48pUO@FLs! zCWkxdCZ8;yV$-Kc0@!d=`qLQo8TD}tluPcrj?`&kp~czH=#6ckj{8jvKG|KVDF%Bx z#6Omvd5@Gjd?YbImP8K_ZHnd3h;A^@#V6yCjm{d3=QmzS;Zn_u+kFAKu0w{;Ae0J= ziCDGr4q6yTCqa&3-pwP<<1_{gQCoTBH=e-cHs>2_XB#R$Bgq|C`ob+HqEZ-x8SP>(Pq+c~`vLKu;clTKo`vEYh8-Gn~q5#Q4f7;GwjqZUOM`Bu5 z1m`Y&Pv7f{mSo1&2)n;&j0q<68TBTx~H-3du zJ^K}Gt$j}$c*dCyYkHAZ1RLpuuaj8r=Z=86Sfe49q@S7$I;*nu8$3HwmUwa3<~480 zbu$U!d^ix`!oER-;Q#ACz-QFasmqSPPR;$XUYC`{|M{J5`(Doo#(nW){JdIs#5X%l zs9EOS6L3G?;|y$1c?4Im0!Zk!=80xw{ywMGDd_jxD!z!V%c*oQ9zF@@7tK}N*LG9z z%N>1f$PgUC4_+DN!#gL9z`x*$a5T>$-sveXsGTrpP>nd@KM?V-} zB%Rkgc)52zRPiWyg!+CMh+&d-B$z7+MOc^jf?u%arAacEny=X^qWLcwQLvU;R{mHgBGb=m!!DiVThRhMx-maoeWl_!BgF zM)2Nu)hC}eZHV&hU*ty^S`pI+h%oOm{y}RB?aMX#=CV@#*Y_f($2UrLkuh&icb9)Y zyP8(n_m=; zbPa{6-jXE7>FtnEk}N?lnxiqlZ#7L=)hO}H{XKi8 zwwWXNvGz~!B9BLGU*Aao0|^nKU8>?Ij}v|$+J}+ZwfiBUB%iY6RWG^O*SF;_^DIc9$R9p#{fd%p;yas$0)E$9^Q!6dn1PZ!;P3BsBL95N)sfY2x8AOm zlHQU(7{r$egv}Dv7Wz5Ld#H~%f%UMMLZtpZvm=5Yhx-J+1T^%^#8p+(#a}xy zIZ-)jFN0~U*_$cWYLGlKhW)pKZuiraj)VgEcC>}1Oei~s-ii$B>#{5vXVF~1LtC{S zJu8e~KX{TNZ-*5wNt&S53{AcDpII~#_+rxf>o~e3PF)2H5pFS?O?()%P9U0huJo0G zI89PF6De>$avuM|V?LLlYBu*`Ko1t;l8Ms&K4N#cNr-Wyw-?6J08T5#Pb?u8@?agAr^JW^r#hh;%yp$qyL{FMS7pGyc)Q-o=4H1U63YSD15`SY2 zF&~Q?Wwj;IjKF;MRgU$bYED*Mu%YQP#h}WznX{0rw2tcB#l5+CC)M3_EWthgV<*h8 zET#_V4X3$k7uK=SuV0cy^WO7&^p#A>HNcbGPC+a-`7I_NuAer4ir!zT+jYmdy1d`= zdvuJ%Ro)1gIk-k-Kb3E*N@kW#=Wj1pzdYg}E_V!{9MfBs+DvcA&P_F%X!Cg`VsOu#3zTB97Wc)rVNSC9ALUh_LN ztBT4pW-oZ_r2WlVL?K6;MfqvnQ*90DKH*l z8N177utWo0S>SJ=UTU6hfzG#C0Vpcf8A8wk|)jEvqn8%>M9kG+J!Db~2_nGM02)te;6XRf^4#zO4vw&c?CEc#{C>LpN8JoBF`|WQAkm1jp)KO`eUzG`%!0Il|;pDkM8>OYX3DE z=82T?hUfXTLi)XqEHaPSV&Vzc<|pe<;ErgnzM)>{&)F8R{jsy1DS%>OT2DpjX@~Ip zbu}d*J-Ophqd40>O3$JBb;*f%{CI4Q_K+?nG^f%R-CThI&DSyq+j@C)BHY&#YUiyy zKDpN)E(-VdxHn;L?*|spL-p6kdY)GE+iyq=6XNVWOLDfhrlDYPW!Bw z81?i=_~6go_a_ZIlpLPoTXMNd^85CYfZRmU>fC)hZFMuJrE1%@dkc9<)x>L=n2aKb z8}>2w3fx(w(H|A<$GKHhfac}Vigt%`kTJ!6=iU-AwMzy`Sl;7_3aA!$qa?U#EF*Rk@zB${DF6#8jtdKa;nIaX6llL+B|s>?W)q;UD1ccz$% z&BIAA%i8e>NximuIJPccH->#F*GuCT)5S%>goi8GrfmWNZJ^a7jj(BZT@AUO31#JR z9!pH`27olX(rC5K&g33oKu1Pt2Q;+NKsQzW?3tzn0H%m+(^%<*SfUz~S{UY~>pczi8TM6YjHrNUs5uANX1tHGMnY zwi!N@%0lef@Hg_pw^-hzAY*o|J%4=Ltj7Oa`8bsAOH02&^2KzECHR9agWrGV=q=;y zLu`5PewsZ9Dk{fwM&fn8{q(Snw$_rkDhjM7I;y#qGI{Se7R78B!H~MbyBvIQ@S9k` z`83PU{Panw(hyo)rMJ!U(#2WR>BqFa-De-IQ}@ZqC+&;=SHHjt(0vq8 zfwp8vVE_Oi07*naRI35sidK#4Lt+ATS^Z;Cco4;tO){Slp7Lx?Y zra)y6Q<4*R*;2$=&U7>+&1D)1q6Xk%q95c&y}u0B?>lGkJfcNGf(OqxJ>N5Y?88lE zlxxH9S$)hlMG@_Ff8@9RJ(~8(MsUR5*#{JTK!r}4XKqsc=4{rRiY4K z`F!5F`Ge*yycUsLW49V_P8ObZo=y0}{^@)to%v9khIjRv??=1omA*u9xnBBg;#X>x za`DL1+#C1|p6Lq>KlKl>NxgYe+<(3w@-Oyp-;$NL;`J@|_`3|VAP0Tjml2K1rz9?C z#v*mSL;z^k3%wp5g;la{c;4TO{nqSZUIz)_b`7zE|H^;FKjC^OD*67du_Ft8U7;h$ zm;6)Gde%y{Bhqd@v=sTfL+sNWk11(PR3hGcy@$;ON)PxW#~?EavKeP z5f`@omWC+wK&0fc2LJfY{sImoIxqaFVtkz5Pgs6U%>&$$H`_)1*}UZ9AKCR$r*$|* zd7$=iy*T}#$v(dvFZ*xpIpj}wiphk=Wa4cqFI<$vT=*oNYkjg!U%AI=S7?8hLEYVa z5}g$=T@KIO7lnay)+DQwY5?5>`o?I=<}p^8Y^O_mO!hx7A}@S*&5(mIS<38CQPDwt zwC;yO(e<G;#9rNPYE|> zDQdTlxjckS>#0s*v$-wCau+ge+ptS3&~P9p3^T^!=&QQGmM|G(OOmvQcnf{g$1b^V zOtm}J)$aM<9&NLboJ3+@O@{U`eSY&deBQ6aH3p|kmtdwdO{vL;;S17=_$KmT{Mrd{ z?JMBLvALB{_5a@wM}YucK%&2lF8Pn^0pqJGlCxdj6j;ZV2HUQOc*p!bgU=lV2LCp7^|L5vyqxyU8bzOb zuGM(EvB;c$O#8KH+W7MJeqt8&BC1eA4&04ceQClFr0A!Lkw{ z(%gEUY2W68thO2)l(PX|VleFlHT9oto2VtD8?beLhdr=sH0@=w;(>83C^QJRJ({t* zgSfM7ggyt4kVy-LLy)@?FNJSHpz3?4?Ga5 z8!T6+TR@@TCH&sxghVxs0lYs^_}olXuxGA^p#F?rR#$B{&Gt+IYS7i#b^V|~KB?9I z+7w&x%MfPz{@0U*h$j;@g@U&sKpsCn!BCK4Z^MjWzdNDhQUH7C~-2Q~^a_8^;A)s?vO~~)} zepzBkUemw>9asq!JyU3j27dI0N>8#_p+bw%?IJa{Vm44m))~ELx!&?^2DQEQ$ zw&|5CICm=g6>M=_y=FQ>;ST&JX_WQs6Z~D0Zs6*d_s@g42woTw-e(;sdyGhQad{L zz+!2ZR5937N}$|;R7j>I8Z;v8c{8-mH`~*M)VDWFuIUDyn>#xZe1ANPF$49Y)i^M} z-F(>Q^vm2$Tx0Jj+7=4sK{B-(oQk}#+YnQu{iGE{N>8hIS1xN8C>$wKqgK?$AFMY*qdUrE%XvlQeBDbNhDbCvtDFS z9Y*&=+q7?Khz4dCJ$P!4Gqn~LC$^94A|u8F&21N_${pb-6wm#T|$f5%vQ^S|L=eQKRgfMZBD~8T!MSS zPlN`zoj4Nb&u(W>N4MpcM85vp7n^9)VYLn1BcHU&{dx>tfBFe001p`%T~5-tPbGTn zo2J@5%I#y=h9Wq$U#G3i4`FdXl5WXu=u>=r=HEh;kIJtDC3d-*of={x&C$)-F1+R? zG+8u%)XxX99`D7Lh<7Lge>bADrCk0-zu+*Xk{vn{N=;~1`pP+~r? zjAQztk&z*_F|oG`#Ry;Tq?^{vhp~#)yUD=Kf{Y~dkA9SL;qSv`SLVs|K1r8e>k+K` zV3(|unX=fzg<}BFEM9e4W*v)F%~AZoUh9@TR`^s|g5-f;)`WQEjrZA%@7uibGvehs zptS7bJ{Q&bx@3n~)Lh$ac+N5c4SZjRhoqq=r8?txr4BbV_=vL}S1MgFTGg_}^UUgp ze%mLDEsB#vII>3l*iYN2_TXo?`y_wN+O~wG>n}}b%=M)_31F|JGJJ{O&bv4h&RMQE`Cjs{v6tBQX}5ycS6>18 zZVMVki=NCkdNa=cTiv3c3h~L9;D%T9pqHRvztL*tx}w} z>yMw_FgwVqMS$Ezua*E+ubU&U_HZnr9s3(~cK6F_b>Sa655(M3MKPCnd^w@H+R$R~ z!|k!tvsIW_)6558MzjpWEq%(d%l56^5zF-Y^ebiC#sqgM2IpzY!Q3#izw8@+i@PWF z*hjmFmS=Lcz%^@C^?q| zm$$FHI!p_NANJ#+&)dA&+x=hhfBf%$vtiV@cj@!zHUV#M6xo0(;4V1se^y&M6JGrp z9v67A z>9xeTBB){2apTU@M1&QZQC1uG{$XYIh*#!O!HzR%^U4KU+dZG`1(wL)?Ian%+DCwW zt?{bIbY@g9Zo5MWnn8YmB)9x7KeL9)Uqer)ITK4yd~G`O5lOI&WAX@9 zw8d4;>tPofQ{tPemXqAx0u4-0Np{pRE!2=YKX9?$cAZVqyxnoC$6bUXrAX-~`kJ6Q z`x$?jpQ}pW`!%K4qKNittH(pRYf;p9x!tX#B>2qk=r1xm>0%(Xr)ZB6@}v94)e5F( zTSbo`kDQyG*ienX+PkubU#ZmNJ>??Tb$3rq3#TQ|Y*WS4W$(U`dF4?Q1~YCUrVG8@ z11ZM(5ogJl#h};6n?gJf0*$}&RRjh7y*2PcRQ&BPXTThRr_*boAQ?YDT)#N z7B|Jb9BdqV3-9uCL!(t-M+OaYwBu0wgWe(#n9F=BFvud?zbS^4Qn|itMMB`PS()zr zjMu>Y!T1(<9go(PF}(8#S+}@mVUUB3Bx;@WFXu@p3r%9qOT%;?qyS)!7Rw}UHDgR5 zA0j|gK@gtfj)4p-;}CclOv%7@j|jexu2gf1oMtIlyGt}k9ur{5=O(y!v@*%1m|5Icwe*{>$Y} zzLX@n1Jb{C8{VFNeH>^+osIxnM|X0zobh|fus>wx0IzvpE-k7o@SV{@Jz@Y$;8h(aNY^XG5>u4uWKbA+8NY6G1R!+`K#BC7ZFv@d z_bE{AI04-})8T$U&W>_djgg@iwS`{U7N#=gm{}y}$)-X9x?HD-U+=-xND;iZBDlhC zSh>@tn&g(RVzya2FA08wOxCx0;AGLkU$MZ|URjOPdgYy}iH~Bwt73 za#6hFfDN!f#0|>4d_}+|!#G*_v7iyVU#X2qtax@oOa1`}&VBc!r?i6gs__}YW_=i2 z0E-%aKY?O$Z`y5CM6on*51e&qv_dsB9#`?CzzQh$1R@Ai+vTuKZeNv1chsBp7@Ke_ zs86%Qb@{vpzvp$k#o=_f+oI%tc#A!|<){5CN>cT;K4<%fPW@Clq&x2N z0<3q7OZUed=YBb7;&B!4>1$(g1;GEWDEfz!XnI`WVo^EGwc&V2^U%;J}5Ty0{kjLb8)cRja z;LzWd#-y}RK#Qs=vAaHd`<=;~6npdHAC6)IFkkoWW)Y5tyX)|o)(RidXZ3wwW*ZHe z&TYb{7xpv?Tkh2-ox+EQ2<)Tw>AQ4@6-zvSvT5_KOiT_6%cubRX@GTra=+lg&jXc= zO)02q{NwO*y83ubc28O>RuKP@^qV4iB9)+UgQWr@DeYG-L6^i?!A9HV>-_Ugbl*xr#ZGR2(7ikxDIbeOg}8C#hF4Q&V|O{VobCN2c9Fe#0rT}{tOEFI5SEjb*Ep8d=pngB zJ}zpc2v&PPToEJB=po|EyjR8K^8&$}Sv2CgdjGEC558I%|Y>HH5d5ACvep_hEqelN$? z8ge30@yeOJ#boliZiJzfTn~sX3YCUJ)jkSIyb;Cbr|9Tj6EA%uhN9lRqek5G zXkQxi8CjdHTv5Fu3W0W>Z}gx3bNAM`(u7{2p&mt@PQwOMtR`zS(y6t-m8Tobrl@6* z)~Sf=f0}WuNBV-@nrBV^I=m-M^!lcgyud4A)BBr`ZNSgt`BmWHe?`OB;g=1*w=wPC zKK||B-SPkXAO6SaoP2!pg)On=X!2?Z0J?SL&|TLov8kEz?)|O;-esoobuyPT>LZtk zyly7SG{=ypXSQ`Tn%vuw`8o>64yq>&SBhr(Jd4;)E1`(EB`jmz>jR);muSU`ICwR2 z24Xg`+vLQI{()?^R*<`tPIg@GsZKhEqYCPMVvyCMfolunSRy_Emjn@zWG4+UjPHh| z(A0zk%{3eaPXUw@btyK|P7W}F77l3C_G&~vv_JyNAMB4QjisPo79B#CATZy@iMNtg z+H9+UjOYjGC%Y-4f!}zg)D$5IVguoI#S&kIP#6t`Me80WjPR(YDAb zfJoD`w~|W~&Ed*w_SsQ&i%wUL;SCUWWm!m&V6XsFvl`Vb_A$2cPehg!n-B?>l4VOy z)QxL4PG2UVW%)J$ys`z1ff-CBefV*T*?`(DM5kZ(zmi@I6C9+R`J5|ZHt%Wpcyd#G z{UE=BP7zo~5m`PAAVk4%rN_P-BO8Z;OklKb%_df6hLP37JP!7g`-LtT4y~_Hz?xk} zE@_|6!{Rfuqi8f1kjat`?P@WS`%^SYVxHH5vJ&fvq!J!c>N%JdAd}sWNJFlFz&Emio8~nt|^|5dHoQ|<&wRyBq4THyT=<=3jU1D1*#;-9GDuW$l|n&q`3C6ogMMu zn1UrlQ?iUT?*iF{&Sl6h2cgZ75UL84de0DCNoYo^8Q>aZS<}z))}bXUsR=GDb6tCi zY!M?oW|%SWdZ#HLqPxUIC{nW+*aiTmXvBl~G7L-o+14r@Nj8YZ=)9wpq*B;&_aN;($fi&rl+ealS%S-*Bx)dhrTZX zW;KOg;|fCuwr6i8KYzyA6xT_y!v+(W_=;{o-wBl@#%P0PkJ4czsNz&`=mV~KEyn%8 zp?WcN#c(%48%sTFy@0s!bPZSyvquZz^Q;%-t_ZN_7*zyGD|~2I+ps7S+tFCXdNhU@ z@)F8G8MA` zsTkkHYvF4+tS1S@oVXZ?9C{3yWDq8hCvb>8oqfPI?+%t_?Y#Q@R%h1;5m+srr>}3I z#q8%S{oQ$(tsKf5pA+UF@n8^h0T%i3;z%|YI8)=t_%1vd!BS9k-&leHslNb)t2qIE zad;5PD)Ilsvr`l;!AsYa^~NKN00g(t_#gNrQYsN@;Cb;AS?2aRvj$Ax2&u;+Sn@vn#ICM!~5BATa*N#+=sGXpLdA?hc^#a#N zkAGJiS-f1koK1^GEvQPiDKZrLiC>39G1%8wXht`9iQjzhcNs&^OK(^;L=X}#;uu^_ zHy=xm*D{qZwk-E57&s)JWroKDLPSqg7DF-&txOb1m|)H1j9?Y;Y3zR@LSIs~2y(mw zuu=A~7%(H6P__1-$8|y~GzYu|{(31Ai(GP_&G?>|8`sTAMl<#Ju1CKj-^-ndfPjGe zVJ(n=x8%W2L$(2yEVi#95Xx#MqR%@N04Tz<5g2GCb8dvlfqC=3c8Q`xIVC$m6^2c( zm)%RYaLdg2vB_Yu$&%D3gP(qROILLomQg^R?zMOpb`&#KgRX_NmpBm*9}13>Ip)tU zId9fYR{{8*=?NLeqIvzjS`msAMKIDvI2H=$Lus=Cu<6VAQ#=sdwQp=u62|on-DqEJ zp%t5Wi%FUkzGt$PVejBH=6Z+btBl9JCX=YBhMm<&vq>s z5WHO0^L9$J&(Zu`#=K&P6Jaj84Q}!2b~N9@R|F%i|7Fg5dSZrBk-o35vdQ_nl-j)H zW=dT*zvQ;&Uz(UBHY5L#Y1-yPK84ht)^UMuGXqTEvlN`<`I6+3K$v-Pm8DzMS7Q;v zK8_HCbjS4BiM87QCEw^f{HmH%2>`7%*H=TvGAAv_I5wpiKl9BPST$i>Iakix^BRSq zV%;_e!oRDaIeH(RnVilN#B{%a^sT)ZyU;CnX3(5~G=+2OefyclmLx5VkL#!CyTXEb zrDyzC$3n6Wbo?Tdsvnw%tSIo|oc;+${<@2D$^hzfzg64I8OD&_P{C^A|cy&0ld6|DWb^#Q(?t__WN> z{rMmnxR&b%U59_iaA_hpyPcq2D_^%@nch^NefM)DGlR2D7U(7u*mSUkP>*5jQ&>HA zzJEw6xAgP~8nNuK=OXfc=mjRssZZq%*kH)3A<7(a*eHDmqBMq4Xj!2T07p%8p3SI zRFo^mfE8q~tO{oS0udy&Xd5s@I`m1Hh;Rnu>%7=^CBP<;Gu!hM3J< z$~kOAxiiBSzVqECVxi{js^gw-Ue+a&u07MLl?fZx2kwBWMlg*#{hJrtH}Pm9+AW|- z@?`i10gX0j_nEmM7w+rY_CJ{D?#-^Rk}Y}_KgaU0h4ZItuEIoliL7@iBvtyf5ZVpP zEgYyCKApj;6B(>EU9y0cv{S{i?T}Q}*7G0jM_?xHCCkmOs3)W5S@h!O5)uE@;2-)x zqxpC$6nN1zkhDjFeYzEcTy%M<`;Ty(z9ez5&~v=lm9R|#$A@$u@Z)c6tnW?5%&-6e zAOJ~3K~y8Z!XLNjAIkESb)KiwTLtU63d(oclJr;GhpV1_qP7N_Hg-21Rx+l5PaTj4 zd)MEt8D8z9LjDlw!?0;2)L!h3=F|2z9?!ewF!p$u+HOvYN9LC?FyKRqEk)>>s=CG9Zmxg4VKIZ6ua+=l8E3llR(dqftKi{RrP^R)k2Xp2xx*IK`;EvKRB zNFrZHTrK63-vV!Fj-<{WxCJ(?*AlG=Qe@t*ygjXild>@jvYkEP;qi1wG1-Vy9VI%~ z-qUV8pk44*qkIkzm}GZ2^xGX=)0p)#fw1>nFPj{Js4=fV(qWGhaalD9`0MLNLAaw? z7!+D{syoe(AT7HrC#8R{5lt<}RcqKH5mCsbBoGx?baco~w#*F$s-MX+I+y07YS6Ok z70q-#_8VPUYYW3CP+oLGHBk)H6b%ZOn2+@X1kQ;_E3=Y(BC^^kYL_K)Rr0xrUtTX$ zIwy-F35nghQNZ0a^Pcb}d-GA}4`!y71%-{Yh&YnH`Mb9b?k}+3Z-YpLCw;8f!Dm&j zZeKR>%_22%5=^yNCXVr}GcloVtkGABm!IZSRq1P?i|Ixtb ziv!6&n{=^vgT)ta<6KrbDDT&if88C|<>xD4+3QccKv9Ll2uw_RWFIwo3)%4CuHA@9 z26`hY4KOP)N zv#jryJ(ID6)uU=W)tf<^>;X)(nAJQjpvD864mYMcHpB~n>zpP=;);UWjaX)>??KA!Zg5O5mZhhpd#h{{%kr25&*6y$= z->!F5d^B=v*5ZBl)(&fYz1Z}qzYpFOr|m z#ezDq`L(a#WA%_<%Q_XA;xTOsdi*H+jK%vO=^+`i*E}u$E_htB>fe@BeEI$Qz5J(t zodm(}e>4w!zD?PUlHE&|gm3@x>u=AMM9!$<96?oX`t7|chU^60C<0I9t*;@9AQ*!6 zuKF+%?i#mE#h{blDzZgCbs|&E9+GVlBEO-^ErEZX$b5Qx{N0F_by~{DGk!A&{5r78 z=Toe)RWyWW@#`5qfZaE~MpNcwtjKX}H9p=Ctx!KZ%;h&Y0LLCzyJtK08#lo|PGk0Q zi6TR2)%q6<*Gz23lP*>r>y(l}Zwap-$N6q1_)E`wgi3Q=O;t?*_xIZ@j|m)aQ$>W? z^ZUT~gG;UK;8;y~{LhIh9j3z)yij7r;kU#bd>(T&2rQ2nIgyCBdJ*J=b{!WqNQd;N zKWQKCr)d!tJG`bi0A1nD_rBWWW@zPLmP1x^!{dN(a5*m$62>O{Q}&4l}t|#rKWv@l29Zk+O=*E~6lUvVcj$CU7+-kFP*2 zT*}pN%-(_-c6IKHi)1fpFPUmpMue73=#2LdNH4=jCB`dk}#Uoro&Uu4ajYwet#(H~=g_FY~cPYM6!EVostG`qml-NcVc)p{a z%4w2^YWiI*WS(Ks=CRVITOI%{Nh6Vr$JX4$LAF1a>|q+v{*a<0zcjn#9v3S?1>J>? z+uONkVQh{IvrBw(NwC+UG0&jf4I?iO3A^N6PD%Nq&yT-=DiOD^Nv^d1GWM68wFUo* z-u^xvC-xuz!ih7|RL}KkH#X}d{;&VTXASolC&sB@q|QdBCu-A9_J^IItW;|AhcG!Gw4`uD^~ZL_1+MEJdNbiMrr z#8d^Z9SaBG$7BIfatiCxjy$$tqXzSyfahcOlh$+a*F9go{w}cx6RGe_>P0U}m$4rU zz`!amfQPHfwFit~wl1>~(!t(I579^ISz)oU0N>qcwm>4rq|T2kP$Pq=j3q7lJJRV4 z2IQt7rGo-ZE3nx)5V|hLWfEnm?bYnK4cgbQXoYJ_SjDo`Z*PP@rEJDyvq>4CgD6G@ z{Tkaa7-A2WJYj4mqpup?TWsOP!)!B`xLrh!ZF7`(NsK9lTdOP$IzVJsvqD2jk)~r3 z1YOY{%^%FXPzxwUtATbjG>4<2Yntt#hy-RHMyvr$F8f(Z7FW)Fyrt?LCk`!!CTt78 zRy@-w|H+|`JO^us){Iycxsx~yk1`!wK5oNGce-@3+U=x4h9(d5WE`J!DmghO4*M0Z z>{@WlZP^Y4W-Hhx!9cD8LLQz?F^4VcXpI8bC=DhdeOfM$oLKyCla$>uu$CdikKY-P1Ecu)<|ES4~RwgPp!mXT)3p6U2*8 z#rlm86JYlZ$E$n(Pet_P$J=Wmi{`B>;7!uUa_-hb^Qx!GU%?-#OC-1IAMdEMUGAXh zq`jNyxp?uEjJ%Aj5!r`3%Tr`fdnD)#)?Da93*6@AyIBxhC6Jb)kEj+_PL@pt*Pi zX2W+3#+n_gDEN<0)o9jsm?SmNa!#OK?V6J0?br^{N7Sj7_6&&z%|m@W1V2<|9dPLh z_%oIoO>AWS-GjPn?2gc6h(kCr zSNaLp`SA`MCE21Znir3C0@DPcLRE0djy+f%12u1_N)nzZWY@-rrb+FMst4# zL=@PR#6MR$Ee0j&7rMD3zN}z76*d)+)45fYuw%BUx2|w-jAq=%2#;bS2+bNS34{;@ zI}q<^xZ~|8LIB|4h+CDKsI;XbNj%IyCrr}Va%i)dD|$;;m6Nm`=r&L#>|_nBXpGQX zx{elP)-l|OLK13=e2hRJpz~olY*(Trl%ffIM=Rkq_Bff-L?v@3io2g#g_5u^xJR3C zz+Eu4f2S|7r|Z>3zjRp^dS&p#ikX9CZ(R~mTf@gylgu0X0`5@TE1i>KriiKHUZ{(F zkZJ-@sMEQ4e>-64{q~wC0LZ(vMKYPZG?A$*TkSMIbDdRsxwFmZ)Qwj&+Ma9+ML)Rb z&Qv-xUaI_qUs+K-^~Jwd9QGIRiJ&w7KmW_GU>R5+m!y6mXQ>~@|Zi`~W7nP&+F=dN)Kut0^em|Ipac2NAT+gZ1 z;M1psN$Qyh6AIIGYBiT_(3#%!xLvn)=~WA5MqEDDmoJ`mZxh}$%dmckn(J}Q7NpQq z#z#}}Ezfl1`J*9{gK%EF8ju@2C;?jDICmMewug!KS3J>=gZL$+z zEKdI3Z=kn6#=;7e4kpgbtJD^8cgwGqm%q3yLq9u#k15P1A81mDB|L~c?1LKT^m-Vm zqB2UBuL)lJKx}v0KU8c(dYY;i-ENxn4sYO=WwZ?rny8-H{usYW={Q~vwN^|REfvf6nn834h5 zv?DHB4)Dvzo;2piC$~w@gOtCu?rJY^x3AiDHBZ$?tBIZ~9Rvs4>)pw=UiZ7tT{n)q zjT^z<3IF5V5v)j;cG>R{!YAnrVH0!Dc{&o~B@BH1EiDW9{pIJ0e^L5(Ys^{O=_&a{ z!x`eo^JO#!nqQr$D%N)Qf@VwuGmXpW22e!YkB3vUMfr7J^xT;JepY_8o??1m6kuPCi_QggoCfU z9{0^tvr5!we{i1I+-EnZPL#Ex=?!S7~ zRaAXwv)_Q|fo)pbzm2v5J5;{j);gfF3jgmn*O6fw#9GC0yYJO<-Tg%1AjGJb!<5s$ z>PfNhNpq+IxcT`v{W`(%C~LJAE=Ws)W<^yDxLA;OF)?0gLaB`-2 zz8EPYPcxlXmCM|8yJK)F(KtH(PRK<6(^}S0CUAP{}`%N=a1HLD4h2V z$2Fe<+;NE0*;`O%ph;1+YlO$R_W@_6#X5`ZxP-BHr1qbX!LylvkWy{_$V>1siTwdB zS66QLXT?$d%un6=&Efy`@KvryaM;TDivIf%sB_p~*X_fcmzkLv^U~Vu5w_jO=7=S2lOh05 z?wjrq0=B`y`Oh*@C-A&2!89M3Pm#By>|}X`dC7DaAw+h+s2J(=0|`U=S*zOqvg&jW zhYJ>DGmtj*Bs&_%MPFlRnWKS5J?tr6*UK4`W4#kF3uyAa+pZn)%qcqbvoQ1lTU=nj z$;iEd5iB;Q8C0uM;5_H(GH1;D z@dPD|w|R^+%Xyt6k1XQ4%{{s2@0^mVw;uBNs~0O}tG~!@n!9415)g>wSmwIRTRp&K z727<8Y&6qx?fv8CXX7~6MZ)H(-t>1~Edc?-HtR*PiCWC#p2??8G;z(W9bjk~Jdp1Z z`i00ojj^^c^8)ITQX(Q5Gx7P>5JVwa=}5UyG2r~DBFu2AV>C6Oeh{2xakBRzQKb=p zm^no=A~>*w{^T|Ye#j5iSmKz~tGM4|Aqc@g&2er#D6b0h7^cKK`HJSX_4=WL{aoY+ z%T=oV*rN-Ub!J8xlh$RRfGI&TRh?>|?$k~G`_@fE`%C{RVNy>MKnHZyAV0NQX6i`O zxO=+MS)4g}TGu=I3#-z!A6n-;C~kRyly(|C?vBSC`G3IEHql84d-%=G`2$&8=6=Bv zjv1U#eCb}};bZvQMz*@U>ohN;?%ZH81}KQsl<$eW?Of5^q9QhBy|tB_Igs__ZyOo% z>oxiH;T~Q7H2LJ`Zex3NHUD7(iTSiG`rW&OCdnFqrgS@ZZkw4}ZQfym5eSza8;$t= zAvxIq^9-a{Ovx(^KcHUACT{-(ImG&I(Pq9eP&IkP1&$xIo?+Z&t#dwput5YU9=L8y z<^D7kJ`%;eIBRZeta>n{J8g&h-Ef((n%ZrM$$dm^qO5)RWuK=lA9&=a1=?&T*g7wW z$+2?39BzRbyfLkgjpBU6dnjZy||btd@R)&w(M{L;x|fU`-(R?!S^)`9?*t)Dz})xw$r zBsEy^lH;ZX$bMc88IpkUk`p%!1<(`OF!StcBc$iHCw_ijfODz$1Vy{#*>nNGMV8^r zn@u@CpvaebW1@CV=yBau=%<6icL>5XH#n^8s8r~jot~(0uNoV2>sdevEtj^7iY>or z*~XIdEzE`j@N^ZLOTB;m#ujEgic(ci7IMcB0*gy213Nvh)i(Ggch=0b=<^wXdEI5w z7f!E?&wP*IP^N_X%*b)bOd0kE851Cqk^I4@rIkOG9g=++lcdM8%-HOFS0s3y{+4@{ zF9|hQ^N=kC?(^Hm0uS?7WRU+-&S18?WS%}QrCDN3*r*VC(WJEF<1G!EAW_|l;mhI) z+S&m~g!*lA_<|w1PXG9+8`+qQluYVlG^D_OtuZOU< z1SWXfe`(?%ki18cm}08S##G@bin|${)RE=V5Z81p`)iMuB;Vcwfe!0!mIWS6f$m}Z z&SrV9vK<_H-Gvj46c7g!U_0thw9tnlnN_p@5FguIUth@bd94v$KI0^F%Bp?gA++q(2!%Efsb}CnP>FSnRd3ewD%1FF7jV zX6jSOXztZ4W{47wz~fwiv>_eb$@@hg{MQ6#_{fo z!OLVVi~}~#LYQd0X`_`QoubJ%L%EXiFSs@E1P?aPYQ;1hEfTdiq+vjKzHS@!x_xwf zGPdEcgy}~O2Z)ccN&t934R9L zRO{=gjRjU@58?U}dWfH5sz6GqAhbb8zQ`ZXQ!*M@(2Q2+>O5d_@39L5fmi&8A7OU= zckQWwroUg(JDu&o6S|6M@jh_!n%p13#=7rip4>jWhr4~T{o{K4bF;~=?(cCNs<4$L zO7Q~*|BUXp0_Eq!oP1M>H1)|>AzS+P_;`FN3-Q7Kk&qsnvkmeE-p+UyEbZ-fPhpRq z%PnW^z*0PexkU4u`{N~|)V=@7(ucRtx}RIR5i$IDNHcd2CeQa(FmFOo=;vy<4dp37 zc!BA|=;vR4RNeHN^TTDf|K?=c{kH_n#1(R zoF@lV;N4}-PU0iZ?<|8dQK|S)xLDHnmUH&Ld0AYSo=t;(C0CMX^M2ADr6W_qa4N=C zP?K_ip%hbuU*+|CF1xu8Rh;fSDRRCIXJ6%CgF-hD;LPsRx{t)@|DgF|5~g5Tzf@=L z>x{A>JW0_27qXof>?^OC>5GY64Kazkf!3=<*7?KiYHVJ5ty z)vB(W+=8Tz3a^FRO-f@U^OwrqhXTg4}5tgY9+xbZkdbwIa{M`=9XmEa-AqH~2o~s-+v^P~MI=U!SB> zU2u2fi`_#)RPBFVrk}F#bibgtDm`A;Ymk45p=6Kspr?Kh_UxbyxGSiPAEx%XI`Ye} zGX3@^u>CsNhy(t={QNZdKG38j51WZ_QLBY^8aAFSt>CUpV1D2^!8|0~9jDxRNB`X=$hNr(i(( zt65pVOH~n3#c9qMX70^{qB7%z9=zf`P#+J=$4fAS+<8hDueqjGf?j* ziHc~!%1ViEyI~R9^3-^1_EE_>T^FsSun~hxqQ;QDOkVU{DUTBog;E4ON}jcQDF9R} z#{02TO4A1m>uugCI2<=gH|1CZApM=Wv1%SS;?5^Ltx+tfG?Y`+dG>hl~3 zI#3J21uTNmHZ8y?m3l-1+3PN?h~L&WnL~8jac)UX7zcI@4iw{n_sar!-bL}!&vF(_ zxo-Y7Za|anc$vH#viKFMJ=x)sPP!i)$dezjr9H6(@ct0M>`6Gh#= zGyjDY6P-Jq-fZY&%0QIcL_JtL2b*55K_{|VIy1y++94UYkaP>QxcAF@Ync^gAW_`X zQ{SX!R^?E?M!`3G2)4A*r?9E%n3mA9PY^tF5RirVcBk1xsu|u@RsjY zn#c2X9n8`c$v6@=!^4+(1fPJdf$Og7%n$Ip&a~9{X4_Q4&)^9A`ukRC7D;ocVU5~Fy3s+W%_V5xlJgaHlHB0AvNCdl~vW?hfd-v z{3!9t-4Lr8&c#(Y6wcM0i8RR!4FW;Az?kMwlXq5mE7QX|o3=u_n30QoP7I%N&+@^J zR;0ZAniM)o(STt}1R(dU&@$UVi60I7u@@*8pA7 z2^JGOLo9qr$&+)w-&(FqbJEi9N$2uP+~tyLwQ%%I25{Uk=&=RSrhJ-1K#y0ii(qYj z{|! zBvnoG`4Qf24C0?c$4=>v&l@&P&BDr521&|jx1scLD>q0^Ix!hS%Fi2@r@0$;7bcTP zKIHA!?Q$oJplL6%qHS?eHYWR;DxrPC$7RU?y#^>@zEY7U@73_cg>qWnEcvM2di7@u&`A-HiE_bE+_>9KX(hr3u{uGgY|2@jbIrLylcp;lR48 zL5wR_CLj{>gzdWMB z40ZPUZN1DL9y7Yjyr#F-C$Kh#`M18 ze!Kh(`2(kJ7Ko4&_}2ScU)wSWw}DAANBQ6R4vzHr*DRGzW?fw+w+Kpc7xDV@8e7K4 zv@UjCI(=E46aqtVXW9Z(vxNsNf`40-imNT20F5+TQe*^^8=t;MP4HCn@E$0Keu$Az z9(3*#K%Xk(KMWxg2s%rm?hYQFh^<%bk zz99!*3=K;FHf%`2nuVON)Tt2iP3)*5p`4;Y#r;e~{pfj-s=%7iy0nbIWD&NJfw*{7 zusL1JyPWs_@YXuP!7>$1C5R)O@OHtEc)dnUWf>+;Js3v*{yc&kV=KFSiH~FU;cSJQ zp*dgHZBnqbY`^t;vSN8g8==pQ+ESRq&D$S3lW=?iOVJL$-|N5hmu-0%OkzLsdvP6x z9F*Wppb$C3|MTg;EUbC&e?KPrqZneqhn-J@#VUyVMIux@6LRB%VQ|SMGj{~%ByMEd zV*D)*W@pu-i+!m#KcdA3{Uoz7I4e+C+Cri`P(8$h54lRSXl<9wf@ z>vn5|AR0jaA-BIKN{C1s=zvuqjb5(<>Kj)k0z__#-3)@cr|4!ZFbtIu)G$oZsx%3$ z<|1_|Ml8EpYO-wJyYjX6G))}_6$AKB6hd5VCZRD6>LXpJfRn)`6h+afHGm3vm)P;1 z+ltOG+ebX3oq~y05j;mxUT=E=?p@@*-zJbp0%1s|6uMqiK6f{&_E&Qp^TgNA zj&KjwB-5+6A1p(wz)us(_-0p{iSA0woK`$ zVH&r0YLx+is69BqRm^cPQ?W}y9G07-6nWePv9K$h<|%ODi|wNVo&)=}r?D`rb5@(7 z?@%ps_z{5dz88q@rl-WNCSO8WVRxlw56=XH(Q zc5r4#h#U`i@82a|=VtfDZga;Y&w+${_c7w_ZtI&hR(c*4sPael7-)`%`J7#M%LW7( z5J1OUU(e>aur;~w%AGMfeMJhrXP<-3N-aeC3fT09w(V}o?UdGjR21edrOBz%Kn75& z)&5x4I^W~ElY-_#b6K3huCy6sm$V)8mlw?QCNIKx+Cp%+=Vrx}b$*?BS^%HyzV$GH z+4_kVz*YTqn^1=wCo`h%;!Hq^B~PvvsX5K%An8KwZn2NyGKO?hxP6ughxVFhbgu6Sii3JBsfO-O85Kr~%B5_+`#Iv~yz!nqdz0A>nK;_TJP2qhu?lcVH)LJ7 z+|6LIYV-yf=qnJcB$R4cs^VwJg2-C_f<}g5KU@00u zKL}8)MKF&5wMF}Li#TmZY6T<3dGWncRQfkG__%$pA49-*6-KjU%YghEO>Rp{jPEuu z-QQW|ct8NnzFCICLf2>1=q*aub23|%yKF^y%^;tv1j{GplF_#c#H0uwS?n9V3MjXa zK!|(kJ<7}boM#%B|4@;da{9zwZi;puzV`clI@m7D!WHeeVN6E+gloLrZQxm@)P*kQ z`8ux0zW5l5v`JsOd8yid;(Ky6i|@B}6I$2PR^z2eics>b^$Bk0Hex7`tD%YK)dRy@|G7N_ZO>r#+#fji2!CLIw4tkvSQ z1mur+F1GS6Sr)d{zS!SMfApav9NLBq_$CO2(+y9e??LJl)D0^ZX}@@f#R)@lBLz%Z zdW+*m{z8TU2rGCTH~WdUPO0Q^WeuV`iLP@6_dc$YuMgb1^V!u0oLq@8 z*=?y6Nh53A0dH43thSqgWCc}LnZ(9aB(t`+{IA6jC$SHi%*PwrG6auoPA8mh6J>V9 z!p@<*WCrKU!mp_Cz#QDI{r>b%`Hyr-LPZn!1UZrQ?ykJt`g}!pP1v};_F}u-5p<(o zY#iYU#l@?H4?45Rig1zS%zFA*>ATcbYCo?3a&OyqG%KEO(~U$~&% zg!aE&7RDZmY;se{=Xt2J;Ar9>a+1i@5W_9k0QRk zU|rw3cQ8HHk8}C%O8oy51RuSYWQn4Xmp9>K`+ZEBs_JfiZQj0S1Fw^SHn*D&L{Z_7DY3-0b zPDh^*+6USd1KoY@J=Nd-{KU5%m2g<06B)=ecMabZ^afqIc|Be9LgLq7;yQzgXzvY3 zzmC8{ICLfT-(0gl?ftq>C;EH!3ykH2&IdQHy4XO4i9awGb24bUr=Tsj%$qn)^PF96m59rHeXg_Wm4yHxj5lwLR$eBSmE)8rOR66& z@H3)8D3zv&Nr-c5TSi*d9uP+=01cg-=2HSo+*1g_9-wnK@bFSXY2eUw{5 zrpv4OpyBa(9&>}1x4r+R(5oiP9{%Ou;GFxA?+GADgQjdii;Sn&>Z#b`Nvz+R37$V+ z5F3v4Z+DPAg)Cq468|sH|6QNL2M>l?qx@QR@}Y!p{ar4q;Ox#T!WBd#(EbjQ!0_sP zVm)(W&Z5efl7S=6yYFony8%HLvUnTLXaZZ-#zO0Pr$Oy8`Di4p4 z)$>Ei07Lj_)x`Zr02?u9rqDR?@ya?Gthz5NR?`4;l5*;b#kmCJLXVHFvK#>H3t-*e zd742`+0aOY3<9#t?`4|8#@A%b(y`7&kRPSMWlhK1Jy{nq-o=aq9L&^boWQg34CP82 z1}8Ylic6U+OlO%xq0ULsyo=W@V`hzDY2X~kU8AG;EPb#(PEuxAYNM zmR)M!M5i_1D_wxaCQI4}LKjC7qIX=Os&J^>MC7;UUbWLi0(DSo7bOTXOXBt<@4CEH z&JMrA-m_(utPw%Tq^h+5@J@AnZi zU&s~#+uh1jCo_>b9 zAZ8G2+wpft%ck*I2CNjz?n7910>A)XMqbRx^HbAacd86#5bLhZ0J>R-W|ghCJeAV< zB*{n6JM;IhlpeocK_Tf7xRAg902V;c#6Iisl3)~ba%o0%oKl=OR9b=N&97ptUN(8x zHg|w8pEm^C#nIE!A1WGuULJ7ahV>V}WW|}c^vV=$i>mpf2T#oo{ zYdc2$FBjNQyFOgba32m8UUYZOddAZ9L0Uv8e-PUGJ2&ZZCA)@6=LeGcs; zvuzs6W^fGMIL}hh_!O(U%|sRxVOh)-(vV)bisteNB6kHLzsZbbS%*@N zc&YXz4CkepY*-a58-p+U9)slhdW9sbzK1ToC0QJD>#wS3lirWDROILTjO`mvS*PFA zScdS&7~LlXYMrT4+k-qS{6GGOGQYJ&>1Oxs0j)Dg7uwU!A<3?AU2A!lDB|C?opr?R zFJPFT{eTWTl7N4^Z>cr{{@kbok4YGA0m@rkv0D5}F?L(W$HX?#qqt)4-NcT`QtXUri-$!5*bt*HAZzcCa9dXEK+We7Z>uh$Eyj#g+#87 zIU#f@2GJabagkr~hRD~|NH6D(`h{`%5b5jM6ybPPFB$#fJQT?SUgkk9L=l~K0oU@bbE@$`7aRy); zWtfKsa&Ui4c{`6Skt>Jww!dtHQ$_Yz7i}+mO73?SH6VPG`E0&Ia*3dnpEzuh;Z(=1 z8}odBmsY^19ADLtLbC8bsgc28nPjDaJyroO#8#Sx)m_yaI8CG8^(e`Lj_SZ~+Mg)J z9q8&yeF8alD4F4H&wucAye5vU7g)pc4(k$kxPk9^RosG)>G9rn1*@YtX1a0Pap*A}#*XHp z8{c~$4~V@F{7{Pftu4XsqgZXwzt{D^cy+OPtxN)c;Ll$H%tPqBzr1j>hL4|~SBvhd z?=qjJ=Bh4a^T;vWT|21OKL=`a>cY?DZa>y3toQTvpIcF%`^{1mo_=4_23}X>qTZz2 zt+2w!p}OB`f!699c=wIER&9AC_}YFZp-*Rv_WuBz6Mi}A2iyFt;?I9v1jlr~{1wX4 zA3imwmH7&jkH+<6L!^i`;*E9!Lz|ns#j5z9z4*e7TgR7*kMxLhX;RXXOn!z!JwTXcOeZX1Qj8Oxa2mZ_$sQhAhV$gJ4Tfj8ak* znRkTICQBYR%RE!oo?{OnyMN-(uX&N;n9hF6vU7YBeV!3`b&IGUHSmUs`6DqU{ zYY8ERAb#+xUdNQ#)+BrOYkP(nC)2H39cI2FXx#yslf509D=P$6WLycu&?rg1V2q0p z)3Tj!T?II9@1Rc5AGjmfUA#|9fXB+E&G&+QOANp44&ls)H(D{#qx(d&s=uDIBps83 zjUM{A^hFz8RE5ctX%pJ11-aaJ!n||lK6;M{4wZlEFJ){#fMAiP;;)8ww;zY}VVydc zW^jD^&+LGckcs>EUPt`DlK&=WQDtbIUf!3L$7W8N!b0+#_5|_*l3%dHV%n}O;`rFW z0<2l^&oFTPhCe&XdJfPhgZg^P=UwW-Vp1DCbbLzmI!>4bm$im&W}CljrN#PjULd3*>A#*UIK*lF{ zGxFI@2??Od=8Q*FQ|jT(>zaI2w*{8%#y}cnT#(K!%!3~%8zW8QdY$7z1L_t>cxrf{ zLxD86$rcuFiXrMtL$k%%kV~J9AnaQsDqJth$*{4Jt&$~xkiUi13JOD-4{Sfc%Yb$k1tkBdKl=c4Jc%{X9)n&Z(Viu&(9sT~)3|{!LC1oWWdY z!0V4yk`s7~uI^)T%Taw=T#R$YvFz(rN&!dYd_S!LoymkqG>8zrVQV78dKu>;?FGqh zomBOY{fmoSviv1>UBTyq5o@~wm`v+$`pCcUvv)9r{~b!)32ZGl!u>?4WI*9 zj^juZJoEmdqwwLBJ@owDs@wZmI$|dSVUk9%+t;UuGio8IY%8^*PA4TDt)VApBLLtL=D-pbMwOM`|yumG})-S zP9Cz6e{F*4qZA{pw`)xJnC3`yW{Dg2i1WKKP%WG{g&r1~;r!-p#_$!HWGp{g2vY+; z`Md30-Dz!bu(2V$Uy=g*h>RYK12SPT_Fg4$m-mD>IBP1){@ zNk*I6WgL=UWh08iXmBKWuqDo71`R@AW-<98toL%opic9k%N%dWe#s)mYW^-{xR1njn@0m}mP=0~~5Lhw5xP7?#FFQ^r1=lR-x<=(c8xPFbM%-LBdXf(`7Wvs1{O zcQZWI`y5YnV)+8iwHVT(o)Ra+2HA4HxipuF&eAHOb>OLnw{-L%N-!L3-I0Z2Oz4>C z__3zS_i<)4QB>#Nt@a>IV}SwbiW$78VuMOniIHR@A_Nb`$o^8vr2GC~ z5=I=Pi@3ep%Hslz z&0D)I(6cpk`Xngzs9{JZR*=))r>!1RTk$&s;?{~qE&GK33&F>-oX3=Y4(Ys%*?mg6 z8tJMQ(Sqx1UPN90Wy02of?qCaF!^ZZUSpla%@|(*GNpX5-@qsvpqBKwnjsz2{75OY zMN+id)uf-6Dilh5H(5o-fr>R(GK{#p(?iu>c7a`ay=735-1r1L3d8HO%|;o7!+HQoirvIw{6;OZD_P=; zox2k~rlOZ@YW71M%FSf9PqE$nH9g(sF~T+lFm0BQS%jBGNmrk%yqFE%@lxF1wt)~j ze!yk#B(sb1QKoA4Ekw9jb<|cbNlIO5DdQ*%TjrKtTGvuT zX}$}A0g*vF5Xa_J8AA(>QZTy+!BVBDK+84XMmdof6dg=Qe9Cx>ZpE@W8_ooVT|NL9 zso{$Mgkx#W@@6>o;s3ZE=LFI3t+| zpJFkqMVilYR|wwe1$3QA9jX=;d=g73Ll0EV(nTN|(BS8)OZ(lDtMZ$+h$f%k2_7bA z;8uON7nl%p>(RoZ8*RM2zdTd(p~=)`2>yvfko(ickcBx-kz2@MaZqgt? zU1UQ~!GWw(TrYe9+Tbf9&SY={%t%a3l|?W^WKm|uWkXb|_@x>S%mDLH%!@xk$8irF z--xLO%%w$4^j#%yDF_f_(je4JjijiFupUQpPZki+luBF>NTOZwdSTWW?!Xf5PGGRj zB;JVaL>vK76wuV=j;`42jU{P0$*#NP2x!+=T#UzDX%GUQ-wn85Ss-WXc2y zYYe8CJ(&)`!uY#SyCsWj**PoH!jScJQUcFtwh8WBG;|OSCKrM9g4dCB95s4}aha|s zdKWY7=Igpi&veYON{5YzHn^3SS}3z@Q$fY>vPbu@A^lo0eMkGqhSV3*AEBR8 zXmGGo2w$2(kzU78mBb4qf}+LkcHdH4^)-)aclzM!l(AywFL$h(Y6qiP`1+2o3N#d! z<@lb9kMw$%mM-gU>wB;MxCO9fe#k@@E;#E{JL#G{BJz@J+}01M{m7m|^!<4;xS5iD zon0O9S5T+mucl^iIZ?Pi2J*0Di$6lj5Ht?$X3$%3m;g>_S5uOOFW3G5g7+| zVr`*+N-JUC99OyN8L6{t&YD8z*IC~f;a|V#o$t3@SjuIwh4b?+~P4tPjqr`}= z(?ujEgLQjZJm1YYyxuo>!}xK%v=nz#hk3b-FuL`IBccxh*};;r7qB?O?A9xc&S)0zjoQ?t#)2c}|AoL_NFsJTO$Yp`1QqE$fo$K;n(?uTZ^sJ?Ye zE+`*XKH#J3Fck#sD2!==#sz^6s0A+=NIqZT4g%pNb#$ijs_S5|s!%~`Lu7uB4q<^Z zO%mu!VN!=pH%P2WE#YlhUr$3E(%|&S#-km5GfE_fKEC5#Pup{=5`!s6J`NTOInziT zRm^#~teT?72&a?XSYnJ$$_hLQbiUs81}q@yh~N`B6@hH@0Z`tjzd#&dACfxa9wD+d zmtruaa78v;noKyigr5_~eFE9r9i5U7?$Hf&+}RD)7UC;eS=;<_`9^S}w?7NRUh)^J zC*UwWEUWHc2`NJBFwblT0qE&ZBvfOnYjP!`F}fDBJJFDhF(K$|@_c<6;`2c8>Xytl zBwuFa8u{DL3$wWXvLB`f|6l+4<4s+-H#|ru+Vdbtw=I6V1p-_@CenRN*VTmo$nJC4 zL?$%=U3elTh1JR?^Gw{ASq|kA`^qr3&|TEce>@1+@tflP1e0IX{=zs_9|V>9%UO{+ zQ;OfKyg;rU=BVo_W#A?)hkyIRw?7T(Kcm>+lHEAmA-RGQ|BT7jPeFcOb@~TPNSVwv zL^ph+-#LG<$g|~rUvRXHCXo$5ko7BIr&e|F=PJ1X03ZNKL_t)Kd|LU(+@FU$6h4(> z(Y){00doM~-B68GU{JSZHlNzm;2eUreQirTrz{g8j`8Acp87+~f_M#Sl26m(vNKKi zfYOXLW=v^|q4pl9#fMgT50eBXmQL4DA_!*y)5Na_HBJbZ{sAg z!#v<5Vb{A(OYfPQ$6S~9HRrK3^Y7Q4mZx$$W}bhX-8hFq^$QClfZEQR)kBQ_h*oAg z8R!6cUjpM`fjfb$yKbr#CofHvkID?s$CSn6s~>ZDwfC$Ku4JF}pd@2wu?Z~~!V2ya zU}qX(F++>L1O4lMa<|4j>V8rReAc^N;VySxlrJsC1ON0enLl_=HtoecKdzMWJiY6a zEb=;G#t()6(s^JKS;DC|xkNt|TJoZR!xlhgbi0cI`@_0zN(AK{HNeg5U3#M0?$ ztS@@^_n-H$6=i#p4rJp2VNkFmYV>&f+ zQrDTg8=YY`fPIpnS-xZ6%>5TDc9pyjZ;8fZiViK|tgo4oW%yaz%}YC}WcJf7!?0f* zD&}~yi$Qf?CFxrg&;_w)8Fap;w|SoLegQP%-OsV}A+xN*A}>I?f`Q32C+W>ccJJmW zQ)tP3vI|76?g7gp@itXpYofXj^_pBh@NN(LR&HL;s;sfeme0|{SxHp6aJiACy9*7pR}kHIzK*y&am>XOH2C&1MB|op}NbCQA5+5J!<^6@sH~ z`wF=pgqUu&_ntlCf^U+As@)7)Drm;*TSnBJ?)T##s@OR)6TUb4wrej9)U=XKqgT0% zOFL7lGv1ObbqkBxGSLlPoxonAOK4<%r;QNR9fD zkDEn;tmz?90BUwktSmbf@Y0p7Rfgd8C}J+?V*M|9W|ym?UZ~qTzcS3HP&!K-jEOQX zL2JHxH4UTH#o^dh<%q-^$1uFU`znSabMqv2_lG2x&W)lDj z*bA1I_hmvf->Dhn$}UuA*n!ALSV-O)oiGRzesSwzu}dhS-?5k#Abq|}gs6Beg9x=e zW4oXjEzRM5i&J?~WBqYDSbw7fRH?*NO);cgfn3b)#_ry2@0$YXntk^Z2|otAWHr=) zGrG+<6Z3~oV6~79h0EXcgaS91n47MDt0VD|OdF;tf9RW>%aFoe47&86Z|ub(p0aMI zErgkQ;M8~8!JLk8%h-SgYWMFbcEphwO5C-5aAdjtc|a!MP{^)MV(2NqoqIqL6XW3X z!TKyuCbxz>{9y^_IGuI1P6s+=!}@OhP<#LB9if4d-5_xoVQ0UA&yxj@;oH27bZ$Cc z$qa863tpTbXfpl^aYZ#r(j`7vkgjgK688WUpZo@Q) zJ)PzkU=N+sSfLNK}muwuJ|y;AX&wHN71!(e1EWo!$kj~BU+ zcQcX)VrbbFH*uYAP?D!xQ$M^W`KW|8?jn89smY)8w?mT*n{7>*yvC6s#(OQ?J?u@S zNzwA@kHFC3`JSTSl&*Q$?0bOnvOo4x{q)fofO1+)qZ$r~6?<^fi$ko+4g;CvxX^u; zsLGMS%q?V>2NRRdj}x11AwDQ0ZEZ-(SjMvP42>^r?BNDVpfq1&J@pHT*)OvtK>Bjj zlJ_FwmC4E!%9xg+d7lvvm?y`U0e%asfWr!Oq1gHBgb7}jGh%V3BT5XZ93AH6S)m{} ztJ1Ly_+qe1fI^zqqjzr|<2!-L98tn3-b3eOAONo~hdm7;dFU&ddZ`;GY8R7i|Yh zChT#8V7i-H=u^B|3PZT6eH{GhIa!R{yhJB2An~j_8X*|U~?OAX`wz32IwKPyQ-h`Qm94to8^NdW&k+mM_7D4Vm#HhH}OuWWv#f2=`R=v=;k?O>if-vPShv?35y%N5-zD?bVd zR>>PC^^Y zC9hkyxTzq)OW(!$i=4ro3Hhn!xVhSl#pSBd-CkG6vbA51t(<_UFc*WvP>jU<#l0A^ z-lk#uI%MLNz`1SY)@LV72vgD)VEc3C(Yx@~>S|9S#fcqAhsxz*TiS)UgT8>?OhpCx{hyhk%hGJp;1&{U~~ z&}q?Xeh^RRa4{g?CC>=vX_W1B8O=(N<<=#(9P$xZ$hy?0cit3d=350e5E$gSm4N-p zF8$&$4)K5)cCc2P~G%55X3jA5l}f9P^=1zm_@G?prvO8+KW7`tj~W{5+5e zp0h0CJ02c8cx%_6?^iu@I13z>C6p_0>U`M;(1bYboPTYy|Kd|vFJ@92x+6R4E3RhO z6!ZO=@4x$u!hE)FZdWJp(&GQ^KWxSY%)@rt%Ay%wKHK*DRJhCrgd2Sw z#Ds6|6Itq*)dq|m(u{&gAu9k~6E|Gt?UeYO<3k%UXhpX)e7pNH_?Ytm&`^Zn-h14y z05Yk=ZpmFcMJ}6&xMzKsUuOlzR#o!x>E7O|2(X6qr~2^DfgtFR=&ZJn<* zTFqoe%Oi+6Lp!(xdzi^MD|i`Q2HX_0a!xx1at_=@STrQsPlRy|ar8~k)=AG?+XOYo zg%VcZLj>uny}Aj!#g!0hHVWp2dFujiv(4-lzRy+g*ivNs{8)tr4YJ=2s680z1O4EO zz3lw^LdL|tY+1!UxTQAz=xqV7KTJrE775Z2N>s9+lFT1Ogkdm@Z>$L3_%V*W32P_@ z9t4_Jwihw~SnJ8%s$R&oQAQBlFwz#QVfBIGPrL>SvY%8X^K?%2u&Gbo=x!r&NY0-N zcb)TF7J*qxyio-zJ0N)vSCgwZ<~*j)x_7S80xsx<48H>;kD%O2hTq}OnTj1i(aVv461cM#-)7Svkw4(6*7v~ zwybuy2(GSAFS6=7qY1R1JPusXeJh9OuOjkEt-lP5xs%cz=MLZ)KW?@K{-+{NpyS2x z8f2XGu;p-~$IW78T*tJ=L-o;vs|GoMeM~o*8--_rt^;v&`=A*MrI$%fw@5Cno9>jm zV!F~$PD-4!Y;z%&5^^6;#Q_$Em}-a!O^m@%M6kRcAs3NiTNpYK5*JNYKE#`DkPk>9 z6~w3k7)%t(8*XY|uq3ET;jmd2Udlv}8EM$wY%ytnGG-cd=R?8*2~JTe72u=okjwNk zL#~O+h`>Y;4JM)%4kE$tAiIff1RxjmVICN7Y>*fQiRP}Jo#Z;|z|DYM)<^9>Sje`w z!fz**ZapF9qa4%4zkN<1m^Vfkn3CwB^^(j^!1=tXldg#3-XU-k%tdqKrjl1~Ih#k- zls3A$Chhxtk`Pjjh05K$(iA8hWP%k2WH+R681Wr0C{Hp+?58}-vT?T(=o$vpkiHIuJcDi7QVlnmfcgV`nxjApYU;Z z{dL{0#P{EFgN$>PbRuoa<)K=A;BfOhRW>aST=*9M?@!lK7dd|wEcssDkBV&`cB|Ky zyIXJmGUR~x=^@!R+{05$0-|JJA^6IQA*U6ds(+j&aDW66mMaP4c!CQN0x_8b-*lYw zdCWmnu8_Jt%Bsx9LG1j-TZcX8re_|U(fDJp|uOmFCaJtwXJmO$(xeQ{Br`Z%D zsHJz0f$xe_8+Pi@!kEHBl^-UXK5hDU)Ni?*R7iIgB;_ZJtgmu5Ovl|d{qBMUQw9n= z$4ffKrtTGvMnk^{MVd>T2!^MECoUaU*+Q?N%T%4|cCeJ5i;f|QwHetuY*P`~8iCoo znBeIUOCaVosbmUEsCr;hE?rc>GU+d+U?k5H6bsojF)HZxx02Or24w0gU9~K!_;f*B zyB;RsCOcl^3-fG5sB=i*vkG`ZQ3B?cBqylO_T@iHYDmP0v^(Syl`%AiHrgq7I z$8Gh~g!-g(nPLea=JvguJ`onvt_;OAKQL17ri)wwccy&eL;YvjpX=6bmFkCo-}t3; zuuD)+=aTqTa2L$jw@>0|QuKA&E`8x^9y9*sW0DWWJarUqZy~3{sfy(FGda+^8T(tC zb(H=cz);os^?RezG=n1}6W`u@yTJ#j;&Pnvk#Dr+un85uh)ybaxlJVhQx5risk7Uv zB=7%mn^H=_&*&mc*HcP!v-^jmJNd(3OPD}*?!+`*|32&up%9#)BJlpSy}pJ|`6tk3qiE%oNkM%(*Zu3o_b==b&V*$+}b z92pYwwEkYuwN3uS+lm0y9b12QZNZN=oiC@`?c?$(?l`>It)rD4h&_&3!p!5$bv2pM zuQqxZykLlqkS~gC>C%T$M-zU1HGIo?{==l}Zarvl6N zGF@V}?n8*Mz`?G`ddw9wkJ4cFnCP|bOCM46KkpOJoD}qJyzHO~S>-hzo}PrZSynoaGDmRlTvR=hTo`DZl_|HABgOtQkBPAP_|y#4Z-&`c^RXa3D~4no z{B~e0H%=ulkBLbVA_uutNY?R6`Z#S^)xHkr$k@>9bP)GMJyC3=$Y{I~G+9KI(^%B` z(so)QL-`ekg!!$jTXju5$6QA3MK=N&!)Qs#WjZX1dOQ%CPI&TEnCzUK(8wwjreN)Q zkJjIlrUuoDaJGTV;=<4mrpCNntPwC_sh_X(FMAW>*iA>qr2E$A+X&88rz@N+`D^vD z0jY*E#}qIz_Oz#A!?Dja{^xPDm7>!s3KPo?M4hBz-?DD}&U#Y$H~lA0HX?xA4b;;T zdkP;2xyt#-(`DF|9QA2(Gbpq)NsCV6R#P4l8+mJTthz2yT@-kIJ`;a66rra6) zNBd`o#^cP*2wh4)xFaxc=S5%ZEY=C))>tme3g5U;_}JL+&cPx2>7Fd+Ae;o|=%2+nzJ$r1%2 zuX&0&_H>3jWLDMd*Nre52NwxpVBjGB1U^U@IC$Xk&sqYZ?$=eXD)ZjF=bp32m?PG_ z_`Zz1lR{(#T%XX1J3JnAdR{YB9qzr)#D3lb`l*gpQl=lUbi1i6uHx=AoNRt+-~=gr z2VOl8L2WaEQ%1<%y+k}xE+NseQ1#S^<>c7;Qzp1ygw4k}&dSapO|g$6Cn3Ry z$PO^VH8PYzeyvi2Bf|k$A3<68()d-iR~=C7%TV1dP8jgKr5DOJydFllBz@gw-#D%1 zk7*;tln@gDS3@}|Mm`WxBcBmm3KCPCS>?M2k@t^)?t{@Xqr2M+y~ z2-Q7OG`W`ocIYY#|L|IGzNAh=8@67cJOT3i+j&kC4v`ksU{4Fqs;j4Z&{;}r{h*zw zBQoNl^pGLUAhS~xaX45460&Qg^7t<4cA2?!yB7s)cdFvkJnMp?>Wc6XiALLHTTsPH zWWZB@u+!>tii)HILStCi&vLN+m<~85=E3GdPO^Ci=KXX2K#=`hN5%CL6^nz;$Z-Gs zP}t>Q_Y+gTk*5gh?C!;TKtFbWWLGa}T0rO1x*#J&LP)x1uIymAF4<7ia>VlRKmpd&QK(mM!~_{836^*(l(3Kv zf7YUMTSDa(i#pxJ9vMNZuDyO4iLNt&#wPL@x8p z0?aOEmLxTkeDx27@<&0T5Pe>?BZwU!2W2uscr>f@_`g$f76$en*BMeml zi@44#foRv6;*xLqmES?Ocb5Oc5I%ryUQMVPg6VyD^o1|5o64OD=D2t?^Cf}h+RJ5{ zv500M-*zxPFTeF$G!w`TF`t(Ov??u4%A(Y;@~~KSq!AL9A*#c7v2IIKyBUEgKR}4x zg<&3Ms!y66?i6R=;1us&IO1iqCOy<_w;ERS9)l?*39Lfn9aK41Ozld~MLy#Lmvrre zRq>Y>#BlaR!uswXA7d+FDdlGEuHo=3MnLF_|F8f48I4!`CrRErbU2j1WO#Uhy6otE zsPiYXlIw_`7t!rpv#ij^*7|Q)27UR9z-;m_x8y?c0BFDK2h!n`gh+)de=N(3T^t@u zvU0wCm$}4j?d6}9a1eG1&XE%}Hm-r6o zq9&RgiU7lP8+ZWDBu~PQ?3d-YM?JPjfuQ{mMu=+#EBlY1RRd;Xu71tpvhe-KnXqSk zxDV)g_d1s+$gb-jk67#vkGrXx8^+@NmPy`?v}kV?oi@Exn7mi%h_-NM*=GImIQT(~ z4E&l9|LqY>N!PwARfKHNf36Yxn5NWHLQ{zH_^?3V;Pdj-T{$3vI z{}lK1QU9CU(vtci(BMhFo)MBVpXfwX|J5DGKHnEPCn@dWb8!Y8+r=vo;x!LwLCHNm z#q3`zjz9d(x(mC4Ra_5$RAi5*t;06hevPCV-2YeG^NXo4Ov~w6IWS}o3G<;x716SK zLPLl9hZZWoG5^GX`5tSSzSUEcm_`No^hPDkLC?J7xu+p;@F5?!im!yUDw|;mQ=Qpx7dl~#O+(%T zIWKVyyoMyd3|GDp1z$|jWUB7fn4bee{ z=!)FXN8jP&f$G9K&Zm*MwsMBtbm-Sk~Adt48W`dhSJf@;~l^d^=eH*g2<|dhDJ*yBb{A+d$riR{iw1}rQ zmDq*5bK7tgkZe+9-dry1i+i8zrn+8k1um07t4Du%8$K|v#Vn>GcLhFQgX zalbumT%NNO!bVH%qA+lSPX)oZ;s-_x$?FulpEP$LzphYX1Du9yMCxU|9Bb8y0N4#C znMIy$C;;W`qu_Z4F_f7!;iFTMQK^&Ng$I(s`E@1Rf@D;FTG5mUhiFdv#EV!m3MZJ4S&E({Vv0k%jLvOm z;qVrr@96^8oKouo#+&c`!7*q@q?lWOz;Z#bZc(TLzb?-!4X3EiUsBc!2!KRFqu(`KU ztHTnNIdt_2OdE<%cQV*^K1s)l^BNrn$4RKKBdfl+uGn-Ur2dCoz&S7vA0!)#HMC=F zTJdJ|Qaq7|_#qqgZjfSA`FE?-`&w7R@Q?>T`~(0l z<$>npy5T6&@$OI_y~&yx&zpT#jyah4$%C0#?rxB;0nt&;{1*#wT8mo?u(0g0OlBxm zTy^I0R@1<2v4z)v5~DQVHaivZqR<{>o6OgBDKmiMii^zN{D^BM%`t>*9V!6U(%iCT zdt`58M5jB`xNr*FDHCSa+<}G!g+bK8T)^tCs{jnHS!ASq=F6ze6nkVwE%^G*TgBZf zDv6gO@A`Ei#48$wk7@wCG@L)y3h`~)3PgxO$50I0x}5+6vC(?AK3)ZLBg;YS_A;2& zq?V=`&NE6+Xw-5 zjGgqc!i#+L74|FeJM<|Zc3GW7t&Lq#*gB9$R}Lj_8r;{6WtCXp3?L zH_p8nD+v=O(mg(+DVT;iMQpEf2>V%#4@5-95E`!DCy6gX4w$X$%_wJ7U^Cx7$kv27 z?ZEJlp1;?!xZ(fxe`L~?1XJ+w8N4E}UA}!qs*|3Y0)VUnwD)n9QJa=YMf~KLJmWl z*NolIohA3!U_U9}ud`J-^!?Dcu63IRF9mb-?eivvP$>$gX|-Ri({iWgE$x&V=2jrQ z5eTYXv7jA%bHU2c%lWhAGkt8Es8s%>5*h(-uluPGl9M-yoGD;n7Hu0(P;Zu?kWf8p zBieZJ&oh9~13aW*CdEUzvG4|>`^~2T;!b38q#8@O6ab+KiTbSLuXi(42a1;2$di_i zxZze-VH-&daE%iwtd%SK5=sVN9t}JDJ zfI|RXK%&36$2+pd8_a__o9$F<$r^crpg z?_fQF8^B}jpZ^u&J^Pf@fA)v|`KzDUpX&ZRj5&=n)zwByRm175azbLhs1DSB_j;0bUx7#XsxwW`V6y_mYxobdWBe9=+com(4=3b*jHSyH46Y=ybadkx@dNyi-B1k2KKs_Y%2^|zR;|L9{Y%DGqXCe_u2cMq~FzQ7p|h!^A(W=vzf%$ z5r}D@OET`oMC1m ze3@W+zGnchr8?ics?FrNHoqi020tx)r&ww2+cDcM>O34e9x!C!YdOV)_N0GX-YUjJ zrKtsO318~H6#&HvK$g@}M;iXps@f!8p`nDz7;E>l=&R=I^ zq2B#vKN7k~uydvOQII>Hu+WN+8vD77P>8K&4dtQy8lA9Z6U>0tqo0JYU9llIjjj+3 za7G|u+<)%o2V(>QR%9$lge5`MRx1zUCpQC&S>&YX?Jjr#rrDI3j))q%`K3*UN1P#a zX`rwnv7Gr5!9{Io&ZzNoOF&228Wjc&ga?+Uk1Kg9h(pjB?j(~<9QKV9>YTYb@x75_NoqR{~*n^hs!)NaL}`3#c+S^k*EkA;yM z(XNt2GvY3U;Gd z7;-%Oq2;NXKfFRq6G>Xw+heYFKV8kMX=88e7GPxr3il0;h8NJ%eHn&J@L))nEge09 zB7gftb>s!E7}BiNaPzCqsJ?|_WV-Sn$MFt!zZDt%$)4w<;EjvhBK#``G~Iut4Tt$- zzjY6%b#WPO+J=oUi~ajadrlo(-VOW6aNzor0k(ZwzHj9Ay2)Br`JdQ4{;Y+1h;G5D zrlxG zE4%^msH(T8)vyOBlb`pr7H4c&cvc?Iu*xdkzPZ`5eG1#)%?sFoL(7WShp*+r=3*Pl z#k1URw;G+UsQ_J9@`zRA$N{7>`=F#?$T;u}ewQop*LqgI)&VVYa?tRYw5C_KD1YTx zae$#UhGuEWW<3_;wV7qbQoBV>l#6lmfwb;jiknn4+piM1)i>^8Af~JW!Ts~9O8qKF zHL6izA20)>R<3`-l4K5h&pl*hpB7p;S680{pMqKyj3p?6^B+E|2HD_c$TAJ`o$>1c z2BHIA@AUxH1k^LeaezFP^V5JSy2B5#*%rfF$hP+f5>Dxb32^Y_{NC{JyHKdhScdFI%>`cx80U7ES}oZRnkWAPE$!EYeaHLVyh3Rqq@K zYn~-(GEMq1`J=oR?slW+Y@&jOTbGkdG0ouimv&{+ne>VK!UmIgQ~kc2H)$KJz5HFS zTd~JFwSVw)})uwhownavy(h@QK8KBv`xqL-(xQ6a82K`6HU6 z(F?ov0PZO%O;IFNyG4nn8R9*gn|nqjpNG+}&A$V6B?R&}c(fAEBICFI;~Dj8tMlrd zO}T?Uj7c|eZKvFCDces|K3es`)+d_uF{*4AJ~ZI`ixGGop4HHl6(4o}iQKy%#g_k} z<3M<6Gk(P&DI4Cl!MRracHtuH=d0q?=9}5y(B3_WoN{{V$>k*uwFc#wn|#3wF2nQ_ zq&$OWAOMbhGFN6zVavHps^UwsKRrmlvQ?3MCK2MgIE|?xZ)WVMMAKd0)?GtgMk3nN z>qX)mqCt;Em~);-{qPcQgiXdvxU+Xsyxc+Gz{oYYY78><3VihkD(q4o<$1j)<1JF0qn%6KmJsL?uw%|`H@eqeC_Aa2L&QG>SEl= zS((h^8s3gD6N;^m3gq8ctWMl4mEUhqTS%`LEPj1+{?BS29d~&+C;J*lDA8_d#bs#5 z`n{S|Bu|#!4cUcZZd^V-lfAv)9jLy4TGAx`qA@70y>%HC-(=>;)8}pb9jedrp0g$| zmxs^4l3VGr;R{#ko#|3cXx){s-R0`LC;tbcPf2at56T#()Pw4Mg7TYCSIFb~C^K}N z3P0)Go~CK{`1c)ApV<#{74M%c?Zy%l0B*imU#{`0=jl;`mTwf3>*4F4-TFb&4k&`J z+0C60{K$dinYz z5kH{8FePr4sUIbFOxES-*(afp1ax6-e25hr6ut?_m0l9wqXf~POzZd4Z14|f<%k{! z9HaXPIkr6`b~mg&++H|KJ_fs&PHY1eb9ib_!tIN88*^E{mtkh!qi~c| zqkZ^p^IY87`aZRwu!u)=&f08p0BP)x@e1Q}A;yWJ#Th4w-^R^G7lcFkK&}uS);MJI z=|;}xd?LlZod}4}cQqiD7zWK~`hxDkZ}aMLQC>$0B!u?ON8WTn51s+Egc+%Myt0=& zoRrW}`)(8=zr4;{(r7W(+afL>H-V2CaFCmre#^ zQ8vMAPU%B0&SQ&&b@4*R|8yYBnnRS>_{>&356TMVfal_P) z3(dpI(qLpp=d3LtHwhJ5X;|$yG}MUrVaxs&?hw(=Qb9?$W<1YYam-e_0V9Aq(6Vxi zL>6N%MZ|#;Nf5j}F*rqjCs9eDOX!8)@f>LP-Vx`NbvAI8vI!q5ssoGL2m*{6wXB}a z^9FEUrY#WI-sBC5z(FxKf@0$~kIei)=3YV3C*)00P!EeBa9nz1G*c15803oS{gJi} z^qb%+rCdxIrTaRL9{a>y``{fJ$PHB+W>ua~ko09>nl}90TOvlAVkU}pl=$OXlN~7s zhA_12^O-p8m7K@(7$Z9kVqyu-p3=&8fdjlAkR%f8xUR5b&_brx`!VkT>%Oj=cxYdm z+cf!ltw->{mN%DQAQzji{UKx*!RHk%Iv|B^9vkmr)K-Kd}J@FvD<*>S3)l4 zA@zrJebrD=#%HT6**KVh5Q|6 zkuOopHlMqYCa~(;smrDznSMm=c=a1`WzZn6L8(BwvW>!Oh;RdD$*OtsC-PkOecC0D zQuET09rc=EM^iye6LOfJGktVyI?R$kWY~Bb_dF+?uD2Z(Sm95Go z(cOjoJ4%HK`jiVKx*%p0&YQ4XD<}q1q{sC30QJMpl-06th-05LVc4w(SSNO%_o~axrt6 z#xzvUiD%%wWc1X-!FUWeyMnds2jlqQ!xo~V4{?2mZnvRlgCd@+58^^GO2unH`b-U- zAeAcGKJ+*Oxhpne@VA3}Vw_M^V}7QXm~zFK+pA_)q=qvFYI=EkgH}I>&Dx40+(0qW25{ zI6@2KIGA=mE41_<$pVe4y%RJ3pZ^CvMO}QU>~bAwD+@CHo)t31FVl@gd!WZMN`0M9 zlL>;N|OryNJd2q24{e=c1pq`j3>EVhPolv$jd7LdfApDEX}0i4rC*i}z-jyn zP@(1obCOYX#yE}4OdPQY_=pf~s_mA)(u8UOq;s=8MUD25 z1|QZIIIalzMw>~ytfz$<**dMe_5gnFu7}tTLvN?7xe!$%uW1D zO&Y$who`&13=n|!Ik2yQjE)$b<^S=T{o63<{Wgn9ssjlh#if$J{L5IFhE@eISNMJV zZSuv5o55r_*}OU%eN1%W`167@P228G<#HtJNg2OGuOkFe;^CX5b#-mk?RwsLB}7mrt>?kKgEp&~icb@?Hu zZs`|WuZi&(h`VpQQdv|G;_qPuAdK-;=&WKBMwrSF0??1?AIkEDR4QkKYEgpJJVRM> z;Ps>QR^n3VX+ji9B-*K_qQiQZlJ#p2V|I>QFR5A}nx|-R;KPSd{qRr*IOdmP8{47KL{lre5{xV9vY5@&;o!%6&t4yP?blZzh*jy{3Ev!m zE$@MN_nd6Du8-YId%KD)n-9Ff&4#EBw@*)TkP6F0``FoF0sK>^eiGI_{>aJrXrH{| z2YE(7uKk+(ZdAYCZnrNZ5+|A8!25k{viw@=Ux59+XCMZXYIL4@EM^?0pHlj*MbyEE z+0=3UMK;sY%hR073EqQwnPW6=s%bgcPNJe8(4)z}bnWPV(NDS^(RjRD{D1s;=TBxt zeO(Z^ZlvEV-^^DJalSR~*J<-g=U=MaLCoY04QxEA%u4K|A(J)2)niy+Npf3mMm2r+ z>8W z`Uo%Wf&{Y*1GU=$BvM{50s(Mob@|}m%9(uW^F1*$W77v%0jq+6C>+Ff6FbHeGdZd} zwwDNqJvc?e4t*?m1h8qZq)3Hmg;CQS>AAtxz=CECmnC#VAN?QhH4&XqF|FvOZGDh;ceABnQ44GDqU|MaihEh2arf zIE~dxM2!ejQl721ACQ=jy1xsXtx1PA%VscKwQ=90er%Ug8<%y>$Snxl>M^{oAgqK| zImNur%~BmtXR#^y3}ZXam^HnVS$GY-*Jag*%=9O}A!L=4*#owSg!PQ5Pkq6$2GP~Y z`fTy>!(E&#)H-$DYPs7c6oamE%8(nI6>XlXCVga?cFnW@)DGSGNNSx_n);bp5|8c? z7`^9@&^zg0AY|#2bWM@-M7}a=-L-u&NPR4J*c?Ro@B0zFD618Ic?;dLxhrB&BD<<*Avbx*FfK2GFba86^ha`Dm39~mrScn?L%yXkW+tyl zTC(dL_e$Oca4D@~Yj>dE$mDDyP^ds7WKk5{VJH^0sV#!_*0aEHs5|A^LJAesf)EG* zgsSwPvrJ+O0_8beyhgCcm6I$ql^ooMWZt7k!brI;Ms}x$m08)3L5MBeBUOT21V5HM zV%BcjLNNiBj#rpgUBMK`JsWjeaQ(=5%+my%2&jr_$`s!=B?t--;uHl=z^YVqXtE*$ zFi(m81R54`L!1Gu8x=<|Zv$`nOhA#`uBcPWLiZ9Cs!Bc){}T%zB78YTlHO7OAU-wN z-qq?CZHsAu0a^fsgJFMM^0macbFb`erbi~}V|SmN1=quW0hd-aIWlOD5K-|lFDEr~ z(j>Hzaqw;`WU27*gr6+mlwXEN({I!qMz!P;)^bw+ax02|ph}ASgk26rMq)QD;Icc# zU%O8M#LJKA4%{C}QfL0M<3aoIEM{UZ&V#Wdk>FjG&K#-aPPvlB0y@6K|J#4JHm}7H zboQ*+#Z4Kk{sPw-R-f#mzNm~6xxaqv_bYqD*{^%6J|hQ1Fm(L$Qj?fBA)Vw95(xHi z$jQI)aTm%CT(a}$;D01r%q88~@xCityV7xA&n*J|BY>}1dQWVT;TPqd`C9qI%yaZe zKL73Lb~78y2RPI#GILXW&g11n7WZq#*dL%M3pi*p;iDlRva9a~{G(>sj&4x}}i*Q5`)_Ui}oxmK9rZfH_9GQ+=RMu3W=5+8WG zWk~cn3#t1&;6+wNDQ3=>ZlGJf5HVZmU?#_LM=-njgsoVB<*_tHjHA@q=ZYg08LM%W8Khqh9^eyw){4^0d*hdx}0^&)l z8`dZ)aAWBx)Ww$X`JU#ns6?cEa^vI<)@-&R^Q|+7PuMKC5*KH+&%T%D`JF8Cx_U<)kXNPh9kM??I3B~> zr0n72eRErZ+r36(8-2eA$7|7j)k%UeVb;yX6BTC+>+Ds1Q+szC+}FQsTEE0156iIr zO|BWs&^%3uxNTv6e_2-hZ`*0ot!n6U2TqrK5m)=|IN$QyS8@6%um2S9KRwG9dVLyI z&G2gXyXS8=hsEi!r&)HtH^)06l^(vqbJoX3ZC(1Z*zaDOeZ7YTv@rWmfsnz1thR_4 zw9m_!PpR1MyShEFd29{__6CZzn>KToy6{7f=?#r>S0Uf(y_DmIPgpmHUps(ykv{EH zw)Dli_u`n!*@CA_Dh`k91mbSkb-2japNfk$rG72MeBsv_9LYF3rSL8Lw3laWY9Hk@ zS|KS`Hf=TMw?AN3#dZS|zz0n26aXE0MZsE(VC73$PyPp<6e>*^3!%&{eIRx!V{}`L zNireJ-xIig9Mscn<({%YO?Xsc&uF(Usd0T@2Wv`3rJ+29m;3D& zX5>C?(vXpIsgUIlKgKbU3fzi(%Lo8s8Nj3xUNnE+4;#(4uJ_FJ9}VLk|K+2&SNFpw zH{ja4@Z!w|`k7#=001BWNkl9@MJ{(S1P?~w7d9_icC?t~ccVh_o*w*`OeD8TtJGWqY<@O&+BzEos7!9QNdEcRl`_=aj zVV?RGzSV5EIwJ5GLBbLMQ53V2{I;js2D`&LU0b;J+fsQ3Wo|OhQw`cBW|%!&9_~z? z&9d?dM2a7rpl*ee`UDh+o9bI9&h1Aj~RM8>RQRCB6CJ02&3?Osne1ebrGqmxp z3KC;lAynXgUDr%Lly^Gsu~xmDv(vIXj?nAU2&k&OD;`+_>bAbr3{KWO6q=DgKwkgo z&kVbC=L^Y(EFK>a4*i+pT~I)s+^7rSKOSn0U|wpP{qycXmi3#vlAz*~LmqoqTd%~Q* zs$cszGWvNw1OdSV%uhc+DQ3*>e=pB*t$&XpzrlrC_Brq!NWWO?8kXt zgVG&bn=$7q0O+v&f1PKKzs&o*9<}b8&*2|OLz94c9YleWBk3OG7 zRX`YvCyndcjs`V-iR$O)&F)cSUUC~NReuR)98Y1~DixV_b|MoFCCgNz_o$G9USFm= zjk7KR7r}2#?Ll@d0l!rY#Z*6r6f!NlTqFR_bWfoLmPK86FsU*)&U_FyV-N$wX7*tV zBxg;m6ghs72@t9@nUr7m%c2K`b@=Jk4VC5Wz(GPZ8_IXf=p9;xDK>%P!Z`tE-6^vE z{{+FujwM-wAl9peX|pH%xd@R}nce6?&xR|4Z;0&2oHCE z%Cxxp@*K#@EfJ_P3mrI&86nQ!PgEJQ&Kxu-&Je`10i%gzhzWYyia14Drbv=HGYPTa z6tfMi>k4o%AxglnkY<~+!!|je8-=Ox!E`aYM9(OXLc4f`4E+p{fdzP|<_yDi$nPtK z=w=MxB2)c#5yhqJ>xX(%L_F8(IA|OZKmQ7QqdYr zWG=KXK97mV>EdS@dVuUKyJXy=&-^_XAnt~@h|7}8u9yukm^YhD0^B-}4n;d5Doupt zW<(g``6y?^0at@au0^^xB9)Ga<9NF#bNj6#F0k88k9^)jFobttV{6$IE==`^&zY>+ zqsan#n4l_f?$CnQgM9HS?-5`F`z0KlI1DxzF)*^hq+NX9G!XOt=6StRz*K5rqs%k-;zpMCs~J>2sv&$i?DeD+1j zzlr1tL-qgWbi7{3?nuCf1-`|^?r9&;Q4Qgr;H431<6%zj$$XmEGvg2x@1>t^>6dGq zcX-LVFApy9qrA4LiTA!CR{l1O}{BfI?Wo&n4 zHvSG{fsS@t%ehG&eiX{P6gXdh+PxW#imc&m|3M&k8=N{Y6zTgl3(~tg5g!vuoHMEg zM*!wz+3&=R)>%^3@$!gzoG>!~>yLbHGwlEUDgb$x6$RowZJI?y{BW{LX7mR;o_bxI zE6tA*R@=6)U!9H=2gTYl_JL%;eZT#@(diD7Ps?@wS2FY3Q2S7H{@?6Pq}m!4j0|xs zKU1UAU#q|WHM@~Dzs5g~diQT<^@!Ae16lKtcsCzD)q30$pA@srJ>+ z?EG-aPFb1U`j`*V!5Cv?+{KOt?Z6aQr{M#B^h)lMSitW-1PpK(Nb2Ec1qKD2r!=NN z?C3rqE-1F9tdq@Js}m{v(yT~!}OF_3O&d0gGS`b#gr>lV3#L&`FkCSJ&6>43FY!-mEAE~GtPsiwy z>_LQbcj)75GDqWKXc|-~>c!i}exhx8>t~t~e7UTk9LX)xX~j}nmHJ@URO(4mkXSb0 zzN_SJXuchWW+s?Ee3PXgM&-3#XmUqenx8Ti#{fjBMqK;3&mUP<&1|i@0y)5g8C4_ZmuomyYMQ|6m)08&lQj~<=7bg}Au`7x zs80`rFx~I5zquC|ueJYT?#uR!Dto&&>q|E8dKQK{@#gvfxuI8i4;Gc^HR}ZO9T0B8 zeA3CdfrqC4n+uGcAv9#6vXO`lD+jTeB>cxaU>4ZIVo|L{s=<7hGKU!@lg>%{rmTFXTv{6j_(p8@UHE z*9s+K3|m&=4%r1yD%p4vhyhU7wtf`^44c9tx@2IaE~cE!@ky+$5HQwxT)ifO)kush zUcs2b{S1;Dzk!|{vvBkO@M6P)49&U z0ae3ICHFH<^4?u8h2f;yxW%DjcdXdPJ)LoX>{psQ!x{|i15Oxn7kI9yniSRCatMT1 z(>)kQodjWq9y!uuAej_uKT;0F> zbuBw^7={NT#-eBQc^(qdm-@zf0e**v)3!N)dXq+W- z!r#FwEY!z4nX)}B*}giJR;5~zcUc-17diGUzC8maFZjuR&zwv zE>6vo+4`LIRuy6l{?ny=19X2UwI1S)B=}{mo<_?lCr@V8czsL`5lusF_lHD$=mdI? zM%+CXjh!v$w+%8Wi;YhqvAEwvw0qyAMQckO0(f$EN%AMag#1`sZ=QxWX7hXvkcC|*qGuq**68MHyAUe+E;U<&80btkggwtU zXr>u>(RACw3YKgC^({AsG)ZSaGU<^{LBekm6LzdjUUgtpYkAasa!(G=FmC3Z#f&{H zz(S(Pnmsp{&F!bl9eC}|gcqY5e(uKe-;e3)w&xUPcv=S=P{ol~9VySRFvXwHnE%)-{ zseG6_zMChSt4lf=)y&Z18N~-VR^P5CbiD74^Ix|P(A1`=J3P?K5baE=@t^E3yqdML z2_KgC!tb>DbH4dheKhubE1eBZ-6rs!%*9(NSNvc8*NT!1&0m19VOUZ4&t&gGL^SBv zr-Dy2@j+a9$(}!w+Ygu!l!h~`LT zYe}tZ;^lByp{805t5*BGzea2noy?C0`D^ue6cgRmemf6$Dnoq7eF~pcf%fk< zZH^_-5{G+1o|rKAW%_|oACk|Axx4G@zI^*S47MW^czMdj+vW5pZ!YBPvZ)`A|6f7+?@+bYZ%I&%O#?@A!K*WV4Fp1A0nqq&*K>iP|{S1%7p*tBOGBdUrTik}hjBB~{I_`x55F;7**e?St zs6diX%kKn~P#E|rkyuXi1;DWdzYxE&G&Sejl{W*{X?+Hpov|toxel?`#O7i(b_7hd z=JH5C$8pfa5HsiskiSzxJl-IV1#x=)Y0FCZh)E)p9X~m?7gH6iFDHtZ?Y*u5i+fVu zhG@OoKLw&Ew-sQ5+3mF~N9zM7 z0cv!+5?a7VU092{P4d>qzG7P!f@|1Bw+Y(Rl}V`glwZJ>Wci}qMR-{*!bGXJEk<`` zF9lo2kw2Ls?APfS<(V=YRxpl&y1;vQ9%u$ zaL*rq=ev_vVAke+`ZH_VpRC^=jxk=IS^SwN&EDs1egw@6jad=`7m!&ae`%aPYE|)hcmkIYQ=z)a(~h= z$|--ZgSclyTR)pw;+!eeza)I!5y;t!!~?>cNDV`B^$#ib z-dUVGA2SXe8YN?X+s}+6K=l{M?w8D=fN#Eo&tZ7x>*$$GFx3p!)Mw*R8?>d?1 z)_SpSGlVX$%5)b9@>#%Se?ycnizT_u$zdLMSgHYFq`JY*`x)+Yw3Q`S_?kepav3R( zdV;vJ@hP$Zu)iW4SW2(HhIDri>7iJI%*Wky-W=-wI4@>ky0f$h3Zr@QmQkyY4gg=@ zaAEo_&L}#>zc$LP__EF(kn38q4Z1sL<21Vry_fPdaS)SQ?jby3DJvMSablQsLHVz5 z+@MM7<7lk0!?TmH9``htl+C#75|D2J=m^Dq!X-c<4}-hPxV^Oe2F6z}HolXUAGC2P zs=tP1vR~A4k0w0}6~X5}hnwth149AcY}cFR&o+;Ukv|VZ&p~xa)5#pC2{XDs z5wq>8|8BV@FSW65zaH)c2R!8m2CDodx!Ll07(ggQ(6^D8)ss6|YQCC?SdM3y>vL4o zHb=KGTZS+~;?o*~sj6lHnUp9oFn;Jxz9(s4_rN`}gW>}}a5mCrYv)Gvi$s$R!clR1 zzW3oV4Hdu>ON6we*AoQ-1t_*?L5A|64~q0f;;8mvE@G*xh)=`O zP&>AG7f1$Dhj1=sxTkoGR?g(48V3r2vaBF`E2okWJFc?FaTGX);E+1M7fajFw<%34 zWJu&oMJ=RH_$kiXZ^xbEKR)&ZOMNe4;!~_tTO5}`3)nmJBktHotHGpARPhw_UFqjyiz@8N=$1W{CtP0C015sp z$Bc($DXbb^meqqzWZ2s$kXxHgKbMez>;3C9l`h$bZWVEYzlA}^;(2AGrV0XZfNsJ6 z_x}RPw#1u&d!?pgRv=+v29f2z=Bj?LQh&pp*flu&_`N`IJvJ6@*-@=VK&bD#!@Pgy})BHMbYMv)ue($gJnu%J&pC zliSEbW(MhghAD4be%_1AZP>@JM)}nBabKcxGQUT^1Gm;Nbn4+l2KAZu$(mpLK|Z=g zixKs63o0XX?Hf5^N*L~bQdjm|u^BzLscRryZ)O5uhZRsn#T-??FW*ajR+&!y*2G5?ysD6?J^%ux^%K(&b z0Zdp}L{EiBM2|_LKXgD9@K?9gEV*UDO*x8S^T9P^@1+`l60x?|RxJOxa_VgL7W#E;>&q|Jfdrbd3w26+Gw1BmetQXk_E+IQSP zrH6jnUzS$Y-HW#HF@li4PEh2%e*I;6aiEzl-i3wi_uDRO(TCj^|MGS(d@r^d?2~DJ z^-@SGw*LM$ND_K1$vyw+KUnr4`Crg|GN#GmT;75dyT|W1MTy>$TS8(-_}m}|WnOOE z`wXoMBF{eQ(^^9w)-YeD;vs^piA=We%_qCd8e$i!SyXFdKF7-I-ccfj1f%NQ($FlG zmkvD7E-^vim?}y#y{w@4fOa-HpGcTKY>@|OS+xC~8k!S0W?5rA+GW_GEk{}JVdOWm zkx@ivWYiy#XV8Ju>5>^{RI-3u?B(Wdev<8)Qt|D_R+~IU+XneZk3xn@5bcISkz-C^ zvP4JFO)$E|A#U2+NC?*lM(`MIl4ls1eBC~#8A6Lw3JbU0eQh&PF8@i#q-8GqyLtehE+(RsjPTVu6 zw&B*f!}c+s;C{W1*L3eg78V#Ur}UU_J+DN}vu&`POm>`tJKBsOqeY#G9bMi8i&H?4 zS^ZvT%XSsGq;-4=enUJy)WYN9&Dle@42Maz`1q^u_!$4a$(J$k=l$mlU9!8Kp5Kf6 zQG*fWkEOm`izD(MX>i><-TX~NckhSkQ@Uh8m5Gs#&(AdWKgWD7aE&_UQ$fUh-zPdu zw0sz@E^mtIMnFqz_Cvm&ir-#$i5qd&-XLAUsPX^v9DxP!=>>?>xU7d;qQq|5V0yN` zCe`;(ID*fw&z4zJd`wPKI|OEvV>wn&+u=8)*q4^CO97td37bZ}$4js>uW%y94pRN4cVZ|iN!(Q(Nf zNj1>Ul|QTx9A>x4iOnsxgqdC!`u-0o)gY)xZ!(`)&wGBd;+#MgjkK1K)yF= z=sP@+Q(7|H2FB;hnZnN203Zv~W9U%?N327p9jO(?o2-k2b9ge$3%x5Jlg?@ zf!xxk(^W}mGLM0_<-r%LCNll0R<3ef>(|aILUVHC+a#g3h#y($2i53nuV10BoS^8& z3v@rq4W}3%c36|B3|B(}`*w7s9~-Ie64bQ#5|8U(48n-GKGG3Po)AjY%*|shs}0)E+q-JvYIWJqD_5M)OHre(H=bN3yV9&I*F)Tspo{#X3zr7U zOElyT&V*}ZJxfIh0QcPG&^kV=jja7!i#g({T@XhWh}nmbWEKJprAZx%aEYm2lPD@b zt}-z-H6A0r0g7DWf?nSzroH#7ML-K3GJB-&5%{~yQr;#Dw1`xG>k*b%?XTtaiO(h$$F?5| zxbcs0e|vk^#as6JsjkB98%ny!=Vt)TiO2E8dI|Zus z$u@j4&^BEGX+OHA#hzEc-;bhnR~E#ey6!xXy=}!)yM$lP-E9x`tv(%wWW;Mhiiu2t z9^jm?bgR)i1!!VgTL@6|S=@h~b+NPC_*0{{dM>xV+xNS+R^qkj6%lzU7>n$Ed*1VN zd(X?Kp9Pys#{L6jgR0Y@sb9s8Kc-yY2H?rzcrn}Lml8H^liuB<|2)-%{RoCAdS%Qc zDG*LX-jd+(T@drpwyuT@uYn4*DEmCMS%G5VmQTG%k9Bvp@YD5ju3476jWNt_bCTcF z001BWNkl!^AfsrcU92&aYWBTxRipv31`|9&VQ-8)Vm z&1R>GhFPW90y6t+hO^P97~5)pJ|w!Yag)NZaI@!mycTr_#Y>{C|FZZ#7eC-M3d$P# znsD+ElLnIMH=hnoMCw$HcJM1E#D9Bu(s;X1qiBcS^J8soW^pz1_o>UEoQf?g0-Mp$ z@-Sp|Cb-WAoqLKI&4<4wYNPwOh1uK^mW=ProWRcYxTw6E{t%2s@^iaCXFV9ib?cZ< z8OPq59iBSuQx?oa!9IT4bn9N%(tWI3O$DqdU&8K}zy5LE)>VJ*ofG8o=RwJP(S^Rl zM;Py1?}7NVrdznAYGmoxInnDnsB|{smc8lOsczgprPI6Bc^}_VyO!x*f4pU?veef7 zg>y75N$&>*{MWx_=LhxWsu9RhlBIfv5PY#|SPa@+WU=V=Rxzsw*!?FW?qA1g#n1T3w7E9P@%W=~OV}N8`@mxQQJ~YZYJe+|LU>!M z;Y8gZApQvhftY~gT9$7cS? zzSbB1JvILf=|lvRVX=9#pK&VgX_f^n=;Xj%a@?}p^NsY$-BHGvFxv2Bn1`h%2&;{c z5<8P&H^pswv{q}I$+>knZZ%mgWU!plc{OAlP)HWXm82K~A+xwQk_J^)OwOhhY;kNA z<7c*+kI2fcQZ$}iI^P-z2A!~CnG5lV(VEV9{pNF#WpVYTLA(&Kqlh@EfK5@~|5fd- z3CZy#bcbQzRBj4Ysk`(Lr308~zOpShrEMpSn{2c`4%l+oM73?XpTd5_CJYDr1CzCD zCDdh83GEpeq( zX+=N(oPNkM6WjJ!qt=(S+YA%yn3BiOcZ$K{kJW zo$};?{-(|C@wZQ3Qcc%wC?5aB&cc2tgs&H{!~gYPeg%ifP^55KQL8Pc@lf)j+#goz z!I|LQmP;Pxx8rj7NtWrhty!`7TE^w#mQ(3YX%n}F?(cI@U+XEE2@2jNOOg%16p{H6 z#dA|?y5y9j;~F3RQ-mFl#ogdiOF_{?P)o)DDFr=NVX?1SMuS z08~J$zuaBA5INQbt57lXz_${sJ@}~^+BN+;+Pd2Dou6T$T9*{*%cYor3?FjU^b2*E z_W1%Qbkz%AQPvGsl38enY{M1lcpJP#ChFzj{AQx%rge7^5i2CPt9_z-8HL?PI0TJY zP+z!5%pGl}Fg>msB4xU5OFV(wcK0!#tw(=EmZ&}us8n=dJwQw&=?FM;#mKbPAkkFm zqA-@kW6V{>VYNhI#$pyEfSI@D#jX@gDS$etEE&Yc_Zb8wlP4h!62>IV4L-%hK&0`W zNUGNU0p?7g#8T`4wRo_$L=o8KVMtfH<*?zPoXKg9g7ab)`Iypt+UgC1WgDtRhZ3=f zIuTNe7eo7QxEH$-Yu%p@EVTE@^msd=IhpMtQ7X+0FC1c&Jf!_%itf9KcU>W#z;DMC z>7Q9OMU4T+g>#-KSw|$N&F>&^G9>f6Ec2nsrjZ`?1LB5A7hk~)Ve+Pxxedwyd?PRi zmus3IdRJywsCPcdabu2dlNKboG#vPsSlc~t$ep-*rVkdq>={k)D9x(OQAXO>R^N*-ZHWVGeEtO|gcwD2Q~vl5 zG7}IDgycWcb(~%5yK8E0EzDfpuyzP6&)~(N98LA)dN|~O@Q+Z0NAG^b2&pf#tt`xW z6jYAUN-A;nR%g<4h$YVyf_7+jP)u8#Jj;kSagW@z&(w{r*(_BDYKk;nlP$NTh0WS) zpe2?M_HhuQd|#7dOozlKv!3-rs#i*UAStuh;zZ27bp1~+vnZgL%cSh5AXnr;)H#%~ z!)rxSPgSl~j59NS3S*)pMJ8&wgYs3yyC)=}8iiC8ot2H&KyX9VTnhlS&Ev#SJ$e67 zxOf|;N1k~eBoLE?8>fIQG-Z#le)AzGo8%R8GM<5tG;IkDY2vg1GcR*9)199@*`d&> zTcl~cnY{?2AP`HFUemG>yF?F1=a_iQFZCF4b+wZsVb-?oH`pd|X2)odG89T}jI& z$}A4MD+=Qr9JW`5Ces15`0|4bRD4Zl_Oae}}h$Z9n~v6a&Ej*Z*)FlRsEC!$aOKJ>p9JnWRgE zAl^QT^q1GP&0(Joq5XE8oBnI~%5R^hXEFyuPHe38Z|my{d%B1Bw?9bXYudA0T;Qit zt%h}v-@j76Gw>f^8@BSxpQghwB}eg*9gFWjw(=90V&7X>!*zzGuouz(6Drbmb<;D4 zQzzi{*S-Dej<8)g#>^7z*!Ym0c#mN^hz00Fh%MZlA>6agcUq8sf zp7lE4PPBIOYU6IV8MGU!Io|vO#_olb>t(D#0O<|ekqST>?`=^ER84)Gg~o*eD_%$X zJNBqo)az9$Y&&mxsK75(LxcU^_)4| z2HM^17sQ4s@)*-C_sH7xSvx$I7z@z4MD1PeYaCq0Z>KtA_l_R`7owg2ue76ILt7>|y z=3W?@qX%{7g0;9vUVn$XV#LD?;(q=GKKxNn56yyS{pYKVzbwDs(1|7xkHaSNC!nHP z6-=7<{V`$cU3N>d3UZSE{_&UhviwvGI$Fw)^^aSsmTP4f{Yjv(T{H1%ZwH^ftZ+8s ziCl(v4nAcRW2(YHp9=ALqq{tk;Tx8Dv{$3WOKP$f7?;6NpwI{_(IUK;=@TK-KsIo$ z^^T>|P5Jbg)7j(02yfVOUpsiMc%hUn+uefiMaTkqJP_r++fa2W@ujC9@v65&-L&sH z#ergQyIWEeYlu(5ZV3=YdXGNoL*chx`E;plX^rd3!{oqP^7o6$93)b}^_VZxTa*6kakS-%YwwHF0qvQpML5Y?G=st3OzcJ4LACOG201R2lf`bj$96JcD+^ zcRFM=37XERPb-~{ah-|fu08%NCON3zu|ffl_i6_{W7Ws7MV8Ch&tD0+eV|92HDT+4 ztnZHn81U0-=U;*lUgk$OErke0euqWAPsiTp$JLx-{CIy$(xU!`+RE8I?G@@qGabsj zWbe1w`?ILXC0H8r%cu7o>m)|^anbxUct$_g^|XkPp_VD|@Mo8U%pqT1EZF}Me0bRy z&||jmOXlSD*+0CA32YwTyiD7%WZ8Qi^_L$zH+Q{16%t>k*Ju6pTDEU?Ktsu&mrieg zuHHrZ?5n9Xhu_7FmaLxOl>G;JJp2WNPZIy1|N60HyXm2Ta}mlvv63`21LDgDS&jdS zodV0_n+~CQJin0$7K~}0!P7Q95@_Fc4wKxp<=mg&-OlFMb2;n^e0=irl1xvmyr#8S zJcWm+!z}EPTQeK`fK&7{6_s7c=KCu~(p^k(u01sCAx~rg$-Tq`dcTh!#Mfv|2zyB# z;%=k$-Wsdo6F?G0?^u>c4<8;6Q$&ZePSGUb!`n}viY`mEwPZ5us2IQuM+EDtbB&1k z&kTEqCs8Ab-ZnNHKek1|$9yeC1e!f8h~TrR!P0QLZb$rqKRBjgs8snNBB(fyWrGru z)%bM-HA>OAj6F^O6!WqyMK8YHV0OT8p>$*#QaNB15t5MwcZ(KS&Mf2shcXw6t}KzQ zJ04d@?Hg8@$KV!?L$D%?3N}qJkpO zauu@f8A)*CI)p@%?OgD=422Fr-Ct#fHDx%!fe^1Pr*1nP6rAA}xtSKFeZVI&1-h}m zcIyZ9KFOVzx0;F8S&>lc(Lm+!a=uWa9pO9Kvz4$IOZwUX{@6t->xu#gzJEngMT=OB zt%T_To`FBD&Ex9D4{yVAjlj~wZ7>Po)y=QQt^)5;Jgu*Oi+o@PRlxemPQFUx_m1~o zhdLHSt=9gbt1amiKuna|ZB-qTk301;Vz%n*N2XR=jV2H4wS^VA#gm!?{6&+vm%+hK;s4J+>4(zo4k}2No=xVy1?^8hVp5zSt0T!hnOCc;+}XP?LwGqJV1zK zKZ62Uy`(f9;mXFFvfpaxCs@S>#EgNp1#n%tP?DPIFgH%sMg=6e!*3ge>-{fVo70_H-q$2s zZZ{_3CVv$r+37K42kvdDX@6KzR-Ve&J{c>!{ay%}H_I@c{IBe(1TzXDgHwU=vShAF zie7#nlgCeQ+sJTz#M8uV`8T>`KkCbR-k4!8ou58WW&XI{dzoRV#~j5VR1Gv=kL}!* zk)2JZ%VM%&&ZwOerbi~1&6CHXGs1-7Q|%3VAU`{ws9bInG(OZq%YNibjxm*c(7S1}CrWQQC>- zK=s1pe@ThZY~0jQq7ch$G&<>jMwQ36?^ebKpN?iJNj5G;U}&n~e(n}ZPi7USQJ;xm zM##Lc(o5_RV++8z5cQU7jdIS`5{iya+1RkjUWD1v2U9VEl5lQCtQb^io+`=SaF8WZ77*Te$}-fQ4i*Md!R~6m8nk`xzteVvp23z?=8oz zPeDG(Wsj5qBXN`-Eo=TIGCeiry94Ofl3f7ey5EhhvE@^j7T zGE?zXmfpj=PhGYR{%0cn{B8FX?p&p8_%-Ap`EYA|e{7IpkHB}8&Ofc!3tzw9|Jh~^ zVg!MLHwyP+x|Fa7yHI?ZEv)Qc^!OeE{*q+dzJ2=~l_=CyMJR`Mi(X{KQuO z*+HJ;uha0`V?c}DNp^URFZLE#t##TwzAx&r$_6Y}jyJFK@|8ZeZmjbmU80Ddhixl& z0NyJSy4(DaGo|`*{j|H#SWUZ#f5xl9)b>VHZ$}<^ikz_^91pX(`7u+w=Yo!@Dueql z*=8H7A*K%$Gb{Fa#Ef5s0Vjv;g?{u}mS{2F_L!S7ztFg78~trvb^ah{mk) zda(yGaYe=wyInGoQ}r=Es@^>8Eo;~dPV-B@9L?yaQl6gt%3A;pM^fKjdGWbl){GRW zgP-GOB8?|?hhs#Aq{r#Z1jN4|X>R|`f#t!H+gPR##b532Uv#(3pV8iai5VEtq|Wb)ILH!XF*WdP78TOO;raQnipE{A+NJ;dcxEbyK4+Al8oEQBj+uv}Zd zCXK)WGw4QEH9*TK_`t{KQN+9tY7|{2FF2x+B+7^WrXgVocdjH2Il+2x;dSh(f8`6z z^gK)#I#f`pT#M*c4q(fWS~hp;B6^bZY!c5T(Hd<$W6NKr#R#>II<;V06<-mHJi}s=xCSxj8{&GMiP_02 z?8dRX&u|Y-CW$U44Eh|J)n#OfDc)T3#o=tV^vLEk1#ypz#ygO!4-`FCj_9N|WoII5%M(l2tImPcpz5f%z+EV% z!mSF_GlsX`p(}`XZNs99<_E~JC~2gbyeN$0TYU)&L)DpHECt5_&in34Rc6!}v_Tsc zAvms16=ON>mQuHmg`(>?y6H^pXp@sU36&{$FkEI@isb{^QYIlmX@dO(9)2x={U?QBR+gY2`=8xe%)BJ>j_+agsn0?BsV{8!$nXQS3s%hugfExf?DO?eh71h2bQ;OzxHmBu+6G%cABi} z=fdT~v>SCgg2`+$JibvGxe-isF4@^Gk~w~7z3}7m)bjkF`flavf7;6;B#|tX)cO6r zJ+912e7kOwXLOhgIE?zP(I$e+`z9y&fBUbh{6NZ!?%xXtQMjk|g9pFwVfq@IKaK80 z4GjIt((}_lmHl)-Nb)CyWiRMI&HhZAFSkOw0i{$ieVZG-nQb4o5ZJUq zpg<&uVBH&LyF2rh8)#^#=F_f-k3vR|=fY-w%yi3^e9pw0J4>*ce|hw^+AQJS+4|B2 zb1o(7SnK*dk1L|%)pr4Zl)ghnk-lFq=NsB}KMA06#$eq7F!(QYmRTp*EiTDmV|7yV z11f){5-BQ?=4iJC9Lz4Z_Ny#2r(TwHNVN`+nHz9+zyD$S?UZ2jQsE6X0M@~nZ6d`u zk;l!Az@xe*RHCIB^N0uVK07I~tDvWdKCD`mIEI|v6D`5 zcC_PzFPG2$F&_p~SP5Le3kAuD!8Wl4tk#e;ES|{P2jxAXbrPxKbRQKS<9b=DZ8va^kOLxMgcuK;zO6Ph@k015}dNCEPpVR$ZsVYk@b=X2sDghoEAU;cQk<*B? zw|OVC;@-(}aUWaBR?CuPvPy|JwLY`7gg}3dHLDu13%&%?Guln~i9`Ym|>gRwd<{jwrl=vCKf@id)Sb7$IN_bv$!H5)e@gZf13#rq^F`ZmrQ5Sn0<-6 z(KgX%u-uCi7_0(CA%@$!7M!D)H1E}K1`IIBxpEv_A8#oPk@I=@CE`n0%US6I>6H%4OI~ar*&TUIgz;GPTo% zfNJDhcwK9~b$6AUAqgBcfq%dP>uiWuGCa_tgVho~M!2nq3y3sbWTTGC&HfZ`hb3WX z92R^nNKEba4*ME18~5;-+`-=xoAU+0VM0qDD#H4j;F{ubT$goCS&qwHnZHFsWUh=* zAt~O-y+TPoKAa_@_FJcNwk%(>wmTP9`ikwS(NTSg5ao!hCmbJKKqDA}UD7`_ufzEn zn}Nv3c90MC>)*~y$KBvhE!uoy)%IrnRSdf2`j7*4E|$?co67?(iv06ET@I61X)kjrQ-<)F}j})k}9J))jBt8ChtKBAqw>7P|=9K;E z3Fo&5)}ZDC|KI;D)df5C8MZqn^U84QQy4E1XAorV*kt(kq1lQFT$|HulTUa=qvS8V zd03fAL0Jy&J@@;V%sf5~Pa|XdF|WUx9?i4vA#P@vczJ8l#Vm^f+eizTzPvz(MX1&& zx!o&BoF11S(~j34M*xo&J$D?Iye$2rT4|nWZPdRZ>Y&b7Jmu;kaM8b}9OyE8}Lo&u#($wTVoBh!5QZr`uPDf&2*EvjA2s17z zV*;SqzxX78r1gw~rzyG&!?=yT50n!c5+V@+8C&H%a$CcNWP@K5zLbg@n4hbtmrur0 zz~`u#gmJ)?vNX=USbhoI>1NhjiCiuOI9pOUGJypl&$48pV!py=uA`|5!sbFY-O{|> zt6&lKfn>Ozc091Wr3x&DG6PrNAm^YESv5^wsyAe^_u=khGG4_YIB_${ws0qH<8cUx8>T;b>`F6Jb-rwXzG9l?%Nhsi7AHQUnWX2f(SZfW5g%vk4sjO z!s`1WZ$1jSS%7%8CL5U@^s3=+oF$n_%U{qN`X|T7ch^EA+8nRC5xntnPl}?Fpi75>vKki^UMrIp89bsi z;(WwsJY7(V3QA|Hy6v$xp5`o$eh#4&YNUBWZWzu_n|iA_qRYjH3gjWzXh;(_gD=E>>4v}`>>(HSULiGrmiM;3o17gX*i z<2UMbohzQr>Rb#u0rtI8iSM4K9kfU%vFg{e=ys8g!(QYdW2(SRqFCp> zE$iXo6}v0|t7UZe&xwGcIFDQwYfn;f#lzwf0c=@lZK&p;JNaO zPm|UKny*lXxW@XfqS{|3UZNb^7pkc_fQ?7lkivgj*8cnE*ZJo-SNG2Hb`w!XASe=9 ztDvCx(l1w0rSof5J-&~dv4*m{cel6=YC^10}5zxOez*_0PAT46wHr|rLnWW9c2&K=Jg=~ zztNv)nH?+PndvXt*i?!mjBgwKFPX1+_EY-(K8Jqj zqvlq=9UIzw)Tv$1MC?~IIu3To=kajkma3FAT*&4791~9oT1Ve8r*_-J)k?K?3)_^I z(pCS6;(*{EO_tmWD(*2H_W&};NB>%n0D?BJbS?>#Jp-FwKK2XQUzv3!j-1sqbnS@+ zX?P~VJ-f}xGf&jjj@hri8{r7hI;7*YGV3bZ*}# zo3wDc=3_EtmHwXbt9Ov)3}2;h(%appcZ$+Go6&JiP`cU{r3Ot)9uL44F{`Aulo$pc z$Taa!W!UB;R6K>?gFRWqOb7X%gY7erBgsj;599MJ@7q}3-r%pFeUEVh)9z5l_n&&} zbDjO;g^&HWsY?9+C&O(C4=nwbLVUX7BG9lC*!=pa%&Ds8q<^+yK{gCmoCVY*Wp(2q z0f)bQSQ-LO_TsmxlsFr@dj2yJztcXB|4`+=dfeQvA6%wv=KB`t zPnvdDTur~r)J^#R`JaFNX6R-*2O4JiZzgy>Jyhu;|5C?kuqnXBod|m0_xCE<&FXad zc_Y*F^?m^xyGic`M=@0@+A7P@3N1i%`3^q5kk)uCGC|ErBfD z07eB{a|sr-p$;~ZGvLx6N ziok3ZT2Q^bu5`j0zQqu;HB)dgg;mKZZmI`@+?uV$lunYC>qi69G3q`KyXER8sC*!o zz$0~+4BAy~7N~LCniMA#@I^yK9!9 z=JbZ8OV+jBigiH^N>|d)xUvT7V?<(NRFHK+t^pWTlK_B&1q+z%paddJy##o6Mi6P} z#bZpOX7%wC_46z-(upArq5&^hC(tAec@4Ye?(jNOnTdJ5S}Ot*4owMdfd~toBw!1t5qlxx2*!5@jE|dJ{a!*PyP8$ptnM3U7M>eHbkRQ;+k$gWPoZkFy(^Y=^ zh7<#~L3Ts^57-QUd}jD`&)=S7eZRnUnwYRxKhIwTjMnghs&$8oz^IfevZPPt3oRJV zQvp4C-eYq&i-2%I(vcCv^=1{7hU(8m`z|j;Xi?1;rW8o>Yg!fggpwnl=rY++-rvyi zakoP7op44lkrvEebJK4@K+Fr;f}S&cWtg|y_hgxL>`_kp#p~ek$$%^Kj6)U86uqSO zfE+1au{2#Nd2_Zg(HreeczEA zS0XN_q|3)(w4O_VJx}2y_JcX&db2~Wc@Z9ShpI$YM8pY4a|13=*W?5=c|wbD;fTW; z#3b=1S;=bP5;!HG8>2M~DeGR-29bp7>1OjRu@Kx~!HG8(*>kC4f=)Xojen3hdcBZz z*7v(T7!`RU&D7-Cs;9RqOGd`@*BujCKyz|7+p`;^<}gP(YuAX#uLHH)gdv06HiDzX zVUw=_kFyU4Shq-e3baOWZFA4>if~g|;?xt(X*Iram-ZS?m}F&p71H0n65x_NGPc4( zdWQtq{?0EK9{V>No*wP$rXQuxeS~fca|5?*zs-E0hsym}w$vat{R+20Sz2RL=>8?T zWz5vE{xN4es?W`5JAf{gXt-|ZxyTbh7_$2NDs=iWGFvNqxolImu){be&G{f^Dd%Dz z%$$sZzkiSdLMib7^k4on=i*pa$*ueOR7|f|@+nDqdp28Ma|SXEFL%7nZzVTqTf^9ga&N@@xg(N9I|LoE z-$qG>){k|0P}QAK3CgE`r5QuZRitf0RC-)})pc+w;N^(9B<9eNH|WPqa`jAhDEKOl&ft_EuOX6lqpSEuUD zZb^nQ=0ZA$(Yg@E!+l9<9Bu8iZ3=95d3C%c%5zvGp*@hSWZT03ln==Fg#Ow)3t3mogqUAEZGu9+*mR4`(qB#*DVQ7N`5;9_&-L zo3FTJ?ZY$ty$zqce|}Ymjl5BnjA>Op-~QggFIn}$@t3H}m6^Z__vp@YEX~M zbD4!tYJHP%-{v>eA6*36ydx5bI{y+Z-vVe4+<}IF5ivvRR z6mQ7E^cNf`^YApE?Ez#$uIJxMXdIv9N7d6?BVkw}i4;917T%qVHY_(+q?KTw4C-*x+ ziDU7{8R~K(EPb5V>(YjeB1@iIrV));W%Y)l@#nH4lm&csp#D`4|EP9oO@FmZOsX7z z+^YR1^UEC#0#z?}LAg|gX|l#9%iUDSn#?;_x{t9qwH?V?0^m?0koaaI)%CI}{aj57 z+UzNb_BP%!b2ykBgt+eeY8ii`_33UuY!T6^ERXOWUJu9KwU0A>^SA641IogtSH9If z6SrJ!SmP8}>K~YUzG;AQ%@y)`!is{8_7P-bHW!(C3Y^$>PR6Xya-6;LVIJk9ZqEoT z___<-jP|KI?M^`v7GZz%{zDv#QR|0INs_Un1+@IF8>ekgPtOt2pC_t1dt~iTn7z8x zRxkwlH8GppyxV;t;0PTsFcstSwm@9jDm)!-GShA&e{bfsL_>Uf>P@kG$G;!sn|VZX zzWu+uq;K%NqHo)XEg zIqn|b7oA2=*WtD)dio_UeUdl1FJ78*%5cJ`Kkf#wG{Xg#LlfWzryp3cX|xVw4hX)a+}&&zEmr`RRA{+GN+Z{}PsNr#)2`-^x&vbSSOS^pVW#>}}Vrk2x3wd$% zR=`m3TtpuY$xsTWARTR~Oc2jB%9BiS-6atiMdU`kyG_K{qO_?GVeBleeREsiJLnU` z(t_tn3PBkf5yL~y*Ajd0;z)Dx>eO1~DV?ENNuCIdncvj_4ERQCMOphj6d|*jCdC?t zD1==;u>e3rdeG|yFV5o6cWV22opIQ&82Cj*HN!$rRrEL~$JEon+4|PAz!dBNmA6G^ zI1)-Ad}K6Rax4c7lDFgDDdso8jlH|7{u=Tjna5oclT|vMkeMa9E2+5_D_T}dmt)dc zOnqsh=yC95yKdP}j~`r|N*z(ynN#8p-LK2?luq2`GdSZv+LE(Sd__2956draAQ*!I zn3X3Rx(Q-CkvP9b@p)gI@~}Si3r|#91s64!?fRm1h=v#c+m3Rt|AN{Xfs*# zsJv)K$m9wyC`p}%Y31C-E<4&Nu=Z32o_edOu@D>py7g#KnpR>8bs$&YZ64`jn{@(2 z8c2#TkeX^@A+8t2ykD-;pqp$Z)}38ak1qr!6K`{pTN2)nmQHLPGm#p!5D}(`3CPY% zh<%a5JPHW1=W`T2Zj&l*4Hq>nzl8`;VIXqTO0p|WmntPf-n$P3# z{N6%|AWFI^06sm~^|Vr^$~A5=^ZHh6jkZC;1G)3H2_Y>?BV7l9O%+qyEdSy|#GphI zhdhDzlU~GY#lX6%%(bG0g8p_%HR85NFffh9Zvdg;9|$h+~o;Ls?2_2$kT z8XlHHI&(WnQ44RdPzKRrv+hP8i}Kis6)%J`(@t|Gs%Q`RjP{@I#my^r-a0rkKAa}D z;eS0Ks1D03$yGsyxlWe+JC4P$*anyPp8_&UZ(GYhn znF73;_cduj|$`SD%b)QEA3% z&2alhU9lYUl*pKmE_(p4)+o@T97H{DN-n6hG##h#1#JvD6?adojQ8YPjA=N7gsS|H zkZ-{Ihi+;hn`paa143fd5pNv) zMCu2mK{jTQ#pPjbI^-~DWPKV~(hSO2hk<>9bYEbbARIVpQLo6(!dAq}AAqsYa^5yS zHyV)-*lt*56GSQtRz5B)hFxO)Dz+|-)0i&#?UB^VnH${rws@lLCr%PqYaO9m0XipZ zx{5U~a2TpSatn4a=~!&}28b(CyHZH540}L-R+Zh1Tz&Pc14I z1!g#Jf46szVYfd$tif~KPDS1s$OrWCxaq^SZbU!Qr~|S|yNBb=7yo2OulMl_o1s3< z7nn>k+bIcb6<2f~vb-c^tFO1Gj-k5*sLhtbU+M>xOw&Ev+P}{?cj%hG*Ht@fBeN0`_?{5wrYKZN>$eb{P6o@|7sZh=0e{z;fgNh5*S@Yy=&YtLyT{t64t-SoNoVMy?rFGK*nu zS4}jKNy;z*Qe|1#TsllKDQ6st-1)n8K%FPfa_0b=ACs>N;o6FqW&t1-3t4Z!IG`z> zW%;RXpi(ouP|$yhab5bPmNmlrDc;7{F>#5`60`PgA<_|GWbN`r^cp_&s1xr=63({F zGrLZh!UFDY{E})@_Q|@TJNmjL^~Vyj7w|#r^n?pmCoMXwo!U*AXZP+6$O0$rKTVI< z8W!CCa$mSae>ER|Fjq1^8rD2uy2a_jFNyheFXK3u`Jn&w{1uH!9Zz@k*aqfGZ3MO3Dgs{-|G0H!AJTIC`9 zeYrQ;=8)`wJP(k{iMT98!MT6Bjt+78VQnS!xRNi1G!m2RsUhmxw8r?xGDZ z1U}ysUQA32s6;m`6y4Cq$LagOWU!KGNmz=?3j#ZwPnr2Zo6x1XWeq9$7U{O1h60!0V%}7H= z9|-b4E`Vs(i%6Q{$BJN)c6E^SQMKfvz5EmVNJ5GU9#(W zV`zrm#Zh1;_Uae|Yk*a&Eok6=0QY_|UFq>!;L`zbHiLa(5A)n+X>*{!O%MATDD1<> z_kxtw8N)gRgCPq_vf^y)r^#AUP8~eN(;?Yw5HMp&}N#vwKd02^TKMnrQrORVh&Xr+Nk4rXahg0(9pjBuP7 za+pW7@WAB;xcq5%L!f+R3Xf3w$c>*A^@gJ*0^}!-(Wn+p;_Q#=5@TR4 z9Q-*md3CRg9-7yKjPC}$rZ1Re;D0ew`P(K<w9wpar&-eiNBICyvQ#JKv!@I3+@cw?QpVWjla7 zk|oFce49N=>~Vv&%ntcYYGb>jLA(8n>ibyDc#6a0<16x?1MK&*Zt{Yx7yKXpyJLaY zTMO8s#_nB?L3I|5M{@iGRs~`_J5e+z2uZh*_HO6LV+;$Ozm6mo7ui?XTpx;U_G-j0 z#U^{>^+?9u=CQMcPB(T<_FI?SCxmwLFZBM~d_uA-M?)j?KbGOtb`=%3Ibb<yl`Rtx0HV)gHnJTqRL!MO#6hPcY=HR>rjMlLRdK?6cfJzc#|_U1%8x#iG}Aw0(YjcGZiPFOZRwME>gB((8V(T zzV7+hQLss6AVz9G)S`Ovq^pJUszS4^KE*2omfeV zZrEfAfyB@`U+@bfXL2RmN-Fue3jGIt+KqQ7*m}E(FGvVB{9yI&ZFzrEO|dVye<^Y+ z^I@MtX#O+xIM(Y^ef(J7sV(hi+LAVTK)oM(+$L03VlR@Qf)f6o_^+YS8gJ5f5$!HM z-^ojo;Eu=dBvZ&+$bH@`g9CQ{hS}0!cKx{i>C<+)%wPQ%3%@LOr_KY7n$p zMO-?)R+Iz$Ge5Nzhlj}6c$-);NXuk-13|GwAPQ#rrhl*Iq>Km6Ce z5cLC+=Xv;HGmq@nCz5^tQs~O2qRsO3#6OwmG6BhA#k-xoZT`qX{vs9&sY4Yo?{v)n ze}dqf>9S=(5Nhhoom-xLW7!H3xIW}U?7jLq3$L|F>**P9hA%=-Lo9`Sf$<~lV z4qyw@_n3q;4q!-00T9mf1mE+h0E-Lq2M8?2c)(o-6%fjgvqsI*D8x5BT`;e$n7XN8 zaKgZA?KU|zgjzu_9VvW| zOl)&_Vl!Aq9}m>bI`9}h=)=@;LA`SwME4X@NsuA^ET?Y7N3w}L65JV%P?BH7@6V~) z71h;2lrqAARz-6lM{VEQ+Ajm5HjVc>m2)X>XwnNeBv<{9Ipkz6X%_7UoVCx$R3s7Z zg#(mRN^x7>nHX0gaG7nPN5B>?84{JOc;?&k_K}S=I1GTg!!K1ZO5Vn{SegZ2d7(G{ zALIk6P9DGoXK6JFd2CFPrrSMN@$j~5I={j}>N<_b8yO3K#*+mv3zi@8DM5XJ%P$}w ziL~H*?i1~Y=L?59cH^^i6efIlMJOK5<^GhMRb~a9FgVVOc~4?gE5Rx@4zeOd{M4vD zI5;g#w7tOQmbhXh63uer7?sV{R}VOYj`2=TIXPu8+W}RGtpT?^>hXQrQIC{bIc1OI z$+zxy+L&R?@#BQRGNkE7+a%((0vMvHf+C}E1&FS!4jBLgVCy#S@Z0YtpLnnUuTzFd zi1TcQ(p6IyX@EB7To4zeNAeU$jWU@4N#kOt8KNY}68jfL*(jNLyOKcoY!(W632-xD z)Luu>2;ivz0w;dih5(GaZr62dcEGK?agbU%L$k$nt|lk(GFa-bGG|*(Z%MhvP{v^? z!G(;joBP3glgKN!L|Xy?BH^qi0EK^Zpa^b{ry*6JfLwrE2F%8$E&xzKufOem&Px+u zR(hQQEkNO>IqCmQN1zw5wIAn^j$C&*fWsGW>FD0VeOjV1P zN?V+YWqPUAK3|8B^x02tlRo4B^FREfIO*#jdOSP&uuV|IKmFrGGeBJRj)$j2WH-o6 zxm}vZEo{m!2H*qjm{XJ`mENzS%v!fD>7$ta1;G9A_MYyGT2J^&BAME)+3!lTe_tpa z2I~Lf_6zTqmVPnSReybuE*K>pSBsL#iyhhXpgF!IU50EI9;PQUorglRdV&bp-->xq zNDEW-dGS}2aue3K5v+G(vox$G=X3k9of2b^@i#p5n(~oM$uN+EOj?kV>Dx7t;cU|E z$HdaS2GgNTAYi|V;tIQf454YMJKxESklhqDSQlDw+DZSA)kW970}>4hg`$P1mS)8< zsnTdH-HkhKvZ)XO#6xL^cdCu8>)dOzFhJJo-vy7BA|T7KPcQZBLk|S5c}G+YZY`tXL~oL$ffVsLun_< zu?v)hOwB;t;swK!JKEm6svwig6DAO$vGJR*4mP$d*1)VrM7tdd1{^)q@v zl*tom{y-_*oy@ueF{5@7Gpkl|CZm`l2^A-pR<%&>t?ECR&=rPU5#NDA-`b6O3P@M| zDqKh3GJKmB4$_vUpPe}QQKr`{cy-$mayer`U=Ag#JbLruv>oohN>r2m`Qqm+)-gOTH}`LLW#{R@;qxCj zPem3Mf6Ayt?*@!tLEVBp{lmQJr@9E` zd^p`FYIi>6smCY;?8v)1*#&4i65cHh9g3)C$sdwCLS?=;ypD;!Um}kY`hw1gK{PwH zCj4OUaxkFIuk0fMk$!>zt`9S9ilS;5$k1r>L)LBa>Oz-}i3VymI<#jRO#v;eCu*=? zLVg(7)f>_i+QD_Nn-)m72Vl5&d98snb^T5tGLaWbBsm?OJ{58zQ#xUFtU}u984?!O zadn#$5D&N5P2z4eJugq8{xPQliw^BzI_*c(ln_lV4K&RF%U#Cf4vCj++WI)ugxs5a zyREzI#?{l354Sg#_G0?HHAZ!4pzY?*NKbSAHva~<;JsO+D3hKHO3Q5N=hx4ArF8rF z`~vd1Z%(qjx)6EE+Swe|!zIY%1Jg&U%zTSgmm^XAtmhHgXy8bDj zT5$M~8gn<>!*b}-wRY`fe@0p%+6;1wC#sjz0;I^n5Pe_~7MQx+aK>2Ml02)@1@SXq_mQX06KkMnzVywm_zs8 z2vlr~vLnX6J205zeUHVWP?@O2zaEH*vTg>fqGC}p;bxYgIYQ zoN;W@Bn3MhM2^B{7lSpoOnWUyxl52eNr#trOCW)nHKF7}%gCEqHrpYa6@cGe+9Pa&s8HbKvEK z038mSOf|MA7?2T9Sk2C9s(c;9JzD)pcV@Jt!$4lZR$|w2nsNetsYXfvSf##i`iICX}WnKmfx~@9&>aX&A!R z_3bk9yt>8pF^}k`+o(1&!#}an!+|i5?>v#N8-V1rUD6L@5|g;G>wQuUC9#Xi$da|8 zRv(Xz)5n;0V`0~8TON-n%X!!!eK=$6r-lu=ZtfDAN9ejF)151VRkQnLnB;o{ikLtq zCc)?cI58Ghg_4$*1X#Enxi8E@!DeRchVz82xF4Dw&|x50;GU!p+ja)9czlCaYkBr$ zD>jx>5^%OcgZh}*W7n<7Ce_1_;0qT5VKstTGFu?>;x@TdU?Q~0Fj#ChI<@+1)D(D@ z2>}>^ZnQ$JfW)Eo5uoBN)x@|oK z06AYbc#zhjb=nUF8AE-?s~H>=Y)ttjcOpv0r`#DA3vBNG#?mv|p)$FOO!*MJg6MN} zlHXXyUn5%+)IgT<{WLA8&#SPzmCAuB5W`LCfH}_Y5?&R>?lu(caYB`D=P)8G@JZ5C z->X{c)PepHB9I`rPp~66?6aoI?(_n$n#6H7yG(GsXC~4?DGYe_;Cry}`IR#ci-qKD z17Rr9)#~-+a`eM2G~)LB=yj|n?05%>n1W^pFoDqKG8tZ|5k_1<66txlOf*lvo2U;( zhC5ORx#(MtOe7!HF?}R$r26$*=z!PituUe6Kr|MiZ_TTJx@fqq9l91}8d-|Zq&bq9 zyv1qg%59Hl1>o(YPVI5b3`ss7f43`lXWC`YMX#vzC#CUVpEmyU09Gw)nB~ReI!^fi z`nUgWGbufc$3xvwnk`HGC=A2xAJa4MsKS9vI9%k*DEXjM$H|aqD4YFiZ{>QDW zax>8FQ^`7ge%w5Fio6w%O_&awD}Bl?W1p}RJ&)T3W54s|NiMn9Zg^_DA;l=H{#G5n zEaNTr85c)Tg!x5nZJGFss@&afqo&`yY4l==kf4WV;`mHB1M8ZCLnpTCzO4h)d+*s`9z$tt!Nj zt^GSY%#*MlBAR>xS9*}?I$cCMOmI_Ow+T;T7a`i=c^9wtd0;=v*{Z*7c3uHjV|TyG zENru?2*c759bh7qM*+8s#AY`#ZXhm0EQ;V|%*K}zk?SQ?_pg~VD((_tLn7mRCN|yd&cdVuGnFi*ZC3_AvI<~kCe&c_5g^6t zeL62YeOy*b`(0FskQv^08}SAf%v#qo0*62Kczc!fYpHiOdAr$LIoHGI!N7`sm6Pz6Yt{e4JcMyKxRD^>O1bVlGuDljJTBV0Lmnjh@{%9gf2&S@`46VY`$P zWlOcBou!qL4aVeoLwunP2tai)lQ36JAiLELUk|DnK%3G^J|s*lh3@AKn-|7AJKon# z>cL^9XGP`u%Pt$==MTAzoqE|;58y0`e`5oGJfSOp_&}7s?aJbh1zXsa_z^^ccK5ph ziS#IA-SrdsbiH5UMu5saw`f{t{81I6I<75~xeP>}9LO3$;fG~uLj6$m#xk%Z%d!qO zPs5L2f1tH4io4*`dDTJ=x5xJ-Nhnc^q^5X1XnzyI*Cb$ zU(N{Ev{ZM1 zQlIk6k6n?x`BPplCth8sp)zk%B`i54cMq#mz5F6J#mC>)cq-THTa_&|RxVkMt*dG1 zNB-&Aq0CzI@U|T*jHIv&*z2g0@!KY6<%Uj<|E$KOm_0dcX|b?$Z^>lW45{U1RxSGL zj*_+2(f-8}W#Z+t*S50CfMCc>ng#?-~A2|L$W* zl|EGXrKBAi$Su8WXNqXa&zZx222_Y;R&+bP8bKi1Bo5pj{>)ds6xR7cWT4z#7v)3v znd-N$q+VHp+23Nfu3F|=Tq?P4&ef8$wmBMw|-iJRv*aFs81SqKpQ6Cf@`(Q!;_`(SF6HifkF)DHorE01tT zIsmb8*#zez1|f6AK{lhM8Q!^W%<5JlY$8?$aL9rVOxG@Bscj4t%qP5G(>NtFa)i7w z1{`iU;p;$WvWH{t4k8aS9VjRHElH;Z6t45`R+)#t{ay(&gle= z9g-~aAcuxzRFp+W%F2qdJTO*Np=HAM0Vg-_jkJJgrCc?E{ zR%M@$(_`DVkqCWE5cFEIB_efc7RE;z{R8+f%k5~+^?4lPqC@PSfi=#%CzVwh1wL(JJp4GI}~%p2oT_9T*`vV}UNnxR3V3*3UUgy^? z+lw5q!o>;9bqp^{iW3Myvm$;2ANN~&Cg25qcA;_ zID061BjjPz+h%iP@UT%!rtFr}-&btbC;1mv9J78BdsKi8Ug7!^TD58PNw4Izq0~xX zm$-TRGe1uPj?0I~+w@!}%h?{Dehu~;&>?o{<54E53SJ%CqGbxHc{7GuiE`(H3)RJ~ z_&@#+|JJ&^J%gKb3(K}U+8n}>zMIQ_+2;A@Lw^6G`HM*WGd%dEE9_~rzP&rXU#w78 z&7T){xnCZ_XSqPiPdB_}{gP8!DkwIahuezR{cp=VV@ca29~`}A*i4|LyM7C? zncA^~6EXO#0hGm7O6*j5D>&b5^un zMhRM=NZ0WDDDAx#O9rw#j%Z0mzPvo{)HH5WRL)>OeTVGe(mY@4C91lbnj!s=9|s@~ zlVq_DgSywxRI52zfh($~*Sz5XHHPQXhas1^o#)HKgF6(7zg?=Idj~V`r+i&`LgZ?a zix{?o-j<{WrI|6Ifn+DBY_fK0+&ePD(k5#I_0(cGUJfB&$nb<9f-LxyWW4hnjI?KuJ5hamhQ z07{t#Q+ow|_H*qF!q94D#tkkM|Mz;cKB>6nGZHQT7BiLKtnY6@s>@JWS zvzSyXr|Tb2;Njev#O%V;`Lh3VS2%v_r7BC{vGb!@|vZO z)2YwaU4ER`m#}=Qx9hZ=WL};ode2h8bcgOK4NW(aB;3EwtQz#U2hZW>$E2VScV>6j z58yON@$X)if%b=SN1*1_X3iEiJ%C4DufuscjrE^l`_r9v{DqtNqikLaZxY?YZ`F5C zEQQ&^SMYZUpO7Hf5;Sy3M(doH_+@YAJPL-VdMEPNJaZy@3CpQM#;tJEW$KOJl zY!_hsro)3ym<|((M5NmrTLDSBVX1j(7Z%(-ElZb7v@1lY_zXsybe%n@&nz5=PlG{hznCP5 zGn%tA(+^FZhw?V(qYum+K~@7m_J6D95%|YGTjpC!aK8=IwQq2^!`3RfWzCzRq!AA&qL0?UR?7KNSB22o_`QfoNouU?RWJz zmKX?@8z>2z#V&7cIh^AProo>pu+(8C8UM^`k{&`ZdIeSw<*tib6h~7+^nITx>yeq& zN$W^!GzOnIzI0rk7aiV~yI^>aYc_+1gb9J=Te|23Hy0pHAZD|AXr&y)R=JYWj+P9=DD0iEL?s&turZOFV*c$Zxi=wQ((r534KRqvt2W*O3q`FJzfdG zOjH3zxaxhEuz4|;xeg-Q7HILI+CKFN_^RbB0>+H@%!DXE=7+acaC{_xAYK=08 zJAU&3#*|TL%{9YIV#5U~xXDAsN7qj)Ona&V(g2|yTbNtUzRk6Jn<0@f;8AWkjRiF^ zEK7ZF_I{2JBKP8)6GA`MIyEVqRqh}%kOu|)79=OqZFwzT5-3N2omWax`_+wlG zzl?-c_s9DR-*og<+v|E#Br)l*vQxBu5@5PF-WLxU=+(>dSgcU25+eyF&QjwJWuR=C z-3s{6m*cuS*KmN{c8QClNh?YA3O8KwNZj&N6yp-igM6r*WSLA<9IBGn{>{)HWt-tY zCzl_>YnY7FDdnRBc9rlPQ1WNWxa7zD=i;NG{g$%V+-~8ypBe^t=F}hX=B$2U(k0`B z$f8IbQiN|7@=*@MoX{*Ta|H8%XM@OhOYCq&uSN;e-Gvc6e=ox_fnpPx5Z{L}GSS+4 znYL0TeYT)>8pDL0oJgBuitaA$>BSL|V^R@1mC=%Kol8FDlUzs7>SRsv1z}e~LNnayy4_xHARjv2-EENaV$nQ!^Ki|Zy&TyJ}?Gj(n-O(|Oeb$O=d8<{OTfjhYzWxT{ScU?62N?|n@+uA&-hx0o9WYl}eOkYtm@ z1)eqcKTcc>Ae>GITLImPRR3o`ZdEE*`kE`T7u3%H#v zxunTvXR3KIE+VvM8RIWEe}D36B|6&2XdZ_M^P+tqDi3h@LT-s_1k=R5H;*u4omX$% zikCshTMGuCF7L~(3gu3d{&Bl|2)Pd8(Hh$#VSPxSE{f0dNn!*N{PXLyOXH$k2$de( zm3(bAHJw*TKO(VneZ#K%Yy!nCw=UH__M`g#e8IK-Xbj*v_Z&p{DV-1mhqiWEhX42f z_21vO&+l;^&EswlUJ4D^_D!Nq<~H8NuAcwiJ71Pp z_4j(eA79?!N#Ggs&362XTzwxBbKNWM)W0%)-2F8Q%uwh}8nf&W(B-f)_7h8FVwX(O z_2JKoZlu4{cd}6 z$Ha{KpE$$i2OQF^C3Y^zceW{f9Sm*&slKNdth4U%@Br`bVf}X9A0=HeD63gl*@NY) zf9p06B3Ldq`>a84a2>YgA+12w-#n6iqteNH9H335e^NAI#g z{9!^q%dTQ8HaY7qJZBfkKD>|tIBwQ?SH`ZKQ~q50G5YCWwcn4vJ#yn2DSjjym9n9l z;T*cvZwf*dH}^I#^0vJWTe!J;q4P*y%R??Fma`ujBVpw8A^8>hSZCP||8ncNUV1rv z5DIknxKZJD^X5tHr;oS&PY7`6bN1}|0)mRR8>`llzcWJVUcU%WggC4aKE*Z- zL`+PT?&K&&Z#dj1)+U`_#P}h@02K^3G$zdK@AU3uU>((JL|`Y<&fWpwn_QAe`#Gf_ zk}2k4=+R!9ccV`bW71xe3X?~ySNgovQ?mFaIqc5&UVPfJRcRz!>C!5^EtIbDM7p@< zy@$QmK}_1`SSF4%P!to*1c1x$?b^A-K2*QuvjqHn-?a0eF6J=p z@89k(zIf}G!%wz+3HQ(M&nteLsR%Q9Cj9P}v%+vUl9&6#Pii0j!L%>KHhnAFC%DVo zHQsu*KP`{H@jJ%<{r~pwg$a1C>KdH~UEAivLci5KG_OBSqc%kevONECK>>wro*0${ zoh(Z>N2SAW@dK%(UNg!2`<%jaf^zZk&^=FDFNie?r?-zJ7OZro*Bl~0?P00UpiAsFzPpp(ph={eKk~u zM;SzQW2;!;saG9k6&qVG;p&EISQJpgJ6q?_pcxAwXJd6;P23_CgDA?N{-$A+VnUf^ z{^5xw93VRcMLF&`tQKCyB*GkKuzbs+opb{39Z(a?$bwc(gszISoZyYUv} z0TJOynvKiSq?ZqhLBYqnD?l}^lbJaLG%{06+=l+ONY)`XV-FTA}& zxqugVXO%kfv=)haOKolfmQnU%!JkEmeyH(OG-*oFaNw=vMg=4ffq)@F!=$acA zbuB-0r;wDthO^cL13jYkQZB!*SRh(Jo+XR6WW#zXVk7M^No#FE(6n8c<24J}l{?Qn zGG{)NTFi@s(U4W#DbLYjNLzL@2XNUf6qAfieU})A$pOZ}T#{tE<5Ae1utlUM<~Al4 zYa8t_@C5ECQ0P)D1Qr;RfaZMBkwTAgiRTICL99#66=6AClyw*U7JMoY5cd9K-Ow~y zd#^yCEn=aF`JCVdSQO+=BOb0R12Gt4xnV}Qz^Ac`J_6>FJyui3kEDvn2)Y^Cf=g{U z$M!TNHpNCG7bzMuY-fj|KgyuAcBA+6bX+Rc0?sX5n+X}*YY2Td(95#rT){e5Av`J~ zx;4F+_W;%vh^Je>N$q}S&Td6I%zN8{RH&NJ*()zR+MdvxH>wWkoVMa|Ii671)Y0N( zH)*$gb#g3SHs1*mG{*}JaPVU}?-`j3kUBUS%7uL&DD=549_u5{sU`H=^-D67Ta8m4 z$LVxeHB@FXY2eso^JbxSM3|8_t(he`RB$=T)Rb``>xbAw70WQ<4-)6uA9r1E){?#I zcG9J)w(Zb>pZK*1^KVVgGxyZ2I3(v6cCrMbUrOkYSCEWr4))`oR%k=Nd-x?Jissw6 zkV4y*Si*I-pztr!k8KbZ-A)$&AOFjL^+LsAV@$}jAJvEIG6kS1`={`qvmLvwiz?OQ zZ}V`DO26l-$@0RUBTXV_=_XGTdFJuyrq=v&6d$^@sh_;=cmDlapudTIZ}LNqs;kCj zy|%SboM0{)|1mc=a)bY0@P?Ft=&G-mruy`_-mdKXv54l6G4J}v#93}|zTYCDwJqCo ze0quMTnO~OY3ujWkMD3f?APXnXb~YPvYB0aBShw4^xvF38R{Mz8sdy1DpvrmDuG#Z zpLQ+}s5}q_R+{`#4{jxs*lbtbrFc)kD@g0i0M+iYbk*8a$bdCGt z%49w0KZx8}bcPI?A(tm+gqti2ySkWY@{+wkmGUnucV?40oL~xX071H`$eWbCw>aFgG&UeGdDLzB6V z^DTM`_W-+M-Vvb=xSki~(Vw};q^J0IXb;Vb7duWO_mUvk5ezks}*!qtygEFmDlFQw?M+CF$ z%Wy!%EMcy+rgY0(9@3D=3ugHRBv}Yafyd&T#eD#9HMcTFsS8P1`;}m%O4QqJjXZQz zC+HY2O-i6vE)VMkIf!vSaxuxby0$l8fC5TGIzMdXQ%7efs2417oDrPHB_ulEfffM= z)qsHX2`nKUF+CY-vv&KoTqC9F0;1v$!rh3)y}QqBZQ03^I2n_5lPCfj7shu5#f&EL zO~Mam^#N+sZduW=mcez(4?kxXUdTE=HA%}kF>OQRXs)~L@m0yVUG(?qNqm67@f|Wu zBX6L9W2TFAzc}!hO%s<%j`;IHvnQ6a#`iK=U)FITx?Of39{db;^)_s**;NBbCbaHO z+aCm!`~3B7mHDRUX*n&$)6bb?_}T*Ew=Q;cpZ{|s)rVe_Pa&wsd|Rb1o>6@Ca|2bs z#!7DWFhbDt!NpHzv6-eaAJ+8AdGa_cHL1IAX?EQG=nr{lIbZMVlpY@lDnBzqcPxD?q zG_U4(+7SFd|9Afr{Me(dbMxlziiGTdZ;*GC%T*>D4w}ypk>^}}LzpCAufN$v)zg`gk4*DGT z{%VY!QsmhJKcfgeVA{nuV|%6VpYDn!(?nL~t9W0m|20eBVI;{IF2~1=gRqFp(pPCY zMKZ1YQG>~oah-HguU(_DX6wQC7qv|i(8yG;bH1NpAmC|E$(|?NCNymC+|IB?qKe^t z#*c+MDhF(f*UFA|vXZeSVS;7GNZ^Dgp`!}~l$$bCNwu%hYlM(vxXx+uXi&uW!>aX7WW;-m z@m<3jtWR>ochQ-&;WU|QGvHomSB(`OCxmjGy56Zv7DV)m-HKwt2M&fs z6nqvtx*~Xll`bZMkeR+v;3MUO+Y~=4D$r^m9;B9RCCykQKzri|H$2mY( zfp<79TmW9lV^~}f+D~P=eU&X4s_qWxm)(cR-qp<3G*W$Rk6x}UiJb4K<#{q}=ZV@d zHFK4bY}5J3b`_5+k4L(LPDBC0Wbyk5%>h9c*C4-cC5|9~luxpoLm>bqmJ!R55;dDl1}9wB0_Sx6Hr6N+0?JIV|biBVE2VS+(W40lt?kg6ge-&R5Nhzf5Rp4LONuN zVv|9h*szdg1d3opO^dOKj)D-;UG=$(vz#wIg=}_rJdYa0v1`LhZ$P4`i=1}Y?5_U!sme1A)*RE zWU=DWX-hy*v}4k|XX_fnOy7dF2RGs@Oh#-?YK`7I&s~erfZEZ-oiA6=<9;0&qG{C; zyRvJ)A3*3)P+b?+Yn55Px9y2SwQu6b_;9o2jGsm1pGjHD?u?tL&#|BRYFVl>9};Cr zD()Rv!rZrZTJhDdyxK6wxj^Yjla*rfrXi1qh*3(djx_^Ztb^nRqO_{YmCe)I-I-JZ zedqa|K~m}p?=Vxx%Y!wJ{Pvf#b$ z;6K{N@1n=k->;Xjmq^c81Cf`Rb2jon9{iXwc(`2*QU~*jKdIH{%ay>a%J=0KsbjC> z1$Eh!dax(R+<14en~8mWC=cb2uBimVKn`^x&eu1LxA`;Y?}$b#jg#civWYCn#^NxD z??ba$Rs(ZV%k!=l4AIV#6|&ujaSYjV?nN<9Ymt<0q!caGSxeLmp7>?oKWJ>JV0yCm zw$4KV{M*RDb+w-O+G;v;7$F{t;bGCQMip{>ND5l^VMoB3xXrv-cL0gU^EeUdJn`ub zfDm2R1g&SO`He&Jq^1>+abgM3tTN?L=E;5jcJJ5o3h#RsCf;~YNU3DmH`>`Attv?{ zYL~m98G#uKi-p`VeMEnd#+Sldsuv{Y_SVs83@eC&g>x$P3?`IbHGlQ-j)@8&CER1XEEC4jrCUU>b|hPyTyLbb{hE74WGYK-5c!Gs*}&Om z|E;e8yd2R!hvo;&XEcq~@)UZzpZv)s2*IwjKgX2pIWX$nM(3@Lts{W9td-_|xB4MpzWe1i9ErR;<+ANl z+r107c;l7Bprqq~BCb)bQBhvo+lJ)}Lu)|fW=k*Lj<*%5?b^l7G#)rpmRytT9EN29Sv1uh>vgYLc687Lhx_+orKq zsc-Cn=pSoh?tu^4ExBID0k9iBKra9DXN6LeSOdV zp${44z8&u?J@}ic(_|Xe?H_{*uP zV|008*%+V$KxK)7Z>= zR_43peW^n3Z|!$T8Bpddf7z8#9jB!?S(OH%fL?gC4LV#O5KIwU!}AJY&JI&ZW~J79 zvio#h{dg6nhhF39^bmzLWrqk&1vGpK_j5VA1C#wqyAe9mA&aQ%rD&tu{ywW!WW*c9 zVY%Sq1pB~ddf6PxkWfEI+aj#Rv^@mCN`q)KGO;8O`**^dg@7rFb!yc-ruaKN8nynQ zI)#r5k``|MJYqhFJb<-M9(S(55LcizcnWIa=10p{g6A{wQzWBX8pwyBRCf#kWN~Ci zb6Z6`G+_CEf1qhy40r;i6%$%i2SR0Cn{}Pgh(6V7Z6m zZRY)Q;RRKEA?g;peid(6kc}J$h9&R{+(eg{H;HOCg^LwJYgYgU!f0k$kmy>@+t7fu zNqba7@AGU}W|TBUOmjkgK%na*C=r%CO0gjenPPb#C9&QYT;6wzx?5IiK07>1P1|^k zOzv2^0^TH1p#?NJ11*qlF>tRlz(h*#Es4@_pI1<<9huW7R|p1*buaUoOuCWDxLN3_ zv}?-3nif7-#&Br5#caTYWEwB?YhI7w4!&&~2O+rqGEZf}P^*~Dh8%9y8pUPgp)#~7 z$j>iYH?d(DQ8tk!Hu6rcM*GK267;n`MyNS49Jf2uFtTmqO5&{AJZ5ZN z{T9Ro+HQWMgK-ZQ&*|5^CN|0QB7(LWOut-gQYEi1mVyKq(RsBVcUe&)aZeYlyjuoLu1EOaIX}8qSXlx3LRvNS7#w$kUlwiCE`t$lnTHO>`8~ zesVX#Ja@rx!%&QM9Lpvmrdj|z1pa=evSqt=1yOv5dCu?4b>ox*NqQDWe_weh$Q`d) z)Q>(@bA=cm<&#$?sWX8mNN<#3H%F>CYnPt6U7%jXcDzRcpXykx9SZ(z(rCu( zsP-|Sa|UN>Yk+)5#~{IU9m7bm<)QGPry95-blSkhiHU@C#9QjC9Ga9PutLUb*RZS}nt0pd^O z212!)udw_}A6xkreeZol=1|cLwoT3lV&Yl8x_a0A(sCP}4TvYH`PwS3iYcs*(p{;T z>S_Ftx;B4K`e<3~w4Ti8BUTYHkO5%G%z$xaF}E|r! zw-N1|aHRu_BI$(brj=pY&zL&Lz;xz_rEW4GgvbIrOS$6N12yTMtqZs8LT@7tX}t9F z)(5WLbT^GpKX=JcNU@_(t_kuu&K%r>205BNgdGKVOU)=_W@S+E)76k`QXT@@NQ)C{Y822SiRu5-|kDibW5r(0TCU53cOe&VR@tIsmZ-&Sko12mLAM~#F zFLbdVn8A&k&DDNne6p9c?u?WtaoSwB-%W#3j+QIge_93$g&g}LYl00+4UoN?A>fTb z_xNy~YPV6iAOU_{t}Bh`IT_jd5VIjn!*+hWW#f=cMOcnWy8^G<(?R3c!^6`u-Fpz- z?YSr)VBf#^ggGy&GnxSLS0dPm;+%lw2SJ%#e|Mt1MWY~n-_?(h3I`-pvE`h)5en&SxJr;h((HoH{cQvOUcg zYeY)LZl}-S9BUNh#tMPgP{iF@mm~_REl}{nyslL9gNi4%uyKjXAo0rky%;m11dODO zh~FG&$wEE@x;Si;F2xUe36>FVH4<5(y+(F|(%mD%nOjM`L@V$MmwKw=ZbVMgamJ+R zyf-HlxbexE(I;I)fL&N3=*)zi#&nf918_kN*RkN% zb`xVAWp038r*P=!Y)T9hXRv~)kf@WBB_^~c{|@fZ7XoXCNtImP*sybQ2d=uF@VFdG z1Zr z5T)PR^lu32czFSmOp68Vo7XfO%&>@$^y~K8X6}Lg;vr;B(hY$#^iWxjS)Bsv?Ksn zY@wx9Smt+xSzFUyjQa43v_hkeDS`9OJ86Itkszxax%76%Gv-fKu>`y-O|rKwg#_l) z%GU*}=fxXHE4(^xcK628@);Qiz`|(nAkqowvW`Y_3k4?21Z7|-ZAam)gcwB<8-tJ< zhBFkJMP}4)*b|D8fc>113_vg%xTrl(u}L`P9NX0axrLFdrv1QI{A0hhfzQbR{hm3>QV-X5>aBvN&isbb2y3#d;o2ML1n{$9^Y(*4I zwun8~!!z94Q`*;J6ZgV9mBs6GAl zQ^q6HZ2{GTk(*8mA7h*K-32cgopy{{@7e1C!dx&~)DK>%VL+jLUDQu|iiz2vB;${* zzndr}J#_5rrw=IiA{*9ex4K`yh&hzveuCwp48JD@$b00*3$bu2zoY}31G=SYjXLpo z0CGse)0zDuCk4YXpt;DJTi+rb@#6Y-m_*BT#{bj5{8u-BI6QAJ?&$;1i~Tg&2etHB zs*0a2r{TC^_{Fhft2gq{KHu8d@>n$m%U5xD8%U3Ml7IVS8sht|dPTK{?U$q-T2g%0+B_8v&ZxJ$4)(C{DogCo`l)!rV9?sj~|1H*77#ZBPj8* z4yjnDn(ne8M~bmwO&=fB_nsDXQXKqUy*=rRER%FyE%P#5ba#mi3H!a6=UJqWMRJWB zm5_y3G=Mcfv?3|#ne-c#O*e7eg7Y=|hsH9Mki+I|Iv4wI^Rx_^fSMNRl1A}-eI;a* ztW&?xP$gp90}jkvHw-Zo6)cA#8sd=qp(FEl%&PUa?vrf5%f*)GxKAls`>tIBOBUPu z_BkH1>q0~$P~OExM9CAF#F*%ZJ{%*$1nz%ydTSE>(M3v+QUR-S8+#D9VbVLT$~le1 z#DgZLb@!Da+s+6aN0w$_9lWXpcn-dL8?#j9chZ7imIJO1t(K0YtXleS+; zXofDoY&p1{5}k$dU)Mvb-Y`p7V#PHFsJ*&*6x-|AMA62oFvi{0Y_Fu`=htyp$75vRvSs(~I0B<$`{HcJG^eJ%3E!K(WF#P;YO_jo8#?V^d&YLH}&?TJn zvFz#kaH~Nt7PiJ%$rLEIw_%Ckf1_;{ZAIYjO+qt$UkVS>&6BEeU_`IK{54l_&kR} z2a}xo`wlezKJHyw)Keh0D_pMDHd8ON42JpsBf8StvP+X%jXZv2jek@h@crx_rb%RzdFP) zTFSASBUV-3&(Sr?AJNp-kamweV1dlKqccdm)iSt$yW1cq+==52!Xm!RVM;Bi4;>+< zdsLH0%ZY%XA427kRk{@wbo`!bwT=l&aQ{a33DM*d6#jpjS=}-O zd?fB;EG636Xmltq+Phg(#*&p#=!eXNWz_0@3+O2=fpN_$94>9%L&i3`;@jE|Do0f! z5;tF&wjXs!0jRw%58(Cx$%JVxZy+`CvhPzM$-SvP{e6Jrp}Tmg>9z&K)WcWfpq>|R z&9d%Grsd>yxmzz@e}W(5Id{dB#&^ggwiYm`FEe7iuR?>aX=r0b17H{zV#eW#4t4iv zVOEW%NS6!Y1dlhc0XQa3vo$snURX?EJL|rzDXzvnHye?K*|4yEDz?D0dn)~{ipZM{ z%(K%tI}sfRvEfKY%eaDmP9~JA`*62IFNlLQW{8k^l3ty`y7WXAEcISqb~px@S|2UK z1uk+Z{OZ~<)-@~aJ&D^9OcKdpt-F<(VZ7DA{?02!xsPDKwTA8Zug*&n^O`qbN#M zp%Q$nV}3{V)`A^ZmV(tKD__=R43%k*|k^18~qac4jST%()sq%h=tt!n!<)Fs+KmH&8 za~`78gL+bjx4`zB0rI$+@t99Jp#PRUEN~O9zk}(cdj*@Vw={n#rh+FQ&kvW+(CO;! zJV(n${lw@SPZ`T6{0u%&V;HagDtfcQ?CBS`_K%yxzn$C)OPk)@wSv=e-PFf+6Z&C! zOyee?P7fQjt13U0xt_WY=6f^5?BAs_LcewxugTjT2}U?x9s~MoO0OP48HJShCYCYmcCf_Xx1g-H?I%iDa#^*7aIb$?you3 zW?$-}PeJqmxTk$Zt=)@RXv9G8^6$}W4hAwg;0vc*V7fj#O7q=iyP0)#+tCh6xLA$m%$InbP?J> zp5Hw#C7W?eXd*z3*T5@qKmXx&6P43G+|%FTIRgb~Tab&S+3mDX)Btpa%*TM=U6iyr zEwU0TSR)Gv$v1e(B<{^t^?^!4gzhsOJ%gK@O$eQhA>izCq>#PK;^0 z3o(WxG@l1Dm(FAM37w=Yvxw&GHWT>~_A9fI5*f>9y1cWh{HszMGDrAfK@AXVXg-g? zaB|(F*b*PBA%7BuD=l98GY#casf!ju%r=j|L!h(OU@b{JWjO7pv^do399`pZBO|9g z^myJ2>t~LS zsz+W+rdqh2U@z4=!#GKVo2ejjLuT63tS|V~08H-y0jTX(uBL(yeVQBy#cN;&$9Jv4 zr6;QruZOOig&A5>L6|HxL*G$5 zjhju+h7U@$G2C!MeZ3DNWoY3EcoZleO>zC;YYJ=zdF&EWe|bG_K7CR91k~-PA-hAO zlQe4Jzil2(mTvExWgDby+T_asv*-8Uxca!#>(#@lrQ<|6&Z9@4qPN?%B)SaB z_-tAsN>1rLR&J;8yxisPBfcqbR~pevc#rz0!V}o+0@;~0lIC}9U zS|wX|QbRf}tvry*RlkRajM0+z;tJA{G12uFPwsD?vg7bH(b;UhRwhp0Um(Z_-3M-8 z&aTKW(ch9vy|i-@Wcg>D23kbJO|9EIn3FZ1s{~oLL+r#|$)-F$K%(l|fIkT zx8`%vWBIh(22Y{~B^DSueo4aor?R7>4o^Voq?eO0099iS+RihNT8N>NCsGNv#yKmK z^Z0m*2fPg~iWzUVoc7M|rAMald8&DoCDP!8t%ic-#RnoQLc2L0h$wH1Mr1~13Wc?1 zcH%HZbXlOn+#E4*vEd4bt|w*^k=xB^a0CO`;5 zq6t+ZdSHuef!8(U} zwi-&~|JZhaMZkop`4h4p8WFiMSTkw_Ws8Fw^3pV8WZnJ1u6Rr+jl``Y(Sv2W_s9+qqfF(ZEu51rkt!Hn@&~k zTmUd6cCB_2S&0pVMOun>0_y@S{K5{_&e1&2X}Vu;aO6T(^V$knpwSIE4Ki=u30&%3 zkeveGp^jueEl7gk`-VQlxMrvzxPf}Wg)QM`ut;Rl3eWr@m+>3+bODNYg8>%-2^ zwiwO#EkU5wQ$-zk0xjR+?X#W&#dD+xK`DeCeH1vb#3I0Er(F|EQA$8pEUAX$wk_Oh z>^(rMuj`S6W%Z$zNo0l1255pbKDuRZ;0W+$Sxo92quMtMAXNup&yezn|0KG6(~i;k=V?ZyX~Qn}8J zS#ln)o>w{2p%ZIZ9MG$R))2bRqI{*(Oj|}Gkpx13?nh^%{vx(6E850Xe3ViMPj?s;cb|ZX|2$G$8P0lWxvnfQg4ty`}?BZrKYmG?q zK$}}>b1Y@pFJkI8n|q(NbQ?H!cnk$8S4%423E6f;)cmrL1^$87xdUu8gCh*WG#4CG zrweJvY4SgEybhm-CS_?TQ`%cRouj}YI*rSkoK|Xh&=XB5+;~~1@HNJW0Tfe4<|vb; zb1II80&&V!GuJY8NQ4UB&2;sQ5!Tyg4@l49d>_rSG%5J|zN2!Z;POhu8+`K{{Km3b zs3aq_essCz??Fm#K=u42c+9tExUF}^;rPCD7Y!adRA?rGPZH1Y|Ms8%hll*{m7dU{ z9ZwHFx;urN7eAeUtcQG#YrZX)>+ZI%revM!5b$|9Er$cT zw9VFS;m2XV&y88l&S&h?3%$e-<mSp1d)hbzKU*!H6K>uw3&?MD+F$+z z@cWV!Fr4Do?dIXj?4kVo*c6_jBm2qWLqe z*xdKr16sz>R4qMPvNfIyG1cnb_Su<=lLyUL!<(6r2O@2C% z2%Gu^2k!3!L^xp@H+L6H@oj6cBX~Z8aJ&r&M|pS`Gi@-T;DQ;fcH|m>_33?bhAdGI zTI}xpcLIRENt3!a&!2D09G@zMrEW+R2oj zF7fnFk}#7HutaXne-I!#6BSwcHDXtDpEsYj?^Ys>%AMfU?`4vhktTPBkGCQExiG*g zF>h~W-#5n|w^ScS+j3@Ew2`eui@qDt@wtUhc$@A>8_v0R=KZ7<&vXM@!B&-QpO5Nw zRZmmZsxPf*R|i>I&?eT2|734uq&Ei+^X|6)I(4>?5OOg+jvtmC{&&MP_-+DH!f^!U z3P5kaA0Xpk!QgzsJfJezZ*u;;|7oPJu#ov@uxon|S;gQ~dhDKorFVY<&SvkBQaqUk zsicb>wKo*?gS<)RFe9+L1f+4d@9M?bdV~Crqji%UahrMI1p@A-)U7wSmGvwF)%S^(jsIKhx6ol9BcGPt|pQ4^|X9(eNMcyZiRH{ z?(($~378l|6Q}siB++&UA|H3r!K3@f`}7K)Kg2l6EGAMh5ZmGQV}6SF$R!JbdX5nu zuE~O$QZ|gb9=I8rZ9dXV1Y^BZ92%>Q97t=RP>A=|743&pK8G_0*L#%BZ|*?HWE8ic zFTOO9!-XBb=`<)!%SSL;YUb-l7_af=n0S0@e;lVtd^kU*)=l?zwZm5QSOnq%5A>7v}^xn*V3oc06%19 zL_?k1p5pZV4zi;D)h}(Gm6h7fYOs%tHEo?QIgg-B^x+4%rE|g-bQ2J@c$X0w-oL(f zR_tqJNKaq=zb~>B!v_!wom|~t`NA4aXOxVEd*s;eU%&MHF>7Jp7LhVmKfnKD61{BS zHu-K`ny`c9j3zyA4`J5i(Dg%f zfGw}6dOb*MEeJ87AG1Clij{Y^z{BGb!V-lw6$nP8pBqpv)k{4ebG^JqPmEY5zYSzv z1l@_~hf0m15j_RvoliDshIayiZrd7Bo$7&ue7X}*LU?@#|u~|l7SpR|D7m8V!!vF@llfen+%m$G;!e&PEGeQd6Wd_NRlLAvq;#@Ed4diJA zl%`OLNn&fzbpj!(*wp7PVOGYIRglZbnHDU{FK-*5ka7b|_4Z4J%w!{NTzKmwvCg`T zA>5CF1GdB<;}M$k#rZsn>vitD<2bfkLZAs5Y zR%FqA(-2z3RlX!kMzUtnoo=@!HnjZz?&lB6Z8qqr%`}?z72BC?#t2-QhqLP*}E3+c*K`SgFRSuv{7?Vwn0@7 zP2AxrDb3bx6kQGuc)I$XM9UsA)NzP-&CVDmz5AF$Jd_#ChT&MP%9h=;>O9nB@}m%# zvQx{-=4?#RX&J*smvZn8LaP9CH(9C3l4G%%cHX1MhEn1H1Tri^BZ3=-2F5p3Tg+4s zuIokm#T)&=rMN3Z*4Qb1n=o3st;a#qy}5a}8oijvS}M<;U6@B*0LfYiws(eZ=z4Qd zKuXt&u*HSixvjR|uPGLUvuAJ$bItoj?Np{4GQ?;jioDt9+1w^^4tlNp8Y>&_VTKqb zH{QmThCpkS-k$?@Br9)=f1snVSry&q+=RyNmc&iAXIPaV!S}9#Sx8-BL7$KDaA^v$ zbP$5#c(i1_B@Z$4HZ39`ZUTeZ1Tf@DYlkJr5zAPFA<1Vmf5{P}ruylC3EXHRH|$=Ah-S9(P1BK} zia}Jj4hv*?PSTc+OFX|8RcY7>@JTI2eqn_jy$>Ki0kEzU{(XbNNXq1Z{?WfP*xLS2 z$p9{fI~@DK>RrVLp|(`MoHm+9etUj&v#^Ie@|fILp0U3hK0JIbeGHGwJ%aZB)Ci3Y z{+IvpKb)uRK*4Ey{gVpu@4GJR9(mlwi+oRAj9=x%M~?Q+ZPsw5o2+SeeHQ)vF@fsU zNUJCIl$|t}cDbisSbSCa5x}q0x^q8u&W1;(FDJw zzwK$1lHW!mRC2GGhO(7V5KY5YN5p03crSMK?Z?1z=d4?~yNF6I2H;dGsQwi+_v`i+ zZQ|7P*I`)q3fG0-0VB=MJjAJq$9IVRG_q1hS~Uc3Nk#D~Ol-lakJ|^!mo!*S$>pew zY_~qGhj<}NG530k!Q6&C?xgO9#eMR?!gqMA_$^YLn|1(@5xN?OJ`SI?zmLXR&?Ry4 zBjb|X3n+e=Aqa38M724#VM&dI2fTgkmwfA8qRALZwt-8(8;U+d9HAKw;uLd-0$^jL zCyYG{1P~$@6HE3SOdHF5fpH4E3eaM~&^+@P(ZgEj0GbKeN2oUcCf~w!= z%es2!LEQYsTTkG?aZ2i9os2X2LuN%5!!6lcMxY;aT%nC^dmoidrlcuK(yD9dQA|Ue z?zVrvj`O|-4Ia`K!539jqnS@61^ZE-)76|Tcpoc+ZenQSVxR(CjUoCZu+^8>!Jy@G8;yvTG2f>9!z5O+2`Ida|Rz3M_q|0wxXs z0;mPvxxp22x+nZ`Y9QL`iG?V^s(SacbfBNcoy&t1l_#cel!p8r#~e2meFUOF0?6)V zO7cQ)U2kKY|4g0yXaWdKXrgkghimHnoabMf+q4(Cw;wO#3@a^guNoS1JirF(XhjFT z`(yQip)k<^03ZNKL_t&z5td1OyXMIT`m!yhm<3vf za}g6Jk{vgub2x#;sbLAoaA`i?_&SUk@?5|RbUBlZv=^F-_RZgl0DEHx27?79)#z5- zuUe+A4M4X9P=ww`K@jxZMH8QmIO{O@5Z`YfR_U-w%tgV!2`^se>M096dR18`)75iQ<+S0X|`GB0W-(e`Ao+b&}Q!VJ-jn5D@p}yN-`=;U*X**8CUvz^p?2$Up4`bqLQ5lWrV}cF(<>m# zu#_+q=F(w-6H|uTOcX9!C9Y$8J7zS~G$6X3X(v-;jUdvyi~z%UMQRLLZ*tpOJufCI zV#|zn5+oS=rF7W+84-6I6AF6<%9gQOLNNh>wVnggm8F%@crZg?S_OQGYDBzFo571R znR0@U9m5ly%K{K=?>Kjt#m#^vo%!U-SgwSz__^-rx?Ji+#I2xp^!+;xMVUgo*K2OOI2b@r=i`64=qY$@-meRXGJ7&?XhvP-&?hArZ6!@ z`i{ehAzED{V}D)90wq#(s#QyhG~G;^&-It7@bRwoN;Av)+R6p4l$r$R){nQ43fU%i z;jBdj1p-{wr9pyTSQh8WtspR}2ee)lf?6!Mn-3ggLEYl7+bahdwM&)>aA{cC;zKZK=7GGLM zRC3bU3N(&(pn3+l;~J^c(h=p&!AZ4)Sim97b2?1=R!4#cRIJFMckI9=(r%!WU*$)a zOmyTiNt#nZd*(FB;bHecsD8f>(TbVWCYDp;oo3-REco1gK9tbV^DIm{Jm0$@iTZK! zJX!8$>}mRw?32_G0+q>Pl#X(~78KV%h9uK02Q+iF;#3VBZ3P62}0s<9n2JuGp zOE*B4aS(ic+0Cl}ky^R7l6_z_3kMbUVcLRp&QN*VFilQRb|r|0VaahVj`+x=_VHA5 zZ^S<%PGeU2O`)uxS-y?{sIn&M;3duNlLThnbSdGcQ|E_Jr8iyp9DW)bgb=YQd2Igt zkPw3Z+yCi5f4YBzH@VC32VnO$@qOvyx=o7rqqwfO<)A1_cA&G9d02KQamA;dQvGmw zv_+FI)7#Wh{0ox#w{9M%trY5p>>N}{wstx-+&@->#+VR=zir-Wz(i1fR+}32Q(b5> z%DPWKzjYLCCFAuHK>9jkRb=zB8x^y(80jrsHmD2^YHa?B|8ROri~1!Eb3MgfbCg66 zeoQknbgEpqH!NdMzC!-IBv6&+<2j)r|DE~SoDv!J$Kwc52=nFxhwF4{e-}D6ulI*P zg|4@J??y`Yo_x#$?6>uq-__`>idk<0)n;>p3`H%i$jkinf|@Wrig=f_25$0&XPA+I zy>oh-pi2;WFrKs0SWY~Sa6*lJNXujwO^@bX!CyRfP|Uk zYZok9zfuQKgAiD%yhJ(xZfR|Nhn5}U8xpIKoXnmwo3g3<4<3R5)P8p}k<4i5V@bDs z`%iu@KTt;PzTaxt!M-+%x_d5^wD=lFq{)wSRzi_I(jUD8!5IQIcDdcn4Y1S83Zcl7 zhq&qM<@0v4PEM4nkFCM=1x?S-(j)5ocieX_hjZFfoGms`s}A|ps$Nn(wK--pfffbU zT>Oz=?;3fMXn}(F4+Qy44&&Vjro8VJ+mE)N`JO>WGjd0}+>A)NGe2k0epyw$Gaban3m%*7l$@_ZBw`1aVLpDt4kO|V6?|x<#3@R1@wTMLZdazkS z(&k{Zlud~C%*%17%}`sJJk6h0M8o|Ia!?U0=7f!_Gy^-fw-<3Lpjgvk6%`lv564-R zF9z;Bjp-yL^M;eHW4lrGPZu>xR^9!LP+O97FBi5_erh^;OmsM8B>sPp{@K3kRhP+n zvd@ewzqWSaXoX$X)fd$l&@#Zdi4uATvw8e`X|6Btb)p`ZhdR><=%P>yA9h+{<;o%Km*Dt%j9^$llum`bE zM}Pihvq|2{*Q$M9?B6P~WmA7=wNf>JWoS;*{HMPpxKF+}H$d_K{onmt<wx`|9vYR<5fzdaLq^*< zM`VZ$xfht|)bD?^)RVaoE!uBj0S@aqmj zxcY>wtQV#z@Bq79S7sf9(6}lJ;2E5>m(t8h#ZD_bH9SWhvpW&3iW^?|rbiG=c3?G9 zNd;HK5*^5l`Mo78vVaZAbxTySmV)UKO+Rw+G1om^C?=ok?fkKsS|?LI<~G42KEPpR z5pGe|PRhyYW?eM`0x{;?0>hKI;UWHH2IB_u=hInpYAPK&Cx?VgDx8$0hEb$tEPtpz zpsMS1PNquMHn?_OtGvtO(>m^aDM2VUrw%4)iti;|lO;~h&-l&hLgs7iwl z`mIU?spH})%VE9YSNyz|WWq%|lA;4drSIH+G}El!k#MT9=QR={2WJGN`lnU;k?=vi zrnYPXF5zh4Gy~iZ%{UfxT2J|l>jng4`|v=D+V&a?;@dRttp5$>9PXcIJGNcQiKN* zPSZ#H%|jLQd4}(E^}CpEYTfYVey9$)A=YrDzFZ;MWIG=bA=C$yF5<48!qdt>@{;tW zar2Z1mqT~C6jG!ni+okXHFmU6Rr5(1?5DHt08CtNYfMIp`NfFd0v0D2q0P{2Ih%7t z?;WVJQD=!BMm7gaLa<<%6frLbVy!Avdy#iY0%#gP1K_KI`d*xpwzZ-L7bV0*`zJq%dk8QH+Hd zeH*fzyS~X((q=LCHkeEUP$jg&x;Ifnh*Qs*DV2r*WvxzR-+}_gR zkWxEp_+!;}ChG?Ktli{-on^|p8zf?(8-g%_wu>_0BqQ$~S&>4w>AHBN?4UGXsf(ij zg`ru(?_dY@z1A2C!I0zPaxTJJ^&Q5(Pc^P<6nt!dM)&~^%jpA+B;XyJueiIXrN`^x z3g%`gzMqx&6?-PIZuDi>dzzM@+!lXW)N2R{-`CXfju`f<61jl1pwP{bjT1TVK6mubTi@uC-QWk(6i8%qkE*yE6_2EU@z1I$rsUJM6LnvXDyI9fIrFdao-%&^gFcqVAgj8EFkPGF z{$@h6Y=653i{o>gFA`;!2yv;hSd*^$!-w{Q!KVK0M_daoG3gyzM=iP};P>6j9L*Jz z-Rs8u7W&h6!7ZuM9R~epJZvr{+d|xJ$#eIsJA9C_v>;4$5VU*KZ~3I!{l~>7TYY|D z`lJiGKb0!EioRWv;$r}~FDKn|5C6dLtxT!ymt~etEUecqE1{pA2J@1sY@JokmNSsW zyJbXD=BD*-pouYsS<_3!Qy+~RB$fSZn5!nN)`Pu?!(8x~5-Dn(nkn?^nt-R_d^501 zoty|7-zh8Kv-v!Kv4`tpOmV$1LQGX|gR3kO#_jIgA@D_3LKN5bo?YV~37Fjh9?ZJp z`&SfNF?TU8(|{J0?ySD?TYu^P?D@J-WtO}ouHekukE-c7IOEPauj zEN$Z}z8#gm*(v~aghF!)IxszAd41xK^}8?(RWoGU6<)U~+Yfnbo98j*>J1=84M~Ol zmcS~?CElu2MN^ruei|_U)mwV1!`8stg;nH;zBgKXx>%BY5X&yM7yzaI>yL#zJp8*i!cDdS8Y#HK0lY7VJV(=@^Wv4%}o#*johey2j^m!3BgEJ|* z^`F0lHVaSHrfXZW7Sm`GwisTdFml_r5DGWvC{3pkDb(ID8E(CSj>O5iwSobM&Ji&i z8$5z;zTTMg0-$ou(D}Z;L|*t!jFDw8^bU) zVn}i7z@~Q{b-c*p8w;S>rV1?CCUb0UFqmLZ>>-xGM~A#T#au4;#b*(|r7pYke(APZ z^L7N$_SS@YbTJ)j%DMQ=a;!ZI?&!sByTm6+9mDXN)%bMT zIe*#hl{WC6wvY-iq2~!q4M6n>{-q*a_7GooxT^0LeGYLlE-pv3Cg55`Gf#)=r5yFR-m(&W2)MzxAvASKBW?vlGDo+yC%iY|!#I z@mV`2rY%hIJfE`w&T(=3Ar-@pKWqVl^6?H+rSXY6gmITIlRcE9GI-g&94Iq2cXU74lC94((k5W_Hma?ZO`9*Ap#$A6d2l1FYM%j5zx7f`;6$N=T zhsT=Tn)hyh;G4wf}*DKnRm^J)7mw5F7{DXXoC z`D|x%a2`10{gK3BwsehX_90D*6c{}y<3oUIcM%@(N}|O?W8oU|mH;@pHnovHC`z=M zDo#_=FqXM4e2M|8`;Z+AJhm!x!36-*?S19hUvzH^N?JRa z;GN7~%#qotPwZUsY1hFDg18})R?~f8NW&*IW#0F2r(*+mX}R30XnU9Zlp}Qj*4#Jj zJ#lPC+h~3CZx+gRdX1VhLLGl(a-M@c==+w}0Y3LIpou?BUBbk`M7`s{OHolHLkjSy z1-4_R0cnC2!K)$lGfiTM*yk2c)hY(DC_wU2*u^wDMOLUXtimJqy4(?*z^Xc!Bo1!Y z!9(h%drvTMrKFP`1Kx#)o zO|tH4W-gddyj^ex6R8dC%4jIOkCYpNSD2&KuOWk1r8v%5owXeRH!{IaGceoPt~iV9 z#6CDHjVsWi$K)DFz>ducOu~oc*;TSAEx>obh4ggfbGu6DAS|5JzJs{4iXi$sv+DbJ%Cb-JXe{vM{X|2XA7g&zdOWXa<|q49AyjiDPU-e>Ha83tDT`VvGI zrVXt}icTeTliNiGTD$Wo?~n-T_G0sah*YWD6?9*}!ac5I2I)t3=+y*#ZS$Uy{bm~$ zUM2B97{&7Wee+8Na8FHOnw<4=d_Ju1D_JS3LvhF4>^&#bTDSIk#BxMKZMj;wj<5}qkf$4{euF9(cv#*L*_ z4GVQpw4pjh0E#pQl=nZ!i9|)_kIis%9={=pZ-5Q-6l?NFGFG{MxJDFMQSkf{ zwVbLa7IurD#}0dt@<6(};J7{f%xLiNVGX&Ery+UR{uPtqVm5M&JH&5DF*s5%`MSd& zE<2b-6PjTT3%@KWE7Iu#o=$17O;hf&4}kG|G9o&TcyAAPmQF(9W#6xvJuanSsPzze39MC^dhe`4BJkknXF#)cYZQCx5LE z%Y>gg1bX<|!7gRF!LAbczPHsin z4-A&Y(HwC-WOf~zI-7=Gi{-hA7n&0|YA|OU(z~}i+zvpoMl##eWT8p=K@z{~PlL-Y zk5~3Vt-8agMiQ3v9^@XO>7$qj?vj@MJ4}yNFw-dgKh27cifkc{`9Y(_kG+<4E zQsZReK6!tLUA}CS9H7ob^0FK-c(~}h`0mC5Vzsj7#~FK!rfZ@d)a`czS*sN}XKegW!R+Q{b>y-FMFSvZ}ex3h{bjiflWM>&uM<|R&kO(pdtt+oiCy+m0A5@PmKu?%gVcf6!G`jT;h8EMzEYqAFlItVIFol{N<8IUmO*Ounget^Hjg%@oWe=TY{5$Z<4G; zgEC;<-nD=Kj6hD4!=(wgi&2%@J54Z1j%OJ6biEs|=PfP(cy~SrWvJ;ES;8O<*|g>gAJzW48b4nS(vM|x|@2c#&T(Q zY-S-{#4Jr3?g0eQ>!%G#$Y_j9+2$``qdWtY5as;xz5sjwTOWBoRdvuwADSpXTEN-l&w;xJa%A z{zSUa!wEcSg(inefXJMBB>FA#Fy+w1lw~G$%eY9w&>GZTVD|u&IVEF~BX#wgq=NNr zr*(uUmL#%CXT^G^#)G5>QW=LVM9G;@q(Rw5@=1^za ze{7CIjO7`^9b1TPoB>I}Q#4{5DS4L(?+?X3q>wAK03Sf7vXIT4^)>;(EE>#Ue(oBs z$$=*v$Yf)RQCJ7tDCtySN!Inb$?4DxZ!NuVI>cE&=F&ze}Ib*o#eqKP(ceaZJ=KBS%>|tyt=-D|l#Ew-TGP*Rg z^#MZjf#I{9En~anwHw0uVIz2MP%^V&{B={{SgbCc<75&6ei_AAV;g%eCD@VXp%>&n zEF%YQDxbqt-ouJSMH)8n1}S?@;yAcsJ9Z0iiY(ovYj3mLcr1Q#=lIuNeP?R{eq(mM za|u%4oQp-m<_n@w^!su?umZ0A&gTm?{>T6M zzkw>B@A9;c-2L{xd?*)gV^vl+@|vo@q=mp00P9ZO{f0&Ov99l;20pJ=S(4%a03ZNK zL_t)doi9uG5&ohE$+Kitb2of0w!Bq%2|2hW+jF?I9JcC^PH*;@s9XLv&ik?Z>p))1 zN5_&4kC*JSJBc?wPJ+g3{|@D4E-U4AbRYHwHu2E?&I{48ZS7CL6u&IEZNb*i6N^o2 zi+;1_^BL^mJ+?BnOU6HmSC`NVzQ2pkG^{9neqw>V{0pT8xsHd53&@toxO??PjM}H! z>b&iJS=){sN7|O>W#!#mq{v_Jwz|GL{IsbJ*{z>W@~&q3hv4gRQDF^Onhz%Uww^`~ z`mypIX^h;Q&HalY&3M<4dP{AI?aBuLXFA}4wCu`lULqFEO;rG)G$($-JhRqKkgPic zR<+v>$w`4ju^9kIf(F0~7&JG|qu{91+*{nv~Zb1ga(1|a- zit0E7gTCjQHEmqHIBZ|+VgN?tHbfb@GL}aC>K0xYvq{7_z^+&+NHWMeH&p$MFhZw1 z8;ABwj-Ph(Q*VSP!{}NdeN3v%KFgkstdSWMOx+3~=QSq&s_vKTU(WkR{ z!4paXInjsB)W?a;!9LAHY?E|%?cuR_b6=`W`D)(|lmytyV&Lx@M7{o+X5Whr4UISH z++w<+<#ix%T5Xa%-QetSGyAn|)Pm8zLmGFDOV{M+yCJAFNa}9@dxMsT09?AYw>V2W z3Ypv0=9MEvxIU;NS@(=x{(xW!^buw=zQv7AReBa&Pn{`M2*UXu5@lAC`~bfTf_80c zH3WwDvxN(td3A~6c>zO9e3BioN&Y_VCfFxWs2S#L4a;T$qfi&>gZYKoG~(Zj)wtzY z>$8H}0fupneh4}!}1h{YOa3; zP4Oy5zJ4|{!$xkEUu?96`4MF1f-g1y@lg+Dp6&+mtu7_5`sr)W-e3p}_%#WK-IR9! zrn*+Pn!k>1_neOaJ$%#zFW(7n$UiNKb|%rA_4lx8zQJFzUy9EDO@cK4m%{U@oPX^8 z(CNB&`Abh`f!g0pI`Ea>AD*T044wP_AAYyI+s}k_cMr*|vN7#)#n!#qaodjVV`4>x z|M5Tlw+1C5adO9Q!%Kx^?HrOt-nr~32V1dJ%%2Pc8}u>V`45139E%UvMhCj#ZrnXh zH595bdq6*>k z08>D$zXwy{Aa87$*iQcFgx@;T*~Q;k+|#hD6u?usSNm%Glj+D(Oca?a{cinmj-N=2 zVd~-wO@^rz#1tw7$B#|xQ!~7ANXpItAMxc|+=PWD#K`NElEZz2po!UJHcv2V$NSTo z4(>Jei(7c&#_c1CHCFsyH56}*7+|`i6v!D|xV$h4(b6OQoCBdENc~I_ae?ETqgFyb ziFdZBUI8G4H)CkpmMuk3EI5&5jSCHIy`dP#l@nucWmky6?eR0_$o$d}a{#nl@6y(D z06_P}sz+>NGS-Zxp)DdigoN3nr16e5?t*a{33Fg-XC+{mtdxMPzgY13yF(29eAu`k zY}_GCXC5<7Id}!Or6UC^SP^46ATBKi;D&M)q*_Ey{bSdKl#ctOZwv-m`|=J`4yn8@*0@vM3)QBDOc{)P&zGDvEIA5@hJXO^)|@fJ16sGs0OD2{nHmbH3*NrT$dV>D zTq>kHi)KG@h*EcS>o&fdDS@@?40CxpuA`aq%K8XW8^=r|wk5QO*$O^cDIft`JufO| z4fS-lfH5j!cqN_i(AH=b0U+BuD=hpdQEErdyG5kzhG0xBPlQB-gmqCMyA7tc8CW~L z&(|Te8s01^1_C#lI`X{u=zpfz4{p;|Kt$w3xE$qAow!bZa5$y6Zp>H9Af$5}tjN{i zzI7=_ELo>_-iO80AIEON(=11&d7gI}=91FX;n=173z|2Kxsd=xQnL%OQx3l%gnP5u z;a)ctOs=y^H$LOnB2~Ca4_n^*jRpB-9L$nU=>W6cXcCk97b)Abo9OJdfAdV3yAgzg(V ze^~LmjiDN!w>YzUta8FK_65u%`1yCp5zUMX@?Spwr0tpmDn3cDM3K^Un5Ee!D+K4p zikO!wQ#`!^{J;NK|Fv7I_rIGsHP;Eug}fYo`BZ)&oxVh>@_Cw{vyDH4y%Ukg^TO-x zP<`6mC;fWdLEe(l$^sLbF1jo%?8BpKj*Ct=`Rh+;KK~3YSE~DV*nB-td?EI48>c(8 zd2Gd9FWP=owdg-xVuc14*5A8V22L%~-ShG^A8rr*#w_JlQI|^)!Jq%1u^iciM3&v5 z+TZ2bw0Q&G4#x>@eTm7Za|J{G{JS;**6!g6qLke`ynD8Ud>ZJC8CEuod$FsA*HM1~ zhtP+g;HLn`eo8(kwLK>IL~eiA)rqiI6tmW4RXSIHt0=sGKrUJ!>A`}Fviw>J`*Rd^ z+T>>&M!Zrf-H#6?w;O<>{@k3}(b#Hb7r@obOyio!e(BR!%mG0E11`Fu{v8U zQ#-^R)R~A);isT!)&=-AKXi`Dcc(-S1Zi! zts3OZdM2oh_09EwhUw<{&v~DSHJKGS(|Lm=OWCdPPGzu0%>oD&(;!MAW#L z*B#Ban&x_6%lZ8bjF?AH^W!hzk^SYgz6~_+s@Yr zCIM~YhC`GJR$lDeL#|U^z7d^|%0Jv^lYT{>Kh)k`!1M{qSUlb5*X&BC_2^A$2-!S_ z-lT>V<%1dqZ?^JW&=CZ*XhCtm?{9U zYXdoJoG2p;R+1o$02Zg~i|8C^EkM7>aE4opDm+f)dN- zXRB7-WPvmZT)1Tvi!OPg5sC`wv6B4@T^RF+YsOCrE-oKUfgDb{vE9`1#1_)1a_si| z$1lTxTB)EZ>{m?8LztB<3lb7?o_=_kCp-GB14gA2we!7#5J!lX7+E&l~8`c6V)&wF~Rwe9#ur z>gNUC_b!3;-94=sZ{6>5{Y=QNKbBRVjWO36Cu73zZ^8eHUCH>j2VGC~?E`ZPHfD)} zls`oYe{Ow;{^b&Z{yt~pR!!1y8wO2=Okb6Yo$ zX76+D69ExILLz{W0O0bGfXM#MZ`fcOLgh}M;6UZzJ2 z4$85-nF{FbwF5T5F@<;$YLReC7&!J&1ygf|JS&;aaA?uEPJ^~6?$?`k%dO-T!(t*H z&!m#Ab~Zv8QXa;!)OMwt1mf=ude=b8tFG{zvppB@B>^x>FtHIxFgIuX;%Csy48tLh zVlL*E_>m-)3bwZ}y`8;JB1&LOf_JcBObTz}<#zV55&rF9`SJZ8Q=x1ut ztbhDe)W~}67HzdbQ)p26W|<0QC&)qvHjrs(geAw3`2$FzybC;U(%-a~GkFvo%^${C z`o!MJBjz7Q8hSYRkqy_6iHn8C7&PG1Hk$h5PA)X$_s>0I=m${571L$q)BF#G!J%cJ zLW)V^B?vtjEt>1t*`(0Z8!5a-|MXBqbY&}%2Lt0M*E21+HA3g(UW%HMD&;M{72po< zF?bLb4cU0?IKFO*&)bR&}ClM&^xgy`@71=Su1qK4cpn*MT9tba|kR! z7A+ES& z-qIwH)3WJdwh}tI38`urNAzcxIc=HTlxRs?mHA7`l<2pan-dAEuWUeTA;y_9)fh8( zIyrMFhVW=v01r6e~GCG%;@whwLGi z!yu{n2<{N7>>^KGTvJ2oY|^`-vNI!DY&rV3?Q`k^q}$@!VSH~M$}!qq*>BRhg*)<= zp4j*7n8LCv2C$Ub8(o?Bl^x2ibW|{C;XPerdAL3>i2ZmLZidln89=j$AJp4etR6T0 z!&>A;ox1rhql}l}_|!?CZZ>ULQ>!X~Vsq+?E-CWb;QT|bR=*MEqI<70*Y!@vD6kF0&$;yJWizrAsW za^m{fRL8HK)5Vdd`|s+Vv>p9aBzEhs>ssC#uqoi{&!zmVt`XRW*?{di@dq`DYvH?RoeAB|82+SrDJj6d z??TjX;x)~jY~?mNtz^FQ;*b6Cn1o`^Z#$95(b*CK$O59EX>;u3Cym#3@ietwZ51OYh&x^~k0LvBh{fD*B`$u_% zZCvc*xFZ9y@vgs?zkcp-8F@f=HQ^0P>3qgtD+gseh`30O%4W-l;mrLQ%eYy)PmwZ7 zl?*gX+JC)rF4*hJxD+8Arz!2h0w#1Az~VrKa0cFCvn-%2<%)Kbx+Rx=Os_Y(na4Cj zHVv(g9psepCj>ilS`??VH#LsCWhUe8l$U7CrX}XvnV}dGcOPhty)5qKG~H5N4~3ks z_}rr{yF>c8H7eakuI(sJL*j~w-^Eo=Lm7tko<)4<$nsFz+0f?%n|RgTjEYdB>FRSQ zEppF$tKUO8wkFF}peU0cTp2E7mGS&^lqM;V&;`r~yu)+mV-;c;YogtFLQ@pEyx2Q= z+|Z^qyOg)Edig!Xxg-(mx&yQzFW2^6rE(ZAW110>Q2*ZTB8}SeshpQCg_Z2*8t%Ym zi7`29zxMgQa+xt>xZCEucxF0$VEhQeN*G;N{Ipr#{xb8lp*u39P_^PuU|uZDeBC8e z^1=3l&4v`EX`kP=h;TT~DyTQj@)_UC#MV3-_8+O5{n%i9Kb)d*>S{d2uR&*T8o}nc z>O5QC6Rbdr%g*Y57%1FHC`hz!%fE;3MYV|{UG-DP46yamR@XJoUZMz+cFimIEXh@U z=CUwSJtr_;-E_`yj`;6yV8~l*t57V}D?h$;I}_@yNGEybUE~L&KGmN1iEaW7kS-JZ z*x=2$VzYT=1D-bn{W%Qz-WBJnST;%g@|*pblYuTrn`cQ z)Ybn+*Ll3IC;{xg9fN}&^9_IH5J1j>Mg=oFSsns*;$2B_s>jHDN@1tl! z3JAJ0BP;^$|40^*R+Ayj-N{IcGuzPx`t=I$$jbZ5xT&8lfS*TnkP^b|s|l1W;?l5~CLu zNr%y*!>IrwfiZ|NomK2XepcrqMeCgKOx+dFlcS1=0o&%aiS+J{W5UJq-3Mg5JIp;` zJqCAgCJA*|;wmiXtmvUOc#L5X)jQE~Rt$5XDX1w+#9jjjDF@CL!M;PY)TD-yGj9}I zG()l%-p}p^01^&LAFT9roT~jANLTyM zs1eH$2oe^ycuJU2>kmr1N0RBBPQw!&CdSwfFLa1;m{EO|J>URp6?h+O=SKazg<`RH zBI;AI&k4kGs45OzTTuC!DZ#zwb;C_LZQBMjpeU>v9ww&XTlY^fJ~ zYrw+E7(t-;oT7EICn}vJ{Ilr5A)=hze1Mje^I`AHd=`AfQ`I%TOm{?If<3&xnANe2DUioC&bB zTXz$SoyRLhLsI=nm=P8@A%Jiz6_GM69Ef|<4L9*AMmu=bbvAywQUZ)l+U=aj^cYQG zZl^B422bo*+nX8(p61H{(hV6)@W~a>P6@kD+f75$)+(c)${D48C!Pkp%+Cu&a0$NG z-I7B%bj!=9^PB;S;_c)mUyIPcb~lT=isc_U+ZY3Bk#jWV>9z-*N}rwIcTQ&e{g1~7 z%WY#jonPSVHPr2t%!Iyc_hmtRf**8YeisAk$X8SZgtbdO` zHc*lEsquO<=E);CH@Hz>-d_B;xa8qgz{MoTe0dnYw>3E@))#vD(g2P`~o8r9XI3I#vN0G-Yu|L`K{<6$o zZUuZ__bco2`-wH_1eX;24PM?RmR5Z>H7DD>;^O+r-L}BwkuCbm<}fr_>Sw&Ay3pa$ znon_BkEgBNa3tsLuCxlqdn-8y<*&C;6&p$E;>TmSM*+b8D{0&D0SGm2McwLnTIG~z zo6Ybe^07B@Iu&W?Xq^1KXETSK?|R#0H<&#PeFQFa_U2_BuhpT*HXWnv{3Z1e{h$S3 zv`@xU_;xcZg)xBFRS7oAh;J*pz`@wZ9UJ3vL#_z5ZShRu!Y8U_R+)52Rfd~Nu9WZJ zj@v9(VUHJlZor(CyS2HluX~nc@#@QF?W1hJ7G0hhmSjH_K|8Kk*D+ERWq+$dv6NV^ z#hQ*ribZTb<4fd(rLLnBkGej}JnultEu%gqY#ri!rGd)%3`I)~zfqh+Bo*26&u1K# z!-61>tOThtt~XP)%M%cJtl?&c);luDb%4Z6p2Dp(Yh>U9Mo|>sEx>xI+-J{+YtAEq z$Q*1(?tUQ(#Dej*#E99U-^B6T58IaoDg#aYb>Y-Pw*s-#aEVRDn$F%}7GZLZK4%vv z?Fc3xKaG+M;ihTa%wfo0(9IQ(?N-JwnN3a;+&Bl5arV`nlgwmMoYw>VK*~St!XHB3 zqC&sA?fzrg?g1ky9fzukYwG&z%DWRP<`*cr$M^Olf)v6BB&MG)A$zRzjs!0G%^MT= z1H>H)BZxK|d<=%8w=XPaD~d`&;TZt&>lS)@*B@^E7?3wt794$7f0a&v1F#>oRx>Tq`WZ-WC_}Rp=e&v^tZhYhd0YHT~ z_wFi!aLFz;auufpJ@3=e^J!%kX%@^*$C}k9_Km~~Cs~9QK>i2SzRfjxXYJ#%!E9bZ zmMa@ax?OY0790WpeTDmIvAEA%xD6A@&fGQ&gyn9S3)Rx(HPQm-FhOx_}4YsYQ zh#63NPRC@rn<~PcGdVv6VgY`OG{^DwFQZYiaPrcERk1& z9yxn2ji1zEew;9cw`@b4pu1>mmg|YF-Qb^GeJ3HAZo?@}?@+HnpdOlz+W4+i21R&z zgIPG$MB$0&ksF*^t_JdSeLpdHdp}x_3}*Bh_X*oxcO#H^c18 zHJjHF$B7A@^!b_)Q4%zYoD3hD5NIaxy}U23G$zxx5%ky9L=5GP%iAX`syVawT>MI_ zMQszNyX0F;-|?TqVlOzZqwOi$Z{OXI@M%@|ZL0r;x6z_#VPuuhZAb-^(^ZygjQ{SJ z^U|Jr`|vZs-LyDiW9E1I^amDj{6V&vrIhFEu!wm`emPu!-|vf^0l)XtBPf2H51_FI zEB9l^io78z3N;hS^|USMw;xmM|5W1J@MYgW{|ry~fB$#?j>)(1Ui(uH`)&?VS|(V5(=eq|d}a*Sd!0X7t@7 zNO`@_QhL!+4tJS#I20;>!vQ~yXw}I#Hf%LvIU+YR52)sS5L21v3?pZ8%pX}uSC7+x zqurST|Jq8&sS~3$8E99WCz8*_I4`nwu?^WM_ud+iP}b)*N|quY6V4aW!#)w$4U@!! zIzYOMimOOG@59wpa?66XaDdpu*rtZu+%6d`DI)dVEk&h=895*$K82nf4)BB^-wSH4bd@&ti? zNG9U9s)zx0MDrCb*@0CcQv=SjcwBBI z&v=#Tf~@+J3U;`!DF+60XUT+up#{?;u$d0)n#RdE%mI4n##CneF~o>n^?C2_TNRk| zE9c{T+XOMfy7bFKrqCkxHI3(E%u~X%pAseuCSqNDSP)&olwu5$0H0)$ua+6M^dQ^7 z4c_EPk;|8Rgcc2umFd?kB#DCo5UxLsnDEcZrcbGviYK&8nEG-k7y2y_ON)RfXcily zEfpA0>QK`G#L2^=Ys>|8&=EE1tx6W=7c~%E6nd&4Uf`Mv$VuW0XKS_BJQrBjXX@XDrTRq^$gn2tdu#VW~e556liu~qKXCY8PEtCo1_T9*$K;& zI8Th*cc>r1q8&9kPl{=|J(Py{MRyqx~&FDj4^ z4?oawp=PI4+wHv=&L=!4=jyt}@!Q9==uw^ew#i-G`~T?ik48>D({V>_{d0C>u=xmvn9o-Wiij_=xaUjlpYl7t zrfG8jfl@)&pSA`Nh*dtN@eDY?-DWIM>@0X^x?kk=($>2SsoaRJY4~W9FJd7vu|40d zcuBF1BUirG{O*%RL)0JrhG`0?AZSGcX~^Z+kboQ4>dJ^ZKX+*;e1rJW!t0Z0dVb4$ z1jGw4^PGuD2IPwgOf2zWK-tw`HpA2xC;{`h4V)(I1jBYW zT+b$MRwj2hwH|vXlU>|tLnySEn5Bqb%yLvp5gH(+91B(%%9C|z;;;tN=$uq&c#W7? z)@7+2C8c(8J)bYd6=F5Cb<0$klH)b5fTO8wE zw+t3N6a>NdPq===^S29Hd?kjdYDt<^lV04fHRI?@2k@-Br`VfdT7khJ{5ZDi&hz|P z55QMzz5E*dtn;J}4G!B&;4cIC7?RyD&k97N@;^iHpHEA#3pNY%05&E(pwzj`y7F!g;WQZ&(uSb zhh{x1#vQb{cI+H$e%h9)oqB^9K27e7r)qF2jb1Lt9E!f1cMfoGX9Oyp&S+{!@FdAH ztGOJp+R{M5Od0qY5KSU-_NkGEM$FbLxf_^l9k+WcXmZZ(T*QkKcd*du;~``kCPh~g za*XPF?G1*{`$OE#K#I7F>7j{^@GHZLm&EH_#&dir@5?G&56U|eZT7<)#N3_$h-_yT&8TKt!ZRUS z_)LCuD2fi@$4H(st?ll|1A6`_uWozb>*pk{x_OZV{`0gH>zK07^X`=0l5&XF=*Mp# zRXAjVukKj(bPSs^`Un-`i~Mb?HXs`AcCXWz|9zLOFtXVQyRXsORUapp6u&mUY4nJu%eX@z8>|TgMFp2GJd8o zb_(>!2ZOFCr@ga4vJo$v$kXU(G7?2J{$NX1VAV64$`z$R2g7@WBX?WzXg3(I#Alkj zTcEV+f(K6$Fg@C<8>D9IHfQa1V>2lnxJ^pn2n=!Y%&S87I(MX$bL%JNldR3og=ohr z!Ys+0xeuU*G>qVNMj5Pj%CoJqeDnB@aj5-2$lM(^Y63if8Nv8!%-*(Mx741}p^$2A^^hqDLa?AR_nHgXt(Y@GoUfMoK5#oDPw|x10O*kv3eOy@ zV$D#dJWU~COU2k^?fMctzRQA6RFn`x>F&TUlLj0UJT01a8*CY+AnE-z=p* zeqI5d-R+8i|Lg6holjgES!1_ASzk&@D3dlVny9b~jtI85GV>I_`YnN!d8p@=Cr5c@ zoq!LK7=|=jk}{6`(swgS^k%kxz9+NrAV+bU32h(jNS0Z8*2H*;0o5Y{iCPE)!1l>R zG$zUTE)gip;Pt4tq|SQZ5Ka6hv(OV;BBOCDD!L@*u2ghhuiU&XpL>S&FZ>i=Wwd4v z%+J3^8-GLloCaF-=2Fz7tfzvYh9rvyiwa)8XuN}7_-YzPV?RCO#1+T}RZ2n45(ytb zLP>ve>^O`dn>gQh%ScX8)4cjpP$IuZwuGG9TSn2*Q!dv+e~1SSioH>hP9=LipAxhm z)AEwH{bqal=f*gm)V!ZWZlngvG4x1-D7xr>t{d=jh@;|4qNRd3P2}U@z)gR^AfiV zhohS_Is}{mLM9-(VcjwXlR?~5(5^FQN3^&dKRC3jw36kM6Sm}zbRf+-dE(? zZwEhyDTD2{`Ie*WXQAar%pjp>FlQ`l#!ly*K`^3R*^o_;Rp)#X-1 zzHPH&d>_;-KVS!ROkdQO9pLoSJL{xYSW;>OR$9OHB%2fV5zr(xye z7#;;^ztXS-dbwW;EOcPu(6fQ1o8<CU@H`YoZRi0?uNxf6OjY zaLAnnJG{S@M#+2nQ0LYy@ddnA-~DaMq?LuMP6s)U$<>Jb<^2u0nk7AI8o0eN4`dfD zE}pyFgjc#l7G7P6Oa>nkDFh@@j|y`WiPk>D9917i!tUW803Z&`>Kk5$Vh7J3GD`|M zEaeL$xlfYLYFj!$rMN7T?^zVn_n*g6)0tH4CmGn>OXG`IDNE!uMG;9u=S&*s*?20q z=?Pj`s*ZXEz+FTY<=rGnMIXC+{t$l7I<6|^)YBRz^{H5&Z`bVheB)Knu_ON~njbIH zohpaFgJ1g1rM0&ZW5Nz0hnM3$Y_?~#>*JC2IyJ5QPuCv@vGyVDP^t7b@pRcPYW?|X!v^;OGA2{}Bn!4f= z(GdTRX!TS-48$~i+x3i!SutTy zP{-(3-r998z%jDBC$G&srD6DUc8lNWOJp^O4V3l2u_?|L@UA;TeBRqC!~eto^`8Kr zIc3Fz^ZboHquZ_zhO7#Cd?HWI6Gt&;6^gf)3EByh77qbV*%EHNyu&$le=W>XwmHN% zdfKeUZTd_qv1W!TW3nyxc=ex7z^;G~%SJq)gUO}b+(*S=EQ)0xxN#VtJDtl- zFhNPvXvuSnkM#s^rgJ~qC@j@tVyanJb=4IBcUQ-AN%N! zar86-^TPr z&D+*WuZ^6y;*oI!Q&KanHbKlx-6NOGG7K}BUV#BmUp~Y=ewWcd%VhJAwk&|;tOw4b z%j8PGkmkb5aTuVU26nDvM=(I4eC-FEj1(2)P-V;Ik;edyfv1G0G40-d4PP)p{_%kU6$}1%tN4fO{5=TQb@mev>juI>t1Mc7XX9@Eo@WV z)s&8rT`i(XnNWEGj;xQysm;100>G5j|rX^r=!4lzV>m}i{oRk5!IvOjtly%L|ibr8M1H08MXuN5dhvTuWaHMe@ENuaTB_G z&SG@C{`pqi)^-b76zLRm-Q?pz`J352;X5x1g2~^|U@*&h_94IUr+A;RA>M80s7Bj3 zGkIK;0{;d7AOHS8Ps%4y7m~RmPjNi6br<6Xd2^qaO+CtaJA9l}58xrXYDDO>?1u=M zFn+q?TVa+P+1&Ykmo)Uo-_p^0dkM=9b+`Thox{f@^%&GhxpUu@VT7r#n<=rb7gM$_ zOa5^aR?iK1Zv9kg^7LB&rC46@R2@>Fy9bgLRq{xfiC}gbZ0&o3mNj~D*W2c)Vxt+^ zAnC^9`^4t8N$4_?a$6CPk@)-wlNlsNw_jU=H-D^u8^!*MJfjZ}S6!+WrQDvs!jP=A zY!2RqaYo9%>|!;ax0k(51`OHY*$Bu^474bhpV8uG8b411q-f0HlQlTQ@b`Evk)yr}zu zfeV>FqND$o0MhOrE1bsodIqq7n)xt-iNnJsu^*?!vnX3tPwG4uVt$hDmij{oYKdKR z6!(af_lfF<)DG!moDOqKy;y42t`3g_%dogG`{g5E!*%+I=Lh?zRZXXVnik6k-I(pn zK7j@0Lf0g*D{MCLVC7bz-uW0uD?1)rO24E6rLk4D;LRxH`v{M!c7Rh zwpGY}7LC|M(so7l{5p{trx<&gBu)H~qNf||tmUDyo+o{_-;DMnA6(L2f=a}EQa!Wv zZL=h%1luq6{c+R8X#O)1UvY{59d?c6 zR(VEwC=+69?JRw%88r*N(WVv`sO!HJBx-vvoO0zV3?@RJ;n|X`JJ(Roxo;nft#-|e|*DJ zX*)g;iy}89=WKb0@-S{yjkapRkFCjtI znx9j?3>a`nFpK(uruPwr=hXN&mQ=93thgJ_A{K9`NnwvTT|+DQQWzSC3uW~{ry|~C z{2^D8@#3{Nl>LtRqeXuP-Ivw7jfsA+q$g_thip0RvSh`VG}N@5Q@j8iu(g16lDym$ zKL7gZX_oIOJZ(@?b059oZq?x~YdY9@cS|Ssp7F2RF+vXhVcFlVi-|3m^;?%+no}YL zNV8i33UCD~d8^!Rt$oqwJ9y(Sj(ymomK^bq(5`$m0UU});2R9)ZaK}mavpyQ?IfOI z%&FXu_+4@jT)yPs=sx5LeJS*D)ij4sJk~mr;0q^DEjdsfF>sa zN<&Y!2wRc#-LZU-NB;Xt&;c0O_aO3N73smY6SSzl-shNL%194bbZ+8k8U9gu{E$6w zB+xEwhRoHDtVq{o%nm6Xm40irI84}1U5n#(?H(xSLH?14FXq*c`ajxB1N_jJ0>WC7Q{VviUXT z){Ok!OB`>#TL8=>tSDh~nxL9%n1qjR2}QJCRSwzUub>yYjt13jnKnolR}(mJWhy$t zaY9uKZ!FrJTK0oMnF6RQm#<;JeU%%=IW5mVNx%Y$-dmA^Y$QPvk(|;HXIW|i87H6Y zUa*x#rtUXv=E$-ii_IcrOy%M2q;iiCj6lL-7taQ-NtK^0l# zKr)xXaV+UrLhKtQ)NHC8_*j0VQHW!k;>?4Y3%bR&q`<>9AMNBX#IXfhkP|CcMmRBZ z;;-1`O(j?86i1>ukVPY;=hzntj0{+U=z#R#FcFh)gGQ}E5GaPoI*;3NoQTml_r$dV zx*VHyTL-7(#nliXvv*;Q{(pktV^^1LQ4I3Pp>ow9XINqHv(NGMy+*>~4R`^tXo2Jg zvV;Xf0*R(+Ak&0*LxSsc!d_vfKUNN-M&$d_ea99zzCmW5Q5OL7$H0iuA=*L#KmBx) zvSA4Yy}hpjCB7`FC%#`v>@ap9xRQ<+(JoYal6fQpU2w~B1*(7mA^m)x3veCsiLCs{ z8z7J!x+K3(<1R`aX{U8;QbiCg0-Lh@Eo7Wet3KDcx6L*rLp6K?b}5kh$ZZaZu9?bR zDy9^A$WS*S#JZ~}w}MiP6AgW_5Sf$Z!wu<-UWqYF?LxT#bX_XU>JkE&fOk8m!*Tb3gN?E+{I8oZs{oK ztuML%%F{I-_m`tvFSi+SFYn!2p)nYJk3_DBAJV^@dl%0{;_$bUKYoz;JVzksAV0ag zbuh%x(R$4v(zdA&>D;Z^l88~ofqnmVfzx;Qki#Robn1{ZocY*o@cC^mQ+Z3jr!)IV zMtVK2&B=sg-3g;FJj?g(w_BbH`(sL)82alw$Aio=%KQxH&6*gqpNp@>J+}>`|N5H_y6ema^<#wtbh_=w`8v@xKcj+se;;4r6I3EtP zhH0CgJ>BTSv0gU|KdAfi1rfOPJRUChEa$h7Jx~9JB{XQX3o_TGIinC5T3p-dy(_H_Zn{=|=XC2p+IpBv=*RCRvpJ?)}D{+=@rA zK5eog=rT(e`HoehSO!v?w_V(1d_Avq=*sDK^$cqb-xq=28w~}_9KpdXAb)3ntRSqUx+_^v*m+xLAza%O~R}WRmoRew>HDS zk2C#v3uN4qKg1$^!)+lRm!{pac6N#z`{_?@JT!PJ+9ntf#pt{ezP4?y@st-aY&N%U zcH7@}5V|ivX>YoM-)<_P|6;6|6;qYtw-jX4$8vY4K4m-q-gIAYTN4_)dd^E958)2m zKm*%#fO0Z;x=~9P>*U6OPsvoLP%?L8u7Wvy001BWNkl0OxPPGPp+q8YoG>$WW3dP6tPYP+l%B8wVva&F&vzhjnRpEN za$UMC-ZPH@v;C-84m$v0YUL2qbP(8mV4JvUD)fj79`kp=CiZGKJ%kk`<}re%M=4kr z2fW~DI6s=r@vR+54mHrp#~gG^i=F$F#Os3H?!JCYPgNCnV4BGk-c}+rX$?e42l#K( z{YvGYBYqz!xUJd=Pmp-d|HJ;K0gp;o=whvVsw~;|z`~mkwQjcwKL3(C-T$gF)S@e& zW?5&Rasf^seTNWEcn9?PqB9WuW`b^UB^#j@?O1+>tUU+ zYF|}y+`?Lq?H-zmJ?IY(lII4yBigr665KrTeAg_={Ou553i!BO$|=D#G9ny}8lSv` zq%r0fL3i4S50(8UVKt^V7H-p_O3wv`a{hJhTfx!~B$r&X^zZ&&ecrXr(Krn{L7JcN z*VBz`BN)Z#0>a@(XYjxMSN|obo_O?kzz?vDV*O|GB)HFlzqnr9(@8~--RStBk}3Lp z=svCElDfnAGqdR{8I_CU_l*a`Q@E_*Ln(hqGD9w4$|E$mX_h{h=Ccs*Fy16 zqs@8EjyU%k&I#(Adp3qN3<#*zMnqw*lA@4aI)Pl_#yL;u^t}p=#mshExzXnmWatL4 zEY_FV64c`}&+miH<`J&Sjqo~t;md@soJNDBhZM&&yD4+g5-j|oE_q_02i8)TKtLpt z**fOEW2H7clTxxFGPySLYVn7a{qxC-A*n68-Ha=l5O&jy`4ao8*&9G3Is-!QB3kIt|sKSvA4yZZ3oH* zOMU{2Y+I}uq;G&39wk12!EBb5(-r^P19Xdhd<%7-lPRU*5?L9Sg6kOFS8d4sl{09`<$ztVjb-+NLD zw%W?EpcPzKcESfB&J-bxbmYazLx3ycM#L!rh4m>GATqEI`5WXn`H+Q}U?gL<${xMQ z914=7wKiFb`q7CIEHNEdvW=}ONjJ=9D_s&8DUWRkoEqx#}06FqceuEnnYk>#Y5vgQR)o2bv*632iBWEXf#74dYA z(*MXKZKrr)aBwz5PQyWY{@A0rcxl?y$2oYxx^n`l2rLR5uUj5>>!13BU!MD7DDs@x ze7fsDm;;4z5hZ;r8x|Lr>tCIj<-5V6`}pgdoFCqbYd75)CA!mnX^b9rJSp4z{lwae3?jGr;Ipce=VJd^j=?)LL>znhZuS2kTU zGBg_}TC5YJxyr7RC=sD13A_1mO4p2kH0t?o<49??dyg+>J6VjR73E(P{Tj|0+}C2? zefXUK3XN#0*Nb1?<$PF^u0!+cMAP*Y7H{5ZBKOHW_uN0O^UZIX_Czk6t1s)*$RL)} zwx*jA2ugF}FQ2|6tw-h$#iw^WE8s>kx}ocHb8wNU$8)NJ6`q~SrR$o#1=NtNN8SF$ z+QU7c&10sgE8cJwu7ACJe%Qk3y}gs1%%^^XmRnLDL|eDG z3F~np+RK{{kR_Mx`w0@+R_(qkNMPnywTv$SV&wZ)xUQd+QNVmHd<&);l!wdGJ@N+$ zREuaKF2f4Cs$j)pda~K~DmoF12}bdG9wjPwZFob)Kb@0o3}VWD(EIDQ1ZVt%HC8#Y zJFG7tSAO$Y)}304iZnkq*uCXg|H1iW@90U776S<7tq@Dw_rGMPv0CAlK9jmbPx}}4 zmM_KqIi#2Ok=;K!UjV6HAW}3lFtmGCpO##~OX}7#LenZZ+gu+ zE*w^hJuX?hXGyR`r*ul_TzNXRWR^OO%Xhbsr0FA(B~i&u6mQ=BOy=r0kt_;AqGUtR zete+v?#L_%aB7bABocg`b{0Okcy%%)E}dBrkWXD8Y^peKw4y2V^ZY{l8I-HV9Wktd z6{lA4X;OJKO?e?aa$myi$4f@@=3_qRW_|Fx8>wj;c)QV_fG8W^8W4v}sCgyvp%R0W zZ8qD@vin|L=(L+7Al&Y*(hV$Zq+Uh$Pjs0kc>MSlgHOk3<>|J%-9izqW%)5553}iy z(#w4@V)*w<@d2~#=lJFF@yEdX4E{z}F;|R<-{*54_3jnU8%49zlyqOrm+>#rZgr0{ zqG>#TM|m}X7npC|rDb2}vd^pGEsFn!0KOdiBp1ZZ|K5pe#{M_-SJIn0S~sxM zfOtk$cN&-MK4z8r$cBgNV5Sgu#D37<_TXbk*AnF{^i}ZB(>{Mt-`f4MiJnsC!AzZA zw;><@Bx(J_9VzY3@HMVW@(}e9{i3gQn`sQI!dN?b{J;HI|FY0D9a zMey@0MGyoaihdd7ELfHj%9(}f?(uBpJjXNC4WsY4j34G$VOMj-ey~wLfkyyPJea7w zibmfyi|Ie!1=#vrh6&|*T;pv5YM2OF5Q4F5UkXUA;|e0-3OKd8@NTAxYUDe4%>rF! zS7$Aamze4x>dOu3n5JIKTisV!QooYKn7N}#GhQlg8INyz#J0QxQ#xanRP5Rz?PB{9 zM?;r5(@*SH_bDB$>;%z{M@wJq&^U+nZ4ZV;f?F7pUnarGx~^sFN!mQ6t7q+sU5c)5 zt(fc^VTgL9s87W$V}`Gh90d_?#f--ViKS+JyvK`*HH~6Gc;)aYZX*|D9;{s`i?v(k{P2A&xj;uWD8b{1$0~b7Mn2D<#E84{ z3XRndGo9C43Q-K!-*96@;5MEDc)3NP+ch~4I-4^vUbJyJLan@!VjX#*hovchk$k2f zv15}^jQP8%I{*va7{6rZ>M+{Q0m1eo6el{tdCHfdi=uFWoErl}X>o{{Q#_7^@0%53 zx2(%_vYgbG#8cWzvH+i4)zrBtc$R37=FA466xrc^B*HO|SON|yowZ)I^E$*)X!BHe8YS3{KIWr}k}=wj@w6{l9Ui;iP3?ra3}@o}3Ngcl)}`8>>tL%UuoIv+;F z%XI4M7!p5C+&=P#!cfv(_ z0=-8Oj{7_LmC0xry5OQ7=8-kM2=S8~+K5Lx1Z$dPV#}2fZryB035U~((cs4$&H~Fj zmm=3EyG9qR;t8S~@bC@TT&Z;)@{L+1`4CIW;uY*(ke;=$*>=7Urt-K}g74z^B|(4g zAy0>;QLYgKg;jw13ed)qM|itdX)JUNE+ttTXutZHtc4%p!EsYAQ`%ptukevV&erjg z7+j-mYQ_5ZF9lSyHJsJt{m~{}8EgZi2rjsW@Vf;qg7ObSrTG8)@BY;de$>SS`ShO> zn7Xk<(Ov2s+5^{ulu$&?(~v;-EU}r zaTp~PC^yfrQ4hZSJw_D0TqYD>+0i_n#GdazF83kMp5C-s%0;bulCWHLGcT<wGD&H0z zj)tNs<2`doMkSiYh5sRoCa2dYSsZ;CA#Pp+$&t9HeYv=(%pq8`JK5qfnpW`2aNcEk z_G8(^L)(Y_ndZ8iSuyppmEox|3WDiEA9}jt=Ma@a<6@OYcr<8mU8z$d8*OwT&TPqz zv!fQ~fQs{Ok|tZ9m04ojMDZ@Z_0G@XZs)K!O(uiOMmqw!sAWxDdc6Y6j4DW4@*o8q zgjZpt1QN{l_&nL}G2XS7rqtu1vCjn!qjJvGM7uc|>m@5Oi&Zk?^U(Tn$>{1X@m)nY z^WBwVdifgSNe?|; zAYJG^>PsDznylW}O4G?l@^-3!bx%{WR#7{<0;J{hnK6E?BYNMsmR1W83_Qr$O!@}P zND}qBCaQq<$F!)YEMz~%?@WGug{FrC8nhhmYHD}6x(RaR?3@E#&Cj0ZdilV+ajK&V z_hVcJAK@jiv^TeBB2N2Fen$5lm537_T0#&HVX)PZg~;X^CU!}8T?Kv!Bzjy<37C$C zd>kU}$s|^7<_$g0OF6_EmjpR(S~s(pSKjFSQ4Y|r&L7t*Lx?-}`Q2{p>|~~Q^$`pH zFdX-8UvC?9e=2xgNBI!0aJ&UXoG+5c+~UX8QvlAi1(hQ=sI@FZ|8Xg>9U|(YT68=E z#j-Rz=IH&t{E3U=Q2`x7Jd`0>RJ(%-TMRPOG;#kB?)1JpU$p?uJVZ%o?tQ$^{7>8E zvzP{GN4P!sK(n5>KI2>#I!B!w*1O0tj6VR{pTqBD@C#1T1TEnxgn4sGVBN5 zY}fKZh~b9bwkBQ0(*w+g0iZJ&z*=NP2 z=6t-D3to;+#^6nKYdfoUPUR1>jvxp`czx`G_OV`uy$!L9=*KB92`v#U{W6#-)4)Z) zzpqcbl8(daVt*}@>pdOR*-Ekh=+)g4H6z zS$19{kg5)t^gN!&b)9#y``giUU`RRta1C~Fx559%|M@Rk7H6!@9^F08qIU=ODJT}O z^dQ>)zVYGKMr2E+hnn^G@pw1urdwbr$N9beSP{+$l|~1eMYqb}Kl&t~$eZyRB3i9m zD?-Hnl8C?6C@t*|SU`X%#6?xlko5Yxb#o%8cSKwh>$Kh6R<3}xr}0-fnZ;fSo7zjY z=ir8@67!+oU6n#ArEs#@Y4xr^IVGn)jc&WQc+|3dT1zj>X*vYFbBQq9P_8t=zz#?} z-gnU!t?miet1QU1LUAaM-}=T2h>73O2kJl{{H<$(*}ZO@?)ihT3f~s2taD0IFQd(@ zMlZa5)Xj0@3EyX$!%&ZmuxGIOh-0_fSAxwowMG>K8DqG%AXsU2`b)DuM68So=JnNW zs06!|Xs`=c2THkPT^beHC>yZdl7yPc(2O?qQ0*-wh_0aW2W|VB;ewaISDa zhrp^ZE{iEy2;1BMq!(ZA5>7N-k7PFl&6%ZwRcDdp9>H}h=mEw)()eb4My*TW<*Mpz zS%$Q$4CkHse2;8Z^ zgI;8tq_4?3=G`y{LVL%Z2+f`f$O-l?VnJpBBY}(txj51;f6K;^i@=0Jv;@x!v%txrB#gzS`-&9@;6I zZmy~nPVVO)WN2Npd*EN(2e?85+o`V0H&vtK!23O_o(IHbs@e zmF1@9OA{DX7wdftaL(iU5l`C1b7r>E2&uU%I1X^_upDGHK zPd_IFPi!zkMsJm=ve#fdJnQ+zH%Y9FXJdE=<<8GU#cu3 zg81Vy&2%RG}`o^Pm0%khaB=%h-g7xa}o9tWA=eSbBFkq|sp4DL>Rf zVk=Xnz1uT#O&pM;u{f_JfIaD=Sw2HgL<(*azK(et;LN$mR7 zpXx48(3A@{bDfOhL*r_-D44%iYgtYpjcy-A>ozL2DJRye=*yV(HQ4Q&c$D$Lbo70< zNYHKl*Rq++4j!bld$+ZElBi6510TK^ z5s@L!GkisB5zHWm${%Ou(%ov1O%4yE6%ZhX)Fy6lOBlURVzP%3xH_jD(vW`qs!q1@@$IZ67m3m`R8!um3Sn%ZUb>wql z1~Ha?lu2m-qyp<(3P;iwC(n!81{e9>W1Dtz0EVugK*tE51m&ZRU~GVs#*Bfi%L-v+ zyNd5z@kTHcAt!jaq+b^2@0(+IjWL*hL zr5*g689Yi4ag+FJ66Zn2#DQ;z8z5@Nr%t5hoyz6cM1`pgX{2XhzE=41levdiY2KpbNGJ zZdW}AimpLbV^XGQf+UMkoa%8Aimszh@+pK-xH()By88Ka5jnWrhyTFP(d7u`+KQJz9^XmhcC%Pc~fB!H4Q(!|$Gchk3K43v) z^ef23oP`f5PGCyp7bxa3f8T;hfV5I+Lv@6HhYd)6Y?J=IS{@9Y?^y<(~?am4SV{ z%`mf;m*b>@hKFGDVZ==fWn?2u0(>RtKGEg?8rf9TIhEiq$3gA_!`*C!oJT(Mcq4`YuVRg9i zMYvx@HclgJrpdD4(CEgjd_3YsFp2Ql^8jUU?*qN;uuw=jt-^W{QL+n<>x%J>3&0g0 zk%h_F2TMpN7E4EGUGM}D}s{YHqh~%tf09Ev<2l|wTh>yOA^_F z2s%U%itXc=dOSA)1JzxN&g*?hoLAS)nui0w?Y!d;F>`pX)s#bPmK&3F@kQbchv}B2>0|{Oc zC4xJlSB-{yfVn-lh(m6REVX%BNviBJAuv(_oA?RAAp=e#g4onoD)!*uCJ%$<6HEf# z8b%-5PE+Qb90V5ZQeN0X0o0-p|Qt#Xc9g8Ws< zh`xy}L-xZlYv~f@F*Y6T7TOjJGYCBs5g8&ns3gjUily8+$aqfA_f*s&0P91Dd6BIE z;?W$@WKF{90=oeCu!@j$f#OBvz)68AACr&_Wgkg9)C@wl6#Xbzu@C8uv019}%8R9C z>Cy!;-y$dNT84oyvLmGGsQl#dhrimPSvB!x5XF z(&>}RpR${+ZND9m$sJywSdT`3Pvi`wcap&?1nUXR5&Or+Hz8Mhz8SQ<2SoW{&cY)Ulh1T3j=X{(hatE^%^^~{yQ3f zz0Z#)YZb?vv@Jwx=v_{$?%8qSs8LALIL% z+pM>UBF591O!_A^^Obol_>apejT`D>i&wLA#O8rI7H;O_;iz-`w~~wSbBHz zeH#emf5C+Sg^5;HOXLL-!P*4^Hughb*{xiDAR9-hbADSdG%Yb0uBF=D#e0}Q)>$1w zdixT*PU2eE{rCr>7tC?F4nRfdW`9ZkFiifO!(CD0H$?l6tWPS3r6l=}+Ug;iY!ua( zWDs*&O8YBvd6q`MtL^4ttC}2by7*P}ROaoRAru&3lfJJqQ;94EVDNi;*!nOJWF#~| zYUpM171md*K{=-a;9abQ4NxWv%h%vQawtu8(=0hC+uq|ffcEja`C(*!n3ilzKU}B$ zuy`$s;;ltP^qJ&fxV};rhdXXhuCWYCJV~_M36GbEh*7C)b)hnztBvbg526G8TlD{a z=D$oGxD?}&-k|c~>mMF}`WUfw_l`eypAdSf(#Mee+!tR%BF2fc7~gyp&O^9Eu{BPh zsy?taTb{Uog{eH35njZ&o~6h>>3UxIhTTbL zy6QKqu%6syBA4l%AD|rNjyf`$6e$xyb|m;+9w>=kHEtsT%y$G{HD%5k7LmH0o9<{02G;2pIB?)|32UG0iWf}2O=2AA+?m=Pk zAja~ixPv#oB|G&@X9e(L{6n0KOLvs0Cv%UPdH$)BT^P`j!XSf8SE9M>T&sk{2SY>Gt!>`1$oFeYJdzA@`6!ee7I@UP-^z zzKgdKI1t0Pe-Qv)-`!NAA%1I* zaOMMw4mgbW_z_efW8|Uq*Jcxo(q|xkC0G599+@99yKd6xrF|pDC#X-84Uv^ArnmPB z{uo^XI&JUURe<}`XImD=FPmYFHZxOQv_4ILGl>7D!p4cyw#?wnEW|Uc<=+Dzp)7AB@0vcAJ^{PfU9vO9RF>!-#0vcit7r0+ftTe$W1tsp6E zDHt1Gj7ql_#PB~BWnMt1FW_!e57N_$ybrNm zWY7=kWay1VSntAE>xAq$fQGFxE^5y{iy54wcDMxlmJjHXgQz74P`^FpTeb)T)#~b~ zcWaYJpx?q5gj_>H6?;gxeqA@~$#D9*a;gIpf=2^}xs9gs>hPG1PZ~%&I_dJ9_avk} zhr!r%NP!kCW%xs=$2CCZEU%q!g!BVfOFVUy%JrSH3~}Q})hZ7oGQS%`(73^<(}*L7 zoZ1l$F-$ZzJ219)s3JbPI$0g4b92OL;?erkPe?|0Ddp<#nZuLO{XK&%8RBL2n}CO2 z4YS|%`?rb=YmHk9@bq2^8(^fsbi0(bUd(tshS8ojf77G-2wv)aI`y7?`9s5uBR|R!pPf|AL}I~fw?L^~WTvhxLw55vK^paQ9;b;Zw^*qXiU`i5jyaef zvUHVDY;=dFNKn6`6feEccUna3q^|}=HUR*ai$DcG1tMa@R^scBPBWh>Cdi(|_pN^S z0e%Q#YEY!!$?Sd&L<-77#cdd6tsRDB7{l?l{VN^O?}vk{AWbDR;}Vx8YyCVX@fVfE zlp=SbWF0h-8S~cnl;-1|4ABxIe~5{hZ*Ag+;ku&sNn$a#JW9xlZh5_9!RUu$9$nf6 z3VCN`B8$}+$(JnNufFsxFLw(7HI*xiBhWn@mUW~B`+3XsXjIsB{2ETST+Y##yk7nL z2EofgJ!ro48xkNsAKFr;UzHPv_j1^@Rg+rB9?xF|oXHN%6wcME*Btu7{V}6ECN7sI zyDg_E>6>GE#OCF&YVb2DbpPIMj(CltL{>9o8Bc2>yFVIPJkEzrqSx#p zCB-p}jg(VHJg^5UsVTO-?M1hM^(E+b`t>KLu7&^1Xm$k$l#_93P~ZuD!jU=E6@`{J zOiTdG=I6~W7wOm<_dA>5gpGX5qGe7Oio%TY2LG@B<9`!B3*`R%9)HPxz6^WTL^}e! z6xe%3{5o_hv%Y&9jj1Ji*?=wwiA?6j^ZT()ucZIdiQgYroT9Fo3$ra`;n($*R_*a` zv4D$TVIRNsF)J6@9!eWtpI8=#-_O(Y52?lB_AuN2&Oe(k@gv~HMcgA?Or}2E_H|^E zI10c0SyW%|Q^OFR&IEg*Ej7pb!qtc*Rad}`G)7@40eY;e{J8l z>D+#7y6y5%Q={$=B4RN(4xqJB>f2;WmgT!Fw3shAt?^HF-^ITSrN|)uYZew4<(0(C zdfDm2c3#Ga>m9w4WdA-7-2S4Z%jd@uex8I2EKb_G5eq*pq_~Wep+FUjZ&D{o07IJP zF`{N}l1KNmzzKV8xrnhNvwfAh_d{nc+bd`@BgQQ&UskY5lNqhXM&G}P6LvcSQ~K}K zkW4XMu-_1G7J$!F#qaS@ImqzCm}PLQazuUL2=9VhV(mmYPyx(GFv_S=@A4&O|1?jDqgjgLMP64Xu=2M{ zK*PgKvz0Q;EA7KLV9>7S>HQo~JmO%#{MyFDtcE3c3B`sGYV|y@62>?X#C|yP* zE8V!nxCAxfK)vy6oDfVCGZqTyG$S26WM`ilFlRp>QpkmsE4)lO2z=)9@5Y0BLSv|k2Cm)j*aPo?c)`N zlYQRcAc)l2+QWT?^!>%ak_=zLddAlToE!R>1|8Du`+0K>$*qz+z~Viq+dQz*yWn<> zTNajoJ9A+3?Oj4p?CWscZ`z+(MOQe)AXmvY>yCk3_dE9Gv|Dlo^=1F2<0r8>-{%h) zb!v3e_WeAacV8D;F{9vL#NignlhxlZ6Dyx90Jy@!&i`Qw!^6nK-}l=_mAZ=sl_AwfBrxJ zDbV_!y|U##wx$>(U*w2GQ8F1oyZ+nOp5?)^&lvc zQ|VzHvh0)5@sx=C#UHW3feiD5Ow)4pjLmd@=fw<}Pe_IQBwg7mmX9>z>Jp)&hf*`w5QVR!rC@fK}+nh1XJ=Ru15I*`-eqf z6C>VjLJOrLn9_t+T}S|StB=!Y`zcdo_12AJqIxm0cRiye^FYL|WDspzF}RU}VNl&7 zMd@59mn-hngEOiC3_%`3I$|u)b4WY#Od<2UWP$C1Wv^XuuZgGVTq5BY^^P-w!x1~f z9}sRyU;}AGGpaCK7PDZ~+S3VQ46Sos*`W&};VD5l4h>vS*fBATJ+vzAW)cL>d)uv! zOE@j3Y=h%Pu>f_HWK}m4K%BM{0kiGoml*~9E;-)Ah-{eDXw3Yur~-gR zD$^Vil%_9NsLO|Z#w$`6i_-ANC1^}dBkQg37d0{u?xFU35Xtql-#*Xx?*)XK)FP!EPB@nx{xPgnm-M zBKZ_g79iFj15^S*C<-)2U}1q_fwRlvZW!sj$CF@Dl=qG=I$QUF2=y5iBfw2NE+vB5 z>H;t>^0#PNfoP1Z40k{LWT&wYFaudkC*>@R2nq?T$7=P;1~JRYj&?9j!o)O+lhO)k zgaZnY%&2IyTZ;31;X!QC+Xz7lhS$`9VLK+lr0IpAI-brT7lG`?#m73b;j%X%q-2NO z$fuqI0285iiyUK%6%r8%IFuBq5&!amL@<~ErCjHGL(`33Nzmkag+c}JqpR`kXJ%sI z!%6iPZ^34GblSZLK=c()>Uyk6u9A7*tz&Q3P|fshX_wKgiiH}kCmP0NO!b)JqJ_-h z@cBG9^Ul=>MbnuiQ5ZZ3G|sq1cJdw0U`vzj7Yl%U+8SzP*GKqWzay~gS600KIGbU` zP2ZbIpvA_>&qg5po%m#VvM-My)vXtR4J&HSr(p|LIt^Ee^Vj)~R%8)z@YHSd@Q_qT6N`Ea_#PHotT~eZS4@aJuj= zi$RK<2D6y(l_?qqn}F01{$=*(>=3;z82g}>ex)iJgSvUoQZQYU%XZ7p7dNF+)S&>A zN}^88!Jk4X-a@=_L*BmzPgU!E7#ocucj4~?eYSfvtj7a9xc=Qd>!3baTt3F>9vS?2 zn?uurBnqPaQ{lQiUjJz4aXsT8{|`;CZ{OoURQZ8D4=;UrvyYF!F7OwPdi6&ufbfF@ z>8by1rg6vFdOkk~=^ZOeNKB}fKOwBF59VO^=WK9~ZQ)0}5#ePNg(%67nSmO?Hu{Xv zJMaz1<{y7j{{eoegVhsCpsoklQy42zqSn8&?oxKJ43D@I~XShv( zICli2Z9GZAdS(1-gT)>8yc`-o({3Ic*nutk5NL#w9?`YKmoREkZ85UVFyqD%cq^8k1I1ASn4H6|7|ZNpu(67o%^CNakLKh$}IE zMp%{DOtmlm;ACY73S_HNRWit1eG0^j)f{QRvPtv07Bxw9GKV_}r$pVFv5f7*M6k|_ zK7hxoiNbB2s~*@&bUC;KFo0!Zzh8L3jb0wZ7|h!fBMxt7AfCssr)j?eEPf#qr z(IZ}e`Y`R9M>?#>?Og2ASA731eiGk)4@6KTtPCV!tFJTxhRsh1*<+I@ae`%N#^E|@ z^p{VtWl<}gya9!(#Sqy<9+gMi<8u<-_VZh2w((hWXZ zt)qtq`9@8#kMMYIVif}fZJ#K&MCv>!v4%lcmC$t4jAgkuXuKKncg!3GTdoB=m7;-j&+U_>RP zh3BS?Okiv{E)!8W4JB@}wx1Gs7`OsyG?rJ3i^;A$sn*@2b4rQlB=`zZ+w`f?f=W~c zH%3=&Y_ol@P06Z`mBYx@lL|ZtZxcNJYcx5qY4`kddp%#_)Sd?(Wj_}H)CzSyuCZ0AV0G*Uj7(}eE7RGYWh-{8rZAboCe zfbz!=qx0X_X=wlHMNF%sDf2Rn?{Ax@o_6piSwZmxt;u6xEF$txbY%4NfiUXRa^9qV zE_tBM4^pSacwkrZX5z=lJRV0XVems4R;q3<>i*@RfwV9}HClGQSUF(!N*?t(hfTd^F+|#_n?PjWf|2R!CU&Z0&UDt^zZ^%gu!L6(!RXt_? z%MBjN5QAbx_J=WpCa@D-$HDj=ZJL{L8Qbg&!s07ZEDwo%5$n4du-Eas8^+N&tY^7N z4KL_+v8yDPt~)-a88x!qxSDyc`a%3DLj2RrmsNB?+394)=0`Kc341Keb1>pa(sJ<4 zmP9UU?R4BwEMRr;X*#P-hj|`9nMhw+DwmnRDl5XSu}GPKFjFMOde$CYFiKqwo_g#7 zf{&<)vA&UIOF{4HoXDu(nY7D+2fisDLXE$qEHis9WlxEgVvr7`^Av_l-v!ak)-A;v zYBhy$MrUy&&Ljyhlk%tYo}^-#eQ8|V;kgnnfvdjq61QVm%VtDm11`Q9bTFIegPH;K zOXR1%;}&3A!6n*7Pou8oY*vCp7sgeTrK#07UnefM7+Md_Qoky?^n;F2Yx0my!F_49 zUDi8;(T3s2&@(!6RkCS!kz)2^#zw7Fl_VA@c5RtXoN(+B$`P!WQN*KsxIqU1gPG4* zQwlT{k5?KyyNXQiNM7M+{IO>NViwBRxv2b@JDWzmiQ!?G#MDAPlRfaDGo~9a%4tYb zZt(GsHUd!e&ydMmt<2YQS$w|umGKi-vo@+_UpO~jMzz;?{~zs z_{p2^w1R)>w=+oxm6E5H{k1Lxk)~!nguUN*HyAiBELo-@IUH z4+7g`J}#V<0@4UoQ-A_59MgMv3vZkoj<-J0qK^V*QuRLO7~}$Q!=>*Nyo6UciH#a< zqA$i8WUjnn81-fd7A<>{YB|oc;H=X_+C4(7r5V!Q5$8r$K`?Rxlns`+^FPYR0m3ZG zzXM`BlojiFornTaV-dBKr}==+v%k$!Bvl>6^|w&l0BAfu=LwP6{Ci}FMs*?1mJ08< z1uyS|ofmcs-DH1^Fr@q9?tlPz>eD1y&O@wbB|yA-WlKg#F-A@75BUw5;gjr97}oiy zj-)EyWIY7PiE9_75xt}vH7-HSS8KW4au^z~3?O^^o`k+dAABm&SAlpo zeQujw9zFD#h%vgQNu(b%)BU?AG<%xncw!?_0pJB+`rD#)InUed)5@uHe5n1cs5+f( zsZV}dIQYo!VUa_2P=*MzI62Vu7;_)RIp-~Zj8+m8ZwpZ%GYSDi;+)z)QaTjyHLSG1x6z*8s?QI*hA%Zlf4*1=MP4SIyaop9LZ)|!o zne`t~69>b4UT~&vc79YCU{)=&D_cNU8H0)27!*E{Z%&YI6vImJFJW*mY(9ZzHq6Dy-nsw*LEp|U*vs>I-wEmDj z|0MM`YP)5JS4HDs=(wr_?_?TcTJ%>OkH!uWIrLs3L9zXS)=QnHyydr`vgq+U-rOxrp$yfWtfKsJTm|?$e*VmfNj_etxwpZqOw{I5LWn?v zI0kJ&?xEOq!}lh4winHgFJ{z1%FxfT-)TGD;%JSTQelyJ1DvR^th*^x@iI2|&3a>F zH5*0KoTv#Yq%q3W%a&MA2x1r6MgH|sn+uWFiJ<>=+$AMP7YYIXWdClBMjj@jR4Q*X;3&=#iK#$1Ux{SbUrR!Xg?2=K`_fT+^4gDyVkpu~VQ5?*(8Ei8gOOT>G>n+m_$t*+-AlrP! zW|K9H`hoW*9G0XsaW#fTlWPOhsqqV;QDhf^ouUQmXN=|x4|{R9ek&kD!R#LTdnQ9v z1BXT&`c%I8$ROjyL{pK!WcDjwJlU52WI(Z=ekaSwJx5^~YTxFZu#wV%&$Q2VR@tE3 z^qUPgcj~dS$JvH5)MR*h9pOxOA@%pMJh(Xs3lxs+WJ;a-BDvjC_G8l>#$Q=%u7||< zYkG*9ruLIPf6R!X_xTuYr)>K4p4C&{xOFj!PF0`ix^IG69)%bs`JKugjxL!%L=MVfK+xaulTKuZIEw?r_EXW_`uF~pxR~0RSuWIol zc~ohewT>Sq{cYI7hR*!Dim%6?i|C%7{3V@^a6P7NJC{lNxTNJrUE#7`h)v_+@(2C$ zEZdFHmo?YPbx5g9C7$BNR(? zeGR_Mwfi`u8B*kvLC%+-*8`9nH`VC)G0oA9Xc@P%iPQJygVo7y$kgcpxtu4r(B;Y1 zQ}Qcj_jL7QUeM!iIVsvqk@|`(O4C=rrQh(eLk)9R>xuQd4W`e2hA_yd-e+1e1@#Bh zlb2+=8Jk7L%t?-r3EGgq43keOsj_9Jw!gqBu--e2QWs*YB>%A@BiyZ&M<_(wm6($F z*ho$ss?&HOMyCN0i5oiZCRuChYOa!xZ5WkG-f3?cX>vEXJfT->l1|LH5z{<76+J)? zggu{OzwA&RTjavdOqhp(GBbE+OEnRUKCp>9a~G>TjnxU?=hW`W5_=l!00;^26xtkS z1IT7HO*dDT*b}p3?VOfuLwT@y#g#Uc{w z+Dm2(y!g{nyMUZfhDGsRk3hKfW9VVp&OYlyBD{2hF)TxFv_u$&eweM2=r*LDM+N{D zTfrPc;axBtn$Aw9QYTT`xu8_Cm}1veN@?roWFfH8Xo6jc?WI7e4}(TAIC$VB!KR5< zpcbnxBOe8vqXoiF-0y~ z!eR7E%=Tg8(XOoWLBK=n9-MkRbW9^88yTXOwnkDWz$5Hgu!F2en&!`Su{&`3)U`r60Zr>$6q{VKxv<~n-COMl-P5+)8ud2)k{8`3T$ znU|m|yrBXTuMOMMxH70ia2xbXAC54n80tk|w@I9i)y=6#Oi9z#b|Hv1z9@?DX&+c= zA}~7h5MCdS6)1YZ@_9Degz*O#k}k2zZzDi0hJ#J12h20;Mf;NsEs%@}21#fQE`Eul zb)cr)447|@Y8WGHE@dQIfR?t6uPI8~$t;0I(X248*W{0$^nwa_dnY`E7QtO39NLS4 zlEt^D9_h=<+$yt~Iek`UVDGI#-G%sA*Z>LyddP6NLW0RWb>ailFe-EPRfmi-oo`;LzS!U$z5pBZo z7N51=q`!~?)PFgDeTZPd<@OHN-O5b1O``&4`GMdm9IGhHI+he1SCu*frfcEs<$}B-=lCAB=3I0X67$#)D5;xb@Frc&#QlNq^s4} z_fINpFY#DjKD1zIx)>&H+9zgrx4+@?w!M`<^Jv-$etNVxzY)1&SKfn)by2WRvcEUd%T+9(*x2_O z#q{15uqE`b3VhG|hc8}kD$d}6wu#!b#yN5meGnKIg~m5mzuA%#lO$5Xt%773SIK9T z5?SwndEDJ!K&B!G^LjI8L#RQ(%Iox2i;VqQ1@cLcGDD`>&`SV4K*GO;J#kZy1HSId z6~6d2lb3cE?L&_02(xg5CvX`Rdugo-M5$^6_T~_U&14K*o`>P*9c*+s^~a|~gu~Y= zC^C0DPy7pEClV7AzPSM;{k!YocyK;I*m$ndaO6;h;<9w<8&V#DVoI%bIrtzC$JX0 z9CSjGXq;wzC^YlX_c33_mNb@mr0Bx%q9cfwXy!&Sgxfz{4Bd5$7*tOz8hunxZpiYd zAeN_Fm#=|APv!@z&{QWQ^H;1mAC^JQPuktKL92zo&I3XDrdK;FKJi$rNVH_d^98)a zD`Fi!2SGUJld#inl>GLLK7WHdJ^xO{QdG&evQJ?9_2=Am`X}<%!D}P4MA35=9u`@R zkMotO6dN;zAGa|bn&r)q^C8)2N5#HiW_%ASL1x#$_# zW}eyL;t1Zy&%t8|0`Ztkps;-eqX^dtUGy zTM1GPRZysP&)(}g&_NN2B?Oh~p$97z2NThXR6id3IR>wAo=nc@n)JSri6}atWj_2f zf)Ru^7D|9x-kNnXy{qoafrL@oPNhxZZj94tqEmF+QR70;YqS>Pe!OMN@i_y-#ZML$ z$)-$(pH?@Gc{a+$Ha4n_mh{eR(#J#FJ=wrIl+KKtw*;7`%YFD>{`@%4fCb$U_aVw- zHl{qz9iBa^!bIbS_VnIuaB}@e1JZw&G?#AL?zZz{iT%-L7iWUQe7Vd21Qm1Rnu|ku zL-AMBXq%D#Mc%+?h!iUy{ACn%f z-luFs8XsUGw^BtdB3pMs&3<|!{y*$zvc9$M6I81sn1V6b&_9|GR?*ie;R59}d#u() zJ#6s43NrBR%gVrEGLd7sIGz?qiV(>X@~|Lb*u}NGbXBqrXZC!uF7c)hU|!dohiQAP z>4vX2KPoUyzO)KwfPb9#&rwK~#i)gMbAh#hb{PRg_+)G(Wc>aJrT;Kp+lXGT*UBOV zy4oA~SD9c6Z*p=&-5-)-gfb(pRGUl^T4rD#&Tv@XNU>KB92J*lSn7E@F?0Y+0$Jyv z4P}?WeU>tqbf~9tSf+I3zh55?Zs3O@L49?dJo|JCjGMt>%7Fy#o~;Zm5XDfyyze7u zg8{UOx3R;={reh0PqKXW-Gv>3(ZvQfXu5KfPB$7FT;OB~%{|E9s}0zJh%H%~ zq77Jlgkq$Y6;e}-mK6(;TiPQ6EFE%|;#(pJ_i(E_nod@YIAB67k$ut zFjHp2X+$7GQ&eliKGuXYLMZ? zcV+DBg%g2H0M(2fWzWf^*3HIb=N#uBS1A3HMq*l?8SGH|v|Mqueu~@1Ey%0 z!@lQUJ2~BXpK84bIZDpgY=BEObBvb78}Z!K1Yt6xlOo%|WTbB=a}m~reLB%)XtfbM z29Vyf=MY@cUr15RK=hpg1%Q6UJk}HKc z#ArgZgJJ63HjFq0m3?qyqL1v{Zjdt9VcJ?v?*srSt?}X7%Q6m0Q4Hh;#+yVS9#bs3 z%?zH9U;KN!ma(q6Pop^S=OWT!-j*RGIUbaxBscz?2ZSuLA z?$bI!_io6l@i9V20nEk+58P>J6ZZQaIxt0KuyaV#dngytWfNo7R7Taf12IpTXO7)f z-KHYBhGiT~LzpJh;(vh#Hj^$AHYTA3C|_3)nxDyPmKY3&->I~x6N@rBYPT&`!7%mH zYu^~S2@hB7Y#}ZY*-Xf3u>Su)Bay!WGi>i05DEN0|1bafPoK}hDgOK*!0UY`w+hPm zk^n{hydK**Ja6Pq)zd#K!&7&1aWamNj&n{&rFEKPPHh1r?zt=*T1ahFzgoDSANLt6N%1_eLu{7Vl#ySsT({3IKaxpQYEKt2bp# ze(kiLX4uL3&otTQ%y?QX!AdI~=AMoTDTBUR`3##j;+r*2=jw(6^z-`YFTk}(8x=>> zq6Qz1QU~5cC2#%)NQxWS!SQg5dR)nnz8q;*C4~xq4Q~D&Y0?Ol6S3$e%0}D+5!fa2 z{S+FjAyud!T200a1PL?7K;d1 z?Kyu|S+y0hiC#DEbh@wf_Ggmjar+&TY*2j??3VQ6FU0;7-6rOFqFFP!;ibjosprd& zX{$PMFR}w@NSb#d5^ngO1XI5pBfwD@7SthChjX5#3l6AvlXch29+{Jko;ou_h2nYq z7Gr$naZ!qEHsk8hZ5Lj-P6><-OMK>L#>(Dt^i7)1{rePHHT7Wb|sy=;TnM9Jg_ z^E6eyK@5i?)?FMo8ZTWGRToQwVGrAJc~W-m^2kOZx+c?B433vzVa_KNu}TFpy`V!1 zs}7!J`Lt}!_oi`j9Fyz5qc;+?yol>Y?KWV6`c6?A7e48ZVfq}7(p&YK&Q_ZVj68I~ zdw`j>&u-P(J`JM>4GNrp98qi2=7z@A*A3aRI|vyb!kW?=WR&Z^n&T-@DRiO=K%Ex- zg|`f6!PqIgQo+Io4ASN-!=0Url(5TmO5iZ&dapNMAGOYlkL$p_*U^~Xa~AzTKY&;X zzQCVBO;sKq5G+rLdeP~SMnfr|l)65++=9)yf7|t2F?Lk~+;72Tb4sS~N$@(IR~=6` zLpc3u>Y99Zqc+cZ6|Y~eEB%z-kBMo^jDnk4*6#IWUp(#EkMvg5m%M=6N=SCPEA<59 zFtEcKknCo7a!9~^V&haTZqlL5w>J8=14EefZXnA4n8P_)ryoG?Z`t^IPn(Y?U~)c1 z_R}(s#b4Z%l#7h^%|(3*|F~ay^b5L&HY?Y*rXuX zJx{E+6u2egyob2ckm*7)o;52xDJKe-fF4UZ?l#)t&&MD0l)TI&qjb#%I*YfB(@k96 z+DP>CW<~7s4-gEsc&}e`RBSi2rTp;_M$o%TvZ>kBc{IV8?OhW1T+Ghv*1Hv+HhBbx zNA*r1I8EhC3_uXykP&md5K7*sV`bjnF@sh%RT_&Rk12@K4#`Rmyv9SBRUn;unT2IV zBD)Y4pqXe9;P)j9pX7u@nam>^(+2nceHG}G%v#^1mU?)Mdv9ry=|zS411*VZIG3)2 zI&4e6U)gzrq`1U@6NsiY3=6m`hp@0ck?{Kxj;!<>4I6O80j%iHi~NIJ&N+5NfZ39>zu2FO#x1 zQR*IBH&o78C#OT8pj}z;$`>nl0qi-%)*)5F6JT{gf@#q)B?1iHV#7n&P5oOVmbdAEE)YQ^7AsR;ZM2SsB z0)v%8I(1k3^@(DL1yCC#CLf>I|A#0s_3;H9d_ZS{ld28nokVXIY;;_T#y4 zVICV3y@%mQhQ-ar?Fk0q4lIepZEI0b^}WD%F=z`@*{3Av&>1po}B&4fmP zks*#2c>!v%y9e~)?D4Y>z3w+zSJef?E{fJ=I6>l*9v~IAd%$2|dN-L?$gOO#%L%i2 zuMF!2?K;b2W#)YH&3!VUxjDb-A6U@@nXthSR11M<2?`fYO#}x@SD@0`8Q=3c?z`AU zWp+yp0g0pe+ZTIE|sOp&<5}6z#U%bi4&L-mP9M*rx~LC{Ox$DZ@{5 zPc5gtrl~>UkoVCylgBW-EqL8O+&6yU^Zb|-7q!>lBc=eN9s9up6N=tCAmXQ~vj~_VLglLIiAQ1-Bs+_9=dpd=B0o-LN_mV8Pq)H0oB#fT!fEyp3Zo zOn`U0&kLm={tiuX93O|xWX}DyODFUVC9QscGKFuWsoZ*h^Ace*y=-4()#p99JId=T`dbayQe4+Jo)Xq{w&~_LZ=IN zyYTSU#*<8Y^5yX7WG}Ss-vff|KLEIX7+Uyu7VvOm;VEu?wRShHKa3%pnM9;}B*&%? z`HTA`p}DP%Yb%d}cqQbUVlgdm9{fkyC3N@ghfn(H`}IYdCCQjR+D2@gx^B(z(`-=$ z8K9C67w)`I>54zVI`5|6$6oB7^p8^>qkhxaDQZ zG4W!$l{LVNu*ka5We*+lrcl`|9{8uTwir_1kNw0qMWc*Gw8RrsfB$1%UZPTUZ|tQ# ztPbB=P|ZaR*`sOxfest`eJxt_KzYA52iUONOuRiGeW&xS3r5)*tRYjGLsZ-#e7TR?1G0+%(OxO&B^Y%s!ve)&e3#_{ zAMS&5k?gK@O1o)g=T)$ohl$Q5$XG0ONw>{~FLC>J;kh;ze=i;0eC;&YXnZe0HZFQ+ z_iyI=IC-!unkXR0pj5Vt0oRQ)=aD7b?{G*y2BVMAwyxBSZm-$go_^&sGaHjFw{!P7 zYL+ATut)BFoqam`FmmP(`??v(iZKT2xh#3DPEWJ>#*eU@dBoed6)w{&|C<1!b#FoI zPo+LA5cYhx;tfWSZ9*`Nfev&uK0FV3+nxvP^X(IUkYUYo#;1*4ohV@%;jA0no{nVz z&^eOp-&f(UV$zC76byB^+f(;p{H;!zj;U}8XP0lg9{N-fLu=8Gq2J_lz58oxjr}Cn zB=YYay{*)G`>4ME%c58GWAjsO-+EC9=#z``3Fhke9f@(k-u9R0H#9J^3&4UM*7T^%k90-KIfYEx~f_&goI$i zgaN+*!~_QX0;HZcQiCYQ{5K@3>Y01*G21Ph-b6%(;rkLhWAXy2XUcR@Na4p8DzMV~ z80TnoKi9g?IS9`V@8o%)#VmsSi9T^mZXf9-uy-u2;N6tk$%VVAfrS3q+yc%|+a9F% zwxJpyuX7NTKu2#|*fuH0uzt(3@cHBEXruU?#D^bAH-I&;A3HMOYZl5OaP!FP@~4;N z3%}xuX?u0A&sRuUSTv0~nDVE)4h(AC5|Wqr$v@`J!$;=kJ45MTLJ~|cNZ>*=;QR`q zIjfKDfHI9o&c)K;IQEqAPM43-@jP*y1#taHE8J;*YXr_|dDHLwC04X3N`2W!1(1~Wr!*h<%awnOSK`o0QPKb%mARL$hPBmqTK z`Yg13#3;f5nCxK!bv5_#T`gdJLP@yN$ZYU+&QaOLZlL^$I^765O@v&=5T>3{5kiCT zj)$)HUFOWx>3|!7B0G-?&l9Hs(a{*je86$|fuHbwTwFh=KP!OwkA*jh!3oWWj5H1e z)p#EcAOe^;(A+%*eYeSYoH${*5u{>fKyF`B+o5pt0u2NOn*n1G%$c|GTK7>FA_bbo zqLkf-z8l`3Jj$qOVMj1XVrd5^Gc|Y}bYub7`}LP76~Y$N3|%G}WAi84AZ&i<`VJs{ z@zWx=b3eso4MD7@pJX2KDJ|fLN07nlRd6G!tfA)&z`k~ADZ>7Tx1{{4V+%HJbA3!A zu^UlE;8PLf6HWpar!R!$xYJVd;1YES0^X8_gxZIcDcrBf%_fK=x9GWvAvAzH zVhvUAss4DM=rDb_dlJSjS17W!m!1Zj?TYMuSu-)H#sYNZIn3sch+B6R{xm>3}ia%p3+`{#`9BX+%b0} zzsD{TXcPM|x8*B@hv1~wdW~u>==We9D;B-M%RFq`rBC2n=qahw?W@AHTj?6K>!sw* z()|a*bvTD}rX$v|6g}l$0hpF>U8Z_DW8=Rp2V#Sshr+0TN)7JQbH2`exJy{R&tk0t zQJU!oKY-qKkYIk#y#cA@Nq&}2@>4PHEe;Hc#Xk2h|3tI^+x>E%7y8>TuXY|PZ%4?N zmvuv%!fjjkc--=oqkE8w)*i-{?qw~;u;K_d zLmYMW7_4QY0<^b)>{|hYa6Viu4u|XdH5T>zC5l%ai{U_@zI*0*C+a z|L4yia;^5Z^%p^XC&ohW&Tx#`3GBPu`%xAwzkhWrD1xT_#&TfKr`~nH%6ZM=kh=6Y z@Ozq|ete74B~{J;+jKrOFEnSb5_)_?@xQmM8>iz>ocBMUO2W*Hqnjy5>VMvAeNi|| z_t5?(ULT_(&<**%23b#05&91L?l5lpJNYH1{}#L1^6kxc@k#vg%fm^oyLrQAJyNwT z{rW-*|HhBY9bW=_oId@FF3^(kdKv8w^ZMgu+KfNj{YCsMt^%z7(t+tot*5-oR0n!n zm-{(sJQv}J{U6wMB!dVXB>szhPx0>FfPr+}&*FJm6J6@ZHtOc}p)mS}FY@NYnxTWG z8t<3$ms=i(r>aXu=7i;mC;Xv3G z_*?)0AOJ~3K~$X6i>B^$QQ>R)^(_y|)BGbu&EGX@lVa_Ze>i_cB6;NMy&stRl-i|Q zf*>8UK7QNqeRCs+$LFg_T#TdZCJj5?PwA)R5w=njWYLh_<6Ve^dXLH_80(#N`9C;5 z`E%~aUL2zJ#3Q(Nk@zz4_lNjt0^Z+N#zTHe98o2@1+;<5XRIbWjVpCXro%u=8q?A6 z-ZPW@aTv-VKSJlvPVoiZGTvXs>?h#1&?y^iMKFGhFbBo~9lU(lH}zDZP|=*KG)L@K(nVN zNmS6!h6J6dcP^iT6?H{XSb3O-)&wSwYlFjaJ7XUq&^U{>-n7G9#t)mK5V8)OGT5*t-vm}!d^e>Y|ZYgg66gf zJ!R1t^JOND_f@-Y8eo=iq^4AC$vpwsAy;d>y3r z;UVutm#{%mL|$TD3l>A+=Hs=rpdJ=ra8zM5R&Ba8aWY`OrDqyGU0J6g+O9L)%2>Wf zseyB+W-&Y_zecND$%bzjcXJnlo+mtP(9{qa+W4lL+KlbWf6XFcR;n7xSlE#3WA{tr zY_tVmW4&uPUKaW~KW0}9;*K9 z3tzL(ld$<+h7U_qBnL=OF5t0j@c;GC|6R!T5{6k|8-L6)2na|G25C9@u3YbC9jfsh zv?#hi+zKD8$YJO3gb0XOiyoJvwzypQU&g2@oay9Yr za(?{(5Op?{UzbQvE2=3sw=Uhd%ce_1IDH8SOxDQnELjq|o9HY*RG$;b4R-T~DE->M z%!>MjG-TmuPKG`FvSbm1+Gah!4NF$8REs{nn|{7U(%M^GYn^5YX5oy|D}-BrOCs$UvZXW3! zp?hEKKE}G{2E8qT8}aCCrnJ*%?pGkmvGoF;%lAu>4h8b(c1&S}7Z6bI7j2@zqU&J^ zj4z(Lm9DYmlFZSyR3WotLRTBaMdE>78FF&!UQxc{VT@TNo_eNHpT!IiokjDz^)b=KEo4tN82WNXsLUSPBiGjVir2v|Oji%sfb*`f(TG4!%(CJiB~SHN1Q zx^?uByVZLjVib%HNdYMEQ40GgSP@}10U8jQE?f5ik-tUIq;J&455XD@YZ`q_Z4!)_ z_3c^UVFt+(NV6V5JuK5y_Zudv+iZ|%7(iw&Ydl5PFykFjtC_iPN1qBu`PieGlx0jQ zsv1{m>uu#$uX8jQT?Y>C1WoMeZpPIgHr|owVy|iFVg+i8I9tPJKzb)D$Sr8^LAcoh z#ymgUF>Gn(hLv)hcG4wf*so;OEP+<{MH2Vhz!iKpQ#7DuW#&t_4J9pNCL(~%VRl~Kfl6r>O~QF&9U-6vy3h-cvl)eLoFSj`$Cz#IJVxTwc32S- zgtg9ar1TCWd6}jROLi}PsDFIGj!jN>kl=vNzTjcL02ReS*g!IiA!eLkM2RVKg%dM` z5_e^Ox9dDrnxjIQ$|NFcBTT}`uFEVk3{;8ndEMDgBIA zvkQ4^!U_xmrcK8_tz>NAf@S1nTCM|%VS80}Ik?YL*kqZ2nTIm!XSiaPZQ~rPiPvV1 z4ejqNBS8?%0ScRbhB);MFVn4X!W`c85)Xm;(wPasn`f1ORE8vOH*eDsWlzwJMAqh^ zO{U53klqP7C%N;t03|zCs>Q-|hl+JFv*d4KQ6D9(gw^1$OA`d52a{QnFm;ZY1$x?(dpo#en zS%bv(o%g}Fj6-nR+I(65F2qA3e&7CmQyiz?)0uL(0w%GlRyiciQx>r+7|GwtTfiUm z9MY!(R@JZd61soz4`4kfUe-5eCR^=(dJc6z4X!v4hqgT(gVWPRoPy|hh~LjY_Qhw~ zRFjUS3pWY*W7LP*9!lLPia+XX{PuV%X4*b8j(l+fdQF>cRP3|&F6YK$s*YFt^m);h zOTWDip~s89y*E!=^Y+Il%8wtvwY#;R9!re6XayTUZul5%gEq*IKmz#K8A48zu|we* z)O`^C&@OLrn40O#Gl6eXjNwq zUfmdpb<|9E@ekX{q}9@sO_2G$wq_$Px0nSzKE?c9yZA%KiEq>~ySDQk12IfNd05aC ztcyETcUt4f!rR8Tzlinj$|QjbPE5|BSq%c^n?+SR!5TscB$S@Z{ZP(TbkM*!zhr(! zukyy$z^fD%W71R%{gv~an5hSg3%KUfd)U@vx$iq*U>6>yYF@%_eb2{7+Z^#-;+7g&3#~+WCpc!Fszy zT^>&;@&@U!$xEN(PIggBQ5dDj5r6I0Fq!TjX-JzEjG@|C9V~0p*n8sof%e#jNM|5X zaauH(hY*ge7CSO@=<{~ti>jA2FHw#rmYKYc$e-g_U5feGMS~wKD3I1g2kidEzT}V9 zTXRdMQsie;mft&b#qIXo0)(m{SdMMrN#6K-#2;7Bb4a(N783OeDNUVOTB-&lrsaf_ zyEy|{J@nUZmWu3$;HKHUSO7=Q@@^Rvni5(rv&Z*7I^tn_w>Y@zy`}>^&j9gLrupK9S zuynZ>LfpILmJZu7%S^-$Ih6*I1wz>lc_gPKKyH~xzAwgk0e!=8>H$$}+zw()H`DvG zJKD{#L7{09?$7vh?#k?jarjp2*U_K>^Vn<<)!|<05Co{~SWCD)nPbsUmqdyV!Q{u% z9&@Qn@*2L(2IUL6&J!a%A#pz*hId$IJjpQl4NCs@&={NgCy75Ok@J)p6nUneY2~Or zzccojZ|1IPi-%x8Uz6Z@BJ~vJvHJ$eHt@Xpensl3&@?7dox<91Z_{gW&+0zr+r^jP z)~duwdvMtg0<*W*IThParoYZl$gp{e_cM+{aX-T@_}A2EZl^!t+DgGEk8JhA)|8O3 z<;WK&K8lv@tNWV!y^+!I=O}9_h!1odkEw$39zMtGz+`_f!iPyf@>=>F{|6=XJ}>=B z?tlDA4AnhdWe|+z@e5FSH23^OepHD3DY0K`Sj#VRRYmq-gM)qg%6N$oY(SUatyuux zr@_DR(*oae{0=S)Nc-vZlw(c$DI|yK{Un=(b2Enxh)zRmqRgdp*qpZ~CpLEXqTtjH=@GxT3WZb- z|MtZBXz$TV8ok3CaB0qTHmh-2wuL#iFxt5~S?|}?#gw5UkK2cF7H!xW^61s{Pgdke zuE}8tP4OIYxI|r4b24sbQA3+DN(XnZNYTvv$AJI?u?D(KWW3Ex{(IjOXL(g2!?~#T@%b8-8g^;>Ip;G2-e>N?L8YQf-!)g=z{sjKlCD$wywNLXCZOhbT_Mj%EoYO_#7p z1ooI+I*MXqgD;XRjxRgun|A(5SLuHFH1=?d-6R$G&Ap*;!^hU6b-Jp~eYjpsN$mVg za$qtOu-&*xc+2lF=RBTtkK`FWc_`F;Cb_byJZi$7N=8(b@yOQT#A;StCGgyB;w=g+ zfX3p04$xp}bA`<`0GOIcx(#kTBY4`*WV`b`F^Tis7psXU>3=@8$vTCv>riEA8DSJ5 zQYnHqKrbDDwGRPiMxA}t)h3N_z9lwFa~3VI_9X?Q)i8>0k%kizP#z^mvt0<^nQ~fI z(8n-$iJkI*=(H2`^<@b~)ep#`pX3NIJ&AW+j5J-1?lKXgg1c5gf> z3B9eCdxroK4<#0qm=+)bOh)!?Q}hSOJon1N&b-|YbcZ!k!TK7wMLIMU3f>DJvAgVG^fqeDed|M8Cq@hXg>^#iG`eW01D!Up^)Y`BMi z%aFe2S$bB(^Y4nv6I-7-#d)`_o=OpBzibH}C_(AZpfM#;s@+e1Hr3 zQ`tsgb!HHmd}v(9bimJ?6EHfVbVbQ6^KkD;jNV^)lt!9;9!uhY8h z^Xv)+ivRcj^b3t46deE%ME|NTcL~JQBb5WMx_C#Jrq_CS_^zf;j3ToAE3~oPkM#otH{NC35%e-ot z2_VqhDfy;ew_eLMyDz4B`2N&D5mBXu-DQh2!(slXQV*VN9xtFv+sOBO3Oio>7vmIF z&r*Uvn+PJ$-M|P_ay#EpTD;#QJ;OO=JZ3nYBa+y@U&J>k3m~G*f+=X>;5T9$pp_u4 z;U0rguW3QOV>vF^7r8M3g2DM|&aOp@)@1%1;yKp+@N3I289xG_+r@WW%^zrOa*Ho` z+~i53mlI>D>M&YmQ7~PjQrq{9%jez0Q?ko4bsHiWja-TZXJt9_plN}__9DzZ5LLgU@o2S(VlK8DhOX=I|vWX#y@!hD()Vh{w-oMpQO)*u8=3K=}MN zc%eRlawrB2jzwWQ`cm}Fhi&|hL{LhGl4*?FIK;Ogr3|ZKRqMnTv_1{{?Yfq6LwxPw zLrI)B=UF7#O6=HUJEQjywt5gP@#JHIc*3)rU6yRkJe$Z>N?9{;Rif+$GqqSf;RM}D zKp@{J_GVa`tZ<;i&K<~u`-b!oJ?Vz!IuK z&=pPz#w?#;P`>5Bc{~NiCDH5rNhfJSR&pKGqe%iZDB~(q47f?L7et#A3;b+U>}fbr z!o!gh)WNGuAekg)Ry9}ruvts2(lK&k+TCuY9FXxc?U%(i>O}Nn0z7LBt2`4n#t&9y z;kWKKRN?^5NyK{%UhA-m#%q2!fMsfqhXe6{XTOP$s>)WvDR@1jgFD6TY<(-32|ma5 zs*ePoF=VJ`k$&X%2W7yoVi%;KkhWYWwtt^Y1wNSf;TwY_^Et>CCkczEH&3KS1A5FJ6sO z*~e$NRueYOsT0CpmeE^CKbAYNbCLlZr8p6C9ZpUyBq*TnV0>?fU6X*zqG9Q7Kcmg^ zW@8ESM^EhFc6_|o-N{Q9mD+h-;vcC6GIi>?0*SRWmhrC}uF$7bJMbEOUsn~MSB8C0 z>ZF5`rZ$_R@MS990!)A=&j}9~9+J{^9fn7U*3>EB6*4X8b|AG-#Nn*q7t^-65a7<( zdZCVn(asNGzv+3`l+i>=!2w_xKugJa==y1M=aBk#<@*ng^`*xNK>n<_Ljq{L-XrJM z04L9$wo@18$jdT-^}NjdW-likGGvl0m_sMf^W>FbFNak1HIld;^2AS@@tk#qMEwkI z^fNU8K`@tU_hZyiG7{3*Fz~%bD;dQ6${G>F3@q=&F-HX9$I4gw3_g1bf&_HleEsY4T(frXX5qG(KC0^nHavSO>0 zK^nlGc793I=*?O2N3gDnLPHiM7qE1FZ{BSb8mFjT0iQ0&*gcKIj8rY*9AyBaQ3~GN zLe@lW9C$EgneKv-hXQHj_`qa)UpOspREhQD)3gTl<9g|H8R+nr#9=UeFzKO`1vj;MR!o&OGYqIh&jzyk6t>Cp0!`+U-T5pui;pPb>=M$3S0 z;QVcEn-wOP1pORa4|Z6G)g_EQ$;k|%d$crV8=a8;BWU?tL|Nct0E zev?KYD;pV0snG)T=@;Qbo{oKxz9X>pXFa&6^%Nmm3l+D1xKBYWnR!tP#WGvGT3j2a zp5e32avprLwCf!tH^F&~QICM#>{#L9q$p)=NL-8#J<_y5bb!+Vl(s2|a$Zlo-HdV~ zJ=Q!_*S2dca7%KVADV4YZ8ys)oW;BtG7tCa(XTMk)03#St;xjhqTf;Qdk1k!*5PFQ zKot!&ScaO;>ZK5fn)~sKjv>43l^-vM=KvoZ2q_}H+6X}T=rH?*uBaB3I^2X%*W-4f zw>!Ea0L4Nzxn&KW6w>iap!{}{OR7ToQ4o??`WhyjZLauFop8w09xWmGv~x1jeSiC? zU_nC5$cpV04^W@~yn5Bm+@a!ocI=+$XZO%XhoSTcWw8u7{>FoA+t`P~DwCcEuGo)$ zj&Rl;3^MWq)ixERohdGJ{LlaEe{+kTe<~;SG7FneMJY6;{`^$zC zjb49xpVLrE!|#_!=3mJ)1SRf5{;S_^JLXrH4Y_^~j&hRmH{q*bmfKs@oId3^Dc~(J$$MYgUd`NvKi=|PX@p>qGTknQn(%RNdZs6DD zE;4!gW?Eb@7yI``<{)^*9a*;V#UT4N)T><5;NDKU64}tcw(Xq87?5Wd4!!w9PQB>i zV7?5WZi2yk0~@)|m}-lnx7RoXJUT8?25sO=SX*gr4&AL;wlHz!_V{k!OO{fMs5dYa zr)WHkFO9DbkAGaN=vhp0Fig=W()dKYzQy~^8~+hcY0#z-VUKpv>ny#mT976^o}*2Y z6g{txvvio(j*4hEtO-A3U$^2tJI=We5eCV0cZ+yao%?rU`1Gu#99Q1fw_Dwe$UQx6)v zRD0GrUAS&}i&O-DCPAYYh56pZp?Wd;ooL^tIi5fMoKI6Xnya(CQ%F?3A;oifn<4a@aJ5gmn(a%XqE!j+?9YfpTmn(`B5wc2i3UPk*;w( zP=(8O5;?#1y-X6T-+P{BqiFaT)YW?MPTCc1*=5s}Wyb@^UL3Jz-9$MLV1RP9jK}~b zW{N3~xKm()!cOyW<)#a~iYLx5d^*5jrt7xU-%UcydxDXc(-!T|+P5a0`-|K|^EbbB zSMBLT`c$Gt$E|#PEHm*@im|pnQcT-p9|jmEMEVPq3!h?Bp01JI znVwurlm&-#vc|jm?^487&gP+f)MFo11^a7LuUVPiU!T+v?*2-`{!F`BgpI+~D_!Sr zU79~GA9awe!E5Tb-zpdDHM%MM^eg^P|J(nNkdgejb%!AAbljfNb)@33xNRLov7eW2 zQ{NH@_NQG3Jo}zCh#VdV;)9%{U9^Oto{C1n}uL z1R@NR&mdRf#His9E>Xn-7C}`B=m-95tcVx$XLaTgj?W)*i>F{xZoW z9PQhPgCSqH;4EpN-M27Jc&R!NmOnDJnYgEB)gcp>RWGBV;{H!!E`a?GH)9K(@ZoAj zTtv~@z|1vC9?;r8j;UE<%$o@ZmkVnjF#RUzY9BW!ToNi!wl|?$`@FkSYiq;eh0deD z&a!KLcsQK>6a?NcU8pTVZIEs54bkv>a|-LQOl=NRAV^4cQQEH>hL4sF()yW~9!=2X_%_6}jnt$*72;$8hM(pRiCwOS;gVX{fnzzZc?U%5a z7LYK%-{r!aHD2Tm@vZk@9$3#OPI$b+Mb4Y>jA;*Qs~U@}qfW0Y0>NXb6;4VCn(O5yh(F2tL9*@qZy0$K?)N&&+>+F`zeZ1QE z7MQ8x zB3Q^vxY&!F++NNrH+b4va8YKll9`h+yc$p>1FwkDdWwi76Q+BpYJXFyN7I(LsDxt- z3aIvWiXs8awPUWuW75mXB{?8vXylBYqWC71w1Ar}^y5d+ruCg-vDGFcxC*D`74WP_TICX=5JMGdt|4 zv;EAI0VY{SnPtL(A5$W{s|4c##j3TmZ5%`+SNaM1pwGk&g@$tM)d${W%hmzAPy^El zy&x)+e9rC@t2Y|(AT6vIyWjm>f_*dE%=ch{FT0Wg)T$`0g7&sVq08bT$^awns(R0f zOOs1a#>p1>Ta-;cg%gK=2U!qL4TwPArJB3ncS_xhAfAhvK);MA4-zn)ADy1PS49q%0)cf6!d`)u=b;|AsUEMjt zx7U918jgUbr!R~T@8<>EFMULg?llU?^0nNISo|8*X!b6cDB3jpq9n!L4=kKs!f5DL znMHAw-`?G3=xDLQBk(`P>`>*ON^g!mxMM_TQAcC&I>c*z=)cNcaiL!v7fs%~QT}k{ z7%ZN=u?c|Zex6pMdJ}W*NGo1E=tC{w7-^=hbqPqe|8nm1hxS$Sk`x<4)$e%se09_1 z?Px+eKUV2?ga7$I{l^HGO`B4RUbh1dP(gVGN8 z@>pmav_ee+OaosExz4XEda!UVgzXtaf z!70-0V?(MJC<`+DAfE#kCe?4!##2Z7~d@i`VmyBzrvIj8B&V zm%BdrtsJMRGTi;+cyFXn=RxSF=0>U)U!pc0i5jIK3wmN*k9_vZ6IdYlK{WZ^tGQq>3&tV5 z!imoIGx0Uwp!FI!{`ZLnbcjCe2hRc|QoJr?+F@jPWbP!jGe~${JeNZUDsdToH4hjq zK)a7o?y_Z0u=M1(4AFE;WpK%Vm}IAUj@ma_#oWyA)J%4l>W^FG@(NwU8Nwd!JWr=W z(RDIQwq~zkDu&gbx9LQ~?%)YgOAtB@H~t>nZWo@%vt6fI37(I`+m{ExerOYpoIbsW z@yBCZjqJQW@#VHsOa~qu`nrt;7J#CGelEWZj?^g;GT^wXQC zYDbda(cuyJ{1S?dxCP?aEX${S6ie`8v4gknlc@_Dno)#7J~Go}zM!=M?mUEhg#26a z@o=sB09-($zl`l0IaExG+l(wXnP=LjTp;s;L!wXXu6+-(1k|u+a!pmzsxTVfW~poY>Ul5Ubdla8 z?S2~2dcRo%%ptsALYcG}Kwz{>y5tO35v6W8MG;$Grk|=*(3gh!Yn}IE<fRK{9L+? z?gDGP`Z>k*yUC37?)dL^N?dO)|D{yKudDIi9k*YpCE&--qOmJA`P-oT1f~vTZ_(de zxOEru1SnAET$u1?`(eDjPwY=@wx^S}QurG3}H4oLn>#(kr}-&Mq2*uX^g zZF7R*r(!_zSr5<-z!fYe*cTLwv40Si%RkrRw2JMVJP?_Ti4QZx_f3BDYsI!$tUn`F zU>*bx{q;xG5@I=d5MiLBrJT^$%~(dyfE4Qu+R#beUQpn#b#-diHAcS=5?k`KQlo#o z6>@@*e}%%v&%Pes+Y(Zro29N(cnsdhbwlj#Rxyw>XkB|!t_zP~|9B3e?Q0elU4bO{{)`xMwnewsLGJX8aP&?;=HPXiwK8rU99N(f}HYy9CHNLbPyh+P;|+BijnBdLigs1dQe1 z$3>IrgOHTS^G2X4Bw|4zP)>HfYo_=~x5k3eP()?j#lUxy=b3W^rLrL^scIr<0r+xAsvgLVw)&?$N=8 zTw-9-g+%%w#0Zt$0lFfi!xbX+V1dvFr-4gC=euCDq#|4Wq$)RQio&7?VN6wv9Nz^_ zX*5SrP6;s9_ajb9Bb21sdQ4Yla;2Xw8hy5`I2Y}TXFFf#jGuzYuAC=RlI4mT0s=g_ zTYyM9N6_QmGpf=o3_k|+o{d_?-pmCJ5( z+%;A8>e1>U2nq2Em?4lDF<=4`vqmjOZ@>^S=)cyl>s8%*&pG>Sw_L9DE+WJ5eamAI z+GeA1VD)fCEEXoCXoipq&fjN;BG9JAWDeZ`J=?`%p2luS{E)W5i^P@q#?EfArN(O< z0Xty3cxuMCSHfX9F2-IkEIYZuqIf;*F(lXqV3^o6hhTS$VNzkXZ03a~j`)5Hbx5BE zolx8^8UBdY(IrJeSw>;cYg^aAqrbtmM5yXk=~$(&7dWAusM_qp@KIs-bn_6_+x^uA zL>wyC>iYxsCqHSa+2cKv7G0C6UwG)UIG<0ak!POW!^Vx~K1CGcx8tf_>{W{x)t7IG z`rT9XN#fyTm_CnUzs4nA;b9C33D%c_hpV`^IgDQwR5EHQyVX>DOynL8a$JHfv+rX( zX}sHarRRm+&W%e7H*}2n{fvzV@C4fo>^G2C)9GIK0kF5=EPxCs3BW;JKR7C4p5oxb z6{jm7qjCs=KPwD;I)cXb6K?`MY-2ch^}b_HH3dC}9Z_!=Z2UCI7-&diLl-HwqZXvu zI`lOj6+<2VKmNDf4c&j-wzsT>*E-5SMVI;qeKZ8ElGKm{tyY)0;v{)Xx8q7zjHIP2 zrU@q9*?o@v?xp^ix#{B9^z9?S??miAhmCYof(`-l)K(keKW-DN?nhrpcm$|*Ct*0+3OD$ zrhcL20Q&wgkG3-^PY!RksqN9P-}?T;9e?=4mVf53MrOISd7QjT!f)TpwcQW$?`yIB zH*l6_a;ubwr&$p^is|Mok)h`wzcT7>K8&GO!;PW--?&^Y>#Ad*y?w7Utb`Ao6q3kxH(a-}tza43;Z_zTr$o*&hoWE}P(46xYq=#FlJ+o`} z!0(%Wy{%*NCl;YuCh?!IVCkF3ZGZ>9uHTaE5moQ}&Ti(1klMw;FAh~~Vr6bc6}_dg zo&oz=wqYzaxBi#_8n*2;G`E$Ojo5o}kg4SDSQDFi!!{#z&`wvkglyd=n_v{Myv0bj z{@^#h^5U{npGmUd7AsO)l9I)=(`s?`7wiu!&BA$3W=|{A=UC_~H?^ticU#8mU?On#i=9ScdXU2@9>C@?8ev?Cvozc7wbvS9BC87$ z`(R9K964m z1(OTAOWUgapjDaqyZ+Me~WgwK(>aHB?bfcEjU2ww@*1AGjgm1TrWfvvWFg$f$ zKxkph;9jubsfU8;U$NK&79+w;mT@Q<9~vqHNTElCm1jj0IAb|ZaR z$^hr()NhN&cAYA8>7O@QJ{M@r z=WT~yO?HAX>W`YFqS$FzZEw|Zlb@ImZ930S6N@y&cW?=}^aSXgfTQ(*k(9wpZQ)P2n4?Smz?2g-_NGcXQ=QV$W9l8`z z01rOAQc+KPwR6ind^`uaPVwEH&CPz?J zpL@!%@jEv$kT0HEVPfXl8+E>gLsN)3 zkE?9zrbv+9QoCY-UxlQ_=sNZ~m{blGiMD_(KDctSzWM1MlliTFFUhksMKS^u^`+x- zIbw)|G4_-3Nd^^JP8gbY2M^VPs%ewtQQuEQEFvDfW(8;2HjTHt-DZCl!>40pKQu~( z77u9rv=T5AC9bgO8Xu?4WL8By7*Kj7Fa-VR_y^rPF>| zL$y@xPf(K{t@^Ug^xV&bA07a94S`Jt#rQDpq@A0gO&K(26G%Iocu)H)0FEw->%-`; zf=JBqfcRjmgGta3{8nmfo5#Kb8S6iU;bM!`=-R}SL4&U}TsazZJAg|HB0W$&+X<_2 zVBNt96X6-~sKtrH;4!OG?`#Aao2lq7y!oHJir!eiI|l;9_(s+zERf z#*xoFxnqiQ=qxdmMC8c=*bH!c8k#W&EtO&FW0zaH#zd+srFCorB0exg$5`XI+ibsrpcF>%&kkvG;@>EY-qZi`sOr-y#eb4Iv0)$AE3<_ z1H$1kQCiLt!tjxd`LV8G8nRRwpUsjI0qX{Py}Kz_g$)cE1TM}>{e}{n%^^HGP+S1= zN$Wu|=mupMf&0)6hEWQNfYpBw=YEs8n7mC3H*;lSOMBnL0bWjGIiWorJ@3GYs$qG& zb&+2uyIsU{!aB^{Y$6jv>dE()r#Owb696k;PW#u;i$}M+hF%n~;h-l@K9MM}hogO6 zNB`Wm@b4Ica~_9Rn~K)|2VlCOUI>OQbM~}TFFxWD^VBc{yu7u|wxTSkz7+vmtui<= zA6qbn*MW^MfNs)t&=EX|n;E@iJX}1aaTl{WQMXHsE-SpW8vd3P{_y@*o8UTvf{ZSw z-^auxa9ZJ1xw03A`zgArkr8)^PrrN~UAIn15T(_;n8${?`?1^o7|(P%cYc;{-|_$T zFaK?R&dg7j`MjGHp{u%B{n~yHN0CdhJpNMr(Y{mgu3>e1`1fBJzYjYy(;@y<$Z2~f z-9sC`otl_%b7#cUC!d|7E+1DVb1DA=Ya2$J?`pfvSI;WFk2-txIx%9GJ@VJ!>IHuA zjW*-C?x!5OO@_Va<0g>i@jeORvHI2JZT!i-F8hG)<~*eB&&rDMkCJ>iU}7VRd(5vN z&4_}x5!%%WUiHpIEML72e|&a)-ge)n;*NU&%5%Djrr)PAN=ie=AzS;^Xk?u3pJ)x> z)MRE)Xq@Fjwnlvh$M<$qegnZ@12*Bv7@SVLTzfO4LAg2hNbB;1*WT(~e{VLKy)^W% zU0a4Mw%1}}acXaNyr*?Cz0xsd7TU2p5uR?pQW{*T|6nej(#O$~CCl@A$k01Y* zw8zVNo$Rm9_aUZrqni&=#O5Dvp9=b z%|b?gVu;NJj0twl}2(w`R4x;+Mk(*U^&Z-oQd3Db>Ir~;_08Wc%|Ikcw@Pm)T;y%IF6hclwCZpe)8hP>JuX_A# zhvl^yDsecmW?^~(jzYO072UEPaRb^inNBY*Muf3DQMl*LH9miP$pbrEA8sxORN&vu z`j>m&rdN#87aGv_=;2FA6?^wvb6P}B&%bjKPTv|||YKP{= zu(BFrmOu=aPv}umo{jkb{g3~B7mwondCZ4mYp(C&g61rUDNe#i^g2hIL~0vVpV>AF zC*8!z$n+BjV?Tf#UPt}tZ;CM8hFAK`C@1SV%uSYo2=ke ztl-i^6Z%sDNNR^PQf=UA8#UhiiPJS;H2l$|_6u+*sDaBXd|nzo#wcBWoiO^4bmwHP zwWxwVnaj}1{dIAb9E3?z@R#TZct7Ce@7u2vM)T}D#cv4&ZlQ(3y{mRtfkD!C&d(mJ zJNuIw_&&%&%dP0jGIH$nn}v&aVggDWdXMvHr)ILdbJ@=+{dBz{=fP@zj7WKe!svdk zf{id0DjvC%%{Cyigx-E?QQ+J(RGuiTnlW@Yp$?T#IV|4dDVn0|=r0dt)`VOZ`yuPe z@hDyJeHe5E?SP6MTdne{(O5?bad%TF&7@n{>uRY(7*Frqn*#qFPI+pUZmirAJjzAR zllJi3c=QgdaZ>4nVOHE5Gi>r_ZYOVAqtG)6^E;R?d5vh0TQ!L^7GlzoWeP*Io!}Ui z!4}lW&Oty%TiKjok3zFtk(j~adsht~43Y~%RxA^^K{4}_n+J?K)g}$B(GZ6rcGI#= z1a8xa>ACcMqI=)dVUv)@g9!jfFw|o=CnJ(*@H<_5>tq0Z&`bdiuq^AOCRe{fJ@ADw z6M0C8hn8WTml2ttLI>v=I?_8XD2GEl`opqf zYm2*4-eTp;NHU);!wpH#0-!tu=%xu3X9Ux6!js=C*X+4BLYO50OhGomIf)oe_0>Sj9;U&Uz=4+q`P%;Ob!Lj-Q&R)Ee&OMsl{ zr`aDm9}JG+Aug6EzSxexrt*dluFidmhOgsyNhC$v#aptu?-M?e8`Xr;-t&{L*g7Gv zn2$-P+=)O`4RA<2wd9Mo;kIDB9c6#(`SR`KF>rePWxO}FcXNagkK@=hI3G&p8t&70 z^>87?+`b@BTReW+#L~J5IP)2gG@S8lodNYa+sfWb`E0`I+z-IN21>@`1nprxck!C| z%6}=_fd3;YAgJ>wDB<#c3-?(n!NY|r7kVPXG!I`DUORI>&B{s0x&hJH(tp?wKw@8D zuVGYvtg;dOlDJ-bEA=9t`2^k2^=`XDOTHi8eIj>X@70uVkt`AZm;d$O-Ev1x61Ay! z=?9EGw!L$9`KQE7E~NBfCzBm4p%_KICg@mGInnHWe1-Ba!XIwsN9VfhP>AFhCX;DD zwwoY1e`@aU!EwUGZ+*UdZCP)=*1t~UJM2ICt}ODP@qGh&uX}h|e(%gu`ZixaV|65C zQ_8<(ZFruW4#W6a)Fn>)4hN)MuZJS=w|@usm@*y>XgTkXyRULJqg$H{v7gb#@NirB z#*Co%_z)~jQEjD~ql19@TNNS+`+YlGC;Lu=0hpN{Hr>Vd!WxeDF~!aAC7U!1lOh|3 z(srwVU5^dVOE1S@p|o1*JN;A}Z}ogMDmz)Z-fSM8ls9}%@;{1V^O=|~@=Jihpk#h~ zV8@=5ZE3Go03etl<`4So^bdqH+>T zK1JZtsl_bp#?jD}AT1GKo6KJM;n5E#t5zVjK~cQ`v0Y7##KAfrmA8*&RK+bWwqQ4S zM{nHOjSohOV{~legIngUsYX&NB4a;jyxVAm1f9&D9)NPJpCYAW-2u6Ep-=ta>S`{4 zTrD2jMF7;b*FU(W8?Drb7%l%e*TgChrx(|id8*z|jM8cA+3xJc*KwK3ewlL(La$c0 zTC{xL6Z2iw9+Snz4c4dG?S9df96kOZxVOK$Wd*tFx;SO=d==}k(;SO=iS&*T<0%sE z6JxZGf8vHup+mi0CUp*+*7*h=0~wFB(i&PVPkQn~1z6~C6R7s8B7-d6u2)M`;EN39 zythH@YN2P?|H)x{Qqw=*ymx$-E=`PcyjDXU8Y5@naA<@T5MNi8L8;nLp09SjgdZP? zBcbY%4l^`dAwvCuuRMPkn^^-9nRhM4L@K^c!}lz(t>6HK3sNLlrnLccBiA3IwMXAk)p z-q9{vES?3f=*87u$XT)3`rj*r0%RRHMIr?99?i>e1~`-}Mn;T#Xc5{hG!3TBC{qx= zSQq-2E1bbMsn%i2Q+!_fSpAu8LH*Wl3?TCj3)N2xXKzIA6 zN7>n!{j3HG_I7kG{y5cD^Xc=?ukQ&Af9#(3H~;TWj^zE7>||l;{>$jY_+5Ux%dCmo zVxQ}!-O*)ThIF;Bbf3BHyIJt^+w`SA7{6^p?@AYH;Iy)}I7YAHANV=?0?3QkxGB!B zPdI4kxtP<>yRh=$3WX+E{`O&p3z&7K>sqiXBomZifkGv+hOOSIcU8pO}Q7GK2x@waI51OEogh4u=6;NTLf@QOn!W&G}ql( zFNm5UGI(}`_2SX?LlDKjRqt_G=|M+p;e8ESG3(St&F+uEa&o^P4a zZDm;K#D{Tq$u_|pwr7ycloeqd_)W0Mspa9rOiZyZC+1kAD%1_Oj~ck;_+4_W zgQiK7^g_u{bzY&(#Dcr6wJ1W}CX8oeB>XZSEh&TIsaPlwWSk(w+Dq?%oFER3{JXq? z1%0^ruvdx1~8U`gvzQxSWfth03-NQ-6_ z6ZU?v=(JO@Iwbn)K7n5)x|A=kpc_b16HqfElU?pJUlq0m-r#8OY-a z@L7VabrTzLk+>;ncPHbfF7@tu0Y4Ggxo)a&?rAZT4T|*aTkx z_#tREB{+LOea?Rs9R{3|>2{42^_y_^hbhxH17kfAJiII|1UF(U6NNi9p`MHyE!Zqp z?pYvrHKPZnG+*+d@;8d)fmYZvC8t7rM(}J zXZC=1+n`gFQ&!zL-}_cir}hK-$uXtwNinfdAsUzg~r$seYjT0xJjok~bU}%O{SqD2Sn&7T??7P>|F6lnj%7xH3t3zq1(= z73}d>f8%^6^B2)J>f`4+WRlhB3IM9&IOPpB2c49T8KXX>0bP!KR4HO}RtB-p_Id_@ z*m$+nfX{UZwA9^HXxrfy9ppeg$i%VpCM(DVitti=XP$q#YNz&p!;fs&b+K7Z$vMNGRX?JpJiXq-!Vk+8LaHzcmln{3ItUpk*`yKgo;V*J1S&mX1f z*7Lr(9aWH9U8&^W?2?CX83=WhK76YfYwvtMZlmeSS(L}$nA;WbkH&utre;{0WN_-^ zyDHiGW&SSxaJ>`&U$Rkr?{+J}(yW3Wlv6U7*^2GI=XX8jHfq7VZFB+c-NjJP@Rc(%a5_3D&<&yE#~#kH*bf@3lIMBd%S!U`Mx=I{=-1to`?1h zMTUM0UH(o>b?c(dEFZok=Y1Yt|B*5On7xkIavhH^r!Y+GPVIKa=!f;{Sn(C`9Ksbm zo3AT_l%LXdC8ue7#t@jU89z1Dd$Uyh+l4_*r+7L8@y7n=-LH#*Gk zuBh9z@|?_>3fewd8~8l-%l&WbV2bC;Wg46AHb!e4f`|Mim^YaHsC}38vh+W@Cm|b} zZ5L}SycI}h$t&Z#sJfjuT|%d$?pF@HKG%FbPv;I^*{Qf$Bbu0kNc` zoV8f_p2q&P&K((0;vkv?@hzFz;Grzyo(G^Z)>p5-I*izcn)mK?Z8Z_;54KFzEQY}L z5u%Nc)U!VeUsr39eEkiudy4mG(~~4k zQ+$57GRq06BDNo&8%g{L2 zggU{YV%Koo7+ZjmfrQsyY$nR-uytqeHRLGCZqkKGRng__@(nEBaGzY;(f_c=Ro}{B zaSnPSs9K|W(M0&*>pxyZY8C^Bc!xa8JHs_E;YB^9;g|sbReIwvG(>3Gh@P2d!f>2d zY~#W+=8Lfxe~1HJcywT1Z+HG|r@+3{d3Jpv7xX>)nZJ!G#r8HXW=Onc(=Yzvvj^wv zEsK6;uU+q^y;$)d{}vB(F+BFS`91(M3~tML*AM%W$&A}#tuRkMz7I7^S<3IgvbXDw z`d+mZC0#fwj8+?a3s=QDyQkwg*bDn>Ad0xZOIuKm+><{?n5_S_%VILYVjX)D3X5RI76$^>`+q{~FcpuI~=)Y4hX9vPAu-^J{ ziAW{7L+`oAQ7!hG{ic{zt>B9GeLUG^(vnx!1Wy4n^2xKB`|RB&usqd0iXVWTFJN&k zo#sh2d5(j>d{_b0d8kw7WnB)5qw6?02i+Y6D+i5m&bNls5l1DumdSv2k16p8PMLL(|s8dFNY7OIG?tK61Men>e?P01F>s4;;qQ$OUmPk~$ID>3< zQ+y%c&Z&*Ork+K7l&CHj>UN{YoG*PfPMXBlkAfb-9J)C{QWY zP@`?q2C}uQc_g61L6$9xuvRNRaopQB)a^jx31KQAFxyQork;aoCB6QguGqtUEad;88c|M$uuj(;L=wkzA7^+EpmMv@^?L(`tG)~Dm+5T z#qw2UP>44-w?mFHrP$8L3R>9oV0PfPj||lH4oAyu2hJ@TbDl5}?A@{~pz{O-!7z+M zfqPS7!&iX$viC@mRnGH}Sega_*CmH?z%XgO1^a69JZN%qPbf1o*`j7 zezDf4l_m3C<3Vm{$RLduMG$)}0VgN#2aw&pC$hw;)*-fI-vyzHf#%*rB^@g<<3+&*AKATuwo?kyrBZr#IhR<2jPG z1(O3$;jdGpVD#9{BTP1|{ne$uTXoct$a-1wR*ZbAvx-$G9l}UmFcid?$Q9a2SAX*S z4&;$R&}ZZtz)KW`EUUTeW$Z4?1j0niQh(oAJx0^}E;wuYIxnq&l|P$@{_(uGzML+x zTR6RF&cgf9E2$46d1Dp&)q6F$4N6p{9c#ky%X*rnhyT<6{$DE(aoWTWV>iXw>B0L@ zsfn$?=cAYjs){R&ULXAa5dZ4CvGS+;f{vbEMW<0mWi*r5Ir586ZA8v^?YV|MY%(~n z!Tci*P@_d>of}6LPSqFp0RLXL4{LY5O?&VD8;TF0xjWp|p*LRWUsTNPw%-d}oZh1TyzfBd-=C*&&(B`t zF6Z^I>mSL&D{x`N(3q|4MT;OH z7q9aM=dXte$9sa_%64tr%G1H?4na&LWq_V4mEK{yuxPuemt#5AahS4(;Dl6n#gg_b zSlQhtcB$UO8qa36%b(|VSbOPSV3>J7!pb)u7WT8j%=)){@F7`RglNOd{yoNCFC&LP z?5sMMbatRxVDGNLuz}SauN}8M)vV3sl7MTx>j#%^6J+p;ZQ-v0B zifd=yfK3qTZ_ccsSCh^en~w^_+1!a9tZ6p%3tDfJ-&W&&pL0D0^L?KGo;6;(BjP$v zu>9P`uEEH!^GF{-;gQNiB#y4~+lRrDgKZK`zo*G|aRC{?%y1G)d=b`#fYxi7N#A&{ z8l0mM*kvaA?!!Y}I^=2Ntt=M}ZUs72DR<=l4;Imd@Xx6by@_(5@NscF@9`+P5V5smTHAim zqZ#L^EJL~m@CtrzX$7pQv`;z|N}U?~fbUMLF@D~C*b?M83P~@@YEf^?GKVYg2Gtnl z9xdUpoOJtuQ`WMV_BD9+xA>aJf_xX-&oS!6vi=UofKR_Ut(H7*CB{J#HhDE%-B^BG z3K0hF>GtIo1o*hz?mkd?=KFYWzp-|M1Ahw^0H$}BuP!xE(ODB{WE2~^9)Y(h9*D(} z-#GAaQVG}P0$2SwjCNv=0eR^;@o`xZN#L3Jto)i~Ji4QAIs#c(vnlRIfeCw$%iU>p zow@H@O@pJMARB(Vt^%f3_>v91-F+?)9tF z?DDOCsYG>6=C$e^lR+;o;m>I516iIKK66A*U`K@Na1cv~gW{ zSabpda9lwnUc=Ye@%o+RQF1yPw(0ojmZZO#2^rAYZ?%70d0iNlw_M)_`Ijp=f9bL& zp@RdfFPIlEVofvePq@C6<}uHf?)YVUUJlge7xqNHyJ@MsFL&t^xuxf87Q5q9neUMK zqeI(Ye)@s`w1&6hHCSzidU~E0Wa5WyrRhnI5F0>nTLnUU*HC zM0Hu*W5MTL5u6e!&TX?;!8f#*dEbJKlJ0kDg0o-F(0pPthP-Q!l+qJf)9wkluzIZH zE>$EHv!?T76l}8wpz~$OhkS9Kz1~YR=H1SY_E)G=XYTzu3sE-b2~I;SdW# z7OHtPpbV^b4($D4xYS$z(ps%0>JDpB&SFGA`sXIuJ`f3X_#@yR^5VyDpWSq&$&jx% zYK-b7gLf?&{PBkpgMY>HVc;LTN&06Y4BW52b?|z)jf`XqztwWx?>C01-HCg()!)Sg z`fzb6k`((xYShHg+^Dyed6*81^8@T5QlAi~Sc5p_^?Ge1u5p#*N%|J2o2-SMYjE=I z0mQ-w1A50BeFN7UYW1wb=gY#N8`jsws7hFRTN1OzTx8L$l+#1@Wv<#LAUF5gpk;xw zHF2Qo3E*YV?CRTWfr6V|(xPNvO0tbAZ`3l}mG)ja77Va#d67&}3++gE?Nrlqf8|Qa zRfQrAwzBHHPI-r#ukF;u^s_{May>H*>z%ldz=9_+w~Fz;wH(ZYYEWc4yh7H%)st|T zPPE2s2CaZC92UiNasU$zc(lmLR?=e^a8w?g&9vfxq||nv7YB2|ETo}@Bxt8Job_#> zOVppEXl|zk8ntjdjYEyNR^uR_?SzfQGFccU;Zg|$^lZX#I3om|VPN4|@)in|X6<-)%|qy$ zmtCXmG>Ze~Ji7ZxK!e7!3Bqe$+<;9d*Z66fvYxTkg8evNUdPsFGbtmF5shI?SWivL zi5i-Mt}`enZ141t3gbeL({#)u4~Hm)r~=dC`R<0?RL1DWx)$Gi5GtP(yOGUXcu5+g zyQU)@XEPO+lMfRF{RB(jqXez9U}Hb!G3)ATCBgl^)-t#yX$*(g_YZ8CQlOOxf-2f8 z|2CfEZq^gkz*Q#{&?gG#-{bWPm$3m1u95M+4_6yqht4Opw~Db%%yJnZor_=$`hJW7 zvlOkZixb-9E1#=v0dAgqP54aS^Nny4UGA&S?Tp#yIsC0z%_Z{f8!P#HyCM5z zi`u0J()EY6U)!82O{{FF4Guzp@NrDt1Nw??RO^r{cB&#vzZ7Zx62|(hjP{9 zXeNi~`#|C!hWwZjuf^X`QJ&xA>4IfDP{h29{NU1afB&gyCXeB)^Zg)@k4>_zpObJN zKRy&z*nh$fe}DfRb>qF*WL!-WBysTz%=F4lp1-P#W{Wu;MWV?0a&%1Y@aKNIz0;ra6Zs;w~ ztKvs5{%S<}af}9dR~Q6mx%}e)shap-f(f=h;3opoMZ9HHgWD?vBM2SCf4%0zIDh)D z8nE6qzPH=F!OJf6H|LX~y9;Z_!p9(PGZfkZ1V!v{o6Q+)o9=GQf_nZY#)mq(ANU@W z$(w(T%JnV#7MSEXSK)dtuJB`6WlU9I7-zKkNs8K24}TJuhaBZgtf-#4^y6-s(LO%6 zU#G&}rwG1bI`Gg`tsTE$`ZR$=ip%H6aZB-a{CS!=n+$3(XKWlC5MH!&)9`D&^QvpN zMR#xA@}cv(ss;ALZ(rw>ua7N zNBTsHyK9P0ZgEti#UtK(>t*ITbYzAFc;-+`y~sOdsW1>d^(iq4zF z3v}NMhaYXbeCpsWb`6`?H(IxKcl-Ydf^VMNvPD6t)6eDY_Mbbp>bib(j0g}35((rj zh#*0N?zpT|kE0uA^{F0|>Db zcIQP*sF>;Yqm)6LThH~e&gMvI-SD-XPY2I&7f5(zdZJv}%Y^QCi_!P>p7iIhFCh0Vc&`Iz` zZ-e3evXWiLZ-Xxv;prJUc=SRUxNU5HL3R9_xYJvp8?MOijLYD8WvW)gdTVY@z?DfZ zuhrt39>S#V|2X#~y7RwVoC0cG*~PmL%_PdzOSA_kqCm+GR5_k^fYos3?nJZ0|1~s{Yih9~?VPhCU?QvwH<(zZ>)$u~}k&Jipn1M$di)Y28Qw=d~nsc&DfB zxS{8H>HxdT*)?IzTkPW(=5O(EL?36fsJ#J?Vw&`?1Gaxlk0<{0i+8+4k$YAGGT+=` z#7xn6>cbG9-SbZP{c0M1{>9&%95XG;2X7XPZvuPK?435xy}9X{&FNp)f)9F}MgjcI zJB;qf_~mn)n#1#h;B3`H#G_UmKRzsyUFF^T_pehQHT2zExSKkw7N>+x&T=BR4#_|5 zqiZsO=I3?HPqpYn5UD%xXJ?z@0Xm!MEF7e|1^(avhyO%p6P*c2BK{v14e-Auj7 zD`du|G;HZ$Z1_tDYg2N{q1Dg(RA%Gd=u;;$zV{YU5^l6<1B=T>q+;te!GKLz#s0#z z(s3#Z(izn7k`jBVW_|1Kr}CfH5!4E$k++DK=G3;|CNB;YIm4)=A`4fla(ILa0%Z6K!)H zZh}2u>Q|qH#`bgpT&GX+QJBZTHWK(lt|E4Tw?Huz-ClBWok{)2SoFbGYM-i_2WQXq1Jr^t zvD>cTFt<(rx$`umH;OQvx?r&7vSLVEl1rz#iFV@IfJ4_v;Var*wS-fm+ayzXWTO=Y zt&1QrP7}dEnC85)(Yv1hI5~cI4DZ6Bc~~nUuaj>C^C97Lbw*V`&HXxr?f4Y2p~HbT zn(o>y_69T#0=$pNy6ue6W+;Hro1EBpcRcTAxRyh&Vi-HUXnIQhA1Z$3zd3fg@mbH!YD|&q<1C2+_=TmQ=eDH zo{vH20HkM*g2)KGsq4i6TDLMdoyoOf)slMo97nL17X#z6licun7UqpN_jK0bl*evZ5W1y?x$|< z>_SC8==fPsUcZY>tb@8WHotU}n&hIQ9?I$f=Lb@2&l(d?NNQ(vaCHsf03ZNKL_t(K#H~{w|KW5pOxG;DxT`pHS^2N0 zLpt3$KMsOvnLFwCWXs^-EU&5SxHoUw9nDmpsdMILe8HIT`fktH`T%#Q$Fk9A(fM=c zZy~+P;WRRL&Allw8%$Ml7`cOX!^uDY&<-^BY;I!C!_f(sUV;RDdLK_9l;d*V`dU;< z2G`lS-GlbZbwb*OK)Lup=*nwQ*gpWT2vKZ8D{Yg$iRzqDiQoK>wotJnK-@O7JBFmu z?!=p{)TINm)NR~4D7RjdtFXy?CbtotNeaR%$*6NdGE?;LB~Xe?h>af)GbHIjy-pF7 zmtn#PEVDnmh@Eok5BCcVF%P8Aq745x|JQ%X!2@*2?HF&fVOtc4l3VkXa~UpCJ-P>% zq-555qgMTzGF!i~_OHjJVWi!^-J!V`>2~_VZJz=OTDBSs8df^J+*n7}AwzbgO?$oE zPSD(~>NAd)zYpa+Z?sVlkPn2ME?p1LEHC}Yw&eEtkos!peyLag0Ci9&qj2f=EpK;? zA>n-f(bdp-8>5xr`}Hy--UoGey8k_X_;oqR%STD=b}(MGq5XGI+~L&cc&uBU*yFW+ zh53?R_~MrV*S{``PHm(39Ib(?YF!=EUYRf53CDl48oQ}AW=Oj+x_m$x(0#E@KjhD9 zSOn>R05{HpM?Ze|OfwvefpX)UXTR0{gq(I)djjB3+nNi9Za+4Wg4TWbnbos#^U^hd z+v(z8rnyn3bF`jYKe|GjMYK7yjiQzmz8eC19KJ`?P0n4F@ir5T8VUMt zWy!0hI~Vi7Hjk|=;;BKAdeNQR+mPonD6?w1xxN+YhoFFUhAownrlz>o)2n^DN!law5oSLDX3X}SH#1`#dj9AQ`4NqsB!=!Ff&bdoms_3|D?<~3v0}wy72EQ{F2ceA>rIZ?IP-aMh#YTW zB+0JsLRaBDuwMIhU^0w=r~$yJyN!9cPKZlishbSREo}j3n}kr5)S_khq936%_s5wp zn_PbcePgAY_2X^y@8ccc11|xp?}M5d$pfGJeOO}_R?RIAaS=Q>)t#OAxMBcIDVS)m z{vjrX?yr#~&%__DGR(Xo**xOW;s~0!XLv1g|1i`>FUOmQ#{#8FkX{$^zMUfw|CWtG z%SW%QlI5>kqWa->Ih$c2ovZ8mZ}@s^+OG~4cuvD&vtn@@Z=<8`t}Tj4Md9wBgBcy) zvM^KmjlWedK>$P@4mt!2b-Pt0F9*85k6sabYMR?3c7*S|@WYohFf~6uBDpA$ z^Yty=lE2qekU8FYTL0lD{q6dc8mmo-@?-d98!gK)x$HKcs6VLdG_4-b)iF5mYi)<@eoaW+v0&KN}awNK+>H?)Db@>;rIeX&MXwj%HAb%LMp|M~C!(-T17z@4kW z{QxvT%fJ2tQ`nHFr%F{)JKj0bK|L~e_P3vEJV&#_P%`c%8V)c zFE$y@v)%-PUrrsOU$O!M+|!E@+P6;_2xmx-w5Ur5L+BvkJlwBtfpHmU?y}Xi+vHV8 zwjuW@Yt&5rXb5$Zn}N2(j!pp^y_X5`wV!%Zk3qEF0rEQ;ECegGuhKMhClMw;clGpK zN7<;SN5`Gd%dC25iS0+PYr$qapH%4T@umM0IWFV-PBeBoyKan-n!GH&dx@mIX;QyY zKSG*i-OUgR_=n13=PoG0IW%951NZeDsFvTxmt<|;Px07GNAwMi%V4;tM}!Ei5^|u1 zyoJ^10G91w+-$t?YB29dDR0?b1H4_}4B}K~o@knF+%=a(`5G#8l1W&b8rJ;AW;wqh z)wXiZlw{I}i74}XG-{mQ6J?J*OjwPcui<4%`^q_hr`$~DRC*oK!rD$^=iHjTn=5| zNw@M!A55b!hl$JD>R1)<);6Mqbu=+Mxn5#tt(to4s&hJ1t0$_WG8h_LE2i5T_<#e`{(_G$;uNfAXTFI4<*r4Acz)5#C zA*e{7DlWVl*LAN*?8_({0)WPHz_=di9i!iiSW<`~ZLpVuWhs$Zq>f{$X3APm7qv%3 zH&Z9Mvs=wEC@9N04(21FczFp)q>!;=B<*6xj zU`v2pVMVyZ zLh4KEV8|=pQjX@32EhS^jtxbB9N656X$4H*uZXx^)a0$| zij9y@VZE|on8#VnlaEhHkN5#*LF(e-#t4w8=_iwUrFu48Idcc*P4B2?Mr(t~-zi|6 z2PJGe|5gv%IT@gIpPf%eePnN!y^~Dsn8jSJJJy=)%M{ek*}0XmADD-MjS#jiK6TM? z58kcprv)DHn&Eg=PkVmEo3DA499{+ z9Z`nGcOOeh5~W5Zo9coQ+x!Lk#HUD~(A~m*qN>OL+rRtI!|}sz1Zix(Q@w-AYmB(~ zvp0u-+F~cR{LDXB7Z591CAYiQPmkYt;0(3#V(jVB{r>qiCUKZYm1}Lh2V!^TZ=b_r z-@7jF9FSf5?_IUDc%VtKcig+%Uyljde143suL9Oxlmx$@$Z{MHfrf+PM?kMgW^BIM zPs5&WUH5n*p?!n49rQNHe>0ns*8}{t!hs;Z(HeU{L6CyC=OPX1Wj>G_d_XocAPk;b z_i)Q^Q*_r)=p*#6PV3AO2)+)_u*<5zoQR~zQ2Lr(6_J(su9vn&qvxc}Ubai8Tlez= zV@F`4#q;=^%Wirg-Lx3C)uwb`ncKe{boO!g!|!1j>KnqK_d2yJ58(nj7~$*kI^Y*)HbI0;J3Tv17PuHazgOw-FsezhF73z)-EIQKdi5mj$F}+4VAT%VUGq-gx|> zH!gio#~fPbI8MOGDKAyk)7`Qev5RINcH)QW$ErD5!6w>noe9o-LxzkP)&-&-qdzU$ zkR_;V_870T8c1?$R1$z>V3%{Ve)K&!@#nzKLvkkwcJZY<^%El`nF$5e$$7lP`j!gA zo&CTLJP)ZaMDM;4f4D4~aM>!!YY-XPObzmVB&T@6wbNL14~z~{w`q(nquCla8TURm zUG4gvb&128+uHo#{_O_?vfVaAfUZE)ZuCgDS3c}Vk|RB~b16tCDs5!95sm)a&>?GQ$A z>J4!4bidey=N=K{s83u-Ti-IAW{{A{QNjM+ahfqJ0Og*@1?x~~uIL>*X=4Wpy&Lg^ z*z-vL&d~tcH;mLZ#o$GR?qg`NLL&=$L-ZoWU4{y+!^OuayvAett z84|K~b?_E@raw7LQg^Eg)m7Q%HhEthTa)>5^v#i3w%KPTkHGfLn?c0nH*@)a#3DZDGakg5z zh*KP)Pho6MZ!6uG^8RDax{Rae;2&;yD_3I|L}3?IzKF@`)FoN>{rkZsNF2m^vp{LK zp2{Eh9k0C#sS=|rZpUKuE4%4mQ(q)(oN%{!i5F+wb?)-R8I?`$fsOIyDE$OY7uRvi z&CT(2Km&M~2Y@(yt(;wPo!90?-&<<0=kl~P&ppI~%IvN`lQFdezHFjjRR8jiJ5+@6 z*z#1TLHr%=MH`21|M)&#?-0T;Zom6(8hPUn-Fk}vm$R-N|M9TYxAzU7x_NEG$~96x z8@y?oQHX8JFjCe}4o5({$KeS^RlOrpLhkPX31Br2*-r&&a#s|L))X z*K&3j9&T;9^@g$#LV3YTPdqodE+%Vo*vNB%8-k-|)Q7$!FVVmJj1c8NoS^HK9p`9K zwR6u?-T$7V`I^qI@f4Wb!8+)mjA)C6-^}#q_2a#DedjJ-I1M>Cp+D=ZeAnmYu@oFy z>4)jgt{JS$q@cdvn+QD9^miW){Un!OvT4>8jQOcY69mu4r*u2Ko%R}l#t@EKZTvEi)?WDG{~sCU$_=z|e`ct*X?P6kW~loYG=(M)Tf!m(@U z3he392os!TzFAe%a}H!MdNjCr5R6uwNb6?KyGfzby5OSqpuNG0k;6Ue@oBm!hqB;i zaN;ab7mGezLJ{T879Q35inVg2ymYa227v-LO62&X{63Z1kcM}TnGz@I=I}k?(DZE@ zI4%evl_%-Yy4$r(sDVxA@UFcc-`r*-0y-H2U~zMb(371HmiYK?=VIqxk{=qHN4@I3ue76CDw+TK990-mSKIHG6f^4PX;&phWmWb zleW@HWOEEIIw(ZoOc({13L8cz)`OW8eMD+#g(pclEIkD3V)EUj3^nKz+)tV=Ow~Nh z0V^AiEi3NDh6$tqp&(u-8V#WCqHzA=i;MPem% zati#xIN`W%r?7fbSd5p=jWH0de9H$71j5#{_Ied`5luCO1goTeb?zaADfC+eLX$?+ z6lxge))6h~yU;g%C$hR>*EEJ@7c|*Thwj+Zflu9mK@;4dVcZ*1N}Tc20!QqJxV(95 z-_Pz6_f+@`c6482zb^bl9Ad71Tom*e{aw|d7!{cZCdPaKTg+Bste{_y&3Yg8`#WU+ zP*_gk+OwMVO1(wfyiP z2a?)Oo=~)l8CP-V(Rh~`@=56Niq<>QGqlc-#{cvG@n1!2{`#!b6VMsDaD6XrHyih(I2R}%-G$ra(-@&OjO#)Uz8vl1jtrb>iFyPvi@u7Z#CynD|1AxSC9Ub)nD!03@Qcl z)ybIdGvL(&PS6fAN-FPo1wPJw%GZ#;aJY?y;rLoLG-6L-`>k}?Viq?XEf_QB?a}+b zz9@3iKZ6ISeWkzd(7Ak<-unD*@94oxBieAY`R)2VF}xnKnKU^%-sF0+Mt|C0S(L%- z@6Yq<$*UaAsn|IJmh0(D6aOd+wrY3xjdRc^8E-WrE>A@Oyol8}K{u;u%RDjE@uN9E z-{sw&MrH6*mu}0OgNg_v3$Q(d3N?q464aExh`8@bRghvaVDH|b`l;BeW|6#{DeUY-`Fc!8s-|al`nE*~a#$-=6ESz}}|dL07|FeIliQ zbd6ejj!OUd#MHbKF2GHUS6v<671oUm{&B|_=cC0S-D5uJ+y`cqm zg;YB{omI4PTL^norG&oMm;_ZH_*X4mH?TOoVT{bC9niv z(01x4-hA&T;-Nug;fQM9<&vAg^+$tXeNjqVwQA;i1R;`h^KksL%@!*6mot@KtO(2Q zVo+{IH8~y9{aLXhgf2(aeFPJtMpoKN0!3IISms$VgAIb6@I>Of)dla8<-We(7##L) zkUyHSf~&EGhGH~UPH0^<^qQ{Y>1CcVpRt|?%zLL8+Y<)9VBdNfOx{d^n`q}iK~J%& z){b9UXGYB~uFt7Vdv^KM4w+Z)ZSVbHn0ZD0_5j7i%fGjuL*A%TfMz_~XmDm;po&X%^eVO0yOSXWoBdxKNR2z^$a}}_k zbg&+U4xP$%842u*y}d$~OPsHDhscu;mB)5Hm{#R!@Zf`Y26d5bP*qO5W}StXJ#J$$ zr8TJzgp$Pn_owC-pQ3q0O3Ko&mUMH9EVnhKK1>^Df90c0SDA4S?amG4_Y3>@SHTYM z#Y26I>otBx|LT6Y6qbeB<(XIIOVIA=gLij>i)mYfU@RvucXumqhnN8iw7gsGM;th; z3)U>K^C-M0FN(b(ME#fhz*~oZ)>yl6W`OT$#mU7g{Ro_k7*iQtrX!xKavCou|LLJ( zi?mZ?OOL&7$ZruO)BBg#$lpBRfgBgLO#=4m3)4WXAEN{Ot}m0DYjD8L17)p0C)FYj zyyWX?T~fPwaA!V?#@=y1l)0mS0zEgOtH?6)58(X~{IY?+P48gqyuOw#{$Ky?zd5@V z?}}zF$~g%md%ol$(-xgF27Y?XHg71HEy+C7QLBs5FP4Y69!2mw)vDc07bnk>|zL^7*yW-V%(poU4O`>9bp}K|?=l}8&`5h0!HmXY9Q$14mck)ivv_ps zbqH|tv-dNvb^hh=DZ_CicF8A}23|7`7@uD}`j(o9!y?7CoR<#|{q%Ow9q98r2{nmY za%zd^*Wv>2+{C_2h(Ehk2(-{%>M3qEL{^lRC3M8$j2ritA`C#+XX5L$!cVjw(NudI zZ>4bUUD>scTh#<1oq{3ldcW7FX2iQ@X)b{Z7$4hm;f7AwbyALN$uZmnxk+SEwyu?L z9Dw5K><_wC`cQoIT?7b99MwF>!HEv)~m75_KHc+-iC@oDiePxqA3G&YnFluZlwx=drBL?u;z_TXiehL z0oEadLJBQzu(DX&I#*L?c2hU^U|zb)joyJ7jaG9M$uny$4lVFNrJTuxp>8LXU5DCF z;oQf}Cn5@EFyX7?bOGg{)R2eB!`wH13teS9m6>qn*eb&DLKvasCQOhXNnpvfO_s1q z6L&M?JTyAE?0v#PYO^}=W!1tz*sx!OduD-%@W2fg0dmCSJ1HB(HfM_;4LkS@~~594_B5up3hRu zA%9v~0(D7q|5V_f^?6U@)i&}KF(vHb3?5mT{ooNCj<$xlOuUfPctS1EV%hW_lzV5i z7!KkjE%R^Lvp8x5j zz-VPFdD9gi*x>q~4?{95^WAE6;|^&#Niw`8XKxEWR-rftE-FjV04M!c+QNx(N1+)< z)xxLactnsb&R=h5RHcz8`i0%#`*33P@FEqRAzO^g8$N8=XEeL(KuC0|OgUS3a# zoqK6(WtQRTA3q_Uw=PZQrvieLFP0xc=X;w|=-2g+(OECf6_S=z(Xe~{CZ6N+xd`>s zd67mNaJZ&M{V3=c32nx)bACg2+ds0mtd2(XQ#5FuKdQR@4jVWn;sU#6L0#h zKH-vnv#K`1%S=>YgJ}Be%Uy-6c^-zW#j0?Ue^q=fZMWs?)9*Juo30Fvnsa_0QQ4$HScD>eXGR!(GHOK6VvO_G3RPrkx$qBTf6*`bhslgS-KE8xG#5vJaZT zO?GI$RYbOnfub%kcOvrG&l54|R>~--70lMcN zDn~dh!!kCtRzr9U?`ZwJaqRP}q#L^Wk*e@&X4jcr3FxlD$4>@~00Q~X`ar-bxIBQ9yI+f1+ zC5c?u!X>;$?;998)pBKE($MMGxrGOiRFW`EVwldMKfLf{F7h|uG}(^w&2xX&LHoO*=^$&wm%~8Bl~*+xqlx|&$h*F-OS5RA8S{4AbT5YcdaL1 z$ z_iOR_NS@6`Og0CBtwx!bll*YfrRzPcd3DAA(|`XT53rlr-W@ff>*Vrwyz^i}22dX= zCs(XaP^**3fS)bT{Oks=pKfo#Sknc61xNWyjR_WE@CbVzprmoEvlZ79iAB;dAGXn% zlw0x{RA`QF_nsp!x%9G2??d7_G{BP6$HTCQ!}SQZ9M2;iiK_KB%KsPHyFq^S8n@eorZq# zdEz^4Q$nF8`ra&PP_y;qwr)jq-iM4{}?-U4r@Al)3qW5DD zSCL1It~PPFbG9ZrTn5cac1h_FdUPC2OOQ*KrWY^UX2fmpn$%0;3$r_8K*53@0lj7* zY#}{_+%?;lcp)-K)uKGHj?5!$h=@@#N>y7AI)eb03K`iF81|=Wxbyucn#o8pn^^+Y zav%cDjFgjd$#C$$-&(Gn|Z*nNc2bMFv%9k9dqZ#BIoM1@J?t zmg?Q~!lT|ak82Pk8`CdnnrR&H)Hg@t_RhQ(2j3s>t80%NEYjS`M<=hQ+HWc=;_vSdl!92~&ujhbfj$?dhynHdL zr!_s3*8dEgwts+Dovp2dD^uo9EPT(r%%W3vJ6=h&2Jr(D@zy-SNU2&cvuFc1*jFFj zoqVD0gMPZ1xS5?Sp_#o-Z0H@#Dk87PO_a4@!)}gP;q#?j?iTY3f%|cNzL|&QbftDlym0v~ z4n|7q;17RRc^!lg{v~(D@@--2O2zrmLvvUDEG`BwcDOF+j*84uVWbfT;1x4r@v2>x|`?X z;u>Mjd$@BFj_3(4 zo&C}1i1x$xr?9ODll}9OdY|f_E4H7_gjxn6`;>inb*_qg6XedthL;eC0)Gb2Mb5&Y zp7~NF)l=~lCS%vcjm5?l`SAREJ7RCUpks&#MSO#%)s)xy;eeKjCcV+mdX9BSus5t^=?Kh~U<%sIO1|~^ zGq~bq6@vyTTg-KPPZ!=7&nPOJv~AcF`>+X|_dndLjJ`Xx2wR$vtSKuX`x;M;Px3v~fy>{1R z-P4oq8i2uDk*vZ1+!Q21B_=}Gy#uq++%6u;HZ~gjH&ySJ0?vsiJPQ>x6I_9#148&d z#twcwqSk<>5gT;v5P8QPBTO&ppz8;?5}q$2LCfAOad&f@u~7PQpR}fRqx;|sy*k6X zgY8}W7W-k_{+;UZOxtm`ot$I^%f4%ZYYK>wFq$VkoCci-ldrw^!l)XXe9u}WJYV8*hy(><+ucE&##&_m9#16FV^i}n(eNtKXYH* z@y68}HJ#qzrH6k`?yaf6j17s*n!Azoq3=oHeYNnngO~%)$^KZrUf)Lz7MH;F>RGx` zRmQu!s@*?$(-AZ)nIh2ybNv4k1mC>Yr3-?PU%R|F+ns&PXR7K}O*hj>gh+@Gfe6R| zk<0`mP1Hz0f;57Jlph8XFw=c+RekRGZI}12<$30H=vD7v3_!wOO}iO9?bkVWVTb?S z|N38&gF^;XhRVRQU85o7Yn*5xuYL-^kdZ~5On3H*KTT?(4=Lwa(E16~Q|MIUkQSzF z2Wfhp3;0|&OhtXSbz1Ro*-=&K*=wV51V(AJtSPy)FFDJM3P;|_o8ea<(z^Zm;FzXu zPaRo(0;l?Uk-oQ?sg-_Oxa_NOcC$KoBS+V_11}y-nmhrdID^+|44SPG@Q!W9moS;* z$*@o1A(Ad^4D`O#!1swr+vsZ9ao=~HRU2L?m#FQ+U~;v*NOAoUI(Ab|P>AZ>e&)Lb zZqAl?E6QsF!%w}DhxX4-qcMAiLbYgV&uAU2xa$qRG=5x@5fH7_`?i`)R#&rY_7fXd z=Y0P#1WL{4vIAx!JhN$rC6=D~08Z;MYTr@oj_QQ`JJSHp36%@yal7$N4T?6}r#&}K zrk{;k^d0HK;7Lq+*yl|Z_zXub+O(u`5RipCO?PsuBKPeyvvA3DVwuXY({L6;IE`gv zIR%D+QJ8q}X=02`2pfOvw-P%tgU6z0PHc~MyFk|xe~OS5>u;7&%*cJw%*hxGT5F0J zWq+8V>Zt>U67zP^r8x^Y;VO)0v`7>Ih&wq9rpA8d@=@C3y_=1mIm6JDvvRerR13oC z#;Og+gu|pqx3{3D_{BQmF&6VtW9?FYp=pItIQ?oThDj z|J)I?heO_AE|(!8IFs52b1&yqX}2HoV$B>%=*UR1&JP_lL1(7@2pd)0-E1ewgbg<~ z*V(xiCu&kR9=TBk%GW&VxiTGN=G1Tmq*LGvtqCQVm6(S~udfimBtkh}PPIMUM?KPP zI=O1hY&5RA0oSCn>#r)9Nl75L)q)*^9nsnz4FYA)uKI#&Gm^`rWsF;Q%T1$IgK~y3 zo2+-Ic-0WP*hJJk>s1gS(9AGFqv;x8S*Y2}RtvF1TxWDv)~uJtHdm!tONq!uO0d0_ zs@-F*@ps9{T^$U)-??K`)#E9Pz0RW6J8SqD)7Z*3WC z8pBwJd^h;orw;Ajl4TmHv)p%6)I7I!7=zIyW_^p5qHCo9LmKphULDaPn4Qp-vP%J| zEVzQb=~>OB^hG7GAR^787wv{y)emH{YkTRBFx>eIGR(^>^1m7b#atOb2Gdeg0Oz@I z<+O_)y-`9Oo0Idm81#njA4^~Sj!&(+MdST0i|CfLLUnK9|2m<8~RzHmce=x)+y7gAzB9JIv4Lymo)Ekp@A;p|bO~@6sju5Bz3s$K{i4 zT-r`l+dc@^8*Vp#9cIh4T*}7$a6Cd( ziGAX0h|vvX>44951wMx>tDp0ISIxI{>*oqSLv|UjPjs@@#nQ-9en!3k=f!K+evyXc=4t-6rv7y#e z?R9FopPpQszan#?yE}L)LpqY>*95f1L6Dtjr~Un>_erbYTEpf)d(g-p2RpyKwYKbR z{%Xzw7J<`OFu$=VJE1fyjLn^UTDMEI>2M)E;FSzE){D4=57Pv^ZFX{p>)T)4a}A8$ zpDQigV8sL}S6UV(bCI>Bkz2&$xWG@%-2zz!wxMbrB%1YL_*2r3`6Y+O6P>W*uanA~ zAV73>CXM49N3TVHGZ{l1V$p6QuU!VG(cE-ad0ihh)=qBvtv$GYU=H()$k-PRvc^?y z4zDIip^g6Eao~n%;I)@9hx_S0Y2(+(-kCInNp#_lvVwg`S#(6+t4~PZ(sgQnJ zYJB6i^K&M^bG7j=hvCf|LnCPrTZwCAkFxJW#=8|=Y9qq@txdOH=_wLpCqRuMM3pjX ztouP~$vz{i*NG9a*9Mt;Ez5-C(gO;Kb7g#7%zBDO?=5ra%+pFpww=J@TH0{C9AjkN zN8#=g;S9&`ezivHo=i9}-Vi7%=X9p-O}5$?$CG5L{)hTAj)8+d5-YsaXIkY1^O3n+h` z8}8bscT$&!EL&Dzn)V^fESx;YM0M8?hVPG)Bf<<@EAQCOG#oF-Mmwn<)+iIqy$DD- zntj8_M)@tF&}O*67lS1$es%WS3%G<%z^>sLv-$q@c72Mr2m!OY;D|3>(C>D*BMm%% zk7)^WMvw=O;JSKtd!OWEb-)A(44@IL_cGAwal<9mT7iAl85QGb&Jg$9pz}$ zoQhnjhw}5~VfyLz9%Zh!-x-V~F{H8H^d1U*8j8=Oqy`L(t&k-Zio*+JU0#43IL z>Dg?J6@7MkuOv8#jTsp_bi<&Y(<-rDYJ$$f|HnW6=fXORhBbThmhwqQmvWq_^@!y}N*6H4+xA$H7?SgQ z5+w%k4#qGwzDNV+OcpVWRn34l-VAE==Zi%tDw>FDB*xq?(NeT`UQP(|2aoK{HuVnl1gns%g!j1$O>%d38=K;*;{GZ3Daa zCATf_X_YViI5O$8(AB&f(Rp^5c4|vomFr7o_VzIZu||P_zDC`?gM7=bMm!Lduzj}= zIEdtBZ;Zfy=d&QxFnaGmJgBOWb@AEa^ACSnv`NO5182!)h(SW8p|Pl7rdWJEn60%C z3CxR&*}A8H|80NsC856X2K{iP`deSI(W)-)}IdG>So{&CXVUNZ#{!7NKQeH_aCmM8_D$ zEe2id66MR2BIZoQG*QzUM%>A!Fo?-iJ?s*YAWvMg@5IM_>{Yx?aJ$UfdL5utF}zrg zG1$EewWaub1?*5c_l2Gfo8 ztqqzvoDY#N;0BkQp<#kv%o9Oj{Up9D=iHF8-(! zLk@{ryFoxE$70%sEm&pH!vY9apKJ<{!W8S?J9!kp;Wg{c z`M@OgUi81nL>8<*zUG}5=ETu4eDiz7zl>&7lnpQu=`4aWJTDo9d|M z(+^2sz;n_XYVYPA4YGy9(0E+6>S6o74*Cqg#)ee~Sq$1{J$iOhJTx&My>&fZ?POyR zu)kuj$BSF%F~t|+EU%V_Tqy^zmb|sj`$k@CvoxiZuxgaH22#x~&5Xezqoq%!XGqdd zoJGf#b8CB(HCV|1;4%Z>U+Fz2ox?lUkW=~xoPhP$aGWi}zQKXpTVuxOP*K7bL*No5ZK7@VE|V}(_m=l%I9 ze57U71laxqU)Fk<#U>xWhmGwmgmphfd1%lN-;EhVgGKqLvAW-vVtkv@%OzUhF)(bC zslEpM&}Y+y!`@RldVBKLjl*yJ%Gs=~3Xl?N(TuyKY zwc2Rn9g;%+f!A~2y`l^u3I65_AC~|8H0fTc9D5p$pQj~2gJSOj^X;e=Y)q8S@{bGv z#Fu>5Zz5DTC)yOrE@21L!6)1B$psD7hC{Wq$4<@Jo{x>wM0~6}+1hIrHkT+)SJ-N- zl03e*%A9oCWAz` zUE}hE-G}y+h;+J&0Zu`@^u4&bT}$RL&%D;Ve1g|7^jzYI!s>Z!uICBIG1HGoM6=%{ z6Q$YO%%L18zMX628bG1TVn>>L9+%po!#$!@z?Mv(h7JnTj0S*jfBK~lZH~M90vbaU z6Y;es-Yz&we`%iM6&TmVlcNx<^#f{=hdfo^k3gkcL@#ZiJ_6gYb$-U*UFrLC`3$y) zr2he6>NnormjJj|^qeJz?|T*0kVys^MY;goi4X8}u`zOT>LMYlCjybJW3$r>aUyBkc1- zKPsYuHd#($4?D-=MenE0<%6>_30b^F{8>21Z{9o%sw-RLqa1kcL5!`Neu1fV;j3Un z;QU_ucP2G;(7%`|o$0U*;Mq)d|2Uhe8}A!$7%z6c0<{}FSnc4RolrMj-cuPaowQfN zJm@bhU-vI{bRWP)>X!^TZXwBee@u=d`*gf?Wm;MZjykD41)V-NUBA z$e6;|Yu1W>MYk$w2ENNbon85pb}w~0{Db$VI%NLbq^9K88&rBVn!L^Nd~k#P9zGS{ zfin;IUIXEnV>bOXdF|id%+Xn*JH4K5NKnTPwSD)%8{S$;e5vq1{*V7H*|HS;ygWCa zsrrdqAq^xLp>O)!^iPj7m}+qEF08(|!Uw`~Gj#OR;pH{v!4=#6tFe;yi+*fd>+V)q zIG~2;8EJOClJ@*|5`n$7i#_w^7X~8Xx62q@&qLtId#_5vpe@|3jTL|OBC{-O;CN*C z%T2|{l=m_f=bOg8AaN;iabtAocUQ?EbDbq{MnV#|M3#@P_!#XpXE2`W6j^*B|_v~%kzzQ7Eo)7pk`^&=Bcb_ITPo2F{0 zo@&Dl6;1q$Dqm-F6#8jW!ZCcS(@ovztZ3pcvDOM@O zzD?m8e==@>J+p9$R%_=7mKjpRx#8g3)@W-uAjcmLjLkk=ctXU{IL9*CK90MIK=dps zd=jk>U>M6Td^o;mofQOjJPm~Uk!4k=N4WJE{lYG?Ur{}Fsl?+v7(d2ZqmX^`q}2Q0 z*phuKwjaLF$hqcki_6sIDfxLx!%8_Dk~U0lH!d8v&SpoLwD5xYWe1?I{xORhzu8UmLxQ zcs}6983UySkb}v93mbpProCK*J=EmZq{M~ofM%%f^#Cfhs5-RBN2?*D$t)q)Ui(cr z(CyoR25t=AhU}!2O}j$&GAsy*#+Z*vXt_L|7@}M(KpTNGb~Z4Btp20?ju(ZJ`2*q>?q=@215rf#heeq+#r33}*<`PKwP};k z!mX#h$Zz^gPGhom#upQniZb7ilDF~#p}lZov;lvTQW zVso74=JAk|Ir3U$=ty?0S$N^b!&b^(j;(zaG;)h6+XgiMX2i?zHW0pc?4C0BYW>MC ze7U|7LuQ#iANrBZxn8F?riiS{Ja$CijGOr(AhxSmPtn-aG8yD|vHDUwl!SQsYS8Xhm zV0EFV5AD{>a8z9Q_;HX_c`-uNoYtPpn+6(?=DiM0mz`VNNL=fkPJQR;p>RyT{Q;C0 zEos%8D*C1dP6|(Xc&N`_gy2o?~`l(|f%Ip#?{_dwg zeJBzBH~;;=HNpZcmGn2gj1@7^`49~bGqHp<6mS~G-)?iqIJyZq0)OVn@ZJyK-_V19 zbZwV>S;B?9()Sx{pA?W8$St|J{qyn9Y@M-1FJ1n@u)H?}{RwYS`*P}j+sw1S0eN`? zn5sWwCp`Yus+h1(00>_UiX$Js2EM956_x3wAjm_f7<9+8XRTRYj{f8fhm(1ikHMJo zZ$);;oUU2ET^B~Wqen$5AL}r}-TTpRk9uyZiXF-;PW{60_&JKi>l5BBa6%I;y>l%S zcI-`iYkkcow;S?ek|s2{d~c(LH2VGULccWoyk?#vrpi`61jpZR!-w)4)XCgZn+S`| z!>Wl+Kb?Ou_E!ttG@H34WVv@=_T)a1FKm) zljiO=`RD$h6Lcsxxxl@1oKKOJI5e3+TVht>X;4+zWGs6c6ZET5jlHJ#!SqADOzy=7 zPtJY$H#6gF_Ec0Uw2Qv=zvm(mAG$&Z;o;Vg{PBq?&@9-8<)kl*UjJr6o3RbO03Ycd z`ECIx5Lv}yP)^>WG%6Q%d6`$&)pru~Me`e;P6ftI_W*3Llrg?N$#(Dl$BlC;8%MSo zg?582cl1p6+`mq29`m%j8IEF-s0BM^!EAJjJo~tGZ!}96h~A_Odb76+3YNjIapS&G zXO1h^T|J#cZ{lcdBzvZ^&lBg(;WD! zbIOk(vq(IIdXtS^V_w4C?CC)^(`4?kbkc>qU((8>8@fh3C|`|2p8V8op`m(4$O11e zB3VrgQ2{odE|~rV9oYG9f(|SJt4nGJ;o@BPm$qy6x6T(W9DJOXMkPLsyJ(=+P02zx z7tU-4pIa>{m-s=$3Je^W2*HjcFMux_VV#|uEuK3#?hZ4uc!obQZ-Qa~=QA<=ergQ! zwfwY`VmZl#sN&jygjao%bQu3#2ORNuAxmz&VqSc`V=rbbUpxKNc(AexzV7^k-Bg=k zUGhrTD@*-NOV*xP$1@6@B^Xr>qYo^46XY z*OMOryAti~I1WRSXEhzl#Oum|OQ)A`Nnh5I$c_>Y&)px&uP=oqqQ){NHo12Z5GCEfo{!GfUe1xfS8JD zbL)S7uY4;nZ(vZ&?Br7@Oi*!hVTb zaf)u1&IaiGv0Fi84GT#2yai_%*-mqIAo=$FT78b28EuB!)H`_3pP@+(eYbJo^PeaZ z(ssMk&fi{`UL5wpH;+$P7w3Q*@3(Izmc7ia6-%SeNZgP#P~B(v-~HSFY&z`X^W-6n z=VM$-UQ#a_4gb;w!4q)9)STfw1M^gX#9z8q$I(+4u_t?m3{LNbZiD`vgHyx!=+Y?2x4MH1~yFYfl^nL#@4mlU5aQW$|V zcr1Pmtmz`Ot(yV8`{gv5sT}P|TYy68QlYz6Qf)L1w0}g*ZOv;Yr_=t$bZgVG^T)F4 zrsHeuV9T498f2>XpxbhHY0IRIOCK0b9Sk(FayI(jf*?!x7?h!?d*!w{31%?1Y=)CQ zTHRFGAZaJt*_;9U6$I-3DtI6CpITOg_?RrZomQd-dF2JL4IW)za_gGf#=Hb;M5yB# z77DHp<%TI-+O9zwZ+|;h(tPy^EWApZp35)PiHtEU1B^r6Hr3549Y%jc#Je33Iy4Ggj|cv#~gek?o^dDwfZ=#0o+Dr*3&T}3B%Ws zK;fhvpO)?tjF1NJ(^hCc%JyP=*Itv1_skt#C0b4-ldy(H!u&oJxj7_2Ff&hP*J6BK zY39<#$K*7X1j2abv=v^GG|+~#L}S>@e2feQ4adZ6(i<*&*F3h|XeS$<)Kt^nLv~&d z5db&Gm1Q{RYcouT)~Q`!97o3q;vi&_`uWFYSOjUHB+2FiTz2t5I(hlW_>2ZfpL<(=*0;)&5H+*y>zHyI32Jsa#bHJBb}g*Ms#ouXYdZz zJZzY}T!4S;cCfKk;l^WZrfMM}^~uF}x?sWt4{|^ZI6rtK+!MRE^52Yj3LVpL%t^B2fG)s zEhP>GHuRf4Q3HXS3>s1GTY!$mAj$KV=(eQ^t`cX+i?fl;SoMZ(^LFlXdu~qNsK&Ez zu@AOjy->^YDn#}&6 zfD^?T{?Iqq)UPpFgST^s+yuxUxQ%79@RySiH^`#0?>l(|hq;KI7~mi1sD`y4sM@Mi zu!rUpcrK!iDTC4a^J8(LbFIvg`tLuG+ipyf_}+M#I`2QJtUkRwKbt(VZ~M_4Zrh(; z`(SFo_W=40+ySrO>6&;Al+hK9$F3N7Ck4q6b;oHx3=mP)SEKip7u)RE~ zLeZV_zusp3SATS@KsL(EDDj3QX0-%?Gq@ z=Lg#sn5o8=#9cRqIY-|Hu3gEX>~{77r*himLy-r~(G0{NFC1G|(mLZkFB_0JgD?G{ zb>5fvUMCyrHsQ;g?e1fZ%Glz#+<99on=$`!eJa&Q(RQ$d%z8VyqyHtv@z?2f3XOml zKPYR!fVT;Meh>LA>(9>F!KPTPW~0E%sW)6F zY>`eJ<;=nCWS80n_OThHZw`W#F0ldYjpT;W-U{|=e4hq6Y28ROFp_>aHpT>IaMMG} zcEe>nSitd)NXrHJg3J$5m=z-N+8H~Z@WIy5wBR~$`^NJVIh+4-)2K$7HWFxIg)*b& z)0`o1yz=|;VtK2^3>rDM`n$SvBQx*Lc<*mCVi~I5HF9t_Py#4R2`{c-OyO-o(>A60 zJibK}99NZ-d4A}fP_I}*mnwb*)h7dtxOl-OARlz&?7M6A^3tz6AIz&f(=R z&wHv#BQCamV;zH4aOkFuviluPuFR|E6h(%p+!N_1riL2Zv0ILf(ZP95pPJ*BX#VKG zID!467-j){xf<5}=hABKC#zei;kD<+&KigI)P52DNVEdg6wD88Thbdt1-TF31K-4x zj1)M32A>}oqAF0-nx}t{%=)Hikw!0|%QyMC2KV&K>13=Cm~(0R56J4-)qRas2#d^> z*_K@{dbsBO{H8bU*3Qr!#Gru0#=UMz!|8vWx1U0qCusfvCH>=&nJEmf~ zHno`nTn{hCGIdKEmcIb&Se>2Noo5SWHD1DjsLIzFUs~i$ ze;L=<-7K`ZO(Rs6&}nUh4ZOdlWOnpB-~T$)Z+f?|s$f#Y#Hj_VIO!tuvbtCkoiLyu zfBor4H&)Y~zYB9&ig_YKC>E;=+YbK^|L4EnEVcR5H=?i=nMNy3Zz?9v*>q)Z%#bQF zLo5)jRy9QnT&`~ufzvE)DMqpbG>4h08o6mK$7YFi!tGxj3srYTrJ7s<g>P=0R?jC+TyE7pHXwT7xXwz`svp?w!24?4vj0A80a2YI1$KHPW zkIl!5uh(MgX#myu z`!~J>>Jcq!ne53|%MZ1w=cH(rry~vdlvya20;-$e< zJzT}1hd76{?`W~D)YYm}Z|aCh{1b3N8J-PEh8m!WbY>DxLBZUIxKU_1SA^NIux+uk;(8f(sC zjl=Onh^&*ck)AAv>iI8Sek);B^x}FCjutU#zkscn2NyIP1GZ0A+^?)f*~?VvAoTVH zRU?EeG+*i`*XgN@wLMr<3!AJjXN&N`o3UAv(=R-VhO1r0^#>{hXpkM8G4_giTetPH zYt*O~WW~|wa>?MZZQNnB{F1#!Mub4 zfwbQr4;yfppAJ!gw8K`Ep5Yi@Vk7X0Udg*3z9oFhmDPG z;_SdOyGH%z0Vsk37M^&j0B{XZceWGQT_qo?=6K4$#D8YQm)}mdN$XTwW(SGqajvem zQrzptAGkVw9QSh(eEk8e*aPMv*|;|fp`jH7hgSIybe#|Aq?q>gWGNVUxo8&4 z8zGpWUHkq<8XBkRLMBr;OCw>uot6-hI?U+}DG#-at@A@=T*iiK%d|ZYJ^3r@Kat)P z$MvMZeLx?9f|kj8^T&gBykap!OXe2-2H$CljFYEe(CPDglC<4ywkf;obJRA6o0)3Y zn9f(Hrg}&WGAIa-9-=W`4EC`5zyw}u^$=d?oKR`b7qi}6HxqE!M|y9a*va>=nA9TQ za=myHG$MSbv!%F!)LO3lcf%lIe-Z2Hy|=S2ckuu8Z~m+8upEB`(saweJ_f#gJw=HK z>R(>^m%BDI19Tawrf45Xug*`I!cZWzIBTk(y)E)Kx5L=SN4UQ|jFnS+8@mk3{a3g6 z6|&0}1gW&tzh_-YbHwK2?XEFjcZ3x5_{%PRGb)m8Zd)#VxpF|EZf={nQpatbh7A2^ z+Y5(S5vj}@Z(NJn#*I|&>a{}2r*xTkdn3J?UTf?p@lkbFb!EK!ei2LKRWbfQIo~|*ohWc#??B(6}^l|@X zwJ_1PvX}o+?(~?v)>jS4jZr;Oe~ne?M3fJ-U|)yZ)ve2G8@I7-J2ls2vvv<&m`=m$ zUi!`X_xYGfACUK<-gkSRz;V4?Ur+Ncy#CFyN8d`U+Zz}27I^_L!09K33OjV<%cbxH zkG$YW(2A4e6HgFlR+`}Ha?&8^F{mvqNq}&~w1>^s$RN|p9h$xOsCEj~C+cwZ%lH!H zDK0Eb;eY53QL!?}#2IlEd~27w`w*iV@LlhA)+UCl=GE7%X85!I(Dr@;PA2&{kk)Gt z&v)Udj1TkHP``L|c`cf-hR@1dHK{Z*Y9gT6l7OXT*vc$r{@0 z*08$P{m?ttkI8sJ?{{0JkZ$FElq2(2*YUbwhKTVq3Iv#~*7}}?_eN zJHHrqZn{TRr!OJ@+-LuU=VtJh)PQGj7HG9587G&vZshXeGZFkYbYAPgcy7LSdGz_^ z_qw}RYeXH4^~()Szjuz-Tm}Pt0oP{o*pvy0TbrrE=HD~yt zhgvpg$G$C~JL6wp5WlXb_$?Lrh0v&N%hM?CVVa~}-z`SVosIXVLqD{p1Y~#sC--Xq zbpCrt{IQbo>Uicfsc6`oZFX**LK@NAZcx^}K6V+5?vP!*(GTwUF1mf~l%F|?itc#k zeQv79lWb$qtF*m&{H0fo7=kN!0g+cvQG&0p)q}Rn#+duiKR96LlaO`S8OzL1rot$^ z{*+V;T;pDNE?afla4yUFZRce3#dTC1U#exb?8R?V z(0(mNJrXs2_G@8eC=1Q54E(K0q2I+ekYq}qygGjdWA16-coXmk*K5AY!H@G>SA9V+ z0h)=*cq7^QP3`X5%T`CZ)14jsKmT|C^-_mXX3gDexZKl$1XJDKFRt959S(1RZT4Be z*%`xRT->tHUwxnMDe(yuL( z;M6v`H^li$8niW$9bcBCF|MQ69LzwX-f+cONil%`R#^`e;waJ?XYk3X=1KWfIDzbCG76{b*)ZT4fK?2_XT3-#c|;h z0N?dP>JHQ5-mGrJMt0BD45j5o@2`O~A^*D6SNCD#^5Z!GSywL?YuulXWD3XU-+P5V zu;9*>oagf}#N`P?9ZLIxq##w0sSb!v<(3_&Y5T}0fK1cwR%>rMLu#E^dJ&m7jTelelEU|&<`7@=OmPY6Lp`_6Dex`VWRCpi88k6)!|%jPk4dx^ z)zva&mNyO!ggQ9+=~b{+_zJVv=&RoLrFk2!56mI}m{Ks}t3uoPmBhe36WV{X$ z6=5{buGo2s4geIp5)II`k6kM23Nk7;Az3WS_2Kt+G_VGCbM|z9;T4v)3%a>I2m9CL zvNrMi#ykO>Bq_Bl9$2a<&qJ^Vhz)HtFx^LP%KiS%f%1A{cZy{H+#pWunwL9G>^>a& zG<>vunBO+VH9W%OL zUqN>n2W+ye*4fTr3h7)2jxm3>uQ8|Q;&&gu5c`-$ekS~JRt_l-!bsw}V}zDzfh^Uk zRmQ>WRiCzqQv*j=__?h)J zXoD&dv@tGPM?(Z{6*B*Ohh1~&1s8K~e@=tT!v6n);I%tV7ytlhLK5;IATPDmb?f$F z`~N>?XXos!r?azGROBHf!2sF4d`u@)nTzmB_#MDdkYH;0R(OvXeRO-_^$i9ouE_9I zpY3WXi9sb1{;3^KCo!Zy6Ycn1=V<^{oh})J=aH&pDgy-t{u9n6@H>AuB#!weBwZqi zcGSpdb*k@|OBI=Rz%PrBY?i9$6t%aU?r{6oWJ&7L@|Mo za-YCDL<#B-j23NOcSEU`g#9K**Oncfw<&`1!?V)!B6&PjcjEd>^V?HhuOxruz zpupcY3@$>9-J=dxYRCf33Q}cK%Fpw2wJmuI<1HI|=075YiJu`SS&o>P`wyH9{Aj&!ERPaWVguu`ww7->=|IseB+RLu--}%B z=Q!)y9^>#89we?e#a6lb%S%gXOs5FV!&(N7)$@ahfyudFD0=Z8^c~!il@OD(-blMh zXGkV(=jv%oG5d$cx8(Yy(>dpTGo&ATcOtTHkJx{{bBL#wsklbb&XH?nUS=FY{e&~< dZuEU){QovrQ3XA(HdX)t002ovPDHLkV1n#v*pdJM literal 0 HcmV?d00001 diff --git a/examples/shaders/resources/shaders/glsl330/mask.fs b/examples/shaders/resources/shaders/glsl330/mask.fs new file mode 100644 index 000000000..a06279096 --- /dev/null +++ b/examples/shaders/resources/shaders/glsl330/mask.fs @@ -0,0 +1,21 @@ +#version 330 + +// Input vertex attributes (from vertex shader) +in vec2 fragTexCoord; + +// Input uniform values +uniform sampler2D texture0; +uniform sampler2D mask; +uniform int frame; + +// Output fragment color +out vec4 finalColor; + +void main() +{ + vec4 maskColour = texture(mask, fragTexCoord+vec2(sin(-frame/150.0)/10.0,cos(-frame/170.0)/10.0)); + if (maskColour.r < 0.25) discard; + vec4 texelColor = texture(texture0, fragTexCoord+vec2(sin(frame/90.0)/8.0,cos(frame/60.0)/8.0)); + + finalColor = texelColor * maskColour; +} diff --git a/examples/shaders/resources/shaders/glsl330/mask.vs b/examples/shaders/resources/shaders/glsl330/mask.vs new file mode 100644 index 000000000..66a151617 --- /dev/null +++ b/examples/shaders/resources/shaders/glsl330/mask.vs @@ -0,0 +1,21 @@ +#version 330 + +// Input vertex attributes +in vec3 vertexPosition; +in vec2 vertexTexCoord; + +// Input uniform values +uniform mat4 mvp; +uniform mat4 matModel; + +// Output vertex attributes (to fragment shader) +out vec2 fragTexCoord; + +void main() +{ + // Send vertex attributes to fragment shader + fragTexCoord = vertexTexCoord; + + // Calculate final vertex position + gl_Position = mvp*vec4(vertexPosition, 1.0); +} diff --git a/examples/shaders/shaders_simple.c b/examples/shaders/shaders_simple.c new file mode 100644 index 000000000..cf57e1267 --- /dev/null +++ b/examples/shaders/shaders_simple.c @@ -0,0 +1,153 @@ +/******************************************************************************************* +* +* raylib [shaders] example - demonstrates how you can use your own simple shaders in raylib +* +* This example has been created using raylib 2.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Chris Camacho (@codifies) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2019 Chris Camacho (@codifies) and Ramon Santamaria (@raysan5) +* +******************************************************************************************** +* +* after a model is loaded it has a default material, this material can be modified in place +* rather than creating one from scratch... +* While all of the MAPs have particular names, they can be used for any purpose +* Three of the MAP are applied as cubic maps (see below) +* +********************************************************************************************/ + + +#include + +#include "raylib.h" +#include "raymath.h" + + +#define screenWidth 1280 +#define screenHeight 720 + + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + InitWindow(screenWidth, screenHeight, "raylib - simple shader"); + + // Define the camera to look into our 3d world + Camera camera = { 0 }; + camera.position = (Vector3){ 0.0f, 1.0f, 2.0f }; + camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; + camera.fovy = 45.0f; + camera.type = CAMERA_PERSPECTIVE; + + // three models to show the shader on + Mesh torus = GenMeshTorus(.3, 1, 16, 32); + Model model1 = LoadModelFromMesh(torus); + + Mesh cube = GenMeshCube(.8,.8,.8); + Model model2 = LoadModelFromMesh(cube); + + // this one un shaded just so we can see the gaps in the other two + Mesh sphere = GenMeshSphere(1, 16, 16); + Model model3 = LoadModelFromMesh(sphere); + + // load the shader + Shader shader = LoadShader("resources/shaders/glsl330/mask.vs", + "resources/shaders/glsl330/mask.fs"); + + // apply the diffuse texture (colour map) + Texture tex = LoadTexture("resources/plasma.png"); + model1.materials[0].maps[MAP_DIFFUSE].texture = tex; + model2.materials[0].maps[MAP_DIFFUSE].texture = tex; + + // using MAP_EMISSION as a spare slot to use for 2nd texture + // dont use MAP_IRRADIANCE, MAP_PREFILTER, or MAP_CUBEMAP + // as they are bound as cube maps (which don't see to work at all on my machine!) + Texture maskTx = LoadTexture("resources/mask.png"); + model1.materials[0].maps[MAP_EMISSION].texture = maskTx; + model2.materials[0].maps[MAP_EMISSION].texture = maskTx; + shader.locs[LOC_MAP_EMISSION] = GetShaderLocation(shader, "mask"); + + // frame is incremented each frame to animate the shader + int shaderFrame = GetShaderLocation(shader, "frame"); + + // apply the shader to the two models + model1.materials[0].shader = shader; + model2.materials[0].shader = shader; + + + // frame counter + int frame = 0; + + // model rotation + Vector3 ang = { 0 }; + + SetTargetFPS(60); // Set to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + + frame ++; + ang.x += 0.01; + ang.y += 0.005; + ang.z -= 0.0025; + + // animate the shader + SetShaderValue(shader, shaderFrame, &frame, UNIFORM_INT); + + // rotate one of the models + model1.transform = MatrixRotateXYZ(ang); + + UpdateCamera(&camera); + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(DARKBLUE); + + BeginMode3D(camera); + + DrawModel(model1, (Vector3){0.5,0,0}, 1, WHITE); + DrawModelEx(model2, (Vector3){-.5,0,0}, (Vector3){1,1,0}, 50, (Vector3){1,1,1}, WHITE); + DrawModel(model3,(Vector3){0,0,-1.5}, 1, WHITE); + DrawGrid(10, 1.0f); // Draw a grid + + EndMode3D(); + + DrawFPS(10, 10); + + int l = MeasureText(FormatText("Frame %i", frame), 20); + DrawRectangle(16, 698, l+8, 42, BLUE); + DrawText(FormatText("Frame %i", frame), 20, 700, 20, WHITE); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + + UnloadModel(model1); + UnloadModel(model2); + UnloadModel(model3); + UnloadTexture(tex); + UnloadTexture(maskTx); + UnloadShader(shader); + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + + From bdcb16e7bbbc216ad70686047e7fa5fee4e70fd0 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 22 Sep 2019 21:47:19 +0200 Subject: [PATCH 088/123] Review PR and comments --- examples/models/models_material_pbr.c | 6 +- examples/shaders/shaders_simple.c | 104 +++++++++++--------------- src/models.c | 3 +- src/rlgl.h | 4 +- 4 files changed, 52 insertions(+), 65 deletions(-) diff --git a/examples/models/models_material_pbr.c b/examples/models/models_material_pbr.c index 2c0a15e38..0da741408 100644 --- a/examples/models/models_material_pbr.c +++ b/examples/models/models_material_pbr.c @@ -100,9 +100,8 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- - // user must unload shaders and textures as they could be in use - // by other models.... - UnloadShader(model.materials[0].shader); + // Shaders and textures must be unloaded by user, + // they could be in use by other models UnloadTexture(model.materials[0].maps[MAP_ALBEDO].texture); UnloadTexture(model.materials[0].maps[MAP_NORMAL].texture); UnloadTexture(model.materials[0].maps[MAP_METALNESS].texture); @@ -111,6 +110,7 @@ int main(void) UnloadTexture(model.materials[0].maps[MAP_IRRADIANCE].texture); UnloadTexture(model.materials[0].maps[MAP_PREFILTER].texture); UnloadTexture(model.materials[0].maps[MAP_BRDF].texture); + UnloadShader(model.materials[0].shader); UnloadModel(model); // Unload model diff --git a/examples/shaders/shaders_simple.c b/examples/shaders/shaders_simple.c index cf57e1267..e8c5ea97e 100644 --- a/examples/shaders/shaders_simple.c +++ b/examples/shaders/shaders_simple.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shaders] example - demonstrates how you can use your own simple shaders in raylib +* raylib [shaders] example - Simple shader * * This example has been created using raylib 2.5 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) @@ -11,28 +11,23 @@ * ******************************************************************************************** * -* after a model is loaded it has a default material, this material can be modified in place -* rather than creating one from scratch... -* While all of the MAPs have particular names, they can be used for any purpose -* Three of the MAP are applied as cubic maps (see below) +* After a model is loaded it has a default material, this material can be +* modified in place rather than creating one from scratch... +* While all of the maps have particular names, they can be used for any purpose +* except for three maps that are applied as cubic maps (see below) * ********************************************************************************************/ - -#include - #include "raylib.h" #include "raymath.h" - -#define screenWidth 1280 -#define screenHeight 720 - - int main(void) { // Initialization //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + InitWindow(screenWidth, screenHeight, "raylib - simple shader"); // Define the camera to look into our 3d world @@ -43,71 +38,64 @@ int main(void) camera.fovy = 45.0f; camera.type = CAMERA_PERSPECTIVE; - // three models to show the shader on + // Define our three models to show the shader on Mesh torus = GenMeshTorus(.3, 1, 16, 32); Model model1 = LoadModelFromMesh(torus); Mesh cube = GenMeshCube(.8,.8,.8); Model model2 = LoadModelFromMesh(cube); - // this one un shaded just so we can see the gaps in the other two + // Generate model to be shaded just to see the gaps in the other two Mesh sphere = GenMeshSphere(1, 16, 16); Model model3 = LoadModelFromMesh(sphere); - // load the shader - Shader shader = LoadShader("resources/shaders/glsl330/mask.vs", - "resources/shaders/glsl330/mask.fs"); + // Load the shader + Shader shader = LoadShader("resources/shaders/glsl330/mask.vs", "resources/shaders/glsl330/mask.fs"); - // apply the diffuse texture (colour map) - Texture tex = LoadTexture("resources/plasma.png"); - model1.materials[0].maps[MAP_DIFFUSE].texture = tex; - model2.materials[0].maps[MAP_DIFFUSE].texture = tex; + // Load and apply the diffuse texture (colour map) + Texture texDiffuse = LoadTexture("resources/plasma.png"); + model1.materials[0].maps[MAP_DIFFUSE].texture = texDiffuse; + model2.materials[0].maps[MAP_DIFFUSE].texture = texDiffuse; - // using MAP_EMISSION as a spare slot to use for 2nd texture - // dont use MAP_IRRADIANCE, MAP_PREFILTER, or MAP_CUBEMAP - // as they are bound as cube maps (which don't see to work at all on my machine!) - Texture maskTx = LoadTexture("resources/mask.png"); - model1.materials[0].maps[MAP_EMISSION].texture = maskTx; - model2.materials[0].maps[MAP_EMISSION].texture = maskTx; + // Using MAP_EMISSION as a spare slot to use for 2nd texture + // NOTE: Don't use MAP_IRRADIANCE, MAP_PREFILTER or MAP_CUBEMAP + // as they are bound as cube maps + Texture texMask = LoadTexture("resources/mask.png"); + model1.materials[0].maps[MAP_EMISSION].texture = texMask; + model2.materials[0].maps[MAP_EMISSION].texture = texMask; shader.locs[LOC_MAP_EMISSION] = GetShaderLocation(shader, "mask"); - // frame is incremented each frame to animate the shader - int shaderFrame = GetShaderLocation(shader, "frame"); + // Frame is incremented each frame to animate the shader + int shaderFrame = GetShaderLocation(shader, "framesCounter"); - // apply the shader to the two models + // Apply the shader to the two models model1.materials[0].shader = shader; model2.materials[0].shader = shader; - - // frame counter - int frame = 0; - - // model rotation - Vector3 ang = { 0 }; + int framesCounter = 0; + Vector3 rotation = { 0 }; // Model rotation angles SetTargetFPS(60); // Set to run at 60 frames-per-second //-------------------------------------------------------------------------------------- - - // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- + framesCounter++; + rotation.x += 0.01f; + rotation.y += 0.005f; + rotation.z -= 0.0025f; - frame ++; - ang.x += 0.01; - ang.y += 0.005; - ang.z -= 0.0025; + // Send frames counter to shader for animation + SetShaderValue(shader, shaderFrame, &framesCounter, UNIFORM_INT); - // animate the shader - SetShaderValue(shader, shaderFrame, &frame, UNIFORM_INT); - - // rotate one of the models - model1.transform = MatrixRotateXYZ(ang); + // Rotate one of the models + model1.transform = MatrixRotateXYZ(rotation); UpdateCamera(&camera); + //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- @@ -124,11 +112,10 @@ int main(void) EndMode3D(); - DrawFPS(10, 10); + DrawRectangle(16, 698, MeasureText(FormatText("Frame: %i", framesCounter), 20) + 8, 42, BLUE); + DrawText(FormatText("Frame: %i", framesCounter), 20, 700, 20, WHITE); - int l = MeasureText(FormatText("Frame %i", frame), 20); - DrawRectangle(16, 698, l+8, 42, BLUE); - DrawText(FormatText("Frame %i", frame), 20, 700, 20, WHITE); + DrawFPS(10, 10); EndDrawing(); //---------------------------------------------------------------------------------- @@ -136,18 +123,17 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- - UnloadModel(model1); UnloadModel(model2); UnloadModel(model3); - UnloadTexture(tex); - UnloadTexture(maskTx); - UnloadShader(shader); + + UnloadTexture(texDiffuse); // Unload default diffuse texture + UnloadTexture(texMask); // Unload texture mask + + UnloadShader(shader); // Unload shader - CloseWindow(); // Close window and OpenGL context + CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; } - - diff --git a/src/models.c b/src/models.c index 3e0cce44f..90f3290a2 100644 --- a/src/models.c +++ b/src/models.c @@ -2921,7 +2921,8 @@ static Model LoadOBJ(const char *fileName) tinyobj_attrib_free(&attrib); tinyobj_shapes_free(meshes, meshCount); tinyobj_materials_free(materials, materialCount); - RL_FREE(data); // oh ray how did you miss this...! :-p + + RL_FREE(data); } // NOTE: At this point we have all model data loaded diff --git a/src/rlgl.h b/src/rlgl.h index 8eae4426d..2de1fbbca 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -2967,8 +2967,8 @@ char *LoadText(const char *fileName) Shader LoadShader(const char *vsFileName, const char *fsFileName) { Shader shader = { 0 }; - // double allocation causing leak (allocation done in LoadShaderCode) - //shader.locs = (int *)RL_CALLOC(MAX_SHADER_LOCATIONS, sizeof(int)); + + // NOTE: Shader.locs is allocated by LoadShaderCode() char *vShaderStr = NULL; char *fShaderStr = NULL; From 3fcf2ee19abd509cb250a55dde16de40379950be Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 22 Sep 2019 22:13:22 +0200 Subject: [PATCH 089/123] Example renamed --- examples/shaders/{shaders_simple.c => shaders_simple_mask.c} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename examples/shaders/{shaders_simple.c => shaders_simple_mask.c} (98%) diff --git a/examples/shaders/shaders_simple.c b/examples/shaders/shaders_simple_mask.c similarity index 98% rename from examples/shaders/shaders_simple.c rename to examples/shaders/shaders_simple_mask.c index e8c5ea97e..c8762be3a 100644 --- a/examples/shaders/shaders_simple.c +++ b/examples/shaders/shaders_simple_mask.c @@ -1,6 +1,6 @@ /******************************************************************************************* * -* raylib [shaders] example - Simple shader +* raylib [shaders] example - Simple shader mask * * This example has been created using raylib 2.5 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) @@ -28,7 +28,7 @@ int main(void) const int screenWidth = 800; const int screenHeight = 450; - InitWindow(screenWidth, screenHeight, "raylib - simple shader"); + InitWindow(screenWidth, screenHeight, "raylib - simple shader mask"); // Define the camera to look into our 3d world Camera camera = { 0 }; From 8adcec185eb04a5dc88aa7f57f16214c22be7b88 Mon Sep 17 00:00:00 2001 From: AlexHCC Date: Wed, 25 Sep 2019 00:08:07 +0300 Subject: [PATCH 090/123] Improve code readability (#976) --- src/shapes.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/shapes.c b/src/shapes.c index 4c4b353a3..4fd4eff57 100644 --- a/src/shapes.c +++ b/src/shapes.c @@ -1298,7 +1298,7 @@ void DrawTriangleStrip(Vector2 *points, int pointsCount, Color color) void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color) { if (sides < 3) sides = 3; - float internalAngle = 360.0f/(float)sides; + float centralAngle = 0.0f; if (rlCheckBufferLimit(4*(360/sides))) rlglDraw(); @@ -1318,14 +1318,14 @@ void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color col rlVertex2f(0, 0); rlTexCoord2f(recTexShapes.x/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); - rlVertex2f(sinf(DEG2RAD*internalAngle)*radius, cosf(DEG2RAD*internalAngle)*radius); + rlVertex2f(sinf(DEG2RAD*centralAngle)*radius, cosf(DEG2RAD*centralAngle)*radius); rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, (recTexShapes.y + recTexShapes.height)/texShapes.height); - rlVertex2f(sinf(DEG2RAD*internalAngle)*radius, cosf(DEG2RAD*internalAngle)*radius); + rlVertex2f(sinf(DEG2RAD*centralAngle)*radius, cosf(DEG2RAD*centralAngle)*radius); - internalAngle += 360.0f/(float)sides; + centralAngle += 360.0f/(float)sides; rlTexCoord2f((recTexShapes.x + recTexShapes.width)/texShapes.width, recTexShapes.y/texShapes.height); - rlVertex2f(sinf(DEG2RAD*internalAngle)*radius, cosf(DEG2RAD*internalAngle)*radius); + rlVertex2f(sinf(DEG2RAD*centralAngle)*radius, cosf(DEG2RAD*centralAngle)*radius); } rlEnd(); rlDisableTexture(); @@ -1336,10 +1336,10 @@ void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color col rlColor4ub(color.r, color.g, color.b, color.a); rlVertex2f(0, 0); - rlVertex2f(sinf(DEG2RAD*internalAngle)*radius, cosf(DEG2RAD*internalAngle)*radius); + rlVertex2f(sinf(DEG2RAD*centralAngle)*radius, cosf(DEG2RAD*centralAngle)*radius); - internalAngle += 360.0f/(float)sides; - rlVertex2f(sinf(DEG2RAD*internalAngle)*radius, cosf(DEG2RAD*internalAngle)*radius); + centralAngle += 360.0f/(float)sides; + rlVertex2f(sinf(DEG2RAD*centralAngle)*radius, cosf(DEG2RAD*centralAngle)*radius); } rlEnd(); #endif From 99e86d180bd72dc6a2813240c4a191562ff349ad Mon Sep 17 00:00:00 2001 From: Catalin Moldovan Date: Wed, 25 Sep 2019 17:31:10 +0300 Subject: [PATCH 091/123] Const corectness for LoadShaderCode (#977) * Const corectness for LoadShaderCode * Added const for standalone variant as well. --- src/raylib.h | 2 +- src/rlgl.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 65210d475..be5bcaf0b 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1304,7 +1304,7 @@ RLAPI RayHitInfo GetCollisionRayGround(Ray ray, float groundHeight); // Shader loading/unloading functions RLAPI char *LoadText(const char *fileName); // Load chars array from text file RLAPI Shader LoadShader(const char *vsFileName, const char *fsFileName); // Load shader from files and bind default locations -RLAPI Shader LoadShaderCode(char *vsCode, char *fsCode); // Load shader from code strings and bind default locations +RLAPI Shader LoadShaderCode(const char *vsCode, const char *fsCode); // Load shader from code strings and bind default locations RLAPI void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM) RLAPI Shader GetShaderDefault(void); // Get default shader diff --git a/src/rlgl.h b/src/rlgl.h index 2de1fbbca..05c63e949 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -519,7 +519,7 @@ RLAPI void rlUnloadMesh(Mesh mesh); // Unl // Shader loading/unloading functions RLAPI char *LoadText(const char *fileName); // Load chars array from text file RLAPI Shader LoadShader(const char *vsFileName, const char *fsFileName); // Load shader from files and bind default locations -RLAPI Shader LoadShaderCode(char *vsCode, char *fsCode); // Load shader from code strings and bind default locations +RLAPI Shader LoadShaderCode(const char *vsCode, const char *fsCode); // Load shader from code strings and bind default locations RLAPI void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM) RLAPI Shader GetShaderDefault(void); // Get default shader @@ -2986,7 +2986,7 @@ Shader LoadShader(const char *vsFileName, const char *fsFileName) // Load shader from code strings // NOTE: If shader string is NULL, using default vertex/fragment shaders -Shader LoadShaderCode(char *vsCode, char *fsCode) +Shader LoadShaderCode(const char *vsCode, const char *fsCode) { Shader shader = { 0 }; shader.locs = (int *)RL_CALLOC(MAX_SHADER_LOCATIONS, sizeof(int)); From a8e63b9724a381978467d589b0fe54b3f52673e1 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 25 Sep 2019 16:45:17 +0200 Subject: [PATCH 092/123] Convert default shader to const strings --- src/rlgl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rlgl.h b/src/rlgl.h index 05c63e949..70b0a5750 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -3868,7 +3868,7 @@ static Shader LoadShaderDefault(void) for (int i = 0; i < MAX_SHADER_LOCATIONS; i++) shader.locs[i] = -1; // Vertex shader directly defined, no external file required - char defaultVShaderStr[] = + const char *defaultVShaderStr = #if defined(GRAPHICS_API_OPENGL_21) "#version 120 \n" #elif defined(GRAPHICS_API_OPENGL_ES2) @@ -3897,7 +3897,7 @@ static Shader LoadShaderDefault(void) "} \n"; // Fragment shader directly defined, no external file required - char defaultFShaderStr[] = + const char *defaultFShaderStr = #if defined(GRAPHICS_API_OPENGL_21) "#version 120 \n" #elif defined(GRAPHICS_API_OPENGL_ES2) From df84f93938588793095df39d7998a03b11bc98d4 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 30 Sep 2019 17:32:06 +0200 Subject: [PATCH 093/123] Add security checks on file writting --- src/raudio.c | 53 ++++++++++++++++++++++++++----------------------- src/textures.c | 54 ++++++++++++++++++++++++++------------------------ 2 files changed, 56 insertions(+), 51 deletions(-) diff --git a/src/raudio.c b/src/raudio.c index 1f945be5e..6760b7276 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -909,38 +909,41 @@ void ExportWaveAsCode(Wave wave, const char *fileName) int dataSize = wave.sampleCount*wave.channels*wave.sampleSize/8; FILE *txtFile = fopen(fileName, "wt"); - - fprintf(txtFile, "\n//////////////////////////////////////////////////////////////////////////////////\n"); - fprintf(txtFile, "// //\n"); - fprintf(txtFile, "// WaveAsCode exporter v1.0 - Wave data exported as an array of bytes //\n"); - fprintf(txtFile, "// //\n"); - fprintf(txtFile, "// more info and bugs-report: github.com/raysan5/raylib //\n"); - fprintf(txtFile, "// feedback and support: ray[at]raylib.com //\n"); - fprintf(txtFile, "// //\n"); - fprintf(txtFile, "// Copyright (c) 2018 Ramon Santamaria (@raysan5) //\n"); - fprintf(txtFile, "// //\n"); - fprintf(txtFile, "//////////////////////////////////////////////////////////////////////////////////\n\n"); + + if (txtFile != NULL) + { + fprintf(txtFile, "\n//////////////////////////////////////////////////////////////////////////////////\n"); + fprintf(txtFile, "// //\n"); + fprintf(txtFile, "// WaveAsCode exporter v1.0 - Wave data exported as an array of bytes //\n"); + fprintf(txtFile, "// //\n"); + fprintf(txtFile, "// more info and bugs-report: github.com/raysan5/raylib //\n"); + fprintf(txtFile, "// feedback and support: ray[at]raylib.com //\n"); + fprintf(txtFile, "// //\n"); + fprintf(txtFile, "// Copyright (c) 2018 Ramon Santamaria (@raysan5) //\n"); + fprintf(txtFile, "// //\n"); + fprintf(txtFile, "//////////////////////////////////////////////////////////////////////////////////\n\n"); #if !defined(RAUDIO_STANDALONE) - // Get file name from path and convert variable name to uppercase - strcpy(varFileName, GetFileNameWithoutExt(fileName)); - for (int i = 0; varFileName[i] != '\0'; i++) if (varFileName[i] >= 'a' && varFileName[i] <= 'z') { varFileName[i] = varFileName[i] - 32; } + // Get file name from path and convert variable name to uppercase + strcpy(varFileName, GetFileNameWithoutExt(fileName)); + for (int i = 0; varFileName[i] != '\0'; i++) if (varFileName[i] >= 'a' && varFileName[i] <= 'z') { varFileName[i] = varFileName[i] - 32; } #else - strcpy(varFileName, fileName); + strcpy(varFileName, fileName); #endif - fprintf(txtFile, "// Wave data information\n"); - fprintf(txtFile, "#define %s_SAMPLE_COUNT %i\n", varFileName, wave.sampleCount); - fprintf(txtFile, "#define %s_SAMPLE_RATE %i\n", varFileName, wave.sampleRate); - fprintf(txtFile, "#define %s_SAMPLE_SIZE %i\n", varFileName, wave.sampleSize); - fprintf(txtFile, "#define %s_CHANNELS %i\n\n", varFileName, wave.channels); + fprintf(txtFile, "// Wave data information\n"); + fprintf(txtFile, "#define %s_SAMPLE_COUNT %i\n", varFileName, wave.sampleCount); + fprintf(txtFile, "#define %s_SAMPLE_RATE %i\n", varFileName, wave.sampleRate); + fprintf(txtFile, "#define %s_SAMPLE_SIZE %i\n", varFileName, wave.sampleSize); + fprintf(txtFile, "#define %s_CHANNELS %i\n\n", varFileName, wave.channels); - // Write byte data as hexadecimal text - fprintf(txtFile, "static unsigned char %s_DATA[%i] = { ", varFileName, dataSize); - for (int i = 0; i < dataSize - 1; i++) fprintf(txtFile, ((i%BYTES_TEXT_PER_LINE == 0)? "0x%x,\n" : "0x%x, "), ((unsigned char *)wave.data)[i]); - fprintf(txtFile, "0x%x };\n", ((unsigned char *)wave.data)[dataSize - 1]); + // Write byte data as hexadecimal text + fprintf(txtFile, "static unsigned char %s_DATA[%i] = { ", varFileName, dataSize); + for (int i = 0; i < dataSize - 1; i++) fprintf(txtFile, ((i%BYTES_TEXT_PER_LINE == 0)? "0x%x,\n" : "0x%x, "), ((unsigned char *)wave.data)[i]); + fprintf(txtFile, "0x%x };\n", ((unsigned char *)wave.data)[dataSize - 1]); - fclose(txtFile); + fclose(txtFile); + } } // Play a sound diff --git a/src/textures.c b/src/textures.c index 5a91913f0..1c7edac9e 100644 --- a/src/textures.c +++ b/src/textures.c @@ -849,38 +849,40 @@ void ExportImageAsCode(Image image, const char *fileName) { #define BYTES_TEXT_PER_LINE 20 - char varFileName[256] = { 0 }; - int dataSize = GetPixelDataSize(image.width, image.height, image.format); - FILE *txtFile = fopen(fileName, "wt"); + + if (txtFile != NULL) + { + char varFileName[256] = { 0 }; + int dataSize = GetPixelDataSize(image.width, image.height, image.format); - fprintf(txtFile, "\n"); - fprintf(txtFile, "////////////////////////////////////////////////////////////////////////////////////////\n"); - fprintf(txtFile, "// //\n"); - fprintf(txtFile, "// ImageAsCode exporter v1.0 - Image pixel data exported as an array of bytes //\n"); - fprintf(txtFile, "// //\n"); - fprintf(txtFile, "// more info and bugs-report: github.com/raysan5/raylib //\n"); - fprintf(txtFile, "// feedback and support: ray[at]raylib.com //\n"); - fprintf(txtFile, "// //\n"); - fprintf(txtFile, "// Copyright (c) 2019 Ramon Santamaria (@raysan5) //\n"); - fprintf(txtFile, "// //\n"); - fprintf(txtFile, "////////////////////////////////////////////////////////////////////////////////////////\n\n"); + fprintf(txtFile, "////////////////////////////////////////////////////////////////////////////////////////\n"); + fprintf(txtFile, "// //\n"); + fprintf(txtFile, "// ImageAsCode exporter v1.0 - Image pixel data exported as an array of bytes //\n"); + fprintf(txtFile, "// //\n"); + fprintf(txtFile, "// more info and bugs-report: github.com/raysan5/raylib //\n"); + fprintf(txtFile, "// feedback and support: ray[at]raylib.com //\n"); + fprintf(txtFile, "// //\n"); + fprintf(txtFile, "// Copyright (c) 2019 Ramon Santamaria (@raysan5) //\n"); + fprintf(txtFile, "// //\n"); + fprintf(txtFile, "////////////////////////////////////////////////////////////////////////////////////////\n\n"); - // Get file name from path and convert variable name to uppercase - strcpy(varFileName, GetFileNameWithoutExt(fileName)); - for (int i = 0; varFileName[i] != '\0'; i++) if ((varFileName[i] >= 'a') && (varFileName[i] <= 'z')) { varFileName[i] = varFileName[i] - 32; } + // Get file name from path and convert variable name to uppercase + 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 - fprintf(txtFile, "// Image data information\n"); - fprintf(txtFile, "#define %s_WIDTH %i\n", varFileName, image.width); - fprintf(txtFile, "#define %s_HEIGHT %i\n", varFileName, image.height); - fprintf(txtFile, "#define %s_FORMAT %i // raylib internal pixel format\n\n", varFileName, image.format); + // Add image information + fprintf(txtFile, "// Image data information\n"); + fprintf(txtFile, "#define %s_WIDTH %i\n", varFileName, image.width); + fprintf(txtFile, "#define %s_HEIGHT %i\n", varFileName, image.height); + fprintf(txtFile, "#define %s_FORMAT %i // raylib internal pixel format\n\n", varFileName, image.format); - fprintf(txtFile, "static unsigned char %s_DATA[%i] = { ", varFileName, dataSize); - for (int i = 0; i < dataSize - 1; i++) fprintf(txtFile, ((i%BYTES_TEXT_PER_LINE == 0)? "0x%x,\n" : "0x%x, "), ((unsigned char *)image.data)[i]); - fprintf(txtFile, "0x%x };\n", ((unsigned char *)image.data)[dataSize - 1]); + fprintf(txtFile, "static unsigned char %s_DATA[%i] = { ", varFileName, dataSize); + for (int i = 0; i < dataSize - 1; i++) fprintf(txtFile, ((i%BYTES_TEXT_PER_LINE == 0)? "0x%x,\n" : "0x%x, "), ((unsigned char *)image.data)[i]); + fprintf(txtFile, "0x%x };\n", ((unsigned char *)image.data)[dataSize - 1]); - fclose(txtFile); + fclose(txtFile); + } } // Copy an image to a new image From 047f093503de31217738c15c0bec2ae2a25c5f18 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Thu, 3 Oct 2019 17:06:08 +0200 Subject: [PATCH 094/123] Remove dead assignments (#980) The result of `success` is actually never used. Either we should check for it and return or remove it. I assume just checking the last one is okay. --- src/raudio.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/raudio.c b/src/raudio.c index 6760b7276..447e50808 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -1870,9 +1870,9 @@ static int SaveWAV(Wave wave, const char *fileName) waveData.subChunkID[3] = 'a'; waveData.subChunkSize = dataSize; - success = fwrite(&riffHeader, sizeof(RiffHeader), 1, wavFile); - success = fwrite(&waveFormat, sizeof(WaveFormat), 1, wavFile); - success = fwrite(&waveData, sizeof(WaveData), 1, wavFile); + fwrite(&riffHeader, sizeof(RiffHeader), 1, wavFile); + fwrite(&waveFormat, sizeof(WaveFormat), 1, wavFile); + fwrite(&waveData, sizeof(WaveData), 1, wavFile); success = fwrite(wave.data, dataSize, 1, wavFile); From eb772bc1e0f1042338037eb8a906ea4464001ab0 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Thu, 3 Oct 2019 17:07:32 +0200 Subject: [PATCH 095/123] Check whether GLTF was loaded correctly (#981) --- src/models.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/models.c b/src/models.c index 90f3290a2..8a4fe1d2d 100644 --- a/src/models.c +++ b/src/models.c @@ -3406,6 +3406,9 @@ static Model LoadGLTF(const char *fileName) // Read data buffers result = cgltf_load_buffers(&options, data, fileName); + if (result != cgltf_result_success) { + TraceLog(LOG_INFO, "[%s][%s] Error loading mesh/material buffers", fileName, (data->file_type == 2)? "glb" : "gltf"); + } int primitivesCount = 0; From 596338b26a1196e98d1b842a3bd97423ceb5d595 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Thu, 3 Oct 2019 21:05:21 +0200 Subject: [PATCH 096/123] Check whether parsing mtl file was succesful (#982) --- src/models.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/models.c b/src/models.c index 8a4fe1d2d..2462190d9 100644 --- a/src/models.c +++ b/src/models.c @@ -809,6 +809,9 @@ Material *LoadMaterials(const char *fileName, int *materialCount) tinyobj_material_t *mats; int result = tinyobj_parse_mtl_file(&mats, &count, fileName); + if (result != TINYOBJ_SUCCESS) { + TraceLog(LOG_WARNING, "[%s] Could not parse Materials file", fileName); + } // TODO: Process materials to return From 82306af111894397cb2028ac270f2916aa615fab Mon Sep 17 00:00:00 2001 From: elitepleb Date: Sat, 5 Oct 2019 23:24:03 +0300 Subject: [PATCH 097/123] projects: CMake: bump up minimal raylib version (#983) While at it, add comment to indicate what the version signifies. [a3f: updated commit message] --- projects/CMake/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/projects/CMake/CMakeLists.txt b/projects/CMake/CMakeLists.txt index cf1d65a62..ef0d3c1b1 100644 --- a/projects/CMake/CMakeLists.txt +++ b/projects/CMake/CMakeLists.txt @@ -1,7 +1,8 @@ cmake_minimum_required(VERSION 3.11) # FetchContent is available in 3.11+ project(example) -find_package(raylib 2.0 QUIET) # Let CMake search for a raylib-config.cmake +# Set this to the minimal version you want to support +find_package(raylib 2.5 QUIET) # Let CMake search for a raylib-config.cmake # You could change the QUIET above to REQUIRED and remove this if() clause # This part downloads raylib and builds it if it's not installed on your system From 161c8b7d082dcaf7f71d14396f22ed6ddf8699e4 Mon Sep 17 00:00:00 2001 From: chriscamacho Date: Fri, 11 Oct 2019 13:54:13 +0100 Subject: [PATCH 098/123] corrected examples Makefile target (#985) --- examples/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/Makefile b/examples/Makefile index c4e7c57c6..c71758497 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -438,7 +438,7 @@ EXAMPLES = \ shaders/shaders_eratosthenes \ shaders/shaders_basic_lighting \ shaders/shaders_fog \ - shaders/shaders_simple \ + shaders/shaders_simple_mask \ audio/audio_module_playing \ audio/audio_music_stream \ audio/audio_raw_stream \ From 12d3e21f1bfa66f3aca334bcb01da9b52f96b089 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 11 Oct 2019 20:08:41 +0200 Subject: [PATCH 099/123] REVIEW: ImageAlphaMask() When adding alpha mask to GRAYSCALE image, if using ImageFormat(), it could change pixel values, now we avoid that, mask is just added as an extra channel --- src/textures.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/textures.c b/src/textures.c index 1c7edac9e..4e48d1f7e 100644 --- a/src/textures.c +++ b/src/textures.c @@ -1181,13 +1181,18 @@ void ImageAlphaMask(Image *image, Image alphaMask) // In case image is only grayscale, we just add alpha channel if (image->format == UNCOMPRESSED_GRAYSCALE) { - ImageFormat(image, UNCOMPRESSED_GRAY_ALPHA); + unsigned char *data = (unsigned char *)RL_MALLOC(image->width*image->height*2); // Apply alpha mask to alpha channel - for (int i = 0, k = 1; (i < mask.width*mask.height) || (i < image->width*image->height); i++, k += 2) + for (int i = 0, k = 0; (i < mask.width*mask.height) || (i < image->width*image->height); i++, k += 2) { - ((unsigned char *)image->data)[k] = ((unsigned char *)mask.data)[i]; + data[k] = ((unsigned char *)image->data)[i]; + data[k + 1] = ((unsigned char *)mask.data)[i]; } + + RL_FREE(image->data); + image->data = data; + image->format = UNCOMPRESSED_GRAY_ALPHA; } else { From e0cb892d2d2d9d1c95f5f0622f1f8237ee843f45 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 11 Oct 2019 20:12:15 +0200 Subject: [PATCH 100/123] ADDED: GetCodepoints() Get the unicode equivalent characters (as int array) from a UTF-8 text array... maybe this function is renamed to be clearer to users... --- src/raylib.h | 4 ++-- src/text.c | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index be5bcaf0b..11587e2ef 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1188,8 +1188,8 @@ RLAPI void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontS RLAPI int MeasureText(const char *text, int fontSize); // Measure string width for default font RLAPI Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing); // Measure string size for Font RLAPI int GetGlyphIndex(Font font, int character); // Get index position for a unicode character on font -RLAPI int GetNextCodepoint(const char *text, int *bytesProcessed); // Returns next codepoint in a UTF8 encoded string - // NOTE: 0x3f('?') is returned on failure +RLAPI int GetNextCodepoint(const char *text, int *bytesProcessed); // Returns next codepoint in a UTF8 encoded string; 0x3f('?') is returned on failure +RLAPI int *GetCodepoints(const char *text, int *count); // Get all codepoints in a string, codepoints count returned by parameters // Text strings management functions // NOTE: Some strings allocate memory internally for returned strings, just be careful! diff --git a/src/text.c b/src/text.c index 4eb1b4b04..4dad8c6b8 100644 --- a/src/text.c +++ b/src/text.c @@ -65,6 +65,8 @@ //---------------------------------------------------------------------------------- #define MAX_TEXT_BUFFER_LENGTH 1024 // Size of internal static buffers of some Text*() functions +#define MAX_TEXT_UNICODE_CHARS 512 // Maximum number of unicode codepoints + //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- @@ -869,6 +871,26 @@ int GetNextCodepoint(const char *text, int *bytesProcessed) return code; } +// Get all codepoints in a string, codepoints count returned by parameters +int *GetCodepoints(const char *text, int *count) +{ + static int codepoints[MAX_TEXT_UNICODE_CHARS] = { 0 }; + memset(codepoints, 0, MAX_TEXT_UNICODE_CHARS*sizeof(int)); + + int bytesProcessed = 0; + int textLength = strlen(text); + int codepointsCount = 0; + + for (int i = 0; i < textLength; codepointsCount++) + { + codepoints[codepointsCount] = GetNextCodepoint(text + i, &bytesProcessed); + i += bytesProcessed; + } + + return codepoints; +} + + // Draw text (using default font) // NOTE: fontSize work like in any drawing program but if fontSize is lower than font-base-size, then font-base-size is used From 7baa2975ec616bf334fdc4858703896d41589385 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 11 Oct 2019 20:13:11 +0200 Subject: [PATCH 101/123] REDESIGNED: IsFileExtension() Now it accepts a ';' separated list of extensions, useful to check multiple extensions --- src/core.c | 29 +++++++++-------------------- src/text.c | 2 +- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/src/core.c b/src/core.c index 305eb33cf..40c48f42f 100644 --- a/src/core.c +++ b/src/core.c @@ -1796,29 +1796,18 @@ bool FileExists(const char *fileName) bool IsFileExtension(const char *fileName, const char *ext) { bool result = false; - const char *fileExt; - - if ((fileExt = strrchr(fileName, '.')) != NULL) + const char *fileExt = GetExtension(fileName); + + int extCount = 0; + const char **checkExts = TextSplit(ext, ';', &extCount); + + for (int i = 0; i < extCount; i++) { -#if defined(_WIN32) - result = true; - int extLen = strlen(ext); - - if (strlen(fileExt) == extLen) + if (strcmp(fileExt, checkExts[i] + 1) == 0) { - for (int i = 0; i < extLen; i++) - { - if (tolower(fileExt[i]) != tolower(ext[i])) - { - result = false; - break; - } - } + result = true; + break; } - else result = false; -#else - if (strcmp(fileExt, ext) == 0) result = true; -#endif } return result; diff --git a/src/text.c b/src/text.c index 4dad8c6b8..9617c11a6 100644 --- a/src/text.c +++ b/src/text.c @@ -284,7 +284,7 @@ Font LoadFont(const char *fileName) Font font = { 0 }; #if defined(SUPPORT_FILEFORMAT_TTF) - if (IsFileExtension(fileName, ".ttf") || IsFileExtension(fileName, ".otf")) font = LoadFontEx(fileName, DEFAULT_TTF_FONTSIZE, NULL, DEFAULT_TTF_NUMCHARS); + if (IsFileExtension(fileName, ".ttf;.otf")) font = LoadFontEx(fileName, DEFAULT_TTF_FONTSIZE, NULL, DEFAULT_TTF_NUMCHARS); else #endif #if defined(SUPPORT_FILEFORMAT_FNT) From e40c26dea56a8f6f3c6143eb8c7be05b363b335a Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 17 Oct 2019 17:07:09 +0200 Subject: [PATCH 102/123] REVIEWED: GetCodepoints() issue - Improved LoadBMFont() --- src/text.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/text.c b/src/text.c index 9617c11a6..ec0ffa74b 100644 --- a/src/text.c +++ b/src/text.c @@ -886,6 +886,8 @@ int *GetCodepoints(const char *text, int *count) codepoints[codepointsCount] = GetNextCodepoint(text + i, &bytesProcessed); i += bytesProcessed; } + + *count = codepointsCount; return codepoints; } @@ -1594,18 +1596,15 @@ static Font LoadBMFont(const char *fileName) TraceLog(LOG_DEBUG, "[%s] Font texture loading path: %s", fileName, texPath); Image imFont = LoadImage(texPath); - Image imFontAlpha = ImageCopy(imFont); if (imFont.format == UNCOMPRESSED_GRAYSCALE) { - for (int i = 0; i < imFontAlpha.width*imFontAlpha.height; i++) ((unsigned char *)imFontAlpha.data)[i] = 0xff; - - ImageAlphaMask(&imFontAlpha, imFont); - font.texture = LoadTextureFromImage(imFontAlpha); + // Convert image to GRAYSCALE + ALPHA, using the mask as the alpha channel + ImageAlphaMask(&imFont, imFont); + for (int p = 0; p < (imFont.width*imFont.height*2); p += 2) ((unsigned char *)(imFont.data))[p] = 0xff; } - else font.texture = LoadTextureFromImage(imFont); - UnloadImage(imFont); + font.texture = LoadTextureFromImage(imFont); RL_FREE(texPath); @@ -1633,10 +1632,10 @@ static Font LoadBMFont(const char *fileName) font.chars[i].advanceX = charAdvanceX; // Fill character image data from imFont data - font.chars[i].image = ImageFromImage(imFontAlpha, font.recs[i]); + font.chars[i].image = ImageFromImage(imFont, font.recs[i]); } - UnloadImage(imFontAlpha); + UnloadImage(imFont); fclose(fntFile); From b75511248dfa53b20ff915b7f4a2b1b4e31925b9 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 17 Oct 2019 17:18:03 +0200 Subject: [PATCH 103/123] Remove trailing spaces --- src/camera.h | 74 ++++++++++++++--------------- src/core.c | 50 ++++++++++---------- src/gestures.h | 94 ++++++++++++++++++------------------ src/physac.h | 6 +-- src/raudio.c | 74 ++++++++++++++--------------- src/raudio.h | 2 +- src/rglfw.c | 2 +- src/rlgl.h | 2 +- src/rmem.h | 122 +++++++++++++++++++++++------------------------ src/rnet.h | 8 ++-- src/text.c | 126 ++++++++++++++++++++++++------------------------- src/textures.c | 42 ++++++++--------- src/utils.h | 6 +-- 13 files changed, 304 insertions(+), 304 deletions(-) diff --git a/src/camera.h b/src/camera.h index bc813b53b..51da4804f 100644 --- a/src/camera.h +++ b/src/camera.h @@ -8,7 +8,7 @@ * * #define CAMERA_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 +* 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. * * #define CAMERA_STANDALONE @@ -77,7 +77,7 @@ } Camera3D; typedef Camera3D Camera; // Camera type fallback, defaults to Camera3D - + // Camera system modes typedef enum { CAMERA_CUSTOM = 0, @@ -113,8 +113,8 @@ void UpdateCamera(Camera *camera); // Update camera pos void SetCameraPanControl(int panKey); // Set camera pan key to combine with mouse movement (free camera) void SetCameraAltControl(int altKey); // Set camera alt key to combine with mouse movement (free camera) void SetCameraSmoothZoomControl(int szoomKey); // Set camera smooth zoom key to combine with mouse (free camera) -void SetCameraMoveControls(int frontKey, int backKey, - int rightKey, int leftKey, +void SetCameraMoveControls(int frontKey, int backKey, + int rightKey, int leftKey, int upKey, int downKey); // Set camera move controls (1st person and 3rd person cameras) #endif @@ -188,21 +188,21 @@ void SetCameraMoveControls(int frontKey, int backKey, // Types and Structures Definition //---------------------------------------------------------------------------------- // Camera move modes (first person and third person cameras) -typedef enum { - MOVE_FRONT = 0, - MOVE_BACK, - MOVE_RIGHT, - MOVE_LEFT, - MOVE_UP, - MOVE_DOWN +typedef enum { + MOVE_FRONT = 0, + MOVE_BACK, + MOVE_RIGHT, + MOVE_LEFT, + MOVE_UP, + MOVE_DOWN } CameraMove; //---------------------------------------------------------------------------------- // Global Variables Definition //---------------------------------------------------------------------------------- static Vector2 cameraAngle = { 0.0f, 0.0f }; // Camera angle in plane XZ -static float cameraTargetDistance = 0.0f; // Camera distance from position to target -static float playerEyesPosition = 1.85f; // Default player eyes position from ground (in meters) +static float cameraTargetDistance = 0.0f; // Camera distance from position to target +static float playerEyesPosition = 1.85f; // Default player eyes position from ground (in meters) static int cameraMoveControl[6] = { 'W', 'S', 'D', 'A', 'E', 'Q' }; static int cameraPanControlKey = 2; // raylib: MOUSE_MIDDLE_BUTTON @@ -236,21 +236,21 @@ void SetCameraMode(Camera camera, int mode) { Vector3 v1 = camera.position; Vector3 v2 = camera.target; - + float dx = v2.x - v1.x; float dy = v2.y - v1.y; float dz = v2.z - v1.z; - + cameraTargetDistance = sqrtf(dx*dx + dy*dy + dz*dz); - + Vector2 distance = { 0.0f, 0.0f }; distance.x = sqrtf(dx*dx + dz*dz); distance.y = sqrtf(dx*dx + dy*dy); - + // Camera angle calculation cameraAngle.x = asinf( (float)fabs(dx)/distance.x); // Camera angle in plane XZ (0 aligned with Z, move positive CCW) cameraAngle.y = -asinf( (float)fabs(dy)/distance.y); // Camera angle in plane XY (0 aligned with X, move positive CW) - + playerEyesPosition = camera.position.y; // Lock cursor for first person and third person cameras @@ -272,24 +272,24 @@ void UpdateCamera(Camera *camera) static Vector2 previousMousePosition = { 0.0f, 0.0f }; // TODO: Compute cameraTargetDistance and cameraAngle here - + // Mouse movement detection Vector2 mousePositionDelta = { 0.0f, 0.0f }; Vector2 mousePosition = GetMousePosition(); int mouseWheelMove = GetMouseWheelMove(); - + // Keys input detection bool panKey = IsMouseButtonDown(cameraPanControlKey); bool altKey = IsKeyDown(cameraAltControlKey); bool szoomKey = IsKeyDown(cameraSmoothZoomControlKey); - + bool direction[6] = { IsKeyDown(cameraMoveControl[MOVE_FRONT]), IsKeyDown(cameraMoveControl[MOVE_BACK]), IsKeyDown(cameraMoveControl[MOVE_RIGHT]), IsKeyDown(cameraMoveControl[MOVE_LEFT]), IsKeyDown(cameraMoveControl[MOVE_UP]), IsKeyDown(cameraMoveControl[MOVE_DOWN]) }; - + // TODO: Consider touch inputs for camera if (cameraMode != CAMERA_CUSTOM) @@ -384,7 +384,7 @@ void UpdateCamera(Camera *camera) camera->target.z += ((mousePositionDelta.x*CAMERA_FREE_MOUSE_SENSITIVITY)*sinf(cameraAngle.x) + (mousePositionDelta.y*CAMERA_FREE_MOUSE_SENSITIVITY)*cosf(cameraAngle.x)*sinf(cameraAngle.y))*(cameraTargetDistance/CAMERA_FREE_PANNING_DIVIDER); } } - + // Update camera position with changes camera->position.x = sinf(cameraAngle.x)*cameraTargetDistance*cosf(cameraAngle.y) + camera->target.x; camera->position.y = ((cameraAngle.y <= 0.0f)? 1 : -1)*sinf(cameraAngle.y)*cameraTargetDistance*sinf(cameraAngle.y) + camera->target.y; @@ -395,15 +395,15 @@ void UpdateCamera(Camera *camera) { cameraAngle.x += CAMERA_ORBITAL_SPEED; // Camera orbit angle cameraTargetDistance -= (mouseWheelMove*CAMERA_MOUSE_SCROLL_SENSITIVITY); // Camera zoom - + // Camera distance clamp if (cameraTargetDistance < CAMERA_THIRD_PERSON_DISTANCE_CLAMP) cameraTargetDistance = CAMERA_THIRD_PERSON_DISTANCE_CLAMP; - + // Update camera position with changes camera->position.x = sinf(cameraAngle.x)*cameraTargetDistance*cosf(cameraAngle.y) + camera->target.x; camera->position.y = ((cameraAngle.y <= 0.0f)? 1 : -1)*sinf(cameraAngle.y)*cameraTargetDistance*sinf(cameraAngle.y) + camera->target.y; camera->position.z = cosf(cameraAngle.x)*cameraTargetDistance*cosf(cameraAngle.y) + camera->target.z; - + } break; case CAMERA_FIRST_PERSON: { @@ -411,11 +411,11 @@ void UpdateCamera(Camera *camera) sinf(cameraAngle.x)*direction[MOVE_FRONT] - cosf(cameraAngle.x)*direction[MOVE_LEFT] + cosf(cameraAngle.x)*direction[MOVE_RIGHT])/PLAYER_MOVEMENT_SENSITIVITY; - + camera->position.y += (sinf(cameraAngle.y)*direction[MOVE_FRONT] - sinf(cameraAngle.y)*direction[MOVE_BACK] + 1.0f*direction[MOVE_UP] - 1.0f*direction[MOVE_DOWN])/PLAYER_MOVEMENT_SENSITIVITY; - + camera->position.z += (cosf(cameraAngle.x)*direction[MOVE_BACK] - cosf(cameraAngle.x)*direction[MOVE_FRONT] + sinf(cameraAngle.x)*direction[MOVE_LEFT] - @@ -424,11 +424,11 @@ void UpdateCamera(Camera *camera) bool isMoving = false; // Required for swinging for (int i = 0; i < 6; i++) if (direction[i]) { isMoving = true; break; } - + // Camera orientation calculation cameraAngle.x += (mousePositionDelta.x*-CAMERA_MOUSE_MOVE_SENSITIVITY); cameraAngle.y += (mousePositionDelta.y*-CAMERA_MOUSE_MOVE_SENSITIVITY); - + // Angle clamp if (cameraAngle.y > CAMERA_FIRST_PERSON_MIN_CLAMP*DEG2RAD) cameraAngle.y = CAMERA_FIRST_PERSON_MIN_CLAMP*DEG2RAD; else if (cameraAngle.y < CAMERA_FIRST_PERSON_MAX_CLAMP*DEG2RAD) cameraAngle.y = CAMERA_FIRST_PERSON_MAX_CLAMP*DEG2RAD; @@ -437,7 +437,7 @@ void UpdateCamera(Camera *camera) camera->target.x = camera->position.x - sinf(cameraAngle.x)*CAMERA_FIRST_PERSON_FOCUS_DISTANCE; camera->target.y = camera->position.y + sinf(cameraAngle.y)*CAMERA_FIRST_PERSON_FOCUS_DISTANCE; camera->target.z = camera->position.z - cosf(cameraAngle.x)*CAMERA_FIRST_PERSON_FOCUS_DISTANCE; - + if (isMoving) swingCounter++; // Camera position update @@ -446,8 +446,8 @@ void UpdateCamera(Camera *camera) camera->up.x = sinf(swingCounter/(CAMERA_FIRST_PERSON_STEP_TRIGONOMETRIC_DIVIDER*2))/CAMERA_FIRST_PERSON_WAVING_DIVIDER; camera->up.z = -sinf(swingCounter/(CAMERA_FIRST_PERSON_STEP_TRIGONOMETRIC_DIVIDER*2))/CAMERA_FIRST_PERSON_WAVING_DIVIDER; - - + + } break; case CAMERA_THIRD_PERSON: { @@ -455,11 +455,11 @@ void UpdateCamera(Camera *camera) sinf(cameraAngle.x)*direction[MOVE_FRONT] - cosf(cameraAngle.x)*direction[MOVE_LEFT] + cosf(cameraAngle.x)*direction[MOVE_RIGHT])/PLAYER_MOVEMENT_SENSITIVITY; - + camera->position.y += (sinf(cameraAngle.y)*direction[MOVE_FRONT] - sinf(cameraAngle.y)*direction[MOVE_BACK] + 1.0f*direction[MOVE_UP] - 1.0f*direction[MOVE_DOWN])/PLAYER_MOVEMENT_SENSITIVITY; - + camera->position.z += (cosf(cameraAngle.x)*direction[MOVE_BACK] - cosf(cameraAngle.x)*direction[MOVE_FRONT] + sinf(cameraAngle.x)*direction[MOVE_LEFT] - @@ -468,7 +468,7 @@ void UpdateCamera(Camera *camera) // Camera orientation calculation cameraAngle.x += (mousePositionDelta.x*-CAMERA_MOUSE_MOVE_SENSITIVITY); cameraAngle.y += (mousePositionDelta.y*-CAMERA_MOUSE_MOVE_SENSITIVITY); - + // Angle clamp if (cameraAngle.y > CAMERA_THIRD_PERSON_MIN_CLAMP*DEG2RAD) cameraAngle.y = CAMERA_THIRD_PERSON_MIN_CLAMP*DEG2RAD; else if (cameraAngle.y < CAMERA_THIRD_PERSON_MAX_CLAMP*DEG2RAD) cameraAngle.y = CAMERA_THIRD_PERSON_MAX_CLAMP*DEG2RAD; @@ -487,7 +487,7 @@ void UpdateCamera(Camera *camera) } break; default: break; - } + } } // Set camera pan key to combine with mouse movement (free camera) diff --git a/src/core.c b/src/core.c index 40c48f42f..9fe29b8ff 100644 --- a/src/core.c +++ b/src/core.c @@ -579,7 +579,7 @@ static void InitTerminal(void) } else { - + ioctl(STDIN_FILENO, KDSKBMODE, K_XLATE); } @@ -590,7 +590,7 @@ static void InitTerminal(void) static void RestoreTerminal(void) { TraceLog(LOG_INFO, "Restore Terminal ..."); - + // Reset to default keyboard settings tcsetattr(STDIN_FILENO, TCSANOW, &defaultKeyboardSettings); @@ -774,7 +774,7 @@ void CloseWindow(void) pthread_join(eventWorkers[i].threadId, NULL); } } - + if (gamepadThreadId) pthread_join(gamepadThreadId, NULL); #endif @@ -1207,7 +1207,7 @@ void EndDrawing(void) // we draw a small rectangle for user reference DrawRectangle(mousePosition.x, mousePosition.y, 3, 3, MAROON); #endif - + rlglDraw(); // Draw Buffers (Only OpenGL 3+ and ES2) #if defined(SUPPORT_GIF_RECORDING) @@ -1270,10 +1270,10 @@ void BeginMode2D(Camera2D camera) rlglDraw(); // Draw Buffers (Only OpenGL 3+ and ES2) rlLoadIdentity(); // Reset current matrix (MODELVIEW) - + // Apply screen scaling if required rlMultMatrixf(MatrixToFloat(screenScaling)); - + // Apply 2d camera transformation to modelview rlMultMatrixf(MatrixToFloat(GetCameraMatrix2D(camera))); } @@ -1465,7 +1465,7 @@ Matrix GetCameraMatrix(Camera camera) } // Returns camera 2d transform matrix -Matrix GetCameraMatrix2D(Camera2D camera) +Matrix GetCameraMatrix2D(Camera2D camera) { Matrix matTransform = { 0 }; // The camera in world-space is set by @@ -1486,9 +1486,9 @@ Matrix GetCameraMatrix2D(Camera2D camera) Matrix matRotation = MatrixRotate((Vector3){ 0.0f, 0.0f, 1.0f }, camera.rotation*DEG2RAD); Matrix matScale = MatrixScale(camera.zoom, camera.zoom, 1.0f); Matrix matTranslation = MatrixTranslate(camera.offset.x, camera.offset.y, 0.0f); - + matTransform = MatrixMultiply(MatrixMultiply(matOrigin, MatrixMultiply(matScale, matRotation)), matTranslation); - + return matTransform; } @@ -1535,20 +1535,20 @@ Vector2 GetWorldToScreen(Vector3 position, Camera camera) } // Returns the screen space position for a 2d camera world space position -Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera) +Vector2 GetWorldToScreen2D(Vector2 position, Camera2D camera) { Matrix matCamera = GetCameraMatrix2D(camera); Vector3 transform = Vector3Transform((Vector3){ position.x, position.y, 0 }, matCamera); - + return (Vector2){ transform.x, transform.y }; } // Returns the world space position for a 2d camera screen space position -Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera) +Vector2 GetScreenToWorld2D(Vector2 position, Camera2D camera) { Matrix invMatCamera = MatrixInvert(GetCameraMatrix2D(camera)); Vector3 transform = Vector3Transform((Vector3){ position.x, position.y, 0 }, invMatCamera); - + return (Vector2){ transform.x, transform.y }; } @@ -1797,10 +1797,10 @@ bool IsFileExtension(const char *fileName, const char *ext) { bool result = false; const char *fileExt = GetExtension(fileName); - + int extCount = 0; const char **checkExts = TextSplit(ext, ';', &extCount); - + for (int i = 0; i < extCount; i++) { if (strcmp(fileExt, checkExts[i] + 1) == 0) @@ -1905,9 +1905,9 @@ const char *GetPrevDirectoryPath(const char *dirPath) static char prevDirPath[MAX_FILEPATH_LENGTH]; memset(prevDirPath, 0, MAX_FILEPATH_LENGTH); int pathLen = strlen(dirPath); - + if (pathLen <= 3) strcpy(prevDirPath, dirPath); - + for (int i = (pathLen - 1); (i > 0) && (pathLen > 3); i--) { if ((dirPath[i] == '\\') || (dirPath[i] == '/')) @@ -1917,7 +1917,7 @@ const char *GetPrevDirectoryPath(const char *dirPath) break; } } - + return prevDirPath; } @@ -2034,9 +2034,9 @@ long GetFileModTime(const char *fileName) unsigned char *CompressData(unsigned char *data, int dataLength, int *compDataLength) { #define COMPRESSION_QUALITY_DEFLATE 8 - + unsigned char *compData = NULL; - + #if defined(SUPPORT_COMPRESSION_API) compData = stbi_zlib_compress(data, dataLength, compDataLength, COMPRESSION_QUALITY_DEFLATE); #endif @@ -2048,7 +2048,7 @@ unsigned char *CompressData(unsigned char *data, int dataLength, int *compDataLe unsigned char *DecompressData(unsigned char *compData, int compDataLength, int *dataLength) { char *data = NULL; - + #if defined(SUPPORT_COMPRESSION_API) data = stbi_zlib_decode_malloc((char *)compData, compDataLength, dataLength); #endif @@ -2653,9 +2653,9 @@ static bool InitGraphicsDevice(int width, int height) glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0); glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API); #if defined(PLATFORM_DESKTOP) - glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_EGL_CONTEXT_API); + glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_EGL_CONTEXT_API); #else - glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_NATIVE_CONTEXT_API); + glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_NATIVE_CONTEXT_API); #endif } @@ -4920,7 +4920,7 @@ static void *EventThread(void *arg) // TODO: This fifo is not fully threadsafe with multiple writers, so multiple keyboards hitting a key at the exact same time could miss a key (double write to head before it was incremented) } */ - + currentKeyState[keycode] = event.value; if (event.value == 1) lastKeyPressed = keycode; // Register last key pressed @@ -4934,7 +4934,7 @@ static void *EventThread(void *arg) #endif if (currentKeyState[exitKey] == 1) windowShouldClose = true; - + TraceLog(LOG_DEBUG, "KEY%s ScanCode: %4i KeyCode: %4i",event.value == 0 ? "UP":"DOWN", event.code, keycode); } } diff --git a/src/gestures.h b/src/gestures.h index 367753330..7b3d7f31b 100644 --- a/src/gestures.h +++ b/src/gestures.h @@ -8,7 +8,7 @@ * * #define GESTURES_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 +* 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. * * #define GESTURES_STANDALONE @@ -216,8 +216,8 @@ static float pinchDistance = 0.0f; // PINCH displacement distance ( static int currentGesture = GESTURE_NONE; // Current detected gesture -// Enabled gestures flags, all gestures enabled by default -static unsigned int enabledGestures = 0b0000001111111111; +// Enabled gestures flags, all gestures enabled by default +static unsigned int enabledGestures = 0b0000001111111111; //---------------------------------------------------------------------------------- // Module specific Functions Declaration @@ -251,13 +251,13 @@ void ProcessGestureEvent(GestureEvent event) { // Reset required variables pointCount = event.pointCount; // Required on UpdateGestures() - + if (pointCount < 2) { if (event.touchAction == TOUCH_DOWN) { tapCounter++; // Tap counter - + // Detect GESTURE_DOUBLE_TAP if ((currentGesture == GESTURE_NONE) && (tapCounter >= 2) && ((GetCurrentTime() - eventTime) < TAP_TIMEOUT) && (Vector2Distance(touchDownPosition, event.position[0]) < DOUBLETAP_RANGE)) { @@ -269,15 +269,15 @@ void ProcessGestureEvent(GestureEvent event) tapCounter = 1; currentGesture = GESTURE_TAP; } - + touchDownPosition = event.position[0]; touchDownDragPosition = event.position[0]; - + touchUpPosition = touchDownPosition; eventTime = GetCurrentTime(); - + firstTouchId = event.pointerId[0]; - + dragVector = (Vector2){ 0.0f, 0.0f }; } else if (event.touchAction == TOUCH_UP) @@ -287,15 +287,15 @@ void ProcessGestureEvent(GestureEvent event) // NOTE: dragIntensity dependend on the resolution of the screen dragDistance = Vector2Distance(touchDownPosition, touchUpPosition); dragIntensity = dragDistance/(float)((GetCurrentTime() - swipeTime)); - + startMoving = false; - + // Detect GESTURE_SWIPE if ((dragIntensity > FORCE_TO_SWIPE) && (firstTouchId == event.pointerId[0])) { // NOTE: Angle should be inverted in Y dragAngle = 360.0f - Vector2Angle(touchDownPosition, touchUpPosition); - + if ((dragAngle < 30) || (dragAngle > 330)) currentGesture = GESTURE_SWIPE_RIGHT; // Right else if ((dragAngle > 30) && (dragAngle < 120)) currentGesture = GESTURE_SWIPE_UP; // Up else if ((dragAngle > 120) && (dragAngle < 210)) currentGesture = GESTURE_SWIPE_LEFT; // Left @@ -307,31 +307,31 @@ void ProcessGestureEvent(GestureEvent event) dragDistance = 0.0f; dragIntensity = 0.0f; dragAngle = 0.0f; - + currentGesture = GESTURE_NONE; } - + touchDownDragPosition = (Vector2){ 0.0f, 0.0f }; pointCount = 0; } else if (event.touchAction == TOUCH_MOVE) { if (currentGesture == GESTURE_DRAG) eventTime = GetCurrentTime(); - + if (!startMoving) { swipeTime = GetCurrentTime(); startMoving = true; } - + moveDownPosition = event.position[0]; - + if (currentGesture == GESTURE_HOLD) { if (resetHold) touchDownPosition = event.position[0]; - + resetHold = false; - + // Detect GESTURE_DRAG if (Vector2Distance(touchDownPosition, moveDownPosition) >= MINIMUM_DRAG) { @@ -339,7 +339,7 @@ void ProcessGestureEvent(GestureEvent event) currentGesture = GESTURE_DRAG; } } - + dragVector.x = moveDownPosition.x - touchDownDragPosition.x; dragVector.y = moveDownPosition.y - touchDownDragPosition.y; } @@ -350,28 +350,28 @@ void ProcessGestureEvent(GestureEvent event) { touchDownPosition = event.position[0]; touchDownPosition2 = event.position[1]; - + //pinchDistance = Vector2Distance(touchDownPosition, touchDownPosition2); - + pinchVector.x = touchDownPosition2.x - touchDownPosition.x; pinchVector.y = touchDownPosition2.y - touchDownPosition.y; - + currentGesture = GESTURE_HOLD; timeHold = GetCurrentTime(); } else if (event.touchAction == TOUCH_MOVE) { pinchDistance = Vector2Distance(moveDownPosition, moveDownPosition2); - + touchDownPosition = moveDownPosition; touchDownPosition2 = moveDownPosition2; - + moveDownPosition = event.position[0]; moveDownPosition2 = event.position[1]; - + pinchVector.x = moveDownPosition2.x - moveDownPosition.x; pinchVector.y = moveDownPosition2.y - moveDownPosition.y; - + if ((Vector2Distance(touchDownPosition, moveDownPosition) >= MINIMUM_PINCH) || (Vector2Distance(touchDownPosition2, moveDownPosition2) >= MINIMUM_PINCH)) { if ((Vector2Distance(moveDownPosition, moveDownPosition2) - pinchDistance) < 0) currentGesture = GESTURE_PINCH_IN; @@ -382,7 +382,7 @@ void ProcessGestureEvent(GestureEvent event) currentGesture = GESTURE_HOLD; timeHold = GetCurrentTime(); } - + // NOTE: Angle should be inverted in Y pinchAngle = 360.0f - Vector2Angle(moveDownPosition, moveDownPosition2); } @@ -392,7 +392,7 @@ void ProcessGestureEvent(GestureEvent event) pinchAngle = 0.0f; pinchVector = (Vector2){ 0.0f, 0.0f }; pointCount = 0; - + currentGesture = GESTURE_NONE; } } @@ -409,14 +409,14 @@ void UpdateGestures(void) currentGesture = GESTURE_HOLD; timeHold = GetCurrentTime(); } - + if (((GetCurrentTime() - eventTime) > TAP_TIMEOUT) && (currentGesture == GESTURE_DRAG) && (pointCount < 2)) { currentGesture = GESTURE_HOLD; timeHold = GetCurrentTime(); resetHold = true; } - + // Detect GESTURE_NONE if ((currentGesture == GESTURE_SWIPE_RIGHT) || (currentGesture == GESTURE_SWIPE_UP) || (currentGesture == GESTURE_SWIPE_LEFT) || (currentGesture == GESTURE_SWIPE_DOWN)) { @@ -428,7 +428,7 @@ void UpdateGestures(void) int GetTouchPointsCount(void) { // NOTE: point count is calculated when ProcessGestureEvent(GestureEvent event) is called - + return pointCount; } @@ -443,11 +443,11 @@ int GetGestureDetected(void) float GetGestureHoldDuration(void) { // NOTE: time is calculated on current gesture HOLD - + double time = 0.0; - + if (currentGesture == GESTURE_HOLD) time = GetCurrentTime() - timeHold; - + return (float)time; } @@ -455,7 +455,7 @@ float GetGestureHoldDuration(void) Vector2 GetGestureDragVector(void) { // NOTE: drag vector is calculated on one touch points TOUCH_MOVE - + return dragVector; } @@ -464,7 +464,7 @@ Vector2 GetGestureDragVector(void) float GetGestureDragAngle(void) { // NOTE: drag angle is calculated on one touch points TOUCH_UP - + return dragAngle; } @@ -473,7 +473,7 @@ Vector2 GetGesturePinchVector(void) { // NOTE: The position values used for pinchDistance are not modified like the position values of [core.c]-->GetTouchPosition(int index) // NOTE: pinch distance is calculated on two touch points TOUCH_MOVE - + return pinchVector; } @@ -482,7 +482,7 @@ Vector2 GetGesturePinchVector(void) float GetGesturePinchAngle(void) { // NOTE: pinch angle is calculated on two touch points TOUCH_MOVE - + return pinchAngle; } @@ -494,7 +494,7 @@ float GetGesturePinchAngle(void) static float Vector2Angle(Vector2 v1, Vector2 v2) { float angle = atan2f(v2.y - v1.y, v2.x - v1.x)*(180.0f/PI); - + if (angle < 0) angle += 360.0f; return angle; @@ -518,13 +518,13 @@ static float Vector2Distance(Vector2 v1, Vector2 v2) static double GetCurrentTime(void) { double time = 0; - + #if defined(_WIN32) unsigned long long int clockFrequency, currentTime; - + QueryPerformanceFrequency(&clockFrequency); // BE CAREFUL: Costly operation! QueryPerformanceCounter(¤tTime); - + time = (double)currentTime/clockFrequency*1000.0f; // Time in miliseconds #endif @@ -533,24 +533,24 @@ static double GetCurrentTime(void) struct timespec now; clock_gettime(CLOCK_MONOTONIC, &now); uint64_t nowTime = (uint64_t)now.tv_sec*1000000000LLU + (uint64_t)now.tv_nsec; // Time in nanoseconds - + time = ((double)nowTime/1000000.0); // Time in miliseconds #endif #if defined(__APPLE__) //#define CLOCK_REALTIME CALENDAR_CLOCK // returns UTC time since 1970-01-01 //#define CLOCK_MONOTONIC SYSTEM_CLOCK // returns the time since boot time - + clock_serv_t cclock; mach_timespec_t now; host_get_clock_service(mach_host_self(), SYSTEM_CLOCK, &cclock); - + // NOTE: OS X does not have clock_gettime(), using clock_get_time() clock_get_time(cclock, &now); mach_port_deallocate(mach_task_self(), cclock); uint64_t nowTime = (uint64_t)now.tv_sec*1000000000LLU + (uint64_t)now.tv_nsec; // Time in nanoseconds - time = ((double)nowTime/1000000.0); // Time in miliseconds + time = ((double)nowTime/1000000.0); // Time in miliseconds #endif return time; diff --git a/src/physac.h b/src/physac.h index 42cb01984..4119feaed 100644 --- a/src/physac.h +++ b/src/physac.h @@ -1896,7 +1896,7 @@ static Vector2 TriangleBarycenter(Vector2 v1, Vector2 v2, Vector2 v3) static void InitTimer(void) { srand(time(NULL)); // Initialize random seed - + #if defined(_WIN32) QueryPerformanceFrequency((unsigned long long int *) &frequency); #endif @@ -1911,7 +1911,7 @@ static void InitTimer(void) mach_timebase_info(&timebase); frequency = (timebase.denom*1e9)/timebase.numer; #endif - + baseTime = GetTimeCount(); // Get MONOTONIC clock time offset startTime = GetCurrentTime(); // Get current time } @@ -1920,7 +1920,7 @@ static void InitTimer(void) static uint64_t GetTimeCount(void) { uint64_t value = 0; - + #if defined(_WIN32) QueryPerformanceCounter((unsigned long long int *) &value); #endif diff --git a/src/raudio.c b/src/raudio.c index 447e50808..68fa95c8a 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -198,10 +198,10 @@ typedef enum { AUDIO_BUFFER_USAGE_STATIC = 0, AUDIO_BUFFER_USAGE_STREAM } AudioB // playback device depending on whether or not data is streamed struct rAudioBuffer { ma_pcm_converter dsp; // PCM data converter - + float volume; // Audio buffer volume float pitch; // Audio buffer pitch - + bool playing; // Audio buffer state: AUDIO_PLAYING bool paused; // Audio buffer state: AUDIO_PAUSED bool looping; // Audio buffer looping, always true for AudioStreams @@ -209,11 +209,11 @@ struct rAudioBuffer { bool isSubBufferProcessed[2]; // SubBuffer processed (virtual double buffer) unsigned int frameCursorPos; // Frame cursor position - unsigned int bufferSizeInFrames; // Total buffer size in frames + unsigned int bufferSizeInFrames; // Total buffer size in frames unsigned int totalFramesProcessed; // Total frames processed in this buffer (required for play timming) - + unsigned char *buffer; // Data buffer, on music stream keeps filling - + rAudioBuffer *next; // Next audio buffer on the list rAudioBuffer *prev; // Previous audio buffer on the list }; @@ -289,7 +289,7 @@ static void OnSendAudioDataToDevice(ma_device *pDevice, void *pFramesOut, const if (!audioBuffer->playing || audioBuffer->paused) continue; ma_uint32 framesRead = 0; - + while (1) { if (framesRead > frameCount) @@ -302,7 +302,7 @@ static void OnSendAudioDataToDevice(ma_device *pDevice, void *pFramesOut, const // Just read as much data as we can from the stream ma_uint32 framesToRead = (frameCount - framesRead); - + while (framesToRead > 0) { float tempBuffer[1024]; // 512 frames for stereo @@ -387,7 +387,7 @@ static ma_uint32 OnAudioBufferDSPRead(ma_pcm_converter *pDSP, void *pFramesOut, { if (framesRead >= frameCount) break; } - else + else { if (isSubBufferProcessed[currentSubBufferIndex]) break; } @@ -465,7 +465,7 @@ static void MixAudioFrames(float *framesOut, const float *framesIn, ma_uint32 fr static void InitAudioBufferPool() { // Dummy buffers - for (int i = 0; i < MAX_AUDIO_BUFFER_POOL_CHANNELS; i++) + for (int i = 0; i < MAX_AUDIO_BUFFER_POOL_CHANNELS; i++) { audioBufferPool[i] = InitAudioBuffer(DEVICE_FORMAT, DEVICE_CHANNELS, DEVICE_SAMPLE_RATE, 0, AUDIO_BUFFER_USAGE_STATIC); } @@ -486,7 +486,7 @@ void InitAudioDevice(void) // Init audio context ma_context_config contextConfig = ma_context_config_init(); contextConfig.logCallback = OnLog; - + ma_result result = ma_context_init(NULL, 0, &contextConfig, &context); if (result != MA_SUCCESS) { @@ -589,7 +589,7 @@ AudioBuffer *InitAudioBuffer(ma_format format, ma_uint32 channels, ma_uint32 sam { AudioBuffer *audioBuffer = (AudioBuffer *)RL_CALLOC(1, sizeof(AudioBuffer)); audioBuffer->buffer = RL_CALLOC(bufferSizeInFrames*channels*ma_get_bytes_per_sample(format), 1); - + if (audioBuffer == NULL) { TraceLog(LOG_ERROR, "InitAudioBuffer() : Failed to allocate memory for audio buffer"); @@ -608,7 +608,7 @@ AudioBuffer *InitAudioBuffer(ma_format format, ma_uint32 channels, ma_uint32 sam dspConfig.onRead = OnAudioBufferDSPRead; // Callback on data reading dspConfig.pUserData = audioBuffer; // Audio data pointer dspConfig.allowDynamicSampleRate = true; // Required for pitch shifting - + ma_result result = ma_pcm_converter_init(&dspConfig, &audioBuffer->dsp); if (result != MA_SUCCESS) @@ -655,7 +655,7 @@ void CloseAudioBuffer(AudioBuffer *buffer) bool IsAudioBufferPlaying(AudioBuffer *buffer) { bool result = false; - + if (buffer != NULL) result = (buffer->playing && !buffer->paused); else TraceLog(LOG_ERROR, "IsAudioBufferPlaying() : No audio buffer"); @@ -698,7 +698,7 @@ void StopAudioBuffer(AudioBuffer *buffer) void PauseAudioBuffer(AudioBuffer *buffer) { if (buffer != NULL) buffer->paused = true; - else TraceLog(LOG_ERROR, "PauseAudioBuffer() : No audio buffer"); + else TraceLog(LOG_ERROR, "PauseAudioBuffer() : No audio buffer"); } // Resume an audio buffer @@ -722,8 +722,8 @@ void SetAudioBufferPitch(AudioBuffer *buffer, float pitch) { float pitchMul = pitch/buffer->pitch; - // Pitching is just an adjustment of the sample rate. - // Note that this changes the duration of the sound: + // 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 ma_uint32 newOutputSampleRate = (ma_uint32)((float)buffer->dsp.src.config.sampleRateOut/pitchMul); @@ -816,7 +816,7 @@ 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 device. We can do this two ways: // @@ -909,7 +909,7 @@ void ExportWaveAsCode(Wave wave, const char *fileName) int dataSize = wave.sampleCount*wave.channels*wave.sampleSize/8; FILE *txtFile = fopen(fileName, "wt"); - + if (txtFile != NULL) { fprintf(txtFile, "\n//////////////////////////////////////////////////////////////////////////////////\n"); @@ -967,7 +967,7 @@ void PlaySoundMulti(Sound sound) oldAge = audioBufferPoolChannels[i]; oldIndex = i; } - + if (!IsAudioBufferPlaying(audioBufferPool[i])) { index = i; @@ -979,17 +979,17 @@ void PlaySoundMulti(Sound sound) if (index == -1) { TraceLog(LOG_WARNING,"pool age %i ended a sound early no room in buffer pool", audioBufferPoolCounter); - + if (oldIndex == -1) { // Shouldn't be able to get here... but just in case something odd happens! TraceLog(LOG_ERROR,"sound buffer pool couldn't determine oldest buffer not playing sound"); - + return; } - + index = oldIndex; - + // Just in case... StopAudioBuffer(audioBufferPool[index]); } @@ -1000,7 +1000,7 @@ void PlaySoundMulti(Sound sound) audioBufferPoolChannels[index] = audioBufferPoolCounter; audioBufferPoolCounter++; - + audioBufferPool[index]->volume = sound.stream.buffer->volume; audioBufferPool[index]->pitch = sound.stream.buffer->pitch; audioBufferPool[index]->looping = sound.stream.buffer->looping; @@ -1023,12 +1023,12 @@ void StopSoundMulti(void) int GetSoundsPlaying(void) { int counter = 0; - + for (int i = 0; i < MAX_AUDIO_BUFFER_POOL_CHANNELS; i++) { if (IsAudioBufferPlaying(audioBufferPool[i])) counter++; } - + return counter; } @@ -1211,7 +1211,7 @@ Music LoadMusicStream(const char *fileName) { drmp3 *ctxMp3 = RL_MALLOC(sizeof(drmp3)); music.ctxData = ctxMp3; - + int result = drmp3_init_file(ctxMp3, fileName, NULL); if (result > 0) @@ -1242,7 +1242,7 @@ Music LoadMusicStream(const char *fileName) music.sampleCount = (unsigned int)jar_xm_get_remaining_samples(ctxXm); music.loopCount = 0; // Infinite loop by default musicLoaded = true; - + music.ctxData = ctxXm; } } @@ -1252,7 +1252,7 @@ Music LoadMusicStream(const char *fileName) { jar_mod_context_t *ctxMod = RL_MALLOC(sizeof(jar_mod_context_t)); music.ctxData = ctxMod; - + jar_mod_init(ctxMod); int result = jar_mod_load_file(ctxMod, fileName); @@ -1335,7 +1335,7 @@ void PlayMusicStream(Music music) { // 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 + // NOTE: In case window is minimized, music stream is stopped, just make sure to // play again on window restore: if (IsMusicPlaying(music)) PlayMusicStream(music); ma_uint32 frameCursorPos = audioBuffer->frameCursorPos; PlayAudioStream(music.stream); // WARNING: This resets the cursor position. @@ -1395,7 +1395,7 @@ void UpdateMusicStream(Music music) void *pcm = RL_CALLOC(subBufferSizeInFrames*music.stream.channels*music.stream.sampleSize/8, 1); int samplesCount = 0; // Total size of data streamed in L+R samples for xm floats, individual L or R for ogg shorts - + // TODO: Get the sampleLeft using totalFramesProcessed... but first, get total frames processed correctly... //ma_uint32 frameSizeInBytes = ma_get_bytes_per_sample(music.stream.buffer->dsp.formatConverterIn.config.formatIn)*music.stream.buffer->dsp.formatConverterIn.config.channels; int sampleLeft = music.sampleCount - (music.stream.buffer->totalFramesProcessed*music.stream.channels); @@ -1449,7 +1449,7 @@ void UpdateMusicStream(Music music) } UpdateAudioStream(music.stream, pcm, samplesCount); - + if ((music.ctxType == MUSIC_MODULE_XM) || (music.ctxType == MUSIC_MODULE_MOD)) { if (samplesCount > 1) sampleLeft -= samplesCount/2; @@ -1549,11 +1549,11 @@ AudioStream InitAudioStream(unsigned int sampleRate, unsigned int sampleSize, un // The size of a streaming buffer must be at least double the size of a period unsigned int periodSize = device.playback.internalBufferSizeInFrames/device.playback.internalPeriods; unsigned int subBufferSize = AUDIO_BUFFER_SIZE; - + if (subBufferSize < periodSize) subBufferSize = periodSize; stream.buffer = InitAudioBuffer(formatIn, stream.channels, stream.sampleRate, subBufferSize*2, AUDIO_BUFFER_USAGE_STREAM); - + if (stream.buffer != NULL) { stream.buffer->looping = true; // Always loop for streaming buffers @@ -1578,7 +1578,7 @@ void CloseAudioStream(AudioStream stream) void UpdateAudioStream(AudioStream stream, const void *data, int samplesCount) { AudioBuffer *audioBuffer = stream.buffer; - + if (audioBuffer != NULL) { if (audioBuffer->isSubBufferProcessed[0] || audioBuffer->isSubBufferProcessed[1]) @@ -1587,7 +1587,7 @@ void UpdateAudioStream(AudioStream stream, const void *data, int samplesCount) if (audioBuffer->isSubBufferProcessed[0] && audioBuffer->isSubBufferProcessed[1]) { - // Both buffers are available for updating. + // Both buffers are available for updating. // Update the first one and make sure the cursor is moved back to the front. subBufferToUpdate = 0; audioBuffer->frameCursorPos = 0; @@ -1604,7 +1604,7 @@ void UpdateAudioStream(AudioStream stream, const void *data, int samplesCount) // TODO: Get total frames processed on this buffer... DOES NOT WORK. audioBuffer->totalFramesProcessed += subBufferSizeInFrames; - // Does this API expect a whole buffer to be updated in one go? + // 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)samplesCount/stream.channels) { diff --git a/src/raudio.h b/src/raudio.h index eadbf33b4..f53150052 100644 --- a/src/raudio.h +++ b/src/raudio.h @@ -110,7 +110,7 @@ typedef struct Sound { typedef struct Music { int ctxType; // Type of music context (audio filetype) void *ctxData; // Audio context data, depends on type - + unsigned int sampleCount; // Total number of samples unsigned int loopCount; // Loops count (times music will play), 0 means infinite loop diff --git a/src/rglfw.c b/src/rglfw.c index 8d331f9c6..b05ff3c74 100644 --- a/src/rglfw.c +++ b/src/rglfw.c @@ -2,7 +2,7 @@ * * rglfw - raylib GLFW single file compilation * -* This file includes latest GLFW sources (https://github.com/glfw/glfw) to be compiled together +* This file includes latest GLFW sources (https://github.com/glfw/glfw) to be compiled together * with raylib for all supported platforms, this way, no external dependencies are required. * * LICENSE: zlib/libpng diff --git a/src/rlgl.h b/src/rlgl.h index 70b0a5750..cc4fb048f 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -2967,7 +2967,7 @@ char *LoadText(const char *fileName) Shader LoadShader(const char *vsFileName, const char *fsFileName) { Shader shader = { 0 }; - + // NOTE: Shader.locs is allocated by LoadShaderCode() char *vShaderStr = NULL; diff --git a/src/rmem.h b/src/rmem.h index 11e69588a..46e3b6532 100644 --- a/src/rmem.h +++ b/src/rmem.h @@ -54,7 +54,7 @@ #else #define RMEMAPI // We are building or using library as a static library (or Linux shared library) #endif - + //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- @@ -139,9 +139,9 @@ RMEMAPI void ObjPoolCleanUp(ObjPool *objpool, void **ptrref); #if defined(RMEM_IMPLEMENTATION) -#include // Required for: -#include // Required for: -#include // Required for: +#include // Required for: +#include // Required for: +#include // Required for: //---------------------------------------------------------------------------------- // Defines and Macros @@ -163,8 +163,8 @@ RMEMAPI void ObjPoolCleanUp(ObjPool *objpool, void **ptrref); //---------------------------------------------------------------------------------- // Module specific Functions Declaration //---------------------------------------------------------------------------------- -static inline size_t __AlignSize(const size_t size, const size_t align) -{ +static inline size_t __AlignSize(const size_t size, const size_t align) +{ return (size + (align - 1)) & -align; } @@ -175,9 +175,9 @@ static inline size_t __AlignSize(const size_t size, const size_t align) MemPool CreateMemPool(const size_t size) { MemPool mempool = { 0 }; - + if (size == 0UL) return mempool; - else + else { // Align the mempool size to at least the size of an alloc node. mempool.stack.size = size; @@ -188,7 +188,7 @@ MemPool CreateMemPool(const size_t size) mempool.stack.size = 0UL; return mempool; } - else + else { mempool.stack.base = mempool.stack.mem + mempool.stack.size; return mempool; @@ -199,9 +199,9 @@ MemPool CreateMemPool(const size_t size) MemPool CreateMemPoolFromBuffer(void *buf, const size_t size) { MemPool mempool = { 0 }; - + if ((size == 0UL) || (buf == NULL) || (size <= sizeof(MemNode))) return mempool; - else + else { mempool.stack.size = size; mempool.stack.mem = buf; @@ -213,7 +213,7 @@ MemPool CreateMemPoolFromBuffer(void *buf, const size_t size) void DestroyMemPool(MemPool *const mempool) { if ((mempool == NULL) || (mempool->stack.mem == NULL)) return; - else + else { free(mempool->stack.mem); *mempool = (MemPool){ 0 }; @@ -228,7 +228,7 @@ void *MemPoolAlloc(MemPool *const mempool, const size_t size) MemNode *new_mem = NULL; const size_t ALLOC_SIZE = __AlignSize(size + sizeof *new_mem, sizeof(intptr_t)); const size_t BUCKET_INDEX = (ALLOC_SIZE >> MEMPOOL_BUCKET_BITS) - 1; - + // If the size is small enough, let's check if our buckets has a fitting memory block. if (BUCKET_INDEX < MEMPOOL_BUCKET_SIZE && mempool->buckets[BUCKET_INDEX] != NULL && mempool->buckets[BUCKET_INDEX]->size >= ALLOC_SIZE) { @@ -240,7 +240,7 @@ void *MemPoolAlloc(MemPool *const mempool, const size_t size) else if (mempool->freeList.head != NULL) { const size_t MEM_SPLIT_THRESHOLD = 16; - + // If the freelist is valid, let's allocate FROM the freelist then! for (MemNode *inode = mempool->freeList.head; inode != NULL; inode = inode->next) { @@ -251,10 +251,10 @@ void *MemPoolAlloc(MemPool *const mempool, const size_t size) new_mem = inode; (inode->prev != NULL)? (inode->prev->next = inode->next) : (mempool->freeList.head = inode->next); (inode->next != NULL)? (inode->next->prev = inode->prev) : (mempool->freeList.tail = inode->prev); - + if (mempool->freeList.head != NULL) mempool->freeList.head->prev = NULL; else mempool->freeList.tail = NULL; - + if (mempool->freeList.tail != NULL) mempool->freeList.tail->next = NULL; mempool->freeList.len--; break; @@ -269,7 +269,7 @@ void *MemPoolAlloc(MemPool *const mempool, const size_t size) } } } - + if (new_mem == NULL) { // not enough memory to support the size! @@ -279,13 +279,13 @@ void *MemPoolAlloc(MemPool *const mempool, const size_t size) // Couldn't allocate from a freelist, allocate from available mempool. // Subtract allocation size from the mempool. mempool->stack.base -= ALLOC_SIZE; - + // Use the available mempool space as the new node. new_mem = (MemNode *)mempool->stack.base; new_mem->size = ALLOC_SIZE; } } - + // Visual of the allocation block. // -------------- // | mem size | lowest addr of block @@ -314,7 +314,7 @@ void *MemPoolRealloc(MemPool *const restrict mempool, void *ptr, const size_t si MemNode *const node = (MemNode *)((uint8_t *)ptr - sizeof *node); const size_t NODE_SIZE = sizeof *node; uint8_t *const resized_block = MemPoolAlloc(mempool, size); - + if (resized_block == NULL) return NULL; else { @@ -329,16 +329,16 @@ void *MemPoolRealloc(MemPool *const restrict mempool, void *ptr, const size_t si void MemPoolFree(MemPool *const restrict mempool, void *ptr) { if ((mempool == NULL) || (ptr == NULL) || ((uintptr_t)ptr - sizeof(MemNode) < (uintptr_t)mempool->stack.mem)) return; - else + else { // Behind the actual pointer data is the allocation info. MemNode *const mem_node = (MemNode *)((uint8_t *)ptr - sizeof *mem_node); const size_t BUCKET_INDEX = (mem_node->size >> MEMPOOL_BUCKET_BITS) - 1; - + // Make sure the pointer data is valid. - if (((uintptr_t)mem_node < (uintptr_t)mempool->stack.base) || - (((uintptr_t)mem_node - (uintptr_t)mempool->stack.mem) > mempool->stack.size) || - (mem_node->size == 0UL) || + if (((uintptr_t)mem_node < (uintptr_t)mempool->stack.base) || + (((uintptr_t)mem_node - (uintptr_t)mempool->stack.mem) > mempool->stack.size) || + (mem_node->size == 0UL) || (mem_node->size > mempool->stack.size)) return; // If the mem_node is right at the stack base ptr, then add it to the stack. else if ((uintptr_t)mem_node == (uintptr_t)mempool->stack.base) @@ -362,13 +362,13 @@ void MemPoolFree(MemPool *const restrict mempool, void *ptr) else /*if ((mempool->freeList.len == 0UL) || ((uintptr_t)mempool->freeList.head >= (uintptr_t)mempool->stack.mem && (uintptr_t)mempool->freeList.head - (uintptr_t)mempool->stack.mem < mempool->stack.size))*/ { for (MemNode *n = mempool->freeList.head; n != NULL; n = n->next) if (n == mem_node) return; - + // This code insertion sorts where largest size is last. if (mempool->freeList.head == NULL) { mempool->freeList.head = mempool->freeList.tail = mem_node; mempool->freeList.len++; - } + } else if (mempool->freeList.head->size >= mem_node->size) { mem_node->next = mempool->freeList.head; @@ -383,7 +383,7 @@ void MemPoolFree(MemPool *const restrict mempool, void *ptr) mempool->freeList.tail = mem_node; mempool->freeList.len++; } - + if (mempool->freeList.autoDefrag && (mempool->freeList.maxNodes != 0UL) && (mempool->freeList.len > mempool->freeList.maxNodes)) MemPoolDefrag(mempool); } } @@ -392,7 +392,7 @@ void MemPoolFree(MemPool *const restrict mempool, void *ptr) void MemPoolCleanUp(MemPool *const restrict mempool, void **ptrref) { if ((mempool == NULL) || (ptrref == NULL) || (*ptrref == NULL)) return; - else + else { MemPoolFree(mempool, *ptrref); *ptrref = NULL; @@ -402,11 +402,11 @@ void MemPoolCleanUp(MemPool *const restrict mempool, void **ptrref) size_t GetMemPoolFreeMemory(const MemPool mempool) { size_t total_remaining = (uintptr_t)mempool.stack.base - (uintptr_t)mempool.stack.mem; - + for (MemNode *n=mempool.freeList.head; n != NULL; n = n->next) total_remaining += n->size; - + for (size_t i=0; inext) total_remaining += n->size; - + return total_remaining; } @@ -423,12 +423,12 @@ bool MemPoolDefrag(MemPool *const mempool) for (size_t i = 0; i < MEMPOOL_BUCKET_SIZE; i++) mempool->buckets[i] = NULL; mempool->stack.base = mempool->stack.mem + mempool->stack.size; return true; - } + } else { for (size_t i=0; ibuckets[i] != NULL) + while (mempool->buckets[i] != NULL) { if ((uintptr_t)mempool->buckets[i] == (uintptr_t)mempool->stack.base) { @@ -440,42 +440,42 @@ bool MemPoolDefrag(MemPool *const mempool) else break; } } - + const size_t PRE_DEFRAG_LEN = mempool->freeList.len; MemNode **node = &mempool->freeList.head; - + while (*node != NULL) { - if ((uintptr_t)*node == (uintptr_t)mempool->stack.base) + if ((uintptr_t)*node == (uintptr_t)mempool->stack.base) { // If node is right at the stack, merge it back into the stack. mempool->stack.base += (*node)->size; (*node)->size = 0UL; ((*node)->prev != NULL)? ((*node)->prev->next = (*node)->next) : (mempool->freeList.head = (*node)->next); ((*node)->next != NULL)? ((*node)->next->prev = (*node)->prev) : (mempool->freeList.tail = (*node)->prev); - + if (mempool->freeList.head != NULL) mempool->freeList.head->prev = NULL; else mempool->freeList.tail = NULL; - + if (mempool->freeList.tail != NULL) mempool->freeList.tail->next = NULL; mempool->freeList.len--; node = &mempool->freeList.head; - } + } else if (((uintptr_t)*node + (*node)->size) == (uintptr_t)(*node)->next) { // Next node is at a higher address. (*node)->size += (*node)->next->size; (*node)->next->size = 0UL; - + // <-[P Curr N]-> <-[P Next N]-> <-[P NextNext N]-> - // + // // |--------------------| // <-[P Curr N]-> <-[P Next N]-> [P NextNext N]-> if ((*node)->next->next != NULL) (*node)->next->next->prev = *node; - + // <-[P Curr N]-> <-[P NextNext N]-> (*node)->next = (*node)->next->next; - + mempool->freeList.len--; node = &mempool->freeList.head; } @@ -484,16 +484,16 @@ bool MemPoolDefrag(MemPool *const mempool) // Prev node is at a higher address. (*node)->size += (*node)->prev->size; (*node)->prev->size = 0UL; - + // <-[P PrevPrev N]-> <-[P Prev N]-> <-[P Curr N]-> // // |--------------------| // <-[P PrevPrev N] <-[P Prev N]-> <-[P Curr N]-> (*node)->prev->prev->next = *node; - + // <-[P PrevPrev N]-> <-[P Curr N]-> (*node)->prev = (*node)->prev->prev; - + mempool->freeList.len--; node = &mempool->freeList.head; } @@ -501,12 +501,12 @@ bool MemPoolDefrag(MemPool *const mempool) { // Next node is at a lower address. (*node)->next->size += (*node)->size; - + (*node)->size = 0UL; (*node)->next->prev = (*node)->prev; (*node)->prev->next = (*node)->next; *node = (*node)->next; - + mempool->freeList.len--; node = &mempool->freeList.head; } @@ -514,21 +514,21 @@ bool MemPoolDefrag(MemPool *const mempool) { // Prev node is at a lower address. (*node)->prev->size += (*node)->size; - + (*node)->size = 0UL; (*node)->next->prev = (*node)->prev; (*node)->prev->next = (*node)->next; *node = (*node)->prev; - + mempool->freeList.len--; node = &mempool->freeList.head; - } + } else { node = &(*node)->next; } } - + return PRE_DEFRAG_LEN > mempool->freeList.len; } } @@ -551,19 +551,19 @@ union ObjInfo { ObjPool CreateObjPool(const size_t objsize, const size_t len) { ObjPool objpool = { 0 }; - + if ((len == 0UL) || (objsize == 0UL)) return objpool; else { objpool.objSize = __AlignSize(objsize, sizeof(size_t)); objpool.stack.size = objpool.freeBlocks = len; objpool.stack.mem = calloc(objpool.stack.size, objpool.objSize); - + if (objpool.stack.mem == NULL) { objpool.stack.size = 0UL; return objpool; - } + } else { for (size_t i=0; istack.base }; objpool->freeBlocks--; - + // after allocating, we set head to the address of the index that *Head holds. // Head = &pool[*Head * pool.objsize]; objpool->stack.base = (objpool->freeBlocks != 0UL)? objpool->stack.mem + (*ret.index*objpool->objSize) : NULL; diff --git a/src/rnet.h b/src/rnet.h index 6dbcb9253..6110bf849 100644 --- a/src/rnet.h +++ b/src/rnet.h @@ -95,10 +95,10 @@ // Platform type definitions // From: https://github.com/DFHack/clsocket/blob/master/src/Host.h //---------------------------------------------------------------------------------- - + #ifdef WIN32 typedef int socklen_t; -#endif +#endif #ifndef RESULT_SUCCESS # define RESULT_SUCCESS 0 @@ -171,7 +171,7 @@ typedef int socklen_t; #define SOCKET_MAX_QUEUE_SIZE (16) // Maximum socket queue size #define SOCKET_MAX_SOCK_OPTS (4) // Maximum socket options #define SOCKET_MAX_UDPCHANNELS (32) // Maximum UDP channels -#define SOCKET_MAX_UDPADDRESSES (4) // Maximum bound UDP addresses +#define SOCKET_MAX_UDPADDRESSES (4) // Maximum bound UDP addresses // Network address related defines @@ -386,7 +386,7 @@ int AddSocket(SocketSet *set, Socket *sock); int RemoveSocket(SocketSet *set, Socket *sock); int CheckSockets(SocketSet *set, unsigned int timeout); -// Packet API +// Packet API void PacketSend(Packet *packet); void PacketReceive(Packet *packet); void PacketWrite8(Packet *packet, uint16_t value); diff --git a/src/text.c b/src/text.c index ec0ffa74b..fe0cbef7e 100644 --- a/src/text.c +++ b/src/text.c @@ -323,7 +323,7 @@ Font LoadFontEx(const char *fileName, int fontSize, int *fontChars, int charsCou { Image atlas = GenImageFontAtlas(font.chars, &font.recs, font.charsCount, font.baseSize, 2, 0); font.texture = LoadTextureFromImage(atlas); - + // Update chars[i].image to use alpha, required to be used on ImageDrawText() for (int i = 0; i < font.charsCount; i++) { @@ -441,7 +441,7 @@ Font LoadFontFromImage(Image image, Color key, int firstChar) for (int i = 0; i < spriteFont.charsCount; i++) { spriteFont.chars[i].value = tempCharValues[i]; - + // Get character rectangle in the font atlas texture spriteFont.recs[i] = tempCharRecs[i]; @@ -449,7 +449,7 @@ Font LoadFontFromImage(Image image, Color key, int firstChar) spriteFont.chars[i].offsetX = 0; spriteFont.chars[i].offsetY = 0; spriteFont.chars[i].advanceX = 0; - + // Fill character image data from fontClear data spriteFont.chars[i].image = ImageFromImage(fontClear, tempCharRecs[i]); } @@ -589,7 +589,7 @@ Image GenImageFontAtlas(const CharInfo *chars, Rectangle **charRecs, int charsCo // In case no chars count provided we suppose default of 95 charsCount = (charsCount > 0)? charsCount : 95; - + // NOTE: Rectangles memory is loaded here! Rectangle *recs = (Rectangle *)RL_MALLOC(charsCount*sizeof(Rectangle)); @@ -713,7 +713,7 @@ Image GenImageFontAtlas(const CharInfo *chars, Rectangle **charRecs, int charsCo RL_FREE(atlas.data); atlas.data = dataGrayAlpha; atlas.format = UNCOMPRESSED_GRAY_ALPHA; - + *charRecs = recs; return atlas; @@ -761,12 +761,12 @@ void DrawFPS(int posX, int posY) // Returns next codepoint in a UTF8 encoded text, scanning until '\0' is found // When a invalid UTF8 byte is encountered we exit as soon as possible and a '?'(0x3f) codepoint is returned // Total number of bytes processed are returned as a parameter -// NOTE: the standard says U+FFFD should be returned in case of errors +// NOTE: the standard says U+FFFD should be returned in case of errors // but that character is not supported by the default font in raylib // TODO: optimize this code for speed!! int GetNextCodepoint(const char *text, int *bytesProcessed) { -/* +/* UTF8 specs from https://www.ietf.org/rfc/rfc3629.txt Char. number range | UTF-8 octet sequence @@ -777,26 +777,26 @@ int GetNextCodepoint(const char *text, int *bytesProcessed) 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */ - + // NOTE: on decode errors we return as soon as possible - + int code = 0x3f; // Codepoint (defaults to '?') int octet = (unsigned char)(text[0]); // The first UTF8 octet *bytesProcessed = 1; - + if (octet <= 0x7f) - { + { // Only one octet (ASCII range x00-7F) code = text[0]; } else if ((octet & 0xe0) == 0xc0) { - // Two octets + // Two octets // [0]xC2-DF [1]UTF8-tail(x80-BF) unsigned char octet1 = text[1]; - + if ((octet1 == '\0') || ((octet1 >> 6) != 2)) { *bytesProcessed = 2; return code; } // Unexpected sequence - + if ((octet >= 0xc2) && (octet <= 0xdf)) { code = ((octet & 0x1f) << 6) | (octet1 & 0x3f); @@ -808,66 +808,66 @@ int GetNextCodepoint(const char *text, int *bytesProcessed) // Three octets unsigned char octet1 = text[1]; unsigned char octet2 = '\0'; - + if ((octet1 == '\0') || ((octet1 >> 6) != 2)) { *bytesProcessed = 2; return code; } // Unexpected sequence - + octet2 = text[2]; - + if ((octet2 == '\0') || ((octet2 >> 6) != 2)) { *bytesProcessed = 3; return code; } // Unexpected sequence - - /* + + /* [0]xE0 [1]xA0-BF [2]UTF8-tail(x80-BF) [0]xE1-EC [1]UTF8-tail [2]UTF8-tail(x80-BF) [0]xED [1]x80-9F [2]UTF8-tail(x80-BF) [0]xEE-EF [1]UTF8-tail [2]UTF8-tail(x80-BF) */ - - if (((octet == 0xe0) && !((octet1 >= 0xa0) && (octet1 <= 0xbf))) || + + if (((octet == 0xe0) && !((octet1 >= 0xa0) && (octet1 <= 0xbf))) || ((octet == 0xed) && !((octet1 >= 0x80) && (octet1 <= 0x9f)))) { *bytesProcessed = 2; return code; } - + if ((octet >= 0xe0) && (0 <= 0xef)) { code = ((octet & 0xf) << 12) | ((octet1 & 0x3f) << 6) | (octet2 & 0x3f); *bytesProcessed = 3; } } - else if ((octet & 0xf8) == 0xf0) + else if ((octet & 0xf8) == 0xf0) { // Four octets if (octet > 0xf4) return code; - + unsigned char octet1 = text[1]; unsigned char octet2 = '\0'; unsigned char octet3 = '\0'; - + if ((octet1 == '\0') || ((octet1 >> 6) != 2)) { *bytesProcessed = 2; return code; } // Unexpected sequence - + octet2 = text[2]; - + if ((octet2 == '\0') || ((octet2 >> 6) != 2)) { *bytesProcessed = 3; return code; } // Unexpected sequence - + octet3 = text[3]; - + if ((octet3 == '\0') || ((octet3 >> 6) != 2)) { *bytesProcessed = 4; return code; } // Unexpected sequence - - /* + + /* [0]xF0 [1]x90-BF [2]UTF8-tail [3]UTF8-tail [0]xF1-F3 [1]UTF8-tail [2]UTF8-tail [3]UTF8-tail [0]xF4 [1]x80-8F [2]UTF8-tail [3]UTF8-tail */ - - if (((octet == 0xf0) && !((octet1 >= 0x90) && (octet1 <= 0xbf))) || + + if (((octet == 0xf0) && !((octet1 >= 0x90) && (octet1 <= 0xbf))) || ((octet == 0xf4) && !((octet1 >= 0x80) && (octet1 <= 0x8f)))) { *bytesProcessed = 2; return code; } // Unexpected sequence - + if (octet >= 0xf0) { code = ((octet & 0x7) << 18) | ((octet1 & 0x3f) << 12) | ((octet2 & 0x3f) << 6) | (octet3 & 0x3f); *bytesProcessed = 4; } } - + if (code > 0x10ffff) code = 0x3f; // Codepoints after U+10ffff are invalid - + return code; } @@ -876,7 +876,7 @@ int *GetCodepoints(const char *text, int *count) { static int codepoints[MAX_TEXT_UNICODE_CHARS] = { 0 }; memset(codepoints, 0, MAX_TEXT_UNICODE_CHARS*sizeof(int)); - + int bytesProcessed = 0; int textLength = strlen(text); int codepointsCount = 0; @@ -888,7 +888,7 @@ int *GetCodepoints(const char *text, int *count) } *count = codepointsCount; - + return codepoints; } @@ -931,12 +931,12 @@ void DrawTextEx(Font font, const char *text, Vector2 position, float fontSize, f int next = 0; letter = GetNextCodepoint(&text[i], &next); index = GetGlyphIndex(font, letter); - + // NOTE: Normally we exit the decoding sequence as soon as a bad byte is found (and return 0x3f) // but we need to draw all of the bad bytes using the '?' symbol so to not skip any we set 'next = 1' - if (letter == 0x3f) next = 1; + if (letter == 0x3f) next = 1; i += (next - 1); - + if (letter == '\n') { // NOTE: Fixed line spacing of 1.5 lines @@ -984,17 +984,17 @@ void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontSize, f int startLine = -1; // Index where to begin drawing (where a line begins) int endLine = -1; // Index where to stop drawing (where a line ends) int lastk = -1; // Holds last value of the character position - + for (int i = 0, k = 0; i < length; i++, k++) { int glyphWidth = 0; int next = 0; letter = GetNextCodepoint(&text[i], &next); index = GetGlyphIndex(font, letter); - + // NOTE: normally we exit the decoding sequence as soon as a bad byte is found (and return 0x3f) // but we need to draw all of the bad bytes using the '?' symbol so to not skip any we set next = 1 - if (letter == 0x3f) next = 1; + if (letter == 0x3f) next = 1; i += next - 1; if (letter != '\n') @@ -1012,7 +1012,7 @@ void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontSize, f if (state == MEASURE_STATE) { // TODO: there are multiple types of spaces in UNICODE, maybe it's a good idea to add support for more - // See: http://jkorpela.fi/chars/spaces.html + // See: http://jkorpela.fi/chars/spaces.html if ((letter == ' ') || (letter == '\t') || (letter == '\n')) endLine = i; if ((textOffsetX + glyphWidth + 1) >= rec.width) @@ -1037,7 +1037,7 @@ void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontSize, f textOffsetX = 0; i = startLine; glyphWidth = 0; - + // Save character position when we switch states int tmp = lastk; lastk = k - 1; @@ -1138,16 +1138,16 @@ Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing for (int i = 0; i < len; i++) { lenCounter++; - + int next = 0; letter = GetNextCodepoint(&text[i], &next); index = GetGlyphIndex(font, letter); // NOTE: normally we exit the decoding sequence as soon as a bad byte is found (and return 0x3f) // but we need to draw all of the bad bytes using the '?' symbol so to not skip any we set next = 1 - if (letter == 0x3f) next = 1; - i += next - 1; - + if (letter == 0x3f) next = 1; + i += next - 1; + if (letter != '\n') { if (font.chars[index].advanceX != 0) textWidth += font.chars[index].advanceX; @@ -1220,22 +1220,22 @@ unsigned int TextLength(const char *text) // Returns total number of characters(codepoints) in a UTF8 encoded text, until '\0' is found // NOTE: If an invalid UTF8 sequence is encountered a '?'(0x3f) codepoint is counted instead -unsigned int TextCountCodepoints(const char *text) +unsigned int TextCountCodepoints(const char *text) { unsigned int len = 0; char *ptr = (char *)&text[0]; - + while (*ptr != '\0') { int next = 0; int letter = GetNextCodepoint(ptr, &next); - + if (letter == 0x3f) ptr += 1; else ptr += next; - + len++; } - + return len; } @@ -1362,14 +1362,14 @@ const char *TextJoin(const char **textList, int count, const char *delimiter) for (int i = 0; i < count; i++) { int textListLength = strlen(textList[i]); - + // Make sure joined text could fit inside MAX_TEXT_BUFFER_LENGTH if ((totalLength + textListLength) < MAX_TEXT_BUFFER_LENGTH) { strcat(text, textList[i]); totalLength += textListLength; - - if ((delimiterLen > 0) && (i < (count - 1))) + + if ((delimiterLen > 0) && (i < (count - 1))) { strcat(text, delimiter); totalLength += delimiterLen; @@ -1397,11 +1397,11 @@ const char **TextSplit(const char *text, char delimiter, int *count) result[0] = buffer; int counter = 0; - + if (text != NULL) { counter = 1; - + // Count how many substrings we have on text and point to every one for (int i = 0; i < MAX_TEXT_BUFFER_LENGTH; i++) { @@ -1603,7 +1603,7 @@ static Font LoadBMFont(const char *fileName) ImageAlphaMask(&imFont, imFont); for (int p = 0; p < (imFont.width*imFont.height*2); p += 2) ((unsigned char *)(imFont.data))[p] = 0xff; } - + font.texture = LoadTextureFromImage(imFont); RL_FREE(texPath); @@ -1621,7 +1621,7 @@ static Font LoadBMFont(const char *fileName) fgets(buffer, MAX_BUFFER_SIZE, fntFile); 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); - + // Get character rectangle in the font atlas texture font.recs[i] = (Rectangle){ (float)charX, (float)charY, (float)charWidth, (float)charHeight }; @@ -1630,7 +1630,7 @@ static Font LoadBMFont(const char *fileName) font.chars[i].offsetX = charOffsetX; font.chars[i].offsetY = charOffsetY; font.chars[i].advanceX = charAdvanceX; - + // Fill character image data from imFont data font.chars[i].image = ImageFromImage(imFont, font.recs[i]); } diff --git a/src/textures.c b/src/textures.c index 4e48d1f7e..d73473de8 100644 --- a/src/textures.c +++ b/src/textures.c @@ -850,7 +850,7 @@ void ExportImageAsCode(Image image, const char *fileName) #define BYTES_TEXT_PER_LINE 20 FILE *txtFile = fopen(fileName, "wt"); - + if (txtFile != NULL) { char varFileName[256] = { 0 }; @@ -926,11 +926,11 @@ Image ImageCopy(Image image) Image ImageFromImage(Image image, Rectangle rec) { Image result = ImageCopy(image); - + #if defined(SUPPORT_IMAGE_MANIPULATION) ImageCrop(&result, rec); #endif - + return result; } @@ -1189,7 +1189,7 @@ void ImageAlphaMask(Image *image, Image alphaMask) data[k] = ((unsigned char *)image->data)[i]; data[k + 1] = ((unsigned char *)mask.data)[i]; } - + RL_FREE(image->data); image->data = data; image->format = UNCOMPRESSED_GRAY_ALPHA; @@ -1343,13 +1343,13 @@ void ImageCrop(Image *image, Rectangle crop) { // Security check to avoid program crash if ((image->data == NULL) || (image->width == 0) || (image->height == 0)) return; - + // Security checks to validate crop rectangle if (crop.x < 0) { crop.width += crop.x; crop.x = 0; } if (crop.y < 0) { crop.height += crop.y; crop.y = 0; } if ((crop.x + crop.width) > image->width) crop.width = image->width - crop.x; if ((crop.y + crop.height) > image->height) crop.height = image->height - crop.y; - + if ((crop.x < image->width) && (crop.y < image->height)) { // Start the cropping process @@ -1823,7 +1823,7 @@ void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color } Image srcCopy = ImageCopy(src); // Make a copy of source image to work with it - + // Crop source image to desired source rectangle (if required) if ((src.width != (int)srcRec.width) && (src.height != (int)srcRec.height)) ImageCrop(&srcCopy, srcRec); @@ -1832,7 +1832,7 @@ void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color { ImageResize(&srcCopy, (int)dstRec.width, (int)dstRec.height); } - + // Check that dstRec is inside dst image // Allow negative position within destination with cropping if (dstRec.x < 0) @@ -1841,7 +1841,7 @@ void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color dstRec.width = dstRec.width + dstRec.x; dstRec.x = 0; } - + if ((dstRec.x + dstRec.width) > dst->width) { ImageCrop(&srcCopy, (Rectangle) { 0, 0, dst->width - dstRec.x, dstRec.height }); @@ -1854,7 +1854,7 @@ void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color dstRec.height = dstRec.height + dstRec.y; dstRec.y = 0; } - + if ((dstRec.y + dstRec.height) > dst->height) { ImageCrop(&srcCopy, (Rectangle) { 0, 0, dstRec.width, dst->height - dstRec.y }); @@ -1880,7 +1880,7 @@ void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color fdst = ColorNormalize(dstPixels[j*(int)dst->width + i]); fsrc = ColorNormalize(srcPixels[(j - (int)dstRec.y)*(int)dstRec.width + (i - (int)dstRec.x)]); - + // Apply color tint to source image fsrc.x *= ftint.x; fsrc.y *= ftint.y; fsrc.z *= ftint.z; fsrc.w *= ftint.w; @@ -1943,16 +1943,16 @@ Image ImageTextEx(Font font, const char *text, float fontSize, float spacing, Co // Create image to store text Image imText = GenImageColor((int)imSize.x, (int)imSize.y, BLANK); - + for (int i = 0; i < length; i++) { int next = 0; letter = GetNextCodepoint(&text[i], &next); index = GetGlyphIndex(font, letter); - - if (letter == 0x3f) next = 1; + + if (letter == 0x3f) next = 1; i += (next - 1); - + if (letter == '\n') { // TODO: Support line break @@ -1962,7 +1962,7 @@ Image ImageTextEx(Font font, const char *text, float fontSize, float spacing, Co if (letter != ' ') { ImageDraw(&imText, font.chars[index].image, (Rectangle){ 0, 0, font.chars[index].image.width, font.chars[index].image.height }, - (Rectangle){ (float)(positionX + font.chars[index].offsetX),(float)font.chars[index].offsetY, + (Rectangle){ (float)(positionX + font.chars[index].offsetX),(float)font.chars[index].offsetY, font.chars[index].image.width, font.chars[index].image.height }, tint); } @@ -2717,9 +2717,9 @@ void DrawTexturePro(Texture2D texture, Rectangle sourceRec, Rectangle destRec, V { float width = (float)texture.width; float height = (float)texture.height; - + bool flipX = false; - + if (sourceRec.width < 0) { flipX = true; sourceRec.width *= -1; } if (sourceRec.height < 0) sourceRec.y -= sourceRec.height; @@ -2981,12 +2981,12 @@ static Image LoadAnimatedGIF(const char *fileName, int *frames, int **delays) fseek(gifFile, 0L, SEEK_END); int size = ftell(gifFile); fseek(gifFile, 0L, SEEK_SET); - + unsigned char *buffer = (unsigned char *)RL_CALLOC(size, sizeof(char)); fread(buffer, sizeof(char), size, gifFile); - + fclose(gifFile); // Close file pointer - + int comp = 0; image.data = stbi_load_gif_from_memory(buffer, size, delays, &image.width, &image.height, frames, &comp, 4); diff --git a/src/utils.h b/src/utils.h index 1611b02ca..98c2f59c2 100644 --- a/src/utils.h +++ b/src/utils.h @@ -36,7 +36,7 @@ // Some basic Defines //---------------------------------------------------------------------------------- #if defined(PLATFORM_ANDROID) - #define fopen(name, mode) android_fopen(name, mode) + #define fopen(name, mode) android_fopen(name, mode) #endif //---------------------------------------------------------------------------------- @@ -86,8 +86,8 @@ typedef enum { typedef struct UWPMessage { UWPMessageType type; // Message type - - Vector2 paramVector0; // Vector parameters + + Vector2 paramVector0; // Vector parameters int paramInt0; // Int parameter int paramInt1; // Int parameter char paramChar0; // Char parameters From 68dcb553497a74b3eee11f4cb4db800d3727409d Mon Sep 17 00:00:00 2001 From: raysan5 Date: Sat, 19 Oct 2019 17:26:45 +0200 Subject: [PATCH 104/123] Corrected bug on ImageDrawRectangleLines() --- src/textures.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/textures.c b/src/textures.c index d73473de8..ec08e3ac8 100644 --- a/src/textures.c +++ b/src/textures.c @@ -2002,7 +2002,7 @@ void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color) ImageDrawRectangle(dst, (Rectangle){ rec.x, rec.y, rec.width, thick }, color); ImageDrawRectangle(dst, (Rectangle){ rec.x, rec.y + thick, thick, rec.height - thick*2 }, color); ImageDrawRectangle(dst, (Rectangle){ rec.x + rec.width - thick, rec.y + thick, thick, rec.height - thick*2 }, color); - ImageDrawRectangle(dst, (Rectangle){ rec.x, rec.height - thick, rec.width, thick }, color); + ImageDrawRectangle(dst, (Rectangle){ rec.x, rec.y + rec.height - thick, rec.width, thick }, color); } // Draw text (default font) within an image (destination) From e25f4dca1f64c7e224013de1d104f90f909e04fd Mon Sep 17 00:00:00 2001 From: raysan5 Date: Sat, 19 Oct 2019 17:26:58 +0200 Subject: [PATCH 105/123] Update external libraries --- src/external/stb_image.h | 20 ++++++++--- src/external/stb_image_write.h | 6 ++-- src/external/stb_perlin.h | 61 ++++++++++++++++++++++++++++++++++ src/external/stb_truetype.h | 30 ++++++++++------- 4 files changed, 99 insertions(+), 18 deletions(-) diff --git a/src/external/stb_image.h b/src/external/stb_image.h index a6202a31f..196dfd5cc 100644 --- a/src/external/stb_image.h +++ b/src/external/stb_image.h @@ -1,4 +1,4 @@ -/* stb_image - v2.22 - public domain image loader - http://nothings.org/stb +/* stb_image - v2.23 - public domain image loader - http://nothings.org/stb no warranty implied; use at your own risk Do this: @@ -48,6 +48,7 @@ LICENSE RECENT REVISION HISTORY: + 2.23 (2019-08-11) fix clang static analysis warning 2.22 (2019-03-04) gif fixes, fix warnings 2.21 (2019-02-25) fix typo in comment 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs @@ -5079,7 +5080,7 @@ static int stbi__high_bit(unsigned int z) if (z >= 0x00100) { n += 8; z >>= 8; } if (z >= 0x00010) { n += 4; z >>= 4; } if (z >= 0x00004) { n += 2; z >>= 2; } - if (z >= 0x00002) { n += 1; z >>= 1; } + if (z >= 0x00002) { n += 1;/* >>= 1;*/ } return n; } @@ -5237,7 +5238,10 @@ static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req psize = (info.offset - 14 - info.hsz) >> 2; } - s->img_n = ma ? 4 : 3; + if (info.bpp == 24 && ma == 0xff000000) + s->img_n = 3; + else + s->img_n = ma ? 4 : 3; if (req_comp && req_comp >= 3) // we can directly decode 3 or 4 target = req_comp; else @@ -5547,6 +5551,8 @@ static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req int RLE_repeating = 0; int read_next_pixel = 1; STBI_NOTUSED(ri); + STBI_NOTUSED(tga_x_origin); // @TODO + STBI_NOTUSED(tga_y_origin); // @TODO // do a tiny bit of precessing if ( tga_image_type >= 8 ) @@ -5710,6 +5716,7 @@ static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req // Microsoft's C compilers happy... [8^( tga_palette_start = tga_palette_len = tga_palette_bits = tga_x_origin = tga_y_origin = 0; + STBI_NOTUSED(tga_palette_start); // OK, done return tga_data; } @@ -6936,7 +6943,12 @@ static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp) return 0; if (x) *x = s->img_x; if (y) *y = s->img_y; - if (comp) *comp = info.ma ? 4 : 3; + if (comp) { + if (info.bpp == 24 && info.ma == 0xff000000) + *comp = 3; + else + *comp = info.ma ? 4 : 3; + } return 1; } #endif diff --git a/src/external/stb_image_write.h b/src/external/stb_image_write.h index 082eb69d5..a9bf66c14 100644 --- a/src/external/stb_image_write.h +++ b/src/external/stb_image_write.h @@ -1,4 +1,4 @@ -/* stb_image_write - v1.13 - public domain - http://nothings.org/stb/stb_image_write.h +/* stb_image_write - v1.13 - public domain - http://nothings.org/stb writes out PNG/BMP/TGA/JPEG/HDR images to C stdio - Sean Barrett 2010-2015 no warranty implied; use at your own risk @@ -868,7 +868,7 @@ STBIWDEF unsigned char * stbi_zlib_compress(unsigned char *data, int data_len, i unsigned int bitbuf=0; int i,j, bitcount=0; unsigned char *out = NULL; - unsigned char ***hash_table = (unsigned char***) STBIW_MALLOC(stbiw__ZHASH * sizeof(char**)); + unsigned char ***hash_table = (unsigned char***) STBIW_MALLOC(stbiw__ZHASH * sizeof(unsigned char**)); if (hash_table == NULL) return NULL; if (quality < 5) quality = 5; @@ -1530,6 +1530,8 @@ STBIWDEF int stbi_write_jpg(char const *filename, int x, int y, int comp, const #endif // STB_IMAGE_WRITE_IMPLEMENTATION /* Revision history + 1.11 (2019-08-11) + 1.10 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs 1.09 (2018-02-11) diff --git a/src/external/stb_perlin.h b/src/external/stb_perlin.h index d582d5a4a..941773f02 100644 --- a/src/external/stb_perlin.h +++ b/src/external/stb_perlin.h @@ -81,6 +81,7 @@ extern float stb_perlin_noise3(float x, float y, float z, int x_wrap, int y_wrap extern float stb_perlin_ridge_noise3(float x, float y, float z, float lacunarity, float gain, float offset, int octaves); extern float stb_perlin_fbm_noise3(float x, float y, float z, float lacunarity, float gain, int octaves); extern float stb_perlin_turbulence_noise3(float x, float y, float z, float lacunarity, float gain, int octaves); +extern float stb_perlin_noise3_wrap_nonpow2(float x, float y, float z, int x_wrap, int y_wrap, int z_wrap, unsigned char seed); #ifdef __cplusplus } #endif @@ -321,6 +322,66 @@ float stb_perlin_turbulence_noise3(float x, float y, float z, float lacunarity, return sum; } +float stb_perlin_noise3_wrap_nonpow2(float x, float y, float z, int x_wrap, int y_wrap, int z_wrap, unsigned char seed) +{ + float u,v,w; + float n000,n001,n010,n011,n100,n101,n110,n111; + float n00,n01,n10,n11; + float n0,n1; + + int px = stb__perlin_fastfloor(x); + int py = stb__perlin_fastfloor(y); + int pz = stb__perlin_fastfloor(z); + int x_wrap2 = (x_wrap ? x_wrap : 256); + int y_wrap2 = (y_wrap ? y_wrap : 256); + int z_wrap2 = (z_wrap ? z_wrap : 256); + int x0 = px % x_wrap2, x1; + int y0 = py % y_wrap2, y1; + int z0 = pz % z_wrap2, z1; + int r0,r1, r00,r01,r10,r11; + + if (x0 < 0) x0 += x_wrap2; + if (y0 < 0) y0 += y_wrap2; + if (z0 < 0) z0 += z_wrap2; + x1 = (x0+1) % x_wrap2; + y1 = (y0+1) % y_wrap2; + z1 = (z0+1) % z_wrap2; + + #define stb__perlin_ease(a) (((a*6-15)*a + 10) * a * a * a) + + x -= px; u = stb__perlin_ease(x); + y -= py; v = stb__perlin_ease(y); + z -= pz; w = stb__perlin_ease(z); + + r0 = stb__perlin_randtab[x0]; + r0 = stb__perlin_randtab[r0+seed]; + r1 = stb__perlin_randtab[x1]; + r1 = stb__perlin_randtab[r1+seed]; + + r00 = stb__perlin_randtab[r0+y0]; + r01 = stb__perlin_randtab[r0+y1]; + r10 = stb__perlin_randtab[r1+y0]; + r11 = stb__perlin_randtab[r1+y1]; + + n000 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r00+z0], x , y , z ); + n001 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r00+z1], x , y , z-1 ); + n010 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r01+z0], x , y-1, z ); + n011 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r01+z1], x , y-1, z-1 ); + n100 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r10+z0], x-1, y , z ); + n101 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r10+z1], x-1, y , z-1 ); + n110 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r11+z0], x-1, y-1, z ); + n111 = stb__perlin_grad(stb__perlin_randtab_grad_idx[r11+z1], x-1, y-1, z-1 ); + + n00 = stb__perlin_lerp(n000,n001,w); + n01 = stb__perlin_lerp(n010,n011,w); + n10 = stb__perlin_lerp(n100,n101,w); + n11 = stb__perlin_lerp(n110,n111,w); + + n0 = stb__perlin_lerp(n00,n01,v); + n1 = stb__perlin_lerp(n10,n11,v); + + return stb__perlin_lerp(n0,n1,u); +} #endif // STB_PERLIN_IMPLEMENTATION /* diff --git a/src/external/stb_truetype.h b/src/external/stb_truetype.h index 767f005ab..4a3ad33da 100644 --- a/src/external/stb_truetype.h +++ b/src/external/stb_truetype.h @@ -1,5 +1,5 @@ -// stb_truetype.h - v1.21 - public domain -// authored from 2009-2016 by Sean Barrett / RAD Game Tools +// stb_truetype.h - v1.22 - public domain +// authored from 2009-2019 by Sean Barrett / RAD Game Tools // // This library processes TrueType files: // parse files @@ -46,9 +46,11 @@ // Rob Loach Cort Stratton // Kenney Phillis Jr. github:oyvindjam // Brian Costabile github:vassvik +// Ken Voskuil (kaesve) Ryan Griege // // VERSION HISTORY // +// 1.22 (2019-08-11) minimize missing-glyph duplication; fix kerning if both 'GPOS' and 'kern' are defined // 1.21 (2019-02-25) fix warning // 1.20 (2019-02-07) PackFontRange skips missing codepoints; GetScaleFontVMetrics() // 1.19 (2018-02-11) GPOS kerning, STBTT_fmod @@ -2540,8 +2542,7 @@ STBTT_DEF int stbtt_GetGlyphKernAdvance(const stbtt_fontinfo *info, int g1, int if (info->gpos) xAdvance += stbtt__GetGlyphGPOSInfoAdvance(info, g1, g2); - - if (info->kern) + else if (info->kern) xAdvance += stbtt__GetGlyphKernInfoAdvance(info, g1, g2); return xAdvance; @@ -3968,6 +3969,7 @@ static float stbtt__oversample_shift(int oversample) STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, const stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects) { int i,j,k; + int missing_glyph_added = 0; k=0; for (i=0; i < num_ranges; ++i) { @@ -3979,7 +3981,7 @@ STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, const stb int x0,y0,x1,y1; int codepoint = ranges[i].array_of_unicode_codepoints == NULL ? ranges[i].first_unicode_codepoint_in_range + j : ranges[i].array_of_unicode_codepoints[j]; int glyph = stbtt_FindGlyphIndex(info, codepoint); - if (glyph == 0 && spc->skip_missing) { + if (glyph == 0 && (spc->skip_missing || missing_glyph_added)) { rects[k].w = rects[k].h = 0; } else { stbtt_GetGlyphBitmapBoxSubpixel(info,glyph, @@ -3989,6 +3991,8 @@ STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, const stb &x0,&y0,&x1,&y1); rects[k].w = (stbrp_coord) (x1-x0 + spc->padding + spc->h_oversample-1); rects[k].h = (stbrp_coord) (y1-y0 + spc->padding + spc->v_oversample-1); + if (glyph == 0) + missing_glyph_added = 1; } ++k; } @@ -4023,7 +4027,7 @@ STBTT_DEF void stbtt_MakeGlyphBitmapSubpixelPrefilter(const stbtt_fontinfo *info // rects array must be big enough to accommodate all characters in the given ranges STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, const stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects) { - int i,j,k, return_value = 1; + int i,j,k, missing_glyph = -1, return_value = 1; // save current values int old_h_over = spc->h_oversample; @@ -4088,6 +4092,13 @@ STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, const bc->yoff = (float) y0 * recip_v + sub_y; bc->xoff2 = (x0 + r->w) * recip_h + sub_x; bc->yoff2 = (y0 + r->h) * recip_v + sub_y; + + if (glyph == 0) + missing_glyph = j; + } else if (spc->skip_missing) { + return_value = 0; + } else if (r->was_packed && r->w == 0 && r->h == 0 && missing_glyph >= 0) { + ranges[i].chardata_for_range[j] = ranges[i].chardata_for_range[missing_glyph]; } else { return_value = 0; // if any fail, report failure } @@ -4389,12 +4400,7 @@ STBTT_DEF unsigned char * stbtt_GetGlyphSDF(const stbtt_fontinfo *info, float sc int w,h; unsigned char *data; - // if one scale is 0, use same scale for both - if (scale_x == 0) scale_x = scale_y; - if (scale_y == 0) { - if (scale_x == 0) return NULL; // if both scales are 0, return NULL - scale_y = scale_x; - } + if (scale == 0) return NULL; stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale, scale, 0.0f,0.0f, &ix0,&iy0,&ix1,&iy1); From c1d282d9e8820db4c3fa24c9847bddb47c859765 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 21 Oct 2019 17:37:43 +0200 Subject: [PATCH 106/123] Corrected bug on no-extension --- src/core.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/core.c b/src/core.c index 9fe29b8ff..b4f955adc 100644 --- a/src/core.c +++ b/src/core.c @@ -1798,15 +1798,18 @@ bool IsFileExtension(const char *fileName, const char *ext) bool result = false; const char *fileExt = GetExtension(fileName); - int extCount = 0; - const char **checkExts = TextSplit(ext, ';', &extCount); - - for (int i = 0; i < extCount; i++) + if (fileExt != NULL) { - if (strcmp(fileExt, checkExts[i] + 1) == 0) + int extCount = 0; + const char **checkExts = TextSplit(ext, ';', &extCount); + + for (int i = 0; i < extCount; i++) { - result = true; - break; + if (strcmp(fileExt, checkExts[i] + 1) == 0) + { + result = true; + break; + } } } From ab52f984804e1ec77fbddd6d1258a1c535dea0cb Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 21 Oct 2019 17:37:47 +0200 Subject: [PATCH 107/123] Update text.c --- src/text.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/text.c b/src/text.c index fe0cbef7e..7b8283844 100644 --- a/src/text.c +++ b/src/text.c @@ -892,8 +892,6 @@ int *GetCodepoints(const char *text, int *count) return codepoints; } - - // Draw text (using default font) // NOTE: fontSize work like in any drawing program but if fontSize is lower than font-base-size, then font-base-size is used // NOTE: chars spacing is proportional to fontSize From 3f7fa6d6e7236caa7defa7efe3b54832ac21bb6e Mon Sep 17 00:00:00 2001 From: Tyler Jessilynn Bezera Date: Mon, 21 Oct 2019 08:38:23 -0700 Subject: [PATCH 108/123] Add multi texture support for materials in GLTF format (#979) * Initial commit of addition for GLTF materials.. should support loading more than just albedo map. * Clean up * fixed seg faults and leaks * temp don't overwrite defuse colour when rendering * undid something dumb! * correctly mixed diffuse map color when rendering to preserve not overwrite it --- src/models.c | 224 ++++++++++++++++++++++++++++++--------------------- src/raylib.h | 5 +- 2 files changed, 133 insertions(+), 96 deletions(-) diff --git a/src/models.c b/src/models.c index 2462190d9..774d426f1 100644 --- a/src/models.c +++ b/src/models.c @@ -2385,8 +2385,15 @@ void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rota for (int i = 0; i < model.meshCount; i++) { - model.materials[model.meshMaterial[i]].maps[MAP_DIFFUSE].color = tint; + Color c = model.materials[model.meshMaterial[i]].maps[MAP_DIFFUSE].color; + Color s = c; + c.r = ((c.r/255) * (tint.r/255)) * 255; + c.g = ((c.g/255) * (tint.g/255)) * 255; + c.b = ((c.b/255) * (tint.b/255)) * 255; + c.a = ((c.a/255) * (tint.a/255)) * 255; + model.materials[model.meshMaterial[i]].maps[MAP_DIFFUSE].color = c; rlDrawMesh(model.meshes[i], model.materials[model.meshMaterial[i]], model.transform); + model.materials[model.meshMaterial[i]].maps[MAP_DIFFUSE].color = s; } } @@ -3344,6 +3351,92 @@ static unsigned char *DecodeBase64(char *input, int *size) return buf; } +//static Texture LoadTextureFromCGLTFTextureView(cgltf_texture_view* view, Color tint, char* texPath) +static Texture LoadTextureFromCGLTFTextureView(cgltf_image* image, Color tint, const char* texPath) +{ + Texture texture = {0}; + //cgltf_image *image = view->texture->image; + + if (image->uri) + { + if ((strlen(image->uri) > 5) && + (image->uri[0] == 'd') && + (image->uri[1] == 'a') && + (image->uri[2] == 't') && + (image->uri[3] == 'a') && + (image->uri[4] == ':')) + { + // Data URI + // Format: data:;base64, + + // Find the comma + int i = 0; + while ((image->uri[i] != ',') && (image->uri[i] != 0)) + i++; + + if (image->uri[i] == 0) + TraceLog(LOG_WARNING, "Invalid data URI"); + else + { + int size; + unsigned char *data = DecodeBase64(image->uri + i + 1, &size); + + int w, h; + unsigned char *raw = stbi_load_from_memory(data, size, &w, &h, NULL, 4); + + Image rimage = LoadImagePro(raw, w, h, UNCOMPRESSED_R8G8B8A8); + ImageColorTint(&rimage, tint); + texture = LoadTextureFromImage(rimage); + UnloadImage(rimage); + } + } + else + { + char *textureName = image->uri; + char *texturePath = RL_MALLOC(strlen(texPath) + strlen(textureName) + 2); + strcpy(texturePath, texPath); + strcat(texturePath, "/"); + strcat(texturePath, textureName); + + Image rimage = LoadImage(texturePath); + ImageColorTint(&rimage, tint); + texture = LoadTextureFromImage(rimage); + UnloadImage(rimage); + RL_FREE(texturePath); + } + } + else if (image->buffer_view) + { + unsigned char *data = RL_MALLOC(image->buffer_view->size); + int n = image->buffer_view->offset; + int stride = image->buffer_view->stride ? image->buffer_view->stride : 1; + + for (int i = 0; i < image->buffer_view->size; i++) + { + data[i] = ((unsigned char *)image->buffer_view->buffer->data)[n]; + n += stride; + } + + int w, h; + unsigned char *raw = stbi_load_from_memory(data, image->buffer_view->size, &w, &h, NULL, 4); + + Image rimage = LoadImagePro(raw, w, h, UNCOMPRESSED_R8G8B8A8); + ImageColorTint(&rimage, tint); + texture = LoadTextureFromImage(rimage); + UnloadImage(rimage); + free(raw); + free(data); + } + else + { + Image rimage = LoadImageEx(&tint, 1, 1); + texture = LoadTextureFromImage(rimage); + UnloadImage(rimage); + } + + return texture; +} + // Load glTF mesh data static Model LoadGLTF(const char *fileName) { @@ -3426,106 +3519,49 @@ static Model LoadGLTF(const char *fileName) for (int i = 0; i < model.meshCount; i++) model.meshes[i].vboId = (unsigned int *)RL_CALLOC(MAX_MESH_VBO, sizeof(unsigned int)); + //For each material for (int i = 0; i < model.materialCount - 1; i++) { - Color tint = WHITE; - Texture2D texture = { 0 }; + model.materials[i] = LoadMaterialDefault(); + Color tint = (Color){ 255, 255, 255, 255 }; const char *texPath = GetDirectoryPath(fileName); - if (data->materials[i].has_pbr_metallic_roughness) - { - tint.r = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[0]*255.99f); - tint.g = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[1]*255.99f); - tint.b = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[2]*255.99f); - tint.a = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[3]*255.99f); - } - else - { - tint.r = 1.0f; - tint.g = 1.0f; - tint.b = 1.0f; - tint.a = 1.0f; - } + //Ensure material follows raylib support for PBR (metallic/roughness flow) + if (data->materials[i].has_pbr_metallic_roughness) { + float roughness = data->materials[i].pbr_metallic_roughness.roughness_factor; + float metallic = data->materials[i].pbr_metallic_roughness.metallic_factor; - if (data->materials[i].has_pbr_metallic_roughness) - { - cgltf_image *img = data->materials[i].pbr_metallic_roughness.base_color_texture.texture->image; - - if (img->uri) - { - if ((strlen(img->uri) > 5) && - (img->uri[0] == 'd') && - (img->uri[1] == 'a') && - (img->uri[2] == 't') && - (img->uri[3] == 'a') && - (img->uri[4] == ':')) - { - // Data URI - // Format: data:;base64, - - // Find the comma - int i = 0; - while ((img->uri[i] != ',') && (img->uri[i] != 0)) i++; - - if (img->uri[i] == 0) TraceLog(LOG_WARNING, "[%s] Invalid data URI", fileName); - else - { - int size; - unsigned char *data = DecodeBase64(img->uri + i + 1, &size); - - int w, h; - unsigned char *raw = stbi_load_from_memory(data, size, &w, &h, NULL, 4); - - Image image = LoadImagePro(raw, w, h, UNCOMPRESSED_R8G8B8A8); - ImageColorTint(&image, tint); - texture = LoadTextureFromImage(image); - UnloadImage(image); - } - } - else - { - char *textureName = img->uri; - char *texturePath = RL_MALLOC(strlen(texPath) + strlen(textureName) + 2); - strcpy(texturePath, texPath); - strcat(texturePath, "/"); - strcat(texturePath, textureName); - - Image image = LoadImage(texturePath); - ImageColorTint(&image, tint); - texture = LoadTextureFromImage(image); - UnloadImage(image); - RL_FREE(texturePath); - } - } - else if (img->buffer_view) - { - unsigned char *data = RL_MALLOC(img->buffer_view->size); - int n = img->buffer_view->offset; - int stride = img->buffer_view->stride ? img->buffer_view->stride : 1; - - for (int i = 0; i < img->buffer_view->size; i++) - { - data[i] = ((unsigned char *)img->buffer_view->buffer->data)[n]; - n += stride; - } - - int w, h; - unsigned char *raw = stbi_load_from_memory(data, img->buffer_view->size, &w, &h, NULL, 4); - - Image image = LoadImagePro(raw, w, h, UNCOMPRESSED_R8G8B8A8); - ImageColorTint(&image, tint); - texture = LoadTextureFromImage(image); - UnloadImage(image); - } - else - { - Image image = LoadImageEx(&tint, 1, 1); - texture = LoadTextureFromImage(image); - UnloadImage(image); + if (model.materials[i].name && data->materials[i].name) { + strcpy(model.materials[i].name, data->materials[i].name); } - model.materials[i] = LoadMaterialDefault(); - model.materials[i].maps[MAP_DIFFUSE].texture = texture; + // shouldn't these be *255 ??? + tint.r = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[0]*255); + tint.g = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[1]*255); + tint.b = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[2]*255); + tint.a = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[3]*255); + + model.materials[i].maps[MAP_ROUGHNESS].color = tint; + + if (data->materials[i].pbr_metallic_roughness.base_color_texture.texture) { + model.materials[i].maps[MAP_ALBEDO].texture = LoadTextureFromCGLTFTextureView(data->materials[i].pbr_metallic_roughness.base_color_texture.texture->image, tint, texPath); + } + + //tint isn't need for other textures.. pass null or clear? (try full white because of mixing (multiplying * white has no effect)) + tint = (Color){ 255, 255, 255, 255 }; + + if (data->materials[i].pbr_metallic_roughness.metallic_roughness_texture.texture) { + model.materials[i].maps[MAP_ROUGHNESS].texture = LoadTextureFromCGLTFTextureView(data->materials[i].pbr_metallic_roughness.metallic_roughness_texture.texture->image, tint, texPath); + } + model.materials[i].maps[MAP_ROUGHNESS].value = roughness; + model.materials[i].maps[MAP_METALNESS].value = metallic; + + if (data->materials[i].normal_texture.texture) { + model.materials[i].maps[MAP_NORMAL].texture = LoadTextureFromCGLTFTextureView(data->materials[i].normal_texture.texture->image, tint, texPath); + } + if (data->materials[i].occlusion_texture.texture) { + model.materials[i].maps[MAP_OCCLUSION].texture = LoadTextureFromCGLTFTextureView(data->materials[i].occlusion_texture.texture->image, tint, texPath); + } } } diff --git a/src/raylib.h b/src/raylib.h index 11587e2ef..80786b690 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -106,7 +106,7 @@ #ifndef RL_FREE #define RL_FREE(p) free(p) #endif - + // NOTE: MSC C++ compiler does not support compound literals (C99 feature) // Plain structures in C++ (without constructors) can be initialized from { } initializers. #if defined(__cplusplus) @@ -336,6 +336,7 @@ typedef struct MaterialMap { // Material type (generic) typedef struct Material { + char* name; // Material name Shader shader; // Material shader MaterialMap *maps; // Material maps array (MAX_MATERIAL_MAPS) float *params; // Material generic parameters (if required) @@ -1406,7 +1407,7 @@ RLAPI bool IsAudioStreamPlaying(AudioStream stream); // Check i RLAPI void StopAudioStream(AudioStream stream); // Stop audio stream RLAPI void SetAudioStreamVolume(AudioStream stream, float volume); // Set volume for audio stream (1.0 is max level) RLAPI void SetAudioStreamPitch(AudioStream stream, float pitch); // Set pitch for audio stream (1.0 is base level) - + //------------------------------------------------------------------------------------ // Network (Module: network) //------------------------------------------------------------------------------------ From ea70c47a1a8cfcdaa61688f37675b5e877ebb903 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 21 Oct 2019 17:55:37 +0200 Subject: [PATCH 109/123] Review latest PR --- src/models.c | 90 +++++++++++++++++++++++++++------------------------- src/raylib.h | 1 - 2 files changed, 46 insertions(+), 45 deletions(-) diff --git a/src/models.c b/src/models.c index 774d426f1..3208a3007 100644 --- a/src/models.c +++ b/src/models.c @@ -2385,15 +2385,18 @@ void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rota for (int i = 0; i < model.meshCount; i++) { - Color c = model.materials[model.meshMaterial[i]].maps[MAP_DIFFUSE].color; - Color s = c; - c.r = ((c.r/255) * (tint.r/255)) * 255; - c.g = ((c.g/255) * (tint.g/255)) * 255; - c.b = ((c.b/255) * (tint.b/255)) * 255; - c.a = ((c.a/255) * (tint.a/255)) * 255; - model.materials[model.meshMaterial[i]].maps[MAP_DIFFUSE].color = c; + // TODO: Review color + tint premultiplication mechanism + Color color = model.materials[model.meshMaterial[i]].maps[MAP_DIFFUSE].color; + + Color colorTint = WHITE; + colorTint.r = ((color.r/255)*(tint.r/255))*255; + colorTint.g = ((color.g/255)*(tint.g/255))*255; + colorTint.b = ((color.b/255)*(tint.b/255))*255; + colorTint.a = ((color.a/255)*(tint.a/255))*255; + + model.materials[model.meshMaterial[i]].maps[MAP_DIFFUSE].color = colorTint; rlDrawMesh(model.meshes[i], model.materials[model.meshMaterial[i]], model.transform); - model.materials[model.meshMaterial[i]].maps[MAP_DIFFUSE].color = s; + model.materials[model.meshMaterial[i]].maps[MAP_DIFFUSE].color = color; } } @@ -3351,11 +3354,10 @@ static unsigned char *DecodeBase64(char *input, int *size) return buf; } -//static Texture LoadTextureFromCGLTFTextureView(cgltf_texture_view* view, Color tint, char* texPath) -static Texture LoadTextureFromCGLTFTextureView(cgltf_image* image, Color tint, const char* texPath) +// Load texture from cgltf_image +static Texture LoadTextureFromCgltfImage(cgltf_image *image, const char *texPath, Color tint) { - Texture texture = {0}; - //cgltf_image *image = view->texture->image; + Texture texture = { 0 }; if (image->uri) { @@ -3371,11 +3373,9 @@ static Texture LoadTextureFromCGLTFTextureView(cgltf_image* image, Color tint, c // Find the comma int i = 0; - while ((image->uri[i] != ',') && (image->uri[i] != 0)) - i++; + while ((image->uri[i] != ',') && (image->uri[i] != 0)) i++; - if (image->uri[i] == 0) - TraceLog(LOG_WARNING, "Invalid data URI"); + if (image->uri[i] == 0) TraceLog(LOG_WARNING, "CGLTF Image: Invalid data URI"); else { int size; @@ -3385,6 +3385,8 @@ static Texture LoadTextureFromCGLTFTextureView(cgltf_image* image, Color tint, c unsigned char *raw = stbi_load_from_memory(data, size, &w, &h, NULL, 4); Image rimage = LoadImagePro(raw, w, h, UNCOMPRESSED_R8G8B8A8); + + // TODO: Tint shouldn't be applied here! ImageColorTint(&rimage, tint); texture = LoadTextureFromImage(rimage); UnloadImage(rimage); @@ -3392,17 +3394,12 @@ static Texture LoadTextureFromCGLTFTextureView(cgltf_image* image, Color tint, c } else { - char *textureName = image->uri; - char *texturePath = RL_MALLOC(strlen(texPath) + strlen(textureName) + 2); - strcpy(texturePath, texPath); - strcat(texturePath, "/"); - strcat(texturePath, textureName); - - Image rimage = LoadImage(texturePath); + Image rimage = LoadImage(TextFormat("%s/%s", texPath, image->uri)); + + // TODO: Tint shouldn't be applied here! ImageColorTint(&rimage, tint); texture = LoadTextureFromImage(rimage); UnloadImage(rimage); - RL_FREE(texturePath); } } else if (image->buffer_view) @@ -3419,13 +3416,14 @@ static Texture LoadTextureFromCGLTFTextureView(cgltf_image* image, Color tint, c int w, h; unsigned char *raw = stbi_load_from_memory(data, image->buffer_view->size, &w, &h, NULL, 4); + free(data); Image rimage = LoadImagePro(raw, w, h, UNCOMPRESSED_R8G8B8A8); + + // TODO: Tint shouldn't be applied here! ImageColorTint(&rimage, tint); texture = LoadTextureFromImage(rimage); UnloadImage(rimage); - free(raw); - free(data); } else { @@ -3502,9 +3500,7 @@ static Model LoadGLTF(const char *fileName) // Read data buffers result = cgltf_load_buffers(&options, data, fileName); - if (result != cgltf_result_success) { - TraceLog(LOG_INFO, "[%s][%s] Error loading mesh/material buffers", fileName, (data->file_type == 2)? "glb" : "gltf"); - } + if (result != cgltf_result_success) TraceLog(LOG_INFO, "[%s][%s] Error loading mesh/material buffers", fileName, (data->file_type == 2)? "glb" : "gltf"); int primitivesCount = 0; @@ -3527,15 +3523,15 @@ static Model LoadGLTF(const char *fileName) const char *texPath = GetDirectoryPath(fileName); //Ensure material follows raylib support for PBR (metallic/roughness flow) - if (data->materials[i].has_pbr_metallic_roughness) { + if (data->materials[i].has_pbr_metallic_roughness) + { float roughness = data->materials[i].pbr_metallic_roughness.roughness_factor; float metallic = data->materials[i].pbr_metallic_roughness.metallic_factor; - if (model.materials[i].name && data->materials[i].name) { - strcpy(model.materials[i].name, data->materials[i].name); - } + // NOTE: Material name not used for the moment + //if (model.materials[i].name && data->materials[i].name) strcpy(model.materials[i].name, data->materials[i].name); - // shouldn't these be *255 ??? + // TODO: REview: shouldn't these be *255 ??? tint.r = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[0]*255); tint.g = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[1]*255); tint.b = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[2]*255); @@ -3543,24 +3539,30 @@ static Model LoadGLTF(const char *fileName) model.materials[i].maps[MAP_ROUGHNESS].color = tint; - if (data->materials[i].pbr_metallic_roughness.base_color_texture.texture) { - model.materials[i].maps[MAP_ALBEDO].texture = LoadTextureFromCGLTFTextureView(data->materials[i].pbr_metallic_roughness.base_color_texture.texture->image, tint, texPath); + if (data->materials[i].pbr_metallic_roughness.base_color_texture.texture) + { + model.materials[i].maps[MAP_ALBEDO].texture = LoadTextureFromCgltfImage(data->materials[i].pbr_metallic_roughness.base_color_texture.texture->image, texPath, tint); } - //tint isn't need for other textures.. pass null or clear? (try full white because of mixing (multiplying * white has no effect)) - tint = (Color){ 255, 255, 255, 255 }; + // NOTE: Tint isn't need for other textures.. pass null or clear? + // Just set as white, multiplying by white has no effect + tint = WHITE; - if (data->materials[i].pbr_metallic_roughness.metallic_roughness_texture.texture) { - model.materials[i].maps[MAP_ROUGHNESS].texture = LoadTextureFromCGLTFTextureView(data->materials[i].pbr_metallic_roughness.metallic_roughness_texture.texture->image, tint, texPath); + if (data->materials[i].pbr_metallic_roughness.metallic_roughness_texture.texture) + { + model.materials[i].maps[MAP_ROUGHNESS].texture = LoadTextureFromCgltfImage(data->materials[i].pbr_metallic_roughness.metallic_roughness_texture.texture->image, texPath, tint); } model.materials[i].maps[MAP_ROUGHNESS].value = roughness; model.materials[i].maps[MAP_METALNESS].value = metallic; - if (data->materials[i].normal_texture.texture) { - model.materials[i].maps[MAP_NORMAL].texture = LoadTextureFromCGLTFTextureView(data->materials[i].normal_texture.texture->image, tint, texPath); + if (data->materials[i].normal_texture.texture) + { + model.materials[i].maps[MAP_NORMAL].texture = LoadTextureFromCgltfImage(data->materials[i].normal_texture.texture->image, texPath, tint); } - if (data->materials[i].occlusion_texture.texture) { - model.materials[i].maps[MAP_OCCLUSION].texture = LoadTextureFromCGLTFTextureView(data->materials[i].occlusion_texture.texture->image, tint, texPath); + + if (data->materials[i].occlusion_texture.texture) + { + model.materials[i].maps[MAP_OCCLUSION].texture = LoadTextureFromCgltfImage(data->materials[i].occlusion_texture.texture->image, texPath, tint); } } } diff --git a/src/raylib.h b/src/raylib.h index 80786b690..2d6b36421 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -336,7 +336,6 @@ typedef struct MaterialMap { // Material type (generic) typedef struct Material { - char* name; // Material name Shader shader; // Material shader MaterialMap *maps; // Material maps array (MAX_MATERIAL_MAPS) float *params; // Material generic parameters (if required) From ca92f43c27d202a0c3ac3a90e76e891639c4b6d3 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 22 Oct 2019 00:37:10 +0200 Subject: [PATCH 110/123] Review some defines --- src/text.c | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/src/text.c b/src/text.c index 7b8283844..1c06fe968 100644 --- a/src/text.c +++ b/src/text.c @@ -10,6 +10,15 @@ * supported by default, to remove support, just comment unrequired #define in this module * * #define SUPPORT_DEFAULT_FONT +* Load default raylib font on initialization to be used by DrawText() and MeasureText(). +* If no default font loaded, DrawTextEx() and MeasureTextEx() are required. +* +* #define TEXTSPLIT_MAX_TEXT_BUFFER_LENGTH +* TextSplit() function static buffer max size +* +* #define TEXTSPLIT_MAX_SUBSTRINGS_COUNT +* TextSplit() function static substrings pointers array (pointing to static buffer) +* * * DEPENDENCIES: * stb_truetype - Load TTF file and rasterize characters data @@ -63,10 +72,19 @@ //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- -#define MAX_TEXT_BUFFER_LENGTH 1024 // Size of internal static buffers of some Text*() functions +#define MAX_TEXT_BUFFER_LENGTH 1024 // Size of internal static buffers used on some functions: + // TextFormat(), TextSubtext(), TextToUpper(), TextToLower(), TextToPascal() #define MAX_TEXT_UNICODE_CHARS 512 // Maximum number of unicode codepoints +#if !defined(TEXTSPLIT_MAX_TEXT_BUFFER_LENGTH) + #define TEXTSPLIT_MAX_TEXT_BUFFER_LENGTH 1024 // Size of static buffer: TextSplit() +#endif + +#if !defined(TEXTSPLIT_MAX_SUBSTRINGS_COUNT) + #define TEXTSPLIT_MAX_SUBSTRINGS_COUNT 128 // Size of static pointers array: TextSplit() +#endif + //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- @@ -1384,14 +1402,12 @@ const char **TextSplit(const char *text, char delimiter, int *count) // NOTE: Current implementation returns a copy of the provided string with '\0' (string end delimiter) // inserted between strings defined by "delimiter" parameter. No memory is dynamically allocated, // all used memory is static... it has some limitations: - // 1. Maximum number of possible split strings is set by MAX_SUBSTRINGS_COUNT - // 2. Maximum size of text to split is MAX_TEXT_BUFFER_LENGTH + // 1. Maximum number of possible split strings is set by TEXTSPLIT_MAX_SUBSTRINGS_COUNT + // 2. Maximum size of text to split is TEXTSPLIT_MAX_TEXT_BUFFER_LENGTH - #define MAX_SUBSTRINGS_COUNT 64 - - static const char *result[MAX_SUBSTRINGS_COUNT] = { NULL }; - static char buffer[MAX_TEXT_BUFFER_LENGTH] = { 0 }; - memset(buffer, 0, MAX_TEXT_BUFFER_LENGTH); + static const char *result[TEXTSPLIT_MAX_SUBSTRINGS_COUNT] = { NULL }; + static char buffer[TEXTSPLIT_MAX_TEXT_BUFFER_LENGTH] = { 0 }; + memset(buffer, 0, TEXTSPLIT_MAX_TEXT_BUFFER_LENGTH); result[0] = buffer; int counter = 0; @@ -1411,7 +1427,7 @@ const char **TextSplit(const char *text, char delimiter, int *count) result[counter] = buffer + i + 1; counter++; - if (counter == MAX_SUBSTRINGS_COUNT) break; + if (counter == TEXTSPLIT_MAX_SUBSTRINGS_COUNT) break; } } } From 06910eedfd5b1bb1b7e5c925fbf251b628418893 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 22 Oct 2019 23:15:26 +0200 Subject: [PATCH 111/123] Minor comment tweak --- src/text.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/text.c b/src/text.c index 1c06fe968..09295ab7b 100644 --- a/src/text.c +++ b/src/text.c @@ -21,7 +21,8 @@ * * * DEPENDENCIES: -* stb_truetype - Load TTF file and rasterize characters data +* stb_truetype - Load TTF file and rasterize characters data +* stb_rect_pack - Rectangles packing algorythms, required for font atlas generation * * * LICENSE: zlib/libpng @@ -49,7 +50,7 @@ // Check if config flags have been externally provided on compilation line #if !defined(EXTERNAL_CONFIG_FLAGS) - #include "config.h" // Defines module configuration flags + #include "config.h" // Defines module configuration flags #endif #include // Required for: malloc(), free() From 1878a9ea016a87f79f0498a99c7795234e2405f9 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 22 Oct 2019 23:15:41 +0200 Subject: [PATCH 112/123] Corrected possible memory leak #993 --- src/raudio.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/raudio.c b/src/raudio.c index 68fa95c8a..188c05329 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -474,7 +474,11 @@ static void InitAudioBufferPool() // Close the audio buffers pool static void CloseAudioBufferPool() { - for (int i = 0; i < MAX_AUDIO_BUFFER_POOL_CHANNELS; i++) RL_FREE(audioBufferPool[i]); + for (int i = 0; i < MAX_AUDIO_BUFFER_POOL_CHANNELS; i++) + { + RL_FREE(audioBufferPool[i]->buffer); + RL_FREE(audioBufferPool[i]); + } } //---------------------------------------------------------------------------------- From 3c2ce77b7b82a966c2c6c9ad451bec1f5d3d3d77 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 22 Oct 2019 23:18:42 +0200 Subject: [PATCH 113/123] ClearDirectoryFiles(): Corrected memory leak #991 --- src/core.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/core.c b/src/core.c index b4f955adc..a39b175a3 100644 --- a/src/core.c +++ b/src/core.c @@ -1976,13 +1976,10 @@ char **GetDirectoryFiles(const char *dirPath, int *fileCount) // Clear directory files paths buffers void ClearDirectoryFiles(void) { - if (dirFilesCount > 0) - { - for (int i = 0; i < dirFilesCount; i++) RL_FREE(dirFilesPath[i]); + for (int i = 0; i < MAX_DIRECTORY_FILES; i++) RL_FREE(dirFilesPath[i]); - RL_FREE(dirFilesPath); - dirFilesCount = 0; - } + RL_FREE(dirFilesPath); + dirFilesCount = 0; } // Change working directory, returns true if success From 9b6227688f93e318bd252f194752c57c9953a86e Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 22 Oct 2019 23:31:04 +0200 Subject: [PATCH 114/123] Corrected issue #992 --- src/models.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/models.c b/src/models.c index 3208a3007..17cd94568 100644 --- a/src/models.c +++ b/src/models.c @@ -2389,10 +2389,10 @@ void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rota Color color = model.materials[model.meshMaterial[i]].maps[MAP_DIFFUSE].color; Color colorTint = WHITE; - colorTint.r = ((color.r/255)*(tint.r/255))*255; - colorTint.g = ((color.g/255)*(tint.g/255))*255; - colorTint.b = ((color.b/255)*(tint.b/255))*255; - colorTint.a = ((color.a/255)*(tint.a/255))*255; + colorTint.r = (((float)color.r/255.0)*((float)tint.r/255.0))*255; + colorTint.g = (((float)color.g/255.0)*((float)tint.g/255.0))*255; + colorTint.b = (((float)color.b/255.0)*((float)tint.b/255.0))*255; + colorTint.a = (((float)color.a/255.0)*((float)tint.a/255.0))*255; model.materials[model.meshMaterial[i]].maps[MAP_DIFFUSE].color = colorTint; rlDrawMesh(model.meshes[i], model.materials[model.meshMaterial[i]], model.transform); From 163a9e1f41efb30ae9d0ca255c8c3322705ca591 Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 23 Oct 2019 00:46:41 +0200 Subject: [PATCH 115/123] ClearDirectoryFiles() corrected bug --- src/core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/core.c b/src/core.c index a39b175a3..f8ee18a65 100644 --- a/src/core.c +++ b/src/core.c @@ -1976,9 +1976,13 @@ char **GetDirectoryFiles(const char *dirPath, int *fileCount) // Clear directory files paths buffers void ClearDirectoryFiles(void) { - for (int i = 0; i < MAX_DIRECTORY_FILES; i++) RL_FREE(dirFilesPath[i]); + if (dirFilesPath != NULL) + { + for (int i = 0; i < MAX_DIRECTORY_FILES; i++) RL_FREE(dirFilesPath[i]); - RL_FREE(dirFilesPath); + RL_FREE(dirFilesPath); + } + dirFilesCount = 0; } From 3d8b1165a8647c64cdbb3b4ca76371d67e758ea8 Mon Sep 17 00:00:00 2001 From: chriscamacho Date: Wed, 23 Oct 2019 09:42:17 +0100 Subject: [PATCH 116/123] mem leak in gltf loader (#995) --- src/models.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/models.c b/src/models.c index 17cd94568..501f1e706 100644 --- a/src/models.c +++ b/src/models.c @@ -3419,7 +3419,8 @@ static Texture LoadTextureFromCgltfImage(cgltf_image *image, const char *texPath free(data); Image rimage = LoadImagePro(raw, w, h, UNCOMPRESSED_R8G8B8A8); - + free(raw); + // TODO: Tint shouldn't be applied here! ImageColorTint(&rimage, tint); texture = LoadTextureFromImage(rimage); From 39e22046c144e551ada940facd98f5f3d7039e59 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 25 Oct 2019 14:29:12 +0200 Subject: [PATCH 117/123] ClearDirectoryFiles(): Corrected issue #994 --- src/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core.c b/src/core.c index f8ee18a65..b247c1aa5 100644 --- a/src/core.c +++ b/src/core.c @@ -1976,7 +1976,7 @@ char **GetDirectoryFiles(const char *dirPath, int *fileCount) // Clear directory files paths buffers void ClearDirectoryFiles(void) { - if (dirFilesPath != NULL) + if (dirFilesCount > 0) { for (int i = 0; i < MAX_DIRECTORY_FILES; i++) RL_FREE(dirFilesPath[i]); From a6db31c01e57ba9b0370190b11222dfaf4023b73 Mon Sep 17 00:00:00 2001 From: Industrious Nomad <44799276+IndustriousNomad@users.noreply.github.com> Date: Sat, 26 Oct 2019 03:45:15 -0400 Subject: [PATCH 118/123] updated RayMarching Demo (#997) * Removed Unused Uniforms uniform vec3 viewUp; uniform float deltaTime; * Removed Unused uniforms uniform vec3 viewUp; uniform float deltaTime; * Updated Source Added - #define PLATFORM_DESKTOP line for desktop users. This now will correctly find the proper glsl version for the raymarching.fs file. Removed - Uniforms --> deltaTime and viewUp. Including the code that was setting them. They were never used and they were triggering a log warning. Removed - The const from both screenWidth and screenHeight. Now they can be used to update the shader resolution when screen is resized. NOTE : This is a quick fix and probably not the best idea. Added - IsWindowResized() to check if screen is resized. If window is resized then width, height and shader resolution are updated. Changed - MIT tag at bottom right color value to BLACK. Now it's easier to see. * Closer Match to original code * Removed the PLATFORM_DESKTOP Define --- .../resources/shaders/glsl100/raymarching.fs | 4 +-- .../resources/shaders/glsl330/raymarching.fs | 4 +-- examples/shaders/shaders_raymarching.c | 26 ++++++++++++------- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/examples/shaders/resources/shaders/glsl100/raymarching.fs b/examples/shaders/resources/shaders/glsl100/raymarching.fs index 4ae71297d..c823e01eb 100644 --- a/examples/shaders/resources/shaders/glsl100/raymarching.fs +++ b/examples/shaders/resources/shaders/glsl100/raymarching.fs @@ -8,8 +8,6 @@ varying vec4 fragColor; uniform vec3 viewEye; uniform vec3 viewCenter; -uniform vec3 viewUp; -uniform float deltaTime; uniform float runTime; uniform vec2 resolution; @@ -428,4 +426,4 @@ void main() #endif gl_FragColor = vec4( tot, 1.0 ); -} \ No newline at end of file +} diff --git a/examples/shaders/resources/shaders/glsl330/raymarching.fs b/examples/shaders/resources/shaders/glsl330/raymarching.fs index 7c9fbcb10..3cec58a2b 100644 --- a/examples/shaders/resources/shaders/glsl330/raymarching.fs +++ b/examples/shaders/resources/shaders/glsl330/raymarching.fs @@ -9,8 +9,6 @@ out vec4 finalColor; uniform vec3 viewEye; uniform vec3 viewCenter; -uniform vec3 viewUp; -uniform float deltaTime; uniform float runTime; uniform vec2 resolution; @@ -429,4 +427,4 @@ void main() #endif finalColor = vec4( tot, 1.0 ); -} \ No newline at end of file +} diff --git a/examples/shaders/shaders_raymarching.c b/examples/shaders/shaders_raymarching.c index 34091792e..06ad0f92e 100644 --- a/examples/shaders/shaders_raymarching.c +++ b/examples/shaders/shaders_raymarching.c @@ -28,9 +28,10 @@ int main(void) { // Initialization //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; + int screenWidth = 800; + int screenHeight = 450; + SetConfigFlags(FLAG_WINDOW_RESIZABLE); InitWindow(screenWidth, screenHeight, "raylib [shaders] example - raymarching shapes"); Camera camera = { 0 }; @@ -48,12 +49,10 @@ int main(void) // Get shader locations for required uniforms int viewEyeLoc = GetShaderLocation(shader, "viewEye"); int viewCenterLoc = GetShaderLocation(shader, "viewCenter"); - int viewUpLoc = GetShaderLocation(shader, "viewUp"); - int deltaTimeLoc = GetShaderLocation(shader, "deltaTime"); int runTimeLoc = GetShaderLocation(shader, "runTime"); int resolutionLoc = GetShaderLocation(shader, "resolution"); - float resolution[2] = { screenWidth, screenHeight }; + float resolution[2] = { (float)screenWidth, (float)screenHeight }; SetShaderValue(shader, resolutionLoc, resolution, UNIFORM_VEC2); float runTime = 0.0f; @@ -64,13 +63,22 @@ int main(void) // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { + // Check if screen is resized + //---------------------------------------------------------------------------------- + if(IsWindowResized()) + { + screenWidth = GetScreenWidth(); + screenHeight = GetScreenHeight(); + float resolution[2] = { (float)screenWidth, (float)screenHeight }; + SetShaderValue(shader, resolutionLoc, resolution, UNIFORM_VEC2); + } + // Update //---------------------------------------------------------------------------------- UpdateCamera(&camera); // Update camera float cameraPos[3] = { camera.position.x, camera.position.y, camera.position.z }; float cameraTarget[3] = { camera.target.x, camera.target.y, camera.target.z }; - float cameraUp[3] = { camera.up.x, camera.up.y, camera.up.z }; float deltaTime = GetFrameTime(); runTime += deltaTime; @@ -78,8 +86,6 @@ int main(void) // Set shader required uniform values SetShaderValue(shader, viewEyeLoc, cameraPos, UNIFORM_VEC3); SetShaderValue(shader, viewCenterLoc, cameraTarget, UNIFORM_VEC3); - SetShaderValue(shader, viewUpLoc, cameraUp, UNIFORM_VEC3); - SetShaderValue(shader, deltaTimeLoc, &deltaTime, UNIFORM_FLOAT); SetShaderValue(shader, runTimeLoc, &runTime, UNIFORM_FLOAT); //---------------------------------------------------------------------------------- @@ -95,7 +101,7 @@ int main(void) DrawRectangle(0, 0, screenWidth, screenHeight, WHITE); EndShaderMode(); - DrawText("(c) Raymarching shader by Iñigo Quilez. MIT License.", screenWidth - 280, screenHeight - 20, 10, GRAY); + DrawText("(c) Raymarching shader by Iñigo Quilez. MIT License.", screenWidth - 280, screenHeight - 20, 10, BLACK); EndDrawing(); //---------------------------------------------------------------------------------- @@ -109,4 +115,4 @@ int main(void) //-------------------------------------------------------------------------------------- return 0; -} \ No newline at end of file +} From 90b3dceb5401eb89740bde3f2964f4d3c3f2e009 Mon Sep 17 00:00:00 2001 From: chriscamacho Date: Sun, 27 Oct 2019 11:13:18 +0000 Subject: [PATCH 119/123] added GetMatrixProjection fixed issue with GL11 where model matrix was identity (#999) --- src/raylib.h | 3 ++- src/rlgl.h | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/raylib.h b/src/raylib.h index 2d6b36421..9bc7c2fa8 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -432,7 +432,7 @@ typedef struct Sound { typedef struct Music { int ctxType; // Type of music context (audio filetype) void *ctxData; // Audio context data, depends on type - + unsigned int sampleCount; // Total number of samples unsigned int loopCount; // Loops count (times music will play), 0 means infinite loop @@ -1319,6 +1319,7 @@ RLAPI void SetShaderValueTexture(Shader shader, int uniformLoc, Texture2D textur RLAPI void SetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix) RLAPI void SetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix) RLAPI Matrix GetMatrixModelview(void); // Get internal modelview matrix +RLAPI Matrix GetMatrixProjection(void); // Get internal projection matrix // Texture maps generation (PBR) // NOTE: Required shaders should be provided diff --git a/src/rlgl.h b/src/rlgl.h index cc4fb048f..b83da6e8c 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -3155,6 +3155,23 @@ void SetMatrixProjection(Matrix proj) #endif } +// Return internal projection matrix +Matrix GetMatrixProjection(void) { +#if defined(GRAPHICS_API_OPENGL_11) + float mat[16]; + glGetFloatv(GL_PROJECTION_MATRIX,mat); + Matrix m; + m.m0 = mat[0]; m.m1 = mat[1]; m.m2 = mat[2]; m.m3 = mat[3]; + m.m4 = mat[4]; m.m5 = mat[5]; m.m6 = mat[6]; m.m7 = mat[7]; + m.m8 = mat[8]; m.m9 = mat[9]; m.m10 = mat[10]; m.m11 = mat[11]; + m.m12 = mat[12]; m.m13 = mat[13]; m.m14 = mat[14]; m.m15 = mat[15]; + return m; +#else + return projection; +#endif +# +} + // Set a custom modelview matrix (replaces internal modelview matrix) void SetMatrixModelview(Matrix view) { @@ -3170,6 +3187,10 @@ Matrix GetMatrixModelview(void) #if defined(GRAPHICS_API_OPENGL_11) float mat[16]; glGetFloatv(GL_MODELVIEW_MATRIX, mat); + matrix.m0 = mat[0]; matrix.m1 = mat[1]; matrix.m2 = mat[2]; matrix.m3 = mat[3]; + matrix.m4 = mat[4]; matrix.m5 = mat[5]; matrix.m6 = mat[6]; matrix.m7 = mat[7]; + matrix.m8 = mat[8]; matrix.m9 = mat[9]; matrix.m10 = mat[10]; matrix.m11 = mat[11]; + matrix.m12 = mat[12]; matrix.m13 = mat[13]; matrix.m14 = mat[14]; matrix.m15 = mat[15]; #else matrix = modelview; #endif From 3f12fa54f7c9d9b278cf50dbc2b0aa01689f1072 Mon Sep 17 00:00:00 2001 From: Donald Duvall Date: Sun, 27 Oct 2019 09:15:25 -0700 Subject: [PATCH 120/123] Update Bindings list include raylib-pas info (#1001) --- BINDINGS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/BINDINGS.md b/BINDINGS.md index bdddf095f..f9c667748 100644 --- a/BINDINGS.md +++ b/BINDINGS.md @@ -12,6 +12,7 @@ Some people ported raylib to other languages in form of bindings or wrappers to - [cray](https://github.com/tapgg/cray) : raylib **Crystal** binding - [Graphics::Raylib](https://metacpan.org/pod/Graphics::Raylib) : raylib **Perl** wrapper - [raylib-pascal](https://github.com/drezgames/raylib-pascal) - raylib **Pascal** binding + - [raylib-pas](https://github.com/tazdij/raylib-pas) - raylib **Pascal** binding (including rlgl & raymath) - [Raylib-cs](https://github.com/ChrisDill/Raylib-cs) : raylib **C#** binding - [RaylibSharp](https://github.com/TheLumaio/RaylibSharp) : raylib **C#** binding - [raylib-ruby-ffi](https://github.com/D3nX/raylib-ruby-ffi) : raylib **Ruby** binding From f6df47dfe50fd3d760255fa1326be82200a8a84c Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 27 Oct 2019 23:56:48 +0100 Subject: [PATCH 121/123] ADDED: TextToUtf8() -WIP- RENAMED: TextCountCodepoints() -> GetCodepointsCount() --- src/raylib.h | 11 +- src/text.c | 349 ++++++++++++++++++++++++++++----------------------- 2 files changed, 201 insertions(+), 159 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 9bc7c2fa8..6c1e36f09 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1188,14 +1188,11 @@ RLAPI void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontS RLAPI int MeasureText(const char *text, int fontSize); // Measure string width for default font RLAPI Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing); // Measure string size for Font RLAPI int GetGlyphIndex(Font font, int character); // Get index position for a unicode character on font -RLAPI int GetNextCodepoint(const char *text, int *bytesProcessed); // Returns next codepoint in a UTF8 encoded string; 0x3f('?') is returned on failure -RLAPI int *GetCodepoints(const char *text, int *count); // Get all codepoints in a string, codepoints count returned by parameters -// Text strings management functions +// Text strings management functions (no utf8 strings, only byte chars) // NOTE: Some strings allocate memory internally for returned strings, just be careful! RLAPI bool TextIsEqual(const char *text1, const char *text2); // Check if two text string are equal RLAPI unsigned int TextLength(const char *text); // Get text length, checks for '\0' ending -RLAPI unsigned int TextCountCodepoints(const char *text); // Get total number of characters (codepoints) in a UTF8 encoded string 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 (memory should be freed!) @@ -1208,6 +1205,12 @@ 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 const char *TextToUtf8(int codepoint, int *byteLength); // Encode codepoint into utf8 text (char array length returned as parameter) + +// UTF8 text strings management functions +RLAPI int *GetCodepoints(const char *text, int *count); // Get all codepoints in a string, codepoints count returned by parameters +RLAPI int GetCodepointsCount(const char *text); // Get total number of characters (codepoints) in a UTF8 encoded string +RLAPI int GetNextCodepoint(const char *text, int *bytesProcessed); // Returns next codepoint in a UTF8 encoded string; 0x3f('?') is returned on failure //------------------------------------------------------------------------------------ // Basic 3d Shapes Drawing Functions (Module: models) diff --git a/src/text.c b/src/text.c index 09295ab7b..66d3a7257 100644 --- a/src/text.c +++ b/src/text.c @@ -777,140 +777,6 @@ void DrawFPS(int posX, int posY) DrawText(TextFormat("%2i FPS", fps), posX, posY, 20, LIME); } -// Returns next codepoint in a UTF8 encoded text, scanning until '\0' is found -// When a invalid UTF8 byte is encountered we exit as soon as possible and a '?'(0x3f) codepoint is returned -// Total number of bytes processed are returned as a parameter -// NOTE: the standard says U+FFFD should be returned in case of errors -// but that character is not supported by the default font in raylib -// TODO: optimize this code for speed!! -int GetNextCodepoint(const char *text, int *bytesProcessed) -{ -/* - UTF8 specs from https://www.ietf.org/rfc/rfc3629.txt - - Char. number range | UTF-8 octet sequence - (hexadecimal) | (binary) - --------------------+--------------------------------------------- - 0000 0000-0000 007F | 0xxxxxxx - 0000 0080-0000 07FF | 110xxxxx 10xxxxxx - 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx - 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx -*/ - - // NOTE: on decode errors we return as soon as possible - - int code = 0x3f; // Codepoint (defaults to '?') - int octet = (unsigned char)(text[0]); // The first UTF8 octet - *bytesProcessed = 1; - - if (octet <= 0x7f) - { - // Only one octet (ASCII range x00-7F) - code = text[0]; - } - else if ((octet & 0xe0) == 0xc0) - { - // Two octets - // [0]xC2-DF [1]UTF8-tail(x80-BF) - unsigned char octet1 = text[1]; - - if ((octet1 == '\0') || ((octet1 >> 6) != 2)) { *bytesProcessed = 2; return code; } // Unexpected sequence - - if ((octet >= 0xc2) && (octet <= 0xdf)) - { - code = ((octet & 0x1f) << 6) | (octet1 & 0x3f); - *bytesProcessed = 2; - } - } - else if ((octet & 0xf0) == 0xe0) - { - // Three octets - unsigned char octet1 = text[1]; - unsigned char octet2 = '\0'; - - if ((octet1 == '\0') || ((octet1 >> 6) != 2)) { *bytesProcessed = 2; return code; } // Unexpected sequence - - octet2 = text[2]; - - if ((octet2 == '\0') || ((octet2 >> 6) != 2)) { *bytesProcessed = 3; return code; } // Unexpected sequence - - /* - [0]xE0 [1]xA0-BF [2]UTF8-tail(x80-BF) - [0]xE1-EC [1]UTF8-tail [2]UTF8-tail(x80-BF) - [0]xED [1]x80-9F [2]UTF8-tail(x80-BF) - [0]xEE-EF [1]UTF8-tail [2]UTF8-tail(x80-BF) - */ - - if (((octet == 0xe0) && !((octet1 >= 0xa0) && (octet1 <= 0xbf))) || - ((octet == 0xed) && !((octet1 >= 0x80) && (octet1 <= 0x9f)))) { *bytesProcessed = 2; return code; } - - if ((octet >= 0xe0) && (0 <= 0xef)) - { - code = ((octet & 0xf) << 12) | ((octet1 & 0x3f) << 6) | (octet2 & 0x3f); - *bytesProcessed = 3; - } - } - else if ((octet & 0xf8) == 0xf0) - { - // Four octets - if (octet > 0xf4) return code; - - unsigned char octet1 = text[1]; - unsigned char octet2 = '\0'; - unsigned char octet3 = '\0'; - - if ((octet1 == '\0') || ((octet1 >> 6) != 2)) { *bytesProcessed = 2; return code; } // Unexpected sequence - - octet2 = text[2]; - - if ((octet2 == '\0') || ((octet2 >> 6) != 2)) { *bytesProcessed = 3; return code; } // Unexpected sequence - - octet3 = text[3]; - - if ((octet3 == '\0') || ((octet3 >> 6) != 2)) { *bytesProcessed = 4; return code; } // Unexpected sequence - - /* - [0]xF0 [1]x90-BF [2]UTF8-tail [3]UTF8-tail - [0]xF1-F3 [1]UTF8-tail [2]UTF8-tail [3]UTF8-tail - [0]xF4 [1]x80-8F [2]UTF8-tail [3]UTF8-tail - */ - - if (((octet == 0xf0) && !((octet1 >= 0x90) && (octet1 <= 0xbf))) || - ((octet == 0xf4) && !((octet1 >= 0x80) && (octet1 <= 0x8f)))) { *bytesProcessed = 2; return code; } // Unexpected sequence - - if (octet >= 0xf0) - { - code = ((octet & 0x7) << 18) | ((octet1 & 0x3f) << 12) | ((octet2 & 0x3f) << 6) | (octet3 & 0x3f); - *bytesProcessed = 4; - } - } - - if (code > 0x10ffff) code = 0x3f; // Codepoints after U+10ffff are invalid - - return code; -} - -// Get all codepoints in a string, codepoints count returned by parameters -int *GetCodepoints(const char *text, int *count) -{ - static int codepoints[MAX_TEXT_UNICODE_CHARS] = { 0 }; - memset(codepoints, 0, MAX_TEXT_UNICODE_CHARS*sizeof(int)); - - int bytesProcessed = 0; - int textLength = strlen(text); - int codepointsCount = 0; - - for (int i = 0; i < textLength; codepointsCount++) - { - codepoints[codepointsCount] = GetNextCodepoint(text + i, &bytesProcessed); - i += bytesProcessed; - } - - *count = codepointsCount; - - return codepoints; -} - // Draw text (using default font) // NOTE: fontSize work like in any drawing program but if fontSize is lower than font-base-size, then font-base-size is used // NOTE: chars spacing is proportional to fontSize @@ -1235,27 +1101,6 @@ unsigned int TextLength(const char *text) return length; } -// Returns total number of characters(codepoints) in a UTF8 encoded text, until '\0' is found -// NOTE: If an invalid UTF8 sequence is encountered a '?'(0x3f) codepoint is counted instead -unsigned int TextCountCodepoints(const char *text) -{ - unsigned int len = 0; - char *ptr = (char *)&text[0]; - - while (*ptr != '\0') - { - int next = 0; - int letter = GetNextCodepoint(ptr, &next); - - if (letter == 0x3f) ptr += 1; - else ptr += next; - - len++; - } - - return len; -} - // Formatting of text with variables to 'embed' const char *TextFormat(const char *text, ...) { @@ -1531,6 +1376,200 @@ int TextToInteger(const char *text) return result; } + +// Encode codepoint into utf8 text (char array length returned as parameter) +RLAPI const char *TextToUtf8(int codepoint, int *byteLength) +{ + static char utf8[6] = { 0 }; + int length = 0; + + if (codepoint <= 0x7f) + { + utf8[0] = (char)codepoint; + length = 1; + } + else if (codepoint <= 0x7ff) + { + utf8[0] = (char)(((codepoint >> 6) & 0x1f) | 0xc0); + utf8[1] = (char)((codepoint & 0x3f) | 0x80); + length = 2; + } + else if (codepoint <= 0xffff) + { + utf8[0] = (char)(((codepoint >> 12) & 0x0f) | 0xe0); + utf8[1] = (char)(((codepoint >> 6) & 0x3f) | 0x80); + utf8[2] = (char)((codepoint & 0x3f) | 0x80); + length = 3; + } + else if (codepoint <= 0x10ffff) + { + utf8[0] = (char)(((codepoint >> 18) & 0x07) | 0xf0); + utf8[1] = (char)(((codepoint >> 12) & 0x3f) | 0x80); + utf8[2] = (char)(((codepoint >> 6) & 0x3f) | 0x80); + utf8[3] = (char)((codepoint & 0x3f) | 0x80); + length = 4; + } + + *byteLength = length; + + return utf8; +} + + +// Get all codepoints in a string, codepoints count returned by parameters +int *GetCodepoints(const char *text, int *count) +{ + static int codepoints[MAX_TEXT_UNICODE_CHARS] = { 0 }; + memset(codepoints, 0, MAX_TEXT_UNICODE_CHARS*sizeof(int)); + + int bytesProcessed = 0; + int textLength = strlen(text); + int codepointsCount = 0; + + for (int i = 0; i < textLength; codepointsCount++) + { + codepoints[codepointsCount] = GetNextCodepoint(text + i, &bytesProcessed); + i += bytesProcessed; + } + + *count = codepointsCount; + + return codepoints; +} + +// Returns total number of characters(codepoints) in a UTF8 encoded text, until '\0' is found +// NOTE: If an invalid UTF8 sequence is encountered a '?'(0x3f) codepoint is counted instead +int GetCodepointsCount(const char *text) +{ + unsigned int len = 0; + char *ptr = (char *)&text[0]; + + while (*ptr != '\0') + { + int next = 0; + int letter = GetNextCodepoint(ptr, &next); + + if (letter == 0x3f) ptr += 1; + else ptr += next; + + len++; + } + + return len; +} + + +// Returns next codepoint in a UTF8 encoded text, scanning until '\0' is found +// When a invalid UTF8 byte is encountered we exit as soon as possible and a '?'(0x3f) codepoint is returned +// Total number of bytes processed are returned as a parameter +// NOTE: the standard says U+FFFD should be returned in case of errors +// but that character is not supported by the default font in raylib +// TODO: optimize this code for speed!! +int GetNextCodepoint(const char *text, int *bytesProcessed) +{ +/* + UTF8 specs from https://www.ietf.org/rfc/rfc3629.txt + + Char. number range | UTF-8 octet sequence + (hexadecimal) | (binary) + --------------------+--------------------------------------------- + 0000 0000-0000 007F | 0xxxxxxx + 0000 0080-0000 07FF | 110xxxxx 10xxxxxx + 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx + 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx +*/ + // NOTE: on decode errors we return as soon as possible + + int code = 0x3f; // Codepoint (defaults to '?') + int octet = (unsigned char)(text[0]); // The first UTF8 octet + *bytesProcessed = 1; + + if (octet <= 0x7f) + { + // Only one octet (ASCII range x00-7F) + code = text[0]; + } + else if ((octet & 0xe0) == 0xc0) + { + // Two octets + // [0]xC2-DF [1]UTF8-tail(x80-BF) + unsigned char octet1 = text[1]; + + if ((octet1 == '\0') || ((octet1 >> 6) != 2)) { *bytesProcessed = 2; return code; } // Unexpected sequence + + if ((octet >= 0xc2) && (octet <= 0xdf)) + { + code = ((octet & 0x1f) << 6) | (octet1 & 0x3f); + *bytesProcessed = 2; + } + } + else if ((octet & 0xf0) == 0xe0) + { + // Three octets + unsigned char octet1 = text[1]; + unsigned char octet2 = '\0'; + + if ((octet1 == '\0') || ((octet1 >> 6) != 2)) { *bytesProcessed = 2; return code; } // Unexpected sequence + + octet2 = text[2]; + + if ((octet2 == '\0') || ((octet2 >> 6) != 2)) { *bytesProcessed = 3; return code; } // Unexpected sequence + + /* + [0]xE0 [1]xA0-BF [2]UTF8-tail(x80-BF) + [0]xE1-EC [1]UTF8-tail [2]UTF8-tail(x80-BF) + [0]xED [1]x80-9F [2]UTF8-tail(x80-BF) + [0]xEE-EF [1]UTF8-tail [2]UTF8-tail(x80-BF) + */ + + if (((octet == 0xe0) && !((octet1 >= 0xa0) && (octet1 <= 0xbf))) || + ((octet == 0xed) && !((octet1 >= 0x80) && (octet1 <= 0x9f)))) { *bytesProcessed = 2; return code; } + + if ((octet >= 0xe0) && (0 <= 0xef)) + { + code = ((octet & 0xf) << 12) | ((octet1 & 0x3f) << 6) | (octet2 & 0x3f); + *bytesProcessed = 3; + } + } + else if ((octet & 0xf8) == 0xf0) + { + // Four octets + if (octet > 0xf4) return code; + + unsigned char octet1 = text[1]; + unsigned char octet2 = '\0'; + unsigned char octet3 = '\0'; + + if ((octet1 == '\0') || ((octet1 >> 6) != 2)) { *bytesProcessed = 2; return code; } // Unexpected sequence + + octet2 = text[2]; + + if ((octet2 == '\0') || ((octet2 >> 6) != 2)) { *bytesProcessed = 3; return code; } // Unexpected sequence + + octet3 = text[3]; + + if ((octet3 == '\0') || ((octet3 >> 6) != 2)) { *bytesProcessed = 4; return code; } // Unexpected sequence + + /* + [0]xF0 [1]x90-BF [2]UTF8-tail [3]UTF8-tail + [0]xF1-F3 [1]UTF8-tail [2]UTF8-tail [3]UTF8-tail + [0]xF4 [1]x80-8F [2]UTF8-tail [3]UTF8-tail + */ + + if (((octet == 0xf0) && !((octet1 >= 0x90) && (octet1 <= 0xbf))) || + ((octet == 0xf4) && !((octet1 >= 0x80) && (octet1 <= 0x8f)))) { *bytesProcessed = 2; return code; } // Unexpected sequence + + if (octet >= 0xf0) + { + code = ((octet & 0x7) << 18) | ((octet1 & 0x3f) << 12) | ((octet2 & 0x3f) << 6) | (octet3 & 0x3f); + *bytesProcessed = 4; + } + } + + if (code > 0x10ffff) code = 0x3f; // Codepoints after U+10ffff are invalid + + return code; +} //---------------------------------------------------------------------------------- //---------------------------------------------------------------------------------- From 6bf746d5319b94566be9827299f431cca7cca6f4 Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 28 Oct 2019 20:39:39 +0100 Subject: [PATCH 122/123] Corrected issue with function renamed --- examples/text/text_unicode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/text/text_unicode.c b/examples/text/text_unicode.c index 3525f01a1..53803e050 100644 --- a/examples/text/text_unicode.c +++ b/examples/text/text_unicode.c @@ -271,7 +271,7 @@ int main(int argc, char **argv) // Draw the info text below the main message int size = strlen(messages[message].text); - unsigned int len = TextCountCodepoints(messages[message].text); + int len = GetCodepointsCount(messages[message].text); const char *info = TextFormat("%s %u characters %i bytes", messages[message].language, len, size); sz = MeasureTextEx(GetFontDefault(), info, 10, 1.0f); Vector2 pos = { textRect.x + textRect.width - sz.x, msgRect.y + msgRect.height - sz.y - 2 }; From d73abe73e5e70ff18d68552ca0562ddccee8679b Mon Sep 17 00:00:00 2001 From: Ray Date: Mon, 28 Oct 2019 20:53:32 +0100 Subject: [PATCH 123/123] REDESIGN: TextToUtf8() ADDED: CodepointToUtf8() --- src/raylib.h | 7 +++-- src/text.c | 89 ++++++++++++++++++++++++++++++++-------------------- 2 files changed, 59 insertions(+), 37 deletions(-) diff --git a/src/raylib.h b/src/raylib.h index 6c1e36f09..7b6bb328c 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1195,8 +1195,8 @@ 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 (memory should be freed!) -RLAPI char *TextInsert(const char *text, const char *insert, int position); // Insert text in a position (memory should be freed!) +RLAPI char *TextReplace(char *text, const char *replace, const char *by); // Replace text string (memory must be freed!) +RLAPI char *TextInsert(const char *text, const char *insert, int position); // Insert text in a position (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 RLAPI void TextAppend(char *text, const char *append, int *position); // Append text at specific position and move cursor! @@ -1205,12 +1205,13 @@ 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 const char *TextToUtf8(int codepoint, int *byteLength); // Encode codepoint into utf8 text (char array length returned as parameter) +RLAPI char *TextToUtf8(int *codepoints, int length); // Encode text codepoint into utf8 text (memory must be freed!) // UTF8 text strings management functions RLAPI int *GetCodepoints(const char *text, int *count); // Get all codepoints in a string, codepoints count returned by parameters RLAPI int GetCodepointsCount(const char *text); // Get total number of characters (codepoints) in a UTF8 encoded string RLAPI int GetNextCodepoint(const char *text, int *bytesProcessed); // Returns next codepoint in a UTF8 encoded string; 0x3f('?') is returned on failure +RLAPI const char *CodepointToUtf8(int codepoint, int *byteLength); // Encode codepoint into utf8 text (char array length returned as parameter) //------------------------------------------------------------------------------------ // Basic 3d Shapes Drawing Functions (Module: models) diff --git a/src/text.c b/src/text.c index 66d3a7257..6d55fa8dc 100644 --- a/src/text.c +++ b/src/text.c @@ -1377,45 +1377,28 @@ int TextToInteger(const char *text) return result; } -// Encode codepoint into utf8 text (char array length returned as parameter) -RLAPI const char *TextToUtf8(int codepoint, int *byteLength) +// Encode text codepoint into utf8 text (memory must be freed!) +char *TextToUtf8(int *codepoints, int length) { - static char utf8[6] = { 0 }; - int length = 0; - - if (codepoint <= 0x7f) + // We allocate enough memory fo fit all possible codepoints + // NOTE: 5 bytes for every codepoint should be enough + char *text = (char *)calloc(length*5, 1); + const char *utf8 = NULL; + int size = 0; + + for (int i = 0, bytes = 0; i < length; i++) { - utf8[0] = (char)codepoint; - length = 1; + utf8 = CodepointToUtf8(codepoints[i], &bytes); + strncpy(text + size, utf8, bytes); + size += bytes; } - else if (codepoint <= 0x7ff) - { - utf8[0] = (char)(((codepoint >> 6) & 0x1f) | 0xc0); - utf8[1] = (char)((codepoint & 0x3f) | 0x80); - length = 2; - } - else if (codepoint <= 0xffff) - { - utf8[0] = (char)(((codepoint >> 12) & 0x0f) | 0xe0); - utf8[1] = (char)(((codepoint >> 6) & 0x3f) | 0x80); - utf8[2] = (char)((codepoint & 0x3f) | 0x80); - length = 3; - } - else if (codepoint <= 0x10ffff) - { - utf8[0] = (char)(((codepoint >> 18) & 0x07) | 0xf0); - utf8[1] = (char)(((codepoint >> 12) & 0x3f) | 0x80); - utf8[2] = (char)(((codepoint >> 6) & 0x3f) | 0x80); - utf8[3] = (char)((codepoint & 0x3f) | 0x80); - length = 4; - } - - *byteLength = length; - - return utf8; + + // Resize memory to text length + string NULL terminator + realloc(text, size + 1); + + return text; } - // Get all codepoints in a string, codepoints count returned by parameters int *GetCodepoints(const char *text, int *count) { @@ -1570,6 +1553,44 @@ int GetNextCodepoint(const char *text, int *bytesProcessed) return code; } + +// Encode codepoint into utf8 text (char array length returned as parameter) +RLAPI const char *CodepointToUtf8(int codepoint, int *byteLength) +{ + static char utf8[6] = { 0 }; + int length = 0; + + if (codepoint <= 0x7f) + { + utf8[0] = (char)codepoint; + length = 1; + } + else if (codepoint <= 0x7ff) + { + utf8[0] = (char)(((codepoint >> 6) & 0x1f) | 0xc0); + utf8[1] = (char)((codepoint & 0x3f) | 0x80); + length = 2; + } + else if (codepoint <= 0xffff) + { + utf8[0] = (char)(((codepoint >> 12) & 0x0f) | 0xe0); + utf8[1] = (char)(((codepoint >> 6) & 0x3f) | 0x80); + utf8[2] = (char)((codepoint & 0x3f) | 0x80); + length = 3; + } + else if (codepoint <= 0x10ffff) + { + utf8[0] = (char)(((codepoint >> 18) & 0x07) | 0xf0); + utf8[1] = (char)(((codepoint >> 12) & 0x3f) | 0x80); + utf8[2] = (char)(((codepoint >> 6) & 0x3f) | 0x80); + utf8[3] = (char)((codepoint & 0x3f) | 0x80); + length = 4; + } + + *byteLength = length; + + return utf8; +} //---------------------------------------------------------------------------------- //----------------------------------------------------------------------------------

-^Z^%^^eEL4%hX5zh2L$ZO(>^ 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%0AOhSBs4h;tCS4e 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 z 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 Date: Thu, 12 Sep 2019 16:26:19 +0200 Subject: [PATCH 065/123] Add glTF Duck model --- .../models/resources/models/Duck/Duck.glb | Bin 0 -> 120484 bytes .../models/resources/models/Duck/Duck.gltf | 219 ++++++++++++++++++ .../models/resources/models/Duck/Duck0.bin | Bin 0 -> 102040 bytes .../models/resources/models/Duck/DuckCM.png | Bin 0 -> 16302 bytes .../resources/models/Duck/Duck_license.txt | 14 ++ 5 files changed, 233 insertions(+) create mode 100644 examples/models/resources/models/Duck/Duck.glb create mode 100644 examples/models/resources/models/Duck/Duck.gltf create mode 100644 examples/models/resources/models/Duck/Duck0.bin create mode 100644 examples/models/resources/models/Duck/DuckCM.png create mode 100644 examples/models/resources/models/Duck/Duck_license.txt diff --git a/examples/models/resources/models/Duck/Duck.glb b/examples/models/resources/models/Duck/Duck.glb new file mode 100644 index 0000000000000000000000000000000000000000..217170d2bd67051270be974292dc3b834eefe206 GIT binary patch literal 120484 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 RAbBlY?7Qf;2Rj+ye*ggh(RTm< literal 0 HcmV?d00001 diff --git a/examples/models/resources/models/Duck/Duck.gltf b/examples/models/resources/models/Duck/Duck.gltf new file mode 100644 index 000000000..b80c842ce --- /dev/null +++ b/examples/models/resources/models/Duck/Duck.gltf @@ -0,0 +1,219 @@ +{ + "asset": { + "generator": "COLLADA2GLTF", + "version": "2.0" + }, + "scene": 0, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ], + "nodes": [ + { + "children": [ + 2, + 1 + ], + "matrix": [ + 0.009999999776482582, + 0.0, + 0.0, + 0.0, + 0.0, + 0.009999999776482582, + 0.0, + 0.0, + 0.0, + 0.0, + 0.009999999776482582, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + }, + { + "matrix": [ + -0.7289686799049377, + 0.0, + -0.6845470666885376, + 0.0, + -0.4252049028873444, + 0.7836934328079224, + 0.4527972936630249, + 0.0, + 0.5364750623703003, + 0.6211478114128113, + -0.571287989616394, + 0.0, + 400.1130065917969, + 463.2640075683594, + -431.0780334472656, + 1.0 + ], + "camera": 0 + }, + { + "mesh": 0 + } + ], + "cameras": [ + { + "perspective": { + "aspectRatio": 1.5, + "yfov": 0.6605925559997559, + "zfar": 10000.0, + "znear": 1.0 + }, + "type": "perspective" + } + ], + "meshes": [ + { + "primitives": [ + { + "attributes": { + "NORMAL": 1, + "POSITION": 2, + "TEXCOORD_0": 3 + }, + "indices": 0, + "mode": 4, + "material": 0 + } + ], + "name": "LOD3spShape" + } + ], + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5123, + "count": 12636, + "max": [ + 2398 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5126, + "count": 2399, + "max": [ + 0.9995989799499512, + 0.999580979347229, + 0.9984359741210938 + ], + "min": [ + -0.9990839958190918, + -1.0, + -0.9998319745063782 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 28788, + "componentType": 5126, + "count": 2399, + "max": [ + 96.17990112304688, + 163.97000122070313, + 53.92519760131836 + ], + "min": [ + -69.29850006103516, + 9.929369926452637, + -61.32819747924805 + ], + "type": "VEC3" + }, + { + "bufferView": 2, + "byteOffset": 0, + "componentType": 5126, + "count": 2399, + "max": [ + 0.9833459854125976, + 0.9800369739532472 + ], + "min": [ + 0.026409000158309938, + 0.01996302604675293 + ], + "type": "VEC2" + } + ], + "materials": [ + { + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 0 + }, + "metallicFactor": 0.0 + }, + "emissiveFactor": [ + 0.0, + 0.0, + 0.0 + ], + "name": "blinn3-fx" + } + ], + "textures": [ + { + "sampler": 0, + "source": 0 + } + ], + "images": [ + { + "uri": "DuckCM.png" + } + ], + "samplers": [ + { + "magFilter": 9729, + "minFilter": 9986, + "wrapS": 10497, + "wrapT": 10497 + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 76768, + "byteLength": 25272, + "target": 34963 + }, + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 57576, + "byteStride": 12, + "target": 34962 + }, + { + "buffer": 0, + "byteOffset": 57576, + "byteLength": 19192, + "byteStride": 8, + "target": 34962 + } + ], + "buffers": [ + { + "byteLength": 102040, + "uri": "Duck0.bin" + } + ] +} diff --git a/examples/models/resources/models/Duck/Duck0.bin b/examples/models/resources/models/Duck/Duck0.bin new file mode 100644 index 0000000000000000000000000000000000000000..5f01f88ac6ca2b0fd7bfaf9259ed1a036e731fdc GIT binary patch literal 102040 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⪚TpJ$e(b?t3wNu%^k^Si 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 literal 0 HcmV?d00001 diff --git a/examples/models/resources/models/Duck/DuckCM.png b/examples/models/resources/models/Duck/DuckCM.png new file mode 100644 index 0000000000000000000000000000000000000000..9fa2dd4cc0b9b07d2f3192d8f5efc1a18c13e960 GIT binary patch literal 16302 zcmb`uc{o(>8$W)ZGm9~{v2V%PvM)*2;#evoOG&gaQb|!mn@Z+b3Z-a8o2i7NQYlJt zP)N#@-Vv2awxZBxpYxs1_51zv{r`LZIpn&t5(NfDe5x~)LApZlh705au ztAKn3WD}52fvgAe8ITP?z6Fv1@+FWdK;8y26Ud98uC7kbj@aAVlbqwUlhat!eK0>HJ$S)}t|} zvEe6jHjMIb`JrtowcFPgN~H8zAmZLrA>`@3^pGg?TWd|X=&s-Jy92=;y}ewWbd|%~ z5en|$jc_$!4eGUE}~>U=mz#0DMzEyehUipEiKww z`iTY>u0@h#w^6Wj%$rQ15Yu-38>p~tw|rZd1emzyNWSq!bJyf|O;{T~4(v%7fc}_& zF%s^-?WQ-kUuCms{;Uiq1O2Y$e)HLSKB-eA`RU<}gGF1;2aR;BfBXB?ray77FUiT= zzh*g%mOY=I>=;`!s&ZzN5^nX%@-gzJd~{yt5f&EsR}Bwt%uhZQOQ~e)-~TC6`eU#b z>b98kOTWB&xA_cs1i$ag$4{jK+8HKQY~$g&<_`=`wNuY4di1>mT|5Iniq$RPrD|F+du!52}i%<;Jd<8J{qh}3@_R|uCi?EbTKLT)4>YhNqC zX5qf9C!UHV(;dxVwoA#$DiXVnsw_`;vfo z1#G26z0~|u#p5pLDqN-U;qJJRYn2gIKeQJuuI#k_EzH5uy~S1tRZw#%*_6`C+bBVX z%AFh34oIR@R*Y!w{&VnP%Z_;Kj!f9eN?@`KxCIuA5&xO0zdKKwb&;p`c`m0Ss2QJ< z_h4K*?)I-D&Sz(Yh!N3%!=}N7zD_9HOa8Qv@CG?6gmFi zWo>dh7sQ2eUQVYOH5(u@=dTR{&9Zg@?KZ%NEyS|X2u!#i( z=@+f?Nzp1Q1cogJ+HAGG&+haaczOGf_;VO?o~aRCGpr~MJ5R+acy)81_fqvM?lc-3^l_xx3j93E8s z)t!WIcm{P>p_Opn(%kv?c$g%hzdWpPS=P_5FZR_ERSUswO3vN7r;1Kik@~;%I@V>p zqXx<`vZa3Bzvf}_E3#M_!+Q!o_$v@dYoa1u_V{UhF^uL{keA1=%#-$KG_Ozg#6$0% zlD5{3O&;a2H#elLgqeNtT>husyMMtpKd69jKpCqxk_cOtahc$$6x!iC2v#7CaOtl~t?`nPGk+6%44UY_y({zoY1WjGGg z3ud*pdUmW>Ir~C>M2}Ay-gkm%U8VW1`tG^sE<8pfUXx~emt6Ax#mbTQm)nZ;v;;l;#~#_+cPj(ue=mns z30;1!olJ~;pjZYVN()~;6Q)RpyF3|T;_&#mj04!qR{p0DrMLmLx_bkT?Q;I}`dw)KNB zDqravQ=j#5EebeGNXOf23SV@uF&-V?CP64J9&?{9I_@%TclN=o=DQ>+Ajs|v4bYVZ zKSU_;rbfGOK>HXA;E$-tSQ0jmtJaf|rXek;?LGuHGdRwIN%p9aa zp~&yWsAY8*8EyKt*DpG9^&0xSHTZ{!gBPt~LJpSokBx7Te1gC&GQcyR_nil%`Stx% zdH?dmg+Y`-?L>D-pyC@{_7)rpS3xroqglho#PgGKA<87uV%P)t>>S9D#wB}oV9vvc z$j-T$ZU6#9JSTOcX809P3DOa1@V2EAqN7SMAqx!ha~rtfI`HNb`8SS2R#AY-KEv~< zXhZ+XxfD=|NU+b+8j99H|G=Wd*U3#Ya-`;q-DoBiHyD$_9p1Y=IE4x>kf+;gwtVa6 z>5NX^q;ldEKarW~WHEWc^UIfVX)upoG-BA=*ys7}}ZzKD%7jFgn;FrB4-sxZy`7xraBu@E22^DHvwI{C>K zSN?4PqcOte0g#@8q3{n*6cMAmO6ttP|4@uVXdrxV@(Nyp@~dXw@suG?$Xn~6FgV3# z%xGI9H9)X|dZ~|BkobL3`4@S7mI{4sVG=Mi&Q&PI$;;*D?>6)2p^KLE(QzvD@YVpq zyE2<1px&PQ7`1Aj%=bhw%Vn-ze|e&+S~*}FBT=+UH*}C7FHApBW~ZirU~R|j*JZJa zRG7I)>&}wkKRuwqfbTO|Z==5P@({=KP{%8zW-G8P9iV?#L4wI^l4_ZbKu7m2=dM@0 zS--a5%@7teg~Nql7pqCF1*46sJ=jJ;6f=!tRQj#cai zUjI)c>se*sa!pISsQAk|i?j^^!?LQUr5b*@>%m}v0Mz-{9QdDk@~}g-sWYp$^|L&U z)Ur(~`uxdd%w1R`rZVP-@g-)E^T^xFR{qNv$ENQoX~!v z>SL>^%ha0eUze7M!T?I)|JA#+z`OT^##FQUZ7(l7xNi5{2 z06(|4)A!o=UMSFlGT}`Zd&~WDj0ZKjh&2s@>Ei#D5W3^*V9-4vG#Fu_cmo0tU+Nd| zda9Xt=7gmJYh^93u_)=p>xxJ3HNRbxgvvRNFW$?1mb?&x!1!}_yp&uED^*~iN+{Zq zWFEMsi+b&rmplUs%@N{1%LcLC$>YO16C;wiWzJ$YicPb)R&@4Nu<=9|1RW4Nnrqa8 z<$&i>t~!!hAEnF3!;rxe{HY9l^WM9T{y-CHdX+{#xP!WlYD1G7_H1ILRLU%lG{>vu zo1{$P)Zd$iz|~}X{7Cy*tGxgc)IH@<@%sH`)AYPsnkdwLnyZr3H&Dxf-oW@>q&aY! zUB=d86RqP(*?Lg@bTj_Xfsn-~m2o}|q_m((lu5E4gfWSCQc!ck8cg;bjM?l!C_pLY zAcBR7GDN1}S>Hs1ofZp-&kcJIc|4Yu0ntMLSgINDn~+8Dx>~V%d==WEibS5)WkIPi z+&>b*e+UFA|Fz~OBmTP!`o!rx`sL(<_9Zz1f1tqf!^M9|YZlT8F0&~T-tYid)Is5f zA?*G7dDA_{!#wXFr4W2;3c==}?nsu>4Sbhf((B8Q?nn4$3wJCuNb! zOo=e6o9ZzotMiIrHV+9Bxeu#&GO?>Pb}BjhEq~LrW3MgCaUD|jnR*#G7OB=Ww#=6r zDJVOrDfT{&dDr29$?n|}oc9xp)SRiQ`84xa6bO`pVKLy?MqJ5CzH&v8EUjIH+_g!5Gs>58n5~yK0@8UL{ak?;a-MF0lYE z>(b#MYSWG_f1O-1+S1(Slp2k^&_$UmeyNctP?wxtSzKX>bRfR^TmS^Uj)^2A)Uri-uG4lg*Rl0Gp)i6A%ULzTC3|MIltvYu>r8L7C?YF zD+~htzX*Hyk!nIa2+2Od35b8O^xDE^Vh4!bwXnus(s!Ey9d0(6f+$RGrvy~bxtO_h z7ZVs|G>*<0U@-=%I1B6-E1a8t@~d04ugpZIdwTt%%O6AwKOthFv%@_vpgHq?V=YW!M{XdnmEh`NmvJ1c%DJ4(bB-&jZpxW}-PZgN@!e1RtBYfn5ficvaL69>S$oA(I z62co)wktzWk-WgSc_jIba`*%JGlk%Qtg?hBrV_3q7qvHgS*f;cgT}g_hwy)txCNT% zsFN04yMl}s0`b)_!cl^)3xaUAIVEE)0&OKV@)F2sw~<8Zll7liI;e2uTEGtkpS$MB zX;xV%0yJbnz|oy4bX_C?;+xcP@$PbZ=d0mQWaL+~_qEM)xU)r<6yRJrBY3x%TfxcU zOP}J}tXPK^WEkt;+t7afwB~sqYnwB5N*3{Cq~6<3hyQjIJYcRa$-BHpU>C`IIv3## zBz@SKyvq?gpj9~?d}ePOVpVd@B1Sq_iQ2i~R7tHL;2xG-4Vc($fBMDb{=wFJz%dPf zqsIMe#=oy3$d;IKfZkD*>oQ6KV$T=4yKU#fH^t%@ACc z#9>SMyTM#%IXL)GCGO^fIS%E;6H?gQus32I#SPMw-~>5kx40L6}Sm=X=}ks`7Ho)<$=`%vQB#O z8VRHAS5)0zmR|UB;S_WvET;%Jmf_n`wyoL@10>Eo{ZA^)nCVLsi7@KkgCbQNEHCA^J@+QUy|yB$3R1IW;cWL(h% zxrCbnZUf1bbTz?>@3fN$Bk%iRq|)@Zw7~C~r_6lf=i%MA6{64EBW5B+x-(?{&$Hl0 zNDJ^yycO`pPf(>r3fI@chRh*zMCL6Xgb0sXRc>^}DsY_AVgL(2=a)3+QKOq%kUhXb zc73NkleAw&)s<2Drd?O34^31msJhLQK(em;QhKj=enPh{Yzaco;hyt54(I~?uHu#I z*X5`quu7;)B(rzU4fI_Q?4n$<4t~()$lG@U!(Tjhp)4-b1L=pPh`X#~FfYt*bo$ub zW3P9||8fEW6PfaVr@)=HVH#2WO$bTxF7nifqJUW4xvyMqY)r%dnSclUICAR+y55Av z=KrO^%-(DaqWIBtcP7+Pe5$i3dkwCGKnwh*@KnRJyDoz1$=q-(v$#n;!>F}O0+iI(T6-2d9xjs!@_+@ z3W&Xel`iIYT@jWrveSAV?>B^Op44=F zppGB>!+`Bi$n9v^)6Ku}d;QRLL+p?%w01XBo!6oMQi3*dymEKONs^T6Z3C8n`*LX7 zYbhJW2{9J7hd9DKPl#e77_`cvLeRfVt%KKRA#Y#(xl(2SU_~|pERK;JwopiS2SOnm zg((*{sP_1t#3gWzmpHQ7QDfcPP=Tr~;|~O14qb=B>V{xNF14cwK@1K4w@45*F{jMJ zH~ZV;L9{1#4trAKH^IcO&)PQ=&|=+TO<&CEfdU&UX?&WQ0#=UKE#!ZJO;swpjf&|r z4>rSA6l^r-NOBo$8DeM|OE}V<#mL;u2e^|pE=S?qJH)>CG3WOog3?6=h@uLP=6ciH z5fsONJ=jV~0tbo9$5hH_#Bv&kzPXqx_gszm@h=bJschBgm5U(a%TksgLY57zkvkO5 z7Ry_Qj6;YM>HwY<;Dz};=Ld4^Qx{u>BejaIYKReR@b zMX*wb$}00KTIuuH(wI&1x&Mk8%>M!ys0Fj~9I>aH%3$cDQg`KaZ&T-^&!&f<#d>R4 z-J{%{Eubd$utybyEG}eH6I7^thf)fDm=$Zxg7onm$o&XSFKgv?)=+02oE6)HOtJ|E z|DkWG=n^DMk{^x-Gb452jyACO$r>F*((Kfz)pJr2fTei2bb&nXzA@&BC83gWKE^1!!Tv|7dqfb8J(jy7-}V~GdW6#|l{jDM zst+H%v)-}uLGDkI94XA0GnTq?n{vF*H?8k0Rnva|ez_z=Ew@IQ*Q5`3j!D38JLHRE zlI>&t(Ko+V0T7am`GDG>26=c6F0mB*9>SRCz%Z(spdgmeJY%}$t&=w@Z;0<3TLW=4 z1dUX%icIdLa_>~uqZkY!Tn#F{McV&7q*lRUX{$6}^C9ZhAJBPP5z?!jwos&j#jkR; zMxLxC!XyMrY!7@jvT~-eJn7Rw>+_jgoQGLldM48f2)E^is0w(ZO(+|`fYb1S7kpQZ zVw3Gs*}#xaJ|j~r&FH;T?>NeOlRWsc_9nOk!>dP{3)!@zpD8Ba>FQ$6Ne*4;)rv~U z5?{PAFzB~2H`d(FE%yw5}g|T{WZm3Chpe0>|Jx771drp4U-FXfbdnVjN%v z8q#KEr&8LITF_e)inQe>Ms66Yt`q-53U0(-W)TCP78pZct zR@{H=Fg(+yiT5rmM2C7tgUxTOn@XR^3JNmuoc&_Akjja-!nDn8QQy`~+_Q&FP|!nI z_o!$EOVDjCtLWLrg4cJgwz!FWM=y-0x^$Tx*}#P$Jb_o(!mOgYy>lnE z@OP}7=N{;@4QI6%tZUzSo^<;WkV%10oR9+y|4=l3u9`ww8%(HSGb?}tHnJA;Q1-w! z8vkW!WQt!-%liNyD%RWeHVO?#dmjpZV7z*>qlm|c{Th7B57G zpP>rOe;d*KCH;3_V)*w?52Vu9>2M*=z#gNvv5of03qnVtQNMQEhyzX;nh1+&`pB93 z4hLsN_M7O+)01k!a!6qNY*u$Cvu>?tQN~!#wtn+~Tq41R_l(>E9;XXSR@5;ORkS&K zlQhQ&*SYfo-zk3nJ-pV z6bwz*#OExioj!+7@9KXyw%P|c0q-WhRsD&0x_tT5g^qMYI$g1uqV(mcCXIbyF9@mD?*i*TWa&6-o(xVr86!b)AC>-~@ z2+SV%r^oFcb@@#zvjUS3I=>~#efO0(8s~hK7s#FZV#0NQsyxaIm~kcIyu|@n?17hy z96x@Rf3jYdwBC2*>5V#nHD~##poM)0A_r6tzu+8Y#FJ!x)qiy-hGNkr=bRIB11dJ{ z*Z$mQQmdL8O&*Y9Ju%Oz8%Z12Xu8Z4D)+yyth`WuwP#s19pCi5zYJIgxy)Nhh-_;7 zXjdlB1P&^{yuLHZu2y4kE3Be#rR~TqzOdI-%C*7etu%D0Lygz^nK|zo_gCC45iOWI zld4M}G$%S0-3E4EgQz51xzSGRGnh-l1s(^V^lmt?&MGa;z^(ye`H^y|OQ+_g%{d@t zwIM^Q+Whmjr`fj5_4{Z^=+}0&rMZ(YEpsCxkF2bmPd6Hw-q3MF()P=atb>VNQ$=W* zT}!vhmm9Z|R!FH0+U?(=&*=P>bHV~)g$7y1JjwTKT&5CT_w}1konfHC=x4NLQGV~v z5Na_dAu$?vf6w5tom9px-lCc7|0xjH6)+L14XOFu3C={x<~@S%vP&u5mg za!G%xi9mLTq|*H(v|qbK>9a+(uS==Jck@L?*y)9SE5WzNsUk5-xCmhUt7 z?1lDp`udd3f`Mp!>OqbRy5nTS-o^f$sjp17O-i@g>9tpF& zT!@s)My@ft$G9T%-u;7Ie4 zD1%v9s|OqQ6)+ITukFmz#<}X%x4UEd*4;s_Ldu>8|LtBjPX`!>ZXGbnzD;v`>^-D? z9)0|BZYixamXmWSF?$I^xc;~E;$zPi9XiisOF-+yS@or&LePQNy!A=Z8hkCnsX;p6 zOUmQz<`_fR&udU?+P8uHHlj2Z{_uf{kBkmpF{rtQzg4n1dJRlh9FCaOL{s7G*!GtD z!v?|quS(d*(YkCH${)XFYvaoh{+^Qdlh|<+RZ85^`}}zA0etzO+cBx9%NYJgn*2{} zBN8qpq4D=UZL%%8=Iwtpv!-QPotUGh84dg{A+BnCIlkhM5GVfft!g;0s0>7Z=1gy7 z--xnj+YI<1CkeaSJdv_nD!7O#mYav!ti!JE_JtZ}r$jps2pp`7-z#0Z9gR$9*W$A)W$Vi0F>F0y+g!A5N5F)Ma|(5hZx z!Qz%a|Cfmp6M&7sA=~AJ7~Bu0`tR1_SGgJHTeuk6`Yn{yhO@IHIz+%pcwyu!i4nuW>3TNcE5E? zoUOJpeQsj{Ti?*gL+@gkvi8;uW_ze*9xqI#m9%tK)Bn`3zqsJ_i&U#}x9wT=rQzP& zW>k7@*wC(0ZMmmN;o^IRum^!_lMxsy%CBXZ^jX%h$MXe*M#o+^7$pISFB^?A>zs=l?yw!(J2Ga5A>LpcaPvF{fou3zfo$$Dp7d~aD zd-2`WF2y=-f)`SlE|^(SuPAn=us0jb ztW{1`f3y<3?Mr@sGLe;*_jtXs(Ycbj@55B<+(fM~ADnFHF${9ZR%cJsgd?{vs%xAaG+BlBEy#usja7IIE{4t203X|w}x*5Pc-|NHrZeC-Pv7?^(1)^C!z zM6_ME09h5pXC1Qc#-_+mbXk{2@^#{D!i{m^! zLDS1@GUMyj+mPtS7H!(7emR+_jC{1b%S4-wphiq#%f%YIrF?OW;{ApkzJ4VlE7V}H zwdkv_B^!5xp}XTwnC&Z&jjt_4zP>@*F6kR@(QlPu5m~{LlZM>13Q$~5JDYF14Sz~N5cOH^n zIuY@!e9S^&_rZy0+a&6~nPboD@MXOVpixr|B&eQul$l57f3Bk4cp2Lm`7B?P@8m6< zP+_m;8}f$YC@m2bpmJQM-@om@4UbdiN`7olq+zILxO?`M3LtVH?vr8Wj=2g-{W@p{ zdmP9gT8y-(Oq}s>wGcTxql3?XJ&(2jp^2qL#`FDlBKB8uc^kl*{fg(Img=XeAl!TWeCQ%&Y^Q4$ zvJ+Wf+?Q2Rt&I7XhtPcTPNVuMMW|7)cEQh9QX!-WuTFeI^DIh=cP2J$Rl=n?J}=r* zsA^*k_0a1Q)6U?AaKZ)yu%q>#sb#B?nGxyqGl`0PGraa5u6_T+14~AVJK=+mJ)m3} z8uJ?q?MH-RgWHi^9r+-q7-`;hT;`N1?s^(_NvhS~k#xsDoOBa?S=p-n4Btfw&wL$gDmHS*YAeG zBacu4^4o{s&kmS*FtJ@5AJ8a2L$s2)U*}S>K~3D`#Y@6g65s4Xb&j z>&h9KzN}7uB)39p_b24m4a#0Nai5Lgw@))JNNw%09uC9} zH39if!@L>?bgl~!qa@>Jop16FV6hg(r3&BD7ya;rl(RYV3biwj)#n_ebqjh7lcigE zmGyaZGtfV-{DjR-Cyv(Q2Sh>hOAn))C7S7j>VN;{NR7Je8+h2Yl#v>qaof!N!|sZ` z(Vwr4kX+>=2W#wns9+}UA71*grBPZs0{2;W$a7X(qs%z8`a2`8Xc&e53Mh7wiDdYr zT(jJbt_3>^ryEClqz(-kFns{q5vGZ64|-^qYlxqTRs)+U-ravEouk$;SZv|dRK;R; zLG|KckyoGk=dxFB#Byf#pZdGDkW_l>@$RhV6~1Ejw4iZ6-HH+TL6&X5gQqhh*P&Fr zSmlhOVA;cn)){t!`$8?`63ZV=w1%E9PFXQg5ZJu>?5E8}<<^LqZHr>Icl`BP%Lh)Z z9W#L~t*O3n2;NJ!ZL4((u}FC8J#89=D!C~`GWKxME*LWn-wcUW>L2DK4M*D-dILII z{JoP@83Q`MJB)5%ySw$6x?By<6Ba^pfkK!ql z*b^~3OyPeVOy`9zJ;jp5O}FsFTt0R}s<6&b2h+Hy2-y;s*I=j(aCiq>M+X$=9!-dO z0ZNvjfLX&S$A1z#uWXj36@R0_NX1!%;kAEo$(r>=dln|R8lda!5jFCM$nRB{d1%Fv z>iN`;Ggd5r17wfs)r2&aD3PwIY;a^``F6P;yN`81)k*V{tyPm;pJXtXc6IH)3Sdpw zf6aqre3hlrO2&Z)uQi}c(ugjcQ2zl6FkW#T$!%w(%oxZ0y?j9*iKF?`;LthF<12&= zv75at`Sh0bg^#$Zlc$2Hv$(Ru*C?3sT0M@-rg&UJ2YWkAZHTKkfJ6y!m)TA^z z@05CiyKFV$?%tRVTQ!_b7kK6Bx!!w%3itdhLAlFcC9w(%rSA1zGkG35c0X(fkC*8y zwK54998q&FAD^yuvT0Rhe=}qA{C0_~Swnb1+x^D}djwM@vkcB5Q zHiffY+4VSvQ8*<-6dW#b`VIORz$(*#va)%r=RkML-|e+Y$E9vet{!iPKeBXlL&gnz z4B2`(DXZGiS@?Oex4{}d3x38He9fT>*^U>?QriU5GzG@$UTwk5W76gN--=rw|9&V7 z=+~7mI9!Mb+tw_W-m1X9Db}sD_g(fz{po^lazUMu%4V|s%&_SGy$-kE?-+Fywbfs- z^N(3go$#@iT7E6?FZkfc1s$*kA^NyrEGql@vFz3 zTbi1QXKJAwE30*~Z94ot&*mb+*v+$tVwOGiUwJ8N-gtZntLeccuZH)LHz%txB8rGmB?vxa&61cq+x{93nBLA)S+;#3xqiAxRXFywhy1-= zMFq3|yitKre5O?Isf{ttZ?$%`Ay1F3`jeda^#d%XZ%J{cwbZ3LbVdsf5fC%vY1 z_nW2{oQ2%=pUedr&CXo=JLt!lnd7vHBI1m)KIo5@FecvniHllm#k?0$zQ8uD{3(+asw~{rMKCY(vg7@iNI_x8>Ar>hAX& zZ9ZR`f8K@3(LR-qbe*E->wcn+%BkQt_6ZMk4D|YR*vcj>mgM-ZMq385sw|Nz@Qy&T z*AdCw9QLxKE718dT(3nL*iFH+y`h*?W<22;+=d$#u)4%wiq)7Khz~I zxWsy&XVPA;8IxHoG5*AAX}$@yvNVF|q<=mn8DFj_>>X?G3}mXG7*t07xc;6wNvFMH z>|}P<*e!cP&4y@*MJR)hKAk+C9E*qjYce|m-DI%_QXQr1Nw-k|klQ$ieq{aNb-(W8 z3MaIGEkhRFP~eZ<%Wm02M;4i3Uh-J{wG0*~u9%6u=D9>km)R&o!2Wq33+M*^qi-g@ zPVT&t0;WZYJ1K4Gus8WnQ`@oU65B+&>`T}d1^m|?YtCTx?di3G9(|)Aa30M+$vc-hSyaGjm$DhfT2dVT(#1 z@1DkXo+D2QSEYvU^E5P4WpAJadLWs zoRCm)7K;@vdl4?D(h|{cE+^3^Ez-}vHqPW7iYi-1@r1R!rHF}_CRYh67Ab!9*ChtM ziH9m4OdA%ywpjm-@5ya$8h5ktEAFDp@uIDm57@Fl(s#d-$z5}G-;?tvwyriKK3LKN zW@4yV&wubi&vdPST>eDViwwp<7Dv+GAH9gEg||1u>u%Suu@3F#Fx3Z$U5w-O-ll!F zgri_N=x>nG-R!zKR#E$8%T#NbSd~2wX%JLHp{+>xVynrFW*Q~y_T>G^6vQ9}*H{s$ znsO15DyN@Yg)2Oi2U$H|wits6ehKZk+`go85>a)Qv zzuRTxHQvs|{}^x7b6@csyxmOi zD8q}LN+(PI+%F`Xgz~6REql-27oMdu4(nI0dsR8zjvx&IXBnKwFFWapM{VJ@q@6PV zDZ@6>LdGVichn&wmh-Q!Skza7 ze|!0EKKVy2JD0IBcix4T+u1Vw5+8k>jtoLVz9|uN(eYrZXk8}aErsB<&g;Wghe>C9 z^xUoE1rNQnK<*xLwO6!?ks0g&6Un7a{uMMhFbNu%9MzPd&NYzw{zKORb|5S6kMuyk z3`tti%Me{3_XwWk2fDyoPm1q~AJY67W5g2P``;%`@EyIt#LuiPbB-Hjvil}~x8^8t z6hh8J+{=4TH`lkbQh)g|tp3r^-9Hz1$f9PJr7-B4#4NXP&tIUPE0+1uw_3p|yF%fU zh#Vq)9a~KW=P}Y$&|(Fo|IVG&U@QEKvd{i*sNHg5xt0^zeg>pnzM6T9Hdsk_t9keH zY_Nk3$@8%rvFBSB-9Zz6qGnlp(eeuT&?dV&EeIvHS*hbppGRuhe9CB|*GJ^2HY($v zhkh(KM;1tp{{GGs6fedOAo+jYO{jPVe~Bz{9Ti?#69k6J;)uoF70qN54=v}FNZA`- z|5TV=vOz|))d-^$J8Y#bTWg9ZEAS07}&AK&vOlC)&7tZ5E>aacXoT1+)^dd#14_B+z zVXoBMdS5obL{m?!!W5n{C}Taa!P_pLkh zwzOT6-}YtyOIC>J*DBTS7xF6fiy1@TH`2!(aL4c?Cu|6SGFi`;xFnK36$LDMNdQst zG4JfXvz!$C*M*wk=hxW;*z3S$3SRjs&^`Au19Fl>yY--)HFFn6cXiDoLLF%7)y>FE z)3!YG_-iKA(EH=oEVs zZ4c@z15G?8a+?Al<&T)Wi8^2lO*gik<91hCLlUFuUNDF}%LZw3q26Dy6u(SUQ$I&Ss|l0-%ef zNhWA-!eCTNfUO@DZ0>rvHvtQ`MdleGRQMqw3(wASRxZUpOD{D0De?S}Gv0#NXhXy; zR7{p~t>^5*-_NlEt0mGx$I?}tS#CnfQ;{+*xQsd?+)6F#kGhE+0=ETz3Bef$x)Jyi}udGUG= z0pb-u3iygZf9zX77GM%`(?_D>eLrhLtf}9VJ!5#7GB3%iSt)x*;vaGC;w8zOYKy?r zElhdfl7;b^(Zic%iD4&%u>qdRc>p1b)xr$%WK0IR6}TdUrn6j^u!NRRU`6hyGVZ$= zfR%)O))4qSbi)Ob?Po<{QfEeQl-M>JGgzl)9AQG&4?Vsbtmx;GYQAAj`#tcvs9=GL zWYdJj3ngj>{Bm}-n#_~HcL3jcl(G_|V!!tTM_|>9zbHMKj-8ab`Xkg@Gf#-{DX@=1 zq#6^zUxBaQ{_cU}!V~xlbw-jU^X1NiLO9coJP@l=J*!-ccFz^w-$hr0?3APAy=K=5 zj+>G{urxQNkdE+$N!Y;PJc9Y~!IS>O(MIa1u_8MbCdO+tVUenjJbTIoglj)MBuuRT zo@`e059kof@PW9_`LRd<{L@J?pSaCenh%}}^3^gDZC``1a266z0|AK;8fe^*ZF~8- zMHx=7w~l^>76x2mXo2TFxii^nj^Q=x?k=L91b%6{bYP5jZ`o5DVNab*)w~ zI-NSfL~y6t6_EJ|vcIDQX-VO*{I#mpw?lPUMKE9)WqY*%T!gw*2+ZWwz$p{_R}R-CdZ#t08f>Bgc|Z$_}Z0% z%PxL)U_a+!fR6!PHRs^WPHWDFK&o&d4eupIAWc2+Ib^ctz5HS`6NI~4$%n>q?m3jg zhG9B^ah}6jGIurb$Gvu|l}9i=poi4qMolp<_tF{;fgTbEeY>EHf?i1LIi9J8?C!LY;7oeQZ3q05utw1vu|r4m zpE?b%VA1QKCHPUVy)x>aOOk0je!P7uY18(8-uACg8=m>i#$_2A8=3=lmRur%*U*|m zK})w-Twr`;>}h?(Rb?!ELqA|Yr3)fhgNYq6lor+Xs1bg(Q}O`LdNCKDb5lEnJaYUg zeK+`%Jh6UA<;46Xliu&gcCeh;mRFH@$iI$?dGrhhq^E*#_s3=Jg`3rQ5d9qWM{Gqy zJ6#S)`?{^1MR4CAAN%OUivD6~m~76~QbzEmDGJuzd0eo?>NqW6@VR>m6zg702CyE2{AmR-M!~S0;TvNrC6+N-dnD7(30OH%crY(Q3Sp! zpn=tbO(qqwk%Wf(68@_t{80oXOI}1h2~D(19`;7w{S{a*T^V$``ma-xQKA6^VjCyr z=}?ZZLHU%7w|7KUO;15gxWLtJ5p-z7 zG=&vXGmF@-A5_iK0LWdiw3Ijb>9KIn83z7nA}*voYI@@|CHww(r#3$Pd1CXp1ZPfr z>+O=yGmu#Yx7UiFX~~K@e^bg5_wCH9uAc$@q(klNYldfF(?N9C41I`F=EAr-G7(BY xE=G0#Uqk<|R{uY|f%p>*-yA|0{QqU^aMnd>>zs8vR)hHPTH@<*+l`a_e*pPSGeZCX literal 0 HcmV?d00001 diff --git a/examples/models/resources/models/Duck/Duck_license.txt b/examples/models/resources/models/Duck/Duck_license.txt new file mode 100644 index 000000000..d1b4f3c34 --- /dev/null +++ b/examples/models/resources/models/Duck/Duck_license.txt @@ -0,0 +1,14 @@ +# Duck +## Screenshot + +![screenshot](screenshot/screenshot.png) + +## License Information + +Copyright 2006 Sony Computer Entertainment Inc. + +Licensed under the SCEA Shared Source License, Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at: + +http://research.scea.com/scea_shared_source_license.html + +Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. \ No newline at end of file From a2fd427224e7e3251c302597d299efd0e47ae6ca Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 12 Sep 2019 16:26:37 +0200 Subject: [PATCH 066/123] Comment tweak --- src/models.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/models.c b/src/models.c index b3a50f403..3a9d3da56 100644 --- a/src/models.c +++ b/src/models.c @@ -3554,7 +3554,7 @@ static Model LoadGLTF(const char *fileName) } else { - // TODO: support normalized unsigned byte/unsigned short texture coordinates + // TODO: Support normalized unsigned byte/unsigned short texture coordinates TraceLog(LOG_WARNING, "[%s] Texture coordinates must be float", fileName); } } @@ -3572,7 +3572,7 @@ static Model LoadGLTF(const char *fileName) } else { - // TODO: support unsigned byte/unsigned int + // TODO: Support unsigned byte/unsigned int TraceLog(LOG_WARNING, "[%s] Indices must be unsigned short", fileName); } } From c6d2502bdbdcdbbcbf89795e4574dcff26ad9949 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 12 Sep 2019 16:27:58 +0200 Subject: [PATCH 067/123] Review example crashing Note this example is not working properly, it still requires some review. --- examples/models/models_material_pbr.c | 20 +++++++++----------- examples/models/rlights.h | 20 +++++++++----------- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/examples/models/models_material_pbr.c b/examples/models/models_material_pbr.c index 0f896f21c..8702f79a5 100644 --- a/examples/models/models_material_pbr.c +++ b/examples/models/models_material_pbr.c @@ -52,14 +52,12 @@ int main(void) model.materials[0] = LoadMaterialPBR((Color){ 255, 255, 255, 255 }, 1.0f, 1.0f); - // Define lights attributes - // NOTE: Shader is passed to every light on creation to define shader bindings internally - Light lights[MAX_LIGHTS] = { - CreateLight(LIGHT_POINT, (Vector3){ LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 0, 255 }, model.materials[0].shader), - CreateLight(LIGHT_POINT, (Vector3){ 0.0f, LIGHT_HEIGHT, LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 255, 0, 255 }, model.materials[0].shader), - CreateLight(LIGHT_POINT, (Vector3){ -LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 0, 255, 255 }, model.materials[0].shader), - CreateLight(LIGHT_DIRECTIONAL, (Vector3){ 0.0f, LIGHT_HEIGHT*2.0f, -LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 255, 255 }, model.materials[0].shader) - }; + // Create lights + // NOTE: Lights are added to an internal lights pool automatically + CreateLight(LIGHT_POINT, (Vector3){ LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 0, 255 }, model.materials[0].shader); + CreateLight(LIGHT_POINT, (Vector3){ 0.0f, LIGHT_HEIGHT, LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 255, 0, 255 }, model.materials[0].shader); + CreateLight(LIGHT_POINT, (Vector3){ -LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 0, 255, 255 }, model.materials[0].shader); + CreateLight(LIGHT_DIRECTIONAL, (Vector3){ 0.0f, LIGHT_HEIGHT*2.0f, -LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 255, 255 }, model.materials[0].shader); SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode @@ -113,8 +111,8 @@ int main(void) // NOTE: PBR shader is loaded inside this function static Material LoadMaterialPBR(Color albedo, float metalness, float roughness) { - Material mat = { 0 }; // NOTE: All maps textures are set to { 0 } - + Material mat = LoadMaterialDefault(); // Initialize material to default + #if defined(PLATFORM_DESKTOP) mat.shader = LoadShader("resources/shaders/glsl330/pbr.vs", "resources/shaders/glsl330/pbr.fs"); #else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB @@ -136,7 +134,7 @@ static Material LoadMaterialPBR(Color albedo, float metalness, float roughness) // Set view matrix location mat.shader.locs[LOC_MATRIX_MODEL] = GetShaderLocation(mat.shader, "matModel"); - mat.shader.locs[LOC_MATRIX_VIEW] = GetShaderLocation(mat.shader, "view"); + //mat.shader.locs[LOC_MATRIX_VIEW] = GetShaderLocation(mat.shader, "view"); mat.shader.locs[LOC_VECTOR_VIEW] = GetShaderLocation(mat.shader, "viewPos"); // Set PBR standard maps diff --git a/examples/models/rlights.h b/examples/models/rlights.h index 19504473a..6593ab4a5 100644 --- a/examples/models/rlights.h +++ b/examples/models/rlights.h @@ -33,6 +33,8 @@ #ifndef RLIGHTS_H #define RLIGHTS_H +#include "raylib.h" + //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- @@ -65,16 +67,11 @@ typedef struct { extern "C" { // Prevents name mangling of functions #endif -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- -int lightsCount = 0; // Current amount of created lights - //---------------------------------------------------------------------------------- // Module Functions Declaration //---------------------------------------------------------------------------------- -Light CreateLight(int type, Vector3 pos, Vector3 targ, Color color, Shader shader); // Defines a light and get locations from PBR shader -void UpdateLightValues(Shader shader, Light light); // Send to PBR shader light values +void CreateLight(int type, Vector3 pos, Vector3 targ, Color color, Shader shader); // Defines a light and get locations from PBR shader +void UpdateLightValues(Shader shader, Light light); // Send to PBR shader light values #ifdef __cplusplus } @@ -106,7 +103,8 @@ void UpdateLightValues(Shader shader, Light light); //---------------------------------------------------------------------------------- // Global Variables Definition //---------------------------------------------------------------------------------- -// ... +static Light lights[MAX_LIGHTS] = { 0 }; +static int lightsCount = 0; // Current amount of created lights //---------------------------------------------------------------------------------- // Module specific Functions Declaration @@ -118,7 +116,7 @@ void UpdateLightValues(Shader shader, Light light); //---------------------------------------------------------------------------------- // Defines a light and get locations from PBR shader -Light CreateLight(int type, Vector3 pos, Vector3 targ, Color color, Shader shader) +void CreateLight(int type, Vector3 pos, Vector3 targ, Color color, Shader shader) { Light light = { 0 }; @@ -148,10 +146,10 @@ Light CreateLight(int type, Vector3 pos, Vector3 targ, Color color, Shader shade light.colorLoc = GetShaderLocation(shader, colorName); UpdateLightValues(shader, light); + + lights[lightsCount] = light; lightsCount++; } - - return light; } // Send to PBR shader light values From 7e08b312d5b8762fdd17d5d254cb592e97dbd332 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 12 Sep 2019 16:28:58 +0200 Subject: [PATCH 068/123] RENAMED: text_bmfont_ttf > text_font_loading --- ...{text_bmfont_ttf.c => text_font_loading.c} | 19 +++++++++++++----- ...t_bmfont_ttf.png => text_font_loading.png} | Bin 2 files changed, 14 insertions(+), 5 deletions(-) rename examples/text/{text_bmfont_ttf.c => text_font_loading.c} (80%) rename examples/text/{text_bmfont_ttf.png => text_font_loading.png} (100%) diff --git a/examples/text/text_bmfont_ttf.c b/examples/text/text_font_loading.c similarity index 80% rename from examples/text/text_bmfont_ttf.c rename to examples/text/text_font_loading.c index 0fc82e97c..7eaaed8fe 100644 --- a/examples/text/text_bmfont_ttf.c +++ b/examples/text/text_font_loading.c @@ -1,11 +1,20 @@ /******************************************************************************************* * -* raylib [text] example - BMFont and TTF Fonts loading +* raylib [text] example - Font loading * -* This example has been created using raylib 1.4 (www.raylib.com) +* raylib can load fonts from multiple file formats: +* +* - TTF/OTF > Sprite font atlas is generated on loading, user can configure +* some of the generation parameters (size, characters to include) +* - BMFonts > Angel code font fileformat, sprite font image must be provided +* together with the .fnt file, font generation cna not be configured +* - XNA Spritefont > Sprite font image, following XNA Spritefont conventions, +* Characters in image must follow some spacing and order rules +* +* This example has been created using raylib 2.6 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * -* Copyright (c) 2016 Ramon Santamaria (@raysan5) +* Copyright (c) 2016-2019 Ramon Santamaria (@raysan5) * ********************************************************************************************/ @@ -18,7 +27,7 @@ int main(void) const int screenWidth = 800; const int screenHeight = 450; - InitWindow(screenWidth, screenHeight, "raylib [text] example - bmfont and ttf sprite fonts loading"); + InitWindow(screenWidth, screenHeight, "raylib [text] example - font loading"); // Define characters to draw // NOTE: raylib supports UTF-8 encoding, following list is actually codified as UTF8 internally @@ -75,7 +84,7 @@ int main(void) UnloadFont(fontBm); // AngelCode Font unloading UnloadFont(fontTtf); // TTF Font unloading - CloseWindow(); // Close window and OpenGL context + CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- return 0; diff --git a/examples/text/text_bmfont_ttf.png b/examples/text/text_font_loading.png similarity index 100% rename from examples/text/text_bmfont_ttf.png rename to examples/text/text_font_loading.png From 8d6f179062a009d41d60ca5ab4ddd9af961efeec Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 12 Sep 2019 16:29:26 +0200 Subject: [PATCH 069/123] RENAMED: text_ttf_loading > text_font_filters --- .../{text_ttf_loading.c => text_font_filters.c} | 13 +++++++++---- examples/text/text_font_filters.png | Bin 0 -> 60197 bytes examples/text/text_ttf_loading.png | Bin 54908 -> 0 bytes 3 files changed, 9 insertions(+), 4 deletions(-) rename examples/text/{text_ttf_loading.c => text_font_filters.c} (91%) create mode 100644 examples/text/text_font_filters.png delete mode 100644 examples/text/text_ttf_loading.png diff --git a/examples/text/text_ttf_loading.c b/examples/text/text_font_filters.c similarity index 91% rename from examples/text/text_ttf_loading.c rename to examples/text/text_font_filters.c index b256bd1d3..60b16a045 100644 --- a/examples/text/text_ttf_loading.c +++ b/examples/text/text_font_filters.c @@ -1,6 +1,10 @@ /******************************************************************************************* * -* raylib [text] example - TTF loading and usage +* raylib [text] example - Font filters +* +* After font loading, font texture atlas filter could be configured for a softer +* display of the font when scaling it to different sizes, that way, it's not required +* to generate multiple fonts at multiple sizes (as long as the scaling is not very different) * * This example has been created using raylib 1.3.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) @@ -18,9 +22,9 @@ int main(void) const int screenWidth = 800; const int screenHeight = 450; - InitWindow(screenWidth, screenHeight, "raylib [text] example - ttf loading"); + InitWindow(screenWidth, screenHeight, "raylib [text] example - font filters"); - const char msg[50] = "TTF Font"; + const char msg[50] = "Loaded Font"; // NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required) @@ -78,7 +82,8 @@ int main(void) int count = 0; char **droppedFiles = GetDroppedFiles(&count); - if (count == 1) // Only support one ttf file dropped + // NOTE: We only support first ttf file dropped + if (IsFileExtension(droppedFiles[0], ".ttf")) { UnloadFont(font); font = LoadFontEx(droppedFiles[0], fontSize, 0, 0); diff --git a/examples/text/text_font_filters.png b/examples/text/text_font_filters.png new file mode 100644 index 0000000000000000000000000000000000000000..7ad823fbd627eecbc6b88a39527e894261c3a09d GIT binary patch literal 60197 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 z