From 2c5f43040c0b5842c18291ca2d5a0e676b4c4f54 Mon Sep 17 00:00:00 2001
From: Floris Claessens <FMD.Claessens@student.han.nl>
Date: Wed, 24 May 2023 13:24:30 +0200
Subject: [PATCH 1/6] Created BootstrapService to handle the bootstrap
 functioncalling. This means BootstrapHelper is now deprecated (if this works)

---
 .../core/application/dtos/LoginDTO.java       |  29 ++++
 .../core/application/dtos/RegisterDTO.java    |  11 ++
 .../bootstrapapi/BootstrapService.java        | 146 ++++++++++++++++++
 .../bootstrapapi/IBootstrapService.java       |  14 ++
 .../networkmodule/http/BootstrapHelper.java   |   1 +
 5 files changed, 201 insertions(+)
 create mode 100644 src/main/java/nl/han/aim/asd/veilveilig/core/application/dtos/LoginDTO.java
 create mode 100644 src/main/java/nl/han/aim/asd/veilveilig/core/application/dtos/RegisterDTO.java
 create mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java
 create mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/IBootstrapService.java

diff --git a/src/main/java/nl/han/aim/asd/veilveilig/core/application/dtos/LoginDTO.java b/src/main/java/nl/han/aim/asd/veilveilig/core/application/dtos/LoginDTO.java
new file mode 100644
index 00000000..56fb2082
--- /dev/null
+++ b/src/main/java/nl/han/aim/asd/veilveilig/core/application/dtos/LoginDTO.java
@@ -0,0 +1,29 @@
+package nl.han.aim.asd.veilveilig.core.application.dtos;
+
+public class LoginDTO {
+    String email;
+    String password;
+
+
+
+    public LoginDTO(String email, String password) {
+        this.email = email;
+        this.password = password;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/core/application/dtos/RegisterDTO.java b/src/main/java/nl/han/aim/asd/veilveilig/core/application/dtos/RegisterDTO.java
new file mode 100644
index 00000000..c77f33a8
--- /dev/null
+++ b/src/main/java/nl/han/aim/asd/veilveilig/core/application/dtos/RegisterDTO.java
@@ -0,0 +1,11 @@
+package nl.han.aim.asd.veilveilig.core.application.dtos;
+
+public record RegisterDTO(String email,
+                          String password,
+                          String company,
+                          String firstname,
+                          String lastname,
+                          String address,
+                          boolean seller) {
+
+}
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java
new file mode 100644
index 00000000..f21589bc
--- /dev/null
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java
@@ -0,0 +1,146 @@
+package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi;
+
+import com.google.gson.Gson;
+import nl.han.aim.asd.veilveilig.core.application.dtos.LoginDTO;
+import nl.han.aim.asd.veilveilig.core.application.dtos.RegisterDTO;
+import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.models.JoinNetworkRequest;
+import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.models.JoinNetworkResponse;
+
+import java.io.*;
+import java.net.*;
+
+public class BootstrapService implements IBootstrapService{
+
+    public HttpURLConnection prepareConnection(String address, String urlExtension) {
+        HttpURLConnection connection = null;
+        try {
+            URI uri = new URI(address + urlExtension);
+            connection = (HttpURLConnection) uri.toURL().openConnection();
+            connection.setRequestMethod("POST");
+            connection.setRequestProperty("Content-Type", "application/json");
+            connection.setDoOutput(true);
+        } catch (Exception e) {
+                e.printStackTrace();
+            }
+        return connection;
+        }
+
+        @Override
+    public String getResponseBody(HttpURLConnection connection) throws Exception {
+        StringBuilder responseBuilder = new StringBuilder();
+        try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"))) {
+            String responseLine = null;
+            while ((responseLine = br.readLine()) != null) {
+                responseBuilder.append(responseLine.trim());
+            }
+        }
+        return responseBuilder.toString();
+    }
+
+    @Override
+    public String login(String email, String password, String address) {
+        try {
+            LoginDTO currentLogin = new LoginDTO(email, password);
+            HttpURLConnection connection = prepareConnection(address, "/login");
+
+            Gson gson = new Gson();
+            String jsonInputString = gson.toJson(currentLogin);
+            try (OutputStream os = connection.getOutputStream()) {
+                byte[] input = jsonInputString.getBytes("utf-8");
+                os.write(input, 0, input.length);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+
+
+            int responseStatus = connection.getResponseCode();
+            switch (responseStatus) {
+                case 404 -> throw new Exception(responseStatus + " Not Found");
+                case 401 -> throw new Exception(responseStatus + " Unauthorized Access Attempt");
+                case 200 -> {
+                    return connection.getResponseMessage();
+                }
+            }
+        } catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    @Override
+        public int register(String email, String password, String company, String firstname, String lastname, String address, boolean seller) {
+        try {
+            RegisterDTO currentRegister = new RegisterDTO(email, password, company, firstname, lastname, address, seller);
+            HttpURLConnection connection = prepareConnection(address, "/register");
+
+            Gson gson = new Gson();
+            String jsonInputString = gson.toJson(currentRegister);
+            try (OutputStream os = connection.getOutputStream()) {
+                byte[] input = jsonInputString.getBytes("utf-8");
+                os.write(input, 0, input.length);
+            }
+            return connection.getResponseCode();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    @Override
+    public JoinNetworkResponse sendJoinRequest(JoinNetworkRequest request, String address) {
+        try {
+            HttpURLConnection connection = prepareConnection(address, "/joinNetwork");
+
+            Gson gson = new Gson();
+            String jsonInputString = gson.toJson(request);
+            try (OutputStream os = connection.getOutputStream()) {
+                byte[] input = jsonInputString.getBytes("utf-8");
+                os.write(input, 0, input.length);
+            }
+
+            JoinNetworkResponse response;
+            int statusCode = connection.getResponseCode();
+            if (statusCode == 200) {
+                response = gson.fromJson(getResponseBody(connection), JoinNetworkResponse.class);
+                response.setMaster(false);
+            } else if (statusCode == 201 || statusCode == 208) {
+                response = new JoinNetworkResponse();
+                response.setMaster(true);
+            } else {
+                throw new Exception("Unexpected HTTP status code: " + statusCode);
+            }
+
+            connection.disconnect();
+
+            return response;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    @Override
+    public void sendNewMasterRequest(JoinNetworkRequest request, String address) {
+        try {
+            HttpURLConnection connection = prepareConnection(address, "/updateMaster");
+
+            Gson gson = new Gson();
+            String jsonInputString = gson.toJson(request);
+            try (OutputStream os = connection.getOutputStream()) {
+                byte[] input = jsonInputString.getBytes("utf-8");
+                os.write(input, 0, input.length);
+            }
+
+            int statusCode = connection.getResponseCode();
+            if(statusCode != 200){
+                throw new Exception("Unexpected HTTP status code: " + statusCode);
+            }
+
+            connection.disconnect();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+}
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/IBootstrapService.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/IBootstrapService.java
new file mode 100644
index 00000000..2ace9836
--- /dev/null
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/IBootstrapService.java
@@ -0,0 +1,14 @@
+package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi;
+
+import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.models.JoinNetworkRequest;
+import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.models.JoinNetworkResponse;
+
+import java.net.HttpURLConnection;
+
+public interface IBootstrapService {
+    String login(String email, String password, String address);
+    int register(String email, String password, String company, String firstname, String lastname, String address, boolean seller);
+    JoinNetworkResponse sendJoinRequest(JoinNetworkRequest request, String address);
+    void sendNewMasterRequest(JoinNetworkRequest request, String address);
+    String getResponseBody(HttpURLConnection connection) throws Exception;
+}
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/http/BootstrapHelper.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/http/BootstrapHelper.java
index 15507a3d..2af093aa 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/http/BootstrapHelper.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/http/BootstrapHelper.java
@@ -8,6 +8,7 @@ import java.io.*;
 import java.net.HttpURLConnection;
 import java.net.URL;
 
+@Deprecated
 public class BootstrapHelper {
     public static JoinNetworkResponse sendJoinRequest(JoinNetworkRequest request, String address) {
         try {
-- 
GitLab


From 658a1fa5906de68e1fce43625b6c18e668071ef7 Mon Sep 17 00:00:00 2001
From: Tom Janssen <t.janssen16@student.han.nl>
Date: Wed, 24 May 2023 15:46:32 +0200
Subject: [PATCH 2/6] Finished work on bootstrap package

---
 Veil_Veilig.iml                               | 113 ----------------
 .../core/dependencyinjection/MyModule.java    |   3 +
 .../bootstrapapi/BootstrapService.java        |  66 ++++++---
 .../bootstrapapi/IBootstrapService.java       |  11 +-
 .../bootstrapapi/models/Auction.java          |  66 +++++++++
 .../bootstrapapi/models/Category.java         |  18 +++
 .../models/JoinNetworkRequest.java            |  13 ++
 .../models/JoinNetworkResponse.java           |  31 +++++
 .../bootstrapapi/models}/LoginDTO.java        |   4 +-
 .../bootstrapapi/models/Lot.java              | 128 ++++++++++++++++++
 .../bootstrapapi/models/Photo.java            |  41 ++++++
 .../bootstrapapi/models}/RegisterDTO.java     |   2 +-
 .../bootstrapapi/models/StartDataDto.java     |  10 ++
 .../infrastructure/networkmodule/Peer.java    |  17 +--
 src/test/java/network/manual/Main.java        |  21 ++-
 15 files changed, 385 insertions(+), 159 deletions(-)
 delete mode 100644 Veil_Veilig.iml
 create mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Auction.java
 create mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Category.java
 create mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/JoinNetworkRequest.java
 create mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/JoinNetworkResponse.java
 rename src/main/java/nl/han/aim/asd/veilveilig/{core/application/dtos => modules/infrastructure/bootstrapapi/models}/LoginDTO.java (85%)
 create mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Lot.java
 create mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Photo.java
 rename src/main/java/nl/han/aim/asd/veilveilig/{core/application/dtos => modules/infrastructure/bootstrapapi/models}/RegisterDTO.java (79%)
 create mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/StartDataDto.java

diff --git a/Veil_Veilig.iml b/Veil_Veilig.iml
deleted file mode 100644
index e6c14492..00000000
--- a/Veil_Veilig.iml
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_17">
-    <output url="file://$MODULE_DIR$/target/classes" />
-    <output-test url="file://$MODULE_DIR$/target/test-classes" />
-    <content url="file://$MODULE_DIR$">
-      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
-      <excludeFolder url="file://$MODULE_DIR$/target" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.9.2" level="project" />
-    <orderEntry type="library" name="Maven: org.junit.platform:junit-platform-engine:1.9.2" level="project" />
-    <orderEntry type="library" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
-    <orderEntry type="library" name="Maven: org.junit.platform:junit-platform-commons:1.9.2" level="project" />
-    <orderEntry type="library" name="Maven: org.junit.jupiter:junit-jupiter-api:5.9.2" level="project" />
-    <orderEntry type="library" name="Maven: org.apiguardian:apiguardian-api:1.1.2" level="project" />
-    <orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.26" level="project" />
-    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.2.16.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.1.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
-    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.0.1.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.jboss:jandex:2.0.3.Final" level="project" />
-    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.0" level="project" />
-    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
-    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.1.Final" level="project" />
-    <orderEntry type="library" name="Maven: org.xerial:sqlite-jdbc:3.41.2.1" level="project" />
-    <orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
-    <orderEntry type="library" name="Maven: com.google.inject:guice:5.1.0" level="project" />
-    <orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
-    <orderEntry type="library" name="Maven: com.google.guava:guava:30.1-jre" level="project" />
-    <orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" />
-    <orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
-    <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
-    <orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.5.0" level="project" />
-    <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.4" level="project" />
-    <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
-    <orderEntry type="library" name="Maven: com.github.gwenn:sqlite-dialect:master" level="project" />
-    <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.2" level="project" />
-    <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:1.2.1" level="project" />
-    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.3.3" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.activation:jakarta.activation:1.2.2" level="project" />
-    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-xjc:2.3.3" level="project" />
-    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-jxc:2.3.3" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:4.0.0" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-core:4.0.0" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: org.eclipse.angus:angus-activation:1.0.0" level="project" />
-    <orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:4.0.0" level="project" />
-    <orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:4.1.1" level="project" />
-    <orderEntry type="library" name="Maven: org.javassist:javassist:3.25.0-GA" level="project" />
-    <orderEntry type="library" name="Maven: org.json:json:20220924" level="project" />
-    <orderEntry type="library" name="Maven: nl.han.asd:rpc:1.1.15" level="project" />
-    <orderEntry type="library" name="Maven: org.jetbrains:annotations:24.0.1" level="project" />
-    <orderEntry type="library" name="Maven: com.microsoft.azure:applicationinsights-core:2.6.0" level="project" />
-    <orderEntry type="library" name="Maven: com.microsoft.azure:applicationinsights-logging-log4j2:2.6.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.11.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.11.0" level="project" />
-    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.7" level="project" />
-    <orderEntry type="library" name="Maven: nl.han.aim.asd:heartbeat-manager:1.0.11" level="project" />
-    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.10.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven.plugins:maven-assembly-plugin:3.3.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven:maven-plugin-api:3.0" level="project" />
-    <orderEntry type="library" name="Maven: org.sonatype.sisu:sisu-inject-plexus:1.4.2" level="project" />
-    <orderEntry type="library" name="Maven: org.sonatype.sisu:sisu-inject-bean:1.4.2" level="project" />
-    <orderEntry type="library" name="Maven: org.sonatype.sisu:sisu-guice:noaop:2.1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven:maven-core:3.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven:maven-settings:3.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven:maven-settings-builder:3.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven:maven-repository-metadata:3.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven:maven-model-builder:3.0" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.maven:maven-aether-provider:3.0" level="project" />
-    <orderEntry type="library" name="Maven: org.sonatype.aether:aether-impl:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.sonatype.aether:aether-spi:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.sonatype.aether:aether-api:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.sonatype.aether:aether-util:1.7" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-classworlds:2.2.3" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-component-annotations:1.5.5" level="project" />
-    <orderEntry type="library" name="Maven: org.sonatype.plexus:plexus-sec-dispatcher:1.3" level="project" />
-    <orderEntry type="library" name="Maven: org.sonatype.plexus:plexus-cipher:1.4" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven:maven-artifact:3.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven:maven-model:3.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven.shared:maven-common-artifact-filters:3.1.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven.shared:maven-shared-utils:3.1.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven.shared:maven-artifact-transfer:0.11.0" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-interpolation:1.25" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-archiver:4.2.1" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.19" level="project" />
-    <orderEntry type="library" name="Maven: org.iq80.snappy:snappy:0.4" level="project" />
-    <orderEntry type="library" scope="RUNTIME" name="Maven: org.tukaani:xz:1.8" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven.shared:file-management:3.0.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven.shared:maven-shared-io:3.0.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven:maven-compat:3.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven.wagon:wagon-provider-api:2.10" level="project" />
-    <orderEntry type="library" name="Maven: commons-io:commons-io:2.5" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven.shared:maven-filtering:3.1.1" level="project" />
-    <orderEntry type="library" name="Maven: org.sonatype.plexus:plexus-build-api:0.0.7" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-io:3.2.0" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.maven:maven-archiver:3.5.0" level="project" />
-    <orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-utils:3.3.0" level="project" />
-    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.6" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:4.11.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:5.3.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.14.4" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.14.4" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:3.3" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
-  </component>
-</module>
\ No newline at end of file
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/core/dependencyinjection/MyModule.java b/src/main/java/nl/han/aim/asd/veilveilig/core/dependencyinjection/MyModule.java
index 499d64a7..3b478262 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/core/dependencyinjection/MyModule.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/core/dependencyinjection/MyModule.java
@@ -9,6 +9,8 @@ import nl.han.aim.asd.veilveilig.core.application.adapters.StorageAdapter;
 import nl.han.aim.asd.veilveilig.core.application.dependencies.*;
 import nl.han.aim.asd.veilveilig.core.application.ports.*;
 import nl.han.aim.asd.veilveilig.core.application.usecases.*;
+import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.BootstrapService;
+import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.IBootstrapService;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.localstorage.*;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.Peer;
 import nl.han.aim.asd.veilveilig.rpc.IRpcServer;
@@ -58,5 +60,6 @@ public class MyModule extends AbstractModule {
         bind(IRpcServer.class).toInstance(new RpcServer(rpcPort));
         bind(IHeartbeatManager.class).toInstance(new HeartbeatManager(heartbeatPort));
         bind(INetwork.class).to(Peer.class).asEagerSingleton();
+        bind(IBootstrapService.class).to(BootstrapService.class).asEagerSingleton();
     }
 }
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java
index f21589bc..703e3a15 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java
@@ -1,31 +1,29 @@
 package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi;
 
 import com.google.gson.Gson;
-import nl.han.aim.asd.veilveilig.core.application.dtos.LoginDTO;
-import nl.han.aim.asd.veilveilig.core.application.dtos.RegisterDTO;
-import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.models.JoinNetworkRequest;
-import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.models.JoinNetworkResponse;
+import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models.*;
 
 import java.io.*;
 import java.net.*;
 
 public class BootstrapService implements IBootstrapService{
+    String token;
 
-    public HttpURLConnection prepareConnection(String address, String urlExtension) {
+    public HttpURLConnection prepareConnection(String address, String urlExtension, String method) {
         HttpURLConnection connection = null;
         try {
             URI uri = new URI(address + urlExtension);
             connection = (HttpURLConnection) uri.toURL().openConnection();
-            connection.setRequestMethod("POST");
-            connection.setRequestProperty("Content-Type", "application/json");
+            connection.setRequestMethod(method);
+            if(method == "POST") connection.setRequestProperty("Content-Type", "application/json");
             connection.setDoOutput(true);
         } catch (Exception e) {
-                e.printStackTrace();
-            }
-        return connection;
+            e.printStackTrace();
         }
+        return connection;
+    }
 
-        @Override
+    @Override
     public String getResponseBody(HttpURLConnection connection) throws Exception {
         StringBuilder responseBuilder = new StringBuilder();
         try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"))) {
@@ -38,10 +36,10 @@ public class BootstrapService implements IBootstrapService{
     }
 
     @Override
-    public String login(String email, String password, String address) {
+    public void login(String email, String password, String address) {
         try {
             LoginDTO currentLogin = new LoginDTO(email, password);
-            HttpURLConnection connection = prepareConnection(address, "/login");
+            HttpURLConnection connection = prepareConnection(address, "/login", "POST");
 
             Gson gson = new Gson();
             String jsonInputString = gson.toJson(currentLogin);
@@ -58,21 +56,20 @@ public class BootstrapService implements IBootstrapService{
                 case 404 -> throw new Exception(responseStatus + " Not Found");
                 case 401 -> throw new Exception(responseStatus + " Unauthorized Access Attempt");
                 case 200 -> {
-                    return connection.getResponseMessage();
+                    token = getResponseBody(connection);
                 }
             }
         } catch (Exception e)
         {
             e.printStackTrace();
         }
-        return null;
     }
 
     @Override
-        public int register(String email, String password, String company, String firstname, String lastname, String address, boolean seller) {
+    public int register(String email, String password, String company, String firstname, String lastname, String address, boolean seller) {
         try {
             RegisterDTO currentRegister = new RegisterDTO(email, password, company, firstname, lastname, address, seller);
-            HttpURLConnection connection = prepareConnection(address, "/register");
+            HttpURLConnection connection = prepareConnection(address, "/register", "POST");
 
             Gson gson = new Gson();
             String jsonInputString = gson.toJson(currentRegister);
@@ -88,9 +85,11 @@ public class BootstrapService implements IBootstrapService{
     }
 
     @Override
-    public JoinNetworkResponse sendJoinRequest(JoinNetworkRequest request, String address) {
+    public JoinNetworkResponse sendJoinRequest(String address, String ip, int port) {
         try {
-            HttpURLConnection connection = prepareConnection(address, "/joinNetwork");
+            HttpURLConnection connection = prepareConnection(address, "/joinNetwork", "POST");
+
+            var request = new JoinNetworkRequest(ip, port, token);
 
             Gson gson = new Gson();
             String jsonInputString = gson.toJson(request);
@@ -121,9 +120,11 @@ public class BootstrapService implements IBootstrapService{
     }
 
     @Override
-    public void sendNewMasterRequest(JoinNetworkRequest request, String address) {
+    public void sendNewMasterRequest(String address, String ip, int port) {
         try {
-            HttpURLConnection connection = prepareConnection(address, "/updateMaster");
+            HttpURLConnection connection = prepareConnection(address, "/updateMaster", "POST");
+
+            var request = new JoinNetworkRequest(ip, port, token);
 
             Gson gson = new Gson();
             String jsonInputString = gson.toJson(request);
@@ -143,4 +144,27 @@ public class BootstrapService implements IBootstrapService{
         }
     }
 
+    @Override
+    public StartDataDto getStartData(String address) {
+        try {
+            HttpURLConnection connection = prepareConnection(address, "/startdata", "GET");
+
+            Gson gson = new Gson();
+
+            int statusCode = connection.getResponseCode();
+            if(statusCode != 200){
+                throw new Exception("Unexpected HTTP status code: " + statusCode);
+            }
+
+            var json = getResponseBody(connection);
+            StartDataDto startData = gson.fromJson(json, StartDataDto.class);
+
+            connection.disconnect();
+
+            return startData;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
 }
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/IBootstrapService.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/IBootstrapService.java
index 2ace9836..51200c07 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/IBootstrapService.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/IBootstrapService.java
@@ -1,14 +1,15 @@
 package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi;
 
-import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.models.JoinNetworkRequest;
-import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.models.JoinNetworkResponse;
+import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models.JoinNetworkResponse;
+import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models.StartDataDto;
 
 import java.net.HttpURLConnection;
 
 public interface IBootstrapService {
-    String login(String email, String password, String address);
+    void login(String email, String password, String address);
     int register(String email, String password, String company, String firstname, String lastname, String address, boolean seller);
-    JoinNetworkResponse sendJoinRequest(JoinNetworkRequest request, String address);
-    void sendNewMasterRequest(JoinNetworkRequest request, String address);
+    JoinNetworkResponse sendJoinRequest(String address, String ip, int port);
+    void sendNewMasterRequest(String address, String ip, int port);
     String getResponseBody(HttpURLConnection connection) throws Exception;
+    StartDataDto getStartData(String address);
 }
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Auction.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Auction.java
new file mode 100644
index 00000000..b3c36694
--- /dev/null
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Auction.java
@@ -0,0 +1,66 @@
+package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
+
+
+import java.time.LocalDate;
+import java.util.Date;
+
+
+public class Auction {
+    String auction;
+
+    String category;
+
+    String auctionType;
+
+    Date startDate;
+
+    Date endDate;
+
+    public Auction(String auction, String category, String auctionType, Date startDate, Date endDate) {
+        this.auction = auction;
+        this.category = category;
+        this.auctionType = auctionType;
+        this.startDate = startDate;
+        this.endDate = endDate;
+    }
+
+    public String getAuction() {
+        return auction;
+    }
+
+    public void setAuction(String auction) {
+        this.auction = auction;
+    }
+
+    public String getCategory() {
+        return category;
+    }
+
+    public void setCategory(String category) {
+        this.category = category;
+    }
+
+    public String getAuctionType() {
+        return auctionType;
+    }
+
+    public void setAuctionType(String auctionType) {
+        this.auctionType = auctionType;
+    }
+
+    public Date getStartDate() {
+        return startDate;
+    }
+
+    public void setStartDate(Date startDate) {
+        this.startDate = startDate;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+}
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Category.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Category.java
new file mode 100644
index 00000000..aeef6dea
--- /dev/null
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Category.java
@@ -0,0 +1,18 @@
+package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
+
+
+public class Category {
+    String category;
+
+    public Category(String category) {
+        this.category = category;
+    }
+
+    public String getCategory() {
+        return category;
+    }
+
+    public void setCategory(String category) {
+        this.category = category;
+    }
+}
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/JoinNetworkRequest.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/JoinNetworkRequest.java
new file mode 100644
index 00000000..c082cd4b
--- /dev/null
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/JoinNetworkRequest.java
@@ -0,0 +1,13 @@
+package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
+
+public class JoinNetworkRequest {
+    private String ip;
+    private int port;
+    private String token;
+
+    public JoinNetworkRequest(String ip, int port, String token) {
+        this.ip = ip;
+        this.port = port;
+        this.token = token;
+    }
+}
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/JoinNetworkResponse.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/JoinNetworkResponse.java
new file mode 100644
index 00000000..e861e0c7
--- /dev/null
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/JoinNetworkResponse.java
@@ -0,0 +1,31 @@
+package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
+
+public class JoinNetworkResponse {
+    private String ip;
+    private int port;
+    private boolean isMaster;
+
+    public boolean isMaster() {
+        return isMaster;
+    }
+
+    public void setMaster(boolean master) {
+        isMaster = master;
+    }
+
+    public String getIp() {
+        return ip;
+    }
+
+    public void setIp(String ip) {
+        this.ip = ip;
+    }
+
+    public int getPort() {
+        return port;
+    }
+
+    public void setPort(int port) {
+        this.port = port;
+    }
+}
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/core/application/dtos/LoginDTO.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/LoginDTO.java
similarity index 85%
rename from src/main/java/nl/han/aim/asd/veilveilig/core/application/dtos/LoginDTO.java
rename to src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/LoginDTO.java
index 56fb2082..3ce656bb 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/core/application/dtos/LoginDTO.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/LoginDTO.java
@@ -1,4 +1,4 @@
-package nl.han.aim.asd.veilveilig.core.application.dtos;
+package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
 
 public class LoginDTO {
     String email;
@@ -26,4 +26,4 @@ public class LoginDTO {
     public void setPassword(String password) {
         this.password = password;
     }
-}
\ No newline at end of file
+}
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Lot.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Lot.java
new file mode 100644
index 00000000..22b73604
--- /dev/null
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Lot.java
@@ -0,0 +1,128 @@
+package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
+
+public class Lot {
+    String lid;
+
+    String objectName;
+
+    int reservePrice;
+
+    String description;
+
+    int quantity;
+
+    String auction;
+
+    String company;
+
+    String email;
+
+    String firstName;
+
+    String lastName;
+
+    String address;
+
+    public Lot(String lid, String objectName, int reservePrice, String description, int quantity, String auction,
+               String company, String email, String firstName, String lastName, String address) {
+        this.lid = lid;
+        this.objectName = objectName;
+        this.reservePrice = reservePrice;
+        this.description = description;
+        this.quantity = quantity;
+        this.auction = auction;
+        this.company = company;
+        this.email = email;
+        this.firstName = firstName;
+        this.lastName = lastName;
+        this.address = address;
+    }
+
+    public String getLid() {
+        return lid;
+    }
+
+    public void setLid(String lid) {
+        this.lid = lid;
+    }
+
+    public String getObjectName() {
+        return objectName;
+    }
+
+    public void setObjectName(String objectName) {
+        this.objectName = objectName;
+    }
+
+    public int getReservePrice() {
+        return reservePrice;
+    }
+
+    public void setReservePrice(int reservePrice) {
+        this.reservePrice = reservePrice;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public int getQuantity() {
+        return quantity;
+    }
+
+    public void setQuantity(int quantity) {
+        this.quantity = quantity;
+    }
+
+    public String getAuction() {
+        return auction;
+    }
+
+    public void setAuction(String auction) {
+        this.auction = auction;
+    }
+
+    public String getCompany() {
+        return company;
+    }
+
+    public void setCompany(String company) {
+        this.company = company;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getFirstName() {
+        return firstName;
+    }
+
+    public void setFirstName(String firstName) {
+        this.firstName = firstName;
+    }
+
+    public String getLastName() {
+        return lastName;
+    }
+
+    public void setLastName(String lastName) {
+        this.lastName = lastName;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+}
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Photo.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Photo.java
new file mode 100644
index 00000000..a709e919
--- /dev/null
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Photo.java
@@ -0,0 +1,41 @@
+package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
+
+
+
+public class Photo {
+    String lid;
+
+    int seqNo;
+
+    String filename;
+
+    public Photo(String lid, int seqNo, String filename) {
+        this.lid = lid;
+        this.seqNo = seqNo;
+        this.filename = filename;
+    }
+
+    public String getLid() {
+        return lid;
+    }
+
+    public void setLid(String lid) {
+        this.lid = lid;
+    }
+
+    public int getSeqNo() {
+        return seqNo;
+    }
+
+    public void setSeqNo(int seqNo) {
+        this.seqNo = seqNo;
+    }
+
+    public String getFilename() {
+        return filename;
+    }
+
+    public void setFilename(String filename) {
+        this.filename = filename;
+    }
+}
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/core/application/dtos/RegisterDTO.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/RegisterDTO.java
similarity index 79%
rename from src/main/java/nl/han/aim/asd/veilveilig/core/application/dtos/RegisterDTO.java
rename to src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/RegisterDTO.java
index c77f33a8..5b60a30c 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/core/application/dtos/RegisterDTO.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/RegisterDTO.java
@@ -1,4 +1,4 @@
-package nl.han.aim.asd.veilveilig.core.application.dtos;
+package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
 
 public record RegisterDTO(String email,
                           String password,
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/StartDataDto.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/StartDataDto.java
new file mode 100644
index 00000000..2f4962b3
--- /dev/null
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/StartDataDto.java
@@ -0,0 +1,10 @@
+package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
+
+import java.util.List;
+
+public record StartDataDto(
+        List<Auction> auctions,
+        List<Lot> lots,
+        List<Category> categories,
+        List<Photo> photos
+){}
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/Peer.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/Peer.java
index 3a4246ba..9ce7910b 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/Peer.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/Peer.java
@@ -9,6 +9,7 @@ import nl.han.aim.asd.veilveilig.core.application.usecases.IOfferService;
 import nl.han.aim.asd.veilveilig.core.application.usecases.ISubscribeService;
 import nl.han.aim.asd.veilveilig.core.application.dtos.AuctionDTO;
 import nl.han.aim.asd.veilveilig.core.application.dtos.LotDTO;
+import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.IBootstrapService;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.models.JoinNetworkRequest;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.http.BootstrapHelper;
 import nl.han.aim.asd.veilveilig.rpc.IRpcServer;
@@ -57,6 +58,8 @@ public class Peer implements IPeer, INetwork {
     IOfferService offerService;
     @Inject
     IAuctionService auctionService;
+    @Inject
+    IBootstrapService bootstrapService;
 
     @Inject
     public Peer(IRpcServer server, IHeartbeatManager heartbeatManager){
@@ -79,12 +82,7 @@ public class Peer implements IPeer, INetwork {
     public void joinNetwork(String bootstrapAddress){
         this.bootstrapAddress = bootstrapAddress;
 
-        var response = BootstrapHelper.sendJoinRequest(new JoinNetworkRequest(
-                server.getOutgoingIpAddress().Address,
-                server.getOutgoingIpAddress().port,
-                "test",
-                "test"
-        ), bootstrapAddress);
+        var response = bootstrapService.sendJoinRequest(bootstrapAddress, server.getOutgoingIpAddress().Address, server.getOutgoingIpAddress().port);
 
         if(response.isMaster()) return;
 
@@ -93,12 +91,7 @@ public class Peer implements IPeer, INetwork {
         try {
             current.getMaster();
         } catch (Exception e){
-            BootstrapHelper.sendNewMasterRequest(new JoinNetworkRequest(
-                    server.getOutgoingIpAddress().Address,
-                    server.getOutgoingIpAddress().port,
-                    "test",
-                    "test"
-            ), bootstrapAddress);
+            bootstrapService.sendNewMasterRequest(bootstrapAddress, server.getOutgoingIpAddress().Address, server.getOutgoingIpAddress().port);
             return;
         }
 
diff --git a/src/test/java/network/manual/Main.java b/src/test/java/network/manual/Main.java
index 6b114280..6774223c 100644
--- a/src/test/java/network/manual/Main.java
+++ b/src/test/java/network/manual/Main.java
@@ -9,6 +9,7 @@ import nl.han.aim.asd.veilveilig.core.application.dtos.AuctionDTO;
 import nl.han.aim.asd.veilveilig.core.application.dtos.LotDTO;
 import nl.han.aim.asd.veilveilig.core.application.dtos.OfferDTO;
 import nl.han.aim.asd.veilveilig.models.Auction;
+import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.IBootstrapService;
 import nl.han.aim.asd.veilveilig.rpc.IRpcServer;
 
 import java.io.BufferedReader;
@@ -27,12 +28,21 @@ public class Main {
     public static void main(String[] args) throws IOException {
 
         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
-        System.out.print("Enter IP address of bootstrap node: ");
+        System.out.print("Enter IP address of bootstrap node (type a number for one of the dev servers): ");
         String bootstrapIP = br.readLine().trim();
+        if(bootstrapIP.equals("1") || bootstrapIP.equals("2") || bootstrapIP.equals("3")) bootstrapIP = "https://asd-bootstrap-dev" + bootstrapIP + ".azurewebsites.net";
         System.out.print("Enter port for application to run on: ");
         String portTxt = br.readLine().trim();
-        System.out.print("Enter your name: ");
+        System.out.print("Enter your email (type nothing to use example account): ");
         String name = br.readLine().trim();
+        String password = "";
+        if(name.isEmpty()) {
+            name = "test@gmail.com";
+            password = "mypassword";
+        } else {
+            System.out.println("Enter your password");
+            password = br.readLine().trim();
+        }
 
         int port = Integer.parseInt(portTxt);
 
@@ -46,10 +56,11 @@ public class Main {
         auctionService = injector.getInstance(IAuctionService.class);
         subscribeService = injector.getInstance(ISubscribeService.class);
         offerService = injector.getInstance(IOfferService.class);
-        String bootstrapAddress = "https://" + bootstrapIP;
-        peer.joinNetwork(bootstrapAddress);
 
-        System.out.println("Bootstrap address: " + bootstrapAddress);
+        injector.getInstance(IBootstrapService.class).login(name, password, bootstrapIP);
+        peer.joinNetwork(bootstrapIP);
+
+        System.out.println("Bootstrap address: " + bootstrapIP);
 
         String line = "";
 
-- 
GitLab


From 2b923660333977815727c1059f27fd23e344a805 Mon Sep 17 00:00:00 2001
From: Tom Janssen <t.janssen16@student.han.nl>
Date: Wed, 24 May 2023 15:56:27 +0200
Subject: [PATCH 3/6] Added setId to peer

---
 .../veilveilig/core/application/dependencies/INetwork.java   | 1 +
 .../modules/infrastructure/networkmodule/Peer.java           | 5 +++++
 src/test/java/network/manual/Main.java                       | 1 +
 3 files changed, 7 insertions(+)

diff --git a/src/main/java/nl/han/aim/asd/veilveilig/core/application/dependencies/INetwork.java b/src/main/java/nl/han/aim/asd/veilveilig/core/application/dependencies/INetwork.java
index 9f6c512a..f2e0f587 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/core/application/dependencies/INetwork.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/core/application/dependencies/INetwork.java
@@ -16,4 +16,5 @@ public interface INetwork {
     void subscribeToLot(LotDTO lotDTO);
     void createAuction(AuctionDTO auctionDTO, List<LotDTO> lotDTOList);
     void sendOffer(OfferDTO offer, String auctionId);
+    void setId(String id);
 }
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/Peer.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/Peer.java
index 9ce7910b..e9f43d6d 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/Peer.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/Peer.java
@@ -509,4 +509,9 @@ public class Peer implements IPeer, INetwork {
         }
         System.out.println("I received a ping for a newly created auction with auction id: " + auction.getAuctionid() + " and category: " + auction.getCategory());
     }
+
+    @Override
+    public void setId(String id) {
+        this.peerId = id;
+    }
 }
diff --git a/src/test/java/network/manual/Main.java b/src/test/java/network/manual/Main.java
index 6774223c..85638a1d 100644
--- a/src/test/java/network/manual/Main.java
+++ b/src/test/java/network/manual/Main.java
@@ -58,6 +58,7 @@ public class Main {
         offerService = injector.getInstance(IOfferService.class);
 
         injector.getInstance(IBootstrapService.class).login(name, password, bootstrapIP);
+        peer.setId(name);
         peer.joinNetwork(bootstrapIP);
 
         System.out.println("Bootstrap address: " + bootstrapIP);
-- 
GitLab


From c9ca130096665a81e230ce40295fb23d3ec74679 Mon Sep 17 00:00:00 2001
From: Tom Janssen <t.janssen16@student.han.nl>
Date: Thu, 25 May 2023 10:21:31 +0200
Subject: [PATCH 4/6] Added ddl for database and made bootstrap package cooler

---
 .../dependencies}/IBootstrapService.java      |  10 +-
 .../application/dependencies/INetwork.java    |   2 +-
 .../dependencies/IStartDataService.java       |   6 +
 .../core/dependencyinjection/MyModule.java    |   4 +-
 .../bootstrapapi/BootstrapService.java        |  27 ++--
 .../bootstrapapi/StartDataService.java        | 115 ++++++++++++++++++
 .../infrastructure/networkmodule/Peer.java    |  21 ++--
 src/main/resources/database.sqlite            | Bin 53248 -> 225280 bytes
 src/main/resources/sql/ddl.sql                |  60 +++++++++
 src/test/java/network/manual/ChaosMonkey.java |   6 +-
 src/test/java/network/manual/Main.java        |   7 +-
 11 files changed, 221 insertions(+), 37 deletions(-)
 rename src/main/java/nl/han/aim/asd/veilveilig/{modules/infrastructure/bootstrapapi => core/application/dependencies}/IBootstrapService.java (58%)
 create mode 100644 src/main/java/nl/han/aim/asd/veilveilig/core/application/dependencies/IStartDataService.java
 create mode 100644 src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/StartDataService.java
 create mode 100644 src/main/resources/sql/ddl.sql

diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/IBootstrapService.java b/src/main/java/nl/han/aim/asd/veilveilig/core/application/dependencies/IBootstrapService.java
similarity index 58%
rename from src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/IBootstrapService.java
rename to src/main/java/nl/han/aim/asd/veilveilig/core/application/dependencies/IBootstrapService.java
index 51200c07..93af5708 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/IBootstrapService.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/core/application/dependencies/IBootstrapService.java
@@ -1,4 +1,4 @@
-package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi;
+package nl.han.aim.asd.veilveilig.core.application.dependencies;
 
 import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models.JoinNetworkResponse;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models.StartDataDto;
@@ -7,9 +7,9 @@ import java.net.HttpURLConnection;
 
 public interface IBootstrapService {
     void login(String email, String password, String address);
-    int register(String email, String password, String company, String firstname, String lastname, String address, boolean seller);
-    JoinNetworkResponse sendJoinRequest(String address, String ip, int port);
-    void sendNewMasterRequest(String address, String ip, int port);
+    int register(String email, String password, String company, String firstname, String lastname, boolean seller);
+    JoinNetworkResponse sendJoinRequest(String ip, int port);
+    void sendNewMasterRequest( String ip, int port);
     String getResponseBody(HttpURLConnection connection) throws Exception;
-    StartDataDto getStartData(String address);
+    StartDataDto getStartData();
 }
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/core/application/dependencies/INetwork.java b/src/main/java/nl/han/aim/asd/veilveilig/core/application/dependencies/INetwork.java
index f2e0f587..a18c6db6 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/core/application/dependencies/INetwork.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/core/application/dependencies/INetwork.java
@@ -10,7 +10,7 @@ import java.util.List;
 public interface INetwork {
 
     void broadcastMessage(String message);
-    void joinNetwork(String bootstrapAddress);
+    void joinNetwork();
     String getNetworkInfo();
     void kill();
     void subscribeToLot(LotDTO lotDTO);
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/core/application/dependencies/IStartDataService.java b/src/main/java/nl/han/aim/asd/veilveilig/core/application/dependencies/IStartDataService.java
new file mode 100644
index 00000000..4dc6d2c2
--- /dev/null
+++ b/src/main/java/nl/han/aim/asd/veilveilig/core/application/dependencies/IStartDataService.java
@@ -0,0 +1,6 @@
+package nl.han.aim.asd.veilveilig.core.application.dependencies;
+
+public interface IStartDataService {
+    void insertStartData();
+    void wipeAuctionDatabase();
+}
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/core/dependencyinjection/MyModule.java b/src/main/java/nl/han/aim/asd/veilveilig/core/dependencyinjection/MyModule.java
index 3b478262..53c91109 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/core/dependencyinjection/MyModule.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/core/dependencyinjection/MyModule.java
@@ -10,7 +10,8 @@ import nl.han.aim.asd.veilveilig.core.application.dependencies.*;
 import nl.han.aim.asd.veilveilig.core.application.ports.*;
 import nl.han.aim.asd.veilveilig.core.application.usecases.*;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.BootstrapService;
-import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.IBootstrapService;
+import nl.han.aim.asd.veilveilig.core.application.dependencies.IBootstrapService;
+import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.StartDataService;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.localstorage.*;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.Peer;
 import nl.han.aim.asd.veilveilig.rpc.IRpcServer;
@@ -55,6 +56,7 @@ public class MyModule extends AbstractModule {
         bind(IAuctionService.class).to(AuctionService.class);
         bind(ISubscribeService.class).to(SubscribeService.class);
         bind(IOfferService.class).to(OfferService.class);
+        bind(IStartDataService.class).to(StartDataService.class);
 
         // Network
         bind(IRpcServer.class).toInstance(new RpcServer(rpcPort));
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java
index 703e3a15..a5f3421d 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java
@@ -1,15 +1,17 @@
 package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi;
 
 import com.google.gson.Gson;
+import nl.han.aim.asd.veilveilig.core.application.dependencies.IBootstrapService;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models.*;
 
 import java.io.*;
 import java.net.*;
 
-public class BootstrapService implements IBootstrapService{
+public class BootstrapService implements IBootstrapService {
     String token;
+    String address;
 
-    public HttpURLConnection prepareConnection(String address, String urlExtension, String method) {
+    public HttpURLConnection prepareConnection(String urlExtension, String method) {
         HttpURLConnection connection = null;
         try {
             URI uri = new URI(address + urlExtension);
@@ -27,7 +29,7 @@ public class BootstrapService implements IBootstrapService{
     public String getResponseBody(HttpURLConnection connection) throws Exception {
         StringBuilder responseBuilder = new StringBuilder();
         try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"))) {
-            String responseLine = null;
+            String responseLine;
             while ((responseLine = br.readLine()) != null) {
                 responseBuilder.append(responseLine.trim());
             }
@@ -37,9 +39,10 @@ public class BootstrapService implements IBootstrapService{
 
     @Override
     public void login(String email, String password, String address) {
+        this.address = address;
         try {
             LoginDTO currentLogin = new LoginDTO(email, password);
-            HttpURLConnection connection = prepareConnection(address, "/login", "POST");
+            HttpURLConnection connection = prepareConnection("/login", "POST");
 
             Gson gson = new Gson();
             String jsonInputString = gson.toJson(currentLogin);
@@ -66,10 +69,10 @@ public class BootstrapService implements IBootstrapService{
     }
 
     @Override
-    public int register(String email, String password, String company, String firstname, String lastname, String address, boolean seller) {
+    public int register(String email, String password, String company, String firstname, String lastname, boolean seller) {
         try {
             RegisterDTO currentRegister = new RegisterDTO(email, password, company, firstname, lastname, address, seller);
-            HttpURLConnection connection = prepareConnection(address, "/register", "POST");
+            HttpURLConnection connection = prepareConnection("/register", "POST");
 
             Gson gson = new Gson();
             String jsonInputString = gson.toJson(currentRegister);
@@ -85,9 +88,9 @@ public class BootstrapService implements IBootstrapService{
     }
 
     @Override
-    public JoinNetworkResponse sendJoinRequest(String address, String ip, int port) {
+    public JoinNetworkResponse sendJoinRequest(String ip, int port) {
         try {
-            HttpURLConnection connection = prepareConnection(address, "/joinNetwork", "POST");
+            HttpURLConnection connection = prepareConnection("/joinNetwork", "POST");
 
             var request = new JoinNetworkRequest(ip, port, token);
 
@@ -120,9 +123,9 @@ public class BootstrapService implements IBootstrapService{
     }
 
     @Override
-    public void sendNewMasterRequest(String address, String ip, int port) {
+    public void sendNewMasterRequest(String ip, int port) {
         try {
-            HttpURLConnection connection = prepareConnection(address, "/updateMaster", "POST");
+            HttpURLConnection connection = prepareConnection("/updateMaster", "POST");
 
             var request = new JoinNetworkRequest(ip, port, token);
 
@@ -145,9 +148,9 @@ public class BootstrapService implements IBootstrapService{
     }
 
     @Override
-    public StartDataDto getStartData(String address) {
+    public StartDataDto getStartData() {
         try {
-            HttpURLConnection connection = prepareConnection(address, "/startdata", "GET");
+            HttpURLConnection connection = prepareConnection("/startdata", "GET");
 
             Gson gson = new Gson();
 
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/StartDataService.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/StartDataService.java
new file mode 100644
index 00000000..4291fa4b
--- /dev/null
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/StartDataService.java
@@ -0,0 +1,115 @@
+package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi;
+
+import com.google.inject.Inject;
+import nl.han.aim.asd.veilveilig.core.application.dependencies.*;
+import nl.han.aim.asd.veilveilig.core.application.dtos.AuctionDTO;
+import nl.han.aim.asd.veilveilig.core.application.dtos.LotDTO;
+import nl.han.aim.asd.veilveilig.core.application.dtos.UserDTO;
+import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models.Auction;
+import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models.Lot;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class StartDataService implements IStartDataService {
+    @Inject
+    ILotDAO lotDAO;
+    @Inject
+    IAuctionDAO auctionDAO;
+    @Inject
+    IUserDAO userDAO;
+    @Inject
+    IBootstrapService bootstrapService;
+
+    public void insertStartData(){
+        var data = bootstrapService.getStartData();
+
+        var auctions = mapAuctions(data.auctions());
+        var lots = mapLots(data.lots());
+        var users = mapUsersFromLots(data.lots());
+
+        for (var user : users) {
+            userDAO.saveOrUpdateUser(user);
+        }
+
+        for (var lot : lots) {
+            lotDAO.saveOrUpdateLot(lot);
+        }
+
+        for (var auction : auctions){
+            auctionDAO.updateOrCreateAuction(auction);
+        }
+    }
+
+    public void wipeAuctionDatabase(){
+        var auctions = auctionDAO.getAllAuctions();
+
+        for (var auction : auctions){
+            var lots = lotDAO.getAllLotsForAuction(auction.getAuctionid());
+            for (var lot : lots){
+                lot.setAuctionid(null);
+                lotDAO.saveOrUpdateLot(lot);
+            }
+            auctionDAO.deleteAuction(auction.getAuctionid());
+        }
+    }
+
+    private List<AuctionDTO> mapAuctions(List<Auction> auctionList){
+        var result = new ArrayList<AuctionDTO>();
+
+        for (var auction : auctionList) {
+            var newAuction = new AuctionDTO();
+
+            newAuction.setAuctionid(auction.getAuction());
+            newAuction.setAuctionType(auction.getAuctionType());
+            newAuction.setCategory(auction.getCategory());
+            newAuction.setStartDate(auction.getStartDate());
+            newAuction.setEndDate(auction.getEndDate());
+
+            result.add(newAuction);
+        }
+
+        return result;
+    }
+
+    private List<LotDTO> mapLots(List<Lot> lotList){
+        var result = new ArrayList<LotDTO>();
+
+        for (var lot : lotList) {
+            var newLot = new LotDTO();
+
+            newLot.setLotid(lot.getLid());
+            newLot.setAuctionid(lot.getAuction());
+            newLot.setQuantity(lot.getQuantity());
+            newLot.setDescription(lot.getDescription());
+            newLot.setUserEmail(lot.getEmail());
+            newLot.setObjectName(lot.getObjectName());
+            newLot.setReservePrice(lot.getReservePrice());
+
+            result.add(newLot);
+        }
+
+        return result;
+    }
+
+    private List<UserDTO> mapUsersFromLots(List<Lot> lotList){
+        var result = new ArrayList<UserDTO>();
+
+        for (var lot : lotList) {
+            if(result.stream().filter(u -> u.getEmail() == lot.getEmail()).findFirst().isEmpty()) {
+                var newUser = new UserDTO();
+
+                newUser.setEmail(lot.getEmail());
+                newUser.setAddress(lot.getAddress());
+                newUser.setCompany(lot.getCompany());
+                newUser.setFirstname(lot.getFirstName());
+                newUser.setLastname(lot.getLastName());
+                newUser.setSeller(true);
+
+                result.add(newUser);
+            }
+        }
+
+        return result;
+    }
+}
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/Peer.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/Peer.java
index e9f43d6d..11b8615a 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/Peer.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/networkmodule/Peer.java
@@ -9,7 +9,7 @@ import nl.han.aim.asd.veilveilig.core.application.usecases.IOfferService;
 import nl.han.aim.asd.veilveilig.core.application.usecases.ISubscribeService;
 import nl.han.aim.asd.veilveilig.core.application.dtos.AuctionDTO;
 import nl.han.aim.asd.veilveilig.core.application.dtos.LotDTO;
-import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.IBootstrapService;
+import nl.han.aim.asd.veilveilig.core.application.dependencies.IBootstrapService;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.models.JoinNetworkRequest;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.http.BootstrapHelper;
 import nl.han.aim.asd.veilveilig.rpc.IRpcServer;
@@ -48,8 +48,6 @@ public class Peer implements IPeer, INetwork {
 
     private String managerID;
 
-    private String bootstrapAddress;
-
     private boolean healing;
 
     @Inject
@@ -76,13 +74,12 @@ public class Peer implements IPeer, INetwork {
 
     /**
      * This function connects the peer to the bootstrap server, so the bootstrap server can add this peer to the network.
-     * @param bootstrapAddress {@link String} is the http address of the bootstrap server.
+     * {@link String} is the http address of the bootstrap server.
      */
     @Override
-    public void joinNetwork(String bootstrapAddress){
-        this.bootstrapAddress = bootstrapAddress;
+    public void joinNetwork(){
 
-        var response = bootstrapService.sendJoinRequest(bootstrapAddress, server.getOutgoingIpAddress().Address, server.getOutgoingIpAddress().port);
+        var response = bootstrapService.sendJoinRequest(server.getOutgoingIpAddress().Address, server.getOutgoingIpAddress().port);
 
         if(response.isMaster()) return;
 
@@ -91,7 +88,7 @@ public class Peer implements IPeer, INetwork {
         try {
             current.getMaster();
         } catch (Exception e){
-            bootstrapService.sendNewMasterRequest(bootstrapAddress, server.getOutgoingIpAddress().Address, server.getOutgoingIpAddress().port);
+            bootstrapService.sendNewMasterRequest(server.getOutgoingIpAddress().Address, server.getOutgoingIpAddress().port);
             return;
         }
 
@@ -252,7 +249,7 @@ public class Peer implements IPeer, INetwork {
                     try {
                         joinNetworkOnPeer(grandParent);
                     } catch (Exception e){
-                        joinNetwork(bootstrapAddress);
+                        joinNetwork();
                     }
                 } else {
                     if(sibling != null){
@@ -291,11 +288,7 @@ public class Peer implements IPeer, INetwork {
      * Adds new root to bootstrap if deleted peer was root of the tree
      */
     private void addNewRootPeerToBootstrap(){
-        BootstrapHelper.sendNewMasterRequest(new JoinNetworkRequest(
-                server.getOutgoingIpAddress().Address,
-                server.getOutgoingIpAddress().port,
-                "",  ""
-        ), bootstrapAddress);
+        bootstrapService.sendNewMasterRequest(server.getOutgoingIpAddress().Address, server.getOutgoingIpAddress().port);
     }
 
     private void addPeerToHeartbeat(IPeer peer) {
diff --git a/src/main/resources/database.sqlite b/src/main/resources/database.sqlite
index 8619822081b636f6290a9ced3c06507ea3276283..f17eafcaab70de9f45f6c80d9dfa2534e78422b3 100644
GIT binary patch
literal 225280
zcmeFa33MFkeb|Xc186irut(xxFc1W>IMf`}u*t5fuC6YPXf`eaAWi}xIpk<WRaaL7
zjXny~2f>CcOPG=3BaX8#m+aVaoI`n*<v35-=UCpXbB*of*-18QJ6R{s8z*))UgvV+
z#Bp}xV}Jjz8U#2zX2$V*o4g0SnI_Qv^;h5b|Ni&)Ki01;mYTj+4C+<4shM3*bwwgw
zIZf;8>Y458>azL&;AezidJg{J-^h{QAM-17Tqyplp~Qdb8tC8ZI+;uSZ$oEKCI*`)
z{!{$7<Nv6CEB@8^ACLd>$9(zt?PCZWL*N(!|6M_#|92zbHge`n<cqhOZoc9#2F*K#
z%{$HN&f#w-rq*UAHfFSqiOIzo?eP79mj*O`DnYYUkYCi#jfu6Xxrw!x%*;7Ws|8K1
z)~Zz0IQe*|UaGqBzaRbek>{U}eBru!<VvyV*E<hA`g`vKk3ITH=fQz|kw+gq(y-*2
z{5<-x^|n^_+vgux^Sghw?(-18=J^fT`TcLJ=N$cZ_=#E)pG~h^7g(*X%}mX&&#x@s
zUs5<MUn&&*y7u^$hr{YYt0s`0U*4FRomo@QR4?~8crO0;yZ^$-$VlXy&mO{3fokAk
z=xHwv-9L!KxjMf+5}3;?8`|>q#l`ba_+ohcM?s;z$FDuG{U<#lgz7^ueJ_vcK>B?z
zF9iL3{O?C*6{;=>coY96vLe9#0)M@k8;Ysl@4N%>52EdJ>M))g8tB0Okzkf1I5^Tn
zNGn?DAZ_^W0i`{#n@4~79cX+1`|7lhe!m0v5X4VH+;EC_$J}t-yQ1#Uz`1iL`$jH}
zM7m0~f`6~^Mg_g?j@xPm>hC)WaCda|PyG24eIw4P#|?!r@94Y?z1bX$jhs3a`QnN?
z6yD;$2ieziyz|`em2(|sAwhoI_nLQVZq)~<2Oza{<J|qT>`<}a@auQ|JDjKIKS;|5
zhaL_r_zkaK+G&=88Z&Opyt)y-|3=HLHA~I5I=d%L;I_QZmu2X|l7ubZr~4y#F%gaq
zpV4BCcl@ebs=V{7_jmKCIj-}yfpc$uwl_91HWvBfH3jz0#GQX)4=|$6n@?m#Zn&^_
za`yK^?w;H9Hv^98VDq|>J@=mYQRks|n(ZC`{eQdBbnDFm57(weQofg^`nAIQ`@-tl
z{L;kQEp1`umiE$p7@dQVl6`$66Jw8~jt<E0=$&8s_e;^($oP2Vt>@KotvBlewf4ck
zJr5k%!Mjg9G3|k~vd$s+?yvPpj9qJVo_*)8TWKA_J*zv$xhH<n3#vP%ieI?%q!|Fs
z#h$*Asqx2w=3sMo^n>5}-Z~M9jSLS*zW5mh96@mTzxx58$UBb*NJvHp7^t+8cSQ)<
zk6Sy$Tlv;w0Z=T}8%@P{-rqwi?(gYqZlO^38;$!^@!odS@GBLdG`X^}I5V;Q?j&&p
zWwe(R2nDrY?Cu+RW%zODC+BcSm)9stb-yUqz5G9r_(}QoLy7;I_|J)dpZHgaf06j7
ziJwpWOych*esXYj;NJ~=dEoVdr{jMm?#BE2zq|iNe^2bIu^WBA+4q&crM_tI*L#EB
zr+WT&&o}m5i2g*h7VYc)dUvb)smRwNPS-DV{Sle^{rt=&W9HDAvDtVdXa?Jei$<>P
zZUw;w&itzDz0vY3rJ6sn*(z1s`jQK%o4&uPr84@^fNtBy{MyjKoL_HN{nyUN?4jYY
zR=isBwp_oG&gQm)rZ8=pi?5dNx;1Uit!DJBHW%!=^@6tQHX81xuTAVUFK8(zJv6W$
zw3=Jm%~GXOa;xXHi3KfVq>c35mt)r^hDYzj{kts4uQ64!;ce~urCPC7Z|2JNV5jQV
z<Vo_Bg3r`<S(f&KdWN@E^6QQ1QqARwj7u9?ZL;2G<XYes8bbri{;sxBckh-O_-2~t
zwW$rwPFbe?`p07S#MtmmeAlg%{dzU1RN99CnyLqleEYn%x+Uw~X=pAQ@v7Ud`AZ=T
z)`CW3y$P<ld6$P}hXzdDGPPIdh6YwaTHiYto4GtPG8=CO&0Xd|6qnHEbB!k7Z<cDC
z2OC;<D^<V7ZkWxl<=rxiX)O7hZf(i)g7#9W4E4yt*!Ivs*0yx*);tG;Xl_*}UWz4$
zhDTQ7d%HoU$@g-#W<w@kbnET}53OA-)tXzJY~95xWjP$JkxALwq)gE&?fJFE7h@Ac
z<Kt8DD$wW1IA8&HE?*CVa^nJr5G=XP=2ppVEO`aDR`M&8K}EK#vu7)v$!OQF4Gm0U
z5!E*R;tR2rb0g#H@n&0g%u!-*B+C^JGuQOJty+nr^<{-?LEEipSHQZhpjBUIy;~gZ
zY#nS|Y}aa?6+0HVs2h$pcU|`EmK%A$zUkMlKOdVJ8a}%o-`;ZT^-?3K<%({rQm*l|
ztya6Xbs=BcyB+xLrNFN>5P7BT@^avAHDr+$Ei*KbaddO>1`FpLSyBzcC>Az98oP9M
zc%&8I;n+(%Svyw_YNcAa!q<J7a>=bVK+~o+dE=^E_HS;XJ7&$4wg4iuIl;Q`H$#+n
z%v6Yb6D^Lsc2`i~ytXu<W%Z1iSv<?Zjf}eS&C+(mv2&XT#57-X+wP)Tvtg%G2jrry
zqs7%WLFWnCKvhVI+19memW|9m7qf;=oxT<?faZn9j+l+Pf*%six?f$Wz~!~85Qk}L
z0$oKpLjyA$P~&dN-v!Snw3Lxe>9c2;YIp>|x;4MKS<2@dxm_Qi%bBgW_IwV(D^Iiw
zer*?=1O@a=TGy_FPg8CIQq;iZ1>di~uEky%9v*oE^4jE7gmd^6|B%3LbK)CN?OF+{
zH8Q5Qin+U|U2WAuT~hH4LkH)l71A}fN_7A@zpQ04S<9F`4cZQm&cwI;dJWq2_crTF
z1Ix8BUKMf4_oho|z_lx|6-A{P2NKd9OIyA&G;qVOu#5SR#Lf+kj=moEcY~nN$kp9;
zh@Lf2ePb)Ax{XD*RS&70)#!FMyZGwRz-`!7O^{Jx4_wbL&yB|}4vn2zh;Iqv--Veq
zIR%;RR?vba6mPgfl7&{QyyTb4{#H=bSWwzbo7&WZ&`_=BLwA1p_J?Daosp4=xVKda
zd?%CJ@$2<=G7ql%&88sY`T-l!gegu3Rmc}=_ZzLoTnj0^=+<0Cr98kk3`4sPuHW`I
zH~q!2*woPI@KPKm%Gz7a?SPd&$d?xV2JcPOn~kMl3&~Ls<kK9sZ|do^wsv)BV5460
z;ajhND0X>hWTX)<*4>&1bq8)^tKzp0F?zA(!8-i5Ur#x<Hp5Jsf<rr`le7g636EZY
zj3E@^`5g1KW~bARu|5hqj*j|qx6+0=88*n+u5jK0)vI7kwY>nNDL0&SRugmr_u36@
zy(PYQ!!U;i7K0Y^2D`QM+Rb?_rCYjl^V!&?)2Bz5;#IfqwHkNb*5+32s6?B9T3v0i
zS%4+)Yzg`ywcs(=Yo(@USR!G9dzx;g46t)`MVnYfY8okXbtGm!KQgiu2Mo=olR7%*
zO+ODCuP4{H++B{T;e!*k&E)`@v<-ZHzo;3&*D-8ETbu+WttP{#o{7DDc5K9nm)x3d
z9s)Jwo~tO(O~sx4-Sujzxi#NVNCiaGrfE$v%>+kW8jf9?8XlX73t9?e1ye9s;G6*L
z$iahFH^ETXgU+r7TQzp9#NJv7RB=}-ZgJJE^Je4v`tl79v4IM)H#BfXATXghx?$M2
zp60wp#@>i~LB(gM<x&m)fj%JTwIm`ICO-*#&~@8HLPJ2!KwCoai1FDuHWMke0ejd{
z@_Kzr(~V44Uq2OlWoTsBkMC@UYs-1{)?PBtddo8V)Rx=uS5Y~P6exNVGz4dx%zD65
zzy(;gwh^Fw+}O~v=}ap9$q&XXePr}{97C!G+S-|%heZ{#yE(UvSY9sqtzCgy6Z&dF
z78`E664W!C6Vl+mnlVu+dC1680pMNV&{C;v#+>~??A-Ii;}h|FTdhhXmq%|=cpI)i
z2}<NAYBd)H%Jb_%ZE`!PBZrC_`_E*o)CvmNLJ1~Szw%T}XYbeJtg`J|W-jFMGTAgl
zP+kmn{f)M_73{bL%{IX!BaM__n1-p~@&gcCO4!dP<akC`;@d$3%trk)vbj3KO&t&T
z;DP|?A4{b=T0@AH8L%ni7}oj}rvf8y)d0lJld+^TI<gRlw&6{dkt<cb3qgHz9f$*g
z#b5_!E;^IK%PCI2RGX{>wel<qgsjpLl`stn-CPGtk&%8KN6el-6q`6ZHe8A~L?eK?
zi!QPWQ%)-08G^5dQ*;(j&kko^ulO+N+NP}=n&`4{NNokHuA_LSSp9;J>J_qpdBIbR
zyyX)y2Ql}0ydh+>g(eHj+I5>?w*o5MQ>jmO%1#;D9Ku_hLQQERfM<QS>31YB^BI{;
z%6xq=<|I#@y#~W}Imvdh?B^hwDq5F7MR+u_Mw>&hE8W3whHoL?{mPPiuT<@5Cb~c+
zW7x~c1BH1?jC^7M$ucr_DZY0%sCdks4;pSoW}f8CYDhWWtSPdbD|uyBsfcn_)6KM#
zz7dbj4vmf8g#Nch(J2Z{nTUhl6;4!9Dx)x^lIMn;ZaH}StH`QQ@k9qpI~iMB2b~s>
zg!xdP^0)e9v&r$%Tk(2OsKIsxlsRQ+B#RZl3f6_kr8r3v^Pp4#I~E`xzqGj(%GN8D
zkOPKKGQ{?<u?n=?H-`pp%Jb`a-!B(qv4!OL*h(DM?+O<K3+1y1)HC5QKDh2CXIo7)
z5!8trC9fF(A<UgJN4r?sa|QQI8{N#d^~@4l<$6^xD_?IR8!LUW*_TH~OYwZ&Eua)a
zdVDQc14KbBDSkBBQOE$2>n>h$1}wWlwS?7!3YfN#wc6B{h_YY@>_sJX#WjXefO?v5
z)i+VwZr;!=%gpLGdxfgeHrp;7(nsfR)qS@WA|Q&~WIgc8$OBtj0!VPKy12=dVx$|Q
zUBVx?G^L${d}n1%v(l-wvCzZB!{{`-m<7c~p`NRYwyjPBNNlv~Xk?j`g<d_y#BB^F
zlzrC7gxa*ySI=w9OPXzD9qVc|mV9vp>4EO<T1QmXPzJ5JRk&(>F?jngHN>{_s}0dG
z6(bUDE1h+;1+=Z3s1cR@NOx?0Vr1mA@jWp#>TOTV7zj^rG06b%LsmHn4-Synvn5nr
zb}o!0g!(k-?k~Z;8fbwjT~k!5O#;{hsh_sM*AO(5=p==pCi(*VnbuNSTnN`AG20#<
zzl6Ps_FHgwYq{+bnvB1PUWI-A>{}^bN8S>H{+Tyl<Mrt`<(*S+$~zz2|0J)8eVx~n
z`|{4<tGo;(yAwa&6-~7Hy=ye_%ZYa4PsRs(|8C+=^f!9eqn|jrd-5lH|LIU<=wC)p
z^!#+s+3pJ`%F#a@`F!vB{-5pp_uc<w@TtgeC4Ob_lP7+@|7$~+Pu%GK@%Z_kKYijy
z`-e~b>!Gj4wqm0vzR))xy>a5%*tNdh-g}XsKl!QNPeuP$|F8D_>ByP>@9g<_pE2--
zo*z!U65WaXjlRF$|LN{O(NiAyrO5a8er@RPz)$!6lb(M)__MM9b#Ssb(RZi&2YbKN
zdnNIgqCXJdjQ!jRXXtnPuf{$XUnG*?o1!la{6C4&p23sfKJ-VsS5AI)@MG~WoE(d#
zPtFdU>c2Snrv{b>fBocd4ipFe{Lo*I-0AuJ(CO~~aN<u5zSX@G|Fz!VPJHLdbo_@C
z``ynZetaMm`^}U8eDJSD|A_#l>r8Z}ds}FC3v35X9-v)RkFIYUi#pvfiMp$&avq{k
z8KlbW>iSkKI@K*--i5s(D{)!3D_AZ$-V=oB`j+wNrS5_+#<SQN=ru<?6kXpe53eX<
z*u|XlE6gtp1gX@js_*}Sk*MBX@$iI{b09+@*mKqUUpyO~?-mVtySCRVZ5J^93b~5X
z&E!{M!ChY%jauE<zn*Jmp<xgki$s0<EtwT0&(~3)4z;(gH)T7aF<tR9I+{VP+(0$+
zS-Se-z6@woT)){U1o#UOC7~kTF(|q||9o^MvWp@G-w?K<TnrDv^mD_}i;+sLw5_D*
zfsOf1BT+K~UEyNL7`fVJtL>}hepW_z%&1H{S1wgAU;}>RGf_R_Z^9v(er`wkSY(Nx
z`B2n}+=Y46f(m96mzA3>k)BMuHyX7gD1eCkEu2g_v5-QIsx40tqHG^!B==-IcF%6j
zZ(-Z}hk)9ZPmo!)67xHHuIj-s)LQR;BsvkPV3-M$PHy5h*cN$E;7Db4Em<8OfNRLN
zQsY2k@=;TE9|$fXj8U1CjmD}Q^8Pkg9;uY97^StjC;P9<RQOlK5wLkgTV|>^WIK70
zz!~Ro(K|9xgH8H%@WI82Q&Vn~Kmh5X7371UdT0pOo{d_OvZyF%Q331<yjOdu$~<cJ
z2AcGtU0ZoNnv7I}QUfx%@6am?JeYe61-J$R*4(Y56tFET-O3}R@DX8bG<-RzlDu0+
z96Kf`C_0e9ZtHY(isK9EkBzqkut%tA^K5h>Qe_T-VWWj_BLE9gNm`+jDRUG*9K96j
zcnfi9Jvf0cr&<s*F2J+}fy=lpn)0=RY`Inv<G~B=<-q(vk)fyX;E2w8f8Tl8cSxVu
z5+DOdUFCG~E6Ieed@-ERu{v6FU7g0K<yb=lFjQRX%E}S2-1$KC#YjFd)7SzvWo>^-
zo+4f%<<{Z>2&E+M#5_*{MP3&;?zWm`e-EwofG2%YzJ#uXCY^O2*0)|0bih8^6ldij
z_S}}aw%vBY)sM*9TLPF4Jh#wSa&Dz0`+N1p=sMe18dg);C5U>g^-V0ZWW}wDeI?^=
z%9(DraFsz#=y}N7L%_3x8v>1rkN(VU(u2(Nx-6&)EukW{(HmiHaO;hiqSqs$HNhDD
zq+kN*p1g|(^9YHE^Ke~eh5(82kY}@?O*IE_UK1o~v|5caPQQ?i9m3(7fJb&_+DDOZ
zRo+HiSMaSg+-jp-+L7g~2&~^gjRUE?+*Ye7I&M<jVG0eF$D@}ccu)Axg*Zf~JA%+l
zM}TW&a@$xip%eAF=zL^n)8BE`20`%pW`HZv&y{PfqQasDnRxGD`#TlDQ9Yt;3HHfi
zT)cOc9D#vb{;ryOUZB!c-ldFv1Y#W3oWOerw`C1j-pBJ<c@T`u-9bV@PKsS71$E?j
zugHVyZZ&9N*lo4k!|%-~?jjm)&D}dHgQm|!XCp-%V?G3!%(vP|Lj-fKRY8z#306<Z
zLd5kaRF%713Khsn`QEnJ!T2X&I0g3sLC#_(wCIe&`=ACWk+j%?_2g#9cg4gxK}IkX
z4ZR*z{Y_3Jr`V;)4<@)Qz<C44f}siJz>I~dDR_T_pbY-aTKhhlAMW*%EV!|Q>W};L
zKIA?jvk61QA9K{3%Y$B#mEKdQ*J|U=y9-^z$wFmWkoV&Py}Db3lA!n;LbkI+M|j|_
zcz@+ga-hW?UX@0&9^~<OunllBD{F;!`VGz<c8W%OxGMVr#BuKiSlox7W&|UfVnw*M
ztbRxomV8UrD@GCGmBk*x<FvrF9J<l;Oir=2<YuTs%Yw`oqSw^7g;eotHaDTYZLs->
zj~l2MLSo=5KL71T#yntWy1ZS%<5m?Ja^GQ{lDF&Iuxd2_4(NE+MZrjbv*+gh=9aD>
z?(Kr??GaZ}N%=;H#XWezbY9l|?zclP%LJh*@s7)!kI6Yd=^o~sh}3u9p}ZtK1y1vr
zTagz<1AEtNju+(7Pr9UdUSafOt{Xlo>w4!E!C67dM|t|6lMf!{w?8u$eFexo(hsl6
zE+6kiKmEbzxyXaA@s9|ZJ>=pZ7u0;LyZXa|ns5tf`H>FiG5PjmUC1AjjXlZ(JSxC@
zoEP_5g=i0ZVn<FzUyi)PpZd%JX*}6IIxGu$lxy>8f$(D-lc(fMkMb{mP+<F@Yw!a?
zO%FTyo>C`!ME^PP*(C%)-syuoDM$Kv|Jjf*#7FzRPRK`Mm_O{o8kAFi$o(`R(%^}1
zrMQfEqJyYkc<H-1c49Kiqn$FCmLK?V^p$Rrt}Q&;XwpZSV%M)TVEDb!DkD!no(u75
z7YAW>7u`JQqg(hTk@ppmm62~7QXk_Q_y>vaOYF!W$3MpqIEKJ61dbta41r?^97Et3
z0>=<IhQKidjv;Uifnx~#K0qLqylfJ3tCC1GQ&XuNQ=R+_iN$^31D?lt<Nn*m<HmPB
z2*=;g&(QS8jqiML-~Ru1zYjY*p5hn+#}GJ%z%c}lA#e<VV+b5W;1~kO5IBawF$9hw
za14R}zaj8!LRRp>4|GLF;<{ypMFR%py{EYU|F4PPNc@`oar|=(fnx|9L*N(!#}GJ%
zz%c}lA#e<VV+b5W;1~kO5IBaw|M(E-Go|=npV7^0uP*ohJ&D1t#1AF>L^?5;_|*US
zJ3QXOF$9hwa14QC2pmJ;7y`!-IEKJ61dbta41r?^97Es<5O}etZ+v{Dw|6R_4mCA1
z5B@E*n%-9A3sz<R^N}xn_KVj(e=*u;o*HAIR3dFq=8y7&ody#V^`^9Zp*+&T7q0gH
z=;vp<`#kx=1f_;4tVCf>>MYWAqtjtRdud~fiu0WhZwB>B;oQR$ZLGcV`PE3@opVPf
znxgqj<8YcaDo064_R031v_Pr(=fVL}q}{FVG~Tf^nNjZldlKK&mH64jpG*9~#5d8Z
z@A&5!0>=<IhQKidjv;Uifnx|9L*N(!#}GJ%z%c}lA#e<V-&Y8nh>k}N+zdTZ_wf-f
zh3Lho7ddbaya&%g_xb3Z_`&#hbr2lJ|Np*j?0B+c2pmJ;7y`!-IEKJ61dbta41r?^
z97Et30>=<IhQKid{=0!d82_K_`XgP5uOyy7`HxS2`$==?Cx%`>@gGlo_legBe`oNA
z24@HU-N2UzULSZm{#W8|ys!Ve`)~C3#J(E4(f6BuU+G)wi}rrKH|Tw;=Wq9XW6y=?
zPeg0czV5Ggx4NH-d@bU1{Q^_J&!4$u%p5v1HXDCLvlSX*(!7@rGQRXorRyC%Xgl3L
zQ__P|w{2sd_Oo-uZ&dx)&d2Pb;jvcyk?mRdYMGui8Vx=(dX`Su((hMWb?Mi<Ni@bz
z^MaO=X0PkgwEUo<`FU+(LCetTGky2v*tLn_(L3~GWI;6Hk*;F&U!!Hb^n%Wn>wz?+
zm&QQy6#56R(nps_kr&i6Xm3ngk!jj~@<hg^r8~3qMWVZ~Tc8uF^p>V`CY_*Y*hOpU
zsSV9eS*HE^$71%x*zgPu%BB0{J6gs})q_U9O<#06v(O2?p;}O`x^0?I(jLk6D{J(P
zUzZMoVP|mK%$mAoYOl`GMpK%qdgo#@mq$is<4@{4BO6+GD>NKrH_S#8ELU0>(l49l
zd`q;BYcG|`t~3VR)NI=NW^GH?ZqaOgP8w%cCtjkB{P4(1{GGjP7TtQ-!1gL#l(sn8
zI-O`W%i(B^44r`|WeU|2c=1IVsgI9O#UJ14Ms=8`xABq}wk(_sRA+IWJzMEaM!SAZ
zdY4O!aKHFMY~|d@_<H<Z8{>rCL$82!TlCdhXT4h-?JONND$+l+vtox{p1Mw-(m6V{
z(t5t!kOpG3x_v%2Gc<gbHuW?sq2m#)m5MZ2Ez{RDxka0@E$Mf3JMh~}G}3C&z=|Hn
z%YnPq>9U)Vmd3idNKf=h&QUtMZ3RKGu=&y0rL)6yWTiJUr=GPR=#9jbOEeDyO;rzH
z+S=We4p3P$r7eI6ZK*lx`^^yL9aB2Af_u{2m>zl38uh%kG@)hnjG0+H%fXF|y76~5
z_nEJ`ZFf<v*|5{819H*U=^$3y1f3^<GEGq-C1zXKvRO7V{~T?dPo2INe^ghXb-%h$
zp(?6&72+^0O`xkNXJ}vs{A<ufa~C|H&{9S=rO%#Ws^Jj;OP|%|W+|Vif44LN6Z%_k
z?fD#nSDv7acWoD(1O@a=TGy_FPg5?f(drtwyg<9h*R|Ly!^0zQKwgjRJ9L{9mxk?Y
zC8*ZOnA$3xvi9yb>kffv=-~XcG+?jL&btl(=a;n%onMXF)1d9}=uG_at&8M)bVjDH
z*A>`G-i6jO(venoENz*Nv^VJA>DT5z5<5qS`PbtQHaS|O4<oI<Rfjg!VOM>h)#!FM
zyZGwRz-`!->Sm{~2d?Lr=f>&MJa%Rw{!nuydcDIEimLB@t<Y+fm;6#$wQ6TUX)|qV
zQ}lbDl%8)icJs@(KODR4jEqdsPP!8KG)bg`TD_g5eO;ZlYl7SBP1q24wMkjpnl>HK
zm5UZ{^l)x9=34bebCE87ib{C^J&6tNI=Ft@r^oT)SZr!&ba*NLgmz4eegjra=v-qd
zY&$B*r#Woj)M>81c9mA(^^y<Ydi_JO%k(gA#2?$dX|Y9rq9woW*HezI%`lUu;6T)#
zh=#NU4hfwsgpJFD=X1={nw?HN#`-AeI6CUbAJzToDi~93FI4<`x#6U<nxGT7*FNY3
zY#1gz--DI}3GUKO_~yKp(k<P&`E2ac>C>Z2@yB(Jnt)neZLwK^CGXIkuH=VZv9H%k
zP0g@G!UXp;o#y3W=jw_!v8tsqM#@|riJ8xjj4Z_)4|koS**k2!o?NGwr?lGk!HL@D
zG9Bld+nrA92Jm(0_pB{W0ut3@cIuhf%V)<%ocKHXRfXJhl@iBI#hv}#b?Lr6-%v;e
zMAN2eO)<>`=vf+$U7H%FgEOc?li50*>S`X{lIZtNt4Fv~h)IH0H|Z4UdeGU`u&1OF
zduysQ=1RpauDa3>yP+D5-*6kK5PO|g<I-2%Fzj1TON05bH{y?KlC?xjSQv*k3473W
z+eAXcSek*hM2j_=WNYiRpY%1uL`rSI9(I(xUZ2u*Ba_wFPsLst8X5NEk7=_twMDDf
zRa6cm1&ZEuVHmYddhXq4Dc}MuTiXb#=d~LfS~i_Yr9b(>n5B=5UXMSjKi8aFMl7o?
z>;g5q5nh$PhhZb?4CjP2xUXhRR7xH)vQz+g*Eh6ODw{E9KM*_j{P6fh{J|z)9oQy8
ziTnhO2~nVklMQN<+jI$}J-f#KGZ`zjf&#Wsf=Sh{JSCmNhp)#UZVfgK5tJ8c?7GpW
zTdHciZGuNe8Y#a(!}iHAiZ*P`I-8K=8C{9fCKAj>{WG$;gI;1RqvV1B=pRdTBi!m>
zWd>}@IEJ-8#i^htwWKZM&6BaDGdi*me`oKpbs!D|7U}u8r;tbC<&<g$JXr~9<ym;S
ztkMycFbxUaTn9^$k$$~WYVP?%v5B)|!=?D+`<Gpn{+wtEL2HLIr<HUAX18hUh9<f!
z98z1M6nIDROtJa}X|5ZxfO)}F-7%I=#2m!j>+whTK|^$e>XV(aQwCwil?t8G;Y<kN
zS)bOWen$c`pOML=%-08FPV&^*YcT9bHBS>BjjYk;5bR2K@SEXV$alZ8<lZY)JDQ0u
zP{|nfGV(xS-d*Xm`H2A}%gETJ_(KiYCZ+o@QjV_JHAR+lG{|O^S3<U=n`tL~BOaR_
z8XLU{{nLRJ1Vc@JxF4-BC0baAoNhUI`>QA{q2h@SmUc3>whlTi)ZIKiZAG8*xB6qV
z$??%!@h7%-JHU3#gOc=jU!YB`U)tOXW$Tqn$N|GA8De|bSOwbco3xCV=hI`?FBfC6
zh2;3yO8i~g#4Y(mjJwI%RufGGb>c?JBR;(3V(ye-T#K}$6x=gybTix5GfQZd>s9HF
zN+(-nW2G-P`|`+WDgNkIb0tr8=MEV_a@}o7kLSj+8&peJJ*a?b3t6j8ZHXugc2G?u
zUc3ow!ze&Kl}6pDZ8vXdmStx3o4rESXq#;suYw-*4zK%eOEj%%?3Kb~J@CrN16x}H
zNN}z?J(@$j)(z1v;g4II(oRCYv$CdH=~UWS=waevbedh&^1M(#(vlWPY_#a@T+gH|
z^y(=lZeuV7L76o&p*F4b)$`i&l4cuO$GRGgC0`stderE2dbDkKD1+AADqOX`7`*+L
z8sH9%-5a7|Dn=yQRyylw3us$6T{M*aNOx?0Vr1mA@jX{4h1TepF}ctJOELibknK;B
z2@oK$XT#>Dijjm+p9bCiCAe1uEik2P6Fjk|O#;{hsh_sM*AO(5(rP@Yfiwm7Gp(hv
zhLyP<iP`q>_$BO3wBLfeTgz?JP`Kvri2z(U?1c&&;dI6Hx<U8$sk*z10a>`dJ~ca~
z-3)4*9U`02EZs`mlK=m5SEVcQ<;2yKzk2c;Pd+pBli2_N;=~&#MhAajaB1Mz2fk$>
z7yq~M?~Z5s|7HJ|`d^9ta_qZe>#@PU@9tag>+k)6-l?Ad(z6@=o#-En+TFj{{h4kp
z@{5trMqcjvX{LSP=k-@(<|||4vj_J0(T>pQ=M4adNGZ8T;C7=#E=H}nF6j*JW*|qT
zG}?4pC@!5&-9%YfsQH_;OaIi(*!u9u*(IdJyEc}dX*7ZfVR^#OrfC(7+)!##CY^GW
zngjznP?IJA6_RB21{&xvLiY&`sX4mptTbz`&Paz{X(Fq1P=mQ}8)PQnMQZ`%2Zk5?
zPhXEYXGfpE6@PRKYo%%>nXc9hb;gkS))C--W5aKOA*|lfK^(_{fF}{WqL~$Th0WD5
zP@9)G;J~NQnjh+fz3ATqO)IPDDQQDD&Z|uuW*WgW5i(&TYue_m_1JY-__g?ZX_~#@
z(;Iz7^lPs%UoHC`;UIh0v$l5g)uDl<7RCY%$7w*BUyC^}4v+isN4MF&=?b|g@fg4Y
zuLffEXgAQ_8+yh`W4HtbZ5oyEKpls%C_Zr2FBZ>hu#{}Zva>g?#V!qvjd=0L_3Q4q
zMJ6k71H(?CK#G(WjSFcMlA~g39Yc6-9%xxs`nA=VZjX#!Q@HkEt8Y0Z+zMFxXki`0
zyKogY(pdA+mqNa)kQlh6A$x5O9G-LwTLHFNA*k<ct;F=%QGFu*aKrG4ihob_oaVgh
z{w|!FzqFZx_^ujPRTFKr(|p}WH*PRQ^*KktuEUE(fj$ti$bZaqXLmU^aqjf^XX20V
zK_23q68PHWjr-5P%>g2h8>Vg>84Y9)J0@#Wl~%r^5W_<cyk|?;*qkB;(ga#@+O$8n
z6uUe%I`X;r<GY(9t^GZm1=1Ef+~#b(R4igHT$3K#ZIt?Q!%EpA;l+puA07JbEL6!E
z{7(ng8C+Wl<@4H=MJ?;FfceFkIdp2|wF6#sw1N73!(EY%*=e1j+MH;Pb?u6%Pk?XE
zZ8MeZW#YDm$j_SoLTvu!;WO*;C-+>Rt+@9BwbBJ~U~aTG0~mBDz-!B;a=ApO_6pn`
zFQjb>ce69vA`S|)*GAx0K6y2E`P?Wd_t?Je%eWhYS`yKQ&tdP1@{=xaw%UG8aRr<_
zMJ)xhu+1!pep@t^y%r|AtYLm0U+KvBQv8v9->(L3&%cVDFV38hPa?`gKAB2EdL45z
zZJR0U${b4S=qN74M>dMTsswdMEQ-F+@tKLwB$LgW!Xoh_^03+di$kNy{lWM{ZRMxj
z2J2S5yM>k4>3|Nw<0C=2zKasSgq_-SvD!oH%+!(U3MG!HIiaOCJ%w?ca*Qii#3wL3
z8-HxS`USkrwFO{+PYN~>dMC3?Y-Q8tRkVfm3ck?k89+HUG80D@Jlxs7!*G<_NV!YJ
zauP~OV_Ik{>)NNAnz(r8rp1LYaxGpKJ+J2O)#=w>MUxUmW1_KD@!JbNXs_gq5(K~x
zDTO~_MPy7<l+aD2YV*bvdh{r$Uc{f|qp&6Otu`)Tw6|QVQpb#zR=~?*S;J@9R~CT)
z-HA@BO}RV%0V7mQ42qn`6P?PMw<lv4%`s3${A^HbBX_sts^zT*l@hM>dQcSQJiw*X
z=&0#f{i@qBj^2h^v~G%1Q+FKg8iv}Oj~>=!jY|`(d3bCdSu2J_6V6yKxDU8B0fTr>
zaP`;GbLOxY{X+r*C7rCJFE0U#l3!TP;debfHWkMPfOfa>yLth(UOl<l@l64N`x5&K
z+!L7_+Be}LbH=9J65PgxwCp#$%i@eWw;A7TsmBLZf0M7|6l;bC<%|&XHNP!5x*(w5
z#SpJ!A)({skz)8OM2SVh$%MFDs{k=nhi~BTv5Zt|^&5naUR;X5A^gs-Wt|*e5j+L8
z3*0dT6XN-HL-vfqE{_&ruHy|2g}IH#up`W8G{=NCuU*1}bZYood<W`kWB$}jY+&!O
z$vyhlo~zB*ysM?1HB5tvTF@$Y@Z7@0bF55i8a&4pQf9p@<;o|-c{sihZ|q>Zc>dvB
zOVGJn<a|ooA}BCo_S#D9$wXNvmC{x?@yP)5ztY^>dL`yu8h>#<4rRGc>YXQzrZ29r
zb^jj6r(|BJYlE)}Z#z<I8lAyyE#N#CMczn(TPQ}3wt^QCx|$Pv<<`f+g|V^M<M;Sd
zve0VZ=N}z&Lx8)1q;YHN^rqb^)@atyW>GoViBb+gD*)c^SVkMm;+8Rt*Boee49lqQ
z7Ap{c-OufogeMC=D5>Sw)&i`6lwmp<jV&Pl1l|?g?;S6auoJP3@X~h7u3MT7UrblC
zv4t0h$I9_t@!kuM%54U<JrU~3dXOg(nCD;$Y~YO&o`R>r-;qnMt2`0(u^c>Ca=|2m
zbJxY)sAQ#`fmT9SF$bz#OnOGQQ#b6`r5A_sHiEW(10aK}!2a-jr=T4CBcVq_=s8qx
zlyuNBEjkKiiv4t?gM(p~dLt9N{NmV|#-SK<?*{m74kx}6?BW|uu7ZCuY2Nodh32?R
zU|w0nK$R3O3Jr0ohC{jox{QuOrF><|Iz-u6)Nt3Csa-2(&W>E-c1H|cx0clpIq5Wh
zy}H}l)zAPjw%MVti2<+t*;uY#dl7iTB~W0L&wAMhuj{3^zlxg~R;ILj5ZcP5owW_{
z8Jhxg1mT1v*i6SRpB=|87fcg}0D`~ZA8qr#hJ(40RBk6+YJRn}UE|1bkfT<?ZaPf(
z;KU9X@l;S~vr;YvCp246oBFZ|KN`b>TMoU^dM2klM9Iz25*55y17vJt!mTtL;t+H@
zE;~GKm=3E4ehaRN3Vy+eT^kx5-&707T1i%sBb%*OW7~fxWv*08u>BhtDdNjXXHBD{
zj;*;n$o3G)EV%@nch$uM0)$H&G5E`ROivD<ZQ#&uHn&RKjf|NCQbH_Tu=zr39J#iR
z>vkQ>;-;@|K7=e%8Ot%WE3T-05OqF)0V*df{vKE!)?83)hc5Z$87&L3W$vWJYjNf?
z@e1DeDwuVM1MA}U77l_+UGr<WK)G~6_txf-QOLCpp_m+Vco}>|g<v;xS~_D{nOhg-
z0my{<HarbE)?p`reg+qk;w6BRGeyg*VQ2CX<=)Yh-J*!m6#s~Lp2D?r*KB2VGkfbo
z%zkAU@deq3dbX|~(#x9f<0qJdK0|PI{5y!VV#kT4)D`8u6n-e=1Ex}EpxmnVVxd2i
zcvI~33_Sq;bK*ZF{!QXn62FxAg~UHf{DZ_#C4M~d*Aib({N=<CCjLU=`x1XL@y8P1
zk@%MI3lA9g|IL5w7oUw^-yiEP#l2TjnPT29dS22jr2S;t){9Bk_6kWI|8l`I@|<Y;
zAjM&3v%Q0Jpr#dF^cxRu05gUEVOIt9RznjC(_Xq>*mj%ew50Zu@%ERD3z@gSl)7MP
zUiDnp-&sU5Yv=+cEXt&&?sQP`3PDw_N>WMFG$t=h@ySe!D}6-bd#>T|7?1z{%m^Db
z`^V#VEH;|9i-ml$kYamj96d?LE#{LVA2N9y?YQQ`stz;N9kluj><(3kZQZxTw3jBP
zHLl9|j&<&W_VyoOi0FRJQVWj?mlbkvFu%5OeO<#$LVDHqaCL0fUC8`kGw+%v@~C@;
z{oZH#ua9+qwtM_sDwB3orcq25i~{FnrL)Ow#>*seGCS$KX=Mz@nXhQmrMp4bx3BDQ
z-z;wB&O0C1GFmOT>x%}2%r@{v+%9cy268=!Pkur)LX^L1<WC=@$~<^4v0oSlp0D@o
zaZgWWQo7;VZW2b2Po{O#Pv%pFRMJiPX{VS;Wea}lVABe5@Ht^D2fy_BKN^A=y<G5M
z1GUZ-w%}^dU8x6~&uPu}4jy_OnTu4?xS*MJjtlN1-l>+9@|eD$Wx*$H@dEO^>3Yoz
z4-Ywb@_WeQdHBX;Kle1-Jk@_O?pZ0z%G<74NM=pTO{QHVpL86EB%4ncOkX#PDZ99i
zf|r~tHJfrdb!0zR(E0Gna`Cx|qlT-@dGJC^j9RHx)h4GdXvPIob~1Nie*PVwy^jq%
z>Z)enJH-|n-C%w)mG%(MuAB7i6e#0)sbn_oLFWZ-Bn#<OHkC3S#Qa$oQ=k@r&7pf-
ze%<hq#U8&*Roqsg6kJdQuo$pq+(nqERRnrLT#K6Pwch@k%kNzEgMeBkXlRYnru;Jx
zb<f|>3Kym>M1SFZ)5bgRlJ=)R$S$M(<+wS4SG&L!PbP^vX(!W$3qE>whTr^j!Sak^
z#^!pR8Zs~*w^oMl@Eh{L!#u-wJ^HSshPk|>JBMf|DyilL+-r!p{=C-kW#0|2UV<f}
zC?~aa3U<f;h#Rl^i0rb*-&gHF^@0BD&qqGfJ?^lJd^QD_vd|2YX}`!WFnN=9%JcM$
z>tzdWW-X``#R@_6?cKXi;z!^8xHj$Y`LbLouj8{^ynr=r6VYBnBtqkn%mIZz`hM%1
zp6b6o64{KfA~Tc97tL%E{$eH5dDl#4b=_xyDaTFOPSJIB;u4zv?fXkne|}s`YeBgw
z7q}f(Gl$EKrQF6LTk)3;o-eABs1Rj82fM8jg>(V`&;C||ll`1<?u#kY5(+FP^<qI!
z5>MnO9ouo>IjAO%UchyfdJuoXN|8&BuxL*T_kfhx$a!JYgcfke1{$O5K>EVFwfXrY
zf1{Sl-xGBYSDJhyMEHk>1v}W@xM<!de}CwLZoltj|Mk&`-#tDHV^2Y-9DLsK<n&=S
zE;#I_jZD7i8NTaV3s`t=<H~(thktY8NSw}rpV!c!j~@1y4}kr|`@Q|dkVqMr#%#*)
zus=ONNg$0d_oAE38csgx`d}lzAG7FYh%<Wo`zwCepSZu2&O0CH##5{MB{_BzKwg<x
z*B0>|9T6~Hzjd&pC*BP1XHN8AN9x7zETr(aWKh(TIKcpoQAB(jqOq7M&qTv5rt=nd
zQpx4KN(KBut;Pi|_EEl-58p+0w>HI2W)%o=CNhll#ZZiQf9-vrBHF50N=YueMP|NJ
zRo}ld*nj<V{g>n3Y)ZF__@4b_0f-7W;y5iclT77}jE}G0DcHthD>Ro-i?K7ozd}%9
z*)p@>@kFh}6=VY*Gjk6!O#C3q@BQ{yaBDWStPgj6`};j?H1{r>zL1={@IJ)H6K^v2
z7YE{;!2VF&)KhvIrsNi(z9J~<r5r&IE19x9PRC4{X5L)qHnYV^FYIE|E4I4iV(y6@
z&GHWz>kOCjZP4S8y>^dcV$=^AtoD*bn_|`%&OM6P>gfyC+h5Z4gV#rM+=p*X_pila
zD^|ZL3XGo4Am9C@pY{dEZ8nxSi^+^_XRWlKBIxQt1x7SqR;e^!tZ+hC{R4$KUuhxv
z@lZi{hvNP@JZ7b)#JEa$gYSu;c<w?bgTapc(}-))@y(#mypPj*_`-JoQh)#T&vehm
zy<|#HIiQu5^i2y~Gi^@D$P|*r0!~*u>!HoN2hR#QW(VQ+f&d>1@gAOrIW8!O`fdtz
z(|{T1p6ib4IQf&Bfth%qiB0~VboF=M67NsM`meY9owzrjO8NLs(q_`|^6+;%Z=iOe
zZ29;}v%~;;#guWd{`<zr!I302{Qi4>LGv-|iPz+!27;&}?^w40{q675urQzzxc>X5
zk|$qB@ApOHiA&x4W04PB(l-dO@VOJZGNo<oiev<A6Wi{+Q{Qs%3D?9LOVqH&y)BKa
z%UxU;N5+dSF5ft>HC?5t>`2U&hMHl(0IdNdTMU9`9(VP+xMu2y2KL?Vcp}-oKgc?a
zgQszOf~K>6<HA2Xc<0g2XPi8kk&k)q(~p1d_1^vujCBW*#LJd-rBrl@(Te;}onN$r
z$E{ZIg@xe`nsot*)$j<L=9F4B%ssTnr}a%2hr!`?_Mh*IU$?sVha=-S!kv_FXAOi<
z5#%W9cG4+gdf1R}5yQu~^Ull;0V-SuPV5980fDGyo_i>uFr2NoF7cXv>tno{Z#~1S
z{+5*IPrVuNdhyNMyk2;7me=H)2Cpx_`4L_}_NFB7pWDC7>r49{uP^K`@%sF}&Fe?^
zKg#Rb{RFSieTJ9QTfBVa1~20iynHyx%h<E33qWFw-@9yT0Dd{Ko0w0Go&1w0-#9sU
z^7PPu9{PJje}3pQLu*6lhPqDtA18k3#1~I|@`QO}VDO(0etqx{4;BY64L&{auLu6t
zz;_Mo49q5eZQvvE--!R+_@9gK#jnL*>i^yTf7JgM`@hitTEEdBkNvaQkHo$s=Ept}
zJJt8E`u=9$clHH+SNg_#|5NWzCw`;%&-S)^S9@RV`JJAB*z<!uZ}r^n(R=!%zZm^1
z(LWR|L|=)1u=`iL|3>$hx@+At-5-wp$H-4b{!HXvWF_)K*Kc?IT;f*~za*QGpO>Q7
zBSyi@`zCxeTSTm-O=N?pvB|7&7f@!ij_G8*a3Cs#?O{Gc<H@w+Wih2(6iXK$RX#(Q
zw3*4Pfq7qd{DPCzv!VpU!jcYVOVYxoL<jOL2D@sY3!8>9B#X8O3r8Uk4Mk6SzU^l6
z`GV`^?N5gT^Nz23R<e-EV;rPXI>v!$HeNw5I>c+D$lmD;Bmg1rCJ_xX(D!hM*f!R7
z*3*4Y_wt3pr_?~l&lWAjI+{63X||9~I$ZW)hZl+&H}9n~w)J{A(8WiK!JY*_0gt68
zU39r*p=jk(zQeVu>3%XCNJO7!rTIj5ZTSYOf67i8MIWsjg{<fnUh51riYC^-?f7tc
z+_ZQ+S&0eE(wTI@$y(Xl;Xv+u;QC3#9BXvFbTXgC`B5n53x;F6dNGr^r3PlRsXPI)
z$!vjni1_euDwwGxYvYtqN-?co4F}p7y+u@U&tyifgi&T-&^GpDO85D(?3>|0^aG?&
z()S8j4Wj?J;&-u&uEXQ4f?Y6gsDZXuEShOIX%+Gy1yPAeVNND*TWK*Z@>V{7y))27
z(KC{|E#lhtmH!6WRz#5_u|hYp#)cZ0$+PAxsx!t3=7L>F<{cxIv~+NwNQQ%DdF$ao
z*G;)%2>Uvlaf*c`w<u21EFyEPyp!dxH8s$3^C{QPiq3;CB9HQz&!e0B8CN$2qa7!8
zEga~0wuPl_gKV%U(e?DapCqBeHLSE{7@o5l4n+5Gv1V+`;L(23295<7THfWUmSq)f
zb43m0IP<tk0XT${w!{&UO&4&wprUZ-DV+Ap;lR8H8QS6v647t*Xd?smfVtR{R>8^|
zOKPA=*oKF<%_qf$8KJ^#UQZ{nqQu59(MP?-aG>MoadRZ)5?f|8lMaq7XpOz6m=1^9
zf*NQTx{ubB<c6Nj=n$^!!3uQG@O%eM%^T*`a3BazY)&#|C@SQ|#i-$+Fni35X*2!2
z8mJe&3{M18O`I-Sj3LM1w^ZI@Nol+m+;*vfsiI#n3)y7R%K~tnvv%^1Sg39xV-`#k
z<ed!%0<3h_W(v?8HxBq{S{4dy#!Wk>SHQJ@B^;=em;r<_!$I6a21dqRchVx*JOi2)
z9IrSd1EGSvDaw^+=q77~6rBR<BX^-VRGot3r}gR1z)X=_xMa~{>jYAHkSlWBfelz$
zw@^rB-KlV(>2fj!EED)cny7zvoiURv4v?EBF;4l(aG*|L1q>ixVA^!vHpT0P4=`0U
z^955--kDGXeY2QO!Ey424jefpu_u9}%X#HfI<QFP!hxv*Tg{862m=s=!?5PSQ$??k
zwJ|$&=dv1DC=wtKf6T)aL_@>jrx(FvynRqnrjW7SZwLpvXq&bHUF%4NJX?pqL%kfB
zZ9+roZ2D3-P|tWKAKP}3fjS&7TLe4>!_S);7tU#0pHKt6B4mt*u?P-8T##8Fgh-l(
zhjwTc4Bhfy2?rAWBiQ5Ga@J^$&~*m7&ZZ1Mo6T};sgJ9HdB?JS2oO^MPGQ3Avkqrn
zM9LtwFcGYR6At9qvalTk#1rt~^~?e&2XZfDU=w!U&Z>cK79TTcX4o*vbQbh*;Uvj|
zkM5Exy0G%B9S$Vpt>`(N2ab(&*2O1RfC~U>J6iyK4X9TQbbQauGg&rU1bZL|v>u@D
zS$;8_PkCt@!#5o0aUl)v=V2mnDv`j&6tw1B2uz!}Mng}B1L0;iXhr}D;IS|loHXJq
zRbZuvprT*Qn4N);I0&fwj_ewC0fuA9rpS&<nGRP3o}mUpzeXBk90#0WIC9o0reKmB
zAzayUJtwP&1MwUcvV|lJ6`JuqPR23e)VkoAO@3S|ol*lcT=Wz{7YnTb@Gu5sDke?W
z*0WHeZhGm9YG9i4lTWZq83<!ZW<@k{t6@N(*|cjL7t}yb-%2A`!F>^NqI@7uKo7@&
z4l+I`m{bD|7yH~tRHqI2BZ~+0P>*eTAV=P^kOb$$fmz?Roh+ZgO>uxDUF{5yP7yYT
zA({7F_vLUPe9#2oc@ovwHNG@A3pa<G<k2l0WQq4NHBfgwR0T2GWMBcwowf3Cd}x;2
z7zDPLJ|_dAb0VfdGafBEMG-0_YY$H0!1%b!DCpUjIs=Wo<7Qy?KAS-;N#--)dIq<z
z&aNy-;zczO*R6{<N$P3%LmICi_?XTlVK9aVb*0l;{e^I#?t||l;@C$TUXvtL0i6Qw
zkwTW^y(&Df20{i-L3fhAx^F=?fIaYxOxCdBtuQ99_|b46T-tTg&?krkHlsfpkRtku
zmqO(0uAe@u26{eP5Rd^^0C+)%xKIR>#Z2DvOd!ck-*e%>G%?X^rl42~P$4l2Ac*9`
zFDwY-olye`RWI5&Gi}l)*-TpK5e&!Ai28#Y0Oz6>4n&X53$yb?D&$3z;>6)Ft^u<}
z^E3*l!+{wKmhR(g7i}+(3k`h-zLw^KsQ}d>Yd;bW<l?}~bMNK}9Bs5#5Id9fQXb5p
zz{0ZDxEg5Z3vl=>6rbT_P%Ys-IAJ^_7Ft}vgC;*54n*h88fKEKE(R9y)<RnbK)|hN
z6d~VydMq56w%im1NHD!3E;uenmn<N&xDtb5rPCh@2b!jD767v-^&*7uM8eX&qQPyM
zc;wRgQ8n;ATp~W(8ThW3a3kTscfaO(CLH+g*HFW1;Cr~pd0Gv857#B9!h!F8<M6@G
zz;|`(e?Sd<55D%N!h!GZ5>JE!-`%5pQVo0$9^avG;JZ6wPpE<K!SOj54#bi)&PA_x
z``9&p+SQW<Pb?b?^mJ12EXPe}J=nDiE=T@2qtDA|EI3Ec`i%C4xf#L_9QZ2EE}sZL
z&n>3>$O@xhl+g%g%SC|)g+(E8QR1@(rke?8g0~hu*D7}X4x`V=XtWkHmCqxZe6coo
z0>qTcAfJ(ua%ToLcKslu6?<SE?`~)fF*@1xrLM&HCO(zuJ^5Ep-aI)l^aDc^Cw}(C
zXHFP{|6=f42R}6M^?`c>7vet}--@5^|C#=8>Ax8Jnb>aZg}$Ha`+VP1y??W})O)Ju
zt3B6xdZRxU{Z#Z+_aE+_iu|X@w?{6M|NkW(@cw@$_a(_>Y<NCi@hZeC<+!RW1beQ;
zhD_sX#+kK%6N@w)oSPEaK%|>Q25DCbm|d4B8$vlgz26g?Ct^P!O1r{U(;m^#1&MFT
zRaBOu{3_QvL`u|_2<36x@Dbd>gwgu0w$3G?TMc7BQdz=EBrHf`HiEp$=Ot%G&s^P)
zN^05}f*@IwYi3D?k>J5FibcgCNnpt|c^4!)sXR=R%o54NbTaotqsYY|!prgZy9tOH
z9j(SmFd>HfXv8PC2ogv}f*?U(WSkKt)OM?rttO5(haha7Pnvk;aPZ-P3s+4*0I^qX
zZUw?*X>L3$#GkRaA0b?5loAUCNfO0Zm(g>1t{)quSrTNUvW3FjH%WU8YR!o%caIV;
zgft^bk1T;j3I-56wZPZs_q&*Gcx)z4xC}1F0^u**5mdtz++0CTCz<l=tdD@l>+9><
zS{RJPj_&7tnTC_i?ngcsTUi+%A<9iI1j8UWV(7@vdEhqV9VssY<CPtW=j4)&t2^#d
z{o11MZgCY+a8p@wfAQq0R3r%yQK3SFkaW&eh39aW{3_c^r84v16uUSqvHg{r3SB&O
z{7ufR&rjA{9>o;I!AVFx*e75y$VM?7%aRDNbsrZf>W+l)z5dylIW%(VRvbSzl@T&V
zuBPI#6&g$I^W%cc4zkVUJT^65V)V!*C53`GtrceH)_c3=U-?FYFGtBQ+pPPWG!)6C
zbLCQ1qIs|4(+sG@Aen{!BH_a-`X>bzWA53@vjnQO3VtQIPV{Bay!x4#J~lGC5cfC9
zsA~GT9am~n$SUVrT=6X5P@%s>T5+9DbbQ{g$gU;I9@HZT9%Q(|<-8o&t9z27_@W!X
zONLgBESE;ENMK=$<p{0e;J+UUMG|1G%rz;om6C#0@`<eo^DYR8ovCuWgy)x=v31Tx
z&t{74n0;n!v>{2lQ0x|kKqMd*JduS?O1cP_ro^s-cm$CW^h5=PtYtbWi4l`akadC>
z8KXk2pf}>oJ7I(>m~Qo^X2M_1jeD_+&ySp0A&Qd_&xcdTh!ShO{gox58-;g*?I7Fz
z;t${g;ow=7J~l(>axJ;&x9T@`i3%T8IeLV$`YjODKg6ssDE_7|B|<VOf`17@lsoDx
z73yDvISrELGs#0Gyqyc{8wAmrgb6R*Re}3tB}oJapmy|Jm59ljIzCvN+n6F^g(IW(
z2gO0|=NNEvPAWjw&aS{RA!V?cu+my9HZe9n`dLyI1%c5SHzkQgZWF;572Q1@P*9^u
z`mY4-xun`NE+BC`tu6YyKzWtyhJ$cC$)Qpqnd*SuDv^3YOOgr6lqbqGYt1!5myuy=
zK={cmqSc9TYxuc*&~VkWX6n=tnI>oGDy!=RA_HFnd2}f!!cq9Nx}o9DcKLQAX1+X1
zx@f?uB)LrowVT3yz&eo=9K2j4taHOYQ7e!<6CwzF4z3wSdE?yxqiu^|^lKrVaRy}q
z#aHSv^UUxVsbwv<mP!fQago#96H?nySq_qRFVS`rK#6E?iNrPtzz!p^3D*G*Dy@qA
zmyDfF-+CkFkYasZDxgT}-sX{fb_sv11noj{ip<?oV}?+1$W%RVks1t#Czuj?#$>X!
z>k{%$0Hq{;y|xp(m>eZXm@so#j&q1)lE~CZs!)SHh{shm2K-r~toCf~@~KwRDi&2V
zB6%+A)If4_+_{}5Z-+1z+rAk{sQ_|k8^F@9Bk!<>plpem4s)=RbL1a2uDZg0T3p_>
zp#_2!1SgjKT_#qkkC3h0Bdg*DmIDWvt0C`)IXw>w$aC>`7~i--AO@MuNE#x1$*p91
zCFCIAun0;x6A-sE88f|5MIxW(tjdx<Z5g?M0FPP+cNYj`MpD;&L~{W|QPHcUa7!W`
zE=(}Xuxud+By<(dGFyRx4-elAf!Ux4Lar?Z5QO7M2G1gCohmN|!aF<|saJ#9WUVYp
zDvRIZzHOx}l~cyOcqJ$`^wi<*7E7eV&4z*8dsJgclgU~qe^74SCAl?>I3+N@9cBj*
z&x#8`&os8lI3FdR6?mzn0LApSjs_PK*j#9b@!5y@gOgyiU!lx`MfzMQ{gK9ngOW#<
z#o8qX@_`svL?gMPPI|5syGWrK%9rF-baoE<YbXkne7s~Bx;z=Udn%%NQj{|(w;~kF
z{k672&XL3~)>_qX*g|wkje#<0)sBh!Q6i&7z`9s+`G2!{H}IQMxkW`-qus+*iRG3o
zkwwCOKfQ_0F>;n*QAwfzOCh9|a4CrXAWJ4p+!NJ+Y<r{uIR^#_eo{g}lR`<2I;EC~
zx9u>_PHz12EiIExrLAf)ws3ir^cL`-AuOdq8pd7FM%Ys;EKDHl4L2>RYO5|Kk-}89
zsd{T~0ufqpSAA9mF(~B^C7)Ppls|Ig*pP~g=R7f5?OQ(a_L6{A71hYEP*Lf@-GC3f
zwdATR0dM7l!b9uA7Sz-v<XE9z$qjpFYM4#hH0;F!BH}cuL<P|W1M0FMr^_&drmTPc
zpje2?O;gDNhnNi8f+Et|>M~##jg0hG50W@_dWFPl1TnFb_i~cMp;YskyHY4aB_nSN
zSS475^M|WuoJ>}`f!?tq$p|Vp^+rBspL=Ijhc;?vAj?wB>ORLt{S7KpDrE<FlV+sK
z;z+bKnFgkIn~A4LpOn)fD>gQ9ZJa!=Q0s?<OLCH*t3vNc0hwIn_G0TEA*TeBb2BS{
zZ*e0}{t<&Ebbpyspk5SJX(|nL%1$OLIsQ^g2P<KXC(gK=t?K5dWfxSE3Blo5Ia1Rk
z!cFl+nOK6p7lVN8Noon~xf4>QMesoJND{1C4WD$3j>IInG^D>yo)`(>w@^#)W_{`o
zlJfNPey9A4ijboS2ITK{jF>PqT<wi`5FXp44g{$Zjizt`xy)CZgdxQxM5czdC6<v?
zc%1EpPsLtDy;_Rr12dhI40p*Im~4}dsESr7dGGJe@W4WtD~&m;E0nX-I*6jMc|rr>
z(y9FGv5Du$$6@EhJgA~tfFBv0<kmgU86Y=FQw$nO7#kVi2b}0Y&K*e}&VW3`)tOhp
zK(W9iAG+8Sfj{?2SjZ`!vD<2rQH+6ckUenKZ$d4^7}pU*ZDfzgdy*fsHk^psU)CCV
zVT-Q2nOyL(8Y(wmgO?7I#3boqTRw?acLS*>vMU8|Dhgv1aU>NDf*NJ9i_nW|8(0YU
zOG=TjX^K`N%M@`?FMq>rq}nM0_a$CJs=FNu<JFSF!Wn3}=@&yf(FLC&-&>L>EsE`@
zZ?VO(@y}7#s$Fn(`|#^%KBDAK0|!xFh>NF^P?!L$!4I$$Lo0{K>yDMvL8yZYAe0p#
z@xv7R|9sbXcP0KzV*TW=oczv{-!Sy6L*I-2|I;TbCr%Ci*x<dvmj`}g;PV6H@gIqA
z_WxG@_w;`(_V;3MDeM1w-$|<fm3lwY^N*?i_p#{z9sLW@jqZPo{r^Jb$0Lod-(=$7
z`_HX?U8&4L+#}J0Q{2UeoKx9Pf|=_?(fF115++H5yJeUZOoGfhBKW;>i0Q;c!xyjz
z$&uPYfh1XDT|+fbW!w9y*b3a;Wo`<%Y^(Bpgn2eLgVt`Y88ns6sSFD$=1Gnfs*0*H
zqgawEaTlsjAuAza$4Wa=CaROtA)zsyjCAk?K8YQ(06RwCUf#bbN$D7vcf(plJA{{1
z+#DH+A_5_e2~HM;J+v~Hq2+R?s11o|XcksRUy@QwrELQ4Fu3pRUx-=HpSD1=S^&<M
z5W9y82KnGBH%wbxoWdLkixSL{1LG>TC+Zl2iiD<V|6WKYU?DCAU0a05O%O6!@QeG&
z*rn%3N6T@KVji0SM_dhLgH`?Qk}FG|!zQDGVq05XoC-zkP2m%b6cKtRwnYQGfYOQ`
zTSf|+b<U-erLzQVEW>_n|9tF{JvMeZtZ;*Fj_abH+g7%m;;54%7dc2(T0|83Is6^?
zf>^`WtZ?{dW72IXr2z>`=$W+<)}(2=JB9t1WAhh>@z#XV>7)sf*p!nRb-2V;6nt1P
zZl_L$EOLR|(WZEb<Uk11#+IX~!fq&UxoZmLE#Yz<=C`Vu7Cdof|6@|-4_QvcI@}GG
zl9bdXLWnT>xQtL7g$jxOqPvT{!Jpu7ReeIIkQO-A(R7G@U*m|y)MvZp%lqd<4;`I~
zZ@RGc#-1{K>(z#E{u`yufWmCsI3$p7qHp2(3-ib4$<>@g^=(xz@4pm#d1&<1l2SnN
z_XODgLPlY(A+lXemTcBYcald9$w5~pizuABo?h91k^JaW=>8oI#jrrxd&%vv+J+#(
zDiz`g_;hO~7xAcAtvy9FDE*-ptF)H$+S<IP6LDhQ-hUzXvNL*SK3*uJLL4$TDNI2|
zljJDM33sB(Rm~uk2}nL1#?JlhX+v}={2FPjN<|g|vdR7D;hm$SOpZIQ5TIt}DD<aP
z3!i8|A4Qn+Uu>0q<v&F1lG1LhlHfamMIY*SbNe3^^OQ=JWl1yT_!^4q+!r*GolGUS
z68ZvyLTM$T4VlWk3hbp`#a^gTEbgDB^xr7ePngQDv}>Ukqj6MWU1NT%7O+4NPwGH+
z<buUnI9S;8x3Kg479x0k|2bifW3ICMU39t%%R^$7wq=V;lGs~;O;xbs(K-(cf@1iD
zNyqTREkH}L5~yi~j6B=4r}xhwutrb<wuwr{dNL0W<v``69GW5ki-LxV0LXnqE9&U7
zB>dRf`o0!3r$%1%;=*POCs#!8l6sl4G-cPoPCE`8IpC>Q6$j%c9e42=$@VFOhVKSD
zI%SY2i|!)ctxggPY*pE&h)v}PSzV(j7q`B*_D@TtHN2-KDSnDUP0Z+Kl1e!+DtWMC
ze$&1bD&<lQaf#O9YN#PQ9a+gOJp16gl!f6Hmc6o|iHF3wz5fw0H-^jDfvqZjAL^dL
zRUb6kRT|+c>Mf3qw2d%URcH=ZjdBwzB^?pGM6p1NV2#=RaV*wh<UziaFFEN4XBE~X
zWjd)<B$lFLY~U&QAob!_*Fgx<lt3DW+}{6i?Bb<U*uMB5>jbbJN`VIpFN#VU<{_@R
zMa4V|ZFQ&!7^<vdpl~w}&UFrz=n*Rw?2pA9^YlnSY0PG`fwvsVTj<DRz$+devL2OC
zVX1ZWU5+TMLrAhhy_}}<k+$SXeJM^v^irt}aG;%l2TZ8ygD&5|H)Ljv*Y`gZn>aHv
zd?&um+@^&JDQ>(ZKu}Uvm>&rd%qQNL4YyitgH&~50z%|!s*G>+Fsh%aVlthK>WM|H
zStn&}?T>OlFgDtb<0$YX`Bs%_eZbMI92-0xqZAXDb0<v0K585*ch^A?CsRzX4OEim
zR+ylBWr^TexaZRTv$5p4VJgo_7H!JNwYUpN%LY_&-urgWBJx>OP15B-GU4SmM@>jT
zc5OzAaba3)v5K0vKSDOR6zvQpnPue)E{-*LT02RQX+g?*DMk>2Y!aQwuj2?*1^c8{
zr<z9W>yB!yi-FAvP2;n;-72Yjl27kH6TAHKX&lV=YXwwsMC3x}kCI}LPlHNaicL$N
z?!k%Axx1nwz+S0nh_6^&E5u7LAk?4(7KiIs3KUK5591ga9bSpMumHoz)wx1Yf<7!j
zyV7h1Bo~N2txP`DAGGXM_`KL^q8DJ2dizhuE}a`Ya}z&1EChxRH-_JnxCgEY7}kO|
zwe>I#kt*)yJjAgT>fg#7tzm)NWG7LQkYZ4nR2(8sCl`F7mh$p6HEXz>xVnEzmWsiF
zK6o#iIb@AXxbO&^6U!GL>Ou83(aZ7PiZ~~L<;o2TRq=OYOZazXa{q&Ht5djA!rD)y
z|42<s1XsuLKGAkn^-*#8iGUK7iOeEf=2@e_np@lU*Y`gVTjAyfn=LFQKt(cK**W0_
zwdCeOIXMLYjE~S2;dgeg;F*?Mqa>T!tJlR<Rma>3ZtOoL<`6<}r{zhB>?D3;RG*wj
z+5qlNk@SmPvB|lkQwpS1*^p2l7M#UB%Q;buMB89mL}N?JUAdp!PsDU{go3|!chFmT
z+93$#oI8d%aGa^^xs)@)e{i2^u2Z))bOkwLB@s8Its)K4G9gM(EGRbiPsT1f<74f3
zaYtBUJx3l)uqV4;47hzE)l*!Z3Rg+<^r?y*dayg3+QdWENgeNGeuvsBWyU(CW7Or}
zK}FvQQHyN*_Wn@pk~Km}U(r#k4IqWX_NY`}3E+yMk3snEI;8`fs_xvR@_9irq|T_V
zaTXbz#^NTU@ELBpx&0F;F(V_Qb5(+teI)C90=2wG(SlOlBA_q}$T;(`l!TOyq-1Hw
zyuU%gBcgxS_6Kp@j!{yjR8}5m^j`c`;Vn;CX)L@Y>Dc+J;R$sLu&L!q62HW2U6HyS
z;8+mc+#f*Gl`_QJf+sleF|{7LsS7J8;Y8qSi3l|f7XtbZnJFmkl>^;SEtzYLc}dro
zJIXk<(WG`He4*~*F+Fhf;cpbRRjwLBdtBAY?5O^#mgEZl*2dwzB91Y;wBH|_dU?20
zieVS|0VBjbX;-i>4z)SN3)d*BN~gawO^v;<00TF*VqA;CjTJ-LDUe#JPuNzXj)yg#
zQ5Luv%~%WjG3>ihlqi&Uo&&cN;y&V-3@t(&8Tfe@@dqCi(NuMwQ+8VFJ6;LysTy&g
z-0zcmC8zJiEBsx=#V?2fG$h3fHrlERf_KX6%()bus3SRS+dA+D$Q2R`=2Co<q!Ydd
z;;0L3c%EYqL}t6*jGXIA{Ga6c|JlSJOjHv$6CY1Jd-8Wr{_@Gcck*i||HR4m$=6O^
zI{Dnmo}phE`rn6sc<4(*J44ro&JPVnzT?ENo%n|*{@RHjJn?OK3$C2Fcw%Vq-wgij
z;E#3x<lvVF|KQ+ucXDtgvN4z$Obq<Lk$*ezGu=T{ANY}h?-}^)z@34skss=w9(XSD
z#y~v&Yw@3oe<l8{@p61IZpEMO|Ly)?>i;|a-{1eu{pJ3J{+Id_v0sb*T<k}>za#cN
zvCqUl9m~d^>HDp||EuqBcYn3-FZTVBzDD2mzRP_d>pl@V*EiVv>%BkU`*!bFdjDwe
zcJD^-rQS2WJw3nJ^AkNk(DSX4pN`J=ywP*3XQt<T_b>N+F#4O(pNanE=yyfy(L0gv
zjl3Bt0+2`jj7KkZ7mzMBN;_0B-Hx7T<c~!oT|)?8?)@oR_TlI&-N;}+4|<D{eB|UK
ze@lIcB3NkFTLr1ebXepv@;6UMC%VC?dRt5^PS?i|haL{83C>6UdgsdrWjggE>UreH
z&O~RrC3J!0BKVAWy&lvgBY*WH(aS813myDnTwJKd-FLV~epHK2br;H1vJbD_AJBuq
zvB(cU6TR4-7dMt|9%`16|M_Flo89QP2dk1LGdty)^1_~yp_Q#R@PldvY>mrdDlk&c
zRW2_uftAFM{DACFB8bJcMm-_n;qaC4!|(qP^(8}!LhN&Sdbsj0%lFiES6(hn9<Zq*
z-y<gnSx6nUPE{0ym>=2%k?-QHQ$=7U{0oj&qij4*#;`27vKG7k!I|i6<bLg}k*MD7
z$r|yr99hCo3`djQJ{PY+I~N?3{E7Vd2czdA4_0XZ$P3YH5hxVH@ku=+UVb)eKf2VX
z;E33W(rrR+xHdymRc<;3N2Wd+UFZ(4mq8Cv1x4jUC+r-G=$w&1B(M}U8sHb?9PY!i
z>$gXvmip+O!7N>GJsUOI;zI^q*Y}-@o>L#B(g&=x>wghAp;Ff=MRNrIyMC_oex+?X
zc&|lFi#`#F3GxAy(1%@A_q9jA7@1Z}J{Vx94poP)zd9PVBlo|1v^2^E1&jlymk^bh
z>4FD4%3&g`v+KVK_J9!x6mE8E1*$3if9$;nd|c;w<~sur91PJc$uJDVFb^fu6fF%k
zy-2175Cj1d01FB!Qq5;(4uB!5FaRmgEi*{5lWd&WiJeVZ$0dn<vv!J8H@;~~;*{O=
za(8dCNu09DZklsbHtpvApYJ;}7&OYt-R!;hcctGiv4k=>=PPe{-sgQ@gZSy2!PoXR
z=lG^E^PEUTS1lB!?+v`FITqYYnRu%?3YNBnLQvUMSpq*GQrYJtqB+&w{0Kj2s}^-h
zwKIChed{;HS2jP?WWEzk46HBBnhkzdyNC`bCIlgxyux|^IsQhwShTL62!Pt81-Jvh
zsk@2%q{&^3)b4<82?s=<82E1UXLjN=fp5{P7E5ajvH1283Z68!62_2;2{slLJJt_a
zaLfE1O4FXHq^g8Sy8_qN+_vD;_L|>XSx%=(2FkQdvteeVe$~8GE&Ee82=Tz|(wO;+
z2YB1Sm&k7I$%q5rU_Z`X)-tj8c=VDH(+!qoO1a|<SGna&G4C>^6DOLl=qGF_Me<GI
z02FzT$xOedITz&T_MtYc8*}UPD~OI^194r~mKD01mpW=!0s;nclj6Sta0wI629q^I
zi4ii0?&9`!2%hqPFHe@R<le*#uV5<73jTzQhebrhoWu2$%ShlY<>7qk7IwV4ITbXI
zVvAT96&oPle}D4`zsNJzU@I04!@<T;;4zPzx1X)l%Pc5~;Xn-=)NN_kO{%44&=QuI
zN~6Q2@7cBR)3$xcXo1T1hu7Fd0~jweVMhk-UbC0-zQPs;sN?WI=A#$PYJl``r(KFf
z+b1#bGv-|EMh64mY&M23=Qq~Lhlpu+ZT`6K{a&8JvT<&{-ttYAXS@OHWX;<DlFsNs
z@Oj`9N1KO&wGeloTK1eCO1H$0c)>Ih6o9u=P<!6o_)eKRqC(dHHnM*6>#%@|6zLZi
zBPJa*m-xTSir5|8MW5Q#&Z|xV#X*TX;?{O=Ua6Db=-mw+^Ok!@Qxqbch(%NR4YtZY
zn4iNoFBc2uoqxH%`SIX^!$4m9y5>Q?dr*N8OOWH+`w4NhX;c0EH;6=C88c{~w?^}*
zDdb_wyt-W%rW1VoE1M%hydtDQI3lH`f)=Rr4b7K`kY1!B6!;F=P*q5AIuw@cwk`0(
z=DGH(Rt3IO8+aG=Fz|1*H^eV{$ziuO8Qg?7I|(R@@)UbmKC5~-^VMif2BjX1RO}OQ
zNg!pYusLvtIAmF58yjK0QGpK7NRch^FOogK5h4X+lMb5*aCM_JHvr%uX&rON-gLZq
zqKW_H?9CgsT$Bl+*DTxG06B;GsU=;2{7TUPRX3@~5kRd8moeYX$>!#vj>u{7*CS<k
z7jP}=KN0wzdzw!KcNC|eF^{A16N$tCu6Ds-J;6B{gZ;47z&FYU<?%fQm*2t|NuQCL
zn*yi9PV;b31>l49K?iihY=zi_Uv)ajO^c71YxqSv)Aon<D<eOt1NNd|P2j6^Z~PyF
z*CUhG5JXMrEhHzfL4}QXAh_im8Veu1C67#b#LHy{*lF}e<h*}R{(|!=Sv*Ac0I!v{
z`uozNeK`oc2oNgfg35gNigG??f06kEz(UHX8y_<8>)YRjmx|;nLWk!6o7GO3Ct9Mw
zAuv}&&jt@x(lv6IkP9XGA*JPxvEt^KM9sVJ3kd|?ZQgwsj2QSD^Baqsq&=zu?}*wn
zvU>Z?=;_sIyj%4yU~(1v69giv5O2Rg;QugBvI`{)yw9wN9bCr=_Z9|Bkm%Xl_bMG`
zS3b5puw9A_&YQ;<$f-ddDu&k0P4Fps9Q@M?qWFM)MEH$65cK4<U7nHOXjsaIlN7vh
zB={)#zY}PhXnJGQE4u!$>leE|)%A^CUkncLMAzxA`@0Tx{%Pkgf&+Yg=dI4Sbe`>e
zu(Q46Pda`c9N>c;m5!y3>ELg4WIA5g(bE2>?Z4LkgY6$gAz;3JvOU-SKzn=J=h}X?
z?FZYwzU{4T&$gXwJKom9G{K)a^5G*}<o`oQ9z4<<{;%O*2>;vg`@^@w&xGF;eogD&
zk@^2*>qmos)%s=R{+C+Qt@nlgn%w{ULmv#i4efx@(8Hm75C7%iUpf38hu?Sj&f((W
zfx{0T4z_%@<!4&Hz2&_@r)8sMrsYj7uWLDc=)WBL#X~=E=%a_;bLiHgCk_oBdc&b3
za1?&7`BTkb+kB__$>xFP2b#l8f8O--O`mLfFFFxF5&YKRyMoUJCs`E#ADI%98sKJ1
zEHC^|L;ef?JAUB9wMuB(o^PGdaqUU%>w7Asfp66=FQF$&U3dT>XVDb=1OFtm0SiEE
zOW&^z*j&~ejuSdLRN~<Q5K97lGg)huu_reAeg6Z^WBl?SmYN(vsc0c#qHIzCd(vLe
z^)i56d4;rKfRrCwY_8Xj=zUE(4AcRUjtt$ucn|0>y_7_GKauGneF!T_Y0*zU2WAZ)
zj8-`66*5)duk)@S;o2L}v*EnISssk<;RY8MZQ+Bff?5gdXsqws{2y3A&K*>aqI)^A
z%7VgDv#;KzHPKeG&W$-_@Ty*1-!SZbKsH4T<};UH+k866cM2P@04cHTFvYKyb+q5y
zO~`uI90YfnIxJ#bAbo=ODSj<mC-rq^ONFPGyjhiPjSciyJMi<`q9y;kv<(oAQMEN&
z^xgJbtPnmF>$xx>{)+k5x7e3(IVYJcxyYJf@hd)VmOZ;0fEf5<t^4A}vbzA&blqJ9
zJQsV{EWzXYlZzUNW+`>sTN3!RV&T1#s!_e&A~YH^YX-=&(J%#mL%X09fBDWznz9}R
zar170e^3x9hHL{tA@DIpYP)H(3&If?GPgj<$j7ry26J06(VoVQcW5sRb|6ka-gJ>=
zzbR&iS+{RBA69}9A)~x)Uwh?-xs&cHpf8usL}w8JVEVOl<}E0MAUN0fdcoHzSz%jM
z@?PhnDlu#@x`98J@8kRCHsccK8ls%wd(1aIyacU1yJ|v#_v*OqKP+U%yu+SmselPc
z4kq(&C?FxEHw;%bmH3k?d0=9|`U)L4pHAH5W!W#m3U<T(SD7A8u1WO|kR1zYOZL!w
z=e2qZEG4Km+mCoWtEwFIy;=ZMb}~`w^8@g1HO|DG#IJpz`FxWRIo`yEawUjmd=>Ku
z38mT1Nu^SE5kgMrY%UnHLv51qZ^!2Ro$k<nJgUGabwd_J_CV;EC!M#HMib6_$UJmu
zEx&0Z?`^B3?DjRfBYPQuH)IUy*C7^LRO^ln^dg|M7_2+yb-zvV$$mWcCG#xyG0LUI
zTdrS+mj(ST-E~|G^|?9hq^qj%fI!&QTEzF|=4t(bR@VA&um5+L$0C7R+mwpn@;dkd
z1r_3PXxG+?u9&^EKa$NhT$r$VtbM66fsg7|9L#+Qe8jw~$yIj_J2<QNxm$fH@TK~*
zmazh#i|b9IT=Qs)I=Oq<EP)T{l-y;K&s8Nucbz^kXr4<9puD=kR#_*eMFJYB)ytfU
zFH_>SPs_-fmf|Ktvt?L2+W&R%S!z$h`E_94qVVzN$|kIy!u&=)Z&y8~vwwHuTHxE1
zMB1OB$$=?(bz_#-@-}{l%f6t$)}^$@e&awELEr->WZ=yJlT}mS{@kF+sjy<&bp*a)
z-fSo1Ut=HnZq1j0FI4DrFjd<<(LBYsUv#3=HT$RLF-1TU;>RtExmYhhXkG8uMbu~Q
zoY-^OYzM2qKgA^Qb;=CyHnI1(?gQRfgXnU(?N~7Im*!xSQ`Y0Q`hEm{$oy5Vu$s2O
zh0K_)hP8WN<M#pRfchzHXq0nVhb!>YW~=?*-_i7S%m1t9lktzMwr9Xtl!)0#erpe9
zEbw84rZ?F@^q(5`_w_R0d-%uK&2a+6-92pgm^r(uF5x(9(PQ8<vN$&><$AEejK4+;
zAFFOGeveEp-}K6g0tsi<aed|@4C+lvc!tR01_>OHMScB(PskVUKRRksci!TnrngnD
zMN!Zp?f>4PN|&^Kh*@ryb!;q0OMgD_C*~V_%jJPD)9V~SGYfps{FbGdh|ppn4j~Mm
zys!D8Am9Vlv-%Zzm7Eb@i)D#~&D;YBB5QtGKKN0s{hqPB{o46`=k%P{r_CGGuPm2L
z)9&`43Vx+-TD?l?_l$1$Gac1p3;H3ZEGyE7=R?KVSTYlp&l9EcWKbY6Sp((bhP6xY
zw7<vwr};2WG^g<1I<UZxnHSjIEL4)o0oWr9S0+yc<u@`!)?u9B>J<lky$;fDwp8G2
zWwzlqiZTJ4W6#u;$F(#5tKmi|r8X?UGkO~To7=szZ_}dL5S?dV7`Ri?d;o2Myy<_?
zg_#rTs(I=Ih*8!UI>GNU-y%vw7(=*S!(W<K%({C>_5(T?`w(~oAJ@&Bg)X!sP7Hph
zR$#WwkWHq9L#!~tc;K@NN^O0TdA)uFQ$J6{8hq4l{!8F1bR$$%E0tjd+9Sy#2mVU@
z|Azvf40Qdwt|vP`*ZHB&Ovi6^ytCuA?LXeW(H?I5L|dWl-Xotrawh!y;rE8Kt-sq^
zX?<PjXUW9xrS5*Q<?mZQ(lUPNuMU0rq1QBjw)s8Hk2d{5(^oZ}3jTKROM<WBWB&*L
z<5ivtogVCg@N`gaF-R-~wFgQor{7S0u4(5eMhv5hy*%n|>I4rmpU8BC!1|@NCO3W6
zc?-QLYig}EG~ddTOz!ADb~`L|iqx8Nwb;Xca4h3+w)8vz=NVF$@+46#mrY}vAp1&&
zDC3AA<vP<?6H-R;;!W!fV%4T;mG99ALq7uZ%h7a+C9YO(NJrr497LZ57j7BA7c69|
zyZT$=XuFpv)hP>EfUM@6H56u=gcld#cBtXRnY7hhpSjAQx?C)mNsd*ni;M!9i|mt;
zHhOzS^#m(^;SY8-YydM$>a3~2h;5dHW0j#V)44h&>c|pJGWxBzR2bn%|L1}}jnI;}
zqhVX6XP$DJz5@@U(^YS7U451!W8$pPCvwL4VOj%tWxEcH@2F9#(0zmSi#G3dl+81#
z>}2H{58Tu9Y#5|vUu03EsFxvh-hmawN>6RDzgqrl7;q@_#Hw6;o=@GSEHA3c@hg?9
zqV6Fpuxk9w_D!{2B!>Tl{EwsOCh<qHfyRR(JV3Lwm%061eoONiQws_IOjc&pdEHxp
z=Ce<=@~nzwcI+%V5wxBQrgMfA3#{>&6ZBB4ROVA&&qA_C!8&%iG98LRdzyeby}Nb}
z`%Ked#krdlYJJTnPL{WuV-&r3yXZr~{WrYb%S^wan<!P8g8ARmlL_yt&P=+T+fi?M
zZPN@09OrHQ@w>=Z=29z_$<X6RduTqY1t)uITGs^4E+Y>BbI@Cy#su=8#aK+tWXW@A
z^eYql3OfI`9f?LAf8z~n%WwV|brNaxfMzRKnEKUsY(=L_NJ%m|P$w})$}8&@#F+r4
zS>7lQK_3(Q!CgY>D4k+XgdB;T0%-pj%3Y?-1WJr07Q@Dc<DE%QS1$91x{psV674R`
zk11}94i-_QL$}!4sNw5b!@=-mwOGW{(^ptFgb~UcOVgE0q0<j&ka`Wd*^TQMinwj3
zyFhP?ca5%D%aP@cAx?7Z=+28@hvPZu&aIo?4{xS&k;aRo3~(bfAhz|vh+2_VSMNe?
zE;ba;^-Yb)b!ZS{18Ah3U&rLo=16#o+h)Sk)L91Bu-=y|6QR=&b$1UUA0d2duk+g`
zjZX<^8YkMCB)E{7kdfdHtD$w2{+ct)z=awARAoFge5|J*hG&h0EVA%AjedUlRnf!*
z7MUeQs$o<Ok=As2%jfwQp9v?fE6v`QS%-^ak4DZ=Y@t+D84D!_dru67pZ5{e23X}X
zDBvo61z0P!gjw5fDxsGR1XJ5droxoh#{s(Z3TRM4Ce3Ct&PABXgUc|0<|-FLna6wS
zbK!>Wts0+^r$;Qr&!^3wIip5vZ79>54Ef43mO<x407fy0*NJ6QL(`@^h0!hROek}`
z@ydBxLb_?pg>-0w^}S)f`cp2-)nMKmTK^FPffgQxP(K0{S{>ILOP4F7q13T%#-tNR
z`ta6vyga32!(`L(p>v#hD|a&?mw_AL8hMNA(xvGqJBgUbl*+CIL2s#ygd(ZFz9(rw
z+!@hN8bWn#P37&pW&h*EgC=l9HH!AoLB)!WTJo@Y_Rk6EGz3H@sm5Z@R?acYzK^lJ
zJ|avKx(zVt4-D(+Ff(t!z`<eX$tbp*0f%ALbfS#`L^$0Vz*r*At@j%jkQdLyCo2qO
zJg%wlfaiNj5gc990cT`RB+b7ps^t6y;s+J~mmLV1@LtnQ<Gcppcp8m`JG6{e&ce*?
z>wPYKX9cz;{p&=e>xSy%&yKTq68+lRe9}pbP)!(vIW>M8%g`oeISmLHq>qLE|Lo<;
z5X|u22cTcWPu@%-DZ~@P0?{4S^|5B?9MR%}rGAa^%>G$J%#yQ)l^ub`e;H4stzEuR
zIm4*kzN1X{^l)%{!gRZt>SMZD_O7zipyLxR^Z_O}7B8;2^VT{^?*&=nxHH2+9%nPx
zF^a|8NTsJ9@98s21PcbTW+2$W+?)YPnWz9tr*O<>1?Ij?f_yMYKx2JPULVcHI4YJ*
zOZO`F76F=CPX*G0z8khd4}|;+P8!kK_*7*8Gv3pEJ?z`USPtsDKOh&}pHx}Kk*S@F
zu8xl13v4zOf~?5ax$JeMGt9d{$D`&^^e$E&4<#71H%x2jo(eyXj@Ir7eS19p*rwtp
z2J9@)4b3mEyzp`J$r4?{<HyG6F&-w9SRScpkYgVMQ8}>tAOTnpVba8@eC9X|IQ2`Y
zYXI#~=iH3xbXdNHw^+YkIj#1rqtAu8L%X0@jTc<j76L#nFJuVahSaL*oKp^Dqpnzj
zmGm!RU5I7q5{ro(YpL=k<aK(FmBaf2{Z^XB%IlP=f|)ilGW@a^Lzy|IaU^RCP`cOP
zZPq99p-rNu2UG_v7oCB8L^<i?c;zuQuc0A;owAI-#$t>W!x^cyFAPIvwFgjbjZoQh
zXVm`T(kh3J03qf~<<Zc|SWnN4X*b&@A*w@!gnnfe(=kYFO59IOw>*j^Ei=#&9WHuD
zF;=wM@p<~{Ha8kEvE*ASxmH9wdMlx@w~NkqL1+aH!31;2xf0-#SaA+q=gelq(Pe%%
z7JsLhhLz%?*Af|+ME2=QR*}ewr`6TZ2lzH{cU5eVU{I#;%o>wDB=VA`8!+lvF$ji<
z;GUuDWA<F1^*@d}P#WdonMwvT)s1Kpd5Wqk7)+pGT?@SM%GH%c^6jV$^*9D>(+_+7
zU=794TCk?q^Kg5N?u*mpl$fieL$UroCP%AgfTvK6!!54LKB+qeRU6uujd!W#U+73U
zzVUX(5Qaim%H%{yz1DgFcs<&%Y^-+eItdJc_CzJ6W?G|5a4<RKEF45hdgM2a@(xbG
zwz1~2dI!Ial@8-nYOcai#$&xlOW^~#j&v$ugBEFEvp!w3uGJ$=-&QnANL6;RRk!^`
zimN4i0#89SZ~KLq28zg9Eca9;K_=79I8X{1#OqX3AYH(BG~)-g1w-5mlfuPOD5Ha#
z!^tNTme}|e@m7ERFLT@wqoDl;KfxtJnl>?1iDOpo>mQQxgwd)<rWz|5boLRXn4z6g
zTsx~oln2=KqkM!Ka##uF|0e@K9O!y~*Bd*3y7T$YaL3nmoM`_{`#aiCw*5-mM%%+j
ze(uO~NA3%Me|Wt0?_0mQbt3e0p_NeI;U7Ny^x=D3KH74<rS;Hz4?WQQW6g`rtxcb5
zx*GhG;QNB7_{jem|14HpLXVy9iH(sha<2EXTZqK4*tGtX^2(jCv}zqMZjNobYp#;J
zh#YBw_V<S!ZrB<1*Ub_Z5*3m@T%qZX_Daq^G<9Zn<g155v7`N{ee6XS&!{fw(1<v(
zp<vo88k0z$X~Ng?QrPRCd1S_FJL}EOZCaavHUVwXsqD2Xnt~_$j}2oJ_Lg$D11}BX
zHM%~G^1MNEP9{gwu068G6Qz~Ir!r$t$XY6Dnyog45*>Xf-x@AMS)$_{skb_yO6rT}
zFwr=+l}1BJA)uYk<14n|)wtKSJ1ZR&88(6(oI%~0pz4(a{z%`b21!}E>BXgDj1B;|
zgGgjSN^q>UfekOSo&W^c@Mx0Uk4|J$Dpv0e`8NjHpaoL|^?84NP&`B4nW<V;^ahXK
zM?AO6j?pYYQ@u()I~roF`T(gZ;w@9ETn%!m{U8aqj~@Z0Igh{rt2oEfxs`WfD0?2d
z9o|FEFzAb{@8ouQG>vtQJLZFp|L|`t+F><YHt6yP{ZMxtqnXa7rYa~4_V)BWOFJc#
zh~kL>qA^Rt8Y0jt70eWPkQkz{wFIL@)I@C5iu|TT14ax=%!GLH;wZ^%I+1v$^7c@s
zr~8B#-j~ontg7E2A*9|wnXJiw&=*DQ1}PR0nX4tYxKY4+Tm+w)cP`WrnTcs9jktVv
zvGTT1BGP?q1JG?x$sWr`$`2EiMo>+iKTEsf1PTYXO({XvBdag>v7*LbXOfXbR)t1w
ze5S+E$5j~gl0gwJQ?9%<G=~1(a|#ZuTE!9u4y<Gsao^sA5y{gnPSf6RJS4&vypw`%
zU$?`VlDxxQEt+IFgxn+~D}Ti5IK#}dndHUF9l=h0Q{jUu!(_e7n}|S&_c{fu-X?d#
zGm!pB(Iu+b3Xx?5`qt1F7_DrotD6p8*eW1*r9z`|9$}BQA!h{XEgCGq^kWh)pa`D3
zc8!PB&~Nh5wc<kM`Op~Q(q{NY_`QRsoNfA01&z>&4=zHFAb=QwI%ky5B_Dx9x6$5U
z-%A_6g5WageC4(tybrl3h1I+I2gadXj2XUAd5TWvZKWs$tU2ZyT#>~D2E`Z7JzKdY
zp;3ITX?5Y6MU=21g8}ppx7uU~*9rAY;CX(f`jVCW*#2PdYAzK^o>k08)PMyirt_Rh
zm-+N_*DD*L*ke82AUS)$ZLRO{9Hm*Wv_u35(q$?eMmA!aka7&}BxuH*a17bGi=Yi8
zzCs$xto!<v$~xAvC&du@y`{ZrCW#qaDW82&3UB-(i6P0O-=`X9fzhOhI-@8T5sIpO
zwf<D49C{33Sv|y(2H8U$1n$r|SD-yk$?uE@>u=5zBZfY56bm@G&XAaZ^t3afl!iW`
z5um-u(WX;xtE`0{8}8|SE3QNIP+sL$sqx%xBRbX`utGq0q|x3IJ-v7CY=U2Kp>s&~
zGX$CK$6Lba_01bo7i;EC89xLA{}LgSz-WTxOa)m(pvIEz!?t~917xnEo>6WflE33!
z)7UjsVMvQHem4BJCIPLM+Q$R$f(c){iYiPd6P>E8N;{+PT9_>809MVAC!wbyP6%5|
znue{mNL`d?Mx-=3NG3JLb&Cw%LM)2qxma1jN%bJ^M;&E-9p7Zz_XZf~>XWUA5|&pm
zn9EoQ=OXuLQ`X*h-B)d*42XZtVfbV`R;nzAPM_`uEn#sZO9&IoIGP?mzF?3q6Xb(Y
zt$Pw~vltcO2r^R33ebr0E@Jb1+Y;x=QNGGa3Fe{<f#h1<HH7Yp-V>FjP$Jcjv{Y$t
z;gY{*O#PIhPz!JLR%^Ke;m#dmqA4mJCP)A*5IU8}j!j{6$dVSHtSp9Nxt^ov!_SLn
zXVgS-42E38Ff-0^t(_UuDse+1eVUW?M{%YF!Gyw23__@kEtbt?u1TPBo+>z4#6swy
z)O~$ONU92*O%AwaV+VLQgpM38)`BWwMzCr4R%vu)c9z(ilV4LRAgYPSqRy4ea^A?d
zaa*QwWguSbPgYPxBqm<K!^*eKE9O<Bv--^Ng9^F_mo`WI`k@t07Mw}6Px-(<=HT!w
zxOUqHW+Nn1;0@7pl@e8iZlEgVdTJJ<L($Ynr`J|+4Z^@=-{u8&*u!V^l9^2szlsqU
zCf8a7D)gSJ%u`<K>zxVH-L#IleOhciOtxPX=P5DbreT^0hJZ-&C$^eG;!y{C5W8nB
zqPX%2FuMtqpcdWR?CoS_4p{)<(6zFqcr4IO-3=|J;hJzyRNkE0V6RN|!=Pv>l-x`i
zArqIjo{yr@j~$~fGaGs+(Tzy34e2s*NOZc?J59=z7^N3r$y)JG*%SrTD5B^fq?70H
zYzkvA#*FqmSMe~h{fP8nK#QB4?&Uc+4m=x6FjA6|>vBm@E3-v)TKGNeHA7kia)ARN
zwl)dDdEI-uQVc~-^q$17a)cYX@1yKRg#SkfLL5XyK@*jKJ;n)&%N{a(D1Z3IB8LMe
zW=05Ln&-6cPd9J1QV2crcu&vmFuhdnS~fEPCRZ{{&LRGQ5UxpPR{N;4RpP#&CpOV+
zI-5?Xol8<l+%;2P#TpxSjap<5KRl*}{akFZk`F~Dx_i9v?h>$#r%dey991N(C1Xiy
zDxwoO8?Zm`P83;iJpiHuWP)BTsJ>v`nXhhffq9R>_=^=cG&ZP0A<IL<N1X|%C=BVO
zjXX|BM`o1sCn&&|jj?}OF}sIVqrzyC_<BLY?ie1H3zVLoWKoTXbn#;4EyUZs{ZEIV
zH%$SCpoTCOf56^H&_M3k%Cb^pWlp@rRia4OhfU32U$;WSab%D)&s5MyOmr)NW8Gor
z?V`oWyv$<bWxL2duv*5{`UcHvcGT=Hu?!=Q(nG{DmoRq>Z6tguRh|iD9_lyxH#E&M
z;v42*c^Sb=Lxmh?ff$>pI73bUH39EIxl=w1wMT^G@!e{<BXFrXIv*YJMV&`x96<eC
za<1}pC~>m8ZzH@<r>4CR5g$7xep?t7F~eJCvX&1|D0iwwyd*ll!<xiGZ7MEf*@h%U
zj7*oU|C9fJeb?E}&vw4M^F+r_bS!qXwtrvyjkdpS`_i^JjQuY<aw7cca5>!E`XjAx
zYmJ1yJ9OdjKOX*u!(%P~z2&Q0E`k7j$D#b8VDl%Mi%p+nLSH8M`@t^?KJ-5U11MFa
zp-iUd7}eta+C|2;jcPsq^DdWGS54@4<F-qujx@hhLSLv*pW_@;tmKrM!jT1BsL>Ni
zXXDqZkAxz}d;714*Qq|;kz5P;t1Q(t5GTVkG1wcc7Q7@$GY-dq0`?BXxayqKggk)+
zcJRKS&8U|k6JI?QdhB=~6+Tm;Ab3&U(?F!dDH4%H#zZh3foy`mGNE8XvWHZLOnA>A
z%Mx-*XXt}c`!JP0uw7>LCF7T>5#qAm6Q~7oH^evF$qGBGubO;B(JU1%Z-G#aXHfaW
zD(|M#7xA~UqlOgxboJrTFp4`v5+=bQ6gEh}XeC39si6<XgnGt6Op$yK!yo{J^&gk3
zZNz~TCI}`aDNj!UnU8piK(AF%>O=W*%2=bhc|Zho<<uY{okZ*c1P)URu~xIDa6VjK
zdg0@E7gKlBf~Tp4jv%KZSuUZ)i|eb^H-?5z^z_{h!_YdY6>fCu9B>D@11yZPDPdvT
z6tM~2Kxop|Y_w9S4fs)mLDz?IQO<CY9~Dw}1y_aO$+_xD#SOg7?pA36g-!HUOr-8F
zkCIieVIn`FA|o6YrPDks<(4be2Sw&MI;DaK3s~DtkXHyUS`VBV#8-@p)n~Ngeq}!p
zmb7e|p%BhBV69P)$|Aym&s0x@GDF=x=Sdl!$8qk8Lx?(5*OIw6Hkc(Nv%ak~OjS=)
z4V`eGuVuqZU*q8FczI$n68>dxtojCu7OJP-wlysHkpeYzaePy6L~Nt*M2yCqpRubP
ztJV!|oH@!#Dh<(@>TzP5eq?MYINY7IF4hKQZBGk~^0*nhZ9-la7kEE4%4y^Ixmo0+
zL)F&{|LMNM72!o28IVTTNIJmW30thtnN_|E&*3alvx&|5OGR&}`T)6eZ_kJ&77#f!
z_Rvs&V$+5Yx!;tklX(`3r23#-bO_&w3L{O4OK$c4(D`FMgvjEmlJXtEXGI4aqNGwq
z)bWd(QwCgH5vXh}PF$9sP$Dx-0&#}Si9iT&-Iag3Ts=k!=02i}b!^U@w0RoyM2dbx
zoNX$bjGJ;U>99GYa0!fYv`mXS=r=J;z=D0eSap>BA!={wXSg{SCO+BBY&MLT>3K~T
z_SP=4DbR)M(+G$VkeAO4vYbQ++&jXXXR1fdV38G>MKgwApEh}eBN~stPRyEd{OT(y
z7Ph>WxTcj#P1Aa6?V?m*)7*p$)z=Yzc5^gI8h5vGNd9LEA(J@|uYjR00sPo?<yk4e
zB%Dh+KwMWF)X!D>Rb&P8ysZcdOG>f1jI1U9Wy>OxAoGi?z6G%{y{58?(S;2bW2S^A
zlCdLTYwA;~FEmQcn&^|eRei0p{Jy2|0jd=WaJMmBJRii`O_NY~tHT)VO<-<L&Snb1
zH`oYRZU^UahuF%-qV<FBlgTh-i6|;z<JCTncR$dO-cWTY?9x(=<a<>@BQT)hB@t*X
zn%sGNgH?M(mo#%8@u*QwG!}BO`WjWbyB|j$dEd?nj4lD?2nq7c)X>Nf?wRD!uU`y1
z8K!;32CBVSmu`xyNFlLHjr}{*K>Ub^0_PaHEpy*;D$jCQGuQD7XGxa4<)!MYLsLM%
z3+Aox5i)Mp10%q*%N{~<vy2t^H8P-b-;A4&k%QS`E6z}94GmOc?IFA}|57($fa9?w
z(v9b;J-l`|<97}qL@Tnp0V0E6t!wfM3P`8mkr9(33<_^-xj0{al?XhXIE2VqQiT&c
zn@WAajM&*=07_Fi%)o)jjOP@R8bTRo&Sz<H008xM@_kSi1cqt5vFMZ4?$9I0dO>#9
zq1W(x$PEHT$%cz?S0*%Bp0jsasm3~!G^i-TT0|bPUJhocAz?2+IPcf^G|M2$J)Et+
zQa*^0D?~EVbf6g8z}r0|WJV5^RLj>I^uuOY1Z!#)@^Ms7udCpiY+k4aaAfwvRgT+6
z39_;XM1xf$;YaCUB@YJQz}U4FHUsFNFT2)ZCes-CL>dElgKTh8gB&>WGu3+qMjgH8
zPfsG6GSh7u^(e6MxZ!#QTW)UqCJ>fDLW?<9G&P4%PA3Gsaj|+&=&`}>o&pmch%e>(
z7D>C7rLpn67TOQ^Sq8Rx!D2^XY3Qg3e=(1qRO;$Sqe2PGaQXm#@SqrQ%QywqXAEyH
z_DuB^2JkK$#;NTo8vua;Bjr@+?_G3PmP#1?IRmIkpt!cSya96sV%H&lT{Wdrt@$$J
z;9)x%HBx!88`UnXcmHuf4j%V_hD`R4cSU5GJye{dno~_baeKv>5=g?I<H(M&W~!K8
ztai#ZAhCQGO^iYE?@JV2B^K|)8}XQdH%Q1iA3jSm3BHkVs~w@i6TN7S9xRVCa`g;+
zCdDJXo=%{*Bm!TW3SSLfL&}zjo>OjT0LYSn4^BGpdUENj)%MU}r2FV;|Kt$F8D=s8
zk)gq8(YMi*aWZz7(!kpCw6}q4AP-d?7oeQQsuyt?j1f&dTWt#sAMYlAke-&&mxNPv
zlXiwi7O{!dB6wFUfMEP#AsAX!Xs^bB&YN*VSS|##eJTXAmy%E>v(HwKFy^4Y7Y?FQ
z5jYmxA5F?WNc9Sm7xqVQtdfF)s7p#zmdVaDOn_m&+NK4QP1JSU6bMK}4Ffu!j$f^Y
z@x{G;3r1?0-m}KWGL8v=#AP51AY)i1qSM}978dIV-wZ&lIWLR^xiAd9i}0y3iTJbC
z*3cC`_*slgy$)sR9D7tua5z~1YjjwHH>4>5CyDX76P(U-ye1n<&@1Nvj|4Kru!EL-
zCNW(Ng<_AG`B`$VJA|zU{Y0>y1&ynX)~eRyFnvpdb*BoIbIvKESOlG*m{87F4~KFP
zt5ElZ;I&t=f+yl|S%pGt4gB+T24ApfkZ?Fpth*n!@JCQ*&OULSTT55q`fZPD)sf)u
z1?~i2dzcRWV%zz)1WJ9MJMv3Me$Z(2c}K>Yjs*Xr>35so-}KYXw?bdoe75<Q=)oVM
z`~GV~4~G8k$RnZO4*gW<-qw}Y>#b)xzNY<X$MYRecMNpg-~LbSpG6Jeo7>;rUT(kE
zo(aA-m<@h)aHHvy!Jhyjcw3X(G<x_Qhv(bA;ZV!ri-#XM+;ce4^4l#x)bhcWceOm%
za<%!-T4F8t9{M|U`+nrm#}0jI^Zkd`4ow|O9df$<pzWW!KGXGGUGF>mxvn+T3Uk44
z>vFnUJO85dKQh1Y!=3MJI?-9`91mXaOtrqM^VOZf(6@B_LG$;we&ylsYJRfqQ_Zby
zf86%Vpd6pz9o`!r2>w&}Wb>`VzY=b1{gc*TZ~d{>Z><p*)Yl@d6FRR7-hiDiQ?>$3
z&#Te=F6HN7K)<|BRz@MlfHT{L_TX2k59c}91Y8!Xf(%^}DqDA`7uCYCsuZ#@A`jkC
zmlROtI<z~KjvGGjE7aZmoI<jdk|8|p2<3zCZXO79-YU&4;{x2x0re!RpbGKR!21-U
zWO$x1ZSMB#duGpgdR-YlMZyGr>jQp1y-_rj$KV&M9gHx7c1FyWR8?>|`q-R$WUMoT
z*g1>I#8(&sK=7Qt^_-#y39>a>s^AxB37*3b?tGIc)$;Wmo*eiXbrl?^B-zcUz1g(B
z@6$UG_)ls!@?RLAF9T&Y{(Pk)J!KGiwN%qOE$_%$ld)LnQBiyFt?CXk1)?l+I%XnQ
zWPXKtN#^%9n}04qR~eEHDuFcWvj)CguSc{bJ+)+XV0J^~Kim7irq5KP$9`@%_==TP
zb(Z>%jJ?I0-hmTaEE@ez^LIzp8pMZ_urC_m(LC$T(5C~3)Bt6krbr_{>JQ!kk=lZ7
zES=G>iKjyMQ~kUJi)N3s^=n16kQzAE!Gap{*`LNjP2j(oB~fk5O{r6b)E8|Ef;97J
z7jzmAtf&S4Oy|#h8$p?dKh<N`Sv4T#TqI<0NNbavf)~}lL>9A#{g?2YI&8IXmvxoO
zL`(DJl-wc}8#jHyE56^MH`~`^1&^5L;4nb7Xq;lUVjdqd18pg^D?;q$Xc`TgQ=rPh
zm`;;cP}fb_BxkoVMKIb@S+k(}i8%vYZRfzjOFArs;jtZDt)Oeayo(hQ_&@b9^$vI9
zs2$qdf%mINnQs#U8pD7%A+*Fu?Uu0st!g4YxE2=puj+_gy9siwIzP|lF6tybqUDy$
z-O20=e6M*P0>ph=q5}WBZV~aLIY^B(?!Zr~^G>dF$2`U7)yPN&xk5=vJfdxzHf*ev
z+2<WYGv6M(rn{je#OycbRTL@2Dx`C1?aGu)uMq-g=V@(fC_o23cg0vT&@u4T8gH)g
z7zWR)bB}P#O*Ks0X<pNdA6Tpl{Gqwfz&-nEj|aZm{4!%y=jd2m+gy;~>GrDzztG-x
z4ATKHYVcum+joJ^!ADwSfp&AqfJe1nybl6yI|gzUw8Hl5yCze;MXOX>ft}33fN5;p
z7Z(a1!#&=!1K`lf-BT0`{H`8(cajynPpf|yE=b_7^=W%j%wTsQ5PaAEqY|Ife(^0U
zBC)(~EbN0iZg&{sM8%adExjiyEFDqjWL;lubrHhG()QK7u;aV#Eqv+v_AaFZfkR)o
zhw2~ralT9oi%vW<dzaTYP-@ZSs0dKCPwi^rM=tCg=o_f&>TQ}L0D^^#>2Nn>(puDP
z{=BxexUor*-jdS&$CPz>R7<p{XcqWwNzFb#4@`;4x@El6J-WqvYxsdbel>ll`*hF*
zepZiko3)$;GTvU9LxDi^yX=sy?L)&^g|IA}QMOL)Cw0_(r$y63gK2-*TxJ_ukOx{3
zFkbb=q>{|FvA>3>tNK?W4CVp!G^YQDv<`d7djB#?N{#dWW_7lx&r79v)9NE(F{fqn
z_eIcyC$y@BfhHwGeT}`<3&eC6%$L2}$xLmgf-ked_k$nM3$E!(%dwgEH+i5>%cQR_
zfSwM_8B%Mc;EzwS=I{HoyPUmEIM_sx8`AeR3-*zFn@{kKrDXjPg5RXivR!4u>g5gZ
z4A2v&USmDN2X%s0h~|Ks)*IaMztQg<JRKnLl{zQ;qrgE&>$ge+lvtZ}_UTAp^JBqP
zKM@`%Fghqgcw8{$wfkgCb~kPYeoe|XFG_F-{1?Tw`mxd~Rr^L)&91%v{^s++)j7B-
z5#2Zthcy%<Y4jafSl*a5>uIEASIx8nZ=H#sexz!PzQOC}(|MQ8x|iO5r_(wUs|+tQ
zAq!fykyZF8W?>&ylqOorKK(s`7j$35eTWbnLmH?}u`TQCkaVd#E)$H_qob5eMtx?P
z%~p2A(<c=-Lyv|=k>;c|hT5aX;6e!4(Hju>KD`(5zE=jPw<PlI_sZx%^9-9V^ML@m
z$d2?<uh8$5Aq6%_h}WO-iuRDdyn{9q_#<h}5I`Q>>>2n)9cO-oynIKuao~S50pkHp
z&4K@@ghUI)QO+QvVn`Z#%6oPE%1Ajw3*UaFH)&~g#cX?U{a8lKU*AiX4mO#;u564_
zBs8HNGs*)0Rts)IvU$@pidU$~Ew-BgWbwd3>47hh**lOn9SoX?+_0+a6r8{xnBO_5
zJ2dcfCUxA0h8p-=TmS!H0L{Ory6)}#aa8{9?f6W`vmJ*}@_V%HkJ{eT_V|%sJM!g6
z-WdL|a3S2@`pMQ}YkTPHLT@_!TZjME;r^B%YguY(L1nLSsH^!K>Hq&vP48-Qg8v~{
z2>fH<gSAZhpZ&j2R-aT^?&MN<Pd2D}o|%<J;0F_1Vxd`(I2iFnS<YoOkQt&e)8E14
zZ28v5o#}vuke$dBsyEbq(_aqXRV8tpXs|YsmU)VhvMDJz!<;S>I{Qax<)L)#Px1A!
zbH*6OGtp#ju1X93V;Y)#kQw3WumtLG<kB1F9#R5yqHQiOcw@|`B1Or?9nfv=K5w>0
z4Fq}&{5HR%7fd$;vJ<~teS!*H_X9KGlB~xb&6IN>tojSo#>fko{XsBhVjO6BEN2K+
zmuzZp_^Ob4s@G^n=%(YrsCDnU9##b598~@V;%QL2P1Bif%g&~f%{+C$VlYZ)oKp6|
zXz``$)lj0}%)bTe+ojH@0U|1MUK008U0qOoG}*IAZf09-!ReVo=3Jw=Bz75DLHX(G
z3}u$1R7VcTh6in{;2N!tYQ2JXgRlansl}ZGG*zHA#CtQZ)ikb()t-Axbvl$e-TlBw
zn7JB2g!x?s1@a&;Ldq?6I+9pBqT*k+Gj+@^(?Di85T-IkZ6py(N5xivV6E25^_A*W
zX!wENo=sDAIVj;VOb|;xvGw$8>NJ8k6$er$>Y$>d7PlHwsv&0=pgybnqh4BMb_t!b
z(e#z-B)kjZ>US4e;}5}ObWHieLhIn$23n_Glk$Lp)|rr#$fh$>)hld7KNHFCP-bT6
z3V;FKVr4UAQE~a0uYqPxQ-;cHjqo+T;?4?k1^!$nOEkm5W~Qk&(?oc_dYQtXdI<Nz
z0u;0;PSwjV)5602+C>!HA5L-9xdxw{37Ud~Jg<5wlu7jUxMB4W>`B_~r8N2;mX_(Q
zQn&?-;N;*V!GNKo+Fdvg1rt&UTez&w`|Uax{ODAAvU*W97slnN=CdErf%QU;VNp3W
z!>Z}4oHSsFZY=Z{7y`@<oVT2B%{xyq68nkjL}<8QgL{cd4^*r_BT^3?ZB%<jft+F&
zO15)46{Gqr=?F9!sL}dG5xQg2nWgHunVR#QX@x&P4*fi^*4iu^YmeYLAb)zNDOY5(
zxg<Mj<vAT_NprQ%4^E&N;djv_tYFxq4!y3~?4|0M=o80jJy64hijxg0|CUyx%`hF|
ztn;8cqfLu8M~=R4y5S+7fY?LuUM{NabEA4eD-LN7_Wizi)s*TPrVoXdJtjmg-@!EA
z5n+;Qy{{t?=YdBJm6*8NJZ>V!%;YDl=R-p@+(RHg7*M!D%@6>MrKfbTWayxt#v5-}
zx3Z!?Wtn()hIXXso3LL+-zu(DM?=G@?&GwE+8k(KByg%0%u%Qy9l1m0qC8GKYR~MN
zqu#{?bADNxwGvg{W$0p92Rx!U@0Q<uX%t>THlCWPj)WfX>F$2I)=y0og50TYh#^mN
zRZTY$tZYwqlEGLB*%-#{*3Z4!SL2#txpPA4drFK{&#B$_zANE<fndwrhx=lhc>H@x
zv4YOIxCXu9e(8t8ym|{yR)^V6c_Y&-rVPhGi2%zhn?}o1Jqw1<9HZA0HV8fwA5E!*
z18<KXJXFpI1W^K52|~lunsR8K$mFK0XDKT7v7f+?2Mr=QtDCdDX*W_nhXVx2L>-19
zqqq5F_K(Ow^sgx_6%sX1Rfi}TAMIlrrmTyu{+_Wdb-t`U<mF5>m5w`u)ES+rg-ye{
zF_e%C0{Cpx1*Lh0swd-K^$guXJ$)+Vf<r(?IRNCo0BE*3iku)YZ!XKkOy?{-Z4b)@
ziO9C%YH5tGGeg7u=8j3RPEwg?tMvIpoGXa7ut%zGvL?f+4oI=SHz`0Vah-yTW_1*>
zylhEql={<{S{Q&ysA8LdN2l`U@<??cl<V$c%I*FGR|aXlH?lF5_^>&~A1io~P0z8^
z6N9SK!){uhtv=55u)c0JvoG(XXzQ0}HLQ5ZvNWU*kd4<`HGQg+fB&PRK-MgSZ+y{E
zq2DGqQ8m5&Fk%2__mM1~SfLlxE8;HXZ)ve?xcAhw8R;5z1}XZTb(e0x@ZrVcwd!g0
z2T4GMXx_Agmj`4EH7!ZVETJNxkkRqDfdd-!?<OG(3+Ue+Ei{wr#|XGCkt{M57E5@s
z`liq$CwsaXa=u%?pFfU)nwl@I(iB@X{ZVK*xqc^>&xIfgiu0+C8oUNojLugd3r$3N
z=`zr%UWYR7t(!gr&@A#HMP@9BQZCsdqE_snrJ;;?SQ2kop2)-w(BJIPQE2G=nR;2C
zCd+*F(NKoo!>7ah=F!{M@3N~|c69qL55i#JRPls^WQ?_*&t#hTiY}g<ar|g$X<Z@&
z0KDiE)m-TGBi(c%95kI^Qa8&?N{S2?MXj8MwqXpZJGDZCj~RN%c4neE=PKuW3Jobk
z7V)ZCUCv`m;TNeH80MoEYRX;U(UUYRL1i<=qgvJ6&QPu~4L}U(kRtM@89Wvrt!9Y)
z`;HFLSGJ$hy>IUbUvLwg6r=c5JJLRx;4=NB@RQtXTJ`dtImHtOFPS@Vz71vz*!~>T
z{FWg@iuj6yxeSGk!{B%D+RgU)?V=N9(y8oNH3cKKhk$Fh$|*NxZPPe{Xqt23NLq>f
zj!2oL#}2S$PpuNy)oFDb=lHZ_DAU(X6Ch6vm2ua!oIxg4z)hH>XrqzTHe5~6$*-U%
z#_IV;PK>g6GB#3G+x~r=YZH38dxsaWFD3=#^xZ^xpG_korMOP#<~fEwPc6xX(^&WB
zYCLq3V0t9H$zh{*!~UMa4u}F!i;Ex|nLLSeA5(|l@RXRd>Qo?Hc}q2>k=snPM00Wf
zg4B5$SS))aNvf4{rf#bfW7F}4#(WFLL}G<pGz2o=1^Z!?(KOUFqx}Dkf$s}+eM?ui
z^A9`U-T7F@Uw3?4$5S1__D{4Aw0*YiU$q@S@{>odhW{@7&Ee73&$YgTS$sbfx^(!@
z4}bXZc+20Q|2J{yuMce<iZuUd^IUUh)6X_tZ|VxZJ9wNA{g?Y^VXGxHHq-<E+|JsN
z2`W<<z6B@317TJUYxEmM(~<fg3IIlP-w-A2KuSZxur0d_=mjfsFq?^?$i&hqg&u=c
zBG(pI+^s|OYaNCCA{=zzD$ZqWv`0?{$bg?$!v9*-z+gn0QjQKEeVghl<WuvdIbb16
zBDo~@n#{y2O<T>ar-yobDlO2&t)Mn&KCiKjQpr9D?HD(5OTYya*d=-aFc@dug_U(P
zI(VMQ6g3G_QWLd_QA&VjBU!pyIG;+S2-{4WjTuop2+C;bWF{LM*=jN;ZUm#w0n`Dn
zH|q`{^QY5Wx-|u7fMzVoP8sk(Y5+8MC7dg`9E4Qn*Eg0{wt}HVtQS2QSU~Rb&RI0_
z_L8qxyA0-tJ+!nW(;2p=XNuDP?$o@S;<uXg0Gu9f2=BzCaCVFo`y$Vti!zOVD_{iq
z9uMzJDqwHivcMB>O+2b8iw)LoA1#o{)Ya-cL%CihXn5a!v`z;L(BRxbI?5L>nt_50
zxkc;FaPN$~A(>yT7r~|qmuVf$CX?5y?;r;3>3`ODmb4!sUQcHtsS|-gNonw~$V2D?
z@|=ssD1GxjwP$FNz@1ZL8iolT<+;pg@+2}N=~DIWhTc?0u1L~O&>ZJ%5`(z(uAxV!
zDajj$?MaoKnZ%q+syEJ6*{eE0K*lZ`2C`X42hi=|J+rx~>f1s?J-z+v6*zDR!yq1i
z#l|DZyOmT1n=CEZC?cCuT#rh^xJ1Ti=EF@du2$a~N@b4rJQv=NfMJC@Xs_ES+0nh@
z2<A(s(Y&g;a76Smlxu(_Y}!_XIx^z=f|^OxKx$JDJ9vy#JQj~mSMLBTDv#L1vmti%
zNS1FeXA#k}GpONGV>A5_SrLj42N4A;+cyazYCfstRCP0Sy006ZEt8e(Lm0sU71(-_
z)=|bHsfVyC#TuHv(!OF1`Z{d(<x9@sAfs?&+1Qop^Fs9?hVD;By0P-Yw@q*r$}vr;
zRcyZPf^C}3YPsrh<*r<HqS<T|4UOBO*aQ82V`w_;o}n<T&<!O;f@9qo{q9v)a3FcT
zXsvcDB?gv`5l@W}?_Au_Sk$TNtx%2;!;C^!>n)a;8dbw^BEt4H*wqnbjDAElNH#>=
zHbJeG!5f&jbPNn47X|s4A)3GD%`c8sH*~EZ7z^K4=XjnD<IUP|3XYmgpy}p%3yn8$
zFYOsOX@QzK(Y8vAk2sfz0}bEpsp@(t7whh&7so6K`p`Q@(QQYR2HpZn<|r2|rB=QK
znuH}7^ZId;M&}B>6~jPj%aL(!V{NfoZcQCSGOC$aWbb4__}JPWMEI_6ls9HM0<1K^
z1=fgWi!zbk`pO#Fo^P&6YWygw#)<U-C3-}2h{dHYR@anSld)4X-%B*ICPRrBJ0)wn
z1{Sy-o^c4(Tp}BK7CkCP7bh31&oQUI=h)jNYqyCgb-jQy$j>cDYGSKq!{m-+KsJ`3
zw`Sx~q>TYk3s1@37Gp~+BmgF%#<RL$0Ih53<Z5*_bUo6C5T_jY$||ReA*`G@#YBd8
z$*HZe$uN=IyEDk3#6|Q~mERb!;|%q4d1nRE_Jm5>F_()*r#PU3Rp3;jk~m#m5#~=1
z)dENRz!?YQ7`S>)OOOWAw2j!PttJ{xOFrfzXf)*Q<r~#ypsPMC3Z`+-5Sa-YBUl@Q
z5u!Fp3Bg|u<DKiGfa1pw6G&+Ayu7kH1|XrvC#y@L2`H>eP*}#h3|TYD&+;U8m-b(H
z^Dd{J1X&MEx;jR`^kt^g8Z6~{bupBS^uvYUe{zEVAtqp&BIY)#6NHu{bXAqNTVhP~
z3c5)I02g^?h5&%ph3Y~mHF&h2hDHpei9;G@G8*%WF&3>7V4t6GCYX`~<+k2<a@B90
zN~1O?K^i5Fh)DRjA$ABFA;%Woi#SRZsi&$pLy?F2_<P)g9h|spc#Ft(`i2RTN@p!9
zq&bQ^XUZx%r5GHp1L2|{Bu`wX^OLCBtCoad_r6nIrdUUyNg4j_%Te1--H73Gj%vrG
z3{?Rms;10Z^pzmhu>MFVp;-5?sua<Bk5!%zJ@P;w=sWfo1iL{96Yz$({*KTULqT3y
zu89~-N)f>90!>MTu5_a~SE++cDKrE?da^pF5*qr9`Q4N9&Z|MoaKGVY(OlwZ5=1gk
zEd7Tjsqr12){cD7<`1Y<;zpvmo7LIS(DDAhIdg;A>d1nc?n)q>+i|Pfk@=44Td*aH
zMbD4>vRN4U#2;4Fq-OUd+$)Ff%bOr|lq8JGT&a4Jm5Pz&Dz)El=-D7>t__nBgw}Xr
zdd$2vYX}WgEaE@yY7{GExDnE*q8xxuPuXPXjl4*Sa%=~r)KfsSMe!oG7PjwK{u0u8
zvF%#&L~^pzPdKQNCNksI0>Y!+JwtVA(;ehW09l+tM2(f3-1_A+q|L?iw>FIc8Qvus
zi#u1qhA08R<8&8Ct9dL}Z{K5FDozi?5TbAfbsDZMO(Ikjgtiz-Fo{Ep#G|}J79gwp
znTw`I)qUl8XR0n|qPKq-os3;nM7uxSZ%+9<7{`JhM{?cSB$|?!xZfkhEHKU%#;R{o
zOp7AK!J|w}s5}k@+FP?9><15u9e`)gO#xAD6ahNDr>f6}9zvycA-rprvC(H+iI|Ag
znm6;W6evu!m%<L$Y{ID27!WfXBSO1Ca9t8d9~r?UqDBC9&v1p+gF9#CGzg@XlGpv)
z1?pL~8l4J8T(_F1&&rV?Fgr?V?i}_WHK*c2_36;#k=~;o$r|U>6i0WBGS)FP?IMd7
z_PVg5GM2tNt=1f^2R>ojtKdY{B9}{CxWKCHsKQ>WK1B%Fd*6x-!%{)|KcXDeX$ljY
z1Y90fKGbp$4V4<H=S-GhDc53Ql)U_73Y?C5*n|{=sQlRa|1*KEZ|aJ5{&MG5XG_P&
zI!4<6r2U)PueSYV+eg}_j{L=u50U@>b@;>KM_YfjwcL77=o6ud&|&89l@52e{6tIP
z(BB^Vo<rB0|DpL?8Bp^_O_io_@T0+0;Fkl>tZhX@kB#*7dN^Ae#JM(bLvZr-X+!2h
z0hQNOTa7a~3tlV+kiqZ9O};~iq?+_4R_-8DqZS(<4~N3&%^Db=9F{aNlX!OP5fmeP
z?<<FIaW_c!R7N7j6au?VuOiCj1W<ZJ=o7Va*NETQ1{fQ=MAflqB7NWBvS=4kpv$FF
zi(98ciHGj%duO<mhkC5f@Y!-8v`WtD@Qn<YVXWP8&)@MRlLH)>iGy+yoRDh)Mu?D5
zi}T1mbuE1Y*0x*Vh174J--@6-(cR~TH-IadDzTHoQ<taokJ-k?;^noK0+Hke{?*pU
zgncHm&UG-2YogDu85L0;2hAB8hQK8@wjK^$i*)zTg&W&sD6n(7na=?kt5lz*!&}zy
ztH?xw{J!X^mqkZ=oLDGIEi2(%1ecIny=<kwkaX=V(}hqgqM>$}O?q1o$*RG@xa%ma
zL6cET5XvrN`%zV-YiVj@osZh7SsIOzVbZEs*L>%ogZ;*mPj9^u-_h6oT)3bD4D}!#
z3-B3&O}~c#2e$&0$!{0q=r#kQ=)%s^cDTIB-?0!%R6!cY1?~yBuPJiT*GPxt*2z$Y
z>II>!jcXX*)WCs6pcF1@jpA`(W2yAQ$L73oVhv->lml`K5`GSt5GYy80ac)#+<H*v
zs~dA;h=(O)cEw3EkfK<j#H%i0jt8FUaAlyz5MTMae&(i_N4C*7+8<GZ{n(AI6QRc+
z5`u5aU7}~RBz5g@Ig?2v^F4y8G<t1QhIeG8n@u}|&4rW;lE6lt^SFmGsU|O%uW!9U
zsY&k&0Ws+yU=KHJdsd<8#$T4fb;~hgthCV%2HTQApk3*lOxC2vzb`J@LLKlixNSN&
zxOJS*?(P|8HPp<GI61Snx2++Ja1&$7jvGBsK8PhvIHOl^4I4bj&DFWB*Tc#=dVDyH
z{oZ%_&NX)qxQ-p>ka@;1jeECC<$9@(1aZ;DVtAY<8(^3WHpBT)Q=T(Id*m?WooBZm
z5E2G@$Or9aWsWr{l)zac7q%J}WZt|Oq=BrEjXT!pl}ThUT9ESW*<)%1DQF@+v2{P5
zxVQUCc+)x}?4ChABX$(H2@5P#4?ZeEZ$Cp4IVY|lc<eH5#l(?>OQarGwvNf&AY^8O
zInFJ%vtitw#q@m&QkD;JOf{LyFTRE^FI3|`FxMl2LiE`!Cv@Ui_kClmLIVZ$GDmA=
zd4=-$G~~*$l?5#1lEu_nM?#jk<V(-+P$~g$%uQ__H9<#h7y`?&hqg)<QI>oGjwYo^
z2sDk?Me_s~&{pZEy@EaCsciJ@*6SdX^uVFmOLjH#AEQ7QC4<!Da`CvmrI;^lP3@M(
z<C*l+Tm6D6dN(O+=z({QN;Br<3{3TvWz?smqN?G}{CvDtf#t1hkQLno_QH}MD9g#X
zTQvTYyKY)cl{60dksVfsu1Hy7DN?MnFByuv<PpAGv)3xEfYs#WiUjJ;1_n@4Tlwr(
zUuf*;QHBy=7<p$hN$kQt1DeiHPsrhHtRgtUE=XuY(eZ?;4C`fKNOS{}c!E+=YPlxz
z*NTC5pWS*5mbe#PWKR43(^01kS;HhrjE?~dwYV(?nOe?TEvBK1U*-mRalar$FDZ)d
za+tlL(?crZfIe+(0-^I7>+@(bEP9p<J*b+!;=^%HiNzJqY!JS4mT=ft>A9k;vL;1Y
zf@l6pg0hu!mAH(oic-`(Ce7P=wM2W4x#0tbRi35TMtyOaIjpn3Yth~y1BQJ}Mae+4
zvYR{tOqW_bLoLT3ZWgM8mXW%$)dS0<zvnc|W!PN%k;Orh3X2=%(#o=-d{JuU$}D)M
z%xCBj^@d^eJQAs=w@?l^-QA1C@Bu@G^`t5_kn7x(D3C<6RAC+Dwqp1u!0ZU8jL2U~
z=zk^wR|)Gs4j$yKjc#?T97%q0(?<}+)Y%TUC#*}*Vsiag1|{8C3sjKKPdMkuQ^r<k
zP+YpW^-9Wd{dB<=IX{9KX`J&K4}A?AJ4=<DCp7gvN@+Qt)FgjxO3K3ybg69enXUUm
zgAeugU8;*A)#lr5Kc5BnBT|sj;GYRk-S56!f*^vr{3}Nz2jOiPdBZ7A{L(7<)Wp`k
zp~SIXgt_+_Zz`acWfk$jfT<IJ1cWx5gG3svk#aR`axzK)CGqJo*PXk#b&nSF*hF~$
zeo~+0ryb*(u=QpIppV(2I#d##(kJARv!_zeZqfSxK<^2zIQpjm$BNu`jEZApC_UY=
z5b!+gc6%H+yrLG4b4?83kT3{qioo&)b<b<2M;))V;Eil`nQ-M2k;T4aZpp37qon=z
zw7R}RktBg3VJ0Uq`4X&P9Lt5RPH;8DvC<XZ)%vPYCg-FVwT2m|2*Ah9WA1dL2p!0M
z{YLG}4us8Y_S#kl)%b3Nb-WGWMK6|s7_P=KCVA17Z9`p^VwC!y<+zdi8bIB*W@da>
zj;f0@r8=)$HhkR?BB5ut+Q~V3j$;f|jyquRs^wg<PoS5Ex(mfg9p*$J&LyO?pcv>J
z89Mwn1eM67qnR69wD_M8wl0pvK@&%(BxO_vx)tAS&?=%^G9F@EyrJ1O?n8oz*f|5h
zeuExxcj>KLM?#6QK6s|Hu6oUBPPB46r||o#BoeumHQK9o41B@cO_3~2Ugbgax#e=b
zQrpm`Ei3uSRF*SnoQ{wVo3Eix7KK`qnb-;o)#<+k$6F}yK0VCZO0-4k*jrvOlo~iS
zHb{_vp$IXG=^4!D4X5bItyaM<N3Ro!*P5OiB5@OMN1!P(9Q-UL2O>o@Wx0e#uf%++
zkmFQ59UE3TQ(aw95TN7|8gV4ILe$#?r`>Vs<SXg!&=4%j7k-A@p(usJrI?G!Bi=GT
zV3D|vng)1BY5fje9|90T&TAtCnE2!`P7NHRya&Ff0c=li9fp(E+p`qL7ai1oJy=>o
z_6(^TkLiBW64IPM5H$@#@`GtSyC5|N3Go&XN60q_9W$vT)aZv>I|8lex<1?WBV8Zr
z+Um-8J=WFJ`KO(~(D~8McXmF}8K)!Qa~;3l@dF(n=(yAIWJj*!sOj$iO#4S#-S#hQ
zUu}JT`*i!G?MK_2+kUg{$J@T8?JL^KZI{{}ZtFPmXGebZ$PXX+2>k=)BTpU~JrX<e
zityite<%Ez@TXee7XHfceE3TEvGD7{f!5Eq{`=OB*6(ZmhJQKIz{{Wf@(R4X0xz$?
z%Pa8m3cS1m`>cR^L2F&}bu=ybz0xPR8<ZaWb~U>0i%kbVp>OSrhz38dCgOtutKf&#
zMEU=0)4#fO4`^BnnvT}pEQ#QAW({|b1PuK6iRLR!FCH)kzvO-zl3zqm;J)UQO*;vt
z!MGYc4fJQY`P)!v@R~Zf|G%w1pkDGFiW7B7&0xQpd95-5__qPW3A>-tYV0=yGw@UD
z+O-AKz1q3K2h~MegHHFfz63|qtn7b#|4D;^A9<j8ENEy-f*=QKM7&6&qL2}X*_X-`
z+|Xw2Rmly$!8|so{(eKm0-sWk@;>_cf!{ygd?^SY7$TN|b@lAt((WF3Grpbv<n=P7
zKoSPjk;Jo7{u20l-CikCk={VKY>+z-{AbBMSg{M5&K4W=sNSen{@VsTS4Rq%+xB^M
zbf+o4Y>K_ZSaV-HQ91V=z5K0JL|auKtk-1&?|Fc#qOl;z^qZ`C#~Ub{4E$?rW%kMT
zg74BDKA@Q*cv{os$=S-_9qTvg<o0%!*7|gk`2L=;mVqBNM)59cd%-qI6Y;x7qY7kE
z082v}dec1D{z{L*d(5ZbWrS|v-|I-+veSrG;rt;Hj1nRTL@9gV+s$*6nC{kS4fd)1
zTq)~qa!`N|+A%jl!@b(w3A{^ISwFBI*^i_ee8=(T3IF>CcYFjNdqeY;pgu*&2{k)$
zQ-v8xG@Ua+2i2UqS-PdBq#pyevWN(%3|FUd-az1Y9%{aBe(1&dVZl|qEc;Ji3H<4U
z%~R%+UPR<I_-b?Jc&>w$$Ab^mUQwhMs#xoDNFUtXBN!X6E%*W4nBc5*XS4<k;bHy<
z=xXCJNy;W2$i)s;r2uuy#h3wA0e%jkdBe8eHr?AsmnEzfIjCDMIIQ~rt6DSS|KI59
z>ih=u|9`im+VR@<Uub`>{Z(xrZF}>PKR)vQBdPFjhTk5Jwf<4-d->s)|9N=@US5Hh
zSK#FpczFe0UV;BVuD}yp=fn`9EMX-CcdNl!l8ljtPa>;e+4^eZD%Ohk@hqeq)0X2`
zy3lK8BzG)5y)_()o#>Ucx42HQcem4r38^*_vPKwSaK}!%t<`8v(UWEmTlS>|4)$KH
zlQ@^5ma}yho^Kyh?YyNzVP$gw9=zoOoMUi1?1j2q$T|4@ev=C%UXf68v9s`S>2ILb
z;r!N6h>>M{P6=^Us2pN_YQCWoks1&D8ue|+1}iJ3NN!mK)L-B^<<7&w*PIXWOP}64
z6MF1KH|=JG`d*&USDdtlB!RFH28X6s($_vs_<V-3y)@IM(4;?0>6|*B`Z6}D?rYAa
zp;yp1K${bcw^VLsYtWEh3*z*x6xY`_ie?(2)%hgBI}iV$)&(3-Bx%Do)v=nkkxxpv
z=&r-CfHaDbISom<_%mAr;<?b5deg-C6wuZOEVEN-<3;Ebo7ZfaoDX$s-S!%7UDHdF
zq=u;nn*JSL+(;%cww(DiG@5Na9vVE_%Tx!HFxED08c80hA}yc0qTFGKgo5(cnX789
zprMuuUTN7d+6|K+MHwAVJ6bXnlh1m^xs9buTW=Qegn^IxK&aY#RRssl1XU<(kZBqH
zXm<|%40ZP=sHejK9^63gpFg!xo^uOZwCi{D9=ojtrWM7^xTUIG&t9z(()M&_bev!$
zUF6Sm{0!%vx~k91iE`F#Z>FgT)ADv6>Qp?FTG^s?|B;@Do(u0$1JnT#O#|{lX>OhN
zuKFNcebpy#&~eQs%zMa!Q+3=}um8m)XHxqF3(*qF5Z9sSD4lv@>oLmN-LxyJnr+2Z
zxg)z|nlI7na)zNQF48DD(c{OVNz%l`C#o@q>CkFMt95BIu9y)&nWwfM4W%CFV*=`;
z*mUZaaZxFx*IGyC8pY;y%VTZm?SXJY1Nf+>>o(G*Qxtz=sk9o<AS{qUa^=o%<=EpM
zdigmkR{zz%R&_vgasx836~KZ1TPy9WrH9Um8<c#nu{{Dp3R~Gwj(*1px<PFX9Q_p5
zfV*m@K5CvW*a7rqzsJS)%7~``6?0+Jc8!VJiMUG6lE#wks81SWY!2G`(Py?Yp}~{g
z-OvLM6m=ZkSX!M2HDLfKsx8BidewJTBTrc7j9Sncl$)MrIq3YE1Jh7e=q(IxrPTle
z8D|f+YZ~@ztape9SQPVNm}VFP%msiJcmcM#x3-lE4J9<(rpP@fp{I&Gw*!Y^^VlYO
z1Ke4kC@{i+M>qgb!#t~o6i=hvf5X+xTOC-Co*f6iPDMkWEvrAjx<y}qtUsp-5^QbB
zn?(y4GzwOxIV(_&?*JUZH0H3YA&34Ia2Adnw_@-7n?W-^%qR83G=aC1b<Rww#9t<7
zmdv3yx|Lw9x@kzuufaLUB({AIUH{T#WYmalG}FE&c}}~ph(Oi$b&#>yxpd<ER$L@i
zIt}M)DwPBC91HBXp8f&{-?pS%cJ21T7GViHk#R=pFPngW<t<*@iZMC7x4#gc1y9-G
zBA`ri?JaSD1{<%;>f})KaX5ldm!*5-_Yj&3#p)XwEscglJtn67zbEje&7EGyZ*=`e
z=Wli;J6_%XMB5i0`JV6}hZC(IYJGJma`+R6U(+&mXsP*sX?mgQv0ypyrT-EkPi6Mi
z;h9QbQz=|{ESjFpXJ!k9NTQhZBFRi_HsWRq#R#G`sbV3X&oXRyaJhim2Th-Io2w{v
zFFUg?|6Rbi(S4|%6-_$dC_7-LW#_?};!St`q!V!-jKA=K_^I>@ABdhxIfbQ@fuEv1
z#dF|_mXNTDaF~!w1D-0bEIF}MG#W`H;%80`@txs~HOPXsKRYUO4}Eix(dp3coCjg%
zVhHRrU0YdOES@|-&a^Vz!;2<b`@_$|0-Q}|W{deqG0N*fz)VGQ?rc87u%&c5@8$E!
zRAv&6G;L)|tMv4p;_bi`d9A^E%fy3&$Qj1t{7&lRDd&YR=10U8Subs1nlSiF1O(?N
zr)Q=dERzFy>y9_0p`k^uSbN?f8ov0*+N;>V_y*_9COTTUI`5>oQN$TLlr$?XuWFs?
zYkGTA|H)`N=|&Ur*+?-?%$7_gvyp7NkdDN;3CTP>S=w68FN&$Z68Q2<tK5BY3jMD<
z>ZF}zy8D*!^$bc8z4iuEXI7xGEWyyMPh1IpP%KBO9`2Mmt`xgj&!<~s;X*8miHW-z
zHv;!HAHmoXK}L(wh#U2ix!H6yTlAu}mo^6nU5GU#vp@R<@3SurA6e&M8dK=X*1FF9
z=iu?)@2qdGdd{WNA`7^*ddf*KjX6nUxjGmj)Hs7@PdQo6lQVvb23XMY^;3I)r1qCT
zkF&#i?~+%o47`%pys!0<aDiT!R6gS-ijiz0<wlZjJRc!QosDGk$zlRp+iWy5JB1`|
zWRw;-!2HJdIaiv)pgTwa%n^gG^SGP~f=C)mH<p|;L#Lehsf6BS^wjzDyT11lUf`w~
z^2gbUX9qxcjgW7pa38NwZsO!eqR9fJQP+(WGEt69p%9H^lLhX1F&^dCM`0?)cb<GE
z-*CZK)Htf<mXiK;+7p?If5G%^6iX|o%mo-n0*0`N!{p${X<yMra0?qRd?)QwSOhiR
zJM=O-<<gw~=RCLj{8guTYUot+Z@lEYL7*X~d3>O>R8S$Ka`s-{vbl93oEVHI<HbxY
zo{r4Ux|v8a?s6UrnKb|AC5x#-d^Vk#y~;p986Ifr*d6|jc1c76)HmAr)uDOff4&mS
zZ67<0Mso^MES3#=*eQE@?{Z<Sgh|9GMd+Kv-0^?tOcj>&5p>2lgvyR<FFW!x2h2{W
zyyBkLnd8B?HudLti+nbUl}gbW6G?iryala0kxaBuh^5^^w&<oOX*iS?8d1lc=j&Iz
z@vDzIXT3X~9#@yx<8kj0vpI7F+RGbARjd_*>Dmo9eC<8jx$k&I>r78@F31xl($V~E
zA{)WJq$0_@n}{%i-QxkHIX9Zg&AM)k9C6*dQGXQkpN~38XJuhs;;Fu=8TDv-!Q!BL
zzUWQV{=T@FG;7SlG{)T0!Ln|4cD{?9eWxt<BeVtU2F^xev&C2h(Mm4@Gc<?INr@3$
zMEo$i^Zaru<(G0Y(FGY?4ke9Rd6{X&N%{hRU#3>J+c|%};lJrX(SHxF72KjR?DoL#
z`LUH%s#q|9U!r}lMTT{){L10Z)|uX**VI3PVUKcA+4y{}pxwvVxSU}Z1+@HZA?~?e
zij0Y|_2=q~ZU37c$K&`L{;&flv2nA%xwhDMtzT5SI^<<A8Y9toA(f6Ivx78;jQgw`
zf##i$xE`l5MGrcI)KTnt;bV(l;QjSS@xSsYd`AbiyS6>SLY_mO4=I~Q2NU>*+7pp1
zA3Rf|l5TIE!Rv*e9V25<q?(P;3eD2QXK~+gMJ$PE0cp47Y%-sM`d=b<9xBmszyyg?
zj%j^@s!SV?^PtTp`M#VuA4E6eBi4;KedkNwMPgu=5H+&2q0WW1-SK(lTwCkRJ6j(Q
z7e*kX&L)#7FH&ShWsTTQWK<&2d_3(*p`e(FkJHGZ!w5l{K%4VdTv_C?^~pNNgEV=&
zB(VfW&okvuxdXBB+T05tze-Z%WIe3w3m;<?qT}A;rB6kMPQ3*8ktaS;*2PBwiP#j5
zDxp;xuZ$lFvjdfmaDuknBu2@d<@U{TL<`ZJjz=mIO%>Q3G_ex-#1u-+8|?HL9Zs9Z
ztWLPJn5xXp<JS!9F#YYD9FJ}D+SGfFuE%Wy>pZA%nkJXx$^C3?EO{#R!Utlp+W+6*
z;_e;!P`MJutfX2K3SeT%H2&R-cu7xZJj09S6SEPxx(Lj8(F8}Uwv6@2m!~w5FHL}R
zp5xU5;`}1LbkiF|H01_&fBz_7SZ8n&#s-sTqSyORrBSjZ%su6-uP_fD>7}zTWw-Xu
zjHsM$ZJl{*(@3}wK^-^8u}Vd}M2fSP$go54bTKkpq?a<2EfCGSwO6th(?4)`R!|aJ
zBY7$~v^wbs622$2x=EIq)jiqN97EPK;>3}Vs6}FD{#mj5?ujpz!BFeWW@|27I3JCA
z%*ab7BJn~V`<}_i3A+fkJk;{CZaiI>jmB%wzh_G#4io0@ctyukn}<fpb4{=Vl1PbY
z(O>u`hYW)|g4KV?x8&|jp~~UraM$UkN?-7v)3IsQ`w=ZTH{?u17BMG(@TU9xeebG$
z2UfnrBRWf((Cg$qq(cbOw||}l+tF`4>@Y%DkqQGJNw)|y;uyfxk$4sr;PpIR9kg$e
z_HUzLx0=FTk)}!;&k?WvwZR+g+vTaNr+&NkmHq!dKc_#;Pag1hUwQD~ooQ*kr>|)x
z*!55<b*?n)0xkx>(*GBy_UBOOK+}VUUS1@13XfGTl!=f$XJeUkkLdB0u{m(8hS#Ya
zKOCM(HC4KU{iu}XqFyE&#|h1HIA&v+NN$$YBg6HbCGqhx`P}fTBnsX@C&UUkud>yG
z+u)$~`!?Px<IvW+f%CYF$BNb*mNYLAiD07XO)C^4g!Jg4)~>!_U-+J$1VZ)e2<x=y
ze+dv{aim$9ShlpJ{J%T!_CVL^&UbbEMaR?aA8GrWwz(tk34fsVXItMGiXQ%&mVbTd
zv#9%hQPWR1bq3S?=>NEXD(MJDqID^ph|uX4O(lsgqb{Ol$z&lL;m*l5(OjKRroDV7
zdzp}!Y}ACvU~JB+OWe&V!u)~sk>zjO^2Q)}rw!lFa3?S+@dP%-Kmz+j$-CzZRc0P;
zoq4WlDO?yN-NbWx?0qs$gr9Q@5j0KQNG4IBburIiN;k8|I?Vb8dj?oNzh2_OAB-tb
z7c^l}iLbl7ZuE1peLgh74=JOR!K<6Pe;zI&91Luf7+14)2e7TQk(&BNCHqk8j4P{m
z2{lU3rJIr$0R$nFPDb*SQ6ePRX?di4!QExGF?5K@ogrz)=j)AFRbEPo$I18$A7dy(
zEg<-3U@7a!M;LK-A_6NhGq6tMHD;THLwH&x_ePv(n_}}}lr0NhB3g{(kwztAB~Ng(
zg?J>EO5_<bp34)q?i-sY>w!5J%Ld{Kyq!mY(h1OA{$&Vny1MbwBkY@G6#Oc|%&b2y
zAu^9(_q;A@<@m|)Oe|Qruc`lZEan!Fe3FmUvlk0_;+Z^|KBxxZSH_JMl4cHqP-jP=
zlcZiQ*Tdbt-+L4sYgf{<KfdyxYt}?~<$mLGD)9$fXG*QNxv$Y#nz|WdtmDDi2XTnt
z3Zs!iF&6__%IAx*>}3+3o!M+H)H>^~%n9=6knoxj<|#x^PI}VlbMqXY!rd}jWwSBx
zJ2dzA&1libC?f$?FTqrjCpZ}QSh#IA5zpt`bi_+}T-H3GLq44(x&m-OY0sq<d>802
z;XYql61r$mwro0*h$=ikbDrg=_=nOFMp~I1=L!6eAU+p+$#J{U^8rL4F&>a?oH@^%
zZwSv+ds~kRB?Q87No^xcE&%Q!`;BCa$#kSh$)XS^E=*=)7dDEnM;<|Rw<1ZJ8i;wy
ze#IG_0~A<wIm~*K1aF_zd)T;&jP&x_#=1-GkR6*@%2NlRSo8?z3z%N9OIaa*UIWcH
z9VB+q`JJnW2<x|3oJ9{^sPZX7|4oM~NgXDAQDhM(=dClyDvy$pbnnf(zxsF>=%Es7
z>VGWi#TWw5YiD$glgTs=HbwMUOvm%lOo2o{UL4f$H}z2>c=M+EO=$cocK~3d@ZuQb
z;o2QIfWTV0{d!K*N^1(!A1x|Tisd4n0dM2kL?l;?#v^GO)4@v;v*1~vi?qQ{l*q?T
zgkkYTP)DH()GZN!E9IriY~tJD=cNuwbVeOkqF56vMIuElJ?XwtI$CrtQL$Q?LnM!1
zK1Twpg2WPWT`7;8U-=ZE<f%vs?>NNA_{e0<|9l>}BSmC-;28tv%OnjLR=L@f*F6xP
zNdzlB!h4Geg7#c8lE@YWzog>iy&f5`3y$Yv8C)-k5;234=Rx5&fSe}W*^;|$rS|#e
zqtuo^A2a0y{<5}5o*4iz0B_km;Q9O6nn8=s6g<EJ4CrhD^fy_I6(erib0f3qe5yb*
ze<r;TI%6<HfHEI56oQCv<Wjx}dU)P(PdUmu42I|ooqEXzU|w1KE#OTv>Py~i;~2NU
zg?A}D9xWgboZ<EtGqWIvSl9?%sz8dF{49VXg|f^pZ#KQ=a;<>d3c`_$<x1uv@l=c(
zk8s<5mJ2;S8S9bZi|4OSIm1s3PYyZf$H%Wuo*z0tcoF1@E@y)~$txCNHz-l0<~+Z?
z=WRcaQ&x~b6#_YgHfx)_4cGxw{p1N}obb%Grpj<r|4`J$PiFx2GT97=EXgb6TmXIW
zwzSm0Qh;pJ$`CO}s{T31EYXlmjx!8UfI-_V-f>1Rjb92>>o(!@`gx2+4v?6*`|~-E
z!E?3a2vT?uk-XAzv~{LGc)O|p@u<sSlzbk4S%~WH6bP&cuPAW2@k}v?qHw&3`Y~Eb
z3*LkE2d{nQQR-Sd0n7<+aRJ$YhC)f;leH%T<fkHq7%lt_EO&!bJo!2z?;ybv@o75c
zQdtLxS9+TVU&|GB(2`W2iW!VtK4ycZNpE!{j|%ZA=Q8JgjsGf}BSEoIWdlyuSz@F$
z^EKlSZ@%P<VAbp68GHe<9?NE=M<vq_-qsok7fwgPc4rHD>VgG1gG@d~(EvwSh!(PL
zlo?F<Y|1yKg8&@U8uMDL8CQdj;3haNob(4%!fJB%|2a!bCqX@;d|kTJ1_^lyMiUZ4
zVS}nOJcu2&*~-1I4bMCfth6-sb71quJQ`dPFie$fc!^vV*s73B#E_dR7IMYJS<hQ_
zE^n-@E_&NgYQq;fn4i~?4E#>*0I>Dz>pKT6SMKWz&-58P{!o;dGSAqH2!%)<Y8EU#
zmjK^j+Y|BlY&4O{Cx<C6pt-VbyZtW!?h>Yf+PiZU@OGZbNwi@A-R7{IlRSWaXvrCz
zU)c=)S?$RPQK+tOM``ib)V#};XeOC*qj>-qq(CT&60Br#^^syR=TRMXQ~Bh6-sP3`
z%kqEAyZpD>6Uruw9fChTpnah-(2K`uX+5oyTqcq55=Hz>LO3M08Gt+!j}&I(6mbO<
zC-b!<b&-I|F{)htVYR?r34rxstk_DPD0mb118!jQ-7}~^4&h_S{Z8#D)&bbnKJ)Xj
zx@468&~wo!%;i%4|H{Dk2D)ZCKi%>7@cy4_`;sG{4gX&2KepZ*+C2R0hlg4|b?8IQ
zU(+0DdUNn;e(?Vl|5RQ-D0EJBnAmJAmrRH$NHmQ3%3w*Oz}ay!lzcHkyjaZb$@Pq<
zCo5|3^tUivlmb0X+hdXsuH+>fuRT*GE6)sYK89N7!iikWBOZ*VVv&3tbRZey5viiM
z!aFEcN5MFdp%RG?hn)~n;f&B*xi!;{MFD}5Af+n4GsF|ZVB_B?2T>#|D71xCqX6?D
z5ajcy6j}`AfUHXWOW2Xd`Kbz19)H|NNrz)zw5XU|ur2@&!X6Q-U_``GLa=Ox8c{4)
zJFEMkq;vm*DCym%DOc`&b9m-Nuo4XR6Hm;>Qn9?t77@jBh4IlGuSf>cfESCUi|LGu
zw_QQA3Fc05WqrH2xZ}%@I+@*s28uvyFMPbgM<1<OnKgHIQIsgJCUecQR>P->{*LQ>
zkHzq6SipEBMcBjnjweB%6JQy$UXdX&`4~cld(Jl*G*Uz*ah+f#3=UgZ!+CU9=y#3+
z0JQ-fvI)1Ok~-D#N6|ZkU_!)420~py|H{K|qah9dY08hzgGtIEFu%mY*%J-EXae{m
z?UL25H?bCvYb{R4Sb{==708%KI2Oe*%mO|a<6b_Ic2n_LloEHaWq1dw9Xw_&k5@d5
zWVA`+fn*!LOyXQXTF3lAJ<n$Z!0;ny#vM#T37Qazfc6b~a0$&>KoX>3oCk@Ki5T-I
z`MiU^o6etn$>s#Nx$pShO2=chSTa_a&BeuUnf3C-LnOn{UGk|&B3__2kt#A(&pRV#
z#GQ@hZ3kZaiikHm{kDb+fx);8MH_{}Ot)z8BejECADq5>G<xNpM@^K|Oq3HVkYpzl
zDWX|8K&p>K+}U)FJTV$)AYe96EqT&tm`gbE`C{E=H+*sLV@)cEL*~hW9t$m#G#8*E
z@T0XSg94({$+(5>aN=mLb!M<NL;4iUGcJ-Wi8>TWPclK8Dor_-EbiqJIZAG+;xJcG
z#X#R3o4;jwGX8fSc8GdSgs37}&5nH@K374+zKwmAS7pO9$Bf|_!uVq_srUU~?7azm
z9O+r-UnSX6OSYuUmB}P=rjw8vJL8tRs=B(mGE7FYEZZ7ew#Sk^IhoWc$vRr2mTb$D
zVQ6t}U<u(^vcQHTT!DlDA)C#Hz`_pqh5);SY?fsqSs)}_%Mliq&F24o-s)0!OY&6r
z0G|*4&xgsxW49hlb-eHMKF9C*{mhV_HopbGRKbh7Zs3GvA|A(glzN+N&Gprtht~W|
z^$XhH<$fJ*Cw*i~^2iofjdFt-Z(bz6ftN`Nw%~ARy;l0$j~ZSDbQ)DY(}{U@73wZT
zUoJ#?bUli(7e}Q^`-YoiOC%|$wD~0Aq_#961u}3B8<dG+))s#y0u9X9^An>0r#Q%_
z=B6&4pPtK4TsckIX;w}-yrs+nuhOinjrP2;>-{5-UaG~np3SU>Wo~s-d<$jQqFags
z$uR+Slt?G2vBlIkJ=!}VwL#O{RT^w$*^*vUCN~Txx!IGOYf`>!76myu<g3zB<+d(f
zx^QLs<kb1O=?S^nE3<Rc-0sEvqxnnejSDISf^SmUMX!5*O8bu5(A8Q~X}<oX&27%-
zF4JE&+$gYoUS_2dmne+HoX{}`U0_FX#g|e;Gfdq%rqgys16i50FL|f4(UK73fq)fM
zfc!V&Q=EvmxKz!<vxzp!$*Xia;VR!;k<jHR*fN1$D*PqY_LXDjpuuW%H~>n~<0$60
zRK4-J^>LTiAqXT7Z*c`LD-B$JK(F81bA-DO3{dD+!FM_4OE^gmkYcGohc^IG2Zx+#
zoD>wZ0LT(dd9$9l>kDi-m5k*###RypqcrLOFP<f3;NYd`#k59C0;KEd?pwcFrE9TL
zYm!FSFIl{zv0OA@Ifm;|*`#|xsTm(?(>ZrbAr~34^-%4J!9mNLxDcxtaqKaLW0>4r
ztKByXs*9UHdcMlQ2t16}qGNJ8%d%_1l%-Yp)+SkYe8?-S@bCUbcREUmU?w9KJ3#yT
zLnb$+!WfI20_s|((MJl0izBBa;RSyJAt4|Q=6=e%idewMRUKPEh^mA|?hIA;tx8yU
zi;EY|ox4B_n<H$aYj3fS_<Q{g2G{?%xCf}xdATK^J;3?cHzmrRZd|MoDn`DLO?rV_
zIYCo$i-rK)opgAm7~kp}^GDUTrXJ%ha}%c{u%+t0=%1kUn>dg2Q!`Vu(+N_S1lp$w
z9p*2|KAMdd81slk5bUL0-&|wfrBrDhE~>w}$n6ct?LBHZpy$F$Sg<|v?ot$RZc_;$
zgqQFga!<S1h%%c+Al%s_n^F|aL;fdS5W&92qw1)Hg?d*>sOxJ6=Pco;%EE(%>xfDS
z8SeNJAZ#k<s^I(lv9wKqU>l6qbay}iQii8yK-<g$JY#u|L5avUte|x2($vZP#OaCY
z^P{89(7p9j_O!h_bl>kB)mPK4ye|Vr{pe`!@{&B*DbPt$pp6Sal(?=U2~s7nXrsoy
z8OMI5<T>U<O+}Nd)%D}NZvjWr=pM~qiC~cDOG)pEAj)yoBI)``Zd5lE^~btm(P&{{
zAWKO4|DV=IjtoCB^fN=o;o_n18vMlI?E_z(`(L>?^nV9D|Hlu$@W5E_e9tfUoYUW_
zefpn70ifH9s8_DA)>RYmA(T9VB3PtC6ogV&1_kFy1ILLy3ZFhb*3fF*xTDMjtXK0#
z$&Drjw8vZG$Op<~i!(aKcnql>GP>=x&#vE64f=?d*_vi3d;euAe@cvE((j`0>X8fj
zI3W{!1js6%#=I@Dzv0`ypImu!mr7w4v=7mqL?ocgc5h5VGl|E#zFr~7v7A<i^5(hR
z<-7DH&RH&$E)Yqy;RuS&iSU+Q4CE^Y-$)l;q%LP@3z<8ito%vx=Bs#=2H*vZ9whtF
zbP_~RjVB?Q*FTl+J5Vk_sF=lCL3?{m#jP)#RcQ!K!wG<?0c523FQCAHa~+@nBuWLc
zdpC-07jfv|gbes7iRD@|4QcrhUtsO_1^f2RwcklE>IsH8@q_{MY_YI$6r{1MSUBoa
zmso$t<SjmImOZcN3DljU0^MAm3n4x^QVgn$Bc7@-<6Zpqotcjm^_#SA#lICR$$61v
z@VvsaTQ?V%<PA?;nw&T}-5B;bMOwo{?E2l(k>OvDX{ucVsr7|NxsNC1K9DUVPVpQ<
zlz?D`N(85&4>&j~dj>d*fSHe72x#`vwdBxqsSY)6VNbj)@w7w8a&G#>)TKFKx)-mU
zI5#~x0a-V#Qk-Kg&-5f3nIO;@MdRF&0tS*apxSFeB-15b-*DrAG|Om*f+UjDWqafz
zg$FgJGtKy3;Mio>PGr#Kj0G-h_z_?jnl^UH25+*r$Vk-t_bI}tfd+1_1qRORWvL~V
zn8sHcWtS#`yt!7a?n@49^DufBRL+W9gT5++8E9#BGfvP!k6qy97jlaO*2CO&87Ml%
zF$5I_6z-52h6HuK$NEKkJ$9_LoN4Y3K$);cLx;QZQSd+$j$(I#@h#TsR(_qi5&rbt
zVpPym&laWblrYwoQ5{`rgx|cT`d#N$GCt6A1mWz^^`(4i1VDyLwoKVnN+A<P;BUc=
z6hSF86Yr+$XnwYL$Y74ar{%>fYV1iSCy(bZvr6GX((g%qhqw$+ghj_m;1;6miQ9N^
zh9^Fddte{{SMCRXB)yO_uoY@7tU)MzsTrUp5OQqUl^qx=sDo%}r%v2JpiZn&-omS#
zg>C%?kNBt~Ps;>!#&0AQlX<2TH9+*%MU`Vi>3Ec#_Sm9++c_1V(f%4UEmYhBkYtf9
z*b^IkAALn?nQlpj2rK~S!R#vPtOz1(uB~k~iyW<=(g53y5!f$0)83yx)itQF5w&Q^
zN$xzGmR%lZ$d0lZCn;??^+W}~5phb<yz$AsOfr_{TW!|QnxA!8c9~8uhia?0rX*+u
zb$1=!E6yMl%H|%)UA|Y}1X0Q;AI$-W7YoXmMgi@9F94cv1c2Jy*b05qI#KoWC#6B!
zyr`Xzct&OEUQ=<nML}pSy&T#I)f$6Zj9<4rp_9|BIYV4LeyvEGo`NfJD{rmHFCGIQ
z9IK3kSY?aKc-VeaK{GBH0XQIjmGlNWf5tW?a^2G(7D9n$F+_$FQB0;x)V23sqEb!t
zbrTA}X4rJ{Ozv`!dyHWR(};tz6eX#4kb72`VsTA=N2QeaPcBN;ZH6in6L5f~*nUz9
zoD@w0%17i}-g5rB;7uD74-Hce-TV{>58xbupHmIy8c2tjq3f<hD3lB`4_WXxp><rQ
z?mE7?41!@nsNCv9r)3K3Y1u+#{-G6Cz_e62gbacj*Qb_2Z7M8Vp#>zzoCIaafzKY=
zSZD@Ut)Gf>+J%JL)11)Wk**LyWHE(-UKd%bTBu)oic@h!s)MIl95w|&hX*OeUXO+0
zS+)&cvFw#xD+p<A?+!<2h?toxVR5KrF)#ETDli3du`6S21g11RWlHf8m0?Ovi85I-
z0l1aC7E0D@3tI{#MS4s(?0V!;f<p!O%=EeG-uHIBoD{=82NQS>gim(2yoRPE%H8TY
zGG!JG7kMsXOR&q-(#lkm94gD;@z5^f;BbR@a$;__*~^zdu|G?yX2kUQt`~8sy;uHo
z>05xW0IVUA$v7N;6w3<p4aAHrkitp8=sF<(Ba;Rhr6r>k0XZiN9n26#7HWO2!8o-`
z`@Cd;k|S`M0UQBzlnLp@o7L6k1@8A%oLnhSgJHb|jJ|ImoHx@8o@eL;(g4zmd1A<M
z;xmr>gl(mMY*K;exn3q#<8oY~Z5!M87;4}FwQ~A76u@G;0w{$__<mQ^0-oRR%bj2F
ziS&Y>Ks%nwO2r)q!2@n#H3@j$bOKlSMp^6+8Tbwku#gF@nB7+b4~?X%1>jYB{g&l1
zt-Z??0)IscY?--Ko_ML!s0Ia%(LVtAtHe8M`aJoI^yws?k7{F0gx2D5L4A+4j~e%m
zbiJklm##7pjFJQI=4R8|Oa6bm_9xoNJ;V0Us}8^R&`%%gAAERVKDXWf*1q>0{K$d7
zIxy1vyq+`qO^p8k{!e{yp)s*e2h}%1x+@@GN-RB}n!g89pb(UKl_gr)q-9Ko1Q3q2
zz{eV&s0G%3xbC|l^si0V7f4UQ7eV#LIF;Y3r#$J|c^210a?U!I=?1{UWRy`nDUK6d
zlN(X;EtTWgsDO9d)#Od)2IY(unU~3eoU~GoNV_fSzyhWvLwr~@(7(qO;$aJvZPJ60
zzuNUuYMtzE)_SL6?&f~En+Xd6z%n#4Qi~&k37CrHjB-eDJ(IRW8HB*DTJNpyrafdh
zw>ckfu1d#Mh-QxE1$HJkUV09<AS%F(vn?7IVh?()>aDyv;(WVTy%jTZ9N#x+j;Prl
zBu5zDE;$7TB<%`feT<y$ihlMl*|pyVdtCv=Y3Vx_VYoDbF6HMS`?+{wPT)U_GOM$d
zUt9qOCKLL#S1~xTLh!x`lS7TKucFFE5$fvZyvlr~3;i5|resOF_ILt3Ur#)qAMzS|
zd!CepgL-hW9OCR;DcPIg?EH{)pW<23jcn8L+#N(ml5ou7^}T>Y%;UTOz#IV;mqbLJ
z+9Vu|?Iq)Tl5O-X%<<4gTm@lG*n&OUE)m^h%!swruuJQpi{y}9GjJrpJT*)X2?6K1
zr^dK12i&A3a}4*Jp+!<fueA~rV>8D9l9_S$LM3uShTf5xbStxKuqZ$_!?eQgOg5br
zYPMH)jCbX*3@NrumUcSqP$5He9Qi*G#q@`@jPLtZs{|_+0g`lX1E2eHb2W$u$O>Jl
z!4v>H;NM)Cr*b{!<vqr%{4zyytDJtn$>pjHrZDLuR0Oybg+H2FW$Fz)TGA6IS4Z}@
z6<suoJ0tEz4vhe~<<<!O84<`NCNRi5<^Q+98_^$IRWm<qP8!n%ruBSws02K(^|;Fi
zWsG^u^bx#_aN9;jhzZEpXq7=5W5e@dMjk!A^3Ei}PB*h<l~Q69IcH+Zq}z|b1m%&x
z2xg>8*-_>*S%}mDB{X$dwUA=aodvACbxXr8(&jzP<@G1t#Jw#F$HxTF?xMwfDd{LP
zK)`}aoDKk9gGfM|e&_{$8#N3sPp~d3OqPzBG}ak_21HprmLHWK4eK9=(VSY5ZmeC(
z&tqq@yhe|a#1I9AL@m^rmYHtx8V3gh9Y|@ZC`A>&8{fB!Ta^%YAtJuoLr`4zALpJ=
z_f#3?Ha+UI2EDbgtn$qwa5?CH1oUpiu1%rCaVM*B%uGr^zcY#d8AGMM&E`~frb%^&
z$MdT6$=hwzlbRd!S@)&(g$|c5-B9^=|8A&E$4X}3l8s*e5^nOfa;%JTlZI>3e`e5I
zl4<}c9uo<mm@0u01xDb9yN;Cxa|B?d6k<(SsA9{MO#rGK9B3Px0J#Z$Mdz5H3Q+Zu
zFJE7b)iB8!k2ug<?Y=&E)!Pa^qjk7y>W$o&E%!wX6IH1Ef!8kv9Q#Zt0VbxfLP8Rk
z!8;cbac+;0Qz91$V>ri6dR(THVn$jPDmVKw#f%3U<Yg)!Ojco;j<8eg`t)xUd+}V$
z<MbHRv0r{e15i3kFV|oIkE}`I;VmGWq$8k@sm)Uj5uk6QJl|}xOyCu$*Css{<SO^i
zWV^mlX|dp#H;}lju2ZdSMDGRAN>T_{7ykU$4=`9zKS=tA#+O|T>=KtM-q4OrXj;I?
znZR^>k9nBb3(t_0;P=;>b<6aVy^{sEtXjSz4QsE``x1#uMw6f&AE$`1M8{)8x#=%?
z9V^3=l>r}0*`#pA%5X_ZanoEFrGo<XHv(Mht;AF9D??WN4Z(sC&n7(%V2NqzTa9Gm
zO(b9tsG1^A0nH@E&6a98pCqIyl0of+5)&u8ehtgfJnC;D<QlEruKJDF5-AShtJ%`@
zm&-620HeWWF$Kj;M}?Lm?L^LDW;Ww81UaoOoyo<GEol&}MBuKdI5Ee?OztK}T=SM$
z_KLWD*PY8&A;gB5jLl7^xJXJtmT1`tm};juLcjvz;JWPp8Af=b8<d<m(UbYS2OfAJ
z_1=?N<X;f`70CX#V3(&_DS?Lf8s6>Qxu*uK%S7}=AGK`IQoPYpiT;SBD+RU*K?iU@
z2$0wtoT^Fm^ele4(H7vymB>VK9aRVg8`IA1W84{395P9L>)=9a8N~mQ>U0Q1>>5l5
zEwyW*a;=AtagQs>`b9iFqF6x<R!Xu(A-}O<fN;odibljgyII;Mpx9EycIDR`oS@Sn
zXXAynj*VV`%8I>QIG+-ri63-|bZSA%O|7sd6tUARLp%a3xe&*Tfjpb;a~@O`n5~uF
z%FmluuM)DV!I4jCmwVo>jr{wOw~fq?yn5uW;XfXJX87BNpBO$feDBa-5B<u}_YOTd
zbZO|=kaqavhu?enD-XZnuyuIw&?gUl@X*&EiVr<>=+41E8vKug-#WN9czWc|246Dp
zxq*)ie9yp5l>Lt8zL5LP+z;ozBKP{7nH%W;-Tr^q|JMGf|BL(Y==*Hn&-DH4zG~m8
zz9R?!>fnDG`OLw09^5*3@!<Uj{@;O*9eB@yFF)|Q1IB?|@9*?}p!e%~!`=sbZ}0g`
z&rkQfy=S#&s^`V}U+TZCf46=^zo6fzeO~*Gk<V}=jekZyr9ab2Tpt|my{vZ<DErE=
zgILp3h8+ZMZ%Pcaqn*bahM5t=mng#yj^H;YhS`VQ8xq6pGv)OS!%QFly2LQsSH4ym
zcHmiFlNe@i&&LwOY~;rkW!M4G;&Q_<6X-Cf3_Cz1%qE5%paYa)2krMq6T|H0^~J<6
zyQh0W8FtVjJ)an6_bg|WVF&HObBSSg&+e=;?4XVINMe}X<C<269kh|oD8mjKHK!B9
z>;}rI#4x+lFeQeabO25^3^PmblZjz=-TOphm_3L!p$t2igc?r_vqy>^R)!r6?z}oN
z%pRtBC^5{QH2Gp>*uezGgNb4GWW=kKVF&XHZeo}{HBeE89iaG~#4sBJUsi@4pvdjS
zFdJ}PN({3>&sM`Q6G&_-!wwL;Mq-$aeJv`(4lt%;%CG~_=cqF5fc2=L3_D;MI-VG2
z)Al@&7-n<iyiyr<KuB{;3_GEOIodGHWMR2q8Fs*Xa$jPYO%n17W!M2_#}_4r*$fvi
zSB4!hO}s2I%%*X8sWR+<_aL7bW-|%gn;2$~_`f7E%$~15q6|BjW`A*Fm_1?sqQo$J
z==+6<VfLW)J<6~H67d%_3^Pf%?@kP}X|A827-rK@-=z#YAacG_8FoOId`DuK%{Y8}
z!!VQ7_cmqN0oU&H62ojt+>yjEn^AUH8Fs+<I+Pe@6R{pvh8+-}9!d<ec|`{shMA0=
z1Bqca4`xmoc0f4UpBQG75B80GPV2Yrg9m#@bhAf(HG0XD51Bpude9i;*SVhW(+(^i
z7(Z}#@1OSmT<^c>t@S?A`_i7j>G{=>kB|KN$h$_K9=S477&$QfTf^@ge#`KihMnQz
zq2C|+@X$96T^*W0FW}D(|NP;19Nsv5_VCLN{q3P&JM;sGo;oyp=-A*F20u3V?!o%t
zV}pgk-hodH{K&vp4!nNA80gRacJ9Y>Z^=ELvvY^~KS@>K>-vL!w|}JX_xpaL?;HB&
z`yT2m_Z>d?se>Op_|}8r!B-u8-hn?j@ZkgB*z<ioPxd_8bHDz1{lDlxs6VY=)*sMy
z?c=4`ijQ$yy+2<r!&*`CG)?~~xHY<$fO2pwf|mjSMo$x-6WG2GhABE>SkXRktoL$H
z*)ZYml^JWt5nMe8YYz?vW;QH~dGJUW)wO@CEQ^e?+kpdYz@geDoa@lr7Yjh)+?c)u
z(1A#MzgXJ9IV%<%_*4Uh$Q59;=h6;`ZX<%-5PJV0(0)9zq)1kVII`@Qv5es=sz8}a
z=PrUgA}WJOaJ2U&mawKr&@RQ4Pl46Lx5fx2!^|LO>?kthFo?7tQ<ikB0l`~<u`Nhl
zsIUUugDM&FBaUgW2wL0MepFe8F(h*ojRhjdbpqn5RQT?3WQ2BX7)9uvwI4|=p=OsR
zcq#Ju=|Q<H6OvJZv3Xij0bF}wS$l6{X*g2;D_CkQ*%$ad)cb|Vv497|VC(p{_QMTJ
ztLXax^&=S+2;qJNQdMT^l2JEdfrl+cdylg8eH*N(#Ym@E(kr1rU*Wc>u-cIYheG6Q
z@0MNBN#8n546}Q`|6C(_)<(!bLXAkhY_|-%fv`T|GG$rN`y|<6<yD-L0R=eFJMD)O
zODe0<tpV1_PN#t;$b6YD07ZjeE*q6t`$1({fgwO@^t2-soPm<HCB0&XX)3l?W<bl<
z-j!GaT!gFxUM8`O<fkJYL6aE(rbidutwh=nC`(Xv3~|9g5Wy2sf;9)G8eu^M`By2$
zOa;WQ_Wg;aL6?KRm}l{wO2ius9pRSD004p!IuV6r?fV**AXK4~hue+~8RL;W4}w_`
zabejgnN~S8weMAyNQBTriD33p#9&b5Fxd;PwQOQ(1A28L?RyeSo55b1SeDBW1MY`S
z4r^&41h^OiaVUGHrM**G+Chj1707_l*u)`&fIju>Q06wHn1}D$+IRQ$-llV=sJ~$O
zzR6e;44dkGG4}28IGMJ$pyl=fFS%vyyAn$eNFR5?a0rjUhr-N{=nvwK*xHCx`G%)`
zXJT2hXy4Ny!mkQf5(B$3d+9_K5A<^>fI3V24rK|cnO#PTz{0(;2H@cJaVT(ES&`|3
z$h7fZ?@*S^);OjNEWpppND!n)(0nii#^fLfV57nimG*BE%K&-_;PqCS)r5Q<cjV%|
zeA+moDCW@U(7wH43ArdtKQT~p?g+#dcZ3QGF#QlnS=qKL+P5W^6<#?%&O{OgOJ*j3
zIK~BAxL+)&Vp)CKw<eYrs!*)@$YR~m_~r*Q^o4_rc`qm+#YRc{*UGZUQ6fN3%a(h0
zz<v5Iuc}gx;2#W}$n_2F?TMvjBh$rv4xD)SP9ROtx3cstpNCsyd3l!hEn-=Ufr?h7
z;|}V9Cl5=e&$t!`lFj^9#dBdu(f(Cp>A3u5pDwnHSOuQJKrE+gXgOso03JlUUi;?6
z5>yR{1s1%5$?`T?aI{chVnrsw^dLRgzNujuREl(v6kkKh@<2E<4_yfO28`Xh5Gj?l
zZ&a2{s{`w13#-$WCnFshTAeO;?uAa-W!ry4Vo6usVKbXBsLQHmi!wvU*hHxmg7S9*
z&dj$ZmIm)d_+CKc@c=;bdL<@(0EshP;R61&D%#g8OP?hhmAOvjJGgh|=Yi|lob6>_
z;`G=Ki`rY2CA^)Cys^(i;n^=$1Rd>iTTvW1L;;{(L+$I7B^QDNVUc?!9>1Uh02A}5
z7|J(cyz;z~r~S*s65gPg7in;-Y*DCJeFG!`lVe7y<iTR<R<y5GmP{wX#sLn%0lWnZ
zqFA!`5gPDWU3M6ovGz5}63$AVGA~7jnqhte>Q*fA-gyUb7z5vnW9==8r4txJO-p>h
zs$+oyxdHTTxen{Y4`SjI?O!O%5+B6)Vw^H7nTa4=Gpmkm4!V+8>V+lks}oBg5g^97
z8JT!55nu5aS=dHUrZpU!w(V(Or7TVO>fl}H%?Rym2#O!x27D!kE<|P$u4rGWEO{iM
z#Rwwr9ZRal3^PO1%*(_%<1UKqxUWbo4bBRt10yiU><;GfAl~qpRA(U+As~!#;$N;T
zi5VT~{xP4=d-qxHd@t_Z;8mK0T)@S&ZLzfC3d;ug6~wr>QTS?j?*L7GCO875OYG1q
zY4yai91wrOLCbo_FR_^bqQW~-3CbY09Q4#8?aL%w;ai1(5SX#T1>);)PVh!Sy-uKs
zBLJ{wm7Z3H5lcP>F9c~e&y=Hx;7`Dd{3Kin;y|JIr42(kd>Mibgy@+kD%uGV-_ZyG
zz?M<qDThxbhQ(4bhRrE7#Vt7aFk&%-c}_qPgv$;ie{WWXM3cpsA1IrECj@-S1+7!y
z@W9a(%g{0#PbP-4Dj2rmbm3+g7Qh{|pipmdLkPSae%#H(kQh*a*7!HxBc}{UYzX^h
z5Jke~5b}Pv5<^~>9E6Ne;^bi4W73*M6julxA}8V$soYS8Q0+0i2i6xS$;tqF1JNM>
z4}@E|eU_3LUQY~*9z=BXc_E46AmBc{7_@o?(HZ6~aGZYenlkj`B4{j@j3cg-(FZ1E
zIN2f`9uJ5mV+5OtAtYMN1u$z|;bvrziy<FgHcVM@DRL1Ii8qv?hnj`VR^qELgz{JR
z4(vX})e&)jY)5u2F(jtpC9(!3At|zZi8=7fWyt6}D4OX-tSdvv$e9u$uvf3p!+Vi#
z7(nF&Ay~AS9WFni3@b7D5m;oy0mi^|7RO)69R=vcMMYjk>;-Fyp>LBPuoN7U20{hA
z3#dZk7Nh7F8KQDSyQ&O<16#P~LJW5`n^r`SST#Z=1G%qRDcg>}stkEnI1^}ELEGao
zICSv?XnC;kLEci&sn{#Z5J$>RQdm?LE^tO36gz|A2a^DXZ*B+6iJ?_-P#;4-L)f!I
zR<8$(7bgml8^^yF+Rl<Plmrg!8B<qsn3mbv9?2I6v;`uoND@~JuO^0;Q-p|{a}oFv
zl!@H6hw~`$8aT<ol?V2sGVB0hzK|GZgTLpMVF$SCSTcO;fS7jzUyg>z|L@SQXd~uu
zIP~$upF8v?gMT+@4BVFs`oF#Jx9QD~9eAYo+j>5r|G9n%vkw2MZ#@Y%<{kl0I80Y%
zx`cLY%znf=JIJ>tuMRMg3$ytvaOYgi&t81=QvSllx#^h;43$lvhdgL!M#x)MY865~
zlm}(84kS=mHDqYG>VtBeXLcBE)UbQ19k3LuK<d_AV;oIk=EoEw>%}+KgyD#OWWoxw
zz1*w-y|>_N37c%M&Ce9&=Y2Bv*oj2m4izn6G@09q3iE<=Va670)^akybz)0IfHt8d
zWR@(`wJPWi@Vv@?$Y+7*JSxL2C%0gZ1JHDoV7gQ=T<A>N;X3=NE~sH$bLZFnp_JUh
zf(I&@$;oIuQKyo5UGE0qoHyo<4Fr~jR8f}SpIG&fQxJR@8YeSR4VA17#*O*&Id2UH
zymQ`7W@Go8`Gac_gci^;$j1O8A;9>`)oPw$0U_6UCHH?+Bo2g0R&mH87|CY|QP^Y(
zu<C#&Oq4|n;OH0*Q54W3BUiXC1B{4ckRN29ShE|^ihyGI@wddfHjq@=Tt5vVBW_D%
zc2b;p3-0_X?ES@}3`;>Ix^Yth{`_mald;?^qXQPvRo2OwKAjz0HY-M{7|jMy5BLeT
zcaAwmW>k4aLIcDXHmaLI!{xafqu}BVVUjXNO|J5oD0j+EPn0_m0xv)i=)leWoCJZ8
z{1BYhd<!g07T(e(j!l<|urU(9%u~PJu?eb?Z;~=IqO#bS1(Pu`q-S;*L~c1ntGre_
zgzO~vKd3NdF)Of{B*SPF=<n+q=jaP4xa_u|mLJ;Sl_msERPHiEmtA)&NHrNgYDf+c
zn!w$-i?<>LwmowB;xrU+fO|LK<N(Ot_0=N*1C-CIjC;ttH|F;qta1G#LLF^D1e6(3
zO`(up!;j}%Mg*=@6*v<n{%BcdOg)BGfR)cdiCk67kj*a(QRW!b1bt(Zbvp$da5DJ_
zUNuMa>Qn0?p>+XrVWOwZC~wbx@|C0jn+LAH9my%CYh>zQF|a8KE$w^MBtuHU1~gaX
zsFW1ga~QZ;ir^SR3bP7REuwA7i8KDhz~!@g-Gv|0>L3bzj9F_Y5ayubZOAg+m!HBv
zqH8Jsp(!qzVaSx83neEY;!ciE?LVZTX0;6v=DFU~KG@E!vF(+#092OQ@p1b`XzW*Z
z!bRB*vP+RWVk*7?b>EKx1r<qF*Od!%6ZzRIvy)R7`OV2GIQbR8nYf4FOv|7~gdUgr
zwn7V{CQVhKgS^lBqQZ*KCqWM+nQPVO5aY;fkWp+|m8YxhsRtyqn}A^_GXrRU6zv%9
zRwQ#f?ip1K8F6b22zaQK#sX$u_quiqY%4X;E6U*BLK}d)y2_n+5(<q`>dQ<~VAz9+
z2#RJNcnhGp$;;e&?*9Hy{@7>U@r|GP>bHFQ{onP6AA0wvzx_M%NAvjq(OQv#QwgSa
zFwUkLcQdS8L7n%HokRk!INJDi|3iAgS2Qc*jMdd58GPG5xWY1a<=u^09pqZcyGzF$
z@<*o?IW}zY356ZlWzhaIaHPl`9%Y8QmHodlxKHwBqO&fC@Wd>nmzSoJ)ttuXz|@f_
zU}SIw88#70gAaLii76z1D=*42GLnS4d%!2PRWuQv13d)VQLZ)aqj(l2N+FLg^XAnw
z&Lq{=%v3Vf)|n7YHzZ)p0}@TjM9m|@bHRDABK#H&g`K12(il94GM$<nc01BKJJ!(o
zO`e&)G;=&3t|LkM%vT_@v)c92hKCp*yI3Ps*_05U*ils7R1z|{l)HR~UhO$@7Ujas
z6nNGsHrXQh1Fo}@S8Oy5F0TDpR`jLRW3I5kB!I240<J;ZD3SW+!sg;l=IAA8I(wDJ
zeXj^~KSVDxGtb_0lC>Pi?F!uOx{v!RaJQSJ-@1d4yfG!@v*g+z?b$`{rZKn8?PL`L
z+8to)C|5I%lW{I#!dP5u1WQm&LU!p2rSz?MFuPtZp%BJYQC-;?)8XAn{(q<Tt=dR1
z{GD|5M-Fct`oqD`55@!4+}rv;-S-LD|MUY7^?rBHXM65|1K?XbECBrd&FXKgkMNvl
z#aT_2qU_Rq`*YqoXe9n@1fcYi@bm1+#!Il$Q5#{cRpWF-ck2u#L+Q;3Y=a%0m~R4l
z2u3HmKYXsrt{{IEChayN5gDSnt3Isgk>JgCsg!1R6dqw7x0at%!(h$vt=3QXj&SX}
zZ%5L7OA5SB%?ehL#F21H$c4=!tlJP$nxyZL*}&NK<jLNUxkNrp1v(U#WeRaO{m;=^
zhOtS#`2v3((NWwy0?3w7D~{!bQQd_6qw6&;&-=P4oiZ#J)wY(e!C%H_$_rWb!`xQC
zEU1SVh|cV`wBJ@^W-_@cO14CBdu~eIi9~mX)Af~y(Gpj^pkxNyJoyXihZ4pr7-#55
zXSRN3Vfa|jUwY=pYfX;R=4aHCc8A0Ju906%*T^!$=y46bx20&Ag(AYz$O3Gxs7E?p
zM~E4D8;TSnO_$khQd0NH99X-&1;IgU^t2NjwP@YzFV3!8SY=6W45Ff2jFm4#9>2ac
z4y{61y{Tw8w(qZt`tnxK(@6c6I%tEXM~JFhK=n)2;cTPo&~i@Az)&a>St}eLjpR#7
z=*ie(w3STZR*4<*m&2=w%jeBe$;M>7{AK&<GxvP9<p(hxCWCQ}svEPg@Ej10q+{!7
zb(VRcFjOeA&-8*jIP<O&)?8h^Ny#u2;?418#m^_dRlEtu>WDhOQTYF0|I2OzLST&S
zc4O}EF<}H~iF#Y!Z1#H<%}2<mA>7`#8pYT<e4~|dpV|;pnrgdm57zq$b{~>b4Q<iv
zR%H8jZ##9(gnC-dR~}O(m|0K8<0S%w2$2bAL^e(~4wjYzkA$yBnM!XS^s0J&4z~O0
z2LF5hJhYY`<r@k(LToj49{IIXQ|G2%L-r%$8>2nn(6ukw3Op1X+t|=vQSTeLT+r*c
zA*@D|IJ4b)5>l-t9BF<AIjV)N7GJXaD|i&ABYG(PBdJeely*^c4$B5X`RY;)nWYHF
zr(DYG>j&A6ug%>x@c3k@gKjUYdW~<#Y~+dRvJ`K2pET_OAVdgjqP_%MXbp;z)uxOc
z)Q7N#F&inBG)8`L5&8QY-}C<YE2nn&5HsgxYs<XQTF6)~QTa-Bfpa?~=u)>=s~_O@
z9urBR3ozkkwy4wkyW%!@R-f6No_&-%P<@T0s1xymgg+2!vepgQGFscg27K0eT7<$0
z`d5Y7QV~t>jdkv*_p0Sb<#eoMWcS-S0G3IOsMp8&*Fo{x<T>2^mAzz}Cl=S??zoh4
zsp;=bm)-Izq@Qi94D<CK-o~T3Cn&Nr)|=VfZwMfWz$xVjxQJ?qbfb-WA6jV3%L_{B
z@*3TWb^`wLt$HVlfWMs>rbGG((@<T9Tlhmp%IB%%n&YeUn_G<>Y^biMVZ>M`=mdz>
zHqdCPZiO$|A!%-YMuNCoJ7(W7;%xft=hvh8>iSl>G`_UBqS^(w*ERT>dx##60I$sk
zLA2=LweY{Se5zVy9k6m~Z%Z#KLdmwe5sgE$&bm<h^UY6lXxv6)>2bFcyhU<oq!kiW
z5&5@DPR_!Z^p-=#Y*;KQK8OYZOS8z&W>f(qMLa`nV2zah`Kd2^=j4Uya~uYf6X#B*
zH8A*~R`dSiyw{LW@qAjDXibc&y{lHuscvL<udPR0tHda^ar&3@n?lYfJ*VL>%^^zj
zG&H1E2OyGjn*=wL)fK<i)ZS};CUo8{ufrlvIR%^ZIk*laWWnc)EZ`0|Dg<fNR2DV~
zGifW~QPlgGc!~{rn}i%=Tu~-k<&o&R94s&p`BmY#ok1s;jxSzBygqD3yTXtuKHO@f
zFUt0X(s7cyo5+_)ph|Hq-_jaGax>hrTRBo*_~wDj$9n2QE^I~FK$=O~(@OSl6845#
z%UW;$!agK)`#oR1n67rkI2&zputm)lkL3S%X-{e+Cx^ddxNoR>_-%*YIr!0mKODH2
zdnPy9|8;#o)n^{`4!ouJCwpJgbFY2|(|@Rc>eF@6QdZ<K58B8yWT9T$BQ)ueC0XVs
z>vw|yKr*i~?dOU)W)X}*9Wo1*8bm2<M-qJgI+fe$DWMdnN|i?++Uvf}w8+WC3KgBK
zdHCJ0r?i%{^_QbutJkL>VgV$Y3C!(CiMCmk>&P4r*oAQIW6g!Jxw0&5r&VZzcJ(`-
ztc$4fQ@JH#ew1i3QN(Lf8HX$kk=2BkU5>*PKhPe(>_{4-7~-uFx-YIC&&P>6Yilyt
z3~Xe#rL-UjJnj_CVa&_kwsK?&C&;Z@+Ww-y=$3Zf{)_79FpueV2ye&G49J8=&v>*6
zktz`mG3YioZ!{g_o-ggyIg=6~1iped;2EY0Z0||mQwVPf^ldG@m@{?clIwSgdvpQw
zW&*L(Xi^cpO?pB_(m7LB$LN6u`3j_B`#Q+$2vpV9y)AAt99Qap%G1x)@8w=zDu9Ox
z8lIU@@wOgJ!wp9_)=&XBo}VTmUc~*kE~9kuob^`cZ!8K_h0!1Yd*-q1wWC-IO_Zyk
zg4_3=uHqCd8?HL|kZJ|VN0-tgb*BCj?yDeL%hNW+_$*+1yO(QVp*olHCMNK}%B<&a
zZssp?wuf=o>7$Z~SwTWf5yiCfA1h*<Tpc~;m-nD$U9dZV-=83gKk>{55DHt@{$(?i
zY<|i?wwu)b{K?sw{9{yNRY<LUFx>(35M36{aWq0UN-ADCTSsA;5RwgW7Dk>-g#SWx
z!$Z~pG>>?wMrmTdRdO1D%lwT^EM%;~a1q?lAIn}SQhmbD(EQndnILYkwqV=ip=d>O
zGHn$om4*_ts6B9`jyCf#T|$M2Z6kXOp*<pKcE;O3?=({Q=JYY|FpaT|w$NBn^v&u5
zZ>uBI{0c5m=jDUu%$j~UsWSci>~ghMYaV8;pK@kd<WEFXNY=M7Oz$Bj-$<{Hs`aXA
zj<1tsC!D1N^?MqW+z;7^J!Q>V2nlyfKG_W=xAs5Ni%_hTX&nP<ws{Dy)f2k2{(|%s
z@`SQyIoe;<-}e>n008Mp-l&wDabDf8-_1^$7D>zp?G7eK(yC#j%n8+6Q2o@GeN*C{
zl1d{SiwR;&k!Nz~6(&|Tfg(w`ea2f~s|GNearhU6XPk^kYM-3)6h;daWkw51&U#WP
zV2RgHbR{^EP_hZ>KL>WSzLchK7wgaGE)R(!_XWF{J@t~_CASAp?Oc<;wo$uOG|C=D
zA`&mboEb_oLw-@>g{{PL<ZqaCO;L-^4*z=Sh;bN0N60-D=3x>P0`;3}MP04m#XX(Q
zO+pIV$$U<FPkVrMCm=e#HN&Z-pK`hhG5^#Js%R1&phFoT3L>oJNRg8yDzH#mXl~(0
z?N0K5Xm3ecHPtF_4_14`7l@lwS>W~cJGtA(ld^4`J!8~<T<&!CQe@p+1n?zb@uez)
zii?f-hx9t-6XdI+b<BShAO)a0^=+}3TZjNM)f9$py61BD2kBZQ3Z|`Mly}tcNYTM#
zGPRsF7}Z1qHzUdBXR74UF*^80>bzp$uUyyo%I0b{Sz~wBZ_jb?JlS*PA+9QO2<t4x
zQHgOVU2{Y<`%LYhO99|M^ru^j0Os+0lPO($dwN0WOd*HKS|FioYks|~ewz~Se5uq8
zJDB;pRP}x2FCHTtTSOYHDQvLo3ml0Rt}O+KwI4mrD{QG#=r2q!7MY^zrqil(S*bsd
zHTxpzELx1HX3m?fR3nl6Bbp*ogx&afUb>Yv!O^t!9Y|;!t%oF?edeo3V|SVn-4j`&
z$|{i78U?TAhR2lr{|;?j8|fSR+o7JrhYnpI{H}qw=6)%c>yP?=;@}4leEL97Z*R}z
zdZhh2W_$jr57iww^+lirl24n7C8jScC1LLkWZFG|2Hx-(<z`k5zVP^>w;n{xE%l<t
z2P#IHMZ7CoA?g&=2}@<)dd3f@?*RgHbilk?$!=RR&#RY{LMKJ6PACAHz0qcX()^4a
z)=9tgf%KvRZ*hY%*7eBu8@Y{i)UVY=ftQGR;PDHckPWmuwMP30|FjQ&aG${l!!C`f
zQhy2)oLF5Y<`wdP(Iw8;IHE<Q7_NEfL1|JV3bC*;s=ude2L~Wq8iwM^S3v2{S2wSZ
zZ=`CI>hQ|fQQxKSG=yhihB}ix;e<!#1W_rMc%r&h%QxkBcYozodH0r{rDfl0|2cg%
zR3e^0`(jOK%{^M#2r_J`Bj?FF;=9}TOUnt}vTWLh_P4V?Fko-Bm%o+39O&MHNo@#U
zpSo~q?#g+TKhP$<GC2+CWPM|kB1a8oTM%yw%gIw--(uea7hhl9461AR4q|d>^_N#h
zyXs6WtyVdX1Q6U(MDXe&(>tBBfM?lpHW!6RN>FbjtD^>XGs?g2!iAX&moA>kUz|FB
za^n14{wNz@N!FE!SXcAjH9%<|+@n&$mKYFU2RL<2;tA=D9JNO2?UFS~^l_~6%)59_
zwZ&)N1*)CDo4*>Q0Zj)DY$DD@=|M3EK>kgi|0)vNLK;6)7cJih75KwO@;Qq}qx~J<
z+AFjDc6E38o5%C5aP|`jG~D!``7l}3a@RXdX&2Cy2gtHM&M{R>rD>k77g@A-$PG=S
z-JQwyk=#(TQ!#@h7LS51wD<&i&;jR=f&ML#c#~*6t(?lp#S97+mnJFT<Do@`k=Hp-
z+{AihZ9cInq~e6hfe4!=@J)pM<Vy{t=X02^Qt5IcE;la17eQ3u^rgP9e9L|Hv9vfh
z#Vm6sjmeBBHAZNoHxa=j)Yxh|mpxy?@0+{a%f6@4GpTohNF0V<mUjWP1n)}9>}awk
zN#VWq(Sgf`UcW;>A~{JWjmiZY*%YYR<Ak8}ESBTu*|hg-T&un7TK5fM4yV^T@9_d_
zH&vfyeWj)<DG${PY>*=|QuTlxX7jhCo3fD~w&VpnX<;)PoLJrT8A3>>c8bXef(R-c
zoAeTy1uA2#y!5+vu+;^a4uGJ#NoQTo*opdaZs4V|As*%iGHGSncQ}cII3^k0;+SOp
zdeSoRg3V`s%;Wb6>TxLLDP!Q8=H)-r+|Bfrd`RNc^`=hMMr}@^8-)hTySS<C;ravY
z>a!9kJb;*QCgV-}O-TH-xFXwmR?7MOH-X@Z5P;ww_lXq}++DH39ZtoRT|Re-|GehP
zw3@G!F#{$nacP^to(avUK{IDiV<*ky%@skpUtQivPNaq|YeR;0wC8PIKbvp~+(b*=
zVz&NDUaPG-fHHxcMGLbL;er^0lLNBmZK9^FAUM1%PAdlY1ccOD@Y~y6*jpg(V3x5_
z_q)Zo9EBn;tO7$HM^IJyuIJT{Dc*hn5iWD*nH)Ca2PT>6Z01_&Cq&MBG|Tth{`zvd
z|CjJnB65a$vb0-MfMl(Hlt=wWQC69NPA!uyC*7=j3Js@$dNsEEJinzJgkNNL?JYlm
zB4`S%Ad$ABAaLgwkpZd&o6BpIhN4|HhnByRUO)%lf?J0Ael=+_*V+<>TK#_Z93@wV
zm2KFmvZ#OB_uPKN%C`vq;5lI=(WFl)jsBgTCR5C6nn!K3bSxs3IKD0#2McOBOV&2p
z^Fv*4DH&7tz<n?C&eyL)0WT|Xd!T+Fw=EG-01hde$Ef|bPkGXF#lN&PUzzTc3H&5i
z-BG3{JQ9Th?s)d%)GTrCbVJV>wY%h-;9db`HC3GjHmB-@0suP7qLpZ~q2{0-#Lh>X
zwLKap9jt|`Tsl)~R*RRpR(}Oc|1@4EK-MdpswrK0yO;iPVqOjkfIxXbCDI9{pNAu&
zlosKXRcSO9u?Kb@l~Q#imPTnTHI76Plu?7MQ!8tW95|?8vv3>8PBb3qSlLXrKF3;P
zw6fxv?s&}jGL01#L`nYteC;W1<lf=e4ZZvDZytW$q4B}58TjLYx!gD94)@>I_vHuQ
zckr$QPxt;-&&PVk^?#*(0powDf1a+-h#p_mbHpx3hy!~iXi$o%0+*O8gW|=9bpqOu
zD261$DaTi;%RZZ-rHj<~L{h<BQktiu<@E?voJjlm)azYe2AFeI;aZ!rb+^~iC<dH?
zehN%RbWm+LiaZfp668BnEO2SiR;maLKJa6IazUmk2^3BMc3WtX25kR=3dwej9q#F9
zoJ_BbxSnv7q%8Hs_t(!h<Y;V=1RkXnv_woOfvEqYO$GrB3__^v6b+lTx=VL5)qzS!
zNg5hZ>iBQXRl4>gRQzN$)4pm6!f&giT&x6YA%Q8nMRF^dToFPLA1)GD#|mW^8Za3B
z06T_qYRxju1=hU<Q`-9JK5cPN&=#IZy`(+yIDK^R1NhZ|`u|mrp(B7p%D45@(J<Z~
z6W=z*Pe)x8hB(J{6`2?hQ0Pr65%esOQ<y=p>j8F|?a3}}6*5N9Pej5for8%KSg*LR
zoykl*LL*4JE+L8{q#&U5aS0N!B>MGxLdp)j+RZ9*h2UxF8*C)fK>7L^l^;=id9X~B
zQH&uZBF}@i#Dd?*EkeW+25`DnLa0luSl+@3c{h1M9tmn=r(L_}ORu6=&|cTwH$D2x
z^gXT7^xrB0(Pp7TO5p*DRZ;uxINfCVxMi3hp?QH_2}U-d-4p6L3W<>YRg8ejA{RZ$
z0!;Odo4CZ*Pdm{!)^`feC=+hbhjq<y>ezC`+*HZXJ#|!$?^jhTSY90XX<+k#r!5qk
zK?sO!1a8=Xro%G~x!N;oxRfqJSo61<*VXnhE<whT!LVof1^oxor$!LJB%Kk`f26JF
z6NutWeTuVcNPrTjA*1u5$AY{Frc*8sz9-7hP_4m56?v9n!H+SKXXas^@Ua1skUb2!
zft*UR<dSiWUAVXwaLrZ+U2oMD1EYT{fWDxDsmB{G4K6zH(oZg|d0WtF5Q)?W>nC$)
zSb;i(#?!EIAut6Xy$R72F3&CFM*;&8REG+4#Y6~|iOXkx*lS9}r=ReMi@Ohk{g&m!
z>GK6HPFN_^BFz)wdL4n{q_E<0IVI{MLY-y6DFvq>g39>QI4H%Ahn%?W87H=GHlmZ{
z%udG3ZqWPK(XJBKky0^#esg7IaYx5WT2eSPVETc=i>g**^N(C&8un1lq<#xtMipbq
z8w*5{JJ_c!!pW{ZIT0b%MW|JPS+?AIZ~X-D&z=?i2;i8w4B530StI+f6h|?>9C{?r
zv0-u}%0mc^vT{_Qj<guH9LdcOU&XMr@Lf=~5ljxp=6u9HA?^W{@`m&kFq0TWm9``0
zq51?1TxIewjVV4~I50WsIFp6H(-x2)d~vQ1>t<ZC+9T5$?*=)rK(pr-*1a1l1vcUS
zrEjut3e3}$HcMFyx_*$$n}JtLre<26<DK<!P!c_Lk~?l7aA6>WXc8%IyqYf}>98Mi
zM8a|gGZ_S6C{T(Q%Abb@rsYw#e!L4zE6tI0?vh-;73%)x^r^C_Z=y)OvEUS2qTCnO
zAI@D~k_yQ&2;psUxR7-U*`bdMsR%i$Uo5k-VOxa!xBa<hYTI`G@FW~9mUe<3v;Jyc
z`(1K*g)*d*aJdon*wAYdiotpZ*IXeenNAFG9GtDYF0T>U@Y*|Tk_cF|RPO$olL4}Y
z&GlMx$eyb|#8vmp2*K%cDTWaN9yI9PxN1m6A!UR;(+56;U~o{5O*e($nW%CW=)92W
z%Grprp@b1sV`)xMSZz*9b?1snC5(i<hhIr1Qm5YnP)<&|Mld%XOACG-4l^J~f&f2J
z|6=ZEOtRszGE9sx@uAP|2veR36`YUM9sGcC5vE6Y-t1jUl^yGzrMxe*7tSfpm(vtW
zSEXjU+Vh&OUkV@-DFsSddZDV0lt=3iau>5bv~++3!>xyuF>$j*(2)(xp$P|P$$}6s
zFe}jR?Fs-hmwJLGR)ODz^ZA*H*CaKwgpcg#r@rb#$Bx5a#QmT<=!F!aXzl7R?y6OT
zuHq_?Ies1Y!Zj5uJy3s@YKGsdADM!!0&oPX<%W>h!d^+PBI>Y3(=U2fISyd@Jt+!_
zQrDa%o4&f*#1`%P0u`j91atX~v6XyT!jne-_3S!TZTiK8h1FI+Gn~2^zv|tT=AWGB
zHCO<c{9mtbc?p<pqVDnz4(6f(>*2Ch5|2_TL{Ox{><7oIA0nmg#&*$#FASDNONK)w
zA$}HxKv~TK#8FAHnx5$xluC3W|L(sf!Ya>cVT)?hDhJ|nM7FV>j6A-vUg0KQFHY$p
zD56m=M`IYWL|i#cx6oAz18HP>u!5EX+uJ2$xqokPZy8qVL35WT&Odr(`rNr`0jQHi
zw3lD0Gp))PI?W`S3SDmz!g<=AQWf5)K?s8GWP(>4%&lmTYM;~wUoh~e13x?PZ3Alq
zrv_e}`-|K!=Ds7hG4wx%-aqs;LvI=?4;?=Isly*U{MN(a;aBA*bNBTBS^v-Ve|!HE
z{ipkn^!;VuFZF$A-)7(0zLy^S-v@u?;P;^9cj4eG4*cDLUqA2z2c9}Gd*E2_7kWR|
z`|jR)?_<3M@C2Xe`H`Nl?0J2U(bKR0w*KS#TlB|uTR)_IlKR6R9QyE~Z#=Yc=+!6-
zes=Ju2ft--dGN%@Z;rfYWP9W_BctdL{I}sB9sa7}Hw>G@xk4$U7$F?1$OZ$+hgZK0
z>j^JT7(a_hRyr`d!eK*d0SEB^N-P15A)E~ZY>9BA0{Lb|2zJT+E9Jl`neaDje<qer
z4DEdcpQTk+mV`<!1gBKmA(zEx+U20E{b^$9TCn)TX6=Z2qzz9c>f)3FEqF6IE#OOb
zwLeKL4H#R65441nDsk39y$Mk$8uWw^P)im)SNmgSNgdo^OG&g(s_jq^s8nEu^<wCM
z8A<hAtE~NzvJ8EQfg!eyiZFvgu*<i@w16f8Y?u|)1<IcG*~HR;C>hxUc(KX9D1z|Q
z`R<4X2<tX66g<tJQI<gzP^*!MSTW`Tq=qUT1!F6Ki`@=kC=IngY*-d!=u07~m3xnc
z^%L%X%yC}usTV0?XrE3jA*kk5DL4*~vgE*s>y`+caA=hfM{UKPsr`Yn^nFjLn+p!a
z*U+;1=nM<Dc}Q-?7#TxCWmEh8#InMJ69QF!<;nXzFIY(-NVjA7N@?==f%bcerD?#o
z?iXO6<)>3{;(NmATro+k2$OuSLi?YIr2+jcWaPXl&XAJ4O_;2qe78fB=K;s9seLN3
zEV9(du~CM_MZ-f2D?PO0xCxIR&BUSaX`fV<P^%R=D0t|?BuZQe$1S;fIUs*43LLBC
zXuq3SR;&;TcG!ZUk}grffKnK8Ve({hCs`m)p#6@r<oX$xq67mOs>GeF&j5u7ZXFS0
zTrNDU+W%0N6(~_dgn1#CmsbiitSf1F1Xphq8bsQLq5XDZ$t4@`A6KB3<)I=y;g=yv
zEyAo;DFt}MsHpw-#1aneh@0ix!GFx;0zcj3I?KY6S~5z=rfR>XEcwx}74v3bnT2?j
zv=6FaUcN=dL_weum1FI{DN6{HAsl8U3mZFk2bXIF4pu0bqjKmVasey+CzK_jiW%A_
z{PxIhurjIkK*ucaAVx@BsIG18zbZ>oI?pjZ^gMW|C6UO0iXGVu59Ur-$c3I<`?#`%
z&NXl<NK;hAhX^ye=aE)8+^12D;T(q1`8N|wH?kpvCutR30y0;26f3|k`Y6&{{MB-#
zeJrsoQaljK_E5ApDpaL}@|pC`Eu+Ly4oXE&`;CSrf^?{j1cB^gC~0}+R7t3|3448j
z8b_@C7iGyvL)peNph`>P772&0Md}1JD=hOukuY$z|Ew$}|BwxiR56yJ>?51+2|u~Z
ziW5C!Kwn~6#!vbIi-Xs}X0loM5D^254@{`J*_=gI-LEB<EMrzNi=4#)Wit0}2&XsH
z+&1eNhU}vDtBIw@Pav&yV2>6`X@0sx*%gXw*q#HttLthXRhAu;hP7W&mK_vuwT~#v
z4yvl!e^Qnm6g9P9R+b$U8ns_aEVGMo+Ak)S*)=ik7nEfOWh(9Gm1PGtBkkuB%j{~5
z_OlJk%tDFw%y3TYC!tq=p#!X-_U{tQf0pt2r!M2ev4&s|F45p*lK=~+Lrhfw0Amsv
zp!$Ji#{ZSKi7ZQG2DErwoDpsmFH#}UL4C*wLZf8U>ZoXcmsm0_i_{PYm;?kxyl#bJ
z5B%MfW8tc|NGG)aqb!keL2<EMD4Qa(fcy!P88{V^S6no{DRNxxZxc(RBbpIJekd5w
zOd$}&b;}U}Q#yelm0j&`l%*-^9mtxPCcogCkw)-1O^bYE8-*b!EZW-tPAnq=KF)2D
zE<!QrhzTy`DIgY7M8w0AqwcR0ODY!<g+Y7HVT0yO!GoBT1I(2NMR_eQYM)b<93~Kv
z1D%aL3B|~id{bEU(FcIK2)Zb=YW^y*EThwaObyw%Frjmul?crR1IdUAg<<NYj`o*{
zrDet(X?R$Um=e+f9P^x!P`Ok%^8?PriuM<YC3!uv&xN2uMu~71Ki!hB2(>Z7Fw!8?
z*8W^9JE;<C|FK~yx?Im%$J2f$vCJ-*X+NzjJE&o4{~@u=E+=U}r7Sxr;b=dZSY{VT
zv=1ki*#!vgCzNFeS-tk5#4<af*8aV+>>z8^J}81|<P2mkymH?lIYI!%BN!@ESU@w(
zK)u0ZtXa>=_k`dZMmAI+XdZER8-z_R;WulEAc?LdlVO40FP3asu$D!>6X6+Q0LvL=
z1}Gs>4k)2267j9{K4lq31YwAkxG~GU1Wpbg!KNqADWkPeE`_$IE6Je>F+O_8_yd-=
zXddw0i$uaU@@o##C0@lZ>!h6gbiX2sBoZGJs+BnOkx?MZf={k!kr*HsP||x7%M#&H
zi9nE!7(bmZrc1;^)`Y7eL?qMm^d4o23=r*L`claF;On>q;(3uEv511B&?2qTb!AB+
z5_`n}2@3Hxt_Zb&gqLPUOl0npx>R&6v82IWq32zpvp_H;KBR)C4LT%bD(D-KziMAl
zmgs8G52kLbo;-KMJ3>~<LWRQ)ojCC9So?p<l4)(4>8LK0MVN`oDM2tf9px^P3p6xn
zYiplR`u~5fjSLL04!vtAcX;K{uOAv5JT>rrxliP#`rqI8vwhDy_|$>VA1L;IbI;%Q
z*!nf?&oeUaf7)NJ>-9jU1);{I#gv`(&1}}9<`{|miE`QQ-shgyzJ4Jsk-?81(#Q!S
z1}Rs!D3q!C<b!pevXW|XSPtoZRz}%gici6c<mvzTV8t*Q78zgjHkngR@T}v|=3ZXv
znE^2lJ|i>BZDZV@YYy2ZeaSh9wNI>jOZh2y(Wb-dvi3)l9<yk0>BD5sEjE}@TE0sP
zzv-YYzRWm+0x5z?Z-af^U4IjEB0Y8J7aw*yNWd@BGebpSb@4_^i>CRZ>OHDatQ8nt
zLD5^ZX!hYd(chh}3>l!JW(pWbP=RXLy1~`+g8JhMl+q6{#z93gE90LLV1_)!O@H~B
zA8fh2_Ajt-O$h0v6_8xt{xHF}rWd%fxI}_IF08x@LP(-k?sWZ2Sh<!eh%%j*S!39<
zas>`ZC!FSJ(87MdsQ?mflpVL6h3dNaNr!{(0uxU)h5qqj=uzwVDZq}*E`dL?K=@=9
zK^kbIW`DmE_|gAOpC%W<bQ_!yP#BLl*uX~WZ;;OSQw+yA3{7R#R?d1g&xhQrISQD5
z!s^@YllEJD+Fz$vBh8j&palZNY1<aX`s;bWx2Z0iL!Tt8iqrmnZy`pIV2=PH(01OL
zC`cNwZmH|nxpq~UP+R(%%k|fB%}>iUJ5C4nr1op>v`9~les<y<^nBFjA#nC&V3ZQD
zTDb9gbtO+9k8VDrJL_xQD4alxH33PhuQA^1t#@Cx52I_<)pD6(_u9&4O@==NFfjx_
z9t;dD8-sRyW>M^sYP6O=A<X>qExw`UQ&!Jz*u>rw?JeojiC~R2%5970dG*&QE-xI`
z0~E<Ki*F|u<9I7SxeP^03xuxaQ(RSr2bnz%sQqesS%Dz)Xm_uMfqF=1>W{G~269!}
zPh^srWxf;gLV1CCVXSGOV)o~DPrFdvHK0m~(#^A=WEft$9z&mfRbUd)IGDhcT<A#s
z3eQ)s^L$TJ<;^Tao><>vK5GJcty;6|*YcqXVRpfg_CE~nNFOhcW^Ex_EtST1rqc_x
z>P9u8U>L7o&RxEqdvGA&`m)QP>G_?E-JfQN6LM4-fZ=7`5Jo+=+EFJNwMSdS995Gd
zt;6<o@1Mi0J-mHtR&g0=mvK5`8-<vzTF`*xPuAxKE?>~=hInH$yE02}wYtG$$)AG$
ze1q!tGe5}MS%ndnC=Xam*d&?AH06aDy9hA$eIMG+ak8RtVNoo2Zuwz5Fp3w{XH{GS
zuinGlMrPUgk;Ro2_9D2!7OJu4hbm}j+ljXdY_9Gs6_L~O)*#yDY-vEhlDP5i`Xz;{
z0~qrV&8EykwZIP1Zd$I+Z$>TrA#ESyyvjl#;_UGk%_pdTOL}by^biQd()dko9DYuS
z{{;8&;`*ZsvqLyIg$!qAWxSPlyTymKe%v7)_ovfqyOwgnj6=DyQH2)OTlQ{pY{+=i
ziTXvs?mP}ay_0hMEUvY1W^n^zS;T6ZA@{`U;)(|k9;3f>_29nq^8V)XvIN|4atI{{
za10@#09v%N6L~L&Nb=;TK(wbjw}Z(0#ylg2;1*kD3GS|6Ncdv}8AY<1)hoCp#40cW
z;g?%DKwCc*yytzO7FyK`nlGLhBPANtUywd$nZ{{6+7{4Ot$v>K;<buq1C7JX=0y4=
zo@D@THfSnYF_4-Ly(V-hqj_Ug@om8Q{EyAIkqXr@gi92__={jKYqG8+|Gz_jTpRw}
z@Z&=l4*%kzzd5uz_@2R|1BY^F`oE#?FZymf__YVVulGxPKGjpi?4SSX?g=n=e2rCg
zMELX2r_HVu&jK3HZ^*PXA?5}%>WxSQh-)OET|TXPYsoxG6C?IqXe>+cSXvBTTb2DW
zF^b_xxSxbadfmImdXYiu(fTH;R1#`Wpun72&u$O3LB;z-%`%l}QlJOT3na6_*;2yO
zOL`5L^Xg*PIRT(>nQ7Tri`E1()#`IzP)EfKFgJ(J!w4B?7S=BcYY}WfXEztTusLtn
z_VHfU;hAW8>3THZ;&8Ojr4FYSz_$X|2h`+YbaOm`8A*`3{qi~rW!sa&SM*TD$S&pY
zayl)X@T?Y4q~h&;$P@6^3Qvp!g8wE2{jIVP<n(sb^a?XfSDlrhZXNMS!l}-u_9Z+s
z)X@GYTz|zRJiCTN15HBny6no#Kat!cqlK<modim@0-v{tAjD8hshCC%Kfk`tE_$>F
ziUNTJWcD%s!6^z#N@+>%)>KaWnD*6wKcWIo;jNksV6RstTvQoLPyLD9<$LrRX<bF2
zl^HFVIUz!;Hskx`&%|qOHJ;O+><fNG%gWSu)E#atfcsS9r9dYWZKOBW(K@TI$PRy?
z6W~;`!&72`Jt9%CNj-wLCcB=AsoG-oc)oHAih<+#(^KcCFVCiw$BH2*|7e3(0LKSE
zd$jt}u3ZCJ^D6L^aj%wS&o8Q@V0OPM{7uj|$i#cK!m#r#33S`%dt<$eoc+v6bHh6!
zi1z-}Bj5)GtSTgc!p0-`-!#{=>LN>acT#}q0A$wgVfQa)P*<A(z?r`^HH-4VmAMO-
zrt`DYlhfy>g?R*?#qJ*}1;H8<SMXbHsQC2Z`U;nQum`QhhnXhLM7%wV*5YhBFLk|2
zbgrBYXH|k~Rs)jyx0YJwAEZ2-`o#{yQtBuhp2T-;f;{4k@2M~2j9(-bg9|i>Gog6x
zbhZNcmGS}XG7OrlB7$<k@v^9}sp&2sW_qa-Va8yqApr1Q-(!CWcoXhg$P0~iw~W=M
z@T&-AH9V&KANFg)YP`5syUJGe#+Q)W<H^HKxxNndo63*0I*MX<>046a=>U8<<9Vyi
zvs3=0^0Zx3n)?Up?@f0JlNF4LI3|c(6??q8E<$1ld*Cp%0I_7^8YgPCEhXo02B`;i
zHcoDF%Ha%gCXxj`MoA2e_6aheTK<(FpHpSu{40AtoBnO+iBT47^dY)fXxAZ0+oCYP
zI#0aaAo%R7FRFqs)21}}GU1kKdACVal77-*!8c4FrA+C#&Nu-GP;|+6&(#-rmiPC7
z&K?6Hk%{NrK%y>6mNnxEGJ1lzi%4ZDF5wO^+pX0y{gLdUvS$TsGwJEASDbM*HmeTL
z-uk>8o~+LTx04AvJ;iMKs@Ht3$)ESmo+8VwmIq-sT_lD-ME+6x`t-5JwZ#=E^x2be
zN%2^>57%RS$h{&UaMlU3A+7DF=P2T`>q|)>yoFTB;xd5ke2Zj2s{&&lt`7y6zsP*7
z*O1UU%80mSsKotP{#-N<#}XW_Qj;b?hW=bwQ$@cqq3(&cU^$%f=GkBBh49n1@}h2$
zF7rug(c~vK75O8wXv!hqm*1IrJ0>BU3@J3)SIID4xamXAqL$h1^++ZBR4&Kp&1V94
zPr-wgpEx}+eSUPbSwCz2lmKTB-^ISYj=xA>(v7Q3-`B<y9wGIX`s*QY>3${iAhVrW
zAmR2icE+1$_2)0I`yyAVk{JNiz-&oo8k|_oR7SNs&TY<zsD-TH@Dqg}BAuzZOVh96
zgOiEQ&#k6}y|p#r!D^WeevWTyi3QI<SdBI1HK^%Wu#*4Zsl7!T{;8pl42>Ut@1ai~
znjL)4z>nqrAa_^)bYFPzR}cKbf%|*6dj4(C3-wbN{$u@9cee*AA?pa^Jm>-sW+pi*
zK)Ei6WI!VoM)M119Kpd3{?_$;nHJ&cy>{`2^jO%KTl^`l%+Eqr%M-)x#<V({u|fwl
z@rL`%+vVT=&q=bH1x7K;7IQ8V!KFdl#cdH0dr|HzWE!sJfU*T;0>&FanCA%%A|Nsl
zvw|~&UnH!w^s?bm^ZYGh2HBKz%}U+m=4!M^J76U#2W)VAM=QiZw(1~^mPK!Va&es%
z2s<_4ZDtM>bytA`G!^tNi*<{17ICH`$;6gcTlenm+yLFt`rY~wyAx>8RER9<daXH@
z+xUPvP+o?Jeaus*YabfFG&e)y3NJ~^6k~p3p}IAmZeIG;i%XFs(b~FFX_3Qgd>d^q
zguOYutWK~<ClCWk;;mCiNPCMs%hpl5v?w~GqRn&>wH{d6#}(n#t(Q#=qT3b5@>}PO
zU%B0vySyka=;2O4Qo9d|$x*WQWd0K=!ri28>Uyt;H}6UnCJDG`C(yWD5@i_LBT0kj
z!R>>&%TGudYqHV-P)qI3<cYUF=(b1OE_~Dh#}cg|Lj)XdL9V_gXA!z*%n-t>)h<*R
zZHw&ImLyeUoxsO-KW(zuOPdITlg6He%3OrmNMxPek3F3WBs`M+no?$=>$VuMH#l1p
zMm)v(fX4Oa${IcjvKzuPw4uAs!d4n3cC;Cn6E4f!wh`Kbpq=i|SSRSWS;B**t^CE!
zwY9A#%&GNLBF)|O{QDlapG<cw+!5ZYX^m5kf-qY8)!w$qY&{_an+~wIOrYKFr@u4)
z&JcNRGg8tn$rF_zR3)}ea!rthXoEBqr<-r!(uJ9c(Vh1YaFIfVn}=BhdAsgdG>N6;
zjfKK6+2jp4vyH%3!Y~QYH5((iJElmd)>E}wZUg>?-DFA$eF6boS}n;hJoCM<ubq14
z!y-VozS{K~T84ml^=7rq2)?vg)C-&0Mw^Qo#MnS^7U**(it$$6CPfS{wMTDWTDyR{
zNPt`WOL#F`<)kQI?)h38gm#eBOWdjE-Gy2YZ9#VEICaFutBo5vT}Rgo&J6t5LzPN4
z*m7nw<bv}@QD9~=vw0{NgqTVxJ|&fj)S=BRhHZgH_IY85j1)&Xj1~J%X)md{Y|;%f
zi?(w1_4=0*yWW+%7q;3;2WZgtb(ZjT;l@;LVul>ULnN0!Um&m%hTv7EMAt`~fo!_F
zjzehC0OCOrC_tELpfDHa&Rh`kviy~4h)~u4PUTMleUWUb!8<ZLIjT;guJVf7f=AV4
zF=)H>m)B7PLmuOhe&lSW19+<(J+Kx+y){Sj+AK%3e=gJtonRq$=+ik|5a_wCSd*!p
zhSYZ;wIRg^o+Hu8VExTPYXzCQ-N|6Y4CLRm99k-ijZesQc9W;?>v`*`=MAOV4w3q}
zzleTogP>r#{v=D^R)U(HOkeEecKMXggl|vDtiix`g~&-1RPehh^(ixfS5~Rd#1(nW
z)bDGHvS=D#Pz;&ApMN0T&6z2sf@naU#F)hTJUpsM>TIOQr{Vg|22Z^RePqsuwDZw7
zOXcmKXYthQdisE=<pDB6f+?ADmws4|sDdc@DadOo9n7IjFT;v*t=iP@ZhRn>hfWsZ
zi_%NE3g-dor|XWZ>{hw$)%p!ywZg$YSh2E4UD{oPV&jwfdgRhS^=03s<kU*VvHgid
zp$aY;35hjuxGS@B6C&pYmbID3raV`Q)2dMcrIAQMq5D85Vb?`o3I3oK<lpwI>(>V^
zfBC%<*F9M2U}UHLjvMXB0tJqBP7oFSC-gB$(Fhem6V8Z7q=+u9N&*_Fh!bQVBzpOy
zNJTW${Y90kOXZ)#6g4xUb(5%2Chvvb;8m@^y+BcBl`qRX1@|R~dK$1u!Veh`9GFtJ
zxx{8(T;C*w%qM@R`zOfZ4rvL#@Y-UlPfhawiZ=ZD;j2Smd-z?4zIO0K10NkQbMNSX
zN8j)EebK?01K-&DXT6X2e82v2?c-V{P5<jJ+D6t2Vt16$3}&W<e;RT^Pv(Nl3`6-)
zv@qfB*~KvQnW8QVW@mCi-u_Be$luzz#ah22Y<`_=1^wQ1FVJ4Xg+@y)(b$`}kFXV9
z+XI*BtQ&eJvl?*$svYLCB4&aa>1He=3``67r0*N;2|0~-&Wt20%ySa0Q3Ol~8);@m
zD<M3N=e^o`-hwT-V3K|3RU#mHN&Z>YQ+i)_%fFtw#}0xW$#d9Tg8E9+_T9aV`q}Ll
z=Po~$dknQ72JH>s5^92?Lp=gUFs66$+CJh8794Puvb#gEzQbo3H>7<UoRy_k!b;(o
z;a~3d*f|6Q5|!b+LtX}6Kfguwfo9)xQ^Nt-yBI-H*(y3FUe?}57)#)f&~UgR6F)Iz
z2UcV-w`}qYFA#n<fQJ#xY(RkR_I*CdeqC#vS3<9_m!veMqq%ZnE`O!xLtO{a-aOPC
zqy%aeDvF>e$(s*vBbfD4zz6z~F@|}d=yPStok>DQvxN}AaUpFWBQgU>24cS{vD@4r
z&CiGkc2`jLiwJI}8-oh*3VeRZja{Q2E2-GM+h}FYi@#)Wy=a*xj0+YcTU6PY6bHHK
zLOx--F?@SAIuh;AF`YZ9K-9|)NjS1oKJ3DkuAdrN)EaR#XuPc!G`F*jf)>Rcn8@K*
z@fgTrFe+j=lQGPq5E#mHvsk)TnR&H%r&gU@Yoh>5Q3>sNDlRGeu;L`%pni{AKU$_#
zQ=*(ua-@o8a5$xc0~05^*oajnsoHYsv)gxb>Gw-rYQlvZFz}g5t(XvAlw8K={R)Gx
zrojLybFvYWc2XuuWHQ%)lID-vl5R|a*#K$F;E)tJXN4^if5~stWaHE#<WqZ#o7okV
zXKkr~iX(BN=A+br#~bfP1+<lIQPomf0}r|tC`3@EE0`gq4R9#Qa2->+IC+RIB4$`4
zBY6`kB!H#{_<zK~CC!)_J%z{(Q6dK{fDy~QMG2+rwRA0_7UCfsygW{+o!({jhFb9M
zwy0-~u;PP<Tqkyzrh(eRFEivvo0<j2kq|HdYdV3*qS<KyUrLfFWYV}4Oikm{x#~Q<
zk~}HJaWH%Nnai_NmuF}ko^NR!g5pslOI@rZ8MH|h&Bl50N?9q{t#95&3~QSscHr?z
z*9psTIN<RZYnCbJQla8RHasQt?u1?i?veKG3jOUO{G+6?;H?njafO<BFZoa&XH;<;
ztklypP`}fc5Gt$Jkk~;2KXraq7~uKe4B^B2wM2rNbCJ~oy;Vb-glrq6YR@BGzc|6-
znoJo<+8)-Rh2$Lu4OsbY@Gwen-E)N7cgv8oFs}?Z9M02(u+BDJ$Ysfai=i9AtpT?h
zWQ{Gsb>jovW@%U9dH>GyFQkqWb(kgTi7&1ZEFp1m-P<a}tSCwEUa)<;0^@@ep5UsG
zorszKM85$41c`_j#kAm{F9~heGbuJqa8LtbT_);j*2Y^tq`<aY$!0&Nu6;PYxI}eW
zQW5fyTCFhet$-I)9rA^3^s*B0&IDxnNFfSGkfkV<W!T+;zatD8e}#<8wVjZ_brDvn
z4VsO+Vq2i8E#q0BgIj}K8j0%Rq!hy?#rZ3eX%{z;)miZt19SpJ9Y(Z$^Kv>HptMg+
zcD*_huattw$#oV)*hTH^nQc+sQj=&?E_1b^Yubg_hnlAZ4H5&%(2$hf2u34F2|}w8
z6EwXN<-m&+SvHkm!o+AyEo5zUl^wE-46>^4(nqC0)v{xxk4mb(Q*!M3cE|!2qD`jI
zHeh4}|J6ELw|&p{2)q5|xeEh<BXqqE+(X1`+*Qc|Ey={bS13j{oiR9%BGXDeOap=Z
ztP+h=Hv-06gn9hL;yjLR1z{dl0`iy)^3WTMH<w{v3#2Bx0Q-#`n==t$0j~fZvLyV{
zo0j<)3<01tqGBp3^qv<tc1t<7Ydb=CpI&PR;VqccRmQGc9**p~$G3-h+n00Ti_kiD
z7~G|=2H~0-R1X-3hSu1FHODiA7$>&cI&5U71eSput~Z2XS-RrOdDWy)4*?7$snNVI
zVLuQR(o8Xt)0YRpf21@yCII>N;$^d9slf8xsF#QY!}`{0rP7kKyncI#Tbz{O>`~V?
z84L~rD9d2|VL@|u0YSULv~b8&o=kzad;41=zh+4uX;pIiChdtGg<wvH{Dn&=re`I=
z6i^cP4%nW>**(ZkO<!$LODAU~5MH8-cvIB23PhgEp4zV?+lQfg?m;Qea2atI-U*>5
zVs)38jIWrGkvfKWOwo{w{gcsJ#8Hr!Vpz+7MeD~3Qq&x`-QTBwD0Q0z9m`vmJ5D)?
zdsXi8>Fq;m$MM7=d@Gs;1W1rdk-9=Z&DDjhu_!b{M%rLhGj^S?f&-wcEn$tEuna6C
z9NDPY&v*#?QB2{Hw>JN$C+BGRpUj`<e?sv$HJ6_Rf;X1GG<Q5Nx(AK622o+0Y(~zt
zg*@bhyqN{$+t{ATN!hjQ@reWi?<#c$kKw090jvP69fXtTV$TP({rUCw=l|QED=_y+
zF5myx{U7OnXa9}<^Zj4c_ka3+t?&E$-rRSo@94q*cknk3{?NfMJ9y>b@q;}F{_BDF
z9{7p_uRBmY(AWFld*9dlFM7YEx70h>^SeDCxE23j&#?Y``iJzlCA@!ntbg%vPQP9I
z!?Yfe^<S(%3cD99WgHD*=-^n(xKrq;;ID`vtT$j@@G6cT33mbvB#=(P@c?ZgYXQtS
zu@>}YUa8_czU4X$jO!ua^JY+i6;POcJv#e*Pw)!TUl7s-%q)kgVq5ps_k>Cn`V{h1
zVb+5v19}ID=?iArfdVW*a3wD4-mt0P7vSE^7y>*CdJKGjnZr!D)&djOF?iu3(g*#G
z>U%;(<3YO*BP-l?u<5`kBODL#@Ht2i!xQ6{^fxptZHTrY#R)v&;UEizJrvqH_$vb6
z2}Ignf4#Ca{W4S)uxo@a#T-9??2DV{C^cXShP4xIDE)PbrDaD&Xr#fd<A&vo@*sI3
z-muCR30nkzn*Q41AJyj2b})n=185d`JN#hOVuV(kU_63l$A{%N(C6fP`Y{AMu{=d6
z%}6gCkvov^f~22}xeWbmQJ+<oB_2j7yv4S#?L=In8$g<88F20vp<VW^NI#KSx-j`b
zU?ZeB+z~;u?-vOj0h7Zn0xO8`=o5)0v#Y)>#Pjkt@w1YFLPl5gY`+*oVN$mAab+na
zMut!W!I20H2&>BTK)=KJ<M_}6Ifz;44=0w?Sc;^uaU`_Q(8+U71#ZEJogysaaN-1p
z{%U0@nPG(x*ARvjBnzO5_MrlaOvv4RBMKnk)gMxpaK5=^T&D%A2>z2^p>L32!VXu4
z{4Iv$-`Br5u{4C&2vsuHjZnAo(0$?MbA4V?F?1q7)E^W}FQ#tia__8d)@Ohdgk^~L
z3it!Yy$X~{75!C-CG;=2XvNLQ9Z^+6stN+6kgJ8!iOPYayUG%d6xZS2P41Gn$x$X-
zumIT;>jA1n9=%>smO+GcYDg{?2>%MKgPeD)R5;;SeMO4`V?}qAr60os4^0XWg|Y>#
z<P;lW_ce>6mu?}hRt)rVVi|$%rqBl)zPu<QA*9wpl~VX}840HDqT7ijyN{R5Q<4HE
z{8FssfK6?L@LMoY5m}~QYFL&WFg`qaNyW%WgrvnP6j7Uo8woI(6X}++^r)`{^5h}N
zll2Lyqg93p6FP9ya|1JWL)}a)c@S*g0*qGt^m35}Cp#{*`7QTK!d=u2Wk~`QdAuX&
zGkHh6Y|bbMb#2N=uxCbPiX(b4wd8?#!Vio&m&QBdDOe6%-!2=c7~A?-VhO*Dk7Yz$
zCEt_EV9X-5DF*RQVBd;;eKfIT*_qT~44AX96kaGH-+@CJ(s1-qxOBasEb*%z2;BlY
zY_RRXvnj-eltS2Sjx0I;u6|ruI%ep5Md%707*b1Adq`8^$f1L8x*kk~@{S%*mbT5y
z6n;!YxO|`pgeeH#9k4;7=jgEMO#PM0vJ}FKXok>_!EXgw4o{xm017JTvEwj#5RQIK
zS>gboJBP<e=y7<coCpEG@O*^*UQ)SGKdLP8ico0<1YnYWdc0T9mqL`yf(;?Tg#1gt
zKe2=rqr$Nf7lp(%LI9Tyg;xwrrxcZaPLoi-FR>)9DC4+eN7j<W4}Qhv?10Y_wcN7J
ze5C#gWoeMdMC^&UL_rC1RNj#&tHgGQ_M<7>;*S1B4NGVwa7okz*t>|Fa5BMw8khlM
z2Ee;YrHcOY#L|Gblo}2p7k5;|+4}&yVQwtLqZ%7VSPu1<DNA`5$RM!eO87cTC2%A0
za&4%T(C2~3%=Pt`iX|_Ek~r=KH4%0kyC2>%yfc@;xe4En?-cdCvgEwM^;=MMN==?W
z@!lyzBK!lXsmbwCcJzA_%k1WY{*uHpyUwp4Ni4HV;`)md%j{ya{vu`BL3LMuVPctG
zc-8MwmK~Ho^%p414yuj%-O93q0-pYSW!XWwOutJk*-->hVFi~ZY`c=Evanh6Fnl5U
z3+<}u=;xIszF21K3+T(S>Oy$s@rP^y-)9XF1r>{~K9g8RrHV({DlFqV;n@`!C1-I7
z;;@MGunb+8elD@ZpTI}PK9f~f4k2yEBe0JE8+rVEmXm%~S;E&HQ4uJFE^PojAwS*0
zHL^`?4&x$CtFrz`!xG=mN=EzzzhqF;fyAF95!SL2oo6!$Lw!22L}`U%pY<y=zpPv$
z5^gY#g}T>+585^LGl?Y(dPRJp#ev07hX4`v1t{DJO36CmjkX>Aw6b*UkX9Oc2Ykr$
zB*tQwO6{w{AxWW?fJ;B6EO|H<oM&+PLBd995O3qLm7#T}E?Bfp?o6Ljme95qfrLT0
zijV??z_KlQN=^~dSA$Te;#&I2#IlH2rcK1L%YH8r3sSu%EP)NzfzB3^;<7#|mYvij
z^*a;G?DCy{N5e9+q^94lEITN0>9-}8+2tYqdCIbbx{E%NSY{U?^x?!ZJD1molw}8b
zv3@wQ%+6NzLk-JJFtt8N{`5*Htjio8>>i&(i^Gm6h%=MWlAt>@Og6Z!2kLuv0CCm_
z63c()6#S>mDVX&Ce@Gj-Jp41mFB=LEKYHle;ExP^HuwAe-_!SdeX|F>1HW+K&R(zQ
znVy&FRqcne^6Y=Suh%EGP0C~aq6AA)mK|KrMc$g~s+rPN+Yg4E)`HU(_E8o(ZjSiv
zSavhb5IC~^%-e;VMmlp5^9U^}D=FoIY07-3aJ{MK!PquB<c?my2bvK=yv(@&92M$3
z!%5WAgs29g?&&L2P5!TazpN0uyATxnb`*A4QK*c8`3^Qws9p5|%`LQGZ0bk0i@D2V
zI&ijW0`koK<5F}3kc#k&fos`Z-DpwS-t(nrm59<mnpW-v@G!r?EZ}lP;aVmX10ZRr
zqK9hq^o85#fWzbm=6O=CFe~qAlH0V@6`LRK9pyd07{Pr=A@4?&G3rYU^UE~DiuQNu
z1u9MC8jM0U+K)HE`tTI1D+vN%Y#Z(GdT;I(w6i&xGjpx9Qr@WQHybLA9;7s~FVq%+
zG_b0V$|96We8rGdE|;WOt(vOox9OnZ9xkpg8D>i%dThG@ctn9MAV$p0`P%Ey4LS$V
zAONOB1y%q|c?Nb1_Rb)VEaZuky&vnkh)La&_D{OEP{x7bO09wCZ=?QwuTt!TF)=&)
zJij=<uyGw3>n196=OfyMjwtn2I)Wi--<z(274HTkmaWhgL0qhEi=_8}RP{-?va{Xx
zr#UgdzPPr=lv%kn2DgH=%M(a=GS3a{{diu{Thh~6UYy@tP6pCQ%}Z*&c$Ni059>Tl
z59Wy|A%iB68Zsn6%XzpqX>zVA$ePeZP|WWBjU<dpbmkz5QtF%aq3u^n*LF!ia)H1&
zGijftoen&uW%?lbVDB*InJBE%d4Jt?Syg8G*l9P^#6z@<A=0#E;z-CIRp;TsZN#?g
zy0C1Fk$q<t2hzQ>gN8Z-v<G0Lw1+7A1G`*C%TA{Gj+&!Dp^Bp5E9kFdD8e@si4tt&
zb08_ZDq~o#-Q14buii$N`^#S;E6Dabs93bGpf)vA6kkwhg=%H=<mfT<DuE};EK8n6
zK#L)NRY=&FfnJ<XKm#TT`v2G7*$2sy*7tpT^|q^5$lZmPvtW(`PC}a1yuX~#-M(lg
zt+bN%c2_SK;EtZ2?%mPO&g{*Lq>&BB_FzmB5(neh*hwH@j14g{aSVwaj6)6xhE!6-
zRZih@{((wW-YO|4Day$oseFFVGd<liJG!1ZAWm$_XCci#tL=XJ>F4>qd|%L1XT|k(
zhox0<jB{1kgmfl+{G)0z&CIXPFJHmOXmz0@mMA(lT$U{-@pWl}oS$F5Jac7XZl=@m
zK!}R&nq|_P1Gy}&&xn3i>>c*bb76#3rSVp!EeWtlQQ3G0UBkuVo3{Aeq_uz|eP|_T
z#{wW6;QSQ}XCA$38FKu<vO8<*-noE1m%yuwKu>2EMkH9_<+Wf4{DvRB$`j3T)ov4A
z5y*pd^P(Nnt87FwE{5Nrcp!D)@E2aB`awt?9bqfKL8|4%M(L0?NP5>qVvm=Zhgs65
zVsow-b)S%T0dz%p{Y<|LUZ4l`2rE=z9kNWXvRev)POUr`3i|V&e!p&*3Wxy(fLDZH
zAOa;=04;2`%z!uA4foC5##_Y0b&iZHw7A!G4U`usNVY#2IR_AgML9UaeTJqV)Y3KB
zj~E0|yv(PE2yKyxU_X;RO`hX`;8s1FCc=XPEG$j~0;<S;%4X{xaUbWrTaYJ|<kmu~
zk-^<cf-51`_|HrBox72AS1$NT0ocyLb0Q4n(aoXgNRM@<ej3<D$61z_ls!qF@Y&`T
z=K$kQt8c;82cTbv3BO|Bh0`FRiD=$=oA&HnRMxEb*H>VzD*6(*!SyWKC*3#kv|pze
zZ9Kf}8k`cj+YbGL`}N3SobSnuAoDvhmI9g25Fc|xi!*GlNW6@Gl*=iqh!<j{tu{{)
zUwYJiOi>EOMw)6`Xel_Ti<9U&NC!XNd9ve3c$G{C<y_gi;kE%DB2KX@V;}O4c|@Uz
z*N~h+rV!YZ5CPQT{wg=3B0u0*>0#>6vykBN5wA7;YwLcb@U?xJ(_mD=C%ns&IlEK3
zwLuE7>76&*PoMyCt;+Kj^mTZldobqkg6XN2+~7c7XI8q9L;SNw#TagsYK0aIR!&85
zAA*xq8>;00kC4_MdG+B-hdy)gj}D$Z@V@=OxBuzMPfz^O#OZyTd%w5$p*_cUr*@Uc
z|MhsrxcsMA0RXyu-V?#SM7=q*lp4^x^<&Gxhdk`$P!YcIUhiQGyAYvu$fM-TMJ*u<
zQEfvwEpo)#F23RT3jkeC7lx?edU1w+;eC|S)lwPq+~yX$I(m5x0b_x&1zzrxLfFV4
zC=$1!<mrIsU?@mz;bj3EX1qRlz}sHADonjq0WbO6n)ic;$PSg*w%Ef?V?BwmoVwB1
zx_FSo#M@^a&C{s~EkXAR(fbPOy`S?$dd15IzI$DrS-Y$x7`6z_rf;#Achs@}qI*{9
z{jnina1&nip1ECPx)(Xg2snL3n4XU*sX&2%_fvj3Y5#rRIw?0R=0>drYYuU>W=$Bz
zf?+$0(%-cg$D0(e=$D7q*k{f922>MGqb~sRtX5U5a))9PLAMVG?`NOx$`j7CB5Pvu
zZpjHKXttBGVnBHLGNhCWL`#Bm9@@shbAFR;5{44xp=#4lNVZ>aXF1~c$a!`eBw{EG
zqyJDRA-!HIsPlU&0`78&hsP;Skd@aO76Hg*Cj<j{rzrJHGgnq-z)Q`2_kEwdzA($m
z<`43hbIgZ_Pv)(7p(7hNI#KF2>ctgdc-N<efLa&0sT_ljE3V{sq$+X>PpeQwN$(-9
z<CvVB*B&0PbP9zjyG}&YwBT(r0eHN!j=`OmP5clfg7N6OqJF1>8b8d@kxR7qz25bm
zkx%`?R<pD=ZPo<*sMF;|7yI(<<MMbf7eviH1QA1`Ak;PV`E2f_PU&O`#zG0isKAS>
z*7}rC*_5PkJ)(8r2xXLRPFiA^*##)pz(`RVwbnOBz5zLb8)W}>L#dZlV80S^^Y5{A
z)n>KV#rFJB(N)CoB^<W10$`X_-!HOuK6o;cMBL5u_87P|8BuQs*s`FyO+#3;E7j;0
zI)Ca)F1p&{JP#QGm(@^QkQaKhu-77ITNMDfE#?XgvPHZNbhq5JnQoB3tq3aW_e89U
zvx!$Bo=R?RMxYdK^0LLH@^%V&&Tav&HNpV^puT8w2QW^ddIgf0qb}CxaGR*RUMdWM
zUGht;J`UdhZ1}S4?|YLhD);jAg(%D!5UjkFDo%C#oQs$FWn=q{oCHHardC?$aS(V~
zrW~wD?$)bJ<yoptEq-s*eb#Q+NOfLtKF8Dj#tMVi&1bz^GRv)coxTP8ZY{9mKH{F9
zpuE{Mjy?knJQUG2TP?6$h*1JDuJ@4w&B~=^`zR6J7QwuCF{F8FPS<V|ZSyK4tQ(wT
ziFo$9Pj(m@psd0HWF5A%uk6+NU|9OI(e$qER<)JSz*1@!3cAjobj5D`knCDOHNz2V
zz5BDK{Yoipb-iYy79<kI;EX7k=`73JwN-(O?;Tw-Q`a*Z0z<A&S1Y&gsV(7{i^2E_
zWBZLr;+sRj<@&taeU@O~7l@@sGj%so-qdPum`qAD%cGiKE=S-=H|tIDahNutfW7`H
zhR!Tva>BLl8~|~!t*}FWSX12Mt$|C(o}l2}3vPz%-823I79i#jut8O2>BL(L#6Bh7
z{y}}iK~)vw--l~{NJRy?6aD+(h^r1y!4VY&d%D1GUor{5G_~gqZrUSUXOTJyMK=EM
z3D;wv>#mT^mVb5KtasK;G2O<*W$AR`mmY?w^v<AencX8DQ?%ry(u`{!!Lig7d`(qp
z*OK|il_09eJ5GT4rR8P5GRAQO+TcACvI(RG^+ImAN$#R4ao%a}A{6a8heDrOtm1Sa
zgh9J*)@=S1T>6n?2o0dS&yX@JT}OFphXL#tk7xNz0^X92e~9a5wm5RCguD%U9pwJd
ztsE>hq|w9q&QWK4e&i^L-3PT^x`wQsvQJr+{Qse`KN&l+aro|`&mR2agXse|_W$PO
zcP9SB#La!by>EQ)84v)!vwM8k-tk8m_Gji7WGg(Q+-oX_0azUhc@I8NrJ5rJDrvSg
z;mbC7;&NcX9!X^6z~FiI^+Y-ijgy^0XlI-y3!1-zh|anB#f6)wUaL+_9oa0xxU%g~
z@aeYegtSzn4$a!K=-6Q@g%kvTDi<jX@Mk)EP+CS_6e_VRlBgCr;HSxeH>&C#*mR#&
zJxdYnLL(s*<=;CwizR4evcr4TN=3O(=}lfb!n#_ia|4ywso6^cHA*H@Q@rsD)GVN&
zURjx6zCI&r)m>qXlL#OS1vk(wnySp7>+;J&`$K#)1zO07cPjo{uzlCXz{(|%oqT@Y
zirWRivN&ZXLEM5x!)!APW)O%mRDrae0vg<V!vl%7WP08DvzNpoeJ+ok68^&3`Gv^R
z_1Q&QVDl95Y1Y)cj~fD7MTDMpYl59t$^g`KoElWksj)AQ{G3GxKv~_;_Z2xsiV|hI
zLppHEx;I3KFimd^&-;u}2tY+D4nP4W1Q<%RisK0jZ&D0K%>|JVhC4@>65Tk}-awB!
zQXub8h=h1dPB_%9(8}68Zjl8hf#id#p=5b`YHq#OeO5yhpElUA8ZEYHh{t3eP@{1I
zx)((}U#-)Ki!WAmd|OJ>TszbhxCW*J9zT_UJC}o7BL2onD+8h$5Bgce5XcNMNMIjr
z)guA?NB@^Zg``)ja&Y9{wR5~juZoA*Ky*yB$7;=1Llu2)y4N^Qo|UB)w}fGi7zd<n
zVOFGo*+WwWItnbGI+_h9qK{)X=&%^HvVdKC9p}~M$PzLZ!r)c}ZeebpimXKDgoMx9
z=e;whjNHhJs9vBNgybDb?HU1=ZYg4!wf)fe30jK7aD0YtDK4-ru)sPlM5M53&nstq
zf8W=<C}N1!1a}=Ek-`xL(%6)XVHQSlJfJhf(2w-H@3*LyaNSh3EVI1TtjWfQI8u`C
zFPFWukTv?WQ>(9RsF<7sC$ML|-o;GoaeNGnqw|n+3M?cPbMqE}Vf>1LD+|#ELJuU_
zWIB}%^3VfXW1|z%-{VDrgcO@q)Z;|j5=>SPnHdnsGZWWdBYNC(1-4L%ofgs;f@Vg$
z1(G~`i)@^Omn<S}+xZnS81>5n>aS#~JCxbFNh(K%=j=4rEeNo<%|a8kure;EeHT=A
zm)PPBdCX}nsMEY`5`BTxhNGk$<Keg!EeLxScv+{9UF((PRM-X!A}z;RA1ET(;k@hO
zqi!y;ShO<t$%v<yMV%5NrzAiCDC8VN%baGG$~zjZEqnB1oUNRau*gyBf|GhTZ@5@(
zp+^Z}`b@!sH<z=)(%Ux3pahf)VIV~@mbD?i0;`YNFJs7XL3EU7tHqWaLT2QK^k}Cd
zkz)|V6&7Yej1SoQBGR2crkn;uASfjVzz^Wmz+<#4W?CF*DalfLLqI{@+8bT0y2zQ)
z1DYF#dT_B>k(i;-iYSbiU*qrl0t*g9<$yu%AoCR8#G_8%hjWQ~5pkM{t5yJ~@R!`n
z%zj>Gf4(pT=iy~${~T>VuD)*HZPMpgn{VXUW@qZDimRztGoKfOnw<Q`pMJo}@3gug
z<Fo(Vo8D9waBTnT0p#4piEGxx9r9|#6+&qmh%mCel~KT;bULWeJ!Ip8@Iv`R^4s7%
z+Ea`W!H8*IGAhDcyEI|a?j@cK5d*Pp!3<}P^oDw?C5nye<t5%nRwL<UZ>&`LoJj9Y
z2>Y@L2_UFaX}xLuk4N6}wT?|XJ?)^S!M>>Dw2SUVE<CNzsUe6gy%)}=O`5{lABf9?
zD1tc(eCSDwFhVdqm#lUfkdsu@o3(o*--^N}igB6pz~Y9gE!||Ox(nQmO0(w*qQVnG
zw&}f_>(rvnx~FXet1_F{=|vY78OefjQ?a(-%}60oCsjg)p1lwn7M{<HQu2%-_&_i9
zj_h%3D!QE-`}oNBOKIyK8Fph`q#}_j4DJc9b}vvX72Dn!tV=>kLmly&K#V%7oQ*Gi
zAb}5<4&?#7-YngtT8;%ZH9g(`e`@T=BZs#S{f|Ru53U{f>HS~WADz51@x^`rYoD|C
zn|n{}`I+6nzw2AOCXN4OM8=*9mH@V&bF2GBgJs*8gvu9(qa-A#bOAbFDhJy)j~Y@m
zX(kKsykR95(z7HCY-YF3uE*}nI^Y0qLIyS{eszgR=x&KqCX)fG4^h4k&lEW(ClPaB
zJU*!783!w!;BdljbzsMnObHBc83PO2R#Njk?}{DMLlfdlP>dB~W|DIgX*6z-`e(EN
zXA9mriU4*x<v`c=H#mn}g=<j)k<kbl7h*4<8l`dT5AvJ1zLtM@AyLGG`R_hmTXU1n
zvqS_6q_E~;=iJx3STwn3#NX&tF$UExOGJ=O3o9MgGTc+gg5qgrxy1s>NLICyI<onc
zC5gu)0B;0o5WN0bWVafq{#5BUfjU4)MeOD*-X;;BTcZ*nU$8jKL7&jGqO+o=fx#3w
zfuZn?{BBa)*rJ$UmhOvugH%`i*$JKz;q#N=2vh>gcrFiq&LGFZ9CNI3S6cJ>DYuOO
z#5fKPrz`?eeC8m;=5x^2<51mszz8rP$&;}1kiL@{FYV|SFFlCp3{RT;@~VRtlDW<;
zBr<g3XetBY+4T}RL6U5khWqTCOk`IsNmnzye|3mtrht@3C7GN?)pJ9kPu$(^2G5s9
z0%~CveClEjN+3i>_=|-kw~&I)=m5!ss0cAIUg+IY7fZJ>H96)Ta3b)kPq#torWCti
z^`rP0(cg!z-qOPS>dXqM=Go=zE0nb;Y^;#~Xbdn2lm&#LJGtos_+W}z&_jxnnC==K
zb}k#5;9ED!godR}N*cZr`)T)<m{G$MdfGygARU7hnm{j@z!#!9bp13M9i{^rI|h?8
z6Ri3N7xo;5Hd%ttf}gxc4yHhq2|)PSWcqmc8dUH}Hk$iDD2Xzwm4YZQaSZhw6OXth
zg<m;>Nfg%)rY(a81Ofq2^2qSuQN|EH%BIt3N63F2qdE8~An5#tU(d%oo2#p+5SL5W
z*(V{ZG;7qDuTdDW)*BCd>78^}X#%MiMMZs&x>!aXAKyMeBi$;bVdkT)5X+-sl1i`|
zh;mU4fMK6RScC!Avbpv|<%wC1ny&=hrF*}iqV7J>-M}>O``s%O7*?&APV~&%Yh4_m
z9yibzI&XnWfdvE&HYfT6sCmFc=T)YFmw_F^F=ggf&{j7iE9EM3Q(cr|;KQ93pMxCz
z{*8A{3JJ@`2L7`y@;Zc@Xb`e&)YQGo#TE)%1~5sdp!Q?Rokbi0g%pUmMZ{2wEX)kY
zrpRu@LEQ&!q<!#O@Y9`7bl{wQ$GbihtK;dO`O3MrNP*HEn;AwKXRax5v_UV(`KFx7
zP0r+8HZ6s|T;G{I=pYt5I#nr@-v{r}x4_far@_Gq%uAWkv0Li`^}}vay(5J2Cx#L0
zxxhnaGd^z?>xGt2`RVzXb(k00PplslIETjJOP>i89E|QeQj{ipEIHlSbX0Qj4%Z@D
zcvg26hM?2xE!eLmU8W~c#pY6?^vg)np}N1r+r=v;2mM7>?M<<XB6Rfxq-jfG$HQtw
zXLIBzcCBWwVOK)HDDBj41hKu_EnosTzJZhOFv3TdoAsb{m;6<<)^9b52@;4roP<pS
z0Y!K^fVIISTrkZw<Ky0v1-*hB0f)reG$mW4VGw21@Wbn_$uvJM2`E~m;krti3aTnB
zgDj(jy4f+3>WuUQkA7_3unDR#L;3$WC;jFi2)$6(EcC-0R5b!;*Q)z&?rcTQ@KaVc
zVc8kvN-cyr*u|*l<+3^6Ff*9|mu1t^&h?(*=WPNk1zkYi2qP5TiDG8G+>~Ql_bAn<
zIQ>U7e~wGHQiXL_udFVd>r{>bVJm;3sqxj3*Ut;6vG(#do^_w+z7#9qyhZ$BXHwi(
zQq*=R2%_XdDI8_HTrugyopiGAzB;`$UW%n|?hTU(^uUfglv`2lq&V^k3}DY%T?S%!
zbrmH2)s-n#6Ce48Ox7s@Mxf~(Ozcj&&viVp&sZ7SWysi}4@7W{b{9%5C?JV^81h7j
z+hy{}-e*Q{_($Z4y@fd|qVx1ms-0SBC)AyE--QyNQ3bp^jMmt4iT7h>O|;t^J_IWG
z=>Ygn_cTg+uX9OawsI4E6AfrTT6>lIPQ~6uAv<jip=UNr79pgURxwb;_CHh*{@%t-
z_fi5|xUecLF>q7+i^4buu4&DE2dh=tMIoiec^smgrk|+4jqfllA`b2~ELx#QsvHLd
z*Gf~EPUFa?MI*0bfwX`w%f|dIUGo2j#(sV5$TNq(e0b{M|3-iBq5bcl{MO|0iR=4*
zYVX(g{O3Ifb|2sMsqs%3Ut`#x_AmD@w6T(M<8r`0LlNJy5h03FJCb(|tr%nh&}bps
zLDQdTKa=f!*LHwt^=1izgtvC!R>C=z?bMN$@V$}z1p;Gdi{#Hsa)wExw#e!xXI+b^
zVp5=WFS^L8%-^w^8u_VNNQF{!tZ*b(?n$QrJ6yX<fl)xmn{Dx)x+JqQM{^t43VL4Y
z7@bAb?$EKcQGBt}2^6g?Wa45@@2rfryYdoMr~}JBtTtoG;h2ITv}@#BWMLAFm&=+&
zOjh0@s7Sr`#r7Ca{0X@?L~+DD(Izo<kPuAeIluC0MB`GJZ|0n08fCM-tkwfi(`*s9
zwy3Jw@}$pk^b*wBL37oBP^T^xO2#T})U)#|3+E$C%L`ZLA`906ZLD%Qnlb~@z7hDg
z6n<Aqn_JB?CZF;lT#4o@iM$%n1!`uC_9P<29`xLBU+fsepF-5QD0*<w7#Wyo#i0wF
zNuXeaa-ePUfHStaO0lL=^)Z(E?`({ry$$0xylrs{`T1f`y6~Kf@6`6w6PPcbDdv%D
z$|5|M!qPRGauBB^vr0t~BSU)(nXh!l@k$whlkE-K7LgUJh3c_ci7b%$f~TczYDb}k
z39Du1E>6OWz%p9(<5D47X;Kd<0Bq)~64fqINE7LCAu`ZWni7^C=Q%a&CPW81t=>-?
zqHv-r(Yg4vCBau6Ck^UVDoJ~ni@g-F*JG0w!gKL>!XahM#7HAkHfl&zF`0IRnvzbc
zkg=?|_cQe!c1T<n1Z8!_S|Izn{P{9qNto+|B0{pSNu?R9HV)OAfcjNMjbmEwyJFw*
zIMtY@ZQA2sN>Xvavx0l{e%uhZD3E>uoY~WNs&pc1b&WN>?*0TfsIn76Ed)@LBEf4H
zSx6LxfFhvylLskHnStt;ljA3Cp?^;c;2O9@5$vZHq$=#F3UXcv=1$No7ulTXcUasP
z>Cios9wE0$F@f(a+66>sBiB}DP|Mdt1nXaqy!1Kgq*!Ks<lUlNwKtGe(a_|&LVBKY
ze;j7b#A$hQ==nKhq9O#!sgOf_5sA5^q}SXqzAu)Y_oh-mxm6!fzoKj-<ViHDYf}6<
zCLV265%FCmNj)AUhpGbJe6v>Fvb}$Ah(`m4f{I<yhKEN<iC&9l23&IQ@o099i}rUB
zYYwE$IL$DR<qi=3LV`&PofZ?k{K#>7Ke1bW^f-jN`pBZYz_Fo<&Bvq|Dt8dWG?shV
z_2xnF$&R<%$oF$+o#s%%wl-QG(@B6KSKSu3qok~PAOKy^XG2yhPN_MLpe*|oEgK7&
zQsgUhRGa$)DA>7Ek!PAL;f7*sOKkz&$()o;=La3stTfD;>KjztA<(SY>+Co4i>vcj
zMwhY%M1U0mR=9Z_5#e00)5tBo!NpwblrlU@7g5(`7qFt}&~e7bNY7A3qrQ~1tr$YB
zpbOHx^r8wBIp3^AF7fZR{0(`>mnc0X`p`y$f>z_(-u5i(N3}TX(@+IU_f)GQ?cQP1
zb!W4fHgRME3xa|r=Ofy!Xkcb6HZhadA^NjL)9#;i-sLWIZ&CE{W#6iu%%x<59ROt+
zfBVR<F6|Ydy{%Mi+Ck8$(V_4jaBnLLuYq|xRlOvZQ7BgO{&L|-);*CN+-=}dIaEaB
zc3hy%mna6*{Z4-OBc?JNap*NP1;4GU41?x!?3cZ{yjQhb@thwLZ@1hg^Y{b>Wb0X^
zzvJm5sbs>$-wIVxz<{Qlyr_F3!xuwn5EBKInP8{s`3&qPmqBmK0Y-(lV@A`F+;2cM
z!D37+h{U8+z%GM}Z=V?rI}EHH4h-L&hAk-=ym>!*h>b_Guj&@ZYP8HFU~+_Bt=D>|
zUa2Zrx7-FdKR<zS)_ImQ%DTL&iLCTNQfPh_sHjGrI9j4{CyBIY+Pi}8Mzl!b36y_#
zA0l{-pjiYo4sL}ht~O8_R}~bQ7x@BV3ACzB>Rz7rJb0L98M&I8t@f!UPKiEQjZu!m
zj?g|THI)YB@jLhm!e=CekigkJ>DG}}(V(CrDBv_ODv@WD;F5wn#5dMp48_C@g?6x!
z!MW#^P*esYnkeC*C#3?s#}qHuofdL(diFtvoLAx?=Vg)<XlfvFI70&#a)K(7mOW^!
z#t&#12c-_)FQ$?e$vD*NIOx_W02<ZtqnC>b1kw?d#WadA96TddG%?h@ZHE9AVQv(O
zi&F6mkbPDCkH_7cp6@KL7Q9yzP9l5pIx1om$*4#YL_tTv0>lHN9C2R|UKBNdT+UF~
z74%y+$x%T}ih7~+p;7Kmp}H#)#qmWz^jC;IZu(`6?nh5XcIZ6~+Bb}4@8WKO`v#U|
z3hs*1ByW~FCr-Fq6W5*}r(aAdKOK(?$P>>FHV^5<<;1}Uj9ETuvccJ@>~+5r?(@IB
z)>F`e-1tVgCSBrXUC4RaH4bLF0INhpdG_z09h<+e{{P{L|N9OAgMZ@vd;x|pNErXp
z&L#6P6j_m87X@kh^+dZQP&T^pbnr8%hNX><i)y6};F-!T`m3TFO@$I|*%%R6F_R$^
z$k9eBTE@rpNPMG2s-A9~D9RGy6cWTbDA_v2Si&ZIu#LZ?N5+WVKtUEITu7O5IoQ}^
zV3_f}G=R_wH~zL7nMvi4vf%3?Go8vIu21~O5ts&J3k)0Eqqy<6)W~!^Q*aW6D0L7C
z;>C<BMnNR)B<!4%%;o6w8o#JUrV36H|1r+jxb%amP?{*&qHvxnqTGw#zm+n6L61bU
zC4+KvtN;+4`T^?Mk^{wJNlt-cf!8}{d{mDF!HEESG>eA;Ie3!5&dCsRWE^}I2{N*2
z$M|_Q5}(0%0=-+x*JM)`ca*b1*jt23CJN{5uLa}h)X0Rxp@Z#4(XxrG(&Ca31A(8%
zdI7sa)b>%3{+oJaQ9#|aw2|oL-xU37v{jJu&LKjKH8S$7#?R`J+(jl8qlLsQvaw_P
z1(F?+YO1wP!9+SeYkWkHj2CjqiAOUD*+Xpl=jx8^ELz-5lv6C`jGs{><G4G}g5?r{
zv+|Bp;uTj3YP?JqA)sAI86VaoQQ{_q;f}-yE{WK&DN5{^PUP%D5+8(Q#`qh0BpRz(
zYCB94PcxZA^*4?9E-_|-ZV5q6Az}Qq8p*TCCP@ymDo8>l9fe++u}r5hS;SKyZ~S#V
zk}yT(K$cQb7S&%9F=G@&%uLKg2g=SHe@%~sx{{$<gklMYJxbx?6hN9s!r_qJqg<CX
zJ|rXgIt5WSvtm+M0>~kAP_ja@{D`C(ixqRRqVZSNNV^!%Kp$sX6!KSoI!19+!}B<$
z6mdyF<@>Mbk!kEL=vtuHzzV_hfl!sD$G?`&Fqu{&ZX17Djl>lx9>W3+2OxgBGEiiH
zr`^Fj%WjLvdD8fx9+@Lzq%2|P(;VaI6!51U^2{-ET*TN-mc8*)dSr|ZnYSD~GVf;G
z#KsGQohbVRTeWB<vywlcMq0LG^WMt3U}RP#%h5Rp;{=A5G9>mxw(*mCWE@R;PzU^Q
zo_hkldYnT@MvJ`b;Igw^g7JPek|K(Oy#@CUUxC$vtbB}`j)`b-hNYA*<{YD~M}}8C
z4OfjEq6%ni>yhC#HRFAHWO(h#cu|cUqCRB2SC0&@vl#DDBZnwh7(by#4p9Lxeq4_X
z&$NwudSrMKYqa#p@Z8Y2t40oyqZxPf$nd1dxUEJGk*^p{HFAjH-e{<iLj=Y~U5^Zp
z35}W>IYhK(yr4&h2T{hB9vO~5G^%Rk5I{boqDO|~<P2&mcm@pt8Z*jzWH>g<*ia*f
zfG-)hIwM1YLPklA90Ivxtm~2CC>mpJY|Qu*hh)i#0mDrImg7X=C@P2$KE8}-;m1h}
zlBV&`<ll6NgsGvjAr@@OrzuY0f&|wti$@M#E`;$h<11=p*2eyae-lxE{>>~ESTyc|
z&LuLGFfi_6*EIgA9+}U@gvcQh_TpTFQIi<i;zNU19PTXmwHUvvN5;|+V%TZ%fMFy*
zIL~p(o}54fAKDC_YsQz=NXY~XoWL*=Ig8na3Ec^=sBmW-y!X<SfQ{ejjEqsR!|fVp
zSN3^_9Y0AwihmfpC%lM33>sh3BQeGS93}Wz_IZk8oN-*I1%jT_75N0yG5(1fnabpG
zlc%5#a+Z-WZ8&cLniAN+;K+%rp7GmiBv*n_Kn@2e2ydwb@sRi}h%+9cQVtAmqG0@%
z8kqntAb}cPXd*zCE1m)-ztK300T9G_sA&9SJ(4>mc#WEtm|F74z=m>=rDIrsBpfS)
z@S^dLWaKbVCc{x9f5_fj`rjN@uYMS?$|x>f>ZcEZ&M@AsMh<~@FrL>V!_foAb86(D
zDUUF9M?=tVjhlL8I7`*I(HR-a2{o>(kwY*ujca=3kHE`p2>PC}EI)l1E}ij=9vRMY
zGnS<P|M1wm$Bx7fKX>R?4jn#t_Q2BqbCW+m@r8Z=ec!dc=AN(bdCTs`uJ?~ujIS8S
z7&zju?Xzw1jy^7cro25w8rWN5TUCl!s!QM1N}!6?FUA6a8V>y&io+`qM}ddD^rdo{
z?nh<pi=&sQkrdyg(RgbUl7tUad8Cbx^y45njiYC94hv0E1H4LKNh<K6LL2rL!UmO_
z9`mYA>y$3b<+@237bIh#T7A6zu%Mlp-_s=Wp(%0i{N9hb?$c;!nCB8BPa>$k4Uom6
z9kXWpTwCB953w3r=-%R%ln77Dz3Q^Q>Og6I6#;7Gs6<kuQxK<Ly2c~JMqL-#g@0he
zM4%OBLN%xeh=M|GRxIE7-z!%m%k!cyFwb9(WyK60Mg=`hYVdUVqQYDB`pe7#Rb3c&
zlp(1j(|b9I<u{GI$c!T`Oz$d(sKTq-bHm)+Yz5X<xs9Xr_G9DEPg<8ScML5-ct20i
z3c_EM)_FwIQK?5d3>!5G3({|{Bm0PSwe&KTRe%yw;WyO_e7mNdkmmzC?f_lpg_nT>
zfq%y)x9t7UA#T!c(ps?NNrZt#W<Ze8{F6*v(NtCBXd9Pm_?wSmf?*F)NLj8H&~%I3
z0RD@hSwJbi?+f%2a)RI$7%#X>wDbZ^puzP04|?y{hFz}PC=I|wS!1P4i*WW<r%1Ye
zw2jsDTa?2D7aU&CS*Fqo+0?#6dA<kt?td(hxyGqYQM~NyR-HuwT|fbX^{I?~&$~bo
zx3dfMi>q7oF<SI-Iz)V7DZQqRb@UU4K=bLehL@3mvTxvN9ywd%hxq{Wo{v>$22p<$
ztLW5AD=h)`=Nwxsln=pJdi-l6<6R>JDEc1Y%-2w=xK&oI`K`7XH@_$w)YG^|hSsfm
zHz<%r8yawgMR_lq{xY3mRC`+N_%z?Z6o4ZJ@4Tkpe+5!%Nhe>L{1(@n67vLJgB8T+
zJLbCbl1Q&#p{GaQ<X%uMwNedYU7t$%>)SXvBabRf3G$lI3S2KC!tZMKe$J7x1DihZ
zd35>kB57K!IN*tbaMh>U2YDh&?Bp3c7GCx1eIi$Qq1Ay*8s%x-1Q5mx*O!)r-V>RF
z@^f{?_{zxBde7XTJ1GYp*c`SE2rARO5p;Cd*j7}J<+(P#%^D>=H%v8B-+_<Mye$0n
z8Bt;r5Z9u;RYKDQ#uGJ9>i&b<-O^OkJXl`tf++8pO(!yg&?q+P8;$Xek#AIXS>fNH
zAKjQ%>euVlX0f5WNbUWT*W$+ZL&nid0Hi{zs8<mY5Fdsj`gQD-)w1KW9Cm(<m6Y!5
z!VTOW?|Cma4I|D^c_ei}8Mo=g*{H+GH7ioJySF{b1DT(AangDks%K~^*E>v9*O<c;
z*wZCm-C}h!C~tWgw-SIjz}7ZU{81fcFi5D=b99NJ!kaG88*a!UkGfLX1}jpnylE=%
zkMT%zoYEcTOxdzfk}<nZ4cLKZ*bqPkiMIbJ7_!Z3rLhLmyw+l^_QZ)>?FnY0KK{7C
z<c26!_szuWdI|k`C8!`2f3%=FSIaGKZdL0_$`>ddq{~9JRMdMN9aPc7rxDFJB98<R
zCNLxF<cIbe7jXayZ;T620i)Sedc>Q?IYz&gP+5EK`CNP7<h4u2b{<{`9g@(Z`whMA
z3TXvo1P_h#dY;AA303_4FJvGmROhJgqmK<-%*IpRYVOKeuJHnvkPA_4XfSNskF@tH
zp4KGiD0TYKrodT+6%rO%z3$_Cf}irLCAmGsFnYt0on7w_dzS}K7E%!aMYAR}GPNHh
z+k046THTV?SZEKTch8<DsG%WHX0uc55L$!@nA80yD&GXqU#Ok=kvFp!Kvu{^(i4Y7
z$h)jA`$~H^m;IWFIz%1XHlYm>>4tNS%CYTSFXwn?cl;SS>^)Un2;p>PFmQ_xK|V{M
zCm7EQCQg25H<5;WpMe{U-CKlj03V5drt8I~R$*9d@8XUgpFr|xrZ`07MqyYya2`9=
zsmMH!wWUF@Gknnb+AI_k#NNy0fXsj7ZKN51L<Rb4N8SeLGA7$qjQ;_y=j|Lr1mv=D
zH=>e2R)LR$RB-G@qa?Ao%KweL;Qv2-=(~qv2R9CU^S~STe`xZf6aRK%eBZ^rAKCN$
zJ!f`*e%EKmziNDsfe(J^8Q6Yn`)ytlL(djJ_5=VxGnJuQY)Wl4qx+n3v16sQTI|bJ
ze9md#7hXXU^F?pxDB2q+!?V#;f_&(AwZ;DGv=E}t5N^a0crjDVg+QfTw4p)+T7dYU
zMuo$qMJX61vS#m{Ad)U&KN#66a~jo;u_8ei$%;JwGMX;x+-0riIey7M1*RQNneM33
z-;XjasYPzuL1>QTr%sZ_>#25`LK}muZCHs|&e%n4eT#ICLH|+^7cX3B0)paVJEt=d
zFC-GZo1@AUgeN(OTt=~Jhl*dEa(g_T?_|pzO8d>5iYlNK*F<d%1|i`X(KlLa2S(ma
z!8f%;H3fEmv2z5t<84f=+!GTIO+G(kTj_jU`r~=5fN9p#Apz_p4&A61nz)gpQqgyp
z9#%~q0JOprSz)}Oy}qJ6yaa@=cpc!qnF~=N?Fcl2IGl&Qzj}Q&a&>ujL2m6j+t|&U
z&?B@okyg4miF^tRgYS|Y45dmQJ;57?JQ+i6Y7~*imS%l=B0kYOid3VX^<?|4qAP|Q
zWgb+3<v0k80R56l05y_NF&#NbKv+KmP)ijTOZV<o?{@j!>aQxX?Mu1`Mhs(r;JsK%
zW?%z7ACz4X*+O1KBW~N`M)jEFwoibS1Dq<R>q*%IcoHHX0X)TFZ-A6zVF}XvNV=M0
z=K*Avgg~R74Ve5ywj+t$_el7Dg4o5?nbFOC8r98IvMbg5x;Fk(R5M8eXKauy^q&y8
zq+dq62eg8TDy_gEoIEWci%-tl_EuyGCyTNjRGjX9s8ZA3YUaQhHR|4s^8R8v%1c}k
zRNB31eA^I|?8G{cPh4wF*pmR{fP`d<^y+NTAoL6quoMtkiP~6<)3VAUewtgVLZH(y
zy8Al4>N9sV5fOGH`EPJ^P-SgO5)dfFrrNkX%^TZ~OVXdG7Mnomkscg#N+XU{3HmB7
zU=~b3;b55_3S1~KiZe9BKd4fa#=1YrFE@&X+?T}-EC>8MZ_ZH+A>u_qxK<BTA8)kr
zcfwK)#P4ZzPe5;i`^q_p+(9qmAWIj~n}F0qLsKXfUFDO``EU}ZK_yb$X-?o(YY|!S
z0KF;|Q3}}lHz`3<SCYESci;CBYGH_2O08AlA4iC9RK#3BfODf)aVgu5fW;Kw$4fS#
zDD2VMCk5Dxk_M6xz~C@S&pBD?cP5IN#iq!OayOlrY#9hGQQ6F0xo!~-B3@J!3KfEx
zw<8y&o-~6FRpi(W5VyxixMUF6{IJau_2eSXa8mO#qm8CGyL8HCZ{(?T%4S0V7kjss
z3z%t0J}4WCyvuPVW8Ygp<2yP`X@X$xqswpXD2KAsU^`5H-KnT|WD2=nXgsw_)2ePE
zPd>W10H=1-E_ZB0sUU12lA-OBj<nw(3Lbc@oEZjzIg4Vz>`Px<Ck^+bslbQ49`U~S
z<I35U%aI$T>{MFNCis~5W<bShwj_HIXgI<$WxJDiJ<&coc`a>hKZ3%njjBl))^mPK
z^o!mq65bTQTi97zreBE}^i{4BNrawK^}x6I=e%p(kZ4|c4d0!n8gollj1VP{wtr07
zaiAMB2i7eVZ0cKY_zf!mGc|cV)nDWqmRB!FR;1v<AC>YiA_kF}^=ixXE{@I_g`zvD
z>@>=Of;R4;?Uh<=`%#wkE**ysfpHbZ5m{|@vk4ESqoXxQfMlm8Sa_@{xgQceB<BOO
zKh!2w18dzT`P;I$>S%YV!)dDhdTv572J(=PL*cihzn6<5G00mta?nV#jhM@<An+bg
zc;7zJew}AIeg=byP#Ew)PjSB{Gw{ot|M7m=l!2@GquxR(5=2$j?afV*qYhT5-`;-h
z#I@$c2C_6Zh~_XTGIG>xzbr3We6#|ZYqFDJVU7eWm3?2wLnS0bXCg{mQfg-RIsQEd
zYO7}6L4Lg$2m?;EU*jzhn#AD<>CqR+MIjy_;ym&K*+9_=?_|o(b<ZP1^Z#pOhrfO3
zcMpE!!2jI;ZM6T|6CazH-1p4hFYNhOyZ__v<y}8H{)giehA~$AVI=?C2ij-EGDaeJ
zX9$!PV!0fR0pW?x2W(KezTJJ`ires39LEfY;znH@g4vxAX_FY<-POh<X!|m%c-9Qp
z6N=^X&iF3j$%}K4URhZ;3)EGD^=wMek^>_H7vq0AVG<uE@@YPd!?jiIhIs6xL>5%F
zd&}2De6M#wL)3v98*C5LYo!7?Wz=f&@>SOAx~_GleVS=_LV096>2RQ$_fs{6R_BnB
z^QAK23)D}M^ON3MWJUPH^>v&px9FF{isubfeCK2Ay-BgnR`FC1t@f4qc-%wIjNmB{
z*FMpHQq^*gq7v*30jLW)l=>NC@Y9`=VEB|$p{H1~(%?VX+!eI?Ya4Vl1V2K%%6N;n
z{E8b*Y#No;+71_`g|>JXJtB6%AmzgmeL=}OuS{dBDLxr_IpdnqHo;IE;7xjSG^GJ9
zPQ&X%3R#_y54UkNddS#j-cNx(3<Vvo#AAN=#$R^2!(MLQ15YBGcMZ<u>aw_HkQt*4
zx<v?h3dn=xHH37Hu@89Djg){{$tDBq!EB3rQAv_@SQ_CF$KH*(Qxx-z&xPiXbzh)8
z&2`KvNrF0R=%Tu%G$xegVugMt**(gLz7o^o{Q1aDsiVwA=H{=gTpf8cU)w@qpj_G_
z<3Z}vFNKNaQC)8G6j}_Zc~TmoDlS}_B0LRI>qB!LHb(}GY^JXwF;I&r5t*4kHM>X`
zj{K1p5W%0XGKQ+K(q({Yer$PR4zGvwal+rO3K?HV<N!at&ev1<S77N*Z@<zLBfPea
z7m~(foaQbI`6SgACk;OpQO7)`FzC+lSUQGkSRzCIv%(YDz^$UWwbcsf=>|Vm5ln9d
zW8iVpO{O=@7TS|*>%7(!xVi`GcB+jF(iye<=bbnOlr-d%1Ps6q=PL=DDV|Q{oJ67+
zH}gfLi%8TiqLK)!@eZgP&^)G9v;B6`{YLD3QO-(GMH*bc#Y5_DLBHU=6SpZ^usyN)
z3j>f^RwEFdzq*a@(PLm-jH769Wh^rW4=S52fN6$51OLr|a)T^J-YynWsd(B?6#_Hr
zf5`EiK(jo69wC1iG^3Zjt1Drlyk6Qw*#WIWv#bhiW;@}(v+*>-8_-NCpHO8>K{qRy
z6jp$3Td>)a3Fykb@9cfhgF6elv1Fi_i@wi7Wa09XcF&Mx___%FL{3rGo#P&S6OEDI
z+2$>KZLM^xuSxdSc3d|djiWc5cnp3%w`QkBKP*QvFqcB0Ba_XcUIDWUx%FkK;E=^i
z9Ov(x!B6F&dMf~<pkwX8dfW+b@~w3#eN@TCYhA3?bb%PU78N9vSyzuE(vImA6OBzL
zmP;dI=R~2~f@X(>2U1^DL@>*Ni3Qm$6<8xa3%F;A#CI%_`=*%2o4sq@C`n7M+(Mj`
za7IFzj!M0x!S0*erzn%39v9O$I0@KGuzIbGEEE`H$fr^@hxnC87a?z(x%B<d(!NY$
z)kLs{!ngw}K}y^h>0-gm-#Z%B*z<0nX<HWiO<yyXy#e~V9eD>@)yb$5k9}7}wKhSt
zEo(VtRqm2#P{0bE9A)fh6(N2t)Wesel*k?5CsDCP^qaE0yz`Wps5*hzP?}Mf+EWwP
zHpUS-$l6X8WIyc16eU%DE3$>g;b<V5n}aRk6f%W0%BX~L>{N7;33+fy<Y?nV`INs?
z6~L}~#im>~OFgqb?rLCR@}*zhw4)jMy{lrts+@{kj7sh7iil$g-p~sthX`VouuY|b
z`(rR|thb{mkzZ9x<fjQq==s33h^1JOse%Qkl70ZSKNJff7^YzShAEMQDeg3&nYRY}
z>9f*4y%Sy2vc>nwG6VgtUb=ROF1a`{3qS)Mkb(6GP(lEpN)^nmdF@s9rUVQQw@<R#
zv(ox{+O~7-+GsIBCZWWcDZt#N^9Ugs?;|@8Ke8AP-yl1od>~Zedu%cll#faBXQq^>
z{>sub%aN-~s|%N}YGJH}B}}@`ngDWnrCA|GQ8}uwqoh(45Z)$22Nm8LT%Mb>4k_x~
zA#KLIj47QO`{2kssgl{3+9~V0Ob~iYL_{V0bWgNTFeC3#VIEu=YQ9b}ij<SEN`*+A
zi6^3HKgZ2j4q<P{8aN|oK^A-c80f;7HfgICY_E8qc?%W*DWsX{jJ92(lh&u~;020x
z)m`iFt*I$hxJ9HR=C5F59htv5zl^-t;^KAUsD+s;Oy_wez^Q6rD>I9XL6+=1>NW!8
zcqMgLw1+V9MH+qsFZWxjcPjb+;XOyk4*%D~dk$SW_)7;qap1`Q>B)Cad~)L9eec=(
zTYF#67a#n3Far-};K2<1d7FXlRvWJ%_tA+*(3Nu>urrkWi6uc#q+&^!|9}XhR^G}X
z2jYnTUGG`4q$L13Dg;vpIxRu=i+AY#PlP}d4j_pFlqiYObDVIN>cn}Dpk;_P5fpal
zjBrl%_T;A4uKR|VLj+XXzzWqR(L*Hps_Smtqiy_#uy=oS{AiqW65B!)J2*KBr1R)L
z<Uuwedtjwtaytn#Q}6?OKPmA)+nKBi*+Agk&<Qrhfk2SUDyN~NOxJ~4nUVEEeoNvX
zG@}CLoawe02t7J+3b$d0A^_}R$iYeAAgQ>>EaZvzk~!3?&_O9+0*Ut^2Y2*B3FMmu
zu)gTuIc3y>yQU@(O-bShsQ^TA(0{N4I^OZM5h7Q6)3U0q>1r3%`B3|U5<WX5IX9Mg
z$jYGuY-UASg08!n$;YAVf)=ncnH=a0WnXrOf~r5m-H%is5%S9p6{CTPUpJX5Vf_l)
zNEFs@BgdvvgZ=IE9gNLs*uLpxB43Qg5G&!T#PSC2HF7tZG(fUUB5oBf%`DDe^_!gP
zuUt*OH@CYFd1UO<-DgZ}RRG5<sY)=i&$Q3+prKO0aAO(93e?WA+({DHqj5t(hyF;C
zT2C&O2Mpx&8Taj=D}d<o*loZ@JZ~sr4X#*Xs5@R7IT$5*t`@0H79Dipe74*6yW8_z
zxoxP5V<C|@V@Tj6Z1#{8I6L$`2-DG}O7VnKI8tPKw~rlHzO#KVXbE`l8EGX%REXG#
z4m&aUNeRLmTpc=u-p;Wl@0dB|jC_~36#O3mX=7T~yi~RKQu{3Tn3QmP#z8s;T^C1$
zcDP4z7J}tp#FP>vR;cG`ka)fKh-RZjBSs=>wMi1CBfG>VDNm^vj&|{y=9R3!^eLJQ
zvv7az6<+!hJ?8SrcS7}`))Ip|GCCWWHSIJpmJlM<;r5(B5b7Y=9k6w%#N<%bK~x$^
zCS*9N%0y!sJI4Q^VVN{%sFsl2pDU48cR^->4^@+@rwYbv;J=W@*Sy8wvD=Hsr?=P^
zqu9r?PpJuhZ+n(A=#4VLr-#v5&=c%)T~?r}*f_rSv8NU}h}2i4QqA{};iWqSsYRC3
z^>dV_m#<!)L6}b&e71Z^>l&6j`piN6a|?-A&?{095%L_E5dKsst(l`ID1jOj+`%=^
zw`%)|_Kb+TG6AQCk&ozIVO@}&tS`^FGq4Ac*z*PWkLlFN>!^m`3kXQMiPc6`p>~q(
zX^JWn&rc@jogwrq&NEq*@@`QCp;OIk$ui(i_XD<vqZ;C=`@z|T-Ux$+UMd{9ewe<~
zewvr~{KR=^xuBs!)ik^_PdEQ)f>0Uby7gZ*o34AD^0`@KXKldGY1XI@0j?3AE}shl
zM7x&E02+aqa|JNK)9J?gsUFu*DHJWO!wf(z*Zavsgf(TGlX6q2WT0qqs8Q8{L+z({
zn+{Dhr8<}mR|C<wLb89Jk0~3HUlt-zQl=RJutAX!f{q7%H&pQ;GSC<-mmHQ@0alNc
z4t1%JKgjzXw6(k6BOkU1sO)s^k5^!i6Fd$D6MepRdF}g&=`;J@Ja*&{j{MpY_sGp7
zQ%80m{=>tcKm38i?>wBipZ?$d)cE$lcJjYWes%H}C$}cgP5#)#f1CIQNP@=1#fiwi
z@9+B;`#!nv?!GJhum`^$%)o;gcrXJGX5hgL{C_Y5qNX!U^~d;@9vNOLF}|rshF2|&
z-%}%ps0|q3P$P%P*NuO!M~0`;#@E%zAyQZ4Yii^W383*+Ju*DGGG5XnA85<{dDNC0
z2EAl_QLT_65J1Kk^vG~Lj`5p%WH<uG_=kFAI4s5Z4Lvd(+hP0zHF5}Sh4FbkG92Mx
z{JM-Brpa&oeLXU~dv1JAjU1xmZ2X!Y8QzIC{+=Eg&ZRXzt40pNWi>vdM~0I^jbBwG
zhagrOzoJGC!9FxTtw)A41C3u+BZr{k8K2T4!-;XmFR773P|=J}>XG5(FXIzx<Pc;k
Q<L~N`4>Z^RU)EgzKMXvE$N&HU

delta 962
zcmZuvO=uHQ5PqB8O`EivNeD|@qh?E`=%GKmY0^dzVrvlsQE5a9N_CrTZD=+xbXU+*
zQ>b`t=ph~ya`fa+_uwhLdr~|~4%&-&5<x-e#d*7=xDejXyyeaN=KE&eG`>oWHot!+
zLf#WXB(x#4K=WcIh$qt}?p^r>MA$ir5&|o1IkDO6u=6?@PmG6b!?GV)#&#-aJl4&6
z)tD|(bBUUDz4k;|TBPfFx>>VmZGIuE+|;*}qK%oXq&zY{*n?{Qpo@9EW)#hey*Zc8
zD9csTLuQk5e8MHY%vjZa(5sB{8Z}fcr4;l^4UyrVeg|+lvD_=j7kd0Y={(*{^&&oH
z0gR0GB0l27Sz&hAZO>cS$F=4}ADl#*?cxq}NHRVqis?*Aw{OsGQ?CZ^pIuvSc)l0T
zWKYBJg(xy2RE<%25dOnA`DMfNDB{*7jB5+UI^DJ{#jcdL4BP5^Gc`HEQr)SP4XQlU
zO{34X)7Jb3w*ETNdJUTGdz0{s45Tw6+cH@Jc}F!kAp@$$S~RRJuzrZ@VMB<9-P&8w
zf)b9#D(uY3^1ytEZfxLORH^M+t~`hULi%<P&npbWxfl&GuI09#`!K$jV*LLRsR(i{
zw?6a9hw{Cm8zF?lomCz}6LB6s!qkwbmsKZwG8jYH{Z*w%mk81xACaUz=tiDmownq3
zJF6UK;mA~AcZeeg^yv0M;b?S*n&*T;NN|Y|8F7aRwTZ0ovSAsfUa8`Txu3z6z-|I@
v-#d3(-8bBYXc#*zz%hZJ@CSatF)I5E=YxEVOQ%JV2QDQruky@m-V6K#_Ztr?

diff --git a/src/main/resources/sql/ddl.sql b/src/main/resources/sql/ddl.sql
new file mode 100644
index 00000000..facae793
--- /dev/null
+++ b/src/main/resources/sql/ddl.sql
@@ -0,0 +1,60 @@
+DROP TABLE IF EXISTS Auction;
+DROP TABLE IF EXISTS Strategy;
+DROP TABLE IF EXISTS User;
+DROP TABLE IF EXISTS Lot;
+DROP TABLE IF EXISTS Offer;
+
+create table Auction
+(
+    auctionid    VARCHAR(256) not null
+        primary key,
+    category     VARCHAR(128) not null,
+    auction_type VARCHAR(128) not null,
+    startdate    DATE         not null,
+    enddate      DATE         not null
+);
+
+create table Strategy
+(
+    id                      VARCHAR(255)
+        primary key,
+    strategy_value          VARCHAR(8192),
+    compiled_strategy_value VARCHAR(8192)
+);
+
+create table User
+(
+    email     VARCHAR(256) not null
+        primary key,
+    company   VARCHAR(256),
+    firstname VARCHAR(256) not null,
+    lastname  VARCHAR(256) not null,
+    address   VARCHAR(256) not null,
+    seller    BOOLEAN      not null
+);
+
+create table Lot
+(
+    lotid         VARCHAR(36)  not null
+        primary key,
+    object_name   VARCHAR(512) not null,
+    reserve_price INTEGER      not null,
+    description   TEXT,
+    quantity      INTEGER      not null,
+    auction       VARCHAR(256)
+        references Auction,
+    user_email    VARCHAR(256) not null
+        references User
+);
+
+create table Offer
+(
+    offerid VARCHAR(256)     not null
+        primary key,
+    lotid   VARCHAR(256)     not null,
+    lot     VARCHAR(256)
+        references Lot,
+    offer   DOUBLE PRECISION not null,
+    bidder  VARCHAR(256)     not null,
+    round   INTEGER          not null
+);
\ No newline at end of file
diff --git a/src/test/java/network/manual/ChaosMonkey.java b/src/test/java/network/manual/ChaosMonkey.java
index 8dffdcec..cb6e011c 100644
--- a/src/test/java/network/manual/ChaosMonkey.java
+++ b/src/test/java/network/manual/ChaosMonkey.java
@@ -4,6 +4,7 @@ import com.google.inject.Guice;
 import com.google.inject.Injector;
 import nl.han.aim.asd.heartbeatmanager.HeartbeatManager;
 import nl.han.aim.asd.heartbeatmanager.IHeartbeatManager;
+import nl.han.aim.asd.veilveilig.core.application.dependencies.IBootstrapService;
 import nl.han.aim.asd.veilveilig.core.application.dependencies.INetwork;
 import nl.han.aim.asd.veilveilig.core.dependencyinjection.MyModule;
 import nl.han.aim.asd.veilveilig.modules.infrastructure.networkmodule.Peer;
@@ -32,6 +33,8 @@ public class ChaosMonkey {
 
         List<INetwork> peers = new ArrayList<>();
 
+        bootstrapIP = "https://" + bootstrapIP;
+
         int i = 20000;
 
         while (true) {
@@ -41,8 +44,9 @@ public class ChaosMonkey {
                 for (int j = 0; j < action; j++) {
                     Injector injector = Guice.createInjector(new MyModule(i, i+1));
                     String name = "ChaosMonkey-" + (peers.size() + 1);
+                    injector.getInstance(IBootstrapService.class).login("test@gmail.com", "mypassword", bootstrapIP);
                     INetwork peer = injector.getInstance(INetwork.class);
-                    peer.joinNetwork("https://" + bootstrapIP);
+                    peer.joinNetwork();
                     peer.broadcastMessage("I joined to bring chaos!");
                     peers.add(peer);
                     System.out.println("Peer " + name + " joined the network.");
diff --git a/src/test/java/network/manual/Main.java b/src/test/java/network/manual/Main.java
index 85638a1d..3785abbb 100644
--- a/src/test/java/network/manual/Main.java
+++ b/src/test/java/network/manual/Main.java
@@ -3,13 +3,13 @@ package network.manual;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 import nl.han.aim.asd.veilveilig.core.application.dependencies.INetwork;
+import nl.han.aim.asd.veilveilig.core.application.dependencies.IStartDataService;
 import nl.han.aim.asd.veilveilig.core.application.usecases.*;
 import nl.han.aim.asd.veilveilig.core.dependencyinjection.MyModule;
 import nl.han.aim.asd.veilveilig.core.application.dtos.AuctionDTO;
 import nl.han.aim.asd.veilveilig.core.application.dtos.LotDTO;
 import nl.han.aim.asd.veilveilig.core.application.dtos.OfferDTO;
-import nl.han.aim.asd.veilveilig.models.Auction;
-import nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.IBootstrapService;
+import nl.han.aim.asd.veilveilig.core.application.dependencies.IBootstrapService;
 import nl.han.aim.asd.veilveilig.rpc.IRpcServer;
 
 import java.io.BufferedReader;
@@ -58,8 +58,9 @@ public class Main {
         offerService = injector.getInstance(IOfferService.class);
 
         injector.getInstance(IBootstrapService.class).login(name, password, bootstrapIP);
+        injector.getInstance(IStartDataService.class).insertStartData();
         peer.setId(name);
-        peer.joinNetwork(bootstrapIP);
+        peer.joinNetwork();
 
         System.out.println("Bootstrap address: " + bootstrapIP);
 
-- 
GitLab


From a916a8fb3e2cfa81fb076ba89a39690b5573496b Mon Sep 17 00:00:00 2001
From: Tom Janssen <t.janssen16@student.han.nl>
Date: Thu, 25 May 2023 14:28:00 +0200
Subject: [PATCH 5/6] Added private

---
 .../bootstrapapi/models/Auction.java          | 10 ++++-----
 .../bootstrapapi/models/Category.java         |  2 +-
 .../bootstrapapi/models/LoginDTO.java         |  4 ++--
 .../bootstrapapi/models/Lot.java              | 22 +++++++++----------
 .../bootstrapapi/models/Photo.java            |  6 ++---
 5 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Auction.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Auction.java
index b3c36694..491686bd 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Auction.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Auction.java
@@ -6,15 +6,15 @@ import java.util.Date;
 
 
 public class Auction {
-    String auction;
+    private String auction;
 
-    String category;
+    private String category;
 
-    String auctionType;
+    private String auctionType;
 
-    Date startDate;
+    private Date startDate;
 
-    Date endDate;
+    private Date endDate;
 
     public Auction(String auction, String category, String auctionType, Date startDate, Date endDate) {
         this.auction = auction;
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Category.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Category.java
index aeef6dea..e27812ea 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Category.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Category.java
@@ -2,7 +2,7 @@ package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
 
 
 public class Category {
-    String category;
+    private String category;
 
     public Category(String category) {
         this.category = category;
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/LoginDTO.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/LoginDTO.java
index 3ce656bb..dc68b08b 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/LoginDTO.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/LoginDTO.java
@@ -1,8 +1,8 @@
 package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
 
 public class LoginDTO {
-    String email;
-    String password;
+    private String email;
+    private String password;
 
 
 
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Lot.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Lot.java
index 22b73604..c8b9cbac 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Lot.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Lot.java
@@ -1,27 +1,27 @@
 package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
 
 public class Lot {
-    String lid;
+    private String lid;
 
-    String objectName;
+    private String objectName;
 
-    int reservePrice;
+    private int reservePrice;
 
-    String description;
+    private String description;
 
-    int quantity;
+    private int quantity;
 
-    String auction;
+    private String auction;
 
-    String company;
+    private String company;
 
-    String email;
+    private String email;
 
-    String firstName;
+    private String firstName;
 
-    String lastName;
+    private String lastName;
 
-    String address;
+    private String address;
 
     public Lot(String lid, String objectName, int reservePrice, String description, int quantity, String auction,
                String company, String email, String firstName, String lastName, String address) {
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Photo.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Photo.java
index a709e919..c5648aac 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Photo.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Photo.java
@@ -3,11 +3,11 @@ package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
 
 
 public class Photo {
-    String lid;
+    private String lid;
 
-    int seqNo;
+    private int seqNo;
 
-    String filename;
+    private String filename;
 
     public Photo(String lid, int seqNo, String filename) {
         this.lid = lid;
-- 
GitLab


From b94a45de92e543e8f9e59d1967dd41bff5f147d5 Mon Sep 17 00:00:00 2001
From: Tom Janssen <t.janssen16@student.han.nl>
Date: Thu, 25 May 2023 15:21:27 +0200
Subject: [PATCH 6/6] Solved some comments

---
 .../bootstrapapi/BootstrapService.java        |  4 +-
 .../bootstrapapi/StartDataService.java        |  6 +-
 .../bootstrapapi/models/Auction.java          | 46 +--------
 .../bootstrapapi/models/Category.java         | 13 +--
 .../bootstrapapi/models/Lot.java              | 93 +------------------
 .../bootstrapapi/models/Photo.java            | 28 +-----
 .../bootstrapapi/models/RegisterDTO.java      | 17 ++--
 .../bootstrapapi/models/StartDataDto.java     | 17 ++--
 8 files changed, 45 insertions(+), 179 deletions(-)

diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java
index a5f3421d..1c86b725 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/BootstrapService.java
@@ -8,8 +8,8 @@ import java.io.*;
 import java.net.*;
 
 public class BootstrapService implements IBootstrapService {
-    String token;
-    String address;
+    private String token;
+    private String address;
 
     public HttpURLConnection prepareConnection(String urlExtension, String method) {
         HttpURLConnection connection = null;
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/StartDataService.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/StartDataService.java
index 4291fa4b..d477620a 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/StartDataService.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/StartDataService.java
@@ -24,9 +24,9 @@ public class StartDataService implements IStartDataService {
     public void insertStartData(){
         var data = bootstrapService.getStartData();
 
-        var auctions = mapAuctions(data.auctions());
-        var lots = mapLots(data.lots());
-        var users = mapUsersFromLots(data.lots());
+        var auctions = mapAuctions(data.getAuctions());
+        var lots = mapLots(data.getLots());
+        var users = mapUsersFromLots(data.getLots());
 
         for (var user : users) {
             userDAO.saveOrUpdateUser(user);
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Auction.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Auction.java
index 491686bd..413cf0ea 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Auction.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Auction.java
@@ -1,10 +1,14 @@
 package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
 
 
+import lombok.Getter;
+import lombok.Setter;
+
 import java.time.LocalDate;
 import java.util.Date;
 
-
+@Getter
+@Setter
 public class Auction {
     private String auction;
 
@@ -23,44 +27,4 @@ public class Auction {
         this.startDate = startDate;
         this.endDate = endDate;
     }
-
-    public String getAuction() {
-        return auction;
-    }
-
-    public void setAuction(String auction) {
-        this.auction = auction;
-    }
-
-    public String getCategory() {
-        return category;
-    }
-
-    public void setCategory(String category) {
-        this.category = category;
-    }
-
-    public String getAuctionType() {
-        return auctionType;
-    }
-
-    public void setAuctionType(String auctionType) {
-        this.auctionType = auctionType;
-    }
-
-    public Date getStartDate() {
-        return startDate;
-    }
-
-    public void setStartDate(Date startDate) {
-        this.startDate = startDate;
-    }
-
-    public Date getEndDate() {
-        return endDate;
-    }
-
-    public void setEndDate(Date endDate) {
-        this.endDate = endDate;
-    }
 }
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Category.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Category.java
index e27812ea..b6ab88d0 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Category.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Category.java
@@ -1,18 +1,15 @@
 package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
 
 
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
 public class Category {
     private String category;
 
     public Category(String category) {
         this.category = category;
     }
-
-    public String getCategory() {
-        return category;
-    }
-
-    public void setCategory(String category) {
-        this.category = category;
-    }
 }
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Lot.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Lot.java
index c8b9cbac..047fdc7e 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Lot.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Lot.java
@@ -1,5 +1,10 @@
 package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
 
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
 public class Lot {
     private String lid;
 
@@ -37,92 +42,4 @@ public class Lot {
         this.lastName = lastName;
         this.address = address;
     }
-
-    public String getLid() {
-        return lid;
-    }
-
-    public void setLid(String lid) {
-        this.lid = lid;
-    }
-
-    public String getObjectName() {
-        return objectName;
-    }
-
-    public void setObjectName(String objectName) {
-        this.objectName = objectName;
-    }
-
-    public int getReservePrice() {
-        return reservePrice;
-    }
-
-    public void setReservePrice(int reservePrice) {
-        this.reservePrice = reservePrice;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    public int getQuantity() {
-        return quantity;
-    }
-
-    public void setQuantity(int quantity) {
-        this.quantity = quantity;
-    }
-
-    public String getAuction() {
-        return auction;
-    }
-
-    public void setAuction(String auction) {
-        this.auction = auction;
-    }
-
-    public String getCompany() {
-        return company;
-    }
-
-    public void setCompany(String company) {
-        this.company = company;
-    }
-
-    public String getEmail() {
-        return email;
-    }
-
-    public void setEmail(String email) {
-        this.email = email;
-    }
-
-    public String getFirstName() {
-        return firstName;
-    }
-
-    public void setFirstName(String firstName) {
-        this.firstName = firstName;
-    }
-
-    public String getLastName() {
-        return lastName;
-    }
-
-    public void setLastName(String lastName) {
-        this.lastName = lastName;
-    }
-
-    public String getAddress() {
-        return address;
-    }
-
-    public void setAddress(String address) {
-        this.address = address;
-    }
 }
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Photo.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Photo.java
index c5648aac..404106b9 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Photo.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/Photo.java
@@ -1,7 +1,11 @@
 package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
 
 
+import lombok.Getter;
+import lombok.Setter;
 
+@Getter
+@Setter
 public class Photo {
     private String lid;
 
@@ -14,28 +18,4 @@ public class Photo {
         this.seqNo = seqNo;
         this.filename = filename;
     }
-
-    public String getLid() {
-        return lid;
-    }
-
-    public void setLid(String lid) {
-        this.lid = lid;
-    }
-
-    public int getSeqNo() {
-        return seqNo;
-    }
-
-    public void setSeqNo(int seqNo) {
-        this.seqNo = seqNo;
-    }
-
-    public String getFilename() {
-        return filename;
-    }
-
-    public void setFilename(String filename) {
-        this.filename = filename;
-    }
 }
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/RegisterDTO.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/RegisterDTO.java
index 5b60a30c..0c1f320f 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/RegisterDTO.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/RegisterDTO.java
@@ -1,11 +1,14 @@
 package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
 
-public record RegisterDTO(String email,
-                          String password,
-                          String company,
-                          String firstname,
-                          String lastname,
-                          String address,
-                          boolean seller) {
+import lombok.AllArgsConstructor;
 
+@AllArgsConstructor
+public class RegisterDTO {
+    private String email;
+    private String password;
+    private String company;
+    private String firstname;
+    private String lastname;
+    private String address;
+    private boolean seller;
 }
diff --git a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/StartDataDto.java b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/StartDataDto.java
index 2f4962b3..3b61e86a 100644
--- a/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/StartDataDto.java
+++ b/src/main/java/nl/han/aim/asd/veilveilig/modules/infrastructure/bootstrapapi/models/StartDataDto.java
@@ -1,10 +1,15 @@
 package nl.han.aim.asd.veilveilig.modules.infrastructure.bootstrapapi.models;
 
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
 import java.util.List;
 
-public record StartDataDto(
-        List<Auction> auctions,
-        List<Lot> lots,
-        List<Category> categories,
-        List<Photo> photos
-){}
+@Getter
+@AllArgsConstructor
+public class StartDataDto {
+    List<Auction> auctions;
+    List<Lot> lots;
+    List<Category> categories;
+    List<Photo> photos;
+}
-- 
GitLab