From 7821161dcc95fdcd114f05330fc8bb3aabf7b2aa Mon Sep 17 00:00:00 2001 From: hedgecrw85 Date: Fri, 9 Oct 2015 11:42:15 -0500 Subject: [PATCH] Forced flush before close, monitors return value of close(), and releases exclusive lock of port before close. --- INSTALL | 14 +-- build.gradle | 2 +- src/main/c/Android/jni/Android.mk | 3 +- .../c/Android/jni/AndroidHelperFunctions.c | 15 +++- src/main/c/Android/jni/SerialPort_Android.c | 82 ++++++++++++------ .../jni/com_fazecast_jSerialComm_SerialPort.h | 8 ++ src/main/c/Linux/SerialPort_Linux.c | 56 ++++++++---- src/main/c/OSX/SerialPort_OSX.c | 47 ++++++---- src/main/c/Windows/SerialPort_Windows.c | 22 +++-- .../jSerialComm/SerialPortDataListener.java | 2 +- .../fazecast/jSerialComm/SerialPortEvent.java | 2 +- .../jSerialComm/SerialPortPacketListener.java | 2 +- .../Android/arm64-v8a/libjSerialComm.so | Bin 17800 -> 17800 bytes .../Android/armeabi-v7a/libjSerialComm.so | Bin 17600 -> 17556 bytes .../Android/armeabi/libjSerialComm.so | Bin 21688 -> 21644 bytes .../resources/Android/mips/libjSerialComm.so | Bin 71736 -> 71792 bytes .../Android/mips64/libjSerialComm.so | Bin 23392 -> 23456 bytes .../resources/Android/x86/libjSerialComm.so | Bin 17492 -> 17452 bytes .../Android/x86_64/libjSerialComm.so | Bin 17992 -> 17992 bytes .../resources/Linux/armv5/libjSerialComm.so | Bin 26767 -> 27698 bytes .../Linux/armv6-hf/libjSerialComm.so | Bin 21854 -> 22497 bytes .../resources/Linux/armv6/libjSerialComm.so | Bin 26751 -> 27690 bytes .../Linux/armv7-hf/libjSerialComm.so | Bin 21854 -> 22497 bytes .../resources/Linux/armv7/libjSerialComm.so | Bin 24490 -> 24901 bytes .../resources/Linux/x86/libjSerialComm.so | Bin 21916 -> 21955 bytes .../resources/Linux/x86_64/libjSerialComm.so | Bin 23712 -> 23765 bytes .../fazecast/jSerialComm/SerialPortTest.java | 2 +- 27 files changed, 171 insertions(+), 86 deletions(-) diff --git a/INSTALL b/INSTALL index b6c95c8..75c0cb0 100644 --- a/INSTALL +++ b/INSTALL @@ -123,29 +123,29 @@ Maven: com.fazecast jSerialComm - 1.3.8 + 1.3.9 Ivy: - + Groovy: -@Grab(group='com.fazecast', module='jSerialComm', version='1.3.8') +@Grab(group='com.fazecast', module='jSerialComm', version='1.3.9') Gradle: -compile 'com.fazecast:jSerialComm:1.3.8' +compile 'com.fazecast:jSerialComm:1.3.9' Buildr: -compile.with 'com.fazecast:jSerialComm:jar:1.3.8' +compile.with 'com.fazecast:jSerialComm:jar:1.3.9' Scala/SBT: -libraryDependencies += "com.fazecast" % "jSerialComm" % "1.3.8" +libraryDependencies += "com.fazecast" % "jSerialComm" % "1.3.9" Leiningen: -[com.fazecast/jSerialComm "1.3.8"] +[com.fazecast/jSerialComm "1.3.9"] diff --git a/build.gradle b/build.gradle index 3daeeb3..3997663 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ apply plugin: 'maven' group = 'com.fazecast' archivesBaseName = 'jSerialComm' -version = '1.3.8' +version = '1.3.9' sourceCompatibility = 1.6 targetCompatibility = 1.6 diff --git a/src/main/c/Android/jni/Android.mk b/src/main/c/Android/jni/Android.mk index 0379d18..afc3114 100644 --- a/src/main/c/Android/jni/Android.mk +++ b/src/main/c/Android/jni/Android.mk @@ -4,9 +4,10 @@ include $(CLEAR_VARS) LOCAL_MODULE := jSerialComm LOCAL_SRC_FILES := SerialPort_Android.c AndroidHelperFunctions.c +LOCAL_LDLIBS := -llog include $(BUILD_SHARED_LIBRARY) all: cp -rf libs/* ../../resources/Android - rm -rf libs obj/* obj + rm -rf libs/* libs obj diff --git a/src/main/c/Android/jni/AndroidHelperFunctions.c b/src/main/c/Android/jni/AndroidHelperFunctions.c index 75f527c..a0bceae 100644 --- a/src/main/c/Android/jni/AndroidHelperFunctions.c +++ b/src/main/c/Android/jni/AndroidHelperFunctions.c @@ -32,6 +32,8 @@ #include #include #include +#include +#include #ifndef BOTHER #include #endif @@ -245,18 +247,23 @@ void setBaudRate(int portFD, int baudRate) { #ifdef BOTHER struct termios2 options = { 0 }; - ioctl(portFD, TCGETS2, &options); + + if (isatty(portFD)) + ioctl(portFD, TCGETS2, &options); options.c_cflag &= ~CBAUD; options.c_cflag |= BOTHER; options.c_ispeed = baudRate; options.c_ospeed = baudRate; - ioctl(portFD, TCSETS2, &options); + if (isatty(portFD)) + ioctl(portFD, TCSETS2, &options); #else struct termios options = { 0 }; - tcgetattr(portFD, &options); + if (isatty(portFD)) + ioctl(portFD, TCGETS, &options); cfsetispeed(&options, B38400); cfsetospeed(&options, B38400); - tcsetattr(portFD, TCSANOW, &options); + if (isatty(portFD)) + ioctl(portFD, TCSETS, &options); #endif } diff --git a/src/main/c/Android/jni/SerialPort_Android.c b/src/main/c/Android/jni/SerialPort_Android.c index 5341179..9e17c18 100644 --- a/src/main/c/Android/jni/SerialPort_Android.c +++ b/src/main/c/Android/jni/SerialPort_Android.c @@ -2,7 +2,7 @@ * SerialPort_Android.c * * Created on: Mar 13, 2015 - * Last Updated on: May 19, 2015 + * Last Updated on: Oct 09, 2015 * Author: Will Hedgecock * * Copyright (C) 2012-2015 Fazecast, Inc. @@ -27,7 +27,9 @@ #ifndef CMSPAR #define CMSPAR 010000000000 #endif +#include #include +#include #include #include #include @@ -35,9 +37,15 @@ #include #include #include +#include +#include #include "com_fazecast_jSerialComm_SerialPort.h" #include "AndroidHelperFunctions.h" +// Logging defines +#define LOG_TAG "com.fazecast.jSerialComm" +#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__) + // Cached class, method, and field IDs jclass serialCommClass; jmethodID serialCommConstructor; @@ -104,7 +112,7 @@ JNIEXPORT void JNICALL Java_com_fazecast_jSerialComm_SerialPort_initializeLibrar JNIEXPORT void JNICALL Java_com_fazecast_jSerialComm_SerialPort_uninitializeLibrary(JNIEnv *env, jclass serialComm) { - // Delete the cache global reference + // Delete the cached global reference (*env)->DeleteGlobalRef(env, serialCommClass); } @@ -124,7 +132,7 @@ JNIEXPORT jlong JNICALL Java_com_fazecast_jSerialComm_SerialPort_openPortNative( else { // Close the port if there was a problem setting the parameters - close(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); } @@ -150,10 +158,12 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configPort(J tcflag_t parity = (parityInt == com_fazecast_jSerialComm_SerialPort_NO_PARITY) ? 0 : (parityInt == com_fazecast_jSerialComm_SerialPort_ODD_PARITY) ? (PARENB | PARODD) : (parityInt == com_fazecast_jSerialComm_SerialPort_EVEN_PARITY) ? PARENB : (parityInt == com_fazecast_jSerialComm_SerialPort_MARK_PARITY) ? (PARENB | CMSPAR | PARODD) : (PARENB | CMSPAR); // Clear any serial port flags - fcntl(serialPortFD, F_SETFL, 0); + if (isatty(serialPortFD)) + fcntl(serialPortFD, F_SETFL, 0); - // Set raw-mode to allow the use of tcsetattr() and ioctl() - tcgetattr(serialPortFD, &options); + // Set raw-mode to allow the use of ioctl() + if (isatty(serialPortFD)) + ioctl(serialPortFD, TCGETS, &options); cfmakeraw(&options); // Set updated port parameters @@ -175,8 +185,9 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configPort(J } // Apply changes - int retVal = tcsetattr(serialPortFD, TCSANOW, &options); - ioctl(serialPortFD, TIOCEXCL); // Block non-root users from using this port + int retVal = -1; + if (isatty(serialPortFD)) + retVal = ioctl(serialPortFD, TCSETS, &options); if (baudRateCode == 0) // Set custom baud rate setBaudRate(serialPortFD, baudRate); return ((retVal == 0) ? JNI_TRUE : JNI_FALSE); @@ -198,14 +209,17 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configFlowCo tcflag_t XonXoffOutEnabled = ((flowControl & com_fazecast_jSerialComm_SerialPort_FLOW_CONTROL_XONXOFF_OUT_ENABLED) > 0) ? IXON : 0; // Retrieve existing port configuration - tcgetattr(serialPortFD, &options); + if (isatty(serialPortFD)) + ioctl(serialPortFD, TCGETS, &options); // Set updated port parameters options.c_cflag |= CTSRTSEnabled; options.c_iflag |= XonXoffInEnabled | XonXoffOutEnabled; // Apply changes - int retVal = tcsetattr(serialPortFD, TCSANOW, &options); + int retVal = -1; + if (isatty(serialPortFD)) + retVal = ioctl(serialPortFD, TCSETS, &options); if (baudRateCode == 0) // Set custom baud rate setBaudRate(serialPortFD, baudRate); return ((retVal == 0) ? JNI_TRUE : JNI_FALSE); @@ -223,8 +237,11 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configTimeou // Retrieve existing port configuration struct termios options = { 0 }; - tcgetattr(serialPortFD, &options); + if (isatty(serialPortFD)) + ioctl(serialPortFD, TCGETS, &options); int flags = fcntl(serialPortFD, F_GETFL); + if (flags == -1) + return JNI_FALSE; // Set updated port timeouts if (((timeoutMode & com_fazecast_jSerialComm_SerialPort_TIMEOUT_READ_SEMI_BLOCKING) > 0) && (readTimeout > 0)) // Read Semi-blocking with timeout @@ -265,8 +282,9 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configTimeou } // Apply changes - fcntl(serialPortFD, F_SETFL, flags); - int retVal = tcsetattr(serialPortFD, TCSANOW, &options); + int retVal = fcntl(serialPortFD, F_SETFL, flags); + if ((retVal != -1) && isatty(serialPortFD)) + retVal = ioctl(serialPortFD, TCSETS, &options); if (baudRateCode == 0) // Set custom baud rate setBaudRate(serialPortFD, baudRate); return ((retVal == 0) ? JNI_TRUE : JNI_FALSE); @@ -283,24 +301,27 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configEventF int eventsToMonitor = (*env)->GetIntField(env, obj, eventFlagsField); // Change read timeouts if we are monitoring data received + jboolean retVal; if ((eventsToMonitor & com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_DATA_RECEIVED) > 0) { struct termios options = { 0 }; - tcgetattr(serialPortFD, &options); + ioctl(serialPortFD, TCGETS, &options); int flags = fcntl(serialPortFD, F_GETFL); + if (flags == -1) + return JNI_FALSE; flags &= ~O_NONBLOCK; options.c_cc[VMIN] = 0; options.c_cc[VTIME] = 10; - fcntl(serialPortFD, F_SETFL, flags); - tcsetattr(serialPortFD, TCSANOW, &options); + retVal = ((fcntl(serialPortFD, F_SETFL, flags) == -1) || (ioctl(serialPortFD, TCSETS, &options) == -1)) ? + JNI_FALSE : JNI_TRUE; if (baudRateCode == 0) // Set custom baud rate setBaudRate(serialPortFD, baudRate); } else - Java_com_fazecast_jSerialComm_SerialPort_configTimeouts(env, obj, serialPortFD); + retVal = Java_com_fazecast_jSerialComm_SerialPort_configTimeouts(env, obj, serialPortFD); // Apply changes - return JNI_TRUE; + return retVal; } JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_waitForEvent(JNIEnv *env, jobject obj, jlong serialPortFD) @@ -315,7 +336,8 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_waitForEvent(JNI FD_SET(serialPortFD, &waitingSet); // Wait for a serial port event - int retVal = select(serialPortFD + 1, &waitingSet, NULL, NULL, &timeout); + int retVal; + do { retVal = select(serialPortFD + 1, &waitingSet, NULL, NULL, &timeout); } while ((retVal < 0) && (errno == EINTR)); if (retVal <= 0) return 0; return (FD_ISSET(serialPortFD, &waitingSet)) ? com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_DATA_AVAILABLE : 0; @@ -326,7 +348,7 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_closePortNat // Close port if (serialPortFD <= 0) return JNI_TRUE; - close(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetLongField(env, obj, serialPortFdField, -1l); (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); @@ -359,10 +381,11 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv // While there are more bytes we are supposed to read while (bytesRemaining > 0) { - if ((numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining)) == -1) + do { numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining); } while ((numBytesRead < 0) && (errno == EINTR)); + if (numBytesRead == -1) { // Problem reading, close port - close(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetLongField(env, obj, serialPortFdField, -1l); (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); @@ -389,10 +412,11 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv // While there are more bytes we are supposed to read and the timeout has not elapsed do { - if ((numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining)) == -1) + do { numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining); } while ((numBytesRead < 0) && (errno == EINTR)); + if (numBytesRead == -1) { // Problem reading, close port - close(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetLongField(env, obj, serialPortFdField, -1l); (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); @@ -411,10 +435,11 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv else // Semi- or non-blocking specified { // Read from port - if ((numBytesRead = read(serialPortFD, readBuffer, bytesToRead)) == -1) + do { numBytesRead = read(serialPortFD, readBuffer, bytesToRead); } while ((numBytesRead < 0) && (errno == EINTR)); + if (numBytesRead == -1) { // Problem reading, close port - close(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetLongField(env, obj, serialPortFdField, -1l); (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); @@ -437,10 +462,11 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_writeBytes(JNIEn int numBytesWritten; // Write to port - if ((numBytesWritten = write(serialPortFD, writeBuffer, bytesToWrite)) == -1) + do { numBytesWritten = write(serialPortFD, writeBuffer, bytesToWrite); } while ((numBytesWritten < 0) && (errno == EINTR)); + if (numBytesWritten == -1) { // Problem writing, close port - close(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetLongField(env, obj, serialPortFdField, -1l); (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); diff --git a/src/main/c/Android/jni/com_fazecast_jSerialComm_SerialPort.h b/src/main/c/Android/jni/com_fazecast_jSerialComm_SerialPort.h index 17f91d2..333a0c2 100644 --- a/src/main/c/Android/jni/com_fazecast_jSerialComm_SerialPort.h +++ b/src/main/c/Android/jni/com_fazecast_jSerialComm_SerialPort.h @@ -87,6 +87,14 @@ JNIEXPORT void JNICALL Java_com_fazecast_jSerialComm_SerialPort_uninitializeLibr JNIEXPORT jlong JNICALL Java_com_fazecast_jSerialComm_SerialPort_openPortNative (JNIEnv *, jobject); +/* + * Class: com_fazecast_jSerialComm_SerialPort + * Method: associateNativeHandle + * Signature: (J)Z + */ +JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_associateNativeHandle + (JNIEnv *, jobject, jlong); + /* * Class: com_fazecast_jSerialComm_SerialPort * Method: closePortNative diff --git a/src/main/c/Linux/SerialPort_Linux.c b/src/main/c/Linux/SerialPort_Linux.c index f55675a..8bbeb15 100644 --- a/src/main/c/Linux/SerialPort_Linux.c +++ b/src/main/c/Linux/SerialPort_Linux.c @@ -2,7 +2,7 @@ * SerialPort_Linux.c * * Created on: Feb 25, 2012 - * Last Updated on: May 04, 2015 + * Last Updated on: Oct 09, 2015 * Author: Will Hedgecock * * Copyright (C) 2012-2015 Fazecast, Inc. @@ -126,7 +126,9 @@ JNIEXPORT jlong JNICALL Java_com_fazecast_jSerialComm_SerialPort_openPortNative( else { // Close the port if there was a problem setting the parameters - close(serialPortFD); + ioctl(serialPortFD, TIOCNXCL); + tcdrain(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); } @@ -179,7 +181,7 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configPort(J // Apply changes int retVal = tcsetattr(serialPortFD, TCSANOW, &options); - ioctl(serialPortFD, TIOCEXCL); // Block non-root users from using this port + ioctl(serialPortFD, TIOCEXCL); // Block non-root users from opening this port if (baudRateCode == 0) // Set custom baud rate setBaudRate(serialPortFD, baudRate); return ((retVal == 0) ? JNI_TRUE : JNI_FALSE); @@ -228,6 +230,8 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configTimeou struct termios options = { 0 }; tcgetattr(serialPortFD, &options); int flags = fcntl(serialPortFD, F_GETFL); + if (flags == -1) + return JNI_FALSE; // Set updated port timeouts if (((timeoutMode & com_fazecast_jSerialComm_SerialPort_TIMEOUT_READ_SEMI_BLOCKING) > 0) && (readTimeout > 0)) // Read Semi-blocking with timeout @@ -268,8 +272,9 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configTimeou } // Apply changes - fcntl(serialPortFD, F_SETFL, flags); - int retVal = tcsetattr(serialPortFD, TCSANOW, &options); + int retVal = fcntl(serialPortFD, F_SETFL, flags); + if (retVal != -1) + retVal = tcsetattr(serialPortFD, TCSANOW, &options); if (baudRateCode == 0) // Set custom baud rate setBaudRate(serialPortFD, baudRate); return ((retVal == 0) ? JNI_TRUE : JNI_FALSE); @@ -286,24 +291,27 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configEventF int eventsToMonitor = (*env)->GetIntField(env, obj, eventFlagsField); // Change read timeouts if we are monitoring data received + jboolean retVal; if ((eventsToMonitor & com_fazecast_jSerialComm_SerialPort_LISTENING_EVENT_DATA_RECEIVED) > 0) { struct termios options = { 0 }; tcgetattr(serialPortFD, &options); int flags = fcntl(serialPortFD, F_GETFL); + if (flags == -1) + return JNI_FALSE; flags &= ~O_NONBLOCK; options.c_cc[VMIN] = 0; options.c_cc[VTIME] = 10; - fcntl(serialPortFD, F_SETFL, flags); - tcsetattr(serialPortFD, TCSANOW, &options); + retVal = ((fcntl(serialPortFD, F_SETFL, flags) == -1) || (tcsetattr(serialPortFD, TCSANOW, &options) == -1)) ? + JNI_FALSE : JNI_TRUE; if (baudRateCode == 0) // Set custom baud rate setBaudRate(serialPortFD, baudRate); } else - Java_com_fazecast_jSerialComm_SerialPort_configTimeouts(env, obj, serialPortFD); + retVal = Java_com_fazecast_jSerialComm_SerialPort_configTimeouts(env, obj, serialPortFD); // Apply changes - return JNI_TRUE; + return retVal; } JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_waitForEvent(JNIEnv *env, jobject obj, jlong serialPortFD) @@ -330,7 +338,11 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_closePortNat // Close port if (serialPortFD <= 0) return JNI_TRUE; - close(serialPortFD); + + // Allow others to open this port + ioctl(serialPortFD, TIOCNXCL); + tcdrain(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetLongField(env, obj, serialPortFdField, -1l); (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); @@ -366,8 +378,10 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv do { numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining); } while ((numBytesRead < 0) && (errno == EINTR)); if (numBytesRead == -1) { - // Problem reading, close port - close(serialPortFD); + // Problem reading, allow others to open the port and close it ourselves + ioctl(serialPortFD, TIOCNXCL); + tcdrain(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetLongField(env, obj, serialPortFdField, -1l); (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); @@ -397,8 +411,10 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv do { numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining); } while ((numBytesRead < 0) && (errno == EINTR)); if (numBytesRead == -1) { - // Problem reading, close port - close(serialPortFD); + // Problem reading, allow others to open the port and close it ourselves + ioctl(serialPortFD, TIOCNXCL); + tcdrain(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetLongField(env, obj, serialPortFdField, -1l); (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); @@ -420,8 +436,10 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv do { numBytesRead = read(serialPortFD, readBuffer, bytesToRead); } while ((numBytesRead < 0) && (errno == EINTR)); if (numBytesRead == -1) { - // Problem reading, close port - close(serialPortFD); + // Problem reading, allow others to open the port and close it ourselves + ioctl(serialPortFD, TIOCNXCL); + tcdrain(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetLongField(env, obj, serialPortFdField, -1l); (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); @@ -447,8 +465,10 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_writeBytes(JNIEn do { numBytesWritten = write(serialPortFD, writeBuffer, bytesToWrite); } while ((numBytesWritten < 0) && (errno == EINTR)); if (numBytesWritten == -1) { - // Problem writing, close port - close(serialPortFD); + // Problem writing, allow others to open the port and close it ourselves + ioctl(serialPortFD, TIOCNXCL); + tcdrain(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetLongField(env, obj, serialPortFdField, -1l); (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); diff --git a/src/main/c/OSX/SerialPort_OSX.c b/src/main/c/OSX/SerialPort_OSX.c index 10d5c8b..2bcacb1 100644 --- a/src/main/c/OSX/SerialPort_OSX.c +++ b/src/main/c/OSX/SerialPort_OSX.c @@ -2,7 +2,7 @@ * SerialPort_OSX.c * * Created on: Feb 25, 2012 - * Last Updated on: July 1, 2015 + * Last Updated on: Oct 09, 2015 * Author: Will Hedgecock * * Copyright (C) 2012-2015 Fazecast, Inc. @@ -177,7 +177,9 @@ JNIEXPORT jlong JNICALL Java_com_fazecast_jSerialComm_SerialPort_openPortNative( else { // Close the port if there was a problem setting the parameters - close(serialPortFD); + ioctl(serialPortFD, TIOCNXCL); + tcdrain(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); } @@ -273,6 +275,8 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configTimeou struct termios options; tcgetattr(serialPortFD, &options); int flags = fcntl(serialPortFD, F_GETFL); + if (flags == -1) + return JNI_FALSE; // Set updated port timeouts if (((timeoutMode & com_fazecast_jSerialComm_SerialPort_TIMEOUT_READ_SEMI_BLOCKING) > 0) && (readTimeout > 0)) // Read Semi-blocking with timeout @@ -313,8 +317,8 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configTimeou } // Apply changes - fcntl(serialPortFD, F_SETFL, flags); - return (tcsetattr(serialPortFD, TCSANOW, &options) == 0) ? JNI_TRUE : JNI_FALSE; + int retVal = fcntl(serialPortFD, F_SETFL, flags); + return ((retVal != -1) && (tcsetattr(serialPortFD, TCSANOW, &options) == 0)) ? JNI_TRUE : JNI_FALSE; } JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configEventFlags(JNIEnv *env, jobject obj, jlong serialPortFD) @@ -332,11 +336,13 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_configEventF struct termios options; tcgetattr(serialPortFD, &options); int flags = fcntl(serialPortFD, F_GETFL); + if (flags == -1) + return JNI_FALSE; flags &= ~O_NONBLOCK; options.c_cc[VMIN] = 0; options.c_cc[VTIME] = 10; - fcntl(serialPortFD, F_SETFL, flags); - retVal = (tcsetattr(serialPortFD, TCSANOW, &options) == 0) ? JNI_TRUE : JNI_FALSE; + retVal = ((fcntl(serialPortFD, F_SETFL, flags) != -1) && (tcsetattr(serialPortFD, TCSANOW, &options) != -1)) ? + JNI_TRUE : JNI_FALSE; } else retVal = Java_com_fazecast_jSerialComm_SerialPort_configTimeouts(env, obj, serialPortFD); @@ -368,8 +374,11 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_closePortNat // Close port if (serialPortFD <= 0) return JNI_TRUE; + + // Allow others to open the port and close it ourselves + ioctl(serialPortFD, TIOCNXCL); tcdrain(serialPortFD); - close(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetLongField(env, obj, serialPortFdField, -1l); (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); @@ -405,8 +414,10 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv do { numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining); } while ((numBytesRead < 0) && (errno == EINTR)); if (numBytesRead == -1) { - // Problem reading, close port - close(serialPortFD); + // Problem reading, allow others to open the port and close it ourselves + ioctl(serialPortFD, TIOCNXCL); + tcdrain(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetLongField(env, obj, serialPortFdField, -1l); (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); @@ -436,8 +447,10 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv do { numBytesRead = read(serialPortFD, readBuffer+numBytesReadTotal, bytesRemaining); } while ((numBytesRead < 0) && (errno == EINTR)); if (numBytesRead == -1) { - // Problem reading, close port - close(serialPortFD); + // Problem reading, allow others to open the port and close it ourselves + ioctl(serialPortFD, TIOCNXCL); + tcdrain(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetLongField(env, obj, serialPortFdField, -1l); (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); @@ -459,8 +472,10 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv do { numBytesRead = read(serialPortFD, readBuffer, bytesToRead); } while ((numBytesRead < 0) && (errno == EINTR)); if (numBytesRead == -1) { - // Problem reading, close port - close(serialPortFD); + // Problem reading, allow others to open the port and close it ourselves + ioctl(serialPortFD, TIOCNXCL); + tcdrain(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetLongField(env, obj, serialPortFdField, -1l); (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); @@ -486,8 +501,10 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_writeBytes(JNIEn do { numBytesWritten = write(serialPortFD, writeBuffer, bytesToWrite); } while ((numBytesWritten < 0) && (errno == EINTR)); if (numBytesWritten == -1) { - // Problem writing, close port - close(serialPortFD); + // Problem writing, allow others to open the port and close it ourselves + ioctl(serialPortFD, TIOCNXCL); + tcdrain(serialPortFD); + while ((close(serialPortFD) == -1) && (errno != EBADF)); serialPortFD = -1; (*env)->SetLongField(env, obj, serialPortFdField, -1l); (*env)->SetBooleanField(env, obj, isOpenedField, JNI_FALSE); diff --git a/src/main/c/Windows/SerialPort_Windows.c b/src/main/c/Windows/SerialPort_Windows.c index 046cfa7..5e851ea 100644 --- a/src/main/c/Windows/SerialPort_Windows.c +++ b/src/main/c/Windows/SerialPort_Windows.c @@ -263,7 +263,8 @@ JNIEXPORT jlong JNICALL Java_com_fazecast_jSerialComm_SerialPort_openPortNative( else { // Close the port if there was a problem setting the parameters - CloseHandle(serialPortHandle); + PurgeComm(serialPortHandle, PURGE_RXABORT | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_TXCLEAR); + while (!CloseHandle(serialPortHandle)); serialPortHandle = INVALID_HANDLE_VALUE; env->SetBooleanField(obj, isOpenedField, JNI_FALSE); } @@ -474,7 +475,8 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_waitForEvent(JNI if (GetLastError() != ERROR_IO_PENDING) // Problem occurred { // Problem reading, close port - CloseHandle(serialPortHandle); + PurgeComm(serialPortHandle, PURGE_RXABORT | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_TXCLEAR); + while (!CloseHandle(serialPortHandle)); serialPortHandle = INVALID_HANDLE_VALUE; env->SetLongField(obj, serialPortHandleField, -1l); env->SetBooleanField(obj, isOpenedField, JNI_FALSE); @@ -498,12 +500,12 @@ JNIEXPORT jboolean JNICALL Java_com_fazecast_jSerialComm_SerialPort_closePortNat PurgeComm(serialPortHandle, PURGE_RXABORT | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_TXCLEAR); // Close port - BOOL retVal = CloseHandle(serialPortHandle); + while (!CloseHandle(serialPortHandle)); serialPortHandle = INVALID_HANDLE_VALUE; env->SetLongField(obj, serialPortHandleField, -1l); env->SetBooleanField(obj, isOpenedField, JNI_FALSE); - return (retVal == 0) ? JNI_FALSE : JNI_TRUE; + return JNI_TRUE; } JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_bytesAvailable(JNIEnv *env, jobject obj, jlong serialPortFD) @@ -542,7 +544,8 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv if (GetLastError() != ERROR_IO_PENDING) // Problem occurred { // Problem reading, close port - CloseHandle(serialPortHandle); + PurgeComm(serialPortHandle, PURGE_RXABORT | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_TXCLEAR); + while (!CloseHandle(serialPortHandle)); serialPortHandle = INVALID_HANDLE_VALUE; env->SetLongField(obj, serialPortHandleField, -1l); env->SetBooleanField(obj, isOpenedField, JNI_FALSE); @@ -550,7 +553,8 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_readBytes(JNIEnv else if ((result = GetOverlappedResult(serialPortHandle, &overlappedStruct, &numBytesRead, TRUE)) == FALSE) { // Problem reading, close port - CloseHandle(serialPortHandle); + PurgeComm(serialPortHandle, PURGE_RXABORT | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_TXCLEAR); + while (!CloseHandle(serialPortHandle)); serialPortHandle = INVALID_HANDLE_VALUE; env->SetLongField(obj, serialPortHandleField, -1l); env->SetBooleanField(obj, isOpenedField, JNI_FALSE); @@ -586,7 +590,8 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_writeBytes(JNIEn if (GetLastError() != ERROR_IO_PENDING) { // Problem writing, close port - CloseHandle(serialPortHandle); + PurgeComm(serialPortHandle, PURGE_RXABORT | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_TXCLEAR); + while (!CloseHandle(serialPortHandle)); serialPortHandle = INVALID_HANDLE_VALUE; env->SetLongField(obj, serialPortHandleField, -1l); env->SetBooleanField(obj, isOpenedField, JNI_FALSE); @@ -594,7 +599,8 @@ JNIEXPORT jint JNICALL Java_com_fazecast_jSerialComm_SerialPort_writeBytes(JNIEn else if ((result = GetOverlappedResult(serialPortHandle, &overlappedStruct, &numBytesWritten, TRUE)) == FALSE) { // Problem reading, close port - CloseHandle(serialPortHandle); + PurgeComm(serialPortHandle, PURGE_RXABORT | PURGE_RXCLEAR | PURGE_TXABORT | PURGE_TXCLEAR); + while (!CloseHandle(serialPortHandle)); serialPortHandle = INVALID_HANDLE_VALUE; env->SetLongField(obj, serialPortHandleField, -1l); env->SetBooleanField(obj, isOpenedField, JNI_FALSE); diff --git a/src/main/java/com/fazecast/jSerialComm/SerialPortDataListener.java b/src/main/java/com/fazecast/jSerialComm/SerialPortDataListener.java index f195e44..29d9789 100644 --- a/src/main/java/com/fazecast/jSerialComm/SerialPortDataListener.java +++ b/src/main/java/com/fazecast/jSerialComm/SerialPortDataListener.java @@ -31,7 +31,7 @@ import java.util.EventListener; * This interface must be implemented to enable simple event-based serial port I/O. * * @author Will Hedgecock <will.hedgecock@fazecast.com> - * @version 1.3.8 + * @version 1.3.9 * @see java.util.EventListener */ public interface SerialPortDataListener extends EventListener diff --git a/src/main/java/com/fazecast/jSerialComm/SerialPortEvent.java b/src/main/java/com/fazecast/jSerialComm/SerialPortEvent.java index 1a48e84..b78c32b 100644 --- a/src/main/java/com/fazecast/jSerialComm/SerialPortEvent.java +++ b/src/main/java/com/fazecast/jSerialComm/SerialPortEvent.java @@ -31,7 +31,7 @@ import java.util.EventObject; * This class describes an asynchronous serial port event. * * @author Will Hedgecock <will.hedgecock@fazecast.com> - * @version 1.3.8 + * @version 1.3.9 * @see java.util.EventObject */ public final class SerialPortEvent extends EventObject diff --git a/src/main/java/com/fazecast/jSerialComm/SerialPortPacketListener.java b/src/main/java/com/fazecast/jSerialComm/SerialPortPacketListener.java index 2d34e0f..fa6e8fe 100644 --- a/src/main/java/com/fazecast/jSerialComm/SerialPortPacketListener.java +++ b/src/main/java/com/fazecast/jSerialComm/SerialPortPacketListener.java @@ -31,7 +31,7 @@ package com.fazecast.jSerialComm; * Note: Using this interface will negate any serial port read timeout settings since they make no sense in an asynchronous context. * * @author Will Hedgecock <will.hedgecock@fazecast.com> - * @version 1.3.8 + * @version 1.3.9 * @see com.fazecast.jSerialComm.SerialPortDataListener * @see java.util.EventListener */ diff --git a/src/main/resources/Android/arm64-v8a/libjSerialComm.so b/src/main/resources/Android/arm64-v8a/libjSerialComm.so index 69ca98e460dcee99e4fc67fdd161904e3d290643..796fdaedce6e720ba22d2a431c55f783d71c3dac 100644 GIT binary patch literal 17800 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 Osso!1IBH6MiT-b0V6FZD literal 17800 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 G)PDk_&hGmF diff --git a/src/main/resources/Android/armeabi/libjSerialComm.so b/src/main/resources/Android/armeabi/libjSerialComm.so index 2f3ef779acbe7afd27ce4c6aa9510cffc4b289f7..00b59060dfa56ebd3d36234e64087b9b4cdd0a5b 100644 GIT binary patch delta 8913 zcmb_i4Rlo1wLa(0ok=E;AAS>(OENzpOcD~pkC-5mA&Chg{Dc4!kXMEu>qMy{5QG-J zV})uFB;i_3f>i{%UL?R9#I*4()bwc;T76CwkkZgMrBD=#UPKFl$;|uqog0|U>w0Uw zwcc55zVq#U?zw00v(LUaGt=<~-}VM?uyCo-x}tpHEXGKT3@wQ<4iINUeh?NWFg68Z z((UN7B-oQ+C($n8jla(yw`~SvebR|(NJN?qQgdP5%E(y*umzNCK2Nx7r1BI`7kYA) zSNRVHZz*Oh4&w*2Sat$&!gdp|J>1xVGY^^v%x#YGv?6wV(=FyFf9@^;X~kG!lMIlg!npeu@DaFGsqpyDf@m zNALwSK>-vCav3YrCvZj#AbWWfuZrR|;LW(+rC;w->Wmrk>ZnmqMDeGh__I;`1#rrg zSM*t526rK@N#K;nzXI>RlS%9d_<3+|cpqeTw7-HK2anvS&%j?Ce`llpQTz&c&ww{al!BHByAAd?!H1TFFQ82O1YC^Ze*@2q;Bhfw?7J=2afuwjo%9X6Y#$4_kr&K@5|f{ z@Xx_h8I!dOzJTHi6oNj%m*C%kQxeev=wAqYqRx}Rua=W7Y|jF(oN~uL3H%q}eZ^uH zcwe)iv+OoUWg*2HCdG6U;CKi9eR)a3?|#5O&Lxm>eADFx~?O50Ahzc30V&5Yia0=hSckdp95Dx z9@jYmGMH6Ceo91dRP5>?&xd!HG1L;R(W8c1Z5Xt@N2S!-WF2SfxD|LmWE8{$iEPV2 z9*R&@qmP2eHbHP|Z?}akF1k3gP06sP!0msI?dH{~|~_L{hE}FI5VYm+VXyjTR^}phz|&pR~7wJTSYt z04xVGNVDCI-d&J!3Qrkr#Y0kSIPm@2y*kTQDpS&A)E72K*OUQKpV$bz)4WzFv z?dt%42w4Ha+bJuBEQXAM6hWwokOv`|L?T+2-hTqPmZq48&Pd3^5IldF6Vli2L+8hk zsk*|gVjgx^%SS{hurOKockIL0Lov&l9jxHTn>NpcP3`w+v z5L3Acad@Bkrp(MyPcyhVru)i0f|WKdIh`uwTUl`FZi0C`+ z^mEQx?vQgS5&b0eMfTbSR8xO*D0E3wej(+K--_O83REZ*QrksoyO&!8^<2Q*K=|iC zQKk8y+r_dR(#EnwE~d^2Dc?%_;4iiv9s$CvX?=1K?KRG2j!xkAZbSAMgPnxi%}0#jw-pIP;WC8L9DykTYugL$eya zeCH39L6%{&+WowlWwWlserCurEE!+)oqb3*QUDvuxOmrRI#W^Y_Pg7 z*IJ}L&4MaJl%_^mYgtfn?`)I5GwavP;P+&$N5)N_&6@=EA2*pp^zkOq%4~vq{U+)D zuInaLn)VCo_cu)kmbK;R!_N3dmMe5G>|$dU_$WLg z!n5#ZepR;n*yx{>rMYG1xE&7Gz|`k^9k2-vWV>TY$}%~5*ZVR2q$g{V=_5m@(3$8F zLW%f`Un({T>Ldz->_cQLMZ}@_rm0!nWswp}d2>docrdZl^pg0ppxQMrb0mv22wsl4 zX(TU4{isCP#c~Z@7Ky>nlfCW|x8|pzIsUev={FPM=eMXEt&mqB9F<;xkkhkgB*JOs zlr=#XyE%M?Sf24$R5{$otmH{0OLdpl7D*1I0f(1Ed#6skTKhui` zVE%H@Q!PFN{91Ar^3uj~~>w74ao#jCk z<9~;|33(Ml0S#Rbg~CD2kR~cu?8z}Th-S4fUm1`&LVhUV_#aVoNOZK`H|3oa4^n

WazJ$S~rAS)sLT^T=Td{u%Zm))x6?k(O_ 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 Kpu9dm`M&`gM@MD= delta 8668 zcmcIqX>=6Vm3~!Sy+~*S0a_@eUIc0(BqXs|2pP51GD1s0LJ&9D1I?Bc4z^_$2V;Ax z!OP%)jYK(#mc%$Val~S$9jt`Ou|Z=y35jjeZ6L;Dk#uYmd1F!}BnXgH^WE-hyVY~f zocS~F==OKNdtbffzWZKPS8Ly4?!;lP-O4TQu&rP8U?XEBMuw8c7zdcR1hP6JDhxAu z#!R{&Dzn0Gg`Z>ye28`YuDH~{n6aqz<0=vXUXo>(wrz-Q^$YmEPztzK{vA>IS1yNd znV~$xt)B4PTNz74{Rzy%&H*n@RZ{qq)2`$)mZ_Vs;nK5uH9M-MU_=R4#@GcgrhMU8F*pH#%yo$wLAFRuRX7(O0#o(6x%##l(N|9kNJa6J{eegOPM zJ7blR_GLEFz}Tk_#y-|7ECGKfkFnD_e;hnoXn=d;cnA1*r!lqxKI-5%asD&l*Wr&& zz>M&&n9dlwKz-T5s$du{Va%yF&zJ zTipYG2yw-pVw9)f1GgfsRA|_Tz@6ZJJ+3dt@n3?+tdq>%fZ+lbHcxLL7{~tz9=q_L zf#+f2U3&eYI4)pIZ-9TB?w=6HbHR7O?+yErS%qT^7Iq7GY-YK@Yv*9Y>ocm4<6j4l z%``7~Y=rIsj}}_DZQvK9J6%S|_Qq7Oqr&sx9#`ZN3h7Dk#WDOna4Cl01m6+EC!29? zH3TJ`NyPOMP9*R-E*u`P$yA{}u0k{T-SZWMlXThVX zdl)>Ug0XDfe;T|L903g1e;<4{IC4l18?M0Mh5=CybI!up+}lWx@C@)LWBmEx?}NAL z{)OPtVui9Sj;{w_QNvifzJxoz^kZk!1y8{+h&5TFS9k{eRTms6G{c{RPmBra8E~&F z><;_?0^S_Mhr!!o_|$~2LQd_Kf;-XP3_4lJ&=57~d@cBLs-W{NaeNoJFUJ4FIQ|Rp zV=?|Sar`6j3-HU)4zB5jC{IXa>=G7qx;_9Ad>obp5FYSsD3idWInWAT0FGP?`|kpu z6~lLd3tl);(%2PkPlV%BH#~j3Ako7g-;-3s9e+1@yji(C@fMjq0`HUII*}uXRJunj z(rpAQA$G`v5HBQJra+TX{@bKy{VQ%p@772K$=s zs{!KJVp))7kj0Q@NVNP*Q~_>)tcBp2GJLjrfHNSsK&S|i^$-VkjlOc~nT#(5SI{TJFCazW<&$>r$LQ-XbHtXoo@lGAR zI!Zcj)^Ry-k`41C#Lj9X#E$U+C-dl%5LvN@5R=?TXu?rSh#mGcp@=-{BxNcd6bP+& zP9nsr9U{bf^%5dt#|W`venJG`6+-Ny6NK1BuM%Qa`U$aGZxSLPrwOsHZxbSD0YVpJ z=LoB19A~6pNe2iK$q->J9$5*oA3h<(7XE?|GgS%KF?N-310MGY5!GQrER_%{x+H`S zUP=k=4_VZcm)g)4`}O`0h2QP_uwYM&rJ>F2DxT0Wf6PB>?H zetp7=l9x?)iVxJj@1zZ6+0ev~J8uBXia$r9&ANVG4GVnCe0DK$xk3u8`a1coIeZLS{ zc>&7XFbn`KeL^EIJy<(M%9513JL@d3^)Je)LL&5ezt-XB4yu#u`p=mm6l<+cCM3G>u;3S+eOlvZmg3y zhpDUEz0O!?2#!qqyfvlw;Z8y7~-!6oF`Bj|ReQEoTw+prkkvh9F z#5yO`3rBeM>JZ-}h^){MWSvNJ^=HG;T!@WY!KXu!uyx`b_CT5;E(nEAyQXQ8@a2l7 z%8&9g%*cnC4S_=CR9=?h^37?=2YFfY^z*`tG;b$n{p8RLaY{YSzjMf7BiuK{9G`Db zbR6A2xsewITegd=yN0Y{di@M&j}Fn&CI+n{4bnYq3^~P8(Jn3!wQClQvr_WL4tQI5 zysH=BP7ARvz(Ei@)Z#|9j}|3G>o~17gh!v1z7boJ}|?bolHAlxK>z%w+s7r@pIg zO<3SQ$a3v`PnnCeb-3oY7&@5JCfYFiLXlIiXuUNTFP5(~bXi>PoX+Zeba}1MB&H%q z_yH@r$O)vO-gzxm8JV8TS(K^y8A+UV6niQOH|?wC%94Ch-luV$DX&e@H9Cf z7p>CnXf$=7_1qe&%AA+|>0siEPBF1#Tt`wzatEib*KQ!-YutB9t&OKL@AV$6$-0<` ztJY{jyRoAjb6%y@H7;u4)YTd9mFU7YIGIQ1LaqWZ-4a*?U6H#d1%zPVdAbOy7^ za7ih;cZ<2irnVh(>@ zWhm*$yzHt>W=j)=1Du+ovEs6eiQP#(-8H8Nih|?1lcBva;0zf$&0Rt_C#(M$HHzjh zyZ+;-scUNE|K4@Rn67`1u4juU>TVIu-8L!UUR_C@ zOSwEFLwqdvLIS_^_=4k61*On|M*FR8;G#V9hCI-lFFilA*7Pm}EEHnpZ zx8aOaJ!F$pxOrCxnd9hkGTlDf_S)SxJb{KANrL6;qsAP2fC95})RdDQ`1?b}h1UYf zI9Su?Q3umUOT-Err!K?f_&_xd0xm>H45zk?8c~btG>y{rEoeIpZF3N{?+L%5-GUvT z%Bj;v`F2DmcrwJP`O5g2j^w!%so--syEyevO7+YPxp8D^J=ac+{b8g44;P%8IO?;y z5XFTfCXqJI>mvfzlT%NQSTl1F(Xx^GIBJR0=|mB((uZ?-ga)WxYt?4&V1?sWN*q_kt2tSf>YVL5NzYV!Gr|fvntcC<` zy|StN7Y-A?TL};zlGnI3d}9;Dr*c@KC4hDhGqqoF&wse}3w#$l0|`J3QX0Mt{HNJ` zZgEMsnLp3eof;Qns;oJrJIsc2Rxwb*RG(&-CYXhDy*P_PnGyc3NjUdOlq=~KMcjQ# zb%i7MoA`QB+>{~yxb}7Fkxjw@HeC>fQgg4%Zd91+RUWA*d{ahy`UV6XA`C{qtB!3FPgO~;Q`&gHm&SN?o! z755{>wy=k5RbE^827kh)?5^@BJUg8C5+3{1A1Di4)3_F8t;?3+8_vT4&(w#My)Fk= zru@`Zn!IvY2pQ~(+u>#E9m-`_#mr+c`n;y?sOw+E`VU@8RriJ7 zjN|=r{M9&qB96Zj$Nh2q*jO%yddC_Jnyu$@jyH5lC{v*DUKa=0$yYL~9Ju3S?{s_vE1Yh~bkqb6l*5rXv zP2LPd1>Zx2M@_!J=sfMeH2H|(WnVAQ@9*_}Mu>WU3v<6u4dW4?{jccw{-5~)r)=faidB0{;L!T4nNy|BOuV<7<%trwpOpN;E7&aiJn1&GgWX zNQbWj=fM6ZupAfwRszoess7u?Z)-ZmDQ#bS`b%+Tl$7of5q7;8fZOnTizkldpcjT$ zvm$SQ$3rKXqs(10t0fcfT=B<(_z-|!OblPZy1;22U(oR-9e)m_SHh=&*+BZ8ojSHa z&;b*b*On+U{SHn)a?{UWRN5Nw>Su98kNv!gCjK8p{y#Sw9!#CvU14?BEm=`uol`u| zT2@kuzmj=YXWN#ITQ+XqxOVHt0yd@+USCGSh3{wKu;F6%&3iX*u$C5=mNLBSrk7c4 z?Z&n1HZjhw+}fPO&*YRlnm<))S{8BvWmijX0)?I=s2m2Pz>_Rif-SkmIf&&Pmo{7}U#5?Ox!hQXqbptn7;g&m$mCckO)PLpjG@}Qs2yHuzk3s9FUj7?Q&C;|0 diff --git a/src/main/resources/Android/mips/libjSerialComm.so b/src/main/resources/Android/mips/libjSerialComm.so index f91e7bd2b5b62a18f8e56b7e21f7c130a1d450f7..764c7ffd2386f9273bb0522b6fbd5b0372678a71 100644 GIT binary patch delta 8777 zcmai44SZD9l|S#zWbz$eCX>koLh@dCNyZSu2r*3DSf@ZCSk!3IMi(V2m8|lSR+gem zJA+olnq&qZF!1}aGD5&8$V7t}T9onUN6~5*lrMK(n03+Gm1?RiqGfseKX2Y7PpZ4a z@8-U9@44rm?|a`n4EEcH`t1?Vm`DLp0}-8Y36v>OYXixYO%pKdZ1aI<5aTkD5Q=XW*{rP`Vg8l6^Zb-=6>)+}~w z0b#aqjn*xcl+H9LkNolBu^O#Kdr`Pcn64>eRG6jh6aP;5fp)o2B23frZS#bw+9KN& zP_gIF0Pd*ta_tGB2&2+fEH?jalt~@fHLFlC_$#DB>cx1T1^$JNXug6$;5mVRnU-&_ z2tEQ)2TO_epy$zvn3XK6u7}E60rO7+#v+K{SxeMzQt83C%Yq-re6o(H%bcGLy6Z}y zeUp9wedr3J(^!Z7g7hiadaIJ?3^rm0im=dQA^1xmmRVo{^Rfm0F<{jKAHW6+%ZP?d z2AV+MD-$)Fun+UQCd2#&9L%J>tQRoQk>ZFpW5R18_!Sn+EeDe(fxCdWu%0MjGJM@7 z8u~Tx>MZLkF`u@R1OczYye~Z;grWX~0dhf2V1zX=1q;}a{F5-h2Yo|&0pMFN*{~Zb zKQtb=SiUL{EW$lo~K#b{4Y0Z)1LF3ga^YqGN!Q z7Wi?%hb(XqaKZxrJK%l`{376(0S8kA`!Eo(AS{6?LKgU+G2dx{6~OHl7y(4B7Wn6w z4_M%Oz&;E731FFF>~Bc400WW*;WfZyftP`yp+=11#~K(54J9q`T#OyEz&U^u7Wg#i z^;_U=fMbB+$0>rBV}pnVp%xp2EbuBU=xiLAlvN`-{^7nmmM*=2pe?6B$ecItCqMhy z;w9Q0S+xVVI8j z)Hc61sj$+~;jgKh>(_2AtaL8)uc}%u+~2LpBr?WQzt&SY+PT{Q5r*Hh4*#aGvLNPP zpr$d``L+MTP_N%nl^*K%Yonc`oqPNF@|S2D;pEoinr+Z&#Y#CiK=>9Lfv6C z6vp$`XNU@V-nwL8EPWglkNEFamkYOaSvGppIeJzSdoLHhvJ8(8`&l3`tE9x{$)ad+-h$B zD8ljTRQeL4Kpu51d7L6us1H(w(?+5iA<;9bdlha+*akHTRPo9cwC8-^|fR}VB5^}Gea0NmSh4Czq7V^l!EK1rs=*1eP zpUBG5@AZI-DO<-5n`8eUM;;pC=D6;3GB=^D-B-}pqtqSo{xK|KkOn;qlX6L^M}><$9 zx?T`w?VJW46JLNH*9P?|UT1TwPa6F)RiLuwh0C=MJd<$iSvjUuyRl>%TyR6lICepa zX8M>)10^NJ7eFQ|GF(TXoMwsgn$@;9N$q$GHgu|Fmk`CWm=nn*_L`hfK20^n^w93G zOoQR7<=2UH2PsN39~2th-h?BuTVd^ zL2Rygcv^#pY~m{uaj}qbzUfYN+U0f{=YNeRP;8s(a|)Vov}>lWXBkAtQH#V`hB>hW zy%AzA3b_Rm>)DamWQw4b_fNO$YO)kzgj^F^*vZ#`#hY8J_>2 zP%G2@HkA*UDleuGZaw+UFX~ht)IF-|Yl9Fwx4nw_dI*zVdub4y#2&0+b`Rb|_04O= z!l$?GH5aO#*NPdGC=BYOK=gWpXxy0Fxh+I98dy_1OeJ-1vY@UbOsI7@+XnSaHHWf{(6PhFs&A%Y zAhtn0^=+GI;$A8v!VwvMmSMZ`QZ^M(%+0~Ua&q=yI~jIFMsXlOF&2hh3XLrLoW(F4 zVp-`B(=L>GcwjhE-h=cUjVyidPgBw#G^KBVr~7Dcybg)c3y&{D1Ry~o#}CA1L_`Df zI1b7#qPx3R@Hx9WWMl@VKSp?0=ux}@>J>M2DL$fMc8#pFKL|ey&@RaGU{>m&QDOn8 zIDnVSfQN0`iMdyzqOnl%CPYq8hP?iOIKd1c9Zt`(XH$`JSYcQEe$bUk1BU)LgGS2N zNo1Pm^c$rM7$dr&x~DnxNVr#c58Qu*s{lJaHo;w(4akd_I8kj6&-ID7bSvIiO5whc z2+i;bCMuqQ2n~gyA?*`yY0wYH|1&hoj4#DT!*qR=S_|gi)>FsG^6!{`&78-}5qNwQ zJeGFj6}CG~i+RJlw|WHoFn?^h6H5%s1#Nzq&Vz)t2j=OAxn6|{6ENR?m~Rkf+XeF} ztCKXD6ILWa2{0j3e~mycDLb_W|4rPRVN3apj@9HAL%@IyTfP|qAVQY*cLQ}6|xf_vlB;Z#1unNn&}VhMbz zNP0TK)f_|Q${v<9V%)!FGgSpl3Dur9ymCY!J=+Iss7aJQHX@IWpT1sCU&UXZOiX1XR+;BQyyTOPu z6re8*$E)8I9=GwA;-`9hxzhI%ysxrHf^-4fEnOY79gAg)$Hqi0S?R_hzeSp$^(kY6 zgT<71xtPWcmDuVSTRLh>$Ra)?*_svHlfOT8nOf^VW{CAVZd!G?Co6r(iGzgO(MvT3 zd)_31DwNU_*y9W55(?N^WENAA6E+S^W`EqqWunrzSIndK(L5jY;)2e%(pv9)I-|#2 z%3v{$y@y;X?SPv+8LmD5JNl!ZEa8oaCZ$E|`8Lr~x+ifXaCtLbFI4yFhuv_1u&#?L z_i%(T93c!x2*VMyxHJ~$o=07;pD1B9Drh6|Qeugh>4=x;CGiq6Z1K%_sWQW*!VH%u z5iSQ1F8hpBZP*b0!n~T{;``2cNej%v!k#^fKL$<9+VRSG& zFdyue=xIo|laoOYJK8s;t3xvAhH#s32<-TqWPlF~rZwN|{w`~#Evew0bp;L$7MM>> zJKiU=&j-`e&g`nBb1vq7BwT3NA9$l)!OrfVzTGO% z7`OZn$hGl!H3)lY+aLMfdhTMMd&G~5EvlXcRbTNPs!r$K$G})E{3s9V&SyV@rguTp z&p^{S&P`1RIq|S`tjcD5RKT48s{UwL)e3U1VG=}ayCLSMSh~~sNNx*(XOqTg1-;f zj2G=IwdZQS=eFZok1K9Ci)5S6ygB&hYYy*~g>ut&RaqUN8uN3&dF=-8G~v9q-WwF< zyEOM@Pdn76kGj+*?e)uUXL{AO4~XmT(6-htb4+jA+SAsgm5;w!Y;Mw)jju0GA8{xr z7*~Dn&uII`Up+jNLG!DO*GON&c2>);8v~jHwRP7C;Q0Ot3~3uClmmEv!pNd>>NOTM z-~`}BC7N7sH<+of7N<99*VQj(=%xBA#kQt_uj_v!%As3FZU7&{Ww2+w6+Su}=OBDL zZoIxqlk$SY*ZfcnM_TGT2cJI1_YnC`;|-IfRShy9bBMA42(THaqfdWB;kO-MD6^U8 z$ItoDh;07Ulsa9W#p%)y-6w6FlnvZKhJjlUx=g53}ff=+%?Dz7%~+Qr8pcFMOcu7to(M zt?SLW9SnY?>z(M&B2De${$pK#AN|}v={n)`X!%Un=kh7?7hUISL;L5t{wn&;FEEe1 zOBc?9kR4zDzt;8T=%ov~-lYkR6=LFuR@r!^7(1rj-dG)+{hqGNpu@iaS_G{PV@#A< z3p(bnb*#yZWNi^Pi0f_Z>{^EHtdLVchYr8Ns10v!TwfNhsrb5Jm3PD>og6pvVBT%Ok7 zDI7@nvXTcW10TY0=7!&pR^0y$31uu`2a(_)9e4(V-q~A(g-kxT9e*&?hSm<8Il$p! z9B|qeu5)OaYqQp5ZxJ3BqqYt9^%;>Io1X<)Y#Q_UNtn|ZId$@Q+MwbEraS^0wb}h3 ze)UDiaRQI~|6A9&w#PrDZaRap6<_N5X&!(`;`B9Q#I{8c zJB_VQ4if#r7Lv2@^g4T_ZQ4Q8`@yF(Ckam7XZE!J>GSVA6J0520R8mmeFXm z6VVBygp$kVXQc|u9BDZiUW#SxcDxirNEQN$WQ@LOlrSax8az4?lVhXLj1rav`>_+3 z8~Mj|P%gG|S(ht&{7|I3H&vK}w+^8kl|(y)mO$%Ai=jo(LTH_6?P#rN0W=?)j3%KG8keuQ zWW{AFE=_Scic3&jb>d1>XJhoDBs7Zs1t@^Kqq7TzEHPqvJ~;9$3`N%$3Ke2rVRUby zP%b8mhL>crY>1BNUkioOOs+f=U7Z39$*Cgx_fE{P=)*Hy-sLs_gqa#H7Goxa)Ti?k z{|=&!MXNwFYUm)t$eHsiF+vpmEp`*%s*G*`J2hMj#bx{(6k0Hnrobu(t>|x=0_#2v zh{-xbpsbX^^+a^8Q}BqpCXa~6CWPBW|E)+k6y4zxu8IEHB`gq{qc;@`71``!++xvR zFvyE|5>|}2g3*&Ow-MJ-eqUVZ*^6XB-05DE;tXrsX1YqxgKRVSdR60`s z$02$To^xDR!gtUldvt?aD9An9K*suRO delta 8008 zcma)B4RjP$mcFmL)8vOFolcW95RxvaBuxm=WI7Poz|;W7xPuyZQ8Ny!eH1n8qGnvr zOqg};8We|dAk|Q4qlZ~aiGU8$k)TEoI_>HxyGPxOgTKp2`^RKvSdFvph#s`|yVcc6 zfvaaL=jHW%@80|F-@Er!y|F>>@Srytn%-4L6eFS|K|z!J)D@#J6;Xt$Xv)@aU3B^A zVj^w@Kp_(NBRWsA84qG`5K9sgrEZ6aS+4*?`tzJSDCYD-2mmiF1u7q`wj?jRm4wEH_F$R|qn$ z_be(n2YBVi$EA%+SxtUCG>Ljxi3(xMQ$ZCp0MP4#Z}1SkSVwdi;{o9NjVa!`ga*}) zg@}64^XPnVDRfaSgo)Y#^Wz8C%b~6bLE{)={CK=iv9-U`H^3l^9Ux!_9y*SO$eEU_RXhA;YILWiLO0an#R zOGkhv*8;4-evF$?Fbp~t;2HFO-kn4V3=rMR8sr9Scm^1ceT(Orfaqz=XI=0MfJa=g z4mjh2djSu+;FkfLF8Bc8qzxx>3*3VN&4mz$D|%gUKjz~uH~_fI1y6;LstfMHeAETk z0S>$1V}Sh(V|`o0ZVZqM;W5BtEf~YY7PuAyWnJ(ZjE%V9V!#;}{3_@NUGR3mrVE}0 z3nu~F`6B@09|1vY8M>^nQ5xD*Tq=xdlV=Y-Ut$R3s?vX!C~Le^I#e|Hlbwxn_8!kk z;}>P~MW69fSz~FJGq%rqs&Uj1?ro#mur~>{=y{d3(%g3d}6q9`n`bhs>C9SzuaVAl3om#pA>nz9TSm;UJdc zCCu2l4J(@0L5C^<`m z>%>0eq2RfRL6r)qSYb2#gsuz7no2$@Q8v;)1SZkCC1DCEQ7TnRlKX{az1$$tf6P@W zsFaxHG!2m|4{DO2YUQ7(Iv`OinE0)zE;h&|dvZ%cC6n(x)hq+elGQP<`hs;8DU#ClIU;={58~TA_XEbEqUx zA73Q2!Y!@zd6`m3|JW3!htm?p14`coB1|8(V%r2llum~rV34X7hG68i&IXXfrc_I+ zpM?rT!?BM-O1b~ysNz56VFBwy7ZWQGrrqf>ThK(;OFOK&bv1id>i zZ>n#yRNhK9J^1k=%!3!Pc?0G-=E>u{mOXwECVKMHM@;E`i>u1J^ERTFlSI4Glc-j# zF9OPw_^rgZiCfY85f?jo&Qq=2YxkEz*qV0ldczl7D9$%ts$PQ#YYNTc2=h}%l$TQ} zdA^t6OkuKekuPonx9aj z7lPNm-ETsTdEog~wd2y;j@l&dY$+rar-PFAXDzB_ITKcyqC_tMj|X=jad;^4pGyU# zRV1uZ%$;w~J!8*3xLc!+7|Z@t4tLpZw%g&Ga~aKaG8$(rcUD`2td`GaaxzPHHrrv+ zUnAD08vk0;QPY9&VoR_U*w$8rj&--IO!-5y#ju7`GW^A_Ai;C?#Q(k{XnfD9T3+ z`5MJ*Gto7hZ{ga9GGYs5nuIrwemSDjfOOAh8KEmX)mz@-B$%*D`yud#LMQPgk}AoY zR9Zo5h)vv!$!C#ZnNWt7@L7&|n~5!~1{r53aO?$P4TkX=*Wa$)p$~{BAk_1lZ91lJ zBeJXtJHuI4P~mFJeD_H>0>E0#Bf&udZBbmpk{r?`XsAPT9h#$99MqvX>cODS{%eC9 zZXP!`3zs*yDZORo@_gUd%)jEy6HS7!n;`6G5Z0G~Bw*y23Gb@PYuE&`X-Y@YKf6~V zc2DF7Irpe=PYBh05boFycN~VBhT)<^aFM(zOZAiu$y$ao5F(6-7gUL3kqS#9$C6Jm zfy-JCkeSX@RnYROh<`BD>%%KZi+JIRbENk{Y|@@a?~Y2CcTXB`lnwAHw1q!mQf7d& z>VY!23Q zEPUUM#&t7mk%5gnXU{ubyq{xE*#xf z;Z(5_`!NRf<)lV35}mv$LtnrIy?k7<_vG?^-jhlDJgPd0A})dN`A~6Xe>cwHN$5|s z2P$$@XNV5h%6wRo9 zvUya>32$ihxUeArfy=(~vc%?Pj31VX+HA%DjfKTfJaI)ISpx2QAX0dBYy5q}qF zp?-uz{~6(ch$p%*uizG2K@Jyt|7*5o8G{Ack+&qa636yxO8g4v_Wz&u6Yg?yJT$gY zikb0!*116$G5A$YJE7^%plLA_ErFs9Q1l@v`b#J}b&H(%il(ce=@w{u&lYHETf#1t zPA22{`8D<}Yy8#4F2Z7WV6jP9tPqPmk3_N;i|xZ=i&5#E4TLpWXrlA_6YY4n8^B8@ zvW{J4#!YXV^=}=suD4BYn-*sMCFgv^&>#{Dn^8hS;Vu0z#*qT_%XuDxa$-4jT`py0 zoRrbVB^jxq87TwFCt;_^cI1sH@`!yX+J{_WW~d9nw-ouJ8-Yk9K>(7n66$w89YPS+ zf-B-N_*D)gs8P%9or3z!>6GUKv;yw}DiIaiJjnAsC>ln5ur=@oBcY1Pe!T5La!7}W zKcqt#Y@>tNX1O%VY#Mwq-1CNF}?_rT=)VDbl@+->HzHiXZa{H)Zy z7!!Ofx21;3U$=c*+<(k5?K3bf3&v+#s9-;A*7)BWKWy3~MvWPB7UBQJbLL2=HDkk^ zWmTtP3lvjq+OUVSK4Vjl@!Fgv75>%-6h6H)Ixl&j7;^Ip@riMDb3z)s#yHXZkT2MJ zVso(7xO?v9%&}aT>CAJ`%&X( z^S?blQ$TC$?Sp7E;~6u4H-9>K4t+lV0s)E7TfmTU&4OA08y8Fv)zW}X6r(*l6IB~y z3%s^43mT+Yt5Mr>14I2SOQg=$p?`0AQflkEe4;FI=~{(S)QNl-qDLBK&7`PW(4H$z z2l)$6nh!!vs~=E|H9^HV(mHvqZGF@!yxH1sXJa2piW0sOY3`@7sOGcZ_IP8=S^aBd z?!7hx6$>yOf3o19?}E*-Fp}s*!pwV&`=R8*lTxDVP0JbvwC+DG>l5_q+m?lQI*Ox@ zqTl(BW%Z%IYo8a=hdg#vez= zCuT;5_QSABkMZ%6>V!6df4roR(euo6Vy*#p7PjNh=@2s>H@w>lw)&Ejc8R;B?H*6t z*U?Me%FF*zPgBi5#=LBe%^iR|z5r%&XZiiI^-=OfF1Yi9S8ee$utxFhPh1Qg0dV^s0(+sf3pp_S6~RCL1iu&km-3Q6cK27yYTHD@3hiRx)x^ zewOva30OncvG^B19NPK$(^aW2ne137RT~hs3AO{#x6i+E@y(Q$r!m4@5L zGw3s}dA?zUug{q0?d-_o!Bt!8Z3wcQ@BGddyn6!CzEC<_5Y;trHl&tSLNSWudjIU4 zeRejb{)NYn&1XB6=k37pfOqfIdzE4&H5?S@+&x9C6|vOSQ$$@6hbuQNwS_^BVs770 zJqoa3M=1yFn^VNBV%{>`qDsnFC2ET_+o^DJYHpRN^F?ErilzRhO3d`-u7XoP#_wY9 zLhKZ@_dTgSASh>w6UkkQOCN8M7lK8P&! zk=jPi<}5FKDgop6Ct~8oFR~2|fmk+QA|Z(;>>)lm8AgPFl|-nO3?WXIS(K0jIYW5+ ztNYPvJ#fa}J-dJT`n2w=x^?T;t*TqM-hI#S?sYfT8ZH;<;wCRK6j>lK5!EnpySymy zkQJdYs3LS0m64k$>ER|r5jyH}h1RuK!8}Huy8g84#?MNuu1QEG|K_9VXq{|7S|?@K zb^R=bSGDfPVzHbDQg~f!IqQF&igUk%t0iA&ytX>kc7IPw%nENZGeg_1mHdXDe8*BduUxy_9F3YM+=dFG>^~Qnf;p zo)>z-wA1#+Fap-g7xD;LbtlLp;0qN3;|cgi1!Ft`pRZtyC*YuhwcHA%|FG>YzSefr z`2Sb+S}1@s8z@!wt@E7 zOK^RuqB&W0JsPwhOvj0t)Y|_vmc#8e_|rw)VP%n{%wL!38fWY^LYSD6j`Cw!5%LK!ZXX*Fr3mtIDOd7`9pnB3+E|{513#tkbq@SZ zich@*KdR)JypTu3{;uR-uk`O%i#DL}OBB6VEqqP?ubN)TAD8TChZ?uRF>Z;X?+-}A zKE?k|fUN&1wfMCjT2ErHFDw302mh-C{U`mfP|>$J=qG^ZaV@ohMIj%TdckMfZzY!K zo48>8CmnoxP9o){Zol2fNPNJWEXlFjA(x+c=LEed)<4%-= zeopy;;17K}@QuRXuzno)e^>M&2mW1!_dD<}D!k8u?^k%S3FXN1XN8~S;F(k2Quql6 z{+|_o#DTv+$v^DC_X+#I>~=ig2?zeKYTOYA{$+(9 zcHpnq`gh>ZQSw+0{9eT;?ZA8B|3d!`JT*2p_r@Aq+B;(%?O#kNFqTU6wx{U&*rr%x zbJvE(me>~)&9R7njK^TzI;_DzXf6S3~*w%V?4bdf!BNV__FQr#PyQ(fJZ1h-pL-R+&Nwe5+HI6)95 zmq1H*B5~^SwRg6sAT}m=V|!C~tb4PPPVkFMjy0g!(H*;s zVB|GQ4{I?Ws4xqI3Q&7bGLe9t__|A8w={Qx$7u>tJFUgj?Wz>nbGrT3Wp#e)J-gr_ ztgoA5DR?zjPNKWJv+LCR-xX_5VHJp>X+vTIv<97aB$`iS;Wc-3^(1nHIAu*YZB8Y6 zuGti8?}#;ZoW@FG|6RjpOPDU+8Uc;&0k=yGJ2%C zI})9QV9=c0%)``nwz=XA)FM>C*EQWRL$_$>=6HLzkdbR<)7DLb zRKpvRtaRqylS*>c(caY2)mqil#aBJ4c=M7a3fQ3PW>v>K_@c1|Q8I;!;{i1$WYyTz z)6>|KieVi!w%{5KopCq^qjA;P$c`dvjFJ;hnd7GveLf+Zkd4l`pWy8DOgSA5OxoXV zC3@L5=-ley#AEK^Z|`ZH`0`^JFMZ#hHRX5v&HMN|1Deb%nsEDw>8Fc_OipDec+{j> z*-m$j*f`AMCh>S!!$fMq5(T>-k*t>kjHPiy@1W?195Ki zk!9l)VcbUtwg&x#?Ba>>Xx`tCaa$1gP(Iq1xrU;?pcSDy^YKiu4>_>;DD+e?F6m#* zOr_`11f39lhz^W<=^JSGs`husgZ&W-)-OkDwC?S2-q~+Q++}YIozoMxpPtAB!)QM` zY%o7DZegN{>Z9tFeb&tp}ZMlx@+n2(DtYw^*OnOE$K&u3nekL1hO zUfQ35tujHMX}~TS*f0aTuuU?s9osDf+hkyy4D6DD4TXQDm4A)E?v-q7W&3j2k^R#L zTUHM3Y4yUEA#)paA#G1|&sf;pkvT}xMqzV%CJg_=smjM;^Fh>Zq4!{AgwoZo#=R~% zkN)c4#OusH&^`p3it(`dRiRfRE$d{sy0ryk zgLcmNr16rV8>)Ua(O_;BG~8YfxtNydSAPwg_W)lG+OvhuMyqS%QqHCsa3`XZQzp>vVJu?zHjxl7+=b&<)qcMiC)YnY;JMTH9^iIjQyC9vwZav2@`V(oBa;D zAAoKy=uQZ_%GLR;Ve?+lG<_`RfpsCqtpJVE_v)5-AM_nIzvATe5&JymD|kg#FHWSP z<1qBdb7X#!*BXpD8+4lmUH$3@68(@rtn@fdHvqa~(EUu%MOVL@us$KbVM{&FXMW@C zkIB`waUSm=d`9zPA7TH%YG(Naow>TUWe~9lHvI_xmx2Ff;CmVP9oEQU;H962l%E>p z#+~UsW5M#xWIo><51EOvLH0or3lEHajq)2fhMA5S7JYtCYZCD(iulzF-8Qg)4-Qj3 z{5zPoaHf0Mjws*mMLcUmyyJ0*TJW=Mzx(gUaOz=moGQnU=jca`Q@?Q&{?2oRuNxd= z{O+Hr81ydsddJ&fqilO0w@cgLr1x!{RF3z-ce3q>Zx~DH8e_kmhuGOhfs&vZ!TDld z;4!KwDWIiS`e{xeL~{cxlTW)=4ZY{8IC#uu+x|n{r2}B(N&I#=tpiNf3t# zTWC=UbQkzLa%0oZ4?INqB@`*BCfA3s6H$m>I5dK|5~BTEd2Yc$lR7C<$~Xc0hm90q zy63S>l4BX-H{(528mNfeZdBBrxxDnup*QS#jeh$5s@H5jGCq8W_ue3`;0eCqL850E?>Z|m zl%pe#fd^;8M(*5>*%2SdZap`i6VHL?$at2Y=Xk1fU>%1r9^29b{R_Q@Xofx?!I*ly zIXSxg3gl<|cA)mrg1}~;kNd2^U84Rl{%LEg7wd|S@cMcl>*hH-inY~%bybfwbuA5- z*I``|JvheeF4#8==`5Sq66X-SzJmQ0eE!53nI+ZE^~HV>^hd-V$$LMqw=`lh+gYrc z8S5?oZ6B=*HIe1xJ|Wo0MYF+kPIVyq5CxK3gbr9Q#3rA5_|2FhghdX`wm^L*2Fm!Eny#Idj)+K_F(q8 z7vOWx!{?rZ&pivDI|83O44<3!H$e~nr_%>YAeKwm6*-Mm_N)iCz4kYrC(oVd z&GY9mPB!mXa{MQEEq>pQmbvKmrN`hetPdAm7jn_1SL^}2GJU;aA~q*;VskHY4)&Sh zL!4ty`_11ezhR%@I2@uU4za%k`z+Y?*{vLpr43rfKFvq^voYCka4d1gWGfq!(e8-J ztQRqV#9ZyGPQScL**zrmBx8;nYt6Pjfl8|Jxu^n(W?^6zJylAsCCl+_aN+;F2q3db1(qp{xppVv`ormX6*1n4xl6XVnoBK4+?AkSnY`X}t^hO`c%CZUD z`>_U;94-n~T~3h_=o9`&26TKZqL&H zhUb%*UwQQ_SNmwu{fk!JZRZC@%NH4Izv8AqsFp7BU2O0ikD^~04eSd-_FTUi0p3OR zOYgS5fdzD6Um#RR-xajhJ|17jcd2L2i%)f)g=EgV+nxiSPl4y>=%C>F)V{kB+a>NM z+NZ`bsdfd+xHo6qlliOfnVJ5&HXG;e9SfSn)Qj9K*av?_ZsB)tR=)b`r}*l{16fhA@ko>)Z7q)j5(IOIWM$97?R zF|Sj#5z`+PabD^``WQ(YV-2z|v!9+UjLhOjR+AdXZb z&IAW7JWD=;Jnpc~_VHqG@+0nWjG0oowaoc0My@R6p&<6ox;$x<;6dDfLZ|n55jU~N z2wANN<{QCt`AE6QTe5Q*Hi98VgBVnawaPqgyClH6nnm*ic*9_dsOI53+TpLvu4^(* z*z0{$fRQ6AIlv3|!Q7YcN$RpWWroEG@t|MEn+|~xZisL@&0+% z0dnkTkz*f0j(r$=oZO4*Ren9nvRA6TB}B$g5$9Rv2?zc)g%|RH{^wXTE-DCIg>?|D zM7)4KhI8yO1l>=3V^8ZKblr=29fS=m*uaH6m2-lA*nxA(qp+Ka{1nTUOwe3SrOR2z zeemsX&znc3{_Vz8AHRU)TO2Gu>;?_aN8%qLr}TNU`mB5SJet1%yfQ~Imdvd!H`|eQ zC~Ovq7=N@Q9@eoBxn;2OFpmv=KQRWmGmtY=7Jk5hoEgZDee72u$eV$jB3B$y`qKHI z>VIJK7)B1e|_bJ2BQ7A`8?4Rt5LkIV?vX2HW3u_vF+AsZ-*LfKFAu}Iq zmi?zh`Og~o&w7Xd+@k!aZ9K|(7w;8_o3>pLNM`Rp_}->vJSp}<+0Ocz_N~QlV?6i` z=br}lwNLk*2z0@EV44Zc$+nGvFK1rmka^IP zR`e74^(*}{Uh$iO|Ex>i=e6aG(~EI>F;0@chaB`pJ2+|LzV10Y0-c6gpJ{T1Sf9ut zD%sxOjC)x+*!rC;6aO~>j{ z;cF@$A|{Y4zWf+scW@|zcXZ4$N|#WHE3%Ld`Y71X@3NEy*l&Z@2ZoFT>mI&~UMS@~ z-V(elVKW&IBZi0veuMsKn;y=EE=t!M@7s~{FX&IA|7)=Eu$zV}YNVe>4KrWfvj-y+ zhCVY2`X`K_FDhay^n@JYW#pzWA~$^jx#{!BO`pU4(6fjaM_~8Eh!=y%XOKI588<<;wYUvov)_IMbjugZ>Lyd5GOE9{Ym+%h8VYjPZkgGAFnw z{duF1A`64o?+qUf@jA}DXOG^&JUx_u7INAQx3OIB+G~N&d_rHWCo}(q*e`AS{6MbG zp0&rzSa0l$@H6D~|7W_hk&A4z2V=HfruG0{!(5g<;-NoWFuey@#$W8u`|;+Bl=J9{ z8ai50!|OMS^OvOiF?B|ekGZ~zbEEVB}-<-$i8n!(*VA=m##x}6+1xo%hC4VdA|MQF(^cVYf$bU2w74ZeWspOxI zKYaf2BgoF@AF^G_K7Ia?oqyJ^{jkwvZ@&&Xh5T4c`EWyCORPn?j;?$7BD#D*b{$p1 z=lzz9uOptK)Bl zpY}ip1@wzAywK9Sw2Vf5f!bfJI2<3V`#pWX4!f`SXXl+`_b>CD5jS`pvW*M{^Q@b&pQI6c>k<2c zlM{%0@)<*f;~>s)MJ_ZTbD`jniTHH^no2k42z=Q zd&pg2pGw5k(6B+UEyoc9xddbpc^~G4xb!mO(u;pHkHH*7j7lO#*~o8?+eb=g;e5&i z|FCVX@5RvfPjmbiA3CVpj$+%xqNYY+04LAxJ%s)Wutp7R+y`y&$Xv0!=_z3&@y(Ym;g@;+vrOjYI~ z?}?1!{P|-X%8YYgFL}f{>Qtp$w0T8a{&+pw?3`@rBSr;wTo)v zlJ3Hfk;@`(7LI#yCOj1_1pO98zrmGD@8!K4XSjU+;=|Z{HoU9%5s_0(+3(Zxf1k*{GIc8Q|RqEoW;sqUiznH z@$)5~TmR|<@$)&aL)@BF^W}Wqf3ESRLgXnIQWJc_6Yx{qhdcmh1pLluX#h7>z%K~Q zrj5Qf^y9vGmNCHjlZ$Ry98CK~96|os!o2=ur=m<3484w6I&29YgBG&FUr#OXexKJd z_CYSW{=(~)=Vv{>r++Pf%U5+2Yd#Mp$6}bcRsRoJ1 zy`@#;3vird8Xjjptusq#urvZVryuS+8mGe3e2i(E&AeX-sr-!lGrwDLFB!ynM+&)n z7kLBSSigRnjq&T_Yp5u2J9M7FnRPoA2Vyw4?!cL9JD2RyWRAde~s@^M{&HZKJSX3@n1g;X^#o0bg}QFveuEg2}Ls|V(S&WE;n=u-mR ze7b0Wbx}(Gfl>;z%!WSLCmF|Uiv3>d%8$L_LgNyehj_fr8ip-gWJ)_$lJRH2OdG{I z&doJBPxStGj;Go#gEr@%d{2qoz{Y+=K?l^@Byyn+{kEE zJWA-`b`NZH!k)E&?LD8Kx~B^FOCQ*`&TA0xkrs{tq9684!?6QS%LVnxWuamBw&$r&*sxG!A>UqW28uzOjY7s@%9IXSP1ST&GY2wnKWm-T~Z z4|rZYA2Ihp=D50FcTrDEu>23$hmN2k|cb@e5?DRS#<7+m~0x<6|4V+G12_HHJA3Bzsn_IjlUGiBwp2GwZo90xr z&o7IAtAgmJr#T+yA?ADNHsRkiI#9!U7xJT@wv&K|2Wl9mqXRYCFX-q>L9gv}zOoY? zUCcDocEY^aPINR}!(+<%4H=Wrb2HYvmu|IY;TOkRPas}wLab;<%t*jLyAeaW;Ae5f zjE#sFDa4B;{1j`JZEFx@=l$8BTFXt>S{|yi@@TDytSRr;kR=1Rk#sSz;d&U#@UaonqSBkoN>2kr3JP0$0+o#(@`(nag74bXu>H(OoM zgB!jahb}yjdn5Fbhxv9uCp<@vqs5|MG5E{{pK|ba2YSFS4!gHwtbFK(^@aZ#AoMj0 z`YD7?WQhkXUO z=3I-vrj7z%t*t3GBh1tpH za{8X$ukPt9QJ<}zGw5eSlkfAs?MHqvcqo8-`lYDh9V^&x5E~D95ob&$<5%e#hgo{(T&)dnZJUzk$l*x$yN4 z_&Nt%=YX$uz_ku|odd3Mz&Od6G5#6{e2oK+IN+-t@Mj(HY6o2HfUk1ES32M;9B|kH zuX4bbJK&WLc!dN0j00ZofG=~vAqR|odxrk19B>dY+dQ`{>)G71ES}iZ-kj)JhK6c> z<@mEim6v>8kR|a#Y+Vd5Y9?f_>s4p<@;2RgC*CPv))DJ$T_)e{zDg2sKZ%gAe*ao^ zr+-iv`b}(&$8$YV_~lD}CtKt7+uRzKZ)xMSHRs)8ZWC{>$``Z+Y0mrE0?vIsn-SA5 zXNzXq^6$@EAHF*H+3qF@Z))#OZH#r0>m2u0=gxK^&nF6x+IAS%p`Y7!8ujRyZI7a! zLOq4LVZyepA{X`l%C^hrxTx;ew%vz%@?G0Lj=J}_ZAXe-Wc}8*2T}L_&bDc;izZOl zp`Lu-w!O%j`+g7psE7Ul{#<`x+o5@Qs`n?`?nNE_i)~M!_ToSP;viHCeCF>N4V=-y z84aA#z!?pk(ZCrEoYBA;4g7!50ABJG#r?(gJAAf9f(f^;E zJRV?+(=Ji($@lmH?lpE5?JQ203E*+hqu$+xJAB(qwv~FGMs{0FBd`DDji0{x*0Hhi zOby6W`1QXg`Re~KuK0#LIK&0NJswXvE_UQ^_iif`xO9=H7pGp5*;s~Udl|o}5y{7o z>)f&*z!-kIJ&Kb_Q3SKB{2nF$Ztu>b9mS$;yU$Yu%55d-QgQKU{;om~Proo{BAMA9 zJS5DWT1GQYmu@TB?%PqkvuIc0ZttV{dpvs$&%+=_|IFC2x8D5e8$Wq{WVR4S>f$~y zAACd3BZ4`KGE>hUPbIK>jotaXygLhb6m2iw=96kE@$e@frezz0Xe&S~M$?0NB2G*P z5Fepq@0)Vmr)Q39D*I~v?9AWc-Cnq@NRC|AaHuoL4QSL2DpIp9dTS47W)SBD(VgHu1+R+N_Bi!pZs&W_27dI$WHzmW3B z0gEF2%P-hswXp`!S9uPblt*B(Bsm*&sRy%Ce2VfUUdg57L80ijH~(?(qeVinoh3U; zx0i`gwv|ioStuG_GKM_jVt4T_pZ4LY6FH$`wx?QJBQu^|HYcWLdvNBh=O<&z)CsAa zv@5-ETlw~~9i=-@Nw_n{2|Xv#(fa?J;*z7SA!Bd8nCJGgZRP2Oo~MC>vro;C{Y%U?H}XvZfs=OpQqbMx zgp^}xRt^Y9#UX89KOl~N=^|K#ML-z*h$#fiu?+kB%iuHmOUZ}ZM3HvQ`a4^3cm59M zaxN}8da%c*OFTmWXM_#Wo#iXV15)!>l5hXtkZ*hbHt${|UFf+l%L!sZTV@;N5|@s*RzvBTV#Rm zsOoyH7zbX0rvCrIrs}7^yQ8V~_iFU_f&A+wKmC0e{XHK2-5LEoAN^gHN=2`~$D+T} zQ?Bs(`!G=jH>lbhmJ;ai2}S%8wiYVM&X=|RzK{N{QIxkk6#d;I37!0JlogMnzt0j; zu>SsvU%}b$t0;IF<4{6>O^d+O=!1^jBVc)9sh|S5#f$Umm(_MJT*{mA^9Co#@6# z1!6skOPGW93(0NzFK1ti@KgSlotVXl8pPr`=!4?KDF^KM;EU^1EC12#$o=K5o`??)>Fp`j8ubB&=wR0o6_!+IiMGa;ZhU>Bu`P}c8lozG0@4`k?#34|s_-41 zc6}{-wRWW-BYy~@O8mitkPZ003sohV3uaPw==_+LB=QukNpRC3aul_Vlnr>O$8c1v3p7-QOoc@qI^5 z@pOOv{Y_nS62^sTxaj`8yK}*RW+m2v?ytYkscXM{O(!d(?yu*6HTv=`o9?f__o-|B zeNT{xqUWvQYjH6PKiz+V9{{1~n%4>!r~G>U?CZ=^>qo_79hWIm!M&%8?x!*Q6fU>F z-XC z_4jqP{bcL3{WW|KF8G^}y1)MZ>+zcyV7{0PW6#OVI|`zw>GKi{w97U%r`35~h( z>wF9^p^4(OmlL+8`->+1y;z^>@70Ep?C|b~ELx5O0Qnm7izc0ym9Lj{tl!+C`)S-a zaiRJPR9fY4y1%B=wH{x?gSg=NhcrUfy1&DH1uc_kw|Xh(T6GmwM9Dwwn7`A0-vc!s icXs9W71y^*j8k4cuBM-1JB>u`Q~h7d!SSWD|NjQ_#fP{6 literal 23392 zcmeHvdvsjYdG9x8M)Fw5@{ui@f$%sEBQh999$XnlMuEXLLXHg);Itx5DvdOwN06mi z(%6yHw46F2hy?KX0g+oZp5R9WB()4CF)3~4!VPh=l2y^rV2Z3!^C0d@vZ^Muh&GpV zf8TzLMhA;)cip?z{lnX9wD z78dv@8>1+&Vziu=k(Vgt<0eBPy7GVm>)fyEJVuEspDlZJt%T~F1XuEJDVj1HWqW3$ z(bR<}C3!1?>& zp>;t4)rD7py9*jm!A<2vn(xb9^=el=tm+l2|8`Z^`q#rGKsgNRIH{$OaQIdbu^q&*6>QsA;%GoB1@Vi>o zFGhYVejD(+7QdVEYrs$I3`L6J_j_DGx&gl{@T=uYQMwZ4*@+?>*#Cm~S+YvkBfmwJ z*#_EQuR(dGg3p(I1P$5`X5+$KZ0&y<%HfrDe7gn|<(p7mS5)UB`@>E6@pM>$Up;<0 zv9B&xl_+waOFSR0!tXl#I7MVeA3|P*p9)W;{ZlmyfB!HlYWdP&tW`vMj@(v&5;dZ% zV?h!4oQk|w>UC0gXn})Q;$Pry6p*w&{{m%(TW&ZMy98Jv)q?9t;YBg@iMZaCpsicg8%U(oZf+3jBm{M@PWS1TQ0`nPh(fOgmKck$z zR^j(6exmHSNW%(#r-BFAsgbhcFHyOo6JbLlZDxl+DpUMNUE^*;8}k!$!Dke_(FMO# z(P?tQf3En6eUL{ZdRX!K2TK1<)e`=y%&11or6%K)!hcoapH%irDEz%@+-BFfS1SDR zt0bbW=zJVi*1x43JD~K?HjlmjOwn(3(Z509zt<0A3ct&R&vNj%!)gH=0e_q}sd2U6 zN+{9OD6sxhE;_yQ@cFc|@3dM7-cp28il0Fj9gc;495cJK$Jd#kNPtG%L zP|>$t^aBb$WJf;ZM2XkBIq#ZKDhR*NRTg1;0hX$6Rm|V+sAc;EyT% zj0?_ji1BR~yhH2X1%E){x4PgTSNKgX_)isn%mv@4C6 z4|H!&-jj^?w|6!4^#es>3>1j0?}-l#P*J_FcOc!rtv%h>PbpBlC*9xO+u6{a>`4$9 z;qJ21(VtA7JAd81-D$850XKKI^~d{ns38TtgrwL#@X=JVH>ql=cz<_#hiqw!Z%f<_ zmB?Bmo{q2UP7lc1K)NqATkGiQ`}F$0-gJLok8DnNZ%y`XOW)C#P`&$;@x&Ghlo+4J zILSGXaLgx}VxRw#M&E z_QyX>fUHx>SPzkaGoWy~``Xb5HQkP0sC5sdl1Z43%YCwZo*XsIs`T9LErn599XQ{9 zw-pR)_$*s^6wAhnuKabhh-qSab{O=6jwj-S! zxOIEHyC>e(a~@2y6R+dG>=44mI}-67nDOz%c}UKVFR6$*K&fp5T`g_#_WPKS2q6ds zJ;`1|)}GqIV>R@5Cwmh;JMN5cO;QKzoT2UTSXKd-H}pgO{i2GL4Lb0ktG$*3vdG&@zyY zV+yr&pp1sz1R^SfQEF*HS>_;I6iJz)JLz)?318x!`y7G#h4kOjz_jx>okTA<23=Mk zp4#sn|Mp1dnLpc~_tSTrg)^4dvOmw|JaF<0Y07I7VGE!~M980o|6wVL5W%NBfIYs*meP%M1 z*j0}Lz5wlSPKFzoVCz$TI$HA1M9lji0xvuqBcXFT;#hPfACAVL*PKxpH`Iz<&No1# zY_i$@Qa+q|1~k5Vny3eK?mZpz{{Cr=Yth$dX`mm|5xheNqN90>ZIJtoN9w`{I~(S`ypt5EB&L}v*)ai|DfwFslMX?b*LPf-2^udtvE?i|)0FfM30hqC0}r;! zhfUjnjqErSP+i^0RT+KLlG_@PPpAX~Ld<*pgs# zqMZ}kZzCs0I!Ec=iI}}x@W8%6^uc#oh6wyDVn3Modmsa335Q}d9(_5%{GE#aBGCxn zi`Wn0_eJP-=kIXJF$vpDPDQUyP8*k;o{rw0WL)ms3cW|{NATMV+_wLP699ob6Fmal z{RRC~U1vwL{V4E;fmaQj7lFHYGEi6A$#kZTcTO`7(`8ys@WqJzIrt*m=Lzs&2)fa_ z&cw8F??kAsL*eepcL{lhG+p2>n2gnxCKcU@rn=h&ZVGeKcrokeaG(G6%U6z4mVwx<2UDuId9yLzpEOKOugB)xdO^^8*g`aR6%P#$-0=#DOWA>i>wDG#Y&DE8nZQZ-@zdZae z5C6-<|1ejMK_=;^5#^@_dF#W09W?Y@dxHHkW+x}c;EysU9-erBasi$r8TfN+Q9SE< zZltpd{@sK))(HQO!M~&M?+E<68S!mU=x^sl*v_GM$AslY92&Aw&SD;9MZ5|iw^ZB; zXR~Olp0uIcuw@yR_xTCLquIHO7(?`-$sv14wZDV*($j^xo#FOtCR3OTvVYxaobt}L z55=g2E($(Eo0f#F7|x!{gQK*0$pX4#twj~V2nB*`27lna=}V@8zJEdwn_gNJ{0n--j3R#UauUWF65EFD<)e~dier_kheKJf zE$Ue>x4-061u5pMC(on7>e0XAxwET!@R(uyXV&1^94(=#rNO`!vglJd{d(#s z1VlQxtBUSJ{pq78um&)#u+?g;rC3#XG)55~Ba#(!p4%$6lmuy~g1)cpkXiCaMzQRE zx_c$j*LK&bH>tYu7}l95kAB~Y;jwyD$YxR58kUV|u>2>Tn8`ApEYc&# z#1nJsSwrXmdS^YnpAODP=0A1_V?+I(s^I&|JdeGl%%hO`$PLv)uh2`*f?zPPz*F5= zYp~o83Aqm*Wm|s%V`+PT5@nN?1%JXYFZ)bMeO{E0W4;pIq2{NJ`I#!3pM#j2Cy$L_ z&OVFz_zdRhG0f93rwj9y=yRBhIU2-Vv%EVnkFtQhJmH>~;Y?Pnsk|n!ukpMQ_7ro` zH<>}~x4iq&|A=0n#)_Eh^dye(-7hXWMsRr?!z|In;V~* z4##N5W54IR7qQJlq17H*7+g;amyu`X>J>zn{_?KM`YRu(yWv#e662)@OF9aQaZ=9LR)cLS_=a6Chb`F#=c;dQPo{l8$CO9|VsWd% z^q0}-L8iMLF!{Y}IHtj{_Q$o2W<31I`w{rCD>aB_@&4fB82 z*OV`XV%S?ZM)3Z#lKlzm#ZftbvY5x`=2P0o?spbK-i>(oSQcdaEvKi1{a9YcVH+0v zN(Hr^gRdAtJ@;9!+FzKSkQX+ehA!C;xc#JvcNXutED-tnNGCrRG#Beze&uc z813|{xdYqWOtApRgK;4P`h~LStNLKhUxB^CDYS)TUm>64R0cU#bg5X;Scnx_DZhB1 zP$v0+uA1=NCisiA8juaoNtOY5^N@fD!Naqm7 zI{|x)VqMHa_rtJ*hbn`-SLJ7Fn@WQ=;LOJmuZ@;T->x+26#C5s47}gp6A9Y~y;Y5O z86Nt)ShvL94?41Gw3GY6!`>~29WW03sbms77=T>*Ia54KTBUN$#u`F+u4z@zYANi;+0XP^ z;9x((eDX7z)bsOb=l!=;us>+yIpT%FbA*Sa&s&OruDkhi93#j)MZsUW;QfiCydNd- zb$`Qbyl2|H-ZOocmua%RdQ7HM3^zUUxx{_WGK8_lM@O(1`WDvMZzAT&vle}(5`$gw ztS-)7hV`5q&S50A-i~6uwaF76%SyeSm_plOtf8!zY|(Q`PU;1|HU+)2&V=7$-jOG` z`a5_a;C*%y>li;93chFCo?F*VCRdtQcrU@+4bTZEVjqCMPHX_p*T(Dq`L(Z7w&9T#-uf5K6%Duk zYqB<4TSD;_*@idndnGZruae%V-Ow=+^?B`Uu4-^@571x#U;(Xa40&VgzMuTN>#c^7 z)|H-BUFA3@``X(9`i4WpODUWoa-1uIV=P~2j{!ySGmexKYb$^Bup)P-ag|+xvmWdp zAlojQtYlenrX=_N8S?U4XbSrt%&#=>r(Zd-DyCUNKfRdGZvr?oT4^1jGmc#)$N47W z3}RMj%CJjcpA1JWBOJ5kxQK!Jye4ef2J9_j&-tFw)PpA>vdaw_J6lCt7oNRwHifx0EPN#8#Tf~eLT5SAF6Y)5;!}f= z3o&d`xAB=A(RYgEeFx8P&~r5B)iN`NTjq0>SI-+hmkL8xqQ5E{>-E#cshR~&p?02Fo)#xd6SBpT8}&~)=T&%KLc1ss<5s@e#9Q>n<2HnT1D%tY-c^b zA=cNGlTedbi&$rTzG*>6yqD4IO$d79b57QeiL)d=mv1@<{n%I)Av@9MCp@%15gyJW z272F}33=7pl!If$Os0=D>Rl7-5aavtY{NXxgh~qSe$mcn)uofoz?q5qXvR5%^Es)f zaOR|l$K20D8xnjDX5#G7&u7n!-@Fj`JvbkoViBWmt<>P#fZ!FL)&-;9H2NL)azJQtYV- zaGWI|Eu^%G2k;K=k2B{dSP!6KFbxk~ef8VUK$SQvKzlfP1Z%)lR^xzA_~8F}&&T^} zo*SIB-{?6M_$r=FKwJBf_95OIV||ok!CwL_C)V2WA~{Wl*)cqGt+#6+Z-CmWYG_HY z6!I}1kGGV3JF93<73*!buVuW0HHiDh3iQs+ZcK;iPNN_D+!SoU`dEfNVtT}U_X>PY{kC3&A0}0o9KJl3Fyf~IVp39jQ>ELae2HZ%(vqA zNmB=;-gtkb_clZD8^mcx?|t|kliu%)(zoBv((`W*(}}mk!-!3m+TXyh9#B3stDhMC ziPCoj?}s9IPvlTlz2oe>f!6-CBe3>=c1G;S^THiY9^ByPEzS6$4a}$3yY`X$6rCkh zy~hU~z2h9IVw|P)p`A745B}CUW44O=&Cpv;>=|b2zT5F@?EPo;l*4)I#_RBv-ZGx6 zCas*jg39YJ|KuadVDlEwiS3IhLB0IhuZSo7u8i@D-2i#hOLWb{0QZ|Q9Qe>!uc^#bJjz#EXI+0AK1_m zEZ7>qaH4@e1`mEO^?ar}Eb}uQdL}X~ma(h(j2M<;6NsDD%6mB3m27JQpyxIK>n` z#{l?~SohE6-531pHTc(S@UPc+T^-|R0v^}n3nsUh*R%hxN<31%3TN#^cYNJPcV@Ac zdrJ_bg|8_6>pt3Eq7A&wu@!7E#d^&d#uelf<5-9n7RDAfgS{ws^@d`bQSO5qq}_~y z-58fnR&QYY@;FQ3pVR6&RE#Um&w@KmY~Zy$cuy+YB9^eNC}Z!h^&GaQiprMpVa#FH zwH#ad0enf+A;0V&6Y+$`XL-38yv)3Zmz#I~#L4kz+QhMfd1_r~1p8^H8DIFh&=P8` z@{mzaFE-TvA$IUFxX5FnVwBw4B=ftB|W~VHn-%W;6}X9u&c|1 zmGp4cBE(R(9n*gt2$T}D$?&BmhOX1wdT*LXA(q+I2g?~>q2S{%HIcA3|C z0>OWChRp@4KR>fBpvCppS7+ATO2gpek`Jv6?8i6at)`#+^DP8SOXy3%tR+^SLTs z`?MU3z%%`GMeXa(qg9^bF}}ZWjR}2JP+2{ho2p-NzEriKsGa*SR&*AsyjD=dSsE zftJEIb&YX+^OcmnKB79Sk3nhkr|^yHs-Adn=PLQF=uHxV`$>ST>#sXiclx+0=x;kU zT>l>;{gtPN>+d{uU49>m)1RWx6S+-%4JSYN6sSetdy0DT=bj9h{n%49(<8rrF8lV& zV>kD=$@<6cSr<*tV;FwCGh2}?6)c*K7?Df z6|kP9stw?X=>y)IKC#$?{VjIMZ#d2%%GuM7GmgA*%5h9Y-7e%2I8RVnLhkxZbXOPpc(SNCjn*Pnfs^cO1H|USZmHVyZ zG$TLp7Vwcz|GVQ%BlrKO<1{Vv&>8$EvlQ|R>4F9>XyAedE@cQX5Akh3H$(O#DLXB%HefgBW_WJjf?Jmz$>?`&8 zW{1V7e$c6~J(-H#<$KEZ`uE8}n;D8R#gK*ZUO-R#RXLu%mt&ss_Lb@pef8%s-e)m} z5V9a6%Xb|tVgFc;_b{l4B=zK$uV}m(peYy7T78dvTLezAe47Co!Fbu%06p#?sLG{U7GRxSfxyy-I_Mw_b~d8 zs{RSoMUwNP(4RjZfEU&xgMlEOm@v$RM1L3=-x+dJ(b4yvD8HDUw@l%H!BdszuAHu7 z2J=h@>7qG%k?$=zTz+!mwI3_L_jR2GHVW9BuCxV^1WYz`TIwZIuwyynHuh>a^k=4+B?Pz3EGkZI>w>R? z$(eWlv)GU_e!d0zV?UF8PH8?tjuVru!iNQ^H)VU4ft=*{O(KIFRRF<i_!P<=zD$iJuLd3mXN~l zQn|jjN8dxE?~7?w?aeBW)=F;l{X+UaBz>=qzK=-X_oMGQ()ZHndyI-@I$Jr5?~piU zRBo$0rSevlH>o_P@`%bUm76Ljl~1dCI;K=UuJWA9$5ftGc}C^7%2O(DRe6)jV=9lR z+)}xza#Fdz4`fQ+=b`WW(D!@XzJC2$D|GvvAG^k?t*NtCN3O4pL|5Nvg;M>=e%vn* zA4u}mV&wJIu%a!;kf6L5Z&%$s{?4-IqBmHXL_Hohfj2HLkNvivgU(6I2&*>j2 zYS;JjFjjHW{iVO$GN*qEh`L?+(Uo)B?V@(+ck{PP|C_&E-U~H%{8$lvc`wz1IpgPw z+Cx{PLf$#;R#E#&(N6QW%X_%y*RQ+>X)gawMfByonqU8NzRfS6oQL!GmvP1!KPCNV z0sFyN(fB$J05m6Q`^oq)S3kx4-?|vxI(xT~X8{V>`_&9|;bMn$yp3w^*w}PWO}wqU zgYQyN)xK1^8+Xi5O=3rHd~0_*)pW%NxYxax&! zQcM6s)bMpH-EG_WW{v+#iFa!&G0m}j$)pP^4`{f`dB4m_!!Jd7k?b#;@Y$kBI?u{# z;jiwmm%$KPu>9dWOqouog3c{fXBugG^T>i+t^Pn|~;q9&uq z*YdNkGfk}@6_0gXrpyXOKxMk0hVonV;{JMl(0PF|)j^N1`?sn7n*W?y|8$;m3GD9w zDOdmb?%&npX}jtApz6;y;H2*f*7xf+YsJXsg8fyMcA~&0)BW{*uxCChG2G+1>yHAB zLyYdP?`4@*{dw12oZRyNIT~3-y1(9!5gQiCZ7+8{3mny7H0k?eP1WD84a3Bcbbrmq zVZgYI@kNu~mj&)-Y$Dcgank)X>}eEu{D=mqT=%bb!L>W+{5aZmxfnI3#?QIeZ_r6`C}5I<<;%(vAAB)y+%TAs{Vgh1mmK+|NjO;LHk(% diff --git a/src/main/resources/Android/x86/libjSerialComm.so b/src/main/resources/Android/x86/libjSerialComm.so index a5075b83bd974644ea4d7b382149c22ca58789cf..d218b024613a3a2d153590275248d8453f9710fe 100644 GIT binary patch literal 17452 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 z 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 O+EO82G!a0yGyN|YS>RLv diff --git a/src/main/resources/Android/x86_64/libjSerialComm.so b/src/main/resources/Android/x86_64/libjSerialComm.so index 289932f22ac62ffdd8a428993f8894171f77f149..26e27d6264a12aeb516971c4a87e69e7f00d5e8b 100644 GIT binary patch literal 17992 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 diff --git a/src/main/resources/Linux/armv5/libjSerialComm.so b/src/main/resources/Linux/armv5/libjSerialComm.so index e2e97eac91fbbb5704377f5ca6308b023743a2ee..d6a4900261df59a6c37c848cf39a388c47e2e2b7 100644 GIT binary patch delta 10604 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 Z>si-=ja%yP^7a;O+vMy$xczDSe*?GL#mN8w diff --git a/src/main/resources/Linux/armv6-hf/libjSerialComm.so b/src/main/resources/Linux/armv6-hf/libjSerialComm.so index dc42eb890e2c253aed955414b597529ac431584c..88e2861c5f6692805c6ae85738ea237e791d2840 100644 GIT binary patch literal 22497 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 z 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 delta 9528 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 diff --git a/src/main/resources/Linux/armv6/libjSerialComm.so b/src/main/resources/Linux/armv6/libjSerialComm.so index b1f4c2a6070c97c2b9f08a5b982763aec35cbb90..fd7bd064a3a455c22e6045cd4013950db6b20df9 100644 GIT binary patch delta 10627 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 YXI$%NJ{6p?xhwynwa%`V4ZpPiFV$i{)M*bQjM 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 Xn|p>_>U{SV$u{KZXyEEHy>0&qfQBqs delta 9528 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 diff --git a/src/main/resources/Linux/armv7/libjSerialComm.so b/src/main/resources/Linux/armv7/libjSerialComm.so index 21d84306cfca15f2d1a94d86b99780492908ef1a..9990bfcfe81a8ff619ba1357cf80d20c6df5d2f7 100644 GIT binary patch delta 10112 zcmcgydw5humap60>2!xABmwduA?c(O2noRiLgXdn#m$R1sF6hnS#(+#-H6NxBYFd? zE-FYeg=~1NM#b5TixMC(k>Ry2>ng%$BGE4kQCk*gj&myCnKjIPeY!H zoXjJoQOY=QPUL80BaH_$!vLU(I)9%~witXcaw_r?~3BTqr5RF0g49E!XYIR?1| zc^R^iG8kLUX6k4(=yc>bL#oq4&{@bMgz|;p=OfS6%hEs#biNeyUY&PM|k`{83YUa)MA&48Baq6*|r5|7^;941QMAJp9fnvk2LaOv7QM1v*0mnuk1=k2A%@$>1!yWP(n~!U_Cgb7q)PLV|R@+Z?Y@uSOyZ zX>dtf@+Ntgyk{gDA{s{W9C?hiq5f!SD3R?nbmUzlk(T6f8pa1N{QA+vkG@;~=I67& z`tQl#xAt7@8}HDx6uSBwQ@cHKNL{EKR|vZ05{xS-^{i%o?@M>ymNOsTNQv0 z2DB3#ApdiKJU2j|5`Zt?U7vqx%~3k;E@N*8;9mmpT#U=rW7=GcL;&bUABV6Q+E6bF z3%4AT(DtWcc@S`ffGK3u(PTr4VqpsV8Vx3(0;LEx;Qs&*^a~w)i4Gnfi)e(vMI9u9 zx&`?cz)v|CdkN2ze5RSP=aaEC@EqYCpub>!y{OA8fYX3oDpo?-(@i7!(c_a5NNtES0eXdWY@+gC2)`v{3&Uv=?h&1ujg-gFnD8h5|1F ze+`Awbp;LrKaU7^MaQ#%C&n;#TgU65Ff$rNdmJ5^6)w+6p3(6 z1}ap+f(k(tBJd#L&HxLtQQj%Id=Bu-*aOb$_5Xwhd(j|tR-d;(p#cYDuj%+Wut#|Q z$go0+s?l?#0OFqomXQM0c;HY9W9@naZ2=1159|{f9E1Y51ss9rjNlT5;PUBkhiZS7 zs6VLI=eO+Ky8dt1tb6o{Bd>?l2J!3&3r~#Lz!yhYl;5BkYKqe6C!Po+2lb*UO0>0N z3|PBC(H!BepkuJFZ6gYw)(}Oo+({HcvW}>gv3*2?8LKCn#n^tL*ykFEqM-xFn8L;& z{x?#=V#b@?pMB%eDMDN955QWb^BbtGrMHG>|g(#wV8&N0dQS96BZ#z-= zp@S%laubDOSBcs%;71iO*nB)x5Q0TXG#8E|ijCDrG!%{}O4|cEh@Or?Bnn^Ih+@kK zC5kO3f@nBANpvJ;3sJZ?fhgWH97H2AZHXf6rYpo?r<_D|G&V}2v$0JP9fPfkXf)m+ zh{9$0M5i%UOcZmmlqlBCe4>aTi;2b~k`PT`tdc0E@k*lDuT~MoYs(s<*sT>8F-eTA zCF)?TifA%p>xoWbYy(lmvQ0!&@%BYD4WWoA)`KlStE+~w9$WRvPK!J1n#KM0wQ%u}^ng2|2gzO7qPV*9^XKm{+be41+860$(TaH3Gj?;Hw3GgTPk_yi4F$ z34Eo>E1GtT1wpC6=L`IFfzKBBbb)t(-%xT!HY^=2$U+6)V(ApTO@F_-)`t>#7CW27#{~R#v}!8sK@f;Ib)WEx!%F_M4pY3HeNgC!7v+;1-Ts?cPRhsm|0RT&xwwY+K(F5 zC~LtqTMvFsJ%1!xwoiWx3l7D%`G?U-(mH-2dYrWSNKf=AN%C=j%sA;gJ}x$9M02mL zEM4AM?Drn#b7RLmu^h{$1i9)cbB4+zs=~`iw!GIWHyrYNUA<}YnZqIJ@Ap_t)|Mcj zG$LE}dmrgNb9nGNb7sr$EkD^=mGAe4oT@s>PLD%7h#je~xPs)7a#NwLCDS!sUgk@U z@OvHnWNg~V(q4ARvFaVyD%Y#b?=9p5vGHjy_Lln67`3~rx6Nm%ma_fc^}RD>Ds{S+ z;TQVwoVb{g^G;@U^_N)XsihmB<9z;L+*3+QZ<%btvsOIe0PXZF8mzAJd!u`o$icw3 zJlS$GXtT%hF>y1&KiNw)cX_7ccc&*Ezbkqz@}cYL^2yHr62JHFPJ;d;JDrQr5{sOG zjGh;5k#{%RkX&hi9axcN-Jto%{*^<%U^5+5n+|1T& zdEU*i0(iNHe7dK{1Pz!+QnJmhmwe1&&-ke|x_nW;KilcTZw~UT4=OKoF*xUc&q9lBGA!@N@Cg4h0a#K4&jhGZW*y&q!*qIr2 zV`MUFd!v-`y>I`P3tcAXvja|M_7w-ougbA+n=a8~Gk$ol-0Z6KnH(2=H96F2J%4yy z{F769;s>jhEi&tGt!Bw=QfVu@C;!Lb%^^J&b1*mUohb+Jj+HIk?``O|Cg#Bd3*mu( zP(AQW!sJ#{oo4@)Zn8Y0$AaJA_DC@QvTpts)%;8sKam)#JYSLFN{6MDK65r~eUxl% zEP;Y~|L)E$J{^DTx~;)hYp)Hd9Z~D|e%5W@yJ+xtRj!5XXG?BVp?&ArZ*6s~|J}X| zT^4wd_3!KZ)q5Aam{aPvcADf7^0z2w{TVl;{=DuS*;Ye!LT}h>S!&3?!kh(rVV5*h z)-1|{MKq=z-I_&xE$b2{-La@jwdk#GvdD6mMP-IXvtd!;-4;DV7B!bFbDxe6u4Bo$ z2oNi~**z8ChU~TN*;ClmA-9g$YX^6*qri>D-)$ymX4+a!`<5Um&;-BIWlbEooa25r z;hsCnI8 zau^>r~UqB1Vg3$CrakQMNsFlMCV$gX*7p;%> zE{ZI(VSuF->jcKzGymE;Qdl73;wVrThfQ4^1$QkD$zdWBHp_2{ipI&$p!*0J%c1D~ zM(Gkim$Wz}x{IX;VUYKC@l;3psDyV&Mc!zUZxx4O?JJjy_^%u>ajfgU@`?%z9X1PDX6(Dom(o;h#8irEczZOjWXF3yPz=iV`exP)oMV zk~3iFsZNXh@c00V)RU?; zs;U&GmR_DzVS<9Ra%vDI8cKrDrmHi(yiB=E^J-P|PpnhF4jZu8XQyCYr&8o??<`ZT z2-mGR)mfBak`tk>B{^k~tqyT+_r>RL_l?D_(AX(u+aO7n%kkt2pxD!rgSj2@*~87c zNfRM?ywf2EyOSw;O_67zV0tbB9?mSOR$xL{qGo#$;dI;(bySWZl40&(% z@wF)nO|NzG6DhHihrI4Si#*&7$%j1`sd_H`_gc$L;wEQ?6w9-mUqlUg-|C~08uI?7 zFCD)fH+V>DzGCXzEKfgFCR5Rq5R`#h`dD(doB=MjZ{E$&0*m^XwQqR5hP&-1Q@7!2ysv##m(o4VRdimiAugq`pnABGX z6nLh(QZViXvXqP6_>)Z8UDAAAsvGj2@|f^@+>ai5wLDWxsyrZhesdz`hCq92;YINC3 zd^FR?|7d&*TdA6bsppnn6rykSqySaeXGhh86y`!7_-bYNq*YG_wt*qOjrUHCiED~r z%BA#y=X=*>lADFgO^*KJc z>3j(ZenYZl@Z-}GO_of43FO3NehXyMR6aH@(X@3cpP83vv*8%SlF1ma&7aHP&U@QN z-~^5e)Pl9sck%e?AvP+Qgs*VDu--;s>u^C$>=krpVvF%>k;*VyB&0J)z1>h*A}Sq;D%d4SYxo}vlY(eQtmGF8opzcF zl=J!j6eihehEVqM_`jh(9b8ck z<(msf@!LhAc4PEs^T^^P_4C2YNa!)_FO&$AsxAQ+!4;67iv}Sg>w1Ac`0_9$)8Qb%;p>CC0W~X zs?nau--4h6Y)2lMODcBEi!gQM@f-8T2mOM=EM6;*;*;bEQ}(@ljy&GfaxZ@zWXWv) zhCDv#=xoNmfMZ7S^Qcl?$iIWEzK~l>#)l1-;uABRF$acf7oSlQAGGE{oQ?8_N=g)R zHYGFuD3QAYB*041|};i3(JhSi1@ zZAqvVXtl$5i~%LH8bq`irC|ytG!iO-92OzbkWez~w>&g18rC$SQPHrbiFg~L-pv?6 z!K}^)EzoEWj8-3{0n)IhS;sN{Rq2b0p(h19@|l56z|_-9-42pdG%^lODY_9hPU{&9 zQ}J!gO)Y8ieY%|_*A&sD792Gv;S`M-hDbQur3Tjs9ZnLkp-__`r}}3FTp(bherz-f z)ub6@_yOmg=nn&D1bwn_IVu|1Xke4jz>|>E^rns_9Hx_pjFF-Ey-~mtFx8`tMN6Tq z9*lw2_R&9U6Dm-H#?aHIaX`QlFv&>)Ek(003>K7J`W>h{pgjjpKeZIfNS-cWg&ItV z)#dO2RY(;u$zKvM$+roZjsnxnB-RlObYhj!MNd}3iT=YQIpm|qku`i$*GI=4z>!IsA~N{u1(OxpL$#zmM=MZEaq48I?Nm#ee7*s3$xiLk?y4nCzSe-coHkcczRiG; zBRuet3nLXH6w-ya4{`%bz~l=fV$f}n6`dNGB1jal4Latd9xbp$;0V}sz@*^`z@+0! zU7iCR3VEY0pF<(xDxBlcD=b8Xm1uC4j#mJ?voPg!{5UWfMNyhMTn}tGk?hoBNFXn-)ipYX3L-uYOrzJKH}Dy-XhAD*dJdG(pT7hwD%c4u z8Zbz>35_91h#?7cqWbUDi)Q6`*TFWvWyzc=;uZC76dO0VbYI#EEZ(7aXph}oGFf@bF?=;%2zAAa z<@vzI?vA^7wiH-w<`H1=X8ZTRMk1@;2No})j{-lRJbd-uYr)G-nS;N(bdK~e|6%Fe zoI%01|HONmcZRIiCA!wsUjuwwsJ|XqbnZsr0mtwq`9Waumj4{EcB_wY zL36B~3iL!4b^(hG4gib)iIIl)T4PnywSSKGo~yP%&ldrU|JSe_Sp3h8)xhd4zk<0* zv+T`)1{#3H|ExF+EdFD}S>WOSvDA9zDtCKrv#8jWd4wJCaS23_8U zBpM;dH27%M#@te`O+YXuS-xWPu(#T!)n<7Orc;-xAcKqvxidF0&i(E0At&>1*Scrc zp1pr(pT|CXpU3xo=i{@|k<(I3Vr1+%#)=qYj*8Z_w9?u_#)!C@X`on;o-!cJ(gFA+O)e4gY9NP!?4ZSp@l0i#B zddg;OHJh!Wc<`B^L|v=#a_~8zC?Wq5$O}NFT3$MMnI=2Ii#0hFd@?^YV=^x@hV%9r z)~Y<@Y;lf&YgXaCR^>qWSZpCtLN4Yqxy9&&e?SlS$BV#)ROe-?6Ky5URjdHUK zXs`_hD8;h7!C#|+^+JVD(LpYzb*(||AOU=(p#KB#<5+SlQJ)MbK!*=ovEERR@Jrwq zu)JT?^bZ4ngQek8usfPPjf}@pfF>JNIEx0d(-`a3@Md(-By{*V3~m;13=B5g89Sg5MfrOgUI&A> z=nbO1SJA<2cqCoZAA>=4&{HB0uY*CIQ1$@3X~g%Cu{8q-6$yJnMv#U4H9`l)z}eWI zW3}?{qW)Uchs{d;d&qwu2E3x-V=&Mq)c?;BgWQTm&mm(gwht3VMg}yZ!m~EUPG}9B z4>9Nw;Eh6qUKr3QU^-Uxogof8!>N%DmHrl^e1lS+$3*h3-$w2-^Et7b-E{a#>?f#A zEl`SIyB3?ZfqjV_Xz$ zYZntwgW=sc4dK>0;u!u);uustaTvA++?^1PKv4#chxNp5ah#(!yAl6{6vp}}1Jl<_+{&1bIG!+uiDT;u5VvFf5l=_(;o^i0#J()Iee338(#Hwdyzkn07xPLLNXvRjQ$rJyJi4Kar z$nk<44Oy(uG+hKd9S9->{GoBF=Bxvlntau`WuxK`V*dbne}zfRKOFbysBY*wK+VVr z=NSoerI~zHLQ>pfuKeyk+j z=hG7>NjLc;iQ}VA4Te``$(tNOe-D2yaok!H7L6YZ2s@-bT8?UnsUqEqL5tkp8T9{X zFhf3bEHdlu0h7UU(HxMX^5md@&ET11!?&0{PkyWRWM4yB&>wlK;UqhK0qq2iv-F?4 z%<^ctyCVGJ6xS?ySs*<&=+ESXi5a684YE#a{UKMq>tz=7S905gq>Sx@m4OUK?fzo$ zO2E`4!+_afo@@g@<+Z*~(j3U^2C3wJ?=1Z9^=9FJ#h^*#}HSO67U5htg zt_1(FX30UXNiGBK_J+wc$`0==M+(Nc+gq+!*og9E$qKJ|5AlD2U1V{x*WSpcR9`Ar zv`=fLD!mq^l*4ON@~?PpjVycSrBQrs(%h(7Uh~};iAI;m-%T1X#qm#*Qj^XMkUggc ztg^!+S=nSn!yC~eS%dyGE+tQx91ly#hXItx2fqex+!OSFHeiz@+JpWtfMG8$Pqrs* z8;IP8h%%`t=-)DM>sCZt(BC)^iT{ncB`n7zYk zM^5yfIVi@SGyrGGl82fwb|BQdj=iZqetd)_MS*^`L(2JEz_;~6zrnr%<^~*Q`DHob zfZ-a|x#4-C+UTka7_65AE%|ZiaYOYKSCvdT{OqJS_o9KM;U@PsnfYFAVz#62v*~4D zcQ!>1n4%1Ak0~?o+-*yW1!Hq*V|zY%-o+xv>7@Q!mUc^PSZjD|L@Q!A5Vo&ocyq(@ zMeI9MQFley?upkeZOrEwy3lXJn3=D1XyIFz`|*bCYacSmQSx=;jpya#SpD$Zl zsL(ruVXZ8E)LkpOhY=Djfo2$x0RyrW1HQWW*4z>d-qm++*@=hVqX}fGriM2 zLBH=dMKcVYEm1t-fFWOhZu4wNPE`y@97xd&;H4>v(s=&2)C_k#CP&!@yWHbk4BHcL zOU3hslisz;QA+f74jw<~|D>a|tYS0^MrM(Ky=a0)4jXa=Fm;K^+!?8!KTOtZQ@r z!IJq`<2xm3_!KmmOj?7PNE^uBexr?eb-&3LY2O*JH|z|gYRWC^w_@QJK=So{ z0J9@6Sux9kepA2MLjy>YrvQD_Cs}C#aWsIJK6zaoz&Q+pH`}w4Q~Gldu*cBd3SoJg zQL&|upSLeEr1kUU^u%dF|BHPlxkvL(wxS>L&KSiz;acPO7+;;9BX#hd>3@m~`iuM2 z7`)h*CExdN9^&gV%G?Ksw#u_Qt7JM$3{X@-_3I&qh~z+eZ)pBk(d8yM=f3~&&`3<~ z`_B%I^s2^$Nvw<+S=rQ9b!a{e?J5ZQ*qQ=0CPZhHoL%j97!|*7p$&*k#s#M8e{)E#y>+iXJI0mh zy!slRw!5UsKb71ckceVIyixoQ=nUjL-~%99to`8EL02Gqz&+rX!T$`Rg?s`042b4z z7dZLmFgW?=4RG?&cJO-;8^LK_uLt)6*GIE?Y#73FWYBz}ecmGfdxvDb?|0mhe#g>_ zYupYA$Kri|$(^DqoE8D-AI%m!%?{K4+)M z9%s)jsqH?Vnhf|~H&`Z{m6_DBgR#AMo1(Fw0eL_)#&^GFOz48{1rJ%un<;%iG=cB{hc{FnGb5p@4)1)*yDMJh@S4Xi zLQkK{hLDN=l^0zUVU^v=>p!bUAMwC=BU4^%8z7L}!=IfoenML;LKO@?M~3*oeR!e! z7Tm~Ni>J8hi?E)0@h12GOmqK<4q?BOTMbc$+T;9M@lxdjHNIjXkw5Xoou$qp1>ldS zwt@Wv|EhjFUcGzBk6Kdo7vLvVUxGK?231r_sQPYnp=KV_d}kfpENd z!ub!<4M>`S6b!|{?b&?m+>89ZS+N$frz97!g2&80V4?1h=4q$43-uUYpk?ji z&&-XrP#=i}U0dhAB^jEtc;-VN7`A73-FV0+8A@`yuFMNF7|_V|@)iRsK39>ALS1_+ zej!QqJl~OOrm0rPmpkkcG|7na_*O@1gfibS=Z1KB?B43|Ud3?|O)O@}}VH-Gkh9*6I za3l)n&(9yr@6C_4Sb?ksJVs87Sd5PwL?%VKP>#0HN1ob3{sfftou}@BazB*xg?VKm ze@9NUC^sO5{4<~|rbf_Lq1qXGlO@h*OC56RX7EMMOas^pV4G&}UxBsH z;Gck17V|sKO!FV{#bymZm4~=kn6ZOmm(F7ZeZ` ztCmnyRIFMee)U(bn)IE>s9cJuyPH~p_BI3u;hqlasVQ1^nufsN?8A}O*cG*ug2j|Nvb}%fX`Ww;?~WT@UfGM6$#Bw6|mmzc0o_& zcMG^&zd*b)JfVxSS`^UF7rlXnICIn#&DKGn*-ITu__|CD>i(yr zVUvI*U@AvvmYSm3K?pil+s86FEEG^I)B;L-+)-4}11?68nQ1*~+^DoO2Ns(?xFqJ3UTs=i6U zq)&dZajE(&0h2y4Rjo~d`U3s4SwaRCI4WQoVUK`GztSc)fM*{8D+Z+fP@g4W(gy_m z1^QUuseMOlK~w9Rt(7aq2486(l-j2>Ng3P^uw7W^<|~Nhdt@@fpTo~2nBl4 zV7-P{0M`T4u&4pLzS18K2yX`+&s(3=`HoD&czSdp9yf3!~5w?Ld^s z!tua#-m3U+Fc(;lGL3i+u;_9pa0y0CGn4eoL-1;<4}F=YcQ+tIbomxwaYQr+^dpPm z$b!8Ojy!s*CcXE;)*q$leFCOw>=}zcC8_$GBluBeuj+{ZVS#P|Qv*H$lL5m5ei;Uf zcclA(>yPtwOH&MMu#X9=e`;p9$K*$9Q>0G*$J)tmRAd!+rV+1mf2Ka;KttnU zY-b2Q5P~~H@VOBD-y!%L;Ek$LZp?%PX2wI5c$qm*eW-e1z!Km_VHB%?MbA79EZ(N> z2Nth`e-A8P|9%XtCM;wc;b+JY8~g%Tyt0oAA6Z`%(G*}kQT;q%@dCUYc)MV54X}6} zyiKo9=LI$J1~SAe_yfSrLIa(^BUkd#?6lqh>RLgUfp-YyZvwXn*ay5@z)}P%Aw5Qa zR!|Z$^k+4?54LFqNKXb90B@a)iG+njbKC_iUTD7^QvQ9u{Lx;^lk=adEO@eOW?j9x K>&WB#jQAepY-F+eBlZRRHZ$A6;#yOBq;mdT{?iBP!pHy^cBt1aL0L(<2 zim zqk6P6A1s1zo)m{UK2w7WSmKribh06ACej#MF0tZJ_Jt);s1)48!Y9~ zA+sp@aWT?zW*k+udPDFPA@VEvtA_dI#t>>s$lR}lXo(0J|6R!VNp1~W;r=y*+82U9 z6@q^rg1-x^PT3d>1AP*k&b|k}J&my#%s!b-WV-?VLF0qK<#F82ra`cPk^|3V7R5e9 zu)4+>*nLp=j)k$!fTVCPW;z};{v7aiNVr3){6zLMCTNal?3RE5iy(Jm77`#Z{w?$i ziHyCd;_ito4h-Lb;0`dn48bGQ8Pf$6lt7>_XhLr|V*^2WDfqglGWJP;{~5rcpz(aj z4+r6y7>|l$>`t1`4Uf`bzbAW+!nwe0_+V^cpoAViwKkk zgiApJ|BHdPpb4(S1bgP7!7$>V z3jR;AziC?&{wc=4h5;7?_&&(D2gyGL{&9n*F%R@COGVSM)vAJZ5HQVPjJ6XgJO_sE zAO)`j?+L>%XM@I?^~#=3vK^ZwgwTK*@ZCY?2 z>mnEhLkO;h0|ckQaDq6fdI_#VE)iUeT|qDpxkNAxyMmwWmj8Wxcnz9nAmQ*+1D~L_E~+j@*hXB5}Q_m zI%wlBO`aVau?!4DabEE?40w4f|73DrZ0FJdu{A)PIi)aft47>$l8DTiCW&3zEHPg3 z%oRoPgr&)@Ulm0z0J%eK<zoovaEtJmo) zEv-`%b-Jbey=f&&kN>17VteeaHcv<0RGZE2kdOVWC{-KKS*8tDIBJ>VY?7}4UGM3v z+7z{pse~uFZTfOuDSv$W4f=~Cyl?sz{qP816JIo=1TmDHv7#%EnfKi91SGbad*a`=d%NYV(m%$Uy4#iuOr2nVfg-yNyi;H_--R5n!D<(p`_>RN+ceiOVf zQ5;dsJD)%teh`{;QsqHzO{iGrD6b8(%Nxcx>dY02v!RyRtZnB47!HBfcESwcbv1u? zL=qb9cCXXjZ1;4+I{8-^SGA$mK>dFU*gvAw-L_-k$8uY37|0!hk97#AC&(4ru=V}I zx~Ua*TA@aHA1tuGkGTrXe>g3=8kpxpXAJp$*dafIF^qVI&&Odg!HosJ^1Vts@77z} zyc;jw{F~}qeU+Yb4*N}VE7aHfdKOYrCP_|{WR!S2TvPHDXOvyp{|NjhH{b9GeUh=3 zm4nuV-LSrTlO9Kq%_H>6TeK;WTAk*7FTv+S6|e=N@p~!<>~gs_`_8ty=#`3dKyms> zwVch1W=_4$smWq+ro@k9UQD7JoxDk%JofyJ6&0JJk&F)c8tC#YO_TR&I>n(Vhx}Jf zMWJ(oypp;Fkh~C`_q~WCsKbaLn&cWyjI6HPsw(~KZyxCHwu2ddVKrzh4fsUT7bPfm>Av>gKoy3OVlH>%w7 zCXJ%%?bGyzME(m<>wR=4;*5}ls1D?cco#{Nb(v$fbkqsZVpVK%`*-~5#H4A@e5b8u zAA~T{5mta*ki$PpoMoz3b-MHU<-~aXD;N2+Ss4qaskCcwu1aO5LQk3L4Zq%|TqD1% zslidE_ZV$945|YUhRFx{mRU=5+xU@L$!-U@;IicMd-PQsuyB%5S$JF?zDS!^amGq^ zlT;R_)a}14_ko5Wgt%FTK-Bwwi#tIa%JjC>!a=*7tVIWr76!~aBWan3qHOYunn@mK zpXcX=5{F8;q?w9I?Q-w1mQvk--~tUvDxcOkJf{bzEufvQQGeB_ zAudM1?0R2D9(nN)LL`52kyl%$#%vDg5SqN=?z8+cOMxzupR}yXNg~^-Jsmhrydp)! zW|vQ4dI~U(t^??f`t|)V&r3>kzY7x1WSpLG9XY>wl-nVf(omIG+^6}yNFBkZzvmm( zpB>AYdDjJON{2&o9aM$$$Au#T!cS|$Bal(AgcVxIRN+?{;~yl&>o)PBq-(Q|tLAzt z8|CMS8At2}u`LD;Y*pvOnc+N4L4SUj-|LqVdnGE zwo&$tKu4p0P+oZfs-Z|;j*e$x+Tgoz0Ak`hO07<=flkB+%Z}5#S>C|kO3rrYg6Qc` zQ`9cM2Qf-d1oJskg|zrU3-iAN^$N}FtL--V2~D~62l>^n)!DCewmz^x5{_0V3y(@d zGk(dFCTIq>9;mzrj9{onzf68ulRDo8%Mul5vwSxQF#D){hc=>SO@q9S?@yU}+deH4 zA-U54YQ66`-aW*j0-V2auM%dBxz{I`0j>7B`Z|RHI1G>dSnN)1z23q+I1a6f+wQkV3&RAu%_UbX4t(?8 zk1-?ebOo2XxQqlpo#ulQKdS9POwZS*XIsR#=$_E4 zw@JLG(hqy^_RFM7Kbh3cPo~XCUkNq!zPs>>Kju@SN9b{z9|;#n*j5u>u?BB2@L$qW z+}$|T0{5MI&o9M2-zJ|puiEsZ&`l?dM`$TNj$uF& z+I1ry;S|pAZpC>@arVgRU#TkSoa-`seh+rpK%P=8+UhAkjUki^KlD5DFcXdc+b_(>$s0>D^mUPV(x^KSD1;15+ zb8r&t-K`semp!sUQyTD3B>(*6vgY3hs()M5#l~AI32+Fg{(YrM2KivlRZa2Hde|~ zO4w@yt8?BUx#+Y&zB${~*KOKLg;)@=9j|Nc^42c{9(Caz_?652_KfMKH!xkj@3VBi zBO}HAk;Whim!w-SzZrOoBaJwy9#$EjNJku8>O1)(o895qyAN&}+iwjJCl`hT^U(WK zoaPR_KfOR<(B7ZM(@UuxdmB8?Z%()Hgv?o{K5*9iF3;i1GoOr^{smc`w5x5KS$^V6 zKA34WjbMU$U;G@NGB?}(Hx)UD|A*vwl=tM{aeUbo+d7H&VqH9XDaPSF`7wwNTnGnt z(z;2l7=coa#e4E=jCyol$qy(Q%e~U)=#=B-T-i^x1W6);1Ny+mkkFFRp)&9@bK~<( zV+8NX+31hS^;{)4MP-Bfsr`IfmPMb`&#wiT+s~`AQuO)#{1IT+_46lz75DQufUW80 zp99;_&yCp@{crnuM)qv|1O0quc6!Wy_3z_T=O`Gjr?j}T*XrEQf2Jt(4`U~&Bb1SV zbeXL}lu7|pu^x4RX-KR_z#Z5e-GGO12r%sK|Hi?V2Y44QhFbu?0Nev;#Z}S@NOwA& z&Skj6W06|_iI*)(v5R;S++v{mCEocDgRlpG0M7uP0UQS0_=}<>hT%=&vZAa4d<^g& zzAYy;{ES~wj`F8-Ec%@T{B%y1{?q`!kTY9<`5ceQ&DHS~{#GAAK-61* zl)ogvpP=&x}E#a-` z#kAyDeG}8WQTy0|M$efwR55~gXi;cXWkPuf6-xfa^4uC*1WGSJ8(}x9EbJo`jV1zu zi!M?8sbiF8%my8CfT*^h0EgO9jMis>sJJjXUTH=X+7(6F+=e-@mp0SXNWsmS+_mCy z9#?oc@)+1V&^~N=sjx+-JIZe_wnUN{)IQ=KV3`o6_DB9|u_c^Twei0fry6N87Q?R; zr$o~H)NFiiiN#1xnPT~xl9b3ibg3QX+e$1}KPIA9g*wmZgF*Fq48LR^xli?4YH@s0 z@f6-y5@oajv*qv$P&xWB;gmW!uQV#MbUuocXag-prPFn~R&Euh@Oy-)a4HJ6a+i<+ z+Ozoe^S6bJ@PabNZsR`*so@PbqR7aT%N%a-cOkQiaHdE<*p0)B( z`1Qid71m+IlpZ~jh4}IU*+zH~@X_oe+yT6mC#@;QIDY7z-{3TamD>{KWNZt-)pV zc2I+h((eEtjRBSEdw|2h)s~dt()2uRg5csi?Y!8zeEaI%Iw;Yr{>0X(>Te<^63^o511m45W_5Mi2@ zL1TDE2);Z7Ukg0AI9&}qxOjaig#Sh0!Nu$U3Wxufkoojbeg5?jflq)3m(wR<%LRWA zmkwpeJE9p!^n*}`Rn-6p6f)M-d6$AAZap!n`;`N=FyI|ZOh%Yk_Ayzx!r{iXJTGG|Nan!61V+J}Vu_@s4}MrxYPULB<9mh&?bO0evxEdA4xky5|We)K2YN$qu%|`y$#&3Ti;iG z>YO@tUUjOv?g<=}_8pXV#SQciVJwF+cILIDl<+beV`aA27Q~ybNsMK`wsz^D#tDpR z{k0Rn8u?@}d$r@Q`>%dB}tx-&CsELJD+8B(Sz38S8tj6o_o%~DH4Pe&hz zJ|4ZNWncgmEDIgl*<|!7=sk^WdkB3h`gHV1(PyIPp;IeBpM^e$F?bScGGHP4e12E@ zFv-_L1|*&|V;_O=&-mvC>&lh=sQ=Z+q^>d{B0Y^(i5>)y@Y;U(;C}qy@FJtNz|>F6 zZA0HOlG4kvGC^E4#|X}X69nO06G2>NtpuZB8^QUoi6Bn!8G^Wb&J&!A?Ik!3 zX+m%kY$ce2v>=#`bRdWvyapH_j>z65!eqwo5X4P*k6;4-ASPYP;(v`vPr_}Og8&S` zZ8?qLAjWbD;)cv8n8DM`RwuysNWou)VN$kW1xtk&$4`4U6){t$fHSqQ!qbyTrV6H3H=Wf7^kNbJ#&}_@?+z`

?j%Bxz|w$FKxRTEwLhvvXVTDvG#K}9Vx!#i9x8ypBSB@;6Qe0FS<`7S+6H$tD zZzXexKi*c^+|~P-r^Oj#w=2$ChxkOJZdLeOaU-}TJ|gWLR@DU3kpkZ82=`A6MtDl< z%sW0sxLt$X)wMACBgQYpjT+c2nr^{t?=k)$ZiEXVd(Tp}#@6_enf9x?{>DN46c?95 zkr)Z7o$y^6_ z9~6q0$OX02C2Wnpr*A&~%Ze3&63=&~j>p7zkXI9U2V1Rh%7)vmKKT@e6Gg$k@?d>VaPBD6jVj?Ra>l)MHGYYK*0Gth+0!)O}hJ zcfj4t#(vJ0X!nLI&hv^h2$SD~$-bv~Zo+Waw^&mXn1a*a9FByH5GOR1WPa5PBw5&d zDJQDRH@_S?u}Tyb`P|#TQWU!bK8Zf;!eXE_sUVtu-E-IDI^nXG~w!T zld;UE*hSV&o-sOcc%&w)Gl)f)X%3r)M1F%mF?w|J5v-~SL_nsuFv25uJX+mRHPTLD z$vJ{85OFv7+oRLt*Qsou;93P+zNawac)P)_JS+y>-2R+SzeBP^EBJVZ-G>lA!i(-6vLLVR0ei&5Mx{_ z%YE+mC`P4XISA!tH~rqP^9EIBjp6%akm zYK}R?BS0v>5Gyl=wC$1jH-MQ8D9kCZaM(o{Ey+o>-4gLv_{Yhk%I<^U#iWws7u}a> z?61JMP;>x+b)Bv1KG%ygz+sqnaB;$s|A2SBjs(TqKr4LJ!4|m#uEDo?>q;hS8kH-U=e(3 zRh*5A^OX4W|ESB!tG1V7#qUTOyt?SFZd1%#C?a0DZM@tnwS;wkXt(pP(^6a~wKZ#@ z9nKi#;EeoPW~dHsO0{2fA3;8SM1(J+QY*fc&tF{8cHKOoq|H-u{>|HWJtaY(+-_4~ z1*|E8A<`X~b4sM@4Jj8tc4~%vNru1&%9v9kkM=hD|3uhz=|kEtSXxX^rADa*7K{6r zRM#~3-%veipDv#_zxqpTjCt!8mC`XCJOAn;P&%I%k84VuBkg!bG?Bu!nhZ5OFaE95 z4i%o3eCI;gV^fG>JC^)E7MVJY-s(1fVO+w*pG3$E3h3*2EPC$fUJiJ{;!nyVav-NB zuw@)i8K3M}u4(nkH@z$FoeVuNpc45it{_e|ftmP*@K#5u*(+N%$}Y;5=VyY)F7|=r z=UJ#!D$3+i-Z*|Z9;X+^r$;=m3TaN~5gBjA9RGm~Ox)V|l36@-i8o}}B3_39HGyx^ zcvnW|xC#~d1HMM+84%?=8jT%xDE4Juejai27`!p1zN3SKJTEh0=vd5oB%e19&>LRl z^Tr4HKV&8trUm(q%;cDSm0Vh+O!ggh1o^Sdk&z2~I2Q+bd#2S;7Ua?dt6^o3Cr?N= zR0eq=u;+q&HL#b1+zV`5kkXD?GN(q31bWggM4sSnq}3lUFuiCRCrYrcqO$# z&RQzD?B6QN8Ekk0sCNK21JXU&j?I|^coYGt0z8Ios0B3PShfK&oalRi_W;M?<#Pac z)iS`bxRo~p(mz8zU?Fbx^MG6N#}$D?aT70rX@E973fCCfL>7T3>244X;St{i*bPXh z=gGe-N-RG3O71C2KHz4+r+C4n6jRkVFomz3WHlsw&;MyshGE(F{DVnj47-2eXD3ZG zQiVK@~YSV2t0R>Q1lQ{gMdZDDScF;@x{G#9iKd>R!7v1&mq4t!Z~kUn~Q z`4?&Y2GPfk++q}zd*HptyR&15bq8kk$fC*hm^{_RPh_Ws@56AxWqt+2Rt(>|%;Rlo z;Wsfnc9|Dqn24yXy23ZuGQ#Z`I@h zLGV68 znw)Ohj!`tfFxhIV$0)Yp{^USpL-v$5DXn%Wp6uwnyxF@73@$h<(_?2j%Z?IGpd7q+0&;EbBnBf%<9g17^WW>bvD*^x}j0sX!4Ngv_R8Du4=fZX=4_jICm5LIy5)W z)=0aEX2AAOq(LZu2rmHIlTU<~0{8RL^Q_pw8T0ZC%WQnpyon@e-X#29oM#=ZuSv>C zf+IY7zICv^j7FuoJ~kb-{x@%*JWeQmP|RDGq8YNb6f zpxWsf;4pB3HCbOToPe~}S45uz{%ktmv|y$r^N$x;rB;4%fz{Ph5~PYAl@xm#h3O^W zy){eBZ|yg~M~5eZ{{V1(4fSi?Jjv_shZ{|5`4uy0#1N}xP%oa@56=azuMjQ*uCE|& z>&H(e$TlQ4>7_FDyTGpjr$#l>dJ~m@LyZh*1%tk(`2e`SC_55&h`tD$4qRXNejGTR zBx7=$y| zq2nI~TwkVkrGwC=W0jl$YYAj^) zN*HyjS6ee}-=ABymBnsv_Fbh1hWT|&V6U`6$uzCN_xp&|~?)m-hJ@@~A zp7WgNdG7hRGiUP-@$e3@H6^agDezLNS3>I(*^{Clo2;Y9CO>gcUX&K5qnanSJQ}}j zq7M3NHd)*>az*w}n;O`0T=aMh$~cz@GuG2^|+?sD#2BXOU6ZI1}+b-8wDYrFfTK4 zS8(0LUbpOvvpaM)bgyOShd9J{*p@K27-XM@IoSH}6mcjM!KU;3=a4yA>yQ*Nmg5NC zqK8=VG{1kr@6Yr55q{5uj$3?@rG>l2nOxsVZCNF3Kg~6+^7}`0XI;%h7}!i^r} zh?(X8ix&_lID{3l#NCWEoV^4-Ubs%!N_j&OMZNwbYSQ=15+_3X0hSi&@Fjzb7h;55 z%BZOvvFNQ@Wr?$)R!fauPSU$XSpZBWdx);TOqK`=A^ol3$*bq-t)VpOmGA?+0`C*b zQ*~yZ;clVP!Iv32|B2DyJRBlJuczxo$WWr8Uu5Xl82Yd39SE~W>BJ?2pJ4>{mMnqs z^?TY9u1Bz+3;KDFVd(cGppSCQaP$S#l-HxOM08)oP+*dXs0!sCt(sU}>=-?JKApVPdoxd4+RNeqjb~ITc*jK)0TcRB0Q;hEa zV$9_a5f+ss!&--7jYcAsPD9^i@Gt1Ju#SmC9ktK%zLJ08vuY&kMp`*g78pLyHe&g+ z#A%^duY?oOr(|uGbwMau?;AX3XSBmPcs+Q^Nb!1B6}>T{ZqaY=Us&7L9X%(UO|`FZ zih?NA!@k|wlKM^3OjZHu zc$4&iNt((Ygp?NWQ0X#BC$d){H80aWCTSY`GM-k_OY!sB;)Iyk;!=ql8H&4`ElGI5 zd0ogT>Kc=D61$qh` zNwR}&1gn_XJoa3&!#9ez)o*i6QpvU$0T8byae4z|<1yM3T^bvtpLf`-=b`!P`_H+C;VN4Anu$|*K2xFoO zfz2FmBaEpj1X?+MfiR8Sz$%WPB}|zKEaUh|!Zhas3pnv(ZxWaV8 z@r3;xPbN&WE3lp8@q`lzZ{|3Ma1!BGj?)R#nig2a@i4;lc@bE~aXjG^!V7?X!OUnP z==&>B$rUVwY0U_fa{R*>U|RA6`5a#$OnXv5;`lV-k%a9WA16%1Dj;xtj4*Asfu5_B zfrEr4!d+LItQ>*ZP2^x*fy4 zAyXgj7pj9@G^(LrrR&dPpF7iiuW|Xox(n5c+7UcXDyvH3pdr+cQ5sAB3u0JRPt?Vr zi<}He(5m5tR)br0N4Pdx62$M?@1~MxOI;1GXik;%rlVQiX!P$k`X4q2?T>?ot>A&` z!0j+#OI_90FzmEg909xK>Xq+aR+_^UwNq)154K8}M@ncX7wW%3VjlDtJ>Wv7By^@;l8!K$M^79&xE2lfZ!{Zt& zcDv+>5(w-$9cbc~-wgw-eDvfqy3w zO(ge_ev2p5~5Q$O0JK)4R)>E|;!3Tp#V> zrk(JhbdA;>uf(dyyy{7$Slf!`OiFXcm8%yifFG-Lrw@)~v(m=-n$e`mukN+2+X9EY zi!|P>)2p7=dM*WntNnEzJnN+PDr|un-_M-U8Ht8abJEn2lCT4>AFmgE>my1*pxtm} zXY6bN??XEct8gnpuX4_y4*Kh(wXZKC5yesU-LP|I1V(IgSmVdRf)DykJ()htr!3lA zE#DbV76A$Et zqF&;Tv=l}{mA^3VOnY6KqV6kK&uClN!SoErgJ{!zOj)!W#ydRNk;p*6!D2FUEypgh z$r-XZhBai25Tn_KjEVTU^-0Evq!sY9T#evU@#L)LhOA!g@C6pk7*+K53&Eg_fmyCz z#Vp@|4TUnI{R~>qg>AKs<|16!i8zsGI47`MUCVtNzT=Ty#HOUE?afJ-v)W&8^{U4W<}*@9-kQ0sQ(7ZeKBo=m{O&+9 zT;TbO)Zbx%vC7Ob$?uRFy{vt<)uUtP5scq}wUVGImS`b3r>r6IvbdK)_vf4b+RgPs0nsTP-}Se=0gt@pR^GC~#ZHY*uxRJmPos-`UHCSjysSS* z{?{kd^BL}5gDX;@nR;2<2;7ZnG}~owZg7pj0x=5nMJq$+P5%0!jSa3Wp}tKQY16=V z+ZCWt^J+9FXOqwcWh0ilQab~ka3}eFnv&YfXvCisEOlAhMz(LvB>A@>DNth+?ERKE z!$8o6k%KLTR>Sw}41euNm9|N@UhuhA$EIbamp{R+z^c-G!%=Mp8Nn)=Pe=*2YvVz5 zzpIVqe1j`rOT&{_4Qe~MoxOo8Kk4{-wk<1r**xiFk1XXjehCoxZUvE`X0_E2`d=w+{EJME{>=*}QpH)z@yXV}qfSInE7 zY;f7Nzn)={IWAuoR&+)6x+1;EO^R*ZKloc5iq*1Qy<7m%C&5-fCaj_kanUlgK}eW_>p+NVGT?=DdzjKweFcXH#j zsQR<|B04-#!e;&f5`-4MzZZ1VIckNOq4 zn1u;dq4oq@SKoo+puNAx~P8o&pHA_7K&aG;)C6YO~(jf3J6!S??aRUaW4O9`2R|O5mt@vUFzXGp=R3=nNF(Bl0DT6l2N>LI);nz0YZ{>UoLTR0 zX1zHB^y+mzpPuUVX2p^LiWO#q4Q9O)G3LxRYJuQAcBpDX71}oFw1>g;hvHJpp?}F|s`tTj>ha zGCmFbs5?;iqRztyLOzz|C8%pqPr;|kcGS!9JtN?k;Sqf7R-!J#xBliKIK!EQA4D1m z@kbcOmhVPgiTZD-*Py-)bMgS{#i%uQ{e&^$U0=Z@`;Q43mdX=s?S#Bht4;)ip+CM6 zir~fd7_PSw%Q2DVP0C>3PZ$&7K}eSbwyr3R&77DW5dfSg5{#H>Z56|&vgamdgnx&4 zds%GpNY_m3GE0{=U$$n+R%yC5WxCZq-5TkE-FK0PmywTTYV8>3vF86VLbet+4)s_| zEmy3?vNhjh&6;j%MaNS^ke!v?Y*t~BrK6iYg6eWNd%LhG;wm=EPslF^i!B;!X*|Ow z7u{@GdX}w4^-vExR&;a3I;2nJp@c24oM0o0QlfK_w3+w}{xFOp4BsqZ67iM>~tG6D`-?&WdGJT8wO*GEutv8du1;fYB2L#(Pe zAv_mP4Q;i>sbNu}Kdmd7TH=lm{T+^947}t{U>}zJT3o@hr>2VStbD3l>|raXrp8J1 zM;Xdcy%KuaOOPF9|AO8PZQtYGmS37LI=337f8n#fG25t-PPqD9*X;H1^db3`ZT|Oyl4SuRnsbIC`k0Ryg%N^nk zENxa&ScGsCwL|RXC{mDE6_A}h3|X|0kJ|B@ko&p~{T_CWV?UCF39&*bpn>{UAr#p_ z-X`Q1vL9ycg!?;gn%{Sd98$_-ve%I&16pu;R7wA7n#%2X7U>jG)*;ue;O)XM518ih<6rx)Qp84jTDZ|@Klottu)z;L&Fkd+ zFArKz82W>c7oBu4>>P(>l)M~#)>lH(g4+%0;4{?64Sw*6-#&iWe2iN@Yv>F<$c<#X zDjm*ISQhAbY`rW|%KHv6b4gk-71C=R1g*<~%x0PvVTiG+KCdBkcXsG&`?N7xw zOw_>5l1&j`9zFYkwZ9i+<*&vmZ|py|@Z63q+jc)f#2nmN?4mfYMwjKH z%)_0JyFiywF&6iD+!Jt9yOVI=f;)H>QxjO~-RNT{Xm*b{u2JV@-X9+?)VSZKM zIUDyJw$rfB+MT3HgU{tGv(hGZuHYPR?) zy|eP@WHE~CYom+i??X3O1)ESS*}1bu-Q|ABQtg$fAh8m~97AX~$SwLJ2o6HSipFD2Yd=Q+e^Ep3&WTnzUNa zoX4#fM`yN(sl>qb5Wvx-yOH>4$~ca-N10^jFQiRlElD=EIVmYY5hAUFByqSQuF5ah-#V`m5nuYqDizFi39MB-`AD90P&8Y2071GsXo!bA-! z3;rV<4|qvnAc2ny&Jf0o5d7^NpCpVaEBM~+SNn@NeuZ!>VLQjaB^*cC!trkin+OXWKTX(7 z_`4q=$oVy4nv(urj@J>k5XzuuZoUn@UNW$$L-%mJ!a2v-<2qzM5<@ip* zw7U5lIG#h;M!1&a8HAGwS93gtFnyu+e?&Nsa5b>p66J$HZkhHrit&r&{428Z zjof&}^r)e#6T^IWjyB8(ssg<c*h`hxPVT z7omO@#IO}OQsuuJ2Fw`^9lKM{h-DR!yOqlqUYDCAWTi)Ljt{ijF>mDN#9N_~ls!;* zlpn)%=h#2eMj5iRJFcZQiQ+@-$@H;e4SO^F4XZ3S9W`$mMH9Pu7_2n1RT&wE-`Uw) z>B+gk^Xz1GpWHl4@F@znUGLk@0J|vN#9Q;cpGNSZ2eQL?&K)`v)qYNlL z>eVZOz^tZzWl#NZmvRb%6bPF7&D(r^2B!~;k-W4@x>u@_?vs|WSL})2_bIPDl<66i z!y9hp`$2b=eaMhn0s9E;bUKB$R}1YFLK~#LW~uvy-0~3Or0|@+T{N+gbLCq&Aj5&b z&{D;HU3V!EKy146%17+h%($gh5IT{pGoWYk04~+1x_IpwXuHoOE5|(wHK`s2wO!O> zDG$cdDcvpIB`uN`VnAJ7AS>7AYavZdXMf5Z?|lbGntYPdW!};NM?5Q3xP~tGC}-3Z z7~J5ibKzYRs>d|R#G8^t)Cb2-gQz+2)zNlg7cI^jpJzcvfPJ|x<+RjzD4^!Rg4|sE z1c<2O9DaZguO#r<(^;wBD))-6U>|hC=LLJCVe5iA=OU^#`DA5J-Aame37Ki~xs|TE zxl+S=$H)nFs@ziChh-E7-Hlx%)qUS1xl<@6<#e!qU9{X%EB0YnBV#@4_hhA|_@Gux z{pQl-Kwv4%V;J}qv`9H5FDP^5NK5f6psHK6#$~0mZkDX433MeD_crmqd8uODTV~iw8+hm8|9W;_P{SeUC6Q>w}?G#u_G<jq!F$)lXqC8JT1^7PGlvUOTL zfs(TS3o@g86Aygth&*N=JmsD|CoY@T|{oa#o@-n1m-*6@%YH`tD2b~ zum=88r0fBa@mpH}mzUUTQonj6{j+-$?d0k$!>BxfD;l!t+H zIQD?R=m`1t`%AoU{Z@Hbg;Ir3nBeqO2c7K9Xr-p3hQEp)T`0Ci1E@oO=f zr;7-pJqr?{sv6DtrFxhh$jhqyl3RgQxp`{0`qH;VbvcR%$$?IFGX#CR)g~@q?XB_n3sP5si;*aqmg%LzC zS>$~#2YpotYBG25oU>m&j5kkn@mAKBKhBVq#17||8SF{SSWr~(MWP+uOY>H4wn%|v zd%}UyA@41}f=i_ZK)4EnJ8UsL}M+*p=r|RQBT7QQl!R$nF`yF+cqdt+H-U9Z%5Jy1U#+AX{- zS^z&wuwyGefOHM+o3+}WdXO|&@eX)HbhI`?xXS=Put|CN(i>F!|9Ri`mHjGZ1Y2bhHa(0F z{@)$F@ZbLEr5tR5USxVvPr;(@M43FTe1@63T=s->KsFcbrw5GeBKd&%p14XR);nNc z{2>(Mj>yVFjQSVk%RkUtncM>F&VD_vi*iJr!{}b|ImPl7TA|&C$8sMJR(o8h5&^Z*|V+Mvbv6^#Y2ru_g~=YimWhK|O9|8)wE<}K3Uyd-|E z8exuS{TZ%-hw@}ZWZt?IYi~VlArT}gGjDZ6(zjYo()_AVqn^OH+ML6z{&Z zfA5>!cq33h0~*Y^FHk}ADedPy#-NEO4UOI~hdtB=DUK?BYA+enb1s&<)&^vn7PiOy z*t`PR2v*?3Sy3^X#l`Hw!g1aLvm*-J%*hJ6-xxX2#=pB8GeM{bGp(R6A_{PS;|_)U_e&GowGWzr}H%3Dh!0|>N! zN22D$*de^eP@eLyc}qiiD?@qL&AeT&-tax4MEcEZu;D*wM4dM^l;;fP?H;p5@Dd9`OZ$!G=9U40eU`J`3g54dJ~Q%IgT_xrXrSG#;NeEs4*C62}c8dO{68 z9?JX76xwx;P~Ngo-tHm1>oj13UF@=j5?w@83`>?)b#{!MG+*>Kd>sgMgKty=0a`a} zP!^$l4qO3u= z9s7AZ%D>~QL%@GGQ}GE}iSk8!ez!&9D53`c8>kRCufZ_3uVpAJQNDw+0p;D;v-hK1 zjk1^J7w1N`{S#H$qT+0WaGI?vo-n%TbRZD?^%kKB9^9L8uR<)x+33j*<}c2T{vHus z6xb7GnXI%VKl%ks)C!Sc^lVdu7*W7lO0uK2BHWYgosvxZK~s@r%9Bj?8K&eJCd&+y z(FK#ckpd@DaYb1#_MML~CgKc0zGW{!?UM?8g^!C#b# zLlzy7H+3wZk`d9-I^~KOQ%S$6;Ic4fT48+fXI%Q}h_0zlc5vE#Vl~UZEkk^txo;~J zyV+y6Wmtug8i9VqqN|(z5xRHT-@r@j_yN!OB>H&=*BHGlv310kmxvuTlF=X<*_xS! z)@pq8(iJSvoPjeUHUG|ca_F;>!_Qpbd?Tz6ZEQ^?Q|6m4+hhn z#Ll=%=vQs+(#tmHoK+YfJO&JwFWT56vnC7=o(>@aJ7$#(mz`Qw*~!iThMWNwRFqiD zCu!PXxv*nR#Rnp?=9CL#swF$uRoS= zlwd|Qnf8njqVOZBb&d^rw$4e67>2A%b8OCF)I+&H{Y{?q5du=q)}ZzXp^a^yV{->1 z9a=k12!=dVZW4mA50#sRa`wrbM3!{>4#fE3?aRbAmg%uskLahYLAJ!49viFn7{OZU zDHJQ&3!Y_$)-rb0^Gk@<%q_$(J=^EnthJJz*9ng9S#0NA8|$5G7aN#3Z??FJx#x`^ zIYJ0O1?%O9ix=4P$mAl-zn?qRxeaoQ@YBPRS^Pxv9wy#Vxcn)-Zulu4EudsG{OIZ+ zm&anl1S8eTBRW6)EG?2wH&c?a+>*8MgRMN$I%nuw{lswaz;K-|4?o^|n`()BxaDr0 z6MkxWfoo&1OwfF2mF(QjV3KX@E3}&r?a!ThJ)q0O&+}@jR@4S)?QFR?GKJ~9@Po+1 z#1l`_lavx6@-7+`E8P>2>Sjw&IPuV2Xt+Bn6{oKO