From acb59236cb4293edf9f68f8f7e7611f35a055d6e Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Tue, 18 Sep 2018 03:40:31 +0300 Subject: [PATCH 01/31] first commit --- README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..48ee6bb --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# JavaITMO2018 From 3294ae418ea63fe16c8dbcbaf1f64d88f711f8b7 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Tue, 18 Sep 2018 04:08:58 +0300 Subject: [PATCH 02/31] add ignore --- .gitignore | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fee7a04 --- /dev/null +++ b/.gitignore @@ -0,0 +1,149 @@ +# Created by https://www.gitignore.io/api/java,macos,gradle,intellij + +### Intellij ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +### Intellij Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +.idea/sonarlint + +### Java ### +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### Gradle ### +.gradle +/build/ + +# Ignore Gradle GUI config +gradle-app.setting + +# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) +!gradle-wrapper.jar + +# Cache of project +.gradletasknamecache + +# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898 +# gradle/wrapper/gradle-wrapper.properties + + +# End of https://www.gitignore.io/api/java,macos,gradle,intellij From 68c91eef12ebca7bdd10efce5e0ced8a0bf1a4f5 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Mon, 10 Dec 2018 04:32:01 +0300 Subject: [PATCH 03/31] simple client and server --- client/build.gradle | 16 ++ client/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54413 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + client/gradlew | 172 ++++++++++++++++++ client/gradlew.bat | 84 +++++++++ client/settings.gradle | 2 + client/src/main/java/itmo2018/se/Client.java | 22 +++ server/build.gradle | 16 ++ server/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54413 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 + server/gradlew | 172 ++++++++++++++++++ server/gradlew.bat | 84 +++++++++ server/settings.gradle | 2 + .../java/itmo2018/se/ClientDataHolder.java | 35 ++++ .../main/java/itmo2018/se/ClientManager.java | 15 ++ .../main/java/itmo2018/se/ClientProperty.java | 29 +++ server/src/main/java/itmo2018/se/Closer.java | 30 +++ .../src/main/java/itmo2018/se/Executor.java | 23 +++ .../main/java/itmo2018/se/FileManager.java | 5 + .../java/itmo2018/se/ListFileManager.java | 4 + .../java/itmo2018/se/MapClientManager.java | 38 ++++ server/src/main/java/itmo2018/se/Server.java | 85 +++++++++ server/src/main/main.iml | 11 ++ 23 files changed, 855 insertions(+) create mode 100644 client/build.gradle create mode 100644 client/gradle/wrapper/gradle-wrapper.jar create mode 100644 client/gradle/wrapper/gradle-wrapper.properties create mode 100755 client/gradlew create mode 100644 client/gradlew.bat create mode 100644 client/settings.gradle create mode 100644 client/src/main/java/itmo2018/se/Client.java create mode 100644 server/build.gradle create mode 100644 server/gradle/wrapper/gradle-wrapper.jar create mode 100644 server/gradle/wrapper/gradle-wrapper.properties create mode 100755 server/gradlew create mode 100644 server/gradlew.bat create mode 100644 server/settings.gradle create mode 100644 server/src/main/java/itmo2018/se/ClientDataHolder.java create mode 100644 server/src/main/java/itmo2018/se/ClientManager.java create mode 100644 server/src/main/java/itmo2018/se/ClientProperty.java create mode 100644 server/src/main/java/itmo2018/se/Closer.java create mode 100644 server/src/main/java/itmo2018/se/Executor.java create mode 100644 server/src/main/java/itmo2018/se/FileManager.java create mode 100644 server/src/main/java/itmo2018/se/ListFileManager.java create mode 100644 server/src/main/java/itmo2018/se/MapClientManager.java create mode 100644 server/src/main/java/itmo2018/se/Server.java create mode 100644 server/src/main/main.iml diff --git a/client/build.gradle b/client/build.gradle new file mode 100644 index 0000000..c1cb40e --- /dev/null +++ b/client/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'java' +} + +group 'itmo2018.se' +version '1.0-SNAPSHOT' + +sourceCompatibility = 1.8 + +repositories { + mavenCentral() +} + +dependencies { + testCompile group: 'junit', name: 'junit', version: '4.12' +} diff --git a/client/gradle/wrapper/gradle-wrapper.jar b/client/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..1948b9074f1016d15d505d185bc3f73deb82d8c8 GIT binary patch literal 54413 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/client/gradlew.bat b/client/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/client/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/client/settings.gradle b/client/settings.gradle new file mode 100644 index 0000000..7794e2a --- /dev/null +++ b/client/settings.gradle @@ -0,0 +1,2 @@ +rootProject.name = 'TorrentClient' + diff --git a/client/src/main/java/itmo2018/se/Client.java b/client/src/main/java/itmo2018/se/Client.java new file mode 100644 index 0000000..c927c49 --- /dev/null +++ b/client/src/main/java/itmo2018/se/Client.java @@ -0,0 +1,22 @@ +package itmo2018.se; + +import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream; + +import java.io.*; +import java.net.Socket; +import java.nio.ByteBuffer; + +public class Client { + public static void main(String[] args) throws IOException, InterruptedException { + Socket socket = new Socket("localhost", 8081); + DataOutputStream out = new DataOutputStream(socket.getOutputStream()); + out.writeInt(1); + out.writeByte(10); + out.flush(); + out.writeInt(2); + out.writeByte(23); + out.writeByte(44); + out.flush(); + socket.close(); + } +} diff --git a/server/build.gradle b/server/build.gradle new file mode 100644 index 0000000..c1cb40e --- /dev/null +++ b/server/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'java' +} + +group 'itmo2018.se' +version '1.0-SNAPSHOT' + +sourceCompatibility = 1.8 + +repositories { + mavenCentral() +} + +dependencies { + testCompile group: 'junit', name: 'junit', version: '4.12' +} diff --git a/server/gradle/wrapper/gradle-wrapper.jar b/server/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..1948b9074f1016d15d505d185bc3f73deb82d8c8 GIT binary patch literal 54413 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/server/gradlew.bat b/server/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/server/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/server/settings.gradle b/server/settings.gradle new file mode 100644 index 0000000..66391d0 --- /dev/null +++ b/server/settings.gradle @@ -0,0 +1,2 @@ +rootProject.name = 'TorrentServer' + diff --git a/server/src/main/java/itmo2018/se/ClientDataHolder.java b/server/src/main/java/itmo2018/se/ClientDataHolder.java new file mode 100644 index 0000000..d056af8 --- /dev/null +++ b/server/src/main/java/itmo2018/se/ClientDataHolder.java @@ -0,0 +1,35 @@ +package itmo2018.se; + +import java.io.*; +import java.nio.ByteBuffer; + +public class ClientDataHolder { + private byte[] bytes; + private int packageSize = -1; + private int currentSize = 0; + + public void read(ByteBuffer buffer) { + int intSize = 4; + if (packageSize == -1 && buffer.limit() - buffer.position() >= intSize) { + packageSize = buffer.getInt(); + bytes = new byte[packageSize]; + } + while (buffer.position() < buffer.limit() && currentSize < packageSize) { + bytes[currentSize] = buffer.get(); + currentSize++; + } + } + + public boolean isReady() { + return packageSize == currentSize; + } + + public InputStream getContent() { + return new ByteArrayInputStream(bytes); + } + + public void reset() { + packageSize = -1; + currentSize = 0; + } +} diff --git a/server/src/main/java/itmo2018/se/ClientManager.java b/server/src/main/java/itmo2018/se/ClientManager.java new file mode 100644 index 0000000..727347c --- /dev/null +++ b/server/src/main/java/itmo2018/se/ClientManager.java @@ -0,0 +1,15 @@ +package itmo2018.se; + +import java.nio.channels.SocketChannel; +import java.util.List; +import java.util.Map; + +public interface ClientManager extends Iterable { + ClientProperty getClient(String adress); + + void registerClient(String adress, SocketChannel channel); + + void addFiles(String adress, Map> files); + + void unregisterClient(String adress); +} diff --git a/server/src/main/java/itmo2018/se/ClientProperty.java b/server/src/main/java/itmo2018/se/ClientProperty.java new file mode 100644 index 0000000..5fe70a7 --- /dev/null +++ b/server/src/main/java/itmo2018/se/ClientProperty.java @@ -0,0 +1,29 @@ +package itmo2018.se; + +import java.nio.channels.SocketChannel; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ClientProperty { + private long lastUpdate; + private Map> files; + private SocketChannel channel; + + public ClientProperty(SocketChannel channel) { + this.channel = channel; + this.lastUpdate = System.currentTimeMillis(); + } + + public void registerFiles(String name, List parts) { + files.put(name, parts); + } + + public long lastUpdate() { + return lastUpdate; + } + + public SocketChannel getChannel() { + return channel; + } +} diff --git a/server/src/main/java/itmo2018/se/Closer.java b/server/src/main/java/itmo2018/se/Closer.java new file mode 100644 index 0000000..50923f7 --- /dev/null +++ b/server/src/main/java/itmo2018/se/Closer.java @@ -0,0 +1,30 @@ +package itmo2018.se; + +import java.nio.channels.SocketChannel; +import java.util.concurrent.Callable; + +public class Closer implements Callable { + private ClientManager clientManager; + + Closer(ClientManager clientManager) { + this.clientManager = clientManager; + } + + @Override + public Void call() throws Exception { + //TODO сделать демоном + while (true) { + long currentTime = System.currentTimeMillis(); + for (ClientProperty clientProperty : clientManager) { + long trashTime = 5000; + if (currentTime - clientProperty.lastUpdate() >= trashTime) { + SocketChannel channel = clientProperty.getChannel(); + String adress = channel.getRemoteAddress().toString(); + clientManager.unregisterClient(adress); + channel.close(); + System.out.println(adress + " is interupted"); + } + } + } + } +} diff --git a/server/src/main/java/itmo2018/se/Executor.java b/server/src/main/java/itmo2018/se/Executor.java new file mode 100644 index 0000000..a38d0a1 --- /dev/null +++ b/server/src/main/java/itmo2018/se/Executor.java @@ -0,0 +1,23 @@ +//package itmo2018.se; +// +//import java.io.ByteArrayInputStream; +//import java.io.DataInputStream; +//import java.io.DataOutputStream; +//import java.util.concurrent.Callable; +// +//public class Executor implements Callable { +// private DataInputStream content; +// +// public Executor(byte[] bytes) { +// this.content = new DataInputStream(new ByteArrayInputStream(bytes)); +// } +// +// @Override +// public Void call() throws Exception { +// byte cmd = content.readByte(); +// switch (cmd) { +// case 4: +// +// } +// } +//} diff --git a/server/src/main/java/itmo2018/se/FileManager.java b/server/src/main/java/itmo2018/se/FileManager.java new file mode 100644 index 0000000..fc9e7c1 --- /dev/null +++ b/server/src/main/java/itmo2018/se/FileManager.java @@ -0,0 +1,5 @@ +package itmo2018.se; + +public interface FileManager { + +} diff --git a/server/src/main/java/itmo2018/se/ListFileManager.java b/server/src/main/java/itmo2018/se/ListFileManager.java new file mode 100644 index 0000000..7f2ef3c --- /dev/null +++ b/server/src/main/java/itmo2018/se/ListFileManager.java @@ -0,0 +1,4 @@ +package itmo2018.se; + +public class ListFileManager implements FileManager { +} diff --git a/server/src/main/java/itmo2018/se/MapClientManager.java b/server/src/main/java/itmo2018/se/MapClientManager.java new file mode 100644 index 0000000..edb44b7 --- /dev/null +++ b/server/src/main/java/itmo2018/se/MapClientManager.java @@ -0,0 +1,38 @@ +package itmo2018.se; + + +import java.nio.channels.SocketChannel; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +public class MapClientManager implements ClientManager { + private Map clients = new HashMap<>(); + + @Override + public ClientProperty getClient(String adress) { + return clients.get(adress); + } + + @Override + public void registerClient(String adress, SocketChannel channel) { + clients.put(adress, new ClientProperty(channel)); + } + + @Override + public void addFiles(String adress, Map> files) { + ClientProperty clientProperty = clients.get(adress); + files.forEach(clientProperty::registerFiles); + } + + @Override + public void unregisterClient(String adress) { + clients.remove(adress); + } + + @Override + public Iterator iterator() { + return clients.values().iterator(); + } +} diff --git a/server/src/main/java/itmo2018/se/Server.java b/server/src/main/java/itmo2018/se/Server.java new file mode 100644 index 0000000..67a5baf --- /dev/null +++ b/server/src/main/java/itmo2018/se/Server.java @@ -0,0 +1,85 @@ +package itmo2018.se; + +import java.io.IOException; +import java.io.InputStream; +import java.net.InetSocketAddress; +import java.net.ServerSocket; +import java.net.Socket; +import java.nio.ByteBuffer; +import java.nio.channels.SelectionKey; +import java.nio.channels.Selector; +import java.nio.channels.ServerSocketChannel; +import java.nio.channels.SocketChannel; +import java.util.Iterator; +import java.util.Set; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +//TODO добавить обработку исключений +public class Server { + public static void main(String[] args) throws IOException { + new Server().run(); + } + + private Selector selector; + private ServerSocketChannel serverSocketChannel; + private ClientManager clientManager = new MapClientManager(); + + public void run() throws IOException { + serverSocketChannel = ServerSocketChannel.open(); + InetSocketAddress socketAddress = new InetSocketAddress("localhost", 8081); + serverSocketChannel.bind(socketAddress); + selector = Selector.open(); + + serverSocketChannel.configureBlocking(false); + serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT); + ExecutorService pool = Executors.newFixedThreadPool(8); + Closer closer = new Closer(clientManager); + pool.submit(closer); + + while (selector.select() > -1) { + Set selectedKeys = selector.selectedKeys(); + Iterator keyIterator = selectedKeys.iterator(); + while (keyIterator.hasNext()) { + SelectionKey key = keyIterator.next(); + if (key.isAcceptable()) { + registerClient(); + } else if (key.isReadable()) { + //TODO catch ClosedChannelException + SocketChannel channel = (SocketChannel) key.channel(); + ByteBuffer buffer = ByteBuffer.allocate(1024); + if (channel.read(buffer) == -1) { + String adress = channel.getRemoteAddress().toString(); + clientManager.unregisterClient(adress); + channel.close(); + System.out.println(adress + " is closed"); + } + buffer.flip(); + ClientDataHolder holder = (ClientDataHolder) key.attachment(); + holder.read(buffer); + while (holder.isReady()) { + //holder.getContent() и отправляю в тредпул + holder.reset(); + holder.read(buffer); + System.out.println("package is ready"); + } + } + keyIterator.remove(); + } + } + pool.shutdownNow(); + } + + private void registerClient() throws IOException { + System.out.println("Clients number:" + selector.keys().size()); + SocketChannel channel = serverSocketChannel.accept(); + + String adress = channel.getRemoteAddress().toString(); + clientManager.registerClient(adress, channel); + + channel.configureBlocking(false); + channel.register(selector, SelectionKey.OP_READ, new ClientDataHolder()); + System.out.println("new client"); + } +} diff --git a/server/src/main/main.iml b/server/src/main/main.iml new file mode 100644 index 0000000..908ad4f --- /dev/null +++ b/server/src/main/main.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file From d180a5b89fb520ee97ac4f7be18bfedb2dc3e4cb Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Mon, 10 Dec 2018 05:06:53 +0300 Subject: [PATCH 04/31] fix data holder --- client/src/main/java/itmo2018/se/Client.java | 1 + .../java/itmo2018/se/ClientDataHolder.java | 26 ++++++++++++++++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/client/src/main/java/itmo2018/se/Client.java b/client/src/main/java/itmo2018/se/Client.java index c927c49..c9989bc 100644 --- a/client/src/main/java/itmo2018/se/Client.java +++ b/client/src/main/java/itmo2018/se/Client.java @@ -17,6 +17,7 @@ public static void main(String[] args) throws IOException, InterruptedException out.writeByte(23); out.writeByte(44); out.flush(); + Thread.sleep(10000); socket.close(); } } diff --git a/server/src/main/java/itmo2018/se/ClientDataHolder.java b/server/src/main/java/itmo2018/se/ClientDataHolder.java index d056af8..3827b52 100644 --- a/server/src/main/java/itmo2018/se/ClientDataHolder.java +++ b/server/src/main/java/itmo2018/se/ClientDataHolder.java @@ -1,18 +1,28 @@ package itmo2018.se; +import com.sun.xml.internal.messaging.saaj.util.ByteInputStream; + import java.io.*; import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.List; public class ClientDataHolder { private byte[] bytes; + private List bytesOfZize = new ArrayList<>(4); private int packageSize = -1; private int currentSize = 0; public void read(ByteBuffer buffer) { - int intSize = 4; - if (packageSize == -1 && buffer.limit() - buffer.position() >= intSize) { - packageSize = buffer.getInt(); - bytes = new byte[packageSize]; + if (packageSize == -1) { + int intSize = 4; + while (buffer.position() < buffer.limit() && bytesOfZize.size() < intSize) { + bytesOfZize.add(buffer.get()); + } + if (bytesOfZize.size() == intSize) { + packageSize = bytesToInt(bytesOfZize); + bytes = new byte[packageSize]; + } } while (buffer.position() < buffer.limit() && currentSize < packageSize) { bytes[currentSize] = buffer.get(); @@ -31,5 +41,13 @@ public InputStream getContent() { public void reset() { packageSize = -1; currentSize = 0; + bytesOfZize = new ArrayList<>(4); + } + + private int bytesToInt(List b) { + if (b.size() != 4) { + return 0; + } + return b.get(0) << 24 | (b.get(1) & 0xff) << 16 | (b.get(2) & 0xff) << 8 | (b.get(3) & 0xff); } } From 82f050183ac01fb83c0836606ef3d2dba36bb5c1 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Tue, 11 Dec 2018 22:17:22 +0300 Subject: [PATCH 05/31] change server structure --- client/src/main/java/itmo2018/se/Client.java | 2 +- .../java/itmo2018/se/ClientDataHolder.java | 22 +++++--- .../src/main/java/itmo2018/se/ClientInfo.java | 52 +++++++++++++++++++ .../main/java/itmo2018/se/ClientManager.java | 15 ------ .../main/java/itmo2018/se/ClientProperty.java | 29 ----------- server/src/main/java/itmo2018/se/Closer.java | 22 +++----- .../src/main/java/itmo2018/se/FileInfo.java | 37 +++++++++++++ .../main/java/itmo2018/se/FileManager.java | 8 ++- .../java/itmo2018/se/ListFileManager.java | 32 ++++++++++++ .../java/itmo2018/se/MapClientManager.java | 38 -------------- server/src/main/java/itmo2018/se/Server.java | 31 ++++++----- 11 files changed, 166 insertions(+), 122 deletions(-) create mode 100644 server/src/main/java/itmo2018/se/ClientInfo.java delete mode 100644 server/src/main/java/itmo2018/se/ClientManager.java delete mode 100644 server/src/main/java/itmo2018/se/ClientProperty.java create mode 100644 server/src/main/java/itmo2018/se/FileInfo.java delete mode 100644 server/src/main/java/itmo2018/se/MapClientManager.java diff --git a/client/src/main/java/itmo2018/se/Client.java b/client/src/main/java/itmo2018/se/Client.java index c9989bc..84b690c 100644 --- a/client/src/main/java/itmo2018/se/Client.java +++ b/client/src/main/java/itmo2018/se/Client.java @@ -8,7 +8,7 @@ public class Client { public static void main(String[] args) throws IOException, InterruptedException { - Socket socket = new Socket("localhost", 8081); + Socket socket = new Socket("127.0.0.1", 8081); DataOutputStream out = new DataOutputStream(socket.getOutputStream()); out.writeInt(1); out.writeByte(10); diff --git a/server/src/main/java/itmo2018/se/ClientDataHolder.java b/server/src/main/java/itmo2018/se/ClientDataHolder.java index 3827b52..742b21d 100644 --- a/server/src/main/java/itmo2018/se/ClientDataHolder.java +++ b/server/src/main/java/itmo2018/se/ClientDataHolder.java @@ -1,18 +1,24 @@ package itmo2018.se; -import com.sun.xml.internal.messaging.saaj.util.ByteInputStream; - import java.io.*; import java.nio.ByteBuffer; import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; +import java.util.Queue; public class ClientDataHolder { - private byte[] bytes; + private byte[] inputContent; + private Queue outputContentQueue = new LinkedList<>(); + private ClientInfo info; private List bytesOfZize = new ArrayList<>(4); private int packageSize = -1; private int currentSize = 0; + public ClientDataHolder(ClientInfo info) { + this.info = info; + } + public void read(ByteBuffer buffer) { if (packageSize == -1) { int intSize = 4; @@ -21,11 +27,11 @@ public void read(ByteBuffer buffer) { } if (bytesOfZize.size() == intSize) { packageSize = bytesToInt(bytesOfZize); - bytes = new byte[packageSize]; + inputContent = new byte[packageSize]; } } while (buffer.position() < buffer.limit() && currentSize < packageSize) { - bytes[currentSize] = buffer.get(); + inputContent[currentSize] = buffer.get(); currentSize++; } } @@ -35,7 +41,7 @@ public boolean isReady() { } public InputStream getContent() { - return new ByteArrayInputStream(bytes); + return new ByteArrayInputStream(inputContent); } public void reset() { @@ -44,6 +50,10 @@ public void reset() { bytesOfZize = new ArrayList<>(4); } + public ClientInfo getInfo() { + return info; + } + private int bytesToInt(List b) { if (b.size() != 4) { return 0; diff --git a/server/src/main/java/itmo2018/se/ClientInfo.java b/server/src/main/java/itmo2018/se/ClientInfo.java new file mode 100644 index 0000000..15f2837 --- /dev/null +++ b/server/src/main/java/itmo2018/se/ClientInfo.java @@ -0,0 +1,52 @@ +package itmo2018.se; + +import java.util.Arrays; +import java.util.Objects; +import java.util.concurrent.Future; + +public class ClientInfo { + private Future closeTask; + private byte[] ip; + private short port; + + public ClientInfo(byte[] ip, short port, Future closeTask) { + this.ip = ip; + this.port = port; + this.closeTask = closeTask; + } + + public byte[] getIp() { + return ip; + } + + public short getPort() { + return port; + } + + public void updateCloseTask(Future newCloseTask) { + closeTask.cancel(false); + closeTask = newCloseTask; + } + + public boolean isOnline() { + return !closeTask.isDone(); + } + + public void disconect() { + closeTask.cancel(false); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ClientInfo that = (ClientInfo) o; + return Arrays.equals(ip, that.ip) && + Objects.equals(port, that.port); + } + + @Override + public int hashCode() { + return Objects.hash(ip, port); + } +} diff --git a/server/src/main/java/itmo2018/se/ClientManager.java b/server/src/main/java/itmo2018/se/ClientManager.java deleted file mode 100644 index 727347c..0000000 --- a/server/src/main/java/itmo2018/se/ClientManager.java +++ /dev/null @@ -1,15 +0,0 @@ -package itmo2018.se; - -import java.nio.channels.SocketChannel; -import java.util.List; -import java.util.Map; - -public interface ClientManager extends Iterable { - ClientProperty getClient(String adress); - - void registerClient(String adress, SocketChannel channel); - - void addFiles(String adress, Map> files); - - void unregisterClient(String adress); -} diff --git a/server/src/main/java/itmo2018/se/ClientProperty.java b/server/src/main/java/itmo2018/se/ClientProperty.java deleted file mode 100644 index 5fe70a7..0000000 --- a/server/src/main/java/itmo2018/se/ClientProperty.java +++ /dev/null @@ -1,29 +0,0 @@ -package itmo2018.se; - -import java.nio.channels.SocketChannel; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class ClientProperty { - private long lastUpdate; - private Map> files; - private SocketChannel channel; - - public ClientProperty(SocketChannel channel) { - this.channel = channel; - this.lastUpdate = System.currentTimeMillis(); - } - - public void registerFiles(String name, List parts) { - files.put(name, parts); - } - - public long lastUpdate() { - return lastUpdate; - } - - public SocketChannel getChannel() { - return channel; - } -} diff --git a/server/src/main/java/itmo2018/se/Closer.java b/server/src/main/java/itmo2018/se/Closer.java index 50923f7..7d5fe4b 100644 --- a/server/src/main/java/itmo2018/se/Closer.java +++ b/server/src/main/java/itmo2018/se/Closer.java @@ -4,27 +4,17 @@ import java.util.concurrent.Callable; public class Closer implements Callable { - private ClientManager clientManager; + private SocketChannel channel; - Closer(ClientManager clientManager) { - this.clientManager = clientManager; + Closer(SocketChannel channel) { + this.channel = channel; } @Override public Void call() throws Exception { //TODO сделать демоном - while (true) { - long currentTime = System.currentTimeMillis(); - for (ClientProperty clientProperty : clientManager) { - long trashTime = 5000; - if (currentTime - clientProperty.lastUpdate() >= trashTime) { - SocketChannel channel = clientProperty.getChannel(); - String adress = channel.getRemoteAddress().toString(); - clientManager.unregisterClient(adress); - channel.close(); - System.out.println(adress + " is interupted"); - } - } - } + System.out.println(channel.getRemoteAddress() + " is interupt"); + channel.close(); + return null; } } diff --git a/server/src/main/java/itmo2018/se/FileInfo.java b/server/src/main/java/itmo2018/se/FileInfo.java new file mode 100644 index 0000000..559f63a --- /dev/null +++ b/server/src/main/java/itmo2018/se/FileInfo.java @@ -0,0 +1,37 @@ +package itmo2018.se; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +public class FileInfo { + private int id; + private String name; + private Map> owners = new HashMap<>(); + + public FileInfo(int id, String name) { + this.id = id; + this.name = name; + } + + public void addOwner(ClientInfo client, List parts) { + owners.put(client, parts); + } + + public void removeOwner(ClientInfo client) { + owners.remove(client); + } + + public int getId() { + return id; + } + + public String getName() { + return name; + } + + public Iterator owners() { + return owners.keySet().iterator(); + } +} diff --git a/server/src/main/java/itmo2018/se/FileManager.java b/server/src/main/java/itmo2018/se/FileManager.java index fc9e7c1..4f4ddb2 100644 --- a/server/src/main/java/itmo2018/se/FileManager.java +++ b/server/src/main/java/itmo2018/se/FileManager.java @@ -1,5 +1,11 @@ package itmo2018.se; -public interface FileManager { +import java.util.List; +public interface FileManager extends Iterable { + FileInfo getFile(int id); + + void registerFile(String name); + + void addOwner(int fileId, ClientInfo client, List parts); } diff --git a/server/src/main/java/itmo2018/se/ListFileManager.java b/server/src/main/java/itmo2018/se/ListFileManager.java index 7f2ef3c..08a9015 100644 --- a/server/src/main/java/itmo2018/se/ListFileManager.java +++ b/server/src/main/java/itmo2018/se/ListFileManager.java @@ -1,4 +1,36 @@ package itmo2018.se; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + public class ListFileManager implements FileManager { + private List files = new ArrayList<>(); + + @Override + public FileInfo getFile(int id) { + FileInfo file = files.get(id); + for (Iterator it = file.owners(); it.hasNext(); ) { + ClientInfo client = it.next(); + if (!client.isOnline()) { + file.removeOwner(client); + } + } + return file; + } + + @Override + public void registerFile(String name) { + files.add(new FileInfo(files.size(), name)); + } + + @Override + public void addOwner(int fileId, ClientInfo client, List parts) { + files.get(fileId).addOwner(client, parts); + } + + @Override + public Iterator iterator() { + return files.iterator(); + } } diff --git a/server/src/main/java/itmo2018/se/MapClientManager.java b/server/src/main/java/itmo2018/se/MapClientManager.java deleted file mode 100644 index edb44b7..0000000 --- a/server/src/main/java/itmo2018/se/MapClientManager.java +++ /dev/null @@ -1,38 +0,0 @@ -package itmo2018.se; - - -import java.nio.channels.SocketChannel; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -public class MapClientManager implements ClientManager { - private Map clients = new HashMap<>(); - - @Override - public ClientProperty getClient(String adress) { - return clients.get(adress); - } - - @Override - public void registerClient(String adress, SocketChannel channel) { - clients.put(adress, new ClientProperty(channel)); - } - - @Override - public void addFiles(String adress, Map> files) { - ClientProperty clientProperty = clients.get(adress); - files.forEach(clientProperty::registerFiles); - } - - @Override - public void unregisterClient(String adress) { - clients.remove(adress); - } - - @Override - public Iterator iterator() { - return clients.values().iterator(); - } -} diff --git a/server/src/main/java/itmo2018/se/Server.java b/server/src/main/java/itmo2018/se/Server.java index 67a5baf..1b620b7 100644 --- a/server/src/main/java/itmo2018/se/Server.java +++ b/server/src/main/java/itmo2018/se/Server.java @@ -1,7 +1,10 @@ package itmo2018.se; +import sun.net.spi.nameservice.dns.DNSNameService; + import java.io.IOException; import java.io.InputStream; +import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; @@ -12,9 +15,7 @@ import java.nio.channels.SocketChannel; import java.util.Iterator; import java.util.Set; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; +import java.util.concurrent.*; //TODO добавить обработку исключений public class Server { @@ -24,19 +25,16 @@ public static void main(String[] args) throws IOException { private Selector selector; private ServerSocketChannel serverSocketChannel; - private ClientManager clientManager = new MapClientManager(); + private ScheduledExecutorService closer = Executors.newScheduledThreadPool(1); public void run() throws IOException { serverSocketChannel = ServerSocketChannel.open(); - InetSocketAddress socketAddress = new InetSocketAddress("localhost", 8081); + InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1", 8081); serverSocketChannel.bind(socketAddress); selector = Selector.open(); serverSocketChannel.configureBlocking(false); serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT); - ExecutorService pool = Executors.newFixedThreadPool(8); - Closer closer = new Closer(clientManager); - pool.submit(closer); while (selector.select() > -1) { Set selectedKeys = selector.selectedKeys(); @@ -48,15 +46,14 @@ public void run() throws IOException { } else if (key.isReadable()) { //TODO catch ClosedChannelException SocketChannel channel = (SocketChannel) key.channel(); + ClientDataHolder holder = (ClientDataHolder) key.attachment(); ByteBuffer buffer = ByteBuffer.allocate(1024); if (channel.read(buffer) == -1) { - String adress = channel.getRemoteAddress().toString(); - clientManager.unregisterClient(adress); + holder.getInfo().disconect(); + System.out.println(channel.getRemoteAddress() + " is closed"); channel.close(); - System.out.println(adress + " is closed"); } buffer.flip(); - ClientDataHolder holder = (ClientDataHolder) key.attachment(); holder.read(buffer); while (holder.isReady()) { //holder.getContent() и отправляю в тредпул @@ -68,18 +65,20 @@ public void run() throws IOException { keyIterator.remove(); } } - pool.shutdownNow(); +// closer.shutdownNow(); } private void registerClient() throws IOException { System.out.println("Clients number:" + selector.keys().size()); SocketChannel channel = serverSocketChannel.accept(); - String adress = channel.getRemoteAddress().toString(); - clientManager.registerClient(adress, channel); + byte[] ip = channel.socket().getInetAddress().getAddress(); + short port = (short) channel.socket().getPort(); + Future closeTask = closer.schedule(new Closer(channel), 5, TimeUnit.SECONDS); + ClientInfo info = new ClientInfo(ip, port, closeTask); channel.configureBlocking(false); - channel.register(selector, SelectionKey.OP_READ, new ClientDataHolder()); + channel.register(selector, SelectionKey.OP_READ, new ClientDataHolder(info)); System.out.println("new client"); } } From fbc5d6f2a0145cef72e61d1fc88cfcfcd45e98fd Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Wed, 12 Dec 2018 00:16:26 +0300 Subject: [PATCH 06/31] add update command --- client/src/main/java/itmo2018/se/Client.java | 42 +++++++++-- .../java/itmo2018/se/ClientDataHolder.java | 31 ++++---- .../src/main/java/itmo2018/se/ClientInfo.java | 41 +++++++++-- server/src/main/java/itmo2018/se/Closer.java | 20 ------ .../src/main/java/itmo2018/se/Executor.java | 70 +++++++++++++------ .../src/main/java/itmo2018/se/FileInfo.java | 17 ++--- .../main/java/itmo2018/se/FileManager.java | 2 +- .../java/itmo2018/se/ListFileManager.java | 6 +- server/src/main/java/itmo2018/se/Server.java | 21 +++--- 9 files changed, 155 insertions(+), 95 deletions(-) delete mode 100644 server/src/main/java/itmo2018/se/Closer.java diff --git a/client/src/main/java/itmo2018/se/Client.java b/client/src/main/java/itmo2018/se/Client.java index 84b690c..13d4a02 100644 --- a/client/src/main/java/itmo2018/se/Client.java +++ b/client/src/main/java/itmo2018/se/Client.java @@ -5,19 +5,47 @@ import java.io.*; import java.net.Socket; import java.nio.ByteBuffer; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; public class Client { public static void main(String[] args) throws IOException, InterruptedException { Socket socket = new Socket("127.0.0.1", 8081); DataOutputStream out = new DataOutputStream(socket.getOutputStream()); - out.writeInt(1); - out.writeByte(10); + System.out.println(socket.getLocalSocketAddress()); + Thread.sleep(4000); + out.writeInt(7); + out.writeByte(4); + out.writeShort(0); + out.writeInt(0); out.flush(); - out.writeInt(2); - out.writeByte(23); - out.writeByte(44); + Thread.sleep(4000); + out.writeInt(7); + out.writeByte(4); + out.writeShort(0); + out.writeInt(0); out.flush(); - Thread.sleep(10000); - socket.close(); + Thread.sleep(15000); +// socket.close(); +// ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1); +// executorService.schedule(new A(), 10, TimeUnit.SECONDS); +// executorService.schedule(new B(), 5, TimeUnit.SECONDS); } } + +//class A implements Runnable { +// +// @Override +// public void run() { +// System.out.println("A"); +// } +//} +// +//class B implements Runnable { +// +// @Override +// public void run() { +// System.out.println("B"); +// } +//} \ No newline at end of file diff --git a/server/src/main/java/itmo2018/se/ClientDataHolder.java b/server/src/main/java/itmo2018/se/ClientDataHolder.java index 742b21d..ed63ed5 100644 --- a/server/src/main/java/itmo2018/se/ClientDataHolder.java +++ b/server/src/main/java/itmo2018/se/ClientDataHolder.java @@ -8,15 +8,16 @@ import java.util.Queue; public class ClientDataHolder { - private byte[] inputContent; - private Queue outputContentQueue = new LinkedList<>(); - private ClientInfo info; + private byte[] request; + private Queue responseQueue = new LinkedList<>(); + private ClientInfo clientInfo; + private List bytesOfZize = new ArrayList<>(4); private int packageSize = -1; private int currentSize = 0; - public ClientDataHolder(ClientInfo info) { - this.info = info; + public ClientDataHolder(ClientInfo clientInfo) { + this.clientInfo = clientInfo; } public void read(ByteBuffer buffer) { @@ -27,31 +28,35 @@ public void read(ByteBuffer buffer) { } if (bytesOfZize.size() == intSize) { packageSize = bytesToInt(bytesOfZize); - inputContent = new byte[packageSize]; + request = new byte[packageSize]; } } while (buffer.position() < buffer.limit() && currentSize < packageSize) { - inputContent[currentSize] = buffer.get(); + request[currentSize] = buffer.get(); currentSize++; } } - public boolean isReady() { + public boolean requestIsReady() { return packageSize == currentSize; } - public InputStream getContent() { - return new ByteArrayInputStream(inputContent); + public byte[] getRequest() { + return request; } - public void reset() { + public void resetRequest() { packageSize = -1; currentSize = 0; bytesOfZize = new ArrayList<>(4); } - public ClientInfo getInfo() { - return info; + public ClientInfo getClientInfo() { + return clientInfo; + } + + public void addResponse(ByteBuffer response) { + responseQueue.add(response); } private int bytesToInt(List b) { diff --git a/server/src/main/java/itmo2018/se/ClientInfo.java b/server/src/main/java/itmo2018/se/ClientInfo.java index 15f2837..09ad81a 100644 --- a/server/src/main/java/itmo2018/se/ClientInfo.java +++ b/server/src/main/java/itmo2018/se/ClientInfo.java @@ -1,18 +1,29 @@ package itmo2018.se; +import com.sun.istack.internal.Nullable; + +import java.nio.channels.SocketChannel; import java.util.Arrays; import java.util.Objects; +import java.util.concurrent.Callable; import java.util.concurrent.Future; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; public class ClientInfo { private Future closeTask; private byte[] ip; private short port; + private short sharingPort; + private ScheduledExecutorService closeScheduled; + private SocketChannel channel; - public ClientInfo(byte[] ip, short port, Future closeTask) { + public ClientInfo(byte[] ip, short port, SocketChannel channel, ScheduledExecutorService closeScheduled) { this.ip = ip; this.port = port; - this.closeTask = closeTask; + this.channel = channel; + this.closeScheduled = closeScheduled; + closeTask = startTimer(); } public byte[] getIp() { @@ -23,9 +34,9 @@ public short getPort() { return port; } - public void updateCloseTask(Future newCloseTask) { + public void updateCloseTask() { closeTask.cancel(false); - closeTask = newCloseTask; + closeTask = startTimer(); } public boolean isOnline() { @@ -36,6 +47,15 @@ public void disconect() { closeTask.cancel(false); } + @Nullable + public short getSharingPort() { + return sharingPort; + } + + public void updateSharingPort(short port) { + this.sharingPort = port; + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -49,4 +69,17 @@ public boolean equals(Object o) { public int hashCode() { return Objects.hash(ip, port); } + + private Future startTimer() { + return closeScheduled.schedule(new Closer(), 5, TimeUnit.SECONDS); + } + + private class Closer implements Callable { + @Override + public Void call() throws Exception { + System.out.println(channel.getRemoteAddress() + " is interupt"); + channel.close(); + return null; + } + } } diff --git a/server/src/main/java/itmo2018/se/Closer.java b/server/src/main/java/itmo2018/se/Closer.java deleted file mode 100644 index 7d5fe4b..0000000 --- a/server/src/main/java/itmo2018/se/Closer.java +++ /dev/null @@ -1,20 +0,0 @@ -package itmo2018.se; - -import java.nio.channels.SocketChannel; -import java.util.concurrent.Callable; - -public class Closer implements Callable { - private SocketChannel channel; - - Closer(SocketChannel channel) { - this.channel = channel; - } - - @Override - public Void call() throws Exception { - //TODO сделать демоном - System.out.println(channel.getRemoteAddress() + " is interupt"); - channel.close(); - return null; - } -} diff --git a/server/src/main/java/itmo2018/se/Executor.java b/server/src/main/java/itmo2018/se/Executor.java index a38d0a1..324ab8c 100644 --- a/server/src/main/java/itmo2018/se/Executor.java +++ b/server/src/main/java/itmo2018/se/Executor.java @@ -1,23 +1,47 @@ -//package itmo2018.se; -// -//import java.io.ByteArrayInputStream; -//import java.io.DataInputStream; -//import java.io.DataOutputStream; -//import java.util.concurrent.Callable; -// -//public class Executor implements Callable { -// private DataInputStream content; -// -// public Executor(byte[] bytes) { -// this.content = new DataInputStream(new ByteArrayInputStream(bytes)); -// } -// -// @Override -// public Void call() throws Exception { -// byte cmd = content.readByte(); -// switch (cmd) { -// case 4: -// -// } -// } -//} +package itmo2018.se; + +import java.io.ByteArrayInputStream; +import java.io.DataInputStream; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.concurrent.Callable; + +public class Executor implements Callable { + private DataInputStream content; + private ClientDataHolder holder; + private FileManager fileManager; + + public Executor(byte[] bytes, ClientDataHolder holder, FileManager fileManager) { + this.content = new DataInputStream(new ByteArrayInputStream(bytes)); + this.holder = holder; + this.fileManager = fileManager; + } + + @Override + public Void call() throws Exception { + byte cmd = content.readByte(); + switch (cmd) { + case 4: + executeUpdate(); + break; + } + return null; + } + + private void executeUpdate() throws IOException { + System.out.println("update"); + ClientInfo client = holder.getClientInfo(); + client.updateCloseTask(); + short port = content.readShort(); + client.updateSharingPort(port); + int count = content.readInt(); + for (int i = 0; i < count; i++) { + int fileId = content.readInt(); + fileManager.getFile(fileId).addOwner(client); + } + ByteBuffer response = ByteBuffer.allocate(1); + response.put((byte) 1); + response.flip(); + holder.addResponse(response); + } +} diff --git a/server/src/main/java/itmo2018/se/FileInfo.java b/server/src/main/java/itmo2018/se/FileInfo.java index 559f63a..f16436c 100644 --- a/server/src/main/java/itmo2018/se/FileInfo.java +++ b/server/src/main/java/itmo2018/se/FileInfo.java @@ -1,26 +1,19 @@ package itmo2018.se; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import java.util.*; public class FileInfo { private int id; private String name; - private Map> owners = new HashMap<>(); + private Set owners = new HashSet<>(); public FileInfo(int id, String name) { this.id = id; this.name = name; } - public void addOwner(ClientInfo client, List parts) { - owners.put(client, parts); - } - - public void removeOwner(ClientInfo client) { - owners.remove(client); + public void addOwner(ClientInfo client) { + owners.add(client); } public int getId() { @@ -32,6 +25,6 @@ public String getName() { } public Iterator owners() { - return owners.keySet().iterator(); + return owners.iterator(); } } diff --git a/server/src/main/java/itmo2018/se/FileManager.java b/server/src/main/java/itmo2018/se/FileManager.java index 4f4ddb2..3ee4274 100644 --- a/server/src/main/java/itmo2018/se/FileManager.java +++ b/server/src/main/java/itmo2018/se/FileManager.java @@ -7,5 +7,5 @@ public interface FileManager extends Iterable { void registerFile(String name); - void addOwner(int fileId, ClientInfo client, List parts); + void addOwner(int fileId, ClientInfo client); } diff --git a/server/src/main/java/itmo2018/se/ListFileManager.java b/server/src/main/java/itmo2018/se/ListFileManager.java index 08a9015..3f82bac 100644 --- a/server/src/main/java/itmo2018/se/ListFileManager.java +++ b/server/src/main/java/itmo2018/se/ListFileManager.java @@ -13,7 +13,7 @@ public FileInfo getFile(int id) { for (Iterator it = file.owners(); it.hasNext(); ) { ClientInfo client = it.next(); if (!client.isOnline()) { - file.removeOwner(client); + it.remove(); } } return file; @@ -25,8 +25,8 @@ public void registerFile(String name) { } @Override - public void addOwner(int fileId, ClientInfo client, List parts) { - files.get(fileId).addOwner(client, parts); + public void addOwner(int fileId, ClientInfo client) { + files.get(fileId).addOwner(client); } @Override diff --git a/server/src/main/java/itmo2018/se/Server.java b/server/src/main/java/itmo2018/se/Server.java index 1b620b7..ead44fd 100644 --- a/server/src/main/java/itmo2018/se/Server.java +++ b/server/src/main/java/itmo2018/se/Server.java @@ -1,13 +1,7 @@ package itmo2018.se; -import sun.net.spi.nameservice.dns.DNSNameService; - import java.io.IOException; -import java.io.InputStream; -import java.net.InetAddress; import java.net.InetSocketAddress; -import java.net.ServerSocket; -import java.net.Socket; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; @@ -26,6 +20,7 @@ public static void main(String[] args) throws IOException { private Selector selector; private ServerSocketChannel serverSocketChannel; private ScheduledExecutorService closer = Executors.newScheduledThreadPool(1); + private FileManager fileManager = new ListFileManager(); public void run() throws IOException { serverSocketChannel = ServerSocketChannel.open(); @@ -35,6 +30,7 @@ public void run() throws IOException { serverSocketChannel.configureBlocking(false); serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT); + ExecutorService pool = Executors.newFixedThreadPool(8); while (selector.select() > -1) { Set selectedKeys = selector.selectedKeys(); @@ -49,15 +45,15 @@ public void run() throws IOException { ClientDataHolder holder = (ClientDataHolder) key.attachment(); ByteBuffer buffer = ByteBuffer.allocate(1024); if (channel.read(buffer) == -1) { - holder.getInfo().disconect(); + holder.getClientInfo().disconect(); System.out.println(channel.getRemoteAddress() + " is closed"); channel.close(); } buffer.flip(); holder.read(buffer); - while (holder.isReady()) { - //holder.getContent() и отправляю в тредпул - holder.reset(); + while (holder.requestIsReady()) { + pool.submit(new Executor(holder.getRequest(), holder, fileManager)); + holder.resetRequest(); holder.read(buffer); System.out.println("package is ready"); } @@ -74,8 +70,9 @@ private void registerClient() throws IOException { byte[] ip = channel.socket().getInetAddress().getAddress(); short port = (short) channel.socket().getPort(); - Future closeTask = closer.schedule(new Closer(channel), 5, TimeUnit.SECONDS); - ClientInfo info = new ClientInfo(ip, port, closeTask); + ClientInfo info = new ClientInfo(ip, port, channel, closer); + + System.out.println(channel.socket().getLocalSocketAddress()); channel.configureBlocking(false); channel.register(selector, SelectionKey.OP_READ, new ClientDataHolder(info)); From f1f3943ea1f1315561f95aff82581addfffdfe9b Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Wed, 12 Dec 2018 01:21:36 +0300 Subject: [PATCH 07/31] add server request processing --- client/src/main/java/itmo2018/se/Client.java | 18 +++++ .../src/main/java/itmo2018/se/Executor.java | 68 ++++++++++++++++++- .../src/main/java/itmo2018/se/FileInfo.java | 12 +++- .../main/java/itmo2018/se/FileManager.java | 4 +- .../java/itmo2018/se/ListFileManager.java | 11 ++- 5 files changed, 106 insertions(+), 7 deletions(-) diff --git a/client/src/main/java/itmo2018/se/Client.java b/client/src/main/java/itmo2018/se/Client.java index 13d4a02..adc7d2b 100644 --- a/client/src/main/java/itmo2018/se/Client.java +++ b/client/src/main/java/itmo2018/se/Client.java @@ -12,21 +12,39 @@ public class Client { public static void main(String[] args) throws IOException, InterruptedException { Socket socket = new Socket("127.0.0.1", 8081); + ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(); + DataOutputStream byteDataOut = new DataOutputStream(byteOutput); + + DataOutputStream out = new DataOutputStream(socket.getOutputStream()); System.out.println(socket.getLocalSocketAddress()); Thread.sleep(4000); + byteDataOut.writeByte(2); + byteDataOut.writeUTF("name"); + byteDataOut.writeLong(191); + System.out.println(byteDataOut.size()); + System.out.println(byteOutput.size()); + out.writeInt(byteDataOut.size()); + out.write(byteOutput.toByteArray()); + out.flush(); out.writeInt(7); out.writeByte(4); out.writeShort(0); out.writeInt(0); out.flush(); Thread.sleep(4000); + out.writeInt(1); + out.writeByte(1); out.writeInt(7); out.writeByte(4); out.writeShort(0); out.writeInt(0); out.flush(); + out.writeInt(5); + out.writeByte(3); + out.writeInt(0); Thread.sleep(15000); + // socket.close(); // ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1); // executorService.schedule(new A(), 10, TimeUnit.SECONDS); diff --git a/server/src/main/java/itmo2018/se/Executor.java b/server/src/main/java/itmo2018/se/Executor.java index 324ab8c..adb673c 100644 --- a/server/src/main/java/itmo2018/se/Executor.java +++ b/server/src/main/java/itmo2018/se/Executor.java @@ -1,9 +1,10 @@ package itmo2018.se; -import java.io.ByteArrayInputStream; -import java.io.DataInputStream; -import java.io.IOException; +import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream; + +import java.io.*; import java.nio.ByteBuffer; +import java.util.Iterator; import java.util.concurrent.Callable; public class Executor implements Callable { @@ -21,6 +22,15 @@ public Executor(byte[] bytes, ClientDataHolder holder, FileManager fileManager) public Void call() throws Exception { byte cmd = content.readByte(); switch (cmd) { + case 1: + executeList(); + break; + case 2: + executeUpload(); + break; + case 3: + executeSources(); + break; case 4: executeUpdate(); break; @@ -28,8 +38,59 @@ public Void call() throws Exception { return null; } + private void executeList() throws IOException { + System.out.println("list"); + + ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(byteStream); + out.writeInt(fileManager.filesNumber()); + for (FileInfo file : fileManager) { + out.writeInt(file.getId()); + out.writeUTF(file.getName()); + out.writeLong(file.getSize()); + } + + ByteBuffer response = ByteBuffer.allocate(out.size()); + response.put(byteStream.toByteArray()); + response.flip(); + holder.addResponse(response); + } + + private void executeUpload() throws IOException { + System.out.println("upload"); + + String name = content.readUTF(); + long size = content.readLong(); + + System.out.println(name + " " + size); + int id = fileManager.registerFile(name, size); + + ByteBuffer response = ByteBuffer.allocate(4); + response.putInt(id); + response.flip(); + holder.addResponse(response); + } + + private void executeSources() throws IOException { + System.out.println("sources"); + + int id = content.readInt(); + + FileInfo file = fileManager.getFile(id); + ByteBuffer response = ByteBuffer.allocate(4 + file.ownersNumber() * (4 + 2)); + response.putInt(file.ownersNumber()); + for (Iterator it = file.owners(); it.hasNext(); ) { + ClientInfo client = it.next(); + response.put(client.getIp()); + response.putShort(client.getPort()); + } + response.flip(); + holder.addResponse(response); + } + private void executeUpdate() throws IOException { System.out.println("update"); + ClientInfo client = holder.getClientInfo(); client.updateCloseTask(); short port = content.readShort(); @@ -39,6 +100,7 @@ private void executeUpdate() throws IOException { int fileId = content.readInt(); fileManager.getFile(fileId).addOwner(client); } + ByteBuffer response = ByteBuffer.allocate(1); response.put((byte) 1); response.flip(); diff --git a/server/src/main/java/itmo2018/se/FileInfo.java b/server/src/main/java/itmo2018/se/FileInfo.java index f16436c..4e9ac85 100644 --- a/server/src/main/java/itmo2018/se/FileInfo.java +++ b/server/src/main/java/itmo2018/se/FileInfo.java @@ -5,11 +5,13 @@ public class FileInfo { private int id; private String name; + private long size; private Set owners = new HashSet<>(); - public FileInfo(int id, String name) { + public FileInfo(int id, String name, long size) { this.id = id; this.name = name; + this.size = size; } public void addOwner(ClientInfo client) { @@ -24,6 +26,14 @@ public String getName() { return name; } + public long getSize() { + return size; + } + + public int ownersNumber() { + return owners.size(); + } + public Iterator owners() { return owners.iterator(); } diff --git a/server/src/main/java/itmo2018/se/FileManager.java b/server/src/main/java/itmo2018/se/FileManager.java index 3ee4274..f8e4217 100644 --- a/server/src/main/java/itmo2018/se/FileManager.java +++ b/server/src/main/java/itmo2018/se/FileManager.java @@ -5,7 +5,9 @@ public interface FileManager extends Iterable { FileInfo getFile(int id); - void registerFile(String name); + int registerFile(String name, long size); void addOwner(int fileId, ClientInfo client); + + int filesNumber(); } diff --git a/server/src/main/java/itmo2018/se/ListFileManager.java b/server/src/main/java/itmo2018/se/ListFileManager.java index 3f82bac..fec9f6d 100644 --- a/server/src/main/java/itmo2018/se/ListFileManager.java +++ b/server/src/main/java/itmo2018/se/ListFileManager.java @@ -20,8 +20,10 @@ public FileInfo getFile(int id) { } @Override - public void registerFile(String name) { - files.add(new FileInfo(files.size(), name)); + public int registerFile(String name, long size) { + int id = files.size(); + files.add(new FileInfo(files.size(), name, size)); + return id; } @Override @@ -29,6 +31,11 @@ public void addOwner(int fileId, ClientInfo client) { files.get(fileId).addOwner(client); } + @Override + public int filesNumber() { + return files.size(); + } + @Override public Iterator iterator() { return files.iterator(); From 3c28b89e4516bfc6d8914111b8fdb542cf247a2c Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Wed, 12 Dec 2018 04:29:57 +0300 Subject: [PATCH 08/31] server can send responce --- client/src/main/java/itmo2018/se/Client.java | 62 ++++++++++--------- .../java/itmo2018/se/ClientDataHolder.java | 7 ++- .../src/main/java/itmo2018/se/ClientInfo.java | 12 ++-- .../src/main/java/itmo2018/se/Executor.java | 10 ++- server/src/main/java/itmo2018/se/Server.java | 10 ++- server/src/main/java/itmo2018/se/Writer.java | 60 ++++++++++++++++++ 6 files changed, 123 insertions(+), 38 deletions(-) create mode 100644 server/src/main/java/itmo2018/se/Writer.java diff --git a/client/src/main/java/itmo2018/se/Client.java b/client/src/main/java/itmo2018/se/Client.java index adc7d2b..87a2926 100644 --- a/client/src/main/java/itmo2018/se/Client.java +++ b/client/src/main/java/itmo2018/se/Client.java @@ -1,49 +1,55 @@ package itmo2018.se; -import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream; - import java.io.*; import java.net.Socket; -import java.nio.ByteBuffer; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; + public class Client { public static void main(String[] args) throws IOException, InterruptedException { Socket socket = new Socket("127.0.0.1", 8081); ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(); DataOutputStream byteDataOut = new DataOutputStream(byteOutput); - - DataOutputStream out = new DataOutputStream(socket.getOutputStream()); - System.out.println(socket.getLocalSocketAddress()); + DataInputStream in = new DataInputStream(socket.getInputStream()); +// InputStream in = socket.getInputStream(); Thread.sleep(4000); + //upload byteDataOut.writeByte(2); byteDataOut.writeUTF("name"); byteDataOut.writeLong(191); - System.out.println(byteDataOut.size()); - System.out.println(byteOutput.size()); out.writeInt(byteDataOut.size()); out.write(byteOutput.toByteArray()); out.flush(); - out.writeInt(7); - out.writeByte(4); - out.writeShort(0); - out.writeInt(0); - out.flush(); - Thread.sleep(4000); - out.writeInt(1); - out.writeByte(1); - out.writeInt(7); - out.writeByte(4); - out.writeShort(0); - out.writeInt(0); - out.flush(); - out.writeInt(5); - out.writeByte(3); - out.writeInt(0); - Thread.sleep(15000); + //=============== + System.out.println(in.readInt()); + //update +// out.writeInt(7); +// out.writeByte(4); +// out.writeShort(0); +// out.writeInt(0); +// //================= +// +// //sources +// out.writeInt(5); +// out.writeByte(3); +// out.writeInt(0); +// out.flush(); +// //================= +// +// Thread.sleep(4000); +// //update +// out.writeInt(7); +// out.writeByte(4); +// out.writeShort(0); +// out.writeInt(0); +// out.flush(); +// //============= +// +// //list +// out.writeInt(1); +// out.writeByte(1); +// //============== +// Thread.sleep(15000); // socket.close(); // ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1); diff --git a/server/src/main/java/itmo2018/se/ClientDataHolder.java b/server/src/main/java/itmo2018/se/ClientDataHolder.java index ed63ed5..7792081 100644 --- a/server/src/main/java/itmo2018/se/ClientDataHolder.java +++ b/server/src/main/java/itmo2018/se/ClientDataHolder.java @@ -6,10 +6,11 @@ import java.util.LinkedList; import java.util.List; import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedQueue; public class ClientDataHolder { private byte[] request; - private Queue responseQueue = new LinkedList<>(); + private Queue responseQueue = new ConcurrentLinkedQueue<>(); private ClientInfo clientInfo; private List bytesOfZize = new ArrayList<>(4); @@ -59,6 +60,10 @@ public void addResponse(ByteBuffer response) { responseQueue.add(response); } + public ByteBuffer getResponse() { + return responseQueue.poll(); + } + private int bytesToInt(List b) { if (b.size() != 4) { return 0; diff --git a/server/src/main/java/itmo2018/se/ClientInfo.java b/server/src/main/java/itmo2018/se/ClientInfo.java index 09ad81a..93e9b70 100644 --- a/server/src/main/java/itmo2018/se/ClientInfo.java +++ b/server/src/main/java/itmo2018/se/ClientInfo.java @@ -43,9 +43,9 @@ public boolean isOnline() { return !closeTask.isDone(); } - public void disconect() { - closeTask.cancel(false); - } +// public void disconect() { +// closeTask.cancel(false); +// } @Nullable public short getSharingPort() { @@ -65,13 +65,17 @@ public boolean equals(Object o) { Objects.equals(port, that.port); } + public SocketChannel getChannel() { + return channel; + } + @Override public int hashCode() { return Objects.hash(ip, port); } private Future startTimer() { - return closeScheduled.schedule(new Closer(), 5, TimeUnit.SECONDS); + return closeScheduled.schedule(new Closer(), 5, TimeUnit.MINUTES); } private class Closer implements Callable { diff --git a/server/src/main/java/itmo2018/se/Executor.java b/server/src/main/java/itmo2018/se/Executor.java index adb673c..3c1c96e 100644 --- a/server/src/main/java/itmo2018/se/Executor.java +++ b/server/src/main/java/itmo2018/se/Executor.java @@ -1,7 +1,5 @@ package itmo2018.se; -import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream; - import java.io.*; import java.nio.ByteBuffer; import java.util.Iterator; @@ -11,11 +9,13 @@ public class Executor implements Callable { private DataInputStream content; private ClientDataHolder holder; private FileManager fileManager; + private Writer writer; - public Executor(byte[] bytes, ClientDataHolder holder, FileManager fileManager) { + public Executor(byte[] bytes, ClientDataHolder holder, FileManager fileManager, Writer writer) { this.content = new DataInputStream(new ByteArrayInputStream(bytes)); this.holder = holder; this.fileManager = fileManager; + this.writer = writer; } @Override @@ -35,6 +35,10 @@ public Void call() throws Exception { executeUpdate(); break; } +// writer.wakeup(); +// holder.getClientInfo().getChannel().register(writer, SelectionKey.OP_WRITE, holder); + writer.addDataToQueue(holder); + writer.getSelector().wakeup(); return null; } diff --git a/server/src/main/java/itmo2018/se/Server.java b/server/src/main/java/itmo2018/se/Server.java index ead44fd..3bc8bfe 100644 --- a/server/src/main/java/itmo2018/se/Server.java +++ b/server/src/main/java/itmo2018/se/Server.java @@ -8,6 +8,7 @@ import java.nio.channels.ServerSocketChannel; import java.nio.channels.SocketChannel; import java.util.Iterator; +import java.util.Queue; import java.util.Set; import java.util.concurrent.*; @@ -27,6 +28,11 @@ public void run() throws IOException { InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1", 8081); serverSocketChannel.bind(socketAddress); selector = Selector.open(); + Selector writerSelector = Selector.open(); + Writer writer = new Writer(writerSelector); + Thread writerThread = new Thread(writer); + writerThread.setDaemon(true); + writerThread.start(); serverSocketChannel.configureBlocking(false); serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT); @@ -45,14 +51,14 @@ public void run() throws IOException { ClientDataHolder holder = (ClientDataHolder) key.attachment(); ByteBuffer buffer = ByteBuffer.allocate(1024); if (channel.read(buffer) == -1) { - holder.getClientInfo().disconect(); +// holder.getClientInfo().disconect(); System.out.println(channel.getRemoteAddress() + " is closed"); channel.close(); } buffer.flip(); holder.read(buffer); while (holder.requestIsReady()) { - pool.submit(new Executor(holder.getRequest(), holder, fileManager)); + pool.submit(new Executor(holder.getRequest(), holder, fileManager, writer)); holder.resetRequest(); holder.read(buffer); System.out.println("package is ready"); diff --git a/server/src/main/java/itmo2018/se/Writer.java b/server/src/main/java/itmo2018/se/Writer.java new file mode 100644 index 0000000..7454d03 --- /dev/null +++ b/server/src/main/java/itmo2018/se/Writer.java @@ -0,0 +1,60 @@ +package itmo2018.se; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.SelectionKey; +import java.nio.channels.Selector; +import java.nio.channels.SocketChannel; +import java.util.Iterator; +import java.util.Queue; +import java.util.Set; +import java.util.concurrent.ConcurrentLinkedQueue; + +public class Writer implements Runnable { + private Selector selector; + private Queue dataQueue = new ConcurrentLinkedQueue<>(); + + public Writer(Selector selector) { + this.selector = selector; + } + + public void addDataToQueue(ClientDataHolder data) { + dataQueue.add(data); + } + + public Selector getSelector() { + return selector; + } + + @Override + public void run() { + try { + while (selector.select() > -1) { + //исправить на случай многократного чтения + if (dataQueue.size() > 0) { + ClientDataHolder data = dataQueue.poll(); + data.getClientInfo().getChannel().register(selector, SelectionKey.OP_WRITE, data); + } + Set selectedKeys = selector.selectedKeys(); + Iterator keyIterator = selectedKeys.iterator(); + while (keyIterator.hasNext()) { + SelectionKey key = keyIterator.next(); + if (key.isWritable()) { + SocketChannel channel = (SocketChannel) key.channel(); + ClientDataHolder responceQueue = (ClientDataHolder) key.attachment(); + ByteBuffer responce = responceQueue.getResponse(); + if (responce != null) { + System.out.println("Send responce!!!!"); + channel.write(responce); + } else { + key.cancel(); + } + } + keyIterator.remove(); + } + } + } catch (IOException e) { + e.printStackTrace(); + } + } +} From abc5df9f03f0aa5ad1bfd2d391d878d6f44d0a12 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Wed, 12 Dec 2018 15:19:43 +0300 Subject: [PATCH 09/31] writer minor fix --- .../src/main/java/itmo2018/se/Executor.java | 34 +++++++++---------- server/src/main/java/itmo2018/se/Writer.java | 16 ++++----- 2 files changed, 23 insertions(+), 27 deletions(-) diff --git a/server/src/main/java/itmo2018/se/Executor.java b/server/src/main/java/itmo2018/se/Executor.java index 3c1c96e..04fc8d2 100644 --- a/server/src/main/java/itmo2018/se/Executor.java +++ b/server/src/main/java/itmo2018/se/Executor.java @@ -7,13 +7,13 @@ public class Executor implements Callable { private DataInputStream content; - private ClientDataHolder holder; + private ClientDataHolder client; private FileManager fileManager; private Writer writer; - public Executor(byte[] bytes, ClientDataHolder holder, FileManager fileManager, Writer writer) { + public Executor(byte[] bytes, ClientDataHolder client, FileManager fileManager, Writer writer) { this.content = new DataInputStream(new ByteArrayInputStream(bytes)); - this.holder = holder; + this.client = client; this.fileManager = fileManager; this.writer = writer; } @@ -35,10 +35,8 @@ public Void call() throws Exception { executeUpdate(); break; } -// writer.wakeup(); -// holder.getClientInfo().getChannel().register(writer, SelectionKey.OP_WRITE, holder); - writer.addDataToQueue(holder); - writer.getSelector().wakeup(); + //TODO переименовать dataQueue везде!!!! + writer.registerClient(client); return null; } @@ -57,7 +55,7 @@ private void executeList() throws IOException { ByteBuffer response = ByteBuffer.allocate(out.size()); response.put(byteStream.toByteArray()); response.flip(); - holder.addResponse(response); + client.addResponse(response); } private void executeUpload() throws IOException { @@ -72,7 +70,7 @@ private void executeUpload() throws IOException { ByteBuffer response = ByteBuffer.allocate(4); response.putInt(id); response.flip(); - holder.addResponse(response); + client.addResponse(response); } private void executeSources() throws IOException { @@ -84,30 +82,30 @@ private void executeSources() throws IOException { ByteBuffer response = ByteBuffer.allocate(4 + file.ownersNumber() * (4 + 2)); response.putInt(file.ownersNumber()); for (Iterator it = file.owners(); it.hasNext(); ) { - ClientInfo client = it.next(); - response.put(client.getIp()); - response.putShort(client.getPort()); + ClientInfo clientInfo = it.next(); + response.put(clientInfo.getIp()); + response.putShort(clientInfo.getPort()); } response.flip(); - holder.addResponse(response); + client.addResponse(response); } private void executeUpdate() throws IOException { System.out.println("update"); - ClientInfo client = holder.getClientInfo(); - client.updateCloseTask(); + ClientInfo clientInfo = client.getClientInfo(); + clientInfo.updateCloseTask(); short port = content.readShort(); - client.updateSharingPort(port); + clientInfo.updateSharingPort(port); int count = content.readInt(); for (int i = 0; i < count; i++) { int fileId = content.readInt(); - fileManager.getFile(fileId).addOwner(client); + fileManager.getFile(fileId).addOwner(clientInfo); } ByteBuffer response = ByteBuffer.allocate(1); response.put((byte) 1); response.flip(); - holder.addResponse(response); + client.addResponse(response); } } diff --git a/server/src/main/java/itmo2018/se/Writer.java b/server/src/main/java/itmo2018/se/Writer.java index 7454d03..fc52d2d 100644 --- a/server/src/main/java/itmo2018/se/Writer.java +++ b/server/src/main/java/itmo2018/se/Writer.java @@ -12,18 +12,15 @@ public class Writer implements Runnable { private Selector selector; - private Queue dataQueue = new ConcurrentLinkedQueue<>(); + private Queue clientQueue = new ConcurrentLinkedQueue<>(); public Writer(Selector selector) { this.selector = selector; } - public void addDataToQueue(ClientDataHolder data) { - dataQueue.add(data); - } - - public Selector getSelector() { - return selector; + public void registerClient(ClientDataHolder client) { + clientQueue.add(client); + selector.wakeup(); } @Override @@ -31,9 +28,10 @@ public void run() { try { while (selector.select() > -1) { //исправить на случай многократного чтения - if (dataQueue.size() > 0) { - ClientDataHolder data = dataQueue.poll(); + if (clientQueue.size() > 0) { + ClientDataHolder data = clientQueue.poll(); data.getClientInfo().getChannel().register(selector, SelectionKey.OP_WRITE, data); + continue; } Set selectedKeys = selector.selectedKeys(); Iterator keyIterator = selectedKeys.iterator(); From ab0bcc1be6ae6a39bf1ea042dcdc2bfbfb2b3e75 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Wed, 12 Dec 2018 18:46:37 +0300 Subject: [PATCH 10/31] slightly extend client --- client/src/main/java/itmo2018/se/Client.java | 129 +++++++++++++----- client/src/main/java/itmo2018/se/Updater.java | 32 +++++ .../src/main/java/itmo2018/se/ClientInfo.java | 6 +- server/src/main/java/itmo2018/se/Server.java | 1 - server/src/main/java/itmo2018/se/Writer.java | 2 +- 5 files changed, 130 insertions(+), 40 deletions(-) create mode 100644 client/src/main/java/itmo2018/se/Updater.java diff --git a/client/src/main/java/itmo2018/se/Client.java b/client/src/main/java/itmo2018/se/Client.java index 87a2926..2724fb2 100644 --- a/client/src/main/java/itmo2018/se/Client.java +++ b/client/src/main/java/itmo2018/se/Client.java @@ -2,26 +2,68 @@ import java.io.*; import java.net.Socket; +import java.util.Scanner; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; public class Client { public static void main(String[] args) throws IOException, InterruptedException { + new Client().run(); + } + + public void run() throws IOException, InterruptedException { Socket socket = new Socket("127.0.0.1", 8081); - ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(); - DataOutputStream byteDataOut = new DataOutputStream(byteOutput); - DataOutputStream out = new DataOutputStream(socket.getOutputStream()); - DataInputStream in = new DataInputStream(socket.getInputStream()); -// InputStream in = socket.getInputStream(); - Thread.sleep(4000); - //upload - byteDataOut.writeByte(2); - byteDataOut.writeUTF("name"); - byteDataOut.writeLong(191); - out.writeInt(byteDataOut.size()); - out.write(byteOutput.toByteArray()); - out.flush(); - //=============== - System.out.println(in.readInt()); + final DataOutputStream out = new DataOutputStream(socket.getOutputStream()); + final DataInputStream in = new DataInputStream(socket.getInputStream()); + Updater updater = new Updater(in, out); + ScheduledExecutorService scheduled = Executors.newScheduledThreadPool(1); + scheduled.scheduleAtFixedRate(updater, 0, 5, TimeUnit.SECONDS); + + + Scanner scanner = new Scanner(System.in); + + while (true) { + String[] cmdLine = scanner.nextLine().split(" +"); + switch (cmdLine[0]) { + case "list": + if (cmdLine.length != 1) { + System.out.println("list not takes arguments"); + continue; + } + sendList(in, out); + break; + case "upload": + if (cmdLine.length != 2) { + System.out.println("upload takes one argument"); + continue; + } + sendUpload(cmdLine[1], in, out); + break; + case "exit": + socket.close(); + scheduled.shutdownNow(); + return; + default: + System.out.println(cmdLine[0] + " is unknow command"); + } + + } + +// ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(); +// DataOutputStream byteDataOut = new DataOutputStream(byteOutput); +//// InputStream in = socket.getInputStream(); +// Thread.sleep(4000); +// //upload +// byteDataOut.writeByte(2); +// byteDataOut.writeUTF("name"); +// byteDataOut.writeLong(191); +// out.writeInt(byteDataOut.size()); +// out.write(byteOutput.toByteArray()); +// out.flush(); +// //=============== +// System.out.println(in.readInt()); //update // out.writeInt(7); // out.writeByte(4); @@ -52,24 +94,45 @@ public static void main(String[] args) throws IOException, InterruptedException // Thread.sleep(15000); // socket.close(); -// ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1); -// executorService.schedule(new A(), 10, TimeUnit.SECONDS); -// executorService.schedule(new B(), 5, TimeUnit.SECONDS); + } + + private void sendSources(int id, DataInputStream socketIn, DataOutputStream socketOut) { + + } + + private void sendList(DataInputStream socketIn, DataOutputStream socketOut) throws IOException { + synchronized (socketOut) { + socketOut.writeInt(1); + socketOut.writeByte(1); + + int count = socketIn.readInt(); + for (int i = 0; i < count; i++) { + int fileId = socketIn.readInt(); + String fileName = socketIn.readUTF(); + long fileSize = socketIn.readLong(); + System.out.println(fileId + "\t" + fileName + "\t" + fileSize); + } + } + } + + private void sendUpload(String filePath, DataInputStream socketIn, DataOutputStream socketOut) throws IOException { + File file = new File(filePath); + if (!file.exists() || file.isDirectory()) { + System.out.println("can't find file"); + return; + } + String name = file.getName(); + long size = file.length(); + synchronized (socketOut) { + socketOut.writeInt(1 + name.getBytes().length + 2 + 8); + socketOut.writeByte(2); + socketOut.writeUTF(name); + socketOut.writeLong(size); + socketOut.flush(); + + int id = socketIn.readInt(); + System.out.println("new file id: " + id); + } } } -//class A implements Runnable { -// -// @Override -// public void run() { -// System.out.println("A"); -// } -//} -// -//class B implements Runnable { -// -// @Override -// public void run() { -// System.out.println("B"); -// } -//} \ No newline at end of file diff --git a/client/src/main/java/itmo2018/se/Updater.java b/client/src/main/java/itmo2018/se/Updater.java new file mode 100644 index 0000000..8fe6816 --- /dev/null +++ b/client/src/main/java/itmo2018/se/Updater.java @@ -0,0 +1,32 @@ +package itmo2018.se; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; + +public class Updater implements Runnable { + private final DataInputStream socketIn; + private final DataOutputStream socketOut; + + public Updater(DataInputStream socketIn, DataOutputStream socketOut) { + this.socketIn = socketIn; + this.socketOut = socketOut; + } + + @Override + public void run() { + try { + synchronized (socketOut) { + socketOut.writeInt(7); + socketOut.writeByte(4); + socketOut.writeShort(0); + socketOut.writeInt(0); + socketOut.flush(); + + socketIn.readByte(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/server/src/main/java/itmo2018/se/ClientInfo.java b/server/src/main/java/itmo2018/se/ClientInfo.java index 93e9b70..3edd611 100644 --- a/server/src/main/java/itmo2018/se/ClientInfo.java +++ b/server/src/main/java/itmo2018/se/ClientInfo.java @@ -43,10 +43,6 @@ public boolean isOnline() { return !closeTask.isDone(); } -// public void disconect() { -// closeTask.cancel(false); -// } - @Nullable public short getSharingPort() { return sharingPort; @@ -75,7 +71,7 @@ public int hashCode() { } private Future startTimer() { - return closeScheduled.schedule(new Closer(), 5, TimeUnit.MINUTES); + return closeScheduled.schedule(new Closer(), 6, TimeUnit.MINUTES); } private class Closer implements Callable { diff --git a/server/src/main/java/itmo2018/se/Server.java b/server/src/main/java/itmo2018/se/Server.java index 3bc8bfe..e93bb4a 100644 --- a/server/src/main/java/itmo2018/se/Server.java +++ b/server/src/main/java/itmo2018/se/Server.java @@ -51,7 +51,6 @@ public void run() throws IOException { ClientDataHolder holder = (ClientDataHolder) key.attachment(); ByteBuffer buffer = ByteBuffer.allocate(1024); if (channel.read(buffer) == -1) { -// holder.getClientInfo().disconect(); System.out.println(channel.getRemoteAddress() + " is closed"); channel.close(); } diff --git a/server/src/main/java/itmo2018/se/Writer.java b/server/src/main/java/itmo2018/se/Writer.java index fc52d2d..46985f4 100644 --- a/server/src/main/java/itmo2018/se/Writer.java +++ b/server/src/main/java/itmo2018/se/Writer.java @@ -27,7 +27,7 @@ public void registerClient(ClientDataHolder client) { public void run() { try { while (selector.select() > -1) { - //исправить на случай многократного чтения + //TODO исправить на случай многократного чтения if (clientQueue.size() > 0) { ClientDataHolder data = clientQueue.poll(); data.getClientInfo().getChannel().register(selector, SelectionKey.OP_WRITE, data); From ab198f92ee2ae75d68640f9eaecf95d203ebe27f Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Thu, 13 Dec 2018 00:47:18 +0300 Subject: [PATCH 11/31] compleat client cli --- client/build.gradle | 7 ++ client/src/main/java/itmo2018/se/Client.java | 70 ++++++++++++++++--- client/src/main/java/itmo2018/se/Updater.java | 22 ++++-- .../src/main/java/itmo2018/se/ClientInfo.java | 6 +- .../src/main/java/itmo2018/se/Executor.java | 23 +++--- .../src/main/java/itmo2018/se/FileInfo.java | 3 +- .../main/java/itmo2018/se/FileManager.java | 2 +- .../java/itmo2018/se/ListFileManager.java | 4 +- server/src/main/java/itmo2018/se/Server.java | 13 ++-- 9 files changed, 118 insertions(+), 32 deletions(-) diff --git a/client/build.gradle b/client/build.gradle index c1cb40e..edb3842 100644 --- a/client/build.gradle +++ b/client/build.gradle @@ -11,6 +11,13 @@ repositories { mavenCentral() } +jar { + manifest { + attributes 'Main-Class': 'itmo2018.se.Client' + } +} + dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' + compile group: 'org.apache.commons', name: 'commons-io', version: '1.3.2' } diff --git a/client/src/main/java/itmo2018/se/Client.java b/client/src/main/java/itmo2018/se/Client.java index 2724fb2..5a988ec 100644 --- a/client/src/main/java/itmo2018/se/Client.java +++ b/client/src/main/java/itmo2018/se/Client.java @@ -10,16 +10,28 @@ public class Client { public static void main(String[] args) throws IOException, InterruptedException { - new Client().run(); + File workingDir; + if (args.length == 0) { + workingDir = new File(System.getProperty("user.dir")); + } else { + workingDir = new File(args[0]); + if (!workingDir.exists() && !workingDir.isDirectory()) { + System.out.println("can't find " + args[0] + " folder"); + return; + } + } + new Client().run(workingDir.getAbsolutePath()); } - public void run() throws IOException, InterruptedException { + public void run(String workingDir) throws IOException, InterruptedException { + initWorkingDir(workingDir); + Socket socket = new Socket("127.0.0.1", 8081); final DataOutputStream out = new DataOutputStream(socket.getOutputStream()); final DataInputStream in = new DataInputStream(socket.getInputStream()); - Updater updater = new Updater(in, out); + Updater updater = new Updater(workingDir, in, out); ScheduledExecutorService scheduled = Executors.newScheduledThreadPool(1); - scheduled.scheduleAtFixedRate(updater, 0, 5, TimeUnit.SECONDS); + scheduled.scheduleAtFixedRate(updater, 0, 5, TimeUnit.MINUTES); Scanner scanner = new Scanner(System.in); @@ -39,7 +51,17 @@ public void run() throws IOException, InterruptedException { System.out.println("upload takes one argument"); continue; } - sendUpload(cmdLine[1], in, out); + sendUpload(cmdLine[1], workingDir, in, out); + break; + case "source": + if (cmdLine.length != 2) { + System.out.println("upload takes one argument"); + continue; + } else if (!isPositiveInt(cmdLine[1])) { + System.out.println("id must be positive integer number"); + continue; + } + sendSources(Integer.parseInt(cmdLine[1]), in, out); break; case "exit": socket.close(); @@ -96,8 +118,32 @@ public void run() throws IOException, InterruptedException { // socket.close(); } - private void sendSources(int id, DataInputStream socketIn, DataOutputStream socketOut) { - + private void initWorkingDir(String workingDir) throws IOException { + System.out.println("working dir:\t" + workingDir); + File metaData = new File(workingDir + "/.metadata"); + if (!metaData.exists()) { + metaData.createNewFile(); + } + } + + + private void sendSources(int id, DataInputStream socketIn, DataOutputStream socketOut) throws IOException { + synchronized (socketOut) { + socketOut.writeInt(1 + 4); + socketOut.writeByte(3); + socketOut.writeInt(id); + + int size = socketIn.readInt(); + for (int i = 0; i < size; i++) { + byte ip1 = socketIn.readByte(); + byte ip2 = socketIn.readByte(); + byte ip3 = socketIn.readByte(); + byte ip4 = socketIn.readByte(); + short port = socketIn.readShort(); + System.out.println("ip: " + ip1 + "." + ip2 + "." + ip3 + "." + ip4 + + "\t port: " + port); + } + } } private void sendList(DataInputStream socketIn, DataOutputStream socketOut) throws IOException { @@ -115,7 +161,7 @@ private void sendList(DataInputStream socketIn, DataOutputStream socketOut) thro } } - private void sendUpload(String filePath, DataInputStream socketIn, DataOutputStream socketOut) throws IOException { + private void sendUpload(String filePath, String workingDir, DataInputStream socketIn, DataOutputStream socketOut) throws IOException { File file = new File(filePath); if (!file.exists() || file.isDirectory()) { System.out.println("can't find file"); @@ -131,8 +177,16 @@ private void sendUpload(String filePath, DataInputStream socketIn, DataOutputStr socketOut.flush(); int id = socketIn.readInt(); + + try (OutputStream metaData = new FileOutputStream(workingDir + "/.metadata")) { + metaData.write((id + "\t" + file.getAbsolutePath() + "\t" + -1 + "\n").getBytes()); + } System.out.println("new file id: " + id); } } + + private boolean isPositiveInt(String str) { + return str.matches("\\d+"); + } } diff --git a/client/src/main/java/itmo2018/se/Updater.java b/client/src/main/java/itmo2018/se/Updater.java index 8fe6816..590549f 100644 --- a/client/src/main/java/itmo2018/se/Updater.java +++ b/client/src/main/java/itmo2018/se/Updater.java @@ -3,26 +3,40 @@ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; public class Updater implements Runnable { private final DataInputStream socketIn; private final DataOutputStream socketOut; + private Path metaData; - public Updater(DataInputStream socketIn, DataOutputStream socketOut) { + public Updater(String workingDir, DataInputStream socketIn, DataOutputStream socketOut) { this.socketIn = socketIn; this.socketOut = socketOut; + this.metaData = Paths.get(workingDir + "/.metadata"); } @Override public void run() { try { synchronized (socketOut) { - socketOut.writeInt(7); + int filesNumber = (int) Files.lines(metaData).count(); + System.out.println("filesNumber: " + filesNumber); + socketOut.writeInt(1 + 2 + (filesNumber + 1) * 4); socketOut.writeByte(4); socketOut.writeShort(0); - socketOut.writeInt(0); + socketOut.writeInt(filesNumber); + Files.lines(metaData).map(it -> Integer.parseInt(it.split("\t")[0])) + .forEach(it -> { + try { + socketOut.writeInt(it); + } catch (IOException e) { + e.printStackTrace(); + } + }); socketOut.flush(); - socketIn.readByte(); } } catch (IOException e) { diff --git a/server/src/main/java/itmo2018/se/ClientInfo.java b/server/src/main/java/itmo2018/se/ClientInfo.java index 3edd611..4df943d 100644 --- a/server/src/main/java/itmo2018/se/ClientInfo.java +++ b/server/src/main/java/itmo2018/se/ClientInfo.java @@ -65,6 +65,10 @@ public SocketChannel getChannel() { return channel; } + public void disconect() { + closeTask.cancel(false); + } + @Override public int hashCode() { return Objects.hash(ip, port); @@ -77,7 +81,7 @@ private Future startTimer() { private class Closer implements Callable { @Override public Void call() throws Exception { - System.out.println(channel.getRemoteAddress() + " is interupt"); + System.out.println("channel is interupt"); channel.close(); return null; } diff --git a/server/src/main/java/itmo2018/se/Executor.java b/server/src/main/java/itmo2018/se/Executor.java index 04fc8d2..b60edac 100644 --- a/server/src/main/java/itmo2018/se/Executor.java +++ b/server/src/main/java/itmo2018/se/Executor.java @@ -65,7 +65,7 @@ private void executeUpload() throws IOException { long size = content.readLong(); System.out.println(name + " " + size); - int id = fileManager.registerFile(name, size); + int id = fileManager.registerFile(name, size, client.getClientInfo()); ByteBuffer response = ByteBuffer.allocate(4); response.putInt(id); @@ -77,14 +77,19 @@ private void executeSources() throws IOException { System.out.println("sources"); int id = content.readInt(); - - FileInfo file = fileManager.getFile(id); - ByteBuffer response = ByteBuffer.allocate(4 + file.ownersNumber() * (4 + 2)); - response.putInt(file.ownersNumber()); - for (Iterator it = file.owners(); it.hasNext(); ) { - ClientInfo clientInfo = it.next(); - response.put(clientInfo.getIp()); - response.putShort(clientInfo.getPort()); + ByteBuffer response; + if (id < 0 || id >= fileManager.filesNumber()) { + response = ByteBuffer.allocate(4); + response.putInt(0); + } else { + FileInfo file = fileManager.getFile(id); + response = ByteBuffer.allocate(4 + file.ownersNumber() * (4 + 2)); + response.putInt(file.ownersNumber()); + for (Iterator it = file.owners(); it.hasNext(); ) { + ClientInfo clientInfo = it.next(); + response.put(clientInfo.getIp()); + response.putShort(clientInfo.getPort()); + } } response.flip(); client.addResponse(response); diff --git a/server/src/main/java/itmo2018/se/FileInfo.java b/server/src/main/java/itmo2018/se/FileInfo.java index 4e9ac85..6b33bcd 100644 --- a/server/src/main/java/itmo2018/se/FileInfo.java +++ b/server/src/main/java/itmo2018/se/FileInfo.java @@ -8,10 +8,11 @@ public class FileInfo { private long size; private Set owners = new HashSet<>(); - public FileInfo(int id, String name, long size) { + public FileInfo(int id, String name, long size, ClientInfo owner) { this.id = id; this.name = name; this.size = size; + this.owners.add(owner); } public void addOwner(ClientInfo client) { diff --git a/server/src/main/java/itmo2018/se/FileManager.java b/server/src/main/java/itmo2018/se/FileManager.java index f8e4217..2e0c862 100644 --- a/server/src/main/java/itmo2018/se/FileManager.java +++ b/server/src/main/java/itmo2018/se/FileManager.java @@ -5,7 +5,7 @@ public interface FileManager extends Iterable { FileInfo getFile(int id); - int registerFile(String name, long size); + int registerFile(String name, long size, ClientInfo owner); void addOwner(int fileId, ClientInfo client); diff --git a/server/src/main/java/itmo2018/se/ListFileManager.java b/server/src/main/java/itmo2018/se/ListFileManager.java index fec9f6d..875db5d 100644 --- a/server/src/main/java/itmo2018/se/ListFileManager.java +++ b/server/src/main/java/itmo2018/se/ListFileManager.java @@ -20,9 +20,9 @@ public FileInfo getFile(int id) { } @Override - public int registerFile(String name, long size) { + public int registerFile(String name, long size, ClientInfo owner) { int id = files.size(); - files.add(new FileInfo(files.size(), name, size)); + files.add(new FileInfo(files.size(), name, size, owner)); return id; } diff --git a/server/src/main/java/itmo2018/se/Server.java b/server/src/main/java/itmo2018/se/Server.java index e93bb4a..00824fa 100644 --- a/server/src/main/java/itmo2018/se/Server.java +++ b/server/src/main/java/itmo2018/se/Server.java @@ -48,18 +48,19 @@ public void run() throws IOException { } else if (key.isReadable()) { //TODO catch ClosedChannelException SocketChannel channel = (SocketChannel) key.channel(); - ClientDataHolder holder = (ClientDataHolder) key.attachment(); + ClientDataHolder client = (ClientDataHolder) key.attachment(); ByteBuffer buffer = ByteBuffer.allocate(1024); if (channel.read(buffer) == -1) { System.out.println(channel.getRemoteAddress() + " is closed"); + client.getClientInfo().disconect(); channel.close(); } buffer.flip(); - holder.read(buffer); - while (holder.requestIsReady()) { - pool.submit(new Executor(holder.getRequest(), holder, fileManager, writer)); - holder.resetRequest(); - holder.read(buffer); + client.read(buffer); + while (client.requestIsReady()) { + pool.submit(new Executor(client.getRequest(), client, fileManager, writer)); + client.resetRequest(); + client.read(buffer); System.out.println("package is ready"); } } From e2619b1b431ea36d3c6b4d7c4a9468d27595d759 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Thu, 13 Dec 2018 00:56:43 +0300 Subject: [PATCH 12/31] minor fix --- client/src/main/java/itmo2018/se/Client.java | 61 +++++--------------- server/src/main/java/itmo2018/se/Writer.java | 2 +- 2 files changed, 15 insertions(+), 48 deletions(-) diff --git a/client/src/main/java/itmo2018/se/Client.java b/client/src/main/java/itmo2018/se/Client.java index 5a988ec..69a48ec 100644 --- a/client/src/main/java/itmo2018/se/Client.java +++ b/client/src/main/java/itmo2018/se/Client.java @@ -9,7 +9,7 @@ public class Client { - public static void main(String[] args) throws IOException, InterruptedException { + public static void main(String[] args) throws IOException { File workingDir; if (args.length == 0) { workingDir = new File(System.getProperty("user.dir")); @@ -23,7 +23,7 @@ public static void main(String[] args) throws IOException, InterruptedException new Client().run(workingDir.getAbsolutePath()); } - public void run(String workingDir) throws IOException, InterruptedException { + public void run(String workingDir) throws IOException { initWorkingDir(workingDir); Socket socket = new Socket("127.0.0.1", 8081); @@ -55,7 +55,7 @@ public void run(String workingDir) throws IOException, InterruptedException { break; case "source": if (cmdLine.length != 2) { - System.out.println("upload takes one argument"); + System.out.println("source takes one argument"); continue; } else if (!isPositiveInt(cmdLine[1])) { System.out.println("id must be positive integer number"); @@ -63,7 +63,18 @@ public void run(String workingDir) throws IOException, InterruptedException { } sendSources(Integer.parseInt(cmdLine[1]), in, out); break; + case "update": + if (cmdLine.length != 1) { + System.out.println("update not takes arguments"); + continue; + } + updater.run(); + break; case "exit": + if (cmdLine.length != 1) { + System.out.println("exit not takes arguments"); + continue; + } socket.close(); scheduled.shutdownNow(); return; @@ -72,50 +83,6 @@ public void run(String workingDir) throws IOException, InterruptedException { } } - -// ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(); -// DataOutputStream byteDataOut = new DataOutputStream(byteOutput); -//// InputStream in = socket.getInputStream(); -// Thread.sleep(4000); -// //upload -// byteDataOut.writeByte(2); -// byteDataOut.writeUTF("name"); -// byteDataOut.writeLong(191); -// out.writeInt(byteDataOut.size()); -// out.write(byteOutput.toByteArray()); -// out.flush(); -// //=============== -// System.out.println(in.readInt()); - //update -// out.writeInt(7); -// out.writeByte(4); -// out.writeShort(0); -// out.writeInt(0); -// //================= -// -// //sources -// out.writeInt(5); -// out.writeByte(3); -// out.writeInt(0); -// out.flush(); -// //================= -// -// Thread.sleep(4000); -// //update -// out.writeInt(7); -// out.writeByte(4); -// out.writeShort(0); -// out.writeInt(0); -// out.flush(); -// //============= -// -// //list -// out.writeInt(1); -// out.writeByte(1); -// //============== -// Thread.sleep(15000); - -// socket.close(); } private void initWorkingDir(String workingDir) throws IOException { diff --git a/server/src/main/java/itmo2018/se/Writer.java b/server/src/main/java/itmo2018/se/Writer.java index 46985f4..0dd1a8c 100644 --- a/server/src/main/java/itmo2018/se/Writer.java +++ b/server/src/main/java/itmo2018/se/Writer.java @@ -27,7 +27,7 @@ public void registerClient(ClientDataHolder client) { public void run() { try { while (selector.select() > -1) { - //TODO исправить на случай многократного чтения + //TODO убрать очередб, так как каждый клиент работает в блокирующем режиме if (clientQueue.size() > 0) { ClientDataHolder data = clientQueue.poll(); data.getClientInfo().getChannel().register(selector, SelectionKey.OP_WRITE, data); From a8f9ef9097d3f382d22ff3c30fd46e4755e97655 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Thu, 13 Dec 2018 01:22:40 +0300 Subject: [PATCH 13/31] saving server intermediate data --- server/src/main/java/itmo2018/se/FileInfo.java | 6 +++++- server/src/main/java/itmo2018/se/FileManager.java | 2 ++ .../src/main/java/itmo2018/se/ListFileManager.java | 14 +++++++++++++- server/src/main/java/itmo2018/se/Server.java | 13 +++++++++++++ 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/itmo2018/se/FileInfo.java b/server/src/main/java/itmo2018/se/FileInfo.java index 6b33bcd..401c8d2 100644 --- a/server/src/main/java/itmo2018/se/FileInfo.java +++ b/server/src/main/java/itmo2018/se/FileInfo.java @@ -9,10 +9,14 @@ public class FileInfo { private Set owners = new HashSet<>(); public FileInfo(int id, String name, long size, ClientInfo owner) { + this(id, name, size); + this.owners.add(owner); + } + + public FileInfo(int id, String name, long size) { this.id = id; this.name = name; this.size = size; - this.owners.add(owner); } public void addOwner(ClientInfo client) { diff --git a/server/src/main/java/itmo2018/se/FileManager.java b/server/src/main/java/itmo2018/se/FileManager.java index 2e0c862..63001a5 100644 --- a/server/src/main/java/itmo2018/se/FileManager.java +++ b/server/src/main/java/itmo2018/se/FileManager.java @@ -7,6 +7,8 @@ public interface FileManager extends Iterable { int registerFile(String name, long size, ClientInfo owner); + void setFile(int id, String name, long size); + void addOwner(int fileId, ClientInfo client); int filesNumber(); diff --git a/server/src/main/java/itmo2018/se/ListFileManager.java b/server/src/main/java/itmo2018/se/ListFileManager.java index 875db5d..c9f6c99 100644 --- a/server/src/main/java/itmo2018/se/ListFileManager.java +++ b/server/src/main/java/itmo2018/se/ListFileManager.java @@ -1,5 +1,7 @@ package itmo2018.se; +import java.io.FileOutputStream; +import java.io.OutputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -22,10 +24,20 @@ public FileInfo getFile(int id) { @Override public int registerFile(String name, long size, ClientInfo owner) { int id = files.size(); - files.add(new FileInfo(files.size(), name, size, owner)); + files.add(new FileInfo(id, name, size, owner)); + try (OutputStream metaData = new FileOutputStream("metadata")) { + metaData.write((id + "\t" + name + "\t" + size + "\n").getBytes()); + } catch (Exception e) { + System.out.println("can't write id to metadata file"); + } return id; } + @Override + public void setFile(int id, String name, long size) { + files.add(new FileInfo(id, name, size)); + } + @Override public void addOwner(int fileId, ClientInfo client) { files.get(fileId).addOwner(client); diff --git a/server/src/main/java/itmo2018/se/Server.java b/server/src/main/java/itmo2018/se/Server.java index 00824fa..86e0c56 100644 --- a/server/src/main/java/itmo2018/se/Server.java +++ b/server/src/main/java/itmo2018/se/Server.java @@ -1,5 +1,6 @@ package itmo2018.se; +import java.io.File; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; @@ -7,6 +8,9 @@ import java.nio.channels.Selector; import java.nio.channels.ServerSocketChannel; import java.nio.channels.SocketChannel; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Iterator; import java.util.Queue; import java.util.Set; @@ -18,6 +22,15 @@ public static void main(String[] args) throws IOException { new Server().run(); } + public Server() throws IOException { + File metaData = new File("metadata"); + if (!metaData.exists()) { + metaData.createNewFile(); + } + Files.lines(metaData.toPath()).map(it -> it.split("\t")) + .forEach(it -> fileManager.setFile(Integer.parseInt(it[0]), it[1], Long.parseLong(it[2]))); + } + private Selector selector; private ServerSocketChannel serverSocketChannel; private ScheduledExecutorService closer = Executors.newScheduledThreadPool(1); From af79aea8245de2bdbdad577c6b43e9f9022d67ce Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Thu, 13 Dec 2018 18:50:51 +0300 Subject: [PATCH 14/31] split client to seeder and leech --- client/build.gradle | 2 +- client/src/main/java/itmo2018/se/Client.java | 179 +++++++++--------- .../src/main/java/itmo2018/se/ClientMain.java | 111 +++++++++++ client/src/main/java/itmo2018/se/Leech.java | 32 ++++ client/src/main/java/itmo2018/se/Seeder.java | 79 ++++++++ client/src/main/java/itmo2018/se/Updater.java | 6 +- .../src/main/java/itmo2018/se/ClientInfo.java | 10 +- .../src/main/java/itmo2018/se/Executor.java | 14 +- server/src/main/java/itmo2018/se/Server.java | 6 +- 9 files changed, 331 insertions(+), 108 deletions(-) create mode 100644 client/src/main/java/itmo2018/se/ClientMain.java create mode 100644 client/src/main/java/itmo2018/se/Leech.java create mode 100644 client/src/main/java/itmo2018/se/Seeder.java diff --git a/client/build.gradle b/client/build.gradle index edb3842..12e0e5d 100644 --- a/client/build.gradle +++ b/client/build.gradle @@ -13,7 +13,7 @@ repositories { jar { manifest { - attributes 'Main-Class': 'itmo2018.se.Client' + attributes 'Main-Class': 'itmo2018.se.ClientMain' } } diff --git a/client/src/main/java/itmo2018/se/Client.java b/client/src/main/java/itmo2018/se/Client.java index 69a48ec..278241f 100644 --- a/client/src/main/java/itmo2018/se/Client.java +++ b/client/src/main/java/itmo2018/se/Client.java @@ -2,99 +2,33 @@ import java.io.*; import java.net.Socket; -import java.util.Scanner; +import java.net.SocketAddress; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; - -public class Client { - public static void main(String[] args) throws IOException { - File workingDir; - if (args.length == 0) { - workingDir = new File(System.getProperty("user.dir")); - } else { - workingDir = new File(args[0]); - if (!workingDir.exists() && !workingDir.isDirectory()) { - System.out.println("can't find " + args[0] + " folder"); - return; - } +public class Client implements Closeable { + private String metaData; + private Socket socket; + private DataOutputStream socketOut; + private DataInputStream socketIn; + private ScheduledExecutorService scheduled; + + + public Client(String workingDir) throws IOException { + this.socket = new Socket("localhost", 8081); + this.metaData = workingDir + "/.metadata"; + try { + socketOut = new DataOutputStream(socket.getOutputStream()); + socketIn = new DataInputStream(socket.getInputStream()); + } catch (IOException e) { + e.printStackTrace(); } - new Client().run(workingDir.getAbsolutePath()); } - public void run(String workingDir) throws IOException { - initWorkingDir(workingDir); - - Socket socket = new Socket("127.0.0.1", 8081); - final DataOutputStream out = new DataOutputStream(socket.getOutputStream()); - final DataInputStream in = new DataInputStream(socket.getInputStream()); - Updater updater = new Updater(workingDir, in, out); - ScheduledExecutorService scheduled = Executors.newScheduledThreadPool(1); - scheduled.scheduleAtFixedRate(updater, 0, 5, TimeUnit.MINUTES); - - - Scanner scanner = new Scanner(System.in); - - while (true) { - String[] cmdLine = scanner.nextLine().split(" +"); - switch (cmdLine[0]) { - case "list": - if (cmdLine.length != 1) { - System.out.println("list not takes arguments"); - continue; - } - sendList(in, out); - break; - case "upload": - if (cmdLine.length != 2) { - System.out.println("upload takes one argument"); - continue; - } - sendUpload(cmdLine[1], workingDir, in, out); - break; - case "source": - if (cmdLine.length != 2) { - System.out.println("source takes one argument"); - continue; - } else if (!isPositiveInt(cmdLine[1])) { - System.out.println("id must be positive integer number"); - continue; - } - sendSources(Integer.parseInt(cmdLine[1]), in, out); - break; - case "update": - if (cmdLine.length != 1) { - System.out.println("update not takes arguments"); - continue; - } - updater.run(); - break; - case "exit": - if (cmdLine.length != 1) { - System.out.println("exit not takes arguments"); - continue; - } - socket.close(); - scheduled.shutdownNow(); - return; - default: - System.out.println(cmdLine[0] + " is unknow command"); - } - - } - } - - private void initWorkingDir(String workingDir) throws IOException { - System.out.println("working dir:\t" + workingDir); - File metaData = new File(workingDir + "/.metadata"); - if (!metaData.exists()) { - metaData.createNewFile(); - } - } - - - private void sendSources(int id, DataInputStream socketIn, DataOutputStream socketOut) throws IOException { + public void sendSources(int id) throws IOException { synchronized (socketOut) { socketOut.writeInt(1 + 4); socketOut.writeByte(3); @@ -106,14 +40,14 @@ private void sendSources(int id, DataInputStream socketIn, DataOutputStream sock byte ip2 = socketIn.readByte(); byte ip3 = socketIn.readByte(); byte ip4 = socketIn.readByte(); - short port = socketIn.readShort(); + int port = shortToInt(socketIn.readShort()); System.out.println("ip: " + ip1 + "." + ip2 + "." + ip3 + "." + ip4 + "\t port: " + port); } } } - private void sendList(DataInputStream socketIn, DataOutputStream socketOut) throws IOException { + public void sendList() throws IOException { synchronized (socketOut) { socketOut.writeInt(1); socketOut.writeByte(1); @@ -128,7 +62,7 @@ private void sendList(DataInputStream socketIn, DataOutputStream socketOut) thro } } - private void sendUpload(String filePath, String workingDir, DataInputStream socketIn, DataOutputStream socketOut) throws IOException { + public void sendUpload(String filePath) throws IOException { File file = new File(filePath); if (!file.exists() || file.isDirectory()) { System.out.println("can't find file"); @@ -145,15 +79,72 @@ private void sendUpload(String filePath, String workingDir, DataInputStream sock int id = socketIn.readInt(); - try (OutputStream metaData = new FileOutputStream(workingDir + "/.metadata")) { - metaData.write((id + "\t" + file.getAbsolutePath() + "\t" + -1 + "\n").getBytes()); + try (OutputStream metaDataFile = new FileOutputStream(metaData)) { + metaDataFile.write((id + "\t" + file.getAbsolutePath() + "\t" + -1 + "\n").getBytes()); } System.out.println("new file id: " + id); } } - private boolean isPositiveInt(String str) { - return str.matches("\\d+"); + public void sendUpdate(short seederPort) throws IOException { + synchronized (socketOut) { + int filesNumber = (int) Files.lines(Paths.get(metaData)).count(); + System.out.println("filesNumber: " + filesNumber); + socketOut.writeInt(1 + 2 + (filesNumber + 1) * 4); + socketOut.writeByte(4); + socketOut.writeShort(seederPort); + socketOut.writeInt(filesNumber); + Files.lines(Paths.get(metaData)).map(it -> Integer.parseInt(it.split("\t")[0])) + .forEach(it -> { + try { + socketOut.writeInt(it); + } catch (IOException e) { + e.printStackTrace(); + } + }); + socketOut.flush(); + socketIn.readByte(); + } } -} + public void startUpdater(short seedPort) { + Updater updater = new Updater(seedPort); + this.scheduled = Executors.newSingleThreadScheduledExecutor(); + scheduled.scheduleAtFixedRate(updater, 0, 5, TimeUnit.MINUTES); + } + + public SocketAddress getSocketLocalAdress() { + return socket.getLocalSocketAddress(); + } + + + @Override + public void close() throws IOException { + socket.close(); + scheduled.shutdownNow(); + } + + private int shortToInt(short s) { + if (s >= 0) { + return s; + } + return 32768 + 32768 + s; + } + + private class Updater implements Runnable { + short seederPort; + + Updater(short seederPort) { + this.seederPort = seederPort; + } + + @Override + public void run() { + try { + sendUpdate(seederPort); + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/client/src/main/java/itmo2018/se/ClientMain.java b/client/src/main/java/itmo2018/se/ClientMain.java new file mode 100644 index 0000000..8c2cfa1 --- /dev/null +++ b/client/src/main/java/itmo2018/se/ClientMain.java @@ -0,0 +1,111 @@ +package itmo2018.se; + +import java.io.*; +import java.net.ServerSocket; +import java.util.Scanner; + +public class ClientMain { + public static void main(String[] args) throws IOException { + File workingDir; + if (args.length == 0) { + workingDir = new File(System.getProperty("user.dir")); + } else { + workingDir = new File(args[0]); + if (!workingDir.exists() && !workingDir.isDirectory()) { + System.out.println("can't find " + args[0] + " folder"); + return; + } + } + new ClientMain().run(workingDir.getAbsolutePath()); + } + + public void run(String workingDir) throws IOException { + initWorkingDir(workingDir); + + Client client; + try { + client = new Client(workingDir); + } catch (IOException e) { + System.out.println("can't connect to server"); + return; + } +// Socket tmp = new Socket("vk.com", 80); + ServerSocket seederServer = new ServerSocket(); + seederServer.bind(client.getSocketLocalAdress()); + seederServer.setReceiveBufferSize(1024); + + short seedPort = (short) seederServer.getLocalPort(); + System.out.println("port: " + seederServer.getLocalPort()); + client.startUpdater(seedPort); + + Thread seederThred = new Thread(new Seeder(seederServer, workingDir)); + seederThred.setDaemon(true); + seederThred.start(); + + Scanner scanner = new Scanner(System.in); + while (true) { + String[] cmdLine = scanner.nextLine().split(" +"); + try { + switch (cmdLine[0]) { + case "list": + if (cmdLine.length != 1) { + System.out.println("list not takes arguments"); + continue; + } + client.sendList(); + break; + case "upload": + if (cmdLine.length != 2) { + System.out.println("upload takes one argument"); + continue; + } + client.sendUpload(cmdLine[1]); + break; + case "source": + if (cmdLine.length != 2) { + System.out.println("source takes one argument"); + continue; + } else if (!isPositiveInt(cmdLine[1])) { + System.out.println("id must be positive integer number"); + continue; + } + client.sendSources(Integer.parseInt(cmdLine[1])); + break; + case "update": + if (cmdLine.length != 1) { + System.out.println("update not takes arguments"); + continue; + } + client.sendUpdate(seedPort); + break; + case "exit": + if (cmdLine.length != 1) { + System.out.println("exit not takes arguments"); + continue; + } + client.close(); + return; + default: + System.out.println(cmdLine[0] + " is unknow command"); + } + } catch (IOException e) { + System.out.println("connection aborted"); + client.close(); + return; + } + } + } + + private void initWorkingDir(String workingDir) throws IOException { + System.out.println("working dir:\t" + workingDir); + File metaData = new File(workingDir + "/.metadata"); + if (!metaData.exists()) { + metaData.createNewFile(); + } + } + + private boolean isPositiveInt(String str) { + return str.matches("\\d+"); + } +} + diff --git a/client/src/main/java/itmo2018/se/Leech.java b/client/src/main/java/itmo2018/se/Leech.java new file mode 100644 index 0000000..82140ad --- /dev/null +++ b/client/src/main/java/itmo2018/se/Leech.java @@ -0,0 +1,32 @@ +package itmo2018.se; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.Socket; + +public class Leech implements Runnable { + private String metaData; + private InetSocketAddress address; + + public Leech(InetSocketAddress address, String workingDir) { + this.metaData = workingDir + "/.metadata"; + this.address = address; + } + + @Override + public void run() { + try { + Socket socket = new Socket(); + socket.connect(address); + DataInputStream socketIn = new DataInputStream(socket.getInputStream()); + DataOutputStream socketOut = new DataOutputStream(socket.getOutputStream()); + socketOut.writeByte(1); + socketOut.writeInt(4); + socketOut.flush(); + } catch (IOException e) { + System.out.println("can't connect to seeder"); + } + } +} diff --git a/client/src/main/java/itmo2018/se/Seeder.java b/client/src/main/java/itmo2018/se/Seeder.java new file mode 100644 index 0000000..cb2a547 --- /dev/null +++ b/client/src/main/java/itmo2018/se/Seeder.java @@ -0,0 +1,79 @@ +package itmo2018.se; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.net.ServerSocket; +import java.net.Socket; +import java.util.concurrent.Executors; +import java.util.concurrent.ThreadPoolExecutor; + +public class Seeder implements Runnable { + private ServerSocket server; + private String metaData; + + public Seeder(ServerSocket server, String workingDir) { + this.server = server; + this.metaData = workingDir + "/.metadata"; + } + + @Override + public void run() { + try { + int limitLeech = 4; + ThreadPoolExecutor poolExecutor = (ThreadPoolExecutor) Executors.newFixedThreadPool(limitLeech); + while (true) { + Socket socket = server.accept(); + if (poolExecutor.getTaskCount() >= limitLeech) { + socket.close(); + } + poolExecutor.submit(new Executor(socket)); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + private class Executor implements Runnable { + Socket socket; + + Executor(Socket socket) { + this.socket = socket; + } + + @Override + public void run() { + try { + DataInputStream socketIn = new DataInputStream(socket.getInputStream()); + DataOutputStream socketOut = new DataOutputStream(socket.getOutputStream()); + while (true) { + byte cmd = socketIn.readByte(); + if (cmd == 1) { + execStat(socketIn, socketOut); + } else { + execGet(socketIn, socketOut); + } + } + } catch (IOException e) { + System.out.println("leech disconected"); + } + try { + socket.close(); + } catch (IOException e) { + e.printStackTrace(); + } + + } + + private void execStat(DataInputStream socketIn, DataOutputStream socketOut) throws IOException { + int id = socketIn.readInt(); + System.out.println("Stat"); + } + + private void execGet(DataInputStream socketIn, DataOutputStream socketOut) throws IOException { + int id = socketIn.readInt(); + int part = socketIn.readInt(); + System.out.println("Get"); + } + } +} diff --git a/client/src/main/java/itmo2018/se/Updater.java b/client/src/main/java/itmo2018/se/Updater.java index 590549f..d60e029 100644 --- a/client/src/main/java/itmo2018/se/Updater.java +++ b/client/src/main/java/itmo2018/se/Updater.java @@ -11,11 +11,13 @@ public class Updater implements Runnable { private final DataInputStream socketIn; private final DataOutputStream socketOut; private Path metaData; + private short seederPort; - public Updater(String workingDir, DataInputStream socketIn, DataOutputStream socketOut) { + public Updater(String workingDir, short seederPort, DataInputStream socketIn, DataOutputStream socketOut) { this.socketIn = socketIn; this.socketOut = socketOut; this.metaData = Paths.get(workingDir + "/.metadata"); + this.seederPort = seederPort; } @Override @@ -26,7 +28,7 @@ public void run() { System.out.println("filesNumber: " + filesNumber); socketOut.writeInt(1 + 2 + (filesNumber + 1) * 4); socketOut.writeByte(4); - socketOut.writeShort(0); + socketOut.writeShort(seederPort); socketOut.writeInt(filesNumber); Files.lines(metaData).map(it -> Integer.parseInt(it.split("\t")[0])) .forEach(it -> { diff --git a/server/src/main/java/itmo2018/se/ClientInfo.java b/server/src/main/java/itmo2018/se/ClientInfo.java index 4df943d..e99020c 100644 --- a/server/src/main/java/itmo2018/se/ClientInfo.java +++ b/server/src/main/java/itmo2018/se/ClientInfo.java @@ -13,8 +13,8 @@ public class ClientInfo { private Future closeTask; private byte[] ip; - private short port; - private short sharingPort; + private int port; + private int sharingPort; private ScheduledExecutorService closeScheduled; private SocketChannel channel; @@ -30,7 +30,7 @@ public byte[] getIp() { return ip; } - public short getPort() { + public int getPort() { return port; } @@ -44,11 +44,11 @@ public boolean isOnline() { } @Nullable - public short getSharingPort() { + public int getSharingPort() { return sharingPort; } - public void updateSharingPort(short port) { + public void updateSharingPort(int port) { this.sharingPort = port; } diff --git a/server/src/main/java/itmo2018/se/Executor.java b/server/src/main/java/itmo2018/se/Executor.java index b60edac..53e790f 100644 --- a/server/src/main/java/itmo2018/se/Executor.java +++ b/server/src/main/java/itmo2018/se/Executor.java @@ -35,7 +35,6 @@ public Void call() throws Exception { executeUpdate(); break; } - //TODO переименовать dataQueue везде!!!! writer.registerClient(client); return null; } @@ -88,7 +87,7 @@ private void executeSources() throws IOException { for (Iterator it = file.owners(); it.hasNext(); ) { ClientInfo clientInfo = it.next(); response.put(clientInfo.getIp()); - response.putShort(clientInfo.getPort()); + response.putShort((short) clientInfo.getSharingPort()); } } response.flip(); @@ -100,8 +99,8 @@ private void executeUpdate() throws IOException { ClientInfo clientInfo = client.getClientInfo(); clientInfo.updateCloseTask(); - short port = content.readShort(); - clientInfo.updateSharingPort(port); + int port = shortToInt(content.readShort()); + client.getClientInfo().updateSharingPort(port); int count = content.readInt(); for (int i = 0; i < count; i++) { int fileId = content.readInt(); @@ -113,4 +112,11 @@ private void executeUpdate() throws IOException { response.flip(); client.addResponse(response); } + + private int shortToInt(short s) { + if (s >= 0) { + return s; + } + return 32768 + 32768 + s; + } } diff --git a/server/src/main/java/itmo2018/se/Server.java b/server/src/main/java/itmo2018/se/Server.java index 86e0c56..488b978 100644 --- a/server/src/main/java/itmo2018/se/Server.java +++ b/server/src/main/java/itmo2018/se/Server.java @@ -2,7 +2,9 @@ import java.io.File; import java.io.IOException; +import java.net.InetAddress; import java.net.InetSocketAddress; +import java.net.ServerSocket; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; @@ -38,7 +40,7 @@ public Server() throws IOException { public void run() throws IOException { serverSocketChannel = ServerSocketChannel.open(); - InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1", 8081); + InetSocketAddress socketAddress = new InetSocketAddress("localhost", 8081); serverSocketChannel.bind(socketAddress); selector = Selector.open(); Selector writerSelector = Selector.open(); @@ -91,7 +93,7 @@ private void registerClient() throws IOException { short port = (short) channel.socket().getPort(); ClientInfo info = new ClientInfo(ip, port, channel, closer); - System.out.println(channel.socket().getLocalSocketAddress()); + System.out.println(channel.socket().getRemoteSocketAddress()); channel.configureBlocking(false); channel.register(selector, SelectionKey.OP_READ, new ClientDataHolder(info)); From 732fd885c82f9cc162f39943eee9e1f8cb54a330 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Thu, 13 Dec 2018 19:35:04 +0300 Subject: [PATCH 15/31] implement simple leech --- client/src/main/java/itmo2018/se/Client.java | 28 +++++++---- .../src/main/java/itmo2018/se/ClientMain.java | 25 +++++++--- client/src/main/java/itmo2018/se/Leech.java | 9 ++-- client/src/main/java/itmo2018/se/Seeder.java | 22 ++++++--- client/src/main/java/itmo2018/se/Updater.java | 48 ------------------- .../java/itmo2018/se/ClientDataHolder.java | 2 - 6 files changed, 59 insertions(+), 75 deletions(-) delete mode 100644 client/src/main/java/itmo2018/se/Updater.java diff --git a/client/src/main/java/itmo2018/se/Client.java b/client/src/main/java/itmo2018/se/Client.java index 278241f..ef88427 100644 --- a/client/src/main/java/itmo2018/se/Client.java +++ b/client/src/main/java/itmo2018/se/Client.java @@ -1,10 +1,13 @@ package itmo2018.se; import java.io.*; +import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketAddress; import java.nio.file.Files; import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -28,26 +31,31 @@ public Client(String workingDir) throws IOException { } } - public void sendSources(int id) throws IOException { + public List getSources(int id) throws IOException { synchronized (socketOut) { socketOut.writeInt(1 + 4); socketOut.writeByte(3); socketOut.writeInt(id); int size = socketIn.readInt(); + List res = new ArrayList<>(size); for (int i = 0; i < size; i++) { byte ip1 = socketIn.readByte(); byte ip2 = socketIn.readByte(); byte ip3 = socketIn.readByte(); byte ip4 = socketIn.readByte(); int port = shortToInt(socketIn.readShort()); - System.out.println("ip: " + ip1 + "." + ip2 + "." + ip3 + "." + ip4 + - "\t port: " + port); + InetSocketAddress address = new InetSocketAddress(ip1 + "." + ip2 + "." + ip3 + "." + ip4, port); + res.add(address); + System.out.println(address); +// System.out.println("ip: " + ip1 + "." + ip2 + "." + ip3 + "." + ip4 + +// "\t port: " + port); } + return res; } } - public void sendList() throws IOException { + public void getList() throws IOException { synchronized (socketOut) { socketOut.writeInt(1); socketOut.writeByte(1); @@ -62,7 +70,7 @@ public void sendList() throws IOException { } } - public void sendUpload(String filePath) throws IOException { + public void upload(String filePath) throws IOException { File file = new File(filePath); if (!file.exists() || file.isDirectory()) { System.out.println("can't find file"); @@ -86,7 +94,7 @@ public void sendUpload(String filePath) throws IOException { } } - public void sendUpdate(short seederPort) throws IOException { + public void update(short seederPort) throws IOException { synchronized (socketOut) { int filesNumber = (int) Files.lines(Paths.get(metaData)).count(); System.out.println("filesNumber: " + filesNumber); @@ -107,7 +115,7 @@ public void sendUpdate(short seederPort) throws IOException { } } - public void startUpdater(short seedPort) { + public void startUpdat(short seedPort) { Updater updater = new Updater(seedPort); this.scheduled = Executors.newSingleThreadScheduledExecutor(); scheduled.scheduleAtFixedRate(updater, 0, 5, TimeUnit.MINUTES); @@ -121,7 +129,9 @@ public SocketAddress getSocketLocalAdress() { @Override public void close() throws IOException { socket.close(); - scheduled.shutdownNow(); + if (scheduled != null) { + scheduled.shutdownNow(); + } } private int shortToInt(short s) { @@ -141,7 +151,7 @@ private class Updater implements Runnable { @Override public void run() { try { - sendUpdate(seederPort); + update(seederPort); } catch (IOException e) { e.printStackTrace(); } diff --git a/client/src/main/java/itmo2018/se/ClientMain.java b/client/src/main/java/itmo2018/se/ClientMain.java index 8c2cfa1..d39c10d 100644 --- a/client/src/main/java/itmo2018/se/ClientMain.java +++ b/client/src/main/java/itmo2018/se/ClientMain.java @@ -36,9 +36,10 @@ public void run(String workingDir) throws IOException { short seedPort = (short) seederServer.getLocalPort(); System.out.println("port: " + seederServer.getLocalPort()); - client.startUpdater(seedPort); + client.startUpdat(seedPort); - Thread seederThred = new Thread(new Seeder(seederServer, workingDir)); + Seeder seeder = new Seeder(seederServer, workingDir); + Thread seederThred = new Thread(seeder); seederThred.setDaemon(true); seederThred.start(); @@ -47,19 +48,29 @@ public void run(String workingDir) throws IOException { String[] cmdLine = scanner.nextLine().split(" +"); try { switch (cmdLine[0]) { + case "download": + if (cmdLine.length != 2) { + System.out.println("download takes one argument"); + continue; + } else if (!isPositiveInt(cmdLine[1])) { + System.out.println("id must be positive integer number"); + continue; + } + new Leech(Integer.parseInt(cmdLine[1]), client, workingDir).run(); + break; case "list": if (cmdLine.length != 1) { System.out.println("list not takes arguments"); continue; } - client.sendList(); + client.getList(); break; case "upload": if (cmdLine.length != 2) { System.out.println("upload takes one argument"); continue; } - client.sendUpload(cmdLine[1]); + client.upload(cmdLine[1]); break; case "source": if (cmdLine.length != 2) { @@ -69,14 +80,14 @@ public void run(String workingDir) throws IOException { System.out.println("id must be positive integer number"); continue; } - client.sendSources(Integer.parseInt(cmdLine[1])); + client.getSources(Integer.parseInt(cmdLine[1])); break; case "update": if (cmdLine.length != 1) { System.out.println("update not takes arguments"); continue; } - client.sendUpdate(seedPort); + client.update(seedPort); break; case "exit": if (cmdLine.length != 1) { @@ -84,6 +95,7 @@ public void run(String workingDir) throws IOException { continue; } client.close(); + seeder.close(); return; default: System.out.println(cmdLine[0] + " is unknow command"); @@ -91,6 +103,7 @@ public void run(String workingDir) throws IOException { } catch (IOException e) { System.out.println("connection aborted"); client.close(); + seeder.close(); return; } } diff --git a/client/src/main/java/itmo2018/se/Leech.java b/client/src/main/java/itmo2018/se/Leech.java index 82140ad..789fa8f 100644 --- a/client/src/main/java/itmo2018/se/Leech.java +++ b/client/src/main/java/itmo2018/se/Leech.java @@ -8,17 +8,20 @@ public class Leech implements Runnable { private String metaData; - private InetSocketAddress address; + private int fileId; + private Client client; - public Leech(InetSocketAddress address, String workingDir) { + public Leech(int fileId, Client client, String workingDir) { + this.fileId = fileId; + this.client = client; this.metaData = workingDir + "/.metadata"; - this.address = address; } @Override public void run() { try { Socket socket = new Socket(); + InetSocketAddress address = client.getSources(fileId).get(0); socket.connect(address); DataInputStream socketIn = new DataInputStream(socket.getInputStream()); DataOutputStream socketOut = new DataOutputStream(socket.getOutputStream()); diff --git a/client/src/main/java/itmo2018/se/Seeder.java b/client/src/main/java/itmo2018/se/Seeder.java index cb2a547..fd7257b 100644 --- a/client/src/main/java/itmo2018/se/Seeder.java +++ b/client/src/main/java/itmo2018/se/Seeder.java @@ -1,5 +1,6 @@ package itmo2018.se; +import java.io.Closeable; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; @@ -8,32 +9,39 @@ import java.util.concurrent.Executors; import java.util.concurrent.ThreadPoolExecutor; -public class Seeder implements Runnable { +public class Seeder implements Runnable, Closeable { private ServerSocket server; private String metaData; + private ThreadPoolExecutor poolExecutor; + private int limitLeech = 4; public Seeder(ServerSocket server, String workingDir) { this.server = server; this.metaData = workingDir + "/.metadata"; + poolExecutor = (ThreadPoolExecutor) Executors.newFixedThreadPool(limitLeech); } @Override public void run() { - try { - int limitLeech = 4; - ThreadPoolExecutor poolExecutor = (ThreadPoolExecutor) Executors.newFixedThreadPool(limitLeech); - while (true) { + while (true) { + try { Socket socket = server.accept(); if (poolExecutor.getTaskCount() >= limitLeech) { socket.close(); } poolExecutor.submit(new Executor(socket)); + } catch (IOException e) { + break; } - } catch (IOException e) { - e.printStackTrace(); } } + @Override + public void close() throws IOException { + server.close(); + poolExecutor.shutdownNow(); + } + private class Executor implements Runnable { Socket socket; diff --git a/client/src/main/java/itmo2018/se/Updater.java b/client/src/main/java/itmo2018/se/Updater.java deleted file mode 100644 index d60e029..0000000 --- a/client/src/main/java/itmo2018/se/Updater.java +++ /dev/null @@ -1,48 +0,0 @@ -package itmo2018.se; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; - -public class Updater implements Runnable { - private final DataInputStream socketIn; - private final DataOutputStream socketOut; - private Path metaData; - private short seederPort; - - public Updater(String workingDir, short seederPort, DataInputStream socketIn, DataOutputStream socketOut) { - this.socketIn = socketIn; - this.socketOut = socketOut; - this.metaData = Paths.get(workingDir + "/.metadata"); - this.seederPort = seederPort; - } - - @Override - public void run() { - try { - synchronized (socketOut) { - int filesNumber = (int) Files.lines(metaData).count(); - System.out.println("filesNumber: " + filesNumber); - socketOut.writeInt(1 + 2 + (filesNumber + 1) * 4); - socketOut.writeByte(4); - socketOut.writeShort(seederPort); - socketOut.writeInt(filesNumber); - Files.lines(metaData).map(it -> Integer.parseInt(it.split("\t")[0])) - .forEach(it -> { - try { - socketOut.writeInt(it); - } catch (IOException e) { - e.printStackTrace(); - } - }); - socketOut.flush(); - socketIn.readByte(); - } - } catch (IOException e) { - e.printStackTrace(); - } - } -} diff --git a/server/src/main/java/itmo2018/se/ClientDataHolder.java b/server/src/main/java/itmo2018/se/ClientDataHolder.java index 7792081..5af3367 100644 --- a/server/src/main/java/itmo2018/se/ClientDataHolder.java +++ b/server/src/main/java/itmo2018/se/ClientDataHolder.java @@ -1,9 +1,7 @@ package itmo2018.se; -import java.io.*; import java.nio.ByteBuffer; import java.util.ArrayList; -import java.util.LinkedList; import java.util.List; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; From e1588916d8e334ae1ab92b7ef65527deb5aea982 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Thu, 13 Dec 2018 21:20:12 +0300 Subject: [PATCH 16/31] server jar --- .../build/libs/TorrentServer-1.0-SNAPSHOT.jar | Bin 0 -> 15364 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 server/build/libs/TorrentServer-1.0-SNAPSHOT.jar diff --git a/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar b/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..1edefa6b3071ae8a006e7462d6bcd0b34f89f4bb GIT binary patch literal 15364 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 XOM!k>i2?w?e*Kn#0RYh0|2q3$*8ufV literal 0 HcmV?d00001 From 8ca9dc56d286465ddf253077d3cbd4567cdd8439 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Thu, 13 Dec 2018 21:35:52 +0300 Subject: [PATCH 17/31] fix server jar --- .../build/libs/TorrentServer-1.0-SNAPSHOT.jar | Bin 15364 -> 15441 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar b/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar index 1edefa6b3071ae8a006e7462d6bcd0b34f89f4bb..50266b7c9117d2441f4acda0a34745b7b83d8428 100644 GIT binary patch delta 3755 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 XB_d)W`oF4hA=z From 4cd2eb2299fe76808f3539f4da690030827c88a5 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Thu, 13 Dec 2018 21:43:39 +0300 Subject: [PATCH 18/31] fix server jar 2 --- .../build/libs/TorrentServer-1.0-SNAPSHOT.jar | Bin 15441 -> 15503 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar b/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar index 50266b7c9117d2441f4acda0a34745b7b83d8428..a7e21fd2f966b0c4782f6ade4e3f016da7d77f75 100644 GIT binary patch delta 3819 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 LUb1Z1-P?Zv2~208 delta 3736 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 nav)rH(S$xx5QVPhJzP4x|E Date: Fri, 14 Dec 2018 01:27:20 +0300 Subject: [PATCH 19/31] add MetaDataManager --- client/src/main/java/itmo2018/se/Client.java | 49 +++---- .../src/main/java/itmo2018/se/ClientMain.java | 9 +- client/src/main/java/itmo2018/se/Leech.java | 10 +- .../java/itmo2018/se/MetaDataManager.java | 131 ++++++++++++++++++ .../main/java/itmo2018/se/MetaDataNote.java | 63 +++++++++ client/src/main/java/itmo2018/se/Seeder.java | 26 ++-- server/build.gradle | 6 + .../src/main/java/itmo2018/se/ClientInfo.java | 3 - .../main/java/itmo2018/se/FileManager.java | 2 - server/src/main/java/itmo2018/se/Server.java | 5 +- 10 files changed, 259 insertions(+), 45 deletions(-) create mode 100644 client/src/main/java/itmo2018/se/MetaDataManager.java create mode 100644 client/src/main/java/itmo2018/se/MetaDataNote.java diff --git a/client/src/main/java/itmo2018/se/Client.java b/client/src/main/java/itmo2018/se/Client.java index ef88427..ad2ba27 100644 --- a/client/src/main/java/itmo2018/se/Client.java +++ b/client/src/main/java/itmo2018/se/Client.java @@ -4,8 +4,6 @@ import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketAddress; -import java.nio.file.Files; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Executors; @@ -13,16 +11,16 @@ import java.util.concurrent.TimeUnit; public class Client implements Closeable { - private String metaData; + private MetaDataManager metaData; private Socket socket; private DataOutputStream socketOut; private DataInputStream socketIn; private ScheduledExecutorService scheduled; - public Client(String workingDir) throws IOException { - this.socket = new Socket("localhost", 8081); - this.metaData = workingDir + "/.metadata"; + public Client(MetaDataManager metaData) throws IOException { + this.socket = new Socket("192.168.1.2", 8081); + this.metaData = metaData; try { socketOut = new DataOutputStream(socket.getOutputStream()); socketIn = new DataInputStream(socket.getInputStream()); @@ -40,10 +38,10 @@ public List getSources(int id) throws IOException { int size = socketIn.readInt(); List res = new ArrayList<>(size); for (int i = 0; i < size; i++) { - byte ip1 = socketIn.readByte(); - byte ip2 = socketIn.readByte(); - byte ip3 = socketIn.readByte(); - byte ip4 = socketIn.readByte(); + int ip1 = byteToInt(socketIn.readByte()); + int ip2 = byteToInt(socketIn.readByte()); + int ip3 = byteToInt(socketIn.readByte()); + int ip4 = byteToInt(socketIn.readByte()); int port = shortToInt(socketIn.readShort()); InetSocketAddress address = new InetSocketAddress(ip1 + "." + ip2 + "." + ip3 + "." + ip4, port); res.add(address); @@ -86,30 +84,22 @@ public void upload(String filePath) throws IOException { socketOut.flush(); int id = socketIn.readInt(); - - try (OutputStream metaDataFile = new FileOutputStream(metaData)) { - metaDataFile.write((id + "\t" + file.getAbsolutePath() + "\t" + -1 + "\n").getBytes()); - } + metaData.addNote(id, file.getAbsolutePath(), file.length()); System.out.println("new file id: " + id); } } public void update(short seederPort) throws IOException { synchronized (socketOut) { - int filesNumber = (int) Files.lines(Paths.get(metaData)).count(); - System.out.println("filesNumber: " + filesNumber); - socketOut.writeInt(1 + 2 + (filesNumber + 1) * 4); + int filesCount = metaData.filesCount(); + System.out.println("filesNumber: " + filesCount); + socketOut.writeInt(1 + 2 + (filesCount + 1) * 4); socketOut.writeByte(4); socketOut.writeShort(seederPort); - socketOut.writeInt(filesNumber); - Files.lines(Paths.get(metaData)).map(it -> Integer.parseInt(it.split("\t")[0])) - .forEach(it -> { - try { - socketOut.writeInt(it); - } catch (IOException e) { - e.printStackTrace(); - } - }); + socketOut.writeInt(filesCount); + for (int id : metaData.idSet()) { + socketOut.writeInt(id); + } socketOut.flush(); socketIn.readByte(); } @@ -134,6 +124,13 @@ public void close() throws IOException { } } + private int byteToInt(byte b) { + if (b >= 0) { + return b; + } + return 128 + 128 + b; + } + private int shortToInt(short s) { if (s >= 0) { return s; diff --git a/client/src/main/java/itmo2018/se/ClientMain.java b/client/src/main/java/itmo2018/se/ClientMain.java index d39c10d..166bd4f 100644 --- a/client/src/main/java/itmo2018/se/ClientMain.java +++ b/client/src/main/java/itmo2018/se/ClientMain.java @@ -20,11 +20,11 @@ public static void main(String[] args) throws IOException { } public void run(String workingDir) throws IOException { - initWorkingDir(workingDir); + MetaDataManager metaData = initWorkingDir(workingDir); Client client; try { - client = new Client(workingDir); + client = new Client(metaData); } catch (IOException e) { System.out.println("can't connect to server"); return; @@ -38,7 +38,7 @@ public void run(String workingDir) throws IOException { System.out.println("port: " + seederServer.getLocalPort()); client.startUpdat(seedPort); - Seeder seeder = new Seeder(seederServer, workingDir); + Seeder seeder = new Seeder(seederServer, metaData); Thread seederThred = new Thread(seeder); seederThred.setDaemon(true); seederThred.start(); @@ -109,12 +109,13 @@ public void run(String workingDir) throws IOException { } } - private void initWorkingDir(String workingDir) throws IOException { + private MetaDataManager initWorkingDir(String workingDir) throws IOException { System.out.println("working dir:\t" + workingDir); File metaData = new File(workingDir + "/.metadata"); if (!metaData.exists()) { metaData.createNewFile(); } + return new MetaDataManager(metaData); } private boolean isPositiveInt(String str) { diff --git a/client/src/main/java/itmo2018/se/Leech.java b/client/src/main/java/itmo2018/se/Leech.java index 789fa8f..b490b75 100644 --- a/client/src/main/java/itmo2018/se/Leech.java +++ b/client/src/main/java/itmo2018/se/Leech.java @@ -26,8 +26,16 @@ public void run() { DataInputStream socketIn = new DataInputStream(socket.getInputStream()); DataOutputStream socketOut = new DataOutputStream(socket.getOutputStream()); socketOut.writeByte(1); - socketOut.writeInt(4); + socketOut.writeInt(fileId); socketOut.flush(); + + int partsCount = socketIn.readInt(); + for (int i = 0; i < partsCount; i++) { + int part = socketIn.readInt(); + System.out.print(part + "\t"); + } + System.out.println(); + socket.close(); } catch (IOException e) { System.out.println("can't connect to seeder"); } diff --git a/client/src/main/java/itmo2018/se/MetaDataManager.java b/client/src/main/java/itmo2018/se/MetaDataManager.java new file mode 100644 index 0000000..365cb1e --- /dev/null +++ b/client/src/main/java/itmo2018/se/MetaDataManager.java @@ -0,0 +1,131 @@ +package itmo2018.se; + +import java.io.*; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +public class MetaDataManager { + private File file; + private int filesCount; + + public MetaDataManager(File file) throws IOException { + this.file = file; + if (!file.exists() || file.isDirectory()) { + throw new FileNotFoundException(); + } + this.filesCount = (int) Files.lines(file.toPath()).count(); + } + + public void addNote(int id, String name, long size) throws IOException { + try (OutputStream writer = new FileOutputStream(file)) { + writer.write((id + "\t" + name + "\t" + size + "\t" + -1 + "\n").getBytes()); + } + filesCount++; + } + + public void addNote(int id, String name, long size, Set parts) throws IOException { + long partSize = 1024L * 1024L * 5; + int partsCount = (int) ((size - 1) / partSize + 1); + if (parts.size() == partsCount) { + addNote(id, name, size); + } else { + try (OutputStream writer = new FileOutputStream(file)) { + writer.write((id + "\t" + name + "\t" + size).getBytes()); + for (int part : parts) { + writer.write(("\t" + part).getBytes()); + } + writer.write("\n".getBytes()); + } + } + filesCount++; + } + + public void addPart(int id, int part) throws IOException { + List lines = Files.lines(file.toPath()).collect(Collectors.toList()); + try (OutputStream writer = new FileOutputStream(file, false)) { + for (String line : lines) { + if (line.startsWith(id + "\t")) { + String[] data = line.split("\t"); + if (data.length == 3) { + writer.write((line + "\t" + part + "\n").getBytes()); + } else if (!data[3].equals("-1")) { + writer.write((line + "," + part + "\n").getBytes()); + } + } else { + writer.write((line + "\n").getBytes()); + } + } + } + } + + public void deleteNote(int id) throws IOException { + List lines = Files.lines(file.toPath()).collect(Collectors.toList()); + try (OutputStream writer = new FileOutputStream(file, false)) { + for (String line : lines) { + if (!line.startsWith(id + "\t")) { + writer.write((line + "\n").getBytes()); + } else { + filesCount--; + } + } + } + } + + public MetaDataNote getNote(int id) throws IOException { + Optional optionalfileDescription = Files.lines(file.toPath()) + .filter(it -> it.startsWith(id + "\t")) + .map(it -> it.split("\t")) + .findFirst(); + if (!optionalfileDescription.isPresent()) { + return null; + } + String[] fileDescription = optionalfileDescription.get(); + if (fileDescription[3].equals("-1")) { + return new MetaDataNote(Integer.parseInt(fileDescription[0]), + fileDescription[1], Long.parseLong(fileDescription[2])); + } + Set parts = Arrays.stream(fileDescription[3].split(",")) + .map(Integer::parseInt).collect(Collectors.toSet()); + MetaDataNote result = new MetaDataNote(Integer.parseInt(fileDescription[0]), + fileDescription[1], Long.parseLong(fileDescription[2]), parts); + if (result.isFinish()) { + finishCollectParts(id); + } + return result; + } + + public int filesCount() { + return filesCount; + } + + public Set idSet() throws IOException { + return Files.lines(file.toPath()).map(it -> Integer.parseInt(it.split("\t")[0])) + .collect(Collectors.toSet()); + } + + private void finishCollectParts(int id) throws IOException { + List lines = Files.lines(file.toPath()).collect(Collectors.toList()); + try (OutputStream writer = new FileOutputStream(file, false)) { + for (String line : lines) { + if (line.startsWith(id + "\t")) { + String[] data = line.split("\t"); + writer.write((data[0] + "\t" + data[1] + "\t" + data[2] + "\t" + -1 + "\n").getBytes()); + } else { + writer.write((line + "\n").getBytes()); + } + } + } + } + +// private void isExist(int id) throws IOException { +// if (Files.lines(file.toPath()) +// .anyMatch(it -> it.startsWith(id + "\t"))) { +// throw new IOException("file with " + id + " id already exist"); +// } +// } +} diff --git a/client/src/main/java/itmo2018/se/MetaDataNote.java b/client/src/main/java/itmo2018/se/MetaDataNote.java new file mode 100644 index 0000000..7667dae --- /dev/null +++ b/client/src/main/java/itmo2018/se/MetaDataNote.java @@ -0,0 +1,63 @@ +package itmo2018.se; + +import java.io.File; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +public class MetaDataNote implements Iterable { + private int id; + private String name; + private long size; + private Set parts; + private boolean finish = false; + + public MetaDataNote(int id, String name, long size) { + this.id = id; + this.name = name; + this.size = size; + this.parts = new HashSet<>(); + int partSize = 1024 * 1024 * 5; + int partsCount = (int) ((size - 1) / partSize + 1); + for (int i = 0; i < partsCount; i++) { + parts.add(i); + } + this.finish = true; + } + + public MetaDataNote(int id, String name, long size, Set parts) { + this.id = id; + this.name = name; + this.size = size; + this.parts = parts; + } + + public int getId() { + return id; + } + + public String getName() { + return name; + } + + public long getSize() { + return size; + } + + public int partsCount() { + return parts.size(); + } + + public boolean isFinish() { + return finish; + } + + public boolean existFile() { + return new File(name).exists(); + } + + @Override + public Iterator iterator() { + return parts.iterator(); + } +} diff --git a/client/src/main/java/itmo2018/se/Seeder.java b/client/src/main/java/itmo2018/se/Seeder.java index fd7257b..3d88adf 100644 --- a/client/src/main/java/itmo2018/se/Seeder.java +++ b/client/src/main/java/itmo2018/se/Seeder.java @@ -1,9 +1,6 @@ package itmo2018.se; -import java.io.Closeable; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; +import java.io.*; import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.Executors; @@ -11,13 +8,13 @@ public class Seeder implements Runnable, Closeable { private ServerSocket server; - private String metaData; + private MetaDataManager metaData; private ThreadPoolExecutor poolExecutor; private int limitLeech = 4; - public Seeder(ServerSocket server, String workingDir) { + public Seeder(ServerSocket server, MetaDataManager metaData) { this.server = server; - this.metaData = workingDir + "/.metadata"; + this.metaData = metaData; poolExecutor = (ThreadPoolExecutor) Executors.newFixedThreadPool(limitLeech); } @@ -74,8 +71,21 @@ public void run() { } private void execStat(DataInputStream socketIn, DataOutputStream socketOut) throws IOException { - int id = socketIn.readInt(); System.out.println("Stat"); + int id = socketIn.readInt(); + MetaDataNote note = metaData.getNote(id); + if (note == null) { + socketOut.writeInt(0); + } else if (!note.existFile()) { + metaData.deleteNote(id); + socketOut.writeInt(0); + } else { + socketOut.writeInt(note.partsCount()); + for (int part : note) { + socketOut.writeInt(part); + } + } + socketOut.flush(); } private void execGet(DataInputStream socketIn, DataOutputStream socketOut) throws IOException { diff --git a/server/build.gradle b/server/build.gradle index c1cb40e..90cd737 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -11,6 +11,12 @@ repositories { mavenCentral() } +jar { + manifest { + attributes 'Main-Class': 'itmo2018.se.Server' + } +} + dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' } diff --git a/server/src/main/java/itmo2018/se/ClientInfo.java b/server/src/main/java/itmo2018/se/ClientInfo.java index e99020c..e2c01b2 100644 --- a/server/src/main/java/itmo2018/se/ClientInfo.java +++ b/server/src/main/java/itmo2018/se/ClientInfo.java @@ -1,7 +1,5 @@ package itmo2018.se; -import com.sun.istack.internal.Nullable; - import java.nio.channels.SocketChannel; import java.util.Arrays; import java.util.Objects; @@ -43,7 +41,6 @@ public boolean isOnline() { return !closeTask.isDone(); } - @Nullable public int getSharingPort() { return sharingPort; } diff --git a/server/src/main/java/itmo2018/se/FileManager.java b/server/src/main/java/itmo2018/se/FileManager.java index 63001a5..ce00143 100644 --- a/server/src/main/java/itmo2018/se/FileManager.java +++ b/server/src/main/java/itmo2018/se/FileManager.java @@ -1,7 +1,5 @@ package itmo2018.se; -import java.util.List; - public interface FileManager extends Iterable { FileInfo getFile(int id); diff --git a/server/src/main/java/itmo2018/se/Server.java b/server/src/main/java/itmo2018/se/Server.java index 488b978..50295c3 100644 --- a/server/src/main/java/itmo2018/se/Server.java +++ b/server/src/main/java/itmo2018/se/Server.java @@ -5,6 +5,7 @@ import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.ServerSocket; +import java.net.Socket; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; @@ -40,8 +41,10 @@ public Server() throws IOException { public void run() throws IOException { serverSocketChannel = ServerSocketChannel.open(); - InetSocketAddress socketAddress = new InetSocketAddress("localhost", 8081); + Socket getIp = new Socket("2ip.ru", 80); + InetSocketAddress socketAddress = new InetSocketAddress(getIp.getLocalAddress().getHostAddress(), 8081); serverSocketChannel.bind(socketAddress); + System.out.println("server adress: " + serverSocketChannel.socket().getLocalSocketAddress()); selector = Selector.open(); Selector writerSelector = Selector.open(); Writer writer = new Writer(writerSelector); From 657bc013a0e00d68c69d2b890708a053867b0404 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Sat, 15 Dec 2018 19:51:36 +0300 Subject: [PATCH 20/31] connected leech and seed --- client/build.gradle | 5 + client/src/main/java/itmo2018/se/Client.java | 9 +- .../src/main/java/itmo2018/se/ClientMain.java | 10 +- client/src/main/java/itmo2018/se/Leech.java | 220 ++++++++++++++++-- .../java/itmo2018/se/MetaDataManager.java | 18 +- .../main/java/itmo2018/se/MetaDataNote.java | 25 +- client/src/main/java/itmo2018/se/Seeder.java | 62 +++-- .../java/itmo2018/se/ListFileManager.java | 2 +- 8 files changed, 295 insertions(+), 56 deletions(-) diff --git a/client/build.gradle b/client/build.gradle index 12e0e5d..0188e09 100644 --- a/client/build.gradle +++ b/client/build.gradle @@ -15,9 +15,14 @@ jar { manifest { attributes 'Main-Class': 'itmo2018.se.ClientMain' } + + from { + configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } + } } dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile group: 'org.apache.commons', name: 'commons-io', version: '1.3.2' + compile group: 'org.apache.commons', name: 'commons-collections4', version: '4.2' } diff --git a/client/src/main/java/itmo2018/se/Client.java b/client/src/main/java/itmo2018/se/Client.java index ad2ba27..40ced6c 100644 --- a/client/src/main/java/itmo2018/se/Client.java +++ b/client/src/main/java/itmo2018/se/Client.java @@ -46,25 +46,26 @@ public List getSources(int id) throws IOException { InetSocketAddress address = new InetSocketAddress(ip1 + "." + ip2 + "." + ip3 + "." + ip4, port); res.add(address); System.out.println(address); -// System.out.println("ip: " + ip1 + "." + ip2 + "." + ip3 + "." + ip4 + -// "\t port: " + port); } return res; } } - public void getList() throws IOException { + public List getList() throws IOException { synchronized (socketOut) { socketOut.writeInt(1); socketOut.writeByte(1); int count = socketIn.readInt(); + List result = new ArrayList<>(); for (int i = 0; i < count; i++) { int fileId = socketIn.readInt(); String fileName = socketIn.readUTF(); long fileSize = socketIn.readLong(); + result.add(new MetaDataNote(fileId, fileName, fileSize)); System.out.println(fileId + "\t" + fileName + "\t" + fileSize); } + return result; } } @@ -84,7 +85,7 @@ public void upload(String filePath) throws IOException { socketOut.flush(); int id = socketIn.readInt(); - metaData.addNote(id, file.getAbsolutePath(), file.length()); + metaData.addReadyNote(id, file.getAbsolutePath(), file.length()); System.out.println("new file id: " + id); } } diff --git a/client/src/main/java/itmo2018/se/ClientMain.java b/client/src/main/java/itmo2018/se/ClientMain.java index 166bd4f..224329e 100644 --- a/client/src/main/java/itmo2018/se/ClientMain.java +++ b/client/src/main/java/itmo2018/se/ClientMain.java @@ -29,7 +29,6 @@ public void run(String workingDir) throws IOException { System.out.println("can't connect to server"); return; } -// Socket tmp = new Socket("vk.com", 80); ServerSocket seederServer = new ServerSocket(); seederServer.bind(client.getSocketLocalAdress()); seederServer.setReceiveBufferSize(1024); @@ -39,9 +38,9 @@ public void run(String workingDir) throws IOException { client.startUpdat(seedPort); Seeder seeder = new Seeder(seederServer, metaData); - Thread seederThred = new Thread(seeder); - seederThred.setDaemon(true); - seederThred.start(); + Thread seederThread = new Thread(seeder); + seederThread.setDaemon(true); + seederThread.start(); Scanner scanner = new Scanner(System.in); while (true) { @@ -56,7 +55,8 @@ public void run(String workingDir) throws IOException { System.out.println("id must be positive integer number"); continue; } - new Leech(Integer.parseInt(cmdLine[1]), client, workingDir).run(); + //TODO добавить пул личей + new Leech(Integer.parseInt(cmdLine[1]), client, metaData).run(); break; case "list": if (cmdLine.length != 1) { diff --git a/client/src/main/java/itmo2018/se/Leech.java b/client/src/main/java/itmo2018/se/Leech.java index b490b75..145ea26 100644 --- a/client/src/main/java/itmo2018/se/Leech.java +++ b/client/src/main/java/itmo2018/se/Leech.java @@ -1,28 +1,161 @@ package itmo2018.se; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; +import org.apache.commons.collections4.SetUtils; + +import java.io.*; import java.net.InetSocketAddress; import java.net.Socket; +import java.util.*; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.Executors; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.function.Function; +import java.util.stream.Collectors; public class Leech implements Runnable { - private String metaData; + private MetaDataManager metaData; private int fileId; private Client client; + private ThreadPoolExecutor downloadPool = (ThreadPoolExecutor) Executors.newFixedThreadPool(8); + private final Object mutex = new Object(); - public Leech(int fileId, Client client, String workingDir) { + public Leech(int fileId, Client client, MetaDataManager metaData) { this.fileId = fileId; this.client = client; - this.metaData = workingDir + "/.metadata"; + this.metaData = metaData; } @Override public void run() { + FileWriter writer = null; try { - Socket socket = new Socket(); - InetSocketAddress address = client.getSources(fileId).get(0); - socket.connect(address); + MetaDataNote note = metaData.getNote(fileId); + if (note != null && !note.existFile()) { + metaData.deleteNote(fileId); + System.out.println("name: " + note.getName()); + } + List owners = client.getSources(fileId); + if (owners.size() == 0) { + System.out.println("no active seeders, please try later"); + return; + } + + MetaDataNote fileInfo = client.getList().get(fileId); + Set parts; + if (note == null) { + metaData.addNote(fileInfo.getId(), fileInfo.getName(), fileInfo.getSize()); + parts = new HashSet<>(); + } else { + parts = note.getParts(); + } + + Map neededParts = SetUtils.difference(fileInfo.getParts(), parts) + .stream().collect(Collectors.toConcurrentMap(Function.identity(), + it -> new PartInfo(it, DownloadStatus.WAITING))); + + writer = new FileWriter(fileInfo); + writer.start(); + + int finish; + do { + for (InetSocketAddress owner : owners) { + downloadPool.submit(new Downloader(owner, fileInfo, neededParts, writer)); + } + Thread.sleep(20000); + finish = (int) neededParts.values().stream().filter(it -> it.status == DownloadStatus.FINISH).count(); + } while (downloadPool.getActiveCount() > 0 && finish < neededParts.size()); + + if (finish == neededParts.size()) { + metaData.finishCollectParts(fileId); + System.out.println("finish download file " + fileInfo.getName()); + } else { + System.out.println("not possible to download the whole file because there are no seeders"); + } + } catch (IOException e) { + System.out.println("can't connect to seeder"); + } catch (InterruptedException e) { + e.printStackTrace(); + } finally { + downloadPool.shutdown(); + if (writer != null) { + writer.interrupt(); + } + } + } + + private class Downloader implements Runnable { + InetSocketAddress address; + final Map neededParts; + MetaDataNote fileInfo; + FileWriter writer; + + Downloader(InetSocketAddress address, MetaDataNote fileInfo, Map neededParts, + FileWriter writer) { + this.address = address; + this.neededParts = neededParts; + this.fileInfo = fileInfo; + this.writer = writer; + } + + @Override + public void run() { + try (Socket socket = new Socket()) { + socket.connect(address); + Set userParts = getStat(socket); + + for (Map.Entry neededPart : neededParts.entrySet()) { + int partNumber = neededPart.getKey(); + if (!userParts.contains(partNumber)) { + continue; + } + PartInfo partInfo = neededPart.getValue(); + if (partInfo.status == DownloadStatus.WAITING) { + synchronized (neededParts) { + partInfo = neededParts.get(partNumber); + if (partInfo.status == DownloadStatus.WAITING) { + partInfo.status = DownloadStatus.IN_PROGRESS; + } else { + continue; + } + } + try { + byte[] bytes = download(socket, partNumber); + System.out.println("download part " + partNumber); + partInfo.content = bytes; + writer.addPart(partInfo); + } catch (IOException e) { + partInfo.status = DownloadStatus.WAITING; + return; + } + } + } + } catch (IOException e) { + System.out.println("seeder " + address + " is busy"); + } finally { + synchronized (mutex) { + mutex.notify(); + } + } + } + + private byte[] download(Socket socket, int part) throws IOException { + DataInputStream socketIn = new DataInputStream(socket.getInputStream()); + DataOutputStream socketOut = new DataOutputStream(socket.getOutputStream()); + socketOut.writeByte(2); + socketOut.writeInt(fileInfo.getId()); + socketOut.writeInt(part); + socketOut.flush(); + + int partSize = socketIn.readInt(); + byte[] bytes = new byte[partSize]; + for (int i = 0; i < partSize; i++) { + bytes[i] = socketIn.readByte(); + } + return bytes; + } + + private Set getStat(Socket socket) throws IOException { DataInputStream socketIn = new DataInputStream(socket.getInputStream()); DataOutputStream socketOut = new DataOutputStream(socket.getOutputStream()); socketOut.writeByte(1); @@ -30,14 +163,73 @@ public void run() { socketOut.flush(); int partsCount = socketIn.readInt(); + Set result = new HashSet<>(); for (int i = 0; i < partsCount; i++) { int part = socketIn.readInt(); - System.out.print(part + "\t"); + result.add(part); } - System.out.println(); - socket.close(); - } catch (IOException e) { - System.out.println("can't connect to seeder"); + return result; + } + } + + private class FileWriter extends Thread { + MetaDataNote fileInfo; + BlockingQueue queue = new LinkedBlockingQueue<>(); + + FileWriter(MetaDataNote fileInfo) { + this.fileInfo = fileInfo; + } + + void addPart(PartInfo partInfo) { + try { + queue.put(partInfo); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + @Override + public void run() { + int partSize = 1024 * 1024 * 5; + File file = new File(fileInfo.getName()); + if (!file.exists()) { + try { + file.createNewFile(); + } catch (IOException e) { + System.out.println("file could not be created"); + } + } + try (RandomAccessFile accessfile = new RandomAccessFile(file, "rw")) { + while (!this.isInterrupted() || queue.size() > 0) { + //TODO переделать queue + PartInfo partInfo = queue.take(); + + accessfile.seek(partSize * partInfo.number); + accessfile.write(partInfo.content); + + metaData.addPart(fileInfo.getId(), partInfo.number); + partInfo.status = DownloadStatus.FINISH; + } + } catch (IOException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + //return from writer + } + } + } + + private enum DownloadStatus { + WAITING, IN_PROGRESS, FINISH + } + + private class PartInfo { + int number; + volatile byte[] content; + volatile DownloadStatus status; + + PartInfo(int number, DownloadStatus status) { + this.number = number; + this.status = status; } } } diff --git a/client/src/main/java/itmo2018/se/MetaDataManager.java b/client/src/main/java/itmo2018/se/MetaDataManager.java index 365cb1e..1adc510 100644 --- a/client/src/main/java/itmo2018/se/MetaDataManager.java +++ b/client/src/main/java/itmo2018/se/MetaDataManager.java @@ -2,7 +2,6 @@ import java.io.*; import java.nio.file.Files; -import java.nio.file.Paths; import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -21,20 +20,27 @@ public MetaDataManager(File file) throws IOException { this.filesCount = (int) Files.lines(file.toPath()).count(); } - public void addNote(int id, String name, long size) throws IOException { - try (OutputStream writer = new FileOutputStream(file)) { + public void addReadyNote(int id, String name, long size) throws IOException { + try (OutputStream writer = new FileOutputStream(file, true)) { writer.write((id + "\t" + name + "\t" + size + "\t" + -1 + "\n").getBytes()); } filesCount++; } + public void addNote(int id, String name, long size) throws IOException { + try (OutputStream writer = new FileOutputStream(file, true)) { + writer.write((id + "\t" + name + "\t" + size + "\n").getBytes()); + } + filesCount++; + } + public void addNote(int id, String name, long size, Set parts) throws IOException { long partSize = 1024L * 1024L * 5; int partsCount = (int) ((size - 1) / partSize + 1); if (parts.size() == partsCount) { - addNote(id, name, size); + addReadyNote(id, name, size); } else { - try (OutputStream writer = new FileOutputStream(file)) { + try (OutputStream writer = new FileOutputStream(file, true)) { writer.write((id + "\t" + name + "\t" + size).getBytes()); for (int part : parts) { writer.write(("\t" + part).getBytes()); @@ -108,7 +114,7 @@ public Set idSet() throws IOException { .collect(Collectors.toSet()); } - private void finishCollectParts(int id) throws IOException { + public void finishCollectParts(int id) throws IOException { List lines = Files.lines(file.toPath()).collect(Collectors.toList()); try (OutputStream writer = new FileOutputStream(file, false)) { for (String line : lines) { diff --git a/client/src/main/java/itmo2018/se/MetaDataNote.java b/client/src/main/java/itmo2018/se/MetaDataNote.java index 7667dae..a4e6dde 100644 --- a/client/src/main/java/itmo2018/se/MetaDataNote.java +++ b/client/src/main/java/itmo2018/se/MetaDataNote.java @@ -16,12 +16,6 @@ public MetaDataNote(int id, String name, long size) { this.id = id; this.name = name; this.size = size; - this.parts = new HashSet<>(); - int partSize = 1024 * 1024 * 5; - int partsCount = (int) ((size - 1) / partSize + 1); - for (int i = 0; i < partsCount; i++) { - parts.add(i); - } this.finish = true; } @@ -44,7 +38,17 @@ public long getSize() { return size; } + public Set getParts() { + if (parts == null) { + initParts(); + } + return parts; + } + public int partsCount() { + if (parts == null) { + initParts(); + } return parts.size(); } @@ -60,4 +64,13 @@ public boolean existFile() { public Iterator iterator() { return parts.iterator(); } + + private void initParts() { + this.parts = new HashSet<>(); + int partSize = 1024 * 1024 * 5; + int partsCount = (int) ((size - 1) / partSize + 1); + for (int i = 0; i < partsCount; i++) { + parts.add(i); + } + } } diff --git a/client/src/main/java/itmo2018/se/Seeder.java b/client/src/main/java/itmo2018/se/Seeder.java index 3d88adf..169ab8e 100644 --- a/client/src/main/java/itmo2018/se/Seeder.java +++ b/client/src/main/java/itmo2018/se/Seeder.java @@ -23,8 +23,9 @@ public void run() { while (true) { try { Socket socket = server.accept(); - if (poolExecutor.getTaskCount() >= limitLeech) { + if (poolExecutor.getActiveCount() >= limitLeech) { socket.close(); + continue; } poolExecutor.submit(new Executor(socket)); } catch (IOException e) { @@ -41,6 +42,7 @@ public void close() throws IOException { private class Executor implements Runnable { Socket socket; + RandomAccessFile file = null; Executor(Socket socket) { this.socket = socket; @@ -48,30 +50,34 @@ private class Executor implements Runnable { @Override public void run() { - try { - DataInputStream socketIn = new DataInputStream(socket.getInputStream()); - DataOutputStream socketOut = new DataOutputStream(socket.getOutputStream()); - while (true) { - byte cmd = socketIn.readByte(); - if (cmd == 1) { - execStat(socketIn, socketOut); - } else { - execGet(socketIn, socketOut); + System.out.println("run seeder"); + while (true) { + try (DataInputStream socketIn = new DataInputStream(socket.getInputStream()); + DataOutputStream socketOut = new DataOutputStream(socket.getOutputStream())) { + while (true) { + byte cmd = socketIn.readByte(); + if (cmd == 1) { + execStat(socketIn, socketOut); + } else { + execGet(socketIn, socketOut); + } } + } catch (IOException e) { + System.out.println("leech disconected"); } - } catch (IOException e) { - System.out.println("leech disconected"); - } - try { - socket.close(); - } catch (IOException e) { - e.printStackTrace(); + try { + socket.close(); + if (file != null) { + file.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + return; } - } private void execStat(DataInputStream socketIn, DataOutputStream socketOut) throws IOException { - System.out.println("Stat"); int id = socketIn.readInt(); MetaDataNote note = metaData.getNote(id); if (note == null) { @@ -91,7 +97,23 @@ private void execStat(DataInputStream socketIn, DataOutputStream socketOut) thro private void execGet(DataInputStream socketIn, DataOutputStream socketOut) throws IOException { int id = socketIn.readInt(); int part = socketIn.readInt(); - System.out.println("Get"); + + System.out.println("needed part: " + part); + + MetaDataNote note = metaData.getNote(id); + if (file == null) { + file = new RandomAccessFile(note.getName(), "r"); + } + long defaultPartSize = 1024 * 1024 * 5; + file.seek(defaultPartSize * part); + int partSize = (int) (file.length() - defaultPartSize * part > defaultPartSize ? + defaultPartSize : file.length() - defaultPartSize * part); + byte[] bytes = new byte[partSize]; + file.read(bytes); + + socketOut.writeInt(partSize); + socketOut.write(bytes); + socketOut.flush(); } } } diff --git a/server/src/main/java/itmo2018/se/ListFileManager.java b/server/src/main/java/itmo2018/se/ListFileManager.java index c9f6c99..e673c15 100644 --- a/server/src/main/java/itmo2018/se/ListFileManager.java +++ b/server/src/main/java/itmo2018/se/ListFileManager.java @@ -25,7 +25,7 @@ public FileInfo getFile(int id) { public int registerFile(String name, long size, ClientInfo owner) { int id = files.size(); files.add(new FileInfo(id, name, size, owner)); - try (OutputStream metaData = new FileOutputStream("metadata")) { + try (OutputStream metaData = new FileOutputStream("metadata", true)) { metaData.write((id + "\t" + name + "\t" + size + "\n").getBytes()); } catch (Exception e) { System.out.println("can't write id to metadata file"); From d81a50fdcad6c0bfca60a39686d12f43236b85e8 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Sat, 15 Dec 2018 20:23:18 +0300 Subject: [PATCH 21/31] fix command source --- .../src/main/java/itmo2018/se/ClientMain.java | 2 +- client/src/main/java/itmo2018/se/Leech.java | 5 ++++- .../build/libs/TorrentServer-1.0-SNAPSHOT.jar | Bin 15503 -> 15655 bytes .../src/main/java/itmo2018/se/Executor.java | 10 ++++++++-- .../src/main/java/itmo2018/se/FileInfo.java | 4 ++++ 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/client/src/main/java/itmo2018/se/ClientMain.java b/client/src/main/java/itmo2018/se/ClientMain.java index 224329e..d9ac38c 100644 --- a/client/src/main/java/itmo2018/se/ClientMain.java +++ b/client/src/main/java/itmo2018/se/ClientMain.java @@ -56,7 +56,7 @@ public void run(String workingDir) throws IOException { continue; } //TODO добавить пул личей - new Leech(Integer.parseInt(cmdLine[1]), client, metaData).run(); + new Leech(Integer.parseInt(cmdLine[1]), client, metaData, seedPort).run(); break; case "list": if (cmdLine.length != 1) { diff --git a/client/src/main/java/itmo2018/se/Leech.java b/client/src/main/java/itmo2018/se/Leech.java index 145ea26..84b314e 100644 --- a/client/src/main/java/itmo2018/se/Leech.java +++ b/client/src/main/java/itmo2018/se/Leech.java @@ -19,11 +19,13 @@ public class Leech implements Runnable { private Client client; private ThreadPoolExecutor downloadPool = (ThreadPoolExecutor) Executors.newFixedThreadPool(8); private final Object mutex = new Object(); + private short ownSeederPort; - public Leech(int fileId, Client client, MetaDataManager metaData) { + public Leech(int fileId, Client client, MetaDataManager metaData, short ownSeederPort) { this.fileId = fileId; this.client = client; this.metaData = metaData; + this.ownSeederPort = ownSeederPort; } @Override @@ -72,6 +74,7 @@ public void run() { } else { System.out.println("not possible to download the whole file because there are no seeders"); } + client.update(ownSeederPort); } catch (IOException e) { System.out.println("can't connect to seeder"); } catch (InterruptedException e) { diff --git a/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar b/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar index a7e21fd2f966b0c4782f6ade4e3f016da7d77f75..4b92879bbc043a1a53ce50fb3be2c48e93cd18b7 100644 GIT binary patch delta 5644 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 delta 5444 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 U@up~K#DDf8CK?)2>Yvm90UEa>O#lD@ diff --git a/server/src/main/java/itmo2018/se/Executor.java b/server/src/main/java/itmo2018/se/Executor.java index 53e790f..ca7b550 100644 --- a/server/src/main/java/itmo2018/se/Executor.java +++ b/server/src/main/java/itmo2018/se/Executor.java @@ -2,6 +2,7 @@ import java.io.*; import java.nio.ByteBuffer; +import java.util.Arrays; import java.util.Iterator; import java.util.concurrent.Callable; @@ -82,10 +83,15 @@ private void executeSources() throws IOException { response.putInt(0); } else { FileInfo file = fileManager.getFile(id); - response = ByteBuffer.allocate(4 + file.ownersNumber() * (4 + 2)); - response.putInt(file.ownersNumber()); + int ownersNumber = file.hasOwner(client.getClientInfo()) ? + file.ownersNumber() - 1 : file.ownersNumber(); + response = ByteBuffer.allocate(4 + ownersNumber * (4 + 2)); + response.putInt(ownersNumber); for (Iterator it = file.owners(); it.hasNext(); ) { ClientInfo clientInfo = it.next(); + if (client.getClientInfo().equals(clientInfo)) { + continue; + } response.put(clientInfo.getIp()); response.putShort((short) clientInfo.getSharingPort()); } diff --git a/server/src/main/java/itmo2018/se/FileInfo.java b/server/src/main/java/itmo2018/se/FileInfo.java index 401c8d2..c41112a 100644 --- a/server/src/main/java/itmo2018/se/FileInfo.java +++ b/server/src/main/java/itmo2018/se/FileInfo.java @@ -39,6 +39,10 @@ public int ownersNumber() { return owners.size(); } + public boolean hasOwner(ClientInfo clientInfo) { + return owners.contains(clientInfo); + } + public Iterator owners() { return owners.iterator(); } From 8ced43fd83f80a74d3064d56fe99116c93fc6679 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Sat, 15 Dec 2018 20:36:42 +0300 Subject: [PATCH 22/31] client jar --- .../build/libs/TorrentClient-1.0-SNAPSHOT.jar | Bin 0 -> 855638 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 client/build/libs/TorrentClient-1.0-SNAPSHOT.jar diff --git a/client/build/libs/TorrentClient-1.0-SNAPSHOT.jar b/client/build/libs/TorrentClient-1.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..66480a13490272b37f26c4b42332465bda755b1f GIT binary patch literal 855638 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%0DsCl=9rf;>isZ1UqJ|_;yqf;wd)e$ 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

Bqc+WPVmswMNnJrwhClUTfz_>(exxUs zsz}d>#u=^&0zJC5R%<N6xakApb~WZcl9!Z{6lYdK9<5;7^3 zz6-hc>OTdYS*@wt#03{8IDRY9*K(IG3H9=dbExK0PGg~mkPnLlbnat`S^J6y`p``G zyOnNL?sYXHAdj;Ed}bq|(Y&hBS=Ejwir|!E>N0TQ5G3dfsrd!Q23gktW^xPs{i^dn zkLS0NEY&irXe%LROnomQIkDtr{zCpGghbJ}`$ZGDpO>7xIO|nwwHcNo5e`1SpIBD8 zHWB^njVGGE{i@GAnfu0`d{Lg5++CBIni(6=u~r7@K1a45#Z0f^$7BBJdsDBT@1Pjg zoUMDxoBnCdEp87iVNQN=ptLv&TF7p-wuZn-VF@b-2IB)N9Y%S9F2E+p->FRo{S5rG zdcB2G`guUp!l+!NR|G`%k14Q|1L^J&y>h832a70MrkK~MEx{Vd_bI3;yjgh*WKUa8 zipi9ct*C`|D$iNS*LBvHa1ir_zDK=RXy3cIN?k|8{Y86du9ThEc2<3^8+8v}B4)rK zE-+=EsD~`eOsRFSy_`jxP%Z#-h-$0kq2LPY`N!GH#5VhdC3x@CBsIFLvby?w`=l=) znBROjp?3mA{sNwFm<|oI8+=b7hBk&D1cVPZOu`_Y{_dgV!NS}Ju>~E~dn{4x*fjv#n@-#}(TBg1yrCmX z#IV{Q5wb!zurO1?ghi*1+ycv(5%jFOLT<2RKIRMj#OKT>kSr&?h4KM9+u|qf(!6@l zR1Im|7)`~X*3Y~(tHAp8GBpeOKr5L!KuYa3$Seh#J5P&=x|9Plpe-GHQOn7?l*X}8 z7%vLR{d4I>LWQna_Nn<0(H3~+xzFgKreFbSetPPcF2fyG2F!f-FsmgVV5!Ugd9pWf z!+5#X9FM7-3dp-hNW!HG3&JfVPnY3uw3SECLFabCSe&#QVH{uH5VQ-@Ia-msX*oAu zndY@Td4s=xWL|y#rNQakz1Qw>;i21uX^EPpgYuT^|M)j1V=|Cc(pR?%MvK(}H) zMfj3-NV;B3V3R-0drWwldOu|?UrO=G;{h2@R?Hx06 z;Ib4J=6<)i|1nrc!I`Kk?OebhWYpUN6Tt)`jib0Uq2CU3q!P5}wFG05wa}2yt!sKI zn6Xu3gDEQ+N`#m8wR}tRdUy*VS|2NmGtf$XTEsGze`2jO;o+8bUkS^4)J~dwl&YA# z4+B;OWa355wQJ2V3@9tMAriH=v)Y~^cOZ_4*C+CuO_X!%wkjE%5V~3)(|-!jz!!OM z^-!sz&?6kH8R@U%v*jXuzmXUxFw7b~jT~SAt;BMwe86_li5|pJ%nbJ##@Ld3+5;;3 zsMv*#Cl;T-$^tfW#!|mE7Q9$$j!6N_+iGaxbiYKNk}VGG@R5b)c`r+!bKgIvS`JyoZfA>XKl9s3n~wR-9R(!+>3!(AV)=e`yM}~K6mPN zG8Wwi%FlgT(nj74*et?=hfOyUG==R(N}a(-eX3=i7jvWD44MvS*q{%H3)W*|Mz!xN zbvLK!;ry(x`|E2#A#%SMO>G5 z--m55G08V+|Bj8EAB}50H#?p_y@!kQe0N0CF^NF=A-HIuFFtI*owJYgA=`iL^6}HR z;9YMxn|&wywkevy_TGcLXNF6xiS76+d+)BJJRcq$<0^%!;RAGE{rZ&MKZIk4Avj4R zC?vT1hE zv-pZE*rZfW>LcN4C{yOv*m}UI?gLZpXLp0-spnawaEau|Jy(AeGgU1E=TT$?o@n@n zVwuUCOdB$K0je7FLKbOi4MqKetmWJUPqHdQb+J1T6H@2i<HHCLbOa=vMyPl|AD*blS-Gmqkl%N$8l>4FsLI8>Z zPos)4+=j@sE%lHobuZe608tyXKi90pG^_=Yfv01#&Ouf?w;%?uXVu7Vodr-~>&H?~ z;M&i-_J9w#`0Y&M{>?tOs0dQ;`{t+>VO+L?$)LpzvP29wNZrl&<^6;F&@5PgwRvLZ zFYBUW{UHgKV}yQwmSFi11M0z0{Dz4jg+NU4l10I2Fb6bV0U8rjRaL7$i=1_i61D_% ze|U&T?-!`h_E=b&rSqs4oKX*zZkQl^N@dZe*_qpV%N_6_&7iXg&_{{1V-TXd6$Inv z9(R=j>j@@#D=wNT-Y>_xvM+S5fE)a2#YaC4kWz?1s_<*1W|ry5;|qaK1mJ6b6Qaov z0EMgnCdAKF=SSRsT2K6BHSujGY>F_YxRx~BT-aYi&6O%iNup0!%g^Gk9)Ws*I^77` zmNBw&>Qg%k;NygTnV!KQdGEM5HtEMp2mLrUzt{ro9GmsyWs`6xV$pI_<&p7q`ptl# zW$;6`_k4Clmm#a~cve`Z^$Ft9ivQ)AT&R9BfQrCiVfh|nNgFWq%X%&_X8hj1)YH!} zsnrMgXRjqZKxPPX$Qlt$&6wGvMY*T(Ryhqk0^Vk_3QIVy!+L(A`T;+9#2{RYwzx%Kjh?-+HslF3=5-I*b%VEZHk zJWG2i+cdB8*{Z<|3I)_Hm%$A>QufiirQ*Hu-%ky0Ht39m>uUE~fr6gfd{&~%)613%i$ z&Wf#8YB(dN`5H30k1Ld#!Mbw^*UuzAS<@QxQ6|X}GjEauHAs$3Vhq1TRdY}>?fDo- zrZ>^}sg#5m!uw|Cp-gyPM7FI3s-n!s=0HMfFI7fdaxhj$CO;7^WcD2@Ujo(m3iS)1 z7w4k<#`BfZB8Sl>Nfo_kHFpRAz}g%*7MA3W*f1o@B~!SK*oK{`#t({B5w0Lx7J1SQ zmSr`;y85eU4hXtJeFxhHt^gY9in$f$i!hpY&tJf9A!gg6@@T~uf7!&Ba}8Vl9uBPF zHT-<}ko~eFm)ZgFt+E9Dssl0GPv_XdJO*195t(l$)=rK*V${8n!DmJ`+(JNn$N4++ zRG#;`?k>n3v#)x?IWHFE@q@;AlYd(E5|uSgCACGbpR7*7J;eGW8j_lJHwi*Lms04`dB*Z$O8ET8tg1hQ*kr$cl z)oH-q5K1>#EN~AWCbH9eF79;~gF=0i$U_FlX~4iufZ4(Wbfm&;b--*%gW2f@hrmqP zVn-ND-7=$6EWSSH2J8mL16ZeeCvHBtA2Te*`vA(kyOx%e8@6uIZGXkT0@FHR; z;H8^n1p!Wp@NhDU7B#Ehm&?l*{#4Af6<8$OGV%ow=DxsOp9=5(eP;Kl z-Fx&gkTRI@Xs?8{2tunje|Yu7_JA}pC;T3VhD07F1fMZq zS4qaesj25Z6DkC}SfwR{zN$<%d}crXZ87)0LeRVVo7@ikJ&yQK`ZWLg{|Fm68;Dq& z*qGQl|M#Dy{9l%HiZd zO(jmAqG0hR{}O{zfWnP7PsW(V7^sWJ3NResI0hXq)2y1#scfk_q~Yk8t-*wW9!yi4 z^~g+LPqJMqTTENWKW9%mU1!c-8h=XCIdt*ftgjGB>)v~eYl^Ig*_{(~$mbWVHrM|k+sp8tGJPE#DwGGO-6aUSEfu^VT!^t?AOGaVHk<$tBwV-edlTLC305 zgGOtMla8x_5M0>m8o)aDcPX*;$C+`hsblc~j~0ECIZ3kGsIX&`)w>hSDck`S&ch$` z@@^X?qr6}pht}-}av3?YQxKJpwc6oWNi$BI^mwMsq(FI1Ylby>&}NOv%ywWW;e5=- zA~Vft8wIaCSPt41W^L4%9JzjKN5(9MiR=XBeuN|DjlPax+y_Mmyo#7UyrtM4)V9^$ zS}So#GM_f%@HE-U#wk{t$_}9q<;ex#5~CCgzJi_9Dc3gp;zk55yW;XVibJv!yBQf@ zWQuJ%OQ4aWKoP|S7-BGCy-|3g@bAvUE~ZDn@nG>)fVappqG0xj5k>(6(f~{!{H`Z7 zUsRR8ij3r{9R!{L(o2=n3l_8GF!=_`21>E%JUL?re`o^|As456sJQC|^g(9=wnI3O z9r?1>zzyxlq7*~it*d-YN?5oc2BhmIK~a0l@?3EO>csAa*@#(Ts?A(qr8CsrNCRv2 zT-gh$FaMe}Wv=l9!r4zlzjBFDDL*Xuzr=hEF)6hamqfPMzb`YHWnc%Yl=>r)!!#nn zo_KMB`Df|}L1>TPzy2*#lifXQjO4p>Df}P02mbX${1XcEKRd7gJM%Y*x}De>sA&eM zQ5}^cFy=;wn1G)gdd)h1O*<*|6c=Gl0Foq8}WniB@z6E`ldP^2Rhy$lpwIn5(?-c~C zCZ$J9T{7pl$*ZT{uq05WdybLJa2wF1m!-=45Q?-N=aqmccG#Q}laeDP>TuOu(zxkp zJ$u&Jg_c}JIQ!T|Tam_&yA-wwWNf|l_&8MxPG}&#x^fOJmz*@HO?r}z?K0(iQ9ISs z_=EPkvt*t&N)^fWbVgZ01%8*I*OkO9BcGCf#d^~zZL&zCrK2SQR6-X*Oqne+DK7`7 z+!sESv#lFZyVk^!*tt@}AMADHB$=*E;Pj9^b>p!<-VyE%K4MkZn>hcJdSCJgdjmy* zdWu|gHK26>$Rc-n2ISyKi;+UrXx=JyZL}Nv+EWA%da0-*jY2!!c#>4{eFl{<7%v^N zKs;9#xpyCA_r=B{C+n}LG%M8%qdU7=?)h&T)twP6%+jp}-#s!(ml4iNUwLa}b{8|b zTWPElZhRQ#1-(PzH7&yzkBZ@NX)B4-Vmwx5C!Cpb74uB6D^5CC)9p+TmAl%o7gUv= zzvYhi1;)x?bTm8+%5Cn$uK`TVm3|xGn44PvM)GY5%G}5KiV(e=ea7YkcbVRg#3{me zN#!)eWU%4<&up`39TKQD@7=J(I*nZim6^30v~~4Wr5cpemW7`V`x(MkooZ9mUT$>; ze{Z#MQ*;?lIB<@|s%l*q&_Y%n(INjaAFN_nC}7*5A1E9wI)UC_ih;1y1Xf zIFPEWwG}I0EoA4y-j!}29IdzZx;+-1}p5;c|wX-=H)KX$J#w%Ff`AT zDGd3h$Kbx9$xI`@2WMe$7G$Go@})Jli(3Mp6kLne_%~tQh#_eRzz>7j(7Q>Q4wkog zC!NAqSr$#geL_7-F%Qdz`1rN4d;q7RS{HW*^yL=qfIe_EYJI{kw=bHR13ZFX&}SB_ zbB1KS-{Mu_nddNrtD^9$Ok(GTW=f;-<!!;iESdb(P0!cgqlsRW(*iIvI z;n`j{Na|4R#h{+lw(f#PUVaXND+EMJzJo>%>JjD}i4WIA$B6{(C{l#ITcW=O1WDX5}AHlN^(K;LdB}dPK4D*_6uq5d6`DIFt*z6BB&x zL_a_md{xT**y4P(G0*!*mFLZ6!Z1of=@x}(g^bLeX(Mao4!Lz{$z|p!u6$z-m^93o zy|B0$dD#DzM&Fy*YYsKvl_`LJ2~r#1vAy*m^=I&0Gvj#+6s;_10G)m`b4#*)>{Vl} zaA&7W61J`;j!q{3^(Iehdi+veME$aDdS<)_BH;gx zAG-#TAdMdESYOt*_5amZU}8Ii0@L` zSlGCty1wSUt<`?LWI63|eK?tQc&K)X=XB+I<<|A>4mjR=exIzb&hh~2L1JJ*FLxO5 zV|fV#7Q01=2+_bcx`l|4t9wC-*hi8bVL$y19OL-@J4AGHNISsq2)Vqia&h0`?o!L-K3dPqL$@-nVBjgxY5SiqF&`dXNE) z&)^n2BD?Md5RqN~0ve$w`H~o@C-oA=pS8T5AJn%dT3M|T0U^EBAatof)kdVN2kN2> zeZcCq{%KjjRRAd+fv3}0SlAY{+2MGYHe=PewxASb3 z%bAS{XJz0g0(ozg7G+r@oIP;lqAfZV=Iq{2k_a@;3MzPsYAOHdY>t}6ucp?6S2TA# z&y7g8n5^31x!$2;Sz{=$u~LCa7)j|8<}`2ZS1v$+2Ah-V*G7lkDj z^+{LEKDBBNZ0{0w*$tG)+tZ6{)OBl`F}YTScX3;{w$%k(ql7l9RB=mUg;F^w!@$j4Op&g2nz~} z)U<8RaoQ@nBun-#;dI|R*+3}|ft6Isr*gT3#<5UT0$Ml47Jpn0k#x6N*=o+Ha!hsN zM*FFI%DvJibQhtNRP@i;hzqS{S{Hn91Fl`p`i-|~O}f944klmZJQoK6&BkQ}y)PU@ z@whmMse5dpW_C>97-}~212W}^$-EK?@)H;h11~UUs)6pPv zqpD$lA}nbh^@PAsHs3JVplP_cl;G33RQA0==x-{+wgO2Qv{Ghob`E<0oHO%~bh@zn-;fSyv;(J|&044p~6~ufs z{>2tD4e;OEl{)K{ZzGGTeoHt9%Wy0k2HN0`#535C9-o)aG((5T`N>CZ!}{!!PG95{ zOJliIisaD_XA>>zCH0{*@`D&7Lw0r_Wi(jH1^R5d&svB(=5Wp-+-sh6$9o?s!i}L( ztx8b=r!;_{en>87(sCx0c4B7^)#25jJ3 zhtDGVehJA%N%959SXVk}N7AfaC1R6!Q4HL@j_Iob$9u13<&Nr@T;vMA)~M$6%ERVM z_4waXxe5`QD5rtC6|_O9#x>H8omoD#k#P@)W@BwF-<`27^P*_4?ST#zV$WulSvM?S z%Ttl7`$$e)rsJq!KG6dZ!IG})^pb`l47gr&{*%*_ol)rLD^5k)r7ZR_*=cEC}Bb~nmA zxG3MHXg^^L{9ueB(PukZ8Tz$4U>kPMfN;8-g~>pLSZfg(`tXyV%5Y$^2;31c%k%qU zA2N250dAxbJ2s+u_tF7wgryfYq&whkp+VFUDM~wTNc=ohlzTx8kG{wbDM~zSs?{@t z3h^WC516(rh#k%`6iBzH%<~4nIJfHPPQXYfx`&XxHI;pq{~hr&;M0SQ!Qw{(x)MX^ z$4_YkI@42ZQbZt~Rr?W~6w>R^F#oXv@)Bl%`y*zmfT5okf>H=Yi_7@DGe>9b2Q{$+h@uA+DOViHbDsFsd@2f-{E{e54*5+& zE8zjbZ-i9qu=zDhiy)dx2n&x#7UK^8dlKhmi4%s>YvRhSS|vK{xVI?bPtrV}`*YFE zu6&s@a0s%9F$xouN2atCcaBQKqrMYFR`D%=>{nIkB)fTuBtQanypnXhwpF1f7!DTM zmPDg;rmeDXc_CiYLv`~*HJNw75iGMOku9SITq<+3Hiv|HVGTuyUWq@$BS^XyDj1I7Kvz#oqpSKY15rIB>x zs0|w~y6awDCKub#?)vZGlZpU`!*~4A=a}2AHk^0qv&@mD;UlCoP&0;3Yl!>iT2M~8 z;+h;h^c(&?3D4iwI78I0y%=6j2^W)5a$@xpCYu5Q?@CDa01(N1kg>PjJwIU}ctpRD zupS~;h>jRAcy$m?h?GRL1e|9L6a+uV%pMBri;#3Llu+|aIkylH(AR2QBOYG*3d4ee*;iu;o_5pD?Z1?skmn}<)D4`-F*qm_2zkK(bd z60xml1#~nAl=}l$=<7PpUXm@CTJ}r8r$!GK2Y34|!rRsWr<2zC*nZz8j&Pa< z^nyFhvuwG;`vuy29}T^!`pu2{f=iu&z@3)2`#q!H$;azx>WeVx!Lmi_df6sTRMg>|C-)-j3k(*Y*wvaKa(S;HJYz_Fvy|WjvlMKI zZw+lIe^i0fJEOrYUAtD27}VK2u7cUB+(6l(xz|MSP8JYeFcGWH2p^<_4qaq~mk4vq z5zzGwX3Q$T^VEqQHvI0o()Gs=l~*!H!^xIbfQ7}bt54bfse9dZB5YKnp5G0YxJUpV z^!6EHQn9@fH5G*9ieq+J>_7*&QFV*+b}qF8!3lPl}Na& z+6A_(Y~!LwB{y=U$#u;}r%9GPw5USBcwyE8nXA3J87pSqHO-E03pPpaw2Vk|5&u|+ z6m}utBHIr{(qMCyx%y7r%VuAuaH~Qf6i~jSMIPj``w(2GWBB4wcHXpH zL9I0(xlc0h10+$oI1}dPmKdR0aq9N+z&-arZOkh@sHHCX z69pP7XK|1iUb6gdCl@`Vw}Jk%Fq@_yogzVpM)J5~?Ps$IPlDy38LV#Q-$5^D;k%~4 z!!%A3a7p$7Tc{46hBd;1Nf?$C53@F)D(IFxf)F;w`=t-?`lSzU=3f3Y&CE!Bs2s9r zXPA9wJkBN0aRs&ITTpeIzt`hOV0admMm?Q687XxK9}~p8=ga6gRe%6V-F@Lu|r5Cw%wD#gwDlVKJiMAE&Pq8Skqp&j7sab=!s>Hh*lKs%^3q}sGx>gVOi4I#pLCQBkzf=r z!B{q)ir6EB7&`s~l5|1mV3B8{P~N9Pjz?nPv1^7;Ch9 zf1K1$rQe9CH~x8ff(m(iorUr_QHqZ)(%(=k5Ku+YhA` zh~c%0<^27dr(Jybjl!E>SlZfCDO znGF|cX0rQL;*67Pt+|#-UJ-?3mB9V_TT>icct?R9r{Kiwub^Z@5Ck^rei`}=y!#;f zEE9-{b&p44J`~`4h?$^2_Hx=^fDC+hs|s_R0c4vC_a3MU zOj~!8nj4lgu5>#+f9Bp5qf)uzD-Ml9iydHL?Y(p2>x5dbppucH!KR*SM*K{0EQW#| zMk!F{?lVIDR9CzO8K)F=P!Yi#hnWXYeGt7+Zq-11V=6a4j!M?`V38CUgi=*8KA4GN zK~1L5GsGZ*S^_ZsZ5;!ce&RQUDE%GAAa@_L?-0T+8Gf6T4+ijQp|^}H6_G=Y7go(Y zp-+&`PbypjBgnp1GDUr~~$tb3;yqHGyp^SEaq6`X3JCdrub<(y?Hg^2Q4-|PuGh%4g9j51O@&|w(3E-=J$?{tF$@d4;tn|+*n zGN(`oC%@SjWSi7eJ?8^72)A9MoqQ8%S58RR4K1Os<%&56pwfd8bBJD-FLk@FUPj}O zF-s+~W;}MAYK&xjNdvX`7xt^tqI3jPFV7T+6%>SR3sJ@ybhPWjMMmJ&EEc;6v*evF zF}?7;Q%e7q_zP3AwSSEa1OdPP(;1Zzjx5aqoj9Oze^EonEx!^;r~*K{P%JH zx09}BBZno1;Dctpy^5_*PCQc-m7vI;{(Bx_j@cD5FnOT2*TUZXB)y>t{kX*2EOXlS z1^APva>0K=T&7#)OzteCss6a1wYOkQfxy+&%{AN1)Yeq|>*IZS`v>*TI{na%2FSj8 z{F)BvIHf8f#EvdVxw=vZ|@ z3w9}}CIHw{OaC%e9;I}Mz<5egjT%*lF1kxF@FsddwwRKRPr)7+jGsz5F-CBGFhvvQ zqJPbOhkS0rY=z1}B91MV<24SLu`C9y@kCM0x#2LvHnRE9KS9t0=i|j&=6`x?Op-@( z127e;Gq|+x-i@UL&j%BqfwQLUite~d3tyQ&;S+=EDc~?jAKYED**xm{CLJ9Y%a&Sb zQctILn))NQXSt>mZ<-WXTjy&e;LjWg_2nVWLewy~W{bGXnq!V0w^qy)pR|I!QzPpq zXn-<>BdGMl(Ulu5C(&g3E#-ekW`>fftrT<54qALZSWHKxO{f%G`>?CMwby>NQ#jTY z2$!A<6+#BpB#l&$G%eOd81~2N5w3}_(gn=eBO+sx-gX6Zmw3>+363L(q^g}5aTL`r?4)*7%@XiO7~k(#1I z;hv`tVekL6m2Zal=sQEQEkYjr?iiLVQm-QxYRfpvBV3vnptoawucu&kC5_X(dRC~R zT8Qtp1&a)z{_4NE`I`;}Gw#zPyR;tFOotTQew@LlEYEzCN#^glj#5bDb_J%n7hSze zx~(`H?dG=GWQ1k9igVfgX*dTlL-O17u1KNCf6MWmPe#TUjxGP&+PiLK+zXCv_~7P= z&D`CSr?49LFzxqqO-XC+?dPTBNiiP3)WjE1Qc9<5U{|*JcFcGKoP^d19tf&uF?}EK zXWO#_C>~H1sY7bH%r4P`!P;V~n^iDz!ln?~Xp7i&p$+3L)7#&k9Vrl3u>diM&Uo+; zc^_h<9HDBETyla)a)ab9Q0~)Nxoq}0Wyoa@R(}n}H~XkaC%Yq6u8rO0){s!Iloqj1 z`{{%@&-HyD(Yly|H>9{tBA5bKM}NpK}(sgt}4GGv5d2M4bm;v(MFaG+a=Zv zx#n2bB$gKj2$<o)LC;1p=54w1yGm6C0Vz+KbG&G3)T;xel`zA*oIvlD`o%l-N{#BSk4w-3&DNmBTY z#r{tylK*-~eWynK&!n+ZRZ8g}u~DR>rUcYT^7P^G3nl#ckar7*I5T;n?!P5bbt^_0 zK_fKoIpM(!9YBW(GT?Ck`<{C887sdavhTuWe-6ovJCmtIGJFRSBu^&`YpBx(H0f*f zjV8J`QkKDRZTcbjcl_ZV5W1$I7j}F~(>EVYPf}l_L=UR(iy*0MIJ5~!hT32_++Y(m zmcdvMsa2vMqzVq>C;nJ26^&}D7mejYh2nKO3dG=yt}ANcy?@2;9ackoO!VhX<;CC7 zZ|mEwx}#%!|`5QENF&5$Q+OUc3>9;~Zj<*4ONZF$Fv@ zJrMM(%eTQOnOSQF_x?aEp+h@XJJsC{CMa7x=&?_-E$gG;ai(n+#xW&MSBcBN(!8sR zTK;KQm5_-WT11?SXUIkwakKZqj+5f(+S-TXG4b$wldv@p`VI@E#$7uLeU4E7Zf3?k z&eZBb0V-j^QwguvQ_0&4qO;foBiXzIfBDa~{2x4XMW4J(YaJF}XZ)Y;X_4dHQEd;cyAQLpJ5Zn2;p}uj(ujuvO_Pxu6+cvzlLEARC)j^xCZyDJ0qVAgB14W~&a}OJY zSO16|j8Xqs34zdkn!6yQriJbp+n3Y$h#a({Ce`@Zh|t?f=Dp}e^|_~vSO)bu?ALME z*nx#F`lTLb;m7u=9@LESYLlh2zsd!3Th-(BvF76U3~DQG&s&j^I5Xob$V<{Za5$hY zrRPXUQhXTKGDp+Pl@m>JU`<;&v(($!u*XX>?3BhToJLlKJ$)q?J?Afl2h@%XNwSHa z%mg4I%6&KYW#m~REIwFinM0D2l_o|8VD3ARB&k?*b(sj`sE{2fkLznHG|m3X&VXV- z>wQ-F`(%2TqXS{+VQdv;kyzmIw(gay<1Gg9m#~L$aL& z#K@65DPmm1`~gJrQqa~xH;td@U%~(N2q^c{>E%I>7UQmFhmlbk?9e2 z-}njGQHw+uquE3pHHsu1CrA?^f}7O^>X#-DNC)+7CN_p5O4X*RRS48R{v^qOr6}^S$oR`*&Ey+%7wiV+iA%QbFql3Mix4$(OPJ#GaO0M_03&4W`>fI z`x3DRwwjopQI3pc!xoji+G~dF@lyvQkhU|dpJIk|Zp3vKd#crTBPNUP&>=EfMLce6 zm3Gm>o^7Wcq;f-(^@9N0A|tb?Of1(S^bnh5Z%67PW5(R2B~?hK=0=Oj!*tgS3zOL- zvW20*tq))1wC=A<_W3Nb`6*-5M7Z+0tukx-1bn+59m**FY~ny5V== z*|C26@BfV4ZwXX+mA@hdHgf!Bx*AlV6vsZ+L}gG zAmY1u;W1xgiitdGo&So<^p)Qef^=qGH#EhA#E(Sr6l-d>vTJKyq-&#w^fTiJ&UoV> z2?4>ca*N~|lj!VV*9&>Kvl1Y&zF^A=CAn>6O!i7sqx}jbVet?M00IG(@W^k7M3NnL z$>AdLBC*9lY&ycUBE!!fS zC}>zloeZqP8`mwtnN__8$yWAIQiM|!)SZ&mT(waLnC?I0{G~Di)e36mjc4%dTC@&o zL^Jxp958kEVBXB_@@>)9Yk_A>IlZ$O9Kc=CF4j!0EE(JyXK6F9fFH!7{Ilpw?P8B| zYVTb(0GUH|F4Y!v3BEH+ub-$xA6X;JNqPjedt)pcEZhO@)$?Ui`^W`|dx(Jp9Ly2J zHL~2fuUk3!>0NGycu&ZbUf44;T(B|lGkD+5OUGHNg~rH|^6$CrE0LZ4t>zs)XKYMf z%aaRAMzS~;o50vx;B!20Ae2IQfVn9Y zAQk8-!{;>#@t7oBvK%RIClPqUYVZJL6_{in$VnPO=$zjN!SRx2m@^FXkQ3$u+4l&g zJta{eaiaQVU5mtA2_jVi0?iqc-;^wi-USN)gHJez%im%SsOsJGe1~3K*P~ggcvQ8X zv~!FfPq$A>dBIA3@fsu*o$%+B$lVoQo=ghUASNmL^2>QCE@VBER&p`5Sx8(E&D6kh zA!$Tps()^Y>muBqj^wvju$7_qH9dXw>CdC?*#QG5_JQ^wsDm*h5XY_haZM{Cpw&akx%?28) zI?Q?b57k1JwvM@X7_Wg6jct|+Y&h1bovd?_65ny3n$eALTmq{4|7orGB|br(q6W8(+!inZb7h(7O(yZ~<(UYk z*2s(?GnS1kgg`S`G|x2oa|_W9f~+c5zyTDm->Ou?*9A%?&WzwGQr2I5 zYI{v7_D_EL&;y9{e(byn>dwGJ#3ye|s}&Q>DLDm$wv#ronDjebtEi26*)3Q7R5Kn` zPfi*Mm_%X*<5JGL<~mm@lUt`?Xs$@Q9<1D*pyFBWUnw~C`d(5sot&%!b9Q*ZjCyvz z`r9G3S3QZ?2hnUjT8OXgT-KSRQDQvkRVU(yZ6Cl z_&_7ZovZ<p>ZF^Gj!gecUpI!?YQ?V$a zU3=fJSjetk-Djs9eDzFSkWeX#&N?q%a(XCF8MZUzi7GF#S>8o;p3&$E8S3nmvakVL z#r%@vYmxccX${O=!3y=`+tV|r ziYO8Rq3S#n4sL1ouxH&52QvSi`o*60Y1H8^FD52t#_f3%-&4~oPEvrb7Id2#z8xb$Pa)@(%OP4hQY)Txvz;WGBLK>hJB>GA@7hN;Lsc?+cZJ1 zR-ZYEWas29^~bq=v91zsvWUWY8UNL@)WRBrW{Y+ahu|viBe0q3K)<&J#!X?6TWF8h z?KPZ2v(FLGpfZjmyLgZpeL~+c3MvS3r|9}yjAUCsRQVFNmtL2Nx^~HiB}nO5CV?55 zMeEo!fGb%0eJpeWQmCSLvdSD|kEMT;pZN`rT#jLV6@P`z21p&3lRWrA_vm2R>@R)j zebC#!WT%1#HJlQ!cDj#l*#4XrX0l&|P82JNjh)5hDR{U>eXk7@%8F^Uet<68uNtIqnJLYRz> zcegQCzc#Np+uZfVOAda!C@9Y77%2B+kScE&x}zM>t5xFcI(JCVJG!vVg4>z1`z2u7 zj_3M=!n)NI7yzCzu3%JBVeb95t~bL8##0Pfe}e~`8?`=J2fe{AyUd;%S5GCD2C%@D zlnI^UdZ)ZPYKSDB*-ToI*#WyYd^X~Jt0o12zMB;3?%}S(nu^M$YC6~5o(j-X#6fs{ z>^A9dl7u_3IFz3W%b`O=-yzpADk-KmZ8xCSZT5#$f_N4p0%d_`y$g3M-6**U)gCF=N|4{!)~pLNlQ6}8tW zEK0^4;Au9!s`0eI&|^ue+gkv5&xAY*f&YuNcZw1v2-0=iwr$(CZQHhO+qSvewr$(C zvAcVpo-+^k%-s8O=B`y)Z}n1DnGqTJ#s4o#FT*-k!tXp6D)X7y@SD+hRswdb;M0dr z{W~aqJ&Z-xTZiY0x3s5AK$M7Eq!&k=D1|xR8+BYHwU`w((Tb*6@=84I!ua@a1&fiP z=QG;hb^%b(|M{lr|CxHFDN}a8hb3YEB(FInWs!yK1p)y8lTcP7fcdiD zl-e^w1EnXsazr83mmOC6S%FQ%V$R+|_cpL0flR_iSZD!2%#K z*tB!_8a~4}xP}|M4(AFDCkMALEzrLfhp3An{Y-5UgP;9mK&(v0>WE z11SY`JDF@4u2aj2aJs^z(gnAkKZ6L@lKyyb;k{M_cb_FFS$ML!cW$R!;YDXvWy+{W zrNdk)n-;t(y+DV5xY#(xgfA&v<&L$;wXJHXK6{mGS}Q=%Ce%S>(5Sa!x@;kC$D66R zmC=IJ!H@Cv^l94vX>ld}uAMf@=|-`ZVo8v(9V zn#CVCQMF}u1ZpC4(qKyrvn;SWWSPz2h&B!5UTTds{OOZq+~z%P>#t`66{KENWjXgF zOHg+O`sl9uwX5RgRKk=?ddpE0k#aS~uldA_ynOK`*%N_=Wxwog>OTU==~xGU)S!DcLV`SwOJZRE!l z*W@XYiEy!Fd{{6n`l$<}F$MkxhxtBBtdPu!)^f)~C(<64S&jr@de)!X)h@!3&RDzu zZ|2R9?AT?Gztw%?Uwx7P8*{4vvvT$yKjMF_>G!BxJ0q)N_{k;b*(TBUSWJl~0*Pif zvlOBaw+dNE7tW)Vv_MfbZs079n6Ni(EED@{taX(wRHnoUpVJ>@y?K6T$cg%4qjWHgVK zx{}1yW+bdCZn(>!B{%-+R*GOyB|()9u7{NTrjjEuLCJ>AY2I=ZhmfGgW2YsMj$3>C;_mDi0mYZVYc!-ka8awDxhW%UspcP3A0ngm?gs9nYg zyb1D{7RBVI#?EXA#U}DrA9MMJ4a3ZUoaLa)EwYJtjY}!7lVJoc8DUgW1!hT)=W7xf zS%Jt37ODcpPUT?cX5jHj`oWZGI8TO`yJ^v2t2HRtw}zGS5=6WLtN$ zX)r=(L52)iITbYcj55NU6AqNrRUugEm0a@BOr}XUSxhsG$}*%E&=!<5FD-K$U1+)M zHo|PYa|I_dRkGNJqm$$6S;rcybwT*SDi?Yg@otpqPamx2*VNkH;wUDA)G`WJ%phDu z=a^V#xw3wMWbcD2%UUf=Sj1Cu#X5^xu9qLM%KpBZha~Zx+(>h2SX2IScho+v5j{vM zVuhX464gdW4l`N42EOg7ptYjH6HJey5L2-k2!=XUcV}`Qd0DO~Q2ne3>lZmMU;&#YqL#lLwP)vUd?{dtPd}UTuY({4QMz>MwGn0l061O<5hLTt2Q#uE5XvAi$7Z<7Itx z-i~`S_npPk3@{7(RP=->(2gAA<2ji%rXa}ino>;{2wGQQr-nRapvD_i5b5$*=fpnm zp3udWrl2rnAqF)eP4u{H7McKjYS+9#JAH9pUl4*nYWBOe#hLp2i2j(~57_5>_PVqm z?uo*==pgChUD>dXbW-&YU!!VWIl8Y(TLSAoDYtkFj&+Q0@cf)YkUAoaj~K2XJ1iae zhqhe>lSDDP)m|7LB)5b-?*Od`JUg@1uQPCL^|DC`gzC#w zqdW2oTkU8`dP=d5xXDb3th@o}4Cxw_zve_e&GMGQJGaH*oe{S`y!ZQGl0|TgWBfx5 z{Z~_dU-j3e-s|8BYpW-<4}e&{*LWt;Thb-*f4XIbQ8Im=Or|Cw{-nz7HK3N8y=6+n z>3yc(bNR zg*|H~Wws(NR$MKGuDebc-}(G>AT^5=hu?mJTYcFQ;Wxtw;++ zJ{L`<`RVKynGJd?(ZbIHhH4r%5QJh6X}IH*8w{(?vE70T<~!6F(q#4@gw~ofe+e14 zpmMG7jSHL=tyJBY$;2r;^M{Zbh01%8aZ zlZYDK1sgsd}Gkd!VV{3%hNCvO-(8Z_nZccYkQP*E|(`|AP z@kCAFHNK_7s?+^COc_bO)GP8G5{MGDvKYKGtc&Zkp@2Bdo9p(dFfK-Gl%dKPq!_Ca zX6|QAJ=Ac7ewi`EaWs1IKEkkI$dr-hui;Zjm(LE0s$mBVuWeWV>8Ev=s(!62P{i(S z|K2=@yBVviOZ43ol>129nmNm0koGRlq>}u*WI<77nFsXSiDG)GZ$IPkCSEdGjlNPw zK_xzD3zP=WAFLohDxv4d!t@&7k{&?-T@vr)rTl@UrTqC9)WG;(I_}RkN#P7pNh!h- zj1Iw;0yEHeJA_A;P#L3SXVOfQVUo-XhG(@*b+fX0;W0W0KMpAbb#dBjK=weP@O~j% zbWoR2KAjHfmWKHHyyf~xQ~#(sq}$iMp4?!V{1Dj>XxhFQ*PvzZK1I>Q6V@N^M=&r+ zvJ0LdOqc{eNauE(xW(u>10sk|YKGwFNeDDaK7r%^rpu$zCv?a4n{g=o@&uCq|K`Sj zO*(4T_x{5X^M{UPgM`LbpklvHOmsa&$cnOsO`?!cg(P8fUgL|^Iaz1%e^=P~qLN73}X@3$VeW|BaXS1yiB9cS0PZ+?56=5w5xK5uht@PN|? zM+jo~Y8b^DDVwgK(to z$^*2ZcU0{&2=#XtFOktOPnb(ol0X{suseDx3C0*22W;}{BB~f{!JTFpgHoy#&DU%!K}W^!}6euY_~ zGF2k~4h zR85bZ4#|Q<3#Shl$9yOjji%u|JGOJ(c${c*?e$WSg#pQ0@3u2R)zd0niu_!zyV{a} zxg*(~ zQcIj$tM+WGOYwEgU9}!#)|2rpFiz34HV+h* zjzMCCjp*kDegXXp@lCIY7UcIc;PU&ky1~N*bolw-puE41d8^EeXzzeO{qYzOUm_j_ zbh`By`TrklkT?GF)8F^0J90jnETBnC|Dj&9P&BBLCVjd;s=d>;EAHiaQ+v zO#T+_T<8D6klsUw0rhb`%kDd-`#rA5l|*sRHWA7sFNQ;#d{ogdfKR>MFaVEmPgVn>v=wFK!W^%*6 zyMPz>fzRxEko104bh;Zd9+dnaFmreWPb8BHXr|?$oQsQt1aId^Mh`#B7%-`{JV9g9Xm;O%J}}K~!F&Dx$~U%)Rxxst0RR*^ z0RV9R&lafvY!%$`hWu?6eEG-u*28Yklv$G?paCoD^sV|6%&hY^0pAYjw5C4PB&-~yFA2TK|vwauHbT#9T z@d9x6Gc_TI44(MPBas3)EZ5nK>~{p)|=dj-jxYWmrdfLhN3io+^|yGOll8 zS&1@KXRn12)e?gAkm=wvja)$Zs_qnp&2MrJq*a}^j(=XZDv+$B#bp@r3C)?Q?o-9`fN7PuCHQT zMzOLZ?p{?WAzW{dV89-nF;|fn?$3n4Og%VVZ8dPt9%dHUcDfra<#a~ePIPFGEe%lU zb#dcpH1en?)o5d4>89IW7V$mbSjVWcCazy)9J0o~#Lf!(MZ3j>3M*5}A5b07oDN+C zhoVjmw7o+TsFcOC+8xwB21QSjF&i=`QxDwm(A1VNvIbvZr?4-BkbnkSxSIV0BlOH> z^iXw>advlC=Q(nyDy-+;vA|LztUaD<8C{H_3=CMo3GTyh?NKYc^nK3bS6zHWf?^>su48 zoXo?oBs_ykgjCd0y|yO7klxl+JP0>G9x|@9i`pq6#|rT~Mjn_IXN8w4e7nUobWn!Z zWS)`Z^Z{R}Z(mDO)U1cX5>Rwm=WMN2m8G}5H2I=aoCLM&?O0uvf~D%9+1o&|v$Q8P z5Fb&TjO#r|?mJqlElf_frL|}5ox6HT`Y8gMRTc+XSCzE~xGto@&MT^5*jqq|r=bKd zW}LF7;>K#q@%l)YCgq}8gz8MXm7%e;rMY8mwHzMCxh-W!W z7cWN8veAg?j7o|c62D+4Xz4Qxm5T!m;MISJrLdYMY#fIuR|}4D8Ut4ogXqw3ZO;+MYSc zCj*AYPRUnAdupa08zr?hz}SnXqKQA3pUKV+x#9rgO46N)UkW8Eb{jyDr;k&(xN_vm z9&eOTLvWGN(^5%MZ-zsmH3#~%kQ_%1 zR!b%zYb85hal+Tpa}@-@*Dlc3q#hPG2=mY&K_{{->7ta)Kc-fc&@W<^Ws2=gg^hc* zPZCycWPJr%$9u6R$;hn)l@q)cL^53$rG&<=Ybd0U4-#`?4psdK3Da>F04@aowcBIW zuGLyeAL|mXkZH+OL$}q`!LUCfH9tkK79*DgUQecr56Y6{w=xVm>!-cu7b187Mka==CMwlrzc7hvl4(e}cC{@jq(v!ZW=Ndfer@#-5*z0lzH@I6gZPH` z1_<5fj{?qKf0#`m&RN_H?>UN}4J5tV)aD$O-}w2r&QlRLwf5Qd0Mkv#-4YvQ3^S`Sb?Y$RWd&H zFe0jmCdLGPq--3>`v;cgl4DfKNhcr87EO#98sBf>@XJZwceqm#4l*WExvs&n)X}k2 z`B2JHic5;>qKSM`q*v!d1e{fCQ|sFi{;~pY$hK&))9(FJ;*kd2e$imfKX5e(qh=#V zqO0d;>X1a!!u@Sna|aLNQ9Vs`r#BV9L@A?lc#d;H*NcTlli<#l#YSN&+FY=mS4n(J zW;fiFdz3AP+v5SLdpR2YP*l%mv>v^QVJo_)z773~@i-K>ekq#xfrLKIfhi*yF{MBL zK#~6Xu+6!CH2UM-Uk@h)xF=(*126~Ls21H1%)9$u*&{41PQ`W!8h>D}r#zu>7mays?r%rF#n6KdjHAA#fd4 z@cIh19E$qFCFIH#S`+#vhRv~Y4 zd<7SGln|0_E zkUElebw`yY_*|HOaDUxI9eFm&z*y8o)O)bx<7YV5n<=G!%9w)TggB;r-DF%*;!aSX-JnGu&cuL2p3@QtgPO z4q^#e({F1=xwsgD~VzlJPOmMBY|m}1Lt*Y_D-AvMEX(uhq3Luc+i%X9a3 zVBp5S!LnDijcrd5mI`gh$+|BRg^(DIsh7bilVA^4J>w`+lNXP0bl!VzdanaiD08~@ zh|~w9yg=!R8C3C5eW5#`P(8=Yb{xY~M+?<-Z+CT%k<@GaKSr&8hPq@NThw)iSl5v7 zJ*YV;SQc(V{TqTmQ*a3f3F*Ibow=~|I3U2g@A2hcn~49id#5c>)=T8^I35UKxYVVjHDf z9?i1goFQ}hV~Wk2snQBE3?+Vsnelw{(5xMo$i$I%Hbg}<2ke06Kz$;|QT!wRA*YpZet{r~GL;abG)of;1)WkTUiE%?4 z<$!j|_I^tDwkMvr&`9C!xRXf_hb~wrnZC@%*BtDcPK9VXvlv4V2 zB~a!ui+qD%tH=TFY0pw^)OS2NDDyH~2x@_~b*09P<)CQfpisg=;pF^}yX)2Uuu_t$ zV4L^=1m{cP$-wJq>qi{2d2)Pyb%%HUExgx6V%4AM-12cd&oY@@Lj;?UEx~^F12_j^ z{CB`F1cX)~g&krCPW$|dZrQXp<;+*jl)fByl}E|HV1K{mE56!`zd%y+T~hMPm~QH? zADil99-AMET_`u{@otnG73{SAm-Y$+I` zk_cW&fHXV@yegot2|v4tT^kHS-xu}jMNw~x&y)E$6G^08TU4H35>D~{_}VITkC7we z1^h$8rH+_eP3qRWqGjlOi+(RH>??( zy(7%fITOqf9@vc|%C-<_`hY|Bz%sYM8ityCznxpZnM>e|LVcYi5|J+y@ei6`ImNG+ z$>hr&NcvnKu+y6h;ZY)OuXJfR&fsKAXexBw5Vn*C+QPO+(MHnwT{04_LD9wz;*MzP zSSR7<=>kG2ZkJLd_W1h3Co0G%{O1y_g}Za@Yk>S z3f|FU@E14Yt-3dAJZT^9g8U^H7x4___0V7hHbI3cm=X6VD68*M?gIp~aAnhyOij2^ zXzn;(FNoT+9Y`0<7!dhG9Ght}1>ce?tH6>`{-Nn@%e?5aVb#%n-6;`RK~r&jzj-HG5|csv@JL$UC$rf8;ofN#;U z7`3~nogg&|B=>Fb#1M_gO~?}=S(4N$7lc#eHsNoMz7FToflr)L%<++2t$|U72)U-jwIu3C^vOD)Bj5#BZdA|@jazw{Xo-t947oO?28mfLzZgExDLu?jB7d+m!Sh#?>;?A zegm>RZt3ZH#$nMeqtS$2g=Pa#*_pa+h$U*V%Bfu0j60_l*o-H$d=Ioq3eu5W5w;xy zr$g5{;9DfmIl@Q1>T{585&M@4NiG5uOpHVP1HWKBU2GZ5FR56 zvnb?g1i&lG&@swf`2>u@b%yY+didXh457TX3FjX3GqfS&k|%CXr4j}SO1cx36lqTC z$s74AXdB17mvYG2=DN3EL85r7fpD~$nQ0h#*Hx_G~{^XNbty!VVP5XISR%-cwVg~@Pu#kEA5D$b$IVX94(Q&6&jI~9eEbbK?i$oCBNdcuW^?k&#Y3LHLoW+&q6sSoWaG7s!4bAf-R zX*pe`&S%99|Iy1jKguW6f2aBQ$QLYI2kseuiVH3U(q0B_t$?<%Uz;Mdni@l0C!$dx zYSt1J%^2MxLyx4|D$F8=AM=hq>>;DP>m%INC*9R2-u0L6?t2h@;)4>W-n~;KH|_!Q zCWx1z=2hrKMw{nCxmPwjAcoB8lLmXlYaanmpydnld58>l9!rFdQ_OiAY;ZC?!HFN3 z@TAXnw%fC8i~rNg6=5UH$Q!5fgo0C-@h2K@`15r>EcA8N+(yc8oaP7F9b)S7_@5Ig z{X=-Ye?KIGJA^eN9r54^+kqGOfeTr81@>T8CXivHXC0cjCy|^|O7LrXAg@g#x1pnr z)$ypz6e*pTKvo+1n<;_R#!_hGm|$kBg=N&WiItbtn+ZBe60U>^bmaB^5h?Y%UmQ_a zjzoQwhwmfDhs=+(#z>2jxWZYB>YO!ptU9LbG_t2{=o6K4q^3xyY?p3mR;J%o#3-$L zN(Q9%GC4;D_gq8qGIN)Ld!C;5vL*-_#2X8DQA&*rFAp_qWR1%Aokk@O5A{l9P0mlB zv8k2{xnqKpCL(1lR-X>>x&0q47N+B5{aLzH=P}OA4d{)9@$M9#?fLU9tAA+YX`r`U z)xb>GgF29m(ny)OOW(gnk-=_k?aj^v+T8G7)>8)cYS4hSc%v3mg+khZtea9ARkcA0 zt02`aW*qv^+})zDH-~f7t$6O(iSL5E3~8ydh$9QX@jnuQCHBg z8)@W?71EX~N$ZuQ4LeTox*1OD?~t@vQEZ50Bbvg#Gi+{OGDu6g9oQ{>{kh%B(5otO zTqWZe{wU4fC(5r&(OKPic89wIsBIHAJ;_wzP*=;X#zL$}Exvb!BF<@x1fknn9Up7d z7#pVZCSVq$UU#hEQ>&5PumPEojjeT)6|txk+|j zY#T;&BbW8sWf0`XF0*nQxUt#8px*^QyNVZZvWaG~%2lBImrh4O`bu^4?ZE6N+#$Rb z6>r`TM!Wgu-q@D>OJobwyLoJ%)Rw)wiWkm*J}=0x=%oaG?kV9IjQHnAm253{0Eh@HfmZ71`CPpsX zC?B@4m}#TA$_<#nCLqH}+J}ym_icC~N||hg8EzH_xOECyp4d1UVcK0tCublznYB;< z+CM)U$m5IRNf`e?!X175%tUU*{QUSW9;Vv(-Zw2wsE3*`(?39KchJ3H|rVj%H!WG31piZmFq3X0CyEg9j@3G>NE#AYUaq zH9A+Oqt@$$L%vFHIa%|D`^3?)qgH2|s?!Wj_*C#d!-MM(@P28Pu3YLeJwG?Qjf3A> z;`40(6Q+pp#phES!PR-wa&o3e#%}gtC(o=7VKbyF#oc44oJT0f{E54JGILRMy*6#c z^4XUBU`FU;G8>$`Q& z?&}uddNlNgb}`ya!{z4a6H{K{*Xva4-j8a~UMmBaZHyeYael1f$BjPcmm6UTJ^X*S6<ef4P2=W98R?uG@zFL z=ej+R_OU3d<~{doTi@@l_}d4`7KG_VZG35~Ab%H*{KC4wypD8A6MX6Ag+X`^pygAv zUa1cw>qWXywJ(O|%&A?dFNx-is$I4ZjqPe}i1!orzTk)TJE&O`hkT6f(ZZ2sljfd4Z%!ZY~7d|#}l7x?MbUa{$kA_1Gq#kYOnPv^xTHjPdT?Wy2) z4b7=wCNLx>^W4>pcUm6hO?9%}IO$_WGrZjx^NG@Ge7$ICO7lTU56nDSPWE>P;5^|D zmW;Tw#eZiDaeZm8%~KTVbhURjUgisX=1X_Y7f%=QqAg2ho0iHq&6RGOD%`eJxgpbP zT&P}nK~j1!;Tqw2tAgf(`~j5BO0R-);KpkB>SBcCoX>mxK4Trq2-Yj;``Yg^Q4hY} zhW&OLsNa96_$&X!`6=1@EWWY8>`v2W9crd-4sPg!75-2*s1ZnwDwfIiz+gZ|5JVZwgGW(69NJh8>s9E)4RC6zC`Zi;=j2W^J$Pi+m1YAB7vK1B%TM zx?T<8+q(}|CjYe$Lps9^KHpCyMsGsfo7Px<~=)}k(g;Jt15s&{+b-P#W9(nqx$Hh5uI zL2h07Cr2AtAiv&CP)kZ7thQxf1N7>H>iY{)-O+ps4To_}%j8P$_0cL_N4H(bSOonw0Akoo{efHVV$Wc!PQ<`8bVu&-W zmip<6a!bpA6EO%itSQ6P1|Y21)OnklH06G|UZ_v0YPJHg9dEY*3XDiv4?abG$)u=z zUG`pk`3|E)C0_uqjP_dq zlZ^IW7ygJ!GP??v2cTF8eF-#^%*(AyXyXpHiL9svpN)dpa!EN6#Y$FquS!-}u|6PQ zZkv7FtFWnb*-MV+F29C4fZz$%pa!sz2DHT(*OJ|(gn4D_u7o5D`I z!Y4er$q54GH%ZP0qs=ZM3U%m!07wr;O80A$6|25cJNzD>6VM0!aUraCKZ?Qwy`Xfe z9iIg*xd7~1@7zDz(5;Qp`$}#Hlei8CIRdYsTL(oWa+LRpLu65$sbW-;?Gz#;pzddS z+kjwG#Z=ylZhT4+s+|>14ah^t<2@ldbBA%l+Q1v=jJQr3mY25su6-%yxkbqicoR?Wk0-TLy^_uu8+RB_Vqu5su(BtZV}#qqz>5547#8 z?b=XT{8een3I>!Wq$jkYB!KIOJ&KWS0Gkwz?K#6-AZits7+_}ys3=3{aYI+wsRgya zMn#jN{WqKtlxFOTlu(^9`%9t$z9ZXWG4+aU1~dl!aid0*THTbXnEYFhKDq!hdkn>V9X;2>;_1VK{t$gNcx^A z1Mxa!Uyetox&~CA5BN0r^67M|y$;)M`NV^r4C>unyX1jt_0%3FU+)iUy`Qub z$GV+AsHl?2c8*9CdnwgOA36TZOl90>?Xici@~|-Ooea~qwi52GV0I7Hh+bAs%FX@D zkYJf>piC3tza`q^+Df6@v92VT&sG)i@4FI*Jqg%ZS?$Mjwssn}5l3wi^1RO%=-pa3 zSGw--bkM;L^t-F5CSa#FJixON3OMo55NCeA1Q_x&4M#kgS^3w7LmzHVe$BC{CQ$CA z0~0*SS;m|;(pmTWE-3SM-tT5lKMu;6EF0)BF8+``>BWs~ADYNq{L#CuGQ$o5WxXQ_ z`Q4pO-^^D88EXipH(XX7vKvy+(&Uq^97zx&94UEKgd_z z$T}0Ol&c@G8y||>X)X+-3-G70ApE0`6+Yd2F&-Ec4(r3{m7!{*avcv^@z7c zwr6eUp6vH4y|E7Ty!6FqzRx)FbAK;B0C@3BFrK!aw}HCp*CBA9aU|#N0Q5t5Aof7{ z;5Q)lirwIsp8hI(C11~mm+M&m`)|FPN~V&RX1{%6@reI-;x?*ww)Q5LW|oFVHl{-V z>2&{}Tw1Bdf7<`1CD3>lT2cb7XjRlA2uW*E`brBZ7o;HxkctS}=qAz9*fd_42}jfG z*BqJmeXi&SFjHBXyL=tT@J~K$?@Tpj)5roPOWy80z4DypbeW_7eBZ_M1I8RkBUTgf z!4|?=6S^464x1CcKSb#Az#TYC*tFpZ;eoa$XI>;Tu+?J*1=SMh+BHe1Qko!&0v0K4 zCcZ?`7!Va-U_(~YoUosW=uxA!D21x2rapxU{l$)SEiFJPbu#KuS%#WK7S&Qe@g~Vm zpOgd~AT=!}!BovPn#mziqso>xJ4;GNd9rEIqb0z$#`p!vR!=$=ws z3ZYFpr%688m2;gEQhC-CRwErIX3m0W?GrwW&z0bxEu^VyyI|Rk>OIEmQO)WFH>dpd zV8+iamIdL;Q8$*==El?VsWX$=7%TZ={N&tv@sX-mhtZkB&XH)zS=TW&&yeH{gfuaq zq_*<(=o`w5`N=bSL}4r)+>zQ2lthj(j;J&Gn+d^9HS1KVOqt5E9}gO3zT_HB^UO_| zwi=#3KqzG(2=>YsiZcw+Q6XYn9|DpQRS;1dkq3FwM0lVLIA4o7pzR>i5K`~=B(n(& zqd!9(F%q8(&QrMA;+kDwtm(d>zz3_%ISc6D0FN0cv#i?174g{qZ>J-GWczQ!f zus5o_-)K8JX1LE*?p`WpwT#AFp3zvjZo77NMqEArY=aJbH8&6oUs*pV?S|pG5Jl)c zFZ|$0x*Zhb&g1^W9)w3Y%1rD@x6qEf8)_4ObnBMu(`^QFCm@pCr3_(=WS3YJ?!B)4 z=Gi3yi3);l2L9CT1k`pIkFfy&thC{Po zdWhlt`Y38%pj7o8Dq{Lf1aMmHOdqg1if_@qCTXm9?cIiKN(4qA?FsJYy~p zSE`ZOF}ut4N=^(=F3d(C%Athcr_7zM?RlU-9wi&`SQv>PCnbkQ-QKLgiz-2 z4ed}om*Kayk+-LJKD>A1&Y6wQAa66&b5{V;65xSpd; z;{S6Imv=HTbuu;iFKc%l=0Mlgmc>(NLcKs$>p?H|uNOozfJIsx3Ncwk24v;f)tDVr=yz0^MS65ssaUaDWhk<#r)Nx{ zEhT9uR;Oa6HR;RTRXX!2pv5H^QWr?HGgB*&fD5FqEkxO_!7`_LffLtGeny^lMoBXG z6>Zz31qn9Lr%$dW+Ms}2WiLo0spFNXCtf`|3Nfaq(E+-gJrvfS8}&X%gAtm4w0d(d z@F-QxqJ;IDVlUG!8t7=vB87;O8aQ@qt+HH}bUgniQKGL&PJX`=aEElK2a zE3m85HjU_~aA>ZUzgPw5V%>EHeCtJ)FT#;&(=iPp3R7NTA8$Mav;!A!V>d5A73x=J zh#5-~qPdfa>(rANDXy(c4U(fb2tH3U$pS96NQp9*v395_SLn!jznS$U;xwh?I2jD& zJq)#~M=C7Rq=Wlrb!)=0W*$Q$QkS*>jQCKCdK20y=e1E2Wyq ztV#XJCXzFCpHYF?SiZ=}x!Yd;GUjDkDo5%&^IDpDEjYD8Oy>Q#W~vW2AMlqi<7W8c zfd0!f!f<0#R4M}=)}8XT{$aY{*q2MSEF(;pwaZ|hQglmNQY+|wM5b>n?X^Qem9FYG zg=@95BG0@BnsYtc9Uv|5pDV!;SQ3C7-_fO5xl*mV!;rctl$t14W_E|3N|jxIQ%=$y z7EQ#L;D8ScslG84j>Km~@7zvd2pWyVH(C?{j+9nUbBGL?f5;3e{A=I=O9R#Z7^6gd z=nU8eyos}8dPDHFJk15`Q;$c%m-F0mcgn`U377H*5Wd2cL-9?zh?HBXR0Lhn9apA* z#SMyzU#_KKF~i-x2Oa1~>(xf%>b(x(jq$c2)$WZ1i+%xo91mhu9-o>H>uo_?9{<%C zKoO_knT1~>2~3Cu7);q;_#MxPDt*@{q&Ib0ID}2I7j|yR89lb2L&QY#FVLaN1$}}^ zgv$o_JRuGlNMjH&3vd{(wRmoeF-xyRA0dR}?Y!e>Y4PYzhbXZ#d6E?WaBF@|?Q~!U zX>M^{Qx3397lTmYKo)L;4#sOuX-taAS{^p#p68n54dueUO<(6%e+~7dDGF?ShR5HfKv?nWUI3 z$}x{QD&s1kDk;YFAK35g-bsZDrrY)eBOFQ@e&zP#Nb1qV>y{}w9d!#gRs`lr24lZz z*Tprj!R}LoUb&_YfoTtdQ{F{(ufb`~j3<_^UB{o>w(-3U@>Baj6PH}a7|LqIMDj{~ zLfcOOy!JSa_KS#6Ub8(C%$@9Qo5ZD5f~GD1F}TkJl366b+1`=|YIPJyxWS(_=iu4m z>?V-#rnOxsjxNb2RPsEq7U5GJrWaiTy4`{G;rKtEHu}@akMf(a+ zf9cu>ZuR$xvisz1{9TrKy9Wja(dXSm*=gB3I{uz9?!xrx8AW{ywze*HXK4@e{%r&K zQ;8wCzq(w6Ha_@GYH=Vk#c`Pu&;I{4HpD5J8@B%XMrxn~0Eqt&V}r82lgs}rH2nRK z(D2i0nZ%}R0bLsKh(u8$DeaLaZq$-OwBD?$1tcoMHqpA1gq|&1N(ICxpa_Cr0QUp< z6TwVHz|8e?9OIvI)ZyNiy<;Mb$B_HKNc+YhNuzDcvb$_`8CkY%+vu{bF5B#~ZQHhO z+cvr|b>F))_r{C)F*hbN;^fXhnLoZ0d#`=YT6@jP$bdmYghYq>lsQ_`QVz!qidKPc2HNMybKuXRWG~^*< zPg+_~sC{BYmMH^Z3P+V2jn`0#j}I|7ksb>IZ;%DlV@Xhz7}-Cp(ufur?3T{n5NPOX zl@yTdbaVp}GRLu<c1}@o6&mCj^~A zTj#8Fnm5l3Y)0=s-{3?k+);(ldq5wn;jpEWWh@l;K%jphKNIJNq_H`L152+|vW)%sDzc^+p{uNr-FThamjxp_X0c3Z zZS0gvs9YbN=<3J})%R9Kox)dx$EaCIO^Uv*-0`uCy9o)?P zcsFX>EhrX>s)q;a_IRo0iX*L^QI%25H4}AQkT`o*3^g0Xoa>fss|g$C@F2+e_u+_9+9Z`=jAM zk$($~X@{N39H{q<%nuX=r)q(fwkh}MgF9O&_h3CK4H9@ZkZ;jEFo$bG*V*?6@sQ$E z?)EH^ws*9UEN}fo%`=ef(QQ3$Geg^3$cdme2B=3;^QXy`bUo?x3j1RPuD@--B!yTE z@Pl>0#cs)bMitb(jjl=|B*n^j_})Wl5+pU_+d>=^`F(Uc<$G!^-ok5}?^wwWy)q?R z%z zORs^anhk$k;opxU(FlwXX|_wZz%kq=7M>iz3*uzA zor-ABaG}E60zQ+U1gzHq_KO)+@r+^mIooklI`E1>KBCK9;w~QHcSCXqc6AzZ^KMM! z-trD6hT@C|S~*OnkNLpqw;2pc+18$AaEsd9BC*Wy+N_80gw6UqTN0L!+W00@39Mwv zXMW0yN3it0t04te3D+08LS#1hLuoIWh+RBitpv!a;TB+~2+q8@eW!kg zDMXV0X``31Z!E3CuW}j%@iX^OK*D%J-grXuk0(T2`e(G>z)|uv|J-qOx_75+zJl0< zYVax5p!DpUlTeBRiesecesqd;bPC{aZ7JadG|K%C>`o2GPjspS+ij)$-~L8UH`tia z{nbxB*N8t2Q-O{)?i7!!W@oWXhR&#Uk&pOo|winDz>j;5knzRD8 z9|2P|X$B@-SV4N*hE8qtTVGIAlEn7u6FR}pSP6ekuye$gh@E*4{6WXbw zl5N{Fgp@bXBJYd`=WuF{hfhQK4x@%@c-dP9RmG?$4*Cu$(;glvs&jfQ7dzdDMf01w zraJg|HAvI?0yH+QRk%?Ts=Cv%o+IAX*HVylN0wTS<85xaix+SuNJfl4b77 z|7pwpT@8W0=P3Nwi|Tu|bugvVx6?N?Go~}NwYIjkas2+YvNASwGXIX5|LqGM=)XBZ zs(d?q8+;fcPJippq2Pglr2n&@5-@Oda?m$)68b-XC2VYH>!9ys>+s(vYLzPMw(Cx) zpBY81Z4C`t%e8fdky3Hd5bCX!h4~GXmdoR7Mt)5jxXV(Tq%L+DwK5$yeXwZ*uyh>+ zB!Pi}i1B*!nEqlUpA-OIa5%9;} zJ5Yx0JJJd6b&<($c+(M9#I44xj99s>P+6B(lvgh56jm>4Tc>6gDJ&Gs6iyTtz~Put zg%Zn12hB>_T%7H7eQQW^Y-N|RiwaUnOV^a$rMltac;27RC4iwds#Vce3noE=lb;K4 z6sye37B@1u_(%zK<*Cw)SbvE0P;Sf2556zJT}Dcmr&&xvok*BUg7i7Q!DpWSQe`o2 z)S#jgRRE}&o7ib2kIIB)6xK3fvHo5R_LUlMQy7(Sme^8psM9Tvy>9j5!-=;J*syBV z$BwhQYGVpR%}0A4ZRmDMf`Sv_ph$`H^b#r4qE$Da2hVuo zGuyvAeTkkdynw=#F!fh_aP3hX@9henJK{SOTO;h*hxbsK1GF~Y;aAEUH&H~jEgo~b zEuB*9&t);QESdPH9YTSM2rch{%tzMke zQf-_~O0fW_s#4tIIZ$)n3pzRf{JryJ=mv1g0Ga#0(Xjjp1As?M3VWG z`n1h?z=g9#i(V=rgF)w-Y&zGGR@+RXb-Nz-cRcA(PZX4Sa?O9}Qk@3#jHzfbCe^){ zS-FyEM_r0~9LFQcm#z5TTi3l9zC_$ZV$l)&yjRiozL4NTSily$t}f?}Mh4IBo(z+J z0EJyD*(}?wQKM3KRwW8Ky_=HCxqVIS8CbE=q+i;+EfqjT8Ra5JKN3PDyB`^P{9ThU zZsS5Jr6XEG>xp!acd54!8A9BUV7Wa}l7*=a!X}N8EIZr+Wc*~1)WE56Ct-zb-J7ct zF!}Vg=5_L1HXX<#QWaezy#@Opq&WSM>SA_DyqpA1n$h|wyhxy;l$KoK0-)+wnD0p@ z4@%KWE+@A_?2m_~wL4BX$VzxJ%32|^u|gtmQpE&OYwT~nydkZBM#S>*HG|sz4X$KKEZr6;(GjV} z2^CLESlxMsteb(^m%n9v= z972%!_{6g}p?oxNHE#BYDaVQVWAZ-Icl=W^TBMxFlm2g~gQvaO#5nLF58|D#Hx@H8HF)T!9z!eECI z1_N0~h~Xymdu}DbAge5t1D6o8J+Qgr>C)%l5~u2S;)F=(mXHAk0#f)+o~r*@;uNyA zwzG9KcQXE0<|O%7DC6w(uM|3{G%4H1kNAmRgC-0@Wg_Jfj_0{=rBU(mwMI37|}0Vr!S*l0=Xop6Xz2Z-pA1p zLZ-ZYgwr?b$%7r_;DzwXMd>>#H0vK%>^rS?mq4a%9<}|=anQrMRKo>62j61jcHQs%@$D8J9db8F<}wL+{9Mbkss7IvGW8fZq}QyELsSYMH_$M_qFCM{Q~KMnZ$9}h52ERg!^+emJg z;M3%7b8QRL_m;VL&ZIR4!p(z|%SE}dkpmdkalZH(j(Lu~x`X`Z=-ecg+G zZ#wVDY_m`a4>>c}xd3}Q3%eYse0)M?_ud83KBy|Fc1uWf%j6Y0Eev4O2A3e7a=(XVac ze}ue2^i6uz<`PcrFd5U^3k-=lidmVlCxw#qn+r2p@2r8rco2Wg$~%zYqpLd){b-=O zw$c)(nwr@m&_S?)v4&@fAt4T!>=h>(^()G#dWyVmU{#7zR-VBR6ODr{o!zcc>{&!w z=iedi6=&XHVr<~W{e`c|Helo&yPFU;HNTKa zR56#G9Ljq7pyBo8hOD>+4WdGxtDM8yP3WkuX_*ByI`C3-(ED5W^QsjDBNMKNvPR~) z`ooMK^CKL(2uk_*rvw9wA&8+ldzG+}){6L~jrYtA;xg;62#@&OuJYvI;3$&W8yGcb zl35Ps3|y9iWhmD-gIOaAB4F7@C@eUUzvjb9rsvFeEho8Z4 z37e{X#v5Ls3vyj@skxNK&@7!ovW3w>KYv$^BEhoGGtl**j%qSCQQ#v)Nn&F!9o;V? zNia6OdQpdlpb!V(@=;wYBklHahS_(2JD$H&fbCzvr;5WG;INVPHJlaTLwH}_9XdS< z0RQ@Xr~3CG$eVJ807nCp%_;|i&vXoP-Y<8>N$ z7BNFhNkrF0l8J;v7~Y$>qzW$7#6I6x!@y^q_rSsk?C!;oc*(0RkPCY=Q22#^=c)C* zdsoEgFz#0K&ZS67c{ca}qaXFr)-SLTfvsIrEkWmShbCCu`(wX%syS_XA30sdj##PV zw&)Xl=5K$$3&Cj95mv-!xmdbN4X?X~q+g!Wq$mp>k~H=tnz|F#A+J6wFO^>~4&dn% zB%DCo9;Q=SaDT%;m8Y#YB*k@hp+Xt-koxWj%((}(AinKVfhGGG>dHI+A(4!r(G!w_ zxC~laf_&`wOf&Yh1Pq`vIoQE|9MTPwb802jAGW8gRlmIw%AeP%osLO~&Pi6%BgOJQ zAU1AJugtAm|B8O1m>!_i#b0AGaTL3f9ki0@lTEd{O&dRT+HRH3z$-?RT2V9+*3GuG zroNHKth7x%9hWt)3gM+Gz(a=5fRGpMgG>bUc=~!_++{b$Z(9%j<{CSY&FSKclI(I^ z*Ykk(NKy*eadg-R4jt;ZtKbDXj<>rs%|^kqBEN<9grS`ffp(@lO17C2Ag4Walu(t! z$et5qtCaYj4A2!YUCM!u4Z3evJee>H1U1g=2>oqjl?GrV*D5+#H*U#*NHU6YF0IXR za4rSTANIGWx)c{1v!*wR$tS=VR)iHpaMsn|xk;@@i*|VWWy7u$P4#+2kNEBKo}er* z0ZwUb@E6X8q{;ZFKM@Va8US`prNHbF4E2$*3PoWd0xdi*(Q}{I_OP%2A{IR@<1$LF z#~BLWudp5=SANH%HwC$WE$Rhkrs0rca>5C~Wp z)q_c1yeAn4jzvQcFF`$s1xrt+G$$^uW*Hm$h+VcEo7V%bG2wW0z~755JGcP^4^BO& z9E5UaF2=yGeaGbrkL$LH3gZdNq6X`6MQ|k_tWkzRtKYe44ayGtDXyY62U{w@`4d6c zpps*Vfly8!eMO8q`gjGaN|tFucq1P7!m&N{iN=(6jc)c%c49AU%ePvO)kckEdB!FD zfCE5$L=gChMUt*4Kx*8tW4U*vKPx%QMzawivq6enjyo$(c&G-O8XZ8oe>)gju-?f{Z~PH*EN1FMl+QT=4Es79C5h`Hd(9F$OV?fl!zi zisYM|6WmIG3s5b3XOZMZD@SJM*USNkGs>m?6npVFCy?;mZ5jbEM$=tCu%|8z@fZQ^nX%^-{MNG-KT_Mh|fegU62;7 zj~5)FDc%5(JMts%!tX>nO#UnnYT%rx_?KSnCU1*FOT54*o^btPHgj@Z0tATuSjJx9 zG&iJ4e#OqyFbL{fXwoo;1z77yuA@^qpXK0*VYOBPc%~!;r(*I|`&GL-5L&fiDvhuY z!SL%Vo$CWkjGRk|`xohQUg#}UlNa%OB2A6N@((gCH;)C~!_slCw1hudC2yxAk$)Ax zSBz`S9H}Q`uUq9F9qC%^wk7E-mvT0+{H$uz);3+Y|444xBCdLt3mfM~UNA1G@DrtH zUe>y}s4bK9>KUO`;RH;~&CahdM>|%eeN=CxO=2oTA((^;E`$+HpthA^pox;I+X7Xo z?VQ!}9G}Qni^m(XsTW|W$Q$ZW#gzW|D;j+%-*PYNY(ndCytabEG9yeQDY6N6aR@RI zdFHZV6mvFt(I&F%9w6l4V+M=K)zFJuu4Z9hj%AgbF8ne=!&i7XF zHDHg3o-a~ZIb$TMQF3!%xNA7?t6=D|4n2Xnw78Mk5UhF8~`jtlrzH9 zgF~35%GFyzVsfA>8Y>(Gzojue|SLZ8P7I%8ew9C^|0BWY{i-{_mE*dlcwXPJ> z!m`~`?#svOt8`6Gf$LSBA%Uz!I@FTx7s==HE0?4T23>wfJO7Moq&89Cs5vF!^dM(l zq5QZbt%gbLg&>GYVWh(@ZRGO^5>~Dter3|b*WaseN?_Zh6Tr6y(J;ZUJMP`Ecy89M znQzL%9%hCn=NEa68TsKN{x;GUgSB3s6&w#OeZ#rj1+L@R= ztkQTi(ykBA{-SqTo9h~xyNq`ds9l0$S!}X4UQsu0?@Hfawo?P$xnWGPt)R0bOr~hb zzxJAGCga2(eKP3EHRjSviN?=HKx5;Y>V4dyWU`Fe zgy!0zRAX1kIL4Rm!Xn1c#lmtb&2F!&!wDcE;CRR@p5rX9r`M`_dN?%L?Qbot~Uu8L&85XScwo+I`l7FdJqe8ml?+v>t&cxWW_2&z-%=f62E{H1XA97Nxl+Vt z)W^fn1cV(pm9yB2m|QH08`wnSyhaaRh==22JT;o6HdCQS3K#FI0x}!Wt~RE&qGzw3 zX8oRI-$o*aiZ9|}c4eLs3Jpt7{;*8TG~2GW1PtHMbCgox#o$Y=e@wYq2<8ILBX}0A zpQtjRe@tl(S1vgLuq`L48*C$ThGZ(4;+LEWLRXeEQ-~V5AoJ}#*m>B@$;B#1F}o9f zkP%5Y3_3Ypc|U})1&wWt80#+<4ZbEuH6Luu?#?~cNBadt3rvK|HE%I-j6XhI;cjy} z#vif2b&u`8VNQ&B$z=SfRjB*Gn{{PgEVa83HS#)l=ALCAswgzcgN4al)}q?tu++_c z7Daj*_%VI>q@{Yl-&jY zUXeLdA*EUD9`GI!8%_a6#PmRiZ|PV+UtkY;!xFTKgLsk>I@}>X(Nxm5^=BaUr^JAg zD)W>kg(jATJU~FN)hmcpsSyVk)kXGJcD0CC`Jr-lLXX3XD5;w3m2BjU3;VHN~+xW2LRey12ZJ3`0?ZDsD`8)ldvsf+|tGDo~3(PMnfKxts zD3)-*3wo0JtN?e2E#xh?F4Uf`{e32oF5F&w3e=v50T&>~zUE-ev5+$~`NjcJ$-r58 zL)K6}m$%=UkEXa%UCn`$$8=cfcXs5;y(|e0&*`f=vq9knr>dzAv+nW6Is?{u%Q>U+ zMPiCB^xoeWzYJ0KPPT9RofK*956blq^|~faRGak+e#ypsmp6>nKTyxnt&8_r7gb5) z2KVK5nafYl^2`buCD3_{37gqey%L5~>ahJ!qY0{%4yO_45^fa5u7OQ}TNs)37QvOL z(nO6UPWVtoG--}kq}&#chFplsxR6+7M(pe*T-W1yxMG?RS1Sp++7Q0+^Ve-Z1eO-G z>*EX147V9y##6vlzx&nz2hPOAv%{3`ehV0Q%a7*!b-awp-f1Lxdo&B~4JWj$TVvN> zA=Ax~9TD0$20yb0JwZQK{Q4=5|H@7QGNV>v5P;nefXuWSU3w~5u;?M7bG;m)wr~-L zp!NL`hpKV>k$D^lwGX&ruG8%18Q*u0q@V(|XbJhWciRK~Z;Vm9EbJB#X(^Q5Lh}&o zS0tQE`QaAfgy}CGxpPr|E*&qKIZ4KVWs1dI8Q65VlW5$U59oJgX6l$61J~D&UTlnK z%A)?<1vt+~?ZIvD)hp*wa4NSC0I|a?>CS)??~Fenkz@8r`2Qk#5o12#G|dOr32&d3 zI`&50%?CRf&1+ZyLM`Xje001BX$#JzdcZ$g28L_v(JlT>NP57t-~`Tv8mv{7qplCF zf@?P~@XNYo?Kc)_F?^=a^CfjhqWd=Gn_FaVw#jI=ekorSLx?j9s$Qr#Y1tovpAMAC zO_;1Fq@u%J(<{HR{(5Y%``^4nf&+YGIs-J>(qbH=)DW|gCp$f*6vO++3*J}`ehH)s z7V&2Y@{BW0)v9ODsRvBKW9YA!(fJFES|7b-?|ARFYJ1+(@lV;@?ZAxjwCKs+o_|c6 zGzzqab#F}S9%VQR)K87twHz`6vV^jpK^*tA(&I4{2HRcP zs`q$YQw1NwOY;G$OPJFb=-6;Y5NzbBoEG%&<7*$mKG!T@;y#aD4Gu3~V9Tzv?Je2A z$2)Xi2%jVow)hw2@6(}5?kQ}RW={}lu_uDw29`&j3oG2K*-p-GeN8G-q@kyz2iaA1 zhR#B3Ir*uY4XSb(edX}scLXqQi_IR*)oJ%2U!P9GM@2JYS;>=ajSlNp2&i0Q8!I)> z87;*k3uGKn8C2f<#}(^K<;PYg)6#p%*yfF8(u#8Jm{j)O+kHHoWumu@n%^^co?%@^ zv`}+?VFxxl=)B3^Fq^74n^aC$K&$SSio3Q+u&JU6$fo-Lnpmo|$k$>ycRE)yI$NGN zv@Ox<-c)Y3ntzo=NHEdYP@oD5k>-21D+f4B*(AQ9$8DvsGGw@vQX_#_295b{=$@y%Ghw~JroK~Io?KFsNx`)tV`OHlTFxe7 zI+1FeFc%Mw?c9x2zgFPzzh6(EtRjYhOLaJCWKU{tB-QK#T%wXYZL!*Y%J}B%rXv0> zFCA{DZu-c3e2$(!{1X1Uu7G+zHO`qTc`OU)hkjw*MgKd&{vS7k z%|bIWn*V?=ctAih{~3Id|K?+w8|r^kZ~lc~NCchDt-hI>|3otC=1w@@NG6Ng!^q8w z+$CesCSb2+N?lhNyO^>ueMxp>V9-S=gHwiJrk1;wd`ZqrXY!j}_(%9b?0&2L+3UG|Tk9x#>t%Yp8fe9T z85MdaHAr$g;dKk=;+gA>3)>rQCvpDSr5#Oed_{9kYf6!3I6<6*idm3!? zP2=;v6(|dC@7^`sgNNq3o~Z7!H+vHL(m~vkX6*18xv_>$bsV+=b>R+3a8LV;+zBG) zb{tXxd$NQoxyF9|IkXgbIHLK5uv17NOFZn81-}P31>>sG;}$%mtf?WNUspu`AV)eM zfy6;7mYg8Yj1@zUg5^GBAgQcW%7eRV$Qd&;q2bIxXt~NfxuN|!G27dTLcDJ7%^xkA zm{3GbUy;H|{WF$WLncb3XdzN`34VB{goCOQmrS0wTwhtHWX&a*uoPy`%MtDqZxq~M zle3U4A=S!LSK>PH*pPXSH8FCmmV=}6u8ZMhIcWhdfIdsb5LPlxAVZoY;UPLDW0b-u zg&L=Gh7wU@MgPYW=19Vp1(%;8W&D72rGJVb>$HV~lbfdODe%MP&5z(+KmoIA9IPfe z-HbnO!d(PNly95(E|<5><9!9bFbY7ZNo;QXexp>(CE z7OgQ_C}0sQqt>&n4%%w`i45$d4g#rz?j_1yC)T1;cV1A%R~i#{l({3o#^j0PVKpU{ zpo$TQ{nio&t@dO`Q$h&h_nA(bqLMzxhz08Z@z0iS`- ztfpJsk1vABQ=uy6&F5O{KA3vOtWZjO(p=*Vz*<>ogj9+&v$@kA%qF%R~@A7{^wF&bz2@lA; zQ1&l{UmHhT>LwGRQY#FZY*Y133sdhOKisO0#vboDk%<)WujdD(>Hg_Pv$ymG2iH#53$v>8Vfm46s_WV1YbH)4~Wa9O8ZpIrE{9)aP z1*ZGsIa_o;g1JA2>f|>M*xLu_n4VA7s}P4(oL8rbl_L83&fguh&xK@KdEED#D0*cql5)FQf3!?Avp*!`lQb93+8wF z+t3a2)mtY)avBTkC(!RdCSSPPZV(>!vPGOoBdP*7QyOLysoOSODg~AieyPpuyvSmw z_cf5#$;B+Le_^vCBgN{w@8G6kDOeYa!uCtM(uXX0k#D_OBK0qpKw?fBJD(VMTj@QX z==)DG3d1f3L1b#-4L7|!89*#!dBW;0Yw8*%E#n8cp?H3Y#`~Us1vQF-TocVxKVd^( z6pcn^<+ai{sM||!du5n_HrKjjCZ#+xjc8lrVAUtxK;U^z@%x0^vA5z|7FQl{Rc2S8 zXf((m+$?g3xM+3(7qjC?WZ)y$U|6n@IWdhQhulz0xYx+>fm)i?+7={DBa>gVn7COt zb~ME;w`37pGMHVH?*n(N3ni$KNQ%LiXXe4F5srB{Jp@3!#RpStCQ(?13u~lfkcK$h zNVvq2ppcBx#u>2*TGffi*+|9NbYNW1$6M$1sWnN=SxfYF9??{nXvKju0@x1-CCDY_ z68lADC2UFr<3#YhM)`e)NJj@n;wsok-Lz^+GEvc_2_@iTNuzJB6ojLfE&bw8vYy}E)aL#Eq-C*yOPYG|7NT44-f;p zH(h@5Eig$(1OgKI{|7Pu4PH9c*1svlm|xZ?ZRT|}gb7KCv`7oV4d(nef;g~+7}PYt z)}`pSR&k^{D^`0ZO06R@x3uiM9A}Zy-&PuErZs3>#B@{a`#yUwJMI0U+Z^qy13sNd5LsL)) zu4qa$B^kiP4cn?Ph0-#nsoa1+I}A$dSSvBzSjvCm%Bxbh z@OD30Ucn+SBrqi;q$S9R@IMPLiHjX(WMru1jarcjnU*XwlbXlXyic9v618N@%9fey zu);!QZg@YF8^)H#egbpSk%f~@1X;*;JVvj~6*y6|98hoBwntO6gw#FeItt=cXUvWe{_1#+haFB`&rTpSf_NZ zr!o24A~KzJ>tDpN%7|Z9{1vUj&~fF`a0KuL(}vMlgDol(k;3`-GUcpgHb6}Ji8cy# zQqh8xp0?Mt=<>UQ>DOQpz*O5=gvGMebQ<-CRb*+K1w0gHl~7C3=w?}|(F&f<5zrcw zsY;oDfOBYBgo9kqNvB7z-G1f-dSn4(Ssh?ofwHYLGQii%x$HOc zo1NwW7IgJah41DwMN-(g=_Cg*j?|XHuRtLU6*e@(10%&zjlqWbSi}j`JCi@Wc)fwh z3(yUWpQRTThRy|mD_yVgq`-|XWmJrZ?;4H2~xDl-bWk^=uS z%3Ylf@?FL%adzL9Kq1#S8%M9Z0ABILJEfkb_O2-9Zb_mc3go1Xt+XsbC#v6@(B2g} zSX1*tg&=}=uh>K)F3OgVI+$p6hxS-XS&%7Oc*>plf67u0G{UB$z+84yQ zJO9)ha&Cpy z8-XK+n>IM~5_Xo%LH!-sWQ!9b56@W?*244M|I(!VqnyMjB%K_8Yf_F-|KBtzhX02e zOQ+;!V`%1JYh&*I?_KdfX+vuNC0FE2FR)50V*Y@kp^=wo_*od?Pa#iL*dT8OyQWBe z*l*p|AQitEX9aU81^%98p8#o^aXX47Vv0$V-vcE1-TE_~L~y?4b(Q!8?U!`7w@a{% z7EP|)IXrDSPG#M5bvs^d9$fJ?Um?yyxCfE13gP12%i~4eqB<*02+=Br=PIXS{+_o# zLZZucm!!{Sh&3|s4?~g8Ffxb>Q;xB zKnyA%6ANl;@TL+Q?7RylvKVa{P{^!Qa{Tpo3Ej0V&%!7&AEuuY03hzm$~C<4o6Js8 zCd#*0iItP+w@&H^0RB7BOUuGb6uNIM~tK^;sKsL>M^l@v8&iIX8fiD|baf2EPvEk-ki!3udifCGX;%kW^U9Cf( zo8;uBV9n3t!2Cx?kp>UgeLiZDg_aVDe%wVc|5w@3aPA`IAX$4%;4)BF3HThhvaVp9 z4L5h_G$7SBXu77l(us97_QmyM`1Db=L(27%I8AKK zi~T_LxHoPIK~V@@*@oevMhPCsCmW4;{_^mGPq-^i86Lr&7a94B9LRc8d|mmQ@F8l`VaSy%$uZW z@<9qrmzeM{h5a-KON(ms`=;f(O z{B7t0;kjDoho7~V4*PNaiAUV*iLQ$3%-K^slKIAq=)!c@GNKe& z1BA#Tc5nd%_?8Uy$hdA>%+>Q;04jaeH3L^Sx_h5gWy7Wvmw9q>Rsk)YbGuok!>@L$M>56v=zKs_CiLDT|7C;f}H zTe1+-TkAatLADWwps09k!sL@+6HUldmhS_3!mvQNNq6oj5` z(-#~-r%aV!cpgrJ5hrSws3(O})P~yb&fGkWm|!0Kg-cwz3-FhXW^mVnQZjt6Em(fk z15|7m;~5I0Rr*|0V+~KZGnV}qQA$AZu{ zAWYWv=j10fHI3(HCd_tRrR)4!KxNtI9EqRMBh>>~pf82-2V^va%tSVXGhIU2ObNGs zkZr3VA2GJJ_cKM!t2s}gg^m#|pU8na2I*dyt55%lnc9=j ztY>bgEnamd(*z|BE??uOfavK)j5b`(3%iWtNtc2(x#zCH$mwLa{rchAi1lLCK2?k3 zab=T?7J03r{wv_=@oVvtC&JyPB`kcRTQr z#*9v5O*?-62pcvE4NluwG<`R~Hgi-z#Ld|ij^Ys4c>CwIhJ%}fgB#;jjMvOA3a4o! zTE$waU|A>JdB}`+LyyHRPqv2vV0AzmjgjGJ{~L6Jk{h|ZUNp|7@8$rUiOhrmJ6_r~ zoGKdk{)_LdvzaaR5f(T1HdX~K=Js)oH}GYqhX+K=M99i7`aLZ5ZvUrqj|j|e_G50b zahNWatG+jyhHaV~+#iL-cS`X>y$AHTZ@#V=FR&q7#O# zaEvj%dF%8Ep$ioK3&lz_h5B+;3up+EKq{4URN!d_HIr+Ctovy{G5CcSEzV zrcO@o`$3trE;USxT&5jQOE_PFOj8uR+ctI3e-?U|QjNOjJzTery|!(ile>LdV0R=s zDh(LH{7UJ+MFgJG$TVXVz^e0sB*$WM511X#+?Fl2@ zs7FEwRZ5)|ETFaHip|j?K(rX!tj$g-H>WU@I5@Z|2xOra;M7fqW~EIfrA!}p?l8nY zUjRyfQ~6hFS(qGq>oAtjAm)=9*X$e~vBx}Kg%WoOpN6tm+4bBK)jaR@M60 zve`YgkcyW|1K+mKB(`^76mV(PPfCCqx-JF*8d4>TRwlnP_8*Nc2TjS)Err_K6v6rP zrE#o`4Go3jR)JioD;k`8?;nDe*MNTW6cAdnoK#9wVwusE9~Ptn<Jng$M$p+Oew!NaSLcykRahnRdPSR0b7hOrVO{_-quE6*%RraW#N)nOA7VR_m^n)-P- zr9qJaoXdqcA9i4^>^ZIi6mzQ~L6d{<_r>a_;D&wAm+QWwse(i5#dNZ3nB=4J=p)SK zt$gn@;o6qD*59}181q0F=>@u%VG8i7vsB3p_}%XBS2d|(*6SMO0gUZmIbI6-umK1 z3SSFd6C-aKa-1;X8rKG*Z0E9`lG%B6>d=)n*C5bFdMm1G+v@*}<34{lzbrYoBRIZM zTT4R4Z3{SYnyYMBUtt_u6#_A|rYb>sLFHm!1b!6ITyFIF#)Tu7Pl1qRrXiccrxGBIA3~xGdh|N zVUdCQU>F}(F~+H5!u~oT#;Kbqz%7hy1uv`s2V84E-TA>=TiA9X1Z$K3dqvd|y2dp1 zL`iU5tMLzEp48Qo8@J#4`LBlRA1a!5H1#ge?;?QqJ;m$) z#S;488mfPv0V8PZ{LPs9x7)`5&6k>VL@~zv>XeD!w24=QQT_vhR8v67s>~bMq%6f} zwKkWR8+22cJ{d<#(r#a`&rgT@kb}YFO34)c{nqB*DO5>C;^sKx+na3PFPUy{UnP-w zLvvs8+V|QHE}}OP6ANZyK4=m6ws3qAf8IV0w6c!30e=fQrI) z?~QY|6qrI+`BGCF-#qK5DTL6*Ai$$Mv_dF*=xoaO#U-|59Cn}^i1HrX5o&Hxs$Obw+W2}^#3p#VOi$Sl4Ot-!<7q9N{Z^VJ4+Q+%P`HSr4Ulv z1dVCD(445qe+21;3})7;55}5eUciG@_FBqQ)k|5E?|es0|5dFtTHb06N;Syw08%I- z5S~_;R%e`&up%xeLc3R$A$?KpA@9&bUOW%yLDblK*(z#If5Gz;k>$8R3iClW5dE*Q zKlUzOw{7KEVKRK>FNTNUU!!G=;0F;mP@qL=Ojoz8&aBaXZUBly z^uU$$3I{lhB4UEFUD-3d%9o}ViAfD*n8HbtV42a(OD>>MCy5UA%>YN0mhMH{;mU<$ z@iM*CI)g;};S5))!P%01oHG>{h(RLK$h^`L6zuGwkY($1UVO&>+e&r4l#QyYAA4YL zSnx?<*@bVdMrNGOi!WXxlU&&kRdtf=YSilbn>BruEEV(XUbun5_FqY>#wjaV4-oc9 z$(W)|zDce*R1rnFN*>B?PA$?R83kAzTm~lL94gI#6LwXB5Y?K|KmC;C9d@gslM{GX z8&-&>H^IK`0!FdKzIBOio$?dMKjPaQXs5-nDBX+Ld(05+rNJ4ZQdJyj^i$KaYLAc7 zP{OBz+42gR9br`lk)O$KuMBkTnH6n$m+{t4inDWxbU;qZqmpltpXSf=2PA95V|qJ&vpi=>it2Sj(?)pyhZOLIVIUd zZ`1A7uj8j+7v$P8TU;&Q(qO9`KDqO2Br@PyFle{E=g?Cv?P)RX5}0{^W$^( zua;iopQzHV0jkrF<3BGs1InH!351{APACQ5wFw8S;iMw7C2L#6wuj|8W1PvdcgR5>$A8@|yQi2gx$gZ0lP)p_q zBw%@+)XO)W6X;Khb%lWE8$Ywu&EB(p{PPV&Zg{csNm+o|hV$Vvw+#0w;*#!q6*2*e zj_6zT^2jwPSC+de=;IFWS^={BFe{)zvKNl?+DyVV3esu2x@{*!u9mvhe`89O&{r8T z;uxG*u@z1QoYE5`0k6jSCes@95#))XR{WwbP*^0)If8I_2>zuIpY zUl{G1Q7ywhmlu}Ho6zdMa1~pDHjaKlR`27XSNOBZ)gC;`CM{F(YYwx$C zua9Ty(K|vU6O+_@<4soT+cl7uF;J)*xn-X2pIm(B;;;9XlB;sQ*n%hqQ6iYnOQ5BW3IPTxE^{ekk&HEzL0J_R$~LykcOA;enZLHG zyL^&gAATFiO;DtZe1uM-OA%QmNeb3e#u|{s`VQ({8&51sjWqIGQY=qQ$Fhd|8+hun ze`lfq1$FSyk?C}H*0K<-pTS4U=Z+#pO5n7>tn`}+pJj@{7?9G^=+LFGCisw1KRtJ{ zG}5i6iU9+lXK4$`u(nGyb!M}HXSS}P*is{@17-;sqhK(*gg?d<>B-_2;Wj22&aDbh zc^<5OEtJEqbXd@m0s^h%L=>6FOt@ML4(%#+t)GcG(cL}zIa*y3oDJTmB-?g+lG=t_ ztZB;DdUu;FW(>%%0!INpf|!u7^HPv^hOq{2hI^&3v@vZ(Mq?6d2*ujHIlNGs853Zv zR7Yh83N#HDp{~xBq&=m%_JXb$wZbc2ghRuu+Wz{m3o{Miey4fJ5fd(bet>v9__V=p z&aIh&G8=~pU1BWcw3Qrtt(rlo+*_l1(}~&sfXns1?HkNkR_2UPZ1bQQ+Grb`U8(>O1bT$d#_9-|!LStN_GGF5>m5Mvh7nvO=)h^i9tS6-)@{CiiiF zft+-^J%$+2(CS&j^cD*D=}?ry_yM;pnoR0YvJ(l2$9(khdjw=3ImH;CO+S<@cY=dk zzSzpveylLvJLN4Y!+y`N`_<4YqE~ZpovlT}Ejx3vQ+DLQu$>~)JRfEz*HybiSPf!v z+qeq>n5KtW);d;6x1b-NvSSa}A(e8LdUL;apR9Yp&ddSg+C5Eme5U97849e6qv&@}%if zvngJ$z9J}>eQB*q#ILK@vUYwjyxnz-BBg0haRAqECT%AvT04`+Z^8L+etxv=p^K0~ zoh5xx)vDQW*`#we$1I`(ymKd`z`Mv1M@*mA`{-UXC|osBXqppR64LoTS-bPKN5*@~ z^Y9rgPs()8Sq-fBWc;U;{aKNa5R{jqH=3#G>_GdgH}BSTdLwby0AAI25q}92xqZ=) z)XOPS@|%<64xQ>!X4@9aEVD}NPuZ}w5{K%6Bq);h(q?M675@QPG0et}PMU{)Pe0(H zI-TP6R6eK_=UfPNc=y|(q_W5y)|)sDt5aJkw!C}a7uqH3eQsj)Q-v={1WV1AI5)9z z_ye30RcZ~|cF9sl$$audfI<-|gTFCIz9Rsb*%83##~49wj|{^jNj|G=O=^z_@HNv?TXVHok$l0N%#9n8j^7vzN_---*ugqabrS;)?Fq8b_2vvg^uYn5b7FXsFd7)ExX#LW_lk zUo*NV^gZK(L&SG9PXzU371zxHT6z1VX|$++$IZLq5HEu%_%)5%XLTV2Sos4qm__v2 z)a&#@9IzhLX>;uG7WZ74xzoY4-g!AgV>nVj_673aL5tTwA0YRgqLf4YPwSEYi7HO? z|A8>ymeT)(i9b~17z=ZrQ zPD|jQx!-}K==nk>e$gH2vU+p!OvPu+CHAYxIV4P-0nRke^0LM+F~GT zNAnLFQwz2r_D(?B8c3?o8jgs!;1XtAK)D5EBrp&gsP^IriK#HER8>-$s<7Teya0Z< zMiZv7-j@xySS4Dq79K23EeU1cXJW(VzB@XYxN@c&rBGv-k`6Sx19T)3BPV3I1Qq8J z>O|BRta@7pWNa}_Src9Ebcii14zB+t;G#&e z%Ps2vxvOuUskW3khyY~_NhN2cogdbY9p9q2n&UBhBet)<+?I1T%r{{#Cx%j#^|6Z zir!|D(FefPm}Xu%IG`dVCyok;0H+xhHw?h(l#Fpe`~%DU#m#o#W=>}C%Mcmn?U3w; zIl_9V7USpa<$ErH$e8j2v`bl@x<;g$g}ChO+_HQDLlGm;P2L@07@Ou)4lb@fhrpE> zK9_^$v_x9~gNJ>Xb*Hmi6i+|>HSjsFge7F9z#5kr#_qXBTRz=1mF&KF*hW%6o)>q) z^93=YBN#NKK9qOCNE9;NvcMa>#*cIU`Je1ikpBNQgW=&XRXBjnjxP>GJfM0PfU7XSGtP`+pXPr-~@PddSeV= z?BEMuIuRG2)4X?nVlFaDb?7?O4@PmcZs_F2Fjf>&LA?YQFP^sLjs;N}>~ zdis3($U5@&>2~_OzVYk^uKC#wxu=Z+a@6&jXxza6LE)n&P$I^Kdggp zd}T=5^&9=*5a#wqg!4U)=O)g}OM|bA=%|ZIP4DMkB4ihu2yPc%5BvTu`@wE`;xk$o zE&dkNUVEZ?(9-_n)kvdMots2kHx0g8?{im1E71~%J8uL&Bn<@yKxyin{T7@#d4s)1 zho6TK;cUzVCMm1&@hnw>__><T>SSc5j-Kuq0~5ynB|Nk z%#q)$rn6IrJ=%O5xpK!NjQM{shC;J#$c#v6k(AW86u@+^!K%dd#UGq(vNKZ}w>*CZ z*=T}cX^z${lJ1CxADLj7JVCK+{BiX=IJj6Fo0Ztp0pXxQ?*r_yJP6g)B1*|+Va<}G zxI;(fp}24BE+z)9CMhD8hL6{fU)!JTc9N3FRi&BPbwwluE0ET0${po)RHkG}J^-qS zR2gWlT53(UFOxA?>M8eN4|x8FifY0iz@0T@r7Ai8uuk%7m2GBnj~+>EWXdxXg`&Crjb9V7 z5}>Y`70)Uw`n&?|oW$vAXA^KEwAhUn^-OOdJb2%mq7w^JC#63)7w-`iyO6je$b==m zn#h`<q&JTkI!Z7fz+jGDyZx->Ed)gW%RH~2uj z2U~jmZoX)STAU1aX^W3PQ;3$4=zBmay}CoXdwtB<;Dlg?tK9zWo~UGyr^^FBrTgGCXY3f(&8{k3TYw{+l5%`dvx9b@%X`9lQad(WzPP13#2gkG3Ffc9 zDb{@fKbMVQYtyTN{Kyp`Nfd&bx)vpqm&FNRj&y= zYgko`V$bh1V#Eyu%Zp^TLO5+uTQ<)tV75fhQnGJ16xj-RKVAX%jMj#7_0c&n8`kVo zsV4^1xYj$EC)0e}mg`#eR{qJ$2XBRe63M*@2HY|;RNzLf?#WTZmrJv2* zKflC%B2k!p6W;_>MnU%G6jwlwpqe*jguy5diV@H>(2g(N2dEXY0LIbc@JD^50u2C zt74OG7uNbV)*%@C_-0j|M|zLHBAc!$fAu^5ebd;&8tQ5?LE6ZmV02wU+G#=Benwk1 zzhzX_DIoZ-6^@P|E1eOdOy%Gio^IO4cA5?@>(rb=J+^7Rn3zw<0^Z5_AfD`qyBx<0 zq6AB0d~TXz&?edHSr!42Edruycqdgz2=oxPa6cSTp8vH$HV9SCR_N~Uu-%-#Rqh5{ z{WY#JO{F*5`Bw*hOpEfk2G-aLN^blW9p(Lr#rbxe8z0J7uJ^Fqt|7x`D^%BBw)3Ek z)9){U)-z6|8-l+aCT9V7x|-*8*8t)#;VOr;HS*Q4! zY9IMk6Au+3O%paz69hJ@32ATXL)!LPtvN=MohPNpDeQWMN?tDFrI5Cxk?Ap#~58SoRksJqZS_(3TzNQax9lvUa_I3ey=u;2s zQxZN_E3K4KwQx>^v^P3_gVc87V8%8oh%C_O_jZsKt$}1c{xf5fihl4l)=D*m%Y$H= zmqS7FI>$_^;<@wSrq@6kn(F8tpr~DNxs(AQj^3{Wzf)fKn|xPAru(45atUb+OHfqQ z`Kho(XjQ|xoSBAgYcbZqtm@4BL(F>#YhlGiaE4lk5Xw<@hcG?JfAJYdfromKehX#G zbq7)Z@TMkOsKr~LpQ zPl}k<>>9c$#r{%>@7H|p=Mo<9m=A|jr(??#;W-@{4*0VwS zWokRZa_avU<^Q9kvsoNCi}vkbD*9d45&t(!I-(Zez6k$&<-DE0nUU&D$+63)YK z%RNK&H)=I{n`f6vW_ez5W~DManI2Ac>%9SG?I`?MijgA@6ih2iM9^KbCkA8hvzO|# zfpf!Xnc2Jp@m$_E5-R&%h`Nr~7DOvXOi7mDz10XBeR@R5c^C$vC=*fkG~%K;>Y#EE z!paw-L--_I-YsM_dKojtQ;Kou!5TDgwe}Q%-eC}eDy0+TF2Y6EC%A!Z>%?{1Ue@=< z$M|iY+PZZx3Ufoqx%IQ9Q>r|I!6uM!E=kFxU4{N#kHbbF+U+?aK7iC(PnL(#yroB; z3+vKSea->?jEkwIzz9?Xmvr4s9V$454;{3ga!tuo{Xu)HHX%-O=ugd>5DMn#ej;Ey z5pbLcn5Di8P&+Ku-)G5 zE7bikoY#w$UMXv8q6xYPpPMdl?=o6?LST__DY>L>n{P({RCV4%6y4xwc9~|^K@MRJ4;}{Mxmz|s^Lc_&p-Jhl5&VzO)Me(WjUPdfKqa|P|`<~L@`t=?U1M$)q-MT ztVB`=YgB*zFAe7!=VUVX@4I*T-E`Le|Kskd*jm}zx!KAYT7KK@3YwT3xLW+D|81kP zjof#4!Y4`B^TMG)9eOnUs)Uw;9K@1_5ZqBl9Lti!+&lz7X^$p&iPzC)CYzKLF@NTI z1>Yot7faA+4}GrF_|WtyHPh_S_HpUT?iVo4whIWfBbF&cxuNs`Gn~Y@gh7Ao?68G+ z{~d>DK~^*|@dFGh3~ViHz4|5-rl?y##Evh@!3Xh>Z53zmd;bII4{sqza`h+o{2dky zS1BKP=4Zxcc-+3nGZ#G;aZfz(*846B_GrN0bf0O4uuJlz92}f!V72x+UgQJJyz&7X zr*J}p%c^v{X7{foFL^9)JfCwt}C!L zudRGs)^RrtmAVk?~clWnSzy_{(mQ7T^@yQ#DZN7D|PLDneS z>Y8qJdz|7TqZBxKjJVKh3wB9`3V#(iOYbH|dA3v&2R1|@QZk7%leDi15*v7S5v-ch7V~VK!Jm^Q(T~r8#}%xJQAUgr0nHNQX2yEB3qC3l#r&07 z2YJY!uu{UA~p8JZHI&bHhv` zD5NB4#K3ZIZVo%(6N73ohohXx_M_6WA(HS6_WZs~H!=D?2-6ERi`7i6C$n zP>ewr@vl2}Tziyp3BTKJSKl@?|1+K4KkHimZ)p1;SgZEthNFV}wZ5^EIbph1B!L|_ z`?sm6W`hJSA(@2r-T>N<%|cpJoI2WqNv3Gy-1=z-O&+lno+czLOl5kM`nO7spkRq& zg=Avzt6a%5m&ZLsqEc!0)%dwFy9SsnJo!rNlh4(Y4}SL5-ekw?V>mr<3s`ql9vp;= z7h4$6Pt{!T?D(OhgPTCAiop%0x4bAJ#C2p5)XPZ6k3!4!V0yJZ>gO_^OZ3$xXD?oV zJK@^t0|0@)o#@Q(zJ+goT)8KJi9dUTi@O!MtBsQ|6bso!zSno_P7+4i(hQBhGeg1p z3$14lQ92}oeE&RN&`a^$TM}<;$w7G-$2Vs$m@8}XCPJ`+Jd>>+TTztG?9iE~yvE(i zLvD35`*N*y4QH~NeJH{^DO06nB=wua*)Z30j>+0xyp;I2sTyql;LaSwK6z&&R$&l2 z^+)}X>uep6hm69;3eJZQK20l}>!IVv9A z^i*(nSdw~izDw!7OlL2_tsE`bKWbAK{FFkhZCgANI7+rvGcp;~gpFzBK5mWQG&E#E zHKZJ-eNX6Cioh(oIJ~x^{U&<$n{zf9mk@`qv6Tp;fxKf-QtO4TEmgf$Mqo`pI%T&q zk?mW_&OLFSQ_CzONqa$J{v&s9mDuuyk-E6%vtlBj@ZkX3b^;|)+k0`A6vyA&+fYnG zS(}0jx4N=}la6n4MFnyMFSDZDKB+{3W$Ma42mlH&a);l$QlI2ms0~Dv8?GuTl}acW zA)`K`QUe_BpTiyY(!`wwL>Y1U6ihQ{CA8DtVu%+hvd&;_DoIxbDKLNiJgDKVz5O#* z6|~NMx)J-FGtWhULG0}5kSEvyB|E*@nm&+R>y%VtXiTL{t%W{DOjx@YO95Ur=5j@g zL7C(U-kQj&k`94^L(RKNj@4)3)XhDT)+!k0SB>!k@>C`^Q4Ona(wM z0Y%68YB%o1(scrU_GQO%lRmdIxvuhw+~i+wkdCkngWoPvGhTAh;{w{K$Cx0kx01=~>bBuNpx zJ$i45%Ll1XibJ8lvcb~O9rG6{7%BF6xB_t_9k(V1``ims{#2>~*07ld@fnP&rLb{E z{}jq0cbHE5t*ds)ujn0gchVrGXA{`&-V12z#RDjNQ7Y+_4(KrS(GLZV?qh=i?501n zdIMIB>p^SZOOWmQuO%297PD;f>g%T_O#?*|XIsUy5=T3m>GTVU=3RNC?Y+vN{`ye=qOqw?1HADCz$69=vx! zZ9~sXLL9ZtX;kk-PpqfbXLA#`a}Hqu+@Y>lCKhzTI6;$0i*w?J5HZpOuL0%~e1f-- z*$pqs^Xyzy#zlqQlRr_=jN>~tzBFCj^>h2leWeC3sp%|1yM zEu$LC}ZCIy=U?h1$=E@$XYcV^)G`(EBV>R%7M{g{H%D0Z% zCXZe*T7Td)_?wlG;nguyT4uXmX?KlOEAkr z=F&^<+b5@OiHuyqNgYU=Ls^SEunn0RXu>U`JNSDa;nwq0;&Dl4e*WSdk{9Y*G0UWYdT9|6$pqlnKvy3~Chmd<${IPi*wx8&F?BnN$fH;|~PSHr-O-LA`J4wgl4Nwf0JZNqm7i7!zE?gZbq4>>- zAJ;6Rd2ZQWo(qiDKjY6IB^2A;uwa228riK;()@}d6&iA&E4Q{7BT2KIO7DN!w@wrG zf*z9{_FHVqQ^VEFXIr9gChQtrunKr}(R};CeP>tl(Hs?>JZV9+7ZuGU<%G6fN;jlc znr*q9Vc{c^$e!ddWcOtJOAZ=@6*6nkM0lG8OVVLD#)+PKwMSq>EYIf-JCqXvu|0SW=@!W>g#8X8i< zZl|J=SQ!Lh!@QF;sMD_nUDwhqD7aJN=5{9Az-k%aqW=TXocs~>{E6rC44Skjvl;74 z!sTna@}7u$Zr5S^85Mjj*ERe#7AlIa(1I)#dzbbm@r#apAk!}u${Wq!wEG^T}S z2oX&mpe_6A5F7vTIbx`t#_-i`ZXo=;g#*JxHz}l7zQ?Z=k6xe!h_Ktyjrp^iNx|E$CpxBuc`lRt%-kD}mG(9MXCMscJDMg@DGSDt` zzAqP-2*`D41=c31vm#QTXy`V!+51zD1sjM^u3p7>lL}*jl z-P|O?jY`NC7F!5yq|*4-f~%Cv#IV><5Z`=r+~qB%ZmQQ;B1-#BHR( zpU80>lj4)AcUN>}CJ?OcQ&ljqUskqe`HEt4d1~w1ah51?V{6>|>`v=Q>FC!fY9{ni zF9kBHwdhzdX7N8oTp8Wk(p6LE_Ob2h5WNL?$dWo9ts0+!Y{5wFu-74~Y|Z)kW! z#(r8C9Tr8arSXQ|DD>cTp3-edA7+FX_)-*_Udm5aXaX*x=%S^rc24&kqx};ZHv8`k zV2Q|n2^nN0j@@A(U|1T)c&bTn)UaAzesriN?Ypxa1Y+{JVw>bGFbu}R8X?gK$M$Jr zRO?IXzkZDkxb2pZflM_bAC$g?5P*z)m2HmKPA2ex^GcmGJ}fvtUX0)FN_wz%Hg$OH zo9|mou|rR~98;LP78R(rRI_7Qg*rqqyZcQUq4Ris$o7T%d<)0>N1x{Z@Ku%YEFEPu z-q%58P&d>vzUyvVW^scL>AxceTmfYTYr8X!+l8$CrgYv`NdoD8;MeXajY@{s5ak$c zpm&Ux_KfD-w2iWxedWuF zGbYhr)nPE6TY;jrS}q114(;#&qaGDVp!3lLdnLelgTNamqLI9-(ZKXvGqF#EBu z9-nD7_lvqzJCH8<1P90#eLF+(sEfXQA(@e)$a>4!kAkY{+aWI@EP!^Ac45(9x>+CMDe#c= zh_wvVmYNmingzMZodRMvEmk$7MFtP#pC($UM7QC=+CKY9vta6OTO^CF)0iheLI1m0 z#DxTWHtkz1lKL$c`FB-miYBfmj!yp%rAVRjn(enLO=qY%G&6LqsM10z*8#dexj{&> zWx-Z+Ny6NJE{7vjSZ}&N;v5P&8Z-LODE2$pF2wc#y>LvKH-85qVL$#gb%Kj2Sv&{Z zE@7PaBj;P&R;}XLWU@K#gxCn66+$ABSrumi*@WiLFlI&{?(2`qU2!c zvRUcY5`BrDy1y?~J1K3AHXJ&0wsw^?&><>*p=BGFZ60eIibXPQ&2w3S$=QXnI3E7oVWQ;c9$(auy`tJ+kw)2s??Yenq@2ond* z;D#!1PCqisQ*HJf?Cgf@*&cAi(?-%Z2xK$O0Y4KMn@wE7FPE%~OHXh+XP8(()`{IE z$C$9_+D|8~hDzF3gKDR2BZ2>>_MFRci=m=TCAHx=16bM9s8();Hx{txZC?xu@?8$#8W!!xyeUx>Ry|;GeBYN{W+mOji=S6 zuA1Ik?ZuTzBIrHaM0V+;DKdNoA({)@W&dEWDM9n_5J!WL>=qvsw)cUff0n<@%>%|? z$mSMLHwW0elM0yK%50x9f@-ZtOU;6S){_jVsth&hmQcJ3b`hDV=*CQbaQeXr2|%kV zuLl(wqT-jkV;6jGrn+xKc(!TyN#(ckDrTQ5^S}K98scn9iBrn*(q36#Et%&lud4P| zTq&`xvV+|&X^&d5z0G2QYqmVm3DO=vkdq!zN{TsnWATI3%W=}K-r=G9z4DSIVjml) zeES~e*5%LfWSn+ZK2M`WPJs-51G`Ipnb$JOD$?l%vzIbtwO-nVt~&%bS_&+aq>ebZ`^+5&5%L+LeuLg`9GId;I3c-hgw+R{SK+S0iACCI_0wD-256wr^y6G9`hT@eF4yt;D z6@ES83f*5RR;;JKoWc?PMjy}9M5uaY+A2wxFHCFx1{%Uh9d0ltOBzQoR{kgBL6V9RO;6fT9mdc~L`@9Lw*C3Vv^O98pm7;bM|d>Tw>+8!@eMoQilE53)sv}2fq zaALpm@N~QTRQ%N!%zqF40S@`U5#Omy%6Coe-|b%f*Wjv!t=Ye(G?gkkO4uqGKC-St z1SAJi2x(=Na4aO#{4lB#{j>6``UH?rT$3CwP}DRsbt%^Nt2ag&H*)vz3D~x$>QuTM zo1A;kMjZ&x-^RW(8pv%bKJz}8@#mQ+Y#*>#OJa8F zOomy zVx>x@`dsJDR`(0-W66V>Uz1CxzAB599{TZ^wFS3khbiWO`zVc#RYH0qSfXk~WS!{( zRU3avsUlOdjI>hyMw$7+DYi1R|IdsVLN znN{(OT-4!gs5-B$)GP(|V#8ncePzaAHSqa_*2#V@CQ%K&ip0fxNm(sw#o0_o7@ERC ze@8v^vc)0=)D&;q6o0J@OX32BO%BzSu06s_8~mV=4xldyv=ZIyQl-QLaSIc_Ls_-C zLnRX2gD>hZ-&D?%rK5R&lXesb<#0^^ahA?n-d4ZFh<%zj%Tm*zNwi!Bmzf%eGWTs= z1U^#&g)qrdMF$F^#%9Asg^NhvmOqXNU zm{Z+`i&Ws=lQBlPmOn4*8XgQNe?Lv5|K)@oG2#5)%!d0{178(nm=K>ItPfbbX8}m{ z=KJN}rS-%9>gMp`%$8BzE;L=i3(Fo+Civt*fx`#189%k7n>oH5q>g7QyBb)S0?3ke znjk`mak&RXc4*qBs{YE?$6B%-RARR!Qdz2ioP^>m)C59lZ+DYJ!uvAd%G;x59)mF6 znH>ngQ+oD&j6HT`dp3=11aFi2{;ZDiO^k~^?h#r=i}Z%M0m~9wr*Mxf-{KR`L6yiL zUpk^-dO!O;!5Kx5#|_hNM#z4ggX>s=cT24p*g*UWCh5G-IB$N=*b(`6L%wx$pG!=v zdH-wShy5m_6R`6hc0~tLDeNBfm~w1hW>z18-$V!OpSU_2AFx-JU#S zF>6;z((0(6B@ow?%TBRbwMGZa(L9}1s}$rozvxC8@$?kQYN!z0rqu~!W zgVxW6O*~FxMJpJ!{YbToJwJv?q!*QxG2H#R&5%IYwnsdW?5@KFy(QJ~@T+b%P~~P6 zk9Y-XaJOcYu7ctNgE1j!x{%=$xQklT-A zky^R=|Nemp5l6Mt32g91*Kzf{s5luez7$k>Oc1?Q&;`;D=6!+XTQ@R%TDh9y9M)rK zrFRJa(;?!4uGc;X0KQ8xR4@ieUV5}h2iz#i&QJM2AaABFwnpE&y8o`_|Hl+i)$33T>v!{Q^}G2d`R^R`pQ|Pn zTnucTEle#;9RJH=_CJJs%HOSDc?4c|sf_|CxIz@orX*G=Y^mvv7z)J&3d7LlxF1ki zw(D#6s!_NrOX3GmpC#f12=HD&SMNU!t%E6m!5WYM@VX5$ADK_qemuM#(F0xPWQZcE zDT!}uVl6oc^~u0Bv+T2?U^rIUld!kPg2>9ObT zHMjYmS6_tEFCwEYJ%#n)gLcXti&<`R3w7-xrM(%(z7Lq&;f<$)pY<{06BDM^uk zi+i;Cj5nUDhc)4@>RND0?1OulCtldkLYdq@JlP4bl$whO?#r%#mkX$3Ln=oS$&c;t zQe5ehk0(pM3p8i56UD+ve=AySUE|uWZn1SNul{w3EAQ0!>3Q-@6)Az$TZ1dxD4&6# zwCcg_{&rxc=et$Zbio;9F1Z!C&~2{$2+YJ0Y4}4UV^)4t9~T=oGTuIhZ%i-QwB&PW z5jNa+HH9$i3AY*tyA2c1HG$=1LLB4qI%Y?tA(~Or$uRO$OQN3vH1d)Oc1a&j zK+CDsVD&ftOK14K0W4wme8jjA&L7%<_T!dn}0&tMB&mawq! z7DbsVa^QtR#E1P!(_!_usm?In$v!3I~;>alF&R8G_ zY+;Ts0Wp|s*nlw#=9wZW93&V!$jEXrY==d<-F5G_-IFn;Li zVj(?Wad)1^BI}SkyUPSCm~Bxv)!L+}Zn@Q~4RQ6_0u{QVW>Rjuuyw|W+Xf6Wuorki zT<0W0@TloT%WOpzrmTooy*a01lZ)b_c*b6nLX}$*8;*- ziRy8YmFA1$605#O9K;_;;SOkqmv9KKl9j(&G-!t6Q18$F8J%qm-up~tX{>X!(EEQ} z{z6YRdafC#nSME~RGP}T*%ZfiFV8teR6aJ>34K`qDvs=ch-mMCeQ&~-xS}8Kr%Inb zZ^Z^t?v*OJ=yTubgxAzBi{^t>LSmQMahUtbCkpJ?x@eCp<5tZMpigU-?psOL1gzL{ zwbkl-c>h{Yf1lIc$KX?y?{$a0gXZh;_m^`B1wSdzfTlB2=;6kAV)&&bFG>|e3XVJs zIo=&+1D@M7t!P_=3uu9GR~~o4H#{sPq>`OG4$ZWGiXxxup(`t~#ij}Rn|$(hgBGYlND18%7I4K9~moFcagR@H!Ak^^n+W;r`6N`3> zXqwCcZv)3t=O#IAH08CyXMy9w)PpV3JwT z&z0Qm;?o!!p5@stbxo8k35BCbO zuz5!N5b;N{Blo~{1Pc-F7x<7P@$9{}F-@E|EN8%5NC3VUeW>2oi;~B*jAESEZyC|1 zmS`%sT8aI(scVwdV)aoP$1b(1G1g#-3|ps-hf%jqS(naDJ8~Py9kUQ-3&Ds_k?uv= zqGvmcx%bzH{nVrXp7zr*>n0k0!vofL1@qs72V3KRfrn0&GfQLvlut5=c8N4~Y^!`24>ZS1Q zND0sM?LVm@O^GVfIi^&mKo^gGQHZ2Q3$2DL(Yk06#4k&I8m7X`*|)vO%S?Xva_`Hr=d+5)S{YUH=;pGnXD+fYt;n!r2|ZIh10|r|uHm`spn)T2CXq89EBkEOn=yGpcH7f6QbO6%yT6KS8^pbgs}+pOe*8#2j) zt}&-oY3#uU`Yu!eEd5;6%9$cQXD(!A)M)!Eii)s)gvy&X9kr^GeBrMvW%~GJZx->s zwHu|25%|PEvz^zcbjduy>OzaKF|GzUv<%a-!y|Gagl}0|Jc?;L+Uq^kZ^>PoE-bF? zl6`X@1FC{@_F_CGW<}1o{9;}tyAT2}C(#Mz7ZI6`lB&U?pOElDT`mkxjfy8}xhH7s z^gQwak$ux+2i|?hO3RTpgAo|*#SxAGp%g=o&dOY*$>0Gd++I58;2JR+#(vCQt)jH9 zTkH{I@h|Xn*o|%@$3B8X8l}1L#|jUl8vyJqeF-RD074Kt@3NoltJ+0Db~1!cNXV=B zrp=f_+!MV+a8dKpZ96~-2?lE$VNNG#)zwM^snt4E^)5Y=szcv7esPqhTs>W z``qH8$XDCGLR8go#DbH5!7AgG$5DFHnsSF-*l~IkxOIx*!dA$EM~(hyHgg?nis(=S zxBfikI5FqPk&m`O9~cg87M}M6<8k-1MS8dL-}i*deoB;5ZO3I^53nf_@ zAik94AZhHGV{ct-k1xRC9|d+!oDBhMU*#iGzlK(C^_K%0?Q~5oGios~f?Sxuh5eAh zifzr>Ptf`zVAVM9>;9KbuOUF-)lJ`_oA%Av|IN?^{7dLos?OMAi=gltRd?PD{JaZ`|xcS`=QyqftF4#d(Km=Zj zR4D!e)b+=XpC_kx&EwC*Z1mHQ~8mDz33m&d~$Xd4L)bv&nJo5|Ef`vyx5 zRhaPzKnf0hh-94vaf3$1w26jcixpM6paxfLvATG1b_ZgpK%mlCSyZlZS*B`-SzB3~ z9d_jF^PJ4DSpR6tH5gQCRYhn|{-!YD+N4~Wd$JZ(w$|RBA+A-8-6qw47_kaRFB1@g z8dLW8gHpF7HOV2rvE7z~detM7m)xpJb_6T19@m*Fa&o?ipD=>TZ+!2!XXMXgXUL4( z{ZYwM!G`(ohdrClA`*zC*4kDhZO!r6S5-H){KDLgwXsS=>ooX`8;nY&*O+k|Dt63~ zpd!sisad6rYMz7nf@e$=4w^xGjh*-!8BmB=Z`{@{K{)1>X-X2V7r8JPkYnyk}TN`9$Fknv;+L*2MHg)=->lMT?#^q zFCH~Cu}$v9x+&?cHvDx$3N~N=dA*SNL(z;7U&D*=kTKi-UhY~XuV1760_NpPitnm7 z)=$&x8uOH{P_wKsO1=Z=Y;V6g4BCQ6aF=gF^s zzU2R4q0uQ!84}+tbmY5;C-Uzk`a%ZIM&<&x#)>A+-%hS>Le_RpE{-Pu(U4Tq`PO=V zYmaR;G{a~iQGpfS^AbkcX2`X|1NptoS#xEO@teoQ(bqOi+shx&U!!-ln4UfU@#q{&HlI>8;jH>>W~vfcpYdyk-UXy8moH{JK5ysoy; zx|Y`HW9Kz(-1|T zd3^sDY2OrH3AZiVosMnWw$-uiq+{E*ZKGq`cE`4D+rI0+`<#9D-skDR_a!S2>m~Wd z9J5Bv8dXIFxttV5;{%q(XwMSmlGpPo%)q2)U1nYtX`R>3eWl?2XOCS5uf$`1hUz8D z1v1aK0(wY({S*k{o77g_9qYxO9FCRVXpR!|8$I>=(UtQ$EgEx93nXE{r15Hlkv;F- z!bmM%L7G58XRa5}NA8dXuNXjBZ11?hvuG@cYA>>Jz=w6JGCqx^GV|); z?bdrWLsL0+iaOd;$?{95@eYb)9iYZ(X0!S3qoO@BIFolpe{=DQq z) z_weXJf23x-^#MiEwWZYr{>O>}GtQdX<%2coq+ITqFMeYGjd6-3A=b2FB zg=J5hDBnzoEokQ6t03GnD645t2F^|uvdE;7k_UxKrO@22=!;%fOgCOXy!8}|ycbm( zxf0BK_pV^0V5QbouFBFn%nupoB%2`&Y+GJkI|`I=7GhKSpeUBCR#vX9q0VQ9Q?sCb4<%?kra{6YdrkYWMc8~RuJu9 z2+Ujqk&HBLC%HY2#i|HI#uo!d6(^N+_kuA-Z`H}}E;|RMptD^=mR*4^U6m~9Jlk-- zAD_isN@8_@TtTe6-Na{-)GD?Ody9<AfTHEwO5%+f*GwF?%aQ5Jt_InJK&ZJ9*boG6+>Hn>jFB z*D-Of6NJy>+)W3c#8I&69Zocc^oUzeh7YRKY$EskQe&LasS}fJgQzCO!E-j0$6MiemZho@F&(j=!jNvD~(Y<+c3hQ@z*<}UnPLOO7_x8*!)2w8JJSQ zPaz4kgvs!l&=|z6!_Szj^ajIdrB5P4Z#+iBeB$Jt0Kzdd?*#RWesRbAknbbQ36Tp) zR}Tkoo-fX$W1i{oH$fd^+GbrOFbPdHh%hG~G4NMz;aV1< z_wT-gWZs%E(bGV!!YZFd0bD1Ph-(x*E182B#k4dsg_;eO1y%FvvJ#8b`?}{sraz*< zsn|s$F>E=S2`pOO;CDq7&|bdrrsU5Ec8NXBHpE8{V{+TM^XW%%4RLy0CkM<4=RC8c zfMvRZWbWoGVmoGdarfhh{yw_qn#G)rzJD_PeeTA9&5L6ehW!lc;h{lD2AXFzb7``S z^QSLVZSA=}o~yZ>=25`UnR>DG_{fIt>>2iq7OSC8blK0vu2)bk?)0H>@>Kz?(|n2O z9?_|8ahFb87|lBwPn7<&7mt7}0x98IeQ(J7kNNMrDeYEs2Ds538nW3+3%AIhE-nx$ zIGmqw|K6^L_eB?<0I&iX;AzYM|In`g`9Ap1oHW%fMI=DWwnkI~hag8mmd`LRm-GjQ z_dzDCB>arzgPMgjZ>N^j#B!dS7%UyX&th{xiLSe_{9_uFXduRbM{i!837qqp6;sv;kIb*ksP zYDT8Mm0zn?G?_~kn(p>Hs5_C7pb?ef6@2o>rn`#VRmt*+noQZa<>zqY8YW(B1&TV_ z#0-i~OH8FS!Bn|;P=gC1<6EClPhV{Pm7C%QgAGzHO1g5HP^oA2#Os}A@z)7oW-Ur} zj!VwrC$-YbBJeQon@y=D`ZC-1<dhsCl$;G#Pt2|^Osa+_#}xDDoJVG&>Wj|%xY)=nvl|p`S%NvBDNiIU_-d{K+f4cMFrhvkl5jQeSk; z;6-Igp^ffthzJ`gO)oQVJQs)}tOWHka#BLOZ#YX;nWTEfdC>lGUM}nq6x(MG$Cb9b zT8u5)PLxyEYk3Lf2K!#{u3a(MAwC(@1gXPm#Wb$3am!Z^^1$ z@t%-)>M3vGJIp+S_vmEHa5<7cwxF9O%VCm%^nScjh|h^&&GnwR zy*LHudtHLK9B&qj^P?JYOR%nFff@$h(BhwJir&y$ioq0I!>ZgXUT`y;$_<;M1y3do zJQcnc53Cb*tW#^PhkoLTFm|aSy;y}aSG7w!HyCC9BrY(|?Zov2aEk&Zvl!Vh2dP`l8%fuBa zkCEXv?ku@R5q?GaY{Ml+C7R!oHE3OWF=Fzfo`jx%z_z<{5dus-wO~qFETIVAjD*&8 zzL*~LA5mNjvk~R}QdBGGTM{UofNbuz5P4MT%g_fyW9$r6i|Qdp#$2J8Z}a)S&Z zZrFBGexM)ha=9+SZ9|*fx~Cg{>o@>I8O7xJI8r8=*%w^V$&VXK=E=U5P>z-{7*8aVIztP z01K4{CW02ICAn_v8LZC_)CTO~Kj;)*%fW`J5_==-FWOPri;>h?PF=Eb-A#D5KVJRZ z@&R)7eWU2Fr55}X9;sYWSPQExAVcaZ{3ke&Tkux7vZ}izi3&PHdC9`OV5wAvhuN?5j1g3#yN)Ro0)b#6SkldM-u~2P=qge!f?*T^rfhXCP;8;t@)klaNh9yP(dyf5{yC zYi64rL-_y$(2ZvRZQ$Pn0sk1*{#U^kDxJt6$pb(@bFR_1N+SgLGf*vGJ%<1V;l$8V z)7jPGpT&K0pv6oR)Syvt`8Oc+Gw>uc*`!_mSNhycnW&J&4Yvk|zdf3+vaYf`e7-(D zfAml%vr9SYasmZoz}6!G)1&dDv-K5hoc3F-@7SjFafg5eI}}-x=V>IuD9$vZmBV2y zBL!C(X))2r*N5kskM&L$|Lnv2sicC=nP{ZUW+iAWcIcQ-9jYw98V@2~twbJFP&OJb z+&IqB3q_J@t4(2%cW?+%d1yom85BfqBwCoBs~ei$T8f3TqU)Mwit%-yiCZS+>SyE? zz`B~C$m}*zm1vlcpR80TqafZK&jN9>7`=U6 zG>fJ(-X)ZY_$X1Xcuglh4A72w*8$ebmZD!b@z_h`i9_Iw&`>7m$i@9eN6o`~+Z@+((>Kw0v{fc>g-2Q5f z>2WuQ>(#Ocq38Ruh6D!IkdEUGh-lcgCW$G_2i6#JU3;nH2;h!c@|K#@n+d!ZauvGvs z5cq7Ok;V#`ccXb+4(ymq5kFJZ3x3xm^vMONC=gbwBB%I_O{87OJjY3zHlci_zkoO zhFf>JsS}R>oXz6BKlya{kZj!saxJAYIdZjMkNlk-|1IsK3hAX*$*P_D7n!DAU2~!- zFmFtdmI^;LGL4}ab_IiB@;iN~ziS$SI`sup!Dt-;`d}G9F)L?fn_PPbZakSz5-;3S zD`dkZhiGT&+Z9E5RZ)sAJ&vi-Gqjg+JCyt|i!vymY_x3O&7n?xFw$ z9E}=!<2ASgDy~76o`8*=04@#(*6i8ygarPd;PONzRP4_4uwW1vS%#q+DPj9h)R7aE z5e(}1yK1q?8bTU+H4AxSC64`zCR3*UR|w0+m=omS!n;7-lHXK)ep9J9HFL$>=f|E) z5rqM#146DN^t;wql}Z?!n(J}FN>TW`dd(Lla8V05E=Efmxu6woS)wRc9I$LI0M}d5 zhjE|Gj65vIFl*#76vu8;C=AU(bi3$zjCjNE9$USW-sw7V&w1JVYy}D#cySt6qs$|5 zUCd%dZ;XPo$79qZQmWpA;B_s*8T}wq2Ene$?pGW)P!-!OwGlL~{oiZU1HSm* zA}1@^IXPr++Ox%~#Ad%5X-|H6HaSwDF00dIBXT_7*D5%)acG~)KSez)$C<cjc8AKX`nq=5D9_;@QkV{&{Znj zM^xojqVK(l^Cun}f>glHCKq$?q$HYxuk83mr;M>{v;|AO^{5GIHQ+?keU4t4yrA!@ z{O~R^xy&}MMP=eXQFPP{w7d?l^wSl0u=tKa>w(8Uw&9+@ML*J`Eb zR==PHmDd_K8!~<+cN<%BG!RC(mvcemF)i@y^$c?auMMC0*|bM_Ho3qeDo-*0hUsf| z+o@^W$CQpZ`Ye-TldsX@a-F32_Nz@g2fcuGwrVSFv1ZdGGJSJYAnrqw=ym)van=5) zvhG|zT^^m4Aguhf+GR$w){(Lg^2(vD*=NKHn}7-FN*W+V^E4O`OwloIi{-)`sjt}w z3@47Oz+J#FN$=X_lTJN%qj}4fJmS1Dak_}BT$}~@wHKvV`eqa+KcRD9&uK%c^SiiL zcDh@v05N@a;5$h16RdEE4>);bb%6j@Hz!=MoT}PjrX(arLLM{u9P$kIT(#HQo*`{UgqPeK z()pCte)NAM@}@=(pSrI;A#>22f3WJ&1APYr!G<&-_s0+JW2fE*-{QgS1&w5$K84}k zf1z)KG(flEUNjfd9EsPHo8Imq-X z8?Bmt9!s$pdBr#sHZy)w0z-N>B8_Mg5JfXtF055IR`drR8>cWc)N(wLSg{T!A$NjD zu}PUG;qFP?!e9dJ!;oOCa#XnkEEu{zHBKU)yV7v@5qhUUeGdE^h1wbu*;t!YNTqOa zbh-q863MTyx448AmRoy};M)D$9`n9SPjcifYB#8ZNT4(uOa-R{TQ_3~2GK$a=^Y_V zMiRa}=Gb$qrj70w{?glB!>{AXgKzcXd8gm8c|qqPPf~ExLdcThhW6?iY$R__^h);; z94>w$-2K$8hS%JxJ}t{Ms>$M=+jGRbFk8?ct{Nr{iu)Dk2Z?byH;N>Tt1_ve=n(E@ z1#`+pM#0u(h>CJ*|4^i##G+9n-kk!-*cGyj-L#+A)T#D*G2ee+s1CE>XJK?JmM%Yf zHafCmu}PFxU#Y$=@9q*A=XuWo2iYKWuL;moL>b$uE5cz>%4A=8>Z(YzEUs@-t?V}* zO~#pn;bJZ9cbvUMxPg>W$bL-Itok$E9ZzfrSACmHzUyX*G82{2Cm}_fQIxmF@RdT646m2d zAHp=RiO8@JUdpM3+{o9Pk)vRyoh}_bDJnxIXi=%8@V)BT*v4S_%TOX9*LrJs`7)P8 zcqjg7UYdSnXi-CW6u+gB|2xTNW9EjckrFS_&AUe#jjSS4j3T@pTWAZKkf$B|jRgEn z2rvRWe=tZNbxB(RN2*(?wrtN8E9sf4oTQ(wklOOn{S&WA1-EFH_k&Fuu~ht^Knl2ai1_z zP~b8`f_EkDOUiMltqtGw2$L?;MW5ROTr&0wq6Zy_y+RkBL-SrzyDWa%^$chx@U{ek zMOV9y`w7z{@s0N@3vJsYj&Tkn4Vj6Z~*s4R7xoWUk6t>UPVaGK)p*ik&l zdrM@dlWWOF_%l@ts>6P)aOrj~l)cxyFovXK_xroafE_5#Z);}F?yV)+*H^Py7rV>6 zPHJrjyE-7Z9dF}+c7%S$Nn1^GiF+d#QW(*Wh*c*m*~; zLrd@iDF~34ZIL63;jUi(jRWzGMsiQxB0%u16Z#4$6cc4C^lOg^N9= z{Ta5KTHkfi#5K9XHuy&YAkWU!x>t2ruX?D)1IgGcxYc{M9pb|D1?op6#1HD0`;}dW z?wIqI@( z0A;p_-e0$*X|C^oI8mLKMySqee2!NG&x|Tf2-n zTljZF>JZHISCe|*;9*QzrU>MQ^@MD2IUH>|TyoT3Ty+CzmegKLHh~t5zDnRdM<97q zN(ZiBE{63eJ&~Ml>z1O1MVMx5&d1f!cwbk_=>(VaHZm(4Ee#l=TNA?CUmi(OcR4L8 z{j4>+!F_xhFD}gS;YRjE*tB59(Ixr&)W}KjDvApX5M5p)zg* z=Bdq88%>g=Rm%P2)f)?!Y+?LtTgRocaUFrlf#BvuxnvoIR5#rupS%3cum(gb^;?Y8 zYoS@<^5?+Cxmw`jKRn)zj#_(rE&XO5+b$|QSF_^D9-hkWsg|qvNAE;Uw8RvbYr!UK zUHueA9g3{np@4`o_p23?oAnk!4!@w@tMsV$+mdZul8IwvHr6rc(1z^t+APFkNTG|F zGOan|C!e1@ip*W#@PxUGfB8+?YV@jQ(r~A9re#lf&&^1D4%v7sp$(cLk`(Wp4%U@c z**wP%nk^&>(Y*p6%2+5NqS=Xe&Whg~_~I?=Q2-?j&Hq8*I_Y8e*_G#I=tmHN+z|7X zxx*s}Bpyrzsscm#c^BaA4UVt~V-R>IZ>(LfNDpi1L-2^9e*`8#SKkhPMZXeM@A*^* z+%mM`g*dT;?J{DFBo2zMXq84Vc;^X@4W~wT9qSGJ8)XpQz@J-drPL~SQz6Wp&ZOn7^qC? zm+?BAVz0Kz<=~C3&TnwmXz>EKJY6zRGPP1`p=*E%DS3AP_j_??77wQ3SG&{y(0tbq zXum-N2FN6UsPk_Elz&wG|K@6xw*XsQ0Inu}g47IN>=$)G<-#H+;%W)aCpiOaP+lp4 z5)%4Fz$9W*P0RW2Ws$)L!|P!=T-UM3LlD?BDo&=|ec|LYn-ex5z&G&Q2{{c@>(9x~ zBhRgu$=0#0ulH9jUnp0uF!HJbcB!(|_`3z<+0^7iw*5!x)=E-anxJO6gpBlX3=}7n zdY~Uwm+0vn)m&A2zZ@1QzS~LX*vvL*%GP(dO<10dwl{a-RtT|n@9=w7sl4TA*f3K) zjFbZ%nK#ud%`Y}A)@fU=l$YP{S*E*>8Sp*n*PfUrd(1hjIGG6Gn^}sY4$rGJ{L+}2 zuPEFF7?<+w2L;y}nrW}ifaFc6YrIxAnK=t1kROV`fn#MfpkdT>8>_i@cDChkNn7<6 z2vaH3T@*8{^{Mcpo0h6);(svq!ZrU%bRm%+xfo(M)ksU<(7$0$j$H|)fN|VDcX5O? zgMhy1a`CWwv)1XG)4-cFwb=2#`DRbwE~-qd%}Cux1%-V<@`wBEfCj6I@8##-mgO&+ zDd+XweeWm;<`1>+Z5VGS@#?c{ylCue^?^L;8VnVUO=MVYqgsSRX7g7Uf|6~`clgo! z?jA?}V|E|;O~!3-@)w|eYfw}br57}3lg>(APK2};m-g4dd95>)f*fsYtPm6};)xo@ zYH(SML)D)?XyTuHR%k-KvlX@2P5RWUnqjY@3Tf2Xv`$<>QjbC?zm3MXEBO=u{3Q-K_Ow`gTSAs8|#AWv#S)uL#L@l~^zhl(- zv|8>VuHndyBiX9v*k@GpbFlurv&``5Sa4lLa}-L;@UB5)2k?{Ec^MFV9F)Nug=I&w zYev;L+O|CcE%h5-a`WBqGG(qL?&^>|WXO!&IE&mF;?@L(o|^Idm-%#9vE27Y6zzR< zeHhP)8;=;-y+_o?Xj%&+!5xU~kr0W0PJu1!v@FRVe?Z?+g)Yg#n*F|E+Ot|Y^tbv% z>Oag1AzWjI|8mlNJR0r(_qXB6Q#?y>04-btxLyC2lt;+OSkKAQQP|E&4{*Ewm)uNg z?Jr7LtC)$t5Un-9^+#(Ha;Y40ZsT`J7#5H`8sb-dSfiYPIauc+;@2PE0eHHuH~h?g zLP&TlH(;JOzvjJ)1PkTz{fd~5etZ40sODkX^7ej*#`kwcGL&-90l3yGLRyDCG=+>K zfXqPxGIsP#85ZIPA6Oa<%|+~38hd(h>7S8AW*S^)H1^!pt*(>1pTK;MK|o#1ITA8; zWQZ}0XGP4Y#$8-#tAiaxa``A4PTSJ!OOiQIHmT7ZlI0oupiW8Y&QxyQ(&jiM9?*`M zBEph__U8^39MkC)XX#!UG?z;tj6y;Ek9y*e27^bZe=mlg+PBtJCD(askx43wtWnyR zYvz4uP;+H$9=3B=-0iBk8hK?3t2a)!T9%?j|cdy4YbcePx zjtnbzM!Vu+p6jM^gm9oQslP1QKVw?8DQG<&&PAS{&+lj zMypRbC|1fIT$mJXKQbGx2**%vL$lv;&v7cDHymvmDiJgr9Ndoy4~9t@;~OAt`i==S z-x}i1k>No68j=tS^YGcZz*Vgfm&~a^CpomRIg9P^ibLS@jXy*) zOD2!S=a>q42{&>2JEn|+MjeHdGEjNqJ9;C9R{70?ikJUzO=Z|vCc6OK3`;Op^r}Pj zs_0!@v>z`wX@jSP>58AdK?i61_YC0e58#&@0?ePj7uo2q_(4jcfp&A+WZwVb%Af?# zZ|eg%VzYqj{BIqxzs}ZwE^!qq{{z3S2{b1Hg*WAuJV=`XQoWyh@(7;==6#8~=q1(1 zcIzT8l7YLAb*_D`za!nGJ>1M zOV3Xh;fS(sYSZXU#c3YvqdE#J@v-r<(#XyhG2q7{aaDmMFopbq!u!*5rwe%gSw~Y8 z`oqrOye5XsA;*B+!uQXK9;lvJ7@|k)AB|C1$-MGvzZV=7S1Tx(nwgZO@~yGk2YqQ6 zkcGxfRFhd%8l*Ti4hL|oMsT)p)7xs23^)Oj41PyJ-xtc4Me66rK=l`{n~S8%XyzY+ z!A9(6AaUjonZ^sh-H58U-+v1Jq*KFS9FdeTHuFAl_u`4K3notZtj?qF;ls(Br75Ai ziyd{4Q!W<8!hS&-KaKV%a2aYZ$1yK=?>rN$6e!gP?vs%oPbAhAfqiGpag~^8O64ucPF|TYzrn;qeOFEgKEgS6` zl#URL_craXa?N`1>!1&IRJxaAlV%7Zx}=lslJA@JvLqcIr&*dFaL~tOKU_(6PK8&{ zmEJDVy9G0=?$0$9+VA{WwvhZ?fne;AXqmRLa(orzh|t6bN3qT2*pF z3SMv<+jRUZc7fXr9hL3Lg;5>sY-o2+HfX*h(QaEj5>~TPuBVDs5yc*>hqOVgPX_t{ zG$RUi7^Bxxi0n#^ci;`J!2Q|qy=0}9RpB1xgqvlsRh01(vx@=RDf3vWL2A1^^H&v+ zT;6{BCcqzRN!@tU4I1)T0co`K73z6%<3#9dfS>s&4rZ;5VQm$!rV=~EYclHY!i+Y^ z&lXvH-_0~>R|2DGjRAji3PFV5TdSS0&+C5(t4>{9B!d8>>Ga=~00_Gp7}@^Cwf~zE zHuJx)&rI#oaBy(S&^!e`4ET9dEFcOie>3xjMu;w$zFKT-wz^958BX#yd{kS&BAW8jK7B!H+_!az+5L1s!3 zT+Bet1kJgQnl69PL_~e}aR~auW5SliBrUo;&03j>8+WEV>9gy@{kLwYP4Z~cg97ao z{jY}e^s)sOuaxq(#%@^>WSD?6T00IZ^T`_QsY8tT9Wc&nN%kJ}!#OkpIr~Le6fG*q zgp`gCD{IvTtAJP`^?9j@2MVZ__wwDW#c3r$CX3UI3m*N^iYy)SUn3?e;xy?fMYgIK ze@<2?`{ZV3M~I?+6Hf4{*|`Mu#d0LP<(r&V8F86+jr~BxyfFOKw5hGu%4%8=io~G5Xv}n3uZ;v{fK4d>&9-0RPSOI+cgk zwrrXH@JC_n(}Ai>tX+&ly@~tR5eUHq)=85gze*u}=ov+%-fz7d>KTE#4OWCcHMWyP zdaOmVE+Pt5bZu>S-FtV(_CNFvGQUhwKd4VI-B%ie)bsiE!+5{h1;+BlUpCYGA|HDd zSBrqFGSKqmIR)Mdw(u|0f3yp7?aRJ=f6OF|o8vjnrxf{E&2Wrs3>*pP7EX&A$02YO zi>T2dB=I|vyY?^Gk(8`mBmOSsh@a3kttAB#^2~=_$LZ#Oy%=jBIDExwb4Py0dt~aM z+C!oGWSf19gws0WY@KdDfr>l*03YLzy6BIpA)T!)=kZ9b-^rHQZ1Q4gDLx z%_(qMwx*AktkClg-)#KV?($#Am%p|W0@B3(m;fr==l{9F|DAnF_`h#OLtiOQvKvaj zL$`?_M?obBFr%#1@mokzjYQZ|u5YW_qxF|)t(rsW-f6vm%%Dl)&pdg<{|vrauc9^} z+Q}97u$k&Sdir^^wfXZ4*896_cq2QZni7H_XSfu!B&C2_^lq($9VAbfJ_%%$-YiOV z??k$-W?vJpWv8*O4LYsWYVw)gSh-z2(Vy4m+btIzxLxSlO8de#`AuqiLy4xjdDo0H zE`hlVl?Vk>X6amye*0`Q;VO@&`V5;TZS)Phq?zzdmJ0Cv=i zBSbPXamM%+u3W)mu{=p1wFcrX8D}@O=74leG+3LwvJxk{>hrd<2{A!+r_ZTrE`oYF%)ng zJ_|oWS7FL1)r*?6g+>Y$EIg7Xjs?b1=X^$LiBvy9nCNTB`oj_~J+o%DNSclpD9DZoAk6T1jCxMUPv8KQ(? z94HD%R3SXmUBp)=;Q>A51! za6EP(@u2Re7pIrE-vSe0W9OiSUR2*IPGU$SnaZo@<}hfXI$t>A6=yOW8dJ2a5GIqT z$C$x|656yqUwSSezM8kbu8CxwRIQFIu58$M=sidBC7k=(($M>By{2V@Uc1r?UZu+w zvrM2doeoha45_vUoL7@SYt4Ztq~$lsus>D9`D%l!976E4bvvyRop3n(N!3MlA;PQL2dxFo z*%m91zA1Pt0(Xp?vsM6g#88q*_*3QunpVCdrb{ay=``O9>`f%O=Ohz65A-!)^}D;6 zZg^?9a2+KU-WLB7D@SdPkUS7v?hb-HQI3kCY8VhYFER#1Xq5r8rG65)drQGB%OcNATw3)+nwWaM?bD#}MA(2FDx^n%Pd& z-LsZ81Vd_F(6*;owH5wbu;oVt5)`lYIBI)8oG-9{pXFWeA7Ih|g)RV?og9n*Lj~2aEta|yg7Zh| z^YXLvL&>kl0K$8x5t=5W%4%>n7`KqM>1$G;k8YDsTGk!Q*Gk(>r!{x&ljp-Hq)o=^&i+i&Lx(-3n-0r?P39EM z785JnE*9yw$jwX3n=i5jYVBZw65P~jGqtWYm`&9O4GrLQjVT9Yus8u0&X*Z2zN=k2 zf*4W-Ng2^3k0Z_ICC3z8>QF%m~4i>TN$CXU`%D6Cs;=()P*^{dRyYmPb3AAHLY zvuw%u5Zn{fd$63x`RLyuO4XxWI8$mv(+58@&OaHw{NYbPSe!yCESWBZ{%Y0BrUNy^ z=v;cAtAuYvU5?RJpZ(<(**WbK)hL|*%Y5aH@jhnOh>}viDZPnQ#qs1tEH=S`(cxP_ z3%hSQx?bu}ai2n#R91{WQ}~-e>r0KR{-OdceOLP;w>dVSb@JdeMRs8WsJhS{`y(nv zXRD10qgiF@={O`oyj`*B4@>}Q$EkPx`?Sw3Qmoq)ugDcK1sp5SC;vY1onot}YgS_4 zF~;?nJGgV5$}w&ta3s=5!-$!?Gp37YHLwGj0)jixUz8X|RwG=C3_`a83gaozTK5m# zE{)yrc|U=`nYa<&PPWyi3WZyYL(4agMvqf! zY}>IYO(yCY%=3Zn8IFD?C*IVP@#gB;8X#~?PEMX4?OXSFy!!1h)p_@J)qM5suy$Op z2(4b5e%vng=}!;{9e2wG!Kn=18#XFOKgMJdi56<2v^d>Z`YZKAs2`8pQCcSI%+ti`k|NdC z!;SUZh5Bc=F~lMo0ea|7f5Ukj z8S3?kjkJsPHgAJXCtlskysz{eb9D7Rro{llZWgi)YVLexM|q8eiB>#oo_4dj7`=D$ zh==ez?ghhz*!u;xJS9ec3=zvExmpEQfimMjdj&BPMZCc{UBL9@Jr1urZZr~d2W~6& zdi@RV#EE+oi?f|Jy${}U2_?99kYEhGtpc@z-!XW?sjhFXNRsL_URSP1w`C%7m$LI2 zmwj6puQLC-SJo%U`&F8q-q%;1>IRLP*K`F|KlE5H-m*`eQQk_$(s%FMBwmQE zl`!1)CRq{`QNv>bK@Sp};5{}i;!$}UqM`3&Evb0yqvXB(vp3coBgF}@}qG= z98#1Q=+g}2PasM7WkjQlhMwTEMR57fniBc)s#?;G#x`2D>K9IVHru&DFMdswC#06@ zW25Ejy+^f^Vws+dp8YUaB=DshLLp&<`kUl1ru;VPjy<`wVBR*Xl3LO*2ss!oVV$J5 zATx`j{|xM?0}8}f16(eD?S1|&7E46W(!uCI5LBk(e-Xu*vsi2(WkA|Dv;Oo9n|aJI z!IJ&Vrluq_&3*UNuo%X};|*b-0YCLU;iCXAv1Hlru-$zv#+=NF@%YSXD;|$V7mZ6N zFCR~DvfrKipn9}_JkECgG#PL``xQ-J%S{QQK69zD(8 zux8E6g!Tf)KVP3OV))FRDiyq%np&vo6`j}HXk7|tk@a6#yoPm?Ug5( z3#t!6K${B=N@av}S#{V^e4CEvmsyoqtr{2CSCp)ktu-PGsEjv~z2^$QI@G*0Hj`;e zf6Z2%(Xlm$vFLD4l;}5d>g;xO<(Xx8i{od}S%Uwj;{tVxSBg-~pGn`M=kX&W%d=sz z>T}VQ)j3h{GqB%ixpIc9ku(9}QNu6P;O>w+tM#lV4{BbYf%wpE&*DZSgSWV4=C@l^ zu4}6L3pd#(rsK{fP-3bSWO%)+-v`Thuv!7n%~0+5EP3LA53Zzz&pE<0>Vw`!IYuy| z-QOF03-~}6lmTSeFB~LswE6PwbhG8y4%H6vY>olz9}C7`*%icsvhBh|6GTXUw|j*U z385cf=J1xTBYZZ~!RMX3MSr=3%6CAA@DP2m)fx1UHd@8cNZk~*jFI8C9H{|!1&4{T z_0#rg2S?*TCw5?GM1W22KM3vT?DoG@dshUjmewQaA8o8hP}$b%RX!YQw@1ocXE|J* zufA*bD-C@W5c<$v=}Sn4tzC3ivq12MWaAQ$3QF)hhwI-u7kq=PbrI^#DUjYrwGMfl z{14#YHn9}~3b+-j0g`u)zk`QF0P(B;x}uz!xb+tb8tS%Ma!TB>9iE0kcpq5y4Sz>u z6^HgGNb|*@WwCyY+<%Y>ueBX$?g;Y-fH0F$vF!dbYCLCri^SCE6P#uDeJupgmjKK3stPI5Js#sOSdL35ZbjDrizyPFgUNv(=y0ay2Oj zjybM@RCV{Np?JaATy;jJamZz%?5i_HC!OxR#G_0>exk0fsa24p6$H;p7p)NWiLB#9t@y>} zyU2#^gl0DGyi6EyChtyS{*Xpm)b? zx6Qv04JOpvXz`yyI|vct8YY zjJ*T8H9`kY@wt-@qkR+6cK2gal75>#J4O0 zAzWMD7es|esDh_$%#mrT(3L^5YqcJcD_}(>=it$C1y5L$b&h6u z_l>4;$(E?M;h6XbLWbMPcshYlaJ}qPY!Gqv>=6R0*eD}dgwX<6d}9$f_|4+jZH4|Y z&=%=EL@VR8@O3)~&`zV{Vi{YW!9T6I20L1)F$qR6&+3ukPx7>KpE*>-f^Iwc1%VkK zX)f?O`5{v5Z{HDPj<}x=mzqELu;DB+9lJ%@&l>XeeFx@>=n$bTG9kYywgirK35Dre zz%8K>{3x|^m>(8nzsV=M6Xf|X=YgvcYD;P*gP`_Vx2=$yUM!TEn!L`2 zG%|XGl*$%F9zxM`o=O*g5bvr@ z&mI0~FuGN*HST(wQYX`SFCA+R(U@4%gdEPI&De=P@f9lsT~lkYWVEJAb#9@ne?HV) zWIv8v+}s^TI2v}OXmBZd+DO{eF4(Ixm;*Q7ppG#&7}>ylbb60jB)?4GjCl(SQ}Q_6 zDD`IgW`94jP>6fNliL}0lMSXo%7>)5J zr7qbzc36W;Y-3|Ua)l-b$q+V?1!$w4RudxWgiRn3mL_ zP>h({9~r}g@Z5CBAiGIApg=jAr2<=BaL9}G&Tx&X{nBDrj)C%%E=tixd9ImQ^!m~t zX(HV`4T`{n-(1!xg-}=jY~b9Hl_%yzLpv2J31?I|yHP+AnkMn8|S1H17yTGmrYFBl` zH2Ou!+g-EQs$SsUzje6Fvn*XFi4RsROc(?gr6dGYBL@2$ny_5}2%PvORqaAN)vDwe zA5FG*hmaD7!H9>~I90Js9a@!f0i#33U7Tlzu+67?8kAB{)`Nc5=IGI>#Uw5LvAWJA z`H4^^hW^6Ae~m`tIXCZ;DQyzSnXVDy5Y-m*R6+03Xn-u#LKu|p*cX0X>zOel23ZF( zR=@GL8VLz^fQbL4%MgqAMa5)CVDt5MhbsuL``Ps_&$^+h7}$DBs0bLebhA>uhlaet zI#l1|aNwz=){$qO*(g(2snGiEN$>%dyceg{p2(KTaw;pUX<9n(X4-UKK6aWQm4-a@ zMm);~+1lW&yELyfo^r95wx=)L%N|ji#%tAx-O$On}G&?6q zRD(l%-ou*imLNgA!oR0=-fvOR3j@ssTJ~c~ZV(svP_E8b;T1rTj)R>K>Rj8JPQF5uDq5IN3bTo$Y+JDQ-=5u{YA54IY@ zMTuv4P{goyTrR(d{n_Jik;k>b>vQTVvcx^;P6<8(lI<2Ims@&;UTb-0D7d?`U8+b6 zD7J=0VbM+>*P~hL8d!Gu`h1{Ia{EE-{y0;XU1p2f=nD0KE|hwh$!-DmOVYZWeA;W- z25hCVfK>DUQ1(vYnXTK_Xr*FRY}+;~HY#>fv2EM7ZQHhO+eXDW-`xMR&$H%S`)1yZ zn{oSgwccB6c0Hxypqh!(y{b2O0z|39{AJQuYw@l%GzS$C2S}ydl&%K8qN>9;AWEHu z!6w?1Gt2J~EHFB|^wQdTs(g$5Dm7m9=JcxB>E~_|wY+T0h+}_D>0#}mLBTbP5~W7V zRst9-df5kA`5DaE{ls6Lpr9OHhic;CVw|up55!ts781--hNRJZ2q=Mxpgo;TB`*A) zAubC(vl6^SC4P#%N;`>bCDQ#O%1sbwf5*l_jC#*3Tb4`j&UAfg*9B^P7(KjpRNur; z+nm_5MvFSUX$}`_3FscStm=$SHpfyqS}V$HbxK!uCf`$|?Bm&6^Q1hcCV6wktvVc< zCb2#`R*&8cCWCt1WmEHXLG0uJe2V2gSB&>(v(cg_p;rX5HMzTr7vT=BhN-#1O6u!w z(Q~pi{DyNPMTzNf9jW%^beM5}&Yz)$xn!ArQSIJ_+@z3kXC3qsv3b#Q#N$O1U`5x1 z-aa!yN87V!`ww$yitXCQ8YEw=uK#nAVVpDPsRB$gntH(fjBGj>(=IY;7Wx%Y2w`=F$l z5u`(0NI%1}d*QPI{$VSK{B&#fS;_bBSzjE*AGP-{R6gRGviUv;C@OOyy3CQpLv1ET zCFm*)xqFm?)|+=A%~VM$XjS(HyR5+N!!tbBoQ~OCUV-bdlB+L|ugBGvn+9S~r@AK^ znuk~$HLVIvxXLOt^Vxs!w|1%AYPA*|T{moau1j_Ft+KILZf|SvdFP8T zT~m`N&OK|X9^;UK4qjwn}(DN_2k&*rM1e99gNj$byUm5EE&wPIGpiS z2J{E&`RV8F7@H*7>2!EEe`dOLsHYpA*o)%}1ew(f9yrce)sUlZj?uw5A**Asy@eMr z!n|od05T0-=ZlenAMFw;8eg^CW=awTN%Biznf2UNQCdIOCkw^Pj9zvtPnPd9uLARq z4=rstug%-fYtlC=@HO*^tLt4*GKhfYNt$<4mv9g=%&MdxRcoXM4ZsvyhUo9Fu~K?% zGa$6*F-%T!;mo^9gWi3GXGNS42k1R_ek5Zybrx$k&znV`1;6d>xpnzLzPb{h%EjhA z(YM8b^&`A455(~6;AdQDn;OUFxZp+2b!2l-BNU^@(0Bv`IArJ0da}^#A=a@>zCdo~ z3Ev~)SVVkm4@SnA(R5=ZfCXu?s3V6@a{EeSIHmYGLt@kl8ASBc*hBk9M9HrWU-4F8 zdW}k_^8yajR@p-pd@^7qgav78=jEueN_hn9>)Fxlghv*k@NyzLeA8UQh2FJ@nJGv% zHv1O{i+1ZZ3 zCa079G1?64(670GBFA{2`2=Kj)B4SpbStOIKWza}khB@>__pN(81Q722!+2Ot?+Gw zkiMYzCS7=<;&WESlv^hz-0wS|x?Jy%hOfQ99+-S6Hk553?V$`N#$DRMlTkowXZ)!c zs~9c$`SGd(O&dniNS3HYZ+>h==HLlq0RD`tCeG+EXe!hz!#3-2KK==mL@b~}%&U*m zx@BJ1Sga_UW%(Q~wY0ydQ}NTIZ6Cr>SmqWKDB5W$tWaKhXctj-ZfY6{ar^5IyF;m{ z{yR4jfhMzL(~*)^U53dfBU=+ATRfTjqNZ*6P{pBQOL#1i*7GmM$)+%r-n^p@BPGn) zzM~*??>IC4O`3WOW1d{K;~xm8R4Glhs+;O;8z`2WfCYE&tSKAInnIkXVavu!T}U%q zu;AoP^q6COwY@zWRQj4Hjk&24MSDY+IJME8CH2O%L3*e)2PB7gcGu;Iwu8a^LS#`` z7%Go+x3e_W8^zZ>MPbK0*Fq+f<@~s0%WSH?V6y5+ySXy46rO2=T%+T(E!ApZ(} zVVprql0nVKwpfxlT4(Or&81E^dzq(&InvYWMWAevYndiEGy;!uBS*uNobP8GC1%$b z%NNpQ8VBAm_dx9@AwKdBWmQ%a=@)C~D8^^h{^KpVdprk99U%z;yI_HXWrj3dMVA;? z8%pw$H6?(=@YHhS}Tvf0LYWqLx)MBifs!1sU40W--h5dymV~i{47SZ!W404OuxM={A(LcWMW08+tIJZYs{OZAB zUQ=pfP`HPQTXPKV38!s@D@Ob)=mZI58BC!4R`65DBU!RPg~Mh#Cf(KB9J|o zfDw!~zQIRZlcbgJT=f71iKW@^_Ym2L2oW=sO&P4BRLA;9hsyo!g!%wYAfg~a771&HcR zgS)K2Aq=txy7Te>+){`U=l>b1a;vVuPYSBU>I^W|*f7Ue-d?*eX!pU$-Vu&lv1>!` z{V3jH!d0vUde13NXQo!1w2X47Ch`thAMt9|Y1n;)o$GWh(Qxcu54LQrR9O-37<^mx z{s-Uh%EQ(^4UpqJ0XdHQ-{rXf+6(+|o*VjES6lBi#|%j_&^y?08(mOTz-(zbm(<{! z!2H7nDNR0x^@?xNIPls2HC`LXxD#7vu{ToK`HPdH>IlxrW3N zL}_xSt2Ka>)NH+#p1S?@a%%jo{#mgn5ujw{uUm_E4dp@?fuHnhOB3-_i#>#26)aY- z=LxlB?D!3DrymF=mz)o=hV*x)Zb=b(nWnZ%L|U1-xugpE3QN$4U)7?N8q@NjofhPo z_g5 zn#B_A9k-{;^m{}@LOR(OffD0cn8Ap;r6e0=STDUjzEn5||AcGpu`iRnFZj#v;EE&@Rf95qb)eC`s~SVCb1+Rb)a6)Z+UuhYIet(UG0n(;NKrW)5|h+`-%hkIN^ z%VgPTtnK{tVw#cobS=Z^&t|AQb>uBf#l4G8r(~g3GncEQ!mqB$xTg;@#+w!$`KhDL zWEGah4CCiBP*YFNS>Pj_#vz+4zTwI?Wk$#RB&{{O>yJWQEe)ubH?%H63I&4t)&U#F zRWEJ9X#>(wpfTg0eP7f>WZQU-z@eT3$l&=4k<@T!YPsrmLP!7>by zw!;+NhQ|D`qFl4}j`O1*AInsMN-8;k)r=OD_uO|WoHoG{mc+M*oWuE9D;#g6;nPxX z2t1znXnY@An0@ljTG5l)%YJh41c^AEqq;^3HOB+=(Rf-lK8R{Unfv{M7vGu>W}~@o zf;(&r{gr0$FS=A60x32YAjx~|-be={H#ko&1Kb|-2OJ_}d{KE^xrum>Sf6cvzlK{d zYHc#RoqD8TyJGc?jtzFsCIn7J1vV=sC8; zox#62>%(o_+|YneQ?){V#%*o)o#Lt`ow894Najy2aTGiB<5}-8M|1V9GVpTsGMPCfq+GI( zp6`#*xk}aQ{vOV-Gp!JVUEx06D(broz%dE_SOdNgp3^#mqH5~*I)_{`o~BiZSKIIF z{(E0HF72|u3z%`(0W*%kzsh<4!ywW(v^M(3%BE0pQ|2#u_@)NxN*Xa=zmgV8GmQYy z-k<8N@Fcy8_!RKBR_!o`zuVU@tU_PGc!Qg@f9J)CZC=fWBJ}vblDMo+kPEY2?kzB}(9_S;Vq>w-h$c+G_fY%$;mCnnb~FrN&kk)H>-fU#b`a zcbPOOl^x>7^m^+mftBUVN+B!jyKYgcOu^v1NUmlej*1;$##ACQ2dux6Oj028HiG($ zB)m=UoQ<`}r(>Q=7WM)c^b&MGUWfxV5^Cgd)H?aWVWyn^x(qsPc_ruk3Duxf|JPxR zC&Niq{o+by@8dgUZusTw#~2s7SaaM&2XS0ff-sfFJJbT>{WByxsA72|FT~-J zh4F>)<`7ONIayjaLb9k>ZJvU?bW_iu(vQZ|nE>{Z-v`9U@{@JS*j8^7p08sDO1{;< zJsi_b^&FVDXG02F%WwBB)C-SZ(k`FXLrqyTqxC`HP!6W;oC$|fYA1$f!wbSRv0WqP zbk;Sy{U&}oM;}#cm8Xg1oV0Jyj#He9g*O(T;+EELa1lmQxM}7=5Cqvb{2+<~;o;kS zAPk)GFUXN~%U*ahy!a+h3>RmJgmVB4R=*v~9#9txgOjtrPSA(73J{AP1(572H<2MC z;#v9ch-qU`tMN!ih%eD()m}}zh42cmf7H;$$ERW9cjxd3xkuP=*6U~Ic*X3J{jLW| zB5HDlOezx<>{sHG=&!3nT1g4uDSN;aUuKXf=W|ES5w6F}jq(&(cE=#@;XK?81dBOg z5JP6OiGPQ(BEW%PF8m=RRQ6HCOa&Vm3SxTZ!T7LPNIi7m_4bd`UT>`6@KV64^BN!$ z@UJck#Qz@!&s5jJ@NcJ&g(?~57TOr?RI)G(F}juP=7bB=bJjwk7qcJJLLeFQ2)8@p+4>bTc9K@#QVt#n?Y`7+-sK zePnt*X1u>l z&~7P>emu&IGwAFDu}OMM@w%kc&+JJ4%1vFsd}t)KOrf@QtJBMqK3y74u5_{`Z_SLs zy}2NnM97-?roPk4j-EhDBLaa-G+*ZH^)NNP?Z}43B0^2bM1^^n@PdaIMl-EKDTao7aGbvxDS#e1PXoWJ%klV3>rJV!;61-)gMZ;?MN|xm^+%=}C zvdy-Vq_TZ*|JC_F2r!GnR|tzY6RiC`P+uBgu=6%S#14!0xY>HDGF!h@jaeVKR2TyH z?acD7_*y4Vj4o7auH0Zbz8{xBLf?-T`a+6M59@SJfBBDd z=x*trK?PDPs5!sys1AlzXiy{8vX{ovFS5Iz7jLoR31XD%nZLFWT#ZD%YO+&1#mt-& zHOP}|*22usUSb+RdS3ZbL=`?mMaWkq;0!ik8;Yn%tp(abOmz3Bg>|B?4If*nye;{Bp%q3iLEWeS(PgXA!?T zIZ6rky4_iK>Srm$$QhPLx|J6vny8>v+Fcu>V*T^}N>B=d7u00IzS+nPE?13gvRH!# zqXx$h;n&7t1T7r(7bPyZaEhnO&WBKo zs{8kv)!^Cqf)-+)2|o6<1k(#bo>HtKjut~emufL1OgVEG3Dm>gE9v3p9K+Ze&xV?> zgi>^bpVJz_NyE)Wz*ad-@WdmTFHJ2hy_y}<9|&Mo3A|-``gnTaH24Zzc=}p?-^mpg z(#g4Jp*Jq0XX(p0wAVOhwI?P$?vrwvGN<2HN)bRLW^0YZZ(R+%!V&HOe? z7EYWjmZU}0fvh zlw_lSYXp_m*XTbQsY>a*qisMPKm-hr!vDUJa`>wb{MQs&sr!VN+v2J#qf1REE^I%fn9ZTslt+yjnEX@~S}IQ}qwn51Phpj?^GA zuvo)-<*6i>}TBC-(Eyc_g1EFz=z}LaS(Au`nHsPDR&C4Ab`y`yx(_9#XlT zAG)NhJ1;*gF;2?EX%j~^FS^OmKvRWyc!7YdS&E)Z^iN(WHXDV=y|`!fq_qXwgq)w! z{kZP~HAs0jUD%7zK92ENzY)>9Ut{%>=2)KBTa2Hp%%q&8>5*$s>5&7ctEW({2OYN* zK8XFk{dIryc6M^FCDoy?UA(dhC4c>cXg|{BYgNI9TF$tLsze79c39b_=4gcFSV-}d zKj^U45CQoRb3zz2*lb`ZbF?lNi>Wh%iL1dRMc5Y@6mEH>g1@&OHV{Hjc^VEqNR4t4 zDigxSY#_^63(6PfeBr_DFrB(x^%4030-btz3pYnc1d5ZDoIXloN_d7^Fbc&lW|50!^bP0-AD?nb&WbHPTW9^w+91~?I%HF$?Pxn*4vgsc9Ck} znyanZIU53__KhVi?`7Sp42=(MtQha2CVAIWA+SL!VakULL5qR4k+ssJPJyjacGyxZ zX(OHo%XVA{ZvwG*v>EZs(lVu{98m|Jz6l;ynCuOcLxV)FP?3WF)Y;EtYjuwB0Oov| zU?r(0^rIziP2QXLk_gc`Q6ZNsfNE>Cif=dmXeT>}jQ@<(fhPpl6z}p&a|`SoO)j8A zAlnpdV`@!P|A3^Ko}tIF*5p6ofa@Dw#G8GGk)EeoX(BdZZ2YdI3L_rgjsfJz7*^ik zh{Mz3s~tf=GhM)wp~oGwAsP|TD8oz2gJPU{7mov>uc2xg8KAWN#`JElEhppRoh-X2 zqG1;(L*b22m~^6G#UdfP=KwKc)7f8BJTpdhT9(V2(eFB!#pXmSw!;qR8S+VLNh~c+ zG*Cd&7;%Ia@(~fkygFHVW!TWcXKpCT314R0v%?wwBV}SC!-227&KxhX&XWp(D*3d^ z#@Y|GccNK(xVifG@V(-lvrrNO-Z?3fmdM*&3ik%d4=M}MC#c8g_bp7X?gJ83aEvz@ zafJxk8T)6xIsS`#xpQ4kA5jmxQ@zxY$@``6?z*wfxC%#*)}DeFU5Ay|stntbiq*Av zoGB-gEfc?f5QG7FNK|1>9)OKzCU2nFsSvXfBV?5v>3;98Se0N2!&Yk0DwohIk%)YD zH4#;yy6yDR8jQrE6nVkBm&4iS+)`GR{WjY*?ou@jNro`}qQqrt$o6&0TMG^o^?e)(ez|(} zV6&t9BDsQzLzgHSPxs(!2wdzf^C(26e*VoFFo_og?c9h1Y#nK(QCNy3+Mz82=4<_Y zs~P2m_z#I*4Qi(+M`gXA$n?wgiaVRBT~!mgw7u)9J!**z5crO@Qo_((^uZ`(s?zr2 zduhXibdr07^ukGJe$n-5R+}@IxTN~O@PkgWG8a#`-k`I7Dl;msH-zDMqP&c{KhhX> z!&x6w4ZDPV2n{(q7y?K?vFdLajF9Q;egX);8kNkVsH-4OAXuyj#8odf8X6dSrGnS( zOi<=XNh+SyU{d@^Sk9}i(-j;2a$v^}4_J-hnj|JFD7rDaBIZro zUFvL5B<@zr>5i2QAza1#Nh=~G%;2^IHWKWA?h55N{)9o|;V?@km0d0iTe1R{`pUMk z0gb#xlC2xM3TzgWX@^36MN-O=ExD2_MtzoJp&q3sWH9qG5hjrSZ+a&~Z-{M4G4C*@ zhC-FM^4d%mcv%fS`wt|Md`L|uGPD^TdgZGDlZJ!q%E&cN;nPnH4S6&{G-5+DQI&Nu zKXLf7&ZoIvYLKb(x+=6mFc+Fv zwWrQ<%nNc=uyEX%yKXGrN`1n;8E ziZ{@@zW}yMvBs;NG+vk{aet&pf#KUpA2p!4k8r`eK?6O1@!K3gyEalJpgoI~-EAQk zpDHW~jyXzM6z{}rJn3Pb>KvSvyNV%CkC*+$25ZWWnZyFFBuTau8UP#$7Y0X1Y z@3UA-6*KWVt9#yG$z4@GFKmFr6tJ}4j9iQnbYXNEGluR|#P3i^Rb_{iF zXhF*DNJUqb2|KwM-gP8U%~agrM4>09RNEF7276(5tHf69$`dq9@s` zH)gQBr-ziDLA7J%*GTlQA5FKlZBsU#g8U8+?-hm`V0aN*t0LkbffB>+Mwv5_3d@ln zL`0{mxhuRYn711IL5npfJ3s}$t*@sf>8xNl@HRjCMtsPtXIO!4A}d!;m49pX#heyY zJj=};nDlIJSb=JUe7pRDfHkg)hAF#%AIZ~li zy$ps4U$y(yD=LlQ|32)P;?R-eO|{1MoSIj!(njh-y}^+p zn+H@7vp?v%{?b&Nvkd(XSI=~x$#MKPm0Ev)Ki!P?4YdZdml_$;nGoVP?RUs~o(A=p z+K_g{D{<90o9x`~DuDO3vtoHw>QH^8D2zosL6a4xV>;I3k7XPd>aS172P;l;rho>r zj-i?6#_4UF!CDqA0{rnAg&9h)W*kXFvFFOx)IAYag^j7BQ%&o{f5`lvV=*q#DbZMbF)>_$Unk`gV}^ZOOq;PF$EZB3dQR3m4tMs0Rznw zjD{^%_*=}V~whA52c#qJD7jI;_# zwnau5`5iKMkHH6HD@V8n*Yd_L;9v$X*w7_3A_+1I22&7??+L{99@TUIU{*nFmW2@yi5%S8$IxdM>AD6Zae)wv92mUdZ0(2;w$iE>#x7+a@|Y z<}lPE(Sg@tGzhEM7G?RHGs~V)!p$maT9XUY`guc}uXyxR;4oG3Pr{6su&QrA(g(Dv zJ||HHTE)rtNv&QW4oP!sq*)+~O%sL2h&1yvLoiVTE)@rp1cG?V0^m|@peg%`OqrE2 zHk^)A|A7QN6sk5!1LB4WfCl_4Hi3-nufN^OWGVn$;rWnx;#XEBp&EeJ>Y8Q>0?`%6 z1d)V=2@=Edki|j<^7ns~5)DUnC6bb!OG#i9>uA5zs#g?BA1O)C?3ooYBE7D;>D`Yr z&Q3hQF=s0womYX8t3KrLL8f*5hRfe+MIrq~xA+q(ci?)Vfm>srt1X6x3o)Pkjwz+L z5auXWf2GAI&w=8zaI(ftWQ%x-dCEoLNk#;OVZc<2@4NU6wu2y%*nUuslzVE2+CHoiSLk!gKA$Z=R{k-3UZaePT?zyFFA*nON{ffaUrH)wvRtvrlsn~_e( z^Xnmzph=^0QAcH*3nm?9-fXm^KaogDdBQ1OV&tr?j6J~cXVN(;+lAn~S-G;W?h-v0 zFans`m<$9#!X$8_ZdD$J*`g(zQu$Omr|=$2rJ>Dmb920Z#0DMv%Y*0Ch0zohPs7R&%r=NYnD$F#UrR@o3n7(?G=BE2k zZVfl|C;Q@Htu)jIbQpMNH-;cbQ^m9klMw!eh^TXy{V4Gu$kZ;-P^l&7_@ptoN2T=z z*^t{jW>iLH#RonK_jioQpd!wC+6bdDmaqM#E*AkrU!h3{8ez|T*E(95@WdxGd4S3& z)N+iG3v1z-LouyPZ%q1cm^o`~?~1ua6a)bfIX60jAa)bdwgUoU+xdK%F0omT355%& z$|Td^CnPVQ%(%k)0_TC~quQNi+Brcag^BVNf^);cNc(`P5y&?Z$TbjdU!UR@8SS!m zNVXD&kcr>K`)uk%5`22u%G!?P&TGTx@+)_>bDI`Ehpx>w>35QXtx`XogYC4=${#ic z)%iTBa<;IXYUUrmnd=5L!tV^*RMQQlZDWXiiahUg1Z4jdt7K{k?Cc?cN&@m&Zd55$O3q* z<^_V7kr`!%STT~d}=*JvQ?WG-^7mn?;8!Y^X;d19^O9dn?kiYg=^{%@fbF-Ax;KBH7|HD^ZqSr)lO% z1Uw2mMvv!Z`&H+41d&`tR_y8N5e1dY()~mR_Z3^VbWx%=D8DGDFe$c5)SFy88(YoV zSX$MON5mExO4I=6-@7?WE0C5@$ay7*BNw0>W*0s(!aWqy3uc3iv+|Nz%w6rISOgY_X)y`-*qjZnxZA71%bjOinZ<;#}fT-WrO9jZI-E5T?=NCGUF^0u2d~0j|N{6vXy)F z#I(BwVbk#?K2MiY*6yhTh7)ABKr*i`Dse4g5n+MEb?9g*?l|Uq{2a^^9__aNizD@$ z)Ao9mpzy&u+LM-!KWQket-T4cZeQp#hLUvoJjLWr`SkeNguWC(RaS;oZ3J?_7MJnr=u^}6CywNl+Yaw zs8criSP_b%T-f$Qd8Tam?GUQkNc#vPvnz;iQux(>HJy1i5ebU5ckelX3e9-nE|s1` zbAX%wrLNnKoh~;wcB^Ak5u;pWv@g2%vdu6PoDCn%(@`9v^Yx!)PoJ!Bec`PJ(y8 zZY6!^@a*)e^Y>OxJ*4;sfO} zC<)y+u@QjZsm=`KL1nwQ&-S1-59y1q5 zZc)d@w9U57vCY8*P^wtI{$|y8!H+nIEuR7a(}qEZ&oQJ7>1pWU$+wfH;_iUg?Xzj7 zAVY$`d)8-R1_>0ZiIVh3#ZqN44QqVNdc-g|Hmj}k zY^>(g{xfHzMMW!FW6q(V-HcaTn@rjCh+gqfB%fKZ%VE{&(nbVdjhq%Tqr?q0Gwvb0 zf}s(iYSowTH2Z`uy$Z$6>-Q3;2mb7h*THgn`$=Mc|5eyX84a%P!PBqY^^`s6vxmG^ z<(0%@m+!X%3xcMdZp3W+Q*)p}j<#DWc88@<+{WR%{I4G0M4Bu(YLl;ekLPhXFI*ep zEv73(+19-Bu}GY&u2?)JX;#`Ub7j(t9F^!^Z7R?N(NSC64TfEZxr8B*zcfH6xx|31 zZla|Le3=>FqwvFVf1!L`g50s^YaDYAn*0Pq=bBnXcRm?@2DyzTicZ>gK+YT*EpdvW zLt!eSI^sC9Fw+AMwUmjI6OT&wS*N!FFJ?ctwCpoQ^q*`H6(P!F$cRk;rFnX`aUg3D z;Y=Tg=OAfWsYp1nyHtg)Fg>-)eNXgem+#&RJ)srBj$sil>Frup=bO|%X>cj6 zCZvyUTEEmc-U%@H9;KhA_M12Rn8D}RM;rwl2I#La;>nO1|(bF{Srp53KP;H!GD|^J@?VY-LnPj5kV%&p``_ z6O8l8Aca!mLoB@ z%Iaq4VwztcA!uMMqHM@C9%B~XM~I+bH4fIl@pC?FS#fs3!C%L!jmd8co6f%bE>-_V z(9l^toq6aHR9FvOE&3;k46{aa)w54_ucWA)R73y@Hl<|b8cg``bA1z-MNuWl6P%0V z^9(jKPNpH6fgB=>7QRO2`D<$3(DCIHzn5twO(Oh=Ig3_8l7V^1TlzJ*p&@+)TbNoE z#aI|=c~Qak7Ghyp;3WN?kq{M2Kj6L!helj3(a)bf5(}n&I1Pb{!;EGX9}ND--gjEY zf#?aw&Oq<`k(f_7LJTlCqT6bWiS)LLq)UcBLwmwfvw}E2;F}P0oPO|bCk)qx%bWhZ zW)bT7A32@Tzbfzq(Mdl*)RuNg@aQw1gJy77&U}o~wyNE4DoLGYYXxcXWaicceS1JI zC+@Zj4C|L-tzo-WakLA0dEzW6J+FL&kQ{Px4FK!0bAkrEi7G& zfMr#T9>T}~wXj^cGOrkPp86xaku@DJ!gjt>_QQ((7FY9*sEykNcIpX?_gbTQU8X&{ zkaVX88heOjK;5UGw&pNAe)_BfIO|j6jfHq5Wx%jFhzmp?2*fjcSLcs<;(_zV)%gxw zI{6RI9eo;9=sK@g5Kl)M(5ge9whjlDpn`{t-4KK)Yd$?iAbR12He#*G>BY| zR{F1z$0;E)y5}IzbNk7I_n4#D`s@AU7P^Prh&`h9b_P1g_D6Jw&2BB47x(Rqm7m~P zWCNO2M00Pj_zwl_EIXGW-LzZOkHugBuCSvKCs%4!~Qf4^x-AL(yJ=kN1_6nCxa%oNR&{`oTE-fWB zE3;h?GCajBtuz%+dY}jrQb49fVt5TIU@(|+bXQ3P)skyG*u(fBLbp$jwo{#5@xBo` zY#F4%bgZ}4ijCh4sX|Z*Yh_dS7MR{C_+@~UJ4pYCCcHV7kMS?! zd|Gg_7qKpGB*ZW08mFeI!9YTi%5)8HI*e}Yw=+qhqy%qFqTlj1eWucPV+4T%#6+Ep zEWRYX$ZC92&(n8URupU~42L#QV~g=@13isVM90G=lCwTUwJ(U)h7mLk&0!u`(ZBkW zPNmFkMehl@1VIQR56y~PYjRj)D5gzl8oerWsak(OYhFp5Hccmh2~leZ;zQuwCI<)S z;YyIKYQ~zB?+XXKYEHspwsn~MDXtQnzs_!lQ+#Qc7-t6Q4fcz7#jK|m{J57_v%Hq4 z;UaD<5bME;Oc0;HnD|n3MwTr5FbtmL8yF^WXG73w?#*T62AjAzPlX}v%vsK&q^r9A zt@Tb<%8}@(d;+z!3E8BpMP2bL%VeGiu2j}=DHIon~_1)WgN&!pjILe9mX zIs2T&GJ8P{1G0OahD%STQMjD9Yn{X4n{uo(2s zZq_%TCx2od6MlGr#SC(f>bKNybugD;%Z73kcAGIQe_l42fzyp4WKGL-!^+f<6Dh4< z8(&%4->*Kb!T7ZoUc#tDNsYyhm^(8Nsqz|z6ylm{`S}50aWE5pq^ zjk6PMrX82S;R7;R0v@UCa~7+dcSufPbcKZ3=rl?8Efdmc!!<6E-4-T0bFiQ-Iz#L8 z!6yZ07Z&aK^O|!Gu?{R%<{XAJiOturFOe)miheQ6Wo-k-2IeL1vRvf^RB^j^x^hX& zd8Fl}%Xr;ME`w#hxzmv$R*JApWoAYV1NlqCczq}lOcB}UMisUWV8V`NX_Vb z#zufKX1{~cV2Yo5)1o-m&4Tp4h_>9&-J-MB1%b#R7y2d#l)&wYAVRtAVf}<|ho6f@ zq;j@vd`onMEyU^}#v_)Q>Lw2MMEruN1H5VBbT#m47}rBGREzmCW;9satvQZ}UaXxU zE*KIF#5g!F`O<-y9nHt(SaWFWjNSHZvaL6UOK>RDBt zC$Us)VQUJ#+N*sz*BzHpZQZ;05i=|N%eh)`Mm?Ebo00Gk#Joi6!Pke~JO$d-o*BGB zy7~jJdn^aecDOWM#!<=A=exH{iTKNiuh<g}3H?}!q|wHk^Fll`h(v1a z7-8#i*0S@Iv#gcZ=jSU<5AxL;{c0!{5WUn3J)omu1BTd1$}U*fy4jC{bM{QRCD`}x znJKrIMx_$2I;|_?)=JU;9S)PLrZfvH#}KAhIK{P9NZ9uV*ZoNka$p!)Jr-wT6J#K> zIA&T)Dq+q|Q@ThAI;&o4Gn!-Z>ab=zMgM$nr-l&OCK4M@7L7av9VnHw_m=2ZSeJv= z!1+_Lzg`tfcwn7!g{iy>Q9xEk`B}bGeNUaAT1jj^S%G9viulOHn(Cv`KMyP&ht>Q| zCbxq?q8c}x#l4#X*~spEFDRudM1td^pg|_lpw9BaV18c2*l)5}B?e`6gt1^PuSRSD z-Mnrp=EHbpyp0f}tf)9yJvxdqg-6NngSY6*pT;aN-g?GDV;Cj0F^m75gP}mZ&UJ^z z35@N3BCp84WC9jklua$N+r)gMXdTLiH@tZ``d9hcfdLo3y{0@%tOINn7Kb5AW-~1y z@;C+*1@NnvSVDg$Ovd8!9+k)&;rF-tr%4qXDk;NM@wm|3rm21J4?#kxTyi8TD-i)i z-cc~#fa``nybKeAQB=vx7}#v^Cw|oqrQrKO#=N6zf>O`~g^3|Ld(<2eQYss>8ij`7 zdDLKdNo=mYSh{RL`)=@vb|^x$%} zY7%*ue{B48+Eo+3$k9)i!p+EaX5;w2-yj*w%}+eFXq< z1+0&dsB1NVK@6vhc?DhPA9{Ub75t4+rd-nlhPBn=6YfJ2sqPucvP#R*6f%Er7~`Um0iXm@ar;JF4EZ-`|eZKwZ7hiQ2H(vh8+OW_;)Dg{{?4U{zbL{z!^UQ#Rv%H2I;3dJgW$a2xad#5vj@{WyBA*%_x9Z zPuwO=XqW%AuHHMrUvNgZl$6Jh?Eir?1jLckE~Yl!kF(sTQm3ka>U0CQ0M$c_BioDV za{Gs3|7_77|IO%6;oHUc(&Uhoh_{mUW?{>FBlT%BSks9rwS(DBEy$;J`eFmM3MDoxg7v4#et41=%@fMrNSNTG%W zpRpZvf~~uaH^v>(HXj49U@l`Wr^Hm6X?CaWE z@$GUKn!tHgYaERa&%mX2P?z`M57b6Bx5RNABZZf(#FRK+Bx*&Nmq1Hdnsn6}9a2DX znIfGBc6k04VKHi_hqmc2Tg2qJ5^qMZlBE{;Ir4}loltMDRDG&()>UcxbbV_g(d>{9 zKHSC-Lg0Iv?>f0&pWVfG+x;@%*kV*G_v1tG|4__LHC-% zHB~KlHS=>HX+X3pVZxbnOlDVTfvYFjE_EI!T+@+-r7Lm()!$$tZl81q6-H{GIR9#i zG-K~~jFh_(F(z{u69eQR-DYO`b7;iv50N|nq6HB{+CFTv%P{5Ewc8hris z7g)rxi={IXcHq-?NQG^QSg?P0tP*QrS2t>_P$Gg8(`Ll9BqHtgkp$xt$nlM#gkpJr zJN|@5DO2y#;)+TyATenQCBYPGA(d4HxI|67&jDj4pAL1&^U_s=d}P$=x7uP zQ-LxXRIRX1glQ+2G&GYzrOu?4fti4lkWqZFa+)>B2 zZQDu5wr$%^I+}6Pv2EM7Z9D1MPA4a8?|1Kg-nGxgx2nEe%v8;bF{?(6@%(>yV5TZ< zrb%#d^;~@|&z(-@#PZR-zI2AVS$nSOSz5U}l6hu*oONcDiNpH3X|k~|v-99hfCWt>e5nK5S_G?Om#HSmQzb=HeEn<>nj<2%A$3RNu=SbULt-@mg=h}Hg#QO}R2 z!Vv*t&u<9@LbqiMC#7GZ*b)%be>4#uINsB*0{tGNgTNm<$@;x{b;mlH4v)`iG7y8G zFNkJ&ZM$si0VG_x?>MkPYw-=Z{3C5^TZ!c@k9!SY`pK7miD81Azpon{*lae6!UWz7 z=w7gw{dYfPw4CA{=>_Ov`e+Ek=;l=}udqIOYx(;(T1=eP7m!|VZAIVUHX&xP>RT@~ zLSN>LD8fjZ+-gNX*y3mW1J){G>|ddTvL2_LlV2uIc#1jX(j?2JPQoWbe)EM$I#BYD zaqP~8m6?xmd$+nhYPMG_9%__2 zXYz60Yt!J*Nv-WGL+FMqc0gMcu0N-B+7~p}kG;}~T}|V!5DP_9VP#4E1eOgg*~>xe zEv2I<`3(tBmBh#d%>;$I32}NroS*oAVr{4vb*T=@O@Ewh+o~9S(|PxmY?w}wkVry` zn{mMWUL~L0TXgIe_juf5^ozLJcU2Ws17=nefiMu|3A96o>7jMP(vC z!2f`V=0lQU*0WH{195Ref$&jc`r8OJa%FL#tu8=v1OJ1uf}dB^QBgKi>0E) zdT!CEy)Pq&E~d-N{qaaH6yZC%x9lR*=)o_7U!Nf2)H=bM9$gM+ z`u>|ns3j*EX0b{mBiC;~wRNks^jy9P&g&=5{H+XtJnVZ33qqRpZ$PiZ9apTyc32_8+%Yr8ZnvvtH$om?T``hDa=7JL+NU zd~l=7$>O?JC3oQ1lGoYy`;BjIjaK_AHv&`klMTwZt%DBJ3zO2lFMB6XgV01!u>l(O zEWWbnSEV*0GH=4bLQhP|VVbSpqYJRLwPF!l?u+`g#IK#j{So3QNGD>n(y=t#w%?}(cO&(y-m*f2hL>);i}P^shg4z4knP-22eY zctklK_(5@AyC%a|7Bl=6fdE|0${KT|{0efgkP8pdNt}EzV_s~mpE88lHbF6qsK{Sd zJRvyVVLA6hU#B=HbGIPLpji2DLi5!)L@jk_=Lez}n(9 zQd|M418OiwUpeKj&{0C$L0ov#K1NtBQ|w1OL5L5~Yw4IF-|gSX=~o2XKUcrr*dd^Q zNKXIn_g2`%$j%>E^Lt-?gSpq=-K*qF6OcRi!(0r=Wu-%&irV7i=4|?7OZy{92IrLlSQd-%zZL(Ni*MkQg>? z+}d-r(r)&Ch=4;YX%ueHMILtQt|?VUCQhw<+|3$Z{{4eM$ z)X|g_2!f(e@AyF}hZk${UYiJt$1-n1QNF%u+Ag)Aw*3dOE8ToAQyBlR*>nAP zT|)z;s?SR17wCC!XV^_myuUv@VE=@qkxDTiGRA;OCe?<_hg9n~?`=eQsA}H%UeqUU zwB~9|vXNjf)dwTwrGWvZwj89O>U^;~#{;5eYMwdYSU1Y*6jh!CK{E-*<6Hl{&nl$e zY8NUaa#W;`p)ngJ7@pkHL91A&OQVR;SVmY};IOHZBCW*?^{#K^rb99*8dZnv z%MMG-Xc>bF*BrS#>$;toX z9(j>lUWXoZ9Clae<*B@6epYkIvA%DBWsT&na&X0Gt*J zmK*0j1~9}fXj|#FP?F5^D0qhW$B#3*70-|>!VqHnKdG>n#SC&bSs<34E_4T*G4S(^Bb278cXVthY5kEQtuq>xuxD%tjb z4L+Lg!%P9oUM0k<=_Oue97lL?W*6fvhK|3D97d6C3t_zknBwyh-!JXMaZzrR?nHWK zD3CB{4`M!W*yzpe>Yr*W z{pF31$QQY;=Z{^{3)|MhhyFrD$N9hfYdhNG)3ERUI%rS`oaS5TxUpdS}4P zC+73Zk@LqJ_;s{EG|w<{uJ#Qd2DeQHDGxmex$JOere!<_j$ZR?4rG29d$iI1S*r~8 z$D{&M7srC+Rl};fNsG;@n8R^}MASLHW#pNt@W1gl3_7i`$x$<~Fr5xsnhG_N6LxgG6W|tqo*` zh<5S2zhGdQ9hfXio58p5b9Fz0s$FTJtxCsVk2F6hlD9cAg$QyR=0Y;+&8D}^{NC2z z&L{p#BL@GeU>!6YmdYTz`(P@$e8@zNzYVb~gX?6_5!~!Dai$Joz!=GpR4@#S%iiw} zPKj%Qdj+V$8FJ_--dBa7=2CU>&e<1&H8=yDxktNI6R-#$vqy4^GTE)H9w?d$rECQO zjuH|ZVXF`32vTH~kZVnEqiNB;G>J6p7kQPR4-&eFu))-6fikBP9lQ&g6}OA7KCrm%{RTb@EarkaAe zK@6q(gQ>Pf$W@q}O!CjPiYUa* zBOPcCF^?|5@^j)0o*0ehQ31mPvO{mDjS6mwj?o&XQSS{F;fA%Z8&WRz)2nXcxh&$? zwyN&!k7bQ^7Uq#pj3&7F79;#B$+)?o{ox}$OTV-MhfI09r?GIxa?(Y^RyT5s5+^kr zZ=OUMj*?ZBrnIXbxNk=AV|TE#nNzftRZxT%vK5rBi6=-CA`gRi+$K)_8Oxdb7+ z&^yp0#KMz96>3|h!1WERDmxF8PE$b`p0&0Pn=TJsUQs(ZUJ)Mz>{rglXs7j}UhQew zPpqAoaO*X}+{ ze`|P-KJb={z!#s7K}~CaW(!M(_(~6_hPpGCLCaUsXdqarE7&*jb?Dlw=UswB^X)TR z-|4NZ^UU+p2Vb-8O<&Lu6p>4ip%PhQJVDnOR#7pgl-X5zz1*Ae!4crUW|c1g!`e}T zMb#7D5rdA<*TU1ldr$xG1KYa+9L>2eoD==RIi3H1a8Aj@(Zaym!qecdY{!4Ie`!>) z`pe_om#sM%0R<6d0J^aW5Ftv{i4lud(ohTr`jA7p$k% zEh#3UrD?a%q4}0BneBv>6qKIHWlDC;`<8Xwv3#6yx6I$Y4PuWai|~dBp9h9+#fhyD z3(*%MMa2h8^mE)0LnRhvY&xK1FeUtkKrjVCNOJI4kh63T+CS%AaWIh}?K+X+y)nGu ziz!J7Ca@o8!SeRiP#?=dD@g~5_P7@Ri3RP&uuB4o~Bd-c}o_*0Qw3u zZ~uzg0BGJ?U@YokHM`1V*lAFN%AaO+I3j0=34bZ)l1ttS4{Z06J=UUqa4B&L}CCon-E)iyH zcQp)??4+;MIG;vz^RSMccIYFPN;77;oEmkYf~ zC4O?F=FCiCzOv#6HvCBpv~)_yPHtv>rg?(L{f1hq; z**-z22+F&Z7Y}7Oh8kTBLEHs3 zH#*~Y2gntZrK)`TsitU6C>I?-aZ_YL%%`%;?enc?*~y%MbnhjD}ac zn2H=qm%PxUx3l^ZO~`7Ez~zRrCxt*?7-9f#%TG``r6nci=uSn;!z)fvo)}=XXCK_{ zeef{{%b+cCE7Ni7Wcd)imVG!Y$K*virZ>IWh;8$I!tXbsU0E~hMxI`he$yv6m~q

R@k_U-jeFUdtPF^T|_=}&+o)P`VyS!l%yT024lWVN%J`w~d zMOp-?T=r@$6ds;8oS#HFex6?A*4ouGKd29IyC-iVX2K{a35Lmb4R-@xRleiOJBW%X zgXxv=p&l!f1qq;DQTH3FANp29`{(TiVm!RVSIqfLz9RW4t6tL18`l{8WWhB27LWy! zK!oCV%=EbFnu_^rES>32vEsu~be9S?-|pL)UzfG5^Z@yzTb#+*T+-v36h!haP|+sY zGRSkNOI3w@jy9nk=Q9Rh>@DzCj`e{xKeb!r`Kx@2Wy#CmlqZ)Tj1kf9*t2jVeDGs*< z(4!t;>~Rhw>Mk8k7MU|?uiR>HKV-885%NT=FS%_rYnw%-cb)MXi91i%H=Tvj`Q+Wi zZINz@AGtj%RjqH7o~9?_8oZ_|Z#|T8+1b~VInP%v>l90r+sqTDTIeov?_mPOmwae2 zhVGJx*)$)*ufsbGkxiJc(l+QE`oykq4IAj*)80}H+J?)>v&1Jo2|0)}4Qkta80P!y zcCl#dmrT_+Sw)2Q2&R6mm|$FZl2*dG_uC)2Pz%$?bWDPKvrt4X?8B&H-^sy3`iubDMeUmTQyKMnKX@R zzIjSeuRFF$Yerv;`a!<@Ksmy!!q?zBYhqqv<*|KKGE~_GU+l5xO2sPCXsa5K|IL!D z)yX?~%{yLd`u&XO!H#wWZw~D<_47H|&6bb2y(h(4?)AKpBz0Hv*8Hbe5X6I_;}3KB z$$UcCY=Q)?Iv=;)&$lFuxF}^vX7L$xSw6y7JlTDm%449WpBR0@5A)rGL%yKvQdh(* zn5OgytHa_S2(yl_NZdc`l9S0}vl%tv#xrZ-A9@L86W&G|qUM)4dPX}1U)3UgV#0(X zljrFfL_NtK;T+0%I6Z#OPlM1fr;x&2<%im661V&?Pht?g!}T0T8pfJ3%xrNSa6w-# zDKwSup<%XtvO zx}iHH){JKRk#-fKAe*zj*H4SDza$-g}(pMJAJ){q@@IhzbM!q!aHz}n^i;imLo8I{f#TL{9SU;-!uoe-!%GRC_$KLRue90CUh z=#%H7;;Kk(#Paa}h~$J}$h-sjK73+K+l<$-3!!PxWqExiGI4%IROYqt&rd{4oa_gB) z!{eO#b5uTmOAGitWn0_OmA-A5Lc1a>a#*a*y`(Z(rAirGVR4!!rhb{H>DY3ZWK&$m zJq}Zwr%>CX=Hv`8WN&TlgXG^Y8?6j)b8{CY9EZ)y`^w-o@d&1ZY5!O|-uN~B6=JCq zmw5Y#cymsVk<_JCj&~{>hM#uekxkucdt5)K|thixcnl(5#5&KH zO+}4IW*T`S=zLl5QOy&Z+J+4wc`Z~5=%a@V(GM%n2BE2h)~rsCuyHSneP`6h-Eo9H zT)DGZi4W`7v;RoD)QDaWohE=t5ZJ)N*gO5t-)1cZA+2$DUy6ZJ^nXYiQF60zHZuP= zUGb#ax*GN{=4YiXH6#!lQ1i+_ZfQIOqy~l&7G0485IG43ccP5p2AjqJ7Ft9iQ6&UN zGnvC0S!Y|*{GM(cnayUAjMP*qynJ?C*I@?FQwGmH|ER^;hp8$Jgnj;G;5_)n1pD2j z+lx;!rq6SBcNH*4=pci%@gRBeUMaz?fx7}kzo5dPH3n6dDkJ)UHwGa}nLXZgiMwj# zbg8>;B)#%(x_d1Y{jSMPYtCLG)xy5k-klBM4z~fzzDn+1Bf{ua`0CTZ`P<%IAl1TN zh)T&&jIy@!jS(0(l;_qAQ@&@HzVW1z5C~L42&(dv*QYG(<>^P0-+4N7(Pyff zyh+B$8M3Hm{e3{d5_A9RyRqW9#R(;E>eST4HO8>CsGL@U+HY~Lb6zMxN~5`j3PWAB znae$MyS)Q_xoiaed$T&Qtm4ZRa%c+1JAJLeiRh{v#+>ZMa7-zI2xu9Jxf-UXd`VMOjzV=D`6!J94$}`9=qg zV9yA-3}q{lwJyk%FkS;3vJe#jB|w&X3#A~YKU)U9CZtB#$`0!DSW-jrbX zKhrZ3%#^hiXUmAn_UZ!8n#CX1&)d#~;qI}D3?3-mIk_G+*qaqht5{7Kw5~n}gv=sL z*T#;ZM;C_BXu~5q$5BT4i*~MyQR>llG{DrfdmYo;Q2jkmn7hNx2M#~`Wo7G?ePrd( zX~_hHoULS_;JOWt!joE{nysm?6%n9`#{{lbf<1qI|cGXU)p^0+Ybf31MF;qAyqo72JY?mt*+xV7+HjI2p@q zN?g@iv$;?hl&tmnq)8>c$sw$hVikVH%5&^Kc?KH-TRmq8#KA-AISu)f?XqsOP3bIJ zmq_64X8IiD=al(4AQ>^)bF3zrN1$K8TMhF~lf+##a}J95HG@>82FkmL1O^hpj|23t(rllQRbW?anrXK!Ox+2eY9NG>>?`OEFyZmG-e7ggC z7X;Ybx2nxRE(N{cY)e3-0#GJTD-qm;R%mpya|`TmatKqWuf!joIz%K0|)aE!z;rSFd6n&=C{ zk4f_25nZB+UqkD9K8d;nD+Dy0kQ9QwfLgMPdBY{PyVpLa~gkqa-RSFcDy=!^)BN9B|&!oUSdh z*TYgdD0GNy{L9=%QqSJj)4+X|VV)oGF)a ziboQeV!T;|Nz-#j$0Vw_P2WAe6^~TNWoN-fri4X34<*5=8bo>@|2gW zXLJl)DUKqV$x=LkNvnk^X>9xw!EV!phaTw<2$194DICeJuSZgQ`rCnGeg%q&@6`@v z+dr?5*rmGy+B?RiiZ*vB7|w3-Y{UP6wX1FSbsAb*##HN9gLkpl20F(VT;1+;LgOXP zifOmiH`J6~XbYm!8NpZ8Aa}{m)7S3P&ipKwUB8)$0yn{wuiQ6BAHRf5TOw65v$VK%z>f)_)}~CV}J)tRj7o&IaLZn`lXo%ylj7mecrvqrZ#( z$G*rE*SjOZ{ogdTJ2%o9$Y1@p3&uYTw))Rv;(u+V7u9XtlowHbr#cR%r0F1qk+4Hk z6bs{1VZspeJP1)C#igaqzbJjQkEV_ibQ2qp%x(xZOPcZ(%9S>aiA@xtbIXg)jV!`y zv+z3Oblne1-S_18=q+n=#~IwM#&H^P=~XHhAsJqed}demPxVi$W^#P*Pu$Bu8xh-I zsY|MGO#p3BW=2p48UPOzRt5$O3M)>`&J9K$hiViu2W5y7R@TflET>N$*7ktX;xk%S zQhzgRM%9pKMr=Q`VsAYo%YFsVUMt1u)yV3dqpK|3cBLq-Ziy(Y?!t8(;0m&WHpOFn zBr^RaAhG@l{vJ9s1Z?SiY!z&{CewjfiKSnS?a$$#dB4qfcz;VPy{(LfIe-xws3tz{ z*kSQnBqlMhO;e%MD$U^Yr13<9kWa9U&DJBH|L+o36Kq*VJ1FO8gbSG{*!z2hUMwpb zyOrSnR_~U3uz1;Cd*LsC35blOrRm+0$n;-SbqkMtmjdpKu!T*hc@8_fPJOYBq*!E`TCs_WPH z939DpMY2_@LGQubWW&OP(}?yFnIKfhWK&xHPK`= zTMxat)C^kY_naS}ez{})5jKH6T3x?hgCtQHy+4%hY-dx(Kfz5hO+`E1XT_Y^^#5_0*atlYcIcFWzq4+E)3HhL71P zH_OG=9hGIF-K&|CtnK;Y_tE(wnW$#ycnIiCX{sc;EULFQDJ;He6&q^_OBv?38uHm( z)_x@~)l{5XCmMbkPVa}fi@;SwS$A2?ev`{&V&cA28l-s(*d(7jiew28z)ELJ@3gI2 ztszfGZ*-az<+ID6VKIvUEB5HKc5P|ZH|DIto?#5Yw|K6NUS<%HDX&gdoL2*7+hlQX zNf|vK*Jv_2LdRUcxf!Z+aiDE<8q-XdeExCvd)Nb)zc(LP0-q7lT;pbP_D1Plx*rU; zdLQ-?n2T;NE}GpzW2Xs0NO67%{nC?^HZbWmvW0SzV9PM4fvq+GMa*0vNxFP@OHVYH$9R_F`xYv9&2@PzOn!^PjdM1^CZeTbYCa4VnxH^3>}Lq_Q}ph* zcpo_~cA*aezvnkEez+Id#BDJmL#Fs}s@PNN&Rp;t4RdqRZ>$-?H9+Y%oDdsezueeQ z4}1tW^S$+4gS@|Y-gOZyAs4&X9^i71rS>Aw}g=a^A>n|^uR6T!AH6Oe9vSl z#b0k-JI4!>O@n4_m&2qodzv5k);8u!+Mz>fr^fB(;)EwsQhNjxMV|D2s-k;g--*;M zf;#z)j)d=5l`#Cm;F0_vT|>OK9uIS86E?!5TCyMCECJdd(PUg{_c$_BY=0nG`*AGW zg?gtL*eg*}hPlvQ%ZAE479f-Uz;U+A$WOl7Rx&E%+b$d_(4VZ$CP=Z0mzmy6t82I3 zu#p4gGV z>E}GSA%b$pj1KUi7cxK|;uE9~bo5tjf8Gp0hB6h18pep*95@y5RskavFLlsFECvh2 z7!=ZmEw{JcUtVllo@d*!uqtL#6C0b4&4I(rBWb|;qt_BIfJCLpp3;^E2q6{f&jAqn z;sNpH5wVB%zwc|wL+#1>_8+*B9bKmm3@syAbpk|F1Jr5-W=pMB#JOBhWx|GL1P}V6 za?4xx-SAqlQ($^56wMC!i98S-S6mz z-CD{)F3~%ItVhg6`2j8^>+{3p>sSX_62!q!6&X$5s5`i-sf@Kh^YEAyfj%y?P_6rq%D8oI$$d&z!Pz?Wgz{YY_e;F>$yoS6qx0c&;{H*<5(Zv z>BWkrRLVkKef_EucTck!nCe*$bYK(z24y*RxaHPmOM5xiS8?tlv>{7^`%FN)@VR~r zZgW$KtFt_k_%E;LU&%wpV3RV^pM`1LH@T}MR}AG55CWgX~Q?duG|odRyj*`1QM!lsU=>DDro_WLLQ5G9x+}AyKd{soGv5gBd_OuJ;^@+ z?tIQ*Blfm}`H8QG>-R)PgB<|E9Vtup<=OM({XWHeys^pu>H7%&Q|g%pAc?aa|HaA~ zj>6!RB??cMFus-uSjcmyDYS`6myOv-e#>2JD!&`TI?&Njo!xSSL@S76Jf7BQ1A zClQLYENjCLH_>0izx)^l|EU3yplCe1MV1j;W^iJad6aayut*ypH(OR&+du^^-9;|l z`teGt3I1aIw%BcZk#1~RRmQ8SqQ&dmte9QSr;J~2qST0W=%oc8X5~vbWuFiw5k7|BKhn`^CjZ3cu-(1)f1k*i` zf1<@_S%=fl`|3f@eK|nmUdL%0pVurfFP=Rjc|WddHCj@mS*48+wp}~E8e|`v@no;4 zaurwXE9af@={VZ5(ZZl~rw^#4G1{VP9dLL$Rawo_NyKeTqm1^a> zW;<24xsjArZ=N;;S_VZH)aAzgr@SfPtT+t?@xtduU1p!A&LX4#1!HNhCFFsHjIl7s zes5^^?B3o6Wgq56{Fz$E9ja^4UhC?nUr5NtN8S0zd>dPwnO3-n3SJT5GsYDOZbR0VRCi` zua92xO5-v9Y7$~=k6DVpho*IWz#&+nYVHij(NWHGV7-8#)Quz{!pF;K zYm4J)D=|x`KNWB4iNeU~Ufy?@b;6~fB}BdU9`t7K0GY%$mx5+Dat`BtEL=bJWRt7_ z6_RwBRR|9Z(^fb@k%aU|Fi8nWWnMAskwuhJIdqvYW_um@={jDC^$q)glw2%~L87tY zEu|vi`?-PCSb~*!?qz?%1A_@;6ccap^V`n^e5Iv+k_J^n)N-Wn=G^%3UXHTzl*b zC$GgozbIbfrI)`OI-tFsg`9t_2C%;x7=eGX8u%Y9as0P&XrYSLU$MNtQ*s}G6kL$<} zty7?o$B0TR8eu!EHyxyUA`#M3oji-vVL}D0ni?v_V^fc+rzr}bhr4Pp)37hcn=3)5 zaxATnOS|Wq?2{6HMNH^uP@_7Aw-O$*%n36Aq$eZ>@JF-iHmiz?yO$1aZe}Wpt)yRKeuSGdat zYuv4OTqTli`WwoamBqV!;-34tjy_}P$^w+OC>%$NMDIn;)_2^4R65n`GK-c|F#{69 z%p>P^o?VYn+m8}LXZO7ny=0HlB1$sgE`CQTS6kY~C+w>TO|&fsw;fw+1?<<0jwU3w zm(_=XpK3854mh+B>H{5Q@dzY?W%OzsCnJ41nZiW?&#C88pKq^W3}Mqm=RTG6VIaZM zJKOxp&5m4-%A+5^Ha9r@2AV%L6~;d6)F%C>9bj-?;-gjFN5Kn><5Ov$6=-m64!(JM zZwfl&AKFhd%3Fma5ZWP|n|$O`;1Nx*`ZH@q&OW>Mv77Lk#r5Y7AEnUmVn6cMZ}TLR z2*SW1B#?&$Fp8G?C8Ef=4k>(+8>hKhWW+9O{S#kta%4omjZiAr z3SioOhgizJVlLK3e5V|fc`4WOcCiQY$gc8FJ}qc!FD2oVHQ=nu`IrtGE^|Y_si*f^ z_M+qcfc|~UreZFF*79{M2mMoW`v3JR{q0!(N-S|&7yiokZ5?sNX?Bs4%xQp1-s6y1 zOmd9CO=hz&M)`U+A*0 z7O&=$3_S?CKRE3{IJEPk8Rqgy$7=)XdKQ6<+6P0y-je9;?*;~Y~a9<12 z=dUM{6F;dV?`cc%YUJ|DyeR#6jOMvvGO=e3{BhQgtBT)~CO7MS7(f9KQ+!3*S;{4J z>+%9}yHdIpJ+*)*FvPc&t7I=J;xP6>ojMwTBFw-&QJcTUe`wd|VSf4FV@sHWcBorT%z z(eV#Pr|Oa)P2a7F>jj;%QlHd^MfGPM1|BElhP31aoZgz&LbE*fD0SH2>TtE8ZvHNE ze7a{FsIUclJ)T=OImpFJHvfLMvNL||eG6Lj>GbGM`82-abfEytGj1V_%aQ;;oCOHN?D~By%e7y zqj01$hd#18i176DE?AH81H+IznPXrkei&nm4#)5Su^DiKHB18r6j)wfP`yv2mikOV zcLQ>dH$`$x>8qS=W7It*vm}SzI>p(`DU&hVHvvD>6)_OgBMGXN(|8DBO_VgG)dC~D zP&h*0X?ArnwPief%u{NCvep7$%Dup+@{G4OAtz3DjZ*rsI`Vn%YI}~5N?y-z_`V)} z#W~djHK|G3Dawi+E8$sDVl;bhX!M?)z!?@4#>&)DKYm zI%DPjsYLz%;R=zdv@VORfTB~JIj8soA(v_gbudYaT$FTZ>3ct^A(pac`tNlEjwHf< znAB9Z*{f@2Zv-EL*?|GIZJ%qiNUI_tC5o^lGG?#ou8Ph_E?)jm?>}%mc(;E-iPJ@a zTS-jk-*Ymh4Eeq^x`=YEMGcl?57NWFja@_pS&%Ta+)c+)>(vtFxkxX1_`aX+oXqsU zG`CBXv#n{Wp(YY>o2$lsEY2x5?H?ak1g$j2uEP#Dm-SjK*I5dxp@i=@0hZvPXmzbw zuZ<>V={Ef)^QzcUowSFlhe?CteuEY3b9OEF*=Xf4W9@a6E>deQe_od8YM}~sMN!Ka z1;g%M!;5TQN&Vf~)Q~Y~xxbslp+qR<&!%-7c>=?KhJ7>{V0Z0%dNwM7%8ufM_%!>0 z{&|i}5xZ9^8;yrf#G7`Niu3A+&76UEJsWef0j?#JLPmjak+ij=nyyU?!pYAozAp#| zpq83u`yy@T>dF-b>vMUMzVD}9fpl_k>o{OlY$y=Sgqs zpd~+nKKMxIH{p)rzPyzrLlDA`^OhqB_O-{?-NN{8&$%PR-}{?E6oY%Zno<>%|AKjd zT(fGzO%G#oUvPzcDCCR@&ADRk`|7|sp&_{Qo`F=FNDqj)`hbXMU?q|EU$S&FVo=u?g4&=s#INRf8kt-FP(wj(w5i5`N#903+|ub>J0K@LOB^?a3&zk z9>(&QMTfTVri^AiO!m_~9Y6eXylFFO55d=**t7Z25T-#rssF<%vbg}cv?{wh{NaLf z9%bY=EGiVr^3!2%L!LZ08tgdmCbs8tqQL>Rf3ED6WMf;$*e}C_)8<&ulk&7ClaU^c z`i9Gw_9UKPk6Crr)w*UnlEVtFBY*&~a$MOU>A~{SmNwVLyOOT__p%KKa}BLhI@WNm zxy?r1^K)iDj|ZOXO1gULwZ+}CA8Rx=kT6wVY%j6KVToynOuJcdph+KLA7qXfGj||X z^-j)9m?xmVZZp7s&ISuh5S%U}*|Y}kD?Bn%C#c2uNW58B3EBC`p^RiAIOkcDmlpFL ztF{E@G1Vl#!LL3O->8q-J4Tupk#X-BoejrYIVALN@@P=)QS*U8{I-9m!8|_8LjNBA z>Hh{+HAAAdf8Y*W_?Z=Blg*0FUT(xH-dM57FugcI7;Jms5uFDPrs>%_L3wY$a2fH` zd*BOcF$8On@(MwVoNz<#22<-3v>iA+yK0zIr*q!HoBCdSuEwIJPf@ z%{{+S5}0ca!YW{BO-6c_e`y!n?#;HbH07u{cXKFHIPLF^jIr&MU*lKxmGe){6V%Kt ztWEx{h3QmXxBVK1=nTv9JQ`<^kwMy6M2yo$Un~SQ1(A`-&n4(?$WxNC>{>A4Wl+Xr zTJg~BM%nEEmF|JO_6boVipWFaQ9sB%L+WSVxSy}&tR(LA9-nu9A+8Un+56tKo*#%k z;u%y@oVqHZyzHJ37&VpXO>8&|pKNR!RkGYc9T&hs8@nH?iuzf(7Zzx-?JQMge8xv9 zN8X`RQ=HW#2;+8m#Ht5s8!*Y*tr33wPMuarnp)lI6{j1u+e z)~$_o#!j!-Xc>v3J*>9QQm>=~A%n6lixk6#d2!`_6tn0xZ!Np^LU!-X=htXm_?O|s z#=Ke@VfF2$;^*2h4(wAC;Q(KS6nk4D#X3H=|WV@XCY)WA=l`MNfB;2%|s2W~kP>b(M969|b$n+R-K-@SJbDYD?Nr-&*T3SSl3rpI2zC^O^)?yJ+*b z8=2x#S-B&#gUJH$-lo9lx)EE78_uudb?EtRulZ{Y>H1tIDsiD3;zr7nD-h}d!=Gut_l zKF~mZ(>_6O${z@lUG_hXyWD>&f1Cp?6ekR~&ur!#$rO1-K-kseB!1KBGKp!vkwtK$ z>Y)Ud+=~QD7{G+LZ>o!Zt&jC3o69cpg*J<3idG1{1HYV8V*F%Y5EFNjLiO!chbf3F zXu!ZT$RqZBU&fd7DtqHZv7USL8Cn$t()<3bp zeXEM!sY5&euXWdPv>SmMy%+3%FS))Bt#4lk*nj*{eSO+Fn$a8B8yK0J&>Pv=*x1=R zef_t#HZl53G2+BRZ{ck6A8KkRdXR7bbEUsbS&Xxk8G61hrSe4=`~Sk7{GTfc7&!hYB@`C1lcY0=6dD6&Tu-}} zn=Pr%dV?D9XS|)aNM2aiQw$T|vTLC=b99gHxyNPeG2ir4R{Pl%|F$1+4_8N=0g9^Q zH4S_@lX%XdJ}vyT$q2+#FpP)6vQv!!fff@@U@~OE!XBUhJ$U;lg!BST#Km*wcc&-w z{sHk^)3b$*;wr)+1%}CWfS7){X*+Ecm$DtROfxs``t3{_*?g=22f)<+NYS=Et7-AN zMao6@gyX#dE0`T}Li-?_YZGf-Ejam+D&3^wmz9!TNanSEc?iW8)c1MIT36wiQd7n9 z!V9+OUlFUsF8L-3m+cgU`Dn2M`Y4du+OF0se3x8T1DBycR4TvvmK_z~{moI^1h#Zg z+tNRU!plmo`{E7mKcki9Im`1PnRo$d^>k+|!-A>f0Y5d%I!^R-@IVvJnyyZ**AXT& zaaU?pYOP_0^fP`U5qR6CtVQcQJ-7}UjdJ44xQ;$WqbtF;ae_Q=}l zAgOVtJFGu^i8gA_V0FW-MWTe8q)xN zxC~bd=`pqg_kydP(&@L{oh?8`sFr;fC8YHP2esWP2}sJBq{#+)0my!-6!bczzJV#> z_mOxS{U6TWfjiT6%@(c-Dz2pT!J;w9= zgL___*PQx@>w!S4B~Y>E^=fD)ghm_!5+zj(bXY>Dh}0#~Bwux~9hj(pL*&^&#v5>c zfWRsAY?nuhg+Ij;!$F8U+xC>f`6fK4Dq!CI6OnU?w!{$@_f7R^FoyH!Rb7GZ>>-94 z)K;kZNKlI|$a4}Kxz;r1Y{QX4Z!%CFLD4OGn_*H`J0(5p2-S}EybtLf6>MP)j0g9m z;^_nPlx9Gd$iDEi_{qMQY2ZqC+zTs$;Lp5(5{n<9H#uTXzL*(867cIkUUdBhk?Y7R znB6ak?0wA;#r`R<{Wpkw86Eu{CI6;MGBkBBqfV>x6W-4s(i&lO0&CvD&j6D$ErB_< z>BL1LslILEvfl4%KY%;dEceQXe2?Qo!LL#XHT|BC>1h0IGWAPV{BG$>R=gVWs+S&| z&i|Sbq^ft@Z;4rlYz1FDww*vc-YTx0WF*Ea)(T9Y3|#$(UqYcJ<3u-BI2y)tV`Qx! zeawDi5=6;z zUPZz}Aw>%_Ct)Iy#N0wz*U-xCJ$1&hR@bAqZxJ&0BAoK(yIlnP$O;>VWgdZ44BkQ} zg8@CT`^Ru|e}r<0Y6Pypa6hN3=(n;HEfy)@acH+Wh97(h*}XwOJJzBV&`56(G&!zlDqrjKnHDVYbU?Ysr3&3}bn8aKISQ*-DX?HdF23p`KBHn%2j2 zvMaQjG(7+VWH}^!gHbi zH(jpx7rz(s9*}i>lit*(KTl92xzyUZ;J%xU z5t+t$>?3u$bO(l8#K#O(XHC=<#LMbU7Ocs!!HQ^hi_`r_on?;5=fN@p+ffKq^T3XA zlf7mN-33WZ3SaQHbo);wTnOJ4sB3T&DEONKB(As9lBb(*T8$f z6xU6f&Qr9r*UnY2>&{#gaW*3!q11yKR9@fM{(GvSLaG7nr1`8)(z#*h$yr1r4{c&NM-vk)3Alxy^he{{lPLhwx2Y@`U9&o4aV z_DnIkb@bL_9M7qiqAPEo4&QIfJrxnwpq7xgQVRCRmCm`3*@A6oEZfyS0@tM@PSA?Ww z9lzz;$pVwf&)%IETjYGrX^ zoDSS>UU{70y=tw7fwY{ostofwU)F0WVvEbx1@Q$fKRzE%$IRCR9uTWIMHu?;{05_( zn>yXFfj&tyGo1b&+W+D1z}QuHW86vr;U*iwy_#gjC%j~2Xw(onp;~Qv`$GTot0mLU zvt1kkBMqR<&v{j3hBg3q^5nE2x>zM&VB}pzcPBOraTP+iJG5=be+2LXidYK|RU5sy zd5$4(09=f?67*|=u`m|NUXmPIJ(xeDyYe$(~66OAkZJ+|lX(_Bg)oIFR_^ zeHshs>Vx$X{R!o6DriPS$#eBka?EN}5TQc{`?adl9hNs)mZ*C0cKB`rh%xg>UuOF8 z3MO@`5+B(sX6Tsexay|HdF$%7I(^@u^vSIfMn*;1ALcz~Ml|_^? zeFuPjbalbd$^i7hk7Q=;I!0(iak}n#RKcwHTnD6x8i0&wu0lIjKW97uY{CE$6hCP zo@a37LadR1l3NyOC*RX1noI;S#N8C*l;^~v>0%{TXz8Ns^Q=+J-OLbij&HHWtfwjh zY~@0+WKLmdI;2gc(P&Hfw^P$`DZPuW>yeR6Dy z%qYQ%3k&tqWApc4=Ey}ScNjooYqvLweOZbdp=h3V9A411ql`zN^-OvWx1+u9 z45sZ&`>JMBQV09Kje*UhKjUT>fA>)DjE*CwgFU46%zM$WgSi9t(1Wb7zj|vhV%fGS z#HW~NcQ$zY`Z}YY9S5a(4v&7@@w;vOA}q9AJ*8OVAwIGPjzyUD`iEWF{|?|ix;1{ZF93&sRY+3*5`h1qIQn~VPq6&U3lgw((y@kG zt)=vnTBjN=%Aq!Sa~HjL}s+lM)5 z;X2&62BAGg=(V(%X_NGwl_vxFY6u0^92DjUwS_9?)QLtTa>Lm&yeL$%=l93~d_~C0 zGsP#2eNtpsg-x|36<(Br(6SoxC`5hq7#CtZNv3u*=2haYp4##Uks2-dXPO2%Lb2Da zq@e}v#Z+E4VA_L?3dU}4vZ;H(C8TIj%7SPldHinbN%ed0aLi-ps!;{3Q{s6$83G)F z37c|p6#AQZ+M8aY!74*HeP@)Tk!jE)X61da*=OgGfDN~%fm1-cDLs2$4Vn{MDaQ%X zc2qMJsbsE(6fe~|JfL=C2E9X~BX`W$T9s8d7st&EOx-Iv0%r z5X*Oq)u3RmsHh~NyAr<-scMLBgD*7NP>LYWLZlEwL|NcC>;S)U46(~;17eS4$S;Hd zML5|3!nT*9r^b_=WO{7QLkAE70~?&)a@*k$RGlYu<`y}zWdO18^62#vW!CxaD+e~= zwf~eG{pJ(a9uUvHt?&j%~Kay_e(F4WvA{htlJF0OR5+=-zn`k>< z{2}wjJ%)g~LZ4}g>IblNLP6(qmav(DxPxV7EGoNm1a9an&E?b|jnjjuR;+v82Fa_v z_l)(6ZC<2>%2zaD@~J zBrMw7t&+vntz6SDlD31d)1QBb4*m}1O?%FnXIeA1USUl-6`ac8VY=h`8k|<&QNzTHR$i{*w zQ!dk{Hl@yhg)Wn|G6fzc&C+y0dCKM6oz~1#7~^Wzg|ju?-rQ$;X@MIssG^F_3?Wtg zL)gjt=2=l3tg@0*{x}!8UWx?qYa9KShjC*Db2G(~>T}e{wls0}oaTIau>P*i$eKeT zq2ku_^66^Qf;U7y40U7y9X192G zVv*v@Kw6UZ5zfP>(*hd%cTQ=R90<&`w@fRa)sE_Af+WY_kBVXiep_@%U8MmU>3h2e z(!gKjBJ`8=kD}uec?#-t%8^NQ=j83A4on%Y0lNz#8xfYR7<4zyB5fd+6k&ZK!uANs zxy=zm$P_yTL9U>C@>1Y*MB`tk*lxGFZK3*RzRF)m(Cy{(%oR;}dYGkOCSSekFA{M6 zv(t2>G7@_TFTXwMp+nygBI0}#2yM4X;MkL1zIFgnestH|;qH7rPc(^NehQvxcRT1S z^3NlrClo>O%9H?mLaFU$7E^{VIfL(GmWSL6tgfr6ScNSNx8i$r8edUE3f>-)SvaeJ z_{eTEiCr=rBl2S&?0GA8ui+k~d^;hLZ&ge0h;IRv<3f*4E<%T0-A}u|Ca(LEu>0Bt zk87znNy}=)gvs95s^m3=AMoyRBQEd-?Z5Pd|Gf=^FZ5B zM*?_))vUb~LeS^FkiQdRn?PtfOa`0JI2nv;T`2&ru2P8T#ASU2joh6_=#jZH=-%_U zZDdyLH!lQ#hfBAzEDV{GGPo?9TUWfd^k}kM!@PR?hwJ6P#tT67Ohdk3?+&*B^+k-e=C3$wf{<>JaceKv_XUdQ2uI4^?1D&%)Dv>#FXOVG^8}dFRa?6#`bM% zRz)DbUl|lkoLNZv{;vXfbH#=#Nc!53IkUy_a>Ma5qwV$V>1))0yXzMPa%tAg6_ybN zehU$iOaB8$xM6*+I#*vgpoiWL819~nI*k?Ghvfe5W`!@+dXu^V1%Y~ou;)8)M78)|+5FFDrhuxTY}Xphs`E#p~JZP!Q?e&+N5b z5k)kPAZ@HG=ev9E0WRdH7$%qH0a-_p^(AxU#o%}C`g$DyitJzkV^6e2OPeL8fx-eQ z?atv6W#I%NNHz@A&k?1z#`n<%Y)W5yqp-%bZyi4GLv{7>3?=U&NPj*~`%17#ys~>&AV}eh zbRm;cbP5c63Q+)=K#}PUWTSrqhR;flAq@B+2c|;s6lq1Ue`4Be+&NLgd&X9y7*&Ur z`Ai;lGn;(lJ2fx-(g)|a@pq_0F6#b(mlx{G09bs{cGUdvE4}0fEJL#| z1GDeum*SJRn}p-aGu@`x^aIWM~K{ z`2JQ_et=Lug-R?IGME<=@}~YQ@XfhMT^YC`DNX>J%1GsS^*-WqoUGh>dw;e3CQ8t| z9G*&Fsi&ghsDIpyNqClqT{)(&1Iy;$Oo3wqdXorP<2ULJ(c|yKfpP6S9$LV^9Qoq| z54ZnDAHhovqCZ?zi|L?$KBz37u+$x(22DhoO=m`KLC)|Dv&NdmC}fI@Asb<|LJu|4 za!! zgJkRiOQdm}q#%)LvhO|M z_{B}^#3c)}E@cX!cn#zzIy#24RWx0-oJ{LGym@u^K!PG>htXscG7yIx#r?F6MINS= z&YqB&RKAQWlZ=b)`;oF%@-KnHvOCn?JC%*e8%YvnA!{@iQg_0Ty%2yX0(A~G+MYu* zd=EdgD1G2Nf)`;0FnVFPa;T^sVsjz2CHetHn_QKhVt$fiJLR4syU?oh z0+2_64pOT*1kcz5W7UF_JhPPc4kxZ*Tvspr);E{jq+my9hNfbR--|$9b$3xyOOglN zO&G9J5It1NIZ%>S=#pAwm5tb99yy|Vy#~vgdBs^8$YtaXnfoV;xs1wd(XpB+(HM{7 zO~PY`r{fSEbM`={7)~gv+6kj0>Xw~ZRE4AMG)xG~zdv}I5k95sRH{^HG_T*ZlmTKo zG!o85m%BtBLE*W=;uR%Etat|OfBdY+rnl5xq4z$!u2(Dj4#Q{JPFO`lR`mespz>Zr zSo9k;TeHjG^E8xET-}(0D`}cQih=!m9U3{g+W+ugqZ+Z{uHSnvbOd|fH%#+8f5Y<@ zDi%JbTA*tangE-JUg2YYjM2p=VkR|nhS6~|TSUy;{IP6n3zmVC{TMkW zFrNbNP2n?XfvBL~zk+ ziubV{{mnPh4>b1OhuakCqi|uOt8LxQae2AeJX;;($#LS&nJEV9 zDxOdiMcO6|2KKGavqviK_a!*bFR)9ia|mLxB}g}s-}Nw2*9laSsg7BDNO)LFx94Md zg>EyMb?R>4@!A5ASY4`ga9dMUT`HEI{H)Lq!*~lzqjNId}V#-e9Ut2PIK`ra-RGjcCayUrDk^A zwd@LX;zVna7U9Q)z_6a(I#zI^22E**cWC46>Y!-j=)n{jhnZ4ayTf6dbv3u&wCz4f zwZa6>0CQQc-7K3(m*LVo{+V{Z?PTl86Ci~f8W1E#Zce(Hw#j@5{pqO7a%fh=K@ZJr z35B-_cL#sxhn_`C_XK{8cEi3H3jZ6b_1{AKKaTMJeT!J2qHT*MjLdTuU0$co7HQtA z8qk!0=n2d+%}OJkR!9TE;+!E@loJJFU?`hO^H|w{D+<9Ku#Ip72%HBaCY}eQWNEe_ zCXCts4)H7+!gV&W8l?)PAe`0W_%z93dfCA=dgaUa0nv?7PJ!MxjxS;_u2yHzOr7Lt z(40GMr##34%Fs^2eFuqp-Dszq92>cV18Tn>6C18C-y^>czjX&>EIwEp;cC2|0AGa( zlXXy@)G%r#>7S5DPj9F}nw?0WHoC#W8Y#6u;bTr6;Q8_?G= z&x3<}02oM7e)I>hMhw>Wu}Zgzb3hc$S}Fwqu}R>4ndQkkmS2KlOBMt~ajDT$CH17k z3X3Y5$BCOaE~6I78r%+pXN_WP1+P6}9x$S;l9u(DiO%a^O3mayjHUhwe^03UWQ**e zcw5?F3j(2y!b|Wi&|}L))T9@78GIRa(im30!Ol{>fzCo%q+pOLCJ#9nGY}I@{@ns* z=}?z8vKC}wZrC|$F}{1JNuq+L(BB9}DYGq%K}Bh!uRP#sa3n-V(o`-|r_+QpIV$O# z^Xu`?H^f1Tj*@y6L$5wsOB2C5tI9uIAU)O)Bd}UYvvLfj^S~L-JsD*zSXz07l@__V zfo5E*J|yN1lb6e|a}h4!O)L_6lobY$!YD`f{Jr-`PMv{w!PL!xC4DIAm^1gZ3S=Cx zZA6a^6ve_+x$A81j@psCrDxU?K<@I~ogaATIGn z3CGtpNoJ@tMO^9B7?7k=SzKEJ?BTkQ@4FZRn+G$iH@wlOH{jv4U?s=&rP>ilxOtJ_ z@89hWux$wt#s2Ub_GhWI=QVFXxhjU-X&pAH~+bWhnv*z*%CHMeu z2}F4Xi#_vl5LN#A&erV|y7rR@_htk)`d3!IE^^KehX>FNqz;Kw&n*OhD82S4!tE0J zs&M&o?{-!tS}3c6&KiFLtn^#h^bNQm-}61hQ@J$fCn=ytn6a@f|JYmMo|ZyitdCt< z1RUe#StI#(F`d{2!hLm~keOz#=XoqXiv_tM=!GU49vX{^=&9oxNQ$>p0tQxk!}Om02({9M z_+YDjFP_c&wE#P>ko3>Eul3}-_2JQAM|C6m#NXv(2N#od(&%`ukR;tH;WbE8q(&K0j)a|zLoxJNZ?yIfs-NcuL69) zO(p$UZ#np#PROARok%t1c$(eSpIDfk_HP<+_-F#ice@7wyr*}!t!Ox65GT<(<)K;< zXcM@3K^ARiC!&s1VJ1X>_YSjCnT18-h^$z~^i{3NafX_q)wMFSC=hdL|Ehf4nWPFx z-SN}H%W-k^&}?M`YnmDoew|tu^&Gykbd5@l)tPf?=OI1fxCY45nu68V>yF>&=VwBb zMl@|HDq|MO~)_4-A){*IJ;z)NCCoKgjb}LEUwbI4w$0XxJq$JRs*vGhkH3-zSM+Lr`%i z6JAiO4qu2f;iMst$GT*uG+t1V#6(z|aT}e1YoLHgURuce9D_7Ot^(L280wSvY9W$F zp3rahF3?x*UC{Hbl_4e+3UE;A(wx&_tx}j6;@opkMJ>iLXt$-f2~ZT9WI~HBOuMwK z)t#pmr3(v>|Kvs(jEHeLEErPh?LHYh1b5zS49syGQ`^T$CuR(#fn*%lMWusdBov^z z)ZObUheA76WWOX5;9_$b(e_MXiWmsS5-^7b0JIZOBrS|B&ZPgSSoJy zsjluf|{Hh z5sQ!Sh`bUuOeFcWN7=e>8&({Mt7sRWC{&u6n@Lt3Wo4DCi zEn(&4&N$ECH#*5+7-ca@rg}tQDc+u;`HN`|a&ZoFX%4(%{L9@c z-1EMOD<#RQ&WF1EB0#4>3Fe}NZBoTHh|#TN^WBoSwYNrU`0&Wyd3%H)oWf!>O=m3f zF`tjVLBEc{SvwBygZn)i%j@Jmf2h~H#{hJb*W8mE+UPnm*yh@fLD1x5OKQW&JeLw0 zoJA>NNa}-}&F{p;=;lulZ6Vcrg7F-7ty{OxhCO4eNvyz0tguRgNNp)(L$Fs__xZQ8 zo#w+Z^rNqC+ZOAeEz1PI7-V0P!#1Y>IavCSvP{j=Nl6uB!xT4l#ON2i82&!XPrngj z_@9u-K&a%*iUdJ`+v8Ug2M9${Ci_EJAeu#u^S)V?GVfo?nik;|#Y#}-Vg4G{))iH! zx53eTA9Beb^98j1ySztVl^Ge6U*&;Ds^gb%9@o~&E7#WEdi&kSndx^g@Ge+=hAi-! zCnFY5*^xu@73|mv`4umMU#0@!yWtA=lC^&vV6p}rYdKT`G`Q)~t3a;(Gdvl7?eTlD z1ah`31tj0FtYm=ioIL|FJ_@a5Mh{U|xbeE11k48GZx7ZK?v+=#P`Xd>MFdhP66bdt z@I?;x9ly8Z_HsiQbS*z;rYfl5_!Cf~R;Hsfc7q>~|| zseP;CxLng2Po=7hE4j9U=7J7UB3ntR&pBs@_E&$Mn)EYM(#U#t7yYP@g2;4357A>4 z8y?>N>sY2Re$nE)ZM}E;FI#PsU-hKcQiT(nZ*pC!8y5FPQYCcp^a^VcRtlYG{Mij$ z;_PLtCba?DgVnLi)-E%Ff~ihXQ%a*!YT}Q{P8=q`V-+a+BnrWx-c%$claDv~w5Gcr zKjpRPB@F9t`6*j(yFphe!;cLU{Fw&j5tHK^W&<78oDnT%SLxte@Ft1@ETRN~q)|q4ag*Mwix^Ci z8me(bLLT7#s20>4Ac4>kC<<@ui5alvpu$Db(CO?tzRgDx{wR%TtNNcDN zqKJk;ZHEiKfm-ZNd1~GZJuGEZ6fsd~oJm^k;{$Q6E~n~++ESbqxWNb~5zkZ@v=QN= zjRlL#4Dy%8C_O80_K4M_M)wQipyzX9_vq)Ihr;%ugNjL%#EI#+9Y0SVdonk^b`!C6%c%(g;{vL; zN>W=HH&+ewatgT`;$XG&Ybw9xlf9Io$zS4A|JS;W^h8)wAY_ z$JJpp2LD4U^0U=8_T7&)XRkI?oyT84rJhCcb@Z3QEtdh!-xCmt?l;k+3hXg0jK-sfxj{6PPcm><8OX;2MM6`~X7O*E zIk~Mpx1Xn>&Q4h*i<6swOp{;QCEp)DJhm9-r>dUlbmUPi%L!iueeB82LdSevzAv>@&@cqG! zW?o6^_#_V4K~_kPx?HRP!^mZ`0nBB8bzZczl(7%fo-{@<=2x< z2Ns*u&I981LI&Y>TPF+-rI`F*OT`53EpQWT{%%)n-YbYBp^MTR)6VyS0ak@U*4(Eq zarGgtKF zfnsTDyi772A(xhCE~XVedWg?{r8lU^aS|pB!^~&6@F7r#&#JMbB+Gh5dr;m&ugdu1 zCw<@0DVind^A_OMBcN-k)?Xt)t`y&TA@L29-&+$zLwSF)MkJ(iotZ@HHHIN` zl#(;(NA5!U84MTi68eLOS26HzyO&6WE=W~a(Fxsn*X?A0bJ4Oq; zQ(U{SaS#nnQ>#L8Es0lIaYjB0`lFn~2@6gb{1zA&_&F{T-wdQ}0IL$-5)$sd-235z z;Amis(6O(RsqK=0u)0I21TzInjd;WmJob$8+q|QUNjG}bF(_|szGO_c%wbkWIp7?- zSboThY(9Y;!`c-zL3&T(R6Wex03+9c12wGdOCOs!)5Z$EOsjHjFVHKR^oy9BD`+@t z98GF8g)(alzYByqcDfg8DghfI_2L<>$74 zR66P0WSLzakJVYCT`SmXbYpd~!Fp%aM8Ei=b*ZN6;^ACy$-WXgp1OYBBS0<}>K)2{ ze1e+ZUZ%N!xw`f!)=E<}XtWhj1Q9TZ_~n}bX{ zT`;|NoX6zkego|v*(pu45!~*yDViQO)al2@6{5L~(9}z2(}!%&r7?gr4*Gt-50Vt} zof?I-5+Puj+GQ?1p1vO!Ivm--0NlN@MbaqII4Ne?g!5cbii_7|t(_C>gchu!ftxuj z^TaFRPksDJzTyfMTyfhtzqO=hY0O<=-l?}z=r>$c8f&!a@kw_nj;c;y*gb>`v0!Hr z+s8_a!yum>2B{M>71sM#8SLAb&n+#RDw`j>-voAPNi*6`6v5~P*Y}!RgWERCXs_pw z-PD)_9h^ghS=wayK(0VBooXY`<+%%aF7tOM(y?r1!$C5N7ru}Ebh(TT^myCF8?)p6 zX$5D{=mzfC-v>R@2Rn(;u4tpm_A={vYdY_$D;qkmB1(BFRx#~bS>2DTXV;iPX3>`K zwRpl4HC1wS^!Yb0&f~qJ-JP!`HUAgEEAl*@ZVHRFDd}{=9o1m}H zGnuziSrIG2i$9T45w|UcmZa!gk8cP|+B$OBBu|WRNVKXMzDttXBXJK_Z80`)A(Yiv zpQrANU;v>5?<)bmkc+oW(n+9mk4UXxZ&0dkK1P@>sQI&A?p&ZmAWqaA|KYRQJlPC< z-SbdyLWJHNzNhWe8y&VB(4LqVCXEF0UhLE{R(m&v@c`CITuYN#i)eI=rjmB)rKwl{ zne08Q6fz|Nkz)17^}geR%=_-EeQ#MSFQ-ekKm`IxhHbOQF!DJUkBbys`;w@(xj3DnqXe7J&zzJk%{p; z8g1+$JuFX|d@6l-K|}xp;SMb+2{$Su39-L9gggP08==0+Ft!ndECZcBe*`MSRQ2v{ z1jb_33JxHs%=O39@z??!;JX_=?PyW-Zu9ZC6`er(Fb0hl{!h|j$u}?EZkb`mTj00H zb4Z&w54&(eQoA;$-aF60*^p-7Y%`XLQ1HZZwTrN-_eSHE&ohCkWO6rx(mn%LTfKWqXhksAKwF&$lhMjl;l|IutO zW}@3p5>;K#S>HBIKA7a(6|k|tKgYJ)K}u%#=!R{!X2B zvLk%^{Cfe);>x`Ec!?5Q`u6(cjMsKA4z^D%8%HivQ@UF|-_!=rzIoJ4?zqFhhuDQU zgxD`{!yi?T?0^P?1QQ3-z|wig_#@-q=&uEJA24@%v={-h8fra5Q*GL@vFg!VRX$ThM!XwN-rMiay@yHqx+E1Y}rmI|A% zqZ&!%xv~EE6_RH^^fc(8z$}vtM}Dy&1%DPPP`;TG;w^SZXe(7wY?9G~leS@uE@cVY zQcrb8IaMxSJ+!V01BmQe%x4{jskvY{E}bb`A6g*wtwq{3A<$MKljCnyScDB-uztsZ zXejH2avmEX6qHp~g;lOF$)^-P7)B%zhSQRd8Xt`6I_aTbN4{f36MX8lYPaM-=o3|l zV4{CMCO52js}U$6xHo-Geu0BQbnlx#@HaQNR}O|2-h)X2fnxb7kw}XHv;{X{`cHpMQX^^{i@AtNf}RW0m3oaw%#MV?Ac!HAdnFRvDh;#33T{VndWFPBRrjzFBFk|Ny?EU zC6n`@B|K0Ue#Y7iCRL76;IJqM(26JCthVp8IJ$lIA6f6+H9q$~dhr%{&7ZO!ymYZs zyKW}YZYM+yP624$c4MM`tN<$4%v~fKS0H5SG#e)>zi!H}4GR{A?^LqC0dLK`?qGYH z>M<{y+GRG9Ht@O-)Dl*l-nE9YjPbty?Mi^HxFmk$>wIMMYXJZApW;dV8;t&e+4vuG zEG2DQ#4lbH@YqsPk_JshQX`^nSfNes1(cOowZUw{Y(6|9Ua&LJ9Ce$KEB#4V?aOpN z>Bl$U;I1!oziGML63xe*tW>V2ERH8Dm#)wDKR>ov!Z7-4j0yb&AlFE(!Ce)WrFSR< zUz%4emeNF>0q+33durZ&8C|s~KJ;fDvE$ZW`M5=}MG8DzDg?U&Fcg3?1A6ILDt17F zYM7V-_8&YD!Ab(28ElwVLbJO{$y6!HNA60I?-ecH3N~8T(d!N^OLdd2X#FZDZzQUb zq}?{zN~@U?iGjq{C*sP+AyJUs6(yU5bi z^1PC5K$*uw&(M#dG5Vg znaDc?xCoV7qx%qZ%g=&;tk$8Zy@lW2St984R2?;(Mua9vrE_ma{uXW1wAlm7zM}2n z*N#T$pMNI*!GrzV$TML@X6+|3;FEv=OC|^TSU{EBT1{K5HI^AZS1AlRs8mSoB6BaI zo4kf-jsIGvbac8m4sGHIljEgH5l_Tk(I>8Lk$-dJ)y?c%a0a&KPL;$Z`4}#mc$x2cuDqWhK%R>k3O}TtefAo?G;)RK|Dpmc*thfOItQ zf098^Y3mePYc1PRyzzyp@1hoz)xI8G=`M79?`n6^CH=kFx@L80Vp_BWy*;v{F zigIyzGrogoU4}Roc2^y9WMwKKvK2C)K;6f`mT|T zwLGd~tm#Mgfpr(K#J^fa)Y1R`y?YmuH21T-N}ygB%Fo|m2J79O4Q zdc-+4NO5>tcV8ZP?=v+0dLSrZw>Yh}nPoJ>F?@U+H}_MweHc_{KalNUDjeiMKJqmm z>m8YXBY}<<6jjHd%1*N!TC?*22tQ__n0|0+@O%4OjJVhdo0LrO52^|{0jT%y?^GYbvs?_Q z6$pH_a8K(kj(n3mP=*NVbfiyz`ZfNbX&h-53V4xNVALzMadc<+A7}1 zoY3-n?!TK&ZtaHG-ZEnxR{>7;l&;LzXUR1=sf5OmfRl;K`^ZtmrNf5F=;GPQ_vI;I zbbrP2B)O|(TRp$MvEcO+s6nw9(B{c!jOru)Jm^`iB1G1}+Ob(o8@TYGm#bWk7nvL9 z5wK2Mm=hyR9F%M~AeSlU=}Z1H*;w{ywTLEfr9x9VX$T?kXGhd?v#kHkMk28|h&(Xo zG&&vmr~FE>tQ{Y#2b!9QU_eSZb$We}R|nsL)yho5N&=)dp*2ALc2-q9 zrO&dLt%>k1P@MYBvW2xAw9tp}R!q9sG}HJKduUPoJ-U za^x`kE1=?Z^R9>QI2&=rc1NV~o(RBZyX-J!s18ACH-}6uI8peIg*g;JWj15_;SN|q zW8Q|ThX{z+OV@8 zZMW;7EYmw{>rOK{mnltV%#;xUWv(d9Ojop0fHtx^h?=;@r>Md@ z+V?W{;|+xZ+L?)yuN?&09U=Wxhn!O37^ zaESw5vEYf$jL#gQ{|x&>;m_!=7>tfV>Q%dkQc>3BmXLkiSDhu&VL7D=BSAjmVD09S4ad#oBalSs> zqXm1(Gq7c)?DTA|&Y`2G!<&kZO5y?#n5wiGyL+q@iJE6AfYg zbTP4HVM2wjB|BgbXfF$r%yqTwdQ0Y5#IM{EMbV?08mkMJYf48Z9$4R3=-9@5DmY)oUs5TNEfpR z)JK;!b)QSHqgFiIApP63LC%_1oCs#OQA#!-qAGb%v*hhTtWl-&R9(MABTi#)_jW%v1OY7+lI54@Aoy-t*u^~8&554YyGaaK6~?E`e3-j* z!e8&)8#|cWtwir2gg9CP_&oK2dLCw=1b!$^;M4?fR3!fF-7R1^8Ba*QY%Dn49@s*B zn+N4?jigzdz~`BUJ2^i#^`o1{>TCkJTo5Kl3l+6Mm(*SudZ|Ldx$m$0SdUU7i#QZ$ zH*H(6Z4l;jn!)OH`>{_<{C^M-W9lF>XYpGn6;jE(G7S>^{8WF-ShMnuGy4mnsQ zp8=H*;owwf^?g%d!4?%Ts~6gBB@{<_#s`$3Y|X(N(tUput)Zp|Miq^rXZzC1Q;9d< z)7bJ2Iqx)fx-NP;m=zVAH!F10GX459Glq-|F>mkCqX(>@%fKyG`ltEq&g9=Uv7N+u z#o@miAKkARg5W=w$Zedh{}O-s5`y_#QL7^9xTb{8vjj(xl*pXIEG{Uil!nL`*DRNu zG$<{OR0MLHVlI)IMe${)OXhG30p4xiGu%{PbjuFhr5pd|mr zJhuM4)(EFrV9V<)`7mf(pWndwn7@O%3(0SM8xiWHFHbu0A}B8G(|ja2VQoD+dAMqN za4FtX3-D}cE}G2z24lZ)Zf+S{HMq{(ykK#0h+mV~BM05wB{rJ1VSnn?2On4ztmG(u zu56Ecm)r8&08x?B!A*65V|;j7=>{~6va{bmf(Au$xp2&h!YXbOW`o$ATgOx5=;GHa z3xRd#?*`7wB9;fi$_qyub0e{MJhNzPQ7EMX z4Hq#U7b)|h#nysFr=^Co9}FDRKFsZfq&g%Q`-RX=o1;(Ad+(!jRNUk|eJeRZg>>Kk z*si&_P3+UyxZfw421)HCM6i!{fh6Nmw^ZB8dQCY(m+`X>3BRmH1?=DumqaOvW6Dks zaro8U%em+MVdhcVH~aYiID4lsOQ38^H!~a=wr$(CZQFKa*tTukwr$(C9XG1G&OOz2 z?!&Eq+535ad#$-9#{37iu&E?<&XZ@@1`&{Or>5Zr>V*wDF`Yyu|7Z_BVV%D)0h4Hc zK2Oe-2%t=0#phZCI@cN zgyCP_U?e+vkMyM3gr5!}N?;uFhf&?h5@cQ_jZd<8!_7@&&zJ|ja6LKS80=6Dl+kpR z!BZ1Y#R%BaM`d6BaQ_ifg$hJ^mUh0zGJSJ^WaIM5xN5y0Mr=o4eTIAFXB%~q?{@bt z?Cc)gpb*N61^M}uj(yv3-%I#Y_4-Lt{co}%n^EzPnxBA!{F4O!|6wHlcM>RUX8E(U z^MA&gOr>d;pZxEOxI0~PU6vnKoiJyPurTs7S3e#34>DK>Naw)2jB*Ns%OW>oL=|-WcCZ#69`Xj^I%8(HKg9IQB z#p&`bNduXf6iBP9lO>d{+NzKtBacHT^fyyjM6x&8IV?pWk{77o&DH#_<^Lw8xT7@0rIlA!mn0Gy38@6G+w;vP zCx#JkS>;Zv&X>Uxf1@~b)-6sLNgb~$&AZm`%dnhHP4hG_S7;^Yk2+f+nq`?5*S7!o zAgym*qpkOp!rCq}w)h!@c(NjC2L@TAhK!IqSq zA4;W(gq6`<%W`XXJHN60Yjy6SKGM zn2WIVA8E#;kgf->UThdzfEud{U7o3DpL(<^la&xMGq7(=T*KK(4T%vNX7q&9LlY41 zlWNEOAeg~JgVr_KbSNq&PtV%a>5rQJoCS%B4%t0Ou&(}MoYo8vljcV&Ga%kg8B8=J zmy;DQtcz8Z`C7K42qbkxGau)^?W4 zLattF>P+-FQF(x(v#I!y_Se$hq?yDCqWA@Z4T#?d23yV~EBfYnpDzPO;;I8@zrT$A z8qi|}Gm9XhRz*|hmP({`fGcAwIN|B4w|<<3M%v+W7dnDoIqbWfu48~@wQgwKHSj%^ zcof%VmqRSO?-}a~`>HeQ`e6pUBk~tMl?8_d~q13u-lBgVhCW0)lb#!D>c$ah~0ful3!O^cR^z^l$gHGKaoG6FWEi4{Q}!#^tXN({0Zqw2RPe)74(5 zuE5BMO}vpe%1AWFwu~Qr_K|kmb3TnsZeuRk>8H|lr$n5UDGRXdoSX^X*P|0) zn{-X@`?XGg{hOU?7?(nG*N?Zb1j4Uh{Qpt%^}l1`|D51dsz^8@D4~AYY)KVKZS&4H zl_YYS0yc&5SMr(_s;`OX%!G|GqOJ4Bg^m^=b6IYj+}7F=C~mg&3Zb0j2K&1jk{q|p z6;dx`M(?w^d0=b#Y-grQ632%&^x?Z)eLQ!6@4t7yZ;zTR^SlLwyqya1IL+L$uL;WB z?wWCP_6H+)z;-eo=LckWBs}bE?e*7dr#;8#T&nNHA!cVD)GKg{zmp>5OeP%qW9DFT z4V(PsM(ikXEj=j|67EXCKNJ$0VpwDKlGj8u5F$#9iY)#!meN(1E~mxGl#P_AudTnJ zCSXPD=4$v1t1@+1Xh@DnE*lj!{`#7df`9-aPl;zjZ{Or&!cIk$fOrI0TN+32e5Km{ zq+5M8nVp!FFxna~tG7@wn1oz^PbUQeMZ$=-nEbd0ueeH?45*Hpg_f;hBTc$e9 z5@i%W2hSWycL!NiM`i@(EU;@PT&2erD(JsoTEQqcF(LNazo)6bS33eu$3=Cd@S%m$ zmJq1uJ3AwVK$Tbsiy>7=*Nj-uIrnm^Iof+erG~x0w~1Lc2%L47q+ZSr+%jb<1#zwm z#Nv2DJhdc+X5B#3FhvToRNH$nOhz0ZvBtmHa8ND@lFl!CM6(54OZ&U1v;%@uIw&jil~IXSKk89 zS+1_v^T=C)kWyw{6U3x;prxU$p^B4KP?=C8EyZJFi{=CgVTPPwTkc!Q)9odIRlc_G zRbeGS;45ry39rjcCVeFWikD^8ydJgOC2 zm$I46#6;_UVH}sw4qg${Xx?E{7*p9P6aFX^1PB5%G6Ex{{!m_*c`g8~Be>v~3)08D zJLV`R_8`lSHPA5n50#wg8`NO4?&KsOb}1ULhG+@s882b~<~eFKCiU^KB}*L@35*bm zS4C%SuGd{A1himPb;NlgC-ZeBV>5`WZ)kpq;blL6h2Qtm9)_$X5Ii+~uH6tkiUY3K zy)csU$9UnK72~}$oa;3pdwLiB>)<13S(UL81Nc))_BXwwpv#~!9ArVYnH#9Xqe9Pe zSWt3+W*h~6P1(-6k>1d$M1Zb8gVBD7XJ-%@(5!UJ4xzmA1M2n*T$rIBMs9us zT)<{kPyzbf=3Od?iud4}PwkQs@0}0&oHSQ~5oe~W^U@!(I;%v^!xnZqbo^QPWz0SC z9&h=`N{xEcfu+*nA(M^}Xr{5cC7;|yBhy;|i(BrJq4ybdya!dh303|{e8pCf0QCL~ zyaT*M+>O9hYxD(yv_PJ!%WnRyRO4-;vUc-<9XSMb`qz7muaAeCv4yX&#@_~&!#6Ae zXz0FEtNX6z8J(h0Mt6YV-)whnQ}N@i0IlN(uM=skZ7Pc{%s*$o5^RVc6ZX;2pMYBCwodK z#@$fjZHa8M?P2~~oaB*1{#uaaK_JsrO8(j$^PxsqA91iP3~-J6>SAMZXCQpn?>7D* z{9}T5+HE4ft&!NZEc#8C4;pQ+GxTcK#Kv=-ZuwSj`3999z04X<#mvmp0cB#3>Ee?g z26qL4tb$V=3YWGDK0+J`VW52Nj6Ht2qf(fyf6b(Tj!gh1vuL$LH+Q4B38L^2Acc-? zfu3DW5GfEd7+Ith8#J6Yl)Un;6v9lEyF?-D`fk!8Sao|9?m^b&sc`c2)9 zzrAf6`yC~G2MT?XjXSMFdbG{^g#$R9+0tI5Bu!wb;CI-FZBV(8+j(H^^!DbOC34AU zrD&r?QL_B|4C+q6!YT*59(Xa=7kyzZ2gE!ccmax7mSxR%ZG_Kh&2OyZz=-=#4ZFFq z*Mf*oD6Uhj@W-X;kc%h8rD5euk99uXLl1b9Z_x^ISbfwwaM{o*S_Z_I$KAiRi{nbg zgol4##}}CYR2uYOHG+Vto|*MOSE7_PBr%uKzNYBMd+04JZ}xb{jQ4dxku7OkS8Bnj ziC7B{;X&6+FPolfIC@sv8PYe^mZjGPW62*2VXWelUx-vj!xDm(#re$$+shP%BHxk( zD-}zVo5igcm&;h*GVA*aS!L~zlaf+QXLh=0O zFJAz%Vvj85G7^t8BaS>kyP|9yf6(%UtvUO78O%h1^|~5 zPh|#fhj~P{IbNRljCAM2X{g*x4wi8|0GX-wwWe%aOF!rmVvLg&mt$4{4hQ2=4z0Sn zMOrIov#CkVraFMV4BqpA%ayGH-tnCowBJ^1lW|tZ8JDUMhaYuHoJQ2gtn-6X##a$) z4TtSKrGG7)#dd1hnp@b-ktZh7n9}U-|1Oi+O&nH4nB2ea&Q=;G0)&xU8LlW`Jge(b zJRKZEvF}=JGptbR$s49)8RmDV#%FV%vTrbsWCDn&TIi>9OuLo>nzhw2^ zyYSCeW+a-Jff1&?fo-f?a+8L=#F-dVPp1PXnkmhQ0LMxF7Km``S1ZC zr?%91XBW3r@)b$jw`y0hKc%hDwOQZrJ!!>TBmIIJW#oxbh0*%NGyVdAoA z>w0`(s&CNMG8$qMfoca0CTFxSs%LL&@d({0VPw4H7Ly_nnk5b8sGIh#Bw%dD{C8_+GFY4GNXfgGapD z!+Js+tp*68YIq?G4bp{gKvM33GS<4GP<1(@cVs?9K0=^pWoadPI8H=!*rIK|D$e$h zcrnIah5CYAh3*QkgX~&^e$}8rj`GKPw!SVL7|m~&-)?$&M9N5V7$#F~-8&uy7+WA$3e+D=l5B5^=Lb9U6@MjKX+`-WIB!J&WPSDm6G>mGMRi5-lbE zs9?eK#X*~|!}VOI<;bUOabjteyzq@!8Zv0iaFk+gs;umKstpEwJPk?b_&Pa}(q)r+ z@&ID1@mnHlP0q@v1<7mp^8@oq;KscqS0V{DTj7IIqy;{95xE2A#ztq8!y;yygLSyC zQ0jhC2qN3(eeN9g6b6>9Ju2xrr*P0cM0`H&sQgQztwA@X38u0Eg75~6-43XoE>xS7 zk3JlAH%tyZ7?5?uuEE$iA|HrHkRJX6Gy-jxwT8>p?ZvY}35_s!UfZ;92Ol^+Oh|^P zYMP%rvfMCYsUi~C0+25cTOJbU39UoMccebdybJ(V z7Ax-?klaYXH9-bWsO^ji*%b;%`_7T#0cKxFn0s&j8^L9CpS_FgbN4kiJ)SDs9K7-y ziclDS?Pb=qjYXVodww8ta$P>5NbpjG@GvKcs{ZPLxyn zJO9f}u@eNKy0+&WwUhXz12k63PsE9{>W3KNH}~Cp8g{mSHq(VFUul=o7JdfR05K75 ziA#L*$H^u~U1c!M0V41YDFW25H zziF8&wo~|-l*PFzw&@(MTU0D8|IO|gZ9lA(eJ2Fm8x49A196P^dY3F2L($6R-V+(_ zHkP(c7(|a(WS$|qk)9!~G(XIoxrDQ5;nMHDti`GKnjqsbPM~{yvpvtXoei>;VWp}`z+Z?WZwL$_wb&w2}z;YtZrD3K&(n|X zJOCwLCApnHro$ZikmT9N*EsBS0p+YMBGdUDIk~OWszTirJ^G1ow4;E$Xft~Ae38L( zlbyvwKkE&BN{8`~g2z=k^TzSWczo>dpz}oZSUclBf9+6VqCpiz?F6?`^hu%i3B_^y z4C|}|=&U1a@-aPOQ_;S2JM|)lwbgCHkAn(HFbO5uCiOUKacd$ zZo1ji3EC9)4=oDh@7zPAWOaipI{%cc1gE_O89c_m)K%|G3E^WK?05I3yb;k`-61AvV$&kU!V}XgTag8-T7$pD!aSe3((as=nt?< zz39F+^m8pm5-6G?eTlKGfhxV{6?)e`JtF(@5U2podr={dxMMV)yCt+`KTdl_E@u2( zh0D4-mAGQsk9!SOkYS-)UyR#fM={lFl-Yg$ZOQOv)oeYO+9j)JKRcbK!iNOyA&gY? zuF$X@Xq%nhL$KyGM}DkU*QYwm8Ro#s~4OUQZ`3*1=(p2>Z57m(SXL~~vPv?pHgb&le@lNHB8 zalr)6oi9Dsx;;iV_J+w7Ue>YzzDCNHp|mI4QrYJXEl&nRGc`R!?v_ z8nwhNMSxatX{(twNzrslg7m7-U+?15@PE~n#DTe*5uI!KvycgQ*_B7DCh>sl{OmKI zz{arEYBi7&8sA(9zwW8yfzb!b7388xHU@Du>>+4KU9G5xn5xAc=@PF3!_^)I8zrOV?jR@)fd1~eVd1~A2_EFKr*Z5y4foiY<_#S+4#|p{w z@To+l9Cn)Qk_{}P(UwePQ{EYJpd*2J#sDh)$t~?BQ zV@i+!!Nqc;(QZ0uct_fGBSx5T<0K$=i|qgbJ1R1w|B~!2B6lNBJdL@(Oyywb8MQ*n z6BiYkLq2r#wuB~*`g%Bk(#dgPA6v%IScY#L(nx%@IT3!;cw$~LX7%dC5cZA$8%hZE zbXK%H!4WfjM3mhoz?)o3ChjvoEE;_nxRc)or9)$6d)uqITW%BR2{ z!Sz@cCaLuhI1=Oa>t;ndo>?&SbUl@p>fg5dbrO z4e~H2@*g9yf7vd6gijL2qcu`+M$`Z>{{9dWA_{hwsoNXd2gBi z8h9c0fv9{M$J}8L-HRf3a5a$n?AGIEo10;?ysx~tHj8lxtZ~ws?yP#dC z-~HxS4xzMd^JY{sU&d)Btd~Qh?;FKr4}VrF$hMI*Cm)$Kr)M!*LLpjlF6rw`cK;0o zUf~_85A#E-eQ? zAsqF_tYq2Qw$0F3{6J|xx`$_nf*4j2KEL{l^l>BAESEN~H`#rP>-;&B!NL3E;|{3@ z@+vHb2rMN5b|@jhSTZ~Xj*bG)XA~CA#&%k&YSY{gr&(wNj*diMo7c5aQU5Kj2o;0@ z2uLaZG)!#?*wMHt!Ahtqt&F&uRaqR&XwgHAuACiV<`_Osyo!3dn5<@UqqL^tF0OJx z;;C(rV|O-V3NgM?K5jN9A*B5`nv2M>26;EGZY5gd0Jc(ix}=U0GgF-){b5F4C0X0p zbrjv2X~9y|KA-vDDeD}v!j2DDhw#IR*9Hvu;A)I4^hREBs#0Th-e!(OramiVMRad+ zg{AvCc{zJv;^VPF{Z_-61xEAgIBtsNCxeB1DzTE%**))qaB}MycY;q)vswI=s9K?~ zs(+z>fmTPhWdm99gG1Rq9vN}mmVhhI5`;t&n+((+<=YahAPH0e%1L8biyNqAPb??q z3+|>BO)>c7@cowxA^T{?`Y9IFyF@mya7NU9^4esI7z}MxQ~FD--OT;Ccn=K zM17=L04r%jN12hlBf&3Jd4n(RoO0>_6D;yu_-Ui?#+^p$0RKijIJYJRv#6453qE zE~Yd>;+;9l%ndG8?Y0q-nEvumV1~wh`4_90e?)O^bFdqopUVdFbJ_U*qsu0#=l1^s z_x`0sFZ|I>|4{e1465q~wpj5ZSpon8nSo6N^l?29_4)Dsm=glZBjAUu^$lq61wK}( zRl}VMz1mBcx{>s3ScT1QZB4*VHp6vH=}un( z+SGFet#Oxs&k(P$v2r}7?%HUa%&g#ih&2tarpU=rhnpkyPGo#a#hT^Ws;yS%|F`vk zeop5`?a>bslgS3CvF2g{XbSm5myM*nPPNHFs9XNF6TS0%ZE$Ay#dXSTXVD(`^?VHE zt-(CaC{@FuT9M^W=Ots{Rd_zgWZP!fmX?EKE_J9gQzh-f=xi|#^78bu>|r9X&h7KN9_#FIT=5Q-W-`MZm+1YIKU3O($ z3#A*vjiYSc*oc?mQTTI~1}2)Bj5QDfAa1iJx+HH<9=^W;{l_qSmf5G!Ua*g$F!`5y zYS!2R#(VT2!6m(d7&}7OHFlvau7!3Mit{HF%XY=X$)A>5Q!h!|oqeVoKt23sU=W@z z2gD$p9N`c|&Ihmub48$^i`AgKpLDOmufmw7%@wH)uzUouh{JYBWB?*rK-DT?Hd3Cm zi>yrwDc_@OmBlfcUe8#3{??jgRLTvjh zo8VorE)4XUWU6l!CcmNTW`s9*>qcF+yTLIP|Gl*ogdYwiBuPHExpa76glXoMGe&(C zccC5*X`Bve45(4k-1C9cEB2>jCFmZ*4x4tpU#3qj`ENpP|75yzxc22}MR=)5jfH3j zpSZ3C{M_7M zaQ|uP@UKHB6?;8fTO<4b{aSV^TUlzDAbD-A+)7=fH#u;xF*4dUS4d?144gZsTLbo+#Mdw{`) zO!Iv3fx+^J+;uE3FH762z{bDqKHqORWI0SZOr1A>J-(&?vL3$Id(f5RBaQ%}WHx}P zv!6M%mFKGhm(U}nJ@`uSdnX9Nt=3iJ%LO+^rJ}_r-TVF5dQ^!F0Kko^x^jObYa4B zZzOcVQQz3o89$MeE>X02_(~j1kVM9eV$D{Y;vi_g$q3ON6i9t&l7DpR&r?Pc%{jp3 zzQL%W`O|=;J~>lziRXslN?YM-5z&nDtU^=d$4!8{xYVQ>fy&H9oe&j=r=T#1F#@PC z8R`TEk%q2D<^-XP>wMR)>A)xdWCE20%?d(bg_k<7Bc|O=jv@c>m~lMD{h8L3 z293y9AigLOV<}ACSPW+>Wqdq>;MhZZdIeaWS#3^S?2}Oq;pE&zo?t^p<1I`tiEQc7 zIc*<$^UqYUmFK5d34fAxwdr5qp)M~_-g-orRY8LSb%ojb1$nJDfZRWun4@gbo{QBI z?3c{y>?Tb>zdZ?Sy%~aLCq=%0eAncQspij6Ms3$9HPAjw@J1W@gYg9B^1?iINi{5L zG3qHVBM?>S0`!oshpfomx2*s+nLJ1S?GWORxNW2`eE!h!{sMZ_gTp1}szlg2+vk`4$nzafAKC<15z3W&o&F2Z}Rp z%TNLpr`y1I|{srOb+d0(kWk039 zdid>C4HGgczcTsU0Sdr!57R4s(MzTIe5)e}*kr%0(|j$ghz#=VKjlU9T)}DMP2o++ zZ{pd`5igrTkgyv3Z2!%D)fM_nrDyAfT+jmw3ZfiL^M@;*D+itHd!1_pHOAjyhBT?N z510(sH2~w+62Bj5x|ecr^$Ra54=VT-lyI;cbsmUAfY$7ySWsjTtWfxuiPCRx+s(}q zm*!-b;FhgFc9CJ|h?vT>L;hhd*T+l{*(-%GI=h%V8yMfnecM6@0P2Tl93hfW(3-w$ zJ`xtDY9ZD?)XsA32WUq71z6#r+Hv@%Db!=k7P_6nZ<4OGPt^2GGXda9jT)SAyDO&h;5_c%D->9O7 zVREpL(F{0B7Q^6C&U>9m;Fs}^&x4+fvx+$PkJ%(1+&RPLSlr?vwG)hq%4qn&wFPNq z1z-;$IVWDY`X2Kmwhgq)@(-#bG8?*zp=ByX+~Kl8_>4Gb97 zfwe0^&dXPjbavQXw~dZ*Noo96DNHSF1IYK{?}DHkS#-OkGs`-rTnTr!lMAIJ zG-*c@WKxS5w;I2@%s;fG7g=vJTDioLN+oe+eeTo|=0@)Btj*qG{uA@!l|2}Q1h zH7)yU`t{*C(OKJSYnv`3!OD}&Q_0e$6PEIbH^KMj{ET~N@$R(a9?e9*4*0%}2m067 zw>vs_--R;RbDcyB-?VSmV}LsxRib@*x9g=$a)wEJ5>&CzNK6eFo%o-_blZ9`gJ{{; z;UE%f~a0gNdzKt+~)EE0;UT9m6yDTZ({lg{Qe5^5$nBp0y_mI z>#9OaZiKD#^!kV_&Ryu24mQ-#L(fCnU<|6 z+QswL2cFw=I0g*MT5mREs~+JxYB~@!E~5=`Om&$A0%kKzL_?ZWTC<#6AgVj^Uuopt zpcym7YJ?`@9|@<-Khy^8v+bhyr;eG@FJgfh32YD%&r=QWU-H>RzppQ4NhHZjtR%G? zyhdsM*o|MX{}$*Z`tbaLV>>6OH=R5NprnYj!&IdNPXN{v32xs$F%%%7ks+}w@5p`E zjJ$>Cv&2=(IP;HxogtLt@Clnd!1ec;V!`(opqnrMS^Ll%iK$lX#x2usNU2oZmt4Mk znp}5(CW|dYBv%?E%=O$tfN@O_#0Aa<&8SQ0d1Ys|rc;ePI-?z0t2xzS`7RZNIqZ_Y zQa=yzwYirPDPwi#Pa{$j8^%mRox)bKg3)}AvgHgj=Wh7RbF~$CNzD>fhTh2si=G7* z$z|=DfM?g_*b$(HMVut6g*EOP+{+5zLd6c)zV7%p+FcLi9bWH!qvqro+<*A1r-j5r zz&Y8@wMCc|GWkgtOlEl8RcMe33rW#wp{8Wtic;);7?Of!gBp^7#ZrCj8o zZCf1Mj`WGbWy!R7|8f%bfL=0I_aUo@%`}-TJeM3%DchvXJYbSQs#k$z8@E4Q+Vrkc z+I0LO$AKBh#4>ab^7p{O^~hz?9jI*9B64<)>^qVHPrOdA1>=+)vu&dC^2unsbfYqu zXX4Bmt3;N4L?AFKFCzzv9h>*Wv)dU({54dXjQ=OqXt}GxATa%aAx&I*RJ^d5Q*u{C zSK%5BDQDo=4WQzo2J~_eY4I9^QO<73TPd^ z27R8Isw4xnR6+6jtVB^6$V=(^tOP;z`mPeJ3y8+@B?Yt;czP#JBK$I^9d2?|jF_9G z2`zOR{32@E3`)g%7VyfAEh5EX?ZYj_S}u$lPLvw_-s4H&+x=P?*gNKV4Us=s(g-ot zSgXQV4&ku(3N`x^>eC|T)siXGrv!F`pHkaUNpU~L{9ONvhB)JIC$*l;Xx;H2bE(P+ zi@-3YN_FE*o&Fi}C~0?*T(M4VQZ;2MmSc6*XDXp?O$*_bZ`YYg4VNUWM*H2EAM*e$ zF|e)eGyt3S5dm}UN*VLy5@pVGj?whAD?=mZV=OvFhbmjwBTh3|?$pU!LL;t93O zICpD){vcKn%ga1#rj(K=b={^_^-euj{MzwfL*T<@c(+I3IElk$OG1-@B$F-d<8A7R zk@_v#Kh7!9hTuoi=ji)HXsRCTQ*Xj~Rozm&Rt>E1foS2>T#B*z0LyTp+R|Z;tL7_6 zR+=bxPc-?fIU%G545|efDETtXkozHp=^IKNinHeUDFI9h_i6Z9iSkyqv{WLgvxxET zzW9KcU8bf=laBl)>mlYAVPn~5WNF9M6vvbra7fjR z7SeW9bhz$!8K|+ER=aUx(>poi(YNC_kkRL z_09*?#i^yavZR2_XyW96szRIm!ilk{$&)RO+4Dj3$<_&z4v*_tTnvdKi}Y#IwceUg zD`%*dV9!>S5fOL5c4tV8SA#hJS7OJxt%zb%o82*_0khxd_szIa9>G&Ku<2Kk+x&ad zUOU8bn%3<FIsV4P>2<#a~T(36IyF=Gd;^ zYnw4w2$V^E^<~*(;+g{ZU9hm04lbCEqa$0^ z*^<_yVL7+}Byi`e6uN58Ucy@j!UIjYxD!gTiBG3nQ5vG#yXHsChAggM6pn89)Zoj2 z@SXv{Q4Aa4YsD#-^MsDXg65?B=A?q;zN$LS*?yM~cT6v2uFJ>FFS6F7FMcfNNi{Ql z6NZxEO;W~Ad(8Y3AOsU28Y!V~tFK^r9rxQpt4JYt{yIg6-fgbYU|GrHeCSnqBr(N~ zmtWIc2jJktpjDtxdDa@Uy|;k$Z!xQ{A*-!@J2>}M*)>Ded%t!`Zq#H?HC)Y8X!veu zf~^})Fu*+~+nw-dU0^cFF0Q@-Q)5Q*eMhd}@nLu#sy4Txw7+mB-|VYH#yWc-Jf+{+ zX&n9Sz2M;WS@8#K!#B!X$Ewa9I8MehpYkdbaMJ`fB9okv+QtdJaKd7u1V!KB2xmt; zJ*V#|q)mXXdaNqKgnYaYo{MFZM}f46{gbtj{?{ME0`J(ZVtVPWJJV%4qx16l=ndA! zGom{?tvjREzw2c%<_$wcgC?du2Lq4rJptG@S9RNVX!pOYN&KU`sy1b;Ui_1G!T-mj3~3uf zqyHI$GZnX0ewg=P#O$l|VQG~Xe8Oko%(u7_z63a>>Ty+IuL1mk+7>TxN z`>Rw)_t0wGeiYr#t8bdRM#)8fU_jc9TiqalG)>2>G-y(+=%P7^HK)hN-Yz3d}bTu-ljMji1q4ic{BHEop3&xJT``V%0TGp8E>jJN5r* zu>r~2J_TQo<|LGLGMe}(!4J};qCMx~q+O@aoA8L%^HS`TY;rBxRRF0paxVJ_2+KnZ zgAw}G>e?xbiGsiDFzh}-^imV2Wmp_pg?8As5vL4&?I}6y5Z>{*U}`hIsx7OK^mOJqjZ68-%XCYmfM8t zrd0MW^e~Nc#Z1jvfVY(0!C;Nvt&Pl2xn&(vy^iDbcX@(8LCf>-1AWqodkP2{e}u8) z@x%3iAWp1Qj5js}V;5h!&gpq*Y^O3iFa_B(tcI8G23taYhg;Z-kl8CFc#z4=7jA+d ziI_lD91C zA6x+QLIQhk#qNCZ3_Psz>IO#(7tL2 zl+_0|;;6g$;*_=+sX3XW_1|TV$>!$i@UArav^@vf9SHezo#OwIodn?#pXhA_eA3kF`8GG)jxXCGy(%iQ#&*OHC zyxgYZG$T>I+L46(qQ}=$<5V8luUdI+^>gQg#H++TA2x@TGeoQ)Q&q9e?k!F&dP>+; z^*XJ65|mJ4>P%2yb(?^Af)v2jAUjRlq-FDG=}s$>ovCA*pE?ohn(U#6^r}MHEUn(_ zcsHSN8_Y65jePWptVUR&$`?(EEexAV#%QFnt}@q93KL9@@Ke@Wo(M~6=d0GLQia5! zK{F;RTx{e|E&d~1X?%j*`QwUFIrE}lrthFo4>fP!dL(3r#v-~W0+Y{E*=?xm%5b7q zXB>5tm_jRt_@Z1r#-Kk)0!6rOSOppRD48UIZJ&&n(b(9R?9$MdKoNZnlo{oZd!JBe zOm%P7_c*YZZkS3Lwy$bhS~_DqzueY))Fx2P8R!l$gG`Ls$eqH3ZtP2=JYW~~$eIt~M+Jm* zJh*QTR!rLqYhhtq7kHN#)OmMOG&>Wn?AG3M?w7G!L8+3+RkehkRCyLuX>HdyMkUcW zo>t{GC?$|%Ln|2%#bqx+yet|MZ=KvqevQL-LexHCd)m#aU3)Fr9s#+kG*@1s83mX(&r1)nBEkFfQCAM_OF|0XAx=F`8!0bmr9G z@Yk-88rm10o!%tlD12}cy?Go&tiGUNiTE*AuZ*yKSdU)QJ0D`4*0JFgwdl+HIW&B3 zc1Uf#;)Lk!*AAnnn+V_b?>A`}a2m4@X3yz&+qfe`ipb!AdRU&~1CEgE5*KNODYP`M zoJ`LLXu`Ox122RNmNeI!DoI3$d-I$(1S0UD^0lj+ouhh<>Bm5Gh7rXW;)v#(JTA})NLVFy4r9)y1Nkjj=Bss!IRX& zRW|s>FxsV)lB@U|DEKb1yt{*Iz==Hw$~`=5fqpGZIb~nv@HxK#f@UMWE+f9JM&1bO znUQ%t;VvWLEhYk?eK^-|xX!#CKwuntfKWjYt@I+&U~3$%K{P8_L0d=?ui#)W&}_b2 z?%?J7JSEL;$r6cJJd#x;w!ftKhG6zMZ}==H(QMSa1kDKMh=^w9doY4t13lP5_EL~I zuzIAi1V>WW0`!jN#X{_)7<(3^FF_rjP5zpf_$nMDT)J@0Gvf`ez$%;kD1&h)9bAGA zvj$QTmk-?fwFcUB z`)Q(jzCP4z9=4@qT6*(sr*#mngvUoB*6Dl$Vve=_r!+n(HqSDlS9nn_#xXXIlX#-j z?>x`{O(Gr*%nqCR6CjU%0;I_QZGilr$x>m`wgQF{;&6BSYK`71Vmf}M_{EaWCXiLb zU>R?1h-@C&LXdtg4fQA!C2_l5{b`SX)Z?PbFk1FS1Vh(D?-b&G2m#DlxOc*SYx;Pd z+0v}9-U`=GxjOyqFwN$&Tixyb3e`hYVS(Dq;m;b#X5BfCbMMiTGrN!OO<6{2F1pKg z<(2I&PF_`9Q@}S|7luLRk)ww??r|-JWQ6qNT_YyCT$!Zvpq784xY`6%N~)*3=4|OL z+*k6qxWQ<%@sHDZDN+(klj>mhSf#k^(FS=ut!5oo(}J}ntso80GP>0ZH@F3&PleHgBBC|^I@2h^v2<@yX;Q<3>sAW%2*%c#WhzgVVPAfa6r7`RE@*3cD6Q>Iu^gRHPWjhd=Q`A8- z>&^ijHmq`w7d&FejtCV()Ly*xE-f0$)fcoIwu!Mj#rQ)eu zHNuJWNat~ule-0|Ed<2b#|VGzoLP|fmB$o4r{tF^zEg(N0u^4IuvG&cYH*b(B`5IY zXl1)IvG(=TQ}p}skEpOImD4^d;O2tj_wgf9sWaTO zjq}xDEGAP@;9u8QW zNBapfCwTbjzY##Xg3CUB5#9P^i2E?YQkDRby1CTyvMulL>Z6>nfd73V|C}s9=s;&< z)G?0p`w@UX#i*a_+VW)U5U3Tlb%hfa`l2#U+1(Dyaw24G=6bX|1ivZ7J>ugU|tCSH$z<+4{V?Z62;)bel8vf=)Shj_t1e32lgn@5&-jMyA)CB5D6@Rre z@MS=EEka#^>|7DVa;rQYxY&1f;1I9pA|1>O-Q0MqZ?F;&p3$ofM>tyGk>jdd< z$Hz_Wnd1phSN7-@L4pne>nbeCdT>0HT^)dkA|=9ZUUb{YmAq;#G<_}0iwplNp#RIg zw~{n6xy`=$P1fhX@N@rBC*Dpm8*~0F$%sMy-=&BmKNEb@|5CsGQ}w1~X7dyMxb|7m z)>9cJ>K!3kAS(9@z%4Y^7z-uT|A?uJVwkFtOfhCHJ+|&HVw?BgKj(z;PvS z=K_fbDN_35Qp}&({ovg&k zl1qivcvY<*`8$bgEC2XWaqUD*ZM7niqGsCAb>QITC`*9IA#2Nn=&2LqZ$3&o08=GO zP{cf>G+S8?w^D-@!SMv2?2P7b)ac3=mySP-+v6cwWN{Ti5!$xUC=s=B%W2vSChVSn zoQaSX?1ff1gh#HdEh3&5U{cr&N>Z?xE(G38hhV!Z6SB}|trU*F^jE~vfq^-`?$PIA zns-2(rkCzd>7mt+-Ff1(+x4awTdy9?Dlm}gpwIp;SCYsfCHY-~tA9*KK3d1KL~KF`DI~^hj?gi%9GR6D@}~_Jyd{vtqVo|#NI94|XOgu- z9BY!m)qen#HL}ghmFAdR=F3jp@H*x7S5i?MRw{HDo7j9W4U)W(i`D>G@=(<3m75kv zbQT%9sRcebjjKU%t&D<6csZ{%c@23|7}8YlqHC7p`9k|?d!z>uvNKimszWX7bp~mz zOm0}Pf?r(@IzwU9Dhu)X`)}@7?LTy`3{0yZ>4r}gEcUE@q@h4Up_F5I2L5s&I?&! z13VPc@0I;Z0j}2r@LMsKqsZ9rk@|~eiUTDMDCts!^{V#~bGs+88csOTBP3oyHjV)d z%Pd4P*BpMAF#QL_AnO1v5to^rXAFM^gg-hZ#;g?|(luFcf@r(zV#~L>W zcL(ygqk?b%1{S*Xz11_1t06J+c>*)Ug^YqKZsB-kc}HjK(AO@GJPl}&%aDElCK@p5 zKv$tITk9F=+sUsWn-6Ny1h-DM*}%8in1x#b95(Unsl5uKX=?!TN=s(#xsBaU!1BUp z1!axd19O?`q}!z5EVfB|EGc!N8kjAOZb9A-Qc^&Dzm}!^7LEu#B336|>RZ2YYSH0U ztyIaL1q&5NT(X4SLQx-e*6{dxB&qc-c|JY^W6}_xNVT`PHM8=R*w8g2+&&T9;$Zi4 z7U}~S-f*frbfW<6LqfZcv6wn1HiIi#D}*JDM)l7sHV9Q6UNYDWh`RKACeP^&oFnnKWG97^@A0 z-RR;~TJf`6*~zKV%%f&Uf24v3ZP30pW1CsqG$P$M5X(%K*6kP2NE;OcL$%rDpZOJ@ z`2i{&(`%>jy|2G$3Tb-68{9QcZ+b*S_rREkN+n){{(YCkaHS{yul5}HyFLGByJLA1 z6RZEWJ1$PyR>C$x8Ocqhu|^V96wE`RiNUu?62Ydfo(MycEYBkh0mnRbZw#ij&OB!t zF9~uxb1yt7W7bu`?RLB_KsNz5{*5_LZT4P>lgqBb1~u+JuY366JNuFi$Z{k9dVhPv z{~;Q$;xHIjP5@e>vIQg9FOAUMhWh8*O~2LT&X)X@fjrZL(?>4HOHYI=oWXW{JS!56 zk4eDUNE5HK&`@DG(SO%Dy5Mq6BtZQ&;8R>K8J9UX!%b}z3|PZya3R}q9s$GL!PwB< z!_`|6kEMnE!Eu~%1#E~XK%dg?SL?L5E**s<5kfWA*xwb=vzZMLV!(Al95^VER_M)K z6WcLQUa>HBf$;{NZP7g~Ppd_dqiept7U`pNl9P07ZLzE%RWTa2%t92CQ7v=4_(oH- zbbFmCO6o&%7vcDMR*v3$R7qB6lnq(>XzrweUg36JtE{ygPv<(6+D%PWApno=M5|_e zf9PDju`j9G*tzi$$1sQASvoD{R2n+VCc6eT^3pnkG~n(Ff+%j=tiBEh$+5uptT?*< zLixCgOe6&&iY381Hh!39E=OGTOq}&rw7p`Pk#n2j(>wBJ`aqC`t-scQ*(Iff&x zd2%?bf1#v*jZ&j#%nMkEH7MPYx7R!q4SvcN5KT*2)z_Z%^9FcVdaEJ(IRmlPoh?|+ zK~4WYotYT6i!8H}5N1CFVP^7}=2gfYgqSdT-xE@(4PoGK8x=yWNJf3*(bloGN*~wS z&t~&uiMo7%hDWS|n_$wZ1j#}4=yEPH8ZSQIL5CfBj5{k>gfZm7!bSRG;vFoT72RBB znUw4bC6m1BPu)Yc>eSp}-bV#YoKe8@wDsT*KbTG?-mAyxmCd-pxF1)&LpPJ!FL1oE z{!tsdCtQK*F)g?QZdD&(CJ+J_aula~rDF1`%|cClM*?8Ab-4Txn~XCfFUdY(4D4-e zB4O+f3BP>kCP=kQtTJl(fg?h@i(1+HbSu^Ee!8`n4Q`px>Bxt5gT^2h3EkoHC&%bv z^YZJ*{q2EP!{1mhu>c?qN+;R?@r=1kcg0Z~3z{gS(#_YU-amqK&nv#yYjUKL^xBiP zmp1v7#ZfNszWKMN~yhTHU(quj1y zlFChfBFA0AfC}bZrcS)=nSGT{wkrhN;}h^F>)s{ie0l4%#xA|HrovCacIGN*h4Ca!9KRkP*=`79GyCE!f!)Xys`w$t?TK*qk8_R)a_6v~|Wcf%hJGRC3;D zPMHF@Kz_(Tez-vLhUaiS73RFz%Kj#uh;&F-GZ>wV$wC2;lpu}D z?Uj|a^vCQ0ag!RbqDE2WsMM3>X)~r&0_R5^0ADu6gAU;!EI?9^vsj+0rFt=FqPc>ycrvrC<9Q91hR7(UDQ zU1Y`CZqBy!Q&K+&kf%yC57@5eK?|ojE6%t#)(&KAYtz=Zh9J(LCq(-7A->sU3YlV{e*8V{psk76S6KYP-_h?nz3Dzqy*C?{Q& zoJ1$~Vaow#G!>z_2b{3*`&w9!#MS#Au=IaK0%k&UOYhHs%k%a&pJPMy{*c1*4LQJ) z+sh75VyRw7Myj#CBh^BkTW?{z;P_~OQ^w%V%|%7?S2*xm$gSS~G$JjuR=3@DgY6yo zOOqVReoY3DCSGt-ZB{K`i?u>2p<*HzW)I1_j!M0hNmrp?;?nHkB4c=u;R;i-bP50Cus(oIO{zJCmNCv^waf1?K?tg%Zl;Qn7ORl6-u%?a)}P|Jp0C-U!pAFo#|J z86p#*88(~P7N++Q>(KG1-34fDb_4sJ4r;{TR?3I}K#><~o5DF=$ zJ5wcS+&k2=33=2pP$_?D++Y5bJHa`LL%4#s+CR<;*6Ujk!hTgcN24ZP323Q7iF zWsuqTYs|h;N1vaNW9N>M3uyw&HP|6wb{?;Ij=32LiT&~;8;i?nUB!8OU?%P)G|;z( z_~g$kM=sf1=pxJ!42W-_LDq0#+6dv)AI7Xfuq?3zD=@i&NE|fAs8oBzxNFzYR{A`M z-2+$=@UhuAA^+AlUN~l`FoqEPKaj`{zZXyjfPC{}@v9EP!tsxJ1Fm^GkQEsV7Qo)o zAwnXJ+)i6^cNKs+iQ1Stos$mIzBVx)XXx{&*zm|L zL)c34c$rWAWM?7T^LmA&-sx>6p?{D8%d|C_2*Zzc|Jq6Ha<(U1a~3lt5m9y6;2>3w;w(7a|J&Nlo>kn@k5^mM;8TmV7Dm zp+cK<)t^aO{V;#9cAUy}AbB_To!bXZtxouqiIlE>_NMrTTMv}p-o1CMzdO*%9c=Z6 z%J#PT8cKH%!2Lq4JIZ&B_8HN7WA~2r)o&+E?n{j~vbnGDE{oHDH4ORrhcQ2pgU<*y zi-dh}sdQh=*a_pykX<~TY7+OlNQpa8>G#bA@hih+{R@`upV6J|zwU85&cO~ovR`Ct z5{RDHEM(>Ml9?Ch{xA=?u&=|d$wxA~frr^~vnw|mh9u}tYdbfrW`PJ0i8^kG>-o6I zPsY6stikW)f1V&N9l&i+>fLe(kTQo1DAC#`Mel!|(gbBZerx0wB)CX730<+_4?7;K z3IK4q12Q)Eqa|#SHWr0x_%pEzFPCu6vEbX723I6@wu-4Xis&lnjY6M% zFMR)%ZaNa3VA1i-docJ;S>XRih`zjwlewXRk=4I}S;|sQi>fG}HRr-DRYN0(Ko&p; zDA$F4zNhxe|B#8>whK<@{$JB<-tXajKQCetyhaD5&@%r7Q1)Uh^X^6A$1w#+^x zs`s|kK8r2D0#mB0F}HmDJ|Vn`GNxf@>8}hkP8g$Qor@6FTb@D%O~eh((C5&48_S%l z6Bs2B?TKOX=X&!%Z@El z8P&^f_lnz=Y_yBTo%3^la|CW<6g!bxn|6XExaT`pl&A#n$D!UyeH{~}nt*P%Dk)GaA7lfG4P zz>LE%<@3$J*@Nb@Rg8-Lso{)cL;tL*lGU$)YJ`zmUttI-;5iF8l>}{t&ixp{biE zBhO~NP5f(s<%3R6s2~%Xz$5Up7>VpuMkVBm5{5Wd?wWEOAbv+pL;{oweZ}Ai+LD|C zhv1>(9(7_T4{e7~jrJ6WuuX-dZ=Q=&$RS4_24uVN7fqB=D%fOUn`{kCn_yCypOjFj zoDmM61kAY8dNJQ7@p2Z}*}_@4$TOmfg)!m8DdB{Jlu4T-u*=1Nje6+ku$ufQkr0VE zjSNB`2-ltXKB0ixU@!#+rzB*+(wSn*BpdDq*1G+3gePe7jO%z0Uv{qw$2f3p z#*x0)cUS7KXCngjX`O1S>Ff=uXqi5^Xc>i-3)Nu_q0>Mb#}wQo5&D6*p~q$3=+m?g zr-`|cZi2}!+^v@|xY{IF?U^b*2x2HEKA$Gn4fkuSVErO5;$eOWG=`+kZZGps&c~1c zJQx0jbH8p;NtAy>3GUyC)BlVLp=jc2;^_20P@<|;tiHE=7{0QJi3kJDM+<@$6)H}Y z!nBVAD#dx`l9c%b%N0@$uu+qAjq4025N7XXg}Yi0@N4C*n3%$5=VE5>3TIBP>{8-m z;VbZ*X1jMePd+(!U00kh2eW#Ue!DTnr2aFdSe34>Y&RigIfk#NSvAFiNRV=uO#R}(MY3_I{bP)0HYMOLI*dBmOh z*3{_@)u-t+Y9pW-PTvv6=MBZs&Z}*ssiq@j?c@dP6~$}cS~9gplbJjF)phV1$&?lw zkyYr%5*M$^ytQCtH_(g`R-s06Fj+FocGA>wuMHY|GcQ% zvoHI~K>LqzMYSUH>2=A^Anb{hq?K}|oQ)O9Kenk{!K=v&T^)l+;K&jaXiPW<%0#E3 zC*Ls%TiTlhuqE&rR@jOKh1$}T_CyKJ$EN9~GZbaNWcN7((12;x&st1V%8iXDzpSgh zJvTFHTo$)fvpJApQj~8`WtWU3?UVxTXV{A63A&28HkWVG=U@HDUyJ>eeH6%=iqpi# zai`NwsB32|8-jhrmQ2)%M(lx<7`a1A!NB1urczye`j=pAv)9KfwU88CAqNjKP2fT; zMpu{G`h5nO#0W!uVd@GP%P?a0@FE$rgt((0Fh;HoVGb}N3BM$>{#3i;u`q>r$fAwlvfvE|Zjiigtl6 zQQKyY#`<8^;tVx}f04Orj>vM)5AQ9iY@z_Cerc&)lX7`aTfVZHX=Nxl=jJ9pB5IM9 z;6q=@O_5^r1@VY^+2_E&T0my)8SRq(3f?t)@k8h%@H>a!<(6x-?uN9sw#6A6Am9RtMqT?U~QHIC~%e50i_3K?{-w;AfiO9n#x3yztL-_e$T0 zsy~Grvt${GDvJwUP?Oo=G8B3Ci1ZhtHZ**f} z-gGK27M&U&{X~Iz1t{e4O^?ORodA{al;ZQB&o5sSs!_wuGW!6bpByEzXb+JRJSH|U zk3L3rcbDr9sF|!PjipgBPZ#~-K>-vgPEO|OwM_UHG1&L}O z262?DDWn5u2Q@_BKCORiPZ$0Ii5|y&YPs-}mJQB*+olDoKD-RRk;`A>Vvr?IE`u}a zM$Xg!Ns*t}mx??W;AHt$P}{>OzbpRNY~hA)_+d@;-`SjWS)p4n-z`kTchrW+KN@ZR zcj5jIR3+tIyG>=3&#bm@VuFFQPHQqhZXS(<7>KoVU9xTA-y+Fkks@hL562{_ecF2B zQOfLR(i>=C-Bmt+s38!r3Q6gLtG7agT^H@uh{pW-uq`L2%bS;;yKSe-Lch;f>^`uq zxrF|A$Ps%9x~s7xop$XNdl50{J1jJ37^$}%1~iwGwu-%s(7#waYVkWrxm-1E7VS22 z0S)E+t;4ac#%x#x75q*ji|Z+!zZ+e|lrfllJV&?Kq+l0ol2?3oQNf5!DorzWM^T{@ zu_y0~&}cSq(NMD{M)@eV6!YjfRYdt(E!PdJ7q^fuL)(`TkowBgVzf%E#=ioT9?n#? z`X5wAtCOcvG|HnChb`D}J7uIAP-pi)4aaYTtvq8l>5^$XR}gZHYBg=_NbQr>jqN_Y zs)?gBXEVG5lIbTl?zYCTnmg8Y3$sv2_3~PbOlGULKKiV|!Yy+AP9kk4PwUzc%ikk) zP=EQpLmz1M8~jnR;amR>+&DoBy#>>I-BV3tTJGlK!+#-}rmAHcuRPp9lV&}H-i-`7 zn!L%1a#;1Vyibrm8Gi+rC``?c)iUTEzbyr?;2>uda{zZL}=*QIHcKk%F$_HG-$)n6GUQeEA~x+`UfbNe#D_K78gk z?%NBB3`R+}lMp;R-%JW9-iS`We=1El{)Cxv zfw{P0h(K?Xy+H+z49*yVgaHOXGEN!;5{|}=*%5Vzr2KpT0?R#RVeYM;#w*8mrrtoS zNt_~UhPW0ylOsJPq1P_k><{Uu2bZ-rsWT~Ph_M=Zdqx$HHxnnTmjUc;s#kTXm&I03c29g#I zz$A^187S-_NHCr0=2Gk?j=635$?d{}zA_4up%W)XB`C;4kGdx@Q;|#iL4G{Czy2r; z+uL%b_hV-&^yDby+BwNo;K@?(Sou|G7wWzXIxG6fD1zUOqp;^^*bSd{VfN}9Q8ylH z-N4AU9xubDzvzdVxT>{hQU#Hk!0S5^i(dyrTPJqoXXfB1d?-75C=1aS@#7en?)CA) z@81+8e~XAimA?Cg&hI|qpCKtqRu=aEUAbGW{2$@kpC#xiDFyOC^pI8T)=`S6%0;Nv z;SuT&`JzGdL#JH7hc9d!vyndVd(uuC>3Piy63q*)K9T%FJWX3@MPB!h@|gisN8YKN z+je}sK0pjX!yMrD6Md(;SrNp+=@_m?s<37UELlo}9;{R4K~CUw_lCT&yi;Y|W(0PB zh=k%=J2cS~18A9pt#q?fZdZV;j#FEDce&^_5Cv!fF`PL~Y46ads3x<;y56Pmj$m!1By{EDqBlDV;7 zu?<{mEGBoYHtkGiqY<*RN;N3MW(-ZZ_%mxs3moFdKeMYbK`Vdrp~Il%^+Ea_D#Y#~ zb6{aN-m5-d)27YlZOE`PJ^9B|zw9f?a#dfyf%wv%fa=JikVHa+p za_a~jBu-W*20O}-&JU!9#1V@!I0Q%INkqxzFAIiOyihW{t?FZmFUDPBzI+!H-IR95 zsdx%1tDk7_d8HL$aKncohg;W}jPdCD(OTh(CF|0}FY!7gUW;wjL9zPJ9WeXgC$1*rSTq-OKSPp{s%fkfCr8M+?)BTu=?__??ynZs6%|6N)bi~gXj(9 zbbtBHV>uL;i6Zxp$0W%xSR5vM^?L3C7o1{z7szZy=#^%oKl;Z!^WJe365^)31y5kF z=8@Z8A9rtPcRCp=0bOl^;%cmm!uGx6&eod~ZK?&fVdkmjzSdl3NuI+#@l_G%%+$en zfWxIFEln6Vf7-=p+owO>UWx(Uyyt)+eSW^s$_R6Jf2E#os&|DIb#E z+PjiW^%0-7!j`KkXGOjTs8sH`bbJISVYm}wZWQNqWmqVQOeGbJcv3tAEYL8FuzAy0|QQMqq48nuO&0oJx5B!mjzv{NcE-L7o+0%t%dar1l3*nC5FPcf2m! zpK_L;2S?qmfU-st;c!z&8A3T<(%AL$$ne#idsdDvD*|@qXZJMWR-M!l){dTA%wB59 z8R}oxJPlP^eM(hyVyo_ejasu}Vvp>+TKbG5rK%Uyb7~jouX!pLeGWZsGR>JQYg!eW zTdIyrbZj~o!kNn^x9qpACxk4&+oddqL$8JV&l?3b#Yn_fqW> zCwoKQ9&O=3oPf^ydoxKPcq`ko_%-p7B_1>m4arzS7beZs?Z=FMS}D$HCZJwcQo6k# zcB?6X#8@lJ7SDy>Y!hW3uhsq|uwpyihWmoqDG6kch6BM7_|oSic*tV*OGAwB*84Cs z85{u-IA~zUy$8q8=dp{XR*79;R6;P&VlTL>0{ujTe5!puIlG@Q(C=o9XFgfHf@l+f zxF#A0RBf@zFM;<-88i`ImkwZ)=)6Fmt@M24$AcfM<3N)rYET~Wj7W|=1OhNn8Z}*_ zC1IHW=qaQpU`johx~P1&U|Kf=pd=78rL(HMNKTYP9-O0(%t~SUvaTbg+Jp;Id^62I zT)97`d&J|5{reIaq!B5EK@Vjg>5%15J!B|r18=cP)x^)pH_Ecgdf5v;&yLi_x`xC1 zeh!QMlvRDjsv^g#ssvXGSIDQx zA&37w;C*}ggYA(!M2~o7C22Jjv*>d#!}aqt#XR#{1A~4l6JjVQSA+9c|qe?T7Jp&TJC=^s5`Dd@7r%LYcSMSfOXP z&^wf-@D{C;DIEQ-i#|Ue35#PCKluX+Hd#Jrx*`~Tskkj%s{i#b`F|Gqzoz$O)(3}h zpzpBp??M;;M?-*$t%ZY&$^R6BRjec#%qbm#F6slXeS8$gst1sLl~C+HP?)Zv?ML9cF7#c&;Cm*R|$?A^%$b2-CZwmH8C) zv7)dcbXw#MSdlvP(GPz`JLWZ7stV-D`+5_R>Il9AzMBI4;_FwNb zMXDY5Gw_ceAK(4gKfTj7cE%Q_76#uAxBqscE8EB|%A@#RvaM8OgN*)24@A~m<0|Tk z9MD!~B69F|;1AsGP!Myl%B&%Nrhh;4y9Ob{Dj-4POMfnmF4bWlDT~}2ylm$Iw9npU zIdy)%KRjUjV{-2^Ao`C586*y(gjwL}r0pU0TgSUP5#ImlX`XU&N9Ys6BmCLkXOKXc zm)1a-p3#pmc_s0dsLq}o*|u*Cg-AnTqQdkybPB;Oz<2?>eV7Kw$fddBf}$3+Ts=We zvq^9vhW&`{SZl#myp+7Q>{hc|^LGqvR19Ips-&Wc6qB_pIVMx(Yx!KC#+X(&6t<(& zMcO4@n&RnnMbWP{K>C&-h;G7CL!0halGL%`N;O2OL#u4Y`Db(im1&B>oDZbdQhj^n z5(XZCwU9=#LwO^4I8n9Q(lW-dSnwA5!fg0hWO+y?l`~2GG7&{)anR2y1;?pV(ME=s z0kdm-iTaGc8Q*Yx>7}31nN-O+QPf~e#YV3M9x>vW7jRe3C;ODU-SQ+3{v4>vE_vHv z*o$Nfl2%uQAu7vLwM?Cio>72A;3l8w5|s|e4o_0?kdZFW%B=7knaW@gLm<@P-LHz# znBL7UBkgu!)VqC~UuZ-;5x?M#O)F3H(r4%TXtH0ke*ZH1rH zbDJKN_io&N)G#08Eq|%gLJLw(L;6vCf{Cu@AjZUY%gT=CWAn7}mjlD|b00x|dqB`% z_$%x|bj0q4_~MeL?y`ZD4=cGlo^{x@!_NMwpsPPDz?D>E?u>9|#A zggj`@+-d33y5b~IenOv2-wvxO0-qAL&GM_}UAxGy4p~jwZIj5Um5<;)bWlv*Cg%^= zqx5QY+dQ1^=k(~}fvVQQ)8e2cGmi5=+T93dgLa9Il#sN&JK)C{`4{HTklW9<+y|V@bj|>^W+=$z<*sJ1Ffg+~rVPz7*JR1zx3_ zo=``)2)XfOGH3mS%EZ*l$;>JKgIH^;I&77nYW1%FW6+o^nh1Ml`>wAF=|Wxs!@IvS zwY{4r0aH<=v0zpAti|w_@3GUxD%bwmeoU(p)0K?|iZ3i6u~Kb^dy$r}hlSa#)1kNo z`|r!}Em>{bVxz&!b2H>*#W+$XVyL|trfeAcF{w)5HUiw>V1Y#~z(uOo`r3QAYE@=1 zzgv}%@qB*g?9rnE<9I zvqpymGI=4iXtG_U7uXri9?iP9R2m*Cv2F8IK*?#?sI@M8Yg>odyFwW9c7!x}=55B2 z45uWJVu7SMjZkLfQl$zwxjOn*2O=>@o%&3UPPDa=81!#^Z;P53ccRRCL6^QpiuLU zMpuYmL9zeFC6uRllS0kANOe3BdD z%ZuB4LbH?hI7ZcLKs>tpcH2#$k)BDtNbtIBg9q%T0EJELbLWBSQ*8xslY#Q4H~Ns>MUrJ zDP`ETb=?-~^C$kpINzWDc$T}90$k7-TiM02J1oqA!N!%pdRd@8hwk~A_=QJm(84U!<; z#*yu)LNa!tvm!O9f}WJRfp^$`+{CXz*~v$zhGFV+v7RkCc_``lKtOomD{f!h>UPeh zs4Li|ykV@>8QhNK_4lpvRIX8ixzQlT2C>3zi6mNE&T;K2Qeu2^q>AlnL(!eunHV~8 z48gPmJ8hUgbMb0m%$%vnwMAEvtz!~X@%85)!XQA7~a{N$t8<5=_)g3R#PUxL5Cd<-3!=+63o?W z(x6r@Fu|)n*_UzGcMU?@qR^P{In7)(R*j4K(ZLSxIUWXtW)-lzbp(hdHr`GY?g&8n zxaQ&xNZ{wjvE3zrXGVMrtkA7lPu2sTyv`vub_Bvr_BT7t^_{boyuw>)Ogu_4Xvsn(1TE>51Y!v=dSq(AgvnlZE5Xm%4waO^ z<980>*@WPl56yJ+;T1N5(ygz_T~MO9%{OD6?+DC3`K--q-n-zWYCXDS9XG73LM7HL zc(1&kHFKoj#Ii&@?en+0Ti^d}Gq_~`cTLG^p_9kpca6_}6G3GEe?R=?9F0vJO^p9r zsaO9CGEqg~S(T*`b3i&vl+PnAk-vucLsFDKJOTzBfN)U6;f`hcO0d})tEh21rU?Ei zqW1=}QOaAyd||vX_4`!G?6r_*;*G+l%(=Z8z5ss4b!)xVE5; zI%qE^_zfw=Bziv}8ve#Ux+&QqYlN5(?`J*L5HjIPFomQ$mWad%%B4s>oq^E6DvZMN zeu*I_*`VP(1GYwS@luONiz!QH=uXLZZ11$9gx*w5ri<!KJ}00k!Rfu8K<4fV~xaWcmDqrj}*4!KBs^w@cw) zZ|^Y&;!Qc->~%GoS3O3h<*F817OBrtQG{92-FX`>fFoxnRBrXqdE>|ei(pF2!Nbl9 z1Es$l0JyN((RGFf{HBBNYSr$_yS7>e=xga$~p7TI7_N@3ykR@|iy z3DWe<3oKfzgKgC#sN_yiPzO!8joR2CbwWq4tP(|DXM@Lv8Di2g7RH9`VONdDplxK$ z?*wW7a1AaGCg%RN>0D-#j#^#S0**#^VmIefXefG0jZ^R~=l01yD6rI=oiqCt97kXTW9AThe`ovxWU$~bxA>*M z|HGOZZ$s?a<<&0w9gKs?!nYue}4DSM~f0SgFP|z`U=a^B#53J;dGoK#u4E;Hn zn>pA$H0P(R?tm-Ck47t4KPo0#YcDDg0PusBaLE}y5AAuzh~ZKPipVcT-T%* zptnj-Oe)R;X8m0cplg6*k013P!|6}o=w3f05=21+6%TdtlQ}*7gzn*^8Q=E-F&sH6 z9K)zLa^pJRKd*4LRmr0v`p z9AAkIo5Ob}*v_mh?;E_ACgf$L+qt{8gQ}3Pf7^nv!|YzTf7==2eG4)EnFLMqe_DcM zt8P1eTN!?B9~*75$WzD^`PVJMFOb+E#Mh=M4yi_2JVT-=39pq%b=GZ9lVrjzlbhjW z-yHNqm<`3D>$&dt{xun z8oXA&JLvY9NF8kHCPj9_qy`v(2=bsQ(3^TjY%cQWMOxo5Sf5FI z7j-K2!nO&R8u3XYpjlN~1Yr~mOayEZ*e0|vm35R(4YcE%)8#>{Ta+Gj2{=%~5F< z`M8y3qw;K(;W^Jpfj{;vZ9*2KI9_Lp#esy?s|0+LjEE*VsSvt)kaVD}clv5`+EbqwHmDJP9 zS9&^QJS(STrbqvzugi3z$EIZ%0XQKcQ>6Q_C7z#R{x8*_iO)>V>UMmvy`lZ#$s%58 zjw3%ZIm~C zk$N3){DB(^*+0z`J40#ynqdizcgy?d;pMZZDT@e>YPgFSW-g-4>px?6^yiZrRnW>S zDn+If-7UA|Dl-aGCOktvL1U}Dp4Yc4CrRoYOx_&%kzj|XewlFDXVT}%$klEy9yHua>U+7|EswuJ z136C=D0${wt)QJBx~UB|PF!80&KgYcxCh)uEzuANyrx0&W3}?GdNfT}=54>;f3b1%Tje*} zASQ^NUS9h&wf@-;BXsaOtu=l%6TUJS)Fas6JV304^ny!N(BVI^{!}B{qq}U#(kn`9fuv_hJ+O{sMmf zlcCuMlBRxg06La}qe9=mlE6!@PN)A55+nFKZN@4FwL<+BO@w3v^^Yi*dI{z9hsrubIOM7Z z&pT<`0P`K<&?lY5{pj66POL{RlQm+>W<$A$ClW%Y7Ybk-xp@5oKcUa3Ly<|_cut?w zqu=5?gDJK1pFec0!`6t?3o>QcC`H&JH<`-uz0WtbH~5GiY*{AUny54QT>~RVZwd%nttFlUgGVYrGe9j%vy0m-zH`|}@ zw(rL`vict{%I|kOM>Bc@djlhL6M7>%8yh=Yr|(Z|>u(1%i|_9&^j0Pwt_IdFCiEcx z#wrE_H(uZRz7oR!rMdP0zL0>Sle43Nk+YPEhw8ts{Qo*jNpAx@wK6>9g)t2~nytgPKS{V6XVEpq|i?ua1(0GH_tcT|%=d9C= z&DZ zC%UywRkI%zGq9{pPh$j|P0NQhWq*zT^rs2iV9r&ZX|&tnwh7(V|JhI=0X2$t7Dy@+ zERG>g(v5{BPIAEpUTM44BzC|pH(~0bC#b&Us2Hq4bp<12jCug6mWco|J|^i*= zqexB-VG^7$UhTR%<)yC?$Edd~6qh2>I^ChNr2E$pIw-qa2Z0p@Mqfn$-Vk~}Tms{g z>gYK6aeGW5VVfAw5m>60AF;oU?fAqXS&Q+l(Xp) z@nB9{5&K?Pn&1JX$4-Vy09(6dl3LbZ%eM&@u{f&6fmMW;i0z0{@e<|bj89lr=`gxfd>xI_ zEy8;c#*UK7En@7sSvc|~TdbKZonS;Qrc&Ps0Wo^iufNw#v>Fx^8}gxs9iap_f1AH) z*e>`rKqolCtS7FkEI0h(#`j$JWXxSnY(z&FKx675HO%`3|DO=-zv%cE(@8n3-&5Gc z_j2R^rmgyKh4VdmiP$JjY0vimz_&eR!1;96lPk@cq5ilQ8NNxJgeu?|ARYZ%{kuW~h4e);A?zu~QfBrb4 z_J`W~SqLlPuqAI#9nCEwP1m_FKL**i)=u2W$~0phC7U{;IXB~*Nc;#7`Gi*s8Sz?l?3Q4{6ip{gZax=G zw7c_GkUOrfrma*i*<_)t5V$pVRI0tSZ!91OIGT(edzdBL(f`Kj%rJ~UQ5fRu59`0; zV!US~ueDu;n#$#M^7J8Xt|?{;1d7;SI)SOi3_)_EViSQM=Ej~+)7NlgiIZs(VHeYy zhaU-U#AeIut*}q>Twa`b;WTM=#8$35LUGBoO(hEIP^LP4>>8gm(c$pwK^;&VmGH~?HsWZvS;IIa!kTp4VLoql~a47(&`qI z(|YK|5`UecQh)baKxn$<!5Xmxl zU6OLb+V#9)i6l#GLIKn1VsakUyp$Vth!#~VtIp>JyiD6@C9(fkm;O(Q+?;iS6uW<}0Uw?>L&Uj7uN-4}_7 z<5u_`<{J#(Afc(-JSlgkn22-korsExiuzH%Dxb_;Yvsy) zJ|R6rR}sR)M@3k39X+h*d(667o$7M*vf-u{NW@N%47yR?Sm8kuX zh-BpZJOf7?&Okx}T2f|0wApeKIz?zRF;*Hdqc@5w=jQGi;^ZtlQTKrw%1IojcFAP2ym<}j zT58K_WZk-fyv=sKc1YQxo3NpKrFqBcV)lU>3D>gi*5wy;?dUAdBIEA9;tJNd(ahi* zc>x{$ZuAY<5|&@Lj{Sni?yIDlf8OuHd)0xLW$&h9`LM4W4B!b6QXY0 z+NU5%BlVC@BUeXH#4zAk;3c4pmOy-~hEPTd;dG%|K9%KnAa{+Y8@{huATWZ{1ds8LTuBScqjRQy3NTpHv6%xb!AX8^KcB{qVV3Ax{9izFK zU+FL3#M*e-QGN8%zu{pK!CN-q5U5vE`b^z1@JruOr)M4+H7q`bq@d`4A?A!D(wVE= zsqCQhXU45e&Oa8Ki*6rj;IReYHFV$rb#c~=BV9oh?BK^W#%l`~JEFE{ULUK^Ty74( zR-~uj5(fx2yOaBJ2 z#0axf{G6t~5$i#PR4lsnIQ$NATb*&J7cvth5!GV)&mdaU*aBgB~M5yv1 z1l%iNxXr}O zmQsvX5mBu9gs-VIZyXj$foc>Q)hm8NZ1)_CSyFqBEI12=@QtOrwic@qrzymrPBQ$h zW}J)qD#zwnoTtt(rXyAw22yl>Q`6W>v12vdCe>k+ohE$3j-3wrBfnoEjrd542bgq+ zkF9!y(Br(K#&1w#4vY1G{#OG2hw9jnvyC775tBdvz@U8plM-0O)XdP;=HClfwIAlw z9K(;#X_bT|GpNxZT1{9Y)+0AxpzL=pgaxWh^iyM@wFZo4x=p6jg52f94fuu3JMcIx z`jc3(YjIe`^h3@Azsow`&J_}p22JnKbJvcy&-Own|M%-FI>7O*A;e{>)gY@*%7_bb ze7uyAR$nxLnb3`~+Sw$igYtF@N++%mMhogDWFF*-aOy~4VKJ$zx}aDue>u9VvrKQo z$-x4*p-&+s%gmYRrJ1RzA~kJkB&gH6S#+k>Xep^~H*WEY&in+>K!X@%j+*+?W__yT1%!rXXDCTNLpOT zEL&NHJLrCkLr>%(AcLoB+QkzCyS^FWeJ+_dzhN>N{XVxAJ$ZwbW$`59$gx% zqVPa1I%^x>6y=?WGW2=pvolHQsqx8@H8e$a*k8tWA6&iUI$0}*2LLIoYaYK^r7PYy z*D-%aO*V<&oWW=bHdf3Z*#yinJJt^C3)E_aiv?{<0K}1ey-5%0%F@Joo*YGKYi$(S zE1x;FhxeJN%~PeZ!i+9%uw!Lnq8%>NhU2yL>QmCO`DkmIxR^V+J%&Tv18xo?O&bdT zZn813*sDl!+DfGqU9J9d765}S02W6z8EE|jZrB+KZu7~O{6A0G-AiTpf@9i(Ys% z6y#=V?P2nw99Fv%Si1YkAjW_-%ux-Y!{y?Q;zKZd#Z&`=G39A~&xKU&jW(*D zQf9Y(JQc4usXeh#zYw*d2@XB->bwN^iVi|dINp#@V|^0~lvs$6fxsXCunRGRfaNj# zYP=drr(~!NTeGXWz2%yTw>^KVxGqrw=IcRIQs#$VVt(>adBkE?!6`@jh!w+WXIzL? zDX^i%t6FuST7|smmE{5~r$r#gNx-5tW>Gb^C~twVdy44ri#ZBSE+}}x5?f`jk?C8H z>#{oGQN38{4V zh(o(WIQ_$y|6MYT)IOR(qTY7(;Kg228iE9QNi2GcYWU`qehx-{AeFvB&GVUh^AGYa zY;mX7rZq&f*CLH_IvXCfE~PYEmYhlM63wPDg9eh?wHHCviD?w!Ndc{T9deof3e>7+ zapV>rYKT#oAFr5_vx*#0S=D~>QqNgVMjqsrcn$h@@V67Z&QR^Ay{G)?QvP=i$$x87R5$Dv1Q2*L zq_=dW#)|TEr07xhNo=>02?)Z81OXvQdxeR6>?h;fIou98lI}El2t9UzUnmAEafyU< z5J}-18XC<1;`}ks%IWF;2DrhH|6!Mk6@)a?rJ%IuH-tp{egz7LCWTsN=q2QpHq*bN zuF%*$H^Og88+tsxN=Taj&f>%e9q`&{9C}ymq27eM)-p z5vuQ*S{%uF7PUA9hsb3NI1fpz`0K14qsBvWW>o@}%Z>?BlJvrQAZwT^b`j(9irB$avG{$o`h$N(f^%uck}1`@3Ht@u#u12)Q-90( zaE1^VQjrI3v4K~m8p8S}qJgX!1{0m+2Pg>v4QL&Ew`CC!p0RY(lCuv>wC#PHfpi%$1aY@bA z9z_*}uc3pvVax7UcmJ|hbJggTjeD}KH0WD?Q9xodflV15s%blJvv3Ksse7{m62HU; zwBK$JRyZO*ix{#+G>C{S3F9qzs>LG0cR=zc!!;Hr?WGgjljUaO^K=rb$qNut*aw z>H!~s=7A`D7$!X;YUn{G$i;k^WB~3vuj$!IOWqWAoAZlRM8IHVpvCBQwe2|?b1i1* zc8-VEoBO0N{|KNLw1=clfM{mqltxopLn}2lN2{m!Y)3GVQb|lrX=f--TwL?wVaIX) znxkX!OU_KhVUSob*a?SF&{b?oaEhF8IpWw3@AqKCQ*!9Y1}{6Q3|7Zt!~SUkXV}*R z?u-Y{d$7CntXk)_;O0WpzmFordO9MU9O-2F`O`l7K&~{%w&7!erx*us;{nukk^$5f z#MZn(jW)3D^^J%xy$j+vgD|kfjVWg3WP!k6h*RL-%5LR{&<77t2qq3Njvtta6(c7D z%xh77{h8l8{VMRC`0^Ig2523mN_iAxfjDV~bllW!nZ(qrk?VncR_kb#i_WV6l;RUK zGFH+L9(7fj|C3~xt)X7d85gM@Pdmy_q5T1vk~^+8VjLyc4(cn@g6n4 z(gMpk-yFBswn2#$Tx`UdK})Aj*EcbF?K394C}Grjc{uz^ef(Ora53D7MEO;QS)K48 z5G2+@bj0}0V*gfbDC8m8f0QTngXAHDjSisYIy*bUFvl-V#_2TImTFJWRbcvtlR#t@ z|9z}Yp0K1gd^bwc-xu_ZvWg8VU*snL0EXyuHO^s4Zo@OXb07jFh6t zH){S}Vl2#9A})fWXvl+At3>e`Q%c&A-ARj3j(X4nkvcp%1!?o)kF$T$d&Q={sDFwT ze9`(usb7qWD9#3ITd$+&y@ zf81IZmTGgXPRz0Jh~k5dQ}$~L32DOyt%RH)5=w+Zbs^{qBcV_Ch1y$V>BxdL=<`UG zBr`A^WAdC}l8j4ngpV+&j9T~M6db|RS}`9;-%UvWRuJs!!gyvuSvYRB0;IXhKPNYF z=x^a5=Q`v}qJRR+;NA)H+WrrO0W3w{+}f-O?lvECT7T?Mq0l0eQyf9nfwmAfb5TT#eov6iE>yfvqXR^VCAH=!m>!(iO z8PWh{SF)b0PN25~)WemrfR6Ww!$kz9&M`MemyuQTSMJwXckNnZqVbuy!P(Me`sl2{WtkrpxZ zWE1s|<=ccwoG%6rYK46iNS`ovwH5EuEI0=q(d5R87-mpsaOUF^p?M~uCr zm<@mc)5!?spvvk9?VRNa4uuGgk{d%fLiG9#$jnAPhMPtdm07D6OUm_UCzSQarKy^f zeuih)|57U9zpv|`+Gb%I*E%Lr2yvzOKCO9Qx-R40kM#6>K<#qeDY_W8LuR#-g`IcY zkZmj7x`8k&1~X7Uv#Xfo^K`aB%X*0Gr6yEl%>T7LR_(+Vr7k|Y(F3`jcm?L%RI1Ar zQm-o|qMp@aiYT@-jWQZ@xxhY92N?_&xc_aOqO;}3+^)(dr2lnu++vQ8{~;|fb`JV$ zbuq$ET|Py3K}!BSMDSNJCbRjuU7H1j%ThMnlpNf&8Cck9(I(>+WaH~`vfc6g3c7k! zCH0>ZQUp9E+XY;-6UoJ*RnHQ7Vgww=WSH=g#%SxKk9@_QRF3 zYc!CV*-jB{je4^U6JlKFhxe694W^7#k`!4I$bWS;J-n7#l2d&b-6EeMY8u$iy86uy zq3O|_uvx*8wE%8Dbwde~rGRr?Fx z60yv*dOg7@s*XpKSUd%VMZ-_Di>h&Bg=Cw9m^+5t;<&F-I6a-A%?{gcP{e3>m6?oA zGz~r5Aa%FI`BJ3e;F*9c35KQiOLqmS?c7q&Y?wXH}R_v@l({3nv`A^-rW9)%e8hP`dUN(n_V^;K&g^6Yz~#z9g})1Le=$5Ss<`ez zC!G^}B%OoM<~XWxjKrTKj4cX-#DBu)eTXCk^2OLfIPnbMawumDK+6$HN^karqPzjx zAC)9gr!fTl!m24ytr<|Q(erw(oo`h1Lsdv=P2kHroKf(r6oT{~j@0v-axX2!FRdF@ z@mn=+#H|U<+NJT;!eAp1wkN<4@cjt4z14Obv@Z+y4{T20P(4!GgF2BT?Ge8x4*t8| zf3D!aA(OH$AaZ*L+T}xw$BAjwEy?w_vop&tn5t@vyZkf4yx3d zr7n^aDG{M@6kR7aSEvuXY{cRXjPOYC%$-G+dFIvw`PYOY}UT=N4{hmnv{P$VyXEgmc?WlQUwKC069-|nl@Kj>b9S+`1x`AL)CH?k{Q0(l1; zs*dkK7qt5*=PreB>>H6*Q(LLN608&*le9sCMaJMQL63Yy%eMZ^a<#;4@wGNLKe1lK z^|t8=i+4HotQK!x;f`-DMk~dQfrKaAqi{p{Fnt}5e2dcuXZ*Y6gfH}B!Rb!}-2KCE z3;$0}+JDnS|I3M6q^c{AC5XZcJlY@8Bq%va`?S6@4&6mgxT4&QiNtHhX!Qg$ zQ!>8ZMET3?dVc+G-xG3U(X0a#CT^vDdMc=1tHP0MJ-pcYELlxXapG?#GP3>hNLCc1 zJjg)fidWdK=FC3sI))Id-4QM{jmIj-)lph3k=(?O1%BFv8#~E$UGqlApC@S636)5- zlrTHmxhnxB@*E7;hEaXX{?P=zCmlpC;@<`WLR^6`ZbYj?aJ~!v`nxhUOBJdEjW4f` zNg3t4Tpucjs)!6SOlPl-0p9|7|mZDt}xQy^URR+m|{FS1Gx`Y ze(f02o8uAK<|?;O@?(#i8Xd=SG|CIo&9vZLEC#5C?HQPFr}=QRGRL6!S91w~{GR}n zaXRf_??QR_K`i4S0BEPvY7RO1slWpWp@7_2eH2MZa~Pt0BHRiGbXNVMvPfruLwqu8 zM0jkX4&z8R!r_PNFBldN%pRkfq?FdpnWYK4)=e7q2rG@7zIlV5L_eK3zD2+-73dUrbWuo8Pyl z$vb@Nw~o;CEL;wJV|L#ZrAE}9qrJc2@$v;y|B>(I2zm5l1scWkvtD}5{A~PY7 z=^@;RNq4FYpUOR1&ivrbQ#`V^5Y5gzloJLesm1Ki>&hcy{f z&R|;5YSwRn$@ZR(<+VZanEDgn=qlYHD=lQTOp_>X%mqg4yjW0R$dwHJO34$pV>n&r z{M#kEbiI)WmZFHR)MaN+5-R>*$7y(B`z@FGdI&XqLj_$OJP(T|W*+-jt)% zo=g+Wtw&jvwfO7PlT*q$<+>P~;x>W(Vcp93Npd!&bp>C8MbYCY82-b)Q?@o|Ss?9d zi2?0CQ#I8K8aArU-w{?F_1VDSK=?XEA!kU#lC=Ba!1f6YmU*m$8*h!g8gU^Z<+4!{ zL)`iLMXzSORkxrZcc&*3IEmj$Ob@BPLk|w>YWPJYU)U-llx8`$m~DA6`Ef<-Wwc(C zsaIEjEZrt|8zL!R;CAj0z~@`kK-nE5C%US3#c@;|Qt$Ei7p0%gXmuxacGaPq&DI#5 z8HTsk#+UFFYw_`^TZ1~FuJZKze0gFWcDEn_A+IKr2_U_E*Faw;LJB@5@vC69#y5tc%2g51`|sDRtoJIa;aVYsZE|a=WLHZ4|-m) z&Ci-LrK_o-5HjX@)t^vpK5aLnNS`Cw`sj7gW;`<{*fWm9()1QW7#mMKp43&OF(#KPPQ4 zhD<9&B>SakQyLU1H0ZRy!(CV9&KcPW+;U+ZXwVt7J0OHW*T?K~=eC+Qc8cb!dEs2R zDBwN7rzD0(2OO9W_aq{h%u5L}S%Uopr=V4`d}7X028rpl}+lJ4S5dS)b6AT=)reCqgPtE*{rw;o*X zKjW=C^o^lwNT9AP)1|vGj3$)U*b;anMdlboA|qxG&L@r!gAh%>z)Z9{ z%FRE`a-L-;BdJoK`eXeT4*p`W8boZ2C|IS6$|&&vYnvz&=b>A5vo>46y^+ zMH=~))G#w)7Ai|ab%Iz;v)o8<;^c*Snz`CR4|)>-D(!Fy`+kz&9w$`~;{AQnlR zSbxSD=K(>U{v~HVlSgyUH4X-0l1?#^s|Pc0i!G!BV;sa#D;xzvVSV2_eA;WSwEVZv zZ3QTC37n$9zFvGyPeQIK$>&Pm2h;(Q2^d5*8Byiblt}hrz}1VK0GaqYjENZ-4H)pK zKA;}|rj#DspTPyI12_Ftj484wk8w4~WxR2nC4AMG269qLrXpV4=eIYj3Q`IaR>+llXH4hF?DgXhN}40Rc%D$4 zELlk*Sw&6F4%tgfvG2AUThQGp=IAp_DDJCx)P(nq?GRX*;CIHY7g>(yjyj21q<^}w zr?+)F2*MBe46))%g8*Mjh@UU{5o~tr3{Y@ptTMq+&L`#yCbp+pBJt|+0aL}Y9Nz?I zUYBj5D|#SD@%?XHHGhUZ7RDO{gXuh6DU{LcEMIh-8#V3hW~S+ z;wSD@K5R)d=C;WeE^Itfb-*Q96)%8`ghOFM5`8IYGA2>5iz1<&%L4_QD1HhpMfhWH zBTJyDcB6Heqi@g`2$~500`R7sjbC(>nRY&RvWH*eLA&F9yv=-^={wDL9OL)3Ebk9y zKwkaA7>Ei#?R8U&&!pD*0x^Ssv}eqdd0zne=jE0H?|%OP&!<09-s`p%J?Bn%h?vi2 zq{Qn!drMkx8ET9V8a7ntISMI=RVy=T%4HHk*+VBUL#_(cNG@Fb z%~JV|@&_lIW9Zi+5xRmJiJMf$KKGOXU zp~80OO$T)1#)*cWznr&FWe4L+8kyHE)Fx=7@FcT{WKDY3YHyooIlH9xwaA2T3c|fC zrOo+VBal}Fl5D!J!^ten=8^-u6Zs3YBaJ905{b5y*D8a%ORI8Cu-4`*!IwQQK#p<@ zoq({UBp}#%QZbMKyPE2(9H+t9Y7DJSx;S~QQAJE}2~+UasPg+lpZwEkPc5(Wpg|@x&0O;)9#`UHD+qercYJ)2n?3uEALx&xx1no zC78gVFlX1tp~UoO@|yfSjfikQC5@}Fkcib9Eo!s>D?V=O1jThJT+&2eWC+wJEbO}6 z19Qh1d8ec~*9aXhUYkgXgu<|5f=}e`aD6a@T_6NbztpSNX6Y=Y-#5k0T37`J&8`t45q|cE}&`jwR zC?7;*>L^d*sya*csCH~;!TxMmE_t4s8cw@k6BArNRdsr$sj%usDG@|V*BO|e_XX?y z6IzOH*Dl8n04$8sl1EA=*Qw3oEyZD^)@^OKk=A7dx68CwY4bs2TeXYeij1yFRp3V+ z?2aX?`V*IKb-wK#t&`U&BB=h=+ zkk9(PH&iOeJOnBr8^H#(S!l@*#n`ub6|JOr-4OIE_$LXrqFX+Xke(Z z{(z!iq@8y)3`;jVCBdC`}Mr&?F#xi$Y?K) zMO{2x;fM0Zw6>(FF_jyy(6|p)uSa(z?-m-b0zTNlay=Y!z?qRK*SLuKeF8*E`R672 zL;}s&_99c}aC-t{A|D8}IbPI(5BZT}dNjVunsaaL%dNtAV_RR>I0FT_Ry!1U2BjuW z5Z~p<^1xY4R$zd#iiXkv`g+**n%0|-vFu{Az&bDt-=^#;Mtj6-}EqZcSklPu)(VFs5{IH6*w z{+l8!7<;AIZ*f6CXhNb+Fu6g+PH_W{ zAM)Q^oVyfb0M)O_!R2>elFK{pgdfg;W8BsFn&0t7m)uHf!$lUtlOA#x;i=TejqAh0 zpN6mFSsHyEXhLy@L7G*kPPWj`B^Cubt|VOY4F#1(DnO7VHW%v46V*TnYFrE@F2-V) zJ-s6AXKLQ+2sy6OcsTNSv~DsG$tz!0)GU`+GTK5}HBsfpZINrNv*!e~w_=3S8OY+` z6+@`L&ZgqcL3wtl%pGSB``)6NX~O60Yv!19aK08qf4y^`=fQkK!&@CY459$TP)%(rK*p^C#vwc#29^MTU11p%mcr32 zXL>0Ojef<}>HETRDe|ZcUp9HJNnWgnxS6&hfytiS5(p?YrH|B!FY(V?A6WQ--Pzl z8!q}ni=WED-X38UgiLA4GjzMnz1gWq7>=06LpZ{_Q7hBokKp`V-7$F@2M4J)j_dQQ zhuHaZE*|NKI46j@0maqmbL|m?PR^~<(eJaxlL~wIE{yplF^If$2~34{SQijU4#VmE zGFds0WOFUE1&h*4-@yM>#h1W#DIfA9+7WgHOsB2Ax^QEXsD- z!g-j{I9YmlV%O8hrZXk_QVJ@ku$F)zNRBo{9<*L{q^ks*I!kK_QV6hPzkOZbqMTs% zS8r4KaZQS<_7b~G+f|cRHnsv=MmrwY;!H{gk6O19w2=PNfE`o9sf_-%=C6l{hO6@0 z1M6RB4)xPjbkoz!u1?dASq^%;W{wgr)XLUC%YiEdYmV&?P9>@fU*+YjmSd`2?N-&4 zJB;tE79rSh&~BCVilmF(P`vuP%MPiRr7oXV1wh+}&dopDn&!M;^G#T$fBNbN~mMKxJ64 zPq`XfD%$0nDpy{wYPJb3X0mRlOKh^wV3{s)z~E&PhC~V7cAnZ?QXOV752gHs9X*Et{?5)XQ@ay_&i?AwY7D>E7+VObJ>jE`?d=u>)M zBeo`+4=iIwUitwOpm3}_qd{wo={z*-TRa8WlZ}v}K2W0Wk%<@#{|4S+xI@YiK}H_j zAw8y8uIx{@meZU#tdE+GU@1m~XZ8>vI3}zPIunOfboe<9=?P&HhM}So|Ez=J`5tVc>$^yyiO`q3P}x z=d<39Ll622Kz!%kd_{P7rwFoPE0ed<4YWPX4MP3!D);PT?k!8Ld>~EIeG29Xv&Cbd z?h9Bj?2Pf*7ylie`2k&WxHE%7#INw%XHt0h<=BBQ9)FkO2y*?;4ZVEKoN;1}QjBsp z{5#}-je6)=Fe8Ycs5k$KdZGV=sF$-h`Om?#Divw_A88t%z0t8^38ZcMogbRRrg#7m z;T%PNxfUcPl|)s<;FM(5;*cxVM%gaE!(NOB&M#<*L?CcD97G+?fh1-f#GUo(4W0;< zNmFxox4#+J8Jh14*U$LBE#k=*NaideM6eDfIP}SoTnGixL8YoU-a_YWIDv+aGbY*v z?p!D4FEN#!ad5Y#nk?C+*4x$e=cFJ1u4^qg8OSQvbbvjj{OnI{Ejmpp1=#txBZfilR+<;Yt-J~i& zNEWK`tFYb>(+*U;s5N*HQ{E7*_07k+s(2$(YwCd@-E~T5-Xt_#jx$EgZtaEN6rp;DbFXXX9%jU z;&?ra=8JYd^BZ`>){ZlfnYdE`*wMt?Mj6cR2W2+F6c8%$IUa#sF+)YFK~YRG(WMfQA=-AI;^zrSH=VMAf@nP!hlA1-xJmznG{Vmd?{DtGHF7kUg{dkn9|{!>m*u zUhy5}fL&!~nU@ATPrQX?>b@o%$kDRL{0jc?GFQCTk;kl)!{mRWJn*sqk0-)|6+9*; z|F}5Igu2g86e=&ZA$NJbW(iWM_>X_tjs6eZo)#KL&gQx~)U>fxH6F3{?S7rc?5=l`{_*x6;{CHa zfqUoNXNI}+;q*D1C_iB+H%uyILiiXW3*XM~@c3YFFD!*0)(^#_R21c|R05q3-gBtc zXA0uj{uF8E!D5dPfZ^`~^#DpP~tnRYN1RfRA;=4N* zKbhkZ7{A54g3LKp#$v9o%42Z>bXdG}yW7puNHY2*$RK=Cy}3!3j5NEl)UiLBc8uES zn+~sZRx@Ql&5G^Z4=W5 zFDmRkJ*7PQUWO495qSoRu$1e(|06(zmy+A6%?`<+DqSk1{qd%^9{2NBdh!|$V|(4B z*82U-pa*5Cjum8eetnq>+E$;TzR6Sen9TsRuG68A+l5g|>f8o~ zv=WIyRTCWvi|I|trj-eF)o!PFv<(e;wH)Pp?dkY=FrQnCR`R2b5P8%^`Gl3XGFhgm zR_Wdi>>W&YU^1T>Q49g`Fob?Y8##4TcTR!_BL?PBAR^(GOaQIH^RSUXAcA7KL0j-s zD7e;@Asq#)9`ZkKdYcB|M%X>r*sZ5mDs0RHrkm{1%?M{KSm8v%2E9U&;K z6R9R+l>APgPyZQPm3CN)|5tnRq%O3zXVWy$95~W17av>eVL;$qjWhx4!U}r_f==Y9 zw|zxttFU^$-EpIMl=D?t2l)91IHeP3aW4 zz&IjiCaR*%_tPyd##T%<74#?~AP&R`wD2R9%#(OgR#muM1RH@cC!uCXc(}sW^VVZj z$GpoaO@~mrEEpF-@K$r0AE~g*1z8&bTv*pfi>DKfIN}^|tB`F4&;S7?BwH3T(ADFp zRxPTER^jRv#ceriiH9xK%b$96 zS8G6ARI^YMN1lo*oKl<@m==h{IS~FC${Jc}Tbu8<;MBDYEn_rn27nvhkrv`rq=R{s zut*tdBUDFw9$X7^d8It5pIaX(b-RDX)@i8}PQ-^8+WqdX<*XH{_2~4YskDVrU}#}d z(~P3UE4stjyQ@QpK}0S8=(`72gK2)zQQBB%wBlxM2Qy|wL8zCw4V&5u+Z3=p|@t97LHHTV+hr+L(om zf`Cd{F0bl;tWowYVk@|l8u6B9D=O&jA`Ii3fVz>eWWYf+@R{D{@oj*U#)GnHC|Xl$ zE5;hSw&&W1-Cl4^v_wiFBU3VqB}uvqD{k{rAqP+u2^)wush?bhFrzAKf-;-kG}otr zPQ`4;Gr_#HKDYt%hNNqufX@#%`v}%0#?Nj6oMk^twm$g>7pzOZhk5YTWi?m&L`kqh z%su950m!p%4gpu@dgK9F*k*su)TND1z=!-&$lG+b0>u<#wkNb&v{Py&K#+ZbHndg1 zM-m+!%LuwBDD(tHw-j%9@FaD{E(ov08upF#Gs@L>xzXz~bhf!e;i*397IS@&@P>zATJ+`39_4mY?Np#zV3o`mC8CIjLu3`*q(- zdN%1?pTzTzM|gD|3)kujZW`hEJ|08M?NBoRx^Ya}8kyk2*@yPjELsDb8Swpz5TUEUv-z9C>=`2?WCx_U z3n296v2vS)&5GzG011jQABXpiuyG;;Rh6~P+j9x)$K~9M z6CW`)1bcA3vF1$(F>625&Tr9KC_rO>nnq?EToF)4K5b;%IhI$z9m*>8eY^q+Td3|C zZ6$gE8#^TEM}|8y&y9W2xhNwRyeJnyJ1<+Xkc$-uXmP@xqJVX^bF%y%{329+c-ko& znuIN5<7K@==l%)0N0FN=K-Wf1`+;TVuqyI?h4g5m<}6mX5a3$XzjCbzM(F1EYTctx zSM}si5t)`KuFQH{fAQpHOs$ShxWc3)6>vFEoTgnd>`92Cxo)Bx!)}jowr{dU<)&i; zRs(BHJ)k@9&;G=EU;u-I-aZ&mD`E?%E0c?bf{N%aM!Qp(7K7W1wV`@r9JzIRx+4}; z;*(YJG04QgN*)dYkaNM$JRX9zgzTn-Cu(kxAmTkLVVDR}TJu`jX2d&jJ3LaRX)z8= z9<2nm-!mK)O`w9T$z|xgVmcj33k6PqhP%}%EfpMc6)Ln(j&08rkqIJ3NV%Mov;#4e zT@!C{ipY%+DyK*`a@$xyGtHt&G=7pnPIdfd)DvO!MA+!f3;K0lfirNZx5Xgy3SU%4 zB*q1sD)NC=Ip6*3b*i@n*cFGoaBaFTHn^$@Zc_7@0m37ZBi>KRaNtl9shOnX!I^SW z$eZ!6LWyMKL>^)2Ee`4Ru-6D8)4Zd;*}&yk@1ZWkct`|mHrTpm4N4iJOFWrK!Gu!4dt~Wm4*FbUzdvR&Trws9+a!1&NJZ-*16FN zVPbnL$%RyiF61qMM)v*`yZ+}XjxOyJ5+CprY_g!ofX7*r`@0<5*wB6?Oex!17vYBgAnQKZoyuz7885|7@LzMO5K}b3g4Wc1*Hx~<6lY2?e zhY;#$cf|r$@x9=1)jusY& zEz=~(rUGIv{E3e(Ea7+osbLmWyrrG3I7*j*)HE+HL)#Bg7F@cb%6c7u)}LhOG4c{C zr^6A(<2CmE>r)S`WkpF$-B^!4XYxv?3`s>DV+CyJEKEAH3bzQhF-5R@3B`?kHz)sbH z^+leS0d$#%ShJ|g@-J|6E6w7yI<8W>4>^3mFY#%fG*(e0arMVmvkz0%U~7QfWB|KX zEEftW=M!2wE&nc~&Gbf%)bm&}bKa8PQKG?e8pf-*>cye*k#uNqfn@IxnF2Fsy48d{ zM9+O|pTgga$lv%2Kh}iT)U020%`F?@E*a5LM2NDi&KcLd3nrn1oWR*Rn|J~1@sV+J z)S}|En*?$xl-B7nsACbZeAE|`=mv$#A40|tNx?@F+0gOpAizl@oBg2M@@00U@PTRf z5@(HY>yam-p1dfwZKTj$Vg8-cq2tCbKHY-hKqRuEpORP<^A7@**4-I4^<8d}&98m; z*wbf*DgIoZj{vNbKjW1p21j}pVR`8&EwWPXvSd4zNtkR~b=6f_?@QBoZ3(85y$#JY z4a*4jhKs)`M@qG%yznVt%9M`CJpYn5D;0I&$@?46cUHCE3g>=9guXNSoTpyiNGAf2 zmOC+;92pt>7_cEGgz4v7VF)iXpe_2jz66m)hHu{FRu*HKJ}?d-<q5+{HJWuH%~@gPfp!)w~&q3JMxi&oo!X4b_LpdzP?3W6SStt z?0Uo*IV)Ar1^Krf9&rAS^2iOq_JxPCya{ndTi`7_iTnV}m=Uxb@$ZF`K}#3qXoxwK zIb-U);&SD(sa#%r}Z}<7WuQeULg%3KF6k{ zrx7~P5vd9VT}X4cOwm5|?4r75d28m`AS#Qrj-+`+MXBsX@%`Y^B6u0mK3BVhj=hyL zDT$5n-hH7aLzXz|1BzJY;xonjmau%rlXk@V9_9lQmQ*#t{G#*hEsez$K0`hDI z+6O$!$34`SXYXUi@xk0yjzYK`Jr22W3I6^y$JFAf=*N-2j1V<*$3)7a>k|Li;p$=L z%$TBUN`i^|X@<(u#tYDC4B>p7L3+z1KGv(Ms@5%qotW1LR#K#PZb6N3-%hP-+K}1p z=yC!D9xF*_%AzQQcP(g>z94BtlICF|r9*J}XxYL9Pbdw^AOw0)^Z!NKI|j+xZQX*q zY}@88+qP}nwr%XPZQJ%P+qP|Yz2|=2_ns3S(I=vRWJW&uFC*6)bFMW9Fr>p`CpmNQ zW`ED^uZDskZ0|uUvFVpz z?J0(UhpWHBjj2s;jLHcDXUIu3Hz76&$}Z-}Br5S$@AS0HnPm3RcFdA!ao%;|w-Nq&bl zAd#adX9R9hxFWy_k^%X~vG^2Z(~f^m<@Dz>4={&HVy zG>OsW5-GA`XCPIuvL(0Y4RqBQs^O+f4Dv97cYBy5wd#*oAvIr#w z+VvkCJG`~s*=2rfJJ^+SKiuV!pa%bYKj&d{8&OqhZ<@#)-o4!a0j1}Y@ylRN^0P#AW zV5?!V7bL>Tf6mf>p#lo*IV16l&YjizpJw3`l4sSpp?X`6YKu_)fdVydw!!Wdq4gv6 zXJiQRKtbajA(^u`m(W)vYk#V!^@g014NbFM*g~AL9e1hcn7d1d0z7kzf>TWB19G$J zCo2Cb(v7_7kgCPS5h!X(989+k2cs`FUH~`=vOHg=;5e^Dos-TKJ6V{KBsckRtx#(6 z2Iowc6Lcp34;Z_1ertl?uyhfDwDM!>;P-L~4p9vk9Q6Euh*OhDK<~A#^vB15JXbVlljUa=mmP)tDT^yRo&z#!zmKRVjsZH8yb@QgIykCZho7F zj?ajlXDq9FUBHL34Y`>FIlJl39JH3iuM2&8j-JJ!hU?hR%pv3ECbpWd*b?(7Fy zWhq;Nj`=zdFTHo@0?LvCmp(46hTG?0$Pk*Q9LJK7xkjb7LBXWRnKZR@H1oQqwN{nI z&uSTYs$vbXSw>wH=*IiQ)(~w>dPrQ7nBM)&Un(xo?_!GaiLJaY)Qq#QY`&vs1_Pl~ zbW>-}r=7=}czQ)J>Rhm7hYEF;eXHj}g`%|2QmfPk=!E#RRg4G(0XXEwii+HG5jdD=uK}{zd zPjmt)`}%x=^cpkOqYDI2mRRvf?%z{^)+Gocx~^;(--Be(u6hj};bKKgCrL+3 zXGKq$uts+=J&{1OwOgB+2)E!2SZt}N5{sQ9%1~=ck1VF!2s3JWYzv&n^7_7a+@=I6 zjhbOz1pv3vDaZZMYCdZZVl*x&+qS|{a`x1$NI$@!(qs-;1ke0}GM(FG#fB)VH@-$` z60B;jL9<-y1F)a9NcWg5BF_9RJa4zLr?6;mU3HXvIvt_YU^Urv;SNExIRgi`ek1t} z)Y90+(ZjbR80;X}QG=pct&hrXu$3?hR;ISg4KYBVidEt}zG7)%GhWYFZ0QkhM{o1Eo1N;}U^?cJlCNi*t_M`6 zLgOjq!-_vz&f%uo8mH7}dcK+@d+Hh7<~Zp(ers_JtZ1>#Oaw}{t7pVFK+`J;I67YZR3*sX$IAnPyxDR?gDfh1-Sdg@^fT*3DxRO!P1cHcpc!@j4`E5hJH?oIGY=Wd-S1~eQJ_Vlx z3SJY9%b6rNr^B+4lpvZMMq0MWEpc}_9U~B?r~p@K@-c=(ggHdqV5TZpvoR4SW03B_ z2I}&K+n#PuL>AckhUjb*ffYVLV6NXM}o)pwI&u(Q^j?XBj!X6qaRX zn#hBK=U_8UG#F_K8U%Sa+7MDMg0|ei@wyucWS#Hnn}--AVMv%w3JQgSVMdrN-85#n zcMmBb8Br{~tWp5HIN9jS`!w=s&pn>`b6%T7umkYvfn%5GF=Sa?oIdZCNY4*&TA{X{ z=-n;wR^Gf4p-_z?$;+c&NMH7$6>1P&a06&XX`cDzJZfX8^(~M0|8OmBbb1F}`4MAz z{U|{G(Ubgtxt9JL)+ri0nCn}ad;F6L^$&gZKXEVdUlA1}-}A}UR8@%;8wZ4Fp8Vwj zevSEZ5`#)&R08?oqb?o&dp{u+S&wfRA9URdgJAm&IRn!>1-Dim)-A$xn7A$`PZPdV z*AwiF_n*rtHNQ~fPzVfk24SeePK4$#Hj(Y2TCz;!d*cneiS*QaAq58&q?G4ik>?d) zK2N7mfjkG{r_kGnNV4$6(yN>%Y`(%iKVEiG1nH{ID0NLwB9CMWmlfuY%9AI`P-TZ; z(E%|EO6i=Am9$rzBteEYQXnzaJsd-%(8Ki}t}%f=)SA$7kD%|#DUwKD)x^g{%7m=W zn5E;`L5!(MnD25n$kjFyjk0S*D!X01*mkIeS){_TOd_~AB-WHYt)K&|06Kp!2fBIj zKRo!bG|A-pv$$+-rK!d`g|Cy+hpr{4BC%s!co>#zt^Ur0&(`lpDHo|XS!-}#J#x39 zR46Nd#$q`go=Tt(TWzUVsJ0R9rTk3jQZtQeVRU&=36fpJ5Sd1RXdSmpovL1BN-xA~ zD_?l)F@BE4K)DaG9vf>uOSHVI30AWU04E5*1+XM2`~$m-yCjG{;tc>NuwqBWxMFl- zt3ogzMiB&kf@!5YQKzT&{tZ3DTw&^MS|cwQGHQ~|m~N!r0lLj%)pZgVmFbOt!h)KV z5?^&Ic&&afnq}aMYH3#_R&RFkAdDH7U0vT`_cC$cH?x12?G~f$yV<;$ZLf(KCY#dJk7&Uog%0Ja}Kt(RkVAd1&yu$ayV zb~Gzn(3cJg#3bPC1R{9g+-hu7NY5(aXsEoW{5DL#dzanOX_pVEOQ_@D6TpXb9t1|E z81@_ap&SgyCU+opFfr1FMJ2;=X88o_k8!%ngx->Hw_O~9fXiSRgioMcUy+MN$dXMS zmO32sT&@UR=sER5SSTj(BUApu5(|!C=Ng&Mf6%35Lt=aies&M(kA6zzzuiHC&JK=0 zhKB#zH~)`<>VJLtKOAtibz5X(CT(~iLwIm@Wr2#s1(^7zqyfUCrG% zsVJ?{2G5Y*f2B2P_D(U~`eut0nqyuh?xN!jc!7R?;ZjNGH>xwowjy`>1;|-=}40x0{udUb?h(?XF^Bl*a^-sfEmV>E5R$cs13W zD4Uh!HX`_wL+km%0^=#1ImqmH0BTA1=6ctUN|p+e`}8zPT$vmaC?G1F+Bs8pI7*t+ z2&q3$I_YZlTe8~b;plM4m4qdcJc?mE>>AR4nXtZWb)pL+W2%fZ8Jb_+8Pdwd{l}w# z7tH2(n5A`2h5G*b7QW~BjY=>SMZQ}o9ts$FBj%~TE17pf{|-X45ly{9`goa7bgK>}0r$(!;GaHuPSs z41Gie<XWirzazqs>IM?7#z1Wdo~42=d05M|fQLl>qE|*Cvvc1j(wB7yiC(ON0NPXNLx4=`N}d6`HHf}> z`bt-L-nf5o+|o>kZ=A~mC~yk~fGbgN^m)dMKMeT#*!COunwXvSuj;JB5ScY2Cd4;u zSeR{i<8`f!mu%suAN8K76&kNT--lGzGa5F0&)%PxNw`?Ykl6U=hZm4J z+TH8t4V)q-ux}|nR?wJ)@aG=luQL2U@9w}{gyPUPX4loUMEmkNQLdd*vVT0QswJaueeN8y+k>Ru zm%fS$I8K-1Me9Y$v&@v*XNoKNTjrvpCE(tYnvBDcc=m)q_JU&B*X#WNQP~W+Y4m)EO`eFveII+HmNN!Pb)e85(dx^fss!=y@jc1)zf@8AnkY4S%2#%3X5}J^5m!BaY0(^VK6lat@(n{z-9&P`f zKUgk+BJz*bFZU0BQ2hT_8T`>g{aYpc(e|&KAp7X7heNOh7gINCw~!`U6I4pK_|Qp+ zoHDF|02%`kST7Q1z67U|x)_aw$*j??ZrZraXNc1kYD;xp#g@CoSThio2AR>^W$!yq zd1fDbt+>Bm{X`#a3|K&7NS(i=A5P$l+>i(BPr%N}8?3WdPSzC+ju<}4l+eYJU3?~6 z8{=%Bs=>>B<`(al@wHoU(iSzLE|fQKBhXRC5Oq1sKX{))aaFW$xy)K+Jcdv$ZK{kr zd&N%{SGrowU87|1fdF7m_kg@_d)>|U1>N|`kY?USoy?6Yn14}YnjOX2Ft$o z0E99%L<)9HHuP#YFYOMxRCAE!Qvw$8tkZ3Zy+L~ia9NmL3QEu#^miea4IoO$wrcBOkQ$E_9e68hyg4~|Y=b+ou$2T`-sr6uFJVFR zyljMWMc?dY^rEG6v{3^>Ie^w0%J+|KHPAx@0g|+;sAmbLb)v#j(;s)_=^j)CJmj&8 z?fnRKiPTB&rox43w)U7KFh1(6n9$s}v3`w@=i=Fivez)bT^?-lEgCIZzl|9g=k}Iy z00g35rtAPnVIzEAbK=(+uY+KJdy1Xe4(T=C0*o(sDAa=%H*3UR7VD8oR(&Xp$NnvK zDcI@n5Lnpm4qip)>^G?U<0y!bg~leOJ|uhy7DdUs2fA86tLzn(!B;9QS7{s`5MVzi zDlQ`5(k^ePEr3+$9Wi}k#6kPF|Ctu;OQgOwc97?RH`mfvKv6eA8>)?%U1SxU9bMjQ zLcepQ-z{gJ7J!6NHb?fLgYO((UoG7a)W;XDKhhBV6bbxPCnyizU#A&84>2X42AdEi zDPNk{3Jcc&(#{y7qpSxRATept0v7>NSm8iOrpG}HYGD*h`j_4d&MA}RO z3S+2GdWd@|>>^ym$Pm{e$`=n#;PuZi^j@yQu)9|NiGID0fJ4v$cj4E6w7q^1?DUsE zdtD3vzcbta*TM1st?m6^{qCf?rIVI2%GZ=p{JNBl`CPI2Jc~E0G@1B*{MsB>vG{zW zR08RrLTU<)*0eV9;;f0mG)@wjCJ-S6ke?qfkBnDEi`+<@Oo=LA0UmaZ)~@x1-qI*YkT$h!kcWm>vm!OSM~5XuF@_59Lpa6>RTceuF{P; z+}$l7K`354QBE8buF8!%9M?Kdp zF{1}zs12}Z`XRV|FJ{vlOm%TQMff06u^{9(?1eas7fGVzTC0hWSuqQHXY_;^5$Uz{ zoaUSg7U3-8`r1=@v2)|Yk|zsLVi18ZhG6PgE8UOsS=k29dU z7EY#FNVBF1Y3lsw8+~{As5mZSfgj~LT6FauA1V_3Kmgu-F7hwh-bimh*!{%MmPi+; z{be{E0qV(2O)e*c)y3TwuIJjiUj1Muc-IVV|jOU}lK8y`lZQ&H*WZbpvl9{q|6X407r;E&u;bR=<==_sNp z=L*{@!2Hwbm+9#e-PBx+5 zt;IHFavBxwVS4A(l1hwuGtTFunD_(S;stm3) zk!T`U;NLN<>(T@^A*OICq7l3yQ2)x4LM7kc|`Cui`*U$-sTKCk* z_kCe&4yrI9MG=cA8`07K%Uj*Nv()j1{8%!G4X17P?zV974CvMP4(CpMcjy$N4omh1YD4F^aiT%+lS$M5I9rxW7oCxFF;g83;KO$BxCv|ywpP5Gsx9jfJuO&UAa{O8d z8Y)3*mIiIG+UK93%^c#VmefzzyhQ76BdVI+zdTC;&UvnY{hYANNEZkCoZ}U0Kpnfo zxD)#cD%05()FMEb>a505FKUt}ILJhKaCI(qG&d@;__V?2^rAI_Jk_l9j|obmfD3icWJmI7*$Gv7`fky!Ec@oW-i{*ehT;D{LGZ+tSwPR!kR7 z{1=Md>RG-ES!#ZcDAEPey|bi$mz>ssv8@BFNSbELV31%nGyE=fgzo}U#Eem8RF1Yg z4{PH0z6)P9;tHhVq@@*yGpExyFE$$-wPDWrVPC}7iSK^G+N0L|8p?q~{ zdEp*<8#%wSSK96BjRhq=sDvR>AwtO$pz3##2dgILsZi<5v@b9Xj5ndA#y%4c3*P8u zng1cKT+QoV?Sw;pEPJ#!?b`jZe?RwZ^I3Ta?_A!^Ypc+4eXdV?*ZfJXB4rNw~!J=fgJy=BqOdenvFjJ@rLN4ViR0=k&gi+^1 zJ{lnXm=kE{V|ofvKSfNEl4zF7fWS17ml^eT1|M~pTQvyEbO_3LVzQTI*_)cyG|bz% zyk%yIrziJX&pz;4DbSVgy!h79CDhd&Xd}L|7-TAs#Ja@g^?qw{TKu@@E0MOS{aTUX{a~w~KY9Z&Z+I`R_`ji-Hv* zeXB5baKBijG_I&KoXl=>6xUzF->x0vDS8H%{qOdssP5;5osS8JS%sa7iLUERcRYS@ zGQVs5Dz1CA6W5lJXk#_1vJ#2HJ>9aO4g6cD!(r3d=eS#! zkN-v;FV&)BAa6fr33G+q)vBZ#&i_s#z%JojInq=>njv5}&=$G_$d#Q*m6 zA5v4LZQHq@6ek*EWDcjWfO&Rd;gOX>k>}z1!HGQ0zjXREx3>z_7c@mA*6PLI(djQc z8E_`yq;FSv##}8xT8wFN7e&XpvFhK43TKNyvz;mVBb}BVEK-STnV`hVr6m z1PB-6JuiRsi>^Fy5}sR|$fU+EU9?BY%-8!NiBEqQQ-AhWjtb7&jJ4#;s3e`K77+z9 zhlrRX`n~b+?wIiYX)e2%pI(`5%k)$h6+h*cN%o*Sx4N0wOu_JUDA$R@7PEf z!)4pIfDh3E_6-~Pv*m=nTeZIN3{qq*&DZ>*YPQC&5VJNBgB3=AXZ%^rYP6N=H-0uH z;#|e>LnT2+)khgplwP%Wn|Utv%yTlS=Md^g(th@HXo_cG-m;m`2Xkg|DfMS)4^Yh&JHL(!U|13p%At&c?)=eszK4~BNGa)tK0_|xWD&sM$gWgXF)$2 z&Z6g%I8dAHO^_jb;C=g+m&@G_m+?hS9xdIBFD8%~PZNPQucwN~96i08L#w^JLomo0 zD1>_GL=V~0hrBL309xhCh9t*f{0o@pf}#31C35htU`6?EG9Gt;nNDj2n_GDwQ=c(@ znANPN{+3AU6a7&-C@xmN=fQp{SC?i_UK`y;&&TgI;LOm}z=wlAkUqVyS9&A=#oWod zx65xmuQO0mKd~D-@elt6>%ZT3f7LzHrr^OeLE@$ZWGESnNl0*U~DlJd#tjSxY}(&!k=K!j$Syl#ikbQgMdfOyQR zDvM;hUuZvwXr{Xu)256}PC~hij*fmj(0SfB9G|m#zCS$w&f1?LANrh7Y(J>klC3BRsl9LO+sl?k-r*u zjL=V(QcsbRM#E3mpjOXOAsP4s1JD7Zu1f68zXT&}sr@?(4POg+hPSE-TG1j6Dt;|) z|2tErWTdDEm|b%(_i&Fx5teQBhkoN5*#>d2iLtA4ax9TTQp6>suBp2UrR?D0>(Vwwy2)GF>o zY;jh$R|%6a@t}E~!N=HyiRw6n{s2BgfntdO?Gc_)fOh=tuzjvU8Ps z{TjQz#S^*2xEkJj3R@70Ve>%4c!L*`w0SU&!dFi7`-oon+D2TC27{D#c{&Qs+n9H8 z6!d$i)}og3Hr)z)m7tSF_1W5J38jW;%~%7Zs!eP^wy`)ATeq_{qCL3#T8Z=0vW7^> z=8}_Qb<%pJuG#5?gtAQoKmxu-l42BgPo)FskUsrY_)mfhgcqp+^WigAay%S&ZG+jTk~PnnS6Xi+3zaQ zlvSh2h~Ehla4#|}msc{^QGTP*GaYM2Gs(mwDShT(MmbTcSDE2yZFEhy!l^!?be~(D_C{@v`_-s458VQoi|Y zeA7HOY|+@7fD!F9?)zAk&kFBeRE3qw>- zxrf2>$iH|D$N@#wTcX*U5$e_5Ld~6kMR7XGpJllDt?co;Bf5D#TNAb1D8Oig33cvw zimGLrIHkzgwlXqIJiG;qq1mG-1g{vfh`(EIShz9nDmSxt|FUX-t_t&h!Hk0YocWsv^;SL? zpo!?k+cuET@|v8R?k@j9yuq65;!;wzfAbzXeKzv-Ka$8>jr_W}wqbvdbX%V4mMY0v zWssfeQPV@8Wxj~gL+S8fr|Muc^1^1og>}R}h=-{c!$*MoD~J9U2rVUQfMkE&j&_4< zGAXOOy>qwB3)z9vQ(mFFnKEGvB17oaLon%_8!M$HmulNeQoWjO><%}YQnUB{31ep# zEh<{IB}wXF)6Na1qo8}>J47O%r&A@xIKh7_c!C21chaZ(W=N_lcEQL zs?PA(3zPIlVPeE{?u}UO5}G|uXM_@Go?&Xvr9_$~mZ62!e1 z+9V8>_<-Ul-tPo=c>i8bS~u~2v;A<+27a#8nE%^yBI;o4>SXp0^WuMMiPE+rmhw-p z(_utn^{b9gldp~!A6TlAx)eknT22v2S+MVElw{SvN-}xXO3BXYw)j?w|v$1=B5=OM9d{y+J@(Iren{&_i^SX@7LEO>o2sr>fJ0h;3MWvtk3`} zZ0*#P5)gBpi$TQd!CPF1J11qD>v0m=6l0j*fZQnaP0*f`PQQ~CyR$Xn;Z;Ep)l0N) zqv~5sR+Jk)M-xV#M?Aj0$lqkGR_Zf*4AE`Krq#5_!M>Z$WIYsQp zCy=u)t^4g-tQ$@cdK@SW8L1pe0MiiU8e~S1Po^}D9gEt#^xG?jL!>2bwc*+M_6@XmnuvtqMBR+M4YnqfC!t zAfc;yn#MGSS1Og8JJ|t9*tYIppp9>E+DhzKb%%qAUI1% z92+GY(Gw=un|n_+cyi=f6u20D67=c;9S}7{;D?xhD`zMH2Zm~hOv(fWW3rRVqvOw0 zpd_dnQvaTjuoT4~N%5HI{cLHTvQ^?*CiejOK5Tk2YBF*}oygzE%-&yW$Dw6YZZV@# zuTS56G#4A608A^vCd8rDk19~88SgyD>|kCF)0#SM4S{3wDkX}JWkPnU+-r|nt}Qmi zrf_dB-DeQ9J^hv+A4?8s7!ALWj$!r1Zim(UVErSwy<9%vMbhN3v|1;XJ@qZ=iiMOZ zfyjv*6vh9XYcf1(rM;o)iMj5uU@I z$geT=Ca`h@?~YUM%ehMgcSW@H!vIv}ead?e+=17~o-$07dn6903#T-tuAGp*y3?Uz zo(0_G<7B~{F+}i~pjGhGdCrRV5_|wTl(-w*g}&b;=pOTCc>J{nkd2gzh20&EbZ2kZ zN{pMo|Lc~e@;zh}$ceJ`*b(=JvB`0hq=WnEU6N(@x73bhjy`2?G`h?j#>S4qM0erS;zSE$v2#J%WYNu+;fUFE@%RLEi#k)xKnr9ee3w*D5b~e z1EP2QMQ+#&9@-XUHW~yY5=RZPKlbpKb@wFowG&}53Qy;HIMdXfdI;R{i=ED}Cp34A z$$5EQ@oJ1s8k#~Rv{f)cqh4A}Mfz2`MdFX-O7$vpt+V5eGtf(VvLm@`fG)fF!a!?N z<$k%zZHqFAJRmzH?@(LfP--NFdzn3iPlYzUT(g-u=I&gVUt*J&(}#WTFs&6d`e$vW+UqKJA^aQdGSNkbkUlhT^j@Adi?Jkj5~wXTwGzk zi1&4D;V|4&R9M4cRAg~*(&>XFedDPKe~0)3+ZzppVEzGv3PpPTT;^4l;*`7UjvBFY zMWe2fzh$$sguA-Ya`_Z7q#?Qmf&vlwwuWV>p(oFAD+@wA3N3NeHaTrcn17!BVy;p0m-5uTz#T{+=aHlp^3e&uHd)jidJKKO> zlku*?s{KImVThx~3KbTpY<+Pq9uVZxEdYgJ9}^4mpj|psz8(@9idMfdh^n1(pQT%t z{_80Gz|7(bTu7auMC=y*u|-MuxNXCRM~IU*A9;idaeGgTMU==N`0s;QWi?#9$OepyE%c&)tl+jwPOr z{&S=1m7xrOr~lbJ*zNwIX(%+oIP`QTG?5=E66v;CjJv+T849aFdc%4$>>Y)1F?aa} zY`ddaIdjitgJ7M*KX4pSN$h;bCOmjch@+o;;tru0kZzFGOZZ8ap1%)jpXMMl8^?-J zF0xSi;LxcMi;Z*%q5RC2+bw?~ylyC25 zqt!c&W~AltOBU;S0UYr`t&8Nr;c&SNk-i`EwM;1LDUG$246%+Yi^Fz`Lxr)XB2}7T zR*o!)6uN{dCJ5>o)sQcD;p6kqpyNv73 zFHk?Y-F1Y_SOI;C2!1M8JL9plfK2VgJaSVKb@lps&KumyzfT0}?DDY2ZM$P~2z})z z+}J~yxN(al2wa#$CAX8ZKkDV#Y|x^>v*o}?CHTkHl6MOuJ=&}iQAka#OwEOK5jNvGwJB%mj}2!3 zb_glq;!va;yAn64x!`bLPo*vi7tjq9bPR2@3W!c=)jPH9&A51I4wD`g50ecU=v*C7 zNH(r0&Mi+U6eU*UHA$x?pUO}+!d_>Xs+rSP+F&xqs7geJFqY7wy4M^2aAVc8J{+#` zLN<&O`9PA~SgMLRR0uD0ZQtUO(q9)?E|&W7(6ifeYtD#%;tXR713UJ0Y7Hbm zSQq75o67VEcQd-X+RSyY*wLr{Had>lHDsic?P83LO&WEKkHZSy${bng>Yz9uYH|D0 zSJb=^KhCt$(Os@6LqUdyK3lWG6};kaq7*lq*F2$SnXC%3X(Oy*e5(hi>fCfrtn$1p z+&tBKc532Yr5aZUmv}12Q>bhgM~SRA4Hv!0pUz9JVT;jk!>G`!qQjl7Y)odDn5zMvH z7<-vg0SRW?jb!15H*DOhDv0Q5+@w2@V$4P?C@`h)QX0}hU%C66K}ug^K-Kt>nX616 zR2_yLd(o~3T2|i{SaAzQk|gqabmFtH!!(e#<;WW?Haty(P@H0h5QRZ&lE9eHC7+iS&HNiSmiEH2%!&>z!567V@Outr=n}Cx(y9!)ddjagQx?5n=&WO^6QV)t zf%yHvxTp7h*p9uX>t0}j_5~lXdSaT}uW`Wbz5MnAPkKvcf`dW7>w0}Bh$NW@G44M@ z>HK3~wiGgjQDb@{W|DfvGhACY_%z*+tap1ijDCGJ!trPT;jW6U33eXCyR`v0G5x~X z1m?hWV@K|M$^YK-2HvFU)fFN0cFt`7xZ2jabvpl|x%I~#lHpo{m)tH^d-I|V?OLbC z9lg-^VdxZ-47kU=ebx?IRHn&iydA7K=?pOw&@T99Obmuxp2=>-%>HJ?};knae)XG*|bIJmUj|qwuDqh7<{! zNZohV$AO?P^p->Lg`)k|k#rghhVLCH_meF~T>v~``~fug6F_eE%`I0MXbtw!)=BgR z0`C&yZ5rg@_>U zMrvT}9n0%K8$Udz4`5ER))PZ^BTX_}EDwl|crZcn)nPCJ;Af$VpFeEf%B;mo%3qi9 zY@4oTn~=80`1~73|1=;<0Ozzs&W?fi`{`h@OJ z6*s*dEylS7h=m+t+3IKMo*CS>xn-@L-QIRT$9s65rvAtZ>@MnIvEcptwR+ZLla0rb z2E&3et7Ih^=!JRtf1F1C$z>z4(9L%EnGWUsQ0)KfcoI1WV?&mjg0~2ipC7YNrTY=5%mnzSRtu=PU5~ z#hYmV^p*<}A-*eZYI5Au(391*`StesiQEgQ6GRshsvmSi9)*3U4+({UOiwm2GWQ!K z4^-X+-TB#xOma$Lu^x+(cV{hIj=5sBQ7W`jAAE9gR96XR(|(a!bHO>fBVVVeRsbZ~ zSmPg!z* zn5M-U!xa?B;WsqWCzKNu1NnI|#f5SpXAHi!Gy2BG&`=qip@(hWLM}Ig7VpbQAk9aI zzFD%Xj#a38ju0*^9 zKRN;kPPP4QgUtLcSY6} z3OLG$E#_7cUUsOKvx4F~ zG*|McqupBNDdTe0Fm!@j7kqxRuzWXMy>Ngp;=f8%L2q0;-~W0%0Z{OD6}H5Ex$J>| z{73F!nr59;?9bZX`u(Es-!Y26V?8U5RuC51&@!ZxuuHRhs&6PJt?-T{_uCKO^y?85IPjtyHUX2PA72jdmcAt2aupYJ!dD-Sp+CXNT>~ z)kT(N^}?mrKa~6Uf_?kdr{}u;{hjwGcTf+i8+;(t3!Kr42SWr4(rQMKZe_{}n17;f z*O_IaVHX)|OK%{03v&ren2OJOF zY*kmT-a>>W@#0T8mboCsUy*KnK8a%oi9Fc^XYE;#g>wo1q$c{J+=|zYJg1&t`f|My z-Ci=R2buJwmJJd+OOM&tvfr(@Z~)GXuw8(Vb$R=DnVIR#O4LKm9wB$ZqlsKZrp1X$ zq`chH>1InzB!=)o-OR>{=jJ^nl_HpmGMXO1FYkBi!o6bz%q7s%GP2~s^6ml!S;Ki= zA(e5Xq#nl^K9fcoy5dTFRo2mdgA8s7zFB-FCJ}lSlyV-TqMpt3!PVb2-K?Y63o)e$ z?5nBNf3|2nMLVb$(=#)qE;HC<&^((}J+=chSyYt$$mBr?2#ux6 z5);?Ur6RA+D$(hx?7(btBYM?c=dNm@saUBl0Pn@ERYnh>qNs~pD>t(SE3`9&&-f1y zDl6jzRfjgp=6!;I?~c+Jqt7$bd&3A!WiFCT-7J=+M&A;Z-3=*xpCoS=;KzK&wm%){FhBBuy-jiJOxC(KOG=nYK@hA1BPQZu5 z`jGGM-}@x7WndxhYGm;y4lCC|0xDC6h-%xDiwk5r^onw6x8qpb?gSWZk|>%G`+C>j zit{a`)&~Vp-DDIM&YNaluJ{~kqeO1XiZ)WR_sNThpz&5hJxP=$$rB+otZE52OeI}s z8Ca`l3<&O%q*|m7;tP?SpyQj)ASNu()pICx$X!7Qyj{aFZ-|_o^dQ;Wv>@*l+Fd&G zRj>;DmcI9#;Mq^De)&$qUFJWJmtjyV_BjN(*{Td(N=eL)^~ENWc!1NO!ew)K_cGJQ zKIiFOiSPi6M{|4RLG@>_@W%N$B{Cb6Mc&Y{GqxsJrK5B6 zA)z;PljkQn%b|~ELe#iJhK*Z%oT57=DDd4-+iqNSziv^x!rd}OT(C|CL@+g}D69ma z=~R)8IAqzTI4&B9v#ePV6odHKCvWcxH4E91Wu2&ceb+&uG9*O6ofd$#Y{PdU-sD5u z3}ym;UOY(c#7&FIYbKK1;tHtYC1JoQuw=8ch*HI*-G05c;40}}3r6_r44M4>bptb0 zlbemAi(*9cUYRbbI91^@eFV5aExR>tT7G1HE72CFL{$ks< z?X1|gSDY2wwr$(CR&w*6|Jil#dFy=G`&P~Fs{Yi~)w6p(bBytf;d@J#{W=~;HkP$+ zxxN-*R-4Ve+-H55#yyc~SkRKFAprMl|7sU481sP05^STQ#-eVbxMsYVVVSX@Uqsap?+h0gd_Z~t1J$p=IDcndUx1P9WB0h9CAE-1*dQofYIjOSL zjkDv_N?&^k@=AN|Q|U$7e7-3IXI(b9+ZgVj(iJhH3*i)~^4XO3ctF|$ymTq33W0EI zJ%Xzd8pqV-+u-eCE33Ng&LI*xeArnd(}j!zP6<0|&=|6G`MSR!Y>P!f{_ec*EATUR z++OF3CPWiSYHW)$+lSx1GO-p>FO*hgi0n6POMY?*6sC#H6=yY2k~_q`3IDmGeeG=e zP^I&W;|iOuNP_hCBSz`V>;8GT6cu0A?;fvJpJ`gmg@Jzk`wx@-@|Yyq303-UV(tCn zEn@9!j@Pi)hEuwX;e8%f)z_L|DUxyLCabf?TAM+sRCNWTK+jBj3L&!IF4N_!3^2Txk?ivmp1stl8+Vb8chwijq1!Mi zoJFFgQ!q8$#UDT$|M`kEX~@q?acPR4qS2J};eU78d+d&M8~Rb8a{8gH5d=~N2|@Gg z4a+h|Nn3}#`dObxu&T=jSoN&_1T4?dDd0ilx2%w-EDt1aQyy0FBxh)2vC=6-;MP*l z*T3kk7kWbur|&AR`&%&~{@-2YluVpeY%LsI{-g2vzWN7X{#W&;tn*#Hq3|}Z&mo}o zjsXz)cjiMj_z>)G?PZzoWR z^0=nipS@&++i|qRuv|F=(qwkcPtR=4mQp*Lum;9bTuduu zG%55+rC@!`Aj|6)#FaSqleo{>@}7mnx~^+7yO)_VS`=u@OqU?@iDx(v^S$v8n3Jn6 zrx2Tcpq)n?ed`APUHUz?n~$0y9)_BLzM2i!brXf!>`IwHOb;Bc%4(R3`?JS@k& zy<{U?RaGKX%S#S?cirz&aVWui-(nttXa3BknVN=uRx)qbl}Cyvb$17Os)E847umhg z2v*JcKw-uK`=0A+PZ!O~Qg7NY@aE#nhx|fYNGm8kue#gOiG~rYPuXK;eN3xwt(!g2 z%Nq{h#gj7X=MV<<6NrE^Ee zV5n@-sW7?NPTc2ILUB-#&2a&~=me1?g()?RVl8YBe)y$xS49D52!+&i#NI_a+4b`pt|$LjL$i zyoSkQfD-lH_9XQk1@+(VpZ~v3?El;3-u$lUP`h)J z4F8}rV@w@X2{ChUW?0}MyfonLz!a3uMVAL242P93D@Enc|X+(N19~~@R`%q zQ`v%ZYWxE_+Bk7UJ70f@Lpk58vrZ1{)If42E6b3A1MqN?UQoMmwpo2#vNRoUxGKvy ztg3F0nYOAQEwtH^Tg?Rh;x*y^t)P-=>Xn<&U#c#rn z%eQ^eu~UGxsyPVkKFd%4Pl`1ppzSmntLjcF20JM~4XIl;uO?{_5ER_m${94sdq%XY zKOIUdJV8#U7JF`=Ssj1K_zSeev!}A}Qp(i|RW=7xST?LD;5EbrXID#8!+#?6FpEBO$_Rc+jbrTd z2RXFa0Rz&F6vqH(6)F&A2w4}oc6oNiisOK~W6J<{yE$wTx_U3MT9rK>O?Eo|jkmb4 z9`k|K@j*s>@Pq@PJcOJPUIXe+QD0TZEux1IW{0`gz8tjE+^0xzCGt~LY{cGEhCr7n zv#-RUp!xa5tMC*8$(-6O|;~?E-YpSkncf9_#-I=?)_o>3Y5E+>&EpxhMKTQ>72v`u`1!|L3b$ zm9vKKg8A{o1N(m<{`)_^`v2_Nvels6|LJ~=mDAbd? zLX@3{eLcEKizwRj*aRQF=gp;}cS#g|v!??#nTe+)UUO;z_PeM+>{VPVNS%)yXICWm zxC8oC$}n&KC44+L0nzi=iPv3=ToZ26te^%5MfG;-aMHwOa;Wbnbu7NSefPx1sVKJZ zNpI}IArL*+jS=Qw5j=iWR{s0FXLg04ToDbfI zYM$$i^h4<0TQ|MIP?QKu@y>aq$izxn4PtDjLojBOyykBz+aVz__kpNE;n@-UZA&nh zGNHjTbCMheqHsjwESAVXIbIA7_gc5E0BT#Z(h|Q+hpyRV>7YIxeRA?BcLt)2P>YTIN z6(kgmJ6SX};X^G`_LK7FiBr^S8|dmnIw2Lm`Oq!iKd+{#GT$#g_=}O(^g2Gp(M$h)3waZ+qQEx*I0V# zz_JwoK(DKkM!-`u&lV#So(u@^MK_#bMKr0s9hkU1c|9tH=r;1H;iye(Kzks_fn|ob zOav{j{#}POb#7y_#5P&NZ5X8_C~PnRv|HqXr3;+GzL3HogjiY0fx!lcCY-7lpo$eG zW*knJR1%_D!E%r^c`+cBtfXl})eeJ!e$C(hGvSpe2S*DmVq+_eQB5N%UaZf zEN9zf>5$z`FQ-YdjT9O4ysD8MwnnVS!)Y)CuH+?EDw;bJ0xYRmd=|hsFP@g9Wic>0 z`-o_DE#xL;e~jf?Sz7xdeIW&4DaeBl~_slB3A+ zS*eFuF>hh$8U2ExCVC!vP#bR}>FFX$V|o$CTldg_fRB>rAad~dJb`gV^TQr)$@2yR z|1*sL^#(TQ(SW(>^~M0y1O)}I!#d}Fm-vN(IupTfNQv(QZ2J91?L+2CZ>Rs=KAeZb zCwQeD$=LW%%k3#G%T+S&D?55J-fC>=iBX%DN-u7fmCqX~_s)R4>Ul>L|I^>EuIBBA z{$oA#D~#G~j}$@oX&04edW(RXR|5{-O}9=IIw$dKxxW9XR>@I4);`}cC4My3 zaFo*UfpnAtFHCIWrl1B%j*G>-2XgcjwBhnrGNpIp`EXKf^f$$#4Hqlzn%-Fj)qDZC zwWA~5etq`@39Nsk*Q$Xkk%W5dHQUJlyu`UYeP){usb2c}vG4)>8x9nvY4KP^T!_L! z+}c6B2d3T)B#YTgRYBk z$WC}z*V4Hlclxyfe9d*!Co)TA3}iTNIX{YLRgcoGUxh}2gtU1o=vRXf$!|hPxD+MQNY-xzHyf%a1Xo3?%=HM&f)dMeW#xXXe}Q^hp%kB3>Aa!HMdu_rPxU0JZR_KOUy zy2i+gI2ppvOn^L?5?J3{(0Q&l?c1L?I+QI}BS*(gaP)F|0rmX=W)CKdf;7VIfJ!#} z`WGvS@4Fi%Va>ioz~?DsCrB>FiM33Mxi?1JSG{c2;x~%6;JNr0$58TB{z->*;c{pF z0OJdU)|RrZHp;n}_`$Ud#D#v0lru-{p9SSy1>#%L;lOnL?W z?8`FpnoVCICW{IKfE&yx%)W6Ms|okM^xfYTP&!7*n4h&-;JP;Cxf+^nff(M^rRnui z4++HjOEmOgF2*WY7vZ8>{Gom+->T`QEP~7X_Ordg4oI`cHHMQr^fG(TMAA3xPUr!) zMHi6Fhcw!>++rPX&nHu}Tr1%o)R$kuJ;NBDa>zw|MB~tmaw%jYHBXlWrdiD37WkBF z+%R_<D<;aO(dcfB(>=RJ#n3qAkf#Qx>Cnhr*0{ybo($Bl<4Uitn5-)uM1-< zOaL|`kon1fr+?#2Ck!1kB>EU~y`STLJU%hfn#H$-0oo`E^cU9E0TmCtLFtl#tplcf z7J+}@SmM87;c_8+KpT@r;~p55JL01CqNMH# zP7n5Vi5)jut7S9&-}8JxkJ(E=_UsT?8;NOdr*)flJc)uyD*Jl*IjQNd)eQW4heeMW zLzJ&;BXJ#i5b5xM|OkWBArmFc@($10uO7yC#V zvsB#m0@9}Cf|W)9+0#D8V8rp^;d|5O4VbYl^gXjt)xBEsoi1HJ?4fAmU7o0ly%8#x ziVXOpP7JY56Y(Jj*>pVJaC{XkKysH$WRbN9Q}*V4NOp$#g1Su6Ub6+A;$mDDLS_2O zkc~=NcqmvU-OWH{?J3zCc=b)LM6_4cHgUj;pk$~lB??RHibKzrq-K_aY&hGeyypFvEa*bd9ffiEf)ul)TU7{Q zYCfCPTh%7mxk~qyJe_j8DlE&E7+f7wOuI%z&3}F$^hGoaxrbr+4QQ6A4d+VynE}X_ zl4P~!7Q+&6 z&6&*&Dv&WIV}g}|a&R?2vf#V11lzd+MfKyB#AYf(YDD0Sinx$V%Azyk>otzC!WDU3 z6tpZCMnS$fy>l|qxt*jqp255omIr)8`+eVqg~jGz&~K3ktge3^d5)%-i}DE@aLE@ejpTPIUHN1Ol6RQ~JwUtm}A_WzbS7 zHzvuX|M84#`}nA8My7ez9yhnp21ZGl9@f$NMd;th|H6Mg3GkFBhf-U?{LM3c zivztM!C!AWgHM%-g{*r;4pfoq>rgckZw9fsT6iR1}uRSKj=z%0i zr8n|*DpXR|_4)fuDmL>@uK~`WjTbw@u3cstC6-2Iej%@qhJpspfrQ0eJ!&sSOwClH zAD0H;pw>@1Vct?AcEr$cUknJ^y~VstHfYl;516Ba3y>+=FQ)YN{5keO!o$57e8q`5 zj2mLCGqSZOeF#Iok+IL~mySMeGBKxwUI2)Tj{bv|h$a^F<_%96m9R*FNtRBLvh@q~ zc$@Hn3Q}^;jm6$)=x5i=K{W<3^*Z#hN8v94B@2z;MT~-{WD;t1sL2+9B8T{)VsQk6 zjJ;FkMnvlbDlQdoI91Qs8U^o2@l%ixA&!Z=XtsM?bo-w*4XP3@8j3AZ)Ja}-!>Oll zbq7|66A5g~sroI#KY1l@0wH~odaIR?gVxtn4uCzP>jKIos>%K)4j zTU1Ae^5X~B|Idm3UzFwhKLFRKE!(C|qRk)5;9?$S5%EMJ%?i{t#a>`6T7o%nm{RNc zqRk94mwHP2+^{{6ZTcIavlE7?-+N(9iznXCv6%Y_h*zz~*)q?bv+Yr6AC{hfZ%D_ItTBJa+{kV5GpO zYf?FJ*vOt51&V#=H@5xJut*e)E>djcj9XyB^!$|A=W`Eqq6N@I z1k~GBGv>@yR7fn*KiFK?0wri#^0aw5CoFiqODP!y(*1NWNFRM|9ih@SD^1@G4L>f4 z;s~T+I~8HWEp5hZA8{I?W>ZfTtF*`XK2-}s8sZ|idsmM-8CYiOpFqbCqi?>uL1_-`<@x8 z(vXv8zA1Z#5L+5K%ccYwqBgX==V7cKGpB<#lO@7da%$|}{lXU8O-c<-PW2Rp3OPh& ze{*#40-&zP`~b)&ipsP#(g3ycGP!vzPHLy5vWay7%=mq)+<%1TbPl>V+q#;NX8_|Ns&BAo4No15dFO~eOSF;&Ld6@ zfe6_i3$ihms#hIOilf~qNK_nft_o_mUUpnoWDmID-5O}A91S_=r7w{9%+9nVL{xY^ zzar#nlm<1jlx`{clxm@JBa5GcBYfP`#f3)C^23*M1cCMkFg3T0slgpT6-D%8s2S)h4sunLfP2?t8iY+049?}b+VO<2 zCS$147(_RYRM>Z4{7OW4Pw`j#V@cbIV)Le(~8RcF2$y;YM81aR@N}sYMy(e z3MoTcb5e5A-0EA~Yf0>KRttC|``bLXPUX2Jiob_fA@;*XJ+P4lVRp>d-2(i@H`I&- zrxp5?sZ+wdK!J?*H-Z6H>WX66Z`_~ETp|tlv}@<~&s-LEfdU<&H*JpY*1WrmbDkT6 z>zFygsk=N)vxOnMTn9QVN+(+N!`KhH=T-4-ho-HqM^+Wko|%Vmypr$LrO}|t8Veo_ zFu4%#vZEJ!(fsS2Zq++olD~N*wV!^6Q`v%rPyqKI$Ye#tMIaFORnslZX#RN4$A*^J z1o&Z(`Wc?QVYzufDiGQUA$TCs&Rw{$zH3jytJTjhZb)bRZNLgS2FFxJ*{If!45)-Q zeq)Syg4=)_)gfQihVATt;N+A-h8|Yvi+?J=`8pt*AV*>p3}+5#98Y2$C2%@2-<>r0<^a8RyA-HW7b6Ko3813=dH-qr#D6h#$3>IZu-&@&VT z*7|sVZ(ZzM+4I~vjA*bhXj9#uiulWQG39#4_zbmoAQ$n*(EHZ4ny=De@lwDoi~_&; zrgr5{UF8tHedfpUidi|wax6sZQ)o7OjJ4!e0V`pVcApR0tK9oL-kTlS@aeLO%Nz=N z+Vu+NuP^%7W_{Zs|M9EI2CncyizGduE)^8dB3*E5iN1REMg`Me_!T&2w!teWhz#4J zGVtuVxrRyT(YA?8HXkgVp+hEB7*Mm;=$(_Mot8K#$fJ<_eLAgkk2pXObW-OLkgK8( zEz+xPVA|Av?Y zEqXP|zE{_$@8iGS5UA{E@*lF4@jnY}a+DxEkl;^IKStQVG-CCYIYe6m5+uW3FwOF) z_$Au;{#_cJo;(qm0U+g~&uU5E&gJ)8PzF(QF`NP!ao0~(4Bev?s7{~WjwxYIzVmjn z2lOd*e8*Iq7M@q5sG#58-?-S~(ZJZt_+UGMEo~-Ks!wsnkA+y4te}8e5PB-D#&kg0Q+&QbV*6vGx!%@@dmWn3Tchmi`rzN@u?&`{%p7AYl3N zgZsZ)1~KFEY_qGAHZx9(+i6lk`hvq8Z4v; zWF)mD^@NH?3)7iKgC+_aehGkyf}*N=jA#iIG{OK`5X&DD7VzxBDO zG{o^9Z`pOFlYqd4^Z)&uaG!n6H}#(7b>&Up@ponU2Mrn_KJ-mOZqGREXS81T_{#G~ zX+QPH+cj+0^bQ29Z(8VAPb@~q*txIuF1g2x+y{F1M^f)OtnbjyF|2QIkniYLOW4?(UVP@sga!U<|3CT*Qa?JsJ) zOK~XmN3Dzud zmxSP3b*4spCp(rkk&$q=>_gx#ncB_Gcx63$L>)#xDr&ZB4P8JXwED=7BFB@5A!TZVNJSJ;@zQXSscC6S!L$3mCq)`m!d>t?1TfT(SQVTg_ zJ7WW$xlS*G@hV;th+Bn$Sn-N5mtjR0U^O+i7#&twuP7(2MKs4*%gZzgnc6FJC%xq= z^XsFLs+J|fS+sDw@Q0z7O+4o!E+b>Y<$_cQ!5J zNlY<(>o7Vx+RyLU%ZSa(pRzS5KTNims1xOeYHgEF9&0sOdf;7AcBI+aI_yEL-NL^- z^ez-{lS@HaEhsP;K(UBoZ*_w7|oaZ}ny zj-o~~b^m6v3fFL_gqexN;YzUdgpvd`rh~vbWGG(AOvUiGt*sGXe~V;p$4esO z7GhIThZr#65|x;3HkbX)%%#=!{VbRqbvLH5(V3)j=UBZVl{P$C`Ke!sRYmO*-xlMk z{Z#zCEweaUU?|o+-GA)R=kx01Ks=`~6?Ec#xcu51ncI=PEN0B&9(j_7Jp8wJGV>iG zpsM-cA6f><{dFs+gC@RTT}0gES{jLi?dgel#tFV1oYg^u5#TxKE)()K0W&-$R*fhd zwCn0*P=qprM6yeygIDG;3Tm`e0>ZPvxwI+U;+e24VLsF*9WUKbGby@>{w=|kNBPdy z&yEOHLUb}Nv~VNqB=7Q~-&KhOdP2XrX!Lq*8>f@wJsaI@>mF8uyQiWMiori}$f_3# z$1GKLqzjo3Kf#qQ-h%k@@^M2nY8@Jx1KxYobF8M2Z}EO_b@j^4lmeC947UMpHuBBA zeCO8qZ>ew&mD?Q7y^)!BxH5TTRED>%mL7fe8cKW677Z1N>-=@a>|mY=%RbcOwaYlI z0+YhB+=Ko@F;b>tXYJKyfffj}B+(lUqsmT&+X?qJ`Lih3)L)WtsjmR1W zN&-0@S9mGT=kT`ZkVQZuCXHzgNx{6~(kYDJF))jNl+1W%&>^4KMyNs6)*r{gjJ4W* zm)4XwcG5S`^?WNMZ@{=*qFxU*hABU zk)9jX5~@ypHSL-am7YRGVHWDSEpe-aYMEEPgq#9m&twbfFR?6>a7>c$G|V0|j{~+1 z*+as_uQuu>usAApfr&m*AV#eTs4(OnQa5KrjYagx=KIbyE3G0X0$CI%%n2igTz|as z`~)rDa$+Q#*rE3}x9R+gG!@hyWOv2i_6_?I@wMo5mau?DbN}FLWU+3S=Vk^hf&zN&Y7_d?heL=@2 zA$`_P36>fD!`h+cXe|DDypoZn>H16ZWN8RzX-Ej!O@_{JuqQnEdv@i;q?jx8S*qs1p7 z&hyygyy5V^ccS4cdzR$WN$RLmrfch(3WmV}c%7?ec1J)@%LLFGqN%F2DTd)(fIC&_ z*Zf$XM)XBPe6;Yt94guoo(`B(NcaQb4xEO2l2o=3aY$+gxhGg^0b(1O4K+U4^pr(c3O5O35vyr*S<&4SQ}|Lm>tqHCuma=uO+>&yv z%gUJM`WJmYUu_C!1zvGcNCVS0`!cO&vYBz@P`13n%K8T|ya@ctSn)JjV9X8-eR#@c|bmEx>A) zgsIVpUK%MYbR+5WC#(J-t}}xd8@p-swgvLU4lxQY`NKZ~1*OM>G=S<+>Ep%el{{W; zRZWwlM=R>$tzqWCK7>K5$40lTR^H*f`0Jk$@|{`U)x!VAhX0itn#|#n&-^PR5)Z;+ zu2@yICySJq@AmK0m{xj^VsQS~>6x`}@1bU7^axS_<)94x;X|JTNwQ7ZnAC^H6uPCA48HHiAR2*&3!dLb!lD$n2f0 zj|97$CR|&xvbP(?E;cquOuK2k%FhvCR!REJwGp&AD-d8uV$%_sG-`IEyp4dtyAGOW zTI~HM1%RHutZLFmoYKyXZ3;O69o2`bO^f=Wt zD{TlQRy%mq$imNzXE3o5!<3A}12r2}r=*BDBiFBAt8GD{b5haVG>g+%Yws-}KM99H z`L^8pbV{2`GK35)U0y!(rBv~{-(C%kj*f3wO&Sv49dc;ppKQmsE}6Af&dzPS_KDMEz#|I;Tosr|7-XK}gz56XvlgAx`>0ycqwfrzM|@5a7aGRK z?FDpWtPW9I6m-M24uLj^tNT(97Twi-F#w0G?n1heMt4RpDIM_J$;>IOJ$_`R~+QJTvmjl{-^)0gE(e>=a15KJC{?qmk#&Bt&yxk7C_O^WR&jqM}uPI1{Ecd|6a zvt7K};4-Z0O*dMu#W0qSrR_C4`C{9!m9h`?d8B4T3hE0iErUr_l2bvKB z+Zgt6WGl&p{q8(z5I%8j!2NrrJsmL~Et z|5CLZO;lLgtFm&GV_jfhBeh_;ND7-(yfXjU$nxTu_xNJ|%YSo)rAhd1X=HUWUStr* zk|m3k5+8E-RULwREzuv-ogRW<*kgWDMruKMG=N+vV!=Fk)}V==%Am;T%&%K8yV`g) zT&urMfVSk>*Qh#^PeE^|bEYEYBWML#awkB6QYc^5g|9-Yi}eIr32;aNm3#FVpSgLK z?C>PFxxn|$BRe^QRzPkDNP=b#xFVGP7NX>fbvwSRTv;B2M|mWH)7oNKRMD6xyN|EC z466xKOL}*ZRV<$~?j3ocM1p1q)?;#O>`0(2yaj 69e5Kvyw{M*kDsR>eel~vr} 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¾(fx|?4ueh=(qmfFy8t58X$ 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%0D_LfEvRRHTi;hLuGd3FI+Xkx`@V;cJ}~4 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

~Fjt^Bl+F_^;U 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 literal 0 HcmV?d00001 From 3b037da6f4f444c4e9dfbb3efbe3eebc4b69eb14 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Sat, 15 Dec 2018 22:32:42 +0300 Subject: [PATCH 23/31] catch chanel closing --- .../build/libs/TorrentClient-1.0-SNAPSHOT.jar | Bin 855638 -> 855745 bytes client/src/main/java/itmo2018/se/Leech.java | 5 +++++ .../build/libs/TorrentServer-1.0-SNAPSHOT.jar | Bin 15655 -> 15717 bytes server/src/main/java/itmo2018/se/Server.java | 16 ++++++++++------ 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/client/build/libs/TorrentClient-1.0-SNAPSHOT.jar b/client/build/libs/TorrentClient-1.0-SNAPSHOT.jar index 66480a13490272b37f26c4b42332465bda755b1f..28fa35c64177271a6fcb0dab95e0bc218ada86d0 100644 GIT binary patch delta 19800 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 KY+BOGlK%r8oQ>=N diff --git a/client/src/main/java/itmo2018/se/Leech.java b/client/src/main/java/itmo2018/se/Leech.java index 84b314e..a88d958 100644 --- a/client/src/main/java/itmo2018/se/Leech.java +++ b/client/src/main/java/itmo2018/se/Leech.java @@ -66,6 +66,11 @@ public void run() { } Thread.sleep(20000); finish = (int) neededParts.values().stream().filter(it -> it.status == DownloadStatus.FINISH).count(); + owners = client.getSources(fileId); + System.out.println("================================================="); + System.out.println("active count: " + downloadPool.getActiveCount()); + System.out.println("finish: " + finish + "\t" + "neededSize: " + neededParts.size()); + System.out.println("================================================="); } while (downloadPool.getActiveCount() > 0 && finish < neededParts.size()); if (finish == neededParts.size()) { diff --git a/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar b/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar index 4b92879bbc043a1a53ce50fb3be2c48e93cd18b7..17c1486ac48cbe8f1482c67d8ac5392e1588fe6d 100644 GIT binary patch delta 3863 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 G>i55M*m^Vo delta 3815 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 Date: Sun, 16 Dec 2018 16:06:06 +0300 Subject: [PATCH 24/31] singleton reader --- .../build/libs/TorrentClient-1.0-SNAPSHOT.jar | Bin 855745 -> 858347 bytes client/src/main/java/itmo2018/se/Leech.java | 47 ++++++------- client/src/main/java/itmo2018/se/Seeder.java | 13 ++-- .../java/itmo2018/se/SingletonFileReader.java | 64 ++++++++++++++++++ 4 files changed, 97 insertions(+), 27 deletions(-) create mode 100644 client/src/main/java/itmo2018/se/SingletonFileReader.java diff --git a/client/build/libs/TorrentClient-1.0-SNAPSHOT.jar b/client/build/libs/TorrentClient-1.0-SNAPSHOT.jar index 28fa35c64177271a6fcb0dab95e0bc218ada86d0..68f525df644d4a0b5ada7a8c614c38fc1648928c 100644 GIT binary patch delta 27012 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 H8>RmN)~J4& diff --git a/client/src/main/java/itmo2018/se/Leech.java b/client/src/main/java/itmo2018/se/Leech.java index a88d958..148bb7c 100644 --- a/client/src/main/java/itmo2018/se/Leech.java +++ b/client/src/main/java/itmo2018/se/Leech.java @@ -52,9 +52,9 @@ public void run() { parts = note.getParts(); } - Map neededParts = SetUtils.difference(fileInfo.getParts(), parts) + Map neededParts = SetUtils.difference(fileInfo.getParts(), parts) .stream().collect(Collectors.toConcurrentMap(Function.identity(), - it -> new PartInfo(it, DownloadStatus.WAITING))); + it -> new PartHolder(it, DownloadStatus.WAITING))); writer = new FileWriter(fileInfo); writer.start(); @@ -70,6 +70,7 @@ public void run() { System.out.println("================================================="); System.out.println("active count: " + downloadPool.getActiveCount()); System.out.println("finish: " + finish + "\t" + "neededSize: " + neededParts.size()); + System.out.println("owners size: " + owners.size()); System.out.println("================================================="); } while (downloadPool.getActiveCount() > 0 && finish < neededParts.size()); @@ -94,11 +95,11 @@ public void run() { private class Downloader implements Runnable { InetSocketAddress address; - final Map neededParts; + final Map neededParts; MetaDataNote fileInfo; FileWriter writer; - Downloader(InetSocketAddress address, MetaDataNote fileInfo, Map neededParts, + Downloader(InetSocketAddress address, MetaDataNote fileInfo, Map neededParts, FileWriter writer) { this.address = address; this.neededParts = neededParts; @@ -112,17 +113,17 @@ public void run() { socket.connect(address); Set userParts = getStat(socket); - for (Map.Entry neededPart : neededParts.entrySet()) { + for (Map.Entry neededPart : neededParts.entrySet()) { int partNumber = neededPart.getKey(); if (!userParts.contains(partNumber)) { continue; } - PartInfo partInfo = neededPart.getValue(); - if (partInfo.status == DownloadStatus.WAITING) { + PartHolder partHolder = neededPart.getValue(); + if (partHolder.status == DownloadStatus.WAITING) { synchronized (neededParts) { - partInfo = neededParts.get(partNumber); - if (partInfo.status == DownloadStatus.WAITING) { - partInfo.status = DownloadStatus.IN_PROGRESS; + partHolder = neededParts.get(partNumber); + if (partHolder.status == DownloadStatus.WAITING) { + partHolder.status = DownloadStatus.IN_PROGRESS; } else { continue; } @@ -130,10 +131,10 @@ public void run() { try { byte[] bytes = download(socket, partNumber); System.out.println("download part " + partNumber); - partInfo.content = bytes; - writer.addPart(partInfo); + partHolder.content = bytes; + writer.addPart(partHolder); } catch (IOException e) { - partInfo.status = DownloadStatus.WAITING; + partHolder.status = DownloadStatus.WAITING; return; } } @@ -182,15 +183,15 @@ private Set getStat(Socket socket) throws IOException { private class FileWriter extends Thread { MetaDataNote fileInfo; - BlockingQueue queue = new LinkedBlockingQueue<>(); + BlockingQueue queue = new LinkedBlockingQueue<>(); FileWriter(MetaDataNote fileInfo) { this.fileInfo = fileInfo; } - void addPart(PartInfo partInfo) { + void addPart(PartHolder partHolder) { try { - queue.put(partInfo); + queue.put(partHolder); } catch (InterruptedException e) { e.printStackTrace(); } @@ -210,13 +211,13 @@ public void run() { try (RandomAccessFile accessfile = new RandomAccessFile(file, "rw")) { while (!this.isInterrupted() || queue.size() > 0) { //TODO переделать queue - PartInfo partInfo = queue.take(); + PartHolder partHolder = queue.take(); - accessfile.seek(partSize * partInfo.number); - accessfile.write(partInfo.content); + accessfile.seek(partSize * partHolder.number); + accessfile.write(partHolder.content); - metaData.addPart(fileInfo.getId(), partInfo.number); - partInfo.status = DownloadStatus.FINISH; + metaData.addPart(fileInfo.getId(), partHolder.number); + partHolder.status = DownloadStatus.FINISH; } } catch (IOException e) { e.printStackTrace(); @@ -230,12 +231,12 @@ private enum DownloadStatus { WAITING, IN_PROGRESS, FINISH } - private class PartInfo { + private class PartHolder { int number; volatile byte[] content; volatile DownloadStatus status; - PartInfo(int number, DownloadStatus status) { + PartHolder(int number, DownloadStatus status) { this.number = number; this.status = status; } diff --git a/client/src/main/java/itmo2018/se/Seeder.java b/client/src/main/java/itmo2018/se/Seeder.java index 169ab8e..ce58e3e 100644 --- a/client/src/main/java/itmo2018/se/Seeder.java +++ b/client/src/main/java/itmo2018/se/Seeder.java @@ -1,5 +1,7 @@ package itmo2018.se; +import itmo2018.se.SingletonFileReader.FileHolder; + import java.io.*; import java.net.ServerSocket; import java.net.Socket; @@ -42,7 +44,7 @@ public void close() throws IOException { private class Executor implements Runnable { Socket socket; - RandomAccessFile file = null; + FileHolder file = null; Executor(Socket socket) { this.socket = socket; @@ -63,7 +65,10 @@ public void run() { } } } catch (IOException e) { + System.out.println("+++++++++++++++++++++++++"); + e.printStackTrace(); System.out.println("leech disconected"); + System.out.println("+++++++++++++++++++++++++"); } try { socket.close(); @@ -102,14 +107,14 @@ private void execGet(DataInputStream socketIn, DataOutputStream socketOut) throw MetaDataNote note = metaData.getNote(id); if (file == null) { - file = new RandomAccessFile(note.getName(), "r"); + file = SingletonFileReader.getFile(note.getName()); } long defaultPartSize = 1024 * 1024 * 5; - file.seek(defaultPartSize * part); int partSize = (int) (file.length() - defaultPartSize * part > defaultPartSize ? defaultPartSize : file.length() - defaultPartSize * part); byte[] bytes = new byte[partSize]; - file.read(bytes); +// file.seek(defaultPartSize * part); + file.read(defaultPartSize * part, bytes); socketOut.writeInt(partSize); socketOut.write(bytes); diff --git a/client/src/main/java/itmo2018/se/SingletonFileReader.java b/client/src/main/java/itmo2018/se/SingletonFileReader.java new file mode 100644 index 0000000..7d41b36 --- /dev/null +++ b/client/src/main/java/itmo2018/se/SingletonFileReader.java @@ -0,0 +1,64 @@ +package itmo2018.se; + +import java.io.Closeable; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.RandomAccessFile; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicInteger; + +public class SingletonFileReader { + private static final Map files = new ConcurrentHashMap<>(); + + private SingletonFileReader() { + } + + public static FileHolder getFile(String path) throws FileNotFoundException { + if (!files.containsKey(path)) { + synchronized (files) { + if (!files.containsKey(path)) { + files.put(path, new FileHolder(path)); + } else { + files.get(path).referenceCount.incrementAndGet(); + } + } + } else { + files.get(path).referenceCount.incrementAndGet(); + } + return files.get(path); + } + + public static class FileHolder implements Closeable { + private RandomAccessFile file; + private AtomicInteger referenceCount; + private String path; + + private FileHolder(String path) throws FileNotFoundException { + this.file = new RandomAccessFile(path, "r"); + this.referenceCount = new AtomicInteger(1); + this.path = path; + } + + public synchronized void read(long offset, byte[] bytes) throws IOException { + file.seek(offset); + file.read(bytes); + } + + public long length() throws IOException { + return file.length(); + } + + public void close() throws IOException { + synchronized (files) { + FileHolder holder = files.get(path); + if (holder.referenceCount.get() == 1) { + holder.file.close(); + files.remove(path); + } else { + holder.referenceCount.decrementAndGet(); + } + } + } + } +} From d83e80f8d2ec2fb20dfc2a9c4230f41a731861b6 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Sun, 16 Dec 2018 16:11:30 +0300 Subject: [PATCH 25/31] minor fix --- server/src/main/java/itmo2018/se/Server.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/src/main/java/itmo2018/se/Server.java b/server/src/main/java/itmo2018/se/Server.java index 5459f79..5758d36 100644 --- a/server/src/main/java/itmo2018/se/Server.java +++ b/server/src/main/java/itmo2018/se/Server.java @@ -72,11 +72,13 @@ public void run() throws IOException { if (channel.read(buffer) == -1) { System.out.println(channel.getRemoteAddress() + " is closed"); client.getClientInfo().disconect(); + key.cancel(); channel.close(); } buffer.flip(); client.read(buffer); } catch (IOException e) { + key.cancel(); System.out.println("client is already disconect"); } while (client.requestIsReady()) { From 6780a3413f36e775233ff3987224d94889c42443 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Sun, 16 Dec 2018 16:54:34 +0300 Subject: [PATCH 26/31] limited the number of leech tasks --- .../build/libs/TorrentClient-1.0-SNAPSHOT.jar | Bin 858347 -> 858425 bytes client/src/main/java/itmo2018/se/Leech.java | 6 +++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/client/build/libs/TorrentClient-1.0-SNAPSHOT.jar b/client/build/libs/TorrentClient-1.0-SNAPSHOT.jar index 68f525df644d4a0b5ada7a8c614c38fc1648928c..503401d024ce8a17de4b3ad7273c547e700c0d8f 100644 GIT binary patch delta 20969 zcmZ9U2RxPE|G;_7%X96$S6L}!gsiN{3fVF;(y)qzTq+bIi6c}Zqey0mjEFK4Dr6L* zA*+R={^xr7-rx22dfo2*yg#4MIiK@6<2lcHp6_?IT&b=?3ANluMa@7#K~GQdAT|YU zLg2qWGVtH>)icy=4`MHyWzLAJ%i<|0P76>_a8rORW|Wt3-JULjeUSGr!Dm>qi%x}> z%G)4{(g}6nv$rhT4W(rr;W^fA9+uAZTj!zmZT5`k6349{E|2>dnvqD4pZz~Qn=PAF(7QWgmYiLt#p&E{HE>FUW#vC!Y7svQ`~Iv zp$bKB7B_!bia9d=a}ZfkZ`>d4Kj|dXcyCfeY^lCK!a^dF(1d6=Gv}|S#0w{M-rW1m znlqWMj88kYg*`vuulhO4-4}1#iJW(}c?VXUmFb%}`c)Pw5m+{qt^Y7QGw=&!5UL+NE_Ql9f4uyK3RgvywZfTT;=!R0^|cG)b|&#M8y%O;G|tc1KDzU=;%>qfxpRg}Q$x9hN-2Sf zx_hcS*az?ZSxjmaH?(E6f=XMW6+uOBRJ+5e9F-K9C>Ti+QqE4d-{y6Dz;veaSRChbnIpQA_l@nH z_m||$SnR96#-$vo>iOC|%hLVgpohz$Q!j5xKKkhB9Tuh8$#As6Ykr7mvz>T^%0lQH+wOz4PAgj`QMq#42}%o4eA4)0s9< zvyXdVc9-;LKHRriN!u4?H*+$~13ygnaWWhIvsMTjt$+xu{eY-}=$+j#ZvaX6}AvvsZ`tUKJ_1 z2Dj<@z_46R!SX$=p;_g`JHx#>v#Rqa~d!|Jw)xo?8vpD!>ZCx{-I%+nFq zdweS6moi_@pWLOV(J3YchDH)01fy%w=UPw2N+04`+5KF4EUkRoLIZu0@TUpJ7w;eE z<%$TaO~=vHPto(|?PNgf+g`PcxC<}8?2(NZYaMFoyel^qnx%HQE$HcE)tp~XcYz%D z=YHbB-HDwkTH(l|c+q<7z^8G>nfPv8DeZK-2>)!f#M`|q0l2or+6f+^`eedzIHOzX zZ~Zq4Y^KM2ve%q+xLY$?-Ml~I)Fyv;_LuGQO8;j+1X$J0mm zJ;l*OIJ5QH+}zuJH$VRp6Epd>C6#c*u#Njha(;tMjSp+TX30^F*o?py-=brq-BemAr@vw$;dNEgu+g>QGxR1~gi8+sf@)xxpeZn(eUn{B7DjFh35ah%`FV_7>_M4z899A08SX@ z>pspsT2c7!p<^P`w>~Ou`uhE}1_x6pme($y43Au{(`;g_yPsZ@uQ5|7vMlor-~9e3 zeeyUViS4Py`AfGd7h~?OeXtC}dHLkTZhzdA{NZ_ygwk*H>WhkONy zewC_W43%v*U6IEhC~7(OQtX0*eVeOjcZ*54fpg^f9~`2TUF*gbePi-lkq zdnoDbzKoIgPCuo%E><|cWtlPFc_4E(mZjmsYRO4m>rc{GEBj;2@+&IJ9())099#BL zfGcjh8!mvr^y5RH$mAX~FYfY_u0^j;ado|M_z*PCu04^tR{iH2J^T2Dt*euCi(8ab z(!%+jr-KLIo^$vb%v$WQ=k&e%4~~6u7?nS-9B%Hi-ljAf%5?N-*YmuK0YZs5?lPve z>Vp&BR1@#{l;84Bp354hJNA|ie0(%lZG&M|{H8{5t669XpTicSU!XD4+H{sPg zxLRELpk$@yR)t}YN$7_(S@E|E&GF98BVYCXI4?D>HQ(41LqC?D5a>pq;;dgUkz2^} ziRG>n!`Uo9s?_q|-&V)D39p-u2l|L`{pPkz)E z3%?iBY74HuI_pa_KPgk6b#z9~K4v*6Uo(ndt;O%L-HXJ96K#ZUw$hv!nevNVl@|PE zF^>=DF&)c4Gi0bPc9QPF!0!M?&G?XCZ0a9zUvji_6Sf~JR3y-inFxl+x(isoewWk# z-f^t>*kd6tjo!KUbz`N|;c0q9g&%jTHlGL_{6*EdbM-gVpGYA;>x0d&wudgBJRGVz z_-k&jf}*oK<3PYrUTWIv(|0_-bFK?@1fq&PE+@6k7qgj}UtD)cy8q(dwkckzL$Zk%-N`Mpe{s`_+xz)`$cX3U zPUd&hSuItp%N!gpp5(OSm6fgdHmrSvru1u4+^7AVm(M9Nz9Kk<8oa28XHQ`a?g-EM zW!_>JB;1=;J8V5uT2nXvYPVwp-~EY$KV2ETz8c=OdLQ*Xeso*vo)A`--+QuOX$U_q zt^61nKs~CNa?~YdK=TbN1^2{#x&y0Aw6Rha9vR^iQqyMXiCorcHI-Je&RnhC{xc{mYQee=;+ei+@)fTnoq`W5@R>1&Th7e;m^94)5%eYzp@H`Sl7Z*pAaSyof>fb%@c6~lj&RoAg`S>>0_MfdsInNVvM^x0# zj@XzOUeakRe_uBGHT7U^`JcIPx%BGvtK$aKYMxoRR7UO65_X0i^}(k*>>?}n4LL^U zk4F$5cj83H=lY~=!?_GE&kRYW-f37t0VvHTF z<|~K70jA$6l7yAa76rWPjwfjWDFlP(2118#* z?mCo9=`W~ku(bLDUT;EnGf;RtG?yeK}862ITcUu7VE zhiJTJ!V$Y%v9NaUk<HJShg_-XKkD7KdE|5g(ITLQa_@Jg7vNK z6IVBp3yC>@qB;|kmlSqs85$S~_BA!{Uz^{0)dtDDHX6P>dZPD~(A&Ctqd$?~M4}Rw z!bB1Kk{mv}F8kc(bHy>9cX W6igvmOJZG+J?TMd}@E^ouhN18&4@W;oR2P?Yt>_ z^lx#yrJeQr{#2f!%&}$fcNrxP_Sj!-Zk-pnbCIKMH{@(_vL2x zVsuCvmujimdPg!Cci?z&b+w}lptDmLlDOmvh4kaw#v^*&P4G)fI?FR(}e+UHJLxvv%I|U8lkl^$$Ec zUojB;BqY_H?>UP55iRiBhp9g7BK5*C*-nwz8r}jSlb^w#etO)KH8l3k;_UMv>{A+H z>E*p;x9jm`r)#hBA52`h+%diQ_odcYYV~0oY6RU)q$59i^W#sz1i(aXAjj^W?tSWVC*;V{M$#*b@x$hOHXHh!>dr=*9< z)V|p4m(@k*Fa90-AmOz8*;XFTryk2^OJ5Pf+5#_X@Al&_m|_bqzh_Y78d>n%%OZHz zeDCbk5zid;u7g9jQs&zUw>)nnTU=dzB(l$Ut$7_wJejg5jPQ`j;a1F`q`;%(`1IKy zB54}^eqWtk4{^y>w4Lm|w56R^V~2bdT~PP|Pl<|^XMc=q@97I0>{N4H@QwCnlXP$M zttNO}E(lM>X*?Y7l9qSPdAjXV>%+@_U0J6;EGL8oF>Ukb8oB0oKhw51E5xz1xJvzl z%bU_`jy2&uEB0w3W5Or6l%u&(hK9}ohu0oIvK00uT%j?)Vj%OUMx;rZhavVuN`P8v z!>!KACzqcJd^7N{J$s95Nrp*sDljWBemC%`BzTrF+Oyewz2w{jn&JotrCGGccU+c_ zDc)@=C(R0M45vJtA79^B=h*HedZ*}G6}MH7*85iiQH3Xj8^R}wuQhP5){lMzf!kuh z)QD7@Ze#P?XyFA9^(}dI7L2t5m$v)G%tl{Uo`^@EJ8CgzS7d4~n!RCGW2TZid^3B` z#CF163WoR<-O0dc!`6-^c`sqhUqbOqS}n=7ZfP&23&eK@0j+BRsTvI$YgS}mvnh%p*t2QHes}+lK5UJ;uFQo7k-ISa%Q)_ zP#A`oZx^g)&eO9xSF<(d!~>67dUx&4Enk{PzZ2f

|!qH@;Dbd@GdrY54NvA;zC4hJD*!v694feBBD&jMe4%}>rE|hWvyGUEPR(49si*0OKR20 z{ga@U!F4Hbk^kcg*Ve`?Jwrt)1`3_$Gf*DT)Wdm*Ccvjm9Q;Xy0L)yxTjI&Z16MO!;dL_ z+n>=#x1K%QWGRuS*Z#O)TOpkCgZn*!nI!@uF5+`?K!$~2{4vy=p6#a6d2h$eeOE62 zw12N+%=2UWy5^cwQJzF|UG%rG=R0~zR_MsDQkTs>RC+c%W~88qeZC>&InU~n<@BOvnv5wGel#L!&t4E8uyord8$zG{jmM{0jy-!JG+WD!Q zU&Q9F?Xjc9TqPn^^G=7yD2yL_T$=2+bsBl|s9N@o*<8}Ss?5m0S*D7{w7WV6Cf=9+ zT?Y$)y3RB#&i6@DI_GQ+lNWYf%%#=vtg_B@y1h!sRjN5MG#wKw*#G5c(DVa=FD>H& z5jfZ9EpxScnHtKYY3CwF?@b8pU~H}>(nhj62qlIyF*GCEqJrFZ*x zZ|(ls^)YHut7sx{$JRq}{BgGzt`s1V#XczpBiyN)RzI`BjE=%JIZ6R&aGw)b>~4IJ~!Qh8c-H}ml*{~q_s?G>VT z<^AY?C=M`eM;%*Yi@dHpuU6x#=+1~0w!UMqyYkHqS<_CDLjkVlj>m7URPi$88CrGz zY_OE@JRp1WswZJcoBc|m-6@{iKCc6Q$;5o2>Ep7V7voUiXX78tDo<+(IHPlNh3DJ@ZiXcBcHYU;d~)3X+27Wu%R#?=I=0BBUnrAH zDL-*0Zj0ZC+7d(E{eiAlo>GnugZB0L!^dj&^wG=xcwoJk&49r6`p1sj*}K>+eH~N6 zTETefP_S>Zo!E?A#&S7}YZ)#94uwLf1xgRZ&{_b+Ii%)Y|fIcQe1Afj(~tj0Y^ z5`S;Xi*NhBrHXmR(M5jDq7Atm7 z`J$!b$FElNo{T?dS9XjOQf6EP&y>iTh!)Alb(-+1D-{H%T?)Pnz`HLMRYwmq^UovxL&FX@uQ_eX$i>Yt*NCVHOnV+oBvM(iFZ5Katz)sENgXUf5 zn8|_FJEdQ38d*3$-nHcPJ#w|wkUezT+TbCdp0MR1FUJzp<&yQ3wH?9h?c^1=hD%HZ z#kf#S@sFRLJ#u^Twf%=(M$h-L+?IUKi+d%mb?z)P-jPN>T8wxr^%kl&!+tZpUq5yT1V&rwXMA9@ zQQ9%hX12~~-D~+RRq16XL51&bZCK=3=fl`1N@WM;7e-Alcs@Lv{V+DT%Z{M5{owwQ zm-+_h=H|T5bLNSq-V#s$l}a^i$`iJ)wPws#sZME>^Ou9;R3*T;`yyeZvlR7g#%WS`9ozn8;&~rUKw=-1^(Yjv!;1#Cm9b&t6>_u#n z`;cdINbS<;dsen|K}^=R49K$-J;L3iCbRDRxxtaeF2Mss9EIh)wh@=EbZb0*dPuwV z=nC7R(64W5Z6Y3Wi!E_ZUo0HaIv~mYew4+$?b9nhhX+Hle!N@M6eEt(ir$cBNq$DJ zaBg?PDO&BO?jt#66y}i%6_XWmmvg(Sw+LvIU6q^N@xFttdk(qNm+ke5cjTy^J!}u&n0 zX$A{X?RQGqMwTK|kNr4$0uQV>$0>ZKH`G}1y>^PFF;`)XXJmLe`voWCb=DW?980@k z+X~%M1-%1%fG}wM`;odM;O=fcjSClDcm{FF6Ojd#{*_fvaZkG!zo)0KI%{Td1Q4vp z6-*11|Kv)KWqdvnJeBQdnnxS!U0c7X6(7j!sQP@a?Q@jVP?F?G#RrA*wbLt|5BK+9 z%#A7>T|Ajr#hzJmf%Qwr*An%_uga9YOMl!|Wzgh%7r>*5In5WV^Rk`~E_54ixpqML zs@+hD_m&S{c+M`FFe89k8?ruNkLp5S<@PGxxZ+m-;lLMW?Gj=fa-R+~dRTm2YY%c**X;_#iUzNC_V5;;iwJ$n#Zue^7 zWTe*CXjHcCq;=Fd&kdQw0!KDummqDZj zh_4P0U#c@yIhS^hv3`kCJpAlfh^jb8 zYay&HVtmm-Ei%7(?q1u!gK1agOl`z=*Po9v-24y64ipZ@d}gDw^*_a0%N~2;ug;sj z$g=#1(Z{-E4>6&<-UTByrl5sD8wG`zxe38_Sy6&wJaKeUPVvtCe6+&rN3sMj+eA`4 zcGEtuF6zboPT;Dg4;3&NPcxO@T3z(G&QxKd3g`soUzbIu^`k5J96MWnrBsLQoyf%UaU?neTb%ohU;{PRe@F&u_!7omw|}<=3Y!npmWf;=m?dS#h)J1tAU_!v6kcYui#sD)mRDQ#8_?QV zysk)afE;#o7v&fjW=C}?;{iVhs)Ota1uh(@1`-&W8XYPD8aYrIq>}hs4XkmYDA>V? z3Q;nE7EV+PByyrkl+TI3k5Xm>IWAOzvKhE?!496ilp1}V6O?j6Z=odkTa4%}gB;xW zoob%M0vx%a+MtCjZqfxng`{htOQFus3$Ud1L~wf6fe3Hq0LF9ED=v#%%KJ2yf7Jm|C3pPpaN`* zB_Aq;JiY^s6hVzB$_?uHP(Ea52?T0@i66$-U%H_@#*Zo>{^i8qss82MU_=1Mx>`jZ zt6KGjR;`)?I0`^do7xS}S^?Ay321=76;k~hXn~d>)Fr-$vIIyHL^YAOpMio9Dh?I} zQEf^`ATNYEBL0i1DSyOM-4;>sC;+yvO9+PLwe%0t0v2IZ8FBkgl)({USV-$1_^rL(OL`7jn zS7=BIW>6~%^Z1&MjPQ%W+-zeY5gkewP%efZLW-D3j2Re-L#q^45@7<#tT2!}d@zs) z?3)7l$xdd)ECKzPxyT5fi;@mB?1X+7C16YKc*u0Gh}Ly{WMtPCNEijlNEVSe31eh& z3#y9@iIN0n;JFnx@QXN^L;F_faC0jexxN*KATJ4f@`n@|PLxFTDZN0SBI;!K}(;P&LFmoa90c9K$J@fru<@OF;yN{bb?v z$46p9k1VX?4FMC@&%iFDRtNi+%515RO-3ltLZ@!J@7+m6zJ&)eVtR4pJQ z+X`U&iIW|8%0X-W5|WM{>@J~1K|%r4wL=}{bub}^Iw2+ZNhX>|K?O;m0a+DT@GOA8 znvw-Bm)PI!Xs7fYs5_GRfM_cX5_iD-KdZrn<{H?Dxo0p@ZgMbDziKxnO1%!VGLwf% zNO*|VRU!|w7F$meaDY%x$w*v7WRUL17;bnBi>=jzp`TZP&7x?-@M0?^3(=4T;5s%{ zWZZ!nh$zBtb$v<_7{FykbT^Xv?4Q3P%ztM$Nx%WSop3m+_L33#UTj9lAmaUG7)}Om zAfp6>34BS01C^lv{y{R*3khWcpj3vF_R$zg0oMv;I2WWpVubf2B^z;|umD;W*f-ul zR0VZL3O-}n^v{&+*karUwFuJ}3^#p)oz0>OYh;=u5l#@M3P(lnHxdy73#u@e$SR58 z!QT~1T41>gV&^psTdu>T$GgID*0c-O;kHh~T-bmTSA)2Z4)pDYOP{+Ms)Vf4V?v!8 z?7=DqOyE+72|mq86t;peby&lre}eFCxI)%3B5WXFFKp;fb=c56z^Z`;B5fR)Jv3ng zwHl~4vcg3oT1cK0NuUQer4Sxs3IB$euPj17Ht&EJyWz6htw{8c2c3!tGhon!)zzzQ zvil8kG|_{IfhJaRwl2Z|Y~XPt zj2t&Ya9CwUrkg7J2+Fk4W5`2GtmslpgaflXtOIj;&X$B3LA4IdrH~UwxOCz5xZ52Q zn%xmjVn8xTjt_~TAjjvw7Ul$_D2vp8)0BdRVovwqaiF^ol>ugZpj*K|q3jew4~qA| z?a2E8ObrPKSPX#W>*ztl+EXMf241wn6g<^~aqf&DVFBQ>la2`lq(a?ZeW=TcBI!6l zNfd&DQhivG(|Iz?V}NQQRu{;~!3ziz=uL!$yh_-VW6ng(D!>rs1KgExP|CnxNJlaW zTOr}8B!Lr984)kV85p^of$$Qi%fAtlU<6$Qb1~gUdx)(i-+`98mQHM~2 z>vs@VY@*HXg-%MPWIFj$gqx_7L0(mmFbf!~fWrW$jRlMwLzmh*l1>nW-GX?(3B+F; zNthWFn82AY@{CAS0MkCWKDYs$eP|F8^c-WK_rXE1(vJxilL#H~FoiDn$H>UTG1%|# zOkp_tCP`QnxDmVS*Yu`rs?U%Nn1JaF%=t#VOJ*>z@z0n}&m0al$9YURI1gt-gE=gl zc?Bav7BHgZ-oeRspJ19H2>o3XfUMz!E5<0HqZgjAUz) zndE3v{aY@HQvxiW#8Lm-_Y&tsjXu$IJK(oQr4ht{D9C|zeJW9GS^90fscsDu%wWzM zJ%Ft3BMI!F!43|~OdHq=7kdob+f#7^7h9MLh64}_xD&B1kaeeG0;i+@8;&thM>zp< z4!{nV55PQS1E}DXvV{qcIE9f@r>OXel=@Y5=h?oViI>5@ClF4*V z4seMMxke(ElwSd>BYF{ef8!r>M9mT3J0t@JpydQ-zgj67DRF|^L!}BbB3}X1uu-L3 zJgjnS4N)fsbe>b;z-4C`pg%b|Tm$<|=Qs?I#|2uW56P@uUEoznwvmiHC6bvIGV->C zijC<1Z<(lmvZ>>LJRzAffQ2WpH#WAF?FV7+-2xK_(IbfEbCQWDxa{$FY8vLo3SW}w}HhSc84ym zZ#U~$!M>AlKn@XgOw%MCD`1|66K3O1N8bbLC_a*OVps%KM11TEhBtEk+XMDh?*bWl zx&Wu%My}%zLF+r;$aGqsC=L{VgSEg6{Y&P)pPQ1I@N=`h4q~yonczT`CtPB7t^I$j zzDC7Lj1vVqUhsxe@h_P{f*0K0r6J&!H@XcZBh>6zh(g{l#Jw~a_Vz~ADDy#%H+mRx zWhOFNV9!j=jhQ<8K+~ga7|!#75m<0z0`4%p_0to;gxvzvyqH7wVd!vP7{h0Tsd=!} zGWtTCxP^on!R0N~|Ki@*2}cqQp37ne9kS4Gqxa{C_@E+&?G&jwFl>JW;&f#U-#h|$ zsp`8hf%YiunniU?_@w?{ldm3y4)3)vJf=m>g+&{zOHICzR_kI0rMlD`BcBBvIR^bC z3@|KcKrMv%y(Qx2y%?_BOU*~bGKi)rM!<1Y4|!mL3HL3qApZ5dj30E3w!(B_R{vF$ zO2p;17=Ggi_y0#7F(KQD8V8O$QZr-g?-74!nCC>&@nIPmA!09A47+*3-1@sx(*gAW z7#6{eg!w>m0G#JOUL>M~b&!1^^shQX!Ytr^ASw^97z_*L${-O&pc?|OuxeRkq$&h8 zLZaa^{LhOKMBISg`o9gcW6q|iGjqsH({iZA$V~ZfZ!&edO=c<(ita;33(3e}A+;2l z^Yc*HmW*OD1MbtP1rh@<0slf{2G>r*dq=k_5`ov?)c=-{tzpn#ua2Z+0DfWcsE0iJTE7 zsuaN)Q5tq^leg_Wtdma)^Ei1Prj0`m6PV;^crhD>7-(argkd8k8ZMAbJQ52fVy|5o zZjOP$`D&wAf-zp1_&^~1ok+1ud>$|6ZRO>aAVaJ#liCA%rLwd2PXoz z1tv6Ig#G1r0hSkNMMmCTfWsl)mW*7srD4U!#How0Fh56<&K$XZ5EC@wVIzY)iGmpD zO@NUW#>0-O{~uum4W2Nu8&^M(1bC79?nAQX1>p&B>mGZQM68ftf0BR$=83TQ%#&oq z&!2`4WS)d229(3Jy-kFXnVupu*m?=JOd*ntBwT_m%Q{C!zF&g*n2yCr&KnvU;GP7d zmWjhiKnjWn2a{mydy=55d(vhs1Y|Q{)xXne$S)rnV6znuumr>?iFbjYl3|nzS!4#= zvuHSpHxVqr;WE@+yFsRdHN*YU4H{Z7mj(^mhz7f>$PAcM;7pOKBN1EVNCPHpv}GX$ zE7$V*wm=4Pf4Lds!HZOQ zg(w4*S5Xf{<1Lw1{w-|wMuzTQh4s+BC)3ScMGcT=vt*=kmPVFrUGtr%*?eG8o`!lO z$v?GJl1>5}2B(SG zO&-IR^0e$&n%)qxhZ=@AdQdPEE;b#YEEAOkF`2L)Ms1=t0MXMUe(R7982)W5qO)KL z^9DrSF7PS~UP>2CFkx>t%nJK{OlZu8vuVu+6NK$y12wP1F6Xr;5e~Ah=(-LI&2apu zyMd}8p73~`SVQs+xSGFnB?_v*sOrBJSKuae7>yv}?I0irwgBn2S@*|lzew#31(xP^c>h#=>}0X`Sw2*9?ZUlV;qRUG0s*D zRl1Y^Q<+Tur;3FtO1K>=Mvo$4-#08ka|x`@yae4tIRa8j;Hjp`I#IC|Xsy%ofZ|90 zZEURW!D5>cpj!%cSMR}1OENVkP?e&)DcgWfDLgAS;Ko>2DQb#j@neGaeVF?hF-%D2 zr^A7g`*120%V4Bg50WAoI(F+aAJVmxf4~23-COJD8&$HhyyC|6@Wu@$`E9 z|KpGK@E~CeJRRIz}EM4Y>g zgi%2M7zP7&VZ`k*+#~0!kpvbn{1}dd&st<;UWDPBlAQ6~<{(&^zwr4w2=VI;i^KFU?hCTWF0UKb1ly-gy5 zK%^UP!REmJZg?}oa%V%4{u~}3OjSBJ)IDU@w`@v>!D@N(RV?4ZSSC=@mSJOMVUKJU};u^g+}ZY30Ba z4IDTT;*-#Sr4WY@Eynud}APTy`a~Rct zTc4a^G!l`N!K_{1z?E(q+JraMAbmeBL+h3?m!Ib?3`={U$^*|bC@+=L^s}NssxQAmVdu2%) zK93_hmzLw;O!6fN4VZwMT4!$?hgySb}h*?1ICs^X=R+4Tj**@9mGt^0RkaP?n^)qbm z&Q21+0r^fGH&)V?S=dK&KxY>9L+wv5!E&;HVEFP69DGo@@ZZF${_OHR4Px&SsHMoH=2okH1L9}t3F(c5z zG2pNg9xTANSAxC;xb=`{$L!$SSfXSUx+NI4UWBhVLzIT;Nad+0^>FJtTvTyFf0m_Xmta)d<5m zKi~-C%gNe8bD%P>Yk zXA*(O$}6z1E_-8S`zqXfK7xeuK3G~oFChLwBn2M3u)kS_W#*p7aLH)~_%QevEOR;< zBMZ?C%-EBzj$hEw4(_Ch>0nudZ}W)%h8xd67s&`35B*sR{u@)ZzoAQ863IZD@(-|F zL!*(gbRye>J<69|hgSG3BGCZ*{=mymal@vp&NdKrlHgqf11tEl4x@Y6j1lcWaHW-L z!vx_r2KZ`<8k{d1k2+uff$xs!{Dl*V>o0Vn=)tV;f8kj8)6Kw5EC~f^e^DVS>6Z*( zgdM(yI!KfTrx<`B2P%@rgBPMoea`?U-ZSv072;Xa1n_8D0G^4mCyju&qGFrgP$>a= zO1uo!6HJl;u9SE=O1KH7#PfmzsG)Qv{j7+FK` zT1Xu&NTI@u0v9U0BIOBinF@ah=|G8W8xW<&t0MZ$L_rovQRBHl7B!v^@!=p60ieyr z$OK$D7=^%JYP<|`fQy7Vhy=d+Ndv9Ncro0;%g9Q6od>S3G7h_UkKc{dp2Y+v928RGh=Mrq z$KiG1$q!PfdPz|ePG!m!9CMji}5C*ql84C5K`dX$4;KO@Yt z&Q**JGvc+8z3G^cgW~CcPC9JRMwy*}k$lNx$RJs1Q(gk^P`oFSmV+^0JdE_lElfzh z#mIq`Fpr1Tf6m9S91~s>*;VwUiaQHu#tEHHDU4J3gPyvM=ONX$6kW`zT|3k0y@g@FMp>>j!n5Xg!@f}Cq5 zehY(uR+ywRZkW5!j!o^X?I0QmfrD mKg46B^lIo_P8&L69A589K=COPTq6i4Uo#uWHvdU8Tl~(lbp~$ zYMxAYpA)|qS^r8#K7VE8#;moup!L8HGF|fz*jD(0Hw#evyQ!_G|B_jaap85Sq~Xhw zDV(tRTHJVbDpsn0(jNrA_Xo2jLv@_yANtLW*Px<-o8t|0J083?RW8FnDVYJj>hcO! LNE^&V+{pYN`I;4t delta 20424 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 diff --git a/client/src/main/java/itmo2018/se/Leech.java b/client/src/main/java/itmo2018/se/Leech.java index 148bb7c..41474d1 100644 --- a/client/src/main/java/itmo2018/se/Leech.java +++ b/client/src/main/java/itmo2018/se/Leech.java @@ -62,7 +62,9 @@ public void run() { int finish; do { for (InetSocketAddress owner : owners) { - downloadPool.submit(new Downloader(owner, fileInfo, neededParts, writer)); + if (downloadPool.getActiveCount() < downloadPool.getMaximumPoolSize()) { + downloadPool.submit(new Downloader(owner, fileInfo, neededParts, writer)); + } } Thread.sleep(20000); finish = (int) neededParts.values().stream().filter(it -> it.status == DownloadStatus.FINISH).count(); @@ -116,6 +118,7 @@ public void run() { for (Map.Entry neededPart : neededParts.entrySet()) { int partNumber = neededPart.getKey(); if (!userParts.contains(partNumber)) { + System.out.println("have not part!!!!"); continue; } PartHolder partHolder = neededPart.getValue(); @@ -142,6 +145,7 @@ public void run() { } catch (IOException e) { System.out.println("seeder " + address + " is busy"); } finally { + System.out.println("finish leech!!!!!"); synchronized (mutex) { mutex.notify(); } From 2c4b5f08dd9bbced6705aaef5e73141df4572a5a Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Sun, 16 Dec 2018 17:39:48 +0300 Subject: [PATCH 27/31] remove debug logs --- .../build/libs/TorrentClient-1.0-SNAPSHOT.jar | Bin 858425 -> 858402 bytes client/src/main/java/itmo2018/se/Client.java | 9 ++++-- .../src/main/java/itmo2018/se/ClientMain.java | 13 ++++++--- client/src/main/java/itmo2018/se/Leech.java | 14 +--------- client/src/main/java/itmo2018/se/Seeder.java | 26 ++++++++++-------- .../java/itmo2018/se/SingletonFileReader.java | 8 ++---- .../build/libs/TorrentServer-1.0-SNAPSHOT.jar | Bin 15717 -> 15742 bytes server/src/main/java/itmo2018/se/Server.java | 1 - 8 files changed, 35 insertions(+), 36 deletions(-) diff --git a/client/build/libs/TorrentClient-1.0-SNAPSHOT.jar b/client/build/libs/TorrentClient-1.0-SNAPSHOT.jar index 503401d024ce8a17de4b3ad7273c547e700c0d8f..583e876aa1d9df38060c355ba9cbf01953e32f39 100644 GIT binary patch delta 31628 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 PGcA$fh)t7au5JGZWxq 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 R&nKW&O<*OlOollU{SSKtPc{Gm diff --git a/client/src/main/java/itmo2018/se/Client.java b/client/src/main/java/itmo2018/se/Client.java index 40ced6c..d350f01 100644 --- a/client/src/main/java/itmo2018/se/Client.java +++ b/client/src/main/java/itmo2018/se/Client.java @@ -51,6 +51,13 @@ public List getSources(int id) throws IOException { } } + public void printList() throws IOException { + List notes = getList(); + for (MetaDataNote note : notes) { + System.out.println(note.getId() + "\t" + note.getName() + "\t" + note.getSize()); + } + } + public List getList() throws IOException { synchronized (socketOut) { socketOut.writeInt(1); @@ -63,7 +70,6 @@ public List getList() throws IOException { String fileName = socketIn.readUTF(); long fileSize = socketIn.readLong(); result.add(new MetaDataNote(fileId, fileName, fileSize)); - System.out.println(fileId + "\t" + fileName + "\t" + fileSize); } return result; } @@ -93,7 +99,6 @@ public void upload(String filePath) throws IOException { public void update(short seederPort) throws IOException { synchronized (socketOut) { int filesCount = metaData.filesCount(); - System.out.println("filesNumber: " + filesCount); socketOut.writeInt(1 + 2 + (filesCount + 1) * 4); socketOut.writeByte(4); socketOut.writeShort(seederPort); diff --git a/client/src/main/java/itmo2018/se/ClientMain.java b/client/src/main/java/itmo2018/se/ClientMain.java index d9ac38c..daccf36 100644 --- a/client/src/main/java/itmo2018/se/ClientMain.java +++ b/client/src/main/java/itmo2018/se/ClientMain.java @@ -3,6 +3,8 @@ import java.io.*; import java.net.ServerSocket; import java.util.Scanner; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; public class ClientMain { public static void main(String[] args) throws IOException { @@ -37,11 +39,13 @@ public void run(String workingDir) throws IOException { System.out.println("port: " + seederServer.getLocalPort()); client.startUpdat(seedPort); - Seeder seeder = new Seeder(seederServer, metaData); + Seeder seeder = new Seeder(seederServer, metaData, client); Thread seederThread = new Thread(seeder); seederThread.setDaemon(true); seederThread.start(); + ExecutorService leechPool = Executors.newFixedThreadPool(4); + Scanner scanner = new Scanner(System.in); while (true) { String[] cmdLine = scanner.nextLine().split(" +"); @@ -55,15 +59,14 @@ public void run(String workingDir) throws IOException { System.out.println("id must be positive integer number"); continue; } - //TODO добавить пул личей - new Leech(Integer.parseInt(cmdLine[1]), client, metaData, seedPort).run(); + leechPool.submit(new Leech(Integer.parseInt(cmdLine[1]), client, metaData, seedPort)); break; case "list": if (cmdLine.length != 1) { System.out.println("list not takes arguments"); continue; } - client.getList(); + client.printList(); break; case "upload": if (cmdLine.length != 2) { @@ -96,6 +99,7 @@ public void run(String workingDir) throws IOException { } client.close(); seeder.close(); + leechPool.shutdownNow(); return; default: System.out.println(cmdLine[0] + " is unknow command"); @@ -104,6 +108,7 @@ public void run(String workingDir) throws IOException { System.out.println("connection aborted"); client.close(); seeder.close(); + leechPool.shutdownNow(); return; } } diff --git a/client/src/main/java/itmo2018/se/Leech.java b/client/src/main/java/itmo2018/se/Leech.java index 41474d1..24fa478 100644 --- a/client/src/main/java/itmo2018/se/Leech.java +++ b/client/src/main/java/itmo2018/se/Leech.java @@ -35,7 +35,6 @@ public void run() { MetaDataNote note = metaData.getNote(fileId); if (note != null && !note.existFile()) { metaData.deleteNote(fileId); - System.out.println("name: " + note.getName()); } List owners = client.getSources(fileId); if (owners.size() == 0) { @@ -69,11 +68,6 @@ public void run() { Thread.sleep(20000); finish = (int) neededParts.values().stream().filter(it -> it.status == DownloadStatus.FINISH).count(); owners = client.getSources(fileId); - System.out.println("================================================="); - System.out.println("active count: " + downloadPool.getActiveCount()); - System.out.println("finish: " + finish + "\t" + "neededSize: " + neededParts.size()); - System.out.println("owners size: " + owners.size()); - System.out.println("================================================="); } while (downloadPool.getActiveCount() > 0 && finish < neededParts.size()); if (finish == neededParts.size()) { @@ -118,7 +112,6 @@ public void run() { for (Map.Entry neededPart : neededParts.entrySet()) { int partNumber = neededPart.getKey(); if (!userParts.contains(partNumber)) { - System.out.println("have not part!!!!"); continue; } PartHolder partHolder = neededPart.getValue(); @@ -133,7 +126,6 @@ public void run() { } try { byte[] bytes = download(socket, partNumber); - System.out.println("download part " + partNumber); partHolder.content = bytes; writer.addPart(partHolder); } catch (IOException e) { @@ -143,9 +135,8 @@ public void run() { } } } catch (IOException e) { - System.out.println("seeder " + address + " is busy"); + //seeder is busy } finally { - System.out.println("finish leech!!!!!"); synchronized (mutex) { mutex.notify(); } @@ -214,12 +205,9 @@ public void run() { } try (RandomAccessFile accessfile = new RandomAccessFile(file, "rw")) { while (!this.isInterrupted() || queue.size() > 0) { - //TODO переделать queue PartHolder partHolder = queue.take(); - accessfile.seek(partSize * partHolder.number); accessfile.write(partHolder.content); - metaData.addPart(fileInfo.getId(), partHolder.number); partHolder.status = DownloadStatus.FINISH; } diff --git a/client/src/main/java/itmo2018/se/Seeder.java b/client/src/main/java/itmo2018/se/Seeder.java index ce58e3e..6ac424b 100644 --- a/client/src/main/java/itmo2018/se/Seeder.java +++ b/client/src/main/java/itmo2018/se/Seeder.java @@ -12,12 +12,14 @@ public class Seeder implements Runnable, Closeable { private ServerSocket server; private MetaDataManager metaData; private ThreadPoolExecutor poolExecutor; + private Client client; private int limitLeech = 4; - public Seeder(ServerSocket server, MetaDataManager metaData) { + public Seeder(ServerSocket server, MetaDataManager metaData, Client client) { this.server = server; this.metaData = metaData; - poolExecutor = (ThreadPoolExecutor) Executors.newFixedThreadPool(limitLeech); + this.poolExecutor = (ThreadPoolExecutor) Executors.newFixedThreadPool(limitLeech); + this.client = client; } @Override @@ -52,7 +54,6 @@ private class Executor implements Runnable { @Override public void run() { - System.out.println("run seeder"); while (true) { try (DataInputStream socketIn = new DataInputStream(socket.getInputStream()); DataOutputStream socketOut = new DataOutputStream(socket.getOutputStream())) { @@ -65,10 +66,7 @@ public void run() { } } } catch (IOException e) { - System.out.println("+++++++++++++++++++++++++"); - e.printStackTrace(); - System.out.println("leech disconected"); - System.out.println("+++++++++++++++++++++++++"); + //disconnect leech } try { socket.close(); @@ -103,17 +101,23 @@ private void execGet(DataInputStream socketIn, DataOutputStream socketOut) throw int id = socketIn.readInt(); int part = socketIn.readInt(); - System.out.println("needed part: " + part); - MetaDataNote note = metaData.getNote(id); if (file == null) { - file = SingletonFileReader.getFile(note.getName()); + File neededFile = new File(note.getName()); + if (!neededFile.exists()) { + metaData.deleteNote(id); + client.update((short) server.getLocalPort()); + socketOut.writeInt(0); + socketOut.flush(); + socket.close(); + return; + } + file = SingletonFileReader.getFile(neededFile); } long defaultPartSize = 1024 * 1024 * 5; int partSize = (int) (file.length() - defaultPartSize * part > defaultPartSize ? defaultPartSize : file.length() - defaultPartSize * part); byte[] bytes = new byte[partSize]; -// file.seek(defaultPartSize * part); file.read(defaultPartSize * part, bytes); socketOut.writeInt(partSize); diff --git a/client/src/main/java/itmo2018/se/SingletonFileReader.java b/client/src/main/java/itmo2018/se/SingletonFileReader.java index 7d41b36..acc9c47 100644 --- a/client/src/main/java/itmo2018/se/SingletonFileReader.java +++ b/client/src/main/java/itmo2018/se/SingletonFileReader.java @@ -1,9 +1,6 @@ package itmo2018.se; -import java.io.Closeable; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.RandomAccessFile; +import java.io.*; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; @@ -14,7 +11,8 @@ public class SingletonFileReader { private SingletonFileReader() { } - public static FileHolder getFile(String path) throws FileNotFoundException { + public static FileHolder getFile(File file) throws FileNotFoundException { + String path = file.getAbsolutePath(); if (!files.containsKey(path)) { synchronized (files) { if (!files.containsKey(path)) { diff --git a/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar b/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar index 17c1486ac48cbe8f1482c67d8ac5392e1588fe6d..214953e4c57497d7a7d9b3233dd74ec5bd2dd8a0 100644 GIT binary patch delta 3925 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 Date: Sun, 16 Dec 2018 19:02:12 +0300 Subject: [PATCH 28/31] complet ha --- .../build/libs/TorrentClient-1.0-SNAPSHOT.jar | Bin 858402 -> 858498 bytes client/src/main/java/itmo2018/se/Client.java | 14 ++++++++---- .../src/main/java/itmo2018/se/ClientMain.java | 19 ++++++++++------- client/src/main/java/itmo2018/se/Leech.java | 20 +++++++----------- .../build/libs/TorrentServer-1.0-SNAPSHOT.jar | Bin 15742 -> 15629 bytes server/src/main/java/itmo2018/se/Server.java | 8 ------- server/src/main/java/itmo2018/se/Writer.java | 2 -- 7 files changed, 29 insertions(+), 34 deletions(-) diff --git a/client/build/libs/TorrentClient-1.0-SNAPSHOT.jar b/client/build/libs/TorrentClient-1.0-SNAPSHOT.jar index 583e876aa1d9df38060c355ba9cbf01953e32f39..a99710fa2958919e1cb3871b1a317f8de42c9892 100644 GIT binary patch delta 26913 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 delta 26848 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%0DboVs8Jy5EYLoq1_@*VngZhdpEKA3 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 Io?V*$4_NDo%>V!Z diff --git a/client/src/main/java/itmo2018/se/Client.java b/client/src/main/java/itmo2018/se/Client.java index d350f01..5985649 100644 --- a/client/src/main/java/itmo2018/se/Client.java +++ b/client/src/main/java/itmo2018/se/Client.java @@ -17,9 +17,9 @@ public class Client implements Closeable { private DataInputStream socketIn; private ScheduledExecutorService scheduled; - - public Client(MetaDataManager metaData) throws IOException { - this.socket = new Socket("192.168.1.2", 8081); + //"192.168.1.2" + public Client(String host, MetaDataManager metaData) throws IOException { + this.socket = new Socket(host, 8081); this.metaData = metaData; try { socketOut = new DataOutputStream(socket.getOutputStream()); @@ -45,12 +45,18 @@ public List getSources(int id) throws IOException { int port = shortToInt(socketIn.readShort()); InetSocketAddress address = new InetSocketAddress(ip1 + "." + ip2 + "." + ip3 + "." + ip4, port); res.add(address); - System.out.println(address); } return res; } } + public void printSource(int id) throws IOException { + List adresses = getSources(id); + for (InetSocketAddress address : adresses) { + System.out.println(address); + } + } + public void printList() throws IOException { List notes = getList(); for (MetaDataNote note : notes) { diff --git a/client/src/main/java/itmo2018/se/ClientMain.java b/client/src/main/java/itmo2018/se/ClientMain.java index daccf36..a2cb9d4 100644 --- a/client/src/main/java/itmo2018/se/ClientMain.java +++ b/client/src/main/java/itmo2018/se/ClientMain.java @@ -10,23 +10,27 @@ public class ClientMain { public static void main(String[] args) throws IOException { File workingDir; if (args.length == 0) { + System.out.println("lack of tracker host and working directory"); + return; + } else if (args.length == 1) { workingDir = new File(System.getProperty("user.dir")); } else { - workingDir = new File(args[0]); + workingDir = new File(args[1]); if (!workingDir.exists() && !workingDir.isDirectory()) { - System.out.println("can't find " + args[0] + " folder"); + System.out.println("can't find " + args[1] + " folder"); return; } } - new ClientMain().run(workingDir.getAbsolutePath()); + String host = args[0]; + new ClientMain().run(host, workingDir.getAbsolutePath()); } - public void run(String workingDir) throws IOException { + public void run(String trackerHost, String workingDir) throws IOException { MetaDataManager metaData = initWorkingDir(workingDir); Client client; try { - client = new Client(metaData); + client = new Client(trackerHost, metaData); } catch (IOException e) { System.out.println("can't connect to server"); return; @@ -36,7 +40,6 @@ public void run(String workingDir) throws IOException { seederServer.setReceiveBufferSize(1024); short seedPort = (short) seederServer.getLocalPort(); - System.out.println("port: " + seederServer.getLocalPort()); client.startUpdat(seedPort); Seeder seeder = new Seeder(seederServer, metaData, client); @@ -83,7 +86,7 @@ public void run(String workingDir) throws IOException { System.out.println("id must be positive integer number"); continue; } - client.getSources(Integer.parseInt(cmdLine[1])); + client.printSource(Integer.parseInt(cmdLine[1])); break; case "update": if (cmdLine.length != 1) { @@ -108,7 +111,7 @@ public void run(String workingDir) throws IOException { System.out.println("connection aborted"); client.close(); seeder.close(); - leechPool.shutdownNow(); + leechPool.shutdown(); return; } } diff --git a/client/src/main/java/itmo2018/se/Leech.java b/client/src/main/java/itmo2018/se/Leech.java index 24fa478..cf4f82e 100644 --- a/client/src/main/java/itmo2018/se/Leech.java +++ b/client/src/main/java/itmo2018/se/Leech.java @@ -35,6 +35,7 @@ public void run() { MetaDataNote note = metaData.getNote(fileId); if (note != null && !note.existFile()) { metaData.deleteNote(fileId); + note = null; } List owners = client.getSources(fileId); if (owners.size() == 0) { @@ -74,15 +75,15 @@ public void run() { metaData.finishCollectParts(fileId); System.out.println("finish download file " + fileInfo.getName()); } else { - System.out.println("not possible to download the whole file because there are no seeders"); + System.out.println("not possible to download the whole file because there are no active seeders"); } client.update(ownSeederPort); } catch (IOException e) { System.out.println("can't connect to seeder"); } catch (InterruptedException e) { - e.printStackTrace(); + //interupt } finally { - downloadPool.shutdown(); + downloadPool.shutdownNow(); if (writer != null) { writer.interrupt(); } @@ -125,10 +126,9 @@ public void run() { } } try { - byte[] bytes = download(socket, partNumber); - partHolder.content = bytes; + partHolder.content = download(socket, partNumber); writer.addPart(partHolder); - } catch (IOException e) { + } catch (Exception e) { partHolder.status = DownloadStatus.WAITING; return; } @@ -184,12 +184,8 @@ private class FileWriter extends Thread { this.fileInfo = fileInfo; } - void addPart(PartHolder partHolder) { - try { - queue.put(partHolder); - } catch (InterruptedException e) { - e.printStackTrace(); - } + void addPart(PartHolder partHolder) throws InterruptedException { + queue.put(partHolder); } @Override diff --git a/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar b/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar index 214953e4c57497d7a7d9b3233dd74ec5bd2dd8a0..67239f0274739590df1669f280555bc58a220a10 100644 GIT binary patch delta 5278 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 -1) { - //TODO убрать очередб, так как каждый клиент работает в блокирующем режиме if (clientQueue.size() > 0) { ClientDataHolder data = clientQueue.poll(); data.getClientInfo().getChannel().register(selector, SelectionKey.OP_WRITE, data); @@ -42,7 +41,6 @@ public void run() { ClientDataHolder responceQueue = (ClientDataHolder) key.attachment(); ByteBuffer responce = responceQueue.getResponse(); if (responce != null) { - System.out.println("Send responce!!!!"); channel.write(responce); } else { key.cancel(); From 1011e93812fd878ee037aa42b0c22967f7fde3af Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Sun, 16 Dec 2018 19:08:13 +0300 Subject: [PATCH 29/31] readme --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 48ee6bb..1108fa3 100644 --- a/README.md +++ b/README.md @@ -1 +1,9 @@ -# JavaITMO2018 +### Сервер +```sh +java -jar server/build/libs/TorrentServer-1.0-SNAPSHOT.jar +``` + +### Клиент +```sh +java -jar client/build/libs/TorrentClient-1.0-SNAPSHOT.jar +``` From f2f87513dd476406d49907012bff30b7085d6aa6 Mon Sep 17 00:00:00 2001 From: vladislavkalinin Date: Sat, 16 Mar 2019 20:23:06 +0300 Subject: [PATCH 30/31] minor fix --- .../build/libs/TorrentClient-1.0-SNAPSHOT.jar | Bin 858498 -> 858444 bytes client/src/main/java/itmo2018/se/Leech.java | 7 ++++++- .../build/libs/TorrentServer-1.0-SNAPSHOT.jar | Bin 15629 -> 15583 bytes server/src/main/java/itmo2018/se/Server.java | 18 +++++++++++++----- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/client/build/libs/TorrentClient-1.0-SNAPSHOT.jar b/client/build/libs/TorrentClient-1.0-SNAPSHOT.jar index a99710fa2958919e1cb3871b1a317f8de42c9892..b697533f84351e2b6b8ce74efc72a26411fdd05a 100644 GIT binary patch delta 35847 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 delta 36120 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 UV@4X|07yra#=~02MLgX6KXOCXjsO4v diff --git a/client/src/main/java/itmo2018/se/Leech.java b/client/src/main/java/itmo2018/se/Leech.java index cf4f82e..bf8f3d6 100644 --- a/client/src/main/java/itmo2018/se/Leech.java +++ b/client/src/main/java/itmo2018/se/Leech.java @@ -20,6 +20,7 @@ public class Leech implements Runnable { private ThreadPoolExecutor downloadPool = (ThreadPoolExecutor) Executors.newFixedThreadPool(8); private final Object mutex = new Object(); private short ownSeederPort; + private Set usedSeeders = Collections.synchronizedSet(new HashSet<>()); public Leech(int fileId, Client client, MetaDataManager metaData, short ownSeederPort) { this.fileId = fileId; @@ -63,7 +64,9 @@ public void run() { do { for (InetSocketAddress owner : owners) { if (downloadPool.getActiveCount() < downloadPool.getMaximumPoolSize()) { - downloadPool.submit(new Downloader(owner, fileInfo, neededParts, writer)); + if (!usedSeeders.contains(owner)) { + downloadPool.submit(new Downloader(owner, fileInfo, neededParts, writer)); + } } } Thread.sleep(20000); @@ -109,6 +112,7 @@ public void run() { try (Socket socket = new Socket()) { socket.connect(address); Set userParts = getStat(socket); + usedSeeders.add(address); for (Map.Entry neededPart : neededParts.entrySet()) { int partNumber = neededPart.getKey(); @@ -137,6 +141,7 @@ public void run() { } catch (IOException e) { //seeder is busy } finally { + usedSeeders.remove(address); synchronized (mutex) { mutex.notify(); } diff --git a/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar b/server/build/libs/TorrentServer-1.0-SNAPSHOT.jar index 67239f0274739590df1669f280555bc58a220a10..bcfa1103f36e327a4ae27f02b2185ad9b17b71a8 100644 GIT binary patch delta 11276 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 Date: Sat, 16 Mar 2019 20:40:10 +0300 Subject: [PATCH 31/31] Update README.md --- README.md | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1108fa3..f70fe36 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,57 @@ ### Сервер ```sh -java -jar server/build/libs/TorrentServer-1.0-SNAPSHOT.jar +java -jar server/build/libs/TorrentServer-1.0-SNAPSHOT.jar ``` ### Клиент ```sh java -jar client/build/libs/TorrentClient-1.0-SNAPSHOT.jar ``` + +### Torrent +* На трекере хранится список файлов и информация об активных пользователях, у которых есть те или иные файлы (возможно не целиком). +* С помощью клиентского приложения можно просматривать список файлов на трекере, а также добавлять новые и выбирать файлы из списка для скачивания. +* Файлы условно разбиваются на последовательные блоки бинарных данных константного размера (10Mб) +* Клиент при подключении отправляет на трекер список раздаваемых им файлов. +* При скачивании файла клиент получает у трекера информацию о клиентах, раздающих файл (сидах), и далее общается с ними напрямую. +* У отдельного сида можно узнать о том, какие полные части у него есть, а также скачать их. +* После скачивания отдельных блоков некоторого файла клиент становится сидом. + +### Torrent-tracker +* Хранит мета-информацию о раздаваемых файлах: + * идентификатор + * активные клиенты (недавно был update), у которых есть этот файл целиком или некоторые его части +* Порт сервера: 8081 +* Запросы: + * list — список раздаваемых файлов + * upload — публикация нового файла + * sources — список клиентов, владеющих определенным файлов целиком или некоторыми его частями + * update — загрузка клиентом данных о раздаваемых файлах + +#### List +Формат запроса: <1: Byte> Формат ответа: ( )*, count — количество файлов id — идентификатор файла name — название файла size — размер файла + +#### Upload +Формат запроса: <2: Byte> , name — название файла size — размер файла Формат ответа: , id — идентификатор файла + +#### Sources +Формат запроса: <3: Byte> , id — идентификатор файла Формат ответа: ( )*, size — количество клиентов, раздающих файл ip — ip клиента + +#### Update +Формат запроса: <4: Byte> ()*, clientPort — порт клиента, count — количество раздаваемых файлов, id — идентификатор файла Формат ответа: , status — True, если информация успешно обновлена + +Клиент обязан исполнять данный запрос каждые 5 минут, иначе сервер считает, что клиент ушел с раздачи + +### Torrent-client +* Порт клиента указывается при запуске и передается на трекер в рамках запроса update +* Каждый файл раздается по частям, размер части — константа на всё приложение +* Клиент хранит и раздает эти самые части +* Запросы: + * stat — доступные для раздачи части определенного файла + * get — скачивание части определенного файла + +#### Stat +Формат запроса: <1: Byte> , id — идентификатор файла Формат ответа: ()*, count — количество доступных частей part — номер части + +#### Get +Формат запроса: <2: Byte> id — идентификатор файла, part — номер части Формат ответа: