From 252748f8f91291f7ce0b7013775cf2839462abec Mon Sep 17 00:00:00 2001 From: chmjkb Date: Fri, 16 Jan 2026 14:20:37 +0100 Subject: [PATCH 01/29] wip --- .../common/rnexecutorch/tests/CMakeLists.txt | 6 ++++-- .../common/rnexecutorch/tests/run_tests.sh | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100755 packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt index 82d41e3a8..22c8c8b31 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt +++ b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt @@ -5,6 +5,8 @@ project(RNExecutorchTests) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) +find_library(log-lib log) + # googletest subdirectory # Using an absolute path from the top-level source directory add_subdirectory(${CMAKE_SOURCE_DIR}/../../../../../third-party/googletest ${PROJECT_BINARY_DIR}/googletest) @@ -14,7 +16,7 @@ include_directories(${CMAKE_SOURCE_DIR}/../data_processing) include_directories(${CMAKE_SOURCE_DIR}/..) # Source files -set(SOURCE_FILES ${CMAKE_SOURCE_DIR}/../data_processing/Numerical.cpp +set(SOURCE_FILES ${CMAKE_SOURCE_DIR}/../data_processing/Numerical.cpp ${CMAKE_SOURCE_DIR}/../data_processing/FileUtils.h) # Executables for the tests @@ -25,7 +27,7 @@ add_executable(LogTests LogTest.cpp) # Libraries linking target_link_libraries(NumericalTests gtest gtest_main) target_link_libraries(FileUtilsTests gtest gtest_main) -target_link_libraries(LogTests gtest gtest_main) +target_link_libraries(LogTests gtest gtest_main ${log-lib}) # Testing functionalities enable_testing() diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh new file mode 100755 index 000000000..467d6ecc2 --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh @@ -0,0 +1,16 @@ +#!/bin/bash +set -e + +# cleanup past artifacts +rm -rf build +mkdir build +cd build + +# compile & run tests +cmake .. +make -j$(nproc) +ctest --output-on-failure + +# cleanup build/ +cd .. +rm -rf build From 3bc9affcb6b143e16d48b3c0b3516343270fbf1c Mon Sep 17 00:00:00 2001 From: chmjkb Date: Mon, 19 Jan 2026 14:20:25 +0100 Subject: [PATCH 02/29] feat: basic on-device gtest run --- .../models/style_transfer/StyleTransfer.cpp | 1 - .../common/rnexecutorch/tests/CMakeLists.txt | 35 ++++++++++---- .../common/rnexecutorch/tests/run_tests.sh | 47 +++++++++++++++++-- 3 files changed, 69 insertions(+), 14 deletions(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/models/style_transfer/StyleTransfer.cpp b/packages/react-native-executorch/common/rnexecutorch/models/style_transfer/StyleTransfer.cpp index 9030807a3..3b9c0187b 100644 --- a/packages/react-native-executorch/common/rnexecutorch/models/style_transfer/StyleTransfer.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/models/style_transfer/StyleTransfer.cpp @@ -10,7 +10,6 @@ namespace rnexecutorch::models::style_transfer { using namespace facebook; using executorch::extension::TensorPtr; -using executorch::runtime::Error; StyleTransfer::StyleTransfer(const std::string &modelSource, std::shared_ptr callInvoker) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt index 22c8c8b31..f4fce3657 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt +++ b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt @@ -1,23 +1,35 @@ -cmake_minimum_required(VERSION 3.10) +cmake_minimum_required(VERSION 3.13) project(RNExecutorchTests) # C++ standard set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) -find_library(log-lib log) +# tests/ <- CMAKE_SOURCE_DIR (this file's location) +# rnexecutorch/ <- RNEXECUTORCH_DIR (parent of tests) +# common/ <- COMMON_DIR +# react-native-executorch/ <- PACKAGE_ROOT +# / <- MONOREPO_ROOT +# /third-party/ <- THIRD_PARTY_DIR -# googletest subdirectory -# Using an absolute path from the top-level source directory -add_subdirectory(${CMAKE_SOURCE_DIR}/../../../../../third-party/googletest ${PROJECT_BINARY_DIR}/googletest) +set(RNEXECUTORCH_DIR "${CMAKE_SOURCE_DIR}/..") +set(COMMON_DIR "${RNEXECUTORCH_DIR}/..") +set(PACKAGE_ROOT "${COMMON_DIR}/..") +set(MONOREPO_ROOT "${PACKAGE_ROOT}/../..") +set(THIRD_PARTY_DIR "${MONOREPO_ROOT}/third-party") -# Directories to include -include_directories(${CMAKE_SOURCE_DIR}/../data_processing) -include_directories(${CMAKE_SOURCE_DIR}/..) +# GoogleTest +add_subdirectory(${THIRD_PARTY_DIR}/googletest ${PROJECT_BINARY_DIR}/googletest) # Source files set(SOURCE_FILES ${CMAKE_SOURCE_DIR}/../data_processing/Numerical.cpp ${CMAKE_SOURCE_DIR}/../data_processing/FileUtils.h) +# Include directories +include_directories(${RNEXECUTORCH_DIR}/data_processing) +include_directories(${RNEXECUTORCH_DIR}) +include_directories(${COMMON_DIR}) +include_directories(${PACKAGE_ROOT}/third-party/include) + # Executables for the tests add_executable(NumericalTests NumericalTest.cpp ${SOURCE_FILES}) @@ -29,6 +41,13 @@ target_link_libraries(NumericalTests gtest gtest_main) target_link_libraries(FileUtilsTests gtest gtest_main) target_link_libraries(LogTests gtest gtest_main ${log-lib}) + +if(ANDROID) + target_link_libraries(LogTests log) + # Add support for 16kB page size so we can run it on a simulator + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,max-page-size=16384") +endif() + # Testing functionalities enable_testing() add_test(NAME NumericalTests COMMAND NumericalTests) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh index 467d6ecc2..e3bfd0506 100755 --- a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh +++ b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh @@ -1,16 +1,53 @@ #!/bin/bash set -e -# cleanup past artifacts +DEVICE_TEST_DIR="/data/local/tmp/rnexecutorch_tests" + +# cleanup build artifacts rm -rf build mkdir build cd build -# compile & run tests -cmake .. -make -j$(nproc) -ctest --output-on-failure +# cross-compile tests with Android toolchain +cmake .. \ + -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \ + -DANDROID_ABI=arm64-v8a \ + -DANDROID_PLATFORM=android-34 \ + -DANDROID_STL=c++_static + +make + +adb shell "mkdir -p $DEVICE_TEST_DIR" + +# TEST_EXECUTABLES=("NumericalTests" "LogTests", "BaseModelTests") +TEST_EXECUTABLES=("BaseModelTests") + +# push test executables to device +echo "Pushing test executables to device..." +for test_exe in "${TEST_EXECUTABLES[@]}"; do + if [ -f "$test_exe" ]; then + adb push "$test_exe" "$DEVICE_TEST_DIR/" + adb shell "chmod +x $DEVICE_TEST_DIR/$test_exe" + fi +done + +# run tests on device +echo "Running tests on device..." +FAILED=0 +for test_exe in "${TEST_EXECUTABLES[@]}"; do + if adb shell "[ -f $DEVICE_TEST_DIR/$test_exe ]"; then + echo "=== Running $test_exe ===" + if ! adb shell "cd $DEVICE_TEST_DIR && ./$test_exe --gtest_color=yes"; then + FAILED=1 + fi + fi +done + +# cleanup device +adb shell "rm -rf $DEVICE_TEST_DIR" # cleanup build/ cd .. rm -rf build + +exit $FAILED From f05bcac383f5013b85641b287e6b336decb06388 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Tue, 20 Jan 2026 11:57:23 +0100 Subject: [PATCH 03/29] feat: extend cmake to use 3rd party android libs --- .../common/rnexecutorch/tests/CMakeLists.txt | 107 ++++++++++++++++-- 1 file changed, 97 insertions(+), 10 deletions(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt index f4fce3657..decde0dbc 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt +++ b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt @@ -1,3 +1,8 @@ +# Since this test suite needs access to prebuilt Android ExecuTorch / other 3p libs, we early return if the target is not Android +if(NOT ANDROID_ABI) + message(FATAL_ERROR "This can be only built for Android simulator") +endif() + cmake_minimum_required(VERSION 3.13) project(RNExecutorchTests) @@ -17,6 +22,8 @@ set(COMMON_DIR "${RNEXECUTORCH_DIR}/..") set(PACKAGE_ROOT "${COMMON_DIR}/..") set(MONOREPO_ROOT "${PACKAGE_ROOT}/../..") set(THIRD_PARTY_DIR "${MONOREPO_ROOT}/third-party") +set(REACT_NATIVE_DIR "${MONOREPO_ROOT}/node_modules/react-native") +set(ANDROID_THIRD_PARTY "${PACKAGE_ROOT}/third-party/android/libs/") # GoogleTest add_subdirectory(${THIRD_PARTY_DIR}/googletest ${PROJECT_BINARY_DIR}/googletest) @@ -30,26 +37,106 @@ include_directories(${RNEXECUTORCH_DIR}) include_directories(${COMMON_DIR}) include_directories(${PACKAGE_ROOT}/third-party/include) +# React Native / JSI headers +include_directories(${REACT_NATIVE_DIR}/ReactCommon) +include_directories(${REACT_NATIVE_DIR}/ReactCommon/jsi) +include_directories(${REACT_NATIVE_DIR}/ReactCommon/callinvoker) + +# Source files +set(NUMERICAL_SOURCES ${RNEXECUTORCH_DIR}/data_processing/Numerical.cpp) +set(BASEMODEL_SOURCES ${RNEXECUTORCH_DIR}/models/BaseModel.cpp) +set(CLASSIFICATION_SOURCES ${RNEXECUTORCH_DIR}/models/classification/Classification.cpp) +set(OBJECT_DETECTION_SOURCES + ${RNEXECUTORCH_DIR}/models/object_detection/ObjectDetection.cpp + ${RNEXECUTORCH_DIR}/models/object_detection/Utils.cpp +) +set(IMAGE_PROCESSING_SOURCES ${RNEXECUTORCH_DIR}/data_processing/ImageProcessing.cpp) +set(BASE64_SOURCES ${RNEXECUTORCH_DIR}/data_processing/base64.cpp) +set(ADA_SOURCES ${COMMON_DIR}/ada/ada.cpp) + +# Stubs for mocking JSI/React Native symbols +set(JSI_STUBS ${CMAKE_SOURCE_DIR}/stubs/jsi_stubs.cpp) + +# Ada URL parser include +include_directories(${COMMON_DIR}/ada) + +# OpenCV (static libraries) +set(OPENCV_LIBS_DIR "${ANDROID_THIRD_PARTY}/opencv/${ANDROID_ABI}") +set(OPENCV_LIBS + ${OPENCV_LIBS_DIR}/libopencv_imgproc.a + ${OPENCV_LIBS_DIR}/libopencv_core.a + ${OPENCV_LIBS_DIR}/libopencv_photo.a + ${OPENCV_LIBS_DIR}/libopencv_video.a + ${OPENCV_LIBS_DIR}/libopencv_features2d.a + ${OPENCV_LIBS_DIR}/libopencv_highgui.a +) +set(OPENCV_THIRD_PARTY_DIR "${ANDROID_THIRD_PARTY}/opencv-third-party/${ANDROID_ABI}") +file(GLOB OPENCV_THIRD_PARTY_LIBS "${OPENCV_THIRD_PARTY_DIR}/*.a") # Executables for the tests -add_executable(NumericalTests NumericalTest.cpp ${SOURCE_FILES}) -add_executable(FileUtilsTests FileUtilsTest.cpp ${SOURCE_FILES}) +add_executable(NumericalTests NumericalTest.cpp ${NUMERICAL_SOURCES}) add_executable(LogTests LogTest.cpp) +add_executable(BaseModelTests BaseModelTest.cpp ${BASEMODEL_SOURCES} ${JSI_STUBS}) +add_executable(ClassificationTests ClassificationTest.cpp + ${CLASSIFICATION_SOURCES} + ${BASEMODEL_SOURCES} + ${IMAGE_PROCESSING_SOURCES} + ${NUMERICAL_SOURCES} + ${BASE64_SOURCES} + ${ADA_SOURCES} + ${JSI_STUBS} +) +add_executable(ObjectDetectionTests ObjectDetectionTest.cpp + ${OBJECT_DETECTION_SOURCES} + ${BASEMODEL_SOURCES} + ${IMAGE_PROCESSING_SOURCES} + ${NUMERICAL_SOURCES} + ${BASE64_SOURCES} + ${ADA_SOURCES} + ${JSI_STUBS} +) # Libraries linking target_link_libraries(NumericalTests gtest gtest_main) -target_link_libraries(FileUtilsTests gtest gtest_main) -target_link_libraries(LogTests gtest gtest_main ${log-lib}) +target_link_libraries(LogTests gtest gtest_main log) +target_link_libraries(BaseModelTests + PRIVATE + ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so + gtest + gtest_main + log +) +target_link_options(ClassificationTests PRIVATE -fopenmp -static-openmp) +target_link_libraries(ClassificationTests + PRIVATE + ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so + ${OPENCV_LIBS} + ${OPENCV_THIRD_PARTY_LIBS} + z + gtest + gtest_main + log +) +target_link_options(ObjectDetectionTests PRIVATE -fopenmp -static-openmp) +target_link_libraries(ObjectDetectionTests + PRIVATE + ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so + ${OPENCV_LIBS} + ${OPENCV_THIRD_PARTY_LIBS} + z + gtest + gtest_main + log +) - -if(ANDROID) - target_link_libraries(LogTests log) - # Add support for 16kB page size so we can run it on a simulator - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,max-page-size=16384") -endif() +# Add 16kB page size +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,max-page-size=16384") # Testing functionalities enable_testing() add_test(NAME NumericalTests COMMAND NumericalTests) add_test(NAME FileUtilsTests COMMAND FileUtilsTests) add_test(NAME LogTests COMMAND LogTests) +add_test(NAME BaseModelTests COMMAND BaseModelTests) +add_test(NAME ClassificationTests COMMAND ClassificationTests) +add_test(NAME ObjectDetectionTests COMMAND ObjectDetectionTests) From 0a6a8aeb3dd28e8a089f2b8b9389e3d6745abd94 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Tue, 20 Jan 2026 11:58:01 +0100 Subject: [PATCH 04/29] feat(wip): add a run_tests script to run tests on emulator --- .../common/rnexecutorch/tests/run_tests.sh | 52 ++++++++++++++++--- 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh index e3bfd0506..407b99aae 100755 --- a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh +++ b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh @@ -1,6 +1,17 @@ #!/bin/bash set -e +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PACKAGE_ROOT="$SCRIPT_DIR/../../.." +ANDROID_ABI="arm64-v8a" +ANDROID_LIBS_DIR="$PACKAGE_ROOT/third-party/android/libs" + +echo "ANDROID_NDK = $ANDROID_NDK" +if [ -z "$ANDROID_NDK" ]; then + echo "ERROR: ANDROID_NDK IS NOT SET" + exit 1 +fi + DEVICE_TEST_DIR="/data/local/tmp/rnexecutorch_tests" # cleanup build artifacts @@ -11,16 +22,15 @@ cd build # cross-compile tests with Android toolchain cmake .. \ -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \ - -DANDROID_ABI=arm64-v8a \ + -DANDROID_ABI=$ANDROID_ABI \ -DANDROID_PLATFORM=android-34 \ - -DANDROID_STL=c++_static + -DANDROID_STL=c++_shared make adb shell "mkdir -p $DEVICE_TEST_DIR" -# TEST_EXECUTABLES=("NumericalTests" "LogTests", "BaseModelTests") -TEST_EXECUTABLES=("BaseModelTests") +TEST_EXECUTABLES=("NumericalTests" "LogTests" "BaseModelTests" "ClassificationTests" "ObjectDetectionTests") # push test executables to device echo "Pushing test executables to device..." @@ -31,13 +41,43 @@ for test_exe in "${TEST_EXECUTABLES[@]}"; do fi done +# download models needed for the tests & push to device +wget https://huggingface.co/software-mansion/react-native-executorch-style-transfer-candy/resolve/main/xnnpack/style_transfer_candy_xnnpack.pte +adb push "style_transfer_candy_xnnpack.pte" "$DEVICE_TEST_DIR/" + +wget https://huggingface.co/software-mansion/react-native-executorch-efficientnet-v2-s/resolve/v0.6.0/xnnpack/efficientnet_v2_s_xnnpack.pte +adb push "efficientnet_v2_s_xnnpack.pte" "$DEVICE_TEST_DIR/" + +wget https://huggingface.co/software-mansion/react-native-executorch-ssdlite320-mobilenet-v3-large/resolve/v0.6.0/ssdlite320-mobilenetv3-large.pte +adb push "ssdlite320-mobilenetv3-large.pte" "$DEVICE_TEST_DIR/" + +# download test image for classification/object detection tests +wget -O test_image.jpg https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Cat_November_2010-1a.jpg/1200px-Cat_November_2010-1a.jpg +adb push "test_image.jpg" "$DEVICE_TEST_DIR/" + +# push shared libraries needed by BaseModelTests +echo "Pushing shared libraries to device..." +GRADLE_LIBS="$PACKAGE_ROOT/android/build/intermediates/cmake/release/obj/$ANDROID_ABI" + +# Push executorch as libexecutorch_jni.so (the lib expects this name) +adb push "$ANDROID_LIBS_DIR/executorch/$ANDROID_ABI/libexecutorch.so" "$DEVICE_TEST_DIR/libexecutorch_jni.so" + +# Push dependencies used by libexecutorch.so +for lib in libfbjni.so libpthreadpool.so libcpuinfo.so libc++_shared.so; do + if [ -f "$GRADLE_LIBS/$lib" ]; then + adb push "$GRADLE_LIBS/$lib" "$DEVICE_TEST_DIR/" + else + echo "Warning: $lib not found" + fi +done + # run tests on device echo "Running tests on device..." FAILED=0 for test_exe in "${TEST_EXECUTABLES[@]}"; do if adb shell "[ -f $DEVICE_TEST_DIR/$test_exe ]"; then echo "=== Running $test_exe ===" - if ! adb shell "cd $DEVICE_TEST_DIR && ./$test_exe --gtest_color=yes"; then + if ! adb shell "cd $DEVICE_TEST_DIR && LD_LIBRARY_PATH=. ./$test_exe --gtest_color=yes"; then FAILED=1 fi fi @@ -48,6 +88,6 @@ adb shell "rm -rf $DEVICE_TEST_DIR" # cleanup build/ cd .. -rm -rf build +# rm -rf build exit $FAILED From 147894b861e315feb96923c9afc7d4448a95c8ec Mon Sep 17 00:00:00 2001 From: chmjkb Date: Tue, 20 Jan 2026 11:58:17 +0100 Subject: [PATCH 05/29] feat: add some tests along with 3p stubs --- .../rnexecutorch/tests/BaseModelTest.cpp | 209 ++++++++++++++++++ .../rnexecutorch/tests/ClassificationTest.cpp | 97 ++++++++ .../tests/ObjectDetectionTest.cpp | 103 +++++++++ .../rnexecutorch/tests/stubs/jsi_stubs.cpp | 27 +++ 4 files changed, 436 insertions(+) create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/BaseModelTest.cpp create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/ClassificationTest.cpp create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/ObjectDetectionTest.cpp create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/stubs/jsi_stubs.cpp diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/BaseModelTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/BaseModelTest.cpp new file mode 100644 index 000000000..7c530fbfd --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/BaseModelTest.cpp @@ -0,0 +1,209 @@ +#include +#include +#include +#include +#include +#include + +using namespace rnexecutorch; +using namespace rnexecutorch::models; +using namespace executorch::extension; +using executorch::runtime::EValue; + +constexpr auto VALID_STYLE_TRANSFER_MODEL_PATH = + "style_transfer_candy_xnnpack.pte"; + +TEST(BaseModelCtorTests, InvalidPathThrows) { + EXPECT_THROW(BaseModel("this_file_does_not_exist.mp3", nullptr), + RnExecutorchError); +} + +TEST(BaseModelCtorTests, ValidPathDoesntThrow) { + EXPECT_NO_THROW(BaseModel(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr)); +} + +TEST(BaseModelGetInputShapeTests, ValidMethodCorrectShape) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + auto forwardShape = model.getInputShape("forward", 0); + std::vector expectedShape = {1, 3, 640, 640}; + EXPECT_EQ(forwardShape, expectedShape); +} + +TEST(BaseModelGetInputShapeTests, InvalidMethodThrows) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + EXPECT_THROW(model.getInputShape("this_method_does_not_exist", 0), + RnExecutorchError); +} + +TEST(BaseModelGetInputShapeTests, ValidMethodInvalidIndexThrows) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + EXPECT_THROW( + model.getInputShape("forward", std::numeric_limits::max()), + RnExecutorchError); +} + +TEST(BaseModelGetAllInputShapesTests, ValidMethodReturnsShapes) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + auto allShapes = model.getAllInputShapes("forward"); + EXPECT_FALSE(allShapes.empty()); + std::vector expectedFirstShape = {1, 3, 640, 640}; + EXPECT_EQ(allShapes[0], expectedFirstShape); +} + +TEST(BaseModelGetAllInputShapesTests, InvalidMethodThrows) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + EXPECT_THROW(model.getAllInputShapes("non_existent_method"), + RnExecutorchError); +} + +TEST(BaseModelGetMethodMetaTests, ValidMethodReturnsOk) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + auto result = model.getMethodMeta("forward"); + EXPECT_TRUE(result.ok()); +} + +TEST(BaseModelGetMethodMetaTests, InvalidMethodReturnsError) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + auto result = model.getMethodMeta("non_existent_method"); + EXPECT_FALSE(result.ok()); +} + +TEST(BaseModelUnloadTests, UnloadDoesNotThrow) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + EXPECT_NO_THROW(model.unload()); +} + +TEST(BaseModelUnloadTests, GetInputShapeAfterUnloadThrows) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + model.unload(); + EXPECT_THROW(model.getInputShape("forward", 0), RnExecutorchError); +} + +TEST(BaseModelUnloadTests, GetAllInputShapesAfterUnloadThrows) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + model.unload(); + EXPECT_THROW(model.getAllInputShapes("forward"), RnExecutorchError); +} + +TEST(BaseModelUnloadTests, GetMethodMetaAfterUnloadThrows) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + model.unload(); + EXPECT_THROW(model.getMethodMeta("forward"), RnExecutorchError); +} + +TEST(BaseModelMemoryTests, GetMemoryLowerBoundReturnsPositive) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + EXPECT_GT(model.getMemoryLowerBound(), 0u); +} + +TEST(BaseModelForwardTests, ForwardWithValidInputReturnsOk) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + std::vector shape = {1, 3, 640, 640}; + size_t numElements = 1 * 3 * 640 * 640; + std::vector inputData(numElements, 0.5f); + auto tensorPtr = make_tensor_ptr(shape, inputData.data()); + EValue input(*tensorPtr); + + auto result = model.forward(input); + EXPECT_TRUE(result.ok()); +} + +TEST(BaseModelForwardTests, ForwardWithVectorInputReturnsOk) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + std::vector shape = {1, 3, 640, 640}; + size_t numElements = 1 * 3 * 640 * 640; + std::vector inputData(numElements, 0.5f); + auto tensorPtr = make_tensor_ptr(shape, inputData.data()); + std::vector inputs; + inputs.emplace_back(*tensorPtr); + + auto result = model.forward(inputs); + EXPECT_TRUE(result.ok()); +} + +TEST(BaseModelForwardTests, ForwardReturnsCorrectOutputShape) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + std::vector shape = {1, 3, 640, 640}; + size_t numElements = 1 * 3 * 640 * 640; + std::vector inputData(numElements, 0.5f); + auto tensorPtr = make_tensor_ptr(shape, inputData.data()); + EValue input(*tensorPtr); + + auto result = model.forward(input); + ASSERT_TRUE(result.ok()); + ASSERT_FALSE(result->empty()); + + auto &outputTensor = result->at(0).toTensor(); + auto outputSizes = outputTensor.sizes(); + EXPECT_EQ(outputSizes.size(), 4); + EXPECT_EQ(outputSizes[0], 1); + EXPECT_EQ(outputSizes[1], 3); + EXPECT_EQ(outputSizes[2], 640); + EXPECT_EQ(outputSizes[3], 640); +} + +TEST(BaseModelForwardTests, ForwardAfterUnloadThrows) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + model.unload(); + + std::vector shape = {1, 3, 640, 640}; + size_t numElements = 1 * 3 * 640 * 640; + std::vector inputData(numElements, 0.5f); + auto tensorPtr = make_tensor_ptr(shape, inputData.data()); + EValue input(*tensorPtr); + + EXPECT_THROW(model.forward(input), RnExecutorchError); +} + +TEST(BaseModelForwardJSTests, ForwardJSWithValidInputReturnsOutput) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + std::vector shape = {1, 3, 640, 640}; + size_t numElements = 1 * 3 * 640 * 640; + std::vector inputData(numElements, 0.5f); + + JSTensorViewIn tensorView; + tensorView.dataPtr = inputData.data(); + tensorView.sizes = shape; + tensorView.scalarType = executorch::aten::ScalarType::Float; + + std::vector inputs = {tensorView}; + auto outputs = model.forwardJS(inputs); + + EXPECT_FALSE(outputs.empty()); +} + +TEST(BaseModelForwardJSTests, ForwardJSReturnsCorrectOutputShape) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + std::vector shape = {1, 3, 640, 640}; + size_t numElements = 1 * 3 * 640 * 640; + std::vector inputData(numElements, 0.5f); + + JSTensorViewIn tensorView; + tensorView.dataPtr = inputData.data(); + tensorView.sizes = shape; + tensorView.scalarType = executorch::aten::ScalarType::Float; + + std::vector inputs = {tensorView}; + auto outputs = model.forwardJS(inputs); + + ASSERT_EQ(outputs.size(), 1); + std::vector expectedShape = {1, 3, 640, 640}; + EXPECT_EQ(outputs[0].sizes, expectedShape); +} + +TEST(BaseModelForwardJSTests, ForwardJSAfterUnloadThrows) { + BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + model.unload(); + + std::vector shape = {1, 3, 640, 640}; + size_t numElements = 1 * 3 * 640 * 640; + std::vector inputData(numElements, 0.5f); + + JSTensorViewIn tensorView; + tensorView.dataPtr = inputData.data(); + tensorView.sizes = shape; + tensorView.scalarType = executorch::aten::ScalarType::Float; + + std::vector inputs = {tensorView}; + EXPECT_THROW(model.forwardJS(inputs), RnExecutorchError); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/ClassificationTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/ClassificationTest.cpp new file mode 100644 index 000000000..272e5f11a --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/ClassificationTest.cpp @@ -0,0 +1,97 @@ +#include +#include +#include +#include +#include + +using namespace rnexecutorch; +using namespace rnexecutorch::models::classification; + +constexpr auto VALID_CLASSIFICATION_MODEL_PATH = + "efficientnet_v2_s_xnnpack.pte"; +constexpr auto VALID_TEST_IMAGE_PATH = + "file:///data/local/tmp/rnexecutorch_tests/test_image.jpg"; + +TEST(ClassificationCtorTests, InvalidPathThrows) { + EXPECT_THROW(Classification("this_file_does_not_exist.pte", nullptr), + RnExecutorchError); +} + +TEST(ClassificationCtorTests, ValidPathDoesntThrow) { + EXPECT_NO_THROW(Classification(VALID_CLASSIFICATION_MODEL_PATH, nullptr)); +} + +TEST(ClassificationGenerateTests, InvalidImagePathThrows) { + Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + EXPECT_THROW(model.generate("nonexistent_image.jpg"), RnExecutorchError); +} + +TEST(ClassificationGenerateTests, ValidImageReturnsResults) { + Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + auto results = model.generate(VALID_TEST_IMAGE_PATH); + EXPECT_FALSE(results.empty()); +} + +TEST(ClassificationGenerateTests, ResultsHaveCorrectSize) { + Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + auto results = model.generate(VALID_TEST_IMAGE_PATH); + auto expectedNumClasses = constants::kImagenet1kV1Labels.size(); + EXPECT_EQ(results.size(), expectedNumClasses); +} + +TEST(ClassificationGenerateTests, ResultsContainValidProbabilities) { + Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + auto results = model.generate(VALID_TEST_IMAGE_PATH); + + float sum = 0.0f; + for (const auto &[label, prob] : results) { + EXPECT_GE(prob, 0.0f); + EXPECT_LE(prob, 1.0f); + sum += prob; + } + EXPECT_NEAR(sum, 1.0f, 0.01f); +} + +TEST(ClassificationGenerateTests, TopPredictionHasReasonableConfidence) { + Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + auto results = model.generate(VALID_TEST_IMAGE_PATH); + + float maxProb = 0.0f; + for (const auto &[label, prob] : results) { + if (prob > maxProb) { + maxProb = prob; + } + } + EXPECT_GT(maxProb, 0.0f); +} + +TEST(ClassificationUnloadTests, GenerateAfterUnloadThrows) { + Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + model.unload(); + EXPECT_THROW(model.generate(VALID_TEST_IMAGE_PATH), RnExecutorchError); +} + +TEST(ClassificationInheritedTests, GetInputShapeWorks) { + Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + auto shape = model.getInputShape("forward", 0); + EXPECT_EQ(shape.size(), 4); + EXPECT_EQ(shape[0], 1); + EXPECT_EQ(shape[1], 3); +} + +TEST(ClassificationInheritedTests, GetAllInputShapesWorks) { + Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + auto shapes = model.getAllInputShapes("forward"); + EXPECT_FALSE(shapes.empty()); +} + +TEST(ClassificationInheritedTests, GetMethodMetaWorks) { + Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + auto result = model.getMethodMeta("forward"); + EXPECT_TRUE(result.ok()); +} + +TEST(ClassificationInheritedTests, GetMemoryLowerBoundReturnsPositive) { + Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + EXPECT_GT(model.getMemoryLowerBound(), 0u); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/ObjectDetectionTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/ObjectDetectionTest.cpp new file mode 100644 index 000000000..b9ba4dd4a --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/ObjectDetectionTest.cpp @@ -0,0 +1,103 @@ +#include +#include +#include +#include +#include + +using namespace rnexecutorch; +using namespace rnexecutorch::models::object_detection; + +constexpr auto VALID_OBJECT_DETECTION_MODEL_PATH = + "ssdlite320-mobilenetv3-large.pte"; +constexpr auto VALID_TEST_IMAGE_PATH = + "file:///data/local/tmp/rnexecutorch_tests/test_image.jpg"; + +TEST(ObjectDetectionCtorTests, InvalidPathThrows) { + EXPECT_THROW(ObjectDetection("this_file_does_not_exist.pte", nullptr), + RnExecutorchError); +} + +TEST(ObjectDetectionCtorTests, ValidPathDoesntThrow) { + EXPECT_NO_THROW(ObjectDetection(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr)); +} + +TEST(ObjectDetectionGenerateTests, InvalidImagePathThrows) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + EXPECT_THROW(model.generate("nonexistent_image.jpg", 0.5), RnExecutorchError); +} + +TEST(ObjectDetectionGenerateTests, ValidImageReturnsResults) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + auto results = model.generate(VALID_TEST_IMAGE_PATH, 0.3); + // May or may not have detections depending on image content + EXPECT_GE(results.size(), 0u); +} + +TEST(ObjectDetectionGenerateTests, HighThresholdReturnsFewerResults) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + auto lowThresholdResults = model.generate(VALID_TEST_IMAGE_PATH, 0.1); + auto highThresholdResults = model.generate(VALID_TEST_IMAGE_PATH, 0.9); + EXPECT_GE(lowThresholdResults.size(), highThresholdResults.size()); +} + +TEST(ObjectDetectionGenerateTests, DetectionsHaveValidBoundingBoxes) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + auto results = model.generate(VALID_TEST_IMAGE_PATH, 0.3); + + for (const auto &detection : results) { + EXPECT_LE(detection.x1, detection.x2); + EXPECT_LE(detection.y1, detection.y2); + EXPECT_GE(detection.x1, 0.0f); + EXPECT_GE(detection.y1, 0.0f); + } +} + +TEST(ObjectDetectionGenerateTests, DetectionsHaveValidScores) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + auto results = model.generate(VALID_TEST_IMAGE_PATH, 0.3); + + for (const auto &detection : results) { + EXPECT_GE(detection.score, 0.0f); + EXPECT_LE(detection.score, 1.0f); + } +} + +TEST(ObjectDetectionGenerateTests, DetectionsHaveValidLabels) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + auto results = model.generate(VALID_TEST_IMAGE_PATH, 0.3); + + for (const auto &detection : results) { + EXPECT_GE(detection.label, 0); + } +} + +TEST(ObjectDetectionUnloadTests, GenerateAfterUnloadThrows) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + model.unload(); + EXPECT_THROW(model.generate(VALID_TEST_IMAGE_PATH, 0.5), RnExecutorchError); +} + +TEST(ObjectDetectionInheritedTests, GetInputShapeWorks) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + auto shape = model.getInputShape("forward", 0); + EXPECT_EQ(shape.size(), 4); + EXPECT_EQ(shape[0], 1); + EXPECT_EQ(shape[1], 3); +} + +TEST(ObjectDetectionInheritedTests, GetAllInputShapesWorks) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + auto shapes = model.getAllInputShapes("forward"); + EXPECT_FALSE(shapes.empty()); +} + +TEST(ObjectDetectionInheritedTests, GetMethodMetaWorks) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + auto result = model.getMethodMeta("forward"); + EXPECT_TRUE(result.ok()); +} + +TEST(ObjectDetectionInheritedTests, GetMemoryLowerBoundReturnsPositive) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + EXPECT_GT(model.getMemoryLowerBound(), 0u); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/stubs/jsi_stubs.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/stubs/jsi_stubs.cpp new file mode 100644 index 000000000..75526e88c --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/stubs/jsi_stubs.cpp @@ -0,0 +1,27 @@ +// Stub implementations for JSI and other symbols to satisfy the linker +// These are never actually called in tests + +#include +#include +#include +#include +#include + +namespace facebook::jsi { + +// MutableBuffer destructor - needed by OwningArrayBuffer +// Don't stub Runtime - it has too many virtual methods +MutableBuffer::~MutableBuffer() {} + +} // namespace facebook::jsi + +namespace rnexecutorch { + +// Stub for fetchUrlFunc - used by ImageProcessing for remote URLs +// Tests only use local files, so this is never called +using FetchUrlFunc_t = std::function(std::string)>; +FetchUrlFunc_t fetchUrlFunc = [](std::string) -> std::vector { + return {}; +}; + +} // namespace rnexecutorch From a596818cf7c2d54ecdde393efd6faa3ac3816e90 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Wed, 21 Jan 2026 14:22:21 +0100 Subject: [PATCH 06/29] feat: add more tests --- .../rnexecutorch/tests/BaseModelTest.cpp | 2 +- .../common/rnexecutorch/tests/CMakeLists.txt | 130 ++++++++++++++ .../tests/ImageEmbeddingsTest.cpp | 101 +++++++++++ .../rnexecutorch/tests/SpeechToTextTest.cpp | 81 +++++++++ .../rnexecutorch/tests/StyleTransferTest.cpp | 91 ++++++++++ .../common/rnexecutorch/tests/TestUtils.h | 49 ++++++ .../rnexecutorch/tests/TextEmbeddingsTest.cpp | 158 ++++++++++++++++++ .../tests/TokenizerModuleTest.cpp | 88 ++++++++++ .../tests/VoiceActivityDetectionTest.cpp | 91 ++++++++++ .../common/rnexecutorch/tests/run_tests.sh | 65 ++++--- .../rnexecutorch/tests/stubs/jsi_stubs.cpp | 3 +- 11 files changed, 833 insertions(+), 26 deletions(-) create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/ImageEmbeddingsTest.cpp create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/SpeechToTextTest.cpp create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/StyleTransferTest.cpp create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/TestUtils.h create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/TextEmbeddingsTest.cpp create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/TokenizerModuleTest.cpp create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/VoiceActivityDetectionTest.cpp diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/BaseModelTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/BaseModelTest.cpp index 7c530fbfd..033806b21 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/BaseModelTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/BaseModelTest.cpp @@ -38,7 +38,7 @@ TEST(BaseModelGetInputShapeTests, InvalidMethodThrows) { TEST(BaseModelGetInputShapeTests, ValidMethodInvalidIndexThrows) { BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); EXPECT_THROW( - model.getInputShape("forward", std::numeric_limits::max()), + model.getInputShape("forward", std::numeric_limits::min()), RnExecutorchError); } diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt index decde0dbc..a38d64086 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt +++ b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt @@ -53,6 +53,23 @@ set(OBJECT_DETECTION_SOURCES set(IMAGE_PROCESSING_SOURCES ${RNEXECUTORCH_DIR}/data_processing/ImageProcessing.cpp) set(BASE64_SOURCES ${RNEXECUTORCH_DIR}/data_processing/base64.cpp) set(ADA_SOURCES ${COMMON_DIR}/ada/ada.cpp) +set(BASE_EMBEDDINGS_SOURCES ${RNEXECUTORCH_DIR}/models/embeddings/BaseEmbeddings.cpp) +set(IMAGE_EMBEDDINGS_SOURCES ${RNEXECUTORCH_DIR}/models/embeddings/image/ImageEmbeddings.cpp) +set(TEXT_EMBEDDINGS_SOURCES ${RNEXECUTORCH_DIR}/models/embeddings/text/TextEmbeddings.cpp) +set(TOKENIZER_SOURCES ${RNEXECUTORCH_DIR}/TokenizerModule.cpp) +set(STYLE_TRANSFER_SOURCES ${RNEXECUTORCH_DIR}/models/style_transfer/StyleTransfer.cpp) +set(VAD_SOURCES + ${RNEXECUTORCH_DIR}/models/voice_activity_detection/VoiceActivityDetection.cpp + ${RNEXECUTORCH_DIR}/models/voice_activity_detection/Utils.cpp +) +set(DSP_SOURCES ${RNEXECUTORCH_DIR}/data_processing/dsp.cpp) +set(GZIP_SOURCES ${RNEXECUTORCH_DIR}/data_processing/gzip.cpp) +set(S2T_SOURCES + ${RNEXECUTORCH_DIR}/models/speech_to_text/SpeechToText.cpp + ${RNEXECUTORCH_DIR}/models/speech_to_text/asr/ASR.cpp + ${RNEXECUTORCH_DIR}/models/speech_to_text/stream/HypothesisBuffer.cpp + ${RNEXECUTORCH_DIR}/models/speech_to_text/stream/OnlineASRProcessor.cpp +) # Stubs for mocking JSI/React Native symbols set(JSI_STUBS ${CMAKE_SOURCE_DIR}/stubs/jsi_stubs.cpp) @@ -73,6 +90,14 @@ set(OPENCV_LIBS set(OPENCV_THIRD_PARTY_DIR "${ANDROID_THIRD_PARTY}/opencv-third-party/${ANDROID_ABI}") file(GLOB OPENCV_THIRD_PARTY_LIBS "${OPENCV_THIRD_PARTY_DIR}/*.a") +# Tokenizers-cpp (static libraries) +set(TOKENIZERS_LIBS_DIR "${ANDROID_THIRD_PARTY}/tokenizers-cpp/${ANDROID_ABI}") +set(TOKENIZERS_LIBS + ${TOKENIZERS_LIBS_DIR}/libtokenizers_cpp.a + ${TOKENIZERS_LIBS_DIR}/libtokenizers_c.a + ${TOKENIZERS_LIBS_DIR}/libsentencepiece.a +) + # Executables for the tests add_executable(NumericalTests NumericalTest.cpp ${NUMERICAL_SOURCES}) add_executable(LogTests LogTest.cpp) @@ -95,6 +120,52 @@ add_executable(ObjectDetectionTests ObjectDetectionTest.cpp ${ADA_SOURCES} ${JSI_STUBS} ) +add_executable(ImageEmbeddingsTests ImageEmbeddingsTest.cpp + ${IMAGE_EMBEDDINGS_SOURCES} + ${BASE_EMBEDDINGS_SOURCES} + ${BASEMODEL_SOURCES} + ${IMAGE_PROCESSING_SOURCES} + ${NUMERICAL_SOURCES} + ${BASE64_SOURCES} + ${ADA_SOURCES} + ${JSI_STUBS} +) +add_executable(TextEmbeddingsTests TextEmbeddingsTest.cpp + ${TEXT_EMBEDDINGS_SOURCES} + ${BASE_EMBEDDINGS_SOURCES} + ${BASEMODEL_SOURCES} + ${TOKENIZER_SOURCES} + ${NUMERICAL_SOURCES} + ${JSI_STUBS} +) +add_executable(StyleTransferTests StyleTransferTest.cpp + ${STYLE_TRANSFER_SOURCES} + ${BASEMODEL_SOURCES} + ${IMAGE_PROCESSING_SOURCES} + ${NUMERICAL_SOURCES} + ${BASE64_SOURCES} + ${ADA_SOURCES} + ${JSI_STUBS} +) +add_executable(VADTests VoiceActivityDetectionTest.cpp + ${VAD_SOURCES} + ${BASEMODEL_SOURCES} + ${DSP_SOURCES} + ${JSI_STUBS} +) +add_executable(TokenizerModuleTests TokenizerModuleTest.cpp + ${TOKENIZER_SOURCES} + ${JSI_STUBS} +) +add_executable(SpeechToTextTests SpeechToTextTest.cpp + ${S2T_SOURCES} + ${BASEMODEL_SOURCES} + ${TOKENIZER_SOURCES} + ${NUMERICAL_SOURCES} + ${GZIP_SOURCES} + ${DSP_SOURCES} + ${JSI_STUBS} +) # Libraries linking target_link_libraries(NumericalTests gtest gtest_main) @@ -128,6 +199,59 @@ target_link_libraries(ObjectDetectionTests gtest_main log ) +target_link_options(ImageEmbeddingsTests PRIVATE -fopenmp -static-openmp) +target_link_libraries(ImageEmbeddingsTests + PRIVATE + ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so + ${OPENCV_LIBS} + ${OPENCV_THIRD_PARTY_LIBS} + z + gtest + gtest_main + log +) +target_link_libraries(TextEmbeddingsTests + PRIVATE + ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so + ${TOKENIZERS_LIBS} + gtest + gtest_main + log +) +target_link_options(StyleTransferTests PRIVATE -fopenmp -static-openmp) +target_link_libraries(StyleTransferTests + PRIVATE + ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so + ${OPENCV_LIBS} + ${OPENCV_THIRD_PARTY_LIBS} + z + gtest + gtest_main + log +) +target_link_libraries(VADTests + PRIVATE + ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so + gtest + gtest_main + log +) +target_link_libraries(TokenizerModuleTests + PRIVATE + ${TOKENIZERS_LIBS} + gtest + gtest_main + log +) +target_link_libraries(SpeechToTextTests + PRIVATE + ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so + ${TOKENIZERS_LIBS} + z + gtest + gtest_main + log +) # Add 16kB page size set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,max-page-size=16384") @@ -140,3 +264,9 @@ add_test(NAME LogTests COMMAND LogTests) add_test(NAME BaseModelTests COMMAND BaseModelTests) add_test(NAME ClassificationTests COMMAND ClassificationTests) add_test(NAME ObjectDetectionTests COMMAND ObjectDetectionTests) +add_test(NAME ImageEmbeddingsTests COMMAND ImageEmbeddingsTests) +add_test(NAME TextEmbeddingsTests COMMAND TextEmbeddingsTests) +add_test(NAME StyleTransferTests COMMAND StyleTransferTests) +add_test(NAME VADTests COMMAND VADTests) +add_test(NAME TokenizerModuleTests COMMAND TokenizerModuleTests) +add_test(NAME SpeechToTextTests COMMAND SpeechToTextTests) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/ImageEmbeddingsTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/ImageEmbeddingsTest.cpp new file mode 100644 index 000000000..737602baf --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/ImageEmbeddingsTest.cpp @@ -0,0 +1,101 @@ +#include +#include +#include +#include +#include + +using namespace rnexecutorch; +using namespace rnexecutorch::models::embeddings; + +constexpr auto VALID_IMAGE_EMBEDDINGS_MODEL_PATH = + "clip-vit-base-patch32-vision_xnnpack.pte"; +constexpr auto VALID_TEST_IMAGE_PATH = + "file:///data/local/tmp/rnexecutorch_tests/test_image.jpg"; +constexpr size_t CLIP_EMBEDDING_DIMENSIONS = 512; + +TEST(ImageEmbeddingsCtorTests, InvalidPathThrows) { + EXPECT_THROW(ImageEmbeddings("this_file_does_not_exist.pte", nullptr), + RnExecutorchError); +} + +TEST(ImageEmbeddingsCtorTests, ValidPathDoesntThrow) { + EXPECT_NO_THROW(ImageEmbeddings(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr)); +} + +TEST(ImageEmbeddingsGenerateTests, InvalidImagePathThrows) { + ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + EXPECT_THROW(model.generate("nonexistent_image.jpg"), RnExecutorchError); +} + +TEST(ImageEmbeddingsGenerateTests, ValidImageReturnsResults) { + ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + auto result = model.generate(VALID_TEST_IMAGE_PATH); + EXPECT_NE(result, nullptr); + EXPECT_GT(result->size(), 0u); +} + +TEST(ImageEmbeddingsGenerateTests, ResultsHaveCorrectSize) { + ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + auto result = model.generate(VALID_TEST_IMAGE_PATH); + size_t numFloats = result->size() / sizeof(float); + EXPECT_EQ(numFloats, CLIP_EMBEDDING_DIMENSIONS); +} + +TEST(ImageEmbeddingsGenerateTests, ResultsAreNormalized) { + ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + auto result = model.generate(VALID_TEST_IMAGE_PATH); + + const float *data = reinterpret_cast(result->data()); + size_t numFloats = result->size() / sizeof(float); + + float sumOfSquares = 0.0f; + for (size_t i = 0; i < numFloats; ++i) { + sumOfSquares += data[i] * data[i]; + } + float norm = std::sqrt(sumOfSquares); + EXPECT_NEAR(norm, 1.0f, 0.01f); +} + +TEST(ImageEmbeddingsGenerateTests, ResultsContainValidValues) { + ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + auto result = model.generate(VALID_TEST_IMAGE_PATH); + + const float *data = reinterpret_cast(result->data()); + size_t numFloats = result->size() / sizeof(float); + + for (size_t i = 0; i < numFloats; ++i) { + EXPECT_FALSE(std::isnan(data[i])); + EXPECT_FALSE(std::isinf(data[i])); + } +} + +TEST(ImageEmbeddingsUnloadTests, GenerateAfterUnloadThrows) { + ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + model.unload(); + EXPECT_THROW(model.generate(VALID_TEST_IMAGE_PATH), RnExecutorchError); +} + +TEST(ImageEmbeddingsInheritedTests, GetInputShapeWorks) { + ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + auto shape = model.getInputShape("forward", 0); + EXPECT_EQ(shape.size(), 4); + EXPECT_EQ(shape[0], 1); + EXPECT_EQ(shape[1], 3); +} + +TEST(ImageEmbeddingsInheritedTests, GetAllInputShapesWorks) { + ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + auto shapes = model.getAllInputShapes("forward"); + EXPECT_FALSE(shapes.empty()); +} + +TEST(ImageEmbeddingsInheritedTests, GetMethodMetaWorks) { + ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + auto result = model.getMethodMeta("forward"); + EXPECT_TRUE(result.ok()); +} + +TEST(ImageEmbeddingsInheritedTests, GetMemoryLowerBoundReturnsPositive) { + ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + EXPECT_GT(model.getMemoryLowerBound(), 0u); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/SpeechToTextTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/SpeechToTextTest.cpp new file mode 100644 index 000000000..f92476ff2 --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/SpeechToTextTest.cpp @@ -0,0 +1,81 @@ +#include "TestUtils.h" +#include +#include +#include + +using namespace rnexecutorch; +using namespace rnexecutorch::models::speech_to_text; +using namespace test_utils; + +constexpr auto VALID_ENCODER_PATH = "whisper_tiny_en_encoder_xnnpack.pte"; +constexpr auto VALID_DECODER_PATH = "whisper_tiny_en_decoder_xnnpack.pte"; +constexpr auto VALID_TOKENIZER_PATH = "whisper_tokenizer.json"; + +TEST(S2TCtorTests, InvalidEncoderPathThrows) { + EXPECT_THROW(SpeechToText("nonexistent.pte", VALID_DECODER_PATH, + VALID_TOKENIZER_PATH, nullptr), + RnExecutorchError); +} + +TEST(S2TCtorTests, InvalidDecoderPathThrows) { + EXPECT_THROW(SpeechToText(VALID_ENCODER_PATH, "nonexistent.pte", + VALID_TOKENIZER_PATH, nullptr), + RnExecutorchError); +} + +TEST(S2TCtorTests, InvalidTokenizerPathThrows) { + EXPECT_THROW(SpeechToText(VALID_ENCODER_PATH, VALID_DECODER_PATH, + "nonexistent.json", nullptr), + RnExecutorchError); +} + +TEST(S2TCtorTests, ValidPathsDoesntThrow) { + EXPECT_NO_THROW(SpeechToText(VALID_ENCODER_PATH, VALID_DECODER_PATH, + VALID_TOKENIZER_PATH, nullptr)); +} + +TEST(S2TEncodeTests, EncodeReturnsNonNull) { + SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, + VALID_TOKENIZER_PATH, nullptr); + auto audio = loadAudioFromFile("test_audio_float.raw"); + ASSERT_FALSE(audio.empty()); + auto result = model.encode(audio); + EXPECT_NE(result, nullptr); + EXPECT_GT(result->size(), 0u); +} + +TEST(S2TTranscribeTests, TranscribeReturnsValidChars) { + SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, + VALID_TOKENIZER_PATH, nullptr); + auto audio = loadAudioFromFile("test_audio_float.raw"); + ASSERT_FALSE(audio.empty()); + auto result = model.transcribe(audio, "en"); + ASSERT_FALSE(result.empty()); + for (char c : result) { + EXPECT_GE(static_cast(c), 0); + EXPECT_LE(static_cast(c), 127); + } +} + +TEST(S2TTranscribeTests, EmptyResultOnSilence) { + SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, + VALID_TOKENIZER_PATH, nullptr); + auto audio = generateSilence(16000 * 5); + auto result = model.transcribe(audio, "en"); + EXPECT_TRUE(result.empty()); +} + +TEST(S2TMemoryTests, MemoryLowerBoundIsPositive) { + SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, + VALID_TOKENIZER_PATH, nullptr); + EXPECT_GT(model.getMemoryLowerBound(), 0u); +} + +TEST(S2TUnloadTests, TranscribeAfterUnloadThrows) { + SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, + VALID_TOKENIZER_PATH, nullptr); + model.unload(); + auto audio = loadAudioFromFile("test_audio_float.raw"); + ASSERT_FALSE(audio.empty()); + EXPECT_THROW(model.transcribe(audio, "en"), RnExecutorchError); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/StyleTransferTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/StyleTransferTest.cpp new file mode 100644 index 000000000..ad4059474 --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/StyleTransferTest.cpp @@ -0,0 +1,91 @@ +#include "TestUtils.h" +#include +#include +#include +#include +#include + +using namespace rnexecutorch; +using namespace rnexecutorch::models::style_transfer; + +constexpr auto VALID_STYLE_TRANSFER_MODEL_PATH = + "style_transfer_candy_xnnpack.pte"; +constexpr auto VALID_TEST_IMAGE_PATH = + "file:///data/local/tmp/rnexecutorch_tests/test_image.jpg"; + +TEST(StyleTransferCtorTests, InvalidPathThrows) { + EXPECT_THROW(StyleTransfer("this_file_does_not_exist.pte", nullptr), + RnExecutorchError); +} + +TEST(StyleTransferCtorTests, ValidPathDoesntThrow) { + EXPECT_NO_THROW(StyleTransfer(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr)); +} + +TEST(StyleTransferGenerateTests, InvalidImagePathThrows) { + StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + EXPECT_THROW(model.generate("nonexistent_image.jpg"), RnExecutorchError); +} + +TEST(StyleTransferGenerateTests, ValidImageReturnsFilePath) { + StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + auto result = model.generate(VALID_TEST_IMAGE_PATH); + EXPECT_FALSE(result.empty()); +} + +TEST(StyleTransferGenerateTests, ResultIsValidFilePath) { + StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + auto result = model.generate(VALID_TEST_IMAGE_PATH); + test_utils::trimFilePrefix(result); + EXPECT_TRUE(std::filesystem::exists(result)); +} + +TEST(StyleTransferGenerateTests, ResultFileHasContent) { + StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + auto result = model.generate(VALID_TEST_IMAGE_PATH); + test_utils::trimFilePrefix(result); + auto fileSize = std::filesystem::file_size(result); + EXPECT_GT(fileSize, 0u); +} + +TEST(StyleTransferGenerateTests, MultipleGeneratesWork) { + StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + EXPECT_NO_THROW(model.generate(VALID_TEST_IMAGE_PATH)); + auto result1 = model.generate(VALID_TEST_IMAGE_PATH); + auto result2 = model.generate(VALID_TEST_IMAGE_PATH); + test_utils::trimFilePrefix(result1); + test_utils::trimFilePrefix(result2); + EXPECT_TRUE(std::filesystem::exists(result1)); + EXPECT_TRUE(std::filesystem::exists(result2)); +} + +TEST(StyleTransferUnloadTests, GenerateAfterUnloadThrows) { + StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + model.unload(); + EXPECT_THROW(model.generate(VALID_TEST_IMAGE_PATH), RnExecutorchError); +} + +TEST(StyleTransferInheritedTests, GetInputShapeWorks) { + StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + auto shape = model.getInputShape("forward", 0); + EXPECT_EQ(shape.size(), 4); + EXPECT_EQ(shape[0], 1); + EXPECT_EQ(shape[1], 3); +} + +TEST(StyleTransferInheritedTests, GetAllInputShapesWorks) { + StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + auto shapes = model.getAllInputShapes("forward"); + EXPECT_FALSE(shapes.empty()); +} + +TEST(StyleTransferInheritedTests, GetMethodMetaWorks) { + StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + auto result = model.getMethodMeta("forward"); + EXPECT_TRUE(result.ok()); +} + +TEST(StyleTransferInheritedTests, GetMemoryLowerBoundReturnsPositive) { + StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + EXPECT_GT(model.getMemoryLowerBound(), 0u); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/TestUtils.h b/packages/react-native-executorch/common/rnexecutorch/tests/TestUtils.h new file mode 100644 index 000000000..85222b4b2 --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/TestUtils.h @@ -0,0 +1,49 @@ +#pragma once + +#include +#include +#include +#include + +namespace test_utils { + +inline void trimFilePrefix(std::string &filepath) { + constexpr std::string_view prefix = "file://"; + if (filepath.starts_with(prefix)) { + filepath.erase(0, prefix.size()); + } +} + +inline std::vector loadAudioFromFile(const std::string &filepath) { + std::ifstream file(filepath, std::ios::binary | std::ios::ate); + if (!file.is_open()) { + return {}; + } + + std::streamsize size = file.tellg(); + file.seekg(0, std::ios::beg); + + size_t numSamples = size / sizeof(float); + std::vector buffer(numSamples); + + file.read(reinterpret_cast(buffer.data()), size); + return buffer; +} + +inline std::vector generateSilence(size_t numSamples) { + return std::vector(numSamples, 0.0f); +} + +inline std::vector generateSpeechLikeAudio(size_t numSamples, + size_t sampleRate = 16000) { + std::vector waveform(numSamples); + for (size_t i = 0; i < numSamples; ++i) { + float t = static_cast(i) / sampleRate; + waveform[i] = 0.3f * std::sin(2.0f * M_PI * 200.0f * t) + + 0.2f * std::sin(2.0f * M_PI * 400.0f * t) + + 0.1f * std::sin(2.0f * M_PI * 800.0f * t); + } + return waveform; +} + +} // namespace test_utils diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/TextEmbeddingsTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/TextEmbeddingsTest.cpp new file mode 100644 index 000000000..00b5b3bdf --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/TextEmbeddingsTest.cpp @@ -0,0 +1,158 @@ +#include +#include +#include +#include +#include + +using namespace rnexecutorch; +using namespace rnexecutorch::models::embeddings; + +constexpr auto VALID_TEXT_EMBEDDINGS_MODEL_PATH = + "all-MiniLM-L6-v2_xnnpack.pte"; +constexpr auto VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH = "tokenizer.json"; +constexpr size_t MINILM_EMBEDDING_DIMENSIONS = 384; + +TEST(TextEmbeddingsCtorTests, InvalidModelPathThrows) { + EXPECT_THROW(TextEmbeddings("this_file_does_not_exist.pte", + VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr), + RnExecutorchError); +} + +TEST(TextEmbeddingsCtorTests, InvalidTokenizerPathThrows) { + EXPECT_THROW(TextEmbeddings(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + "this_tokenizer_does_not_exist.json", nullptr), + std::exception); +} + +TEST(TextEmbeddingsCtorTests, ValidPathsDoesntThrow) { + EXPECT_NO_THROW(TextEmbeddings(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, + nullptr)); +} + +TEST(TextEmbeddingsGenerateTests, EmptyStringReturnsResults) { + TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + auto result = model.generate(""); + EXPECT_NE(result, nullptr); + EXPECT_GT(result->size(), 0u); +} + +TEST(TextEmbeddingsGenerateTests, ValidTextReturnsResults) { + TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + auto result = model.generate("Hello, world!"); + EXPECT_NE(result, nullptr); + EXPECT_GT(result->size(), 0u); +} + +TEST(TextEmbeddingsGenerateTests, ResultsHaveCorrectSize) { + TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + auto result = model.generate("This is a test sentence."); + size_t numFloats = result->size() / sizeof(float); + EXPECT_EQ(numFloats, MINILM_EMBEDDING_DIMENSIONS); +} + +TEST(TextEmbeddingsGenerateTests, ResultsAreNormalized) { + TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + auto result = model.generate("The quick brown fox jumps over the lazy dog."); + + const float *data = reinterpret_cast(result->data()); + size_t numFloats = result->size() / sizeof(float); + + float sumOfSquares = 0.0f; + for (size_t i = 0; i < numFloats; ++i) { + sumOfSquares += data[i] * data[i]; + } + float norm = std::sqrt(sumOfSquares); + EXPECT_NEAR(norm, 1.0f, 0.01f); +} + +TEST(TextEmbeddingsGenerateTests, ResultsContainValidValues) { + TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + auto result = model.generate("Testing valid values."); + + const float *data = reinterpret_cast(result->data()); + size_t numFloats = result->size() / sizeof(float); + + for (size_t i = 0; i < numFloats; ++i) { + EXPECT_FALSE(std::isnan(data[i])); + EXPECT_FALSE(std::isinf(data[i])); + } +} + +TEST(TextEmbeddingsGenerateTests, DifferentTextProducesDifferentEmbeddings) { + TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + + auto result1 = model.generate("Hello, world!"); + auto result2 = model.generate("Goodbye, moon!"); + + const float *data1 = reinterpret_cast(result1->data()); + const float *data2 = reinterpret_cast(result2->data()); + size_t numFloats = result1->size() / sizeof(float); + + bool allEqual = true; + for (size_t i = 0; i < numFloats; ++i) { + if (std::abs(data1[i] - data2[i]) > 1e-6f) { + allEqual = false; + break; + } + } + EXPECT_FALSE(allEqual); +} + +TEST(TextEmbeddingsGenerateTests, SimilarTextProducesSimilarEmbeddings) { + TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + + auto result1 = model.generate("I love programming"); + auto result2 = model.generate("I enjoy coding"); + + const float *data1 = reinterpret_cast(result1->data()); + const float *data2 = reinterpret_cast(result2->data()); + size_t numFloats = result1->size() / sizeof(float); + + float dotProduct = 0.0f; + for (size_t i = 0; i < numFloats; ++i) { + dotProduct += data1[i] * data2[i]; + } + EXPECT_GT(dotProduct, 0.5f); +} + +TEST(TextEmbeddingsUnloadTests, GenerateAfterUnloadThrows) { + TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + model.unload(); + EXPECT_THROW(model.generate("Test"), RnExecutorchError); +} + +TEST(TextEmbeddingsInheritedTests, GetInputShapeWorks) { + TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + auto shape = model.getInputShape("forward", 0); + EXPECT_GE(shape.size(), 2u); +} + +TEST(TextEmbeddingsInheritedTests, GetAllInputShapesWorks) { + TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + auto shapes = model.getAllInputShapes("forward"); + EXPECT_FALSE(shapes.empty()); +} + +TEST(TextEmbeddingsInheritedTests, GetMethodMetaWorks) { + TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + auto result = model.getMethodMeta("forward"); + EXPECT_TRUE(result.ok()); +} + +TEST(TextEmbeddingsInheritedTests, GetMemoryLowerBoundReturnsPositive) { + TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + EXPECT_GT(model.getMemoryLowerBound(), 0u); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/TokenizerModuleTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/TokenizerModuleTest.cpp new file mode 100644 index 000000000..9e28754ab --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/TokenizerModuleTest.cpp @@ -0,0 +1,88 @@ +#include +#include +#include +#include +#include + +using namespace rnexecutorch; + +constexpr auto VALID_TOKENIZER_PATH = "tokenizer.json"; + +TEST(TokenizerCtorTests, InvalidPathThrows) { + EXPECT_THROW(TokenizerModule("nonexistent_tokenizer.json", nullptr), + RnExecutorchError); +} + +TEST(TokenizerCtorTests, ValidPathDoesntThrow) { + EXPECT_NO_THROW(TokenizerModule(VALID_TOKENIZER_PATH, nullptr)); +} + +TEST(TokenizerEncodeTests, EmptyStringReturnsEmptyString) { + TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + auto tokens = tokenizer.encode(""); + EXPECT_TRUE(tokens.empty()); +} + +TEST(TokenizerEncodeTests, SimpleTextReturnsTokens) { + TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + auto tokens = tokenizer.encode("Hello world"); + EXPECT_GT(tokens.size(), 0u); +} + +TEST(TokenizerEncodeTests, SameTextReturnsSameTokens) { + TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + auto tokens1 = tokenizer.encode("test"); + auto tokens2 = tokenizer.encode("test"); + EXPECT_EQ(tokens1, tokens2); +} + +TEST(TokenizerEncodeTests, DifferentTextReturnsDifferentTokens) { + TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + auto tokens1 = tokenizer.encode("hello"); + auto tokens2 = tokenizer.encode("goodbye"); + EXPECT_NE(tokens1, tokens2); +} + +TEST(TokenizerDecodeTests, DecodeEncodedTextReturnsOriginal) { + TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + std::string original = "szponcik"; + auto tokens = tokenizer.encode(original); + auto decoded = tokenizer.decode(tokens, true); + EXPECT_EQ(decoded, original); +} + +TEST(TokenizerDecodeTests, DecodeEmptyVectorReturnsEmpty) { + TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + auto decoded = tokenizer.decode({}, true); + EXPECT_TRUE(decoded.empty()); +} + +TEST(TokenizerIdToTokenTests, ValidIdReturnsToken) { + TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + auto token = tokenizer.idToToken(0); + EXPECT_FALSE(token.empty()); +} + +TEST(TokenizerTokenToIdTests, RoundTripWorks) { + TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + auto token = tokenizer.idToToken(100); + auto id = tokenizer.tokenToId(token); + EXPECT_EQ(id, 100); +} + +TEST(TokenizerVocabTests, VocabSizeIsPositive) { + TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + EXPECT_GT(tokenizer.getVocabSize(), 0u); +} + +TEST(TokenizerVocabTests, VocabSizeIsReasonable) { + TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + auto vocabSize = tokenizer.getVocabSize(); + EXPECT_GT(vocabSize, 1000u); + EXPECT_LT(vocabSize, 1000000u); +} + +TEST(TokenizerMemoryTests, MemoryLowerBoundIsPositive) { + TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + EXPECT_GT(tokenizer.getMemoryLowerBound(), 0u); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/VoiceActivityDetectionTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/VoiceActivityDetectionTest.cpp new file mode 100644 index 000000000..6f2441e6c --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/VoiceActivityDetectionTest.cpp @@ -0,0 +1,91 @@ +#include "TestUtils.h" +#include +#include +#include + +using namespace rnexecutorch; +using namespace rnexecutorch::models::voice_activity_detection; +using namespace test_utils; + +constexpr auto VALID_VAD_MODEL_PATH = "fsmn-vad_xnnpack.pte"; + +TEST(VADCtorTests, InvalidPathThrows) { + EXPECT_THROW(VoiceActivityDetection("this_file_does_not_exist.pte", nullptr), + RnExecutorchError); +} + +TEST(VADCtorTests, ValidPathDoesntThrow) { + EXPECT_NO_THROW(VoiceActivityDetection(VALID_VAD_MODEL_PATH, nullptr)); +} + +TEST(VADGenerateTests, SilenceReturnsNoSegments) { + VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + auto silence = generateSilence(16000 * 5); + auto segments = model.generate(silence); + EXPECT_TRUE(segments.empty()); +} + +TEST(VADGenerateTests, SegmentsHaveValidBounds) { + VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + auto audio = loadAudioFromFile("test_audio_float.raw"); + ASSERT_FALSE(audio.empty()); + auto segments = model.generate(audio); + + for (const auto &segment : segments) { + EXPECT_LE(segment.start, segment.end); + EXPECT_LE(segment.end, audio.size()); + } +} + +TEST(VADGenerateTests, SegmentsAreNonOverlapping) { + VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + auto audio = loadAudioFromFile("test_audio_float.raw"); + ASSERT_FALSE(audio.empty()); + auto segments = model.generate(audio); + for (size_t i = 1; i < segments.size(); ++i) { + EXPECT_LE(segments[i - 1].end, segments[i].start); + } +} + +TEST(VADGenerateTests, LongAudioSegmentBoundsValid) { + VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + auto audio = loadAudioFromFile("test_audio_float.raw"); + ASSERT_FALSE(audio.empty()); + auto segments = model.generate(audio); + + for (const auto &segment : segments) { + EXPECT_LE(segment.start, segment.end); + EXPECT_LE(segment.end, audio.size()); + } +} + +TEST(VADUnloadTests, GenerateAfterUnloadThrows) { + VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + model.unload(); + auto audio = loadAudioFromFile("test_audio_float.raw"); + ASSERT_FALSE(audio.empty()); + EXPECT_THROW((void)model.generate(audio), RnExecutorchError); +} + +TEST(VADInheritedTests, GetInputShapeWorks) { + VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + auto shape = model.getInputShape("forward", 0); + EXPECT_GE(shape.size(), 2u); +} + +TEST(VADInheritedTests, GetAllInputShapesWorks) { + VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + auto shapes = model.getAllInputShapes("forward"); + EXPECT_FALSE(shapes.empty()); +} + +TEST(VADInheritedTests, GetMethodMetaWorks) { + VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + auto result = model.getMethodMeta("forward"); + EXPECT_TRUE(result.ok()); +} + +TEST(VADInheritedTests, GetMemoryLowerBoundReturnsPositive) { + VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + EXPECT_GT(model.getMemoryLowerBound(), 0u); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh index 407b99aae..737a2b5d4 100755 --- a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh +++ b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh @@ -1,10 +1,10 @@ #!/bin/bash set -e -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -PACKAGE_ROOT="$SCRIPT_DIR/../../.." -ANDROID_ABI="arm64-v8a" -ANDROID_LIBS_DIR="$PACKAGE_ROOT/third-party/android/libs" +if ! adb shell ":"; then + echo "ERROR: ADB SHELL COULDN'T RUN SUCCESFULLY" + exit 1 +fi echo "ANDROID_NDK = $ANDROID_NDK" if [ -z "$ANDROID_NDK" ]; then @@ -12,6 +12,11 @@ if [ -z "$ANDROID_NDK" ]; then exit 1 fi +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PACKAGE_ROOT="$SCRIPT_DIR/../../.." +ANDROID_ABI="arm64-v8a" +ANDROID_LIBS_DIR="$PACKAGE_ROOT/third-party/android/libs" + DEVICE_TEST_DIR="/data/local/tmp/rnexecutorch_tests" # cleanup build artifacts @@ -30,44 +35,56 @@ make adb shell "mkdir -p $DEVICE_TEST_DIR" -TEST_EXECUTABLES=("NumericalTests" "LogTests" "BaseModelTests" "ClassificationTests" "ObjectDetectionTests") +TEST_EXECUTABLES=("NumericalTests" "LogTests" "BaseModelTests" "ClassificationTests" "ObjectDetectionTests" "ImageEmbeddingsTests" "TextEmbeddingsTests" "StyleTransferTests" "VADTests" "TokenizerModuleTests" "SpeechToTextTests") # push test executables to device echo "Pushing test executables to device..." for test_exe in "${TEST_EXECUTABLES[@]}"; do if [ -f "$test_exe" ]; then - adb push "$test_exe" "$DEVICE_TEST_DIR/" + adb push "$test_exe" "$DEVICE_TEST_DIR/" >/dev/null adb shell "chmod +x $DEVICE_TEST_DIR/$test_exe" fi done -# download models needed for the tests & push to device -wget https://huggingface.co/software-mansion/react-native-executorch-style-transfer-candy/resolve/main/xnnpack/style_transfer_candy_xnnpack.pte -adb push "style_transfer_candy_xnnpack.pte" "$DEVICE_TEST_DIR/" +# Push test audio to device +adb push ../test_audio_float.raw $DEVICE_TEST_DIR >/dev/null -wget https://huggingface.co/software-mansion/react-native-executorch-efficientnet-v2-s/resolve/v0.6.0/xnnpack/efficientnet_v2_s_xnnpack.pte -adb push "efficientnet_v2_s_xnnpack.pte" "$DEVICE_TEST_DIR/" - -wget https://huggingface.co/software-mansion/react-native-executorch-ssdlite320-mobilenet-v3-large/resolve/v0.6.0/ssdlite320-mobilenetv3-large.pte -adb push "ssdlite320-mobilenetv3-large.pte" "$DEVICE_TEST_DIR/" - -# download test image for classification/object detection tests -wget -O test_image.jpg https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Cat_November_2010-1a.jpg/1200px-Cat_November_2010-1a.jpg -adb push "test_image.jpg" "$DEVICE_TEST_DIR/" +# download models needed for the tests & push to device +echo "Downloading models..." +wget -q https://huggingface.co/software-mansion/react-native-executorch-style-transfer-candy/resolve/main/xnnpack/style_transfer_candy_xnnpack.pte +wget -q https://huggingface.co/software-mansion/react-native-executorch-efficientnet-v2-s/resolve/v0.6.0/xnnpack/efficientnet_v2_s_xnnpack.pte +wget -q https://huggingface.co/software-mansion/react-native-executorch-ssdlite320-mobilenet-v3-large/resolve/v0.6.0/ssdlite320-mobilenetv3-large.pte +wget -q -O test_image.jpg https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Cat_November_2010-1a.jpg/1200px-Cat_November_2010-1a.jpg +wget -q https://huggingface.co/software-mansion/react-native-executorch-clip-vit-base-patch32/resolve/v0.6.0/clip-vit-base-patch32-vision_xnnpack.pte +wget -q https://huggingface.co/software-mansion/react-native-executorch-all-MiniLM-L6-v2/resolve/v0.6.0/all-MiniLM-L6-v2_xnnpack.pte +wget -q -O tokenizer.json https://huggingface.co/software-mansion/react-native-executorch-all-MiniLM-L6-v2/resolve/v0.6.0/tokenizer.json +wget -q https://huggingface.co/software-mansion/react-native-executorch-fsmn-vad/resolve/main/xnnpack/fsmn-vad_xnnpack.pte +wget -q https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/main/xnnpack/whisper_tiny_en_encoder_xnnpack.pte +wget -q https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/main/xnnpack/whisper_tiny_en_decoder_xnnpack.pte +wget -q -O whisper_tokenizer.json https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/v0.6.0/tokenizer.json + +echo "Pushing models to device..." +adb push "style_transfer_candy_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null +adb push "efficientnet_v2_s_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null +adb push "ssdlite320-mobilenetv3-large.pte" "$DEVICE_TEST_DIR/" >/dev/null +adb push "test_image.jpg" "$DEVICE_TEST_DIR/" >/dev/null +adb push "clip-vit-base-patch32-vision_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null +adb push "all-MiniLM-L6-v2_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null +adb push "tokenizer.json" "$DEVICE_TEST_DIR/" >/dev/null +adb push "fsmn-vad_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null +adb push "whisper_tiny_en_encoder_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null +adb push "whisper_tiny_en_decoder_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null +adb push "whisper_tokenizer.json" "$DEVICE_TEST_DIR/" >/dev/null # push shared libraries needed by BaseModelTests echo "Pushing shared libraries to device..." GRADLE_LIBS="$PACKAGE_ROOT/android/build/intermediates/cmake/release/obj/$ANDROID_ABI" -# Push executorch as libexecutorch_jni.so (the lib expects this name) -adb push "$ANDROID_LIBS_DIR/executorch/$ANDROID_ABI/libexecutorch.so" "$DEVICE_TEST_DIR/libexecutorch_jni.so" +adb push "$ANDROID_LIBS_DIR/executorch/$ANDROID_ABI/libexecutorch.so" "$DEVICE_TEST_DIR/libexecutorch_jni.so" >/dev/null -# Push dependencies used by libexecutorch.so for lib in libfbjni.so libpthreadpool.so libcpuinfo.so libc++_shared.so; do if [ -f "$GRADLE_LIBS/$lib" ]; then - adb push "$GRADLE_LIBS/$lib" "$DEVICE_TEST_DIR/" - else - echo "Warning: $lib not found" + adb push "$GRADLE_LIBS/$lib" "$DEVICE_TEST_DIR/" >/dev/null fi done diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/stubs/jsi_stubs.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/stubs/jsi_stubs.cpp index 75526e88c..ec48b5743 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/stubs/jsi_stubs.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/stubs/jsi_stubs.cpp @@ -12,7 +12,8 @@ namespace facebook::jsi { // MutableBuffer destructor - needed by OwningArrayBuffer // Don't stub Runtime - it has too many virtual methods MutableBuffer::~MutableBuffer() {} - +Value::~Value() {} +Value::Value(Value &&other) noexcept {} } // namespace facebook::jsi namespace rnexecutorch { From bbe3291a36c1af1efe4a619f7d0045ce94059157 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Wed, 21 Jan 2026 15:17:54 +0100 Subject: [PATCH 07/29] feat: add llm tests --- .../common/rnexecutorch/models/llm/LLM.cpp | 20 ++- .../common/rnexecutorch/models/llm/LLM.h | 3 +- .../common/rnexecutorch/tests/CMakeLists.txt | 25 ++++ .../common/rnexecutorch/tests/LLMTest.cpp | 135 ++++++++++++++++++ .../common/rnexecutorch/tests/run_tests.sh | 6 +- 5 files changed, 181 insertions(+), 8 deletions(-) create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/LLMTest.cpp diff --git a/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.cpp b/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.cpp index 53d035afd..5bcdce1ff 100644 --- a/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.cpp @@ -28,17 +28,23 @@ LLM::LLM(const std::string &modelSource, const std::string &tokenizerSource, } // TODO: add a way to manipulate the generation config with params -void LLM::generate(std::string input, std::shared_ptr callback) { +std::string LLM::generate(std::string input, + std::shared_ptr callback) { if (!runner || !runner->is_loaded()) { throw RnExecutorchError(RnExecutorchErrorCode::ModuleNotLoaded, "Runner is not loaded"); } - // Create a native callback that will invoke the JS callback on the JS thread - auto nativeCallback = [this, callback](const std::string &token) { - callInvoker->invokeAsync([callback, token](jsi::Runtime &runtime) { - callback->call(runtime, jsi::String::createFromUtf8(runtime, token)); - }); + std::string output; + + // Create a native callback that accumulates tokens and optionally invokes JS + auto nativeCallback = [this, callback, &output](const std::string &token) { + output += token; + if (callback && callInvoker) { + callInvoker->invokeAsync([callback, token](jsi::Runtime &runtime) { + callback->call(runtime, jsi::String::createFromUtf8(runtime, token)); + }); + } }; auto config = llm::GenerationConfig{.echo = false, .warming = false}; @@ -46,6 +52,8 @@ void LLM::generate(std::string input, std::shared_ptr callback) { if (error != executorch::runtime::Error::Ok) { throw RnExecutorchError(error, "Failed to generate text"); } + + return output; } void LLM::interrupt() { diff --git a/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.h b/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.h index 5ba83df8c..6b778f56c 100644 --- a/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.h +++ b/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.h @@ -18,7 +18,8 @@ class LLM : public BaseModel { const std::string &tokenizerSource, std::shared_ptr callInvoker); - void generate(std::string input, std::shared_ptr callback); + std::string generate(std::string input, + std::shared_ptr callback); void interrupt(); void unload() noexcept; size_t getGeneratedTokenCount() const noexcept; diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt index a38d64086..dbf5c4d2d 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt +++ b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt @@ -70,6 +70,16 @@ set(S2T_SOURCES ${RNEXECUTORCH_DIR}/models/speech_to_text/stream/HypothesisBuffer.cpp ${RNEXECUTORCH_DIR}/models/speech_to_text/stream/OnlineASRProcessor.cpp ) +set(RUNNER_SOURCES + ${COMMON_DIR}/runner/runner.cpp + ${COMMON_DIR}/runner/text_prefiller.cpp + ${COMMON_DIR}/runner/text_decoder_runner.cpp + ${COMMON_DIR}/runner/sampler.cpp + ${COMMON_DIR}/runner/arange_util.cpp +) +set(LLM_SOURCES + ${RNEXECUTORCH_DIR}/models/llm/LLM.cpp +) # Stubs for mocking JSI/React Native symbols set(JSI_STUBS ${CMAKE_SOURCE_DIR}/stubs/jsi_stubs.cpp) @@ -166,6 +176,12 @@ add_executable(SpeechToTextTests SpeechToTextTest.cpp ${DSP_SOURCES} ${JSI_STUBS} ) +add_executable(LLMTests LLMTest.cpp + ${LLM_SOURCES} + ${RUNNER_SOURCES} + ${BASEMODEL_SOURCES} + ${JSI_STUBS} +) # Libraries linking target_link_libraries(NumericalTests gtest gtest_main) @@ -252,6 +268,14 @@ target_link_libraries(SpeechToTextTests gtest_main log ) +target_link_libraries(LLMTests + PRIVATE + ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so + ${TOKENIZERS_LIBS} + gtest + gtest_main + log +) # Add 16kB page size set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,max-page-size=16384") @@ -270,3 +294,4 @@ add_test(NAME StyleTransferTests COMMAND StyleTransferTests) add_test(NAME VADTests COMMAND VADTests) add_test(NAME TokenizerModuleTests COMMAND TokenizerModuleTests) add_test(NAME SpeechToTextTests COMMAND SpeechToTextTests) +add_test(NAME LLMTests COMMAND LLMTests) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/LLMTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/LLMTest.cpp new file mode 100644 index 000000000..bea72c9dc --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/LLMTest.cpp @@ -0,0 +1,135 @@ +#include +#include +#include +#include + +#include +#include +#include + +using namespace rnexecutorch; +using namespace rnexecutorch::models::llm; + +constexpr auto VALID_MODEL_PATH = "smolLm2_135M_8da4w.pte"; +constexpr auto VALID_TOKENIZER_PATH = "smollm_tokenizer.json"; +constexpr auto SYSTEM_PROMPT = "You are a helpful assistant. Assist the user " + "to the best of your abilities."; + +// Forward declaration from jsi_stubs.cpp +namespace rnexecutorch { +std::shared_ptr createMockCallInvoker(); +} + +// Helper to format prompt in ChatML format for SmolLM2 +std::string formatChatML(const std::string &systemPrompt, + const std::string &userMessage) { + return "<|im_start|>system\n" + systemPrompt + "<|im_end|>\n" + + "<|im_start|>user\n" + userMessage + "<|im_end|>\n" + + "<|im_start|>assistant\n"; +} + +class LLMTest : public ::testing::Test { +protected: + std::shared_ptr mockInvoker_; + + void SetUp() override { mockInvoker_ = createMockCallInvoker(); } +}; + +TEST_F(LLMTest, LoadModel) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + // Model loads in constructor, if we get here it succeeded + SUCCEED(); +} + +TEST_F(LLMTest, GetMemoryLowerBound) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + size_t memoryBound = model.getMemoryLowerBound(); + // Should be at least the size of the model file + EXPECT_GT(memoryBound, 0); + std::cout << "Memory lower bound: " << memoryBound << " bytes" << std::endl; +} + +TEST_F(LLMTest, GetGeneratedTokenCountInitiallyZero) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + EXPECT_EQ(model.getGeneratedTokenCount(), 0); +} + +TEST_F(LLMTest, SetTemperature) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + // Should not throw + EXPECT_NO_THROW(model.setTemperature(0.5f)); + EXPECT_NO_THROW(model.setTemperature(1.0f)); + EXPECT_NO_THROW(model.setTemperature(0.0f)); +} + +TEST_F(LLMTest, SetTopp) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + // Should not throw + EXPECT_NO_THROW(model.setTopp(0.9f)); + EXPECT_NO_THROW(model.setTopp(0.5f)); + EXPECT_NO_THROW(model.setTopp(1.0f)); +} + +TEST_F(LLMTest, SetCountInterval) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + EXPECT_NO_THROW(model.setCountInterval(5)); + EXPECT_NO_THROW(model.setCountInterval(10)); +} + +TEST_F(LLMTest, SetTimeInterval) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + EXPECT_NO_THROW(model.setTimeInterval(100)); + EXPECT_NO_THROW(model.setTimeInterval(500)); +} + +TEST_F(LLMTest, UnloadModel) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + EXPECT_NO_THROW(model.unload()); + // After unload, generated token count should still return 0 + EXPECT_EQ(model.getGeneratedTokenCount(), 0); +} + +TEST_F(LLMTest, InterruptThrowsWhenUnloaded) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + model.unload(); + // Should throw since model is unloaded + EXPECT_THROW(model.interrupt(), RnExecutorchError); +} + +TEST_F(LLMTest, SettersThrowWhenUnloaded) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + model.unload(); + // All setters should throw when model is unloaded + EXPECT_THROW(model.setTemperature(0.5f), RnExecutorchError); + EXPECT_THROW(model.setTopp(0.9f), RnExecutorchError); + EXPECT_THROW(model.setCountInterval(5), RnExecutorchError); + EXPECT_THROW(model.setTimeInterval(100), RnExecutorchError); +} + +TEST_F(LLMTest, GenerateProducesOutput) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + std::string prompt = + formatChatML(SYSTEM_PROMPT, "Repeat exactly this: `naszponcilem testy`"); + std::string output = model.generate(prompt, nullptr); + EXPECT_FALSE(output.empty()); + std::cout << "Generated: " << output << std::endl; +} + +TEST_F(LLMTest, GenerateUpdatesTokenCount) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + EXPECT_EQ(model.getGeneratedTokenCount(), 0); + std::string prompt = + formatChatML(SYSTEM_PROMPT, "Repeat exactly this: 'naszponcilem testy'"); + model.generate(prompt, nullptr); + EXPECT_GT(model.getGeneratedTokenCount(), 0); + std::cout << "Generated tokens: " << model.getGeneratedTokenCount() + << std::endl; +} + +TEST_F(LLMTest, GenerateThrowsWhenUnloaded) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + model.unload(); + std::string prompt = + formatChatML(SYSTEM_PROMPT, "Repeat exactly this: `naszponcilem testy`"); + EXPECT_THROW(model.generate(prompt, nullptr), RnExecutorchError); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh index 737a2b5d4..7e420daad 100755 --- a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh +++ b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh @@ -35,7 +35,7 @@ make adb shell "mkdir -p $DEVICE_TEST_DIR" -TEST_EXECUTABLES=("NumericalTests" "LogTests" "BaseModelTests" "ClassificationTests" "ObjectDetectionTests" "ImageEmbeddingsTests" "TextEmbeddingsTests" "StyleTransferTests" "VADTests" "TokenizerModuleTests" "SpeechToTextTests") +TEST_EXECUTABLES=("NumericalTests" "LogTests" "BaseModelTests" "ClassificationTests" "ObjectDetectionTests" "ImageEmbeddingsTests" "TextEmbeddingsTests" "StyleTransferTests" "VADTests" "TokenizerModuleTests" "SpeechToTextTests" "LLMTests") # push test executables to device echo "Pushing test executables to device..." @@ -62,6 +62,8 @@ wget -q https://huggingface.co/software-mansion/react-native-executorch-fsmn-vad wget -q https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/main/xnnpack/whisper_tiny_en_encoder_xnnpack.pte wget -q https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/main/xnnpack/whisper_tiny_en_decoder_xnnpack.pte wget -q -O whisper_tokenizer.json https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/v0.6.0/tokenizer.json +wget -q https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.6.0/smolLm-2-135M/quantized/smolLm2_135M_8da4w.pte +wget -q -O smollm_tokenizer.json https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.6.0/tokenizer.json echo "Pushing models to device..." adb push "style_transfer_candy_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null @@ -75,6 +77,8 @@ adb push "fsmn-vad_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null adb push "whisper_tiny_en_encoder_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null adb push "whisper_tiny_en_decoder_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null adb push "whisper_tokenizer.json" "$DEVICE_TEST_DIR/" >/dev/null +adb push "smolLm2_135M_8da4w.pte" "$DEVICE_TEST_DIR/" >/dev/null +adb push "smollm_tokenizer.json" "$DEVICE_TEST_DIR/" >/dev/null # push shared libraries needed by BaseModelTests echo "Pushing shared libraries to device..." From c885a9918548ac438032d43bbd53322e2982e4b0 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Wed, 21 Jan 2026 15:33:54 +0100 Subject: [PATCH 08/29] chore: remove logs, add jsi stubs --- .../common/rnexecutorch/tests/LLMTest.cpp | 4 ---- .../rnexecutorch/tests/stubs/jsi_stubs.cpp | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/LLMTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/LLMTest.cpp index bea72c9dc..44162260e 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/LLMTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/LLMTest.cpp @@ -46,7 +46,6 @@ TEST_F(LLMTest, GetMemoryLowerBound) { size_t memoryBound = model.getMemoryLowerBound(); // Should be at least the size of the model file EXPECT_GT(memoryBound, 0); - std::cout << "Memory lower bound: " << memoryBound << " bytes" << std::endl; } TEST_F(LLMTest, GetGeneratedTokenCountInitiallyZero) { @@ -112,7 +111,6 @@ TEST_F(LLMTest, GenerateProducesOutput) { formatChatML(SYSTEM_PROMPT, "Repeat exactly this: `naszponcilem testy`"); std::string output = model.generate(prompt, nullptr); EXPECT_FALSE(output.empty()); - std::cout << "Generated: " << output << std::endl; } TEST_F(LLMTest, GenerateUpdatesTokenCount) { @@ -122,8 +120,6 @@ TEST_F(LLMTest, GenerateUpdatesTokenCount) { formatChatML(SYSTEM_PROMPT, "Repeat exactly this: 'naszponcilem testy'"); model.generate(prompt, nullptr); EXPECT_GT(model.getGeneratedTokenCount(), 0); - std::cout << "Generated tokens: " << model.getGeneratedTokenCount() - << std::endl; } TEST_F(LLMTest, GenerateThrowsWhenUnloaded) { diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/stubs/jsi_stubs.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/stubs/jsi_stubs.cpp index ec48b5743..6735e4cd6 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/stubs/jsi_stubs.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/stubs/jsi_stubs.cpp @@ -1,6 +1,7 @@ // Stub implementations for JSI and other symbols to satisfy the linker // These are never actually called in tests +#include #include #include #include @@ -16,6 +17,18 @@ Value::~Value() {} Value::Value(Value &&other) noexcept {} } // namespace facebook::jsi +namespace facebook::react { + +// Needed by LLM test +class MockCallInvoker : public CallInvoker { +public: + void invokeAsync(CallFunc &&func) noexcept override {} + + void invokeSync(CallFunc &&func) override {} +}; + +} // namespace facebook::react + namespace rnexecutorch { // Stub for fetchUrlFunc - used by ImageProcessing for remote URLs @@ -25,4 +38,9 @@ FetchUrlFunc_t fetchUrlFunc = [](std::string) -> std::vector { return {}; }; +// Global mock call invoker for tests +std::shared_ptr createMockCallInvoker() { + return std::make_shared(); +} + } // namespace rnexecutorch From 34cdb669247106a71313f6056e77878b2039af4a Mon Sep 17 00:00:00 2001 From: chmjkb Date: Thu, 22 Jan 2026 09:07:03 +0100 Subject: [PATCH 09/29] chore: void cast to avoid [[nodiscard]] warnings --- .../common/rnexecutorch/tests/BaseModelTest.cpp | 8 ++++---- .../common/rnexecutorch/tests/ClassificationTest.cpp | 5 +++-- .../common/rnexecutorch/tests/ImageEmbeddingsTest.cpp | 5 +++-- .../common/rnexecutorch/tests/LLMTest.cpp | 1 - .../common/rnexecutorch/tests/LogTest.cpp | 1 - .../common/rnexecutorch/tests/ObjectDetectionTest.cpp | 6 ++++-- .../common/rnexecutorch/tests/SpeechToTextTest.cpp | 2 +- .../common/rnexecutorch/tests/StyleTransferTest.cpp | 7 ++++--- .../common/rnexecutorch/tests/TextEmbeddingsTest.cpp | 2 +- 9 files changed, 20 insertions(+), 17 deletions(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/BaseModelTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/BaseModelTest.cpp index 033806b21..2ffc21af7 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/BaseModelTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/BaseModelTest.cpp @@ -31,14 +31,14 @@ TEST(BaseModelGetInputShapeTests, ValidMethodCorrectShape) { TEST(BaseModelGetInputShapeTests, InvalidMethodThrows) { BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); - EXPECT_THROW(model.getInputShape("this_method_does_not_exist", 0), + EXPECT_THROW((void)model.getInputShape("this_method_does_not_exist", 0), RnExecutorchError); } TEST(BaseModelGetInputShapeTests, ValidMethodInvalidIndexThrows) { BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); EXPECT_THROW( - model.getInputShape("forward", std::numeric_limits::min()), + (void)model.getInputShape("forward", std::numeric_limits::min()), RnExecutorchError); } @@ -76,7 +76,7 @@ TEST(BaseModelUnloadTests, UnloadDoesNotThrow) { TEST(BaseModelUnloadTests, GetInputShapeAfterUnloadThrows) { BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); model.unload(); - EXPECT_THROW(model.getInputShape("forward", 0), RnExecutorchError); + EXPECT_THROW((void)model.getInputShape("forward", 0), RnExecutorchError); } TEST(BaseModelUnloadTests, GetAllInputShapesAfterUnloadThrows) { @@ -205,5 +205,5 @@ TEST(BaseModelForwardJSTests, ForwardJSAfterUnloadThrows) { tensorView.scalarType = executorch::aten::ScalarType::Float; std::vector inputs = {tensorView}; - EXPECT_THROW(model.forwardJS(inputs), RnExecutorchError); + EXPECT_THROW((void)model.forwardJS(inputs), RnExecutorchError); } diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/ClassificationTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/ClassificationTest.cpp index 272e5f11a..87c85841f 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/ClassificationTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/ClassificationTest.cpp @@ -23,7 +23,8 @@ TEST(ClassificationCtorTests, ValidPathDoesntThrow) { TEST(ClassificationGenerateTests, InvalidImagePathThrows) { Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); - EXPECT_THROW(model.generate("nonexistent_image.jpg"), RnExecutorchError); + EXPECT_THROW((void)model.generate("nonexistent_image.jpg"), + RnExecutorchError); } TEST(ClassificationGenerateTests, ValidImageReturnsResults) { @@ -68,7 +69,7 @@ TEST(ClassificationGenerateTests, TopPredictionHasReasonableConfidence) { TEST(ClassificationUnloadTests, GenerateAfterUnloadThrows) { Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); model.unload(); - EXPECT_THROW(model.generate(VALID_TEST_IMAGE_PATH), RnExecutorchError); + EXPECT_THROW((void)model.generate(VALID_TEST_IMAGE_PATH), RnExecutorchError); } TEST(ClassificationInheritedTests, GetInputShapeWorks) { diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/ImageEmbeddingsTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/ImageEmbeddingsTest.cpp index 737602baf..5a42ad057 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/ImageEmbeddingsTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/ImageEmbeddingsTest.cpp @@ -24,7 +24,8 @@ TEST(ImageEmbeddingsCtorTests, ValidPathDoesntThrow) { TEST(ImageEmbeddingsGenerateTests, InvalidImagePathThrows) { ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); - EXPECT_THROW(model.generate("nonexistent_image.jpg"), RnExecutorchError); + EXPECT_THROW((void)model.generate("nonexistent_image.jpg"), + RnExecutorchError); } TEST(ImageEmbeddingsGenerateTests, ValidImageReturnsResults) { @@ -72,7 +73,7 @@ TEST(ImageEmbeddingsGenerateTests, ResultsContainValidValues) { TEST(ImageEmbeddingsUnloadTests, GenerateAfterUnloadThrows) { ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); model.unload(); - EXPECT_THROW(model.generate(VALID_TEST_IMAGE_PATH), RnExecutorchError); + EXPECT_THROW((void)model.generate(VALID_TEST_IMAGE_PATH), RnExecutorchError); } TEST(ImageEmbeddingsInheritedTests, GetInputShapeWorks) { diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/LLMTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/LLMTest.cpp index 44162260e..b5a19a097 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/LLMTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/LLMTest.cpp @@ -1,5 +1,4 @@ #include -#include #include #include diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/LogTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/LogTest.cpp index 18462c324..1fb2f3fdf 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/LogTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/LogTest.cpp @@ -7,7 +7,6 @@ #include #include #include -#include #include #include #include diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/ObjectDetectionTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/ObjectDetectionTest.cpp index b9ba4dd4a..718840a28 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/ObjectDetectionTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/ObjectDetectionTest.cpp @@ -23,7 +23,8 @@ TEST(ObjectDetectionCtorTests, ValidPathDoesntThrow) { TEST(ObjectDetectionGenerateTests, InvalidImagePathThrows) { ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); - EXPECT_THROW(model.generate("nonexistent_image.jpg", 0.5), RnExecutorchError); + EXPECT_THROW((void)model.generate("nonexistent_image.jpg", 0.5), + RnExecutorchError); } TEST(ObjectDetectionGenerateTests, ValidImageReturnsResults) { @@ -74,7 +75,8 @@ TEST(ObjectDetectionGenerateTests, DetectionsHaveValidLabels) { TEST(ObjectDetectionUnloadTests, GenerateAfterUnloadThrows) { ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); model.unload(); - EXPECT_THROW(model.generate(VALID_TEST_IMAGE_PATH, 0.5), RnExecutorchError); + EXPECT_THROW((void)model.generate(VALID_TEST_IMAGE_PATH, 0.5), + RnExecutorchError); } TEST(ObjectDetectionInheritedTests, GetInputShapeWorks) { diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/SpeechToTextTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/SpeechToTextTest.cpp index f92476ff2..c4274e1ce 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/SpeechToTextTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/SpeechToTextTest.cpp @@ -77,5 +77,5 @@ TEST(S2TUnloadTests, TranscribeAfterUnloadThrows) { model.unload(); auto audio = loadAudioFromFile("test_audio_float.raw"); ASSERT_FALSE(audio.empty()); - EXPECT_THROW(model.transcribe(audio, "en"), RnExecutorchError); + EXPECT_THROW((void)model.transcribe(audio, "en"), RnExecutorchError); } diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/StyleTransferTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/StyleTransferTest.cpp index ad4059474..f47ff9878 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/StyleTransferTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/StyleTransferTest.cpp @@ -24,7 +24,8 @@ TEST(StyleTransferCtorTests, ValidPathDoesntThrow) { TEST(StyleTransferGenerateTests, InvalidImagePathThrows) { StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); - EXPECT_THROW(model.generate("nonexistent_image.jpg"), RnExecutorchError); + EXPECT_THROW((void)model.generate("nonexistent_image.jpg"), + RnExecutorchError); } TEST(StyleTransferGenerateTests, ValidImageReturnsFilePath) { @@ -50,7 +51,7 @@ TEST(StyleTransferGenerateTests, ResultFileHasContent) { TEST(StyleTransferGenerateTests, MultipleGeneratesWork) { StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); - EXPECT_NO_THROW(model.generate(VALID_TEST_IMAGE_PATH)); + EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH)); auto result1 = model.generate(VALID_TEST_IMAGE_PATH); auto result2 = model.generate(VALID_TEST_IMAGE_PATH); test_utils::trimFilePrefix(result1); @@ -62,7 +63,7 @@ TEST(StyleTransferGenerateTests, MultipleGeneratesWork) { TEST(StyleTransferUnloadTests, GenerateAfterUnloadThrows) { StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); model.unload(); - EXPECT_THROW(model.generate(VALID_TEST_IMAGE_PATH), RnExecutorchError); + EXPECT_THROW((void)model.generate(VALID_TEST_IMAGE_PATH), RnExecutorchError); } TEST(StyleTransferInheritedTests, GetInputShapeWorks) { diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/TextEmbeddingsTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/TextEmbeddingsTest.cpp index 00b5b3bdf..8ef0a8cd0 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/TextEmbeddingsTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/TextEmbeddingsTest.cpp @@ -127,7 +127,7 @@ TEST(TextEmbeddingsUnloadTests, GenerateAfterUnloadThrows) { TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); model.unload(); - EXPECT_THROW(model.generate("Test"), RnExecutorchError); + EXPECT_THROW((void)model.generate("Test"), RnExecutorchError); } TEST(TextEmbeddingsInheritedTests, GetInputShapeWorks) { From 64e2d174be69d98c371206b94c8855e284417f00 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Thu, 22 Jan 2026 11:10:33 +0100 Subject: [PATCH 10/29] feat: add tti tests --- .../common/rnexecutorch/tests/CMakeLists.txt | 57 ++++++- .../rnexecutorch/tests/TextToImageTest.cpp | 146 ++++++++++++++++++ 2 files changed, 199 insertions(+), 4 deletions(-) create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/TextToImageTest.cpp diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt index dbf5c4d2d..5f4a5e768 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt +++ b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt @@ -28,9 +28,6 @@ set(ANDROID_THIRD_PARTY "${PACKAGE_ROOT}/third-party/android/libs/") # GoogleTest add_subdirectory(${THIRD_PARTY_DIR}/googletest ${PROJECT_BINARY_DIR}/googletest) -# Source files -set(SOURCE_FILES ${CMAKE_SOURCE_DIR}/../data_processing/Numerical.cpp - ${CMAKE_SOURCE_DIR}/../data_processing/FileUtils.h) # Include directories include_directories(${RNEXECUTORCH_DIR}/data_processing) include_directories(${RNEXECUTORCH_DIR}) @@ -58,6 +55,9 @@ set(IMAGE_EMBEDDINGS_SOURCES ${RNEXECUTORCH_DIR}/models/embeddings/image/ImageEm set(TEXT_EMBEDDINGS_SOURCES ${RNEXECUTORCH_DIR}/models/embeddings/text/TextEmbeddings.cpp) set(TOKENIZER_SOURCES ${RNEXECUTORCH_DIR}/TokenizerModule.cpp) set(STYLE_TRANSFER_SOURCES ${RNEXECUTORCH_DIR}/models/style_transfer/StyleTransfer.cpp) +# set(IMAGE_SEGMENTATION_SOURCES +# ${RNEXECUTORCH_DIR}/models/image_segmentation/ImageSegmentation.cpp +# ) set(VAD_SOURCES ${RNEXECUTORCH_DIR}/models/voice_activity_detection/VoiceActivityDetection.cpp ${RNEXECUTORCH_DIR}/models/voice_activity_detection/Utils.cpp @@ -80,6 +80,13 @@ set(RUNNER_SOURCES set(LLM_SOURCES ${RNEXECUTORCH_DIR}/models/llm/LLM.cpp ) +set(TEXT_TO_IMAGE_SOURCES + ${RNEXECUTORCH_DIR}/models/text_to_image/TextToImage.cpp + ${RNEXECUTORCH_DIR}/models/text_to_image/Encoder.cpp + ${RNEXECUTORCH_DIR}/models/text_to_image/UNet.cpp + ${RNEXECUTORCH_DIR}/models/text_to_image/Decoder.cpp + ${RNEXECUTORCH_DIR}/models/text_to_image/Scheduler.cpp +) # Stubs for mocking JSI/React Native symbols set(JSI_STUBS ${CMAKE_SOURCE_DIR}/stubs/jsi_stubs.cpp) @@ -157,6 +164,17 @@ add_executable(StyleTransferTests StyleTransferTest.cpp ${ADA_SOURCES} ${JSI_STUBS} ) + +# add_executable(ImageSegmentationTests ImageSegmentationTest.cpp +# ${IMAGE_SEGMENTATION_SOURCES} +# ${BASEMODEL_SOURCES} +# ${IMAGE_PROCESSING_SOURCES} +# ${NUMERICAL_SOURCES} +# ${BASE64_SOURCES} +# ${ADA_SOURCES} +# ${JSI_STUBS} +# ) + add_executable(VADTests VoiceActivityDetectionTest.cpp ${VAD_SOURCES} ${BASEMODEL_SOURCES} @@ -182,6 +200,15 @@ add_executable(LLMTests LLMTest.cpp ${BASEMODEL_SOURCES} ${JSI_STUBS} ) +add_executable(TextToImageTests TextToImageTest.cpp + ${TEXT_TO_IMAGE_SOURCES} + ${TEXT_EMBEDDINGS_SOURCES} + ${BASE_EMBEDDINGS_SOURCES} + ${BASEMODEL_SOURCES} + ${TOKENIZER_SOURCES} + ${NUMERICAL_SOURCES} + ${JSI_STUBS} +) # Libraries linking target_link_libraries(NumericalTests gtest gtest_main) @@ -245,6 +272,19 @@ target_link_libraries(StyleTransferTests gtest_main log ) + +# target_link_options(ImageSegmentationTests PRIVATE -fopenmp -static-openmp) +# target_link_libraries(ImageSegmentationTests +# PRIVATE +# ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so +# ${OPENCV_LIBS} +# ${OPENCV_THIRD_PARTY_LIBS} +# z +# gtest +# gtest_main +# log +# ) + target_link_libraries(VADTests PRIVATE ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so @@ -276,6 +316,14 @@ target_link_libraries(LLMTests gtest_main log ) +target_link_libraries(TextToImageTests + PRIVATE + ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so + ${TOKENIZERS_LIBS} + gtest + gtest_main + log +) # Add 16kB page size set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,max-page-size=16384") @@ -283,7 +331,6 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,max-page-size=16384 # Testing functionalities enable_testing() add_test(NAME NumericalTests COMMAND NumericalTests) -add_test(NAME FileUtilsTests COMMAND FileUtilsTests) add_test(NAME LogTests COMMAND LogTests) add_test(NAME BaseModelTests COMMAND BaseModelTests) add_test(NAME ClassificationTests COMMAND ClassificationTests) @@ -295,3 +342,5 @@ add_test(NAME VADTests COMMAND VADTests) add_test(NAME TokenizerModuleTests COMMAND TokenizerModuleTests) add_test(NAME SpeechToTextTests COMMAND SpeechToTextTests) add_test(NAME LLMTests COMMAND LLMTests) +# add_test(NAME ImageSegmentationTests COMMAND ImageSegmentationTests) +add_test(NAME TextToImageTests COMMAND TextToImageTests) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/TextToImageTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/TextToImageTest.cpp new file mode 100644 index 000000000..19488ea9f --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/TextToImageTest.cpp @@ -0,0 +1,146 @@ +#include +#include +#include +#include + +using namespace rnexecutorch; +using namespace rnexecutorch::models::text_to_image; + +namespace rnexecutorch { +std::shared_ptr createMockCallInvoker(); +} + +constexpr auto VALID_TOKENIZER_PATH = "t2i_tokenizer.json"; +constexpr auto VALID_ENCODER_PATH = "t2i_encoder.pte"; +constexpr auto VALID_UNET_PATH = "t2i_unet.pte"; +constexpr auto VALID_DECODER_PATH = "t2i_decoder.pte"; + +constexpr float SCHEDULER_BETA_START = 0.00085f; +constexpr float SCHEDULER_BETA_END = 0.012f; +constexpr int32_t SCHEDULER_NUM_TRAIN_TIMESTEPS = 1000; +constexpr int32_t SCHEDULER_STEPS_OFFSET = 1; + +static auto getMockInvoker() { return createMockCallInvoker(); } + +TEST(TextToImageCtorTests, InvalidTokenizerPathThrows) { + EXPECT_THROW(TextToImage("nonexistent.json", VALID_ENCODER_PATH, + VALID_UNET_PATH, VALID_DECODER_PATH, + SCHEDULER_BETA_START, SCHEDULER_BETA_END, + SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, getMockInvoker()), + RnExecutorchError); +} + +TEST(TextToImageCtorTests, InvalidEncoderPathThrows) { + EXPECT_THROW(TextToImage(VALID_TOKENIZER_PATH, "nonexistent.pte", + VALID_UNET_PATH, VALID_DECODER_PATH, + SCHEDULER_BETA_START, SCHEDULER_BETA_END, + SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, getMockInvoker()), + RnExecutorchError); +} + +TEST(TextToImageCtorTests, InvalidUnetPathThrows) { + EXPECT_THROW(TextToImage(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, + "nonexistent.pte", VALID_DECODER_PATH, + SCHEDULER_BETA_START, SCHEDULER_BETA_END, + SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, getMockInvoker()), + RnExecutorchError); +} + +TEST(TextToImageCtorTests, InvalidDecoderPathThrows) { + EXPECT_THROW(TextToImage(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, + VALID_UNET_PATH, "nonexistent.pte", + SCHEDULER_BETA_START, SCHEDULER_BETA_END, + SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, getMockInvoker()), + RnExecutorchError); +} + +TEST(TextToImageCtorTests, ValidPathsDoesntThrow) { + EXPECT_NO_THROW(TextToImage( + VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, + VALID_DECODER_PATH, SCHEDULER_BETA_START, SCHEDULER_BETA_END, + SCHEDULER_NUM_TRAIN_TIMESTEPS, SCHEDULER_STEPS_OFFSET, getMockInvoker())); +} + +TEST(TextToImageMemoryTests, GetMemoryLowerBoundReturnsPositive) { + TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, + VALID_DECODER_PATH, SCHEDULER_BETA_START, + SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, getMockInvoker()); + EXPECT_GT(model.getMemoryLowerBound(), 0u); +} + +TEST(TextToImageUnloadTests, UnloadDoesntThrow) { + TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, + VALID_DECODER_PATH, SCHEDULER_BETA_START, + SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, getMockInvoker()); + EXPECT_NO_THROW(model.unload()); +} + +TEST(TextToImageGenerateTests, InvalidImageSizeThrows) { + TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, + VALID_DECODER_PATH, SCHEDULER_BETA_START, + SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, getMockInvoker()); + // Image size must be multiple of 32 + EXPECT_THROW((void)model.generate("a cat", 100, 1, 42, nullptr), + RnExecutorchError); +} + +TEST(TextToImageGenerateTests, GenerateReturnsNonNull) { + TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, + VALID_DECODER_PATH, SCHEDULER_BETA_START, + SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, getMockInvoker()); + // Use minimal settings: 128x128 image, 1 inference step + auto result = model.generate("a cat", 128, 1, 42, nullptr); + EXPECT_NE(result, nullptr); +} + +TEST(TextToImageGenerateTests, GenerateReturnsCorrectSize) { + TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, + VALID_DECODER_PATH, SCHEDULER_BETA_START, + SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, getMockInvoker()); + int32_t imageSize = 128; + auto result = model.generate("a cat", imageSize, 1, 42, nullptr); + ASSERT_NE(result, nullptr); + // Output is RGBA, so 4 bytes per pixel + size_t expectedSize = imageSize * imageSize * 4; + EXPECT_EQ(result->size(), expectedSize); +} + +TEST(TextToImageGenerateTests, SameSeedProducesSameResult) { + TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, + VALID_DECODER_PATH, SCHEDULER_BETA_START, + SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, getMockInvoker()); + auto result1 = model.generate("a cat", 128, 1, 42, nullptr); + auto result2 = model.generate("a cat", 128, 1, 42, nullptr); + ASSERT_NE(result1, nullptr); + ASSERT_NE(result2, nullptr); + ASSERT_EQ(result1->size(), result2->size()); + + auto data1 = static_cast(result1->data()); + auto data2 = static_cast(result2->data()); + bool same = true; + for (size_t i = 0; i < result1->size(); i++) { + if (data1[i] != data2[i]) { + same = false; + break; + } + } + EXPECT_TRUE(same); +} + +TEST(TextToImageInterruptTests, InterruptDoesntThrow) { + TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, + VALID_DECODER_PATH, SCHEDULER_BETA_START, + SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, getMockInvoker()); + EXPECT_NO_THROW(model.interrupt()); +} From 43513aca603c321625541703b83e9a1768df76c8 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Thu, 22 Jan 2026 11:11:48 +0100 Subject: [PATCH 11/29] chore: avoid redownloading when model file exists --- .../common/rnexecutorch/tests/run_tests.sh | 88 ++++++++++++------- 1 file changed, 58 insertions(+), 30 deletions(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh index 7e420daad..d0c82f8ac 100755 --- a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh +++ b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh @@ -1,6 +1,17 @@ #!/bin/bash set -e +# Parse arguments +REFRESH_MODELS=false +for arg in "$@"; do + case $arg in + --refresh-models) + REFRESH_MODELS=true + shift + ;; + esac +done + if ! adb shell ":"; then echo "ERROR: ADB SHELL COULDN'T RUN SUCCESFULLY" exit 1 @@ -18,6 +29,24 @@ ANDROID_ABI="arm64-v8a" ANDROID_LIBS_DIR="$PACKAGE_ROOT/third-party/android/libs" DEVICE_TEST_DIR="/data/local/tmp/rnexecutorch_tests" +MODELS_DIR="$SCRIPT_DIR/models" + +# Create models directory if it doesn't exist +mkdir -p "$MODELS_DIR" + +# Helper function to download a file if it doesn't exist (or if --refresh-models is used) +download_if_needed() { + local url="$1" + local output="$2" + local filepath="$MODELS_DIR/$output" + + if [ "$REFRESH_MODELS" = true ] || [ ! -f "$filepath" ]; then + echo " Downloading $output..." + wget -q -O "$filepath" "$url" + else + echo " $output already exists, skipping download" + fi +} # cleanup build artifacts rm -rf build @@ -35,7 +64,7 @@ make adb shell "mkdir -p $DEVICE_TEST_DIR" -TEST_EXECUTABLES=("NumericalTests" "LogTests" "BaseModelTests" "ClassificationTests" "ObjectDetectionTests" "ImageEmbeddingsTests" "TextEmbeddingsTests" "StyleTransferTests" "VADTests" "TokenizerModuleTests" "SpeechToTextTests" "LLMTests") +TEST_EXECUTABLES=("NumericalTests" "LogTests" "BaseModelTests" "ClassificationTests" "ObjectDetectionTests" "ImageEmbeddingsTests" "TextEmbeddingsTests" "StyleTransferTests" "VADTests" "TokenizerModuleTests" "SpeechToTextTests" "LLMTests" "ImageSegmentationTests" "TextToImageTests") # push test executables to device echo "Pushing test executables to device..." @@ -49,36 +78,35 @@ done # Push test audio to device adb push ../test_audio_float.raw $DEVICE_TEST_DIR >/dev/null -# download models needed for the tests & push to device -echo "Downloading models..." -wget -q https://huggingface.co/software-mansion/react-native-executorch-style-transfer-candy/resolve/main/xnnpack/style_transfer_candy_xnnpack.pte -wget -q https://huggingface.co/software-mansion/react-native-executorch-efficientnet-v2-s/resolve/v0.6.0/xnnpack/efficientnet_v2_s_xnnpack.pte -wget -q https://huggingface.co/software-mansion/react-native-executorch-ssdlite320-mobilenet-v3-large/resolve/v0.6.0/ssdlite320-mobilenetv3-large.pte -wget -q -O test_image.jpg https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Cat_November_2010-1a.jpg/1200px-Cat_November_2010-1a.jpg -wget -q https://huggingface.co/software-mansion/react-native-executorch-clip-vit-base-patch32/resolve/v0.6.0/clip-vit-base-patch32-vision_xnnpack.pte -wget -q https://huggingface.co/software-mansion/react-native-executorch-all-MiniLM-L6-v2/resolve/v0.6.0/all-MiniLM-L6-v2_xnnpack.pte -wget -q -O tokenizer.json https://huggingface.co/software-mansion/react-native-executorch-all-MiniLM-L6-v2/resolve/v0.6.0/tokenizer.json -wget -q https://huggingface.co/software-mansion/react-native-executorch-fsmn-vad/resolve/main/xnnpack/fsmn-vad_xnnpack.pte -wget -q https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/main/xnnpack/whisper_tiny_en_encoder_xnnpack.pte -wget -q https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/main/xnnpack/whisper_tiny_en_decoder_xnnpack.pte -wget -q -O whisper_tokenizer.json https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/v0.6.0/tokenizer.json -wget -q https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.6.0/smolLm-2-135M/quantized/smolLm2_135M_8da4w.pte -wget -q -O smollm_tokenizer.json https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.6.0/tokenizer.json - +# download models needed for the tests +echo "Downloading models (use --refresh-models to force re-download)..." +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-style-transfer-candy/resolve/main/xnnpack/style_transfer_candy_xnnpack.pte" "style_transfer_candy_xnnpack.pte" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-efficientnet-v2-s/resolve/v0.6.0/xnnpack/efficientnet_v2_s_xnnpack.pte" "efficientnet_v2_s_xnnpack.pte" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-ssdlite320-mobilenet-v3-large/resolve/v0.6.0/ssdlite320-mobilenetv3-large.pte" "ssdlite320-mobilenetv3-large.pte" +download_if_needed "https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Cat_November_2010-1a.jpg/1200px-Cat_November_2010-1a.jpg" "test_image.jpg" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-clip-vit-base-patch32/resolve/v0.6.0/clip-vit-base-patch32-vision_xnnpack.pte" "clip-vit-base-patch32-vision_xnnpack.pte" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-all-MiniLM-L6-v2/resolve/v0.6.0/all-MiniLM-L6-v2_xnnpack.pte" "all-MiniLM-L6-v2_xnnpack.pte" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-all-MiniLM-L6-v2/resolve/v0.6.0/tokenizer.json" "tokenizer.json" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-fsmn-vad/resolve/main/xnnpack/fsmn-vad_xnnpack.pte" "fsmn-vad_xnnpack.pte" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/main/xnnpack/whisper_tiny_en_encoder_xnnpack.pte" "whisper_tiny_en_encoder_xnnpack.pte" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/main/xnnpack/whisper_tiny_en_decoder_xnnpack.pte" "whisper_tiny_en_decoder_xnnpack.pte" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/v0.6.0/tokenizer.json" "whisper_tokenizer.json" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.6.0/smolLm-2-135M/quantized/smolLm2_135M_8da4w.pte" "smolLm2_135M_8da4w.pte" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.6.0/tokenizer.json" "smollm_tokenizer.json" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-deeplab-v3/resolve/v0.6.0/xnnpack/deeplabV3_xnnpack_fp32.pte" "deeplabV3_xnnpack_fp32.pte" +# TextToImage models (large ~2GB total) +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-bk-sdm-tiny/resolve/v0.6.0/tokenizer/tokenizer.json" "t2i_tokenizer.json" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-bk-sdm-tiny/resolve/v0.6.0/text_encoder/model.pte" "t2i_encoder.pte" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-bk-sdm-tiny/resolve/v0.6.0/unet/model.256.pte" "t2i_unet.pte" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-bk-sdm-tiny/resolve/v0.6.0/vae/model.256.pte" "t2i_decoder.pte" + +# Push models to device echo "Pushing models to device..." -adb push "style_transfer_candy_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null -adb push "efficientnet_v2_s_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null -adb push "ssdlite320-mobilenetv3-large.pte" "$DEVICE_TEST_DIR/" >/dev/null -adb push "test_image.jpg" "$DEVICE_TEST_DIR/" >/dev/null -adb push "clip-vit-base-patch32-vision_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null -adb push "all-MiniLM-L6-v2_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null -adb push "tokenizer.json" "$DEVICE_TEST_DIR/" >/dev/null -adb push "fsmn-vad_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null -adb push "whisper_tiny_en_encoder_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null -adb push "whisper_tiny_en_decoder_xnnpack.pte" "$DEVICE_TEST_DIR/" >/dev/null -adb push "whisper_tokenizer.json" "$DEVICE_TEST_DIR/" >/dev/null -adb push "smolLm2_135M_8da4w.pte" "$DEVICE_TEST_DIR/" >/dev/null -adb push "smollm_tokenizer.json" "$DEVICE_TEST_DIR/" >/dev/null +for model in "$MODELS_DIR"/*; do + if [ -f "$model" ]; then + adb push "$model" "$DEVICE_TEST_DIR/" >/dev/null + fi +done # push shared libraries needed by BaseModelTests echo "Pushing shared libraries to device..." From bee34e1453f3fc8c7ec63bc87cd3d323c96417f8 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Thu, 22 Jan 2026 13:14:41 +0100 Subject: [PATCH 12/29] chore: add .pte files to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c0c49ef68..780eaf46f 100644 --- a/.gitignore +++ b/.gitignore @@ -93,3 +93,4 @@ apps/*/android/ # custom *.tgz Makefile +*.pte From 3ae1a3deeea4d672097e855974c1574784bbfcdb Mon Sep 17 00:00:00 2001 From: chmjkb Date: Fri, 23 Jan 2026 21:00:06 +0100 Subject: [PATCH 13/29] chore: separate integration and unit tests, add some more tests --- .../models/ocr/utils/RecognizerUtils.cpp | 10 +- .../common/rnexecutorch/tests/CMakeLists.txt | 500 +++++++----------- .../tests/{ => integration}/BaseModelTest.cpp | 0 .../tests/integration/BaseModelTests.h | 95 ++++ .../{ => integration}/ClassificationTest.cpp | 47 +- .../{ => integration}/ImageEmbeddingsTest.cpp | 47 +- .../integration/ImageSegmentationTest.cpp | 201 +++++++ .../tests/{ => integration}/LLMTest.cpp | 67 +-- .../tests/integration/OCRTest.cpp | 111 ++++ .../{ => integration}/ObjectDetectionTest.cpp | 49 +- .../{ => integration}/SpeechToTextTest.cpp | 57 +- .../{ => integration}/StyleTransferTest.cpp | 47 +- .../tests/{ => integration}/TestUtils.h | 13 - .../{ => integration}/TextEmbeddingsTest.cpp | 55 +- .../{ => integration}/TextToImageTest.cpp | 92 ++-- .../{ => integration}/TokenizerModuleTest.cpp | 12 +- .../VoiceActivityDetectionTest.cpp | 48 +- .../{ => integration}/stubs/jsi_stubs.cpp | 1 - .../common/rnexecutorch/tests/run_tests.sh | 67 ++- .../tests/{ => unit}/FileUtilsTest.cpp | 4 +- .../rnexecutorch/tests/{ => unit}/LogTest.cpp | 0 .../tests/{ => unit}/NumericalTest.cpp | 11 +- 22 files changed, 953 insertions(+), 581 deletions(-) rename packages/react-native-executorch/common/rnexecutorch/tests/{ => integration}/BaseModelTest.cpp (100%) create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h rename packages/react-native-executorch/common/rnexecutorch/tests/{ => integration}/ClassificationTest.cpp (71%) rename packages/react-native-executorch/common/rnexecutorch/tests/{ => integration}/ImageEmbeddingsTest.cpp (73%) create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageSegmentationTest.cpp rename packages/react-native-executorch/common/rnexecutorch/tests/{ => integration}/LLMTest.cpp (72%) create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp rename packages/react-native-executorch/common/rnexecutorch/tests/{ => integration}/ObjectDetectionTest.cpp (73%) rename packages/react-native-executorch/common/rnexecutorch/tests/{ => integration}/SpeechToTextTest.cpp (65%) rename packages/react-native-executorch/common/rnexecutorch/tests/{ => integration}/StyleTransferTest.cpp (71%) rename packages/react-native-executorch/common/rnexecutorch/tests/{ => integration}/TestUtils.h (62%) rename packages/react-native-executorch/common/rnexecutorch/tests/{ => integration}/TextEmbeddingsTest.cpp (80%) rename packages/react-native-executorch/common/rnexecutorch/tests/{ => integration}/TextToImageTest.cpp (60%) rename packages/react-native-executorch/common/rnexecutorch/tests/{ => integration}/TokenizerModuleTest.cpp (98%) rename packages/react-native-executorch/common/rnexecutorch/tests/{ => integration}/VoiceActivityDetectionTest.cpp (68%) rename packages/react-native-executorch/common/rnexecutorch/tests/{ => integration}/stubs/jsi_stubs.cpp (95%) rename packages/react-native-executorch/common/rnexecutorch/tests/{ => unit}/FileUtilsTest.cpp (91%) rename packages/react-native-executorch/common/rnexecutorch/tests/{ => unit}/LogTest.cpp (100%) rename packages/react-native-executorch/common/rnexecutorch/tests/{ => unit}/NumericalTest.cpp (92%) diff --git a/packages/react-native-executorch/common/rnexecutorch/models/ocr/utils/RecognizerUtils.cpp b/packages/react-native-executorch/common/rnexecutorch/models/ocr/utils/RecognizerUtils.cpp index 25c2cea61..496bd7927 100644 --- a/packages/react-native-executorch/common/rnexecutorch/models/ocr/utils/RecognizerUtils.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/models/ocr/utils/RecognizerUtils.cpp @@ -7,7 +7,15 @@ cv::Mat softmax(const cv::Mat &inputs) { cv::Mat maxVal; cv::reduce(inputs, maxVal, 1, cv::REDUCE_MAX, CV_32F); cv::Mat expInputs; - cv::exp(inputs - cv::repeat(maxVal, 1, inputs.cols), expInputs); + cv::Mat rzecz = inputs - cv::repeat(maxVal, 1, inputs.cols); + // Manually compute exp to avoid SIMD issues + rzecz.convertTo(rzecz, CV_32F); + expInputs = cv::Mat(rzecz.size(), CV_32F); + for (int i = 0; i < rzecz.rows; i++) { + for (int j = 0; j < rzecz.cols; j++) { + expInputs.at(i, j) = std::exp(rzecz.at(i, j)); + } + } cv::Mat sumExp; cv::reduce(expInputs, sumExp, 1, cv::REDUCE_SUM, CV_32F); cv::Mat softmaxOutput = expInputs / cv::repeat(sumExp, 1, inputs.cols); diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt index 5f4a5e768..698b7ed20 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt +++ b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt @@ -1,12 +1,10 @@ -# Since this test suite needs access to prebuilt Android ExecuTorch / other 3p libs, we early return if the target is not Android if(NOT ANDROID_ABI) - message(FATAL_ERROR "This can be only built for Android simulator") + message(FATAL_ERROR "Tests can be only built for Android simulator") endif() cmake_minimum_required(VERSION 3.13) project(RNExecutorchTests) -# C++ standard set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) @@ -16,7 +14,6 @@ set(CMAKE_CXX_STANDARD_REQUIRED TRUE) # react-native-executorch/ <- PACKAGE_ROOT # / <- MONOREPO_ROOT # /third-party/ <- THIRD_PARTY_DIR - set(RNEXECUTORCH_DIR "${CMAKE_SOURCE_DIR}/..") set(COMMON_DIR "${RNEXECUTORCH_DIR}/..") set(PACKAGE_ROOT "${COMMON_DIR}/..") @@ -25,322 +22,221 @@ set(THIRD_PARTY_DIR "${MONOREPO_ROOT}/third-party") set(REACT_NATIVE_DIR "${MONOREPO_ROOT}/node_modules/react-native") set(ANDROID_THIRD_PARTY "${PACKAGE_ROOT}/third-party/android/libs/") -# GoogleTest +# Add Gtest as a subdirectory add_subdirectory(${THIRD_PARTY_DIR}/googletest ${PROJECT_BINARY_DIR}/googletest) -# Include directories -include_directories(${RNEXECUTORCH_DIR}/data_processing) -include_directories(${RNEXECUTORCH_DIR}) -include_directories(${COMMON_DIR}) -include_directories(${PACKAGE_ROOT}/third-party/include) - -# React Native / JSI headers -include_directories(${REACT_NATIVE_DIR}/ReactCommon) -include_directories(${REACT_NATIVE_DIR}/ReactCommon/jsi) -include_directories(${REACT_NATIVE_DIR}/ReactCommon/callinvoker) - -# Source files -set(NUMERICAL_SOURCES ${RNEXECUTORCH_DIR}/data_processing/Numerical.cpp) -set(BASEMODEL_SOURCES ${RNEXECUTORCH_DIR}/models/BaseModel.cpp) -set(CLASSIFICATION_SOURCES ${RNEXECUTORCH_DIR}/models/classification/Classification.cpp) -set(OBJECT_DETECTION_SOURCES - ${RNEXECUTORCH_DIR}/models/object_detection/ObjectDetection.cpp - ${RNEXECUTORCH_DIR}/models/object_detection/Utils.cpp -) -set(IMAGE_PROCESSING_SOURCES ${RNEXECUTORCH_DIR}/data_processing/ImageProcessing.cpp) -set(BASE64_SOURCES ${RNEXECUTORCH_DIR}/data_processing/base64.cpp) -set(ADA_SOURCES ${COMMON_DIR}/ada/ada.cpp) -set(BASE_EMBEDDINGS_SOURCES ${RNEXECUTORCH_DIR}/models/embeddings/BaseEmbeddings.cpp) -set(IMAGE_EMBEDDINGS_SOURCES ${RNEXECUTORCH_DIR}/models/embeddings/image/ImageEmbeddings.cpp) -set(TEXT_EMBEDDINGS_SOURCES ${RNEXECUTORCH_DIR}/models/embeddings/text/TextEmbeddings.cpp) -set(TOKENIZER_SOURCES ${RNEXECUTORCH_DIR}/TokenizerModule.cpp) -set(STYLE_TRANSFER_SOURCES ${RNEXECUTORCH_DIR}/models/style_transfer/StyleTransfer.cpp) -# set(IMAGE_SEGMENTATION_SOURCES -# ${RNEXECUTORCH_DIR}/models/image_segmentation/ImageSegmentation.cpp -# ) -set(VAD_SOURCES - ${RNEXECUTORCH_DIR}/models/voice_activity_detection/VoiceActivityDetection.cpp - ${RNEXECUTORCH_DIR}/models/voice_activity_detection/Utils.cpp -) -set(DSP_SOURCES ${RNEXECUTORCH_DIR}/data_processing/dsp.cpp) -set(GZIP_SOURCES ${RNEXECUTORCH_DIR}/data_processing/gzip.cpp) -set(S2T_SOURCES - ${RNEXECUTORCH_DIR}/models/speech_to_text/SpeechToText.cpp - ${RNEXECUTORCH_DIR}/models/speech_to_text/asr/ASR.cpp - ${RNEXECUTORCH_DIR}/models/speech_to_text/stream/HypothesisBuffer.cpp - ${RNEXECUTORCH_DIR}/models/speech_to_text/stream/OnlineASRProcessor.cpp -) -set(RUNNER_SOURCES - ${COMMON_DIR}/runner/runner.cpp - ${COMMON_DIR}/runner/text_prefiller.cpp - ${COMMON_DIR}/runner/text_decoder_runner.cpp - ${COMMON_DIR}/runner/sampler.cpp - ${COMMON_DIR}/runner/arange_util.cpp -) -set(LLM_SOURCES - ${RNEXECUTORCH_DIR}/models/llm/LLM.cpp -) -set(TEXT_TO_IMAGE_SOURCES - ${RNEXECUTORCH_DIR}/models/text_to_image/TextToImage.cpp - ${RNEXECUTORCH_DIR}/models/text_to_image/Encoder.cpp - ${RNEXECUTORCH_DIR}/models/text_to_image/UNet.cpp - ${RNEXECUTORCH_DIR}/models/text_to_image/Decoder.cpp - ${RNEXECUTORCH_DIR}/models/text_to_image/Scheduler.cpp +# ExecuTorch Prebuilt binaries +add_library(executorch_prebuilt SHARED IMPORTED) +set_target_properties(executorch_prebuilt PROPERTIES + IMPORTED_LOCATION "${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so" ) -# Stubs for mocking JSI/React Native symbols -set(JSI_STUBS ${CMAKE_SOURCE_DIR}/stubs/jsi_stubs.cpp) +# pthreadpool and cpuinfo (needed for OpenMP/OpenCV) +if(ANDROID_ABI STREQUAL "arm64-v8a") + add_library(pthreadpool SHARED IMPORTED) + set_target_properties(pthreadpool PROPERTIES + IMPORTED_LOCATION "${ANDROID_THIRD_PARTY}/pthreadpool/${ANDROID_ABI}/libpthreadpool.so" + ) -# Ada URL parser include -include_directories(${COMMON_DIR}/ada) + add_library(cpuinfo SHARED IMPORTED) + set_target_properties(cpuinfo PROPERTIES + IMPORTED_LOCATION "${ANDROID_THIRD_PARTY}/cpuinfo/${ANDROID_ABI}/libcpuinfo.so" + ) + + set(EXECUTORCH_LIBS pthreadpool cpuinfo) +else() + set(EXECUTORCH_LIBS "") +endif() -# OpenCV (static libraries) +# OpenCV (Interface Library) set(OPENCV_LIBS_DIR "${ANDROID_THIRD_PARTY}/opencv/${ANDROID_ABI}") -set(OPENCV_LIBS - ${OPENCV_LIBS_DIR}/libopencv_imgproc.a - ${OPENCV_LIBS_DIR}/libopencv_core.a - ${OPENCV_LIBS_DIR}/libopencv_photo.a - ${OPENCV_LIBS_DIR}/libopencv_video.a - ${OPENCV_LIBS_DIR}/libopencv_features2d.a - ${OPENCV_LIBS_DIR}/libopencv_highgui.a -) set(OPENCV_THIRD_PARTY_DIR "${ANDROID_THIRD_PARTY}/opencv-third-party/${ANDROID_ABI}") -file(GLOB OPENCV_THIRD_PARTY_LIBS "${OPENCV_THIRD_PARTY_DIR}/*.a") -# Tokenizers-cpp (static libraries) +if(ANDROID_ABI STREQUAL "arm64-v8a") + set(OPENCV_THIRD_PARTY_LIBS + "${OPENCV_THIRD_PARTY_DIR}/libkleidicv_hal.a" + "${OPENCV_THIRD_PARTY_DIR}/libkleidicv_thread.a" + "${OPENCV_THIRD_PARTY_DIR}/libkleidicv.a" + ) +elseif(ANDROID_ABI STREQUAL "x86_64") + set(OPENCV_THIRD_PARTY_LIBS "") +endif() + + +add_library(opencv_deps INTERFACE) +target_link_libraries(opencv_deps INTERFACE + ${OPENCV_LIBS_DIR}/libopencv_core.a + ${OPENCV_LIBS_DIR}/libopencv_features2d.a + ${OPENCV_LIBS_DIR}/libopencv_highgui.a + ${OPENCV_LIBS_DIR}/libopencv_imgproc.a + ${OPENCV_LIBS_DIR}/libopencv_photo.a + ${OPENCV_LIBS_DIR}/libopencv_video.a + ${OPENCV_THIRD_PARTY_LIBS} + ${EXECUTORCH_LIBS} + z + dl + m + log +) +target_link_options(opencv_deps INTERFACE -fopenmp -static-openmp) + +# Tokenizers (Interface Library) set(TOKENIZERS_LIBS_DIR "${ANDROID_THIRD_PARTY}/tokenizers-cpp/${ANDROID_ABI}") -set(TOKENIZERS_LIBS - ${TOKENIZERS_LIBS_DIR}/libtokenizers_cpp.a - ${TOKENIZERS_LIBS_DIR}/libtokenizers_c.a - ${TOKENIZERS_LIBS_DIR}/libsentencepiece.a +add_library(tokenizers_deps INTERFACE) +target_link_libraries(tokenizers_deps INTERFACE + ${TOKENIZERS_LIBS_DIR}/libtokenizers_cpp.a + ${TOKENIZERS_LIBS_DIR}/libtokenizers_c.a + ${TOKENIZERS_LIBS_DIR}/libsentencepiece.a ) -# Executables for the tests -add_executable(NumericalTests NumericalTest.cpp ${NUMERICAL_SOURCES}) -add_executable(LogTests LogTest.cpp) -add_executable(BaseModelTests BaseModelTest.cpp ${BASEMODEL_SOURCES} ${JSI_STUBS}) -add_executable(ClassificationTests ClassificationTest.cpp - ${CLASSIFICATION_SOURCES} - ${BASEMODEL_SOURCES} - ${IMAGE_PROCESSING_SOURCES} - ${NUMERICAL_SOURCES} - ${BASE64_SOURCES} - ${ADA_SOURCES} - ${JSI_STUBS} -) -add_executable(ObjectDetectionTests ObjectDetectionTest.cpp - ${OBJECT_DETECTION_SOURCES} - ${BASEMODEL_SOURCES} - ${IMAGE_PROCESSING_SOURCES} - ${NUMERICAL_SOURCES} - ${BASE64_SOURCES} - ${ADA_SOURCES} - ${JSI_STUBS} -) -add_executable(ImageEmbeddingsTests ImageEmbeddingsTest.cpp - ${IMAGE_EMBEDDINGS_SOURCES} - ${BASE_EMBEDDINGS_SOURCES} - ${BASEMODEL_SOURCES} - ${IMAGE_PROCESSING_SOURCES} - ${NUMERICAL_SOURCES} - ${BASE64_SOURCES} - ${ADA_SOURCES} - ${JSI_STUBS} -) -add_executable(TextEmbeddingsTests TextEmbeddingsTest.cpp - ${TEXT_EMBEDDINGS_SOURCES} - ${BASE_EMBEDDINGS_SOURCES} - ${BASEMODEL_SOURCES} - ${TOKENIZER_SOURCES} - ${NUMERICAL_SOURCES} - ${JSI_STUBS} -) -add_executable(StyleTransferTests StyleTransferTest.cpp - ${STYLE_TRANSFER_SOURCES} - ${BASEMODEL_SOURCES} - ${IMAGE_PROCESSING_SOURCES} - ${NUMERICAL_SOURCES} - ${BASE64_SOURCES} - ${ADA_SOURCES} - ${JSI_STUBS} +# Source Definitions +set(CORE_SOURCES + ${RNEXECUTORCH_DIR}/models/BaseModel.cpp + ${RNEXECUTORCH_DIR}/data_processing/Numerical.cpp + ${CMAKE_SOURCE_DIR}/integration/stubs/jsi_stubs.cpp ) -# add_executable(ImageSegmentationTests ImageSegmentationTest.cpp -# ${IMAGE_SEGMENTATION_SOURCES} -# ${BASEMODEL_SOURCES} -# ${IMAGE_PROCESSING_SOURCES} -# ${NUMERICAL_SOURCES} -# ${BASE64_SOURCES} -# ${ADA_SOURCES} -# ${JSI_STUBS} -# ) - -add_executable(VADTests VoiceActivityDetectionTest.cpp - ${VAD_SOURCES} - ${BASEMODEL_SOURCES} - ${DSP_SOURCES} - ${JSI_STUBS} -) -add_executable(TokenizerModuleTests TokenizerModuleTest.cpp - ${TOKENIZER_SOURCES} - ${JSI_STUBS} -) -add_executable(SpeechToTextTests SpeechToTextTest.cpp - ${S2T_SOURCES} - ${BASEMODEL_SOURCES} - ${TOKENIZER_SOURCES} - ${NUMERICAL_SOURCES} - ${GZIP_SOURCES} - ${DSP_SOURCES} - ${JSI_STUBS} -) -add_executable(LLMTests LLMTest.cpp - ${LLM_SOURCES} - ${RUNNER_SOURCES} - ${BASEMODEL_SOURCES} - ${JSI_STUBS} -) -add_executable(TextToImageTests TextToImageTest.cpp - ${TEXT_TO_IMAGE_SOURCES} - ${TEXT_EMBEDDINGS_SOURCES} - ${BASE_EMBEDDINGS_SOURCES} - ${BASEMODEL_SOURCES} - ${TOKENIZER_SOURCES} - ${NUMERICAL_SOURCES} - ${JSI_STUBS} +set(IMAGE_UTILS_SOURCES + ${RNEXECUTORCH_DIR}/data_processing/ImageProcessing.cpp + ${RNEXECUTORCH_DIR}/data_processing/base64.cpp + ${COMMON_DIR}/ada/ada.cpp ) -# Libraries linking -target_link_libraries(NumericalTests gtest gtest_main) -target_link_libraries(LogTests gtest gtest_main log) -target_link_libraries(BaseModelTests - PRIVATE - ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so - gtest - gtest_main - log -) -target_link_options(ClassificationTests PRIVATE -fopenmp -static-openmp) -target_link_libraries(ClassificationTests - PRIVATE - ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so - ${OPENCV_LIBS} - ${OPENCV_THIRD_PARTY_LIBS} - z - gtest - gtest_main - log -) -target_link_options(ObjectDetectionTests PRIVATE -fopenmp -static-openmp) -target_link_libraries(ObjectDetectionTests - PRIVATE - ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so - ${OPENCV_LIBS} - ${OPENCV_THIRD_PARTY_LIBS} - z - gtest - gtest_main - log -) -target_link_options(ImageEmbeddingsTests PRIVATE -fopenmp -static-openmp) -target_link_libraries(ImageEmbeddingsTests - PRIVATE - ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so - ${OPENCV_LIBS} - ${OPENCV_THIRD_PARTY_LIBS} - z - gtest - gtest_main - log -) -target_link_libraries(TextEmbeddingsTests - PRIVATE - ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so - ${TOKENIZERS_LIBS} - gtest - gtest_main - log -) -target_link_options(StyleTransferTests PRIVATE -fopenmp -static-openmp) -target_link_libraries(StyleTransferTests - PRIVATE - ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so - ${OPENCV_LIBS} - ${OPENCV_THIRD_PARTY_LIBS} - z - gtest - gtest_main - log -) +set(TOKENIZER_SOURCES ${RNEXECUTORCH_DIR}/TokenizerModule.cpp) +set(DSP_SOURCES ${RNEXECUTORCH_DIR}/data_processing/dsp.cpp) -# target_link_options(ImageSegmentationTests PRIVATE -fopenmp -static-openmp) -# target_link_libraries(ImageSegmentationTests -# PRIVATE -# ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so -# ${OPENCV_LIBS} -# ${OPENCV_THIRD_PARTY_LIBS} -# z -# gtest -# gtest_main -# log -# ) - -target_link_libraries(VADTests - PRIVATE - ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so - gtest - gtest_main - log -) -target_link_libraries(TokenizerModuleTests - PRIVATE - ${TOKENIZERS_LIBS} - gtest - gtest_main - log -) -target_link_libraries(SpeechToTextTests - PRIVATE - ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so - ${TOKENIZERS_LIBS} - z - gtest - gtest_main - log -) -target_link_libraries(LLMTests - PRIVATE - ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so - ${TOKENIZERS_LIBS} - gtest - gtest_main - log -) -target_link_libraries(TextToImageTests - PRIVATE - ${ANDROID_THIRD_PARTY}/executorch/${ANDROID_ABI}/libexecutorch.so - ${TOKENIZERS_LIBS} - gtest - gtest_main - log +# Core Library +add_library(rntests_core STATIC ${CORE_SOURCES}) + +target_include_directories(rntests_core PUBLIC + ${RNEXECUTORCH_DIR}/data_processing + ${RNEXECUTORCH_DIR} + ${COMMON_DIR} + ${PACKAGE_ROOT}/third-party/include + ${REACT_NATIVE_DIR}/ReactCommon + ${REACT_NATIVE_DIR}/ReactCommon/jsi + ${REACT_NATIVE_DIR}/ReactCommon/callinvoker + ${COMMON_DIR}/ada ) -# Add 16kB page size -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,max-page-size=16384") +target_link_libraries(rntests_core PUBLIC + executorch_prebuilt + gtest + log +) -# Testing functionalities enable_testing() -add_test(NAME NumericalTests COMMAND NumericalTests) -add_test(NAME LogTests COMMAND LogTests) -add_test(NAME BaseModelTests COMMAND BaseModelTests) -add_test(NAME ClassificationTests COMMAND ClassificationTests) -add_test(NAME ObjectDetectionTests COMMAND ObjectDetectionTests) -add_test(NAME ImageEmbeddingsTests COMMAND ImageEmbeddingsTests) -add_test(NAME TextEmbeddingsTests COMMAND TextEmbeddingsTests) -add_test(NAME StyleTransferTests COMMAND StyleTransferTests) -add_test(NAME VADTests COMMAND VADTests) -add_test(NAME TokenizerModuleTests COMMAND TokenizerModuleTests) -add_test(NAME SpeechToTextTests COMMAND SpeechToTextTests) -add_test(NAME LLMTests COMMAND LLMTests) -# add_test(NAME ImageSegmentationTests COMMAND ImageSegmentationTests) -add_test(NAME TextToImageTests COMMAND TextToImageTests) +function(add_rn_test TEST_TARGET TEST_FILENAME) + cmake_parse_arguments(ARG "" "" "SOURCES;LIBS" ${ARGN}) + # Create executable using the explicit filename provided + add_executable(${TEST_TARGET} ${TEST_FILENAME} ${ARG_SOURCES}) + + target_link_libraries(${TEST_TARGET} PRIVATE rntests_core gtest_main ${ARG_LIBS}) + target_link_options(${TEST_TARGET} PRIVATE "LINKER:-z,max-page-size=16384") + + add_test(NAME ${TEST_TARGET} COMMAND ${TEST_TARGET}) +endfunction() + +add_rn_test(NumericalTests unit/NumericalTest.cpp) +add_rn_test(LogTests unit/LogTest.cpp) +add_rn_test(BaseModelTests integration/BaseModelTest.cpp) + +add_rn_test(ClassificationTests integration/ClassificationTest.cpp + SOURCES + ${RNEXECUTORCH_DIR}/models/classification/Classification.cpp + ${IMAGE_UTILS_SOURCES} + LIBS opencv_deps +) + +add_rn_test(ObjectDetectionTests integration/ObjectDetectionTest.cpp + SOURCES + ${RNEXECUTORCH_DIR}/models/object_detection/ObjectDetection.cpp + ${RNEXECUTORCH_DIR}/models/object_detection/Utils.cpp + ${IMAGE_UTILS_SOURCES} + LIBS opencv_deps +) + +add_rn_test(ImageEmbeddingsTests integration/ImageEmbeddingsTest.cpp + SOURCES + ${RNEXECUTORCH_DIR}/models/embeddings/image/ImageEmbeddings.cpp + ${RNEXECUTORCH_DIR}/models/embeddings/BaseEmbeddings.cpp + ${IMAGE_UTILS_SOURCES} + LIBS opencv_deps +) + +add_rn_test(TextEmbeddingsTests integration/TextEmbeddingsTest.cpp + SOURCES + ${RNEXECUTORCH_DIR}/models/embeddings/text/TextEmbeddings.cpp + ${RNEXECUTORCH_DIR}/models/embeddings/BaseEmbeddings.cpp + ${TOKENIZER_SOURCES} + LIBS tokenizers_deps +) + +add_rn_test(StyleTransferTests integration/StyleTransferTest.cpp + SOURCES + ${RNEXECUTORCH_DIR}/models/style_transfer/StyleTransfer.cpp + ${IMAGE_UTILS_SOURCES} + LIBS opencv_deps +) + +add_rn_test(VADTests integration/VoiceActivityDetectionTest.cpp + SOURCES + ${RNEXECUTORCH_DIR}/models/voice_activity_detection/VoiceActivityDetection.cpp + ${RNEXECUTORCH_DIR}/models/voice_activity_detection/Utils.cpp + ${DSP_SOURCES} +) + +add_rn_test(TokenizerModuleTests integration/TokenizerModuleTest.cpp + SOURCES ${TOKENIZER_SOURCES} + LIBS tokenizers_deps +) + +add_rn_test(SpeechToTextTests integration/SpeechToTextTest.cpp + SOURCES + ${RNEXECUTORCH_DIR}/models/speech_to_text/SpeechToText.cpp + ${RNEXECUTORCH_DIR}/models/speech_to_text/asr/ASR.cpp + ${RNEXECUTORCH_DIR}/models/speech_to_text/stream/HypothesisBuffer.cpp + ${RNEXECUTORCH_DIR}/models/speech_to_text/stream/OnlineASRProcessor.cpp + ${RNEXECUTORCH_DIR}/data_processing/gzip.cpp + ${TOKENIZER_SOURCES} + ${DSP_SOURCES} + LIBS tokenizers_deps z +) + +add_rn_test(LLMTests integration/LLMTest.cpp + SOURCES + ${RNEXECUTORCH_DIR}/models/llm/LLM.cpp + ${COMMON_DIR}/runner/runner.cpp + ${COMMON_DIR}/runner/text_prefiller.cpp + ${COMMON_DIR}/runner/text_decoder_runner.cpp + ${COMMON_DIR}/runner/sampler.cpp + ${COMMON_DIR}/runner/arange_util.cpp + LIBS tokenizers_deps +) + +add_rn_test(TextToImageTests integration/TextToImageTest.cpp + SOURCES + ${RNEXECUTORCH_DIR}/models/text_to_image/TextToImage.cpp + ${RNEXECUTORCH_DIR}/models/text_to_image/Encoder.cpp + ${RNEXECUTORCH_DIR}/models/text_to_image/UNet.cpp + ${RNEXECUTORCH_DIR}/models/text_to_image/Decoder.cpp + ${RNEXECUTORCH_DIR}/models/text_to_image/Scheduler.cpp + ${RNEXECUTORCH_DIR}/models/embeddings/text/TextEmbeddings.cpp + ${RNEXECUTORCH_DIR}/models/embeddings/BaseEmbeddings.cpp + ${TOKENIZER_SOURCES} + LIBS tokenizers_deps +) + +add_rn_test(OCRTests integration/OCRTest.cpp + SOURCES + ${RNEXECUTORCH_DIR}/models/ocr/OCR.cpp + ${RNEXECUTORCH_DIR}/models/ocr/CTCLabelConverter.cpp + ${RNEXECUTORCH_DIR}/models/ocr/Detector.cpp + ${RNEXECUTORCH_DIR}/models/ocr/RecognitionHandler.cpp + ${RNEXECUTORCH_DIR}/models/ocr/Recognizer.cpp + ${RNEXECUTORCH_DIR}/models/ocr/utils/DetectorUtils.cpp + ${RNEXECUTORCH_DIR}/models/ocr/utils/RecognitionHandlerUtils.cpp + ${RNEXECUTORCH_DIR}/models/ocr/utils/RecognizerUtils.cpp + ${IMAGE_UTILS_SOURCES} + LIBS opencv_deps +) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/BaseModelTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTest.cpp similarity index 100% rename from packages/react-native-executorch/common/rnexecutorch/tests/BaseModelTest.cpp rename to packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTest.cpp diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h new file mode 100644 index 000000000..8be954513 --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h @@ -0,0 +1,95 @@ +#pragma once + +#include "gtest/gtest.h" +#include +#include + +namespace facebook::react { +class CallInvoker; +} + +namespace rnexecutorch { +std::shared_ptr createMockCallInvoker(); +} + +namespace model_tests { + +inline auto getMockInvoker() { return rnexecutorch::createMockCallInvoker(); } + +// Trait struct that each model must specialize +// This defines how to construct and test each model type +template struct ModelTraits; + +// Example of what a specialization looks like: +// +// template<> +// struct ModelTraits { +// using ModelType = Classification; +// +// // Create valid model instance +// static ModelType createValid() { +// return ModelType("valid_model.pte", nullptr); +// } +// +// // Create invalid model instance (should throw in constructor) +// static ModelType createInvalid() { +// return ModelType("nonexistent.pte", nullptr); +// } +// +// // Call the model's generate/forward function with valid input +// // Used to test that generate throws after unload +// static void callGenerate(ModelType& model) { +// (void)model.generate("valid_input.jpg"); +// } +// }; + +// Typed test fixture for common model tests +template class CommonModelTest : public ::testing::Test { +protected: + using Traits = ModelTraits; + using ModelType = typename Traits::ModelType; +}; + +// Define the test suite +TYPED_TEST_SUITE_P(CommonModelTest); + +// Constructor tests +TYPED_TEST_P(CommonModelTest, InvalidPathThrows) { + using Traits = typename TestFixture::Traits; + EXPECT_THROW(Traits::createInvalid(), rnexecutorch::RnExecutorchError); +} + +TYPED_TEST_P(CommonModelTest, ValidPathDoesntThrow) { + using Traits = typename TestFixture::Traits; + EXPECT_NO_THROW(Traits::createValid()); +} + +// Memory tests +TYPED_TEST_P(CommonModelTest, GetMemoryLowerBoundValue) { + using Traits = typename TestFixture::Traits; + auto model = Traits::createValid(); + EXPECT_GT(model.getMemoryLowerBound(), 0u); + model.unload(); + EXPECT_EQ(model.getMemoryLowerBound(), 0u); +} + +// Unload tests +TYPED_TEST_P(CommonModelTest, UnloadDoesntThrow) { + using Traits = typename TestFixture::Traits; + auto model = Traits::createValid(); + EXPECT_NO_THROW(model.unload()); +} + +TYPED_TEST_P(CommonModelTest, GenerateAfterUnloadThrows) { + using Traits = typename TestFixture::Traits; + auto model = Traits::createValid(); + model.unload(); + EXPECT_THROW(Traits::callGenerate(model), rnexecutorch::RnExecutorchError); +} + +// Register all tests in the suite +REGISTER_TYPED_TEST_SUITE_P(CommonModelTest, InvalidPathThrows, + ValidPathDoesntThrow, GetMemoryLowerBoundValue, + UnloadDoesntThrow, GenerateAfterUnloadThrows); + +} // namespace model_tests diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/ClassificationTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ClassificationTest.cpp similarity index 71% rename from packages/react-native-executorch/common/rnexecutorch/tests/ClassificationTest.cpp rename to packages/react-native-executorch/common/rnexecutorch/tests/integration/ClassificationTest.cpp index 87c85841f..5c913c94d 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/ClassificationTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ClassificationTest.cpp @@ -1,26 +1,46 @@ +#include "BaseModelTests.h" #include #include #include #include -#include using namespace rnexecutorch; using namespace rnexecutorch::models::classification; +using namespace model_tests; constexpr auto VALID_CLASSIFICATION_MODEL_PATH = "efficientnet_v2_s_xnnpack.pte"; constexpr auto VALID_TEST_IMAGE_PATH = "file:///data/local/tmp/rnexecutorch_tests/test_image.jpg"; -TEST(ClassificationCtorTests, InvalidPathThrows) { - EXPECT_THROW(Classification("this_file_does_not_exist.pte", nullptr), - RnExecutorchError); -} +// ============================================================================ +// Common tests via typed test suite +// ============================================================================ +namespace model_tests { +template <> struct ModelTraits { + using ModelType = Classification; -TEST(ClassificationCtorTests, ValidPathDoesntThrow) { - EXPECT_NO_THROW(Classification(VALID_CLASSIFICATION_MODEL_PATH, nullptr)); -} + static ModelType createValid() { + return ModelType(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + } + + static ModelType createInvalid() { + return ModelType("nonexistent.pte", nullptr); + } + + static void callGenerate(ModelType &model) { + (void)model.generate(VALID_TEST_IMAGE_PATH); + } +}; +} // namespace model_tests +using ClassificationTypes = ::testing::Types; +INSTANTIATE_TYPED_TEST_SUITE_P(Classification, CommonModelTest, + ClassificationTypes); + +// ============================================================================ +// Model-specific tests +// ============================================================================ TEST(ClassificationGenerateTests, InvalidImagePathThrows) { Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); EXPECT_THROW((void)model.generate("nonexistent_image.jpg"), @@ -66,12 +86,6 @@ TEST(ClassificationGenerateTests, TopPredictionHasReasonableConfidence) { EXPECT_GT(maxProb, 0.0f); } -TEST(ClassificationUnloadTests, GenerateAfterUnloadThrows) { - Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); - model.unload(); - EXPECT_THROW((void)model.generate(VALID_TEST_IMAGE_PATH), RnExecutorchError); -} - TEST(ClassificationInheritedTests, GetInputShapeWorks) { Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); auto shape = model.getInputShape("forward", 0); @@ -91,8 +105,3 @@ TEST(ClassificationInheritedTests, GetMethodMetaWorks) { auto result = model.getMethodMeta("forward"); EXPECT_TRUE(result.ok()); } - -TEST(ClassificationInheritedTests, GetMemoryLowerBoundReturnsPositive) { - Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); - EXPECT_GT(model.getMemoryLowerBound(), 0u); -} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/ImageEmbeddingsTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageEmbeddingsTest.cpp similarity index 73% rename from packages/react-native-executorch/common/rnexecutorch/tests/ImageEmbeddingsTest.cpp rename to packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageEmbeddingsTest.cpp index 5a42ad057..5d3a196cf 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/ImageEmbeddingsTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageEmbeddingsTest.cpp @@ -1,11 +1,12 @@ +#include "BaseModelTests.h" #include #include #include #include -#include using namespace rnexecutorch; using namespace rnexecutorch::models::embeddings; +using namespace model_tests; constexpr auto VALID_IMAGE_EMBEDDINGS_MODEL_PATH = "clip-vit-base-patch32-vision_xnnpack.pte"; @@ -13,15 +14,34 @@ constexpr auto VALID_TEST_IMAGE_PATH = "file:///data/local/tmp/rnexecutorch_tests/test_image.jpg"; constexpr size_t CLIP_EMBEDDING_DIMENSIONS = 512; -TEST(ImageEmbeddingsCtorTests, InvalidPathThrows) { - EXPECT_THROW(ImageEmbeddings("this_file_does_not_exist.pte", nullptr), - RnExecutorchError); -} +// ============================================================================ +// Common tests via typed test suite +// ============================================================================ +namespace model_tests { +template <> struct ModelTraits { + using ModelType = ImageEmbeddings; -TEST(ImageEmbeddingsCtorTests, ValidPathDoesntThrow) { - EXPECT_NO_THROW(ImageEmbeddings(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr)); -} + static ModelType createValid() { + return ModelType(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + } + + static ModelType createInvalid() { + return ModelType("nonexistent.pte", nullptr); + } + + static void callGenerate(ModelType &model) { + (void)model.generate(VALID_TEST_IMAGE_PATH); + } +}; +} // namespace model_tests +using ImageEmbeddingsTypes = ::testing::Types; +INSTANTIATE_TYPED_TEST_SUITE_P(ImageEmbeddings, CommonModelTest, + ImageEmbeddingsTypes); + +// ============================================================================ +// Model-specific tests +// ============================================================================ TEST(ImageEmbeddingsGenerateTests, InvalidImagePathThrows) { ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); EXPECT_THROW((void)model.generate("nonexistent_image.jpg"), @@ -70,12 +90,6 @@ TEST(ImageEmbeddingsGenerateTests, ResultsContainValidValues) { } } -TEST(ImageEmbeddingsUnloadTests, GenerateAfterUnloadThrows) { - ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); - model.unload(); - EXPECT_THROW((void)model.generate(VALID_TEST_IMAGE_PATH), RnExecutorchError); -} - TEST(ImageEmbeddingsInheritedTests, GetInputShapeWorks) { ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); auto shape = model.getInputShape("forward", 0); @@ -95,8 +109,3 @@ TEST(ImageEmbeddingsInheritedTests, GetMethodMetaWorks) { auto result = model.getMethodMeta("forward"); EXPECT_TRUE(result.ok()); } - -TEST(ImageEmbeddingsInheritedTests, GetMemoryLowerBoundReturnsPositive) { - ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); - EXPECT_GT(model.getMemoryLowerBound(), 0u); -} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageSegmentationTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageSegmentationTest.cpp new file mode 100644 index 000000000..1d4835c66 --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageSegmentationTest.cpp @@ -0,0 +1,201 @@ +#include +#include +#include +#include +#include +#include + +#include + +using namespace rnexecutorch; +using namespace rnexecutorch::models::image_segmentation; +using executorch::extension::make_tensor_ptr; +using executorch::extension::TensorPtr; +using executorch::runtime::EValue; + +constexpr auto VALID_IMAGE_SEGMENTATION_MODEL_PATH = + "deeplabV3_xnnpack_fp32.pte"; + +TEST(ImageSegmentationCtorTests, InvalidPathThrows) { + EXPECT_THROW(ImageSegmentation("this_file_does_not_exist.pte", nullptr), + RnExecutorchError); +} + +TEST(ImageSegmentationCtorTests, ValidPathDoesntThrow) { + EXPECT_NO_THROW( + ImageSegmentation(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr)); +} + +TEST(ImageSegmentationForwardTests, ForwardWithValidTensorSucceeds) { + ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); + auto shapes = model.getAllInputShapes("forward"); + ASSERT_FALSE(shapes.empty()); + auto &shape = shapes[0]; + + size_t numElements = 1; + for (auto dim : shape) { + numElements *= dim; + } + std::vector dummyData(numElements, 0.5f); + + std::vector sizes(shape.begin(), shape.end()); + TensorPtr inputTensor = + make_tensor_ptr(sizes, dummyData.data(), exec_aten::ScalarType::Float); + + auto result = model.forward(EValue(inputTensor)); + EXPECT_TRUE(result.ok()); +} + +TEST(ImageSegmentationForwardTests, ForwardOutputHasCorrectDimensions) { + ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); + auto shapes = model.getAllInputShapes("forward"); + ASSERT_FALSE(shapes.empty()); + auto &shape = shapes[0]; + + size_t numElements = 1; + for (auto dim : shape) { + numElements *= dim; + } + std::vector dummyData(numElements, 0.5f); + + std::vector sizes(shape.begin(), shape.end()); + TensorPtr inputTensor = + make_tensor_ptr(sizes, dummyData.data(), exec_aten::ScalarType::Float); + + auto result = model.forward(EValue(inputTensor)); + ASSERT_TRUE(result.ok()); + + auto &outputs = result.get(); + ASSERT_FALSE(outputs.empty()); + + auto outputTensor = outputs[0].toTensor(); + EXPECT_EQ(outputTensor.dim(), 4); // NCHW format +} + +TEST(ImageSegmentationForwardTests, ForwardOutputHas21Classes) { + ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); + auto shapes = model.getAllInputShapes("forward"); + ASSERT_FALSE(shapes.empty()); + auto &shape = shapes[0]; + + size_t numElements = 1; + for (auto dim : shape) { + numElements *= dim; + } + std::vector dummyData(numElements, 0.5f); + + std::vector sizes(shape.begin(), shape.end()); + TensorPtr inputTensor = + make_tensor_ptr(sizes, dummyData.data(), exec_aten::ScalarType::Float); + + auto result = model.forward(EValue(inputTensor)); + ASSERT_TRUE(result.ok()); + + auto &outputs = result.get(); + ASSERT_FALSE(outputs.empty()); + + auto outputTensor = outputs[0].toTensor(); + EXPECT_EQ(outputTensor.size(1), 21); // DeepLabV3 has 21 classes +} + +TEST(ImageSegmentationForwardTests, MultipleForwardsWork) { + ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); + auto shapes = model.getAllInputShapes("forward"); + ASSERT_FALSE(shapes.empty()); + auto &shape = shapes[0]; + + size_t numElements = 1; + for (auto dim : shape) { + numElements *= dim; + } + std::vector dummyData(numElements, 0.5f); + + std::vector sizes(shape.begin(), shape.end()); + TensorPtr inputTensor = + make_tensor_ptr(sizes, dummyData.data(), exec_aten::ScalarType::Float); + + auto result1 = model.forward(EValue(inputTensor)); + EXPECT_TRUE(result1.ok()); + + auto result2 = model.forward(EValue(inputTensor)); + EXPECT_TRUE(result2.ok()); +} + +TEST(ImageSegmentationUnloadTests, ForwardAfterUnloadThrows) { + ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); + auto shapes = model.getAllInputShapes("forward"); + ASSERT_FALSE(shapes.empty()); + auto &shape = shapes[0]; + + size_t numElements = 1; + for (auto dim : shape) { + numElements *= dim; + } + std::vector dummyData(numElements, 0.5f); + + std::vector sizes(shape.begin(), shape.end()); + TensorPtr inputTensor = + make_tensor_ptr(sizes, dummyData.data(), exec_aten::ScalarType::Float); + + model.unload(); + EXPECT_THROW((void)model.forward(EValue(inputTensor)), RnExecutorchError); +} + +TEST(ImageSegmentationInheritedTests, GetInputShapeWorks) { + ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); + auto shape = model.getInputShape("forward", 0); + EXPECT_EQ(shape.size(), 4); + EXPECT_EQ(shape[0], 1); // Batch size + EXPECT_EQ(shape[1], 3); // RGB channels +} + +TEST(ImageSegmentationInheritedTests, GetAllInputShapesWorks) { + ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); + auto shapes = model.getAllInputShapes("forward"); + EXPECT_FALSE(shapes.empty()); +} + +TEST(ImageSegmentationInheritedTests, GetMethodMetaWorks) { + ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); + auto result = model.getMethodMeta("forward"); + EXPECT_TRUE(result.ok()); +} + +TEST(ImageSegmentationInheritedTests, GetMemoryLowerBoundReturnsPositive) { + ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); + EXPECT_GT(model.getMemoryLowerBound(), 0u); +} + +TEST(ImageSegmentationInheritedTests, InputShapeIsSquare) { + ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); + auto shape = model.getInputShape("forward", 0); + EXPECT_EQ(shape[2], shape[3]); // Height == Width for DeepLabV3 +} + +TEST(ImageSegmentationConstantsTests, ClassLabelsHas21Entries) { + EXPECT_EQ(constants::kDeeplabV3Resnet50Labels.size(), 21u); +} + +TEST(ImageSegmentationConstantsTests, ClassLabelsContainExpectedClasses) { + auto &labels = constants::kDeeplabV3Resnet50Labels; + bool hasBackground = false; + bool hasPerson = false; + bool hasCat = false; + bool hasDog = false; + + for (const auto &label : labels) { + if (label == "BACKGROUND") + hasBackground = true; + if (label == "PERSON") + hasPerson = true; + if (label == "CAT") + hasCat = true; + if (label == "DOG") + hasDog = true; + } + + EXPECT_TRUE(hasBackground); + EXPECT_TRUE(hasPerson); + EXPECT_TRUE(hasCat); + EXPECT_TRUE(hasDog); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/LLMTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/LLMTest.cpp similarity index 72% rename from packages/react-native-executorch/common/rnexecutorch/tests/LLMTest.cpp rename to packages/react-native-executorch/common/rnexecutorch/tests/integration/LLMTest.cpp index b5a19a097..fbe646a64 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/LLMTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/LLMTest.cpp @@ -1,3 +1,4 @@ +#include "BaseModelTests.h" #include #include #include @@ -8,6 +9,7 @@ using namespace rnexecutorch; using namespace rnexecutorch::models::llm; +using namespace model_tests; constexpr auto VALID_MODEL_PATH = "smolLm2_135M_8da4w.pte"; constexpr auto VALID_TOKENIZER_PATH = "smollm_tokenizer.json"; @@ -27,6 +29,36 @@ std::string formatChatML(const std::string &systemPrompt, "<|im_start|>assistant\n"; } +// ============================================================================ +// Common tests via typed test suite +// ============================================================================ +namespace model_tests { +template <> struct ModelTraits { + using ModelType = LLM; + + static ModelType createValid() { + return ModelType(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, + rnexecutorch::createMockCallInvoker()); + } + + static ModelType createInvalid() { + return ModelType("nonexistent.pte", VALID_TOKENIZER_PATH, + rnexecutorch::createMockCallInvoker()); + } + + static void callGenerate(ModelType &model) { + std::string prompt = formatChatML(SYSTEM_PROMPT, "Hello"); + (void)model.generate(prompt, nullptr); + } +}; +} // namespace model_tests + +using LLMTypes = ::testing::Types; +INSTANTIATE_TYPED_TEST_SUITE_P(LLM, CommonModelTest, LLMTypes); + +// ============================================================================ +// LLM-specific fixture tests +// ============================================================================ class LLMTest : public ::testing::Test { protected: std::shared_ptr mockInvoker_; @@ -34,19 +66,6 @@ class LLMTest : public ::testing::Test { void SetUp() override { mockInvoker_ = createMockCallInvoker(); } }; -TEST_F(LLMTest, LoadModel) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); - // Model loads in constructor, if we get here it succeeded - SUCCEED(); -} - -TEST_F(LLMTest, GetMemoryLowerBound) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); - size_t memoryBound = model.getMemoryLowerBound(); - // Should be at least the size of the model file - EXPECT_GT(memoryBound, 0); -} - TEST_F(LLMTest, GetGeneratedTokenCountInitiallyZero) { LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); EXPECT_EQ(model.getGeneratedTokenCount(), 0); @@ -62,7 +81,6 @@ TEST_F(LLMTest, SetTemperature) { TEST_F(LLMTest, SetTopp) { LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); - // Should not throw EXPECT_NO_THROW(model.setTopp(0.9f)); EXPECT_NO_THROW(model.setTopp(0.5f)); EXPECT_NO_THROW(model.setTopp(1.0f)); @@ -80,17 +98,9 @@ TEST_F(LLMTest, SetTimeInterval) { EXPECT_NO_THROW(model.setTimeInterval(500)); } -TEST_F(LLMTest, UnloadModel) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); - EXPECT_NO_THROW(model.unload()); - // After unload, generated token count should still return 0 - EXPECT_EQ(model.getGeneratedTokenCount(), 0); -} - TEST_F(LLMTest, InterruptThrowsWhenUnloaded) { LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); model.unload(); - // Should throw since model is unloaded EXPECT_THROW(model.interrupt(), RnExecutorchError); } @@ -104,12 +114,13 @@ TEST_F(LLMTest, SettersThrowWhenUnloaded) { EXPECT_THROW(model.setTimeInterval(100), RnExecutorchError); } -TEST_F(LLMTest, GenerateProducesOutput) { +TEST_F(LLMTest, GenerateProducesValidOutput) { LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + model.setTemperature(0.0f); std::string prompt = formatChatML(SYSTEM_PROMPT, "Repeat exactly this: `naszponcilem testy`"); std::string output = model.generate(prompt, nullptr); - EXPECT_FALSE(output.empty()); + EXPECT_EQ(output, "`naszponcilem testy`<|im_end|>"); } TEST_F(LLMTest, GenerateUpdatesTokenCount) { @@ -120,11 +131,3 @@ TEST_F(LLMTest, GenerateUpdatesTokenCount) { model.generate(prompt, nullptr); EXPECT_GT(model.getGeneratedTokenCount(), 0); } - -TEST_F(LLMTest, GenerateThrowsWhenUnloaded) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); - model.unload(); - std::string prompt = - formatChatML(SYSTEM_PROMPT, "Repeat exactly this: `naszponcilem testy`"); - EXPECT_THROW(model.generate(prompt, nullptr), RnExecutorchError); -} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp new file mode 100644 index 000000000..868981b03 --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp @@ -0,0 +1,111 @@ +#include "BaseModelTests.h" +#include +#include +#include +#include + +using namespace rnexecutorch; +using namespace rnexecutorch::models::ocr; +using namespace model_tests; + +namespace rnexecutorch { +std::shared_ptr createMockCallInvoker(); +} + +constexpr auto VALID_DETECTOR_PATH = "xnnpack_craft_quantized.pte"; +constexpr auto VALID_RECOGNIZER_PATH = "xnnpack_crnn_english.pte"; +constexpr auto VALID_TEST_IMAGE_PATH = + "file:///data/local/tmp/rnexecutorch_tests/we_are_software_mansion.jpg"; + +// English alphabet symbols (must match alphabets.english from symbols.ts) +const std::string ENGLISH_SYMBOLS = + "0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ " + "\xE2\x82\xAC" // Euro sign (€) + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + +// ============================================================================ +// Common tests via typed test suite +// ============================================================================ +namespace model_tests { +template <> struct ModelTraits { + using ModelType = OCR; + + static ModelType createValid() { + return ModelType(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, + ENGLISH_SYMBOLS, rnexecutorch::createMockCallInvoker()); + } + + static ModelType createInvalid() { + return ModelType("nonexistent.pte", VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + rnexecutorch::createMockCallInvoker()); + } + + static void callGenerate(ModelType &model) { + (void)model.generate(VALID_TEST_IMAGE_PATH); + } +}; +} // namespace model_tests + +using OCRTypes = ::testing::Types; +INSTANTIATE_TYPED_TEST_SUITE_P(OCR, CommonModelTest, OCRTypes); + +// ============================================================================ +// Model-specific tests +// ============================================================================ +TEST(OCRCtorTests, InvalidRecognizerPathThrows) { + EXPECT_THROW(OCR(VALID_DETECTOR_PATH, "nonexistent.pte", ENGLISH_SYMBOLS, + createMockCallInvoker()), + RnExecutorchError); +} + +TEST(OCRGenerateTests, InvalidImagePathThrows) { + OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + createMockCallInvoker()); + EXPECT_THROW((void)model.generate("nonexistent_image.jpg"), + RnExecutorchError); +} + +TEST(OCRGenerateTests, ValidImageReturnsResults) { + OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + createMockCallInvoker()); + auto results = model.generate(VALID_TEST_IMAGE_PATH); + // May or may not have detections depending on image content + EXPECT_GE(results.size(), 0u); +} + +TEST(OCRGenerateTests, DetectionsHaveValidBoundingBoxes) { + OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + createMockCallInvoker()); + auto results = model.generate(VALID_TEST_IMAGE_PATH); + + for (const auto &detection : results) { + // Each bbox should have 4 points + EXPECT_EQ(detection.bbox.size(), 4u); + for (const auto &point : detection.bbox) { + EXPECT_GE(point.x, 0.0f); + EXPECT_GE(point.y, 0.0f); + } + } +} + +TEST(OCRGenerateTests, DetectionsHaveValidScores) { + OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + createMockCallInvoker()); + auto results = model.generate(VALID_TEST_IMAGE_PATH); + + for (const auto &detection : results) { + EXPECT_GE(detection.score, 0.0f); + EXPECT_LE(detection.score, 1.0f); + } +} + +TEST(OCRGenerateTests, DetectionsHaveNonEmptyText) { + OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + createMockCallInvoker()); + auto results = model.generate(VALID_TEST_IMAGE_PATH); + for (const auto &detection : results) { + // If there's a detection, it should have text + std::cout << detection.text << std::endl; + EXPECT_FALSE(detection.text.empty()); + } +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/ObjectDetectionTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ObjectDetectionTest.cpp similarity index 73% rename from packages/react-native-executorch/common/rnexecutorch/tests/ObjectDetectionTest.cpp rename to packages/react-native-executorch/common/rnexecutorch/tests/integration/ObjectDetectionTest.cpp index 718840a28..5ce21b149 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/ObjectDetectionTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ObjectDetectionTest.cpp @@ -1,26 +1,46 @@ +#include "BaseModelTests.h" #include #include #include #include -#include using namespace rnexecutorch; using namespace rnexecutorch::models::object_detection; +using namespace model_tests; constexpr auto VALID_OBJECT_DETECTION_MODEL_PATH = "ssdlite320-mobilenetv3-large.pte"; constexpr auto VALID_TEST_IMAGE_PATH = "file:///data/local/tmp/rnexecutorch_tests/test_image.jpg"; -TEST(ObjectDetectionCtorTests, InvalidPathThrows) { - EXPECT_THROW(ObjectDetection("this_file_does_not_exist.pte", nullptr), - RnExecutorchError); -} +// ============================================================================ +// Common tests via typed test suite +// ============================================================================ +namespace model_tests { +template <> struct ModelTraits { + using ModelType = ObjectDetection; -TEST(ObjectDetectionCtorTests, ValidPathDoesntThrow) { - EXPECT_NO_THROW(ObjectDetection(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr)); -} + static ModelType createValid() { + return ModelType(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + } + + static ModelType createInvalid() { + return ModelType("nonexistent.pte", nullptr); + } + + static void callGenerate(ModelType &model) { + (void)model.generate(VALID_TEST_IMAGE_PATH, 0.5); + } +}; +} // namespace model_tests +using ObjectDetectionTypes = ::testing::Types; +INSTANTIATE_TYPED_TEST_SUITE_P(ObjectDetection, CommonModelTest, + ObjectDetectionTypes); + +// ============================================================================ +// Model-specific tests +// ============================================================================ TEST(ObjectDetectionGenerateTests, InvalidImagePathThrows) { ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); EXPECT_THROW((void)model.generate("nonexistent_image.jpg", 0.5), @@ -30,7 +50,6 @@ TEST(ObjectDetectionGenerateTests, InvalidImagePathThrows) { TEST(ObjectDetectionGenerateTests, ValidImageReturnsResults) { ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); auto results = model.generate(VALID_TEST_IMAGE_PATH, 0.3); - // May or may not have detections depending on image content EXPECT_GE(results.size(), 0u); } @@ -72,13 +91,6 @@ TEST(ObjectDetectionGenerateTests, DetectionsHaveValidLabels) { } } -TEST(ObjectDetectionUnloadTests, GenerateAfterUnloadThrows) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); - model.unload(); - EXPECT_THROW((void)model.generate(VALID_TEST_IMAGE_PATH, 0.5), - RnExecutorchError); -} - TEST(ObjectDetectionInheritedTests, GetInputShapeWorks) { ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); auto shape = model.getInputShape("forward", 0); @@ -98,8 +110,3 @@ TEST(ObjectDetectionInheritedTests, GetMethodMetaWorks) { auto result = model.getMethodMeta("forward"); EXPECT_TRUE(result.ok()); } - -TEST(ObjectDetectionInheritedTests, GetMemoryLowerBoundReturnsPositive) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); - EXPECT_GT(model.getMemoryLowerBound(), 0u); -} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/SpeechToTextTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp similarity index 65% rename from packages/react-native-executorch/common/rnexecutorch/tests/SpeechToTextTest.cpp rename to packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp index c4274e1ce..75afa425d 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/SpeechToTextTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp @@ -1,3 +1,4 @@ +#include "BaseModelTests.h" #include "TestUtils.h" #include #include @@ -6,17 +7,43 @@ using namespace rnexecutorch; using namespace rnexecutorch::models::speech_to_text; using namespace test_utils; +using namespace model_tests; constexpr auto VALID_ENCODER_PATH = "whisper_tiny_en_encoder_xnnpack.pte"; constexpr auto VALID_DECODER_PATH = "whisper_tiny_en_decoder_xnnpack.pte"; constexpr auto VALID_TOKENIZER_PATH = "whisper_tokenizer.json"; -TEST(S2TCtorTests, InvalidEncoderPathThrows) { - EXPECT_THROW(SpeechToText("nonexistent.pte", VALID_DECODER_PATH, - VALID_TOKENIZER_PATH, nullptr), - RnExecutorchError); -} +// ============================================================================ +// Common tests via typed test suite +// ============================================================================ +namespace model_tests { +template <> struct ModelTraits { + using ModelType = SpeechToText; + + static ModelType createValid() { + return ModelType(VALID_ENCODER_PATH, VALID_DECODER_PATH, + VALID_TOKENIZER_PATH, nullptr); + } + + static ModelType createInvalid() { + return ModelType("nonexistent.pte", VALID_DECODER_PATH, + VALID_TOKENIZER_PATH, nullptr); + } + + static void callGenerate(ModelType &model) { + auto audio = test_utils::loadAudioFromFile("test_audio_float.raw"); + (void)model.transcribe(audio, "en"); + } +}; +} // namespace model_tests + +using SpeechToTextTypes = ::testing::Types; +INSTANTIATE_TYPED_TEST_SUITE_P(SpeechToText, CommonModelTest, + SpeechToTextTypes); +// ============================================================================ +// Model-specific tests +// ============================================================================ TEST(S2TCtorTests, InvalidDecoderPathThrows) { EXPECT_THROW(SpeechToText(VALID_ENCODER_PATH, "nonexistent.pte", VALID_TOKENIZER_PATH, nullptr), @@ -29,11 +56,6 @@ TEST(S2TCtorTests, InvalidTokenizerPathThrows) { RnExecutorchError); } -TEST(S2TCtorTests, ValidPathsDoesntThrow) { - EXPECT_NO_THROW(SpeechToText(VALID_ENCODER_PATH, VALID_DECODER_PATH, - VALID_TOKENIZER_PATH, nullptr)); -} - TEST(S2TEncodeTests, EncodeReturnsNonNull) { SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, VALID_TOKENIZER_PATH, nullptr); @@ -64,18 +86,3 @@ TEST(S2TTranscribeTests, EmptyResultOnSilence) { auto result = model.transcribe(audio, "en"); EXPECT_TRUE(result.empty()); } - -TEST(S2TMemoryTests, MemoryLowerBoundIsPositive) { - SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, - VALID_TOKENIZER_PATH, nullptr); - EXPECT_GT(model.getMemoryLowerBound(), 0u); -} - -TEST(S2TUnloadTests, TranscribeAfterUnloadThrows) { - SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, - VALID_TOKENIZER_PATH, nullptr); - model.unload(); - auto audio = loadAudioFromFile("test_audio_float.raw"); - ASSERT_FALSE(audio.empty()); - EXPECT_THROW((void)model.transcribe(audio, "en"), RnExecutorchError); -} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/StyleTransferTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/StyleTransferTest.cpp similarity index 71% rename from packages/react-native-executorch/common/rnexecutorch/tests/StyleTransferTest.cpp rename to packages/react-native-executorch/common/rnexecutorch/tests/integration/StyleTransferTest.cpp index f47ff9878..faaaec33c 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/StyleTransferTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/StyleTransferTest.cpp @@ -1,27 +1,47 @@ +#include "BaseModelTests.h" #include "TestUtils.h" #include #include #include #include -#include using namespace rnexecutorch; using namespace rnexecutorch::models::style_transfer; +using namespace model_tests; constexpr auto VALID_STYLE_TRANSFER_MODEL_PATH = "style_transfer_candy_xnnpack.pte"; constexpr auto VALID_TEST_IMAGE_PATH = "file:///data/local/tmp/rnexecutorch_tests/test_image.jpg"; -TEST(StyleTransferCtorTests, InvalidPathThrows) { - EXPECT_THROW(StyleTransfer("this_file_does_not_exist.pte", nullptr), - RnExecutorchError); -} +// ============================================================================ +// Common tests via typed test suite +// ============================================================================ +namespace model_tests { +template <> struct ModelTraits { + using ModelType = StyleTransfer; -TEST(StyleTransferCtorTests, ValidPathDoesntThrow) { - EXPECT_NO_THROW(StyleTransfer(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr)); -} + static ModelType createValid() { + return ModelType(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + } + + static ModelType createInvalid() { + return ModelType("nonexistent.pte", nullptr); + } + + static void callGenerate(ModelType &model) { + (void)model.generate(VALID_TEST_IMAGE_PATH); + } +}; +} // namespace model_tests + +using StyleTransferTypes = ::testing::Types; +INSTANTIATE_TYPED_TEST_SUITE_P(StyleTransfer, CommonModelTest, + StyleTransferTypes); +// ============================================================================ +// Model-specific tests +// ============================================================================ TEST(StyleTransferGenerateTests, InvalidImagePathThrows) { StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); EXPECT_THROW((void)model.generate("nonexistent_image.jpg"), @@ -60,12 +80,6 @@ TEST(StyleTransferGenerateTests, MultipleGeneratesWork) { EXPECT_TRUE(std::filesystem::exists(result2)); } -TEST(StyleTransferUnloadTests, GenerateAfterUnloadThrows) { - StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); - model.unload(); - EXPECT_THROW((void)model.generate(VALID_TEST_IMAGE_PATH), RnExecutorchError); -} - TEST(StyleTransferInheritedTests, GetInputShapeWorks) { StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); auto shape = model.getInputShape("forward", 0); @@ -85,8 +99,3 @@ TEST(StyleTransferInheritedTests, GetMethodMetaWorks) { auto result = model.getMethodMeta("forward"); EXPECT_TRUE(result.ok()); } - -TEST(StyleTransferInheritedTests, GetMemoryLowerBoundReturnsPositive) { - StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); - EXPECT_GT(model.getMemoryLowerBound(), 0u); -} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/TestUtils.h b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TestUtils.h similarity index 62% rename from packages/react-native-executorch/common/rnexecutorch/tests/TestUtils.h rename to packages/react-native-executorch/common/rnexecutorch/tests/integration/TestUtils.h index 85222b4b2..1e0240815 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/TestUtils.h +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TestUtils.h @@ -1,6 +1,5 @@ #pragma once -#include #include #include #include @@ -34,16 +33,4 @@ inline std::vector generateSilence(size_t numSamples) { return std::vector(numSamples, 0.0f); } -inline std::vector generateSpeechLikeAudio(size_t numSamples, - size_t sampleRate = 16000) { - std::vector waveform(numSamples); - for (size_t i = 0; i < numSamples; ++i) { - float t = static_cast(i) / sampleRate; - waveform[i] = 0.3f * std::sin(2.0f * M_PI * 200.0f * t) + - 0.2f * std::sin(2.0f * M_PI * 400.0f * t) + - 0.1f * std::sin(2.0f * M_PI * 800.0f * t); - } - return waveform; -} - } // namespace test_utils diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/TextEmbeddingsTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextEmbeddingsTest.cpp similarity index 80% rename from packages/react-native-executorch/common/rnexecutorch/tests/TextEmbeddingsTest.cpp rename to packages/react-native-executorch/common/rnexecutorch/tests/integration/TextEmbeddingsTest.cpp index 8ef0a8cd0..5e99f5d3a 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/TextEmbeddingsTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextEmbeddingsTest.cpp @@ -1,3 +1,4 @@ +#include "BaseModelTests.h" #include #include #include @@ -6,30 +7,49 @@ using namespace rnexecutorch; using namespace rnexecutorch::models::embeddings; +using namespace model_tests; constexpr auto VALID_TEXT_EMBEDDINGS_MODEL_PATH = "all-MiniLM-L6-v2_xnnpack.pte"; constexpr auto VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH = "tokenizer.json"; constexpr size_t MINILM_EMBEDDING_DIMENSIONS = 384; -TEST(TextEmbeddingsCtorTests, InvalidModelPathThrows) { - EXPECT_THROW(TextEmbeddings("this_file_does_not_exist.pte", - VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr), - RnExecutorchError); -} +// ============================================================================ +// Common tests via typed test suite +// ============================================================================ +namespace model_tests { +template <> struct ModelTraits { + using ModelType = TextEmbeddings; + + static ModelType createValid() { + return ModelType(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + } + + static ModelType createInvalid() { + return ModelType("nonexistent.pte", VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, + nullptr); + } + static void callGenerate(ModelType &model) { + (void)model.generate("Hello, world!"); + } +}; +} // namespace model_tests + +using TextEmbeddingsTypes = ::testing::Types; +INSTANTIATE_TYPED_TEST_SUITE_P(TextEmbeddings, CommonModelTest, + TextEmbeddingsTypes); + +// ============================================================================ +// Model-specific tests +// ============================================================================ TEST(TextEmbeddingsCtorTests, InvalidTokenizerPathThrows) { EXPECT_THROW(TextEmbeddings(VALID_TEXT_EMBEDDINGS_MODEL_PATH, "this_tokenizer_does_not_exist.json", nullptr), std::exception); } -TEST(TextEmbeddingsCtorTests, ValidPathsDoesntThrow) { - EXPECT_NO_THROW(TextEmbeddings(VALID_TEXT_EMBEDDINGS_MODEL_PATH, - VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, - nullptr)); -} - TEST(TextEmbeddingsGenerateTests, EmptyStringReturnsResults) { TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); @@ -123,13 +143,6 @@ TEST(TextEmbeddingsGenerateTests, SimilarTextProducesSimilarEmbeddings) { EXPECT_GT(dotProduct, 0.5f); } -TEST(TextEmbeddingsUnloadTests, GenerateAfterUnloadThrows) { - TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, - VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); - model.unload(); - EXPECT_THROW((void)model.generate("Test"), RnExecutorchError); -} - TEST(TextEmbeddingsInheritedTests, GetInputShapeWorks) { TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); @@ -150,9 +163,3 @@ TEST(TextEmbeddingsInheritedTests, GetMethodMetaWorks) { auto result = model.getMethodMeta("forward"); EXPECT_TRUE(result.ok()); } - -TEST(TextEmbeddingsInheritedTests, GetMemoryLowerBoundReturnsPositive) { - TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, - VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); - EXPECT_GT(model.getMemoryLowerBound(), 0u); -} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/TextToImageTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp similarity index 60% rename from packages/react-native-executorch/common/rnexecutorch/tests/TextToImageTest.cpp rename to packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp index 19488ea9f..515ce05b3 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/TextToImageTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp @@ -1,3 +1,4 @@ +#include "BaseModelTests.h" #include #include #include @@ -5,6 +6,7 @@ using namespace rnexecutorch; using namespace rnexecutorch::models::text_to_image; +using namespace model_tests; namespace rnexecutorch { std::shared_ptr createMockCallInvoker(); @@ -20,23 +22,47 @@ constexpr float SCHEDULER_BETA_END = 0.012f; constexpr int32_t SCHEDULER_NUM_TRAIN_TIMESTEPS = 1000; constexpr int32_t SCHEDULER_STEPS_OFFSET = 1; -static auto getMockInvoker() { return createMockCallInvoker(); } +// ============================================================================ +// Common tests via typed test suite +// ============================================================================ +namespace model_tests { +template <> struct ModelTraits { + using ModelType = TextToImage; + + static ModelType createValid() { + return ModelType(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, + VALID_DECODER_PATH, SCHEDULER_BETA_START, + SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, + rnexecutorch::createMockCallInvoker()); + } -TEST(TextToImageCtorTests, InvalidTokenizerPathThrows) { - EXPECT_THROW(TextToImage("nonexistent.json", VALID_ENCODER_PATH, - VALID_UNET_PATH, VALID_DECODER_PATH, - SCHEDULER_BETA_START, SCHEDULER_BETA_END, - SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, getMockInvoker()), - RnExecutorchError); -} + static ModelType createInvalid() { + return ModelType("nonexistent.json", VALID_ENCODER_PATH, VALID_UNET_PATH, + VALID_DECODER_PATH, SCHEDULER_BETA_START, + SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, + rnexecutorch::createMockCallInvoker()); + } + static void callGenerate(ModelType &model) { + (void)model.generate("a cat", 128, 1, 42, nullptr); + } +}; +} // namespace model_tests + +using TextToImageTypes = ::testing::Types; +INSTANTIATE_TYPED_TEST_SUITE_P(TextToImage, CommonModelTest, TextToImageTypes); + +// ============================================================================ +// Model-specific tests +// ============================================================================ TEST(TextToImageCtorTests, InvalidEncoderPathThrows) { EXPECT_THROW(TextToImage(VALID_TOKENIZER_PATH, "nonexistent.pte", VALID_UNET_PATH, VALID_DECODER_PATH, SCHEDULER_BETA_START, SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, getMockInvoker()), + SCHEDULER_STEPS_OFFSET, createMockCallInvoker()), RnExecutorchError); } @@ -45,7 +71,7 @@ TEST(TextToImageCtorTests, InvalidUnetPathThrows) { "nonexistent.pte", VALID_DECODER_PATH, SCHEDULER_BETA_START, SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, getMockInvoker()), + SCHEDULER_STEPS_OFFSET, createMockCallInvoker()), RnExecutorchError); } @@ -54,39 +80,15 @@ TEST(TextToImageCtorTests, InvalidDecoderPathThrows) { VALID_UNET_PATH, "nonexistent.pte", SCHEDULER_BETA_START, SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, getMockInvoker()), + SCHEDULER_STEPS_OFFSET, createMockCallInvoker()), RnExecutorchError); } -TEST(TextToImageCtorTests, ValidPathsDoesntThrow) { - EXPECT_NO_THROW(TextToImage( - VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, - VALID_DECODER_PATH, SCHEDULER_BETA_START, SCHEDULER_BETA_END, - SCHEDULER_NUM_TRAIN_TIMESTEPS, SCHEDULER_STEPS_OFFSET, getMockInvoker())); -} - -TEST(TextToImageMemoryTests, GetMemoryLowerBoundReturnsPositive) { - TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, - VALID_DECODER_PATH, SCHEDULER_BETA_START, - SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, getMockInvoker()); - EXPECT_GT(model.getMemoryLowerBound(), 0u); -} - -TEST(TextToImageUnloadTests, UnloadDoesntThrow) { - TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, - VALID_DECODER_PATH, SCHEDULER_BETA_START, - SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, getMockInvoker()); - EXPECT_NO_THROW(model.unload()); -} - TEST(TextToImageGenerateTests, InvalidImageSizeThrows) { TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, VALID_DECODER_PATH, SCHEDULER_BETA_START, SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, getMockInvoker()); - // Image size must be multiple of 32 + SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); EXPECT_THROW((void)model.generate("a cat", 100, 1, 42, nullptr), RnExecutorchError); } @@ -95,8 +97,7 @@ TEST(TextToImageGenerateTests, GenerateReturnsNonNull) { TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, VALID_DECODER_PATH, SCHEDULER_BETA_START, SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, getMockInvoker()); - // Use minimal settings: 128x128 image, 1 inference step + SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); auto result = model.generate("a cat", 128, 1, 42, nullptr); EXPECT_NE(result, nullptr); } @@ -105,11 +106,10 @@ TEST(TextToImageGenerateTests, GenerateReturnsCorrectSize) { TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, VALID_DECODER_PATH, SCHEDULER_BETA_START, SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, getMockInvoker()); + SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); int32_t imageSize = 128; auto result = model.generate("a cat", imageSize, 1, 42, nullptr); ASSERT_NE(result, nullptr); - // Output is RGBA, so 4 bytes per pixel size_t expectedSize = imageSize * imageSize * 4; EXPECT_EQ(result->size(), expectedSize); } @@ -118,7 +118,7 @@ TEST(TextToImageGenerateTests, SameSeedProducesSameResult) { TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, VALID_DECODER_PATH, SCHEDULER_BETA_START, SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, getMockInvoker()); + SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); auto result1 = model.generate("a cat", 128, 1, 42, nullptr); auto result2 = model.generate("a cat", 128, 1, 42, nullptr); ASSERT_NE(result1, nullptr); @@ -136,11 +136,3 @@ TEST(TextToImageGenerateTests, SameSeedProducesSameResult) { } EXPECT_TRUE(same); } - -TEST(TextToImageInterruptTests, InterruptDoesntThrow) { - TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, - VALID_DECODER_PATH, SCHEDULER_BETA_START, - SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, getMockInvoker()); - EXPECT_NO_THROW(model.interrupt()); -} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/TokenizerModuleTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TokenizerModuleTest.cpp similarity index 98% rename from packages/react-native-executorch/common/rnexecutorch/tests/TokenizerModuleTest.cpp rename to packages/react-native-executorch/common/rnexecutorch/tests/integration/TokenizerModuleTest.cpp index 9e28754ab..02a64dd77 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/TokenizerModuleTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TokenizerModuleTest.cpp @@ -1,8 +1,6 @@ #include #include #include -#include -#include using namespace rnexecutorch; @@ -17,6 +15,11 @@ TEST(TokenizerCtorTests, ValidPathDoesntThrow) { EXPECT_NO_THROW(TokenizerModule(VALID_TOKENIZER_PATH, nullptr)); } +TEST(TokenizerMemoryTests, MemoryLowerBoundIsPositive) { + TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + EXPECT_GT(tokenizer.getMemoryLowerBound(), 0u); +} + TEST(TokenizerEncodeTests, EmptyStringReturnsEmptyString) { TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); auto tokens = tokenizer.encode(""); @@ -81,8 +84,3 @@ TEST(TokenizerVocabTests, VocabSizeIsReasonable) { EXPECT_GT(vocabSize, 1000u); EXPECT_LT(vocabSize, 1000000u); } - -TEST(TokenizerMemoryTests, MemoryLowerBoundIsPositive) { - TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); - EXPECT_GT(tokenizer.getMemoryLowerBound(), 0u); -} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/VoiceActivityDetectionTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp similarity index 68% rename from packages/react-native-executorch/common/rnexecutorch/tests/VoiceActivityDetectionTest.cpp rename to packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp index 6f2441e6c..39e9ee0d9 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/VoiceActivityDetectionTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp @@ -1,3 +1,4 @@ +#include "BaseModelTests.h" #include "TestUtils.h" #include #include @@ -6,18 +7,38 @@ using namespace rnexecutorch; using namespace rnexecutorch::models::voice_activity_detection; using namespace test_utils; +using namespace model_tests; constexpr auto VALID_VAD_MODEL_PATH = "fsmn-vad_xnnpack.pte"; -TEST(VADCtorTests, InvalidPathThrows) { - EXPECT_THROW(VoiceActivityDetection("this_file_does_not_exist.pte", nullptr), - RnExecutorchError); -} +// ============================================================================ +// Common tests via typed test suite +// ============================================================================ +namespace model_tests { +template <> struct ModelTraits { + using ModelType = VoiceActivityDetection; -TEST(VADCtorTests, ValidPathDoesntThrow) { - EXPECT_NO_THROW(VoiceActivityDetection(VALID_VAD_MODEL_PATH, nullptr)); -} + static ModelType createValid() { + return ModelType(VALID_VAD_MODEL_PATH, nullptr); + } + + static ModelType createInvalid() { + return ModelType("nonexistent.pte", nullptr); + } + + static void callGenerate(ModelType &model) { + auto audio = loadAudioFromFile("test_audio_float.raw"); + (void)model.generate(audio); + } +}; +} // namespace model_tests + +using VADTypes = ::testing::Types; +INSTANTIATE_TYPED_TEST_SUITE_P(VAD, CommonModelTest, VADTypes); +// ============================================================================ +// Model-specific tests +// ============================================================================ TEST(VADGenerateTests, SilenceReturnsNoSegments) { VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); auto silence = generateSilence(16000 * 5); @@ -59,14 +80,6 @@ TEST(VADGenerateTests, LongAudioSegmentBoundsValid) { } } -TEST(VADUnloadTests, GenerateAfterUnloadThrows) { - VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); - model.unload(); - auto audio = loadAudioFromFile("test_audio_float.raw"); - ASSERT_FALSE(audio.empty()); - EXPECT_THROW((void)model.generate(audio), RnExecutorchError); -} - TEST(VADInheritedTests, GetInputShapeWorks) { VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); auto shape = model.getInputShape("forward", 0); @@ -84,8 +97,3 @@ TEST(VADInheritedTests, GetMethodMetaWorks) { auto result = model.getMethodMeta("forward"); EXPECT_TRUE(result.ok()); } - -TEST(VADInheritedTests, GetMemoryLowerBoundReturnsPositive) { - VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); - EXPECT_GT(model.getMemoryLowerBound(), 0u); -} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/stubs/jsi_stubs.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/stubs/jsi_stubs.cpp similarity index 95% rename from packages/react-native-executorch/common/rnexecutorch/tests/stubs/jsi_stubs.cpp rename to packages/react-native-executorch/common/rnexecutorch/tests/integration/stubs/jsi_stubs.cpp index 6735e4cd6..39b8ae09c 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/stubs/jsi_stubs.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/stubs/jsi_stubs.cpp @@ -11,7 +11,6 @@ namespace facebook::jsi { // MutableBuffer destructor - needed by OwningArrayBuffer -// Don't stub Runtime - it has too many virtual methods MutableBuffer::~MutableBuffer() {} Value::~Value() {} Value::Value(Value &&other) noexcept {} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh index d0c82f8ac..b56c73cc1 100755 --- a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh +++ b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh @@ -3,12 +3,18 @@ set -e # Parse arguments REFRESH_MODELS=false +SKIP_BUILD=false + for arg in "$@"; do case $arg in --refresh-models) REFRESH_MODELS=true shift ;; + --skip-build) + SKIP_BUILD=true + shift + ;; esac done @@ -29,7 +35,7 @@ ANDROID_ABI="arm64-v8a" ANDROID_LIBS_DIR="$PACKAGE_ROOT/third-party/android/libs" DEVICE_TEST_DIR="/data/local/tmp/rnexecutorch_tests" -MODELS_DIR="$SCRIPT_DIR/models" +MODELS_DIR="$SCRIPT_DIR/integration/assets/models" # Create models directory if it doesn't exist mkdir -p "$MODELS_DIR" @@ -48,23 +54,31 @@ download_if_needed() { fi } -# cleanup build artifacts -rm -rf build -mkdir build -cd build - -# cross-compile tests with Android toolchain -cmake .. \ - -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \ - -DANDROID_ABI=$ANDROID_ABI \ - -DANDROID_PLATFORM=android-34 \ - -DANDROID_STL=c++_shared - -make +if [ "$SKIP_BUILD" = false ]; then + # cleanup build artifacts + rm -rf build + mkdir build + cd build + # cross-compile tests with Android toolchain + cmake .. \ + -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \ + -DANDROID_ABI=$ANDROID_ABI \ + -DANDROID_PLATFORM=android-34 \ + -DANDROID_STL=c++_shared + + make +else + if ! [ -d build ]; then + echo "Build was skipped and the build directory doesn't exist. Exiting." + exit 1 + fi + echo "Skipping build..." + cd build +fi adb shell "mkdir -p $DEVICE_TEST_DIR" -TEST_EXECUTABLES=("NumericalTests" "LogTests" "BaseModelTests" "ClassificationTests" "ObjectDetectionTests" "ImageEmbeddingsTests" "TextEmbeddingsTests" "StyleTransferTests" "VADTests" "TokenizerModuleTests" "SpeechToTextTests" "LLMTests" "ImageSegmentationTests" "TextToImageTests") +TEST_EXECUTABLES=("NumericalTests" "LogTests" "BaseModelTests" "ClassificationTests" "ObjectDetectionTests" "ImageEmbeddingsTests" "TextEmbeddingsTests" "StyleTransferTests" "VADTests" "TokenizerModuleTests" "SpeechToTextTests" "LLMTests" "ImageSegmentationTests" "TextToImageTests" "OCRTests") # push test executables to device echo "Pushing test executables to device..." @@ -75,8 +89,10 @@ for test_exe in "${TEST_EXECUTABLES[@]}"; do fi done -# Push test audio to device -adb push ../test_audio_float.raw $DEVICE_TEST_DIR >/dev/null +# Push test assets to device +adb push ../integration/assets/test_audio_float.raw $DEVICE_TEST_DIR >/dev/null +adb push ../integration/assets/we_are_software_mansion.jpg $DEVICE_TEST_DIR >/dev/null +adb push ../integration/assets/test_ocr_image.png $DEVICE_TEST_DIR >/dev/null # download models needed for the tests echo "Downloading models (use --refresh-models to force re-download)..." @@ -94,6 +110,11 @@ download_if_needed "https://huggingface.co/software-mansion/react-native-executo download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.6.0/smolLm-2-135M/quantized/smolLm2_135M_8da4w.pte" "smolLm2_135M_8da4w.pte" download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.6.0/tokenizer.json" "smollm_tokenizer.json" download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-deeplab-v3/resolve/v0.6.0/xnnpack/deeplabV3_xnnpack_fp32.pte" "deeplabV3_xnnpack_fp32.pte" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-recognizer-crnn.en/resolve/v0.7.0/xnnpack/english/xnnpack_crnn_english.pte" "xnnpack_crnn_english.pte" +# download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-detector-craft/resolve/v0.7.0/xnnpack_quantized/xnnpack_craft_quantized.pte" "xnnpack_craft_quantized.pte" +download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-detector-craft/resolve/v0.7.0/xnnpack/xnnpack_craft.pte" "xnnpack_craft_quantized.pte" +#https://huggingface.co/software-mansion/react-native-executorch-detector-craft/resolve/v0.7.0/xnnpack/xnnpack_craft.pte + # TextToImage models (large ~2GB total) download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-bk-sdm-tiny/resolve/v0.6.0/tokenizer/tokenizer.json" "t2i_tokenizer.json" download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-bk-sdm-tiny/resolve/v0.6.0/text_encoder/model.pte" "t2i_encoder.pte" @@ -114,7 +135,17 @@ GRADLE_LIBS="$PACKAGE_ROOT/android/build/intermediates/cmake/release/obj/$ANDROI adb push "$ANDROID_LIBS_DIR/executorch/$ANDROID_ABI/libexecutorch.so" "$DEVICE_TEST_DIR/libexecutorch_jni.so" >/dev/null -for lib in libfbjni.so libpthreadpool.so libcpuinfo.so libc++_shared.so; do +# Push pthreadpool and cpuinfo from ANDROID_LIBS_DIR (needed for OpenCV/OpenMP) +if [ -f "$ANDROID_LIBS_DIR/pthreadpool/$ANDROID_ABI/libpthreadpool.so" ]; then + adb push "$ANDROID_LIBS_DIR/pthreadpool/$ANDROID_ABI/libpthreadpool.so" "$DEVICE_TEST_DIR/" >/dev/null +fi + +if [ -f "$ANDROID_LIBS_DIR/cpuinfo/$ANDROID_ABI/libcpuinfo.so" ]; then + adb push "$ANDROID_LIBS_DIR/cpuinfo/$ANDROID_ABI/libcpuinfo.so" "$DEVICE_TEST_DIR/" >/dev/null +fi + +# Push other libs from GRADLE_LIBS +for lib in libfbjni.so libc++_shared.so; do if [ -f "$GRADLE_LIBS/$lib" ]; then adb push "$GRADLE_LIBS/$lib" "$DEVICE_TEST_DIR/" >/dev/null fi diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/FileUtilsTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/unit/FileUtilsTest.cpp similarity index 91% rename from packages/react-native-executorch/common/rnexecutorch/tests/FileUtilsTest.cpp rename to packages/react-native-executorch/common/rnexecutorch/tests/unit/FileUtilsTest.cpp index ce632212c..ed9d80236 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/FileUtilsTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/unit/FileUtilsTest.cpp @@ -17,9 +17,7 @@ class FileIOTest : public ::testing::Test { out.close(); } - void TearDown() override { - std::remove(tempFileName.c_str()); - } + void TearDown() override { std::remove(tempFileName.c_str()); } }; TEST_F(FileIOTest, LoadBytesFromFileSuccessfully) { diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/LogTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/unit/LogTest.cpp similarity index 100% rename from packages/react-native-executorch/common/rnexecutorch/tests/LogTest.cpp rename to packages/react-native-executorch/common/rnexecutorch/tests/unit/LogTest.cpp diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/NumericalTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/unit/NumericalTest.cpp similarity index 92% rename from packages/react-native-executorch/common/rnexecutorch/tests/NumericalTest.cpp rename to packages/react-native-executorch/common/rnexecutorch/tests/unit/NumericalTest.cpp index 050c9579a..dec126cef 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/NumericalTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/unit/NumericalTest.cpp @@ -9,7 +9,8 @@ namespace rnexecutorch::numerical { // Helper function to check if two float vectors are approximately equal void expect_vectors_eq(const std::vector &vector1, - const std::vector &vector2, float atol = 1.0e-6F) { + const std::vector &vector2, + float atol = 1.0e-6F) { ASSERT_EQ(vector1.size(), vector2.size()); for (size_t i = 0; i < vector1.size(); i++) { EXPECT_NEAR(vector1[i], vector2[i], atol); @@ -93,18 +94,14 @@ TEST(MeanPoolingTests, InvalidDimensionSize) { const std::vector modelOutput = {1.0F, 2.0F, 3.0F, 4.0F}; const std::vector attnMask = {1, 1, 1}; - EXPECT_THROW( - { meanPooling(modelOutput, attnMask); }, - std::invalid_argument); + EXPECT_THROW({ meanPooling(modelOutput, attnMask); }, std::invalid_argument); } TEST(MeanPoolingTests, EmptyAttentionMask) { const std::vector modelOutput = {1.0F, 2.0F, 3.0F, 4.0F}; const std::vector attnMask = {}; - EXPECT_THROW( - { meanPooling(modelOutput, attnMask); }, - std::invalid_argument); + EXPECT_THROW({ meanPooling(modelOutput, attnMask); }, std::invalid_argument); } } // namespace rnexecutorch::numerical From 88059a7d9a2e3885be94e9b1356419e287c20cd5 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Fri, 23 Jan 2026 21:12:16 +0100 Subject: [PATCH 14/29] chore: use typed tests for basemodel tests --- .../tests/integration/BaseModelTest.cpp | 70 +++++++++---------- .../tests/integration/BaseModelTests.h | 19 ++++- 2 files changed, 52 insertions(+), 37 deletions(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTest.cpp index 2ffc21af7..57a74f26a 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTest.cpp @@ -1,3 +1,4 @@ +#include "BaseModelTests.h" #include #include #include @@ -8,19 +9,44 @@ using namespace rnexecutorch; using namespace rnexecutorch::models; using namespace executorch::extension; +using namespace model_tests; using executorch::runtime::EValue; constexpr auto VALID_STYLE_TRANSFER_MODEL_PATH = "style_transfer_candy_xnnpack.pte"; -TEST(BaseModelCtorTests, InvalidPathThrows) { - EXPECT_THROW(BaseModel("this_file_does_not_exist.mp3", nullptr), - RnExecutorchError); -} - -TEST(BaseModelCtorTests, ValidPathDoesntThrow) { - EXPECT_NO_THROW(BaseModel(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr)); -} +// ============================================================================ +// Common tests via typed test suite +// ============================================================================ +namespace model_tests { +template <> struct ModelTraits { + using ModelType = BaseModel; + + static ModelType createValid() { + return ModelType(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + } + + static ModelType createInvalid() { + return ModelType("nonexistent.pte", nullptr); + } + + static void callGenerate(ModelType &model) { + std::vector shape = {1, 3, 640, 640}; + size_t numElements = 1 * 3 * 640 * 640; + std::vector inputData(numElements, 0.5f); + auto tensorPtr = make_tensor_ptr(shape, inputData.data()); + EValue input(*tensorPtr); + (void)model.forward(input); + } +}; +} // namespace model_tests + +using BaseModelTypes = ::testing::Types; +INSTANTIATE_TYPED_TEST_SUITE_P(BaseModel, CommonModelTest, BaseModelTypes); + +// ============================================================================ +// BaseModel-specific tests (methods not in all models) +// ============================================================================ TEST(BaseModelGetInputShapeTests, ValidMethodCorrectShape) { BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); @@ -68,34 +94,6 @@ TEST(BaseModelGetMethodMetaTests, InvalidMethodReturnsError) { EXPECT_FALSE(result.ok()); } -TEST(BaseModelUnloadTests, UnloadDoesNotThrow) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); - EXPECT_NO_THROW(model.unload()); -} - -TEST(BaseModelUnloadTests, GetInputShapeAfterUnloadThrows) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); - model.unload(); - EXPECT_THROW((void)model.getInputShape("forward", 0), RnExecutorchError); -} - -TEST(BaseModelUnloadTests, GetAllInputShapesAfterUnloadThrows) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); - model.unload(); - EXPECT_THROW(model.getAllInputShapes("forward"), RnExecutorchError); -} - -TEST(BaseModelUnloadTests, GetMethodMetaAfterUnloadThrows) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); - model.unload(); - EXPECT_THROW(model.getMethodMeta("forward"), RnExecutorchError); -} - -TEST(BaseModelMemoryTests, GetMemoryLowerBoundReturnsPositive) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); - EXPECT_GT(model.getMemoryLowerBound(), 0u); -} - TEST(BaseModelForwardTests, ForwardWithValidInputReturnsOk) { BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); std::vector shape = {1, 3, 640, 640}; diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h index 8be954513..00a017e15 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h @@ -73,6 +73,14 @@ TYPED_TEST_P(CommonModelTest, GetMemoryLowerBoundValue) { EXPECT_EQ(model.getMemoryLowerBound(), 0u); } +TYPED_TEST_P(CommonModelTest, GetMemoryLowerBoundConsistent) { + using Traits = typename TestFixture::Traits; + auto model = Traits::createValid(); + auto bound1 = model.getMemoryLowerBound(); + auto bound2 = model.getMemoryLowerBound(); + EXPECT_EQ(bound1, bound2); +} + // Unload tests TYPED_TEST_P(CommonModelTest, UnloadDoesntThrow) { using Traits = typename TestFixture::Traits; @@ -80,6 +88,14 @@ TYPED_TEST_P(CommonModelTest, UnloadDoesntThrow) { EXPECT_NO_THROW(model.unload()); } +TYPED_TEST_P(CommonModelTest, MultipleUnloadsSafe) { + using Traits = typename TestFixture::Traits; + auto model = Traits::createValid(); + EXPECT_NO_THROW(model.unload()); + EXPECT_NO_THROW(model.unload()); + EXPECT_NO_THROW(model.unload()); +} + TYPED_TEST_P(CommonModelTest, GenerateAfterUnloadThrows) { using Traits = typename TestFixture::Traits; auto model = Traits::createValid(); @@ -90,6 +106,7 @@ TYPED_TEST_P(CommonModelTest, GenerateAfterUnloadThrows) { // Register all tests in the suite REGISTER_TYPED_TEST_SUITE_P(CommonModelTest, InvalidPathThrows, ValidPathDoesntThrow, GetMemoryLowerBoundValue, - UnloadDoesntThrow, GenerateAfterUnloadThrows); + GetMemoryLowerBoundConsistent, UnloadDoesntThrow, + MultipleUnloadsSafe, GenerateAfterUnloadThrows); } // namespace model_tests From 1d416c3041964c99ba98425063f4f6d3a2317091 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Sat, 24 Jan 2026 11:58:14 +0100 Subject: [PATCH 15/29] feat: improve tests --- .../tests/integration/BaseModelTests.h | 2 -- .../tests/integration/ClassificationTest.cpp | 18 ++++++++++ .../tests/integration/LLMTest.cpp | 25 ++++++++++++- .../tests/integration/OCRTest.cpp | 20 +++++++++++ .../tests/integration/ObjectDetectionTest.cpp | 24 +++++++++++++ .../tests/integration/SpeechToTextTest.cpp | 17 +++++++++ .../tests/integration/TextToImageTest.cpp | 36 +++++++++++++++++++ .../tests/integration/TokenizerModuleTest.cpp | 18 ++++++++++ .../VoiceActivityDetectionTest.cpp | 22 ++++++++++++ 9 files changed, 179 insertions(+), 3 deletions(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h index 00a017e15..b20b7ee43 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h @@ -69,8 +69,6 @@ TYPED_TEST_P(CommonModelTest, GetMemoryLowerBoundValue) { using Traits = typename TestFixture::Traits; auto model = Traits::createValid(); EXPECT_GT(model.getMemoryLowerBound(), 0u); - model.unload(); - EXPECT_EQ(model.getMemoryLowerBound(), 0u); } TYPED_TEST_P(CommonModelTest, GetMemoryLowerBoundConsistent) { diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ClassificationTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ClassificationTest.cpp index 5c913c94d..55b44b11f 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ClassificationTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ClassificationTest.cpp @@ -47,6 +47,17 @@ TEST(ClassificationGenerateTests, InvalidImagePathThrows) { RnExecutorchError); } +TEST(ClassificationGenerateTests, EmptyImagePathThrows) { + Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + EXPECT_THROW((void)model.generate(""), RnExecutorchError); +} + +TEST(ClassificationGenerateTests, MalformedURIThrows) { + Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + EXPECT_THROW((void)model.generate("not_a_valid_uri://bad"), + RnExecutorchError); +} + TEST(ClassificationGenerateTests, ValidImageReturnsResults) { Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); auto results = model.generate(VALID_TEST_IMAGE_PATH); @@ -86,6 +97,13 @@ TEST(ClassificationGenerateTests, TopPredictionHasReasonableConfidence) { EXPECT_GT(maxProb, 0.0f); } +TEST(ClassificationGenerateTests, MultipleGeneratesWork) { + Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH)); + EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH)); + EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH)); +} + TEST(ClassificationInheritedTests, GetInputShapeWorks) { Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); auto shape = model.getInputShape("forward", 0); diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/LLMTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/LLMTest.cpp index fbe646a64..d2fc6c696 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/LLMTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/LLMTest.cpp @@ -73,12 +73,17 @@ TEST_F(LLMTest, GetGeneratedTokenCountInitiallyZero) { TEST_F(LLMTest, SetTemperature) { LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); - // Should not throw + // Should not throw for valid values EXPECT_NO_THROW(model.setTemperature(0.5f)); EXPECT_NO_THROW(model.setTemperature(1.0f)); EXPECT_NO_THROW(model.setTemperature(0.0f)); } +TEST_F(LLMTest, SetTemperatureNegativeThrows) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + EXPECT_THROW(model.setTemperature(-0.1f), RnExecutorchError); +} + TEST_F(LLMTest, SetTopp) { LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); EXPECT_NO_THROW(model.setTopp(0.9f)); @@ -86,6 +91,12 @@ TEST_F(LLMTest, SetTopp) { EXPECT_NO_THROW(model.setTopp(1.0f)); } +TEST_F(LLMTest, SetToppInvalidThrows) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + EXPECT_THROW(model.setTopp(-0.1f), RnExecutorchError); + EXPECT_THROW(model.setTopp(1.1f), RnExecutorchError); +} + TEST_F(LLMTest, SetCountInterval) { LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); EXPECT_NO_THROW(model.setCountInterval(5)); @@ -131,3 +142,15 @@ TEST_F(LLMTest, GenerateUpdatesTokenCount) { model.generate(prompt, nullptr); EXPECT_GT(model.getGeneratedTokenCount(), 0); } + +TEST_F(LLMTest, EmptyPromptThrows) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + EXPECT_THROW((void)model.generate("", nullptr), RnExecutorchError); +} + +TEST_F(LLMTest, MultipleGeneratesWork) { + LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + std::string prompt = formatChatML(SYSTEM_PROMPT, "Hi"); + EXPECT_NO_THROW((void)model.generate(prompt, nullptr)); + EXPECT_NO_THROW((void)model.generate(prompt, nullptr)); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp index 868981b03..d4319fc14 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp @@ -58,6 +58,12 @@ TEST(OCRCtorTests, InvalidRecognizerPathThrows) { RnExecutorchError); } +TEST(OCRCtorTests, EmptySymbolsThrows) { + EXPECT_THROW(OCR(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, "", + createMockCallInvoker()), + RnExecutorchError); +} + TEST(OCRGenerateTests, InvalidImagePathThrows) { OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, createMockCallInvoker()); @@ -65,6 +71,12 @@ TEST(OCRGenerateTests, InvalidImagePathThrows) { RnExecutorchError); } +TEST(OCRGenerateTests, EmptyImagePathThrows) { + OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + createMockCallInvoker()); + EXPECT_THROW((void)model.generate(""), RnExecutorchError); +} + TEST(OCRGenerateTests, ValidImageReturnsResults) { OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, createMockCallInvoker()); @@ -109,3 +121,11 @@ TEST(OCRGenerateTests, DetectionsHaveNonEmptyText) { EXPECT_FALSE(detection.text.empty()); } } + +TEST(OCRGenerateTests, MultipleGeneratesWork) { + OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + createMockCallInvoker()); + EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH)); + EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH)); + EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH)); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ObjectDetectionTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ObjectDetectionTest.cpp index 5ce21b149..cd483541a 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ObjectDetectionTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ObjectDetectionTest.cpp @@ -47,6 +47,23 @@ TEST(ObjectDetectionGenerateTests, InvalidImagePathThrows) { RnExecutorchError); } +TEST(ObjectDetectionGenerateTests, EmptyImagePathThrows) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + EXPECT_THROW((void)model.generate("", 0.5), RnExecutorchError); +} + +TEST(ObjectDetectionGenerateTests, NegativeThresholdThrows) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + EXPECT_THROW((void)model.generate(VALID_TEST_IMAGE_PATH, -0.1), + RnExecutorchError); +} + +TEST(ObjectDetectionGenerateTests, ThresholdAboveOneThrows) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + EXPECT_THROW((void)model.generate(VALID_TEST_IMAGE_PATH, 1.1), + RnExecutorchError); +} + TEST(ObjectDetectionGenerateTests, ValidImageReturnsResults) { ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); auto results = model.generate(VALID_TEST_IMAGE_PATH, 0.3); @@ -91,6 +108,13 @@ TEST(ObjectDetectionGenerateTests, DetectionsHaveValidLabels) { } } +TEST(ObjectDetectionGenerateTests, MultipleGeneratesWork) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH, 0.5)); + EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH, 0.3)); + EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH, 0.7)); +} + TEST(ObjectDetectionInheritedTests, GetInputShapeWorks) { ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); auto shape = model.getInputShape("forward", 0); diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp index 75afa425d..bc9df9cc8 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp @@ -86,3 +86,20 @@ TEST(S2TTranscribeTests, EmptyResultOnSilence) { auto result = model.transcribe(audio, "en"); EXPECT_TRUE(result.empty()); } + +TEST(S2TTranscribeTests, InvalidLanguageThrows) { + SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, + VALID_TOKENIZER_PATH, nullptr); + auto audio = loadAudioFromFile("test_audio_float.raw"); + ASSERT_FALSE(audio.empty()); + EXPECT_THROW((void)model.transcribe(audio, "invalid_language_code"), + RnExecutorchError); +} + +TEST(S2TTranscribeTests, EmptyLanguageThrows) { + SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, + VALID_TOKENIZER_PATH, nullptr); + auto audio = loadAudioFromFile("test_audio_float.raw"); + ASSERT_FALSE(audio.empty()); + EXPECT_THROW((void)model.transcribe(audio, ""), RnExecutorchError); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp index 515ce05b3..ec81b6662 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp @@ -93,6 +93,33 @@ TEST(TextToImageGenerateTests, InvalidImageSizeThrows) { RnExecutorchError); } +TEST(TextToImageGenerateTests, EmptyPromptThrows) { + TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, + VALID_DECODER_PATH, SCHEDULER_BETA_START, + SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); + EXPECT_THROW((void)model.generate("", 128, 1, 42, nullptr), + RnExecutorchError); +} + +TEST(TextToImageGenerateTests, ZeroStepsThrows) { + TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, + VALID_DECODER_PATH, SCHEDULER_BETA_START, + SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); + EXPECT_THROW((void)model.generate("a cat", 128, 0, 42, nullptr), + RnExecutorchError); +} + +TEST(TextToImageGenerateTests, NegativeStepsThrows) { + TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, + VALID_DECODER_PATH, SCHEDULER_BETA_START, + SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); + EXPECT_THROW((void)model.generate("a cat", 128, -1, 42, nullptr), + RnExecutorchError); +} + TEST(TextToImageGenerateTests, GenerateReturnsNonNull) { TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, VALID_DECODER_PATH, SCHEDULER_BETA_START, @@ -136,3 +163,12 @@ TEST(TextToImageGenerateTests, SameSeedProducesSameResult) { } EXPECT_TRUE(same); } + +TEST(TextToImageGenerateTests, MultipleGeneratesWork) { + TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, + VALID_DECODER_PATH, SCHEDULER_BETA_START, + SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, + SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); + EXPECT_NO_THROW((void)model.generate("a cat", 128, 1, 42, nullptr)); + EXPECT_NO_THROW((void)model.generate("a dog", 128, 1, 43, nullptr)); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TokenizerModuleTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TokenizerModuleTest.cpp index 02a64dd77..54956760c 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TokenizerModuleTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TokenizerModuleTest.cpp @@ -46,6 +46,18 @@ TEST(TokenizerEncodeTests, DifferentTextReturnsDifferentTokens) { EXPECT_NE(tokens1, tokens2); } +TEST(TokenizerEncodeTests, SpecialCharactersWork) { + TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + auto tokens = tokenizer.encode("!@#$%^&*()"); + EXPECT_GT(tokens.size(), 0u); +} + +TEST(TokenizerEncodeTests, VeryLongTextWorks) { + TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + std::string longText(10000, 'a'); + EXPECT_NO_THROW((void)tokenizer.encode(longText)); +} + TEST(TokenizerDecodeTests, DecodeEncodedTextReturnsOriginal) { TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); std::string original = "szponcik"; @@ -66,6 +78,12 @@ TEST(TokenizerIdToTokenTests, ValidIdReturnsToken) { EXPECT_FALSE(token.empty()); } +TEST(TokenizerIdToTokenTests, OutOfBoundsIdThrows) { + TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + auto vocabSize = tokenizer.getVocabSize(); + EXPECT_THROW((void)tokenizer.idToToken(vocabSize + 1000), RnExecutorchError); +} + TEST(TokenizerTokenToIdTests, RoundTripWorks) { TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); auto token = tokenizer.idToToken(100); diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp index 39e9ee0d9..27e14dfba 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp @@ -46,6 +46,19 @@ TEST(VADGenerateTests, SilenceReturnsNoSegments) { EXPECT_TRUE(segments.empty()); } +TEST(VADGenerateTests, EmptyAudioThrows) { + VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + std::vector emptyAudio; + EXPECT_THROW((void)model.generate(emptyAudio), RnExecutorchError); +} + +TEST(VADGenerateTests, TooShortAudioReturnsNoSegments) { + VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + auto shortAudio = generateSilence(100); + auto segments = model.generate(shortAudio); + EXPECT_TRUE(segments.empty()); +} + TEST(VADGenerateTests, SegmentsHaveValidBounds) { VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); auto audio = loadAudioFromFile("test_audio_float.raw"); @@ -80,6 +93,15 @@ TEST(VADGenerateTests, LongAudioSegmentBoundsValid) { } } +TEST(VADGenerateTests, MultipleGeneratesWork) { + VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + auto audio = loadAudioFromFile("test_audio_float.raw"); + ASSERT_FALSE(audio.empty()); + EXPECT_NO_THROW((void)model.generate(audio)); + EXPECT_NO_THROW((void)model.generate(audio)); + EXPECT_NO_THROW((void)model.generate(audio)); +} + TEST(VADInheritedTests, GetInputShapeWorks) { VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); auto shape = model.getInputShape("forward", 0); From e397e233b6895c7b2cdc493e66ded63a8ff96d18 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Sat, 24 Jan 2026 12:06:59 +0100 Subject: [PATCH 16/29] feat: add some more tests --- .../tests/integration/BaseModelTests.h | 11 ++++++++++- .../tests/integration/ClassificationTest.cpp | 7 ------- .../tests/integration/ImageEmbeddingsTest.cpp | 11 +++++++++++ .../rnexecutorch/tests/integration/LLMTest.cpp | 13 ++++++------- .../rnexecutorch/tests/integration/OCRTest.cpp | 15 +++++++-------- .../tests/integration/ObjectDetectionTest.cpp | 13 ++++++------- .../tests/integration/SpeechToTextTest.cpp | 7 +++++++ .../tests/integration/StyleTransferTest.cpp | 11 +++++++++++ .../tests/integration/TextToImageTest.cpp | 9 --------- .../integration/VoiceActivityDetectionTest.cpp | 9 --------- 10 files changed, 58 insertions(+), 48 deletions(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h index b20b7ee43..83a3cc960 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h @@ -101,10 +101,19 @@ TYPED_TEST_P(CommonModelTest, GenerateAfterUnloadThrows) { EXPECT_THROW(Traits::callGenerate(model), rnexecutorch::RnExecutorchError); } +TYPED_TEST_P(CommonModelTest, MultipleGeneratesWork) { + using Traits = typename TestFixture::Traits; + auto model = Traits::createValid(); + EXPECT_NO_THROW(Traits::callGenerate(model)); + EXPECT_NO_THROW(Traits::callGenerate(model)); + EXPECT_NO_THROW(Traits::callGenerate(model)); +} + // Register all tests in the suite REGISTER_TYPED_TEST_SUITE_P(CommonModelTest, InvalidPathThrows, ValidPathDoesntThrow, GetMemoryLowerBoundValue, GetMemoryLowerBoundConsistent, UnloadDoesntThrow, - MultipleUnloadsSafe, GenerateAfterUnloadThrows); + MultipleUnloadsSafe, GenerateAfterUnloadThrows, + MultipleGeneratesWork); } // namespace model_tests diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ClassificationTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ClassificationTest.cpp index 55b44b11f..ec7994acc 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ClassificationTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ClassificationTest.cpp @@ -97,13 +97,6 @@ TEST(ClassificationGenerateTests, TopPredictionHasReasonableConfidence) { EXPECT_GT(maxProb, 0.0f); } -TEST(ClassificationGenerateTests, MultipleGeneratesWork) { - Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); - EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH)); - EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH)); - EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH)); -} - TEST(ClassificationInheritedTests, GetInputShapeWorks) { Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); auto shape = model.getInputShape("forward", 0); diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageEmbeddingsTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageEmbeddingsTest.cpp index 5d3a196cf..f2018f92b 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageEmbeddingsTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageEmbeddingsTest.cpp @@ -48,6 +48,17 @@ TEST(ImageEmbeddingsGenerateTests, InvalidImagePathThrows) { RnExecutorchError); } +TEST(ImageEmbeddingsGenerateTests, EmptyImagePathThrows) { + ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + EXPECT_THROW((void)model.generate(""), RnExecutorchError); +} + +TEST(ImageEmbeddingsGenerateTests, MalformedURIThrows) { + ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + EXPECT_THROW((void)model.generate("not_a_valid_uri://bad"), + RnExecutorchError); +} + TEST(ImageEmbeddingsGenerateTests, ValidImageReturnsResults) { ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); auto result = model.generate(VALID_TEST_IMAGE_PATH); diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/LLMTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/LLMTest.cpp index d2fc6c696..759c27c3f 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/LLMTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/LLMTest.cpp @@ -66,6 +66,12 @@ class LLMTest : public ::testing::Test { void SetUp() override { mockInvoker_ = createMockCallInvoker(); } }; +TEST(LLMCtorTests, InvalidTokenizerPathThrows) { + EXPECT_THROW(LLM(VALID_MODEL_PATH, "nonexistent_tokenizer.json", + createMockCallInvoker()), + RnExecutorchError); +} + TEST_F(LLMTest, GetGeneratedTokenCountInitiallyZero) { LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); EXPECT_EQ(model.getGeneratedTokenCount(), 0); @@ -147,10 +153,3 @@ TEST_F(LLMTest, EmptyPromptThrows) { LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); EXPECT_THROW((void)model.generate("", nullptr), RnExecutorchError); } - -TEST_F(LLMTest, MultipleGeneratesWork) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); - std::string prompt = formatChatML(SYSTEM_PROMPT, "Hi"); - EXPECT_NO_THROW((void)model.generate(prompt, nullptr)); - EXPECT_NO_THROW((void)model.generate(prompt, nullptr)); -} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp index d4319fc14..37f0920cb 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp @@ -77,6 +77,13 @@ TEST(OCRGenerateTests, EmptyImagePathThrows) { EXPECT_THROW((void)model.generate(""), RnExecutorchError); } +TEST(OCRGenerateTests, MalformedURIThrows) { + OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + createMockCallInvoker()); + EXPECT_THROW((void)model.generate("not_a_valid_uri://bad"), + RnExecutorchError); +} + TEST(OCRGenerateTests, ValidImageReturnsResults) { OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, createMockCallInvoker()); @@ -121,11 +128,3 @@ TEST(OCRGenerateTests, DetectionsHaveNonEmptyText) { EXPECT_FALSE(detection.text.empty()); } } - -TEST(OCRGenerateTests, MultipleGeneratesWork) { - OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, - createMockCallInvoker()); - EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH)); - EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH)); - EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH)); -} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ObjectDetectionTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ObjectDetectionTest.cpp index cd483541a..fa05540bc 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ObjectDetectionTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ObjectDetectionTest.cpp @@ -52,6 +52,12 @@ TEST(ObjectDetectionGenerateTests, EmptyImagePathThrows) { EXPECT_THROW((void)model.generate("", 0.5), RnExecutorchError); } +TEST(ObjectDetectionGenerateTests, MalformedURIThrows) { + ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + EXPECT_THROW((void)model.generate("not_a_valid_uri://bad", 0.5), + RnExecutorchError); +} + TEST(ObjectDetectionGenerateTests, NegativeThresholdThrows) { ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); EXPECT_THROW((void)model.generate(VALID_TEST_IMAGE_PATH, -0.1), @@ -108,13 +114,6 @@ TEST(ObjectDetectionGenerateTests, DetectionsHaveValidLabels) { } } -TEST(ObjectDetectionGenerateTests, MultipleGeneratesWork) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); - EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH, 0.5)); - EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH, 0.3)); - EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH, 0.7)); -} - TEST(ObjectDetectionInheritedTests, GetInputShapeWorks) { ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); auto shape = model.getInputShape("forward", 0); diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp index bc9df9cc8..d303724a6 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp @@ -87,6 +87,13 @@ TEST(S2TTranscribeTests, EmptyResultOnSilence) { EXPECT_TRUE(result.empty()); } +TEST(S2TTranscribeTests, EmptyAudioThrows) { + SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, + VALID_TOKENIZER_PATH, nullptr); + std::vector emptyAudio; + EXPECT_THROW((void)model.transcribe(emptyAudio, "en"), RnExecutorchError); +} + TEST(S2TTranscribeTests, InvalidLanguageThrows) { SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, VALID_TOKENIZER_PATH, nullptr); diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/StyleTransferTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/StyleTransferTest.cpp index faaaec33c..0b3ce7781 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/StyleTransferTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/StyleTransferTest.cpp @@ -48,6 +48,17 @@ TEST(StyleTransferGenerateTests, InvalidImagePathThrows) { RnExecutorchError); } +TEST(StyleTransferGenerateTests, EmptyImagePathThrows) { + StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + EXPECT_THROW((void)model.generate(""), RnExecutorchError); +} + +TEST(StyleTransferGenerateTests, MalformedURIThrows) { + StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + EXPECT_THROW((void)model.generate("not_a_valid_uri://bad"), + RnExecutorchError); +} + TEST(StyleTransferGenerateTests, ValidImageReturnsFilePath) { StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); auto result = model.generate(VALID_TEST_IMAGE_PATH); diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp index ec81b6662..5f7105525 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp @@ -163,12 +163,3 @@ TEST(TextToImageGenerateTests, SameSeedProducesSameResult) { } EXPECT_TRUE(same); } - -TEST(TextToImageGenerateTests, MultipleGeneratesWork) { - TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, - VALID_DECODER_PATH, SCHEDULER_BETA_START, - SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); - EXPECT_NO_THROW((void)model.generate("a cat", 128, 1, 42, nullptr)); - EXPECT_NO_THROW((void)model.generate("a dog", 128, 1, 43, nullptr)); -} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp index 27e14dfba..3c4a48a5d 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp @@ -93,15 +93,6 @@ TEST(VADGenerateTests, LongAudioSegmentBoundsValid) { } } -TEST(VADGenerateTests, MultipleGeneratesWork) { - VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); - auto audio = loadAudioFromFile("test_audio_float.raw"); - ASSERT_FALSE(audio.empty()); - EXPECT_NO_THROW((void)model.generate(audio)); - EXPECT_NO_THROW((void)model.generate(audio)); - EXPECT_NO_THROW((void)model.generate(audio)); -} - TEST(VADInheritedTests, GetInputShapeWorks) { VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); auto shape = model.getInputShape("forward", 0); From c565649b1903d315cfea72411707f3fad31eadc8 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Sat, 24 Jan 2026 12:30:58 +0100 Subject: [PATCH 17/29] chore: remove pointless tests --- .../tests/integration/SpeechToTextTest.cpp | 15 --------------- .../tests/integration/TextToImageTest.cpp | 9 --------- .../tests/integration/TokenizerModuleTest.cpp | 6 ------ .../integration/VoiceActivityDetectionTest.cpp | 13 ------------- 4 files changed, 43 deletions(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp index d303724a6..cb65dc2bd 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp @@ -87,13 +87,6 @@ TEST(S2TTranscribeTests, EmptyResultOnSilence) { EXPECT_TRUE(result.empty()); } -TEST(S2TTranscribeTests, EmptyAudioThrows) { - SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, - VALID_TOKENIZER_PATH, nullptr); - std::vector emptyAudio; - EXPECT_THROW((void)model.transcribe(emptyAudio, "en"), RnExecutorchError); -} - TEST(S2TTranscribeTests, InvalidLanguageThrows) { SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, VALID_TOKENIZER_PATH, nullptr); @@ -102,11 +95,3 @@ TEST(S2TTranscribeTests, InvalidLanguageThrows) { EXPECT_THROW((void)model.transcribe(audio, "invalid_language_code"), RnExecutorchError); } - -TEST(S2TTranscribeTests, EmptyLanguageThrows) { - SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, - VALID_TOKENIZER_PATH, nullptr); - auto audio = loadAudioFromFile("test_audio_float.raw"); - ASSERT_FALSE(audio.empty()); - EXPECT_THROW((void)model.transcribe(audio, ""), RnExecutorchError); -} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp index 5f7105525..c188062e1 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp @@ -111,15 +111,6 @@ TEST(TextToImageGenerateTests, ZeroStepsThrows) { RnExecutorchError); } -TEST(TextToImageGenerateTests, NegativeStepsThrows) { - TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, - VALID_DECODER_PATH, SCHEDULER_BETA_START, - SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); - EXPECT_THROW((void)model.generate("a cat", 128, -1, 42, nullptr), - RnExecutorchError); -} - TEST(TextToImageGenerateTests, GenerateReturnsNonNull) { TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, VALID_DECODER_PATH, SCHEDULER_BETA_START, diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TokenizerModuleTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TokenizerModuleTest.cpp index 54956760c..f04b1e1e9 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TokenizerModuleTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TokenizerModuleTest.cpp @@ -78,12 +78,6 @@ TEST(TokenizerIdToTokenTests, ValidIdReturnsToken) { EXPECT_FALSE(token.empty()); } -TEST(TokenizerIdToTokenTests, OutOfBoundsIdThrows) { - TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); - auto vocabSize = tokenizer.getVocabSize(); - EXPECT_THROW((void)tokenizer.idToToken(vocabSize + 1000), RnExecutorchError); -} - TEST(TokenizerTokenToIdTests, RoundTripWorks) { TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); auto token = tokenizer.idToToken(100); diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp index 3c4a48a5d..39e9ee0d9 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp @@ -46,19 +46,6 @@ TEST(VADGenerateTests, SilenceReturnsNoSegments) { EXPECT_TRUE(segments.empty()); } -TEST(VADGenerateTests, EmptyAudioThrows) { - VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); - std::vector emptyAudio; - EXPECT_THROW((void)model.generate(emptyAudio), RnExecutorchError); -} - -TEST(VADGenerateTests, TooShortAudioReturnsNoSegments) { - VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); - auto shortAudio = generateSilence(100); - auto segments = model.generate(shortAudio); - EXPECT_TRUE(segments.empty()); -} - TEST(VADGenerateTests, SegmentsHaveValidBounds) { VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); auto audio = loadAudioFromFile("test_audio_float.raw"); From da049694257259138c874e26c29dc1a0ed3d5c8d Mon Sep 17 00:00:00 2001 From: chmjkb Date: Sat, 24 Jan 2026 12:32:23 +0100 Subject: [PATCH 18/29] feat: add vertical ocr tests --- .../common/rnexecutorch/tests/CMakeLists.txt | 14 + .../tests/integration/VerticalOCRTest.cpp | 253 ++++++++++++++++++ .../common/rnexecutorch/tests/run_tests.sh | 2 +- 3 files changed, 268 insertions(+), 1 deletion(-) create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/integration/VerticalOCRTest.cpp diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt index 698b7ed20..6ed7d1419 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt +++ b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt @@ -240,3 +240,17 @@ add_rn_test(OCRTests integration/OCRTest.cpp ${IMAGE_UTILS_SOURCES} LIBS opencv_deps ) + +add_rn_test(VerticalOCRTests integration/VerticalOCRTest.cpp + SOURCES + ${RNEXECUTORCH_DIR}/models/vertical_ocr/VerticalOCR.cpp + ${RNEXECUTORCH_DIR}/models/vertical_ocr/VerticalDetector.cpp + ${RNEXECUTORCH_DIR}/models/ocr/Detector.cpp + ${RNEXECUTORCH_DIR}/models/ocr/CTCLabelConverter.cpp + ${RNEXECUTORCH_DIR}/models/ocr/Recognizer.cpp + ${RNEXECUTORCH_DIR}/models/ocr/utils/DetectorUtils.cpp + ${RNEXECUTORCH_DIR}/models/ocr/utils/RecognitionHandlerUtils.cpp + ${RNEXECUTORCH_DIR}/models/ocr/utils/RecognizerUtils.cpp + ${IMAGE_UTILS_SOURCES} + LIBS opencv_deps +) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/VerticalOCRTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VerticalOCRTest.cpp new file mode 100644 index 000000000..6164de02d --- /dev/null +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VerticalOCRTest.cpp @@ -0,0 +1,253 @@ +#include "BaseModelTests.h" +#include +#include +#include +#include + +using namespace rnexecutorch; +using namespace rnexecutorch::models::ocr; +using namespace model_tests; + +namespace rnexecutorch { +std::shared_ptr createMockCallInvoker(); +} + +constexpr auto VALID_VERTICAL_DETECTOR_PATH = "xnnpack_craft_quantized.pte"; +constexpr auto VALID_VERTICAL_RECOGNIZER_PATH = "xnnpack_crnn_english.pte"; +constexpr auto VALID_VERTICAL_TEST_IMAGE_PATH = + "file:///data/local/tmp/rnexecutorch_tests/test_ocr_image.png"; + +// English alphabet symbols (must match alphabets.english from symbols.ts) +const std::string ENGLISH_SYMBOLS = + "0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ " + "\xE2\x82\xAC" // Euro sign (€) + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + +// ============================================================================ +// Common tests via typed test suite +// ============================================================================ +namespace model_tests { +template <> struct ModelTraits { + using ModelType = VerticalOCR; + + static ModelType createValid() { + return ModelType(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, + rnexecutorch::createMockCallInvoker()); + } + + static ModelType createInvalid() { + return ModelType("nonexistent.pte", VALID_VERTICAL_RECOGNIZER_PATH, + ENGLISH_SYMBOLS, false, + rnexecutorch::createMockCallInvoker()); + } + + static void callGenerate(ModelType &model) { + (void)model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + } +}; +} // namespace model_tests + +using VerticalOCRTypes = ::testing::Types; +INSTANTIATE_TYPED_TEST_SUITE_P(VerticalOCR, CommonModelTest, VerticalOCRTypes); + +// ============================================================================ +// VerticalOCR-specific tests +// ============================================================================ + +// Constructor tests +TEST(VerticalOCRCtorTests, InvalidRecognizerPathThrows) { + EXPECT_THROW(VerticalOCR(VALID_VERTICAL_DETECTOR_PATH, "nonexistent.pte", + ENGLISH_SYMBOLS, false, createMockCallInvoker()), + RnExecutorchError); +} + +TEST(VerticalOCRCtorTests, EmptySymbolsThrows) { + EXPECT_THROW(VerticalOCR(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, "", false, + createMockCallInvoker()), + RnExecutorchError); +} + +TEST(VerticalOCRCtorTests, IndependentCharsTrueDoesntThrow) { + EXPECT_NO_THROW(VerticalOCR(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + true, createMockCallInvoker())); +} + +TEST(VerticalOCRCtorTests, IndependentCharsFalseDoesntThrow) { + EXPECT_NO_THROW(VerticalOCR(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + false, createMockCallInvoker())); +} + +// Generate tests - Independent Characters strategy +TEST(VerticalOCRGenerateTests, IndependentCharsInvalidImageThrows) { + VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, true, + createMockCallInvoker()); + EXPECT_THROW((void)model.generate("nonexistent_image.jpg"), + RnExecutorchError); +} + +TEST(VerticalOCRGenerateTests, IndependentCharsEmptyImagePathThrows) { + VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, true, + createMockCallInvoker()); + EXPECT_THROW((void)model.generate(""), RnExecutorchError); +} + +TEST(VerticalOCRGenerateTests, IndependentCharsMalformedURIThrows) { + VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, true, + createMockCallInvoker()); + EXPECT_THROW((void)model.generate("not_a_valid_uri://bad"), + RnExecutorchError); +} + +TEST(VerticalOCRGenerateTests, IndependentCharsValidImageReturnsResults) { + VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, true, + createMockCallInvoker()); + auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + EXPECT_GE(results.size(), 0u); +} + +TEST(VerticalOCRGenerateTests, IndependentCharsDetectionsHaveValidBBoxes) { + VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, true, + createMockCallInvoker()); + auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + + for (const auto &detection : results) { + EXPECT_EQ(detection.bbox.size(), 4u); + for (const auto &point : detection.bbox) { + EXPECT_GE(point.x, 0.0f); + EXPECT_GE(point.y, 0.0f); + } + } +} + +TEST(VerticalOCRGenerateTests, IndependentCharsDetectionsHaveValidScores) { + VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, true, + createMockCallInvoker()); + auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + + for (const auto &detection : results) { + EXPECT_GE(detection.score, 0.0f); + EXPECT_LE(detection.score, 1.0f); + } +} + +TEST(VerticalOCRGenerateTests, IndependentCharsDetectionsHaveNonEmptyText) { + VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, true, + createMockCallInvoker()); + auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + + for (const auto &detection : results) { + EXPECT_FALSE(detection.text.empty()); + } +} + +// Generate tests - Joint Characters strategy +TEST(VerticalOCRGenerateTests, JointCharsInvalidImageThrows) { + VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, + createMockCallInvoker()); + EXPECT_THROW((void)model.generate("nonexistent_image.jpg"), + RnExecutorchError); +} + +TEST(VerticalOCRGenerateTests, JointCharsEmptyImagePathThrows) { + VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, + createMockCallInvoker()); + EXPECT_THROW((void)model.generate(""), RnExecutorchError); +} + +TEST(VerticalOCRGenerateTests, JointCharsMalformedURIThrows) { + VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, + createMockCallInvoker()); + EXPECT_THROW((void)model.generate("not_a_valid_uri://bad"), + RnExecutorchError); +} + +TEST(VerticalOCRGenerateTests, JointCharsValidImageReturnsResults) { + VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, + createMockCallInvoker()); + auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + EXPECT_GE(results.size(), 0u); +} + +TEST(VerticalOCRGenerateTests, JointCharsDetectionsHaveValidBBoxes) { + VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, + createMockCallInvoker()); + auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + + for (const auto &detection : results) { + EXPECT_EQ(detection.bbox.size(), 4u); + for (const auto &point : detection.bbox) { + EXPECT_GE(point.x, 0.0f); + EXPECT_GE(point.y, 0.0f); + } + } +} + +TEST(VerticalOCRGenerateTests, JointCharsDetectionsHaveValidScores) { + VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, + createMockCallInvoker()); + auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + + for (const auto &detection : results) { + EXPECT_GE(detection.score, 0.0f); + EXPECT_LE(detection.score, 1.0f); + } +} + +TEST(VerticalOCRGenerateTests, JointCharsDetectionsHaveNonEmptyText) { + VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, + createMockCallInvoker()); + auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + + for (const auto &detection : results) { + EXPECT_FALSE(detection.text.empty()); + } +} + +// Strategy comparison tests +TEST(VerticalOCRStrategyTests, BothStrategiesRunSuccessfully) { + VerticalOCR independentModel(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + true, createMockCallInvoker()); + VerticalOCR jointModel(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, + createMockCallInvoker()); + + EXPECT_NO_THROW( + (void)independentModel.generate(VALID_VERTICAL_TEST_IMAGE_PATH)); + EXPECT_NO_THROW((void)jointModel.generate(VALID_VERTICAL_TEST_IMAGE_PATH)); +} + +TEST(VerticalOCRStrategyTests, BothStrategiesReturnValidResults) { + VerticalOCR independentModel(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + true, createMockCallInvoker()); + VerticalOCR jointModel(VALID_VERTICAL_DETECTOR_PATH, + VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, + createMockCallInvoker()); + + auto independentResults = + independentModel.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + auto jointResults = jointModel.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + + // Both should return some results (or none if no text detected) + EXPECT_GE(independentResults.size(), 0u); + EXPECT_GE(jointResults.size(), 0u); +} diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh index b56c73cc1..52c8e613d 100755 --- a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh +++ b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh @@ -78,7 +78,7 @@ fi adb shell "mkdir -p $DEVICE_TEST_DIR" -TEST_EXECUTABLES=("NumericalTests" "LogTests" "BaseModelTests" "ClassificationTests" "ObjectDetectionTests" "ImageEmbeddingsTests" "TextEmbeddingsTests" "StyleTransferTests" "VADTests" "TokenizerModuleTests" "SpeechToTextTests" "LLMTests" "ImageSegmentationTests" "TextToImageTests" "OCRTests") +TEST_EXECUTABLES=("NumericalTests" "LogTests" "BaseModelTests" "ClassificationTests" "ObjectDetectionTests" "ImageEmbeddingsTests" "TextEmbeddingsTests" "StyleTransferTests" "VADTests" "TokenizerModuleTests" "SpeechToTextTests" "LLMTests" "ImageSegmentationTests" "TextToImageTests" "OCRTests" "VerticalOCRTests") # push test executables to device echo "Pushing test executables to device..." From 6ea237d3f1eaec3967d51e1c2e7de5ba480fcb34 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Sat, 24 Jan 2026 12:34:46 +0100 Subject: [PATCH 19/29] chore: rename variable --- .../models/ocr/utils/RecognizerUtils.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/models/ocr/utils/RecognizerUtils.cpp b/packages/react-native-executorch/common/rnexecutorch/models/ocr/utils/RecognizerUtils.cpp index 496bd7927..df5a3cd61 100644 --- a/packages/react-native-executorch/common/rnexecutorch/models/ocr/utils/RecognizerUtils.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/models/ocr/utils/RecognizerUtils.cpp @@ -7,13 +7,13 @@ cv::Mat softmax(const cv::Mat &inputs) { cv::Mat maxVal; cv::reduce(inputs, maxVal, 1, cv::REDUCE_MAX, CV_32F); cv::Mat expInputs; - cv::Mat rzecz = inputs - cv::repeat(maxVal, 1, inputs.cols); + cv::Mat repeated = inputs - cv::repeat(maxVal, 1, inputs.cols); // Manually compute exp to avoid SIMD issues - rzecz.convertTo(rzecz, CV_32F); - expInputs = cv::Mat(rzecz.size(), CV_32F); - for (int i = 0; i < rzecz.rows; i++) { - for (int j = 0; j < rzecz.cols; j++) { - expInputs.at(i, j) = std::exp(rzecz.at(i, j)); + repeated.convertTo(repeated, CV_32F); + expInputs = cv::Mat(repeated.size(), CV_32F); + for (int i = 0; i < repeated.rows; i++) { + for (int j = 0; j < repeated.cols; j++) { + expInputs.at(i, j) = std::exp(repeated.at(i, j)); } } cv::Mat sumExp; From 53c7106a917881420bc972db39bf0022ddc43b96 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Sat, 24 Jan 2026 12:36:42 +0100 Subject: [PATCH 20/29] fix: expect throw rnexecutorch error instead of std --- .../common/rnexecutorch/tests/unit/NumericalTest.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/unit/NumericalTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/unit/NumericalTest.cpp index dec126cef..fa7f8cfdd 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/unit/NumericalTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/unit/NumericalTest.cpp @@ -1,8 +1,8 @@ #include "../data_processing/Numerical.h" #include #include +#include #include -#include #include namespace rnexecutorch::numerical { @@ -94,14 +94,14 @@ TEST(MeanPoolingTests, InvalidDimensionSize) { const std::vector modelOutput = {1.0F, 2.0F, 3.0F, 4.0F}; const std::vector attnMask = {1, 1, 1}; - EXPECT_THROW({ meanPooling(modelOutput, attnMask); }, std::invalid_argument); + EXPECT_THROW({ meanPooling(modelOutput, attnMask); }, RnExecutorchError); } TEST(MeanPoolingTests, EmptyAttentionMask) { const std::vector modelOutput = {1.0F, 2.0F, 3.0F, 4.0F}; const std::vector attnMask = {}; - EXPECT_THROW({ meanPooling(modelOutput, attnMask); }, std::invalid_argument); + EXPECT_THROW({ meanPooling(modelOutput, attnMask); }, RnExecutorchError); } } // namespace rnexecutorch::numerical From 4540c13010a09774f0fcf98d08e992f3e5b921b2 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Mon, 26 Jan 2026 13:42:38 +0100 Subject: [PATCH 21/29] chore: update readme and the run tests script --- .../common/rnexecutorch/tests/README.md | 47 +-- .../common/rnexecutorch/tests/run_tests.sh | 331 ++++++++++++------ 2 files changed, 256 insertions(+), 122 deletions(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/README.md b/packages/react-native-executorch/common/rnexecutorch/tests/README.md index 9ce6f5b36..d44686d5e 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/README.md +++ b/packages/react-native-executorch/common/rnexecutorch/tests/README.md @@ -8,30 +8,31 @@ To test the native code we use [`googletest`](https://github.com/google/googlete The googletest is already in repo in `react-native-executorch/third-party/googletest`. Firstly, you need to fetch googletest locally, run from root directory of project: * `git submodule update --init --recursive third-party/googletest` -### Build Test Files -To run tests navigate tests directory namely: -* `cd packages/react-native-executorch/common/rnexecutorch/tests` -and then type: -* `mkdir build && cd build` -* `cmake ..` -* `make` - -### Run Tests -To run tests use the following command in `packages/react-native-executorch/common/rnexecutorch/tests/build`: -* `ctest --verbose` - -Every time you updated the source code, you need to recompile the test files using: `cmake .. && make`. +### Running tests +To run tests navigate to tests directory, namely: +* `cd packages/react-native-executorch/common/rnexecutorch/tests` +To run tests, you need to make sure your Android emulator is running. This is because we're cross-compiling the test executables for Android, so we can easily run the tests using prebuilt Android third-party libs. To run the tests, you need to run the following command: +* `bash ./run_tests.sh` +This script downloads all the needed models, pushes all the executables, models, assets, shared libs via ADB to a running emulator. Finally, it runs the pre-compiled executables. +Available flags: +* `--refresh-models` - Forcefully downloads all the models. By default, the models are not downloaded, unless they are not in the specified directory. +* `--skip-build` - Skips the cmake build step. ### How to add a new test To add new test you need to: -* Place `*.cpp` file with tests using googletest in this directory. -* In `CMakeLists.txt`, add all executables and link them with googletest, e.g.: - ``` - set(SOURCE_FILES ${CMAKE_SOURCE_DIR}/../data_processing/Numerical.cpp) - add_executable(NumericalTests tests/NumericalTest.cpp ${SOURCE_FILES}) - target_link_libraries(NumericalTests gtest gtest_main) - ``` -* Add test execution, e.g.: - ``` - add_test(NAME NumericalTests COMMAND NumericalTests) +* Add a new .cpp file to either integration/ or unit/, depending on the type of the test. +* In `CMakeLists.txt`, add all executables and link all the needed libraries against the executable, for example you can use the `add_rn_test`, which is a helper function that links core libs. Example: + ```cmake + # unit + add_rn_test(BaseModelTests integration/BaseModelTest.cpp) + + # integration + add_rn_test(ClassificationTests integration/ClassificationTest.cpp + SOURCES + ${RNEXECUTORCH_DIR}/models/classification/Classification.cpp + ${IMAGE_UTILS_SOURCES} + LIBS opencv_deps + ) ``` +* Lastly, add the test executable name to the run_tests script along with all the needed URL and assets. + diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh index 52c8e613d..0fd739c0e 100755 --- a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh +++ b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh @@ -1,10 +1,157 @@ #!/bin/bash set -e -# Parse arguments +# ============================================================================ +# Constants +# ============================================================================ +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PACKAGE_ROOT="$SCRIPT_DIR/../../.." +ANDROID_ABI="arm64-v8a" +ANDROID_LIBS_DIR="$PACKAGE_ROOT/third-party/android/libs" +DEVICE_TEST_DIR="/data/local/tmp/rnexecutorch_tests" +MODELS_DIR="$SCRIPT_DIR/integration/assets/models" + +# ============================================================================ +# Test executables +# ============================================================================ +TEST_EXECUTABLES=( + "NumericalTests" + "LogTests" + "BaseModelTests" + "ClassificationTests" + "ObjectDetectionTests" + "ImageEmbeddingsTests" + "TextEmbeddingsTests" + "StyleTransferTests" + "VADTests" + "TokenizerModuleTests" + "SpeechToTextTests" + "LLMTests" + "ImageSegmentationTests" + "TextToImageTests" + "OCRTests" + "VerticalOCRTests" +) + +# ============================================================================ +# Test assets +# ============================================================================ +TEST_ASSETS=( + "integration/assets/test_audio_float.raw" + "integration/assets/we_are_software_mansion.jpg" + "integration/assets/test_ocr_image.png" +) + +# ============================================================================ +# Models to download (format: "filename|url") +# ============================================================================ +MODELS=( + "style_transfer_candy_xnnpack.pte|https://huggingface.co/software-mansion/react-native-executorch-style-transfer-candy/resolve/main/xnnpack/style_transfer_candy_xnnpack.pte" + "efficientnet_v2_s_xnnpack.pte|https://huggingface.co/software-mansion/react-native-executorch-efficientnet-v2-s/resolve/v0.6.0/xnnpack/efficientnet_v2_s_xnnpack.pte" + "ssdlite320-mobilenetv3-large.pte|https://huggingface.co/software-mansion/react-native-executorch-ssdlite320-mobilenet-v3-large/resolve/v0.6.0/ssdlite320-mobilenetv3-large.pte" + "test_image.jpg|https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Cat_November_2010-1a.jpg/1200px-Cat_November_2010-1a.jpg" + "clip-vit-base-patch32-vision_xnnpack.pte|https://huggingface.co/software-mansion/react-native-executorch-clip-vit-base-patch32/resolve/v0.6.0/clip-vit-base-patch32-vision_xnnpack.pte" + "all-MiniLM-L6-v2_xnnpack.pte|https://huggingface.co/software-mansion/react-native-executorch-all-MiniLM-L6-v2/resolve/v0.6.0/all-MiniLM-L6-v2_xnnpack.pte" + "tokenizer.json|https://huggingface.co/software-mansion/react-native-executorch-all-MiniLM-L6-v2/resolve/v0.6.0/tokenizer.json" + "fsmn-vad_xnnpack.pte|https://huggingface.co/software-mansion/react-native-executorch-fsmn-vad/resolve/main/xnnpack/fsmn-vad_xnnpack.pte" + "whisper_tiny_en_encoder_xnnpack.pte|https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/main/xnnpack/whisper_tiny_en_encoder_xnnpack.pte" + "whisper_tiny_en_decoder_xnnpack.pte|https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/main/xnnpack/whisper_tiny_en_decoder_xnnpack.pte" + "whisper_tokenizer.json|https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/v0.6.0/tokenizer.json" + "smolLm2_135M_8da4w.pte|https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.6.0/smolLm-2-135M/quantized/smolLm2_135M_8da4w.pte" + "smollm_tokenizer.json|https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.6.0/tokenizer.json" + "deeplabV3_xnnpack_fp32.pte|https://huggingface.co/software-mansion/react-native-executorch-deeplab-v3/resolve/v0.6.0/xnnpack/deeplabV3_xnnpack_fp32.pte" + "xnnpack_crnn_english.pte|https://huggingface.co/software-mansion/react-native-executorch-recognizer-crnn.en/resolve/v0.7.0/xnnpack/english/xnnpack_crnn_english.pte" + "xnnpack_craft_quantized.pte|https://huggingface.co/software-mansion/react-native-executorch-detector-craft/resolve/v0.7.0/xnnpack/xnnpack_craft.pte" + "t2i_tokenizer.json|https://huggingface.co/software-mansion/react-native-executorch-bk-sdm-tiny/resolve/v0.6.0/tokenizer/tokenizer.json" + "t2i_encoder.pte|https://huggingface.co/software-mansion/react-native-executorch-bk-sdm-tiny/resolve/v0.6.0/text_encoder/model.pte" + "t2i_unet.pte|https://huggingface.co/software-mansion/react-native-executorch-bk-sdm-tiny/resolve/v0.6.0/unet/model.256.pte" + "t2i_decoder.pte|https://huggingface.co/software-mansion/react-native-executorch-bk-sdm-tiny/resolve/v0.6.0/vae/model.256.pte" +) + +# ============================================================================ +# Libraries to push +# ============================================================================ +REQUIRED_LIBS=( + "$ANDROID_LIBS_DIR/executorch/$ANDROID_ABI/libexecutorch.so:libexecutorch_jni.so" + "$ANDROID_LIBS_DIR/pthreadpool/$ANDROID_ABI/libpthreadpool.so:libpthreadpool.so" + "$ANDROID_LIBS_DIR/cpuinfo/$ANDROID_ABI/libcpuinfo.so:libcpuinfo.so" +) + +GRADLE_LIBS_DIR="$PACKAGE_ROOT/android/build/intermediates/cmake/release/obj/$ANDROID_ABI" +GRADLE_LIBS=( + "libfbjni.so" + "libc++_shared.so" +) + +# ============================================================================ +# Flags +# ============================================================================ REFRESH_MODELS=false SKIP_BUILD=false +# ============================================================================ +# Functions +# ============================================================================ + +print_usage() { + cat <&2 +} + +download_if_needed() { + local url="$1" + local output="$2" + local filepath="$MODELS_DIR/$output" + + if [ "$REFRESH_MODELS" = true ] || [ ! -f "$filepath" ]; then + log "Downloading $output..." + wget -q -O "$filepath" "$url" + else + log "$output already exists, skipping" + fi +} + +push_file() { + local src="$1" + local dest="$2" + + if [ -f "$src" ]; then + adb push "$src" "$dest" >/dev/null + else + error "File not found: $src" + fi +} + +run_test() { + local test_exe="$1" + + if adb shell "[ -f $DEVICE_TEST_DIR/$test_exe ]"; then + log "Running $test_exe" + if ! adb shell "cd $DEVICE_TEST_DIR && LD_LIBRARY_PATH=. ./$test_exe --gtest_color=yes"; then + return 1 + fi + fi + return 0 +} + +# ============================================================================ +# Parse arguments +# ============================================================================ for arg in "$@"; do case $arg in --refresh-models) @@ -15,51 +162,42 @@ for arg in "$@"; do SKIP_BUILD=true shift ;; + --help) + print_usage + exit 0 + ;; + *) + error "Unknown option: $arg" + print_usage + exit 1 + ;; esac done +# ============================================================================ +# Validate environment +# ============================================================================ if ! adb shell ":"; then - echo "ERROR: ADB SHELL COULDN'T RUN SUCCESFULLY" + error "ADB shell couldn't run successfully" exit 1 fi -echo "ANDROID_NDK = $ANDROID_NDK" if [ -z "$ANDROID_NDK" ]; then - echo "ERROR: ANDROID_NDK IS NOT SET" + error "ANDROID_NDK is not set" exit 1 fi -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -PACKAGE_ROOT="$SCRIPT_DIR/../../.." -ANDROID_ABI="arm64-v8a" -ANDROID_LIBS_DIR="$PACKAGE_ROOT/third-party/android/libs" - -DEVICE_TEST_DIR="/data/local/tmp/rnexecutorch_tests" -MODELS_DIR="$SCRIPT_DIR/integration/assets/models" - -# Create models directory if it doesn't exist -mkdir -p "$MODELS_DIR" - -# Helper function to download a file if it doesn't exist (or if --refresh-models is used) -download_if_needed() { - local url="$1" - local output="$2" - local filepath="$MODELS_DIR/$output" - - if [ "$REFRESH_MODELS" = true ] || [ ! -f "$filepath" ]; then - echo " Downloading $output..." - wget -q -O "$filepath" "$url" - else - echo " $output already exists, skipping download" - fi -} +log "ANDROID_NDK = $ANDROID_NDK" +# ============================================================================ +# Build tests +# ============================================================================ if [ "$SKIP_BUILD" = false ]; then - # cleanup build artifacts + log "Building tests..." rm -rf build mkdir build cd build - # cross-compile tests with Android toolchain + cmake .. \ -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \ -DANDROID_ABI=$ANDROID_ABI \ @@ -69,105 +207,100 @@ if [ "$SKIP_BUILD" = false ]; then make else if ! [ -d build ]; then - echo "Build was skipped and the build directory doesn't exist. Exiting." + error "Build was skipped and the build directory doesn't exist" exit 1 fi - echo "Skipping build..." + log "Skipping build..." cd build fi +# ============================================================================ +# Prepare device +# ============================================================================ +log "Creating device test directory..." adb shell "mkdir -p $DEVICE_TEST_DIR" -TEST_EXECUTABLES=("NumericalTests" "LogTests" "BaseModelTests" "ClassificationTests" "ObjectDetectionTests" "ImageEmbeddingsTests" "TextEmbeddingsTests" "StyleTransferTests" "VADTests" "TokenizerModuleTests" "SpeechToTextTests" "LLMTests" "ImageSegmentationTests" "TextToImageTests" "OCRTests" "VerticalOCRTests") - -# push test executables to device -echo "Pushing test executables to device..." +# ============================================================================ +# Push test executables +# ============================================================================ +log "Pushing test executables to device..." for test_exe in "${TEST_EXECUTABLES[@]}"; do if [ -f "$test_exe" ]; then - adb push "$test_exe" "$DEVICE_TEST_DIR/" >/dev/null + push_file "$test_exe" "$DEVICE_TEST_DIR/" adb shell "chmod +x $DEVICE_TEST_DIR/$test_exe" fi done -# Push test assets to device -adb push ../integration/assets/test_audio_float.raw $DEVICE_TEST_DIR >/dev/null -adb push ../integration/assets/we_are_software_mansion.jpg $DEVICE_TEST_DIR >/dev/null -adb push ../integration/assets/test_ocr_image.png $DEVICE_TEST_DIR >/dev/null - -# download models needed for the tests -echo "Downloading models (use --refresh-models to force re-download)..." -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-style-transfer-candy/resolve/main/xnnpack/style_transfer_candy_xnnpack.pte" "style_transfer_candy_xnnpack.pte" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-efficientnet-v2-s/resolve/v0.6.0/xnnpack/efficientnet_v2_s_xnnpack.pte" "efficientnet_v2_s_xnnpack.pte" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-ssdlite320-mobilenet-v3-large/resolve/v0.6.0/ssdlite320-mobilenetv3-large.pte" "ssdlite320-mobilenetv3-large.pte" -download_if_needed "https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Cat_November_2010-1a.jpg/1200px-Cat_November_2010-1a.jpg" "test_image.jpg" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-clip-vit-base-patch32/resolve/v0.6.0/clip-vit-base-patch32-vision_xnnpack.pte" "clip-vit-base-patch32-vision_xnnpack.pte" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-all-MiniLM-L6-v2/resolve/v0.6.0/all-MiniLM-L6-v2_xnnpack.pte" "all-MiniLM-L6-v2_xnnpack.pte" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-all-MiniLM-L6-v2/resolve/v0.6.0/tokenizer.json" "tokenizer.json" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-fsmn-vad/resolve/main/xnnpack/fsmn-vad_xnnpack.pte" "fsmn-vad_xnnpack.pte" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/main/xnnpack/whisper_tiny_en_encoder_xnnpack.pte" "whisper_tiny_en_encoder_xnnpack.pte" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/main/xnnpack/whisper_tiny_en_decoder_xnnpack.pte" "whisper_tiny_en_decoder_xnnpack.pte" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-whisper-tiny.en/resolve/v0.6.0/tokenizer.json" "whisper_tokenizer.json" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.6.0/smolLm-2-135M/quantized/smolLm2_135M_8da4w.pte" "smolLm2_135M_8da4w.pte" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-smolLm-2/resolve/v0.6.0/tokenizer.json" "smollm_tokenizer.json" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-deeplab-v3/resolve/v0.6.0/xnnpack/deeplabV3_xnnpack_fp32.pte" "deeplabV3_xnnpack_fp32.pte" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-recognizer-crnn.en/resolve/v0.7.0/xnnpack/english/xnnpack_crnn_english.pte" "xnnpack_crnn_english.pte" -# download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-detector-craft/resolve/v0.7.0/xnnpack_quantized/xnnpack_craft_quantized.pte" "xnnpack_craft_quantized.pte" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-detector-craft/resolve/v0.7.0/xnnpack/xnnpack_craft.pte" "xnnpack_craft_quantized.pte" -#https://huggingface.co/software-mansion/react-native-executorch-detector-craft/resolve/v0.7.0/xnnpack/xnnpack_craft.pte - -# TextToImage models (large ~2GB total) -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-bk-sdm-tiny/resolve/v0.6.0/tokenizer/tokenizer.json" "t2i_tokenizer.json" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-bk-sdm-tiny/resolve/v0.6.0/text_encoder/model.pte" "t2i_encoder.pte" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-bk-sdm-tiny/resolve/v0.6.0/unet/model.256.pte" "t2i_unet.pte" -download_if_needed "https://huggingface.co/software-mansion/react-native-executorch-bk-sdm-tiny/resolve/v0.6.0/vae/model.256.pte" "t2i_decoder.pte" - -# Push models to device -echo "Pushing models to device..." +# ============================================================================ +# Push test assets +# ============================================================================ +log "Pushing test assets to device..." +for asset in "${TEST_ASSETS[@]}"; do + push_file "../$asset" "$DEVICE_TEST_DIR/" +done + +# ============================================================================ +# Download models +# ============================================================================ +log "Downloading models (use --refresh-models to force re-download)..." +mkdir -p "$MODELS_DIR" + +for entry in "${MODELS[@]}"; do + IFS='|' read -r filename url <<<"$entry" + download_if_needed "$url" "$filename" +done + +# ============================================================================ +# Push models +# ============================================================================ +log "Pushing models to device..." for model in "$MODELS_DIR"/*; do if [ -f "$model" ]; then - adb push "$model" "$DEVICE_TEST_DIR/" >/dev/null + push_file "$model" "$DEVICE_TEST_DIR/" fi done -# push shared libraries needed by BaseModelTests -echo "Pushing shared libraries to device..." -GRADLE_LIBS="$PACKAGE_ROOT/android/build/intermediates/cmake/release/obj/$ANDROID_ABI" - -adb push "$ANDROID_LIBS_DIR/executorch/$ANDROID_ABI/libexecutorch.so" "$DEVICE_TEST_DIR/libexecutorch_jni.so" >/dev/null +# ============================================================================ +# Push libraries +# ============================================================================ +log "Pushing shared libraries to device..." -# Push pthreadpool and cpuinfo from ANDROID_LIBS_DIR (needed for OpenCV/OpenMP) -if [ -f "$ANDROID_LIBS_DIR/pthreadpool/$ANDROID_ABI/libpthreadpool.so" ]; then - adb push "$ANDROID_LIBS_DIR/pthreadpool/$ANDROID_ABI/libpthreadpool.so" "$DEVICE_TEST_DIR/" >/dev/null -fi - -if [ -f "$ANDROID_LIBS_DIR/cpuinfo/$ANDROID_ABI/libcpuinfo.so" ]; then - adb push "$ANDROID_LIBS_DIR/cpuinfo/$ANDROID_ABI/libcpuinfo.so" "$DEVICE_TEST_DIR/" >/dev/null -fi +for lib_entry in "${REQUIRED_LIBS[@]}"; do + IFS=':' read -r src dest <<<"$lib_entry" + if [ -f "$src" ]; then + push_file "$src" "$DEVICE_TEST_DIR/$dest" + fi +done -# Push other libs from GRADLE_LIBS -for lib in libfbjni.so libc++_shared.so; do - if [ -f "$GRADLE_LIBS/$lib" ]; then - adb push "$GRADLE_LIBS/$lib" "$DEVICE_TEST_DIR/" >/dev/null +for lib in "${GRADLE_LIBS[@]}"; do + if [ -f "$GRADLE_LIBS_DIR/$lib" ]; then + push_file "$GRADLE_LIBS_DIR/$lib" "$DEVICE_TEST_DIR/" fi done -# run tests on device -echo "Running tests on device..." +# ============================================================================ +# Run tests +# ============================================================================ +log "Running tests on device..." FAILED=0 for test_exe in "${TEST_EXECUTABLES[@]}"; do - if adb shell "[ -f $DEVICE_TEST_DIR/$test_exe ]"; then - echo "=== Running $test_exe ===" - if ! adb shell "cd $DEVICE_TEST_DIR && LD_LIBRARY_PATH=. ./$test_exe --gtest_color=yes"; then - FAILED=1 - fi + if ! run_test "$test_exe"; then + FAILED=1 fi done -# cleanup device +# ============================================================================ +# Cleanup +# ============================================================================ +log "Cleaning up device..." adb shell "rm -rf $DEVICE_TEST_DIR" -# cleanup build/ cd .. -# rm -rf build + +if [ $FAILED -eq 0 ]; then + log "All tests passed!" +else + error "Some tests failed" +fi exit $FAILED From 916b3b335c39761658088f5ac7fb4593e0fde452 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Mon, 26 Jan 2026 14:33:00 +0100 Subject: [PATCH 22/29] chore: add missing assets --- .../integration/assets/test_audio_float.raw | Bin 0 -> 1568184 bytes .../assets/we_are_software_mansion.jpg | Bin 0 -> 52710 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/integration/assets/test_audio_float.raw create mode 100644 packages/react-native-executorch/common/rnexecutorch/tests/integration/assets/we_are_software_mansion.jpg diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/assets/test_audio_float.raw b/packages/react-native-executorch/common/rnexecutorch/tests/integration/assets/test_audio_float.raw new file mode 100644 index 0000000000000000000000000000000000000000..177c7b891453c8441277aacf7104b16f6459cce4 GIT binary patch literal 1568184 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o#Kv*;zbMD%XU41UZuy>Z&_p=?0 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 z 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


=iSs6;+US3ba{^}E-FQZ65 zJ(9>iAHc(A{=(TY8F9o60+lKysNMTXj*ZGDX4Nx^Wz;I19D4~- z*Q_8)vxn7Y-cFv#y!@oXs7FpxzXH3lpI6oeyXm%Y&jMBNd|4&3C6E(!SBT4kal{Oq}cy7vxY=<6}ze9uuqy?u}H&2Xu3c!QI$<%f>YbwX7b*(@zg z_KhO$t`D$hTP+Inj)D-QT==oF6$avl;8BSYGi!=7vtgeT)4yaEGwtMb=GG}I=E|)x zjAfSwv!G@aGx)a)8s}UG?ahl|ZV*8}S@RIR>4bQ@Q!e{%izQB3rA<1=?jX5ad`bD5 zY2*~qCf`gi;|7~tJY&~;er@bK`fF1v`W@y4m;Xe=HlIxRq3{r%tZagRpF3eh^iNpa z)eS-XFs5anB6H+V7d+fu0h<-i!JRq@*W>&NnAhtA-SivO?G{YWDy-)(eRjb$q18Cp z0tm@DL`47M3H{>|c`klHF4VP>4=NHTvfDU8E_tGGeWHXJ=*$QK&5MM(34W%24lPxgL*G4o7o{IW zU>lbOx*zH#9-e2CTzfqzd38ca`7c=LtInJpP+`o+eS|r)YGG&!2k*yShNXuK!2k0? zsAx9@1uqrY7Jq;y5mkKeLOY2YbS=K}!3-}*k$59rR}z2uE##o2>*Ta+6?u_-j6CVM zMxqYABNn`}ptoI1SnaAM6kgB~(#Km1&IgwX??Vm&F^!j2#nX6!*TX5A)=xu);PSR6NJ zcK8*v^7Wwe)b1WBPLhX@OoZ5M=N>x9&2u0p=Gix3ej684HZ$fy2f zlCCOC$_{nX$_BM4aa$f#kNpNa@{}1rXFJAO--)rfHj5cMaXzC@yD)Efno%b9OihXj z(|dO$&gbf_;&bLBX*MrTjaMDwqF8H{NxkDkn2^Wc@1< zDPmCC8*LPKQi~5cIu;+@_X6XAiKHUjjnvO^CslV(66NQzf)#BbwEP|?WGPP+;!jT( z6t}GvoB|FD->M^of=l6oe?*`_elHi)Hq91h{SpZy7E24CPxIt}=Q{G&{vxgJ`vevC zg-Q5s4?*d76)4x~GKQ^YObk1o5ubHpwm&yzE?w1S{I*YK+=CUEs_aM}4o&ss5i(%nE4vjf_3z<5^pu3N@)06#PAb&Oyb!>@3t`$YdEV`3cu>3`T zSyD;&o8CgR#Xr%6OI`GU_kVO=e>h!rMFoZU&q0@DOpw*!J38O)BQK=4afJm%=)dei zboanhq!1N}-e38H<~^Sdzm9BxD2pg)ukwTWN%O(TCI)JEU4^21WiYStIB3jV11Ek& z!1^(JpucbeknA`V;_Q#Faxx@JcLT}zQ%2TJlraA4EQQ0)Gla)sUP7+h9^vbXNMYjI zbiw>qo^UBYTTqrt6)5Q_VfNeu!rAzh!evKB5M5Fb3~kSn)5$G3P~zhnxoibovdx2_ z%O7Cc93`frZ8CFs`ZT7#ZW?nt&5`MPIEl%BI)!mrPBZ;G9GM1Ai%A~Q3%hSM!-|4h zz&Q<|y7(68CB;D6@OAKYng=wiErJ=}?VxhG9DLK4hlA(;q05PDko1vF{LP9T{44Eq zyk*5PEIR9o19H-FQOR%o<>hGd`nDGFzfz8SJJRu#@t?6@#1ou<(GTk!ABC*)U!&lR zTvU-QAXx1Mjv(QEe!CA=p9d65Fa zcWJQG5zvUhv#8^p0S>O8OjI7_6OjK)%N6RF)!*~N zpP?M#SYU>5q$^FhP!%c2EeaO0mHmW{csrprvyXUcEFw|?0=}0VfRAo}h)k$3kjKv? zj#dRmXZuKI=)M+n_mwuY{pw^UXp$qNHG3j+wp*VW?>U~?zgnBIHdSOiqrZUh#WqNl zZ-=hnH?aR~Ic(n(4?D^Z!oR36h#oo%)Rd#p9oB|au025)-esUce@|5ZJ`VM4e8-=R zE5Q9I3fJw*!qw(6xNLt7Uin9sY&Lt0*W4<_3#5y%*WO{+Z(S{I{KgE~YTrjoEloi_ zR0K2E#lW#X9-8k|L-g9GkhAojgr)Tuex8u{vDhz=k>3cqdF7Jd*(*@dlK@%{n;~+( z23%jp)2q|B;QiUEM0IZf(R_EGG~Uw|6pJN()|hF+h8OdMZmB&&eP*K2=9w$FuF4bU zT{|V@NF@oJRg$nUB~G|-{g_~?>@B237eEZFn;J@T8JT)E0 zXd4b=)UL}hr5Ds03w0|d#=)IArZkNyx-p44o~gxDx{YGumg_Mm)W$Qd<3=)KvyWi0 znn1tB11NBR3PJYe5Z{sk)YUaGr0oIQ-c-aX5fxWA4kx2U(IcCU%BV5zg9(&Z(L{r8`sXci=_XHp~%%Y5N< z>{%gg#%aMnIaNrtOA@@BqXmN#e!`1yl(3gl6O2gMPT$mp`q236B>`@_2FPM3oLA zf7V41BjZJ6;F>9sYgXNHa!jr5QJkZ{YRk4U{&11hlaicLkKvL zBV?qV6-unLh5SWn!ZU~$>>q~|8=0h>VsC=NAJ&80^V(rLiSer5%3iO!5 z1XafT^iMcd@g8g&>R`=4B{0U9A^z)H@SOGmolCq+M}wc3YM;YX7klw({iS5~>ku-| zBZ7SUzLtErwU!KZg^)7$P}1^xKUrgKNm|F<#vhU&;}cp{SnjR||Ko2sa+cMCI|_?I z?6e+KHbj7Q@J)$JrWJ-M{DFnhpP=bU7i{a1WA^wcGF=Cx7hh15@dL5v?M3GZi56jtr=5W)^`62kxN6I6t7L9Cc6 zI1gnB#X8x7lT(^tUK%g_e0D-OK0i$G&sr}y9Y#X&dRbw-Axo52BFPHrO%0yIsyJNr{L4)Vra6ifoJoZpj^8L+Cv5)ciu3jDPN7LpC!l4Nc;>cuOvRl5e=}m z=_y>@k_)nKW)PJ=4F$Vs;*RYsE=dLQEtV&{E-MO$9F2vki);i#x7k8N_YNUaK18_u zGeS`Bj1$z%(}adYnSyC`qVQ^dq#*SmOz7)AD0B^a3&EY1!ji#3@?HHZ8L@slQA@jm zWA-0KHT_3H)c71G2fT*A9)mEd#DFoIZ_TJns^PEBPh(Ec5Hm+kxG;PEGEC;Ksm$Pn zsm#-0Bj)UH9i}x%kBJ(TmdI1v;Pa>&SUveNJlvZEd-u+Omi{W#Tr>|Iva-N;zBk|u z$@9F^F_T=_eT1m;F=X?_NMcwPO7=3T?rV4ll=%7ixy&tye6z*x`$s zx4uP=h9A(X4p}gGzZDMODFzwcDzL4)55}pLFd?}I7EDrS^23!G??p09*d-|@#z2bc z9q0qK%tug_lLv1_(V)@Jz>rohI=RmUcRij&&OSX%@=r+kyNkQYxzmQi*HR}T)MJ65 zXuC`}>9ko$9SjwI%uf=ApGXpVbd!Yd%VGtEhA_d?C|sD_wO{D=ohPKES_qBVzsQEL z%cQ~Ii|o)f#zji!k@3-uFl)*~h?DLDV^cLo-QS1_rYAGj|NRpfmtGsw6(2-@Ei9ndhR7hZhB2_{MHCb~&4O&5BG~?|94;uggUO>|Ohnc&#!6j=smWAi zK2!3HQHmn7z;hVmOKKom(wn>9nhKQ@HbaR00Me-Z%x{YrO%4^WCRN$_L}T1H;$JgP z*q!7csKzovO@x;qS9m~J8y+M0Ej%IYeh@9Z4~-QjE;=EYdBqCM%P^tg#Wq3n>1^Ss z#ss0r`!6X~cu3gMA*8*f8ZUV0jjnrdhJ&~ShDASv;v4_qqo*eG&BKa0R6U*fuVES! zm+ivbn>CY}@Sii|H(~~JQS$#@#@2y(U~JBmtRK(BM~`9b4HOvVyk=Np^8gNsE`p({ z5Bz)b2~`b+qZGFg@t>9VCHw=1B>62T#+lw^F5V`IDyNWY)dI4^E0eUoi6n89ANiED zoy33INP2s9h||7{*uz)}N7>7wfyQLy@JJbo&U?e!*J1E4GY_^lO4!5kk3i~P7eved zg5aScSfuw4gzr7zcA*=LJ>S4yau@z)rh!(iC;X8(hW19MBiXlevFxs?M9-w~L!wtV1(BPH|IWxoHc8WLjdbOc%YkBVE*RS|1x1Q*` zogtp1pOAN1Qo_O4V}<@6u`oT(L-=00R8YUSMd;EC6qfb`3AY=L3D0W+h1Ru)g_>=9 zgt`mMh3y5?ghNiILc|UwVeP#x;&$XBu}iimC6yof>-*A>SBxGsCqzNp(xT+) zrrtMjaQ0o8{qGF?Xxt65H?-hKY%2OHe~d0DH^!N_ui?Qmd9vrUHPQR)OU~`xLN=9o zNnG4MWMS8Cvefq=Ih`RU+J^V>vy(a4JN6P@-R*^`v(MNWs2)bK%wN zKroU$507dqAB8ZWlZAp(HDTfAcCvNZMbbQHGx3-HgqMlz=x35nV`IcR@OhL1 zXnz$vAJzj#opOxdfEHsBZon96n=-LqCNpoANanec`_ly*Qwh>UpBWRP&$Q)@VVD?s z=E9R7Fg@)l4A-~;dux(FBg+H2K72$5>hkE<_bFJgiN}A}G~o%B`hsJsSJANLo*k^+#sNF~TE59$mym|f_RJvcn=DIq7h$1dW6ZPIiK^9}*%1JcNCVeT5jU-9prh9l~R`4Z>Y! zx$ypwmmt;XDr`P#DX9Na6Q09(}FP6nQ0EDbAw=e*OS%jmw7GX@213r4KGYZXvgHdlc%hmhUS(jZ3=f@$Sl3IHqU_Pu*lha-$qc z;4@n?_mM8~Ij2HO-pY~7`{l_&lOde5;0C@t%NVa6?ZOw1VriWxzUX%Jb(G{V0v=BD zfs+ZrQ2itt2FApJ#=0}`-0uR|co)LC<}4V+ML~GJ9|T8FhggaK@NxSS^w-n`4OULX zPG73AbG{Ps@{;seof639eVDuqZY5uL%L91=S0T zFilM?2-+6H)!F*O*<ieJFuzdt~z8P2#Ds58L^I?PH%Bc|txArojjo>^O?%e<%<#k4(8 zVwz?Dz~De5>@>&lIOzzsPC^2y)6tCBX>~W((^h^o9jQE3OTI3^d9`=f|D_ z%ZA%ff9x%s7%9bU-lxn=FwN9(LMlqL8Dl>Z}cYkM- z&i^?&?|3TTKa3-L&+Hi@n=;OG-;a@&hHq9$+DnQwq-Yu0gpg1~$w(!I^W2{&G*pt7 zl#xiKg?5tsp4ad1^T&Ce^SaM@?$7nPuIr7jl(gbm_T^Z2O){42+<-SaaC@M;UlD28 zh+?92d4c;cGDk(7iRq6D@?g#{;v6XrIaNXsnJ_{YI19i;g)~^ck_Pj=A4z0!EwMXs zf{dwdCbiwtWRA8dGj2IT?RH8+yrk#ofUq!r@Kgpz7){68RWA4kpUaLpQy4aw;g7T` zK9b#ymMl8Lu?TNb!O^2k>Zx1g$3k<^Yzl|ZfyMA-Sqt<_55sW2G<)x-Hv4M38C!2Q zla>GJz{afNv0v34IX%gm-T9v}tMFcxHT0KcCrrKrE^dPt&gWn!wL`$=A%y-i$H zg2|$SeT@C{D-_ilh3v)1K!x+6T6MEImho&z9)=%p7+r5 zJ{pZ)UeCmg$CI+aLT_0;3^ZjyZc6~{Su6)uIbr0zK^J8<^)6~y zZ;th@hvV+}68z%gEzDoikJE4d#fKJ4)3<)8(uNMY^dZk_^eqKrTI;zH9kauLu1wdY z6>ciicRM8L3f^yA*VKzoWH({cb*1=@X#yU8?vEFqnT7|hac2jDP_g7WDm(8qb7w4! z_>^5B7xwlNqwpzkO<^jSgiV8n1S6mio5GVsUD!0K2)ebx;0?WGc({a|eD6vww&pO| zA6HYquG6UgR3WOeYe5gqyU@FeaTLa7t*t!XpfTze^0=CcdYUYe$Awtl;!S4c{IWYF zY^@PY8(If2kpY?YwIDv_1r)vf4O=}W*-bvG?9ys|HtDn}Ti9j68fjXxhSyBkkq7#$ z@fkIC(m{$n8$J%obzfI)p;lF=aS@m$`KNH{}P#c zs)r~C{w8WKMd8;>NieSwgL}IqL9k00vdZ6*8;c(jmCy^MKPiTYUU4L27MaYR-?qH0 z%%_xkFb}EyTZObI4o5lMgf7$wECfDEhtx zY~IF#-jZVAaMv(pb{9N<{}cMk#n@3pMRvGHgEbr1VVyPUW_@Cf) z+?UgZgYJL9zdN}-X_Pc=e^-HK%~j}w=A6d4N0qMkQ=uEp<>>iYV)Uxazj)yE5N^;~+wSU)t)W$EyPCkxC488Re^U-TL!Q*F%)R&iJfu9^`|F#9wxaAn&B!?M}$AVlXENEr#T0i(hk&rpQDdtI1)EhNA$iu?-q1qVR(-8~5A z{s(^O=78L^P)J;13BnF-B*kBYO!xRs1?4uNos=3Dx#Wv~w8r2s!l$syhRZl^-wk|T z=NUe;Ymm$Af5keZf3SO;Al+I$g+9&gpl{g;(*9MyaO2=dTs^NBTkO1tcMM;{=EL5u7$`hef4V;`s@OaO_YT zcH5tim5a-;^n)5~ascqBg*S0T#2s9Ap%vFVw&G{&?%+eqo3Nir15VT8*wJ%JunIS) z1uRd%2P=2r?R8%G>+M-MR#gozuK9(E!>%JC-6WJ~fRWYQ`_wjx-@GgS*ZC{v9%r;V z-!Ny^s1X|@3-UT;3E5$|kw{+IMKX6BCX0%Xkd>-OiQK0IQY)WEh5}NEy`f&Vp~uNOvty+0WIAzdImt2Cv&m77Jfh-SOj5agZs&s=#5m|Fi7@&?($qv?M!5>) zX&6JdgDsTKat5!zi{anfm9TW?dLZUO5V>?KoIDW>Q`>fce&c31^JWzco1p3%B(e<7=0!aYn2Y9t)u{*NufQhr3{{1UEb)F&p0iSFB^~jOA?*Zpod6 zRYc7=t-%N%rnIsBxHK+CLU`_`Vbr<#0lI&w7PU+{f!Z_

xgNXj0o6{jSkP#O*D` z{Fh64XziuKdVMIheWsMn#}OWKe#sO1MpMF@7En`%a(UwKPxEfAZs1wlXYg)&81u%y z&F6nDUeb^h{gW?ra1G-jugQF<_o##UEl!v3ETEij`csBK)tr(q3-BFm^r@TGdw8E>70%U>g<&%~(eFe^6-GLMAS8WKF0Fdw!=Fa>@a8X^S4cy_1fH{7i_ z~X)^XIpJ};t zj5+pQl2}9;5jh<}X7$s1e2v2?Or^2})7kKrw^>C9Ih5*CJnI~%mZrnhYgKhLU&|h~ zIDDZl&Ml$V6x*W5%4?C~pf+0I|B`Cdl|aPM8*LLlh%}=EQF#A5DobjB^0*O#I(kYt z|D_rddwZX{_aYM&w;o0QV&^FSObagKyA^$3qJ}!6b!#?X`q?cx#aQ&uox6m)XW#d3Xx-k4p1%^{dI~ z)YDY{g;;b-EQ6T&1(WqRs;Gi5GDt$^2D9N{6ELdPy41%@nVia)>r5x@!=04x z?Np>*hnXz-NYbihi=H+(A+=2o{I;k}r&i@n%u9U_r14}ux*&RwDQcuE1tUpWK0 zY|CYYia#+ok9$xn*X={9-b1_>OLF*!SLssAzm`zey|1aEREj)Fo8!2l_yIa8J(onH z?<9QlSF}I$7;<<$N;cB5I+Y;e&DmWl#}~S%BSK# z=HNqlQh5C;6`~Z1el|#ulFkD1sbM}UN-afib{-+d0c9jcN)dhNY(fc#R`I6DJRwHP zmCSQaS2c7@rQYNl08`yS#jTge#&w$H#kyKDRZkE-+!cZTJg8%qbyPBOJH)9Y-8=bv zHVyC}`%Ojr*tgV^;sz3^rG#E*GsvVVnIv4>NUU)Q>Tgb^N_MUxF>}%xryEhIyk8Fa z#tOqspCam#qY3^qRf{|knGQwU&QS;6i{lu#?bHI9-=ux%f8@i@=cqpL88SQhkr8;LD$l&h|m0+RC4?nIz3aLG2bNvi8J+3$|oM~aM{mHbeTcB@hAQu*GUzZ zR7Cwa{eh5k2@P3W=AsLA#VE^mCF6FEkS~>zD1_p;(%*$iW!gNVd`lVSc>=Yw?gkTG zc#*gNd_0xIG3OquNfOnHdMa%=0`(p_!pv-1MR<`3)SoV{2h6>WcP3nb+)7(Qa-Ecr z-~(ag`_`G9_Iby=mY1U3=e_2eM9(6*E0-{VZ*ieYYA}dQca7mSbs1BtykdU(qltzW<#FV*#7Zh}=2?{X z(2Ve=dJ-|)N7PF{-G=57C2HvAX{yaXf(#!x&y&=^cVFQ<4eS=mkeMk)+`b$|)s0USw~DFIBr`D-)k6MwW;yM`8vBDBo*@Bs$BIKyN`TXZe+>+(d{`uqnD} z=fvM5^lO`KyACr%K_qv{mfRf%5iiRP&-OC)wXo-!_0PpKMS464&~ zp$zA5AW3#LOhkn_@^?Rn_HR&Q8VVvv%71+7G zJ&J3~Cr{2~6V}b0lJoH7B}RN^=FNG*ER2$6M0eeBN;7joLVP1s^EQVR?&A9I1b(9- znFRF6>mr$WH^jtP`C3v>{wooet*47 zohzD8*1np?n{BFzE@XN$_6se@-Jw&AUsN0K=9y^93CWY6yP6rZbIw$x{7wFA+gK*n zyQd+&Czf&Cc%RbTR!wE!RV1xn#fasYHY&~YLPHr_xIW#Z%#e5j5--;#jy0>u&L@)S zwfQot`ByTtKSG76d8fqxdR5Qq-)s-GvC$9(bmbC-ACnFIW6zLRS_8AV;|$sAS%YK` zl_UE63-ZF!hNL=-AmeLgRL5inIWc*GsrdSvvPRiV#Ab%svF1C~Ke(9q$LBE(BgfIU zFQ1w7&DkWZYX&k6-h{AN0I4VtC00*sdDp3DjL$+tqQt!5oe#@ssFkrLw`+GYlgfjX z?gXDXpD~-PTRDeug$+7a#HlCM>eQMr8}xh7hPU>u2wA??7`4k- zBc+1(4TjbO%$pG!i7P~)k%T_ROoPjHA5=#>yzJ0>2?b(_vdG;Z&Pe-9A{w({8L5d_ za*yNjxP2L+W<{2wzf&bR-o|4xSKE`E`jLgEd`hIAE5wlT$kU9C<$bCkOxr1RGMvZm z6d;b$QH1r`L!FKvKu^N0nI+2KiGIus^mOk4nz2!UdGsZfJPT6gc}8qRS>sdC<1%yN zDilBh-$x+&#%?s>vYpJjM-j*Rb77&kr1Zh_hJSx; zD6NJwJfS9i;`+yhd=PV_GA!ou>m5p&dr`ekzb}2@t1T8_d^c*N_4>*P-QC1QCVMeU z_I{vBpL-*-x4LNg-Co{IHh{PI?$+5EpL_0(0FFm%=T7-M3vk?^vz zspW0OXwbnNO_uK?O+Ob9(@I@*RK*4Lff@CE(`;gSXp(uEtco0N*rJx@Qe@{TYa(2c zLj8$qreg1$<7d=MlAfb?nb=M*D$Qd*IuJj#VU95&+m>}x+ot!RSn4CA)cu%)V9B8A zp2v`ep$G}du_5oJD;NR$bxgg3E)y&1LiNV{<_$6G#O?4DGDT-GRi>804+@VW{89zV zdtw`k`>sk-Wb#O5aVo#{rZYNN(N4LUgfXq->&T*++nH76C1{7bIXcAkbv^anLoQgp zqNXp8Knv~aD3A92%zvRp+_GRjn!eSLI=1H#6R$ZBy;G<`1>5ZSYoAAw2VGmJWP*{< zbrBSKW-s$lZ!Wo!_LtdZIv36FazZXUB8cB(Ut+jK3?=#p@>r#JjH|T?yK$ElkuQ zfJr!hiL#D5&g?QwB|pxTGl|h6=+XQmOk~9oQuVWk@gGxVA{=IsH&${)rf(VLBe03+ z-{n}DIkmj|EuqYZfDCf6S&I0Zx**3{O;mi*5whkK*Vnb#2}O6MAm}1sw{8L&dQpiUlnCIXyBg5y>D)bPVFkM6 zR)@lBqEYMq-KgW~A*80V5Us*G=-CGm)VPG}y|G_OEer49$7et1n_gMQObOpZY;&Iy z?{lBYfXy|Mrgww9ePs(xMcW`>*Ar5N5U4E;g0Zkvm@=mnuKvmgsWWkK@6!p`;16JC z2GFlk4);H2!i>lH@cC>l_{5%uwujj%12EMn?>y zQMPCTig`B$k97xP+t^5aoqrfx`)6WppBr3;q62Siy^A%Ubz-wKUpZa#8=goKq+_p2 z(la?9so>g9TqyDdcRUiHdjekLUaf2RyFcd}PrJeSTQB2?gu{3l^&dXZF;e8XzP<3b zoX`KsW>j%Bo7eu?ovA3yVmj^^k-qb_WZUtnV6n{;ayL1F^c*7?3fTxBoD#u6HyLL2 z=fOYrB$(Vy1(}DrpqNwzs~+8kGwcHZlSbIcb#kX}dJRh-{D9-%enRBGQ8*~|77nTn zg2{hV*dNb?*emZ|z_ZnlVCn8&(41YxF%)tE+6Ww;T?oVTq~L{TA33ie4VV9{Ay1A? zMc&IUB1son?8{Z&d1=Pu&Hrj~Q_2rt=c}HA>T4UWn0)Bn9cDGFkdVt{fdq zNz&9ub-Io7sh$cKr5zf6;}f|8^d^-t{NdFQ4zGBD>#m*0=A8Gj=Tr&~oF0P@r@G;? zyOKEMeg>+zz8pPT5{6=W9e4wU;pFu4KoV-6N(|9Ya&FNSSTX-Q$8A>u_+SA}GZo?b zb8(RRWCRWhmXIMM1>#Xk&^KrXw)4$_WGX>&i994(dcd78aq#JDFj!zuIIfZiG5OUn zbF2nFtp~8p?*pY3PoeX~B`CLj3-3Iqvht!65bz$rprac$TKt9G|MfxN;m6RU_z<-7 zPe7B$e_$&e3)(MIU}32+&}G6LmqnLXMrBf}AB3=;NC5UBNATF5LadezSo-QKY!&$q zFW>PUudk4&wN$m}OP$iR@Go&1Pfn#56=~5uK}xiylr$~9e-e+4eZrlmzTjQ8-8fM5 z3ch`}6g$68$HPFZ8-CZ^=wBR*;5`rZu< z?{of}pF}s5W1~-sf=}l~^2kmG{tY`qe%@QsyY(1(p7@8jl*xluKr>0}dP>atronrx z2EPS`;a#{Xh)8+ERg*)Yr&s{zSZ~+ECC^0JnajD{NQxBO z?D-jtUXQ_gO>x$)OMu-k{1qN{^}-&zBCtHY6pXIL!rtA-p(=NjV^TFB@%O`Mc?chA z$gAO{`5CxkK=?uv<(WPKC_?jV<=@pT83%@@?Q)n+-fx&<3|0F$kTi4t05o zpe4i2W$$Z=n{P9D|M?+_{MJWC$A-wqkT=AA+7nXgqXU07ZiAJkN1**i3dmSw!~Q*` z0Lfj@EhEFuEaiN*Z(o4w{cq5CLyNs^tji9IsjzIeB+Fm-4`RbUgM8puSd={hx9s1* z)Q)7}JLrL2f)!}oR)GgImXaAS;?eST7^j!#<1MY1v8q@NZsT%t^NAv@_*|QIBnI>w z&ZBcx#fm<#dnRqhc^%_EI?>X|o{mwqpqDln&{tQe(SN7P&{{f6cuZlR$ zb*QIe*A;8

ykWXWrj!~-GURixQ4-e_QgRe`^1?O3Dki8=uWUP{5Vtzi1 zo>T+>X?4P4t7@2fy8_-G5JB7Q8qoE)3?7H`p-?Ujt`tUtcH9P#(_RfLconFBUV-0^ zE5yr`N^on=2|P-3IQkS@ijLmTMi%pGxQ{y~;>J_es8dbwm^?U*FYnc1Az` zk}(ES%9eq2;97{++XRaQo<*B|JfvG4fem~V>=O72;YTCjs!<@w9}fm~t<~`Jm^Roh zc!$@!)?Q(iUSW6Usv$gYR|T{4=VF+WWIBr~ zPh%UaPqXU!Vm7m{fmto>W_G(CGrssOYd!Od9kYDSUM9$i7jGFUE_?rpMH|0iql>?@ z*t<_zW@`)cxS7ptmPE6!i$j_7HY?V>MwYEOnn}%qa`0R8cepIV3%_?Ugb>dt$hsR2 zg_};otT|_)cTzFrj=3Q)*c&0J`VQn-Tm%=1R9GN5V`8@#gUQ%^up4gzxvL9c@g@X# zoB{*|H{-~lR4nmy1d1$JfyJh|c*E~S)Kh&NU35)^mi|#9Z(V+H`z;M|{s}ca|FQ}0 z9@U69eR_!{_lLf>NT7!mUB>1lghtDH6K#^_~G`FV0@va2uTNMRe`C%}&#x!jDKQsyFBI}t+`0;rcaF+ZJ z>VF)7Wlv&Z^~ZepEO`M`gbd?}x7VTk)>WvF7s2NhwL(~`60R*d4G~i#Av|{`kE|FnVxAK?EFOUVR+9!`B5^J(C>+tly9 z9MgTbfLRI5fqfTuvfsG}m`>qlRyn(rxot^f%~b`=N{VN*s;{#U>lX;&rV zMpW`QR9~Utn%XeaLlRoR0#<(f59If4gjBV|FzI9_IN@A~IgkV2yv~EBQZX2&T!cyL z8Ib$)I25?1fzjqLxDw|Hp;!08n>Y5Ld9MYlNK3)CoOd{P%P!#_V}Xrr18}SW;2@JQ z+PZWmdiuc%jb2;BTWd!V|ACn}{mwqDweLN8)L?;qwC>=$9MtxK^$&YbYr(_sUc?2j8d3e>;kdpl3A;~@ zqbceUGV7|0VR&o_OR&mirWJ{dwv@BHCns4_ZXD|~&ttnU#xqB+ZLDWg1e4kv z$^;)Lo08zpJkMA##Ul;WeBy69QST^SWs*hgT1U{V_6c~%(*msK5RY$)hQYB*8qgJF z0lHIG!i`!Fm}#&BQlhrO5F80h7Dhn9^gYm55egG8AB3Fby`a~!0_X-;_|a(%iiM^S zzE}gUI7on+p)4f!G~?QKhD9UF@Xs1GeC^*h{3<5_zpiz}>K&oDiq+ zxr#Vrhz)Kz7>(T~3yy#-i}0bybgcIz5$Zge$hL+a2|Kt{GYbr)Z2>JY14}#^9MeqTQG?)H zSf&k;A*0~o+b(=FLIwg$l_7ghGY-G-7*8&_i^qSvj=3rM_{ZI=__|pQPJa@I2L%t} zM%P$8)FcT{h+2ww1T4cTC=wr*Gr_X`PWW2+BHSgodi=T?(X~fo@UFp$I9|wv{T!!_ zf={(0-LVf*$zxr9TFGOCr&@9MPwXc3h0{6LA&be;A(FII>LNLJ&59-zhts9m3n?7P zprc!^(|fwt=tz~DG_gwHlj|t4fsu-=Sk{=GcACs)?4QnJv}dvOvo37sojHugxiGDn zUToJSU)J2|$Hq4Wu${TS%spT+OS$30_UO5?#}^l|#IuepM}9nW@t(+fqV$DM`w!am z_aUu4c!wU@?Lx~!XVagKld1dmuiUkL^Es(~Imp*P8Xt0Z!~ez?;mRSe@q;LWyMtt) ztVtX46cpjfL^T+vZ2}kFO$8UcF^IMyp$jtuKH8eY$_{hT53+?N113-xW(toVSU_8* z5xkBV3zE-u;mCPikQ%27NXRvhI5`Y`sz4{&YME$m?W6sMlA#~B9* z-XoodFK@}g!woaBYH$D^CFDd8y`F=gdkM4OD^pxeUJ4!lCS;joj3gFGA;oW<)|GMF ziMl&ayaswm*qmuJC{TwwE3XpXcMR=J45xE0#nMSaFZbyJG5u6^mfEp9w63L0`=MP`>Q$)f&yL@$@#5!f-6G%$KM zO?mA~C3DSa+rvxb%(dVA^nx62o7*>3HflVsDD=jeRjGLKfpk2<_BK9Z{uN((`V>#Y z--Yg<2EaxYFrA?VdJ`r>Ns}rZ>(_*@hNjRQXaIW$Mnd>lV@SL^8gy=}gY^=9D09?< zEl1Sg#v@fYb5ji}BIV)na2Y77m4{IhU-99Vr}(WX%Hn$lObcv6Nye4Pm-R0 zBIc4R^wdsW8c^aukJ)(AT_qc-Lu44$n4U(<564lH^pn&{u8LZFm(s#$5!GnELuWNN zQ~#bOdfN3h?U?_JI-0lB>i3_iw*PB-^u{YX=GAvi_Xoer)ujfX_5E>JvB%89flvF z?pj-EY5>rTSZR9yavhOKwkE+beIpB}zR82e6=i7JA^7Hnzq7{%HR#pWfZ;pUAj4o7oSQog zGDpfojDrkJy(kHD&wRz{>t5j%Zyw`ydM)_%4TArv7h?&J96WhVJQlw`fPG?DVxu26 z_?p%zJooW;5rAhN6Da($ce_uyaO@STZyfvCG)QhLb z;^PF*(lL7S;4yk3KaPeyO`uz&kI^M#;_1<#<217{jyArHqY7sesP}*IblJY+0*5L= zVEHD{;;V^N>*5LO{63NHSd&O!`6W=pX$dswN-P~#97~nVh3?hiebh;N550QEmx_Nc zpg*H$QmvmOsY2Foa{K8`a_7xX;?n$$_Z~3kp0`_}6>XVFVpl)fzIY_w5pRz_JoCoy zJj3wl%dvQuOeQuSb_ORU6yp+i0U!L5V9!~#*gN4m_GxIs>ztdg`ScsYwS67iUaiOL zqieCtY=)QV5j>;!3SL@z9tXWYgXdn#!e1w+;H}?d@a2whTFpifbZ?e7y}ouOox9hU67ZnS%AQo`fd~D>TnP@8ZEn%cjB zR?M)Wx2I#OJAmj;u?77zIEl_MFra3gMl@bUjjl*gqQ@5sjJ>coq}jTT92g@a@sp2} z_X~FjJ7-M1$GqqN3o8=&d^F}htjOomM-OtchQVmr#9WlQt`J2g_90p)E4U>ju`4ma zPp+Bc>%BAZ|0p{1hnU_kj<;*mPJ5B46iSrlo--|WkrXLQMRp%cmdKWd%4TBFunCUGw0+ z+dMEDumm3T42G~>%c0}-Dxjv>@Z{ejcTFUsYrK80`r>&&?Pedpc2VUc80B=2^0 zfXjlh1@6$ZR zCxINZ%-_vxe1FVuYcgY2Rz>`W9imTmj3dL+3RzprIevA29p>|%=clUg<+bWtc$4(W zd}8Na{=W`8cFy2t>78ZIc*hNQ`091D_^gH9vLdgiGPx^{c*}RDywTSOrD5UQWYZeO znV)1YU;KS57ZjBsIlZJrQnNE!_S!+i{o9+~o?)RiR;=Elg?a2c!Q~al>Z!0hyX6toxe9 zy{b6EC7wv+3QXqlk;gZ34^xkFVFd3#xUb9lu||bl{?(GHy!RHy`_!b$wy1XU z6+0bSQ|}A1fhmUkjIH)E#j?lzxIU)bp)01aaK=Y|-Ed>}HP4tAE*<1vO;uzwzXx!; zC;{g8c4gCAz1g!V2{O<60o-KQ3#EzHS$u5o3;dCB@%-u;z&~nxFL|h^&u0W`%Mxcy z=e`HDNWv`t%DT-)bFRHN%c{3t;GI1xW#PBaa5+O4N-X=dau{L=e$z+sKQ?smHf6K8 zr%%oJ!_}vG_1-hM?pxcrWga%5Su&NMJ~WVTf727DYyIXn9Mt7sUk>B5+m$%Sw;B?a zydRR_p4u?cEdnRqnt*nxrL4y2Aai}21L}`+aem*iSkbW`uAMxOQ^wtaq@oz6E3X0) z4+nbpoMXG!s^jN->eSO{4t;&D4A1@@=3V-IIav$~ zP<5j23y$Peeg`W2?y-N{wos7B2-EoINbKekx>$1#=Ks}(X+{gd=GQ$|6TXkFp0k6! zkz35J^7f_N_9SrV8w>9*U6$2)Jd;TLzq4rz`buO=7O@RZd+L)dsA_hZ~l*1j9Veo=}2Q?oqdQ)kL7pF z+`!MgWl!Suf$%{szq|OR=s0O-@k8>sMjQ{aN;Ud1aX-_UGXjqENni=<8~MHKbK$eb z6>jVA0)CuEBOfO+yyu@0J#7C1;G2dvMukR{TCQo~Ql^NU@R0G$O~IVKpRe6#5pcKm6?eP%6HIpB3G)V?;U(dT z@J5`U_4=MJGOe?~xm4T19Yo|W9-gP93`y0;v>zpMh)N;;AuOO(LaCsJ1Xqn^9eq{?Cv=d!5& zd3=PU3$wYJ&-h#GSf6w2*}Q8=i;@m4uz3ZpT9k+{)xt31gFE)}>Vxxl>)>cl zZ_M(21493vqQhn#m<1h&kGgVjx!l8TV(kKct9>KqA1#9~ftR>DeN(vrg*NWG`*~>3 zuZ1HiA3$T^SNO8H3{Jdnf!#Oip~gxFqeeR5Frz;(#;F7PtWd!8&f%cn;m9RkO#$ET zGw@;YN6{yy#rU(QnX+X#JMwrr+bVK`udixiFH{WaO1c+mhK!?iSC>=Ew5617Jex}6 z#oSHh5z_9TM$LZb2xeAM>HZpenfrotE;Z876Eb@E`Z*0aD=)ZDdqx$&YM)gUK<-ZMg_j?T2Bm$apfIHwk~F zrK0)&J;(2|F|Xq`8e6yF3&k!}_)&pf(@St(kbr;6^RV1{A3m+wjlYe1Vdvj^2vj=+ zDs_&sWWCKy^XXf*b+a0|)QDNe*}LeQavsIj9Hlj752okPWj|RfG<<`Pi|AE5uej^0igt0=uQFDYoljjNB`fgcpk!SFh^a5^ZOTtY>zPLoi4ksJw!L^bj?A-=Cih5;D z8f|abc3)HayL31mP1;D?I<}IgnmgU}xWF7QU*ui{tmRhsh=)_dP4Go^5cY{ZgXv;U zB>PnthREwmwU!%6`wr+QEiN^XR-V<8ez>YF^{wy5S#BRNd{iN>*|!P9kFUpZ@dJ># zJcRJQt3jv!5`Qu+hAI6XN+Vt7lD&lkU00n-F~^orOqVz12TdSpNhHOlPN&|#y~wO) zI5{}#(tPd7;s=i2fBi*+J51LU}x#l zd1g{&mBG@-KgUQ*?G z+2Q#}1MX!~poMsf&^bkhQR$Rr7DdSichlKZi;EVP;gcKJ@Nahm*#Ab%L3M6-NoK*>tT? zu~UYbY_CrVS6|3@7PgjceA&Uvo5eAkW2V&8z#K z$%NMT2iWP4drRAN(wL5GfAX(Qqv0PKXx&+X-cD|$(33UPrW``vy9QJHrr}IcbmIK6 zQst*E`v(2DWnuGbRcYP>E9o$0EvcS{hV+fCp0v}muhe+CvGh@-rnG6qAEY_gaPp~} zSabd`emQ1}Yb#E`up0*<=BMZmRcVLMHxsz{&Ln=7%Mn(4$eWMbuZpoQ%SFDPI)2|i zfqnMs<`lM?i5z(k>^ss3&u$w7E~Oc8>CIDazy}?6zHI_4y{|zYkDA&3p`C23rW?iY ziKfRdFOr?+G1AP)r;48ybaQSS4M|lL&hSctiH)J~>}ww(L24(gjvgy`9Um|JJtz?_ z=ei3guFn&M?~%d?KO3RyL>jrYhSH>BQ<~sV#axu`Nu+}ku*ZUrxFWirG|Fm#)P20E zG~Ro#biw2v(r*JF;GD0ov93}<+UE5M3;9LpImU#m{XUu&s7)i4&C%@NqZU@q*Y30VAH2i%K>=nsrmGeE(yFLlC?H6Frv=gYX=skW`*OG>AF_+%> zPf2o(NzZ2w9U8uu(myN}_kb~E=X016M>f&o z_dhA~I80brxm5@)a~G!B5{0!|(&UmYp#K^q!c4SFao#*dDjy*2$d$Aq zTb{Oi^rY+A3+bMRB^`{M!Jf`kg_VEJ@ZP%&EUCDJY)CEU^?Qx-ofSCFt4jQQ-(a?y zymViNy!4{T4vU|*1Us6SFO4>a&Ujy&e=>J-@+^#cC>sZvRa<7@6x zsU<2KZO6aj4tcTmaa=j{CU%N!{G%>6Ft_S5j;kj0G{1;3nFp{Y-vb4&Q!x4FIc}-$ zPTn|5ml^Wvl$E}il!7Nw*)bDxnyMqt^TqjcfjW&DU&qpH@360;D}HJJ*_5&-jvQa_ zq_Fj?Xy@4d4N1$rE5hd zep>%wSaR7E)0qjz2t)5rQ+{-kmY3D)FfT~UEGrY+=AdOB2l#zXB zGdUQw(aJR~7j^Dkyq7>4=P*GYHleOoUKOlEj+gRuEL!zZg{h7I5hvNlFF8mq~kMHI2;q`+UKl>Hyr^!*|#Yq%m-pR6Z)M#{fFB-%YDI>C+wOh7wV_MSS zXYn$At#UQfS@nzw$+uZTSqTe2t3?;2!9%kty=wenT)Pb&~@9vnko`ig^%m81blDpG;hl`6#i#Dba{ zk=Y}|(Z##*`nd!QKH3MP-!0&VUXA5FEqc&NYXjow4~q-#N0Cx-H)Y&Z8an4Wm-MeU z+6GU?*((~*xvHnMq3S#8A2F0>Wot@rRBA}CU6zxE4y(fbFY{0%Qx)&dSt_!^I%N_` zBfmjYmy|9KqsXP!bbY@TDHm*K4{ki<>qOSXi2D&xWZx4$fBM2Nubja62kv~2$Y@!L zcP5)O#+hCZNg>M%r|Gu(ZR+g*g2Lz?op{+G`enY+`qm#5K1e|b^OF~rRDY#ivlWFK z9p=LLl_P~?pCv;40!QJ2(r96}-*h3wqMs0b@)8ZZmd#v6rd4TuClsGpgHnGn8=u~W zUe#vOgD1Y@$^b=ac4#%;O%wM`ZFSJBwTs=9JlXcp0+UuuH zhpwh`>RKP*yyZN6WIY>`!?vN>)W^8=_E%I4)s$XwFp=`Sp7ig|&*(7Y5N<9H#2*hP z;}iYa_;i{XE{{)!3#MDx%>`9#%8DCI_mv;>bKAj%-qC?RO+67B^>DsJ2&!3@;)U&J zF}I@%XY{GTmF2HdD^*GQV*3*uRL0|hqdAyYun^lOOhK()C17cx#ss4~Y~i@etnt=f zwrWTudt$eT_5D}J^!yT8#;IWTW!p=)4exBgKtoy9`pQV6kz&Jc{nyQs$_LPcM{%?! zJe`bGQ^-c+G)YHSkZhxhFr@1%)z7V>7N2`Gx%w6v{kclw6`qVs?or#R8}#*J9R($; z3lsHSh5k#%3jUvbg~V^3Le`MSl!gn)Q{?i`N-kjEJty;1{`h0a{yivky}+~x1F5IA zwlw5;8BRJMBR0!bQ7&Q^BqltAd~GSSO)g?C!w1pP!mY$T)Tg3C6PnnP!$y5R1ZjuP z!arvx^!t&8`ei7KOi6R+Pyw&skk76?=xQAqLr_vlNqNP2vyB#hW7<|S9?2wNih3xQLd zg&T#gg52pBl>Ghx4ZdnfGp;DWV25OWgvg{i60#9Ts)^qxC0%KXRx7&IJjP9qMfjzx zHy)dL7}lIR4Xexka@OJ2T;hZ;Y({S@I=5P#935}5SF!W>`u@}5=cV3ga?=UN=Oy9v z+;kLF58;88b!c2&jjGcc@l01We(G@u$IAbQa}t~|t>G&qk8Xt0fMAF#X_H8r^7tot zOIh~)y>Rn=I?T!E;gkLYn7!5#yR_%wJg~-zrhD<>=N$Yamw~gQ^3X`k`&H)V;B?6z zk=LArCe7P%{&5qmX+8t911e;>k)6EeH!n%q%01k#BTnqfR7FZSca|0H&6Rx$KL$ow zDbU>+%iU2s$>*%|X%~j@4+a^&VNhyHn|WzCR84*24TN9&>xFe}Sj00{pJH;8pwm*fOpd`MP$T z`}QNAcdf%GpWmZQzX}JxE5VJnu^7^)H>N(#hZ`2pxR>8I!Hh{)I0do$AXQSQ$kIpb zN!(^GsdNpP9KQ%7@7BWGre3((#0M=z_T)F!8yL9p297>lijQaR!!?@OA}jqg8Xcd3 z1Lg;zd6^NuV)3BBWtXaVXR)i(AFvtoTG{%D^{n=e4GZ`%+10asqO5D;#{_~*-yR6|L6e!j1d`}b%{Qw>$Gctf+wZc!hb zgOu$OP6yWnkmuYSa_hgG!W1{q#=BE!#I-&2sO&ZE57rZK{TQJz-d1=Z@`F>P{e^=y zKElVH)iP`VM zQmDJ|nEN8`gTfvcxftJ3V^=k2v$N0Q$j$ILrFIq4{IYX2$@Bmfm|Y`Iy@>|N-y_|Y z44P{5kBwMn$tLXnz~;V@&1O8Ib*><+}y$ic-ls7X(_QZZPt)3Xys%bbPZXD15A zHNHY&g|%?s_Bh?U>Q1^lm-Ewj5ve%F6kj^s#XXaZrJF2mr3sP7QXgeG={NDrIOjty z;vH3dk`)LmU8nK;i%QvQXESnvI^LJaFdE?KpV$DNGjqL2O_umNjm|h=83q&u0bB zS9lG}Y6FW^%u0{Wxz5KA_2xI7RioL_8^ug_6is@*hf*`+>H3TPbXs zy-SAi9XEi*1_kqWkt<>H`a`gMkr|Fm(?H#TA7Jvp0vAv6LZ2O{aNd%9eE%pNui+jX zd~hu88ZZavsI`KD;*C^_{y%Q3?`}nbV}?ym(soj((?ShVvpe^ZLOCVq_*ZlTUtLs z+i#HYc%hB3j7hxgPcwC?a?NI8`bdtq6Oa}D>JCH*G^>mo}RM%JGR1__(9lV zn2nh}i8wQ4Kc0D7fbXg=;Gky}`1i^M+|%zEeyU%NjVmnimY*&j`(uTf-C1C^`$cKo z?p~5P8&kLp)P&8Ck|dqaoB0%@c#+Sj3+?~q!_k8-7_z|}?-n^@h3hi>9={2-??m9A zkTPYiDO)E}C`5q@TV_(xoio(!dxuQ7KBC@7 zJLu0hbHQBSR*);P5hna~7h=ur1%8yVkk{TxZ?u+?X|pqZTr~m=C+vZ`-M0AYHsJ;f z!lqrV_&Kf|d)zC;({oeBbLTMp99s()`Q7{@l{o&wGG%VToYVa7rebFOUlEHt*CspR zJ{s&Up9Y;*dN^(U3Y2@X3pZ}wfmJ2j@Q!3J4$;d*quvLR&x^yd%ISFadno!}?}_Jg zZor0)&7kw{B-aV!z;2-;KX}z{j+BmbY4di=db%pY-iQM*+rUud3e>~Pcw^j@Y>&ED zftbE$59Xh>#W4%~u)}K#?#+q8{rAOtN&6GnGl^h$RymZUl*8RUwJ_uNVJ>;|Lr(WW zHJ53i2Y<)T0z=oW;BGJw`p0|0>)#4^%B>jOWCvmAuo3+0Dbegjd4eqE;v}Y0Wk%6* z>D1bCfU5c|67O)KRP2~ZB14(R1jo^5qxn?YXfMtydXkOq4q8Fp8l)`r_+%?2ULGh!*bEa`kA8yDI6I*`(Mq`LuPp3*EwZMM^N<5FQEIi9sXZ;2c#S)D>rr15*=lkl5+TO!%sWdW~h&OnEODt`Tw0kH?NxUk$;+~_|yc*Q+# zoO-w}Upagr`>B46?OCf!ulx6j4WCJe#s1pVZ3pPblO+@t;7lD2L&)@< z1C5yLO&=RfY5f6B+FNBwNn-xO{@M-#r+oVKua4wicF>8CS9G!A7b)xY64Vl`gsch+ zp>4dm(2%PrIDJYZgT{DvJ=KC+5_*79`!%@Un1^Hbwc=beIccRH!$-eM@XGbw_<)PU zlF2#P@JSzsjP`-MR~NI2F2?d!2C|ixirBHg@A#OVmi)^l!#GLbI@q#a1+~`9#-*8w zVxQ4Wt|1uRv&5glczKijPiygl1XMp{53ZZ_pDM+7-oS$jK*hl^q zzdQbe$dlFKj|;Bcwhg^NZ+;g1%Ib!mJckpe#$vj)Coc8oP^EVOE*Z28uT9vCS^WUd ztT)HtL2|guJRQED-v`I1>cg3-Mer}D9452Q@(*24Q=D->bEsC`s6f9KRJgUq}h|1 zw*@_z?Mi2F_oe14DeWCb3M#0sp^?sw`%B9& zX$if5YY4{Sdbnirr)`f&xDw162=z2W zsdriL2c7)Cpo`qVSR43JtP0BRXSpI?n=89m%eBu);;Qlk*{puES^kmb>~T{mJ2KCM zp3z=P{j!oq{ZpZRAWwgX_>$xCSnBalWKBE1VAE$ZX1~mymM?H1TT3tUJ8n#=Op`V$ zEu=uJ{WRrx4S5y(Ag5ms$+Z0m4PW(}vNx*>-8(IX#*;e2*wr7YJ+F!mj`SsSjT@|Q zzi9D%GMd}7b|~!VNW}}?&+z5qD`*nF2em&=$IA8ylnzM4zkL_s622MSs&4ad@*c9Y z?@!6>ZtUkGlI3`>fr+A*-IdvT?uJ1r^&t7pq0eVK%sV(23%4A`D?g8*6)$X*87w`-cRM<96VG3TGh^<+ z!yxhOY;gm|I#j~RXWE#-4MXE|i_v;|5RM2CcYaB6xKVQt@-zR#{fkE6lsCh1<_i}b zwsR!Li=LSmt@WI##}mH$pb~p;W((VAjRKw5aom-?!`PEK6PVC`s`SF27FkmHL0OND z^EiXc#hlB};VkCbH+Ezb&$`DQW4nXvnZJ?&8EFKQ{Ex9>H&47jstuw7Qxj^~8bASs zo|GYWdXGv5Q~CH=v@RftzH23tLC|8lcsZK_b;S8e{%@M<@Q37^?@;EYYPx?zNia3* zDZJ~YCZtug(V9t>lvR>NgZgUG5v6#R7n&=(fA}N(u=Bv-VGB{}l7hd)m`{e~ZQQwb zJ$_0aj8V!LVN%))@X)M)J^_X>pm8O{9j#{34O`g+8OKtLqIs1{Lv)|p0LPtC%iU()f{2{EzaGaW4(tZ?z$)!3aCj=#=NKPc zwqQL>&r`uW2X~5H^1YJ7HzvX%Jztph-wRObBl-x>G(hyl2^iGV4yP(9;=3P!YW6en z(U4@!h*^#KR%6j}x(6Os9*-VVz3_37GCD-fg^RCcT&Bh;_#3hc*5pm$Q->O}$wixa zCry#n>Y~m%AG;{g|^NK zCJmh!n!Ci01Rq^WDAcDWGYfG~WKC(MO7v-34hu_(~7W7}}Y(^(j&V1jcRw9vU&8^?qkgr0I%P&!?QTh}b^M@KT45GW57DTld5Gt6PB z^F3JdeGvXrlwiV6#Frs9Xs7LrLwr^ut4P2)%LBN}0dcPJYS0+49nK8V#lQP!mwp zr^9r)>kMTloh5}OE)+1)l=+X|)zwunX-5EP^lpOvyb6}gRKWuWYdYLMF^g^FC zUowZ}U#So~>7d?rYOhS7Jq!2I z_aUe0ZD0|7Nvfc)ZyKqksh*a;y-mBO9HAFNJ{|0Hk1pLhO0Hf-Y>Qqpe7?AX8x^{j z9qXqDi{;|cVeUTEeHDWyoX9K^=ikHn@4%voOEG8dJk%RA01sRddkfM+Fg~0PFN@N+ zD>vn#z2_phVZ9e3M$Cd;!(wE&#XiKSL*1}A-G_V*rjWReIv4U=RGGGZObL`UhWzhC<^sLpbUl15M*q!Qj6&lCrvGvRKJj=(AU3 z`%jIAQC~O0-OLXlnP-b%qZeRG*J8YN-3Ct<>tbxfKZqSQ0e>&^!39DFsIIHyqD}PN z+vrw5a7Tg=*j z%wo%QW7)K}(JasP8S~#dh-N-pLZ9^_iS*4#-avyI#%&-A(=0mHD~jR{x3k^8S6Jup zQIy+zE1mX@q~9;y>A9*A8Gar>Bgbx_`wwzy_qJ@>>5xMFlSCRIDq<>}YsmN-BjwU6 zT9@*G-p{#7w?h_?V`LS-v%H#@55VB!3|JcK1#{P0!tIQBXrHKw z>t>I_Grz~;=-*N-HnhhuZ4^88Yw(RrjM$eB#V09N__V(~y2`1b`^jGrIrJ0gJjsWg zSN2^-p2*O$2mt};SoicB658j^|V;Tw=sOi zdqXb1*ou4k<2L8rwUxKc*utE(m$HMt0$;gDflZ4%&DNe)q|tI6?B#6*s)!y;fe*sy zl=d`IK4M0b7Y`#JnnyQt*U|Dx96i2iO#ME)QgiTZs;~{FOuJ#ETQZtzhp(q~1t}D= zIfgdP-$*Cb^6AyUA{uR*MVnprlZ|5$8RuW4ue+{^uQ^E;%`v38{vk{EI>Otnt7U72 z>#WBRQ+Sj+3;zh2*rO{6nTIoK70BTQT8weMO0nn2^H}lO6sRY=Ju*z#ZrTwJOI zo5m=>GBJN`;Ftr>hI_gE#!mj!ogMt&8fEtW$~#%-mtZafPV-ok!A1^$!kX*mv#pfR zXU}wGHU;-tU_cKFQ8lLl)0ODLS6yoT7)%#OP9|y@PmZs~(9~lSNh@kH&E4-o*)wO6 z&COZVaLI%Mrs-38VlWvm-9|TducL>7u5=~Fko+}Q(tmrhsIW7QRyfB|fs-Fi__m6| z1ET4d#||p!xtFd!5PCBLXjJ;`!XCo^$|zOG*Qj{HMl9-Vz1<2d>K3f zwR0W-ERhFy(`;BXtpgf2^U!0B3?}`z1ClFEVbu*4*mOJ!>TPntB0K?ZeZ9wN*N=i? z(*)T1;4Am1dJv3?^nvD6QDCs8FSMy}ob6kExV+O5zV0&s@5)r}&1hwQW4$(W;kNTq zjaF{tyJv1!?FX~Vv1ROei@QVWo+>h(I*(=M8A4Fk(Z+l#px)Ja9WM7 ziyl+++(5Fs?@W)+E6|v+#$@}|iSEeT)A?*y+V#Ypu0I-0&LYEQtCcUUr$CxEaScTo zrBJlf4!Y|RMt-BmQSIx^Bq79xaC>l9aH~Ne{hhjnFUE3}uo5 zcs5N3S8kWX5FahnK5U4J=X;@A`#<=KH$|4t4`_Y)7siCW1HC(+VW{Il*s*>CY`?u1 zey%wV;WG;%Y|L_4GK_JBw2FJU={uL@wF0&$WWbu<2p)P0AY>_Xt4AK6RkMh4XG>s#nSqW-79%cTN1n1Gap6r8lcrFJ@}dI<(TNl8xV&%v=vNvZTqq=<;M& zQo5%{4>x^gn_g;@qgFrKc?{{n8gDw+HI_bnb0STqL#OW`4bI+9+DoEIKWHG;rW@0N z5eul{Um}%UilMlwsT4bC5}jT!k+$E9qP22K^zT_T9ql)P^f_I6**%`nRg1ztjRFVL>$n7XE~~*df@SYlG6Ej(AMk7wbRUqw9%pP@M1$ z2A(m*S-D?D505;4UvLwW-qphBfhVD(orke0-QY3$D?EwsfWp;Tu*2RQl7fuhCp zV9Jw++=CT6WN-H?z+3Z1&TIKd?$4JI{NazTOkTE-{n4E*c2uA8Ikl$jdF~xnFk6G3 zzqrP(EMCDfD`m_oS&zz;2GBcCb()yji=Mg|lI42`k-asIx-QP6$kieAinFBRL~ELS zawUxu^G82Z7Ey=T{hqaUFclYVr#@5C#k_hXd3kblB4`jb?+>JP+oS31;1#s&{17_T zLxZfx0l5$KrP7r<*q~!?xfh{o%-`}TtJYKG4vX)%l9wqu$aO&AraE{K*A0JH48W?4 zX;?64D!w|>8^h}~G2F-+pEkQAPSU`iHubP_*l!rw&=Zd>cn#$XE{g2UZ(u4YPbH}QsV92<_Za$@G(nn`KHl>jici8cu=T`Q*l_MSXvg&_QE3V6VNd(6*dg{&iUJ?!f?|<82a)sT=Vq`69zxk)`6~@6KpuJmxI=!uQQ1Kx5J;=&u(S!XPZ&fPz$=!@|P`|txXqx>XBE! z;bdYonO2>5p{RE@R5N!VNj#>|tWlGwsnLm+>j1Tk_N7bivngVCF#QytiyPnG5*h{=@e=1seHkEC&uDb(9di4r@?`I*yq%l@;CW|hVXtoV;3 zyqcwo*N$o9?Z}7Vda4b)BQ?+)5!=4`qnG1k3^uUE^XGeG-1vz&421?yBY=u@Hx21^uFzx)^!{iB;YI=6repB${1mIMyv}Os&oiS1 z*=+EmGPcfHm6pf`(v>fRY2!?DI%Ka&ah(>V8Va=WVgNnWmr!~?IeMpIK>jT=sMof6 z#Q!lRjak~Xu5TEH6mBDl{Uj>*ZBNfLf=KUS1QnbKqrWo)X!{~5RrawU(lw!SPbsy8 zs?yMy1X-!FBKIgdnq6!k%mO-PFw3kLE-JeRv-f2{aq2TjePw|=k4kWyl@!5(caAy_*{G(@Y9gax%~FtEvm8*)bE#1FBD)|N1s7iSKy zu5RIG47C@X5Ehc}UCyw*E*w7OSi$I-9X#ef__Yl?~N zOEGqOX0?QDC&(qpoq4+pTq8H|KR@ozKEhnF>s?2UQDWiW&Qs_NOx~s{Hzp% zUXpiArnlt;Z@$chMXd8+i>yBJSI))o${JSezmizCX#FAf!!V4EUFN|)NRF~=p-)*v z-7ofR!*e#vtC}tJZ)aY-5luSZmuBc0&_a>5bMU(b{rzQ4hE66lYkogEzSoQjIAf|^ zXGd)g{pgCK0UgUVpz$LHQFbo}>QI%Z)wONx#E)LodET0Ck2WG#n>Xy({>AKfbZ=HM zC{~=I-e*o(W0|J4J6wJq4o|er;hI_umptDT?v1+*b95~5-3VuV6#5CyF1QZ+S~PL> zXDNPt;g5X+oDrAnqUGan&^}!QKhKchgq0GEZ81RHd>@XyeFk|C)sWZIz^f4|IGcL{ zH&U)cT-jxy2Unr!*-hBLG8ZNuNP{28c0iPicn@w31^*Tayc`_{?;^JV+cW~|vUFVIm{IZDT68{^KPsVVVt8l$b+N z&1LR^avv^bX*8!W!-{*Mo>OW(@^{JPoiq48&(89G-W~j|Lvk!ow--B_A*)6?yY)sHH=;hjIMxIl+~9_v9(e&1MI_6Me>Ud9}g zl37u~7G@e=$YO7$GyR7j`R2=>yqd@l_^5Q8|2V8!wrKkTiA%Z{SG7P7j=$~+3*+~3 z_Iotpk$p0Z@lS=Hmg8aJja|_7y$;M19)M3`9#qb~4S}((uq*8iC_efCLRu%h==uqf zXImiTq#Q0?-3tfD>f`H$s;D^XA7Ek+d|0iGe3}aOKO%>ZrhftcWHqP^tOCPF&!E@- zn@}=zAFTf$dw2c~)&Iu9ZPEZoUJL=~?k&K>h5j!CN)_;nInBN*ql8VHpTI^! z#<5K093j~>Ei^}#;*m*I{B9qNkAB{ayW#e=GG>qfVU-0qj$2V}(i}iTm&wPB%;beTROBi0o zGQ(9qn&Bt!o8azx6+#b+8?dK}2k864Kv{b$pwVOrCY%ZeHzlTlzuXH!>bX?#^p!;L z%fo7L$;+2uk4i7t&?W$XNVR~sw%!7R(+0s2m2ogDa}tb?djNWx4}cySBcNaWH}J3S zB&d_WFk8R%9auzmf$IWpg2BIUEZh$-+*y2=)TAnp43C{;}XLdpc;`umb$3wH$Obkp@eWHh@JHjthI`I)Fb)3sdOY zg8(^G6)>UZJ}^Dr#5}9uCtM%ZEqL28iR_e&#<&Z!07l<83C~2T;CjXSxSF0QJ{x3) zuP8l-zb(6j-=9s#pSqObPial~j4Y0C^SFZ>+xFp6o1 z?rJt(xP2Wi85@ZE$>idBKV$K9T{*l-LqnJ+yGv-GJR+p5crKJM8pFJb?*USSGr*)o z7~uIs9r)Sw1h`i12l|HZ0+Ud8P<_m4Va}olxLZF8e17mE*en(UMm8S@ua!rD`&<%1 zt%Y^U=-gN^Eh7n(ca8<`(T{-D7cYX~yIgST!$@#A%@-{D9t|4A*MJ5gC7_Q*7Fd;( z25M);fo+6c|dt4Dpnt1L0_M}<77UD^#8-pd98x9kR3vp&Gz^-e%ZGRy`ZD+yhO zqJ&BY!`O&VK9(N55YhKF#^Ve$@u8Rr;pXQu_)BAdTr}kbetknQo_Am?o+^3_H=I9- zZ`F>(xfStvI+21`yp6&8vku`!M(6PlrxWq>rxNhX%VY4ryUybA+OfFr!d}qRlM8eC zbJFpOtMNE4p0JP^&0d%Te;IdukcP)r#Nyv~MB&S)E-ZA+M&r6$WAKCfj^jF??C_WB zI=GH8fPZFs;bw=G@z@-WFmPR(Ff@WA%z9cU#0^Y@uT}HeYmV;#I3sp|SjRRXVz3XW z3YGv3%U6M2n;2kng+DkZ@CIc$H1I(6c2JO!0LqYwprYqiFwDUYOu4-e9P&&A-#WyA zX*dH+*rEu2aJ2;mkN1LS7xGyf9De~9BU*sQZC`=EnI@nMLk`^Wngir>q5$2TT;P{N zKcGGM0@yv<4tzF<04zl8fWKwsKzPtBkmd9N5Z6cn7P6hdby_>npe+q{YJLHRj>G{% z=Yzn#iu=GmhRniy!}@5(JDJCR8s5du-(ihy)IKPT(XAHtDC7x)MMH#PYqNwIM}7*gIw|2P@BRqq zpS~Af{yHP{;Hu)Lea85dh$a4GhbDf#e~q|eu#Z%E(WM<^4+H{3JthGXzxlHKAl@J~{-G{A-<6|@Pz1YqxN z2Nt-!8`ESoV))u#>||I0_H4i#TPl`}?H3ndO7HTpYhOMJvMyV)a(idd+&{(i68UP@ z-#t6of-Hhf4Z6mT>r7@_dR<{h`K$o!1bcz^S9b$(eonxDy90oLQ{@14PaCkd(jPe9 z-^LbClLcb$?gjM19RTt0kL;;g4S=9U0X@&J0rEeqfEoXMKvwzyAam>@5O<3M{5xL) zNcCz1CEu>Io%*%|fjf!;og0S%wpR;#GB=QA>!rD(vuO$n0SL_t- zzP(h)&7}$zc?X2w%!7myyS#;;GdzUswFSa$CJn-x)m$MYQ7sfXc|}NG$P$h; z#|eLJ_Y_8&8VhwU$q9$$B!#=S{lK0V{lHXgmI+Ock6_Pg5G>g53O2N1PSEtJ9=+44 ziQS=eV}bQMG5bqutQhU>n3uGfkb6*B*l28uWj3x7oFH;pU#;p{rkBbDn-4SysNrd> z182{&*55G}j=xJ1R_zX5$XA63|708&HoY(wCX7D7JiiWM^K%ejS-t| z*uZx8(gVy-Isn@f*8sEInSf)vEpX)LA)rLl7swNDWsim%GE?+>1UXbAR)4Lk;M0RW zSdc7$DOF#>?lrH)+>^^#r=(@r(G@YQL$_@)!tEmF_-9U_Is&3KJPjtD`XA7=HDVv(STHtqAHZzutXXT^zp~G-r2;Rc^nov=7SIv87SI=s1qy*upqIP^T)GqJoxx>H;g)A2IIfTn!RKxGn})7BQ+&gux~`%Q&h zpRK}k55k2yCceVt^IAfibrwQLm)%0v$DP8@tEocD>!rdtT^XU0kE$@KNJY5Ay&6Lc z=1^>Y33Fp>iQuMR8ERT|hz;i!vLAO}VUK<+U~krnV}Gni*l}NQwp(R3TR~>w_-_!q z|MC%bu?ma*=aCuPn&rTjSsTXQ%d%wKjJLCrw)wKps3o&C<1ewZ4{T*?uT^E+9upA^ zog5JCGVtVjj_zSLBBt0{P8t?El!!TQ3c-~8PGKkfwXxnMrdYmwA*S^s8}qr~ik)5xNSWI@~D?!e#K*8B7mjze;{U=zvrCJcDGl%pCrV8{5BLqJV?i6ge z^i{xVLj~dg)zVF5ds&&IZ&*k8DXgoepO~nxJo_cPn7#6qfZeFv&919@%^uu1%RX>u zCE%T50PMw00JYN^fYE7jpkiV1v|=B^ZizwJAAe-9g|U0shu42$ZFOp3WtIJ7wf|hj zuDKz?zVdwud)2p1tk|AP*1KAm9V24Kw#?{deIY15+ch-V9WdwwxbHy&U$#5%L?dCxJIDsN}Gs-&{! zbN2IBymt_6IQ&|0!Wic)K2CNJ}h@E>A zjMZDEVRLJWu&XlnFpK)n*zG?e!uJkC*dMFcm}i@~P~?rWFsg8cu%_iBb~$4X^R^ce z2JZfYQD48uB5(9#C-v@N8iP-;^9{q8Rnx*Tbr1tmuVBUAIs!{|TeSPEi$E(ZQcz44 z6S(@RA}4Zn1Zo!lp)-{@`mQ<){k7=|s()dbp!>HMYTEe#Eg$VcNhlosHr0hVc4RQM zxdgLDx(T6JT}MxBltPspTNxp@O8BFaGJ+kJt*G0tKd9nLmViEzgwFhb9C8`2n}l9(QTM z-YpN%V}Pz;=m-nt#=0@jk6R*6Vp@!^%Gu23T7s!cPh_0GSHOIDI+YRnv zOJ&@@yr1dd&PJZtDxu$>gQ(;Z5Ped*9IZ5^pbo|2OlW;Nk1fw#j@1e)&M&DOxFMSX_*DfXarz(r?LS4}Qr<>595^{*&(j?T0 zB1#JxJdE6HI)FY&dxC!1D~CMP7a-c2CFttp)2Lgc9LnB$ls@(^8eJJt#29P3NYC|d zXCAL;WKMkxV&<#9V@|AF$NYe0GP|<<7<=v|(Q&Db%rzz(k&XsUl&sl;K8w19ez3W~ zzq92UIvRfyT~l-$U6CP=j@MN(ZP+~EgtQ6^t7ZIpk3KQk7 z4q^Ou1(|21JF-^B7<2xxr6`yMKs+r zqZiqtT*ff(+R2!Tu%vgD*B}Q!ilAHmZ9 z9Fn$wgb{8b&p1>TjZ9oHMk!DNKk{-ba&mYZTJctZ=tqC0_XWlraNLcpqcvf+=&)v;p(q$a#zE$q9V*QGie?P7bSFbR$&8uR zV#bu{9A{*wKWETxi!mEkr!b7KDKqKCVazCJKjxM#1x&f+{>+)W+YD|=GUGoZSKf)> zZib1|cmB^icBs@T2;HBVib%iqWW=~gFh{-YnY_{)jK42M88eCv^p@}}q;j(?x%wi-8N|SrCsPJ5hv93z+J>r?GI9P z?mqHrL=?^WEQhZ5S&z7?j?qvtF5`TV7cwpwM?BxEGQ9kMQA&2B4TJGvg`Lcq~6#W3HkPuU+W#h@bB2m_>qk==Kjbs#lobSSZzPU z{U(c1Xa(>nj@b-3{}=`%+JL{DH-t zkV8R@bc*N{!&sz_KVG#HSt6sX@;Cj= zcNH{m;sBc3WsCNSD5IQzifH{m5EWY?M5_8G5U-275d|JWf0g#0Zon#}fA8<*_4X7n z?jCAqsEVQt)k1=CKk*|yNVA0T+36)?SwaD$E>{ByUbh)3SaX7&t*ptgsN9BR3@D@C zgY!u6y#l^d))mG$DaT~qz!~SO0vMBj1dP(oG{y+$Dc$v64Q=;B4ze@&3vzsRJ#x=n zjFD%2nz#O5407+`5rh&^M{lJpVW#Ni^83io$nU2pq8=lKR<%DwBnli6aUTzQ)NfnH z^=)+wu}T@HWx-}<>*iNkS5`uOdTxztArz*E4j@{24wPduYyR0&-hq6JkBk&404`2`w1!=Pp$-K-RcK z^E|I6^Zyz$5yvmi$fxGr{H|F;#@?@ajM0rGZpB63%=4HZBAy`6D|zrLo@WvN0&36?nq*QDQ_5u_K7p^Ue{xmydPx*ROd2W z9qkzmvl<*uf!IA1A|=1CBJQ((h_#3- z|C~c6w>V3h(KQyrNc;F7ztYPc3A%feKY3e}cYW<++F9jpzSlke>Z5sFOA;CUpjAv3DIc9$!iS<<~}A2ITXtGaC4HBt%m!Th2Gu80N1|UxG9h*&q%UqN%wWQTd+1zjb7q_kPb-{-(`Tp62&=^seFnhQ*~}dSE`pm%S3tH}n(Z zO7?H2PsQrdbz5q9pO5V2{{lVe)6f5-=Rdkf?`l=&h5PXNYIQBVriWYjM(#m&2Tkqi zyMEQvorW{$!%RAF1Ji<5k|d=2_6*R?Zx_-{jS_j+e8gJCKjzW=i|)|&UecxCgIe0k zZ#eSJ&a3hH`VRaH#cW>2kt*7qp)cI_um(HlOY^kRt!Z?bf6a6+cSky5akY&Z{)We> zS;Bv7H_o%yKfn*_Jk58A-of8p6wQ;7JVe`nXfszLV8Cv01m{(VX!0jn61(!COxr=H;npw9!z_=VBc@xaM4u*3v;;TR$@mJDN_ZZ9dDA+i=*GTl_(6VUzVv zTS~=_wj7pt+tfOw)zMVfCi;C@+tKEAwl~@(?DXBmY>Jn*wi!GF+boO|TK8uxu|4N! zV5h4&Zabo8*}~d7VWSwH*_!)I*VgQ%wB0XbExT1GRqTe(RM{r!R@tU8N^MmPpW4V^ z``T_c^|ZMdG`9^-mbDFU#M-W(ZEf=#scIYRG-`8IKHJ($t8Lu~YPL2L>)RTR?P_D1 z;VqX^3Tzl9&upe14%vizbFIs^`nBerSF-tYw9>{oeYRyelV?3K@yGgailPmI30u?y z4O%7QPTQbo`70Hf+wrRlD4yD=W_KHJSw=QUX|YxSuxQp9vEol{l3I1ysg>lc;|a7snMgB zV%_OYmwLWf+2%fMG)r9Fyr$wz(`1l@#phkCtSY^7n=i{NH-D5VX?&Eks`=9y`DV#R z^=3oop(eQ?A@z}^mDTAeJ*&~Jv6dI_axIT&wp*@a{AYP^?~J8z-(AbqA}N+JKcp;g zV_H-jqxFra8JZk9QI>@idp##2;2pKd{JO=-r8yQ38w)Ki8{D%Hk#e!H_AjKyO|P`j zY)P~@c3jJ%S5n-KXg8I&UqEgBJV7ZKNT7I+H&V{N(z1wMJwPF{wWx;;q%6vf)i{lQ z)s)|}2dOFFZ&M!$LVUQgXGMDdu^(4Lzqrs4^kr)Vo?Ysc^s&svzH+T5$g|b@}E5>c+!M zsV4ev4c}>3&CTs8lrZoa(mREej>D`nJG?@t~pTbfbB)4TYI3#>+ z*zu#8qgGl)o%g3x{0>P`RS!f_w@^Ge54%$-YomH8bR!GO`x*wPyrPn-m!WJ?@1)2{ zvAxX+H!P+GJ>zhoU57ZII-01`(_NILRk574FZfg?3xZO#_i{tn&KS<7LUC%y*lMaz zqXS35Dw<=&EZ}f#VyKb0A{FFjP{-VosCU(FQlfh$snmQ2j&QR!)x#~4BT!c7cwKb1 z=uqBnuJb&*A@uL(hMx^}3sLSKGyeoi!^W>mIF3D@4eisPIloKVDM>%ZC|24JIf0)a zbAY1ChWJi(N(VGn`{v*Yj+0|Y!^)!-l(9URdNgRM#b)I$^Sr853SVr9dTBpwL7JVR z2GU5XSM*J4pa7vp9F?^o_776nJC}1_+@Vsj%T@KtE=+3AJ_~A*NE5~QzX{6U>ta=W2d!K7i6@v#Ok=}xL%CPZxm6gkXeTq zVjTQ<1J&Q+Hsx~U6{>EI6(#4$K)pt(Hq~83uikYsfOB`}7S7Z6>KqxRwGACj;SIV? z%?*b%iW;&5-!z1pcTp-Xs!*Tpo2WM|c;Ap`&{3~`YG*BDK9N&8s@srTvAJQ_H)qa> zbS!6wx&lRPcl)Hl@~ z=|&nPn;udQ+C@_S%}h6lDm*j)Bn{TTS5#~06=OFPm17Oc{qYS6hT2qdYAmH?>TZ4J z1Yx%F*cHmh%QSO~&+YZe>4(hkDNomJrRLQ8dLL*w<|{#IFyB$Xgmck6USiaIXOD9I z{j*`_H;&yj-%aT^PktU>f9usyeNy1=x(5z%=Jp4-G~A8&Q~wr6&G&q`W>yXGfb#<+PcW`ly>v;yUJ*Ch2uCx|dA` zW8F;^!j_pKljC*XdG~ASll#qXPQrENM<>jdONW`#ZeBO`wcc;y1Ur}s->k2thIQ7> zyUf<|(6^?IjsA6R8rtI8Z3@j=^&XkZpLt?x(6y;LH`wZ%YLz?Il^erm&)k=qy8iC1o%AX*m6+kztPDx0$rs;OyVvzat?j{% zn)2)bvxl2cjjf2lO1 z{IE2m)wSCzA9$-)UT|Jr^<-7KQP0{m1D;c9)x?8A!}R)XM)zN785+h$8wA&EFQ1RU zv|9Y-c0-A8g4I zztzf5eBl`M`q-_WPPV$fc?KxI@jX><|9M84pQDmq$lTA;j_nV1M_Z~&tHaOf&L-NF z-dy!rr@kxi+L>GCI-&WkCG_nE+LyMUD&FZ}uNft0cI85(^A%!`sm23xvasUcV4+?$ ztbUiFqP`;pEc}eNsQH8C`59IH%APv=vPBj@ivo)Rivo)Rivo)Rivo)Rivo)Rivo)R zivo)Rivo)Rivo)Rivo)Rivo)Rivo)Rivo)Rivo)Rivo)Rivo)Rivo)Rivo)Rivo)R zivo)Rivo)Rivo)Rivo)Rivo)Rivo)Rivo)Rivo)Rivo)Rivo)Rivo)Rivo)Rivo)R zivo)Rivo)R|2Kgpz1mu*uc=nwdq-L zi@H~$31-W}d+N&87@EHd%&R~A*q;&~`WD zOEBaRw-Otikc%9zdas7cO%0UF-#@9v=k}>_;`=WP1E{X?UCFFPz&}09 z@0FF7+mQjwOu)m^J~GYH{EJkRTyn96#Q8YRiOYUXsX_xws5`JJc}l8D;mbxVGvH5C zn#GA`w@)>VPF*!kt;@xlvyy)_4Y@}(F;-KWw))FkeXN>qoJn16X3Ixp_{r%u4*l(`JLsK34yh`dK#`k6JZ-ZM2p*T4%i`?x3~wdpm2b z#}X}P4qmVp`NVDc^LTZ$r7~*uK4weHR^vO?57m9GDJn->gFB*IlI}8FI&IThV%98c zZU2~?X@|k>Sc5PN_eY&hpi1Jk>0wB7TFxp zm0?|qn6?hi$l4~*t!#2C5^bFQFWIpAms#f@*0=ojs-W zR@tp(|8Z>$ukW&TJDb_oTtv3srR{IEk&|wdpSN$Dxw*V8sYjtT%O|Rhn)a;irRa{f zu=&kxPIK;Uf1u3P{EpYw8{VvIiEWB#b4*-jdqMnK>vf(_+n>8X+F&52&EZ{T%c_+H ztrfqExwNfzw&F>DY(MTVY?HJ&Vw>`kWi$UXfV*7&o9#0vueRVc5j#sCLpw6T*tXo( z!S1s7KAW?dyY1$VirCc%CArlh`)%WDuC?vh*lO*UVcKeY8s;XUinO)u6mC-TKW@a* zCfoM%B<_&zRqnIEr`)gLZJQMeV%%?fd%0aTCEQtYNju60DXv(kEcdCuko#Kg4YxAX zjCbQq2rtv;7uTofRhx!WBiDR-p|$K`GWW+nYi?TBye)fAFz@W4sGCvC0CJdPP^Q? zljnGG9WN~jq(z2_(JD1Gco$=C+g*&Q<0;x);I&?Fr+F;ZpzX@Txc=N2o_=+#9s8Uz zohk?O;Hg}mLuMJxHWIfB;|jSM9ac1*eIoQZi`%^BEi1Wii|O>Y&(706N)2!^r*`h$ zoO872?_v68_EuiHJJU{5Tb?%lD~VTbqDMPEx`eJBXvxcuJ;h@ctI;B_YTA{VE~D2H zO0;Dq$7owFrSq0HujGAGlA&ot+R+?0j`D7oJfK;%soPy^l;iGr;lb0llcJygH)gkC zRIaU5%z|!gB2C+)`PV-_wT+dJqlxuz=Q>K3(96cx+c_%e@!xGOqt9(srhmcXc*hZ{%P}8KBX_oE-dyIO-wC@Z>pWbk4Uwq=dE|A ztFA7$V|_#Eb;2xq_PtO1X|WG{|5S{AOtGAP>Ry*!`uYcasn3o4CE^YApNTni@h$y) zSN%x-aOQLRC9?o}u%se#b6F+->3(T?nc5S2(Hlp){>ylT?li)`JtaeLQ=I2V75ek{ zy0q~RxF^!uH6rPg7xLt6_&KzENfY;HtSKas30=NpLMxQmZkaP29tj74O6M- zHnTI@hLv<#9tG_-2`ZSX0&UtV!9s~C`g_|7bnd;nV2`}CVDxhl;_pZka6b>AoShni z25Cc9*a4gs|Lmn8`_l$=yX_J-_fHD*^s^|IvmlbG*|(K>jsA*tbXZN06x@hDe3Oi_ zi^c@o#4aI^+;mVj-wzve{3qaqn4(@WOIU4tr|6x9q~OZ>6xPt@Rc!p^L-foZIkv>a zSLS;|Il=J_7ug}WBzt}uM4_s`MK_EA<%9$`pl$o7%x= zCU1e|Z3Z~9G9pmax+9#CSPIUWFLZXwSrQ%L0$f3|08Ab$!;RO-;5wI`@!^}- zh0lIVL59<<_>pFDB9*%qtn|_ZroP<;8%HG|i6T*a^%(?jTeSx7OaBhawVFXHqbIRZ zot5~qjrA-~M@ONx_-nzzsbK7@Z7y*Aaf~peA_tG&y;=CCu~2yT6AvFqO2GRL?gMtN zKMI!RTjA42pK$2b9bt-hG~1091WZing0Z=Vc=<*F-Vs}aQ%|qL4Z6mG>YpOQldGMD z630IPzM-D@j#sa69}_+N5W)iAd^-ldFguFfJz$Nu%H{&^CeMIz30*>;{8Pe?Z}nhi z3l|v3cfo?j)`8T@7U7xC)_728004Gsff4HzfU+yHcyDf#5ZMur4>xDy37sDS>vuNb z*_kuI``dqoK0j^=;qmi;!?`&8+{qqhfMgrUQH=(DCe0xK4Ow8c`WUW%a2*K2AjI() z1gEs;g+D?A@N>PF!4YvI=<~ndU}i`R?jt*f$1bY|gORsjo7NdHp>+W&+aa5fAoxJ;GWe|Y9KNg32QQGUhXT*( zz_S;xO@{Nt-;fS&g(*c|tgd%n;+J zZO9Lwe8}}{_mj8Us_$M1;ay zLgnZK!tm#FV#7oaag%sWkk>WH)|-~3U6U*6EE+`Gr+JfktTkkRsUJC59Y_|mo+s%J zr%3bfawO)ZK^Q6A5(Z6H;#X=t2z$o~A*%Bfa=K{*m-Si0T0KVabj%;<tZXSr&`*CAtK+DevS-mJzivzI|{gR3F?8x2swa0|5L&mCy)~IKZP{0eFS9 zCOlbY2p3-h;Ws)UymAEu58CR&0*z;o+<{a`-gX%zX%PbszEJ@qWd%afD=GxiP)BU5 z|3D}4fFC`o z@N|4N(P|z*Tx`8a1ospW)|D;9%J4zr`3f=8%1V+vMJ^}Zb{LbIL2Por_!@GjlQ-!n z8%Tcm9z!PDr;v}gC6b!$XUO9nbW$nzBjH-{oB$HyiEn!^3csc4LSJ%Pp_VHH5Y0sf z#@BhkS<^1CFGPcnTw%eA8D?<$5(X?h2Ewmfm%+pGU6546MJSAA0?D|WLu)j)gIC^k z;*h|aDC$ijbU4=tt}vgN{dIvTrMeL6zcv#l``E-@kGHr*k0RbM@(}z-^@2oCCqhs4 zdZ5i;CL!&QGVmrNW7t7f8>U}b1uGPp!NIQD@I^~aI8JOi%*uTR-Mn`Ta(5|(9-Z)p z-aXcae*UZmv;w>Ff#9V?NhgKKYdlZ9I9*HhcytgOJ6;ifKg7wa{)*(wLk8sRei~^z z$0oPj@FbO4`^mYnvt-cxMREfaOWqGXN1l2aK_0m3OxikXkUM(CNxzV4;`!DQJnP0M zFv71Gy7^fMZE+ieR%j{1qwUtPyrd^=YUl`eF8r6AF;n>7Lu1%?oh%%gF$EoCbwjf= zX^>~iJh&=43n1Fu@up8xxOturVefv3IPVlf+-WH#o>(*x%>^EWJL4_>^1thN@5QtD z-=AT^1Qk(eCFLrlci=JfZpRY%kg6igmN0;eFB-!o^7=6Qp&@*gX$uD@TEWOcRoHmT zGpNR^7RvaY20hOUgB*=FK!&d(K>r6fas3bp!j{h@w!MfT_61!cax0pMUiy8)|I|3K z=Dsx9^H-A;Y}F>KGggxZ(RO5pju*KtZ4aqDv5(ZPJwVDk#E`xv5u{_mTJp?@0lB(Z zi+mBjl)PJ4PE7f_;GRG9Aw`uK=nka-x;Wbb<)o;7r1 z*Mcb>^U%`oA0VC_2HlC-4;@!u12tZV2UQP0#^tXo5$A5P38|kDariWYNJ@+$DmO z3R#K?JsCCe^3lAk`UC1*R-Ncc%K@!2;EIB0znY|$}-8djZ$O1z#!`=f1P(dTZk z%^ExSK)xLuI&BAkTnoZ_TbOW#?g|(Z%tAxvFCn-)7P1!E2z{VVf-(>C@j$kez9a-} zAiEy!A!mYPN&UhMGTSecWUoI*dN;a}sI@)0ZO(N1>ZStsJ-2|luK_smw;4?Cm4iJkW}z1{ zPa$7xAtX6o0C`$CL(KEuV1jF!(8t*o$EDQ>zleMS9=l5%o9rg!CSDNw71Ct>W)m{m zjY+yxLS&B&MDog6k z{JV)(iUcuSYz$^xk%3lZ=0h%%osgJ}DC`$%4sYJbgxM7k{N#o!ESLn~p-D41JkJn* z=cod^dn|{c%0Cdus)5{2c|gq`BGCD@j-d0&ZQw6u6Y$oz`*_w93Sm31P9zz>!4C<0 z@x$-{j$K`c=RJqP*;N9tM#dYmU2zpcf^ISc!H78WpH(tBte;5k z3q3?0ll3K8{vIT6(vpnmkR{VwCkQvSW5ll0&iJPDics{X1}NbS0nPP4gakIS@RmQC zunOS;+b!P%ODoXeC}U&TdmRN{xl9XImez;Geo4V+-*!R~(R?WIRiM)Kwg{&QL zB{OEWk(2%V$fVITL-L*>A-s8<*L0T|jrUM_gUj@gn(S-kd zwF-7rmWSWxEQKRvKR_#l?T~JF26Xs_0(73@1|~dODa;C+!|k!X1ltWEK2yXF;%P`4od8M6Ss(ISyFaPo8$dca93&5%jv@25rIM}B6G#_MG@0lfOJ4eTj(l_~ zluR97_|B{;*|AlbymR9danUxOI3D#K_dB>**uKXI8c2+X#EiP2n&AZlTN$`-l{UP; zfDW&>HiOsLtcKwhV_1p18jdbihadb9hn+1SL$iNxKsoOkp>s!KA=ksEP{b4p`pt=f zz^XdH8+H_aWmn^PS0|p+?Tw3wtKgy5IyfUZ8N7(gLgW_~6hIz;qR(YR7oE6}UCt{g zA^bO_IV=zRER~0EWG{okm2z;Al^PsnxE#*t{0s3T-$DgbHz4!DY$!$lJapX01fssN z2B~%;xRJy>F8(=^fE>9*x%LzR?fFY!?42695j!wSp@Fcz29%M|V52=6W z2w8aID0%+~cjG zhBhpP_cCumZHioo6I%~?6sADILT708;BV0PLLqqZQyv(?Z~|+N!r)+50ibX%1GuAC z2fhq@1#;GjLeEnyAySeBjaQt47=KEj_ES|*%uE}UbPj_!?`}f7&ksY%^-myB5`i?Z zM#!nZ7^(@&hb9J(L*w74!J$z)C~J}i%x#OoH>4X9kA9^RrELvFg)W!)V9XoE`o^;IbSdp+1s`__~^yIsY2h&9%kPw={xB+gMOq;W;Qp^*Y2mQUtxd z^8ji(_YZn`_XX7Z^D|^0Dh?mHKM7raFA67~`2+3ac0tA#k076dZfHjY4*4zRLy+`& zXj*AAr05n4b=7Qyt{jG;ozgB)h3P5?3D<S8N$-*H(^yHNEV=GQAhpW~BKiV;ow-YR*K!uv7FrCt#3({zla7$2^G4{XQX*uwz64t8 zRS%^Me2>1^$ z#CH#>2(_p_|6}O9AF=$xFmA7`Y(iF94a$1YcoS{yl!}xJ4H*q-%Zh9=Qj(d9R1)tQ zFD+@Il*U&nX@{nw_4UK^58UTG*Lm*i{+#O}cK4K6QTus%BkBeXyOzyR&s8RuFTv&S zDDgQ-!#Veu&aW3c@C+{>{zE#FD~lre`oKi~^Ia03(2&AiM`mz?vNZm*Gn)%umGDf( zES~3;!1o!&@UFp)d_~wwE>c;{N2i$cBh#h1Y3fIIp+L;$Jq~4=XDYzg&4uvRJ4+Pz zIs>&|yNv#ml)&x&k~q$BB<`r4gJ-XsgO_S9!BrV+v8v-De57$1-q*4LzuM}H<5L&o z-bqVvTDcI%Dw$zBGZWl%-3oiUT48a&F4nSEz|T(qMJa8a=uR9*-{!TV59*Dm`+YI` zC)tYb?=3^vDH%1kT}4JWbJ5n-b*QAd6P4{KM1t8V$UFH8l4>}CVx#sTRof%z^_rO| zI86ezcUYln44S}P94wjK_V095t~#{1paI<#ZJ?>2DeCVqLUU@I5W2e+g&1u? z-*!i$S&gwMeYOv}cq|TOdZ(dvHVe?yV`I=2yOk*B>U?CjQUNJ_KxmtkC)(U5f#8&hC}OPLf-weW*$lXNi;4n<2<N_u( z=Gly-)6W31&Pt9Z2P}aWmgnGq!`1^bO$@gt4@0;9#={3m%i-WaGyH6=h|1k+pv&7v zD5X0GPWI;DuhSlQx3>V?RX-}~xF!N=BP=KkSVSjI982E}yH78D=^@#fx!v(%0X(Ve?zZWUnqOBZgmX$1;iu4MM37vNa% z3}|3-m~1&!4T^k5LYJwsB=_+};x;Le1|5x~tJ+r6bw;h!Kl3@2IDD0|!#b?RSBK60 zqs?p{PGq~jx-l7bId(wGj#)l-WAewW*slq#^k=0RvENg|yek`N)|X+Zk*{ERpXNX} z@3ZiyqBp&5u7`GCl0hRMeuDpn3((*?Co~~<1NxpAiT(`upf0`r=;@e5WS6}aO&sNm zj&y{guNCW&jp<~RH*XR$Gt)sPT~es?@)IaydKjKwy9MfAwt^*NkASJM-vuej2g&U8 z0GeS|PV#Iw(6uf{spI>_)VVl{9<24FpRDFltB)r1teFn&_G}Ry@M$JSG24mSv|6A{ zRKeWXN#G*t65KTY4=nmU35=L10qbU`02PfC(Y!I|!0gE-WPSH~(W$ND=-OIH3l>{b zcb)UJ{81`3+tN!F@;_0tbOw+IgC-i32fpKWrpo!ne`0=wl?__-8k|; z`bg^%eYE);Ej+c6woOx~yZ0R@$2aT-nzd)ZG5hf_Ys@}4=lW4tZ+iuzmyhAMz7}{i z_7A+TJ`5=??1ppCe1jXlyn;Ur-$K8~y|7&W4BSo_$C&<&5J{kHIn^Kcs+O)~(1PN1bByG!j z$hp3BkJvES?h_Q1O&84F_qF!rawvuYF_rLQ=OrlHdmUz%-i38J4`JlrPM9~P9ZrmV0K+yvfh9qA zA#-BzLFGvp_caT)X6%N8yWHWDLN|DJvLp=aTnY>W7CJA<(I?JoRpg(|C~6xujb0q> zMdd&2p(C#*(%pMfs9ww=x~u0f)jpL%&C`$4n>q>fnsouKo)twqwk6Q6xvS}C#{ha` z)hv4b>tq^#K|r7H5YV8?QFKhM16_UAi@rZ*PkU}adiwGlDsyld^;|QBCfKV|*U;HC z=YuCL__c;Qc&?>ACs)!_4-kDm&5U+!A4_KvC;CNMg5KPDot%25NEX#<5a(`bkY8a7 zevZoozgH_lsd0+%>{Kt!*vaT4wxsD;1Hufp`4RtTEA;mWa+Lw{_03$3RP zz~l%y)aN3D@ER$!bn|<7==pQlH{~n*L~g@W%RBJRl9TY2@n%?SzXHlk_J!XbErAQc zHNXPZK~1_8*tOTO?txbfiIO)V^0S&r*cC;p*Q-uXR{gN(kzeJ|d!>f+a`yBzaVB$>bf6Rx@7`B<#{7RrPi4*9blVSAQn$0xg zObG416hq~Hmr*TRO{GGz>5;Jw)a?8zYGzSF)6FXAC$$th?(cbeaAE@W%-TjDb{?R+ z6lYRtd0X07VM?o`ENJDYEi`1NJGyGL87rdX74-*?#z|Eakq_+MB=Vq(bNxp6XCMV@VyG5|z&SwXppuZg?@-852JSdpPAClaJ7GnCcOi-I| zOEvF*BtB=G$;{iT^wpn9bgjlXddoVK7Vln6wN(MXkreHbZ{X>Rquxul?*N=mL?M9@_I$Ja?q^hp7JOgC3-v*k$y}`pL(y;VVEa-5Y z2rDG2pcS6JA^)umcLURV}|Cn=QoNj~M9qQc!e%F z8J|IqA1@_i%e(3Ol_P1t{V@6t717%t7t!at25H5`DN1$!p$T@4wTBb7 zWCJ~ONtoJPI^?&jP}y~d;d{3h(YMzzaH``&60^ezoRWxx)|b-jCa(EFz9dhE@=sp~ zbeePPN@UDILQy=-&rYN#CoLtRb#7pF_cFTtTRhYo+(V3mC743WMcDY!lD>4aWXAit zLEEZhv?Q~hEEPN_JD2u>;r)8-{S7^P$O+ z8t~Z+P1e0t6Bd1Qr}~e|={mtwSn&EYwK0*SuUeg{Yv2je+p(XvN8T0rdZxnVubxr9 zQ;FJsP=RlzXVD_n8v^~2*Qk+77D#MMhiMlnDOHdfdcRfz+1=A&M355u(y4`vb-hI! z-%TV_WT!*9VJh@Ww=wLISD_PfWYP1wSX!}71^qd91ODzkNjKjZ0iWKBhf$76Ab+t8 zQ?2tx)63PFeBM-Gv0@&|A5>x~Qh%WQ+ERM>p%Qv}rHh>K&L%U%YeeLU8TFDH1=rvC zMoZ{kxPNadZ7y0s;;V1awbAFH|ITDMc5Y>zPkHf^dm7sq5ZK@7MP|d-TE|xk6<1}Si>MC9IDD^ct5HN$K+q?Rl!nBu~py`y>O__{J6P`p`n}E|-D9(2T0~-6QF3i2Zl{HC-@gB^!5o5j!To z8l5|J57jAGBD4N9B%5>$J)2cctV@p|4cjyQ2V0}GZoJu4Z4?U%+UJy~jRFd@;cx9@$gOTB(^+bO zfNvMwbHNJ<{m0V%^ZH=T=F#+^QWhZbX-Lj@CH>)i1)k|U1S^&nlb_d?(=UJIp@UUE z)Yo~=(wv5TO4&GeFKPh#257PkvR|p!w+adzpTnjA4J4d;j%6;+M4^F&OmUMfs_o8W zKQ_9-r-@PQ%WpU0een)Z6P=>U7vDCKIduS;w4Z=&MIB_0YHurE4wO64M@75&n*@nsZKMC7uZ*Z0%ru{z!yIUw}S! z%fW<^^Pu;Tm#1I74pmgzGky0Wc=VYc8u+NfM%fgi^z2QnC^rYKcMfDZ#SUn>!Ep3A zyqwv_oI)d3Q#K-n!`=^yaQ)=}1VMvWK>mpRU`n4C$#YX-76+fea{E?zsvw&2!W_i1 zO4-Kd1XLxpk&&tEndnzBT4HgSnND>;*Z&sMSNfXh{EQ0LGJ60n*O|z&cUr?a(@SVs zR2ES({=+h-TVTPghs>#AEZWubiRKtMK<~^lB-K^P$c#0}7A|F;9_jGvq(dyo!yJA0 zp2HsgRYS*nrwNv2oTc&$1!!Mx74n%~!*o1yP>208W`Y9Hg^40s^hOh@tbPa=Wp&f^ zJ-?u__htGxA_#U&c_mQlYhv%$|AYmt_GqV(7rUOM#7?@(qW|`7LPuTpQ{RdrwybY8 z3YpcyE{|5k4R0`eaI+A-Jb9D(Dpo<`E%K;jxIgT2(u3N{f#{-05`CL+jriTW%^WkG z(Dxb>>ae7i)OV~xzjZdzXupw64hJAJ`;+uT?GO68L=!i~r?C9##ngKHN4QDI*_DX% zD5m)wVGn7F*oAG_FnOp~&V!1rd*F_rTVdsx zxxoE|8*`%iH2<45QdR1!i#qv}8IAl0XZC9$_2o7!NBT3WkMm(&>INwKk{gp;L}}d7 zdciq#`D%nBj z=P2V&RagGxjw=p(6Tp|87>!qNwCA(W9z+(??ODReQg&c8MPYWDJjmw)GPrP)>c+@% zm7V|4ikvn4PQDC26Y`45|H3R@JOJ@TV-{zD=+G*{3eRGcp>M%Q`RL$m&rbIA-7xz4 zpA}v_B8*=f6ODJ?oX2yLHSw33Pna3>MO_h{8_HQpR-f-4{FV<)mB>&_TPqjSCPtiWy(e06XX zep@TxHZCi$>Vq{r_~UH6C~XSAo~Jg1C&aR&r=*#3>wl<|6fymXi)e(q3-fRUh~7$~ z9j%l^WX7TUhMY;z;drl=HXmQG8Mbb)LANeuG4*v%P-jy-I~gR+yT@zcxPfApFFPJB zRhh{`_1w{pG8d|5Ev8%Q&Dc1Lx$L9-kX{B?)1b@0+07?Yap0Rpys5Yez4_9~>isp4 zMym@8SuBA9<97k|_5;W`xrWJ%Jcmr1b-2~@#aMafPJZ}cB&I@NuKB$SeRdCGjSn@@ zqe-@G^W#wDGjRmHJjztiwQ?SkJf6vP&doyS6PmL+TrX0LyvW{95~E>_+n9rd zHf}bTV4GMUkvIRGbU4siX7V|eA z?~p*ph6gyxq9X5+xHF}Yul^*$dkrPHY`zRCcl2jbs~XT;Pg`c4u#|o}e2How?Iz#z zh4k-~aO7oU#@!A(V*x(LmMxD$D}KK~68Y|Ydc#7zane*?Rx^OqSU!_#h(iXSbO|0eiI39G}CZxnt}*wC>9qX1*(!ZWd@FgU|YquRYGbMqEX*TYK5^l4EfEl2K@> zyCRoubHRIb9QlY}ClNSU#r)0AQ5|1bq<2_}t?T^`-FDQmnZ;L7=)WBJWnct%_Xx%_ zt>UGj^B)RAOEOh4Z8Fpc!HL_H#fvb+hu=t`T6kfKL@9S8A!_yA46$`epNoJ#P zRD>dbrThiupZ>yvay;35;~yyG#0BObup1uU>w`A^QRG@{rr@JX)%XK7U9?_MJ~SJy zXBT8%p)HFvxsB1#eC4|qS6nAa=Z0wE&mJoL_^L8={@clWh+8B!-`|f3R z)ke5E^8t%D)#YPTj$nJASpIqY4>WTAQsj7JEBpEVBx+mS%^a+5pzm=%+2AH?D*eO+ z_kVNdYPZMW$z~hah{QxDzey2yJ6Z4*TdUC4`@5K>m?lB2ws+RWr(!vAy)2|q=`_C8uc@fFJmM&vEsRAD8SK=368?%&i zH_-_PNp$DlB?_1Br1{U}Vb8cGq_N(H>lex5_ig5UO>8xam-0p``%JmOMg{N6z6-KO z%%M}Y?xGviieH|jfr%(cbZdbcpLFQ}dhQW`THIg2^S?*%XW#xJzt&t-94W!oy1bFs z*HbXB;3%76vL20$xl4uyL(ucD6|o4mWAyiNv~1B?*3%@K4u}SKkwnm|L&sF>Lhf2wI!-uz8hISK7`)hJAyhE6%yxp=g@-teIUZ^HcGsr zgVybcq!Brb(FjX-6jMI}J|5;q|Mj=SK2tmROnnylc5(!B(Y}H*b&s&aDLSnF$uQ*K zvzA4DD5w1&9sv5PkoG9rlMMi~vu7(vfuTCxK3xet5}C1q=s)c0t@Ef^aX(DxNMPGl zPca84CzS1+jherIV;f&yrg(}Lio25!wyV6Nx(dD!PLzSKOMlU^VGp36vo_nCY=9pI9m!{m$9xacw)3dwPiV z&lpXEKOduhh8-k*+!q#5>46k3=F+2YGT7xpQ?{`!j#kLlLg}fYY{H7sth7yzHif2w z#gpS$-Zd$fw0;dJInwU(7g@7y7uHcfxA$<}`YG(!2rnv3e+vI)MgZSieXx4uN$~c4 zJKZ&T9O|^!Mbli=Nn`Ui;(A<&W<2YHeKtwp#A84BY}aa3xIhi*iHqT?*AnQ~qBLmR zzYvXf`9+eH4x*(Kt;whQ7Pta>p$Tmx*!fy*BrX3QCVLzcyf=CSb;ei0(?0h==K3md z7agMwXPi*;)C$3Y4CY`3bsuLo3GNY{ZjIHPzR6q|?9&hrIu z>Pmqi_CF<*TIElBHoYV38;3MY(vb#~ghH>xe9-VGk;4PT7N|wGlH3D|tccHa0*GSRt zcceb>5d6MVhE8+IqFHD?)ElKE=()F*PG96it%Q=`>I)ZY{kRom&5fYH%Wu%|J>{@} ze>`z(^wRuML%M zolghHD4|hS)7kGFEqKfCED7ipP~q~av`uRpD6d^gj)tqz0~?0ZYM)|q>HSsmY1>S= z)Gw3f)!raCX1oPtelnOkEt8Jy4+qPaZ>Bn%Qv_>X?SLMyv{-?UQeD-Z?NDvqbh__{ zHjPy}Mv@F4fzT*JIy}_4Zrx%zplMo1RhONCkC&U!VOb5}f&C8#*;g2G>u z;HRlVTAuO|Xq}Ly3gXG2)DFS%lCgAbvm!Y(BMN>WH-g&iY$bQgiikK+S`CC9l(WifUd4gDqhdBzRdo8EffR8y=D?noZ(J_fu7R zsxnjLBA!MHq}1ub=k6qWi9Y4~WT<#yIPth_LI>2IlS|i~X;zj2y)vYd8_em8_eONUGmC6;ai;#GZRqWp{)A1MK>vBaB(AA#x~YH;aI9Qk|+Oqo8 zD!PL#d-R(~t%S6+^bV=`)I?U?RHl;AAIY8l>h#Nr9x`Vjm8k!@L^jn~(3rXPqMJ>H zBu!eKUg*>#mlq!W-bD%?Tg58wN{rv z;|zft`A@KNauM-6bOg){8VzPG-zivfYy!A?VYZ954+KRuw4@A)oLLH2NmecX?o;| z(GRjb?kRB>>QW7*WHM6mIXNfkK+pM@igvF4ODZE(==l?WN%P{nqU=?*#4>mc{g^wW zw)Nj8;-OhecI-MrKI?oDx!?UMQZiO2=i5c1@2BNR`hnSk-%F2)TqJwzz$Sm7^kJdE z_vbj^eA^uax|@Mdxy!)7MOD!26Ax^SOTmWPTHu&;T;S+Z1q}FaaL;Bw*gG>EST_^^ zwds0r`tPLx?nwg;)<1yFz5`&ZQ7s6D6~JS|a}fR|9e9k+1aA`W0_Qa)z+1x>Jf1WI zj5_rKJUwjy6xT+BeH*rcU4r>Q(J~Q?vz`OKygDu@YS#n_Ka4@!f16zrN65p6UI7o9zsE-K>Ybq`y5oUdF>bg^v< z5>&?&3anr2fcya|FxyBIr2KRS zVqo8V2@IRx0t{c@1x;Dk!K8}>yz;yW-d=kO9<^KoUsbMw-){H8!q6rl8UF;B)indl z@*1$HvKCZ0R)O4zN>CDX3ardd1AX-wU{T015T6zWcE5}SS3@_0-sCA@!Dm;HTx|#5 z1}lJROWzBgK57>@eZDGKQanWvZgbw{Nn5AOR4v=OzNxaJbMa211<_MPMY=adopz5! z<&U3=)^Cv__e>>VnUq2K{{0?anCnHN5o{uKyqyLKhUMZ21C5l8xLys6$ zycga5^GZ!}I7m5x#PN+NayTirG>9fm`g;9bI86fEdeUMW#DP#Q4sL05X`-l4}MP11#QvApvd;>3F}BxUAVvYcfZx1~&z9jkc4Dw%;JGm&K zN|x6skwwitB0G~_(W`eJA}MMuGA?u$Em$hy;{QzSWYzVn*7W8xm(aj10&TM_!S=h2 zg88+IV3tR}fL+!DhxEsS``_Kbu}8bWp1v?(t`-BzlMVvE35lSh;t-IrF9DB7?@3F6DA)?@ zHnISZ?;8UBtzCl9tY?CSL-Uwd<|hR8Uz`NF&5DAB*$#r_lT&MRf@DRK#&V*;$$_GM z?KL7h{bo^N>ub?hWouG#YCMs$Fe0AIt%s=VnZ&LdSw7p9 zc&>6Gv3qUF?u9O7Va#X}>tRF^k6DuV*fHc@y8|gSRVF8*BniABPts1Mh%_1&iPW!d z7Dem{5hYs})Dfm8IzQaM?y{Li-SW|jg0i{uhxRIU`C48gkjR@R2<$i|m~#1qU`egJ zAZFcHL4KJo@P8x;?#o^m#JLvU~Im% zK;!N|!O4k|An@MViw86J1Hb10)Sbx}P5yA&MXTu}ko1s(EvpXKZMV%M^J^4nzIzin zuK!4|<%l70%$h@vI>*;mIa)#GU~PChd>c46K@JGq?7>$lO~`5zz|`SS$kwK{Wd55l z(Kg9)mk^%}upp-h_`;fV{hYL!_yh1sqhBNivn7%^fcEv|J>$do_nht^Gi( zHoMY`Ynn;U;w@x#4#IC{ z3iavFR~aPn*L`AgR!rUwaXHTB1ysp!In8c)L4vMDlFKU1F8Tj12;RoY!hlVfbVa@t z?T>c`I?fZQ;mM1{`>#AvzMm^tbLK3m>5-#PU(N%9RS0}n2y|YC zfxEK|fLmyyKtU=-(E37)$UVpf&%sH-Bc&qI%_IPZZEzE`Xm11BJ!OK~k`svfVi`Ev zV-E;w{31xV`3d@`Jt2~LZN%iK5jPdYRZ!w}3VDsO;;y zIlI0Kwzp=AZ1U?x#g^M?gLg5p&s$By&djG@wu}LFSL%UcrX}1yFAi*;H>R$C!vOF( zFbp2kHKWG%&%jNSJkYty6PIsWi#KYnK*Ox|g3Cp#Xil*wOvqCQ#lO^`?c*76Simlj znKYILKBaV-;V5eO=M{OV?kkf0atre1x$yhwU2tUWdpa(4IGgOhn|@aNKs|3a($yvg zux?Z_`n0VT%~iMo`&T%yuSfM+oW418+a1QT&F8a)+UhKG+Y5TvQ;x~xKB6*-tLV*} z8)@Z}3aaz?2eCRYqzl;t8nn`qwM}2nfb<!zO$q)`j+NKu=L3>`I2 zL|+X5P9nW~Ma#_&6L(KfveR!CC|CdB^09m^d2+6rco-fQe5ySRWZ&sgL+3&&R?DOx zRgY3zr6pkh-YJAny-F7h^P|CdC7tFFNy{4#Q^O(A(a4UWeG8PCslgz9FMW?{KdYwA zJL0Hzk2@)Ixe3Bm3PdhmMDX`}Ch1!5Lk>wS0;ZSaMCt?kNae$O0>xGr0Hta~7p>lt zcQ=;NOACx>MDlAA<<$V*Z?6S~Gee1flLcARq5@Nu&A4-UziKDbO|{`KCvW&B(i{Aa z4F;1gkA?Sp?nCG9N;u8&Fgz3;1UI)-!gsHRp?Pa>LE-2Y_+m^ZQ~+1dX6%bE9Javo zXVsx!!=m7#XNY>_=K&>;Y{9t8`@w%_OsT9y68k=>lO5{pVJjE*u;7~8EOO3I8uo1f z%1ylsx5sW`x3b?d)$~`aE54P9M_gpFT2btPv<2%=9L91L53>0YmCRhuo`oxRQx%nd zI;(6BouQurKWIagE;tMW(neEjfiyk$L4}&%zfZ>73*n31vMAN>8?3NWff4fa=_tE; zqV-i9D(yK#{6~K$OQ+3+CAE9uZrdCYpbAV$`4S>b)9vu>SCa6vomb@y$CM5 zyA7^WQzp@<3j7%2nckmGg;CX|@U3w=G)mJ%(UT-m--;{nw`mRBsDB)uaneGWr3h&) zRzfFo?a+vKx@ewK9=yw?q1Y%D)@^Bn`uCL3rW;-GoK6SqXo`dh&#Ymi>||)GIDzP8 zIMc*w{xs~*N&3Fv3CZscr&U;ot;d$^=8FaFM>ArAIqTVYmqJ!{?J!HX^J5!aJz3k1 z1lAN@!R$<`hp^`c_T06Yoyy$JUd&WvPZ~3+CX{7n*Miu41An$TL4w(I^pWAchrq)z zXP{#?gG-$*!)*bn(DURGcz?J(l3TPN1+L6Ouf*3-$hZ&4YW8>3fBXX)w%{Gg+}(>z ze|$qax)S(CpB7GhWsXydbnx{+8T@#RB(|R=g_Ym@MV}nMquh(KSV1I*A9i=4J>eo0 z<)4RqhwVc?zP{-01_vZMG#gFQ^+4Y)Odkdd6~l7qI39S^Fn?myOMW|tl@_60-usp&0Va^_&n2i?sO%Hf1MD( zT~2s&U5}YO^Tud?&c2NP50Rz1CUk9J+aGU>(zQg^4AM@Y; z&hrt=LU~lb9*<#+d7g}Bdnb<~UfDV5>Xc!4X@WPdzn+ZO6cysAs(PGl{uUoz_YE)o z*nKa{)Cfp?GN*u^6Uf7VIFax$@4tg;G^UTlUB4@%>f zN&k?${{=MSizZ5l_oZZp5qlWjN#!~QY3PY+YSf=bH^~f8rBOO;X@5WMNZ&-|V!i?E zXXl~DN?TO@c_JzrW{p-u3)I)%50{0@Qt92}*p|J3-8xgnQcTA4U$b`dhvN%)*9sBu z>N#TjazS7U+oon?Fk2&;Z2G4W@~$bbcHkN(NS_%#sR->DJQrOI21vl%e z;Z5u9u!`1nJPzx2rf5BCn4>_81+`2~uz*WVDd)w8Z}{m+D&n%3 zQR3Iplf_`y8gcHZec~^CtGGydxmfwbQn7#Ka`DTnbH!O_9mKO#b;YZ?zVYUe5*~Zb znX5;yWY0gAqq~V~@u!G79Aoqm&sd--Y|X|(sV7T?vIc&_RmWEezaIz@&ik`XSaLi- zs3x^ixcc`T;hhzB!hr@o;oGO*@vhiLT%M7F^x;&=oI@ zaui=XutMCFwp)B>L9)1CDqFmwAyGW>WVCqPK#aJ;cenVs`ATtfr;FGxW4L(Rl}^6p zc@jTmX*k4P49AaClCiy9H{Q3 zywLyYUf~G)l|uh9Sm>r^D$H3ZB@A+|!HeC)@E&t*T%@#*d^E7+hstC4f=Q)(+vpqo z-|L55W86*tCPmDZIq6|cHV~JF+G3MYr_rcO<7n`=UbbUPCO>8Kj*Inm z#MD;dTVyt6G77mZ{*YliT3#%0q0-a92LPsE)^`$cT6Q zj25#7cX9Nl5b;6nRB_R`e6jFdo_I^=K{36OAdWQ15bwSfEk3?`rPybMjo7sABi~t9 z!y~tt@m;aX$aW#ZI-ZYk`+xevmrn%3zM#dz`OTrirt^uy=hKpeZx=-g8zW+c8$@x! zJsy!lnVA7XSL>l{t>HStw6!mBpHmgyTC@pQ#O0!Ln>O~;JdCgVlg1-%F&@6+1^-<9 zirRA88M1-Jcs zfF(;mXVvS7XV#;kqf3uS3y9+@ZhONtl&dAdieGH^irbxow$PqaWBG|ouuS^SX8p;Z3I zQI$8Gn~ye~--Kf_p5R+L#=_=8BwYJ;uCP&MqcE^FO4ybaE36sZFT6V@TIe`ozwqeM zFyWtwg~E>-wnCv;P8dRN;TD%x}nak_Mo%c40Ej}+0!+I#btu|NeGH!;rdbO@N;mG5mQYCPSull^j zGJ`#U2}s7v5o-qK;GMbe@Rh+q{Ip9^sP1Gad|GTEoVGsgXC&F`s-vI(x{K87T-s^ zvk#+#x5Louz*Th#FFW}E)AF}GP zpV@{CRc4a)4$b(ig%=!iz}ty!U1Xe&rH~pBF5{o^#jXa<~95+2)LYCIc*4GY{9xhT;FRW@F8Qxwv_M zIG*FV2QT}!AOE?(4nMLt#=8#a;f*$P@u7J$@cf;BkWEB58f%aV-7EuPosKSC+w020 zhVGmGo5$Jvy=uJvk2W_ivF7H^4!nM$317O{nm4^N2R?D*OLAgcs4ZR3cI_Y&{hx{)9IFp9sH z`@=qcD`WeRBVA+o9L_WN56v!FkGJvwJX&Qxwz^e>-O6(C#yu%`PJIdPYZK%0Z(TUz z&0V~9?=fuMmxf&r7Gi}v=kVUW9QT|&iEF&l@r}|{{O)Ex{=J|SFZpx=f4EnIm9FID zlfB3AU9(KQvoaLRmxtlCI_q)!wOQDuc@qA7xf`wS)$kg znbv>`?>#eAk1?j)u67JxS?tQkPFTWKuP^46c>?~jWCs6s!I$?XF6U}-f!y&;EI%!E zf+yofuD9tnU*p}&HS>py6LgHkO^5WwRWd^vgjS#U9Zxy&%aQWppOM%3$b*r*))jFx z6GJ}h&m9){^&5SCVHJ9&a2Oqklftpu>v4`r9QJ<_gQx0cVde5P?7Q+fzE|IXT^>Eg z9rxO>Fy4J)zZ&RV?1ybe!URE~RA==2v!>Rm<4G^5dEYK`7!InZOF%hMEo8m;D7=gx6s+LJF9Z39)CeBCY$H$Hzl?|8+s3!N zILM?E-OYGR_&03%@;9EC*MT?OtHo>Qh_G?XZ7gm25C`Ayz_GcPan6(r zc*pY7_{g(lTrg)X9`nTu=QxJo^xPHrhc!jXXWVG?tZVcet*4V3wb=EA=NWOB$W`RS zcE{_uUva36J-H!-fvgdz}&itRM?+fF|Jd4a3Gt1CmxO?wYh9XKSN>VB%nl&pG z88T!@hJ;U)lm>-}yZ1gsR7e9+grbyEA<2+@@9X;yoFDGlcb#Xgy`J|IO>JY((2w3b zsIihiZF#VlX75`;`L}9QUn3g|Qx4F>A4BQ=fjFw^d5=!aeo0f8eV|Sc1z3H+)ALKa z>2zKn-FHQf<&O|z)hF-MPqs;P94FIVnLDYB;7s~iw4H=1MUovWJHQTH0xx=XLyxCM zXx+KZXyLPC=%{7{3iirJHGA68oasK)x2hgJee(hp|LH}3o4%u>IsGW5_Y0DG`4Lsk zX+smW&yY*y3-l+y4oOTlqTf58Ag8n<)R1)%jpcxH08fW0w zIy)Gkx)AC(yy4C}W=bXw~bv>W=vj$r5RdC^!YB- zYO)6%T^WsDC-Z8qaX(V9_=D`+UL)tsPpG|JfVsZ$4^lB6LK^!2Q0g9jCT`9E%0sWw zU+*_4%c=$Kobv){2fsrlV%0oO-~}|+eG2`~iQ`H0a6~uQqK*r)sAFCq45M42s^B+p z(Do+Rs852oUm8H*%SPLG8*=ekKsriJ)89CTqLsPS@$DlT&^|y1{rFkk7+F@bTY(k2H%WD@`B`p*HY*US zz$#qsq8^qtbYtUfI&KnAqpkeuA$1!%IO7YEk?_JYjw@l!>Qs2?n--emw+AsIyAgbn zfNmE*LS~!WQ6lF%61hKx_}K5r``l;L{CgB_h!kc{@0ViMt@(!r_x2#g#?J^j^`n&@ zpOAQ2FZw<799?lQMv_kX=(R*9Qq($tM))S-Nn-_WvhDE$ z)VA>>o&52F8rGH2>|L4k$i!hvcP^&f)qUhwv^9CezUB@v_o34{9pqwRgHq1MpaJD# z)UdP`Rh;NXh8f?GhriHGu7)#e7@!Iz zNRcJa0}`7{29x?pz~@n7A0KiB&YY_!)iA+d5I``AHqxf6!ZA-zihZ&puZZX0Le;)4Q8q(uTAb zG}HVAos(BV9j|23L!O~jDFV=42PA2@>>J{&JB$UB9pGxgmyr1+g1*jOgYNKjMWtB@ zI>pl<*J^7}>v#*2ebA2-uaBafgMU!}h#1x6pCmZKbw=8R#aKMWyCx_6M+b8JVq~lclU?ROekwsO4uF-?1 zZqu%r6;zhx@$&p%(QMK~|5Xgp_3eYy*>Q+o`^Lv(0?%NZ?)|0S0mF3Ohdvr!^@=W# zd`jv2hxC4NE)|##rJ}z*sO(i;+S%1Xu0&XngLgu~f{p;_RwaOHT^FNE-6xRd;!EiI z!Ru)2nKG2L?io6g(2acNd`F`yljz~6Nz{0I8Y!(1W^_zMm<8b?%=}_uCS-IP9nG9T zUTcQYmVjQ=vgsANGJ(;Jth*@dQUOuCjno}_;ZKu`aK=3&SZZ&| zp-NZr8mld2!;Bgdtk+Kr%f+d-m=SGR=|Vk%*3zw_zBE|>FugbQg&FL|YeKBsqZw@a8$PyOb&AH_`bDR2 zeWvo}?Gzf+(b}pTwCs2ig{9l6Q;RWu8plV?2aCycL;{BUe4v0hAIdAXM((e+q076Y zQToFy#QaCllyxhzJkp2c?S_z?$2j`c#mDfdMvUD)apsPb9P?^GiU~#H%gis#LAc4)J8m>RM7;ElmG?FrX#X)^y~lJuQFfMI*VvG+Qx_4!fn&;NWZ;)qR8h z_To~vutxfGRVO`b)kg~s|Db7Of9b0j5jHPbl69JtU{6$wv+9x(EN@|$O|%wbUwKZ@ zCo%nWmBK4Jms3vbURs6&@d`S>M45W-C?q?kI5=AVG^|?x2TG_JBI|GK&^4z7 zWUq7^{ZXz%fzLXSL`xr<8XZCM2WK#+y2Kc#L$b`mE73esPo)ddcHE1S{%=#gRUjC z_jnDx5&Vj(#DAiL=A(3a6+gRkhX`x-LW-SFXR?W_RoD)FRaS4U8ar}DnT;@4VA&V4 zY<8v?J0Sj-T0Z_j*K+IW;CLZbPdHDn1#Y7uceH7V#3SMxFoU2(W%zp;fxpW2(4Mv`XRid45hl-gy;Wg$KbXxNxT(#Ir06nM$#a;! z@p?>ar3T}6P=%>lHIwl?CB}5`TJd zOpRUZsDfBC%~W|$*KQr6T4cJV2mMPNL&|c(jA5?~DhbJLgb zyi7`{d{q;a8QK6VXNv&2dqzau{Ra6u^oMXg)u@a8V!F>{JI!?tqo)TGXkv2~)mwXq z>aAvJO+Y;@xcHW?@#~`w_QUimufG136=f|#CD?m4a;&4D61!kXoedAvWK)l5u?K3j zSd+uE*>GuP_E4xCtD7vsp3L||_4K;w-H|#>$i$cD5q4{$Xk$~1+^t87TozCn>k`JcQn4ts{bZ-`Obfp%P$8X3erp;xFvn&~A z(E>*E>jK7d)qLj9N()9f$B-GA(qyXhm6!-UX+|ey8og-kNAK6YM322H(8rsX(I1s? z^hLrGO`2+>hLYD%n4X6BUg-eib_=p3`wj^?_>U|poK2e_FQHXUyJ){b1oc%+rL6B& zDr{9s=Pr6gwR>LC_3Pi$!#@Y;($ns*X;Z`ldb>V@rU(U5r+9Pfbi9*j zWKQDVPo{8m@;gss*`a&sVd$M4?{35FF}jr8hq&xCn(DF8-kw=Kg&Su+|xESSQ*Cd{IH+RTRI3e4kRUcJd0L)$&yqknl-NG0V8 zTDJQvsw~=w^spgXxT_B;iDCeEPdK(F zsD8(FnjKn3;kinh{`v`JWt(YZZx0pv@ttsG9iCx;oJ_2R#(uI7O7Nitvgk$ z8zXBT&mzj1i{S9v33yMy8x>y3LXEFjlrR1sUHWeV*~LmTH+QNtQb+Zf_m3lZP1S^y&!ZO#-Y>oNB0m6_PXV$2p%-n3(WcR*JSN>Z43x@%=b19#@syvq{75I~cgxa~P3Cm>5>NW~@=3a*Et>u- z%c1-#w`lf-QkouGO}pq5+P}Sn&TW5B*EIIik8+c==rcd-GE1CIkd$Q0{iWHqD+;XN zWmQ(UR)_VMpTolCx~yBXE_XRJPr=iKX7aB5B$LBG3j&PVC z?sm){0Y}E*iX&4LW6$szJ1`$A7Bi+^w#*l6a|V~`GG|(OGwuRWCf;cnt#f{b?zI)8 zm0G;Sv$Kbg&TcE@-}0MxPZ|o}+dkM)A6QeUP%%|l)eCUatp;UY#iJsNY zp+XJ!=oh6*Itd#nXWwf&U-<(qDfmt|+@GS&XM|Y^8wvKscb?X7m1Rv|D6ripRax72 z8myS7COb1+n|=ORlkMi!-oNfD>}*3B7EFk;pL@sXg{E%W_MWB2Us9=X>3(`AN{iNW zDoDj*e?0bv3yW2?P~Fob=)>78RDHY>sn~u)pKJM<-9hq*-j5SdY{Z86?xt|jK3CfrCkAlsjtZsxPYkEPNz4(15>me%7?xa(Jm!3$jT##~SBdS|Cdc;8l3=HL`PhnvpR^~em72dQr;kf6(yQ`Y=|ikb7YEjm z=Up-Qa`aL-FHjiO%DJOVp>xP-b1^#N`W%%f527SJA?ARLG!rAI!eCcT#@fk%0T<^o zOBS0mz5ELp_S$@={I(@C*V2+XcGQTO;&Iyd#j7$3s;b9Ad{<7s8I17JaH}xq(1G#Su<{t3fC#J$9o|q9ADbB>NMSwnN9;%^L7I^ z6w?o8RdjLt6MF9FTl#7E1FvuVPG|iZrm3R5dcyk#{ZQp+&5sGPa@U2~!EzDSf1?Du z;g1A++E#*nd|8x@6cA!t7R_LL-}27Z#vgP6?>VtmHS}6@0Tt>=q{C)g>CjRwS~^%x zKCifpU#pwI>4kl;d$S#qT73r9&cA~8RX;@X8Sju#!zen$2r|26WtgG`vzX*9stn&h zZDw|~9#eKzpWzqK0HN@(?!T5 z<|3N8CkU-QYKP){M9>YBJUAdX0KSc9;*!n?a%9Z_X>QY@rCN@3x$#cw^d^#a$*0hw z<=5ywrii9gQY!28ghr?~(de-@y8Rcgx>$UoGxmR_zu*3(A@$$snwdZ8;EwM!VE89( zS};gQhrdzrl5ezgMK3+m+CkmAUQ&C7DyrUHLT4D{(DWbibk&R_lwAlYc9*8^Gm6L< zBTPOmJq^C^xDIXR%s^Lc5fWRo4~_LEAkT-lQ22a;8lF5y^>$roXT}$lq&$UuE%}(f zdBV&x84)JnnF#Z^UYuF>N0_ApD8+q|&QS0if(1B$ID8@Y# z4XqDBepgqa5BZv?P_qF#tvCq#CnbSvg9?dxl0^zSXV8R822`VR9i6NTrH4QwHIdGv z(D@G4nW&(vVjt5H<{9O`-by8P( zlht#&y6rK2X!?*o=`W>XJw?3v&2@U-;Uc~LIG&0Qo}e)jUNmC94J|birU&o5CYNWe zA;)h%;HL9fFS7G1;L##JguPH@|8=oNE_pi|ohxh2R z;76oIe~u&W94*%OEq0&P));xYp9b^HT@=9L+fiEQN?=?X?Q40M_Rb_ zqFNEn$u6Yr={ITG?kg0fX3?b96ng!142{b;PQNfa>HGEWG~H|g-CHhC4}9RK%WhPW z&n+Qj{`rsCFfWJ`Xxjt!81I8CmXyICW*^}e11V&7zy!^VazVN8Jke~keQ0aM8MI`7 zEb8J*LisPwqj!n9$lp2-b@k<=lt(3K{m;AT-m?;vT~dTG`2PvRW!Py1os6<>X|mWcXt?W9xjDP)nnnW_>T zkL0J%q(1iz=&Tnubga>tuFCPHPZs!5mGc3#*LE*mmJvbIMT@|NNC4Hx-P)DH<%_@fN2xS0&~(GK|L zL=05bae^z}&wzG4im<~&7VxxUu{NC$XXim|eaB^nc|5d!HH5t8oG(>o0`K z*Sz6D?|rbx4ne6<6JDNxK0NMb1MRdKs2R8kuFY5l-zmAkv-$e4XO}75zTXOd(p7`T zLo;BphcI+ntqOZu1)-8+7`Qbc4e!5{hy3Iir)|?4jz)+!$gUf;jb4?;l~zl@6Hz@_ zP)?4-Y!fC0Jl;dd4W4Isn;%I`PbZnDgNdN;8d5Xw4vCfxBe9;DB)@nK`C{-NDVUQ+ z!jvP)m*1O6wDevgW4V(YK4(EBf)0`|JwfDvrVN>wYeyPnR7uO3zxaJR@ArFDg6|#) za$XoF)#ZCqCQOwuEtJ7aD>U-w3!@w-X${ z5eb%>$O5%Rr+^504Yc?o!Q+lUoEy*`#>nwFYW3&Ai=b@aQ8Ns}YX-r|34P!)`Vs_f z7lMl){N;f2VzA`MCE)Xy$9sa0dFMIwMM|@hQc|^m7@9_r${JZxX|sh)2#S)C zSBr_4+aP{AW=p19`!FP<*st1=IInZZi7DgQIpMhgMZ}MzYe<=1%0+u_Q zz|_DyfND9wD{ly=U}q3CtNsXXl|BTEK3;>j$85Q8EnkCJB^5Zux`I0S9Bw9bwXG4= z1H0~jz;U5Lc>7>D-naZEUOLHQ^Sm|WVdXON!;i=BUXO{`B2DtBYXd>ojmd=%S4d&< zHX@wEAwo3?WW(42vhBDD`D}QO^cS1qU7qP=@sLl2(2;PgGL3i;PZ_9ZzaBsHueA-E zl!ua1&wzuID%AWV1?AJ{z~gt#;mMS7pwVdtRUB$y6>m57?Uz`%p5G28#-4{acs%H1 zp^M-v%SLeQSsl=le+#;A#c?9ve*`s~Zh|v={&Ln%L~=4dT;+~rrs1Pui->{SX^zkO z1LVe)Rw>CY5 zZYPVlBhTufpKLtdFjNLJr6;&^O1$ARsUGk{yP0Dw76>he!mzXY8hB@F0l~uwP^tec z3Dos~`@hv<bOodwBEbWo+ct01hi(0wW=7$h*b7d>HF2GTyj| z+p=5-lXEjMM*@-YZEtah>0;<-5Kgkc2tn7!^GKUxEyxShCdLc0aYEe#oDy^re2w+S z>D%1MHMI}W=UXyq@biKu?z$u=QXcz-Ny6c>LL%E_3TIukBN7AEl6?*2tsSNt}-SoIZ;)b4}6dET6$952`rYR#!z@eFSptb>;? zoFg+MQlPHfOI(h%ArCi#1MZ6At><&NHjSCsbZra}zPp$(WgCFIN&uPWGl0!IvdI=x zQ#kL85E+dA)`g$5}8@UI%Pw~UGdlpypO^xxG)9*ME5L4*G%}qo4?e~XatfX#la7@! zkWV#@v_&1lRxN6H*#jvO_e!3my#V;i^a=u{uLEsGXYBdLk$f#~fgZ_eMD@a9SbMz! zKUbMef~_ZkLen`?P6uJN_Y^t%s|gDE{~;>;ZLlWKoU@KyMUZtYRF07(c`~t(@8|`B zL;b<*WnoI`r;axZQO%LN`c&wwKZ?Vx4m8u%b~3V&6<3ZrAXu-%Vnm^OQg`z>+~ z$#6Xiy~6Z}PvK|iS|CsK49~!$UxlDTd;)OsI}h2FbBX2BgU}LM0ENX1f!{BASbl0Q zY2v>R9(<68MLL_nsdxnB?|Fk;`TS&*?*jaJWhYre4B<7sM`U1@HzdN^L^5It47lJ( zM2%-czJv^n{UW*hX(MOX%4Tw9?n_{FG@lHNX5lOMH(>rd9Fl&<8YDb^&EcOO#3_43 zz=OcMIPTgoW z*h%WEQ((7QEODWg+@3ARpnU#S(#a7)?KkR4d29pBFis?*+4o@&?;X}RO+aUaN#^0N zP-({unw2;WL%1LD$z6}&%N?fxo1LAq!5eNCAHfeZZg9Mi0jJM!88=ar;l8c-{AhIcfsNR1HJ;Xgo zt2_Yf&E3dcX?f1kfjp2M(#QGNdmmfXUjXHk!&qg;4cOvxmH2VOU~8ZmSsw5bIGWCc zRuXQ+`RWDO&CDXg{w#D%J3>xQ{{u@ND3aS(*Mg4jIGEXRn#4S4fVTxC>DV4YG}>)W zN4n)uNz??fI#mrro^;~Ov3AbCmDS+Cuyjm&Mu7i?%J+fzHp{>R3!6p0Wn3IIiezp&M=TR?nmHx^$c5BA%3 zaOTL_k)WbL==4&O%o?|Z{*Rl1?Z1`yJv;=Ied{p)P$UR*Jj1p7Q4CI2Y7mjftDN(eI_m;;GF*G0c!;owb5H_BoOB`dh#*g%FYx zvKQ``kHs|jCo#P86 zBCTP0XAfTE5(>B82_pX4+hMM47;!xz3iny35cEv|9#7$E_fB2X^y%{wR4UR$xI~9;Vv%ph4Ta^&5fz+235H zop*thTnknm(1Kn3llX2%I4r$tMM7?U0Y1`U*gU|+I_$X>RC^jiGWlbZNjeqRuVsTKd^|$iMkR~4}V$+(W{*g zV2gJnnbVUCXFZxrCL6S2rtDTcPjAqc`)(gtWW^!Q$)n)tdqLhlgdkGE6(m2o37*t_ zPDbs;q1utH_*%}-ivN=9@uI!`xc;RZTw3)I+}&8p30mh)9>0qMn`+x}XH*$C|JEt4 zZTcc|{(~8`;yxqI=Zm4H^eFBxO~AG)OCVor45_^!2bZ4IA{`$Nz(`z=dt@P;ajJ?K znBN8mofL_&!Xl_`nn=tq36hlKPa&?ZB!!aVNMe>E{g)<+b`O^l_bi@HZ99Rxfe6?- zI}ZH%vIE2%n}rt{*Wv2W14Jn;8ylX#4U6RKh^FLcc+s+noCw(im5*M8J_*bzxusE`UxQ|g&^lO$B>UVugUd!k~H9=h-A8|iiuIf$do^;yk z=oNwb3;bm0&>DDj^dE^{H37k~QIh=a8C00_m^{4r5JpT#k$I9^IrdKrIdc^T$`8)8 z1aY^+@d-;qGVc#h!(Dxf{VbeuOT++ZzLHJ~U;4u@PwtXDW8&~%XF_DY=|bgSONe&c*$S8S>mXLOC5t$&5ai7#^I}ASlyVtXxo?Tno-6~mer97k zhpEkg z$~TR%SEDklUO5M7^YUj_DW$=LBL?K|=GPS~b1#ASx1F%~x?!x^9Rgi-a!I{tH^>uk z!zz;g~4NNGg|yn4Zf>^}1mkMF(#uU~H^n`55C z^xO}){k9q@{QDX{;$1y-AAJrSc;DRFYnzFJWg8sGO(Kmdp&)KUB^Ev>ito>}f?{Pc z7{w?NLd@M^o!fgXdRG`9Y>5F&6yD;qX8%B><2EAMa2@J$*AZX4T`=JMCcGA00nhJo zIcK~RxP5Yc_|M^kz$7h-P?dbB^1_fPthoma+)k3yiB-^UUJps+<=s|^&BwE!zOINE z^25F{rkvp!QFy_=vp`l|jFc|-fGeCG$vim)nA#qV|BCCwIY-4v`JyJgaK1Z4l^JBc zR|c#VenvuL!r+4cOL0|840yH?cl@bN}{y51+Fwo zBuif_!}IT&@hJ>v++=eiKWU(IRynGP1pCJ=FZ zp44!wBu8S>;WODlaxKIPW|}91Swfj0-o=fW9%+UhHH0MbUk0m{m7$N$8d5&vBbYrD z&FP%60~lm~<0f{xf%Oq40 zJ~Y7a=`Un(sE(Uwnhwhzoh0f_;&5U^4DQ00$5Ge~U$XcI zzVmXHns2U!%dYJwX6KK=2G$#nU(UhYm|J+>=M6AKVH@ev*bN#3lHtF=M`Y2P9vGat zffO84Bo=pgIcDw0iRQUD_;dG47`tAa7H*M3^DZS5G4CWY9(DtIt%)Uas$y{PWdd-` znN89T-iMEJ!pN5T9?l2rGN`+wg9OG3!`gZm=(kdcK34n)ZA{9^hRYCc{u4~L#mxh6 z;-q10TRiS~VoogPCqq*|YZAE709KZL0Zc<09$ViF&L!)URadsaH`#ndP;d>R#Q1z9x@J|6vQ1 zsQZmnWSxbcEt+`WWkllohPkt=i^1KKCAiT{hnutT2E1r;lhn&QK%uF9Z7CBzj5%y|>h-bLUE; z{b!QM{r(5MOqhjaU$y`Wy29(*Te^X3ZUY7+mW0Zjgj4TA37i=OUn;p1U%@PB_VE)@ zbm@f8W*E`rJ^;$KOR;x?F7PO%yv&A2YSMx-nlG52BvVJLJ9n?DnbP6@8Yb3wJ_kwZ?ZP$5sbR{f+KwU z4-w^jha1G3h|EYP=lBs5n6xF6xaAl^o4Gq6=jCOhxz!jo-=0A`_P+s2OJBj0QDsD0 zNF2hNePB3uD^WV*1)ncl1eO=plSeTrP*h8s$oxo!`)?pnm99d5SUluj2#ElDdv=5K zmTsh9B?0d8+enyKW8h1c90|C=g?tgZRCA>U8nV4em@Ou-3!f%)wlr~6zQzJJYY}D} zn}{m=h3AOKAx7GsSn{?miYNl~Q$#KF=@%n)ACHg{l?QP8+B=S$N-@z1mq&3i0#xmK zA`q~f2RCm>CkrYT!wiESj_0>06`EngWbIKdr6+(?YyWQ{cqQH*l&TsxnEC7qKpGF znAytdSqI67%F^7-U#avz+hmP3R&M&!nOIquLI z1c%o8kOtFAxM;eHoaz?^b(f!j3Q0-mRaA_hAJu|he%ibquacOR=pya-`SjUEb9l4{ z;UJ!dL;ICU<_0k|{`Ms8^mjo8j(3`FcgT za~!_r7zgN530^LsKkS-$i7YBB=X`GIffL_u;mZq?;k&UpaPA6ud_wr4ZP(ccaEC`7 z>33fZL)^;ouZa}czB`93(>()q)U(M_<0vAib_$e?i;@Rh!%2p{5fXl~&;HT?vG0o`De~rew@y z3Ft02w6!YVPx!+YlF_8k9ENu$BL1y}@}qXR(&Q+4Ja!45o)n;x%cJ14Bn)<^4Uxb9 zK0!ETip3!%g?XOHR?v~Iixq?cbQO%&Y$pebXM@GM=fJy9`8Zj66^_euBdagXg$)H0 zc>2CQ$$51U&bj770)^Bd|J@+CUF9Cw1e{^VZ2|7N;Tl{B-QW)S32->2mrKvz0r5+p z0gc_8$VvT`WXA}CLVb;-X7Cd({>0~mOVVtu31+%1BUSx3xO-a7;cY1ZY|Gntxt>~_v%xwrO)(m4S!u(U(VOiY?J1)~oBH>Y5FeSr}Opa|N&NLj)*kVq=3SNM{%nodPBi}ajg9x1e zXC^+dqQmygPh$wfI)UJ4Ppu(agbQ~a|=y!asOop$Q_p?-n(Q-`}x=Kc&R>F z>SRGkqyU!V@px~0nv-&40D%`GE34Pxq*We3=dv|9BRRrVP_}{xLfy%e#wIYGod%Dy zI{41kLN4c_E501d;mv3(@T8t1OjLCtA0}HlzcR}z7ABa07!7%_X!a~_Yn>n0x4fGB zy1x-9tqMr155 zfpx)6IMKolzUT2_vOavp!dK67kKfTIOWE(XhgxoeeNuv?J|GCz8oG11n;STKo;Gm# z?g(NQa})T>G;oGY0`N(E6WsVLK-QHBW9iBtVE3VU#8qJhh(BD0ue1x0(z}XqnM(wo z;BLk3NF4-^S`)rsm%!)ei}9e+Y_jj!4RC+S4;*^|1HA*G9Fv!cMB%_r&h;~OTxsz$ z+*y#co#S2q2fsb%4?zi{n?pEa^ldH8r%q$I3x&1vSx_2iGIld1o zWk!RON_{}%{cq0Xn_yt4xtGUc4uw`h&2YWaS!kb83)5=kk@wS!aFOF)UjF8N7+~ZF z{uXb56&p{(7k}nMr4o7gpW#-Za(f;;SR!80ddUb@OEU0%&0Wx|nhZNs|AX_F6vOB1 z5~2F1T`))?2RfF#g(@rF0N;%(;Pi?pNCe`6lRARw^Xfp@4rg-h5JT3Q{v`>un7rR5 z&GUu$P^CN@iZ>pkV9{}U@RK*4nioOWgrBF@x6aT~oiti;I+eBDqj%A+bOz4eWnv>9(#mdOJeAsl_^B|+a6xl34)5}3ZRxGKPtGl18sJULkI2u zLxwx+(NdL{Xy=1kbV{oR1>PYj*e@T+g(FNXT_{oLAX!gcB+&_sQEd+Ghl zgS699oZW3K$IfE3+4pTGtncgjY>|~Sn|O2)o3@c*oy!)p|BU9c9@Zl4<)#;Oomx2c zs}3+Ka+l!qFw;T$CSOgJhStpt#(3DDKc- zq~<8e)Yl0ydj`It<=S1ys`EAar*Q+#(1}7mAqUZ^LptbF&;;E2?l~+3yP>_oC18*t z3jVnK1N}n`bipRD>heq|&2P+c%|3v)#1s;(X)W43?+BHP&7|2UV(FcN6l!#^lJ4fQ zJFX19rO%#Au=(wZEHCVd^?$pBeSgW7{p9Y+t_*i)la0LD`zJQDzDwt^LEC1t>nerW zT**hYeISGidc+dhQGiAa?;!8GPpHC8fU)Y3WxmJCFx#(*Fn65aBW24s$d8|(Up{wH z$da9?cdI<|dy@sH!e(N5*OfRw@~~|}ycqX+>owS*I}D4oEm3ggQM8u#-dUMzD9HE` zQqgWiHizCLAoUZ?T=Nli^nXFG(q19=h2^NqJ|AhGNJJ%5TTqCy77{r17wTV6;`L9@ z!Q-_GDoVb}U^xj z!YI|Xpun+9NNC{-G^Ef2WeTFDg|rDZ)wCgS(e!;DlUv*0MQj5kDidw)Z> zUliJYkAgis{bJubjuqR@$n9lAcw~7!K0UL5qg?wCIBW@qGOHiLC67wrC@)9l>;q}2 z{Z`9%m2WS1YV9aamg^##20nCQ?p5ls=pj{~` z4T^PP`4;=I8k@JWTb_He`x+Lr1G8n=L!Yat^=&WODSrU$?%Rs|j^?5*@xRbUrI}2< zw<&X&yMU3AvSt<(S~A>=a*RXp6SRI~HhOng0F_+d26WZekqzMw$zf$7`f;fFj4iA^e+%|y@b4ka-4zBot@(KVU;;^mGpWw8Ep%;L3hl3<^gp)-I$HCF z`jt#jqYFZ;J(XcEHP2x!cG$Az$*!!V@D}#JjQ#9H%_jD&9c1H<%w#VM)luzu6Pj&9 z;KQG(D9?iDg%}cMj_=iAY98n_y*+@jR9nE5vdT>85Fhh(F^d!pHlgb;cr)^pe8TQh zq8=hks9xs=dc@6%eu?3u!fT31d3-lE>pTE6^xwf3!Hdz8?i_UI{zFuq`3i-y-6-jB zGg>*;f)<1~qS|*wXc@SS24ho@!V`1kD}4n9ZWV^1Db{4B;Tm$%?GwKEonX~~$DlQ9 z0n|*lf~84sVMN>@RO*!G`6BhvpU{OUw_6Pb$1Xrhf(|I>ml(SX8qQ*4By?E?e#okMt!B3YKQ>Zw2kSnz zfgOKg%l1CwX9X{vr-M=R33sa!Iz1VNMjf7@W1gbS(kF6^ZJ!ZSUAur8KWD_K|50a# z#f6yZclXgo15f0$@jtk^`6}KcUPt!b(4@I>hV+St3O$%Im+q^)y~_Gv^jrLA@}XEYN!dWWNQUJZI` zGKtRde8HqsmC*~(Wlq=YGVQ>CQEgCU=4}0lT5}T77d}4Z{y&D!GoH#fj>A^S-jb2k zKvF2qJw!-LG?b=9Qz1>tzpN0FP?S+JDpDzN?r~Z)k#;1Nlu}8ht^A+QdFAc-IQR41 zzu)z}zL~ek<;MeTBD3U{C%w3>&kC;cB!t`S_vcaZ_Pp_lHJ=?SVI~81Fk#(elyGJ# z{QjjZWRBmRWP@Jg-u?rt2TH{+0HNXjN1~{|w7y37A zD>7`6rmF(SGMVRI%;UO*oth!fn=g&#VE!6DZFdH5=swD&Kh|;!<;UFo)&S4T)0SNS z?jrFmTqZf$9V)39u|*<%ZHXjX+F6qAC?zSs;lz(rY($eDrQ)dcoA`9gBTRM8%61Ra=9_cu`Gf>-{wyw* zOW7Rc61nE)F3DF@YbnF{WZm3ZFx{dkIvkR!Z(3GY1Dh}TWO zhhN4%!na;s!L##HaH^&VPjk}1OFk3SzicbY7_dZ!F*TyQ9)IbB*laq+NR?^S=rA9J z`!pcZ7s_dGM1IaC$fDpA$`IZkzN-(Q>oW#nOOTD$^1o1ga|*QDvWWFZX0f+z&sn~{ z8K<9od45wO_vkyrH=S$dUcK-6Z5b6wL6enahY*+>G&fw*)45q9GiAA?piU%N@%;}k zP)_2}GX2Cg(-v)q0kXm&@ZhGpF!ZS8ADYvn*Bj z-GwwN{~(laj$@U$gY~{5n3*{##A5$0LnPy7R!Wp+?x-W)Z&HnS@O>%keV7WtjZW z)TMT&m&@FW#V%8|JzcP^sSCB}!I9Vy~tkfC}cej zIdreF(4FhG7iLdaN3tHLpxx*ga%rL}Jt8>_6p!S<4?`xS=Sp`F4L^ud3X*|$SU$^f zGUJ=XZv1@vEPij^4u1N4Cbtwfa91l?$rD#I3G<#RIn)#)xf-)Y5|!dDF#|uiU0V## zHWcoDGdj@&DMLJL^blO=yAo?$x{7t4s<;FxJGcZX`nt${@p74cOW!5U^Cd2^&&Sm> z5DrvVz^W_zQLt?!8W1uT=|l9m*%!eRwdESO3T@_M#d5BCVGVzHPhfa1_OqF%F0-PA z&zM5SIcAXe7rMmj;2R5K@L7o%7v8yvUl>;6p5gI$Vu?F`C1l&5`!B?+UTnazEB4^u zo$K()NCW(>vIL#{916u_2I#1DjdZBB2eh2E4F!0aqNtHaNDvv#sy5tWy}e?#Xzxwh zyX_YFbWDZrJSg02n=NSH2x8dR=lepPTUw&RMfDZ}G<|5fE{8Yg+ZuwA4 z(h%Y#xnA!tLCa=HLSBC6r%q1cezP;!+X?$%?4&HXIIvOZj7&lurU7`s<`Le$U&Ez; zw5>~PjIGOylY?Bk4{+Q+rA+WF7vYi%$FPUu0qhpCP;f3)p;bqu*~t|KJls5++eeh} zP@c+XxXj=g7Rvm=8ApDuV+kLxHkJ1-n#Nm9n%MQluRzDDcBHv%GmfMCaa@7$yL&wr z_uNv!H?H|$pEpt1tRo%Ao-Du-Lo;wG55g7;_3-}q3>q#k@+#!W^k81*xkvj+zzuSy%3i5ZXz>RTF;V9CBpx{4R>6(oX@pc$`hg;c}3SK z?oeXHLzZA(nw!Hb$3Nx?1oimg~q~-BTv4@y?vkvPz*&vQudX0{i z%wRv0C1mkhYut;g@J{!3EDBU`nHs6&Qa8H}zn0pMy(Z=23(<#h)6jF+r}Px=<9o1P zvKrO^JuoFZp5+Tz~2YYzDN)2`p8L~=(O)+QbV5C2}L3kOQr_9e=E zq|pqX?7EiU>j8ZJTopcDVD4NSRQUz(nLJW)FAqs4{K}boe5q6$m-g@CKgdTO99qw# z)=%aue&sN6PBn{DEMebnex(U3>PXb{u_(M%74P}69xt95jW-5VVXu4laB@*O?oy7& zMQy2g&7=L;Ejt@OjY`6EPA!ToVVQ>_au(NV}zLa$+aTt-(Ix7!e(S>VUzW^Ls%sz>?2 zx_Yi)-o`g6z2-~NJ05`^aXqWmJYwWYx+miYo#%Fp6+2in%y*HP(*rQAMGAkOxdKnw z8jr_5Ey8P(tFh!q0p3D}fFJ#q|Z_v%%<&>}2 zW!6R;n8l3mtayRYH@J8d*H|HRFfJL%-wEfcjN=4;Mm&RS2)Sm>ce8l;h9G{mY%Pz7 z^WgWV_pwbbd)ZF+-7FwRn9;?oU{C(+r5^&6$j0gIqS37)WOAhv8LobX=xkYhU$Fzh z$4%(ZqOa&yry4#hHpG{khvRaSF}TlT8155tSO;ZgF-KR??Vx?gJ^wJ$AC-ZMTg;Gp zKqfR<2w;>#Dfx~)>9buSbnkKlHcF(!68`4WiGQ5fyRk=@d9#?wue-%S_ZhY*ayTo8 z6GUy_YGBKMlTcJ!0_Z(+MaX2GE^0aMgVx$kK#%t=f}V}ephiCvx>{#}xf>E0IorX4 zXT4!L_!=uQNMM6}#<3XFUF_Dh8g{ytGjoljY;0#X(-||4t@T(*PY0e6r4RoPR0j{I z!J3Qqli#Z4FCx9^t1&cX!5HEaTtrZmD!=F8DSm-%Rz-9FfBZ7=li#KYOw zG*IaXePkNvfvVl2kz}zSS}=Jmni6hR)s6!G&p6p zK0KN#be7n>C5`W%QoWwxEPAIo(^0fxruOk{^v>O^$Z{8Z{vwyfR$XA;#pju>dnwZo zu3$!`C)j^U#cchzD{O((Rd$Qju)wbs?2F$4cGoZmqB0XT#PtRCYQTK>{#O9{Z74W(aq#v+>hfamS zX`VH3{BmjZeVG>W6!Hd>M^8e!{Xu9p*@(?{LT!r= zqKxR{NdIvT>N^sLns+3i%!#|v^)~{4ZX?XEmt`W!)V*lrlN_{DsQ}3cnT0$%A^Yw> z8C9g|qS+-+VDsVaF#XwAk#5CKin?0q#pwoY-Zy{tV#6j@u{xE7{Jy{vHr-=62iw^h z{FGU{JYXB&-)057n%RJFH#5%aXM-#HnO4+qHs9k7OB0wpmRG>et;%7>p?OSFlF59l z5}3!}=`8MU6Ft>)oaBTR0s9tRxGf+ZT0B-mN1Uf2rCh<&{wWys1Z_pCpE3}5EA;ZJ z7NOGYOo98_k0w7YM&}wYBhgI>;_Mu1p=Z&cDWz!ilzb$Yb^x^uq@W*-Dd>J{I_g-l z7u~E1Mm7DTkljcVWVgf;J&80z4pc*6?&Z;iv?p-%t~~hb>0Frl_z1XHIS+JQm;`5E zIRc5tX_zr17@A)-gjxxcpwo^L@bRh%kt#8-*>&YG@Qlm``@R{I1z<4!ywjQ985>8h zT5hLzB7$h#jTQ9L)+KbX+ditsZ_>A`-qK@sGHhkrV0P=&OM2bxHnrRLgXTmlvM2h| zY|AV~wli=ji%r#Jg~qQa32LU(7go}M_xbeD+#B?L)QMj5qp0&zC;DHj8(p?-79Hk1nWi^e(#IwRWbW(z zqNRJbi1u10iDX*Rz=yP7;DeVNgi;%z>GOl|uIw>*NjD2_soM+nXQje_F3C_K)~pO05Sw|0kWcof$q}&`H5fXHep~BJ%ZEhK zj-(jsxjTz`8y%%4q5G&^Z9aYZMaU*Z=FoC-m_F3rN=>>K(z-}9`ndNF*6hV*9Vt7+28-CxiAD*pEg*yku z!YkPk&^YlwI3MqZFWh#*LFO^gDl`MGSQiCnzFP{L<_E#*8Gi6!<6L;+i61;W&lb+@ zRf4+7e?Xtk9T09B3uMIyoaQ!!kl#rUh+(H19lXbp$^@;Z+Fp?~;Xwi&6L*S+s8V{= zPE7w9HPD2ePw5v?E0y~Cl%DnfM_Z>$v7MrB`u*`cy5+?qs$D9kIT=Eiq~9^xtD8p8 zwg*zTNPB9p)IpZ*e4Bp%hs358Smb)QTXbt~zDU$}Sp3KFinvX; zL;OZvn`F+RHI6gvMDGHhiH_?T11;liqKdg`wWf`-WSyG~i8!c0TxPuz+m&1p|8>YE ze$AC+_~k5O_ojgy%xogAiVehnTs?^>xlF|UuSme+c5?mPU$QMxjqdrXLaUJpjhB(3 zZ<}6`r=PUxD_a#>ep`_$Xb+I4(92|cSsuA*w}vP_TuA!u#Ny0F4x(%2M?@uYf#5@O z6$q~V1WHzDLRCLac;8bCYHb?|M}3?GuPvSkXK%BBmJ3Yb<42lMw@MrCP*jKG{iWcA z(|>?Q$U~5;-wBSmJ_qqJ`+!oD2l$hv39^i>z_5ekfw7+|kUCH(atRA}o+rNN9G9pm zN>A{n>bV@3ubH^fj zZI?4m`C%$>7n&4lE7J{L?c`Qy6`4BpAnE9sLTWvJidTdti@&(cuWjFdR}^G09DMQ> zfzOT;0WRAO)_&d#;@g73z99!dUREA3ZQTlvsHcL36(_;9+Ib+XKp*rLM}QBb7JyFq zA)r|Qhe%_mL?ls86X_ls1nLeph*H)|oOLT_ivsxx=L5eZoRuO=L{1T6k(Fn>NZp}W zRByZxjEda?c*YKpxjhwJI?qU=k0a)KWo-;dW5`*8uF}#=z|P7tz(4Q_lP2 zdqm^2UW=rTj~02FXo@zJIf=T0R*M>z3EYi7HD4H2H4*2Bc0iQ$ffu%xZT?= z3cuzCF0PIQDh299|HT}U#XVc`mTqZs(NF~DRA`E0v=52A_dOITpBq9RST~A8x@U(OPhp+}OK?$jy96tdz%* zt(9-cn}}?>JZ2ufbZi`v?kFYhL%xvyC3WH{E@z$doJWvZ!yh@9D-D5HM@EqB5*gCc zr~1=Hs_B6mqrT0qHW-e&n6J>F(UF=1_G;7 z0rex~q3JgR_`PZll#%@h%yXj1v*p3HHfvnry)-lUYH2Aj|7Jx_Jv>_5;_(uA1v|oD zZbQir`4ggV^7p}(zc%|$f>6j;h%98KypckN=cGn%8z=uC1n_#eRnAgFh2(6#(aT_H(y6?cM-D5RTot4u7U;6a>UQ4AEfpZ_kk38k^DC}mPWn(1NuY8!ur;yz}0FB-8lX* z{j%vkwO3VwxvQ7J-r>Q}D)JZ&@^oi@_pQ;~*9z!Ep*l;f)Pk9dZ@^Wu0aSa1Cv8pK zN1WytLg}x$FfQaAyu`_+a1_Qj023_!QbH(={~%pUAg zWcj(uNVC!%j;Z@jPcF2OWh+7bc7BjD2YDEpKY!s1Hnb2gCKB zYw6$NSzwm5Eq(s+g?PbzeNyg`Ms4h5khY_^#Bwtl@;+Z0IaNUdi-Z+EY zOS^$ifXzlx#G`s0E4U>HVhy0O7 zy&4|u@0UPmlF*~FG z7dGyZrPE8a&?UEhWc)f=e)iQ>w7l2?t-gPlC9f%D(SB8Ed#fCN)F98#eqBv1_PD|~ zPrsnA$KBX9k2)67sDp*a56be$WyenBvM~$f@$1qd%yd;Lxw$Tpo{yQ&da7Rwcd~f; zC`5)grkA71Lwe9G_>p`Vw2xIbe4)PrXTj$`*3-Sh{a$1>gvb3?OY&DALv+_O`0$1) z3!6HD$$Y9stC26Oy)1`xlZt5mM;UZ!rzX02Z7CgeEu9S&SQ-n5C+OkgtIU^bu@Rfs zAU8iZ+TOg0B`T?*$X3W^7CAut%@EIRTgI+vo)O@dGW0s&BU*8OJWnxsPo)J{zx?E2 zWP8VzyWQFaq$>bk=5NHMCMU7?IRxEXbsuSGUt#0Xc6N#AA|M%xejoXa?$mGR^4}gq z=?%&_Q?&s;evr&s7LVt(2Opthw~UcEubdVo8!_dsS1e9ry5LXmVnwe{GoM&}9FiKz z#yl@z3r%cA(?0<$<2Q+Ej$hC71C{al2x}CcWx}7{??Gif9dKb|3A;Ug7g0<9NLL=x zK^oK5kZiFkzq^{D{qZfRe*mzV3j{Zc(=Rrw9N`VaMF`iFv+uk8S#)|NV*hTUthg8S zw51&Hs#}8Qs|b0nB6+0Kt-~)DBoe(_g5boUi@og~!3VltBK0^O+$?89#Tq-fl=e^9 zW^)w}`Lmi^RY*AQt;g@9UGV0m3;7>`y}bNpJW83AhQekTqIKr4m`{cUGkW7H_|12q z4gU)HRWuH}_vWI%J1SVuaAo#eAqcWpvgnul2>gP6XE#eT_==nataxoIu2o3p88>oR zg5@f#t^Spi?R(E8UYb0$F%$ZQDd8wfE%bDagryES#+D{H;S9$yJmBJ8cx|&5^*q+e zHp3KreaAbtbLnFSd~4A>{ok;@dK$c%qrv-B)bTtQ5n8a|88!HD6CHOoU?mFg;OG_E zSargBZ1hlpf0Mh2dTw~&2FJm?Y3dr@Qjw4HGb@<9#!LE1V3+%D52n$Jx1!`MC7ypU z4!A{pXP-VC!wn9?EL}#8dj@IY!n5AokuPBneMjSI4vPHI@Mh+>?f|me_Y9qSY0U@O zwLnMrKm_MR^LaLG57w&P9%SN`01J$DGK#XmpxGOr|QzG9#o{kaq!j>k90;)e>~ z`6MrCuG?FJl^)vT06SNHzGyFJfBNvkUHe#!-y^Pds~GD~Z=k=K5z2O5&+l0Eu$+Mh zc-o8w{8}#I1DWC2F(wS>jEv>~MhxXUcfLj4D{sLV4P`u1w31gWKzyz^80(B2hgaM0 z;=5EV_zUwU?7v-x>+eY7AB3G>!0m9sds4|fJqFOnpAF1Q<}=!s@}1}!Oy>4Xnxe^F zc=_yproB$kI%_S(OGb^sO4AndVqJgsc+?d7^5Pg=UY*5!ZyaSdhwIS>v!ReL>tTkL zm(WAgex$Cyo^?G;L1WSqS<9Rh^h|RB+7>&6JI`xC^(uQ%;P`ipJ`2FHW2AY|f;3(< zatE$E6pLL?XmI}4li%r##@VgvxY~OLzvH%^4*lJOKA*e8W_YOLZ#LfO5s>A^ucxx8 zQ$lyV;$+62&Bj|MwLtmq23Be}j@^z`LTwFmut&~PJ|eD)Wt1x8m5W^PfuK#Sv z$hR}qUI`1fQ^U>TarhMxYL@oT;Z7@Z&?v!yQJ-@XeQ=n~uBIGdTcuWlINd08ZJ!&` zc@u=Hi{G=Js92t^6N9TFh70a78}1}bP}B^2Q0ku9Xm6Auv!7ywnjqv2(avC>OCoO5 zjYI`=@3Eta|M8C(A3*79h!6fADL4aEd8I#Ntt)%cOSOMOe*7lY%m2x`JuIo_;*aQ> zUOd{TA_p3tw6LKMN?`fM3V8c+Ix=0Z%9J*Tvu_Kpq7@^TqN2V81_H;i%N=@DQ!y95 zd;S;o{`5wL=Vma;ox4Ws$WB|ynr0S~m2Z`VSv+FTw*IAm$Y9i-RxbE| zUsLy|{iOS&6P$MNEV2q)hwc_Uq1v0`=}LEmR(FnOY(p@L9~_R(e~LuYbT#1F1ryn> zi5PX7orL2TTw^kWf{?$}bR^RCW43okL7l)oQ2WbzHYh9!E~-gKn$ee7;g-`*CGs6whtAw^qlUo4Qy^b_dtkeSG8(@_{Q(HnIgyNG@So<_lvOk&x7 zi9MOFijR8h;KQQvOk!V0uQ++bF;|3{xcWzW?S&HBb5y7{@bO?tPA_2H?j*Q-3T1f~ znmoAkJZrYt!`d#LVBeNMVkZoiak&dKxZ-=EgTZz*Km2k!-_tOj*YAM*rm)Kj`LL9I z{a`HYWXAE&e-fC?$;qtesS6us=EEd@6fmgc`sDMciMB%@}IK! zpOG8xY@UY09;xB@Ln7>#;f>+j83JqPfS=B_!(-R(!-~81;|IhAFZlWuDIOe&H@TbR zkzvzu!L3=ieVPt#yg34Y9NvjiJ`!~9&~PmGy9MnW^BoyBD&U$d9sGB~4fNE^1HMdo z4_xOo(dCo3vgMg4nD+N0EKDrT-3){I(f)LvSeU`rXT|Zn>xAzyujjrR&$-^fPrl8v zg)a#E%B$OCB+0VBd1bni#Orb|--VuY-_UCu7hL5>1b6N5>$g#)ykuy6Bq9M#Z?d*0o_V}S&By?lyq9=L^fCpTb+j57R7 zs|ZV(mEx1#dvRjlN?ca65;y%@h%J95;+3ZsV}qrmafHJvOeO=Ne_$m3)w2j6P>8^D zY>csK#sa)8+!1#=Y2x;dF?b;0DEd8e9a?ZH4-D9cv&?BjxF~2U7ic54?y@GoSACR+ zMN>{!74r!}ZQKH=O0KvLmgEH(3oczt$#S*P5{D~3l9SuLBbPHanl8?7myv4c-9oRah0iRC4fu&Bo#LpdH zWBG3#LfvO4j_RwzN7v=y5B6v9&7TE$hH!9bz3{^(R|4>$Em}h8$pD+$xL~t{pXm6s zR`h<}aGZ446+eHl2G>|m#0DBOu%6L2d@v~$-*XDbx5Sh2#jed5)n?*e%e8poq*XZX zw+(iq6a^^spo5zU(pd5e>K9LDO0VU3NzfQR$RmWC=TaVjhw)i5oEPgzOER_8B|3Vh zlJN>Il8^&)B~&3m5_5ftB)oQkB*D%{l0MH?GG9qo5UD)iRmO~)Z#u{8Mz*rCUJKD& z?fvLKCx3k4vjkU%zQ%1M`>=VWl*|3UaxOzPq+EtB)o}5BspR4l{T*Lu>%z0v)M1U| zr9u~mz&JD{;Fz7W@viaXade6%?)6Z?s!~;GhwlND@G2W6Rp+4n4oY}Kg)xp^EQ5D6 z+2J7<)?tIf*?6&gFxIydxaDo(_{m|Re_=u_K0e(Chl&Gmmf9@5xl zuxj}A>oK}4u$1}q4CM;hyZNNk4Z?=Gns2>xnLn=h$=wn)CB51XlD>2U3}?FbxC;OFp0@ETZz=gDUvX^MUo3ILnP^Ywn!Sy9Rg<@Pg~=Z*nJnW{ zS}o_I_fE+r{Drbhb;@9utSvu;Dd0U^T3Ury1*KrAMRW1k`LppoUySt&b?`I0+rqvw z58Zmb5_M>{!)1Bq=(B!08l_*1-v6pWRSHFDt4@uOuM+r$2sQllfHpQ5V}+|@ylL@MVG3Na;~>iM^u&ov)38s@F}$Jw0uIZ&ja#Qa$LF@c!gZ^!;DB%E@P@Ku zc+`+|JY(5*{9;%re)?k$hT}(J?@>?D7^m}Sc+Vm9=gv~3RAq@)E)^m3DQReSc_r$0 z-;4U+1fc1`Zs^LzIP^qOAx*b<~a<}g|~wg`Pv z6Qe`N#b}0d18Q1z8(rxxLi(l=Nbd4)m~-s{-M-$D?Vr1z<;gx^6FiOie-d|Yuwo}K z|8R)Iy0d(8*HzBi?{fpa9^U#`T9QyHCwaI@N%Fx=U846(L2@LpmGkHm{E7E2ZriNF z#}jiFdEXlLEr>^1y$_M>$8mVA|9ZUp?QXp3<3SuzRDxHJI4rQuNq8De#IN$>@f6uW zeCSRP9yKKjkH5SGfAF7%{p_dV7R>K(|5? zkl&~6DEx&8ZT&IZ(6S$6nUsb%^W1LD&b!TJ3So(?RW6f_lpJO2MiMspdA z_~j});NQZ&DZFOeuU}`MB#ez(dW)6)6|~j-6&b@==?b}eI-baM&r10TD1^mul z9y=V7#`n~fFl-!zHAj3w$(!CFo64uCyZRz3>pY9vY%0((&x6P>(GyALI0&<(X+qxS zGwf_T0iSLD23I&0!qC3G&{doa)w`r%_tf{Ivd!y=t@I~y`;I1E5}!`L%)LO@q_k5J zsHZvmpVA?*3amUujcMi%V-d1b1%`4lbDkW;))|H}EWV1uEznjmrHkQDTx3s+uB;%*+46(nBq9aW{jzHeZ52{t5mJ;fx#CX$2?!jDq4- zsqpT@&G4EC!8BnVDBK+Y_BM;?tm zL3%BAlZz$S2(=qQSJdGx6DemaP!QM;?jv<$dXvuX$WTTPcT*QW$;Y9_3BA9>=ME&l8j5AM45fT1qY z;EsJP7?tn`ybh3qAFSlyK&KLv1pEQ_RgVMP%i&;ub+E|5teg}LQKu=Rttp;2n}!rc z(f2WX1ZFj#nqMrTBTki4&v`|3@R1`lEu@yNx-jPZyx>y6=%F*ZgV=^IlTm459ol8&-TNqe^gLb zj1jU@wM6ARY*BH?Xk<|}6b+9wL>3x@(H*^BXs&n{;+P{)wlW+>h%I5x;zOXe^sXS8 z%m62bJr?O=i74k#pjhV&A$!kXAfab6$-?J=%;;M}^yx}cvOS9U9w{Pmjh$rf(Bs4? z;w<^x)+I=L)oJb?2l_)}11*t_p(OYqy%bPG7vFe6hyM9X?~YYqmrRt{*aAJKH(a0#YCv)Tml_y55wrpTo_tb z1>3fl!6hz-p{-IC#9m@(?^p^gdvf9DpZj6r{XOt-SSWmv>kA!AMR3l)??6g<2hiEt zEYh7BAvUVnPU@B461&2F@^y|9b^bSvZo567g45Gz#nJV2s?%m_TNpsY=^FaiKAC16 zN~X(tH&UmCX|%z!nEpLqOqpyIHM?I$`IDpc!}x?*yPYTk(spDeKB2ZWK3VQ ze<$D5j*^`(W{aE?Yr%<(mmp`wXt?deO!%f?3cP0+3l$z`!z=z7(5`teOtjn$n=BKc z+PN4w#4{L96*%d~qc_2U34w6+=jpKSH-NX#nZd~AhH$T|HB4DK1gA6-&Cd#)^8*9!{UXA3{^}#?!L01=M0$ z2$gq_qkqc|P>aQd^j~g1&A3}k<5nG~zU%U+?dro+r>l_Kd*;&185`+8iHNorn^5%e z7`a~LASyBO1Z8V3gN_d>P%<09-*(I4w@t#c>2o@Ct;&SoJ@&%uQ*MwUKzpumQ1(k}nCoQ%Q!st0Mu$^<-yW4H*%Cg@k=-Avt$CiJ4L(sZ^>V zxknF^A#RJwSU)r3{}GXzbZxTH!%z%Q|Elr(-d8)PuDg5Be{(gENmf!T#41;Fp0(FgD8>dKjBQLp2>Z%t8ug z`!@jTfpfsnG6|%r*?_Coav~moZcRaFd+xt0b%brIF+HPUIEs5pS6jCEmYYUVQ(;E2rTF z1){SluS6F<4+mRT`+<>PBf;3md%&yj`M^xA5;)s%uwLpCaIU%tw!F9oWaX{_qsDrW z^zjrZSKbRA90~^S%=AERVu~obZAERwzf!U9*XQESR2vdBZz5^znnMP%f{4yNZ}Qs3 ziwskmN+jKGBx&9l^1}3?IO(OAct?6ctxvDHC`$#4-bU?nwu08<)!!U+UOsEOv*`S0 zr#S(8Yn^7gi9=4diIYP{5v7O-vO21eERCrrE!ExR)~8-F*8exzbyJDX96Xr1&Qql| znsW5|T4`!F{|~wP@d?ST6O(G~VzQEMC-08C3o}?b0;@KO3vSdnU;I-p8aGxCjCte( zDrE|Qfz<`@=)x25YNZ@>?=*y$GX&?jo);XBmqFzZo1xXYNO&)CC%mGx6MnGY0<|>P z!2Z!op?8X)nzJ>AtMDpOZX$Z`UXicy zgK3ea7JX=@MGt@0r$s&r)V=F3v1?SIIu8|S_?JKA&6Xdewe1ag(s748y>^3)&Zp%3 zlp4Ylib+UWHWAfilCe1l$c0HcB<_705$VK{Pt_aArMH{N@l~6NRBHsOpX5WtcPEoE z5ABKf7-zETzB_^1D@cFy5@Nx^N$!NTB-zWG=&9 z1Glq)W6L?P>vRt|=`aL-QyByGnml3L&j6S=AsPm5OM-83Dx7JX3MF5YVZCiUyd;W* z7Xw$ou?IZhpP2FR$vZV@F{}wZFi!)Ld4qvX-)zyEmJMR>qG&aamgUJ?gR(`&w;0$CVXjT2lY03!Ub!+VN?EGs6Ku&Jl>3;)n-q4s@V|^ z`!N!ZIc^KbJhXscEfiq;$9KT?-T~m5J`*$?f&f_ei8klQh^z_?tBYO-il1*S7SG@M zN}L$5kc1ay5!1V8$(mbt$R)4OgtZIY%58ai@wEbFAv&}u$DA6;no$`W18Q&17&3TvaqZME(>o+4k#Ytgb_4@9%JjRZx;5x{o&29S0!6S$@C2Xanl!SJ?x;cROJ zi}c=s?D$V$ztLAvm?jO+Y}bYzvYxZJ-6 zCiI_%e+Tm5=l6Z^gqju_;+zGwtk;6&9}K`0?MzXvQd6yu$tm&3TjxdXD{94FXKcyq z*RRAK9>HXHa~!$ro=^Ip6_FqA6KKlp1o|ocAhlj`g8rOXLQSrg(-%@@G$AvMY9EN9 z`=mG0PDOkA^!)@{`DY6yu`{T);#eBoR!5#JMat81PQ-^2UG@+07a5$&O8Sc6yf+x=pgBM?!K-MuD&gmKe zEB4C3clXl4vz%$Qo8J5sW#4lERdL-S?P>dJdNy=A#~T+A-=Dpt*7`3=itHc9J2Y52O)9F}g-hS8yQAluv$dR*3rJk9}59_0Wxc=m(J7w>@k zr15agtt435F%yDO@z7(TeTiDzR?@`*^Qq_0Bh=mDIPFzVqYqrR&}$Wo>8zXx8r-KuV{3wFLF+2& zHe8V&^1Ca3@8}9ru5^p9Z#ydVWTb=g2vzteXC0JSAA|!nCGf$LOR%Ns7WA1o4nFa0 z1llU=fYh{Ra3T!DC0Y=k){}u7SgiQOf6M5c{2lbj(g(CdX@FKuxeTQ1m{bdq7KjJR{OBCVQzI0HUZUEnVR>2MB zMM6HH6#9O-0@p5?2shVPgD<^aAo^7zxFh{tc!nmBK<(?GYwua2c-oZSTzVO(6$L|D zAP<)B`$;zVy(23o>pH7+$ph0 zN8$CCx2R+Nv7pabbEX_m)&`Ze5z@+M8FG0F`tThj(c&dDSR@{r2shrlyGI-sy& z2WJiqCU$l|#E!KYq78$l!1?y~;L2oII6HMdlosAgCN|f?#g_|UhQmSly;>Q1NC|H5 z+ELOpTj>ZbP6SLo)tgXD>PGLV@xnAW8w z(wn*NBveJ8m~3B9rEDdsv@FC$TopS4mETE$uT*2G_sd*3D8dgWs0*3N&QbKI zZ!zrsC5Ahu9)l0H5@G)OI_JY{+CjWU96jHDlV+?n0^SP$pzjDp`uM>_Xz98Pg_K&t z9m+qcg7+#qbY=xi*q2Q&>`S5+$(8VRw+{8ZRZrK~-x6Uo1uBi-Q)_!y9^M;G>B}Na zvn|_TTbvfV5p{+}wq6$Ul1b2fqd6V1Wd{7FQ4jkzc9P!-6X?-LTWQwXv2aJ?E|UIn zr8qXb53DY`4d0wS3bX1{>67hmY5xUd`m7Sbm$g%AdE8@oHnkCU4eh0`9R~|u=E3y% zODpPg*#TY&Y=?6PPKga8Gr?uiO;JmODcdo~m3i0SCkgAm)J~l<8YV7!2OsB_!aV3g zhigQ`aaT^kyg(rb?Y#&_uG~-NeY-~6ZX>dxrv-NOEdw*kUy`g&A!RgbCA@!f7u;j~ z3eJ$kz=X5w=>1huP)mFp8lJo>E||3*`X2KIUmcCMMEN^kWu$OWgdIP+b{c*b4%(mW%Ese6Mnpi65V;GM#T0r-8UA*6FOITkG~w8e~#2Ei&}V zjI*>^t|E4?JHm4oenBNo9OIn3RY;Y*QbSX73aIBX9d%ysoGt7>P1gT~v6GkAg2!X#Z?~RJc-f+|(id{v=Bv^{|0S`zk2fs~znD-pZ8xb;Wm$9=%d@U~)kT%M{iY>t zX5sgTm8esKBUJvIN0w@$BB<(DGw0L(a$e=1d%Weip{{%SAHCes3XfXHb8fA?z$w=5 zs{8%lPGnK)hYlKC=Cvl@=ef$+atg((cnJfad6oMNaN^5_SoM?!IwT;7?AuiE@hD|F zNNqYK_#j6G^oBCSfX9tDiFPYNu?f-8id6iK``3FugP2dDw-O;&_*57QNa@^ zm3DrUOZ`4HO|^ONp{RGoyk}|_IL>VrZ@kK!n$1~-&o=7go2vEny9g2NG4BuUxcdlN znU;zy+@h$6Y6D6$WFAsjQN(#ZyPm#4GgM@7W!;qn$CPdEW6tP-MX37rX{xk41`Ec| zq`cp!Asx3n^pl_@>^ZTE?!L;_vnGG(3xWk41tDoPr!^EUuZZIq1pS~3Z=ax}9O60M zddhfAH3F+N|DXc$I(gnx71*a=1D`FB<;)cRN_X5(r0rj^eIk}+eE6a@@?Lg|s&z`O z-Ot3(4i^$>hhc9jM(Qs$bXpyWd^jCsB7? zRUKXG4MW#6y(sGvd3ryS`Vf_&unutwKsrA3J+1_(2s=F(V#-vZuT}%!AV%=gKeJlaPuseQt zVl|$dp-3ACWznl6g6P3Z9wca6$}7Hd-YS%`Z*?(L7$VDS z?RZO@?bG7yJ2-BU{==BA8dRW0oX0sramVPN-Tt&|WFoDM@6nczl6m7Ds}UW?hZf!7 zqr4t`quP$m$MyM3@wAdIC7@Hnlldt|d*7qztw+}50}=vQ`ZYf`yPSbPw!7mweo1r_ z|2~c`|4Hi1f{#>{%nnpJupGUUlI9tnoki96tfHK{Q#rPSekknR1+=Qs8TE^9L@Azb z)NZdC_`d0F+Q)H_?&oS^)62rx@#Ydb{9X{xF7_)&?om8vAZ;UOvN(Y!wR(#8wy}!( z>?%P&QW;|j&F-klU^UOcd!%l_SdW?x8|7Uxw4!~3XzICNBXxd6iepzYM9o%qr=k+I zsZ6b0O3-crW%c~5BQ(K7Yg(74y7in_FEI1{m`d0e{Hdm|+v!QyRE|yB zb1L{>6a8E%7T?&Ti+M-C(eC>sar2!qdeOc~x@^ZadT|aPZ5LQXZ5kY<^dg*57qbAZ zD&EA=d?ZAj?tR3wHZ#FH?kZxRU{iYKFA@Cd+&wzsxpiItfHyjPH3Rkj)JLJy@+jcJ zcFJ$<2rcW_fQRO?bBd?e;_^sw-20KeXB;e$%&BFl@tPX--9-iU{9Z-LN6f&Y>cV)d zOcl*Y&B5PYW$;cdnl>5K!70hLbbXlseeT^i&J54ZC@hUa`>q>OPTL+*1*0!1o|Fe2 z#$ASg?hvL!md8-OeIB&Jyd=s?b{Fc=c0rr^ep5#eouqQjrKmwR^WLz`0Y{Y|zzX-Y zC`H~mi^ZC&=%fRztK+>G<$kAzcjB86rE*dmP1Gybxplsz>usj!GrwABW2X8RvU z=z0FHIcp!z;w3#EpcR~JIH$kQL0uI`sSP2<^upSY)Rz){RII#!+M2b9*$c}CvdC97kWda zD7}9BNnCYcJ?<8>rmcTVVYF8t|JL)Pls*I6d-f%zwuPpyg-%oUBhRSHLUF3d$%;4p zyO?u`C{pU%`e=K7VZ48X2_?TVp>ASzHmyCaM0pj}bMS;WEfz3`Y9DOil?pATPu0)j z{Th7BnNeLu>GWKqmj9SZxl|-@X1)PGpeBRTSTD0Cina4MzOWNG6FW;K4( z%AsBIJUI7pKIQ4`NL`xW%WJx)M3<`@(=RD$+C7&?ZPDzeLSK1sB$g_o5g!30v6;tP zn$TWXXI8*d-L{SHT>Xzdf0XboF-`iVWInC!(@4)huf*%)1XIsnYf`h9T%&5?E_GH# zgPICDz$<-cMW=0v<;28R^C0RuFGOvS>dY}i3(c1yr-RwZU`Zl!n*2u{v|Nu!*g{k{ zD}#4sT@)GK^ z+;g~s=1hv<8=IG7kM+y3vSW z@X(MvW`r3|ocV<1hj(|Wr|-RysA~+Ww^)HhcgUb{$J3PgnJJ$4w|{lY=CwS}s!;m& znUuN(37XVG+iH$nu?8hIq=Y6LzHydJr*XWNo}lXp9;ygHTMvXbNPi{%v$lzrknp6x$=;+ixKSwR{tZ-;_6kj``i)8w z_}Q8JkErd#6||>u7aG2{44Fr*g6b8S&Rml5RJ9@6(f&x5C(S-3mbboFovX9+^PWhcc z%lDo@34)i9WlbbHuWW!Eddv~r+>Pp+=b=EuD#`)x;E1~4q6@3l@fThmzOb(a54bB6 zVGBEAt-P7|7aSmuZe@_D`FSKGyODGhXPF1Eje7@v@>PRV!6i8O_Y{~p;iS+W2q;|+#oIT6 zaw^NYE#C&JmD}Kx!9jTNYa_g_@qv-PWAOE1065>-3WbkYp7E8faBTltIJ3qDG(K=) zf@R-!B^kqC5jCKeDnQU-6}Y``CVYB5f&`DYqddzz^if(2S=8O7saMDFh*TRs=Ac7X zZ1*D2x{st9o+Y<7-yjJEJkpp~M+)+5NTUKnZvAQ@ulZ>blix%VxGzbY{s+<&B+67+ zYciWvbeY}pW{gdWNC0+;!esc#8 zcL%V_T?4vu;qd(+%LlGs58>nCaAa;gSSGoE;a)dLmRJPO=T@VL_yTk>`~Y&;S4Mrd zG-S`tBwBdF9Jgrh#(&Se!UkqC+r z3CEGzE?+EmsRr%%9uN9QAArc)KOnPMnR|p~Yn}@J3t?UFA+MzoEM?Q-$-*@(=eZkg z?sGwV%1$7wi~w}J))&c)Uq!8Fo>~b72z}&-$OLn++iwf^f4G87>tP6Z8VMff!ysKP0=}CE!;`)Q z$ZSc5*Y-!@;m6Z3o}2-G{;S|kr~`}_8AFi_`!XwDly=L2Je{=;kgL5 z^eVwe>K$5JJp%^3FCy_4an!J7sIK)%B+gF^!)J{BvB!7~zUkG54~viBZa#KrO7TCu z!$zFkXt5z754I9XqX07eCXTdZC6l`zm&pyM4r2Ucn&{3|V-7g5OyCN4#;rGyxuY1u ztP9)7WYt+(t^F_EdeGfoV z;t=@rnZvWb*}z*Ih2EFt^WGbG@M1<&X$4Cc{KSb5`?{vn={Abk(eEq$&-NAP>XUb=?w#)@_8pCtW~XS09!+Nx-|6H2SNNgoa;- zQ~Ghw>ARnu=!L8kMDs`sE|Dr`9bUuOQ}`~nl}o|N&Xai76Jhf8=r=s}T%NSmnvljY zdopY99x~jTLh9_Q$+*-@Qp56tTO)Lt?QUzB3B^5($eI}DXJ;&vTj<4%rC2aBagvN; z<_01c`w`*pO4#En#r4)*$lZU-kUP6bmz%kEHrL_yUpNua0xk+ip}S)@{H->DQ!a1W zp7t5~j&}q9n-A)Z3an*k|Wa%&LmASi%97A zl0rTi=H3wl#$L>hnNZ!yC`3dvwz4OgMWP|hs<<`G^A0^mo>NHjk8mizeouIFjh}l) zOOKlnYs586Ud(-YM4j7WBg;K=YYIk=<-*dsWXPK93-9xCQL5ipYG79o7Cye2$nozY z`b+l{kFy>m?fwhAC^{AY>D-RihHeFCOFuCC5C`se;$XqF12ou5&f^Cl*$ox?bF&S3b3f8*RUig5MqYnCl(z!lx5$-Q}f0oV7k z7FTl7H?S&w0bSoKK`qn`5<^x(q|#p`&@Mq8b6bxcW$lTKR3d3ReS}8K0~N^-u#EPHO=_NydDse8#`}U>W-9cW=D@+*m*MZ4D#*00gu%#U z2zT2KNyS>Qs*8h=)tK9VQD*6!K z-~Je%y30@W|XC+3z^Y1MnFK0QA#jkI6Z5b;Id;(U`G=3 zE0pD>YXbA}t}J7+E0WAqh(;6lPC{}0Fud{-;O;sm&7G{2=GL0Lhey%>;LD=lkhiWH zPR+=JvrCu5<#<=*+L?;K&tmt~-ybBem-&zbZ4o4K`2c>CJ?xPHgvY> z!$Lh{s8H61RNiqo`X_^Zmt2Hzl?>FnR)Nh(0eJk5g~kvr47bk!$G~P(-69Key9{9H z@)F2c8wiFKTR@hX3kTBVApC+dBrTZ_qV}4gWN!%CcWt1~+5oV!6nwhELqU&bqZ?nw z>8FB)_=c`N{+xf4&c9Sb$7FgU5!c(4W`!Ph&=$jEPuSW1;X#~rLz&#^SV}&wpG)>~ zjEMXxYcg!Kodmg8k@(b6ViPc%2^=$Iw#?u%Z8jSjjhYaq>Tfu+DA$*n>yH@PMv-Y1 z&nG`m8P`o7v<0Q`ei&?$<+esEaf@CWa2JlMbMIeK;GVuK&h3467c^?m!PBcIFtXTc!5!?Wn33)H%V!S)wNpjn|D zM)zI;O{o%yiEMy<4XJQdIRNgyv4W3}t|7r|KhdK%lJLpB2yq3c(72ZtY>PFAnQI-v z;WY>TnJs}tUsFgA(uY6p9`N(jcDMp2?Eb|Z@G+VJYVzmMnw)Ox0sQ3s4&F(p3qGf= zB}yYV5qpY1w3q7p`iwVJbrG8!slckdUOY#Qk0=}%#X|R*@$H`l*zSc8F+RV6oDohV zIHZvj&-q32{M4BsO>5?iuPbAH+ndS#8O1b*r7@NtVi{hw7xUzu857p`g7xPztS^g# z>WO<0eMF4=eWNb7j56ZR`%j(g_FIdqe@2lzH(?0c+^>P5p)1UmPC?t7ldx__2#Iru zCHo_N$gino#PQ)he9y%L|LQK~^?oQuv7f&q)4Zi1xy2J+xCFq>M^_-jvK>0Q+ac~# z8|^EW96=@7Dx^~c>hM?qxIH(y1*9X?#ZvC8(Rtgi1v=4_T_ z9o|gm`bS|+BR4E@Xf1x{OmI)m1KdA)4qFIa#$`h<@TvuxM8NSFQS_)K<>&qqnO1ei z91NL=l9dc6Z5NX;ewg{)mcVds#4wM~ZDjVnUCLMud?a&^7?4@(^U>1zG@x00+|an0 z+zw$aZtM?bZkVPTx3gWHyS(Htyczlriayur_J0 z5hYmc1~xt)jo*7Mp<_3*)o%v1Y7MDOe*S{Gj;r~DESe$fQqOQ+$EyEJ#|xhnT# zs3y1TyF525M}hl{Hw{1guR>HzBs3LoMw@OH!p8 z6~Y&fJm@^@3-&ua!Tp&#v|KWPk-tl!Yhoch61M~E+-Tr9y28%T84$3m0_`&0jaH9w zkn7Yz>c+!*N^&R#{TRQ98f}x2^YVPE&xO5@mtV(vYddhn&wPAubP;~LApoDLGR6Jz z*;p$}f|xD&iT!Q$h?aIR$2unQ)Il4@PjwTc-yY7)>`rF> z3y5L-ANep}V^=WMM1lF{dY>%5z(*F$mVoe%7--%00tUA$azCw9=RVFb;;uem!foBE z%2o9g1e|Z%jZ%`!(;mgS3L^aZpFHOWG77)+8W-Piv z486!^eFxP)kaA-n1Pz>ppFwVvceN{#(Hepyd0?+GIl*DFcm@r{KHZZA8QH;*u8Aez(h4D&=WFBta z%%GqJjEBMmVHCC#Yw1b)RN!Y+m~a)06b2yJONs05Zo{=srntSamfZ0%ZLW>`KhPu$ zczxdw%cW++KBoqx9Q>O%R6dRW98(~@SLcv;TMu%xXEQnPv5;M5O~a=a3!#A$f28G# z(H?ppXk7J%o`1QJcLYPh+y=Pvsu%9v{{lA}>)~cy0c=-&0L7orfzeG*NJxr>txelu zXypOu`sof&AMu0vy16j2_zlXul#j4>F={foh2G13M)Nk7pcT7=(KRz;--cRFr4o`&E54#OvmQgF}l7F@6P0e1`ulg-jL z#Q5Pk68Q5DIneWxT+EebjF36g`oe|rS`fgD-brM7%i@^09B*b;?+WJE&Lzyn8WBd` zCx*oP9m7TZIY|C;2rO5-4@2tWT+>gQ+{FPp+^s5x+&fNMT)UMsxYxgo!e6;&&~S-` zMGq=1n|-m=ECJ&4QJx5Tc#xx?e8|_wBE;6Ob-OF`T}>m-h%RvI#{EV1H*qWfa|df@Mc~-*qB6t ztF<@Wx%wKJ=@z5i-FI1TO*Z;?)C7fXDx^dd7ocdLtw?#&h8np1lqN5QaI$7Jo#``4 zrv=p0%T5Z>_8KL)tZWj0tt`bqYsc_6(fMS#?`-lVLXHG+5$XLNPo%D0AO&Kqdg$jk z@iY--3VAZjiS4?~-}<$T`-g)}yh#w_X5hiRJ-(dTx5r!Kd3%kdf>TqYK%) za#1pE7h{T}HM{Y4Y(b3QBhslu)}EQu`u7 z+AkY^TuKAKxlK?ZDZu@w^BeX{_CiHnGboG`Z< zZ^KDE!QF_@>r~>HP$}|)W$hM*PvA7YW#o@uI0-GxAr*(NkPyE&7A*= zRPe22{yBOud&7d66JZCL7PoE8*&|lWEDcE}F5w1gS{g_;jHF`Izw9pa3K=-R>^i(l z;pcArCCi(d=DY+|G`b4ZcrX8hGPMd;D68xt|%TwWwPgR zt?@6cAtFQaj%kt3w;E)5?;kAi>=E8G_6$c2yu*10v3RG@T$HIU3}ep@fzS&KO*#Xh zaAy$SWxR&{8Qsvye$8WjYzO52LXGcF*ctc|Cauyz!)rDBuHwRhjCLeHl#T>TGtm3b zQRqwXQOe398fUN$)_c!cF0oSsez`sr$0IW=GU|vEP%&GN6k_+_f7o%e92s?2Bbm;t z$c>$BPNODHKD;tnNe=wdU0;(JymWb zTl@VSmg4Tp{|C(Q2+UV|4N~_T;C6NfT;37I{_e(5+?9h?)a{@oRHE>SbN^xfod59A zk6rlRxDaVf5-0nsI`Dy^Q+TEA0h+1yMPn=ZA_}7y_`Y z^#*)pMIb)^s{zl5@5a)Wud(pp7pyESOa>J{V$TyZ$sjT%Q|a?a!we&$tKdfF*06Qj zhIAsoE{#+jDklpJyU2f1qohyn4-tGP$=J@)WDa*xOsuUK8VZwM-yw9iRjek1}Dy=nL3m_7P<3Sk{%@6cBYG?xE}QT=_8- z?#pe$+&j*1;nuc6Aa@9i&hZ6j{-waUiNUvjeW>X8Wz?fOoA);=A9GmtRdiQBe%tX0 zAGDMt{Ha@UbNe{2({C#s@<0#Gc{zkQ!V}1JcnN&{R{}+Id*S4}X26?jA*1;bRPOA7 z`~_{WrT#HARM)`|r82l7Q2~eJ4uD$A6jHyNh&1o9Y>$w3sx2YGV!rl#IvC=x&UY>TUh@|X8GTEO_ zsn;ROv1EAmpcp=UdI9^K`MHvgzo2E^A8;KND_**b(yz z1hPAzqOBbqI?5p7Y%sKpn#0Q>LC70yKpUSfK|6U9w79S_)?+(bc z8X%kEpk&A%B!+xIzjigO`7n-lMO{RL`_H38Q&*_&t4jEsXdM2@smH_1W|LPJ&B>F; zx-CbnsBYpN*+VRc z#>nK4S&WOD0<+mwhcVCMl zir0X>`W{&HNETMq#ejh3Ly)s+f&%r2ko)!-q-M6m^2|E;&a}X*#!hH%y9Un%Vj#IH z5FD08!>>zL&|k?z51#HvZ_Q_;zKbzbe%>bZu;mhUdw4Fco2`d0d-hp0w`rqYKa|lX zxkTi!;R5SieSw++xsb=YF2YwE0lm)|u8l?mzr!)8`w;}er(@ujMhH~ z806mkLC3~h(d_xR5vO@In&|vXpDr=P-Y#aCFQE~iQ{X3WEYtD&wi-Os!IlJ_Ttp(i z&nK2fh+N;dg|yAHCVczkiSVIlQtp&Pc8w(xPpv!>lUqgZN_LPUpU=c->nBo~(nn?& zjgzj=V`PCz3ki^XMrher#Pw4>p-CngyAwv5t}Y{WXY28;cxUY9?t{Y}O^|zg4?46) z49*++!g_&IptiOMT;G?%p*xvip;`wylB_q=q!40r3qaKKCOnnTf!htopmcK#9Mf6{ zDnd&j$7UV`uV-_XiYfH=ESuxC?LZ4J*BB9TwC$>G*FWKjDpIoF#)OvP)+ z7nN4xVY8D|e6%A+o+Xh6CY`jUix9rXa_o|ok4u!FP-LK=(u|0q{9ivq&-FI|SA8LD zcx(tOj%|e5%VJ0t%bbykxIu7XQ;(o;4dlI~LSA&gs z25QFhp|iIhPOUx-diT^}_x@v$s!hYY3k7gPN)EWby6|uy6T*-0gZtYRAaA1|;HE8L zyZ1ACJ^KafYt{sd`RX9W^dtG;Ur1JD4#+jmfUL*6(Mx?{urK(H=J*Yxeg8hAOC#ZE z!DTs6`lSfM&lF(E)H`bI8jl)q*aU{+Mlf%8CiZ)Bl@@4sgzMX$pozT$SXM`c%+z>; z&aheBoV?RGv^j=+RQZMt+3@t?Nd+SHqn4O$`Ht7oFVVKcY`t$WM4l;{lT}S3;CpB% z@!j!}oCQasf20i0Nxeo)E857{jwWJeq)Lp~kJ&PwC?kI3D%rnX9N(_kMA8iU$l(*K zNlS_gr&kH#4?gi^d;V*@#7+ZD6>sxYxAT#$2Ua7o!Bg;Pzbx=AxrvHzO2M6&vmo;% z5&q@AMx#oO;Fok8bgm|Vk){-UoofodiRVE#GYnD=cAzCw%b@qk2}pct4X?Pjk>Dl) zkTpCAR#gwshAm$?VIn&qpq&eQ`J^#1KZB%FSpU`W&8SyV7C)S-N5x`+@L5G4Ez3*6 zOO`aC5?dK~&_9Zbd~)%zgb3cAsv#uZeF+(6U&6srW<=?9KiVd)0S)cpB(gP$Nas?} zVq-|ZNiHH>i*q#HDHcK zc=aaue!hpw>`t;g4K1K#qR^SvYse{cJ@{PaLqV}8sGh{TsP6{5=(}t)?9y|@(S>|C zp6%&x6yISvv#x^LR+fj%%G&Y6`d4_zGY6=#X+ysy8i`jEhoEN|)N=4=vD+(u3wki=(_wvvuzSINFl{Lr?w+l+d%4thA3O&C)CjX4NWm)o~yB+_;E@EGxu; zYu?j~J}e*`1r3OnX$gMuY%PgmnP(S9<%qDVG;X|fi(CtRj*~pk;Kxsz$Xso2GGXJ2 z)pUKy-L=`|lFNP4NAKeaNBzR_VfTq<-w$l(xDE$i;1cz>op|X7b@KFi6}@aS7k{ui zghUGOVWrq|JfN@voEm-c(w9m2>Aof~Ox1#~J=6Ggt_kUuuc%^e2t1BG zjD8$i1)tUW0X$YB^6f8G^6?H8eaad>%A29n$@-{r$vdQydXUb(=7^GtM4)my8Qbd2 z#?yMgsNJ99(0@@j*l}zU3r#8D%6IDE>BXK=)v9FD?FUvFFhwRG$7>e&XOrE(2T&Ij zkW8!h_Psuc#uSUWrCmY7V>lKYG$#~bjR<8$$qYw5Tt ze?Bzj&wzz!9ie<5(o5jS zmkUV3@E*D%<#D(Uovu8=Y~gvM8M8R5&mOcMNhJR;k3+oFeBs&Qs4FjNB^`Z4kP1e z$&(-mytX=3HPfvz?NnO zCPK=X@$SljwQ(&V7&cC}SWdHE#7U&J;v6`=a{SR<%u{$zPtV#5uRUlgv1tkJ=Af~zi)UHJ!)6F-~^ONSV zyFG(i?|BNis~Um!&BdKVd3YOV4`}V@LA0y|nD1~Qen&3jpyYP=XMPqca1v1)KS@zh zy)f^GDpB2Vg;=FMg~a+((3zD@f-auJ4_q&!^eyZYr>~WsQ+^x$?8%{wI{BE9gp+Wt zJ^&i{g9+dBGvuarKAv~64f+e%zT97bmO)jE&zvkJ&yEXV!Rf1X$eK7b{ilGe zbm<{#{T3jUycHe&SxFoPn#tkEr$AaMj6BQCBZqg#5NjJDkbH6;?=N~z62k1r-Zu)+ zr7DYVdN-3996;ame&L=ol!PVkCd1;P$8mb<-&@%bgc(X#q=V6?v#pXoS8 z8jPag^kqM&&g`Iz^`pphMGrh-od!la;VApVcCtIohO9h$8eD8yN7cdAL}tZBVrXmz zv*($Cy>~M4{CA2Zn{5KCz742H={2btmmnURmT>Kn1zxl5DG~TOgaZQwS^nB$bat$e z=={hd#K?m5eW*hEZ2;&%;7Z1V7fPCl~LOa^nA(19SWuIZ!T2 zj+*Mj7j0!Y5dRmy(oH1JGlM~0Z9Dj_{SUeSIZgY!ija`F3bf?oXDG~Zhl}kqh||J& zJbw{}8|&`FJLjd;(WSch@}MS!x1ED8ZZT-$Tp0SIb{&!reMc)Be_~06C0Jl>2dpG9 z>^xix-s`;(kHyS|>?8cpy=p!@4T?u)_g>-}hsAVoZ4_)d^AHs$7?D*4d?3745H$Ju z$VR<-S}Yq$c|83E~LVOc}2KU?mS7kFpUG}M!=q>{aBXGZlW%# zQzju=xZoN?)+ejt2VZuh&v7HTak7jkFNq|(IhW9fsjJv$e?B=Emq0e|(ZluL@g&1` z8@3(EC#S^O8oWLpA676YVGsY{vwFFtPeccI3!g=~WFC2cG?Umny0Crug`i=@B}qqW zarmd%(9x?5t_}Op;GAcOiQA5bn--zX7i=L_H5yj*%0WSl03_V)eV@9_q zqq-SnZQ&d2@%^R!%F0m{tEr@jRv)X`KZg!0N`Q)1g=zp-C3e=-Af1kS!N3jn@_`J z>P%GS{uHJDu17a#PN17wP7wUF4=sP{hTKEM;K2;mbM@~pTbsn7>$x}4Uprv+mqJvb z^h30MktkU+)f22QD2T zZe_EX*@66IH#^1Je&i88ctwM0yvfI0?I=gs@eA@W79c+l{~%#g0%Z7r3sUr74L`%m z@y_)-@vBS<7QZ&)RmC!N(;Xr3I{Xy2v(8ZCu6T~ao0WKx-%VJ%Y!V7?gu~@H9NrgXt^0JtGV1mfH+7!HTrYW(C zup$}_56JQIvn0*5kc5A@LnfzKxAx5fvMcEYDWs-Jb$JK*d#j#sjMB;ZwoLMIIGmhl z5+bAN{aDRv0*4HUkn+K&)KZT(XhB^TdOFlZ(QN;AZ`^S()@N(A(j#m}7Z2H+wQ1DJuC=TQ_Cbb&R?upE6n+@(KwnB_@V_;S zVWaYUBs$~)vzkoM!a0*QSwZsAQE@mlE}UGC#^L$WF#b!oP1SE0%`}ymEt0@@_PdLH1h`O*Bv9nX)?^rhclTf zr+egbX()MZcY=IqK24T8XA^KuAnmS;$qLgZRJh;(`sI8YXRh?2pRdydPjzi*lFfh~ zuR5sHKLqI;%)xJ6D5TZ*!b`b(aCW2uW=_ShdAtdX*GS-c(_cua z>L_fu^a=^iUI#Af$uRR~Kh(xw2A!={V4rpe1_GMEBkU&hWEX+8Wg`^6seq3=)`8Qm zzi96kAGmuz9)b<*!GHKaG?Ld%owF3j$$ws3jJZgFz)KpHK3jo%RA%Cf)6x*1W(>cC z?{i-BdO0)1oWMd;8ZwXkKzbLgpzVPbAT=*&3D<_>{XbCsoL;nVj~cA5QvgZT709f4 zA)R$Z2);a3M4>5tSgK5eB#1ub$e;B@CCz+9GbED~x~(NV3qGjGDCsQ=O&D=s7QDP?|a;)Hg|Nl?%wVWyypqnMJO@JxyL`+mVuq zEmY-Z6=?n}3k$CAg){f7;C9M&s9li(6AzyNIWNXtk@y0ptMftD4uf#1Fjqrr61?*n zFc|ZJU?mF(XMQ1*5q@Zu*bRMRUNCQZ5S3+C;JE=!IQijA+U!0*=VC)5u9*FXlfS(N zea*Z=T@lai1cq%Knk?6|BO~%a5BnKwP-H}nXS7qkO^^?TdJEYt;owQ`H zCksTBiA$vmHkV9CT6&9MQ&1Afvwwp?^bF=b9tNuxe(t69rPHe!pxr_44a7lW07tq20&c~vmz z*aLfWdq8C0Usyd;g%gie;@pj;xF>h}Ap55r=e_VB+`m}~lOF7XkDcML$kq!EHRwU! zzZc}%i58N1QG;A|Gv~V>uF_i#;q>&{RAJC@N&4d#pZ6>u5Hc(eR3y!U{fn(*fp~58qE*8eXr%OxV(i~G5pCJx^r`#kT zJEO_KBo#8a%z(@)VS+{302OFJA2DHP;GU z@$nqS?W{-n`fi+kPnIbR7_u&B8MZA~-cDr*h6!)?l(ZL~aBWueX;zOBU7j{XB% z`0taH$wm0OGXr!K&B6SrJ#kvwQ#WRdHvKWej!I3}rp1qT3)SMAg@dsrRGD?s$>yDO zLh&NH?e{1$(_IA82Ke~`9f77hz@Zfrz-$_?!z}OswTyV!R<#$*+~Z-T=VDkmYZmAQ zje+jVEoA&t{w$j?nW(vx34X;LsFUqhq+LqEbkM(vhC67YFwhF$yqu0oC#T}esiv4& zI0?P$W3kx23g4Y?M(cNPv2v0qlY64XG=Gm~qqTwMMf$R=p;gSqVi9{IVaY6bzsWeg ztH|<#&}8rxC2CWs?Zf$GcJX9Le{%@-ZG8ndt(3Savqp2Kg~r?lF+l`i z$Z@Jh5?oN}EBK(rKk5tl@b%7ou=IOP{;)}8b?c2fo3MHGK#mDL;I&QY*<)N+KHXUO zOz)5|TYpgaHf*o(DL0bHFKi_?vHEcE+$7MkbcDW@UZC=F6Xc}t0?pKDSpCKw?5|tF z1T9<0aO1%FkQ1cjOaPsxkHnhiua9+VwLfxvuW*!pp74pqLLpb(DV&~MK&xMgq2n7< zyf@PogD(W*x6;j6H#-Brrd4C8_!F#g>BS$|&15!HE6-;*XdVxKE|Jw8)h#%#%80$me zv26k@TD}HiHqC;Y1IA!4KTJ-$d>|2}e@M~rKhi2i$($Xsgqvd^e5@Zp9rHHP*NrkX zKx015+w+HN=Ub!XKR2A8<%eIshhj_CMvQmP#PjPYCiHaRYKI@_Vy?stjEvb@0xbO9 zV#a+4XYrN)v5E&A3+Yr~ratHK`5zmcQc}QT(q1?< zDgvgpE`Z<;cX&64*N-v?EU>eKweq9j=#0liHzbLy@LohV9(W)a9+_D8!|9ALDJPZ= zbib#CR>Smbcn4KJJVbYYR>3}FGqgDDjV~8(M{T`W4AR+)qlb=S*NB_AR`Vz3?a^gT z5>wcmeY4pQU4OR7AdD@H_F;n;Oqt}bS6Fv05aU8`2$Q=riQ2c*#JN}!^4y}~U;G_d zJYI!!sF}pA=a&S#j#_ik4%(cr?GV(q+yaS&D)^;(7{+jzEFMjG03RX8qAkDPH_M+~m7B`3B{Bx?db3J$vz67N_$cy6-?mdri? zc?rdE=0GwmpX3I7BNFT{nhRIWmctnBNcgq>KZq|jfjND}gxh~xu<3e${jTX3g{wh< zs=idGZ9n4Zo%PqLF<(}anvk6I+57_ov$0&d<}~issmYw4-zYA6k~qiJGN_hF1xd0Qw2u41GQaWA<^Pu`oV-e; zw{!_|c4Y89N(wmcz7^gTu}1GdFR5yrS>3+LC&;`fe@SGX82HU?BG*lillSBoX$lX7 z^#1+eVo?tDmn*^W%0Xyyi00?g=@8qb4=1YBK}*sAn(wHA%kFA2?xzG1X}WAb=W(}C z+BSiXOHQWaUq#T#HRW{d*Y|Yt&=AdAq&C1Bk(1`5kZLE3Lo=&d?W zMoGpKHJ%kDZ?lFjuOFm_Gfi=vsX5*q{h3BAR;4Y=QpkPY?>(x13FKd#2p{Z~AmTOe z&GHX|g7-;K9(o*H#m_>?-)txmcLdWnT|{qdAQ|E1L~fZKBS~}45{H{fD4(7x;Gl#NHeEFlEK5(20C2y;s-H}16 zatXAq-3Mp+`=`0}Ao#|P3+euZF$0U zU4N>w&XuzML7{j17~z&$6@jL?D3NGMBgX0dB=x*4L~Mb%!@ro=L${$#Puc(u_p0AEO%-SXaLh ziz^1Us@;?ICI>KFw1o9doyA%oXtC{)XVG%T5gO7u1y;#iJuuuPDS3RSD{la4+H_LkA}^n) z16GkTiJf$CXIAm6*l9jTb?m4g(^eSIq;5CiE8erUN?e2Yi&Q|wfgU)qU6c#jAjRF# zmgk@^P_QOaWtJI z5G9YwUlV=aCvpDf43O?w16GxM)_YtXbT03L{eGfcl!g>%zVsKAUTB6;-UnZ{)eW{9 zs6xYtUUI1OHBor-j=ZnAN|s$%LXscm+3Tr&5Q;xgp;=|Kg-#LOg1XBG$bBOz5Fh3< zS~(6NS7rspG19Ol{~&q3CR-4kJ(lL!-KOWPM_~CPd;Fob7I)Y3d#+38aa+>^Y+3vX zEr-O}z+Mg3nKYhtJ)X;?%vZ5q>1`}5Jd!QEHjk+rD>Ivhc)sYwoQ&AE7j{M5f)0ll z5SIG}M&Ia$sHGpET;ns$)$Qi94=pg}Qz@v(1;Wos=ZWb!B}z>+F?Z=2eC(Erab!Cl zd@u^X?Vm`~?r$S{^@<>?N8tN5ALy=M3+9{mz~%NM(5jB0ta}fP{2sujW%r;}vJv7k zs^PJ2A?%(R4LjEWT=oeUqSb&P0@aAj5?zwysZ9FSoJdDo0ol{{ zoNyVM&>uJr-hSesZw;S4o7qJ=t1ZY#Z58_c>K8gV;DQa`Q*o2qX%u@)@qF-ATrlk( z{$ACAEA9T^2UQKW$zuYmp61TpJN(D|)~;s{l9#iw+Z#R0jttJ zkaASvQsNc4DJ4TNO05ZIFRz5fe~-b4T}PpfD}j6UDX@Q+J=E$J6XOq6LZ3-(bjAy9 zyx?kpc`Fq#=q=KR*=fRcA-jlD`3P9S1;FIM-O#r;2O2VpK)?1F7>=oik6{e9^<9Bg zI~g1-tpSJ42cboKI}GSr!0?{Sq%C|b*|mJ6K=o%_otWooyOngKpzwnc(e*7NgZKXa zA4d&}VmzV#*9tiDaXxhOxeA@G7er}z3%OQYBDkdcK)B)c5$Zf$4qFa5;vMZAsR-Tb)(8j%6bk37D&v7Zca~k8LXckBRpzV3SHlvHZQY zc*;42-nSyKFs~N$#`l7i#6P%K_8S7=6{x8`Kte6k_o72GHZ6&<8a+&va zG(hgCbCA||7(Ome1NV0^ymk@_ALCa*-48#ws^J7TL{ve#p^7MpT9dq0<@O~>n}zq{ z)9c{5C<#1PO};p2K~CUoxRvP#tIv6Y)WHd0nDLFMrezbW_CJEEEi;ARZv<17xwZ8A zyq{F6-4M5?xZ-isa9nD?3l)s=aEePct~zob-xYku?gA;+Tc*Q&N^Dq9v^$#?6Ttrd zUC!qCd9i*mYc}rR7j(Gqi&OZ)XYI@#@Y|&o4quYxzCO_4O2ZYn&Whz>0XRRZBVUgBk@S?wB=?FN$*zqd8JA9z$BOSr5ucr%nV<&O|LKG3M|IHn@Ra=h zK8<|lwYR15r|5!SaYRF76!o)1y&DeLt?7>HJwdp$aw9$qPr~!}axv~{CGP%lA4e@2 zK#?j{)}v?1h74WUH1R-|kv>a@Xa*`#2E9+1(2U>3*cW;*%V!7u~ltkPjy%U(#llLTwU zqF_vQBm_8Yf%HRB@M&%o^kF0v%=Cw~>!w1@P6_y&RYS&jN0P`ej?W0sB5TYeN!^j- zWOx2U@~HSH+3qb0Q~REf%}R;nhC;evNsI#BV{x1=Ed53Mc%O8l#4Ow;sb-AA3g9~(|xz&3xe=Cj0- z>{mqz<|o{sQOjSDbq}*)tak^9bV+h9OqtW&q{uyY7v)|&ZG)W-c={ zI>gMOoihT5Fbz1hv4fbp#F3cveS#ujXF;k6O zx)$rwMAoy7Xf2BBUO56FB2>nZX`pl<3aYs8n~~S4jSD>@MS z*}{k$0b8l8PU#r2XVgVy|?T*saPXHn|&# z<&WvSCv7a*9y5~UblZ~5K4-H2yA4rtc_C;Cx3=HBb1eNJb(4O-ISN;-T#U!$V)0;F z3JT3LFs(fuukFh~2c3M}v9lDTk2m7xhHi|BlV_>QV_E6?sqDDb47S8#CaVdU#s-?l zvQsC-Sr4~yw?bv~Ubr+f3oK7%gI7-)oD@xjKZ5_DHDD$z zvonCR;zI<>DH-0GNgg~(B)8j=h+{)4Ih0vvNMO(5N+mc{v)g?8VZoS+)tUuxNZ0d7MT>myiP! z{6Jz(DFolS2gQnAFl|gPXr6fkMNyAH(V_t!Jva^9J{Q8G3mIUnz6Y8%#lX&@wXn(B zAKIUIKu4$}Tq?DIjv95aJp6$)=2Vh^{7po>SAuL^RcYVe6DW*)`9KKkZwb|n&(yVf ze->;%w~s_lc}?ys>w?512Ut6D2|uf?g0vOE{A}+9*Y|L+CdUlOLtSvv(tt7xHK=%} z2%jHF^V+B++-VjA{bzl|JgbcqkTO#31cZKDE?@_#P2L0Vz2#YOjnX%UxSrd%Ni|q zbe10LQPE=y1~gc1hzz^1_7fURXuwl)yRd>uqwJ7h-R2wL$rheb#l1WXwRadacHRZK zzs+zv`4+q?t%KDE%D{eH9;|wl2wpt5z^2C!Mojbs+uI)C_r(+bi}VDY%M1C8^Bh=w z)dv0)>%d&|Kcv;2lCfo>r08>lAmDOiU9#poVQ9YrRk}HXX3xARyluMDKKGO^sXcO# z>{;=hObal9%Iz-DMXJ#U4^U)J1p2=T|e#Nw_Ks1Q=h)p*h#(fg!HV|0KH_bftL&?qTE&& z4B&mqbVdj^OxuXpy`s>{ItDZL#N(__dr`9@51oX^aCl8E)<@mKh6inUvE&_Yi207o zV+Szd#3$bO^AsyaQfzpeiSs1+PDGC@)WeCp^m_bNB4f$t!W-gY*oyb1JwE}eJ*Oc2 zEZ+~Sc@U;d&Vb#YlAve&CW!s(2Q7^Y;J&Oo3>UjV($2YHaBVKc@v~QQ+f>-(I~Gc< z6=AAs8*x6G$SdQW0{L5Rb!ihn3iEDHq1T&vfh*C5Hq^cl{<&yipR&`0oJ^`9O4r1J zcvymX=R8nu`VU;chr{c<)ljh42j-XqC?3#*g5?9GR`n8@{34N<9Ggr+lNHHwzI*L% ziUwI0rAO4jfEb(>A*03e1#HBK^u2=rhH}*Ox{=pKD-?hiRS<`V< z`3zjBI}@ipcEUwhT~M>r3xhS+V9`K4#_?XjPg2EL^|t~?Zl?U%as%HNHKE;sW_-8l z7K)8TydirExAdpuoYEj{Nz%ir@@)E;g$p8XULxI#M}gQ3f2er88)Ek4fPr{E_`Bx9 zai4v#I5r9*t(E|j;(Jy=&<3+m2_u;-TwtbeWnTcfl=CVd1X3l*X6 z_AoJWYvnnFM@hQ>Qc_UZE7p z#Um*5#hoxYWj6NxnvGMhxMM}_Qhfe>E%rymqMlzWChtFh<^!jYuQtNLi`P+oL=#qp zHlbg{4fGvbhyV2-#c^S~@nG9LEboxQ`uzcPc5b;KNBt7fmCyl!pF7yBjRfvY0$iQF zhtF{Bf!lKuK=W!OY%B4D6YHH|;{i(u{HOz;_b5Qt9ZA6ZqOiPQ9Ij-_LeB>!n4zl- zd1n;hZj&VR@Bcx@3m%eryqELvoLJJ}Jd+sm+~#u4RzZSxyFhuo0*MiGBJZR3k%)|& zq;A77nKD5Gn4U3Q4z=bPK-RFU!4!7%>cW{Za-eAXhJ*&4BPInIWMS88lGaIxN4_!P z+|Bqr$yCym??9H9O()APS(1i1>g7F1iefSMnDO1GjMzLYe8YRLS@B)NTV>VkS=hdwPW=Sd4_N;qzhC)o{?NiwBjq z-5_SN8x+lUg30AD`0lj~dcV(wr;lx*nT-KKvo_c-SAjoM<-zc)0=&Jg3S%-fpwwXm ze7`;d64KP+crJ)M*=g1ff}Q!!C*XXp?o{CPcLormBaMdF_^6c zxJ}&~Kj^H*)kCqow>BBg`FDNM#r=5l&tcrFat7PPDc0uS#EpmUBOZQ?HTkV*H}@f* zpSz2RvJF^XT7lf598_yrkLn&1aN*V`)L^L+eaU_ZOzduuAUi|wTj0(!gx12Sz<4;3 zy&FQ;?*XNYNx)s>?pH^!_Okcy6f>j4S#s@MxPuhJWS}%S*S( zSuHULST-7xJOvC^p_*Kb-%Tt( zdy<90(@Ej;X=LR%LcEJ@$U#{x^4ax^V6!{V_}+G|?$lvvx=(2r4NYyL$EGM^%vVc{ zsBy#gy&?E4CmvlJ(lBxJK@@#)9B)LOLALfBjt-!>*6JEM7vIGh&mZ7Ji8kyk>cBP8 z9k}6dJKj2bAN6@JxxL3p?A^Q%5AOEGqZ^d*gx3bzm5?pa39lzcx@MqJwF-t4k|C^o zKS(|*hT9uTAXeodEUL_cq8mvtXI}(p&+q~s!vJQDmeBfY955qeIB|6xsAyV(bBHzU zUTOhlZ;fESuPQuD`^xhpD#(*ge=^nbtKdc9TYI5ybDeX@u{yiwvV!+8G0QFa%oBu0Vl@gOig=>UHF48W{wm~?NrN?xTOAa`1} z6OH~&#J(kg=q@WD9yMj;d(K(%Pq~adE=?rWg=&OzQmpIlvZu=B4OH=s3hvtNfJ^x^ zeuc;`wA`PCic$wqWp6Pqo^}{#CmhF}D&=U@T#M1#*U|P#8#+$z#c#g9ak8@n+jdEY z zBx_*;cOEW$t^hy7$h`N|st?U#VY9{xPJ>XucK1wm@i zGQt&leWKv$xlA}MSqvs_d`|mUA-rwQg2t>w(7nLx4>k7iPDTTIe|3-<<|m0)TP_ii zEg(%^CFIquOJw@rJ7oO5CgSOSfhc}TBjX>)k<3@I!r+6M^!1EkdSLAY6#KCl`+LK2 zr+X}(v`oMe+Y->VCILlY7rxrF51VZd;zq6p&p*D6iEq0xFkhT49jnR~{?ldb(kPax zH<~?E)nj+nl~|9=KV+LhPGn*b^R6k;?OhtM{tV@0uIm>(F(LvDM@g6Y(5#gNgiez z&Vm(Jwt-7zCdA7ffg^YlhQ6N!Kg}ax_%;`|FG+$&KZD`A=WK|2X9BsGl!3VO{oUcB z@XF*j@yQw{!b!vAIoD0*>DLpn%tW&0ohW$*>x4Fk;%Lm(XLRmPRcztCm=Wr;F*w-` zWwREbeDWe3-n9g~99HAKJqh@!kk6W|ynuTbw_@}BK^!qhi7B5N$$o~9XWo--Sjdve zY^k3Wd+==(>lRmFs_%O6>DOv}P`3&t0w2(6B9;R8{4XRw!4p0!r@+edhoS3X71&n_ zA!L0$j8m=$PZb8MWGFmStmU1IZ#^SDDbmhQRD*ZNu{wJDWcPKrK9GE2vmd=jw zWfm zi*r-`>4>Y%RQ!h`n$0!EH(MuS!wGXtw^KtolV|kMjny<{lgK5RgeYS8NDNjVl}lGT}>BnY^9xPKj_~jq9|~d#(m8)xZ|TL zDh7|nQD1FQO~(s=uGooxGzw8VtPY(bU*KbX31(oZ!%7ZWu<$MclS!G&8fxb=nR5%+ z;^?`|T!*mZUZyNkQ-O^d^%$Wm6GMzO@gmNz%i(kXdo^}Ik6{($y?6%cT|Xgpu>`k$ zoiyk3MVh=1=-A zH_uGF{p2VaOPS!W#si@+FqO`De1|%kiDA<}W%OL8h02C%sFftoKR*e)Ci#y#fBQqz z9OZE5jxo6RyenS3&--Y<6=BD_E12=%6WT41W3#u7WOcbVESb$@uln7XcYz1Hamj;~ z%ywhilE7-6$FaI23QT%>8!nuZfm&0Puu^lieg1bD;I8vCsLw^%sqq$emWpwnZxp#_ zL28`8ks6mLqR351lj3+1IQ$vxhDNvhklS+>PCDkmSi2yA0d08nHlO6ky4z1G&Zpz^ z)X;1*pZRc##opn)_;1`^{M;Ll@I44m&M?K(A3CVnzzFIT<4A@MD?zrb4>Wn?fJads z%*c8MT0`Gq_K*bEEvmppD9LlZ`=z*2`+pFAv=`zhH-kdLd3YS0184MtpyB;UXdb#v zyi`4jrSdt!xNfvpIC5Axa-{;zK0Kdxx^Jd+BMwqogA{r&serDZa)cH&328$T(vhv* zbk}Av{4-V+--k`a$f!^}m6eP7;}BQA{f@~3b!M7i&U&(DvaiIKZE^`=<1^MX{Y4v@ z@|D%BYLyS0d{Myc>-8CV@)Auu_M+kMOLT5kI@x%C102i01i#h4fPp}cQ*+Vco=nx} zq=QFtPfGQ;ld_uJS`Q^I#zB(Pl>7=@@ng7n`yym4&IE<`j?k8Qmt^nEuAATcj<#J| ziYXJa@QGA4u9#ep#fuPMK0S@MkLRGOd;qrBN@AF`KCQD(CR6;ap#S<_7(4MiJjr+t z&qan{TcHfMpJ(d)x~{>YhX%LAO_l3#lj9mXe!=g5FJXpLBWzq$3@zK&z|pm)ko^5J zc|ZE8;8oB?;pv=Z^!$N?^x85ZZI|HrHsh0NNCBVY{HREGM;{VO-zpG}Qfn3ZhK!^> zAqn((cLh~dd`UATwD9s?cQjQ?z>j*TFlqV|oOMx*HM;AtF;}eF0bYl&bO>aFnGq~c zG@6Yqie)X4+ZZ=}6>DENm+9*oF+tI5l*!h1azKSwy9EWs@qsn7Am1P*># zbInx~xr*uIxURD!x#oHmZl{O@ryu_b?s+@_vnOXEWNbQ|_I3l;ef%c>`^UO%4PU9B zh(FrL7T}t^bGZ8IHQXqA4G&y7gZMrTkKS`et84dY(M@T=7xVk%Xx~gIj7x>wiW)$f zCRk?Q4aX!zxC`+zT*GN4PI0Olm%CJrlMmqiXEtKogs^w~-sTF(^Lf7KV|Yf`fC%(c zJ5s#8NGKSwo(>EjqO%K2Xo$`dI@|k|P$TJq{fYfOf|!*KRPl-FSd>qii*9#!^8Dg5yfxH`b}yBgq^>nH`>=>rc89ai z{}NfyvlNyrmd2FJlNr^IVa{X;^Lc5(E@yY6fAeyjKYU1_k+vBct6qRU@4d{nn!x!f z0k`Sk3@&9Ma3}qya@pGBxDPXRxMmRw?|Js6qawd5$Z$?+9%i<5e z2sE!eh+nMFWBp@92{(#I4xhq@kcJYm^U(SD7uuHCDm>Mf!e^?C;Z#Hv%;oj%tEIPL z@AY1|t}4bgT~*|su2SbhGc~y+5p_=KoC3E#M}&L*@-@hsU54GM1rWRTKX`py2cmlG zNY=W^B!uo3G_H{ozL_5`yf!;S_|0UEFv+>A?(w<^L8QePQlJ=3?!tZR6g{{`i0??>+IC?`o3rD-XQw zB)KuB=3LlJN3P%4g?lgJ!qpiA*EQ9OyRu)K>+F)^6a(J?PgR5*uRPH93WCgQqVS7~ z5VhN9>Ck!s)=8(}h54s3=0=r&Vn=rh%PnsL9Sq`sn*-;q&GX0#}6-#B%v(qSvDWleBe!dMUu^=OR$j z|C1bh{*I^*-XM*i3&?59IpoiZY{ADE1>w6^0ktYVM_+~MqQu|rctlf(uG~I-L7u{0F?VsY%=~@{Y@4AC~s~)0M{|(%~>^O!rh5bL*!feZxy5B_| z8o(`c-ea1z5=vvj z;ksHl)GS{P+$cAgCOH{8!eyZDS`Dd-)+Vxl5`;A)Yv_(T4cxihA3MhvU|zr-{F?d; zL))}j!p%wSi{3mYk`%;7=0vgsr{dVa-92pY@_nr8!9F(LX%BN`n^>^w95!~jB%@EZ z;2-ZR)2)ildfXQ@8fvRV;xSi<@q4XM$oc? zO(gN2K8(x`hl_{pTGhA>o^l)tM7U?Z?Qnf= z6{t?!3Z;qT02ZDg36g5$_ZNZiONYNO{G4aq=te1$XBJNCdfJJGzZ|@-9tV$8r$H^B z5f~if56SOVL&BVuu%7dTIXY9|@Qx91!0$HkbaNtCUdju1_m|LgJ#$>26^~KXHMqK_ z3)iA7n>ovnHFiv9Di>T?{H8#b8W_o%loHttt$pmno=j%6EuBpnxrfzsM6iZ44oq_S z5A>Puhwu6`$;yJW@K;Hl)AqCGzMP!R?Y}dZJG|C`3z0YHynVE}I8_nO*XbFo^f?Fb z+H)Zx+ZP5L4B=#vKi@m&N^SY%zxVGQ=se*JN_N!Y>JEzkr5!~l+=@Hu#j#FVoyPnw zChD(^pl#l2FnN~>*G^S{p`X7tzE+O z^Nm=iN;NiTOH;LgSeUE#9n4$Ca5sP0a;M%CZiT-sckbnQuB}XuyLVTSyBpFE7fqX? z*t-%GOw!?6z5{GuTuqjk9ulrhQo%#>_}xQsIkrk(!96YYxFX>MRvg@k63@-BUN)Vs zkMpS;wQd=y{L@a>r&+_ad#k|W>3-l=2;r^hb7+{{4~<%~oKKfJcTP!*`_60p&xE4f z1lNaf!nOc@m-2Vd_NzqWwH7&@>@7IeGg`1j|ChjRlM7kook6~}6cQQV5~98K3|Vog zi~Q16gg3VdbXRT!>9Z+t_*^!hwaY6brCKkDw`Dne9UKDZ0Zqo=od=cFR=-*y4+SloaEf7)QjhOhAP=U>>FDaw`g55u*q zy3e1)v4c}+4S#lYi? zJlHMbdr35WLFr!@cua}_<)vZp+F&W~OPT<_P5+4B{RDE_F3NsRNFF_Cu7NtP!T4-_ z4!>Kj!+GJa(EpMId+=0?y_smq;@urt*c5N(p%TIt-`vV>--~DOcPBB6*hCgQeg~78 zx|Gc`9mnMMHR7P)9E}R*U_yE`&kR@QW`-DWR%)ZTJ5xt;WzG6r%?T~eLQ#d&jgaK7 z{(T2>pX4)YXu;ELG=_>A`j1Q_f=y?!VBlHW?tERd(g zT{rAqp2!d%gGuDA>jV;Yynv8Na&W!F8*WX@hkLHKLFVCSSTiWbWtGTsO3BjPy|V*Q zw7vy0v`)eqnRQ^k!w8;Q3=;FxPsk+m*W~R<1<29U2j^8IV8LYxh;@2SEVCL({$<_| zP_6)C|4oD~Wqej&W{Bdq8jU6KK8g3%1;q=1SyMx%YN@T<4RKoZeo2PT;J;{nIC38(%x#2-^KU_OstEVgNQ!GC(%dN*QBEW4 z1Du+E4G#DeKu??>oLpxDB2wb8B(|HZu6<2bSU(`6H8RNI8E!;)Xcif7o=6l^Z;^z5 zx?mYH2jC6QAK~*O+s4d-4SUVtbcPblx9lU_-ZFB^$eg(BvKB@yK18dgs^W_=)3GR? zzc(kJ#D&Knp~n?TX7_F^+g>n(l@@!kQ%{3gd*pf+d1D*97Zk^e`92cevoY*uSpYj0 zWx-^B+{MTHnkd}U19y!|=o9UQJH7wln5Ya_c}a~6zN*h96I1T`b4%{S3S;i2hbmXv z{TYtLRlt5_KTyeQCCghz3*t7^(TZb}@vKb*dhLqEtaF<%FToB!PwJsJey^tglJ%+8 zEj2o^%ZB=l8%4hxtJsT{Rgg6a1R@LbA%*A4m(d=$VD<}kNs4gJCw{_l>kg3R_p?L2 z6)<`z4Hit{dEWE9VEd=paBsf=BuCnS-ai!(ST>WS74anSi5-bMDovIy-%0LO#Bsvx?w5DXozgICBCh~)P={{MXjIU7kXSY3nbd|<%s*ki~k?a<^Tr;BqWQ@$>GkjxLcNyn;D&h#6u zd#lgBZ2{)`-iOT#UCsW=Z(xxMTUa&!e#f<}V;#21`5;z!1$OGZf#9E#+;gcBoZy{4w?1to7d)uOWh@zl--Xv;nM5-D@zewv zK!pC``JY?=HdAfhM_+k*13g`aPs#N(D{}RZ#(i}{^*0SMENLui#`eQwpDPM_ioO# zEdsx`B(TYw1#bhoNx}^Q3E8n)pf}^PV2fZaIlcEQu~M^uUuS1Q*QFV7#9s&IxL+h2 zd-cgq&OxZu?L@U9g$`}lPjTf@x_0Dss{KP2qr(^ClvBlg-v!T6tx#a+n~m7jK3n#{ z-HD|b&S!V8`7)O;A519IqR|3c|Lq11 z-s^SkKouBYtcRcKP4Ft_IW(~kukTe$ zv38~t$MPMhDxsI&OG%Kjk_E)DeGQqu*^Kn*{j_&jxm?)3Mx0&|w-V-yXpy?(^M|ei45kSU)EYB=%>3 zi0&bHv7r=h&Nu*4sVTq`_d-o7|9?H22HRuy!=zCMARspt7R0ZE!*}?MxUM+_R4eoT zSWzfUenm>g-r>DC4~TBWLt?b3fh1?`Cb}h~h*3{Mo%H*ObW`32D$B*w4~~baNpBmy zrlX8YTpduOJRVb34x?J-WxN^Cjuork;YF`OY?~~}R{1Hhg5QShfVmwDIysM>PF}=R zTjw%wCmTMOsmM+)y^AYMh434<3FQ)~J6v`AeU(QlWrdYP~ANhlHK{vqF)A(mN5c$&K(Cy z8>WMR&vZUE;Qe9G7QxVw*`RaJ8YanUgF@pF@eXJrN#rcKDOX6Y8WHS zBp%%hccYqaDyF3HyDpo<_@@6DZuhIeN9kuV==3?{OwXau^-~zSy8yTS+=V{J0@3>4 zL=37E!Q1^!^qF=Uy{h0&S2}+bIG3z7Ast-x?!W+ctcrmfRy^T~0){)4w z|B*u9C^FuwniQ?L2#JT@1d4^ZXa?@hsY(R-a$3t=`uZ3)J>?hGZ(vZAg z6viCsAq$(Ikv4XLtWHlSNuQ#LrQ2e%`uG1RI`4;`zCVsPwD;aaNhPV!c;9o*MfQxy z$Q~bi&l0JWLMoBbBn=HxG~Q=iMMEJOm8`OgkWpEM@BRMp{s+$c-g{o>bzaZMV;H46|QDh#)w%ErU!v#kd7*$hSuG(~6qs~cp- zD@A(G)`Mz)I!v!0xJhd_eWa%03d~@o1{<_Wj`h6kpmArrY2QaV=Iu9t)u`*U9F&UGe6eCG@`Kr{02`L!s>X`ayXa}tdOF}r4*lyBOSg{SOVt;8(k=BWbo%LjlGqzg zn#YX>lBHL{=SxzsMtKMf>e&IEZ;XeunS%j4m%yJ|bKzK-T`)qD1kJ^4AHBQ*t~xRi zezdlSPh($zyKm#c)}6_q{l!7>Uw%5+k?sWdJFkQV#i6hyB?fL_AyEG6R2aN%IDA|0 z3^TDhywdg^H0|agDc=h7EFxgv{~bS@)8K(G;c%kW5{Pem!asM+;dCt}c;)(AaR2@X zFwaL34wjljtC4Q7DApcM8mSH+o#+E{hPmM58($!Maw@ntY!Z00*c@zlBnPxiPjaTO zw4{q{H<2msA4N~J1$`UuOxuDi=+Bx?a_Z+*^18c<%pR{u@9rH)uNKauL1u^P?0eBP zyE~dLdVh>+pIJlKDq2(PPj5)ltQ(|acP`1d%_SuPpNXSjOo!HM(>ssUX#Jzl#JpiB z@$vHK46jsji3jI`r*k%eFg@v6bNC?(XI!RWnh$ZYeA$l7Xs51A6_>EgfQgb(vX=ZVR25@9zekcKV8i@C&6wj6QKAM}OewJG`bsX@> za|f;q*MdXfHP|ns1xGK@hpYE{!ci+-;LWG6L9AUdh`fZs#+Xx}q9YmXhc$>qe(;v#*Of!O;2(ru@> zV3z>Nj}hCk-*juT%)^k(S+oP6dEzedf47)h_FfMdUETr0CPsk8FXF+BsB_@djSHY- zR4h23xe3TrMuHTD3{Wtr7(~6S1D2ESg5TfkfY+sRFzn3E5Q&LM8&Kg#`cvE$f9d+znO zvt02!Pj2+i#azkJPA<|fo;$f~rPrA8S(1hOLcCr~^2FY^m8DgwO%fHa8mZUbH>Lfn zFLJl;7jvimOS#-jF5q?#0&ekYz_#8Vc)Dx^G(805l^g`#ou|Rv@dY5m^9tw*D+XQG z%^+&(H{iVe56E)u1^Zing3uflSdyg(sr`E}oqqzF0`G$7YcN>Zlmdn?*bhL$c<}nu zFaYlk1Wo^5b1yTmaF?s6aNqY+{P+DV^2+icQTug`tQ+)zC>Px#Pjj2drz>4#)Q5I5 zV&-k~QuhXV*C!<#8Z(IA&OB24rkdP*jmfL@T+(*Bl$`zVJo!->PS(apl7X97lHHA# zG+RRIN7|By-x_dSeJ`FPd52}<1F+uuMR@*_$+&FPda3rR z%hC`@CO+<4fDNsSarCe}ymcd!?sE6yu6?!UB+fKwm%xIQ#AzDB5`o7(BfPK6l;& zAG{mEs~hiu_s0())w2T(?)w6Qocq9p$bN8ec|UM1{skiAz5<<(@4(!oHsHRMfi;R3 zK$%iJSXR0OtWvcAX3fvJi3Q8J^mR#+(D$LzR{1_DdomACmsH?>=WaYbayYTm2qnf( zj}z&zoArGaQxhH-MpAQZ4uR7bl9>xPk*T3u$STLZr2oxcq5yo!xEOb`=$wQ!me~-G zYoG9)Uu{_SxD08j?ZW#U8}YgBN<7s$348pSj6)@+xN3od^iRWJ?sa$s7Zei3d8;RI z?JfmepkoPlRjq{^?5z$~zt;z!i!?>=xh43nYX_R1JA?2W(*fjHg9zO);QBNM$R-^Z za}+5crzRh)Z@daZRu_r=(L&JrMGCgPDF@%J7+Af(9K0M`3*3KR2gm1K0ab1J;M9;T z@aWW8@O8;?aMJhycw4dvv@eTPei6_1j+`u3UJl40?ZbuZ$jOPv+*a5o9= zus(>%$$Y$1xf0hc`-=PQwTR_1Q(~0hLOf4RBRNKX#O|0sIbyhm6zpC_j8pxI^^4i$ z{)`0#Z(mA`FD)mD&o&T^Roh77sNLk9!A4>~aXImN=2GYc`+@WyjqJK)FLRIp3YE$P8$ zZql$=9j|v=H%M+8nRCti=5aS1Lb&f!k~tWb#;F>Xa#o(NIhmD;Am@Pr*tN|TJUcD{ zb$BYUP@M~s-)#qBjt2p_eHdiv9s}x`F+jY-0J|iofZ?CxV3=z(SgI8X(w-dv-uJeG zzbUIhX8&BUIUj|HFrn-jj_iga1B*;Abam8lZ_aw9Sza3ImS;Y_~$ z7(xa|IS{)RN3zeuhS;0ilejB`iCT;!F&!|BtgCh-M^CyFKRI`jr|3-l9t|emDb_?< zpijnqS0+A5U-4z|95<0FtY3g}Q1CfyFT`Wt-hJ3A2jDc>q4-me9qw~!muBlNmoA8q zNTd0cp5tdaOJYE%WXPLKlGYRjZce8o=f7YMcjw(9?gKcf>S;b*zQ$JTO1%Z76&Y%3(Lu6(@DN9nyWJ%D1Px$7L@7Ofy5B|9H7uG%0kN1c_--ceSxakM}zE_6q-O-M{O7G(_ zwUxMD`3|1$ehqJ_&c}~_XW+!vqqyPM4m|CrFCKdy;;+mY8-16)SkE$##7g6}WX`SklEs?#+{{VloFtUve$DaWbjD2N zZ0;=P5_8va>Bqyl^MfO~%_b?_KfP3LwMGiJNP@Z6jw{@1AIvShTFxauD&X=0DW~3= zz`5I;;;gU7a@L=Nxq+icalmRIH!(t$JE$~7l29xwS$Srnwos)py?#;zlRWtDDr`NFA=c`!z%|%@NF9&aE&clVbit*fl%UC}s5r1Eq zieXj~e%pBlpREZi2c==R>iGv>=*u5Ta*>(h* zjyi<9A78*ppahSpD8<~qyZG|L8#vwQ7LK@4i^=GE9F|^%17Bfm9a@PCv4E3OO7S>a zfQOyPz_240XZ#7kv!*P-4=jwZU(f)2YPkZINr;g?yCo|ff1ti>$&%UQ zlL1_(#v!isP&7AQ?I@RYDTu=lS90;|!nwY;6S%Q)UYtk7a4w-lo|{sBN0M(ID5-i; z=4JFnR;qNtNgA=YR(knKvvkAhm(n_kJyr|lv7gT({6+UL-e`Od@4A?VH|{9H`CUcW z;QV!b?o2)2k^2zeS@{_6+R=uO(r(-*^8+`1?!~8P|H1c0_v0wjADCaKNM=rzBj;j& z;rD+(;eQ^#anXez*yTYRUOm1QfBjj3R~THyyZX*!y!l~M4mBG3BW^(_H#oXrM&0KWgOYUp?2kxo09QZj#9<&Wn0*Q{s zAmoG*fQHtfdZZONbJ-ZgR~v%~fd(L6ti6w>XoI|$Y9Q~23~*ZYo@=eY&83-Ub33=3 zk+qC+n}{{0^g{HI3jew&heDz;>3rz06WX*j7%cPG{-#*#jjX=GU9 zOyc@`2FcIxC5J_K&inno*z+nFgv2yZ$V0+ z0$I9Qmh??)# z?OEf!yvoi<+D=}TOa=Db{-xWw?~_+>dLh9aYD(s&I%jbnJBqm-pPIS7MjtuTI5|)f zs|1o7G{Bgrx}Z*K1b#Xg1H-4*;QCE#@a>#6IBseJo;a9*f0NC?9Y+hW=9e~z&(i|K z)aAe^pRXKP^oCo|^N^$dSGWk%)12A7cy7JRZqCYKB{x@gBsaLARZ_4iTJpJtlYFJ! zo?*U6q&tdTq((a)N;~YP;geZYFzX4!BeYZT82u}F0Cx?Cy?Tr{bbiI{Y6D2*bS-kO z(VWZ|_f6XhS7I_5l1Lwp#NLOb&SxBH-#d!*8;l_fBgYa)B~PM~=uV7(k0w@6A=w%} zf?VQ;l6Ch?$lD$(lAmZnN~OBwj-xi&=s18BD>dR9>zgrSPjTCXR{Zfr9o{?s26nrg zii2jX!od?p;nl5Pc(1oDcI?QP?y49hz5G`qm8e#glxW#W9$dODi75h{ncXrjclKKD z)2r=2u+ugGZb}@=H!; zuvn9xk(@rHmGSQ`8l zE8jOICmpoNX!k~}Qd5Zaw!V~Z8yt*7)Gy+%X?L(fqB4n}eiFw#_QF2~yu!0je#HGt z4&%&aPw*tFNCE~LVE*!SoO(}-g=Vs?!z0YRl+%G z^wn+n)6_(%YtnRyOspKX*&>Ti7wSqQRvAf3=N^(w@1Dq=G~B^0N}eg{)=QP!W^R780w^$i%vDHxORq&Q!O3?Wr1LD-az;mHaq5;1 zo@4i4lcrwR!FP{ck=TY@<8nMdaJHXiK#FWCw@#W~rmsH7>wRk;XW4auqv=81A5|G} z?d1ecEme*CUA4_?yyIJ`|JoVYaKv1%)vcR2iQRf>R_SP|_nhx#NjIv!YINMVK{K`R zpG=G|R|H7s&Tf(j0Ri|^;38b-=*7M3%q}~)!-u#YYR99?A91>?gQeTIOd=ksQ}NPd zST^OAHF=?BK|Tv3aDslNq*i}0cVARDe=oBq3)gz?*8oY!wwGzQg<_dKN4fKz`XDLf5@>!^4L+Ob1COlrxc8%hG~$~Z zFyB@W`u>{1lNvQ(s`6%-mTZB}jQj%67*$K_22_(IpR4%#Y-3P$P6gT(xPdtbj?!7L zW2x4JTX;a%MG(;yM>?HC=$nIibgyqLRrhZr>#N1H+e;a`>E?90Cn=1^O;V(dW{Ehi zs0!a1|D8Pba;M&0yp;FzhBZSy;hX)Y;+bbQ*;UyrZP|JeK&^2w^4kVjw96faPplPP zO9zOh+#+CPWB~^$*g=P6Z%^>Wi73o%0Owza1GITK_Sn^kgC86vQEFvU$0I=I|@k9`2zBGwI^A5+MeLc~!N5u9vD~)RROQDs`opJ- zY*tMs^L%^on|~U_d-ojt-kIR>Qd@Fo)mbvXbOg~zNy0@h^+Dk33&3yFReY+<4(KO7 z!VT|-a4TmMFyF--_(yLBT2Dsf2m5ugOTsNKEybOu)j6}wg{ABp*cMO;9I1*g7 zO##l5QJnVMBJg3G6kO;MWdZgAorkar1C~Kdo*)0yEifvZTWT=eQ>=2M`Wt7^r&!R7r6?RtHq(7 z(5;-R!6MeWNQvdx+yX1QKf}tAH|U5ZX-reskxjI5CI#JUFeE33UY_!Au_T?BXeNG&{2Zo}9Fr!E-J2-(z36t9(23NNb1tNi=OVn8*5D&0&egexzD0 zzytG|soU{#x_@aj{Fkr+9SzY&S!*NcnvsSyN?R9JjMqcsU5B9cdPnK#?nhMqYdkqO z-Wv`~xD1=Fo~GJshp_hV=c#v!n&jnmWll?ah^zRmPM_blXD;4pv~o=eJQ_Gq`qL+X zIPQ<7lbv+gb;Sf|6LC&t9?qcyABR!BA-k#jhXt_A>;k-W^*YE3{vp{{>_QKO=)e-Y zwJ>7oITGxBgt!oG7}oO}m^q99pO#!CTTSe_g^j@fg zK2kX2Mhz$AE~S3=O=x7_dRTUL9{kt9;FnH&&=yfh-7GglAERhkTWv_~*f*k?sqbYw z_$|0Tcqx#j1>{f5AyPHwn`0nCXcvwx#Q7) zG{L1bE7)|zhEBKIO{Prvk37CL9#_wZCAKeK5q$p;{)vXujF6%5e8v&D(Em1_>=i>V zP0NDm>*V46-q{4HLaU{nByeLU^i|vq4)4}rQZr+=s{AHRT-HKr`U*jIZZ6q= znP+ufcFfCv5UJJp3>vQ3lK5#YWJL2fvMD{8WK8IXb7s`SCEs>Ye$Hh)a#lCoI(!^d z9JvP`xwV;m%v(Y1_8b8Z?}dZlvDu(yeigC2I)P5#J&=B%T?&ra&xbQ#?jUt*!|Ar^ zZj|RkY0E?{=vkOTz6LXjxs~Lj4WtDLzq!2K5dH~JWg)X`=pXzHKJ5Dmb>|wPhmmg} z_;v{fp3y`b4@^f<7TeI+-=?U((+r;Pe+Wvn70~Zab!0BOPw35H(0ueeseiDSUglqO zPez^LZfW136O7l<)l*iIYmGPP&SU>*dBt~!o?pJ(RE64hH6_!5>>r!N2}@;Z*g#aQ&Pba{Wpe*mUVLZ152s>*nRKWUv(Ks08u1^8)t%Khfv7Z7=(La}o;~Ysrei89Ke-9<5tu&16R(qn<%l za8S0g_Ni4>edUkdE)GPjd_MXk&M61aYk=&26kK?@3p%V- zMYR_CaQWt$;9$rRE;cQL&>=&}l;*wQZABY#yq86lyFzJ`Z#>-{{FHuKDA4#~aozvv zv1wmsu=~emvgS3~Y;NLm_RRPYb9)=eT>MXpcgt6qF*whHt5ca%*&TN5!y7iM|GLPM zld?jWW>#y^!D_mT7`zzmR6960(Hq)-#9pF^BS0(cm@yHq6aS+Jb=qaD2e=&pYT++AI#rw zFZzRC!5h~!kcV0o^uJ{TKdHLH%rHgxI`{}EtQBvm@^6x+L`+>WVR4VP5dX1xxrvdl;8FXW?heub#hz8iVjYw@%18t|S? z`uwUWO@3CE4nMl_?9S`BJz%!KO~ZwI>Pn#h?RMr8K6QL7IMG?uQRUO0_Lb+4p*!&0dK zgH-zDE+M0w2Gg^unN;!fVOnP+_VeGWg55`#NUmib!5X>gaqd-7EAA4UGdnB$AhOjw@5 z@P%7!)h1bCrpTL>`EDoVoir6TWP1s!vQ+LYwb1Q0L8h<@t|0m3W(gzv%X<7Ub;Nh*Cxuq8^nC=%=&D9j-cr+K;V5`hGl$ zz9x_E^}U8G2j{?duJ&+ZQ4Ls{{)5clv4>V1zd%im_E6Ok^3<^OJzbgT#de)+rF)J? z(o+vIs1V#nFHX8oZ+*N$|Fb$o8=gMKTk^+(8%yG#T&W0+vm;Uer)@DyH&*{rn@n}x%}#|p&MS$O?-gs|hPhcNH5o#21* z7n9wZ#xmYdWMjKM*m?H>Y}e%^P`qIxid&b1s3a5J+%LMTd|#r*Ek^v+76U%>mNIW^ ztHI}ELq74h3E!t=!sjRI@kf5h@TSp!PyzN@?X@sw=uS9dK7vd7 zWKfa$QdImj2sL&LLPN*3z=L8;cVbB>`YG}w%6|QT*KFs4RekeGU+gQ+MW&cKRqbS& zN~KIs=RG@||A%F&n+jXJJcSfLC_L$%C=~QB5Ykkpi@Pomo-0X&GY0O0X^W*$*Z+&v zAGpW#{>x*%vLo5z&{|q{bR`Xw-2~x;u}HpLbSrMkM$5P7qW#Z5px@Stysue58YC;n zPrj_d|G1{cU!AMSPg^F-_va7bWfkQ3n+^X^J@|(HoqCSEzdb^C6mFt)odV=$Ux?P^ zA3}keBT)rVLgQXPfp+}_YK53UliwOtTb!faas|`#x|qJ6@sy75GhoRj)+}p~D_bKn zGD}+R*w&r8OlGGkORO?ykCT5;htfIJeTx!ZvC@|Me19rUZAgH-dv8M)c^gW^SwFKO z6H(1#fD&tc(X20_Xp!1sB-=C>?cCvrdgKAhi5i05y(xhvmczN|SC1%-lCYW%Khf8D zmiae*V}C3y1f4-{Lbv@0VdBhT!mXv=LYT)oA%5OkVWR^tsID~;ELDt!m>PRwma>Il zs@uTw>LJt3JWoF_(q#&s+U(%aSHNz>e<*yzRa7Ncg=)&uk)35R%9}0vdI}8ro^%sF z%s`o!Dt$v`P>p|m-goyWxFe&?is}}w|ojL5;VAHYKLj^86`H>MwuPT`cALyvSe>scd#MZ!R&hb ze8znq&wl25von{x*~yLxtln6aMRaA;{J-1jx3zU-`Jk_y`bQHu?nN22jMqZ!1VVAU zy^-6`X~Y8D@1p@%hmsdbDbe<-6p%j_5%y`OnL zs$+{>1_)S8DU+Yc%+Q5*>b9y&j)a_Z!Vy^&Cy--=L1h2gupF5QSIl zLR+-$(b5YXN)zio^`GNlfW~O@{!Ai$cH|~CUfxDK^5vM;v0=NcU4p4WOxr)D3gA5Uvw7Mu#rUl+l(jn%NITMdo9JQe?xq<--@;tIE;86O6syJK5mz$Zg0o&;39b&;#^)Q$30{y@%!(l%j1h zqMPx%9g0r=4UG;zfg->dTFg|0n|Jf{=iO#H8p$!1_LUy^X~F*F&t+SB7PFlT7O?E> zRqTVvSYNzz9;>+{VTt87Y=Ngbb3EKd%OVSD>xDehb5V4Zr5uD_ipel+qXJr2It`78 z@I&oW7b5@cP*in11eMF~LPL&-47@*6(20N%=ckvvw2<REvsyzawr>54vpq9kmS< zv!+u`_?IWN`I#Se`E$U6kEl1}OH+0DC2zI(q1u{!VDn$}MX41|(9fyP3j+iLCOmJG(x3JnQ@^VU1VXXvjHlF|RO)BFB1CS@8sXstJT{r(eLN&DIG2 z8jN&2tk9YmTl7$6GMc$-B08?9hYpA=(Od6gpwZ&R-2R}MRBlNJ9j!fu{isM}9gl9a z_m*GSs8{Mj+EY_u)!sn@IN&NM=|JIewTIv|)=5|^H&{pvuo86ls|X9{|78B-U$T}5 z*O;Yj026&>tn5Dpwx*ei^Mq-z<(3NC$S+2TGZInbJc=|T9-=AQPf+NEujq%R3NLd{ zpEnlw8slgBe0+fs->PEHpL=G?TeO?-A;H@G7b?#?d4EL*p0}ds<`2+5y#myD;vhOV z*dJ{;I}PpP1|qwmr7+O58+hEP$E%D+(nVX2(on6Bbf}3j`#RQzB~(pe7amMyCx|Dj zzBq>6kekAS(#Nt-y>{#r7{DqIP&y_hoZ5CCqkkqoCBD&q@XE3*Sn5;?|Ge*p=Jx97 zWuPUB$1cb{b||`ECX062KY{8ccc6QX5B#b6k|Zp?POY_#*otvW*yp= z=D18(2)$$=JoYjb=3+Nt>G^TO?PqR+O{AgV%NYxE7gz|=<61(lLD6^uofNQGtg<@P^5Zy z393Kkj805bL|WZ1q4V-NaD>u*A~9Mdx^ySfM?sVh+N8xkpEY9ccWqciqgd+H zY|e-!Yzfw4+a3d|HckiH&btF$pPQoWKWouZza*rvs}MbM5D@#@gfi;85O=X3`97B8 zKaEi42Mtl<%NsTM5%pU9=#8p;$y+&IA?G`Kqwx_<)_#Fj$X-YK53^84=P9&KCKwgT z`k{fU!_b}qvZ!X(HR#W#L&r~vKp{7rT>846+IgL&cS0zAto@Rr_yKI=bA49rWXjGK z8i@`F3)XN{lljK|q7%;%yhZQ8$5#lRS`Y}cr(S`s&z{4^ z7qaM|sXUsJ*a7WHHGDQH1CCl31}`+c0Nvg?G{vEsK6_`*%G_2m-MMF2^{`5&b*Y0{ z+R6%^9vVWcor&NRXC+j&SqrBhTL>>N8w)^mupQm4CY%^1Cp_Bxft_D`hlNeO#A3_i z*{tTdtTRf9)myBg;K+aA+s1q-iX)I#_9F2+6N!p!($R^hCCL2dU3C0xJ4)U42kn+q z=2iEp@rt#YeEb%DzErBiZ?+a$ClVDtZHF9Ru#YfZE8!=5)d`6Qt_R{QXRi>0{ z!KB+vnBf|I)}W%ocKRr=5WP-1yMxio6%q7V&NTXc`x|oN#ed|)=@RalUm>tA(h~EQ zhVXBo9vpq48?2pQ0*>W{a^`83L~G4n%H%p}Nq{?xU9_F;T6%`PoW)pr&r7x??=RaI zEIR+5=m__%jD^NFBjHe}p-_KcUr-&XA=L5;!mcg9So@{7%;0o2JJp}Y=BFKCPh`fh zs+Ik8kLfTv)yWbDEO-z1nK`2FnuSPZP9!>7n}Z(f-9mZ^uhDXc9`x|Y0AAi!iyxtH z%qx3X@C*J~@V)~~_zVXle))Mle#v-s{z$nT|99Otbl&JWnw(mT=FGl^0y7hl+*pwf zylnwmD?0>Td-nk- z_-p;9FrZNlZtOw@jWMKZRA&a$H;|ck+rO$D_LY9S21pQJFANM%~p+8 z6o!=P3eU{Ugs6LFf|-tqu+vXpXy-MAVzEzj%J~n=y7h*AOA^>O=Tuf;Co=cjIp)8o zky1TN>bJ%o-f!uEVdg{7v9J~B(%=MCJM9{Z98iOF`<|oK8Gle$wi>@bLu4jlJ$`wB zDX(+Yls~i8kbiG#z`JbG=C^n&@fV`LBRi4j-G?5b=-UL@FFucYPaH*Rd)Fa1CP7Q$ zl+lBuH(+|fQTV;M8EkiqBE!-q&@lUB^yB0T+NAcGIw3H>Gdg3}xwVXmsWP(DRj_&Z8Q7?t#al}>obQU@2ZqN+GnD4rcQrkk?BHK(cR zu_j6G)O2VwQW{q zt`{?4-LGLVb=gY}-|Hmvm-tYHU8%GQ-={haa!gsG&s@gZvO&#GOvhw6tE_ZmiyVeA z_5U2%0${?LHmkA~h3~0kQyK03aFS|UE~JM)wUK$mo49;%<8sP;zQ z4ULy0dn5aZ@9t1qf3cP}xEZs>nX?&iJS1)4iLE@^^gwrS5QDBSo zGVG60Mc>>fp<(fdkzZjp3O&V8iqAu|C;bajuv6v(cI)s8D-HSSsV02Fc2j~0gSNPJAm6_a(8-K4ghZxc#J3}8W7Im-803MX#QxXwUzN~D zX)7%BtO1g}rsVDmXR0Ey@aMe1v~lJ~nwzi1Y_?jno^`gYqr;IcS>(tz&K$%hM4PgS zFI1WBsPEL)<~DWQluIX`Iz-n5PN2JX+#$*K9+*%X9@~oIM-=$&}e0Q)0fi zo>Pk*SLo%oXNFDu1)CWjGie1Ps>zp=C^o!G5j}qSQAT? zgInp&DK;!PW&yjrEt(xtEn=gh9*GReF6I?2Bg8#b5nAiDg~Z?bLaXR2n7L6?s5Vy> zUJh3fhKUT>doSOxu#RfhHsm6^u5+0Eo-vcDhR8CbUP#AWx(AjUV<>am1jWpqk6MR{ zZg~AX^rgK5o!j*oMgHtX2j?sCxJZj%p`pjm?>FFo6r1pgqmB8*AqM;nUW?zOsl>mU z@(;Cr>O!B!Jwtg*t5Ex`T=e_wNfhZDf|zs`lC>X*=84Yv3&)dS&U9P&q^+M*_Ua_H zYc|mEvsjQ`jMo7BT#tbsy^CO(&RKBaqB`jHFeBUa73jCdLv)Du z8`|__5X<*i#%}b+Ft_AFCdb`pUR9lpw~-Njsw%>FV=du)pSIBQTT8Il(GVQv6#wAwmMPd@ec}TGtMA3*7q^Z`TdQ6RU_dz`V!h0xS+EJTT#rIvnVN` z81-7*L)JgvBfU}bysD-q?`Ubj$1XGB#qtdJ>$2nCR?Mo|oK>rsGVZ!A^KevS+jjKOYaMkoP$!3OejG=Q!#B{9U_|$u zyV3?lC(5@%dc|rzW%Dl4bfY$UCni96Wq?I##N>k2bF*T5!7#BZC;U-mFl zNiaRDB}CuT7iL!)2|vB`g<=unYByO~&~}j(Tql2Knbl3q<6#-|{+Gz)f&$r^E{>`E z{6trL9!V!3YX0xcY%0s@T{21zv`g1XBC;uFMT$q-H<8t z88Yao%_1XI*jV|0G_URn)o{zF3e&==i}_4Ce});oZ~KMV_f?XyXz?!{mj#5)EPA8a?6uNJC+nk&$2+r7s*0(Gq@tP!cM~$_S&? zJJ`m|d#pz03L8^?l5MeD%POV~V&G^cRS2pfT^a5WWW9u0yPd`J!zR?e{1nPHx{5qt zJzDnp9eU9s!>^p8$}9Hk^6xeq^TDd-{60A|{%yH2ADwQ%FR#?(e?L>=A4LB~5uP3B zg?NYUdK;tVE!iSt=>*z!WG|B0Is;u3Yj)L}eemAiLKt+%1@2_BAi?e@Dci7*Ha(;? z<>wdbr>)M~o*J_U=PX!6s4W|Lav+=V*^o^hs=}@x@1zMjRaCJrg-+_(M5~=m=(n_s z2&mCpA=sTr4Ln)&0Q2_cgFDW;x$55c$;f7{2PZ)DBxl<+J5*3db_3&4V#mM z3{D?HZ+EOj?fM=_Npv}=EUti7vo^w;TQfjM{t5DVk{8{0G@eGuSJRrt&vaGs09N{2 zf%RmnG1qWSw)>PaGcg~)oRr>Cr70D(-Tnfd@i>?|u3SeK=ZiU8YhAjn&5+vkJ5W94 zS=6xlAl=niOuNr_(al%Pm~Q!acH`$xHsQtzc1pIGMTsx&)FEALse-(~PgfV#Pd5^R z;>?9%N34WtKh1=c1BODRrIv7Vfr_BNrjI#mzhDQnsF>wXX32ag8><9GcjE_o?6nqE zi!y{RBG2$o+V)GC|I(tvpX0^4ug#PJt#-74LwY)L;=V15ls*oG7%9-{_+ZRD`x~+7OH{r zAGg3Vo3k)v_c$mg+s7q4){)qb$uxd`939Cp&8>e+VQn9^?f*g7xAoE5W!+Svx}8d9 z-K7JEX45y(5j63{2s$xUnZ7beC&sH~iQ(~Je7{(S*!(+5j@;=Z2j?NWK`n`n(R)Yd zp0;CWI%hG#DV*Ib5*=RaZ?gEH*R0gw4+~CI7P9{82w}-$4`HT-FzKp=FfPMXDDc%6 z)W>QFLw*ksIN#4qZp$O);ZV#@&pO4f`~SxR3QgJ6npCQAa3CqyItcg9`vdH~an|S#&`xUv7g|^r+QzJ@Eohg|=zyW3+c?G@4xS^G61JJ+~iRf=aDVj9k zA^OX@Q0l?~{E8AyUgdxRe}9iDf6&g7|GmYM-_~HxpAhd?l5=$Vo#v|i!fqM9CHxc0 z=y-$@9#eFV%S0R9;?d}yok;Wj6m+)U0u7uZvggO-!@R)RaOBoNP*M{~hK%;0%?TlN z{JS*j?84~%lzVi~msYw!v6;Rbd!P1vuA)!$1bT771zN&KQPm`W`e=j$ectkxP|wRm zci>X8uF9YEu1_GYp7L~<$N}xti=YW%*Xi0gIVQ8riOpL!kL}Gq$bM~2WwLPs+qUl+ z8yxh5Z8)bO)E(0lF3d3$RL+_Svs5jFkY^^smi78V=~E5iilLHVKItd>u;nSs7TZTE zV^i1(jS#kdBVw=GKhg421L^fNEqJo&F0^j2MKdq1MF)N-pt!ZgXy>8_C_Jwd`COOd zf0=0TxhoC$e35e}<897=`f0&uWSaBOZW{A4$^WD1y#KlU-Z*ZRO-7Qk$|y=y!uy=- zPE(Ugdq^n_(a=sZqokxzQk0QMD8&0d*KI3BT2ek4iP9e08sGc-gMZ-tIPS+e*Y$cm zpCWhmxC-|>L5}ktA?^yEJO%xvD)8T%0|P`Bi(_~Mn45V)TcRVB%d3Fjs(QM@G=Xki zHHJRFLP<-?O}@Krh6ulnX5Uukv*b^WO!>@P_D}5>Q?~16X9xaZvp2tITi(23VNdTe zk3~|}XI=&?Ul_yIzYStDCoEzc{mt3EiGx_seM@HDG?!)G^Bub z62p4tVRM$q9a)=*dz?$KE$9gz81n_a#NROcis+eLq%Z6WHWL0?nFv!1jRd|yU-(k5 zEj&n86>_cr;TwF0DX+`$sd@@}r-owcn8{eF_m6dE+B5Y~MVfDZlU|N6hr3_BVCnsn zV7ci!^zXR`BQoE>;BB&8ZMiD<#7U3)>phtJ8(_+P`fkeI9&W-N*EHe|nCo-B!?n2A z^@?14R4-gz@&d-G)Wg#H0#JE<4z~D*gSn3vWvDZDzZmhINUfqpg>+SV40P zyFN6K$vs%hbRJG*-_-}RUcEp3mxjK~_>UUXNuf;Eem5Izna!r|>t;b0j8HFn7Vf>j zACt{aq00y{_psy%I^O8PFQ57fu@Rbr^Me6G?mI)l+QC$~a>-a|tQsgRveXuGU#bYs zlVpWA;+*=K(QUlaCsSm#9YsAqPxP}k!yelLk;`$2-#m+>eK*(9O9M^ecB?mhejEof z@`W&c?Hx!cc@0I`a@@H&{lwqWfLrj2`bqbB!jj?Jj{k{Zhbv*dd7bSqE*`oItf%8J>>2L*-hI&}oAV>1zM`lH*ZL zysrB^c5mMaHvVA|t3Th&e8YR$-j#jv{@uPfeufg(^U653N(1%w_eJ;E&&;;-F}pRo zirLLAVG|dfXDTicth04J%WL*y+fN*4i)wS&(_;;6Uc^VHYB>OFYAO0Ocw@ofD9kWT z!_?V`<7*$`37z*CFjq$KsZbO?rmG95I<*Dkwc3KZ`1bgGOGU`-+efHS{Ed6hyu{&K z?qT4kB0Mql90taPq1wv1_&G!erLO60%Kj6)pkqycDK^sJ%QhgpcN?U9J`M7DML>o$ zirInBaA-nbE+ABk+iYvVooq1W0_-ff|CSEts>>`n(+@+q;MIe;d2ZU=xmYDmdB+bJ zVA=*2&#J(&l|d^n!!vf>@aiw?>MV$PGg@o+-52-#kY%v31Zd+j41HNlZuBhtj{^z z=42LFMxB76d-sFe!&xA!I|PE~yrp_m&ry%(_O#@NH^~^|!>^e%j%^b2_UfMt z*||SWZ1eM8rmCch22VtfnPe~yQ8vX{pNz4)-WVq}7-OHF8&l7R$9RReE*Log;tYnGs)6>+V}Twyg^z*R|m6qmOXDLOl*k7a991 zIavAS47yD`jL*_HqI$Cf4iWDXu3g8N^4(GVx+`O;ZF4;}@EHo*y}h8KJq9M-&4Vm) zrZ7MD16&@h!2PQfcg?E}IFC^#+;Yt!oYGTc&f$##_clsAlOvV6w5orwY0P_A_T>po zfEyq`_!>NYlLCTzGz_oZ2FD-GfSCb9AphS_x_Cwr4gR%_9@s2PyDnxrxnI4_x7W;M zS!++Qu#;shT|9Hg7R%r$OBH-$s)bIgwK40l7H&J#4>P_f;lKN``0ny+w#w)cn|!a3 zS+<^LCMScL3%7w4IBjOFH3!((1xH!J^5$1blz`!PkRnVpWC zpNMXS?r;ng=Y*BFTv2z670wC$$(l1_nVoqkf6CjO=Jhtx!r+mhaMuTZU5tZHF%zn? z{uZno)d2_dzCphTIqrg8Ury$dA~!3o4|hFAhHDf)!a3PCkdCj18{%qien1{fy`BlN zN6$mg`UG%EIt0^(Z-YfTGoVlYVAwWZ>O?FL{&ydKf4K!${iL8h^%D4ao`c-GCt<*c zqfq=K3bw941T6M{P7t0Fmi?6H)iY_lJOdm~gwwab?q_qb_&IV%QxUATQ?kbZ8Sbf?T53rK4r<<5}9z!hTW+*7LuwRGF%Y-d%f;AF>>R1|5K({89Mv`V9EEro!p6G_W&GgUoB9bL&w&4CoT) zxc^1MvBe>fX0RJlh0XA5fHx@nEP&0b(_vO0dk|lAFkxd4{kz~A9jqNl$B%TR+J)aq z^>l%ZzEwwjUOyrW({7Pv!)l55(+&dtiilQ{33;5l-D&2k%94-~qxoki&+=P7oa2YB z*va4d#_^BkZ%We|HKp=aqot!~oRtK1Od+9H+)2O`E0X`(fh_kJKz0P)k_7VC$F`kv z;1ir$`IdER?32GOQ}5WwybI%5!Mm&MUfW%k;rfF)kJiS|X%^Vz2N+PZ2rXiKF{~;W zIk#xsoO23S3FmRn+cXSJxPYGwFQ9+ISsZ!wD9UE;Mlx(Ub_Y3QoUak)-;l$nv&Fr+ zN)n4Vw`Oa?4)byg+a(*)O=;}v3p6gZojx+^4bm@F6zojR5<#lJuNmiE$zz76zy z^I7`RcpAM4Rb-aW1oFFARucPdzjXL3J&E0kRb)ccDKczs5#hdc5xu#s#70I+_9!nP zt&6@%uD=O&iZjx2dUQsIET<2MQ}bZDUwIUDdCH&w@A0` zMPib_f!vueimZ$2Po6%jmuw*;9DdpE;~$GY71!;atiM7!dpE6`CHco^jtCg9^osc60a8aB{Uob#yyPkgID%fd=L*~@Uit1Qe?K82CLgK%Vw ztC+dhN9|)BtaMc@y9=r;$7g^V$pKr!ugRD)Ax6imjigEjLH!rzoQ7}t~n zn3xKFeiuON`WaYrD+V?z9fXfrA#i@$E|@FcXXoZD1D(N(AX|SHNa{y}MyW28%6_50 za;0>Sbr^kcz?n{sR-~?q=Sjal!6b4-5|IsfN%mRvr^7Ccp`QJ7 zIQ82OysUW~Pc2Wu|3+Rx2O|Lkmpnw?;x&4SGs?#GeS~N2vcl0zzwwsk4|G1)jSg?C zQByqwozI7(-;DWKAl^};e!XOG5Bf8!f@dWG!*^3BamS$d#S+eL-2mD(F>pdih2UdX zVC8gi*AOj*NE;q(6^g)aV;&sw$b=1hli=pH1el(B4Ave9fX?lUL4L+0*py%aky8~w zk(JYOU#h+C zAwAHXPkk<*6Z0C8^v)|^`cpcZF4Ou$-YM-QWvUU*rxX?{raM~=+(hCfQ=aB|NVT_irsYp$z3hOJd z3kZ-aDgT{8o9_;Sq@opKhwUUhc~JDhHY1?VM}8kEblrG{}fJuUiJ>KJ0UvY=f9y&8E5FM zdp0!Ce=nKyp-wt~=pjCO_gUU&S3a*|Da&ksYOuMf!`R8QgIGdD9^Z7Xqa-Obmuwoa zmTo*!M;FHTg|N^1P;k*2Rxh6h^#$|6?Wa2|pSuix-C7S%-uS?QL?39g+YFZ;tb*A3 z32^SxVE7uW45b%d&&Pv8z8obK%NrUEhA@JeDOelJ-2V?WL z(a)meTxir}O?!s0A<>a+>49u9w|AZ8KEBEV-dD0Ef67>SO*+#}31Qo|s<8+gFA}vV zo|dQmroO|iV2aq;Q7+gBN)Q4!e;kHBn@>RP=d%#AE)8%_1}r~x5%QXn;LnqA*kiL6 z9`df>mopYdrzpc_!$QjHrqLI94@gjGoMhVPd;HVwacsw!C+tY>FLpUc18;_y;T6sv zJJVdz;EO*VULJv;_avZqRSs?_zKM}Ln(;}?I~==2Mi?EXDm;!c5Q1Nf67)PAgdCi%G^y}o;xNw0CMNZaZyP>;q%Tf@UiYS44fc((|28kdq?6SwSF>q zB-T;0N6*OTE73gncn9-wKhJs->O`J-3tKYv6MJ8;jQac3vHO-PdaU`(_Jm|JzYCT8 zo7f&=TAfYLH22aSlL*8*Z3d5y{m?Zx5h_UzPm$TDzl3?u$zyl*8kp^$k8IZnZM?i` zC@%9iL)rZlYaKS=o2!ShxI6~mwx7k$s66aUs=`OVo}&7TANbizNidBXAf(4w3xm5r z0D}oaL(?c>!<3;ye&!(IVYB$2ZGDP<11r$3BNZdAt;gO!Uzz@qtt`1<3iUQ|g!@G& zAnSN8Y>BuB^HV;+j3M%(i%y=aFYL<=OIG9FOH{b0dlWfcGZ`+prW1CGISnP-(=b(g zJq+x!g_v1&)Wdch?fdHnnOs}VziCKe(@fv8hjlV&k)w?h+LbV{<0l&sUCSH}Ww4Pl zHcZj#v&3=cFly|dOylkQLjRdA(0Oq?^es99DhX%cfMpJ>cPIj-feap0+yH0GQgHou z1y+p8fDN}Uf{|w&Sijx|561(1Y#a)iR;@H3$cNrs^O>lW?UWARvyyGoD`&Z~kJi_T2s%G?h{2o)R#p&h@#OF@~75IbY_v-@#g8R9(tvglM?BhO8o^cM0} z@4$fJ`LOhFEF=zE3YiB~0s0@NOI32nY!)XCtMFtMLn|5i`I3FD{=llP$m8Ll=geQO zjYan`_I0WsQ&N1+%ifovpQ@4WJ@krJ_HGfcWVQ zN~{aO)VBnX=0K)nB4}oX!xi2eyrzggij;m3y8R|qdbF3ug`6bo(=A!EY#0j{y&NA@ z-?EgsI;gdCIG)mV!sY7#ubp+p^o}*yloNmz_2Fn57>+ac9mnq*E@7T*DQewn!O_S5 zAn&RnJpZUK1lkT0+SBcXiC3+KJ*7j12hqlY+|mJp@4P;O#UXM3`{p`Y*rwylfNglW zzY%V8Jj~9xTTnUP2`(-UhWKA8@Xx9OM%?a#gzA4V%}|c3-J!%~X=-ps{QGgfS5!IW zXA0cp4@VWG>JrdKsPw&NRX@l(Wa zin8YWHkgGBm&J5oUZt_Rq)b&%a z#5M!0J+8on8R9bZAJLx7F zqfx-;>n>*UQ_@(sR{>KqE?~Bxdv2ThwvdK=kddX}o zN%6qRegUEgF$i}r4#zdhCop?b8g3q4gr9{nyk%dH3hz7dDfbthGJc`fx3?%0*@mme zw&0w&hj_uI3OC=ohVSY#(9Yo$o|_yl`g<1Q8F3CbFxZXxIaf)p?v$l?en>rMl5Wl z&(<_jYlD1xEH#(zxWwp&noPR*oe#aA=twV~t|RkRI>?T1IV59VG-)}rim%=f#>;fw zEZ(YhRdS*$o3{_y#Wzk@VoQYqY)|!Y_Gt4QW>>z2X%wZg`)9$H8n*SUL*u)9#TmhN)H$;m*A<80nf!xTygd?SE5dO6&k!7F za~LPg4#g#7f^g%(0Bjh(4gbh4$H7OYV$ee?WERHQs4I^nt*Y4uAx?B&STnUt!A>t> z3F(`(n94mrL!G8I(Mwa5;j5t$Jdn2npCD(D?p_GWTjoG<%?h}0vKVsNQkXH@6WVo` z!xaNJ7@RT>{+*c!JDOcY{`gcd9ms*}Y)kktd;}!B*ujU9!$Hnc585;pKrcxN&P$bH zenKCZzg3*+xc5-9poyw1yG^6ENU847vvkV)DC+Uz01YnQLiL>X(}uN^son#QPQNvl zE=!(B>+9{QomPK3Ir}YH;&q<5J-$JX&aWqvZyq5R+Iu9vxdX|T-FBqta*QNsNu+e- zmry>9p5$Z3XY#GPI{EqSulZP=*=$ASE*4<4jm2BWuxYYcY=U+L^B(^n`?j`={kkZJ zogEseHo#EKQ`z7zM?m(%Ma1H+z)pwF_(g3e${*W{kJvsuaA-Gb{Mm(z<^*AhOCTz! zZpGKBKG^Q*ffuGM#o~Y|c=+uIT;p$m*EXskgui6L?iK8X-dW}lI)Q!sd6B=r)tY=( z`a|~pn@Yp4#nOd$%IG@(hjh2^H`+f-6(o}fLD8(?@ObkWnA1855|v!w-A7lL_Hhnq zmahP{<`r;m*D}!FzZ~}UEQT?Y7Qo$KZm?j3c(3>a;MP6{e1;E$xx-B0agQEcUa1DF zZU532^esK=-A13?yh#UayGl3si{G7vA}i>M_$K57Xw2e?bfA|$RY>c^B&6%!w6+&D8%c9L@wY1OumsE11511CKL(yP8IBhF>5X^0%TyHFNYmSEI z_fC*GYCJ?}aIiCLJnUZY2p7p%7?U#+>=#+V8h7!3KyxVcuF(hIq3ZDYp)xog>kI8^ zGN7~m1O0aF1>L1_kG?xpMxC2_W{v)kWK;}IC3by-YIQmYsr}{6ZzP@gS?6!V@9-h3ypt6b`)vjkFhdf{nB1L>j_Y)>7_mcT;dn3;6zp~OTZ`sc= zJ?!bZUZx`aX0ydR?dlgYxOdJUwsX7;x~`MOoqoSr^`);YKI<);B>SGNp7({RgtasC z^X)9++JE9Xf50v-yTwAp&dR$R`AoU-99uCyn%&$M!Rk8wnMH>k+qgrW&B{T3!GZ1k z({hP)=FQKNrR7Ov%5iymYvnllXU}T-St*FtcAch)wfQ0+zJf}+ZqdJc|D#5xuW8uC z9%_HIm%cUrN3-_ILwSb+?42S98v_;K#&sF+KJl3@OZ!Y~M}DANKR&1Ze?OxZ9=B+V zZ#})cp_(S$73kYPC3J3V4*jz#oxYfwNFA1)qS3`sbVdArI%xh35$>GTyg zF6cV@`n-TmNKa)IQ?uB@@MJc)JC2oRC9r@o$5{UDaHcgdf}L3s!X6C^XW0rH7)x|# zcjBkA2(!5?*@iI3YYwdC`(P%!{R?lq^(`N^8~JOG&hcSd^Z3UzYNX*-{w3pI7fSA1 z8W1!2`Q&x{6_V5SnV1C2(vIyWv{`8^{p>l3Em8x< zYZK^q*A#j#;WTZ3be0mGv-EiKIr>*IkuC^JrsbuH^g~Yy9X$6GRq!}Ndy^CC(Zm?~ zdSMOlH# zd5ivnO$O}QUkm2_b|mwT9LF@RCo+YDlbM&P3kztU%6`<%XIsMESH?zFHAYYr@74HAO0N5zkN|BeW1KU8ixl;-b^u* z?AsP9>H6FyX@1g=oOP$9zHkdsZ8$>auDL+^M3xZ0!ZLFAQxm!Wtee=D{UKiFD%9+& zCY@?Lm~J~igtoemq&YQX>4XOonm`?Cztx0>jhjq2ew|3&Mogt+UOH37M-n<9XB_=D z)t2@2B64x)>vs8X3U1={QKk)%u8NPB(*@t=By_!uUUQA-aIuOkSY1J&RN3l{dQdF;ZPjlG)KD4FkR}c{#Y72Ntw4dHRj(&Iq)6R-1zpe zJ^b>GA^f@jPVh>#nSA5Z48G_k@_nAy@RvR|^O{!g_`o&2{IU!G_#h>D)^S&kWpC`q z)>x~t-WC-mwe82|n5eULyOh|MV@m9dZyz>z-CsWW?iaqVWjp_&`Ys>8tBNNbg}eg2 z$ZyF#%G-Jz;9vJ$%ZI%k%gd^p@g`SaOV@_qlKzQVC%w32gjBCVzhuhIY^MbmjU*mL zVUqeQrIMw3wUWOTgUGRB8)BR>nJDFY5j?w=OqAbCW+@#f`xl)gvyxLu#rS-(JSUw* z<~EQP$7=HG?oARisgsQScZZCg^^&aK{(@xRX(i@wK9P6(+DPPc@z1J_kZAFntyN7X zpA+vay@f>gY7WufkwaXPjuO`qv1Ec{FfrV-hS)?eAxUBkK^`ngW}^ymz41a)xSol8 zQ6{O%j*z@mGL;yg+h1(yQBYEI!a-U#GFDm;aZL>TypaCM)!=&z$MSip^Z2a6Tli4z zt^CNYL%i*z1m68Y9KXftGQTeUI$yev@e?l<^M-#bdFuo*7c1Q6)mxtM(T^H<2m2@d z(eye#UhY0`ai@XT+gQcVTP5%_P4aoY6PNfKyOa6lo>6>YWf;Fj!&XizJyr_*UkU05QOXf~eAam$o zlDI~L7;8EapJS7VV7Z8_Oz|a7(eubLr@f@tE|65}N09Q>CrNK=ESa?J3|U!onmkdA zBeoT1Nre1)V%?EKmb#=6gSRPUYeNc&?n)Q9;amH1M?st^C!^J^a+( z7krD`Q-14^-~7ONk9hUPiM-{$JACiccs}_4LjFZ~7#}S1|KC*D^9NtL@$v1B{2k3E zX-|)l)aHl+Z)@xscoMS54m>o@0zOE;egMvxYsUTAL?gCkpqDtDwoFE}N5rocLK%U$Hvip-fiLtdM zvTZ|2(*_MmTm^;IRR-fh10_{Hgb${LK0szTEB< zZ*?f14|ueP-*jLeuYEL_pH_2*Cr!(xI{j`)*Uxb0$NGMi;`z7I_oECYaaMeBQ_s&5 z{#UVdsD6qBR!wpYIM6Ja_)m{?ox3kF9^*`ceD@Lio>YmS{20@5f;`Sy|6j;bS9D~U7$O3-BjUnVr;6=W+s+m6|Kbnub zcAZaZ5%_^K#_~h14&$AR!}xpYA}2k$N!p=Z$1e<=AdOyQ$KNvR%a0X;h~|)flJogP zsIR9X9sNS=u2wJNpQvZ@n{!u4s|~~WZohcmP0f{Gs(M&jon#^{-PfN#S$Kd<)wGbf zTbv*&5$;mw|2W=OXC1#x>jHm9F^`lrwKyd`aOAt=%u2!~HN-IFuv6l;kdondOUXS9 zk~9~@NVC5 zk;Jcc9>$wa)MdPZ=+$@<#Sd9%y+!{F7?|fPiCDv!!Iv> z$md=?z^_cr;t&0v!Pj1XCH>R;q2#)0c*&sA$D~J}giCE3Pe=|g`c+bTOP|+Xxl`I< z>@A(x`^ss;WnFUe_jf1V-5;d)3$jUMT_iCpOd>BQP9}Yx50rfDWAD`Aey^l8btm!h z9Zf7$Ovyt1dP$$MbCRB{AhMv@}} z&Q6q+%@Q3e$FGx~%3ownyB^#lO5i_Nm)iKp@vVE)_}cg=>Gj|zyj^1s@A%DD><3+8 zA2;T*Wak{-++z?ctFT}eNtX1=txSIYcqg`|?>S~N?>M`XY0YHRI(P#MWj10zEm{5I zpS0=3F81+_4{sBiB>4y;@b><^k^nh1=|PDK{V&Fb@}9j;Wpj~?lnEnuJf(cgg43kQ zYYT0Af0RU3UX_mZ{4Ldfd7`BKVK8}qNSA*Wd4}AvDJ2dEqxeCygQQco|B+l>6(f;L zUChh#J1v{ zgjLCstkcgVuCYmc^80!Gk*kX2S%xZktz1sRdn2UD)?-Qr`MHzdMQ=(zC0--h{q~f! ze)i&H>W)eH9kpboWDLX zN)C0|5Z5mYB$tBC`L=7%`JiH}t8w1$l2ddJ^+ne|u)+PLs=YyoxqEBo{lQwVmI#25KWdPswv625*7A;|gwl-CkO?y(#&l@y>DeW(nMh3d_o*$>P^-Cnov~e`6pV`3=8m`V(F4SSGH2U)u z*O&9JhK*;6kCKa}-g(4b%nU_*o5$x*bR<*HY!uIYx06ksAuHbVMB-aDTTWU-c3ap$)Jty;vI-He<&@NMGSZN8}FRkHp;WGHzZ$8K#ng(MB_(G-QDtMT(4q^_jft__T zK+A2uxDS{D)zP-_`xk|GRyLqJWiYf>3(6Z%m2$gr4osv1sWd%#ggo zH6uIF$y|z0UmeBRQ*-gPKyd6219a!Sv1~SaNM7_%76eLo#=0 zAMss$>G%rzX#YyOf9g5uoa$h<;OQmyV{8r6WUcI^tp>^~Tj4Y#7o6qqgFAls;jXXY zc)8zs95SQ=ozFvq_*(ojb@c;7_u7-A-}2F-+3m4-qn7z-a)jS!yPF%gRAX$V^5 zKVnc?5k4Pt8vCvH#M2KtSg>?4`~Lkp4Ru=rTWh0X++-fU#kN9qRWH0+sm@i6SLM9c z>2USa4LF}Y{kR`XmASR{KjH4y8xVOn3pVzN0mY=Lkof%}eLnUi$(tF%D*noeIqq4w zpm!%46$Rqm3rEoX&S{)|=K$uouSb-4p#IwaXjONK4GYxZi)u3HwP{u`!Y~|O>z{&n z{Uk7YTniucKEmeHf8n9L0%vIV6Dp^?gayt|p)jKvOeWukrQ1)#h^P(Vwtg<0>a>7M zhS^kAaWG#jIm$AxW-&|cyDT+d4;}m_VCEiQoO4>tG5+>Pd5bmJz40h+v`fX;zET{r z?iRi>ZoyhlWx*xXP$1ERg%Rz8g~xC8g~h{-gzz(t!iE`Rg*Sf;1jl#F>hv=NZfx)vHQW`o;|k5KYPk(;?fpUbq>=W)1hB0mD>)dR@~+TiEmd$6oG3y$ZHfms#lbg#)fl92R* zKj)IccKqvyaz+Fb&b#2Z%w-sIIuf(I4`Yw+5tNmULS2WwSX~>Aae66OXDw!L<^IDR z{v9Z{`x|hbieaH9x5oC9)YU*8EEfbhQ#3^-ZFcF&kr@? z!^lRI3#r6Skyr6nL?~Wa(GSD>EM$9qS5XIXpYgA37yKN00i0UITtt@)cg&(6ciG;A z%d#_O&29Dv7i^c3~sa^j5a|y3C{-_sW=D?7 z;r%bBm^aWLpFP@(Hg6-5-w}mdgn77K!40p@*@82o*J4MQ6Xa;C9S%iwzKITjukiFiS>c`T zJ8Vj6!=QDK(LSaIU-cF9l@)W)#>1H{zaK*r#96rhq7d-!pAEaGbb$Y0HEynPKW=}t zDR;-yic^#f=bV!)IfVdi?%@n2Zo-^*;F$dgloJbK=&+S=yj=!9eBMHy>>1DW?Psw0 z+A6qvp&b^!SdKD7gVF!*3S1er5D!gUi%IC3 zz21F=Zp(L=5}1L!0j650S}XYWfB?KsTtR)qrpH91!;9()sWAu|NICV4!X&o=CWgrE&H6Ho67# z9bRMq*H7_4N*x|@d5jAdBVLniL;p-2RMZjp)Y=fbFaA4~I_!q-PnSVybu0Ys`2(}s zWw|-yb+{MfhH^aygSc_GG`T%0DqO{;Z*aMx5jM7zf;N8=HV&N%=RLD%m{}2ND6*Ga ze;&`2&2=z(#1PzQV~Lf2hojbhf;%2gMz7RSxK`wThZ=UXvm?rxd4djJWgPm(4#)n# z?L|K9F3f7kLV1TLsC@PnX7=}NGY9Ltz;lJ;|Nxwea<#7t!t8a#!QNkoHYw9#EFn>Cy z_>SX-+#Ag)RoQWiXQ*=a_(yV0oIZxlAauw)IQ)1D3sgV*Y1aCwW^lY61ZT@$%5i*=khrQ0*OXOYg_ zpV`jb*~MeI?=OdQf|fq_HLev7hZe(sHV5G7-ClBN-77pMXX6SL-ZmV)v`M%uL2nFuoELqOCPYqlUSzYQ$E^uYH0$lzULS;Vu z;@_<+WZ!qDG1;XS_`-}sBC__j7tF)f>go8myC0e~H?yJt-_I9 zGxO; zuFyI`UPvpvkD5pGFthzDIw%x{;Sx|TIfs$o0eO*;S zl-Fyr2M#(IyJsvm{E}d}(>lx^;)OFm_~M0wn^3Wv;F5Q)sADbW-ws*hz-%)-aDZZF zUu%5C`{Iw%BlrSiagUfm-azZn$F>3066FL1q9@F{YAXmIMhV@qeTA~meFQpNOQ>#D z625T?f?s7Fdbb@x{?KxqBRS3V3a8V77nNZ^U=-*s%!24;I&Def`R9_7~I9uD=Nuolr)@sfPF|$N=@PxnQZ{EX+J^hBd3qF?~FT zwb%CG-k?O>kduvWX2qEO<0f)JPx1P|Px!AxO9=a8B6tQG3-vDs2utFX#SXHnpt({` zklcBVJAc&RQLjYjqiiI_?xl z$*sq-RfjRw_7HwraRe8ATaV+W8ROR5GC1gUI&(Os%L|cCRNbkC_TNq5%!ie5Y+E{j z4Z<~p({Qk(6!gb;i8<μ|BU_^+`B3foFSB|Zh-tU3Z59|2zr7QwfP`cRmfNzeQ2 zp>dI+#P2~6Q{H-vjke=iw{I=WA63fS3iU8T)dXjHt72WRB35zKQvAr@$GKDGgxWSOp{&tZcymBQm=vTa?CGx{$hZB* zQz73_t6u|l#a+j)p@(tL_>WB%jA!=|8arc-3XKE=AzV><_eQJyiR4ITr9l?h_@ z;Q}o3D}@B(yAX5!CIrc~LiqtH%uug@cV$H|=4%*O?~R2WdxGIvoEucszoF3&qNr}@ zI{G0hj9<8O3h!eEY+>YXX0`Ji+oAZ34Qp7({&inx;VXjK2e%hedynOkQxk_!^?(R^ z-0T%?(fLX*>x_m&Rjc7s@j)o)69TI~Z-!jYOHdXW52NOXf#Qxh_)jMc<{Ab-uB#u| z#yCKwU=J>FGO*}jF7=WvqnGAZ5s!67%(ct9q(%D?|2nRo@!D-n+d~xj3#gv#0*vGGwH=KV{;PlGOEc;-30cQP60p2@@ME&2HBYZYp! zG~QD6l-gl%}&4HMqNhDr%Nu? z(E;EJjT?r8=9+cTXPX=FMuD&~`zlO)eHe5#6G8sr5$ONV6@o%`!uEUH;ZEH$n08Ye zoU0#G8YB-N;~&xBD=TT?if?4mn_e=0XoGZq&Mq=RC6>79%#q}N3MA*7IX*RGIvsf= zk5+y#p!VD+8nw1BXeD>keN#t3L$m>S%g=-BMQ$Lo+#N>e2Ep%8H&AU^48=<(!^onQ zaQ4PrP~N2sOZ~0E@47CO%*dpPr_-o` z(0TY{^~G`A%HAR?AsLk-QQY&r87-@#qD7Ik_mEN{LPl1l2pOTFl#1t`@70t_8fIEb zY57qp4eNLRgXi@;_c`~R@A-V*?WXfY`}?L4UD0NuGkrXnUbc`#jgx`KjAYVu$AWN0 zvhe%I0Er*a0=ob`_}DEE3*uBkbCV408_{ zJ%bs2a~Z9@sfC5zlW1k_AdT6w5QCHc;}*8gMWfCG7(X|gj%GtKaApinJzYiD_a8+4 zrk&V!TnDG;oj~X8ETISGh4)S-p|*q*24&1c9U-6iLDL?WORmCn#RzQOqKIQ&nIO>@ z__mVuG|8@trWRhM@#_kxASrctE~CfUzZ`Hlu3pAT-Yp`xZ&{Ox3!;haVIy)h>@V?O z-$u%JmXepF{*oVcx5>%^6=;3>fmH4mSl0EHFnggeN8Bn4fv=@NuKy!BdrBSrgq)~< zZx4wpzE2w7eIyfehKTUmC0!v(pzvH8G&Xw^gZVQdSUrxIU*Afq{Kvoo>wGe&YLM)@ z@`ilgT}7(q-z0ZONW(ufLY}|ThATG{iR18l&M0FOz`NEUj4?!_8OHCBJiL(#ySDIlXOJ+{DWnwE1E! zO?VnYQ*(3ar(v5oZ%u7$ECk1m4ls4S?&P(}}7Kvo4961kVvSm=U)Sf$6 zF;kd9jiU|k4N)$1Ef-j_jVfqJ(glw~NX+a+8YAJ@9$dDaRN|IX0=hZs!`hgVecvwdw*sYCZRCEAI$bUuV zJby~AI|q?dveg7M^~s*#RBpbwIeg04z&RC;qjh_=z$1DZefvV_LS`k9=Ev3a!UAik zT5ZZzn_qCqy;n~D3%E&T%T%HNs2mO~i)Z{6-yu<>#87?9cL&EzAFA^HGBuXcnYw87 zaGbj68)G-eU0~-qQptu;YTL6LM=nh#qpta*v7RS72`r9zpB-^xRh<2rOj0Fxh_DLcGz|*KT8We7b&)tdnVLl+ zuI35cUP_rG49s3_%3M|c%P6EvLu$3a(b58EI_wd7r)WaznzBi!swb(5 zj3c{#$I*3zo=~M-#H~`y;Z}w2hR&{JQ9@!cvvQA|ux|HqH%7z|re_N&-O?=zayUv> zA6ZJd_F=>@ZwKk{E@uAP=P+&0f0EYsd#PAXC)u8mMfj`FC|}13T#ZBAQHMxkRxqF2 z^PrYE3cLUv?RGN!=XNIYn*8I`t?yp}r z?JYjcJ<<0ND8M9Ra zx87V$YM!UqXK1XX&I|S7c3K}@`1TGN+^C86Kix<~wh8e!$YG>EjfL~MhICn$7|dN9 zOxIuiPHa%ftDP{WirfUS*m9cLtR~#KTsPplt?w{%GG367&>%WUZArPKDw$UQhnwtS zMkZIgk?bi&%;~dQqDc)d^z6`77zwhd7#dB=tR54;j}x(B_H3wYHAQ~RGzi$hIk;s% zq9qT4VM+l({>etr8Td%^zkMU)LK|rGXlWQ2N+TudnRI8KDs;uo#V6t3aAa0JZPezN zZTenBa~;Drv8;d!101k9%AA8aS=n^Q=nqTp<7IF>z}NAkEQqQ?(4 zFx$cj)S`Bx$Fwc5RN7BC$Db#~GJ*?K>K;)tpMy&(`WW`}12RQ_E^Zwi3zz1f!bf8@ zAw4mY1nXMjttT9L@kASZ%kt3wQ#eGFBoPDSLl~R>2qb?qIIYf(JGi-@SjfNN=(=^( z!(cP4WB{Y`DDzNy7B~eTL6?3Ps2LkTZI>3148a}sJ-e0k9dsZzp<{*FO%}8sOu)CX z2jSyw6&e(Dhc0FG;HT9I+Lo;Zt#56piNr8)qEWP=zlb~eC=x=JufdQNli_w=ynTV` zH0t=$k*qAO=8i5hqM3J=k^5$gnZyoH(YS#G^7Mfwc1+fXcX~EBZ2c5)x^IZbw{x7v zL=AFWZy~L@RnIth2cgQ~T6nA*A!L>3fCL$aB2}Ol8cq<=nk3BMlnsxrrsKY33*ipM z1pQVlrT=c&!~BsExT?ny8g+Egun--t4gcbB@#`5XuX2?HWjIQPpC;l zL(VhKNne*)HrA4=Io2>yU-HTL^W)J(#trVZt;HQ>zHnp>!RGYy#6D*X7_xJ*?~EbL zO+H3n&;7*h*klSzO&zg+<5VzStxKs}=?GH8 zowZJ&5h#YmyC#yR8aqziHk?kj?;+_4^)$eykvw`SiDuiQ$y%SW%$>o>SnO^B+n%)1 z0I5VeQN{H8p56zQ*0Z-A&KVSpdTZTyb~fYjV@%JyR0aLlZSRNX<$^JTD#y z%#Scks~Zn{%4*DE)nVUh7iQ+XiRkz*6ll;2Y}waK?z;~% z1D(n^lraJhi>YD${m*2nmp7JAI}A%^+Tr)UQMAwHH@T2zfU~!_z$aT56fgBBSIei6 zrwe;Kkp9r!B>kfdZ2WF6oLapkJCE5Sg?hN<0~R zf-eXgm8k5&c4K`s~vj`k6w58?EYoEz1BqDgYf zjp^Y&Pm3u3qI>YY zs|>KK(~17F5RAE*0$l^MQMA&F1S*;^X4IUs?~P|9^;)>WrFTThrJiK#$vozkh|(Iy z6}CRHMRibsS+y*4X2(c0d>jv*8@FRtjV7G;^(TrK6><9TN2FOLok0>tAG@t0HRgJv z(=*>PA<@5>;i^wWY9Ze%`+!-9&!$$YJD@yQFYlH{*8oERFr0NnBi>axz{ym7k2A$xe+-Cg@lq9sB$tIkWmT zC)Kf&j@>Q?z3JC!$HfX}mAWxeY|EfGeA^joYh`jZzm?YORgipLfoGPviTP``#=-5I zBsP9f7TCrO!t7_VkT)AcE+!1n5sS^BaGetJexah!T0*-2UE_T7BB(^bOz!r<9EXd0 z&vQQAn~3+494dY}j`_6Z5a~WzNSo&^A;#No(xCVb@`}@^^Xd}0*6`O1|D>Oit*Wqi zk3aSJTu&=4g?n`0*@(F>NRCQ0X^|Cv{_+0c_G=1Ceh(+NT!xcBHg$r#>I7LTBhQ_) zzRbK@Q|{n+G>EHtnnQYO4Cv_F-yC{oR5M~H4e6L=e@VxIThuPmjC|H>7oGE2%T<-% zCa24h9`W!e&kM$Lt$*6cuEGM^8f?P#-cKRTPdn+N)5D-Ke;8gmr9sv^jb+x`#ZhBM z8V+?N)0n+e7_EF>6n*O%Q;=ssb_-tB^mh%UUw$P$5|KgPUf4}r9EI#sj5K+aoJu9; zE@Y11JItxySwx?|-cMwO9>s@Kh0G*5Z#vtYAcw6T+c%EwGo_}%V*P_^W7c1-Sx@dfJu~_cT^NS`5^fiEJk%v zT-3PKjJ^w&A|1Y4xi<5Aj8$heCo%3BCpC8x)1fwxfTbk5$PSo2E8rl*)J!!iga(%rFWVJ1RW=*Qi|#E zA8*O$$_N@KJr}VvlWg@|OTRZ%lbQX6G-hcMvD;G2tzm|7iyp}nIm1WP zV#Y`E*shm;UK&eg$6sfrEsLUd@%oU8x%3rHA}@^tM3;*4ssG@2BDSQC${mSfing97 z)x+h`+dB}{KQG5wzh04`$&#ccc0EeGItE*49!7mL&M}J%_R))$N0_?@E;E7hmGqjVDyVh#P=m`4 zm{c=M@+SKhRg?B36CCby2M+;tD_TTWA70CSFG+I(+nhi& zH!09BQ=*Ceq#AnpZY6pDr;anz@Zv_Q>?W*w2Tkadg1z5U9Nxc|LgTY6L}U(9&89a@ zt(ZCNR^N-$Z_S6~SEs4Qx`!g=JV$cc_64nhPvnN@UXiDICau;iAk6Ppj@4nfv|2ZE z?VTf)y+4z2c{`bzaQ*|AJG+sXJl`(JF z$y_=cOA{kg$z`3}RIk>Etcse>WgnVNtMogWXEV1mYx7Ui;(emE*OcCsNTr=qFB8=yfqCb{5lJTr4B!8U$i_XSk={0>@yIXc+WlF$HEu4v zKW2`bl1$0VT@Q(?T#%46*#-x^d#O{y9?mLdh;;URq}LV8M3V(p|Frdo@Ss-~WNl1D z+5a9B3zKMJqy3aVp39Nu0DEpl(X zzV1MiL(`f`^v;ZM5^!ZFJu+!Mc~sZPSPL`L`XzZ}Xzo_Q+v!ib+JDm>8@`adFhe@0 zxsY3OfHDjJmeK**Mc!N&$D8NQkt?5e(E+Vca_sO3YVyaD*ea|=PCo@U2riTztsjVP z(G}4#xjx#S7Y-wA3((2=AWZ(Nh!5XfB%0-kO#1O=I@`OLY|5HIHCyC3S)Eem@u6N$ za;gOhy}(f2OK&UJZhOiMJKxGp3(OWNMBQZ8T`i@7y~4V5Y8t*hDa=?NcF|*3DdVH2 z1^4-M442CUchyk>2VgUE$ay4uhzQ0FDJo!W@r+x4c{Ghyo(ROv3b&t0BSV)a!5dsI$bx6G+@0h%G@|SpiJz{9v(kT(a;)M^bS_grP8F8v z24MN09q_za7u)8}VIIYNCfu1F_$o3H;^xf74+6elvGkS05vR>m-9#Vk4qM=zd{>BY zmBBgbRy1Y8BcYEbLw4GX#QhiZI^JTbywhh=pLtgHxFkz5*vv8>~?Cn&5qo&@gqKgGPvRKZ*uWa z0j)ct$zARqB-)vg^1i@;DXT-@eZ0{9H$i3bTB;{`91d1p!PjT) zpg-&q8QoQbttTFUgjN;4d$|oJbPI*h2ZMCl^fa*PF2vR83*b(9Ja_n=Ca(Et0M9x` z;5@(kBq7p(c%DLwUWu`9gNVOWO1h8Xb6&;h~*cvNx^zAX3xX{dSk;N zdGK~L()I~Z{^u3_*Yt@|a{EHsY=lgS(0NUmCyVc!Yby+fo|1=4HSu1sJe+f7X;1c4 zv@AXd9Y^P3C9f=W|6LjFS#s#59ttlkweZoUaMB+(*^MXzVC~lmLpM&*bK<*_s z-zkTNh6{|Oos-ctZ3*;`ct@iT9j0>%S3tIIEH0z#U`GE@`fs-fYWwBDb(swqyxfaa zH%J3|9LD{3E!DlbYZ55%^Zd3PqUpoSiMr_yIwH)F8~orPID?At z+>}Ug9$!bFX*gl%hl}v|;Tr@o5v)8funDF2Q>E-(fOZ*J`}-NWo23Z11SU>^(QVug%wHVS7*O@vCb=~UyV zu&xz`!AuwH-fH|Yn;YjEV zqF`-_V|^FE=H-D#A$1 zIupFJMjp(?b7&#M)8I*SNzvLKihfz7WDDh1fHZc>brM?Y8Brw%2oIpW?a9CsEWht&3=j#-q#bCro757t-!@imsaH zMt>UV!H+vpC@--U!hcJk&gm+VQ`lwFb)Ur%)(s@-)IqvueKL*oOQa6Fdl{zo64x~$ zmir^oNS_;~kT&&lk;3+K^za`mvZ3jqC@(&c_SOGnQfFrp$^0F(&f1;yBo#5;d?9)B z?07#uxs!H- zlb=17RDQiif6O|@O|Dx>VqC5>VZH`5{=$5suGv5O-ee;%^ht5!^Owp&;>KN zvUZ5s%!=cH@LYuK%%KnF&Lh?@FOfX$L-c&|B+~ooDf#*66HR*2L@I{wpk9ZaNuu*I zW{Kd;R;XDoYCmOsJ+5;sX>1rn14Gk^cYm>iSZO*#&=2+1f8;d!{M3F}aE!D0)n6&Zseq_8j5)JL_{@7Tf95L+#8Ns#)pw z1~nw-zcwMdbskPeZre?EO9B@GLXs?%A9Yv=-23uaFhN9VqW#H~z) z-2D+wO=A@xc;8*_P|s~rFBMKw9p;lTp#ZyVY%7s5ze0bQN5)DjHTagFG=mL_RxEx~Zd?EZug1?(-3{5Z9Z?&_WN~YA}L^1nJ_}ug6_fDmw;m(ct;af018onDHtvoPb>n)@qYIt78 z1$TACqxylzG(LDf*5<6BDo^!kUD#yqj6@T;u-%0GH(LQV-be!PN!?`S_9JljMlPJ) z=Lx1a-+-~|VJIFS3%38>fUDyynD347RXhWvTbIH9WBHKKy$Fui?S_CRUvT$vh2`Ho zVD+?lFekQ%5cwToZd*YXDOkdnT!H%;A`V?!bs$boAEKA2LeFLsXmiLVKfHU%jn%CL zg}lJw`vv6P;-0D1QVGnz8G-b(_6R!M$Q;Ld8Q`jl75Ms8GCI`8V@Gcex}8FtyW>2L znE4ntBsF8|!$&yMTZtd0p}<>d37O|M3*JCmhi_FK%R7~u@C_sWV0)%K&woCFYqSnx z_d65J-J(FgG-=T*&zvB)P7e-!j)7fH&ml|5xW0P)2Zm{>u+!&t!~Sv!c4l-dsPtDr z(xC^??RgkhOv?k;>4!lk!UDF0_`-yg24d+GKn&A;$ci9_OFS`$$-3o4K29QE+R|9pU zH1U+;VH|ZN5_`*zqL>MXj(S&+o@zshiM42T^gDj$l=yAa#rc69n*6#vbAB+xfWM)m z$IEZk=exr+_>|x;n7+6K!`-)HdYmn;GWDjW$GEA5Bfk@!X*=PgK^$aO@v!)5Er_Ih zVDl4cHfZTf*mk=GMEomgA65X`GfDw#&%l?QWe|8~54;uJ)E{q*0@hC*+{_P3IcBnyoWIdrFdZ3kQ1s~ch;n%1+u-9=4?BB5rltf$L)h}N-krxc>HVAJ} zA0v3)HUWB08^Q*a7Si_f6FD;e1UdIdi-@dDvE6<$f z4DFWFwZ4zIS3ZT@&6pxOFsYnQ+rN?Cd`ju{X=-@7+yn#nY`|Z?!qJ^Mh6V?p;QIxy zaK&0#UL|-WzxI(K@4gxMMe)EZnmF)Fi-pGQMFoD!tS^{Wd>tji_EH{{f(qgKjs!Sroed>_j>6l3RPZl30Uo1b zz-iB6_%6zV#%-Yj_ih<*jf)|qXF3c_*bF0nB|wR1GR)M;g5UK=A!o@^P`rN}nhqqx zq36-?d3P|}FW3RQ_w0pNU8|s-_X5T9lHj7(K)yv*lQ+GRBumzc9CEzONPlhNl;>-4 zE`P>Q&AUtKO}8*QYf=jxxxSF9j&`R~Q5z_gUC6nvtK;|r47uQb z)Ig+x!AA@*FWeUwZ;wH_(*+os`3}7+2XWS2b)L~4&tJ)~;Uj*y@Ig*9d8s?5{NgrM zK5%v~4)}5S@^ltz8w+mt;^D&l^fA5P#XC$?&LH1zR}r-tuF%aDgT$nZ5WcAbqGZdV zv-d1atvm;x6*FOQun^j#NB?7bEPiGKoMNzw|q(6JL1>jXnW zbP61j%K{0DqmaM72##Jn3LlT20JRB6Aa%)Fxc@r}n)i6Y&2B&NzwHGs%wNLG{3DVf zS;YI2BpLNz5%b2_pOarMc;ZS_XvowBv~K$%sxp?N8`!h-;hP%z-uxczvh<}UE ztd%SMnLYKtyaukyY&o}TsxcLtcbXP9*VFK8LcYe|47auhV08RZ3~zaeb|yn;6R5;L zOd8Eko@Jzni+ln`H(Bf+Zci{o?dMqg^#W8UiXqV%Kk8en##BXzY!Ptoz zb6^v>n>-&D-OGSWKBuAX)djFwTm(Pu%HX8c75H@IA`EWh!Pc@8(%Z|xDyak_nIaJT zS_nyF4#Q`)2-qB%1QWkTgY=vXXfi(mMobpOt}liw&dKmqEJN@=q(Rg5Xo2??1=Drc zgV`FPzc_Lpq`j7gihVDMYFQ>Jm0U=+cS?~(`JY8&50r|=E$HBmuRB8xq%H_-*8&=T zQoRo`|?hke7&9D2YoAz}Y zw_6z>jkd?~V=?&IRD>Oi-eQQC&=1Kn;N9BIdDHzYPe;w>m7cJC-1PDMgKz5m7JYHP zwO8jpO?b3 zB?v{|s-a@tJ(y?2@+?ZDD(s@nUDsX|Kz~LfHROV>H_>( zZ~+{>is4{UE~I};ht_X#uq8VJmUQfe;ia45i;62evSncRR3k9(YbEcgz)4#>kElJ3 zWy%$oiBujN(vLSns9)|1sx&)~x}APYFIGLJo#r+4?%cC<$<&3f6{Bj zM><;Zr%yWZQNtbi6*Db)UuPqJq_R4Ha>YLkKHV&=eTc3n3UJ5g&4~MDF>32x`mfKK znbSW&(hsfy^_qCFh&u`f3TMFgU6Smq4t7hf7cH!&v(}peI!Yt}7ox*2QY@ zs4j=o?+U?VT0R&hpB31==fHQtMOc@`!Ikq@KwT;yhJ^p{_Uk91Ciw_ZA=^1J+Y353 z%!kh@GvMpGG4OHM5VeTO01RXZ&7JYrG zpI%#QjvHbQO7dFy!kOSo34w+4B`^ZTO+x=6r000UtC=g}0Ix z4h)1sK1p z96S!!z(?zspd$VS;&Ok&eyd)ve%=E!?|ufuk4>s+8*`yeEddS-xzLWs3*e@h9Sn>a1JRr&SSo%YsjrTc5&HeiDDQ(@-kbos zX-qHq1~+}bW6)^ zZsMb8E~a1(r!1e(8C7c2`}(VBSp5|`Y?l}=avg=1caD;)m-G=Lcn^dGFM}=q31SiZfngY;GmW_z8R2pR3UBj2z0u z)^Jm%6_Fk~8lwI!gHP@;@Gtl%B(Bc{MyV7wT)GEuYF@yEqK{zS^b^`|48UKx0ceZ; z3D0A{K$2uTtVw?h9iDCA7Wp0$U%rQ-W3M1G{Rz6TjnNbPK9}y^W1?@~}?m9)Ivx#&2u<=)AySMq}ul;A|6^bk8kdlb=6mA24@`@l*~Lr_uMF^69dlC&8GM0ny+uDulZ{_SLGwMKkE~#$R%^OXptqm zU1=h#_hJHTHf17PZ9I$1~)#;_JD-XtlPHjt-o$P|3c6FsrjqAC~T zsAVptnFC+xhY1R}f0qFc6`0}YRaST@OYn7$osRc}p4r{gZpa$W75ck#aDs~yCj4>2 zb16>Pm+XKp(T;ep#|_!V;^vraTWF##N)VY4mfZ7Bbqm9DHmL_ zjVOH(gUUQR_?fvAE_LQW{Sh8otY5)~iGA>UP>xkL)MkeT7_$>!Td)@zCb0J=TCs(D zt=R0qiL6uFc=p~j3wC{%5u3^Au#1e8+0&-t?0b{<;OE1`u(g>m^WOmo(sczJn^Ev^ z=r?H|T}D>!aU{bJFJ^A5S#t>;I#kv!jcRK?p)wc5@STk&POck`J3J;}ft4NhNl(Lc zWmmk_ITH=H5KJ=w-1`DB+tLBA2=n=D`AOJ6WfEq^GB{d%I(DpIfd>Hf#V#mz!wyV@w-Al z;R(Z=C|R3|GXfoPlTR%jk$;GjFbpF`FaD4Sx5*$W+6+Uw$DsFS1wcg$OiCGmX^WKE znL9_aOB^j&Uso&k%@Z5e@v$wd{?Uegmt(^|ld)otv|F;`Y3A(NZ=+bpW18%qWEpm{ z%2${ZaSz0{=R)_FNN@<7181L`zy~oYsE_7|soZjMd`bc{{X;ajZ~Pp3dkdvb6;-1G|*m!US&R2@Su+UWWbv=W|n|ORZy%FCx^kS^80^hr6IDfZqB>(lWA^&mm zD1Ks~KL1Qkhp+7%&c70#KRc`SbSp`YhkX*PEa;seQPaQ!wI(Rv3XNit6!7ZqxrV% zzb`gyN|rV2=xWJ6svj-96Li@SM}a-AJP7T@&%q|V3?^Eqz@*BxaQx0>xY(l#ch5X0 z1vG_hI`EcBDjUI#ZBeJWPh#lgWA#*0aQB9MHN^Rct?=gV>8Sd6Ax7)0!0FnnvBZBX zF8sG0nbvjKU%w2+XZWIahZicJbjGLOCZqG_NoaI!DoT8E#8Ry}Xl1kxA3uu0TQ5)I z;!Rg@IMaYHqW++4vmEacCCn+V=ey(L1q*jEpU0JcbeOsPt4CH=~5Ad34de ztSSx@=3Nq}0eeq-p={71EEPN{zdr_JYX2I1y<#Osl=xxyC?6b8y>Q137u@#M5nuK> zqWO$zSQ|DSH=de}Nzp4%r6dN|tUQTtzFt9YpbnXt-;s@#=d08;_)ZgDe$N&Io_(at zZ!Oc}-z-z-i|(lML2DFvi@kmLdO|xUi0)N}_g>F_JQ8J-ByZE1DLq#IVjK z=tAb;=ta&rYSmP<{b+>e2G!9jR=Ah_)laQ|eW%x>-_oqq#Z zs3aP-jC1kTlxwKE=P{bxdXHZczTtsj!SSQ_7w=d6McdMTJm~jN_s*JK zFRq}+U?SEX_r?pK{?U|so^*z@0*SQwOkVCc2W78dn0qe~OtddS+?E#bk?sYjU-E2Z zvo<^4do(+1*?2ap+LB!@KY^WHX2HtTjAmh(A-i?6E;}kyo89WB&Zhp9V4u(GfXJV> z!I?h|3pIDaVWB5;YxZ-pwq-vF$sb^HjVEv?9-308t!cx6TY)XZW0v$$_~b!`j&+g*u?#YZv!UI5-2BZXBZZdA)onf%WF zK%9?Gfa~KUp!vsXc((8saE2dY=(iZV$xfBU3_bQrt2ujap$&Vv&6@ouvSNd`jc4uZ zOxcZohU{1c9rn%+4fe_;!Nr~X9ai}_!lwJz;B9ak^hGR&$9+mLzOaAn@^E zraj!8O-Zy;yOpN6Xy9&XYy9_@#gdfem{z?BjhMaoAT=Bd&#cFep;dV8$|9V}x#RH` zCzRf0jwgyo;Mq4rl-<`vlaAb^J@(o3>(xY>FP23A2sz7{)fcGFzsEFgvjpx+8;eJM zd{ANKAsl(K5FcpXLkHsybW0vW-@S7DyxYqB{GZDFvfqmQ!%|`W7iL4}nict`voidc z{rwo#_7SIT6kI4jjv^JZ)@v#{=`WWmZpbr+yj%K}3}#zF`t7Z7u{H;uzkLA4HlJXN zw=_HPpB7u2Z^Fi0p2%KVYs)UKw`b{%$!xQ`CEIOi!FrE2WoLaJ!@55m#V-4z&K5;T zv&|EJKwC~N_&+WLNB2k|OC4d)nqTCcZX%IcX+q4xLYUN>{@k?EKx(GP(YfUV)auSi zd|PjYF}r5tXX6ZJM#bf5kogQnU%%nGR5@N> zaFVb8smCw>Ig&5ujrkVEdSMbdIXPDQ{!Y_1-i* zzN3J~{}(J$X-g%`%8kJ2o-otjC!9B{D2xed0;a1U)|e=}=Cj@jdk~FL zd`quBKcY>O|D~$I8xP3yGx#C2-1HfzhTcGx{A8?PSbUw)K*gOqxWvjha?4as$d1f_ zN&6DuKxi@Od)^0)x!<5PP?|OUt;709j$@-%*s<+;gk3ceSnpp`*+^lpHgeH8*7K7I zs}ekleXk?%m+p;V9TqCH#_p1=|I;tfta}pzLj})M_M?jOTpG(bS#+8zi`%+J;pTRCY^&deYlR+U{i~~3F|h&F6MmuRd0DN^%Pti8{oq#3dzhVxN>d_tavyL+>3-YZTvH0-c&-e zY-bW}n?KC44aXcBJVWTkn_cwvgR%IecqZm)Sfi4k93~5{(y+=R8mW{(yVp#oOKcVC znFnP8bF+-h7hDe~xy2yAJqZ%$m4L>zE3j}{83a`qfn;A19LT!}{sPbHweZ_~AB=$` zo>SrUq05A9;W^utU+Mk9`8YTt2UFiP3%NH%o~VuI*ZlG2FVsa zW(oFNm6C80o8Mn54q`}3vNyIH5*m-mX%$S@2+3M9WW^^~q zD3xHX56ZD)a`jjVO?|c~O^c1L*JGc1XtA4?sj&TzRoR4D+N|GBb=Lf}1Y4or1@aOv z;ah19=#J!IOJW%qzd8;>dJ!sD9=W%LR~x^{F;*U`82F{A$`#B+Cg$pDhb=IEcAGn!4=h1m~p&B zm<6AQBZ=j3()TW;#N37FcOF27Fca+_ErMNpjzJE(LZ#1F;(aHXconNqu@W;p)fbNO znN?VHUQTcd8S{>%Q}{1mmhj`=?cn{g!uiL`5AjdVB=XDOrSpEv5_!WfD|v%NLp~72 z`T3WW`2*L~_%A=oaF_HbYSJVR0x}&o?el;;(P{8VsT|(P)k;(XvorQIy zb+O=*IBw7whE?;2WBUDc>Qgg=nOmYtyoKJH%3>*KQkw^w2BDz-F%j~o=EL(xr{VSJ z61d)41$W(Vf#nzBuC^uxcHG+m9={hr=V4VCXjdWk&dsMK7US@$Y&!1GzK#`#KVv|w zK3`lyc#(53-!Lzd-}EAs7aQ2ks|TdB!hx~UnAAAW@CA0*hmQo$*fuE4&Hmu8n$3}b6T ze*qUc0B`O{v3APxtgWyIzS+?XYYJ||&dqg@AYKP^5_yo2x(wCMMWFsV8X9^{fJ+$$ z+Z^@a%&nhf;qVz`$>K*27ghYYS10$-#pcgwUw9pT{p}q+FE|g6UNyv?Pl6-nvp#Zj z^{^o=mkzs=#m!|yIqjSOn5932N=6_H|IV!gu5c~n*dGPQl2Vvkhmc%Q1$D{@M{e=Z zwXPI6*HoB!Xbp^#HwS~JJA{owVnWBH0~c+haxc8xSUckXwXpdrqF5Lky_%oW&!oH)D6 zNP%sP{{yajzd){cCsbc-gYe_6kepBp7S<1;?TiSf-8%t=yN`m+27ysDxCLI{RR`IL z-9$RNg-o41o`m-9b@=+vg6di1Pz|kSnjg7n?ws>`w0fRu#OvWH+WtU%`}1t?0j1lDC;`%J=_I(V6&T@wIW-uIv)o zvz0YM!ZYU{SxOs~R!dUSqJ(HuDuirlA<-tkQlbSVo;l|fN{SK+Ez&Lt38js9-v7X7 zJTr6VzQ5n=T88KX=_OQhdno;Bwwp#UyXnfy{58CsMn8J2p)Q_N=qp8IdR5{Fns(b7#QR76~ZM*^W-v<~rb=C;8rzJ-M^wAlW+QGO1SXBR(3u zCsfReicWK&#%>EJ^4vgwN*|!z;}dC^=K-p)W(z&FdI6ngHkWE_vZarVWa$fjZ@sPH zGBIDu^E^ZMa*~ffqciT>uxo=ET&d{I&1X?tP?#|Hu`KDHxt9d}yGADOe@`A~kEMG* z8q&I-F0}KvH~n#KI~~x8p`Tm#(Bv5jRQGiPwNYG8JBnGVs$oP;TP9KMDKa#B-gfeA zpdNRgIfR2cGte3ZKiIi48X_m1ghL%~K4vK*wV-ga1q#mB!TZ-qaC=%fm`W8xx)_0>vLq-? zRsfw#H7G-@2WhrHMQ3yupexa1IP>Y{cyEgw(X^5wImhkDbY)*M5>jI~6_Y%Lr4NaYBK1t{qE-AG=A)HYcLE zQU)yw=8A0Im?74#Z%eB5<}Ko zMxHg!9){u{ExdQR8 z<y8o5 zlILY21roXRE{0AJh)iqH3 zrv`4B7lAC#zw_921l(gIplOylJf2gBu9euJz)7$037$C`5OkK*+h@lG32kA)oI?6bNQ+h0(wxAGtxot7k#kN$tY&`XJ?+zzV-k_(nQ$z&f2WbW<@qkUX^t^Zp|)#X~^aV8L%$jP1q%&s_foU zQ8uIE4-AElVF%xi!XoKPSe$nfEIW(f+>vVNE!xNS$x7+NUTMFXO84z(MM*HaE-XNEBNV{x@Gda@cLn^X6@Y}nVX&T<4owel zK*W=KkY;fX&b(d*ADWaQ@#F{8Lc38(@m0pZ)QVi>&qI=Xa)|8XJ49)h1YO!Ok!IwX z)8TV-=@OakbWe5^eKH(Gk9F*%n`s=)-4H;nt8J-Lm^IzzY)N}~rgqY{?c~jKc@lMC zAr4ym5S`6rAu%i-epa=@$tyDKlts$yz1MOq@zZ9rIeuP~V8m|46WQZujM=<78tj>K zW7x3WzrZ*6E9k#(hoH5^uxeHw_+K~=zw=MPM-m4|`w+xX72pD=g3VWeRS%><;duws zI^rYnIG?~sik1r$ydH9|iVtH`mp1(8kS3{)nnSM1%plJcShC=$JsFo1N$z=^A<~aG z5<}ThjQP&~)EOu74&8P5gTqgOaZoxE8*dI@{_Ka1)|+9;#BiA5dkprZ2;s+vyO271 z6-x83!&>h=kca&c#b@!4wEKaSEPY*!QxCh{IOO0i_wOMa|ukFBJ%iqC{>;;!8Y_*Xw`*z_JHd;fA zy*_;yLQ2F~g|o8kp4BhlV+8L8znKgN&lSPgl}A8QWEoiPUkdLx%EAJfLbT?{7j!)7 z3d#>yk5cYPGWYA{@y5C+d}Fj4f2_TUzv7d4+D8M@bHR@kR=SenA`>DVzl3B-Z6+;V z9z?QZB1xL1MpETvNbrX}c>6+mfoq{TqiYv~W@r6Dg)fYt0M7wWg-Gx^kp)rZ$3S&l z0_-CN;HOAndBu4!$&7)gL+;SO!Vv2E$H4f!Bor+ciSIW8*=ZI}hPD(EgVGj~Cy=A} zznW0_0Vk?v??Y{}*3pKQo2Y{ME}EaShsIT|qXOOytkG&pzqmS3F+QjFO*5Z7Q}rP6 z+xZSxkS`=e7eFI{i4?uO%MF=&>f|sk-!&x^QxZtu3f?kEg#c*@*8p=RgW&@0j zA42UkL2Q#aCs?mKBENi9J7Oc;ZXGbx$B7 zU-&LUpfVY07A2pB7x6XTadgi>1l4LLBHf*Dkox?IP!Zt{Ggl{q{FUSIH#!3n%q~I5 z>2mn(jKTBnO)xD!0@GsR;T!CN?o?+8Tl5{xGB9V_;293N#}Jc&{UnLcAKzO%Kpfn3 z=<4!mwDFWHm4E6(XO7!Sm#S`|3QxAu{3H8mz0PKuM4V}>s|hWcF^R5@QKFaC%Zb8{ zo#akoKTgWYMom%HkRi1MG7o2fNq#S+xoWYg-r8(gpAOq`)R3K*YR0bXux2&SPGx<< zjoB87v8;CQAPi+nuqr>_LI3+Q$oq2|Y((Rs!-jvJy>)?qA$+H>UIISd%|tzGx1(<% z3(>FAFM?S+%y2?MJf2s)63e%!xfOtJ~t*D{XmKRtz9&h#Po z+!m3WUm0?UKQGy`ZEd46Z8t4DQ9idzeEaD4Ir7Jc^=tMeYl&nM-{`FXZv>M3oq{`^Fu`fC$W zKem`iuTUWqo|%#Pwc6yK${pOr1mfPGN!*gDxy(U@qbTUh2ufV+1gU0w;l_W7F#C8M zOqR`n<`o$F${RuQ!EN|7_beEtCjeoO!m-g~aDT!&o{#eunb`&5w{}Y8&9ZUi;>K`d zRgKAcEh&1TPoMs?aG-0SFQA>ved+D+K-y`uop!|RrJHt#(l6cablU_s>XW;AQker9Zvn6G{)X?xT^X)=|TmbEt2eCpAi*Pk$#^ z(Q(5Pv^DBJX?0B?_C;WRJ;cu%UI6SeFUz z?6Trz>`1Kzd-baf+t(?}ZhbkC?MR=$}z0OhHR z(dMFlVdmBnCS`G_;96p&u=s{C-nHQy&Q+2lkpW}L=!JY-G3GJu^)V(r6E(=gW*ai| zoEwo{q(Z)JQX=&td`@-(-v>RXOd?#Ka7mN6*3lU7GvFX zYw}7bhdA(O{6n{T$f&szojucz)~@xWj~tfLf{<0z#v+VrXKtZ>wM%LE^LeyCX(8=V z7f^qHS(?`MhRE?r$lU)t$UCD(tX;B@ODr>nW0Kckd08vC-hBrSucg>EdyLq+W7cek zofCV`VkW!bmLu!kV!|pfGGt5K%-Kp^1Gc$Yls&q)6|Ng&a3VzzeJc|N8$;l%l|8)r z(}pJOjz@EZ&gl2-?OfD6EqvDfAnx3LAG2L|aK&2@(lBiTsq>O2AFgW>6MlDE%D>N# zb5qE-He1rBK9z8qawIso2^&ljCog-u@DIOjcydt+7a!Ek6gh+<^;g;GY|Lx4ni_&a z>1vR)jE2Rt13>w|P!JuH4Lb@hLDbVMIF}d?2}V0%=wle{nKloS{YBwf(l8TQGzAL- zTk%w~l&lRbCsJ2Fk{`k!q_bX=iW<99{~gPy`x|MR0u zcg&=Nj3({(5~pdeM@c}ukQ6M`BGupJxbX*$Bd-Zg(6{##f981#x?5$~&pKA@sx{Nu z4heJiRiS_#zPf_7*ILGUm$7WWyCoa%VaE2}n8-df=AXHtBhV?@1X3fZ@N?-d(7Y25 zGY;5+l0+IR6#I{nsW{EW8*jr8Gh?vF#Y4Di;~3JPJd1p@GAB;Qq(~7z3+d%&xQFBo ziR*|JxisH|{H&BGdwzW2-Rpnx(_}d^YPt?P#hWwTmRGpOU3a;S0zI_qX+P3?JrTO* z>OfzYDHu+52bmR-;GUHR8@m(X(^5XaP`?)>#_k6s9|y%N10b?eA9~6@A+1x3kh}F~ zuC<7V@hxyBIxc6(vv>6*X1J4Q@G8^#>(;bN!iAdbT0m>#{3-6+L~TVj&^HZB=t)x# zD%s&d*T}ojAIFVppYI4MOSncl|Avs~S-kUNXg_}cVjJ2RcNoHEz6Q-}|G;jW44ZXB znO%I|oIU@17F%`7la+k$#YRRru_-E(*p)ex*&Ep=?3z4Xc2R%?Yj0W$E>H6z(BqBXVp zFz1#U44asOURgM#?>z{EgQ@U0H3^hHM}funeP9-m0%Avx^IhyDs8cnA57{kf!`fG< zMNyawRzgL@vv6A%5p9V7i+A^YY$pe?^yyPsO6`)%@EBD9tdth^4 zgdJL;&feT$#J;OCVWnHG*aU$Gt7X4}_4(<{{$4+ot(b4dHfiXwulQZzz zExHUz5nJHb>kaV6VkO*%ajF1JP}mMx08Y;M51{*zWNITzKp(?$?$UD!w}>$g(u$yj2U( z4;=+4m#asZ?~jiT@O^VTPYC|y4%w<av2<=4`|KS*)SwV%9;@ne|DT#@^j$#(t$*teL+C>v3CwUD@~> zHmnmunpX^zPuT}Cv%UB;D&MDxzksavd&9xASQaT7N#d~4KpVjcFE(Yd!hJ)iHYj7Kw z0$U_BVbmrYU6owK?5&W(4?~_~MddBLm*x@)Z!aVsX%C4sD@SGbnA3d&c64)!13jAS zOu3bdsk)yZ{TH=}p8V-X)pqdLb^26l-k?jzPLiZUD)r=kZY)u1)*#J!5Ad!4d**D@ z9N4^@z`4FYQ0w>udl)G;Ja8hrsu0-I#DiVRd9tn>omhB1l@0lC8rz`jz?T0pVeOQZ z*nXRCC~2sJ5oZc_=br+z`78Oot#)5dzldJGIyRwJBeH!Xu{#H_1HVW8Grno!Ofr1#M%0d zMcsKt=+C*%)Va@${|PO8)&4lX&Hqg+w}q2SAM?r5!n>q&RTmM;j-{fz)u`x66S^}2 z(KFSH=|68T8obYmiWoT1gAxvu2pp-!0|CA7JCXWv-^roU>%`O|j3n31Ajbxu;ZbQl z#y3L>T!!*Mzp@#guIvG3P?BBF-`86=>9J+A`5f&=mVKW$huxxS%bsyEVNbZ4u(G`4 z!Yo#mUHwyzbus)5GyOPdyp#x^ckF_n9xEYLOB!0r?xQc>)0m6}NAR~77qDT;C%kUI zGBHm#BE>llq-5NDa&f_0vMY53=~bRhQgqx%_jVofVb*V4yrcsg>hN>>O%HKKM-}I! z_Lgz}9*hp$I*P=9=cD1dT}V)<4*OmNg2?WjQ0y`rHXe5c#~ObSjoS*7b63H2b-su8 za{;t1u>yUb>r=bB8BJ<-MA5vzF)ON*lkz)(g_{-IPt3bIM3@D6Ef{zg7WjS{0q zIr{jwA&t_sq9;s^>Bz~+bd#$ET@-FcH`|*~jW_CaxJ81hp6VdaRBn)rk2&N|qAgKv zzJ>Kp{^b1i#Nqi_C$KQ!zk|gqLH%SMbY2^Qk^^H|&lmFS(WeHiyP_s5ZLQBXi5Rfe zdllF_A#!YDoCK?9IsiuIFTwQ4bx>ZL3xO4Ju(rqvq?A;_#Qi>UHnT);Jg#%3;T3U3nIZhg2QmY4R4d%dyP%l_i?g*W#2y|b~ z<4^drV0*D4Fz@Bzb)^iX&#gq)9X2D0M2;MnqKQk!(6J6mG~|ae-LO-go+{(Bm6q~!`Biax!K;^8erO@jeK1+d zv&s{mZXz?@Pv;q#UASx{p3&obCS!$?kkjo0FZT}(oT^49wMp}iur|C`>kc-yXu+4> ze!-5PQgKps4z`bAvBi#IX0-e!qj_hDvA?a1B-<{d5S5Q;`rEHaWwHgRF$R!0G7*$r zEI~?hDNOmvf*!xGTN$tb7!?U9O_B#V!w(@J5wj3<@g<3?eVY%RF8)`4$e70A!5gWU#AP<7!ZWXG1lw8%3cT6Prd<{pAA=jOxh zxBieEZ3zo!wV`dtAiH(14#M@I-aMGdc_)be5=JEFU+`0i= zd+;*fDHb7j8ZTi;w#H`SoCZ!XI(2qJCJxz>^=mwG56Ru+K!dN1@Ya3a~J5KulQ4%W^LZZv>kxd7$ z5heLFl4(;y=GvDNJG&F4(Df#sLzpxf^aDTm`B zJT?r9%6C9izAu<)ZG{4~0tQ27!oe*Q_??suc)os%rX;^a@2-eIQEU;C)4752H^`z& zNiozgq=Eh}HbTn=3Yo607HIg}1e8a+INO?VB=)VAsq@~;>`qyS9xS@Xct@N=K6%rT zR^=nc?A;)Wm|Z5QwoO65ZGNI>JGHQ9?JVfuxPh6oz!X(&mWQ2#`xqamcW8swRy2L! zIg0ie-Z<4m~r^<-tQD!EkaN4&1jBO6Pi$rte$GIwJ#NiU2e-r^ag2RoCm57UUg zRU%ohu!c;mjpwt?v&hXms|j0aN2Gt566&HxHYk6@8ENHMOtA}JCn;FBGn1QaQY)w{ zsb-YNTc8!g^+>Kn1-*YP0bd?TfriW*r1IDq#&>^0UvydMdZz|)MY{YhS_7o59l-hA zSops$~I*1WuJ$ON(ZG9%b4GD{#0%_rt^jwAe#2Qxf3f4xeXQ6dLP}B_ z@#a7ca^YAhK0urB1X+Ee(42{%gC6PJz7+@LijiZ+72K^ZCn6D{VGW0Z5Hm}%Q>2ulTC=umvCGhO;b-G2EHNdN5%UbjSue{N$y?bt z0(PKvb91mx>{b-ic*J4J;+ah1;2cI@UxryV@QJy1=Qwj7B_N~8X599H7f9*dS1w9^ zA_Qsn3IF>Ufp&|RA;*vVnEVim4EX13(ttPGVVa0Mew!ia-h#R;eltl?kCF0Fnte&4 zEEwuFa}(;i(F!+9L9Yj8g7mH;(MhotiyBs-*C>iBurEaC9-rq-Zxx~5i?Upe&=NW5 zE^z!1r-q~!STjR~^EsD3K-cO&a!sLX=y%~Np?XXgbEN%rVrV{_{l}AG<@%T{BapvdLE7&EmLb!atBEIO|$B9d%V3Zuo zc{WJnA)Qrt-ZnRUHDR9c+?9NsKQDtzxqBbi*{?*kee#6OPeV>C4`Ro6>4H~Uhwxhy zGr`OQr?@?H_?}jbjKE~Os&L7U79o##$8F)=jO&0KR=bwYWM=j=X<0V~KcoxlptVnW%cF zC^i^vLB(C(Sg&Uol}|9hZqxolJ0d$6R=lx7`@jxVtTzUKjW~uLY#iYxoV|&f6W()S zUsofSxobJEng5uiWv0md(k>jnVlL`y$K3goqUh2&RsQ~v!_AvK(Y_ggrv}TSF_wGq z*oIuxy0R7*$+sY_=c0sLejhb8JK_FQdV)gRa$&gI@d}lYw_MCEJ=A{YKdd!ZpMRei zVF|{T`_P}mT(_Txy^$UI)wLIorUWCMtV*n7Q;V#fIQ%$QfX=kna^WIL%mHal^iEHR zQv$Xkg>NtLN2i-;{6d~Nxn2o**6Cp13K6U{-WYv*RDq{EEkHb=68qI0WlqXJl>AuaQ=~M_B_|?iRM)Z|4*PDqQi-}pI}UH9I2QZG6t0|nTYl8E<^8? zbZ~V03^exJCQe}4!|3@82^Yv;W;TqDa%X6B5>ale^kXuThwCFfl# zO+G_hcUAxsZ1#+Cb$iM!*>wZe{;S4$9seFM$UuWXdk1~SV?0Vt5 zzDYRPP!_*zJI;*FtP>o+lfs1t83^u-8Rh)f0&*QK<#u#$;!>vDqK$TkxD}!v+?Sjt zW@+UqPE7e2D%AhUy;BfJ^5@<&CFcRXC_y;#JBykALDNu3Sfc9TqjXw@?D0%%~ZqxEWbmEdPxBc~g{+afZS!XIPALG3^S-ZnH zB6>G7m|=q#Eo$Usvj>F{%g^D_r~q`~+#h^#i9cE|W`F}G8VHv!yv=>s>W5 z>ap9#H)x}ZIMEt52I1sS_`vu7P+6)2Mu)#L76$6bUr_>!4xB;JuL`*5w`Y|I@?E$pC+iqi{iX%sBRJXIOd#DVvIr9|N;sto^O#2_Cmg1Y9qU;!TF)V0K-SY;WyCe_|eDp+g{QnYR%8tUZDv z=RL&MS7On}CLjDOCzXq|if4E=B95t?hGOgp*4o~|_{L`Aonv;P4Q{d|v~E6<6xodf z(}nozb#L_e?i8Z4MGtN~LL^Hf5vfXyC+i*3&=cnaxPR#jPPW2+#GLUMRGcwsx z#TCaHf!g`o7`r#3N{dI_z^t3-aNS=ndRhpQwt2~2;-uh$Mh_<$c!ue>N@Dij&0)re ztY)Gs92qyKcY>26TIhP01DALI9=E6Z6q-4tgWK0DGUrzMGPzfJnChxDPP*+O_rvB1 zCvoe%P-pot^DONXH)~uf=i0vxy&Ou%^^XprVc%{Xm%9RW`=7^tGKWy4A87ddyWl5!6buYtZO_oC3ONN=Zbp|e<(}5&Hr;|0U zF|ccH3i;g>0mlrb$gK}WDE;4jrcKHO)us<}Z*!J2LwZ`Eeg8KW{Beg+Lo@Q7_pydd zZpL9|&M3L92+houz?YhM7lMu_J|TRFhCO6)$HTd3P6okOUwlIzv&J)liCI|lKsDMr z_Y1x*V+Cl*FlU<|B>b(FgTB177FgY!ij~%#MvqsX5Nv`&JV)g|8k{XkWIh`}b(0^S zD!A_$pXkZN{VV4Jt3px#7Z-dZEE46o@@y6}TL=x%B*#;X(3<2X;Sn28RM#EP^PTgB z?adLWFItUM_XErdjwPBa7sHerQ%ICpG!ogCz{H&?#IL?oFefgLatoz>(c3_6a=&s6 zH1B?cH|#M+W+!s-Lv3}zq4Z?bwZN6EEUQLxmrvqLmdBW#L&MnjZw@+U=7qQW*x|L< z096OYV|KqDiaB}*>&W(^RQJ93LAC|nrsRb#c#7jqvey~s)oFNP+A-8}yi<7jXb|%| zs{-HcS`7xqN~Fra7C2l+$zqgJfvnTFhk{=>hjo-o3udBV0S z#wbHChC5kYjuxBtBPov)n7!i5=K*;>{BmG4?8ifM#}s_EH2_`|gy2|}DIm8$l3Nnw z%K54-5O)2?Ff9vPxC<*=@sF&lv#Ip;}ei(-@+Wf%B zem%hp>@~=_-ai%P`(EOG3k{gPeiyKWk_C!-vkV(ZyP>k1cNrBU8KmlCiDdgy1qR(S zAhNv)I|rM>^4KdlHH`&P!E7!i^E8UsuZ4aq$}&?AVbsR^jSTmx!a}(&oKn|?F28z% z7dkef46WnXD{vXAk#xo}ieanzZpHA5s9-rRv@)s2+Oj(e`2gGB;QZM*xMC7GD*idcG>9p-Osp_ zOXT2*HZ~3tpbz})ynfdS=H$5Vyc-QyZ2Nu>D=56|XaN`G}v9gT{zWeVu zqd6Lm=S60sPo*rrJ@+7bp1K$9QOp%QSgZw0yXSE8J^}m@ia^2pcJ#bb9j zLB@OqxZbk_9`81S4~OQ1Z-5RYZdwdy__=fXS_kkHw}TpK;Ik1*z3m6Ryz6YqWLc2h*N@)BNb>ij6zq0dA^d#l4k9L+oTHC2Qn@q0No{aJBEMts z6%n4HyYC{m$qtd06sz_h>E8RJ1?~KaGQtRl8w8E*4IhRl)f)9L#nTXUk4~0g>-~*8J~h7;{~jO_md9 z7w?y1+ZV{PO7EY-k|9Y}si73s|9A>BC!BX)o3@$+lZCT71dZM6|j4ot#J9LEvq%Wv_Q*P-Nr?j};)Sw`-?uO-^+`^e;?e`IL{ z-vP7YyG)wX=}5T+UDr05DrZfm+Ryaq=K1<`<5Fo_9oS6-(L(Z5DV1FP%J=F=WpGda zQBL%PB5a>21LIQC!8o!2xbiy4@$LfMP+9g!ix}&APKJH=Po53G#Al_JDzU~<17LV| zEZe8r3D4&IgNCKgpkDtmY+rr{Uh5o&rg7RUlw zWYj(#NlRa4y0>VeQ_N;Y{e=tm3fYhEJ^p|N)gmL9f6C;$)0qzfL8J_a9&;C%IsU5=l~$uTFl}rjdn9ZXbTCX&zgAj%16amJ~w z$o!f0QH~sJ@R)tOSRA6-)B-mLev{@T#6?UAD5^Js`#l9W< z0@Y9dfcHobNNYC2$F|2X{JRkLEXanMn*U(=#G^1&6%2NK)?1=Y1L7y?0ImLvwiSe< z;A&H({Y4H12u?5>>F+r8xKVuj!#CV>;yYGx)gso86UZh}W3t3sKwji5A-j^*i0zOZ zQD1l+e|s_&JG@un9)YpUm`^qZ>~eQ}Y!pZS)MH%=c}y zXRa5$c6uc>KE8}*C3?_xhv(9=R$B^{ij-6|lFxpZ$xG{f#GsgBZT|cn*!2wkVzi*r z^$gTXR)JUcM;JOO%H{-&!fbPCwyjQqt*Vz{wY9X^%$efsxtsx*`REtC%XV z{~`Q1d>*!MD1l+GIN0YD59br2AiA6d+0_ihl$yi4#8TuISc%xE1!#Ax4YD%PW5mZ_ z;OdvCFwZI(?r<^hf!L>yAL{GiCzo7t$oZFCeNDQ$^s`O?J=7jdgX$w_&ZgD$ z{pMwKQ?M8PwQC`La&anMhJO-Wwu&r}$sk7zEy*WwHGFnmI{MTZ0gt6mg7(rXXzcj_ zYd1@?X}49`Njt`}4!LTqxX_3V5ty=zcBr$X)?-=vW*Dy4h_E@k2f@?i2~^IgfF0A* zKzcA5gin0{UtI)I(dID0Q4+l0mLu2s=g|tio6JNh!bo}CVeSXM=k#yA@K|6E zmz|e@(pyh3ZTE&#)?qN$Z7oE2Z-g0-R)B;h1FCQJ!9uAT?a?SiBl+V6C*Ql`tKWEM zN1rVTjLRio)-{tBu}{Q{?IXrwD)daFEv^6HNekxt(JkyMnxWxGKXk37K4(|ab;p;} z6+{2o7>3F1Z zG2Uo;AGd^6;9E%)tNEXur-UP&Cb5um#{y{7txeQXW<4#rxRG9A0;u0UZ~EHOiN^Qq z(IfXJ(5(4CiP7tG#J0|g&}BRD6>5mg+JyJ5-GYC0}^AU(b5vxZoT*R5J#A+8Nk?d=YdQy1~~a0T4PT z0z$I)gVytCIJw^kHitXGjuZx(tH;1Mmo?~K`wM2i5v>qaxsMk%>>~Ed^GF<9KqBt7 z5ySa%^q7$m4M?@4t1MjU^qK{9gEgPg;a1a?B}*uCVg|L*0{Z7YP|v?ww9&Yor2AhX z8u#Ofik&HG+na|fka!9OLo;)5Fdxn7Ii zbW@ux*gl?R4k@zY#ma2dJQ;S6#$Om7>4Zm{n;?bnc3)^Kh9Aq0!=S_pC_Zfo+mt3i zU2Q&kqpB^aIzGb5<}SkH^Y_iWXtzc z__Mqvu2gr&DU}FwW3?-eZ}UYzX1zx1{>nmEp%lD-qzV2v1Q67`3??653wy2yz%p-d zI7E1cYK|?4ZdQWLTM7D?oQ@w2J6{!*GbgU^w9&7vg_XVL2}ES(|LrNf{9lCObJh;wQ_xq0gVxx37O zWR8EzDP=b!^$*j)*J?F5jZFjD$(7I+Hvl0Aq}e%hcph7u9P6=OlO0~H#|CApv)Mni z*fL`scH7PIY`C2)>k%W#CP@8)jX!%pp!*4|+aAHuai{o9R~(>q+h9tP6KLXAw9sHB z3LX?PY-t_W^YakiS$zzz(S3_uO|;3JZZ$H3#mK}_WinUKh%|3hC&iOK<3!YqUFCA| z&@W|NG%!c7-m;!4t@1*P-y|ZhoO(2BFdj}7nL>i45oqR2fw-zEe0OjnyjUa#!|%T! zr*p4Rtkx-1vR_T8XjQ{^jV6=UXjihuVK?~@d5tVx+e;qr{C|%@hYtFg(4-mD=-gU2 znuz)L$wW7rUpbA=m$0UF7p>^n7G3Hy^p`A;xkDts9w%ZNVZ`yE7ZK5D$2w>Ep6@>v zR+Y|#T_b*QSNuFEoNI@qyQ3iTL53Y^lwtjfW!ZK8s_gnI1J*fTj|~>8vo3n7Y+%PY zR%MYaYgH`8CY<;U_S4^kw#8!zDZL49S<&(&LoFe4rO%J z30O&_8=vLRjPKUl6G`2p#J8k|?BaQqQwBt6(|dW^xn7&@skWqUQTDX(>omI4$(-&l zGN5ZYb=p_2NNasZ$*gxx#9!eAkv$Prx5arNx4;FIrSHa^$iSSh7 zDy$jP3S`nBn6sAuokhs;XK)$z;1osH{;Ve3_(7ND(lpqfJQa2?pCfC?lxA-%7H5?| z{)L9&PFOfx1wW_cz^u{`Sh$9PneM!^e%EajKlVLyY^pMTcHkIhp6B86^^dW2yb6)< zawNA@oXJJ)>4Z<+lKfCNvV-5JUQo3m$DT-%gxj~V+O!>gHTKLD9yV3kYRnSHQ7!z1NPuLP4=j`68qXsmObB~%;v2b&-!~xv+U$f*!u1c zi1-x1q=3_~cf|p?_R0y4kLy4p`5V!Yp*Xs_uSejX`?7bn16(Pd%DBQIvQSy#n+ zlS7VA8*VagDV+@7e}}oGqsT;_5#<)wx?wHDyZCYPTb%ui=RkNe#OmlSVx{#TS>KOI zi$NVZTKR^|o+3(X(p2d6ziPCH=i1Nwu0jdVMmjZZ9M#YmLq(*!$hBAZNdMPTl2v+v z+$@bHos$ho*trwXIwW-6Xz)_Co<~r0#)Hs|#>aa24iymczyF2GHNr&wHN4 z*_uRY*6o1|JGo4rE$>%kL1jGq`;7`K?KY0>JS)elycTE8dk5gi*mlVJbq|bBmBKUK zn*fDHUa~7YzQ;&1_x#OFb3FP5U zZSp8wo~)`E#FCD$aAEr(e(cQQZ3eCBE4tPS##kB|d8{iPW9|@_y1`GRv)iyqI1_+!xmn1CtI? z4gbgnd1-oEXDl7(HHNM}B25=hl%!#$f640SAIZkC&E)vNT{5$(nCw`cPWH9?le1H% zkOvn(WAomnc;@Tb%=Y`GDB-UGTo~&Eru%n8P+K-^_#p&a^#-_U*AB8)z5k==yyLNY z-#Bh0WJQTkR@o|>=iJw6FGWRYOG8V8hDw9TNM>0{5tT9;TAp)X2bFIsrL00jNHU6c zl78p+*Yo`Myk5`ioO9pjzCNG#8;n;=vS}}ev4^&+u-+?2vQK+Pv89zl-t*)rHc9As z+fSEcCmk4okeeNFXn2Fb!WX*7GP!W@U@Yv}?hkJo7r?hV8!&Pm3b%CfiT*t|qPj(u zyebQ4Tw~XBIWqS2-rilbZ)y^)jyyx(Mdi^scOKHF?jE{$&QDt7*+xCLwa^>i`e?_3 zcIvwAwQy$jj9Pn_Q;W}!XngQXN+$lHE$8L%O3iSbJX+}7U7d`J_6ql$^FGYBiov%n z=g`po4qklp81uKk#iXZSvHaZ-{%NHGzcE;uA1bZPH)bjFo(*z*PMRd|Wb_FGJznE@ z$)~8LBk=LZokLyyFtn5eJoEbx%@#aR7;Y%)*qcoj+#3yj9WGF_D-2Y;&cTYNJ0Lah zIouGK<5q4`Y<7$yYx!4=jnvR$Evv?|0dj`yIm7YnA7?#Q|Hf$cXUuT6)=ZAoZ21RQ zNC$L|uYs-!2-{y}L++J$NQ?}GW?5%A5i=V2qBlg*E{puIvms?Ssp#m&>)hYB{p=%Zs{fiA3=Y8`lMQf7 zu_MxaSDfbOhokOA;h1A*@o?TXOg1mWeC9d!FKtHo&Mus@;Va77{Xoy6FSy|O2Xv2p zg~<_BSl@&=&a4m*Rb}AM-Ql<|Z3P~@JPG+sY1Dg@N+VVkaO(oajN?iL(8@dzZ=zJ=DUpCQ_B0DkP1W~J?A+3o^)_O`Md+dN8!H8>~1 z8f1I{wIeNXe@PXnS@UpfO(86eKMh5fj>D%@JK^(#g-}7PVOPC6+>H7rP~S30dAT`p zIeM6B+AGUlzgWZ>AD&J#qLXQWdns-C(?J^sKhyqOQplz$;DWKk(CL^0R^<-GjWQBg z{kD&a!rs!O1Mle3s!lpCR}zm$DWS(44Gax2#>q~T(PP(g^m`VB(aJHnB0d982Vcj{ z(;s4Yd(A=F7G?xT$@d1kD^N#|u#!wFY-7O*du@6)!MnKceGhpd@3!aQBhb2QB zVBN3xu=8>+l-(VK-e-ew%la>bt@{Nr)t|sNz8w^%zXZ382SCzqz;SvG# zedYWD_7|56eL^wxpUa2I|D6(iQE^~jatNZgt%VmKro-uzroy|IFuQi_BjLh%*Sx?K zvOj_)R{2$o-Uolte4lw-qNE<3~IdEQJJiexbJ<90QC&H{<>o7?x z4CP!;qfY8={BYtKma4x+H^cXst@aVqj z)wsQwKV}h*eXWb>XL_h>XcF~{CqnVVV9MX2Xhj?C4gOexcLd&f{h-fvuoyIwZ$ydyL=%%Cz~?Yx?~3P6Pg? zgD&5DUo-(XZ#8On5B#5F2MasO%;O!=;Y9tTd-g7%Z#^e$hb zb^RxaM}Xe;U2r8N5rSm%pnW`ot!zCU*6)BHbH2g#1%q&J?GRS=-Z1v{LE;GiTJ zZ0#cV7hfS4wPVN`ixnjFlQFs1lFbxc9K{4`88RmR@116+9v7Rx^5Bk*%Hdp0h0NEW zI_-{|N)?W5rV0;JXpwLR=6T>9bx@E;71jVV#@M3bA`gTILD*uEfD3dl;>`Ue=+Rw= zrhh);hQcAd|9xe?;LIp~%?%BnFVW`9u8iT$P@UiPV+3D3R*|=A8o=*%AF%gIC0goU z!-D)Iyy3JR=f2Rx)rTI_$qf_ej6F3>f=)U)mZAuI|IGm|KLiGKQ{cMvCFuWm7Yd)( z!kH&;AzpZfwWRdJ#YsZ9&wB_Pm?6Vz*~+l9)=RR6^M632X%|HOcmcjQ9zxx}+i1zWk6g8prtPI?K{*AaPmXa?q>14~bK(a@50^wF0 zlc+Ow%&L@4%zf)bX2ybeX>sJu&tGUH;}YJ-fVwt`7Z7 z&x>SGpg@SERIH&cQQUnb2i z6G^c#v!&RfRuU|zeuu4NyFlkwBS_t-glS1UG4+&8eF;qyr<(8K?3(&Gm$#$n zkuEp-!YrIR37*Ps{kzooR5Sf6EsO2DwNNF)46VJVA${k8yOcKLZMhKi+!ce*j-N)8 z#TU@TSujQ0m*eB`Dxv4`7X8vcp~>x^cwRLZ-tG0mq&0Y|;@eu6F ziH9x9XW`ZR>+oPaC$Q=6!LPjMP@&NTR@2(x@CkuCZ6dJUe0rd&x*aZYt+4rIBaF)v z*ps~+>=#{z$B#2WB|HxJ69?gG>qfZK>jLDIBm4yuc<@(X=J)<0kF{z^*QV=adgKXm z#CIdOP#u_A)NK!<5o7d+FL0arAUiAyt-Zq+#lVwC9ux z&ac+Rm8ur_*N322k}LK;^mJy_%QYw{!8c3zV|poAd_VB!T+f1ow=F@ji3F>BbuPtQscFwGyFU@MzuC%7Zb10#7CD z0mO}a1S0cl7)-7OmlrQ!e&!)5Y@#75WXt#q)-*o{zmB4NIAL2+~k+EaXk!r0Yq~3ZudGD3P$T-wHrdF14 zFQ-}4*k8w~XKpbi&uZv_v43finHmPzjlnccV@$7eLfwfoaqOOjm|VLYZ@F&7a?Jqz zMfTyHln^YniNe^O@pvR98T}5O#gBi_<7TaVbRB&a?KF$cKyiPhmNw+&x|MY`{>Y-pbC^(`Xr9tb`^YBi;0G3E!2dBlwAYWb#pU;S4 z{#7xAKE4H&y*I)4&o$V;y8u?s5XuUovk+{U3OhVv!0J^9^o4GP8pXxnspSOS+D6cs zIs$BD21#V*8}c#lDk;q0Pkdbs$@Koy%(8FK#Zd{rxcMflX_nbVntc8t-K6+|?yQwU zXWQYZ{>m6L1fKUMHx`FopNFb%+;Iz8g+}h{vBY*8j)@7xVRnab-l0(R+Z~3RWWurj z)KToI2*p1Y5m+OT+QKGB3Jk+YwApeLxtYP}TDcoHx%=YR7I*wmHW^3xS>b(F5B((+ zQMyVRoxI;sBd(ZA7G%(Z(Z1A3--gZ(kLMm0`HEaBE-?8aPGpjfJGovXaL5l|Bb|Qr zM_Y&pdB`a;7hKNvB4m*7x801CqYY%loYr$vTB;e{h` zb7?5t{&)};EeM8W)1A=hvkqLzD%hp(3AI9ZIdWh!oH}9+*UlP&g=iGio>v2ReQ8Jx zeovg1l#;s#;>fvJS0YhW$MoE9aytDmnH$rlO#^?gq)iM;!X=$>|D@8w_^nzF8HoX&lk`G`z}%c?6dUVyC6DC zc_+1XSxOZG2t9Y%n6_n>a_f`Kx$xOXoLt5&Wv=QWv*n>O2@YONvQi^SXJ8h2+H;k# z(q&{z)>HB(u#r4*Z6dRNy(PhAEkwKIJvkKklgua?0>yr^!a0f}bR8Q37fN-2*=G!n zVUG45Vc^!39YI5t<^w*KG$o4o-ruDigT$Q(x#{tHX|U^3d?_H<7&4 zLc((@$d0vF36IevMd-iyL>du`U-udFjW*1QDH}yG+ct2@4F%jmmrvX!Cw1DCq)WB( z+~_awgVd}4G*uoYrrXCqrXQ}f(i!jn(vBn*>=SzV#jXMa;kGq8*;wO?D|Wb+*yC7F zJKW`Ch09CLF-hMD6XmqAPI45g>MCOR%^}E-`bno%H__&tY8o~1ER>b|P&}EQ} zCk>XD$R}Yop6h;#tQ6Et^NX*L^LuU)ds&XSe!M}vlnP0pWiE+pJ5MY(oh5DTWpaPZ zMY8`#CMjH!MJC#06DiFU@~1Y1G=EGYs;^EGqoqmYLR};=-FKM0c@;>CuWlhf4d)Z7 z$xDc=sW*x1u_et<=aX$`yhv&3G@`k43VGhl5UCSZ#5-?1d3{`pEEPRxF6yQ+t0ZnQ zMK6{xZ&xHUUPp7u`-8c6VfVO;x2w2|bx*ldD`L2aAQy37*HO{0f{~2T_G-q| z+mM)&#e`k9iM)HXj2x@+Addsxh(oUrQCYs2;Mt{Q?Q9_{?y5y(yvC4Eo^4F-xuK-m zTZOoFOAv!mFPROWQkW+Va~SDlKT$xoxmZWxFqgSdmy5XbUHoaSv$&+euG~k_FHv@3o_PD0XCjZAD%@9@d7Q`URPpEh^W1;o+eA`tO}WnXQX(U-qnwJ@ ze(}SfhRmM(4#oEjRG5^=Z+D(78_K+2_DXEqvtC?&W;$0H{XtyiKSrFeewtH}v=6h% z@1tm@X@*E|gtSO{&jXQ3)a>GSxgmGLj%aWfa*eqcrxUp3(eYeRJ#bO3`rMU0o=mja za87pECy~~-6P*68a_+6iI_}D%x7^8tTZ@js=-tA0aKJQLv)FaE8gCEM6 z`x~SQAM=7ayg6T_<(9+z)qf|>`|(&DrXep*IRM=4CR5SHqFbVQ6V=5XdAqo=ccZ!2 z{M6!9nNeKv4`cC*S%<}C@9%K?$vuv>v7s%`)v2l42&(#LI#*D-P4sHnLB`MfDpOQF zoG~{j7WbdK#VyZ!#^njy^2WLAxnQ$@PQ%|;6#Mj^7K#5wIj)(KB`O#6447ReTDW@g zo#qg`;sos|r)>f1OtsTQ=CXDyVi^ILSpc zHfeA1VC5x|Zf2L$nf&3*(l9U4k@kS%*rHeB#&53Now2*P&${P1mpP@}kK}4DT)m3( zeJk`5uGDj$N`JY?CVl$LN}k@xHlu2T6R1zkTzXr`8+Y5f(nS{*(f&bux^li1^>H($ zZ{*Zz;z4zKvcH+*WqLXL=c!yqSs?erU61>`%92YpQRMPsT*c99zG6GohoZz|oucEW z&ddZiSw?g0LPjw>kQrihoRQK#%e;@e!jOqqnSp;{%-*2+%(ALaqEJU!Cb7VXG5zkq zY&yP`d8+Hp_)Z;lq*DDgl2>T;imBBJOcE=e>CX(?wd6bzObClV{ZhW_PQx@Lk04cobf z{`K8KH_7d$28m(x$dPEe`bP$Bc%Mt(vRCQ&MTOLBM;4VGoj`SB_tBt#i|G`1dwQy0 zlj7^A+@Bvloc5t-;_+KToC2~8m;r;GOtHmTMmy^s^Xz9gGjWe1nOdVuo+??8z*BR` zf~CvI^vO#}|CNp8Kz1n6SQJJg+K!U{kd35O;V;p>m@!MpjHawlc&^ z<16FZHH3^%V9A_=*2JWLEGg{tAOoY;kO7}%66KXe#%T0`k&{&4k1rwr7>n(?uoKoZJ3kRHsYCQqB;E`ecaGvz1$-+J-V{m zlGe|eLcdzNP|JC9sCd&fT7*t?&aD;Hr)@DUDP2m38SbFsU8|{Rz?fcDR;4XsLK9Z$ z(0|6VG`~T(j~EwjnA8aFso@22&CJV;mHY+f;?H>Iz1B36;Nwb^C5?!yvkB?@5GCZ< z9Ei({IpnKmA#wCQE_6MEiP$@Z%wG~kEQSUV4U$dHX2p_%mjE&XtyKe*DtyGORKpf^{cqHAb(EYcRN>mb0`x88r;$db8(oDK5;%(!>qY`kokPw zja-;AnJ8SGK>pA`GV=Xa^3E=fcp8V26SLM4$Kvy(dTu0{w0SL&?@l7I%3H}{uSp~+ z%YeB3jwVLW%!qS}K6zI;p4{jhLdvezh!%T9FeApw5{EGhn4-Z5@uWlVMU{aEnZe;P zTw3@JZp^)_-0`%b)TBC@i+8c7)9S5h_QOB-e3=N%<=nSPmf(NJmWpq zU{iUEfMpuYT4+f|m|f*6)W*SX)lOz+&wt{elkdp(!1=U~kw)`NYw1F<5nU8~m^#iY zqphR0NX&==MqySg=B11Shv%70#@y|=JL4nguj7rk_ZB6Z3IJ_e{8+dyR`IUX2(2SwnMaK2>`=NW1hj z$oPqinC7>e=>2DwRAnHIYdc~K>Ph8v?!g-R(P1+@Oemy6Bmfh|LZ&nS0)4qx8tje+ zV#FV1IMb6sOwU|IUh*#Z71-jc>{Kpob}YOKti+bpx#3M!W{I}j%Hdsd zKC1Q~h5ueFQJ5Bj$J*;b#di^g+f-nk>}+-jTa1O#ad?r}W3NagV&J|j=rc*5{pqEN z1>dFk%Bs<zKaGkpHlyXGU&hY4Anmr z!bM@vob9a7+lw^Vu4m6kNSqH}F$&KC*?asM>>bV|($+x`k|^rz}5~ z+#|{rA;h%!jwp4+8aU-XjPEpS1)Oyde%8wHj|P=N9G3?k`c0VIMxaijkVN*n(Y9D6 zd|#DG-G+W49SxzkB!UOGiIH@qQLmtN9nzq2SK_(?(%L*U(&@%+a9VlbFs2eHrO z_`(A>Ab6fG@xG;n8ViS!mD9$Ol3~YaO-~_J3YLS)eHy6u&l$$s8sSVdpm{rlYt-ul zO>$gC@=g26Ld$LFDQQ5~T-Xg+pF(kqL^@;1ZGpq$NqA019(Oo-z@u^lv>Sb%Y$$rq za9>|DQHFo$_56NXH%kL@3R9?kmo&tr^wERwr;$K^EhyNWfWar`G8+1?;ZyM=d~?N( z++FVnM?zw-WBWQTTsj;QeI;@894b6Ro-ifCd`fCyF+4P|L!({4=v0%JkTPODCVC#n z+C5@Oc`S4zGwbkyqa-`gGMB1JmEmEHZ}3_;$CK<#XSxz=$gKBr^ruE7bH*%$+w}D# zbHFy64zy1I9UTQ)*x5{@-t6OC)bdH*Ol3qDMM4&O!`Sp!IMO*6MyXGsPm($@_p3Jh z#wi0M3l8Gb;Um~z6UtGiISfC1k!0h>6USEFt0Zl#hZOm?)6CaAbpJSp1L&b z-9@mv8I21s4A5q$JXj|@8@x7ez-gwfFg|}9`ZN|}`>r9Z=h^G{xa=uu?vH>!&$ICJ zKY>@GeWZP1h^{33mb!okp`OgSzk*zBOlB%J%mL49k*GUGhN<_NPflxVQ0IMB z6{AKSs|C&A?9a9PkA{+G^+5K*;z?x1}>7d!k8 zl8o{GP*$;<{@*)xYqJRnooNVj6qlg4kelS|XVWdOk|~i(A>x-)F#TB;nHn^cZfAp_ zc8U`!t++&`AN)rQcblSQ{XAG9T}Y0bt)+ddC!_XIP15W%23DP#fSMEBV0K124jbG{ ztyd31Va7w$U#<(6ye|^(*2}n8KAF_0#enh`1x$Z4pDIqxBhPhGsN54JSSjOAyFw%B z{cls@=G?pF@A(KcKUzupS2vQKIb&$E>}2lClv?8ZKofT-BGaeeNj5xuB3_cRo30#h ziBmj|!1)U|8FOJS{PdX|PORBMATEZxjH8b3!7-IOi3#X=4Wmnm?5sgucjT27Ls;%M>Seya4t zhTMAao*diZMXhcGlAkAi=yI=M$MDboOh8SR*w`VGsH{#WmIFYv2R2ZT+tZkjSznzJ z(&e}vk%2_x^wz1 zC;D?GaCs$V^tBA(zYY(a&@BfCjt-EmabCjlxFKjnP2$Anwm6}FG*pSUgKsrQsE zG$0{~puY({e)$t!zDS;qpP0imTsTU9Yb>HU`n4kCuGu)z$A(_&SVdek&FSjt42_F9 zOMOx%(}%@>h`NOlUbOZQ-isALeX2Eet(}3p>kR3aai(CO(Ne5b@`Y*pF@t#gQ^aE3 zGA8e!F=*%=Bp>DUA-7fmbrROow(Z}^pzdSxK5I4k8o!zJs)sT;qG;;rUc($ptY-Yy z%oL}re@`YS=uw5xuk>kR0-dL{STyVF0NG}qN3Aom>Fmu#T%N>w!7CR;&R;X5l|52e zQ+S)|RHZP}#5`wt_Llg-*>>)`!!i2PJKMwhBOSxy~*ibaG(`))5)@2Lbg3E zq>KE1lJe*NB^y0!Ajc$TKznpAy&I~57UK?5fBqYp+^YjaQ-euM%M)tYxrcsQdxU&G zQ_C1wO(QOe_sNHXVxrouiK*W!XvvR$QWPaaDuW&piK8V<^@?GbH293VDyf3iK|Od= z@rRxYxsk6(0lfHQg;3zk^X*)OM6vKHtqjQM!2Wb(@MkXp1I~^P1|UiKD&-wP8biL z7Sz)3H+gQ~iB;srp6ArL!=Ehuc8ttzXrl*ziRgwiF=X_tNKvbP7OfI^15cXb#K%di z(+8b(gnJrHkMB3c`?!Ods{Dj3(HKt-YW35Wm^ZZHsUDXq-}#u4tgjRgU2MTf{hUObz0AnVXya2$1y)}y{Y2DEn-PmTqx zqYocEr`O*+;8vaWr>pi#r%{XC zY9^v5lBDlC$FvK3jNWs()O~yicPIZlX?D$EJ{tIw?LCUrJtdsR{yj~`-oD2a{IMom zZwh>)%K5ZbUW(q^aG#S_Zee1K)0stGuNhL`Nn6Tw={_Y>PBO88t6P*ztiLSgWHnL+ zUa|xY?>xaAesz(%@Gq1ZuNljP-1x^?u2d(AAz!$`C@bovy@YJ*v|vJS42a^2$I}{_ zf6VrPx5a)!uGcTcgn9kEirb;+N^I{9C4Q40a?_6K(e9Tk=<&su#97{xh{|yjX0ot1 z&x~12E$2_>2JU7tV&i;KP;>%K+A~MIJw=^d_37XuQn!d$YeIsQf~iJ<3EkctMhbmd z(eZ~1=*n?7n4u?@i*!xZxn9@8bL+|oTPfH+r{IJ^O*5n!DP-8G1;Liyw|RLN|)p;WF%9Cp3;v- z?(6be&Zam^Jnr*6ZovE}lUOxOG^$sX7Ju5q_03$%+}D4^ZRV1gE$U7r=ZLTP?*~Wn z-A==qV}UR>G-mP z#9yI+Jgn9t`GuG1L>*nu#&#CbSZ%_E&ebA+jiVUxcVAKVN`3D7e{J00wr9*6OU$G1!|pB9w`(=yn;b^uy)3y8NAGdwgLa~KGiQ-!WFz4ZKjgx+?6`%O z6=*U&EtZRNCP5|1zYQ(?Bl5Ym?w1ZSR4AO=0EPpvz_#s z<4XE+xJ2g>h5OU>akOlY|dH zNWjLmL_7Qh3Ev|PQ?4mOPoo;#kT-*gOU4K@!%1*na0?{uV_{wWU+wuD=GTjg!4Y@nv!Z zo|%w{`(J0FTkb9VSX6=Wl}|9}Ocjpyeul|?EkehnA3t{Y<4D&YRGU+VjX4~?l&wdq zQYtvhLU4Y~7>r0AhGFAm(D14*Jyo7dD)dIdnJpXP=i3;l{1XcM1z%I-$zQNn$der3 z`3@d+w+QR0B)e&!BD?O(2v#g~ANw79p#FR}tn?eo9y3;9H=dMYm;P!1dtv|nRiYY> z2>Dkn=LhiEJOk7`Jt5$-Ie17<1IEW5;!_Jrt9>)~QF0PpYOYO<Hxqx$HTvj&(l zd@aiD*pAMJm!nrh5FSX5!clTJj~d zH4t)LI%O#P_Nfd3}=k4LQ& z9LK>YaR@}=A-!Z=|5gQmB$hD6#(89~|5Vt&A_Ox29)Z&jvmx#5Td3On2R(J8;J;LYohrMvlOo}~k@C_V$yJ5@a_poEyAjtocXP18Z1=r8Kf{WL>VascG4T{kyt)@AD$Ru4jtTImYdCxt7m(*=EljPBJCjv1iF=sX&CT82$|=_SQ#+TN zR4cKJM(zlp-SRfnS@AMG7nw(Gb$n=3c?SI$(Le(xw9x0OjkJ740uA~VL-%CspnKR< z49ZZ!zkh1!vhC`)Vfj&eN_2 zUm-gf{1+sZdIV2qJLoiU@bKz!$h7ol%Jk!AWh!w&fsW~Nr)!_)&<#`1Qjy_GdS-PDcRV4GuDrI_YX+WhD-^1w|6@Id1@|wpOHro2K=I#welF1s*B4zgYo-d37Xe_#HY(;g#Ty+ zziqV)g5?-vQLx6Xp!^-G2K8}bfIWY1!r@miq=HUlqL zf1=H)DrCR!G}zg62-IaZ!hs&)7Y;tQn3}3PQC&M=T6A^KAbJ7*JmGW z(qWg_sH>~?x6O!6X}~hVf5(4W7JkIoL0L<(hk$%^r6Q#=Gn_(qR>4&eeJA)zUP%O zY3yiJ5&Pm8YaY!{528+uDqplhn{Qg9$NOC-eE!ZQ{Py8X_-#%z`ASQ#8>tURtO&u6s6oy2XE8LX060>uZCK+lSYykQlf(*Ft~ zFMflDP-%9uXc%kwNQo_%)MT4(jAO4hnX&8IOxWU{aqPlI!Ra$#$VSf?&)QWfvkxV{ zLE(&Q@C+#e@%(If78nYPpE$vQQV(f*oJ>^yogzkUqsf1#hS8a)4%4|i1y*9+3A%B{ zHG1@FC$%qD#IZIb@bTY&)K+wb*1o?+{clL3{kb+e$$K)rJorTHxa7VV4bO6pd(^m+ zTdmA1x7}pT`Hke=oP8q6nep^yP_b|pmPh|6nB&_2PT?iDCuo-P39J9g^OZScd9}(( zJgu3<&rDy$*TEcqTQ%Xg?U>4E`px9OZ!+OaJtX*Aw;Ieni8!J!2hZ(r!$X_*QQtay z;=G}k96CK5BxX#9icPuTx~oCRQdNTU5W#7BC0&8<$jlCwV z#i~gfu}Trztaq*|Yh|OtE^$&}O;*XV67$}J`)`C2)638@A_=nP7Qrk>D=;b2g~?lx zWJp;ME&UKKpAMnfr9Dqnkd79X{FE+1epmEU&BiRa@c^2+U+ ze8lsg80TJzAFOjRA~6(g_nYE*4WKND$PL{lQn_CbjK*z%AkSQ|9e4l@RWIPt&$lpe zrW2NGNweFNmDvRw)mi^Ep|3w*m;GI&&+d*jVr4=N+5SRZ*12U2Ta%&09^UW`eh#UI zb>3pgU6BFX12%(bxC2~``$uw0g;{5m0~vU{lo_pUN;~rk=%idRO%wR+`ag%@%U(4^ zM_oL7aSSSD>S0%u0Q>R6dJ>Slf zvA154YSnIHH~%(SG0TY18)vu$E*ogeT%=WQdN^ZqEJj&Y;+%Wkf__n&PcBmDH(r{= zPiUFU9|&;fi!GgbHx0sPF16=>{&D0NytCyKyH$7te1V?F?&62+T;ZDEj*}XOVBwA~ zZpCDd%*(I`{kWCzJtzjoM?VDz>wZu<^##T~{|!c8mDs(`+N^|wA-hO$zO<+fh@Ri`@i+e#BQHzvM)@Q8L3d03Xv$Q6N9h9oQ^Ep%pmhPCKGc=p zZ#-6uFm_z`^iQz_n=@55c0x6rn258BU^$8UM(IPvW1#PPu!@_p1Y*w=Llf|obJ zjf!@79r6mk>i&c0Bh}d_V>H?AHe=X*N!o1R;25@vnzK5YmaI&X1$(GUk8PD6$p)8? zWJmT4W6LVugJ*0pjN6_JgI^E9m(B&SxI`YL+kAx_;Zo73y^3_3dI)V?beFyqxZB4c znBk3X3-q@FOdikTRy_xF7JM&H3$^j&K4rXX@`H{pxlU6z@1k2ryyjfGRT)|-L1xq@ z5b4zKWYjlfC{A<$#f`>Ldf5#2XNh3${RwcTt(Yu6=FjAfZsTHlv*=!VJ$w-#iz{DN zV#%Z5So2qf&we?MuYWp)kM~~8k8)qik1$=#fAwbcy3`J18z=mNnVauJciCxpsIv=xXzIZGf-Dl8`G=`o z9>P`sdO!{P43OJ41*>A$W4P8{T(EaL-cH_(#iOE7!8a1ELs#O~fl25Pu8UsvYB+aF z2~B+OM8ECnVpd=snes-+^)6~9nm4Axpi4aLRm+4D$9ORG2!_SEVemEd7^Gc`fNafG zQ1a*wxsZ^0i+bmNyrZRh>JZ|D1O zuIA-Zy!fW#CA{gVwfuJ&}CiAw3fD!RtH01 zTkXN{dpPXKeg_+DlvvSZc{Xm76kF1#%#PA9W99V;o2DpY+n(95IvXw7<4>$uDVZtk z86!t_&Y96{&;$uKe`cS+t?z&txwqkgi64v%Q~=|xH^_+etz_JvSE4(=t_hqs7QKIY z;oD9YjqE35l3xU#UzUY!KEb$kmMPvaeW33C&Kiw4{ekh~9Mx#-~Enk@iAcY|Jt!qMdR49 zi$}3vW#rj_+7?h&xdOjd#)0~SMIfbHMM5@zU{-NfobHJw^eU0Wko37Yyl@$^JsWXE z*hcKu-Gmb@!tq032(}1brckvpD1^(f-Ae(*Z;PlomT*P~1{vQKVPucoEAlhK0(O7i z2ln66;L^NI(AZo6#~VxFe&&CW<|>AaJ(=L^kt+1&j)6q#EI71FN*KnZkQOtcpXu_N zGOGbI?LzTVQ85;;|AW!>qj&==OMceoS^Tp(p8UBxtNGz8{rRxdd-(y2ZM;IvI{wG> zmAt0Fys~~efsgp8&N~g4hQBE(ey0qNB{smh%ejyo{}L23 zdH_=XLdH#Hwlz(km6bGS4;(dTxgpl9l)D{kCbni5vi9ufzt-%bfN`uyS@2pukYm-; z`ryrz`>?0!B!qRjLDDEqc=0WcELDl(<`*W>{5g$u!8Qd{Sh)bt*hgZk{=8`e9JpX_I^9~b>sj{ogN89 zH4a>MBW%@r4IA0#u-ElIxC;EU8#({M{74R7*k?lC+&$pbFb>$QP2}$5C}Q%-n2WSf z#}cXinE5CfzrXkolg#A!)*JeK>@q99X4@=YcA+nSXww1y_nUpZ!LC4F>Dw;8Le-yl znX`>g*|n5kwab#fTq4Z;wLhVwMIDMG5>Uha39VUmhiS{dNA9B?%>EGxpK6N1{pnAT zF;QR@?1!-`&8lojsUch9Xvdam+OY?APGs*i+pr5iIj~A!?O4^O3G7ERUDif;4^bH} z&5l3v9#Rr=K=#lQII>U?{GBN^%eYmzkkGDI?@Qak@@G=_9c}LrwJd6$FAN+~n->3-o zgXlfH(t=IAvfL*Av*B_+?V36NKD!6291tI#%fY-m8&Nk$;C3>Nr235q1bztyt8*v8 zLB1Sfg>$9E@9M1IfC_85L*TNx>ak)42e#W|Dl28_$d1-CXBz}ZXx1fL_Uc+k_5_S$ zQx;3Hy|dl|XIKr|W3LPOhyd7^_=)^zzQIfyw}lH_u1=kc%BkF1TXZ$rjT_pJpzp;{ z{9O=@&U2zseO@e1YE468y9alEu)uG(4De;(FdSLoL3h}FW^!*`C9ALeA@^sBU_;bl z_*9hvKX2ayo$xwv2o)S<#~R_ziBFI(dIL?z{sYhv!!5l6;DS%U(#2~aK;9l2H%h>c zGBa|s<^oq^6HSMWx5jY^$MNs!0$lXt2{sDd%;LZi{EQ&e|1oqP{#5;895>3|Bcn)J z4N8N1opYX}p}p5H(capn(#}>!$|y1mNir(j>z?m(N=s5mLMcT`Ax(+U@B9N^?tOjl zInVcbKF|BjZ;YM78|p9TH~n12o272yEozSPR&u`ll}0Z<*lHu6kt*Dk^{4SQs-yV$ z*=oE}P$~XAe+n0?Pet!=Wn?mMQkB_u;B6KN6-KdOw^{;|Lca)%9}QM)ZOA_SX~HfU zF^uh#*|P1HW7*`)@ofF7(QLy)8&*Oc zs~JXf3hV**-(VDTA1*gvh463bu;*7I)CtesKBb|;-e?9hZ>twwRrQY3$-YQ}(w&g= zNK0=e<;{V0q%y#`g42I0Vpja;ds35vC9@Kv3d@_ zp-b*9gw4GLzkU4R{(MKUSAWIK-{io2pY)b{pvjS=u^Jd|KN5Y>88^X7oO$y!8rw!8 zBb;IVupPK-oG(^R3B?0@wqWgNc{DzGjJ$G;Bii4#kP%z9GbVFJ!~BB(;B(SKnA)}r zQsOgV{+bG?U~0jzz6{EHI4D0<3a0rjpl$mYPXLs?8z#8;dna%$-XL*wA%)g#Ik~d0H;79+th90iRF|KC;&Rp`HSX%z3 zHf%J6-44ERd|o_=qx0avTjB@cc>?l>S%`?+@v~+7DUGo7!4Bh_WY*vU?=i zpq-p|*2aJ9CgGj9jo7WV7YEDlMm_S~2#S7XMOa#kXx7!;cLV@xLEU<>_rpc-F~-r*19fZ5}S-OI9!D`y;0DV+!nf zCR3kxnc9b~R#iAp{vx8&bnF@RgzPTsllcvjGODIda3&@g)@{BnIATiS^`}-)lJ$Xk zl{`Cmm=as{K%Gr0)L`o;s}=p8c`mCoF4y17811;P=8j_}Li& za<4t$GMK^|`YQALOE>*!z-5`J+=`rh`jqr%Sfg2)6%MjB#LhMvV_zS_bxFsuX!8v0 zQK9g9!*UGGb43eBEp$rACILM!xg$<v`6s!E5`DF-#GGxcP8_C zv5Wb6f?Ie~!fIZ*YA!#v&6OWBV-i1coddsmjUhiwU+5=Q+{N8r!?3PnF;0J>iZh#1 zxXUY_3OhXGV3XSxs8+lTt$G!(_3I~iP%O{tTWYb^=k?fE0lKXDpFyl?>rl2d)0|CR zZN&D->9d0lYq1@|Y~@Lv(9?`*hwExQd|PlH%4hk&hhgq8PgffpKP+Stt|!TK553^F z7mg?MmI&Um<<_XO8qm;PgvWlcxJtYfAGxf-g=^h}%oK|i=Zui*ZXzz1B?VYi}SWNQgX%UIkAd*FuXzslaIy zxJ0f9PYv>g-b^Hz_-=sP^BLIGWdg&--D8~8U(l|TXOgi3Pd2CB8ixlh!`?M<_~lY5 z{-|t34dGs2`$nFBEpNha-!g(g<2>G}tYdRav{iy6pHP#;jtqF8fnMl{F4iW8KtM*(2xv0oC&j z^8TxVN~3JBQ8)uBVcyVVH631szhitnfYI}gp@SFP;f}3MCV!k;$&xiH*zs{VMn^F? zGy*VWy9+uTn1mMF?eW<@Ej(8yk9nytNt4!UGAPKN;{*@Ge2o}pU)Oskd8Pw21fGN^ zjVbW2EDNkkGC?8fAw8cfQx3>;NLn9VWzoz~l)7_=Ks0`KjS{ zylu<`zQJ9@N1D0tnlbbF2eVf5;<0P^KZh3ZTb8&AJf@j^{>Ul(qxrV{p~ITISNaz` z)xe|p>p3)cnS+lN?h^+id1jbI4NP85gThch&^VtDUDG~*-EKKHW3LLkgI8mXT{PJX zGlagfwGCT6Z8)p;+>jmWZoq~oo3p>}nz0XhG}u*rUGOpB12{YtEcFVvVAF%sP_Mzl zTjPQ7F{PF<9^}g;Hy@#TA5A6m%F@WVH(6xE_%brWTLX=Ljlpgw28TG0M~UfRESH+% zB#&`u=x>W3Gj5Q?`+^bJY&?gV(cFxY+Zq1@6JXi+-5}kx2P{7N1LvIzx)!CNJ?jmO zJ^Ks_1W#g5eGyDr`4SfNKZk2nqQKwT0~g#5!om1Gu>ag>aMQTO+!mZ6xqG9y@$>&9 z-THS3Q%vEWxCnIpm5wQ1H__ow6-ws(!_-B(y!!XSyeU1LpYq(6AAElzf24IfU#>Eb zKPmL~8{22{QTPAjUkzQw?@ye^D{mI_c55B@?bAo{@m>b}bAd@QrTjXo+Ir%Md>dqQ za)@iZ|aQfscI8j~;A#Xz9^GepFD5g- z3!c!&K5QhGayQ9^w{hgt@(1LgwgDa~x5SH@8tCgHk53nyVzjq83NkekKB$oR=>?Dp zZ`{eC+CgO3)e!o{<#Z;qUk(nG8A7wJ!1o|R-zM-fvC0V|LjP6rdYsj3(_)*at! zhT&6D22QzCf~V`gqVgW;8H}rSn4-W_4CzR!X$g#X~^JKpC z_zeDF{0!d3hv6$T?fC56x%9Jzd|9Z2)(_Nh&9H$OKEed~k=8guxJRBz_$~P28_Aam56MM6Us5xs zmOEo_Pw#5m$Rs$)7-ogw>pZ;bh(^Mm*xPZR#f?$P`!V-auZIELTJ*z(iV$MHLa zGtXL1;H@bKez8#Jcv)HSOU(56(Kj^st!w)5dk#UPoq?FQbtPsN>0!?OFzRaBKseMz zgXcJ5uCnkFY&3iV`NFI{w_1*s=qj>PXDhOmsv4|b zBSVi?lAo`ClDJqyygz0PUXqQ$K4OU~h4y&!ER9LwV^HqI5F9by0^hwDj{bZ8k>cY~ z#8!6}=@Rz*n%Gim+L91v2%`%x|IC0;0YZQA#%|D98v>Re)1m%d5tK|VgtL$ar7rQ{ z@Gt`g&J}n?Es-$#<7(h`I||H%v0xrG3_@liGwJv(x@BcP_w?^9^6u9S;&ap#C&zBZ z9{qDzl6MtHS#aoew+f;CEBYnL@xzYF@fyDr_$dx5ymO@n@3TsmH;pvlrF-@G^}@_Z zu3!ki`LY#%(8P*2ZXe7$SR3$5JoNZ~vo!hfQqfiWbj7x+T08f;^^Hmm+c$muMWV^7s; zu(A7fS+%->Z1+Kdn`8eS-n)MT0~;Zu(pU%ze-hwEu0Qx0&4-dOfECYs>bPHT(}u)s&#^l;ls11vdj zgm+)PCt-7<$cA0>$thNoOJmkEc2i|cqW%D=_i%;T?@z!%!5{EtcnG+BNPyn!w?O^P zHR!t+2N&~V1b1;1eES;$zdrcDeWTTo%?d7IGbM;9`Xev|UNZZ)+A`p2M6`7yNws$c z@jY*gd)4>jm><#jCp!~gF6FU2z81e8ZAV6}3+F%W#idya{Gop;{16XqUP0g&z4y}O zuQ}@S{8%|`sKhsJ#3P+gvCQsCW;KBDZ%JrplY!e7i5T)sgS zy{%X>_Qnb(?7k(GY~2L*~=TzC|OR8+XiwZkW@Q?hu*ahTqBNUe2hX-bv(6}NRejeThLj#6_v2HPQ zL2f(KYb2(NH_Ma#0XxXVfXgI6;1e((pOf$7I!VM@4P5b1U`h@dh_2l|WU96f7Cbh@ zJ3|!k_Nte}P>2X_>pVwJPtqWjhBox=j6sZ@j}K#$)y6E_0WkCEZb%<+1ZLPAh9UlE zAQ-Pfkw-Q-X2-yi+ri*h5C)51oq=&?N1*oZBsh4{6ym6X;OO1R>7r${(b#>Y zf6o&#^i&t|9At%g;a<2V;S%=Qjsb7urp+6gtMOxQtMl)ARQc*NU3iOmfd#vYF>t|E zBsG3$yJ7?`kp>V8^-^K)wTM|(tPj-|LPE|l0ix;Kp#JDS3|L$yB<32yBjJy5-sD*W zLpfION-tQnE3(ZuRoG+s%B=r#Mb_T&FH~v$f>T$%!!%iw;C(Iw=cb!rGbIMRKY2s9 z@OPihv4b?NdS=O2ea87wx@^+^)m-;oBa-u95-E#&OzaIBNzX`C{GM%zYi|$7E{iG zvl+H3oPttEA+xtC7}CrAL2*SG?D`V}g^g!mN9JBA?O6!^K69aFtt%{}O`uWjIdgPK zEc1?=#O#?e&)GY6fanYIFk3_A-$XD7i--D_Yn{yvOW zcnb-!AHl(+4La6#Lf4W$_(99D`@ILSJ02>s7uNMb^xjT5RQU~(H#R{?W(9OyD1tB7 zuY$EkG)$Se8?-IN;P*%yx`y9nobnGcmxQ`KER*HJM@=J5iO0!bU%_vuolL4fHj|S- zRk6KP120@3gt6bP(EH&itY95bYtcjuIz9@yzq+`mt(u4{L&zeVk)*6ej@!9@JR@k+ znEW^D@aFn>Na&gciEmcJma`|oL?Z+=&xgb5j8Is%>=dkj7zC%j_<;NE9nijJEhLo8 z2bW8Bux`2z%y{*Kd1!cziF;wlv_3u|+jhm0thJVss#Z(%^lzE$MdH%zUR~UXnf*~%s=y*99m9n=8z0XE6{mWJEZNDYMZh6eiR51tN ze@o%%(02Sk%ogwGuatJd#@k+&AXFv0WO6~!@Y?`>r=->EXj>x!xL<1w7& z0ae1RSwOZoC~3{5(7^I|YGj*MZ6XrEqNSa!4CZLH%q+uskef&YarMIIZ`jAFOsHQ;jQ$=ORng zoV*JEK0AeWib?opa{<;=KEm63E7A8z4IbPsFvmOE@S}MPj+p)qvz~mwsFmN*eMJ}E z8Qp`q%Kf;N{)hKU6!`6C$~>Q|#DDoD$B$jniNS8I_|>WgV<+9f$gmKk;+A9PMKe4| z#}nU~9rX0FuZ-_;YsjJJfcCwUQ0Scm{<}F)>v{y9Hf5k9c@DLIn&I))?=bej4}qKY z1uUJu!SOY}AmdvH6yIrpNmWl^D7g(G@lp_1Ujc;~ry<479agr8K>y<)P?y#-7q~6V zuE4{z@+v#7l04w_C)$(V>&J=R#T;UPzKo!M1v%$bMbsYkkYiaoxG%>5w|5HjVtYkA zc%+-eX|(`VKyHeE!-_UAWv;8#Ah9b+DTzxcQ_Wl z_QylP$9UN084Jn{G0+|o1A*CR!28}|XfIt4bAGr%-Sio7aOE)AVbjPAye~Kz-7J|A zql;x@6HgGu#XrcSFAiwdy%DuA6eA{IK@A~4LG_lPe^ME;q8IqXzXjz?JMj9skGN;T zd$jHRhy(M#V20-}beYC?E;hU`*T=7uTpS0JplD|2~4xjf|qA5!ZD#9 zI&H88o+M5Mwa(!XRV@dvrx0exOeR zkQ*krJulQUV3f|N3>7h_#$J=PS#2VBZOh0-69YVYq4Et{u1ju0^kzx3O(TCVshf4u|Hf!53CqsHky{6o&-Kjz~^1x{u@_c;*C% zYTgQq;=;lF>m^7CxB;$l_u$@%XE1B8Fh`jF9Gb?y0nw2r2*3t7HnRpUy(sPbz0F%KjpZk z2Y4=`!kiSxFD6SrA0q`F7swOmLUP3BE;-&&OlYaVP>*;@Cj65UT?2vj-+z)=H;g2w z=JGPhKXYbwMHaK<_aEl#AyWtq6GM=q8|+D z>4s%!HpdsYF1&#G4cBnKpA=W+-@*TmJjB)`PtkKlEnbFqxKnthrB%1!N|P4sIP?jZ z#k64**M^gqd`8io&*8FeI>)BstG>W$uv`bSk@Zg#obN(%}s2cOw8B%5a%rd4>~l3*gVN2_1E)A zWNZ@YUlvPt?1>?-MB7O7xm(=k0}=G~0W+Dvb7{=N!0(LR1QSrm5YE@Yd7yPdc+Y2T zhv=RALI3tqco8gQ^I{Kyi_pWBJlY61mn{)`U6bJOF9+x@7!1BYqaE8( zyy7jYo~*<~pWC=g-JrkBr@A$PGxhWL)16X0V$UM3gzh ze4DLMzdjTWez^pJM+#uPeF@xidId&bh5n+?AMg#7XTPi%$Y%Pf2)QU#);(K^{V_<9 z{m=L>SUa^t!>3nJa=8@B1{A@!iZlqD5&>zghhd4G@ZJ`U2GQFAux0)|#;krnv)U$) zzMHp@yK!hDd6<$+wA|{+>}d+PBU~T#`-bC_E_-~S?SOxUnoUP>7#=Co!g2DS$l!m4 zV28N7*?Fm6CTio@?=+WacK(*6$f%LV@TuueQ@`wz)ZMgCc^5}y~P z${#Y&;GcwQ@|*Rv_^`K{eExoQzIuQX|Jte#Tc&(QU(-r_^YbR|Z;Zwh+Pm=QDSLdn zrjB%HOeMvWo$28t;}|nX4QR-i0iXB!KyY3HMEXf!ldJ+J)d)R$hi)icJAmzxsIlC8 zZ8l8FfW0$f5Ig9qq2P7XX9;StO+p^1zh9n>ZTHe&$rB)oTy6G~0rtEJ-Etc^^saAx)&@t+7_g5$oJ0VG}hE2U{*f z-STCaD?cC02LVnt9fePX+B#rq8`*xokf7kQuis=qCX|KAj=24%U9t}f4qF-HX!M84 zsWSu>ksbVsn+y&1i$R<6fX%fY;Qx39IK5m3<+bx+s+%iV**ikDiv=9WQGpPsWX{$d zVLq~Pbn>uFu6Wpfq9-`Y3p6#cy=OeCb*#ZpR1kjM6_17ga5gZl2-f8l;?r8DDM{DuL)#`led1XH3gpe`x`-19?&rx=^ z01sV=L+zwv_@CM&G&`h-BNm+@W_cDI_j(QU_rHJ4hFBU>Q@mhc{YAkgDuvZUood1O^pfyna z*-$iEH5ONor|}mx8Sgev#dST?uyphkymDy*u3c||8{?F5q+SF0ed{I(dU2fGBI@Li zG*DLfzV7fpU^q9(uL zsv2L`tjv!l1NcgW2f_>L4{XEJu@Vdm!{NKj^Slin?sx z0&RAgmOA?(bRg@d*awbPLO*)qD;REZA2K&(gLvh6h&DeC2ahcT=am-l!}TrmGd_sP z@0QVOcA;En!YcBvw16ZIZX;)e-%Zv_3oKr1kMEv|Fj-Q(&-K&7n?Gy2NgdJ}3 zFvo=k>Uh2LBboH}22q)Pf|zQmk_~x=GQD+QX}_jji~(L{-Xy+dHdiV^_;M34EwG0O zR|f9qOaq4%v*AF^YZkz{c;^}?CNAzc1f9ny$hLoy~VWSqH->C zhYul(9})Y@s_5=N7JEaNV|~$4%t;K#EcygICJ&bXgyY$WL6N`x$TB)#KO55@Fvi50^wvPyzS@$9UDtl_5t?4kk%b~X0E3&Evh`l%60=05{tgWHgL@H#BG77Hpd z{(=|B4IENNfs051)+^m&7D<3vQKU~BI>|WY{>4NjNhJ-6b!5!kf21Q$3#S|$f`@CZ zQPMO5{XSXabEyT&_728%JGAiTly0)yq>kv9T_-zg_K*d~7092})iR-vNz2ttV_H6( zXHNXO#{`>q2uv3>$Vf4RjWMGk`;rqppicx#sDiq!GMSf}&T1>r+NmhAi zwu@l!%u?))ti}xg*Er-v6Q=5a!ZNl4Z(sQ?@O^%u#-(qlEA$eKas`LX%LcUFT8(Pe z4^cnj7M@UwM|!yrY72St5j%{r>1r`CxH6o~H>BxRH-nfdulksPUrrF^vkg*9!(sEj zG}z};1XWFsAy;6IGs3J)$@V9l(e8o#s6NnP<=BC5|G~V!Juv0ZPq6y_8IA_Ng(GIq zz+&GWm|~L$@xS6>q)IUOWN(1zYDf6mr2#s3N|-h2`xsZZI@(-Elj|}YO3wEO6XkDr zNh;Sy)ZLYFr==0*DGkMh;np}u-3plubM(757^|%G5GE+$gE!yEre&o>O(mI-gr#JK z?QS-1 z+2wDGsQiTfb#mENVz!qsDPVo)F6kktt-{**jdiseH8$ec60_SCC%1p^ZCZSgs zHkHnT2ZN4)S?XEHY`+3O?+d-0Ib|?=?n{_;_&uyl>wwL1KY`uR1)>FiLCZ#%%dGqb z%E@hza-|WL*wjMBrxG|HRtRGX(!lWhIq=Uq23aOcpkeW7*ycY_$nnV-)6;GY{UVj# z6}yfLIO;?mk2^)E)p_KB;|ua=`!Didri3SdYGA`QT^un|54Vc6@o1=qz!+CV+NYIV z9#uwuO->;np6n5JfCb*gjucMMC{?^hr#gVECrgy)(zg!ibz4nGCh=GMaW=RRb{@6Kc%boek?3c5_txFl*(?_DmxT5zFS zWDy(97NQrWi^T;FxKw2s&aym)`M)A?@$Y2Z)R2YIi}SH4lVE|@1Dw980^>*3p?%qF zObdL6%XFGh-LVlPdmHfIg<5=;_!I{|xsB&vU&j+EahSFvK;VL}#;$wgak<|>y!1%O zCG6EA?)$RnrK92*wKRG7)He=ZcdUad%Rm?(5eFGm7Tn^5ET@o%{$x=B>zjog^9%2w ztf~pdKKuYfZZ*Noih9_e`~r-_o&tU3E*O{I0*|J2c(R=cil-`g-J6~12Gfe|^)HJcz zR2>86tDxx}IrJ=SC*Rizi=jq^B(dfK`Jlg-%qSW~Hdfx|qJzDP6b@w2Q*^DFSk!}0`!6wzpL#J1KASSz zQYO(_b;meQ@d)zgP$+qvbCeSm#c4>;3dNa-ry2=;dTs+cb|onb187}bq+KiA+Upf z1WIksU`b6axX`a*tm9i~Ti5_Wqh3KzOBGC)mcl^SJ8(z05Z-^xgvzrQp-?Xr*pmm~ z?Y_luJ8}%nQPzO#o1ZZ^rKgxz`KC;0B}I#_pW^>w*+eVQ_Mo$DrU8{5cXqZdR^=pp#rPa#D%!Nh;rCX%OTM`rKH=BR0B zWxnn6Y5H?LJ$aQeW4~}NQz72Y{8T-_JpHzhNqoDL`7vkrB-rut2$a7u*PIH7i=+DhT2oM;MJT1xGl{O zLz++HGuv}`sWb+sw8r6-i%Dp$e+iwEE~8|Fz)Jg+h+DPdaE$s{OtA{aSwist%*Zle3#g%?;>(B<=pLy+O!b2Xa20qWKvDLn1?;)a1vc$(D~JHwciU) zdI!Ny?Pz$hFcEY{q(N6eCLBx5g+jOm=L~MbqqBK1!}20R1&;f6%9`ggn-T9 zW3V-E0|ZCT15LXLknzO`cHHh{c6;4s_7$IHs@i8Tr*40zt$q)t>%XzwjSCH2?Q#q9 zUVS-PGcb^xoEuM)@~@KT!rt$OWrbvhG@rcj$RXEUu97EP<4JsSC|SK@51H4pkUXuK zKq9*2h>!7k?){f9GOq)FoiqBZ=ovT9(@&n=r7e4#Y5$Ym^iTcwwEcj58cX-k3v|Cz zT-45@A>A{$N&9YbKezRB^|$QFiQBu$o~Rk(H25*n>1 z!Iu{vpsTeHVx|PZ`t&gPD2jrztFdrgoB$r;6wsnB!|1vcSTH;prVfjT;HqfwydD9w zlutvCw{S0gvlC#t;6hHG4rkr$;k2tETx15q(cy2I7PlN`=y6|WuYoh;($hk}FZ@FJ zH%#X&rc`rrpGOfZfoHsBUI2MECW^>;2<)2V95Q8T5n(?OQnTR>A-%VWQT!cZ7E(-3 zJTD}(D{{%pj4aY8I84KnE)f0xaPsVAIJsOHPVAb3h*^FRxyzj*VOLL+3WXrjXBtGV zoC+cRZz9ONNpU30EsLyRYivv~{j9(^iB!enr+m||5E+jTn!%45{ z6mqP!jhmCZgiBcViW)SwhJI*c$xIZxF|BMQQ?sI&@i%N^9{o^)g|>s>@1~(p5^4j| z<6~fJ#{}?8ae~vc1fQu34W;a4xT5F^8gi4NqLqRt=?<{>qYb#(nZp1*U064CAm~o} z#mKMw%*^R|$6Q_dfLSTz>vxrhF;+!unQOEI<22_Vt=4~!);k|TFW~Iyxh?OhvEu`& zg?E<~ncnV}J+)lRC0zI8^cDR$Gs{r!cW)Xub!jrU+|P^4SOMIP!OOY*L%q3+yZ3VK zR0QX9C4)0^PvMqDo#KW(iQpzD+~=C_zUNANesih;+Qh5Lnk3z&NNBi_)lgqWqT;;B z^KX9STwXXiR7I4>7n3U~*GSxsNWqV~hrHV*B9<22T*m7i zT<6=1&eJmv(dB348QDlDrqFFIBfAmAj8neI1pd3qsDs}FS#Kk=2R}0h zlYTJa7X(LEo$!6G{mKjvZ(&mV>IJ7nC1Y{^5tDP6XKbHkG2aKrFhN!)8Rd*c%&E3f z%&AE_%=7E5^l-aW+W0d=`@VWjg=I~pJ|2B5o*v*LQ~Hr4J8YjSd!Twlw!+j-HpE7q z%3X?-+`GASM#WiL8c;}=etby}p7n{ISR~KrTMlAM`iC=}-^MeibjCB|&sj5ZH-|B0 zPmG!G7Rt=5+ zBkD8PksdKN9VGTEkvKt|jC-cO2{2lT&`3|{ScbjCF zAQ{wji}c^RLbU$7NVdfZUN~<*qWp9%@sD>Tqkbt7X=oW2l7Er={m7jAeKy58cr-&- zAC089{z;>2u!64f=%ZgL4P;Ex+iCaM=X8+rAG+<95mR?@k{9xz`V6M4GrzyfG09Q=^x-GU%v=`(hKtonV5pRy{XiUpLpEt3sFn1)@;#mTRrK&505& za@~=1@9LZy)`~dxNkPaEQJn4xlyrPth*n5p=VPNd?2`cl%uFEZj*O`<$TZiV*sE zN+kWlCV?KYD3$Jg7E2qegwh)ZoTVQwJVR&M`OrI$E~mY}PNgH%X3^%yZE3IL*c zBB+Fo;p8+P)pKZQ8lIas1x32sEKDeic?pmORSXW z<#Vzr#$Yow|Lk;X`$@)mg6RNRtLi1$;W2r#p1*-IGHi`(O2AZE)NFs*vYdyq>RlDG zv8QA*y{tCb;3h4ub%HVHyH1PSJ6DBs*AsJjQ+IRk7X)z=0>Ze)gfraC=2*^oZz30& z7Rf0_hH{tcgSnz#r?{#nAMO>ko;&$tE_XXy_1del&&Iy8 zomOVDtD%&$rTZQ#%}>aL`iD>(|K6aqCw-=dz4}ctLu)81tAV=PHjw^3!;offn$QwA zQ`)>-kKSRVOkYotr*ju7(T#T9RQm0=)KSwON@-gkHLkFnGMMd4-9BSUUHH3~8t~~l z)lqSiqCRC&xpW~lMLUoxSUrH6XUj>K9DQ5VA9+RUHE^Bt-R=4mlXjZ=?_fA}X2S(4 z(eEMU_(Or7hqiP~pBp_**_WOY~;6HgDe4Wn21pQ7DoouaKj3eFD4{q$noPRE~E zNe66qp>2Yd>DcW_)KZ1Hl-GsV&Q~lPoN>d*1Y|&%&m); zsfRt2Etpp;yBqgSb}~SZtFWEGxkb8g-N7@sIM3zW=*8aLruviId&ZYjZujE`9#Zla*c3rMey;^3|zD@RL$Hk&ovudS`TZUM@S(jp6 z0x7@vaEcg5P@9@EsXm`(@kP&u`a-q_O7*fXPM^fRj3n)LuHB^J&LaO?OGv%(_?YxrWJX18HerM6A zHR(l8(cg*!GjwFDC)&zVDI1x{#8P(Jbe8Pn-i@-N|0c^!woZ^Y&>Vq+Mk^*m&7|u>}ENeuWu++o;ay! zVRuZ?nIE-9QWHIyakZ(eKWvK3Z0&B@faQB+l-)*|N5xjz&Qfn#&fm>4OQY?w{w>R8 zeBu$=he-i4%gh6^eB%IFTScI3=fu;pR|ThKZe}sEg;$Tr9`0HvE4}O~yDpk1(|AJ3 z%s!5lMcHV}maFT@nmUbSGoQB?(b12Kc27z!@_VqWDCuf!(V_8Yil$8u5|GL9MWYlG zi~5~Ii_UF2S5&&@Xi@C~g`#VdW2Fb3r%UAz7Zlo95viISe=siTTquPhEX@F#!`0QXH#3l zcT*k?-c<34!<7H;vy@z46s0~mh8nIBO(~fsP*v3_)RHeb)EB=jY6e|EJ$BBg)SsnM zt!e30;f<@*rBUgW$%!b6Idh(xj~6IcQ4qCI?j+@Iyn;%cK9dr~4yER&s!(G_>QTd- z^r;X2UCv=25}c18@^n7qImda%k&WWJlfuNu&b*LlNA^q47kfzG9Ac!_zVD=Ir?iU_ z=aHhBAM1(&yss3!VM>a;GCmenj?j?>=i16Dv>jweeQacMkL_g*zbDH6+yEK9)k&6l z(^)p;fSGJW;tbibVT|lnot^Bc_zE3K;XFafp*^({Q4-YJCiHQ`4pG(V)om3~8 z{b;6G&L~hU4!Pt+rG|?drT4^iITx_628*LLmDbf}9Y}_x7aQ`cQa%hNiKu4J9ZA7CeTH}bQ*(ppUKh;z` zKWK_rzvQ?$I4MM|efXDX!YyA>NbZ%wAKg=>f&WfRGZXctdpKLkRBPixg%2|eeaE*+ z&ab~N{o3Clo$UHUxkWSc>k_7@(zI9B>(oxD`fwLns1OG#P}Zj*Rag-T9XZ;~2+w3pV#nM$V0 z&PXD&c}dNVKqvLoLWx4Muk_D{gdNKan#lwJv$B|UmqURtX& zU-Iq5P04Gc7|D(0za(i6dt_DpqKUw+%2B8%6{cW{0bb*Ey(&v%kJCJglN9ZVUJ%lC29BDIAds z%X{Xc6DRvcZhuQfjy;D(``jms{@a-&`aSKsMAC9$gm--&giA64rmy&Y#Ix2L@mH7_VEII{O(VRqT_ zLf;ZAX~F$S(I%fjC*xge(rpPR3xX4rrKaycN?u3ql2XINojhFzOZBeCNQBs%^ow|& zBz9k`)6&W{(zSDri_{rw>4S?Coo0(iN<;r+rTer~B!{1jl7FMl(g#D5CGYxwOGLVI(!q_I((j#7l6~*W zCE?%QolZm>i#A{Ek~A+EFZGH@mo!egA$e%JTzbEDpeSnQi9-DaGRczDRZj7xe+t)~ zep+~8TBu~V{l)wx85xpQE6t=s;Jf5=#t3QD)zk53lfx3tg3FRWKb@sYffpt9WAr5T7d<2gLar8e zx#vo1C+bNW_l%gJdc9FHWY=iPWF|>c5|AdTs(U7BSNor%^YEwg{r|YVM~KL-Bn@Sp z`*zN`uOp#Sv{SUSl{9F4+DgdE3S~r*5z0FE`#S3ml~59)sU)MJL5T+a&iD5RoX6vw z$GNWS{d%w0lYxir6fO6@g}C2f1Tw}Cz`LjkUTHlC&RUZ0`L!PoUCSW%1%C&>BkI`Q zw4R>x?IrEH@&>$UY=&OaiIg*W20uOXpk7xCtW_tFv+GmAp*#b&+#02GW~ktRruT$+ zt|8f>&d_e-l%can1OFG|fzzLj(JL>@K(l2t9p3W+dMntZU2Hi>!=|*2`IemT)dgLJ z`^jr9vB1^3LJ!wnqr}MEV(LmIzFuAPv81=jhJc`PWUwaCT93*W5b8C zq@SZZ!7nWUtH3ULK;sA0#CDJi>#Yg)H8;Gj%oVaTRPn;78<0>E0;NH%Fk59SY+PbZ z?aoSEsvZSeu`5V}GGlCQEre5%uGnRsHu(A6hJ6Ogc+GTkzU>AXi2C&! zEc^`M-t@Qp&gB9XZS%){R}8KnFu>JtB|&5xY*ya3S{DB$r&1Ec+00(@L{!DkP6!`m23ymXBcew;rZGS+T}L(BnazN|@Z-J_1j z&w36EzU?J5r|IEU;%fM%S_1nnysNyhXAY?$FQZn4h%JRz)Sf_c<4bqD1Bi^4jJ^{M*7+QDEjz;H;^=_g-gR);GODg z`l8(v`i#aWSZiSd)oUd%_t*{A0Ov zx!iGa8R|bk9gN{Y4@Jap4c)O@;&ho@k7psC7c1 zc{{zaG>(78Bm-I}D&g+|Nkrs=?a=?Gg|^y!i?Eo`NqaTL0#Ru~%nlf%mrVT#)&I%h z>oZ)jTq=k5i)sNls*S%-9E1-OD!_jC1mZff0j~fFm@fQI%nx`ElvXq--L8WJyo*rm zZcZu<*g|4WHxXz&9iNP8g^#s{gx{_TIG&VBYuxoAr>u#mM<#xUz+nT(`*#RT4}PW1 z)HLzw+(@!-^&1vP%NpO+ok7+ts)4KC<#7B-J{_%VN&9D)(&nmVkks!41)TIb<%#|~CO zt~35>coi1?TS6|~Eyp*GA7RNWdckk2IhDW5D`Czr4o+UWn4F`P4D#D#@ZMf4Jn5@D znKsS{qxWgBa@!qH&pikenL;oY8sNmKk$i8JGsI`(wfuPYKLQk$@XCxF(kem$sGtLTp>EOD~H_fpIGp@b~<`v_N|*s60{x zVVy2LE#oJB?&KkImrn|z{K|%2yxIuVUb*#S?rd+7hB>5wDgYw`M# z2lQ?2U(lN7Ngwaykww~?c&k|ec-S5%eGOD0=X5TZNOi#l;DT)Te84&C_}H?o(9os} zdwBjZv4Vl%kSNI6@c?dkM#8G2&!9U&4u;2+aaD2^ME?z8J-T;_pW>cQ$_3lv@_z#` z_Vg0ObM)}7&5Cq}xrprD^8!*V9)ewA2`wKn8CQN81$S;Z987%-duLu{os`LeDTNzh zWQQLAk8?1r^GKxa6T6@KQDPo=0hw!++qjJqE5lf{r8mi?qVD3VFtf21)f%RKR zZGSN=_xFLE**_uH(-_}gGzDjBbasSvO9AzNPH5>`u+>hqF{v2`1Y|hEZ@_LzD1C;C4n3q`$eBD zy3UX9ZveYz6htf^g?+M>Fk-%$w75**O&gV9ac?`U_qj~o&92~=!*9NZ^nUoRoPiSs zHsF@WCW6*7w5@tSRLXGZB;P;qTVMuOmfCc4iLYvO@4q*aW@X&2iW{6(}>PBPMgE z5+`b=!-7f`I2heSzj2t1_parVb2mHVsXx{e+NsZJRe2*kzF-}x6%l5os(?HM+{0F+&R;ykN5*$vAwtvk?A_$PpXP#lWYNw$LV<0Dq32!yVFs)%NiBMBynpY;bTA z>2}D*G0jCpwoKbiyw+)f_e%_kuC}xI-DhQNAz#SvnUe*NCmG>)(`(55hm|1ma(DFc z^C2GV=70&u7G6K8gUr!bNXluUsipp4^V<~fpC3ic(s>ArM>4_L`xBfg%BGEN@4}{! zPr+lk12JI@5O4eYAOqRrQJrR}6_0b=+7k>)ZPW19k|0pqat+usW9Xf&hUCF5FIktL zH`8OQ8CbSDjjyeG9t`(3Np0M2fc!21)!+%_t${(Pxnu#W0x*%I-vk{y)B#T1fjJ9j zfZkMX;`R7i=+O%%4=9h)B5@&bU&zDs`>OESR~|p^O$Y0@UucyTy+qHud{$D$2N3bq zafeI~Z4@sdwtk2to;Wr_=#naW(nKTTdSWEp^(`Ti8+38E9vc=dxDNHlm2l%Eb*TRh za6W1nI5PKGHcHD$%W(;`XN(OFIpvO>ewNa4=^x=q+9bHQ=?v+(u?*6KX}*72JdA3a zImY*HH@vXS$m7f$zy8x^u7!9Dc(c+OOXOTcIYQ4pT7-}FVE3e z*Peoz$3wwmQ3pPuJL!K1#?!Yhx&r&IDi*Y91HYn*IMlrY{yT(0Pwx#J zyqOA_&QFLr>wQ61ISqP#gwQ%MH89UNktn%Y0&#yMVWfB^9PJRnXk#s*=pz8H4+ONS zl+bGnFT&>=KA;;m3g;&NA~f_$!8(qledPb6O}-SsQ1S@)hg)F76Dg!|OBh%g6hOv6 zBlKG&fjKt@PHDbm#k4#Cm+Mbq_3~8Wc(DcE)4rCzHzgd_rkn=SZ7-{%E6u@9Uk!JA z{e{qTAE9e3nU%U~5_urgluqz}3h&Gmi0&{OoRhy325aJB@sx$Izhw&fd0MG8G>3H58z$PBJk~0u_q56`GdNMu3;~IL&>2?=3;gzjO59`c zog7H7mMns-IpcAp)gI{UFM`CY{V;k$iHsc4#y+cpU{?D|P>Je>%tf8_i;OoQGdrJ_ zy?G4cC!U6cXOqbr78{^k>kBM9PQzqx8amZ~zziz|tazdc20b4UdC#5T%g$`*V>N?& z;yqT0&pG1p3m?35`gMA$?qvMoZZEmvy&K&-K_5Fj;6Sk4We`4az%vFC;lM9d@=#F| zy)UW|=H2dw>9VEZI4hQ@oMMA-9eD-ME_HxO$``_6*KfK$^D}(B>I{ZMee|c?XQYi% z2eC)eOdE^D5aE6cf)!5V(g!m5`z>|&r@ISI&)!7p8~%hmu&3KKQ)t&o(lcYd7gk>n zBgEIok*$_lQ2As$mi=x5`fUWuyru(Gs#3rx&H~1}((u%2Gj?X*A?_eklF-w}Gask} zBGqv6?%2u&MPBfA_!3;SF6$Xd^KSk>*+0RQmOF+ta~Jj z!-ZvJuzWtfS}pk!PtqXxd@Y=xJOg+xg|Jm}gV?#K2!2k@V+rNui7ycf zxOCH5=zOpRDkiAl_aA5Ds0m!C{B@E}*``A*TTKz72K{lvO*-MQv_6y8OHh9z;edBJ-8dLYY&;oATv~x)W1}oywlf9h9ahJ) zW)H!qD`sT*NVIf=sDp5PluwK1U7-^XDdK57E&R#B9V+*h!kOS6T7Bj3|JQCA<{OC8 zj|Sw3QY6N_JQBJs=F~&&|Ms#q2CaiemL|)cb#(`R5c+vfoP`fi1CwrTbJ-ac? z=_;a!mb8GmG|ol1RY3RjbfP{u4zfP`lR-tfMDn>___{d*kZUyT4DA7f*->D3JQLE^ z#et1f<5uMK)63)Q2#)C?$cvnVeUEK|jp12@Ue7jZUL@g%&;JQ5LmkkWYl^$I<`eq% zds$^|wUsI*nf$cNC1AM89KXnaTVD7!4i--|B6)f{z(Xqv`c~Z{C4#H4-QEI1_nG0| z%YCr*(Kt+y=CClDtR&KhY1?bTge(&d@3y$Zs!u+!`tlUqKKVmsd(jQJ`erk^c48;d z5od!P3%5x1)Ou)0ONTS#&%wQui2w_nz$bAKLz@m=zi)sOpjxk=R!W@?1j_(wE2a=aQvxsX+yOODD(DGLZ1O?t z4)~kpfg?xng3*RjB6oBzpiQH&#Q6fNWaGQajEZ%*Lj5u{?GJ;s+n$k0dnd6Bmuup+ zpKIZInF)S$u>{cfbFkr3HcT%MBG`s4Q1U4qo+VZi?>;8Nj$O_4lSp+u-0MxA@!kkK zs^Wop_X*raRLC)TeR9P9GdSdr1HJQd_;Gk0P=}R)7xk8~*S92f?-l{a@E_mt$Tn~g zO7kp9DDC>&3s7{83E49eUpVq_rczJj-ay&6YjD~` z86uO%p!Yu^X!gdjR98I&w&gEi=ii0%4~mIHzsiZv@5bn)=WRsd8)K|Ds)zkf4MX9V zML>sFfPgN5?geRdb7lbqepYAgTjfR@^p3~ljtS`bLlbCSc_l)?GNT1jb9mk2J@9d- zIbQbu5v`GWm>h7L4$Dt}g%QC~IQ{JqjPMEQ`<)F-pBa!R2NuE^*;}wP%>qKMFML8Bzq{;#Gu@q-zsDNPrhkX5?4QuM_bpxhAd^(u zpAKK%?uWs}H{tQUSFq^yCr~)vNT2+x3Bu=>pm1O{jPGiNG;TWt-t=UBH5FF=(4LBK zC`Lo(oO3X3*<`G^C=JY8MBtGtOHBKA1uh~P+!zr6!>c|KchVly=5JcSB;gZ(lC-XU z&Al6_UpJtV(?EXv@tba)xd02t2H^x`0Wr-COL>Q^B)w=-MR^*3zs-G!3e#cz8L=U~ zR!qb_+fTsK!MH7?s44erYn@cOMKa6$@|-)>Sx|KsLDW~?gyvPcFRy}r=G zCFbzGITo%wvBu`tmk6yX%NsC4e#?l&dKitW_YFO5^s? zPx%n~T^VOTI7m3ndrym-CS&{c8u;6-S_p1@Omr>nq)p}y!*J6J$nUO(lyfTh*{#gVKkkPUSBBdiXoZ{C*o-1i|Pk}JJr@Z+IY+H2}6 z(0-;(tlfRtQTad;ymQdTiIb;djTOCg{Nk6i6Lk%OpWb2_1gSb{RN4`3^`_XvDI0#T zJ_}oY`eFZcIUKd*IxHTvfk##0z*Y(()--m~tiN)2&K`9VWhH?ps)tK61Bv-E=fGCB z9vZ@r5mj%LK=sH>nB0C97F@NqKQi?LJSlz(M<=TB@7ef+!U_x6_O%E?_ID8D{>HE_ zSjNDw?`L6J+H0r^kAPPBRMMV*AD*3iNy~rkqjTz1D}Q@CIsR(%BXro4K}~)HzGuIJ z=PPd0oqPMhO7w$1J?#p)MD8z`dq0B@el7IquQGVt+yIBVwcvTXDm+zdBmB-ihRu#D z*og9g$-eL4LhK^w@5llR(-Gpn%w96MNDrqd1<_kWuRy=mQPL{U96#Hvia*$=kcunh zu}H_CSUxU?-gR^V{mZ5fA|{IAfX+ndl=i*7GzfBO`Zzcg(njm`E+tZv>tOaVD?Hh2 z6P=kr;ql7r!Pes`v8^`@yrOjIwONPZm;(kKS1a;izcp@8X`^E%{DPAa$@DF`L^5xJ z1L(ay18Z1G@aUK?yiaWh_dWN4-YTRG6YZeMM+X+S{v%?4SmFH*^Z1c*_28{l0Q=0< z;6#yBSDBq6171F)w{~&Jo$)y&{?-5{g{iC?f($5JY>I=r`{_9A*N{+D4*VYrq0BuD z-j5^^c4HkZw^P}~VChNl?sLFR=_CA;(;P^7+lSIOcnWkm*x*HD{q()tTVR3wIeNZ_ z3Ro^>6Ia*@Nwe4o=t4}ETf$}#DDhF>~gU}r#v)gC9$Jf4izZ>+&yJK6NE zPg$h>?&~bsW%F1w1}4$F?hL{?>C8ayx4W?5#9aJ+<6D|_XkBH@0d>M~mMXn*-x%%c z84SZ60(xg~9G#RR{a>7)g2I(jkS_la7jlH~t8NptDLiD!O-rEz-%TJ>3(WDU_oGC% z-4*ipB^P|aat^jl-2}fbmXqI4TEiZd9@;-Z4->A&_@;6UP-D^_Q|4J%_2@Yq(jHGJ z?wL$eK?$Hfstcbx-T}|A4OXjnz~-}jddE-#D{i9^6u4lrU#S&d&AtZFA1C9~zstdD zTr?pn$%D<&da&sFfK(fgK)P5NccwW5`6Yz>IC_;X-mHj6xixS(yA7rcyMtGp8ZO$Z zh>gIG@84j}I={e}_15Dt{1fOwi0djy)z-pkp4TC3NFOWGt{~KU2a8?IVEn&@@ToSI zc&=j%&PMv6r8x*GrYB)@JBE(R-H@=&6n@3ovQz>LA?SfT-exk5c-71$R!Q^j1pNze z^wCQA490lo?bpz^PZvM09j4v&Vj<1W3e1odsd6zAR{!1rCuK=;;+++Er*{NlkaH9A zF8G1{#X-9HUjh8)ZibEP)`0)mICA^@mU5FBKOp;M7wkHcL$1;4rxlrUc%wQ9(bKD- zW%WtYg})h3`E;Dli=H@o-;^hMqdVay&rO}=Yn0*St4kw2k4pK0@c7)IFb38hA1J?dD0kff`#z0 zeVC4P3>Nv$1%zC8k`H*dhz zFO!(*>IR!1DB+PoUr4&Qg|L5DB8{(;>B1~&AIRGhyX@t{jf`;Ex=4lo`8I;S*_Z*N zZP9e~5-seV(hQqeuR(oXC6G^baQqP$xN`UpBv$T(okO#UeBCkDt()rb*JMA)`A;Vw z#%Rzl(yqZYb_E!{Z=%@?_rk2}mGr)ndN5vVLC(xRLN5$@3f3$Cvhc(sw1<05dCv|7 za;K~-os=I1r7;qSbYerc@o##Yx(qf9XyAL9hJ)+RD0=diS^W3bH{hk85_~BPgQTO5 zq>_~)rY2fJ{Za;6ymo_bQW3e@GnP4erh4WvYBJMm&2G`Ck$dk^?Fs~-T zoctkp^KLQWyF{IAdNBb{`K3xM-+LEU^pD5ZCpSQos0oY;G1TYmgXLlO$jwKiNtYK2 z;Qc@mJL^@!yD|rSjqNzZdSB%l4@g};2}80n&XxM*Ikn7hbI`QYfYtPxFMwCnz!5cFSV$)1j|; zd%&@g+1T^-Typad8T?ab2FMN9!N--M^nW&=h_~+)F&*Ir8=B|R0}Hkis>`pz$>I`v zr%nP4C2}DpzX%HX*8%;EcIf$%M?2cAB1@l4!(Y9w!t~c}z^?fUa$U*f3ZpaNv~(}s zIg|rqcmIN7&_q1_U>)>I=T@e@y+prX%%Y>eeuK_Q2g!j$^YQTL4>~x-oG6dmjnM?@ zJfY`)`lJ63enC(x@rvgT!S7}8p9m#7rSA;$z}e^DF?x~$^tSfjfvcAAK=xh zGGbrzdI;;d0fSW{V&8`fvew`cTnca!9S#jYg_{Q@CGk09U8 zUyUmsXyVj_`S`F2iH~+BllRYt!Mk~D>FibMw4vW1s6|Y~+4`p|Hz!pPYmZ9nQgSC* z-$q@q%7ZR?jiwEJC^E*5FQjKl<|PsSH4UqgfpTZT+U&3ZX zG8yq~4Enzo@dajq(7QE?)KpJ|sU}B=_J5lAi+%~*Ib=iVtd_pdt95Xi`UCj7e->SG zp%7kt4<#IW7T~VsDbPi_k({+xS(l}=Iv3k#;y*WC;qi}M|1KSSl=b*VmfK9oqu z*P1z9iCctEo9ED)$b;0EkHhK4J;2&@4qmFn;d$$YMB}$lq?>fMHzE8TX?tJ_T;K2? zt`%J-6*juzZ{yCAyCSOT8TXFi=69j^^XqFky1$nkwD!VNc4gz6LRETT<1p+FNO7v0 zZ-cEezvB!~CHC#5F1SzTE53CxhRjM!!yR%boC>RT$n7Nxg3Q5iVtoGuyfxxH&N?3A z>bk4$wzui-Cpv}G_srms9Rf!>E3R0ZPGR_DF9MbW* z;)PC)HwtlMx)tfac(tHe$z4$QZ##RP`FW>^6-6Nb!dM`)Jw&kDbt?O}5sSSmejc7R zUtMrUH&XENOb7m#ZSVBMgd$PH2Qpi+2A{N>C(yrMgIC_uWWT#u;Ph0_8f)(yfbf@} z@w0E|oo2la#P(HI0%EQ{yEgqiuF^UP_wBODUHeDyl_p!KD9zV+${J%#j;1)(^J1LJ z!~Qx&|0sqXToty;-z@xFR@$Qpxz7I4I9K48z0@hZ^9oKlVj|EyCt<&NEhktgb`z{T zu>#-xxL)w$HtjTbwkz9jXxK?SLgN#kWSu@5w&OMLcHraZV%da=lVH<_1$cek5G<%o zfD^l~vG**?B2@!R@%@}ULDubq1U>tf)6juW0$rmB_I%|SL7kbQ;7G$_c4hN?;pxZK z?5-_o?B4vd0^f%b?9a*^p?%m7C#&@X?D1u40)^pvCz085VQ_?tVELLsV_#oPvCIMX>}EyqUsw;U>1{tXPi8ZCQ@NU0LDbq69(ixs7b+gKIg}zpXhB z`*^}`|4mTfSHL#UeeBff;J}Hm-YjT5SPfz8#cZclDR^qbe9l4p96^HGI{|CUeRhDE zAqVf@!qMS{2x6_T2)1%eIr-%$*~uEmIZ0P+IXcoA=O~^T`(X8RL152b!L3tMIe(8C zu%CY~6TJ0($^H|^m%f!Eta*1HC*-cRkgi$5PIhe=f0`%z;G|UcGyeeLqH|nM*GntTvd&sTS-2Hv!>&NV*K214 ztFr&#pB)mRx0fnAAhL@*_GqopZe6ONGv|RYF7J#0t4`#Eyd4xo{X5T|IcttkkhMjy z`}Y!dV|R!!FM6|Z)gmyT-X|lZzUl~O zc&y=Qynp4yG^`g6tAz_)=JX2_Tiyzfci6JIZ4p94yKSUW;VxsqdVuv=pLcjwIRXPmLZ`;Kc7X8o zit|E6dbUt*_bj3I@ykNt>9ayXu0%Mm{HCy~>Xu-}c{AY;9~(iH-*a|lTCQ}_>9$Z1 zuPfwEG8AqfI>3&*QYSE`T7{Q$0)?R+Cc+oLOoeR+It6`qjtYVXWZ7k#GzF7~+XSug z%>tYE)7UKDJlt{gh|u=HAbV92hy8PWp3v!A6T7@uBv|?7zEDBxgz!>ru23#pB(z&u zEi7}e799$66GmT&Vmnk>l3*b>y@bU*_qrYmIItYol0&k-p#$f&7O0$g%80@q}zE`Sj~zR?XZXuB{%%x=;`g^ z_`SF&JT5ztyTtVYH{n<}ck3X zNA(p&120p#4-Q=CuIwx2+&OcCpE2R4$hW^+bmqRbC}2XfXlHDb$o*ERh#STc5eMdS zHJD1a{tt7JD194OPPdNhyL3EtR?C2TJ!(vS;XdOoZ3MPWE1P5dP=njQ=g|M|tY~_d zg2+|jBPagIbIu~|38IBx9tjA&^IZO-+nhr77vbL8m%;!AWv+F)A(bRhpthKe2%Enj z747>W-E(XU;5qZw*5HK30++Vsq+__K8xF2u&iT1J&iHh1HMLG8V0=KEQRGjrh z%0T9`U^U$==za587_!EelTzHy#X*JK`UM`8@WOVgeg8S`{=G$9cKRYtne;69Iw(*n zzm`zL^(Ux(2RBf)c~`mHnSAc8AK$s^jU=b~K8vfEcY!)_DU@=Yq(fDOC{f*RhUk{r zQxsyQ$TPZIj5>@Akn-fkRGW4uWj&ih&zGtqn|C8r$vh{@^6@iq!Ot=A>1o!Is+UrK zu9#L4b?hAXZ>4nSyeLUxx~EiP5gsAgbb^vR&3BR*aw8=}(+ee`R!vfd$FRh;M}Zkh zRAQo?m6)()}3(GngCLf!QpY#{5o=myErd%iHN0#$%57qfp%$k|-$$VeN$k zRJ_H8*SX^iVo5njI?6rh~1yi|eDlr+3W0F5Rw3s{_edgBrZ<50350YtURARGA zo52rEm>7>x$xFFiC@b?2I=$m0B5#DEl^#FEuue`QEZK#sGMZ4QsnieesUEuM8zc$x z?hpl@+05-X+bJ*@w-^0=5`qqN`Jmkv0~Fs&y8FM~9zD458U0hei5>@sp#uMWbjZRH z1tnhMUat8<$ysF}Ywa6onfMZ=bLX!3t>Qb%bW1#P)$m5dMyc=St8pk8%%~{d0%}pu zJ!-?>R7x#mGIfo&kJIR}P&9c!o7!YXaj*6Hh%+brM;!_>LbH@#Q*Mdr)ZK7XDy}4n zn(FzF%Bk@eeHHoit~Bd-Jom&L*j7jvldo()LZ=M|ds zS3%^HGhR%T-xhyL+$3@S{*DqyoTUPS(?#aaAxIw0MT4(CQ+sOUkj$|=R1La`;;i4J zdMQ&#qcj*%wX@OU?B!Cn)&``r+6O(d-HrUO&q5BS(~!w2E^>BNM1LBWQ$HR(;c$*z zpw=V|QWGY8;dExc701T6iqpRe#FNr>CBAY-l7K~-;x+R)qC&^D)MTY`=;%2qi!du3 zsiQ*V^`;3;EUrKvX1AoAiu>rH+cjho7l;0xosKHb*ihRdQ>YnNdE)n-GbFF9W=TrM zB}?Y-yds%&KUE@KQyKaxTAqaf8>+wjEX<%qStHYAkL(#)bGjrx!tOUlwUNk zqoX~ZDYqmU{-XVi$Jk+}|IJ#ap5DkT*|d)-9Q0+58QC#|W9rP_i*1s}Ir}8VI(=M= zXIoK!#tO7VYYOV$zg_C*nuPM+rbv028<50Q8*MJILW!+&(W?6htt2>Tot!V4q8*Q9 z91D@JNd=mGKNFoaJCDxplJe%}b)sM6zM&~Q?jqBe2vpU61noGUf{rdPL*~*mpj;J* z=%S?veV>h1TlZ21pU+aG7k+SE^D`-}>0hY#yqVOtZF9w|&S#1}TE2*w|1NXh-qsV} zT#+ZLFtVZA*Yij$N}DeAw)B%Md0itZ>Xm19PElt>OY|Azy@rg@G7F}EmNPTj~Xc5~FyrMsgvGu{ zD_X9IM3UgcXx6s9h*K~gJtJHY-jXEcjj>SFGY^EN{=;8hg`#Wbw~(@_7(I+CM+Fz| zpsyMg=o@3r+f#JrLN2liN;!8W~*;awDHNK0p%|xop%yw~` zzRjURyLG5dC0~TiCBH>`d{1$eD+;LYJ^!c}OL^q>SO)P#&S-1%ZsfJq2L;Q=AQdU& z;Oo(c$ReN)HG0r!|NKm(XqApi=BFVynREXQ=&zDS-T#&RYr%E)R zUXfhf_&^fhD#L7a)MNV04Vg|=L&kKfF|+^J3?|{QCllwjpXpW%Wft0;W$f0SVp^hh zF%pp@lM|}JWWRVN+0Y&>Y0nxH1KXdvVr7rG*?#D&ZV`I9zY#tA@em#EtVj8$rQT%y z`Kao710o(aqhm*(qq;Zu(6E{Wofv$DKASb6{MGl+OK3yScn{FrVWSasxHkMwN|qbm%kLfQ@B_8<5wUZ=7{5?p*)qCB%y^4+XfqWnjJ z`4eHvD6^Xr6XfS6)yqQd@U>=j+>cd101~X2oAq;QkQKo3!amIXeAhSctUd`UC zz^Dbkkyt0}l_<9z76;%79N8=-^!#=T(qHoe<%ad6ivd;0vHc!;a;OU}pInP%m%Kp6 zT0`h?!xL2fs2Mr(U!a$lo}#69>XFUPax|;I76tX*M=dTXDE>k?`jT)2#dUa~*^bi? z_ue}SqF+*FL2s!{H!mt_lN+_KRiFBnKTf2Tk;0uDGm#oI8RSkmxtJ<;iJ>a5%cAYi zEYRAo-PEZyZ>fqPYvej%J1X}%jgH8AqdvSIx%7vk;0v)Ri^xIS!t>BYxpZ`HX)Yq+ zD*Cn~5%qT*M%QYLk?&X>6}Cf9G|!|&9LoPF?qbc73?)TLnks80)2n|#5S{!qqQX*;7F>%`pMslqsh z-jG~AJ6*Ew5-si<@DisH^_1n4476+ZJA{|~Msd-+x#*K<{FpQYZ;YM|;CbWr<8UQ#x?V(R7V6e|Dc9cs3k zI$C9Ff*j8nq265t+Poo9$}>HN9!v~CDtiy3mBukh+cOm%GQW;Su4JHrbCF0s9^ z3X__|Wxjq|z%*R+VJz&nGuth;F*c){nE1n+n9}2im`%UKm}k1jn8syunY;D>B##8w zBwPLjONs(FOPoDB#j!i{sW+#B5IMgDZL4WVlFO>RjpKEALrH(o%T*)jeugs7{g?so z&FpDBfzMQ)Mym$Tf3y=F)M!HQ&vheK@nE7?Cx$~!@kytPEmRgU9Ja<{8c|S5b&7V$BLwWRNdr0Pl^#;PTD5E5hN>_6}U~(LP}Xs?$;#x`W2G4;YNv3 z?pI06Sq*03p%qgZNiZyTf=QUeX1ofn0M{I%w@|ROgw)JWAoXQ;hnQ)N~Nr! zb8Zci;|iIQ{qMI(^lj86`CE*|ZNDq1VUy)j-e>~4bhiYt!)~M6tR}?ey+z;EWOz4> zwRsz*JY>%R9o`<17Vl8AIEkXN!jwXl0EUS#Acc^IniGCDdVY5 z2-$|BQvCv?xS$akMh&3*s!|qaxdCr^xe4!#i4BiW5Ip@%F3-=8$8&o+m-j*6jkmqd zg}3Du;$_CMc^aO!Jl}m&c}Xl|-ohpg-hhW3uUfwgY4RJ;ot+iv@O3EzS`dQPnXW)B zCv8x%uPhpQkx%V7vzIcCdd0S9ri;s~oWvR}tHj89mpDKYEA@g)7N;tth+8*ii=9iP zOzzns;wM*5ioF8XiM`kD7B?8J7nkzA#3lvn#5EyH#V@w)5g$gE#U^gG;@=;CihFb> zNMx7JlU)6_S90!Vlq9Y-TQX!Ol)Tb)1?72?NEa;bc+cWC zOL;E8S1d-C4_-j-DwT-1(TXw(zoNIvBbk!M=1Pf~=@ZGbJ%1#RZ)h<({br1H zd4$cd5fpU1>2c`%f@7c>362XlVmT;`z2iOI6EWt_xjjA@`c6F9L~@-UE=>|uvW z9*8GNIB&DX{<|W$?NMD+pV1=pbXGEYUs;8=2zpS*|50=vem#AE9B=QTy@#SGN=o#( z=Y1P8N)pj9Qk0@Z$ttvHEA647B#M$E`rLDFh-l%9R7j{)B&&>!exKiea3A-cd(L^k zU$6J;$?(w&swHWSW@Y-KDG)71rf zbi*b!+Mq~=PV?iZ4@eEcio90%5Lged8Zsb^yC0ap&Y;k*3U2=%p_;ON=y?Gjayi3t zmg76j^WAD#U}ZRV5H7-3HkRVH{t`T4U5bx7*5ESB9GsN25-VjOeBz-E-o#6&S5X(j zJN$Ps+sRYz!5%5jsk}yx-N_A{(l6Jn6be$A^5ZjcQBVMOj7-M5a+h#;#aFDcNtYa+ z378Q0hbia$Ra0nJc;pHezIhEKF)pYhkpH#gS8UdK=VK* zY&dltayz@BJMIf?cjoa5tEK4Z6h(SVn>xMV-AuYALXR%W(4mjG>(C+Yn)LNJWjczH zrbDg@(tHCGkaV{n@}}=W_QiUz|C$40K_O85g#%hAWFh`b8{*8^hLjf>Q8TBWF!Rs( z;*;X%@xX$oI7;9*-g-uiOlydeD^Em-k+~!h`^L*C_WOl@g%99j)!W!O2jiW3SFp#H z9Ndo&Sk3wF&;PXb^`h zsFJXuMdW3&E16#$O5XVXA)$Yr z)cYMqob%k%%*<2j_@LxLy!QEN{L%6TUe)#l?{{g(70cT35V?#0EV_*^UM6_&j*Hmk z(*JYS*JCPcHunA}gMFCy%!GA5qxG$TF}rQR6k8u=wzyX@0_`UmCFx;a=IT>s;{sW% z@o5>Be;kAv#jAL&5W(s?ud%%nKN*)-Canq!iGhF(xiaEKq;o@v(&P!k{~(@pxulRT zSnT8i^1Bc2JemceryX5xF(mKgCej{lS{#t-^j@X__QIPn_7 z@6S2mRrgonuXrt9k!FFXVTxJ!+??@!dxIm#{8{e`JLU-%I$jzfRV zYLQ(Hiyp1Ii)N4CM9Ffuk=adxs(gyjnulEhPyL4fBrEw{Q6jQ&s_Y>&kcJw z#bCK3$+&WR4mNc^iyvOUh8NoQz8vYKC!tkTvcvPh3CII2QQ2joeejw<_RxPw=87nMwVDAx{WRcR zv^Ly3pvmK+$%A>V0^HOVgRlI8@Y+HQG9snH?UyuY*hs?XTscsX|AKgSOZ0ZpKIFgd zJtg*{mD=_A2lYl=9#xc^p;Px~p^@GcD(H+ABcPehd=koHj&#&=gH7C+gs~FLX9mnaH|MFOg!lbWS zhTO^#BIXIAL~c}+SoMh#+Y%lxQMw!Z<}>)XLKbGlym5A-Hm;}`;l8cQ$Wy`%oxhxm7MR7Lhn7cB)l(_3 zzL^Byx4c0@LFzcNx*Rp6IioWhx;U za9iOd4yrtWeZ6GKg3$zQaJd#sEjxm5a;vELf=?7|7D0cPZifr4PRM*yDt^~x!mLgn z!V=4Uuu6e736gilf5r}BLqTy8n9$2~+1W0;<8J{`X=bumpD4DtZ!GJ6e>t`Gy z?qK~{0=UNMJF}W|1S>sU$vhHzh3j3)vDdFEoH*IfP>1@M@pf6}>uD7@taF5s@xRUd zJDJ6edUy+;JNbu6eBnn8E9as9ZSMHo5i^Rvf{_v-G`nw!iQg#N=EF5Bbn0ajGZ31@ zQJlRIo9q;1G+Hx}`G6E7{6YavU&u$L(%Puu#}b&FZHuNJRH8ZdL#U6Z3x3?<3wPX~ zqFVw}Xm-*oB$MrdBH9%pI9d_xvP7ZT@E=;=@C#Y?{6)Kv0*Ib`hvLKZ!HHu4_Xc=c zp_vAp%#{Rf*M~^<`6_ht5ka3>UhXa{i&YgJsn>c+gsLCHyVI}Wse3+TPk;?M^u&bM zUrOekNqOY5YyvTeI75b`a!5mBD*2OipPas0K{|37lIbu-B8NK3#^E1i^BWb`SX+P{ z=Jk_*1`4rJcFjc4^CamQks#l@HE@_-9@4lK2ao@9(cpF~_*4nop zhps)vyrI>x#qMBaJ-!5<56_2BXSHFDTrxDQJ_p}rFpRJH2fR#G zq9fi&JTeQ}PSBj3ej9X5e>OU~E0t@e+R_;7WQs)>2$Pb2H)6gblpJ|iLxz0D$XU}V zQhH9Fy|T}g{d#OE+keZ8{kS2V^}V0Wa&Bj^TXRmbT8+u9dDJmh)BxBjS$>vZD4w)6 zDp9*SjeuQz0s4jn>7K(gX#<(%^s?jYXiFz&`t%o9`X@7w&b=>0uPg3{U#B9$R$mv& zYVV^p2g~q{V+H9AJ4zD$*xN8-d@Bk6UlySqOX{+(v)`#5h{>@ZkLq2l1(ueSbwEzuEp=!Vi z^2*G?%~=WBLI%+a+e&1fPobxy3z)j73_QQvoK)?v;H|fp#OksT3-5KZ z>88in?O|zbeCm0&F6Jg{H{Q$kN4K(JO{ZDqHIeN4|K_kk3f`pf$1K=>S)Bg zzS+_;KjzZOcH^*YE(@mLGT_9v3|Ksv3BdkAX!7M8jS0FU|D(+aF-E~l(@%ZITb;LVFEM{ZH1v-%HTNn7#frL%s4t% zbFX?1QitkQ@a3vX-0@SK$2dmhOc^4{S)L@$HIc-HRuk)ApNW=@4m&kz!yZ=N!)k{n zu~T`e?8)Dy?A*nTtl+ha>{YWQws7Hkc7CNIt6T0t;%)O`Oihm7>!L?@u3AgG-wmag z^d`~`p9^S5t7N)E$ct8;twkI9HGx&hR%jdU!F7t4$=st?h}_i);%h6-a#TfG$L}ia zsY)^S!pwY2#A(ugsd@18z$!Gu)`0lT>miMvD(p{h9Ufy`hc)z7VeLKNlNRT5 zq>{6qoZFp;LoZLFkHZyU{o^StG!~$n&T7)~+Pd_WTe`H-4S8B@*$*h-zXNuU{6TGb zKk^R(H#S@Zqjtj=jewrqw#n)~C|T zUWL#v?)%WpMj32QC%`U_2j(}6ClU#FNUE|tyA$iOPd3kBTW$)nHof;rTdpnf z*tim}Us8pPJ;NczrVh?Y_k)qTIL#dwq|Yh7gU6yD;ql%!NPn^o*ffkfZ`op}2@&F8 z){1L6T-;)xjh`exr$F}-+L0*2^Iy1u=+BLy9G3%g!X}`7!vs$kc?mz;|KsU-rJ(Mg z4J`&ipffgv&K&nZi>(#$*h)uiURr|Nj5W!5hc`I+gaT$gZ=y`GUC{USG;E9Qgv_b? zFm$dSUY6y;X&rzwjWb}56pb9@I`P^ZZ!+3T$iRL9HYrz+t#LMGna#%Rl8bX$T~>=d zIH1Rl@_HgY6Kd=`e=GLpmF?`a+!&U+9>L1iYqA^WmXR4M^5n;k!*Ed3fR?RXPuC@F zqy3}T&=F2knVdO|T1kV15R?pHT;>%k}ljAf=b(zZ=Oi*m|I6qrBKaog{ zi{en8x5ZYr6lz8q!EEC=$g4@wx~F96BcVSb_evLRYp8*gV0-vCHJiKp@Iqp|?+8&m zA53mfKE$&Y3!gfN-%xXCxtdwJW1aQ@ufY74QP|I_3-ue76jc*cqA`?L^uqQ@ja@nN0=eIY-l0- zBE*=j9qA|bi*$(h1~u4U_Yt%&8_}efqHAL;X~7m9+Bi&{e#+BLzU24-zNJmc#XZ2Q zp3Eh=ULj<{K8sAfOd&fdHR395iGHr!3{7J)t=WA2j?82Ca8vq~h<%?YvFi&V*Nt`%)3>v*y52LSZ?FtpFK0k+dNtfQ{e}md{Q;o~ zU%)8z0nA#R0r}q-!sqPsl!JU1CZ2Aj*tCW$Gpr}4H=ZR?+Ofp8awm_$X-*nS(s0il+At#?hhMH_TRBZuR!orH%5|iDf}cF9S%Mz6u7tkTA9-xIxwPrDF`dz;&Res5bY=T(*gts` z>atIvrv6+!_T7S9+k1!%DTb0mNtR^K!WTFuilIUSJt0s05#0GHLYEFs!(haB$W`x! z0;wo)```#~2c&pwH;9^}^MG3aRUIEc_7Lm;mw`{^YT>k82{hGs6a88`7t~Wy;l}%m zkR{m(cf9*RAZG~ltq3HhE`p8Ge(37vD5f!eE=jP8Cx;pf$jjdsh`VMfkqrqVD_YdZ zXT@-QaG48g{-O-Iy7J)6%|iLc<4ncpFmg=qB`LBHW)mWH*az~9*~lP!c14jR8}w)e z`(&R3`_tc^y}Htpr4Lc;j7VqJ{lX7&xyuSZ7wgearw-Bqr?P0vhH(1u2b#Vs)&}NR z!*SP{vt($dD4QA}#eQw&l04HUqFBd}X0AI4vnj^R&o9UTieSy!eqiiHX?sB#y6d?D zy*zpdLa%NG^N~uF;dln?7n+kKZ4=TMY(s+6{$a}}`|v8<_o#77HWmXJFGnatdObTskIghg+$r7D-2@+||V?ve|FxT^K(8UjeP_p7E zM4O zN(}vw?+`6V)AaP=X>c2`fD;c?Nnm#!dHUlznXbA^e7oC8+_^^byzDv&2sljAf1Sq~ z-o>aWtr?byLKOuZUE+}97g#PS`z)`=(uqdTTp1!5Y^`2U+lG(#O z^hF=JJr;yw9#?pM^(nZ$k_+>G_d)R8aqtd#2Ag6kpcQsQyzpY!tyhPvdPbPNg1%OR z>$@mCZi7rjzaXO~N!Sso4S!#60O6ZQ!2sf5SmzYn<=wTmo9uz-=b`_cO0vU z+t@pKG0}CFAyzWUxLV^SRh~JD=J|g_-NzIll7Ak&UwjgEZ60Ud?YWC5K!~V+cOdQS zOUV9?b`lXkKvoy=Y9s|o*3MIuJ%EK-!*desaRo8xPN=Y7p6RirAD!9B z=)k^& zxuaM^^nP>6K=gJ}=23)Wyrij5tHr@ZIuH8$U&Bb47_Bv|L9buW)13-Rph#;edQx7A z&CUCi_iZ@-eIcjo&;}kmIu0JB#lbQr8@BZo!i-sckXZ8zh-U{+`>X*w zU2otMzmLA06hxF@3S)oc8~5$qxu`i}1f8y=U|y3KaQVE!f8iQ1Z1?1afgc2sMcd)j z(^X(=Z4aH*MzB8fBXU>kp~}ulV>e?zJP=rg>x&{8zj7VqGZ05L&MiQKF1OH}?mei% z?FN-mVT5JUQ}F4_FYqqKbtJ?ulenD6WPSWwl4rrk+6VFRYA-(4spUI)n>9x0FfrC? zz8u?qL5qFkWyFrFn6e@^9xVIAn*HwELawAwV>#|cXz4Ye<%2ZnMPcUj;{7W0XN^+m z|F8~XW>^wm>$jxD@f=ydhb6)H%ZZ2YGLq8AW0z0=WcK@DWD>&c>0m{#=C&t=~h!29NU+VYiX)lgEe$RYttp8i?*3 zLXK8`AT2{8Eb~m5l~fdG=k1%p3fgP4_xu*HPnu0xYZGU-y>>U-BeQ_j>P#Zy*90I` zK%V~B>_~4FSV<3C&!J~-WMIuCMw^zalfuX*vgyiGV%SncCfw7=@m^oDr-vegyM#$# z#BogcqLKgcSon=cV79mjUDzy5w+YOko1&WFw&M&a-*Fs!1!obp_6+j8bqQHe`vG4! z@<;lD`p}WT9cJh;KyB&)eU~1%?fem*8ui06strCZZUpZKCn1(m1=ZaONM`OshVw}T z`~Nb-!GSWU$6_&DTOA9sa;L$of%jeVkHf&LSSZhl0uenoNPlq*p0zsxb#X7cWhRQw z{u99=%?;S{l0KC+;~tuQP8PIQDZ!*jZ~2 zvZty}uqRcPv+1=1#O0Y5XMgBF_~FE%m25WAFTdN;f=?cSujdvBu_$QNa7!gC1+S6= zTdxzeu$shvk0aYQMG>u*-9(6pk)PVGNdH7U3@sXh5IV^j!Tj7;nEvV_{ z!bZvwcDNgXpFlG@lRN`CY}<*J?d+uFq}L$x>3^t}r`w1vh=y;=&%%<5R`9#^1O}Qg ze5}idBAuF$m zoCSiQ*6N8oG-Pm@t~rs;tRQyZ9}(xvUrBPyKl0g$k6lqK!^XC1u(b`^?9L7)_Nj*i zt1Y0*{yDdvb(`MH-jwlUe=T!jJw3JAx7(6P&0-_CeMXkH`)EO@znw$xIWAB4UvGhn z&(^}9h5_{KNg?N+r60c3rbE`&Wf1rD0@AxTlemVjBPV_+q31XQCYnEjPM0`6Yp(#k z;MORpWL<-R7p|aW(T>y?ovg$dG*Df7qx0 zDb8)Yj8zBi@%dZ(nZq)YOs(QCcpn}6#zm+1hauC|rl?~mmn(7)<8OTrvGc)fT(dGC?;8J%OC}`?2NGG4_d`J}cma*z)qN?2V(r?Cj0^S<~eKtl3jLcKVYf+j@0B z*^cXUYi3WMU$bj@uwczdmPh4@wnYr}n0j2Pop$@G0 zOohE~K%cZ!z(~>^#3s|B=2;;`Uo8Y`;52-H9|m#4K~M@QknJA>%May%SKLXMzkeCL zK4T8SHHxrqzBahl*uk#zs?ac^1W*2(0rSkRqOHFKkzJxRcg?H4+{CUnChplGeC5#~ zu0EnkBpxm&b<-z^@uGCz`Ei=O@L-Ahqfrt^E3rD##_Yl4)-3Dh#`@9QSkqZM*^9ax z*^u2Fwxv*#HAp>1bZpb9Vf*cHX`&K%S0J7rXc#O;C299N%CxePBpq_T33lIb02_We zPV9vSLMj}^BB+h$A?#*vPP*d@Rd?yNd zOzAurH#r6i`fXsRpBZGk7(&F%*C_h_98}j5z=#!X#Y;^a@QySdd$z-v*zmMn-x3j` zmpg$i{?_BHg!TB&&qa*KXf1kOYRY@Q{V-sj4|cCBpd#}+oFBXcvOYY{xLPhaAIpKi zbSf-YkAeEBt>C;70M9W1LqAdQ{P!H$rN2bsYc`OC8^6gyeFZi#PLF*RL9_Z-99g5CJJ|U+ zl8uqv&aRVK%=WI6VJBZdCzBc_Bq%Zo&v0A}+A3$EbnrPiivETT3Bt5~sUUsh5FcG$ z{|ThdvT%jx-+xrqjktRsQvaD8w3wy!oapJ0#qvZLZ*%}q|KLrMKvSn?NlX_UT%iYjl5>W z=^A`%$5s41xCbvDQ6-;lX%Vj;DWV$k4oAFEX13m{K(}qj(Z*ywn5#p>E3qW#ddr27 zv@0HxYg<^KpQb_JP%(5buYt><=V9b#J{UX3!Iy=;;GSs%-`;D% z?c;yYaQ0oa&L9Nk4|i~jzGUMSb|Y9fN1V9O{N!M?G_mbad!^W8Kjc_un4cBBUP{iSp2imr zMxvA{U2r&-462W6K+ohJnA!Hjr?=mrH9&yY8TkZ7PkC$lSvwqARshpRE)Wu{4#xlK z!jzB}SYES6OGDS-Q=BGz`dAx&|8*`_u)oHL2pZx~Z?*C9XO{T7ry%pb`51a((ZOTa z^1&=iZRo2s0gV$Huw&f>x~?JsnXk2A`#M#qjJ$>>UUgFkqB^MK&2H%Dwpeu8%?FM1 z{h%`Z#;F6{3TQqhiWHtEp}I1DSgdXc_TJXOx6cYgZ)<9!*Bxo09!;JVi z(1>3FCb@IraSVcqxjwM6YZJI9tHAO*6-cs56HQ{5#^WB3nfUuLSe;jE)oI%i@rVSX z)?7o5dGwNH-Jg@SiNml-vHailo&WgA_ zB0p-x$SS?nh|Cd&AxwjM@gA5LSP1#Uz3^;_5dH3fIBhjwgx<02AFTZI4YvJ$1%nr^ zz~8n4aB3|F&bLD7uy6wB20LUJIG@QF*xlGxDaSO&PcV;%{=*px6gi$WkBHoOfla+M z@yWn9%;zJqSZ%%tugA*TZI)nT+J{~fw-_ZE52T!%umTbT5-CD>~o!QP$(rw53T zp43%DU^`5$LVOQLmer*-BA}v~VC=G#i?EYgSHb5GDg(LErcbP>UafhY|vG zT$UIOxgzw3ux}t?b`x?Mis8l5GcdOCEL5O$(6pmLdVVTu)_0_A_TQ%V1ua3sOI)ZY zkKOQC%^+S+sgR;JX`&a_k9*W#;JBMY#N?A8dA{ZmeydlAbz)txz>g2in;vl{>z*bW z-gX_Wy)l9=4GO@w-Df-{SlD`8AA(JhHIhib}lo zBLs~1UV43lQ=n>5YsS0@^jG${;|3nk6$RmpA3F6)}|d)d9NEnpB&J% z;1T2^z+<@w&jy=-*>EL69YXRn;MuI%u$kvVv{}6sRw-M9`44eW{rDaISD*zJuMzNq zz~NiWFH|d8g18rNpw2=G(2kY?(WVb5wD<-(YMp^r^8yIV_{))yNDgY+w;TnxDWSM@ zL-caZ47Ai#8I}AsN1wLNM^Tv;=&%`$+^6@U3x?4sZaYHp3s<8R29fB_ze03Tt`@Cd zo`{aDT!~`A0a>n_kN(_MK;A2rkn+o6N~-<>^)V}kQa87x=0EhLG=gVQHtWhb|0$JH z-&>2R&X_G$LqZi?!4C=Cr&8Wl>Vp~F$0cJ-Sms>JYU|?Vy^6U0>QWqVvJ@YA-o~5V z=)~iGPw;;W`mpzmFIeQU40$*_lRVegB4@wIkf-4?k8zYLXIwXRGW_|v z_=f&6+|G5y$0uoQ)1ZgjT2%167DIe{jwKFLorh%>nc`{}9b7j3kNL0YI};7^_`@ax zJei@1k9^X?4z9DYYON;L-ZLNHaCE@*rQNtNk>?@b7l|W_4&%|4vG|c_G4|4_#nMzE z-k@;`JJ`hG2l`pe=!l)%J|^@a!c?PJ;1LFH}bqB4p@Ig1#e1kV?=jm zGf9Jm%;8sVOi$3YM$g9LL(M(GC_~O2-Mi<69`<;lSBs<2%pFN6@wWgtd zwL+BrAP@a%JAvY|!_m&`(J0X86e@4eLl=kRkx_gg^5FMCIuW+$Z=W$LJ*kPFs%jwJ zHDW0LTL)#GmP+-nc*D7P-H5YCbCFfZv;gPT9x3Xs&Uem5FHK&)P9Kj;x{~8{e=ViD zayvD7$d2MF%%s+?RijAIGOE*l0Wb4nnlnSR(TZMop1UyS5BGqO8*|>?gSpud#M}+# zGF_)WF?WpR@#@FgSWI0J*L>2)yVp~AQL`hyqP-d~52EnVnx!~Rbu~WSxe8ZSufsi? zHsEcsZun-t2OfR93M<4d!@HJqu*oJP+!kzz`Bv%Uiw|{iOMoa=DC=M>j0y8jqMV5> zKE_0wYBBdOjWt?^oon>YP>PfwP{a16&HS=s`xxg&9E4yu<8WWxOSXct=ma`>Ag+qc|E00 zy0=lBS}vv5P(sZP+(JD7Q);;^KNT{QaMZq5bNY|Da-6=uvDzQXV>%0@SdCGcjS+5A z+>KUWxm|;nOp}v4Q+?BuX}sso?B5g0REfAUqq>GnYlt2rcZuODxIgFadpw7!uxa69 zIYnlMEr*%?%7dBlFpbfUE@CW;x)`Cq@0hW(!;ICM_l%9lYv$bjapu;xDQ0P`AQrnJ zivOj_V2gHD?0Y~Oy9utaYs!B3R6SdrVUtJny zR-SISw$qAJKd+eM+@wUMsyS0jziy(=p2(m+c3q%$ZfT)h7eAsNsf|!;Hc24MPwHr~ z(;T!pR0o}WCV`}^2C24LSE;{tQPk^hMJoN?I!;xlB{$Dgn0Yp4#+c0A!fePo$yjvO zFsBv!m^}glSni}8b_i6!76Fp@inkEn&^pcBljgm*8@-In*;d9)DT^7DjAlCb`ZI00 z>zK%Q2Fyh0Wp2&tb==fXn>m7(l2rEwC+cs^2`YS347EyUJvDSdmg;+Xg>$gywbkgK zx*IcNlejk4&$$CSQp}|iL&hZ6m^mIuGkQuZna(Zym|BBEX8Lv>b4oRa`6KGUc-@-h z>TS5d4Lq=jYwyW#mAd&NhrVP&eW>S9XAVSA3m@iCjnl={2g`cO>DeR7^Iku-By^Or z`NWSbFY_VwyF--4f_iF3)Cp>rwFAXH{+IJUB7-w%_Q$HmWT^44=?bobHjhdFB#3KD zZQ@pEGu+kT54gdBx?D4Zh1~7Byqv84CD*dHe6iATUCep(^$h2Evkn#ep9s}+Q-YF~ zHlQ~0{-tz3b;|ePENXKlq850oQ|kv2HOjT2LT>9*aeu|B(rbq}k3?IREb!UR&EK8E zB_Yk+@c&d9Dn*I$8Z&3Myja3`*t;xse4LTJm&o(81~b2HT^YXO zRZMz-DKnzl$L(ua$u;r!RCnb*(^!$a_6Xqj&K$=9p!`-igQd{wWwd>4>{p5$>}jSqPl!GQ9G_|rT)I4 zC{=z@>hmRj>Q}oXbw+qIW!^79StO`XG0uFPeA9NTj0rx@pR&%z1xoRp&)N4I)t=1d zJUS)cIB@GfZphdr?!x7M-0_vMTzZccW0N4lfy&+7VY-|vcQcvev4x-6osq|NO&`Be z!`IBc*KwCqa=w&9d+um_dVd|~qCRhL47<(wZjY_>EvzWbvw~D!-)YVZCuARl_hf? z9JOGc9qr;?X{l{2`l!!1i(laO%on28$w+ZZR$Z{Fn!{njswJ6L4JE22SDK2aqt5HokUEK3Y>p1<1-Bu+ov#E$QJL( zdZWC}`bKBklXn)(VX_`ZF~^b!cf2%}GiLmbdyPYL78E_=YTbHdwZ6}s%CyPmRDH_l zZlDAx&(V_2DT=#@C>B}Qmj;^KhLzAh0-}g}1?f_@N_&#;)aIw`3<*deW za}R3vriYwWL79w@GsXE3;Z6C^8t1(KBy1IxwQ`C0KUYdix|#Y}Z;IZ02c*6?8Ex4R zhqxSTboEyUk`t9hr#!^S?odIJCI6Qit&T#j4rlSE+4b1b>o;}8;0pzMuNYS^Rcu~S z!sKzgs2xcGlpQq($Gp?UX4g|0yLTf@UaK;m?VHFgQL180i)P}NXL^{`>*rF+->RvV z&6}87S96>@dX!O(yG@mC{Y||p#f)gq1Lj`rFN)60qvoC8#Sz7b(IlRf(bGYyqrie% zGOET{E6k^=WF*j|sI5%PM=8#U7sgcY8AXZ&9%RyU+nGh&a5Uf{gfteM#@|Y>G5_MD z(C+;gZ>(tw!tSFK_flCBRdH(@*GShEubsIDW6Q<(NF|L(Z3DHZzW|%34d9MJ4Rp)o zGSa(pi|KA%O0rCgsHc%@VW2b?cWocTC)`7k9#zDvWqvWMIw*WhqYp)cBD$@$AG>(n zrIZt-pfLL_$Hny=)4>0N>v*jSeT=$>o_>qM<;5b{X>bLq>%D}!y~}Y|cP37{zXtsX z`NZ>VKg0GLDsfl9L-f8<5~XbF!?y(xZusku79{SYRGQPVzs>=ynxlv$eb-axE#q+V zH%%;^){VBlXlDlKJNSr)7%G@qfPO!Hv!v>L1-{}qz*+X<659Jm5ADs&Wt64TnV>OW zq;&9Pdw}WqC=#B$0ydV2fv*KWG3VuO z*>w4$s7?wr3Zj@L$?n*`Zx|bI7Kax;*2p?Sfib+!OSEd+h6kPMQLKb0M9-f^HqxQY zOQ#Adx?lozochGoU+zI>Hk?I)=9;kBpI0L%Cy+gX_ONkI7}EKnM+R9J{GNBa+PwcY zzWwt7)^bio)8F}FjK2?m8hD0Zxi%sT-cVCPbp~crgiuPIFz#Pliob*{Kce_XzIEEi^?R{qTdnz z_*kt1>B-`7(QZCi8Y&I810JOQh#wK{tb_c*NmT#7fN-=8$#J>@@dZSET>=r7%Yw~zWssxqNZ!cDlT*lsDsnG`smsM2qnnPo0 zM=|1F`V&9BDgbeFO?WfK)wtvNRqi6Qa!$VSRqp-%cC@6+8aw1VkawS?(F$Kj_!%Ki z_USCgk(PUq`LfIC;H~5MfYdBfRVIyahB0t0zHt`t=3;(47lgl|ClHfTN``fEu*8!w zsFqE{(oxnVb6*g0w0=g-G}B@z4}#CEj)07U@5o-^0;m165D{jpLBewu?2r6F5+iC* zC3iM-H5H-1*HXxFg&rJ!zy-GJEJhs?6{PT&C%L{S2XY)7VXyy2e8TAhF?tooxY~b1 zr0@;))T%^l%q4j3kjn`1yAe0rV|bUX0vTJ71okC?AXS=A@|T-a33KI0g2G-f&)0B zTVMsc@g{?O&N~6mPyE9rX?JkBv<%v)bPHbnK264iy2z6Sm2m9W3cw={kQ67vUWi-8 ztsq$t8JvVCHMQ{4i4lD9o*Xef)(IB`^vJoPcoIOku(Vx*Se7Uo;SrQwQjJ-i2G zyOM~6Q7zH))S{-g{sRl4KiJ5so={8;lHZa53q#Xz$S<7vQ3NJ^IH*2zKMon?gA7LzQn*DHpRVaedG~Aq z@^%ur&J*~E!Dcw9VvOn+$B<3o6?pV(DSWWJhfx-ov) znv***Q@#k}?>S8Mp*}q1X~@hm{ttQU%>`Sv6k_y48t5?{ywjlsy{8VM{igg7A@4`L z4t&O0yt!k4yZz+xgEhn?VYQWIayT?asbRj=3_f=?7Cl)JLXLEqKy$zg>^ael5}AXb z*r$b`CZv(v{b$MfH=a=L{Si)-@ROYqXUSB`ALi13kF31+?dI+4JWXk*8}JR46B0F! z+w0?yK(a30D}4c?MAyO^7co}XGZ3!|Ek>b#c)cJk1IDE_f}}tEhHQqbQwRx*X`~?+`~rHWo|*PY?{RB+K;i)jYw|%O??Om$N}oqJA7;L4H7rdf)Z~n zW`gG%f@!4}zJAI8FX+&N{0nvDTvjODE_cOw!5^`xP!jxeH$qmIP4K`PZ=$Jl$|{On zr|hl8;fwTo)Vt>xIU=+j6qVG-ZX0jpu`Un2k_sfZeomq6?@5&OoCfC2kS^obp9B|n zE+)HYW|ACNeRy5ogf#0au~zUk^vt>hsU1|{&6<|uZ8i_lF8-ycG4dSh``FD$biBc5 zbmzgAdjcf<<0aHQ`5TSyT8u^?XyDq$kEFqD0`bqb0B8PQ2=G(Jg4+iPd%%>OJ-!ev z4m%Eg(iX6=s}4QMl_w78HjsNtA92{B4Cu_-%Ilx4Csn_zQ1H^%s7JdVk&$V9_Szf# zUCo#9_ichDZOY(%Kn4sh6_8qgDeT^R8Lm8VCt797AhO+>+|O>MB-EnN&+bPky3!E5 zzck|Rm^?JcCy_9Phe+3Y2hdsE3wPJ2Q(LEQk=(Q|ILe@bvnp@~NX(AM4Mi?^_RaOL8^64jaWE29A+2NE_e7@2DiAtXxMu?D&OrkNsgz zaTb%G%M;+i+#bsB_7L?^D3{!+SB95ffiQ6@mW=Fc#1;}c5N*|uQ+YmK)Zq@T;xEV# zuUSwnoWTSO_o1yN54hFF*(f(x44-f;$9tZIA9bFI7!Lqakm2q+e+hmTNBB~ zO;OApZVzXkuNzdoPo-jgg3(Fd{;BZFgz#5>U?Ob8Vdea2+`Q^JH~g(L$u2L!vp(E} zmitynBsB)Nc*c@y-9cvEj1wTEScuI3Ucn1x(vj+-m85-Gj*QJS;66X@f<1gkA$MpP z?Rrs6Cd3bsx-+kE{(N!pY0`s9kt#^3UWFS^JCciw!pO(qAE@!L6s&HHWxz%c?d}&t zqoFM*!y=XlZI;6A+atkz<~nTXy^{!R%RwAP2`cEBCag5>Kw-;0iD1FbpisX@xBZFAtgA~NP`^FSEFGIn9Gw_={NwB>;kGgTC0Y^9e z;{;L5NqLM4T-{cPGItr0vaEP!B%X$zie31|yW?c1T{0uPp$h6Z-{bJF$s>bmos{OH zRy16>hN|oH1YvlOkM-UCA4g{%j@9?Iaixrfijc@WQ;Om_dmR~yW)w-K0jV@-qCv@+ zN~jDW5+zCV#B=uAjVh!fN&}73M5VscAn*CTfBB2+@?7URYwvsA_vfY|0gFi2{6+MO z(+r}Rna2GKT29jU^}&U1J8)#vBDkm!OJ<9?z~J7`^ovX|%&nXWh8p@9`M?ST3`M`N zeJA<#^ba}nUK^5pe+ws|h&mYzm1yc*CDd~>rbKKc=eG2Rj2uQUda7WRl{~DLT?eP` z843L)r|?GPFS>QlHezek}`$uUVZ4n)h0r_ zK^mvO@`j-Q+a01qZScXGOSJ4#z2NE)3Ngk-Bx7JR_30Bt*9MQlSw?ZNzfFTgFO3u4 zm|oI_!x4=6NPbJu?a;?w&xgxVA&vmU-6*Mo=9{$Kmj_tCpVS!gj$ z4h|&yOY`W)+h2rdJC(`Dj3@NI=&_i6e&LYi8aV)cwkcyrxOqGTuw{)tz} z%FG3L0K-^mF$ zTyh={FSQ}MT3aEuP8}|N@uJK%MKDfopndm@A^Rrq^kUH>@SgRWnAdMbUmq>3F&lut zH;n>(tO@&%l?o5;zNKDQHBfi8x^UuzCtZJO6lmYtLu~sjq6R1BQ7bi!2%Rk?=*ex- zGgC+MYwU2@>v+lK!|61cwo}pk3G?cdNl{Ax8Mr@DGSK<}&3^w_xRBIW2)^$}vpkgO z_Ukd+Nt1!_$fZe;$h;FKON`KDfIe=W>j<4q`?!;4m&u)(nPl~eVc2Rdi$7x0$@M<_ z=!AweNIdh8#Hr@eUhlnF@lI1nU1kDmau$>^p;LCk*BUzg;IL>E|=Oq6DQn{ zBbFjNE^uI(@IGz;>JGLffgg;>2+zK7(?pB*`8yE5nxzt#7zs|hV*;IWJIKF7-o!UQ z6t&%l)9;(LU}WGvp=-%4k=xTl{8}|h@}JqLYDO@1%Mzh$`(BWk-xelpctchU`$=zH zjl`-;&$!27Kcq_LDo}7dn2TxEgrON7)UW=%;3Yn%2@y&-QRO)K`_>7R`ZjYD2E~yp zJ+^b-Saah}_Xs64?D)a-u^rE=Couq=8zk$?M=Zkg{5 zjpNga@8IX$>Px{m_53fodd6qE;Zhn|^B@_bJ)6jn?mlGMN=Dao43Icp8jVW-Z56Oj z88_`e4T!vBOL4J+bg+R3x6ZUtvX%_Pm{K=9+jD*?5g4M*oPVw>^Fks(T+U>P~KJrwAAqIKe9k(YHZyHmn>*0EG40ECs;Lh-Z+TKP&9w}(t2*T%VW zqf^?+uQkEcqtJtd8TTQoAasRVM^n9qPOM^DfJ1bzc*ylleTem_uoB|MBfOARv$&UGZ%y?@xH#~ zkT%vG)x{^GX~bYan8f*}3k|wmKvcJ`gs@@0TzBhf`uOZ_bX~OrBj%)$Rjz&Ev}7Xa zJA}cvyb1JVt{WE1I%4q(bNuF=BwcQP4t@m0K*6YmL`Sg0Ez*S;WHb=>?@u6iB63Bx z>0OfT9SJk+#^JiIarkonPns1`%suRvP9nC-z=TDQNrsIFb$=Hn$%?C|bN=|??eDLs zrS&7?aCADkJvb6}mle|H<&%h&-dlRToS<7(so*?Ig}lr02GTKyJo6e(dXji5_sB!A zic~-i@=Q3Qu%CSJP=a07?j+Gb8LPYxQNz}B+WAQI(m3S{?^528K^6PSY0F+B|D#%H z-*bwdz(~gzxhkRK1mOj zzrMu%5zXIE7Aa$)`4jqL%P@iI*+Z)4VDQ)0Ak#C`ske?Lj&Tvae%JPjvonpR_uEE1 z915Z5sT{eku}sKv_(F}N-RPp30$t+wMR3jiE1Xpw2)5?20Qo5-@S_Yhvb%=pls*^qrKf03 z!(`-_CK7k)VLHV5urOoJ6x!RbiZmZ_l^$KThjjSemE6Bl%@vKEiiW4lsr4N*VlFF{ z#2YF?`5OaxCsdLJLwOuk`kGGpvrHNlU_;%<-=LcBBe{Ticgex_G}61EfUI9~nO-cp zNL>=F@uX!e=_)=ia;r_@a14R+5@%t`st~$)N-I_QmP{uMe<}TM&H%`-Sp`D}?jY)K zehPi1N9dkI8)@&UVwxqlg+Ary3a*C&i1KQHr!x|WzdlE2$v9)xHe*s>V}>W9j?;k- zPVkS7ha{gaLFVlNZsUWY*jaaq4h>jHTBD80JJ(2}q|`*8J>EqQ+h5^EEXkzYl%2xv zhL6%fWm)LldVu8qcZWXHETJ8h&!t+93dBv!xd*Tgl7n(IW4;w?Obo;g2Q@H6T?2k; z%mB3|I;7U-4$WP@lhabr!kMS6=+wnqi23}v#LngzS!pnV$oyA8XWj(jd8vb&8tO{a zqIzkJ*?bzF)hy0jAnDEL$>TEvVE9W>N9xR^p$6LY=YJxz!^BXynlYK|J620}$+nZ; z&uUz1NH}%zEphU)&Z3)a&eF;gO4$>d@UFlj$GxhdV#_Fk!T*?v?kYBzAqC1z7 zj$gVss$T`&ImD8LXh+e_uKUOEKS#?tp=Z_}Ic-n8uX6XARE9s1AD zlhkcr0&#S+P*^-2H!7&&!l3a~{+1%VlX<{BOxr+;y{zcow%fFDN=tR32+%wVhy>5O6O-xn6Ri#ld!s|42WUV2V<#u8v z$#weg_aE-U$XuGT>=f6QV*v^uUvqzNm2r1|`U}R+%Bc25g}#h3NMB@s4$@gz^ zaR2EM65rS=q+HU(qZ_AEpL9cdYmGadRh>xQ?|({G{*a~D-@Fn|?s-DC=c*BnoKfT2 zYj@L@F(Gt8)^~2sx*kEcCxr8vH-l_;wiCAgZlSfZeX&30a}`Q@(0k7Vo*pY8*}Xm zZv#gOh`zy1qMp>JD4YJs&7)Sv`^e8>|3qKf9LYh8LfX0|od%vuq3P8}sc=vmKE5s? zcJY4%m!cOmNN+g)zLrIz@~4pLBSvsz4;>Q@j!zdd&wb}6k$l2EdBiPQz|*DL^CUyP z?IhYWZb^4)3=`IVwjiy~rV9a^9BF1mi{!-W+uYDi`P^;(Ffr3?B`4%k>7{X&IOno5 zjuPjl+D=7M_^CfIk+Jsqu@QMP`X~4IhColv9*Ot-WYM}NMerMD0{NRtNa0?6I1w?8 zTl?iC&H4G1CeUYe+Uhb+KO#&tCH)j@CKaLa(moP6S)IoBwWNY6Ty8Wfa2gidMZdmT zLkAnoAjekjB&H!tNI{Dic~{w&YQ}a8>85H}*3&=>S9x)VRFg@KUMANNXioI?Dumt< zXQ{*Xht!z7r27&oNnT(r(Vc#c)7iA2eu*u2S{qs*cnrBM^>@EWmW(+oB7|ht_z`SZK-U{SLvGt$4S}5 zedO}W5oDaHAnksTN5?(SrqilV2(SOv2$8YAWSD{t$#=UcJpQtgXtmxYQ2`BH>V{vm z{;@2*pim%XX+z1#meC~fk`BrBy-O+-`;f#!Mw>Yx)@i40S%1T)JWUa7g z<~7QS5B;cw2BOJ}JD8eo1u}zo1`JkJ6j1lei(3 z4~W0^I}+Ld3b~cqk4$R*O*{9F#O)-7hTZ9sbPjkx7U&!%eZFeJ6{i#u)}APo8yuy7 zBV|zdbBA7cILdiMnZxp$$*}&c9N2z3#N9iZPcwH9N88G)bX$g|5K?fHJX`4tKJ+8; zKiHo(1Z<|IbCRi?qbbcB6ig%AbGfZ64sz68tc!}BZ&#r`_X3_71|GX%tJcpaILVjAdxtX97_s6gwQo6Wpv-8Y6_1U zsQm62n$_h(3(9{9iI<1d4`07IQSTj>F#Qm1wMnL*ESFNdvu0Aa=($480&&j2%^}(D zN#y$08tGiyW?{%YC&B-~6z;~!7i9620r1zAh-vCAPA4EyQcz(*jH9cG z&esvJuWTuVcg=+CVUNi<`2%FS+F4?;qKxd6o+CHH`+)rDeYy;X!*k$cREn4rONC`_2f-||RP^m$5Hn{bFtqPM zD7Oj)w^UVdsr^P$d-jlZ|HY8c$Bz*A&=!)uq>}7B8bH|i7U9M47J74{B32v9VeNZ6 z^t$MP#<%<6h5n!DDz~B7b=nEdx9-63)5kD6_ALI_T8sy4val>J8)w?*p~1YvNc){b z|E}jawzLm(Y3|0D+}C)|ryhfnO7ON-9L7ythkrG8W13M0Ejj=W{}OjQcc6n?7uwA1%j{3e zv#7HJ*vY0otTLesMFtdhj%&op`4rde&&I(!!|>;%vAEB_m)bkL5L#D$;#5D+A_0Z6 zpnhr%9Q=C(mQA?>W%vTL^xi_F#S2)vtOF{2Wcc0@^8C!6etg~9etgmPKK$3>4(MI< z1h%mA;4R64_G?M7VgDK^Yqo^-AO{YAZ;^{voCqm;A#8p)jh5Sl(}BJRXw>T!)GxhN zNFAt7cU#Y-4#9EsUEN0N=GiE`B^nh&TeQic)wyKc(MmG6=_VN;R6=HNo=;vq^W{9> z#S7QH8-!i*77nT4_*bP@+EP}}$)^PpCHRAoWmQ##5C&XS2phIt8q1WV|(z=>jsuBB|eo>Ui zxeZ$Q!=;y&inDoFWdz;5x(^-p?6c_C8^i50Y~-R9R}j?B5p#BzNMhD066Rh^mV50Y zBhI>!y*B5hdta@k!9QE*kQg^qF-*cex3jTC_6(j1sm6Y)?U?4L#A4POFh^xuR?k_n z^rHrBRihSr*fWsD{?~&CM}NbG!YkC!y^8ks`|;4Lnb`gCD*dwW7N_y^Cz&@l0D?Yc zz`TA}U};P&*Do^Nsn9dRlyao)SMNsSh7l{26wR zu7@SP=i!OV9ys!F5nQ;W3r%hfWb+?0qBpNy*d!ZH*S2L)zxT(fQ(-qXpQnW0mP$A~ zT^$RqX<>i8NA$nf+v%9XYC$3X4;M6b6RFNVOe~`+$S2);Lc~rU&E{?*%vOZTMGr_w zUJ@BO_Xu}>YO(OAH$Pi*p(eVCw7H=-W>ok3?wGokxqw9+wF)-Z2}L zPv3+q_ufOJ$egY_GJwC+tjYUn8S&Bp3;w8r3GWkcz;ANa<;%9J^OFXt@OC==`J0U` z@c#2@aN~EvO1 zQ%TE`JWfH)n(AzNOzr25#(pbe@Q>wD>>GRoliz*9XikxR`Z*|H{6L-t^>HcMSGkQo&H!a?^M(dGRKRK2neiLWB!=&M3s=Xzo^Y%%E8oPoRf zPr!6fC+vuqxH3|3EAbFX^f`#01dTm%goGp5+6`l^nh~*l1IaUV~p6lQt zIRos!^%EWNWhXUj)TCZdH&k4E?m|}d789+J&17cMP&n5#4u0ud!LC*<&=#3ro#+3O zm0R-3jQViSufRiOYka1GuYB;TT{;#WKaVTMH{oO2gC049*=Wv$9ed`$rik3Rw5kcL zNk_u`Q%ACKTTK{UuFbC0D6*cI4%8NzE4RIqaf7cpet)-%-uIkIVpiM1;fPeIe^&)E zyT8NfV0pfL+)#e<2t!`)KO5d?{1`sLeJsDi$AJ$jwB#=g9>J%ntMe;|^yl^aw}WiL z9k>&F5OzFWBK92(hvr}94;yXnl^ePTA`HWMn1H zE0iPbvXL$Ot*yr<$Eh)v(vLmMeT(niFJh`m6n;tWhrK6u3%}_t^6}j|sBe-&MF01I zy|TPwrz$_eONX~pHRYw*HvG>%j=Wm;IKFBBNZ#^{m}|bM!;eLI-m9qtN)&1!@#SH7 zCtVGHD5+)1E)+&~!f zx|ICV&F3D>UO>$^_tHDNgD_-$5hm}c$I0h=@oB?gcJqQh`)O+@{{Jp)#sM!jM{YU` z&T?jt%^cYWKMU6Ka1iVJsUI7v`VMn%9Y;1e6gO|}qDkW#rL}Q?h-OJVus00!$uH2j zp~7pZYV&X9OnG(5C_c_%44?PNfxnYCmQUyz#rH&+^5_2y<5#ID^Ch!7U{J&@pfWj- zdUHA)&>RFYsV7Ob%Pr2tcmy3E$msP^^0@JcJ^C7WV@Kc|d^X%42la7Bw-#fpOYehA ze~KB0@(+T_FJH;NYZheftO|0bS`*-oJn5x^!-mc7(qOA~`ZCA&@3H7IL&K6C7`0CwuYPS3s!KkQnN#9mnl*xO_cKiI ztHSq}AI4uBZNdk**zvD6Iq-`T$MTKA65es|IR1UDEngRDz@HBo$aii04yozYprm>T z=7@c73EiXM$c?w;%m4|Q3&#Z2cX?E2k`m@y+v43hQ!sk-Yz&F;!NHTowbpBG40-yQ z&X>ueu8;2tvooW)NxO_lbk8*sZaWw}ZC&7icm{UNj0D^H@z7xz0~;HHz&(^e-*5lO z*T*vnH(g1{*%wb=b*tbvrTI8mzZj>EdxWb`{>HZO!OZEI5wqFmz&hkSnMKwt<{gDNJn?WT@w!bv06Q>w^zA8o~jmZex48H4A#hv5BHzl8C-PZ5w=05#)Ii<-qd z=(SPdJ3kKRGb?QP@A^)>oQ)IjQ8bo6m+8nWpRwbQ-?rvMCK&U3_0@S|(F3>O33M(l zgS(j7cufPfZ%)&XbAKNsbaX;$ruj@mnTBAN*w4fj|3Z8 z02lkGWcN}H5|`*i8}=xpGFgZ^sp)9*O^VO--(#GAf2M1!!NR-D*|23C6UbyXy!$p7 z#&$#CP)&Z_eoMaG(~i&CXV0H@;dtNQcKof$qxiDRR($X%L%wv6Ha{&y?A3VR1+P0F zK+&3fcyQ7a%FL7?A00`rzYOim{OCZFYML*n^*?4PRvfa%um`TV-q9V4pPAr_e)PacN!Of+s(xg&muu%Y$Po14S_YOD_|Px_m}~8oxTdAAfvJ2V`xk z0;yLn$S3-O_3D4*?g|&OWnsQx_d0{_uzWym)qc`Vee|*Wf-ctAsAG`5DF%Mh#Ezve zXsx%n+mdyr=7K(FerOE&F4sVgO*R6x4Lq#)84PLj*1@LZ%VDN%7+8A;iTgPojDDGc zXVVvQ_J;@gr5q_ZJ66+}S2no5GY$)#N>OQ4J^t+diBEp3usLDctkm9|IeUy{r`(;{ z6saeZ6PXukA>)~H?oD-{L0sK35nL^EsPymKpiG@(Q_*Yppp70RKH`2ol-4)muZXYgH>I^_FX)G}sZ`p(NjT}%Ecy2-nnYi2Cmw?}!S%2!Eba_|fLk-cCSWFv9_R_3jYd#= zTNbWetsnvIKRJ``$HFF=3v`d|2<*nyXybVhZ9XH)JGNkv$f=5btjx5FhO_QUV`lTm zmi^r#VTXT>Wg`RanBh=UHsGNud+*qVt$Xid0OX?9^%6rLc7C5t!|o1joKjgtMLf;PA%?QXTYOkn72#?Ol(kXMlL-ZIwr5a|OI2uY$^h zzS4}UOLXRg68g~8othNN(>$jOLYhMc_e=DAEVnBq7w2}9e%`w9MAHyT9gLvrlL-X( z^o3WU_sK?=G(t~FBt@Jy9cnA3i?fEI-T;3b8oV8Cbq?a&W{OLuHem6SFKDeH%iP5~ z^a@U$z4p^*TSx1&-NSU*4ZWf4WrrMlyZs|Z{Hw(V)r0t4)T91MEU@aqWm+rA76wH5 zaZ5B>iB}JRA0Gh|X$ib{s{!8R6Xcop;m>^@z|R?}#J@~e;g^Z*+Mk9pyh_7gSUTw) ztj}+NxAZQ!CRe}}qr<>?ro+$P2xwU`8Y0K_5@-8u#QN(P&S3jD;YEiJEgP|xW-Le( zb;v*}`K?bs%xIIE{STzyUmTa#%$UL5h%+RM(&mwwqAui_d7jj^y&$?r ztI6c%yQJIuJRx_qiStE0$*8B}sd{WJO|ekNuiGc0jK>B%k&ue|vPW=lzjACTt3#7n zpK$E-UNlQmWacx(&*y+Pb9t}H_DmbX{1TPeaf_cg>f1BS*?JydXJ?`{E=NUqD|Bpm zMeQmzsQHQ@u5fe(x#VmBwszrAM{^+4;wo?hUI8iYf|eis_~&Eg_+9Vi`EAbqd5cDo zg>bqPh{&934R3*g*7sn?z^jnteG0~efD~9el&Z{1)3(Fwf}XG$4!;NxIh|<>0di&bF%vj`qISAtT;E9k8I3bG2_ zFwwRfnyfy-**|YVU+*ylt-KAx9IwC$<%{s2*njElTmU-ddmv9_R>&qyfqv6eAYxG! zX>xETUo8(;SeP^jZ|ilax!G`P-hVh9bM}KU#wS|{Un`N;RT((>cP-%-tSaTUZN1FZ zoRpAThv$*^2UZgW%l#z#OF3zpokQ+q9Uun`LkX%Gku6mZq`%iMr4!aXrSZ)Mn19I& z6{6$CGtNGYS#t#EeLs&@Ikz!<>SF}MPxzn9SA29-hNletCT*>M$R1Y{ICpykZ2wUJvv&v(H>m}h z*8KpjaXs+#ejmQRz85sie!z9NS8#R3eaNX2d)~rNL&&=VxD%fW8Ns{2zj877v`Rov zT@yl`%gGy?b!1>F$K87TM7WzgowofBr)d|$sHgfkdP{0X=a-)n9(a!8MvblK%KkWz zS#8V7eV=6FcrTIApQ)sGdp6mfT1c`d9VefX&XQMG_mi|HCsJ}dj+=9$U6^i?L`_c0 zq4OGNjMQ3(H#9Txq04Dp(_DcqQI%M&`UKB#?{MJNZrohbmz9iAU>RkK%zuU=)5(-& zGnRbB8NX^Vu;3U#9M`i4qoxY8d~ z;n)Mv7CYG2&i)R%d=K;+^cQknKEVN<7qH*;K5STpu;=e-So*OLHgxO*$%ZZ9*0C1a zzDwZ5uA#8wMJtK0oKNOQ$dgIVEt2TJRl>r<$`rm2p;v7B(o4B3gtgLVPHbrcCljqt zlu8bh&Q-CbY+NegS6n17*B&M>_uM9>BOj83SFVv!fpz5E)N=Cg_Il!b?;7W$^PiA? zJ&Tt3D5LW^PduHy0WCl5!|<;q_(}Y1%m*~!?GtbCY(pm+$jCD>&%yrss529HZC2ej zm|byHW@>)DxHIG_o?Tyod#sXii_dHf6z^vNCw9H-pLBlgL!wT3C%H-PNR z0$7r96>eL+ggtM&K(LYF>(0sZl0ORkz+hSa&uJO{UFdtb7x4_}0g>Nla}hpYFN9|2 z6qxV16&_Z*16{5IF8ZHH^3pjZ#k7kX>-A82Ie9Jpn(Rjv`|qNTYI|wHx7oD!wHA$4 z-YzU&@J}+hMU{lNs*sVZ(#TEyLt^LpUb1azIXUg|gs9ftA}gcX$lj+_U zGLW_i9n(^1LWIa%t@OjE{yXtQq&TadUc>%h8gNP2C-f=#hu@5qSjvW>Ojp$OvV-;6 zGaWtF)-{ZkO;Kgh?%nwOMIEYcEW*>5m*I$M{c+)rOgiU_vzR%{Bx(~B;IqUFWV3d_ zZp~77pIQs2*#ebTVOXWFA!r zZ=n&!BXDxcT!hW>_`a0L9XvOs z!S;w^nAma(UQK1NS>(WezjzAVlS;v#Betr zxOlMO3)u?d)242k(8Sm$%IC|9) zY&esPo9j~0KYKe?sx851?k?yNYK#Xqyr;d^#WWx|n!fI;kq)RgB$w*Xkj?}JXmE6Z z5gCgi%R3G%^moCeLun9XwHGFw&JeZO90-+WK|}vMSniPl!o74T9-R)xUlKrmdo%>E zUk-^$?y%GlASlNiw#v)HO_hJdV{{EkE}=wcN-;5ckVG!mC6ltYedLnZlcG5A2$`@v zjU>t>5)b87B)WVGd3cH=W^sSH3*JAtjV_^F(9Nrohu2f36ORp{O(V8ZK|&P3mc6l^ZqgwfW^(XYxL4d*MOXGJkRskc}vr#GA=uzTd)DQ%FR z^|%# zpN31xyhj=2#^EGVt)5I82gDQeVe3e6K_tYj2um3<6V-)5saLE~H7PW|7y*axiyg7-ZZO^B?an!3wkc z5MLnf;p7^iuQ-D&CBI;cpDZ7=roX5L$@7-Yefi55Iv}#T5uW;$`5*nriUmR2+#7Y6427M<=@2--Qo~uZO_X_DH^@}uhf-^ei ztwEGV;-g2oIJi$a{!M?5g`NFa*ee}&zFxv6{`O*x!=|wZUqmf9%#HPmodUnYN3a>M z1~U>U%a->x<9wxaxN^%rOz3dLH+4i#QF zr_TSYHRP{6v*Z7rcjU*E*z>a%8uCxo2lDOvIzXMT1?@#8@MCN`cqFX{`%Rwk(#Q~u zoy$ngqD{iMeK~ZojU2)hIn>sb#r3;CQ)aP~>QhHL&>~RiA2XDw+&#r%poDZpza~5< zGQI1TLb7o@Jk{6-Ue-CV(kmV=#4Ll5^8pY$eK5q0en1@PaAF{vLd(}#;1k&(Ou!t} zG-*KdM=GqO+l(c3IJ3AdL2O^YD0Y7E2Ij1?p4lX>V_}|wtg3S|I$9;_e7&C$pLB%d7t~JWb>#f{;;MOktYZ+r zYS}!#F>XBnr^=LHo;{Ga8TApe>Tko=;$rx=dpl%lek56vQPRf;=TOD_DtP*a4{nZF zihu8{$9*{~aePiV9=8n?b5fqDs^)>wGoI7@7muamuDOy8&)<-b1ry-Vup}t>mI>`c z3gKA(WpLahg{a*Kd%q#H;~7}px)=7VaxliJj2upt(3OEMnAo}r>uj?yDE%(VTpq~! zEEvnqYtCdXAGWYreyPl9buwG9Jdxd^G0e+)C5v>P%~V%TWb;!T*wj2N=6kvpmHh%R z;gW@TmKqD~pH748m}gK>smfniZOMxkOWwrGmp3S0!negl@DjU?{66a-KEODDf3UgqkkCus$5B08_H>nstuy@7(6K-jMKzCh{K(O=QGX~lC!kck5x(C#0)MYxf-l2sp~dPQ zEdSjI{F6#pJy8JH?nCf!vB>2vXQZFS&hi1j|IoIi6?kTEB7Tdmz!irEvTJwjS<{7S zOn<;~me{z1O?;Qca#OakL3hQTqM!(-*)yMY{qkb%>zx@nHIzMESc&1%Rp?)Lf&MD| zj~uIthXGY5VDfHJ0fZND%+yD*4<_Q#)}(mb1=lQ)gG?`y{& zGcn*_6%6F#4DP`jCgww=9#A!^jFkERC-hWaq)XcW($6QoaB6o39xcts>4yt2abg}0 zGRwqc=9_U#ohL>cXrX$15WO{f47uH>h~zgJ!twTSdSxmhz@-_29G*kN z^E!}Ex(8P6S74ct2{)U3VT_o==0guq4d;pYHri9X{*d)cV-m3A-9#;YcFHZL*}vTq26r!Nn5sGyf50eox){5-0;mJIeJOVJ=8vP zgxYuKL@v4h>M+;yK~nlj}%b<#G#U-h}ze4rbT+L*JqO%vE_%XzG!Bbaex z0-4Y6<*fM9R`%%6Dz<*~B4%JUM|{UPu~;Qlmi+b&j$tL3chpYQLd|IC{kf#*wHN&S za1T^{l=;@-!}(+3mi&5Eo{#OC!fV8P@x29pymIV3KI`{Xen_$-KcU2e??Y7hvA4G017PIw5&@ksP=oy`YjYAH> z@y3ntZj3dk8Eqjec5bKZ2Rx?Dou6p$AwLwFYH{Kfb>=?CnjQZ!ft_1Cg{4Hhu;m$E zOzZbjcCTt7)2Q=f>n}`VSAxX7TZ95Lo70S1>!cWaAsV;by-u@>4sty=%pqo4DX=BK zK~`3Q?`Tuu>+~)8kOj_se2*tzo*uy0>(Aqhrn>T%OKtd$PGkPuJZ&BV`tub`)ad43 zfR5_9P-)G`RN2v_G_$56K_P`kN{8T2jVbuNeIpt#+lx{m0V~TFV@-V!x|xo}H+}xm zU5`5H)y_0JF+NiwlPe|lEhC^nDgm557j~?h26b1x}SNl)R-MzUyPjV-I}yZz|gR`J$^#7;b?e{3~mZ5lOmeI9v&@ISJG$ zs#CCQHzS6Bs>sbsS=j%*A1pp%2+zjPhH#awu<~~#RC>(?87&Kux%-^V%dX(uK2N6q z1c&5o>?Pb}V z+~4T4@FT9BeGu0!tD+&>tjK0RIf#i{3iIa{fra7?Fy7Mx?f)6@Eoa8?YL@nV+t+ct zg%$9_a2&rT){b`_JC65Bw&fc$H25chzoFEt5hT(xkg#$;j7-`L?X3=wlN?DB_kR== zzU-n*<_JAlBBi5ppVPu2y0~DT2X30`i`zxdj`ZU*n!h%T>OPF5JEv`+Ta`HaH_6KB zy8l6v=&k^xEfk=7N)6d@x`G_pPf1pR*!AgklumVa4e&-=vL z^YwX-{EDj%{77$O-c-~ILOs93)RqUZPF;Y6(gMi490Y|UKNIlPA|~#8g{VS%I=LW$ z3MbpB$u3iLI1HGzW-MO2sx98r2cwejKs*tApI$neM2U?e%{A8-rY(5JDJ1SCeNQ!$ z_f9`ab{`q=FnvOD`aUBY6`DxHwKaqfSwxKoD5AHOHnz16L#wqRxTF=aJYSwEdYZE5 z;ybl&hbB9eHiT^wdkZ5Qrm(8asm%YjBNLs9>}zf(4k`G7#!i1QT=gNYS6+j=HD}QG z!DopM4unoOH`t$-4l{}#LH;8p{^}JIUbV}PA1LmgkI6Xlht}|X@cgftRSK4H;w#W$& z1g}QjM^+EN$ujymQYxL{A7+SWzpVNZf9Jw|~WEnNdLu;Nkl4rB>uKH`w3yqS}TCzKh@Z~SV)iC1PL3RdP0LEN5>$mo5#xLvN|~#nt-i_`TX5=h@A|^H(OK zY>xx}EFO->)hVTx@${i$I^8qtrcn1smuQ|4h@80`w2W4VgjoY%Mwba#C^*ADwb3xH z?ho;}w~SP4Ind)#4K(m)9c{m*hI6gbP;J_KbXu*>F4kJGy@CxZe>I#fI%34ew@+o~ zivyUF*)*nLWzUYh&|tRlec8D6Js9`y3&soAuvNzv^_eku7?`)W-4Onw|MK84})MhZBGO1;<;2@;o^?p3lB+&qvSKX^gMkj%njR)jy&L-nD z66ks3H&odvlCJ)Bhi-N|fNIYD*%=2b=JHpgrfzF?oN49)1fqP#UgZK8Gus~#h9NwzTZ#q7j z-yt`Vzh63mkJNVNcQuXY7sPw;3$!NkoBI%cO7dGNI1lcL_qvb~ zIxsoWjTo;nq6e~jX=I5rmR3y0(zHeRJ%1f4{z^cjvN&Ajuo50FQ>Enqt>ve1z{{Sz?&TucgmI} zT5RWs{wy|0mYoti@J_O5yc^LZL~*}Ko}$0lW1Is)zwUzU-hO=008_qRGM>NQXBs~{ zz=!uUoyt%AIEAnLIf;MrQ^G$pu;nw?8}cf%Wcj@>Z@?XyU2yHD8&u5~|CW*$i9T#c zm%UO(%jIj)ir|`U!|`I12wq(Rn}g^!;(XUD``&tF%;_)cc-uE*UK< zvPDQjM#&zZXlSCMLZXxukz~~SjEh8eRCZ~gY=uz7_x=3?`k`C*oO@p9`FuPqWRIX3 zez{1;ZUz$DRDu=_DJJ}9$x>o%n3iEC`|rzNrd{YNxaH3f=Cv#mHec}*9;!|f4zdU# zBypSYRe7~w926*QaJLt3jFvck^}e&S(T|whxs$9M{GyxRJcP+}!_iIi0#vK;7&R-Y z@Fz}=;4^(he7fE={-xRiesWd_zwp^y-eg!1|8O_pjU?ZuPYp)!#}DiALVbs19<&vy z^%x@mvlrp!i>jbBNsT_z?4uc6JiGttGy}`dGmFJJEZ9rJspoT;?VTKU#3+hQ)--0} z2M*DPHBoq^`Y{-GTOKv)jX@syYmjzb4*GKNEV^5G2ifK}A`SOT=v$+NnctOzbl0p# zWuJ_Ya7Z48?3Hw{KsfXLl*BftUu7%RHHAhUPB`^|{cI~j7n07Q{0adL4gHAbod1WumiM4%y-(4R6V<3vX*ZfUHVCCw z%b^KR5J)w)WBbFhS^kHx+!9>_^J$pQDx`!+1M=$j^@U;-h+l z_=tBA{Iw_Rc>8D3{EYq(zDx4Ia(0RjFa5xtPdKTx!`gkam~eLidwW)sRkHeP~{h|l6)uEzCAO%0^3kOWSi9$%~=?ZMX%8US5Dk{kV*-*UR!{$;0_WT~qmeIFesJ zY$^XXI)dMn9m2bgp2im+n#LO>A^xA_9T}(e7hOy&LS??u)(tB^hWo+1K4}P82uQv6jcWA zK|8)&LIKl1qAOULm#fs~+r16>wn$BWbMPQipDW8ZPW_8kFTagGH5@`lelw8X*jzZU zypWC)*|TXliK)DL$-;Y8gfwe?ApkfD@9)nR`o8THu4<+W%Uv=AN3{&WuOL>q|8$;E z@g+zoUpG;Bcg{i})@`h5)(Y0!U`g_J1)%oCQuL|43FRv(@vdS!eni7${_2Hrepkgx zzUcL0{vYt;-P>IFjS|1~;QL|x>HGai<}pE0A#2c&mo9KxNH5Lr9nBuA&1PNwd)fAx zjOpsWV$!aXd+2}d?1NPuyX~CI2Cb*D)rYiM&e>Xef9fLc$7KVQcP$ag`iRl||6U=x zGvASJgaY3;QIrp8uBm4|3)R=O(=719g6EXf#z^?(3mOzpm*y4P}%>F zUMQH)B=bNfp80}Bb!rQmsun`cLknTnQg@;JN{ApxZ4q4alLS3}j{ukM5~fU>CCH7C z_-IuO1=kzHgq6Lo*tOoB>`J#bT_Zmk`BYy+#s3YWQE{rgU*~Y%Ig8`{GkthN%NhLA z6|?zaeN%XiZSMS$$x3`eX%o89ejYuljz?oM9FS{}E7VW#p>G@4vna(fR@HHl&A)e% zjk_l>`4!ign#5y2uC|)_Rwc7FU<8}~7E!JDYH&-}J?MHO2o);lqpW9jh(7p^e3Z5L zfhYrhw~7vbx<#G8C|T1VyUFwOO8XJ}`xK4VFGBp&NyxJ9989T>1EbH)rBhW}=-i!S z*#4e_Y$&_QUXB02+@lNxq0dQ(JT^kuc-u@c>;Xc6?_vR2tP`4hwh8GOn*~$Jad619 ze%9#toNZRS%B;CV?A*Nx%->ovFizW!G?#Xx&5COL7*jPq?3q5lp~sX@wzKDrQ#|=+ zRkr-Cd^3Kijs`ymT}K&KyO3Ar2z1K~!xPsgL&u*6bl&kVblHd~Rup=M-TUthOW9M* z%pEcqI=z$S4cow0T!t(e=(D*Ac~qg}Fq}7a2C{gbin!}p=;BNAA5Z*_I!x zSjOZ+_E|>EIt-t%x8szA@XFzW;VnbKEk|8AmTNA|aP<=GFV7Wp&a4q0=B*GW>p2PU zU^Ba|TFz2zN}0}sjV%7R23s$;mvb-*Lm_g{(KZbQo}|n3OSKjGwKbZ2=kuZb^E>+d zza8p);7~>WisLVIyP+I4L~;^`L_MrHUB}%taHm#r8ua{^-8AY8$6QWjGwb`sEPDMx zHiX~7PQJ5ZM+09_4Xs)la$SS|P_Tq8ab0krb1e#ba~6HPcLUXLe1d`xeM4j0<@qcX zDSmbFd-VHHC-U}dLYwasR4!ADt}jYN!>ooQ>(C~Ewz$xP)8nae6QNJs<(bY@H@0^7 z5>_+g02BAtFerPQeGcknTjwhYnT^uI_6jNCxRI`4QST<$jh`+Yzp+#ZADA!L7h4PS z*excTm&t6GZ)6u{gt6rN6Paae3}-Vt4b1>g(8dpcP*#LGFLoWu?+zcr_e9C^?{$ar z*inmD-SGiE-gqC4Uv&ok%3p}|WfNd$?RhE+mSWQGlJdDEQD=5bOHTqog4}FZ5=QT~#_?cEp ze1QK;R41H9@BDI*uVDi6E}V@r!dy_Z#Fc$|fhQf`Aj^jCH)OF#b=dV^CTzXF7n`0R z%KX?)X1P3@>jq9C@GTxa{;x)Nc>F+k{S3x9zA;g6@<)^W+p?Hu)vAQOkd(FJ{s)DBqTxBz9^O@WUOaz zp1ZMt@-|8qT_-dD-hw63o@ng0c(iI6MLE6i(E7i>(EI40Xp)*VpO>w`KjanoSSL9? z!>SwA$(%(qC7Hl0#v{-~%TF+2-yY~R;(+Hgw2QWROEJI4BUwzyWHx%v0ycbnF!MK( z@be}_vxLB8HbL!_gq7LKI`CKap`wTF86xpONwT15#R#FTc%tC6CsY{GJynov(i3iP zzsioTU(GfiQ)WT(KWM_Iv)J2@IZW>LcJ{8;i|M`_#d<=u zSp22abeyIvy__)*THet{`}a*pZ0qI!9+X~N}^Y{M^}#W?!20bvsR{5XKU zlI;5tVSCx__G4^#=w;TvzL`CaXkwA)I+=60qHsZS)|I*DB3w-L6J9z^6RsR}7orX* z2%fezOeN2oE%MKzPyLO_sI`mWiwj0*RCy+v^QH++T`$AeZ_?t^5)FBuw?@4Ca}{3h z&oeYNArEzCPC|=EbioXe4sRC>0`I@IIP+jMT@Yx>I*&xNhxga9{_QhZ(Sy6E8{X(fej8fQ!c9#`>d95) zSzd&mgzrJNYO7Jbx5NR*zk|UFc`&%b4oE-)bVAWvYEZAlHl=8?XG@jXxFiksve=%z zEc0f;k~`h`U8QVfNdsGB*vgK#ce8|4X<_~~O<`7xg>ZYgL}On%OOUn;7Az(Ao5KQn zne*~umagH>w#p#dyKy$$Ejt7aIr1M$`9;vqo2^K_?>lOVRpRwe4dt)B*XLzD6!@rd zcaesq2k>meAK1E4viJSiOtoVvm3zVHmf`>CENN%K!7vW0B^w{{fBN1QD6gws_aje z9@C!4v3&Ccb~oW7+pw*XX@oVg-jp`B^Q??uf5b@0Ip8Y1QuG%<-CUuxN^&P*K1^_x zc!nny6*7@{1XDVB37>xS0agwMqI>^#qru-2UZ}4ixtDH65lublYl0Ggd80c2)K{7} zKiG&|_vEAYgfZx&%^X-8V@x&TAJg4Lm%%V2wjfNFmELTojTH?vC-^bVj(JM)p=$ca zCy;LF3g)0`IsE-=401Y=Ch;DfLwbSNQJ44@n$~s&O)|NJQhhI=*6ruf>6RKqIt7%t z?L1n0^B_9#BLa2!8zakY=V5zO5_si1jDGk#o$47I(#&xu$*?1ebnWIfbmG&KRBMwK zYcyHLo`vSKA$0<)EooxDot@0Bxu1EyQWoqb`Kpm;MheneUV`Y_6ag4|2~Hk%f}Oj% zFhjS2Sw+lehb;mr6IH@}^MlZ)QG3wAkw?+itU`&ar4Y?DDo0B*C`ww_j23+9LMF9e zP{EP6h?itHXJ)6NZ+|?IWo`jXHc2PHEOO}WtyT2L$uep+kV8-8`qEd10tqHdh==7B zf^VzPkF`h1jajR~Pwg#GVa*@7)?qR-s82_NP6<*osX{G-=TR^@iO8SBXm8wJwCqDN zs`1%{^1Nb@^uakOKYuLpS)+-DDoHYE8)rhB=cjL91cp$Wb#k$!$GO6KB`(vV%~LO?odU66}L1|35ur=CPX zA?4^=!BHf)BOUpy-GaX61)+E#nQt~%z{^<<@VZ+D4jN-c;Zz^mBr}}$SJn}|i!MaT zWi*Ix41gB=1!y_y6Li&5M&Zf&s6}T4x~K1iGMsqSIAuC&zY~rQYp+4uUrHEVyTVaY zMQrW?x}SO7D`3+^r&-fdG5aaWKWvbky?p*& zWP`VlGPlw3tle@NlhGQ^67P4=#ak2T8vANe_Pv|STK*CURYTyl<8pArEmb(=i7}iK z>IIX{x5DGwvY}v70=Z{3@TP>nVlMLtMmW8M2M&IM?|1b;`__+e+M4fBYNiyLw^bfB zD5;{!^%|1rse@h>njp1z)~F-Y9yxj2qm$kiD91nzO?&+s<}SVr<*ydPg^AnYWxW8n zzsejM`dkISzZ-(OG+)u1pNFwjPX&HbrYzR+<^a=w3kKS3VA{waSmLr0&N#3Y7K2n+ zFX6SW8I}eQXr#e457)vriNmS?z)0At-4?)3GFJv7+hJgsE+ z=!d;sR4Y!JC0tc!LC5r1Y?&e3v(=QHwlZfcD^1wC;fAc`yJQ+)Z_F0>7%`7W!z%{rjj_xsRI zn!$=~Vz}aQ6}%{MTv~muhOOBYo;i61+FrU0Bd=eU@FMHs*zb4XtVIvt+4dJOOn46i zF84zVEQL0A{egQPeSu*=p1_#})o?wR1&!`Zfzc8UQoe&4$gp)IEAtq!mvo-TnS|1q z1Mzgx(Jb1pagru@3RL&lJ-YH#J574kN44Kbu~ls{tXx}$6)l!x>&4P++ieMNM8BVM z~4%7pv>?1Az5DR9oZG-zj$ z0Z0E!hsMWKVC%{ZxS2ly=l#ut(&1&$--^JqeYJ4mrdzNgtPvK>cnYf?cR-5?Z(xk1 z$9=W!3G|uv7#0NGg%)ql!!`MmpG}B@FPn^@oBk=#Q-6zFy1fI}S8pT}B+B1+_Wh)H zlo~Z}SEYIFiu7iJCSCkdnLc>ePj2S_CfduslK#|ALMJ~U&%AGwNkdym>_8vc?Vv}W z@XmB!{#Y7d6hbY{qv_4*o9M3bJ87BjE^4|ek!t_mL?i!;qz2LR>B`DL`YBxEtWtER z=Ne3?^)3nXXR#7R<0b1%$|174DqV-6d>yF!%{e$cx=1bRrG z_pFX3@btWJ=wBZKEB*w)AKG5<3U3Raxv9bVmVMyw@N3|>O(y874g+Jh37S)o%*>}n2-#5sT z{3~RF>SeMl?lQSQv62i-J4RL)=9Aa^Gs#kkyXxp0XR>f*8~%Irp?LM8ZjtrNHQcTn z7deGJPr2$dMnLwsA2?^W2)t2C1>YwXfrCA#z_a%iAWgakeDbXV&BKm>_mV{K(#7^* zoBjb#ZhJwEPSIi<)|!C_pC82Ucjw@gff0D-I3SW+Ih#{K*__Uy5^iyM0vDqDS2TQ` zI@kWshHDr(j5}SZ$>D7&HCny#cwKfA4t)6&Z}@3Nio`s5IAsEni;!fP!{?F@iDQUn zf-|v>vm-6bl?Z9Sif?>L$3=;X_|oE9k1yx-M3E(SW6mBwDmJbO!=WQCW4|~#^7^?m zN!&e|_^1P7w9biat{+1_PZ>d`o>3(ioMgxb^)I;P+Ywwm=eu}FshNkv^NS+x{y5IG zD3kLN3b@u~SGb02av)6I6yzKp4fZVLfk?^=lo?I~_1C9^5jNw&en%dNr;5O7GfN;N zafm#6YXP46xq~aEB9Oe_4@Al@0O3=&1Ab2u=y;g|?yO7$X)hAMAN}oMqUS=e>6FBJ zvTqc4u(qGuzWM@3hK}Xd2dInZb+5!n_uR)IRGW;MJ({?N1Q5M#!DOA!H1g=!JaQ>} z23dD8kc2-0WS6HYi9Dr8#;^T@s|GLOP<{_?kspI&j~0m8>?fXa8S$cKr({v`<3!Og zn}ecd)0c?WEh!Um_KG6wZwqUtPP<(L?;jC+JZ~0TcUA{2(Uzch&>MX1Uk0L=?*vzqGr+u_T(Ea>K5&aJ0LOjvL1*&; za4anyZ1P$Kx`&Jd#?KAGxM`2M@;kFQ!#P`OnwUOTGb+Ml(ID>IWJqR*ipbx!K4hL> zFgg7#l#Ga<*??GKse%QCEhLw#4grS*`_E(J1gdl4QY!Th(yE23_2jL#p8E7-t|` zjWw4$d3oxQrZb*Jv!-wdk05{G1K=za5QO zb*DD@nFz=s-^Jv_ga3%i@eK0e^8vC$qmVqEaDtc)FC!aD3dvx89vM8kk1XFFPY%q8 zAT_bxPdcU5&KS2%gS=w`4D_Ss#Db=US{ z+OI?YDH)PVG@JxZG9z04W@KZ54#|=HJ#8=70@QyFs zf;a~_KL{7 zm9B)nHX(aD)QM*NPb}SAj_o{od@TD)&B35{kx-t;HOT+uv_{wh@7ps$?cA;42ucT$ zNm)R+oDIefI|#(z_k)dLsX*({I&eSM9~@b22YyJ)04`JFG1>Z9RN^d+``_hY^yMY? z+^Ip59+?m}W)$%mHJZ$i97EQ1xRAr6>`C}2T{880KVI?R0cO`r@Rovc*!oYQm^fan zk!i6J#rZdh`jUe=t-b`V_e(r?x-6T!xg?hxoPUHnlUT;hepSV#+ZA)3n{qf~i-p{| z06VTEN|!rpeqMB9M2M&|6M3F!uJWuE+{DBGT@sfK)xa&*B0N>%={m0!k3;-o@a4*F z_{`_!xX^hXzL#i#7Y_U<=6@S{Zi=lF&A2m>YkqQyyVTOlC70@e=!j9^H9rAd+dK;x z$t?%B64!&Y=W9XhjTJ!b5e&F`Z}8IA9wdxV1Z5g8xo6}6w?E2`JN2<~%*zH>?7eOu zKDz5ZZVB(h$}!61)k{6{wqqD+Z!jcrE*eBtL78ZTf5!5+Uf`+8XEEQ9jT`o_$G2PD z@Qa)-@&3-;;&Www;u-laHL7YiYcBjb>uFX#%JXY+Vs*XJUC*m4M4t5tvNZ*A?KLWj zziWi^O5z}eS>g=M67iRzuHw1f3F7+;--%BKoE9%bGPv}pC+?4Q!j5Vau=sa4K568O z%U1d07b;_MVw5dTJZppJp?_i-vt04im21T>iUrScpWlhzYmDJuojA;es@&pcbUfyA z?+kF-cI}E(Ba|BTb96(fw9hh;*5ok2n0*%%BVD+jYp!v&N?)k+!Zm8CAE@@vF z*EwCEGqP6Vwk|&;%6_rJGonu2bDhxHk=wJIqJJ@sqT2HpMP-xaMBDUDMKO_;HNfbU_|we?;{N%L_?JQq<|k%j z+VA5#J~kEFm#=N4|qU_E!=x}0-&jpf8K8l3a2r=l2hQaz|Gh{0nu9B3GY z4=L`%@M;NO*L5Esk9dfGUwx0K%Vr6~^*4?wS0>B+l!&=!ANKkq zOOEW3BZ7<^2|n9{?d~d)4xt^d>3EGjWxB9U%uQTz{1SHOvvB?8J=jEX7B=nsBZk}B z#Gj9*iicnLQPc9nRn$FXp-6MZev#I5Wv;o=oXh+@k{hWS&265!k{enc&6!#RaZ`^i z=l1VUZq*IKAh2+zDyMh0l4&X`K1M*-WkHeiTcCn5JJ`=-6Iv zVAEG_3VX<*?Zv zyRXGN>lE=`XLB5G;f3>60j^!P0N;6#j4xkL!DgZ~>@hPJe^4vJImvl=zCk%&WP1uX z1zp8nacA-C*O%~Ma0M;})!6Iw8JscgBucuspUW(&)4w1oAU+gFKwN1elSOOD~g zt1Iwr#WUDJvPPauJcUn{CS%1*nYb=VG&slM++>|&2u^uvL z-^VR(+{ulyKgiW;=5YZRv$?uIC%C4V0ZXcX9H{uO0;%3Sx(bdXMFgwu&!=n~5ju z?H7k!+anGi^H7Y9K8qhUT&ekKBQ3tFF-&X-Ld6wMLE_=T5#r%*s>S=HoW;NU?}>x- zti=0OhKT&Vv&4T+e-k@28HwkAwZMNa&c=tjzl$f?>f%A|Z{m9Rsv7LPEIydG9J`)a zRx?uVgg7HIOMK;yI`(zv@UCypIJR>$ZeHbqm(Dl9<4eu)$j?)7s?%n?izVVAZ=~^h zmyAnKPmIUY6rNy%wSJgiBu$1^uEwcLw&MGl`?0*zG4Up+rPx{#;<0vlxasIg@z=gP z;?n#otiC=5Kl8bdqtHLMfA<=^2I@CerSE2tUea7?67 z8!Zy5e~8NF-4|bs+b23Pa}<8V8{w&^{)rAfI3xZeKSzAqti9%<;f4N%JHsHEV_t>(Vqf5< zgX#FdyIB0mHy>|Vb_7a=!ITkpGAIM~j z%!?jjw}pSOrbK*;7Q7s+ zYi#Bgc_W!4lEI?V4UXyM;Q(PHCZFE z^WFhm_=P8HUipy&i4Az+@R6iqojp;`ZWm2eQzlix31ro&ED}l|lS=lAw2UqxS(>kj z&W0gWWYI^WmaHVvTr~;ynoZ8Np21rWjv?D@(y@EgG|ud=Ja+jYaSOZIkmk@#!Z!C| zr%BS}rELMRxMV^8SsD|&OWC9_^ajy9xrlfiMRWn!32T0KLYc50@H)^BUe{a-?*2K1 zQUeWAw5XM9*gPGaXkEj(mRt}As1<^FRy(-}%atVO7a@M*uak-L@nrWpS8~SV30`-} zi?G~i;?^1m(zjgz(i^vcJ|lOqy*!EB6*J(y8ET`cwRC*G(d;v6{S()#K_rQpq;Ak7RnkDV3JDr?Yw)xmwZ=3|&;gP*bc-8`~meG<;~T@7S1da&Pw4cxuywP4KbLSS^Q6f`ZV1dofx z0j{HkvmA)T56gSVxTk%@=IKz-pA`hpzu5;Lul9oB{sgDok)wfooUyfqC0we@GzFhKRs3t7=un*Qm1VY>1VQ|ioKG6CxiJSMNn5-F)qqB|nk{dI2VaFGx_|phy zIN2i$PBf5UQKE+sZ-)m&w?e{_eJWwhs@HKcS1n*G8wEddabP>SQ6iD42RhZ#X4Tc526F)mQ1i1cmAu)O3@y#xL7&UrGP~{a0@1HBu+mkP@9lN zq*EslKDi2E#fg3p>uC*?Y@g$@ml$+k_>ZJjn$R0t2g$<@8&V=)2C)5C(ZYo?Bq!t? zIk4v_nPX&)w>aj29}b4Fec~V(R8R-<58vRSdh>{S(=f8tt$>uO)RG0?!$5!Ja;P_Z zI~*8T4xfzRNNv-6%71)Ga$VnxmUt-;uZCA-pERis*pdU*02P>Xw--bhs}VDa;~-$k zK1y2DXyMe4q8;&x+%mUTOy?aG-6)R}KPq}nUK~C_dYaynn^(4zaa&`#KP}y0S^fj~ z^V2O@o%WWD@?-Rx=mK>L>mq^ancQX*EjTy)0zB><4=0#9!OF83{Q0LrbAIii*JZ2e zO=nB`^wC#*;*L9Pb@>7ovcr)Ew?$CBfc5n4GilmAVLMUSY7BoEu7IjG%7`NSA*K@DOc; zd2YGzTJ>%);QEy`zptVj*VWP;E@pK99CN&+a~ka10bs^WJGk7=1)gm|rZ7d`Stgm@$#truvoa z(l|^<<6>Q zUIfR?2-tA)Fxg_j)6|`Z=~*s;&iU?3%MVFzP3su2w3j%)9cDtQz#KSfv@LvKn}T;N zjH2+{WomBvfNCC3rzu~@z@VsR_+GysMvUo)Q%)p8+4fnaI{q}x`5_}UxNY9lK}A=5&QS%bAJK;KL#M!fat&bP zf<{p8;}7Y#kuY(*H*DUsA6z}m(^K2VQ+c)dMD3#+`1n#A{CX`*r2h!*775; z?tVNpI@(QIs1}{8K8Yw_TwEZV0_H4j#M5il!Kztl zz*zSzr#mT>d>OKm#vV);mx>$~P!JSMM}HYX8w=El)|OtN z;1dU1OA6uh)deu#su9M%Yl3~Q@$ksI0`TwtD(X7>5DmMLL=}zf{HT5;rHgAG0Dl1Vp=y-d5cd}!AU z4(vAA2h+}G!y$)7@T9yC{353U&Hj3l!RO2AxQ&v|y@bJ~e)$rm=W|Gq|I~WT3lK#45;(02@y^~a!SffP9(Rz)*%6q!h-iOMuBpoLzW zIQ^URpt9;J*e>G_<2Pd6nm192bBLJ?KZflF2`N8_y1XY1h0fH%UX6}R)1lXl zzJc%2=V8@^ZP2kaAH?KZ(feBny?7^uj(NJ9)af`u2V4%NHBZ5yvl=k+@MfYOe3!VE zc95=5*(B5b04e4@Nnw~Q+-8*lpT7@>89PK^+*fxhpW;A!UU!iBbpe#|Vf4C^jW{~8> zq4aKL5dB;+f=+SNr2m;6AlvS1gITc#@Mqg1*sVSl3aNXb%Fx|VDRw5@HEkD&eDs%e z4UeE7wydF4MT6ce@+Ze+Cy|}=Mq`N+g`7wmPfz-up;rpj*y#&aY|#O0=K6LBOTL&- zWjjOZ&!h-?2WQiTQOoGFm+$brMLWr2=t7OwdeT+cmHKx1(kQno92&V5mQ1?}9h17? z6`LQ>e|9Zgo0UtfmHve*6Z+wn#fRY{iCcWvn*^eQz7XYGI^?x` z95@*@1IGBBhx%#P;p^_Y$WU7$agfr-p zaWU%JP=Sp7YEfj1fTG(@p@Fuus7&`9iXey3uIro8N{8jh^V34Kqh%`Euxu=vvC$Cu zDQO_pSNCB^yexe0{s`P)E)uuLA+YAR0^Rj+6P5E#k@P%1(}-LnwmZUtDXUmBo#75_ z#7uh@G%%VCqRFgKJCqGsy_H36OlKd0(%Gf+dzt%$LgtxU&RTa@u}Nvy*y4r;2_w3J zbyePHiCHZy%Cd_UWxZok^FK4qhIee7f2X9U(!|`xFcx~?DD$XZ%4oV0BMXMn>l<~T z)c!>1eQ^M$75F0i(HqczGY_ETv$g0w?nYa`N%K3hW%<87|IpOse^Ex64Br$i&+mLE z;i)c^<&PcdMNuPaQNxBJ)N|+vYCXRfMJeq-9!Z;!y8LGJ-|}!|YU7G-Whx@Go!?-? z>Mj^J*aG(jw?g|Xrbzvn6M~n2z!e|TCI00FF#5U~jJ}!%{GGFb!MO9_x+J?a_iY1B zwU+SXSGlq^#*(;#@f4Q7Z615_eGcQ}RdFvHG3Sem0Hyy#XHS}UZ5f76=T=JJyak`&f>(Uv8+ z_etD$=i$o)FEmNwi8vv14&AN3jlAlgqXQDpM9oZf{@^qN{#u$o|JYZRAMjG-R|F{V z?V)l!cr3@~ACu-6Nn9m+W?e#^2eXlO@+zcP=7(NOxCYWQ#-nD*?``h<7d|Su3yY># z!?-{SUy1I*;Q@^>=cPP~e<1OnG+H7RD-)!7!5VE0HAgCqD#&G@ti%WZ8y0t$!LX;j z;P{blTvDG&U+NBJ@0l+zJrQTmz&KZFnQA}q$ zqP5xidUG;!`Ux1(=z`kM97G?VK0=O*qKcKA62YdcP@3h_^O|KgWPb)-`jj70bd?=cDW;pU`Q$mv}-oy1vis95V8L%em z1XQlcf^r9n;rzx{c;VYU=pJ_g_S8$EqJJZixBdh)F?AO5m70WX!$%?;cWcBSmGB}P zbW!muO%!`n!sS{Q1n+v@$7`)D>BI4N=uA^*))cpzU1`l?zKTWc!Y+x!ChR6_G3aD{ zMtv;kfvnJMrYd~esw$Xm(h@#hG8MiD+6x+EMZ&KslY~r32=Y$c1mTsVNH{;jN|3El z5I(JLWJT3S*|?>ltoX7#+x6F(Jh0b9uUq#bMf->7=@M!FV7MC3?&|Ub*M{@%%`W`D zKO+8dy(e#9K8nAUJDj($(dM`J{6Wk9pN&2C1aUbv$oW?S`hD9G88<1Q;OOHJFKYuw zZrcOB#XX!heR;z!5n%k3=S+p2+8kGm0EN6iGF`g?|2fVW!D!{9|VoH7l24d)$J%X1rD`5C2-{8w3h-nT}9KP7xY`C1GaUdl!xOOjEtTLjYU zH9`5>=b^0kCD71bLp+?Esdvd%deX;_2Ha4<%L-32gLWZ_$Y zbYDC}F~KtY`o1B&$XJb6Ff`>|{*C6>kA=MLZ4W+D*NGR8GU3a|DDn>C59s{(CX{xF zpe?hHB9qVak#hb33>%Dx3ok7IvozXB>=0S1lh;XxZJJL*;x^MYa~=}QPab&x@}bYr)}B_t8q6_UcDaL1@BYVfyA_1d5{`w( zBn4r}MIGVQ4Qruut%q=HvbV4@Xu1&lGDvuP%vIY$eXqeml3G7M*xR z&cvg2Hx?m}))6Q@wFmY`o`a?J%Ftl1A#GZHi7uWrNUJOXTPd5)B6gRvx{H_Dh+~gg za%c~mBbF7+9fk-3uO{4HU?9jx+6tc6oP^=UqXo5KU!m;63?bUtPiWR~60*aIu^ZpKm*=a$ z03Q5u;4h_E@ZVD{`H`kJ{LCH0`1I}`baUJ_bnVU&BvmvPRcbUq+vN}8x}JJ?Bux)U zZsMp?Kn>l$giy2KG8$juOCOEjL4E`plmFU3;ehvNfz0WLD(T{B5aA26_RE?XI~>OGLy>8p8H|Ejp6L-)T62DfqR1}?cZYh14RY*oZCp|2}suQV5W57-E^kB$`lrr8M^KP`oI19}4QtSA`#`OdKYO}6dOMpkU~ooe5{ zO-*dPsQ*<11pEt;{0{+T&hu!K|J=(Dk7V8unaA;x+vW71s5^Pd$!EJ|+|u?hip<45p%T z3uoj#wgIX(6+n+QC*k!oQ=q)u5V9`j8hspZ!+z;;Z2gmoZ0+S(7L|LN#jzVKEa(Z- z{PmW(xPNBLMDN&{+z%{W=`X7{A0qTeY6)SZOoUbX*23L(2ceZT*FiE?P_$`Ro0 z$pF&*+5pHK|Hdm`XwVZflj*rh=2R*q7gvtT1a{5Wft%h8XnJ!8Z2L7C=KmAmx$KGP z)uwrfy&H!5j`hO=ks`8I`3*1BDIm|#eyHNI1O|J@iGKYZMnkXer}?;^hK5P@wb#qp zXrH4jFYXj;%OH%KbC+!ajqKp!HfHJao{bCn#OzP^vnBTwg}lki!e$p`!OvSyQ0bO% zHo7f^i>GacE5!ovmib|!F zao*=!MoSu`luD&tN(iMN**l?>EfN~`i0^ryQyLPALei85QfY7boxiv)e{i|J=Q;2D z-1q&tGurXLzfUn$a0d^JX+v|RK@>|IMzv@uZX8wRrY+XtL|fH3tz~04Eip|l*=G!A z{QDEymp|w4WNpZdKZm2Y&%)!I9jS+-2J8B21=-!F4ACaXA;-QIcI|luA^AfvXe}a` z^~2cyaKx>#a(`66SixRZ%7 zQ0G1VW66)Mc;eHYNDc;$BSCNfF?AgxB>sXP^X^xYaFN#4%iiV;^^q8+w`MEji^F^` z%H4UWvNZ(jjE`dv&lNboGYez#3lZciu*km(7j|4l`{*tVw7rA<1@#!QvIl1h#5qDm zxm!ylxaMkE?oPxICgeTCe&sK?-K!JNO)SDZ?+gsnbVGyn*J;Ag5!p4@{Rx;0STPfD)(i`I= zY0A4$8uY%0UiUM``-vu4TQDALy=)L39KqnZWj8zFT$R6_i*97A#~TZZFZv^4ZciE9y4(kRYXNjey@Y)RFQCm% zL{RoaQD8jx4}81y8jh?T0IR?Uu(r1bwx43*OzI8z*OUn3A{`)cn*$V!+C#=<0jvm8 z1CtBa$quK(RpQz%k% z-2l4&{#DxJm`8t0dQ*qIi_~ny0UM=P;z+at$~w!SMbudQJ7xi{TY8i%~@U1Fq?Kj3?sxvxL%l zRGe0XHsh19(xDiuFC0U`l`?us!<{bkSwmIXvvkpmO+;*&A%u@C2D!lmSlb;B8OA3- z>17UF-Ps0cBPx(;<%zJfr4-ta-Gcpjsr)X$ z9So8r;O8?{$g$i8+9pxpnQ)#Q?!8Kt`*g_5NNpIWp++`&JQfb8D z*^KR>gXE~9GF|e6qbmJxslOa$160k)#_cz0%YY5~1w5p$m(FKenT_Rx{{W+r@O^CJ#EP)`%&}Im^m64wBr;ckERKE&QZ;fWBxL zN7Q~^U__*5@hoXy>f%*MtBzIEJ!kZY+WQ(dJAVphjh{sG)a|H&M-?^frnJUZ3rn9q zrYQoBZ8;lC_hiq-QDZ|fFUM2@5)FlmY`w!O8gPC3tvUZ%)_D`d&qxcxngEq$$+hHIvSKdY-yyXs|7{we(E+P3m|03e#{)32r`=hbMQ` z$iXssqN_9!J{gXJ#hnYG`hqKz)oDTLpc8z3P)lO9J4vO%TsT+n4DS0);liZxaC@{2 zXo+}Px!H3>HpU&^X9|GH{lT0U&tvb$Pas==7{Zo$q7c>CS$FJ&9F5tmz|6hpNJN$$ zWsJUMS$w#cOY0+o7@Zf^#Le+8$sSZBJ4qJ3DYKuR)Nc|79uWus1O4P@k~@8AJx%x} zLxN~;KSHgqttKr^+OS|RL$lX*S@i|~Vjho~kI_ya$*#GbWLt$HK8RN#;B z@FJZWem+IN9!+6~Q?xMJ>^(cON(BENUV&EcWvINT8xB2k!m=2SzFnq(`zyBKHog;l z{NE<#z2ZEyHD8Z5b0le#!(<$p`-m0sG9gaU`LsFKj%>bJ$*5}1r~6N>q%kL*$R_LA z^s!#8aL6Nq=m-vR**#1je@~yNEe=mMp!Oa#@dBi z`OLe|#mvIMjX>0V;cLlnz8m2NmFL+sCNpzk#;q@8Qi(n3Ji3ac=x0*!IRe%~ZFnZ= zVbYKHGt-|N(Z=vtIGz$h8kc%guVN=cW@uAtZ9$xt&4*u#-x$-`W;pLZ9ZdbvOm_5E zk+b?2==UknWbwYE=-XtBUNc@38|h`#S4tLjM%iJ)#vhjLFSDp+gg6FP$z#UvKK5?G zVoVa5!|%dc$=4uB>b%YlZ}eK=#CQ`L7r~JU3W@B#j2Eg;g3>cKZ6I#5BgL)ysS;z|$*&MI!cTL_dg+m z?<~3ZXCwRc$Rl#Z@~YJ<0!RW37^3ik|{Arinv^QK1Cmo ziaWv+rAO?_o$nDEW5^BD$zUneL$&8J=p}!ID!U~!GwX!>^Ob|DQ5zU#mjWod<%_=U zHCW{>#sqC$4DyamOtyg@jyZ3Ki~Y(-pr#_2{<}vvIo_tP&UBLo_c8QE!VbQdG8x$T z{V>t+6q8}*k6OhwbdJw;(9-#7rRUYmXAKR>Z~tBJqdAt9^*e=)mK&k`-gS89V2;H) z#dyN=B!uZKgjffj#r9|wO*nIptXx$>%4QeRzKlxV^REEk?alCNa0DB99KdjKx7Edj zGqiz;q=xmCBxzuX+J67X^pwcLkEOYEQql#Q)Fw(>3^kyldw@`shto}*%KrW5PCf2i${1N1d-B1=!}VxR0hQt|Tu-RU;K zh7_msS;zUrXksWe2_2@gZt+B?Y%=Vs+r$;Q$=ceNp@H)6~0X;jHnSgB{`P- z^sqwqpels^-9TwZDlskNcSYwZ9&~7B5}yQt_Lh9Qq<$;P3Bthb-z2DajKd^JM=Dc( z3~nWs(%-(}c({B6{EBI1uG~3BIuB1IMK_P5$GriPI%O_gEjPl=w>0qm^R;mI*^RVgUoyxkCBXC2H+bkuJ9=5PLePN` zrp(t1-|&3EW9~{gWoQ=OvztOBlAVaNbvE3elZ(H#!f@(uGm^ZV=Sy#`V3*GMfD41( zTFU8&f$H86h`N4>ert2Y9a58+Bbz4^pZQ+Q3~g_S5ZfVCD~P~~>BjgV>LQH(UI&*> zyWnoAD!lYr84S)=!T38lWL)VQY^<4tXHPDGW4wD`CT<7$a?6 zXFa2ASk4~ZA%J@#?FbF$tWgiYrN%>^_tYEtHp%>d8?uHeAWy)AgZLzn&u zz*d10EV%Rvj%|BO<4xXR!y9#S^5Q#qTd{&lD?La1q6~Pfl|??9S>iE4Dy$1wgc`eo zV4&M(>z!xB%VZM`KKhM16k5_gLmmF_xyD2qm63D(1aHQFpl{1gK%dk( zQrQ}XpPCcN6HPs0(6SOID3_9BaTNBRJB0@3au~#kLkT+-h8J!^j}8f1s3;Dn2jx*S zX99H2k|NtzM$*#vwm9|22dip6SKezqA1qdECC{w?pyS(I+A%ai(0qSBP8+;}e>}&- z-xW?obY2L5mVL@Rv6_Z|CXWz>S3k(MG1=Jh%7h$#zZllENux~WX*{|h0dDH?U4_1B z`1O%LD)xvF&4uEEuJe*O{HqfSp6Qb()sIL(nlJp>g z6VA^%LZ0ovjeD1lMc4PLf@0Aul2LpSPfL2zg}XPwj=c@^$^Itd7gr32unF%?dx8dP zY4G=eg<#d37M^3&ipP#DfHA%fFxBNT(M^oT&PR)dpB0>;sj?dny;p&(onr+$dorBl{zGp6q7qRyRS*Q(Yk2yB_L%8ZpdiB8ITe z5W8#?yr6IC-ZgR5YX1`gj_P2hQ-zslzY&p|a_GOUh@$y!C|{aFzw>OIh4y>F)w>a2 zWz;Zkr+7VYSO927@rUsj%J|-a+cuII6k^1Fib|sc-R2O^BQEAf`(b+2R?xaw1I^MK za3K6T{z^~-iMl?b&on~C)~P7`q{7`^;|s@2E8v0nNgUeeDJ(KChs*z6rN8w@b2p~e zz=v;@Q1Cn&cOEjuhI7-1!;w!UUu3Nn9X7**uAanIi~()Ee>A~V3^STe!ND)CsB&Nv zn%iE5w1sl;%drNxjGjSt-z!3X!$F~U_)PL@vzZa+q1>>?j${tva zmvkd*hg}PasiQtzt~*bEzMPBilNQjok<#!lqm{_MI!PwpIzs)&o09aai_QndYomi4Wsu;AJ-zg8%-a-G`jfbAuz>{YMo3^~e+dealIR6rWd6 z$VRaMeJEeOkLP&UvbJNJn4}v59DULNbkly&jbI6rKWYtK}T+Cae*mN=v* zW0m%QjJU=Fn7O$RYo%*&-5UeJ?$>L{juSqpct8Sk#$_`NY099~HI?dH?&Z1c55Oc+ z7UKm8JmcjMNr^6J<0?fmg&^_DFgU#p5 z*e!hmPwko{h}t|8$J!R7Mp_Bzbu9r!oqPCx_z+zdRRceN9{}7X#GcWaSgYC$vouOz z*T!0OX_$ohYPJxPvIWK^KcQRZQ0kQHMHeNBgI@Ak5;aDX-jUiynZ3<4{_a^QdMATM zxA^X4pEM|bV+^MS`FLW_5-fH91@gvWbl&SyydskgZGT6EF1b4qhewfcy+>rP#waSb zCXL*i{EU5~orSya=faX)MN$%W7M->3vgi1nvQXVx7;Dgq-U<;QvgR*s-d9GxSw5zZ zmjZpX_8!qyp-sSSAN;?>9rL ztSAZW=I5F7SUxydMzT_85v!F-@Q&YA{dZfOn&1BqmOOq)>V9s(t8^Q7{EmcKeMd-9 z`w#NV$QgIvTxj+9wj5(oprCE zBC1&Raz4!{Uk%Kw0eW|^lHZ+7MUOX`c>P)y2^cLaz;kgZX4iv?3#0{I$8OP2Cpu}Z zV*%{m`2-KxYtdixFTosZC6F`VFn=(Ko=;DNhiCMd`TTaQ;kqi0{WnHn|L-R5Rf$Bi zrgErJ7ePC34^sD_kbIUiLA|{ja9j2>*nUh4y;k{RhtEp*ucDi}`rD8p{)+FkzPBzl z-xPe7E<}mH&GcScKE_~D=wI^9jDC@6NEn-1sihnFl$C3y|z>o^c`N2uLlCKa`9^N;^SX( z=;{b_y;%xO<6q;As<))tMiU%!CXtP?dGNdXAzF=FgNc{!!xl@1eyv|jn?(*V$J^V8 zSBMJPVibe*OMIc-L;-KP{AE9z-vZH{h3w`8ajr&kCg`WX1l2YbF1k1XCj703&gkVh z{l#T0)wx2;{hmYX6?HJQs-QQ5Leay?6jyX+f~QYBPyD$C>%uIc?))BH6y8V!OWaX) z#eK+}MX65s08^}Mik}lS@#)v)FtU6y+gjA*hwkM(cJp zuHU;5en`p)tY0_bmEK$UuHOQl{;Y?-=3JmAE$*bWB$XVrIEXtP^T=u6c8JIwL^&BNus&Hp zmi?2)v&A3j{`4~DS!@Hm5i!RgtrYAtN`yn**}~NpSE%q`KUou7K^7Ko#NF`<5K|XJ zgH1&-e9mpy-#^G+mf^dPkBosulkLcdw@w(6`UL*OU7&9bwXpwaJ*oe^1rG=o!8_|g zDhNuUGfMg1wt$y-!-wx|{~QZ1lM{$u?jF(+$9LjB5G4(oS#Un(Caa;M&&`t*1(^yh z!C&hLvMET1o4sN*{@3{e_KGRd#oRDmzFlZF;ZF%Q)oLMn4vF-%nizRAYb|MxzRwUU zjjb^U@!Zcr;#d?9hd-}_jLU6!oH>e}e6Rb0VGme8E*$@j-pG4j9biqBj9@;mSIe5; z$AGn}0*MP|beY`_%&Ij5ec62CC&Dw3PyQlFe-BabJyMu_zX?p4t#sa^?&D1oz8FI(kBpw%G; zEpNQA`e-W&t0!G!+&K})#0Tq+TaCUoiGNVL$%5-S81b}^y|`5ZvhEBK*8|sxQN20V_w#c| zBZ*ZG@r1-nSJ*y}dE{mGXmmQCKzwe0rKOJ+lfVheutWPVP1-XVrm7u9pT!@^(&ZE2 zL+xa|>ZpNBo_Y{%*`qKrMg~gMOfW}l1Wiio;And^+-g_B11dwbrtd82`TL!Wbg*dZ z;|2-~&q3+cvv~XJ41~i~MD|iX)L-Ex*ger`R|hHRj$~3dePw2ic7P_|P>kJKO5d>w z0tun93wyjR6Gk+i5QvG`W$NipE=R(D41mpy9fNE&6u?H8uK}u*a4VyH*t(^po-I z`hE1@o~6Q)&u3G09bm0fbMc*B8boG%BAwBB^xETgW`mLfb}iV- z%FNkJMh*Wa*VncPx4CSiLDP@31&;MJ-t#D3^J62(9L*v*+&6mWx(*Zmg=a}CTF`G# z`96bCQL;Pb5#4&Xmgbi7Ijor_#AiVgo3ZaFQPQp_UiXafe9tv%Xe)+66~3_1xSF5I zQFt+UIlkZ1M6Km|$fDj5i2ig6>&NhX{_136KKB+%9n*$mW(ib$$b)D+E+i6DL+IKE zF{I^$3~BQ^hLQVo>BgSZ;P?9)TX%9dbLp!t_WGY7r589_L0(at@MO33?^&k6U8k`WW^<^nx~K=Xw3N}QxBwFS%wU3&J`ODYMjiK`B)P%7 z$K;_ho5!DHA19hY$YV43SQL%hp7HF}S7YIC`BE74wxD`$>v7sLM;f>y6Pzz^q_1=& z@HwB~o>5jn#)?ei`IvLic0mCxIUEMOsIFu931Lk+n-%7#|WxlY1V_R*~iFVkkb06ONC;o1`1&)`Z*hsq8fjrpCYYi5zw!9?$Yt2@9vx7K8N1;VCeo z`8qkCc7&Qvi{kfIgxvjcjpWZWL!$u|_N;I;IIlHfoHl0D+nN$g7L!U&YR@Cy74g*E zmiKul`OsMF2BNggh9>>e#uk}5a1lFs-Ng#M&Ei~qlp2jOJ&j313+Q!f*rDmm6YSVOpClR0sVyFrh+MvyW4 z{*pTZ!+d6A34P)lN)|eQVlr*l(f&(o;rE3+=Jd{;c&p2Yc8_i%Q%rY4hE^=w|4a=T zWeu#%&tjTGR>MsFSTc8596yZy#+E<&#~yU8pn4WE;1cnM^uAQWLNRT;7Q?@DY%h|m zPY0Mfrk!q!7^Vl;ejz18d`>MZ-s)IUGL`>uhxK_A%Y2D5AZGiglC0A{|FdQ-cn?bt@qqqDH7}ZHzxQw37Dl1F%-fkolG{1t*E+3G4f+iE3L9bvffjgOcLF zxi66JN!m=aSEkUeKWTKq1_v<0Xe!?!OJ0;G2-n9))$MMspfVZvS%U@14EZDiivN8f zKaSdtS+%VQHgKR$#x`&0rJ&3{}cj87Ma^BJ-7h~vz}JrX3owwI|7yg@Z~SJRIX z((vqsAsLDINcE=9X6jG>X8&l4SRGsyN;LoVGO{JF8QBDHDs9W3De`}@ho7o|sZlf& zbv}ta)E zpFVe?F5eZb+_e~T>iIP4ocfJH%ZFBbHnq~CPo}Kl>nU_+d>s?fs0R1W#Ic9Td-~UI z1s%zq$XwkTPL5`Dk;hX#+2NL8`o;GLowYEYEq*;nzNzOkyQ&))i!CKqORa@0iFr>y z%#Ef)2jxMs!h@VsOtNZyD~0oyk7L??I>5MRgX{;@IGQp`5`KLNryaq!Y2o(ogyb(E z#Ro%4%x+)u)H9yGG;pIXfpHX7ualZ)N*)MKQu)RNMpIE=c;ntU*3WP)U1V>{#0Xr; zw8D4HF0l`6rEvt6Obe$!HKNF`PIboVmNwmOpT^{6MKCej%-DHi{LI*&MLooiTlH55 zli&@xbV*|%b#;znYR8UZ9d{|x7b}M;6Mmol&{og07J^vw`g&$upD+EJ)kWWI51}0^ zPO_%sL+Q0HeI`&iik$FYL618~VzsL&t5$!K$ZRwvhi%r<-N}-4gv(+6wT>{;>l8?& zj5{OnwqRyUBr<(2iqO4Vo7^>9M9o(vk(+65Wc}d^awu#JENPiSf1i*i`wsgN|F4dW z`B6(STsuhmF1-{E&66eKU7xHTUuB43+fMkn<%h*@-8EL^>wIE&dl7SF=_6wM;tiwp zTtk>$eTqzxmx0Br6vR zu|vci50p*D!X-1X@A^TMl0J8&mG{> zWe1;@2+5&sFY0Psd`SC}E9Aq&^JGazHJK%A%ns#su|AWYvs(<;GQMFu2sgCP(uCJA zdW}5jtI9YUIviBD$RdF(Hff+QQxvd5v5|Tn*-rD4i`jF$7b&SVkw!*I;q@}UbKCME zoj1Rc=YfyMSJkWWp~F(_DGtNy^{J@vF#;E*pTLh-ijavoi(yyGP;G?b_<3n~d!!a^ zOcHQTx=(_hZ#KvjU4)VC#h`rg3gD%7xclHTEPtH|eva`_&wG-d zj5-HrUS`21%M?&supam=CCS~Z1J2)!;Ttso)gRf!@XJbaQgalEJMcqjc}$U!Pp)9L z2;`Z(*8NnyYJeT*sz%qgDhv2%SJwQvv8@?qy@{C(}M1kjQXM5 z!tfwl$`dr`EZr7XL#9$VUqzRC50p`_jc@2uuXps+xK#Sj{}zo~Tu;3P26))p7BhUe zpo?SrM9im|Gp4kNtN@UdSOs!pgz&j8n_XZku{=&U3@9@*!5?nR&G*%g0#C0!gQLU^9E$bt3+S`glFL??-pInFU?@D0PzDl@qt`RnC z-h=cPogkZX6-I7cfHfsq;65%D)GI@It?wvw-V1}*&mF+~%0m+V{50v1YA4&TmXhH& zqU2hB2qV3sf;}7+PM6PFLCkJXR{A@aw1v;TstuKn2A3)pTU_5m4JQfeN zU{vZOEK+R4&;Iu@I^!)G7Z2jufGcP?5pkX6dz|O`0wu@g<5=p0S-ER)|15&-p-XVK z*c|+_Q;YWQdO{TcDuZ)sC)qphBk6FO2kSQ{!?|+};2_xsq1BaOs9p$OruASsFa#xM zLDal?akq&M09a~HCr z%s}1KH$2~eAdmJ0%455k7T>2e3h(iqcRVB*^Zb)=*}e;ShtC#lku1YYhg)!(M-P5- z73C(CNppSq5AkjqhuS4SF>sXvH+5qVYA592KC_d!+A;;Zk|VHiS~%|PpNyNT(;2;} z6J#WMDZBH9IoZzZV}XAH;8W5$xG}2{?EhE-=v zt#C#64)ne5fpH3r(6=oOEF2Ocsy+%_p00$qs%9`205W-|#+g(j=2OUMlDa2>d@fog zd~IbxS9bhkT_0Fc;k+C=AyJn$?2};asWz2$jiGP6rqM&ON_BxBvzWhM%!%KBTglw? z1}5;lfZXM=9oy5ph+^?YV)&|%6ztwc>W*6x={Azu}0zY>^fFa zcz}BIezL-pGX9LCh9igP;z?yA?A}B$^W8yAERVpWb$l?Mix_`>+T%>&0yx%zK6TOGk0$)5W+~%~e?DABgw6R$=pD8yuhFjFT-4(5w9| zQ)fH{zW+9arGFIQdF3+D9+d=)WfSb}5)o`I6%$-=d|-Ba97i-O{)#-#UkXEd7F#moJvjYbE%LNz;-1GZYzGmG5>Ms>3tDn6;9wlmObv>u8#$g zQaDv6gB>eZO#Uu=N#;y70ka5SXmtsLq3C?blzIV&pM8Tqvu;>t@*JACiU@A?NeX5< zi3k?F`~({fx}o`38?3nX01k*=g$m|6 z3)t2p;Soi+_px3--LwYX;WDa@3( z@4iaN^S@-md=)4&mIXHH9BDgKPSP%EfbB5?7gMz0N!3+y{BbHFt{LR}*|znxSwD*2-hGue7ir-$ZvhTWS&zre{juLZ3@csYQM;V)3)87b%@>bw zgX>3JG)9t3iBaa7ve`aBDK( zIX7NQ@OJV?=oM*$ogW{9?(*kw-KrHf`<#Of6F0${-IF1~(g;2&PJrsFHuAH#gXtKM zq4x@Vgv#mm%%Fn>y{BJFQzffuNkR(!uyi+_^>97?x?Y?P4=1o2r{}S+j_0#ZGjbW1 zRmVx??<&GCHqpckO7B=I9mS0%lIhuQSU4dJ+N}aP9(BX#PjpE9BB{;muXPTOaF?G>% ze6H1i;gizwKsT?!)yze$A5&5PE1{{ArQxspR5&!?2*SuDSaKm9YLd!9|JyeRSSKSe z%=!a%Q@?|)pR~YQMMkiFj0_mxrdxF7r#`Udo!gImu(ot z;6wv1#8#ct-+hDk9fzZAN)%4<2^2M}V+!G^#~;IEPb9g#<1 zLa+nqXez*%Wn0L3twhG&P{OJ(SDx*A*vIa&O`;P2eo>V;Eqt?xr5=-(v1!LHvzvk< zsnywSRC3C1q4@<3@@sq_iGODTo~PvCYQuA)|4b9k&2~7q_~3EN^cZiH`_svyP48o*%#R#TTW7U z*)cdRWCqT?ZHP-}s^ip`(=j`C3wFc?;v?Mv?0Oo7p+*Jx_);TgWIn{Hd|qr@4nJ$p zYjR^{XK+@Mrkut?HO}hxU#v@&=la|=Iok+H4o9`&wEPTw9XB6EmPzC3P%XUk{vQ2m zQbXj$gW=d<5>#GF24j~(c({n;{j)=GX}z*wRfVeHkDY|zknb=Qj1?2ydn+OkdpQ7h zez(D@;}VRgc@Qph7zE0i(7*a2@e#dCM4dL1!uO-uJ1?W@uBAdcGV22Mw%$vV|Habq zEdw;WrJdGvn9?g$bj{77+SL`t zy^Daz( z^jt%IA5kizJwTtGmBooJDtPIUG%6H|VsE`J{#)yS?b+^ld7(8L_e{m|;Z5lJB?T=8 z3$Z7#8rQ`(poaNVEbkEKLS+rO$ycUv{{lvHjU%sdr@bh*Mn#i5yF`W?qi_eOs^{UH z)-Y5*&gVeRj6q$`W}3QcCK0RL43E6|ef8F0c=7oRDA?VD%x`}nut{F9>$sGl|H&5+ zo%jhjM=?R%u&Cg5+arL9yhq?l4)}N+1-qpH*VdTAdz~&a<@gcig*rcTEQ9ExQ^s_G z?>hR!<~v=Wp@BT4k7{=OM_WG;$`&l8(kBFTc>gx5g1lfNIaUeAZJ7WnCx4RVC<(_p z_e0{ZOnC4r98wBb!^5?~a9%bRPIrfc_UeOB>9iGwhAkjrgBGld7zN>F{UqbW8L~Qf zJrRA`%j{@ZVlNNHu$vftcEaR%+9UCVPEff)-#eGlH1iKMYq|#dWlq4hy9OwDtBj3> ze6lEF9a=dq#+82@Q6%^{&e=gxg}Z~J??1;K@*>>wC2Cx_>`cxg#*Ev2Qj7DFl;*th zHMr&b3^>7Fd2XF@FTO6!#e{o{QE`I-7OqjljXZO*s$LD|nT3MlP(D~qxd{>n?t{za zXJF2IH9j|L2#$SL6a+R(2|}ld3L;Vl!BF%$yg$|gt5%(Zi!%?x!4*a@qqv<|?1>@M zZpe~rzxJ`NYw~E_xaZVw;X|rub%ma0E>r(M6?E^{Vmfc(0=ic_kxzt;Wn?Y#$m}6y zSe2p#h0oQ%#eF%@%aPz$7Z21V4IUyN#WwoF{t&&0c8U=Vdy2d?AL=T{(=?IoZYjQkI zj1!(*%=M_xsQLO4UQ{$ek3$*QT|WV0 z^A19|$87l297j$YTT{O|8B{*Pn?Ci*q}#LI2WBP;>f3I<{^h5g#KM4|!xYTw+4)fEsG~}I zB57Ot9CpmsB4OEH6Z-A*O?q?%M=#vWp}W?dqjw_72*SpC%=|x21V@sXW=Xjc?)JpRk#Zcm!AuicE4%dYb z&_<63v~tINYL~i@c3bu^MNv8A)VFG)IlGbcaFb!d<_N%YK5zc|6s#JT0rvd&%1K#J z9a#zg9irfI=L{@4>I=WO61Y}k4t=sq;b+7`*eCvn^ltdZxViYV{b>%&X)Pn--e4j; zaI}kc_pfC`8iA_yyl0nm%wXOOKV{r!3oX-II@uM$4XpEqR#q}~D-GFroR*Xxq|LTx zslS2(-aPGyN_so6)WZi)?&kfLrnT7i<_T8pmEg(;bU9lu6Haf5C8wOTlG|*uoa^xS9K&qT91m*lI{nR&f$lQT8VFA8Luqb{8;`YXT+a3m6N3KuVIF zpm^FSfp@XEAR$>oV18wkz~a87U_R}E7wsi*xF8am2bY1}=+Tg-9YMZ08ZnVmlBt37 zSWJFJ@I>uc3>{R)WArt|M<_#zHLlN!!y#hcsx9jGlc6mH6c>Xhre@G zLFwCiVABd=^RqH=Y`+FN-Ux5URX|MMIavDW6qwx&0MhFSDqk%?^U^SR+#W%!?e$5& zNIFwAS%a;(TfoYm*+7rnxJ-pXd+6M~kxb;kH)dVR5~2PseOB(?pwOu^n^9LXA;D{A zk)@U&te(`X(@j!)>Bk>aXcT`}oZ+d4?+?yEZJ3YFoDG^1t;z2azE|oMr&Gd@7}0z$9*Sr^B0?P-!?0AE?=v0*2;D|dyFr!kD%n= zz-=NuoA(De^g)N8o}kZDLy&n?MKCm0RnSwUAkf;WCO96ZE||DVL~y~s1vJ-OfNOgL z;M*2$z}PF~^t}Xz6m+l$9%fU$4CP|4oGdTf_;(~VP0+-EZcY%@=hhg3H1;# zPM-^KqJos#tt8t&P9sq-W0*xXJ*?l1)l_j!4$WD3mCm_+iYna-qA|LcS(D}ft5LaE z80n&4jPj}jeDB#!GF9X=`95igh`jY8PB9$wH=>gX3!BO$WKO4lrZmt!btF zZAR2yw^Vu5=(MGXS*xNo%=}SoGuVm|6KC%gEi5)y-uk5z>HdGAE6SHQfTG{ z3o2~>!}=R~(HhYe)JEXL#h>L0FJ2eEY*;Q?n1@s zrc|peiq1MwPt7Ag(g#~i@KLWT%6T8eb+b<6k4MG0Nb5Q-xcvnEOeHyomwFs#ns5Py z^SO1~*KiL+-MFs3R$TO5IqrXk&ch$8FOK6xwu}-=LS-d0 ztWbtkq-c}FTjcO~E`BS?W_|f412?BV#~v4ki&~7-MG6r^M4yufu&wa`)?e@i?_S)D ztwx@}kwrW3qxA@@0}Z@oRwkM@dIddIsmWX;jhOdqMRseMCd+QKV%P7^V-^QR%*wZs zhS+}wj~!2=c8|O0V8BQ8`+zx4?+V6RYQ^|57VxKK6kj}EinVVFn7*jNRRyJZ*p+HL ze|;{VBH7{Gd}<`|+#BOjKR+XlxyO)lp#~b%T*@m?RH3E|M-k6eJK_2;EAHska)PB+ zkRqL4*q0lHE{9YjjYkBvE-FIvBlFR$kM&5%zm6s;FjSwp7wtK<61JXhAf3N3rOxTJ z_VIIiI(h=rb)3((MC@cUY;swCsF>X(msx~fEpt8ni{1M%N>CndCOlA_D2!TfFDR~d z6V8{;5jyHDggx!@f+V1x6@P7H{ZgmdLmeM>bf!F=AUz7}zmCJFcO1uNJ?HSk=vz4Y zimWJRnx-grrmDzjtF-9h&u4hXpcrpIQjGu0$iZV(;_=6~rg*jVWtj6jfyV59LYHXE zGj*39ddEYZ-BRAdjv7X=#|tdk&^4FoU9YR;px+R*e2EuIp4fs+FL>gsACqyTW&vKH zc^dyozl>#fFdTkIzzGX(;y=+87wyTz?Gim#_nMvfdiN}xWhalp$plo9t%aIg&0(la zJg4cG$iIzMq#|1#+BZy>gu^)K6ZHZ{ZSp`j=9Hm3=Oo#jO>z=`*bwZQrG(2fwXsvP zF4lUfgd<-|c!!ly$OKBG_d{mG(d$Oi^ii!e^FIqFZL^BKq~Xl(OEP<(QOWKMbTDhb zAME8K6~Sq}ju7?IOz4%cupWhC;q%nF!l$K6h3hJgLgIpd?DxSZtUUECv$*@1b&d^Z z3lkVoAM1{UOSp)d*!D2^gd7tHA_|7yC23}ZdKr1n{E!6Jr2w(-tbwjli!C1&2lCf5QD zwiF`64R0kpXLH=LZaprH%EG_LUBCyPNwVkVN^s2md~92uk5{zk<0FT2amL<47easloJg$t#a6QQW{Ux-x)(p*>HkDo}xlJvu ztFz6m)=W2i0qc%PX0zfbn;g={;_f_RdZXU5mT$kaf;)M;lgEI8$gK3|DO|G6sThxJ>rs6HDX*DAn${wJ}4 zLm5uftHxkE#dE2E&7)7^$FmRPZ~5`KdT$V3GXvx6TV9|sTJNE1MjTu)QWm+6{0h@A z%G3H+IrMi-4%H2Q#GC$$M;@j=NaQ9$s%Ioj=kZUG=^;f7E{(?4%42YPm_F`(rj9Gd z)u97d+K}4U8c9CtANbzVl7izr??ie-K;EOTjD5PveVjeR%(N715z-G9nFe4_=%80QWlcI3u|nPuQA+Z>TQC z4%_AN$H&vqq3N2u^Ob+Bg7=DjL zT}MaaZ{9N`p5qTZc?_o=D#6~z^YOLW=dtRAqqyH- zF7Ev`h+@l1(Y9eH(a)YpG)rF(rDgvivsAL_=lEW-^o1@8iVi^3A{b5xz6bRrd}p_6 z8SK$B1}mOY#U2MAqGXL~&&VAYxtjtD8 zw4xC^b}#Q^MX>sta??!vq@h_d1NEZneHr%HS-l7 z764)KptPX$?K+oM^!XZ(`2_b=c<%#Xh|hYd7ZO7jZs#^nDKR++>UEj;i34r?=6NKfdV0{(7?gZZUO6 zE~Lx*Ai8z$Dctf!nqDY*K^}ckmvCj?p!C(IINfvaz zfA4{1E9+3dLL`bP+=xn~YQPBVH}tORROUC`m1&Qhz-;!sp>Fzb>Eo9}n5gO+b=5Q{ z*`dc#qJ%vdIDH0ov)P2VWai;xs%LTMRUT{m-NBbPwc<FEB|(tyZ?kLo^!=v3mvsHV&nAig#$w zo(U2y_;j{#a2gx$5-wq7Rk0|mdu-jxPPR{4N(jEBB^Wgs31Q)spUoiE;?0!tUPW|=-+b@)9sbQiHN zq4Qbh!WnFfrxPo=Ys-*=4O?_wjy(vTK({Y3LnNycx%n92aVu8f^(K;es&56}fAI#6 z+1P^5sK)zX9LZzkzpo)?xmB8WtaR#lf!(aq>!CeDa?HZUniA`(X(aI=0b6 znd|9=@7rLpsVSO}BZA%WDdfG{U-9r=)+lYNI*$Ih2v3-RBwn&1xcRg+?vAy@b2rby zX(u>5S6T+|h>Acc(*~?Q0+57BV)*x5T4)t7T&t*Td&#N?q zFg<}M-b<9*jF>kqGyCPKBAG}5gm}n<_(H$);b2JbvdPfMmO&+jo7LXx%6oR?)q%KGnc!NEsZJ@O)Mp11)k zzth8mlbg_m%Cn#|=mPCOKZf=1wq#EPz{Y2UvKI@(nD-BNrhIDxBaV;g92+}o>2n!; z?_Pw?0XeMkdp@?)%fyXS&f_(xHQ|oXCNEPc*c;N5YvO zhljW;VB61q=t#>L{5LfOpNu+yx9_mQ_a^*C#`|BPe*GUve{L1Z*R6#r$y;ceu@dVr zc4QOM0+{mrNcK{vkZrAOWt+|Zu&@*A!qTR(g5Pgbq2MAXXoY$TFCVTDMju@(#3alX zw4aOmpLQF|NB3Y8w{KWmy9+0sy@Q`Gs>fm1EAaY<E5Y7l7$F$7FtkDi1z+cd=ef{vssA{_DraOCB62#oH4>RF$9&`3N!+6gECSM-T z-X9KR=fd3B8o9BofABwI7cGsY%SYpT$xhhaAP5hCdlHY_`3a{F3}VAI|M2%JY0=b@ zems8NATG%Gi|g0-VE^S5f7mOTGdslNAC-%++&9VIv^oIQ>BaHy{??GUj)nA(rkEC) zzNT3R)LC=H9~x!!oxTgZMT2J4QOkSfROUq({S#|L=Wnur$8JsqokQ!$<4!56s@F^u zU9(8t4oYL78e9F|ik-{|W9r43%y>x=b2!7Zia8%y@Rw17s$?$orD38lPfa8|e(ocv z^{f^~R0at5-Xr1tfR^y4Q%TUbkg#ksyIE9SG_#a9BIov_#ykScnxiU%?MnbmCJ#2k{=?A)+hizT-)|e`BQf7mJqm;LTU+aH0QY zyj7fwtNa(?Z__5=)sbx|y)g=9ol!w>&uIF7eHLA^{VXkhdz)t5>YyXPN-=(=68o}d zfLblMNN+zmMt@wsKvj0;(Nf7=|G#^OX<+agdQ-@tBMqDA+FA1KtC|@blH|aaUs}bq zT8=U_yNpHITxA7u&smz9g7Ct4ydbA$Bg}1d5Cj8PfvxctJk5QCKYyHsjL7jqkhZ#@ zD3%uL4PLUu>?#&{SA$tDJ%qM6_aO~$2OM`ZRl*nV#%CAlil%uQing|o6KUjFint}# zB3WH4QPBcp(e}@JBCbtI)b{QJK6~m0R!m65&10N!PS+sHS>}SWvNWmY8xuAwU<cGmuastVb_kt(zFR$lxkLz^JaP|-EtzXI+%)^8&2U? z(HUH5L~-2u=lE&jAN(m$PBghfTGXBL6t9@`5I^aX%Uny&={YU2tf1wiuh6C+s%*~TN$kS2>1^=@JvMQ}OS*HI{9W^lZOi)2W-D~F%W;wHak?j+ z6*UtbSALEnN?q{A=94(mxCh(%D~UYKbws_h3`DzQ#)(2+7>iCRn~Jnnj1p}*p(J{K zUQUD$e85-RYVn+(@i?PoGByg8#S8pHkkPSgWJm84TIA`*PE23NY)5Tl?tRwy=$|hgoP%3Tr+6VS#K?+N5IzjKRRz{o7&qZG32fXNDiKnh< z#^pvzqM1llwC1~v=;lflkw?>L(H}BVRI=1o9V3bxj3FLMvt$#T1Au&6KE?7=oU zmi<|UWvxh|Gd^~}$BC^dG1U+|NOq_DK5dfp$?3RGPQo7j`4y{Lbm94rc?=)aY}u4z%Klbj3!9c=(%%o_4ao zG4Gh|d}-l#*AphbIEh_d8-^B?S0di?B!Hqs)HLM;mQnqOPw6O%?7E~yL-v2i8i_+i zg(1cwSp_@MVl8cv)jKIs@2Nq2!@3`DJKTjED$4OyJ;^?Qp)0mB{13^hA4d1D)I+Tv zUz#xd0pABI*tlRlw)U0*bI!G94?lBk zVVn(XFEeHK@6=ethEl3CVkG^(yO-C@GDJf>9w5<+F?eRlJUn(=67F1h4*O`F!5?H# z<2OIAVwL-y*!$d5?7rYOJ`{f$&nZ8Hk%U1tH~$>gxg3cM+ew!7DgWvrgV<{b=WU-VL#`n2P$zrB#HY0Y6T6w_J!z-hK- zS0j_&)Xp{xK4K0JTG_pl53J;xvarraPlz=#5L8Qbgr{qCg==fggv!}A!s|XA!Nu$u zo2Pw+l?`uaQUM*z7+oN{IqezvKFq z-|_U@>Y`7V#))iK8j8Z0hG<}&oQO3H5h)sc#?Yw^8^0IutJA4?a=;QCuA+-S)s&*j zpdPq-K$niXl}P)y{H98=HcU_1PU3BMWanHav+cVaS;M`l%vr;LZR>tZ<1hHqeS6Qt zzD8HHP;CX0t-FkTnkVB$Mr&;)yMG?MTn~$fiI)_sdZsYm?+VOh#+c<>qI84&p zzFu$zFB-Ur?IeBYVPOlN;yfRpTHt`gm-eDv8{N?PMHL`@V=4J7nocd$uh0ZF17@5w zpNYo%vg{9DOiO+nTkD+3F6CchsnwTQf?GaYV}614slQ|==gA3wHx3mRs135|dWyn2 zdm|x!r z)cr++yPh9-$<(8XG6u}_~_R`@V`xkW5EVi`N<7SCRtD3$D9tJrC&a<+7P zGkY7~&*oPQ5&R^+{a1miLXU@zuNtduwZQ1Y1b#&_b1u*>GO%zr*9KTp0;Wri*;;j+yu(slN2}9{U&OY%E zCl#oQzRBx|E>71K`D`C9s!Nv@y~})$lOo^Y9MJ=OcS8wwIv$6$Zh2z$c4=HR&kcFE zc7w7z6X=QVAJkRdnng2b_V(H$W_x@+)48>k@n_bv=f5_y@Ra$iVAUA5pi`dxnASl1 z1a-Q3**U13v=S|!eFwdebHD|eEARvV?fB8gRLNea5{KNb!*M?b!|CxRd zYxxr#Q&*0SBt7K%@Ko%`9m0*C0eHCYcsyRG68%8)(dx*HP=|j&baP9o^*ALq!{3g% zZr{j&dMq>hdz8J>C}X=d1=jTNCOd8Vl6`(IEhJr36(0W>CO98a69&RHg{#H-f?d0* zfH&$2G9iB@`7N*6j^VwmO!qC5HM+*;2dA*c&-N^ERy}nKPo$xZk4UlYVl-^kIBY9~ z<4kvnf9Pu&o*mGDy?1xu*B$Tiw4OmM0l=smp1>N*}i zrvfL|AHn3Y3)Y+W3r%XTMH&|A$g1!yJe#CN@5f)K*}iJbFxHrL$QVd;JmcBOn>K98 z69-l~&We3nV#IViWZCt>i!^MN4^7x}oFqFdLdQxIWO?8mdhIQPpDlC1$=p)xymB#4 zS?GsLb$8;N-b4wj@vvlW5Q|6hq1ZXf3*Rb0xbKA-9xw5nd;0%C9S#Yo`>_U`bx4bx zn0uFR1YM--d>z%8F2%g>_0VN@N2q?dCaaS5V^Q^TtRLzz_1q{HCzZ)28dx*)lx0k~ zRmRq;NLT}7H?XVMl2}ko5gS$>$G&!~V_Mo_%=FkkW-Z>#OpF59H}BQ#)1MVAMBA9X zTd&46w;HnO6+>BgYbCWDyQChsjmzVtj^-TVVTx9jI zUG7w@I0&)MJ4^g$lq251*##GTamDiA5q{NWkJYByO7w!pxZqi-?FQyao`q;bE-v_5{6?-)p?Y@tqmow=s@m!a?zgWMd(KMO*CR?E$S^k ziDV=^q`cSVsNtm~EAnRw!j|We_)G-apKgSn=qRE3+dm|}{k!m2yAO=YD&v2gEF%8y z8gz&jpkpV_57^uvojw$rCcDoJEWLlfT`AO?*G`=Q}AH+0Z31ikXyi?D7I5>Ki`nok?i zjAtz<{X-|3vFahZuic2|-)cnbBb(8YqqoqR`a0yluMQPYsX=f;DN^5^j}`|-p;V8< zsQ+a)+AkA_qc<{FZ)p^DUf(x8<}tEqqNE_!Ky2EAl=k~YT|(qT8s zDMuRU#Dh0!epeH<*xgDeMm(e)W1DGU=>uvSc#qmWucvE$Zc!!WMtahL`hNVXt$a=n(U!~G$eVCg)=RXt&$R25~qRYigeKB zLmcYy<&bgaXk;*C6bgB%jF#RoM$K|Ah<%!ZUS*i0ti9SO_KyV`)@F`^4{9OnCz?p+ zvLSlltd64czQEqLV5WYY_^#twUgoSmpCCViB%Yp6 zt~6{Ullx7`kzG^BalLgUJ57?WTVhP`>MH*5^-TUhLq+1}b&fxvmCT1X#`6vp7DOdf zpU7!A5}g-eWao|Zq%5I>SoTWMHy_mK7JC`mGFqMT-3D}Yq7{|dW=b4{R-TZWMO*@fYC$!pqhynjC;8m4pEMS>(lcfQ$7Kc4_t)mrnh04{UbPf zZWnyRzQ7i3SyZu40p0OeLXS8}zF68Q^i_Kl+VMvh$+hXDgj-|K$Xp$?`?EUw^F%)eGgewL$&GSK)}h3ivF!0KTS)aH?YnOz55tO&_SkU6pkpVWAeN zim38zzsTtI;Uh7@|o(DXP-KC|P=B(Eu51@sdoObdPL=Rix7L1kwJTNCsUtldEth zaqHJ5b3FU`zpYpJfZ`B7p;LkXXCE)-${QUYSyQLvnZcaK@>AT4hxOcXqf&0R*CuX~ z?M0^+t!dn_<}cOGGa#2Wja8RwFLyL4jNzVDsBnujs<}%(qrj1SBf#!q5#aC7Bv2%7 z0;QI}!L3(%FxiNMjywFI=ur@yRel8ScgTg!zsli0Tn`JE--c5Tw8OG>JOombD)JprI5cBC0XpXZ2*DkK$+D;dVe@$J^|J?VCzqC)5sCV0v%i&u| zXy<-%v@wNj`gD?f_;HCOtJji2$D8DQ*)7uj?Gf26cb{;}I>?6d4q`CnIT8Q&h^!Ia zC-Y73k?HCU>-8)wN++hSsQJ%_aHDj+q(GD+p>Fv5R2O7?C~ zBDw1i6I6VJTu$3XzMbDn0w(SvmXD?rJ0m}`Gh;ltKD3)Zq+mvdcFK|VS}$?xjQM<{ z$vS>GUI@y9W%&(;L&54uJNUDDJd~X!3oC8LK%I(xa9h&}X!9uw(z}`PLvJPw)>#LY zHpRl-q7F!EYv8mW;qc#=^YEN+9z3*gJM-sJ{ID*fg>x(`5)Iv4nG=}!1vdIAg|F9#1!QwLKIMuJ|MBKX|J0D_Ut zz%TP9FrxSQ%wq%KQH?WfNV5d@Jl)}I}>7ltmNiK;*`9||iCEmpOXAE&(z74$gn#29#mW#*i zI!Z(aF65BjQqrg_c@LU9VB=n2vSpki(Fz;@9%)m^&FZxz;=73VDDDGwCvL-;^0Fl0 zd=z(mbRHD#3E{(Dtbm#1B-F}|CFgEe@;=JXVDZ0WP~)T_TsY?AD_N~isjiM8od-nrxet0X&9r+OEUa=(GvP~tLJS`}fQb@8&-oVIN`q0NcozPSU zs|Jt3N%mW~SG$ft&e4D`wA&B7&-cUmH9xuZ@&;JB5J9D+Tyi;SEzn*S0lTb&c+b6u zV4(4FNR&5&yxd6c)QIr}=ME*wmlqPpGv~#IN-GE{l7TT;n@st=fQ+h7BwiDA_yrpd z@mi|u$?l=4@Ph7Hcq7#g6}y%|<=Rp-(6<%zRezwmE_yJ3Py>}MpGT|DIZ(e@0Wh&M z56s&4vE~AJ1=Duh!u$3;X#1CNT<@iV_T8+dWhOfGoPLye#-V4#gqTC^1NyMibS-Vz zmqEbk2;z}wLthzIk&B7%;WJhNZ|*k4GWE^q^Sax#A*ze?-Bm;iFrA)skECdh1sXj+ z2MjHrK=s=LiDz9h8LBsnZcmg(%g5}2uP3gB=g|q|{H~2|Y0*K}IEu&9 zztM23EYy^^lwQVCP~-DcfxaPZ-CabdUU3~Db>vy3OD;iP!+AG^vK&0NabZ3O7hW>=^;?V7iXuD?}JhMLFIv)dlgJAUEl z*zTin|6w&YXHg$9x@L@iFTPK2nb**qF+=E@y#`=z+)9a#){`n&W+TmkVzQ}iG7Wb> z4c28}2LA8ONQI#aRT-U!;#%Z!$+Qf5YV=pW=F}KGdTTXZw)Hez{NoJTcRmr`?g^pa z{%ohU^R*G%C&^0)`9j6R&x)hdw$VU|UP<0Kn7aBUqe~tgR8gXDmP`-O$(5(+hpJKJ z4Ozo^e<=`u>6V-UUKy~#Cky#?PoN{4Uch}*)}mIUd{nr74Su$699h;HN$)=&i7T(x z6RCaCbm&|SI^*n66iK4t6K_j4CuJUb!KqRC#7XQ>nIH5D8HT$5meS0X5+=%spRml* z9Q=NuO!J)8(98a(L~G+aqV{Mpa@F^Pb82U!Q5%nu?88gYf9Z!1;+^3+n|o;aSO$t^ z7lYF;i&6fOC!~<~LVIFPqQw2F)Meozbd9XUMukTZxB3LhKUss87D!_!10}fYMiv=+ zxgPc0*a=mvyU6i|7^EL`1780G=tB2$UQuQfn&Y>La8@8Ztc}e^8Q^@NhZh{zz=Q5xD0kH- zw8g;$Uy^-~_o}Ep@`xFE}(~2!_n=IM|?LL z3EOAxN54P~3<^$I#0yr6}991Wh-V!PcA1 zu(|GNTw$k%{rvx;k3)V)dLnuJJWT~RC^aIxgK=75* z3e~mGAQRvC!oaQ^sP7#`9&AtMM}3Px9skCo{Ebqm*}@q$?e;@z6OJR*nOSIakUnaA zWDjqr$bq0&Z+VNiJ7^-lM$L9yqfOh|XlAD@JGi5n>U_ymqZ&oS&lu6{y+`!Pg=3>GWAHwpeceQUHVTB#gtt@2aZbPg9%1>ll43tX=yFd zBPn5nbH7pIyj*ncV-YIP-HVEzB9t`I7rLYjA>$`TgM;~M^icH)%BQTC)P{2O_~x7B zul;mrwLl5ot<*;(8mDFq)qMch$5-Fz=vd`ax9(s3- zUgD3^&#P@|g{~oW?lq?5iv_H0xP-1v)x!M;O>mfGR{i3a1FrmJiC2mY@t)fsQIL5k zdSH79o=Y7M_3M4bZVoBr+&weezhfxf)-{q&*7cxDy#X})tv*#(NFj^PZGzwL?Lj*> z-ACKH+tIqO1Pyq+N6XcpqvD+>(YVnjsQTDXcx>Van6se}+J`;>Vb~igpNat`Rv-9} z|9x^=r+*McuP-C_HG7HHX9My|Q(n?*Ya#=d1W(dWaMT6|G|xr@StZ_uE|YEp+3E&f zS!D?Mb>)Kiq2e1bByR-$Fg}CEDL$lntMAaKBi~ZfCBxZd$$5HY&2Sd{W-MEGz@1%g z-^Q#ZoKukUoo>}LLh}6@xGNaonse)LxKAvu>)DDY`|4u*xdrH~`%O4-aR!`sbtj07 z&>~W{q-r{|WNAO|l?p)C_dvW=R;c$upfO=ZP(O2CfwCm#~M6=S6 z`$RuUo@@fNZ@o@NI3&{A^yl;neN21b7SPA{WoS`n9QSiavD3NvD?#F1Ie5~37_1RV z@z0_SiST(h_wD*qcv*Wjveu75=gyu(K5b{vs&6Zh^^gL1BWeqY-)KOkW<}FKnYna@ zdn$E1wVJN%F{2%tAIQ;;RYX4_m#@pV5&LY;2U$DHfyb2VK<%C%+}rsY);!#VGPR>o z$DLhh+rBBtEua@R{M`%Fb1F&f(~UIECzt(eEJ-jZ0b}hH3Z%V8Aj93a^FLOle{_{rC=f@+TqrZSh{Vd{L>^Lqt}*e(X1KH zNG?SI#c$mMSDx1abKe1;->k&1Tbl!NyARmzPu1Oy0HQr1^W?BZ~N% z29jK39WuqQO8g^bER1$ah46Kr#PekZjgQO2*g{{RKiwP@g)D}A$W%D~tu9o_vxVkI z-+-+%+#b;a)xf|+6y6FM(b5c2}0_h~`hz)sH5&#aw?}yRS zr(kj~gHG`o}d_J$j!6 zp5#4uFPlyh<0g`R<$e4un_--7{BQAb;{skW!jw;lTF7nFjOPTqFt8>f6)Y^d!?kTt z;lEz}#V5ZB;;+v<#v4c#^HUGhiIYlK@b51vlH;fCiHq(VzRClUEej@+b_ol9`&ci+ zmKze~c~(SYln>#O97)TEUOuz)k65d^M4bIyo!^!7*Gd1!bg@fM2T)r36ug+M1oIjv z!ll#9pvj!&aDFd63E~&5Y7<{^?{o?) zb>ua_)bYYNJL2~+ku)wzB%4+2$PT|q{>x&)>DCsw{2RQK6msH2EUdiz@qqu*nT43|9Qa(`9C(3n74%m3Ed)=VM>z~|pt6{`H%7Ua>=y6lW$it0EZD57Sm|R<(LBz8i z$WRc=x2QYRc!#v`)ZLZ9hz8yu_?c6_?hZbFydwaclwr}qi}3K$$1qVU5>9H*1{eHC z0L9KrAk5JS-h6BVtwsnys`&>;0tTE+)xV2Vwr=D@AM^b7969psxD2_Xd!FAp;wKON zT*S>pZ{G;T*4M7whmVZW8w}DUP=tI*csk^7zCGPk!u}h5UV_Ccbv8RU8zb zz|WlR!*70L$N#tWpE&PqWzAyaIs8YJ{e0521m-TtFqu-1fVBS_e=)1@SdOsF{Q;NaBM8pG~ zhzW3FFbCnrOCasmMbLibE%+lC!tKEt@ZPL?kPRZt1V4L`5g#(!QEd2h0^ig2N?Z{y;^o}8iM^_&K||pf zv9rcx$K1HJys2{(&$7e0nM)UO>f4RP(LKC)g$s3D)oaG@BrA9~^O&0TAq||wa#MY6 zS-N|t?*xh&Aw&{VVYKro4U?Eu#cLt%Y{Zq26BRealMU9zp~4N&$^g-?1D`TRgP zv2@Kaek9$`m#5Bvk)QNH?x^L!Lv=nkTl*MC{bgaFOD-t4+rkw$z5^{en$TaQ4o6%I zcTx!K6t~B1hU0b^LC-t)K>JA(U=q8NE5H0241O5~4BB(JuaEsf+wzrU^Y`67Bq}ExfsRe=GN8RP$(2n)HD)r(p2ML`V9kqKTN=( zTZmt{u7TgNYB-;<-xl=eo~S9f>do)I)X0CoqR$6q?E^)zP29Cv>&4#nn!rQrn)u#Y zBk{C^?3&0WBB1QP2P~=-bMxN*C-&;Oz#aD1fp}d$m{Dj5y#9U=ztYO%KDoOCcl8q> zbn-;7sUtyrken9}m(v4f->bmXnq}bPfzldLc8gq&r^5lXxIddn5ZjgNcyFu9D6sP6|+qkOKF0km)A&~2_inCl2C2mc;&vi~%4sOuZ zT&MY<7`bh6+W2Ee&4sxpVm(bOCnwz>;`)vval>{wzU59lSXz06bJKC;tL972kHn?m zdgElEfJ&XlJ>0};{Ht`Ie_~(8T22_a$5LK6`X$jh-*nT2fND-b9`c@qkmaA z_@{Rkc(>o?zOMg|8@G7{xaD^Q?7iv+l15DgH_xVkDBTO7eRCHl;r)P`k#-Oy9m2^h@sdP5gY25Pn!kt`03&AVfNL!coUYgutm%#58sz4HOLwZdh0VF*ZKr!`tbZ7S z1i55x$@lE)EhjCiCJnpccw)XY#mlE2lbpD=_Pv0~)Lb#oOx(c=x_b{CSlf zPOYkMYD&6ZievZw5(joSh{cWr;-!ZE00)PISp7_~&bdrJrZSSh=<`r~c}a#?IU#{h z^orwytZn$IqgU}$u^ewK{=@muwNA$thVy{~3jBd-s@!_VPHy<;UP%SEnjbS>p8wIT zBd$#965n5BBwk(rN&KujkT+9H;cqS;&R_kqgx_f##$Src;MH5r_;U`KVrxGs&{Xl3 zWA_(xrsi9?C6BwfasN!XecI=^!I$5hepj`MYYU9|iUS_J|M6-3>BtS@sWsW+Cz}uO z|Ke2n$qM<7tMcb@YqAQsteO8fzG*tQeYHHW2sZ+;G8W(tnGWhyg222-*_^}eZ(Pxh zNubZNf|HK9C7xoJR`aGsjobB17Q}s)1(luiz!eq^0+e#V$KYMS{Ui?-dfxz(o^A$5 zO9Hq9gKgYj;sHE^KXZ}yrTJrLTEzV&ce#<$Yq)cY533J-CEOO*u>h)n=BizuanIRt zZjUPh?*tWKRx^W}#Ek*r=~+NDbsP6O{#s4WhH}pMiar=R{zT2fnj2yX<4|lrD@RO{ z2gF@FZq!(J$8iaFT)ETtZTXv0llh`&C7jmm72s@9U(LgX3cO1781eg6(KWL2bHuvl zisH!MIpV=Hnc_g{WbW2XFW~xTIq;Q{1K)qQaFbd^oXmEKsaeaO&q>^-T~mX$pBO(1c;kO=f$(@AJ=RH zw!C+&KR-~PAg&^@;>E^-cyP%a@vWGmnv;viI(et@+?QJcK;}aiXjU2p=^bad6fcBk z`yJu%H5xGB-f2+P;vhEjjO3U9uHXk;Zt{PwH1ef6x%^P&gM3+iGQa827Cy2mLEJYj zNWAgv{hDdg*<8}yv)t%iZXk1eEb!SR=C0^{b2<=F!a3T1702+9zbfO+eb^f2bnLeT z1>GtFQW+eWqw|cjPB(J65$eSM++Ho-d&W`RJHn1{`F&B0NG|80_lHwEX$^uK6u@v} z8_xG+H+RuD&_3bZIR56C#r)M)5kLDv5Wh>$j8D$d;A59d@pFc4swq)fCw}lNjZ2>* z5A6DuaXv4)xwrqCxkm9KE~UgBj2n8$wUP`dNoy#AQ9MOTx?6`c=VCKKqtWd*VgLjqxI{%T|-&(jB~cE(Xpe`@stB z{F?D?Iz*-=g|vDUk*PNa$>@1H^mfxH@h**E6d2fz;5!MsfA<6|GM|W#R_J4+(H&^( zfpn<7aWl>6?WYf$$FW7WHq8BhhR!>#raz418rpl42BkDm8tR_!b5x{-C?wfrlVoM2 zR2o!7TGEgfN&Sqv=ldKAkx?WfMfR4AG8(`0-~H#_KknO;B}IEqleCjSY;Tt`yS>{ubtaz2SES%m<3i-a zkDy#~AT}yW{ z6FwG4;k0G@(0R%(yt{ZQM*X!wx!$Yv`1KRqI^T!Pgahr&qJnb99-cY-lqS)k-LAON z`8akwx{B4#-%w$LuF#1b&HuC4<>z((#-#^Nqe<6mfl=iLo-5>8kHD#HVe2YZ#wVPW zaa+NjH8NqHEiz#xHK4^E6)0_F$PemG(zvs3%!`!X0AP9sq|uInX{VAF|&af#NNGKtG)nx>6Ff z@W3;=u3LoSxLJ6uNe`DB=2NQxHCl38i^&f;N-$gs%mccK`IwzVDfA!1ZQILa@ClrS zkkpQ#I#eyOne#l~#pz#jpkFWAQc;i!ovE>bUJhxcfeAwIDd{(LJ9LI_^hl&n&sov; z)dv{0OC^LYyGyd$a>%svLx^lc5mzTuK(}6yMi(UwEdQe{_|b>paUX&0H0mxl+DMkT z1iO+6uO<<#7++HM!Hrz3ZDPFF*)eV-W^hBShSGC(TPax(OMk|1pog;}>9m)}Xvg^| z`p3?dS}Ykw$FAw)TGC!};chp$&C7pq`~C$A+zdDRV^%v?w6&Fc7c_&WS=-adD=nOb z*>UboC?jM{sdU)K>ok767KROs#$qW=Y||Wy!MCK*tGbzPwpvG@IopW$?{0VMv38`& zXH#iOz$_r*)aQqkp{-MzV-YsV}Ut>F+rzbS{ltpnEx&9lO zvT_LPUhl$|ILv0VtEaO?IG!Ce`U^E*!@%s{F;2Z{KBlcI#$of$Vfw=3s5yT-zRVbp z2V{=ZM@r)fu~va)Mpm%=s{!1Ov4r2kHRS$fI?V1FBkbHOg85KI(0tTRx`N}$3ztbu z&yqvbxPByB#ZAXczZRlzjt}w`qcO~{nwB0?Aj7C73=#Oa@L-kd;Y!na^tBZyaQv)co}M+FX&nJSrgjnUuG0)v zdq=O04@Gym64ZIqh}T=*VNG8<#wTCET5=pm=_g`DwXg?qTN9(wC9v)GSZtICM1I^7 zJod^T^(P15mnwe@vNT4mgjMv3UKFuYGlQke*2CGcNg$q-1IJINz`46iV1ZUQNgv)P z&Y9Ink8A5-_j*fguo#O;`;;+p^D>%oW;1y-MFVUTmcq1E3E(_A9!!Jx!+4WucqZcy zey%N~B-4WUYG{y88%GlL#SfSu10y2Ul}L8IKS@%|TgWC`8CZLABzP@SfP-Z%q?(n6 z3w`F`w?bg{op?lE9_b`CtxaS)n@${Fj3w_X2bgj1=W($*m2}d}r*x|0HQH2vnATFxipt9Sa=-PowsE#wC`mllmt-Y;$!UWx`XVDyK~q%Bd$Y| zSq^=u_8LbQiFn{c_;DF~c&+O*c|S*i+aTmN51It;gS$Gr$I^?PBfFTr<{iYA*a4e# z_ZN7CSV7*TNLn&>CE9(si2G>^4s5SOTkCi@5Ls~^+wKmY;4|TNH-yD@cF2*ZQ*5I))p;!9v z6TN-$6mwZg8!kERfrMR^!k%>pM4A2s`nnU$@~a^H-3rj#d4+6RwvQ_-xj|=^+heo( z8g#p~3X@NY&}HEbDj(#a-F=E4 zO#eea?RZ7Ye~PG|Y$;PX=YrtGGlIDt0B(!TfC?Go1Gkr`RFIf63c_~RY^!$ z#)A03K2W`}45CN9CFbj0iS@l1+)fV(WLJcv!hvUEyV8eYtZ(s z;61+YkISSy@KBf&S~hOL9<~aVZ+^o1^>Td9UITtYlM{b+z?MInCB-K{K8~EzOB$aw z3zQO-*)(5Q7A5@H>8^gP|7aK1roR^!-d6$94@rR)UWFA|$~=xY<|F)-_|?DeVv(CG zs=RX{MR((2Q{o#ikW^r;7s;{F?|;GSpY<@{u>~G)P9jHAMpNfJN>}RZVz!SR=2yR> zugFgB-C1oS*I7*d>=+AIriH+*(6z7^LP0n!L1WKuh#ln%6$>2TJTVc@n?J&S*aosa zZkhO%`~dgwzeIrhfr zGXUlad=jr@DR}mN3wb>#M>BO}sf_6q+LLgM``0USUTmSk&23QU)GL)3@so3m?v{m| zk3}KfA|8k7A(5D2a0IulK8?yh?_u(@A87Ef3-7+WkE&(YaM+7_bTO~MU9)3Q_4`^R zQL7OvgHW$76sLt0p#G&&)D75xBlcaUqkYBP!`FeN|8xlax-D?IH-3kMvtB|-Y#m(9 zPl3KMN}%X7gAg3Y#C?f%@?C zf_pUyY<|py9Z!D~_2J&k@Z%RL_u3dU(%taF*AeJ-po9i@&87;A_H%0r4w8);p71tD z;0nD+f%7|#z@7h2!T7oou#P(f>oo+{`Z8BI+b97JE@Mc}8FMaaog%GtEurjoJv7>& zj?uG&D9=iYhg%6*z`rrX_lPxkkK6`78pB{|-Fm=fo8jWtWgyw65ACDkNb5QsZohi2 zzz?>-*v55OcQYEpYg5s-t{63bl;FVQG}Kzw)(j0nqZ3(Z6>F{%VW%-=CCVVbBfREMh&|7VCAThB5=9&oSyWenDqj@Cj zK2e)B*wqb#PT7#4@`h~O*FueC4k43v3EfWIz!z1QQP(O7$K;%)mYp}q__!FT{e-Zv z{4*p}NU#$X|3DRg2U^+v&^1~U>{2Yrz9?V%Zmz)Hd!&MU#e=l#Tp=Bmb%PrbtVG&N zWQ8u75A11N2fodbP$7Q+RF22P66NLK_TCOgWLQ9RrLw@5PZNBm!p?{H8uHRuf=rpX zo+CEb#m9!u7aV<~MKg$qaeBCjgim`+E?P;$>d*Qx(`yPeh6Td{@8$61&RlRmA zmJk=!B1R(Q7dLLj1)6nV7FWs)$5WO%xai?SYA3k1R<3fOZdK}ZywE9|8hwJMHyfeh z^L2QzJQI&^yMYnpJBG?g@^a#S{5oX_FRSne>m56B+Re+t{@#DMXrma{gg(Ty>}Cuy zJdNMF4&(E!v1q>j9p(7%L{sh%%$(Q;A1^4ecC}ipt;Zi&6L}gwJ`MoA#55*XFBm0b zt8vGU3%I2GB<`EH0TbgNQ0`PRF{(>~BRkqaA>%!)efJz@R^Em0_jBPuwkr(Z97V|1 zey;t~Ano0%ixXXMQz_n0ojtv!)@U-$uY|u|ar^&^*Q*bPJ1y^Iad@bs{zJ+GD z@8PL~9XPA+Gs<|s!S^rTqDJBnzHqo4zpm&jzQ0k6%3&o~p|Jp0zM`C~q&rwsF*F^M zW)E8Gvb*l8vd#Q&7~)(3+JC;0nrrg-HKG{RnqQ%EP9M^?4!ls2gIRA>aCg#q;vG>4 zO(#D>1S7@9Bn)APNOywqyb?GR4t};cKxu?J%xWtlg*z`Z zGoqWg-kUbmD$bOvEmb1_U5O@1hdvPb?AV`6 zRu+uojHlMqiF=>X;gT2VeVmO6BxYwacUHuXlM`3a(|A68J=RSM&-eSq#zId*lQGJE&AG#mVtgGxg^ z@T{_+J66mTSgcj(?DGb@wcg^>6PGaYLLmN%X>!){ae>|YDnRQ=7x;Uruw%OA*mT!- zkUgXtwkfWMKUzY)`l$5-S%F20+e2u0i|() zAa{BNbU3U8O|vCnFt7wJj}3r@aSZH#3s7xl4)ae`66qgDN$ZVDa`D<|;?`+I3WL{^ zh{|db{N@4qQKkX0MKj>7RuH6~o)5>Khr{>TyI^gX7Z^30LPJ;|8C4WP_UbHP{@t^r zvjX$z(mi)*$fOtaSBo?z=Bwc84Qd#&O&!1IiSR&p5YE+Gjq}FEp<{g(E^NrhyoI?a zSDB9{^5?KoUyKULwK&M#!@p|17+$8ztLf?UAFdklHruRuo6F<*@OLBmo4LyTw{cHU z!!;NyHZ2iZ%P)kPoiE|-ds8;rV-oA`?7*f}YOwx+H(~rjWymO(Mm42Mta>2q{#mQ= zhlcm#WIbW``pq!>ef$hLKk@)He0~F!)79Df4Z7@)+M(>~Z?8cA@PDBEaT#<8yJ+GQ zD#UAifw+8+E-gQ9Ky@1KiI%tSBg~LTME#{aY#uTRij!A^=EhhkmCOLS%oDKH_!!*0 zlm&An55ouboiMbQ2s4*oo#!(0_o-}IR1sJeh!+E#d* zau8A%ABX>zmBQIgWndzi3Nb$j1nGPto{^i$tjl%cIRS@h#lv6pc!dEL$5~)?m^PYR zRlukTssf@_53BD=qHX$ZTI;NWx#)wdL&C5)M&P8(D8snn4fw3)EtV~k>~c zKE1OKTa*X!SL+|_nAeND9DDH+_TbjrL-XxOI6wEPzPpdKL#ECA(pEb|`c= z&4az46<~~E04a`8BaP|p%&deP%&(0(q7i=ENR^fetn3Jaw6R+u=fPnZs&pK7?}`Hr zxga?8P!T@FCz6rj9o+iSS7`j*4k|C9jKpIc3QisTI?zH3e|A#-wv51}kwdyc8NYn+ z#DfC&qV4l(H2%|omN^}$JnJpa;$EUr^?mF~zKYE;=dejX6F&)a%n!THW6Pxv7_(T3 zSG#D&%h&>6`oWX``DQ8~eAb$m`PPH$%|emnMTkZ1(NJ(rhAm8ESic|-_T(QsHvNST zt7y>z;j)%cnRt}WnVf{lWiQZE?>B~4KEbEy>3COB4aaO25%0J05cB>Uyv|Z(H@wwm zC(IwlMlT-9Zo2sdChMPs@w4VY826Z*WJVCl{`cadU@F>s<`d)Ab%Pn+l0-Cq-6wy1 z6k%Sj8R#?qU^X=Zo=!Ld+oxo~PGL4-^5HBr&n$*RsZro@)fXCs>m#e~FL^&OhD6VO z$6W9;CPmhD%q%r$(j2P}OE>z0ioPEVYHo*ZOHM$?_hYc=^mcfE*%V5g%1FEBHqq+i z$<(f22OX6}*dXjCd+2%MvXi4x)#ei|ZoENLPyM4WW__WVd^6p%#2BBZg<)XDL7Y{8 z0;7g;0z3aEK5)K=2Rd8vmhe0FoA(=U+DY)KDhc$(^m&7!I()dT zD&Jio$45Qv!vF^!<(@~Nve!$h{qP9cF**hA*M9`#!|H6+1%cWAQH9NI{th!TGGP8- zJ+aNIq}O+cqV$#1*t?_}qYTrqzeN{k?5(bO_eTq$^(?f%?g6Ps3T*BrH8x*Tk&T)2 z71%F4Wc`kUwck|W^c79=yjbuFu8XD#Hac{P%ikKgRjR~q;3bjz5eWXD;$Y041ZWv@ z3{n@Az{DeIVAmc6J^Mqzy=M>n^6>*l+Yu0C=nRL}dcaKi=OjwGij=(;xW~rzWPNx9 z=}A0KE?rUtW6l;P@3j;dxHDl_+b-C;aT7edH4Z}dDuBfC8|1n1KSt(K2Cbd-k8ZG5 z$8%3@@Z`#QxNtv%)w~Y6x$5A~wZkx4{WGmvp^O!a0WaCDMZ2OzoU)?=*Qz(5VSOv! zdE1K4!ylm^zQBH;SLjpx9L3{bp|Oo5e~N1HYuV9!cZm%js_)3_+;-&kj#=`08Ol6w zbRYR|KDZ)kI(g!L03J2IhiN&+>>dd#)+~7xdyQ3LZ-?B36Hl~3w!oQ6ECHOx)5PNH1ATB8h|VP#U`889hJD0+S9n;eCEJ-deE^ zPnylaqdq?P=-NW;y+0p)8YbZx1%GT#+l#k{9m1lm@wjfrF+7)1jV)(dG1>DiPCeX% z`85iBk)j^YnHuozjYj;lXQq6>2P1yy_Tl`9%_I2-s`~tvdD8qO!w!UuT6Dj+2D5J8 z65p!u2mL|{8+S;u2}5;RKWTk7;`;K_?# zIOpj_I{(f@lCoQP|Ljwcn1376Lq9{TYacA%+XEiK&jDq{FnMeSlnDQCnHtWp*FqNB z$Cr_dQzFR3nFq;?JK3b|*>-Yb-dPfrs1Nh3Cqlc#T(~WKZ<~i^!i2nB_+eTEdVh0Z zj!PJP8CVayhfjvjk9x_xM=Qy!%qRlpXBp!Y_2LO1e>%^vup!a(5!u>l35A)Fka;f^ z`u1hPgT6diG3*H3yX6Mu>gS35wv*yHubsqN2t<3_S1-TOxb#ifAa``B|G^W^KZc zk{HJ?5xMfzbQ-@zX*$0hJ$Z#NmOp#al8*|L(V;1 zda#Mu_x~VCy-!I>&vz1DJQ_+QT%b#R8`wLg!WHjhaH-@JyifZNh<$mGe=ZRm zb7zBjjVX-izD#brCNhCep={GGcomcae-pF7ZXh1+ zjrW5i%l?rOKP-rnrzZ9I{G86%I}&T$J@IR&2eO6U$RlA`A^?qFV}@jD+iI0kmaA6$nrneDe--&M*O@@=Dby# zIlo5Rf}j6s9B(wwoX@dS;(Y{$Oo3wp+O`d+V^*(%meQxN;xl-WQ_t~ z*W|+aVOikOodnNHqoGbM7RE+}z?*-rpx&wsT6fC{^EHTQm-aJ(w*G0(%xZ3g`6*7<)R2CbXXsPU z1$5r7XVmPf6aHNvi$AN%@Y{%1%xmn!wsZ14d8o{{1gP>7QL;Q4(u-2@uh9KyBXV)K zFh=DCGG>1Su8)wDp$#7#>ctOfoy{+PJd2mMox)G9Gv{yodxi_P7@*>=cSL$u4fv1I zVb!D<)^ny0JI)K(MhAUX>f3X$p1cKOw`&s9_8;`1>S8=rv>va-rXg67g~rNcZO(Nw2^>nCupu+4VI!UV9f7_%8%Lb zJv;?Q&kTg^bG#sM!X#MkCJS0Q?ZiDo0%jf4gJH`xAv$(AcvYFedt*(=DSbkw`Nfct zJK~wu-DAaxpVx7#qTg}hRR_4;I#o3nI_8QR6Kpw^$jjWvj%s==+Z!`04xw0l3FTuy z;|oTSpDd@z57uk*y;PU~SgX#z50dBWGUWNHK_z}si3+bFIPVT5S@4tkoOu2Q%ZHe` z^WQTj@tU(t`3B>D%pIG9_qqb~4Vb%PxSTQ3_a>OaYhCt%Un(K%`fm z7WM4Zp!(nC=$BA$X2X?>MA^UsrZMy2;M+uyeQ+8gLOICM=HU&gf`#E(5I7hM-xBA; zf+Hj0)|^mf@KDTDs(PR0Od)cZ1ljkp~NBDd=&!M!ZaN z$e^u=_{{9)wwHgP%gkAHJiQY)E*89@UJa;!;Uxx_^kHh4B47Jmi!a(Yj9;oSl21~$ z<~O{y4$JHToAM!ryE7!zhO2w!ZVK^ zOZXtp94H`<{%V6>x-EQqFcvH}4}%f%W^nB#f$<;bL+h+ah?vfPAm=5t1*MQa>BM6U9ArdFni5#}aa}9DwL|ul*m_OdL$mjDn$>vaFIQxfz z@G4(0I28gqK3hQQTNpHxU~uPy!12OTDCnFI?=1pgS%EwBzZwIJtkj?&^(o;O7Lkwj z#w696t7)!};@+K)t_SUiv(o@$lJe(@3#C|aHkuf-WKPO3V zBFX#vVT5TuLUMiX5!GyE=v-n9DaEFcn_~>#g4^N3e{RqeHv&#K4u`m2>7FG-S3KoEEDp*NC^;30WYOpmV+**Ok zGval&&gaVvXlQmd)hjc?9fiAbg3CEnuYZA87+HSkB7Oer=h6Itk|p08Y{QRX?f9j# zcD(TeJO1|u7oN*?=fxAJ@M@Ya{F6dE-cmxBkK1qu12%c!mA~2~Cgd>u+}j6x%JtYn zktOSL(U#3oG-eZTeuv9!8DvPT2ffh`$jcR)45$rqkyYcVe6b^ayzLve`W-KB4p89c zyX(=%V;0eJ={P!Q$kDa;3h4Do0knhP#e83In>3iZfqtzp%ksSrGFRWjzw|Dc5YYwc zj?X|t=N6RZ6hZ3Vo#3G25B46m(B(WF694GImpW}2=b;Kieknk2Kp*+w$CG4*z2uKh z6e)baojg^TMrx;AB##?(q4GZuF!x*z_l+VUtS=7M2kwIx^2_0IhdoS2C3rjWJTct1 zn2dAKB6U-bGNaOhnY7m_&K9?#xsSh{S9%ed>Sx%qPKF<~ zWf)JsnewmgCi2>pz={23uG{+ z^9w0^cnWy+udwNb23uV|ifuV+%x>zGXIne&Lu*F{C>cxx)1h~WhrBy^ep{Is4gbT0 z^%;;6tJjblCoIYIgiMi}QX3~(l0r8}+^14w<#GL2Ra`f^l^*i8q+TMHxX$b&Peukn zxmzNv*qaX*_WcKg+x~;;re|R2gOji(BNxh_ABMRr4#2fJi7@U+0+>CEg7|_pV4po3 z-gr5}vJDcTn01Ow6n4bn03m~Kyh!DOImGa2CYe04i)6l*gGtARgQ}AjWKPhB9z9h^ zbA3zr(Vs~7=c|NR-Xb#sJ`kDgUu5Cc?}Q5!SevSeWJiSoX>mKnoj7rUI-NJcS6=gR zzgYs_9<0R6>DMvkpU@XM*o(uLOY_cxf5PFD9#7|)@Qvq3^9qHQe5I5%zvk^2zTlYw zA7?DXhZMA-j!ZtPJ{yh7`ESJsU3*DZz%~e4l@G0P6)^916%?H+gWvUsK~8XbsCQdI zkKkISlB%F3@VpErYQw~AO~_rT2+s{ALGH^fa-cqvMEfjdqW#r5cf}iA*3iq`{j4Hx z#CB1QOV%wWYE>+GUh^N(nRkjjY`#HKyd@zaQw2_%4ue*c31GCw2Q;EL!pxEJ5O*pW zo(k?E?}c&jWN{SKUs(OJ}VIgeb-$srS#gpfZ^_7dYiNu+Ade`HQ^ z1Mze(CYryBh^0#gi4?ku3kuc9qdNo4kn~f`s=uX7rSfnh(`8S-EVU-JQtL^#Zx}i9 zR+sD_DM8jwv=CQBUE%f|^`y;020L)-3JvL(z>vebcqo#=tC;~fu6`T7Qa*%od4<@P zcOJd%ujAY2t*CaU6YtBv#@F9pVR(86#!tD8J{PO;r0;RunzRpBdibI1NE5W*_?;R} zI8R5c&7=Rm34Jz)Np!!SF|DiW7I%9o5yiGS#P(P!aTjth*-^v6+-#V@pd10~GDg9V zzbdf(xC#X8OM|Ms1o+o|C+>S>A$j!((7mPu3O3p>N_d^$W(Grp^x)V>HE4LD414!$ z!Z3R!7)(@y$*rT|Q>Gov8ap1O^6lY^uycG`+XggFSc0ObA$W#q!s=5$iRRy*B&E88 z42)|e@e8h#%AFl#it0^L=6sUGzpE!Zm5Yg6oEO>suZdZ;M~!GlPZJl$STWTf^F<#& z%n?7IC`lgeR3rHY2_#lamee%vCKEs0CUf*u$XU0SB6h<$(S(zR^m$6K5QO(1XVXhV$$qv4474lS8@+v%)U6h zlz$L&J>oEFLI`f7L74C-7++4EhGV8U;d!H(cxk5%+U+*PidY3KX}&{`MjoSgS0{4i z@(fdY*@5)mC?@x{>WRi9NiZ0$2-@*~Nok=JES)U}23w`UuT2)N3D0@ikt$I5M-9rA zj3LI&9%_npq3(}949aOj)E#x$GhY^ZEs;xA7;|F@COBO{x6p+^HVB5iw zXx}*o6AdSzs)j3;A7fGJvnwh{_+s>zxw!BB99%89$^7ht@XM~bxL9z_1UfijMxYIL zTp59$f0VE#;S0@*eL`jJ&(kS#Y4mnd1Z`>3qi%P8aD8LLxrh^^oI~F0i!^sVV}7Of zG15PV347{(WVJ&g$^Lkq?67GfWg&v=FHi#NdWM2rfg$J>nn3P76PRkM3ob^Zq4W1x zSoc`y^{umn?}?^xw%7qY2JE5J$O15157=a7a9gDSUxjX@tNv>;dv7yo3m20WQ!0q7 zkl}46$;6?3FNyfIiwxfOC#I=mN%9VLvO7tSSXx>Vg+w{Bt-6`x^DVJb>fm`rHaJpq0 z)5b}AXvW!nbgbVA`m5&-^(}i%OFl_p*Sjb5>V;9LU^E<=#SC8iI2xbKx5Nu#H}q6A z!n{5=bZaxjZeM{(DKf)AB~84OWrG*D8sdgLd3lJB^l+2lrS)PF-axCtYE7 z@5y39jGx|kL}``cYmt+eqcBE&{WI?=oE2dHfzv5+gEWTH5PIj z^t6Gi=)TNmZC8@X2lbG2$jm~vlLS2>y)36zFG|nQ0GVS?v{qcPC;k%K zE{hi3lwK-&nRAT^_ite4e;!XJe4R|TC@&(eYcq(=@UtY}=n8o}w2XYRZYEp5R*6{qB2q!p@aFb65;Er<+4j7Lbo9O_5_{j1Vd5X;nhKHvbzuhh z>kL`&;~`-N(#V5D#YE?8Dfx3}8%b18BU%Q%OaqxqYKPd7Q{RUXR_6-Sp0SJ>o>j3%*NLg1aVKMc+kMJnpAlb zOD|nnMd#j}MEfRer6U`nXhX&!y0Rsk4$57oXM^f#Mc_GlZ^jw=L*@*9PueIGb%Ofm zmC>U^-%!Oj`83G(46V>CruTbpP#?h`FltW@-L4-?e|(=y6%QVvnwh)k@rBdr=}}&E z%zw%BZR|2CW*unU)L@F)GiZO$M=spkiALmo;XeCq6i-fhQZvQ+ka(O~wMgObXy(eN zN~UL%3%Q~fK>8QSlXcTakqz4UWSY=5KmIw1>|U5l@*i&{&vhv23^_&?9NHoMPKPw@zRX;58AeJIeVOG;{YBkt=ZGU4Uo&Uzq)C|Zq?+{s`AnhfN@hjpC$U;r zl6dl?BGK-tLm1o0(aeBJ80CEJgQ!nNv8{b(Xci`Bb2fP|2s!LNir>uj-m2-$@F!g zAr1RJo;F*rrX4-n)cagM4Jlkg8;0KDT5fm>43}ZliO#2W8(wl!kK8#`!=GH_lo>Uz zYqxQ2QcuKTc4mx6_j~b&OT)=UKVf&qf3E1HJj9+fhuuR-bF%>1d$6<1?ObLUuK=|b;f7XFJ^J$Ezyeu4@4iEGZ~*@4K*>(g}pe3 zBQ+Bpj)>B2J(z;#>5LtbX5Q>LEB@W7D_&bXU6k6eqvqw11EL8dw}>^v?>LLf_K9}I zUKc@KMU87)qSLvXZmF=4A7IFCzQz^!ku z5Z8r%6)E{B(d1+)`un#Om0f?B(;6eoeJC2>3NVf<+I)bkm~n(l{+G-hYB{2I33N z6&0?^YYdlAvViM*I9DupyjA4?vqvP|Bz#^oD>@`&R8#XVfIHV?#qFy#iMV0x+;>9wfnG}s<%m>$BqQDt# zVi$R9DBCd-*hhuxlFEaVn$IV(DR(1B*_ zhH{r5NYnHOqv%kJXPo{hOM2pf2OU`-!ZbYfpwFg!=jt_u8NpmF`o<}P`!W3{XDqEo zHwGW%RGn6Hj@5(WK9#59?CB9yp(cuZ86w9m)vV=q`%GZ&MjaIe++4s#_M19~&U;rg zTT-d!bKF$!(P0nn&5N=V6AzDB zB0)CfIg+WSf}7=|J^3{8GqXzL2~+WFIBD#8$t<1M$_#3bBb}@*c_q&?rBa@ZrMo-X zx%n59Y#=F??5<_J$9!Op&HlsSmJ;S)_BF=V(}}F<8_zV)?Gt}VS>dd4@+Z?Yd9S$X z{#eoYr_aSpmt=@0_DOQOch6NX{h{oor_>gAdhc*Q8fqC(TzlL;Zzw z*HvddJ^br19VkmuU5r6-xgRE_uBaCxBkDyW6n2-Uo2=4eVWiDR!Mjv zj_;FZ_}>X4m9o=}^X7*&^IfJg7sPj%)(>^u+Do0HIEN3+pu-8~xBU=iMb;M%rz+5m z=YNUT^_&#F+IoTUw=ZO_m}!t1Uh{~#hlnIw*pc>uJw&m6CefX~k1YF~MLIuxBR!6i zFe{2D!J~4?qxc;pb&nkR*D37I5r4+ZT7s!a&ti7ij%S9&n202svN-4BRPH|aOnf6L znklwE$}HIXi}~~QCNrn^yr{X&hUt6yn%Ve3;7CrcV@w_lC*zD=$qt<o4e;a_PM^geD|F>g-m~IC$Aq6SOPc@E@DP`K zWuT8~FI}H)Kz}`whmfbIAuHn!)MRV3!|#t~uOBvK+lMmj%Zrxm!XQ<4g@QJ#RPY>T z+Y4O!?FCS)qy%=pIi#GZ(}4KM_knV zkgAW{M%OnPk?(69xA2ji+CuHzY;Ui%6P?Owu>8J)1y;stiZcgJ-u0-a#>~RaL=&qE2da_cOitU@eV&ew^cX-{8XK zwMh$INp6UfMQ>G81UFsVe<>^ivzJGK8-?w%Z|9L0YXHo)G*qwwmHKh(Z=A`&l} z>EqULyzY1uuMfL`+YDPUsa=dsss%XdQyzwdMq_u!W=v2Xi1ipifW(+(f~gqeTwRd{7l2`^tA2E#P~mNC;wqsoVx0>@--dBH3i zoBx<9IVqv@rq}f7SOrvHuY%WRXH(y6`>59g8M4K`lT=-Ggo(dr!oUs<&=O|WB~|W_ zTi8WTTvdkD9Yf%fa|sC^S0UPc@&Q%&Zic-Y;pqIQ98h2e2z52SVm701b~k!lnZ~7H)$t!s7AaoMJqr_a1i`b)oq( z9#^>M;4SBa`1jKRd@DBvXVzEIAUz|xTwWT+IL1JRb1FFc)WMWLZ{d!|3vh{PfcH1g zL8lW3n-}MRp>ix=|hNkP2)Ml(L! z>kbZ@9YV*;DtO1RO=NT}g=nsd0`0A0nA!3LPERyqQ@4y{b*37zdZ}jYw(M5OKT`wW z`ih`noujZj@t8bT2g8=?$i=o?EldoIYK3q zJ*fKFbTY(F3nu8U6nb_iz~^@b)Nj2Ftqyh2A1(Ny?T{I>ZmuFYZOBkb*3=VXY;wSrN21{dqMB5b;4V&Uii>= z1=iL_qS>W#j1PQ@&i1nW*nCs|-CDvwcbvjc-87%4++^Ory&JD99>JE|M=&&PBnAvy z&DqBNAsu#SprPtJoL7}+{hgHA(2FYUh2@s)Zvze1s6HRsR-A!34*MYa*-+4reMS6N z_Huu$XW{7UtI$R=7Q6RvLc$!!!b^uxdAlOc^P==^=qtMM`3LcGHI@kFY{k7$qF#V9XW#@HMk&V71!fR;KoP`jvG^ynl_+&TfU(rz}=oBOf4p$;vl z|HbGh^1S+GE&ls9TmE~6Gaq}5;iW?Dc!lV1xaE8#7NodhQ`2C1G@m?F54>kak6|3)Y2^>?7xwyI;ZFyG-`*`fY6 zPdsNi2fgHc(SG`P{hW0WC z=0R9uk>md(!{mfoQ|75432mJ0`7jz;2sm`0K$+bbVxl z-ofvwZiyoG>DQw}O(+>0&qCC~8Bi;G6qef^gFL}WS?qipyd#T+oy;OgG}#2-+FU?s zcPz*zGEh3=3bAocBh8ry7*x$B9_NmbBz+t5uG*ITtohCq*A)@-N|c=9iF)d5=G6mhZb;KUX6fNr^1JbWhR!sesxFGdD1?wo$&^GC zQe?Vkts6?SGL@u3NrN&rO1+UGQxOrB6s3eTS@{kiAv zv)5Yx^*nDR?icnr$i{1Nd9myHO_|<8oiAlqCmm&~M|lRnM$*K*8RX%3l)ewSK^rWZ zN$y);skN-Wv|#24X=K;{Y0x`$=>zwE(u9G%RQI-jrOG-KcG%;R{=62j=1*4?=nO(&&ZG#2w4RXRw zw-OOfN1ybFX*{$WSCT(vLXvED)PV&I|m(sayX*mAVew&xtc!u_;=iI zh`;m-eoYMk??@?x%{&XmBZq*&8AUAi*#laYec*?JA9K16sDF(HbaVN;+g~Wt-^IG!CdrulSYe zi8gxP@j?&Bo!Dn-e;ni>i%UywaZrsR8Z-Vve){wO*84%$f|anZ z;0|Bq=?i!ApFp=|fAn_x2wUY!;j7(G$o=>P?C;B9S%3-N9ytuhs0t3m&;ab4GZ_y$ zwS(z~w-9h+nBdCRM5RhQ1m6*OVXzvy9UO)Ht`?Z$GYr`sdwloG1i$EuamfK;FHJrR z3d3b^(Zj6}FuV}lvYY*)Aodx4v$HAwpc!{#cRess?UGPA1P&7HymmO9O zVrjf^=qhbv_nZfi#<6L%Tiu72Gz5_56gT1*`q91#i^=(9C|RD^MyCC|Nuho=4K;A5 z>h3kPt851qOpT|=OUG$d)+yqSRtV4PBRUj*iKg4;3SQ<+YL=Z!_U**1Yj!fLXBt9n zpn__V);M{|JYiOCg60FJ;AD9x%o^DWOmG*sMW%z}$WD&WXa*C*MX)G&g6P3dH%Xq{ z64-c1A0N)1fSrDBn7UyGo~d4d3qrSJgE$hqMtb9^e_hbWM3@f@o`DJdhT;Z`Q7G&9 z35ruw;PyaS9JXcz)*eBW8Dfi@;`FdauRo?8{sudQ@7XlS7|%An1~Zuxpm6jHTsoT$ zUZ2t=C7TCV5>3*(m%VE zO#k-~91&@S58n<)?JsLFLD)m}a$kpk(${1E@vHIe!Q-$tlh|7*tMo5X#)5WEAUn3QSd4-Mwh-$=ppZqvyEKv z)~P<=JouwTweL;-ir5GqrVPMS&L`mFpgVBz(r-9Ar3In~=;Nz_N472nviKzXWOm%?h4RC!HpCAKl7kRA4_VNV0k zv7p@VyyvF`ZqVywK6^jeelqI^J*=>M zA}tCGr4sTa-fJmcU@{okKyFY-x8=H#<>1kfO}uX;z2eEbDhlm~+8Z`YvNg1+xuk)d4G#jJ(5)vM#V8W(n-T;&Gfw+)Sv6jf1r_CxOjZ!K~|K z#o~=K*m!|Ga@;M18m8n>?mQ_~sGX*c(4F)`e>YXdZ>0Nkhta424GN4_CTFXCOlP4d zl=fbOznU|-;<3k}^~Wgu)o?=eE9f0N5@t!3K4}79WD3a(ZnKwm&v|o)Xtpj|M8-`w znfjIOP$eFNZQBoG;K?LRy<&%IUTzr8S)$QeJzO}s0}>kV0X}&l%&u-h*5NrYP2nha zz}6Vn?feV%@tt5Z;|uKnHXBDyPr#DCsfhY9m};{T%e)3-T6a3vL&@;Rs2jd1jDgz) z3S9f_eZ0m~2evqJIeR&E2lJk?oGZ&X1lJ=jz&c047qZP0C$(DRhW+w5>v=6CKdXXq zVbdX`DT`fwbC=CZRimce0c8AQ19{yEC(Y55>AL$~*2y#ee1Hl&^z@fxj&vH-B=-|` zMP9>^HED2a8iOe3l~CM zcFD7w`#Yx{J`~I0VAn+W9;?I_tO$dOq&`?*5d#;0|8;n$Rme_WdBUG>o5u`<9c0h7 z3z)~u;~>+r6HnM(!L22WaAV$3H2F0RD+NABfNd};7FuItnl7X)I|7G$Te&}%W;0bg z#(oYkrt&xi_VCJCE}~lCn;XwYVGSMcZA`?^+b&{IL9FVJ2z?q_|%G8dF z?D(%rHXw8W&A@xidU$kY;GJl0VNDh6Kiva9zi)uSn=kNea)0dm*8*!gzJrbaJMN}a zD&KbZA6vNGncjyf&^^USu~bjzEUCs zK|egmO_t7$|Hry=nm}|b8_wt!+NdD9ANEhnI$u|Ga+cEwoDQdl(X2{-J9IUdPhi)+^T z<4j*GEIfS*YTta|Ivxh|Z#Fz(!}RrNibR8k%9yhk^5yVEa+&KgN|kJ?j^+}QL-WLTN&Y>I2PA(feZI3IyCmNndlZF}^AbGsG;|L)1c+@&58NP7rw9lrQ0y8(F)qImf@c%LFz!YJ{Jv8tQXQ1f-*hWxjTv|0mAN}MyibI+v7r#?J`u+Wd+I-* zoWoz5u{fnkU}D*i##bY4Fn@$0TK5)0q+%lsdszp6QiH(b;#EkW-p*5WF}v8j7iI~$ zhkz#vnD%O~BtK4_tsFNW=YQFYrf*jWcP2~7O(|n;=GWl#`U+U@S;>ZHPNqY=3r)LH z!3_9p{?V@%)>Su^w)8P24U_kxLqa~{Ux7C(eBeoQJ>*HX`7(cZs}kHTxy`<=6YR$C za_I5Qd{R_!qv_p)>EDIl%;Nb4_TYdV>CWin-&xv#>vL1)=r);R{&S?&k=e{}s2ww& zv4r&ohfwjFXY}UDQHoo8jJ5CI&q{0^Nprs%g*onF=O_5W-k5HfKmVvG=TZ_3n`bCI zzr|qm<2>)(JegFVt5f0u!SAs0Bukxa2&K2&;FQBC{82j>tJeR9cJ(_jG3PxTQn5u9 zwg&Gu%A;x1DX6j@4KBk>xtC!%tnjEc4U@aWop=z6(R=OCJ%2FXI`JRw-r<0CvMbBsm~J^sXdF&TzP4O$r9VDu zIgRi1zfu8@gO0zl@7E-X2iM|I=IX{k89cg7B4V}o!t%99!^L3a! zbO?5R_kh_Kl_)<(#FC%;Kzr;#Se|}^tICkF8&L-I;oedjvMipoh55(AF|L&4dWg+0 z)nNbS52cfV^T_)U&>8KKTvojnmhI1wOw)V7wyYS=ez=UTj4z7f-kg!A!Oxe`{1^Sn z!g4k<(sO6t@~@cnUkCb>xt6Az&jp>lk@)>VEtsU~;xDgU_%ZDS3m>aREi;nY+oZ3Y zN5C|eF=Q>vUh-d=oYs7T?I3I;K*wpe*ym24r4=Y655CFVqXmuXh7|C zzV`#L<37cre|B@hS)m^GHV(v^J9&_};~Aun$>j@!eOd1QU_A6V4SftoqSkI_2-nT7 z6!^vv{iqXgk^_D-od719cSO5(48J;+DYJcLi(r(sglXQsByf#`)1iF=~xiV6@OSjgJ9_GkAj z?!&-ROI&b^gCT=r*~yQ|e4}CuY*=^)l3ba?O7C|}ed}@xDXgMdL$1&p*_qT{HHBGj zoXwsN*5dwI=W>s(G%)R=K(^{#4h*+{1?NNjp<&?{&M|xlH)%>gx;@pK&Z$jd-@i}e zTgPUwy6INzoAej^-DE~H)+}TtnzEHXW_vluQ)wVN@*N(uguxZbCZ@XTKfZl>YNf5x zX#VEbRd6o3jc>{u$F3{o^RvAd!Rdy<*!;JXlRUNOx7nw1dg+I`6$Z;-s*trb^qGg+ zwIL7@zL^!4ri<*t;{?<2Mdm?@+*OIlnH!+m*Z>-mEo;`cbFh_G3jT zyS#_bUND)tel%vONe}r2`bT-UuRhGCVJkbDlgK~lqk!HfO>o3_FekfVAe3KU0dro< zf$G6T<~8OKvxv)Q@j>-$Rs03!S0Q1}W=7PKGFt*gGj?XP!#{tskB27G0C_vA$XB6vj<=YuTsA+?t_7Ce^u^nUrsCf@26%Ac zS@_Z4fN8c2p^>#R^yTMg_Bh6j`e-+^k8+OSdF3yZ8L1-I*BLi&*226W^POPzR8lQYm3qIY|5P8065LNzq2>~yE!0XG?VRxq+#C#Gm z-ggJF$7UHU?v^5{l?|b{afg}QGf&Z&tOX#?YT@zEUO2a?5}Fq2K}O?X_B9}jHP)xG z>k@NjyN&1DYLrBYA+oSITL~^YJmNGm){2&|OJs&|YSeOB!d|S3VISUkvDmJe>_o3J zlUTU3-xe3x$LFh9$(%NR^MKRrx|}k_gw?U*d8xe7LOFMW;a15ZQFl=S-}R|O$Q-i{t6@;??G1RdFWhm z9HdKkil(ekp_Z6nn)%0*Chahy5its+)jpZ^^(o+7v`x8|8CN)uPYm+A6>+3jI6MgL z;5)1rGw<8L*1ceCl4~CttMHd8Xty)(OidawZ!GoSrAbrj=dugO-f;RQbKwvC1lKHU zTrzVI<`{i|Fq^v&lW~I!i`>uF8!6HjUWdw~bx1AKi0oUGiE?7tu%MTc>+2E)kC7qj z^jm>jPxv8798hAag@OH!Lijj0?lRqE^D}?2am&82z|D1Re)=KSFRw}>Ta^OOt2P3B~#roh*0`4C*T3U0*Pf#Jdt@SBg}UOyVZ!aF5w`fDZnZuE|= zQmSST6c4h^r+L;m`w1I4B)tjT?wT039P@W;mazaerbwjTqL9YNnxEkRK&!-jY&!Spb36oY?u3ea>R9kn9`jf1g_#!W zytAQ>ME+5WgJebm8#JmPb&cp@;}`y7^UQmhrKFqxwO|93P6&jale;BZ7f*0aPWvEC z{}wp|( z(jwumWPz3ij*!_;7OcEaatCBa^GA%0nBSs8c6Ep`<)w49B1nNUk5#a2IsNW+hf?*BF4^Myw46SnajG| zQ@BRoWVmra23_Y_Vb!Ad(B3`~mMf&U+|#X<-^;ppCGPX76~etJaXRxqVa&9;mWqOp6+&W*GTQD}L(8QX zKwjKbMhv2uGsGCT8NG#9EwPMAnwp&^0U%y5qjV z(&tw}F~$@|)`f{AnyviE+;gnW%9^9DhGSdo^PYtb7c?t~@M1YYSeU`P{Qp^TAJ?%$@D_ zVzy8Hn8#QZ_ILdt_LB49%j`A+zPJqkYRe(=KPk*fsep*TM*s_hI5olDy;->D*JahS zt(|hTrsO`mlVr+dU#0N_IC-|rU6;i_IwmT3evd2FXyi^J{+)z&=pVRl--2i6~R~7f!s`0n@ITfX>Yt zF0gZr!~GPV`}RGNvtN8ya`AQ~`|@KQi#m5x6q$bo$~O(h3o*k{`dEZ(Crm`$V0*mz zLkaiXzYYh(tGSDl->`|UZuH()n7Ib%k*e1xR_cz-boNeegs_`Mj&^u3SzxmaiNOWh zJ1~kf#QURH!D-P@R=)NRyFJW_9`%i)0k;xJB914MBR+JcOOA$(ddA1@N`?_w z^$%~craxWj^rjHWHZqS~OnWSi=&`zl?VO_xv!-}p|AG=cqH+O!15V?v0)f@xKOXnR z*K<=-Q`rJ@Jql6XLa3fhx~6XAK2^jP_bY-9A9qw4`#qC zFmp$K)7bCK($Shc;-P_mzGjXloP z%1v45t z2UNi@+?X#LRm6Hth2KtyE;W_QQt_dKEJN9vJNvB&%IA$liU>!IHR-rjHxUP(orV#C zO%UYh#?6~s#>y*|sISI#_9I`)pskWEaYE)`83n3W1m;eg51I@6a()7n=w;%13|uoD zpX8Ln!9%i;@pv$s;nK}G;XN|P#FW&h8dBfC1L&k`HFLT@RH8Q}7XF+l1)F$zY;QHh zTfu{HLrN)Zx|RU*zJ2G+cMN8jRK+&;9Y!wpW^_11OrxjHqSxJ%Xj-uYtxwXTtGy~@ zuD_3Y?)oRH>wgd)wJHjHf}e1v{v;%N+3;W9WeK&f0hNT!q_3X>sCSnencmVTx%n4` z@3)&D-}|pTQbh@7>`>!^?1bm;0qgz_!|SFO zLD~=jHLHfgc^9GBZ7SlH_uS_@PT%F{Qz_r;yq5QUJyW6)Y5;?j=fIVBZd}pwIBrAg zKu{?KSS0vo<4SjNu`Um})(j2KDp8&}51+{DC+abomm(H@wVaI}r7C34gkA8=ezd>f z7t0&amt>uuvJ+pfv61>0Sw&PP3zAFVQ>@o>8;{rXFP@b$!;9aUXps!v|7%8HIwz1L z6ZW;t7Et4h2zprPN5cnpFc;_Td~JI;B+M*>n#&j9&eOAC_{9@udHv-yy;n;PmJDD} z_lGUsKbd;!Y-wuV3-+qRh`l!`;uTLnRe1KktifGZa>-@M8CTz}XA7&Sq#ctTHVV>%<*|5DruCL6WW$XXPOuvUS zmr*-e()xIo_+vPe9sGh9&DqI37HCrTcUyWla2Ad84W(1&yGX%o57}iUQ)mAu(q3sz zr7w@M*0N_@(}?BpM0c(bo;p#P&N7%wge>Ve8`7zvmgM{2YFa*ZKJ_?^rzJ=F&~4hw zeoorOg$+9mF-b?^mRu&B9JC0m)}4px&UYbE^9*DvZiC~GvcX;_2R59NfxOuoa8hM5 z+?5lu;ScwTOwP~X>?$2#lS~2>2=@T(sROardkQ{k_Q31smZJOiNDQ?~z%tj>m{Vqs z?7JKmZMq3YEz`iPQvn1Z5DcHR9oYI{2rMasF@IGsR5A|z)ojsq{&=j}I1;}}-h%1) zg)q0KFCP~_g?W#<%nnbGBb#UyI$-^rZJC_UOqY*hm#1EISh%8w+Yy-{(sV80Rqv`W zJB`gu{qj{-lG4Slj#sB+UZ&)dJ&6|Vob8Ya(@pl;|s+;VX?-W>HD9yWjErwDta=I^J_&!f&Xe~2=5J_=zMRwToi zkny+;wxjEw98|e<7DEqTNAo5rZg_JFPrb^(#ipyU%XJ_oD(Axjdspx(-!D?g{>@{+ zN_H;0FZ(rR8}Hr`1NRFJ(Ij>gj=GzU&pr0zgPv3@85D}2XAAw&H4L`ojTEIwkFtuc zVU+W1DS0pPqz&6G$o*C?+w3X0IbM6Qe+vuwJvV*$`w!E(67S{0vvdTOM(yE}aE?ug27a!uz)%yB~ZzW0y^Azj$SO5P-Pn zU%D`4E;UYEMh2l_w6K01eMwqG&z<{G>yCN6#YP!i;pmE-Tr8U2-+_Z?EyPxwfP->| zV!pw7=*k(j`g8gSS*;Ehd2TCO`HZy!wVuSCmi14W}Pl{CAh-&6L zaAbNQ8a7SG%SF04tnv@cP;Y`I4TDg}LKVed|H05PH=+7b4b&?=ff_?a)RJ*VfBjWx zacn!RWQ5H}3%v5ax~LL;8(hwr zf#z9f{X0fkfM;2*<*(J_2aR`4Dhqq0)K8$Md{gQ*wX$Eo;^~-)Tj}--fkl5 zW!mGxTy4DkbQsgrUL*Rv z+L&6jN6@uB=2Sf0n)bh&PNMTmXdZ^JQ2fv z9ypxhr*5MUXVU1v=bd!-mK!w~RIteQJZ@$9BlvaS2FGRxqy4FE7_mAC?bpu6Q{Odl zpZzz88d(UvFV?^uy2)Kl9|bRZbwMlI5Z<|OgH?&&V9R=AykF#kRl`=}1=m>Yv`WP0 zeJOa`H3zR<+K-1fCSY=vFN%Uq@b2s%P_38?bw~F=lW!TkvTTH$agETeqJYzT4e)?y zA`X5z7nPk?V&t>Ms3B*ABQyIWFWiHC_q^lGqkzBbv4MSd>_fGU^C)`lHk!I^FLj1y z(!WC)lzeIn{m2TSgWB_GTgh|^YIdZbCgya%a15zj2U=LPorb+RNtL;c#Enpr-dUw1 z9rD9Sx@L!gbX2;YbV`V_G<^JB(mgp};7?EI58VOm+ru#VO*_uj?8Y$pml(UT4tKPs zp^K{lHs9IC9Vk4{?vL}JUO8-bNoT0%eE25%45!*yyyur%x@Y*9#oF9i`0Vp$4_mlaT) zZI1NI56^7fjV{_Hc+>bY*0t84fA}Tr{CW%{>XzcYw}b$^6uoGdBlM zepymHEYgs{*FPrXEm0CGeMu9taB1kMG8f+(YvAm-^W2QHQLN|R2nswEL}`B$>6Bk4 zwXDgak0JZ$rS%TlYZgRjC9CQ1t<@A3>`#XTXVZ_{JE<@{gU%@B(-z-q(oOnI!CO_O z=2P{gTBf6=btxv&1^R=fVPl%ep)QQ%OH|o^ZFBMC{JYrxQ%#)sR7Y(1UPruGRaWfN zdIaAFUxw;6ooqUvNW&ejP@H-liN>F%O~nB;EA2XK^pk^^|5;bx5Z{28Mhd$R9 z|9Dk}SEu|06``iEoOO&O4bMqA{xxkLQblufqiJ;BC#DnA#d!-HlA`ogxKtq?3%Zl= zY13x3H*`nuU|W2gG7?QXjPcdo;X;;gI1c(X2uJC4!FIog!tZw}T$rE*w=DYe;i^La z-m#SbaWR8axo`*$#%N;ppp_UGmx_-EoWN=GZ{TyM$9V7OOYC;Ogl7#eV7b8Lj=Ogo z-mBX&joMfy+aSDe)Kb}_TcM%N^g$ z)^D0kG13$|u_~XI4LCzNX=f>1T1iHqN~u)u1nK1Nr%k)ksrgeJOgm)vQg%QOVM3b7XB7J%y&mH^K2!2g~D$6-^ zcXdF|q3XE!(I?PqXos8Y6>+S<4Jok}qwz+63>x5wKO81tWLXFJ+$)5%>^!b!hnO!f zoWln;%$Mx!I~^tjv_fq53>>;{3(owVj%&0^ao?$n*e~@K9$Iw;4M#o1cu&D+mJy3< z9=?GJbt5pWs$@s!{bqm9tI$b-E4(N0F+XZ}CIsua<5S;coRfS8tDc?2lS+GVobw1Q z(;flo@3NWdmWgyaI)Dp2qT`Ot%NtDiuwUfR*GgR7jO<*NDYtR+m0S~#o!_hV4#2#H! z#NSW3i=o#{Y`gm}%9si7ssTRi^yhq%|JF{5wd&GNLwRXO=2JQrl0XxLJZ5d{LFm{n z_*>TOM3eCSXfDdcQR@=0D9{7HeznF$)f)J*_bYsu@e%re`VG(Y1`GfDr=Z@C!Aj$1 z?$WW7T*dMRzCP30?vm&hpFd~`BPk+UvI#1cIpK&bq=4L*5P6fPpY=^TAHlzQG1XNLu z#NY!H(Xsy`XzRa`EtoQawxq40;Nz*Z&L*9-$L%EZ?K|lH(j82!Nq5e*2q zK)MB&X-o)_HeXFf4!0?>w1s{e%19q%Yf88DHJ5IGW-Zk{Ia+FZu!o8_Mbm&24IrLS zFTAJh#H_|cTu`@Ed_h+%9=oK!c)5^?@l`*-{%V~gjT@@cP>Hs5rlYF#(Am>;TFIQU zRH9+gnW-qZISY?lrK06`fr0wc9_MqPVCkyE&=ivfyzV==psJ5Wb6s&uM+lBM?uYpc zM&sg5F;G^T!tYPv8J&O1j=d~n3I^l&nGRL(daM{nh6!$w&1t9+n~8PDLr`g4C??2l z!HVo7X#C(9DtzYAs`(=Byl?saNNK#=(4pL4h9SX>BAjtz%_wGb$uxvJQ+g%p9L3!M+VvJXVcNmdE~cf zKLy_`rkoK4G)8)!4#!tfQQb?Ly}gfg@EaZJphx4SCB2T)1uZU8eO+7WB5xIG@Z}up zjG7Mlhwfs{(~06cscXbHzC?&i^S#Ai>~zHO=Xc?m5-k=oW*;qh{f%ULRix}+U#V>U zU5aguC;#Oi*!q-HTxxMMxb8K^&IwM)?V5_-rk=Qejjxc!NW=w;ccI{pm#1T0 zgCDx++N1Q`D16u63o9P~ftiI)D0BEIc4dFXkr685LJLjtvEQ8-A)ABq^4Ee%V+;Fw zYq5~e-A)l-=FrvQ9c)U)dG62jUy$SNi(mT3;3v1ucvCoE&zzKn&C@0^pYQ6FKHq|_ zrcEZ#ywTKfdo~%ai6M){$H`=O4LPa4pilF^)5@%G)KL9_VD=mOZ}D3y4EsWw_>)ZJ zl%?jv`ybB?mNr~gka{e8NHznJ+J#KOuAO&q&Lb1?vz!@X{>F6iFJ4a^xwHzW&AJ8i zEr!#>wPixDriofq>M1?+BB`DUq-v#m?62DtZq?LS7(4wWOb|RK{x43#=%=k7fO5TkP`~dn(Fr|&)*K{dMV$%Ec10KOHCi1KpWO$i z-6L>@%xJVdY=ZxU`CN=^2Aq-{;rjTx!7WE!6qjba@fYHvPu=jmL4? zdp4$vFZE7^M^Vc7K70~hEVM^CQ*C^;@FXbyuHl@# zYWOte!OUy9m?`z!!whCB(9?g*Y5#`fRI%tjZJPU%HiR}%_M%z}X)33jGv#FSpqkv> zU(zyRw{(Y}zI1!#cJ1dLBA))P+du&l!Glw%Nf$nUU|XuxNs?(vhZQE$K%u{L zGg0vR)V|=j6nFGdD#yP{J@~y=L2P|NMm&0V6}DXp!`9L;P`cB_XWxD(U4LeJI_0qZJG}sO>VI4T^lSCcKsmeCsa&2 z3PJl6;o;8Vl5w3mytj%jU;lClpVTbk{jG}Ggwxh^W>Y$yx^aQ_Zg@;%ji1r^xTjS7 z@G(6Je?^1Uy2#|cqI98>t~Bz(80oN=6Qpo+yfoTzq;!x|H<_qxqnV#$AmvUqe!piZ zzV>03_}K?9R^k|sYZwL5hM1Xrn1*E^7B&|3mMmA29)2JzeG}VFm$YQ01?QEewS9(5N2iaIUQe}?zP~a~s{DJP z^g!Q>v^raG&c;RI!D>aZ@(pXTv;)Ppqm9Mpjh|57atn^TcoEM1n#s@kHiy+u*vcY% zY}k*eGpt9dN4Xo+%EczQc5UnRyaB4mG2;*9Qc* z2e?1~I3D{HgTcCh3j;OKWThgmXi!Ci_w8`_=5g5nG>-fIX#y+jyv^QNwlG)u(`>#} zm4CG}2F4|8AYZW*mzN#GBXW;%5$hwq_G+N``)v*Jr7Pd@OkkNX8xvuDlu$>z$5(Ev zm-3;nb(rJ5v26cmZx*{foXNLw%&Es#^frG9^cistcK5y)GWCs6W0M8e?v~(QF{#r1 zks<4IzmC-ePoOsSUF4^5p4^o0)7x3il=txs6E!PLDzCs4NwT?}#7)q)#Ln)_k6H6B@WkDY%^7%7DxWD_q za7E89ai>aMxCf?od|HSiD@`tCY3c*%y`>*vQ7Vlbdz>!!J4XG9q^*Fy!dQ;wAdZTfIw6j%Fn)~@6Z5cY3Ja}{(i}DM zhJb(A@a#JFaZATBss6&W>g=ZfRF?sfq#Ie!Gbl#1})vO?T;GaapY zUp!JIiyjLHg4TjTtYmsV>$-lJtzHntHU-}2S9Cn!hJUGnl$jzNEHJ>+^Yc*muoRnuQZ{A1n5v+o*Gxth@f}@$|^_T2g>0ojUF(idK zL+J3-4yG&YLrhV&W+CI^`H5yDB%9Z0+b2;yt>FslyUip5e zPw6t!I}!zHO4Cqj={I|+uI>`)#a)}FMkgbrTdpsYMlwrjSmOIHn@V-qyif|rRF76&QP(1mEhWPz@Rk5*u2YzoqkHMjiIIYSIBAlhn zf43D)4BAYIHoIx_pgfwsUaPAvwBD{=AjL+BS4hq1n^kgp5CXR8Cz@^UC<|CxpwT|Myn`eUxok|C^P zQxF?=Rmit?gmXu_Q(>`l8{GJ#hBC8rMsEW$aB(1I=FFM@`k0zH=WZt$8|0`uEi|>HUcyP2;tsa%m5#yT^@& z&fxhE?rjjC?ue%x0#My67Jq#&!1MDOaDtnn*u6+ceDA%!_(;k?aY|Af7RVOji{i=n zA?OaQ*gFzlM|z6(*2oES>og`k(8J=ycJz2+v*p^RM7&pg5YvS-^ITvhejZhgd$liN<4T5q5>KMr@JzIK zio|diU%W4zQ#Y9{>Iyr;Ul#PhwI9boGHw~He>XswvyOs`Bb>m@Gagd94uN*VSvV#> z3GQ4v=%4k2y*^ej$ghJdNtnbH*hlf*U*@pa?*uN9r7T@PJ(^Bd_|jUTpENK(lbWU$ zQiw=!?Tug*cKoVv#yz6d*FI2yW*_OxzyZ=8a~-LyvA&cu9wMFgQ%3sg&}Hf~Ka5QM zUb2mse)B(LwYk`F54ot+jZn7bEv%b64{vzqq5r76c*d>;MM00yP3J6HwI^fmjOCaj z{C%&}0-WF*h>8WPu&=;txgizuES{C{XtN^pTa?OISczHWy;P?6G@t$Wb%Bj8u4C3( z&zRfRdKTVwoH^KyV{3jCiV`Iop~vMRWYzS+?~?|glZPUD)%L}WqL=Vu%u6`Z{ZQ}_ zy#mvWHldc6!TJXZ_%~J9TTdL0?y_U?#dQlD%NwFwL-IVgdtDPLhTos~&+!kD)57GzXDiY7Gc zkVTgcy)qp^_q;60+uxZoGu>#@>p9f@pEGTBwxq42^~gcKAH6vDnXNo?iM@Drp6y@G zSoOtQY{8Q!tm9TKv+>Sn8(!G5?L`@tcbrDT*<(APZbK5-ZC?T7UOPhXbVK;!Gy~$k zq(j2}*Kj^j2YaU=Zg!c24yB%$)ar>H)t;!FwgdwQ2cgw~4QM6}#VevE==#hB*|1Ug zAYUE>ogaYb^^34`*J+55uLCFBk1&f!Jd-e)?HmyALPOZ-JY8{k0R-XbY}1H4A|&C9oWJ z>(HbBIXd%jte*c5%aWb!OCbr-CkidknVAPEk(4M)X|<%%LMloTvPDHmNQmq^;mpiQ z%F@1S)22dFN_#4O&+qq#>+;`oUC%OS<~^_1eScP=-`2^|`F+1h(Wz(T=)7toW0*v4 zY+Okq?#&?2&E8>`MjsqC=@;WX;~{t#U=KAnN5hKLv+!P5GxT`+0J`1(4v&f{Ax&3f z)N@I|dw?C$Xss(6hF++C-YVoa;)XIsozSICHt4kL95fPUhQ1XWqwB|v(TjOg(0M5> z~U3eQthTelMncZ-c`F*%=pbcJHR0?y4;$dyR8-dyC@yGGLgxQxiJ%O`0&%E_`@%|!YAE#hW3O!gH> z(18{uYKA7!zjqDk%xxC*KPQGJjhjzZV(jQLeLHFsCZO~A_t)-_9<^sw=$zw{)VcpN z`I~=_BxqKV_%+dlx&w06?=7~gn}@IPp480XOc3`hx>DGWtrytkno5|5I^o!?Dy$Ix2KOvdB6la6 zk##BaiEGPh@}M+`eA#-Ktos;8vcrxLpA*TXzU~;wzmZCY*i+=f_9D`)R+O%bij26BlOLyKSnfIDWb3`5yxf4gS+a`gDsVE zfne&{e_+*bAsjv%0zb5*!7ne%`JUb-xR^YEl`0>g;FT0wXg&ey{ZU65jT2Gh z2VF!K>7ipXy6AQ_fQuf2IreZp!jY8V{QXgpB8Z2Di`?J9|l2ZeSvzI zDG1umGBSoW^Twx^v4QGSaM$KQ>?oRpY3?1|wNQ$j|IeJ{epp8SFl$NQmaXJI-b=P^ zi6bR1juOKar^w{UQgUE>3)!}`i!5omPgKXfB2%QkkS43YBr$dzjc*j8`o$tNB1wd5 zJ`|xB?}$+GSt8Var3mf6{fm6{_(-Pdz9Iofo{-t=?h-*!2RY@`NDh3-C-tK7WZ#`N z#B#Mcahvu7pOuTp!UZh5NX3lV_GAH|Lli`HNx+{wEa1wCf$)Gv8tk*Hfmil-!Mlr} zz)jx6Fz(MN+|~aFO4R;=ck2JaN#*}ww}c3~xN{7Ko&OCne`h|r^$mPC<35!8*A633 z@UF0D^>F-_Gtle$5vZoXpY`*$!du)%Sg5oDUa46Cr&!E^v#h4TA9>PH&-^hM^~?p9 z6L=--*$>Ra8STub&)Q5%c_q)4)WrVvQ}JrIZMgnsJ`P^V_vH^h##$YZurk+ zqT~|}Dfod`+bWY^!;<8>@pl~fQJfe^OePUl)?`lpT;ew{g>1I8ASa{k$$1S2@*iZ# zU)d$(r8?I*GMKNCqmZw-%>7{eg3 z$?#e--$iPk2(_{d;GrCKm|yW7s0Tj=wBjoGr%%A#%U^-Va!I&ZK@zS!Jpq~zYeB0= zs?f^$188fL;5ovRAb6qx7v6aUuE|t@xoj1s&Wzl9N5sof-RZYT+pP9*uS5{XX8M)G!> zG)X&Lz`AeU0OCNGaTfS2%8TQ=pAL;+CMrsc06S;e<$O6Ae61zE`?CRT0o}9KP#@AGdYxi6HTuhRr zILH$n11+MrU!80|(TyL6q~Y%!hw$)<1pHI(F}@b?8;5&JND+Nym=N-sBZzAR7QcyI6W9FI~%6|u!PTQP2sVXF7RZ69h~0%7A&-V z1%g*EgTwXweL%e`pJOivJGpA`0jz}NNGyD#^&b@Zl>ye;ZUE`6JHXKOl^`whEq}A2 z%a3K1;au_yNIdQU$rI;*;GqsO9DL`H2i|(5 z%TkRrubn{t{C6Ff$)w{Uk+V2sb0$U;iF2U^^gq`~BBlDM}fb39N z@c2doc-E~37xFA|?+O{XE@KqDT5br;Khg*Ot(A(;$F^S94lskZA~^zZ`UBZUzpbN+t?K>Uh2Z| zS48;ex(2+rst`wCDP;cYwlOa`fMW$c_$QNv!R5F3rK}A}QWX%*8{R~02oi0H=|nbk z1IakNg-m1?kQ2`rk<7Z0^>3$wZ8dfKh(^n!%ru;GzRJf3s2?NORrOo6< z<`hyIFpAGv%92*03Nb3m!_}L@@OrmfSU**Ow~jy8vam3h8P3)Mv!_b(yY)gac{|IYws-Oz@HxesS+IN&9&%reODDM;w+G=pMOD1mV_=K;etC44;qNMVw7O`qKAV=mhWbU*jL{e)Z zxvB8b$)NIv(!hpg0GLT)G7 zlRS<2Bxr0N(aM}hk`hcv$y!a4T-bwO*k<6k_CRcPZZU4Uvl@rL3TLaY{a|eU_JH4h z9EeN44<7Xmf!1m2u!#STt?qY%(KHzPxhKPS-_l^)%42ZizI5myoe$IObKo<@OlZNo z-9858LH{#ZaMO!)*mU{`T*dE`UQgxE6(d{Vp5>dMW%4R`tZNZGImGk8umW6CECJ1e zMPSHyQK&olE10Qr2#7ynKuXbOFfDjQu(0-I%ZISt?8~69tggTngIZavmhqiU6GY)u zdKYi&xrYZci*bM7eO&G`gy&%$VijsiW=pA&&|MRWbf_#jcwU|Sty@g~7_24t2Ue3L zgQluqln?u7;+~$m0ayQN#f)AuCGWQsqW7vz7tQ9#eAPPO(c!1^FB@voQx*h zJP(mOv!cj4)2+lWz=`nd5%Ie*mDG5M62o|&4|eGo|4d(x%l>KMx&T*}<#sS@-lpH&aj zHlK%*WsT4$h~?cPER0xC0rSV7gXX_^c1_6%CnDDFC*6 zOoy3DBOpif5_r+l1@iC3gPc$1;Qft7V4Q3+(_UA{?yZr>`!^ZlzVdi{Xnqy`Vfqxm zT=W@BYs-+qpR-7vq#1DyvLdrw7mzuktI5!$O{99&1`;T?pB&kCh&*``LLxhN5y=OM z#A@UONohYtGz$vI^EJg}-pX>~y`qw&y>B2lp4SmZvz}a*s3X2&WkhPYnv8JgNJn-7 zsq{TfJlztBLFztYxZjU>O&OIkFv4l(5`J-`c> zD&Vgn3ZrWb;O8T=VNw*|Rl9Ns&K*dF=cDtWdVd9!%4Oj}-bxYReGg`5zl6cr1Ms8h zYpA`a4>Ab@(6IVBOgwrI?v%a*%OY;UmkL+m+4F7i!^p%E!fTuj18Hj*o|!pKA3sbIG8L+K8lg8#!FtLC#5bkmB84WUFEqaXr*QK5Mj-#7&e;y2~?`mQ@oC z;{u|wDV40<9!WZv?IA9V7x|elAQ@&l#C*pGT*4f}(^XR0H*HPK(T~o+dO|svoGt>} zj!%QOyEnq*4N363cOD#_R|{>^+n{5}Q)sL`49%zggkmQ}(Tf^MbWc?V#qE+oUrl9@ zaH%v(cs?GPc8Q@ktHzB{zU2xn-0=-7gLR0NjSSuR~ z-@C4c(c=uE-x4vHTh#+xLN)=*Px*rR(YjcCT{L!A>&M$tRf&y{7V)vNBk2!Tl7Gd4 z0hmMhE`tk|jy-jCz~rKWMvM%oA(Ie0-S z*8~{M<-vob1ul@i1Dy^GLXENCaHL-p{Y;ZVA)GQ=xLp%%oUM&c*-u38R%oH`SJaVl zmkK&Ktb|H}+c615EB82=zLJc5Zzd*M9b{L+ZQ|?kjIg$}P|Yo7w314+}JYU!M3rCn2w+8Yt+xGD6C7XvS1=WbQc%y?ck@q0}c3E+x=aEEm4|lK`)| z1;7JYPVo7G8PGFoJgk))015CsIQS?R;O8-X?`|n54lx48|E*$dGv7A97#v}H@p0U> z@g6QJQY4n^j7j%1CvvcID>1c=CqlOrVi%f29DbFMXD(Yv;~o$X&3EL*z&E10 zSd98FR;IfKCeoh`MpW_kY--hEOFx=BQ==_jRK9%^E#bD)>fPIDsPrbcJV~_DsFA02|@5hy#<-opcrZB5-8?>HS z08>t0gU_o*q0BZ_wC=A7+6}Fd+uvo#Pi`%;J?M{c%Vt!N>5sY@EPXz4ZstXk6@U17kn4c49)o8d+Bbz zhpOfezqup$FhvvgH+2A`v?%a=Kp%8Yd&-FaJIdsDo@TngW-;^nbC?|-SD2Cr$Xp5f z+581c;cx0EvCYy!Y%``xO1vz|y5tpP@v&giWfDiAZ5mnL#k(te8hBn*E0OH%CfT#T zksxguS~Phg?U-jm52Xm{LLE0+<>XK0=j^3B9>mZQt0cOqpZDs0NTq=i{O)O>wDN(>WObp7tS`1yK*AzB#UvE&^;swlf_yzXVgV#u%?#E?}{L7}#<>3#`>B z0nVFic(-Z@xb1wO`E+DGyQnk`>$J*~?!?)|-**jxZb{^Wd|KOsBazmb@o z<7s%MBK=h}nI2p*kBT)cp?Wvh(>0;{>HT?$bTlK4&e(f~7RZ*;S+A<8b7M8NEUTpA z;l*^z-)wqg^HJLKER-6ra-o&A`t;b^eo_>fLX>a3#EmiknA7Qo@U2@a+!THpo@)F6 zGgQVS=&g=|RCw>&77O&f!4|1+UV$`t_oeATD0&_lgXGR7qp*lHRJu7GIjuN>Ho2#u zi`9up^S=nx>*I?;R2@)s?tf^)Q{G`1Hv(-A--Ldab+F3l419Fv2vi-~2YX8+VY77< zR16D+C%%TjmS>^x?DnlNB6l$a{~5zrS4Frz^D}UYt^@9$;=shO2Z1$B1NN{Uh+KRD z!e%JJ3%jhKd+Gw{RJRZwEo7kPQ4N^Z+XA}wB`|Uew_%@$GNi6;C3)GCO03mc(%t%+ zRP2zVajH7BX@(^|Q|m-^Tl}fv!D#CDGnIC<7SNsbbu`Y_HxjQMVYDVkt_L2M-K4j$en&!4TH`u~689NS0p!;S9 zsI*jwGW=Z7R--j&sB<&g_WoAlPh(L*$x(DAARR@G%R&u~IjHyfY4kEZ2iXm0 zqRif-NdH45iXHGpW(OCd_`<2^?*a)V!tayDl5^m-j9t*L!4+nF@`kfU4?t0wTzK98 zB0PPG=j}ZG4L!r}WZWk3Af8UVW_ zePBeu2KY9B=N>)sh1Kou(A!7_zWHhdQgw^*)4lE_)RdCc>GE`A`doU+*_)=$4W+*p z#L{@9Bsy31IQ4sTYokRLXKv<#OEK zTuJWS+COwO>oF~4`FnehP@34RPLs+O5%|;wwpdG`{SHe|gjpoIX_}0bG)|!WIVmVD zJPDPx@~(L8y-4KuR&-Wu6Ivs_6`k9-8=1?-q751;$kqK6GP-&SWs0Ywkg^yg&Hv85 z8UV`9l|>D5Ww7lM-`7?5Wy`*dBZG@{$$9NItoipOqi|y(?CiP?t*vyB>sy|2JH#^~ zE*(MbYts=w$42dj$B?&u9O^6Gi!@W#^7rWr5TkF2jQ<)TamD}*-!eqY(SOK?GezBd zr=ay$m63zWCpcwYAw)xpaE)~c&b=2ys`7`(lt+d%(ZY$^eDbA0JcLTqNNR7w=PLW6 z>7gpVQ}HXEzSvhp<&&GJl>9B~6!4B_f0p1jW~p+isZ%)pr878wGsJCNZ^k7$8giQ3 z)wqQAe{@+k&#_iWrb#O`X=mIEJp8)?TI>@bb<=3n8lQ_A)5{TevkG-emLXlS0yOwN z1KmtcLQKbDwE0>La`~HpWVsZy=4>V!Q9OfU_vE6W?V0G|{Up?UdOPxVnvD{EzlNPB z=fWlV#rXNr(?s~PpY#Whk+esB;7OzQi+gw~t3(MO}tD7yNW`dm=tRI4X*Z4u_2^BaZ}49w@QPO{@}WHTH*V9LoS zt8#fOhG?T_A+4yHNw=N;gwu3*;hM*0bR@e7dH!fcGt6(HIiK#L__NoMK7aRKwxbbo zqvdGY)i9u8ShHu z_^Aoi>9nHSD_!V6hdZco^$-N|ze$Gm9MO+Wh3VmqCu8bZ1JaC-h#Bn@>xL@iPd)3Ewv zx{1%I&loPIR;yUL*Zn5_w78Ep8vLX4Z6|O|vHIN4)t21FB3sU4#bPdAelaJ0cRqJ0 z%7Xizuf$TsU6inaWOnpTb=k&f3W zZ}UBrvabvEYqy~svx}%YDV7X4dz4jrmLj1~>^*{WS>aCEUe*{UN& z-x;l@rT&T3ck4-7JRyaesfW?|(pJUd4>95HHc{aV^b@U!e2#2>Hlc<45>RxR zIriZ&+{|AW+Kf!Jf*``Pz&yg!6NSKVRx>&+?#V= z?8$8jb>vKS%(-)Sq`0y0YWm`n7uW_tw>pqR@LhC$cMnp2_XJ6FT}7^|%g~oMJJH%ZgD^*DGhS1r zKzGLMr-!l&D49}AEnim9A=?!C`ja!wckCuVos!up$Le9Qq%P7|a72GjZbSy=Tae6^ zt;p;%?`?k@hs4cudFL>T-Y$QFJpTPgYsSe5<4aY9KRT3!ub)T@N1lI1dPbMfk@d-F z`9^c(l#mZCLqph7i=CubwUK0Bx=Xfvc~9ip{*ZWeX?jFLpYATOrP*tI`Smb{X1&Xx z;}p-*JCllO!uJ9?J|&wPo=&4iIw^E#>Ir(BDWG~C7pS$*JNnX4nHx&8;0~v_aZjwa zab6+&xs?;cxHZlGT;D=l?#Vk@?$4bpdh@|X65nWvQWl&?pK69t&Js~!xBWPwhuJ4& za^wLzY2J#O_0FTM<0$gjeGBdS{T5Z|hzSSA%L{Lr$q5%M{)5_=UPm>z;?Uk%eX#7P zKG{@gN^b_l(S;&K)F`@|G95)Uv?qz~kanj>%+;t(MG;xP@CH`i7!BlR2%zEWQg{H1 zAj9L9C}+ZUwB=O}T4H?({qTIp=P1R6wafV2X|JYmL9do@p^~!j%Vu$5)ykLXt$#go zwmpo_&w;4k=_}OIN#$)cvhd2T>7XECko~XuJ~q@_Lb6X5k;}|3EqkQErKVKU_BHp2pYuDoH2WBeIo*k7edD@fpu6=cGkY8-7RCj(3r< zChr3K9gV)X*rSYIbu{1OEzhW~gOiQJc^;uLyt-vR(2nfEhM_0O<&xLrneHU|PjxiXO^yhZt?OYEH`B?kp`c(FMBS(-vb zY}eoho{MYLeH)4``VYl^2|@8s&LI4_14*!hNacX2upv)IxP7X;F#NEz@Klh9P}6t- zO=|2yWxi$Tbao;tU$O>W+BE|``Ywa|ldi)*%M;}pF zCH-JCs%bToa)SG|IZ^B5f%KJgEOpqQ zNduW`x+L)?O>z85yKd(grvqGQ!#+-|*O#;J2b=;G=k(u4Q~%w; z>|R?x^hoXo3e*!9<{wZLHY`vU1_~8~ng7NMV{FF>KX~(htHp#LM8^vmaY^B6SyADp zy>HReg)Qjml|XdjU>5XIJx6}t^`XPGnD)E0(G!ww^s-Df)xC6#{_F9iJAyUn`iL&_ zQFRXq`A?GU5y;?P<2n#LAp@>((m-XG!qJcpi!6J;qkyZ*!reFZgj=Ui7N+{E2-Ouw zk6Y1o7w0WJ;B? zsK~QiT4tS3AM%;yt$`P4Ma2NU^g@M883SCTl^-{``VjYhW&$U+?lAYWdK1TNH{m1` zF;%=2NPhcmM$vQo&{{twp?0dKueMP5yR_=dZicr+pLY$Wfke zHcN`?otQ*R9n5Keg%REReSpMFK95D&H?X-n2^~;+g~s=(2~te^V&^RMZge5qXzGa^uPsN$O~xo~dmCiC(t&%M3yIaZ zOG^0H{6)uz$dAk9#eX~#Z_ge4os|@%XM2J(Pm5Q z^y=@`baX--y>F03_Z6L@6L#~Sy6585K(q~bF0n`74mF_9zF$$ewSw?xyt?pPv$C*O zYP`@-Fob-wuA*_E9Q7upq187N(e{xzgx*G@h?rp1wABIiOcq1-$OfJb7A3Q z$3)G(j*Ji8TD?Dy%o8=c|^|*Y5H33*VJcP#UC@E>GaPXPR+pB}=$hUYoe>4xwD@;{Dt- zCXoBHVj<`INQ(P8{SaN9SOG3<3`MhrS5SNN2h>&a6}i-nphsrE5t5b?Rwt+n{|lKa z#NB2>J@pwv5uzhBIVd93KHq>$O#$*;>HyyRO480}0d(!U1Zr%VMBh(1M039Q(atXZ zef+SOE;yP(PrfXsk4$Q4OjaIsneIzJt5gss=sdLXi9@UMZlPC(f05QsDdBwm@xnTv zFG#KVJ}TLOQG;m(8XGG@3vQR7urC#eJy(L9xRb~)HyB0BOhT?cJ7MPS1Z>K?Ct_E| z5S{n3BJ6CMREzhls(b`zJPcoK1zlC{FSB;wKo5_jb~`Nj9u z!rxybMq;C+;@%Xh+vH9g6XWU7Xd$)JX{C`9UQow}R5f|>Wt3y`1jM3+x(%8CKg-!szd_FajraFhx(;;hV*2IMr z_Bl{b@ojXJOQ#RS8mKvHqhZ?hbmOKd+SAoZ4%%FRzvPagr32mQp3!eq`1~JQ=QoU` z&fh_&J6cf6qY4!JrySk!twx{SYf$5zvnW$P2_4t>M8%ur(RZsjxOZ7R2zhgZeG{0& zo_TZ&VE;te`u8@>O6!GUmKUM0!UMKnQ3mmR{=5F`7hKqzj}sg-n2+xhfar4TKr7!|46mL=^j^0{+>ypTyQoq|O157Cy41*?V+pOr8=w z7dx4*-LQ;)6F*9=S{iAO;1+$k;400%TSyN@*;DlQCq6q-iJyn2po+AMsMFvfGW738 zTzn^znaH8BehxWXUqyEZpCYN#1L(nmr%2g`pk&@7V(?rGsg=!z234L|XIBqCC~1zB z_q_mZzhhx*3kxj{Ux1;-$Kj-pnFDkQZGPgh5 zmfPR4maAE}i>tN_<;K6<%xMPLb4zj*xwLcXbeyg`c3tX`lFU6vf4_#=v z_EVIgEH2#UFj?sDK3DkA1PNQuOc$=_*S1%k6=>!Y9n^D77x>)BCV`Rf$fD^|^q!MC zog6%!F3nv|?K~prxos&lV}CA{wJ4xBMKh_ZJ3pg+Vou+e<`LK2r$F?@A9%0R1KoLc z4E@P0Lt7FEvJve+L1Srqw*D$AIu^}kuo&b^%VLQ9ES!!?LtGV*CXWwd-Q6( zF`82|4r!(r!D+jUpbzT_%Qo{uXBXDl~Brw29AtgjC){`MKV^RCzRyOQ8oX+3zw z-zk3*`@jBw4$(l#}(a`@hL%x(3+W4c3lj!y>h>XV@!d)=u{%n7>kXal{s^cD@d zI7qe1MYtnwik!(YBToB}EjMVfiYw)Ia$#4)IC5?aH(a`aYYmX&9-mL6fjr}G_Ixws zFeL-I&~mhOX$?}oQ;m=oMslvb$U{m|_;A~Fp{9(r@N2f6@Y-q%;qrO~pU&v>)r(PSLrNTJ^c)tqk9}pN{d26F^5p)6FrT}WLEQR~x6Jf1`9Q-V~ z7=IDElXGgh#QJF|xj+3dxo}*gWEdMj9b|~pMy3Y+{3Lt-1MJoxrC?o+{`*1Ze00& zYI0>QeRXjK;ikC44|z>6_2dUQN!|*HmL{M*7j7ckr4xj&l4c6U4_ga$2L-}Q8B>JG ze?){o*IYt{GmfL<7d(-i<4mNcrG~yNdk%{y`9Q^Ki`mWz`NZU#5#1QLjUG9XL1+D| zruUcBQJZb2sc+{l>X)xb&uM(aQ+6U)yNS<3j9rDP<}94C`y%wr9FKgYU68YE20v%* zL=g?|(7Xj-5NIDn56B(lDPM__b{;`4WBy3N!2tz{%s?;i>!BN$WsvpRm#}6i8!mgK z4u3R1VYa<5#*v&J(Z9NaNGi-AV@Jfu@QNWU5gChLU%blhx;+ukfA$M+sL&_dN>-2t zbb>7KsUVlNuanGivULAZ8~R!{nohk~OSj~{plxAZzzOk z_I`!0R?b2}-wvXF-#pZ7(t?z)bs^*2o9Ns5%Sbn}24!3=L`puV(6jtR)Hr<~dii5J z(gqG_dW|-UKl1|a7Kww+|Ga_Ud>1@XxeAXgdyRKCyut3T-{H2O{0>IPnN;vuanaS+ ziA=yf(%gHKM31{fu5~q$&;QPoJIb%g%T5y-7#v80TU>>3(VukiYmx)Ft=!EvQFEeTl}7yP zZV^qsvva{howj_Erk>}=QJ=9leZ2gE8mO`^|CanxZ56TO)?n`B%W+Ye#st>@N7DcsG1^B>+}!P=RXeMZiZj z8NBLW0dDhACF_rilAaq$SYWo9Svm6)D2fb(!@KI?t%i3{u4DpQ-m8m}J!Yc3UjF{( z$Y%8MT?D#R6~j9x4)gDAIL~rji{7W(psBuQ$ZnnvDlU{oQ`Ucm=a=yr^s!LbP?!Q# zcXVR0Wv*m`>k%TkG?O^+xu!oKW64#;P_kJqfw(@+Av-cyqP)9@jP#1r)E&C?rSu%S zNy3G0eC$sm4m32XYbX_Q>)+DugL?*SdBJ)!n2e|R%006w!XWIf56Ux(MBS(kSqT)Y*1IJXuJ^6aojJuYZ+oC8WQ5FpV@0Cmd>(bS;1NQ9k% zj_v0ea`PoojOa~RI8E5`vM zx%gV^1AH-0g3l|@Adx$riQhdha{AQ)Qu8sJysT{|Ax0hK>4Sc9=F3kqTq8njjAZD! zEG@cD*ML57pH4>`0hQEVK)1v#q{dqF=$c`Ej(FXgo&t#e8=Xc?OZ2G3*=cl-#$;M{ zP?84S_)dDOK9aDU%jBwlDiK_dBF5G6WKo3|dGuSJd|H`?GnY(ndGcQsNEBgUnz|6&EjOP{M&+_l^rDFWIOkPLkdCoE)0- zj%4JHknX;Jd;B1wQ$CQd~>j1&uz5&CoU!W;q z6vXOj^6Ushn6dvqn5RA)Cj7C33I)!v_8#wXdAJCslr4oCre08a=?b`^!3}1`d%%1;1_e zfZ0{6piagrxb3e8lu&bn9Onw1uX@4Cm#g9F>Fc2h@PykV7D3v`zz=b=;q{_vP;0Ip z?0c>YJ^1Wv=wzac8}}@3Tpn0_<`oA1}E07=Nu8 zM>e%<5#JFDa?IX|WG`Gz9PM`yo0V~7pV3LubUufeEX^lldy7c5u$1Un7n8YXN=f8U zF?kV^LoDZ{l4ZFuWb5Y;@&)*i^JXsO>uFOGZ7xd=sJ+4w71g-l{#sl!V+wxw=nJn- zk!Pod`7m404Kry+I7VIiHnZSI3?mjPV3sF%F_-OonEbvMOnPq~b0aT_nOT<4eC=7n zj4T-xtT{W(=&FkV$G`U(My#8Wue{6L4$NbuXDaec3_Fk+90FP{D;Obm|=gnn~g?DP9#$yebE8YW@R<-blcsx5h&?)iDsD_#OP> zGxBj=1K|1E0pPsy6PSOe7wDPv0yCR?Kx0P(nA6<=iaYDT?YY^&x+)25(KrqcSMkqH z#bgi}z8_pPa{`X;y^MP>E2uq|$6lH!6I=yY%~U!}taazaPiU zgk5;ZVHO_sZ)Y3Q_p_-=c};6i9v6&Fxzk)xRX0zc)nd9XS~4>|oR|q>rHoYa8wNd& zW4{_Q-^#&lM&4{n68CQU}H!G!o0vB};{ z&u$~ev(bYYPJ?C=TF_hZ-@Z1X%2Xw?hJ^MkY7utfV_lJ#&+y8Gw>~$c`7|)?lb-7mVJebSktU( z_KB_*zL^ZM>=Qp+eJvGh<)6hu%PQO*OR!$sb=-8T6R-Jt1&8grjrZQTh3ht6!f&2k z!;kYivDMr*TT(scEmD#a+fo1KW~9E9klRAHCc=dKe5^Vm8@P_ zBKz-gJ*(&Oo_+u90vo)xm5p4{&aTmFXY-6RSZCKWeBM2t{qxC%-LYpco40!#TOuOH zPP)2$Ufiqq&1%jng48cgOx=!VCMgCpiUEC$o|Z1~{b>c3Z9%|HZ6nyfW;dAU76Qz} zB0;-vB6xTu7C4*@1=kZIfuG?XFx4WE{~R`g!=0`m%5yPTw`o4uS`C2X9AmH>>4HP| zw88C1+Te7Q7It{VD-}pldmIC#j{;-iS3lNZ4*Ual9}>9&cDN6@vsv95Blb zi=EqmEi5)*IqHH}P4UMIr4Ha4+b}FH2*s_!aQy3@8y;Qkh&O4h!a6(caow;D-s?6G z*DkTf_aE8g1Z`6+Wvz$rRnEnGI#lq)+-O#zZxV(j+put*I<84j#4FqYzTwESiaiSK zuNNkG!{`G1y1kmsw@qO0EMLlQ>-ZqJI!nly8h>l)$$4 zA9WdNk6BE@IdLXkcM?z~waoCuMNGzA17@zl=6NFu zXIsJ-DzTkXhU|fu`z?l?S&Pc@surl6!`ckoXYHz+*{f0}@*`bT^8we zTX#Xr1c~OMANlj5WX=hCy^aV1#{CpzE9_@PD|RzIGh7(7b)lOyIu39eKBO( zdQuprF$bn+o|K^NM|sOLGYK|goGCk3KbwsfRI$b#wygIparWr7NVZ9-on005n^o%^ zWSfHv*#j9_tV(e+J2q6r)^iE$fkoA9T5CIdYi}!S8r;LqHhRGJTuo+^2fWyuM~|_^ zr!c#JOD((8PsnE6X=pj|{A^HGt%3Ih|T@o!K z7n%iexxE6r$K`@4*M|jCS>u`AL-z&0W{EQ%o_m^f%|X2NSr zkn?U8xV*lfX|42U>s+MpLAN%EQQ#re-?JyA&NC-gtM)xZLDeX zJe<&$h^M$$;6JIx*krO1jxLqQJH1X|-S8Lq%7apTH)#o8^jiXF*el^(?vA(}=U^M_ zM0^ETu$4D`*v1T1{CL4C?6+(lUR^GNZL0pV5MD>}w@ZW(J{x802qIc&}F>=i+? z%k>uTl%N)4yJ>C2orpUc!HtAbZ%>A-Gb8?cR$0Ktlbtaj-E z=EyNgK-fIs7`F=)PoDGoD{RTDZh?;fbg-*= z8VFcC9tb+aT4HwkvL-o4m|0E6082^%iT_b_-hotpe;l`GRzd?6k)ouXr9wI52Z@#6+6`tS{VIz_Jenv#9@$D%h1Pq=Wu z6?|IZ4Sx4Q%$I)mmE0hCd|ulSVyvzw(f=Ta^1q!xTf4@hujM)X!sp5a*V^&r4@~iv zTMKZ(4R4b9v|H}6Rmi^0J#;0prxKR_})no-n}gj zrB+Wybgu&5YVjQn&(gt56K~+Sj>`a9t`In8AKf*@olRf6i8Y@spo+6OytrM0ucclj zu2WRmpt1wBreqZU@9kFnCAJ%_*`7yJhdig@b)IzlZ4UE0q|WSJ_C&Ukqp!5bf@k|h zFl+C{GsSD@5%FNQ`@tsSXlVdDJ>|dv`;il^wk+3ChndcPjYi}rVXc)4*k{Rb_DS2F z$$U^?U13@hyekyXw{9kuZR$)f!hj9<9ZF}N9ff`$HNXz*Y*0TPBi-@Opp)f)aqGL+ zV()w}{Oq0{GPbEBO)ITQ`eOrr*!gO%6}*sT)(dWar7U@!^a(}1_QIjKALUC!2a~qk zBd7N>UbCzkjhrx@v^?iXwby8J*5t9>%A~W150dA$`Y5BPbJWo>-z(hu@gLElMk^dB z6-RD+>qXu*rlC<>7!KH$h{w4n;NI7FQG1Pa9{zqKHX33H2C;TfQImm34tUOY9tg}VWiV~#GFkKR}>?WG^(iwSJ1@os0j-rSCy13ie33tA_iZueVal!N`JYcqz zX=)yh{QfP(XT~_=W3HiC)^7tYZEiuXk9g#;xdY`?F2tN%D1O{xi)q3Olp@_#UzzNW zn`TC%(_`XE&6OSG$Z>aaZ17-Wzodk)i-)L%`wg0`K93fwu9e(eJ{1kJ7)8U%&(fuJ z=JfvcSZ?&TRIc^oCT_>SUjFilO0uc`AK7HKnk;gy;&#soAX|L9$&}BzEk>j=61)2Yr@;2S2Vvb?syDnNMf%+#@UShiP%B zQ|T&SuJjTe4jYLx^rqsN!RJusI3tqZX-8TnOyMV_Cv&5=yb@h{rA9_yvY=Y6#!~n9 z1@h4P7_rzTN4MUoA?qV$>8k#b)P83*N#C-cOm>bYJ8G@?{e}}c1@l?-K;%$rY0<-V zZqGxpGI^o}o|i~K$sBSee*mgBH^GWuHsOS}3rNLd3R+PsSXSP} zO&$D%sOROPm!}V7y}7IK6YBw(FOc>mYNM#Dn;!1cn1EOJbM%LP2c7)0oSuAhoR+*^ zLkA~5CzfGJbWD3Tjd4n#E8?8#Ky6i;DDA6>RA$nl%E@GQeK&WcHx;cpVvC&YhvBqa z1EqcB!B}7V8|cg1i|;zS;MO^A_<(LC-t!|4`!{aDk%hbQTTNYDHzXGYsD+`#nXjb1 z_jKgpae%z}m`qA6-w`_Q2FcpkO}@&B>1V^?bns;-T4l4Cu8kZ*<1TSj{^JljuWTFr zy33soxM@b~@2;ikCT-+Ue310{eVxR(Y$O|6<>*IH3~%N=y7X&DOrE6W>~dJ(O$K78(k9mMtR0&;4`SYjJl zMYhc$lPxCdoWg_9KU8|HlPg$v|Ut zCZeSe^?9wSUwJO?7?-|xDxzyjQJ+^GI^{J9X?7QK$KQ`dW=?%*8ib}ktw7ZonaD2e8Rt;+gcJFxp_T4e?M#Pn;17fV8Svi=K4Q^VK6Fta zIqTs=Vvk-Voq@Z_zRuO;+pB}bvU)7>@O;HPF0bdyA3x!9N;Qc1ZIeVwBIM?|r*l43aHPHS4>#HSgXrGz3tWhE5$7?tiaWL|nVYeD z74M~?O9F0=BH>1l_^J_$MRF6q-VQkcWYfBH#B#|nq7=4Rv`5oTqVzL`|I=ngw&d?4 zTa=zl_TBx$nLEwloR|IKRdqedf`^#5w*jt!v$(Cer>(G7{FL7mu0!nQ3wfQ!T1iaQ z#lkL)zx?+~dE#_hmNXD^GOS!hvZ&cbl6}aPZ++dtUo&weEd4bvPKXituWb`q{XEDe z%zw=N_1VU$t*#UOtjrcI-ZmWdM_42KOWH`-V}=yJwM%;De;!Rg4OHO<`&wB{N_}_0G`Q~GU506#ijV@e}EGdcP-+l_@ z4MyeiA*(|9(3NU-t?vZUuoPEr9a$*_KM%0$Hs2~TJ~o)kB;MT61SKxS^&Ed`U=*K! zG*u+K`a+@Qyk3cp>S*%kHb+Ki=keRP2mA=}9{y+00J23qhNP-z@*C~ydFS9W{8gJ- zyl#pb3CN7$W&NDFoLvc=m&_GW`^fA3wh3P)@6LpYe!VK=UN!#XT&m+m7iU-UOJk1n zy0K0Y^MiZ1z$4*YjCKd_o?$?eM(C3V_XGK{-#35c^tQQ**C83k{()mqKwPBkieyQFm8{I7Mh--iqg~cI9dNV z$A90uY35&Yn}Y}Ma}%mMalfz z&@#!rS2ILymQzIy%N)2 znirqO)%LCD_75r$S?Ugw^v#GCIfZZHK9r5*vPvU4uSd7J$hje0*5MTH->EQeQK$y$ zskBCMmb&QR@1NY4H4nMINopuz(m=G*SQBYXnS}!08=~^pA33!tIw)w(CvJQ218(56 zByMzJ6c=5yo*VvdzDRN5VM%HK>?RKq_KyP|UvJ6CU@J)bg<+ch9mwERG_XzzxnqW9t$ zu73Sx?qX8_ceX>5d-%bU(+(ZTiFdnjhTH&d!O{-9m#E{mY^aUoQ|3U)lB+8uRWZx1#xdR<|LuSFh`*eesROjy(Vj~ibm(Eva*NLjV2XSZSE#+h^)4An=*SSoq z2+sY|6fP|6B6qt$0h#1>a!S$;?(nU*xR;U#+ijvsO4 zI_>o(*wdr%jQ2+FLC`3!;9s<4P6L(fZ0Z&*_E+S#Px>N?@^s}A%Eod-xoM&khiXNM zL5Df_hb^4a-xzLFQ?TfYl^N%0yN27?5zNJnv*Zlgt3-;XGF(jFBN3_z;yznia=o@| z3UB^>EK*H=E;@}nMA83(MTbsSiL9Cib9-m|-+t#W%jZW<<@eW^N=7u!7v+2YmWV~a zB<7X-`00U{_zSP%c*ma(yp622X!6Ax$?}Z_Mn zO3kYL*uoox;~O`@AgRkv$`sp?~uhk ztUb@EtNU{^-pu8iYCDEFs$9+$Kfi{!rqiu8G3E=n<< zdnbQ~gXkTc$aOZSQsK$X&gQsyc@-{dmIrrvQYv?5)&}nG6jko8%ums}vhiH$$29JT z-avG7y%O>~p~9JGSlcx^pX0W~s-Q*Nj5nGzhi{4aAo-HwE$UbqD%x`5?yZ7-q5PVu$^3%LOZd)BllaGx&qYgA ze%a;S8^D*1*vCitWb^yny(N*YCq(h-XGFT?dR&Iha|wB#CaGeRdDI%n(=I)ctMq^2 z;cz#uq%>1xqx7h7aa9U;h-P!aBW$?^CkJy+s*iA2hu-C?uB3B@Se|RKxXxK^zs!x& zMI1jX!p>e}EkDxVoB#C;3WE#Ra(8SJxV`T(xoywgxw?C|Yzr3OmL&H|$wZ$lxVIPU zL}zbY<+x(-B`>9gRy~;Yx**L}8Z4qA)Ii^qJ+Km@*8%x_o=!ryh z@{vE6<8_xiMN>KFrPiX;F_R@-jg4ID;2;#5R*X_=tB|a|2Raa3!ue_qu)Z`!=<}gwYAew zWx5MeE-*ow<5f|A*&|6>pFgSER!n4m-zC@5c98WVKhiR}oUC=dLtb6JOj;Wo`Anzl zqAi=ANxYx$=3Vz$i9(jSqfh!Ns4i>|Dt?C1?{E&y*cgV?4(Fglr6*C*JaZ)NGjf{G zuX9E#hNEZ7+1$2fO}_DWyQI~+Q*@7=7TJ|Y@b2e)rRR-Q?yR}5osM&no!6~euGV=i z^89Lw{!WeJ&U%QrtE10wRyBI4Ak6`Ne?A5wtvb=W>KlBd^=pac+cZvThBbHL$aT@w zRp+_y*Q-PU?LOR(iXP5c!vLwu_#)4d*OBAWbTrv~CUTrnh63cIY%!-Aq`rF$iBFf1 z4ZrP3_k&dKQd1If|E^4jdzw<8JM-x;t+8~X;wpNhWxmwy&C#Ea#I)(R3O!@tNEay& zp%ESyBzNL&Vzv~MU$~46+nGbu&eTcYy$al>niuHbSR!TBD`ieNhet(>V_O0c8ih6tB(?A$KB-3)vJ8M)<0a&H6=Vq%N8H- z6yZzjPUENc9ymA&Xwu6H z$dJ2T*T=ng$WjN{jkN3DDKDL+=BjRTLNh0ZPL&k=L1ZG8dXd{B-* zlpe;LH#VY6XC)|9W-M;rv;v#v-a^ZCr|}wT@nr9;0o2qtljN;mMa);L61yTzS}5m3 z2Q;ms4$~IX+RAY>H}NM~RMSWP7N}F+D3IR%7f2sQjH3TSs!3g~8tHhPMh4}4Cywxw z7}(a4LoH^cB%zahcsZU{7j}^5IWx%58a2LH-Iv(vH4~5B5u_v_fNZs&L4vQ`w^KEt zXl=$1bbjVEH2tCis!lwMHvjhz?K&dDpS}VPVS8{-Od$Ty>xHfKSK^V^H{(^=e)y!w z2YbeE!=Y=};R8}9`|Dx_ys)+fecG9Ux<}cgshx=us~yWo?0^(P3!}(x&W}v$2qU80 z46?ZH8CmsAp8mO}OeIU65Z&Jw$PQ;Q+4{hjq!@f54tplhCR;_S@r#m;FEYv2(PdibaNDS2Ezpca*UJco+>_Si)Q3=nCr2^8)BLq*G~^F&vq&xvG( zN%UaeF#6c@0r}PEO6JXaORk-Crn0?@>A{>0^oi|yx?$ipx@_42+HF3UZXRVv&q}j0 z`+wAvi5vUL-_ob#W$iHXW!)WKGA4wKbsJ7MEmx;9jUp~mOS;>&PvPRWdXrgb2z|7+ zhUjXRa&__k==tdw;x|5u$}9R(hcDx~J4q*Sp;{>Zy)Ol&kVumH3~@Efz46q-4lJuD z4_WC=c;&!E{CsN+PWe`X4-I&Ww{LC1k2WS^!+0yaa=S8S(G95AX(%=_v%-U1w50r{ zOe8KGPjvPLk_4+IMDj0|AMxlHdXzQ=pVHREHJ^W>aE%7es`WjmWSos&8eT@ZMzKgM zcLnJwcB8vxGO2BC13l1NLn~+%9lz!!rE>jr*`d+QP;(OdO-Hb0$_DJ6syw@qXDIU=Tt6<8-(!`ZG7RY2@1^pz*U?IM_Q(z(Y41$ z_+y3&E?IsPZM$WKzJ7K^p_{#syHXx+BiY2o+-*c_CL3X!TjqFf*%jox{VVdZe1Qp9 zh%aL&tQ5Q**Um4NW^#34nBirtFx3>l`NSjV-5F%OOds#?RtqIr7Le2*xkQ6Wy|-rz zsYCWhGN5iURZexIZJR$+p~Hy1kpiBC_#V3Z=0j;drHqcYF=aAa7qL?r$C#<27c;z@Q=9P_~H^Hh>eu8)y*kRoHZPqn{LOAUu*Ckr#@UZ?I~XP!wZk7 zzl2L0ui^H6m+|g>kMPE#Zk%TS6XP9~SY>etzE%*6|I;bJSz`;N%rPJQ`uztkt^Wb} zu=*g4dQnQdzCEWALK{~d@wnu zD19bQ!TxHq;O)NgFz`(rI{0BU%W>Jy8f%*A_?eH1{?#(_Cc}%^OZx_f6A?BE&%`#Q z49_XCf&;NzpnFUR`1Xc_%$s@8@@h1+`;LS;y9Yw`5q&r|KL(GCjwj!KKcXj|>a+H> ze`w3m8hV3#rb|-I*``C&*l9a4`}=SZE6xa`Aq{C9&D6xN&t{|Mv4Px!`VZ*n#$aqe zfZz%#cR4Vg;DZJc_}p=Oe5p$V5AxN+4`-X>mL0nI{e@l>tUnKZURfy7dti@l+3mvI zK4ZvIJ`Tzk=E45%E*Yzx z%`aq;wGo|OcAoB-aEFfYdP@g8^Ry#0pN?(sp%Wu?*n`81rA&)ZcFpS|n@||d)|vRT zfntBQMLnB2t3PFrceOI($tA4NFNMtrxz4tS6|l61X!bM1oGrYrLaiQ*LHbvQ;9dC! z=u=#kU4z45Zuhan=y`HK8hlqC=hZvnr9~HT?VJ0U#mc||zkzVjawyC))`jBrc4&J6OTzen9id5GKRAPFmuBSR9VkdT=di1w+4RGPJ< zd*V*em>qG{q9T>1dC9Q0B|qug<-h4QCo>j1V-AaZ=fjR_M6mOjr&(Ec82gVaVvAQQ z38F8Cg3D_eVc;spCUjq5XYGTSww*QWe=h^g(a~^d_ZFCSXetngEzmNv2$od$gKqkB zcy>Ep3LqT{c3&#+{xweU>E1+0bsd5|kH^qkjz8$5j(&3dwF;U#M(T>WR!CPpo1bjTQ0jggf1J<<(ELz7yZ>b#|oG=5fHVy}~{SWZ(tn(=E zg%PbyoJZAilIep`Dc{ZcA6*~cO)u0n(8mA1(JAsn*deE%v~ur6Zh@5Zw|I0E_Wv#Q ztH(UU`ZsOhhWC0nx_%>^=Y3)HPk%^jUkcR$>)`BrFBm^zI`DNCAn5DExf~;S>E3~B z2T8y8?aPu7TOPsnZlu+=O|;&P(e5c`Y)0l7HbKRSU7zF0bce^Y^tl2P?Z3?)=ssmb z26wWa%b!^Pihh>sCod$sDhSF}QYYf2hip$GVIwz&uy4{1o&JPIe6B_p0{aHRBzPNlMEN&^20{btl~MmUN!@N z3%`zsFD$|9RG;7pR^52g*n4>2ByYTU;w#)0H6JQ1+(A2T2waMf!7etw_|O#{AU%^n z&Fc-0b~3;xUAIeFhUd8vk(cm2e>MEAVk~*Y&qZ4w&qjfkrug^6iO6IBOma-h!dg=u ziE+P_p?IhgFMgtk*Bg~e_uMgf!IRs2^*?+)37 z`O8w?;GuC)aC$NP-MbvbBV*y|GXb)X--nXvx8Q8R0XV&VILyDG4bKk`f??yOE)B$E zx5OsYy|$9Pc2uDYR-5A-sVlbP;W)7HQ-w&;J>1$l6pAj*hC6cMFy&h;?CCiLH!tjm zfT|6UJ7qdRrz$ve#ZnsFajdZSBfm{8pH|!-&vq=D$27WUv8vMxS;QJg)}`;l{w6PD z9u0%o$h9SOfv1+F*W@TR^HY-U_k6HOR~6m_dO*GX0f>D+3m$Em3C%v+L38FBIHTbL zEpOJrfIhTdGVqC-m}=&=D$>9P^S znVR)B)^a(LsXV>IJd~T+6tjL-@j^vV88TF`8*3vh|HcVHa-1;kKP+r6nIg#S)e~Or zEMReuXR@({jr8co7BcUL7^k&5z|ApXpm(Sg%BQx%KT`>$4v{)_nsecu2M@pIFxXrX z1t0j$@O--i)GRcFmc#O}d4()Iw^fD8CDPC5@3@@B;~ih@uufnj7EK=mYhF4-O2a_{ zi(Eay;mTQv?3HqyS_7f??i?8QwF>W?bOfJ|EWjxvOYpB;5i)SoU_}*2*!>|XOnjl3 zT}tR;+a9V5@xulS8t=yn{=cRP=JHE~YK=ugnzR>Py>FoK{%J3>dh(7H7F=SF+P_hs zi~q3eh#dfZLiJA;|7rGrq8HEY!431tpOkJn`KC(U$`t_<$dHDO`XV)8pX6@Uvij z;1tN;k@hT0{2{+?Ayk~{!3L)BxW70POO_r)SyS@q7O&|nAowU#k-xxttEw2OR}>bd z4i@5{mqXERKHJ`$RwxrYe1QLyaAKm69T6PG7`!S8*Q;LfY>*t#JU zJ6s=y3l(kf`a>$X=dlive{U!~-!SUA>N@SadX_5mX)eqcDav$PQ3lfJh_&SH@1TmiH8odyff2+)2P2etFF0KdtArJjkM zC(2ULP?#!&+d2p@Pc0P2K5!D&c7ZTzpslcK+$2G-X`nFI{T}=5=EpM4O_)%7Uly_qPuL@3$D}~0p1+e;BDjb|B zUD6#r0}pbxfo#$O&@|fsN3$0~^wTl0vs4w5ff`p(l; zO6Mhw5f<3;kGu5TUW~8&Hik{=A{e8x0D@l~hW5$faOqVNn75_CilOOnvF8$~Nqv9? z`u;Gc;4~;DxTO{Ze%@Y=B+X-JjjS?2j(iN5#y;haN24gY}Y5vw>~*aW(3co z326tYg8eeutQk)4WaZGB@Bq4ddKNWWT1r9arD-K))Vi6YGr!c3J8U%#sWPM8*ViDI zC4TtJ&jdUn_8uPP)`REWodOCn$KjQ>54^v20>&&3hRAP8U{ie?DzE0j#gvP%Z(bPO zdlL?!c>%C(+fH~q)dKE#q+us7B`J&6gY-?iPG#3kX6fEROg$opE$OOe>x1Nk@p?vr z-nbFMcJWxjeCcH2Z}lYMwg7^quai)9X^}vBu}~6jAw1qD<;W$d3jV`EvOzgiPQ8!LkGfA=T#{+2R|YLE_MsXEy0p2VjpOq& zQKL*c+Mbh*y=0W(PlEznKRpO4-_C}ehfl)=?RYTWo(YaQmmx_h8AdF)A&qq1h1`!7 zpnobI0>4IpjCVN9%sLHw7!!ms7uNF?3{)bE&okV~6Yp|+eflRgHE=z7}WoD_r z*rN0S!c`4pVUO_`;jqkjp<|TiBvO~W$p{;PH=HbR+YN-D zp_Qyf>YldrTF9<+OBv=n;&9P;JGeDi`utA41mwR4SkWyb_6k%Jmp#!Fd&KIAm!HuQ zPn0_OPXE*pTSO^|y|zm|okq`~MO6Y*z0={NRV*0I@rLHoIp8g00urr`}<>oDbUfhCsf3F19GjLFab$k&9u?RO|8* zmOM3tZJ;+Bi z-I|Beb+TW{`x|aVBV{p((>yQDettl)*S2H(?qFPAdqyb=4JSSu3zn;~JT)YA2&xzp?L=Wrh998p4?^gN0-I z!-bbNX2Mpp(SqrE6T#TjNKjlT?Mvqk5K?S^vEP%Qvn8?>%(Fg&xk?#;m(N(TZuK&n zzEh1FZB|C6Uybm+iV|$iTSCt1<#00l1bBu-gPc+h_~~DV^1+!9YewL`K{*H`%VFY} zI#`$41T(Z-z|-Url>MoO<{h;Vm{kIUl5RuH&;pqFD-*sgjRCn4fgoDv165LKiz!QB=i-^LX4NF9kg|Aee=EY@3)R@$q6s_pJ;Qsh-o?v56kwb2S=h!d8~e>U zi}P#uVl?3>9@+1NxkD3i(;{=cCSHV(Us#Ky7A?RhqIJE~D%q zO>)JUqkj2$)MV^0dcDG!={SsKkv>xQ`SDZi;@AI}^~P-0^^~xr({*h5%ocXp_5;&C z)We>6DG6SkIzp3@p3wYFR~Q*MNGLAT5k6+B3a+1Ig~mJI*t=(~Y*KGMo18#c;p}Ag z@znvA6KuxD%0H!Zw0F|(q1Qw&X6(g(N}plyH-rom7x*rB8vF~wplEP94DsQ?loMcB z?j5*$qY4VmU%?2w5AfZw4d(pq0y?=DPVM;!Sw1bWerhAk%zgs2=>eRwF9C5%9>iZu zhy5p#Am1q(j`g2`$jK++-;HgMV=x~^t+RmK>pHOTh%#uGyuphX5}dU3HeMN#fT z!wUirH;(5bbk@JNuD4=4~dD!s_v)>s>1E8E;9Z z_kJPo9W3aFi92cUkqFvGAJIuqG#OK~WVJmGEJbx0)7iO;4IUfJ{+)?oCI0DbNBwPf zTeXIXLZq(aq8{e=R8i3F(iYy$(HGtxK_$_jIM{NmG5EU=Pn5BmvRyRDu@S_D~q45QWJkPQWe|TDT${a zmJ=rn|KOX=H^@%<0Q>hnhNTGt6hvPGg$t>0SP}&W$Ae&7fHxdV+zy8qF9qLm9Gp9= z4_;IHaP+P^yk$=YHkJ#*0ZvXhS#B7f|L{4=ZPRFLi!n}Pdz@~u_EVK?O3Z6UXMbn$X-dL#_kqHLGed-*YGH%Xb;Ey}PHe#GsALuGWvG9gJreq_d`5q>@FQe9dC#_AsaQ3PQy!ZK2j| zn2>wRR9N@GLU5ZmM);{QM(`bJA^7K;2` z#bS2N?;EY2?n0*(Hz14ldK|fY0=PKrhcy>tVNyZ?46VEmPHj!Fx}zOBCP?{T#}&jI z?x>2VSF4NX#i)yyX{d`ggs6$bx2THwukzw4cYcA6W)~dW`39n-cVX}-hM|jdAf!JD za_@%0ytM&v|Ed=lXS%{J<5{rpwt&9z-dW*HIWUc-n&vap z9e3G9t5>Y_cNaT1Kwfy*sxCP64HS;u8Y0N18wtby84Gv+GZYLz8VIN74HTmMRfJ0R zlMUbXih11?*gf?Wc3Z)Vg>RV522XiNeYzi!%}0Kq+$Z%|a%~*MFWd$CHZkC>oejQ9 zMev_Z9dx@k!G|xOq4r)6{F46xmCAo0&_+g_^;}N8aj&fSugV{|@wgY#8$W{8_csvm zz7Ae0+<|(}>!5Qq5x#q$hx$#@ccRBm>FC!P8q>v~(lZuLEEx!x6(lOI@*wuC`c7t2M zcJ*yz&c^;M;CL)s>zBm}E$*-k`A5?8|2wv5`Y&derzj{k3=q=i>k6N?>kA>{hX~O} zhYIiIh6p7$1_=*GX$rNvibBNJKBh4AHDju!Oi?zSA;SQs;X9v=iBMtg@xkdW_lo4EA+VTbcunt%>k4C<_6Y;eWV;rL*0 z8>$Gqg5Jvqpl7C1mt3kPs*l^jId073c9{<5UVSQ+)Iazw8Xr>0$A1qe9uwv0z@I=Z z3J+1a`UHCT@*TSC(I+~^MuS=BnzK6%_UxtiS~mUQNjB0tjF}atu(->4EZVA^eVh1{ zEh}ne856!S$5*mK=u9P{6sZa&8`Xp*qg924W0Zvtmh!^(_8&~YtCcCn*0O``h0^^~ z5>vYA%X(Yqv7-GtZ04~Ww2sNsV_7#*<38)cEh~OE1)IG9^596fk$I>;oOscJTa*rx8A>s=}kYJ zIoAQ-wvlERj1Qsde=9@{+#&L#=L^X{X+s6?HB_Pf6wOV)Nbl`WqJw5<&=%7?y2V05 zwJghN@%kD%!1O6~eE*Vu9`l-xjOe1fPxjLxUlpYOb4|7^a1e79jbuN9#^@AfOy126>->gIkD@qA0SHp2>mTDUB7TX| zY>poNb-5}dQab9{6eb(e$(x5|I%F(6?BkIr7Wq7Z?NCc+2ghbHIrp1vdAo##{Vrl37M8Hgj#BoJ z7PID!cbL%&p3N@LWeN4tzw1h5M;3%KvE6C5V7CX0FtTUjVR~#v(p$Pr%7iR96-#V} zTte$-oyHlt&G@2p_c!O*9Efk&4Fgo)SBd5ZsxkeznRT18uZNz&e>3H=PFN}^@NckZTkd1m5w|1=tX+Hjp{9QGg z4nMh^7XJ3560-<;4QEo9>t*!h`8pbI^qLO&uboaz?x#H(vaE51Ec207Vjcq&*!U;% ztR_Z@?GBb_i#?TCQ>Ps3^ps=rwQ5Y}s5)D^L!E7ysm)?c4OmR>80Ix%95ZuAOr(q0 zrh-|_@9GkE`lJi9OxVhHWbR-Auf5m-;Rsu|&X-oEx={LBtg6}I?d+Q7~BFu(e)iPnPiwCo7Cw186x6PDmxJ^IF z`_S*-tf=b1TZE6Fd`T`_ag}?{*Bf!ny1#>0R z9WUJp88?BNaEO%Ggz9N6m~3U(tX9gHm-WVN+Ox2E;w04cnQ|u% zT_;wV{Um$Zc3R|rgsy(SgKp}Ipn=`XscT{k^$E|WC;s_T$MctHj9MNooPV8;eUneO zZN5Us%azcF*Pqc>ZpC!T$~Zc6({<`1S3zC*>(n}{pU#ZaV+w;?X>3F%wOQRom)2C% zSLw3MP)(a9o_#=@hw?PFtBH13Kc@}0RkT5+l1{2AplfO$Q;W4NG=}t1iz7VU9P@}) zIlZ6(;~J>V?_abo^)Y=En?e`Hzo%{zU1n8NLFIE2=#{e}v`i<5&X0_yPp&MdeRn&_ zwG8PTw_y_fK42doEbX{-?rh=~7R={kT8#0vy9rpj1HyqfJ@MTT>F#B@GWh1mz`2jF zu&dMyuJP>)WS8`SO~4>{dejy4HwJ;8-f{RiXBiCsIvSE3Z{p{&|6#Yb%fM+Kf{V5r zNaMkW_;buReC*RY^hxz5&A-!07aW!)HGA~o=`Al@baO7gKG$2iYu2Yj!*7uXUIRtN zo4s-E#1J}qkqz6L5ka>;xqo}u)^r+wa5tSxn`rd?R6HV6XyVLS z^zqgGG}-eK(%i98ngNg|%M_+D*O+@$yL=p8kgY`r%)Cu&O;=IQqlF%Pbb-n~bm6*N zG}yScGO%>+SWvJGrLNu6aiz%x?6ZF;qt!fJHc1(K8-J&-|ITA+5@1m^fvkLVEF;23 z7PHBeUAugoZJ%(K-8_)Qe%!WaxdVM!T1h7R*7Kd7^fqAoUvkX*oC+(Dy+DT-$*@0* zZqW@r_2}7wFchnqkFR`_y75{$Tz6I;mRI&+x2zs~=A=F(woisrmLh0H6Jc4A4*Wc# z3+YaO@SK|fpNqG^@-+zJmKlQIWoz*CoeV}1rcnEF4j8DO1o2K=@I7b_i*7E3U%~UB zblf25sC9t){G(9cIS!b^d=StG@O0_HJ{<}$Vy6<+d{Kv%i(j#;a~|dw&BSN#F2sjc z2cSm>8j)9S5K(C){OnT(+KZl zvVuhp+$5d1?P7avJlL&K$623OIO~)<%gz`2vFVOEEWVtwzHb?9Tm4No=w>eP%M7I@rmSZ!BV%iVzYdEA(yo!^$$hu+!FWnAe+p7O~x*^*eKH z*UYbU5I>&&jdj3J^5j81dKY}za1}h&2>66nfROYB%tdNq*%RvGSxSoHWB296zb+_> zjX(bb+w3neZNOXb8D0jJgOXsr@_AS@bqmbM0tosc67ORLmq;rfs_XRkspVS&kJA&ejpBH}u1<8w4Ke zhJxq8H~5NpzxJQ`Pzv$4=>1GvX7P0uTNbv3%`Mo-dg|u0BQ?(Kimd`WYgI?8t#0En z&DLP0ctHG(y$n7TkHNoJUNm*Np-47iw8%%(UZio*LZTIBHg9eAeP z2O+u$6kH=gbBr#`+G_#7wZ!`KE(82ot&E->S4wYebD$@k6uD!;eVnq4Gc}j9qqXJ< zFZ+g~af=?KH!sy``1il`lfF3FPFqO6y8`-8o`!+vZO~yWC8~X_A==fcFA95aAexqED2m-? zB69WA5*@CP78PIk0;b-NK(QhZYS zlYumG7e?DlE^Pe+ylA2cY+fS+u(Sg^&69*}D~zGxoe~V%m*5dAZlSn7RqEocPpgYE zXwNEZb~$kyGn$sb2%p6+9nNO@)m5x&e=9R=f6oRbrG2up8=37yXt2?Ie`h!gMoMvpCHHBrClbG0TU#OT7w?jUIE z6Yn+0_k(MfhA6|zR#f%PK_qI|5Y~01715=geW2W25C557fT00VFgY_2E~@W=_=2TS z*gF)GY{gyEtL1naxmqgZ{r?3fxlR-u1AT;@`U{0yzcvb2og#!?eUSosx=Zjly+~Na zTMHvc4iOXVquJ5{d8~fI6dXz-L4U$UK<*D9LQ`I3C~G3xWUeDBZj={|bAAp>B2R$v zKp=<;lwe)QN?hj`K(xCV9lIVeqp0O zv|Km^vJ>}$$&nzjXVU?;Dj7g%-Y7`ay@NHyoM|P^e5~G1@Te{w2v&50Nh#wYsM`vb zjdz5^<u#%!l1sn_&K!Iq)yo0r)a=D2g4xBlk?jyQLNRl1ImA`R!lSQF#QLV>X4o zs@}tv9XQ7}i+j<3=ajRqFSpsn6ZhGsu^p^HOH#-!P!q;XGZ40keHVVi#tFRS7~z;K z7Pgko6Yr)%g;Cccg%rOnf>pkU;3(D%zfNgnFT?y;iq8|0YBBhvoR9f0b-x~Wei>(Pv^F}i3mOI3< zz1J|y>FP|<_$2KRcY6o}OR?iX51#tm6XF9df&BCiI41iEeq~6AX1tRXdFLpJGLI^X zM!Cz0>XpQdt3$8hVAw7AH?k5I_~k>H;t2>#IRMT*;o$f(8d|omgFho(py0|dSn1V{ zhr9J-eySZ@eK!h@w|~J3GrDjm4_ovzg1voxifKx zu?BDivfmj%i?q0_G<6I;BW=j$R=BZ-70cM~2cfJrbsak_F^@eRBF$odOH$v9N3pip zhyPscA8u4ngxk)S!PWjYSUtWE%jFuxoURA3ks3MU0ba%}{;-1n9n`P2f>UU3#*$i0GVKVY=>YcwrK zIW+2A4E;Vul2#<=lC4{dXquZDTQqGhTeUNZ#WfT$?Zwxa!<0wNSosIbv>PHUyf{KA zon}`;A7JG>Im4nHbbXZjr z042OJ*lvG??dHzFiAjT8^mf7lbh8BYd-5>ptAdycoPW!jG(#!U&0Vg2jRW!6IU=z}t-! zVCNH7XL^+N4Gz#dFIus5L=m{o{tFFMM$~8f6^1=+0#3Ub&Xu);ub6{!J0k{c+)D7# zUoyluaz723HH-yuOPSTWNVX*8AiFsdv27zWX%>~|EZ)0fkAvqi|D*@L<&l`i+2N;qj7+QBbL~!jhoGr zP^g>U8mVaySA#aFWcv^35vi`+l&LIg-Nq(BVSGWE)}C zAs3@sUMOrlv{EP?w@7#wJVLO#dX0^=2xI3pvdEqJdmt*D2k&dIA;Yu- ztctF|AKOlF{`n3TE`JT@$A5+$Tg0A?*l7If_fewa`GRg)KZkwGjb>eKam;tydNw-C zh-ry;maUBsY4DZ^I%WEJIxO!SGF;&e+b$Hsx`TNTwZ9T(oM;AJzberBRSvm3iy-&z z5wLqUA1+54K%sjRwpdb&*YvcY&r?1V)skGN9o-7JHeecFy5ufa+hqt&lYHQZb0!r2 zu7NnY3m`N`!@E}g+Q$GYLpsyR4k@j3k8j}n|}9F2=& zp5fr}N+5xH@U=_{xagw_o+BFZ{?-lH3a8=6tF^FvSqj?p>K-Yvc|k|c5wQVwkolP9 zv(ugz*qbDt>1}Lh<_X_fahbY+t@MQ<(T>6b>6yZpchiNzr3-{|*R8_RODlwmOg*9R zP6O+v7CpC*!|ssET+VS&0W2a>a9y9F?-!;!@`4n;_7nzxz7{Q#w0`N zsa!bNasghn=7HIV*yK4tqRnG0Z+R6z%ioXVawhVRyB3f} z$NMPQA{qBQQiGo#r-F&m4A{8B2bvFxIU)@{5P2#N4v613rHAG)bJ1}4HccPlO5TAfSqzLWQ{?s%xmB^Ge6tI#;pFw3h!wN8={Sc;1&}h zYnO%aZNOGYdV__2i)BKL`YPe~eRH88{RxX32xlwJF4A#%u{iGH64=<64$1eg!@l0v z;H~u>=5A<*Sd;%CZN8Y*Fr^;C4u`;wrf!@$a|rgje24xWuff*O&i?w~zLONbz3uz<)ffs;Y!m;Ud_tz6SOkccHSD zK;QaP@Xu@$1hkkz(Tp0rQ#~D5PN>CbXd(XeUjshia~01qVR)_BKl4a@w$ucVfSYPQ z@a5qec$%{bHa`o486LYJNPazJ+d6}V`20}tH3za-34Eg;;*(|P@$s-5SW!L|-?ur8 zql}aAl)sTUC@l`(n{pe!-&}yB&L76!9pf-(t>hA`bB!eDt)c2p(#-tYCg#|5iX{cr zu>83%nP|SGaP*O;kQHqqEXZ^cO#7w?qSM|&y4!q#b6+K#o3u`N<2h4kZZHrgUyu-H zikaaz*Y(joH`e2$d&9t6@jCS9)<8$Xb@;OBHGJ@p5q(Hk5?L&e7L8NCFVyH@Y_r3>+ zWqA#CoHL zkUMFmOZQnHn)B2C>__2#@_$qbgR~3!dOkNDGm(sxa#|@DB`U>o4$cVP2 z4i||ev_;dm{sL5a3wXzDc&ITttDv)Y9VQ1Sen9(Z6@Hqi3bS-W;M4Q7K)Z_IgjWe%n_dVXoWv}#<>%p% zc?RUxCxEzY00u-_Ann6=Mb4uh^)w6aT05 z41aqg4?X)3%-!Y$W0bYT`xrf_{LdQxZdHWEy`^|u%xyeGy8%yh$iy$oreWPcV;m7O z21~~vBsKIkQQy)#`Ld>2Y zI09gH1v0yu#XPEhxZb8FD&MLl8dUiL1={8Ca6vNUdLIY5hIJtHN`G!33$HuMif1fhd1lh=mVXn?4zHlYN_?r?^^I7v(g56Y55vW66=3rF zDyVOwkX7FZ8Od$H9d8t~Z?3|QjV18TJRdH3C%}u1YvJlM9cVux1$`9{@U!K$*!R{G zyl3DlcI(K&i%O>8Yd==vm0AMcSlxuD7ZOY0`_$md#?ej-0eb%fexVTifEnwSnA3g=12lMaV zaCAozzTjU=Z2j}7&WCqYsY6@*cW1Len{f6lG=i=CyqT?xpUq@!o!QG&W%hVfFpX_? z!Z*Ilg3o0RcE1V%37=T;EO8FHkJo@U?u5^3ouIFC7t#hO++vp?&F>^=jEsSK$NeDG zjf1XOQ;>;MfLWjJ;IO50aPX}4=x%2|DVwiHKCV&6)7s}@qCOmJG|onDv4tqgKM;F- zO~lQ;XR+mh4E(*J0qc0l!@U_A(3&uS4F}7y+^-ZIb5a-YF*)wCCPtS?m$*}e6xqB6 ze>SoFk4hyN-Bt@6mEShvD;yNRSBL4hh=s@V!C?}2HZ&4=&4j8*NPs_ z{6rQ=`B7xT(`<1b^!oim`pqYluFhFX&ktWq^}@>OM9&&JeOnNPEu-o2bwM;QHG$r9 z)1-Ra^NF5!Af53(i@rV-MtvMK`O*`Uk%~h+4LNJdzV?o0%c9oOd*%ixPkiFN_-n;p zmUuB)m*-Ua$tN;()gd~y#E9|7J=nBDdFID1(Y=L)E^~cOW2=>!yO}Br?084hY>KJ# zoIUi#)+B1&bd~C{TDmCXJiR7xRIbB-_D2~~m8E~kckgo2;=P9CI=him;x37!S9;K^ z$r5;d&J0Xb67X-wavbol9?PGs$9G@f!@aZ>3;#ah3F2(ig*(dN*fIIQ!!I)p@LI19k>LvPVv8bl1ggOBI7Jxm*^kfs?85w^PMrF!3(IY-$90j#xPDUs zuK1LVlNRj3_9Z@et0mv*)5~X$NAYZUUf!$f$m-Pzh z(SvnpiB}BwWpkQK*SJj1c%D46by$y{njJ@N0UTg`!;~!> zK8!I%8MbTqGpe}i3fL2ycA?sEBvKzTcguoY+dCXQPYN8S zsK8-K8ED!01{XbffaS6qvDAgT_<`ajJbYIIW_TCg8@LvS4bH_Xq1O07&=6eYP=d@Z znxcw=dED&lW_-p49bzEvha3#abJ>y+?;L28L;ROEkR@+V5VF{dByVvhQ_2u&9%D_O z465)EYJOFmOm~&W#G@{^hg(!Fv>HQlM(!eBZ#9YZ&$Ikl%ZcQ;!F4k4w*>vL@;On~ z86-A_&Qx#0V)}jjV!Eu)pIQyJq*iF-edX~;|` z+Gb)w4}7{wY%7Au0#lyvJh+GN(t25;aY73%-=cu4+x+p3xtnp6?m{fG55{&*N3rdp zOgzm#7wdZ#;&FPX@txoteD^~I9;mpA&)DYS`mpoZqVX~g@XNv59TIV+IOlh5e*}K5 z9fY?uPs9JlyJ81%zeLAeQ~YVE5w1P<3jKGZ1r0<#MpZ2o_1RxQHg4tUjCv%B3FeU3 zoW&^W=@zt1dku=&eGCaE+fhk;FSn_4EmD6SiAD`ygC?DoLVS-JieBEu$+rzh6U_q9 zp(bB0rCPlz@$9rJKb^yTb9F7Rw8)x-51c2p+j$bYF`3AmK0(f#_mT%AWGON>pmJ-B z=oGUd)Ois{v;H8u@6#9>V1#IBrxQK+-&`6ge#UibKJ>@?IrQ^_9dw;mD3#x|o?5?+ zpy_*}XrI(;=Pz>6}O+Nz6_$iB}=IIb5Acnm_ofe$I#P(l5|?v zGm`ve4hi`)os{nIA@a?2+_Bc9$gTc961GX=S?Y$^*M2BtKWv>6XWLL1^i|_Wx-7B&?Umx>)f!#4;O5B&kGN4vWWU5Sy72Cb~I_=o%lVvK(bRE=+!3T$u$e*c=B%bh9t-L1YAagP<4=vp9Hp-(ZJ?t+&!@Gb6*O&> zh(0ZtL66bWh$wdj6p&P5U~EnlAPs7av6Owq@VQyTh?$dua-PFkm71bqmk=~ zWHK&V0v)VwBL55w=_7+&vOBGi_^AM0=r5w*)hfxV=OWszx|;@_QK#d#9j1`Bh}wU0 zqNR;fXv&!lbX?Fm8uUe)&dJH8B*}q#H%z7_IvzC1ejZUAdWN!HHguQ#6JpZ2hK@UW ziGS5SOuCSJZ)8S6Q{Ld{c?vAHZmUbXeeYIY{}ipxj;Vm9I#=N8}%7SGWppA39+ zyd1td<`Zf#PQ*)V3+HvNTnauW8LA?ze7oZGSX~O>rDGdE`sC?aZbx#2pAB4enIJxr?4t zyHA$~e5Zk7S}a=p{SO>1V#?9e*wKLnY;OG)_WNZBTR1s_HM>SJne*W+Z{|w2TXQuV zc6uIb{OHO2HoLI$s1ABn>H)oxm_X6|a-u)Ao;Qa(XxuVS{IB6UHg*~Y8j==p=DZ7} zi}zXKiF09s;Sx}?UJZYrh%>8ucEOdyfnYgjAsk}UAS1&L{5>qe0{x#!rF zxbd<(-fBAqXVCyGIVu_V|2>CIzcymGm!I%t zFKPI0HxwFeeqr+|vXFT|7irkXmt^~H?o-Ps^{3X$!p3~Xca3zK3iD6m}s3eM5+Vp0kmAAcG~G^D`Wpi?l{ zG#^s8WWmqtaUl17FMOy7gfw3-Xjid>72-~v0mWRLyw3u6#vMhCEycXr&(GvrMhtCw zaft5iIZU@|C(~!M#9oU}a;W)tv=;EoKv9Ls^h%GW%dyz~q!}uxQDrY(?^GmR|Flt*%lN z_Us%fY;)5T{8mW_vI;Une6Fl;aG;kBCe$zyzlEhAF=awTD;4P=I$XZaA3R0nT++95dY4fv?Nf$@2*@T{R5uH5Z`;;yGK@pvWtc^nDDy_Uhi-H9;s zkT!^MHh6G{H760chaOWbr<-5ArLrzM?5>P0v;1bnKD}+HZnZb*gpy7gJMIp(JLgWn z@0GvdFf?*30m`RPL1zDJhbuKPhBRvWTw;zAMb zXb}7Ma|hG=xt6ueJ;1*GN@MQ^tJtV}9qj4GUUq(;jPO27PpB&zD+EWI3m#oMLXD@c zP!XvuWZ9?*pZ`b*r($n1bowZZd+ox8*-J3>E(=;Ke83^sro!&1NU{Gx%p|RS6B<;VN99ZWX>eaM`p+!|N3W>HqaQ0n zVXGr3UEK&)TTj8x@*D`%DuIZ}3=R$9!PA&QnUL zw#rn9XR3?vc}Wh$+`0g3(yzkbg(V=#CBmFBK5)R=2;LpmgW|VJu=VeCT>QoqQ$-u( zE9L}+C}z-zvJ2Ge`X1_(bDB=JI7j#Ox6sul^6b-7Rc5%%mU$nvWM?*+v7hBWEX+2V zJf}T3ho=vx6&6k%_`*mSek!3sZTXE;wZl8EKS$7p)&S?hp?h|~TFDVMrl^0FP zk`_hdw_ta%2R>VW5fi8XgOKajpkwhNsL{}XgModxHd}lyEO~&#+Fzr65A^7$Z5i~v zQ!t(6yNkB@d()I3d|4p8>DvZLU*>?yY4I7jIRWpO`4K(PEB=k1N>x1@$aY z<~}>=*~N0&r3Hy@MZxF!FkxVV-%g*&lo!r8eh!Z%kHLI3ze zc6!TB_GP3V+vb0go}PUcX(fo~Yt41AbY?2}+z6&i6YoZ#-pOse_N!=g za_mH0e{vD-e%FjjKHaSv6IPBI_n*Rf3+~~;BP#IQ$`kIYFM^$)0^w=IHaIawoDV&j z1~RI}P!@0%!j7jx0$m52V^_gn->qOYdK2v3E`r66O7QJ&ZQi2tFv&9+xj)|pRc=f1hI7;X!bFiBzSex7CK)3e!Nd^#JMagnKYQ|3RliE;Vw zS;dFf%s`we`e-a8c;sma!_qZ`vu)x$myxD$FH8JhUr`Wd)%{_k_x;Bt_FQ4#$>v;n!&VOsj_L zBX5FolGrEec?t4Mvf+GWA}rb&2}-uxLBeE+#=mmIg(iz;hpb>XzKF7iD3h_LX**I>=JnZ3+hF@gfz(Z1bT$LMzuUwMB zyOcEWys|TR$InL07vx~MJr?-Y3kh8CE&w~9PsZJL*?5)GMtrbP3s0D3il?iJ%h?yi z;Nd&{vE89TB=x)s^;924yJgLAwA(}+Sl@`A1z+IwkMAXOr}}XAvue?hIY-d9y;nHR zf=Y64#u=hNqf*T4bVlaZD(FnPQPoPt0HQozkK9)rie_kOBA>3&&T7Y3kjO<(NX8*& z^7y>KU%I!S)UW(b4y|{may15YLry9AHL9Js-_xP)w>;>l8(#E>rw0A2af8$qH%*(uBEIqmTYbsT zEvdxMBa=M8RZ7BlD^cNyF8%0XNY`GpqfN)W>1)3gbg`8m?HnIU`&_nAy^%pwcgS+; zZa92^UAXZ+#5o*#$2@BHBIjvj%EF3m%!2ali; zmPb%f&IK{l}-=vTD(fBJlr_&T{9 zrF{=TcOn8&(f25H=I=4IZ(9y(yKw?JRVN~Ag%ij>?Fed_bq3jNxP;b^C_{Uv6rqJW zdyu80KjLavAgQxe+zyjePT&3yHz_}_>eg2e^4jVesWl@cY*HGz;NDGi$q*XhVnT2E znN#{zh2B1`N^LJH(Y^ATG&jbWCj08p>U1^Q|3`^71S!#u8?v-ScYs9xtt6kyo5|9{ zax~Jfg#?-8ku{r=d>n5(=m;L$hazk+XxPs6>-T@A3sCS=NXe zWPc&B8j4rXmc@^eJZ{~pgH^s5VsCj1{6N(Xzq7W&4{q7w``5=|=T2k%Y0v=s?b5~> z64F>W(t&hl-A56cXOR8p5aiM9kCbm{pjq{cIG;2*7el=y{=Lpf^0C{Cbf+F8QMy-2 zRnrYpbcK+WJ&(xxRX@p0^qZvpmZpy%NYc$szesz9G<_~9NlAhf&3Y_FfBci6Ph0t`(BRZ^#FJM9fKk;~I5-^)6-p%e)g6Q?AY8PP~cXf|BF730xuf+Tav7 zt)qdn#E&?otCzXeEBd*fHDl19p%c&v2@VydxuW{h^U?Z=Q7Cgtp}5PZ0(Fe97tgdW z&^7V}z0;G!wZ}EFt+W|Fs&9kcGsod?e;u(-gBxCQW;(8OoQdD+O~+Har{HNFlklSt zPPj`LhgAbdA@5v5s=RnTRwLA&AaeDxjH1_ z_B!&@@C2!Nnn!x#Z<7(jpOA%D+DJ&vPa^$Zo;LkfpzD4q)2=ZZ)cTwTT{lXXIx$_U zBs-i&OjDyF$A(dh>6+B8Uy|PU8zkBrhS0Dj{iIC#16gbMf`s=yBp>eGA&dL260ssd zK90RWzN#jXF`hffutO_}&l)RYkUom2n%I-+>n+Jj3oY_YqLGI>2B4^62h0gU^h&$C6*iVa1{` z7{48Zcbl1G)%%9{p4l+`Bv=kV`Th+RI{t@_ah*suT0p;^A3?Eq7NF60EYYbIFSv<$ z`?)-oBQCxL6;`okWZ?{CJ~hnF{C?u1G(AcPWB3>WL;h>kM{cT z!GDHV{fu8!^{#Dl#jxYvTvl%~cV)#rj=%ediwgL~nZMFUG3Bmk?z=U}>%%@|4o6Yb z!*rCKpO4~q-$15ZBZ?i@fYRSYsX08+MhBwY=;uI6l>w7 zHA*;CT^>W25>}idhw~Rp<2jckapbr+Xmk5LJsrpIGCRw6f6*tB+f2yAUDL_nx0@qSMggwG89gMy_c@9n6u2w+OY&o{e%(2cXv{ zqtVOg2y_F-pz9_lQS8?YwALga9e8*JUEW@XGV&_XWc}-?b8`c_xx4|z?R(G1WJLtaU!Rp2r!XZHIqw>1{n+ zvZoJsPT1fQAEjM2DcFZ!I{PfIFYZ%k6O72#)vo0D?K$M@$rU7d`)2aDD2jN0jU}oV zl8MoaljM2WDe~W%6mlpvhdkX^NFuvSNy=yO?telViR~*TvEwU9`glr|PGnCL6EEl9qqFNXpYqWbfEnr2o4$dFQ7<5?dbfw>Dki z&95!utIz22MfCv{bw$5iZVhwi92IlKfwd~`zmWG_WUeaeS!;q`^i4pumnWeQZC+^X z>m^9hDg>qf*@rIJ96|HM+ym>U3FzvZlV}r3KtHQf(2D*nq%V<$0`_MhJSqca7i1wC zmx<_;G^C?(0^QVzNB%ovki*7(XxHf=bmPPVv?OafdXhF4ZFEydGstVsCFL}S%4Tw{ z!xCJ&-mj=ST{M}`Dmuac*!qwUKB`2nULH++);W?1o!&&PX%+d0*OCU8FjDpI5Ls#z zM<%XHB7<(pWY92?cz%l~)tL$8^seKitUrz{8FH9tH6JE}U5Cl`B?rj&<$H-}@=g+E zvWdu6EhpBsvq<**$z*?>6S3RoKt9%uB#q0|NkO|jd64{#zp4C`U-`9yuYH=tYis-S zgL5?bxSHIm_lwmkWtLBKnYH+r%WrW?`*QYCPSP}+o7Y~!Ny-j#K_g|5{83f(&&3$2 zZn8m_`|S{2H37w3nu`1m%tSG*-biDIJ2JPNiY}MUMDlSn#aTg&lw%ywo4*by(A5&% z{%3~r0!E-`Z&c8<$*O3kVITK*%N?$;@idq6^*AT2TgSPM8p0_It9D^Whqz>)A6>OJ z_;*#mgCBoEY7c+Y`YPXh`V}8vFGZS0Ns}UPJ>oFmnheb1hP?Tv2s~T zaMK!6M%I#LHXF(AwQGo}-Wo!JmlCP2WhC+9VzRQ>myCCqK@2)EIS0;Ut+*r1@sk1R zj@KXyt7XVjF(YlIT@N4cb)T;}QOqaur+Dqg{e1r+b3Sm=$EwVMvsL~37FGQY+TuL1 z^r}nwgpu6tW1d{{^EA$3V+jY3?{VD^-*9^s`?!QjL(umt%4p;nU1Z^4jM`5cA{uOg zDk^P|Xn`#X@g0X?;%JnRYk^3%F|v4Jh={n?Z+xyC`m*RFw{+G^E^yHU&Q&RayOVj0 zOS|I5eL3XFt&^#88FW78GNeG><<&j=s?kdpS3Q2O%=dK5@TWJ9m?OAC<05E(oe*!gM3DOxKKj3$`cThbNF*%}zw^f-CuBHJP-J zpG5N7FmclZvL(uigu9O?qw+0@rmQ8Y)Yc<$MtbDbM|EQ0E=y`A^zy2~cX`Q}>%8b` z1;1=-BESEDFQ4Z-j9+~=zRJ*fvUBg%*)EdGeJ=mqn!%+OE#ekrByh@q&vN<4a=468BWBlbAxA^S-4nFjjBGC<#B*%J(5UK3pM0cDvIWwR~W?VNDcid`| zLYg9COvzgDGY<8qpwcj1>V(Dbfy)InNjSM}*neHy&0-fJ;_TsvR=g+ga z!1!veaM3wVb=`ID^ba*OZ$JwzX_G~VT~v@vi8^{^G#o8>ISLJ4&__Gpk3@F)7O2eD z8BGYVK%%5!$V751@~byRPU>zb{G}@@ojL)9-c&`bwTH7kYl@zAY9a0VPn<&hZBBVW z3iaB&;*{Oaaz7>HP>t?aPWojCSH+HU$fAk6cwjLnm)qxJ_am75ebbx!_sx~dlG?>J zxX*TpS-i~ofer~N8|Y6+huv}=e1Rz@7eKjne+I0&pcdq ztk2-hw#V^JybAZmte8LfRhBrmx$|E1c4b;U<*%x!@iSINRK1cY=Z)5O@C|Qr`6oVx z{H4|cesJR6%6j2LrMiy{|LBiA@1%5;zf#l7&x_6H-L%uI%rzDGjh}DvcvL!X^+|^N zbUc)+nNeLe+54l*kEhc)vltU{OMWJa%8(%rmBlWuojb++HR-AW_hX!XXB8(D4Xe88 zbIWCyi4WSiQys0`F`rBLD#Q6tQRde!(%{3!EaU?vjZs1WYLwBs79Ib(oU{0OtZJY) zk$c}Y94YNA=Im{E^0y39_}G9q`rw~@u9Y@=?d^lAABQ2)t`_cM%1LhA3^CJm^-}V4Ss$-mxDD;JYC`c-k0ZSi z*Q@RZiufCjmr3?KWfIb}kSqT2l#i)T^Z!|;ds*bIi9PVqm19an9C)kf8g5#aJ00E;|iYV*Ss_ zt%kmQHks{gwnI0wjd0VIDthHzF}--mmnzTt%tbujiZfT&_NYDQqk6mxn()@xCRA=E40&QK%`~E>WJUiah0~c$f4PfCVsLoLCH&4s5e=z2PW+<}<2|Jx@IvEM zyt2?9?Y02al>Y1g~e4{447HEpg6EAa#Pkxe4d1tC>vV-UwUqNN#m*Hbi z4$&PyuhOc~ku)uH4i5i238%*#p-?%S`i(n)r9RowJF#*s|BM^v+UKFSZkcq`0!Gdo zY9fu3sc4tW9df^@jSKaS;bz;-CIJVZp@S1$v3@%vdd_Cl{d^menLQLYl=P#rCy^vw zEsECrNRmtFA%0d>Os9R^PM+|u2 zo%Jprjq3EfW-yMB3PZ=|8R93C7nA>L?x8Df*kTG#V_mod{FfaN$uyI8ycxIXS5?Kh?YBn&V%*nmr@`(FeF}MJQ|%cLHm5MzWq$ zQ^4IOMcfHDmeno2Lluj9{zuVy$7A)raopZ}77-DtB*{GY^+=0I8i>-~X?aCEGd9@dYbdp@lO{*pov$&28e2MJW@%v{+SQI+}jdpXg`01|LD ziq`emv#qimr)4ceohI5+)A~fF(P0w1`>7Zs?=X#QJ+j~0mfNp!g*Lk%yeRVhN-*o~ zTu+ln)7YIWa~LtPahRI=gbIz^VB01a(&@_-vFT+Om0ZPffof*s?njrXOQH+=-QhJI z(3HXD4@T&fh-~_Ao)R^&OQJnb&eF^XW!8KDMmmw>La1MKvYG!-ipt6M(VYGeyB5hb z()>b(Y9EorviCvs&rEZouiV7Ed~=_zdHINX`%uO`D4TI|W$6UoPAadZN5rNlF>YfT zsJw0u9pc54yg8G|hxd8>D+OJwkzNv2eVS$WtN9_bb-;&qwsouOxrLOB2!MWtwkg3->>3uq>)e5 ze7_P?-D>vLl2(p=r2yV*++d~01o}>;pN7ppLx^@e$4W6Hg9jHgjh)-sW;HFU|1pI0 zcPt?%4kz>PXcpV~P10qI|4d{ZSDa?f%y`U)X(seWs6074f#c1Ov!@I9uA)*G&XF5j z4^T2Ok@*}IM4bC-*p>5SSp%@@XxK*_2OcecCe~?TN$|Hf=^7M_uD!Mes$nKfeMDksykd4R=p%1NZ zvg2Bc+4Tdv`DTPzRkpI`8qoMmh>Y9kOr!rUqwlhk zn8L#sh+6m#_RP3s>b<~(o&B?qJ#e{-dT^dfafzAC?xFEiytszOrApAOtCnnDyBBrX zWJS};hHYcgZV=_tbZ&0GlzQz}CurZ!T(mLg+%T!kLaS@c$5t_#ZsUa{f;4^e> zN&}-hpJ6riWU1u#XyW{4KM5%*raQh2upJ49$&~TE?9P&w@-+piWO{WLf7kLCwA3b& zSx{KUTuIVkK5sqCwDoMW+dU}98ny=8%AK4`LXO{JPS{A%cgELPd2>m!#-^Lqy7+); z(fLINf{OT^JEzk}AEywv3`6p=(qWm?J@g?S9+sD*eHi zaFQTXq{Wze1zFnO_8-momB?66wk4O--!m@yEp{6Iiz(+Dq8}4vNpfZz+0HZFjT3 zj%YO8WOihnpfjF4X8(q8JR_-4QoQK`)6}_>p_ck&jO!oT7X*`n<%=1a>ONc3SrbTP zRx^|P>?q-Vlq2^9<7q4=)Az#CY~kE2GI@m=vnb{qeWVjfZ|kjN7n?0&6pRzfFBaV? zuVQ>yqhtTsrAYm;OXmK+ndZw$-D?l>Hf1k6%U*%LQC&wq_MauPm14w5<04~Lu!UJ$ zB|;f(BO2%fvOvIcF7_ubj*7ir{KM!A<_L>#5A01Bp!Atw+qcScYHzNt$X$6tR1awy|DH;pM9} z+SwV66KS-6s;$d;J-bw?4F1d?)98YKrZmpWn$9S4r7mjmZ1YofyF!@@v_4x7j~z*& zX5s_o4O+%jA|sdfjv+PCtfKyI73`8IZjWgcCMkT9RgWrYnCb9xR&Y{a1NYf^K5H(KO~dbKysoi zsXSJGHd(p!0dbg>P2RW05nbI5@;&__sn{VPs_jwaqKN_Nj@?TlD@;Ii-C|h!RtRuO zAo+K05ov!Z2`im9z^VS@kgqTk%KI|x-0S?vVCNQiAbSEBo+c!+Q%l+2iZI0u2 z@imbF;h01ME-2#i@4A&J(I0}ZErRgp1wY(dy$7R8qVb?>G>+RKgNEJu_jLhShlj$^(aRt%&FykY$AYcdFet452H|FR;ayl7tkErj zg>Ra`>RKysW_j3iI|<}xY=_aTt&sgM9`<%0kgsYDr_X7?k$r6>)Mq?gS*ZhC zcFKZ8hz$6CEFdw$d})*n90XsrFCfvlU6?oJuVT?(wv(bBbci zReJ4SG&{2sJCkWr4*gpWZl>ULS+* zzqTMVZ~*sqWTW=UDoou|hI8~waO13QWQ2cVO{}cof|RaGTC~Rmg5!99Wval8}3+ zLdce92f?AM0qQI(A^TM#Y}UU7bDSIDS^0a=L@8UoU0w-RfwZem)k%)X(7S1)=!qPd4h_ypOVpd^|C}97~x3+>FII zCRT|-UANHvS_XBBw@V+2If)Aj-bxGV6XgU45<~<|-mh_H zeHT7%>B1#)E$HTT0nerWqz<=6%V#UA5%;S%NRF&BoDG}@XPq(u*0;mc#chyK%ZFPt z?g93_;P&E1V9Locs7Yu6lgun22jXC(i9h6VF0cJ+M!uv+xHg~~H9p z@e+m_*}d=1{#XXAJ^ z?__u_u^(ZD;5+PIG76tm%3yN5%l-VHg--{p$U!#i++ z?i&1UauHQL@-Qc&2={Nv!>!*-&}+kW%-Y%!k`e}fJP+9CEDvobKN8+E5wcCzp3YTorAj3-cys749WYeJ|BifOI2{< z5-!8=IFxR9cHVA{c_3r@@hVw0v=E+@)j&;i6J*7dLFS=Xus=_M$J3e2`#Yk^t6wa} z``|6gQ~CTJKFoLy&lfjCM^6FV+B8Id9~w`dDo2ozeR0f2fe@X$%LuK$gVh-Rv;`@DCJBNg9rz&UKJ9>eUG zP`IjP1QPTf={UWdj6M6!ugxl_S*OLYaJ>j#Ro#uA^?|6{ZiwpB>~V40VpLvRNE1x% z(B}EU^tpT}xfmh~12q7)pAN%0onmnCQQ^(E*5r-(2=UCgv)N>$!;4kW<4rc1$cs18 z=DE6dKv?)y_*|V1-bu+YTzd!{JXD!Xtp;uf=?2Z0{Yj&{tZ={Z9-Lv5f-^7N$5S3R zF%6^fAr|5EoEkizRE1Zwa!?J@u#s1YVu|^vI5!DT-?)j%tE(_VXc*^>_mg}0E#n?~oB5*NoKx(~Q|b`0Mj5VumV}EQ z8{p`t3TUqt;ceI_%=4He%A1uh%FBr2p7Z11p{@D{taE)2m-bNzDGmbTW^Vs~$Pg;O zQ(&T8r9a_z_P`f8&K;wmYMFxDJZeNaE$b1Zpd!!pFZJ z96(zxs*_N%k7bGeA5V{m8v{jMu!(3FT~^LeunuWvb>dc+C1MiYP{e)j@SM* zA3k4S0gUEecyD$N4hBqxrAfN0pO7y@Qp{Fn*5#hP~MG%(PfCXPCki$+Y zq}bykGq)#~ZW%L1(Za(RJueWI)@{L?U*_WrnGI;BvK5CG>EjfEJkAn%#K!dt$f1HC zq}fmjYNi7GdwCr+!v~-?3d7V;w$WE8P79mHRL42 z2MzQh6i6I_`OoLUMonA(=P%0m-`y^1vZ$9D{pDE2k5=G^^`SWPUKw_EUc<7hKIjz~ zfsVDQ7}k=6{r_&FuVyUn)epzRDlyo8ItmNc-oQ;}O=xhamGcHQVXWmCs&1VmcwTBH zkiBFqSb1DtAfg~Aczs4vP+ic62Y=tj_WHBw~4J;VhKLhe)vUX71DZ_hk&o?WO2Z!B#9##wbhrerr1ixtDWXgBa}6^Gtt(SV`E@8QGu7KGMy)VcREk+uoCZH)evZ&&IO@Y zm*MZJ3|LgQ0hUFK2ZxL=Oh?Tm9OtNsyKac!zg!3WIu?MQ197OZTY$zFiZFCeIPP1X zgMqe%Sm2d`IY(}B{P-+Pdzz1y33XV1_zp_EipLp(ZakkaCAf1zO7LDqQ{dUh-IL0O z0y*bNg4IGgf|g4%0t5OUbE^a>+8l^}j=pHejrCM@Q~67pCc_r9#V|*C6@3155iHkM z0()7U=bWj^d#fYDbE_VL#Lxd=&2(knpJg(<$5QWM^6C<}GwTBQz4#9%B)dVB%M>_z zoO8v$rj#=u(U%-6@UPo=6vDZ9?)*v&W47UjQ?}@%qKLK~&*_TrP4v`Xft^ia2^qel z1_7cAz?nS{l9r?J@T@v-`OB{yS8*7OZgS5=v=(pf;6$F1lPYg(RS%qOPJ}}9tB{Omy0jkK4{)!k?ex@rzz8*7RiJ zh2^!#1{C9mhMPG4*mZoeC>O_eHFJK0VSMwb8Qmg#P_0v1kb=qr(cgN4LVa_ARkML0 zZ;z5-#;CO5!1*7TTiA(qdPO*A#}bqruY&yZ�<|JGqiF38XdLU`|jJ#H>QNP}2_X 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

@@nd<_TUnk-5_4OBmO1Qv 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 +=~G>~0C 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Ν3E_YUFMuaBSZ~O!riEprbt6ZQ>1fCUNm~; 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 z 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

ydo`f{5uzU$vWo$hHIKPsP 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 b7>Wca(0d;&F{TBd3qVOuUA95mBK-dW|D-44 literal 0 HcmV?d00001 From 8863fa2f9a03b1734f1397e0e6ea3b7ccd76a455 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Mon, 26 Jan 2026 14:41:22 +0100 Subject: [PATCH 23/29] fix: use proper image name in vertical ocr test --- .../common/rnexecutorch/tests/integration/VerticalOCRTest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/VerticalOCRTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VerticalOCRTest.cpp index 6164de02d..ddeec5e59 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/VerticalOCRTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VerticalOCRTest.cpp @@ -15,7 +15,7 @@ std::shared_ptr createMockCallInvoker(); constexpr auto VALID_VERTICAL_DETECTOR_PATH = "xnnpack_craft_quantized.pte"; constexpr auto VALID_VERTICAL_RECOGNIZER_PATH = "xnnpack_crnn_english.pte"; constexpr auto VALID_VERTICAL_TEST_IMAGE_PATH = - "file:///data/local/tmp/rnexecutorch_tests/test_ocr_image.png"; + "file:///data/local/tmp/rnexecutorch_tests/we_are_software_mansion.jpg"; // English alphabet symbols (must match alphabets.english from symbols.ts) const std::string ENGLISH_SYMBOLS = From 17189b657887cf911927a0624e8dae1cb517b50c Mon Sep 17 00:00:00 2001 From: chmjkb Date: Tue, 27 Jan 2026 11:48:16 +0100 Subject: [PATCH 24/29] chore: review suggestions --- .../models/ocr/utils/RecognizerUtils.cpp | 6 +- .../common/rnexecutorch/tests/CMakeLists.txt | 1 + .../tests/integration/BaseModelTest.cpp | 32 ++-- .../tests/integration/BaseModelTests.h | 68 +++++---- .../tests/integration/ClassificationTest.cpp | 37 +++-- .../tests/integration/ImageEmbeddingsTest.cpp | 40 ++--- .../integration/ImageSegmentationTest.cpp | 143 ++++++------------ .../tests/integration/LLMTest.cpp | 42 ++--- .../tests/integration/OCRTest.cpp | 42 +++-- .../tests/integration/ObjectDetectionTest.cpp | 50 +++--- .../tests/integration/SpeechToTextTest.cpp | 38 ++--- .../tests/integration/StyleTransferTest.cpp | 42 ++--- .../tests/integration/TextEmbeddingsTest.cpp | 57 ++++--- .../tests/integration/TextToImageTest.cpp | 115 +++++++------- .../tests/integration/TokenizerModuleTest.cpp | 30 ++-- .../tests/integration/VerticalOCRTest.cpp | 139 ++++++++--------- .../VoiceActivityDetectionTest.cpp | 20 +-- .../tests/integration/{ => utils}/TestUtils.h | 0 18 files changed, 417 insertions(+), 485 deletions(-) rename packages/react-native-executorch/common/rnexecutorch/tests/integration/{ => utils}/TestUtils.h (100%) diff --git a/packages/react-native-executorch/common/rnexecutorch/models/ocr/utils/RecognizerUtils.cpp b/packages/react-native-executorch/common/rnexecutorch/models/ocr/utils/RecognizerUtils.cpp index df5a3cd61..89a84fa67 100644 --- a/packages/react-native-executorch/common/rnexecutorch/models/ocr/utils/RecognizerUtils.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/models/ocr/utils/RecognizerUtils.cpp @@ -8,14 +8,18 @@ cv::Mat softmax(const cv::Mat &inputs) { cv::reduce(inputs, maxVal, 1, cv::REDUCE_MAX, CV_32F); cv::Mat expInputs; cv::Mat repeated = inputs - cv::repeat(maxVal, 1, inputs.cols); - // Manually compute exp to avoid SIMD issues repeated.convertTo(repeated, CV_32F); +#ifdef TEST_BUILD + // Manually compute exp to avoid SIMD issues in test environment expInputs = cv::Mat(repeated.size(), CV_32F); for (int i = 0; i < repeated.rows; i++) { for (int j = 0; j < repeated.cols; j++) { expInputs.at(i, j) = std::exp(repeated.at(i, j)); } } +#else + cv::exp(repeated, expInputs); +#endif cv::Mat sumExp; cv::reduce(expInputs, sumExp, 1, cv::REDUCE_SUM, CV_32F); cv::Mat softmaxOutput = expInputs / cv::repeat(sumExp, 1, inputs.cols); diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt index 6ed7d1419..215a33c6f 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt +++ b/packages/react-native-executorch/common/rnexecutorch/tests/CMakeLists.txt @@ -131,6 +131,7 @@ function(add_rn_test TEST_TARGET TEST_FILENAME) # Create executable using the explicit filename provided add_executable(${TEST_TARGET} ${TEST_FILENAME} ${ARG_SOURCES}) + target_compile_definitions(${TEST_TARGET} PRIVATE TEST_BUILD) target_link_libraries(${TEST_TARGET} PRIVATE rntests_core gtest_main ${ARG_LIBS}) target_link_options(${TEST_TARGET} PRIVATE "LINKER:-z,max-page-size=16384") diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTest.cpp index 57a74f26a..faf21f5b5 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTest.cpp @@ -12,7 +12,7 @@ using namespace executorch::extension; using namespace model_tests; using executorch::runtime::EValue; -constexpr auto VALID_STYLE_TRANSFER_MODEL_PATH = +constexpr auto kValidStyleTransferModelPath = "style_transfer_candy_xnnpack.pte"; // ============================================================================ @@ -23,7 +23,7 @@ template <> struct ModelTraits { using ModelType = BaseModel; static ModelType createValid() { - return ModelType(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + return ModelType(kValidStyleTransferModelPath, nullptr); } static ModelType createInvalid() { @@ -49,27 +49,27 @@ INSTANTIATE_TYPED_TEST_SUITE_P(BaseModel, CommonModelTest, BaseModelTypes); // ============================================================================ TEST(BaseModelGetInputShapeTests, ValidMethodCorrectShape) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + BaseModel model(kValidStyleTransferModelPath, nullptr); auto forwardShape = model.getInputShape("forward", 0); std::vector expectedShape = {1, 3, 640, 640}; EXPECT_EQ(forwardShape, expectedShape); } TEST(BaseModelGetInputShapeTests, InvalidMethodThrows) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + BaseModel model(kValidStyleTransferModelPath, nullptr); EXPECT_THROW((void)model.getInputShape("this_method_does_not_exist", 0), RnExecutorchError); } TEST(BaseModelGetInputShapeTests, ValidMethodInvalidIndexThrows) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + BaseModel model(kValidStyleTransferModelPath, nullptr); EXPECT_THROW( (void)model.getInputShape("forward", std::numeric_limits::min()), RnExecutorchError); } TEST(BaseModelGetAllInputShapesTests, ValidMethodReturnsShapes) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + BaseModel model(kValidStyleTransferModelPath, nullptr); auto allShapes = model.getAllInputShapes("forward"); EXPECT_FALSE(allShapes.empty()); std::vector expectedFirstShape = {1, 3, 640, 640}; @@ -77,25 +77,25 @@ TEST(BaseModelGetAllInputShapesTests, ValidMethodReturnsShapes) { } TEST(BaseModelGetAllInputShapesTests, InvalidMethodThrows) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + BaseModel model(kValidStyleTransferModelPath, nullptr); EXPECT_THROW(model.getAllInputShapes("non_existent_method"), RnExecutorchError); } TEST(BaseModelGetMethodMetaTests, ValidMethodReturnsOk) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + BaseModel model(kValidStyleTransferModelPath, nullptr); auto result = model.getMethodMeta("forward"); EXPECT_TRUE(result.ok()); } TEST(BaseModelGetMethodMetaTests, InvalidMethodReturnsError) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + BaseModel model(kValidStyleTransferModelPath, nullptr); auto result = model.getMethodMeta("non_existent_method"); EXPECT_FALSE(result.ok()); } TEST(BaseModelForwardTests, ForwardWithValidInputReturnsOk) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + BaseModel model(kValidStyleTransferModelPath, nullptr); std::vector shape = {1, 3, 640, 640}; size_t numElements = 1 * 3 * 640 * 640; std::vector inputData(numElements, 0.5f); @@ -107,7 +107,7 @@ TEST(BaseModelForwardTests, ForwardWithValidInputReturnsOk) { } TEST(BaseModelForwardTests, ForwardWithVectorInputReturnsOk) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + BaseModel model(kValidStyleTransferModelPath, nullptr); std::vector shape = {1, 3, 640, 640}; size_t numElements = 1 * 3 * 640 * 640; std::vector inputData(numElements, 0.5f); @@ -120,7 +120,7 @@ TEST(BaseModelForwardTests, ForwardWithVectorInputReturnsOk) { } TEST(BaseModelForwardTests, ForwardReturnsCorrectOutputShape) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + BaseModel model(kValidStyleTransferModelPath, nullptr); std::vector shape = {1, 3, 640, 640}; size_t numElements = 1 * 3 * 640 * 640; std::vector inputData(numElements, 0.5f); @@ -141,7 +141,7 @@ TEST(BaseModelForwardTests, ForwardReturnsCorrectOutputShape) { } TEST(BaseModelForwardTests, ForwardAfterUnloadThrows) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + BaseModel model(kValidStyleTransferModelPath, nullptr); model.unload(); std::vector shape = {1, 3, 640, 640}; @@ -154,7 +154,7 @@ TEST(BaseModelForwardTests, ForwardAfterUnloadThrows) { } TEST(BaseModelForwardJSTests, ForwardJSWithValidInputReturnsOutput) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + BaseModel model(kValidStyleTransferModelPath, nullptr); std::vector shape = {1, 3, 640, 640}; size_t numElements = 1 * 3 * 640 * 640; std::vector inputData(numElements, 0.5f); @@ -171,7 +171,7 @@ TEST(BaseModelForwardJSTests, ForwardJSWithValidInputReturnsOutput) { } TEST(BaseModelForwardJSTests, ForwardJSReturnsCorrectOutputShape) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + BaseModel model(kValidStyleTransferModelPath, nullptr); std::vector shape = {1, 3, 640, 640}; size_t numElements = 1 * 3 * 640 * 640; std::vector inputData(numElements, 0.5f); @@ -190,7 +190,7 @@ TEST(BaseModelForwardJSTests, ForwardJSReturnsCorrectOutputShape) { } TEST(BaseModelForwardJSTests, ForwardJSAfterUnloadThrows) { - BaseModel model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + BaseModel model(kValidStyleTransferModelPath, nullptr); model.unload(); std::vector shape = {1, 3, 640, 640}; diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h index 83a3cc960..1a7569691 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h @@ -16,33 +16,35 @@ namespace model_tests { inline auto getMockInvoker() { return rnexecutorch::createMockCallInvoker(); } -// Trait struct that each model must specialize -// This defines how to construct and test each model type -template struct ModelTraits; +/// Helper macro to access Traits in typed tests +#define SETUP_TRAITS() using Traits = typename TestFixture::Traits -// Example of what a specialization looks like: -// -// template<> -// struct ModelTraits { -// using ModelType = Classification; -// -// // Create valid model instance -// static ModelType createValid() { -// return ModelType("valid_model.pte", nullptr); -// } -// -// // Create invalid model instance (should throw in constructor) -// static ModelType createInvalid() { -// return ModelType("nonexistent.pte", nullptr); -// } -// -// // Call the model's generate/forward function with valid input -// // Used to test that generate throws after unload -// static void callGenerate(ModelType& model) { -// (void)model.generate("valid_input.jpg"); -// } -// }; +/// Trait struct that each model must specialize +/// This defines how to construct and test each model type +template struct ModelTraits; +/// Example of what a specialization looks like: +/// +/// template<> +/// struct ModelTraits { +/// using ModelType = Classification; +/// +/// // Create valid model instance +/// static ModelType createValid() { +/// return ModelType("valid_model.pte", nullptr); +/// } +/// +/// // Create invalid model instance (should throw in constructor) +/// static ModelType createInvalid() { +/// return ModelType("nonexistent.pte", nullptr); +/// } +/// +/// // Call the model's generate/forward function with valid input +/// // Used to test that generate throws after unload +/// static void callGenerate(ModelType& model) { +/// (void)model.generate("valid_input.jpg"); +/// } +/// }; // Typed test fixture for common model tests template class CommonModelTest : public ::testing::Test { protected: @@ -55,24 +57,24 @@ TYPED_TEST_SUITE_P(CommonModelTest); // Constructor tests TYPED_TEST_P(CommonModelTest, InvalidPathThrows) { - using Traits = typename TestFixture::Traits; + SETUP_TRAITS(); EXPECT_THROW(Traits::createInvalid(), rnexecutorch::RnExecutorchError); } TYPED_TEST_P(CommonModelTest, ValidPathDoesntThrow) { - using Traits = typename TestFixture::Traits; + SETUP_TRAITS(); EXPECT_NO_THROW(Traits::createValid()); } // Memory tests TYPED_TEST_P(CommonModelTest, GetMemoryLowerBoundValue) { - using Traits = typename TestFixture::Traits; + SETUP_TRAITS(); auto model = Traits::createValid(); EXPECT_GT(model.getMemoryLowerBound(), 0u); } TYPED_TEST_P(CommonModelTest, GetMemoryLowerBoundConsistent) { - using Traits = typename TestFixture::Traits; + SETUP_TRAITS(); auto model = Traits::createValid(); auto bound1 = model.getMemoryLowerBound(); auto bound2 = model.getMemoryLowerBound(); @@ -81,13 +83,13 @@ TYPED_TEST_P(CommonModelTest, GetMemoryLowerBoundConsistent) { // Unload tests TYPED_TEST_P(CommonModelTest, UnloadDoesntThrow) { - using Traits = typename TestFixture::Traits; + SETUP_TRAITS(); auto model = Traits::createValid(); EXPECT_NO_THROW(model.unload()); } TYPED_TEST_P(CommonModelTest, MultipleUnloadsSafe) { - using Traits = typename TestFixture::Traits; + SETUP_TRAITS(); auto model = Traits::createValid(); EXPECT_NO_THROW(model.unload()); EXPECT_NO_THROW(model.unload()); @@ -95,14 +97,14 @@ TYPED_TEST_P(CommonModelTest, MultipleUnloadsSafe) { } TYPED_TEST_P(CommonModelTest, GenerateAfterUnloadThrows) { - using Traits = typename TestFixture::Traits; + SETUP_TRAITS(); auto model = Traits::createValid(); model.unload(); EXPECT_THROW(Traits::callGenerate(model), rnexecutorch::RnExecutorchError); } TYPED_TEST_P(CommonModelTest, MultipleGeneratesWork) { - using Traits = typename TestFixture::Traits; + SETUP_TRAITS(); auto model = Traits::createValid(); EXPECT_NO_THROW(Traits::callGenerate(model)); EXPECT_NO_THROW(Traits::callGenerate(model)); diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ClassificationTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ClassificationTest.cpp index ec7994acc..10aa663a4 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ClassificationTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ClassificationTest.cpp @@ -8,9 +8,8 @@ using namespace rnexecutorch; using namespace rnexecutorch::models::classification; using namespace model_tests; -constexpr auto VALID_CLASSIFICATION_MODEL_PATH = - "efficientnet_v2_s_xnnpack.pte"; -constexpr auto VALID_TEST_IMAGE_PATH = +constexpr auto kValidClassificationModelPath = "efficientnet_v2_s_xnnpack.pte"; +constexpr auto kValidTestImagePath = "file:///data/local/tmp/rnexecutorch_tests/test_image.jpg"; // ============================================================================ @@ -21,7 +20,7 @@ template <> struct ModelTraits { using ModelType = Classification; static ModelType createValid() { - return ModelType(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + return ModelType(kValidClassificationModelPath, nullptr); } static ModelType createInvalid() { @@ -29,7 +28,7 @@ template <> struct ModelTraits { } static void callGenerate(ModelType &model) { - (void)model.generate(VALID_TEST_IMAGE_PATH); + (void)model.generate(kValidTestImagePath); } }; } // namespace model_tests @@ -42,38 +41,38 @@ INSTANTIATE_TYPED_TEST_SUITE_P(Classification, CommonModelTest, // Model-specific tests // ============================================================================ TEST(ClassificationGenerateTests, InvalidImagePathThrows) { - Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + Classification model(kValidClassificationModelPath, nullptr); EXPECT_THROW((void)model.generate("nonexistent_image.jpg"), RnExecutorchError); } TEST(ClassificationGenerateTests, EmptyImagePathThrows) { - Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + Classification model(kValidClassificationModelPath, nullptr); EXPECT_THROW((void)model.generate(""), RnExecutorchError); } TEST(ClassificationGenerateTests, MalformedURIThrows) { - Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + Classification model(kValidClassificationModelPath, nullptr); EXPECT_THROW((void)model.generate("not_a_valid_uri://bad"), RnExecutorchError); } TEST(ClassificationGenerateTests, ValidImageReturnsResults) { - Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); - auto results = model.generate(VALID_TEST_IMAGE_PATH); + Classification model(kValidClassificationModelPath, nullptr); + auto results = model.generate(kValidTestImagePath); EXPECT_FALSE(results.empty()); } TEST(ClassificationGenerateTests, ResultsHaveCorrectSize) { - Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); - auto results = model.generate(VALID_TEST_IMAGE_PATH); + Classification model(kValidClassificationModelPath, nullptr); + auto results = model.generate(kValidTestImagePath); auto expectedNumClasses = constants::kImagenet1kV1Labels.size(); EXPECT_EQ(results.size(), expectedNumClasses); } TEST(ClassificationGenerateTests, ResultsContainValidProbabilities) { - Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); - auto results = model.generate(VALID_TEST_IMAGE_PATH); + Classification model(kValidClassificationModelPath, nullptr); + auto results = model.generate(kValidTestImagePath); float sum = 0.0f; for (const auto &[label, prob] : results) { @@ -85,8 +84,8 @@ TEST(ClassificationGenerateTests, ResultsContainValidProbabilities) { } TEST(ClassificationGenerateTests, TopPredictionHasReasonableConfidence) { - Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); - auto results = model.generate(VALID_TEST_IMAGE_PATH); + Classification model(kValidClassificationModelPath, nullptr); + auto results = model.generate(kValidTestImagePath); float maxProb = 0.0f; for (const auto &[label, prob] : results) { @@ -98,7 +97,7 @@ TEST(ClassificationGenerateTests, TopPredictionHasReasonableConfidence) { } TEST(ClassificationInheritedTests, GetInputShapeWorks) { - Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + Classification model(kValidClassificationModelPath, nullptr); auto shape = model.getInputShape("forward", 0); EXPECT_EQ(shape.size(), 4); EXPECT_EQ(shape[0], 1); @@ -106,13 +105,13 @@ TEST(ClassificationInheritedTests, GetInputShapeWorks) { } TEST(ClassificationInheritedTests, GetAllInputShapesWorks) { - Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + Classification model(kValidClassificationModelPath, nullptr); auto shapes = model.getAllInputShapes("forward"); EXPECT_FALSE(shapes.empty()); } TEST(ClassificationInheritedTests, GetMethodMetaWorks) { - Classification model(VALID_CLASSIFICATION_MODEL_PATH, nullptr); + Classification model(kValidClassificationModelPath, nullptr); auto result = model.getMethodMeta("forward"); EXPECT_TRUE(result.ok()); } diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageEmbeddingsTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageEmbeddingsTest.cpp index f2018f92b..2e8a53e75 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageEmbeddingsTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageEmbeddingsTest.cpp @@ -8,11 +8,10 @@ using namespace rnexecutorch; using namespace rnexecutorch::models::embeddings; using namespace model_tests; -constexpr auto VALID_IMAGE_EMBEDDINGS_MODEL_PATH = +constexpr auto kValidImageEmbeddingsModelPath = "clip-vit-base-patch32-vision_xnnpack.pte"; -constexpr auto VALID_TEST_IMAGE_PATH = +constexpr auto kValidTestImagePath = "file:///data/local/tmp/rnexecutorch_tests/test_image.jpg"; -constexpr size_t CLIP_EMBEDDING_DIMENSIONS = 512; // ============================================================================ // Common tests via typed test suite @@ -22,7 +21,7 @@ template <> struct ModelTraits { using ModelType = ImageEmbeddings; static ModelType createValid() { - return ModelType(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + return ModelType(kValidImageEmbeddingsModelPath, nullptr); } static ModelType createInvalid() { @@ -30,7 +29,7 @@ template <> struct ModelTraits { } static void callGenerate(ModelType &model) { - (void)model.generate(VALID_TEST_IMAGE_PATH); + (void)model.generate(kValidTestImagePath); } }; } // namespace model_tests @@ -43,39 +42,40 @@ INSTANTIATE_TYPED_TEST_SUITE_P(ImageEmbeddings, CommonModelTest, // Model-specific tests // ============================================================================ TEST(ImageEmbeddingsGenerateTests, InvalidImagePathThrows) { - ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + ImageEmbeddings model(kValidImageEmbeddingsModelPath, nullptr); EXPECT_THROW((void)model.generate("nonexistent_image.jpg"), RnExecutorchError); } TEST(ImageEmbeddingsGenerateTests, EmptyImagePathThrows) { - ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + ImageEmbeddings model(kValidImageEmbeddingsModelPath, nullptr); EXPECT_THROW((void)model.generate(""), RnExecutorchError); } TEST(ImageEmbeddingsGenerateTests, MalformedURIThrows) { - ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + ImageEmbeddings model(kValidImageEmbeddingsModelPath, nullptr); EXPECT_THROW((void)model.generate("not_a_valid_uri://bad"), RnExecutorchError); } TEST(ImageEmbeddingsGenerateTests, ValidImageReturnsResults) { - ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); - auto result = model.generate(VALID_TEST_IMAGE_PATH); + ImageEmbeddings model(kValidImageEmbeddingsModelPath, nullptr); + auto result = model.generate(kValidTestImagePath); EXPECT_NE(result, nullptr); EXPECT_GT(result->size(), 0u); } TEST(ImageEmbeddingsGenerateTests, ResultsHaveCorrectSize) { - ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); - auto result = model.generate(VALID_TEST_IMAGE_PATH); + ImageEmbeddings model(kValidImageEmbeddingsModelPath, nullptr); + auto result = model.generate(kValidTestImagePath); size_t numFloats = result->size() / sizeof(float); - EXPECT_EQ(numFloats, CLIP_EMBEDDING_DIMENSIONS); + constexpr size_t kClipEmbeddingDimensions = 512; + EXPECT_EQ(numFloats, kClipEmbeddingDimensions); } TEST(ImageEmbeddingsGenerateTests, ResultsAreNormalized) { - ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); - auto result = model.generate(VALID_TEST_IMAGE_PATH); + ImageEmbeddings model(kValidImageEmbeddingsModelPath, nullptr); + auto result = model.generate(kValidTestImagePath); const float *data = reinterpret_cast(result->data()); size_t numFloats = result->size() / sizeof(float); @@ -89,8 +89,8 @@ TEST(ImageEmbeddingsGenerateTests, ResultsAreNormalized) { } TEST(ImageEmbeddingsGenerateTests, ResultsContainValidValues) { - ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); - auto result = model.generate(VALID_TEST_IMAGE_PATH); + ImageEmbeddings model(kValidImageEmbeddingsModelPath, nullptr); + auto result = model.generate(kValidTestImagePath); const float *data = reinterpret_cast(result->data()); size_t numFloats = result->size() / sizeof(float); @@ -102,7 +102,7 @@ TEST(ImageEmbeddingsGenerateTests, ResultsContainValidValues) { } TEST(ImageEmbeddingsInheritedTests, GetInputShapeWorks) { - ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + ImageEmbeddings model(kValidImageEmbeddingsModelPath, nullptr); auto shape = model.getInputShape("forward", 0); EXPECT_EQ(shape.size(), 4); EXPECT_EQ(shape[0], 1); @@ -110,13 +110,13 @@ TEST(ImageEmbeddingsInheritedTests, GetInputShapeWorks) { } TEST(ImageEmbeddingsInheritedTests, GetAllInputShapesWorks) { - ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + ImageEmbeddings model(kValidImageEmbeddingsModelPath, nullptr); auto shapes = model.getAllInputShapes("forward"); EXPECT_FALSE(shapes.empty()); } TEST(ImageEmbeddingsInheritedTests, GetMethodMetaWorks) { - ImageEmbeddings model(VALID_IMAGE_EMBEDDINGS_MODEL_PATH, nullptr); + ImageEmbeddings model(kValidImageEmbeddingsModelPath, nullptr); auto result = model.getMethodMeta("forward"); EXPECT_TRUE(result.ok()); } diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageSegmentationTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageSegmentationTest.cpp index 1d4835c66..8885848d7 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageSegmentationTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ImageSegmentationTest.cpp @@ -13,8 +13,35 @@ using executorch::extension::make_tensor_ptr; using executorch::extension::TensorPtr; using executorch::runtime::EValue; -constexpr auto VALID_IMAGE_SEGMENTATION_MODEL_PATH = - "deeplabV3_xnnpack_fp32.pte"; +constexpr auto kValidImageSegmentationModelPath = "deeplabV3_xnnpack_fp32.pte"; + +// Test fixture for tests that need dummy input data +class ImageSegmentationForwardTest : public ::testing::Test { +protected: + void SetUp() override { + model = std::make_unique( + kValidImageSegmentationModelPath, nullptr); + auto shapes = model->getAllInputShapes("forward"); + ASSERT_FALSE(shapes.empty()); + shape = shapes[0]; + + size_t numElements = 1; + for (auto dim : shape) { + numElements *= dim; + } + dummyData = std::vector(numElements, 0.5f); + + sizes = std::vector(shape.begin(), shape.end()); + inputTensor = + make_tensor_ptr(sizes, dummyData.data(), exec_aten::ScalarType::Float); + } + + std::unique_ptr model; + std::vector shape; + std::vector dummyData; + std::vector sizes; + TensorPtr inputTensor; +}; TEST(ImageSegmentationCtorTests, InvalidPathThrows) { EXPECT_THROW(ImageSegmentation("this_file_does_not_exist.pte", nullptr), @@ -22,47 +49,16 @@ TEST(ImageSegmentationCtorTests, InvalidPathThrows) { } TEST(ImageSegmentationCtorTests, ValidPathDoesntThrow) { - EXPECT_NO_THROW( - ImageSegmentation(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr)); + EXPECT_NO_THROW(ImageSegmentation(kValidImageSegmentationModelPath, nullptr)); } -TEST(ImageSegmentationForwardTests, ForwardWithValidTensorSucceeds) { - ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); - auto shapes = model.getAllInputShapes("forward"); - ASSERT_FALSE(shapes.empty()); - auto &shape = shapes[0]; - - size_t numElements = 1; - for (auto dim : shape) { - numElements *= dim; - } - std::vector dummyData(numElements, 0.5f); - - std::vector sizes(shape.begin(), shape.end()); - TensorPtr inputTensor = - make_tensor_ptr(sizes, dummyData.data(), exec_aten::ScalarType::Float); - - auto result = model.forward(EValue(inputTensor)); +TEST_F(ImageSegmentationForwardTest, ForwardWithValidTensorSucceeds) { + auto result = model->forward(EValue(inputTensor)); EXPECT_TRUE(result.ok()); } -TEST(ImageSegmentationForwardTests, ForwardOutputHasCorrectDimensions) { - ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); - auto shapes = model.getAllInputShapes("forward"); - ASSERT_FALSE(shapes.empty()); - auto &shape = shapes[0]; - - size_t numElements = 1; - for (auto dim : shape) { - numElements *= dim; - } - std::vector dummyData(numElements, 0.5f); - - std::vector sizes(shape.begin(), shape.end()); - TensorPtr inputTensor = - make_tensor_ptr(sizes, dummyData.data(), exec_aten::ScalarType::Float); - - auto result = model.forward(EValue(inputTensor)); +TEST_F(ImageSegmentationForwardTest, ForwardOutputHasCorrectDimensions) { + auto result = model->forward(EValue(inputTensor)); ASSERT_TRUE(result.ok()); auto &outputs = result.get(); @@ -72,23 +68,8 @@ TEST(ImageSegmentationForwardTests, ForwardOutputHasCorrectDimensions) { EXPECT_EQ(outputTensor.dim(), 4); // NCHW format } -TEST(ImageSegmentationForwardTests, ForwardOutputHas21Classes) { - ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); - auto shapes = model.getAllInputShapes("forward"); - ASSERT_FALSE(shapes.empty()); - auto &shape = shapes[0]; - - size_t numElements = 1; - for (auto dim : shape) { - numElements *= dim; - } - std::vector dummyData(numElements, 0.5f); - - std::vector sizes(shape.begin(), shape.end()); - TensorPtr inputTensor = - make_tensor_ptr(sizes, dummyData.data(), exec_aten::ScalarType::Float); - - auto result = model.forward(EValue(inputTensor)); +TEST_F(ImageSegmentationForwardTest, ForwardOutputHas21Classes) { + auto result = model->forward(EValue(inputTensor)); ASSERT_TRUE(result.ok()); auto &outputs = result.get(); @@ -98,51 +79,21 @@ TEST(ImageSegmentationForwardTests, ForwardOutputHas21Classes) { EXPECT_EQ(outputTensor.size(1), 21); // DeepLabV3 has 21 classes } -TEST(ImageSegmentationForwardTests, MultipleForwardsWork) { - ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); - auto shapes = model.getAllInputShapes("forward"); - ASSERT_FALSE(shapes.empty()); - auto &shape = shapes[0]; - - size_t numElements = 1; - for (auto dim : shape) { - numElements *= dim; - } - std::vector dummyData(numElements, 0.5f); - - std::vector sizes(shape.begin(), shape.end()); - TensorPtr inputTensor = - make_tensor_ptr(sizes, dummyData.data(), exec_aten::ScalarType::Float); - - auto result1 = model.forward(EValue(inputTensor)); +TEST_F(ImageSegmentationForwardTest, MultipleForwardsWork) { + auto result1 = model->forward(EValue(inputTensor)); EXPECT_TRUE(result1.ok()); - auto result2 = model.forward(EValue(inputTensor)); + auto result2 = model->forward(EValue(inputTensor)); EXPECT_TRUE(result2.ok()); } -TEST(ImageSegmentationUnloadTests, ForwardAfterUnloadThrows) { - ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); - auto shapes = model.getAllInputShapes("forward"); - ASSERT_FALSE(shapes.empty()); - auto &shape = shapes[0]; - - size_t numElements = 1; - for (auto dim : shape) { - numElements *= dim; - } - std::vector dummyData(numElements, 0.5f); - - std::vector sizes(shape.begin(), shape.end()); - TensorPtr inputTensor = - make_tensor_ptr(sizes, dummyData.data(), exec_aten::ScalarType::Float); - - model.unload(); - EXPECT_THROW((void)model.forward(EValue(inputTensor)), RnExecutorchError); +TEST_F(ImageSegmentationForwardTest, ForwardAfterUnloadThrows) { + model->unload(); + EXPECT_THROW((void)model->forward(EValue(inputTensor)), RnExecutorchError); } TEST(ImageSegmentationInheritedTests, GetInputShapeWorks) { - ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); + ImageSegmentation model(kValidImageSegmentationModelPath, nullptr); auto shape = model.getInputShape("forward", 0); EXPECT_EQ(shape.size(), 4); EXPECT_EQ(shape[0], 1); // Batch size @@ -150,24 +101,24 @@ TEST(ImageSegmentationInheritedTests, GetInputShapeWorks) { } TEST(ImageSegmentationInheritedTests, GetAllInputShapesWorks) { - ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); + ImageSegmentation model(kValidImageSegmentationModelPath, nullptr); auto shapes = model.getAllInputShapes("forward"); EXPECT_FALSE(shapes.empty()); } TEST(ImageSegmentationInheritedTests, GetMethodMetaWorks) { - ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); + ImageSegmentation model(kValidImageSegmentationModelPath, nullptr); auto result = model.getMethodMeta("forward"); EXPECT_TRUE(result.ok()); } TEST(ImageSegmentationInheritedTests, GetMemoryLowerBoundReturnsPositive) { - ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); + ImageSegmentation model(kValidImageSegmentationModelPath, nullptr); EXPECT_GT(model.getMemoryLowerBound(), 0u); } TEST(ImageSegmentationInheritedTests, InputShapeIsSquare) { - ImageSegmentation model(VALID_IMAGE_SEGMENTATION_MODEL_PATH, nullptr); + ImageSegmentation model(kValidImageSegmentationModelPath, nullptr); auto shape = model.getInputShape("forward", 0); EXPECT_EQ(shape[2], shape[3]); // Height == Width for DeepLabV3 } diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/LLMTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/LLMTest.cpp index 759c27c3f..e79294090 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/LLMTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/LLMTest.cpp @@ -11,9 +11,9 @@ using namespace rnexecutorch; using namespace rnexecutorch::models::llm; using namespace model_tests; -constexpr auto VALID_MODEL_PATH = "smolLm2_135M_8da4w.pte"; -constexpr auto VALID_TOKENIZER_PATH = "smollm_tokenizer.json"; -constexpr auto SYSTEM_PROMPT = "You are a helpful assistant. Assist the user " +constexpr auto kValidModelPath = "smolLm2_135M_8da4w.pte"; +constexpr auto kValidTokenizerPath = "smollm_tokenizer.json"; +constexpr auto kSystemPrompt = "You are a helpful assistant. Assist the user " "to the best of your abilities."; // Forward declaration from jsi_stubs.cpp @@ -37,17 +37,17 @@ template <> struct ModelTraits { using ModelType = LLM; static ModelType createValid() { - return ModelType(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, + return ModelType(kValidModelPath, kValidTokenizerPath, rnexecutorch::createMockCallInvoker()); } static ModelType createInvalid() { - return ModelType("nonexistent.pte", VALID_TOKENIZER_PATH, + return ModelType("nonexistent.pte", kValidTokenizerPath, rnexecutorch::createMockCallInvoker()); } static void callGenerate(ModelType &model) { - std::string prompt = formatChatML(SYSTEM_PROMPT, "Hello"); + std::string prompt = formatChatML(kSystemPrompt, "Hello"); (void)model.generate(prompt, nullptr); } }; @@ -67,18 +67,18 @@ class LLMTest : public ::testing::Test { }; TEST(LLMCtorTests, InvalidTokenizerPathThrows) { - EXPECT_THROW(LLM(VALID_MODEL_PATH, "nonexistent_tokenizer.json", + EXPECT_THROW(LLM(kValidModelPath, "nonexistent_tokenizer.json", createMockCallInvoker()), RnExecutorchError); } TEST_F(LLMTest, GetGeneratedTokenCountInitiallyZero) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + LLM model(kValidModelPath, kValidTokenizerPath, mockInvoker_); EXPECT_EQ(model.getGeneratedTokenCount(), 0); } TEST_F(LLMTest, SetTemperature) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + LLM model(kValidModelPath, kValidTokenizerPath, mockInvoker_); // Should not throw for valid values EXPECT_NO_THROW(model.setTemperature(0.5f)); EXPECT_NO_THROW(model.setTemperature(1.0f)); @@ -86,43 +86,43 @@ TEST_F(LLMTest, SetTemperature) { } TEST_F(LLMTest, SetTemperatureNegativeThrows) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + LLM model(kValidModelPath, kValidTokenizerPath, mockInvoker_); EXPECT_THROW(model.setTemperature(-0.1f), RnExecutorchError); } TEST_F(LLMTest, SetTopp) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + LLM model(kValidModelPath, kValidTokenizerPath, mockInvoker_); EXPECT_NO_THROW(model.setTopp(0.9f)); EXPECT_NO_THROW(model.setTopp(0.5f)); EXPECT_NO_THROW(model.setTopp(1.0f)); } TEST_F(LLMTest, SetToppInvalidThrows) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + LLM model(kValidModelPath, kValidTokenizerPath, mockInvoker_); EXPECT_THROW(model.setTopp(-0.1f), RnExecutorchError); EXPECT_THROW(model.setTopp(1.1f), RnExecutorchError); } TEST_F(LLMTest, SetCountInterval) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + LLM model(kValidModelPath, kValidTokenizerPath, mockInvoker_); EXPECT_NO_THROW(model.setCountInterval(5)); EXPECT_NO_THROW(model.setCountInterval(10)); } TEST_F(LLMTest, SetTimeInterval) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + LLM model(kValidModelPath, kValidTokenizerPath, mockInvoker_); EXPECT_NO_THROW(model.setTimeInterval(100)); EXPECT_NO_THROW(model.setTimeInterval(500)); } TEST_F(LLMTest, InterruptThrowsWhenUnloaded) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + LLM model(kValidModelPath, kValidTokenizerPath, mockInvoker_); model.unload(); EXPECT_THROW(model.interrupt(), RnExecutorchError); } TEST_F(LLMTest, SettersThrowWhenUnloaded) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + LLM model(kValidModelPath, kValidTokenizerPath, mockInvoker_); model.unload(); // All setters should throw when model is unloaded EXPECT_THROW(model.setTemperature(0.5f), RnExecutorchError); @@ -132,24 +132,24 @@ TEST_F(LLMTest, SettersThrowWhenUnloaded) { } TEST_F(LLMTest, GenerateProducesValidOutput) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + LLM model(kValidModelPath, kValidTokenizerPath, mockInvoker_); model.setTemperature(0.0f); std::string prompt = - formatChatML(SYSTEM_PROMPT, "Repeat exactly this: `naszponcilem testy`"); + formatChatML(kSystemPrompt, "Repeat exactly this: `naszponcilem testy`"); std::string output = model.generate(prompt, nullptr); EXPECT_EQ(output, "`naszponcilem testy`<|im_end|>"); } TEST_F(LLMTest, GenerateUpdatesTokenCount) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + LLM model(kValidModelPath, kValidTokenizerPath, mockInvoker_); EXPECT_EQ(model.getGeneratedTokenCount(), 0); std::string prompt = - formatChatML(SYSTEM_PROMPT, "Repeat exactly this: 'naszponcilem testy'"); + formatChatML(kSystemPrompt, "Repeat exactly this: 'naszponcilem testy'"); model.generate(prompt, nullptr); EXPECT_GT(model.getGeneratedTokenCount(), 0); } TEST_F(LLMTest, EmptyPromptThrows) { - LLM model(VALID_MODEL_PATH, VALID_TOKENIZER_PATH, mockInvoker_); + LLM model(kValidModelPath, kValidTokenizerPath, mockInvoker_); EXPECT_THROW((void)model.generate("", nullptr), RnExecutorchError); } diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp index 37f0920cb..428fb5afb 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/OCRTest.cpp @@ -12,9 +12,9 @@ namespace rnexecutorch { std::shared_ptr createMockCallInvoker(); } -constexpr auto VALID_DETECTOR_PATH = "xnnpack_craft_quantized.pte"; -constexpr auto VALID_RECOGNIZER_PATH = "xnnpack_crnn_english.pte"; -constexpr auto VALID_TEST_IMAGE_PATH = +constexpr auto kValidDetectorPath = "xnnpack_craft_quantized.pte"; +constexpr auto kValidRecognizerPath = "xnnpack_crnn_english.pte"; +constexpr auto kValidTestImagePath = "file:///data/local/tmp/rnexecutorch_tests/we_are_software_mansion.jpg"; // English alphabet symbols (must match alphabets.english from symbols.ts) @@ -31,17 +31,17 @@ template <> struct ModelTraits { using ModelType = OCR; static ModelType createValid() { - return ModelType(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, - ENGLISH_SYMBOLS, rnexecutorch::createMockCallInvoker()); + return ModelType(kValidDetectorPath, kValidRecognizerPath, ENGLISH_SYMBOLS, + rnexecutorch::createMockCallInvoker()); } static ModelType createInvalid() { - return ModelType("nonexistent.pte", VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + return ModelType("nonexistent.pte", kValidRecognizerPath, ENGLISH_SYMBOLS, rnexecutorch::createMockCallInvoker()); } static void callGenerate(ModelType &model) { - (void)model.generate(VALID_TEST_IMAGE_PATH); + (void)model.generate(kValidTestImagePath); } }; } // namespace model_tests @@ -53,49 +53,49 @@ INSTANTIATE_TYPED_TEST_SUITE_P(OCR, CommonModelTest, OCRTypes); // Model-specific tests // ============================================================================ TEST(OCRCtorTests, InvalidRecognizerPathThrows) { - EXPECT_THROW(OCR(VALID_DETECTOR_PATH, "nonexistent.pte", ENGLISH_SYMBOLS, + EXPECT_THROW(OCR(kValidDetectorPath, "nonexistent.pte", ENGLISH_SYMBOLS, createMockCallInvoker()), RnExecutorchError); } TEST(OCRCtorTests, EmptySymbolsThrows) { - EXPECT_THROW(OCR(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, "", + EXPECT_THROW(OCR(kValidDetectorPath, kValidRecognizerPath, "", createMockCallInvoker()), RnExecutorchError); } TEST(OCRGenerateTests, InvalidImagePathThrows) { - OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + OCR model(kValidDetectorPath, kValidRecognizerPath, ENGLISH_SYMBOLS, createMockCallInvoker()); EXPECT_THROW((void)model.generate("nonexistent_image.jpg"), RnExecutorchError); } TEST(OCRGenerateTests, EmptyImagePathThrows) { - OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + OCR model(kValidDetectorPath, kValidRecognizerPath, ENGLISH_SYMBOLS, createMockCallInvoker()); EXPECT_THROW((void)model.generate(""), RnExecutorchError); } TEST(OCRGenerateTests, MalformedURIThrows) { - OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + OCR model(kValidDetectorPath, kValidRecognizerPath, ENGLISH_SYMBOLS, createMockCallInvoker()); EXPECT_THROW((void)model.generate("not_a_valid_uri://bad"), RnExecutorchError); } TEST(OCRGenerateTests, ValidImageReturnsResults) { - OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + OCR model(kValidDetectorPath, kValidRecognizerPath, ENGLISH_SYMBOLS, createMockCallInvoker()); - auto results = model.generate(VALID_TEST_IMAGE_PATH); + auto results = model.generate(kValidTestImagePath); // May or may not have detections depending on image content EXPECT_GE(results.size(), 0u); } TEST(OCRGenerateTests, DetectionsHaveValidBoundingBoxes) { - OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + OCR model(kValidDetectorPath, kValidRecognizerPath, ENGLISH_SYMBOLS, createMockCallInvoker()); - auto results = model.generate(VALID_TEST_IMAGE_PATH); + auto results = model.generate(kValidTestImagePath); for (const auto &detection : results) { // Each bbox should have 4 points @@ -108,9 +108,9 @@ TEST(OCRGenerateTests, DetectionsHaveValidBoundingBoxes) { } TEST(OCRGenerateTests, DetectionsHaveValidScores) { - OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + OCR model(kValidDetectorPath, kValidRecognizerPath, ENGLISH_SYMBOLS, createMockCallInvoker()); - auto results = model.generate(VALID_TEST_IMAGE_PATH); + auto results = model.generate(kValidTestImagePath); for (const auto &detection : results) { EXPECT_GE(detection.score, 0.0f); @@ -119,12 +119,10 @@ TEST(OCRGenerateTests, DetectionsHaveValidScores) { } TEST(OCRGenerateTests, DetectionsHaveNonEmptyText) { - OCR model(VALID_DETECTOR_PATH, VALID_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + OCR model(kValidDetectorPath, kValidRecognizerPath, ENGLISH_SYMBOLS, createMockCallInvoker()); - auto results = model.generate(VALID_TEST_IMAGE_PATH); + auto results = model.generate(kValidTestImagePath); for (const auto &detection : results) { - // If there's a detection, it should have text - std::cout << detection.text << std::endl; EXPECT_FALSE(detection.text.empty()); } } diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ObjectDetectionTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ObjectDetectionTest.cpp index fa05540bc..ae80208a6 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/ObjectDetectionTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/ObjectDetectionTest.cpp @@ -8,9 +8,9 @@ using namespace rnexecutorch; using namespace rnexecutorch::models::object_detection; using namespace model_tests; -constexpr auto VALID_OBJECT_DETECTION_MODEL_PATH = +constexpr auto kValidObjectDetectionModelPath = "ssdlite320-mobilenetv3-large.pte"; -constexpr auto VALID_TEST_IMAGE_PATH = +constexpr auto kValidTestImagePath = "file:///data/local/tmp/rnexecutorch_tests/test_image.jpg"; // ============================================================================ @@ -21,7 +21,7 @@ template <> struct ModelTraits { using ModelType = ObjectDetection; static ModelType createValid() { - return ModelType(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + return ModelType(kValidObjectDetectionModelPath, nullptr); } static ModelType createInvalid() { @@ -29,7 +29,7 @@ template <> struct ModelTraits { } static void callGenerate(ModelType &model) { - (void)model.generate(VALID_TEST_IMAGE_PATH, 0.5); + (void)model.generate(kValidTestImagePath, 0.5); } }; } // namespace model_tests @@ -42,50 +42,50 @@ INSTANTIATE_TYPED_TEST_SUITE_P(ObjectDetection, CommonModelTest, // Model-specific tests // ============================================================================ TEST(ObjectDetectionGenerateTests, InvalidImagePathThrows) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + ObjectDetection model(kValidObjectDetectionModelPath, nullptr); EXPECT_THROW((void)model.generate("nonexistent_image.jpg", 0.5), RnExecutorchError); } TEST(ObjectDetectionGenerateTests, EmptyImagePathThrows) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + ObjectDetection model(kValidObjectDetectionModelPath, nullptr); EXPECT_THROW((void)model.generate("", 0.5), RnExecutorchError); } TEST(ObjectDetectionGenerateTests, MalformedURIThrows) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + ObjectDetection model(kValidObjectDetectionModelPath, nullptr); EXPECT_THROW((void)model.generate("not_a_valid_uri://bad", 0.5), RnExecutorchError); } TEST(ObjectDetectionGenerateTests, NegativeThresholdThrows) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); - EXPECT_THROW((void)model.generate(VALID_TEST_IMAGE_PATH, -0.1), + ObjectDetection model(kValidObjectDetectionModelPath, nullptr); + EXPECT_THROW((void)model.generate(kValidTestImagePath, -0.1), RnExecutorchError); } TEST(ObjectDetectionGenerateTests, ThresholdAboveOneThrows) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); - EXPECT_THROW((void)model.generate(VALID_TEST_IMAGE_PATH, 1.1), + ObjectDetection model(kValidObjectDetectionModelPath, nullptr); + EXPECT_THROW((void)model.generate(kValidTestImagePath, 1.1), RnExecutorchError); } TEST(ObjectDetectionGenerateTests, ValidImageReturnsResults) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); - auto results = model.generate(VALID_TEST_IMAGE_PATH, 0.3); + ObjectDetection model(kValidObjectDetectionModelPath, nullptr); + auto results = model.generate(kValidTestImagePath, 0.3); EXPECT_GE(results.size(), 0u); } TEST(ObjectDetectionGenerateTests, HighThresholdReturnsFewerResults) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); - auto lowThresholdResults = model.generate(VALID_TEST_IMAGE_PATH, 0.1); - auto highThresholdResults = model.generate(VALID_TEST_IMAGE_PATH, 0.9); + ObjectDetection model(kValidObjectDetectionModelPath, nullptr); + auto lowThresholdResults = model.generate(kValidTestImagePath, 0.1); + auto highThresholdResults = model.generate(kValidTestImagePath, 0.9); EXPECT_GE(lowThresholdResults.size(), highThresholdResults.size()); } TEST(ObjectDetectionGenerateTests, DetectionsHaveValidBoundingBoxes) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); - auto results = model.generate(VALID_TEST_IMAGE_PATH, 0.3); + ObjectDetection model(kValidObjectDetectionModelPath, nullptr); + auto results = model.generate(kValidTestImagePath, 0.3); for (const auto &detection : results) { EXPECT_LE(detection.x1, detection.x2); @@ -96,8 +96,8 @@ TEST(ObjectDetectionGenerateTests, DetectionsHaveValidBoundingBoxes) { } TEST(ObjectDetectionGenerateTests, DetectionsHaveValidScores) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); - auto results = model.generate(VALID_TEST_IMAGE_PATH, 0.3); + ObjectDetection model(kValidObjectDetectionModelPath, nullptr); + auto results = model.generate(kValidTestImagePath, 0.3); for (const auto &detection : results) { EXPECT_GE(detection.score, 0.0f); @@ -106,8 +106,8 @@ TEST(ObjectDetectionGenerateTests, DetectionsHaveValidScores) { } TEST(ObjectDetectionGenerateTests, DetectionsHaveValidLabels) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); - auto results = model.generate(VALID_TEST_IMAGE_PATH, 0.3); + ObjectDetection model(kValidObjectDetectionModelPath, nullptr); + auto results = model.generate(kValidTestImagePath, 0.3); for (const auto &detection : results) { EXPECT_GE(detection.label, 0); @@ -115,7 +115,7 @@ TEST(ObjectDetectionGenerateTests, DetectionsHaveValidLabels) { } TEST(ObjectDetectionInheritedTests, GetInputShapeWorks) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + ObjectDetection model(kValidObjectDetectionModelPath, nullptr); auto shape = model.getInputShape("forward", 0); EXPECT_EQ(shape.size(), 4); EXPECT_EQ(shape[0], 1); @@ -123,13 +123,13 @@ TEST(ObjectDetectionInheritedTests, GetInputShapeWorks) { } TEST(ObjectDetectionInheritedTests, GetAllInputShapesWorks) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + ObjectDetection model(kValidObjectDetectionModelPath, nullptr); auto shapes = model.getAllInputShapes("forward"); EXPECT_FALSE(shapes.empty()); } TEST(ObjectDetectionInheritedTests, GetMethodMetaWorks) { - ObjectDetection model(VALID_OBJECT_DETECTION_MODEL_PATH, nullptr); + ObjectDetection model(kValidObjectDetectionModelPath, nullptr); auto result = model.getMethodMeta("forward"); EXPECT_TRUE(result.ok()); } diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp index cb65dc2bd..b9a1d884c 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/SpeechToTextTest.cpp @@ -1,5 +1,5 @@ #include "BaseModelTests.h" -#include "TestUtils.h" +#include "utils/TestUtils.h" #include #include #include @@ -9,9 +9,9 @@ using namespace rnexecutorch::models::speech_to_text; using namespace test_utils; using namespace model_tests; -constexpr auto VALID_ENCODER_PATH = "whisper_tiny_en_encoder_xnnpack.pte"; -constexpr auto VALID_DECODER_PATH = "whisper_tiny_en_decoder_xnnpack.pte"; -constexpr auto VALID_TOKENIZER_PATH = "whisper_tokenizer.json"; +constexpr auto kValidEncoderPath = "whisper_tiny_en_encoder_xnnpack.pte"; +constexpr auto kValidDecoderPath = "whisper_tiny_en_decoder_xnnpack.pte"; +constexpr auto kValidTokenizerPath = "whisper_tokenizer.json"; // ============================================================================ // Common tests via typed test suite @@ -21,13 +21,13 @@ template <> struct ModelTraits { using ModelType = SpeechToText; static ModelType createValid() { - return ModelType(VALID_ENCODER_PATH, VALID_DECODER_PATH, - VALID_TOKENIZER_PATH, nullptr); + return ModelType(kValidEncoderPath, kValidDecoderPath, kValidTokenizerPath, + nullptr); } static ModelType createInvalid() { - return ModelType("nonexistent.pte", VALID_DECODER_PATH, - VALID_TOKENIZER_PATH, nullptr); + return ModelType("nonexistent.pte", kValidDecoderPath, kValidTokenizerPath, + nullptr); } static void callGenerate(ModelType &model) { @@ -45,20 +45,20 @@ INSTANTIATE_TYPED_TEST_SUITE_P(SpeechToText, CommonModelTest, // Model-specific tests // ============================================================================ TEST(S2TCtorTests, InvalidDecoderPathThrows) { - EXPECT_THROW(SpeechToText(VALID_ENCODER_PATH, "nonexistent.pte", - VALID_TOKENIZER_PATH, nullptr), + EXPECT_THROW(SpeechToText(kValidEncoderPath, "nonexistent.pte", + kValidTokenizerPath, nullptr), RnExecutorchError); } TEST(S2TCtorTests, InvalidTokenizerPathThrows) { - EXPECT_THROW(SpeechToText(VALID_ENCODER_PATH, VALID_DECODER_PATH, + EXPECT_THROW(SpeechToText(kValidEncoderPath, kValidDecoderPath, "nonexistent.json", nullptr), RnExecutorchError); } TEST(S2TEncodeTests, EncodeReturnsNonNull) { - SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, - VALID_TOKENIZER_PATH, nullptr); + SpeechToText model(kValidEncoderPath, kValidDecoderPath, kValidTokenizerPath, + nullptr); auto audio = loadAudioFromFile("test_audio_float.raw"); ASSERT_FALSE(audio.empty()); auto result = model.encode(audio); @@ -67,8 +67,8 @@ TEST(S2TEncodeTests, EncodeReturnsNonNull) { } TEST(S2TTranscribeTests, TranscribeReturnsValidChars) { - SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, - VALID_TOKENIZER_PATH, nullptr); + SpeechToText model(kValidEncoderPath, kValidDecoderPath, kValidTokenizerPath, + nullptr); auto audio = loadAudioFromFile("test_audio_float.raw"); ASSERT_FALSE(audio.empty()); auto result = model.transcribe(audio, "en"); @@ -80,16 +80,16 @@ TEST(S2TTranscribeTests, TranscribeReturnsValidChars) { } TEST(S2TTranscribeTests, EmptyResultOnSilence) { - SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, - VALID_TOKENIZER_PATH, nullptr); + SpeechToText model(kValidEncoderPath, kValidDecoderPath, kValidTokenizerPath, + nullptr); auto audio = generateSilence(16000 * 5); auto result = model.transcribe(audio, "en"); EXPECT_TRUE(result.empty()); } TEST(S2TTranscribeTests, InvalidLanguageThrows) { - SpeechToText model(VALID_ENCODER_PATH, VALID_DECODER_PATH, - VALID_TOKENIZER_PATH, nullptr); + SpeechToText model(kValidEncoderPath, kValidDecoderPath, kValidTokenizerPath, + nullptr); auto audio = loadAudioFromFile("test_audio_float.raw"); ASSERT_FALSE(audio.empty()); EXPECT_THROW((void)model.transcribe(audio, "invalid_language_code"), diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/StyleTransferTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/StyleTransferTest.cpp index 0b3ce7781..3e6951617 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/StyleTransferTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/StyleTransferTest.cpp @@ -1,5 +1,5 @@ #include "BaseModelTests.h" -#include "TestUtils.h" +#include "utils/TestUtils.h" #include #include #include @@ -9,9 +9,9 @@ using namespace rnexecutorch; using namespace rnexecutorch::models::style_transfer; using namespace model_tests; -constexpr auto VALID_STYLE_TRANSFER_MODEL_PATH = +constexpr auto kValidStyleTransferModelPath = "style_transfer_candy_xnnpack.pte"; -constexpr auto VALID_TEST_IMAGE_PATH = +constexpr auto kValidTestImagePath = "file:///data/local/tmp/rnexecutorch_tests/test_image.jpg"; // ============================================================================ @@ -22,7 +22,7 @@ template <> struct ModelTraits { using ModelType = StyleTransfer; static ModelType createValid() { - return ModelType(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + return ModelType(kValidStyleTransferModelPath, nullptr); } static ModelType createInvalid() { @@ -30,7 +30,7 @@ template <> struct ModelTraits { } static void callGenerate(ModelType &model) { - (void)model.generate(VALID_TEST_IMAGE_PATH); + (void)model.generate(kValidTestImagePath); } }; } // namespace model_tests @@ -43,48 +43,48 @@ INSTANTIATE_TYPED_TEST_SUITE_P(StyleTransfer, CommonModelTest, // Model-specific tests // ============================================================================ TEST(StyleTransferGenerateTests, InvalidImagePathThrows) { - StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + StyleTransfer model(kValidStyleTransferModelPath, nullptr); EXPECT_THROW((void)model.generate("nonexistent_image.jpg"), RnExecutorchError); } TEST(StyleTransferGenerateTests, EmptyImagePathThrows) { - StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + StyleTransfer model(kValidStyleTransferModelPath, nullptr); EXPECT_THROW((void)model.generate(""), RnExecutorchError); } TEST(StyleTransferGenerateTests, MalformedURIThrows) { - StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + StyleTransfer model(kValidStyleTransferModelPath, nullptr); EXPECT_THROW((void)model.generate("not_a_valid_uri://bad"), RnExecutorchError); } TEST(StyleTransferGenerateTests, ValidImageReturnsFilePath) { - StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); - auto result = model.generate(VALID_TEST_IMAGE_PATH); + StyleTransfer model(kValidStyleTransferModelPath, nullptr); + auto result = model.generate(kValidTestImagePath); EXPECT_FALSE(result.empty()); } TEST(StyleTransferGenerateTests, ResultIsValidFilePath) { - StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); - auto result = model.generate(VALID_TEST_IMAGE_PATH); + StyleTransfer model(kValidStyleTransferModelPath, nullptr); + auto result = model.generate(kValidTestImagePath); test_utils::trimFilePrefix(result); EXPECT_TRUE(std::filesystem::exists(result)); } TEST(StyleTransferGenerateTests, ResultFileHasContent) { - StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); - auto result = model.generate(VALID_TEST_IMAGE_PATH); + StyleTransfer model(kValidStyleTransferModelPath, nullptr); + auto result = model.generate(kValidTestImagePath); test_utils::trimFilePrefix(result); auto fileSize = std::filesystem::file_size(result); EXPECT_GT(fileSize, 0u); } TEST(StyleTransferGenerateTests, MultipleGeneratesWork) { - StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); - EXPECT_NO_THROW((void)model.generate(VALID_TEST_IMAGE_PATH)); - auto result1 = model.generate(VALID_TEST_IMAGE_PATH); - auto result2 = model.generate(VALID_TEST_IMAGE_PATH); + StyleTransfer model(kValidStyleTransferModelPath, nullptr); + EXPECT_NO_THROW((void)model.generate(kValidTestImagePath)); + auto result1 = model.generate(kValidTestImagePath); + auto result2 = model.generate(kValidTestImagePath); test_utils::trimFilePrefix(result1); test_utils::trimFilePrefix(result2); EXPECT_TRUE(std::filesystem::exists(result1)); @@ -92,7 +92,7 @@ TEST(StyleTransferGenerateTests, MultipleGeneratesWork) { } TEST(StyleTransferInheritedTests, GetInputShapeWorks) { - StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + StyleTransfer model(kValidStyleTransferModelPath, nullptr); auto shape = model.getInputShape("forward", 0); EXPECT_EQ(shape.size(), 4); EXPECT_EQ(shape[0], 1); @@ -100,13 +100,13 @@ TEST(StyleTransferInheritedTests, GetInputShapeWorks) { } TEST(StyleTransferInheritedTests, GetAllInputShapesWorks) { - StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + StyleTransfer model(kValidStyleTransferModelPath, nullptr); auto shapes = model.getAllInputShapes("forward"); EXPECT_FALSE(shapes.empty()); } TEST(StyleTransferInheritedTests, GetMethodMetaWorks) { - StyleTransfer model(VALID_STYLE_TRANSFER_MODEL_PATH, nullptr); + StyleTransfer model(kValidStyleTransferModelPath, nullptr); auto result = model.getMethodMeta("forward"); EXPECT_TRUE(result.ok()); } diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextEmbeddingsTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextEmbeddingsTest.cpp index 5e99f5d3a..ff1abd4c3 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextEmbeddingsTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextEmbeddingsTest.cpp @@ -9,10 +9,9 @@ using namespace rnexecutorch; using namespace rnexecutorch::models::embeddings; using namespace model_tests; -constexpr auto VALID_TEXT_EMBEDDINGS_MODEL_PATH = - "all-MiniLM-L6-v2_xnnpack.pte"; -constexpr auto VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH = "tokenizer.json"; -constexpr size_t MINILM_EMBEDDING_DIMENSIONS = 384; +constexpr auto kValidTextEmbeddingsModelPath = "all-MiniLM-L6-v2_xnnpack.pte"; +constexpr auto kValidTextEmbeddingsTokenizerPath = "tokenizer.json"; +constexpr size_t kMiniLmEmbeddingDimensions = 384; // ============================================================================ // Common tests via typed test suite @@ -22,12 +21,12 @@ template <> struct ModelTraits { using ModelType = TextEmbeddings; static ModelType createValid() { - return ModelType(VALID_TEXT_EMBEDDINGS_MODEL_PATH, - VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + return ModelType(kValidTextEmbeddingsModelPath, + kValidTextEmbeddingsTokenizerPath, nullptr); } static ModelType createInvalid() { - return ModelType("nonexistent.pte", VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, + return ModelType("nonexistent.pte", kValidTextEmbeddingsTokenizerPath, nullptr); } @@ -45,38 +44,38 @@ INSTANTIATE_TYPED_TEST_SUITE_P(TextEmbeddings, CommonModelTest, // Model-specific tests // ============================================================================ TEST(TextEmbeddingsCtorTests, InvalidTokenizerPathThrows) { - EXPECT_THROW(TextEmbeddings(VALID_TEXT_EMBEDDINGS_MODEL_PATH, + EXPECT_THROW(TextEmbeddings(kValidTextEmbeddingsModelPath, "this_tokenizer_does_not_exist.json", nullptr), std::exception); } TEST(TextEmbeddingsGenerateTests, EmptyStringReturnsResults) { - TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, - VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + TextEmbeddings model(kValidTextEmbeddingsModelPath, + kValidTextEmbeddingsTokenizerPath, nullptr); auto result = model.generate(""); EXPECT_NE(result, nullptr); EXPECT_GT(result->size(), 0u); } TEST(TextEmbeddingsGenerateTests, ValidTextReturnsResults) { - TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, - VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + TextEmbeddings model(kValidTextEmbeddingsModelPath, + kValidTextEmbeddingsTokenizerPath, nullptr); auto result = model.generate("Hello, world!"); EXPECT_NE(result, nullptr); EXPECT_GT(result->size(), 0u); } TEST(TextEmbeddingsGenerateTests, ResultsHaveCorrectSize) { - TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, - VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + TextEmbeddings model(kValidTextEmbeddingsModelPath, + kValidTextEmbeddingsTokenizerPath, nullptr); auto result = model.generate("This is a test sentence."); size_t numFloats = result->size() / sizeof(float); - EXPECT_EQ(numFloats, MINILM_EMBEDDING_DIMENSIONS); + EXPECT_EQ(numFloats, kMiniLmEmbeddingDimensions); } TEST(TextEmbeddingsGenerateTests, ResultsAreNormalized) { - TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, - VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + TextEmbeddings model(kValidTextEmbeddingsModelPath, + kValidTextEmbeddingsTokenizerPath, nullptr); auto result = model.generate("The quick brown fox jumps over the lazy dog."); const float *data = reinterpret_cast(result->data()); @@ -91,8 +90,8 @@ TEST(TextEmbeddingsGenerateTests, ResultsAreNormalized) { } TEST(TextEmbeddingsGenerateTests, ResultsContainValidValues) { - TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, - VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + TextEmbeddings model(kValidTextEmbeddingsModelPath, + kValidTextEmbeddingsTokenizerPath, nullptr); auto result = model.generate("Testing valid values."); const float *data = reinterpret_cast(result->data()); @@ -105,8 +104,8 @@ TEST(TextEmbeddingsGenerateTests, ResultsContainValidValues) { } TEST(TextEmbeddingsGenerateTests, DifferentTextProducesDifferentEmbeddings) { - TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, - VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + TextEmbeddings model(kValidTextEmbeddingsModelPath, + kValidTextEmbeddingsTokenizerPath, nullptr); auto result1 = model.generate("Hello, world!"); auto result2 = model.generate("Goodbye, moon!"); @@ -126,8 +125,8 @@ TEST(TextEmbeddingsGenerateTests, DifferentTextProducesDifferentEmbeddings) { } TEST(TextEmbeddingsGenerateTests, SimilarTextProducesSimilarEmbeddings) { - TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, - VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + TextEmbeddings model(kValidTextEmbeddingsModelPath, + kValidTextEmbeddingsTokenizerPath, nullptr); auto result1 = model.generate("I love programming"); auto result2 = model.generate("I enjoy coding"); @@ -144,22 +143,22 @@ TEST(TextEmbeddingsGenerateTests, SimilarTextProducesSimilarEmbeddings) { } TEST(TextEmbeddingsInheritedTests, GetInputShapeWorks) { - TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, - VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + TextEmbeddings model(kValidTextEmbeddingsModelPath, + kValidTextEmbeddingsTokenizerPath, nullptr); auto shape = model.getInputShape("forward", 0); EXPECT_GE(shape.size(), 2u); } TEST(TextEmbeddingsInheritedTests, GetAllInputShapesWorks) { - TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, - VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + TextEmbeddings model(kValidTextEmbeddingsModelPath, + kValidTextEmbeddingsTokenizerPath, nullptr); auto shapes = model.getAllInputShapes("forward"); EXPECT_FALSE(shapes.empty()); } TEST(TextEmbeddingsInheritedTests, GetMethodMetaWorks) { - TextEmbeddings model(VALID_TEXT_EMBEDDINGS_MODEL_PATH, - VALID_TEXT_EMBEDDINGS_TOKENIZER_PATH, nullptr); + TextEmbeddings model(kValidTextEmbeddingsModelPath, + kValidTextEmbeddingsTokenizerPath, nullptr); auto result = model.getMethodMeta("forward"); EXPECT_TRUE(result.ok()); } diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp index c188062e1..712967854 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TextToImageTest.cpp @@ -12,15 +12,15 @@ namespace rnexecutorch { std::shared_ptr createMockCallInvoker(); } -constexpr auto VALID_TOKENIZER_PATH = "t2i_tokenizer.json"; -constexpr auto VALID_ENCODER_PATH = "t2i_encoder.pte"; -constexpr auto VALID_UNET_PATH = "t2i_unet.pte"; -constexpr auto VALID_DECODER_PATH = "t2i_decoder.pte"; +constexpr auto kValidTokenizerPath = "t2i_tokenizer.json"; +constexpr auto kValidEncoderPath = "t2i_encoder.pte"; +constexpr auto kValidUnetPath = "t2i_unet.pte"; +constexpr auto kValidDecoderPath = "t2i_decoder.pte"; -constexpr float SCHEDULER_BETA_START = 0.00085f; -constexpr float SCHEDULER_BETA_END = 0.012f; -constexpr int32_t SCHEDULER_NUM_TRAIN_TIMESTEPS = 1000; -constexpr int32_t SCHEDULER_STEPS_OFFSET = 1; +constexpr float kSchedulerBetaStart = 0.00085f; +constexpr float kSchedulerBetaEnd = 0.012f; +constexpr int32_t kSchedulerNumTrainTimesteps = 1000; +constexpr int32_t kSchedulerStepsOffset = 1; // ============================================================================ // Common tests via typed test suite @@ -30,18 +30,16 @@ template <> struct ModelTraits { using ModelType = TextToImage; static ModelType createValid() { - return ModelType(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, - VALID_DECODER_PATH, SCHEDULER_BETA_START, - SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, + return ModelType(kValidTokenizerPath, kValidEncoderPath, kValidUnetPath, + kValidDecoderPath, kSchedulerBetaStart, kSchedulerBetaEnd, + kSchedulerNumTrainTimesteps, kSchedulerStepsOffset, rnexecutorch::createMockCallInvoker()); } static ModelType createInvalid() { - return ModelType("nonexistent.json", VALID_ENCODER_PATH, VALID_UNET_PATH, - VALID_DECODER_PATH, SCHEDULER_BETA_START, - SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, + return ModelType("nonexistent.json", kValidEncoderPath, kValidUnetPath, + kValidDecoderPath, kSchedulerBetaStart, kSchedulerBetaEnd, + kSchedulerNumTrainTimesteps, kSchedulerStepsOffset, rnexecutorch::createMockCallInvoker()); } @@ -58,73 +56,73 @@ INSTANTIATE_TYPED_TEST_SUITE_P(TextToImage, CommonModelTest, TextToImageTypes); // Model-specific tests // ============================================================================ TEST(TextToImageCtorTests, InvalidEncoderPathThrows) { - EXPECT_THROW(TextToImage(VALID_TOKENIZER_PATH, "nonexistent.pte", - VALID_UNET_PATH, VALID_DECODER_PATH, - SCHEDULER_BETA_START, SCHEDULER_BETA_END, - SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, createMockCallInvoker()), + EXPECT_THROW(TextToImage(kValidTokenizerPath, "nonexistent.pte", + kValidUnetPath, kValidDecoderPath, + kSchedulerBetaStart, kSchedulerBetaEnd, + kSchedulerNumTrainTimesteps, kSchedulerStepsOffset, + createMockCallInvoker()), RnExecutorchError); } TEST(TextToImageCtorTests, InvalidUnetPathThrows) { - EXPECT_THROW(TextToImage(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, - "nonexistent.pte", VALID_DECODER_PATH, - SCHEDULER_BETA_START, SCHEDULER_BETA_END, - SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, createMockCallInvoker()), + EXPECT_THROW(TextToImage(kValidTokenizerPath, kValidEncoderPath, + "nonexistent.pte", kValidDecoderPath, + kSchedulerBetaStart, kSchedulerBetaEnd, + kSchedulerNumTrainTimesteps, kSchedulerStepsOffset, + createMockCallInvoker()), RnExecutorchError); } TEST(TextToImageCtorTests, InvalidDecoderPathThrows) { - EXPECT_THROW(TextToImage(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, - VALID_UNET_PATH, "nonexistent.pte", - SCHEDULER_BETA_START, SCHEDULER_BETA_END, - SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, createMockCallInvoker()), + EXPECT_THROW(TextToImage(kValidTokenizerPath, kValidEncoderPath, + kValidUnetPath, "nonexistent.pte", + kSchedulerBetaStart, kSchedulerBetaEnd, + kSchedulerNumTrainTimesteps, kSchedulerStepsOffset, + createMockCallInvoker()), RnExecutorchError); } TEST(TextToImageGenerateTests, InvalidImageSizeThrows) { - TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, - VALID_DECODER_PATH, SCHEDULER_BETA_START, - SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); + TextToImage model(kValidTokenizerPath, kValidEncoderPath, kValidUnetPath, + kValidDecoderPath, kSchedulerBetaStart, kSchedulerBetaEnd, + kSchedulerNumTrainTimesteps, kSchedulerStepsOffset, + createMockCallInvoker()); EXPECT_THROW((void)model.generate("a cat", 100, 1, 42, nullptr), RnExecutorchError); } TEST(TextToImageGenerateTests, EmptyPromptThrows) { - TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, - VALID_DECODER_PATH, SCHEDULER_BETA_START, - SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); + TextToImage model(kValidTokenizerPath, kValidEncoderPath, kValidUnetPath, + kValidDecoderPath, kSchedulerBetaStart, kSchedulerBetaEnd, + kSchedulerNumTrainTimesteps, kSchedulerStepsOffset, + createMockCallInvoker()); EXPECT_THROW((void)model.generate("", 128, 1, 42, nullptr), RnExecutorchError); } TEST(TextToImageGenerateTests, ZeroStepsThrows) { - TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, - VALID_DECODER_PATH, SCHEDULER_BETA_START, - SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); + TextToImage model(kValidTokenizerPath, kValidEncoderPath, kValidUnetPath, + kValidDecoderPath, kSchedulerBetaStart, kSchedulerBetaEnd, + kSchedulerNumTrainTimesteps, kSchedulerStepsOffset, + createMockCallInvoker()); EXPECT_THROW((void)model.generate("a cat", 128, 0, 42, nullptr), RnExecutorchError); } TEST(TextToImageGenerateTests, GenerateReturnsNonNull) { - TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, - VALID_DECODER_PATH, SCHEDULER_BETA_START, - SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); + TextToImage model(kValidTokenizerPath, kValidEncoderPath, kValidUnetPath, + kValidDecoderPath, kSchedulerBetaStart, kSchedulerBetaEnd, + kSchedulerNumTrainTimesteps, kSchedulerStepsOffset, + createMockCallInvoker()); auto result = model.generate("a cat", 128, 1, 42, nullptr); EXPECT_NE(result, nullptr); } TEST(TextToImageGenerateTests, GenerateReturnsCorrectSize) { - TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, - VALID_DECODER_PATH, SCHEDULER_BETA_START, - SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); + TextToImage model(kValidTokenizerPath, kValidEncoderPath, kValidUnetPath, + kValidDecoderPath, kSchedulerBetaStart, kSchedulerBetaEnd, + kSchedulerNumTrainTimesteps, kSchedulerStepsOffset, + createMockCallInvoker()); int32_t imageSize = 128; auto result = model.generate("a cat", imageSize, 1, 42, nullptr); ASSERT_NE(result, nullptr); @@ -133,10 +131,10 @@ TEST(TextToImageGenerateTests, GenerateReturnsCorrectSize) { } TEST(TextToImageGenerateTests, SameSeedProducesSameResult) { - TextToImage model(VALID_TOKENIZER_PATH, VALID_ENCODER_PATH, VALID_UNET_PATH, - VALID_DECODER_PATH, SCHEDULER_BETA_START, - SCHEDULER_BETA_END, SCHEDULER_NUM_TRAIN_TIMESTEPS, - SCHEDULER_STEPS_OFFSET, createMockCallInvoker()); + TextToImage model(kValidTokenizerPath, kValidEncoderPath, kValidUnetPath, + kValidDecoderPath, kSchedulerBetaStart, kSchedulerBetaEnd, + kSchedulerNumTrainTimesteps, kSchedulerStepsOffset, + createMockCallInvoker()); auto result1 = model.generate("a cat", 128, 1, 42, nullptr); auto result2 = model.generate("a cat", 128, 1, 42, nullptr); ASSERT_NE(result1, nullptr); @@ -145,12 +143,7 @@ TEST(TextToImageGenerateTests, SameSeedProducesSameResult) { auto data1 = static_cast(result1->data()); auto data2 = static_cast(result2->data()); - bool same = true; for (size_t i = 0; i < result1->size(); i++) { - if (data1[i] != data2[i]) { - same = false; - break; - } + EXPECT_EQ(data1[i], data2[i]) << "at index: " << i; } - EXPECT_TRUE(same); } diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TokenizerModuleTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TokenizerModuleTest.cpp index f04b1e1e9..393ce78d3 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TokenizerModuleTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/TokenizerModuleTest.cpp @@ -4,7 +4,7 @@ using namespace rnexecutorch; -constexpr auto VALID_TOKENIZER_PATH = "tokenizer.json"; +constexpr auto kValidTokenizerPath = "tokenizer.json"; TEST(TokenizerCtorTests, InvalidPathThrows) { EXPECT_THROW(TokenizerModule("nonexistent_tokenizer.json", nullptr), @@ -12,54 +12,54 @@ TEST(TokenizerCtorTests, InvalidPathThrows) { } TEST(TokenizerCtorTests, ValidPathDoesntThrow) { - EXPECT_NO_THROW(TokenizerModule(VALID_TOKENIZER_PATH, nullptr)); + EXPECT_NO_THROW(TokenizerModule(kValidTokenizerPath, nullptr)); } TEST(TokenizerMemoryTests, MemoryLowerBoundIsPositive) { - TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + TokenizerModule tokenizer(kValidTokenizerPath, nullptr); EXPECT_GT(tokenizer.getMemoryLowerBound(), 0u); } TEST(TokenizerEncodeTests, EmptyStringReturnsEmptyString) { - TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + TokenizerModule tokenizer(kValidTokenizerPath, nullptr); auto tokens = tokenizer.encode(""); EXPECT_TRUE(tokens.empty()); } TEST(TokenizerEncodeTests, SimpleTextReturnsTokens) { - TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + TokenizerModule tokenizer(kValidTokenizerPath, nullptr); auto tokens = tokenizer.encode("Hello world"); EXPECT_GT(tokens.size(), 0u); } TEST(TokenizerEncodeTests, SameTextReturnsSameTokens) { - TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + TokenizerModule tokenizer(kValidTokenizerPath, nullptr); auto tokens1 = tokenizer.encode("test"); auto tokens2 = tokenizer.encode("test"); EXPECT_EQ(tokens1, tokens2); } TEST(TokenizerEncodeTests, DifferentTextReturnsDifferentTokens) { - TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + TokenizerModule tokenizer(kValidTokenizerPath, nullptr); auto tokens1 = tokenizer.encode("hello"); auto tokens2 = tokenizer.encode("goodbye"); EXPECT_NE(tokens1, tokens2); } TEST(TokenizerEncodeTests, SpecialCharactersWork) { - TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + TokenizerModule tokenizer(kValidTokenizerPath, nullptr); auto tokens = tokenizer.encode("!@#$%^&*()"); EXPECT_GT(tokens.size(), 0u); } TEST(TokenizerEncodeTests, VeryLongTextWorks) { - TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + TokenizerModule tokenizer(kValidTokenizerPath, nullptr); std::string longText(10000, 'a'); EXPECT_NO_THROW((void)tokenizer.encode(longText)); } TEST(TokenizerDecodeTests, DecodeEncodedTextReturnsOriginal) { - TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + TokenizerModule tokenizer(kValidTokenizerPath, nullptr); std::string original = "szponcik"; auto tokens = tokenizer.encode(original); auto decoded = tokenizer.decode(tokens, true); @@ -67,31 +67,31 @@ TEST(TokenizerDecodeTests, DecodeEncodedTextReturnsOriginal) { } TEST(TokenizerDecodeTests, DecodeEmptyVectorReturnsEmpty) { - TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + TokenizerModule tokenizer(kValidTokenizerPath, nullptr); auto decoded = tokenizer.decode({}, true); EXPECT_TRUE(decoded.empty()); } TEST(TokenizerIdToTokenTests, ValidIdReturnsToken) { - TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + TokenizerModule tokenizer(kValidTokenizerPath, nullptr); auto token = tokenizer.idToToken(0); EXPECT_FALSE(token.empty()); } TEST(TokenizerTokenToIdTests, RoundTripWorks) { - TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + TokenizerModule tokenizer(kValidTokenizerPath, nullptr); auto token = tokenizer.idToToken(100); auto id = tokenizer.tokenToId(token); EXPECT_EQ(id, 100); } TEST(TokenizerVocabTests, VocabSizeIsPositive) { - TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + TokenizerModule tokenizer(kValidTokenizerPath, nullptr); EXPECT_GT(tokenizer.getVocabSize(), 0u); } TEST(TokenizerVocabTests, VocabSizeIsReasonable) { - TokenizerModule tokenizer(VALID_TOKENIZER_PATH, nullptr); + TokenizerModule tokenizer(kValidTokenizerPath, nullptr); auto vocabSize = tokenizer.getVocabSize(); EXPECT_GT(vocabSize, 1000u); EXPECT_LT(vocabSize, 1000000u); diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/VerticalOCRTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VerticalOCRTest.cpp index ddeec5e59..7b1010a81 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/VerticalOCRTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VerticalOCRTest.cpp @@ -12,9 +12,9 @@ namespace rnexecutorch { std::shared_ptr createMockCallInvoker(); } -constexpr auto VALID_VERTICAL_DETECTOR_PATH = "xnnpack_craft_quantized.pte"; -constexpr auto VALID_VERTICAL_RECOGNIZER_PATH = "xnnpack_crnn_english.pte"; -constexpr auto VALID_VERTICAL_TEST_IMAGE_PATH = +constexpr auto kValidVerticalDetectorPath = "xnnpack_craft_quantized.pte"; +constexpr auto kValidVerticalRecognizerPath = "xnnpack_crnn_english.pte"; +constexpr auto kValidVerticalTestImagePath = "file:///data/local/tmp/rnexecutorch_tests/we_are_software_mansion.jpg"; // English alphabet symbols (must match alphabets.english from symbols.ts) @@ -31,19 +31,19 @@ template <> struct ModelTraits { using ModelType = VerticalOCR; static ModelType createValid() { - return ModelType(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, + return ModelType(kValidVerticalDetectorPath, kValidVerticalRecognizerPath, + ENGLISH_SYMBOLS, false, rnexecutorch::createMockCallInvoker()); } static ModelType createInvalid() { - return ModelType("nonexistent.pte", VALID_VERTICAL_RECOGNIZER_PATH, + return ModelType("nonexistent.pte", kValidVerticalRecognizerPath, ENGLISH_SYMBOLS, false, rnexecutorch::createMockCallInvoker()); } static void callGenerate(ModelType &model) { - (void)model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + (void)model.generate(kValidVerticalTestImagePath); } }; } // namespace model_tests @@ -57,67 +57,62 @@ INSTANTIATE_TYPED_TEST_SUITE_P(VerticalOCR, CommonModelTest, VerticalOCRTypes); // Constructor tests TEST(VerticalOCRCtorTests, InvalidRecognizerPathThrows) { - EXPECT_THROW(VerticalOCR(VALID_VERTICAL_DETECTOR_PATH, "nonexistent.pte", + EXPECT_THROW(VerticalOCR(kValidVerticalDetectorPath, "nonexistent.pte", ENGLISH_SYMBOLS, false, createMockCallInvoker()), RnExecutorchError); } TEST(VerticalOCRCtorTests, EmptySymbolsThrows) { - EXPECT_THROW(VerticalOCR(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, "", false, + EXPECT_THROW(VerticalOCR(kValidVerticalDetectorPath, + kValidVerticalRecognizerPath, "", false, createMockCallInvoker()), RnExecutorchError); } TEST(VerticalOCRCtorTests, IndependentCharsTrueDoesntThrow) { - EXPECT_NO_THROW(VerticalOCR(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + EXPECT_NO_THROW(VerticalOCR(kValidVerticalDetectorPath, + kValidVerticalRecognizerPath, ENGLISH_SYMBOLS, true, createMockCallInvoker())); } TEST(VerticalOCRCtorTests, IndependentCharsFalseDoesntThrow) { - EXPECT_NO_THROW(VerticalOCR(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + EXPECT_NO_THROW(VerticalOCR(kValidVerticalDetectorPath, + kValidVerticalRecognizerPath, ENGLISH_SYMBOLS, false, createMockCallInvoker())); } // Generate tests - Independent Characters strategy TEST(VerticalOCRGenerateTests, IndependentCharsInvalidImageThrows) { - VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, true, - createMockCallInvoker()); + VerticalOCR model(kValidVerticalDetectorPath, kValidVerticalRecognizerPath, + ENGLISH_SYMBOLS, true, createMockCallInvoker()); EXPECT_THROW((void)model.generate("nonexistent_image.jpg"), RnExecutorchError); } TEST(VerticalOCRGenerateTests, IndependentCharsEmptyImagePathThrows) { - VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, true, - createMockCallInvoker()); + VerticalOCR model(kValidVerticalDetectorPath, kValidVerticalRecognizerPath, + ENGLISH_SYMBOLS, true, createMockCallInvoker()); EXPECT_THROW((void)model.generate(""), RnExecutorchError); } TEST(VerticalOCRGenerateTests, IndependentCharsMalformedURIThrows) { - VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, true, - createMockCallInvoker()); + VerticalOCR model(kValidVerticalDetectorPath, kValidVerticalRecognizerPath, + ENGLISH_SYMBOLS, true, createMockCallInvoker()); EXPECT_THROW((void)model.generate("not_a_valid_uri://bad"), RnExecutorchError); } TEST(VerticalOCRGenerateTests, IndependentCharsValidImageReturnsResults) { - VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, true, - createMockCallInvoker()); - auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + VerticalOCR model(kValidVerticalDetectorPath, kValidVerticalRecognizerPath, + ENGLISH_SYMBOLS, true, createMockCallInvoker()); + auto results = model.generate(kValidVerticalTestImagePath); EXPECT_GE(results.size(), 0u); } TEST(VerticalOCRGenerateTests, IndependentCharsDetectionsHaveValidBBoxes) { - VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, true, - createMockCallInvoker()); - auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + VerticalOCR model(kValidVerticalDetectorPath, kValidVerticalRecognizerPath, + ENGLISH_SYMBOLS, true, createMockCallInvoker()); + auto results = model.generate(kValidVerticalTestImagePath); for (const auto &detection : results) { EXPECT_EQ(detection.bbox.size(), 4u); @@ -129,10 +124,9 @@ TEST(VerticalOCRGenerateTests, IndependentCharsDetectionsHaveValidBBoxes) { } TEST(VerticalOCRGenerateTests, IndependentCharsDetectionsHaveValidScores) { - VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, true, - createMockCallInvoker()); - auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + VerticalOCR model(kValidVerticalDetectorPath, kValidVerticalRecognizerPath, + ENGLISH_SYMBOLS, true, createMockCallInvoker()); + auto results = model.generate(kValidVerticalTestImagePath); for (const auto &detection : results) { EXPECT_GE(detection.score, 0.0f); @@ -141,10 +135,9 @@ TEST(VerticalOCRGenerateTests, IndependentCharsDetectionsHaveValidScores) { } TEST(VerticalOCRGenerateTests, IndependentCharsDetectionsHaveNonEmptyText) { - VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, true, - createMockCallInvoker()); - auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + VerticalOCR model(kValidVerticalDetectorPath, kValidVerticalRecognizerPath, + ENGLISH_SYMBOLS, true, createMockCallInvoker()); + auto results = model.generate(kValidVerticalTestImagePath); for (const auto &detection : results) { EXPECT_FALSE(detection.text.empty()); @@ -153,41 +146,36 @@ TEST(VerticalOCRGenerateTests, IndependentCharsDetectionsHaveNonEmptyText) { // Generate tests - Joint Characters strategy TEST(VerticalOCRGenerateTests, JointCharsInvalidImageThrows) { - VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, - createMockCallInvoker()); + VerticalOCR model(kValidVerticalDetectorPath, kValidVerticalRecognizerPath, + ENGLISH_SYMBOLS, false, createMockCallInvoker()); EXPECT_THROW((void)model.generate("nonexistent_image.jpg"), RnExecutorchError); } TEST(VerticalOCRGenerateTests, JointCharsEmptyImagePathThrows) { - VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, - createMockCallInvoker()); + VerticalOCR model(kValidVerticalDetectorPath, kValidVerticalRecognizerPath, + ENGLISH_SYMBOLS, false, createMockCallInvoker()); EXPECT_THROW((void)model.generate(""), RnExecutorchError); } TEST(VerticalOCRGenerateTests, JointCharsMalformedURIThrows) { - VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, - createMockCallInvoker()); + VerticalOCR model(kValidVerticalDetectorPath, kValidVerticalRecognizerPath, + ENGLISH_SYMBOLS, false, createMockCallInvoker()); EXPECT_THROW((void)model.generate("not_a_valid_uri://bad"), RnExecutorchError); } TEST(VerticalOCRGenerateTests, JointCharsValidImageReturnsResults) { - VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, - createMockCallInvoker()); - auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + VerticalOCR model(kValidVerticalDetectorPath, kValidVerticalRecognizerPath, + ENGLISH_SYMBOLS, false, createMockCallInvoker()); + auto results = model.generate(kValidVerticalTestImagePath); EXPECT_GE(results.size(), 0u); } TEST(VerticalOCRGenerateTests, JointCharsDetectionsHaveValidBBoxes) { - VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, - createMockCallInvoker()); - auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + VerticalOCR model(kValidVerticalDetectorPath, kValidVerticalRecognizerPath, + ENGLISH_SYMBOLS, false, createMockCallInvoker()); + auto results = model.generate(kValidVerticalTestImagePath); for (const auto &detection : results) { EXPECT_EQ(detection.bbox.size(), 4u); @@ -199,10 +187,9 @@ TEST(VerticalOCRGenerateTests, JointCharsDetectionsHaveValidBBoxes) { } TEST(VerticalOCRGenerateTests, JointCharsDetectionsHaveValidScores) { - VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, - createMockCallInvoker()); - auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + VerticalOCR model(kValidVerticalDetectorPath, kValidVerticalRecognizerPath, + ENGLISH_SYMBOLS, false, createMockCallInvoker()); + auto results = model.generate(kValidVerticalTestImagePath); for (const auto &detection : results) { EXPECT_GE(detection.score, 0.0f); @@ -211,10 +198,9 @@ TEST(VerticalOCRGenerateTests, JointCharsDetectionsHaveValidScores) { } TEST(VerticalOCRGenerateTests, JointCharsDetectionsHaveNonEmptyText) { - VerticalOCR model(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, - createMockCallInvoker()); - auto results = model.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + VerticalOCR model(kValidVerticalDetectorPath, kValidVerticalRecognizerPath, + ENGLISH_SYMBOLS, false, createMockCallInvoker()); + auto results = model.generate(kValidVerticalTestImagePath); for (const auto &detection : results) { EXPECT_FALSE(detection.text.empty()); @@ -223,29 +209,28 @@ TEST(VerticalOCRGenerateTests, JointCharsDetectionsHaveNonEmptyText) { // Strategy comparison tests TEST(VerticalOCRStrategyTests, BothStrategiesRunSuccessfully) { - VerticalOCR independentModel(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + VerticalOCR independentModel(kValidVerticalDetectorPath, + kValidVerticalRecognizerPath, ENGLISH_SYMBOLS, true, createMockCallInvoker()); - VerticalOCR jointModel(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, + VerticalOCR jointModel(kValidVerticalDetectorPath, + kValidVerticalRecognizerPath, ENGLISH_SYMBOLS, false, createMockCallInvoker()); - EXPECT_NO_THROW( - (void)independentModel.generate(VALID_VERTICAL_TEST_IMAGE_PATH)); - EXPECT_NO_THROW((void)jointModel.generate(VALID_VERTICAL_TEST_IMAGE_PATH)); + EXPECT_NO_THROW((void)independentModel.generate(kValidVerticalTestImagePath)); + EXPECT_NO_THROW((void)jointModel.generate(kValidVerticalTestImagePath)); } TEST(VerticalOCRStrategyTests, BothStrategiesReturnValidResults) { - VerticalOCR independentModel(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, + VerticalOCR independentModel(kValidVerticalDetectorPath, + kValidVerticalRecognizerPath, ENGLISH_SYMBOLS, true, createMockCallInvoker()); - VerticalOCR jointModel(VALID_VERTICAL_DETECTOR_PATH, - VALID_VERTICAL_RECOGNIZER_PATH, ENGLISH_SYMBOLS, false, + VerticalOCR jointModel(kValidVerticalDetectorPath, + kValidVerticalRecognizerPath, ENGLISH_SYMBOLS, false, createMockCallInvoker()); auto independentResults = - independentModel.generate(VALID_VERTICAL_TEST_IMAGE_PATH); - auto jointResults = jointModel.generate(VALID_VERTICAL_TEST_IMAGE_PATH); + independentModel.generate(kValidVerticalTestImagePath); + auto jointResults = jointModel.generate(kValidVerticalTestImagePath); // Both should return some results (or none if no text detected) EXPECT_GE(independentResults.size(), 0u); diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp index 39e9ee0d9..5c19b74f6 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/VoiceActivityDetectionTest.cpp @@ -1,5 +1,5 @@ #include "BaseModelTests.h" -#include "TestUtils.h" +#include "utils/TestUtils.h" #include #include #include @@ -9,7 +9,7 @@ using namespace rnexecutorch::models::voice_activity_detection; using namespace test_utils; using namespace model_tests; -constexpr auto VALID_VAD_MODEL_PATH = "fsmn-vad_xnnpack.pte"; +constexpr auto kValidVadModelPath = "fsmn-vad_xnnpack.pte"; // ============================================================================ // Common tests via typed test suite @@ -19,7 +19,7 @@ template <> struct ModelTraits { using ModelType = VoiceActivityDetection; static ModelType createValid() { - return ModelType(VALID_VAD_MODEL_PATH, nullptr); + return ModelType(kValidVadModelPath, nullptr); } static ModelType createInvalid() { @@ -40,14 +40,14 @@ INSTANTIATE_TYPED_TEST_SUITE_P(VAD, CommonModelTest, VADTypes); // Model-specific tests // ============================================================================ TEST(VADGenerateTests, SilenceReturnsNoSegments) { - VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + VoiceActivityDetection model(kValidVadModelPath, nullptr); auto silence = generateSilence(16000 * 5); auto segments = model.generate(silence); EXPECT_TRUE(segments.empty()); } TEST(VADGenerateTests, SegmentsHaveValidBounds) { - VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + VoiceActivityDetection model(kValidVadModelPath, nullptr); auto audio = loadAudioFromFile("test_audio_float.raw"); ASSERT_FALSE(audio.empty()); auto segments = model.generate(audio); @@ -59,7 +59,7 @@ TEST(VADGenerateTests, SegmentsHaveValidBounds) { } TEST(VADGenerateTests, SegmentsAreNonOverlapping) { - VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + VoiceActivityDetection model(kValidVadModelPath, nullptr); auto audio = loadAudioFromFile("test_audio_float.raw"); ASSERT_FALSE(audio.empty()); auto segments = model.generate(audio); @@ -69,7 +69,7 @@ TEST(VADGenerateTests, SegmentsAreNonOverlapping) { } TEST(VADGenerateTests, LongAudioSegmentBoundsValid) { - VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + VoiceActivityDetection model(kValidVadModelPath, nullptr); auto audio = loadAudioFromFile("test_audio_float.raw"); ASSERT_FALSE(audio.empty()); auto segments = model.generate(audio); @@ -81,19 +81,19 @@ TEST(VADGenerateTests, LongAudioSegmentBoundsValid) { } TEST(VADInheritedTests, GetInputShapeWorks) { - VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + VoiceActivityDetection model(kValidVadModelPath, nullptr); auto shape = model.getInputShape("forward", 0); EXPECT_GE(shape.size(), 2u); } TEST(VADInheritedTests, GetAllInputShapesWorks) { - VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + VoiceActivityDetection model(kValidVadModelPath, nullptr); auto shapes = model.getAllInputShapes("forward"); EXPECT_FALSE(shapes.empty()); } TEST(VADInheritedTests, GetMethodMetaWorks) { - VoiceActivityDetection model(VALID_VAD_MODEL_PATH, nullptr); + VoiceActivityDetection model(kValidVadModelPath, nullptr); auto result = model.getMethodMeta("forward"); EXPECT_TRUE(result.ok()); } diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/TestUtils.h b/packages/react-native-executorch/common/rnexecutorch/tests/integration/utils/TestUtils.h similarity index 100% rename from packages/react-native-executorch/common/rnexecutorch/tests/integration/TestUtils.h rename to packages/react-native-executorch/common/rnexecutorch/tests/integration/utils/TestUtils.h From 8fc251d7793ca9e42fbab6d5c9ac810f698798c5 Mon Sep 17 00:00:00 2001 From: Jakub Chmura <92989966+chmjkb@users.noreply.github.com> Date: Tue, 27 Jan 2026 12:40:31 +0100 Subject: [PATCH 25/29] Apply suggestion from @chmjkb --- .../common/rnexecutorch/tests/run_tests.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh index 0fd739c0e..3214b42f9 100755 --- a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh +++ b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh @@ -39,7 +39,6 @@ TEST_EXECUTABLES=( TEST_ASSETS=( "integration/assets/test_audio_float.raw" "integration/assets/we_are_software_mansion.jpg" - "integration/assets/test_ocr_image.png" ) # ============================================================================ From 22baead8aa1d894a4271e91d63d45635f93f9aac Mon Sep 17 00:00:00 2001 From: chmjkb Date: Tue, 27 Jan 2026 17:33:41 +0100 Subject: [PATCH 26/29] chore: review changes --- .../common/rnexecutorch/models/llm/LLM.cpp | 24 +++++++++++++++++++ .../common/rnexecutorch/models/llm/LLM.h | 4 ++++ .../common/runner/runner.cpp | 2 ++ 3 files changed, 30 insertions(+) diff --git a/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.cpp b/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.cpp index 5bcdce1ff..bd27fe641 100644 --- a/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.cpp +++ b/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.cpp @@ -28,6 +28,7 @@ LLM::LLM(const std::string &modelSource, const std::string &tokenizerSource, } // TODO: add a way to manipulate the generation config with params +#ifdef TEST_BUILD std::string LLM::generate(std::string input, std::shared_ptr callback) { if (!runner || !runner->is_loaded()) { @@ -55,6 +56,29 @@ std::string LLM::generate(std::string input, return output; } +#else +void LLM::generate(std::string input, std::shared_ptr callback) { + if (!runner || !runner->is_loaded()) { + throw RnExecutorchError(RnExecutorchErrorCode::ModuleNotLoaded, + "Runner is not loaded"); + } + + // Create a native callback that only invokes JS (no accumulation) + auto nativeCallback = [this, callback](const std::string &token) { + if (callback && callInvoker) { + callInvoker->invokeAsync([callback, token](jsi::Runtime &runtime) { + callback->call(runtime, jsi::String::createFromUtf8(runtime, token)); + }); + } + }; + + auto config = llm::GenerationConfig{.echo = false, .warming = false}; + auto error = runner->generate(input, config, nativeCallback, {}); + if (error != executorch::runtime::Error::Ok) { + throw RnExecutorchError(error, "Failed to generate text"); + } +} +#endif void LLM::interrupt() { if (!runner || !runner->is_loaded()) { diff --git a/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.h b/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.h index 6b778f56c..d1b62e463 100644 --- a/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.h +++ b/packages/react-native-executorch/common/rnexecutorch/models/llm/LLM.h @@ -18,8 +18,12 @@ class LLM : public BaseModel { const std::string &tokenizerSource, std::shared_ptr callInvoker); +#ifdef TEST_BUILD std::string generate(std::string input, std::shared_ptr callback); +#else + void generate(std::string input, std::shared_ptr callback); +#endif void interrupt(); void unload() noexcept; size_t getGeneratedTokenCount() const noexcept; diff --git a/packages/react-native-executorch/common/runner/runner.cpp b/packages/react-native-executorch/common/runner/runner.cpp index 12b0d5fa6..3b24d6ec2 100644 --- a/packages/react-native-executorch/common/runner/runner.cpp +++ b/packages/react-native-executorch/common/runner/runner.cpp @@ -268,7 +268,9 @@ Error Runner::generate(const std::string &prompt, ET_LOG(Info, "Warmup run finished!"); } else { // Do not print report during warmup +#ifndef TEST_BUILD ::executorch::llm::print_report(stats_); +#endif } if (stats_callback) { stats_callback(stats_); From c740a1f55c1053ac29d8ecf2e876daba1bd2caac Mon Sep 17 00:00:00 2001 From: chmjkb Date: Wed, 28 Jan 2026 10:27:49 +0100 Subject: [PATCH 27/29] chore: dynamically find required static libs --- .../common/rnexecutorch/tests/README.md | 49 ++++++++++++++++--- .../common/rnexecutorch/tests/run_tests.sh | 33 ++++++++++--- 2 files changed, 69 insertions(+), 13 deletions(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/README.md b/packages/react-native-executorch/common/rnexecutorch/tests/README.md index d44686d5e..1a35743df 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/README.md +++ b/packages/react-native-executorch/common/rnexecutorch/tests/README.md @@ -9,13 +9,48 @@ The googletest is already in repo in `react-native-executorch/third-party/google * `git submodule update --init --recursive third-party/googletest` ### Running tests -To run tests navigate to tests directory, namely: -* `cd packages/react-native-executorch/common/rnexecutorch/tests` -To run tests, you need to make sure your Android emulator is running. This is because we're cross-compiling the test executables for Android, so we can easily run the tests using prebuilt Android third-party libs. To run the tests, you need to run the following command: -* `bash ./run_tests.sh` -This script downloads all the needed models, pushes all the executables, models, assets, shared libs via ADB to a running emulator. Finally, it runs the pre-compiled executables. -Available flags: -* `--refresh-models` - Forcefully downloads all the models. By default, the models are not downloaded, unless they are not in the specified directory. + +#### Prerequisites + +- **Android NDK**: The `ANDROID_NDK` environment variable must be set +- **wget**: Must be in your PATH +- **Android emulator**: Must be running before executing tests +- **Device requirements**: + - 16GB disk storage (minimum) + - 8GB RAM (minimum) + +#### First-time setup + +Before running tests, you need to build an app to generate required native libraries (`libfbjni.so` and `libc++_shared.so`). The test script automatically searches for these in the monorepo. + +If the script reports missing libraries, build any example app: +```bash +cd apps/computer-vision/android +./gradlew assembleDebug +# or +./gradlew assembleRelease +``` + +#### Running the tests + +Navigate to the tests directory: +```bash +cd packages/react-native-executorch/common/rnexecutorch/tests +``` + +Run the test script: +```bash +bash ./run_tests.sh +``` + +This script: +- Downloads all needed models +- Pushes executables, models, assets, and shared libraries via ADB to the running emulator +- Runs the pre-compiled test executables + +#### Available flags + +* `--refresh-models` - Forcefully downloads all the models. By default, models are not downloaded unless they are missing from the specified directory. * `--skip-build` - Skips the cmake build step. ### How to add a new test diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh index 3214b42f9..58244ac27 100755 --- a/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh +++ b/packages/react-native-executorch/common/rnexecutorch/tests/run_tests.sh @@ -76,10 +76,28 @@ REQUIRED_LIBS=( "$ANDROID_LIBS_DIR/cpuinfo/$ANDROID_ABI/libcpuinfo.so:libcpuinfo.so" ) -GRADLE_LIBS_DIR="$PACKAGE_ROOT/android/build/intermediates/cmake/release/obj/$ANDROID_ABI" +# Dynamically find libfbjni.so and libc++_shared.so from CMake builds +# These are built by other native modules (e.g., react-native-reanimated, react-native-skia) +MONOREPO_ROOT="$PACKAGE_ROOT/../../.." + +LIBFBJNI_PATH=$(find "$MONOREPO_ROOT" -path "*/android/build/intermediates/cmake/*/obj/$ANDROID_ABI/libfbjni.so" -type f 2>/dev/null | head -1) +LIBCPP_PATH=$(find "$MONOREPO_ROOT" -path "*/android/build/intermediates/cmake/*/obj/$ANDROID_ABI/libc++_shared.so" -type f 2>/dev/null | head -1) + +if [ -z "$LIBFBJNI_PATH" ]; then + echo "Error: libfbjni.so not found in monorepo." + echo "Please build an app first: cd apps/computer-vision/android && ./gradlew assembleRelease" + exit 1 +fi + +if [ -z "$LIBCPP_PATH" ]; then + echo "Error: libc++_shared.so not found in monorepo." + echo "Please build an app first: cd apps/computer-vision/android && ./gradlew assembleRelease" + exit 1 +fi + GRADLE_LIBS=( - "libfbjni.so" - "libc++_shared.so" + "$LIBFBJNI_PATH:libfbjni.so" + "$LIBCPP_PATH:libc++_shared.so" ) # ============================================================================ @@ -271,9 +289,12 @@ for lib_entry in "${REQUIRED_LIBS[@]}"; do fi done -for lib in "${GRADLE_LIBS[@]}"; do - if [ -f "$GRADLE_LIBS_DIR/$lib" ]; then - push_file "$GRADLE_LIBS_DIR/$lib" "$DEVICE_TEST_DIR/" +for lib_entry in "${GRADLE_LIBS[@]}"; do + IFS=':' read -r src dest <<<"$lib_entry" + if [ -f "$src" ]; then + push_file "$src" "$DEVICE_TEST_DIR/" + else + error "Library not found: $src" fi done From 5a844d12b251eb76340a529c3235c9ed2b6b0ac4 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Wed, 28 Jan 2026 10:28:06 +0100 Subject: [PATCH 28/29] chore: update cspell wordlist --- .cspell-wordlist.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.cspell-wordlist.txt b/.cspell-wordlist.txt index fcef68ce2..e952f80e6 100644 --- a/.cspell-wordlist.txt +++ b/.cspell-wordlist.txt @@ -94,3 +94,6 @@ Português codegen cstdint ocurred +libfbjni +libc +gradlew From ff10c965e5cf22cbdada42543536f07aeb1810f2 Mon Sep 17 00:00:00 2001 From: chmjkb Date: Wed, 28 Jan 2026 12:22:14 +0100 Subject: [PATCH 29/29] fix: remove duplicate gtest include --- .../common/rnexecutorch/tests/integration/BaseModelTests.h | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h index 1a7569691..e1c6e0107 100644 --- a/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h +++ b/packages/react-native-executorch/common/rnexecutorch/tests/integration/BaseModelTests.h @@ -1,7 +1,6 @@ #pragma once #include "gtest/gtest.h" -#include #include namespace facebook::react {

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 literal 0 HcmV?d00001 diff --git a/packages/react-native-executorch/common/rnexecutorch/tests/integration/assets/we_are_software_mansion.jpg b/packages/react-native-executorch/common/rnexecutorch/tests/integration/assets/we_are_software_mansion.jpg new file mode 100644 index 0000000000000000000000000000000000000000..521416d0086c709e05e522d68f0ff9b1272ddb0e GIT binary patch literal 52710 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

-B&bBZ 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 %(ZdLM`A>@GEAcN&_>j5y2;HKak;x(0`yD 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