From 4931386c00d207ddfa5136747af0a14cc9d51d98 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Fri, 14 Sep 2018 14:35:57 -0700 Subject: [PATCH 01/28] Tests: Add vagrant tests for windows service This commit adds tests using the vagrant windows image for the windows service manager script. --- .../src/bin/elasticsearch-service.bat | 8 +- .../packaging/PackagingTests.java | 21 +- .../packaging/test/ArchiveTestCase.java | 60 ++++-- .../test/DefaultWindowsServiceTests.java | 30 +++ .../test/OssWindowsServiceTests.java | 30 +++ .../test/PackageDependenciesTests.java | 73 ------- .../packaging/test/PackagingTestCase.java | 27 ++- .../test/WindowsServiceTestCase.java | 203 ++++++++++++++++++ 8 files changed, 346 insertions(+), 106 deletions(-) create mode 100644 qa/vagrant/src/main/java/org/elasticsearch/packaging/test/DefaultWindowsServiceTests.java create mode 100644 qa/vagrant/src/main/java/org/elasticsearch/packaging/test/OssWindowsServiceTests.java delete mode 100644 qa/vagrant/src/main/java/org/elasticsearch/packaging/test/PackageDependenciesTests.java create mode 100644 qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java diff --git a/distribution/src/bin/elasticsearch-service.bat b/distribution/src/bin/elasticsearch-service.bat index a1d0f04560e70..dea1e8f704a35 100644 --- a/distribution/src/bin/elasticsearch-service.bat +++ b/distribution/src/bin/elasticsearch-service.bat @@ -34,6 +34,7 @@ if /i %SERVICE_CMD% == start goto doStart if /i %SERVICE_CMD% == stop goto doStop if /i %SERVICE_CMD% == manager goto doManagment echo Unknown option "%SERVICE_CMD%" +exit /B 1 :displayUsage echo. @@ -44,6 +45,7 @@ goto:eof "%EXECUTABLE%" //ES//%SERVICE_ID% %LOG_OPTS% if not errorlevel 1 goto started echo Failed starting '%SERVICE_ID%' service +exit /B 1 goto:eof :started echo The service '%SERVICE_ID%' has been started @@ -53,16 +55,18 @@ goto:eof "%EXECUTABLE%" //SS//%SERVICE_ID% %LOG_OPTS% if not errorlevel 1 goto stopped echo Failed stopping '%SERVICE_ID%' service +exit /B 1 goto:eof :stopped echo The service '%SERVICE_ID%' has been stopped goto:eof :doManagment -set EXECUTABLE_MGR=%ES_HOME%\bin\elasticsearch-service-mgr.exe +set EXECUTABLE_MGR=%ES_HOME%\bin\elasticsearch-service-mgr "%EXECUTABLE_MGR%" //ES//%SERVICE_ID% if not errorlevel 1 goto managed echo Failed starting service manager for '%SERVICE_ID%' +exit /B 1 goto:eof :managed echo Successfully started service manager for '%SERVICE_ID%'. @@ -73,6 +77,7 @@ rem Remove the service "%EXECUTABLE%" //DS//%SERVICE_ID% %LOG_OPTS% if not errorlevel 1 goto removed echo Failed removing '%SERVICE_ID%' service +exit /B 1 goto:eof :removed echo The service '%SERVICE_ID%' has been removed @@ -177,6 +182,7 @@ if not "%SERVICE_USERNAME%" == "" ( if not errorlevel 1 goto installed echo Failed installing '%SERVICE_ID%' service +exit /B 1 goto:eof :installed diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/PackagingTests.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/PackagingTests.java index 57b647e1207c2..a2b11eaff5571 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/PackagingTests.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/PackagingTests.java @@ -19,20 +19,20 @@ package org.elasticsearch.packaging; -import org.elasticsearch.packaging.test.DefaultDebPreservationTests; import org.elasticsearch.packaging.test.DefaultDebBasicTests; -import org.elasticsearch.packaging.test.DefaultRpmPreservationTests; +import org.elasticsearch.packaging.test.DefaultDebPreservationTests; import org.elasticsearch.packaging.test.DefaultRpmBasicTests; -import org.elasticsearch.packaging.test.OssDebPreservationTests; +import org.elasticsearch.packaging.test.DefaultRpmPreservationTests; +import org.elasticsearch.packaging.test.DefaultTarTests; +import org.elasticsearch.packaging.test.DefaultWindowsServiceTests; +import org.elasticsearch.packaging.test.DefaultZipTests; import org.elasticsearch.packaging.test.OssDebBasicTests; -import org.elasticsearch.packaging.test.OssRpmPreservationTests; +import org.elasticsearch.packaging.test.OssDebPreservationTests; import org.elasticsearch.packaging.test.OssRpmBasicTests; +import org.elasticsearch.packaging.test.OssRpmPreservationTests; import org.elasticsearch.packaging.test.OssTarTests; +import org.elasticsearch.packaging.test.OssWindowsServiceTests; import org.elasticsearch.packaging.test.OssZipTests; -import org.elasticsearch.packaging.test.DefaultTarTests; -import org.elasticsearch.packaging.test.DefaultZipTests; -import org.elasticsearch.packaging.test.PackageDependenciesTests; - import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @@ -43,7 +43,6 @@ OssTarTests.class, DefaultZipTests.class, OssZipTests.class, - PackageDependenciesTests.class, DefaultRpmBasicTests.class, OssRpmBasicTests.class, DefaultDebBasicTests.class, @@ -51,6 +50,8 @@ DefaultDebPreservationTests.class, OssDebPreservationTests.class, DefaultRpmPreservationTests.class, - OssRpmPreservationTests.class + OssRpmPreservationTests.class, + DefaultWindowsServiceTests.class, + OssWindowsServiceTests.class }) public class PackagingTests {} diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/ArchiveTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/ArchiveTestCase.java index 83edc8a0a9390..a62a5aa8a46d3 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/ArchiveTestCase.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/ArchiveTestCase.java @@ -20,34 +20,37 @@ package org.elasticsearch.packaging.test; import com.carrotsearch.randomizedtesting.annotations.TestCaseOrdering; +import junit.framework.TestCase; import org.apache.http.client.fluent.Request; import org.elasticsearch.packaging.util.Archives; +import org.elasticsearch.packaging.util.Distribution; +import org.elasticsearch.packaging.util.Installation; import org.elasticsearch.packaging.util.Platforms; import org.elasticsearch.packaging.util.ServerUtils; import org.elasticsearch.packaging.util.Shell; import org.elasticsearch.packaging.util.Shell.Result; -import org.junit.Before; -import org.junit.BeforeClass; - -import org.elasticsearch.packaging.util.Distribution; -import org.elasticsearch.packaging.util.Installation; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; +import java.util.regex.Pattern; import java.util.stream.Stream; import static java.util.stream.Collectors.joining; import static org.elasticsearch.packaging.util.Archives.ARCHIVE_OWNER; -import static org.elasticsearch.packaging.util.Cleanup.cleanEverything; import static org.elasticsearch.packaging.util.Archives.installArchive; import static org.elasticsearch.packaging.util.Archives.verifyArchiveInstallation; +import static org.elasticsearch.packaging.util.Distribution.DEFAULT_DEB; +import static org.elasticsearch.packaging.util.Distribution.DEFAULT_RPM; +import static org.elasticsearch.packaging.util.Distribution.OSS_DEB; +import static org.elasticsearch.packaging.util.Distribution.OSS_RPM; import static org.elasticsearch.packaging.util.FileMatcher.Fileness.File; import static org.elasticsearch.packaging.util.FileMatcher.file; import static org.elasticsearch.packaging.util.FileMatcher.p660; import static org.elasticsearch.packaging.util.FileUtils.append; import static org.elasticsearch.packaging.util.FileUtils.cp; +import static org.elasticsearch.packaging.util.FileUtils.getDistributionFile; import static org.elasticsearch.packaging.util.FileUtils.getTempDir; import static org.elasticsearch.packaging.util.FileUtils.mkdir; import static org.elasticsearch.packaging.util.FileUtils.rm; @@ -69,25 +72,42 @@ @TestCaseOrdering(TestCaseOrdering.AlphabeticOrder.class) public abstract class ArchiveTestCase extends PackagingTestCase { - private static Installation installation; + public void test10Install() { + installation = installArchive(distribution()); + verifyArchiveInstallation(installation, distribution()); + } - /** The {@link Distribution} that should be tested in this case */ - protected abstract Distribution distribution(); + public void test11DebDependencies() { + assumeTrue(Platforms.isDPKG()); - @BeforeClass - public static void cleanup() { - installation = null; - cleanEverything(); - } + final Shell sh = new Shell(); - @Before - public void onlyCompatibleDistributions() { - assumeTrue("only compatible distributions", distribution().packaging.compatible); + final Result defaultResult = sh.run("dpkg -I " + getDistributionFile(DEFAULT_DEB)); + final Result ossResult = sh.run("dpkg -I " + getDistributionFile(OSS_DEB)); + + TestCase.assertTrue(Pattern.compile("(?m)^ Depends:.*bash.*").matcher(defaultResult.stdout).find()); + TestCase.assertTrue(Pattern.compile("(?m)^ Depends:.*bash.*").matcher(ossResult.stdout).find()); + + TestCase.assertTrue(Pattern.compile("(?m)^ Conflicts: elasticsearch-oss$").matcher(defaultResult.stdout).find()); + TestCase.assertTrue(Pattern.compile("(?m)^ Conflicts: elasticsearch$").matcher(ossResult.stdout).find()); } - public void test10Install() { - installation = installArchive(distribution()); - verifyArchiveInstallation(installation, distribution()); + public void test12RpmDependencies() { + assumeTrue(Platforms.isRPM()); + + final Shell sh = new Shell(); + + final Result defaultDeps = sh.run("rpm -qpR " + getDistributionFile(DEFAULT_RPM)); + final Result ossDeps = sh.run("rpm -qpR " + getDistributionFile(OSS_RPM)); + + TestCase.assertTrue(Pattern.compile("(?m)^/bin/bash\\s*$").matcher(defaultDeps.stdout).find()); + TestCase.assertTrue(Pattern.compile("(?m)^/bin/bash\\s*$").matcher(ossDeps.stdout).find()); + + final Result defaultConflicts = sh.run("rpm -qp --conflicts " + getDistributionFile(DEFAULT_RPM)); + final Result ossConflicts = sh.run("rpm -qp --conflicts " + getDistributionFile(OSS_RPM)); + + TestCase.assertTrue(Pattern.compile("(?m)^elasticsearch-oss\\s*$").matcher(defaultConflicts.stdout).find()); + TestCase.assertTrue(Pattern.compile("(?m)^elasticsearch\\s*$").matcher(ossConflicts.stdout).find()); } public void test20PluginsListWithNoPlugins() { diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/DefaultWindowsServiceTests.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/DefaultWindowsServiceTests.java new file mode 100644 index 0000000000000..072c3da68868f --- /dev/null +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/DefaultWindowsServiceTests.java @@ -0,0 +1,30 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.packaging.test; + +import org.elasticsearch.packaging.util.Distribution; + +public class DefaultWindowsServiceTests extends WindowsServiceTestCase { + + @Override + protected Distribution distribution() { + return Distribution.DEFAULT_ZIP; + } +} diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/OssWindowsServiceTests.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/OssWindowsServiceTests.java new file mode 100644 index 0000000000000..f4de95f67b6db --- /dev/null +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/OssWindowsServiceTests.java @@ -0,0 +1,30 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.packaging.test; + +import org.elasticsearch.packaging.util.Distribution; + +public class OssWindowsServiceTests extends WindowsServiceTestCase { + + @Override + protected Distribution distribution() { + return Distribution.OSS_ZIP; + } +} diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/PackageDependenciesTests.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/PackageDependenciesTests.java deleted file mode 100644 index 6861ef0a3ff1e..0000000000000 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/PackageDependenciesTests.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.packaging.test; - -import org.elasticsearch.packaging.util.Platforms; -import org.elasticsearch.packaging.util.Shell; -import org.elasticsearch.packaging.util.Shell.Result; - -import java.util.regex.Pattern; - -import static junit.framework.TestCase.assertTrue; -import static org.elasticsearch.packaging.util.Distribution.DEFAULT_DEB; -import static org.elasticsearch.packaging.util.Distribution.DEFAULT_RPM; -import static org.elasticsearch.packaging.util.Distribution.OSS_DEB; -import static org.elasticsearch.packaging.util.Distribution.OSS_RPM; -import static org.elasticsearch.packaging.util.FileUtils.getDistributionFile; -import static org.junit.Assume.assumeTrue; - -/** - * Tests that linux packages correctly declare their dependencies and their conflicts - */ -public class PackageDependenciesTests extends PackagingTestCase { - - public void testDebDependencies() { - assumeTrue(Platforms.isDPKG()); - - final Shell sh = new Shell(); - - final Result defaultResult = sh.run("dpkg -I " + getDistributionFile(DEFAULT_DEB)); - final Result ossResult = sh.run("dpkg -I " + getDistributionFile(OSS_DEB)); - - assertTrue(Pattern.compile("(?m)^ Depends:.*bash.*").matcher(defaultResult.stdout).find()); - assertTrue(Pattern.compile("(?m)^ Depends:.*bash.*").matcher(ossResult.stdout).find()); - - assertTrue(Pattern.compile("(?m)^ Conflicts: elasticsearch-oss$").matcher(defaultResult.stdout).find()); - assertTrue(Pattern.compile("(?m)^ Conflicts: elasticsearch$").matcher(ossResult.stdout).find()); - } - - public void testRpmDependencies() { - assumeTrue(Platforms.isRPM()); - - final Shell sh = new Shell(); - - final Result defaultDeps = sh.run("rpm -qpR " + getDistributionFile(DEFAULT_RPM)); - final Result ossDeps = sh.run("rpm -qpR " + getDistributionFile(OSS_RPM)); - - assertTrue(Pattern.compile("(?m)^/bin/bash\\s*$").matcher(defaultDeps.stdout).find()); - assertTrue(Pattern.compile("(?m)^/bin/bash\\s*$").matcher(ossDeps.stdout).find()); - - final Result defaultConflicts = sh.run("rpm -qp --conflicts " + getDistributionFile(DEFAULT_RPM)); - final Result ossConflicts = sh.run("rpm -qp --conflicts " + getDistributionFile(OSS_RPM)); - - assertTrue(Pattern.compile("(?m)^elasticsearch-oss\\s*$").matcher(defaultConflicts.stdout).find()); - assertTrue(Pattern.compile("(?m)^elasticsearch\\s*$").matcher(ossConflicts.stdout).find()); - } -} diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/PackagingTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/PackagingTestCase.java index 77644b70f28e1..81d4a90b2a0ec 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/PackagingTestCase.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/PackagingTestCase.java @@ -21,23 +21,32 @@ import com.carrotsearch.randomizedtesting.JUnit3MethodProvider; import com.carrotsearch.randomizedtesting.RandomizedRunner; +import com.carrotsearch.randomizedtesting.annotations.TestCaseOrdering; import com.carrotsearch.randomizedtesting.annotations.TestMethodProviders; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.elasticsearch.packaging.util.Distribution; +import org.elasticsearch.packaging.util.Installation; +import org.junit.Assert; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Rule; import org.junit.rules.TestName; import org.junit.runner.RunWith; +import static org.elasticsearch.packaging.util.Cleanup.cleanEverything; +import static org.junit.Assume.assumeTrue; + @RunWith(RandomizedRunner.class) @TestMethodProviders({ JUnit3MethodProvider.class }) +@TestCaseOrdering(TestCaseOrdering.AlphabeticOrder.class) /** * Class that all packaging test cases should inherit from. This makes working with the packaging tests more similar to what we're * familiar with from {@link org.elasticsearch.test.ESTestCase} without having to apply its behavior that's not relevant here */ -public abstract class PackagingTestCase { +public abstract class PackagingTestCase extends Assert { protected final Log logger = LogFactory.getLog(getClass()); @@ -45,7 +54,21 @@ public abstract class PackagingTestCase { public final TestName testNameRule = new TestName(); @Before - public void logTestNameBefore() { + public void setup() { + assumeTrue("only compatible distributions", distribution().packaging.compatible); logger.info("[" + testNameRule.getMethodName() + "]: before test"); } + + protected static Installation installation; + + @BeforeClass + public static void cleanup() { + installation = null; + cleanEverything(); + } + + /** The {@link Distribution} that should be tested in this case */ + protected abstract Distribution distribution(); + + } diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java new file mode 100644 index 0000000000000..dd1bfdd9f6727 --- /dev/null +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java @@ -0,0 +1,203 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.packaging.test; + +import junit.framework.TestCase; +import org.elasticsearch.packaging.util.FileUtils; +import org.elasticsearch.packaging.util.ServerUtils; +import org.elasticsearch.packaging.util.Shell; +import org.elasticsearch.packaging.util.Shell.Result; +import org.junit.After; +import org.junit.Before; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Arrays; + +import static java.util.stream.Collectors.joining; +import static org.elasticsearch.packaging.util.Archives.installArchive; +import static org.elasticsearch.packaging.util.Archives.verifyArchiveInstallation; +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.CoreMatchers.equalTo; + +public abstract class WindowsServiceTestCase extends PackagingTestCase { + + private static final String DEFAULT_ID = "elasticsearch-service-x64"; + private static final String DEFAULT_DISPLAY_NAME = "Elasticsearch " + FileUtils.getCurrentVersion() + " (elasticsearch-service-x64)"; + private static String serviceScript; + + private Shell sh; + + @Before + public void createShell() { + sh = new Shell(); + } + + @After + public void uninstallService() { + Result result; + result = sh.runIgnoreExitCode(serviceScript + " remove"); + System.out.println(result.stdout); + } + + private Result runWithoutJava(String script) { + // on windows, removing java from PATH and removing JAVA_HOME is less involved than changing the permissions of the java + // executable. we also don't check permissions in the windows scripts anyway + final String originalPath = sh.run("$Env:PATH").stdout.trim(); + final String newPath = Arrays.stream(originalPath.split(";")) + .filter(path -> path.contains("Java") == false) + .collect(joining(";")); + + // note the lack of a $ when clearing the JAVA_HOME env variable - with a $ it deletes the java home directory + // https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/providers/environment-provider?view=powershell-6 + // + // this won't persist to another session so we don't have to reset anything + return sh.runIgnoreExitCode( + "$Env:PATH = '" + newPath + "'; " + + "Remove-Item Env:JAVA_HOME; " + + script + ); + } + + public void test10InstallArchive() { + installation = installArchive(distribution()); + verifyArchiveInstallation(installation, distribution()); + serviceScript = installation.bin("elasticsearch-service.bat").toString(); + } + + public void test11InstallServiceExeMissing() throws IOException { + Path serviceExe = installation.bin("elasticsearch-service-x64.exe"); + Path tmpServiceExe = serviceExe.getParent().resolve(serviceExe.getFileName() + ".tmp"); + Files.move(serviceExe, tmpServiceExe); + Result result = sh.runIgnoreExitCode(serviceScript + " install"); + assertThat(result.exitCode, equalTo(1)); + assertThat(result.stdout, containsString("elasticsearch-service-x64.exe was not found...")); + Files.move(tmpServiceExe, serviceExe); + } + + public void test12InstallService() { + sh.run(serviceScript + " install"); + assertService(DEFAULT_ID, "Stopped", DEFAULT_DISPLAY_NAME); + sh.run(serviceScript + " remove"); + } + + public void test13InstallMissingJava() throws IOException { + Result result = runWithoutJava(serviceScript + " install"); + assertThat(result.exitCode, equalTo(1)); + assertThat(result.stderr, containsString("could not find java; set JAVA_HOME or ensure java is in PATH")); + } + + public void test14RemoveNotInstalled() { + Result result = sh.runIgnoreExitCode(serviceScript + " remove"); + assertThat(result.stdout, result.exitCode, equalTo(1)); + assertThat(result.stdout, containsString("Failed removing '" + DEFAULT_ID + "' service")); + } + + public void test20CustomizeServiceId() { + String serviceId = "my-es-service"; + String displayName = DEFAULT_DISPLAY_NAME.replace(DEFAULT_ID, serviceId); + sh.getEnv().put("SERVICE_ID", serviceId); + sh.run(serviceScript + " install"); + assertService(serviceId, "Stopped", displayName); + sh.run(serviceScript + " remove"); + } + + public void test21CustomizeServiceDisplayName() { + String displayName = "my es service display name"; + sh.getEnv().put("SERVICE_DISPLAY_NAME", displayName); + sh.run(serviceScript + " install"); + assertService(DEFAULT_ID, "Stopped", displayName); + sh.run(serviceScript + " remove"); + } + + // NOTE: service description is not attainable through any powershell api, so checking it is not possible... + + public void test30StartStop() throws IOException { + sh.run(serviceScript + " install"); + sh.run(serviceScript + " start"); + ServerUtils.waitForElasticsearch(); + sh.run(serviceScript + " stop"); + sh.runIgnoreExitCode("Wait-Process -Name \"elasticsearch-service-x64\" -Timeout 10"); + sh.run(serviceScript + " remove"); + } + + public void test31StartNotInstalled() throws IOException { + Result result = sh.runIgnoreExitCode(serviceScript + " start"); + assertThat(result.stdout, result.exitCode, equalTo(1)); + assertThat(result.stdout, containsString("Failed starting '" + DEFAULT_ID + "' service")); + } + + public void test32StopNotStarted() throws IOException { + sh.run(serviceScript + " install"); + Result result = sh.run(serviceScript + " stop"); // stop is ok when not started + assertThat(result.stdout, containsString("The service '" + DEFAULT_ID + "' has been stopped")); + } + + /* + // TODO: need to make JAVA_HOME resolve at install time for this to work + // see https://github.com/elastic/elasticsearch/issues/23097 + public void test33JavaChanged() throws IOException { + sh.run(serviceScript + " install"); + runWithoutJava(serviceScript + "start"); + ServerUtils.waitForElasticsearch(); + sh.run(serviceScript + " stop"); + sh.runIgnoreExitCode("Wait-Process -Name \"elasticsearch-service-x64\" -Timeout 10"); + sh.run(serviceScript + " remove"); + }*/ + + public void test60Manager() throws IOException { + Path serviceMgr = installation.bin("elasticsearch-service-mgr.exe"); + Path tmpServiceMgr = serviceMgr.getParent().resolve(serviceMgr.getFileName() + ".tmp"); + Files.move(serviceMgr, tmpServiceMgr); + Path fakeServiceMgr = serviceMgr.getParent().resolve("elasticsearch-service-mgr.bat"); + Files.write(fakeServiceMgr, Arrays.asList("echo \"Fake Service Manager GUI\"")); + Shell sh = new Shell(); + Result result = sh.run(serviceScript + " manager"); + TestCase.assertTrue(result.stdout, result.stdout.contains("Fake Service Manager GUI")); + + // check failure too + Files.write(fakeServiceMgr, Arrays.asList("echo \"Fake Service Manager GUI Failure\"", "exit 1")); + result = sh.runIgnoreExitCode(serviceScript + " manager"); + TestCase.assertEquals(1, result.exitCode); + TestCase.assertTrue(result.stdout, result.stdout.contains("Fake Service Manager GUI Failure")); + Files.move(tmpServiceMgr, serviceMgr); + } + + public void test70UnknownCommand() { + Result result = sh.runIgnoreExitCode(serviceScript + " bogus"); + assertThat(result.exitCode, equalTo(1)); + assertThat(result.stdout, containsString("Unknown option \"bogus\"")); + } + + private void assertService(String id, String status, String displayName) { + Result result = sh.run("Get-Service " + id + " | Format-List -Property Name, Status, DisplayName"); + assertThat(result.stdout, containsString("Name : " + id)); + assertThat(result.stdout, containsString("Status : " + status)); + assertThat(result.stdout, containsString("DisplayName : " + displayName)); + } + + // TODO: + // custom SERVICE_USERNAME/SERVICE_PASSWORD + // custom SERVICE_LOG_DIR + // custom LOG_OPTS (looks like it currently conflicts with setting custom log dir) + // install and run with java opts + // install and run java opts Xmx/s (each data size type) +} From ae2b79003e0d665d907b8c5513bbf6168c28b0a7 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Sun, 16 Sep 2018 11:11:10 -0700 Subject: [PATCH 02/28] remove debug printout --- .../elasticsearch/packaging/test/WindowsServiceTestCase.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java index dd1bfdd9f6727..8f29517f2ed63 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java @@ -53,9 +53,7 @@ public void createShell() { @After public void uninstallService() { - Result result; - result = sh.runIgnoreExitCode(serviceScript + " remove"); - System.out.println(result.stdout); + sh.runIgnoreExitCode(serviceScript + " remove"); } private Result runWithoutJava(String script) { From 8fdbe43685122a8d85247db9bc6217fb9fa98fbe Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Sun, 16 Sep 2018 12:56:07 -0700 Subject: [PATCH 03/28] add windows assumption --- .../packaging/test/WindowsServiceTestCase.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java index 8f29517f2ed63..1aa0ebaf40331 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java @@ -21,17 +21,20 @@ import junit.framework.TestCase; import org.elasticsearch.packaging.util.FileUtils; +import org.elasticsearch.packaging.util.Platforms; import org.elasticsearch.packaging.util.ServerUtils; import org.elasticsearch.packaging.util.Shell; import org.elasticsearch.packaging.util.Shell.Result; import org.junit.After; import org.junit.Before; +import org.junit.BeforeClass; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; +import static com.carrotsearch.randomizedtesting.RandomizedTest.assumeTrue; import static java.util.stream.Collectors.joining; import static org.elasticsearch.packaging.util.Archives.installArchive; import static org.elasticsearch.packaging.util.Archives.verifyArchiveInstallation; @@ -51,6 +54,11 @@ public void createShell() { sh = new Shell(); } + @BeforeClass + public static void ensureWindows() { + assumeTrue(Platforms.WINDOWS); + } + @After public void uninstallService() { sh.runIgnoreExitCode(serviceScript + " remove"); From a31cfe45c519bc4e51587a386d82a0059cfef2f1 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Tue, 18 Sep 2018 14:38:53 -0700 Subject: [PATCH 04/28] address PR feedback --- .../packaging/test/ArchiveTestCase.java | 44 ------------------- .../packaging/test/OssDebBasicTests.java | 25 +++++++++++ .../packaging/test/OssRpmBasicTests.java | 28 ++++++++++++ .../packaging/test/PackageTestCase.java | 19 -------- .../test/WindowsServiceTestCase.java | 16 ++++--- 5 files changed, 62 insertions(+), 70 deletions(-) diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/ArchiveTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/ArchiveTestCase.java index a62a5aa8a46d3..e74adc43c9497 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/ArchiveTestCase.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/ArchiveTestCase.java @@ -20,7 +20,6 @@ package org.elasticsearch.packaging.test; import com.carrotsearch.randomizedtesting.annotations.TestCaseOrdering; -import junit.framework.TestCase; import org.apache.http.client.fluent.Request; import org.elasticsearch.packaging.util.Archives; import org.elasticsearch.packaging.util.Distribution; @@ -34,23 +33,17 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; -import java.util.regex.Pattern; import java.util.stream.Stream; import static java.util.stream.Collectors.joining; import static org.elasticsearch.packaging.util.Archives.ARCHIVE_OWNER; import static org.elasticsearch.packaging.util.Archives.installArchive; import static org.elasticsearch.packaging.util.Archives.verifyArchiveInstallation; -import static org.elasticsearch.packaging.util.Distribution.DEFAULT_DEB; -import static org.elasticsearch.packaging.util.Distribution.DEFAULT_RPM; -import static org.elasticsearch.packaging.util.Distribution.OSS_DEB; -import static org.elasticsearch.packaging.util.Distribution.OSS_RPM; import static org.elasticsearch.packaging.util.FileMatcher.Fileness.File; import static org.elasticsearch.packaging.util.FileMatcher.file; import static org.elasticsearch.packaging.util.FileMatcher.p660; import static org.elasticsearch.packaging.util.FileUtils.append; import static org.elasticsearch.packaging.util.FileUtils.cp; -import static org.elasticsearch.packaging.util.FileUtils.getDistributionFile; import static org.elasticsearch.packaging.util.FileUtils.getTempDir; import static org.elasticsearch.packaging.util.FileUtils.mkdir; import static org.elasticsearch.packaging.util.FileUtils.rm; @@ -58,12 +51,8 @@ import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; -import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.isEmptyString; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; import static org.junit.Assume.assumeThat; -import static org.junit.Assume.assumeTrue; /** * Tests that apply to the archive distributions (tar, zip). To add a case for a distribution, subclass and @@ -77,39 +66,6 @@ public void test10Install() { verifyArchiveInstallation(installation, distribution()); } - public void test11DebDependencies() { - assumeTrue(Platforms.isDPKG()); - - final Shell sh = new Shell(); - - final Result defaultResult = sh.run("dpkg -I " + getDistributionFile(DEFAULT_DEB)); - final Result ossResult = sh.run("dpkg -I " + getDistributionFile(OSS_DEB)); - - TestCase.assertTrue(Pattern.compile("(?m)^ Depends:.*bash.*").matcher(defaultResult.stdout).find()); - TestCase.assertTrue(Pattern.compile("(?m)^ Depends:.*bash.*").matcher(ossResult.stdout).find()); - - TestCase.assertTrue(Pattern.compile("(?m)^ Conflicts: elasticsearch-oss$").matcher(defaultResult.stdout).find()); - TestCase.assertTrue(Pattern.compile("(?m)^ Conflicts: elasticsearch$").matcher(ossResult.stdout).find()); - } - - public void test12RpmDependencies() { - assumeTrue(Platforms.isRPM()); - - final Shell sh = new Shell(); - - final Result defaultDeps = sh.run("rpm -qpR " + getDistributionFile(DEFAULT_RPM)); - final Result ossDeps = sh.run("rpm -qpR " + getDistributionFile(OSS_RPM)); - - TestCase.assertTrue(Pattern.compile("(?m)^/bin/bash\\s*$").matcher(defaultDeps.stdout).find()); - TestCase.assertTrue(Pattern.compile("(?m)^/bin/bash\\s*$").matcher(ossDeps.stdout).find()); - - final Result defaultConflicts = sh.run("rpm -qp --conflicts " + getDistributionFile(DEFAULT_RPM)); - final Result ossConflicts = sh.run("rpm -qp --conflicts " + getDistributionFile(OSS_RPM)); - - TestCase.assertTrue(Pattern.compile("(?m)^elasticsearch-oss\\s*$").matcher(defaultConflicts.stdout).find()); - TestCase.assertTrue(Pattern.compile("(?m)^elasticsearch\\s*$").matcher(ossConflicts.stdout).find()); - } - public void test20PluginsListWithNoPlugins() { assumeThat(installation, is(notNullValue())); diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/OssDebBasicTests.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/OssDebBasicTests.java index 5d779ac46536e..38ef9c36a29e7 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/OssDebBasicTests.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/OssDebBasicTests.java @@ -19,7 +19,17 @@ package org.elasticsearch.packaging.test; +import junit.framework.TestCase; import org.elasticsearch.packaging.util.Distribution; +import org.elasticsearch.packaging.util.Platforms; +import org.elasticsearch.packaging.util.Shell; + +import java.util.regex.Pattern; + +import static org.elasticsearch.packaging.util.Distribution.DEFAULT_DEB; +import static org.elasticsearch.packaging.util.Distribution.OSS_DEB; +import static org.elasticsearch.packaging.util.FileUtils.getDistributionFile; +import static org.junit.Assume.assumeTrue; public class OssDebBasicTests extends PackageTestCase { @@ -27,4 +37,19 @@ public class OssDebBasicTests extends PackageTestCase { protected Distribution distribution() { return Distribution.OSS_DEB; } + + public void test11DebDependencies() { + assumeTrue(Platforms.isDPKG()); + + final Shell sh = new Shell(); + + final Shell.Result defaultResult = sh.run("dpkg -I " + getDistributionFile(DEFAULT_DEB)); + final Shell.Result ossResult = sh.run("dpkg -I " + getDistributionFile(OSS_DEB)); + + TestCase.assertTrue(Pattern.compile("(?m)^ Depends:.*bash.*").matcher(defaultResult.stdout).find()); + TestCase.assertTrue(Pattern.compile("(?m)^ Depends:.*bash.*").matcher(ossResult.stdout).find()); + + TestCase.assertTrue(Pattern.compile("(?m)^ Conflicts: elasticsearch-oss$").matcher(defaultResult.stdout).find()); + TestCase.assertTrue(Pattern.compile("(?m)^ Conflicts: elasticsearch$").matcher(ossResult.stdout).find()); + } } diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/OssRpmBasicTests.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/OssRpmBasicTests.java index d3320c0795589..91abb5e0c5c57 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/OssRpmBasicTests.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/OssRpmBasicTests.java @@ -19,7 +19,17 @@ package org.elasticsearch.packaging.test; +import junit.framework.TestCase; import org.elasticsearch.packaging.util.Distribution; +import org.elasticsearch.packaging.util.Platforms; +import org.elasticsearch.packaging.util.Shell; + +import java.util.regex.Pattern; + +import static org.elasticsearch.packaging.util.Distribution.DEFAULT_RPM; +import static org.elasticsearch.packaging.util.Distribution.OSS_RPM; +import static org.elasticsearch.packaging.util.FileUtils.getDistributionFile; +import static org.junit.Assume.assumeTrue; public class OssRpmBasicTests extends PackageTestCase { @@ -27,4 +37,22 @@ public class OssRpmBasicTests extends PackageTestCase { protected Distribution distribution() { return Distribution.OSS_RPM; } + + public void test11RpmDependencies() { + assumeTrue(Platforms.isRPM()); + + final Shell sh = new Shell(); + + final Shell.Result defaultDeps = sh.run("rpm -qpR " + getDistributionFile(DEFAULT_RPM)); + final Shell.Result ossDeps = sh.run("rpm -qpR " + getDistributionFile(OSS_RPM)); + + TestCase.assertTrue(Pattern.compile("(?m)^/bin/bash\\s*$").matcher(defaultDeps.stdout).find()); + TestCase.assertTrue(Pattern.compile("(?m)^/bin/bash\\s*$").matcher(ossDeps.stdout).find()); + + final Shell.Result defaultConflicts = sh.run("rpm -qp --conflicts " + getDistributionFile(DEFAULT_RPM)); + final Shell.Result ossConflicts = sh.run("rpm -qp --conflicts " + getDistributionFile(OSS_RPM)); + + TestCase.assertTrue(Pattern.compile("(?m)^elasticsearch-oss\\s*$").matcher(defaultConflicts.stdout).find()); + TestCase.assertTrue(Pattern.compile("(?m)^elasticsearch\\s*$").matcher(ossConflicts.stdout).find()); + } } diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/PackageTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/PackageTestCase.java index 95705e94a432c..db31babca57ee 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/PackageTestCase.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/PackageTestCase.java @@ -20,13 +20,9 @@ package org.elasticsearch.packaging.test; import com.carrotsearch.randomizedtesting.annotations.TestCaseOrdering; -import org.elasticsearch.packaging.util.Distribution; -import org.elasticsearch.packaging.util.Installation; import org.elasticsearch.packaging.util.Shell; - import org.elasticsearch.packaging.util.Shell.Result; import org.junit.Before; -import org.junit.BeforeClass; import java.io.IOException; import java.nio.file.Files; @@ -35,7 +31,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import static org.elasticsearch.packaging.util.Cleanup.cleanEverything; import static org.elasticsearch.packaging.util.FileUtils.assertPathsDontExist; import static org.elasticsearch.packaging.util.FileUtils.mv; import static org.elasticsearch.packaging.util.Packages.SYSTEMD_SERVICE; @@ -49,31 +44,17 @@ import static org.elasticsearch.packaging.util.Platforms.getOsRelease; import static org.elasticsearch.packaging.util.Platforms.isSystemd; import static org.elasticsearch.packaging.util.ServerUtils.runElasticsearchTests; - import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.CoreMatchers.notNullValue; -import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.isEmptyString; - import static org.hamcrest.core.Is.is; -import static org.junit.Assert.assertFalse; import static org.junit.Assume.assumeThat; import static org.junit.Assume.assumeTrue; @TestCaseOrdering(TestCaseOrdering.AlphabeticOrder.class) public abstract class PackageTestCase extends PackagingTestCase { - private static Installation installation; - - protected abstract Distribution distribution(); - - @BeforeClass - public static void cleanup() { - installation = null; - cleanEverything(); - } - @Before public void onlyCompatibleDistributions() { assumeTrue("only compatible distributions", distribution().packaging.compatible); diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java index 1aa0ebaf40331..e18ada8703056 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java @@ -38,6 +38,7 @@ import static java.util.stream.Collectors.joining; import static org.elasticsearch.packaging.util.Archives.installArchive; import static org.elasticsearch.packaging.util.Archives.verifyArchiveInstallation; +import static org.elasticsearch.packaging.util.ServerUtils.runElasticsearchTests; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.equalTo; @@ -83,6 +84,13 @@ private Result runWithoutJava(String script) { ); } + private void assertService(String id, String status, String displayName) { + Result result = sh.run("Get-Service " + id + " | Format-List -Property Name, Status, DisplayName"); + assertThat(result.stdout, containsString("Name : " + id)); + assertThat(result.stdout, containsString("Status : " + status)); + assertThat(result.stdout, containsString("DisplayName : " + displayName)); + } + public void test10InstallArchive() { installation = installArchive(distribution()); verifyArchiveInstallation(installation, distribution()); @@ -140,6 +148,7 @@ public void test30StartStop() throws IOException { sh.run(serviceScript + " install"); sh.run(serviceScript + " start"); ServerUtils.waitForElasticsearch(); + ServerUtils.runElasticsearchTests(); sh.run(serviceScript + " stop"); sh.runIgnoreExitCode("Wait-Process -Name \"elasticsearch-service-x64\" -Timeout 10"); sh.run(serviceScript + " remove"); @@ -193,13 +202,6 @@ public void test70UnknownCommand() { assertThat(result.stdout, containsString("Unknown option \"bogus\"")); } - private void assertService(String id, String status, String displayName) { - Result result = sh.run("Get-Service " + id + " | Format-List -Property Name, Status, DisplayName"); - assertThat(result.stdout, containsString("Name : " + id)); - assertThat(result.stdout, containsString("Status : " + status)); - assertThat(result.stdout, containsString("DisplayName : " + displayName)); - } - // TODO: // custom SERVICE_USERNAME/SERVICE_PASSWORD // custom SERVICE_LOG_DIR From afcebe8b49200431bc9a2cf5dcb1a091b1a69ddd Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Thu, 20 Sep 2018 14:09:13 -0700 Subject: [PATCH 05/28] remove unused import --- .../org/elasticsearch/packaging/test/WindowsServiceTestCase.java | 1 - 1 file changed, 1 deletion(-) diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java index e18ada8703056..5086b045cdb83 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java @@ -38,7 +38,6 @@ import static java.util.stream.Collectors.joining; import static org.elasticsearch.packaging.util.Archives.installArchive; import static org.elasticsearch.packaging.util.Archives.verifyArchiveInstallation; -import static org.elasticsearch.packaging.util.ServerUtils.runElasticsearchTests; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.equalTo; From 88734939d450b0b4856aa4649b9cb52535534f83 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Fri, 28 Sep 2018 09:19:42 -0700 Subject: [PATCH 06/28] test debugging improvements --- .../test/WindowsServiceTestCase.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java index 5086b045cdb83..70de909fcbc25 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java @@ -90,6 +90,23 @@ private void assertService(String id, String status, String displayName) { assertThat(result.stdout, containsString("DisplayName : " + displayName)); } + // runs the service command, dumping all log files on failure + private void assertCommand(String command) { + Result result = sh.runIgnoreExitCode(serviceScript + " " + command); + if (result.exitCode != 0) { + logger.error("---- Failed to run service command " + command); + logger.error(result); + logger.error("Dumping log files\n"); + Result logs = sh.run("$files = Get-ChildItem \"" + installation.logs + "\\*.log\"; " + + "Write-Output $files; " + + "foreach ($file in $files) {" + + "Write-Output \"$file\"; " + + "Get-Content \"$file\" " + + "}"); + logger.error(logs.stdout); + } + } + public void test10InstallArchive() { installation = installArchive(distribution()); verifyArchiveInstallation(installation, distribution()); @@ -145,7 +162,7 @@ public void test21CustomizeServiceDisplayName() { public void test30StartStop() throws IOException { sh.run(serviceScript + " install"); - sh.run(serviceScript + " start"); + assertCommand("start"); ServerUtils.waitForElasticsearch(); ServerUtils.runElasticsearchTests(); sh.run(serviceScript + " stop"); @@ -185,7 +202,7 @@ public void test60Manager() throws IOException { Files.write(fakeServiceMgr, Arrays.asList("echo \"Fake Service Manager GUI\"")); Shell sh = new Shell(); Result result = sh.run(serviceScript + " manager"); - TestCase.assertTrue(result.stdout, result.stdout.contains("Fake Service Manager GUI")); + assertThat(result.stdout, containsString("Fake Service Manager GUI")); // check failure too Files.write(fakeServiceMgr, Arrays.asList("echo \"Fake Service Manager GUI Failure\"", "exit 1")); From fd817f7279de7b9a61bbc9e8617e5f78bf0ba64a Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Wed, 31 Oct 2018 00:20:01 -0700 Subject: [PATCH 07/28] make service start/stop test use service checks --- .../test/WindowsServiceTestCase.java | 63 ++++++++++++++++--- 1 file changed, 54 insertions(+), 9 deletions(-) diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java index 70de909fcbc25..53d467dee40c0 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java @@ -39,7 +39,7 @@ import static org.elasticsearch.packaging.util.Archives.installArchive; import static org.elasticsearch.packaging.util.Archives.verifyArchiveInstallation; import static org.hamcrest.CoreMatchers.containsString; -import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.Matchers.equalTo; public abstract class WindowsServiceTestCase extends PackagingTestCase { @@ -91,19 +91,20 @@ private void assertService(String id, String status, String displayName) { } // runs the service command, dumping all log files on failure - private void assertCommand(String command) { - Result result = sh.runIgnoreExitCode(serviceScript + " " + command); + private void assertCommand(String script) { + Result result = sh.runIgnoreExitCode(script); if (result.exitCode != 0) { - logger.error("---- Failed to run service command " + command); + logger.error("---- Failed to run script: " + script); logger.error(result); logger.error("Dumping log files\n"); - Result logs = sh.run("$files = Get-ChildItem \"" + installation.logs + "\\*.log\"; " + + Result logs = sh.run("$files = Get-ChildItem \"" + installation.logs + "\\elasticsearch.log\"; " + "Write-Output $files; " + "foreach ($file in $files) {" + "Write-Output \"$file\"; " + "Get-Content \"$file\" " + "}"); logger.error(logs.stdout); + fail(); } } @@ -162,12 +163,56 @@ public void test21CustomizeServiceDisplayName() { public void test30StartStop() throws IOException { sh.run(serviceScript + " install"); - assertCommand("start"); + assertCommand(serviceScript + " start"); ServerUtils.waitForElasticsearch(); ServerUtils.runElasticsearchTests(); - sh.run(serviceScript + " stop"); - sh.runIgnoreExitCode("Wait-Process -Name \"elasticsearch-service-x64\" -Timeout 10"); - sh.run(serviceScript + " remove"); + + /*Result result = sh.run("Get-Process -Name \"elasticsearch-service-x64\""); + System.out.println(result); + result = sh.run("Get-Process -Name \"elasticsearch-service-x64\" | Select -expand id"); + String id = result.stdout.trim();*/ + assertCommand(serviceScript + " stop"); + + /*System.out.println(result); + result = sh.run("tasklist"); + System.out.println(result); + result = sh.runIgnoreExitCode("Wait-Process -Id " + id + " -Timeout 10"); + System.out.println(result); + result = sh.run("Get-Process -Name \"elasticsearch-service-x64\""); + System.out.println(result); + assertCommand("$p = Get-Process -Name \"elasticsearch-service-x64\" -ErrorAction SilentlyContinue;" + + "if ($p -ne $Null) {" + + " echo \"$p\";" + + " exit 1" + + "}"); + logger.error("Dumping log files\n"); + Result logs = sh.run("$files = Get-ChildItem \"" + installation.logs + "\\elasticsearch.log\"; " + + "Write-Output $files; " + + "foreach ($file in $files) {" + + "Write-Output \"$file\"; " + + "Get-Content \"$file\" " + + "}"); + logger.error(logs.stdout);*/ + + assertCommand("$p = Get-Service -Name \"elasticsearch-service-x64\";" + + "$p.WaitForStatus(\"Stopped\", \"10s\")"); + assertCommand(serviceScript + " remove"); + Result result = sh.runIgnoreExitCode( + "$tries = 10;" + + "do {" + + " $p = Get-Service -Name \"elasticsearch-service-x64\" -ErrorAction SilentlyContinue;" + + " echo \"$p\";" + + " if ($p -eq $Null) {" + + " exit 0;" + + " }" + + " sleep -Milliseconds 500;" + + " $tries -= 1;" + + "} until ($tries -eq 0)" + + "exit 1"); + System.out.println(result); + result = sh.run("tasklist"); + System.out.println(result); + } public void test31StartNotInstalled() throws IOException { From c4e2aaa34e5ae8dea8067be8a2be531dda5f8a1c Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Wed, 31 Oct 2018 12:56:10 -0700 Subject: [PATCH 08/28] fix tests, works with updated apache procrun exes --- .../test/WindowsServiceTestCase.java | 52 +++---------------- 1 file changed, 8 insertions(+), 44 deletions(-) diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java index 53d467dee40c0..33a988665cfbb 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java @@ -167,52 +167,16 @@ public void test30StartStop() throws IOException { ServerUtils.waitForElasticsearch(); ServerUtils.runElasticsearchTests(); - /*Result result = sh.run("Get-Process -Name \"elasticsearch-service-x64\""); - System.out.println(result); - result = sh.run("Get-Process -Name \"elasticsearch-service-x64\" | Select -expand id"); - String id = result.stdout.trim();*/ assertCommand(serviceScript + " stop"); - - /*System.out.println(result); - result = sh.run("tasklist"); - System.out.println(result); - result = sh.runIgnoreExitCode("Wait-Process -Id " + id + " -Timeout 10"); - System.out.println(result); - result = sh.run("Get-Process -Name \"elasticsearch-service-x64\""); - System.out.println(result); - assertCommand("$p = Get-Process -Name \"elasticsearch-service-x64\" -ErrorAction SilentlyContinue;" + - "if ($p -ne $Null) {" + - " echo \"$p\";" + - " exit 1" + - "}"); - logger.error("Dumping log files\n"); - Result logs = sh.run("$files = Get-ChildItem \"" + installation.logs + "\\elasticsearch.log\"; " + - "Write-Output $files; " + - "foreach ($file in $files) {" + - "Write-Output \"$file\"; " + - "Get-Content \"$file\" " + - "}"); - logger.error(logs.stdout);*/ - - assertCommand("$p = Get-Service -Name \"elasticsearch-service-x64\";" + - "$p.WaitForStatus(\"Stopped\", \"10s\")"); + assertService(DEFAULT_ID, "Stopped", DEFAULT_DISPLAY_NAME); assertCommand(serviceScript + " remove"); - Result result = sh.runIgnoreExitCode( - "$tries = 10;" + - "do {" + - " $p = Get-Service -Name \"elasticsearch-service-x64\" -ErrorAction SilentlyContinue;" + - " echo \"$p\";" + - " if ($p -eq $Null) {" + - " exit 0;" + - " }" + - " sleep -Milliseconds 500;" + - " $tries -= 1;" + - "} until ($tries -eq 0)" + - "exit 1"); - System.out.println(result); - result = sh.run("tasklist"); - System.out.println(result); - + assertCommand("$p = Get-Service -Name \"elasticsearch-service-x64\" -ErrorAction SilentlyContinue;" + + "echo \"$p\";" + + "if ($p -eq $Null) {" + + " exit 0;" + + "} else {" + + " exit 1;" + + "}"); } public void test31StartNotInstalled() throws IOException { From af129d94191555f23b97b32da922cab762e36ee3 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Wed, 31 Oct 2018 12:58:10 -0700 Subject: [PATCH 09/28] Packaging: Update procrun executables to version 1.1.0 This commit updates the procrun manager and service exes to 1.1.0. There are a few bug fixes, including for a bug which can cause lingering processes when removing the service. --- .../src/bin/elasticsearch-service-mgr.exe | Bin 104448 -> 118184 bytes .../src/bin/elasticsearch-service-x64.exe | Bin 103936 -> 114600 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/distribution/src/bin/elasticsearch-service-mgr.exe b/distribution/src/bin/elasticsearch-service-mgr.exe index 730240403a7daf5d3d0ad8e879b6b040c9668c83..e5d4b55d91628e9ade6d2612513378f43c9682d6 100644 GIT binary patch delta 34663 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 delta 23936 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 diff --git a/distribution/src/bin/elasticsearch-service-x64.exe b/distribution/src/bin/elasticsearch-service-x64.exe index dab7def75583fa8c3a14fc14cd2d733070594633..acd94f2507615f703380e78ff201d1c8ee3de390 100644 GIT binary patch literal 114600 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 delta 46335 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 Date: Thu, 15 Nov 2018 09:18:14 -0800 Subject: [PATCH 10/28] add debugging stuff --- .../packaging/test/WindowsServiceTestCase.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java index 33a988665cfbb..14257928260c2 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java @@ -177,6 +177,16 @@ public void test30StartStop() throws IOException { "} else {" + " exit 1;" + "}"); + Result result = sh.run("tasklist"); + System.out.println(result.stdout); + assertCommand("$p = Get-Process -Name \"elasticsearch-service-x64\" -ErrorAction SilentlyContinue;" + + "echo \"$p\";" + + "if ($p -eq $Null) {" + + " exit 0;" + + "} else {" + + " exit 1;" + + "}"); + } public void test31StartNotInstalled() throws IOException { From c557f2392b09dfeb1a1c74e7590262b892bf164b Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Thu, 15 Nov 2018 10:44:43 -0800 Subject: [PATCH 11/28] use logger --- .../elasticsearch/packaging/test/WindowsServiceTestCase.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java index 14257928260c2..b0c9ddbe3a7cd 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java @@ -178,7 +178,7 @@ public void test30StartStop() throws IOException { " exit 1;" + "}"); Result result = sh.run("tasklist"); - System.out.println(result.stdout); + logger.info(result.stdout); assertCommand("$p = Get-Process -Name \"elasticsearch-service-x64\" -ErrorAction SilentlyContinue;" + "echo \"$p\";" + "if ($p -eq $Null) {" + From 68d9630dd6097d9565d8aab37598183383b97383 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Thu, 15 Nov 2018 13:35:11 -0800 Subject: [PATCH 12/28] loop waiting on mystery process --- .../test/WindowsServiceTestCase.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java index b0c9ddbe3a7cd..a5c26267687da 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java @@ -177,15 +177,16 @@ public void test30StartStop() throws IOException { "} else {" + " exit 1;" + "}"); - Result result = sh.run("tasklist"); - logger.info(result.stdout); - assertCommand("$p = Get-Process -Name \"elasticsearch-service-x64\" -ErrorAction SilentlyContinue;" + - "echo \"$p\";" + - "if ($p -eq $Null) {" + - " exit 0;" + - "} else {" + - " exit 1;" + - "}"); + assertCommand("$n = 0;" + + "do {" + + " $p = Get-Process -Name \"elasticsearch-service-x64\" -ErrorAction SilentlyContinue;" + + " echo \"$p\";" + + " if ($n -eq 10) {" + + " exit 1;" + + " }" + + " $n += 1;" + + " Start-Sleep -Seconds 1;" + + "} while ($p -ne $Null)"); } From 1467f949bb8b300937c040c0b2f3c1a111fbaeef Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Fri, 16 Nov 2018 08:49:49 -0800 Subject: [PATCH 13/28] try blanket sleep... --- .../packaging/test/WindowsServiceTestCase.java | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java index a5c26267687da..b3981ae5eb73a 100644 --- a/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java +++ b/qa/vagrant/src/main/java/org/elasticsearch/packaging/test/WindowsServiceTestCase.java @@ -177,17 +177,7 @@ public void test30StartStop() throws IOException { "} else {" + " exit 1;" + "}"); - assertCommand("$n = 0;" + - "do {" + - " $p = Get-Process -Name \"elasticsearch-service-x64\" -ErrorAction SilentlyContinue;" + - " echo \"$p\";" + - " if ($n -eq 10) {" + - " exit 1;" + - " }" + - " $n += 1;" + - " Start-Sleep -Seconds 1;" + - "} while ($p -ne $Null)"); - + sh.run("Start-Sleep -s 10"); } public void test31StartNotInstalled() throws IOException { From 905ba7e4ede45b97968d1bbee5a0deb5a300d233 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Wed, 21 Nov 2018 14:19:15 -0800 Subject: [PATCH 14/28] temporarily add procdump to get info about lingering process --- qa/vagrant/procdump64.exe | Bin 0 -> 341672 bytes .../packaging/test/WindowsServiceTestCase.java | 12 +++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100755 qa/vagrant/procdump64.exe diff --git a/qa/vagrant/procdump64.exe b/qa/vagrant/procdump64.exe new file mode 100755 index 0000000000000000000000000000000000000000..4d3b31a67a3d37127bf91a1c3e23cff4599d23ce GIT binary patch literal 341672 zcmd@7dwkTz^~aBIE(;L|8-#7~f<_G*K{O@M1|zx)iM%5li3&=+M$r@$mBOx|q6U&w z*0p;z0|6$+S*p-X4`O)fG8lg7PVelwSC8U!CEnhy1(aZ=DnLu#E<O|L;FVd4a&-Lst(DJi6aA zhpo(uJ#*Of*>e_@&YOSbx8`4XdFiYRuejpMc}(wb>!lwN-2#g`mg zTs)x6NB#VW=7)Z;_}z5omt0wzzJ>R{j2WCBV4hz~-)^3v^n*NqT6kT0DbF7)elK0h z^NN9IrElZ;UT|RgyFBkacD#ZA!Q!jU^Sxk&d7eIJ)@+sWMKx-u4FoR!PQSpD7k)M~ zlV?}p@W88XEzxw9~^OM!-9U^b`%rNO{4BYAcg1|B$(XJat1tBB-{`GG24zvy54rG6v_>-<3H#kF~Xr}@WwQt#7y-skAOCiC9% zcDeV_-GKlZ8;}vFWkY%AQGTM}Nw2NkTwB>*xjC9TEiWB@>-XeJ2G99Np~<{nrS$y! zeE!uof90Ni=8v2KM5&VsZrKD{_XQ`Jw|iY)Jm~$qCXe^^&{KL&P8l`Hd?$HIk>jqj zkp{lPar5fjoi*+{CpEpSG~F=Vai6*6H)3d`3BT>Oc@?R_?)(O zCwW1MlM3Gmq!X&$zUbLpp`>Nml$9`%34*s(GW%yYNH=}Mh_43A1Sh8AdOa-TJ zEDR+26R0NOBq!7I@a^2P3hGk|v*5>)wvjO?o@XyI4b5wOC0xa-YV6-Egf%kTCN{%5PaQfxt36w;|}aPoTS8?PV(v! zr=`1OKK#s!EUW6OblkNY^8#I?Rds*|IjLdC#@r5XplT^_CwXnj{Gj6&bV1VkjfGW| zJh!aMapMx++(to_e0WSjz>Cq2Qb3+wPV!&2=;h<_Ry!eoYJah+#IUMP5+F7?Z9C#; zJML-2otBSHv3V+Xty8^g{$vv+zBmO_OPuPhSA8v$$LkIzO6m+RxC*-@$CQ@ zQL_wazv5Z+yszJggc%vljWui?2umIJdG9e8@P%9zr5U_N%HiRyqhZ_naT&Jt=&x-5 zaa@`d##MhDT52oS;f!8K)fSHTrRlVi`Dlc^jfEwUw>GC2sqG7g^i;+aN`2#}8A!Fd zWj`|Oqy|xpP{#+Ik{Xs5bKAXtLsw62D5JoNhtC^Z2gyuzpE9V}mQhsf@NC6mXtm)^ za=Q9YtgPsaGtY{iNgt|mI%>*FX}ENqyGylnKXzKSg`Af3XIDYp$6e!*{^51B`m>$R z$_IaK|2ZH1+j;gay4O`-aXLB#Z75$GgDHilq)y0lQq%HkD|e$N;s-b_d(sPwz2{EM z3&bdc*6!yGuFMN8?;0jnHA;f!Iqu@J*)c+koVMNZL#=#3z)(r&bBd#dH`cjZz2^Y6 z$#k)S-f++&7O`X{{fG)KK#bCK&N}y%jfIuu+)x!g|AO;-6p7!$h82b>G5ApmE6QW; zI%%!QYP3SY8+wAu*--9}8<82&vz*l2vYn{Ka*44U{My65TC6Rq+!1s4NcqjINllvP z-S9*7%4Rs*u!x=zOD-;(nGS!9d7vx}PO^3xX^Uc@Nr#VkAV1L79%?;N+9i2MnIq)M zN6Q+_^NF&VJY&gw%Sw5!&c6X=xjB}6sBE~2ezdHFXFA-3_35~q(&2g&h?UJ-EqgBJ zzLpOE^M0i%N~T?nyDJ^umW`4P?{=rdf6T_5tr+q=n2D*ae8=5c*&a(?zCG2D2k|@k zy~fYuw~Jplzd#MDxzs_(%Jrv0f2#B+k`B)?m}<)AfkOGW^V{im-2TztIh*dn;*7c* zZ~y4CWc??r8$V8`F*a;;vc5Z1LIJ7z*Fr;TsYp_0lq$lgHD;Lx8*GxArNbYo2@D3+dF_4q3{&;nYg4s(t0xpPawyMpJ$ZJf z!?!7qYuOxgE!!R5)jHL$UN@yFbf`uR$peHX&&$w~4$tzj8_dy_z7TVLcbelDp%a+hq7ltwQ& z&zIjmSTOD5B43ooPBU zp#U506!+Y%MRn=51>JxrHuUIpw_}pDXdMP;i!nob>ti#XIdrGtMtPOiyYI)`ryO@k z-7JQ;_fQ{7$XZVpZBc4obbZRp){TwWlWJkiNJq^DSEp9n?>Wk%1p z4D+pwC2u#XU%J7XUuA8e24drxsw{ZxEp%g0A0#;w*2FCAV$zh+cT zl&wO|wbNobpqn7N^v@qVkvc2=aOwe zb{g*~DLuMX#9(fx2lbG2kNVRpO?ENspl$Vdx=cF!i(Z+o<4sDme03eEeH~t;;Z3 z5lfBfcCAGlftd%l(pz@dyH83ms=T|Y#)NoTMX2o!FnH&qZDDN%ioESPMVv>YGtLk8 z-eBIXl+MQ$-H$irISN;jcf0>`ATMgW<)Q`EewTSZQAWEO%|DN4%89J@$QNT|m~G;p zC=+|q;g)-0Y^wOt7STF$e@B|_M&dg9Z!g-^oLo4dW6I#Fyhj5~$%RD>k}c~Csm*Vc zo7Q;TO3F69&f2unj2WpxQ|nsRigVG==sDgGlxNnay40XL?<&Hpb|ZS=SPf7t- zbV@oRMg4K#bVLS?${QT$kU%xmrRoZ!9eL^W(tvj=aP_IWe&7LbyzaB6^pqllu}m0^ zET_T&c$|ZAbKp*492>A0^Lj8g2fR-{{UVGzNRg>78aMW)G5vpG{Ph=NY$io?t@;o` zO;zuNovL*o;wW)0C7N18fVkTvgz0eYJsL!;>}Xsw zvc#Yw8PlL5nR6KDj11CEC6ki#_*pTuMwQhK9c!VyIUSyPr%aawMs-X{6abAsg~sSA zI=|Ee+NE4Uql41n^v^{KnbYA<2nul|blXPFCVG^>x}(kTrJfl*@BH=N;UKW{nc*|e z#0WEPjpDf!gJJSvI{cHn)d9kj#T%JG*YIAGx-L(uPlnZRDL+Q1b<*J*Y}O+DV9NTO z`|^Yld;eVsM|Oq2yVTIhK;VAL_*dr+`V6ci!0H{tq=L?Tgdca9;)dI}P={mtJevnYq{U{YpSMR*8tS&X|v(TY6V(O$K@}^E_QZ}jEEp8>7$+P&)^yXx7 zf>$#N$p+R$=3E+815`s>do)!0QQK}9^(5LyL(~Q5pSNC9;ZkgP%aF=<>SexvT;qPq z1TWOOg}N}$2(_*=mBJ0;z8p(lT-H#Nx+HJHf!ALzE#|l%Hf8lEb=ysS$1I_4CopTE zzK8m8UsGJUjT@-?Zmd3Z@wTq5!~_C(3O4 zT5LU4Fw)ju8>;;z=0aU3IXmKx68*HaJ zw`?Y)isVQ-{NhgyxeY1-2>u zW7FPUnzE&eCx~06xGTI4{t$5j5urbAcXxUNh)7Mo|AAK%`~69SK_v9}XU$!w?q2_D zykDd_otJ1g#+npG#@(ziyzYzuIE|sqkhSzDgwgk+5kn?>NjIzuMH- zsces~%AX;7+ANA&M)v{bqG8KW@KW6hL`ye6`f$jZ$~^=)cx zL|Mg2luOHuD2tx;SsN~sSdf#LBT^B08%kZY^80xHLf>sRifM6K)t}Yg)g9MgBBsIB zvx|IvIS?9uzL@rU7>gZsbR5%tqJE*MpV+8_)A)AR7ge9Qc)O7gY0xUez0&i2ABkcz zoF$S(#YnZ77xNUEMt*%)8NK6U&$TQ$Q0@o($@1^Qp@Fs>z%IyCy~k&oQ{AWW7pTVN zZod2=Oj#P_1}Ft{)P1+!?KVtE8Ya-Y*BB#dLfC^SYRABjf($jrmC^V44APj7u}1hHN-xW9QHQ12K#f>el>ta!H`FFA55 zysn9P0VX94lX=%rn?{UVy7S{ldf(1u*#HUdGu{{oX?rIcx^*M7dufU&V;1q@eZ`A! zZJR@FOMs2JfA2BNxBWCL>Qd}=$#aV8l9!d#B^L~@OI}-Q)NpjA)OzLS`s4yE-}9iz z8Y%REhIBX~1-A(evs05|#nrg$W9}wRr^tRP$#8VV_4E)L`QH%0>n8h(0pb1C#%#^R z?DE#zn7?OYJnwfl<}Dk8E#cj%7`NM7!5D|+j`vQVKE-O7AamI*Es z26Hc3g=#EUPExxny%9M;zqCM&p92~spbz*1P@{K)mH5rY5xFsTh;5@>nYPy7Vdy z7FivDn^M5uE@WO~UX{joSZU^|ThifXHM(?i<&L&?MmIbHMqdfJ^wqpWP3=^AmY{5Z zuUHvCOS3#8%rl!PsKFmxDU#;8MRefYvqM1G6h%tR-2%0d{LqRLNzMq=gXu-o+N?DR zf9VXotka`t0{IRfDy#T+I=yoH0ZjeQe;A5JzlJt{`^P>n+S-SUj6JoX$GcSu zt5T_TbePH=(UqUE0@hTMe0VwUPO|L>JoMVm(<@mDHnOq|ZL;>q&4)xa=+AVMixlrI zx|fr>t(|bx)LD~*F+a@5P<$iQ`Yk4-s`qrU0S<(pL(lr-TAK=GP{a*o@G`PZms7*% zN!=}GSnQ8zG~~sLvQ*|`yDbNsXzqh8z|7Ofw)Y30!zKWqa;m8}Z$yO3uMK_>)AXwly7++ptDfQg|E%w`@fT8|vwD@MNZ6RI@G0T2%Ncc?BXL2x@9Fro$%? ziO-Z?d^C2&XV+p5wrVO?q6&p-pCxh#LGOuCxRuAD^v5jF4Z4PYHV6%)F?=`RWgr&lDUwv>9B1|GWIh zugR9*PUgPl_s=bVHF+%$pC;s&KSn%UWXpd={t(qK9ey4KhAvnmW?NRQmf(5wCrJ|o z@3-+PaOI)VVhGVv~AK z-_%oW>V+n?zHe%UO`R3Ly2kxpGtGo&Jrx{lv)x5SQVk{QK?>5(@3D_x+sE&DB-_xr zxF6d7#KU_ZFE8+t%U%`UO#g_b+U_DxulU~)PsJ{ZJ3#I13w4X2+#8o!$!iDLvhP}h zEm+kz|15*;x9dd&d1drLOEhxLk5&1=!NRhIox7aj8eSY`vEk+n9OivU$UZNrw+aNKs+&eg?*e2iwPBThO1t ze$e2}GpI7XvS+?a=bRg5i$EkV@!y_)`Q3$bhJZe|cUoQK>!7z&bj@zMw7TYySqY_`Bi zPl5kXfp3qb!1Y}-$aJ;p{de98e|nWz8{XfCvlPx#hBYR`ZAM+CieFaL12#$|04lxe z-A0sb@RS+t7@Pm{Rq*0yDnF1+OEze9j9w5uKYCvDT)8>2Cbb!_`;4b|?P5G_q_2B} z?*oe&Pw)7CW;|_R#I%Fye=1+nSQ;xkJv)+WO5Mbt1~tPZZ|gOAf!eWeXa>S>oclq2 z+wM^7uVAVfS8#jNhO|sgsCJVyIo_`DiwS9WhLx?+mdypGIYneuI$VCUwAPqs$>5|W z{)-3fK1dDA>Po6O3UBH{wSV=NF;(ikSKL9{ffC=mM&BL}M1*3d+G3)Q=7~B}3^F@T zYA_w%>ShPa3O4tsMv*TXwXbW}VXG}2T zLCXnI{OzEFWnjOO zZM-t2sqwZPZaT!x>MVaIY-@8#4)$M}9F}A3Pty8?;TK#Q>d#S%A0xllOvWxYh7_MA zWb+M}%+U0DKxT@?EV3C8+OT-FKrrXyRd;D1WFdt|pI*g0 z%TA{jlxo(CZ+&tJ6IFLlU2?L=%W(KG8{E9U#(Zn1@7TyX)5;5IChV6|O~%sU5lLUG z90G-RiKYh+lLC=V+$g8bA`IgOdGe;0&68n*&HTcDWizvEDv!w9Oi|ii3K_%JdzD3K zOrX{_qdD-SK+H>5_co>s7DS3wX57fWe*>W|FQC^dZl0)PeFVft--)vOMA?uprYy>S zHYhtOm$K7AU}})5jjf2;MFHn3)Nj>MkB7kMDzQcNvy9U2iU^g+7`KBn#0-O&s{!y@ zOAVWh2Tsh10PKZ~^B2hxXLj5u&Ll4PHh%_hd|2PK3y~ZGG4dRON23?)pGrVm|x~wT&c)HbLA)N-X(A z*>av*D%)h9EL$i(HL`;eVyTHmlx26HcnelRptU_-QoUvoq4~pFvBSSj$i9b`UP2g4;3Ueaaks7J4bOvD`cWXT zN<@3_9z?&Re={eKalv=a7m6MeNRydNbklM%I0st`t*(>yeh~KUf+p z<#nOS8|>_)TwTTc=5C-(j?mJ@K-(%E)Tc_Xqc0tI7ggH*g;m;Wsln81l(%k%o@*ckdRlm(NIQD?Xa)%HxewL&8FBDxpu`G6>(O|ov^HfLU29d)s0|T! znWrxlI5&*=w9CyQemL&UWzBk`7Qe;%JL>QeUbBt>-@=GsTWF5n+)W`%-fk`uWbo8v z#+sN%bC?};d$a>$z{;}%{hK>i(uUel_r8{I9|1%%uT@lhezD|Oc6UksYS=fcJ{W4d ziu??(HT$P#=7rj33);o9w6n#xWP!1uUt;nuJH@2NG?ARnjMdG{U|EIHwsl^vNYE`84^v}uZsmcZYG19mc<4g%q9eZmHf--o`#%2U*Rr7O5*Fg(wcm~Nnt#puOij0sv!n4o2s2{zgck_I)5bhvFQ zMoZJCh($xO5ev0>*5-^L4r~t~3Ne^+V^-lcnwbB{Bh(`YGsX9e9NeWG=%#r*E8lUF zqo6?T5z91S8z!&BAhv(%Jj7r>(`anPHBGiH-QYLo`+mbjKG)1o=ceR}Mw=#xV#~}- zV?HSxR4kgOCcG%ygz`6dJFoOxkmeKj{L)|~nG?ZH90)L-Q zW`bb+?e5zQ$TMSXbfs;IO&`VVm?_`0n&(~F=ZoZrXOvCHlE*u#8Jl9s>o$46p$)9G zr%Y?qZ;GXA8QH_PVeW}C+bP?m{~foUlo_uXf~zdlWE=k)@#Ws{7_4kGW*Iz*tBWM? zY1R&xI=ly^Zj;e;23w6=i=Ux>r<%ZhKHU(p$UQHmYskbw9&?Ad z&qdRxHyF?oKHnJKu6EQU=sq_v2MHN9j*n#QEjBX%PI+f`}mftjXeRYncH%juvE#HKun zB0VVl(0tfL^P3H?5hdC-U39AYO9VTO1p*-Gg_Z=q+q>yi;stp)XH3@TF25O>Z`4rgnveML<`(vV-<0Fh0-Yy1mcPF$YYP0(f1jpzzU3vpP8tx}*Y^)*- z&l^=fe}v@043hW;tYenxdcl`Eu&~j6#Yy(>gJZVA4?1en(^ynA!wLH|`-2$+SQa)r zqm8;Bl#w$B^`m{<@2Q3m4KtW|M>`}V0bheBu48cb<6!dKPDS=5Ze~mIsuk5EfqH+yXmPuB8eL;-S$RhT0>+_sx zF!lPldF3k-ZB}1&HlbMU>0SF3bV3I!0*deNR0n?!Es0{sol?Zh?Yyw9+a%mZ4H8HC z3Cs0zfRj9AS9umvI)@64i>B1XL`%#L zqPMc*u*Y!oW$Nh71+BN{+jeT?xPMhuj{$4vWV9@7DKR@wL8B>Jh0rZo+Ya;7;rk3@ zrj#%@TLY$+mD-dn>;FmKqO0nsO@1wOYrC08X?s#>=zm99c?=|3|HqX#8 z1(ZS|pv2$n+%zW};IHnv>)ek$r_YkGMz5lXmQXt3O7%5vMJg&80lhzxiK zHmPP9`yH)i%|sj;(D4&9;5Dq?PS$ioMO%B~EIW;xE*lq(MV-!qs7>BMkE=R6na8~( z>s^LjgOFE%3I^jysdt|?{*W!ima3_|qt*##i+AS=JvGnpwa!*=v8GlS*=iPFMD`o3 zAktx_LB5RpuGY-o3W+)j`+!aUo6C$8V&ZMc0}qG4h-T+kj|2G2`p-j`Oa6z5h`#b) z{J->{TLs^;FZfCS6MU=SC+`bB|9^sy3%+1q@bmvC_=`>bS=-=*CSI>vmhwNxiE@J} zGrslKe|`1I3BtF);OoQBu^jaNa(#4+;4Ak9|DS>X3;Zy_e_({FPx-(9pWr{43;ZAU z1wa3Pf`41^3-$#+_J4x^i{LBw1^*w8;e39-90Qp-rTL$%0=DDvqr%fQI4`gyU4HP; zW`y_atGB9<>4jkECa-HK0wJNXA(Mb)QZ!wL{#q~Ggy58WD=89_`8GMV# z=9QPC!RWeMjjl##OH-G>p$;zHYEnb3zmV#1o24+-Un?A!6O=nct=}>6RzbF$lGU$+ zbMszGn5>;v#CEtJfxT6vEeQmLuM`*D7X<*U9YIw@EaF z<(#rK)cwFIO zjRixt07;wL0 zQ~!O!zyH6Kzu44&pYXpEd_+6J}+l|SljJ! zHb2n$PaH;$TgMdXjxt?IlC`d#c`Vf2T=oEQ941Tfo5t_xG%Eod{Q_o6QPncd?n14& z0pU#XcO>mULuGbe>}T-1L#Xu(n`4-AT&o=Hq&6tBIlg9d+@qR)Q#nd|=P>>0-Z`XJ zlUir{M}rPkHZ;hVec#L$G)>1lI#U(FjMvp9I?w9xWY3$ikF_N#5_R9v)A26y{5^B#Vqr=y;!YDHGXMX*;pt>?cPW--(Z`neae4BN9W|G>9`!O$IRO1~cEd z=w)0whxBB+$YfHY9pxsGF09#U$lDs;m>J61FFRF*oR;09HMcg9_%P$&KIVM<+b!*f zI0bm|@Nu8s&&*ejq6kZ*b&?vIv?3;&y#2`3^$qJFw+Pm=b_w(_3%%dxpn=l1)9pcZ zeDBaPGk0bZ^k)u(YS|ttJ?6{9q^3Ai7?Yl3p|FuXbpuktd=2Y>hZa)kK{V~aSp z%P_0`+js>_&5Qh*auK$@boFsd_T~*8+8jS>$=+#t9!jsj z>ij7hSazqvcfQ>dKEn^o-`2|>F50L6al^Tgx>rtsT>s-C=in#I_#Y48CF6g52I{i@ z$4z?i{f{O4@;~m=lW46hf4{pMrE|ZKE1PGCpi3br>rX8CQh#D!97hSqk>F_ACV%3! zCFyMm7N3IeHE~1=NoLnWfpF{Zg5qkV3hW(mXyc0~u_}_b`JYdf0 zwV$j19tL9CU&1_(j$AW#BonWJYS`SynDE@4(p)xQt;Zt zRhE7J5}$3RKC89xFSP_g%A7XQd$b`V%i^@@kMrn@T94X~twnHZ-Z|_PC>{VY>F`4o zjZ%MkmUJygky`bh3_kV)%xc^LTh%nPwfn%ytoL##w>GsfFH-e~mobUs{cGGmV5VXg z-dwf}CdX3N=rH{;v&TqJC31T@aFi9Eu!DBZotvbbQ4m$IqeQZ{Gk_AOkVT|O5p6%JJ^aG%+O?U-cm~!j+^*cr2 zF4gm+|G(`vtz$`|Vx5b}+4Et^~JVxX|oi+R(#syMt*6q#Sjm$@H#fDrV1lYK|A(aM~PDq>nMs9{3DufkGkzn^}6~0K+AYXBRp#Y zAJZqccn45c%AXFY4$ngxQiVSwk@Zq02!HAR zawKtsB*B5SckA3&-Qu0RN2{kb#P@d#7>QajQUlE9s;4$2-i^7JRm2J|qg!n8jxk#{ zyE)uhGhsnt=sSO>P{$3wd4FNR&{N9|iS7Wd%!-e9r&Kg8=SI5t0A01l9d#dc9fp6f z)JbyToThID{Rx(CjF#t_2}}4ckkm3tehWx-NU61|Y)*IpA`EqHG4w4t1l~D zuz%-7i4yxdFJK_J?cdn*;_osxusH7cJRxxpajIX5PiL4b@fwhF$fbJB6JJSmbxl+n z6jwXdpT#Q-KNx3AyrXQ!uW0h@9uz8>QW6>xDG8NKD-8{CN*(tk@+bZpb8j_!{pt~& zQ)-iA>)hvKZn1k`A&s0@SG_hq9{VNcMuykZ`f$=ItsA`wzFr@8oswu0GMFcfZWs>G znE*L%0HDNHo$+#8%O0Vj>PBOXQt4aER;t-X=hr7oW64pA253%Ry*3t__I}-E8!vWl zcRs?bU=K>q3584#HTH+`m#)$Zn(_6%=)Lkj=%8w(?m1#W+^KOlC0-lzfKvk#a!fhz zqc`EK{l^i;OjkD%>#`{}-P)^l9L-#6n#L)SIW{;{QV<%F7b=+wC+kXNUHAlwzRY~) zMSu5Nv1C%7M`MKeJEY7854*Rcf{9EzJnDQ#R_ZV@&1FyR@vnzg6g9Q%DZFZo^i)Mt za$snMli!q_%27zCkY^#sBKtKZC->7{>K^Q=@E)vSSr6fzoK_L45eCCb){_Dq1^ohp z0(~Lg%Rt=M8-g_r12OP(5YJ>F;=LiHm{dm5=OET(ASU&Oz-ee8`h5=K?hHgpZwP#K z2BPqD5I1HZUOBf{%~7`oqTq87muDaz>J5Q~U?B282cdb2;qEm)#6gC;sD?NY znf#~t`LX(F&y}iovY>BEgfqDh?t?wJFYH2;Q<@~Ur+-wohaUgf`1vYdLYqy}k=v8a z$rbM`s}G7ZlLjM~p%rMj(25v2Te^b_ixOW!{PN~svPN2eHKs}+q7$DllG<FvbfB46*)!%tY6A zJ@Z%f>3hC+`F74D&7=E!*MFM{tT~S~=sYw|C3mN`H6AB7?=D;)+!YvoLh~ruwg*-2 zPL98x8%!e0#xKxCCdu)Ocyum8$XizLRQ(cz(&39|<_D5D>Xkb+s>aWlR~U#-j<%e{ zwuqf%iB4F7O%{k(M3>x9f><>tj*L{TkncA>1XJbbXBPxgXXde2J-!KkEgK&OzB5b_ z7R7Bs;X{VnZsZLY_4{|BVJA!}O8Hyg8Xifo9Q0t!=O)&|1G&G z^67x<$7Zk|oyqq{@(pB`-}OL^`)+c4qeVA^ z2i!TE2gkGG1<~Z!qb?U2v~(ARZmgpi<^wZ+$kwu(mmVDFt>CHjKb%zRqC?@CPEf;) zrsQLdyn3(H$WfNM=&0UFyn5?N@(BvHawHH_Zdyt7iM&8wv)TQ(WRGF*=sI^wDVw35 z=8!>RP&EByO>)di!d-{gxLwH+59{nfGWZ+Cl$c8V)WnRxgGXJ<)->#CBN(Y#czJx# zl09Z8OzZ71zNWe>^u6T-VyRRk1aXQ}B-e2~YNeL^Y^*FOP83ZT7fpOr3xV~iD@!o# zQL1AntdO_c&j%w9hvC{X$7a!#Fd5%BrkPf7n>J$Dj_QFR8Hn;&L9bj9+gv0E4kNJ@=jv1n~{$!QKPV_ z&zs5~T8=NP%DT6rF1@j7(u8sI61!{MEvtw5FpX;XBmHbpdi^(5H_c2em#hK4>0Rg@ z?njZUd8*A->ivck$Gy=kQ2T4sC7{-MHtpZRl5O<05zr`DME3CbUA~GFS4U(9U=`-qyKbqOo6Wt9Gnkl8p@rV7a zFt9QB75=gtGk6fs&VxYnIr&PC|L6|WZ{OxYM|+<~$Bk-mjXIHKE4BmWRjQJfLseOk+bywA7RKiBtet+V}HrQRk|EDwL^_2%LE-|yjJWZ56oUG~LF z!b-mTzP?;RMnG1zY@GSGPl#Tr$XshEg+ z8sgmN(BNlKs5$-m5goYBJ*zylVy~|@Wg#x+V3juq`Otnbv$;BIW__mTiPI7N!8f#q zQ(Z{?WZf9jP?V@Phuee!XH)TgJs6C3Rm39&)$bK zeM4hi_4arjdK4Rf{=0rDp;pbCSL1%8j;2F4wWaOW7Vl16{xagJ7ux~W=XXVY&U9X6 zrrO0@x$((Y*!Bno_qSTI3f;Y3Kg;Cah@Io4ex}~em^J52x&>1ClqAsNXLx;bdy8v4JXbuA!9KFVa?-AvX2U-aH%ShAH zSTD(r25%_-W{S5)T<2C*!M!nOY&eAVUw`fNRttZEg*W5E8@AW3dmS(&Dbs6j;=~@k zmf5X3>=SqBZL2r#yW-1M@8F*D&Zj)D2#x6T>zhsD*K3wv?v{ENYqN)4m8V*Ey=SV* z;;Kn#Rn zFZMMPrSUsk|1!frD%r!ouJe1d>(Cs2Uu^U5gI_=RXK#L;?dJ09=AT-A6{ak|-hM;R zr@c3L+IH$XI_gdtCUY@wp*}qDaSbU}Gf)0HJ&^Ox`1QQWM=E*)$HQc>>(t=a{wCCS zlx?cuxnzS3{2T|s`ljV8<^%%IUmghT<#*f_fxt|D+xQ*!?LgpUej66Rvl(ZcX?B2c z#&9{^g`FUn;NT6u)qplNGlYf$HN?o|#Td98#5T(}_%t%74cC!ej~;tpTJ-If25#*NG{+}Sqysj`M@0gd^_erSo_g;~e}C3(r#!M)+BU|761-D*SsJK7eNF zyw8RwDy%PWkbjQCI&e(*I)#_o@a+m;Wy6mte5nmTt1!+C<$qJ*(``6!I$=5Ti4QA$ zybVuK_*fghMB&42_-ci}V#7aEcz_N6PT|j}@2K7#+sv0`o|jU&lR9^mtyD{P zX@|kzkk&3;5%VVk+4g(}pS6~1Z5P#Ul19_gDfM$HmYvjD3WZp0^Em&U^VWNf-8lNt zhdUF2z_6zdQIn!0%Ch?fjnR_X)o`U;;z(hV0{C zz8_amxR1pD_oIUS`WNjtVBnzQ!J+^6k?#v*iS(_#9v6kX@&luAonrXy2Ctr)QMeVj z9=SuF&39%);`=$u_F?*TA7$&FUBq(nYdYi-5hkoq4rRU3vxn(oW{<6$R<7K^xcn^4I#RFnK=1@GQZIM}RWG77X!vC&m>Ghw*-ym_ofyot}0p(^bZ zKUIrf6E)jeFqgBm_XY*UltB-pIWYE!|K+iWrssZWMv3jG`dUScE(?i^x_{^3t*#)@ zVHyde{FEt)v-C>yR-Q{XNZe(p@bwcEOMh6DWW0?0P0?SF6=cf)Xh^e{k0Uj{4D|I;*gKT>r`1^QA;hShjG&mokATK)uF4em+ZxaScE@RnE^T@58rxEkyVkT1MlrB){vcytI9lm)g{nM)m(il{=`}yxG*uy9xP~n3>xJjZn;UQn&0fr7=s< zHUz{T@%CA_SxdB}a#tg3>g*etWJKjei3;+9+ah?w+0>lZM#7g7COA78tYz!4ckU#y zVoUU~JnyuVz_IMIxt&EAe9}&fs6jfs6nr)AYc1VlL#~VV1 zP#cxTx#!(vq7sKd++I2Rvc#=@A69SyZAVdb1TT7(}0aiFjKmkkzPXs1vcV2C{cV%1^2nUByuxKHrw z1dqu?P9~D~8s6DKYw}gtsBaS0HNo3~_}L=1M@VNyAl?ia9g-=u*%Vq| zN;O7g;^q?9mcDwtkd=U}ht>l#S?VmUN0v(*!iVyRV*4F|4&q3@x8~~tvYice(di<; zu?Z6&x`KrncExS+4y@A5*M@&nZDzqm0$d89cR7DpBL4>Nj%$Db|8r`Xb$>A~pi;qK zbE09D;tiWt|Hc+PN$_I~e8}AP>1`jZb_9B*y(Ffb2#MHLF!wy2X`043FcP!|d%{ajZv)|`=j~^izp;}zY43HhT3?THL zz;e+SYF$H6wHmu z??F{|58Un=K{L)HzD9R)ql5lJ(yH%MqIWhN<8oAXOPLXxHq^+h{q-8>9XDmH0nDB6 zKglcR4zUP+-i5^j@1=$A7C3L?|owzS9*%K(Cah7s% zHQjj3!+Z`H)z9rmylYgSO&47RozYbX1Z4eWZg?{nA{%254eV$hiM@maLGtmkT9-jd@<~q}m$D2*xYGC|t5=)8T**_egl&3vm}@`8AC09H_MzUfis3b6jUG` z{t=By5A2p#o&F_S$AQ_5t(PgyE&jXlxQE9mIvIS0w{*C{Catweqim9ElE&L4>!%M- z!=(z;GLv+mE$j?IsdDW1nm|Kd3D?ddF408eKTqRRADc6(oRC!yS$`$Lko6Zt2(m^h zEfrRN3OJNE_Ho&y0XFG5n>5TM{ai`O;H&t&WbiFllVZx<#nUXI{W+g0IStXMB}hhS z{9Ceo+~AXf5I--`Op4~fHVZGRrqopNg**g3FTGu@rdd~N9vi0UmTZXH3yYPCNoLO0 z&orm~LTyh;Fvw#zeO5^fI1)&XSXoT?tBl8#Yd;WdVbyj{Wv`059~uuV{%(Ue;^U1# z&~I@ErAw6kPG58)!qv#|UqLpoNtFu?@tlI7?>vf=j3j_>Iv(H#G5VB=g(l1z+N5N8mR>56p^SdvAde*p_hMZr!KFm7UtU0~Pe zfbH*tW%4e`$-9WW>&S}5TLI8jP$){nlX459(p5vf8?EhawzYiR*eI6fuEd; zfYF+!m7^;qx#{gP-x5(ZK6A7g6)C469qzn@8Gwwx)^AgSPe`csVk6N(H;0(--N$-M zjQEL~BPK>>^H$lsf6mD}OL$aj_zDXz%hklA z+b^=ZU8+i=R|R>xeyzKv>aw}^)Y43; zrUc|hw{P2lZ53o?5NIs;B?vM~aDs5;uo@=^fhDd@d01#L))7!Cu-M*Ks+xhGuYOm}|{6yAUEn z&EcAA-%K*`Xt1}QoEW}Mfu+78`F3EtVENCA01Bk(J8P_Ktf=h>Y8{TLG4L2C3 zieEicl)OM>MBX{GvF2ck_?{_(g^}MVe=>L!n6)LBu1e&RF+{q-{Z$-?W@t&3A(X4~ zB4XllGDsd!LdXFh`m$C4U%OT3c%~=8Nx!DH&_8pZWQCw~(_j2TzAuZ+m2RAX~iM zAKi0FkC8L`kz;+D$bG-^9q+?`sSvJ)+vUAwf~*(qj$fd5Io({z$_CK%I&Nh>Gr_H_ z>*P|q9&5p_cQ#F!dx8C0#D`Am44A#myU>^t>=@hXZQTiK@C_K&1H znpzfLhno7(PhZRB`KKzKn=)f=IyQQ5tYFX7)S#2Rr#GNp&5A&L8kd}z56k~8HhL@l zpzhf{-gU1jndROm*>tPDH@Cv5`c&b${_Ev0@#=0gMw+Hm{i%4qy1uVi`RbLorH>O&{sHalfew-Si`NCsJN6@?xHcP@Y zM`zfI4lZsK)gRjcF_%x$Z)QO;Q82ch&)zjn$P2ap8lJKRYe?#p?X|cj6HP69_FH%e zAKh}+zE-G@{zag;mmx~`{Er~H|0!9Ll((I?w4Qm5Q$vi+bJwzGO? z>%1CML4}5H{1zdy`i0u!C^s=a?_MAqCs~{@1b?m_G26 z4g4-6?>Esk?EXm!ojNe`dxqpUy^fs+TKZf30$JR@`SP8UuEbkjlN7$vD}C_{^#_9h zS>EbZgTViulRAs&xxv)utUM(*fP$7dk;&R-sux<(uSq>olh)9RfwbGG`0%FcO`*2` z5~KZ(PRqvp&RcnD;(ObZrC#z41an~>!59_q#3HTSOkA8p8@!iPKwi zt=h^RzAvDD*3R0t_Upgl(^r=&+>Z~e6`tHgto_0|_k|ZujkDK&9iNVudhH6L<=5H@^$_X;Q;yKeNkoYKQRy(+8k=r#Vt*C{G|d!R@w^P52D@E#$+|$JWDLV<@6pDr zk^dy%{8&zCeZg`=gSSIB*dUtRbw?lpdHFj}mQ%YK5-KqX(h#zfvi$l>!kb$q*z^@s@JC)wkq;j;?Y zHw)@4on{7AhJ#Y?SGTFiZC)M%+BwGX3Wgqz5>{5kszw9;s=)pnnW`x(mv0s#n4yxz zACye>M{VsdO)Ne>8m#yc{g|ARS zs_GR}E%uv5GxaN)U{VV{nDsnwz`H|ZxubQ%du#`Z_$1?i}n*j8TR>Tt3Ycx zhoRVub60}Naj7TLCyQC@J=)>8Qtxa?;$b%qWZmi3UXA#R@B7*F_z}+IV|LE0e8--3 zhV8T6PrdISn3)>3wb3f(w5n+mKFu+bm1t?X##n0ng@jR#t;i6?Y7rA5j~g{OSJwW8 zM`0IMJ*W+4@r4fFhlWrq7v*U_buzUz4pvqS?zts%N?@K0Y-Fv(_XJd3sA_Tgn=f6< zn}Igo>J?nB$gSQ>7wMV%p^X;~$kI*U4s_lvvQ%vRO1?A8+TkEAS_a>Wa5jBSpATtt zWIU9^pvI=ozt}(ju>v$XRNd34g1bc(A3ZWuZSyXltH^C$EmU*KtLF62R(QYu0jlHE>?!kuvedUeV!WGTGODafV^W1iC+1UXESVj&TyJ%ib3RX7 zq2zp{tu+OL37FJx(ox*tmeUFYY!8a){$>pEO+->Lj&btxpnWNEl84HQmPs!2=8L|P zYxJY;L#rrK&4X`@%<9BaV%$lC%$BSdTDn6R3;E*><8UXc~&8u@J@%I8h7$A9Vl`KdP9H88sfDj0VX`W z-S#t6be!)9^MAYd%b)X3PzJ~nuqtP$ZK3d|&MNWFyc0Q`lPRrH0d6SNfH>WRrxvN` zW2Jzvyio`wvl|Gywg`7fnWrI-exPaD?SMl7<>X3gQVr z<-H~(Dl2}dI>I5|Hbp@5{X)f9Oj|$YtyW})s`$YM{|{}31%ti0nN$dQLuphz9`!Eq zF^u%~5(4>tUcRlwP;U+~RGe)&A~-U<>xjCJ$Z%e=v0X!yu9&X={^ji}m0P+|QYhV6 z`76EOQ8rWWOEyScFJRC2tyFHvU9jWsp5G09-j#MlPP*Rz;lI;I*j|<7x}l`5*X(`R zo4(n34s_)7QT3P1{Z22eDmO%a>|Or{h@#e<-8CnFzCx9`ODL!NIUNP$r3Tp!X_4mQ z<46%Ea5{dJG|&e>QtoZupMS6AS0STKl9Qn^i@^jd+eNtP;=*YB84bP1hX#!gd@9C_ z0Ng)ebXC;d?Oi!6t7%85`!e~%%`Y{@a5CH2-rN|zCnUW$@p#U&a-IT})JXRdu14?r zgG3~5o0_UW$d?~#T}36ix}?3o*1Eanx_ZrziC-Mny>%%R91B#z&iB1%E-^7) zf^$SropVFVf}z>E7lW&Fmm%CWgm2CzoGVg(sg|=f3EfQ7+B;Hi3!3rZcxqrj*OaM8 z-w!%1ySe9%lqAr0JUZofAkC@Z{-%QFjuht7|5pW#4dz$y?Tb}0=Elfr&c~g8hGhqL zpJy#nA9u=7mKhy)yL3Lc=j%>Q`)8QZdXO2kj8g#_&`cR49FZ_%m~8TSX5>Pqi~wi8 z{}CLm-Mn(zv?spC81V@Q7t-PHB37vJ8z6%=OoyBFo(!f>Aukz=3@QdEGlkTegu9Kg zt_mKp_SVvUP2v^2gRI^l^69m5@ZA0=)iv`?IR?njW#+#F8+;5)>0c+QQ4h&t?sIZn z-xK0n66O*Pm85D)LJVEhMGp>=aF}vLYpSU zr!nVZMv6*!;jV#vK8i7!hdJhMCA*)|S^JLyZxIC(Jr8E-D#|&$ z_8`>>F83MkZ}H9UZ-I%uDcPa;#U!^%u z*{R#7kLbD0`;cd@*gWICPK@>V(L9Yh3fN-5h+*|$=C9HFIYyE3r<%H}-GB>D8sS?g z+LPmsdA*`AV9s*1?g+K*@tNABvvU4XsyB&~)h&&+h<&e!p!tw=XxVDzHYQf8cvzL> z^)uR=d6fLs%o*B=lcj<;dQzUY(Hg<@dG`mhYE5L(TnU7}Ut0mXz#0r6-RX9m+|3}7 zZ`fZqTV%42(a!4pL}=B=WK4%Y`6|ojTe_Z6Y(WBLCwcb)SSa(~hj3l7#Cl$B+wMfa zbogY+CB6Q;+8RfnT*Rosy~n|yYl|)|s&8apI$Sjx#5M|gU>mD-rU$-pfRX5g%@_|N z59#gxV9V4}Bkkt9B{MWqoqJhnox7mC&V4<5DI@+w+F>STtv)E*4vzUETc@#}eoeKE z)d3dz${l6RJjH)$u}t^vV3LYmH19Ph@H)>*dZ|Lt^=!WwdZO_%6s=nLz7l2EA5+$myKe(i#6={{;(rgo>c^Q``3&f(Xw3xkO|LZ#K;#{Wig z@T~)~6{No0O{4bAoO$b{5!HZ=G;O?J2gX9c_BwAWhv=lf+KI7MW}%62I{Yg{O`oz2 zE#nL&mC{@$RXosC`Zm&fI@%QCG99h3Z$~>tXw=cBsSZ_@JNO=~gjg>^sxRnT!JzT= zl_NyKXiv$30mQ6-DXx$7RLCSV9Zb7TY**SlT(~UFQqQU*c}!3Evt|XXVC8s~?0OM4 z@0DEf{7ru2TRIEkhY;`wvvbxrPkgNwEf8;F0Df#7OQF-7CvG({(}{5vGpTvv6DCHB zqjQK6=e)*N^oPvEu8QV~cbIf7r`|4zlIDpwWg!-3AdVFTmawko()SqH#`0iIVPMX4 z9%%4K4b8Wk9TQWVCr&lsI3Tn3vkRMReZY=AH~8UoKkq%G8GZmF7;>k()y|JQ#^p&#@(sbr9$1veP<=B0GFcC ztTmygJqj}?5SMXbaM;S6?EoD%dLo)C2*pVeMPV!-gG)%a^k}S z)9Ls)5GGEi^xsY*{wdf%%|80r)NBy?WECb|+WXI29O>YLy1K#9R{adUVo-kB1&lDkz}#!3*4Q0l=oGTF@BX2 z3;fr3w6+@zu~6+cI{HGe{2|XT?&A>MYhp+UZ&)k+Q{@J)f-Am%X+p3V`ap9yXyV$e zQb)iW2MT!qN5I%GGDJG8c;``YqGeAyK7@NYsf5!JTuT(~sXOD|ItH+x;YN0YYkix3OQGJip;?dGBiSHOIRnnHx*@n#xsxOQ#-k}YVh~Bm5eM>j z*@zf_!Bfuzc`42hbOdiB9LUSd1IcoNc|;w{76qm_Tu~zCf33*JuBB1Q!vuKvxkW=K>zkY_cd! zRNTB=HG>z8_L78_+zkN!eh{~K)#>jlpn!EY7(W6YXkM93R+nc~gU0wbESs@@{ z0x}raM#UDzC5lThq8XCF3?v#55Cs)MBkl+@tfGMl$oO?A?n~8TpIY}8t;%AB1TX=S z)vBOX(N_J&xPVp!{mJ~_pL@SElYo7m=l6TP{0 zef;P@C3mR&Ssdy&F+dO@cv8ULsb7f*h(!yA>TqMUuMpRJQv?$3TwG|qApVHp=c`egc^B9VIAP3}~(i{FYUzcx7D6e1YA zbG3@)70J8`o(P{s0$<{GF?rE3oxqtS@SkFHh7dJMDVxB0{GuP2!1wqP_|FMoay^u3 zVhV8GXTKEx<^L)E+K$AR`P{R&XbWd=YNjg?QT*|aI)E-&pRRkNnK+-1{-rzvCeNf@ z3!}T;!1e|OqFQff_CiYEFHk(|*t-5R`Z2!rZfE{ON9*1a=RKW_DOcB~+{*~d^iKJW z^+fO0c78;c{hjjDLfa#G)_!92YVP9@(Q)J(&)M8(OKGETz}CJErT2)`cee(J#14%Q z)wowa5+uvdG7-T`C2!6w1mMMhNQwrT%^6{5bOUD{=B8#2iswmUJEc<#De zkL7l$`bYLg0VB00{6{I-sHu{vHD{^j_suu^HuTFaD!~r>KI=kQ{SnLW3Wgeg&QHSM zjec};e>w})0p=3P`IUY|j5pHhKq`Ae7b4ix?1{p#aqiXkD_tnXzBvP3Rgrts_rl-V zYn%}|14}#b>wI4ud#=}5Ah(8K?yJ(=@#?I;Tb(@#{|$WTIGG#szItgsCBzpoGqjk> ziap^!1`_17URM4oMfEC~%}{Y1b%Y6xxUD%l&W8n1KcRMqtL?FH0cGX>ct`Rf6@;mK zO=0W-I~gVXH`5*jVNUD+`WwiofQp;&*J;2bO5WGdn#Cw|?(AhM&PKk&T@t|9|i(Is?fn+F;;qz(KPU+mk-8HTEe(t$hj!xXo)gUT@={p4LMBoZ+6Q zG)&}e)~2N<9p@h6gb?{CAHFwg2Sm>qBzqN|Ww5V&-E6md_RAek{umC!JJ?H4h~-wO zJhtE)6aLdo!6OSaLw7%-0)spbq?3O*gy<5^4U{ZUYlY8nzej7pwD&LjH>qKdm?N@( zpKizwNi}M|yTQ=;>R+dE-3I$H_d4QmP&aoxzgFe&T(503qBflg|0mgMT2}+Zc(u}I zzApl>xe+eCHj7@FK8Fipz@bOP+!Wn`6a-bhdRN2;!8|tf-HL2D3JV~9iW2@P$+GLb z34Jq#?f(UB8W|@F8UL~TZ*()MGz_eUHv9Hb>Q7*h-7vkZyert@rL(4}9I_;{CpVk> z7@b>$m0b^$UHGnkT+^O%S)2ZJ^0#1%3wOV6b4k$YahlunVf9b=ghVrQZ}_ASTQND_ z=&oV0W~Hb;A-#9W40Fs;N4XVwZHZHH>WQ)3IvMstU%~Mx#Xx?|QdeAK(6(9KAU?I} ztaItYvz7J)(q>o>C2hA#@#6U}3of&8pbzlr7M>-zH*jm`#hI;n34fS+*}1B@C8gUX z9QjBgw?p5v*Ju*TSAwSl*8Id@GG3Y#?BrH-q`aQZj=}7;jLu_oNw(zH@3gyW=GxO{ zK**>ylArK@NBvG~Xt|$uNb)k?_pq(qw|1eEdm~;ZI9zYX#YUR&$S19smvFJn{q}Ff zj^z%5)UdR3l|{7wnQ~AetNBfCg$jqA5K#VW#(WkHoss)*-Lx<>03%19@~;Q`wmEPs>lv7^5V za$k_i$<2dl-0q}SMN(D=muK`aW;#W*4^^Zc_=C2Ko!#BhQx|1U<;^`ohibX|YCiYTAq0nP>{m`sSx_$^U;oq8RjniukYtoi%tT0Y_5w~NNz;Z1)?h-bM z9)c&`dtHW++wfjv_;*aNOMFY1*S;m;UL*Og>NSjib=UxhT*&!HfL4o_asGioQC7h} z+&Yxp68E1+4|4<*ptU_o)(@}HwPzJgT1Hb;$JB!te;cG}oT!c-aR=eE*VIAQ-XtV> zzP48{&q+F4oyhcbdgp6ylqCG8GNM&iMgXhj=+tNr_cU0J$=uzw?6$S`ZlEc6+J%Yu ztbs_tGmAxjDRhHs@#tK<16Yl!!= z@QfpXPqOfh!XItnI|TbJ+*L!rlZDR~{4?{CbfyU2W#Kmje`?{bVkg@ze2L%<7M>@# z(ZZ_)zii>p1V3%z?plQ(wQ#NAyDa>o;JFt5Q1EmMABJ}g_XZ1}EBFcvj}tt?!nX6Tu%?xEA9@cZ-F86#Tk{FT(?myUe2( z{JckB0sOdy-w=GCg^#KPj#>Cc!Luwp5QmfQ%@%%7@KqMRjH}D;#TNcnaJ7ZsQQrkD zd`A%Y3=1C>0zTfte-M16g>|pS?PlR;1m{}#2S6TkuyF?pX!=v4x)z{I-S9 ztp;9a;Z=fPv+%(4fnTujdxD>^@W~edKjhI1j$3$S4e)Fae+Y2I!cD?oW8qH(Uuxmn zp}<2ee7EQ;EquT5{Vcpn@JSv${^;DJEj&*2ehWV)d?yRPDEMbKF3j0q6U$*e>p1@CA_*>y0wQz?KxJcAV26??F{9KD~68&@w z4}iwK!NQ*jzQV#YMgotp@cp6>S-87s`g?fMoND231s`YOTG1bB;ZKxrzJ)tn1e|H% zy9Iy0(3I^=(YILmMbUp?;a5bn#lmNg0)E}X9Ynv(!gECbyoGB;^SFh76nvkB&%YQr zX5lydz_TnoP;qaz@ExML%EDbQ0lwJ6GXz&#c!A;uEc}e{XIS_{#Xa7_r;P?a(!!UC zzMF;LQ=jH~c+u?rt*QIBg1@rxz%jrdTlg5oecQq-gkNXjVV45GX5o2)U$F4EJ%FFE z@QuprArCK_xP?bv20Yust3)5M@B-nlv2fPqz?WM1G0_aQ@Y%vwdU(P8EIdOrCt3I% z;g7cPwPS((79J^@P8NPq_@5V;x{tg9c$bAw6V0a<{-%CiNMXTL)O;5p>!4MVD1DbXI;zmvF=^ zE1cVlw3mpV(Fas8eq?Wc0`d!aZr#ccq|w283qM6GdqJgKdWg(d`HnkUIUSb{7@Z6l zpa5m^I2iYIllkq7OeX#&5ykVH^)t7DbT+#OLr~@1{vZS)<$GA&O4%MNUnt*Brurq8 zdK7jVWTtpW)UA{`x>C!$&J>BOMsK;VL)MCCw*1pUqUCX40#Ub8T4t`;L|3Y^iO31j zl}acPIXW0!shks$L+Vyam7NjkO604F?9Nb9-JJ(yS_$rO;c884hL9$kuZ-g--K-x> zmE!ro6~xVT_gq6KSKnU9^U082ggC#oFJk15{s$Y4b>SX$D~}Q>dWzSe<8ZX0HJj}U zL3roPU8lHl|F`_`&`i)*v01kI%I^nI?pAG?qAN>G=?@1A8i*Zw{vp>B{vzQm(^Zmq z{zxGnSA@2YPJ})G;1J9bL7gE;`^N_VsPGeP#4^(N9-TNYt$#D`Rpj>e?@j#Yj^h@oH42xtv?SzWh+8-}S7>p+;*AAj+_D+tj6~L~LUZJ^(LEm@BrT58l%vsY6fW?ZiV-ON z*|*@ro>G`6>t8+oXR^D5$uY#~vd>*suPk}wz@K3dgbmbmdfdZrOyg&4p*S%Q|1kAc z0?-@$%^rSE8vpRy&|mD~uiXzH@bJUZ_|L@jj`#5I9h^%49pSrq_*H3qlkj_^w)~H! z@vjK~v4@|R#{Wt9bsm0S_f-1#3;%+L|16EaL->b0{KhnXhVZjJ{3~gEPvNie@cuNu zgYZK={LkG|`JO9$KM&upAca3!_@h1i(P{iK!guoU7j;e1cNc!w9NP}(rSVz9Z};$r zr}5uv`EK;^*=hVI!awcdx855M)G6#a|BU*X}Gr}4uyu0kIE zht4Vb0m7f^;Xg{_PZR!75C3W!e~j>%9{#`5`0m2D%(m??C5_J#ev5~{EREN?>n`)~ zXQ%OB2>-Z;KPHX;Q23aKf4Ebs{2PV8*~8CC<5vlPv4_7ljek-2fQKKJ#?O&Vcf5x` zHI1Jnd^Zn&=zjRUb+*2nne*O!94GpZJ^a!%ewgser zrwM=fS2qf8I~QW|gOQOm8i9d1wK z%{;ZI284^zI6dwBLb$?|j+KIY+d9O;d>eP;Z7_=Yt8Ycu{m{3B_+ znMVN+U!TUW(%$iS53d6vFa71hck}SUG`{v*)|b7rY<;UUQ}iQ+|JcKyk;czcdDeOO zd(wPtitsOZ_?c0c}Q*&hCG@O7L$WrX_#qqi0z6m0a(J>DeJV;?W9 zxwqikinGNVbOu=l+%nf&k@{|xK#+<2B_T#qNe`qFJQJMAL6>hymqXnf7O8IGYPExm zdgKSel19%7aJXH%=azTL8}QU2PR>5g>mKOI$tm)No(U}d#uqQAAi6#=%J&M=K}!b0 zi$sx()=f&YDxN!z2rS{gE>vmN6SgUbvm~@G3&bn4tdLRK?28WsN1~zeZ-<;7@3>E5 zL#wCQf5Qn0=wN(>+>eu9SH^y5{Oi`ow6m$&>C!}aRcwKAwfrE1R+nbRhQ@yoD*eb8 zm-mf;)7)ouMYfyt$ACPvyogqH7jPt&Oejb@{F?O5URY-n)lSZb$w0RP1cB8%@jE7i z^N9fNDf?3$1p+CGjBk0k)3NwyXk1!1C2+c0rm>WJmIJ((rFq zv8H+2HfOdhf`U5HHl~SfUsvtR3&!u4A&~p(tF~eB!r9VyW6kDN9Sf%r|h8?MXn&7&Rf9hv) z`0mdm3v*_7fxhX&t~7$#0cN&btQ$=6{3re;`tvOPPG-8H|COcp)!)hT>&3~;XgQ8J zR6EO5`FZ+;HrFmc7(E+*c#nXn!aiXX)u$nUDsac*okhcRt`S12e&WReEE0^P#`wIY zaAul)F?Fem&wEPA#QnEkNeQHl@%%YL-`mjB5Jm2yKd2$H!2Pft-iU?|R?h@apTZj8ZETKp%3trq$7OX;36HH=1FOj=?y*lx#bazC7R~lOTL*c_X4+>3rEsh zG^w`QEvM2~O#`pUY?&zffnzgUt~L=Tn24ioL^Ff_MVXogj?Wz8R518s^X4o1*=-0` z8-j5V*lAV=fmrL%rM7$ji}03CCYviWTQb_jjH$Zu`=t{yLu5MNCKZ~>?e0at+91tV z#wT^^pQf7TDD;+}Y~k)UIN#jqSm-p(lY%PQBrOZMY|=DOhy9r?^#+!DsLgc0$snaO z$ZQ!83}?+De@25i>z77Q8on>j9malMqjl?E)2IxQH5}yAA=5jEscr~4RU7l%BbbcZ zu>F~MVy*FcqevO53)@od{=KD|4^`g==nP*V5k2~;No^B5?-iTn6_Cl|p+=Okd1Fbj zWvPl0zm$5)_i3is^;`h26a0Ud=6vQ9o6YrY0#++voELCmn}8P;pr?XV{IlBxJg$IZ zFW~4l0Sgsyh!>F8Cg3&&?2Fi>zJd28OLe0HKJ^0LX%ld%0`y*yGJma2K$Qai>IM9< zO+dK<9`*v9HUW36Vs)8q0>V?08DA=--b;eZU6DjCZUT9cMOGz|xH95yi$$I_#G&VX zOYj%8=OkZ!0INEnQ+)Mj0ogI)mVRyf=+z%^rRlV`6tRd~)yxgd(PgsrkP1W>g(rTL zX=8COccYu-MVv!K*|`m%AzMD-qiLQLov8u5$)IY4YFQ1;7%=m)iZTpw#_Z!2c3dZn zM`8I0r!msu)R-X@bmkQkNg6}vEz~=C?nIV6c#<@h!DUZBWB$X_+Z){3$n?#5*>H!! znSqxWf(s0hyf8R=r9QJIq*BJK=Xeht>2(`C++0=X{%$>~$pJ@KlC52c7oB5$_50|L zH{e~!}$Tc(yCaP{sXNJx;JnV#Xj08wa%-w?kV8pza zGF!SKQzm=tVXD`@$G+gKu3e9*jBR>s1uG*xX7W9-$Bs0GOZJ#8T)M{|KnVQB9&1@g zqUy0RhPLb1Yv$TJNv>^wjS%Ahp}&sw5^{UouUfCr=smE% zp4BjQ?D#yezjX5{7*F<>9mH+>YrD?+eyP70^(|L$J1r0&k=Z=2H(6&fd`sV*b+KU# zz9pHprMac>hRC75C4nqHiuKXO(n5~L8|pr7sP}Tv8#&CQ{#qaT>69y+FQO|$_>)2k&|`2JZGZebjdaHYT<4) zIN#h6jEkmuI#)`unCr=}X`VR?X&Gx^De5y@h65{`+uvhjbUplrwXq|Jrg?e-iAkX) za_%~4wPSFGf0*Z<*kVic+_yOHb1FV8VCh@Tpkdk49)or5!$S9;HyQQ`ub&%JWROMB zg*kI`5BI7x(F;K9@4rn)#eXJ}V#wpoVqP!ir)l0lB>nhaVW-xT4?=u(@OCaI#B;~P z42|e^N63n9&q<&p`~<=c=RnRwz*~zHmpcVEWQZ??xb-}dW&Z-%H&n!sohdT->PGh; z+e~heWXKVOkl@}%*~Iz37GgzUlKVVpi`a>9nmDtxdDhKr z(@5Y7j2CF0ro2%6h$i>h8%?)z0|vi0aeozo?gIuF2}pAA%G1&aqdBc1+W(k5fXJCx zh8|&{6NAwe>V=HRF?A~>HZYp&R;Uem3dLK`en;6_>WIfxo8pvpx!K2tiihy6=?*+NRa73*YKB zf{k;5jWYq!$Q0m;tR!_}O`y6NHr5&&s~V#UlSPgf>(|7pTOszsE#~@lYMgbpHSe}D-cQEZ zT4@_c7W%A#WA!upN8RuXU!#!_DNlCc*~xxCHP!FG@kVassN?|fCx=THx+c$djVwo=J{%E6ibH__XAFIo>OSE%S$eH*NC(W+A4QM|n}TjMFyvYmV`hX!w@o zEW41}UXV;;ps7Y#vKnV4t8sFw8olg=g~$;l3p7 z|K(DRfi*haGcPZXF;5zzrkL_~g!WuQ-{j*Oee4-yKgQ^z)%&vEevXJ5jBENpS4zyU!x>>%syt(v5Syb2OzH&1Z9H`59nOm zuQ+lsP^7EfsjR+Eg&>gQYO`ZW_}6SjC8X19bA-D#bv}u+p~0TBA%yP19NiXx8UPB5 zbgpuR2kavoj;XzD1d)x-r`<6&o8CGzW{tdzm6%>CD^lsp$ze-+uO9E$Z~ zpic2yJ|QGE6bzu4_I}{9LQ*q6tKV~vswD-gbR2SX1ef^R zR9CxaU6M-H+5?1~?d~6tv4ioN0v&>r#6iIru4t_ji#A2z(amCp1zG_d!f}KjDC9Q? zwnkXKu|Wz<;CrI?Jt`QRJzw>1o{h+!;bEtNT`a7;sCKKuzg$HuQ~=F`ASnnpF=j7H zgHL&2^X#Pt;_;-}Trq)CP(upR&=M|r`mX!!$@XIIxJTuZB?BI^yh)wt=V|V3S5g_W zizZ7KjJ>Mz*2ZQ|!x`X2OE=2B2)bZ%xv5q#Hgf{uqX@6D;U(@_HrzA=;X%UjH$Jo2 zh8Mbr*zjUC0O2&XWMohQLC7;wJi;>yHebEUmWjI*G%itXfH_7)PW z3@eT?pL?oM5G-WM3tY!D!-_WReoKG=Ph(r z-*LN=-D|vhhx^pk@X@8P6N#z`1PznIa{90~I%|iQ9j^W>cX(M=Fd^*yyfTyDh#e-z zd}7qiTAUFcf|-o_@CwP-dr}EMlT7#ulkj;NIPHk8XE$F*#?tuX-&+3Lshc+Cs>E3u zM)Asqs?r_dgF|d3C7Z@aH1LjvTiQW|&as95^$>~2+_y|c*tuVXjc#WXfsHgt`j4Y9 zx=$8^yPd=WOT7qPOoUDDAH4{{()KxM5qqj_gzu0cg`7-;g~8~oZDxQ{ zsVP^OS?yHs)PGx@MwT&n^wHqNRQ9YRsDXC9^{=p+&!xs|fB`MH>r) z(dmVG&QFsVF3htI810GWl`NFvSK9A7>g&626)qqWt19Dxj&e-299&t#-){q~JvL9A zK=*1RM{@t{P4w1#INa*wTe4^NCfGRt!CTt>ovRstR(x33RuK&d>#dS=U5^znH6P4wt|LZI-v{^pY zCd+BRl%?Jg?NIWd$?jZgsO(0X?7A~u`m-?%#utc{x+5Hl*6%UFksj_$v=vUt+{CR1 z`IaP-O*WmScB89>L#(Gp24thS?HFBCmNZyO*@p$4nC$`lrJT$=os=#5s<Nq;-D8`^!x?rQ(-%vQ^%>Amry24sPq#6O+f6A^S_h|T4Nc7-S}sO1`@ZB5O| z0`ZGNEpvqjo!<95+l<;ftLtS@hwgNVn9&sxSIcptp+H%ysQjm&hJu|OOg zKM|2_eb9N^-Og?oq9=NI9(6J!Ui;<(v@boM~2qE&=zep(HB0VC=dA(c04R zmO!k_1epXP%b9!qt2N{3YG5h z&3T1B2=&=hRk|tU8?ZN6`bOlu!SS4q!G3`P-<&@Y$goqH0tJ&WrtD^lGk`j{H_!;J zJ*vA=^6kc+ouj-T6U&+2KAqImGJv-~GXgbB$!+33rJJYL z1Rd>UkQb0(N>@!jtjY-#xU>mfAQ>HL<30*(Jg;zr91eCdjAV~pG-_jq9!M3>{}`>e zTTtD8j?1i3X(i704~Vn?T$*EHLxfi z7hI}Ul>ctSY0}gJ`3?TyqU3Q(q=Q>ng=pA%2r*Qxu^P;bXnf!rSE}NJMX8x_uz2HJ z!kL*N*>yY7ZFnBM(>+Q_$NIA8q27~ewFIrk3ox9roimvxEw)cMc-Oj3`&7|1WbtK* z@eF~irlYVTcN9hrL?}tGKJCZX_MM4bcNYRttecjf*=y-OW&_`z`*OQmE#kX3f5m+h z&4CiNLsOuJGsWp;`~~?N6|ccnne|SV@c+0vGb4Tx?I$N@DoXiS-WdQ%jVAKP2B~}k zo5nhmli52m0GrHyGBft7nW(W>B{9WbU1VvrViRLAKeaIdjZQPMI*V0-T%XClZ+i>^j5q^WCKldaW{I`WVQfXr3uyWDTTp@b-Z3hd@O-SYBDLVd1EBx1QwLu6=- zuf8aDo{RP^trAk)lu z{;u~ZSS)v#p}ED<%(}p%8E$D_TWM&z8k$j-CNr5%G2aZ&3a8n5R|7QHXUI-%&@jng zE{`Cw+<(5KBD`&IVsj0)VWN9G%<6`tL5kh-HF?H*G$PB=c-|yq7NR2C8p%_8M)h`= z^G3qIQOVFQ2ML9^ykdo^*}La^rGAWX{4>h?CS>IP1Zn#!-Y|Zil23n`5pL687amy4 zLtf!Bb!QR&R!uS0k+2&4Ml^U`H!zj2oHZ1Yt2UfwP{1!JovBva49xh@Qd=-W_b+69 z$Nh`3W}xIAvWoJW`xiCv2|2;3>NP-qj5;V>TF+YkDRVD+mQU>7%FHXh3I8B6rf4U! z0sBAIBtf(?t0~-jgDClQkA<&D5vPNhH4y zB2sToQj~Pb&r6m3np8<5W7}mi_J5hl4(_lpIF2Qg{Pvl=cYU&Xa=c7biG=@tVpuJ+ z>=PcPGfZ>SW=D{K^>t;clknd|4QlcFQzrKvYUt&%1oRqO9*>eS$L$~U;{9XRwTXFr zo0w1SAM;oH#~j!u<~QmK4Gv2C_5LwGrDE+$+oes+mx-C|=F>Ido0-V!<_B%U`(t(q5cvCtvP0dEjUH9-GS|Qmc?uyw>Iw z8&u{Fw;8=|GTPKMh>UJeXEbP3dIfF?C^wIPB==)#CM&cfF}5r#pm+giS0y*$e6RfI z9!}y0r?!pFts~U!DBR{8Q;i&V?=S!kj0j<~o3rde0kHvj?vC~Wecul(wUM%dj!6i2 zTcdb?#=x;+4=}5^7VwwZ^rZ-e4Jp!h!TCDkrJC z!v&afg?xiHLoy7K*1qZQ)98}cWA`KaS;($wq77ye;HXd%V#s;JbgX-ucH!~dI?khl z&W5JSn#`CSnb5M8rbEYSH_CS0lVhhbnrZ@@dzM%37^AGNayC$x!^C)|MfdU8c z`)7tyhYo2s!N-z?(q~_SPr1}aEMzA1o(id3_L_%GI0Fbo&$-z6{KHuoS1FN9bKT-< z)vL?l?y)M4!|MtdPQuRyO?0Q%>X>7<5t~}(khf(Ej2d1iyt3CQcPAUzG^@B>Q^);> za4A-?QCnQ+w+d;`Dqe0Mpy7b+_P;RrlBRLxu`U-dmy{=9a@tA&m-OB2G1)+t$Zb1SAi}+r|_hP;m^WDIA z1K*qZ-puz7zIX7wlkc6u#2b-6lcKL%2B-p11&|a$Qp9&L-^F~F@mzE>h1+Eh#0 z62%9Lef*K$Q0J(6pp}e=3iZ8w5Ot+Z!c-aTLBZbO-h-dvbG(7D%f!#$~_RZ6HALl31 z8Ybi)ekV_ItOtY2c#%DPe6pK(ACuLt%2!FxcGecZ2;$i+02MkNTHE@YWHurUdW00y z5Uh<^c8@BR>mKrAZQbc45vMJ!JTvIXs>YA8Y*WH<&G&h-YDP6_{ z*rruFu*dQErFVW+WR%eyVC{GQcZu-@il&RnekQpa^|GDp1E;xnjw9pQtL?=QD0+wj zKlBugho#K;{FwhjS*y;|EcP?*Pnb(H1Tft{P zdFp9WB&#z?v7J11gU#uDlhZHAQ|^@{&6^?lOc*O$^`)H*)KM9?3RsV$jL` zjQfIS!-S953g?XRJ5&+aGUbPBvbeZ~WV}CL%MmWc*LGupm>d`FM4%7a2ec7@%-Geo zTq7N6r}*?$=ijqGsnOe1ji*uXOwWQRBw8kSHohIdGkCppO z&Syh!XVO1{rZbnZ4p%xG)BR}{(m`b`9!2iG&@kxxOA;|_sTuoLN-$EI)4_Bsb=~A% zjzp)We5}Ou?)~`CNiNPq(+{?^U0<<}Ac>%p-8WHIGHq=5gk@{#ShukpB->pMKMs~7 zSaT4**8TQ_L_*5HX5@1iQZ`Yp2%l)9EbyZABuc=%(cwjUtxcpt8);lJ(#7o}Ws|iR zX?~kXMK;p-WTam0A|YlcBVE`g60A_gyE0j$ZwA;J9b$^d>3A~IQACpIOl+nUBx!X| zdehM;8l&PN~%LoVsjs>r85!+#{4-j0>Kt^MZ+uk$>2PVVNbG z>t&jC$>Y}~KT4*b-fzg=hQv`GUPgVJQHSCqK0S~8d=f?u#+q+qgRfsDFG7Ext{hN$JhaKh%cPUrb;p58f6}g<((%0`=BYfZr{N+dyJBW5pNU{>6hit$q_t^`g4|0Md%S4w z4l`(z4s=~=%`M!+Qa>IC^h+lLN<{OLMno8CW9z2iDdeBfm z4D}zlj#8(>+JVmO1~@3_7({l3BP;A}LAWezk_lM-pxc>Lq?4GYG%9+{h*i!Z#rdRl zN38O0g-j6sTK*>0^3N2ZMhSHZf8&Iz)#e;E?s?B;Qbzgv(B(?GWZm#A&rP7tF$bve zN>YVa@MOwW6v0sH!DvQ%!rzCuX-ZEV7wO;wNDCmPh?`Ryu6XrUcP6Z;%IN?DvtCoE z+h%t;CT+YRbNhRy?KmM&l{dSaZk07;^Mv8gNVadu`?f@rIvZt^JCOh>RO4n+v24758bbl? zj;12o9nVetOg(xh4G#tld73KdkY~Ti)BvRKDjM@p#fr0tA24gLx99!E+EF3$MH}Up z7fVq%3%8Uy{yvd-EjzPgoqfcBMVt3sxreEzjGPaQHKZaG5Ml27(@=}yH3-J({^fIS zGV4+HdGK(v+eY3(QG#wD;UD&tlHaMqv0b=mEXf2=V!J;+X1a>4xUceqg#W)FYsJLq zrzh>zSeY1Yo4sBpMk>Y_vanoQBCb_6i*Xiv96KqG4V@q(2B(wB;sLTC+dyJ%xO@Lh zxKp@~;ih7^yalo@7%$ID+LuL3xOWpw@Bl&sta@*UNnb5}DVMwr>C)z$B8kHZRbf2bgcaawGyyt_4Jvd<6$8Wrrv zoAFSG2bgeVEQ}1xKm_UX3CduQVFkF{=41JnMxa=$PA$Skd%_)YCZw2&DT)SOF{(ro zU+2EmQvr9HqDcCN@K6U4bTiGId z^{R#w6xrg&>rF*eKb*`DU>Sjxx{sW(UxBmtEAT&0`NaauK9d84B1y~Xh3S!AHA3KX z@99*b3&F^=Wmn&?*m0JXJhg+y^VL7iJfchPEoUuJTRCsI^ZoW+ySg@O5CViG<3min()*f8(|w_+i|q7< zul_rTT0aQr_C4+0p>C=12f(A{sNTZegK^Bexne)HYhbAa$kq;)x4V_x5YshR(`c^A zm*h#g)IC8#8WV^Fl(G-SOAg|14pt`X-HwppcaOr)A{4IBbPMaob?#rlBWV@7yUk^+ z%{Eh;Nt8?!_t_-Pw+GT(?$JDHX%2J0PSTj_nZlMr)0#6kG3_dw?hsRWa^;OZjey@V z9C+3u47$n;ffL$P;AAS$dZHZ~r?tWNRK?={si3IxmkzhUHo3cICK3y6qD{w=Xfw?B z^`LWSFO6i);ms$iO5RwXy+(6je{)d7@2zQ<_#rPMBoAUeF;}-J68=B`$r@Ms=5sHN zH2wZo2BmXQbQ5=!o85~Z;y&7*OdU?^yu0X+;^aE-?rEU)ZWGJxQY{#gBE6KYAq?vR zE5(P8D+c15|I20E-1w@j#K)(W<=fF!Z-Av0~BVTp!^p9 zS2Djp8ECyblKh+xRw~Dqh0GQ96SP|c%||O{!i_4N`No?d9ex4}mrZ9vDxJ%KR*J2+ z3?p_~$w|j;QGM5k3rOZro6IHrAm8wrKPD49Je62CC1#3}OJWKCu0=HF z+CCdgn|uS-m6cpq6COExuS>g5I-h6HoJNxDX_NdWU~>H~=sTgocgePIeU}}1XNZ^i zLcUwKyOUB`E&fBQ{y?_enxWL%Trc5_KFCU*ooFnbuPYP6I;I&N@-q!|y zC3wqJxDQFVm%gn?pP(}t>2i0tFyUYRd$rCxsC77x-9+VL*9BYQ(i%Ba%(z?c?&fx> zbB{TKAe*&&O(!ybN1E{Lor$v3mH%xtSL-SC&#%i&mtUYC@SpEV_WE%qf`k1Ui^?T?XNP!#8{tkLLmV&H9?F7!BI-M^R0Q&y*amKFV0+j zni104Y{06Ve{lUkul*Pm1=3yB_)ql2568~+wKVkL=q(@Tv5v`XFcce|7m8iyhGH|f zVH=aEj$OC8%DJWt8NPzw;b$Cs zdsartLs}6~k<2iSxi9Fe+*7wq!%@gb4e~>f+feDxGPqrg9}qhe{*I<8@3q;PjR=Ac znxfpthz57%7!0kj?NaQ?P-Tbx4d>7A=$)$E^H3#v_ zaWFH5w{==O!bsH=eOXyh;0L))wvbQlUTU-);SDGEBW406DAUv2W-~c95dA+{+@*!{ z_jHd(GS|#Phqu-puAP))Jixxo)s9f?{svO>y)s{|5gXhinTw_YeP5NY0iE^g_Cy#(?k4x&ebtfP`^%5?S}dyBYc%Epmj%YG=H=-2h~yA8 z`h_;q1dRnA^)-LO$>A%~r^M7vi+UPMmRK;40;m%FJmjTraucmsM+HSV8DpxQYGRP=JQ~I>a5D1RKhsr$f9ORU4P`h3++lJ7+@Y{g?)NZQ7MEYE zW~>|iIF)_)VYz}j=Mfq{?*H@%k;0*S=sTAC^Eyk2m)tiV&dhiM5lpv(?rckq<0Qh2WDV>0^dMlWoT`4&m@$Mj`+AjI#HyPw3z3TXdsFcqCJ8IyAM-#awu-H6={XgkXm6e^GrM=_ zC0nF2inPen&uIH;id052$s#$BD)DK(lxvye@7gSjCt0qtZRCk|i{4{C3QWn8pe;RJ z<^Jhp#tLh_Z4wbpkih<{qsa!9|7EM~ExIJWV+zmxl`oNcGwYVxd*mZD{{O7Y&gf^T z8gpwvg_Ap@iA`THQ|bX@pVxH1N+)Bra1W50XxUIBhM;!=@UnxJ?0b8;3wqNrTB0QP zv-+Vz24X?mdynQKS+(;eyy)16Lhs<5fU@Un|liXL&mL#KW_v=}{xy-wa*@=rXI@W~?XD6h(@y(Uo-0v|J z#aBNAnC0l{e(4=1ixaK3pn-6!BkwX*E=^==j5PsFm-eKsV@iz;bH^*XA#46) zUj4b+=2h6#vQ4e2W4k)HtME5#Ooi)xNRGS%M=E+=vW~)t-R}wX*%v6~#CD#|wcdpI z20;24ZNuI|n?q4MdUW-elI#q#vk1;^O#I%L5nQ_IhYSDt#P8M=1%GJqU9y&O8f^Tr zW6)W}z9YYfczL6HUNC!A@S)kCB$!N9@h)7`_IKvIDAc&OGe_#MCikGP-~r?7t%xU2 zBko>a+?5r8ul`Z;c28JuHsQnEo553#?q`v5-2Xm5tQ49ZYk9)9HB69?mM5r&A2$06 zdS0*F#&f^8MNGs0Pkvy4dUTcDZ-u*w6#E~Ok+C^a2+>0};W_#t>LjIll>4mB^(7m4 z6+bXug%2ZKtNtTalE75wm+nw{>p$nuk}(R+Nh>QV;~wji?atsX(Ux3a{qs~bvCdaN zn_onC-(2;(yZH`{#>n`Rs6Hd3xoEFh5$cyQ`2z0XnO=hpm!~>p>WbeVcFG66Is||C zSZ=kpw9w?8Lyaw+`0Gp!FQ5x)h6nZItalf-Vj6GK=IoP8>?ZZrGIx~Cms@y?$c`Od zz%vmu)4qlA%9T4Cba3B>P%I-5E6cNCngUAtdu@`(qp><;$d-MHQ1ovbd+$QZ(2jAv zyN$pq0>#nTXE_g&NqOR4LsH>1XtK7RBxO$iKAPKYIiBNX(q+!}yeBhbVf5B6og*Ea z2NervmE_LAF42acqI){|ZvS3L=gxVj6CBFknE1H4qv%>b;2+!==)&pI_Lid1w%%$< zsl__tTdU}O!#yafcLlSxKyo#Dld+#GZU6?!pSuVgD* zw{(Is43AO^{K=(xV6H>lM+C8w=kOx620bsp5nYc!OqA6 z_Xy&(=Jaidbqq+X)n<@0$Dpor)WDmIIsaSO{}kQ_;O`awe&Fvgnr4yrD_DO$`I8Lp z4CoTw({<_@43oPy?Mv`J{T~T2@6!jGGj5{>rlVIgB*3S?0FxgJ?c=IJVHfM8+=Ij8eV?iB1VgCx|za84Z8d7)|`F3YL(7DoG#XKJ+P zA471|zbc%{+slzVFu>l6Ur6OqycVOI5(1FXThpMAq&R%9JWzsC0V!c$QJgq@QSv z`}>lPW{~@t6x>e!v5LXsp(LfpHAyxNGhrP~6-e2=f$bV@nx6O*(oJLt3zRY}rdVA_ zPWPyFvARL>YaIZ;Mbf>n529X(-!~FZqc>8pOrE+E{`(f-kM#jaq_^V#3&-BY5yvmhkr{e+lmq z?javap3yxQMGlG&;k@TyzFG@Oa_bY4*dF1N*W?@Z!GF}O`wD|s0)~sLAJz8idI?vn z4&it98jX?EYplul0gxy zMy{NuzOIhf;CY+#M;kDypDo7kj&5I!@xN4z^Sxqppcs93+qQsnbxf6^zKa^)FekJk zWs-u#tzcB%enEDoy<zX#l?MhW6G@)hblEXZdo|KZF7D*vzP|s=324aV9K`MttwKZeuSMzWJfR- zA)IL9t?*{`VAObrNq@&~Hn)(BrA3u9IIoIwm4@;rQ|`gUTgC7SV5Zp+KDeqhXxuTZ zNiz$M1Bi*0`o$p+a_H>S|#3asL87; z-Ksl-Yg;SBH3XC$7;qwrS%;>w1E@`mgTqIKaIhWB9$KhWF#ZWq#&waq)F+gILa%KO z6lq+l6fLG>La|Q4(u?z^{3;m|%Tv67v6zkgD;_|QuyOe};H+MaeHrRT+4pj31=Yk3 zJ9EM_lkbgSzv-*5BNKTDtuEc63YI4;h=ZHbEvn!)Dma{gWChyg_0VQZ%n~*G*sMryBUYQlH>5$DviHGn*$bO2Hz@; z+s{3@gz0826Rdnd;Z4b(u_gD_KMqjk45jpM_~uv*{x6mOjsH~o7yeV}A5`gwc@rvG z`Y5H3PVbcwIXpVO2+uQKxe+SD*`b&fnpf|Kr1(p7(O(&sKue`~gKETgUXoWNzk`Xj z!R$a`lHLNg`foDW>90dg?j2MT{KP_=ob8{tP0OSg8`>^DylKDtxI@d@#vwe|_S*>* zwf%h43G{0BO?hINIAc@-cV{#+%wgkc62t#A1C75K!lvhme{SCZA|e@3mI9Wf;H~|B}M%DUfVrQ zC;3zEc=ZpJeRuOeHt_uat6;41YV7jypNX20T4oBeP8`|K|_*>8qXp%dEV7SPlQ*@lvhEFpHzp7nVK;*xLf zRtn@)wnq2lgpZ2uDP#Q2x+x=aaCFvGYW*^ST&?%beJ)k~bG`hJCjXD9eshIW`HeH8 zHC6FXe-Mi_IdjAi;rc$u0jq+s5m#3^p9EtU!syIW)#^jD;ZCKT3EmTPDzBbBvnZoZ zGycaZaLx_xiSSzYNu--9$5j}c(kb0SH0`kpSU`ZfH9E7XNc3;IM+iOD(C?t4A34=O zk!*9&cx>S8s`8^yya$~Aok*wiv)*n?mUIB7+Y zm$^P1V5n!0#Ptilj$!YO2vmW5xSq{88U?!uCsu_pQwo%Bne@5)A_0SAIh)FxbMDY! z3nUud8^Mt?BQ^30DfN9{iPcm(jcw#9U%<%<`u>7zmsL|R7308gdnmdJ@6^qCp~TwA zhg>fpwW3Lfh9q~lpP7L~&fTpKrLktIP8-iMV~xBZ<*w1B)Tp_}BILnNuGg;jnnE?c zoJ-#gja1>Rj7rYt%tatZ(^JwHU#@{1E4X_y-X~IbFvDm-_52Geo_EY}+ojt)gp!n6M{Tg!F#>LJ9P}WfqN%7p>GEE_NF> zOUtB?t?&(6$5@dWJ!NA=LOMbJF%Kex)3I9xs4jVF|-!tedEjp4y zzh%(X7JXw1{gOeSDRi{|0zN2F?r-^(*Pi}yA;PBs-D9BRfMy%$a1CkZCZ%uAeg8hl z_|LErxi&D^*TH5XUoF)?>gUzyXJ%=H-^yDHdcm$^T`c#%pfV8*g_C=azD4W}1n< zPnEO5IB1~uBwO2Ne;=QNgOPM`|8Lr2x0wzL7BRc4ob}5!d4DPWeLw#{rY}W$70&(W zMb?o#W?t7TX>aG9g#XcJH7Xj^BNI()c~rSq9;0KA^^!4TX__i%^gL7URRq(Q=$7J~ zEF#tp(?6H!pK}@e>v>C-MvX+l z4GI6fx7yP*dleO4Wo;|92=Yvm29UEB%RG7oHyOhePgCmOb%-X!daY9dN6Msw2rftJp>4{#RPZzi!+UL@(JkP&5h1y_f?D;a9d0<9v{b1;V@mbt>6ikA3M2M-lfWH=iK)qrdqgKR~*8FwC@{${ZL6pxD-!*bbNGA=Sc^dDQG#f z$Gq`%hkWa7#(w>2o#9REmN4swCBk~9qc|6w+{yiMp&>wlW7vMc9F?FCpFzacZ?+sn z@!PO0C-)6Yf0VJRtBS|8etB`x%N|3_5);!#O00|S&6|1|41Ug%eH`gDaw4z|10i!F zfFiM?h+O!s@_xs7zgH%|xmTd@= z-v<6*@)dK;oXkCg->|P=9!CVxh5~#lvZ>ldGFVlkxr+9`9)8XM$i0-`|45g#?ceSW z3mWQ>(8y8~$`?_7h;Z21bJH(Nf} zzgDN|`B36r2`G$cz)J5nL6DLT?xU;slMdR(werNhZDWi-Fb47frxv;SDhG!boJ_Fw z^lqXsk80e5NC1L=Nbw){Uv;6KXGP*GMego%RbZ0_vysTj6x=@!G|@h_(LQV+ZKa9! zi}9|v@m{y_x(;ub-R(ABo8j$&ZTNp_ezzIf8C_9j znUSVvw}Rf47wHRp#$1jSYBGDuRiW$#oT>Tl)B^2We%xk$GbbN>(MV*pkn=4Y$nXAm z+2!nLRulMF0<(N`v^?!@>=-_CcVlMwpgVFpv;CQ$i8bWz#;mZf)&UW9v%F<_cVkXC z-=cENLY)H(;Mg|TH+MTj*?wf}j%H40PrTIXxHA;p(Gji^>1guiet5h`=PG9lB07&Q z#q&4(bzh>~sh?fO3K7a~Ozfx!n9tum{QaK4m-u^)zfJso!rwmr@~Sg44(IO_{;K%9 zl)tI`-Ob-C{3)xT@0F~;{45LdKvf{-!LP9STf&<_^MxCnDFP>}O{inSl0ndBIfG4f zQ0JQW5(C#hF$`yOHd7{~lk|8~e^xoeJ99Uvkx3NTQ575Nvd(qhDeNBl7$lE{58V^_JAM7D z7MXQ2Jd1quK8CaJZuCXE`U)5m(MJ4xy9KRB`U<+}tEledoxTFn3HZ7lgo-WHXEh7G z9Y-C*wZ7v6J6k)~F64KI?|9rfkcO|Is&fIx1a%|~z7G6CC9y~Wizy1oMIaXo*&yU* zFb!Zf3$sI*oss92Bt^Z=*SpbXmlHlLr5_;B=cb! zRwp$9oH~T!Re40}(wVAc`?__qVfB;}je9L`e(7%^6YuPM%*2!3PAGeAdhP`i>yp#Y z%snH!r01WRd*E_X^Us@mkwALhMO)Z{X%5pNndx~4Z&X{ijjt6iCfcm~!629w_9rq};}`HSpETo=ZH?&z3iG zs5C0Zff`5kUnoJ5Y%~C>me&D7rJJYJxX+ww#BSW7c5|Ki;(54+Z-R%lg5i4#zfg4Q6Ls%-ZBi$d+CN^grL*&+j+%L=rx7sq? zZ^|hY{`=V9)=0U8-ottiO1Z(TT1wQ&+ipexd#~?~hb&Zta2F{>>bxAFrIPW0}g$qRp9K*jnHPcJTspoTgS^ zze~5(4v3AJy3hCM>UcSiAk(JYi!H(u8f)m8#hx{^xf`o7s(Fn+`yql#K`qp4w#qM*A^_@6Z2gb&F}_#d``$C|)@ zC`I>RBmW{*U`wJY6O`(&hL$WcI{7i;L+HocR=O(q!?wd4e%QuQn^6J@Ppv<=Q>`#a zNmH7v#AdUPq)UchP8VOtKk&Mi&yfTz&m+z%-UsBx$zV6PfnX-vy$v?WHo89q?C&@- zNXhy8piIg6&#SlFYXQA|CzaUVit*HXx8GPLEjJbG-K)@FsC1u`O&Let@!V5%9D!_( zL32Clew2GsDYWt2eNhpl?#mZhE?9_>5Y_PZxa8FoC?sX?K_~a-8;NUtg)D4P*T=|x z{!#<+TwJNYaY}YZxTjOM7S!C_!>1vY=ehTe6D5LE?yAWQ$bRK{;lp*(?aVi1`Tw2@ zSts|ZT9bAjhZ+Tr@h$sQR-|WiZC1>DG?f=-wsu5R_|A75;+wa9Qy*by%Mmb3az($~ zutQo`X^}Y0eXfrto0(rPu!~qKPGh=3bNAz_K3mIuOL}yU4_H|n-E-*FoZ9Fr9CR${ z6c3~jjYT2UX|<5&)|PGwZ}Kf!=UcL>k2oi)M*eA`o=gBt-bb;LO<*CLXl_o@OX&FF znZa%NBX|GI;NmdRV~3GL+-~Wj^-LD6^%k*{qF}$LO4toVPRBsNx8#U(5Mz0u*akl)t;JMg<-V-o81 z-goC1?$~;5Fpl2Ho!FV=<2A)b3*v6&YoR;F;DW{OZH!PZJydz$I1?~-*xZ|N@1>=k zJ?^Pqbf(Q=5HEC#JcLcJ0}O+iN9SHHKB>NKUsjd0DqdEA(}Q_*qZtd#>*2kq4QI@T zV~?Oh=H(wa%~hLej31>H+ius;0lnRI!->ctr{C?Eu4Wgnnm5Ui=`);k6l)nY#eX-o zfL^*oYp=I%x{dugdaT~&Y@5cev3he8Q<@*SB8XLQhE3R&(MQ6ail#DY|#Z)LYE` zPI@ost3+7H-*vlI9$wvZSKh$+_fZTd_jnq6SwhhN$K0F8M^&B;|C3CH43Kbw5C{l5 zN>nsj(TGhPkQtchj7$_0zb*U9MMkM3tW!y4t;hzlj99s2 z4$=mox{rU%G6fE=%L!H%I^fs?mB9;#%!7vxUOrvPuEle}$&0Pc zDvY)G#Z0vpTkY@OYw@0&)mnVg&Q4cb6X;r+uHV)=6`f?n3h(7LZ7gX`ioBj7+8QBYZ0~_+ zfprnZ5rPhjgruYS{o9g1msEh4(sc2Z8)U)?e^0c`-&8(V0JS76L6|UoJ(6^Ez+9Uy zK8a|s(>Qp%XvmD^Hn-Bz(bxDo*%8@jESXk%CREBXf~ii{bRvoWVJs;zmiThwu8*$8 zs@jP^H+oy$h>Zc$KAmMc<*L=V&M5F3%ing-nT_)7RChQr z@_zV)Y^IR8!EbKnPU3-)Vn0{d#oGFXYI$@Q%>FR>7+v7Y-__=f^kZH*ISgK$I+5=J z`5xRXgP+1{@!)3gy@T+gC`|pqaxFUi(#oFL@qP3itojR)%ai2K#1S-0 zl9)2^vGFIo$jn5JCiE!YtY7KE4VqlOj`rqq4-w%?NT@nagmfe6pa$JW8M(`4j1(zt z8JEdoMz8fu{oHkle$JFu5?*dU{|1jjjb^fu9h0G}GrqqRkOcE!N9+)no70%(AyX!=w)9f_g z2$)Hg-Wo#Q#j)}0?|?IEH03jP?XIuogMtGsV?X6poPWO|b7B@gf$@I2cmNAZKs!aF zn~9|8k2-dNitW5sVo`B|@(G(C2qR#$7>DzXCfBDB34n~C_rUC1Wqy`R>dO3RZt7hL zyB2>y=wYcMc1Zlg@*2-iZ=?3(Rr!l`B;NzncLU#H@4H-c=k1Ox3!Cps=b_lYkms0e z&321Y53<^xltsb)pFFIQa!N=PKc<6zDM9@RT8y9Ah@r>m9mYu9#vb49dgOLJG&*7( z5q@){RRzz8XS(?0>1;KbqIyA9^O)cs^CH>bvUs;9ucCbBNbnRFJ3@$l zONUb+<}-=HZPQ2}FM!f)gLJwAvyx2_G)!Il{s02`K>C;64$@fb0vgaTzT!3k9WLwR z2DNHmC9yT^E1`FeYvWyZH~mPsqLjYchG#;`6<#ORd3VnC5ouj5?>pw6A^fDwjV>o4 zSqSd=5R*9$KkI{S$q9(mVB%V@&K3#7%o0OJQ;uts$EY_1b8lVM3;qH(VtWVQIY{z6 z{OvsGol9=={8{H=VQ#rXnz4TN4{6dRs!1Jl%Z%l>P*d6ZUhUeGJfu;{6C=`BMlOBa zPgH?Yb)m6*c8Nj#$$k=@pwjellkNJlbIZwHDKkOO{t#NvCfmmeuZ!h3RL)x;SYu^; zVbHKajr-xdD0Hp*fF@ASxN1cJI;LQ=1&>5X2bUD&*)yrc;bXGUcHCgCll9nPogZ^J zXyR0UY;uVw_9|_jTokKy%SK?&Rs`el-Ls2|J*&0Tce3h4Y!_!%g+|vV2QN~0Ef4;*z5Y#pHXA&fz1L5OYBQUVMhgU zN`;zg;`|(|p`IOzw|QJ~&~uM>=jyo5GYxlAC(@!`Z=b3}MWe%?EnphHxTt!8{ z)pfhxReYYuj&^C;B_9MJumBEtsna=s$e6z|fn_-yP)8J%LQ>&WZ^ z+V=y!fSjg(1XC+|IkImh-B9b*o^;ztw{(b%YCqF;_T3mq<*2nl1{pt;B=8Nc<{`u7 z0w34z6(z-7M`VmV5h0J}*}%&1@bvL4k?=eReXh+`m0UzEvGjpxp>@6r>?^h2iB{T= zz2oOS=5)-tMzL-71lta{!in+E#-O!#A03|AS;IZ9d;G?Va36QL0!~pAK;99$Q^KuC3i%q|ah}Ee<)@#`aYv(Cygk%lcBMV3n#+E48 z*=vV;Q`F@!<4b7_s-mkuGQy{r>DjGNnfE#E*%JA>mb!6*tj#h`mB~v2Z1QF1oUguD~ zFElEwg&omp5B-^Usi6U~nj1tV5tjCl>{s!X;S#s6pIB z;A}eJEzl_kb50AH1$#u66?8%$Pxw(U)A%tO2+$&*fF3{eS%w!>&(5C*Ghn)>XU~S% zp?>o#6w3XHD+|~!zn~r9H_T{WPU1sA2<_+4BV6n^_Xlt)QHpKt%^Xx?X`hjR>*@&C zrYD;t4k+c$7mJ>uRvvOLG)DJml`Qr1;8?& zT$Jtc6gFvklHK7^oYJeB-;1ISG8s=BQ)+TlX>f+J->HeTYkLDmgQPoiEp>(CWs}Qj z*V4z$A1t>XGk*}=lM?IawgY*b(6xp zq}u^2rOCd8Ew7;iiSs%vCwoFDLUw*@oHgUBTk2h$$1@lrtW^*oRYeB zpWA_da=c>TK|j`7qcWy;wEf4WNXc6C*xQ0_-LBZ%M+axFlWn@>@}sd>;WR&>@BSO9T4FLb{}1RY9XlE z>}L1D&vxl$nRlQo06LQE8poBSBjaP^H^D&7iJkz5ZAf}uq(9=dBbVXmCY>r+21$}m zxt4JRO3RVE>oSqjGxf0oXS%#KHN<)m5U2r$<>xi#$%qtKrlOoID^v{F1cu5Xzt|eC zlUa9VbEc5C%{$Fo_?O?(@)Lu#;+gZK1=8|188F5zICF~(T5DIJh?b-MomZ3^VQnr} z6w9dN+_JG-ze3{J~8-M#{$gcg% z(}0<(#O0qEiJh!3uvaNN-O|73B^&NPft>4MKwuVNn3VB!0Jq4A5n+d$Rqt1w~ z=5KwSk>Y)O8*rmf2*s$>R^vsvN3c4P7p(Jp#~4lY9H&;^if9C00g8lNCTN#-E}gMo z$4S9`MQMRT(e0OlqpK*K_wB6|j)K7|gurb@sg=fytsIKEs?fPE=-d)^u7gdUQ|Ik8 znm(Wdb(Og)ajx*nQ@@~1xk<4=>#3`cRFgUd8W@KYesvl$p5I<)%-I1inmX6C=GS>Y zkK{A31Pnw<9et-~2(FNpy6cRyYTF8L)m?sPPE>!hWazg~_p_(MvwFIGDs}gh5(Y|+ zErqv~%;VZwyJs6^z#=E&t*j#Qf;2qUVs{PY9lG@qDRs9Vr#*_oWWjg@>LbryQ*?FD zc_3Z<(nUCdXXv>x?)KT7A?|Nx{R7eOhdhgouOrA2?Wf72+lgA%H_xF7*5pN`fOb@* zA}gq38G7@ab0#V_PQLQJz7bcEg%{mOu`A%jh@b%4({eJD$Tf>(qRQ{k$c19UgtG<1yFq53(K z>aDsT>wb==^%qLN=qH1&`uUEu&vbbuIPUt(OzGP%_|<*8hd14~2kf^@bER)TBaCzI z7_P|^y?{?=(c&|8i=h|wIRsnCu(=L86D~A#b6?Rs7>SI2pj9&vA49-6N4&(ERw@J; zec}kG_=(~aSt(!RYHw?_PhC}fU}_`UBCII~0_VJ(>Vyw*4W}8=(8gYwTSz65l`Ewl zOR1@+fmQ#-TFAEJaE;i8Fg4SN?W1}cL7S`X+9rKRZPJJPB)h6@CAF=2g>2k@l@m(0 z`4hgCN*3miwR(&t{etOLh?^wD8Ef-YNy`J?w#b%1SsUuI!lRIRjE(>1W?9^)2w^_l z8cXr^3Ggf$_bsuTEP*7>N3gDw)jv8ZYb;Bv+GjRjMtlYrS>$Io;mW(0^lTdd)UII% z{dj@W7N#a^=~-;4kktU|&ST%l80{oP}Z^33G<&X5j_> zv9}qcEyiW*g0Xix{pLD9dLjO8Z-Z+<2@!<`{G-~UTo1phsCOW%;3F^sUVoBLG19T| zk53VmtiDAeo#v$ehL?hnGci4~Kn!bWsAud4GK5h?@Yfpkc8GnX`} zknNlOqqg`*t&9G^cnQRGv;3_NIoCID4I5Q$*qRkd!hV_5>&U*D-MZCm+p}X-Te@S^ zX7cr9TDvM}t2RJR2&xS<;pu3}C1Zq`2yZWl znaU{b$Vvht#n#gZ%!15Vf9rR=ArSD1Ie%76WWyQMeAv3cI`y+P>Y3*I~3#t7CAGJ@6?b$zSQV&SsT*#yb?4m ziMv8UMKtBsM_hva-;)~ih&vL;2uAZw?BS3Iq59Xwr%gTJPfVPWS}d(t4}q>ASu#oz zpVnN0YaPU}7XW`He^Kz{oxX7V`XC77!)g#l`OCq06~c`7lxs4~I2BuFh;^qFW`p)d zxL8RPB+&1OF@WB+v-<%4N2T5f!Kyb~1jNYjOqD$oHdikfd?P2e(c%lxV_iz7aBU}p zHO@L-iam+F0mc~4yXi=tOlsr#{uxPrejUKI4o*^RHRcwTqoVJk)+S7rui)8uj7twW*lCf)vZ1Pyj3yE`nH5`~4$Oze^BD9j6rYs*&m%@$^eK~OowZR&K z!3My&z{-)%=|Ku6F6eBml)y9W0MM;w+BRB)lfmJAKXG*J2E5U*>SgRr`wJPA{u>@4TaEwrc z)ePedqf#z1G`p3x`A(bxwbL3U$1$3g(-{ArRv~_j=Kqq9Sa-l^dRzyuBsf|WO85^1 z$Fs^88b4hmjgNhBz^ddrjK#A1UQ;f{Hdyl(;`6Y!M}PrC+9hex#uPkN1$OWZ7=l)Dgyor416b4tT_ zZ{Y5DycI~DHB`>f46+Q)12zpe7|#IqSsWmZbc(UcFfq|d3B@le>aCZ8LMy5%C0eQV zziE3$Nkx_`S@pRi!-wn9$)ecl9S-1uXt2U=Pa>xt&2(;NjID~($P4GO*t(UL+YP&; zL^UimNdV&q()_6aaB+9lKvl~a;)Q@zWlO!?IJZshU;JiOgrp$=A77Aqmsp0 z_uTPqoOLa3ixtj-mdFg!K{)H*s5JNBtgCTt88rXzan_vI|BrFj_wAYA{OteDp212F>0x=L&BPSzS20XTG_e$U}BTa6H>*!ma&?87&(r)yLT?J0-Kb)MnCK>$^6O z;26AztrljK&=qywT(02}lpS8SQ!*39ntIbvy~ zE2aLW4YGSppu#!};LJvL3XsSDVk+N)`Ojt$_$0c4>~0OSv!)9{A^*^sP^uZ9VaR|7 zrVPkNW;LAb_Bb6)eb6h7)S%MX;`x8^0S$PT7S_LNeffwqW`{7br_c=KPOp=r-2r5B zq*jvh?C7!9Y851;DPA-ODPiZMk^lgRyiQ$trJN1a z2w0j<&knLD7;Qa1k-$};5?sroQhf7U1ZX4U4Z0N2X;z3#}V=~W!k zg0-ulflrzJal-#`tb5?xK1&NJesyD8fTg7*gR#8>{Kh$Lt4ZlM1FP~B?;_iNke9tE z23xn1B?JGDa5(z6r_NE*(X*^4)M#x$h4h?xGK3qfbKpxLGJfkZ0TQ>l1P7vqGg%~* zk$%=|ud(%GwWA%e+7eOYJE*UE?Z64Ml{j{i8G0e3$1&LY1fG=LjxS&jfi#b&9h~T6 z*OWL?o!0EPY&1TW2J7kEM^FmFdYWeTD;Xf{#6xTo_Heqfz`r)ORP$)l9%!*<7PF^X zt^<{&i~)!=O)pVUq{x8nrU^exw)?qwhex?bbazoPG1pt$-c-%oWPQSfih>F5!#U3= z!he&t>rms$CSwmFTx4P8p)@CI++#t1=yC9%@EVx)AfH93i{30;_( zKj|){YKFi$M9x_6!S6TxY7{=R8pmq(c4{)G8i)L!SyRzHpm&(;{Ct15WB0+Spkqq5 zEl?Yion5_5cC^NEu#pD!HreTu$eR#X7CTB!S{oo3Kd;*ILPdvy4`<-07~j%X9%s5KQ8yk2g_~nsTLrJ4&@t9eMn>OV)<0L021}wl%6G+{)~Pe+f9jd#z0y@h_zS3YRI5hSs$W?Ho-^Gjf7tK;lU(tqEeldhMf za{RW=$R_=TBt7Or7KAnVCkkHlTgG|FVF~SyKUuG+uDOE9=&iTt4)1}>c|ZCwJFQT+ z*7Z`zeNWgyoFvhSB#0sSB@gyqKH$j5YuI#E!IuxmU3J2qH;Yf;VHOtiYn^kS5r<$kWu z9v4~JS0o?(r|iy;Mq9N{(jPEJaw333PCN3iw|#6|aL>-*A7yzXcUios2-B`6?u>jo z9~SD;^a1s6LFffXj{4UaG>h2pA`1vR*9Z4(4V7;RjoKEmxNx$Yd{djcFw$!Ku!#3c z-cPmPkKui&4(^Aa-epJ>a`0-&?*aAujr!fMe)p;0uhs8f_1mr2oq&iEd#g=1M!QyC zj2rdQg&jPE)nM*5PONGryj{XitlmuAE9$jsH=mrCwnm0@<%-g;+@UB2ryM71#-ykC z(8(_XslcwXU|n&QP3c)u=4QB6P#INfQytmmbT4!Gew7n(#jAIx3e2kA0+$1A@v7bU zQ`=!)vc{~&Nl5kXbn(ZP;-Q#RhraUh4mj!Ry2lLNBK}iF*V8uq@|*JtfQ6X3a~@Jw ze_va-V`f`z4(1Fu#I%46kx(t3Xf~mwyb^<~#Uba_Ztu*z1@C)jx)<(-|0CS>DL}7u z@jR)#b`m;OlMBL5h?js_#Hkm&I28Yn1;N_f5Pb3ea%bYI!LYh#f6ULE-ym2n<&vOy zs5acfU=-jW7CV4xqA?_1I{~3tn5iB1X5pYd=gGaYJzX+y$DTzw>|$az1kHa|nQ!B= z_lcz(e9TUGST5`2OXWa!F`lttxlA{=`(ypm{+K&WXHN>7S8{XG9YxR@X_#wqxb5aS z-bh8>f_!1o>^kyVg3c;;s-HjR;p~5`C^u{5IZKo{{ewKVa?UQNb66=f}Pj7u`AL}nCAzm_qa=E+868})ewq%+7@NL>ii246`z-5X$_|?i zyQMK~1oW}}>CH6HM}Q;cP?Ff#n(3SzGV(nkIuXbnDUI?zXUVzid?L^&^K5) z9L}J5Ar)_pelFLi2zJ0BOscEbI9Nj@Py8XZzElGH%*Gg5UyoIBc4cz*@^QoTUrML! zW6d^x^b9N;xcdcX3a11;>E=h_JA}>qyLoVInRbB~uqyT{7Vi$DC|G0+%rT059%En# zi}&CdW1t`Ncb|`MQUs^)?c;ko-&2gDmImgJpy>qFvjrCG&w68ETw;RpMhOX_exGp7 z`ilg}Va;sbE!D>_X$YA|ND%iyHCrkuAT&*Lr!=nb7JrK>L=EIngJ) zYG~2`40P@;7C6GYC)i%K*yH-;Fz%B(Ll8tldMhR{UoMx?SRHFQ)ZO8QW^7 z+Ugi@1EsB}VBxWonDE6i=GFu1`_c+~A6a+ncy2hxD1{6tl7yXV9SER#m6ni{_DS<> z>b%|h(ch#{1+VpKQg%?57EictSwVcFaLIE#;x3cZ9Ama$0^@~I`HH(1=)hA~s=yW< zc#95vOa;1T>aY8BDL3k`6{-~14f?A{e_f-$KGa`V@WsGr`Xv~<#x1pffVY#i{vxVo z^RrHOTJOoEX86=HjtN&AiBy7IofO};+N15kWj!p(WKZWvGE2z2UIkIkZMqzFQ-zwJ z%<<2*tlD-|GP2-bT%7`si)LOnidupLy6 zkL@P)#tG04ayg;#Si9@Y)1f-)Tf1vCZ>(H!`7ZQU%~g$G+!VQfR=`~EH@Ep4JAZuB z^`XYk&%OSpsA&cIuTGqs6X?InZ``-a-}r?;8kym5{OtOhB0sL`zq9ePT7PvQ(0`}T zxNmLwI^(f`l-I$?s-Pn;FgG{8(>Wn+G=AOM2W8>1#;>Py<8EYB70O?N?;)`Ju0arR6+9XtpaFC>2tF!r0>=I5Zxy__zs`O`UX zUdMf1!s9zbJZRoWMbyG&-zi7w4_;l;0EK(9n!9Z`eNa-6I$I+ zgAV zG|%zi4`Q@UI0K{F!r}@|Z<*fflf|Dz73wjf{Wh5Wock%LJ^P5&2D5y|zl}9$-hE{SOfsE#wr=6e#~G;9;#Qww?s|m77j$O;-i;Sa_?<1bj_Cz(z-wfuj-h)|@&4*HZ|0eFLGx4ck+u7B27ktZW zxd+KsMHe#&cm=1kyt~?bkwWVn6?ZHZr`{<~iyy3E$a=7AG@9ZvPZ;{g-aY^qH9oln z@e*;d-Jgn8|D=*X7Ens`RO=D0l3)_YpuZd$VBM>~rt=l;59Qd#A%v4SfNz6!?+X}v zOi~scMw3bLW|>%Sl+A?ZhOme`@ui>c07^E0ykJnO|TaN;bail=cvmeLe-s-K+!7zK_rJjD4)6q52?THL6-^y)#iHW(^FKLZfvEY)1 zQ5AELMJ(BtoYat))Q$&Lj**M|UbYfbrDE?lMsqtUjU}?OnR`grSv@jANH2v4N_yX& z24&-cJp*N{PO=yQH@u~*SHX!91b;K8o zK3P@s`I~3%;5Te}R&d<^`G=x{#bt0+ONAkHlC^*Uo6{BJC{VtxqWbAb|Daj*XzWqh zaNo$Z{|k78f0h<_eUXh-#`6_^^YZ}U2s^}^9XFjz0V-CF#e4(1mGuIWeQjqSZW zGBmdL8l&l9m8RBcI+B;j3u~`xMZQBGSZ@~NM{5L=YKGp0%<;Bpg&2s=c{;st?qv;I5v-HJn#P%_ebpYjQ zibW@E)#PxA?bS+#UJpyA(`tCcXX$jB8TnyLp!7PH-{L^a#iiGWYa3o;DBx@?7Haf5 z@r+y@c%7U#Yks5D8qepxy;?_R6%+Z(wicjKC?5xNu9y6)j>Vy zkC1hxa1R;FPYgu@u&e!wq3B;JyQ!+F>$bW6M95PYYn_^yy0wm-KTSsNs?>E_zgkjU zU?=XsCv_esFg;7q`UD7|2F_^81JIz1?vWu!$Loiw-1rYOgPFv9L5-DP8Ib7WV3q`x zc}}3YGt#fxUfQYgGVukoKb55>WgV$zQ`QAaGsen5X?N;q0ERq=s?hxETKRBQf%v+6 z5~DuSdYe162i39VpSYDzD9m9-7+!aov>3{&|^al1si!=EdAJKtz0dF^#I_ovJ zgbaS~UjIvvt4X|IuN3L`ezV|&#`Y_vjkTMszYXFUuX+ZWz-VeF15!S7PXOEyNI3)M zr-~D17A|JFWOpyBi@0a)A{!jGCC3SE!*-ynV_<~L=Q>1QIV!>c6j{SISCMYzU(k!a(c!E{Npze_bV2V#YTNrNyjU#B z>@Y?GhQ@(8Wc*lB0QQIbgg#z8ap!N+%FrdYvFRS44R_akUG8R9n(=rRiE7QSEZY-+5)=` zhOe}|UA8q;28o)x<{c|7kBrbQmjSa|ej+WmhgxG-ijyTIUZ6UxTHrlp$aWS?%s2!D zS<~DZ8Vd`?R`|JjR(CobsJKL7`07V(hd;7v5<+1JH{q#2$(sC4=@`H}Tm_*-l(6bb z|Fo;owi7%Z>ki@5qkBf=)Mc}1Bbwn{EI2p%D_I=SCFcQ< z!BNS2o)n^i96BXuMu*@vd0y@r(E()1lPpGZGKq*Qx8qLF#&sFVQ&pVBUG3P(4Cc^P zbeAxkG- z0{LoS=c?jFtiD+iB`=c{)Ihf)c#0eqIcu5hBSv@hGNBfD8KPFRx6NoiNf+l%9%GlA zl$&3uASY?4a+ZIRpLFS<+~j`X44sgc&X=Eg@>3%}!7B4}>5ROGldq93!zaOJ*vCy} zXv4>DFG45NpT+@-HSHM@^`zO}-nOVK)<2!f#YvlervKLYC@W#;@|F061fI^F=mFCk zGA;9SF2jfvgktkl(K!QC6Jw(s&07~#FaiVA!Repuzu8P?41pqEtfIv+?@7_Y%O)@q zI^MdNSa#mVm>2Q~M~a7@urk_YnkV)@)7oo~ISj2`-EcTk8=6DY+S3lAwIfVpy`r^i ztpENywDzdC)V}PYwT~dcrnQHD{#~?o8Zz};wDwkLwklkmvALNipC+}}kPh$?NL+P{ z>@`JID^h!_(ef+eWG(fkvPVv_sq7^OQQ4@k6@VbyVCq9?cf&IcU@(z`b9I;z;nG?D z*j~5MG#?rpMSi3nkb4<=+NQhTw7>7Op9}5hnf9}W#t7Zr)tl}v0`3`29)QmOitc`i zY0uK#SCUug?(+_%yR!spz0n+&`V@gWTu4<-puP<}69RR54}mJ2k3&fHu^CeR;OgDb!p%_SYqiHBF8FKykZK|3>$o1Ega!&1CE9)UkcdH&`>F(d#)7?M* z7TrBV(cKsQwKv^eFQae>-F*kO0&F7^DRlSp8)W8$c+C*sB7rmF=SxU0+WY5xtF+$r z3pOj-JC7n1?G3fh3$*vI)k}u{^mg`&L^w?Qm-8SzG{6Z#wNe3p?vG4*pHb*@d-_fX)MsvLp-U8$)D6W}*K zXU~?=bP}r*MBwX1gy%zq=YzI<44@j_SEc$_3PDP${~u7}eT5qL9xyIA z5P}nNe@Irp1j5x&_I7ixe*fK4nSqTS^qn+%_xG!7-hryrgSpN5e|!*^5Rk19gj zCS`>RpWcfK-^Wc^RDD#E~dIH{r!SXb4MFer)6Jb>(hcS52C(lNDuWLq6neBNz}acaMZVI_Md@GcB+G^ zZ~erMP5mw@1n>@s<`i>$Z;B? zD9>3keZ2{C1)r^-eRa_AC536K3G&jz66DViZyw-K6-YkG>!D=%&k48Wn{@mawiJi5Y0b6Cmr02H05Up!7+Hk}>Kn~K z^9|$qq@ti-H=f^!l1Jf}ipY-SHSb#ZAEBXPS0C(rPJ|NKe?9tJ$kvS|`aX@jrh%;S z(tjVkgPb`7E<-T^YYlGB_|w&?8$-*q{#H&-$oSh9Qr$!z>BMZXj-PrsId_&ycY z?=JB{Zyen~(f0iTDsg-&vQB*S$J%^6cks8H%sedqI{E94?npgI+43)Qe{o&VxCz_M z>8)ZvIt0}LWWU(XVLyjYn6i%Z69Gr3v`zf-pPtHDj0b#ipx<-L!lQiJcPq5=x|u(e z!Tg=-K7fTfYhGkV!V{)epEkrAr5oA-8{QLbxNhe^fn#l7q8@3k68# zPrv;;zJJZ%U-)~FzgGVK!QUVGyN|zr^0$${HT*ro-;4Y`%iojyE#|LR{~4Cg;#2q5 z#ixGLG8L9jeCk)J&-wj4KJ{w?QJ#xW{USbfpB?#Sd@4G0@u^*zxIK16H?nup9T6R& zVb*}H*@ZmlePA2n1rbl-g|-dm(=&)JkxmeRn+@+E_QCp+OSGo)ey!9x!Rc|8IOqdoJ$Xoa|LP~R|-#GV8zxU1Pnr|<9k=wzV zl4GqnPWjII&9To?khDTI0ZE_r+S3BARpq5P2kfbweftvNWz zS7o(%jl0^c44FTws4m;z<UGFwxzvUw~e;*n{>ZVa%3vwbuiN+TaJlBx<&yaIXdNWrO+_@mq zc&DRw&W*dHqj5%hyN`k+Me4C5OygJbv@G zV5scNWL)~O34bkSV1x8*_HDdKujbTuRpogi0hEc*{;1$u*J@|$L^H5DFX-)@?U6TJ zhjz{xLi(bKm4Veo$Y28-3goqbOFq(V0o)6A@Dn{+U8WiBt?dBlw*T!8p($b|e0-}@ZL%hxa&aB|d1>WDyau!8z$#h*_Bv-Vp8nxcP zXLDdwYoLD{N)A;7Vz~a%Xlwh)jH7`2WkV>>>gKb{bsW*TkrTB*eAzc@$n%%Ma_A9= zW18ecAfBsi4Yb$fFL7ojC=J>ES0^j&pbUcRf&X}MlzV0d<0Ip&yn)dRKrv0Nkt)KX zABA3Mu>XaY+ltBuZb;+}JWiYdjPK@WZilG&ddax5I#G}t+_PDstWj;D=GBqc8B=&Q^TUl(%O_C&XJ z&12#t3e(8czY$Hlt*Lw~l^b2;Ima?^C>&hTmWK)Ii*u1%|)V+ zL~+<}&9jvIjVS=oOi-&w@H&97QMkOF=>{P+4yTLZAxWo{E@ob>k=xjYe;Pq8@J(+F znz2l~ui=KiD5o4#w;YFCu}ba`vyS?`KyFh?uugwWiZORfX$-cVV*jH(DMmc5Qb?iJ zd%ePUsP|Z=-{(qY6Di6;qq&~vfTaI#ou1w7SlJ*|lx?ye)nO%)jL&=Zrxar~>v!or z47vx8kS=vZhR2r4KuF8?>()vFt40zhp3~a8cZ^mH7IICMT$Sf`MuwvoD_uH5I$da; zsLCE-9V5@!LPj5f!Uc>zClpEHvhr2TTEvy@o?v=o^zS0M_!h2?anlcRG25Y~h!Zysd zHMg|_HJue3f8sTeIWWsP52UR&-rHS+2$J=p6uCz0G3eztAn!L+bli!sIvlZm2ck!` zyN2^F8NfSzxjLXYw(pxLnqtmua52Fc#14(^+aE=LG9b6|z7NAfGMP1bhw)jU#=@uc zpbvLG2_}A2f`-dWqJ>Q#(WSwm!Gm82q6;P#6rhNh7mVNS;mEv9pa}Q*)_w8kU}Air zfPpDHuqf|n;UXcy-5C9Xt7zexXjc@A@+#HceBwsni^Hv5p-+)rK;9@DkHlX}8?;Va zgUG;4*Pr`RLHU|syty9kv7Bu}c}h1nUF>k@IIvFh@9NoK zp(k|dS{QmB$#QAxSlH_mbBrY&sY36DIRnhLwSj_q56)=39k+fW7OabMn_8o9nCIpx zT{$^0*9%1uOf=Wib@a*k+8I}pF-*bXL_$)A%eXQ4erXhT(8I!Io4RsyBK;cr7Wo$i z-2X`xcIDzYwxO?w&%Xa@X_Qe)<*!vw+%9pHT7}cB4bgR}2~hl$fS%POxIyxW-zhi6 zBqn-N1$Z|YHg^D};PT{KWu#Zh2ydGWwVqHDgY?o$XjML$xx?DOsQqXC9{K<>-7KsJ zqS$+XPsZ@3QNseR>;E|I!s~YMHrz)@MTB^QK2~*gUqI3;UVsV^>8}k%UR@%Njb461XwIc!q4th}1DPC;{zRPR{6O&6sC0K^ndW=gw;&%Y; zpObkCR5G&0-A}1h7ndIItB8~yAF1?J%+86F8%u7_0ixyxyzO&Giq>mTe1tgL{AJz# zM8SjxcV5WZ9xB@u5xu%@)IqqQMjsoNPwF*&z zr4->;Id(nrPNVscg49u}{PNq~{xd4I=F8PU>!NUCgirkBGUqRWa~z?zck`;9xb)oO zuQ)B@Q++>6`Yp&L;BB2-TE(>%e!V>B4D~PSQ{`;;y92|yOJ!nCm2*33Zrz<3f>x}{ z+||xKp|Ve-e_^1d*^Qs7?w=U@G%s>w?9;+XVR}=Po{#-zgzov+kK~1(kKH9N^n9%7 zABW4Zyi)VT6c$WQj2pFFW9NX;Elzq8q1;f}cHGvnkRE{h4T1zlR*0&Jw?%-pJ{58r zoEglV2+=gj;ABy8b6;YcI4{+j2dG{?qQ9~f0?e>gHe<350cp`e#`BkeJoNQh z*UR-@sjH3WtBaIhsyeRCI8I?u>q`u-NZv=1r^ZVP3K6Q@STfk1IvL51N8h*&&MOjG z_-K9ng6DrDStXlLtvo#qcXm7EC{x{OtJL5oPIlr9wjP$tHeGz8G>}c0F}c`@c|?WK zfG+FN`=lF_gZk?i`m08NHR-Pz`s-HxRjvHvFHpt+pVnaIMQ8ikw{-?4~ z6>d6>@RbTkZn7$mP}t2>7=T`mk*p&G_znfB{U^59kV zabjT8=^$UCcgW1T6Tu?uM}h=0WVH;ZR$)&Uf4L8!UwD-Z0M%`IVG-E5&IKwgpT{n; z{+^PoQdH!0v+xX3VrOfetdedZa0mn^+&XAp5AY!v<8HyY6Zapvw5)uWfUJk8Ln>D% zAUXHg>olWAuk3jeuHT;`AffS5%8Ff6Hb@lzhw zI2^#)Lq3+g2lc@o>!hHS|7J!R3_O7sR*C3g>0qcrSD!pE7uRf_tA=u!^uoFp4M2N5 z$C!ohIrVt{i}d6_3aXA-eG_PxF5bMK3iWtu_Cmge_J}@>h+UuXcd(lyw z*Rk4CiW|jWZI4ZptVKCP6lq`JFe0oGj{wp;tgl-12|=`nt*3uY+qBt3RNTu9vL4VO z)5Y{5s>UbnS~A!vCJ)L~;u=uF?}pRq+HMq8@B`l(En6l{v!*AJfyQ+Z{>UbI)Gdv1 z=TcS_j<`xOiAWXOVeOMjB~SY#w>I)=fCZq`eQlVt(;$yF2>4ePJ)5YiPg$hb6{14R(qkt1Az}zkt z&?k~#atrjA@AprmI=O(Xd)%!stzWfXlYm6^i{v^+Y26n1{c50LR)osdq8%PA>t=0R z=OSsAl7w&|@%~bAb-tZuTI2tqW28~|rL;p&utRssbR>%ZMSB0zB9H2s^#EL&)J)|= zJze~4Hz}0SA1ib3H*+uI`Zgice2e=I(_nYcge^P=wyyTKrFGr(QEFnd+jyXyn{Xq z^`dNWW{9h&MD^3k1SiRnn*+9(-&`Cpck_^Q_jLYhls@1T>xo4G(m~IQ;I~6G4uWX* zBcm~z&IAm0ol^p_SGd3Y051LRmdRpOyuOn4mIu}>b`!@5T#9frfJijcOW6fwC78$ zI@t6Z`)R8ZHU;hP{`PaUPT$<0C))Dbv_}q?M$;8EO{o|{{P2Ql&nt{@k7-Yd3ce_E zV{C7Y(X>{5WlVZt?vMqOoF1IpSBSZcQPV zLkxM69{@~b#HJ+w#T&|j1HtggmwC@9=DC!TM##LfUJ?jtrJdCE+ zNK?6QWl>c(Ujg}Q(PlKsAJ9s|rc0Q=q1}U!)u(M|zTo~3BYq6y>VJ{(#>t-=;u{wH zOX=->NRZOo`gKI(t|dRi~!(sO4@VjAXWiDQI3$ zYvq-Rg$#f#P}Ph{Szjt;DfMlT`zHjOl0Hr3TIZPL$9zTy0O@ato^7}8OuJ?N#{G{I zyWn_#;>FS{DMKt{?%ypWTUCot=NvAvib?hHzbNTs)4?g3&ze{JB5MxwDEEMWPHx~Z zs&^TS7*R=6r?o`&qskoSI#AHT<}mLmOP5I$m@d9vm2k<^tSnMVb2FAON2>U$-ti6I zQw}zQ`5`c!{UjqIc5yXEvs}ZWX7V(ddH0-rS#zggxg<(?MeJi?oa`y{VcjqpkX1+TbF3hIz?i zWEOb4r)IeQGwkXUDj)s#SXWTIz?O9MFRBNrlhp%kLbOlVD0ZWDdrjK}rc`GWWmshD z!=>Gk!3XvDuWW5Wn&{KX>M%s@?xton@aV+1;1l{GvFTt3PSdyujQ7`*52Qg{3P~kp zN@zy12F?~!9EzO5?~KT3erH7r`JEfxrXX?Zm4*qkxYi`yE}sRdm)PG$spt9iq@G=r zFM-CmGou3=7UrB0#dCMNQmQjj_m3-Afv0B!yNp!B$u;9VhnlE}-ko5DX#nP@{l=0_ z3Po5SKdIDPk^6{SBGGX4FWO|yr0H~n2C1IN-J1s|5JOeQCb|&r_e3=y6qab&& zQjlBGp2*m(T%3GRSL})SDPdIPG=9q>$MSnhWDvh&jOM5=!=0RE7nZEmFFDD}NQ$#Z#;5t%MO%1Gs6c@wQTI-br98f^Rd>`u$I3Wu=$~eQwU`7jZuKtSlub?nArxC$CYWj6!pQ0$^X5eRq>JZD`k18I6n$4W z0jvhQ8@Q3-3w-aNA_o>pttr3+!KAFdCh0MVFKl_mfTI{&Rv`dr%+`mHttPF zMt$O{WuqlU>rUx3EoqG!)}TMjf)zeqG;dY#twSqA5_MUAd0Lf>IecJb2e~s4IRF zg&EP7V<&U#aH3$nsxTPuZ%vRrVUN*9y9Ru_px|SV5Os)2zUx{_l}n+_0=W(A3|b^S z6`B~A=}-94WRBTO9^J}V2KXb*=Ws4@Muw60GeAkJ=KdUCqUqMdF~s47!8P$?h({(})xpOZ-l5MhHHHI%T+=s<%}VVROWBLW@>=x6Q%8vGE;r zMH9b4NUKP)3T{uv%A_<70~ajsn8EqYpS&HlJ& z7inD>n>RM{=Q>}@|1zIP^7-IYrHhNzj(UNUIu&zfQ5u!7JfDs*jyL)~>Iz zr@rY@%ZzM&I0fygZ>?S5`4pILkEL_xKg)RfvUe4`-sdC}EO&jtjYHznU^grF+W&~B z6&Oleblm!0aX-k!y`wF@NVk={g#nNCt2WEj~kXb4ffL6)yhU9P7RvM|F{0b2V~HvVff* zS)Jj7>$2ETS926k7k@@gZ1wdh&_XLgOanJ`P`e7+K=J>ySYdJ3T6~P8i=Wo9&q{2$ zYq>-TdFFaX#V*pZkL%dqWMdyzv9omS{W^9*HnvH{p08sc)UngEu{WvMF*-J`V<%=~ zYgFtJIyRPRqU7Vt4`jjWBX)dPgb$7>)5$E*7{GTM?+NXQXPAXj$NOPb*R{f zb?h7+`e!!UV_#FTSLxUrbZmV#c7=-d>DX&@?1kCbr&a8+I`#@3 zdqy_)7b-SSV#{44B{)%hsU%W!G+)Jj@SYltt99P)4>J9&Q?VU7)~@%BZ0r;j`zIY+ ztMk5?jXg`n-lJo$)Um(I#+Itsn+~eCAsahD#ZJ+&Khk-x&Bi)Z?CCmovW^X8W8XmC zFkL)Y$Bx&r$7f?-QL$a`s{Wp;W8K-q%B_)2?+u3+v ze)+m|alRBwHG=9$;E;msf8kpHIB;_q|31jmjpu!XIVslkL3B}qdPfziFGrbE3c}v4 zv-^Qao$JHiEwcxpDNKUVRo)G=-+{TGDNCNcXhreLIKJR$yfY&TJOdm6emOQ+25m@d zH(7T%Mt%d+5nr9@;%V;)=D>+muom3_9A(D3`^|p87lM_xYx?F_Xg{Qj%gG?k z%S&%gIV>SX7E8P}8I#|j*|M1cAwBcbTZo>x4eCwjPZa)>j-`uJ%mQ;57JVThj--6E z@Dlk9PM1 z*{xalR~|`|VhH-X4*D~X)E#_3tiOLL-!rWl@5nH8GD1AkMhtp6>}F{xU}ug<61dH)3dFEKIgb38O~6{iCa+dKRe~2vXQ#7Av`jCl zM|O+k1CK}PoG7=YCA+At8csw%f8qkC<(dx-hf`iR-qb^1Fd_aIi~2Gm`})r<_ZyG@ zYtAWQ^RG{nMObd5gR!UNooILTLi6rtc!e~b(XQU^u_G$YLQxhlw?O!KOxGQ};}&C$nm#nMUkb-okO!R5BRNNANAon7C?N(#fYR+%}?JIM?;^9V_j0q*tfz)pF#g zm=Xv_8t#*Z2c_X!UkO?&W zC)PK$mcQ~U_nmqE_*FQ3HaDU+mt);HQ@Sim|2DjQv-TsxUobD_X!3H{{5aJ1jY}?q zP81dmKaf7pyeBD=m+;K)nyN+D85LEz@A)_H-?K`@4p9T2+wNdlCkjZ(A5cojJUdjj zpr~sVj)+98>2KJNwi`sR!(Tbg2pUcQmgTnPQ)yL%)62z%4~p8{Xzl!o?AhafH|zkH zh~M*()CfTs@&*i_(R>*ThO4vgqgySHN&LM227+Q=Pasv-3nW?3DZ6VGa^LN0ysmPKTfu$Fb$o?tuX2aV zuEJ0EQMv-7=_!KkDb2MW{xMzku8mF#ndf7;LloFK4^6Pm*oV-Ska6y2QRXJ3Em+pp zP^p>)m%LRv;$4M@^F8O3I6R!%!`bnxl0s$twxeL7RBRFb&mH7P66lT;s0?|)fgO=N znulj}*Y2URUYaZ|sSD)0^W-eES{4DLuq74b#!37AQ=0d~poy@RNfegXYuDPsR=yFo zB4nNEL)eef%lzi zZ@m?4+vfs2FF|2Q*7!_yf%lvE^c&-jy`2-e47`4}a5B(fc(W@o22M^HK{v!?Z+4`M zA3#bC#^{$WK6!_99elqF5~J9<5q%%-P<)+-?Td1QTzqh06Dw~u$`dbTBdk>j$k}xQ zNT$d}SFXkt-Y>HI)ywTY=kL#9T8X-QiRGq{n8#t&XA4W-t9m*w>K*x@hhE;O)PDBK zCGPB|%?R@7rEFdLvmYsDxI%UF9N^7m3w1a5PwWa*(9eNL)6o$i<`T-pDdiAVpM5KN z0-YPGMvIpO^BE4*`j52c>QL(~o_50bU?17Nt5LlZzNJ=`Q+@P&%a>&9`>ZYBk-)PH zKh40i-EY|Nta%J7$6SVK-!fObSFQx}`Ase&`m&075FC0_zN}KN1+|h73QyK!O;xQK zLNBaKb!(C#NhH9V>j8?FAu$QI?NvaI5f6el)`w?W0^SO_%Vkz+jfQc4_I7$)&fLLh ztnS(TbWXItbvIR@XYNit%r-2<_hunmaFg=AnXY5hHd)VHFEt?|5pd*l@{w=_r9v|g zhEKrdZZMioB-mQLQ{a$z3p86=X)9=>vatfNAm{+uyue@b`HcH$c0pUn3>QMxMOk)A z&!Y*LPaa@c->Rnf@CnIhy7&`Bts%^^LAK?s#`7KG^g}pS)0N-LK7C-*<2R1<&5u*l zB142`H4Mp92rV1-_Jagv_miGRNfXS$tEwsk#Zw|jqaI%zZV8v(h)8l)Rh%%t(%z9C z%t|3XUuO;ZnGy}05n`On+CxsRL+H*ie)b#{3A_#18Bh_)128Kur8^}KrQ;EP&2bRb zC{kMQ0(n#d2}Ti<&WNlbAPNf=@&gv29a{0Rd@B;*(JqEiVmy?WF1`s6N>61D>ZJ~Q zKvy2f1moI(=&D3j4l=V@g-qHNQU{C3qsNwtbd6G%J&84T`KxI&lCJ4F#yy*OMJDMJ z&k+G=j+@m>sy4F*havtdZ>@{%?MJsn-86u+=$Dmf$6los)}8Z2-;*eDdlf+m2JaP- zW7KU^rd|ow<-L<&E-h86cH(=kY%SW*b3$yX9l-lV`63nz0!0>mlk1pl7VJ->v6J?< z1Pa5G0Ve+TfNKil<4BE27azTif$B^Z!k<%bcGpEvNCnNijOH~gc|aw)BzN-`JK!>! zXUQ&j5*<$)a-76#d`z+$a{#r0M0uAIWa=x8w`1Zrqzj z*>m=*!9=s<4VdlXtWb|rpsZERIE`Te$;?hslZt3k)gvnqKK^TZ0lfo8cM6!-C5eU< zekG>_(K^59-^9@-)m(a5iq@EJpK+HD5+(VP#5e5ErEf;_Zu+Ep7^LIh-^0^0Zj^HI zhS4u-)WwJTV=u$-Zs$*~pli#mi^KBcvvKbM=`6R%{NHwV5mPR^P|hlV+FW3g6*#_)f2sO`@+>=6i^f zM$tYF-U1=)iH2mffyz(5mLqz0IrPAjK$$>p;K_`wGD4C5PNdp+sa^Pw6oDzWyxGa8 z@$-!=c|mHb-+&qn&5gSbF#pNth*9fHt+Xn$9Sm)^ZjfE5kP%Sd50Vo4L=|eTPPXvb zvkQ~A@oBzl{bw;{e$;JmFffzS8_QrO9}Zs{&K?eFNeZj~y|Ob$u<)$KWQ&(1pCh3 zUH?WP6NsO(Xeb!h<)B!h<16d1GH_sm*%$iYnu3OFDjF8~D@qr(_$!F1?AMRbDS?)2 z!a=9f<^_>OKley(s8tO1k)Yh83lsCrW=oy++eSg;JVIACgwc(m#!WFy>uy8sTQI zF(D^@P?6c;l-A7}s;meY;R;dAR9y2w<@gVWaCDu6x+I44R@+NGeUuLN4VdHCksx(p zuyz~Tb$w|H>a&{zIj8)cU`V;mJ$*ar(7qkMPpNj$N`v3rFEo@VoH*t0Na}D>d*|Gs ziBn};95&V8)h8!1nP0b1xyRFSR<0M-7dbh!b-P3C$^Tgz|f?cGEE7!i#MHgEbTNB8)Zam_XKCY zSrc@QED{l^uEPnxP7Cacj1`mI#&Rp4`jRpqYbUw?KgQk#KC0?k{GVhJ7$9)MBN726 zO7v1A-e9mM4CoBZz(gmARVuBbcmoluRtjeTE04rUY9_~NZEJgJYg<}vFSg#+>uu%X zD*+@yl$TcVQHi$IJ&uoPl?2hu|GV}+lLWN)|Ksx^v(G;J?8n+`uf6u#>(P*$n-SN# z@wSh*5*dO3NmdAMy?&n@hPxtSa3gw&b2JbC6>=F<6>)#9M_P$a9vdQ6#ybLOJcN2< zL(P-#=1pv#FzZdMnP7&TI*0NGvu{G?CcDMGrLA=%D%1sd^Wq;H^!#RxXM- z3p(T5*=;;I>ra8qb!wv#*wCfl29UgzYq>k*sE%K~H3%r_CYOqLAmYJ*B(E|hBDbtv zNVv;&rq22Faq=ThxHG=hR9+Txy3qvb47T;+UiXoG>hGKZsBCnoIaU~GUN>@gc$8-w zYtWM}RtN54;DYV#o^$xi>%!gPk-9(7+xVzKFsx0PUOjb6%k!N7sCR~?JyWf3NwhDHxoop@%B_;;?f)JN#t^<9rI zidcVq$*`_k`R_11W&C*OY9uMc9hyqc_o3(v{Xm;jR`!(m%$*<5138E9RYgw<2xEIi z5b<#PV7YQn|4tqTnTHdEyToGd7ooyX2yc^E#Q#_Xh1U6?;qRW6Q`1wCMA+vnT3nIA z>3*0**Uty*19R@rN*p1UDzg-(VrHh1=PYDY^<7MYL8-@#I7{ zmJwEO;}Ti^SvV#Brh#E~cQ;3Z+!famuk2zdP9a_oR(<7?WWhSl{A?e`JaE>l&*6>5 zo7GaU~1+AhJma>3GV(!p?3 z%Koxbvs`=#j3d|of%QFZL1eWo16e2ceNI(+t5#K1lX{;a0*cjHbULa*u?*FQFK0n< zH4iZXMYVs=>I<@97#i7{1*L{YS*HsPkwd~-YiIB6UKb+AAP&aRz#fr>$j(9$Q&85v zWnkx^!hi!ws@iz1IaJy+obYlw$S^8H&OT6AlI2Y6Fd3OVl%$8ts+7U%!2wt7%bylj z2IAkgdf$s_De)-QOB>Qvc}R@K^w`AI(z9=fUK=#!LSP{;prhM;Jm<7d4xximusRz zdJ}2#OVoX^Mz{f3rhR&FG<3DGT>5c!A(Xlpjeik7v9$%c2tbZD3T_}rFC)!;B0zhO z_X5rSewX8~7T?5Z;5#4SO>aHAUI%2^KLTa~T6i4z8fV{00_D`OMf!3}n-ppTpRHm~ zXl;49&flReal)Ed^0cy$RX^dSTwd;hyhqY!YoaTxBIh1LeT1C0Own_@-O0_Dvthv6 z(q?VhJBgJgan9sUhv!1sUF#qSA0ZqRQ;tjruiQI2k*0GGXP-&JCpJdah3d!GXd|QU zGrBq^eAyzzYr6hL{6k|)YVf-~lPj(5PzjHE>Q5j7M-gyLtc)%d zrg}b8)-D?YOVf)h5T&5`qFv&ZrbI&%PY#w5C#XEYDVy&Osf8$KDEuUbxzYsDP(V_j z6{j1Us%qaF_C)p%3FJvEDlF&5*x>I0X9wLk_gu{5$@UiY>=4*n)YEIAeo;qOLM7q_ zqyf?7I(F-tRwi5|cHE>aj6!eL^ciBbhqqo!(NN-+yQ7I)nmM@Ka!=6tOiq?FbYKT^ z9}+oMvHCuWcJ7_Qk2h**TIyEFg6u|rV-5mFPdRp@T5_YvO!L2lkN0Tuv^U=6#~5J* z{m-l#Ym6`kSYOn53-A-d%IyWMyUJDn=YBfWx@OcyYOC=9&^3NMYBl~)C+69K`0-_Sh3QWG_|3SgIlkIHJtbyNLFi4+&9MSx5J4{r z^fk@t;*f{lhI6~pBSIcj{=&H*n@?L<#{}ZSM1+X|qikd%GsG$K!cfc7dfC&WjfbqJ zO;ig}2BC4eA8&;Uk#+(-{BBI$DQ)UCp<7A+9%)`_4jRH^r6)MGw{RVsYf7ZPK|7)+ ztY4iU8zQf?KYXnxT&P{y>%}Rq>{mQ(zLGI8lwfX`_KGi^HZOv?2by_ERSD5c)NB;9 z>V?6Um#}n*jcUm`cXsLfM-PX`9SzpM*~{oL7O%opL`f*It^H=eoO z_Jak}w6b=!vp?wVQs>I4R$>Lu5L_B1xb!Ws$FvMZft6X;0oF{zx=^HuGK)3iwLtFEcI&dfJFG^F9$(O@t+DJQTYEE1{o1Ag7sFC}_Bec;+VKK?s;X6mcMY zt#EoLKwkr&0Vl$ni6(2^@eYSkX&^m9{+fF5z4{PCyVd&MU^ok_@hVP>GGMFmFZ7Dk z5~~qINRRd1BHr_S!}<_^Z?wF%!O(}6|JPip6SkUNjE>3Oak8bE!!6%n6^YP3S zt7*0fvY3fL>LOA^TO?QfCg3=_+Icz9T$#>~XUbxeG3m#rWo5{J4K5zsSw3_Delx>eI2A*`AeS_JZ=Uo~xjh--qI^CW<$8GC< z9!*>Eo++_!oLEP8dQOJInS3OaF&30)D53beyK}HZU~R2Y@hjOJB%oN!5RHG!DOJ!C zEv;&VQT{1;h|*F&;5Xh=7W=n~Jq$swrBK<2l*|t~AEZapwGaq*Wnb3>(&?*CC~9A> zyXyV0AHXjQfMu)($XPUsbsGR*4%pm5e?nFtfK|sgWs{0+GNiGrQ}0fU!M3nX1xEt6 zxT=t{8!!)>S&E@bIAW`*LSHDMz5q#C9%?SAu$~Z~0M78nXL3DdXfpok37MA#8|mc% z@ji{&PO6usM|(bPDG>C22ocn-Ppt1=$1H|h-bh_7a~sbrw;C@p3!d;z-!-Iw_)V22 zZ;jPB8Olew+ii?j*cI8i1|d^!`YpYZ?W0PsQP~$Bq)Fl}w5IMO;e_w+Yx0p+q7&_? z@qWlwdTk~2kkCy-uIDr|9 zjK6y_XH1E$Kpt=3g6@9(u|@V$@>zU8beu&>QAG7Pc*~r`9s9>=&(} zmQIo5bPlGd)YVrm^>s>wD@Rz3mm$6lIZN*cQKxb2*r*Y&OyV$2lj&x6z?y{#zw9P} zL}r%A*V=iJFD=;2U_(Oc>;h-EV5`-59c-Xif3G(d_3Mw}l4`|&J6jQ(%4xi3eroMm z{9PFvnVj1l@5!^ilTUs;QxYqa$s^c=Uc6!!)z;&UzcH8#+Wao-3GVAEI*86`#s4CB zLF)$T9?`|ao8fn@#uvEpk_(W=Msj7HAZFR5zQ00nUIMtY-*LM$O%0}N&Ea2dy%;hh z$jCa`L>RJrgmN;`_qeXi)%Y5Nuvq!sBQU5-AaBF@RbqhwSL#E!HrXQzgJmBIQI9R9 zq3eS!sIxC&Zv_vh#l?_DF8qQS?vkGgQEZy}&PUlb7jNCX`G~z&?wQ9DMRtx~nz0bj7-fu$LXlt#m4t0vNNF(|3l-5WLZt%;wN)=XvHbej}a> z%c&*oyeacS>6BJUalHaP6ZUqS4*mnhp1!(FSFHGZxzd-Qzk8iGn0qAnScbx zx}|+92_wcgQuoRIfKy{26=<%Cc%P1xaU@}`V0zL%jZhKq%L3TcLlo8-U%JxtnAtM; zw|^P8JAhB-ocY;^z6I`G+4@`r;H>A#!3(#bmeshICon*-b$bXW3Sa7RvO>+i)Su;- zlD6#m+-cV|%YHvto&sj4@0-QznZ-rSqOL|pZ(EILYeb7RH*$05CGGC8xQc-ly88i$ zXvV%$?}AN0na&DAK1RRk*sZat@l2(a{BIs3ZEt$hOLff}A>k&>319_^TxRZ4OXOgc zoc2h>do(?rI=i{2__uGkwc6i^v@LDUbM^(SCyuCM8be~x>>Q83b%a*q?+>Qo@Nt>m zP#R%mZw`WtfS zBV<={PELL0Sy3z0Wy*1^iZMD}<^b`^{n4bTgLJ?|7%~rfkJgBV`Uby|S(P>Jk;HBrgNa z6{#j&!BaMz*9#b#ir*03k7eYOmEv>EDUYQVNx3+>reoDi-MrR`nbju4pf%2XjZ>#!vhBWy(k&mupq_`}FYCZY?Ao4l6Z(5dk zEQ6?Mp9+H6)|SItjlZtL_Q>t~G_-~ww-B&E6t@(S_VDI@DG^hI zP>3`B&73Csq(duFP<5q4Yq0E-yU(&wG%V5~5!B%8L%lMGgTfZ@4&hSR`B-Wwmp_=N zYKc>2ovhd+BL(eb^ufo@V&v}dJJ8?LOXM<BYGjyn< zfDmi1T=&yqDy%<^rG*woL=L!2zAR6jjQ}euyIft^f2P&+G@>F>|AEr?W|HBGSJ2x3 z44He4^N(=yQbLi#h#~}Nmc$aS-Q^dF+ASS2rfcL+G}!W4u!XVRvI%YwfQG^?{|q~6 z@ibWtpGV>}a^$=X6ei8eUCI(bQ6UA$_Vn7bYn z!TYkXHx*4Rs!v}+fr{7|x4`*QsVR^yuZydN+e&CqVix0IuJt5g&0}sIL0X2ZIi}@G z2bfdjB+Y?lqLg!}3vgze7HVEndI1+B9Rhc}#oV%~aZe1l%wH&AYEELB-x-$6*&H^X|qWmxD8 zBH2MuazEliMl?S;#}(|%iTB=Q2cu5SL)A`>I35f;XVf?^v1}ibCpfugy@a)Jp~nCE z%888C`feljpoNs@g zi6y{t>l8ir>~^1WI0!Z4bRi`vUD02I$(kv3{{1nwo$y8^Ky|1w4mD9w{q3gt+$Vk@42Q(|7)MJjjQ zby^yHEsB((vR)?PN?{F<1ucQEYp+Y>eNCU>MHW=k#WnUu4k?@a#6drIMK6;Xw;TYx zN7Z*0n>m*?uIId|$NnMXGCW|PEGW3p+5!jmM7y(3AS=sOci|Hue}CplSNEa1km|Bc zGfDxF^q?*=ZJ~5b4<+J#O2>^^}d0!w}tgUrTV(W z3|${peQuCjk$Fh3W>cLz$X@|97v@>8+W!gR6;@2d5u$a1SZLc3S!zwh+bkiYe|+wx z4F8K`N#0IiCwuw=9DLRMB%4K9Rg= zQCa_dy$hctLs>&z12F7%x~7*;sO*?XeAtW9H-x+&q_1#+SH;a2z*}@eIU5!sywUqX zAN;c7w3CozjoYY~M$PF{UC(5k48MCcb8L1!_t41B$X>;^ma)0)dmc})Y9jcc3ksOO z&teT#-dsA(YQilMOB3;Y6lWf&BZa(*-fgZ6CrYo2BqxN~?>#~>5d`g3-}tGpFsS?k zib3=W$9LSxbGHmT@dD>Nh*ya^$mGO(PN5Y_#Cy)P8k?o4Gkga3VJ_9jp$4l1ic4C zY$yx$mMKIGT`7c5sT8h>Ay3GjlqO7wo<3wi@m?fP@8}!^Pd`C;E@XO&X_c^D)2*go zP<3yVdn}h~3CX${g21lOnyMuMtwfgd?p7wm!+AL+`?GA^W@`@mb0u`{j$Bk|ui+!j z8^M`ESh=*0ow?0Z0_QmXCj!pH0=DHErZS))hXME}@yRQN1nk3pOvAFTZwH+`#NQni z8=jm+yzEb;iRRhE%>KkuVVgW)H9k%voV@W|c?%M#*jkBPYOkW$&^rG?`xbd&I!XZQ zm4iauwx)fsEBi?uGmJYqCefsRD_}Rk@bNZHB=^vH_7@#ATz1Q*+nISVbs|K*+*N2C+#mn7wut4WMySGT_crIx9+??xdu|ZK~wsDV!gH0Tfx1!-m`S)M#DaY z;wl#mBFf?}5$u?L%9394gh+U_e=b2)jj@-dG@OtaHfz}eVuUZ~8kf;PWaO1o7cy{LIVDgHbx&*!r+Hx5MBCKY8fhRKB{)<)?-uNm35}X#g9HIFlJ9G&69>ymJ$ybzox{* zcz1#NL*~(~Gd+w1{EQqn1TnnPsO$ZU!qgU@N;KyQ;>>s)8Q^e^^@3 zn2J5=SuWCWDFU(&nAd|>3GPZ9YbozyCLf$)`XHHzdQAag|72QD2V9M>fPr{D?9p>= z#BZ7*urGqsvYNJ%?{1+-7Z_y^tMNWE;Xz}gk|?=?K;IEn$w=GZyab+2PWTxPVbU{% zPg}3QJPhG{_^aky`zB;=^?BrMrZ#DsU88WT<}xPr)FEsVq~tTbna5Rm$eW66jCe)) zjROji>lfNc+>Y6ovbh`d?qBWC(uh0qR5|Fu>GBJf6yi5`_J6d{biu{esMUz`Q6zA< z^IlXhfk}Z5hx5f&(`TQ9j*QQ068i2!=kS$T=xlbOGcpSu+1Uj+^OAW#OHS~l=jd-6 zvfm1Pe&E8^{w8!}v9s4m;})wss8zb~FQ63Pc|Ze7-~*)Cix>ajAo?BcWIk{ zQopAVa=Fxf{PJn)XY$P9JvLGwXG8uHL~sZ6mIJ>9KQaK*-vT6>Az>WIA!OYf-Wf(j zZ#YlVA6e(IktkA4icQsrpSr5qxv{e;k8}b}iCaWCr#q!7LO)J4fJ2%KlXWvcB`0qd zZm79jU4=eiR%`|rX5P2BZAtJQ7ppGL)?id=!p<}4m1-Ox14D>~uG}3P;4bLU{bPnY!flo%3O;$?~oh?a+{YPO1@=Ux@O z&<#RX6~0^CW7lj{=Vh}rutqVLu`^p>?Fhay4#^L3TKt`{B6Z#MeKMgXHXU)EO8bP6 zRKiM25Y7{Ydr0;~G9{9|YriCue{X4_5buUvBEcFc*+aaH&RfMHY}-X?T>TrBi%vi2 z#gVwrHv1J|qyFd_U9 zCg*+@?YRcusY3*)2YK}YuOzP6 zOX+Je?WxDtv(e-8pgft9A_9(jjqG8UD_*rHNn)}me(40G^Q_i025p9U4W~u;EZ0!H zA8wzs=f*EXxpTpX+#GYJAS_@Q?cS0gy1U{k>KND=cAgJAud-Cm;kKQ{M5@d_%1SY+ zF7cl0?ecif3VTw#XSF?6&A+Y>9TspOh)S-+#dtD@*-Z~e?LIiHEA4x72*i^BuTo#o zIbfC@qAhYoLh=zafP^o8?1~My+2073J!>@{BrBd8X3r($#6|H`vHfrH)KL4>__4g$ zU1$?qP5(uKuyY{3zcBS1`F#8PgH!jC2pnz4iaQ~n?+>J8J%%xzT}yUuY*qZN-uRoJ z#`oungT3@}QA_?0DhUqzEL|HP=kx?MScgNn8N40ni zu^PF%_oQ(in1wWEedoe}xeme5gggBjji*iDH(br2frabh{+U+OYM0+JQ-#UOKcAHf z@~K(Y`k$|tv#y@ap>$(ZdLBhObrFs=y2uauixg61WV(zZf6+zY^>vY3brGvc0{PP0 z5fm#tp(_wqtLYsPPb13Zj`mq}W8tLHurH}+qSYshr5je$OBBiEDu|&UIu8*3C#0UCr0L9&Z1N@IQymJ`hQd7}dBWGTy zNEH5ivf6$ZLul9~??lyyyB5 zd;9FdFJ#Kjo@ETCdyQTAFtX-S7esx8dX08W{l-H2>j>Z-v5;QicHr^80%`{;mC$Yh z*Kk36pYIhed{OmTAQx(zH_#`e^D%>#U%QTi71qA#Mdzf zjvbMk4lUdr8tKD;0M!Th!LRF{Ys)-(@7{>8A85ZbISrLM$moRln&Q0JDNdv$+0gmP z&2OUezsf?nKk$lArjF z!e}Cz+k*jOE6;1+YN+C<-0D0kOiIjZkIQeI|EXW`r=f~{4xfuAyFs#rI5t#$U$P5K zwxD@>RYMherG0r#lJ_4CRmlN)cSzp6hN|xk$or1uO>d}z_wV~wT1cPWP=$&>Umo>% z(xV!x{v>%rO}lc$cYY}S-6j-?V5tc`iu6zc62axji6k^kQiq{G%&f)42{2Ln804~`~skudq37lMzSNgn&f8L`n#hn(FQgA+fExECrYM%7&22 zb$WwOB0KTaRZTU*1a6mf;i@4qyk)iJrr*=A{+BW}(ytoRuZ-95s?G~(T`aSM9#+{O z>3&WRHXe*kL|TSx=AdvTB{BH0j&wm2wjNlJFa)RP;M?g@nWv>cJ_Mze(s9N@f8Um& zkbNGGR0?$8OQrAj>1^M2q4~faDIZ85wH|WzMY&s33LZ8iUG`Qd&Ziu>S1gv}C4!HI zazim$;)-SGWf|UjmKR47Yf6F=pPT!n)7G#SI6(vnw~V~8M6Oij)JSJ$+PN5nL;C)* z4^&A`nBC7V#5!>~s_#8fH&LI(4Jv^fe-zAZwYO36L@EX<74{WU$M>m2m;>(B?eikF z?`aE&2nL|7^0B@Yw`;X{_%8ra{TRv(!M+ibCZBeSI)O7sRYmMiRJ@y&Dpii)fEZ0& zu!YBH;==a)7q9^k%rc8HFfdN_S~tYnwSZ#yZk$!CgBU3C@pjTFA21xq?PCh1s+K{c z6T@Goa^v5WZL=hPEO-6z_%Sa8KL4&ZY-G=H@*DY03|}u#qt$a)_A#G_Z!kNZ5OtyH zC9WwWGn4=6j~PLHDQxwl=l}Z1l%JHb9Q-?Dw<2FE&J>NfM~Fd~X$lu+iYkA^3T%x` zmGlzmAZ1Fj&+qW;giG+wRYG=Qq=IxsnBTVS;-@_3F54>lTZy2u5=rFWCS3qWA`LX^BsZ^BK^0y z!bO{cEw)3QK0$Jcv4_jjaWWENK4d37iE2VeSOd$NuO!|ln`=Xr-dV4V-^R{5&k2@H z5vGWZb#;*F%H`4sX2vGgnXd|l(!o>Nc z_CZ*|Wad-9HhOV=a}o_`H-||~!)tfZJuG|ZA%xt-Lrvz_=-iytvlKGtK;!l*nP0&h zG#i{_sQIWr@cQV^95IRAuhyYm<$AX2V;TDC_|V~-HhoLi4qz9#bhyIk9@KN+Jgr>BMy;WQdS1moVTB)EqR~*A&vRyPnRYErC1KOB*yW`-B+`*z2KuvM zzYm>cEOc|}F|7iX)g{}Ou8q5g7aCWDe! zQtGOwC zQe&Cm)?}U@W&S`lrp#d5zN2##GIslA+|Z7ahUE!6$$9|Q88g2F^iI~Iu- zs(m`UhD*u0d@_Vp!sV|lp+xvaRWm|Q-vlQN48r^K;C#aEO|2XDIN_a{4(x))q#Ikp zw_?O{75AE0TP6Ki=fQXP_9hEzMd1fnP}pBLo38fgfKb1|!LZvQe`w*c2SHF``!C1k=X zrFZ3V3}8XS4hT6jX2fA*fSx-3y*`8`MB;5Y_Y#4cEDDadLIeg1)C46~J;P9LjV%`t z0k;}xmOun30XtIV^bXmY3zR4|q<^Y{)cefCgtp(W-Z(}R$^7RKQlO+T7mDx}(=}J^ z5NuB7|6b=8J#!<-Y+k*kj$Fal>a*XwH2d>3EB?;%hAIG34|&2?GwPrv`+?Os0W4PI z7+}PCu=IcoDZaInACG;#_=oIZHsrk7BZ9W7jq=8hG+b13+3Zd`&~VXLX3y>f6gry; zZ!A?5&^O@tF=d>3BK84XhKj&TO=SUyFygnMKDvqK%lNti547P7`W|xrq$#+t>5B(0 zC1dCta(0GgMX^h;Ga=znYhgv)ox+c0uN99{b0oQ@Aey}Oqp&~bvF@5gPRPHy$NHY! zC8*!hg-9*j?3hHP_A=sUkNJLlZDE(ko}`@5zk-SscBvKe0xBZm=|H+m)b*b)nXP2b z=U#(7V?ST~XsGa=Kx~=%^s9``iUQSEN^*0)Q2xx%$?U=VJwVn& zNEX~3shyiAfcAp9W(EW{lJ4X?lHj_k;37>zoYWn&$>S6}PQYDm5 zd9-#-L3O-6FY5h7P43T*)J6)NbB8v)yFP?Jo@lbPUJcc64_DU?<_=2zodwLEpI1X2 zmn8Ex$!6~DPz@+?uoV?#o|Q_Q-rdlF2HYb#nRW{Rz*2cw?g596xMg-XW1o#$D5O0@Qpyh!a=e8@_ML~HYg)<8bJIPrDIj(l9)4HWBh zMoG1E49A?oZU*eBmyo?5rUzHoF2}e3`AQ}`(_vpowB@TSUa7jS*tS%K3f>g1TgX*k6f^^{5+8+koa zE#w^=DwLOf2!KPq0+qKFngC{1xBFrR-CltPx>$VU4C8z;l)``n-n6T6&uv%Xho(>r zzVgrFBqggWoWYu^N1G#w7v>H%VV+E^iH|5b`_xc3=W^}F}3V+bB2*4MIwn2MA&IO-M-xY!n2x7VAt&N5HS@w|yD=vToFMzL4~y$%54P_a)vY;i5JKpkfX0dRB7 zckh~~O1I5@U-?{{>SwE=%Ol%mvm2V}sSpHF@ zqX|7TqO~7^6i=we`BQsd4oiz(?}XuzIqoBz*SaxtIcPRi3O8VnYN*uQ!BAILJU(5b zwu=_K_G#f+KTJKyQ>Iyj7@(FMP1R53{U$BeP}A?zG+1;`A|=s80099f*hIuf)Q&z( zgJ6XnjC{K|dU1cI4qhgMfa&IV2#WZV5Bfi~zWaAZLC*So z|9Uw<-T!MwUfZpjrJ~w-KK7L^XGV@7v9br`#n-v~Wb#VzP=*B7J(uxxcj8MYDQ-1wGb? z{?&597&=~>5y?F2YJrBY#kir)&54olgCP>OYyCGA#A6~iNUR3VjBoD^H?D`Fv-p4dJ;H$)zI^J1gUqltLsv74zLJeRVg|il~Q_f*7T{t<x) z7A7Td3Z(9U!fLG()=7!Bw#XVqXF--kIgbWU#DNZ* z9M}=e97@l~mNQ>!g4kE|1^KYW)Qm)f7eJlwIa2v^VBB*weNN1 z*I+9i;PuhL_4d%CVNape#D$lX9;psUNstg$IO6S+>i(&o*LmG0y6I$*$Mf6t#m4$xRh!@PfoOn-fY*^IE z#bb-QL#9zEr0b_g`~87UQ`_dqaD8x66NI4;I3XWb0Im$Lx^}+Q7fKZ5YMHFLa}2_q zvIDYO536sV^tpenFK>Nbg1@G>)Pyr6I+3CS?1U$-d-_~bEvgH$;F&beZcBeI(3@TC z+&(7ao#P|t3UbiDfJwxW#5`ZL_KISBg0)>zJ7#3H7k}k%uk{5pts#H=3Z)h7g2@O> zX5OAzPN*=i@7ksOWT`1_Yu^CoFe3=fKDC_R5~c6m;{@uWOl6S3y20&7pgh5*9rh)` z_^~<(wMp3!G<30GJ8>d?oI)?5=#x5=lDdT6NGQ5Y3fY5|ZwSREsj~n@8o&;$Lt59x z)c?{vGf>H-p0oxA?po~M_=>tmOEftuM3RxML2bbtbY5aN3qB_9KDZ2eUmb^|L|WhU z3ZBvcGS?^Snwgo*qo+tOPLn8f?pXy}Oq7vsYl+Z^@ zsZG>Yzae*uHkODD+C6wm#M{gHa1*tKnlIkIlwW6O_u+AS>R<1yZ(Gw`a3RYn2bY`5 zbDr)H{JquqRjTQJ#VxeFnW`h+RFKTbRw|Hx^}2=Xra`vbNC@G?CSHUQ%{Pb5z-G^(&|2^37_g;XW zrlqOmM;&(YUhatU!_8KDj7&F3m~}kT;tMugHBF~m-w~2p?e^Ca_j^;QmmrGOlUk+f z=Tu$LyMybcs#V@P?~Z11Z;)5^8dcZDpZfH+{dG<6u8ExdMZCwissfj48NBAq*?a^q z63rtcW&6@y)&BkVn3kLwRk6YKJEk{}Ob-v_?rzTEx~^*3#OFQ$H(-VAwdV3>nsc8+b3tm*0J+sEQdvF<<=^