From e358cd2af6251b95c0a800f28056cdc7bc92daf9 Mon Sep 17 00:00:00 2001 From: Alexandre FILLATRE Date: Tue, 29 Mar 2022 14:19:35 +0200 Subject: [PATCH] [Refactoring] Code clarifications, Unit Tests, Responsibilities (#109) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [Refactoring] Code clarifications, Unit Tests, Responsibilities * More cleanup * Remove maven dependencies from core * Cleanup and use debloated poms * De-duplicate dependencies before generating debloated pom * More refactoring into separate classes. * Move logic in the core, so it's independent from a specific dependency manager * Fix Gradle plugin * Try updating JDK to 17 * Change gradle build in GitHub actions to JDK 11 Co-authored-by: César Soto Valero --- .github/workflows/build.yml | 14 +- depclean-core/pom.xml | 14 +- .../kth/depclean/core/AbstractDebloater.java | 73 ++ .../se/kth/depclean/core/DepCleanManager.java | 211 ++++++ .../core/analysis/ActualUsedClasses.java | 40 ++ .../analysis/AnalysisFailureException.java | 16 + .../depclean/core/analysis/ArtifactTypes.java | 24 - .../depclean/core/analysis/ClassAnalyzer.java | 6 +- .../core/analysis/DefaultClassAnalyzer.java | 2 - .../DefaultProjectDependencyAnalyzer.java | 285 +------- .../core/analysis/DependencyTypes.java | 27 + .../analysis/ProjectDependencyAnalysis.java | 170 ----- .../ProjectDependencyAnalysisBuilder.java | 151 ++++ .../analysis/ProjectDependencyAnalyzer.java | 35 - .../analysis/asm/ASMDependencyAnalyzer.java | 2 - .../core/analysis/graph/DependencyGraph.java | 22 + .../analysis/model/DebloatedDependency.java | 19 + .../model/DependencyAnalysisInfo.java | 22 + .../model/ProjectDependencyAnalysis.java | 228 ++++++ .../se/kth/depclean/core/model/ClassName.java | 37 + .../kth/depclean/core/model/Dependency.java | 120 ++++ .../depclean/core/model/ProjectContext.java | 116 +++ .../se/kth/depclean/core/model/Scope.java | 17 + .../wrapper/DependencyManagerWrapper.java | 106 +++ .../core/analysis/ActualUsedClassesTest.java | 29 + .../core/analysis/ProjectContextCreator.java | 145 ++++ .../ProjectDependencyAnalysisBuilderTest.java | 145 ++++ .../model/ProjectDependencyAnalysisTest.java | 40 ++ .../depclean/core/model/ClassNameTest.java | 18 + .../depclean/core/model/DependencyTest.java | 16 + .../core/model/ProjectContextTest.java | 36 + .../analysisResources/commons-io.jar | Bin 0 -> 208700 bytes .../analysisResources/commons-lang.jar | Bin 0 -> 261809 bytes .../analysisResources/commons-logging-api.jar | Bin 0 -> 44598 bytes .../analysisResources/junit-jupiter.jar | Bin 0 -> 209317 bytes depclean-gradle-plugin/build.gradle | 6 + depclean-gradle-plugin/gradlew | 0 ...efaultGradleProjectDependencyAnalyzer.java | 58 +- .../depclean/utils/json/writeJsonResult.java | 26 +- .../se/kth/depclean/DepCleanGradleFT.groovy | 4 +- depclean-maven-plugin/pom.xml | 3 +- .../java/se/kth/depclean/DepCleanMojo.java | 676 +----------------- .../depclean/graph/MavenDependencyGraph.java | 160 +++++ .../util/ChangeDependencyResultUtils.java | 60 -- .../se/kth/depclean/util/MavenDebloater.java | 158 ++++ .../se/kth/depclean/util/ResultsUtils.java | 58 -- .../kth/depclean/util/json/NodeAdapter.java | 82 +-- .../util/json/ParsedDependencies.java | 24 +- .../wrapper/MavenDependencyManager.java | 217 ++++++ .../java/se/kth/depclean/DepCleanMojoIT.java | 8 +- .../kth/depclean/util/MavenInvokerTest.java | 14 +- .../depclean-results.json | 504 ++++++------- .../DepCleanMojoResources/pom-debloated.xml | 13 +- .../tree_expected.txt | 118 +-- .../tree_produced.txt | 79 ++ pom.xml | 2 +- 56 files changed, 2710 insertions(+), 1746 deletions(-) create mode 100644 depclean-core/src/main/java/se/kth/depclean/core/AbstractDebloater.java create mode 100644 depclean-core/src/main/java/se/kth/depclean/core/DepCleanManager.java create mode 100644 depclean-core/src/main/java/se/kth/depclean/core/analysis/ActualUsedClasses.java create mode 100644 depclean-core/src/main/java/se/kth/depclean/core/analysis/AnalysisFailureException.java delete mode 100644 depclean-core/src/main/java/se/kth/depclean/core/analysis/ArtifactTypes.java create mode 100644 depclean-core/src/main/java/se/kth/depclean/core/analysis/DependencyTypes.java delete mode 100644 depclean-core/src/main/java/se/kth/depclean/core/analysis/ProjectDependencyAnalysis.java create mode 100644 depclean-core/src/main/java/se/kth/depclean/core/analysis/ProjectDependencyAnalysisBuilder.java delete mode 100644 depclean-core/src/main/java/se/kth/depclean/core/analysis/ProjectDependencyAnalyzer.java create mode 100644 depclean-core/src/main/java/se/kth/depclean/core/analysis/graph/DependencyGraph.java create mode 100644 depclean-core/src/main/java/se/kth/depclean/core/analysis/model/DebloatedDependency.java create mode 100644 depclean-core/src/main/java/se/kth/depclean/core/analysis/model/DependencyAnalysisInfo.java create mode 100644 depclean-core/src/main/java/se/kth/depclean/core/analysis/model/ProjectDependencyAnalysis.java create mode 100644 depclean-core/src/main/java/se/kth/depclean/core/model/ClassName.java create mode 100644 depclean-core/src/main/java/se/kth/depclean/core/model/Dependency.java create mode 100644 depclean-core/src/main/java/se/kth/depclean/core/model/ProjectContext.java create mode 100644 depclean-core/src/main/java/se/kth/depclean/core/model/Scope.java create mode 100644 depclean-core/src/main/java/se/kth/depclean/core/wrapper/DependencyManagerWrapper.java create mode 100644 depclean-core/src/test/java/se/kth/depclean/core/analysis/ActualUsedClassesTest.java create mode 100644 depclean-core/src/test/java/se/kth/depclean/core/analysis/ProjectContextCreator.java create mode 100644 depclean-core/src/test/java/se/kth/depclean/core/analysis/ProjectDependencyAnalysisBuilderTest.java create mode 100644 depclean-core/src/test/java/se/kth/depclean/core/analysis/model/ProjectDependencyAnalysisTest.java create mode 100644 depclean-core/src/test/java/se/kth/depclean/core/model/ClassNameTest.java create mode 100644 depclean-core/src/test/java/se/kth/depclean/core/model/DependencyTest.java create mode 100644 depclean-core/src/test/java/se/kth/depclean/core/model/ProjectContextTest.java create mode 100644 depclean-core/src/test/resources/analysisResources/commons-io.jar create mode 100644 depclean-core/src/test/resources/analysisResources/commons-lang.jar create mode 100644 depclean-core/src/test/resources/analysisResources/commons-logging-api.jar create mode 100644 depclean-core/src/test/resources/analysisResources/junit-jupiter.jar mode change 100644 => 100755 depclean-gradle-plugin/gradlew create mode 100644 depclean-maven-plugin/src/main/java/se/kth/depclean/graph/MavenDependencyGraph.java delete mode 100644 depclean-maven-plugin/src/main/java/se/kth/depclean/util/ChangeDependencyResultUtils.java create mode 100644 depclean-maven-plugin/src/main/java/se/kth/depclean/util/MavenDebloater.java delete mode 100644 depclean-maven-plugin/src/main/java/se/kth/depclean/util/ResultsUtils.java create mode 100644 depclean-maven-plugin/src/main/java/se/kth/depclean/wrapper/MavenDependencyManager.java create mode 100644 depclean-maven-plugin/src/test/resources/MavenInvokerResources/basic_spring_maven_project/tree_produced.txt diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b43c59cb..39fd34f6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,7 @@ jobs: max-parallel: 1 matrix: os: [ ubuntu-latest, windows-latest ] - java: [ 11 ] + java: [ 17 ] runs-on: ${{ matrix.os }} name: Maven Build with Java ${{ matrix.java }} on ${{ matrix.os }} steps: @@ -49,13 +49,13 @@ jobs: - name: "Integration Tests" run: mvn failsafe:integration-test --errors --fail-at-end - # The following is only executed on Ubuntu on Java 11 + # The following is only executed on Ubuntu on Java 17 - name: "JaCoCo Coverage Report" - if: matrix.os == 'ubuntu-latest' && matrix.java == 11 && github.repository == 'castor-software/depclean' + if: matrix.os == 'ubuntu-latest' && matrix.java == 17 && github.repository == 'castor-software/depclean' run: mvn jacoco:report - name: "Codecov" - if: matrix.os == 'ubuntu-latest' && matrix.java == 11 && github.repository == 'castor-software/depclean' + if: matrix.os == 'ubuntu-latest' && matrix.java == 17 && github.repository == 'castor-software/depclean' uses: codecov/codecov-action@v1 with: token: ${{ secrets.CODECOV_TOKEN }} @@ -63,7 +63,7 @@ jobs: flags: unittests - name: "Cache SonarCloud" - if: matrix.os == 'ubuntu-latest' && matrix.java == 11 && github.repository == 'castor-software/depclean' + if: matrix.os == 'ubuntu-latest' && matrix.java == 17 && github.repository == 'castor-software/depclean' uses: actions/cache@v1 with: path: ~/.sonar/cache @@ -71,8 +71,8 @@ jobs: restore-keys: ${{ runner.os }}-sonar - name: "SonarCloud" - if: matrix.os == 'ubuntu-latest' && matrix.java == 11 && github.repository == 'castor-software/depclean' - run: mvn sonar:sonar -Dsonar.projectKey=castor-software_depclean -Dsonar.organization=castor-software -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_TOKEN }} -Dsonar.java.source=11 -Dsonar.java.target=11 + if: matrix.os == 'ubuntu-latest' && matrix.java == 17 && github.repository == 'castor-software/depclean' + run: mvn sonar:sonar -Dsonar.projectKey=castor-software_depclean -Dsonar.organization=castor-software -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_TOKEN }} -Dsonar.java.source=17 -Dsonar.java.target=17 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/depclean-core/pom.xml b/depclean-core/pom.xml index 31406d19..98e9559b 100644 --- a/depclean-core/pom.xml +++ b/depclean-core/pom.xml @@ -1,7 +1,7 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 @@ -113,6 +113,18 @@ 17.0.0 compile + + + com.google.guava + guava + 30.1-jre + + + + org.assertj + assertj-core + 3.22.0 + diff --git a/depclean-core/src/main/java/se/kth/depclean/core/AbstractDebloater.java b/depclean-core/src/main/java/se/kth/depclean/core/AbstractDebloater.java new file mode 100644 index 00000000..ea017a8d --- /dev/null +++ b/depclean-core/src/main/java/se/kth/depclean/core/AbstractDebloater.java @@ -0,0 +1,73 @@ +package se.kth.depclean.core; + +import java.io.IOException; +import java.util.List; +import java.util.stream.Collectors; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import se.kth.depclean.core.analysis.model.DebloatedDependency; +import se.kth.depclean.core.analysis.model.ProjectDependencyAnalysis; + +/** + * Analyses the analysis result and writes the debloated config file. + */ +@Slf4j +@AllArgsConstructor +public abstract class AbstractDebloater { + + protected final ProjectDependencyAnalysis analysis; + + /** + * Writes the debloated config file down. + */ + public void write() throws IOException { + log.info("Starting debloating file"); + logChanges(); + setDependencies(analysis.getDebloatedDependencies().stream() + .map(this::toMavenDependency) + .collect(Collectors.toList())); + + if (log.isDebugEnabled()) { + logDependencies(); + } + postProcessDependencies(); + writeFile(); + } + + protected abstract T toMavenDependency(DebloatedDependency debloatedDependency); + + protected abstract void setDependencies(List dependencies); + + protected abstract void writeFile() throws IOException; + + protected abstract void logDependencies(); + + /** + * In order to keep the version as variable (property) for dependencies that were declared as such, post-process + * dependencies to replace interpolated version with the initial one. + */ + protected abstract void postProcessDependencies(); + + private void logChanges() { + if (analysis.hasUsedTransitiveDependencies()) { + final int dependencyAmount = analysis.getUsedTransitiveDependencies().size(); + log.info("Adding {} used transitive {} as direct {}.", + dependencyAmount, getDependencyWording(dependencyAmount), getDependencyWording(dependencyAmount)); + } + + if (analysis.hasUnusedDirectDependencies()) { + final int dependencyAmount = analysis.getUnusedDirectDependencies().size(); + log.info("Removing {} unused direct {}.", dependencyAmount, getDependencyWording(dependencyAmount)); + } + + if (analysis.hasUnusedTransitiveDependencies()) { + final int dependencyAmount = analysis.getUnusedTransitiveDependencies().size(); + log.info( + "Excluding {} unused transitive {} one-by-one.", dependencyAmount, getDependencyWording(dependencyAmount)); + } + } + + private String getDependencyWording(int amount) { + return amount > 1 ? "dependencies" : "dependency"; + } +} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/DepCleanManager.java b/depclean-core/src/main/java/se/kth/depclean/core/DepCleanManager.java new file mode 100644 index 00000000..5d576dbd --- /dev/null +++ b/depclean-core/src/main/java/se/kth/depclean/core/DepCleanManager.java @@ -0,0 +1,211 @@ +package se.kth.depclean.core; + +import java.io.File; +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.Objects; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import lombok.AllArgsConstructor; +import lombok.SneakyThrows; +import org.apache.commons.io.FileUtils; +import org.apache.maven.plugin.logging.Log; +import org.jetbrains.annotations.Nullable; +import se.kth.depclean.core.analysis.AnalysisFailureException; +import se.kth.depclean.core.analysis.DefaultProjectDependencyAnalyzer; +import se.kth.depclean.core.analysis.ProjectDependencyAnalyzerException; +import se.kth.depclean.core.analysis.graph.DependencyGraph; +import se.kth.depclean.core.analysis.model.ProjectDependencyAnalysis; +import se.kth.depclean.core.model.ClassName; +import se.kth.depclean.core.model.Dependency; +import se.kth.depclean.core.model.ProjectContext; +import se.kth.depclean.core.model.Scope; +import se.kth.depclean.core.wrapper.DependencyManagerWrapper; + +/** + * Runs the depclean process, regardless of a specific dependency manager. + */ +@AllArgsConstructor +public class DepCleanManager { + + private static final String SEPARATOR = "-------------------------------------------------------"; + + private final DependencyManagerWrapper dependencyManager; + private final boolean skipDepClean; + private final boolean ignoreTests; + private final Set ignoreScopes; + private final Set ignoreDependencies; + private final boolean failIfUnusedDirect; + private final boolean failIfUnusedTransitive; + private final boolean failIfUnusedInherited; + private final boolean createPomDebloated; + private final boolean createResultJson; + private final boolean createClassUsageCsv; + + /** + * Execute the depClean manager. + */ + @SneakyThrows + public void execute() throws AnalysisFailureException { + final long startTime = System.currentTimeMillis(); + + if (skipDepClean) { + getLog().info("Skipping DepClean plugin execution"); + return; + } + printString(SEPARATOR); + getLog().info("Starting DepClean dependency analysis"); + + if (dependencyManager.isMaven() && dependencyManager.isPackagingPom()) { + getLog().info("Skipping because packaging type pom."); + return; + } + + dependencyManager.copyAndExtractDependencies(); + + final ProjectDependencyAnalysis analysis = getAnalysis(); + if (analysis == null) { + return; + } + analysis.print(); + + /* Fail the build if there are unused direct dependencies */ + if (failIfUnusedDirect && analysis.hasUnusedDirectDependencies()) { + throw new AnalysisFailureException( + "Build failed due to unused direct dependencies in the dependency tree of the project."); + } + + /* Fail the build if there are unused transitive dependencies */ + if (failIfUnusedTransitive && analysis.hasUnusedTransitiveDependencies()) { + throw new AnalysisFailureException( + "Build failed due to unused transitive dependencies in the dependency tree of the project."); + } + + /* Fail the build if there are unused inherited dependencies */ + if (failIfUnusedInherited && analysis.hasUnusedInheritedDependencies()) { + throw new AnalysisFailureException( + "Build failed due to unused inherited dependencies in the dependency tree of the project."); + } + + /* Writing the debloated version of the pom */ + if (createPomDebloated) { + dependencyManager.getDebloater(analysis).write(); + } + + /* Writing the JSON file with the debloat results */ + if (createResultJson) { + createResultJson(analysis); + } + + final long stopTime = System.currentTimeMillis(); + getLog().info("Analysis done in " + getTime(stopTime - startTime)); + } + + private void createResultJson(ProjectDependencyAnalysis analysis) { + printString("Creating depclean-results.json, please wait..."); + final File jsonFile = new File(dependencyManager.getBuildDirectory() + File.separator + "depclean-results.json"); + final File treeFile = new File(dependencyManager.getBuildDirectory() + File.separator + "tree.txt"); + final File classUsageFile = new File(dependencyManager.getBuildDirectory() + File.separator + "class-usage.csv"); + try { + dependencyManager.generateDependencyTree(treeFile); + } catch (IOException | InterruptedException e) { + getLog().error("Unable to generate dependency tree."); + // Restore interrupted state... + Thread.currentThread().interrupt(); + return; + } + if (createClassUsageCsv) { + printString("Creating class-usage.csv, please wait..."); + try { + FileUtils.write(classUsageFile, "OriginClass,TargetClass,Dependency\n", Charset.defaultCharset()); + } catch (IOException e) { + getLog().error("Error writing the CSV header."); + } + } + String treeAsJson = dependencyManager.getTreeAsJson(treeFile, + analysis, + classUsageFile, + createClassUsageCsv + ); + + try { + FileUtils.write(jsonFile, treeAsJson, Charset.defaultCharset()); + } catch (IOException e) { + getLog().error("Unable to generate JSON file."); + } + if (jsonFile.exists()) { + getLog().info("depclean-results.json file created in: " + jsonFile.getAbsolutePath()); + } + if (classUsageFile.exists()) { + getLog().info("class-usage.csv file created in: " + classUsageFile.getAbsolutePath()); + } + } + + @Nullable + private ProjectDependencyAnalysis getAnalysis() { + /* Analyze dependencies usage status */ + final ProjectContext projectContext = buildProjectContext(); + final ProjectDependencyAnalysis analysis; + final DefaultProjectDependencyAnalyzer dependencyAnalyzer = new DefaultProjectDependencyAnalyzer(projectContext); + try { + analysis = dependencyAnalyzer.analyze(); + } catch (ProjectDependencyAnalyzerException e) { + getLog().error("Unable to analyze dependencies."); + return null; + } + return analysis; + } + + private ProjectContext buildProjectContext() { + if (ignoreTests) { + ignoreScopes.add("test"); + } + + final DependencyGraph dependencyGraph = dependencyManager.dependencyGraph(); + return new ProjectContext( + dependencyGraph, + dependencyManager.getOutputDirectory(), + dependencyManager.getTestOutputDirectory(), + ignoreScopes.stream().map(Scope::new).collect(Collectors.toSet()), + toDependency(dependencyGraph.allDependencies(), ignoreDependencies), + dependencyManager.collectUsedClassesFromProcessors().stream().map(ClassName::new).collect(Collectors.toSet()) + ); + } + + /** + * Returns a set of {@code DependencyCoordinate}s that match given string representations. + * + * @param allDependencies all known dependencies + * @param ignoreDependencies string representation of dependencies to return + * @return a set of {@code Dependency} that match given string representations + */ + private Set toDependency(Set allDependencies, Set ignoreDependencies) { + return ignoreDependencies.stream() + .map(dependency -> findDependency(allDependencies, dependency)) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + } + + private Dependency findDependency(Set allDependencies, String dependency) { + return allDependencies.stream() + .filter(dep -> dep.toString().toLowerCase().contains(dependency.toLowerCase())) + .findFirst() + .orElse(null); + } + + private String getTime(long millis) { + long minutes = TimeUnit.MILLISECONDS.toMinutes(millis); + long seconds = (TimeUnit.MILLISECONDS.toSeconds(millis) % 60); + + return String.format("%smin %ss", minutes, seconds); + } + + private void printString(final String string) { + System.out.println(string); //NOSONAR avoid a warning of non-used logger + } + + private Log getLog() { + return dependencyManager.getLog(); + } +} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/analysis/ActualUsedClasses.java b/depclean-core/src/main/java/se/kth/depclean/core/analysis/ActualUsedClasses.java new file mode 100644 index 00000000..a12eee7c --- /dev/null +++ b/depclean-core/src/main/java/se/kth/depclean/core/analysis/ActualUsedClasses.java @@ -0,0 +1,40 @@ +package se.kth.depclean.core.analysis; + +import java.util.HashSet; +import java.util.Set; +import lombok.extern.slf4j.Slf4j; +import se.kth.depclean.core.model.ClassName; +import se.kth.depclean.core.model.ProjectContext; + +/** + * Contains the actual classes used in the project (i.e. in classes, processors, configurations, etc.) + */ +@Slf4j +public class ActualUsedClasses { + + final Set classes = new HashSet<>(); + private final ProjectContext context; + + public ActualUsedClasses(ProjectContext context) { + this.context = context; + } + + private void registerClass(ClassName className) { + + // Do not register class unknown to dependencies + if (context.hasNoDependencyOnClass(className)) { + return; + } + + log.trace("## Register class {}", className); + classes.add(className); + } + + public void registerClasses(Iterable classes) { + classes.forEach(this::registerClass); + } + + public Set getRegisteredClasses() { + return classes; + } +} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/analysis/AnalysisFailureException.java b/depclean-core/src/main/java/se/kth/depclean/core/analysis/AnalysisFailureException.java new file mode 100644 index 00000000..2075e146 --- /dev/null +++ b/depclean-core/src/main/java/se/kth/depclean/core/analysis/AnalysisFailureException.java @@ -0,0 +1,16 @@ +package se.kth.depclean.core.analysis; + +/** + * Indicates the analysis should fail. + */ +public class AnalysisFailureException extends Exception { + + /** + * Create the failure. + * + * @param message the message to explain with the analysis failed + */ + public AnalysisFailureException(String message) { + super(message); + } +} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/analysis/ArtifactTypes.java b/depclean-core/src/main/java/se/kth/depclean/core/analysis/ArtifactTypes.java deleted file mode 100644 index dbc24312..00000000 --- a/depclean-core/src/main/java/se/kth/depclean/core/analysis/ArtifactTypes.java +++ /dev/null @@ -1,24 +0,0 @@ -package se.kth.depclean.core.analysis; - -import java.util.Set; -import lombok.AllArgsConstructor; -import lombok.Data; - -/** - * POJO containing the types in an artifact. - */ -@Data -@AllArgsConstructor -public class ArtifactTypes { - - /** - * A HashSet to store the types. - */ - private Set allTypes; - - /** - * A HashSet to store the used types. - */ - private Set usedTypes; - -} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/analysis/ClassAnalyzer.java b/depclean-core/src/main/java/se/kth/depclean/core/analysis/ClassAnalyzer.java index 9e770a52..a5b30cf5 100644 --- a/depclean-core/src/main/java/se/kth/depclean/core/analysis/ClassAnalyzer.java +++ b/depclean-core/src/main/java/se/kth/depclean/core/analysis/ClassAnalyzer.java @@ -24,7 +24,7 @@ import java.util.Set; /** - * Gets the set of classes contained in an artifact given either + * Gets the set of classes contained in a dependency given either * as a jar file or an exploded directory. */ public interface ClassAnalyzer { @@ -39,9 +39,9 @@ public interface ClassAnalyzer { // public methods --------------------------------------------------------- /** - * Analyze the classes of a given artifact. + * Analyze the classes of a given dependency. * - * @param url The artifact. + * @param url The dependency. * @return A set of classes. * @throws IOException In case of IO issues. */ diff --git a/depclean-core/src/main/java/se/kth/depclean/core/analysis/DefaultClassAnalyzer.java b/depclean-core/src/main/java/se/kth/depclean/core/analysis/DefaultClassAnalyzer.java index 1ecfcee6..0e5b9320 100644 --- a/depclean-core/src/main/java/se/kth/depclean/core/analysis/DefaultClassAnalyzer.java +++ b/depclean-core/src/main/java/se/kth/depclean/core/analysis/DefaultClassAnalyzer.java @@ -23,12 +23,10 @@ import java.net.URL; import java.util.Set; import java.util.zip.ZipException; -import org.codehaus.plexus.component.annotations.Component; /** * The default class analyzer. */ -@Component(role = ClassAnalyzer.class) public class DefaultClassAnalyzer implements ClassAnalyzer { /** diff --git a/depclean-core/src/main/java/se/kth/depclean/core/analysis/DefaultProjectDependencyAnalyzer.java b/depclean-core/src/main/java/se/kth/depclean/core/analysis/DefaultProjectDependencyAnalyzer.java index 21104c92..cf3e5fb7 100644 --- a/depclean-core/src/main/java/se/kth/depclean/core/analysis/DefaultProjectDependencyAnalyzer.java +++ b/depclean-core/src/main/java/se/kth/depclean/core/analysis/DefaultProjectDependencyAnalyzer.java @@ -17,301 +17,90 @@ package se.kth.depclean.core.analysis; -import java.io.File; import java.io.IOException; -import java.net.URL; -import java.util.Arrays; -import java.util.Enumeration; -import java.util.HashMap; +import java.nio.file.Path; import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.Map; -import java.util.Optional; import java.util.Set; -import java.util.jar.JarEntry; -import java.util.jar.JarFile; +import java.util.stream.Collectors; import lombok.extern.slf4j.Slf4j; -import org.apache.maven.artifact.Artifact; -import org.apache.maven.project.MavenProject; -import org.codehaus.plexus.component.annotations.Component; -import org.codehaus.plexus.component.annotations.Requirement; -import org.codehaus.plexus.util.xml.Xpp3Dom; import se.kth.depclean.core.analysis.asm.ASMDependencyAnalyzer; import se.kth.depclean.core.analysis.graph.DefaultCallGraph; +import se.kth.depclean.core.analysis.model.ProjectDependencyAnalysis; +import se.kth.depclean.core.model.ClassName; +import se.kth.depclean.core.model.ProjectContext; /** * This is principal class that perform the dependency analysis in a Maven project. */ @Slf4j -@Component(role = ProjectDependencyAnalyzer.class) -public class DefaultProjectDependencyAnalyzer implements ProjectDependencyAnalyzer { +public class DefaultProjectDependencyAnalyzer { - @Requirement - private final ClassAnalyzer classAnalyzer = new DefaultClassAnalyzer(); - - @Requirement private final DependencyAnalyzer dependencyAnalyzer = new ASMDependencyAnalyzer(); - - /** - * If true, the project's classes in target/test-classes are not going to be analyzed. - */ - private final boolean isIgnoredTest; - - /** - * A map [artifact] -> [allTypes]. - */ - private Map> artifactClassesMap; - - /** - * A map [artifact] -> [usedTypes]. - */ - private final Map> artifactUsedClassesMap = new HashMap<>(); + private final ProjectContext projectContext; /** * Ctor. */ - public DefaultProjectDependencyAnalyzer(boolean isIgnoredTest) { - this.isIgnoredTest = isIgnoredTest; + public DefaultProjectDependencyAnalyzer(ProjectContext projectContext) { + this.projectContext = projectContext; } /** * Analyze the dependencies in a project. * - * @param project The Maven project to be analyzed. - * @return An object with the usedDeclaredArtifacts, usedUndeclaredArtifacts, and unusedDeclaredArtifacts. + * @return An object representing the analysis result. * @throws ProjectDependencyAnalyzerException if the analysis fails. - * @see ProjectDependencyAnalyzer#analyze(org.apache.invoke.project.MavenProject) */ - @Override - public ProjectDependencyAnalysis analyze(MavenProject project) throws ProjectDependencyAnalyzerException { + public ProjectDependencyAnalysis analyze() throws ProjectDependencyAnalyzerException { try { // a map of [dependency] -> [classes] - artifactClassesMap = buildArtifactClassMap(project); - - // direct dependencies of the project - Set declaredArtifacts = project.getDependencyArtifacts(); - - // transitive dependencies of the project - Set transitiveArtifacts = removeAll(project.getArtifacts(), declaredArtifacts); + final ActualUsedClasses actualUsedClasses = new ActualUsedClasses(projectContext); /* ******************** bytecode analysis ********************* */ // execute the analysis (note that the order of these operations matters!) - buildProjectDependencyClasses(project); - Set projectClasses = new HashSet<>(DefaultCallGraph.getProjectVertices()); - buildDependenciesDependencyClasses(project); + actualUsedClasses.registerClasses(getProjectDependencyClasses(projectContext.getOutputFolder())); + if (!projectContext.ignoreTests()) { + log.trace("Parsing test folder"); + actualUsedClasses.registerClasses(getProjectTestDependencyClasses(projectContext.getTestOutputFolder())); + } + actualUsedClasses.registerClasses(projectContext.getExtraClasses()); /* ******************** usage analysis ********************* */ // search for the dependencies used by the project - collectUsedArtifacts( - artifactClassesMap, - DefaultCallGraph.referencedClassMembers(projectClasses) - ); - Set usedArtifacts = collectUsedArtifactsFromProcessors(project, artifactClassesMap); + Set projectClasses = new HashSet<>(DefaultCallGraph.getProjectVertices()); + log.trace("# DefaultCallGraph.referencedClassMembers()"); + actualUsedClasses.registerClasses(getReferencedClassMembers(projectClasses)); /* ******************** results as statically used at the bytecode *********************** */ - - // for the used dependencies, get the ones that are declared - Set usedDeclaredArtifacts = new LinkedHashSet<>(declaredArtifacts); - usedDeclaredArtifacts.retainAll(usedArtifacts); - - // for the used dependencies, remove the ones that are declared - Set usedUndeclaredArtifacts = new LinkedHashSet<>(usedArtifacts); - usedUndeclaredArtifacts = removeAll(usedUndeclaredArtifacts, declaredArtifacts); - - // for the declared dependencies, get the ones that are not used - Set unusedDeclaredArtifacts = new LinkedHashSet<>(declaredArtifacts); - unusedDeclaredArtifacts = removeAll(unusedDeclaredArtifacts, usedArtifacts); - - return new ProjectDependencyAnalysis(usedDeclaredArtifacts, usedUndeclaredArtifacts, unusedDeclaredArtifacts); + return new ProjectDependencyAnalysisBuilder(projectContext, actualUsedClasses).analyse(); } catch (IOException exception) { throw new ProjectDependencyAnalyzerException("Cannot analyze dependencies", exception); } - - } - - /** - * Maven processors are defined like this. - *
{@code
-   *       
-   *         org.bsc.maven
-   *         maven-processor-plugin
-   *         
-   *           
-   *             process
-   *             [...]
-   *             
-   *               
-   *                 XXXProcessor
-   *               
-   *             
-   *           
-   *         
-   *       
-   * }
- * - * @param project the maven project - * @param artifactClassesMap previously built artifacts map - * @return all used artifacts so far - */ - private Set collectUsedArtifactsFromProcessors(MavenProject project, - Map> artifactClassesMap) { - final Xpp3Dom[] processors = Optional.ofNullable(project.getPlugin("org.bsc.maven:maven-processor-plugin")) - .map(plugin -> plugin.getExecutionsAsMap().get("process")) - .map(exec -> (Xpp3Dom) exec.getConfiguration()) - .map(config -> config.getChild("processors")) - .map(Xpp3Dom::getChildren) - .orElse(new Xpp3Dom[0]); - Arrays.stream(processors) - .forEach(processor -> findArtifactForClassName(artifactClassesMap, processor.getValue()) - .ifPresent(artifact -> artifactUsedClassesMap.putIfAbsent(artifact, new HashSet<>())) - ); - - return artifactUsedClassesMap.keySet(); - } - - /** - * Returns a map with the artifacts (dependencies) in a Maven project and their corresponding classes. - * - * @param project A Maven project. - * @return A map of artifact -> classes. - * @throws IOException If the class cannot be analyzed. - */ - public Map> buildArtifactClassMap(MavenProject project) throws IOException { - Map> artifactClassMap = new LinkedHashMap<>(); - Set dependencyArtifacts = project.getArtifacts(); - for (Artifact artifact : dependencyArtifacts) { - File file = artifact.getFile(); - if (file != null && file.getName().endsWith(".jar")) { - // optimized solution for the jar case - try (JarFile jarFile = new JarFile(file)) { - Enumeration jarEntries = jarFile.entries(); - Set classes = new HashSet<>(); - while (jarEntries.hasMoreElements()) { - String entry = jarEntries.nextElement().getName(); - if (entry.endsWith(".class")) { - String className = entry.replace('/', '.'); - className = className.substring(0, className.length() - ".class".length()); - classes.add(className); - } - } - artifactClassMap.put(artifact, classes); - } - } else if (file != null && file.isDirectory()) { - URL url = file.toURI().toURL(); - Set classes = classAnalyzer.analyze(url); - artifactClassMap.put(artifact, classes); - } - } - return artifactClassMap; } - private void buildProjectDependencyClasses(MavenProject project) throws IOException { + private Iterable getProjectDependencyClasses(Path outputFolder) throws IOException { // Analyze src classes in the project - String outputDirectory = project.getBuild().getOutputDirectory(); - collectDependencyClasses(outputDirectory); - // Analyze test classes in the project - if (!isIgnoredTest) { - String testOutputDirectory = project.getBuild().getTestOutputDirectory(); - collectDependencyClasses(testOutputDirectory); - } - } - - private void buildDependenciesDependencyClasses(MavenProject project) throws IOException { - String dependenciesDirectory = project.getBuild().getDirectory() + File.separator + "dependency"; - collectDependencyClasses(dependenciesDirectory); - } - - /** - * Determine the artifacts that are used. - * - * @param artifactClassMap A map of [artifact] -> [classes in the artifact]. - * @param referencedClasses A set of classes that are detected as used. - * @return The set of used artifacts. - */ - private Set collectUsedArtifacts( - Map> artifactClassMap, - Set referencedClasses) { - Set usedArtifacts = new HashSet<>(); - for (String clazz : referencedClasses) { - Optional artifact = findArtifactForClassName(artifactClassMap, clazz); - if (artifact.isPresent()) { - if (!artifactUsedClassesMap.containsKey(artifact.get())) { - artifactUsedClassesMap.put(artifact.get(), new HashSet<>()); - } - artifactUsedClassesMap.get(artifact.get()).add(clazz); - usedArtifacts.add(artifact.get()); - } - } - return usedArtifacts; + log.trace("# getProjectDependencyClasses()"); + return collectDependencyClasses(outputFolder); } - - private Optional findArtifactForClassName(Map> artifactClassMap, String className) { - for (Map.Entry> entry : artifactClassMap.entrySet()) { - if (entry.getValue().contains(className)) { - return Optional.of(entry.getKey()); - } - } - return Optional.empty(); - } - - /** - * This method defines a new way to remove the artifacts by using the conflict id. We don't care about the version - * here because there can be only 1 for a given artifact anyway. - * - * @param start initial set - * @param remove set to exclude - * @return set with remove excluded - */ - private Set removeAll(Set start, Set remove) { - Set results = new LinkedHashSet<>(start.size()); - for (Artifact artifact : start) { - boolean found = false; - for (Artifact artifact2 : remove) { - if (artifact.getDependencyConflictId().equals(artifact2.getDependencyConflictId())) { - found = true; - break; - } - } - if (!found) { - results.add(artifact); - } - } - return results; + private Iterable getProjectTestDependencyClasses(Path testOutputFolder) throws IOException { + // Analyze test classes in the project + log.trace("# getProjectTestDependencyClasses()"); + return collectDependencyClasses(testOutputFolder); } - private Set collectDependencyClasses(String path) throws IOException { - URL url = new File(path).toURI().toURL(); - return dependencyAnalyzer.analyze(url); + private Iterable collectDependencyClasses(Path path) throws IOException { + return dependencyAnalyzer.analyze(path.toUri().toURL()).stream() + .map(ClassName::new) + .collect(Collectors.toSet()); } - /** - * Computes a map of [artifact] -> [allTypes, usedTypes]. - * - * @return A map of [artifact] -> [allTypes, usedTypes] - */ - public Map getArtifactClassesMap() { - Map output = new HashMap<>(); - for (Map.Entry> entry : artifactClassesMap.entrySet()) { - Artifact key = entry.getKey(); - if (artifactUsedClassesMap.containsKey(key)) { - output.put(key.toString(), - new ArtifactTypes( - artifactClassesMap.get(key), // get all the types - artifactUsedClassesMap.get(key) // get used types - )); - } else { - output.put(key.toString(), - new ArtifactTypes( - artifactClassesMap.get(key), // get all the types - new HashSet<>() // get used types - )); - } - } - return output; + private Iterable getReferencedClassMembers(Set projectClasses) { + return DefaultCallGraph.referencedClassMembers(projectClasses).stream() + .map(ClassName::new) + .collect(Collectors.toSet()); } } - diff --git a/depclean-core/src/main/java/se/kth/depclean/core/analysis/DependencyTypes.java b/depclean-core/src/main/java/se/kth/depclean/core/analysis/DependencyTypes.java new file mode 100644 index 00000000..ac852082 --- /dev/null +++ b/depclean-core/src/main/java/se/kth/depclean/core/analysis/DependencyTypes.java @@ -0,0 +1,27 @@ +package se.kth.depclean.core.analysis; + +import java.util.Set; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import se.kth.depclean.core.model.ClassName; + +/** + * POJO containing the types in a dependency. + */ +@Getter +@EqualsAndHashCode +@AllArgsConstructor +public class DependencyTypes { + + /** + * An iterable to store the types. + */ + private Set allTypes; + + /** + * An iterable to store the used types. + */ + private Set usedTypes; + +} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/analysis/ProjectDependencyAnalysis.java b/depclean-core/src/main/java/se/kth/depclean/core/analysis/ProjectDependencyAnalysis.java deleted file mode 100644 index 4009ac13..00000000 --- a/depclean-core/src/main/java/se/kth/depclean/core/analysis/ProjectDependencyAnalysis.java +++ /dev/null @@ -1,170 +0,0 @@ -package se.kth.depclean.core.analysis; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF 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. - */ - -import java.util.Collections; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.Set; -import org.apache.maven.artifact.Artifact; - -/** - * Project dependencies analysis result. - */ -public class ProjectDependencyAnalysis { - - /** - * Store all the used declared artifacts (ie. used direct dependencies). - */ - private final Set usedDeclaredArtifacts; - - /** - * Store all the used undeclared artifacts (ie. used transitive dependencies). - */ - private final Set usedUndeclaredArtifacts; - - /** - * Store all the unused declared artifacts (ie. unused transitive dependencies). - */ - private final Set unusedDeclaredArtifacts; - - /** - * Ctor. - */ - public ProjectDependencyAnalysis( - Set usedDeclaredArtifacts, - Set usedUndeclaredArtifacts, - Set unusedDeclaredArtifacts) { - this.usedDeclaredArtifacts = safeCopy(usedDeclaredArtifacts); - this.usedUndeclaredArtifacts = safeCopy(usedUndeclaredArtifacts); - this.unusedDeclaredArtifacts = safeCopy(unusedDeclaredArtifacts); - } - - /** - * To prevent unnecessary and unexpected modification in the set. - * - * @param The required set. - * @return An unmodifiable set corresponding to the provided set. - */ - private Set safeCopy(Set set) { - return (set == null) ? Collections.emptySet() - : Collections.unmodifiableSet(new LinkedHashSet(set)); - } - - /** - * Filter out artifacts with scope other than compile from the set of unused declared artifacts. - * - * @return updated project dependency analysis - * @since 1.3 - */ - public ProjectDependencyAnalysis ignoreNonCompile() { - Set filteredUnusedDeclared = new HashSet<>(unusedDeclaredArtifacts); - filteredUnusedDeclared.removeIf(artifact -> !artifact.getScope().equals(Artifact.SCOPE_COMPILE)); - return new ProjectDependencyAnalysis(usedDeclaredArtifacts, usedUndeclaredArtifacts, filteredUnusedDeclared); - } - - /** - * Overrides the hash code value method of the object. - */ - @Override - public int hashCode() { - int hashCode = getUsedDeclaredArtifacts().hashCode(); - hashCode = (hashCode * 37) + getUsedUndeclaredArtifacts().hashCode(); - hashCode = (hashCode * 37) + getUnusedDeclaredArtifacts().hashCode(); - return hashCode; - } - - /** - * Used declared artifacts. - * - * @return {@link Artifact} - */ - public Set getUsedDeclaredArtifacts() { - return usedDeclaredArtifacts; - } - - // Object methods --------------------------------------------------------- - - /** - * Used but not declared artifacts. - * - * @return {@link Artifact} - */ - public Set getUsedUndeclaredArtifacts() { - return usedUndeclaredArtifacts; - } - - /** - * Unused but declared artifacts. - * - * @return {@link Artifact} - */ - public Set getUnusedDeclaredArtifacts() { - return unusedDeclaredArtifacts; - } - - /** - * Overrides the standard equals method of Object. - */ - @Override - public boolean equals(Object object) { - if (object instanceof ProjectDependencyAnalysis) { - ProjectDependencyAnalysis analysis = (ProjectDependencyAnalysis) object; - return getUsedDeclaredArtifacts().equals(analysis.getUsedDeclaredArtifacts()) - && getUsedUndeclaredArtifacts().equals(analysis.getUsedUndeclaredArtifacts()) - && getUnusedDeclaredArtifacts().equals(analysis.getUnusedDeclaredArtifacts()); - } - - return false; - } - - /** - * Overrides de toString standard method of class Object @see java.lang.Object#toString(). - */ - @Override - public String toString() { - StringBuilder buffer = new StringBuilder(); - - if (!getUsedDeclaredArtifacts().isEmpty()) { - buffer.append("usedDeclaredArtifacts=").append(getUsedDeclaredArtifacts()); - } - - if (!getUsedUndeclaredArtifacts().isEmpty()) { - if (buffer.length() > 0) { - buffer.append(","); - } - buffer.append("usedUndeclaredArtifacts=").append(getUsedUndeclaredArtifacts()); - } - - if (!getUnusedDeclaredArtifacts().isEmpty()) { - if (buffer.length() > 0) { - buffer.append(","); - } - buffer.append("unusedDeclaredArtifacts=").append(getUnusedDeclaredArtifacts()); - } - - buffer.insert(0, "["); - buffer.insert(0, getClass().getName()); - - buffer.append("]"); - - return buffer.toString(); - } -} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/analysis/ProjectDependencyAnalysisBuilder.java b/depclean-core/src/main/java/se/kth/depclean/core/analysis/ProjectDependencyAnalysisBuilder.java new file mode 100644 index 00000000..309d2789 --- /dev/null +++ b/depclean-core/src/main/java/se/kth/depclean/core/analysis/ProjectDependencyAnalysisBuilder.java @@ -0,0 +1,151 @@ +package se.kth.depclean.core.analysis; + +import static com.google.common.collect.Sets.newHashSet; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import lombok.extern.slf4j.Slf4j; +import se.kth.depclean.core.analysis.model.ProjectDependencyAnalysis; +import se.kth.depclean.core.model.ClassName; +import se.kth.depclean.core.model.Dependency; +import se.kth.depclean.core.model.ProjectContext; + +/** + * Builds the analysis given the declared dependencies and the one actually used. + */ +@Slf4j +public class ProjectDependencyAnalysisBuilder { + + private final ProjectContext context; + private final ActualUsedClasses actualUsedClasses; + private final Set usedDependencies; + + ProjectDependencyAnalysisBuilder(ProjectContext context, + ActualUsedClasses actualUsedClasses) { + this.context = context; + this.actualUsedClasses = actualUsedClasses; + usedDependencies = actualUsedClasses.getRegisteredClasses().stream() + .flatMap(clazz -> context.getDependenciesForClass(clazz).stream()) + .collect(Collectors.toSet()); + } + + /** + * Analyse the dependencies to find out what is used and what is not. + * + * @return the analysis + */ + public ProjectDependencyAnalysis analyse() { + final Set usedDirectDependencies = + getUsedDirectDependencies(); + final Set usedTransitiveDependencies = + getUsedTransitiveDependencies(); + final Set usedInheritedDependencies = + getUsedInheritedDependencies(); + final Set unusedDirectDependencies = + getUnusedDirectDependencies(usedDirectDependencies); + final Set unusedTransitiveDependencies = + getUnusedTransitiveDependencies(usedTransitiveDependencies); + final Set unusedInheritedDependencies = + getUnusedInheritedDependencies(usedInheritedDependencies); + final Map dependencyClassesMap = + buildDependencyClassesMap(); + + context.getIgnoredDependencies().forEach(dependencyToIgnore -> { + ignoreDependency(usedDirectDependencies, unusedDirectDependencies, dependencyToIgnore); + ignoreDependency(usedTransitiveDependencies, unusedTransitiveDependencies, dependencyToIgnore); + ignoreDependency(usedInheritedDependencies, unusedInheritedDependencies, dependencyToIgnore); + }); + + return new ProjectDependencyAnalysis( + usedDirectDependencies, + usedTransitiveDependencies, + usedInheritedDependencies, + unusedDirectDependencies, + unusedTransitiveDependencies, + unusedInheritedDependencies, + context.getIgnoredDependencies(), + dependencyClassesMap, + context.getDependencyGraph()); + } + + private Map buildDependencyClassesMap() { + final Map output = new HashMap<>(); + final Collection allDependencies = newHashSet(context.getAllDependencies()); + for (Dependency dependency : allDependencies) { + final Set allClasses = context.getClassesForDependency(dependency); + final Set usedClasses = newHashSet(allClasses); + usedClasses.retainAll(actualUsedClasses.getRegisteredClasses()); + output.put(dependency, new DependencyTypes(allClasses, usedClasses)); + } + return output; + } + + private Set getUsedDirectDependencies() { + return usedDependencies.stream() + .filter(a -> context.getDependencyGraph().directDependencies().contains(a)) + .peek(dependency -> log.trace("## Used Direct dependency {}", dependency)) + .collect(Collectors.toSet()); + } + + private Set getUsedTransitiveDependencies() { + return usedDependencies.stream() + .filter(a -> context.getDependencyGraph().transitiveDependencies().contains(a)) + .peek(dependency -> log.trace("## Used Transitive dependency {}", dependency)) + .collect(Collectors.toSet()); + } + + private Set getUsedInheritedDependencies() { + return usedDependencies.stream() + .filter(a -> context.getDependencyGraph().inheritedDependencies().contains(a)) + .peek(dependency -> log.trace("## Used Transitive dependency {}", dependency)) + .collect(Collectors.toSet()); + } + + private Set getUnusedDirectDependencies(Set usedDirectDependencies) { + return getUnusedDependencies(context.getDependencyGraph().directDependencies(), usedDirectDependencies); + } + + private Set getUnusedTransitiveDependencies( + Set usedTransitiveDependencies) { + return getUnusedDependencies(context.getDependencyGraph().transitiveDependencies(), usedTransitiveDependencies); + } + + private Set getUnusedInheritedDependencies( + Set usedInheritedDependencies) { + return getUnusedDependencies(context.getDependencyGraph().inheritedDependencies(), usedInheritedDependencies); + } + + private Set getUnusedDependencies( + Set baseDependencies, Set usedDependencies) { + final Set unusedInheritedDependencies = newHashSet(baseDependencies); + unusedInheritedDependencies.removeAll(usedDependencies); + return unusedInheritedDependencies; + } + + /** + * If the dependencyToIgnore is an unused dependency, then add it to the set of usedDependencyCoordinates and remove + * it from the set of unusedDependencyCoordinates. + * + * @param usedDependencies The set of used artifacts where the dependency will be added. + * @param unusedDependencies The set of unused artifacts where the dependency will be removed. + * @param dependencyToIgnore The dependency to ignore. + */ + private void ignoreDependency( + Set usedDependencies, + Set unusedDependencies, + Dependency dependencyToIgnore) { + + for (Iterator i = unusedDependencies.iterator(); i.hasNext(); ) { + Dependency unusedDependency = i.next(); + if (dependencyToIgnore.equals(unusedDependency)) { + usedDependencies.add(unusedDependency); + i.remove(); + break; + } + } + } +} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/analysis/ProjectDependencyAnalyzer.java b/depclean-core/src/main/java/se/kth/depclean/core/analysis/ProjectDependencyAnalyzer.java deleted file mode 100644 index 5e33d626..00000000 --- a/depclean-core/src/main/java/se/kth/depclean/core/analysis/ProjectDependencyAnalyzer.java +++ /dev/null @@ -1,35 +0,0 @@ -package se.kth.depclean.core.analysis; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF 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. - */ - -import org.apache.maven.project.MavenProject; - -/** - * Analyze a project's declared dependencies and effective classes. - */ -public interface ProjectDependencyAnalyzer { - // fields ----------------------------------------------------------------- - - String ROLE = ProjectDependencyAnalyzer.class.getName(); - - // public methods --------------------------------------------------------- - - ProjectDependencyAnalysis analyze(MavenProject project) throws ProjectDependencyAnalyzerException; -} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/analysis/asm/ASMDependencyAnalyzer.java b/depclean-core/src/main/java/se/kth/depclean/core/analysis/asm/ASMDependencyAnalyzer.java index e7c9e169..eb91807f 100644 --- a/depclean-core/src/main/java/se/kth/depclean/core/analysis/asm/ASMDependencyAnalyzer.java +++ b/depclean-core/src/main/java/se/kth/depclean/core/analysis/asm/ASMDependencyAnalyzer.java @@ -22,7 +22,6 @@ import java.io.IOException; import java.net.URL; import java.util.Set; -import org.codehaus.plexus.component.annotations.Component; import se.kth.depclean.core.analysis.ClassFileVisitorUtils; import se.kth.depclean.core.analysis.DependencyAnalyzer; import se.kth.depclean.core.analysis.graph.ClassMembersVisitorCounter; @@ -30,7 +29,6 @@ /** * Dependency analyzer. */ -@Component(role = DependencyAnalyzer.class) public class ASMDependencyAnalyzer implements DependencyAnalyzer { /** diff --git a/depclean-core/src/main/java/se/kth/depclean/core/analysis/graph/DependencyGraph.java b/depclean-core/src/main/java/se/kth/depclean/core/analysis/graph/DependencyGraph.java new file mode 100644 index 00000000..1378ca98 --- /dev/null +++ b/depclean-core/src/main/java/se/kth/depclean/core/analysis/graph/DependencyGraph.java @@ -0,0 +1,22 @@ +package se.kth.depclean.core.analysis.graph; + +import java.util.Set; +import se.kth.depclean.core.model.Dependency; + +/** + * Should build a graph of dependencies, so that it can be requested for any representation of this graph. + */ +public interface DependencyGraph { + + Dependency projectCoordinates(); + + Set directDependencies(); + + Set inheritedDependencies(); + + Set transitiveDependencies(); + + Set allDependencies(); + + Set getDependenciesForParent(Dependency parent); +} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/analysis/model/DebloatedDependency.java b/depclean-core/src/main/java/se/kth/depclean/core/analysis/model/DebloatedDependency.java new file mode 100644 index 00000000..adae6fc0 --- /dev/null +++ b/depclean-core/src/main/java/se/kth/depclean/core/analysis/model/DebloatedDependency.java @@ -0,0 +1,19 @@ +package se.kth.depclean.core.analysis.model; + +import java.util.Set; +import lombok.Getter; +import se.kth.depclean.core.model.Dependency; + +/** + * A debloated dependency. + */ +@Getter +public class DebloatedDependency extends Dependency { + + private final Set exclusions; + + public DebloatedDependency(Dependency dependency, Set exclusions) { + super(dependency); + this.exclusions = exclusions; + } +} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/analysis/model/DependencyAnalysisInfo.java b/depclean-core/src/main/java/se/kth/depclean/core/analysis/model/DependencyAnalysisInfo.java new file mode 100644 index 00000000..baace839 --- /dev/null +++ b/depclean-core/src/main/java/se/kth/depclean/core/analysis/model/DependencyAnalysisInfo.java @@ -0,0 +1,22 @@ +package se.kth.depclean.core.analysis.model; + +import java.util.TreeSet; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +/** + * The result of a dependency analysis. + */ +@Getter +@ToString +@EqualsAndHashCode +@AllArgsConstructor +public class DependencyAnalysisInfo { + private final String status; + private final String type; + private final Long size; + private final TreeSet allTypes; + private final TreeSet usedTypes; +} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/analysis/model/ProjectDependencyAnalysis.java b/depclean-core/src/main/java/se/kth/depclean/core/analysis/model/ProjectDependencyAnalysis.java new file mode 100644 index 00000000..bb1a8686 --- /dev/null +++ b/depclean-core/src/main/java/se/kth/depclean/core/analysis/model/ProjectDependencyAnalysis.java @@ -0,0 +1,228 @@ +package se.kth.depclean.core.analysis.model; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF 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. + */ + +import static com.google.common.collect.ImmutableSet.copyOf; +import static com.google.common.collect.ImmutableSet.toImmutableSet; +import static java.util.stream.Collectors.toCollection; + +import java.util.Comparator; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; +import java.util.stream.Collectors; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import se.kth.depclean.core.analysis.DependencyTypes; +import se.kth.depclean.core.analysis.graph.DependencyGraph; +import se.kth.depclean.core.model.ClassName; +import se.kth.depclean.core.model.Dependency; + +/** + * Project dependencies analysis result. + */ +@Getter +@EqualsAndHashCode +public class ProjectDependencyAnalysis { + private static final String SEPARATOR = "-------------------------------------------------------"; + + private final Set usedDirectDependencies; + private final Set usedTransitiveDependencies; + private final Set usedInheritedDependencies; + private final Set unusedDirectDependencies; + private final Set unusedTransitiveDependencies; + private final Set unusedInheritedDependencies; + private final Set ignoredDependencies; + private final Map dependencyClassesMap; + private final DependencyGraph dependencyGraph; + + /** + * The analysis result. + * + * @param usedDirectDependencies used direct dependencies + * @param usedTransitiveDependencies used transitive dependencies + * @param usedInheritedDependencies used inherited dependencies + * @param unusedDirectDependencies unused direct dependencies + * @param unusedTransitiveDependencies unused transitive dependencies + * @param unusedInheritedDependencies unused inherited dependencies + * @param ignoredDependencies ignored dependencies + * @param dependencyClassesMap the whole dependencies and their relates classes and used classes + */ + public ProjectDependencyAnalysis( + Set usedDirectDependencies, + Set usedTransitiveDependencies, + Set usedInheritedDependencies, + Set unusedDirectDependencies, + Set unusedTransitiveDependencies, + Set unusedInheritedDependencies, + Set ignoredDependencies, + Map dependencyClassesMap, + DependencyGraph dependencyGraph) { + this.usedDirectDependencies = copyOf(usedDirectDependencies); + this.usedTransitiveDependencies = copyOf(usedTransitiveDependencies); + this.usedInheritedDependencies = copyOf(usedInheritedDependencies); + this.unusedDirectDependencies = copyOf(unusedDirectDependencies); + this.unusedTransitiveDependencies = copyOf(unusedTransitiveDependencies); + this.unusedInheritedDependencies = copyOf(unusedInheritedDependencies); + this.ignoredDependencies = copyOf(ignoredDependencies); + this.dependencyClassesMap = dependencyClassesMap; + this.dependencyGraph = dependencyGraph; + } + + public boolean hasUsedTransitiveDependencies() { + return !usedTransitiveDependencies.isEmpty(); + } + + public boolean hasUnusedDirectDependencies() { + return !unusedDirectDependencies.isEmpty(); + } + + public boolean hasUnusedTransitiveDependencies() { + return !unusedTransitiveDependencies.isEmpty(); + } + + public boolean hasUnusedInheritedDependencies() { + return !unusedInheritedDependencies.isEmpty(); + } + + /** + * Displays the analysis result. + */ + public void print() { + printString(SEPARATOR); + printString(" D E P C L E A N A N A L Y S I S R E S U L T S"); + printString(SEPARATOR); + printInfoOfDependencies("Used direct dependencies", getUsedDirectDependencies()); + printInfoOfDependencies("Used inherited dependencies", getUsedInheritedDependencies()); + printInfoOfDependencies("Used transitive dependencies", getUsedTransitiveDependencies()); + printInfoOfDependencies("Potentially unused direct dependencies", getUnusedDirectDependencies()); + printInfoOfDependencies("Potentially unused inherited dependencies", getUnusedInheritedDependencies()); + printInfoOfDependencies("Potentially unused transitive dependencies", getUnusedTransitiveDependencies()); + + if (!ignoredDependencies.isEmpty()) { + printString(SEPARATOR); + printString( + "Dependencies ignored in the analysis by the user" + + " [" + ignoredDependencies.size() + "]" + ":" + " "); + ignoredDependencies.forEach(s -> printString("\t" + s)); + } + } + + /** + * Calculates information about the dependency once analysed. + * + * @param coordinate the dependency coordinate (groupId:dependencyId:version) + * @return the information about the dependency + */ + public DependencyAnalysisInfo getDependencyInfo(String coordinate) { + final Dependency dependency = findByCoordinates(coordinate); + return new DependencyAnalysisInfo( + getStatus(dependency), + getType(dependency), + dependency.getSize(), + toValue(dependencyClassesMap.get(dependency).getAllTypes()), + toValue(dependencyClassesMap.get(dependency).getUsedTypes()) + ); + } + + /** + * The processed dependencies. + * + * @return the debloated dependencies + */ + public Set getDebloatedDependencies() { + final Set dependencies = new HashSet<>(getUsedDirectDependencies()); + dependencies.addAll(getUsedTransitiveDependencies()); + return dependencies.stream() + .map(this::toDebloatedDependency) + .collect(toImmutableSet()); + } + + private Dependency findByCoordinates(String coordinate) { + return dependencyClassesMap.keySet().stream() + .filter(dc -> dc.toString().contains(coordinate)) + .findFirst() + .orElseThrow(() -> new RuntimeException("Unable to find " + coordinate + " in dependencies")); + } + + private TreeSet toValue(Set types) { + return types.stream() + .map(ClassName::getValue) + .collect(toCollection(TreeSet::new)); + } + + private String getStatus(Dependency coordinates) { + return (usedDirectDependencies.contains(coordinates) || usedInheritedDependencies + .contains(coordinates) || usedTransitiveDependencies.contains(coordinates)) + ? "used" : + (unusedDirectDependencies.contains(coordinates) || unusedInheritedDependencies + .contains(coordinates) || unusedTransitiveDependencies.contains(coordinates)) + ? "bloated" : "unknown"; + } + + private String getType(Dependency coordinates) { + return (usedDirectDependencies.contains(coordinates) || unusedDirectDependencies + .contains(coordinates)) ? "direct" : + (usedInheritedDependencies.contains(coordinates) || unusedInheritedDependencies + .contains(coordinates)) ? "inherited" : + (usedTransitiveDependencies.contains(coordinates) || unusedTransitiveDependencies + .contains(coordinates)) ? "transitive" : "unknown"; + } + + private void printString(final String string) { + System.out.println(string); //NOSONAR avoid a warning of non-used logger + } + + /** + * Util function to print the information of the analyzed artifacts. + * + * @param info The usage status (used or unused) and type (direct, transitive, inherited) of artifacts. + * @param dependencies The GAV of the artifact. + */ + private void printInfoOfDependencies(final String info, final Set dependencies) { + printString(info.toUpperCase() + " [" + dependencies.size() + "]" + ": "); + printDependencies(dependencies); + } + + /** + * Print the status of the dependencies to the standard output. The format is: "[coordinates][scope] [(size)]" + * + * @param dependencies The set dependencies to print. + */ + private void printDependencies(final Set dependencies) { + dependencies + .stream() + .sorted(Comparator.comparing(Dependency::getSize)) + .collect(Collectors.toCollection(LinkedList::new)) + .descendingIterator() + .forEachRemaining(s -> printString("\t" + s.printWithSize())); + } + + private DebloatedDependency toDebloatedDependency(Dependency dependency) { + final Set dependenciesForParent = dependencyGraph.getDependenciesForParent(dependency); + final Set dependenciesToExclude = dependenciesForParent.stream() + .filter(dep -> getUnusedTransitiveDependencies().contains(dep)) + .collect(Collectors.toSet()); + + return new DebloatedDependency(dependency, copyOf(dependenciesToExclude)); + } +} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/model/ClassName.java b/depclean-core/src/main/java/se/kth/depclean/core/model/ClassName.java new file mode 100644 index 00000000..7f57301f --- /dev/null +++ b/depclean-core/src/main/java/se/kth/depclean/core/model/ClassName.java @@ -0,0 +1,37 @@ +package se.kth.depclean.core.model; + +import lombok.EqualsAndHashCode; +import lombok.Getter; +import org.jetbrains.annotations.NotNull; + +/** + * Represents a class to be analysed. + */ +@Getter +@EqualsAndHashCode +public class ClassName implements Comparable { + private final String value; + + /** + * Creates a class representation by its name, and rename it in a defined format. + * + * @param name the class name + */ + public ClassName(String name) { + String className = name.replace('/', '.'); + if (className.endsWith(".class")) { + className = className.substring(0, className.length() - ".class".length()); + } + this.value = className; + } + + @Override + public String toString() { + return value; + } + + @Override + public int compareTo(@NotNull ClassName cn) { + return value.compareTo(cn.value); + } +} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/model/Dependency.java b/depclean-core/src/main/java/se/kth/depclean/core/model/Dependency.java new file mode 100644 index 00000000..47adba9b --- /dev/null +++ b/depclean-core/src/main/java/se/kth/depclean/core/model/Dependency.java @@ -0,0 +1,120 @@ +package se.kth.depclean.core.model; + +import static com.google.common.collect.ImmutableSet.copyOf; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.Enumeration; +import java.util.HashSet; +import java.util.Set; +import java.util.jar.JarEntry; +import java.util.jar.JarFile; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.FileUtils; +import se.kth.depclean.core.analysis.ClassAnalyzer; +import se.kth.depclean.core.analysis.DefaultClassAnalyzer; + +/** + * Identifies a dependency to analyse. + */ +@Slf4j +@Getter +@EqualsAndHashCode(exclude = "file") +public class Dependency { + + private final String groupId; + private final String dependencyId; + private final String version; + private final String scope; + private final File file; + private final Long size; + + private final Iterable relatedClasses; + + /** + * Creates a dependency. + * + * @param groupId groupId + * @param dependencyId dependencyId + * @param version version + * @param scope scope + * @param file the related dependency file (a jar in most cases) + */ + public Dependency(String groupId, String dependencyId, String version, String scope, File file) { + this.groupId = groupId; + this.dependencyId = dependencyId; + this.version = version; + this.scope = scope; + this.file = file; + this.relatedClasses = findRelatedClasses(); + this.size = calculateSize(); + } + + /** + * Creates a dependency for the current project. + * + * @param groupId groupId + * @param dependencyId dependencyId + * @param version version + * @param file the related dependency file (a jar in most cases) + */ + public Dependency(String groupId, String dependencyId, String version, File file) { + this(groupId, dependencyId, version, null, file); + } + + @SuppressWarnings("CopyConstructorMissesField") + protected Dependency(Dependency dependency) { + this(dependency.getGroupId(), dependency.getDependencyId(), dependency.getVersion(), + dependency.getScope(), dependency.getFile()); + } + + @Override + public String toString() { + return String.format("%s:%s:%s:%s", groupId, dependencyId, version, scope); + } + + public String printWithSize() { + return String.format("%s (%s)", this, FileUtils.byteCountToDisplaySize(getSize())); + } + + private Iterable findRelatedClasses() { + final Set relatedClasses = new HashSet<>(); + if (file != null && file.getName().endsWith(".jar")) { + // optimized solution for the jar case + try (JarFile jarFile = new JarFile(file)) { + Enumeration jarEntries = jarFile.entries(); + while (jarEntries.hasMoreElements()) { + String entry = jarEntries.nextElement().getName(); + if (entry.endsWith(".class")) { + relatedClasses.add(new ClassName(entry)); + } + } + } catch (IOException e) { + log.error(e.getMessage(), e); + } + } else if (file != null && file.isDirectory()) { + try { + URL url = file.toURI().toURL(); + ClassAnalyzer classAnalyzer = new DefaultClassAnalyzer(); + Set classes = classAnalyzer.analyze(url); + classes.forEach(c -> relatedClasses.add(new ClassName(c))); + } catch (IOException e) { + log.error(e.getMessage(), e); + } + } + + return copyOf(relatedClasses); + } + + private Long calculateSize() { + try { + return FileUtils.sizeOf(file); + } catch (IllegalArgumentException | NullPointerException e) { + // File does not exist + return 0L; + } + } +} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/model/ProjectContext.java b/depclean-core/src/main/java/se/kth/depclean/core/model/ProjectContext.java new file mode 100644 index 00000000..2ba450a3 --- /dev/null +++ b/depclean-core/src/main/java/se/kth/depclean/core/model/ProjectContext.java @@ -0,0 +1,116 @@ +package se.kth.depclean.core.model; + +import static com.google.common.collect.ImmutableSet.copyOf; + +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.Iterables; +import com.google.common.collect.Multimap; +import com.google.common.collect.Multimaps; +import java.nio.file.Path; +import java.util.HashSet; +import java.util.Set; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; +import lombok.extern.slf4j.Slf4j; +import se.kth.depclean.core.analysis.graph.DependencyGraph; + +/** + * Contains all information about the project's context, without any reference + * to a given framework (Maven, Gradle, etc.). + */ +@Slf4j +@ToString +@EqualsAndHashCode +public final class ProjectContext { + + private final Multimap classesPerDependency = ArrayListMultimap.create(); + private final Multimap dependenciesPerClass = ArrayListMultimap.create(); + + @Getter + private final Path outputFolder; + @Getter + private final Path testOutputFolder; + + @Getter + private final Set ignoredScopes; + @Getter + private final Set ignoredDependencies; + + @Getter + private final Set extraClasses; + @Getter + private final DependencyGraph dependencyGraph; + + /** + * Creates a new project context. + * + * @param dependencyGraph the dependencyGraph + * @param outputFolder where the project's classes are compiled + * @param testOutputFolder where the project's test classes are compiled + * @param ignoredScopes the scopes to ignore + * @param ignoredDependencies the dependencies to ignore (i.e. considered as 'used') + * @param extraClasses some classes we want to tell the analyser to consider used + * (like maven processors for instance) + */ + public ProjectContext(DependencyGraph dependencyGraph, + Path outputFolder, Path testOutputFolder, + Set ignoredScopes, + Set ignoredDependencies, + Set extraClasses) { + this.dependencyGraph = dependencyGraph; + this.outputFolder = outputFolder; + this.testOutputFolder = testOutputFolder; + this.ignoredScopes = ignoredScopes; + this.ignoredDependencies = ignoredDependencies; + this.extraClasses = extraClasses; + + ignoredScopes.forEach(scope -> log.info("Ignoring scope {}", scope)); + + populateDependenciesAndClassesMap(dependencyGraph.directDependencies()); + populateDependenciesAndClassesMap(dependencyGraph.inheritedDependencies()); + populateDependenciesAndClassesMap(dependencyGraph.transitiveDependencies()); + + Multimaps.invertFrom(classesPerDependency, dependenciesPerClass); + } + + public Set getClassesForDependency(Dependency dependency) { + return copyOf(classesPerDependency.get(dependency)); + } + + public Set getDependenciesForClass(ClassName className) { + return copyOf(dependenciesPerClass.get(className)); + } + + public boolean hasNoDependencyOnClass(ClassName className) { + return Iterables.isEmpty(getDependenciesForClass(className)); + } + + /** + * Get all known dependencies. + * + * @return all known dependencies + */ + public Set getAllDependencies() { + final Set dependencies = new HashSet<>(dependencyGraph.allDependencies()); + dependencies.add(dependencyGraph.projectCoordinates()); + return copyOf(dependencies); + } + + public boolean ignoreTests() { + return ignoredScopes.contains(new Scope("test")); + } + + private void populateDependenciesAndClassesMap(Set dependencies) { + dependencies.stream() + .filter(this::filterScopesIfNeeded) + .forEach(dc -> classesPerDependency.putAll(dc, dc.getRelatedClasses())); + } + + private boolean filterScopesIfNeeded(Dependency dc) { + final String declaredScope = dc.getScope(); + return ignoredScopes.stream() + .map(Scope::getValue) + .noneMatch(declaredScope::equalsIgnoreCase); + } +} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/model/Scope.java b/depclean-core/src/main/java/se/kth/depclean/core/model/Scope.java new file mode 100644 index 00000000..16360acc --- /dev/null +++ b/depclean-core/src/main/java/se/kth/depclean/core/model/Scope.java @@ -0,0 +1,17 @@ +package se.kth.depclean.core.model; + +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.ToString; + +/** + * Represents a dependency scope. + */ +@Getter +@ToString +@EqualsAndHashCode +@AllArgsConstructor +public class Scope { + private final String value; +} diff --git a/depclean-core/src/main/java/se/kth/depclean/core/wrapper/DependencyManagerWrapper.java b/depclean-core/src/main/java/se/kth/depclean/core/wrapper/DependencyManagerWrapper.java new file mode 100644 index 00000000..2875d92d --- /dev/null +++ b/depclean-core/src/main/java/se/kth/depclean/core/wrapper/DependencyManagerWrapper.java @@ -0,0 +1,106 @@ +package se.kth.depclean.core.wrapper; + +import java.io.File; +import java.io.IOException; +import java.io.Serializable; +import java.nio.file.Path; +import java.util.Set; +import org.apache.maven.plugin.logging.Log; +import se.kth.depclean.core.AbstractDebloater; +import se.kth.depclean.core.analysis.graph.DependencyGraph; +import se.kth.depclean.core.analysis.model.ProjectDependencyAnalysis; + +/** + * Tells a dependency manager (i.e. Maven, gradle, ...) what to expose so the process can be managed from the core + * rather than from the dependency manager plugin + */ +public interface DependencyManagerWrapper { + + /** + * The dependency manager logger. + * + * @return The dependency manager logger + */ + Log getLog(); + + /** + * Whether this is a Maven project. + * + * @return {@code true} if the is a Maven project + */ + boolean isMaven(); + + /** + * Whether the project is of 'pom' kind. + * + * @return {@code true} if the project is a pom project + */ + boolean isPackagingPom(); + + /** + * Copies the dependencies to a folder, to use them later. + */ + void copyAndExtractDependencies(); + + /** + * A representation of the dependency manager's dependency graph. + * + * @return the graph + */ + DependencyGraph dependencyGraph(); + + /** + * Where the sources are compiled to. + * + * @return the path to the compiled sources folder + */ + Path getOutputDirectory(); + + /** + * Where the tests sources are compiled to. + * + * @return the path to the compiled test sources folder + */ + Path getTestOutputDirectory(); + + /** + * Find classes used in processors. + * + * @return the processors + */ + Set collectUsedClassesFromProcessors(); + + /** + * The instance that will debloat the config file. + * + * @param analysis the depclean analysis + * @return the debloater + */ + AbstractDebloater getDebloater(ProjectDependencyAnalysis analysis); + + /** + * The build directory path. + * + * @return the build directory path + */ + String getBuildDirectory(); + + /** + * Generates the dependency tree. + * + * @param treeFile the file to store the result to + */ + void generateDependencyTree(File treeFile) throws IOException, InterruptedException; + + /** + * Gets the JSON representation of the dependency tree. + * + * @param treeFile the file containing the tree + * @param analysis the depclean analysis result + * @param classUsageFile the class usage file + * @param createClassUsageCsv whether to write the class usage down + * @return the JSON tree + */ + String getTreeAsJson( + File treeFile, ProjectDependencyAnalysis analysis, File classUsageFile, boolean createClassUsageCsv); +} \ No newline at end of file diff --git a/depclean-core/src/test/java/se/kth/depclean/core/analysis/ActualUsedClassesTest.java b/depclean-core/src/test/java/se/kth/depclean/core/analysis/ActualUsedClassesTest.java new file mode 100644 index 00000000..5a647abb --- /dev/null +++ b/depclean-core/src/test/java/se/kth/depclean/core/analysis/ActualUsedClassesTest.java @@ -0,0 +1,29 @@ +package se.kth.depclean.core.analysis; + +import static org.assertj.core.api.Assertions.assertThat; +import static com.google.common.collect.ImmutableSet.of; + +import org.junit.jupiter.api.Test; +import se.kth.depclean.core.model.ProjectContext; + +class ActualUsedClassesTest implements ProjectContextCreator { + + @Test + void shouldRegisterClasses() { + final ProjectContext context = createContext(); + final ActualUsedClasses actualUsedClasses = new ActualUsedClasses(context); + actualUsedClasses.registerClasses(of(COMMONS_IO_CLASS)); + + assertThat(actualUsedClasses.getRegisteredClasses()).containsExactly(COMMONS_IO_CLASS); + } + + @Test + void shouldNotRegisterUnknownClasses() { + final ProjectContext context = createContext(); + final ActualUsedClasses actualUsedClasses = new ActualUsedClasses(context); + actualUsedClasses.registerClasses(of(UNKNOWN_CLASS)); + + assertThat(actualUsedClasses.getRegisteredClasses()).isEmpty(); + } + +} \ No newline at end of file diff --git a/depclean-core/src/test/java/se/kth/depclean/core/analysis/ProjectContextCreator.java b/depclean-core/src/test/java/se/kth/depclean/core/analysis/ProjectContextCreator.java new file mode 100644 index 00000000..036a4855 --- /dev/null +++ b/depclean-core/src/test/java/se/kth/depclean/core/analysis/ProjectContextCreator.java @@ -0,0 +1,145 @@ +package se.kth.depclean.core.analysis; + +import static com.google.common.collect.ImmutableSet.copyOf; +import static com.google.common.collect.ImmutableSet.of; +import static org.assertj.core.util.Sets.newHashSet; + +import java.io.File; +import java.nio.file.Paths; +import java.util.Collections; +import java.util.Set; +import lombok.AllArgsConstructor; +import se.kth.depclean.core.analysis.graph.DependencyGraph; +import se.kth.depclean.core.model.ClassName; +import se.kth.depclean.core.model.Dependency; +import se.kth.depclean.core.model.ProjectContext; +import se.kth.depclean.core.model.Scope; + +public interface ProjectContextCreator { + + ClassName COMMONS_IO_CLASS = new ClassName("org.apache.commons.io.IOUtils"); + ClassName COMMONS_LANG_CLASS = new ClassName("org.apache.commons.lang.ArrayUtils"); + ClassName COMMONS_LOGGING_CLASS = new ClassName("org.apache.commons.logging.Log"); + ClassName JUNIT_CLASS = new ClassName("org.junit.jupiter.engine.JupiterTestEngine"); + ClassName UNKNOWN_CLASS = new ClassName("com.unknown.Unknown"); + Dependency COMMONS_IO_DEPENDENCY = createDependency("commons-io"); + Dependency COMMONS_LANG_DEPENDENCY = createDependency("commons-lang"); + Dependency COMMONS_LOGGING_DEPENDENCY = createDependency("commons-logging-api"); + Dependency JUNIT_DEPENDENCY = createTestDependency("junit-jupiter"); + Dependency UNKNOWN_DEPENDENCY = createDependency("unknown"); + + default ProjectContext createContext() { + return new ProjectContext( + new TestDependencyGraph( + createDependency("ExampleClass"), + of(COMMONS_IO_DEPENDENCY, JUNIT_DEPENDENCY), + of(COMMONS_LANG_DEPENDENCY), + of(COMMONS_LOGGING_DEPENDENCY) + ), + Paths.get("main/resources"), + Paths.get("test/resources"), + Collections.emptySet(), + Collections.emptySet(), + Collections.emptySet() + ); + } + + default ProjectContext createContextIgnoringTests() { + return new ProjectContext( + new TestDependencyGraph( + createDependency("ExampleClass"), + of(COMMONS_IO_DEPENDENCY, JUNIT_DEPENDENCY), + of(COMMONS_LANG_DEPENDENCY), + of(COMMONS_LOGGING_DEPENDENCY) + ), + Paths.get("main/resources"), + Paths.get("test/resources"), + of(new Scope("test")), + Collections.emptySet(), + Collections.emptySet() + ); + } + + default ProjectContext createContextIgnoringDependency() { + return new ProjectContext( + new TestDependencyGraph( + createDependency("ExampleClass"), + of(COMMONS_IO_DEPENDENCY), + of(COMMONS_LANG_DEPENDENCY), + of(COMMONS_LOGGING_DEPENDENCY) + ), + Paths.get("main/resources"), + Paths.get("test/resources"), + of(new Scope("test")), + of(COMMONS_IO_DEPENDENCY), + Collections.emptySet() + ); + } + + static Dependency createDependency(String name) { + final File jarFile = new File("src/test/resources/analysisResources/" + name + ".jar"); + return new Dependency( + "se.kth.depclean.core.analysis", + name, + "1.0.0", + "compile", + jarFile + ); + } + + static Dependency createTestDependency(String name) { + final File jarFile = new File("src/test/resources/analysisResources/" + name + ".jar"); + return new Dependency( + "se.kth.depclean.core.analysis", + name, + "1.0.0", + "test", + jarFile + ); + } + + @AllArgsConstructor + class TestDependencyGraph implements DependencyGraph { + + private final Dependency projectCoordinates; + private final Set directDependencies; + private final Set inheritedDependencies; + private final Set transitiveDependencies; + + @Override + public Dependency projectCoordinates() { + return projectCoordinates; + } + + @Override + public Set directDependencies() { + return directDependencies; + } + + @Override + public Set inheritedDependencies() { + return inheritedDependencies; + } + + @Override + public Set transitiveDependencies() { + return transitiveDependencies; + } + + @Override + public Set allDependencies() { + final Set dependencies = newHashSet(directDependencies); + dependencies.addAll(inheritedDependencies); + dependencies.addAll(transitiveDependencies); + return copyOf(dependencies); + } + + @Override + public Set getDependenciesForParent(Dependency parent) { + if (parent.equals(COMMONS_LANG_DEPENDENCY) || parent.equals(COMMONS_IO_DEPENDENCY)) { + return of(COMMONS_LOGGING_DEPENDENCY); + } + return of(); + } + } +} diff --git a/depclean-core/src/test/java/se/kth/depclean/core/analysis/ProjectDependencyAnalysisBuilderTest.java b/depclean-core/src/test/java/se/kth/depclean/core/analysis/ProjectDependencyAnalysisBuilderTest.java new file mode 100644 index 00000000..6645060e --- /dev/null +++ b/depclean-core/src/test/java/se/kth/depclean/core/analysis/ProjectDependencyAnalysisBuilderTest.java @@ -0,0 +1,145 @@ +package se.kth.depclean.core.analysis; + +import static com.google.common.collect.ImmutableSet.of; +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; +import se.kth.depclean.core.model.ProjectContext; + +class ProjectDependencyAnalysisBuilderTest implements ProjectContextCreator { + + @Test + void shouldFindOneUsedDirectDependency() { + final ProjectContext context = createContext(); + final ActualUsedClasses actualUsedClasses = new ActualUsedClasses(context); + actualUsedClasses.registerClasses(of(COMMONS_IO_CLASS)); + final ProjectDependencyAnalysisBuilder analysisBuilder = + new ProjectDependencyAnalysisBuilder(context, actualUsedClasses); + + assertThat(analysisBuilder.analyse().getUsedDirectDependencies()) + .containsExactlyInAnyOrder(COMMONS_IO_DEPENDENCY); + } + + @Test + void shouldFindUsedInheritedDependencies() { + final ProjectContext context = createContext(); + final ActualUsedClasses actualUsedClasses = new ActualUsedClasses(context); + actualUsedClasses.registerClasses(of(COMMONS_LANG_CLASS)); + final ProjectDependencyAnalysisBuilder analysisBuilder = + new ProjectDependencyAnalysisBuilder(context, actualUsedClasses); + + assertThat(analysisBuilder.analyse().getUsedInheritedDependencies()) + .containsExactlyInAnyOrder(COMMONS_LANG_DEPENDENCY); + } + + @Test + void shouldFindUsedTransitiveDependencies() { + final ProjectContext context = createContext(); + final ActualUsedClasses actualUsedClasses = new ActualUsedClasses(context); + actualUsedClasses.registerClasses(of(COMMONS_LOGGING_CLASS)); + final ProjectDependencyAnalysisBuilder analysisBuilder = + new ProjectDependencyAnalysisBuilder(context, actualUsedClasses); + + assertThat(analysisBuilder.analyse().getUsedTransitiveDependencies()) + .containsExactlyInAnyOrder(COMMONS_LOGGING_DEPENDENCY); + } + + @Test + void shouldFindUnusedDirectDependencies() { + final ProjectContext context = createContext(); + final ActualUsedClasses actualUsedClasses = new ActualUsedClasses(context); + final ProjectDependencyAnalysisBuilder analysisBuilder = + new ProjectDependencyAnalysisBuilder(context, actualUsedClasses); + + assertThat(analysisBuilder.analyse().getUnusedDirectDependencies()) + .containsExactlyInAnyOrder(COMMONS_IO_DEPENDENCY, JUNIT_DEPENDENCY); + } + + @Test + void shouldFindUnusedTransitiveDependencies() { + final ProjectContext context = createContext(); + final ActualUsedClasses actualUsedClasses = new ActualUsedClasses(context); + final ProjectDependencyAnalysisBuilder analysisBuilder = + new ProjectDependencyAnalysisBuilder(context, actualUsedClasses); + + assertThat(analysisBuilder.analyse().getUnusedTransitiveDependencies()) + .containsExactlyInAnyOrder(COMMONS_LOGGING_DEPENDENCY); + } + + @Test + void shouldFindUnusedInheritedDependencies() { + final ProjectContext context = createContext(); + final ActualUsedClasses actualUsedClasses = new ActualUsedClasses(context); + final ProjectDependencyAnalysisBuilder analysisBuilder = + new ProjectDependencyAnalysisBuilder(context, actualUsedClasses); + + assertThat(analysisBuilder.analyse().getUnusedInheritedDependencies()) + .containsExactlyInAnyOrder(COMMONS_LANG_DEPENDENCY); + } + + @Test + void shouldIgnoreDependency() { + final ProjectContext context = createContextIgnoringDependency(); + final ActualUsedClasses actualUsedClasses = new ActualUsedClasses(context); + final ProjectDependencyAnalysisBuilder analysisBuilder = + new ProjectDependencyAnalysisBuilder(context, actualUsedClasses); + + assertThat(analysisBuilder.analyse().getUsedDirectDependencies()) + .containsExactlyInAnyOrder(COMMONS_IO_DEPENDENCY); + assertThat(analysisBuilder.analyse().getUnusedDirectDependencies()) + .doesNotContain(COMMONS_IO_DEPENDENCY); + } + + @Test + void shouldHaveRightStatus() { + final ProjectContext context = createContextIgnoringDependency(); + final ActualUsedClasses actualUsedClasses = new ActualUsedClasses(context); + actualUsedClasses.registerClasses(of(COMMONS_IO_CLASS)); + final ProjectDependencyAnalysisBuilder analysisBuilder = + new ProjectDependencyAnalysisBuilder(context, actualUsedClasses); + + assertThat(analysisBuilder.analyse().getDependencyInfo(COMMONS_IO_DEPENDENCY.toString()).getStatus()) + .isEqualTo("used"); + assertThat(analysisBuilder.analyse().getDependencyInfo(COMMONS_LANG_DEPENDENCY.toString()).getStatus()) + .isEqualTo("bloated"); + } + + @Test + void shouldHaveRightType() { + final ProjectContext context = createContextIgnoringDependency(); + final ActualUsedClasses actualUsedClasses = new ActualUsedClasses(context); + actualUsedClasses.registerClasses(of(COMMONS_IO_CLASS)); + final ProjectDependencyAnalysisBuilder analysisBuilder = + new ProjectDependencyAnalysisBuilder(context, actualUsedClasses); + + assertThat(analysisBuilder.analyse().getDependencyInfo(COMMONS_IO_DEPENDENCY.toString()).getType()) + .isEqualTo("direct"); + assertThat(analysisBuilder.analyse().getDependencyInfo(COMMONS_LANG_DEPENDENCY.toString()).getType()) + .isEqualTo("inherited"); + assertThat(analysisBuilder.analyse().getDependencyInfo(COMMONS_LOGGING_DEPENDENCY.toString()).getType()) + .isEqualTo("transitive"); + } + + @Test + void shouldBuildDependencyClassesMap() { + final ProjectContext context = createContext(); + final ActualUsedClasses actualUsedClasses = new ActualUsedClasses(context); + actualUsedClasses.registerClasses(of(COMMONS_IO_CLASS)); + final ProjectDependencyAnalysisBuilder analysisBuilder = + new ProjectDependencyAnalysisBuilder(context, actualUsedClasses); + + assertThat(analysisBuilder.analyse().getDependencyClassesMap()) + .hasEntrySatisfying(COMMONS_IO_DEPENDENCY, dependencyTypes -> { + assertThat(dependencyTypes.getAllTypes()).hasSize(123); + assertThat(dependencyTypes.getUsedTypes()).hasSize(1); + }) + .hasEntrySatisfying(COMMONS_LANG_DEPENDENCY, dependencyTypes -> { + assertThat(dependencyTypes.getAllTypes()).hasSize(127); + assertThat(dependencyTypes.getUsedTypes()).hasSize(0); + }) + .hasEntrySatisfying(COMMONS_LOGGING_DEPENDENCY, dependencyTypes -> { + assertThat(dependencyTypes.getAllTypes()).hasSize(20); + assertThat(dependencyTypes.getUsedTypes()).hasSize(0); + }); + } +} \ No newline at end of file diff --git a/depclean-core/src/test/java/se/kth/depclean/core/analysis/model/ProjectDependencyAnalysisTest.java b/depclean-core/src/test/java/se/kth/depclean/core/analysis/model/ProjectDependencyAnalysisTest.java new file mode 100644 index 00000000..3a2930be --- /dev/null +++ b/depclean-core/src/test/java/se/kth/depclean/core/analysis/model/ProjectDependencyAnalysisTest.java @@ -0,0 +1,40 @@ +package se.kth.depclean.core.analysis.model; + +import static com.google.common.collect.ImmutableSet.of; +import static org.assertj.core.api.Assertions.assertThat; +import se.kth.depclean.core.analysis.ProjectContextCreator; +import static se.kth.depclean.core.analysis.ProjectContextCreator.createDependency; + +import com.google.common.collect.ImmutableMap; +import org.junit.jupiter.api.Test; +import se.kth.depclean.core.analysis.model.DebloatedDependency; +import se.kth.depclean.core.analysis.model.ProjectDependencyAnalysis; + +class ProjectDependencyAnalysisTest implements ProjectContextCreator { + + @Test + void shouldBuildResultingDependencyGraph() { + final ProjectDependencyAnalysis analysis = new ProjectDependencyAnalysis( + of(COMMONS_IO_DEPENDENCY), + of(JUNIT_DEPENDENCY), + of(), + of(COMMONS_LANG_DEPENDENCY), + of(COMMONS_LOGGING_DEPENDENCY), + of(), + of(), + ImmutableMap.of(), + new TestDependencyGraph( + createDependency("ExampleClass"), + of(COMMONS_IO_DEPENDENCY), + of(COMMONS_LANG_DEPENDENCY), + of(JUNIT_DEPENDENCY, COMMONS_LOGGING_DEPENDENCY) + ) + ); + + assertThat(analysis.getDebloatedDependencies()) + .containsExactlyInAnyOrder( + new DebloatedDependency(COMMONS_IO_DEPENDENCY, of(COMMONS_LOGGING_DEPENDENCY)), + new DebloatedDependency(JUNIT_DEPENDENCY, of()) + ); + } +} \ No newline at end of file diff --git a/depclean-core/src/test/java/se/kth/depclean/core/model/ClassNameTest.java b/depclean-core/src/test/java/se/kth/depclean/core/model/ClassNameTest.java new file mode 100644 index 00000000..61d57ab4 --- /dev/null +++ b/depclean-core/src/test/java/se/kth/depclean/core/model/ClassNameTest.java @@ -0,0 +1,18 @@ +package se.kth.depclean.core.model; + +import static org.assertj.core.api.Assertions.assertThat; +import org.junit.jupiter.api.Test; +import se.kth.depclean.core.model.ClassName; + +class ClassNameTest { + + public static final String CLASS_NAME_RESULT = "org.my.Class"; + + @Test + void shouldNormalizeName() { + assertThat(new ClassName("org/my/Class").getValue()).isEqualTo(CLASS_NAME_RESULT); + assertThat(new ClassName("org/my/Class.class").getValue()).isEqualTo(CLASS_NAME_RESULT); + assertThat(new ClassName("org.my.Class").getValue()).isEqualTo(CLASS_NAME_RESULT); + assertThat(new ClassName("org.my.Class.class").getValue()).isEqualTo(CLASS_NAME_RESULT); + } +} \ No newline at end of file diff --git a/depclean-core/src/test/java/se/kth/depclean/core/model/DependencyTest.java b/depclean-core/src/test/java/se/kth/depclean/core/model/DependencyTest.java new file mode 100644 index 00000000..2cca4d1b --- /dev/null +++ b/depclean-core/src/test/java/se/kth/depclean/core/model/DependencyTest.java @@ -0,0 +1,16 @@ +package se.kth.depclean.core.model; + +import static org.assertj.core.api.Assertions.assertThat; +import org.junit.jupiter.api.Test; +import se.kth.depclean.core.analysis.ProjectContextCreator; +import se.kth.depclean.core.model.Dependency; + +class DependencyTest { + + @Test + void shouldGetRelatedClasses() { + final Dependency dependency = ProjectContextCreator.COMMONS_IO_DEPENDENCY; + + assertThat(dependency.getRelatedClasses()).hasSize(123); + } +} diff --git a/depclean-core/src/test/java/se/kth/depclean/core/model/ProjectContextTest.java b/depclean-core/src/test/java/se/kth/depclean/core/model/ProjectContextTest.java new file mode 100644 index 00000000..4e0eeb1c --- /dev/null +++ b/depclean-core/src/test/java/se/kth/depclean/core/model/ProjectContextTest.java @@ -0,0 +1,36 @@ +package se.kth.depclean.core.model; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; +import se.kth.depclean.core.analysis.ProjectContextCreator; +import se.kth.depclean.core.model.ProjectContext; + +class ProjectContextTest implements ProjectContextCreator { + + @Test + void shouldContainDependenciesWithClasses() { + final ProjectContext context = createContext(); + assertThat(context.getClassesForDependency(COMMONS_IO_DEPENDENCY)).hasSize(123); + assertThat(context.getClassesForDependency(COMMONS_LANG_DEPENDENCY)).hasSize(127); + assertThat(context.getClassesForDependency(COMMONS_LOGGING_DEPENDENCY)).hasSize(20); + assertThat(context.getClassesForDependency(JUNIT_DEPENDENCY)).hasSize(113); + assertThat(context.getClassesForDependency(UNKNOWN_DEPENDENCY)).isEmpty(); + } + + @Test + void shouldContainClassWithDependencies() { + final ProjectContext context = createContext(); + assertThat(context.getDependenciesForClass(COMMONS_IO_CLASS)).hasSize(1); + assertThat(context.getDependenciesForClass(JUNIT_CLASS)).hasSize(1); + assertThat(context.getDependenciesForClass(UNKNOWN_CLASS)).isEmpty(); + } + + @Test + void shouldIgnoreTestDependencies() { + final ProjectContext context = createContextIgnoringTests(); + assertThat(context.getDependenciesForClass(COMMONS_IO_CLASS)).hasSize(1); + assertThat(context.getDependenciesForClass(JUNIT_CLASS)).isEmpty(); + assertThat(context.getDependenciesForClass(UNKNOWN_CLASS)).isEmpty(); + } +} diff --git a/depclean-core/src/test/resources/analysisResources/commons-io.jar b/depclean-core/src/test/resources/analysisResources/commons-io.jar new file mode 100644 index 0000000000000000000000000000000000000000..107b061f5fa84cecca645eae9bdefc98e084ce03 GIT binary patch literal 208700 zcma&NbC9K9mnEFGZQHhO+qP}nHY;u0wo!>nSNc}k{OaxgrlV)3-(Sp)eIstf-Rn8~ zkG0O(ah|o6WI@4TfPkQYfEr~Iq=5e02m0@Cd2uyidT9j-My0=LXh2XNR7Wd^rDL#3iO10ZK|x3Brjm$Ezrzc2Vf5G31-dkueb zGZ{)G$FZZ{U6c*BChBQe(tqIRJAiFrP@A%94Wo0a_`~QLmy>{f;QkH{42tHGo~w8I zy&0cWwF$b3oyZ4AI3~ejS=*$T1VQda_2m?rj4n3bg6M{HyR7z`TWvanGdDSVfpGH< z*ipN>S7B0Bcte9xMkI=eqYK!LPA-byJwG)`L0H7+x!paL1ia7teo{ywHj3sz8X7nF%wj#4+YksI`Nb(A$}mYK|$N~ z3oN0#V!}+T-Z~$*cf%d@p%6`Cobr*%g_Ocv2rbc`84jfP1_9O|@U`NmI%SalESPUs z$U`EqElhz?9MO|;GK0EyEjpQ%R+1<9;J<{DGy}c)_Zg8=L8J(V z-6(e7KaZLQT&m>i57mB{fmHVvi>z0BCz@6JRsQZn^Y&68fjiT`$s1zKy1#5zKG5>b zs9UY|f7iKHw|`jm-xqCRZD;=X>t_B>MU(y8gNDIJ+=Xx)IKy12(+(g{yfq5?;4;bBD+eoZ>A*3_ndxu6BRNwH$3ENnxeCZkv zC>F->EsQaw0chg7UsFg5`&dY9H#MEKdWgXQ=6)@dY3Hrr#4^#m#}$09E*pmz2-g&s-b4 z;={`EuaO8gtHUDaac+Slf_UGq#QG04DjZGkpnA5HM+SXxbb@80;>JYFee{LW8akS0 z^nwy${=S;it_L#2^c%l!8lolRaLkl(=Z8|MgClmWDau88W^{6x!pfnkRe@32(B8OA zTE7&C%c!Zy7c-i2uvcfWC*pwK;R>6^WKAnSoJ6bM6wM`d_P*TuTO5JVm~6G#AC{C! zC!22Ukuf?nCpI6h-K`6%%#1-}A4G~u=*+Dg6ho!Ek65Uh_btGL2r z;DrNd_N3SqRA0}@?%={5RbI1c5^bDHZg}?O#CxWB)d)&v=+*4XPPWx{r8zB?ojK6; zf&244QwO=cZ6b#kmi7Z;7T>)Q_4{gW48kd~yl`|fnT_J%ST2rs`l78of6#BOVcr|D zAuvzsZ*}^thdh|gGuQE|J_UrF$G`G5c;`n&uOtId$CTh zyB?&2t7tDo+Z-(Xl!G2$W4EAwX95}KCv2xD?@dcj0lOHWEr8U;d z0kQk$B^f8I;cDqwTjuzFqP4Jfc2bXZ5Zxi!v-N{N-;I&b2X&jr7dwq(!nb{0%u{T; zW6WmjXuE^-fIa^Q?W=z8E;0Vc1Jfh{|dgXqT6`SDeUnd zuLYw#UHsnx@+4aUPt#`z)axcWK1CH(xVSigDuCOY(+9QmTyQ5^+&GZw+0 z4%tKVS~IaQr!XqZ{B_YjH`a7pDAvQT;x6TC`tA~hZ=Kw+<2Y>-9|3WXS$0%z-jM>* zqnB^(cF~WcJaP)gO2>y1n3y*3r)?7+N=PQ1n!FwMZnl6we|mxP)AL!x69plXAH3KJ zv@U;O1txY5Bj*U4>x_&a=r~{~(!He|6s%82xqWvX!cYQZ_}}$~3Y3`F=?+$~H-Y<8 zIdo4%LxgrQ{J>k?Hk%`u8bNRlo(sv}p@0=IVzLx-?12*TEG&$oKR=HyaGV0hu%!ZD z@Q^O#!Df#@!yUYxC&>+yTmP+7tgN?K-Sfl$JS}=+go2^*AnaR~k!H0)Ox8+7VZ_|ctyVXCl7WO;;5ZCa7&arawDrBOnnX{qv5$RSJ&1*bH zGu`X1vmr6PhH0a%M*d~Gbm7k|Vs7bdcE5$?%e6;$kK#Fqr`MA4t5TO3U6~GzTr)(@ z3K>|t^zo>GcGG)gWVvR^=gD&R#5uO`z##|yd#gHFO}koGKjmOX32IWIu0)H@4bO4} z+%$i#z&h(IKp7sY)=F0!Z_e3ebk}%P-&%;npP|6I}~2z4}^XSx33J2f0^R@TM8$3$MH>GX>No%t{BCG`))~ z*e=W~;D%APR-<`n==Y|S-1D1to2yqFCdO(m6Z;FwQ!`Sd^r{ay_e%2ZbEMFOM%>zn0}A$;jyf)Wa~ctqZ>c0Ap5ko9UZN~R_Odk1s=+*!V2K5 zqc;z)o@z-e%Z_@NFs0@#KG)w{)>0aAO>;Ld7m3n2_>a!@#a3gw+M$ZS!H!1647VidJP|=oLPh$C~Q6`eZsK~1( zIs^MhudM%2!XQGPdF$@})ghTXX%4ftEo_^_9AxdPA$uxkoyfV)$)SR%-gEfJ2_DwUDQYG9TP7a`AX)2{_ z2f0u(*UcfvF@qY7pJD%o^i9G?7{a+92{XV3)}Zvr2WnK~EL3?jgBH*=+yFHcd4r4| zI2w>!Yqb+jQs-zgT}qggo_>^9HqZ7Fk9rO@5!<_{Xp8n!ZV+5 zu)h0qB~<7n-Iz>0eGIHXYoeDWJdk+Q@sKn1P>$rtA$$+zu;Xr9JXiWz%L~vwcDu9IIa5!M= z5$?9(j*VmIu)u`FsX0hJ52u1x;K!|iQRSf@pe=w=}@apI@ih*@T^_#_se)4mkN zL+jCQsSmN~pZ0>6t~*_V$g5GKylpzH3gs$=H97?rmz8JCl(x8H-l_?nqQl9JrOoa7 z?Mb2uDXuET_+~h^w+{AkttSXTBW1=jG1gEvG3%ATAp95YyD8zdn(jAFi>W)Pw?LYkscK%oa6vxR`j;I zh-PN>jCkqd&p-xdTZNX1qG@#ED<>^ns-BvSCuV^TgMp)-w^hX76r(8iFw(g*e1~Es zdZRRn`%rqp7>^u-C?-{eQqhvoy@6lyi^K~c1%L=pj*)+`1PlBWfP%SL5SycR*1nh*S2(u~@hIk>LFt$Um zV~^1T#nDB?w!=4TR;APXh6@I@+a(0i!#ZkM0Xz+ z@Xe^7K+S$P2fDa-3X<;lA#UL>$gu;9$exd)z1L9XS0!T1Ekd^^}lK zNHVZeN~ssJ&Z5Nhh}AFBqUHwCBz_pKP4?sz;DHcB*>IQ}^bpkL2V6|~3#XhUjwc)& zA5`|fgq+=Gt2cVT{nB$!h8&O)>o`=vZLlzrA6T> zKwlUp6wv3{WUGinph#OmQ`Dvn$nM=SIH^_PH<(M`uX+rYZ2FCVGmPIz!{Hh5Pi%6i)7SO$O=u8Ky7-^ z>(U{8F{D&N4}U{%emeyvrQoA9Ba0;HdkupKV_rcCYu+nXmFtUS#bv|6FYGiD-W7Z&a${iups>$2pbNR4c|feiKZD&T#UpV z@dw9IG`^!`oL5e(LMq-ZeVE3LQSm~61!O}+-?JDxM8i=$|HNiLNU$8zYZK!>ED zer40jH`H{4F|>BGR$lT5IpBI?H8G}Ib40U^@PY-@Krn9QB)s_rqJ_3}h>F0B$JiR8`abH4A*!I65C?sk0s6u&! zhWKWH=V(-sz~OFz^8&AAVGr~uBOvy{dS>T1BA((yiutT>=(t0bn6)erhw*vtKL ze`bmI=qD?|sHFs1t_5P(R$2Eat3tcjCl!t{@~xG{k43yc5ndHmjOG(%iLfBySeO}$ zokFQj(Kjt0Ylyxg`Hjz~~TiqmANyEyhCD}HJ zyjp}GPlU=je`a_r;{_X$a7fCHiC46c0<3zGb+?>7N7Xdaub_fSj-%Mn3MJ9*k;eQq zCB>Fk)p&VLvUeWF4_K07Ny}xSC}p6CryZ<5r9&HkF$~O^xk^n}(B^yB%&{~0Rbcmx zp}a^J&-*PnQIO0nhJ{1%vnGg*%30sIyNDX`p)7T#{Aj8#i*ecC^)`5;zq^=Xin2z! z2`qSFCl|dg+rKwJ5WZ$mElSALSWH*QM1&F3`AtHPp`YcnqFz&4yYDZZDQ(5aPonB@ne4Zo%Q6Pb~&9=e#b zOu^CFI}ikS{Z27)ibGAN$wN@#bA!pTmsec+1uk+bQnhk*%x3hBr(d2jj0t@ZTXy4U zLW^@vo7Ad42f1%1r(0t^X}F^D3G-WBT@cikyA~7iEm8pE-lSoXA6c_-A2w*ALO6mE zs;eI<%paR+DHD3)y*XSSS-)M*RzT0-Gd!QFNYO}E3;$w1oT)~Vm*1|+E#a$P_$iVu z$LI8rM&Eb_%|pciC+`@lBAH#-WkJ~x0Rmx=N9Un!v-56_1zcFj0X8WJorNdUl>d;q z5G*SnKxA7N{p=U|>=((lF`1*^4e;q%yqDw$)SA&RN4HN3jxpTh*#2(Oh;yq@=uW9i z;bX|KfFNBMgwU&l8?N#wKKX^R8orz^rZ}wNF_dSq_p>&ujLLGhCZD+?``PXdZV&t( zC)&G8PHq#@sN~8+j|&jF0!Ts3t)0uTh3sVkHlz)1NKeht1I8<>BU@6($R^Q!34j6K z^KG|lV$7xog9T3ORiML~^J{H-Y_E#M@CIL%!D~_I$QOS3f-~5gs61_;cxP{d0yl=V zAHz$UiIW(kQA3ShB=Ejw_Ub%60zRgOaOtaykWFaoa$F0lkrpo5P(L*p7x+M42$ zTjRTkmH|o6)Sw+1q)*b&LJ--wrVc=CW&^)|X_q@uF{xontv$qnBv9gKIEH%XtnSd6 zD#fa4MDJ!sv>@*+nyFaCL+fW#{8%LLt>_uswcw>9+ZjN9%yWqC3&r4PX!3l^GHLMN z*tirCZ8rtDmoPiW_2Faro*Drj|Aq;GoaxCUf%*vnr|Eew4#7T~_&??OMm>)yV> zYc;ytQxerDpVC_AGR}e^4SU(tL1?1x;~~3%^5vUcw4-!3uz-eq1o!8t)WgRDdO!qs znRREF5&nY6=MY=>rEK_c$9S00rc|5%<1CM91go)qBe^eT(jZjs8<)bM#mS>CkwbeO zYqs@#3vk#~=fNc?x$rrB(e>MlLuR2(Rx6jxeG`gSbyx(UW7GK)-1!r|`J*sPYL=tb z0+-A}mp{W?bmQQJnO6)vl0>}4M~((}%9Oby%y=P02H7k9wz6U)gXt+gk7;WI1JlyJ zg|rG-J=^%w;(h#gZ5_%|c1jzbSeiPv^B=?MXec{qGulTA5LdW1ZirxR4M+2BA_v!d z4V-cK$-}DluXGbJd zeMHHYm%@Tm6U^h7O5nwd(lgNPQK}p5H8l&L=Q=>Tj)cL-C%ZzkG=lH|S zmu(+|wx>Hd=L*6E_QrJxbZ&%eUIc#JF;Tr2)pX$;`4wQMu6RJ)`-%5k7Ud4*D~W45 z`~7CT8vx-}7ykm@Q2xDERa-4*@QB#=2}bra^)OG|8{69-+;6%D>WY0*X;&y=FYJ8U zb06%OUh79MJZ+k1k@(U=TSkfWN^#g)ivXJs2*Y>4yhjYTNR6<>zd|9xOCo;;)Vnb# zKUUKKRk$vt=%={YtKYOTTWGtr7jk~6I zY;S{5WsF}7=({I6!)wXs-$MeAj6!L;;;bmJI5eRsG%A~zOJU5DCKOc-(NE!V*l*2J zt|%dt?*Na{Bf4ss8?6c!uJvCr3f#f1f|-SvESbOs5^xY6Jq#;@^Ad~vK@NyzVWsFx zlAQX^BR7B3E>9HH@OU(h;5_SvT8-Y_VgxY_m za4;HYN`oq-oP$Xg9)?~JJ@6r9gqP~rs+j9s;C7J?GGMYQw7k%6Fqo>_!#S8h{IbOy z81|+dDnJWgq%B+2y~!pFoB?&`Q(*^+hHvZVPcqa#roK67uJ0Y}pw;;)_#pgx1QC9i zi-&&ddtp)9h(BxtnO3bEha_YiapwZ6%k4*k(Sj!fUQ7V@%+v#O`S1Qa8n~~3_TWKWy8>#vu59WasJsHZQT5b9jwx+O43^MV& zGay*vHl=n*9ua-Py4N6v`?nHRzQ+#=wba zul(TETM*+Bv zcj8I`sICi5VnctdnAHF(Wx`;aN9C+C0SMRCiDKzbh+5?VXxz2FM(rKQzKfNR_!TB7 zh2gfD$4QSMChT4So7blGO|$Bqh~t!H09DA!W@cj@2ssyZA8>k^mYR6ZNt55_6ZpgsHs&xt9)s=TeGq^ zxhp4DnT^|d%{$&B<~>5dFQCSgaA+bPMU$^*1~mBG+xkNenGkdt{ctgEZi}2yr`vBP zMbq7;RO#S<3eZdj4pWjC8p%pMeuklG!SOYMDX$B2DIt~xL+Fb5%t%RHV?m$qGn1F{ z>Y<{f+<@~!S8Ss!>q?0DSgJvvD`Y2Ck1nAKk)$Uvv{I1qV;@KKd0Co~k~48C1+}b) z`*5g0?EipoyCA5nPn)XZ$D>kW#syc|q(UNvCc&rv6lDwtrLI3MK1SMzMs{Za13eXW z*aw+J)PoWajwM3r#Iga&9IhQScT(AR(L(P8QGf=7$OqT#=MA=nM6PA=WQep$iPID_ zV@YGhk-O%>inlAcX3BnLTVG}dH-zAL zO}^fzD%a677<mUZ-7xxYp=Yk&orHNEERyGF&|TSShWNsl7+vuxN*HZP z{vn{$`?>#E%94!*0a|EM`wg2mhzvNDOs*u(ic(#z%7LtAW1L;}Q>uA2?k^t{p$Br$ zfq>V6%4vlo#atDM;wR#~UvGjmU)G=Kr|DO%3b6(dGlScT*bp)aEW?CWo0;PenS)Y@ zMPT3!iFuQ>DBm@f{;nt@Y@%0CVS%dAP+NA!9qye43e1N7Fh}_?PuRCzS}95oRm=s8 z@xTjfJtCH@32Nkkr?5h%TA?}Ms)LEnN)THWiswMJux)``G^bdMMQ*)17=wDFXA`gs zDzFF6Pi%1{^TC?@l%6~c6_*LG$RS#(kgqud^Pl5$WKS2+aZ1B{H3&W=aYVMbpScdx zyMO;Geva*pB<`8?)N)EXKZlgpkZ&T+AlCtHZi3s?O0Z)i!KE!yvW-BoCyx+@on6y8 z5c^{`G)S_;0{UEq;t8d*K^i9zI2kPQL}lPzgmkg_bF|+Tn$FB{g4UmjN|GU>C}^ED zaY^u{hO3wl`Wsko`i8Cr<(}(3A}$<}S#^o#ZFYIEuDt=Lp)o+K3(*5V!YCnTWsA~S z(^{XK{5}Rs;3@5NBt0$OnWD?Ko)JK*{1pI|5$Vs22OFrTLm+E@rp;!*HV-o3!I5Um zkA>EUh2$?aqfmOx2Y^2vnc4zx)aXItu)-X&-WrqWwhp25Kwsh9Szs$Cvut*ZS>Uu3 zf#0T;kl{Y2UEl(Nlbn>^4b0ZG3<;t%Gka0SLT>aI1Cb%07VhjWbF0@RoU_pMh1kz| zTr+MM8fv>F?F{Kl5Um>+OzZ>Co*ael4Aiu%?+84LUvB(48nNr{AjIJy#^DfR^T#5q zcqc^eR}A+dhgR`Uf}9_?!rE2PN?Q+6`40Sct8ZL=3x>;RUXX|tuV3UjuJtxK>6#OX zZwh~Sw}nwB0NoVbITdvGt|Y0du_8I22Ed;apC4=rm3V3H^->UaDSzPHN6p88WADWm z9|lK6yf=Kq6?SmT7cl`VH64pZz-a8%8&`@qe&dBca>V}g#_LjR#8ePB4UCU?;8j0g zVK5UwNPsvD?|xj?u`6x(uxq9E-dvmEi)xTYdAawI_ou<5^%?n&5&5nG`Oc9EAt071 z&=TiO1NXLH2P6k39e@p*1k(Efwd!RrRKQO`)Zqs~6evm*C`t4!MD#62R7jE(s2e=V zgpZm8iZZE=GAY-5uK~&Hh`Xe~TmpR(B$x$TY(y{%g^>lwwHBL~vo72-Db(_qZOrlH z=cSr^@8QZ7wIk=qaLhFHkj;>_=>y;0VX7+~+*ZDfRl~r1nJ--#jh>kYga-JI(g0mB+6^?5>%h%!FC0F&{3kwV90OgRyQ9JKt446F5@W3pjD;N=(E6 z<6x%6D_FGr=wnFN^!_vYa94cdQ)!spugh0{#PIe47Bp`QGEjddeo_QGcN z;%4>&XXb^HkN36HbSg&5_uU_!4UL)fZ&+q~W{tyBN z?gvK%yo7?{0=u~GbOTu*CHP06Q*v*%c~a>WF=3jU0s#nL(7tbl%oc(i@u1~9+Q3m? z2*Rm7qZ;}R()ylL?2mX$j#lu2*FRDY`PUDkCm9t|3=c>9HW*qpog*jB0kzx}zaG#+Wvs#;`tt##*dO$+!GD*`3hM6t|o}MWrnek=Chk-z809UA zMq{It8cNfS?lOn{3YR>iG^2x0wzcJSrh)@%XhmixtNEdIpm3nrd$A#FLFeg?zD6t< zXz49n-gEEId%n}V{+hsmy9z|$yivyxuBa{|f>FO9cG0MCpyo;NrYJ_(csWXx9Hf0=zo5Oy>uh(Asvnp84PoVzhs;R=tgCVKl6&b*CXwr9;Opr z-1uWROm`|&{?Tl)p2O3S=? zvj{P_WFX>{!#R&|4(pRF1ikAdv2Zaa5Yo|Snn(0_TF&0iT58#rToz7EU#L<6M_`RL zU8ZiTH+T8N5m9DLJ3n54Ep29DbWNO{zh-QuD?D7Uortb*?OvxlYsS!5hy6tU-j}n$ z#oqa|bYnh&D^=$4>6ZI_o3kVn39fvrgDZx=M0+=yQbNDSqw5!&3U6P6?c$TCU*?1p z6^lY*Bc-<5%Kga2k8?!UUjVIhm==p~2eWP4$BdY6a=XmhNw+w}NvoF4HqO+H zF21kHyhbp+-`GY9Iz_F#?-@7Ju2qJ64E5x&xWSFYM3cuBJlrJ+P8mGMOM4=_h6 zFH}b-imMABwHwusxXm=BcslIy*Sz_wg&u-H-ifKY{!{M-yQmzw}adf^|UUXe4)J+{xWzh5=JAoh5v!jRToNTgR1xV z%NN989f(_`Kz-4-)@NymWl~pI_@xR5`HFU(MGX0<-F0M=*>Rw)|Yy{Vfn+h%(fk;Tcve;rps-|s@gM=+OUrxU0xfAYZHymLH{5Ph6GmAv{ z!5RMQ_*D^)2%HgiMG2vB0>j9+fS)Myx@m?0ULW|k5&+}(LDY3aWzLO6Dyj;dH!Lu4 z?-&F__8=($Qz56`s`SXJ3^i&=IED$QdgB5bQgQNYyus zJ+TVf#sITTId_ZtOAzXtpG_p?HY$$c>j?br=$8ic(y;0d*IWwtg zGTV~(N%p95cMu1TXqpPb0LOf=3WI~y*3qolP*^G@X0Uks7oj6t-lz&J0#2~ z^(B)Gj{E|4)N_d=^`WS9^(T!ntBo*SHp2A)FDUlEz^cf0eQ>QKEW?BopA+Z#&oED{ z#=s|z25-5X_z>_E!SND7Crn4EC2!fDUv$gx#83aQpnY$Eh&O}|)0h@(ANRAvD1ygW zc5(9%c~-H&sd!_3^@W2*2(~csU6$5a z%>Nxe>0v-}fP~{k(1H|3Cz{q*h88g+3(RPy5YlsTIoOG(;+tmBbIxXjdp>Hrib=7T z_Iq~_{k75xe!FTZ;b-HEl>C16`S3(U(05Jr;+Y747{c8S9R-XkcD|V9YDG9x2d@%7 z1XpNl&6>roiyuiO!1U?~AGq5}awGV!c4F+~g!Jj}K!hIpKeZE-|F)fw`0LjfwKF$% z_+PC=x~i=rsxTVADooinI1NqA4?db@NTsn3atbh!5RG^drWbpyaSx{+*>=#Sf#SVS z@Bk!vqNP#7{X~}CY=$%pn&X-LiCy0XZqNCz*Y|tQAZ)&7BU7FPuse*y&ax4Ed<(bE zk`aCUt1&0Th81SMr~_hAk@T??P4!={V50SBkY#*(hYH%i@ds3H`)mx}Ud7L2yfvK^ zeag~3)B>`c$Tx(BhGpUg!$iMmQfkoX)j5%4lWsX9x(kQdusTS-tY`0 z)U`FRRVs*aN)^h4sd@E({pS53Dpum{`bB$eSnmiUi4K?SsY3d|ae}f3gBaCC;Z~b4 zq=Tdz?9_>Z3m4kZ!B0+WqOL){lz-1>=u94sH!_%f;REmP6+qMT9i@*{uVj)PMx*>@ z<@Vsf_KVqUyTLL`ig2jH*QZ*a$CI{+R1Bg@ zA2qCFvYtBqrKXgU$xfc?`D`{|lmD`_Sh&tSkk@JS$F2BXR7ZIm8m_<8)|qfaJh0xf zu~sBA{76u9j6TWkqMb`E9h0y2qn%=Yt4i_Ti;B?blGL&;mb{JT~b9p09A zqn_62qC%6*uDn6-7!P`2OsA!^R5G`$Lv9_?w<}(f&0hpO7w~lV2h82dO!5#m(W53v zOg*%nGVzhK=Q>c{{9srJz%fzF3EkL1Q~YAN$OS52tf5RQGkju=B4B;E#oS^#M)7S( zE1Pg_5+=JGQPKwzxF+Me(dRZ2NofO{L?=MS{LE&xNVXflL70cPL;-)DcAv(c3RDYL zvJuBs5qDQRBX>9pifRw9Vi4G7qNecS^gmV)bx}VsbIh(5L#S6!r9MRb>$g=n$5s=p&aZ4m#&e)@mQel=rDOLH@6MR6}vbEkieocw1yov%8h z@-GeKLrO;sg-L>tM7@w?6Dj-QPOFq?7=vq*jnZJ+P{ySWF`-&e*fe>bLpC~Jj)$vJ zYcZg4GJL=e3<@^(@?)DynWP_=zk59MpZ*f)c;8+~ECiZ0B@S}~gKI%iFjn|MMH;b! zLc&EVJlu;lAK}Chb`Qs_+va9KTa{6lJ3f6V58)AMOk|1EJ_27cY75W)axwATxAbdJ z7Ghw8JwhxXUho)uXBJJbvwv!aoqdMr(j(b6r`t!-vl>pOIa})}B7<6k{ysbRXM2~P zfhw&6hkGG$604?qgp~p3YES%Qvkkg9$B5Eytx|Men$;hBiM%~GxZ466kPUJ%Obr)!Dc8C$}Bl^L27V~T1T&FUWV`u8(>>QuLUuIf*0?E^;8?%C=&_mMBAkTB#r0B{!;G;hnMsdW>LHLkJH-82P!j<;fLB2TC4kdquv*I`s37h_a9-|ru;*2>U%1>0q3v;}~`J~4i1}lTE zOQ~S5EEObb3=b%73Ee;agYgcW6C4S3gzTKYtp=e>6KYQr(1=Ar4JBm7Y;%_8*@Di4 zW~NNu7ux^8ATkZ`eQDR{{jyqvZWnGkw!ya+u`2Lr`@t1sdKF(%?=KLOcoasNT&$f3 zj_z`4AKPiYR4z-!iOMHJQBVL`@H}X2j(NZ@#&gTKb#p)=;Gy5U#^BuCh|0IA%6Du* zJ@9vS4id^UqDOT1uW$~)|4BIf|5iBvZ8lBV#MRBk*wpPmPLlr`S^F;`Ijkrl@pC#K zj=JYAN_w>}Dj9gUMKlAYp(v9y2^AB8yN_IqXFXs{Bmi(r|Gw>Mrj7!a#qdKj0dS2u zs}MIeTAsYjX7jpE3A75S@y9Pe%?Er2NrI(9 z%FBhD)YELztW*b0pW$=XS`Cu^x%_@+iRfD{i2f^l-EzBevu_3OgwAz$$pUL|=8?CL znN8?sx8KE8m6udMicNSMd3oS|Y2FG|kZ&7#Jrs5*dM4Qg`Q-l`3d0_LFPKoYLc~c; ze?0}t8M0^?8`$7T2FFh;=4qkBwEg{-VYmIOqBXsW7g{*SmKb=+K}ALrE~4Fi5HdqW zBI8R$<%ghJab&sd5{Ng1wgiXjJIqsf9-5nvrKl5X?8Ev57+tZ@6RZAM8PzL%ld2i! zg3+!SwYq`Wy5JzlUvUVJcCcZB5T4ZXaYx1>~;%*ex zKpExO)k6JB1CptkQ+cq-bg#Y|tR5z;a1quz|X?pj&FIUr8Qlyifg+$_h)r$ z+J_~VEWenwrGcPIW{e|7W}1&njed=z4osBE5>2LBzsW747&rd}uf~`rRzg{E7M1Fb zSBfKF(bCmAVw}6gY~vn|fIG+XrhHcahustwxqq8WV~H;Ag+el&J+^9zk6LxiQ~i?d zHMV)gW}G!T+N09ilbbjzB0{AUfmV-9bMZBusaov!9e1@+;4;nLaBhZr!!rhRR3>bl~mT%?xFlMXcYIptRLxA%|Mg zySg0oxyDNM7jENJ+tF5i!Nx+n)v>+mg?}3L(9P^E3wcsI9S*P|Pg;NQ7AnoxYUT7( z$(+553QBUvh8a9aV@1#rhl4{q$4Pm`DKnr!RPo?Lhk6Y%-4CFqEk^Ug9d#VGydm>P z;FvKkqxf+7y=i#4RM_cOTl|!$i2kIZpd`q<9m=-epfV(pia;PFPnRs_1!E3)Mo?a%q?WAg;OTy;Qpog!YGzH||*ACwQ1=}U$i?u_(n~3zaEaVH7jnVwf5oyIt}eWH-f6fLiH!ch9BeYQPBx&%nFjcD^PK`K zpE(ODj8dD*%>=yTb~nM){R(sV;Cvt|#(QYpzAD%H!2KY75R@$H-&-S-cMt`^>cM#_ zEduIhK>pP$bOv`IE0tS_+%L3(oufDw$89K8$|HPOAyIK8@;#0R(#j!*SFc25gBNZ-L(vvg6L00=AT}?lphNRNu1&xH$X5C$n zt0$hp5W6z-eP(!;8DP~qmd&$r-ZAg?M)@Y0Q_#}G(x|g?4ms~zzt9EnHvD>d&ol&< z8-X*zip_rk%T@?$L=!@q0Y=gE(}Ew275DHO*IQ4-EA$pDxYstCsgN^xX~ZZxb0_3@ z(KD-D@bkhRB=?&irk%e5-!{YG%%-Z{Hc>FY+lu^wxD7H?ZDZw9RfMB1&nT!Uh>R2q zvLoH6$9~+bog~ZNX8PHK+0uVl7zq7POK}I=kU}e46KzK_kb-`;0GNDtskN{v(^A>1 znT)WzkkBh)tw5h?)@D@;=C$OR+tiUy2ed$ zmuf5R_nY2=0(8iAwdo18t)i@K+gWu!Q@NwDrxcPR`_%Erm9B3x}Xv$&&U+ zBXHHNf#G|}B$F`}Yf|6*b#mSs_hj+%anV_Hl}An6BkM9IBRz8%O0nNkTorcUboroL z*3>FAVS88(#?YFBH_{rkx9VD6oE{6}f55z5LzWrKtSehkQ0_pmoP;ESt@5S~j&CJ|YQhoNt8vf^1p{mUMGxYC=oZ?D2VkRe_f>bynW0(~-Vrbq@ zTHBR9W)F%7 z`@WlCP_B&BjNbB#wcQIHykvi)^`{{XRf2`)<`36~QNYz ziP^C=v29K;v2EM7ZCexD<|Mh<`<%M>)~$VZ?T7o+PhI`cwebIaYkkWuesfQM=A%EF zD9#2+Km9qntk>$cms+~AmsE+AT54P@kR6#lQ4zhB)9sOqB2gVH@fP*s}u6()3pfR z#3T6xTc5T#13T@+FP^DhqbN(XXW!?inMZU!v%4K(f?Y(Xt^-iK*4(4=1JpVhDo#np zTa>kYXSbmfHSuAD$e|8Zl(fXZK^N;1_yxJVb?1U!BDe@4^o_qe_W@S>n466x&n0R; zc$v8%NV00;Y7)d&MCwoYM7EgdEAeu!px%Qq z^&Y;_6X;(f3O5;#)M?k!snLzItvgKCY5N$`VJ$O?sQ9W9|1d_Facu=|8HKH74}-eX zsy7yWe)~r@BOA-aHU097@cVLK`9Gd3|F2)bf7DNix;Yu!IDS1K|7A*3{iB4Vg8Hcg zWd${EN|g|;sHuqq731I70GGoGmxe7wMuZ-_i;S)=;li{kzjm7b8P4Ecle0Y%vG<(A z@}aQg=#m^mOLg%a<2n8Gp6NKvm+tfNe&GsY_`Dg+KXAqvJnY=!%iv|!+kpU0>P@N@ z6LTvllu_AbbQ+2g-r;jFh*nVRTAm}eLzuBgd zFPcMlONtdrk>_}mc)fAHck*(w|5Zplt)y2~{K1vR!TQBq#7C)$Vqu{d$Qs~um|(e7 zwtt6-p)@J8__Jt=!2x5H#!rauVwH{fk&upg5=Hl*i{fUL3jhNLW8{N~e~MoR42ZE( z>F&Cm#I&5Oq-fmPa!=hS7hKrxT7TG1j97yu;*oWhLd=V?OCRi_<~iy!7ou8Fu@RMiBVT>L0?*7A~A=}GN=42klxQt{FsTOv7_g`88?o8i5_#6 z1uH4n@nQ_dXVHgWL~JpJG4cMfqRuc=`kk~FG3NX^U@xruugzGiU&)V2ZiRf%$OCF| zCb8bzzz1h*+XR+I8RoDqB$*U0;1(3xqR}xMoR$>dAwh}J*(eT|(so*RL8O7^CIGGl ze1YzR3}c0iqc8m z2Q$$=JlU3sgouI!K}qaeJ1E{IF9B-9M4A*k(!_{c5T6H}bk$?J5jb1!mq^Y(Xxf3O z+{!A66;C+f`e}R!w5XFtV4P*>MnnSA9g&>zf_XWLY2cEQe5KCbryL`P z>2m}9)uPrPvyL|FnEfD8;|I7KIXBRRQq2-wfL*RT@ zT-&QA!uCL1v?1B(e#xv8xPf{Cc5%CnG_cKI_Dk@=a(s_O6Gs7PiHuL1gHN@gFTIYx z*CNd`+;%kJA*rj<(5z7l>XRR}`wk`76RM$u?3il6UuaRG&a`eVKtZk)ktoJJ%OU>& z0W66_jAQ&J_=W>PPp|tX0C=o7xtq44Y z-?6ML4phJuvau$7MT`_c%U#fzA_`b zI()jz8Xy_=%s@VLU;{vW{1``kho5~t%^-x6h3kCoSaI@Hg(7r`fK^U!`mW6@_O{DU zkDt2-lC0hlJw@V#m$Sa)q?LxR<+wU`zm}#e?Re0*7!i>hE)PQVTtdKo+*CDR8KL;9 z6cQ^s(Z~Hp@Q+N{O0Ub`^_3|tz8rP_=S<1_pY(kq#wPmCR{sMn_x{*@BwID}KBs#jN}3UezMeLO-%gS+L+29=3FwoC|ntsiPRu07D=wm%%^3xfYvJ0`~^L3}x!=KGCz zXGlo^`4=fx5O!H9Rb!k5JFD>4<^*Gn8X&hJmxETcSxTz1)B|J5wd)<5^%rx5Q5{a{ zh4zh($JxWWGQY~k7)!(qsgsbSej?68*=9jmlnkQEf`r=a&oEHKq%EY%?I=tA}< zG^{K2+t}`Mm6D9AzWk_E4;{zX^(53N<@${dBQ{@A!VA_fveip_i%Cpwr!~M*5uP%b z0R^p3PYf_H#Un0a>aThAaV6X(7sE18tGhczqI1A-1f3R*aP;^q?4dZ#|}+)VoP(h%e3n$5&EjcJx_=b03iV2Ny3>An?o( z;jM5o%Yp=#efe_F?|mycxS%yi@$czd!rq6IGnYtFqWy?;fQ!8o>6-tMt<_IRp1J6Y zcaBHaJa`^i>svA5*kjk{!xNssZdc+=L7^!T(3I|$2s9orMwg%-S=e3_C{xUp7eFrf z4Op(B=Lc_=UUHj|X$CK>OV;2&u{0E~1jpbPs95{Apn~&12^U3U7h?xUW8wb?tR*UI ze1!_?hYdziLaAOQ;fSI_F08r+Y6Db)DEJw2IqA@|9gp_ewo_56Z0PH0xlca_0joj? zb}|QwPlCs#jG$CHCc)v9YnSJxYm%qQuaDPzv>wu1eG#TYJ?;Ql{b##cJaMLZKMid~ zJ1zjY(i{oRtTvQdU&^o$RQQ~(d<<;-Tb#c!I1P*{R$E!$Qfn>Id6`Y>)3Pe&3b(M) zDswqJM<$%jg2?sw>6u!2>p8KonG$B+0ABA*=GN{yuact^NxfAf&BkGru_@LXtjFlS z>?C<{Y?7=aez{g^c^gsPol}XmEQhmcRxZb^CP!;8qIwg%WCKfe`mSoFHtHjvE^A2W zAzftIwleIhGxIj@Y&l@weVpFdEznXL+g^w`MaI>^rUgH?I<59Lco9R&^* zr?#g@yqfm<#eqtY(OE+}b)qq)uGt*66ze62<|tdxwxJLTKpeaI6er$^Bud53>JKf` z0J7xt__hhvUhO_t8fVWYy$$r_C_4+YdW+to6>tP}#0t%Q>m2>4C&U>^Eu?V?>hH15$T)hbzfM(r^xPNy6@;2xCK4^F%2WT>=4 zJw=pn0LPknp6ic8FZhh~+oOg}kz$bX9Q2Qf}x`k+Nkg{-ZBF zQN27>@0wyC6IYIPD`|h-t&n&E7<8iw4^-|Hbeh!(WZ7g$@*7^{ksvfb=7eN4)5j51*BSR(Lzf25cCVwJYdoJs)e2L7HjOc zPC&`!BVIs0Uc-nyk9;9kt}&$eCVp7UzSzAK_6@Pi!M@1yqUouIxZ=sxF>byoq)zZW zJ})71Y4IfEjtB7LpRGMY;bj}{7pVCDZ$X9Ne-eQ*`i@ROTO)H5b7P}_)!i2={dd)} zU8jd7CI-#ZRyKoe^CdR>M#n)%wbZZ@aIFVF?q4pQd~V}@Jv-o|=f(Wt&mTe>W5&w= zmL6e0wszHOq=jMq=iH#)&oBN{ZMQNG{Ov5(%WvDA;#n*MXM z%c66_jwqd;mf_%#88-E$wYa{uaQMW_gDct8Y@GjyN1LuasB}tGYklLe%D5QQ0Nk*C z;7?s8%RK=OtHuL%Qk!0iheg_tN@wTWyTKPP{VXD8^8`S$8{}T-S7 zZ)(n87`{Kp$Hq`lTDaGWds zEpZBgX`;Lef$1F$rK+6?#QW;(-`;lFSSGQf(xq^n8Se+wqGPo9#>@zHl}MW(wU;** zvhin?ofKK#*+#(2tt{Il1oxibR%}8_n z747h?0r|y6BWFBL4`(r%5;Vt%*EdQ#Cv3xwt%pl$#fk5i#oK%gd&bVCVH*7_?F08q z+`Gfw86vTVh=oTo7`TFYixKrsHo46NJzNG7baCFj_3NXTCG}+7^Bs~dvEpQt62bA1 zdhNO+WN}E-ToL1>i54Jjv%+biWY62nP_YEZ*c;+{A^hG&9FK>1eSR<}Pf)?sy)f?x z9$Y+BG&LYt2qCw^#2G}~;rr7b&T$Em4lm9FCookWjqP@kvfqT7aOnqT4g?)_fT(>qb;iD*9E)IzH475Dt-e7Vd228Q5Ad|L$5Sx*N~-98`S zJ-7gZp_+|IgxGU25GsPd5^oaPH+qYZ97(G?SdLf>bzX-ZZd0aNbOcNxGEIDx9yKJ})l_ZN$+uy;N{wT81BTyf zX=iZeso8|9Fx^{~)!HI#yI=02yV;w-U*~6)y-1qkG$T#&S`#CB#DlS!O~=|l}Q zTdB|La!+7E|7bL-$40hQL2dBQo6pXbY3_$=DxxP*N-*D+JFO}Jbu^47S3+)6!aR*wJ(j@x(kzz3{t}2-WjgP`MNdiT}0vuGGJVml8 zk={_e5_;n^nK+PKB(_0Y6*H6F%oc3=DhlUx65BzaflO^Ou7MW61Qef!t&tJkO1xVq zO$N%z8ij*qX4$3=&Jk2scpSS;lL`g^K|xm?r%feBOXuEZk!Az60ci62EYM^@C(nfO zJL`28M>w16L+MQ-rb%y?>Q(2g+}Z354~%>F_R^@V!jM4(50cyC>W3zsFo;5os|n{p zCYE`;mJotA4s(clEU8LrLe&vU@TQ&tqp#p`IVQp>bIR6Tvti;j5jrDpoFdalLIA(~ zh*pWQ!$ARcv;|C3zB%=;6Pw<&1|X7?9`l~l;!8l)a}E{^wV5B9wDkSOp%LM*45G(~ zc!V%#k`b2ZQ4`nVxvUuUJhj)rTp7U6L&bLpDD<-kIv z)CyWA8_B`L`Qoa5`}&`_P~88YxX@EGi`rt;Bf#$W<{r}*E(}+Qvq2V+{lvg)2}JtB zg^)n^xcwMmc%FT#VBU)u)3tq&FI=emPh6N>K=uz@ID;f|41y<+dzXl1A8kg!9a_~F zXnHIN@w7UBJG`D!9Ph|iq6MYQe*iOs)`CVs=1JW^F z_&jB>TB~bv_ZR2^-~8q9+W^xKr_zfJDx8`d!lE#w` z!pvJOG^)~)EUPET_VC3@VP~YCOD^6?$!C+41|-K6m4CUsFh|EWK6Bm7V{`TxTU z|IyFeI+{EE>x`zVrKF^W`r%>&DKz6I2#z$97XT(w8U`+cWGUFHu233wOoV%5HWErf zLA{n<+4=LQ_f0RxPp=vd+KUAH*SXY>kSV9X(B3DUh9}KW(6JIVG8CiSp4IERXIhpQ z@mrrS<`6$vy5RGW`v=vdS+Fe*97Xz938w^?8L73j-LWi#{hk`C(9d5KO+KQrYB`wNJayhW&Fnn|9xvGN zsQKs?pEb9K5mD5_#w5tNzj~8l>l~5Djwd`6pZu8SH5^~cbyWB}3cq`yxOgFp4Kais z`PJXanA(zro+FoHINbxcKglM6^qH2?{e$@7I;9b`{75npLG4gF#XR^AquiRbtkx9a zr@SAXG~N8=k#-ZqqS9yu6zP7!T)ZJ1cT*~^DH`#^or7I#12VZG z&SXj`)9*xvpE-3~Xh;#zL9tC%OKwX0FT~3X6&{n?hKI~N?_LAWcM5ozon`}>O@X+9 z5}v%VnJTs-4`(@vwR;v$VAL2`g_Uz^P!F6~ebOaxx$t#9uqwcQEuxM{S1?sR6xX#T zeyVwWihyf+n>q|3H-xKTJ6M7m4xwj6g1~Dge&`(~FLWV{AWq|OJxn112%%@(pAxr) zq(6<_hwZeH$;mGIRzy_UKMj ze`Kg`qV<;R<9`j14(kb{ogweGB&H>BtoE%vq3S)1ykewsHCqxt1lp2b_-9>mRB@G= z%GP?uTf_@MX;d%F4iABi!GPsj%^x}oa~W`0L=|cZ6EZLFyT5|F;Y#x*GRN`eG1b|@ zV?-TpY}B@s=rAC2poh6Bcw6nSwR@I$xk}NeM-Agmc}Ucy_+;{`6oK)IlMuI z*~Ryx9&n3I;e9w?U$?ToA`(C1^v&AtxPx6GT>t5RHM2Uzc>ZHOf%A^fZ)yeYlSro{1vAd3AH5>hF%H`zjy1@lJW^i zvfn$?xjH->6l9(N!#HhDdney}*5;A4hmIQW;<((8i@?;QOS~2Q2lq`DuniKm4Tvi9 za%HUhv#=GavruiUqS^AK=tH1jp<))XKZB`%X|2I(QF5T!G(Wev6~9hxlHcBgTY+>pR6#lKV)?mt|0!KF|I=SY0@cG5sg#3s*89%Y)#E_Z0bL@QR#0;Ve+sXF8oa`ojaJpAoi zl)AL*R;`p)K>WBlMzji=f1(?bD0}ty|d3LjUAo%{PV?|;srEe`s%Vt;r<<> z{f|0rC3BB|U6)k;OUI&HHHyEuMI(eNoMDhgHdEraP^M(}(y&l816AmeO0EeAG~&3l znOTaC;^*dn?Tgs6{OMMc_YXO%{xjn9$MDU@AGY`anX`ZBSzJ#UTYLoFoiBG+TfZO~ zVSpk8hu@ET+KJcflj&fIFL(IJ$-oOlpi)eApHdr+hmqF_o?}fsgEDFBjYWT`l4d-C zd-b^BIH~lcg&;1a-V(707|n@Wts-7a_)g?bDg#vLjnMj)ovn@alfJt~3*SXlr6yHq zXtc_!cK8^Jbz?C&c~9oD)z`2$Gu5YPN)@1thnvIa?pJj%438yghD;t0##xOd*~r*I z87*{>YZ(jg*j47v7Z|EMtaNC~lNV7+)ZNTGuC_XvMDWzRNKRxcHlQ9X?h0teNTIAD#S$sceZ zgo~#*I@5g1VD;RKfsuz&go;xOn8DKqx_Jx(6fDz~#y23;e?7#(B z(o`=J!{TgXAs;FV!2t8LpV(3?<&`>bUo zR|dZhNpvCsZR+PiV-IrA-rz55$OH>2s^t4PZR|1M2$W;&z}2`Sx|mrj&*vdEP`D!U z0tB^<=TZU~sV9(LZVCJ$^j+wzD6+iqpk8MiFb`G!tzNhHs1)RR9&`} zh=!(Z47;Q$?uEfUnD)XQY+Ba(2a~4OcCIrtFFv6!t4$m^*CuA}C(Me3A^jY$D4R;m z6vvM>!UFLC(sc=<;dRlkCDQ1Ysg`p+hfY+aoO%O2k7LZN@7f_B5k=n{;)e)+;J%`5 znr?repWdd3x8+8Bf?tn%uiC5G<2>gcGKY(q#CXz$aZhYPL8(%PVl9Xjm#V8-H;u5WJ8l_)5r(5$#QIJ>a-cdlP0|GeV~T+@wR z)B|Z_vv`9_mn*Qw15_ZA&!huVT#PytcD%&*lcIh4 zJ^IXvHTQ}4@BiQrZ+S~X)n6?;_rI0+ss2X}_z&P<^93IMufqU|8qj*mi>)71Iws>l z<^UN&8~{|B4EqlmGBCyg5F`m-u$aO=Qmm05%qT1<=#8q@Yi-Lqy@4UHDzn5EIhv)F zU*`Z`b(5DTO)a0i>&wCKx*QLujF5v)9a|kQH9ih_K3_gQH@qG?kK{m7NUE-L@VXuI z;kuu$Zy;Zu^C2~!35#=nr8Ml%M$;+KXeHj>5K-tR@n_2Y802j(LAlG!+oVE=YSGeMZ>BZZS$D|wHA5eYEB*c4t!+B_ewQ9wzB9nyPGZcxp6y)|+xGJI#&T4mXw_ zje(YPp12P?5}aM~KNx6!Qs}XYwF_l56XQZR0`6S`Ue|x)@e!HJH?XYK)2|RDUAYt^ zUBM57nN)>5+Ezn9g7dTsvt`b1>JlrUL@m)mKLrr?ZqBT^wNQw?Iri5!b=JC-xO#KW zq5Z*AlHx#aYjUe`JQ~x>rehDk6Y}o;(BoZ`BQuV4h+A3(&XCN0Z0gB9Gf#21pF2g2 zvGg9UnXD7p$p*3Eu+Wd;hXgzoXb_qC^RU12QyEK2H&D$bva^)atT9^{Yd}OsrmBQ7 zer^da@(Aa4Ie{2R#pPEEG|+X3_W&NBAfJ$9fsqlRW*s~W+3Y;c6qw;0!}NfsVD8o0 z<4%;I3>K8|=>oQFH^Zm%6_ z64pI{8`{pslo2^H0L!f0|2-G#Vp8&f)g{=oWN5yjm}LP2fn^}WU;hkvAz8uK#!h_0 z^qLThGB2)(l$^Yo9wK)72S2P@@wf^~v}t^>OQv^F>GC{$2w4-?N`V^h>O8A5s~+sO zl)RzXc^&3b(BtbKK-(liVQxslK~eUn$$?HF=hJATD!KZg`L;> z<&1q?C9fGx;&k$(Ciu859*l{nk}nu1F=Yl@awwEzHkNxc!1(sLYIaqcUw*@u_q#iL zGy5ExGc9i{YalNP)2!h`-S;IxbrUNaDob{NO6x{7JAgdbC zk4x%-yU^$5rkDohFo-paspnB*9`Se|!^x?3G9rg#5f!W)A@3o0h~}UtD>Js0;{rg>q=C^%nx5IEpFy>8xm=K?ah1y3j_!8Pk?7822TLAMZ-5f1yba3-I#RVMGBg5}=8}MyWrZ>E+PN=fx zCuL@wLLZX9>xxRdvo+&0CNgitNr(j6xz)p8^4I@Xj3fw;C8v;alX;03R+)+>D+SQj z0<9?4)$`IxXy07a-M()%T%-RIiNbX4pw%ArMdmR!r^J#1qn#!3phH4ZkiHL+&0a0wfywdayRH1+mf^Ol)ua*@!Ee??s{$c=a9 zwuMdjOOdvldRbde|21@@N>6T+o~3O(Ihl@~ZtNf@z|Jn-rb4uVbzz7MD7cg98+e(- zYD=Is#R@D-%8w7jCcQ{tORmpw0egE@4}ntl&RG}5J{ZUkr9Z5yi+E6mzGC_m^d+&^ zGHfE3%H&BuUn5oPWI}x1qvarzkZsqLS)sL5tn-wsiT{C~z-BTdxI=EApyVhvtXd`{ zbCpPTJ}_$o?N!4KC|R!#i8v#L8Sne4 zB;gxx#qP@<(wx81fTdPk9E@`UWk+akmvDXC%_^YyfCGQbgZ6XfUgpZhoTZDEn`t2w zbx$m^cz%>e?9D_+)E_0X>e~#U#wh;SK(9#z-N(oc9emsV`o90kpAJI#IMl*ozkB$> zzbc`36iF+)MwTG$lry_FmqneL$Y8F&SzYB!93SQ<(dJpw+K=8R7UejS3&SduKei4% zj4G36iavu>-Ocm_x7kv5CAK*udKf1H3*WHBZWk3SpCjJ()k|9+98EH@W)1>`ln8?A zQ~2R~y-}-#?P_$+W-K%LO>^CM31MJ?*^X7yz4oirx;)3I!D7E`793g@j?=WfK)9^n zPV?Lr&n59$MR?`uR$t0d3C&fn8ZmZaNM( zik`L29#D7Q^jxCm_pLHyH@LDKZ9&`e==P^e_PblsVLltCDUvtSWP<`}Lj99$OLylt{?2ranQD<`B@ciEfPny!bBE>ATn+by7-^=9}S z%=T$YQ-_Xu4a=uvSiUxxUk?hO`eTo{6i-?3g)U)7)_OW=_`dEjO}8STNIyni$TUUL zza+u5Y~@6KbA<-fg2StZ_Xp!ang46HrqPBBMi*%(%CC_&}E@@qfUpq4lvm(;x23Nx;y7U#72fQf+xo} zf9(YD7iiLV$Q-KDz1Bgi)f^m#^4mn;;*v!ZYPF-ejxUM3VY2O8$ZC(ebI-nV@Q)=4 zR{V-Cw_}SwRJ?(Z^dOnulf41^niG3?q*kSK&Jc;>9PR&wtdxnVO)G0pFi_yCpEW@0 zl4g)(k)F54vTC#F&U<^LeW&xhdXN$$m-NEPr*NbjV_u4~qR>myl_P?89S6C+Yx#(j z4r_&9^M;AkKN4$Yhuiul{|wrJ6QvJodZ2RssV|c-Kj+cO*8f%Vr3Mx89L#zdO83-6 zu9ioTyNzkz;a_$UQfNOyh;K|~(0qC|cJUHIyY-u%c@9H;a#a3GUrcTU96T2QU3l!i z47zVqpvlUxiwwA`lq9BycoTmD0t?j);>onVOi-HZ$((;iGbFs2j z!#E1hBCa?U3NFh8YN|<5)EGm|dN~`)SorpgYR{aif&WrkQL$bHesHkIWlttFpC;r1 zC#D`t0sch|VDEMJ-C-ScLW2uds>4~>A!h}%Zy)(8(TfQoxg@8l9Br{RAPcAent^oW zwt0z?jChs*x14Eh?L& zk%F!@mMl~a^InM2&e`-SUYJzO@dpCe=vMOn1ZA#Wtd#%pvutR$t90S8S-R}KSmVc? zdE8@J>vYp>Czzh`J8FQusdGWBwnW(BS?ho9e1!Ta!Rzx}D;8~fOi3x=%XRUFD|Mzi zoELL1P}7Hpm5|J;zDwCE)ZFSdSTv1;x$NhQVAB!v1rBNC$Uo+<87h|SjdnHjKmq*p!>FV7%Z&O##b`L4m)CT$ z+|Xmm-yn}~@498>S1e^V;TQvv)*Gn#Zn!y{cC57{`)8-xYR0r#m)xvob)4{}%Xl<< z)9bkPL!souqSU+ngtolmU&f4qc}jfS-e&V&SF>JM^WG;3)h)TN^Fzjd7zmWGw=rMF zh_Jjfc*PP+LOYBJ+*{QvfoEmPR3{}2s-cDIS-rsuZ2Vj$1A0cse8@B5!S;`1Qt)a~ z%))FJzK^zRzv7y@hcWR4=~ZNB*icWoEu6kbwtdGqk!?7xV$D`1Bl!k&A&t>O4JY+- zn5Dpiu0NUmO%-jjih(Wed-RfFAK39r6`O=hG4O9Mp!@+)j$y2R5laBLShOWq2f*c< zt(j}uT=dQDRyK--4m=RnNnZuFi>SudO~KZPo}a4cp>zs4qIPj9L%tK^za7{e)5I1w zBX+6wHDiOnVxyi}m&~m*N&gIXfAyeUU{DpKm%)r{(`Ma90@p{kxbV{Qh2c#rv9e=_ zFD2oM&XMv3g4?kJz^|#6_=QMhv!@~)R^2innDhRsnw6U3N2Q2Ueu?#k`|EuTc8^T#RnWjGnXhH6(LfL-C=BKV{z-Wn?jDgN(4zqv^7>ok zolwCiq(q=E#~Zcql}KippdS!t-}*u7x=l54pi(X9gDriZZ?=>TEcZ|?cF||cl2_}X zrLA?%#WjAUXO%zFZ-hmDJF%lW?<8&0u9b-xX*d~(-)A=y8X*#TRfd_PZ--AyaG@wT zd-!J3sSh?}Z1G<1bYbaqadv&Ym1AjJfW{MV<>-h7h%U>Kv`-QLsO?#Ds|4b)sMIY< zYC|gE5{_`aT}V|3sT%yozGCTi<1Xx$fGGO#E_x*Bnez$pdI!qrdj@^%Ev&l6P1CDg z%XjE-q~NyF8w1hrmF!>?dYDr=c{BU;qjYLU-YHO2A`z;(3&E3V(9*<}&fctW!<9Hy zm&ePbGUsm8seeY$Vg?P4>%-SYXuH8NkYl@>yP+4mO{51E$Fs$B;LE?UP+hcJT@)I+ zFzNeMoT2tdovMLXD9FBlJFN~FE)lCz`0Ztg4imv;&Yn>8$a=(z<4_1UU6&`jQX`*a zdOHG6jXBCT%w)MSOq$OGtbv?ft-a{2DU0~S=>nk<&oZKU$6ps^8fR?ORKDkJ8e?_05oPjg50OT-`lgp%HG!14JY2?mSL+J2JAs7V{_y!wSYShRjQkjJ~PKK z5*u5@TbEgN=2X?yJ#ckMyo84JoQxT;Z9DRuOogJdHm?>+I{(ngHG)#@fI)~%Z;$R` z!fsr^5bDZou8R|H+@n_+>W>%|$BYlgjF0X$<&CP3=%-}Kk{Q2Rq|&SyI!dfG2Ky{* z_-n)MP!KxS#jtYDz!8N#!#%{WHW>PjRatIU%B^5|Tv4b2BoI+ZoX$`>Dxr0nG1G;O z?EhW#w=Ypux!iwHuhq0>gGD#*`_Fy9U#Z5=$#zXQ)TfclGe%xm(yO}WUO=vf2=Yb8 zOs9T94wKz*x71r|rbx1+{d;WCJ2I8?x%-5@O1H#2usd7#w7vO}_arB;0IC(iIoCY4 z8`2lUIRUhT%pS`}v}aPE!j(ot#9C_pa0FmdI>ky}uDDe{t!C7;46z(bgh<7T^AikNk3< zes?msHg0^eRKlzvgZN1V@ok9&8qk$yV8->xmR{i{GMHWn^FbRpbf&avt^)kF_X)g7a-mw33 z`#sQprRe*mrm;VSY8=_AmJ?d7N97(ktzK$p&6LJ5?ob}2Jh2ah8#J7Al~A&-&Kac> z)?#B(2N!plEbc%ob+)1Gra_}$Jk}~di^3oe{EjRPU%=Tyz|a7gXX@Vu_tFftaZ9u2 z>6PH2G2iI~mSFo_UM}WOJfZY+wkGm79scD`N=m1+>^rL&@2DlXpy@^Kh@yw!7=gB5 zqrY069BvmksNb0(@OYgn6<-h?kj3C7c@xr~qW6mf|0n@qQ|h;wP5TYA!g(F(ZznZn z*aZTR9r24&om2FuhPh1mKo3DPEZOzCS}}npBuVKQ292u$F7;UH69+3cRRi$#;7s*s z?GuYFeOCRAhngFDRsDE}9vikcLxOk6UPBxHM-zlm>6vbm=Y3};Py)=&dlV*^KFqGW zc=ZS*hlN5cdws^2Nb!@Mc_SS{G91;)vo(?DYXjPzXkDV{o^bIu7X!sZ3m2+Q$VkLm zafxg)DBM>AaqK2FZ$2Zd5L5aMK5DaKAXmGdR$O-U9}!o3kOdk0f|B=tXFi@WeV6x8 zr;s2DrSVWdo{ESOlBPbTA2Ur}!>5)yxDLVA?$Li4v7Biw3_lNyf4j;XC@%2#<%lu+ zGCrw*^T+}I(${X=1*bLCX0L9j_G8wg**`c4cpnDK-Xm-(>n0mvyrJg?LGS?;E-A+z z65TJ5`jEvPx_wZ2WmFxZ5+12ah;7ffQ95Vo@cRxR!78omS2}RKNow6ZGB_U*ki?Z3 zsa15KrU|Z%V~5W_AZx&v44me^g_uakWah|U=s=sFT*oADHjHwIoMO2W33ta}Pj}6q z?||exQ? z3lPtH zsGKJ5=Y!O~>&#XOTKD@u_X^ex1dUuVK|ua8{5y@8{YXA3QpsH`8X5?wVg=q`ByIL7r}XMGp0s}s zVh}8-r30Y?)WU3Zy*FE@90Y9K7?VZ{D7P-~1xy`+FbpuLPZ zQlCr$Z9T3l=Owe5%1#pIZmai=6sEC0T4cvriYin8Oc%}gT;e^wwg#`B#F168Sx6aW zLV-dJ4cdAcR*^L?)A;R8srneaDRA5g1M7U>{W|=6=7`SvYBKm!!CQy=~O7!bqjI$j&t}u$ueKT7|jq%h#aUN#wycQAR`B+hz z;3&+@2*}fDAyK+x^#S21alpKfH@_1`WxC!mFAsFkzG$)|bvx7dAd&KinO3sTgJ?`$ zopo)EF{XQVE^;(POIq7}8>wcQfwsS#*{)*Ntj;?x`e9v;NUxv}h-%WrbXAYS%o1`u z+#~anYpxy$u`&e|5Dg?X_bWu8CpWesUO%qk8g7Kmu12eK$NOhMhI%z{oX~p_!{gvm zEcJ45ynTyH(E6m+}2BphlGP5!uef$a#gLAqn@~zyS#Hy9TXGypF;S zNW8RBX}tN*uz))RTvJ>(o8}->tDD%HAblhZ#bib0lc7{%Z?kQeM( zdg(Tz>?ryS0@?$fCDxkarg((%+Zm#bEWBRV)ZZf*A2v9ZtPo99r+hpbq)V({_<${Q zY_i=raGu?LyuEr)p+OdrWdJdpayOECE>vhc2Y%JqC*$+zYl#4%##}I-y z4}4y|C?h7<<@`}f6ZmOA_V!6~>A#bb^88Am@G)x4KVMS~?nf*g7@Xej=uY z-srFR5n%3zIgYdj`gG%40P;^ZMlJ+Eo2%n2-~odI?BP~lk;cl zD3|Thm$4O@oObBI4dQiPBIs|c1%zRzJG}ZH*|K|&QjQ6Wc9^R`FNIj&IhmLo7re}z z#ykA!-=2YGX7TIza**24@d(i#?ZqBI-dCOGiRt!erzG8gL+;u!3en-br^wk< z$VtXvu{+7M-6hDXMhymurj?R2q}nD>nfTe5Iw{`aVkLJ&XZclmX3JAO^6oBK&fl897!$Wvv>6+<^+SYMocd?b_&C^|HCl_V zkLpDo^UbExgUTup?47!c=0SfSZG1UJh7SX*FQEaq&yf*r`W9dmJ21j48eXF_GK+}D zzZ1g)a!vqzkFP65rBT>HbzG&k-#II7FfGKG7HNf#v=ulSot+hE%o^Slbf(k8K$@uz zQN5jOGKA4ywJEs_pe5(kz(+MzruXZeh8s7LdKnQL&p0Jjk>c0zTp}rSlEZ0e$^Rfp6l@oerNFnj>X>Y?n85xD(kwM{L@MvD3zNtHWt zRXwXvehLA-{Jq5wsC(tCYmqW-!_2GNY0A4B39>1Ikli^rb4pI_;}X8NWw7!Y@`Sb8 zRk3+~Ys@Cx1ie~ddhrzZeS9>0YSURZQp`iZE>oDErzn{mPJpA^A%r^jzSpMyzX(-P*GW6{2Tn03*jF{&R<^5 z1yVlvp_hk;7Kk5-+O;*R{6?NUu=>gMh*}~6T^)G$;1ssG@gK)@qOSN(`F@8+-ffq~ ziGtWzksr@GHS5F$$yICyH{^-mKnp>5qrS5)#abgMqRQdt&i3b{-0)l{)En2n@*j8+ zQa2>#*+F^xridctm)WPinaPBdNv7SE!QPYn?z%Et^XC9Ic+HOv@I8+o;0*2|P@RyZ z`Op%2NK>(kpa|Y8op6KVdA$L6jxZ|H?cbptSyk0?dLN+BmOE9i0ueYllsd* zdB(ouMRmPbh>Ig&wsW_tfSW(TE#V*9Y_L8|w;^XfDQ8&06;f?k+)1*z$1lh04ypLs za)lCrENQ#q3fcJ9*CkDo{r6+swP17Z66f;8u-x*GVCKF8(%qU;@` zEB*Fm;qKTrJM0cRwr$(CZFHQKtk||~+qP}n>EO-(?DKxP_wIe}9b(evVn9r=5 zHLL391Nqcyy?#)-?n_S4g%qF*eZji>!I|(Lp!Tlb`nZ z%G3<@;pCYc>@t_1te{TcH2^OAl`bcNZl0Xk9y!CJt9LZTOpu>D^qSeTJE zGvcWhB)y1ebyR=q<7=%t>Fkw9t-1sDm0X3Bmbt}Ebjzy?O{hXtgR6NETIfFxhUjY`;WL|O)>GjJOESlJw;2qilQj+da;y&+Rx3B_qk*j$QO=t+JFCUWHlz$H#Aah`^73vjZ;5aZC4F6?3g*nP{@xBdH61Q5&w(PS$SvxJSF=|nBxnUYVOnq%<6&edIe5z29d&8{kMw z1Two~EcdhA7v30bW8hIc=lr9KkFyQ%Se6ii+2FOQg8pBcl>+D znSi^Kv8;oUv4ga}gXO0O{!SCEe2H) z(zpJZgssq8aP9DeN+4W;e$~1J6?YQ(jyUmFP9WN?dfn}wgG>LasU#> zz@8G6`aaXX;QI2eJQ97;KwfbUS}#jXcTcQZ2PwhUw7tksZDbvh7brvWI#hGcq&(l=TGSEaq4ZyqX#@0m zZl$t*G;fIa@N=Vq+OgaoG z>Lgj>QXIlmSv$~vXi?M@*Ao%HpdK~d$FSw9>-Oe49Z516VcrBExg4!=8*UGu6=;kx zihxQgCQWnafjvHUR}}A){sa3Bagi}R%qD30sZRwvqBzST71(pwrGw2Kd5(@A= zY_Kr%kutkV*n|7{Bo2zz?t#4tGS0KVhqh+elkyjL8LTlAh5f|gQKgJCbr@=$%*!k7 zi5tucGdd?x$4!ec2yGHg^C^sv+{XRoHSE^1^OLuJVXRR=#q^rqGq1VFaTL^68*W)Rz$zb z#te-RF&QP<8L#lT<5*x3UP|yYcXnp!#*s>uvG(ISUaKYl`Q^$V6S;031k%2cnJV;T9E2BSGmv`7O zxlNh0;PyI9f%* zTr-rWN$0p`YYNoN^PBzevIPBm3C&X^#J?t-g{o6)A*!HIX7ZxiIH9gNLE%Jg1pphu zzf^*+1m`RHG9sRBiS2&+V0w5x zg6N_70B<}QWt67$5HpS8z9=o%)q|EexVtT{KHJVH2(5YW_iW$J{$={`MS!K0 zovKkL+@Es)9$)0m3pqJH4PMVNc!iuPP$>05MUEJD^{TW0bPUIYI3LBanjYjIMlf2w zM%gE8H8|-eb6hFGFGzH`@_D&U2^_h0ey7b#aG;%3e#PB|2j0+q*UN(BD_UYB zce~CmpLl{6z{!-q)W>w5+ASl<@1on3Wyku~bf&Xs1--@e0xfCTAMuQ{>_oEM$fQ!w5JSEMvQzsclvKZM$XCwOiKtA&pgArqa6MjKSp=JMN5#;X9}m1Bsj{ft*1#6JH$SG z?go-eR2zp%t^WcBx9#}hPlQVWEVft1rVXY=j*mYL{1g@Z)3e6>4Ty}#!WNlr|J5vv zKwXTef0JOH1@{Lt{aMw}Xunl9fh)O9?hA)TzMy5db2BaeqSjpAZ2cNzh4`HJ(mc6z zlzDIdZ1!k85J4sPNi3;jwQr{Gdn<(UQo(zw7k@cwVTSVg5s!q!y`9_u>}0epVE$jB zl`AqCffo)x=w16Yx{7z~ZhY9yZH zw21#wmr@uqS4K09+1swCHZ&)eC7x(zBw>ZN{K2PbmXkvbZEUV+F*+hB2EZTAxd0tw ze*>3u+xCMbaNDkdM1bFNWll5}X8Nw#>U!zgb?{V?x7GDD#`+z&T|_io-J9GO2ScEs z7lIsuN}f9=$qsbqD%b}4*Xak^(}c?2e3-WbdHayy1Az&nI_+?{6OLNN+9eSoSg!v$Lha(dw%#4?Efr+MY~O$)m8EpOxub@ z8jX}Snu|Lr`INRjFUg*ZiVwVg$4 ze!SOiu>ro0k6a+qh9lT=95uj6z`xenLicdlO+{d9&ouxu+4QUGMEb_BjbY4CCDW?j z7)~+kSCWa7r$QP9iZHSULPk6tN*C%*_r|>lgG!`9j=YfAM(t!=A~#Vw0u}~itoKA? z)2zz8^lE;6Ab9|RMr~yxr?*@hYOInFY3&*vysJ_#A1K!er}$5ZLa{1NOSW{KJUt7W z74mRP+)&s}6V0VtQRg8_hk4FDP-d?X6PXkCq&EeaR!w_-W)^gjW7XTEa6~x> zO$vpUIYSk5nYssYNdaF_Ja`akyr|Vc4(2$gizwK{)0|Cp02AnR%%dlY!gXj~e2L?CQ#>tg7OUaih z=?jLDbf^6i#zPS)iMVM*B>k1UAkN$&38s!Hu)gk^5R!%DMR52dmLve z?UHM)g^tYd!K-vQEsyWkHZt{Na(#doU6jT$nH`2tr9JtC!*Dqp<47j7!r-&w+kDtU z^B^{?1%^);Uh^RMkOMn za7{KnMpx2uRUPn{c5==y4tu|u5#B!%ZPpMV>Lt7J@J&gJ5%nHOPGPqA`#nCa`#IU< zWg*XN^tXh|q?sReT|0|~n|a`NS~|s6r!D?zZi{+;(wpDgl4(s@UH{H*kNVL>q>Bn+ z3C<%`rlEhw7uX!Yh2HhU^sPQ>L+D4Gmt&M|ebW*8J-Mf-%jm`}aeP0qe-hGhVwLu_ zIBe6W2W-xXCX_5~4tp+5ZqTJB#!PEqW0P2fY_blO5&=JC?QtLd?HQEtc^=3pOY7N> zt|$3)qt~sl5DJw0(Oz<(KCd5Q%s3nO3sxfJ%QtV$9Zy6e@F+2brMCP60B4+v%O3Qu zNm`6htts>cAO}}1E_9R?=|!FS2XZaMxSXB?S{Tdm^>tK&KaN8eZZ87h(mDN?Hf zm1j$iEnHmo8SiCq^Wmp2tnsz0SxeC5iI@|#<(7eS(sVkWR(~rvnEO?$hO}iFlBeH# zi&&0(4Y}L6FSC96>9%hV^1YqY(q6Lwn+_RX)w?fS zVHw*Yg$?z3f>B*k&M<7WcPBrgx^`D6JXJ8&O^3W;b(uvq>`$%$ZMSv{JML5ln9Sx0 zN;EGZ!AStQ23Frt8I}(5hE|5Rm7^1SG^xDDT|noivRtpxw`XRuXI2oITw-&M2ldmsOoiO( z)T^4dn+~(iv+aErL)-5GX+ckJ|5U%gQ?)z^P%e;fH8;s$S3zvx^;4uj2I^w2d?UBz z&y2i(CB{7Py6VuIv#b!uQ{*x!q=>w`#3wE z>ik~f<3c_yqi1*zu_{iRXo1Z=JnbJkGvs*N_yXRweR=%R_rerAljRVFb1CLW_%^wzQS}hXv?cscj^<@ zO0x5Xi6RR)3hcqath0zwxQ`*T?b5|4YD(2}L+TatU1ZkPU@}H1=4g1GBMALerMREc zP04#whO4zLvn=h9W`V51;7$5=Y4?ZJ)8jKJ#MG-Y1R@%~EKT`>iqT$Y$F2oimq8oi zd2rrh4m}2!eQ{G&X~VjvqtP})hBuL0v6IJ}t6!+rPs=qP-Av7@VUO)+0%P^46PGR9 z0@CSEV>akSkha@$qa|kAwO*;x97jy-I=Z!OB~zufZjtRK2Xw4S;Fa{- z`PeQD7is6}vg;!B(4Z{4&E6=sSfP<#kWmbup5*Rnf)^AM)|&|Cp^8z6xS4Gy9B-?* zQVwQ|9h%D${h40ubY-b}>1?TM8)jdq&=8Q6D{hw4@|TFzi{NJ7?da}?s|cQ(1W@ap z>R#-1@w)a~B^3~s);eXtvr~;bAnCb>wuiDGphLzqiK2Y;hjiS~M;IQ(qUOwQa}P>DzO|C2K;%AlfiA$_+=yxvSi7fn)qg50Ke3V>j!rSzI zvrxx2towrkFjVTZC*m)%-kj%E#*?>em$EM_r+3Nq9Rw zmMWK)B*njt(H;Rg)^Mo4UneMK{lH+xhIzPo>4q>o@#AH_-p+S^1l2tVUm2miK?WL;d%;@-JP~{A*n0f9az9R!+uW@95c1xt}+U!Eg_hCRf%H%$!EZP81OT5PIrg(p-z`8li;S+G(?{-QhC4o zj$!If>&aVp%6W^i{b_1z{d+YcuSD|nHsLTc=J zYHW;p6l`*$iAaEQNH{jrPVD&DLvqmXh&+9o0P0RPL`-ye9f&7GozyY^J16|gVI%%N z##vwSRN67WDzQ7|6rQpjOPopzH<_HtTJE_Ht9bNz`=EM8^__VqDwv5p%!n}&{mr`3 zAo;RgczgHt)JAyQO=k4WCz-#T5jM5`pS+#{euEb{F$aXX!QAN60oe zDaRx0wb~-=D^S)SLb-R~4g zMAS{7umHh(7BQE+r-Up@%btPbFW0yAMYh;E=Q7qjx@u-L4ufW!sNRp?t^9v#%~AOx ze)Ur$;0$u-Ih_R3AE6$Mokk11*PlcL))McasW=YYlP_-VU9S5&#-Mn1&@(H;_4!ga zIb+~zJ1(|ZRr;OWH#8T%JZjkr`IGqfbYs0N7s7sq9LAwf*>MLoLP7JCn~C%-p)*A3 zQlvOKM4S6W?5lE_M(!&{Ys>2fn!EZ;G8XlM_AePfo&K)Ix+YFW62f;q+=!*fq_Emj zs`Uid8Y01pFVxL(o%7__9siAX!B}~a(pPCoErvWj6W$)lbG~pRe?C`(%Z@*ELxB(O zCDeDvq0{Y*PrLh7@ktu$u#(O)8XspGEI-}VokvqPYaB0(0jtfg5pGF)@(iIvuFla3 zP<8Txt)jfQJ&1e%?JC zyW!g&Kl^2OP)umfzRAh()CQr{O>XV(3)cy0H&k+Sh;R9yK3-`kE;lwZ3V83mp31z? zL8I5U%tSN>dlYmoqFD9?+fR{EG`t!ILG+Po(t0GGW9KoL=-j;J@=pg|$gVCP=;*~u zB!<~w8=qmPUVLmT^e!b?^Kc`#TR6z`s$%1uZk&TVZ5?VJFgwiD3@Z!j*`j-P^byId zYAk>VW-w4?o=umC=s2IuR&z5Sx-ABQm%tg%r5nE9U-$9v^u1Y`C2;Lx3YX<$W?k&C z1&6#0N!<;N(>#Wdoh+ZN_l+C>{bdRo>IgP}u$G;O+_jU1rI)6Um}}m@N|?UK;{_L0 zg9+^UW|)d)|CsS&OnQ4o?CyeHB5dZ~Ah!NYJo_>!Y_yo&L^9Aw2<>!7a!6E9pNt^D zJ*-T>aG7=qCp97_pwujpC+IiBJ8OjhSD-V_=4nH)(w1%}rkODsh?rknVs&d>?@C%* z;vJyTDX1y%-Vk3}`KFv6Dw_TbhK(nZdhWCb6@f=?I^^{;Q*VD`-SHdYk=W7m4}_Tm z46bg)KCUGZU>_c|43SeK5*t;XPG%@7=38x8#WkNq-%Mce&`VkK!4;h5%;wL4Y#2B# z8S*>U826w1R0q6x;aY+WbWPzlkzgT+4o%mIqgU#Ioj1f&*W;!n=Y;|xik*DVx6vAS zdKoa)sZZ;IBpEZ0>mq`1ri;gx_f>BcCiq#PR+#_=&qZB63cOBpI56x=)1>T`Hi^plkc%VU#?7k)c@3 zL46K1nip9OuZ1uAKF!PxQ`%HBEotV~lfNTEC3x^#BL&3tAb(n~wvjAXd!S1xO;$8% zGxR&b>h0{2?OrEVGJ!G^z2PPA*!)SfRSTe%%t{y5m-ci;rvM}?@3zwZgRAZt{M9Mr z<%xLV2}NetIDLqU?j<(Ptkunh_8ncpV0owPp3x@|(;q78xu0BfQ&gjG#5dc}lzY(o z7L6S1sf6zGo!?t5d@Y6Se7U%6DJ95ONK6Wne6bH6!p@f{{S8tH4QC6+Z2e>ot4dyJ zsU;AybQrh+BC1W)X6XIB?ZUh4T%wa!U)A|wiq)(*K}Gq=4%decX0)2DZVa>-{B zpVyfD6Nvo^d$>VcGU)m%Uianu{T%bi^PE&7n`#_S0Q7CgoT=Pp7gkv1u+u1bt|d{D zFubW^S>R=8f7P{-n#~poB8X!>d7dC4X{HTwl&o@T7)Fb~rdx6AZOF{&=msv&;rGPk z2Y%Gp(bFE34b8%2Tlzn1>o1y@9eo>JhA*vxO;^DNC(r}4D9B?op=ui9V}H#m0c700 za>5u#UcbFAb^k%&;-u6k+%E>b@gHv_IsPq!{y!tItbwDk!&kTPe?zbutXJBC^CzMD z?9Y)b!Wt6J$+_sHJW(l-*bWlQ?S5@kyVL6Q3vh%a)_J zslCiIOrO8w=HJfDLxNFxkOsYvdjpwdB^?#|7822||^hbGi%JHxu-S}=_+g|RzHCzir)7<6I|&uZV5*$k}*_pXHdZDD(Op-x=$Un=1~XTq;`vI6(BI=J3^=s&=DqZbGz z?nul(lv4>|Z@R?q5|KWIQnMuPu4dmtn0Vt3c@MIi@?Tn*Z2w-vz9j|gzE-18!N7Ih z?sVNm!hH?}IQG6S39wNxcHL|@2{>*F>T!p<#o`fA#tz)!uroWD?~}(DMJQ3DY?( zKHzh80Fpcn0svwrOvXqq7}U0xVucWABqTA%(ei}S2#9yc4>d;IzJ@7ArJcVqSW|bg zNzg~Cf8j5(r!~T?DKVs&OB*SOLRp&hh{W9TZ1EFZgE5kgvmWTrvUsYPB@c-OB1$tz zD`$>RJaT>IKkfDJ&=Mt-o({3bY7(}q7%}%^`t`hJ$~# zxD&YCNwCDwF2lrnOr++HHuhK+w4&NyPaZ%ajzj={nDKJG^ zMx0TywIIQ+*(S@upifbpTX8eTM&L$ojFM6j8W3S%7nFj8AL@RBjIn_r5{JY=K!b#q zAD3=6MM=Rc*;UlmLITc-jIkzwYbUg#IxcCHR|1vsw>v34jBbRNmp2MwR$VtoRw3RwDzeZhJeZRS zFRnkDff&1wCu`a_#;?JgCMifU(CCOzENo^?3Xm5B&~JQO93Q~_HE0JLd#ZI*JYgb}qQjDBK$gJIL`H{k11K3P-TP(Q+Vx+DQlWC$LOK!did)}Z(Jl$zq z{~@2KD$ruGdh6n7j;hLmN5(xeqom{xqCYd9w63w!El#8hgO7YK85ezMV*XscPzNSB zJU6>OscJ}bo;wnFP^|SGh<74$E<3;=qDYC(PK=OeNcf0KGcm??(@c*AU@d?U4RKGx zztO@y->I%pCQ`zcTtXO{HCNFtGFb0TE*Ac)GWN6E`FPHr+h!YB6&I8wGcr7|snAGIxy@46euQIT7KQ?XcrFyy2`qVzq|0p=7fw>ola=R3ZyAMNq8 zBv<)f_>Wq9d`()7CJ?;g1myn<&Zw!zQ(Z?fbHn>gNp!FahI8&&(!esV)vR-!iQ2z>T@J zx~7IW&cTVi7`N7JC+30m`a_Q11IDaOs_e6ZVYJGL7iMQwMboqIchR5|8yRhBk4zUA zn|&#b9c4ugWkue$e>+tWY=sk9nS&aoDh{XOWxTbogT|F%sq|G~%k@Utk{MZ+ zCG1y+nbuTYn{6IfG!6!nBl5Jp(R3zObs3kjr=X!luRZM z61C65wQTn21bZ;33C2}vl~{|`hEXM(G`tcg+9ivt^t}&|mseXnZLjqBz1;4w_ zxcb^tXQ*;cNs^z-Kguk|K_4tH+QEzP`FLY+sn!t_ z(=FilH`*1(?egcecEa|kJy$DFQg@<6<)`o;pdBg2c`2y(#J|KI1K^|j;qR1BB7s0G zz<20;Y=REV_Pq(}dd}FLAKF?=Z#IFGPL0Pln5&PlbGs-`Ik#fLmeDC;8bh3GPw;1VE3d>uW|Y~*tH`Na6! zi$xe$e~p zXU?Lc}fk#oYd?c3M1dt8MjLiGouw*(LRc=#4nQjJXROzVRIwY^5^U9&nQGHh$cyd52!>n#0^P zxnkxs!?&Qc)nHeKCpto8I=v|EKy){7%Nt6XAg0kgugTpMJZf+8&wX zH#J0-VG%8Sy=zVNlV2=x{pjUeQLsFG2vfUipMG}xs^-a|wwAW~b(N|KMjcNO%;GyV zu4_~3XD5et)3|A-%(M5KUqjdC>ecRhLQtA-YSW6btqpSFxMdWaNHkha7 z7hSaUJ_8N_t&qcE#$MCZ%~3`l#SjIgH&hdYG7*x;cciyp$q0cd6E=G-hD!n15M8k>GQ*EPqeN8oIA5C4Vf4A z7^k3LoZ3$J@(ZDQs&h35Rg{7LkD`~-Z>9kYsKvN_42~uf^3QkBkpYG+lRU+Y@!Y@S zxr?dBA;A~;*$t~qg}bA&$m$`eo=@shdy9)2%(6Y4W{uzUv_i172WThYpV_SYf2vW) z`%(qe1kR;5`vu(1qIlu?j$3TmOrYCW(jS4{wNWRZz7)QqCgk+nWAt!CX9dfq_w9<8 z&)Y5Kin~qF+wL8u0P^xe5$|q-o5FF@cjlh*zNR)xp4ZzEiWbkHTR1H>%d(mY!xMB3 zRo(2>3|>5y+upyXJo9UfBr7esVJ}s0edS7fg_{W*m}$Bgk>XRJ%P*jZqdgy**v-%1 zU=If`=2!^?+2r<^U9|_f)wR*-h79oa756TXX^JN+H4{s2Wb`(y2@ZWbMn1KTpLMDS zjoBN_i@ot2voX-*sov&;8|p#Z%zjoDxCohHLX?0uDg4AOfkl*K9W-MlDBxxj=61_G znVRKkm->5y--^Mz{~>$K@s|D?PmjpZYWecfnWh+s346`<5f3T|_eOWw(_uBM0j#0F zI;bB~sjll@dyY?V+Zrr#4-tHbWRMbmdt&qoc4bq)yxOg6KUEOvg4q<0pL2nK$}ru! zGl{$P#<~3Y&=PfrKrY`qhwBru=veFpS$Qy?zO}1D?#Wx{dgE$O#}xUXy%Q|~=b%nw z?G$X84%A{xaxD!^glj(e;e@lF&k`7frdX=0e_NxhVO3U-`+wg40ckx@w6z^5795H zPT}Z@;mILrmhr}PR-yzcqHLx3?h#TR`_Y{FAbIW`~cFf+1 z$gNv0C(2gx`~xFNI~+k_^9a8i8-FJ@&N6Oj)o0Ll%IDN;m((vzmc;Iat50=96O2SO zS|eoE5N$ECP)@nkb{}+glM@=o@%EGZCQE-nrM=0wEvAk1E6kWCte8+3mdTmXeRzUJ zX;5+vl6*JBb*>eQaF}vvalzmrur^o^V89zXoSarSOK;;mz+nq;&zYN?%3~wVE2<%j z4_}oeqq=46=9lf01R14JIZ&UUG1n5G(ud{FdcqjSTmz~@HdYVe*ICIyERmM7^SE9k zu6mKX0a0ry{-&vbV{!&nXw}-DK|u`KKd_|^)_D6?=c;?Vl^Ww!lr5#Mx;Mx7n{*uZZ<7tTMTvA%u`fc3XT*jbNJ8#o|qe*oRiU)#vnIrW73pOiQS* z+bV0K|8!%;|NnU2min>;8`~H=@Ehsded*!)KD1^o!u!7Ax z`{G`$r&&98O*L~!e2AafD3pHcqFH7`?JT9DVZAGu0(c*X>8qHhjM1iwr~50tnKOqY zn7;rx7-TqC+6v;ZaSCd|C_L04oNpPbey4{K6fSFJA}+{J10`uLAfj5>kJWW7a^=vq zEM6Hiz;btgL(Cso2y(+N3zuTEQ>Q9AUZ6-HJ6C7IJhYKjbW$zggeySxHde4dW|p+w zyly?K0)9usw#ag$2&U&X7s(hHijYhV*1sd+qt1=`AexZMatNh<5U~`}kxGogSL*<6 zE089HF#r9!jYkH0Py`lFCzV(UrR#8$I5qUyYfPK&!!aIY!|E@uYYUfvWN?Ar&qmH= zzyMr^`%%~%y7A3`16bVU|C~x<(i=+p=NUsJ9Rg{qFY1-^y10(V_Y(OZEk-J|m9OH< z-TU^{Df#c+y}$pj)`qZ+lf!>sW+o_0S}7@GeN47rj^E2@4mJ)8{`y6ifgvKtzZs=q zB%w+0I{^dTrl@I7^HBas2APSTymcl5-~tMOrfTbfvgi?uKNdjIK9j+;aXQl=@i|)O zoI5d2jW@c@a{Tyw+xmQu@;og1?0iA!Mi>`D9-@-3-%*CI3bH4H;iVBNX3ED3Cl0W0 zVJt|FCZ-z5M@y`i5w{l)OGk5u2M4IfV-^;;X$y)6{GPT-BO4orPa|8S#F#9Mf(g~} zQ**7+ONtP1Uml)F?%8@QM=NptY?c+2{Vd6ef#n7jG@a!R02#US9#CL0mcmUDXH1|t zymOLLA3#$r)1oejRA;X%lB3byph8Mzkub@jp1#47*%{AIz%9z+)ART68||$tbdmc|7+-(HlAsIAy1he!ubBs_-r(NqGC-rcH)d4y}L_--);WD zuqVox%+pM0O;2r1%e<`=l@yBtC~R@UI3U(sc2R$XDQ_S);llpTCNZQ_xMeW^^jLsm z{+);Q^U(iAq>0*HLz*wx{rqvz4frTrYw{Am_Bh#Z$efw!eQ3=1b6eIa9~`InxDr87 zHP`T^u1FvM{X*lj0&vhaCSnHkk($tDoV%9FWL2BJ&-)>V{)GGE zo2@8hIAa0u#Ar+H_ZUk`NTiHal7W!ko`AuL*5o)&OJBjcRA$FjODuiSn3sNX)V*!f z`D45Bnv~9K=5!6R?3r4WOJq~zp4gciM4FS;AO=3ZS^)`>t9Z*AkRQKK!6{q!^cB33 zx-NkOVK+JwUae@4f*oxFHeEJSx(3Wjzn~@H)VhAtsnevR@kl82&JRNk@JnS+ynNS( zIm?!C@mk32a*u(iU~M}yrGSHxwSj@VfqXq7rIfj35yQYGH{5|r7V?F5d#{vC_((f+ z?R1xAv{->q04gMAw{oH-*i_lBB~CvGWbM-5TZ)c%NqVI1+L@d0oZyY*rdu2A>Sx;_ zvV_YdqudgH;1P06&Ku=ChyQnTu<39*8M-_l6}@kk_Oa|43Oj4~+ZNB#r7!{)q{xJy zyGFnJ1!1~^kLIu3Pr-D$WkRyu!s&bGC&;@5oOp%%kYT({qZt~*-|#FPtkXrAD5|st zNus2evcV6LuBQZD7vxLRO2WqTdXy`o&6X03gA4)UeXF=?v;o%19g!^V1IT+1 zD=^m+7TmGaJkN-@{cNt}sq{U!n&oq7o}SQuV+@sVxunZh@$}-76&qOUY%Kksk=ocm zd2+q}V6J%c)@=6KocarS;d&OsmW*PDa^(~4$4i3=ee?et!nAPewH`hvi3M_$$YAwI z7#mlM`FCBMy<241J#16Zix$Wz?@XU~f5$HHxsaQir%@o!^KhzFFs(vB9+~lyND=lz!_!>E z2cQ>kNkjo-cmlfF4~dZXaX8a%@Wl|id&uw`OnAbw4K_T=$PW|^Ze5GABSw{lHaQj> z0;e_6@sT?P9L})rXOHe1t@x_$?inOHM^$GWPq%ZGal-v+Ux}(0eE{`7>QB(88$dDA zjWU4A>yYTyQJWalOO;Y69g-?uYbt74av$^ctraW=;eiF#C*&ctzg@_uN^;-Ho0y(9 zhWF%d2}LNDCWaBKd@l7^8ZoBp3 zYIy7ca7;i<9Gq>YG7OKQexE?c7W?{nd=yFEI zl9k1Z%|O#20N}(w-`*0eo7!y=fXb`eSnj!a)aKeN^fpehWPfp|yaEwfXWmfbnT8j8 z`?Tj9`;~8>Jq&bgoc~bxknWDbG2UtBgmRIf@?V2jegYUa z&%ZGBpFHosM_s0Wi@N4EcFs<;0=CXJM#e_s|9tuK5*h1T|M$PCr0J-rjP@bpAY+5) zkta>@yIy#PN#4K0U!sHwov8qv6l&JrBb8v(kMw6;y1~EWtgd|Lji(&b0rqlm#S(?=b1aPo*a_8cYseqf7#tewfIQyVGO#y0HUQnZVLx zgF9Qs7L}rK}Eub(enBiBcJ8Cr-vN0=0(c$qA!ZaIIsHZY1nw8V2 zFqi_#Gh+9o&9TJlh12jk1^-~XrkrserN?@EH8dNk%4kZ0i+CKaw=1(5D&xI82DG}4 z=r4FX+8C2rCse$Vab~!N3pXjDJBd!uVY@ceThZE*SE^=Mf-P@mh8YOhrnI6MsykFI zFD&?r61^>_-j%;4xR;&Rh2pD^tr<`0FVN{M=#hRIee-|Uc!p!c>qFG4LxXRGW17RV zc;c8`$&}#C6fAMKY1}=Wq8E)5(Q^(~T4-V3uBV5kFeo=BG1jK4lU|}(pb=~BDW}hd z1#kANNh|hHR^(gC!?4^oWMmVBF%}O!=1ZyYSHa~p2fAq}lS{Pnp1AYwJmV$9o~~IQMqk z_l%}?NeB4-SS)~ggSmFZ394k$MSF<+W+$6%r60kJNR?=y16-&NGr|i=TXzj;D$^gA zcwJTGz)5>jcSsF})=0iu%pPYfac}&b{b7#Yk$Dc{CiGsLRc)v_8G5RSU%EgVE`Ef$ z@))8^I07W5+%Rt>&u<6NtkUj?_QrhnZp%k>(&gWV%oqk%U6HKO!bSh&}YT zMAdt{0q@fIhrFk^lBxby+xf;&uD9K_HZz#}!rnPzaaIvd7l4=KG=E$|G+rV;1c79g z;+c!-9=F!#)6O4{*fbKlMR2Pd%2wKUZEf>(0jM{7>Dwdf+(apoiGMPbQmI{|hqCs_ zfX6?vb^M@zyzUAZH3@CWs);_`!#I8ioqNqXUSgFzI=CN z4&-s!%54oe)Oi80l!JM*E^+=J;^$UQt%4hAvdbs9=cCdC!{z+Xz|~CVPUR0}997rv zq4U{ooi^+iS{&PESz9A-)A0QkbQ?{YSUw~0&tV@I4aGa@Fk)yb$ zs>8#iLzOsAvaxwR6XxqL8h|UcT^jx_TgsV(Br}o2zH`eg(@Z>ia|a_k&^0iQ?xJ$^ zS4fG^7(HI*jke3zNY^`|LM7bi^(I?O+cWr&0&C5v#k)D5P9ke->5m4AmExbgAxH1~ z6qOiZIr~4d_7|IOTo2!7NJ*72Q4|n6(I!jNSA4&AS4gOdr}h=NF9bXIkDd9P|HE#p zY-8>wWo~0EY-9A*HuJx2x*1Ai4!Ful+>9PkgS8d?^Z;OuboV2vn)nYkz=5dPz;-+# zII+vlhES?lKmj&APD=SRqUS(l1dGxDJ-Bl95#)0U+Ri;b5k*3Ej@GGXTaoP(`_bb= zmha~)=O0ZsJw3Q42CRW010G~Y&G90G#Dg>ZfVMV+OF#=rO#+&Pc{vVUO=7PH3@#4P zrO#%`bu4nvd>Y{s-U}UEA@Y-Hl}wPcm^~*LaAA94*mnFn@VjaOdQ5+Nc>*0i3BPIs zI^BB7kp;iVgV*a=`6<(;6+R?Hvhpa{QcA<^?4)nN8~z5;C!r-zLBDCvYZpv+O?KbO zXRT^E!kg1>;0kmT8-_c;P=*deV^5 zgRS8aoLwav#GXR@t3G?h2;cOXw2wp6esCI+=P5Yx(<31F4?{wO3dR%tm^{HAsu&;U z>iS8qRt4rlD&~hphLR5oj=XMRhXAdS4)Cnr8DSzUgC7$W6}71{gGgUGgXpEMR5h9_ z-z*8~h(-|IG1;(-m};}TtrIa0q<$y(aroEC_XN6= z-=IdJpT-b9m>xA_@tCNSz(0YUj5H7@)wlAhF>)^ip2aK7-~ccUu=u)c2yE+nKDDf)7qZ1 z`OUkiGOiR;MjuK477bea&sov1hW#em%o%9CD%&5vgk*eR_8?J(BbIh92Tp6s&JOmr z_>aT|2d8H{Plw8xxDf^l9hTJWb3F}5iBkl9!n&QOQa|j2CmcAjiCvP>{D)EzM)Nm_ zyR^4qb_d^kOY(&m!r*Qk?`jC$-gE&c!Go>0|Dv~qMXFWxUv|)(|7Ztg{2w+40S8-4 zW1IhNQ%H!_wnXJe3*Hj1T``KN5J5e2Rp^?XZ_VBeEx-&5ir1qp1+N-);mkLT%cyQc z{!GjUL%ZK3B1&hY2oIm^9FJUnS+ww0+P|~Xy47IB= zscsZR2!jtQ-XnI2i!;{!Q-B&aFD%BaVFJ{%HvZF_9#-JcEaHP+c3ywCG810GN4Q$n zaIxWe2UB9tpNf6WMyw8!GbgZia}v_TmCRF9;aF7W{l!)FHDn~N?Cr~bh8T*c>MB$d zcTW$r5C=_c@%O6KsBu3kwh#+&V>ghb$>eW&sQP^_n_}hj#RSO(#ML*tkQo&WxE02C zSCH~krgFmE2!zr)W&q4d{WJpemU{K1Gk1@*;hXR6k65`KAK)#r_YP{it^K?pYNFo} zOE$V0I$lX}G3}766LVn3%1y?lDFbJkx`;k2ztRxcd2XW*)O*m5SsEtBu^II4d|D>K zL@$YOY!_3*@5vxxEX~X$E)4b&RTP;=n!0dvDFH4132=AgA|HP4oQwpf90ZW6_7PjM ze$rY;*%-%XdNR7K7=6X;$!RQ~i?;tDOfZXj<^C6!$NG;d+W)kO1g&fx|4(#YPFk{$ z4=r7~YtF1;Ax!jP8}c+vHT*||0FerP!*+?)oStf|l{l(zLeg$d_BP_RD1esUY$nb# znf0%W$>!}Qug>N-JVR+wga!~5C$r)NC>7XZ#`)C4gawYPCeEd%jn0J*^9*eUJ4Ns( zEnpD0Lvsa}>9L2kDTjZt~UXNu4B4}u^+ zVhOnakFa;_k_1e;cDu{A*=5_d)ny~A%eK*F+qP}nwr$&fYi7R8S#zG5pO7mvk4^3?C>Ty8s^peXP=g7P6vzLp)RZf$C+y9h~LTd(`-0uRQdjS zNo?PHgqP?0+xhyhYU}?dVElj7mVzPRn`Q7Xp%tMhV~wqh!eh`V z4p|}PgJ2RHi$zJDqGBdU94|w*C&APID7?o2v2yC%z;OFnxpUao+?Yq_E zTX@7Phg+oYQ_!M&)oDM~arHVf*M$e%9N9oUc>PFj=OWgh8|*AXJ<{V&xQYH0s5VBZ zQtP0KQ_k63vaNJwQMpixPgz{rt43nxj8v6j;WlBVhj&vHEz$lg5KS(<$otfJJql3j zM0a`k)tN(o%GTaYRM{&&7Ut~tip4baM|2SjrJ)*?k$&#>kt)`WD^dd+t13$1`Jft? zv<%8Plx|m5Dh*17q!b(qxuF_&{iLzc&!un8ijh${%%iI1WFY6+bXpP%AO^@m8-O3( z%sgWAt;KK9IG6g{_o%~0u@%~S;r1KfA?Cwm3;r=SS^|#uclC$SJVCNL3Xl_yL%yff zYaZpJ=|HP#;qdw*^3>Kx|C*FK`#^*5xHRh9>G}h?7a`M0SPl4isd$ z*v2xvRZwdc@_pr~v|Vyf8Ap1LFq|u*B6~*Pn7($jUl?KGK!^VrM|?*eFe{AFxbFn z&fwYBwm-f>N*7FetD9=;w6gD`%jtc;&y(K`{Qqs0F#eDC`L~_5i|cV3fN)@-(tN+ zT%5G`CpNGxL{c|YUNT5*au_TeG2yPh@Jo-EM!)`|xJCj3+~;4dO?!8TO)UxG7A@4h zQf_u@SMdX~+n+B1(Q|ns)KJQ@Kn0m8mzkILZf-{2Z)Zp7KL)GuM1a_GT|ny)LtDtL zc7fF=)6}AGgl0U532F4@-}w^NMf+oe4H2nGRbQzTnMkBS8aXKq{nole_u{4;hX4E&SEZ7em-HGI6GzZ64Ue=se5*n(QDc3G5182fj zJCkaqoUGO)4%!8Ks4gXKRDFw7#x_6u^zdMJVvm{YvqJoAIjqbeU}1|`Ot9Zaj?-7G z8N0IVB~h2C?1Z>AYwWqCoFsmJ2l&jwXS5)gc&%JTy{MQjd4dsM&XfJoU~!2K8WsfB z=3$Ii(?iP}wo*8OXhG;FX+@HI#J%rUouYi{WA1H{y%Ysh%LlkC(TU2!5iby`B)+OAKiy!I!Z+P$8&ji7(Hqz^S(#p^$U0rg zt$1NRa%^5A|0li%oi`B#u5C%0iys6eQ5fJ&IGR5#}HA#pZxG<>*)r7rZ z9=Kqd9vyAZBSSa@k#>$3l-+33A;!2?o>?Y7KF#G5ObD2sEf>d#t&`2&A|t5FC#0%F zoD>YjVAwL<@0QxLzdk0pK?3@^CCCLITSNtl#3_!RkoJOUmf_&dK16Q3=GC~V-ei;S z>a;5j;j9Nqd#CB@luonqw{6(mZ1h&%U9_)%w!|r2kT&zc>Mff05ZyR3=|O+Mo<}iR zcF6{$m~=8QWI^%Wc=FliIu+;XWqKdkS5sN`JCgk2N{|psB|P z76_18z8jy*f-*@Mz`d|GChW}CGWF0Lm{-eSrsA$^b44{6xIX{-7x}Zx$(uCk@4kn5X zV`BqBG7cif00L+s0DmOpdrh2Gu-a4Ajf^5-;lUItcUeMovXNqe@D9LBsY{@M4{!NV zt6pFw0(Mod&wbP9*05mBl_}*DTII4X?O!_WTb+5ob~@mHrguxJulpI-vWMS=;4kO~ zD%o?7-&J?_S-Yx9M?+RlhdiS?o;y>#^F|ogH3O4YB`Fl=%TMI~h~v@Zo_A3@1dzaT z1sv5bN8OofZMRJJnPJId(S}7ZXUg@A>Hj!VyjFw&VcznZK|35CA6M3$;K>M1TPtD87_v@u9K)RABIYUp^Fxb6^!|a z9O*;np`^thFqXwxRUB#x8`oNKjP-=_Pu6|6iqge~y>4DMP04(%=|9xWt}=DcOr?c!NwowTVI^O=(} z{vvkaRh)eFcd%=#tpo4rqXA$D8gq$>%_^AP$mF)|jBvDgl?FMV{+c6k+k0q?)$pW9zkZ}hy~eiDvK>b(+PT0S>GNtNIj7)D-J+=ikl}| zGJOYvzfO}x8bY64^BY|wxgDUh%Bl%So(XscLlU(GmdNu4rpVJ=<98$L^&&R)K*M6u z2A3YSfZQm~Mpwq1$;Q1!6+Kr(RM)4rrC{KUsPF2pQbHrSohm{abTp_8*ojq8PpY)9 z03L1V7HY#HTl+o{fEBf!&uFDUnw~H@h_k_|JzoBS8uIK`1HIC~7DK(i7*!pD$*Nk0`1EqS_bg(frj|A9~&aOcb?W`4(RhLD4$<4(u|SYP}_Z zhYc2N9Q3NA)#ts9pdW7q$ve;COEzY+m$yBFaB~F|PfEx|sfP&16-nw@Mhy!wk+fk` zCDptw(I{MUZufxE)b)xT)46lf75xy(*)r#hv}oc%!`;uS2d#A}f@9V|#>fhp=c2(a z>#qktzm-A+Z?Axd;M4h>`1Ky;GlhgMbr+c+F`0uX$vyqmY&t{Wt`NSJzBN~_w=l-2 zKaAlu#)4Ws2Mtxx7jgXf#_(^h}y=S9GSMuL-?K5gJ@YlF;tx#k*R zA7eukF15ESIK~^9NEd-fcQ)cZR41S+TCkZ*fuM#DgjJ z`p+ZgKEC*xP|`;QTo4UlK!RF|Jm~YyITK8 zw~wNVqFq!JWE3chfk5|DDR+B1J1*Iz{g(tW7C5*PJ?V^ADJB+1KuU=beeyd$Eq?Tv zR3=g!WjP9}pRz0c(x?!nZcNnhpYc^=xCt0DQ&2P6thy;)_o{}+miL#dsHYz|y=@Zp zd(udjE-XEV7D(#hqu1$v=^jJQ_~rn8*OJ&4gv3PaR1~P2S{PIfHe=)Z zXr2JIR=%?A+xL+qQ%=II^Ow1?muxMH_)x8BZuOhHrJ?uQz&y-Dl-L;PoPjx2F^6VC z;G-i!(6iHEV7ZO7AwT#lj}6E$q#b zU|~zphF-IIA9>+iQ^BDb%?NEJDK$Vh?;fTM(?p0KJ@8dyvE||V0VjqRUF0dLhE{eZ zTC@QPe@BUnd{Y!Kq)k$gKBY+@%0A}Pb<;E9&E{9KYb97lV$-Q<0$#SI10)*2arI^GiwAzWNT4QW)a59~5fFfJj z1NUfU#n%BR9l?1}Z&@~H)LF@!>Xr^l)B{VMEm z<8g;gbOx_sSr*bMdLY4hL$ff4y_rl%XR8Jq(%4a;7iJS0a2VCLS;qS_x@S^ol7X>% zF0mR^lQat%&U0@mO662nbRUYxT|xAKW#ayVEqu-^qyhJcNU-+SD;4G7j^D^CH5bM! zYbT8(Xw*e;hug*A_15mgH_dJn_53Fg^@c6;zIC|J+;ALwU5`j%zHUVRk|A~^SCH$ww)6Zy8^JMmpy8{D}dz}I0$8F>-FTi zadzCcEQM3k0jEN-38=zp>d1HmgOt#c>oxYL$d4|vOs)GlGLCRuPRbyCg@TmoKanCT z)0>!%7~&b|e-CF;JIhr()}nev>UbakhuH^Mh$o~e5Lfsx@MK8E(|}naeBe%OwzWc- zbH|~xe$9Ft@Re zat9A)x78%F$`3sYUaQ{=s`u!xduGtMmT>qH3zlXQ8(LjpgCPdPS~y`9*z-2roy=<7 z+2AIeHW3r9>}VgHhc{4E?;%Q@WzXb|xB(WD+P9=(|D1ew{yj+mCUa>{>Rg)YK1M@a zx}qv`YY^{|w%M#Z^9Wm^n+MsHe7pw1k9@TBGvDk7d$o(C+a3#q+ddpCMB=!W88S$Q zxe0;)>7Y7`vdJpQj{9o!m<>4XRWr(^Xo3wah?IGQP6(@xhWqz#{cs&vFA$$Z?Cj6M zb4ufu$wz>TR{>7f7d}TkxA5Ul_Ix_q*-Aq33Sl{Zzs9cuhta=<^<2W6T5Fc8F3&tRtXeilwd(cy z&odlFoH6le-~LK5)PM6>{+E5N1TZ%K|FN$#;?%9bF~LJ$X=Cio6qW?>Z-pGI$!S4A zNR$GhC|LRVJ1%SNX$Dk7aE-tLQ~l6L#i-)flR<*v8O*k`C?K`Wn<*JD7dUNv-ku+D z+h~_$IlE>^OE%gAh~>mF{DbJ~pd4RWs@0`>5d^06k6?<=^j^Tjch}gGB~GBY+LG&qG~9zi!JCqUcbJi8|5JFU?U_cs6J- zc`1h0Pp2`XangPL7-FNk?fY=IXY>7zTSU`ZE+%gq_f|Xw!CRX z9ZSo?qB-u67y5jhr;L^U5CYFPqyU2DU?BR|qhS7(Dymeq!!vA4=SR9-aWT2OQ|tZ>Yh;9txzeN zk4R&{L?(|Yg|NaO!n0e8whKCOO=urFH)|N7hkFDimpF?ck`UB#7sK>K;0GE+h+c#L zo`2q(usiU1AA!om5ie0|(DD!>qX2F97=k2jj#7HR-Cxdtx%#6#Jh`0Rz4O=}(J)C1 zd|xi)?Mb*XUa?zl+VJig0g|m~7u0U&ocH9>y9ojk-TcYG9+)J*VXCfw+WG3)%lR_j zM-b5et0PGNKjgBYoXmfy!MPni4XWPta-Qc0K@Fa-MV}{h zW@(*U=hZ1%7I%N9((Mo5Hm`WLF2*}wvXZ8NnqjO>n~NZzbc3@ob-yu9=Sw!f!rh4= zcBMqt+vNi3#I8}->H2_c-%G{4D=>72{IKvs^=RP&Z>qWBN3MfmqC&UX2>U+^$Kl3o zgq0#kH~-YWtAGq$H|u$7CT_)`4~guz4LsvzM(;?ta#7QD($y6S@0q6X&|pms(-XQ+ zeYYnteACw+ATsR5JD{+1l)qK4#0$p91N~zrQq@5xBp*oZJ_>zTD-n)m$Xe7_Th^K< zOeR-Ua$Dv`S81R`HWu|ptL-r*b$Gv5l8rf;mMvf~J=?|)I~^EPWDV0Q9PHP4*Um@p z(^6zajpW8Oa^vsanov%S3Q7<#s~Ocbokk{`@`MPur`Jpi!7j9kCkt4o*J4iDo+wes zN@l%mmA}m;?~V;iY)s7@GbB4afDk8#fdLFxhCKNbj-`GU%;Na7{v#QDg9gQzPT6n7 zF(Ua=B9?ffns8HM&C{x)C$@YN1beQE_!f?&a~3Aeh)odZQO-F}(Ooy9KO?IfFw1S! zZh1FCx&H|<^f)3Y{-Y%0OVhsM2G<*Oib&vC`*&?Rzv0QzkW~|k(JsU1XU+@ zlpqbZTThYx8MaMU1fnxt?o~VgrW}X+@~KSaM`?95P2tqi0GYDqAcRd!f+&BKqwm6| zHu^O&s_>1?QG_|g4Q@6%)ULH=^du(@Emw~X8_2lV#q4ha^>XlvW0dq5adu0>Hkx24 zCkyG`H@Tbnk^xXbz{-{Qp!+ps4dr^BmW_C$Si);mVgqH|=Aj^9M(*vH8uKdhg!tb( zT7FX0vdYc@r@tZ_o$5nci61FY=k1oSB*{LsmHl$Wy^|;^2Cjj#^^W;VR-R9Sgc(<4 zXCj$t{G=vC*i_?1RDrB@Q!;WHEy269*y*oH6LaZ6J7?Ue8GCa_W_(AZ6i|Tdbs;V;K)h%SW-q~Hh#u?1u##SxGh!j*G<;qMMqQ^{FL&}x&RduV zi_M(Ac*8h(>;hVK`pm9!_6%b+Yojt`?xGFYnZIs0C@e>Yl!VwQh zrMHcXq!QVdnR(~%>e)VfCb62np?cQ{3b@F9$Hw&}?81h`JrnloNS_py9Wt&_9pYV| zq-A;|t$Qbex>*VP!at`;x!?4R>pz;BMr&`=&V)#mec*FHxv$mpdbF_YI)G~IU%vN^ z3#ZBWt&uf?@s{sYYufS~>kk(aDc9pX)RlbkS3?|p0fu8T1 z!c++vy^nV6w$A1+F5xd8;VB;XPsLxd?flVc>kG>4V7^?+d@t@s zt`&t%PL;oga|KLt!w{eDhlU~A&8P4S)lMhVF8s_@V5zwqe1}S>$cCusXXpCiFKg$R ztG&!?b#%U;9Xrg2&o&?nyAe#uZ5PCnV}}tr72}ecx!pQAnCeAyq+z3xmxq{8Fa(`mr ztAru|w&orqR59|@_f;h*HFZNXH#Eo2K2H zxMD03W^dXVXncW;a)|TXiLkaac_nxzB5k;tBj_M2V>sY0L%a7##AhDGUCY9LuJQ-I z>cFqzCvSbDuM}{vAaGA~t{ZfiT^_V`-5b|;*r&ZK7lbeJ{X3}7kG2%$OCkldCL2JzuSiB#~f8(PQ5mJYZpec0U+mK1fF=QSVm@CWUU6f5HGcaSf2+H z`A|_3tg+w!*$zBK-j*_LMK(ocrBm9}(!;7<_R)bbB;W7I&+k-u9DQrppp7y-oAP$K zA}zgpjFco;j+b=Z&Fe3f1VTu<7ZwXthV-6BK%d(9hyn>mEyW~S?K!<~#1wo~R~ads zwyaGtqf*IBu_AP}LIP1G8rtq}5x3Yats)0*_nNJ;t^* znT-Nzsl?IUJ+=AY9DxTfI373xU%_#{SD>PW*XlmO8X-`mU;2~gN0VD za|&`CBK}cwH0|5Mf1C+8xtftG$nQET9Y^F%q;A!Jp)#^y(S(bZ71`xgmi$V4!6U=0 zvR^H`0*)_!9BCN4VqMzjYa!dH9qQuT*2OL7416`YCdcImEAvZ_?ArP*fiCQKNAGnc zr1|tV^aOq!-4viKWVnE#QVu5~6a~;>wt?9p$BwwfPLyD-xA(P6&(C4)t7=71(4<$@ z4l8br>^w8#Zeq;jX;#_@R%w{vm}PNQ0KIy+K9%CIy%1P^u!Ij}zvF^^Rha~`P}H8B z@hd+P8MZ-7E$)j}c)*{|{wgi$9B%DY+k0Fg)G>xN9;&v>x5?tz(1dkc*H+qA*|$sk zQIS9gVC%cIVT3DA_*CKvRpZ_wxubDKdDs;nWaG8P|JmL8SR=?1b9``cjz48|5!T51&M8Ioa}mxEd>sW%u%vCBX@7ha=q`wIPByI z94rMMtW!+4i8j2Yms}u-FB9X@MREiso8Pf#CUC3^*LJIL*EWxRP2l85?2|3@ODkZB|j`Ynb&kpG(? z`d{<;LM8w^MMGOhL#scA|87JjsC-x}Dr0!bx?5YXIbz47BCx6O##b7K(*+Ri5N$$c-Ois?0-xZq{hK1~cAquhBMS7M&{sj9%L~`UkYCIba zB(6N+xN_ZkYR8{)ojl2Wzgr{v;VuuAhf3zhj@oOKp4jJZ$F3N}JUP0P9@z71G6=Ch zIuHPh-WxoOi+peG%OH$z_u z5cH#{E;L~;%=~`Ib4@jmULzrby?kDE)+k$B58zH)VskFvPD+e$-(?Yl4M-ixEVXDb zRR$53*=}5}A7ZHv>?>d3Mm6tF#VTM_%pT?KH@B@0*!I&&lY-J9Wz?-PTtR zMe>w_V+_M%&R$-{dvTgFg6!54wl82O!auQpPPq4qtV0vR%fZ6FKF`ww=pIj_eHx9N zEfDN+(jq!@)y-~lxI?qhkkUH8IE#xNzLqLh-mtwt1L_Rx0O`ZSrow_j9mZU2<|1HP zBMF0AVBq#sNN0ww_5WnW3$7+NiXem)SdwjvG>w2}CRsJhrZ!*EV7E+454RnUhp<%J z_@Hee^F`qV9gb72A@T)TB^1w%AQzqv6GD_GB&&Aicpp)qbzWtqS+a?gH4OKa>V>d~ z-FbjXu&wH9Ru4a#(2q$NhH>?=93yxwFK2Kp-Ot221JteP%cR3ny&Y4ea4b^(Ub+~N zNt+W@1wpgmKuDRMbiwSWm80DgkMhEa+LpmVTGoi;NMag%&}w4R8O2W2jB{~LF$hPU zqHa(KZ*$VxrE43(6saV0pyIV;f9z?N_Ez>o7C_{V)c%TcHHcG1)lNi_kqWJMMxQug zY*^y^ij8KhowRC_mb0TsRFeUcSo^C(j)8``^2r^fTne?lFUPdkIlcZxXx~?R;{QD) zI+fP1E^{9@vfRs7iV9>)zTCf{GP?Fm{927GFCijFirv9+GC}Z~Umf>{OLcDkjlD{0 zQixcwOGs)X0PBJ0?-%ca*ZJ;pH>QJXb7-y~{x!q>w}^lIkx4uU**Vxvbxo6t#|!($ zd>*vjEehlx>TyW~^oQHVEBh>4&TR2O)C*h%E8om6HnO4CQTPQufJ zGs+`mF&BO;ST@xosSlr5P>`U!99Mt*rghOjcb4-kP2u@?8$Fqz^RRTk7`dZfP5N-K z6r&ESNm~;Y>QHh~G|0yR8{DaQZ(OL}MOccOUj2{zIQkhrYTZvfKn#Yg3pk2m`aV-r z8^8NumDjc3nF_yglo$~>WXp*ojie!7k>d@^u@Pf7*>|wbKHPC z_-^#=V{p*H3@X@i1XBE)x%s1&WkoK?)_36nWDnD)clkP!UWX<_h?1e;02Gb-&YBPF zV!`(S(i;@>mMfEl1aQjo`{MlDY!!tQuo7lPd)^#M*vOp>$!IcaB{Y{37KbxU3!Uy) z%4O_ei!&Tnx8crvmw^^jnPrEn*36j26qOHEW^a#X5!%`e$=U#sf%p`6<>;nb!fnOF z_i*@L^zuWrs+A<-Gu3zN19O-i?5a&-0zDb!X<9^$7Y`gV5KlZMQ>QwZ1fZ=%$ND?) zoY|$%(E*4gDGS7B*8$KLML+50(DA=Vj=TTF&=s-Obo+gK2%Y~mcK^RYu>Xn~6b!$a zbKhf||5y#M{|DRo-z$BA+M6!Q66)9HhM_SA*vvzS0+UK^b?{#(`Fa%rae8c)>_QVw z+(hW`%gge*y3j_MIc8JltHMGV3$wYP)qK;k5NKA>x%-%UQqQifD83xNBAKZa&%ezI ze9te{N15(dEl0LfXK<>YZ>NSosII3J$_G7Rcn7w(`7G)yMoy4)9;va=X~m#KJ70t;;; zJs^SCHNNeNsw;n^EZSALeMTv3${xW)*_pEo3QAY{To{Pe-oLF`KGcNiA=aY~J7yb6 zMptK4b$!q67ar<3{>T3T|G*v{#Y45H42qW0Mdk;Pn<^ne#$$4d!6~OH)bz738 zhI}b?QooufCDkt7d@xx8+OE&5HYgBGn%*SlpwMbaaIfMfo$8{lXi#eMj4X;y)VQZ; zz}5-EEUYs_7xOLjy6s2m%N7u(IRo<;Pc-^Pdq`5PVkMY+L3e)${uY zg?-!iW}wDL>_SsQdID>h`fIFwOP1iVIzdR9$g3@STPjE3WyffoY`)V8y&1<7dtw|1 zTl-`o+J*?uzrSQwHF=@A?E5j*6&?>6uOnygOo{q3%Tij4^ zxvuGkv3O~?7rzW5`m(}C43WP?5JBs0kwgo56%b#u~muBEE1tWf2ZDGDg_3Y>3& z*h9$``bN%jF)Icm8R*jJNlhGeur6Osit8& zzQ-p#WBO$=O`W!PIT0(I7|c46YjfE(bo>SZY2~yWTCVA+>nt%$v0awMhNO6dU1C*` zz-$16!@i7WZf?eE6neyFIf);i`L3-2bup0|tPkiw_GF^2nyaC%n3}2R-|SlwuYv8Q z{31XB3?;LufYe^KLqzINia&#YiAbn~B+?|G256S(Bl1r~zkjdR{HJfr_MLVS3gSc7 zH(aAO5ncyCca`W>^%vEZT}wCM@A6{coQ~^olrU#jg+laWd?&%%v`%+ioS)%c$In!s zg?m@eL6Pi8oN#|H0S74kzyIL0Eme5F8N^E-hqs4ZXmQqh=DAX`GDD7!-<_^<(sJJ4 z6wrAWi6|&-Cw?hLR5AX-#!#AnJNTOt*#b(d%o3OA6EF}lhWI;)((wYQDlt`pb2NV- zF!L8^1-e}Bj9Ok!uFQ?1U`w?z3row-wH5urlitK7loPbL5tS6sB9)&J2w3B}Ky_g^ zc}|GTCy24xXgc1WK1+rBtC06A&8hJ^ju-8B^8zPs6AAB(E6VnPw6w3{&4Zz8mH2ax zvwQR`4Q8D!=FV&Jn{G1ZL(ZF|R^%Is3V`$PO#kSJq+Ad3X|vux&0`VlB*$`40a>34 zAF8c7xRY{mnoO9A*}u7K=1D1-E0axO?oO04chkk)Dj)15BF+BZ*)1<>ERRh=C|{ne zbIpbg=(uo&6w9;y8-ve)i=G`W$a5tBgfQRU0ZUG_vIdzJS1t<`?i5 zCbuf43+9|G`eBp`m>?=T{Rhe^MA{A@3Q4^*%%@tZY{U%yn?FG{04?g-!G%;9u;aS4%5%hH*#-uvA zebUF09v9}LBp8VRRtpt)HENvp^;DCSX+egB`Cc#+-;?Og>;Z7gY3cNn9pgIkeMW#^ z<8u>_+9-|pFaWjzwp4hC6E4yg-Fvyva={RpNba`l&KvLZM|uiuW}lGL>TV0QbM&C63%!*y~}~H5~P#R2)nBjtd8B1x~O9iArFS- zq07pyLo+ifgS(d80I3L{Zu%ll%BsY+VYnmD-L@HTzNwlhZ$PAG4Nz;$$!4bmt3pR* zlPEYhZm*H-%WqR}Tysb|hibJ8Zt_NHw2P9QBE8%(qUN&=CIm&MBU1AINJBx})Hb{B zf>suoEp8wE;g)d#W0Hf3U2f#}&=`{B7|?#(NG3Kld$5nvETbBeTa1L)6o}J=w2S6Z z(oK0xLyI?5=#LD7jL(O zhsKu8da-rZBNv<1vhiGH}q%Mli02>=a z17Uyz;6Kurgaq|}Y*P$oB=M(TNv>Fh>nJU^Kne@em@YEF5 z7>D!F!d{900`ZmX#{Q-Ast`(<1Ag`s7;Bg!aRY*u|quZ5|pV7O?5tWGRrdWdz+84@7Py;q-ef2mByr` zT%9sSG@;KCPR?*sdCZW8twN*Joh|UM%M^lnaUg-@(|W!s8q0#-^$@Zu<|<=i>PCBU zq9y3M4=SYz)dj?a8^(6?uc3wKRaCgj9Pj@^Wlt_aLC1*%~e%jA(RiTa3r)g4K zq$C`Wh3S(YV%JMv{JY1+Tb(rO;u{BPom;+*tAwKTf+vQDDG{>cgJuRp^wm{{Da%WF zY&Xze(=gRxPDcV4yz`d{F02yy&7tpO6gH;WF0e16DU-pj)r?xxt;Wo`Khwz_BJ~4D zdX2}hZ4G#K+WS$0+*cBlaTE`cOt_ z?(FsvCbWOZPj1jdA1~;ns0kbGpPr)`*eOYc_kKnhZBY?I z4758earzPa9+pg+VuH;@fGMFU3s#4o__Ytg)I7bX?(P!#Q|#1-Mgf;DY6FSo1o;+=pyIju zG5gux*PE=po3mDkyF99Msr)DXKS=dX(EEhajM0K;&c*J!1JOgjID~M-I zF0Q|R^1UGsVYrJ^K4#s4hO^NI?OMiJYbO5jP3@T6rEJb>4{M~_xZpZ&zRKCKo!Jkp zM<1wWHEEr^;x6Av96k1~yrF1oFM4kwITPFqp9yzUhyUKlNi*zP8+)xFF)x*Pgl8W9 zyrQY&i@;2CiZp3&%hgifdRt?E_EB9ITGA8AK#K@%e1Kal5B5C4|A&cKic1tU{*Q$~ z=>JwR|Che}cN6hHN@j*Cq>Iu5>gN`m(B!EyaVz0j**K9h8@M zMCeU#)yl7L1+Lve;04~|sg_>P)f-VkH9~M+vc(x*=e zp16buVP4!mJhR*-`c?39FNobvsJgd1rudI9)mu>`jsC#BPk(<;J>O8nK_#GB1^IJQ z&nFdd5Xux;c!{Rw)w(Ga{}IGRE*Ua(5e!thOAoDjzE;NXJnUQgD6T#56dGVt=C1lx zWwekh(m=JuHeXSpoIOv0QTxk`G`2NGt0G7-5S!T-$Z_TNL8?rZ*4FtZN~jM;G%cdp zH};k4q3m9g38ez2@#Mxord&(!so^n^5;Rj!u~bArU`l00Ain3~BsxLZ1wlCm;U`{PD zlo|78?7ooR`1UMMfTvv}D#+km+AY>H$KO}|VaCP00B_FEQq+(hD`Z+DAs&J8Pl*BD zjU(e+bU3z~zge>{H@6XeK644Md{1)^fa;n}-N_U}n`oHm)u={UKL9a_#$lU~vznj; zoQ-zj51P%`3|;YaqA%uG-|t24pF!g)Yy2-CN2Y(_^{fD_A79b5Zyz){Hp`JfpqC0M zqaoNKO39?D^nb}A8xt1Y5<<~kJDu#OgGq$$qe89cyd8v@F0@)J3o9$beJ)`e3&tbr z)sZ{uDgy;`X~L85So=Mu!R_$3c|+F?zo$%&XrRlFymvS zY;vk`SvU3AQ=_kArW2SF4eddt*-;?nG3gqRy5M7QVN2AgvE-o8N42C_uyRXWrqxi8 zj70qUmtYuz0;6&xA{Vc<+w*q~VYm98l;8RLB-(R#lub{o)%u2Rgh1om!gbK$uq)h} zIX6>7F^m}huz?16@+ihZ1ys0Ktz<$HV+8+%9Q zpXaAejeg+x$&)O70@zgq>R;|~tQ;o(O2PjXLxEwMv)idtmj~XtI_~0k00MTGa#`(L z`%_MVL{yNF=&GXiN0YLwXCfdv)z`T~B=)IaWqrzaYiZ7sL zc*hsO`Xn*E5z@RBANO;(F}UPBd@O9T{#;7*f&w&8^357$8F)v1(Ix)-~i`L_(e7Zs0_3faZ?zq(zEn8g<64z+v)2iM_9#H=8kbA3RfZ{n&Wkt*mq4 zxj$flf|3YVC>i+yrdXZt!2bgnPm?QpxqMV&CdVID7b=i+ZFlCe{4KxXq&yfglzEmBZlap&3TqxHF1XSiq#B}J#W?LfJ-CyGmQ&lB9Vf+b$2dsOI zc>yh2*L0?TU_pzwbg%#u(*YAl@uya7xWXYI>az=;x=zx(lNZP4y%DK0Dm?qv3$q$mr3Q6rLTEea{#ou7H0str}ha#gvi@up#LQUV2V=#49Wg z_n{ZVn-qQC)9ec@T%Y3D@v7Z*g*g${lkplMkmi(sr@sviWmCfOhBFadvV?Rv?>{IHAFAZ6u~&z`q*mh9_p;0P}dB5v=ZO%FsGzIuAc^aA0uje%Da&KGsqhBy!&5wN(xnGzBb7oO0JicA)>T{@NHD;;a2P&TrSkn5M(tGEki{gZ^k*#DG;ES(CNO*|Y24j0k0Zi;bQ~Yl z^y>q@W7~Sad*u3lyuuhV8X4xaCO_|vfNqhohr!yF9>%4Rll5DuCSl=&&2ht#8Vuaw z(24bMc{|)Z1E!AD8cU{*9*I(t78Ydtrpx~3Tjt5N5sT!(mk8vKK@t+Lj>5dNiP)l7 ztw=r-S=feQ}ujn<+J&Bzb(9g@~WLG5*0T#BZG5-9YDD~i(qbE&~=dz?Oa zXQ0K#3sCIW(|5Z>f*>x!Iu4yI2}o3xZ-%@#K3bJQ&F|M5@|+Ofll`&?mBgQgoHj<1 z0o6ZshB*OplVYu5p3`<`__H>ZO5L)Gnp;Jh@XHmW9{@k>hbuvD1DDF!$2FcrIK>(Hu^GT_VH4;+w%d94;q770o&r#EO%XT5jIbtS%yfl{zfPFyjR%u1RtkNWfm-Sj+4 z5JH1XpfDxvXogoAZ@H)vy{R^s)Luv-*A3e&vC(v=D5CT#1{f8>>)v0nO-KPmWQ^Oe zFY3u^B)>%*1$En_U(KwNt6?jKd?GaAtp3dQr~2U(Vk}x?F%-^&(WlZI>TmS;(r&)% zdSfhFQF1^mycAKLv~)%tbgF;l!s4a71wH)sJa>)7-sR})H?(STBYlSmy9ZaFmcx?P z6f6@e!o|1;Qg?2EeoSxz6E$tvD-METWe{yk(LozzKvb++*+zep{v!b6@_rQQ*@4h5aFHunX8S<6n8(_~=S1gMSxU*z zL*5XYx#%h|kTuU9)`-BoU_Yb ze<|Z_KFv8t>%H~XYyIkvTzBKg#Q(n=`2UH%^}k%R5i|UU#E}&x1KCdxAGGtTR^`w0 z2MVnkhBBKU8CYZ%Y0$YeE?s>7*`AjBPY9xtc83El(*PFkPUm(E*&hy2gnV!Y0^YTG zitW=(hyo(DOYRabo7I&TqKU+wnXSFka`m8h@${`M;t`{z-ZNpDV}zS&V8{%Gzou-?U5vIKf!ve*gfb z1><=^#RVlYls94_fhm*40)K&OCj9sjY&o57oR4J_8d+_;hsvv#nl(e0EtT&4s=Vp- zYX`+LmK&EXwVqnqooQU&e5zHVymGjpnT$ze@SLW3Pp%)Xyt^A-c+F)0-V74{sd{Y# zQzN?UV?_rcPTLgbZbeZ@Hl)_T9dy8ggR2)F5MtN_d(Bwceh)>KJJcpaI9;~J3U3l{YrdobmkNM7x{n(|6sxP_i%uVyZo>aBkr?4 z5i}d`#Meoy$6%BMTd_L#aUUr6XawI341fmGw`_uv3sL(zx{cFJ8~;JnTi z4h@iw*K-rBvvcFi)x{0AZ3@1Nr23L6CW919r2q@^3icl)#QTDD&SDV~?RgjeE*YD} zsbO9Qrz~I%Ccxs?*6nZe*_GZv%qR<0ql~SV4a!2D*u`sRV)v9MjT#nQXhF5pspezaza1oNQe?p%}r!r)%C;f8N%Wa74eX3l^=AqYuoS{1Xgg){B}Q6o2P9w`R{t{P z#+>DJ2BqbrvTv?kfaIK=nv#L69&&+n&DHqHnXTEkf^^;Y1koE|GoHMiWJBqMqG8Nd zzD4dPIj{hk+10?9p-2@G?89cmIaQ&Lv1?eY*#$;bKUb=Sx`Nc4BR$}P%pS@2Pk62N z&&Z>C#qF-y1)DYL%+*JxyMLrmb(iRycqKTxW*p$TlQ(ZE!%9Y#i6hBNPv}vN5?vZ- z+H;>QFM24$S+azgHwBZGT5XM-vxu|^DgFHjsx{ThfGP!4u8u)a<-kKcu4WLyf8uPR zdJCz0bS$P^&$=|PAy3Q-l_qPvnT{W|a%%)qW27)Fhy00bNB$$Spg=dM7DL$Gn?c6z zl}RKpk`pKRO8gEpEJ}jm)Na1wL^z zHAI-r3B=(w@%;d^tKyC_Ur6VBum<}%+f={CO-6_n>f6%{0Uv-zsSnF_c8C`$2(wb` zA2ahcKNx!@uTXv1fSqfRR-mKDdEE%Ey%7ZMu#P~Zr{=swBN>X3^!VtyMWIHHz=$ph zG@!<4HPzW;B=X;&l7JP$T89(;gI&g--^>9h6#sr!qh27d!kGiS+g53HEe;UYPY*rT znr-MEeGxs#+mZwYvqwm}sb^!9e7UE-`jMRtAlu=+=bt1(Po%lRjedHCCq*1Do@Kcc&ZUfC1{0_*bsfF7r16|{4TAH9R(pH$X& ztp;Z=R>fu#9XbUN{*r#-c~cG5@NCPKdse-9grl#@H!1ZE)+dKvY|wH!TOyYVL5K zl|OJHnPnH=`Zmp3VQF5tAa>|*dY_yC9)ubvo#DKWX9G#N!;zWMs(a}*490d z4xh$NRQ#Y?pRXy?{tT8JvI~pcQ5gT5?RW%-?Cx8L{)S}pJrlZ1r!4&)?sdzS|8&y| z_qP}5l?=DP=N9-|hVG&TWQi**8~nGwJ{nR|co#^d0Fpr0AN}}m5KcGzeR9&vf?UNTZAl=ohYjWgNg!BDaS#s0URNTdpZ{W;(h+7g zlQY;*YrP%QEP9f<;d26cqGwdgv@!FAI%$ANC0AQBfU*n{MzP6WxXy0@F#7Aol-*IE z0_7Sgi_rGX#0Ga(m z)Q;w+aU*D7!g}M5lF@o54w}i_-Kfr@vuys|D33azW=yZTd3GF)-exKWjb8;{4O@@? z$D5*yTcO7VvrSx+==RJ0E^e%{N-gS4S8uw^1@tOX;hNvBQ`=dx)Rd`c0Vrw)rB`p) zO;OYJShTAXR*}f-envGk>v?1+?B=2s+wFn{IDs$et}CvpTg6DuoPIsDTReHzw5``4 zn~)YbYUEdCGI?(l`F3IFjjsHCrDGI)cx%&gYFE{&X?=}?&+|YdSE9HDKv31yY9f~bxZIw#pd+*X}yk)6G7;A6(M9!NN*{}5V4_GC_7O)_R zCTU{^@IoBWM!v8p%1rDz0|wY*dtln|%oOIT@TX6a!&LJMCiBUwOvYVsa&69XtJcu&VaU1%8{rDv(|{KI))WoA zqsu6{b?bp2OmGudEv}^7ZNR{ngqh;a31S0-0t+ z28m{JBvd71bs69IbkTGY<*LhN%QY7>%z|u7mxDY^SC{FL_8yG}>19F)hxE2P1TI3W zhpEe4Xs@bD^njP3)96Vb-tXg;C_PW5s2U?7%)t5a~LtaH^ZGq!5ymitxCZhSW@Z9Z>}s@ z8>3a@8Mp3D_FR*RN|9+~8akv8El_70Fd+7s zBO5s^?nBRv5V^C4pX{6WVm!Mf2Mrtgi_nJu2KL0Rh>ObaJs^%KBabAXuH(cJVen65 zM>Zy+C#wAk_BdO~4>648`^ zQRk>~*KB~v?uZ~T8z+Y<1f%w1EJ$kHOw1nBU}8$vm_}C}rk6q?V^XF-m6P{r-;%kT z7ZVfXkiROt#(uB|UeE$p4_vNCG-X$79Bfq!PeZyoVVRTDua8d7z+IHI<#bNh z4@rgQ$RpZ&RIkByQc9Ou_N&tk7mE1$>eMzufi%fdub?&YHa8kv~#HY<}Y~OrWsZ!_U=`vqC zI^XQH?m^>6dud$9ql9e7GoBk&XLApl8i>lr9E#Gh4HY& z%Oc*SCOx6hX@s4Z$d8EyqWS}7YW_CJQGg;VG6xZBLD`z5QWc<(ABKQF;0FYvem>9# z3_wRT$Ei;YI#w=jtY^%-DDI~j>1y_5Sg16@IyROYB1hCeUli~#o^z%4J27a$2W*L= z5>2~T4NvBfu*h5q7u7vel+$Pp~;YBUgtJPCCmxZGiS(zfKnUf?5r=D$^_cM{AC303+FJ1UH<2qMgBI%FU^{K_W zI4xV_htmY6xW<_W++=p#yo|PRE9A{*7|J3UsdBXbWfEmW%*4#~hu)uAbSYZi9(O;u z@pr0mrsyuP$haYw1&t$aQOP3$za_SwxE+^{9onc`>M*MdEUJR}VOjIgAlcTwauBfs_$ZrpXjm^+XhUDBu&La*#vAT&VLZRwDE zG&6;nIe$jYh{_QxU024~J(C`6k%gEiah(GeObaR1@=()6E;2ZINv*?^QwB>caNO85{YO}##O6`J*oQ?EJ%x1T%I7rN=^^kx=dttLgxw4BUgr>62m zM4RV|0C>qnyYWT4iAB2!MZ1eHUSY0$rHVdb#qM}?_VDP#@knyBmVkMF{HOTK@1unH zO+tkZk+j&PG{kF>gsIk@5s|GWEHUm?f6JsYyE<9y2(deymyQaCM!;SayF^RfZkK5) zannYC%2=G#Co-JOWtvo;JeM~las~qaf2LBzRCm}9Q%O4VQ!w&VlIH=72cu_U;TDXC z!gqe_Z-kHM_w!T4)diX-ctY9N%VKj5cxC@b>Mn!J$XC;qy5a`<%JaU9#wKjFjaW=g zV+B{|{5cO)kdE8dgl^HvFT&{1QW3?)Je@_O0CQoqt-(m~Jgv%pgSkM1IYI>TdjRh1 zrF-`5_!*<%_FZ}lfg0Pfj#KEjKS8fx+g&SKTV6Qev~7TfT`?tput)}d!L=uRI70ri z6=@$5CF-)hRVR-x|p;Lt9VY=X6lz}#VZBF#;dc7X(W8f|6u8h%W;DPIbx zUy2A`3MH`bO0^EDse4YOb3a0Q$BYHW{3pt1bh!^t?PrU}{;yyq!GGAW{ zTo|SV5DALVU*gXmB{$JuQpjPne}+FE3%kp7&qFn3R`iw`<^;fPw68Juqzx~1=W)hE z7uzbjFMvSt&o;c)~7MbAKaap;+ zd(Qc>pizCJeA^)uW-U|DKV0o>N^cpnT1P;JDFp{tqO@jCh$B-d>S)`zk(XYHbR$`q zd07xvxNx=VK-Lfh*-WYk(IR7Db(P6{dCfhq>lPdBR(KHI516)-fpzW1*yZXQA75YX zJSmIY$OM6b7AR8ZOnVd#d7TK4UPZoTXQmw_Z$^1!%o*>>dSPE|LmRy$U7moRAZs~` zqez}JdD;yycGx(STi8`mJD!1yE}yz`uwHlIb%}7r7-6|zLAq>zRjtHeHYhU-g``(- zkoJRfpj&ueZwGr~iOmx~MnP5BVE72cky$V6GmpuTC8js<03Y-O2;f~_mWkRAu?4BmDW_J zL!IWX4FU^vt|iNw7{rbvSKcxc3J65#hiwd*^~)lt6cPe|Qm5+rB3RT{0k5bFE};*! z+Z}@M4zo*pbp_w)dxQT$c?mu_Q*tIqn9a)Gr?yTndXS7+=xd$51sD$dusQTwn48y*dR4PX05!R&x{_x}4ObC-1Paw< zOcb8Fu<~5SvMU8ln9X(31g6~aSX2kzLb@{Ef|U_ay!IwGB-@*(V-ZJO$0oS7@TEoL z>{!b@SkXy%JN{)2iiay94^+ELH-7veh?L-Xkx0T5YVl_oP!Cs0>{Rd9P|Y5}*n%@2 zfx9c{K)$))8I)snI*ocIe||yjOV;+Y+_D_3l4&y0MNdxsr)n-Id~Lyf>*Ba~}xvFizOE zQBe0dS}JIK-28j2*?F4q99hT5%Xm;??y`L?a*K#ElPg$7W#g@<7|52BE`9oT7;MHq z9Lk8>Ph%v?^{}T=Wh!#ZS2sV?IZs486}xd7+d97Qn1geK3I%m1i|P&e`7TJ3(xgUu zHBm3dKJ`0(_D?(_flf3~Vr;;gsK*EH@iczXjL3P-KxpIuT3z)39xLTQ}U$V%9euhd`gE3 z=X|S0kwNZ(N}zb`8y2B2db|g(EK7G=0S(YygAbI+Qo*+Qm3G)r6R2DK>W6IdK0py9 zR@iR=(v2=iQt#~ajlFTW7rk<4?44>yAFTOIDk}0zGSo>tMQ=+<2c`M7x#~Ju<4;1) z5U*@`4p0|mAu|m`gfnz~`C7GbfxLc@Fh-wu+obFT!W@`K$UO&nJGg!s z{3TJIiCi*NH~8y34_uicQ#GU}Ap8!&GA0tlkrh@gzFLa78}oN%ELY<23nlV50zxf%Q8{45k|MQ|ih4=;Tp_i!JjwfxrAlA7-XA$c`$vMKO_EoQ)GS{|Bhcice+Lr8( zkrucdt}F1Z0JFYi%_oqaRU@Xv{TCtT;SI|8@gBkXpsi{J^3AT%Y5qyXoz&%=7=QSB zc&`mLeVtoJyO4{dii~_h89=w%7~CyDKGJ5g*q3go`H&9%Zqkgdat=j~Ypy`K8TOW@ z2S!qyq(Qvm6iU2;9Z3a~D76$P5w7at`qrqj4*e1?a)md!(np=5OM&VWV-=V)<@f_C zB*DENM;2t!0K;C}6bxv}EkwMVB+R_RUZ-$(GSzc+$C9DD)^7v7)mHy)7lWPmDW8I& z%G-oAO~Acg5oXmOAh9QQSyQF~5wyBmUhPHgJvgv*JzD+`=?D*6dIr`z*;Q`1wXb20 z9Lx;&t&d@4ZUlzPZ2lz9a7&W{-KPSTp;yj&2XT(qK+Hc=ZvsiPbujkcR1zg(OskfR zigaE8j>=qZVIBe~1op8E9~9nzcw~5<9;z|9aw*OLBOxrp=-0>}B#$V0&UP`up@)`y zlU$1LMBznrWJwThRRZ!UZ8B#NG%6tL88*R}F93j_UueHcc10e>0Iy)?g$&a6#k)u@ z<(Auv5hyI~tjv6hglrE&CyFy^Ox3NPeltX)ig%#9`ZY#Kd|NrY4}}s;cPa5xL-ZN| zJ{%V$hQi{>HJ_YU20uWb6mT$bD^20s1$r%&{*{7JBYk`~S}nD+fU~=XX1)Dj?;(fy z{5NBu>ioO_=f`@w^j}A!|3rOOx3T_D^xywELTKWE&{sa1W7@&JF?j$S>j#`5kUA89 z#s`@H1pzN1PMiu<4}lIiOyc1;G-bPKO%I8yVx{F3wys*MX=76s?k|7@sp+X+%G22N zbYt-IiPg=w7~N6M+xA9^%xa^)*3@*yjn~7}B-;wx&cTFT_AB%+>YwLcezXZR1fA3Pt)Pmdz5RTM|#&jsCAZ8V0|321L_witmtf3ycD-T)9vT4w=tGzM}*`O4fKkO+AdhTa+c zfLN&Ct*HVK0g9kf%G%}ojJit2`y0yCY7TAwRNAeGRH?a&Ln@Tjst!@%D%6*VpjH^l zOr;7AI15YV>LvR{l+|i=*=siX_80-6+ja#|8MSLcSPn=5$=J|FR6RCMd#0QHyN)Ou zD4XL6IMB@$tvW+g+O-&5DxL8y@CpuK39b~YRk_#xRJ98r8+BrRS+t?K;{iI6A{wW* zrcO!W3@BbIkrk=(bum8~eGFxWJ^p3b;=8{Bc%Z8d=tp-o(flryH!JpeRlht@>~>G0 zAh!#5HxL{vHqOs2wKxZ!w5$+naS3Wj5pLu}_RFT?R{z)nje-G-X<6x3Xdudx6x?Mcfm>>|I@z=qcV{c)YbomLSmnW3IIqp0DEfGwlxsXqn)i6r8tv#dPy|Jo97q4uP1J2UM?p@#T}{?_8m@OVR6#g zRKSFARcvTkS(GuAiJkHYcIPqBSjI6`*5KYqIwxE=)@t2^K@Tc66)>?}tTYE&X>qYt z+t^guSP0%?VuLEqsY@vCl))uiM;0o2GRjuoTV+_LuPm|Ya7tD;S8mN~czK+}DVf@J$n|eFeW;wFyqQp36PW5SE{2$oh1!rgqg`D zYRF-JfcB|ytroo$Xr^Zx+}+&kZZRP0+Z%) zub6i(Hxtc8z<-9g=B{E@L{`P9$ZX(Omq@N_VnVwDjis9SKSI?%s4GgAwr&rhmQ7YC zbw!Ymsv}k9Gn0fPU$s50^VWOlvZI`}mov|i1d$_=FdRCjMCxE zeR-LPOArm5MF`7vAzMz!ng8gx<7@7*)*Wv)a&yb?6CZH#90yklv=KRp?`A15PO?}4 zD>IZWx?g62k0^9@d^JC`9wq(YHm#RBzamSFX!r|iqusi(o2>tQ>{p2O_)2USnB2TncNO-TbJk?5sS#m zs8YID^e3qk$rf%58xtnyJ|&l3!VUYaw&-D03-ocm?t@|3y7WXpLMS7Myh(wo2K zM$SP<6mJU92=S@KTe{i>-lL4wOUf~?<+L{@!S44dEIAQ7L{N)VXJy8EvY8QnDzI8x zXPW=jTp-J~7A12!6#md!*j7|?8Ja9uM3IFi?s(+%aF@kN`4y3t0Q#|K8hDm=Vi^p= z;ttO{yqf@xYigg`=cN2P!#9Uu8pU>@j`0c$vki1(a>)v_J+hjzM}@iB*Y45azPt)x zbsq_O69Py6Dhsm{baR|$LiJ5djAt?gXV@k)pB^d8e#yhkx1Y>i6^Beh^Me}$TvY-QohGOOR7cTSr&a8O= zHY4U?@%wAGIQ9CKlv}X?UfaYdnGFGK^-F3^z0z~6%2|WZJXY6AW!&0;zK3=marjwoS6?jQ439%krVc#Q% zj5as?zT+)IFDy+g%=nkzF=ONVwv~&w0Ka1cUW_n(GL3F!Tc!F!m_LDi;vpM@LvEEY zc_ZB@Uqgdq_6=b021d$^7H`3Ei>L?4;Ps_<(fwvru???B;EUBQcC1N|`!AbYc~`|4 ziXTinyu)zIoO@IxvW3+%>!O6`SLQc2&lik5>9RPx-3gB_B%p7{TjiFG@J^PMkYji? zLRqkn&sk|cIQUhVzxroaDTUeNb)BdCa`zmjmpg73FgIb`;uzRX$QC%TB3wn>^)mMx z4;+~Cu934KphjjCC2~K0f@IGlh|em)=bH1&tj@$Ii3=OZ@h^rUrv2K^I2rd0Lkjs@ zU%9V)F*|YOEbXZR+~`}Q`nWK-L*)`ktXOF&XtZPvJ6!7$7tf>nMK&tJIZ@rT70!s9 zJ9^Zo&0nE?f<4z%Hp<0YhQ6I^U92y5uJvdP6ckiM2&$+yuj#0_#R5c_)f=~ZN?TLa za`LfyL6l9~d84{=OT1mDS;(2b8R6>BkeEr4wh1rZ`sG>ry6!%CIq1P?lw{UL^W|d9 zEV-Dxon~C~GMJmM7)gh1sk%NhCmaCc6#GgUxYv;PP^Xr1!ikl>wDKt^!DQRbijzRn?SEAyyIdTMq&0*8+M0? z+R0+5F1)+KIN)I}j)2``dP^6QW7E?+OrYhuZ`0#7b5s(Mqicb7{Op6~wJW#_VH~b7 z|J;kbQZeOz&2{iVE4E@#uQuk75%&gA;XxmCbNG;|pU`cY(<-lZ{T9Cyt7rLluQfKniF@~m z#a9W5UXFm-or+9%BoAN=;*&Z=hzx`t{#53p^>a+@eO}2gIsbJZM8|a?kT-fj+70-_ z=s&6kCmuChyucpZ&aYp(9V-l8z@$7N31fwCSGukfhX~~EkedbJy26xzze9w5(Hu|X zIpB1QU%z=PgYo#0Iti2Xj7s$>cC3FM${BRA%&29$;E`R2eKkm@J#d3)2Q4m3+p6`) zun9c$U<%{zvV*A?vH4Ru3|j{c%+_59bj}f)5$I`kk@xaP(;Q~a*ho`7Ax3T#SN{b{ zYzrh$93z|4L{{fwn^It2umw2(^QIh7xV42dmC;@z`T%NA@cSqXui~JjI@IQ|F6yFG z5aqsTj@SU&(IIVeewbn-+{At2(*7}fjN<`U=KLoopa)Yv-F-6~mGG3$L zBa96?8a?r+8wQLUsnK6zg-0W{4-Lnx8==FpGuVuW*pQ!T2Q+PH%9~^=cUXbRlpOzg ziYe3jc~hFm<#5#!@0Ke?-X4@)p=AaJV^KznhOT=rIR@x2ZrM>km>wsa9w&p$_9EhK zXfulol*KQh4UC>X5xLF6DcPQsH5Tb7aqSYkDB5}B^K3cWMcW|0H_aSBaHbsI6BUPN z%4)$dIDZmV9a=;EgQN;pIG~+kRLPxSXRl`~B6~XvbdQi7(j^5L)qd_9>5O?_!P)N= zW^d`Gheix&as51;`)PW~@B>FGowL9a_9|{!FnEiSX(Ub5a|hX}0|%jVIK~`jCT{2S zd58W^9R`=tV|B}>DivPZ+s*vPd(;K+`WH>k%tuk}72qC~=FuJ)oq< z=mi;mVjj&w%_DD!AO9XrDb^=T)F>uzkXA5F%a;bNmoc zKrRSIsZ)TQ!hCN0VN!rM(clI?foio0p@Izz1|-xM zc>zVP_YHOz#`vK9KqZ$Az~||NdxqvsW%5LaGX%}}NeTnw$~He|S9LtWU%7jWXBFb{ zaxpuH>kA!7KjH6h#hhV3(E(qP)C2emC?B2FBYONff5WiuUd%@J_|bo(w%@(X*P9q8 zP_7U7#+j@c@+6yh6{08@TDt+b5MRMsXf&@P+i&wf!!v5jN>>{&nV^Hc0yP<6-)S*M z2P|?Su>&RbE#w++EX~DwjnPx{{8|XOHVMQAra7feV2a+Io1Od9p$zMa7%-oUjU6a* z-NKRMckil&ziA5>yn&N<>!3c}6%pf^!cWf(NF^I&E^sP{3M`&lCfKV?Agd_l?+1n0 z-oH90Kn|hPD~Q_7NYlBmhoJkW8rY%saFA7MWrzyJaZ0mn_A&lS}YPd-P=-vgszeN}b7moPZsvb-xoEEvy%L$pkSm&#T+8u!UEQvXAhPrHE z;HKq_9cH?T^xTQ?64<4W9UACRRJ#XZ1!C6gY;V=Zcx^^lO+Dlvk8;mO3e_!kRWk{= z;Yg{|Hh8HK6EIHr@<+Dj%Y2u;vf3U|TPe>Tql!}P%|XH=T8sz0f|~=(pv|j_(tF<} zUa1q(BZ&I|I%uQJJMr2<;-$6q8B|EuvZ!3nBZ*1=Q~~bK@d*WQ`aFhO!Zdr0VXz0T zfoNt;p1jtz?u+Un0~b-iMd(-|KHTxdq034)ijV1!k`LuC>=q@HOU37kGnZvi@0GLV zpHi@t)n6X@5XGUUx8YH{NE!NZ=0PO+F#U#1r-oFQs5r6k8~XCv05_;Q_Bp4)U_r2Y z@I1His~|fF4DKqA{Wrqc-}vwL;jNfxp#a(x&%2fmFs|VOotoMq6b?Y!__l*Dp&7T{ z`=;E4wtX{U8^)BILO4RH)fd>sw3Z#x&?V~XB|$iKr{t7X!0xO%uMl3_(tpfMC|8M} zU6@R=lR_#2Y&GR(pQ2-w>0FrkV#Uhg@bVA65(#|}w!!#_sl|#X8AoThptO2PX4a6F zb37IaC0wv5SWMbd>!kf7ofY45<|kR5`N{^!mVaB{<^;F-xNXsEw|hQ!Iq$Sg;RZj! zgp>-|Vj%SU|@jEE%Dfjoq;e^+i_)>H+TgT&wi8olr>jlZ2EDx{)hT59+Y{W`j`o9TCWGwj z?CH3UFC?#oVH7PG<>ne z0lTyL1StbWke-s-*;&yQbl4p3ex6&fSE4IJOw1Jqu1P_%&oFv0kkg&r9tbBvhEI&| z5PA?n=7*j^ks?|ih`(Y^9N5(N_YjC54bVJ(561A27=alA98ywFha&6Zh#pzAC$R@%HN)>cFfK=94ILN51iFO3f*Sjy)Zjh|QBX+ZK&7J}Q(AZW9YcJ2%~y=!RhYbxP6euv)fBFY0$GksU{l8qEB*;}Fdx%~G+#Jr-ft ztRi%za{zohh|pnO7GZY}vF1ul#I(3nb)&KF$+jbkgj;+%^S3Q?cPZvAFamg4zC!ja zIDdp<3yJK(-_PK&{gq$Q50AM>mLveL6^|^`I%s@VoH}@V%GdUe6Qk~H8KCwL8Zm%nC2AS@_@?@kkNFoN2`Inrv!Ic6Q|LxG zptYeLHFADO&2fV!pi9eMl!#xWfVxR_%Y@sdd@`;w$&++IKSMJcvITdQbx^k5FtD!l zZpgvE0I~~zLhag0I78oWu3(4s8P)cA+jM(kS95{BBi%DWc+Jz)#A%%-`;a_GeAw5x zL%ymP{t^82{g+rx{J2vF9`)C+;U5*>|8B!#`G>oIAv+gaXA4`i{~^OIQqr-*5<%uU z7}PaeD;!(40J6AC2dv8~w4Gp+5K5m_6gw6w3MVh$< z+XW~iMoikx+6e?dsiqm3Ed{)*ZE(BJ^tx_yy7~M*q3Z!`^{2t2tscGK1U9|xoH`0( zj=6oCn~MuVqv(NJ%(mm$!J@yt_@*Mdx2!iSzr z@7Jz-4)YzU0ahr&boDgd7+kljNpwXXW-IWnvM)yse6P~=k{fCH>_X+Sr78cY!r_B8 z=ChB^Fr8It)sEN~9lCjaDz08EaOHyR5X1%dFi}DVHZWpN5~Ku2F_l{s*uK8X9nf>A zAa2**hKZ+4hDH6nkIBMDV#u~5qD!g<uS zK)4-N(DCvO%Ex2#dDDc`SZKRTQEfaIssOc@W9H&u*39Ek&UA z8(njRzYmCxzTVU#O~p}HcnC)~mm&6e)2 zO~^JS8@r7u)^Fmjk^hFBM{e&YIC5pBd%!y1(vx?n|jfOmchd2nRUu=oCe1KKi$ z%P4Cw6y85KyGZr(^tSGZRe4RX}Z2F6Soa!qINgXnKYRY)Y1Q9kKS}kzpYOPh=G% zUb;f}WJLm9HY_-=d0TY$J_=*5AU2@Vt5&z4u$cdFeUrL9ySKXT-kbj5Suip9;wy;j zNhCi}L*~P1q4#@iUTY}PZ8OblI_mQ26;JL0wkL3MXi9YK{LWotwr<7auilu+>(+f| z5`0NJmfC3MAa%Y+6XNB*WTr(VMh1aR3pH33dQ-z3EJTYqXk>7WpeM-MXx3$}q=GK6 zc-F!aCn(e$!nWt|yC8v1Vh7;Sr8!~rQ_10R!XM(}?%$&6oIhLdHTtFX<1aBdmrkkm z(k-SKSbO9bVf(sEqs_*SM}b}}rXj$GKRP`#NNMHeit{PLL6wW^U=^ru?l>QL8bEAy9wZBd?Bp)1TA&o3OI zV##9n!%NZ>(3Hy4Pmm{z#v8=wqE2abZOB-&#{RmdyOZjfPiyAPqTtItz&q1Bm2Nt* z)deS>TZhZ&dTBfHnD(%p?)o^%*m?OiX)q8NL>EjSSwUL8CxrxBjio-jCj!JKO}$42 zq<8Tq1GIy#j*8x_qfvGIyR8b)Z*0@(P1scDEUA9t0}2WdC?fhKPzrEO7*3k!@^#In zMiDB)AlKM~z(Wnc`_hieFD~<-Ot7l6$e+t`!sO6>x~0fV4KzBN&HwH;P6?$o`yoJ4 zRkiR-+{C6w`?;%}_WE@H>ZkFJNy2G%s;4mXrKF!zN&C}wzo?otYhVJjgQ<>C3#jt6 zMMhapN1tI{v}|$SHg_&~f6H5Iy!q_9Ixx9c8*IvSJ;b%o)SA;J5 zGSXGeuiEFMqE~j7%!alC(4g~7cb5YyDX*gX0)T-iazie|$vsFFOLhmaNB4W4P<$|*M=?I{9pfbI4aHunf z#kdJW>_Ht-@5yHsZgzB_a`yduoBn#)0vE%spY*P)UqIV5qGv=gtk<# z8B;&Ee{g=SNd!7|rqOIKJ~ljqi!nrt(TDS5A6&BTFm#6~rKP}^J=UClq%HhJoVMz= zNBT?-45CCjxHiL%u#^5VFPsQBcLq$DKah>V&65wUDMIz{B?ST{lF4R2~+PKgs`**-*LWH=yK=3ND)nNXNc|#0`sj<5E zpPn3p;l=d6&S_gZCM#Y{owt9BBJv7a*W7S!dEy3#MrIj%O}am zy;GkysGt7Uoh%`WgO}yO*y*sI{6ui`#t3GVWY#us-GDLf_af>G*xR=P77`8|SELH` zuQ3VK*4e1{azy<2R6JFCNkNKX8TAW7>7UC9MorRGcCC#@%=`LV0}tzqv^98t=8=a3 zW=T%^$jHB56E2eEqHJ5bW!+qyn{v6WIyYVJQe>&Gl2zV7%dS2_UhGtBtC0y?LW;E(M^>@rblVR!T^HB=CYlR?Iu{UaG3LMo5Ad}ac}3iz3VFq&tyNc(?X?!$;%u9Ih?b(8 zXh=qJlX{58$0$c4h8H2m-VaJ<(9y^jX{?1lh~w@?jT@cd|E& z^BS?V!(`0|&nMKYuvP8&`e9G3RnOFyy5oma4RFSNIv{r!8=W(joFjDymFA;9LZrx7 ze!zf-y6fQQE*P$N{+bl|xgJ9KDT<$+c&((!O{3qlbQcLHbz2G7GvLITy>jQ(zlcJ0 zVYSTqBN?o#uPgQzQW7#U5~A|M1b=f0bGM_!maBpqd6y1BPu#UAE8Ce}>@+0FYju!% zeY7{B#@^9hOP3Tq$UsAY6uY%tS#Dv?tdDPbi(}Dt6O@s<7-#LzOWV3L&u5%Rk$p}t z8*i7MBCj^@EU-fo(9)B#w+$bb78EcAs;N2QrE?T@XCSCqhzx3B5izPWr-SMa-=#mu z+T;u>I;u;=U`q&;HzI6nW86fFc1}x*6Lw>xBGaF9m(we+rd|e zcCz9X+qP}ntk|~gq*Ae+x_OV<{jm3$ZT^`5=hMa*9iw-B*U)rpIM*%@ zDCr#>r;=Zy<=m(ShUuyD!Yyhfn+;Xy)Vl)5y*P4SF)G0C)AxqhK{f6oP5^NHMkSp z(jb}U#R1t)z-w}ODO}aNfN{J1HY#i_F@j=0>L`rDO}AHXWj2fd>>MH2cKr%np*83r zJNz=^3p8Cc7XgQ+s>g?n%)A^cA~}cpyUsmxazyP^?V%eRvTBHPSQ5v&bCS5lV}2|r zoC90i%6d;)OZwv%GWz-dxbMCP+`%S?^Yw;9!R}#j>kTK5<`cYTi&blVic&UfxXI7ddq5g?EhvtbthP z6t#<6y4C`Q&$PH)iJz_0-TE83P#Os|^{omRv6)%F<)#8dUWASF@NtV3tHaPr{MDY* znmDBDr+UXMSnF`6pyWj({nbx73dVZ1supev{8O(R{1Z*wqR%&@%Fwi-CEm?*O(Z4} z@Ps{kduiR4daX!$&77p-nPx*5UeLB@+N@`btbMX$cXwV({RN>falhi<2@$+7%(0#m z(R@?lTj4vSd$67>t6p#zC}gomA`#vZFi+h^dWGJzneKKx3;bPgkif5C4ujh)ARMYl z#}-@Y)<&E`le@t$qU-f3jM+woaT-+SE*2EsT_P@rrd5)dSK zi%E!%Z7TY-s|QWl!r)D_BxAI5p)0Vw#~*Z8tx2_2ad4QvBv{9!o5dQG^UaKk@76$6 zmWY}=sVtr+ff!|!-W(C=!>u)Nphw?SPesyb=w*j{4{--nC$wczIy8|fXYDaHbVSFS^9$kGKW#}e%p4ma3dIOMv;Na^bfWsqGogJ3Xzp8R4G!Lp~7 zc4as+rs_S2a41ixoh_kjqK2~>7tU;$El5hi%g~OOpu4q=+?-!VwvQG0;9Y)fr~89c zQQgF|cEz$-BIZqzxijFbRJX7G8+!@-m58tX-mW*66a525dYL4%d$feH;WX0v^`Fmq z9W9cu8i+L$m|N)DM+aSeJd+WJ$H<*WQbx^wIZ`b9r$%S69Pb<-G>DUjLVG=Xq<5SE z(5~EIq=!N`)%};zgIoT`t}CWvCRok3^1*frZhMG!=G5GQmvN=v5+2S;`Ys-tKku^YXCu<((sU z=lE{J%crl53Ad~STi3$<)Z>IK zw$4YeE=>2z>_9d*nIkqloiz(?ostHyo%p`8+@64Tji@-E(wll?@ zIfHA?YDha>$7%Iwc94=ag&E!PVq!gE?V{7`fW?PaC~g<+n$ODRcgkB=v+vV%J{0Am zRN{6_`yGJldaqZPTi?A1Ve?8Nd+#`Z;h_E}#mIYSC<7i1E{hWZ8Ot76S zeGBHV!T|-Ohv^y;=j|=!$pQ+ z*$aNQS1FJ#vIV(=rxC&<6tJ+Wt|u)qSKJjTWw@@`y7U{lERnukN$Z5NjROTrab1D> zg<`4`sXBj}pX(}kiFQ^i)w)uaD}M#@6q~uGHu?kyvj1k$>jIa5rEvNMHspkEHrEOy zyBJh*Vi!bTF#y$#9C89*R>YxPh=yK}`(2P3Uv#xE`${07&;b;9I1t9^O?LWLQ%Fc8 z=UE^5xaaZJqYqJ2()Dw=XpHB zANYUZw(ayi0PZVpPcF_ICF;>z?8GNV&gBzc<^upY^aC48-KbEUf8Q)^BvC$D{ z4xKI=@gSU9=7hcEgTb?7`c96Ji+IG>VjNdP&YnxGN7@}usm->qqg!_2qGY*ZJt+{ci{dF+EVWJ%4do*R2m9Ob#yw`{_#F*sgVF=V8XUx9z{APOfqjCl4 z6Bz@Cw3jjy!9JOM+k1^qSakFy{c4jpdaM=tw-IBoj;yu19I=WvWp#Xzs#M)2)8L0^!_EVUfA3X?pe z0+4*aSk9b-;`?jyVsQ_*pBB)Ow9+~#q*z9RDJJ{cds~_;e#PW9+UFgu*@Olb49{$w zuf~c?Pij!a`Xc{8`$XuFfM)CzM*wCor>grhYKd1 za=DSEb$ECHYrO(5-V>nlhUkE=YO1fc8EFq-!;rHwe)9`sP`}yTMY zMP)qaq)3Y0SzG@p+6>k(n_I(hn4?N(q&wPuyYRW#JMZLq`-YkQWa3IJ*B^KLOCa)kzfkg zaEf6o-$dqa){QtV=E2BpN3-dyC+?H;_veQrTt7MM5~gr=I9KH`LmOD?&82OAIBuIe z9-Ud4IbkV-inkI%C~22Bu*xNo7x@(4d8=gCt`^u$MGl@nc~fqUe|Q@jr-CvzZcVtL zlX{nfVR+{dR?Is&p{<~rb@QhWW6s(Q#fWkyRv=Mg-zm^fDr!pg;C~^Y<5^JqyBDgY z`dbwh4v4P0{Ja)lLeer_OO)46#_!p9=;}6W&rtKJ`W0BHRQ01`&tuAhQgJ+6Tjz6A z#UG}SChkRo@6xa(A?V!r&^s_wJ*`+|jG^B3A zV2ThT#^cW)0@i~EJBylV?jlHa2As}lz$yoaB8DbcsR8cOP46&!kxdoR1mJy!N`n1q zhQ|n(eh7yC_?8sOxCdC46$c*iw*89&je^L@tdNVR^+;qv(?HTzPMF&#kS6;9z0w8&Fa3On@OJ zrR%=wcl?vJPAooDb}Qd)s5hnHkXV+KWYzgH;k#hH#U2!INcs}J&wHUr6HYZN}KvC&E92YdzI_^7D&MNcbl*Uj`fk4Fnn* z8pK;VM)GS`|L6JN2KWD2>;B*Ikjctpwx~kiy=`Lo$C%Wk@KHHJ$zg6#OeKSMcSlj` ze>9kkd@J1CI7rzVa~sBKjemwB!>IQHmC$d42nXMv6!b46mZTbY*RK}s;0ZRToSTz^S8J*um$HER)45u;i*@lP5;R;=heMl5x$c}$4~C50db zx0yoO8uYeJ-sAkmCoVu)eioBopY3ZmG%i7|EQG0xwh)*7b6SVUUfWmn#xtq}RLuQ| z$`PK+x*Wcf8r8FfW9_hk@?2VI&>BPbg6Ferxcn-nVP{T1br>9eeqEtwKj-{wXKnOAV%Mk)Q<}JNzq!G)GFEbzv0j zz%W>$wT@_v;fZf|GVxo7X2?=cxoH_4qAahBAdBLFg?VP13~qJ_IvZdk(Mb|(i!K81 zwkcauO~Bu~h{zw#WI^ec+q&Vg69n5N|0zv%cERN%qEZ^VrG4wQ2jWRx zQZB(UVoT*=`|}F_45ZJBu{-nEKuY}Ef&Aa}1`U9%iJhzCKlOlOwkH37(s{P(jtZ_C z+NaB%vEfg!;F1<7E2`xXw9FJOZQ>uuefc2;MSjbrHVtvbW42%BN$iIy^PP!AyYB0K zS%A5dIAQh;;dSlYYj%efN+~`e9>vMF}Iby?bK(^}cRY%Taa2a|xHR2bnXyH>Ro(f8*9;_AJNFX~SJrotdAGS+5Rl zf0j6(mN!cV2258R2gE4Q^*mlb?_)v^BlOKL!&KWmS3Pzip3c8HcvS7LoFB*Fx9yMg znXKCL;vCcX)af^DxK!^YS^88SdE%E}N%E!cPhk-&kvDw2~bG}CsXxXNrv5Z+S0Xypq$_K?78afM>Tl`@$b>P!Nd ze=?h2M+7%E(C!8V7ojmIarwI?b4Xm_9+S7pqvs0IQpo2;N`*;9NTD<466t1f`QH@M@CbQ=f;W+q-QYmo z@UR52#!&0oC&yd83rwJoN)!WgxD`A2@+~YW4V*sfshhx#kj&0>QX>@Nd?NfEm`i<; zNMFDcU`J7l2uPE88IHw6J%QOZYmTVx#wn6iX(xuW)5zz1>{O`pVE%M_u(pn^RYW=A zHBrQfyA-4{v69#r~0AuuU^!phwiaPA5aF!;!?DQi5X{sn4`dr=J+KJvhj? z2H;S!?Fs_JaS6VQXc~-nf$g)oY{Wql4ib|x(%aWJqOtdQ9iUZ-ulSz>Z*kt`if0IV z?NSed{bF8G*w*zjPm(T~^XJMj3UvW9zxXFutuiLrYuw4h!kTa*$>!4}wbBLSmzq?( z@15MuZw$O86nMM?N25uLoQM;-`qS(q^3Q?@#3TymjOm2dJ!0kKH9!$h&w-0Lc!a4p z;9!8;eT>}3k^DO#elG2^x)XqK5e+49?TgF0H9o~WmC6v~4lMxS{*iMPZ$6@Rc*PO% zBI;^T*J&AXL$L#9HMLo?^&HRC3E<=UgiO|MWdNK%H@f3lJ8Jt6Wiph*YAW8Xe8K-& zOw#dpA@;t6jhlZfUUGizb9N5qjE44x#ulcG#&$L~cD9a;06Rv2t-Z4o<9`z7|DCWU zWMXLVWa{vr{CTqShBU4a)+a@H2gk5T;hY7(DpeYd6F*UxB3SWaCIeKIo8TILV*Hfs zs;so$1Z`iWfFF|D>kO81Uvd%WUG6dOWY63E$qlEUu@@altQ?`XK#TV|liP{1l#2Q2 ziogyNTKAbI6J3aM_=Hd^`MlM(beRgG^I#%wj4o2u+aj`1QHO5z ztN)_EYL`DuO}nfp&UiPnbkUB{HY*7~X&t)RYNedNK;t&wfkTMG0uh#UYm$zoWBxZ9 zv$V#eWR6YficUn0dT)_pjO`nJKFK!AZ*qy!OD>kdLFxuOAC}{a-r+CIQKB=F)p&H2 zA%p4MW|}B8wwrpIg#8(mghM3+Me%j~A<>h%-t{KrlfA}VuUB%3e*{^hm$SnxPTv+5 z3^2K0%`J%U!C%nEzGVxjfr^O(&HjR(=Oo~no!;v>;$Quyb!H;hKP7L)UNgDng#0LQm9B#imRgq}QPxJDL|D==lZ6a177j$#*0j~xvPOKON^~^n@ zM%r;obSh}TfSlyfeHIzGFR@psp6I`2oMt6zm~hK$$nnsrKqgbTQL6=3W*ayKyw5!{`%YupM zBcb(lq+h1+dC8dIJhF`?SY(_QH69en^U@aQ&Ct#<#M+T4A?PV-8uf1RGTcc!d$?k` zBsQ_o%+V`XwpkpL=3KmR74;x^h&r0{kYnI9J3p))t(^k{Kg<>xj!H&_(FpNQEXg2! z)u8P`zm_sVUs{{jS2fivOLW`dBUjTtT!1ODyBmIdlo-i_(G*9%FQtOIrP%(K=K+I? zlsIXtlutz9YPG7{3*sVMOPfra2`^W0}089V9;=_ z4|XN|c5yUz7YoQ%>$k+Jgv2e-0j46kKs}qp?v2hYjfE0tLV%UXH_tB@3tP6!`Ki;o zV6mWU$%X4x&0%uf*(uVmlTFVV{wJ>!-lwX|&o@_JkUGpB`2I*I`T|YGc$j`sb=e%H zc(?*6cl4A9;qT3DMf(k_T4)0a5i@Wvkj!4pVF=I4aqFo=_q0ZC>O<(nxu^qoLY;n? zL)Xe6`Uv}0&mJI*->#)WcA$w$_A`Z=4zxkfVGQ`f><)NA$wUoy5b`+vxeV#E zsdQFwSWC00CPQphx;vPyj6x&2l3R7X8a$ce_GV)9->moPDVH1++|5y*j>g1R^x>8A zW<&LHXTK5`Fx_!$0ZHQhTY08O$_tPa-#PK5O_i6CA-AV%q#(Nu9Ya=@=2DsUG}Aa7 zP+yy%iO@I`Jv@|WiU&7;-v4x@eqF`qbZlhiucSPQ(wx`PWMX~M9FNL2`2Gzg*m`*~ z9K_O8{XB@xX`OgpT9j>esOqJG<2fsyv4|e(T$tG;10XUp8`o+drRpXY8RKkTT@@Q>aTM zEb{OoIgN%N(#C{i#Ik!-uMRCZuST?b!m+9U4*c?F&F8GjAqqA_hdMoNB0Uw7M9II! z6kUtLlo?42C^Dm+pzxF0gw~!a-9>sNQI^)i<%K~0?8R$y(L4&T>rKoEraFH-Qsw6qRRy$^cDtTnu8wuNzgn6ahqS>2C%gBo+ zz+%v26_U&Z*Ir~O*bC*#{1m2wLonnw?DGI!nSa|=?xr?i<)$kld(K%^X@X$48x`>Q z4V}evgg;RwI4W6-Njj4xh!b7(Ggf$|4k^~+H>wiAwub#aA{zYniaokr_-S0ohtUPm z>kCfga3Q7c^kdkE?R}Y>_5iP&#(?K@zVT+FR62ja8^K<#&71c>{Zu~>jyfJae^co% zM)FsbRvA;TYT07CCd=zWrsD|oDyY7z4zRz=4$Ry{HUw$ZGC!>^Rf@ZqO5ZpY zjwDZ<%F3b+>~6nh(r|AG*MQH&p3rR4q5sj>!g6G6!o!| zj6PFg=@rCN`WyfWut1KLwmc_Pz62iXNj&m2%*4OpweQ4xjVco)vGfvdprhdxU=*rS zee7i_+A7}cGL7JTHPT6NS+;=2>@$yR!5fWoze}u#6TPMG!Fc*2UD0^mm_DNuK2Y0{ z^}XO&4i{7^3P$+`t(T9=LD=mqxZ&2pb(ku4Ks$neguk_l96h65`*6d)aVC~;` zX;zmFpf2(?(e|%j1vsPS0tYe}`+0`iV=?3!1VZrqe1RYY4Bs?MpYi=vx=j~%Vp~RO zaF!LV2F^(8{F1!UuX9YFHAed#o7{4~>*ozc20bUhZM%HalL&8?gxMB&rSIp}nO+}y zxVDV%4MI==>`4*2PKVeLJE4m(Bo$RFmB&*Rq7+l^pOclmPpr~0#U`%XVm9xc8H0JL z`eBY)U|s2nEZDdYL4(7O`o&JLMKKj2IQUc~#W0CL>6t3)iID1@@OlMeXt?jw_j_cf zTroYn{ye@KTf{3hC0%>1I(!33$CSFAUzU#!P4SW4m#QKEtxYDS2wW})&F2@Bi$7h5 zzUr~JuG1QRyjEL-1V%y<>)fYc4q~_t3A#uB&7i5wJAFiOuS-tGiEF3~@+{SPK?i)Y zuV`4@;6651lw@{&oK*p9en!aQW6j+B`0@ z`BVHZG%2Do(_6Gv0TVa(R-tCu{(-RDUwidegw2g)nJIcMR%DPC^)P9^f->Kq$e=wYQUiL+M>z_i6yF-EOUXy&V?x6}3 zlneHVQw_)-tADN1!#pSo(s^x64h&rqd^nz!TAmh6$i~dwgVjD*(x3gRs^VhVQ|3mR zo>8%1SRZ&zju`fzX|;dvtcgOFmZlwQZJLnh7#Ez4y}EnFaB|!Ut}wAP+IbT4uoGT+ zp)M@G-~Zm@m&$3QZN|1Fct;3%zty$39D3x?zWuLP#;!nJ`1&)nkLLYXc^a-#{O#a{^d9{uhYR(6!f=_&P5nc$5E( zsm0%jr{`75*q4+J$DfE^;&RbiQ8zkR_Os>$NZ&M9uX4sa2h&rwz{&aUFVZ&+p;3W@ zqv?&qLxy0NJfM}l!*^b*eClC^fX!U@qB6pNpT5+st}&se&$;O`cb)M$;T80J{B!cx z`;H!@>p6>%IE}sTuk8yETjSkAB1C4w$Hef)Fh+(D)w1<>tU~qm2#xRIi}6%!W!rGE z^XKYrtlXztl%T-n2<3HK$eAAB-UujP`5rZb0_$Q9N28ffSRa1)G?Uw9E53toDiIz~ry7IRP1Wln2KYW2BgE5JF{ z3{#erH=C2S5*)sJ$x57|*`)dqU`&QC$GoV+&SDibAX#%TVZ7$$!Q9o4K3rhj^y9By zHM*(s4N zY7sVxj^@O}MrY7F>%UjEG@GB4-#186Q===PY9q#)y=>`o#}i*~{h)oT$xE=bXla$S zBvwuq+B>C!i}#?0dZ0N|=xHJ{SQ^19iwndbs*~!qlwv4hh3%ZzN&H*XJBjYqMhI$S z$QlM^_xW4n6&4ID6po@_XpykEfx~QBRoxmURT)zz58kA$8xmu;*Rsm9D$DERUOa$X z**`G@URieVdEnVNEnsco=3rbAk{}yy>I06TUMRV+L?OnYe6g5dSp7dhN|~{GKd@j7 z(4H*anEe!tDg9*9_N*}5mfW#FeEQwkHM)F4%97S`@P82ED)7=r-h zvPtD{boT1Grd;ne2;qDvz1XB3tNh%q>2beDE5c-XWZBWskK$Kd!+T2Uc+v;Ve3mYM zsD1@$c^Zu?XG>+_g_ie^&0+>Inck@U1i{`*E-*iwOj5HpIpAZQN^X!!CY>&}u^v7Z zUCtN1$cAniErO$IGBLyaR=~<7%PA_U^CPs^P4Cn_P8{gL>ajAo4f4hS!=McEeh>9) zPY9`>4APoBpgnL~0Ix3_WmlkWXx-oC$&A#Nzs7TA!@2hR)>$KCR|%0-@H+LkP0&sx zU9cEwnf~ll`w=*MA;{9Rv&M^GdUe7Mbp|Dy<6#5izy=g_^)j8}WSjW|L;;W44^38` zm50G$p)IROe%xUp-PR-M)W8)9;RmVLSo9F~0M2wFF*epTjUB*wUh?Qi(n~z*Be?_H*vZ6n0O8DoCGPrZ%pt zmRmSoQ5J?AO12~T)zmv z`Ci~IC(3rKbkg?0Q;XjzDPs>w-xUv|qiDOR|<|?xQ zc-cCN7ea{e*R>ZR$lmDI#RceQ3-8rBnSJsJTG>|A(f#%e%tI=}eULh4;+=sGa-ijNH~Maq7-Dng>^ zL(_LxaKeqS5L(RE$pF5p!S2U4n;mEnJR4y#!(J{U4RchC1$I;voJ)0Q}%8_Mz0Y- zud&6hf#TUhN<0*Y^KQ{48&eT}fhUMh@)ch@miu%5SHiurXV|Q3skYhDMaHfg*pd~v zDA~)92(B^e56@jEi>S%frw)v$hLM;C;#<-|N`xen29C!EITUH|I0$o;;n4JX%;hzq zoculsak?xm8la`c* zY6%? z%IZ8Yq}TNjYiw(Ax`A?KZ=e9MCT3RZkzO7bA)48hK}pkb*x%T<*y?;op-WSoY+ z)%!qbfiw4s`I!1$W?rL6=97<#ZIpE1!-D3jv$lVtTWOvQj^J&uSnRonzG1YnkW!QJNhCgcs)!@^5FzSNu4?hBwm1+BAU0P_)uP&lyWLGM zCir)cF8eUR&xI+=zrL4;-nFQEd@ah#lCWO}8L&>ln$@$S|6 z$#dsTuV;ln*ZbuL$Itw_#(yhqo~e3|7pfp_p1E*XMLKIaUgKZ_io{K9ppwT7q3Hm< z`8mVi2QA4(9ANI8C1X#ABojr=`qAeSUffl z>G#aM@*gWvDvb)9m?t)W*{!yl(c3f{Hd#}y%3g+z=rrx2*_aMqma^1ZrQuv^4(S;@ zn#HGY92nPRC^I6R8^V&gVeieSV-;!}4_&&k7c)WA*O&KKlOh-xZb+#Mn+#r}xowl$ z?Ui1%{fn_;6YDj~+0OlN7qZxdUH!L12Ve)Ywbt}de$(+r|FWW=vH8_H#Yv04fhoyv zZ+jp&Lcbx<#cKv$>2#W;hQw+XEoJLaZn6R%DrIR8foMu_D#+i2&?InT%MzyFvRTqa zzxe#9SS&}?hdLjdvKd{0)2O$=xJHSu#^6{;L<&1LNc0F}a+y!?ufS z(d=MM`_q4fK*;Z6zpX~MdDF>lSz?}oVLt(d0d8QZS4JC_??P?9Mz<0Qj_s$Y9Pk?A zaT7d8>l@FdMrNc7eH-IzO@dmbyU;8B4$L_lvX$J5Zf$o!d8QjIV_BLVO>{JY6zeF+ zJdPJC0t8M51;YV7f(%6paAqRWehpc7vVc@j7scV54T-JH6Z{ljwRm6~coB31^<< zrOxlqym|k|N^1HlqOWv9UgHrQEp365?f`aUTQvI*5vEGSzT zkVAAzhf^41XFtt=5@{g-BwlL03EYSY`;9xwgs$TeG~|**xiiuNh+co`24^#-38&R6 zPv0S49Xv=Ar4ahpFQ&tS(IvC;_p=ib_M5*mSIy?(Jq=H+#n@_D&SIk#?K53R%Hl*} zxQXz%zEGkATl~Dof$J>!0{v*?oDwNOvOVBKiZorbFD5CaxI~}J{@V_hC+Y=tbw}ph zOi7b-=o38fu2L}AcKmZRq*>P2@4m#x8x#DayJUENvm;Gs_u7)_z~k@y@GSlo1AFo*yPKq|wn0 zTr3Glkor9E@Lbsy!TtUn^V(Rm%^$^Q>hF1|PDeD2PblO&B;u#gnXkhqdGb2uBl(z_5=cjKec&PDx2+f5Hx^2lWLJV!3!8 zN5sISC}3uuL44bH$Z<0|@go-qVLWS}B>y%GKy>j6H<2B<+lM$h9}ABC(lxsSIrhOl3rAjyy8}MY>5HIj4K@CbZU`pmt{{dSg*D*$ z&U~7kd3A{7=6=5`{e95(?JBgrw4E?tbxjPNCMJwP8K4D&W@)4wMQv$$m249=TDrlMbFa_2D^u~ z`(99^N)V{1WKo<~mMoniz>7=EJib0x(|TcdgBJcxz%N!9pI1pno2EX&obQ13i$L`D zboB<`rPtF?>~}QR3v$EWM>nKTEJsP~mSr`)Po2j0pN65eDP*N>x`>owm`L*#g^o#9 ze+-&kz0!-YBguf~k6^H_xG!^NT)-_o?!b~YIm=U^YMxR=QSXqRh;?U)1I%P2bNr$> zz6@Zu@03hA*E9_>TPZ4(lojJkQL;`5A{QGM%~rVb9dxk#d8J`GViRxPAO?+^ZfbNW z^;b!pY6MZDjGro@uIsPW1mG z6PAVvAqQe6>umD3>bmMW*BOdlYid1>=8giZFqUfpph0VBc<1GFTk3t^T@Wi9MTBM~%kzygI+3V`0jpN=%z>Zn{ z6btU5)SuGYt=1D82GB#O&LLx+3vAeCGATAG9T)ry)u&CoB29-_9+fp67_HzZMXnY~ z+!N#@{E}z*TU=}lAq%!D@qj-}zt6*9GaaYwI#R4SJOx7FZi05iR~oedQ^4|In=X;D zswsP0Ds@M>g;+Yg+Wk=Z+JsGu*VoxNwwdPhz~-BQ9irm{V^5 zu{s>W+)S=$%!IkXv^l;lH`(B@7V>kZszC`W9&~!1424NePAyPmw5iiyA?>C&?bG+u zR>6Wr`>@+4T)Zq+FwW>tH;@XeYCvS>3b~=wXX&98x4eCXK~*{+Fg((ff#I$ylm_Qn zJUE6Q9ZLPCoU50>DHX?mZMIFEuD{p=q8u8-9p~X6SV8Q zj&L>udOW^>anJ8&B?Y6!Atu32V5OM+Uv!q8<_-CUbxh3i8M_dx8&t-lwn~o@z~$Li z%1Z9a+08-%bjzAQ7G~Pb5VH8;1kH+Qi-Z@HTA} z4N$;0);cPkXttT@1@#z&f!c;c2F`iSA+@B?%Nv%6Na{~!dK3CrSaLAK*U0FJT6l)Z zo$>`urN>xH@>JkwL)~F7EF3MKW<*_5Zv-?gie^Qfsv-Z#WNnjzXFG)cd)N%T7={>(n&|P&9u8nU=WtnS#jRgq$v&biLMbg}3s7W^j z8^4htjEbH>|KXGsn}Ma5C=?DYJPA@SI0=psJqcESd10wPBe{U{Qm7L&LKH;S^`)TU z&qw_XWwDJI^SVd*hw#18YP8+{ajb z5DwljUk>I5ncs0r4noWUQ4Mg}za9KB@7k2eCSCiSo;8QTUiZmtVae$d=I9Shup_HG zqVDR+kVZOM*ORD4TyQ7*J+OW>rei9uBV`Bnc>)~bw?o4$^_8?jGMkN@N zXHNpms$BP2bf!nD?Dxdnm^l$PtCH-KgDQ1b!>n{>{Zrd|W3Ac&4*NVhGs5hS3;pBG zw<#RQOVeF4rklMiFQ(`Ad*YjeY(@QFc`AMKw!hliqX3Ml*Ra^NNkH1Gw((#Z7e~}M zrcobKQY)6nwmQr=6Zo;VXoW2XW6fb7Y*H3+)2K1G=CAlsRF*$16sDcx!}u(Sl5Hye zR%4-Z)t@mT%WBckM^kfdcG);8;NDugMC&_*(PV#w=YFy0*B$Sq&o+NXdr)PSNhoG$ zW%9JN*jZ?=ZLS9R$w9wVhG}V#zEZGfEmq-~K|i*{G)LoB;qgPyAD1jI*<^n3i9&1) zFPG47w#GSbY`n{9x0IMwL8ovCvRAGUwPm)Juar3(vd?RutQ_P^GQ#X?VnhVpqeCx$ z8D$w37Z^AGT<_bCs??v=-$*Qt^ z#SZxK!>V1ehgNvd7R>yjH1h_{7?D<>YAXTIIS6B61bDT#w!epqIxmrBCGH-X&=$k6Acoz{X_$(gdm99xO3=Op&W>=nQ6R)C_=Y6BPvIfZH*_)KWKW^g3Js zL(%*cw6q<>-4iywP)Ig+5C0MUfj@VlMdnn^RUbARQG{VxYXSgxw%#;b3^vjoIFT-{ zh#q`Yk2r#8b8~$OeH|5UpDye~ zIb_|)kwoT*b7o}8B_C(M1xf;Pec9bpW6sc`S#3z6O#rF0DT;H}#qaribXeCuU!HkbY6;Q>X`NMNX6o z-Lfx7;vu}!c)x{gWEw27>fydxx{9;=Pa&R3A?C zfg@4T@uDmkk;BxMohE}^LS{uPncv5W=%f=pz%3hE6`n4CFOY2KiRUjXxRB1@WRh(b z?jpDq25|08!EOh%lF0Il=q0W@qIDwlRPAbLUi9BMC4oSAH?M>I995S1k$?$5)a6{! zYU|Tm*~_>m*G~aycanJ7TT63IhgV9aAmN}LQXw;Sf5!slHUU}q;_qO`gogGQX@wS! zT#K`IiXi4upf|3`sL!+QfYPYb&x`(!j<7JuB@eqD>`MELuvyuAX0Oxd zX-`PL0wH1f!JJ(X1q!`^{tR_ajy5Kc8er0&zR$+Kw*+OR<;O4WpHVJu_~Jz(H~3q5 zv6D9}F1jbz?h}?n zqNTHnPl_daq08__dC2tT?pBKX#}&QJ&k-*CX>*9~iyQWkqp^Y?u~?t<*uCl{Fk8Wr zImT_9L#Jtdwk-~nwVm$9kZOf#)uup<5hL4DZ@0az5{bGck-^D`xMZpr&O+x&{!H{> z@5;|~lKZ38LA4x7OXHYa;W%?H_84<2Vjk4UCrgynv3ou~wjspl@nTIge@cG{eP4b9 zm0kHzBK=DM&oT-YQrX6bfqYuiC&Bl@;*WR(d62BSa%%KkQu~y>f_KWPdOS3ZA(BuK znsn9iZ$o!=wRzUwbV(OV*=`k@j0}fAMG(zQx^0!RYG$g3M7W7b(-v&DNGw7tTykuJ3)%$7;0em7;Sp7iV9R_IVFB_mX;Mn`z);?NlIjJ1%9-gMiCoBSjtq0 zwopcmh)E6o8rNBJ0BxtEMK37u@)AIPr+SEpsFxUkbL8ek`R1{;rpyRFFh$5(=2N&TjU?RwvXo^;tKyG0%8)w+ zCJ@`Q;QfQ0hqS+QCddQc)!#x?LnLcuf%VBg?xndhQH$&c;#B}kSYI>p^94VK~7h3A;48x4S$`S7z9+o#9yGXu`Tfz)*|Nm@5#lQ0pXyx$_(*5iAGF703fxAoL|F3D2Gnm!#FC0X5g)dJ(BXIS-h+74vFH zFOX|$T(g@raEi?BhvaSEGdV^+3SzjvX%9eIkSxY6Ev7Dv6vJQbJh3wD30m^NT`;~+ zJEu33o8QR6G7tZ~Qm31`%Ekpz$(L+Z4jE&Va}8+souK%^dN?*c${fxTL`ss15Tger zrvAMZxIw_#x|GP)S#N=sm2JDibco>3LK_-!Wmcw1MmDC3{0y*e@XB@J`i)!e19K}u z+_Rv|1fM8B>6UfOfz$J)s#TTtq~E)OW||%gP*qgq2*=RUg%o@W*{2r{s4cNpZ)Q&N zXU^dU@5{T6G0Achd#JQiwl#D*jzaoz)aB#DDhA*<_2Wzix=e;LWI+hgq5R7F_O9(U z7)5pYe;9kGAltg7TXdCe+qP}n#wy#kZQEL9+qP}5vhBL{?Q?O?{bTRg5p&Ln{xlxu z$d=hNv$a-NtndJ<)T=3cy>Wv>U@d%N6-ZW=3+B)_S-`?-$C<4m>PGq36dK795hzAg zOH5DG@e$tbD%5>xnSh)o%Msors{dhHKW#6E1GvG=KIH_u@4{rn{>DXf%lJz+(=(=L zA%`%_5)mg3Y#RxGk?>N&K^6^0g4+=H}^1paLio= zH{3-Hd;5T$$L&q6P<}1lKs!01_mCHwg)B(YYC>}!r4|~S9js(uTix$(Ekp(X5QrTM zZIDhYxK00%9a!}BFjSDvN&s+29(+t33ki6leh#UngD|$t#+%vtvRJSVO)W%ozpJ?s z5DKRrc*vL^k;xzi(}>xT1cG-nNUmTP@QgTpgd=bMsWcup)QAk;N8dwV<}%7M39AbL z#+a@_589D(>gpJhRUJZF4_p#r$7MN5vw+=IU8484Nk%($#^)}DJ@PU(Fq^jpoFMMC zdi?s$J>ok+TBiAuCZov|d&QmR<0N9lZo9tvuA_RYI7z|?127bvK=g=$V72C;n6%`h zC7vJP)pfiqT;KkbCowknrzXmEnoQ>mR~GCm?oC{`j9#C!-pFHI?9}csD*2FVT41Um zh>f4cg`egoIFvmSb>CDiU<*H(E@-wJhjxrwzv?FBmK(}Lfh6r^aMvmroIZHYko67X zWo!BO*KutnrtGIx%@daYN zVjO4o@-eFKVELmt3|g1Z5=r*3q7{zb^*|>i?^wCw{v~gG9D-&P^NugCTw zpce~WqY!?Fr0LwRr99dR$p?Z)5-RNsmYX6-8u*1ig|&A^T_B#kYnr1$6D0R1Z;ii9 zY4?u=gl@$I?8=IgItZD0OiiKLBe-^b{iOQ}fVvkbT9r&&sYzDkIBZLf{zSXB))Cym z8xkQ)YM+A{V}4OmJSK#F+(F4caF(sD2Dx?5pFDsG2hBu%BU2#$245%y`pGHyP0#S7Du>LADbY^tp z+P)I^c%;1Pb}kca9|!JVa3@%S6?kpYNS9a#Xxf%ulf(?Y9CzKiwL~^RH3!#o-qNYY z7nQ6QZa(1hj?6?eU_cCWX|g#a3%n#_n|X)X*E@|(+*oeFE?lx_ZKBy@`%ZAdsyMQ5 ziRlvt(v6X{)`3MjtN@?=qcKCgcgQb18xXS5{o)%0)B)DpuCPkoD3}kHL=V2n!nWTE z;vX3iWUa{G&{{V-Cj-y;;nzxa zH)yRO-;zW9Vs>a>FtEEjrzWppoiTrQfuQ=uP%(I$+4qu$f>EV#B~d|8qklJqH--3jgTM1RQ;mXXltFH~3U`qs%Gh>S0P))we$CO$ zv-s_|qtGu`?D@oJJ}vQ9 z6TE{2-#TBbcO#BMy%Ok^A*?7o%NNKB2n?|uzZ;AAk!to$+?UINrq_3OmnbiK{zrm% zCH<7ca(j!k&+|{&6&*ViP8Zm2SEb~qx5CPI@H!m$BlL|1X|=IOdzAbfFYp{$gQc&O z`LL(3tZADSrhQZkw66@$IrvHyAc`(-FnaLGl3d`B=5-8P2NF?U%VO9c0pmYhV*tMm zi*%%--!lkS>)?#EKJhQA?crw4_^7MwuaUDsSgtHZ{&Wt1a?GWx9DH@2BrUeqAmJ1b ze}V*tX1i%CA8aRUej8YPder3{m%93vxx4%fJteHs^A2xM{e^1Oan%BA$ltq zEz!BQY^fUv$cZW>Q?lC={0hDf2qubRmooUH0uB-)Yt6oAL{8y1jeHVaB-<{L1qwQf zEwayejQlFodi_d?(DomCG#D!y4SlNQ2&>#*)k(XysD!V-_f~uU7YhRkB=Q9c>BkrF zr|tgldu;!nh4By5RN{vgrvJkc`hQjhtR0d5>B}dWBwjxKY;IeSq)=J|3M0UqSKTS* zp=;*LQ*`&5G{`jD)Mro8?z8com*xt*p4d0)WDILlsKiK$X=kx zUZJOZhQg#hI~fX4-cFeyfr+HhUXB+~82Q(_J4I)Wq5PRpYr$SQsFILGUJEiU&04n( zuWhFB2HL8EHfv2f$Osj-=l(>HpG~^z5-nPGJ58MVdYeg?Vj7&+AKiQri?K2;n04^5 z3BWOl^1h_rlsZ(4Al7dDIQFaL@I^8J(*ez~C%QBeHGR*NQ`)p{qQ?_@1m*0IUbDG- zDiBAJ62;n1&8Z4D;%eY@2&)}v?sUuf*t65?DC$`zytHL7(9ln(7c;k{>x19D&`81$K%3#7iI+91m}tRz8xP zXhxw=e&|#x%M>_anv9PIol2y)+wAA-O~j(gNLXOH4(>M2buwZCTW4A$yM(#uPx3#e zC#0{3r9WtQ8FGq!ORg0~)pUZgvVCIGg2EDLz5-cG$gT>lrt(MEx4UOxrH?W#9xL_F z9>rAeM*ynXr4MyVtj2VM$=b=rLfi)jamiexRfd)puSB~|;CIPR(Xi!hEMKVJiuawV zOs#V7&Q2~|nw4j{0To^Ad{jp}kG3-&x(DjuZXs+dFvRK~bzl0jYPCsuJX>?Ifa#1N zYW%pi-<3JFqNUp(zPcN8yA$NuTfKPhiR#K?bEnBH>@3_m6kK}dO=?llfU(WFn%opI znct0qzO6!b3!yU-eM*EglXg+M%)-Ai_c2W@)^? zfTCmhnj7Egzped6Mtm*Q5#7BhM2vP{A+FFRHp8yF%Nc;Yav+?k7ld@u$J~5?%)}mT zpVcRTT$hO&IAw-@K#`Orl!I}Z&+YeO$T`G(u~ZxD!3N1Kd*hh(jg42$c)C+2m3F%6 zD$XaUwhtS;3ga|XoX6v*YlPxK+vnhxyI-+MF4aepbg_;YUM5!Xy=luOo__WIn5%FMdhzg0#G!j4YfMMs=(Nq z4fqFef~k=cvmiS{LZ)m_U>Vq@x8Re%uwDa2S9ca(8=y(Ub*cmD{N>-|8;)LyPuxpu zIiH!0WW&UVoY9FEe2;AZ%p@pSZh6*!7;Ef5UaJ2dFaN!;y~)o^;^+H=m~?7CvmZl! z2cw@c#s9~vRh@GE0nhI)qXhGXMz17fE$X1_B8nimD#{w2r!*i$Agq;tm#{~nDLdm)_KRxv-Rka@7`dln`hlbR&&Rg_R-Aus}8)Lov!Du zr&QC}Q~+!t4u6}@{KDCg1qfmKa>Gg-E&CFf1BlM>2J5twUXD(ZR0$j|Cux$|aPzh- zxn02Rlz9;x5gaB?S_msx>K)cBjR`obnJ#7qQv7KMrx*_#cuX61OLi5ir`F?h;TRf#zgkQ^nHehs6*eMW)>!(>Mo=Ft^0u8v%=Kl@%$ z8j;<`nE68`54x4@`8stbm%S$5kk#kGqN5DZMldV*HLuWQw}iA%7aCkycGwkG>>xeb zRq8fwM=6!R48b2}sMSy3z>BDs@THjq+Kr00$`3}xKdpA&#);=baVqr^nV^iRt-|n3BTJbvMq;BF%PEaKBBcOnuIBRwPB^ z8+^h$Il{9ayJa!*+iG2Ku$UUVe|xM!{#hzsOBu6a?z7?D+S;Yaz2hyK6>{godjr?q zg&2u*h~k8$T*=g9XGNPr=@I(C$`G!Lw1mU) z17yw;#S;Cy0||;LrkPzPA5;e>Kd*aXSn!#|Ccyp2UU&om2dpfPoRI}NcTwIbL;eI( z#3r2{oB$2y1@+d<=9OT5dG~=}+Bw5+8fhBDq*Xjc#3aq!FG(XfNkPR7fI=fMsW>p` z0R%~W#R{qD2}Qh3OdK43g~&pnVz{^gadi#z^hfDBRR9+%YNf zquLBqi-22rNPlUPJ2rOLtjev2A)eMV;T>WlC(n_V?d6xwj^RRTn8@`+fefA|?tFnz zoicUtme5YV^2KWSi=OQV0qcTjhc6jvx5t<1!DU4Ct2EXwN|0Oh9mRB% zkwXe==v=-gHrdhVhpPeDr)$E7eW$Q|2Styxxv}0^6coAvb$*fBDOMT7lH$y4A1`>_ zr!7m7Sei}no)YF5E8Jg94H+2PSmDsdq-9^Y&p?XH)o}EgmWN?gbMvCd5l~G$$F4w^ zO_FFijk6i?16qBbYO`p1B}|S%I5?0CKg!GCgYMzLNnb_LRO;>1^5PTeJ@#-(EC4 zdIj)=lft=~TcAbn5+Ljb+Qbx2-8!u6(mhmr3r|);>5YbUj zB{E#2A1HI?V`Tg&3ng$HTbK9lW-_d>3u(zRy%D`E{-8hrBmwg=Uc{Ia(X|t zs~V&8rkl+*V##7mZ$!N9=PTOBWy#9St)Zy=Mad*cn6xIZK?WckA6AkJlkR0`WEDk! zgZsNoqr)KSu-(jDs9eLERPPu~q!8j~z3d#~#^|gqN^iSNt%Chqk6D|PYF_B4o)Ov+ zI1Q-2PbiSnDAr8JdfK$KXUO0Yy1wI-Tii$>UnzI#r@s`ACyUCchRRBZZ?_M5L+B^b zMkO4Zb$*dwV3GNKpbCxw9YP<;v0hpfzMsyy`Ep6lwO z?WwdAov%cL7sy8OR72!G`2uOcM2TWkiEv>LA*OBPYUXeWmS4ONs%EWSN^cm#GLvQ z;%gE%gWC;k>=~E$I@J4!R1$RfOF!b0X^7sBiZ&512mCV**k^voR}^0NZ5ZdH4@Z3a z8*!2oINallS74I_UNfTlYOOGWQ@Jsoc8LfwywP6=ShZzN8V1HDp9GVTV6_Dv)r2aX zrqP;Hi39())2NU$aB3E7|Je8!$Uos!$_Che`LkWs2J)Y(6W0GGoJ94l9RCTX|1+Qz zb!->tk$G(9OQ7_1M$k82&_r7kL;oxO^dd~gb4Pa(4B?|E)%4Ur$pIKn8BJ)hW*&^RE ztCuDrLg>DVCP8^{;(W{jrH1A5eE=6y(DL_Lm%h~}3tGpg zH;`u!^wvz+O>Ov!3j-1}U3_!8SuFTZB&tx`!sVrv^M)|3^|-i+97dE!;f!AMfliCU9WI&w(=fg3 z^s&&8v-}YCz_3WB6Mb|;2ucg^pU<rFMa^|3=gw9 zK4k^jFqb!^*OXmwzpznAaK;!tBoHc5wqY=08;H?kKOg63_Sk9;%eifq<7%)uiD#9C zq`!!?8@zIt*AFaZzAHI?sKD#&1*}CRwQlh*~zBo}DSX1H!<8&{fZ$gMGppv@c z3Yo9OR38O*xxzYYNKn%0u%(v0P`ANb>eAXK?NKEP(o+liSisawvREbq(5fIVb zZz4VC4PEr|<_l($4h;Ex$hmroD$4kb{ytU>x`1NKINKo;!3Vs^`)o^R?qF`_FAZg>>1(c z*`RR66*-j~@F^FEYugUQg#rFr~|`JrJPBL4cbkZuv~a(cGP3_GW6F6N0$ zRn@|2qWe+GI2-N)J}QLqrCIzat}OBSBaQ<}=EA&XcDF)x+!2L{k2B&8Fr%7j{3hai zjdocD%}(68R62kDCK!2|1E5@ZS1wWL6A5U=eyb=-m{a}{`c4_N9fdNKmg+Zz;hVK_T-k2@X(OQ-RD?n-MJSb|gN#sI3{n0I(8vJABKear+;-96e*@ALBgU5wg5AjB zo8Yt*?Gpe>Z8J4+nI2vIBNThd4PVc+ zZe_`1Ak`_jk2fP^&^bH>N0YKt3D-7nx%`oiiKV}F3Q9{+N$Jh?=K66qNvOX=m7xmJ ziIBk*EqxYeGWh5ETMJ;T+t;BB`Psd_`VYsJT=xO&cb?mA9$ka5_K5=y*bb*@{(jq& zL&6-o;WzB2Fi!7bQ#XgYCxy}nXgGT}n=a{~D~VU+I1GY3rC@|BXq^PW8jd5^kP_7n z=bxvUOq_w}hb;JAa%f80$Q3| z+p3!fH$vLG0h_H0B4JAY<^~Ev{Z4?T2eMyqlJq6a{z90%G3{-1?(uY`sVNSM(jV^j z#5?{`l{(IGtp57!>G=fWr!zTN4X6y!#wIYrs>3MBlCemO(C3UHr*7j#Jsv}XSREZv z@FOx6;oznSO~4*^utO@{ZN<)+wkmoTi1 z^49H;mp4J))&PfC2&CZsGG98;ELmq9Du$WjTBVKCC~;9~Nev$pM{naN2JuLh(ygDP zAq$)1Hg5L}bWgol*UWVfbk5u%+0m3V+2*kE;X{jwb8HK7TpTr-Dxj*JpMeAv2Oz=8 zg+K>n^!|L&0t{2BM)*zRnuLNfx%|Y&BXSrS^wI&jRyf>%;Y-JA!wU z5yNND5wmg|62o?z64P=ETUc|@sofd*3_L#}iHZYfAPj2=XjzR!g9BzSKJwn$`{Hu? z^2>L>NNgncHosHB!IVB3`MCwsN=vr~sr6tO63Mv5$Y?8Xd5djvpDCfi=mdtVwAF(^ zVPx^#F#Dn1?0){vn00aG7gZzceTo$g@lCtlHI7png2tFoQ|fZHa{^Dg17`O)g7}0Ekx0D3Moc9A8o;jxAvcE*W_fU`ua4CAw}i~YU1J;weAuKq z7gZ{u^`;GiHH(jCcQeDtk*v*jTO%uc25)|?bksozjVot@9cLym&18F4Fdxc>G`u4h z&vq)$)d~&B;_r2A{Sn{3=K5r%k@zzoafmkSQC)BfSrD4Ij%|=jl>p;tMm%=4NHW;r z$u8cmFX9Ts9Pb}d%)PJh5FN_i0B5^9AG&{cR@MA503rnC2Zg7b?merw{;H^iQ6g1uYt>R6qthVsjG-Uv>P$^s|UWq`r zza+MT_IX}|9+japIN1u?@)nl$?s*Hj|li0`q^$nmcXGHFnfXTVpBUq- z(7ApETOT1rdD&AxY|q|;`|S5Ym)Q#)Ckr-;_Hf4?7bU?myk`x&NDbO-A3;+)&op+Q8W1|DRB^Ro`uqe>A9V zTsPKel{8ZT1GrTYHeIw-K`PWiHUQV>6^n}%DbJiZt-(x8&n~Dncdnn`qZt?!3g`3& zg|!GvK1vXxMUfU?*vz~{Wn^Zrx3^N7tQc-XyIil*9lJfdud_T&V{yOr0DIlt7$O>G zNkXs4RrNzda=@!22&1wUsKso7I|xrA_bo0`&Mn7J-K(&xBm4P%kx4-h^~}+u^vEOJ z(Nh9xLU|M}f{{cpt3l-k!Z!Ec$WaYVfxEMqFag6eqxEvNci{V?9dMWI5<@asHVNgE z>%2DXJgE5$J+ESxWdI9g@(P9=nf&)ac|sDKB)_pMz1}(=N7_Li8X1f-H|kG)M8T6D zSfGU8#egat?dT0b0FBW$s&TB~$z>i`Rvy5Ev^oK#^6Ix-sYtn7TN z?}zQ^t&pDkU1snkF^EDqtcs=SvQ0QCHl$$IV}^d~y_Urwgj@Ni z$JWh=bA)guok4nS;8-MS49T)WQB&`4l6FmWa(6^j_tHPRpc7H*6c-*!mp?4X&zKG{ zS0P{?|Lsd_nyjfaN#$>w>`AwXH&|_n0w~`aCwvLv+AYpRPahLE^(R^A+c51k%-Iw8 z%k;d1RV%@~S?;mN>My?g7ad%g%p#(0>8+ue3139hYySLblgdM+qqEXh^R+S}qFYq- zTwFg8dwF8d#h*z|ubDH3#fV+zOP;}JS@fQAS@wRsJvvKXL5Alt0O3aBnV#KL&*B(ah#0^o- z+)ZWM&A)-^V$8+`BW|Sis@y^KH#l+Er7+vLDM~Sf` ziX{{#H(09a(4_g@kHyR=TW`JAsk|n#wZV}{NHvbnassJ=Yk8EaQhskvTCdn$6=sJ` zRK_-_Z3$HuI{VX;n#s(H#=t@)H8}ekDw?N72j?!C=_+8~Rgv9L!;^z#F}v_eP8W6} zLan69QB05Pup~1kwXS+{U3E7qr*+_Dp76JL9g0VcL5e^b=~z_0@$#dFkb&7|WXEN~ z%F1ZiU&g<02583=SK%l@?7^cv_1e}AK)cXBPpSfXEQ0C*4e`5_q_OdSm0I3YoQ_n zk|%*Z)AV8|Azk!wt-Nuq0`&B!Gc86CBz>YH2Ed<(B}Wuoh&e#5eYfG`L)>1O=>D$! zbV)fJ{ol zm=_PR*a^gyl*R7f#7J7!gB>Z{+*MM1i~7;J6L|@cxh2usqawA7D)5P(dI7b5Y4%%Q zHrLd;UrLf|m|YhKbR?;gnoBAqadD7~_OZDmx-eFtd^Yq`TJpI-#bNw?)O|^R^hj!0 zXFqveT3BTOz2y98s6Gp?3$MycS4g-hujvX7g_eXHm+~g0&TPF(dd!yhTbUFOH5CT} zM-NM-f!~`w+N*tudWDoJ-jd__);2%u^;vG}M`=P~=+;y5%^!i!fWoIhkgq|$C+@q( z=n2c7H2jY1pC2%LQhS^)!f|43Y_+p0Lypw?jm$EQu=on}rf^MVLo$`^f{cyq<>evc z)~pB#5j7$&Y->!-vOh1Gr-zNnsNgVKbPKb*W0a7uBI9f`hMO{kta!uwx~#Ja_F3CG zQ8YLM^%V)Bb)9M!!#;Q;kj4>1OGyiF(A6`_=M0tH?B4jP6Yb#+Cxj8N2C%A;kYC>! zk)R6UQo<^I1lH5{vttcNYNbLR#r-x#7@ z8t!_?OBml>T_z1{L2*Gu@B|KRhxqWc5TU?`_-Q~5V}iYwt5yk1Q#PAhc4kYss*ya( zR@Rp~T2gY6Xb_6GrIJgUp6Zrb8x~qsRb5qRL-W^}=@-+JvfxgHoAvLu81Do z;JeS89|HYSA6{#LeETR6zIS=xzDFVSzo&+N->hhV!1x{?;n{pJp?&v5A?n`eA%7no zIYZdG(PwilwB470F|{%Q)g15AbY=$@zQhI@;${WA5`U}&wz-9};Qm1XID>2r#_#SY zh3Ejg4{x!XRbp?mZwnrjYaw>vR;T3VAXIa66wVn<9b|_~i3GG6mMWMHR4E9{G_WDH zV~Wp|*pyBY4hMtb&KE$IGKc`fN;?K+NX}HWnI0A3mrfjX+9w-tbtLVXvWrar$Qqim zYDpssZy?@78ilwLuY?jy$ZzF$R-)ckqIsU^+m?5xUtU3rBrPAPJG-(YUaXodv#}~3 zBT&)fkRWpr4lUN9>YuZ7NcP)eW5eH7$2y0Eh_Zwf6QTj~-VnNVarX=oh0HV%;6RK! z(7&<_j4`rhCy;023~c<0F=9`^N36Dq7O0?;0%~T_A-s-r2Zf`}wLC+jNkJZ+K~Fun z)iBa7;U`8ehAU9$MJ+)i1B%mkcc4c2#FWo;MA$~kiltVm(OJ|lKi7V;ICKjmR}0)67c z`;r9M`rTb!-fhHY4P7oGp4L@=E1@S;vteBkW7{6Yj63;c@jK@C0WG~bfqfZqW1ix` z>bKN&DCw_LFw6k!gJTesnVYMVk@6Yn(b0%Ge91Gw$p*Ok$F=|$WGe$YhFCdOxE4q-ybFeSxpKV7uQR*{uc#I`*bmKfK z^0Ui%h3nwPomAn;&9TBr2fXw7*%3;FDCDQM?<26YoVT+8xm#`wwrGQ@>xH)6IE4Z9!6Czz_ET}ggDU3euO?sH( z4oFH4gF#c7Yqwxapo?}o2<}+lU`QUOv7l-7fiq+7H7PQ(q9lq1><7#l($^2S*h43C zvByO@yDB|dBdecmw6b`HX+PG_VxAhH8c-G2$fZg=HcpS|wTh7p&kw(c28>8ebF+e; z9luPDlwLgJ1e<7;av{Ts1P(ekK{!G;-XZNxz~oO!JPiwlZ>twYI%?RvCSqUj$%$~c zM3oQBJSZ_yz;uInv=(x1iyp6DPp0?%srDmjPdN{d4w-J zjxR++Eoxyy4kz>+egNl=p}jR%jp=SSTSxa2BH{#E*yehfn_2h%Zc#d_$e(`%(`>wQ zyIO|JMb#{f-&#i=mhZSi=?i-z3L3$~3Ij{FRaTw1NWz0Tsw?bV4Y>y~Ihpo!inxd; za=y*+@0Mp?tBqU;VAUFjAk`_Ur-dRLF93=MAB%J-$eWSLNY@o|zHRN)+L|V%x?_Y( z0x_H`!j7@PFA!Ar5J^ruMp-iGR-=Yz(Y+Y{t7|m^Ms6RC1s)4ZQa4M58a{NG@UQ~o zP>?G7By9m<9Jkj>7hbGu->fcbYFbl@GSOuatWIGUB1oCW$%U0J5zyJHw+L^;h~tM+ zW9K+MCjQO@8?{t8-iQvHkf45v;(U@ch*_f^Df{ERMYwo66Fk|Zn`fb1w%n?FLe-j0 zf(0zO;Tft#q_E5uC!R7FqtncjB$?p+<9bfzIK{7Cb=78mYOPzRYqeVv54i|Z#$6bF zxS7aMA>u2qHzbo__7s8YB3q$mWpGT5jZ(}z7>SR;D40DWvmwFJGD3WIT#}s$YXi7x zb!0LzCcI%wxhW-@Y}QPfQdyIjS+!|(Zvf?K_>gx_m4x=Y7p-d*67Y?kSAfj2Tt)X{ z=uy`TXs4**sB;jO67{~}6DE;0*vY5SrY9(cNaus`dbkluU56G(xp9dmiZa0cdutrc zubMWov|RZ0Z1+<3buOh|R&qG0oMiXjx*^S$fmNDU=MHg_EFZOdErmW^>=7~du{bxH zYO*t4sSNH<7ULY-%3COKnVM{4kP8XQ`RZcnJOyr!Epy>p=Gjh&|O`+~WZ^rbGg zKizdz`qrM7TE}CR(at4MHHJEdN`ZIhy{BErKkl=u(ql6Pb;7qY{P1dh;3d{K)=-W-rwQH2{a&jezgT4DndG*0(jV{O&dV{!$Fm2}dB zCTF9rI70(iuX~4{!5q+MUHHAzW87n4)D}QBRZ$JjerQQc5{e2^VuG->4&6|@(!jMC zelSX{dGi~{w6PDBLAyVqaA@+j1Uw)-*?$A!T`2+46eqsVfy#G#xwVCDb)6AuL!@VT zyp|OJ1}#z9w2oxH3ph6cfse=k#q#nZz}}seOO+4MCeQ`O7zLhh*j(Va zvd0MFj<~-Fd3VSlogBv=QP2X;8S0lv+`qRfA;-ldHBJ>0w_|19q=Qy45&nu2!D3vl z7hw!hhm9{wi+rjst6cQ55wpm4)S(3NNlPe1rX4Nq$KBfiHBQw?4y(TzNG|SZM`3psVQ0Z+dYvsa%@| zpZ3lqXgg%8EkRj3xPk@cl6c4=xI99L{LF|Yket=hBP7nJWI;J?{^xVZV&*}|aYflV zGj1<(*a{JGK$?N`yq<>r>|-Fo2CtH;*JAJClD52KSX#p#CILvJ0>+>*o1iI7M-q@Q zs&P(k4?UApP|YRgu{C$Dtm*pmpXjFR8vZRpCd7kffPFRKh7=(v7e=rUW>5_aSEnP@ zPbByMEv*uzDO^UID zJVrmHJs_sU;D#Wg4_7;v(#l1I`xsu5tE@FU9=3kpi$P3n)!|0pOW6IYPmIM+MH8L} zl79%lBpm_utp9ip{^ioJ)xZ0ASCoozAzeBh!y?&#QU)^}t7=qQZ8XbVlzoN&s05nP zvubowkCACg9snpkljUDW`O!&6B48LJn`wL@Qzw`T*5h}ryyxk;@`lWB&T zO$jDG3FlFpBiEGv8Pg-zZ2z4qO1a}T7KsQLFw)_2E<$J`dd+={%^%sJaJL~pnq zU1q9Ov%Xu(%~1ZAWRs5#=iA$TsaBc3mwJ?8ZJ5IGDEn9vP@U{1#3yczu?lCY^2*5r z!M=C?*F6Dcwl%es6ufSjiE$~*7(LP%_MlhgGt?ilVsHOEkh*efnl7wfxMGZ1MsxOt z85f^od^NS>Xa_u;g0XuVKh!V~#W|#d|UVHL4tb;iaDvB6`EEW21vMDF7No`aqca1D-m$ilv<9yUQ zY_ADQfz))Q2a$|d>x%TIqx72jNv@l0X~l{3MM$Qy7U`lVsu?c3WAI;8GQU_uA$}ZC z+}W-q07_3~e^qe)f!W7q;?D=z)m<-8@#|A=vZG8tRQM$cR<|BSzg4TN4D5r|FMw%S z`Oa9SF|@pxo=*v51iROPnf}fsg$5vvGls?l!CFnf{?bB3iz8ix-A#Id6-w-6 zN|dY{(JNOqFA%jIEp`Dbw=lPM{eacZ3Ug}sf~EC9!aCLykZ;rp3_u!hP?V{kH;^kw z`qEwwK_Fl6(+-&NI3xdxDc)U^=)N$1lsO$Chc(`PUHE9EjB!PP*N{i4v{uSB-@WJF zr_pJB;xk)0I^$EwOeR-xDXbGX^wPN1y5>Y(cJAzV52ISE#E_h*V%=DtL1J z(f%b;#f!P5NJUA3x(b6QpD8lWL{rqf{{{*Bg-v_3htuv*`tD2=Fs~R;t|16-d@mV- z+gNz-mQyBrx7~Yk6lhAhEJnZkVM>29!OI$hkXaAbREQkTn_T8g1ns;U$_A5@s&9;F zjtb)b@&9UZMgV4?ZovHP$o&Wh{rd%`|7y8J*}?gLjH8nk|K(cBv#@oQ(yj;@=9jC! zh#E+h@q#~SMwymTLfpta*K*33La?F3xRo)AceAy#2X)6^5PrMnyNAcHolax0G#EFv z8Jq4nlhxta^ZD`s((6tAcQ5bIfFTxI($L7p!f|5A8qF9DB_zCCJ|WaP|BW%G*>VPb z6)NO@iT#X>TXLNnJM3cP`gg8v7oXdRUQ2WH3dV;=WjpWAabNXKVCxD|E1ltY6EsMb zFnLdNo4{CzgerzZlW4K9#JF{puXz(64X1sU{^gLiDt9%cjyKuigUn zp~8wSsidfmlJ%vy2sXks#+I*s>30)8c5}AvFc1p5HMCM857pVQR~8m_*sIZDadd`Q>N)ze8XK)_fFp9_ z-QA(j!Joud#YS;4PybxfB=iVzL4}+Q%l)(U5dOOg`=4=i(SICAGyOMRbh-c0JTF#z z|A$}qWs~3{RNo0m6957kmJ-6;++9pqj8c^nfGnWAC{u5a#wD`8wv2ocfP{(O~y*<*l^E%yjoaOmGko(&kCJzdatQM35 z<`tN5bgIt+*=S}_KFW~YUo>j8E_rvnoA}B&C!U7GSkyoNumH!jgVV+Yn>|Jh(G59v$X>jfuVk+_ga{LNK!p|TvLr`C{le&4mIMsD`?~%tX3XbU8ka%5 z$ZWy;`ZJstUNy?e?*6L>nkd zld(11FFqt2qT@5@>1a`2+n9DhsLxV-KViY=7zt~fPvkBQS+v~%hY93juP6PHZ)cfdhI zJwB3uErtq`G&Mu(+Dz6!+QW>c1{N@L@-KyCs}j_3|2X!$uM)VPkM0|g9wu>lP@)|8 zasS3KuS`9kfvn7#U$osgs?~p14zVO@xX@)I{hZz>ovn8qw0e{-ZBDUJX=%D>t>S2C z(r&PZc*wHKS(yu*n$*Lg+ZBPKJ9WdTIdMawJ9C3UJ9opeJz*ZVvk%`zkJFMc@d9|XJ!rV{H;g$er~?Y=?;7kd6u(-b?2 z740ZQ*CDPtKGQm#ypSnQ?fRi?v^i0;1kUH`U|n|{wjSGzoo9i$WgJY0B{DLiSMzpr zm(J)=?qfnr$tBGV#KE1)>u-O_#@AVdMq{nhIb=)&lU?hN-6}BL7KbIa`#JsyK z9w?*vg|=CvBP!v81!Jwh10jqMS^#~S<*3~93G<`TmjoOqRa{HP-C5Fd76g`AF$)V# z(nCzAkFtBF^!in+0!!xmvSRB+rFI^3MZi>V-5Wx#v!H5IE*Z7MBJpR3$rORl;}Xm# z?M0)x;`DMkW||Y3G7*g7)Mt5N=X@~Zc@DyS{8vpS+aoWzCH?9dVvY_Fzkap1fTiv; z`jBk@O-ga2lc(*!#tcv84GbojJV>h%J+)_kp)`;bVZvN>add*&Umd+A&1lppvv}I| zQmH>qcNF0lns%ynEiOP#kJDn-F5a`iKh5kCh`)G>_Q}jBQosyA=6J3O*;-toJ=!ql%Dy~oUXicS;zY({Z3APxw640M(qtb2JRwHI)h>_xT5`R&)fh#n?2NSE)6na5K8+93#r{T$DYXS28Y*xG06QZ++;%9M%K7mgwS ze=+t>QIcp|vv8NXY}>Z2F59+k+qP|W*|u%lc9*-VtNz^k-aE#B@A=Li`ypTQF>|do zBVxvkIgC(lEI@@Be*s@eb{oVhQKytnzE?E!avc-;qh1(4r5-~TqKDGot|BUqjGwQR zD1bf4ZdhSv==J&zg&tw8;}Zo93P%W*EQ&bWDm;gS@80QAxNj_K>yLWu zyZeWcbZgL(Z?EBs?9uTNgMd>}{8y0maK7OtV%@d=ne~fNn!_D85|*v*J$4DnBre~i zT$|p-IgC1-sdp+ha}rH$ENx85csnJR#A6v(VHiedn8X!?1Ydu!yCPzDvK952wgii4 zp%tnE{Uv#X>u+HbI|%MSudo!gzbGCGA1R_tdW^(mi!#o8jR~f;xo=5QZ)D3-$KzOz zxve907Y{I9diJU}*MHF=ohwfk3rted#OX8Sa0aNg$3=tB=coKKpcDZqAqXJChuW-@L1)WKw~h}iBs%-KS{Tc$YacXYUl85oZLR>A z`!&Py3t;|)9>wfG&8D$PELHA48((*ueeaol0F0tv&&J)z0I&I1E^`DA`mz{|#g%Xr z9+2Y4{@x#9L>;Zf*E85+s#OVfv_ za95R{!AIg#=Pe#l))c9xVytY8IyHHLDa0K1D7_-C5mwZRLg9t7^jK0=Rju(HZ+hZ9 z%XztAB3E}?2&~6d6o+x@QaZ!WXD`ZKCL%p8DQxIEQisF~bu!Xig|}E;Wq^GO<0akS z5THzkIKQCjtsFO`G)^KV7OhOu(Hkd~aj%9kz$ zcbOryQ8zAbPk>799)t3F1-kwGQ_ww!xe1q1nu)=N7nzfw{mN9o6$XOF!?(~G%rOV` z8(&V2zaDa9^Xs~grY3Om0lu06wfdU2;E#m*`h}=<>}j{XW9z|a7z_<9(bE+0^)}_! z`bXqz)s*UOF5D5<6SdLk;F9%r7^Rg|_Ud$E|Ej$2c5ISVj!?h9RD#x*?=A1!a!apV zWCeTByml8Iqf6(RGE_boU849Ul?77>b3?RHmQu+WY%L^ijyS<)lTj<{3TSQ{mEOp~ zpfk0oG^7~A?K#+)3e8Yhq_ygq&C<)x`wa>UKIWp}gAjt$NrT(CouF|@uwl?S*Qg){Tl#_K9kQPZ(s54k(yROTXgb~Cf)7Tt{I z-4G?C$2k`IudtePi_jCXLOd7=3NU$7cekAo;!$g8LIE_;iGIawbA5=bkAn^?V}CqOHDQY{Q(ecueRz1L#dX3$R14RJSsIHU4| zOoZE?WZSjw>Imj`xPa7N2`z61eOS&i{9gns-?@K^>FlrBylQUZ6=wdi?b~+6UM?(? zde#P}AEo$WTpR51g7n0ffNePSjUY^})$Npy)z{MDZ^W(G&M@P0DJQhcX)Nv}oF_^p@ycwcXvo~NC zHMc9MFS>&!Xo68tM-;M;puN#NSYkxNur;#joa)TR_NG|F2u3YUSHFO&&hqmDkEQoI6iE^nB z9mMLxJz{4WThY03%|1qE45ipZMiIBjaTwZc9UC{B*OhL|-SkEqT%K}awYt0&wpaFW zM?d8D9d^486l{4u2VEMky1a$6bc)3IOs|j=+e2l&$sl|B$R-)oa*^m;%fWmegQ1&o z+zRprmhL0hrZdF+DIw}1XPMOunu5ye2k&Kz@^!##kDA5sinu~HSU$%?0=IR;wt2&J zM!(2fLXAyG5LbAAUI+Xr~r` zO~4tMFyD7;pbsnrw;6{R-%TW!Zh9B?rk-v`7JTP%K<>yTSql8{pBMRvJ@ z#Tpx9n(AY`Lf?G{nf2H&$SHsXVgC50`v(3IQx6<(ECXKN~t z_OAGS(ok>SUTV+=)(s<6ljkvegbQ9vcdvF^U0w)AffpM=!6au*wo!gQxDBpWMd7kt%3%GFo2PbM>7G4YfOD}jm4_Wk|Ar&tgS)T(EZ1w;}bj&wYHxtDp^^9vh6$5C4`H?n`xha?Q7D{;nsL4=w8^ntu zDYru|Z1~Y|&ogsd9ZmOVa&7p8(6oeRWG+ zz%;f72yCV9m=%NC;cdzG29PRHB_0-fOi9s{aLA{9wlmo!9=eHH&>2$A>B#hti@$j~ zc%z?d$6+mrTXqYT_QaKuyAL2SDIs}ul}T4)KO-k%;t@WWWXl=LJ|0f|Jt&fg!*%KHhrrn(+;r?=l0lyi?!aLYUKD+Dj}Kf~7hZ1%Ht%(6vB zCDKYEdq_0MELfmTAV)JCSG1vZBSF5QOT?5K&P12o=FeWxe|ZPdbiks@|NdV5tAQ6`6KfMQga2XRMOnuVTLgvou+{~a+akNz0fdz9co5%Wiwy-r zmVco*pve}BgS8l?xS7|1t;&toD@GpA{iybC0X*Kkss*VFHR3C9h@K)_qgLjM12DbD z>}Glccrdu#o?p^teSz%3xDlraY7I!Etq@=B|DcpQ2*I)ss^bpQR#C<^Ggck8G_Vo9 zBH&xBMH7T}ZL}9vbsC@yw3SKY*;=&K?i&Rx(yp^OHm-Ocx3;Ufmz>kKBR>ZW0bo{yCZ6xP-H6`jIxw=&u%qK8xL=I%cF>+O;^ z8LEdm>FlK}NklA=2J~g>qyQs>4JK+`dup(?J~fQzxcAq@_sAk@du0Kc&6-1M)2>Zx z%G#Z!@Mcu5J#n#?e?+d-WO29B$!IL%a*kQ79^z1Qc^+SSc@9ors$L@ptS?beo+pON zVOFY9HS9x3!+9Pr!jDT4Hiia~1EYs}cTy|0TDBK1vQ%YaU)N$Cp~$Bwbi}rRUM^fiD#I71Dn1mBW*aWP8jkj1(i8(cESgn>EZ+)s#n!d=7 zJ?Bcp>FPD?*m6otx+a=rG;NfY|KbflP|1!uV4Z@VdI^+;(AOzy3l~Atn@-yn6rzl* zbWiIFGug4kHdSHUKBV9qJheVY>22y;_%aXwLTc8u<&^0@z=_Gc(Xp8KF&GhSWuJ|{ zaojn(FFkm`K^tWgF9&B#!kQ;33GjbE_R(-qmSV$NsDRSOL3Og8q}IbbeT&Ng!W@j_ zoFWo@r}>iLt2wy%1O&;VI>P;;8Had=R0EH`bKpxm7clk{y5jWacJKoa&;z7DL6{C9 z2m2NV;iGfR5DqyY0v#cYkdk%(Xe0g66~ylDSegZ6cR<_MymLYxU&sq|j}GFEwSdL6 zCC}6FH6e6)4?&67Z-D3VOPw&zO4=)k$2M{FB7)~c>|Wj8qt1jEPmf7Hgp7%w_!0Qf za)M7}Eo?Ny8oUheg)-Xd`^^ubfc2KxKC<6+kg4a1;Fn?Ho$_hC6hT^4!#IqA^b7^1 zR|87IA5c~WLG=c8^bpSwO0N@OQm#es`c7TYV5L>0J7Klp+`}?_4Dip~a{G>I2GTNN z;h+BDL;{s}IQ2PjC2kB3;fwbYa2h5)J*KgT?CxGK0pMZbmp%$_O?5uURu(LI={(nhsNqoQLpa4SX zS9yK?@`|P%pP;8h0XRJ>J#8SuS;1caW~TLFsE@qTZ!d6$QI;W+Aut1y#Yf%K$XX>*1H9pusbKGv@hGGSS|}^3g6g#fi%XdUgKb$F z)3{)VQf+FLU<;NgH%EGrYiBw`opvyTy7`QR8ah;iw?TWay&Z1Z?Bt3%uP6Rb@{?Mw zk2D4JUXPQCO1zn^AsF@+I%GMSHcibW%d+YOkIOFGX9U~N=r5N{{t>5>1!KcMT}ly` z$Pm0NI5N!lFMYEn`mhj|T@C=W?DQ9|~5Y>$Ia{iZyaM7QF{0#?{D+2+lKgjy-RKuP{5DcrOX>oec)dTojUpBepCE%gNXQcCyt$dM*r{uKu^M|; zU8g}st@o+h9rYQu845=Byc^e{mD$I4UnsFZx7(zt4b_KH);Eisr*5C8Tkn^8@P43m zfvP}kGwSXRDAZua_AUNtcfWvmLe!w#QENpOo#s!yfmF2X?m9v;L!y9@1Aa9-vnS)9 z<-X`1Hu$TfbEw~X2vT(03w3~`)aw4eo(vQ7`x5HAm}F4yA-6Ani|C@J4wCOg)pJ>L zJr?a!LB(j#=fzzCg`*!T(>`~hx}ICrE$aZ}0ad=(QU=_YJ}*59x+%TgPROKDCr#%H z;Yd)-Bn@k~m4F1Kn9klR8|!gtRUABa=rE}|*E(u-M)Hr;bRh>+IrNyGERXFYf0M4o zl{{Tcy~_F~8Y=~CrlkJ@vF=_;2V$a#>BeD6O+Q!AQ#m*b8hdL;65o400f&qP3k^W( zln&Slmj?s6SoF5)?m<7KMiu_Z? z#wL~PDAI|svB4G5+5gfzgrDAPso%<)*3U} zW_XBDn%*13svV`xJ&?tg*+yl5@}-)E`XQIJJWcRef_&4I=}98CxdryeW6K4( zlhj!7nYyZP3U9ga4qAbicH=RoqipeJm=E1j8~h2^rZid%&6%^=<=Mg5#YEiGPpx&e zwRl(6?fZn2GL$$qTSaN{n&%PyJoagK zb9Ts>BRYp_2fV^37`UIn$)E8npCezY6nug&UeTUoSG2|t*+mSFFq|2qK|Z~KKfz{A-}I!DYTB|`R&K~R`3TO#oIepY_}H8u>hlP79K_XF zq%j9s5G&IeB7{fKkutd@2+bDF6~(zo)`=oYrPA;^xGOlgNitYvk`#x*kbM&dM)p@N zFh~v3dIlk=UH9;ycGG8~e#E95x44m5!3(X?^e3*jI%GncapAZGrhXUT|!)^lWTsvqE7Jwp2cVrwU zI}5^GK~!zsHg#j{@7=4U{|)Ya4;EoavOf>5_lJE1V>TKU2pk?Xk`-42#6f)lbJ0OZEVh6cp=WSA@(yIQk~cli zK>r0pGfI~h!h^QT-c3o^$Do$l2Av!z87j%Hy+R_;PCpA@y3N62*=)_i4!i z%%|Y4`mKc1@g!MEUz~=nn#VTZ2w8R-k{q*1xnlr<(o+sp$ZNbjVtD!@^G@wGQ;J-N zbe7C9n<8#DZYSN#dAc@9x@&%Yds*o+e-kyty%;+~E?*UirgXo6V^UVehgU+~w@d;%zPkT+Vogog}^tK2s zGTTGA!8M8IjI#mCP-~^FLUcUQr@fj8TgYkl5ZPL=g4t^!_r#}GViQ)enMr;-V?0|F zp#?}&9KE%IQ@e7pGFx(Oa`|%LH>~q7Pdq0P8{RGXeU^mwB}j5QoqmzbN0M+@mTW=l z4f9=DKPhOgIeKi-ci-~ds?cz6n8-6ydb!ku7*p5&7S!T6)gT)A;yFyAXmhP$XBTva z+;cAodVjw8phw_hY)X#t*Ml`AIXkMb8l3%|FZfvgG~*7aY4(6ntpCm*{#EN(Lhk=P z*gA1CPy-AIA-m=_O`rL6UH;fQ=6%&(f(Y8qr*xrBElo1z%Y*HA-|!@*D-07DNFGkI z(lSOLT*2!G{QHg0m>w~HgQ|&_|4L-Yyf$<|*hqpMCgtr9Lg7!&CIMYG3b7B=-Ls%`0ZZB)hC*EIQYcU zvzJF@i1UM`37DrZ1{&eTvUfKZ_9~BS`^51`%f5oi+ zf60sg*PwTfs*Vz}8H#VJw>44_R5+@ja3v}P0xBYvFAD0Wx_}fyZ>5y_fMr9$xahF2 zTJgejPiSzU2435{N=Fi4)1%eQ|_t9 zEN508{&ogv9bQ`3T9_|>Mcrc#S%Ay=(lEqy48F*16%!IWh+B8;&7fo{DFan1ap>IA5XIm2G z)o6gVq6&80+(^9gL~VZ~4s!vsZIbRO$HkXV{@xUTL0h5|0WoiN)MvJN))WdmV3k39 z9gn!^q2bBYwoBF+RjRWf%#uqPN#qR_I1MJimr;-}kJHjLHg0Pp9GFaQFFZ^M7G(uJ zM!~~|;(7llY{J&nWHJPpD4j@L31N8!NAogHyJyk`WbeN!*bi?Y0gLQOYBI2G_T7dK0c)ZlI@ z)5xn*c5MgN<4BMd6~1S>hi<%VmvC>K`M?;); z$wh>6z@kuJVXs=1ZWfZ^$!V~h3RYpxUrj$(mlm!tvX}-v8>OmxJ}i+QP_@iK4^6Zz zY78uQ-;8s+tFhlFQO`Ic~B%`|ht#GobE zjD$-R8@SP>VB)oeT33$-wTQeY@^VGYICFDQUUa)sHFoFxei}3I#f`HbYN_1nX`Iy2 zoPfA}6m3WIIGxdW4(K85nCywc!qE&nF4=bn>ir_B5-z9ku8|VCepsD!vqs#xd|MKX zBQmIl-wI}mExaw(@^{PguE)i@5&%()V#b~iClja%RG$Qhaa`P6GHnmy7g%BMzTFRaOF^*$uV_3^u<-jPJy!N?TY+jv&STk9`zPH|ek>gstzr2uiA&g1 z>(q=(#)W2#EbACUl5^AtdFb|Khm1P7RGBK)^7Fv<`t1B@7Ns^Kj_XACcG*I3yV9Jo z2rKiPM+jVIN9N6g+pWju(@93T$;1p2ygxxp8biI-UkepYzqt>b@z=lWO6)1N%r*BITsLx z@FH^3E-c75o=`;_)i^yusfsyXirBgyZWhrd6Y0()H)PXJWD1yd-i2#XDrLH1XyjOE zKDhJ3B4_8q#nw5laXdv;W>4*0v2$csZhM>Y!Ya9jWO9UdOS$sWgJFEzL`N$vG>=^OX(N(T>2dYW!F|Q29;eh)^h3ges7>>JZ^3F?A6{YobFlS^tW zjg*C7>L*E#*uIf94Y%OWbeSY+q-QY#kSFn41#uW;b);1TebM#ct~hDD^|$QciPX6+NKpv z7_ol!KSXL3pW)FKFj7O-Uhw}aUMDS??y7(`!s$P@5&o6w@P8Ne|EqAND9Xrf0y5K* z=#fVS2)v(yfJ;K=3f1G0C6&tyV^EA!KoBCf*lt>A9IcJHc^~JT{G{oBDkek@!S9I? zj$kkLK|bx}WNg3ebmcrfP47~F+f-*)=qrpsS7)lTCW;y+qNo0@i=|GQOpHmj?_!Km z-p6n0M=*zH;LUzlr2gt4<_?mvTS>dT;)mvk;8@-Akf6^k__~Z{Ho%+Eg8ldo)2gEH zr;vL@pIWfJW9KlxAQB{RPNg?|3$cD78s_2}G@Hn9PNCKnosibnM?2Qb`2gJhGQI*92i3~3XVI;FEb)5;`PvG24 zR`5%{Cv}cSy3l$rC1h3oaQvf81o|+YU4`?wmS^P?*{}5g2^+C5t*I!QEMzekTe8ys&SO4bw7@x<`O%^_;mv8TvM>vm5CET z8){oLkiiOS@VyZS(kWdI%$0*|?PHUF?Bh4N{9JG;*(@v&CFeNW8f-79SJy**1*5<@ z()uCvkuR}d4R_2Cn}<&+Hc#*0xsBLa3Y=X4Tm$lthCz;hV;BU)Bq^F0{6~fjfYaC^ z0XR*mHd>36orOiYT9>jpb)`H#s^P+%Dj|eq!gr$un9b#yfNfI^?>jXNKn8z*TBSqq^RC+ryV=ag=feZKKM51l5A_5Ga7IW6OuQ;k3-y#bvcWi) z{jHREh#$ken1WmA)Dn=Ckk~NHwA*a%MHQR0gG_p-Etu-LgvrfQse>|Q6WBJ}t$5RZ zZy!&a(4hjZmG1I8>qOa_byqJ`{3ja;HI}N45-7`cOKzetZEyiW~(j>FiFC6 zsZ=1o^65c}_3}n{W-yEPxlHbc_f$dbR=5{1i(rFGQP-wAt<+sR`6=yzB?+3cndA60 zo;k!t!*z_Ba;aG+IrzE=$ETU4_}nm!^#kCa3DA+>iVy85nh2Psb+!tajGIOT>buOE zZDfXs^$)#9T}-c%$Jxg`6TJvdug}bg-$>ajp)l zTM`M@CZiWgO?awy?U&WQAjL9i=#vWU88FGD^g*cEqtXbqYU6{blTg+7vEpaA|HI?I zOWNf!zR#yGfYwN1JLmh2eb$AiO!*+{X|LR6|GIBAsMi%r4_y&F055QWGh}Pn7oV-0;=YX_c!c{Rod59eOEfX8;YG4DEB?1)pU6)?Qm}PExq+U9l_@E&74_0VF_Q-mMLBGW(q`}icGc^W`dCtpu@#EP5$0Q=7u<6Q9P`g4+VdkO)A0?=Z%*mtv&m~7 z_i!)+AgHaZBQQQA7$I^>B(Y=~Q~sP0T(pJ~FQs{zi!S96f;|_$LiajWe{f0|r!0D6 zPqfD4(Y;l+=DjbR(O-TB?(<=BI&tqdT*WHj9gdt*&Zr?rrP8DM~`E@w3}l; zEEebu;lZ#D^n2(LX^lZM{vg92X^!&!WPIp3`bx4R^P#9>bV_>B<3$Tt3s_9p)V`1C z1hyyP-h`R-@}qz;IG}p1d}lAJjQYpopGfO|}Ih%uUGPVQUH@J_Z1dW)i=;V zd@~*iHKaeWRkj$M)HEg9GBTw>&Ee-A8wtsbiRoFgS#E02VK%Tf=%Ke9N$Ntv#SMAn`y( z1PY_fD=`9{fI?=?Ms>H*Y$l?f_&p=YOuN^t*q+`O*zwyC4w))V&mlL;7jv_4ao_?YC=;#-g904?taU@WxQBUy>P#dqlldhtl8B?+m`7-y^0G_)DF^?lILs&}53# zeS4nZRJ&&+tvRes==DTJh4>m33Ow!0#?%49q^=&VD%XJ4{Y_E);G#85gCTeX%;QEH6Awc_1bRnC}fHYSj`=4|Kwtf)xT zQC{Ds-fpnU3zYiRL;Jh0_ba7N;4y?_SD>C2xN6}K&(uRG3$+~|Z!x!rjlQz#Df_z` z*5DzIA>0&{gXP)*+`D|_7#!LunL$k!AWIZc=BP2l%PT{-eN)c-as!;$Ip$=(fCu{! zE1a7$*qYmY&MO!Z{5q9G=GU76FXWmL@VoI`*<~llPM~dj1M;plkugNYjpNWz^h1Ju+)NRe zatGOHw$3#rt>_kDM#*H10>}zM(jPOS?{nD&5w{5GDk++&;9sEa3<4^K#isg{p=0c_ zM}tbq7Ly>BjX>k`G!x0xCb8%gN_;vQuBMVqwMBSU^mA1-Wg2IQCy?@OV(GVi@D%j6q^l^@I(v&@DAz<9dWLzE z$%hjt{TmM)n>N{w$;j474xKUXp}|@y!Q@aRTU;swIHT+tn;|wW^u8u$?fKOOVL#WX zS9{&AheXqyiaIBBjynQ2npJL|vUt4rt*V}RgpbqgJ8gAbqO#~e?RPR;)c8uqYvu{_ z7@s-EwS}O2Gk2b1c3F0{3Gk*`Zus%*uv4o2(V-8KbjReiaJ(+W(9BS zxaqX3O{S)m7Qf}6pMaE>DvAY)_rzD3?%m4|h!3LtBo@U;z-&cF^`f0Ftbx*Udjh(Fxa+fGd@2{cU zJGYWkv2Hvo9#ju{6@oV@ldENRc8+z1ajJdg?sdyr*2>FZZIKWvAL+5=3EUqoSl#i# zKZHUW)^A-*w$Qfy-Ab_%W9P3I_q+-<$ zV;6{I)@knSA85*^b9{zPt9|I7ty_rvSzCQd=Xj69Yi(W;K~!S1ZKEiVZhPT3)sfEM zGeiO#n1}#d>5#yJ=I32NF8zw0XJW73fsLK}?SY(GsE~x(6L=G zAS^o5YWpL&9=-^eli1yGh#6!+zN*M0o86W^+Ix!$C;t^S<66iVUf(C!#eb{k-0kQb z?hs_B-CR@WH|$>;!X5m}(+Pki3jHHV{8zqtB^T5G(Ko*d@Xh0VwgC3$DdvX&mz01W zEwI@rQIw=O)(cbyC?*TkYX{qO*tC-T<(psWJTO@@OTZij*A)OaOGboJjx1tkDq@BM z_~v`wYYwCL++D(W&sgyJ-6Pc*1n$hURZsmT}qLI90ww>zq{2#il}m5 z^!uR6W6L>oCte{PxG7D$_WCL5WrdL8gYbmW^dUOhU@O&chap6}t4x1lJQz~OMh2P< zQCtX4fh-2Kxl00!n<9!LlKltCxhzfQy}8nu4iDnywZJBMfepM4%qAA4%Ye3e$K@yf zd)mv==geEKvZwnRN10RGk^61Bt17f8s}l)EOJXSJLb<+zu++K1wlrp{!%E!<>eBN_ z60sm{fr#jnJ_%k_z4Kf+xDfb@J(bedChTIJE7i}cEFAy>3UHG17B@TB9b9@}s2Ak* zP{)pDQk=(*L+BEP0w5q+t0jW270wMfY=xY(67nE}@sh9rJWK?2rVrtBq9e_yZ{9rI zK)p29775JYO~IfP!~8V^igi^r;lV^kQuXK$?3#vyQd*)cYgWZHm^#`R#)sb9Bgk=0 zT51e#@75UH8G2Z3qJRMa@{ET1I*WN6Amc?E_Xh>V1l74ewOCWNe~aIsCiJb)znazG zXMP*8#H32s9Lg!PzZC_eBx4+Cw2AZ&e1ML~(2k_=00>c_p$J;?F|R7mL$SVvjt`?1 z<#$B51#eG9!R0E<&P7q@aJb_Y)jinJ#qn?k+IkhVjy8>>1wFp5;26FogQT|k1uL`2 z&_V?t;V4&9u?5EMrjA)i6ZdZbIKxx%&YabUFI7gEa(e`z!^{hd{yA~uAnPfzm|6nE%6KtxBrf40fbAzQr z1I@%H+lSZ^T1UwSL9LN!yJh3J6~MIz9a!DBFz*UeeC~uXJ9J5o%!ONbBHik`J=_ia zbG0co=R@KW&zqNm@sV+%0W;0^oe}9#@>LBa``mp@IV@5YRZF=Eh{s3^Ka!2P9*NUB z>9uu+FsxNR7CG3(5sou>29tB++R@F1bK~Jio!}TkS_$3~(VoQ{B#xND2f2sSr95Qf zox+6?LO=Sb@TX{Ww2Wcgsrh0q*pe*>QW0kpW!gse#A0ced={K36w^Mi&4lTmNfRb{ zQv_$TN8)gc!&MT%H=k5=t+4TjHmljI_uq=KaJVjo&p(n@)x5#%2#BO)6C1K-4c~b~zWu@asZM#wF8@a* z)q)xAj!(jGr?{oHF7Tpy1m)dt(#@?6#qB(Y^4D8#oA20fSJ?IEgrYTzFzZ-6yc}>3 zWm9d<@1wiwMF*TF<9g~-dxRE4cl>`9tM*?uN`Lw0Q~nY9@cmcl<7DD!VPI|HY4Df( zjb7Bn+FHokz{%+^$}VHzY-DcozqgI%0CqV5bWL86u~ZW+3RD#S%H|G#SF7p~aU~;h zEc`k?{Y>?|&})drtFU!=WS@txSHnV!>^^wn`xesRLTE6c#T!EOy^0;^-Kz;2C(2JpbZ!oye}5Dp%G(EZZrn>ENa{&XAaje=fB7>% zfOJFUdjUrrQ~ZaDIin|CA(!-BG6Pgft)EECJ+3BHo}5G@C~y^H!w01XUYb28VQ1oA z?f+Viq~P%bj2xgG5&olcB=Rqhq$=Qa8Us$Jt(lymB>*xw7})%;J-EYa z8cu(Q+?JB#lI4UjKo0qX8fRF;2n$O5NG3&OfRtiL_y1v53JaTbUS9^@4>sg8=tECi z36Pcb>LinXOq4uMgFp3)P3{_KK>4VHe%^3b;I9^8j!Fx^Pc#il3?To|UDVK}_n)G81tOALIxd zuh%I`RQELx$fwi;vy4(ihIq=3k06oP97YCyi1V@!tkGw} zDi(-n|3Q$gmWmr|a2ZQ#Be@Wx#mr0dr^+arhe)3B?5y7CkLQF;W+XF-C7I4|-!@(9 zr07OuLr%s_o8syr2f4hyOzr8eM~@7L>Kqvl&@RjX|CCrr7VSZ);UwV8Pefa_#;YpD z+H$a)7@Typb_=*n!T7fiqD++S7LAz9a|H`242g{)IG|;jqW-F7nd^>U49&p5^XT`ahW}3)(K)()jLIht=2(RX3S=%PPbI&C5N@J z@Rk^0rdp{-98=}4+`;4?udLqT!P$>iw0Y|L(*HV1-k~2wkI*UWxkFU_YDmE zup3X0XftR8zF83U@MI;UEt}t*740fg7}V%0+*j!$6KSe+*BQkAWrDlGx)sq0dXo-& zyCY4cFqV_1M@WonH^E_N;f{R^;XM7_lV4=WnVXN7wbEFX%QUE7twpB-W1th*?Q>Gq z(6PO8F>(kt5SL;qMOz0KVM4HYcc1J7${!@)!0M!*&f|CsC9pwRH zLyL|`wXdz=GzmH}tMf)%7XcS}$uO7dqQ2s~Tp(1g=8bN$$eEnm`RnokzTrkusBgJ0 zAaAaZ%@_WK0lM3`D~HD|ahG>3gfBWjPXn`$@M?tOc~9_anDNTV#WqZ`muf3=GaSv( zbQQTa*mwCRdtj@|^%Ph!FE0+%b`*DNkZXgzFbFRvTL<(>E?C)__8o-OuRz=09Xia! z7qHZoU1u7*h{84(n@$kBCm1TVtfABrco{{VH{dPl=i3Oq3gxySV*4+aS7)rb>xFT6 zfa+CjlCE2mdP!|^fF?~uqgC`A7>DCn?T~yAF9p}VAXYnMYCT?YnJ}F zQsO-jpl(>RoB{t?rJ@)hEN8(UYIBfSdTjHbz5UImW`TUq%p z6qVdJKb2>DEeN$^j~`Mg^ORI+r>hMHZG0RN!yX&HPR(GynsP|P)Y^h(eto#p%54H~ zO@^jyX#TVrTSmKYu6}G5@v%|3I_)U`xJ~*{Yg^8sz1_QV_Y;rBPk0GC`g89$ti`Z9 zsIlX-UPJ&8ug4i$&!+K)PX=;4b4mE8H_Hw9)zcqE!zt1e49EH}3FHtwesPWQa>R?= zjOS9LCOS>R#P1g1?4Am$zQ&{8Kwc)$e#gv){3Z6|(;0UxsAl$$-`~OSeU?_+6#%?e zi}+9OI)Q RIe|+y7U@_P1b_R4cO*Q$F7^uL|g+SQvKNWKwMqrOFG67hzDYwT^RH zx7fNaPK!qNj;95(73RkU@=JC%Y9t9DBWk#&w>zBxAluZR`-ca$Z=_pl4j@rf%3I0~ zaIGj?vInt|7^#XVQcc*?7)&aYh|RW@gk5P}21+DaF0i(@PP2)Z z3>Xhts$mA57oMdvn_K2k+xA+ttLJB_m2RK~HkY_Bw5#)a;ApJ?tfguufU6 z^Q-ig26=86c|QEmF-t?aa#`U*_L-BvLT+gmuRwdpRShk`=>RE;PxQBRnQ3XLy3ogK z7`%EGj(T8+R4tYs> zP$TgRvO$3xfV8qlSS|NmCgcm%GuGI|n2x_^I0iUh7-gFE`66-@?nMT2Ldgs5S*CwF zsK=L2)O0Ag}UDB+{junRYbTt|>H13^kh5vB3)GwSwm{7S7z7>^O(H z)jK}z47V5q3t^JKLN+C-?5f=qu;`26Lb07rjk}V*Xbe8Qc(N_46$J^5&xAP(!n&l+ zT5}6t|5lq9-y6lV02j0u@cHis*&qM%3jZIE?Em~zlq609rjJlUzbq;l>o+_rS1a}g zH0Q(H8eNsnDlUFh@7ZR;U5nEtMnmx>VGAl~zkcIOb|y-S$dVuFKpY+ExUDcs$^fQJcBk8pYjP9 z=8)YlHYrL=(bA-2Tg~M6`Y579mY^$gGnau4p^}AF9Z9XdrC2?lJ>Zq zg;gve-vrlerX>c46tTXG!W=ECk3b2X^BZC|?Ea3$P8(2w@$w`5BqN31xNrU(^mOBM z$pg$1(i^qv2;Q>{dgAB(<_yE_AQj3_DsxlB7G$RoY=?|Gpioh%Kz?kFoYfzmCMUr= z$YmLJAfc>5E)qb-#wem%JuhvBK`_glI2$)Coa8xUnw~x&Mxqzrd5PDAsCxo2d6p-W zxXLd*_&onRYfMf5LO2wl3O@i2|9}72|GWRf&czu(T<8Vu?M-Zr4GgVK>Zc`+qSjgjyvwyNyoNr+qP}nwr$(C?WAMd zcJgJPeQ$kl)jemQs`(Grm~)Nsj0X^5WHESx_qeie9k!JYvU=)OlLySt@G(3;vA;h# z1g&{H5$~lqj?-V!Y8k2dFCRxo)IX$WmU4HMuoTZLwwW$XTFQ5@{iph8?xLR!4rwi5 zwr-u*Q*FIZ?;$;sbGhKr1Zi;l`;deW6wYrhM+*A9^49RAeNfpU@^sQJzo; zHtN)jL(9}E6~=})Y>VZy7RGhV9=mlPWMc%Xp43F5j9z|5?`s3GVWXDt&g-C=^cuOi z!EmCY8&=X-Wc2xe@Ik1-i-#?cV1zMDI!RqlZK9p(1T!fXP8Mp$PR4ig#QL$3?VqXO zZv8gkQ^GA@+v+`kWG2xjDeEbC!&B`k60>}LiqX@dA0Hy40w_&Z)K+&>r`|jTxdU~D z)|hgIwbz>egeZJD0V9Ke`I0?5*|Qh(tmQFBZXm){wo~)BcqB4yK2`u@}rgytB6RGub{-Ovtb%!WJ`6%VwQ8iqyFn@H4#znfBUX5f`5Ek|1;y_ ze=1Bt*Vx$5;NMhNyy{sD!A)w{vY&tA6BI_05 z!G?qSjCVo67a#~+j`(qhq(%fu09DbiCZ^t4UwqL+)InI$1ZY~(5{S9KGcp%gDg@xWs(0-@G>y;?T#i>c;LueR3Q-wOU$|Ng zIs#wq&oc&%ByIeH3MX7aV%I9B$|%E`s?n&E+^n+Yi{oMtT2DHsw@9!UrgMo-r_@bx zD%N*?Y!k0rI@liBM3Mx#XCJo*D)qlna%mm%9Ox%YXvm1aLG z!sT?@f=$Ozs&e6`=d`uX^86ARNB#n)arP1_;Xt8{;euyl*3dgL#F8V+)}OL&HyiW?QFY@bF94#HsZ~Kl3YVj!`4;sALYK(C?jfmW_S(S~I3Q zxE+3h&FC0fJAf?doCP?sL9#diGw5Q|X<^PZUcuoN(_W!?v4*IDOtd7=q~@X1eaT>-+d=SI?0L7IGBFal@z9Fg*)NvO{jEN=+Me8 zMn*^tL@ciwJSf$#nc67E3AAlOu@#J1x~TIWZ@7gPm*}^v$D$1R)&{MuTDSoPK*Sg3 z?&q0RgKX4XYTg)T1TGUb{(if4fqlERp-CM!CQ)fg7=Eiu87}DS#hr8YhyWo?gR|#| zR!z7~;TP52>Fy*8_!=Jf4I>m$f1VSr*XJ4Rq z106E4#Bz)|Y=xO2@2KeGjWADyB0}98Ik=t(U4r!}dZu7Af(^REkPCLFF^u&JJ1?W( z@_&e6=NSYiD{v^ruQ5ScIiUdmw%?gJcP*pdp;2;pLR&&sp$+6u%TKXERFy9{WblL> zf`$~Hd-j2h?~NEr554gUy)hd1)+>15C7oCRDMpP?az~9FEH9W}-z4S?f?FjY*&&DU znzUC=t*+fAJ9>kb(ovjev&hPKPA~wy=w7b}f1+6AifFY=SrIoweZ4{bFdmwt12b-$ zRxe0SBn-6|FQPXjn%G-!b#7~JeS_J0VY7cq?G(>*KY!r4%UTLRlQcaweIhm16T9J> zD~7uQ?o{yJZ4R-#=skRhs%_pIXCxZn{F7lhNlKi7EWLR|aeT*!>ON93{bDJfm%84m z!6CT9jC?l;tgMZ(zMlTm&YJL;u4()j-^oKFl=v&SCm}mHWjo@tfaclKuwf_~Xe&{S zs7hw($yLVU^FoiivmVtuT(4G8s9=-i>n3cq8pup2&uCy6C&NK-So-r{BPrlbdiG!0 zu}J?Y^Zd_Jxc|AxQs29S|9g)UWi`byzV`;qqehOBk?4(Hi%ie(fkwG99x}j`$jD0t z457bWf2KPw#!3=dIIVqB-tgAUd~XfnHd8I~MUXsF*pIw2?5{Fg+rJY#w-LsWp(;{c zjB))NMVZcsHW3cZD3>o5)F-Vgjf!XAy;{5lYBbR@*EW0Zr~%iKJG0JVEpaVV2mA?| z%tcX`7%c{5w;!B-zG%*(++gFXuW%6Uca6;Z$T$dcmk@SZ{bKC28i{39e${e07vy^} zr9sgS!R>uU3r*3ipX0K@B;?oREAs3qyFHK443VNJP1+HiFiS14Wmz3{RHW_5B7`DYiBXvBj4)0@B}QBG z1c^|HNgbu57ik&2AileZIyEQU#E*)_PyF^uLlpU4{gpT^eYGR4gg@R&e3Fk!)B-BI zC~DZ==kl*WfDGjMshh_7E$sTC%Hc8~%0QwX00uje z;A@JoJ9;8_KBNf@n&dTqGsr9vyX{GS-48Kjz9id!TBm*uUrlQRXbf5+5aogD5pkeC z_D7Qw;ouYPq9&fCjLPqU!h=?U17A%|NL3poEz8@Jhu@v8-0z_Q#3GxBDvmKOleL#C z)mpjxI{kdMSAV#5T5>gnd?w1Q+mix!5Tui?G*((K9l%k-TCUm@gRO)xDHY2aUZs;- z(W*#hIzO#zlrl~*19M2&4!P^(=|l)D{MuOi%5 z6_@p_OjBQ7uUMgq4R>nYwz}CK5?>~=_wG8xW|~YzVRavN6xr+nzOyLQnp~-miu2|h z2r)p&Y1Q@R9jq`(guHR6H9@J^b!e2KUNL+!$>MP3^kD)vSkT=T`oU~V?jw3Hr~TuD z1^?HFH^R#c%*Ss|WSH?vV#_@H;K2JiI4l5bfwo1r36I{mDi?8>bhiK_yW|dmp&!oE z`(bV~!A8I>l9XiTf-4A`)@=^mB5b$!cfHbbYbsRFz7;iV6i{b5n#+puD zUtdHIv8~pEc`Dx|%@mnQ(3^$V5Ar)`NBdvIK-xiqYiLF?QjX* z_&6CLm9y?T&Og*6p2v>}zr!<_@T|mcPx|O(_qYmaeGb|9#tyOLw~UA=8!`6YL2}^+ zjRKrQXdH6qaiG2a>-D5*PDWn(zAwT5*tP#>w$T6H8EZ$Ye=WKG&s12b@V837$TK5)8OMW`?a7AP=b0dm8JRlR?-3=Le2kjMt#jI{f@!OVyM{PDB*hA6T8n6EjEW~!{k4=#weI6KekFdnj?Q)ahsgzCz`RTUL^^olbK0a}(yDN-+L zEiPpB@(+m(CBGhnu|rxI>v|F-w3ProSy~N6WyzYW6gwsU{Dh?yWLA8Wm01v}!unvx zzPb!tVj9t>D;Jc0v0m1nrKwBXADKjwBst0B>l3sD>(v#x^DBSAlh-&HxqfM~Q)0p^ zZ4AyJai)r(ZA?N~>4jYK6Knnkjn06-0Bk7Eon7T$@^m2uY#0)L>e;2#-g%KI0_$vO zlK&ObE6o70%Ob2K&57m7LQPF{@k+~MkW3Q-Np-@>H$uUf^$95brT&3hzB^C^&N|;y zf=yQz!h=sFq)6QsQ5`C4h8DfNof+-W`}7GE^aLkzg`cv?PqHrO4_}(gSTR==)Wq5F z71Hr0f?6%l2!&HQK2Yz+WXA5h7<9U4<;X2WD=|#)W*c>i0?$=P#jH4YgCo`yazsih z8XsruU1=b)NvA9tcbhs9F^}ub#;!Ed^nAn8oZ4Z*&kz1>S_a|3wqilbi%w!dIZp&_WNHzf#2lY&a6IAOpPm|2N8XYLNM!;5 zcM5OI3+aFkppK+$Be?!YZ~$6iorjzIjPaS9Omr%UHNAQ=IotCQlXa$l&5X` zbq}px6prUSl!un&S@I$q(fg*O+FGf^A(8?T77{ zWQ(q3XH2DQMi6ZjmeTU}V$T+56XRhUY3Zk)sot4KD*!lnk_(1N12K9z^+pvnX8^08 zh>~iv30B|=_gZBaOKN#W<00>JL^%+Y-Tz5hKXo*CoiA18tH38$aIjhkDPsCr0Xb3V zCgD`x4AH`FN+Pp~!FW&kt&?aDYOsmudUl%(L0&6UmCa(u*(eP)k<*c^HjQjH0jH$P zZ5Eht$?@Cg zf@H!5pcACo7~&y8Kcqf#Tta*Ki^R6cdUkiN@@@cFiW`O|h|M%B!$BrFtLFZv;c^Mj z1JA06;NI(!37r_OIWrV};kUo{Z{PSk8GCmT?_3GFTSXmVVUmFqJiaeoUq37?Kq`BS zh}9ISQ8l)dIlT7QhJbju&C79ow?0`JkvBs*5CV}M6^hJ^oXl^l)`1Cv3mJqYwAuL4 znAq(BC$MvpvmukOl)FlSA#Wb(B7KH(_22NV4@@9iIaqRunRbY#W8))LGAv!D4$C48 zjI+9_?GE}bCB~BFJeJ$Xu}A|q4II*edbFMz;f?BhCoNV5b&qjd0tuLO3!E$s_BJNJ z8w~fR8V!t6rf6RBIOxbzO$U)+>@mQr6|Y15tjYeAZmUCdRc^C8IL5+)PBtLTy62t$ zDZG=GrH_}J_2;r0GA$0f+I1&mn-LWuqw32igKv=-Y-N!i1kI@41#Cdzg5)a7gWM=k zAAGt20^wG;!GBj7l)i2W%iguE3*OJ}nMUo@9-O{`#D*?=CfxgkkS22x8=Q9$8mxDb z5=2ZcqoJ+R1EW&9?g*pJlCZfm@5tF@c8Sf)-)(jg9lW}RH@uek40^4PB2W*8{e`8IR^$Z75P4)V?8ORT$j5b{;F) zh+dCZxPg6_AMAEnu6L2l`TPS{D4&Ud&J=ed(AN+m@6Fe|k2V&+Zd^{3mt6QjfRLRr z1Kpj-6j7oZ@g~_{jrJ)cob4^YZ1hDyn9EI3KXYZ_Fq8g)GUz~A`Zk<5RH7X}R|-za zSf7;<8y)rXlw#_=ATld@Q!L?~#soc17|O-1sn8Lnd@{z-+peZFDiLGkUB$Xei^yVF zD=#Q$b7@Ib^NyPQB~dm}751WSZz$7~Kd48vWhCH#nI#BeCaLoCz4 zP?ae+jFPizwm+CYv<#ASZ_F;l6Mf!cFdtNzpv<`8Jg!R3Xt`N%F5kk*vM}6$0$I{# zadIox(`BWa-gnX$G=D)|Tm`inOoP z1%E2{=+!L^DF>RX%AMiS_9UKDk$XixFo6?^=XBgu8kR}U9e46o=BL|JKEae z-veIYsCi4`oFxUWrK^^Cv0KQ4M)!br17v}iwR3>r8%I1_ymx%3>Hc7{zbXbC=WVcj z+G+j!Oc6maV0gfpuziSC4!C@FbuJh>z+~d)wP0Zz-H(|^X~t|o%4`VHJdu+2%rc_P zX9CO#%N?7ND9R5h%8i1NqMKssHS7kgY{iQ{VCE5VX@sy?ae*GV5{zVs*6g$eK@-2V zB_Qv12xhkC*#2!4e;qcrqz+NBWka-u16ouS2B@yq)5{{SE!uvaa{XgoFt%M(WwDug z7SUBY*mtgy7Vhb!ISLn37>f=)jET!HvR=1t|H1NwjgX=(x6MC zW5Bf}Qw7T1lHnd}4p8nDUH0W9=J6FK*9hPydFtnHB45S6Ze6hFjFLNXnz=u0PiF7v zyvpk7p)J28(xfyRc-*O(-Qh9ltIepZyl_^|;%;ZcJeVz+yq%~RFCK^+f7=PTYA7+O zVOHLN7kc?M6#9wnlHbv>0Jn7Ub6~|Ac`cMRE?9f2K#~W>W?1GNy=6;)66C%}yzkHX zl+4ZZLYuYj-Lpc;{3uCG{7o553mZnvF`X5S;!cU+i$soMB;yBUb~j_7Gni{3V!Q+1 zr~WL1EKmqs=J2$J$}$ISYm?hepX zNT;mbX)ln{goPWY>KSn|;&ua+r@Da}uZJR?lessI9e7Os)`?a+x@qKeA?nb>vgL#X zuyx7;Q)XZ9lhXpey?1|6&hShQIXVuATWQ%qfijwj;oY;exq4!Jcuh0eTo;aPE6npF z8+U82CiO=q!#jh-fNex>RZAo*EHlArE8mDz97{#(&@E6C$}e5j)EqItoNdo(Dc*LH zl@KbD>Ds*ewPbad>H6yoMp^u6D<`BBA65ya&a{i@aykxE%--)U^wg-1e;9rE7Jvfx z^h}m)mBe~#P_7n$ao3{)5hX{oLB4^FL@o0e84-8Zzvd6Hro})@%dh0n$&`YJazUIb z6m^^W<6%oZ8MjM4yFr%LVZJ!2Gq$9jNlcfUZUsgRsD45t8 z+M8Hg82m+({67<9rlPnt#&?p@5O#Dey=W%b-~xChsf;loV>MTfB?&mRBaH%{EC_H3 z(G)?}(xb{_%5YS0T@VO4GLjsx#TZ@*Ej;`Szz6Kl0r+Qt8eWg1DFZsIzM$`w;L*B$ z*A=_*RK(Ti-5!ijacznq%n=<+z?~`;ia{#U7UXU_Nim9HYP_MA)zQ3*XoNU?&F`$_ z`IZbJLH?m?=M1Y2^9s`$lj5zbmaeM?6G}7GNGobj8T$-I;k?Z`oeXF7D(-S#YQ>^z zyY#0eOz7Y;t8v%LWerER@kcZNtlBc=dJN@@C~~Lcg^#wiMVq2iN2W2SwW`HTyGe7V zPNn8^H^b_qW_K@F*W^`8OAXm7!tT94llJIxcyT&l>~K~=o8Sx+MDJud*r_Mm;76) zPi~ajtSg1K&FvlC(jEH6LMj>;LQuqtkaEJuXgzdblAR4Cfb;}Vr%N%^lFHR;Exm1!kP#9Wd37oJdD62_mjxA1 zP0rZULIC-8h{7DZr0RCt>=`aKFn$CeD(2hG%Wo?+$D|&zE$g9KWf$=`0yn;V06Twp~u8`7B62=NIW8mfx=t` z?wIsdX^{%N05W*Vc-(>0z8r1=z1L}*UFm>Sk;A^+s)k6%s6E*sdg>BlK+7!~)7RHe z-H{0+F>mimWspu#4rID%tUc+f4hK}9ceE060)^wNr@<^q(@tWoT%p4(bA@x%>XJpO zfH#p2@J4?NI)pH5L*3X?7E$JL2?V}c%Ay##MIc{Sktg5JBTHPt+B+NKE?`V55q)IL z#-n?^WL{{Y;{Lo&nRxT_qNgsJsUq!Msh?kO^AWx4qQj~6ZAV1^t^*0n-=#qR$Fie= zje5U+)82dfoGt7;n-L8q%@a5NeAuVz=hTx_mj(xogOlJ(<(|iF}J{`JBiHbBU&qR0PPdj7-=g+&`EYeDaCGz zARwq!4D&3NFgi0ps1;mgOb7^KT!CYp;VZKNl98U<;xj1WvH(R{jRXYw!f}~`NVBv9 zVjOBO326jeRBR_c(hz?j-k_d=ypWYcMPSPUDwcU3aoH^o{GwSo$MH2Yj6vYTp7s6fIO zQ07|UhIhidTRYc2_cYtQZe{GSra?$!^<DC`(R; zcwBIT?a6EOl&CS^$=kiD3=^Y)JM}#+`5W`+zid%jYyjtzzY!v`e?*A>D=p_Qv!}mN zB4twt6G1C|>%V@be+vvUmDTO#zki=jRGg-1TF20Ul!&bi1R`W2vB+?0VM=1+>NyPu zNkqYq2@Iv9;D|`nKST0z)l_KP_yMrHqz(OvrRphd;(!%Id(+uVf8jT&&6b9 z6p&J%Rh*AMU07c0pTUT zr8Vg#*|NzFh(QwkDK0}OP>~YI4-a#9loEjd?%EvyR^jqXxYczeEchlQK$!KG)(U&? zkcFAJg>`gtZ#^UKIv{`;EuuGMOlFShoOR!poYz@eMD{=ipMR5$FsI}U%?ztnw40db z_)>{qOs9s{(_lpkRNj7um>#j26rh!pj_!AGlRM};gWM|ez1urGCvM7#hQaPhekbvwaBdSqy5z6@>bVpdL&|+<25d;8-4?Y?G*C+ z$wwV(KGhSBu68oYlMeAYb+>t82lhlib365QR32~l3Q>x9vGq$tBAT5D>e7kI<7nFO z02I+;o)5$q*#4^6=URS*(8r@6kcDD@H$U zD@~V>Sb!Io*2<{oRT1xyo(e%3)h5LC%#Qi%D0mR~HqHg)cdJIY1pgeF*_!x0D^spw z^i$rLE)1|@W>l&+T56O=-IxhfmuovZAlM|6|NZvWUzaVYksTG>^1Zz9$LI6LH9E*&wmcdNW+7dV^dKmkxW+jIlRVf$qn45KP|9Jub%>wV zAnU-Roou&IEs-7wkrT)Q><R|30o! zUKKZVrb&rEM-9i2x7`!GDn$wnw^xycqgV03F!X&LeVWJbKjp-UVc?4l|pm%3BvjVEO0;-4y9(fG3a&Ur# zII4>=#>~<>Q5y^Z?hk?xSHOplf9|Rb(3{h@^8AN zc=BKQTgwJs9Yf!6cH(;FEON`$e}?wm(l>3RIP54tUt{!5h?sQiLwRqLd=AjQ2gW~R z6yH$iY8RTl!yef}qu634lQdP+0cq(I*#c-flO8JaBM`=hE1d)R~W9$w|UwU;9i;XxV5ZEa4^ zf$Cf1&ywYDX7-N)QKMr%DH+ev&vpSR0KA$m$rpl@e41P`oT;V$bQ-Pl?{eC6c(@n8 z$B<%<3RJ6-j8O^St{Z%liy%jvOb5R}rd(CxGtUN{Bz_$EJ7Ae3f9*2iTS_nw|4*~y zf2Lyp@8;3M+TKv!#MIE@-;oAm#l^q*$AQxYmU{XPOTvx2Lz*}H8;BYpNMs<% z^A0umqD2Lv$J2JWARyj8++rQ^PP&6&Ea9oG&QmXkP){M&#iG=qAh6P>o;My@v$t@{k|d9&%bk~ z+KN4}?_DVzIjs-lV>4(lUCFv^UsB%icV5Y$6d7h65@$E8a)|PnYumh^ zEqb^-W579~Xfo3d@f5Mjpw%XY>>(agGS?W^RGWpW*pf_@Q%kpX2=i0eIB8LrWU}g` zV)L=K8MJgXq+{LrKFMn(8~h`VCmQVWKHQ7e|K^OVZQ+Uvd^0O_|B+ci_20Vlf05<> zUtUF~lDhL>A;m<^rt^rabC8WFeshor1dVoZVzX*gpz>CMLI8oLbe3{_a&d@ZT;=2K z+&qGs;|JkwJhUa_fv{v+*qxnj-^s;o3s)H#5%EMaHJYsS##i=T9~U1N^z>UFA191I z`dKc7!C;H*VP0%e6)sbNg7ss zKpGcSuEW{0Ns5azU@*_i8&MG+jvbQ{$h$%dF{GzMr{5WImPpKcJxeAAs(VY z?D)5y?}8xl`#Wn%Ffvd=OIsbjcO;7bwAwo>-$2K2S~(o?-3Yfe?}`~S3ZS0aY6%(| z^+V(4)SVI!qR0j9?u=4kE~%I|GGgM$Vz7^2S^*(PXcoeYMaSK^c~^xlw{8et*@rZ$ z>iGjlm9!p-Ayg8W-9#scR&>ZoT|sfGBS5kvMTl&Q$-zZsd}AQxfA-uGWr^;fhHsZh zKD})@6%!w*K}JtL=x_wdnyZm0KO7Mhh2AcfvzdC&$2I!lZ-*>xe7CxMHuT(K0 zH(pcsyYcDSF-jg!|oGhEYD^e}bu+I@QiYCdfM|>#4-3?X2D7X%HRh>FL$G$1V9M)(j&Y*ZlLaWA$Ha#}t{hv69H87pF|TKiiDjJN?X=-8=sfqIG2QB8^q*Q$~JQy!3)5zhU#Vo^y{?*!n%$eBO2CaPK)& zgsG4)xB;{H#G6{M@l;#Zb)>I2`>7I2^INb)e@9tiq^2$jiZeonw7)&THM;3()@R(L z56t7I*NCHFRY#xxBi!_^Vlb4ZSWqJj8t8cj=<{~R7Ae0!e-N127>$!XTAGz&5OvF& z_}Dd)=hlpSrr}o_okx2G6yaDiA<&j-*kgv9ECb|_AVdAOEWW|rg6clqv{UNVQ^SYA z87#$fG{y7uqx<({uMlsY56?ZQqpi5(v=PEPUI*osd*Q6+Z8)$svK{@^--F+Uf#^T! zW3cTa{Yo&D9pzkLq^!}8{Ze4-ccFJ2mQ^3@m0UuX^c^h<2R_sClQkG2i}mDs>%XKik1^?woH#JIJ;w0}e0qIInmwTpjD zI*Xh5Bo+t9!&P2$RG@$%l_0pRn&u5wC#C*`zgmNf@$hba0N}VQncL=griJ;Q3GKnQ$Z;ib@s(9783@X+>HGidP;a~ zYo9hc7zR9`L@ISq*J|U$07u+s&~jJ+>BSj88=xbayO;;fSW{IGh#ootdIjTbCx7~ z^=JpYTt_^a(oG@c_wtt^UTAY?3kPb=kMM`=?!QW_U$ljYWHYk?naZ?L@lEWgPfWKU zY+7!xOev(={y54F$*{aPZ)L@DJ{AUw7DR$(F|WA!EbGvoT6#9vr#W2GkfvYb^@ZJb zBKnm%8BNk*tkeU)O!)buhe)hta+6)f$camN4{8dKiB3T`HImdm9INl%nJfRfO*XA3 zHRnD4Ol=6r3`fm~Q&~C{lTfLIra*WiV(G+#XXgx4rV0AnfH$KR7ff==#W*4|5^qaU zZQM7j@fB?Q4uqM08}D$pTUYB7#D4TUC+}a1Gu(dNiSh65!Sx>mQU5gCaI*4?iq5FS)y$s?6c>~CI**7LFNA*GF&u-XH za~`o@xqE+QKXLuAAx`RhCXv$>h+WbR+z~E{%}`Z6M!1pK(F|tC_6;j;ig03BRFphVP zq>60FivOKqOnb9a9{G$ub^6>EWo=@@=3-%B;Ig}5a63=~N?DrgIzp9zS-&lj-dcA6 zwwlvxos0#YDSS97JRz_o6_J=3SVwVxg`%aw1dvyX37du%bSjZ}v6!Uef$0)QV~N6!s``#jKsz5Sdge zJ*&80oxG9NDut2Z6&=u&MpJ?AGF&@LIt|LiLPny<$_qz4$#D~(G)Ky`BISZ#i1x6* z`5h4#qcoe*X>R_ZUtL+)Q$&<8V?%X+#CLze=p&)TVZP#$hs)8CQiq&Dp*eq(5v0z1 zvc$Z>VD5U_#<;3nT?Yq&wYm<}t1v}13+LTntu}mTU|@GJhsi0f9+h}2aylE&KU$zN zfBQh@vfz-SESfHBp1Z@BmRn>rh6ddg&p(%s7WbK<_`5rSlYcyt(G+^E`sPiCH6FJl z3dO-AezP=5-~B@TV4VqEdi6kW3|;nRy{$B)9eBFu2dJU$k!9ubxZNWq5Kez4sMRo4 z8Y>f{-J6du@MR3W)Vh;3Qpe=)qhP3Y$~fnpJ@mG-#)&p8wp&X~CL4$?S{uZC&>_PY zDlLNuP_4eFeT%-HC)=o~a|{EwKZ2lMKFO&Ay&s@jz2%@zdkAb(7|*y``bJP1J<(7d zQQ@GQzn-P_`G(WcU%#@Gj2D?<>WH;BO<3mB&kAyv({p9l&}zp69V*iqEmYa1qg-1u zA0VrA*BoENJrNW&QSHtd=dosA^=C(-wENGh=n<{#Z>Dtlr`YVxpj6I>WVz#rhPj$*bdZ82TETZ8*ooBt%+Metr8b4Nq(&z6ntK-19lQxmg#)*AQ6$ z#*ks)m74!bn~x@s8lRx)eN2hiPeZsQQwQ})7lSKsEk?n~x(sjW{LWA( z3sz8JxRVX$6xC1Ymfy8vS(Qr=hBO&g_Ga}NgL#;H@HtwO_*2)dVpe^|IuaYwVlEKN znSQp9A|QHLd1gVIxSc4Cb}zK9Flci(4^lC5&iu#=(}_My2I;LjM0Idrr~D3Re*FHxiOG}RhQpqiVsDfaPEyG3oaFq!`-IVRNgEtDyxlBPx82 z#wNoJweYd~`i4i$6BG_)HD)!F8o~+S z^0IsSq+^GtZ9ut?);vO~FW47cP`D2XZ;&_lE>T=?aJHA939Gi1pCL=TcbK2qy~4fs zoXeCDB)SI4E#vA-5ndQ#^~?N~%;)RFOgVDQ+QPtGPvsYE<-9(tc7aQObbf$I?b1^e zD|CS6DxPmw-mEC@zr3s~9(R?8Jl}iYtbcQvm(+Z1fuHlM5?<);kgrZOdo9Hmq3r5$ z<>3h5z}!BB8}_7I0KApp2Fp+xuiVWxpB6f(-8dj1O{6pZqO$_%}V6yyHHrMqpBZo}aR5tldJMADF_=$iOlX_yZuAi@B=%F{jfP_51Q{QH2Pi*TrX`cjmAw zC>cIK9Etgrrxe$0{cpzh%Pn*dfmJFE9PKa0oxTzjEe%FfGfq>uPR}^sNm|cHZ>qZgo99a!{6|W`$HPf)#gi{dPc^I@gC`kz-OzUY4{jMi*g} zR`gH-^V84v*!AVL68sD3c;uMj$;NW{XHaT&X~mORrtNx_3}fm^^<&Lq3OB{&tXgVE zQIvQ6c|>7OnYwhEju5n3d#!m$kd3eLhi_a=@aW%KZJt5MXf>6ElCou&T+pU>~ zTJk1izQFun+{faNuaLvY1LHrfCyEoWHCcHi?lf#bmxnl7<(%zOFD}{$Lj*_55CvkH ztUBS5O>Yj*c1ujDIwn*Zb>lIC<`ay|p^1$tSLNKdNb80O=y6nW^iY*3#5?3d3dIP^ zd&KRfa%G#y@>mrwJ1+UbJm^m8Z2E)KQ*LyTJqs3tc{2=AzqIX7kZ@Q96ao)2EFLqA zaQL5OSrbj+4Qzr7!!L%_l3E?cHJeIHgGUY8+^u%~aNEj>G)+-JXCQDkx|k9h`>B!S z&Wq4T3l^nUFivL~1+59%z>wX-m#S?zH~rt-3GU%mtJr2F&40DM$~j2D31om0lrTkN zmt}FI`uJO(IqI1w*sD2himjpuyG!R*le4JXevgNcu@FQk9M0 ziygYYk3#Gplz?T+b|Qbi*TNH2N?-#ee=IW@&ErG?(f}O;`cfZVHxQ&t1*Hi+9C!(U*G>{ z%m}0t;DRJHW4LY4pCMq3_MjLCipU!s)w)7i6}2=5&A3bRIi4pbQpj6UHz@4bkJ0fiM;q>(LjVi}LJM7yvYnJrgwJT27@11Z7uHF7* zk7v4g?bvHY?$eu+0D6y0b1#P7GcS&ydJc(tUo>!fiznvi9@Ziw*JmQwt=%14?5Vr& zHJ&wOiyK=Th#zNgB70&|3Ox71Ts3jyb8aM{ZA-S!mOlYB^o@9ZeF9=b2k_noa zSz8)`kTwMzTDM?0oV2S|a<}PpyJ)z%TYJy0O>WdHFMzW!o){RpTSH45J11=(5m*8o zGSa!IK*FD#xP|96HHR~OHL>lYEP-2@aJo`~p@k$7Jv~1P!$N}{12ya1_`Qi~rU_M6 zG41w5@VMP84s=;!$4Dt~3R@ZrZuLV&BH~3C1)g)1pX|1*?gX@$YmMI~SJxgaP~O7O zIetx){Cj3^dG&x_PL6b?LWr7#du31GAznu^Z|nTlCdvH z#nU4xaT29&;=!yKuO4O`aUpR|zG=G|faREltCiN>MjL|b)b-bl^i(s|Og^>7Y7q*c4IO!_TCf|p6X!63XUKoL*YNi+r-;GNii%>E8OAN3uW~?fEAH^iD@%S8RU*#L78s66jD|DE{GK!^o((9FC%JqJzZrNeT3_ zc4eRvrrbj%eyIROr8;5lZw>2id7yy?VbL<%4FlC3Ox?}(VsqNIpYQqLWwo0(B+d17 zl#QNLm8IDi*;lW$r}zeLXy&3sM2iJd7R&6KTT<1ap;4*L=Xo{w{j27228pm+Yi@WL zkq1*zYS*#Zg>HDk4)(U3Q-9ni8?tZ$IK!kQ$53Q<`HlFYQj&YE9zwvoFctO7svZYR z0nY4|qxLl27%$HHr#xRzmF+X>@iaY^whi+$x6+mrIE7>@pw_Ihk>xZ67_UGip6uWu zvKSILwBo_YPXyP5qRmmvYT(j;U#q>6@gn)HuZ6(ajpw_`DK(B{t< zH~2k;TFhp8k8#G1n+w_et8rkzA4bie*AdOl3GSkZRcGX)Y5y{hF`2Y^N%Zo^=!WqK zbgBo4UFx@V&vtsbW^K;KXK9^5nPDQ&poJDl`C=7n-ANE)j8>1tjAq3?jLa^Kj6zW2 zVK!~N$S#^*1*DB=q|^nj#)|OzLg&H}w4CRXHqO1{r%KVfp3VcpBzn*`Z3nfvNrrE* z@9k>hI@l*H6PSXkl;~dvrlbxq2NY`4^Zst`>Gz~XPt1WHGg?nkG7|$6trN)U6)`OK z$XzW%ao6`jtnRn*jeZL+i8&|3#zTVD_79T;A%jUF6M%d`-*bQx3c?3sg!`S#us>)`nTDXK7~CsA%Q{yAIDq`-Y)*a#%lb!mrH9nfI|x5OdW zO;K-L?4qS&dmVydT!>bwHlcxwU}2X~5EE8(u_|$q)2z_rUmPrfM=nv40)k!OzK3<; zSklK?;r?0S092aNCNj|Kq|@cJdu9d2Z$&BtTS1QzO6ueJ4RvrK;Le)5>BBwy+&(&H zMw%*p%xJMBA^Co#mY-nDySe5Ay<<^+CoVzPSx8&Pq+AZO^o_<-=N_O7gNuwW2$gJ? zRYT`{IZ!aM`KFjwviZC_Wf$X^PN7$j+w^8x?U=S*?wCE>Bat%3HV`7-Od>#!7tE#$ zZ%v7Btge1$T@(cJJH!Tc;gHiGE)DlB^N6%`%R5nAPTHNrG4ZXAq@C z`iP+%MGlCM_F1kCDR)$1Jt1j8mz{|}A>%l5$}1tSI-UfVh|E&!{|@V36Q?w<-L23s zBOxAeyeL&xcn3M|Y&r`A`q@xDS?olST0+Na&e5;Q7VTmRTaCvVeV;?UWloGZR*nB+ zqhRsJg+e2}E>t;8#?R9Xebb3>F)f1&K$%_eTE4BKUs|89cfHGsfvz$G;a+0_)RTcY*+ zM`G;kzC;(V_CefWu(A&^1~~F7Tdza3p^RpGbW|J@}*b4fc=bttB9wG6wPMmj&v7 znpe~Ow;AX^oPqyGz)aGTTa^Fd+L+x?Q{j(^0N9l|cS<@Sbn#1%fhK04An}Lo2}qS& zH(RIbCb8vu-%pB5HIOe9y?Ee_%WGrcJBCjzk=pPfQcZ>(-1~- z^la`;dgDTEs(P8XXO8lOY%iJpeT%GSaWOK9&ev|u<`J>7@EnwP_VU}Y?TE0TYPo6l zmecr4V>QXZGpJ!aMw2eH;58PPGLZ?Lp3!YZ|F|+$Qh$DPgFYS7Via#yXM2&+T+Tu2 z2bYaeYtS(?t4UMXK1ol!H1T(3T`SrwQjtD82Xjz{g1xcnI7iXSe7eJ77fWVKU3m#z zL(>foeWb$zy`iR*1GioU67}_{2E*`W&COdZHBQ<0p{dntLkIAcTV3q9}?UEy}WnP#Ls?Sk3sieb^ zJey{Y1RhiDJM_|_tE-@CBIhCn1@)OKJJGPqhMV(2{5YTQ_Zjw-y#+)!d9pofpf|?x zB>UhaUyLCH4>{xG=U2LUkuS$$>D;G7FlaA-FPtTM>Re6kQ&P?{(<7@`O8nFWnZ8() zM1Jftp@u#thB)zW@KSteaNvXD(BB{p+^i&i5sMrMJY-2k{T5}1odj7(5@*K*2MlY{ z)J7Wghr3PD3;_xbIRofA)MNJkt`_|`a#dFnsq28WgTSOhBVD(J-5dahl`#E;z=I-` zMEu&4f?byZZPK|k{Ms-GlsxI|Lzyk0E`%?(l-BT(n9TlG63HGql$|kH1||y<$=x@K z8o$G8r6Z0T2tOEB;cOnp3OuOEp!i%N!BQ;LjU)C4G#a`xvbcSt7IT4^)=H*>EvWX- zAMI$^TLop4y+5Ww+8G%gjK3-g38@sMN`OIroXVFENQb;ce#9B} zkOxkzREV4Z;_KLo?gKCWbXE%g(a`%}^@$(F|HsKF=we}QY~uL;#EtTd+CN(Xy5fuk z#0HSnFv071EiA;d`kGCW#lie6%uP#8;j2sVA@rE0`^Eu$tmkLCu~a|Rh3y3g-*EQw`!;up5Tm~0Sa_DzE`H#U>nHKG%DaBQy~o#gt#AbFML4dgdEY|N)BY+GR_z2!9x^{Jr83rt#Y zrkpD@8wz zY;Ek6L_G#4v~Wt79AHDL)W%T-;O7`6H&w}{W>a|g#iV# zOezGdnw^~j4Vaa(obQmgB9YhjCgAzN+v)DRFtaOHJn&FyQ;6v9pA znJ}U12QXV2n|S_re+~(R;GL+S!}i>N6L~~=Ohi0@5U}3>_(anADXeJ0!kB3F`(TC^ zHlLBCb5t+@I8dpM)?Bng^G2Ngrs(|R4-vJ8JUGs~L}rg@aqYzFzjF6Glah_amUrKj z#-Bs`q!OBKVe^oDFE!gEWU;>;zy2AHa^Dh5uYJYR`Mb?|B{4-Wdf$Mj>s}Dhwa`?r zPHn60EKh-F=sSw5+K0zJ=F625J!Ves7Fm>D^5WnT4`vVes!Xg2w}i=(bj@L%#_+f5 z?~E;=$*=I)bzD$iu@^P}4E#(&IQ&R@$Dr&1i**uhXx(89Pp6*71iR!9!AIWXyXYGN zM1J>R>{`U(Dtzx@5DCE^&d>+p@p8SyMLnb#uVN6FYlx&xx-dLxk3KYm9Ky}K0=qZD zqHb^t0{Sr1&jPR}bFD}JDL zSa=|HFf&wX6(i}txY@Dz(diavk0ZIeigu5FRop@HnR90y5R4Bp!+HMt>AdOD_=%u- zJ$3s*e8m|YGu#-X(kntR_?fs?L#hJQfKK&+pg3@?K|DavKr-e%*PBpB?p;~!VmDH1 zib38)rL9 z-Yz+a$m*VZEijhNoG1J;va2MTM{*h;H?z|BcM$=-u1Az}mPEOZ99E(?H17w>Qj+7x z38$&>aYI&2U-e&D8auSwTEtgEin+Wg%FS#7!QsuF6S>NnSdt3a2J{2UtQ-gsjcO1G z+|8sJZEC~v1|Tf5l4NS4vhF7u8XnB*aw|QJl@U z8LfQ=kikWkXCjTBrtOP`Q1HX0J+5^rTLVBWDL_&wdK{SSNL)rgQ=*w?C*3JM`G0Mw zUBrnOKWfmpjAcxfmOE$%01y07@U1j6n&EQ@s_GVC42aNVvD&dwV*7Ou_FPc5!phx| zvjIE5{SFvM1W@3NIwNr0g@!Hk~xh|WkBFyZS^&dd1sNB_tz1;PN!CvI^zWvv4eO-~o}UHB?qgayq#1Av#PKLDBz-aO5~qJC8zpJlYj9pY`PBw1R5KVSJx`>TRiakI zu7LM6-+{6Z+pkQqN``!y+Dm3^=zNj{s7*}8=N0aXtbp(#Eg*PUc)DQMMJR1ff$`h$Nt6uV(^KFH$(EmkU-~gG2LIhYWE%us(Sw}=a=~$*7 zYtHsq3|?aeyel!NIZ~V57^9xVl^qB^dl;{%#k!{`|o!` z=00<&dBYmDPM}v(wQo|bJuKoHzXQj#(;V!Aq(@~Yamz@V>mWzcnsy&Px=DV(Ar9r5 ztoAcn(+LCF@KPbHEGuhhE%Yvzm+#t1lqUc+e77Y=u40pvzp06w4?V!eJ7pevmO@k5 z$8rMubx5Z5#^XTQrvcvU?H$|XSXxpMItR8{e}n$5^jxhEh)Iyf#f)~LGnzbGWo${1 zk9pV>x|&Y=L?$bW0@H3OKn4-!L7ofCGZ)P??}tSY)OOC(v+nn;M*(7n3$LS!XP4OJ z$cjV6aK*AjCp)8cCZ31YqaRECt!8Pg-48r@xVTe>JW*tP_V~Y-+N=q*c%gr0bV<4MNd7U%!L-JGnrVf%wb<;kqPNJE{6dIWSJM=qW1IEq&lhYvuefES(@_o-lw zkwD{UG2!a7QxOjr{vo3NoIB2xmk*3{zx}hemhKee_WT}8rw712k{=_IbWi_4ej#31 zv{&X(y{`M)Rt**{l{F7E55U z)nhE%X~i|5AOF@!3)q!jdceR?tsCFfOQzYJBz_W147%NDFY=H=XuZN2opCAegpryh z=%xo3w!?PuSSOZpSajFEc94i*rO}X-1C2rG$%q)Sz3Dt5(B-U>>9koc28%R6o8Ejh zhD~W+tDoL+GgVM=Gs~^{JI8Mq)HZLdj=KIM)bk-BIz)Ntz;~wvVedH?E_lU>=ncnY znDG`q)_B!uwJhz1-QsUfTKztoh&89=QXj8%xpSZX_sJTD`hZJEgdXVkCJ`Ptv`+76 zof%6_22aJGWYe!R-j-A7@A_(z{wCpxWp5&vsxO(kKt`S%5l;{3i+T2ZW&=*6h{>h~ z3Z{v*ErwMPe`HniW99lNm57lh04vKZTY%OwDcII{0^l^HB3Ux=+?aR@Q?W6dm^eC1 zU{Q5+p>NmVXa2hy88fpk#A>6!CpHK(^3ptmi}}-*b5KYmWbx6LC@ZvyX}fith}PuA z?A(782~oss|BoMEmHmJ8RsC0lsj!KSi~Ijj%qZ#n41ke&8fmDTCf&4@Kgi4KXp%*M zC4z48#pjF0gb<9p*J-UfSFc&GYVJebSA+@XhF&i17)O{oQ6@tLd{*1tOs}(?uG81- z_;`H)>V6*qd*)Y;k>v5;h#`8UPgRhQxy#wkjQ7V4c164c9_a3}0rg(CS~u1!9ki+4 zQ#aDmtE{u_q={}hSBlP6uhERMQMq(hnu_H0UMlM>z-hMh6-vQXiK4`qS-aKOR3VhP zEji%$$>5iqxPt6oY~vDyO2%06!C<0vHWSqYiwfoGG#&-5&KYjja@hF4CahFonl3b1 zwitLshn%#KXe<`g8?XfgDh&aKM;u&>F!^(Q8v3+Hrc!VUqKzr1VsPU11(*agui~M9w1)?`M!V^jw0_Ol~_HU!*(f zOi55+hAN+{12pQbi`*dFy058Z zosv3huSspxS!<=qT^?R{WU9{HnY>bzOprt04UEH~hjlE`2j}^-=G6vNMKA)5K8+`I z$S36C5Va~cv=h2ygng6?AdNqbtMsR-4A;U~@WVm-OuyUMB#I&X`}YfiXHS8fR7sUuC{fT)s8VM}hUo{(@St zeJ5tjlnY(CUQRi$Q9*{DQb}VIIHYt+KjJv@5v@GX#xjxNn%RT73B@MnLmst8JZhjU z>|ITL0RQv1lg)P6mF};o? zkT|^#Z4f?;FbFZh91tN;A})wVI4Cte)fhh=gOrK-TF0hR-9ZS|O{*g>01`k*pufAi zd3oKZHB)E0+(vFDpYrqC$1Wu($jKA`dE4#h>goIU&iBuE937j>2cb{9{jAS1Trl}zpZ=r+&W zTYL}@4tIp;eop}=)`PxZ`MYh?cObBKw-Oh-Z>6Yj<>)qA+Zze&=(ecojH3M80w(m( zTOD@B+4Q%EPF zCm{wKFl0zqjb&|R{#ctnBQ6_ZIA?JQ0U~1yR2ZoLT=rfLE|KwdE2$UAJ!m*2d*GZg zF~M#$);Mn=tx2dl*=_}-*g!ZYfY;fdCBT^BId~cLE%X@lsqt-Cq8`PY)4l1o5p($) zjq1_C`?Ymv;*P;ZrdkHf8_E?U&$7j)1`wkq4LRQ=rH)^$+ z>hQMw=XnA#i@=TsI&U7Aqh`{_-D6Uo5@#lIOj#@TK{SLxa2Bi$#p&BM&DM%QTVAa% zj@IEp2wRKdD;JoO`!w8>$gH-x%7r=cRDN4_L)>0cN`}+Ci@9mp7#>k!eZlf@-YL5< zUqy3l9c@sD`ZIPGmlkm?Z{JH##KM!i&(-(>ACf3XL4A{{%tX zCFH2E?{Y7eCCYi)kJ|hDqDc(062p;O_X=r ziaO3U)I!6$IB~|T%HsloLMfA3nStopt7mBUgspHu1MrMj@t%r5M@k0x7Od-qgQ@DP zp%bodwy6XJayfTOvwc~A*XyRR-gNb^8F0-}3OngR{dX$NyI$>NcL^NW`-Q9ko z`l$#F_{(CH3Cv+FZFec_cJd{OO|evHIm6;dhjAMjvBhqIDXv6ND`sMGv_ZF7!(sfy zxNcX-&;K5R#yqMoXvSevB!MF!Q zgAmjAVA$@Ci{dQ@4Mn|=l$DuL_pyZxL|^kEP~A^3r7=;qHwjB8Sl+9`1_~2U%_~J@9TeM@jVoMIYYVHwm!9Oz z!p$zu$D9;Y8_KTEu8$9NShalr#>M(S^LMP+A7IolkAtY_zq_mPVu1(bkbc2gYpA0et7cZLlye zkUNP3>(sV12Ms+k^YE8(gxN8k&fNqk%_UQHXPPU+)UNkw7I)o|8maEyWX-!RBevdu+< z@+rQUNNaT`_GoDkpI@v@ZQW^6C5on-{Uy13ZiB3Ef}3<_Dp!nO_B8sb;}i5@_gPd7sKe#_&d zdsJ(o^; z6w+D1S`TD1+{vyL8pHLN?m4yr_;|8oIu#~bnH=znZ^&9YHO%4Yk)GkByVWCoR)ao= z?ga?n;cX9N|7hKk&v`@Z^&N2E1r0O@r_~(Ujj0Gv%h1q33X!?cj9S)cFSY?&wapV7 zTU5C{ECQ-ncg~rL7_v3?WVA?rob+FtTczx~bP?=z&jx$qF7;g%j{1pg!moR)rmb_&q z-J}2X0ZrZ42<|g}NNF;2I!pgU2zRGb$esArhR-`hoKJ0ilGAhxw10Srttgtty8I{M zDT!Q2N>EHeaqpJH8m@5p#>u*hc2B+#`Y(l)6m_U5$fDpIQ&a%ZiR>#}iBE=90+4PI zOldo(5T2ePYu6uX_u%wfN}^{>ibog5aV+!w6GO0VW#4Hg8<}?uLbB@8Tvkc#(vQda z2NuczB##Bq8te%-xJ$gon4mNz{x3i`5Dx2z55{Igm1&LR0P6RGKnqvb@+r5*w6%28 zWBi4QAcquBQP%2Au$@Ux@~XhK=g@hW0OuM;`{bf3!eK4PIPTN+!DxeUT6lO=jWwlr zvdW(k|5z;S_;Uq^@w^4>1FCzj?niLmNAlwro8rrkgy^@vIxl|uXX4pAUCMOtIP15B zk~dA_46$p5Imdh%cKuY2fEcv1rh3;P588<*gmJS4bYqRjlY=xW^_3%S3Alx2apA1P zJl*REN9C-+Ge@jp#mASx01;lR;wkk*p?S z3`IpR$SH^{FSy$lQBxMMLA{BYyuHu_{^$s9WiW@96A(6$}8M!t9He%CdPQV=YcJWaw@l#;%XG;LrVl_-ps7=|6ZJDy@#-m(e@~WyY(M_L? zrU^_mI_e`(pzWZ#t&XND=~b#mPz+%(hcvaR*7G7==!LmDhCQuOR|rU1iw3v&6`2Qp zKqO|M-7xs{6!&`OAX||(l;d8V($dHzSXf!nm_(1KS*ZZ-_g>;my@Lp0Hqt>OjWMO; zd)ujhjVh)e9{;8I)odp3TlNyvIj);1Dm`Fiph}>IYCbJk3XxGcYe7eK*S>1NVOvFE zx-#|aNpdaU89wiO>6zvJkBz3rG}hH-Yu|zIc?r6)zQrCVrzq(zwaxlZG6IoOu|$x0XrfsX&^79_*xB_p`q8B#a0J}Z_u=V%iCv9@g-4Rs z`owK7Au=!+FcsuMkYn}65LZnjE5oV@RWwZdS8f5iWLrmTSD{dy-k-9)Za7X{pYgsw zzR>$n78gzjD=miZGQwAu-a^99n746?ywaCt#mCUQL*c_XkEVSQ+Ow5SKwYdc8uvuU}(4u^3@7whfvWZT4f1sUI7V_JsO23 z+H~Xuy!)xtQKhV~t1xAyB%fF!I4O=9NnRSwj;A+}#p%4)lCEY6yll^X z*~}+I#Nf`;5+)&c24FUuZmC6qN4`S6p$^<7cKlkI?+>wKM=>S!y!gYhgT? z$QtH=5@NU8LnH;c52Z=zk_Y{{1w9cBbWOV5`qSOU8f@8aCdy1q;e=ef^4Q%BF-_UR zi_>XG*KDrsmyc%iL`^kc!kQ(mB^hivY|v;l>byD|@IbSxqNc>;tnyy|8JBk9Esudd zu^C6GAbJ-M&GJbeC0^=151L0oUp1Q{tKVH7FdB7e(twFd3E5au_&ta?AJd; zG_*2V*hyc589Up`YYk1<6F5ZsXFaJt@Nf}UQ3;ZyM&X{`;v~Gi?<>;S8_1|FoG^tx zTnn=sI`GcmIA)$mwMg6}0-=`G2`XyXLE!<}&tQHC%9t|*ji}^7J2^u672?l5?ED58 z@mo7!rS%s;Bp){+2a15sVmqM(@%B;K0jE%eTuWD^*+eSt03{kOVWSWIK-SkM!xh=3 zF;Z#17aFrJDiSjA6$NrW4+*(wZD<1u&dA2cLHx*x7%_}!on%7zDo)~qh-Nok0eM&LI9tCSamAeKDFy=49h+i^e`-5} zIP>HU3ePyzH^4vgMZMukc=3-==lG)s|N8;tzxPA@V=Wi5HZidMu|p_38W>rbI1($G z7})>c3+KryT29C!$X}dm#tB;hDI`JQVFEyFk*0umIbj*WW9N<%4e&^{*=wX+?CBa_ zW)zRPr-8NHFZv3>_4|QGjdt6*)q>Qs_jKw(wPq=V^5XHK98S|KPCZU%3p{*VUteIq z#0cK&p=SOXP)7r>TVNiDVxOI?2O-Ru{Tu;iUYD}yic+KQvWy#NW=vzewG!n@>A!Fv zG`G`CYmslU*Un?Jbgzzg@K8bYY|Y1J)7F6rOgRXijykDqs5RaNp<qT;~>eD zgj!9;m+!coRFy*Ddwb~@LxeouuHFDJ*)}#38K-Ps*Re5#DthK5OuMrGThK*}qX$YQ zOA?l}d}Ug6PDa~Vf#G4$H`6jD_Q+0>>EOTlL(eS%nSU_Q>YM;ZK=%}{Vi>eBVgm(X zH1%OG9~;5Vs$&RjwayYA9@t>r7FZgg$ZD}48PWK&o;KJOoDuD$za-Y8o#&ukcSnnA zL%qj?b#nj&g}44P)`xeH*XJ*`LQCJX)Qvc{eNe^Hl;GmO^(rHi6U*Ga-#*c#?5ygQ z|5Px;&h{Ds@D72SYPl37ca#dP?0!j&uB-D@5F7$&%6?THV(4B^JiCH{3A?MGAkB5} zU5fqIdv4P|y>glVM36!#>thZz(Qq-WjYL3C8e&9pE z%`)^D#a0oJCRG_x0n4y<+{&i*lUERkZBy^%$LKMPahSC^LByrHoVUgW_9`r z*e=|-JV$nmQi9az2XlrOU+#)3by3$@C$Bl!LdOvId&A;NU5vHgO?U03#M9)5m*J47 zu^1=hmSv7$F~Jw6J4*g_IOPqb^b&dUK-&8rs<*v=_LdoXvBUmq@D@FPVG$K~fn6=c zj*Zr|N@1Qf0}qAw28V=tk98VcCr@9nI(0AUkeD+J(Brh|dWUyQ+zh=lqkn_*PcSz| zyu(}k1heLU3}(82o5=r%VE#V~BdS_X3##y6hwSl0Ntpz+u&H78PM5zSidTv#;1dz; z1@Qqa*9B4Dhfv8A;!W_AQnqhaEcD*ySDx}0D41aU8I?>Wp%%Wfc%SmGa3$iSjpq47 z3Y}CtcYHg|+>ZFZUtiIFb>77XO|jGN2L=6#VJie96XB-IM;IkBwvUj~g}*BZGF7`r zOwBr;#0XDG6)7W-mNFMo6@-m~GJ8pY%f}al+N%lzZ`j<=0@o2lGbKT%7eOYm?t4|K zli!b=8a6>d6V^t?m({R*!fpf}D-7wcGSHz(R+r#kU?@Rt*Jh{FH+rk`6p%Tuh?mo} zCiRG#qL0MTaBccCVa?C~P?W-^+-c1K(3z@&Tjl9x{6;;w4kQE&-=Kqg$gyvkWFsR7 zo7o{tnPCw(z1Kkpx=@lVS0Tcpr9WQ9!DWS6Tx3cr#+(gv@xxLfx&dh)_Tt3Va*{S< z#Zq9&Hc#AnqI_vmZICdNiZ09eD6&Cl09u-+wRjo_WD;c-qC!!RX>g5DH20u@R!f&b z5zinhED=y_2?b^z@{|Jyht1@W)YZ~tT6Onu&CpOfZ<=naPgnViR8f4_NCv$Q5=~B~ zip%9;?d(Xc@AT*BfC84f8zFQyYJ{hGyH={pOyxq`MmZ<@cm4OUZiwSVJA!1DW#dQI z;6P`wNc!)Wi7SvM>2>70G|k8P7M_+zKsNhzLoNMWqmRl(qjPnwI}Vg#+v zHI*CQa@SZPlb)(eciB};LGgHp3X?@i8;Dd%r%AOQrnfQ4pa4B{9HMqm}yg+hhoa5)pgBn$}Qk^+I&Dt-hMMPcmR$EYn7ThA)eU6SumydXf?{iaYrTytv@Mx0j$E_aGiOPE1 zE#p}kwz;d5KQ>)lhv#gLZ(J5zBx^hq8+aw|<-TRqh$^6IFU6TKpJye`6teyUqGnTr++_8r- z=s%{XTROE+D%Z@Up4uf<>o+4eNhU=_9qGpOZ#6jALQN#Z$XQT2anmOgxm_E73vA<1!_obPOx&DqWtQBd zZtbup?<{=cD0!q_-=t5xJAVh3f6OU=34eY`|N0h8?e$ECOX@|i@gs}-rcd^JOM**| zJ-w$3q$!<HL=-V1&mY9G`+k~#{@_co!_^D+Q%xGW0=GE<*H z>9B`WyNj1O#Ecnrp~L`XlexaLul*b`v!8^j^uXjP%H#&>e~|8Y%$GtXoNPQxFuK*I zn>q05o*jCh8v+4oQ18Tn8uZ$^}nyir+B7Jy%)T4 z&k2Kqx_Sd}YT@6HruZO2s%L#qLaHZePQ%189$icSDv5c=+_9MHjbh-*+08MyTiJc< z<69D&OF}%klExhd=S_20>2HZyj(mSl+7m;2afVoeW`;Bb6Ex@TXkqMY=;62e#|?bYK0U-H}CBnKw5%bAl$n^y9P-d(*xYnbs5R zqb;6iE3?Jo(G^XdJiCLW)R8EzJauHzsmbrK>i*!w>b^L042<0gD;S)Yac)oF_Dz&* zMgLHx`v~6=&F&E?zEbWUJmiw`NjyHr__s={(+JBy?V&U@Jf)#XLWxf4w1w5 zDtGq7G$4B(@DokV&HNzg_zs}$Et;(D`Y`!|)X`;mwIXiPLyFs(J#w+U4e9s0Ffo~k zRFtQL*XdngEZ!Ug-Y%Nd0`=S2?KS&>R4g?$1+7$c8ok0>Cr@dR1}9o4we8UM zv`{wf(Au|E)g~q^)s8A8HOfW>OvC?cJ z#{ALmixjQV&r@w?CDdZH9Hhwy$;MgERzA8 zYbuV{9}MZx&&)$5YUp2PMAvlo4q~XI9}|d34Q6eb3K!H4iU?j3AyOj9NMFUQj7WIl zH=?}(ZzhXMPgjpdw6=k2UTkV|5rr2fZ;S6A1MV4xyS9w5?^@Er6tsz_heQ-B%|~?= z)iy%GbE06b^%1;4D4X^=kMF?(%v~jvx7B8!4ZX{`_a*=H-tmbHQ zv3S{(hfWl(lo>bHE9|UXC$Mc7c~D|qCalhe8QbIyZz@Q?U7ij*puZIXgb@`p6A~%| z@<1~;w^>8BM61wSTHlP?7bu~%Dn41ex)MlI&d2UWqABKHHa#CB)>;y$8;Cz+_UR^`2>$MpM`T-RYe|UA8oY_Esq{m0&#n@Djt;#} z5GyIvY}CT6$1QIjcmdTQK)Ig(wnD5#aBo5cVEfh+BMhE5?!-8%o58ZsSzlX3-WL2r zC7F&?BrUFv{vOgIEJ%an>deBGWk4B|i&1^Pq|9^L&$+=Re+_;7JqlEu=XWmwdz^4W z@olhztX^b*FH#~>F>?mZN>mF(53ia+1KUE(T%OJX!Vv6_ua%Q zESPpgpTXITFKDHpFrNOBsHx@}l8F@zHBT;gVc)hMpss2tQ+z6!9v>}Hn9pr<%ZHAA zWVjln*nrGJ6uMaSM^FTi%kUx1TqsZu5qq$~3tJ2aF|%ANrBVj!Qs&o zgv9L%ro}ieEe8CFBy9AYq`=Em%L`n|nT!07fL}mB;n$PADKf?*tSg{3AMz8cz4izP zqFGDEtlFVqrF&qkW=n6HhCB>VjRx}r?LMScCKo|7yn(5bvZ=57L$umojyqo`il%Ye+WVh-=QI& zHek!b!3I5w3jixgu0}sQ@f;-Zj*KTQuC`U+Rx(2ATpY|qQj30)*i23$)aYtpM*&6< zJ4K#_W)0gcukFkFwl~kjz}ae*KadV0dm)^AHEbflo;^VL9Y0y{z0Ty^a4svcloCN9 z|07xo!KXo1KYlL;G_UDs2Il!X z7>-wDR!T5i$k5PqsOIJ=w}%mpJkNn>mE-oTcfhQxhC1>m0)uS(6sl-7h)st8G__0H>3N-V5pSKNa+yisc*}()my6YY=I&97eWwD0$CcBZ47q2nQ_7}!lvnQqYb5_XvuyR0sAPwa!!RPWU9^Oy@R$Qn z4?J7zian*!FC39bIp^N8UdBb5)~Q0uHfF`40MhG2Pl-iJb-IIPC`d&f7=W7frmw@U zkVmFwHZ7FzIetTTwt7Xf=9@B45eTECfD(5_g=S>mqV7bqzJQ76eFo$(aFIUISff?q zo*5qB1YAS8!4E(QW)43|dxar)2AA{)dZiN3@PtDUk_hC#`~|%hCntLCnb`dahdMH??pEAon#4gR6=H%BmG7}^I?bOw`E}sX2 zbpZcylSUubh#+AX&)W)IU*CXSpVy(Vx2zB!ZNuKs|7~#R*Kk6!Jh2`ZGaV!UUiP;d ztKI|5s_`ZCgDCPl(k}=)2KM*|OFzptH#hdzG>HrV23hmc`-?$`SD=y#I%o*fPv6Fj z82%a@7zow@^*d?zGn3y06*O)%0XZX(k=#D9A&-SI^~qnyT|ae1)fmtPk-ngeq_zg} zpjE>fifd&*7om-tja{;iFh7OAXlXyU(KXUfK*l=;6a?}LwmN$%TETWhGhF@2DbQJr zAz{%VlE##2Hdg&Z%6DjAuO0*SI|Hv-Ssp{vG_Pac5DFvv8G?FXzueUU1NCHW*h9Ul zDbhtf%NFhIBMBGYYJfS(upVknM0iJ4=qRP4BBS`c!l1n5+(5piD|i|Q-v>ZC5h(s| zKED$@ikXp>Q5!^a&MF4JA0q!Z4*d%kYNzmD%?i0@>J}lH#zkkAK|{8NOlnuS&K1Mw z`gfWq8&^J2kZ0splfZ8GAb2^;iy3()n&#MyVSRDwW=r~(YADtjTfG$tsS4V5G_KAe ze?hTSNQqW)R@%=B@Vx4FOg0Yqt7UWgkPMr0j?2uHj7a8k56hJNCy|0RS*feiH<~A$ z79glo3To|Y%M>3PHgAU%p42pR$Dmki|M5Lh+3T_J$T+g7R zJ9>xzC5$Fh2QxCmlhTuiHshVdb1oKprBxkQqtDiW->w7HHz$V7Hl zuz<(O7KV-Vr_kk+9|;jRuCoNkzvO8-I;cul90n4EX6b)1_6|V01L3;vc;+A5_N=jO z+qP}nwr#92*4SEO+qTx&I+ZTqr_z;5C!Ol5RK7R;y^r=fqU2?e^1N%} z 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 C_bBoJ literal 0 HcmV?d00001 diff --git a/depclean-core/src/test/resources/analysisResources/commons-lang.jar b/depclean-core/src/test/resources/analysisResources/commons-lang.jar new file mode 100644 index 0000000000000000000000000000000000000000..532939ecab6b77ccb77af3635c55ff9752b70ab7 GIT binary patch literal 261809 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

kySdob_3;M!dHzD`;J2Rq2Z&d8UGhxV$ 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

yUq$ZicIfr0j^C5AT9_(?KOEnXG6_sk<}m&@u7M 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 K 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 WN(d%Sz)pYg&kZC$Y;~ZsgZvM{S*Lpd literal 0 HcmV?d00001 diff --git a/depclean-core/src/test/resources/analysisResources/commons-logging-api.jar b/depclean-core/src/test/resources/analysisResources/commons-logging-api.jar new file mode 100644 index 0000000000000000000000000000000000000000..d1abcbb47929bdabcf9f177449237e433377fccb GIT binary patch literal 44598 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 Vz>!a|xjXo;7<_Z)kp2C?{|AR1H*^31 literal 0 HcmV?d00001 diff --git a/depclean-core/src/test/resources/analysisResources/junit-jupiter.jar b/depclean-core/src/test/resources/analysisResources/junit-jupiter.jar new file mode 100644 index 0000000000000000000000000000000000000000..024a98f3a4430368b7acdcf65bb29046c6cfec7e GIT binary patch literal 209317 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ξ+kE%7W*e|E!f`wsa<4gRSy@YN296pt+^(=poLt3pgC=TPo)z*%t+ zPf|a4h*a%~mbq!$qzoc0-q6Mp0Re+$AA;tYzD}g)*M&rjwk17iQXZMoe#+IcEhWwhPGC0N@PhiKI3Y|s4I)y@<6gs z*k8C7RC32!>|mxK8)XT_it(r4g0`4^p7AjAHfv5t_Dx%Fm=aaV3GtXSkNBB_ zP$z$7NMW|c9XV-ezhvLglHT2}cRE3n{VGMP0)3VE5AL;z$#$fw*V{h6?j*9v1rF@`7&a zuP~RraV9;1m)1O9n;iGBlr6;*SAx`MdhY41dO2M>ciN&Yg&iA1)V zbHx8r3sRxVbO9uZN})2L3Qq+9Cq4`&Cw`ojrR=E=LXs&T*l`Y=7tdQtAzJ!Q@-v^G zL9r&FQjMOH8sCRHZdH-#^5(m(OXyQVnNk|EL2*|KPA9V+%H=k>$nvPk8iRIkSJCBR zj=S7zFATZ<%%rw%8wjftse|PuEk;GerpY0=i2J>mjqG^98Xokm6~T2o5fPDv5@bed zuA7$eVX)SMillW9ACe6w!OYyL4e+tCPaP{!8f(JCSy*gJh>5c3+6nZz_|~S_E92(T z#H1uL>#&lo!4=Ps9cZb@HrDf&up8hR_T!0x^6Qn6#x&|9>jWb!K7i&ooBsrGB*>O7 z1>vdOlOQ9wV)7dt{a#$X5GEyQRSPQBX@WdPZ&h)eHEdCKpA{WRPDA@+00BdkMFrt+ z^{YC8mf5GaNk)B{sM$HmhNr$z?)hj&Cc$$3Bt$|ho5{T5jtr-#C9S2>B_wi<{}%@= zDOps0GW?%i)|qC==8Se2ipd^F0d=Ag&*UV;6H-fJp1;WPrdC7!v$HP_oz{k~pZR}- zMfd9j=oxME{=NjMwqJUeCY;WDsfZ3HAB-7U-v0$&=NBW-A1yC-z7t+4 z4Vj=IW~f7{%(+FN47Nq03~rNVfwqY!@)p^`Ws_)uTzbnqTX@TaGsGo9(+t(x@!gko z>{l^GTzRDH_@Znl=mcT9>w;eR0MljR2h)Q>t&ESez;L2Fdw#Lu;e>PC_N2sCy383Y zG^t5WI5W(7*^V&xvss^TAQNr@0I5FasvtiY3HNq(tKgcJX-ilb&+~jht7Ap@X{>0r zP6jc;G4w1Sk)fRA*K8uEMs{|`WTtcpHo>ZGShHROh}gPu&Nm_A*>$BK#1C(4WFFXm2+A@AEh zxQLHi?bs$@l$PSA??#ceK>EH)W@Zk;xI+LR1y(=qR2bOmxZm@cfpNEGrWQ?nRSgQr ziTqN9$+F4$vqS1A6MnoZid9Z9PGm;@Rsc20=h;t3L8V8JU{0LVRGqSuc+>fEK1+oD zMsZ|&5Bm?rwElS~!aba8@SD(wawT=LYI{ml#cLDtCToRbGODkLYE0@Rs;s)4$KotkA|}UBN}=p>F>=83aex*wVve}SNJ!W2~W{_kM!Rm?^E2}sdp*HTqqMaAzJ6x zln=bwv~ZeaRCq7JN0J$+qgGkr*$iq%)D7_82~Nn;&yNgdu6+CE9&7%nJke3FEK*_wAIv;1 zx&+>ew>wP`>YkX1rJSj}V1B!lT=VpmIBt_Bh zxs3>$edm+uG!6+9dAJ#u3bbmksBbhAkR>zqXA3;PT4V2s9Qg6=&Sapcf|D`C@pp5U z3gel&Oky54CUUurQWt3DLL!mq9G)*qh>x455s&9tu=~jWj14duZEhm1aWYpky4`~{OePqbruGu8f6N<@z$ zVpwW5AnYM}dY_VE%%}M7GIyXC*F0Nx7FVaWEJDa^Q-mds zN-V;dk_9v4_s~9q!)CV;QSt}OOu8asDnj^4w@7rO-(hfs2S)CS!!QNL9?Jc68Mifb zt43YzdvJwO6a%%)kl6dd+~ImAcTXgVBMn&{-HO(}k$&wfk5u92GE*#>#1m~v>10@< zRh+ymsZF^XOdl4lNRe>nVxv_nOgM;4u!P|~qtE3MZ1DMy2lmA9y9CcPzz`X;u|T#6 zz}{|!0LM#83I$OyIq3_miFxW=r{Cr zKo904NY;begHM1Xk3#-!0xd+5=yqvQOkBArNA2lYtOLc2{$0f@ z?hp)pFm1t4R3l4}+J28Y41(1%W-dGC6!!2%tqJ7)ww;Ww>5L0+)aGKRYl@8X$r)K< zqbZxlBd)C4q{&THmWBA-a$+lszgBUu!9iLhis%@j&X_fNwk!JnnHDjHdoH6s>T?_< zTra-`{pevf$amNF50?vC9NaUr4m5aTNWofG^8IVyJj(Ifp4Cl}YYjnaP3~OlH0{h9 zZOs6#^@?t{KK)GjT_!>tF%W41lZEoTB+7bV{BnDOEiw>jdxTxl$+va+NCO)$Uo3d6 zLqyZ=nm_^~_FL%Y=<~9_PSK84X^hfzT8mr8Jiu0*ju^(`0H`!>1hXpK;i&tj#UP1Y z7_GKHtC!UD^K6j#=6dEZcw#ci?48bscs6ZCiS@6I7*WtX(^T{N01B3dKdVhJYz#4M zjBYLrZeSUluMBr7qJ9v*yC!aR-5^T4&v`;@j~OogMJ9BFTfpfvaz~Hc3i5Hsk-urg z5tuSFE2S7F-2Tvf^yUBJdTH&R+VBRm!ZFV_-j@y`ha-;VxiN(cJ#Xr`Z9;T`CMIIcLm$PZA;q0D=|WH<%YR6Rb$v?CO^b9XZddW z&jX)-&Nzp)7AymYMtPx`4c*0M(f4aIkLd+mHW%)GZVrbzb*WBcQ`0b;9jf0jx#k#n z&S2q0;W(^d}4m*4oGF)afmp#N?e-N z4+Y3>^ET`EZ|7qLPWHtq3z+XR4S>pfLU4j+QSG;k9j163ZuS#(Eg`KeVYLPL zz$bbBv5x1}8CLV3dnMrmGepxL2ca~^6x^3!_y0(hg2bf_h)H6vN(zk`d<)A5kZ`Wm zOI%HDG)He4&VYJKM>A@PEM=FTvFSuxSk<%R&@de<{t>xy%1b&5%O15pn!!BakEQQ} zeMEn`N{CpwA&oL)@K352w~Eixj@z6IVn*pBc6o45UcVLX`3<7m1o3ds*&&i^R``w; zdu{gGJFWB%?u*=O((H@gYu5Dn^LG$`%j+lXZ`-C%q~F24EjgdepF`#!=%3j9EZT?t z2w(r&%YR8-1~mK4IE1kLI|PCF-?9!CPDXaFCXOETAm4TX5Rl)${qenj_g}~VZV&M9 z1I7RQFaH%)plo7o@{h~0l8KX@_4l3rlep0K@J3m}{rYrGlxawhGZrNHiNIjkAgOcp z14sNJKD;B+(dv=iml1Xlaw&qEy*rUafMr1Skv*!%CRdvbJef)3&mr_tL!d z*-2gh+@8F+Fs`+Bt;hcwoy>H5-+p@X>OJpn^*D;28v&we`olHrj}DW!yRm0o(a;F{j3ZXI=)%N zyym_`i+k2VpJxW?ob@f=ivN%bp=b872#_jQS%l6cq$>I^^d$zq3e;+Jj=emOV3u4o z4s$|U$AY+&u$f}HQI+dFa4kAMY|@UnVi9!7rh#xGts$hMC3r1iD^24jxt}^DTx{Ho z;aZ@X*h7V?ujYQ@Y$zaBvrC0 zkzokgQeAkDtQHB{<|)W)NIa~rg7oKw!xP*yuYvEQ*MQ}0^{W?;@6y&EC>QX@ihe=2 z-wKz1ov9314{hZHigOgspqd>OFPXHVsL5owLO>U2uTX;3hDvL0-P3>URi*Hm)b8U! zdUai00sS^xMZW1|7caYs3t*Fv)rUd=RULRw%ErD|tKGkLXbld;`z`N7j7)I```pRP z3nD1$Oim*=9lE{HtygQ)5Mw0d0f&dTAhD{Kj^%8MtYSla$O6`pHnWd*waK-6t`K-B z6`E?5Me8p&)F}()IoPV0j(qiSGe9G4X3&IcuH0>D#_@BrAOu*i#F*)V*wOgu<`{#W$z}+W; zFyH_4Q-Hx56N|bA8bsYk)z!E_=LYyNG|F@!02ag0!bPm8`RLw$gbh6=!>8ONpV*X# zw56uMSW`<|<8-r8@swTVB>i4Z!VTH(!9^>Bkv^z&9(ho$_jnwrx&54$CK!0ZA0`*& z7Y_&&$hpL) z(vmckkEH`ftZ$u*A6=Z5WRu~i^KlZ_K?JSC`%?2x1?DE%Z_$=*?0qqA;y7<976F#6 zC+ExD^6nKpxr}2`hb&P3ESS7LZ6%(l`r@fd2F+6u9x#v))Qt-Z3+2UZ2qXT(7dLe^ znc+FJGlNkx$3E&NSx?ce5$2+qR4Ur@si~(an(IP)c@@thJ$>}?%&&!4-z0x(l^q~R zO)*Wvi>yeg)G=Ce$q3KDj7mE^Rufs42!=L6D#VbE8?&%~RY8@8)Ve%sW^q2&TQ!_m zq&_D~10K@QOi!qdqw`0u{r;-O8Kg~l3F93g{MCOo91ZzOmURwP=`R%Ju!ycO&6Vgn z*C3{S3-nL!sR0M2sVH{u^nQciTbZ0$)-EQ#-l$$-k^8BH8{w<_ci3Fr!(&O^N;oAP z>%buWat?#T8?~5F^1gIGIgFog1ETcYjotSWPoUFL&f@04R7>Q}5+sXl!#xMZ>1Vo` zenK{qtG+&rVo^;K%R@b&N;j1Tbuqn+(kuJDnr!+PGIh);3#mJn{(=fNhFZ#7xkmEt(k^-W z1~S;gVgs4FQ*Dz@e3-Vr(NSlKlBWd-jQ%~O4pF~0)e;0IYG>>R#N`~aI}(~1%b7l? z3_Ng4)?tkne58cVYzKVAJbs!vTqfM&*qinFY^E*Itxab)C_JR2*U(1}MLs>`Fa4wwNy007$$OLZ zoPv?``cml=>Viwm^d6}hwBrS*fc+Jc*AAJP1$N_a^R=-TKw4Aa-oBuaFq?&<1Dy`( zJuTxyB$H2O5AmFv$t#|Zeo5*H1k*>Ht?3~@RX%tq?l8-lk{CW)9OCEj zOelk;Q^*=n^;dD;ptS=xvdPSwej04cSS-C6BqmVa_6DkcNy`|CJ`eO90tTINN|wY~ zgt?L^Oq-mRh^%j=vtqgLp^$c1FoG7TAjp%?irRbwggz4H6VS%ma5nV}k%|WpYRD zyYA;Ho@={TovdEW%$xRZ+eRmq9_RRslTb0g;CD=pe3#_L zbmuk>Oxmodx}{UyTas^z2|?RBwo`B(P}eS8h(9;Y~b#RW5L68~pYD2=&Sg*l!m@#D#c>bzLG4t3(7) zTs%I*6{GU^N_#*s%TfI*v(E8_6H4P0qa4{DgY5qJmJl;BS4ubixizl7J}7G)vXGY^ zKsS(l&Fo#(t`G@#CK-#Q5MWudUa(qy9D>&Bs;am&`jj*uTU;XV!Ez*TE0Uuv=7Ddi zA`Oa8mRyrtj}vk`(RYuxcm3loXKsoE1_-o_SAd5ofKOJ)^_TBNwdvDc@jP~6Ql8A` zgP!m+Sr^g56eBPN+mC@r&;=MCv2kK7x1Fu;G{wCDiS17|;23R_#f`v}C zNbT5t2OLw*$O2PONbQ8XTvAVjnTa>p%;+;x56wZOyVCH%b63>NE+J;@t|DeGAdpGS zL8&1=iu?u)Q-054;G(RK=d;_Nx1v+D^J2fO(D^(*p|F7dm2~amVq6Q@pBIGY)vS7+ z4e|uY3b(Rc9ZvOx7unh)0S+Y;F`e~Hxdcxeb!WZEz1s$Fih{75|8eyJm6p@TM^*7mlLOQAUV3K*uSD50)?psJcj=T*{CL z8@!DMo3)!q5p-OS?h>%{j`G7dK*uKJa!Gj9f;VP!o$wI1-=jv{;Glpdz#BUzZ(8-B z0@nl-!ygcWOu^%d!{kQ66_8$oWt#yShBs6o9V?b_S4RG7%LK6y-?LP9X;p}4t ztLqN&K-z3%vE4DT=N{b(+SGx~!F08Jo=9&!QP)_DW{uqkfoQx9MnKK$q|61nAJ|x zO5=v{N0=iq)dbS4-BL``5@Ucf$_lbk&ft;JOw@U?eVD?AbJ_^fq`feT1&aGl)3Q%a ztN|vtE$hLNUAY(7rD|$Iqmq9AFZA+>+VXLA)ts-XMqL*?(o<$Mwtd`)ttjSpWpWy} zGOQpPAUXph;K=jkhHrDw37x4r^A<>N4`h9OO>YDmDwGtbV$ZjAR}H{4FsziEJJ^J~ zM9h)Pp0Hr0K^&@}30Sw__pewTTAMI>G$89Oj8wKQpc;X2$PB5_S-`CfPqOMTVwO1+ zes|-x^1(@PB9@@S2&axH;zAo+;yJ<+b970O;G6vIwp-?36u86YD_`y!T|g#=YWPzJ z;k;ob3fL6aQBO*o6T4L9C2?C{ zh_XF`(G_E1kCjJrw>RkBMHyWz+e|DM&{pQwz^tuFa3@@&#-bw7Qu@u=jiPr{|D@qA z{s{Rnq(sx!2q~bU1Uu~dxEJCk&;Qxi7D<_w6_L9z%qpb5FKAQ4hF>|!o`6!jPCK|xDJ%da{8?0RA zr&)JLigdHjzXDBZT3(L&RUX~lYhC!tL^C({ zuwN$meC1eU9+hDZ=@Z1==1x$3TkL*LHy(&*m*h|55MD-7DmVy14ml~)RwNbss zhZ?K8oJhl!(|~hb#zb;7N3z5pUe+Ldp%HRSL*|mXKAlxfU5ULj4m|VrjcoCDo!JPf z=S?w<6;oy(_NFECS9EBwiRul)M7`tGT@tcQ)nLL)Ot>;YMbn2!MTL5m=kv#fa=(@s@Df>Zp@gjH(q<^LWhg^qRGqd(f^n$~wvU%=8=cgNkQwMg zXN06@k1FUJa;E3?pD+w>(Y`3?Bhku3Hc^@(-Qz**OJU)33$sxUP~D*Fp_w|Gt}adMf`Ib@D2bejEalVyd1wuGzD zC4H?UAtP$ubNyG+`px*)zaXa}e$8$Oq#r-D`2QV>CGZVN**TigTe{dGh5c%#8l2q z?d?w&oHI_-?Z;VD{9m6h?0%iknjjNjE}MW>#LboZh->GBs#6K#!W5TgYjgKJ z;Sm621DE5fN+@kJ&wO3AfjHm^HZkGNG4hR6ezEABk!Q41Z-}RcTWDSjIl+s}jcQ=e zw7uGtZ|`ri_OvD+J-XMAdDsI?!C`FJ_Gip`q&HZjOxtv3oyo){+iuU%?gAI{L}RY& z6dJFczd>A~1B@?H&#>vpVZr*2`cBu;?L)Cu9kiMEyofTYZ8VR6NU`O!IGK@yHoT`9 zttOgiOAS5WM~_G`wGz)f_RMfcl2Z;CK@xS23#WSEKxoe z{jdPmb~zIClS|#ce`G48=l$6lFKs-9MHPRdjwHCmGN?h|yivq`TTt&MaVv!s6AH4C zx=>m>)s`&Ma6^{oHl@MoaE}_VEb~qBpE&>GkE#y#7WH_GT4^IyedID%v56$-&Oz@X z2^#o1$^^E4L5;T+^c*NJBRZ`qD@kIx572&+^42cn&iySvx1$sSZh8~wKVvTmhy}+p z@;AtD9W-3(pf@53$Nih8+-d{o0U}>#wM$K7zRLU)pbX;hZu|>#24hlgVbNL|uU&76 zrhSRZqy|%#5tcw5-8J27JRBG<-f}lTq`?2U&E^+A1h~wmsRp-?9kU2G<~lb|Ns3V$ zW0=`e5T`jemO6;Vhm5k{o)CwQR^aYYDAN7n0qF{5WZgQ;_$Qr7Pwh*_ToD8{0b|)c zV(UER*s=5d+o;w-1#bb~TGx0s-s^Olr}wvU*;KESYf~MuS;(RM*3IVI5mR?aQ6~WR zDqN}Ze7IUGn*08QfG_Qh@cBjlB9w(yB}wn~egNh>Tj5?_pzs>jRMIisbpsm) zhjfYW$Y`xIRzFU4B1Z88)^J@Il+Fk$*A!dxEoaY!lt@>9Du|bbfz}-?>}j z#+me@ohF++>2?LVcG=Htazk#Bt}L{Gw^783`SdrKR~V{Sf>s=v`L^z#`-rT90 zw{)wWnQQ^8Km7kd)FVf@Rs-Ljq0!L)u3r3m-Q53NFXSDKO&m=eh3#yeP2B%0EnU@0 z9$65DcLNRjl1KqBpdf%C=J!z{=fw1(zC`FGgNQ=lvjLn?I z0wBv&0+gGJ3M9lCk%y{6Ovj`h=M0MzLLMjKH%v-~F1k*GmF|6I4{gXM=vHPiy>r=2 zq2~2=9XG~kZFW}oEF40=s!*jUGNZDOThljPVJBfVp-MvZpR|V#v+Q8 zi{V<%AiR-kuN&KPX|YfwiFat2T>n+0a4f|@)C$IG^LgRPsW{Hnxw*xh`iw@cJ#RN( zk$F&~uK!oQVr;AQ^eIA|^zqwsP~z=;>f>+s+?`HMZd(m8r_zYqR`?lRTA7U5g*Q_x&z>P*3t{pmj(s06aEn%WGYQ@gd=C?JY{j}b!X=TOO!jV9K!N` z9t+($L&pgR7?um6{(9-2^@oUz;D)*|?Rr{~`Z6P^1Fjq+%@K@Y*2&M@nbYGxhb5Jn z+&t2R2VL#pcK}I~!LbPq4PpHDeYiLG6vmDU@w3W1>m97R#t;g`Y6Ywhih9HN4Nf?_ z^XGhc-J^g+iTvD8G_AZn=mCkcwfUaxPXQrksWN~3+|Cmjqf#FbAJ19odaI_5QnR3( z>|u8E;S(UC;Z>l4;b$NseG0r`7p>0jDj*^F0!(3*YxsJE!q|e4+*s^3D0lAOnsrK1 zLc3DSP=|>FXjKK>kuuOB@9d9zoW9EluEd|v3%|TYpBo_*9I?9d_L5h81d6-lnI!57 z6EviepcB%}5@3}t=n_y9I6bMh9EifBe8q(!1uGxI}nW47#K(rAmT;pirhS;D1)>x;dph%l9hf`KFZq zcOvQEyTSfHtMtFF{%102NW(%IMI6I7!|GRB&{TyYgCapCT^TGi))*0@0+FdG2xuXv z^D1sizkz9XU|9P#U^BFx{^55A8sb+?(% zhnWlfAL|av!>;$L`S7u$9O0h~5AYHk%F$?9$v0`RP=QS2j3fpcA(I;;FS}u|V8?CK z$Vk%@kooe%U_6-M08u(!=t59*0L4@n8GvF!!U#zTX&93VcdL1da?2oW#D=_B?m1eGmvw|D2UM9)A*Oomyi8#gh>@}--6pc+Mtd5ALDcnE?ds>o{_s3}y85)P5T_jDe zDJ&DsP0Ct!dUsh`4m^BscU+yE`JP81q|j<##Gj#gY_15+fp>}-DV_}q9FXE0z|6AH zCYIf@WTl7ky6avU2@dXLA}R>$zs?RLf}}K#;=~?8ZQbpm=Qt4D06m~A_}Z$ zoS&3d$lq}b3xnfXmv{UFF!i;j9xP3x#O%?eZSi&{lP1VGA>49Ja?cm2ei}n6U27tg zIgeop;WNQZ=7NV(ac(=&z$=(?R;PBeI4?H7l2w$isiW38^LW=CSbM2lBAdWNVjS{X zj6#%-S){(k&){unpT|9|aD}B7z>$JyX`!kR3l8?Q=L?krjBPSDJk z*TIU~h7_Qz45sc6k-Im_#FiWN7n8i4J0ux8LB1a)$0V#eUkFuah~?NPI^SrG=P#g+ z2U|qQw@da19 z4(VWR#>2a>g-k5wV?{TV^uMB2vIe3D-w?iR;<`HnO`KfoG?WceW%Su{mCMafn>eTH zoNm2OU_kXyjUDsjuL{IWm)Hiy+DcKB*E9%8@b!b~R}Iu^DKd_fFw+o~oq%03-Eyl__}2<0nH) zv7BsLGShd0y(kLP(+VDmf}s1$g!D{Bv&ec5O;1K-oM1~#qpK+_I*)Z4br9%7rD z&U;i(+C=IdflSr^=W~kN_Phm+g%NSdDqm;8@Q42}iT@Ei?{QKqIadK&Z%X>29 zfKEs>&hYmJ+y#7Z`qJ)Z8ZUL9f`<+mG;!*33cr8AF9Gi85mG>TpWQ z6Kw`8IU!Xj0h$mq*!#~5MTgE_dJpW!kBRS5@qd4zu>RkTiT~j&E@ol--SGX#Y?%F> zw}LE=;u}I@-C#>fkf$OY7(gbVQSP&#pe0JNc%y_=-lf59O=jTG*tuoRF_gO~zn&w^ znX~Zem-AVYv%MxONq}g>U&rip+-^6s=>^FB-TMjBH$qXVz!={rDpN6PC>0#D;p6;J z9x-#%&a3)4KCHY_7xpI(pQ zz9rp6p<c?9Yu9IL@o)p6Xc01n;^+!H}@J1m+xrdj?U5`RwBF<ps85Gm!xqm|0{KX$;@M%PeQ7vHhhjB>ZoYmuKdlDMVhz5g+Qg<~17bz<1eSy3%LIU&=3+zFDfCn7Ra|Yo{pTm2`wFA3K<%6>kV>qc+ z&$j?0geL{H%3Nb8BgC%0Chxlii-2tvie7xwxU{G^4AUBSeOI|LrDU%<*p10z0qAdS zkz=9oEZ6y8V>I0_ikOmT=U~lT7_;#7lLda_SElU!#eNOjlcUad^4g>h!#^Kj8!SiX z)>gK8O!=xF6q8*J=-E`N54NfJ#?xVfDUVdJP`J&m<@D&45Eqda?0hf!Jlbus8&d9t zwp?hL!)P~*N1EI8UAro5IhHDnR)mUK6^le`OU zy+8M5YBwr?r`08UJrq8aH>?y+ z^cn{kryq7(h~jGu7@wJNCpjNE<$I+dPGZoT-}?v@Zxq7VGOHA|XshD9+^-;4Mjife z?R~qSzAU3QH09&3RwVq=65*%U(u2OC9hjK()?$>Y1B`TCJb)ny81xT8mOPAka*-HN zc7XzU?qRRqf^*eA&xJl!XjWtlT!>Ot(o<%PXaAEd+qBOx2Dg*nW%8du|5PaWHfl!x z?@i!xQ2(w%{aFW24>rD6SJ^%D?&_2@+_Ana`)-gc|sxPKy#i7{cot=1YrnMIm_EJR$~UjUvpBZ7=rhGx`<)DIItHALG*1k*xo+p7ff*6w!;g73i|r1Yi_yFP#reE-Q0y*ncK4$7~3!wklc zV2C~qdINL&ZRq?i#p7GO%P#ni)~kHu6~J#26LW@^-#*hMb}-Ul0f><=V(}Vm8a{w> z^4^p&+YcC(h#h_-ao{!(9FU2{DAbg0gkzRn%^2~a;Wk+9KwVjwEF8fde@@KazVhZn zJG^E{GlMYjx)>0t!X{F2%aqJkSQ!}vS-UmZ;>v?7Z6lvIBWqfWGsWEBxU6a!iGt0q zzW0_SPGpcjSw3~|wT(?5^HEc3b^j0+8?KYB|I9!xkTj3>D4#-g5|~--e2^JnA_Gko zkorHoy;X3W-IAtji7*a}9fqAp$(zWN--; ztYdP#tT#lsUc_w1M6)=I4mxVDxOM|?-x>PXBDtUg2GinYbi8zeGqU(?aLb?b>|w9v zGp)k%ktj3ivLrVwOu-&WAVt1vcUfU~deJWmdefz`Nl0Kx@bpm>>i1VfTdmH&X0e+{ z5_cj@9~@m?_6zbvegX0c{0d;XAZMMl_Z1s2x!7xx4fqfrPp|3xHFtLe$O#mjKHSKJ z*7W9nvdulq#=r994{DZbzjTprv0@0MC9ud5;7jd|3ASTKJV_2wUMwGm&x+r~{?xPc z9A$Fzvtyn}6>Y#b(@+=-a#@;J1#g*zKeW!dcX>3q0rnSN~@)SsVaN=*%9FKOYZ7{Op z)kKTq3~BvMYb-2CUffu|pny-KC(f(I&O3C_p>|fp@cYbM{2F1NAfP==S&&-J8{5<& zZDkl1ran$aQWE zPL`#H`^o34?p+hFKqo@uk&*#17<}bZ9-fMsc{MK{Jw>jIuPU+>$Dr}F81r+9=jd~4 zI3-|4^5CcDYlwICBAO|jPR!2Aal_g~*iG^l*~%7*Q&LPcNdw&^1eCLgP!nQ=PlO;+)5= z7DJonEen)nZkn$sgB4k(Lb%x=WCJQHwWz)3IgJ43U7b`5UH%>YRunyN;z~A0YC7#e zFyMZOciw6~#iB>JG;IDVJYHeyVf@a-+)tKJx{jq3dsT&bL<%(NwjZNCBDAtx(ff-~Bc)ehA;6k1`~ZuhGPz@=KLl{+uyeEuyZx>Y~c zP@9&PvQbTAo0H^WA+u+_4eb)#LZS2o)0=xArMiLN|JX4OOmb|wye&x7r@C;`uhjI& z4gWw}C)7_$Q-93;9|n@mj}afrV3 zNmk2s#RH8~#~f3G3aM{DU-ih_0XsP*pPi`=cm8cUW5|_x;ji?gTe@5%fy^2j&2Ndc zPu8cVGSh54NtX?F29e6|87@XaQ%Q%O%aa6`M{=x|KNH#|LaB%?P0h1=i@KuRtZMdM$A=+}R) zRoMst4G;GQ`a!<<3qp9f61I4y^;3FfP6cLU2tsXxz8?;-zXQT){5T46=*z@ubNUU& z@vJXKh=_DWXl{EzxlYFT#(fsw?d|-))PbZ+?@Sf1nL0WY%Dx!vPbM!y=V(cg$d-28 z(}7M1eKdT%6ErEt;O`R*B@RO0a&hx_U7i~?0zO%S7wNb;E=Z&?;@8c>N{>l*DVhwZC36r_@rC3O&#gT$ok z-T2vZ+|t&qt10{VrLAE2FHo&Em8-A$D+xJ>@vU;iimKYXU-2+dr%WPd_EiW=YA^6o z-foyQ8W&p&<6lKpwLC99E1e^p@i8M}qkJcNc$VA2=*Tiq_xzz!2`Zj)#YHpcUXhj@ zJBm+1Z?eVrxho&@xBL-OZ__2Y!^WXUs{)Dx-f96_K&x+VXsFK1FOGs|sSx@>SU*gasHj^$Tsxe(S0Aa{=CxOyw(3`$QJxU^NrrogK4)-Pdhyy(a!dZONfA5U zBKA_rmLoVFdU$JSaHr^J?gSD%$#L!koYn1R7qH6%thH&1wpeO-j*7|O{=B%4_U=t@ zE2{*inmps7K4?7MKOx?~X5MIG4VZ8#xJk_pVU@y5%_C?nM8U!LmJIxqvA}kc~Oy7!+A04fAVX5cFrql`@@J!$qC#pgYcp$PiBXZ)(R;g7L2K2$aU|Mv_4hSpT zw?_0C){($0iB&)NW33~ov&$R5k*z@>s@K$)&Iovvm5BQ&uNJkK#Xijt+J?ghF7iMu~EtLXBfxDm2@t^SouASd8f3M?zkaQnR{pxv+Tz?g8abxU`b!he79&GvB zuFM7N2u}dv%NH@Kf0d~U|DW8Y{qL2Te@+0+j$wxB7eW&MW68!0Q_@mb>yB(YsDef( zHiJ6IH3&ameIe2JL)+sEB6;kJ4)?&j(awk9^zz47!$|vRE{U-3SDQnaopYhkLGa6z zz>S980(ZZWzI56*r(^>c5q~S#{lMl!%&2&jqp8%2b}hZA9JfjRI{GFvw}pJiz3%eu z@HHQdad)wtNoyEd0aBD9AFNLEn{!S=Z5FiU+?)yfL{P zU8G<8Y;&{D6AJeDK{CZrN;mF0f$U2+8j=Lqf~dmXc7E?SFkHc7yh!sd*-e|{i0nq0 zo2ps_1Tf+i;z^BTR7%5a-UIeSpJJ*b;6qmubob!&z=>bZ^Xi8d+uIJmm$vNa zlr$L8-}u5ayyPuPHc1#?oXjrxX!^AG!<5 zXw7UNLdrEgfC@&O`QcizBDx8??BDg^Pq&;JerDcK@*ssDS22tI}d za-pEahfN1@ z-56S_u1KQDH%t;xO1gzuQQ;eXdNS&{eppXbXMSbxU&YNt&WQ6%9-~Vgyu>6~*@PCDev*s^&pqOV#h`&apSx1Yb z?9JC_Gl(`fn7OAGIS9O-p!SHOprZWUu91ET6QW}LrO-Ex+vV2;u=_eI{WLDupa(Q< z1b|}ak<_b&LXV|Ll-Wxr>LV<*%gACIdkCE1pLdkA!UZ>gwmM$2uI|N*RfZ`#gw@1x zKx2gY6pK_l4ZKM#KSPMxuF^Y)R(F1XcT?Khv)XI6LD&yFz;caQ=F6Y*yNHee0R0WHL$%^RQ|v-TSV*m~G; zM*jo|drvo6nE=E}B@aBt(}e0C|1dv!Xw^HKt5H6;TbN+dsg!A;t3*RV1gf78H&tdZf6* z>iQgv%wln3g(Q01v*Z_=f7FjPr@?O#I)XVb)5RrkMEn;#NdJVV?BC#V{DepSFL+jg z4my9q1NfitunjaE0bi+<(}0T$d5ei?Y~g*iUhIgXAgpk-ngPkZbOXN)ya0^1a8sd- z_alD}kcns%87f1Ffe}1(lSC4KqFGdy~ z&TY@sb2CeOBF?_PsLg#ao%+z%GMo~HlI$2oBjq(qIMI?g;{vJFeP4|>ip#w7@7~ao zp{pQ0q+IAkAdQ+6_yZPXSkMBC?d49}IzBM}x=40C40a#-#7FP{AADH~^8LwWbt;P5S1N0|8us%0KJwy@E5fs0__$S>?xQB>PGk=>En8@PxKH}X5 zPE9jMbu>QJa13^VoHG3l8+z5hqW=jH`#%68U6~lbi?0Yi7gdKdvG^OH-G2vY zEzw+Di*}=-l`egb5$}@tt8b}Vq|uHCHx(PrXd){${lY(^kNDrwhvXjs(If{M`FB=_ ztB*X4S694O@8MFrgLG?D{6~Q3Z1+9?9iRwSExgkI0zi_-e*q-@zXFu?<9`R}^xvY7 z+W!OyZov4S*Efx7LiYe&{&+BAi3(!i?64CKdV-}A0HFcm0!R3J?%XQ?=*ZxcvHgd# z=8LkYk3BtH8|;FS6$bOG%|Z`GXQ67+moB!(`q9YwtSN<9ImBUz^_8zH0^B;Y!X{b$ z-{Pd^(#WA;#3-wSg{)ljGxr)7gSJj=2w$mZ)$3Jv_3_z-l$ikoZZg%0pL41y5`TxL z#Eeppd4F4)rcCgINt{{+IZr?^rUD@thWcu4gJyyp|A|}q**xMthWI8z@^*fioaN>a ze})M%4^%_)g>;cdLOv3mn~Bc!=4H?4X$=y}2a5&j=O;n>|B@h?|4XO0zxmnJf%Z`Q z^x{=y8O5bQWWgrEaTJE;N|%O`9mD|vAr7$ob^^v0I6gihinnJ{XaM)$mU^mf$!cE$gc^@r|hl0}EJ zEI!C_+&5e~j?Bw7twPUU*aaTVaMQb=Z0l9k?D(@Qs20N)DA3s>$ae9z5wqe3PdoH>_?ce(X2A&H+{rhvl zdkp}!yVojjVJG*B)W6B=4N{u@$IoeDew#>^iZ~i#$BT%&UnrNY1VD)T*Hfz*k6?tz z;B)Chq4BO>vP~)=Kx(A1nZcC11M+5EA=iSq60ZAA4Q8T}Z)Z~&BA&Uz8_0{G z!aW!ke3UKMGwwEz5gtrx+lf$b`+ZWa0*ljlr7wY9M)W!1EKVl+dlU_vMIqkjgC&<26N zxwi887ty+_d8~bZW&8(rSvNDLMNAF#-f^bL z$>A)Of__lK{mjUp3dN*KReCJFir6Bgl^_ZiEI3jb#-%nbB9zJ7_HZ@wcM-a7=`c#x z?R&ZmN{ajhS1`D?45yjR>VdWuS?U-7A8rtH`JI>3^20njftFWc*f8zKV-u>7yyq7; z=buvMaS(6VV$SkNQW`{Vc)m1?2fIBS<(4Xn7)V*cizBq>YP7<(2#`SXhh`yNE&}Xw zR-@kRFe~SsKUtdE+}`~ll4T5H;J@hCncMtm*`h2u9!1LNzlk=9PiEZ2%sTzd} zR^00}aho0CUqQ>i(Jj3Mat&w~f9NbY#*{iP;h~wQU^XUGykB_q)G#f}TMpr+`VZ$X z_CXsla48bfuH<}QTE?HLh|376z=Z;$7noSXD8PMq1hQF7r5lB&))+hiEoYxS)BrMA z6Q#x&-)6sZF~^KN{9(R3KnbkLv&6sFIl_a^_hR0i@_Dh0yx?379}Vr2%HM}>At(eL zCsWXiiXj!BMUN^n+*ip|OOdKmi-e$_BC1SFf(sPAe|yxb^cp2ed8qeB*ace#f+t0wrQ(Pq}J435Axics^TA zz54sQG&_yw&+{T3zbcnGk>oS0c$p}x2oYIz>pWI8osvBr9@XOIS#22hipH!AH63AE zb)L*4<`(r&rvO$h(!xx1ogXT&ld9#(OSd`peiQtH8UsRe0viimLGXDqUdgNo_uOGq z>ScPx@QupF@(cMho;2Bt=W2J#r81cjr1@61_a!Lx*cUd9X#`m5yyv}w=A}>*RjtrrrDFP!N`^8fz%@CnBn9W(Q>OWc7*XHl-)}=Q;j#Gphhob%?!aP zpKO{BsJGj!HQZy?5Ln2kaqq$byVZHzN(JVko&RLn5K{jrV(pTtjFo8OXIALek^2Q2 z{Bl)Qc)M)sfD5Ib&Z#~b|NR?>hV_xZad%e*Amg0mlnaO;jEM{=O!eYm3{&)pJ4te( z-N_@mbQH?Z4)%KTP(&Q+;@Mw)v$m_VcD_9H#aqhHV{pVcV3|0fP)?<9u*N$cW^Ps{ z#~C-@7vLzy;0lGT$-=O0qH#_w1qaEFM>vlyBRxJ&N$R`5!#OV#oErfn$FgB2P2w!T z8yp}0CB2qVXdF*ze10;T!p{B+ByUubqmUxZZ|lVk^I;~b><=C>=t4au zV{C}!5G{#&Mwq0ew&@_<9x3o5q-E)sgoU|7zUMcpEO%(PE4;O84z%IpZkuYYayU%B z)Ao7@YXi`>3eGKKLXT7yOG0tF$P2uOpyq#9JfGzyHK&8RnFY9vMAt59EjBn;W|%NW zkfyi7P7Y=jtU#PfE01AoA-Wu9;mzIq3r+9C@s6*M5bk-x(z;N5z`GuWMQ%}-n>aD7!Pg}P+PSMn?%nYU;`$ev*gRLl9%QdpI`-FJEWV7*x)1OZvO4$-L#$wL z$W(7|ztbOt8PpSDc;V=lfBF)uLWi~V4JXm9?(;h#&GWfE4eXZJZ^p4qGc8nCBoNCH z4o1Hz`w^<5<7Qdp2ahY>w0bLrD%K-B?Wy^UeLpbrE0D}Jf-jHYkBrIC>c8j$Gde<+ zCPuBOk~7mO&Gqjzt3WX9bVDQH17a|lq61Bg5oN`$_h!!-&}UrS45^7@(&fRwW!U>`FUBJg z+&e`)xmUeBUejeg6P{E#qkVe1y=WIWd?r)H0Y-!Cm*IRb}>DA3kyk0ky!$XqU!ZkLuZfQ7ir z#W!K@1taf)bAA(@uNg$mQ@q^P`jr!BWtx3L-*jQ{VrZfe++k>aRi#yC88(1Ku@njF#4UXvM=Z*kddf5b{O?HE_&ad=HMZJJk5qt*Tk>>TQd zS+oy^0$##W6m}DEPmj+FVeHl(;m$ZyzS>rG{zD^Hduj@!**98# zqW*hd)|TZDUXZ6R);OLeb?HB3ASR>;g{n%cD}whs5U_gtZ3_kZ4-4t8nX`gNu=`Nu zp0p%<80B^WmT5838EN%D%b<;!D>6SQ=j-uGvGS90Qq0E}shG_-@G)NPY4x)RB+l{0 zeCbDqzhIbA=1{WWUC0?Z;W&?$ksoKwJJ&7@7I2h`Vz9|>q4>dcZ4MA~1P`q`6HG}t zx|8~liQZIL#vp2Y=n=%Vj8S-WfdHXo=dvcKf!|IMoIivhoHb$EXb zaF{E8u6U;ENRM6{xp4yRj_jz~sC4GwbZHpl=C>`Yb~f+9ELPyP_@$_O$D1~6&NW~& z^((7>GQ!v*qQsV0wsY2bW^<{sxj~Er-{lXSfQ{3(y_uJKYv!7=J+yiF4{GRwd3)K8 z4*KJ81x=l`O_O5BS!tD^?9^c2lm%W7y`-M;u-TbIo&)~M@Z$%7tLI(uiXVHa}`CnBOK1Hzq6`kwfrGx*y=<;_W zx~KzbhRXRLT2xUoJU_DieC!d#`xx;l{ zWlcnOp5HP*GkK6BL}Z+*kbX00P97-xlqdA|yQ6_lwtkP8D#qk=+5g&q-}~DCk9W`e zO4P^GSIaz`vDskYm{w@!(1{*P?CvJZR?t&q>eDFSlOHx=FXYg8*x-1WS>=GF=|*7O zYuXSc?G3fh8e~7dv1=)!IM8=ZUTA+7G@S6`+A12L>I3Lv!K>{-- zVpOW6sSkAA>rUUkK++zq@u8*}Uqp@cb2}nRH~H>5dRZUP)CY4LHPWvKL~&OcTd;TD z_$rLW^c`IM`tHncZ(+lsgud+@EnD(L=-VMiToo za~<0233u~PzTw379}y&bSCwG3Pq|@)o<>fZtV>JL!c>-5WhH;lBxO!No6ZmC@}#CO~Su~Zrv1tn{KmkG+QvjGq^`? z6@^H#-(E~Eq7$8JnUAmuha1);rdURA2i=f{#9^H6rOA@7(~e9^N0<{PioLcsQ7vmQ z5-pSIsy{Es#mmHj(c}$9ejbewT3DYP(L!Db**M7XC=_hrQzfAlbD@md{(Pa3qP5vB zZHd>mdZ{A@t1Dq#YK{{>!0|<;A6wQVN3d2V#eKo}X@yK0GARtCZNnJ`JH~S^j)P3xW^EC1r7Y^C zNxE>M@_Cwfc~p|mCRwt!pVgczWhy)17R)EO0Pw z<_0-jUZ$ql#z46qwsJc^a*MD-6V_l>;9NH8!oeH<$pE#b&;sfE61S7FOia)E?3PxWen6d=G| zZtj%RPD3uRkf1}nWFxs)dsrg2mTKn@y1RS3CYUk7aWqzIUdu+<5rt z5nd=AIa{0`BYaaZPyGu6@u1{T%NI(QW{fCkMaW@g;D_K~2M&TwiFSi2Gj0c+60fsS zxqU+=HJ;P@;NCaO=L2`rbSRrFF%QJaiK;b{{FuO)l_Eo0d$n3@U9!%y9YMe^WNJ0B zA(-Uvl6?vQD&=w!l&4`eijr~94AYA5Qp%Pf@}|>O>~K+_x-qLY>E}a_#y+89>@bssFEI3Z zUoh=On=3_{(9~+b((6~41U%~Nl+BR9NH=QblQ*j6n=Rzcq&EVDA+yP6VM3-#lIil4 z9Ub=iXc*a}Znbi8{%BV{>aX=$2fTHN7s~#IX_}FU;Gk|y*AvsV z3=-2Nw^lEUDWPqQX{K!qiVuW_*axhYEAd{cSaMz>`*Fu9^KZ*~Lr-5Z$*Eez{wC%` z^`nnxLZSUon0magw22ay~x|t zT2e1^HG*#~VrH)+(nH5ixuv7F8<6AGV;+L(B!oZ_atVo04iKNb0x8wcFc2R-Ijl?Pf8>4`IsTeG|xkI#vvbbp4_PsdjgtT zCTP_PWg*=u>lmPZD=CMaT4k$wsv< zCn^PG=xVpbQG?pG$_BaX2HTmw{R(c{8nVCo;25DYDl@XTr)Oj&U~UqAud|8Wj3P@n(5P^NZ)Dyq*Tsh>MJ;BLMo*tOJev(Y-tA zyU&Zx8L@rGS@H0VT6sxlqU<^bKe5W=LNAkK8KZYfLv#EJ5;OZ(B1jc=qBjml2*~Bv zoHU%p0T2QDrTpPa49?};#Fj#Wi?&dsnY5M+fkWr3$u?$|*vg1nax?cPtK)@Uslsne zPYWlkQftN1>?8@z^s%*uV#@&}tezL+;!{da>_(>`x95_`MK7oZMhqc*%B7J#Mp*_E zT<~}~bm&0NY0R>2AM%a;qmQV-jZC0^=k~Ox1=*eUyhZy*1y_!vJpj?f3=(S;}2Ax?}^+wJQmcq_sJ*qVp z_6qpnC6-wF47IYASA!=^aQL<%QijEi4&u^r{IabKQ0=4R=qjV%N>T+yB4Oo{eY%c8 zBB>Ek!{TbCJCl1NSD#%rfi^cZ;HkUL;F7b2Gl#Arft-6h3THuqk1Iy|-!ZJ47`w4; znp}jIBTsfHBdYgqY}lhkM_WHI;kDuLIPFwS@R27gov3gd_8nS7tah2l!eW2E+t@VZ zMmm75yLB+rF3a0@%h3<>{)og+@&xO~H4Nu8 z4R`Y6mgk$G=G^#rP6xE-$NUx z$qKu_JXT+c^6eC1+P-Gl-eq|LKTo&8{*!WFlNI!q!gke-1|)Rp>GivEX~T?QgnLeI zQ>Cw=KeW(br18oJJIB;WU3fGBnF)&!KfyeC?4y-XzXH_ea&r&p%bg7zkZiw^n2{hyIYY{Wxab0Fek7m0R*A zuxZ7*-UPl_k;M3t)N*v)RSb)KpZjfz9GCH zu8C1TFK$xW#rVyt4^qhmF1hbbc|OcD7&UD>3S30UX-%RdBVBJ`NzVpWC99ajd*vB3 zh=SQMD_8Hg!4WlLPs`Hc6EV@s636m-!O>zvSu%M;T%WEU3(=j1oU33hFz{XO=u#U< zoAheuaPTVJp_v2nr|2x{oaXlkw`7F+_R3uLCsX zb$a<_*T&Y?WfzwX5@l{x--~;FMqflxz&0f6G>mso;K6X2++TH}b$M z?Du~B4~(8S#=i=iQBLM7EAU^wcryO0B$DC3mP9%_o0(dD4i`0Z`9E_17WzN_cWD=C zd;3pg6?BdAWf}VgV%qBjqoDby`{!AjI;GopgtCr2ry2;f0>&FM=w^EOkppZ7aqdLRb z$dDmC77xqa_z-ef1kn3Rn$I&?RzL{HlI}Q4!-Xc zS3%St`k`=(p@fZ}77^hm7c%spMIjDlE_&?t-}z9nS@uLabB8*?3jCF{W>s#Wn$6aA`qgdowbEm5v_ZM&Q0|aF9Y(En}{`@ zEx9RnW6gU!Fh2=8?l|vb5Yh&Ak-!XN^H1kn9y(ieG zgq}8fL$}5v*H2U?)XUYCPzg7;KEp@ENm0g)O8c=WoTc5UO{f>>7-oP?DD8Wz2}Xe& z8DFW?bWhuLg4iS3+&UNpMaOGKzM!lUM~~1r#4d%GZxEVdw)9ap(b^1c?dSse$`wQKk zC)}l!BytdeDA+v?!SD?fEDnarLD7A}T`4=?(v8>vizuL7H-$XQEwO_^l){1+{9~o1 zNV1-cfA^%HMoRX?^AzV-grmY^0_ok{PLAVa70&~WsICNxa||&XFR&L$zvVtKpH}kO zuE&Ea%h%5`p_J1CcY|*yR_!>F^`a|LjQDLCtvTd8;$2{rCXPwZ1MZ`t&BU+YEm0S| z%ZKwRh1lAWmhnE={KP8KQ0jf^s!`2sWg9C?x?0(1BxfY%iP5th1!FT2Jj%OU^p_zj zc!)9`#F>LWJ^}0i?0bB)k%qog19!p2Ex*;7WVe~eT=PTrnThFdHCg89%hhg^aQX5R z@(g{tDnmHYj_$+J07B$Df@V9BG5us(>m;Pn zY@>w#;beLf-CVs(kEQY3w*@=r&#?xJDAGOOsQsNGCEYfcsITwnPsHj`!m*$s)K?xn9)JDH?oZ zxT68ATaUO$shm*0q`UAEWKCNXbifT>jCPSEt@X^0<{Rjx0kWq{#0h0%79{_YO0+WW z;acKC@SJKI#incvt7|*$cQKeJJ-%MN7n6gYu+lVN<_Flnf>nU?Df|8>RfrJ(imLx& z8|Z%sR?;p?4z6bQu2x32{{ZXLugmDu2JoLQe`?a7p#|-CMz9KLg8G=bNQ;wmRlhY58fTA;nq3JWK}tnL9(zUy|D0Ibgy_3i?}jkGkE-?d`1My01K9jP*G?n0>h4xtRBN;@MeRFa zu@GpIYZs8fU1E}8wf~{;)Z!&x^Azx~GEU#qZ5F-i@*cH`shw!1qa~2|y2{C@#Kavc zzPy^KIpn(=!rbkSTurJ>MSG=R)T#73w#nBPUhL1#)OcYh2*X!L0bklZZf~<@%4*s| z!t*0iubdn{UULkw%}Ok4bU134T|3r8DFJ}JKIu@cnwV5lE2Zlp^~>FsmFql`X2cY% z4K(#IZUMDS&db;2_+?3=yLYCt_%7VZ*vM-*AP56C4v$ZwG>B4y&Umy>l{95m+Tmj3 z0l^;2(C`DGFWHpJ$3Fbwal-=KaDGH&h$W)nE!Z;EX_`h795KT@nP>qrKlhs5#TpVb! zbxFGHg-45Ra!K3`S_*K>_sKkPe^boWHyF?oAtL$t5mk;lCX3BX^hAJV1m<+ zCc%V{dRonCgT$@xYk0>cIL$ddVwA8p zHeP^-)8{&Umo+A5RH9tqVdND7LJFufLF6eK_;Xua0rg3_e=-Jf|Eq*Xea}B+3apwe z(5Ih>g?&1s{O5s7>c0`V{yk)ATDe;O_2b`8Zl5Na|1e77fVPFAz5Xg3)!dYv+OJXB zycjM4Rt(PwK4`rS;DCjr=s3L^CU{kRKzxWY2zC(~=jQ*|AY7cca8E^oat3=PcDbI| zc;kE8YGYmX|NU{#_{E@Cb{ABReTT0^l`AS8tx22PhjRHyC2b^dfk4Kt4ms|oD{^Gc zP+}+%Z7O(5u8E=eRVspK=R$_7w$f{)*q z()llr(*8Wa1Bx5auJ<2np>!XfrF4o^=LS>LLyRZ z7u#(^u@oiw>OTX|8gl`lYe;*&{X*KFBq;^cL! z_d8VtvY(8y6m$5vq=6gUEvHsq0=I|5M|=P&l>Na(Xn)*WUQ`01<=_TdK)tR)*ie3e zNMQa34jf$^o&&G>JRtB!BKJLD!SO4mXPd$Yj`cGVA$6136E(?l!l$7M`;f805w zaGEgElX%-Ae4gh*a{Oz1a2R_D>fQtnLJudaJmPd&^{wFPNO{^ISXE zPSeV2PxI?L#qwD26pLtc*1{jU?c8~qf+gtfmW4oI^{LByO9V4Eoj)h=8K}1&jx8_P zgT)Vd?*ZNCJ4OvkP^Mkc6rCMGA06^!wmj4YNY#BtVGQa+8L@9Koi-{Q=_K*2oXNKH zcIj1M^q0tRQ1oj^s>@7%7jM6@Q-R!QlSYt5Nd5`D&Cf`fI3_=ihbM zzjNAR72$t~w?gSVnl$=oMATu_5xzkW2zMEVXG$bc*qG#<2CUcerVx+Yva-td``_(F z3OlQ8e}D0B6TIPWeRpk*0}mk zyt0MOyx=8Hft`X`tY-EcIOY<5B(f_)#A5KN_zlo%?@ zPXV1nor$422e^-jPnQWvOnJIg(gBjGXr`Sb&Shh+24EIa47|EK6IX*xhY+}s3Ldh! z`9Q33n^|U|6-yt+-$5+>CTco9g}dBW;dP^y9HU{uwbA3+Rm&fB>|mjzum->+Qs?_l z?Z^4nBkKevbBLtgCDK?}{%T4oNrkl`PtI()Z7BguD1U++cp3@fGSX_4DK+Kr=xUjs z`S8`q;R8lfi10b=5nQnj{^8dS9q^yM!Q?{^zX{C0e*$H#oG{R3FAGxrlc(W8To8rR zCHjZ{8%0dGadrhK6cy-M2R+7y;jU~*t7x4t?F{h&#G#N&nO)ghu?OQIqL4JKT!YLKr01! zO%tE;Kg~}Y%l|yK3jH@X(0|-H*(&mixXeht6h@pyRsl(Ip$<9-LgW))xxR?RDA9_q zNuY~yJF<4zGwF23Uy7gk@AX4Ri24ipqZxNbR7j!o*M{BVUVA$XoBZ+gdWSbe#3jb~ zfi;qVI8Lk~Qpo}~B0~%8S6bURV@XnM5Mz;(kQsOPbD@@(1e7$Y#?@;T=@}(Whh>@p zi|GcOlF|u!rbfe!4Y;jZ7x?RUBI=#oX(t)CI9ZhI9Ov#*E~U=9Wr6>LwRa4%ZC$oS zXW6!A*|u%lwr$O_Im@ae4?2nnlyR=coGehdL*mR=(OoGie4QQzqc#2!WSaEvvr*7(Rm-`Wqyw=*6W- z2Kuf23SkYTTYUJ9>2ZNL?-+174M(>5;S3Hr_#VoEUQ&8w)SK4FRO$RjwfLfw=njmD z3YAXPsfR9rdBVq>>mM(x)@UhNo^zpoy7)<+GbewL1QFCDOg-?30LLS>cCpPO?OVn%j@Eq)kfH=dJgjP(eFMghbs_mj)zS>W z3|YP$tAr*E{gz3tnOi;hpnW2f29dZZaKO0+Kv8uYeg46ldtsv*@mJ8%{96zD5818% zTh07e4zF)u_20cm>7VrtDDJB44Mnlgonsah}QPR&PdNYIIF51J=te6KA^%r5NelyGY4r_ zpGDXA*Vt-J7jxKvh*JL<&{zwrFPfr*I~bG1h1YPj%1*wU5!o zwu!W-Z|R3tXc`k-(t!W&wpoza*jkcQzI#BS60E*DX^Oq?!LWZ0>c8pGTSd9d;m;ji z3L3YLN=JdrO$;(r6W!ohI%A=Q5_E0N?{sKt-5-O;+SqI!D{#4Sa4VDItM!sT;XS-2 z6*QvhUm1jF*)DhJUj#g2LJ_8Ss;3$wiqbFmPzlBoR%L}{eelS+R6y8HfHkW}tFha> z^u(+xvG9bMzX7&op^UecrQpP%)qq*wp$!^#Z*;4_s|fd@Dih1m6vnd=xfL5Uq$*WQ zItpW=M2{h;-Xkyh=)VM4j?~Z4fBeE6n{jLegwFS+01#v&)-1|IS}t#EH(h0(tg&Do zcY4p)?9$?RPbzYHHRvNBYr?X|qPDHwHrusY+Z)M`fHJK-XlbG;bY9)!w0{q|Q-wKZ zrJk7)?)AbezL)I&J*(j>f5>dZVmlD@oV*o9bZVOGPlGA2AaX{si~Hv=a7NP6f@+t} z`vd*w_Rm~F%)(;Mdl0JM+`?px9^p5lw)^m_JVGN|`00WE5Re>U`gcShhAlw|J%T)$ zLh)pQ>w$|szkdQqljjGX#K$HAZpD!b8Pa$Lk9ax-%7QyF@tYzEF=oSm?nr|NO~G@T zi)Rq%_b}y&A&kLGClO7=HmD=gi=MM+N^V{O50LX2QRF zuN%7=8#+6g+uHnp0#5#Rw(nnm$#3#4Z6U00X!g%I&u^q}_kH7^IcAhXyG%bHd`1ww zpj$T}05CH0%mA`n4wD+0SX`eVz%1U>o|eH>+%@*jGTF-y9>`h<0WmUuU%6-lfS}Q%m9>kpQ(VeG1hKQ0vC(!w7 z`~m(eADl_=gLnH5&Gp~D^FPc7|7BzWV-s5k<9}=AahZKS_=@0fD^pRyga6#=(Qnm* zwOiE!|EHbp@iL+rdnbe#4N-lp;obn=*`KVj>|UwPw=rEEih!}danwX8>khx8uee!DYxxS2E&=D3 zXOpcItlgOAp%$-!Ju7W?;wPNNKs*P`@br~EsIs_1WS>PsVBu{pu9eY_KYN_4U#`R@U)tS}zx5=H%>N1&!Y=w&&ienjax*lx`|IMrD#ti!$?sDgyj^M?P`mi& z!%v`dmEvkpQy76aN1@|kze{@AiFh;g(7wWDWVIr zW&ij|lDRWPy*j?CI{2?Mmp(28P1Q7gr8QA?7n1g1P-Z&i2wX;X(+gxN_S8g zI?hwf+gXy|^LDVQ2PB;ELUUjKBLu~m3)_@!-bD4tF|FM*CMRS=Y4_v~#>!z8wXEXo znq|U(Mz<{h^Qcw42(@O!rcXhq^Bwdrd&aL9_h^6HQ|WK*$@!m!{QuLQ|4UwIQtj0h zOZ9v1x+9WW)>3^^V1q;jlk*m{&^%)jzp`?KsWh)8$tq*fa>M=ps&iX=8;AQX`<3*^ zMNfC98NY!4+AjzqEIVusAQJk+;^t;YihZzt2$@a!7;3iDLGlibK1H@%=-zrb3%;OuAdl5P-aar;EiZ|G@_yfSiCSbvK%_s^ivGmh>U zEzMl$X{cU6F#d)dnp7HNs`$BGfHA5kWOZd2+c*2^C-(9~P#0j^h^2DXf~2INF~?(0 z1xAuFN^gV-F-==8`80{h3jz(KV7mDP$sWYzBQ6nmJ86syr3J zSgRPtcOa7TPf7gjOMSbVHQq8+ur@J#3FxjeL?Gt$S|MM`MmWc!`%m@h=H%b;jKmrF z!HWeZtEq~G6|Sv&MfADE0U;TSv2J4~fv?F=>N*Iws}0}kO$4m0rILP(7ZnqF!IXPJ zO$jJUQ(y@~_QPz!m*cMB{r!akO$p;szFX|HE$5bu{suQCq!=oqB#B58a;hcY>}vZK zYtF*nT%`W`qQoZhY6eY+*&G!Gn`b4(c{nc4+p9V`tOb-wjq!DrJwf?0Yixj`GKCPj ziU>r(%n{=mPpv~08g1^n$39n0DM?JooawpLt|+S`&mB7^I)z7v2S5`!iQs&tQe=si z$rr{!Wh3Ow_QaN9S*KUCmkj9>4)%#9+lkDnZQk~q++v;djOk(J0hqMujf2BmDmHBWZMzlv zmgLS#^-N_oKK*po_`hKnoB^TCWla*L1QenD3Vcs~+M1$Tk82>}l5miifxhPG%XuE_ zE1lBY(SNFh_yO^t<3PZPz7Zx=C7BFBSSnvHSu^x9x5{ML>RFG zU~9XhL%hi33YJ-Z##?D*_H7DRK(X-!u(7ADaDH}R_V^2k&*%&$Gms`?+MsOeKoZDL z6+Y%YlElz7c_ap(pkp-kBR9>yY7CZyY3I7eczQ`>4H0Dp=*_{(xl0|REL^81dm*QD z%HpaCx*4GWcHw#yBM~`Jcvdg0Y=0Cjo^7pRO5AoSs&!g z7{tNy1RWESihK8B_T|Lz{4qThyXfj0siJViLy69=&isLz_OcIx*0+$t>pLU~lu;wM zlP^OzjSPueD&sDaPwbPH3tz+%y%W8oV&5DipQE6=(KX2-JQZq5@wv|`297}JVbf+r zaex~Om4ybd5q(9;yH#iE=>d&0?L{%VhlDk`hJ&nc-LTqX$ml&2w%j2>?H%Gp7Q(U zq@P+=&&eFENsqL@EkXlQcg03yD+;)lbq+R?{;@`)YrGLIkKxu8A=G{JS_R53xtSML=u?HZ6@V3S^$BxR{^ zdrsB)@=09?CmuN5Ag40()D|43JyYPpmrj)^5m@%z+Qz0pE;(pkuv=l;H1|Ly0?eDP zuCLsVC3iWVu#1sJpO|nQo=4)4v+-c}1qO(gDm0VJr=pASxHl3VW14;)+9XX0rPV{&C_t3PLYUzr!H7Ij_bY z!3?*TcCW_C5`gx)ES;ZPJ!g%n%IlB$#XNhj#(T6ach9CVR5lXgx1#1OYlVt6TD^SN zqXMBoEr5$b@e6OPAMS8BB#@MQpf>9z7_}F!^`;e%*p1~;l4!2hc;)y| zdnn31zOO%^cDB1z<>!SHyvt;6VqBqhZEc!Ovtv4h_HRKB{su+qc1R%!_x{2TG4XUuL? zu7ayJy@NX^jwM1#$M^&9byy&>lp z#!tU)Jsc-Ajc^~(LqiQYR4XHpN0JT<*MD*nL10ZFy=8z!-asQFv@-6hT3lWub z^n;;xz0=k_wu>2k|Dr}*e{kSl*6M!SIlENf-Fhe1=G9OU_-tm@vgrnnM9aG(m5J+D zsK7}63|;G~jf7fdmOP(?+ht*();Ld&zX=D4>2${@k7L`PF5x7HVHT(J!mE@$9;Ty> zZ0R!NPD4)a%aQzr23Vdf9EVvFs+6GlEy)aIcGHj0Q)>-4q@q*Qq-U=OV-o z3>ZOoWYIh|jbZFI`<0cIl&b~2a{J<1m-n1azgWfQkt3Z@2GU^pqmRFH+s$MK^3+FKRyva9vn6newRijLIIJ*vPGgIq33T78k>3^e0z zd3)qZMh(hd5!XgeN?tLh3@*y=zse%OH3IvCmzo3>O9Ah53S zs{^f+vDXKi%c%6DhrH4;P`z#4Xt`GFXZ2WdM0xQQ`SHS$2zOnWFW>0A*Q$h)lB{2q z6*LSyJ8bb%LOz$N`L@brf{Sm)=0l>QVb0+;kRUXO7JBA31=mk4gEy}ghkhCnB~0qh zP$$aoT_m%N<~RlvSsZhH!I~etJ!;Y7poH?SK`Ut$G*X$M6QO*7nbL_qGfg!lpR&eK z8foTaiY`-Wo1Xa!lx=$lNquZl8u^kcqT!aByXC%sQkO?QSgLY&){{RvEOwBNIo2ISU6(wTQTDA{kg&_2Wwu*t$6%CQmn>Xa162oR}l5@3`efZm4=0PL z0Tz-BFGWrrlmcjHs2|ISpF{49Wl+~KRHtOtQNKc)sW@Y2q2&{UGOI5YHD@R+(d?A9@BgegRtBT4Mp+rI*Y+-vcwnw2&12>z{DC-+EBa@oV*Ba zL^yo1zGCvDSf;kaz)}UJzb04HYKvgTdR%*(OnIX^y(ZzJv0h@-Qg~w$eaHcUWkr4|35`c|4%aMlF2MVF3EeJcPMW z>*~6TK(BMp249p*8IXn9D*tZz95kLsdQ#A$hJpj!1IvIXJ~x0;_Myrg1RJ~uFQcF- zIOlf&Y=$IIfVa2hur2WA3Yf{(eMe?K_q2pmEnBn2R_K(cDp;2Mct#`A7Z%G^jlU)9 ztT|COsYr=qg#;*`{4*G0W1FLpp>UC-7ya{DE32vNuSqfIPTfFh;O0n(aivGV;w;|K z@n24}B zk^-2t5#N#RM>8?>Zgil02lXyaha^rHJxyktRjSJp1KFLYo9+M@BF}(51m3P8M0Sp9 z&mw;-kEDb9P)%b-MLjzQN$(g(>*%QanB?WV%_rWsXN1Qrk>S3hBfn&t3o@9cq_#5V~I6GKFz&}|X=};?b+pECX z77xV%WpZDg!Hq)1XuAdxb8Vsmpk@`L!^q?MD ziato+uX7*(Tj`jnyv|jop50e{X_OH+W*ni7I<8-RA*em!oLrn`rD@dnx9fQ$H#rmB zaCBE)WVlo8%zWZSRswkKM_S2C5EsqE^%ho%`~gWZ!mWq9L0af2I0Z$02@%OqWJ-@Z zeAO0zW4yjRDaJET{ruKvjDp|mIG>~S$Y9kmEi#d?+$3Vf_amDW=Muc*kH?J_PC4oi z)5Ul40;7K??8|kVM-&J%;_3)I+Mad5GsxTLAqWe&Ey)kt6g{6dLJ@(B;+zpMB<;L( z&AZHXdn4PbN2V60gkS}PjRTDyK!A)Mpl4x66vfEHi0xG zMxfs@IusK%f1~FTCFGS0H?i5ucmdhtHU%19*(3AB=BoNKfs6TdJd34={aQNpB9?Ot zb#kw8%4$;?vw@{|(RWR{`6Jp>X2|U5HB^DS-~e&S9vMG7e?K~(#Z{5HP(Gt4qCrOz zZ#knP$vd_HAG#Xe=%cgkr(g`iffDlwxOhHWr$8*sBfkuf7j$pYR0X#G7SYvB{x0-+3Uaw{Sf?-A}A#)AwzvfCf)G>R%s z!>%_a5i1ziJ9J4k5##ObzG7+vS(p)8d{AmJ>A)wbn>p)Fj#qLDs9qBiO6KfWYF&5# z*ofg@k&*-c9x$$k`@6)H`#)>#{ns1kFQ`=9<{K`xF*N?)V~?7u-`e4yGJw#5{7eGK zm6)ZA@UabBC_;b+=`1;k$mN~vM1t5E69cVkwNF0Xx?Arc-i?-xC}$el-dBcSd|zU! z>z$?oDI05x6{%L8238!H})^d38UP}^1O|=a774Lbtyi}&HmdgFq z3UF%R1hL<$P`(41rN-bwouwIUrSYVEWr77Vv!HZo^8(jyn#fs2TR}_PZ$)d;dRz>@ zCh2q#$Xr&*=HrdIJd48w;Y_00id5AHkiof^R)PyH+3-ggd+-f$CJ142OXQGzOqOAJ zte&rQsTd?=@Pbc$CcwJ9bAVrJ)(9$N=Rqgv%ivA|dX{-z&4N%$%ExIUN2FhZG+<|b z>2>~@k0{D@OiJZOHhi&c^a~ZjA5NY_Bj-hx7=wIevybQeNmsV;O*8hse zS>x`#(G4}`ahlT|`3Ke06voxhh!TJ?F~>5@tsAlV*R|?-=e0sd(#vDz$4n-Re2g@a zb@Zn+ZNd483m}tAWRVT}DbamuO6LGErUMswQRV7+Wr)V&4w9j--~ zo?f>C2RehAtJn81EeENs8xw=APAWN>DgD$icsSeycJI0hS_0}rFlr1UcClOeQHX`q zlIpu%BW%Hh70t$McE%e6gdZx~8Ly}dO1EuJYJR;XOrbJmYTQ z?M55D45G2Ugi9ZTH49Cs9Q<5uv>|@xLe7$0I=dOazmonGs7=JeZ>rW zFH%FtFa9Fl+?2qupZWMg9oADa5W0{TpXVa8=bido)@K|bJBkG%x~|&JQUUa*yv3(q zV*NkR!DVt`_-wBN69xRRS%BIEg6yK=)n}4AMo-_ctuhj$aQh*KU>7PXD5v7h6BXR+ zmGZRS*U_k$Z81SA<8??It%B2O=~f92_)_kpg%?Y1aa+Xp*OzR{b;vL@%p2^}Qj7ML z>NbUW+q;BF=85pa2+|1&ATrDpN|X2(J>njJAcTH|fy(-|E_+MYmU6K&|Aycfmt*A^ zSLV0fjLgF*Sj7rxqpr4NdDFblXK66ow?YzohiM1g@6vu;N0n@7si_1xtWD-waG9|s z{m6T_nD0vOdJ|Xyg3x|YxQpVC#}-VH`St!|&%psD_YHje-iAlYGNgDt$lI&GJ4Cc5 z+hvGNuD3-RU4IP>FXz(10p=3$d6u4&p#zjWP%@IME_@2oVMTE3K>ec78=gMCCZr|C zA2|5O^+1=IN-msuI6>g91a_AZoVWlNq4^g?e4FM!)Fk13Ij79j{`kp6{LJ!;LLWdMITO^Fy$l z?$|6J`5PrH2<$vqYjz(I$WR+PP>|&eO9<8sEZB?z3KQ=@J`tyiu=Fg_wz+AKM=TOR z>=S70e!(-pPi|+_Q|azWlClu(VnKUwCH_QoMXu})jmvzluAa@y&U5Hy(8ODlvQ_u< zBVKov!7oCydjfPJ(#qnn-$(^1rZN#L{8FDc?yU9VNJ?kz{XJ^ZN+074M021yw|; z8*xeg>G1O-B?0^V2QKS3;=_^rjpd7d??wK5T-N44djkmn1KIy;PUf%9gr%_qk%F;_ zm9e3dxy$#R?;_+c;Lg@TP~XamNX6FN=${z<|MAN|QN6*qb(wGJgWxauoIQj=Bpt_G z)+f+vx}iWlfjxYL{ttgjDwcNXc404OTCX3vgRXQk_-X-Q&}l0Lo2#iGpQ#^j4|g}< zIe|D}l(0+S=DTlOodM2$UeeD}l4{0G`n5%k&=gtVf*6QduCmfIF70tDN!?v_40b`) zTC2?pA(1T*+Vfi0;@fFCTsSIHb-z()4x>mlRUVB5l%XRYFO6C_!bJvj0y0aU_SxC6 zI97fdotISxMFEN{y|9wP%C_f`YRR57t<#;gc|B0tZjFQV8(yV0;M^1LPJ5T9haU6D zXAxPcyw#zo&pv>5+8Wp3u{zZVpLiuCw^cSAz|u2a&;_Gy>mE(!gx_=+SPk1f)k5ap z5DzxmwrK553D=JU!Ztw+cYlNhdJ%XnLQH6T34($2y>6!ou%%e237DtxGXVEN?}aD? zsHl|c_@~VeRnBFQ|MdzGiU8`s&uL zn!#-kb;E7}BH;}7fKt#6Gd8JLgB|MOBXgyvGR7xdO}ZEzr+i*JpD}uf=5VNj3FYYW z^rZYGPTWbCol=_{ty_&&=Elb3tu@GV&%Y;X^u;I(BOKI|P$KJ}!b?%M#5^~t7R*^A z6vVfc>G;8EG1g6VR?^JjePE2F%1dmNpeK)-3TiVcB+@8ct;`eDMIRR}<&dIM2R~MS zBUl7%H%p{KHyLJIWo%tvYC@Z^3^d6(>mx5Vmt#R^=+Vq^MjKWPA@krj7&YeMUxX7w z@P1-2k807-yOQ|Cw?3G|pNa2fvNujJ^Cp64!x9Q$3QxvH65pe&_d9qPD7$v9CaAoR z97N%zmUu}Vx1)$6Nu`4DOf^9VP^mVl6ec=KLEvDJNb4db9YvP^?(NW|#X>`4*j@LP zva2hqppq4Tbdg!8VEeQaKx}iWZPb9jU4xE@K|-O4^&fZJZw2EEHD}hUfQr)nbqadA zGp<r|%Qy7XP!$hN(vG49R3C`Ac#=h^5 zaAJx7ao}q`33Bdy41Tjs>NQStUkX2g|Bv{_V)_{BZCBzE@_iXB46N1y=aHDZq# z|05d7fxUOYUcd?vR+Z##B~|D<;3fp%HUu>_Y;cqLB{U_lfIz~`3_+OZ&Y-qwyNoL| z4V$#DTQ_T~wNZOEX#OOA>#`k+r;3>_$X(^FcxAfpdhUGoJbsRP|7gzkg6#3~U<-xU zffVS43s8$lMtS#!7k-I*xibXeMUeHO=z0(EC*%jdjRE+)tB05U6ox;)k>vek4%OXV z=I09cRlEsLxhZ>jaRsRckq_DqUH!`4X(nEY*$(1+xkh}4^T8XyyXiJ~5CySK(Bs%r zx=F$lmAnD}Bs%J#R>OtL^K)ATN0^Tl^>P!uiS1Jyy)OQ7pPM5K+*UNlxu&qw6ku1Tp!7MpP*=yH0D z?=$gt=xxtCdJ&>nXyXMYa)HXA4aOuQDZ3?gOkA z&*@H}OeXV(XF|ghxiV*3B5|>>*NXInS6KpH~Q`Fy-2hHCHty zEV9eanoaZwg7S#t=8`G&kl29=jQv`guSrRv^!~p$;SI89q3C{2VDZ`nihJNw<)?VN zv8}d8_We-z&7&s)ZcwroNu}O%R!&VuUT)*Qs9Ls6JcWe|SjyO*WrkXQNXsoD zH5$&DLkVh#pl#Ai4wp{WACHZL9e}y0L7D87k15GTO~dL@@zNZ4Ah7)DR1@165l_8}VbvgijJO)qyN+(j_ z06ZcF%I(VAu+CB4d*cp9X#XTF`lp$83D@!v|tB`o~YMy@Ga2UYJ z%PhNa0I?-t`;x50sX1eppl)>`QN!hwZRF0d@0ASibi^4XrtnLP}9 z7ljF|t%SlI8;}fdU94{Wjm^^pyY}$D8PX0q4-XuJTKS)x>J)9}=ypuVJaOA)u4?3j zvy^qZ*(QTccW#2wH3ZWh))N_{??7JQ$I&=B09g|`YJaeL^REf0Fi4@kcY0mIkZqpv zB(k$)EITJ?^{k~+IWOT$#}sQEcUTmgkx%Bi0AP~rn%m@Z?~yrlbD_Y0tK;Qs);opd zX<{qD+t@{9Yi+bPJP#jp3WA`7MEe;{%ZR=3LZ%oN1Z z`6b!RH=SfK9!147T5P`4U@!k^aH$vm6(y#7PxHU2^?2{Idej775?OU z1#OfD@j}WIiJ&TlQ;Rl{+(`=a2H`?a$^t$*z5h{D>fQY z5)efs%Z=oN(|?-@72-5F#%f$HdslVps#Q zGU7TjNwG=JBH0{C+)fM6Wpd`i?e@mfp3BKHFtnCK^$ZGg;7*gcz){U#n$B+gG$Apv(l5q)9unM<@TvemA!T^v*p1{W1Dc@2xdpC z*r^5{z6Rp~83C{UijjbL*NunrHzDuu(3UrFC{l;`pGs794@~E7`{Jv;$K}hv#Rm#J z>5n!+-;&vSIIPhhF&c3RX=2=IN-$DK#o)7e4rU=4X)a74(Qeg?PA*#W7Fy^=6~YN~ zQ$B(y4JXACs(kX%Pf^={mcH^xq|lE{Z*VniFsPnGa2pSRdOY@arE*u?hW(tcz}9$; z*&GYQ`c0ACdY9~DzR#f@EJi7K7OaeVQy)Sb9xw))$=~6t$&F9yg5)g{RbF1{04lY6 zIUnB&%m}?IRz|)qMTl=*V<(4gyQqM(fq&ld=9->;Euzd^S%q77ZUkzm|N4o&Yw0^X z93No47`Lm^A3H10d6Yfi5MofsWY2|U@BE8OarX*Jgi?2WU&G2%>tdz-UbdX1*vZ{! zd+oOH<$V562H^(HOOCzd#miF4bC-m&Qke?5u>5lfqzGW-` zReg(I#99H9Qp69Wyy58yZ8eB0FZ?YncwHY- z=ZWv*FOXUj%Pgo?m0G3&ljG{5kxW)`mdihbZFCePogPM7nNJ2)kVoVEtf_P{9M_`R z#+jmqy~X(aMyJoQDPTsank{i`Koz*=i)0x)i4jJ`s9o7Kx_YsJysV>nfQ;e%XKndc z!H7NJKS^|PC@CIcnaD#BkUc^YeG-^n&-*@Wcy;dyN?(z6;41Vns_9bWB5Snj)n)y9 z5}!EKfzxV{+6yKoSEA0pKfk}$gEMi0OPNG%O^UsyoMRwD1-V0QZuPG~QV~o^0bNhd z>5f0JEWV|jdH7WIC^iX<_TBn?wu7>=*?EPJdV5uRVOw;{(XQPPaiYNHP?_qk`!-2b zCaoN(S5nv$@(^XK?tKe{E|f8pD;uknOKcD|j*U{A_%Lza8%|B6+c7Gx=56))Ht(^B zD&?l~wKr5{RUX!U)XR-<7R26L_f^Ces-H+=c&xul)C(kW2&Apvz$^8YTG87i8*J!D z@SmfPB6fANV^Z*jhL4}Y=_&lCz3@Cs2WKYV3i=END%l9AtJyo8J&4W=`lR^k<5T`6 zekHo8ujCx$t?cKn>}SSX#02uaM4v;0UD51)-Vlui)Ns8ru1|bybgxG7D-#*6&Im3S z63&pKD;#4b#_D)~lhrhCl?rHqQWP+sfE^JX<^B)O3)7WJLwOCTXMv*3pm0kF`??JK;BM_Y#P}ow zU*{YO<*qlDGvt+WO>%Ufq-~uV%SiTa_uGv+XPi5(ep3c-3AGk-ng_T(+}SE^u^%(% zW5;hG_AjUx60-i_#rBhPO<;-CvZ(wR*bQOV1qN}qLiYQ!8+x}0J z$Nh`q!AM89`_~^!5&AH@;tP;V&bWbW&%!uIFa)pk|I-eX2^`ikRc_u zY=P`Lc1sPW!HFee`HpzQTyZLA`LcUjwP#*%ylb?`?iya$1AQ~@gp|D-5pX;20WErP zQyh^+RX$XZZ?HM+4Jo__j9s`rh?)R8QQYT!#f9uTz2(@xdw(>k?69rCrVge}SCq4i z>wT~oZ?W^-aM5f_3j8yZg?)j-NZ$*4+{X+=68KEt!zIa|>TGo#xJ0TB}8YctWP@6(<)lgq5(i#I**hS`yT3~5ixm+y${WHtMpSbV6LJ0{5+G2Yfs!wZ z`n%kF$_1Bg4`lW7DU&)f(30ul`F(lgSG||B$F)K!Ca<_GH;~;-b}c7ARB-vA(p$1F z*MCl4SjI*dg72ZOZ@kq|G?ewJvXTD5mdJl<_9i1ZlA|q>qzRuK%pM+m0@*E%F?Jjm zh`YE21HFSu*r(2j&WC=cr!u`zxoyepI3d7ush?}Ud69wK(^04=_JIMiz}l0UqJIi? zo<2(MbOY4={c2pzlqVV;DBj^fB&9Xrc(vEz+(Qo6NA#5GGfb2oD87b*%{5dRE4#KI z>mSQBs?-%l&;)pl9H$Z;rm-WSkU_ZnCQ2XB-95TWN2cS!`7uvX>`PJY30nT#gV$z; z7cN){A{;z+&r#}73Jpq8*%rB~0xV2fgK*EE>9Z=M zU0!6lv)0);MrxD61?`UIL87O!3wkW!Y*;LI7z&re1C=RDHMVyMXA*&zDky;M@=8?p zxMeQ4i!PFeC;X+X-j;sF{(IXeL%^Wr`NA`sI^;ck*Yx(M#h>|JDNjR!+7A$fAIOfp3UsEILQ1&*07#h`CkM5`8 zn7*$3oDWndZglPyyPv#0fn|s68+#RL%uGpnUlw`_FQo4a_pEA95j(?myyZ`^5nAz8 z#{mQrVDFGuk<4%6rCyG!@ru=%;&>$D`rd9|E7GUrC2QSfbLQ!q& zcef7pyA%KKpVHq7@cnBJ?Em_d1Z}PDY#q&=j3tfT|JmQGRF;%Ql1KiuFYO{fGZYmAgM|oSm}h_3w`~-8 zyp;r6iv<#_Jy|MNA{&9%)i@(7C1|L)Chsdvv6gqnZow-~Nzd#I%G2#9(;;+L}V z%lN~UFwJ(IwOVZr*ySD(j0EG)lw50zQ7Pu_)i% zd`D=DHFv(r1}SxxZ1QTVn>}qu{AmyrQp=;`i9F)Hv%E7JjfL_o7ZpgEu(NH{3evNg zJ(p&F+-R)K>=D@1>cMeouR$;&=Vk2}QqXF`TAn^b|t&6dFOrA?Et=d6Qg; z$!@bGRLV)RxRZk5a%jsCDz$#^C&^0ga&i4XK^S^$;Mjt6`w0>1Jo;fr?Pu2KNbk-K zx!NiCIHEIogn=qJ%XAg`fxAcg&@!T|GIW7YWtCY5nUXUIx@B{wYCC=K5!TZ|SYWs>+evth+!2w+%iefYL0zQ8 zNX)~})wV^kPC5a{VJ1Y~23X%n{uC<0N~C64hqS%TX0AKmKjXhqz0eY5qkvVD2KXG$H0-gpHIjBqk5(_fA7Ens6kb$^-A^Nc1UCi8a*P|zn zR}lgQv!G?hn+D1EtaORg29(po(08Ba9*Rsz!*OIG!9qA4V!2#o?GfdF;uJL?W6SD9 z;7*L_&868FrmZ(qyN*F(H&$aP?s69s)SQ-i?Qniqfei`~4cbp!7?Eu%g#;K5g*#xx zjw}T5V|7SlJqbEt+EVPKmt-OgJZKWt0@e}$)yRUpv0y5TM@Bf^0q$Bl01Ml8ea!9( zilmYZ$SWDwI_Gw*$b#ctzKayY+)U7xEo64>^vUPA&9tBiDV#+@**)D#d)8PDn`^tI z_hmOHXAsNw^>xC$kXG)a@)@?eZ~IhDd8p4LQog zD#UBG>iwY%&u1$!KpY~nWW4yQCB)v*sTe8F8Y)Jgq;NNdoClJMCi z&H%kA!iM7PNc@B)_1V-Q(hZ%B)02jVRu=|#Ru?AG)jUnr&1Tjt{ED@>_05mG=RU2E zO;08~uOCc}jZ*3mgf}ONp?;q)M_fBsZy%p;M`M9AtPT=9n_WL~v?Qg{n^`%F(eb4;R~o zBIha5f5-@GRZ7>Rku)pOqLrrNg7`xj1l=M#Bz7{RE|w<+T-=hVNVY_Uqv6U+Xmh%U ze(=;F&n(548CYD*l@Xa032{RPplr7<2|D+bYlzNAnKSZ|5gZ4*1j}t*b*I#kL_%8% zmcHjKS-fEYWlkjH#*B;;GJbiL2HWeSIya5oCfYrCwOQ8lZZvQsIdTqkGIA{YWS(H%7v;*`OvIxtZ7M~y9x^)ylk@_A@wcSvCnBdJg> z1#5OuwM%r%RZE-yTphAu|K!2eflR|d2Hr}|^0}Ys=D5R!_qvt@Bl`j9Q_6C+MgUjS!MD<3FpVU@@3Y(~e!8l>2IWZT{_nT0LKruwFUMeHN% z%}?v&^!+ZX@Uj#h^ZS|AxXuc+fc<{OyS?_uGZFLA&EVuR%nhCbRYnWS6{)guLi$Rc zN}e9;O!q_1N8%;u>XDbGpzm4VEfZ;9)+d2rdRRm=?q zL$aInFJnnmoP^c(WpSG9&X8~_MH-4o_9L_4*_|K(P7KN&D0@-Ir#R>5S2kCsR%Ry- zbE*e9TWzv^-Y`(wLmCodU~Bm0MA*5T2$!C0A0|v9+b{c#cL~W z!hJR<-^ee2X&zD(?GUttWB7pMSg6N6L@}zFL z=ZT$_%}C3|Y#^kXXdQi&zm3*r^<_msXdF5$os!H?FTE=gqPyXa zS2W@RsOA|rS>__#0rOUaUWs$&;sL|}!}KJfUE3VXhNKCjk_8X@+DbggQ1)xz-!!Fxt&7H-2xtchpq#kSaJ-Ac1<2$;n`g0@9ik)2v1xEi7EA#>uV z_7V-|W%bNwwB%z`SW1~(D|nBrjc0V~tGNFm|XkC2lTef)5A1(`IY<1~#gJ6&c~ialwe zrN!P$sSkve2;eGSuvSx@*$^+~4FeS}oW3RN99=hRP5icDoI1<6kL|Jok!PzPpX>()C##(H7r(; zp>m?wG8y7RD;iH1>2*?(mD_6ixBf!N-?ZsJq~ z#>Qe_&QIf%6-1s!^QL8E+jp8px$vn7wIKH*?C-?>kv{W zkcMF=Rn7mg@8P}P>%kOloxfkreCK^Xn`Ognj&KpPW=1f&W60~`xE!`n4~Z7v2xVr- z)L~9P^^gTs*SQl=?Oc*62j!va8#Wa#dl(~~xiD|$5r zW@Sk#kvv;i!)`!k<0)Ae%P|uF)Mpv&%!My`ocI3oo{L+Mwi@p;QQm&L|l$ z#pdX*%*K8;vtYBBG@Xd-uev3-wz5)4`;~65n=Rwz-l$cwRSZgjbvl)gMUlB8JAYe7 z;O;LFbwAL`5Uf-9ePcyA!p$tQ1PW}3Bbogq?RYLFa`+>h{_-p+RPY_?fCKS5d2t|fcW(v-k375Q~KpiT5R&Ga5Q2WHL$!$R*eQ|DhRjeIif<-w8^q$-a`4H&1<5|q|^}L zFMd{g`=IvnTFL!hscw9OVRBS6N!~f`yf*Zkyp!oSZKp!Y>?$NhC-x1^kX$7;xG;D_ zheee`+-W&qg#Nog4H#tlbGZ=?ZcG+&~ij?#Sjki;^HS#1D%{(;>X5*w?sTt+tK!~!(pyxH=@QXQ8QPn?HN9|M}^JTf2!av-{X5~ zp@D#W2>&iK(D=`?`2U)${@>Nf=3k_I;(vc&V*FoM{gpK|t4=r~edY60K*-;j=LJ zu-j>W%35f>;`aS~dx8EU=rhCUbAkex9Mh78D5Ip@5kw*2Rk#%yYWM1Ym}+vl3Oq?~ z>={-YA!;;I4@@cFTP~GBanG#VQmE8ul#I+V@C?YD#H2I2@(ffk5-rK9VbUbi1_!#^ulBVW0lsStBy6nAYlY&xREND zYOz(18T~MxctE?cM>c4@KvO@jVIPDnks+;y`V;=-Yv@C(o0=(UeG|px`qlPNBYE+> zFxs|v^6U|mW1ff_Pr1x++;V>Hwn^mSniph<$gX~G(R(`$GPw|owOn(8d+6eV?;n_c z*?1FR%bPB&_hNTka<~XEKmjwn5pJovIxdf}O;*HuX;8RsbGR6)fibgG8AA5w=N6F7 z@qGw9fgpDXH!O9MB1=@0>v(sneh!2w)f_nzbhgAb=605150< zF{B813#-K6{>^b8(>r?uTqX|9ebx*CZ1=h@0z6=o-)^(=vFKg^+_A6x2+HfW_NN=~ z>9(AweSYB*47DR67}EC_crQFPim(aWT+gW9H@xrdrbf-n3^i*;O#oe^Ht8LJrXKqn z$4J5sL4p$aHAyLa9GOD;6Rqv=9*rC?r&S_7Y{LQ-gHmQ=6dKjo<wAC48*(?@C`txqpaHd>=U_T|;xe1b+QR$!^b;hFza&(=0gC~~3VrE1 zEI%=IVmT)SMaWpGFU@a zBt=@@@sL1lp_|0BF{i~Owb<@Czq-f8ZQ`IIU0q`r-c^dctkx-+cu*5E0<&ACk+fOK z9<=CU7_d23;${aVR{a{#9PqvKdChbzg5a_|zdQMR^eEq;z zrrwe7uflGLNSQMvbq1DG<|+}O`MhFLp_5|`7b!8O>MI-}y}TdXg!(RfP!m5qp}sYF$Jjf9$^uH?qugGJpV+p}KPXqTbW zgj-YJonW#}UklHQle>q8d!}n&bnrEC41Ij5gS7BmIBv7FrTcK5cR{t(9DGTwL4-lg zmgj%}o0|^S|J^8#l z#uwX@9%iw!fcCyc9OFZ~NcCv()3|PAR;MDDd2*q1sqW%JGJW?bZtft@Q%cuKqb?}3 z%<>f0Qe%d}M1gOdzEusi8nTigwpE5zN+r>>+`A(LETqqGJal*Z#*;u42QTOqEZ{yl zl%5kIUkO23PS|3_A9}Dm40ruu-Xn`Rs*JU(_83j?kg=K|w>yfeNwku(EyC(U;zT=E zY;mBfoq^o`hqwsKLi<~(aRgz=VbqUW?8(N2P%`K2tqy3o%YgjBZt>R zprLdwMr^X9D~S}B?p0Wvzlp2y-B9)s60CH4lJ?Y(L;QzOP}H~T6eQxUhjvMS^`#~$ zQOZ`b7w%aDgN#n>VmWXV06Mwq3{90(5A<07fhqieq(>YuLH{7%FkhRZ5Qu9m%r^uv8JyNoX@iBH z%G10829RY{Ytc0vhLKYyaMsp;OGH+JDco3_)rl6@)O0B{IM2A1osX7)#Y|1d#3)sm zE~bPtYnb^?+w(X|*APVO_f$vuwErJ%ZJ8LndjC;-pkod*9|u55c_)$=a#1V?gpSL^6$xxjKFs(_F zc~_Ui4y;W8Q{kV1JxfNuE_WYrB3pI(aizto*q!*s>knojf@3AqpxNnKC}0>~;h{65 zu$$)8V-Y94x--`7CHi&sOda)m7PO_^VI#QD_?euP7m7) zc*zyuFLkVJR203d^hI9`VyAG;T}R!SPC@_y!rPDSo~v;^>+Qa2TOR zW$p?CPd6a2$c}eX?&&VXy-6)c3p9wG79|-J5f+6V8MJRDX3Em>k5LWw?R%brbdrdX zJ!i!hp|jTzq{Y*Clx1meU-XVfh36bMcz0OGd8>7M9a9P|M~NeQb$a!TxUjBGh|;8cJ-S_6F;eD{lEZ z#`%O-nsSx56aTc^sLg_H5+86y>3%<)N(}h9bj{VZqHm5qMY*kZ{mYa{vu`=$*BaOe zFAX$5@XrxEW3*eb<>-WK^n*$bbkOTAI{>iLt#7d*rhs2v{03GgWJ*av+MS2;$z+J2 z3C~GBj4HIlEah*KxR}YYL?N<3$6*I4qhOO416_#jD*e1~_TtHAli+>Z@fJ03G!Yfn zhaW}yr<`;_-{S@R3s2#)m$P+N3PTIWjxFt3_e*a~vH|ZsDchA$>N_8xA5riq=hMu6 zRvMPz83)p<(!T^(!OA09&+4SR-eGT1oyq8MpTMMqsmN6jmGe;h(ZIZzupC;t9yw3s z3~t~$8<(ONg(Hx(xAAkjH5o5=lz$^VvW$Ef=xFxuUm0pvmkhX920rU~-g(tfajR(0 zUK7w-vQtWJGO8+T&)Z`xK)Egf1^f81qG?ZbIo!XfV0BD1vjNmRP&qbqZ!t1HD_Y5s z5Oh^zk5%VTF7-z_*1e6-Y?7vS9%w=+*|xbByEyx_DCP9V<#!Fhj`|(bEs__zt;C}& zY}1z~1c&s}ELIL+z*=o5Lz$&+@%g~q3bXZGt-n9NrzLC&UKUc+1Sc>=g(wTFNPu91l*o{djc;k=%;hNl5VpSlm;5Vzc}dooeKsypzrD!%Wc zeDaD>6CI2@pjLwL0)XX6jprh-;XtVt<2qzSQ<2C|VZx5m*qBtvwow^ei(Pg4FYxlu z`Y~N|Q$qV5JiH0qc_VlP(pniTeg?+NzWC+Z?KL{ziro*5NEgwGp?U}Zti8?Z!JSOe zFTkF{4ZZv4@fqGKih<*+S*7+x&e)tYpyoT>XYBlE6PZ<*GZU77V}E3!AxxkW4(}vFs2ZZ&^E(KtIC<# zP01XSu1guzG>CrTr)q+ELNar`ATFe6%mKS3zgJWk0T;?I+@r~c=G4Mg?HOlt!tTTU zyaPiGZbc3r`<)Ib+&2oIosGq)M(i(%b&McF-%gA~LICP0)r!i*o1(#8z{?P|rrVsX zqbU@v=^A;m=7<~Q$u@#kWvLhc1ZV(dDv)S=$#mSmT9W_$-4*(u-rc{Fp+oh*FdA^_ z#`uur=!^Q1%KYtOD2t?F_#!e``~0aogQoA930elsVsXYjY`tTCEiX8*3{v_NIM40%_8CSX2gIDr86Vez>LE~UxXkgSb zf}$ohr6^O&$ca2WNC#+QWcT4Mxh$oLQ>o z2PKe_F`LRskOi6vFR)l8^(`%R_u|VKCs3{pG3#VcSJRY>YHLU;$tgu)7onjD?a#c( zj%hAKJZMuJ6$w&t02f%P5}^^O$RP@gcjuEjW~rHH8Zv~Mh%68d3Kq6jR=`B|X;r-( z)iAC~suJl-EluJ0bG3L8!5gXprBgSVE+v_24iAHfy*HM`B=C!M7*UOPAW2erQZhF- z6_8RVTr5Qtm-T5aeg@p)aWBFJ;15FHuUe{MT( zjG`)D?$s1BBgKk|j)`=2G(gqOAu$joBciH5IHe@0XDc=cc12+eZDpl=X=lykseSRn zL$Bm2=eFoDv?dDcY^_PRoK4Kd?IRs@lsi@C{oV-BLZKWxnG+{y-+DdQUVAozz696T z3Hbf0U1IXxEXqu&E$$k019mqA2o%)tscGY#pSr(QGXhn#mR%V)8j-q7;XWSqMvo}1 z6?+P9XY4!r#TgeJwM2ekQxjlL{UoTQ;_9mK{%%sm#Cqc=yIWz?@3=fltjsc2Cm(!3 zr)7hY-2S@&?Z$-2Df_DQ-u7fywxD~l+bJDeLwol5pI-?wM z!a-+7y+4OiSRR3hvOLR>m_-DwX_!vz1!JAKF^gjVd-IWSX1-17H=GtQJ(0PS=Y#Wm z_ozM_OV0rDju7yWcX#Y+m;r!@;BW{Y+f4>u?LI7Dj=*FrlY4?e%PSW&*=q^j5yS3? zmifcJP1pWNr~6FoQ~MqKHNk*(a*EOo>o|_z;1J?R5915Tz7Zd9Unz{4+hI1`XfcJP zicPA2*C$B4K}7{isDX8BW!SX$QwsGfJ-ObbiTCjA>o09H^oj#vsgdg>OO7qjg>4mO zrokuo{96>i{?QDM_LOGU!O{nnkQdAI%i;|Np9VZ_HQ0;w5Fc{c7%c`BhH8xZ7!sw< za;Q&**JDYvp~zi%wWcKJxsnqt)yavFjv5p9P0L1ErdgGi(T{rwTph}dEq8J7mQd4$ z2p1Zos$it_W|j;eF3m)?HkRnDQZn6Cnx5m4DG#3dDpGSyY><#d9TT?PJ^J5NJxpQ1 zp8BEM!^jYM7=LD9hpm`(;1`s_E~B0vtpj{SqA{E1mWVjDEYN?o!rFsgIGY{!GBoT3 z+6fi-=5^P8&56}u1{LQufralvFFxGc_WM+pw(^nN^gBgP5`Wtgc0;I31p)zG3y|G4 z9Ss@p+^wc{hF-Zi7NBcCsOG&N5HSiw$G=31QL@8&SbYric;n5ouaZqzLU>pXc=t!e z7+@zc&MCpOq4l8nnUE~~G|d%<=Jm#=fR*AIporIe+JBjompK^3BXDBn9w-Z`0vgL3$=N`-r%m`svk9K&%0@Z-%JbY8&(p6a1OeFVZRmCg!3xU^^&cP^aHilq3wWb<9RSGPQ*fB-To(6ZQ2(p^P zk5@Se-f!c=AGy0ga1l-Lc|%HKN(jA1&R0baVkf+@XX@zCAF%%@EnMtfo5_5M-V#v% zE_(f~ z>jKw6hGBX5wA=zwGFb?o#OdPGzxzSl$sLq8JH9$a1^MnSe%f|GzmL7Hx$hx9wv|Qt zsj`_2y2_{59T6oef(tVe$1RES5ht3nO>am@VTdFgl`JJ%t>u0n_mNS{#8*@y*<|-% zMC>38=|#Lk=1xKcHbbBp;HHwK2K`zpy;WCi<}%Jw@88?W&<7O+$+hSRe$zDPvdiCZ zI-7RG@B|CE{HLE;Z%YYr^H&&W_*+e`?0**M|Nf^Ebg{5D{gw4H7%akOjrG z_#D=V1}x?)vu4r$aV*h*{E_E!(P7$S8a-I7(T{vh8H{^^kzL(&R-fEAm_VW$HVbJ0 zwp84tR)E)cx6u?V?-(=aen%W5_Y)D(3o~EaQk^fESiO|L7rG@jFBW@vb`ykq#;&)P z`kzNCn7Jme>|BG-I+p1y7er~Z=c5=1tubv5akgfo36N=H-^^eZa$N0&P{{ zjJZwTyIY2BZzEM8E=EoG#vYRA12SFlsl#p+1=r{aRJU;6jGMYNHcWN^0Y5e zBqZB$8N+1y1p;A-r-PvT{@EQ>kHMhI!VM}fr^QL|)OmY|)nB4f`HPzn*phZASv8Gar_qf=uM{6IG6J^A_QQ`_3?!4iUlOqwm3uhJ>Wx@4(>H3v|%=!Nuwi?l@@bgKz5Td@@sGV>4n#g+bbJe z&g`4!KP7nHdz9ydj;c*1Se9p_pnyYAHFcCR`GqVIRVZ41h*ubWn`<4{=NTgvmf$6R z0cv&^o*h}`=bDl-T@9Q1ks-krl|!?N+4~0ECVFkzKdfk%(w^aY7u4^eIk=GGkzoxt zWHl7S*yRp+g>jRUx~q^&v2A-!F;Gdd+l{|H!N_f?F=QoH0aM!&^c3MYobX4v({wfUhHd@88y7|JIEAKYdUtIe(ed{q?Y{R@V8aJXmR+HVL>GAIdkMFr|PR zcn{o?8CF>QJxl}%H}$Lgk(zDlhRV?MdSiHB`wJw)yx<@HVs0f?Hk3#K)(uQtZZjND zIqi*a`$tE$Kqd5vf?T2-alIle+KLklAp75GvC_6HNW#EuLh)Iv&~5`DT&2{NkE5$>kwC0Eab6m3=(8lY2OVoB^Tpsr*0_5 zZS>>HK=fOxJkM)8wb{KqW*BMJv_GdpNRZia65D6?P2uE~gP;8xMH1@5AJ59K6#wFA z4nsYmsaPB|lb5ZMOt>v_LJc2gAkz~|&L=cU&v+$u|I!rbrSP`n^NFRja74Pei9;>9 z5MQmiCLa*AJ-8OefP_O^sg{{=rl~bVRgM7{OtIA2J6xm5R4W|V5}!@?%$i)faB;B$1A+a`5i`Cep_6MuFCP6tvn(+ zUbs`hF02o}^o2oqW9OkEDk0K&k<)*f!x_9qbDO>O7i7rFV~AvrrnB%4X6-6bwzE$l z3}nHS-Hk%Mnm3_;FM`hgREv4@5}v9>%XXZ}{A@m+IFI&ylg zym?3Q0O!!V_U-}kXS6i@ZrAXWXnN?0Y`_*%+~lSTc$__Dp#*ub)Bzu1vrcQ`Vjr3& zqYj9$AV=YWLQpIi)|N~iV<8{`RR22AaBCn5Nw8*D#`ZO7My|$b5W(gp-li){ zt(|o@pJgW0=nPsOdX;-$)F<^;j@3yM#WKh59W38hQZAkW^)0uP&9hwmHG3Nd08^VS>6Zaf;aB zZCL;w*=%qwxjVJLOq%8J{@$xn{U2#+KDFye(45{xDBtp5YEZsYc`@p!ZjL3tJ2p+^ zW1d4e#&AMb(@H(E2yEAb1Ki`MH)IKz_O(J%Dbh38Ot^-kY|$cH4o!pN3;>KC6j>x~ zSiP}o`KEsob{)tDXc7)Fct>1zn5?OsayN8dNzR?4HOEjY6vob3 z@Steg5aqXR2hhL-B1$(U#8XHm1Pq}gLNM0M#8{GeXhZo9#F200JDpM6+erXnJQ9DI zQ$MjPrfOlo`a~*k$zQW2wm4jR5}~S;6gxdN8R^j*m*bU{HapVCAD;(o7&J{^1AF|^ zHe^@UI}^+j^N|yF3I|r~s@HUQId&C0?f$*%0{K~r^Hxxo(kPR7mLoF_zrusFLYHhk zG9it%Ifw1Do>wqMts?ZAnQ$b6tH`QI79mBs=ytn;w*Jb2_h`)6u)P?8oT!;A{oeB} z#7Kd}C0hMnEqN^MNPdHKO0HVNrbc&0R$~X&3B+)1%-)$snUNW9cFG=#c-VSp?u9|f zc}wd|&@D`#!8!MaW`_K>F~n+i3|=GU!opz7P0APLA)uBcF~oEX8J&|yP;}oA?zJXh zXYM_%%j{SOZWc`(qJfBPBy=VVdpuIXQhrFm@?wo4&yeeJzP@%!1Jb57@=zA=E?zDk zdDtmlf!@ahlSvuQc;MwKYn(mm1$eV3TQd8iVmM&+2z8%@*?1`rYf@kjVeLKpV14kX zmabnnMeyy(L48#1VQ^O(qPbSC268ELhaRbP{XkQ}?$x2x?Vq@ZtXBmi=El)FP>K6E zw9D!H;vJWC>-PMTxf-&NjMr7LC0@~@tOxbTWon4V>D5&H&oBf(BMK7-m-Ei z0)O&ei7|KKed66?mAueC5Sdoe&XQj2P_3M>fA@GWAE@j3nEcWv&MTeac{`PZ)1{d- zxx&70l#wTaXq_LV#r_z$lyW#zZhhc3)WDag zY(fs$vT=P8xPIC2P@<0uWwy&^=9MI*w!$I=Dge$$yOC7p@)0ayt=K^ij@`F>P^|?c ztt$3HuY=0>JzAl|6wozczv1#CWK-IM-J)RE4#u207er$iHdlKI#{hk@j$cyPRdU#z zePHf5-w~K2OB5p7Q6r}#GSGhi=)pW4sFQMwp*d9RgJ6r34}M(37B?&l1AH6v8}9_k zjTuy;LqPgP{>|qW<5+sCkYec>(a3xJRV>pGZSO2)xphTTyX-ytS?gyTx?qJJ3n)wSTWXQ@K%d1}5#zJla@-yfeR{i_k zL=nFT8f#&4Ucg|rd5KG0*?B#Bf&=$(z`>3SlNt|X>*upAV zH~5JK5$1>7^>;8HC^&x#bDI%^b#p?0)mOeCB7>;!#ccder$Xd-h68VhZG(qzLi1Ia zqd~)EYP;slJ=LhWk%RF2>dZaesD5t5AGX-B!)}Xva>9Ej$TXNg>rwqEk^F#P%)QNM ze5sLkV&@S2=qKmgPff>X)+habz&-X=NJphIG0>hxNa&CW>7>U=MYRoX*AVnqh7FDj z&(8_(H497kqofifz=anPg%4VVyT=R5D$qgndYPmEpVbtcWra~@j>t3{WLGLS(8|xJ zAlUSbW7V&C05YeijGV-t0M_}y-7io*DwS4x$u+VXBIbe5+psP;BqyR6>GuV{QNBiS zSV~UIq9#NME_*^7gUpAY%40yHHxA%t=jZMiT6}>X8lnV5%8!elB!rIaaSJjTH|6Bu z?YV>S1f3WJXoQ@H(J2c3Y^D|&J+E!T_{<*jVqdQVpJ{yU+pz5RY`R2b2H>)(5tl-D zd*A;d#E+mzMr4FLiTOOE|avu@@?B zdb#<=J+s-))aduw`3C-@@|hwAPTNiZ*r;GE;&-)dMn;qo)PlpLehV_vHeett>V+NE zo-2mST~7USIDW)1E8ucWJ;6b5SP0`vDlGYnYF{PEp1z^4MP10yoyPEzF$}G0x}AHMZVk;ruq1#eynZ98n#qxDX^p?`4Ih|~fp(Oz9B~*X=+1((pYP3%nC4YgmQXLV5 z92>wZoTcKjgqcd8Y*|Gotpu??n-KI{!YG-!}?`3tuQ>t z$gFlrE{gsQ)0nnaCjr@Pvb1L!awZZmdQH})4=pJ-k<}x@-p{|+dB%{NlDn_V2c_@o zFekAd_?a3$yT~>wi*<2R(72F@Ss5lH0lVbRDOz8X$CBy#=tS2uJf=r=G8_IK;Fwic zlAY9+&ZQ!TQ>GNWNmjwKq#>59L{(5U4ITyCcGzHn!d}`KUuCpKHEnJg_9)zcBCnvb zc7RlSNmQP-;9|?^v0rpsd%pL804AU$zEsyBNn+&CO(rd~t z1t`<%!sN6-*h}nCercdnM4iE6otrK*tnK&%@Rk^)WDgdDN;p=WjZQ_$8l*x(VuKy1 zP$#A86i9wV=M~p)=ZSzveirW=(PvaeL8+q*q*5Pn1WvW+NbAiDa4Cagt&W@a-B8D`gs}n%VP!y7K@D3m= zSQMJ}m?h3hDMgyb`St$iSxlq7D&9|TOF*;nAt12~qgE&C2vvcX%c6f+)hSi@9mQ2@=cV~bOTu{056rjsNm8i zN9Zu%$!3ajaXJ;BG)Kf46( z3~n+=j7vyVR+E}clZqw!Ns>XA-?`}+gno(%6(}oHHp}o{`OqG~dk0&lF1t5BaA5Jw z@5bM>2hd$N2iVb*?`whW7{oCulGrz!IaW0_jEj?K8G%6+5!%wIh%x%+p&Y^(EtEjL zm%0Yy{^;!0lGa;tH|c$-(y`rUROx14CYSdH#IS}t%tV3z=F|Bo&liwt zA#DfzVDg&XUuk?+yghTjL*2FTQ%F*8Rg{>gE4t)<$cFh-@{#mjVI!Knx%*%(6m`#P z0Aug86gSRwe{3F}ou`lPf+FneZ7Zk|PId4O@A^-tgwEiCM-1VN(X3LdGz0L7^eY?l z1r*{8LZR=$F5JOeCp#$&jUVC1M9yLwvi){^Nn2k|Q=<#2z@=izD68;-}z|1K8d#AuoA~vUo(>S9h|0H-m`#S?Kd0PA1%uk zKGD`hZRh?wHw`%`nj)A*X6%N76~(B1HSwR$k0pss8T+XWWczIdaPyV;-r6qQMLKqBCNVV`0D z78%O@pFMEk zbCoW^oRxgjN(F_gbWFscY3~>IjGFngUCOVhs*;{#F&febGFbN5ll>&uB>Mu4P2H@7pKaJt>$WA!deoAqU3c3M;AHXV7-iDWc!nJgX8b%|zli1?1=J&q6E zJUr46#Jw2&_6gDBW*PPD>TW^oMe*Q>ZvdsXGD!vz=^XHwcJIi=T{Ex$>&6|4;?&9( z#ruZK%0*1%kspw71+??UfiwY?QCCgLqk$&uT9t(-lg3w}>D%&qI6M?c16YVzbr zsUiR0oKC7R{5yH~I0!Orp2@b^{+qdmM*2nq7 z!QL?MjPBGo$^Ba%8cNn`aSk7MRhW%apm2wU5e$bHca(s>A4Ke?6Smc6Bcy58SlF3| zBR@ANeY+Gv3_=s4r_F{0zO+CtuYCd{yvd-*?z&4I(S!LJFMXjv+4zHuX@9QT{+)i8W(D)`TDtN?|I-MvBpR@^58Se1^r9bzpuO-|Lf`YQ%JP%E9BH>#7# zY_SV3ngf6&--1s-uX)8y<Jk&uNFxj7RXtFw%WT7BIy)qZbhp$rI2n(U5aTol|Bn=!x;H%?XzxFz^*W+4feEHj z403qM+s4j${U~ZR*i(<7Uh;VIJ$rjLQjL79o_! z?>!x9`WpvZv|?80rL3(jyh4jN<&xp6tQ=tKL&O`MM-qSJ)I>_?15t&Ek}?i`a9Sxh zv47Jwpsmt1=n+!yZ%SY_;qQ#@X}Pj1sZPg(DGJIOoW?)OI^*6C+|j5tX4>4QqZh}gr(4T^J8mNzoc zYsW1Pp}QJLEAB&)61D}Ioz|nJ0;EM}gT7I;6P8!Hq$Qj+-d?qHYA1HA0Jv*^fq~I6 zl9%5w5uGe*gcz?km^HN*ly~0i&FUCfb>&$Z&H+jawMtkm(>1n8D4Tnu2~!tMc2Qv2 z#^kw*5_jo^RJa+2d{*F;k3I@^NgUi znc6#vW;)w!Wf7Do+^`w2`(E{qYNHdgNWes&oNQ*V&zs zqexed;#Ugdk09XGQ?EGK=%OQERwcV+STZ0FS$~mK$$u+P4#>xcVg!p62%^+h)a{np zD?}OkyVr`;m+gK3M;U6HIQ5W#!d+?zaZ~vQ0oT-=CN&ntg^0@f#7JO>rc1`+ayC0= zp)!r+4hL{$7;j(~PNi~e&IQ$Cf2^(26`Be2&eiUR#V;p4qp&4!VW+p2X=iDDN5FKy zb%v84n2Ts@`H<2yh`jqGtmULl-oMW%y_NSY@k!aO=w~^3V(J<#MZ?rY zyOMlZ)`vr;@r}RxQu}t{%4O;du`3oH9d2ad@MTl}^jqaOmFKvaDn&P{t*%)s#Q|ur z{qF-Guxn$0si>gRY-ou2s_{GEf$--PO90^}GAh*23nDKq^7me(l|y<2IFlkGYz!0X zO0zPhQQpi2Sf~}L{*(&9FP0IZTg-fpSBdtjq*hAG>IUnir^0A_(#Rxpoz>ee8ZHy| zy{>zEY7_?v4p6j#a-13BknlR=ot?NsC?rzY^lh6{7ol9ql#|pv<>gu@np_gIT#Wl& zITi1aT4nEO5wM-IXVsSFefBr1-G#RDU?QVec;io1%>-7=a8}#NRX8*}8Y+|NSg)#Za^>oljiq-}xtCU!~f%NHi zbb0)d_(Gjo=l0PE!hQFbbV%zG;w4M%8sz^X?VZ9aZ?k>TN(!-U+qP}nn6YinSQXp0 zZL?x~CKcOBr7GF^zV5Zxe$F}FtDk*t=GFghj`0rtFqr?IjGR%TbCw@mqmAP`-{Ot% zgX7n1bxD{wv*RO5@!W((^+^wmTUfZB>6b;XsXxa>{!1EtV7Nue`7mMN`@K?~q068g zgZe0=bIB?ztfl>KnX(tCn{70wU@}UYvPA1Y@o1u?bJq}y{iiLbfb*U|EZFwmc|U6| z=09yI&IXHTjC;?@7+hd~E5GLMW_ZT-vU0?X^D=^kNFzm)2vVfNBz(mmSPJLAofYBh zO8rSUbOVr(VU98NCAI$a3K0w)JI8<>&xQ|l4^;&mSNGB7rdKjx|v*nhX&;`w;H?VZdStX%CZT|R#Q z2F@@5{zlF)0RBtXj^TgH(+? zf_I}o%6#9&3bK1r$!gyr9qWTu*_0&GJWu4$0t$^4mwBif5KaH^kYVry6;@*9v&*q` z?&@SSf?PxtZjIE}raPi$b4*9hC~_=IkD#7nq`GgxxyuiTO>MHMUdxil$?mVhkn;Dw zOzH-Z+?2K}lp(|zc_&gHX%5`k{=qPSyOnk2^uv@L`Gb^y-lP@2Y}~p)=HmaJD^~^g z-W>F!6!Js45Yj=G^VJ}n)&fS62oYM7fI5ObX^5tPwj}@>yj@3Fm2BPU+=u`I9&VA$ zAkhadZ1tj9;BO_p_Y53(@{j8K@NZE&|6!^8fBqf+RL*Nw+i*gWK;$EVs*cB4GxUK0 zAu~pN895{Ua9M~At_t5ZwGA(#rxuh& z;HB#9>pDAwGAQV}58Nvn#U^z7;L)k_Kx|(@@?<&=v$TY;3AG;<8)dgiX3X z>7?@oVRzBN-J~)kQQ!fRsw-=;LQV3)bGg-4j@nMR z`vnjWZdw}No(0Un*~1PdzUL1cdCT91uds}ThV^&kKW7fb zCCDV`qI24)nQc?)H4lZwRqLd(q-wFac6!MO6~MCV(U@!cy8mas>5wz(I#IUXp;5?L zN*nx0vfzT$GUL9~h5T5z&GnT`6TDXV;%fp!y!0;I^lv<~KF?qBD!6sA*H^CevHh_0 z;+QaLWH@pV<6b{8w9z}#qDXxghiw+pi&$`sOHfwz{J?D6KNdH3Fsl9R!x$t(){deW zA4(Tlg!-x1On|Jb+X=V2{mw~K9;5hyWXTTc7eP-fexi$xzS3t{E(Fib=yRyefQVx6 zsIpymRjOOJ(gwhuBLofOHuztSa@2GOcghE5!1beL{@0DN(0}$A%elJz)hPdqN1$2@ z$_I4`>)pR|T)qKotYHEPQIklp0Y}pgsQ{5MUJ&v-Tt8v>;3X-njoThR;r9Ca`m%PV znvVCzAbv{_*QsttL5#~?yJF^^?h%a#I-dV(h-8*^RA~u-<_xT>8Ebc+Ix;4 zZl7|8)W9EoM1IwA0fNW7b&85>DPGEw+}phckFl9T6E%-7qm>Te6vKyLP^Dd*F+vRZ z!zO-h*H}XLqG&loH_$%IQKi>h0-KzN!@ODX*PaaIpy=I~uTV2yN+$9>lzurVxVabt z1{DLTH)uqsm3~Q}Oygg40uwiSOuzKedg2JeeFc)PNf`X1bHm3KhHs;Sj>U-1&5bXP z(4NJ<`kjP9^w#v*cYU0IC_qp8wEgMOzlC_;DeK3j9uPlGG zwdF#S{phOnlhskE{0N|sQ_{W zmO?5ilPdD1v_Bnp4!s$~syvM1s`>rPo5|wN*cz+YXM57rOPJWn*uwG7QDf$7jfGNb zQk5ct?iMG$XG{2GC<;98fKzE}f+Z9_ZF`Tx_KxW^K!UV(cnv|}+{E$;lNx3?)jEr> z_mXMp>O}r*iA1tTYQo~srZz5yD>MbIziS>8%AybL6mNoh0R%hEpOiW*kw=?}qK5}7 z?U)j0x=u69%oxF!U-Us5uGc&(NMEX_WWF;kOSPx$hBtg-M_UtEKYltAmyl7uBH3hT zAHKbFtzu%{o|>&H9jWwuQHyWdv8ADeFqx@3GEni3#+%cGJGER)yEmThx#y4haRhQz zGaBVsJTNiQ(z-uvaTxMo%ys1Q+pVI`L!Zm6wKZ=vTFeW_*ATtQ1}>Snpc&Z`ozB%GGLplp5x@2ur9xVuWmixnkimKyp%dgH(lhEgWg6d8Au8o~ zkBwI9Fo_t9@5DvtWKb}?2`+Yn%CD(e)nY_1iQ>wTIOsHPz^2tAv7oZTh`_{SNe$86 z#3^*F)NenF7GW{=Xcj{W+r3wIwF~?%TXr%=I1l$`F(Cux!YG97R}1kjyrtj$c2I;i6`2Aq$$VWk%6j5KqS?i0dGHEEWR zH6>9rO-W2@jeX_UCRzw-QZ7+jJTAo6?;MlBm~6^e9$OT(Cex-^@Y1H==hmGWnVxZu z$N*U7%b0GGp0@?ME7RDbF6gxPt&UJBCND8ttMucvY>*pq#HNMjlSJN;8)ou4tYs}; z3L>~$fklOAY7)+wrLS8~e(%TSYGp4RHrZomUl~^f2{Q?psYTMhE=~l<>R4vV;-SWu zsjOP_1fSl5;Eg`i5A~>3I4+V-nAgc#E>ljNHmT3c8ua zB4)OWNydN=+R~=N(XY>GW{+<$5`xR+j}Nsg303*@UV~&LL?G>a^DK$&NF+tqvOfhW z!`w?riA|28m?|gBqH#THQq;cZF{WV|^ZO7Xoy*bRvx?88{B-(+iPcK*Pm?WjWw9>^ z((7SP;f&TQ2~{+IgY}5R8IW|NmiGKE9N-r1CN!q$@K)=|nW=Ji^WsYvRUH!IOgOoU zvmRObEK$upS^ABBBw7J=UvR5VcG!`HsIz})IN9Gvxtn<~aH)o3J;o+ShrA*ov+4xH-9%SH)}?tIH#))rGd$bCwg7-y|RIuruLe}Y8$n2jKM9|(j~a377O`{`#pek z?Bhs-if*J@JaSZMFU$tK3Ck#}y0%Zn&Ar7<6J$P2l$ny7wWaMBtHU?}F zIfq=krX?EarFI)2+gkMy=MGI{3i>h}$+L{wq0$bF%wZRU0D_oeJ(Z}ko~A}x zvANP*kF)3MiB(W@mH|+TC}fEV+du&`gOYnwm(b4}u#X1r*Jr!`=qF_Prv!I^mKWr)Kw%fS96!v zxZrZX@0c084L1~dvcE7#@bi^CU>dZ^r8J)2jz?W*>K3#n9ebsYB2?DhlL%6ki53pGI}B&}i+Y)NCo2 z&pP>XD+s1-^!!Jx^}~H#N%o4!^=%myZ0_h>HZn+&R~5CF#Z*on>%RtC&yqZN3$Vh{ zHDmyl)>^7kH?~jWj}PH4xYQ72Paq$}!~T%!)ler{Gy|4Tes0D*y(fG1Fg&{$sUG;R z!+;(Ao#DGJu2=Frg4cmuUYM;}LjXFmL)UQ$@80|joe{GqyRD~hs#}F2xXo8~0ZSD_$r~igi zkdT}^MSP}dfiBujq#Xb$IOvD&9$?Na@FTg6=~N`h9fpvDQG-Lk9OBO#SXQIRD)m^) zI<8e6VwN>lDM%6@NJ?4+5((}0m<>Q=)Dq$#3|Hy}5fDuGCwCn-^ru}Vv|K6wPHm}1 zX{ziLGCc{Fix4wnL)qP z#<<0EMyPOLC;?^T!aZ^3eYLgd2e%M{(MF$hZQG7TN)-|aLz08a9>B%8H0iB#%n977 zo0FP4sG{=z1h|B_v$+>q-1S?$Wq~n`g)@~0L#%fS29O|ZvTRw03T}<{>UPj6uIQL$ z&}Fea@yjBFZpImHe>%+x@Iih+UnX1$DP$*I;74#&#{+G0MQU*#2C!{}vUPr1wt=8^ z+oFY8ID3vmK&P?mq!p1vt1$r)q1)|p28Pn2rVesbtg2D034eyiRI$ZW;p*5P>(bjB zEFd#!E^bAIW!iYr3e`99{2udI7MyO%l1OVt$}gim1+TScKyb@|xVE#45EWJ?23J}? zTag5Bd&_bOW%f#Xc8glFZ%HpU!+9#$P1muFOebzXkO{i=94@yGv@ntfuh{7=%i>$T zfEVxhu*?9XBb@L5xJ^+W5uiRVUb-!WLvRTn5wrD6MR7*zhMOI+W9h z!StxO$S2UBXTiv*3GWzJjO`yw_k7k?$BcRk8jWE5181GjMX!`P_h3G-1RUZLoJRyL z%lNG;Ifr#Y2D&O9Q$L@gMJu>TigRXo3zve~jt)j#J4X z1%5TB%!5~NVeDA>RS9fI!|ufsxceN}*x}w)0?ZvN3&vOQhhi^~3#yh|dxE zQJa`^pH9Pqdk1vMg;2yFmk8xb1_5i2?KfNBNffViE`w|VQ!7GebE6MsPv|@2NAoL) zW{w}_vn#8T=Q%{T1*vjwS2R3qh*P(II>(L(1uQs-YD-p1%oj^Do2b-hcuOip6p-PE z$+@R#m0#>%Phi0uTD>OZVepo}HH1t}E^8{sE0{vWlf~?7nrCH<@CrLQh*eL5!r&li z27h&i$F%qs9Px8#sChwMgY&0ZR~1KQr#%H?puy5m^NW5?7IPjKfx=R5q9KT0@h^;e8{SV_URO(%8FBCKX9k~QcmJ@u?M7i`iRlj(TJnZcv2m92A1z%A zV`JPDv%2jk{E{_i3?A()^HzK4$q-`6ISvX)AHjvT(v%f3?tzh;+bsA-6N9g7J(%!K zhc0D(*TP|86-r@H1=}ZZc|XPEE5(QT)YY~dd^P@M*+ax|NJ4cQf@1^gYvN+UxFh3}isUck%im0v{I zc?;Syj+88Z-2zwX@KXcxTnkY%3hqq(0^qei(%-C|jSZu~OFfNdkXCIoi`xsNl+1kUlal^bKpwQ~SiiS15fA5nK_mgqUQgGTdLyn~AOaa4{?L_M(oYAEI zI|@^xqSMoxF-hR#Q4u#r1w@QypwQFhdk zw*bV$-4k_n)0gYC6)-w_U(lA++PwFg?GgARD%(S96yaI~PhcR<_4gMB_dQSg-%ToD z0%5t9&+V}WyQ$oMA!pcr)%zT6@_`yIU6Cta$XojUOu*E_OwFg?Eej7L@MR|VT>Th)yr|4%jr|ibdfon+g*Ji-xZQqFbadmv|TM4 zhcne2K1eRED_d@bJvj!~Nq7r~bK^^OXmGAb2heuqLlubQu{`jVAqoCjBIv8pYOzP8 zfp8>Htu@cGt7h#V^jNR4lLVg%C*#PvZ`)G_R`MH#_2$bxnN_aN)!N zUN|DY7lZFX2Ld7Fu6Z6L?m+W)-Jp4vR$KNY+0t}{hp}^GWB87zI@~-?7It$Zw#~H7 zBl7(w*ae|x~J8awsj17*;oB|9Z^r19`A8gy7c(*-O&1;R_|a~ zbN6(eSC;jOQpMYv`J^Fq=j{3OTh%@)xl6Q(?5I@q&1KD6bJ~IoGY1;K8K#BvHtm<1 znds>xD-t;WgU1qG_wv0Px?FeMldw_)=Ggc09ouM(;wh~Ks`Z9V0xEJ3TfX6RG==Rg zW7CHE%f9s`sD+l&lVc?~|9ycPg(iYPZ=6Y@$)wGGfuW~c0Vf=PA3;YK0&lLCAlu1Z zxN!fv1>oz8EgVJTGjFdKX@K83fadzs^syT8G{R{93C_!oMTvaM!vJAA&7&`~u%{x(li zU7nMYIdu zcPA4(a0<6xIJyUXA*`3LE86xX=HbS3bPP;LoPT<5()x3B_z=_ZKaOW3h z<<=m|d9cMhPI_0#J*G1j_t{I7h@_(?z~-N$`yh@B{>)InZjqG7&9ZD{78tay@TS3= zxF^i+6UC6kdnJ$LP{;5w!7W8~Eylp|WrJd0NRO&z zVjp7Ux+p6OVHxJv`p4{n0(%V4DEsbQ%kRwo2K}@(!0wN}&x84rZg>12E@VHvZR?&s zWDh=}{JRqSKX3{Eze?m&9aj`fbW?f}Er@y?MZ6JJ7xSk4) z(c${ZXgOp{Qeq>!9~;ui-axrd+28CiGvEuu0{eMM9Tlp0MO4M298iXtHuHTY|FA!v z-E7P@Oexr!jyUu{8gr>TJ0&5*R3%{^rGh^BdMF2-njB-s!|r+3wr#L2CQ( zWRWzk(DN?RaIw%8v7KJTsd;jd65Qo4BK{#h8agp_NVeD20jwd?ng{*laYbwHNmzgM zl|5>wWv(jqgjvR^!lV=7h8Hw2Mr(%|b?;@8@p>k^11dXOYe>pZO;;H@w|gog_(GMO ze6=dcK0@G@h-|A$@m#Q}3AQUT8cxMdZy9Z+I$Sa*mpM&<1amuSl=uXBiViuW8^5KX zLNlJ6DA7OKX_=7=v#;tiL^u4e=wpfPprc(dd}Zo)ro@Zo+a6p18yW?d9V%=5@G zMBaw$)%+U2iR(RoYY{wO)esIHo&xELkY2KJLEG?e$tqDSgbQK|wg)g4I$ls0E5nS! z44|o$6DEiu4jAt4?@%$k~2_(lvTtX>{hZMv^ zRJS=JjFww10&CIW;}h2nrhqh+@d*c}M$_K(D9R{00P{louCOI?~~7ov<(tyN9yU~tIL@e-c6lB(~gdus6#6Y&Vg3cBYZ%I_Im+54~*f%jw_GFAqEcV!TbD-CvC24uiCf z=+f-WZRvw$F*~`=bBPn#7^$sfoe4)a0>e4_jl_p?{wm8w}JFF3xBG1{V7OaLi z0ObSp;PL>tDVlaBJjl}#D$ijZ7fTSpn@Afir4Hpin>Y_&xA$~_uG_ogIoNNz4R zNF-nSb9oBZ2##>=!AXjE)XEIa zRB@XVgz6typCGMJ~`RnmuN&~$es2@HN$pY6h$m)etQ+h`t{gWj}>Ytnv4{l==q8KdD29bji}?^7=mcspQl^KAlqi-8U^Q-~1#1gsV)M zkt=`IV)4ea2J8EEeeQz9K9zai^e%bEFu9zhh> zHT@*T2st$%*4#pKltq;4mcfKN|7I+sF@J)hXgfE+oTpy`Pp~xe`zK~u1X}rAI(;ln zSq>H|KM~)I#(54?H>sbBOx9k{;Afcadv$^5zeei>vJ4fF(XWB5d}L^6MUPl!mOJ~@ zWV%$kXH_h1lFKEHNU9ECkAEw-E&D)?dVJ&n!@tde|3Ula|11Lk9o+w~9Qa4HcdPv~ z+UcWdqx7VekWdw8mA`}Una`C4NTG;+28Kr<$l#ssHFT~a1ikm~ zZ?Dl8tD-_eF*LHcU-BJIx4WD9|9N{u>EpyNvlw|GFB_XM%ERJ zb`$3s;k0v#W@%E0KqF}i;sQnX!OD)(uhYN>t2fz#u_*)o=p<0u{4Y~fL&J1S1* zVU0Yo7`>l-S4ku^cbpM;eLFypBC2omW#BP_wpZW;Bh#;=t3k^wV%1a+* zx3^ha{c?wfQiXUHLMh3#fbb(m67x1^v5R_)D~Uap8`ry!r&>~x=IOn-RGX5D^Jc+A z7m63z&0^BT1KzyXAhMzeb}L&^p0!2Dw4=nJ-sXN=ZGHfhFjpirEQ5j{+AsL7L*{;V zIKE?mhm#YsRhbtamUx_QFJD^3{xFca(5e|TLF?r_8n@N)c#bA2?~vZb+!|*Pg$6y_ zf+5*%A>MTu8N{p~U$hj&GHcOK>aU7|y zN;_Vi?h!h2dkr0FZvs`|Bc*Kq4Rg$v1@Ug<@i14zz3PAiK1P5Axuqs+q9{~``>wI< z9e2q%tY7dzT}-IUzJ$X8O43jB1`3jz5z3z4ZvraAGkGX_bAI1aDRaLZd}bw#_Y-}G zS+ihTqAjKtc_7%8X_w=kB~Retyesx9f|jcZ6|bE?R>STVE)*cor9q{tml)Uib+@@Y z%bsyc#6v7emvM)AYenlx;Q1)=wjwE_7+4m`+9LSpZzr}byWIN8j|4LR|D(w8UkRiN zuyqi%bOM-sn7De9irCmY1O7r=C>ps~{Fii8wZ=an$#fA~4YbK&kYd0xR1xrRI@Rh) z&|qkjB633#2K3`(wDg@PmvF*63a`Ic75+f{uE>UNo>mpOmwC-!NO#kIEza&STbF+a z%9kG53B!JvicEN1Z8^{U$=>05%4*DHczgM&@~QJWhai)QI@AO@!%;VX3F<4;5Fjgw zNj*@7lWsryd+x*jhorQ+!i0x(Ac2BL9?}u21!ih|5>tNOx6#RXl>*p%Zmgf znX+i?l))y)V7!HAQX$w3^2Wl@Lr(C$-S2=>VihcvBi0hv>2pXHm5y;@n-rFXIXV_( z^Mwk{6Y;-s#{t4R~<{KD(RnHTn_VxvTmtwO7S zX3>@{^f}JLwbus1JJ=^pm!wy}Svm^uL^}HL5X_)5I?&PyrHTSv^h+G=&i1jUiG4E) zDTcH1350#MF7#(5qC*|_9@Hs<>^M1mg!*zF`tdXkKjN<=)_4_fV5h(N4$+XsH1wZ@i|Hg z2hpBhT;rO38!6B~_0r~LxWWUnQ`N;7qC0zey|29BDnSR?YuQXxSfwT(E40tG%$By| zv_NJBVnf42!8@p+%sO=iI{OwNgwdLsQ(Slgn_A~SEKHZw#DF2S>N5&mtd4?*7l9C) zg`0=C-JC(wY|5-YdyEb3IZR=D78IVcG2pW~kz&1MtO=^y{SY3O3&; zKXR>pY#A#`k!MM?a7CY=D7j78r5(S#B>sckPrJ-;q^>Snd$sE%HeW_FYzPbXYs|VN zZmOYzdM^1>M!8sgQPx|l5l`8{EOjKahlM@?v_S~!Xo z{Pvii>A{9{$)8%-mL`UM5OcXb9{VJK<;WM576ah>)qM?f@h8PxTS@>QzF;LrSSH6n zCN@_Sum)4YJP~TDs=h$d?d1f^fE>=biPjVPpz3y4#yxuv)}klzkbYLi)fljz0e4ph zGh<>R$47TKR~PVVA5J=@TC|56nr<3}3L1%up!o)Z&s@q$l>Q{d zY7ffFc*I(>e{PcHz{pU0B1U38ZK&m|Y$hr%wa2wM&-HnItr68JVyl2lP1Lm55PE+K zJ*Kk57|$-Ji_gshQhHT!B(}w2Vd9=kx zdQK_tT(MA@rJv0yAB`+USVvb%5xd}h#pmdCd+?g&Ndz1aj8`&Mc@6s}*v*kqkHS8W*bdTRl>k)wS-8pFUnr z97gyujI~3iM=xbKoJaj9eu*r@3D;&& z?u?61mZ8JRjxhv^=cvJ51}p7rrBo@ybfJ+&R?MuU@H7k3sv0rJz>1qP#S62t?ef!# z?o1=SA%*-ugd%|4_@A)W#ud|H4JVFvv5-2j`DyWrO~H}nkv$YuO)At_TPQ43&-*H40b_7^|+j=mul#VGbj0!_?no?#17*`bJ*?= zxBHR%0^m4WCPsvW8qbmm$~&q8{LjKRy1mJ=EsV7M%Q_+JOw<;-c&ylzlHJy~Ptsy5*}GiM%l=uHu0ax|C)MUm!FCjWeQ10&pbI!|zrxr%ytae7ioel^{azb_8Jm`+@`Y-ArWSvL9&K@( zV*gK@$_T`@5S07)GvZ~*^#gXO?OI6!)=#$yNp0(j8<4n_W1~e8|YK4~s78TaWYv-R}z@fl`3ax2=LZtEs8G{2vsR}D9ffQFy9B) z)Ca>cl&JO}HboyFQ zqo0%#zMoy1?evA*5c7u-A9-W{x*B%59G5_~mF6Uc&d%RiiPLOtrze3~TfJlNOK!l#~m_ znc*=U7A0@^FxF_2R^_y`b31yB{IG6P-1UhBO^iiCPV!9DEzOKN#XJ0>NZOVrCyC8^ zPn`LzFQQvEPmJ{kZ?dwwDd_A*C3H+$!sH~v-^i3rI&&i0GubpvRWhMXl@sR;ZJ6jn zhRQ5!C+WZ|==J7@$agR*kQ*j_L{-sABR??#3swyURtNFHWwQ4<9tSIvDn8LVx=o?^ zCUaBO#YL80<DuBj-C%RQ1s((*_R(+0Q`pTO?DL2O{zg#DcAu$A-@ss$9b%# z{+MVZgXpbLz)^9rp*p!K5>90S2s=_Pxbo>8OFgrQF_>YhXszSpQ_B+}^mVUXsN9p{ zW!cu4xqFt-aVYs%@wEu8{G4#!n3Q-$m5WlT6aB-JF2Gy=t0s$~pd`qK6o4(U88_rb zmL7e?;1NPhxl|~dbdB+A!b_FOw9OE}2Rw;B1|M|u65eb46d*ctuqu>5p=|vL>=#53 zp0godb}1sKQ1_>ryq#~VvsZd$MNwXKmm`T~E2mcb(z;(c=>jLpT-iGKrYO5ZiYoR= z!5cl>tRy_*K9h7pG8@(n&ph}oL%~4)XFH)Y&k0Ny zJxFTUw=5^j1$Um;$_zt^hds1>?l}%6 z3_jI`KR?#fu`P15`x}!}?82}Sq6jcEDyEXmc>kMmTF&Q}B>7n#QoGNNU7FwHHX|nb zQKq}JGj=YST$IDVDo$1qHcBrxo)#oqjMcK=8j7FZ-mbf?K2C*CO5Pty$ z^!y!Z8$Xy0r>OsKiL3B`(^J3*2Z|8VUI4Hd z&pT(Qhr{G`EwPSw9^u z1X2RV`l*BD>N<{InL9Ph1o|4Mhiz2wTl6e$n+kbVT+;zZ)GhFjXf~!0y97N337K0$ zZJ!zE3R*r#bEyrd=yfvt?_1_0&+kEy+4;@q5aMcRFn14QFT|ail1Ru$+;uan=*B5G z07IP4F>>AMxTYgs&Ud3H`*jFl)6WWJF}*E%qhI;g$K4k|0?w!ZMqeeAjFRNLsWH*K<>&%((aX2Qt9;1!?%-68kv4q)g# zC*T;2Xy`syz!=aRxEo-E_Y#3J>3t@nhfxP%wKn&)poT!rHka~g_%SE;mBi^tmJkd^+blUSG{xw?Bo zZSIPa@1SB$(7#cyuvPm@#L8oK$7JaK+A#4G64WRhn~jZz2viDdVXLe2N)Ft`mUl;o z&c?bsvb6dcts9*4jha0LYO`oiP>l$Jb#?^Ek8YVp74e(|jIBv8=45XzhnD&Aw93i^ z|F^cscderG*-AJGj$gS5#&X5nu4U1G*3%s!*AEnE<&wOsS0nVJ8!dabx;Q#Fy} zI2qH*Mv+A{hY>?PcVxhn@IzrvY;O}8#WJOCFx5MJCU#y-iA7)|kiAOc_h;HU2H@R> z9+%UPMwgUxyl~5N7&j}@swXuC?qqeqBGy!sAdh5PBKdT=l4uT8`QRU+X6nHXwHV+w zueURLA1b_M7-kF|8()h?HKFdoBud9L>F)z^0%qozxlRsrF2YaDZCdPAs#uE6SuBgE zf@3uin|$%2w0TPWM+65R%Fj06;J2iX|@UeuBzZ+A0 z8wQ)eO&$v%7N)|f)Goo+9-52N3pQv^ego#?D(+XJVr8#VtI#c>q$oUoYJA1{y@|MJ zf^TJbbm#35COa9SaF)Rm^$nSA!i8Ut@NX7Q)Uk05oU9v=EWJbt?vYkqlBIe+%O~L& zIbB^T@j7+M$L9{nIncnKyz&K&q(E~{4a(}X6|pI$FcVqY7m74p>V5T1auOo>DQxXb z&=yv`Xo>4$7STKuDROmcc?kR1Y8Vm!*EJ-$5_Kz*s*@`L^WLHEad>g+(GpEoU-@z$aqbK4GCsWn%D*OVA+U|7LpZU{Dw4F9rX3-sJ@K=OdU&X6Fc`w?=Xj8jxS6A6i?r)uV+=uv4BRou z(77Q%p`~oglX^kwF_R0wFLP6<&6?WV8y&hL!cE6mM!UKX$bR0!P74@R=Gz7w_)Xuu zw74~r_i(3s>lBC=YNzoO|LPh(!3>d9LHC`{AIW#eLb8r5j9^HuqnZ>;glx$b@0ze% zf&_SVaV>qBo_@g3_u|U*2u6o27gjzKqWjKRHLW?`m&&RgDeNQ66y;r-tDEE=BGLyl zjdjE}T1D%#{1%mFn_Z6o$b*l*@kHfQFZG(igWiw$rVI^~C)4@kJy=)db*@MQN zWR@*!Z{G+p<$kb;s1;!ebM@+wWS#mLc=* zQ;^56I_@GiXYJ@w*Sj*CDGYt(FP^%lvc&B6x@qofY2K-SvKx&G#*S5G-3+T3f$TqS zY(ahcbc{t`7o;ohd|#U7GcV+UaK4%{R}V5(aHKX57t`*n)4OTXi&P8frzwt@BFrDW z`E;+BpiYO@=+-^>0Z*z3FAslH$vgM7Eq0E9(*P@Pl{JS`DdL;)G7@AgX;G+|(n=ea zI^$G=cb=t3Xr}$Z^z&}?1CJ@Qts|rnvRmMuYGykuBYVjUtZ*W z7;3P-^4TTa-!u~83{~AdM{U-mJ>@enH7crt|<}8_CDE_tdR- z)js#mnl(O*F>8Jr^?!bN5MwL^vPj1l3G3Dr9AvKKi9IK8q?Dt9GtgR$DUc3$)lS?^ zD(QCBj9f~sv!*kPJ_r1H=b8I1^P8s07^GU$UxU>(H!LJ(K}M5K_r1|03*iJ8FW%w# z7Me_RU2Cth%p7fDeksamL8tS zieQ5}_CsJi6Z~V6=V~^jwsx}p+|WjHi!i5=-??*Px6TEeeb;W1uAXSQ{%BEaui=eW zx_-wta@&orPp1aQz2MoiIA4fT-+qvm`Mby>3>xch5CIDqYUi*loqKzjA7{N5of@H` zl5py;OPF~g2@#NvF@>7G?llkmBdi@9w&?A^N$smyve;81A!;-|Nv`zZd%Lc!zUy1t zlK!>1iVOFe7r7vlXgX_+bl%${HftT#A59XYR30z_FfuxT=uONg&fDnEg-`7tl5Up% zvS7-Yl={HB{m%0KVft%bLbA=D& znU(eFb0pjrfzT}(m5v%Ysq$F#kf#!JP7Z{o{f}%$P+o~xqb79-i7^P9IO*t2HGIy5 znbLU6%N_n<0ZURIElS%MOHXE0$}JvCRM@K68hxXNkSt=l*}|ImejyKZyt=uKCN{rB ze5rUe6aepK+cIAK^PKsvQ8_w)@M4#6^{*rB)ojtuZ8^)1C6*=k)SJyP#JPlUZuS>$ z_V5q&>w2;XKfzWcJ$z>UZXZ<*Wof;JsHQr-O3mO`EgJKhm=PcA_)0|95MzX8SMOFJDX} z4m#_3bTQk)`DWlxI#L6A%LYhQZD|4aWsd>2uuku2(~P+H=A_iBsv(vfb+3hD=3V? z2hh!SNlEtY_Yep$fKz$|N**s;Q(ko~npJF?HCK(2CWW{Z#LGh@Gz>1`kz^X4JTY&w zxX{L;I{r^#NPGmd#7f|?cNOw)obhIw1vq=1zB?~cA1!ASH7$YmP{#n8ZScD@%Ylr1Cq`1+@$v|`AfkH<`N7s zren_f(jQJp{P&*959rl~hsOxkl1qi!k+5duyeO17S$}8(tmIt@NZVRxtlZ7x3EQnXj^0(SwJF_q_w+|k2jOwpdkG^t*MBgvWqKBlngdz}R zP*fR@_ESx!*D%@c;!kFz_Q;`OF_{@f&u|U0X}+$KR+gk6aaNQqS$No$t9%1wZgw_Z z*vRCt@-bhdZ>2xMH_NT}CPtf6Wbg43Y*{~jV+7v_*$kV8->vTR9XCj3{Bx&d9|fFS z>4WN4m71}UP62O8D}#*|6rV>6pNgeh-8Zf zXQ?23sWa8&HF=Hw{Y4;;o!Y|wjk$7&>`dY3+$$+V+yP52#|q@J5C0=?!}@*>_VjN& zNE`q*fpMZq0jo4K?hD{&oAA`FN8zcTwwL=WEvv3fEXh5H2H<) zox}^0Oids=)j~D)AI}&b9Bg|iHnSm;f|;k$SPlE%wVT_*vJU3(oWtVH^gz)o0QCbP z4X~z5H=@Wm($__PYtr7x8KHp~HP9D`m)Y(s#Kc#eExghLqZanZU!EuoBb8N~ zpVFc#n14E5g#Uk@F8>}6CH}>G9{QMDn^rDB?;zDguMHkm2LDDZs?rlXFH>Nd7lt&) zQyDRKY343-iuF7HI0ESfR0&PcpJ>#>t)1RF0F-3M@aX&dFK*|_mFL^XBl|Bh9;sjP zo1q+`=3v$b;D`95Z9tXwQL($}hVUh__XIv;fVHsXCa7iBR_4zjMVwTY3f1O=Y-KV? zn#xYg>Iac04{6}z@~-9MD+*3;Je`X_-P%g58sZsn*mKo_3fr9hn0Grg!fMr7Du8tx z^Ga;VZs+nt`I&W>{Tbxi#}Gv7bSVE3rUE; z+Y_Te=g5Kt>6=DZp=g^3y<7`ndn(4VwYozfb?s)E)Eo(GhH>_xj`&>J2*N_t%6{zu z$5mcDb}s-C5C(zHg_+>t4^Y1U#n{&h>(h4h%_U1y-Uy!)M|}#c2=yciNn~fc>5yXIWI@atrbS;0 z_D-M7=Kqo2siQLY75zOKQ(Zby`8u4G#tKgI%eA&>LEuja0)yWydworG0Oa^oI558+ zqC7@{;|MImKOoV+My|=D0GL5}tbF9{UJP5@&yy<&SAv|sK(PB0z;S10f^J(r4y7$jIhCFMgF^|+!16+lrA zDns~Ye)1TNEoGaHS~G%-}g(8EgA}TkZI&vvd0)+DZ>s>j$?fou6k?KSVLTbG>}KtR+OVKce)s6 z9A4zR$)>>L<0B;2sx0o7b^R zsvAvZ(v{9WZ;u`Bl{$66A&`RcCyi6`JKp5?w7AmeLE_Tdc^e5Q1Qk}+N1APD(6+_&cerrCr-EF z9|=&TJS=J$XCXGSg=m3sndv|aX93K9W9BdXvhZfH0!|>BAp2k~sE|K!x*NYFgL;^M zxq{7?lI@`Me}o;C_;K9x%JbXT`)e;$U(iP`qBl0tNw>sxEtB?dDWTugBu{gw0%YVq z9FgjLD*=q#5g^`Dy(&W9IN#!aFA#SDt63XP2G>8);Dr*wnV~Co%0iv5oK}65Y0hy$ zvN%eXfg!YET-SS+f{?VS!srluEey3O*jv561?LEd^w80FVmB?*%w%^?I~~vSOmwnB0gJKrtVKuUDcEcP7V#3ssNTYYSdvEHtj6 zQ$$ED^W(I=MVxHqn>O|d z=S6P22|THkWJ8sPslJ(hj+55uZA7MXnkA$3VlloOSX;Mbl_=^m(^MG@(Kw8}xlGdZ zoY{NWc!DJIeDs7yL;1pCM5Oo&4DyA*rW9H_j>@J~Df)p0Kx4RxF^r_)CBrLSHs^*X zaHix6Me2aH%)yN>ZpzFxO5P~SC#k+D?x3iVt+3#tq+GagTb4%|P7{93Ta4L7i?Byx zZj;A`2I;=ghGd;xkh$+H17)(x+{0c{GrUbQY@B^RiT!f1ZMCTis(B2tKO6&C5)!~p zdYQ{3g{SVAQB`1`Flxsr=T2l|p}#Lvu1H|eqUt<0iedj%3R0YTMlX=#yWD}6d*yw2 z-qAA+?4>!EdT}5j6c1CysojQEbT|#VEVif0fpI$Y;)H&Zv0^t9ewAgFmCDc*PrYde zOSC~Ux?Mv=Y%S6ccrOj3prBIExqTd30cHGX+Ez~`Mg;etk<>KS-5VUF61g9jY#z(4sO1pb^0ZPYJpxF#;(++9T==ET_NV=-rvAS=2R8RZ?&NXiIaS>Q5!zR!hk=b zg9_KIFk>v)1MrpnSiQGK7Z5m0jv|9{>qaeWWIDsgLth|{E|4#w0~n>BS|d|_v-BjIk?ab{Q&6&g(X)i`F`DVOj@9BG}zR7e;3+$rW~Z*g-IMK=7Ik`epD*Kh0LbQ{V4 z2oEw|)2_xrwkyK?O1{SX!x8$)JW*B7E0h{VVIi*)u2%e>rysflQhnIg1#F&bRzXpI zCnoeOI15c~H@LwEpz_k{=c%uRB+V){XrJK%JEXPrNV*E|IZek2LW}axVa06mHqPrj zBNPhcCwR=FJW9^tP7RUz-W&B@N(!bql5w1KkqvwK{fw|5ZD4WBD&eBMmVYr{f0nk| z9xsXwgpBGO!j*2O=BYG|J|_CiXn*4Prb;@Pk)UI`)IH0>3;j&!^+YD#yQ(ig$fmRI z%Z$v<;cmiHPdw*ZXq@h8+>_Jl{_Ignq}Y)t5UwWx>+}VR7pP7NB-I-Vi6Y;VWuE_3>yN=qtop*#kuP4a{<#w5e{3|+`pD; zr!5#1mBP3?m8|xbdcxwim}SDeMNhpEr4X4&Rg5{p)~8il9dOppbOa>Kd)hVk9iyN$ zVh`9>){03K2-<(UKZU-BgyDhN@AYFnFC8NUdi^;;&J~%1`w5{VDp#na$(Hqyu`0!c z|I-l-ahB6HnQc?@7nuiGC4Qk2>O=#qs1fH3x);g>mVMpHtMd8sGsmQ#90(%nAHK|=kuZh8470J+7hHggftitYu)jfrNL@=01d*hFlF=mqBqyHxCTmK8)Ke)_DWg z@?g3_u}_b9M|UrK&!BhDq({Jp9@=>Yl4gP=`GSES_~Hc&#{nG2Aw*Lt#qwL1!6QZw z;_vOPgo4oOBm92A+H!9R?}b(q zQoTRoYRCyon8!3QhPz^*Z$ab}uITHa61XJhZA}i)ClhwC!b6lQItyFe1S83#5T_1KC{d`0<~0P)J!2c{D%!#FI0{w+)=R9!obrk2Gfzn73Z9#m0M z1j;!?4yhsJ)sEzW&n;|!{8LjG-&Tf@)4z2gY4k+<9`?(Sbr#vO7y&1bId*{T^4QAp z&d&V~n{Wv2@_6qlsQrc8`~BlzeTDLukrt*;-i;FOKlK${|5v4n=>JibWU1?Dd`{us z5v5X*#k)hHX;3k2CA&)&76Y{*%7npIA!{t`DM!A5C8Tj-&2L^kW-xqP4S6Vi2(B_+ zDvLX{N>T7RK2!F^bVu~D^19E4jV_30as_8JRbdRrN^Ww<$X?=&*ob_(*k>#pQxj3Y^N`s1Dwoj+*8)7SuIXn6TV$ReJeI(us?`{{ zbji5z_OdGm?@#7W&MV@{8jg-(5qhTiCG4;>GlR@q*!PrV-a{<kl7#7FX$>uhYgNXt1M=U`MB^$d?2H4`GWQpdo;7A34S_ ztSn6=05YHtOIs}RkJ0IQd+a9Dj1I26WmfS`tBL^|v_p&8^l94sFUlMy=#D~~#|9RU z^;8td{jkxdLoR*Mrb(%n7U}S4{ob$X?&JnGDTaL{;7LowhWdkIy73NLgR~xMgVvzK zXUByR^(GwwoTeSYBA?D|yq_tYTIcSn^wp^>n*&}2C}>DmV;;iC?u>?0ul*iRFuXAs z2r`Weo+v=7g3V% za4|VGS?SPhQ$Mk&H5H&1u{a!rNHbp{YmqSgky@@~|56fGp88~^r5<{fs5__h67Wh-iDdXgXI=7|_wV#=~;@jYbC&`?UQW8A< z^{rZ2dN^CjEvTAYr)@!0L^yXh{fsm^zkQb4MOwIB4LYLh5ACQ?3Fvt(`NhwK2!H^a zYNN2VXRRa$PLn#Vq2P1>fZDCwH%}O%u_y3v!(8E%IBs-fr7s=K#Rao=uRlo-RQSyC z4ozVjYC7V7V+hIM4Q8qon6Va|iTV?NBiVh|g&Al*N_wTPI$|F>6yi5Fnqb}mgl)D zSWpT&hOy`Z<4AjgV25Xe#I_^x=v&wlGp?ka18%U5X7dpW;qQvjFEzVD2)%%g^wS6N zoL2e3Q9pqN21Ku!e2IufCE!GnzY{&fL}`t9$%yqMz4kxL3-l}H&ODGPLF!#M`J%2ebY)yO8Sf%Lsd(9+*A7Y%o{E(I-Mb@FG1B3`-cD_40RE3^2je75WKHf zg91{X;k(o&r0S7t{@kXpBb-(|5hxRgM(Tk2Y(c_U$tCH{-xOHB$)eGD7w;MC(9n*$ z5v1eLh)7Zz@D_|nI#zh%h=0?A_=Gcq`GSFv01{w@5|uXcvpZ2sbWT|8&WAS7o>oHP zL%OS{9Nh8j=ces_8`&7ZI3=Z~4qP#2g%uw}6I%D}%Xx`Ucos)YZHU znPuS+9qHxo`Qsw9KXogQ{}>bhA9^>b{@u0y7c_iMot*#6H7rYg;}al|Kj@{F$>{=XsitX^$|*pk z78a2tbEQI2WkCTT5t0}2bR$M}c%1E_^q)%M_e<_KxEJj`?w<>D50yuEJt6OCZ+I`e zC+l*;Ujv&CcQ(^nS)I*&oy|G?Ha`wNgM)UV2#w|Odpw~K$qvCoTF^+ymsu|R!S!8! zVkDfioqUB=kq=_t2!!(p8-kCCkU#IHi;-~~=bnj9xo8>h=;#%3$pbsONHr&%9Va&q z=}(2=t+Sb0Az7;(9;S8MU(v4-F>F5-MbYrI;FHFG3NxU=NRxFq4yO;7$=jMf==hdU zH(Tc?Jnt%{0?F+n3&<P>vI(M@OsN zOEoT|EuA@)(2t=qXXL9rZ!)M6tjA}%YG#RF?+-4;yt&Mvp0Q5TakQ&F^PsQ7to{ao) zdz;=so^eE%OYfj0EE^*-MdojuHn)J!(;SgT^9}jlMSd1nO+cTUv~sb4p{QE%URKoe zm=7Lta@a|mrj83n&x<&#deH(4t{T0qi#uT>L&mvNlQxF66jxiDhnBUd-4NtO%L4zw z=9UBEu8*-BtlHm@4yFZY3bJ%f6SD+fvF!?CPfXk$qEBcK>j7sE=K*zf3)Z7q5zzgm`pa@#s#82Skkgm4S?331Dr>#e0zLQl!BWA8QsT73z$G9X87S33lrQ8?UEObQUHqVr&z^;8aHwB1oGt1 z5O}Z$8=uyrgiU0)qVcl_8*@@PvMC-xPI|!x4{By^Wj>*S=ETv6hACYWj#6w+wp(IZoLm z;|7k5-XC1@<%&w(FfTH_zEeBomdu}-ETeM*dcZ<=j75(v8XG~QlBu@vL!E6A9}ZGT z8@(pMZK}R^G`EzUx4II7^fIW4OA%;>;s( zCP0=g`K8XN8+O=u93lC!fA&LKnn5uENmyq|!rK!{R0@nqqV#9+eqx8r2&aSa6lyNr zrViek2z?_Wm)wIGrIwu4t62|;kr*B&;~UApCjvDHLaZoQl^>0BJ%7)W!Db7$*6=#U z%x-}hBXAk7FnsjPu~xvzYMwFefygOukEFD|Q~C5Znt6pzz}-**wu@ge?tP6C&>Wmo zd%;B92-+Lup?gcjbbyuz?G+oj%*TB#>7_g&7geI58jUDu{Tho-b)n6ympY&|3pHsQ zj}M6MD|v>_`}<5Ud$M!2_&n2ru>Vx(|@nw z)z6gi#n9hzH6ej8bTY#WCCEcfStEJZQ`R>{WVy8M_%jr&|&OJFt^`9Ow3#e9W3Fo*G~B6a0hP&HD6J0_r=O z%ST0YhDQ|+4Bu8D)^8*Dq;C~CVA$}Yj1YbF2#lON7zFelYJC?JCaw)eRMXk+pub>&&nT^y(SPO=f^*ZOw zU&G{pYi)$~+yWf@_8_z7q*-hurM% z2=MY4`()mPkkr>J0Yb{fPB5r@21rf&@N)pyZf@9+&2w25$p*9Wrp2)?h0+Y61=S{{ zqS|Y6PMp-8fxj~+OyZy#QJDNvQm%i`wJWaF1QE*NGk5#^9F34kkidjT%aEsvwRimky>^ai+qyzU4NH4ePgQiXRba`5Gpt zXYq$502yo@I+BQZ5P3aQbdS>FyZ<31eD())F|Bmg&LvsHIAtV#<`d0N9U{^!GP-Rn zwmprTXFP^&cildsPHqalnwUK-SBM-%yLl#@V1RjeuT#dEe*j65kuy5eqvMA_*!?^`Ix)4Xz3#I|Zy zOE^#ZBBtp(s9R%ys{v|kq^$$aL*ow4Lq_VE>8zBVOm~kh@l=(U-bq-G4Cxsbagu+2 zQfo>dH7oHYi3ZMt(J`!~-`1A-#onO9-np#cPqgW0GfSk<>B3K8k`v=bH7&BkQy(ID z=6ilM^w)0OTb_CIA23gyFf+n~H3KY0eh~+V&b>T-Yz_JQ1pgXJdEwrM5q~Ou#Q#z0 z!~OparTzw`3vEwt`~{znw}K>b?Wlr#?cw3%D7ulw(;6&1oadL{{ z?PQkcoy#K2FrRkiH(=X$@YG9!>@j=rep8gc z#b<54mtk1#w7Y%vh-iE(B5>NK=iNVz`DF|R=QVCD_PKQO_>6x+eh)=>HCF!<2EJvi z_n{hirL!}&J$0e@#cyQuj~WU42Ybe)J^9lb=u zCoGuvr2DsK&?k3Z^j;*u6C=m=FRhr5xNQQrk2r#gRO4Xr@uX?t4dxiLUhlvl)N%~u z98FDsb(n~XZP7H00d=|_W!mxliE!&_h8^v^NK+HVEJ`oLqNN| z2^a^)w%WNoc{!{@Jw|!0c&|20vt}+*my*BENwjN)gQlV2BAT>KO&}QF3c8$n3r4e4 zi=J?CkOtYZ?vR=S9WFePGFgx2az5#BXMjKMCUY$` z;bdoHjq=dKXabHycOy^&!?U}3q8|j9>zo~awl@zEZ{r&Dw-3HRwd)#_UHJ4d1U2e) zioog6ik)qDYo?SNw@@Cq`j(5+HIeM|oJt_mWeG7(=&cq*%m<|U=_0fzIp&NKL-B{( zi^5o+uUIsQ7B@imHd53ngC&TPO6dZB2hWG@^*XweVymzD2;}W(Hg)S@8;s-&5})e| zfPj}H_7r*)AvXcl2G$6FBgT=GLT=_793>v!0vEp88%QHq&*-P0N=FSQBn9UYI3m6* z9IH;#?y!s2b27>GhR=#ZSJO>splgA-N69IZn*!gKW;hQtow$>^y4})17 z^dQIf(EgC);DJcHon4@*N;NgPmR1M#DG<&V%avrK5#}&86TRPQsdDgo+G^_#q}a7; zWGNbT9S5e4xoQ>tj1ny4BstfH9H`Pjv}vm_aE!ao4Oz--*W zHD{}^V_m7&;Nb+}WBeE0%O#jrN*s>b&AeLqSoXbCb8G1P$B4^v46IRQtQP2yr5E-{ zat>#9+tCSnL-N9pG=HJaDj;xOv*PKwPB^sdvzCgtD+@ygVbu@A=u#MuP~`bX^^3$X za#cM=x`SH@XRz@QKh=*o(t$~jx&#fOB0@?Pv+j~+kgDS7uGrN*u9-{vJX4d`|#3-sxQ;+9qzYYK0lac@hO3*6kp4G?{b6c z)mu3?fQzdzKpN&R%Kqwr>(5BvqvypQ*wp4_-y1XiT=#QfkF`r!Gvw(g!!D}Ordo2V zq?vVQIzVubk8rZ{mZFng43kARfIb})x9#LKZU@C9k>>UIwD63g?LlUl z(pV62m@5>@gfH|0nm2`!42ST?5Oo{VQpk)}uLuibZiXV#nnMstht}ZZb_x7d@Z*RF zw!KgbMZ`9AE`wF3(U8j!mzjzFAVsgxM=EJN2x^zcppK&~uz1@NC;P{dsW%Y~3m@1N z3txYy&rW!vBR+q@nN(LSxUF77f7B9?29H0$K`(ji>!4I-{0_!b>wt|pNL0{O(hgsT zjYy%Y@B~l-CuL|jdpg9yl){}ZKSvfG3_FoIsJWIoJkqe>g49o@zZRgZP?SQbKa6d< zZ_Gu%bHVbtB4X(x5+vRsVA%{K5)`CM4!@vj_Ggp0T1h{ z`0KeR9Gol4kpy``+CChvu?{iG!Ks}iQ@$`H;&V;dj3?CP(kJgdmrypnGc#k&Y;NY` z)rwu3pvf_Z-$E9X@8z7mQM3p!D2o*6$Jww@_DjDuR%RE%9qye1W;c6#(>*}z)(zA1 z8+Ly@DQfc>h`!&Gol^!e#^SN8;WAq0k7@AnIfFrIV5`XWgA$4_jJ)H7K6?sxC}waW ztCMB6(+uTh;Urg@(J|NwGK)+VfxYdLwhobZMCAumF2M{eVNX0#O4#}!+ko* zv382P2d^kExDkjBWec`L?l6PmVd%HzN{c=I|Hk(U)S=_;pG zZRchsL&x%OFiPDSpW3DZjSk-;cCjYT6B$a#Cu}C+)~#{8P8P z%mUs_W(};@)Oik)>(G$N zL!Gc~e=@%^KcCw?e56IONeJ%?)x@>{Z3pTP!M3;{?4~Kec5Zz#2j3 zz+X(ky`}h`{_2lf#N#;rE+6io!)+woXc%Yf&pN=1s1jwd49c8iFPWye(c=-+uuvOY z=GheyryhEOC%bqPH;@l5)ZdD}+7bo{2Dy(w9&RV>vr7!4kTI=V?dvcL(YRFm#rtqP zg*uNOjymh z9T$f{h=Gs^^W>rXvTJLro;Ms`jhJpuU5VvC%)o%r2ZOb#&ISIqXl8Ok^ z;*GX2QU&-Y%K}6ggLdiN`G9OZBck|I%q=l7e+5lG!z3T-T%Y0j8x3Sp$*06fg*{6g z{oo}N?`Tt~Z1VxQ3a-BJ`U;OYjBkbm8jhmCh~Kv?x(1Z98U~2DJRsq3ik`Br57+aA zmEfkrAGuNcX9|2$PpGvESnz}qN?-4@Or)^E@5CAuU_5-R3e>MGrW0;G2GSMg7kGIuMnch^dPWT`e63%caqN)_+QuNeOf{sQ8^x_#%IOsQ#%6_7{i7-TVPy8kv4!Nf@hyLmg zF$mHla*w|(Ikj1ERC!lH!S6nID>{2C@I71h`(>fIftIEfw=_HDM%<+*LVfHl>XlRE zsQ2da7ow!PO^`pxKY4|bg$K7ePP6*HbFxhe+Zi<^HS3EQyE(!hd}sUtTD}2kDB!q{ zYN@BtV5ga=jyOhx*YEuS!}N*rnvhgBgz1R_+PVM4D8Ct}ebtf^x<@GqP=j)f`ND4NPctKg!K`>QaZ<7_ zYD*5I7WP$*R51x!6#)0wHR9)s2ZiduVToNXR&y0knL;-uf@*UiO-)cf59QaBh?#cb zgN^o*o6G!{Viqmc(o(VK;XKfCJEfdS@KG~Z8tI=!8aS$mug50--@_Y3q9Lqs(+>?1 zdhwS>*0$j*d)Yl_(C@;On?x4COwU z0unW&Fo#Dwj)Az)Dq5xyV<=@GLQ4crVn(iP~Ced}I8}FC$PVt4H zX4Kvwghh`w-+l58=!;8=6z;{^2m>S#Ecppj7MpHsdV3%os~u!KY-E9~o#$8E5XXdlq-5<}AW47ci1JN8n*j>2zIjp>BLb3(n)NX5V zcJPZ6rthUt$G{rq_=dTci&aqYRpAiJAfOfke^_}04(fPBUB^qfNOLnjOLeHi>6ans zXBV`Aa~EEq+M1q3`lMBTf~|3%%bci9*$qY0tNN6P93pkWBGaC8EG{NrZ(7N$1T@7c zx4}L;WCG3t>+cHYAJX;CuG7&S5V^mku)7zF;1r<@+{Z;agUwvYi{{urxE!xVXA?)# zmx>dqTzKTzIS!nEcNi`eTY63Ad+7xqAW&H?bHE`KQz3J?qu@&5(b84qmIipn+m0vL zC}^x$YHLr${rtAAay2UzR(cjRdiwXbUv>1|cawQ6^QEZ=_M%p&;6!xD$r0-JPU#a-sBt zs*&5>mSt24L=GhC%8DYtRH-{cSmq~)N4=qvBJnjTMp0@bvkwM<0els%op4n7{%dFLN$ z#%kL=IG#%FH#2B(1GK&@uSF*}L^~cYl!qAopspFM<7TAsZUZtsRtE!2#4d`|MT9*$ z*kZr5)K`v+(qF*7xrwa_-gWDnch!$ytGkw!{(H{%-w{S-w|_&oCPtX$~sPvN`-5U_@e)c+b3I~ z4_G)YXhTqb0QOIciXTq~--*m*lc&4+ihj{IrX?IX=wO&sN361nj|gUz@#3Z**hw+u z&kvPC$FsQnwq5^+6yGeo_(5HHgDPzcrEM$TzR=+g0h?@p&V{3c|5q&h2?AgIx6r9= zZf{H)NtLhfl0bWuO8Y){N#lwK>)&U;@x(8hMK7AgF5JZ~9z`!6#V(LUFBrF>#4iN5 z1wAi@To{Bq5vu#cKOp`!ugMCOl959B@+DUApSBABq5Jf|r)K}1K0q#I_o-8Ga&>S~ zHFUQA_fFx{wP)@tvdasnDZp;M}gMZ)dgN>R3s$-}>bZQ3JFCQ(M1N>ZA8+yVyfa=A-k{yq+eR zANQphAT%`OLXjZNgyl!f?|n>FOku@25_igU!}%j>X_}3S*?u%r&I|5NwvrI^oI87? z=F1dsNiMEpxssqM>n>V${?>nz?vsR)4rXhTei%Z5y22~WG_75PrxIrx-!~N^#e+!6 zZEogOf{iE5e+ZwOiBrm&bj+j-#WFJSmB^8>FME=xKvx6d&I+)NsMLsmSr;_G<{d23>(8Pi()1n?-T_lx4M&nG5q!BdF#;6 zO$k+j9)6iuAfU^Xq#eRmQGm))$5ppy0j;iv7^-Ysj&-q{6Kc+_ghe7xMulMQiH)ud(%^6J%|D7YnF2e=_u2i){ zl{&V7-m>v$qH?Wbjb?cKmnKEWl}upp1%;g(%9Z;y!%NXPm%vEG-cPdWQK~)on{A?< zkKFuYcaAl@%ErRUr&xaTsprY7_gDFcl(Vf5=$~LY{juF$xE12+0!}xz-vkg#xUl=s zup@I}MVRq>4WF^2_oVQ{_7M3nBp6+uxoAj$;77)M)T)vFiruwVsWj0;j>4pn2Bp|h zh8Q-_RAp494(Rg_D^(8o)%%BcH!u*|Iks@-?S(00c@;l-80nOz^>T?9&2#8*+pIBd zA^6|KietGiSBl2WM+zb%^;uYV6KT&`NYbbqs(X+D&BttVm3B&s3G8r9m){W!ue9sB zt90#TI19_FxM{+(%YPapru8zUHlkX6(CL{PDWu#pBW)aB9>)uu2Z4yY7~rEd)Dm1k^vIV8 zPMC|))-63NPFn=oU_S7w!FG&EqnnnCsPPuRUYJ6Ev9T2XZDhpU{^G0morNav{U~x= z%Y{Y8YJ?hBcpsxewx}rJfsmg8Uc;?1cMVuW2crahGNz;`0&yP7++}5%?_W%3T`?b$ z8|box3>jI(zNV?DyZlC4H#a0Ti#;PZCa8Q6T4&x`cY5f+&`2DhXQ>5ico@fErnkXW zE5Z1DP#DOLcg7D$kRN+Sl`Hbr?c9OBvDscH7Z!4Nn%sW-0pQF|>52+>(qarvV}OtX z>_K_2oN>k9EHWxq!48%zC!J*y6kV>!eBiVX)rrNl^UAH1-PcPS{+O@G#mNS?JH`Mh zDi&%G&)CW1b~_vIUX&e``&hXEjeO<1+z3;95D0%+FI#&+R9h{F%Hitwo#AfA)^lDb z1Lr(+`pAy=2$&@V)H?Ea^g4$0wRG$fsYf_xL&bf9%J7!z6qC2GRWYutpS}>$Xtw`M zl=>k!>mW{Z(vrqi@}$|*RA{CwG$;Js0@#;iWGVvyK+xx)2<9eOSbA60d``9l&f=ZP>6eoEO7GJdz(-D!}B@S4NOpm(fD$z#=NR8|Rp> z36Pz?V^z5C^DV| zUpW7$|18dqv;}^8;H0FC2Yw@oO*lnf4#^@*v<^DH4PjrMf)X$A0BWu>#o?@*`#5U` zc#N&iCJKf5-9*HE0bEtCi$7S?s%u};Po_h_$g&R05@QI1zEZH^E~JCuCq=C4fF2DF#tH$sOy(5$s- z$5f^Y6;tT8RDR#pbP>w(0x0IB*C{FS8%)xSv42jm6I{=}fqFEPA( z=s1f#3~Jnw^wxITnchK>L-x_-9CMvwm_V6Q2iF_7*iM;N;M%kX0Rs-LOYCgBLf3Sr z6e!9!?ZfmTjVL$P2NL;vw=W*RQmdeIY*O3=q5s(ROOq1bgP}QL4_xme(Aeba1Aox?&8H)T* z#S_UtExVju9sVWeWCZ)mC-3u@Up^OSe|`REsi?%~b9*OqMk`l4OP9~9gXL$D#b|10 zZfR%A_+Ni0{r7EE3nzQ`eaT&?)LrMmkju%C1t5cU~Wr2uMw5&ohVbqT_NfZ8)i(i;UO53 zsIF*FmR<4hAE0!tX$|mMT^w@`*-9kwr7pce!g8ge7WHiZtF<$Mi|P9U_}J?&Yf-e& zMrhF@S}g60_EM5$YNnc+7EQazlBkG6ep#XjDO(F!e?*d`sE8K7ktJIx5hDNdW~Q1q zy%}%H`+a<-AI<&VbM86kp1ZtzYwm2hCa-&N%DUGy9c?qi5BXXzSFK-Pd~SmH%|nIe z#09lauT{%f7IvL1e^DW&K1*nRo5iCe^cuD5jL-~q;RJ)XTcg)hS#;65K9R`F1(Dz$s9b?g^kfm;2zZkONxTfLr=ysTaS(e~ho zR*4V3QrC@glQ-|Qk#%;P7KDvF;`QM2*3hSj0xZZniJYh~m`LdiO z|MAbJx2E0D)~w90rc2Z36}2`^k-F;FJrYUhCBo!u??d|K%`^S7#bZF$fnx-d`7c# zX|6|Eu7U0B@&^w(I--7sSa*JijxPMFv|;l%clG^iG~(-2Ptli)lq4lSylpn-slbek ze{MU7?0m5&wn`~{yqCsLwfK@xg|TkMH|9zj3_HFzF>3U1PlvNdh??`R}o)UZiQbU{i$3bm!e^rH7`(s>2R3J3iZ z`?*!=fs1dQG1Sya)lyZ}UKASY6RdmaAJZ|1Ef1L=FOrU39+`Of&GB-I?c*?tl9G>Q zvhrb_Zjp<_ZdN8qRFF(>n!0N&j8F^F+yoS&&I;NXVD=_vPP=1b zSAO$_T+gW&%2RKYW>NCAt*=lYtQfJiYvaWoF)lgz^^k;Z zVkGbFVb-b|^5nGYf=nfo?IVgQbSnj0@`?Lv*2Z5+i99Q$`8_YCWS8@u=9Mw$o?47tTMqOI>_kZVOb}!a6OCBXGS~%y_>f}ckj2`TZ|6E5qGrc;l;F9W# zhWF?5W_f)+k>*~Td%xpY`NEyApT!q_4%Z_I9`egNQoC$v!;AbE&)kOJJ9lkHs?g<* z?`qp6pQvlPtswc;nHvsUcu#oLJ3X=GlAb>0=|BA4s@|V=KK$kZIeb>kG3m;{H2Np) zoX3Jk3(FI#BCdN$R(#Z2@>-=O=vV5~ld->qk~SW6jeF+pIMUy0`||i&@ol+_wk#=W zXnyo?^Jt+f%LJCLXwCjYJ8ow`B1u?&g#NAF+OPHWY8J_5wtiPuA;&D9^Ldqv`ueKG z6Lp&O)KJ~*Cas?-^lug6ief)ZUEEHdu8`St=GMpSF>gi`kFVP!KWm@ssIOt#>vt~p z4qsI=Iy@<3y;1Gka6uJy>S?W}D$#Q(;QiLPmz|I@X^wYEI)v-#F>BT^2Do{{<2sbuk|sRjwEGu9Em<<-v@ z`#SYZxXihg^t~pD?J`EOZ^To)Ot;>NNwW7guRr{;s!cn2YGY;Fj7Il=BWAhd|CQ3vf;rJDhgZbynPS2l`qIZI6w9>h+Rtp%!KC zzZ$Z)X21qrJG&hDb;f(?onroRPb?%Fyc`6jPuR65oHeg{?-`zFB{|ONkcfJ`-HQ2U zXYUz5KXiB(B|a{2bnK`X+4iH`pzhx(O{bgZJjp*=Us_jGXTPfU-~E*ZlTT$ous)y| z;2iDO`R=LQ#g93Y(l(xawIkN4RboPT68+4WDPgXu+43gxr&F)HZJ6=F=GBf!oxqu) zRc}hA-pyZfH0)F`eSzz2Z(XUxFc0B{S$7}aUG=WP#AAC}Qd-$+w{&`$jnA|K+sI8M zjmY;$(^jQyj{8MdTqc@4T{1^_N5?R$;;GguN8Ud4_1W2^>Ng}QyY{DK#@oiu_o<(R(tVjy)8q7hgt=FB&Yh>b;F#WTDVHqC z$Db;Hn_abt%vg9T(R@q$A?c)-m&5in8?p=wih z^R|YZsh0CD+R!E)no}UO>ww)d(Zf03ZxiOJtS*^E&GJrYIOU+Rs@UpF{W8ap5iX*E zb(7AiWNUjEPE{zB5iylCv=kj-D{GsrxK`}9(B_SFkEmGdZSfXcE~x(4*)&{AaIIIH z?x2MzUD8ae1G znOPaDbl>a$)hFW?s&-Etu#ZOv6^=DB{zIX>d7P)MNr-E~?Zo)3JnO zRjy|Q)7!e(r6UFQG!hiY_5^_lT*pZsj6*p3HDJswWv_Jb`!CQ6dTeD82t_zbGa!0+ zQ~bSHHODyTgHz#-!mo(FfIAEdM<&_(o<}NwuDk)2NTXT7HK%Yr9Si~edk+KxGTe9y ze}%2GFd6Ds1!$1H5Q5M`=7A^vNoA~iRPhVx`FynQ1UNrM23)|RPeS;~99}{DBaT7? zhmSzSG$H$w;nb9XzLSssAZUA2$}T@p?_3z5BU^#{o*EcL|A}nmAL55c{KtvV?=WgGHa%YX9M1F%o;frdOBk%PE((ef)m{5-^+q2R4#o; zgiq_~5CH-q6?!*xpgeg5Cnv(6=tuEDq#?pYSr8tzc8zuQu>rNt0<{{W)Ve#1FDhb} zWPcL$k#LU*#AP|l021pRE6y$<>!7h#69f-mcy|{aoSkw8#l-dq>dUWt-+_ql!Ryhu ztn+-~@cG0`_p}ppAR<45)YAZ^(V+!=;jBP`c$#qbHUD#$0O$uvB^sD^g)bli!vl1B z_~Eq-w4K{D0$~A4!n;NIfW4aJ;SZ-rEu1Mogg|J4KN={C%>#TCrXeCz!`O!L)9!ei z1K7Q6zf9;!1wI0+BV(rKe~QdDn)zF+!49Lq4v`7&zGr{U0C2rJJ8%EDf!JMxBpGdKb88lclAf5UIgrD;327~Lp7s-_9Pok28kPR5V+>*b% z1KA>@!TTa1_d<7pn;HgD32Y5#d24Tatsl z14ukv;?i>AuO+~WgJA~R(;t4r$6_LIClj9(0yo)!hbTb*zNAkw_(^cc5boI}Tl&QW z;|$w+=^_Kf#??V0ON*sa!*Z<6l{nv{oDLu)cs2p`G{f+d;6 z$j#8Mfep0KZ;DI=n>5zv1bT_!10obwzJdqn9_O3k08T#^0<|Hk={yzi1A7vsUK{0M zoj%Ju-iv|XBWE6?iHa~o!F4FYW-N$YOoKs7$SvB$WDv4#All>t)ea@&1(iV(4Tw~# zJJG|JXP{X==DxJ1By24U;mqx0RR_n%HlkJ3gpL=`rq^LCjZW4St?~1aTY6!B3GSL> zT?x;#12JoSms<#)G6~XB7}~Ktn;iIO_HCR)w=lN6ALpDLQVFugLjRAps0%CkXX7Cv z;(;+S9$D5W^Wz(p7m-5q2!Q#BhFI_MnQhD0y-je_psCtSAmQOV-I%(B5T^n z*#%VKV5_U-wWMzmINuH!tt>%R{(3Yn7HfpWbiqHRGtazdS!)1I7sf2;#%bBiKg~Lb zL=GYc@ifJi%7IJi&_9%cKJ`)Z?b(Wt*wak-^f|V0j_P7?H!Dck=An46cHrVM6=_U? zJ07_-8BOf9#3HzQ+Yn|5(B`oGZk^Fa&=h?wY9P&J(o z7N_pG1?ST@%8YM;FRcXoK+lOeWDEw!>L4Nl$=t}nuVO-rf$Z9koRs;O$ZFUsjuKN7 zxC`V}{m7Lk{}Ndpn>;1?%18+?Bw1CMb41zd#GJoF#^xrh@vNkVcw||h%ny|pJcwk*iBE8u za=)ys@<7q}a8O(xl!}g8oA4E==Lu7sMz9vfthOGB7|3-kYRJf$(dz(q0bol|wfB07 ztM>Y2SPLfOq$Ss#xZw&k2cV%Ni`{EnG)Tcn6y)4~qfjC>gmHp@@9Yb<(F=-GbDu(w zcOHfaIw%2Ung@jBmcb0&aLVio*t#Pmxae$&)P@%XYd0ZCD&02{!4^ud*1~2uMCY?G z{y?`{!WUdDRx-`LqQ-rdXye`W+WWwtOra}9PksFA;)jMrjGi$&m$*2y>GOslFpzAB z$o{C-`aNVQ_Yl?ROw5DS5T9iYj^*sgp2+xw5(<95AK6Kqm#qk;sb{n1o#C8z<7halpKLA zq$c%CChYqr%!l~{YqrKD5Qa?~IMj z0mHH7jQVfHv4^1F3K%FlqvR}A#)aw&M(l3l4Xb#}_X`n^B9r=l3%eT4l#yk>p&Ak( zwLPjD(rSOL8cfH=uE03o?W$VP)^6ZH%TX0bpEuYFfSFTB&>Q)C{Yedk1Ge(c;8x*a zdFVBW)e8q*3y5dzO$0FxTNNK)eDbmccT4U!RljKQAS;0lym8^UTmk4DCLTF*!JkIB zfT*=BW{igZ66HdL~LE}ORya82vk>CJupT|eZp$+WNfCzWx?@MkRgnLu2BocT;qs~+0zY& z2EYIqS{56VXTHhqE@TFVkoM@JFkfA8VUS%+v_PT3jkhqQMW+e5_zENNsw}Kq}EmxTovz~NOB!#a85$j`QzePh6E#uV%&k{_`*@6Db1q{?B6hQtuk}0E3DKVbD}HF(-UTb;T&DrZJu5OQ?ATsWu~~Ok zRIS(nBF2L`qJz=rSiV_(eJjtI_{UL#CE>tS0p=={T07!!GlLnUOrBRJBWmdTHEj7C z{12ZmgSvP@Kt@l3eB1sv>Vi!*XnZsM4M@Kf!ZBLwTDx#jk(m}lN)TgNCqmAE8bBi> zb`ASny}5O^uF-20^T0pfiEvK5>`56c6I;sNc5AL5htTs0^ovg5FC88LaTzRxP{|Dc zg}pi8!$@AswJT!3of|govOV?b{KK&YWWS@=j*S4vJDkPI;Oo|J&W?%w=2U$YzZK@D za0CiwC+Hc_JI%m*iIDxWN3_{Kh3P4ryg%H|$|)oJEl%jUjg-sym|QQF@qq{}vKq%05z4wi9O2mE$GCrjX z9axybuhTv%wsc4wfq>0;q*=?<1vUDN1Iq8K-8M@{An6)m6Z|&>-WN;!fhh3*!|qG! literal 0 HcmV?d00001 diff --git a/depclean-gradle-plugin/build.gradle b/depclean-gradle-plugin/build.gradle index fea0608a..df113766 100644 --- a/depclean-gradle-plugin/build.gradle +++ b/depclean-gradle-plugin/build.gradle @@ -5,6 +5,12 @@ plugins { id 'maven-publish' } +java { + toolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + } +} + group 'se.kth.castor' version '1.0-SNAPSHOT' diff --git a/depclean-gradle-plugin/gradlew b/depclean-gradle-plugin/gradlew old mode 100644 new mode 100755 diff --git a/depclean-gradle-plugin/src/main/java/se/kth/depclean/analysis/DefaultGradleProjectDependencyAnalyzer.java b/depclean-gradle-plugin/src/main/java/se/kth/depclean/analysis/DefaultGradleProjectDependencyAnalyzer.java index 80ca972a..85c1671e 100644 --- a/depclean-gradle-plugin/src/main/java/se/kth/depclean/analysis/DefaultGradleProjectDependencyAnalyzer.java +++ b/depclean-gradle-plugin/src/main/java/se/kth/depclean/analysis/DefaultGradleProjectDependencyAnalyzer.java @@ -22,14 +22,15 @@ import org.gradle.api.artifacts.ConfigurationContainer; import org.gradle.api.artifacts.ResolvedArtifact; import org.gradle.api.artifacts.ResolvedDependency; -import se.kth.depclean.core.analysis.ArtifactTypes; -import se.kth.depclean.utils.DependencyUtils; +import se.kth.depclean.core.analysis.DependencyTypes; import se.kth.depclean.core.analysis.ClassAnalyzer; import se.kth.depclean.core.analysis.DefaultClassAnalyzer; import se.kth.depclean.core.analysis.DependencyAnalyzer; import se.kth.depclean.core.analysis.ProjectDependencyAnalyzerException; import se.kth.depclean.core.analysis.asm.ASMDependencyAnalyzer; import se.kth.depclean.core.analysis.graph.DefaultCallGraph; +import se.kth.depclean.core.model.ClassName; +import se.kth.depclean.utils.DependencyUtils; /** * This is principal class that perform the dependency analysis in a Gradle project. @@ -312,28 +313,51 @@ private Set removeAll( } /** - * Computes a map of [artifact] -> [allTypes, usedTypes]. + * Computes a map of [dependency] -> [allTypes, usedTypes]. * - * @return A map of [artifact] -> [allTypes, usedTypes] + * @return A map of [dependency] -> [allTypes, usedTypes] */ - public Map getArtifactClassesMap() { - Map output = new HashMap<>(); + public Map getDependenciesClassesMap() { + // the output + Map dependenciesClassMap = new HashMap<>(); + // iterate through all the resolved artifacts for (Map.Entry> entry : artifactClassesMap.entrySet()) { - ResolvedArtifact key = entry.getKey(); - if (artifactUsedClassesMap.containsKey(key)) { - output.put(key.getModuleVersion().toString(), - new ArtifactTypes( - artifactClassesMap.get(key), // get all the types - artifactUsedClassesMap.get(key) // get used types + ResolvedArtifact resolvedArtifact = entry.getKey(); + // all the types in all artifacts + Set typesSet = artifactClassesMap.get(resolvedArtifact); + if (typesSet == null) { + typesSet = new HashSet<>(); + } + Set allClassNameSet = new HashSet<>(); + for (String type : typesSet) { + allClassNameSet.add(new ClassName(type)); + } + // all the types in used artifacts + Set usedTypesSet = artifactUsedClassesMap.get(resolvedArtifact); + if (usedTypesSet == null) { + usedTypesSet = new HashSet<>(); + } + Set usedClassNameSet = new HashSet<>(); + for (String type : usedTypesSet) { + usedClassNameSet.add(new ClassName(type)); + } + + if (artifactUsedClassesMap.containsKey(resolvedArtifact)) { + dependenciesClassMap + .put(resolvedArtifact.getModuleVersion().toString(), + new DependencyTypes( + allClassNameSet, // get all the typesSet + usedClassNameSet // get used typesSet )); } else { - output.put(key.getModuleVersion().toString(), - new ArtifactTypes( - artifactClassesMap.get(key), // get all the types - new HashSet<>() // get used types + dependenciesClassMap + .put(resolvedArtifact.getModuleVersion().toString(), + new DependencyTypes( + allClassNameSet, // get all the typesSet + new HashSet<>() // get used typesSet )); } } - return output; + return dependenciesClassMap; } } diff --git a/depclean-gradle-plugin/src/main/java/se/kth/depclean/utils/json/writeJsonResult.java b/depclean-gradle-plugin/src/main/java/se/kth/depclean/utils/json/writeJsonResult.java index d8e463a2..6b0b05aa 100644 --- a/depclean-gradle-plugin/src/main/java/se/kth/depclean/utils/json/writeJsonResult.java +++ b/depclean-gradle-plugin/src/main/java/se/kth/depclean/utils/json/writeJsonResult.java @@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; import se.kth.depclean.analysis.DefaultGradleProjectDependencyAnalyzer; import se.kth.depclean.core.analysis.graph.DefaultCallGraph; +import se.kth.depclean.core.model.ClassName; /** * Uses the DepClean analysis results and the declared dependencies of the project @@ -215,20 +216,21 @@ private String getType(String coordinates) { private void writeUsageRatio(String dependencyId, JsonWriter localWriter) throws IOException { localWriter.name("usageRatio") - .value(dependencyAnalyzer.getArtifactClassesMap().containsKey(dependencyId) - ? dependencyAnalyzer.getArtifactClassesMap().get(dependencyId).getAllTypes().isEmpty() + .value(dependencyAnalyzer.getDependenciesClassesMap().containsKey(dependencyId) + ? dependencyAnalyzer.getDependenciesClassesMap().get(dependencyId).getAllTypes().isEmpty() ? 0 : // handle division by zero - ((double) dependencyAnalyzer.getArtifactClassesMap().get(dependencyId).getUsedTypes().size() - / dependencyAnalyzer.getArtifactClassesMap().get(dependencyId).getAllTypes().size()) : -1) + ((double) dependencyAnalyzer.getDependenciesClassesMap().get(dependencyId).getUsedTypes().size() + / dependencyAnalyzer.getDependenciesClassesMap().get(dependencyId).getAllTypes().size()) : -1) .name("children(s)") .beginArray(); } private void writeUsedTypes(String dependencyId, JsonWriter localWriter) throws IOException { JsonWriter usedTypes = localWriter.name("usedTypes").beginArray(); - if (dependencyAnalyzer.getArtifactClassesMap().containsKey(dependencyId)) { - for (String usedType : dependencyAnalyzer.getArtifactClassesMap().get(dependencyId).getUsedTypes()) { - usedTypes.value(usedType); + if (dependencyAnalyzer.getDependenciesClassesMap().containsKey(dependencyId)) { + for (ClassName usedType : dependencyAnalyzer.getDependenciesClassesMap().get(dependencyId).getUsedTypes()) { + System.out.println("Used type: " + usedType.toString()); + usedTypes.value(usedType.getValue()); } } usedTypes.endArray(); @@ -236,9 +238,9 @@ private void writeUsedTypes(String dependencyId, JsonWriter localWriter) throws private void writeAllTypes(String dependencyId, JsonWriter localWriter) throws IOException { JsonWriter allTypes = localWriter.name("allTypes").beginArray(); - if (dependencyAnalyzer.getArtifactClassesMap().containsKey(dependencyId)) { - for (String allType : dependencyAnalyzer.getArtifactClassesMap().get(dependencyId).getAllTypes()) { - allTypes.value(allType); + if (dependencyAnalyzer.getDependenciesClassesMap().containsKey(dependencyId)) { + for (ClassName allType : dependencyAnalyzer.getDependenciesClassesMap().get(dependencyId).getAllTypes()) { + allTypes.value(allType.getValue()); } } allTypes.endArray(); @@ -250,8 +252,8 @@ private void writeClassUsageCsv(String dependencyId) throws IOException { String key = usagePerClassMap.getKey(); Set value = usagePerClassMap.getValue(); for (String s : value) { - if (dependencyAnalyzer.getArtifactClassesMap().containsKey(dependencyId) && dependencyAnalyzer - .getArtifactClassesMap().get(dependencyId).getAllTypes().contains(s)) { + if (dependencyAnalyzer.getDependenciesClassesMap().containsKey(dependencyId) && dependencyAnalyzer + .getDependenciesClassesMap().get(dependencyId).getAllTypes().contains(s)) { String triplet = key + "," + s + "," + dependencyId + "\n"; FileUtils.write(classUsageFile, triplet, Charset.defaultCharset(), true); } diff --git a/depclean-gradle-plugin/src/test/groovy/se/kth/depclean/DepCleanGradleFT.groovy b/depclean-gradle-plugin/src/test/groovy/se/kth/depclean/DepCleanGradleFT.groovy index dee3631b..307b34a7 100644 --- a/depclean-gradle-plugin/src/test/groovy/se/kth/depclean/DepCleanGradleFT.groovy +++ b/depclean-gradle-plugin/src/test/groovy/se/kth/depclean/DepCleanGradleFT.groovy @@ -17,7 +17,7 @@ class DepCleanGradleFT extends Specification { File emptyProjectFile = new File("src/test/resources-fts/empty_project") @Test - @DisplayName("Test that depclean gradle plugin runs on an empty project.") + @DisplayName("Test that the DepClean gradle plugin runs on an empty project.") def "pluginRunsOnEmptyProject"() { given: def project = ProjectBuilder.builder().withProjectDir(emptyProjectFile).build() @@ -88,7 +88,7 @@ class DepCleanGradleFT extends Specification { File debloatedDependenciesIsCorrect = new File(projectPath3) File generatedDebloatedDependenciesDotGradle = new File(projectPath3 + "/debloated-dependencies.gradle"); @Test - @DisplayName("Test that the depclean creates a proper debloated-dependencies.gradle file.") + @DisplayName("Test that the DepClean creates a proper debloated-dependencies.gradle file.") def "debloated_dependencies.gradle_is_correct"() { given: def project = ProjectBuilder.builder().withProjectDir(debloatedDependenciesIsCorrect).build() diff --git a/depclean-maven-plugin/pom.xml b/depclean-maven-plugin/pom.xml index 867f12a2..ae901402 100644 --- a/depclean-maven-plugin/pom.xml +++ b/depclean-maven-plugin/pom.xml @@ -1,5 +1,5 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 @@ -16,6 +16,7 @@ depclean-maven-plugin + 17 target/site/jacoco/jacoco.xml ../checkstyle.xml false diff --git a/depclean-maven-plugin/src/main/java/se/kth/depclean/DepCleanMojo.java b/depclean-maven-plugin/src/main/java/se/kth/depclean/DepCleanMojo.java index e8794fa5..0c527810 100644 --- a/depclean-maven-plugin/src/main/java/se/kth/depclean/DepCleanMojo.java +++ b/depclean-maven-plugin/src/main/java/se/kth/depclean/DepCleanMojo.java @@ -17,33 +17,10 @@ package se.kth.depclean; -import fr.dutra.tools.maven.deptree.core.ParseException; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Comparator; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; import java.util.Set; -import java.util.stream.Collectors; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.io.FileUtils; -import org.apache.maven.artifact.Artifact; import org.apache.maven.execution.MavenSession; -import org.apache.maven.model.Dependency; -import org.apache.maven.model.Exclusion; -import org.apache.maven.model.Model; -import org.apache.maven.model.io.xpp3.MavenXpp3Reader; -import org.apache.maven.model.io.xpp3.MavenXpp3Writer; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.Component; @@ -51,21 +28,11 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; -import org.apache.maven.project.DefaultProjectBuildingRequest; import org.apache.maven.project.MavenProject; -import org.apache.maven.project.ProjectBuildingRequest; import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder; -import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException; -import org.apache.maven.shared.dependency.graph.DependencyNode; -import org.apache.maven.shared.dependency.graph.traversal.CollectingDependencyNodeVisitor; -import se.kth.depclean.core.analysis.DefaultProjectDependencyAnalyzer; -import se.kth.depclean.core.analysis.ProjectDependencyAnalysis; -import se.kth.depclean.core.analysis.ProjectDependencyAnalyzerException; -import se.kth.depclean.util.ChangeDependencyResultUtils; -import se.kth.depclean.util.JarUtils; -import se.kth.depclean.util.MavenInvoker; -import se.kth.depclean.util.ResultsUtils; -import se.kth.depclean.util.json.ParsedDependencies; +import se.kth.depclean.core.DepCleanManager; +import se.kth.depclean.core.analysis.AnalysisFailureException; +import se.kth.depclean.wrapper.MavenDependencyManager; /** * This Maven mojo is the main class of DepClean. DepClean is built on top of the maven-dependency-analyzer component. @@ -80,19 +47,6 @@ @Slf4j public class DepCleanMojo extends AbstractMojo { - private static final String SEPARATOR = "-------------------------------------------------------"; - public static final String DIRECTORY_TO_COPY_DEPENDENCIES = "dependency"; - - /** - * A map [Module coordinates] -> [Depclean result]. - */ - private static final Map ModuleResult = new HashMap<>(); - - /** - * A set to store module id. - */ - private static final Set ModuleDependency = new HashSet<>(); - /** * The Maven project to analyze. */ @@ -182,614 +136,30 @@ public class DepCleanMojo extends AbstractMojo { @Component(hint = "default") private DependencyGraphBuilder dependencyGraphBuilder; - - /** - * Write pom file to the filesystem. - * - * @param pomFile The path to the pom. - * @param model The maven model to get the pom from. - * @throws IOException In case of any IO issue. - */ - private static void writePom(final Path pomFile, final Model model) throws IOException { - MavenXpp3Writer writer = new MavenXpp3Writer(); - writer.write(Files.newBufferedWriter(pomFile), model); - } - - /** - * Print the status of the dependencies to the standard output. The format is: "[coordinates][scope] [(size)]" - * - * @param sizeOfDependencies A map with the size of the dependencies. - * @param dependencies The set dependencies to print. - */ - private void printDependencies(final Map sizeOfDependencies, final Set dependencies) { - dependencies - .stream() - .sorted(Comparator.comparing(o -> getSizeOfDependency(sizeOfDependencies, o))) - .collect(Collectors.toCollection(LinkedList::new)) - .descendingIterator() - .forEachRemaining(s -> printString("\t" + s + " (" + getSize(s, sizeOfDependencies) + ")")); - } - - /** - * Util function to print the information of the analyzed artifacts. - * - * @param info The usage status (used or unused) and type (direct, transitive, inherited) of artifacts. - * @param sizeOfDependencies The size of the JAR file of the artifact. - * @param dependencies The GAV of the artifact. - */ - private void printInfoOfDependencies(final String info, final Map sizeOfDependencies, - final Set dependencies) { - printString(info.toUpperCase() + " [" + dependencies.size() + "]" + ": "); - printDependencies(sizeOfDependencies, dependencies); - } - - /** - * Utility method to obtain the size of a dependency from a map of dependency -> size. If the size of the dependency - * cannot be obtained form the map (no key with the name of the dependency exists), then it returns 0. - * - * @param sizeOfDependencies A map of dependency -> size. - * @param dependency The coordinates of a dependency. - * @return The size of the dependency if its name is a key in the map, otherwise it returns 0. - */ - private Long getSizeOfDependency(final Map sizeOfDependencies, final String dependency) { - Long size = sizeOfDependencies - .get(dependency.split(":")[1] + "-" + dependency.split(":")[2] + ".jar"); - if (size != null) { - return size; - } else { - // The name of the dependency does not match with the name of the download jar, so we keep assume the size - // cannot be obtained and return 0. - return 0L; - } - } - - /** - * Get the size of the dependency in human readable format. - * - * @param dependency The dependency. - * @param sizeOfDependencies A map with the size of the dependencies, keys are stored as the downloaded jar file i.e., - * [artifactId]-[version].jar - * @return The human readable representation of the dependency size. - */ - private String getSize(final String dependency, final Map sizeOfDependencies) { - String dep = dependency.split(":")[1] + "-" + dependency.split(":")[2] + ".jar"; - if (sizeOfDependencies.containsKey(dep)) { - return FileUtils.byteCountToDisplaySize(sizeOfDependencies.get(dep)); - } else { - // The size cannot be obtained. - return "size unknown"; - } - } - - /** - * Exclude artifacts with specific scopes from the analysis. - * - * @param artifacts The set of artifacts to analyze. - * @return The set of artifacts for which the scope has not been excluded. - */ - private Set excludeScope(final Set artifacts) { - Set nonExcludedArtifacts = new HashSet<>(); - for (Artifact artifact : artifacts) { - if (!ignoreScopes.contains(artifact.getScope())) { - nonExcludedArtifacts.add(artifact); - } - } - return nonExcludedArtifacts; - } - - /** - * Determine if an artifact is a direct or transitive child of a dependency. - * - * @param artifact The artifact. - * @param dependency The dependency - * @return true if the artifact is a child of a dependency in the dependency tree. - * @throws DependencyGraphBuilderException If the graph cannot be constructed. - */ - private boolean isChildren(final Artifact artifact, final Dependency dependency) - throws DependencyGraphBuilderException { - List dependencyNodes = getDependencyNodes(); - for (DependencyNode node : dependencyNodes) { - Dependency dependencyNode = createDependency(node.getArtifact()); - if (dependency.getGroupId().equals(dependencyNode.getGroupId()) - && dependency.getArtifactId().equals(dependencyNode.getArtifactId())) { - // now we are in the target dependency - for (DependencyNode child : node.getChildren()) { - if (child.getArtifact().equals(artifact)) { - // the dependency contains the artifact as a child node - return true; - } - - } - } - } - return false; - } - - /** - * Returns a list of dependency nodes from a graph of dependency tree. - * - * @return The nodes in the dependency graph. - * @throws DependencyGraphBuilderException if the graph cannot be built. - */ - private List getDependencyNodes() throws DependencyGraphBuilderException { - ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest( - session.getProjectBuildingRequest()); - buildingRequest.setProject(project); - DependencyNode rootNode = dependencyGraphBuilder.buildDependencyGraph(buildingRequest, null); - CollectingDependencyNodeVisitor visitor = new CollectingDependencyNodeVisitor(); - rootNode.accept(visitor); - return visitor.getNodes(); - } - - /** - * This method creates a {@link org.apache.maven.model.Dependency} object from a Maven {@link - * org.apache.maven.artifact.Artifact}. - * - * @param artifact The artifact to create the dependency. - * @return The Dependency object. - */ - private Dependency createDependency(final Artifact artifact) { - Dependency dependency = new Dependency(); - dependency.setGroupId(artifact.getGroupId()); - dependency.setArtifactId(artifact.getArtifactId()); - dependency.setVersion(artifact.getVersion()); - if (artifact.hasClassifier()) { - dependency.setClassifier(artifact.getClassifier()); - } - dependency.setOptional(artifact.isOptional()); - dependency.setScope(artifact.getScope()); - dependency.setType(artifact.getType()); - return dependency; - } - - private void printString(final String string) { - System.out.println(string); //NOSONAR avoid a warning of non-used logger - } - @SneakyThrows @Override - public final void execute() throws MojoExecutionException { - if (skipDepClean) { - getLog().info("Skipping DepClean plugin execution"); - return; - } - - printString(SEPARATOR); - getLog().info("Starting DepClean dependency analysis"); - - File pomFile = new File(project.getBasedir().getAbsolutePath() + File.separator + "pom.xml"); - - String packaging = project.getPackaging(); - if (packaging.equals("pom")) { - getLog().info("Skipping because packaging type " + packaging + "."); - return; - } - - /* Build Maven model to manipulate the pom */ - Model model; - FileReader reader; - MavenXpp3Reader mavenReader = new MavenXpp3Reader(); - try { - reader = new FileReader(pomFile); - model = mavenReader.read(reader); - model.setPomFile(pomFile); - } catch (Exception ex) { - getLog().error("Unable to build the maven project."); - return; - } - - /* Copy direct dependencies locally */ + public final void execute() { try { - MavenInvoker.runCommand("mvn dependency:copy-dependencies -DoutputDirectory=" - + project.getBuild().getDirectory() + File.separator + DIRECTORY_TO_COPY_DEPENDENCIES); - } catch (IOException | InterruptedException e) { - getLog().error("Unable to resolve all the dependencies."); - Thread.currentThread().interrupt(); - return; - } - - // TODO remove this workaround later - if (new File(project.getBuild().getDirectory() + File.separator + "libs").exists()) { - try { - FileUtils.copyDirectory(new File(project.getBuild().getDirectory() + File.separator + "libs"), - new File(project.getBuild().getDirectory() + File.separator + DIRECTORY_TO_COPY_DEPENDENCIES) - ); - } catch (IOException | NullPointerException e) { - getLog().error("Error copying directory libs to dependency"); - } - } - - /* Get the size of all the dependencies */ - Map sizeOfDependencies = new HashMap<>(); - // First, add the size of the project, as the sum of all the files in target/classes - String projectJar = project.getArtifactId() + "-" + project.getVersion() + ".jar"; - long projectSize = FileUtils.sizeOf(new File(project.getBuild().getOutputDirectory())); - sizeOfDependencies.put(projectJar, projectSize); - if (Files.exists(Paths.get( - project.getBuild().getDirectory() + File.separator + DIRECTORY_TO_COPY_DEPENDENCIES))) { - Iterator iterator = FileUtils.iterateFiles( - new File( - project.getBuild().getDirectory() + File.separator - + DIRECTORY_TO_COPY_DEPENDENCIES), new String[] {"jar"}, true); - while (iterator.hasNext()) { - File file = iterator.next(); - sizeOfDependencies.put(file.getName(), FileUtils.sizeOf(file)); - } - } else { - log.warn("Dependencies were not copied locally"); - } - - /* Decompress dependencies */ - String dependencyDirectoryName = - project.getBuild().getDirectory() + "/" + DIRECTORY_TO_COPY_DEPENDENCIES; - File dependencyDirectory = new File(dependencyDirectoryName); - if (dependencyDirectory.exists()) { - JarUtils.decompress(dependencyDirectoryName); - } - - /* Analyze dependencies usage status */ - ProjectDependencyAnalysis projectDependencyAnalysis; - DefaultProjectDependencyAnalyzer dependencyAnalyzer = new DefaultProjectDependencyAnalyzer(ignoreTests); - try { - projectDependencyAnalysis = dependencyAnalyzer.analyze(project); - } catch (ProjectDependencyAnalyzerException e) { - getLog().error("Unable to analyze dependencies."); - return; - } - - // Getting coordinates of all artifacts without version. - Set allDependenciesCoordinates = new HashSet<>(); - Set allArtifacts = project.getArtifacts(); - for (Artifact artifact : allArtifacts) { - String coordinate = artifact.getGroupId() + ":" - + artifact.getArtifactId() + ":" - + artifact.getVersion(); - allDependenciesCoordinates.add(coordinate); - } - - Set usedTransitiveArtifacts = projectDependencyAnalysis.getUsedUndeclaredArtifacts(); - Set usedDirectArtifacts = projectDependencyAnalysis.getUsedDeclaredArtifacts(); - Set unusedDirectArtifacts = projectDependencyAnalysis.getUnusedDeclaredArtifacts(); - Set unusedTransitiveArtifacts = new HashSet<>(allArtifacts); - - unusedTransitiveArtifacts.removeAll(usedDirectArtifacts); - unusedTransitiveArtifacts.removeAll(usedTransitiveArtifacts); - unusedTransitiveArtifacts.removeAll(unusedDirectArtifacts); - - /* Exclude dependencies with specific scopes from the DepClean analysis */ - if (!ignoreScopes.isEmpty()) { - printString("Ignoring dependencies with scope(s): " + ignoreScopes); - if (!ignoreScopes.isEmpty()) { - usedTransitiveArtifacts = excludeScope(usedTransitiveArtifacts); - usedDirectArtifacts = excludeScope(usedDirectArtifacts); - unusedDirectArtifacts = excludeScope(unusedDirectArtifacts); - unusedTransitiveArtifacts = excludeScope(unusedTransitiveArtifacts); - } - } - - /* Use artifacts coordinates for the report instead of the Artifact object */ - - // List of dependencies declared in the POM - List dependencies = model.getDependencies(); - Set declaredArtifactsGroupArtifactIds = new HashSet<>(); - for (Dependency dep : dependencies) { - declaredArtifactsGroupArtifactIds.add(dep.getGroupId() + ":" + dep.getArtifactId()); - } - - // --- used dependencies - Set usedDirectArtifactsCoordinates = new HashSet<>(); - Set usedInheritedArtifactsCoordinates = new HashSet<>(); - Set usedTransitiveArtifactsCoordinates = new HashSet<>(); - - for (Artifact artifact : usedDirectArtifacts) { - String artifactGroupArtifactId = artifact.getGroupId() + ":" + artifact.getArtifactId(); - String artifactGroupArtifactIds = - artifactGroupArtifactId + ":" + artifact.toString().split(":")[3] + ":" + artifact.toString() - .split(":")[4]; - if (declaredArtifactsGroupArtifactIds.contains(artifactGroupArtifactId)) { - // the artifact is declared in the pom - usedDirectArtifactsCoordinates.add(artifactGroupArtifactIds); - } else { - // the artifact is inherited - usedInheritedArtifactsCoordinates.add(artifactGroupArtifactIds); - } - } - - // TODO Fix: The used transitive dependencies induced by inherited dependencies should be considered - // as used inherited - for (Artifact artifact : usedTransitiveArtifacts) { - String artifactGroupArtifactId = artifact.getGroupId() + ":" + artifact.getArtifactId(); - String artifactGroupArtifactIds = - artifactGroupArtifactId + ":" + artifact.toString().split(":")[3] + ":" + artifact.toString() - .split(":")[4]; - usedTransitiveArtifactsCoordinates.add(artifactGroupArtifactIds); - } - - // --- unused dependencies - Set unusedDirectArtifactsCoordinates = new HashSet<>(); - Set unusedInheritedArtifactsCoordinates = new HashSet<>(); - Set unusedTransitiveArtifactsCoordinates = new HashSet<>(); - - for (Artifact artifact : unusedDirectArtifacts) { - String artifactGroupArtifactId = artifact.getGroupId() + ":" + artifact.getArtifactId(); - String artifactGroupArtifactIds = - artifactGroupArtifactId + ":" + artifact.toString().split(":")[3] + ":" + artifact.toString() - .split(":")[4]; - if (declaredArtifactsGroupArtifactIds.contains(artifactGroupArtifactId)) { - // the artifact is declared in the pom - unusedDirectArtifactsCoordinates.add(artifactGroupArtifactIds); - } else { - // the artifact is inherited - unusedInheritedArtifactsCoordinates.add(artifactGroupArtifactIds); - } - } - - // TODO Fix: The unused transitive dependencies induced by inherited dependencies should be considered as - // unused inherited - for (Artifact artifact : unusedTransitiveArtifacts) { - String artifactGroupArtifactId = artifact.getGroupId() + ":" + artifact.getArtifactId(); - String artifactGroupArtifactIds = - artifactGroupArtifactId + ":" + artifact.toString().split(":")[3] + ":" + artifact.toString() - .split(":")[4]; - unusedTransitiveArtifactsCoordinates.add(artifactGroupArtifactIds); - } - - /* Ignoring dependencies from the analysis */ - if (ignoreDependencies != null) { - for (String dependencyToIgnore : ignoreDependencies) { - // if the ignored dependency is an unused direct dependency then add it to the set of used direct - // and remove it from the set of unused direct - ignoreDependency(usedDirectArtifactsCoordinates, unusedDirectArtifactsCoordinates, dependencyToIgnore); - // if the ignored dependency is an unused inherited dependency then add it to the set of used inherited - // and remove it from the set of unused inherited - ignoreDependency(usedInheritedArtifactsCoordinates, unusedInheritedArtifactsCoordinates, dependencyToIgnore); - // if the ignored dependency is an unused transitive dependency then add it to the set of used transitive - // and remove it from the set of unused transitive - ignoreDependency(usedTransitiveArtifactsCoordinates, unusedTransitiveArtifactsCoordinates, dependencyToIgnore); - } - } - - // Adding module coordinates as a dependency. - String moduleId = project.getGroupId() + ":" + project.getArtifactId() + ":" + project.getVersion(); - - // Collecting the result. - ResultsUtils resultInfo = new ResultsUtils( - unusedDirectArtifactsCoordinates, - unusedInheritedArtifactsCoordinates, - unusedTransitiveArtifactsCoordinates); - // Mapping the result with module for further usage. - ModuleResult.put(moduleId, resultInfo); - - /* Printing the results to the terminal */ - printString(SEPARATOR); - printString(" D E P C L E A N A N A L Y S I S R E S U L T S"); - printString(SEPARATOR); - printInfoOfDependencies("Used direct dependencies", sizeOfDependencies, usedDirectArtifactsCoordinates); - printInfoOfDependencies("Used inherited dependencies", sizeOfDependencies, usedInheritedArtifactsCoordinates); - printInfoOfDependencies("Used transitive dependencies", sizeOfDependencies, usedTransitiveArtifactsCoordinates); - printInfoOfDependencies("Potentially unused direct dependencies", sizeOfDependencies, - unusedDirectArtifactsCoordinates); - printInfoOfDependencies("Potentially unused inherited dependencies", sizeOfDependencies, - unusedInheritedArtifactsCoordinates); - printInfoOfDependencies("Potentially unused transitive dependencies", sizeOfDependencies, - unusedTransitiveArtifactsCoordinates); - - if (!ignoreDependencies.isEmpty()) { - printString(SEPARATOR); - printString( - "Dependencies ignored in the analysis by the user" - + " [" + ignoreDependencies.size() + "]" + ":" + " "); - ignoreDependencies.stream().forEach(s -> printString("\t" + s)); - } - - // Getting those dependencies from previous modules whose status might have been changed now. - Set dependenciesResultChange = new HashSet<>(); - for (String module : ModuleDependency) { - /* If the module is used as a dependency in the project, - then it will be present in allDependenciesCoordinates. */ - if (allDependenciesCoordinates.contains(module)) { - // Getting the result of specified module. - ResultsUtils result = ModuleResult.get(module); - /* Build will only fail when status of any dependencies has been changed - from unused to used, so getting all the unused dependencies from the - previous modules and comparing that with all the used transitive - dependencies of the current module. */ - Set allUnusedDependency = result.getAllUnusedDependenciesCoordinates(); - for (String usedDependency : usedTransitiveArtifactsCoordinates) { - if (allUnusedDependency.contains(usedDependency)) { - // This dependency status need to be changed. - dependenciesResultChange.add( - new ChangeDependencyResultUtils(usedDependency, - module, - result.getType(usedDependency))); - } - } - } - } - - // Adding the module whose result has been collected. (Alert: This position is specific for adding it) - ModuleDependency.add(moduleId); - - // Printing those dependencies to the terminal whose status needs to be changed. - if (!dependenciesResultChange.isEmpty()) { - printString("\n" + SEPARATOR); - getLog().info("DEPENDENT MODULES FOUND"); - printString("Due to dependent modules, the debloated result of some dependencies" - + " from previous modules has been changed now."); - printString("The dependency-module details of such dependencies with the" - + " new results are as follows :\n"); - int serialNumber = 0; - for (ChangeDependencyResultUtils result : dependenciesResultChange) { - printString("\t" + ++serialNumber + ") ModuleCoordinates : " + result.getModule()); - printString("\t DependencyCoordinates : " + result.getDependencyCoordinate()); - printString("\t OldType : " + result.getType()); - printString("\t NewType : " + result.getNewType()); - printString(""); - } - printString(SEPARATOR); - } - - /* Fail the build if there are unused direct dependencies */ - if (failIfUnusedDirect && !unusedDirectArtifactsCoordinates.isEmpty()) { - throw new MojoExecutionException( - "Build failed due to unused direct dependencies in the dependency tree of the project."); - } - - /* Fail the build if there are unused direct dependencies */ - if (failIfUnusedTransitive && !unusedTransitiveArtifactsCoordinates.isEmpty()) { - throw new MojoExecutionException( - "Build failed due to unused transitive dependencies in the dependency tree of the project."); - } - - /* Fail the build if there are unused direct dependencies */ - if (failIfUnusedInherited && !unusedInheritedArtifactsCoordinates.isEmpty()) { - throw new MojoExecutionException( - "Build failed due to unused inherited dependencies in the dependency tree of the project."); - } - - /* Writing the debloated version of the pom */ - if (createPomDebloated) { - getLog().info("Starting debloating POM"); - - /* Add used transitive as direct dependencies */ - try { - if (!usedTransitiveArtifacts.isEmpty()) { - getLog() - .info("Adding " + unusedTransitiveArtifactsCoordinates.size() - + " used transitive dependencies as direct dependencies."); - for (Artifact usedUndeclaredArtifact : usedTransitiveArtifacts) { - model.addDependency(createDependency(usedUndeclaredArtifact)); - } - } - } catch (Exception e) { - throw new MojoExecutionException(e.getMessage(), e); - } - - /* Remove unused direct dependencies */ - try { - if (!unusedDirectArtifacts.isEmpty()) { - getLog().info("Removing " + unusedDirectArtifactsCoordinates.size() - + " unused direct dependencies."); - for (Artifact unusedDeclaredArtifact : unusedDirectArtifacts) { - for (Dependency dependency : model.getDependencies()) { - if (dependency.getGroupId().equals(unusedDeclaredArtifact.getGroupId()) - && dependency.getArtifactId().equals(unusedDeclaredArtifact.getArtifactId())) { - model.removeDependency(dependency); - break; - } - } - } - } - } catch (Exception e) { - throw new MojoExecutionException(e.getMessage(), e); - } - - /* Exclude unused transitive dependencies */ - try { - if (!unusedTransitiveArtifacts.isEmpty()) { - getLog().info( - "Excluding " + unusedTransitiveArtifacts.size() - + " unused transitive dependencies one-by-one."); - for (Dependency dependency : model.getDependencies()) { - for (Artifact artifact : unusedTransitiveArtifacts) { - if (isChildren(artifact, dependency)) { - getLog().info("Excluding " + artifact.toString() + " from dependency " + dependency - .toString()); - Exclusion exclusion = new Exclusion(); - exclusion.setGroupId(artifact.getGroupId()); - exclusion.setArtifactId(artifact.getArtifactId()); - dependency.addExclusion(exclusion); - } - } - } - } - } catch (Exception e) { - throw new MojoExecutionException(e.getMessage(), e); - } - - /* Write the debloated pom file */ - String pathToDebloatedPom = - project.getBasedir().getAbsolutePath() + File.separator + "pom-debloated.xml"; - try { - Path path = Paths.get(pathToDebloatedPom); - writePom(path, model); - } catch (IOException e) { - throw new MojoExecutionException(e.getMessage(), e); - } - getLog().info("POM debloated successfully"); - getLog().info("pom-debloated.xml file created in: " + pathToDebloatedPom); - } - - /* Writing the JSON file with the debloat results */ - if (createResultJson) { - printString("Creating depclean-results.json, please wait..."); - final File jsonFile = new File(project.getBuild().getDirectory() + File.separator + "depclean-results.json"); - final File treeFile = new File(project.getBuild().getDirectory() + File.separator + "tree.txt"); - final File classUsageFile = new File(project.getBuild().getDirectory() + File.separator + "class-usage.csv"); - try { - MavenInvoker.runCommand("mvn dependency:tree -DoutputFile=" + treeFile + " -Dverbose=true"); - } catch (IOException | InterruptedException e) { - getLog().error("Unable to generate dependency tree."); - // Restore interrupted state... - Thread.currentThread().interrupt(); - return; - } - if (createClassUsageCsv) { - printString("Creating class-usage.csv, please wait..."); - try { - FileUtils.write(classUsageFile, "OriginClass,TargetClass,Dependency\n", Charset.defaultCharset()); - } catch (IOException e) { - getLog().error("Error writing the CSV header."); - } - } - ParsedDependencies parsedDependencies = new ParsedDependencies( - treeFile, - sizeOfDependencies, - dependencyAnalyzer, - usedDirectArtifactsCoordinates, - usedInheritedArtifactsCoordinates, - usedTransitiveArtifactsCoordinates, - unusedDirectArtifactsCoordinates, - unusedInheritedArtifactsCoordinates, - unusedTransitiveArtifactsCoordinates, - classUsageFile, + new DepCleanManager( + new MavenDependencyManager( + getLog(), + project, + session, + dependencyGraphBuilder + ), + skipDepClean, + ignoreTests, + ignoreScopes, + ignoreDependencies, + failIfUnusedDirect, + failIfUnusedTransitive, + failIfUnusedInherited, + createPomDebloated, + createResultJson, createClassUsageCsv - ); - try { - FileUtils.write(jsonFile, parsedDependencies.parseTreeToJson(), Charset.defaultCharset()); - } catch (ParseException | IOException e) { - getLog().error("Unable to generate JSON file."); - } - if (jsonFile.exists()) { - getLog().info("depclean-results.json file created in: " + jsonFile.getAbsolutePath()); - } - if (classUsageFile.exists()) { - getLog().info("class-usage.csv file created in: " + classUsageFile.getAbsolutePath()); - } - } - } - - - /** - * If the dependencyToIgnore is an unused dependency, then add it to the set of usedArtifactsCoordinates and remove it - * from the set of unusedArtifactsCoordinates. - * - * @param usedArtifactsCoordinates The set of used artifacts where the dependency will be added. - * @param unusedArtifactsCoordinates The set of unused artifacts where the dependency will be removed. - * @param dependencyToIgnore The dependency to ignore. - */ - private void ignoreDependency( - Set usedArtifactsCoordinates, - Set unusedArtifactsCoordinates, - String dependencyToIgnore) { - for (Iterator i = unusedArtifactsCoordinates.iterator(); i.hasNext(); ) { - String unusedDirectArtifact = i.next(); - if (dependencyToIgnore.equals(unusedDirectArtifact)) { - usedArtifactsCoordinates.add(unusedDirectArtifact); - i.remove(); - break; - } + ).execute(); + } catch (AnalysisFailureException e) { + throw new MojoExecutionException(e.getMessage(), e); } } } diff --git a/depclean-maven-plugin/src/main/java/se/kth/depclean/graph/MavenDependencyGraph.java b/depclean-maven-plugin/src/main/java/se/kth/depclean/graph/MavenDependencyGraph.java new file mode 100644 index 00000000..ef0f52ea --- /dev/null +++ b/depclean-maven-plugin/src/main/java/se/kth/depclean/graph/MavenDependencyGraph.java @@ -0,0 +1,160 @@ +package se.kth.depclean.graph; + +import static com.google.common.collect.ImmutableSet.copyOf; +import static com.google.common.collect.ImmutableSet.toImmutableSet; +import static com.google.common.collect.Sets.newHashSet; + +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.Multimap; +import java.io.File; +import java.util.Set; +import java.util.stream.Collectors; +import lombok.extern.slf4j.Slf4j; +import org.apache.maven.artifact.Artifact; +import org.apache.maven.model.Model; +import org.apache.maven.project.MavenProject; +import org.apache.maven.shared.dependency.graph.DependencyNode; +import org.jetbrains.annotations.NotNull; +import se.kth.depclean.core.analysis.graph.DependencyGraph; +import se.kth.depclean.core.model.Dependency; + +/** + * A dependency graph for maven reactor. + */ +@Slf4j +public class MavenDependencyGraph implements DependencyGraph { + + private final Set allDependencies; + + private final MavenProject project; + private final DependencyNode rootNode; + private final Set directDependencies; + private final Set inheritedDependencies; + private final Set transitiveDependencies; + private final Multimap dependenciesPerDependency + = ArrayListMultimap.create(); + + /** + * Create a maven dependency graph. + * + * @param project the maven project + * @param rootNode the graph's root node + */ + public MavenDependencyGraph(MavenProject project, Model model, DependencyNode rootNode) { + this.project = project; + this.rootNode = rootNode; + + this.allDependencies = project.getArtifacts().stream() + .map(this::toDepCleanDependency) + .collect(toImmutableSet()); + // The model gets only the direct dependencies (not the inherited ones) + this.directDependencies = model.getDependencies().stream() + .map(this::toDepCleanDependency) + .collect(toImmutableSet()); + // The project gets all the direct dependencies (with the inherited ones) + //noinspection deprecation + this.inheritedDependencies = inheritedDependencies(project.getDependencyArtifacts()); + this.transitiveDependencies = transitiveDependencies(allDependencies); + + buildDependencyDependencies(rootNode); + + if (log.isDebugEnabled()) { + this.allDependencies.forEach(dep -> { + log.debug("Found dependency {}", dep); + if (dependenciesPerDependency.get(dep) != null) { + dependenciesPerDependency.get(dep).forEach(transDep -> log.debug("# {}", transDep)); + } + }); + } + } + + @Override + public Dependency projectCoordinates() { + log.info("project's jar {}", project.getBuild().getDirectory() + "/" + project.getBuild().getFinalName()); + return new Dependency( + rootNode.getArtifact().getGroupId(), + rootNode.getArtifact().getArtifactId(), + rootNode.getArtifact().getVersion(), + new File(project.getBuild().getDirectory() + "/" + project.getBuild().getFinalName() + ".jar") + ); + } + + @Override + public Set allDependencies() { + return allDependencies; + } + + @Override + public Set getDependenciesForParent(Dependency parent) { + return copyOf(dependenciesPerDependency.get(parent)); + } + + @Override + public Set directDependencies() { + return directDependencies; + } + + @Override + public Set inheritedDependencies() { + return inheritedDependencies; + } + + @NotNull + private Set inheritedDependencies(Set dependencyArtifacts) { + final Set visibleDependencies = dependencyArtifacts.stream() + .map(this::toDepCleanDependency) + .collect(Collectors.toSet()); + visibleDependencies.removeAll(this.directDependencies); + return copyOf(visibleDependencies); + } + + @Override + public Set transitiveDependencies() { + return transitiveDependencies; + } + + @NotNull + private Set transitiveDependencies(Set allArtifactsFound) { + final Set transitiveDependencies = newHashSet(allArtifactsFound); + transitiveDependencies.removeAll(this.directDependencies); + transitiveDependencies.removeAll(this.inheritedDependencies); + return copyOf(transitiveDependencies); + } + + private void buildDependencyDependencies(DependencyNode parentNode) { + for (DependencyNode child : parentNode.getChildren()) { + if (!child.getChildren().isEmpty()) { + child.getChildren().forEach(c -> { + dependenciesPerDependency.put(toDepCleanDependency(child), toDepCleanDependency(c)); + buildDependencyDependencies(c); + }); + } + } + } + + private Dependency toDepCleanDependency(Artifact artifact) { + return new Dependency( + artifact.getGroupId(), + artifact.getArtifactId(), + artifact.getVersion(), + artifact.getScope(), + artifact.getFile()); + } + + private Dependency toDepCleanDependency(DependencyNode node) { + return toDepCleanDependency(node.getArtifact()); + } + + private Dependency toDepCleanDependency(org.apache.maven.model.Dependency dependency) { + //noinspection OptionalGetWithoutIsPresent + return allDependencies.stream() + .filter(artifact -> matches(artifact, dependency)) + .findFirst() + .get(); + } + + private boolean matches(Dependency dependencyCoordinate, org.apache.maven.model.Dependency dependency) { + return dependencyCoordinate.getGroupId().equalsIgnoreCase(dependency.getGroupId()) + && dependencyCoordinate.getDependencyId().equalsIgnoreCase(dependency.getArtifactId()); + } +} diff --git a/depclean-maven-plugin/src/main/java/se/kth/depclean/util/ChangeDependencyResultUtils.java b/depclean-maven-plugin/src/main/java/se/kth/depclean/util/ChangeDependencyResultUtils.java deleted file mode 100644 index e669e6df..00000000 --- a/depclean-maven-plugin/src/main/java/se/kth/depclean/util/ChangeDependencyResultUtils.java +++ /dev/null @@ -1,60 +0,0 @@ -package se.kth.depclean.util; - -import java.util.Objects; - -/** - * This will help in changing the status of the dependencies involved in - * dependent modules of a multi-module java project. - */ -public class ChangeDependencyResultUtils { - - private final String dependencyCoordinate; - private final String module; - private final String type; - - /** - * Ctor. - * - * @param dependencyCoordinate Target dependency. - * @param module Target module. - * @param type Debloat status. - */ - public ChangeDependencyResultUtils(final String dependencyCoordinate, - final String module, - final String type) { - this.dependencyCoordinate = dependencyCoordinate; - this.module = module; - this.type = type; - } - - // Getters ------------------------------------------------------------- - public String getDependencyCoordinate() { - return dependencyCoordinate; - } - - public String getModule() { - return module; - } - - public String getType() { - return type; - } - - /** - * Return the new type (status) of the dependency. - * - * @return New type - */ - public String getNewType() { - // Changing the status of debloat. - String newType; - if (Objects.equals(type, "unusedDirect")) { - newType = "usedDirect"; - } else if (Objects.equals(type, "unusedTransitive")) { - newType = "usedTransitive"; - } else { - newType = "usedInherited"; - } - return newType; - } -} diff --git a/depclean-maven-plugin/src/main/java/se/kth/depclean/util/MavenDebloater.java b/depclean-maven-plugin/src/main/java/se/kth/depclean/util/MavenDebloater.java new file mode 100644 index 00000000..c9dc78f8 --- /dev/null +++ b/depclean-maven-plugin/src/main/java/se/kth/depclean/util/MavenDebloater.java @@ -0,0 +1,158 @@ +package se.kth.depclean.util; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; +import lombok.extern.slf4j.Slf4j; +import org.apache.maven.artifact.Artifact; +import org.apache.maven.model.Dependency; +import org.apache.maven.model.Exclusion; +import org.apache.maven.model.Model; +import org.apache.maven.model.io.xpp3.MavenXpp3Writer; +import org.apache.maven.project.MavenProject; +import se.kth.depclean.core.AbstractDebloater; +import se.kth.depclean.core.analysis.model.DebloatedDependency; +import se.kth.depclean.core.analysis.model.ProjectDependencyAnalysis; + +/** + * Writes a debloated pom is needed. + */ +@Slf4j +public class MavenDebloater extends AbstractDebloater { + + private final MavenProject project; + private final Model model; + private final List initialDependencies; + + /** + * Creates the debloater. + * + * @param analysis the depclean analysis result + * @param project the maven project + * @param model the maven model + */ + public MavenDebloater(ProjectDependencyAnalysis analysis, MavenProject project, Model model) { + super(analysis); + this.project = project; + this.model = model; + this.initialDependencies = model.getDependencies(); + } + + @Override + protected void logDependencies() { + model.getDependencies().forEach(dep -> { + log.debug("Debloated dependency {}", dep); + dep.getExclusions().forEach(excl -> log.debug("- Excluding {}:{}", + excl.getGroupId(), excl.getArtifactId())); + }); + } + + @Override + protected Dependency toMavenDependency(DebloatedDependency debloatedDependency) { + final Dependency dependency = createDependency(debloatedDependency); + debloatedDependency.getExclusions().forEach(depToExclude -> exclude(dependency, depToExclude)); + return dependency; + } + + @Override + protected void setDependencies(List dependencies) { + model.setDependencies(dependencies); + } + + private void exclude(Dependency dependency, se.kth.depclean.core.model.Dependency dependencyToExclude) { + Exclusion exclusion = new Exclusion(); + exclusion.setGroupId(dependencyToExclude.getGroupId()); + exclusion.setArtifactId(dependencyToExclude.getDependencyId()); + dependency.addExclusion(exclusion); + } + + @Override + protected void postProcessDependencies() { + model.getDependencies().forEach(dep -> { + for (Dependency initialDependency : initialDependencies) { + if (hasVersionAsProperty(initialDependency) && matches(dep, initialDependency)) { + dep.setVersion(initialDependency.getVersion()); + } + } + }); + } + + @Override + protected void writeFile() throws IOException { + String pathToDebloatedPom = + project.getBasedir().getAbsolutePath() + File.separator + "pom-debloated.xml"; + Path path = Paths.get(pathToDebloatedPom); + writePom(path); + log.info("POM debloated successfully"); + log.info("pom-debloated.xml file created in: " + pathToDebloatedPom); + } + + private boolean hasVersionAsProperty(Dependency initialDependency) { + return initialDependency.getVersion().startsWith("$"); + } + + /** + * Write pom file to the filesystem. + * + * @param pomFile The path to the pom. + * @throws IOException In case of any IO issue. + */ + private void writePom(final Path pomFile) throws IOException { + MavenXpp3Writer writer = new MavenXpp3Writer(); + writer.write(Files.newBufferedWriter(pomFile), model); + } + + private Artifact findArtifact(se.kth.depclean.core.model.Dependency dependency) { + return project.getArtifacts().stream() + .filter(artifact -> matches(artifact, dependency)) + .findFirst() + .orElseThrow(() -> new RuntimeException("Unable to find " + dependency + " in dependencies")); + } + + private boolean matches(Artifact artifact, se.kth.depclean.core.model.Dependency coordinate) { + return coordinate.toString().toLowerCase().contains( + String.format("%s:%s:%s", artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion()) + .toLowerCase()); + } + + private boolean matches(Dependency dep, Dependency initialDependency) { + return initialDependency.getGroupId().equals(dep.getGroupId()) + && initialDependency.getArtifactId().equals(dep.getArtifactId()); + } + + /** + * This method creates a Maven {@link Dependency} object from a depclean {@link + * se.kth.depclean.core.model.Dependency}. + * + * @param dependency The depclean dependency to create the maven dependency. + * @return The Dependency object. + */ + private Dependency createDependency( + final se.kth.depclean.core.model.Dependency dependency) { + return createDependency(findArtifact(dependency)); + } + + /** + * This method creates a {@link Dependency} object from a Maven {@link + * org.apache.maven.artifact.Artifact}. + * + * @param artifact The artifact to create the dependency. + * @return The Dependency object. + */ + private Dependency createDependency(final Artifact artifact) { + Dependency dependency = new Dependency(); + dependency.setGroupId(artifact.getGroupId()); + dependency.setArtifactId(artifact.getArtifactId()); + dependency.setVersion(artifact.getVersion()); + if (artifact.hasClassifier()) { + dependency.setClassifier(artifact.getClassifier()); + } + dependency.setOptional(artifact.isOptional()); + dependency.setScope(artifact.getScope()); + dependency.setType(artifact.getType()); + return dependency; + } +} diff --git a/depclean-maven-plugin/src/main/java/se/kth/depclean/util/ResultsUtils.java b/depclean-maven-plugin/src/main/java/se/kth/depclean/util/ResultsUtils.java deleted file mode 100644 index 27880c7f..00000000 --- a/depclean-maven-plugin/src/main/java/se/kth/depclean/util/ResultsUtils.java +++ /dev/null @@ -1,58 +0,0 @@ -package se.kth.depclean.util; - -import java.util.HashSet; -import java.util.Set; - -/** - * Collects the data from the report generated by depclean on any module of the project. - */ -public class ResultsUtils { - - private final Set unusedDirectArtifactsCoordinates; - private final Set unusedInheritedArtifactsCoordinates; - private final Set unusedTransitiveArtifactsCoordinates; - private final Set allUnusedDependenciesCoordinates = new HashSet<>(); - - /** - * Ctor. - */ - public ResultsUtils(final Set unusedDirectArtifactsCoordinates, - final Set unusedInheritedArtifactsCoordinates, - final Set unusedTransitiveArtifactsCoordinates) { - this.unusedDirectArtifactsCoordinates = unusedDirectArtifactsCoordinates; - this.unusedInheritedArtifactsCoordinates = unusedInheritedArtifactsCoordinates; - this.unusedTransitiveArtifactsCoordinates = unusedTransitiveArtifactsCoordinates; - } - - // Getters ------------------------------------------------------------------------------ - - /** - * Collect all the unused dependencies from the provided result. - * - * @return A set of all unused dependencies - */ - public Set getAllUnusedDependenciesCoordinates() { - /* Collecting only the unused dependencies, cause in multi-module analysis, build - will only fail when any unused dependencies iof one module is used by another. */ - allUnusedDependenciesCoordinates.addAll(unusedDirectArtifactsCoordinates); - allUnusedDependenciesCoordinates.addAll(unusedInheritedArtifactsCoordinates); - allUnusedDependenciesCoordinates.addAll(unusedTransitiveArtifactsCoordinates); - return allUnusedDependenciesCoordinates; - } - - /** - * To get the type (status) of a dependency. - * - * @param coordinates The dependency. - * @return Type (status) - */ - public String getType(final String coordinates) { - if (unusedDirectArtifactsCoordinates.contains(coordinates)) { - return "unusedDirect"; - } else if (unusedTransitiveArtifactsCoordinates.contains(coordinates)) { - return "unusedTransitive"; - } else { - return "unusedInherited"; - } - } -} diff --git a/depclean-maven-plugin/src/main/java/se/kth/depclean/util/json/NodeAdapter.java b/depclean-maven-plugin/src/main/java/se/kth/depclean/util/json/NodeAdapter.java index 1f40e166..263907ea 100644 --- a/depclean-maven-plugin/src/main/java/se/kth/depclean/util/json/NodeAdapter.java +++ b/depclean-maven-plugin/src/main/java/se/kth/depclean/util/json/NodeAdapter.java @@ -11,9 +11,9 @@ import java.util.Set; import lombok.AllArgsConstructor; import org.apache.commons.io.FileUtils; -import org.jetbrains.annotations.NotNull; -import se.kth.depclean.core.analysis.DefaultProjectDependencyAnalyzer; import se.kth.depclean.core.analysis.graph.DefaultCallGraph; +import se.kth.depclean.core.analysis.model.DependencyAnalysisInfo; +import se.kth.depclean.core.analysis.model.ProjectDependencyAnalysis; /** * Custom Gson type adapter to write a JSON file with information of the dependencies. @@ -21,22 +21,15 @@ @AllArgsConstructor public class NodeAdapter extends TypeAdapter { - private final Set usedDirectArtifactsCoordinates; - private final Set usedInheritedArtifactsCoordinates; - private final Set usedTransitiveArtifactsCoordinates; - private final Set unusedDirectArtifactsCoordinates; - private final Set unusedInheritedArtifactsCoordinates; - private final Set unusedTransitiveArtifactsCoordinates; - private final Map sizeOfDependencies; - private final DefaultProjectDependencyAnalyzer dependencyAnalyzer; + private final ProjectDependencyAnalysis analysis; private final File classUsageFile; private final boolean createClassUsageCsv; @Override public void write(JsonWriter jsonWriter, Node node) throws IOException { String ga = node.getGroupId() + ":" + node.getArtifactId(); + String gav = ga + ":" + node.getVersion(); String vs = node.getVersion() + ":" + node.getScope(); - String coordinates = ga + ":" + vs; String canonical = ga + ":" + node.getPackaging() + ":" + vs; String dependencyJar = node.getArtifactId() + "-" + node.getVersion() + ".jar"; @@ -44,12 +37,14 @@ public void write(JsonWriter jsonWriter, Node node) throws IOException { writeClassUsageCsv(canonical); } + final DependencyAnalysisInfo dependencyInfo = analysis.getDependencyInfo(gav); + JsonWriter localWriter = jsonWriter.beginObject() .name("id") .value(canonical) .name("coordinates") - .value(node.getGroupId() + ":" + node.getArtifactId() + ":" + node.getVersion()) + .value(gav) .name("groupId") .value(node.getGroupId()) @@ -73,20 +68,20 @@ public void write(JsonWriter jsonWriter, Node node) throws IOException { .value(node.getClassifier()) .name("size") - .value(sizeOfDependencies.get(dependencyJar)) + .value(dependencyInfo.getSize()) .name("type") - .value(getType(coordinates)) + .value(dependencyInfo.getType()) .name("status") - .value(getStatus(coordinates)) + .value(dependencyInfo.getStatus()) .name("parent") .value(getParent(node)); - writeAllTypes(canonical, localWriter); - writeUsedTypes(canonical, localWriter); - writeUsageRatio(canonical, localWriter); + writeAllTypes(dependencyInfo, localWriter); + writeUsedTypes(dependencyInfo, localWriter); + writeUsageRatio(dependencyInfo, localWriter); for (Node c : node.getChildNodes()) { this.write(jsonWriter, c); @@ -99,53 +94,25 @@ private String getParent(Node node) { return node.getParent() != null ? node.getParent().getArtifactCanonicalForm() : "unknown"; } - @NotNull - private String getStatus(String coordinates) { - return (usedDirectArtifactsCoordinates.contains(coordinates) || usedInheritedArtifactsCoordinates - .contains(coordinates) || usedTransitiveArtifactsCoordinates.contains(coordinates)) - ? "used" : - (unusedDirectArtifactsCoordinates.contains(coordinates) || unusedInheritedArtifactsCoordinates - .contains(coordinates) || unusedTransitiveArtifactsCoordinates.contains(coordinates)) - ? "bloated" : "unknown"; - } - - @NotNull - private String getType(String coordinates) { - return (usedDirectArtifactsCoordinates.contains(coordinates) || unusedDirectArtifactsCoordinates - .contains(coordinates)) ? "direct" : - (usedInheritedArtifactsCoordinates.contains(coordinates) || unusedInheritedArtifactsCoordinates - .contains(coordinates)) ? "inherited" : - (usedTransitiveArtifactsCoordinates.contains(coordinates) || unusedTransitiveArtifactsCoordinates - .contains(coordinates)) ? "transitive" : "unknown"; - } - - private void writeUsageRatio(String canonical, JsonWriter localWriter) throws IOException { + private void writeUsageRatio(DependencyAnalysisInfo info, JsonWriter localWriter) throws IOException { localWriter.name("usageRatio") - .value(dependencyAnalyzer.getArtifactClassesMap().containsKey(canonical) - ? dependencyAnalyzer.getArtifactClassesMap().get(canonical).getAllTypes().isEmpty() - ? 0 : // handle division by zero - ((double) dependencyAnalyzer.getArtifactClassesMap().get(canonical).getUsedTypes().size() - / dependencyAnalyzer.getArtifactClassesMap().get(canonical).getAllTypes().size()) : -1) + .value(info.getAllTypes().isEmpty() ? 0 : ((double) info.getUsedTypes().size() / info.getAllTypes().size())) .name("children") .beginArray(); } - private void writeUsedTypes(String canonical, JsonWriter localWriter) throws IOException { + private void writeUsedTypes(DependencyAnalysisInfo info, JsonWriter localWriter) throws IOException { JsonWriter usedTypes = localWriter.name("usedTypes").beginArray(); - if (dependencyAnalyzer.getArtifactClassesMap().containsKey(canonical)) { - for (String usedType : dependencyAnalyzer.getArtifactClassesMap().get(canonical).getUsedTypes()) { - usedTypes.value(usedType); - } + for (String usedType : info.getUsedTypes()) { + usedTypes.value(usedType); } usedTypes.endArray(); } - private void writeAllTypes(String canonical, JsonWriter localWriter) throws IOException { + private void writeAllTypes(DependencyAnalysisInfo info, JsonWriter localWriter) throws IOException { JsonWriter allTypes = localWriter.name("allTypes").beginArray(); - if (dependencyAnalyzer.getArtifactClassesMap().containsKey(canonical)) { - for (String allType : dependencyAnalyzer.getArtifactClassesMap().get(canonical).getAllTypes()) { - allTypes.value(allType); - } + for (String allType : info.getAllTypes()) { + allTypes.value(allType); } allTypes.endArray(); } @@ -156,11 +123,8 @@ private void writeClassUsageCsv(String canonical) throws IOException { String key = usagePerClassMap.getKey(); Set value = usagePerClassMap.getValue(); for (String s : value) { - if (dependencyAnalyzer.getArtifactClassesMap().containsKey(canonical) && dependencyAnalyzer - .getArtifactClassesMap().get(canonical).getAllTypes().contains(s)) { - String triplet = key + "," + s + "," + canonical + "\n"; - FileUtils.write(classUsageFile, triplet, Charset.defaultCharset(), true); - } + String triplet = key + "," + s + "," + canonical + "\n"; + FileUtils.write(classUsageFile, triplet, Charset.defaultCharset(), true); } } } diff --git a/depclean-maven-plugin/src/main/java/se/kth/depclean/util/json/ParsedDependencies.java b/depclean-maven-plugin/src/main/java/se/kth/depclean/util/json/ParsedDependencies.java index 3f634f3b..93d78ad6 100644 --- a/depclean-maven-plugin/src/main/java/se/kth/depclean/util/json/ParsedDependencies.java +++ b/depclean-maven-plugin/src/main/java/se/kth/depclean/util/json/ParsedDependencies.java @@ -13,29 +13,18 @@ import java.io.InputStreamReader; import java.io.Reader; import java.nio.charset.StandardCharsets; -import java.util.Map; -import java.util.Set; import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import se.kth.depclean.core.analysis.DefaultProjectDependencyAnalyzer; +import se.kth.depclean.core.analysis.model.ProjectDependencyAnalysis; /** * Uses the DepClean analysis results and the dependency tree of the project to produce a JSON file. This file represent * the structure of the dependency tree enriched with metadata of the usage or not of each dependency. */ -@Slf4j @AllArgsConstructor public class ParsedDependencies { private final File treeFile; - private final Map sizeOfDependencies; - private final DefaultProjectDependencyAnalyzer dependencyAnalyzer; - private final Set usedDirectArtifactsCoordinates; - private final Set usedInheritedArtifactsCoordinates; - private final Set usedTransitiveArtifactsCoordinates; - private final Set unusedDirectArtifactsCoordinates; - private final Set unusedInheritedArtifactsCoordinates; - private final Set unusedTransitiveArtifactsCoordinates; + private final ProjectDependencyAnalysis analysis; private final File classUsageFile; private final boolean createClassUsageCsv; @@ -54,14 +43,7 @@ public String parseTreeToJson() throws ParseException, IOException { Parser parser = type.newParser(); Node tree = parser.parse(r); NodeAdapter nodeAdapter = new NodeAdapter( - usedDirectArtifactsCoordinates, - usedInheritedArtifactsCoordinates, - usedTransitiveArtifactsCoordinates, - unusedDirectArtifactsCoordinates, - unusedInheritedArtifactsCoordinates, - unusedTransitiveArtifactsCoordinates, - sizeOfDependencies, - dependencyAnalyzer, + analysis, classUsageFile, createClassUsageCsv ); diff --git a/depclean-maven-plugin/src/main/java/se/kth/depclean/wrapper/MavenDependencyManager.java b/depclean-maven-plugin/src/main/java/se/kth/depclean/wrapper/MavenDependencyManager.java new file mode 100644 index 00000000..b0726521 --- /dev/null +++ b/depclean-maven-plugin/src/main/java/se/kth/depclean/wrapper/MavenDependencyManager.java @@ -0,0 +1,217 @@ +package se.kth.depclean.wrapper; + +import com.google.common.collect.ImmutableSet; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.io.Serializable; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Arrays; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; +import lombok.AllArgsConstructor; +import lombok.SneakyThrows; +import org.apache.commons.io.FileUtils; +import org.apache.maven.execution.MavenSession; +import org.apache.maven.model.Model; +import org.apache.maven.model.io.xpp3.MavenXpp3Reader; +import org.apache.maven.plugin.logging.Log; +import org.apache.maven.project.DefaultProjectBuildingRequest; +import org.apache.maven.project.MavenProject; +import org.apache.maven.project.ProjectBuildingRequest; +import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder; +import org.apache.maven.shared.dependency.graph.DependencyNode; +import org.codehaus.plexus.util.xml.Xpp3Dom; +import se.kth.depclean.core.AbstractDebloater; +import se.kth.depclean.core.analysis.graph.DependencyGraph; +import se.kth.depclean.core.analysis.model.ProjectDependencyAnalysis; +import se.kth.depclean.core.wrapper.DependencyManagerWrapper; +import se.kth.depclean.graph.MavenDependencyGraph; +import se.kth.depclean.util.JarUtils; +import se.kth.depclean.util.MavenDebloater; +import se.kth.depclean.util.MavenInvoker; +import se.kth.depclean.util.json.ParsedDependencies; + +/** + * Maven's implementation of the dependency manager wrapper. + */ +@AllArgsConstructor +public class MavenDependencyManager implements DependencyManagerWrapper { + + private static final String DIRECTORY_TO_COPY_DEPENDENCIES = "dependency"; + + private final Log logger; + private final MavenProject project; + private final MavenSession session; + private final DependencyGraphBuilder dependencyGraphBuilder; + private final Model model; + + /** + * Creates the manager. + * + * @param logger the logger + * @param project the maven project + * @param session the maven session + * @param dependencyGraphBuilder a tool to build the dependency graph + */ + public MavenDependencyManager(Log logger, MavenProject project, MavenSession session, + DependencyGraphBuilder dependencyGraphBuilder) { + this.logger = logger; + this.project = project; + this.session = session; + this.dependencyGraphBuilder = dependencyGraphBuilder; + + this.model = buildModel(project); + } + + @Override + public Log getLog() { + return logger; + } + + @Override + public boolean isMaven() { + return true; + } + + @Override + public boolean isPackagingPom() { + return project.getPackaging().equals("pom"); + } + + @Override + public void copyAndExtractDependencies() { + /* Copy direct dependencies locally */ + try { + MavenInvoker.runCommand("mvn dependency:copy-dependencies -DoutputDirectory=" + + project.getBuild().getDirectory() + File.separator + DIRECTORY_TO_COPY_DEPENDENCIES); + } catch (IOException | InterruptedException e) { + getLog().error("Unable to resolve all the dependencies."); + Thread.currentThread().interrupt(); + throw new RuntimeException(e); + } + + // TODO remove this workaround later + if (new File(project.getBuild().getDirectory() + File.separator + "libs").exists()) { + try { + FileUtils.copyDirectory(new File(project.getBuild().getDirectory() + File.separator + "libs"), + new File(project.getBuild().getDirectory() + File.separator + DIRECTORY_TO_COPY_DEPENDENCIES) + ); + } catch (IOException | NullPointerException e) { + getLog().error("Error copying directory libs to dependency"); + throw new RuntimeException(e); + } + } + + /* Decompress dependencies */ + String dependencyDirectoryName = + project.getBuild().getDirectory() + "/" + DIRECTORY_TO_COPY_DEPENDENCIES; + File dependencyDirectory = new File(dependencyDirectoryName); + if (dependencyDirectory.exists()) { + JarUtils.decompress(dependencyDirectoryName); + } + } + + @Override + @SneakyThrows + public DependencyGraph dependencyGraph() { + ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest( + session.getProjectBuildingRequest()); + buildingRequest.setProject(project); + DependencyNode rootNode = dependencyGraphBuilder.buildDependencyGraph(buildingRequest, null); + return new MavenDependencyGraph(project, model, rootNode); + } + + @Override + public Path getOutputDirectory() { + return Paths.get(project.getBuild().getOutputDirectory()); + } + + @Override + public Path getTestOutputDirectory() { + return Paths.get(project.getBuild().getTestOutputDirectory()); + } + + private Model buildModel(MavenProject project) { + File pomFile = new File(project.getBasedir().getAbsolutePath() + File.separator + "pom.xml"); + + /* Build Maven model to manipulate the pom */ + final Model model; + FileReader reader; + MavenXpp3Reader mavenReader = new MavenXpp3Reader(); + try { + reader = new FileReader(pomFile); + model = mavenReader.read(reader); + model.setPomFile(pomFile); + } catch (Exception ex) { + getLog().error("Unable to build the maven project."); + throw new RuntimeException(ex); + } + return model; + } + + /** + * Maven processors are defined like this. + *

{@code
+   *       
+   *         org.bsc.maven
+   *         maven-processor-plugin
+   *         
+   *           
+   *             process
+   *             [...]
+   *             
+   *               
+   *                 XXXProcessor
+   *               
+   *             
+   *           
+   *         
+   *       
+   * }
+ */ + @Override + public Set collectUsedClassesFromProcessors() { + getLog().debug("# collectUsedClassesFromProcessors()"); + return Optional.ofNullable(project.getPlugin("org.bsc.maven:maven-processor-plugin")) + .map(plugin -> plugin.getExecutionsAsMap().get("process")) + .map(exec -> (Xpp3Dom) exec.getConfiguration()) + .map(config -> config.getChild("processors")) + .map(Xpp3Dom::getChildren) + .map(arr -> Arrays.stream(arr).map(Xpp3Dom::getValue).collect(Collectors.toSet())) + .orElse(ImmutableSet.of()); + } + + @Override + public AbstractDebloater getDebloater(ProjectDependencyAnalysis analysis) { + return new MavenDebloater( + analysis, + project, + model + ); + } + + @Override + public String getBuildDirectory() { + return project.getBuild().getDirectory(); + } + + @Override + public void generateDependencyTree(File treeFile) throws IOException, InterruptedException { + MavenInvoker.runCommand("mvn dependency:tree -DoutputFile=" + treeFile + " -Dverbose=true"); + } + + @SneakyThrows + @Override + public String getTreeAsJson( + File treeFile, ProjectDependencyAnalysis analysis, File classUsageFile, boolean createClassUsageCsv) { + return new ParsedDependencies( + treeFile, + analysis, + classUsageFile, + createClassUsageCsv + ).parseTreeToJson(); + } +} diff --git a/depclean-maven-plugin/src/test/java/se/kth/depclean/DepCleanMojoIT.java b/depclean-maven-plugin/src/test/java/se/kth/depclean/DepCleanMojoIT.java index 612a3e65..ceffba84 100644 --- a/depclean-maven-plugin/src/test/java/se/kth/depclean/DepCleanMojoIT.java +++ b/depclean-maven-plugin/src/test/java/se/kth/depclean/DepCleanMojoIT.java @@ -121,10 +121,10 @@ void debloated_pom_is_correct(MavenExecutionResult result) { assertThat(result).isSuccessful() .out() .plain().contains( - "[INFO] Starting debloating POM", - "[INFO] Adding 1 used transitive dependencies as direct dependencies.", - "[INFO] Removing 1 unused direct dependencies.", - "[INFO] Excluding 1 unused transitive dependencies one-by-one.", + "[INFO] Starting debloating file", + "[INFO] Adding 1 used transitive dependency as direct dependency.", + "[INFO] Removing 1 unused direct dependency.", + "[INFO] Excluding 1 unused transitive dependency one-by-one.", "[INFO] POM debloated successfully", "[INFO] pom-debloated.xml file created in: " + generated_pom_debloated.getAbsolutePath()); Assertions.assertTrue(generated_pom_debloated.exists()); diff --git a/depclean-maven-plugin/src/test/java/se/kth/depclean/util/MavenInvokerTest.java b/depclean-maven-plugin/src/test/java/se/kth/depclean/util/MavenInvokerTest.java index 252d4bc4..1b586f64 100644 --- a/depclean-maven-plugin/src/test/java/se/kth/depclean/util/MavenInvokerTest.java +++ b/depclean-maven-plugin/src/test/java/se/kth/depclean/util/MavenInvokerTest.java @@ -27,15 +27,15 @@ class MavenInvokerTest { @Test @DisplayName("Test that the Maven dependency tree, then the dependency tree is obtained") void testRunCommandToGetDependencyTree() throws IOException, InterruptedException { - MavenInvoker.runCommand("mvn dependency:tree -DoutputFile=" + producedTree + " -Dverbose=true"); + MavenInvoker.runCommand("mvn dependency:tree -DoutputFile=" + producedTree); assertTrue(producedTree.exists()); assertThat(producedTree).hasSameTextualContentAs(expectedTree); } - @AfterAll - public static void tearDown() throws IOException { - if (producedTree.exists()) { - FileUtils.forceDelete(producedTree); - } - } + //@AfterAll + //public static void tearDown() throws IOException { + // if (producedTree.exists()) { + // FileUtils.forceDelete(producedTree); + // } + //} } \ No newline at end of file diff --git a/depclean-maven-plugin/src/test/resources/DepCleanMojoResources/depclean-results.json b/depclean-maven-plugin/src/test/resources/DepCleanMojoResources/depclean-results.json index 4b0a2d27..7682a8eb 100644 --- a/depclean-maven-plugin/src/test/resources/DepCleanMojoResources/depclean-results.json +++ b/depclean-maven-plugin/src/test/resources/DepCleanMojoResources/depclean-results.json @@ -6,13 +6,13 @@ "version": "1.0.0-SNAPSHOT", "packaging": "jar", "omitted": false, - "size": 1284, + "size": 2859, "type": "unknown", "status": "unknown", "parent": "unknown", "allTypes": [], "usedTypes": [], - "usageRatio": -1.0, + "usageRatio": 0.0, "children": [ { "id": "com.jcabi:jcabi-manifests:jar:1.1:compile", @@ -28,13 +28,13 @@ "status": "used", "parent": "org.foo.bar:foobar:jar:1.0.0-SNAPSHOT", "allTypes": [ - "com.jcabi.manifests.Mfs", - "com.jcabi.manifests.MfMap", - "com.jcabi.manifests.StreamsMfs", + "com.jcabi.manifests.ClasspathMfs", "com.jcabi.manifests.FilesMfs", "com.jcabi.manifests.Manifests", + "com.jcabi.manifests.MfMap", + "com.jcabi.manifests.Mfs", "com.jcabi.manifests.ServletMfs", - "com.jcabi.manifests.ClasspathMfs" + "com.jcabi.manifests.StreamsMfs" ], "usedTypes": [ "com.jcabi.manifests.Manifests" @@ -56,188 +56,188 @@ "status": "bloated", "parent": "org.foo.bar:foobar:jar:1.0.0-SNAPSHOT", "allTypes": [ - "org.apache.commons.io.LineIterator", - "org.apache.commons.io.input.ObservableInputStream", - "org.apache.commons.io.comparator.AbstractFileComparator", - "org.apache.commons.io.output.FilterCollectionWriter", - "org.apache.commons.io.input.ReaderInputStream", - "org.apache.commons.io.output.NullPrintStream", - "org.apache.commons.io.input.XmlStreamReaderException", - "org.apache.commons.io.FileCleaningTracker$Tracker", - "org.apache.commons.io.EndianUtils", - "org.apache.commons.io.serialization.RegexpClassNameMatcher", - "org.apache.commons.io.output.FileWriterWithEncoding", - "org.apache.commons.io.output.AbstractByteArrayOutputStream$InputStreamConstructor", - "org.apache.commons.io.input.CloseShieldInputStream", - "org.apache.commons.io.output.AppendableWriter", - "org.apache.commons.io.filefilter.EmptyFileFilter", - "org.apache.commons.io.input.XmlStreamReader", - "org.apache.commons.io.file.CopyDirectoryVisitor", - "org.apache.commons.io.filefilter.NotFileFilter", - "org.apache.commons.io.filefilter.TrueFileFilter", - "org.apache.commons.io.input.ReversedLinesFileReader$FilePart", - "org.apache.commons.io.input.ObservableInputStream$Observer", - "org.apache.commons.io.filefilter.AgeFileFilter", - "org.apache.commons.io.serialization.ValidatingObjectInputStream", + "org.apache.commons.io.ByteOrderMark", + "org.apache.commons.io.ByteOrderParser", + "org.apache.commons.io.Charsets", "org.apache.commons.io.CopyUtils", - "org.apache.commons.io.IOExceptionWithCause", "org.apache.commons.io.DirectoryWalker", - "org.apache.commons.io.ByteOrderParser", - "org.apache.commons.io.output.ByteArrayOutputStream", + "org.apache.commons.io.DirectoryWalker$CancelException", + "org.apache.commons.io.EndianUtils", + "org.apache.commons.io.FileCleaner", + "org.apache.commons.io.FileCleaningTracker", + "org.apache.commons.io.FileCleaningTracker$Reaper", + "org.apache.commons.io.FileCleaningTracker$Tracker", + "org.apache.commons.io.FileDeleteStrategy", + "org.apache.commons.io.FileDeleteStrategy$ForceFileDeleteStrategy", + "org.apache.commons.io.FileExistsException", + "org.apache.commons.io.FileSystem", + "org.apache.commons.io.FileSystemUtils", + "org.apache.commons.io.FileUtils", + "org.apache.commons.io.FilenameUtils", "org.apache.commons.io.HexDump", - "org.apache.commons.io.filefilter.ConditionalFileFilter", - "org.apache.commons.io.input.ProxyReader", - "org.apache.commons.io.comparator.ExtensionFileComparator", - "org.apache.commons.io.input.buffer.CircularBufferInputStream", - "org.apache.commons.io.serialization.ClassNameMatcher", - "org.apache.commons.io.output.ProxyCollectionWriter", - "org.apache.commons.io.filefilter.DirectoryFileFilter", - "org.apache.commons.io.input.BrokenReader", + "org.apache.commons.io.IOCase", + "org.apache.commons.io.IOExceptionList", + "org.apache.commons.io.IOExceptionWithCause", + "org.apache.commons.io.IOIndexedException", "org.apache.commons.io.IOUtils", - "org.apache.commons.io.file.Counters$Counter", - "org.apache.commons.io.filefilter.SuffixFileFilter", - "org.apache.commons.io.output.ProxyWriter", - "org.apache.commons.io.file.StandardDeleteOption", - "org.apache.commons.io.input.NullInputStream", - "org.apache.commons.io.comparator.LastModifiedFileComparator", + "org.apache.commons.io.LineIterator", "org.apache.commons.io.TaggedIOException", - "org.apache.commons.io.file.Counters$LongPathCounters", - "org.apache.commons.io.FileSystem", - "org.apache.commons.io.input.buffer.PeekableInputStream", - "org.apache.commons.io.file.Counters$LongCounter", - "org.apache.commons.io.FileCleaningTracker", - "org.apache.commons.io.input.UnixLineEndingInputStream", - "org.apache.commons.io.filefilter.DelegateFileFilter", - "org.apache.commons.io.input.Tailer", - "org.apache.commons.io.filefilter.AndFileFilter", - "org.apache.commons.io.input.TeeInputStream", - "org.apache.commons.io.input.BoundedReader", - "org.apache.commons.io.input.WindowsLineEndingInputStream", - "org.apache.commons.io.output.ChunkedOutputStream", - "org.apache.commons.io.file.SimplePathVisitor", - "org.apache.commons.io.input.CharSequenceReader", - "org.apache.commons.io.input.MessageDigestCalculatingInputStream", - "org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream", + "org.apache.commons.io.ThreadMonitor", + "org.apache.commons.io.comparator.AbstractFileComparator", + "org.apache.commons.io.comparator.CompositeFileComparator", "org.apache.commons.io.comparator.DefaultFileComparator", - "org.apache.commons.io.filefilter.NameFileFilter", - "org.apache.commons.io.output.StringBuilderWriter", - "org.apache.commons.io.filefilter.CanExecuteFileFilter", - "org.apache.commons.io.output.TaggedWriter", - "org.apache.commons.io.serialization.FullClassNameMatcher", + "org.apache.commons.io.comparator.DirectoryFileComparator", + "org.apache.commons.io.comparator.ExtensionFileComparator", + "org.apache.commons.io.comparator.LastModifiedFileComparator", + "org.apache.commons.io.comparator.NameFileComparator", + "org.apache.commons.io.comparator.PathFileComparator", + "org.apache.commons.io.comparator.ReverseFileComparator", + "org.apache.commons.io.comparator.SizeFileComparator", + "org.apache.commons.io.file.AccumulatorPathVisitor", + "org.apache.commons.io.file.CleaningPathVisitor", + "org.apache.commons.io.file.CopyDirectoryVisitor", + "org.apache.commons.io.file.Counters", "org.apache.commons.io.file.Counters$1", + "org.apache.commons.io.file.Counters$AbstractPathCounters", + "org.apache.commons.io.file.Counters$BigIntegerCounter", + "org.apache.commons.io.file.Counters$BigIntegerPathCounters", + "org.apache.commons.io.file.Counters$Counter", + "org.apache.commons.io.file.Counters$LongCounter", + "org.apache.commons.io.file.Counters$LongPathCounters", + "org.apache.commons.io.file.Counters$PathCounters", + "org.apache.commons.io.file.CountingPathVisitor", "org.apache.commons.io.file.DeleteOption", - "org.apache.commons.io.output.TeeOutputStream", - "org.apache.commons.io.file.AccumulatorPathVisitor", - "org.apache.commons.io.Charsets", - "org.apache.commons.io.output.XmlStreamWriter", - "org.apache.commons.io.output.CountingOutputStream", + "org.apache.commons.io.file.DeletingPathVisitor", + "org.apache.commons.io.file.PathUtils", "org.apache.commons.io.file.PathUtils$1", - "org.apache.commons.io.input.InfiniteCircularInputStream", - "org.apache.commons.io.monitor.FileAlterationListener", - "org.apache.commons.io.output.DeferredFileOutputStream", - "org.apache.commons.io.comparator.CompositeFileComparator", - "org.apache.commons.io.output.ChunkedWriter", - "org.apache.commons.io.FileUtils", - "org.apache.commons.io.output.BrokenOutputStream", - "org.apache.commons.io.input.SwappedDataInputStream", - "org.apache.commons.io.output.TaggedOutputStream", - "org.apache.commons.io.comparator.SizeFileComparator", "org.apache.commons.io.file.PathUtils$RelativeSortedPaths", - "org.apache.commons.io.input.RandomAccessFileInputStream", - "org.apache.commons.io.input.NullReader", - "org.apache.commons.io.filefilter.WildcardFilter", - "org.apache.commons.io.output.NullOutputStream", - "org.apache.commons.io.output.LockableFileWriter", - "org.apache.commons.io.filefilter.WildcardFileFilter", - "org.apache.commons.io.comparator.DirectoryFileComparator", - "org.apache.commons.io.output.WriterOutputStream", + "org.apache.commons.io.file.SimplePathVisitor", + "org.apache.commons.io.file.StandardDeleteOption", + "org.apache.commons.io.filefilter.AbstractFileFilter", + "org.apache.commons.io.filefilter.AgeFileFilter", + "org.apache.commons.io.filefilter.AndFileFilter", + "org.apache.commons.io.filefilter.CanExecuteFileFilter", + "org.apache.commons.io.filefilter.CanReadFileFilter", + "org.apache.commons.io.filefilter.CanWriteFileFilter", + "org.apache.commons.io.filefilter.ConditionalFileFilter", + "org.apache.commons.io.filefilter.DelegateFileFilter", + "org.apache.commons.io.filefilter.DirectoryFileFilter", + "org.apache.commons.io.filefilter.EmptyFileFilter", + "org.apache.commons.io.filefilter.FalseFileFilter", + "org.apache.commons.io.filefilter.FileFileFilter", + "org.apache.commons.io.filefilter.FileFilterUtils", + "org.apache.commons.io.filefilter.HiddenFileFilter", "org.apache.commons.io.filefilter.IOFileFilter", - "org.apache.commons.io.input.CloseShieldReader", "org.apache.commons.io.filefilter.MagicNumberFileFilter", - "org.apache.commons.io.input.BoundedInputStream", - "org.apache.commons.io.input.TaggedReader", - "org.apache.commons.io.output.NullWriter", - "org.apache.commons.io.monitor.FileAlterationObserver", - "org.apache.commons.io.input.CharacterSetFilterReader", - "org.apache.commons.io.file.Counters$BigIntegerPathCounters", - "org.apache.commons.io.filefilter.FileFilterUtils", + "org.apache.commons.io.filefilter.NameFileFilter", + "org.apache.commons.io.filefilter.NotFileFilter", + "org.apache.commons.io.filefilter.OrFileFilter", + "org.apache.commons.io.filefilter.PrefixFileFilter", + "org.apache.commons.io.filefilter.RegexFileFilter", + "org.apache.commons.io.filefilter.SizeFileFilter", + "org.apache.commons.io.filefilter.SuffixFileFilter", + "org.apache.commons.io.filefilter.TrueFileFilter", + "org.apache.commons.io.filefilter.WildcardFileFilter", + "org.apache.commons.io.filefilter.WildcardFilter", + "org.apache.commons.io.function.IOConsumer", + "org.apache.commons.io.function.IOFunction", + "org.apache.commons.io.function.IOSupplier", "org.apache.commons.io.input.AbstractCharacterFilterReader", - "org.apache.commons.io.input.CharacterFilterReader", - "org.apache.commons.io.file.Counters$AbstractPathCounters", - "org.apache.commons.io.output.CloseShieldWriter", + "org.apache.commons.io.input.AutoCloseInputStream", "org.apache.commons.io.input.BOMInputStream", - "org.apache.commons.io.file.Counters$BigIntegerCounter", - "org.apache.commons.io.input.TaggedInputStream", - "org.apache.commons.io.output.AbstractByteArrayOutputStream", - "org.apache.commons.io.input.ReversedLinesFileReader$1", - "org.apache.commons.io.IOIndexedException", - "org.apache.commons.io.filefilter.AbstractFileFilter", - "org.apache.commons.io.ByteOrderMark", - "org.apache.commons.io.comparator.ReverseFileComparator", - "org.apache.commons.io.filefilter.FileFileFilter", - "org.apache.commons.io.input.DemuxInputStream", - "org.apache.commons.io.output.ProxyOutputStream", - "org.apache.commons.io.function.IOSupplier", - "org.apache.commons.io.filefilter.HiddenFileFilter", - "org.apache.commons.io.file.CountingPathVisitor", - "org.apache.commons.io.input.buffer.CircularByteBuffer", - "org.apache.commons.io.FileExistsException", + "org.apache.commons.io.input.BoundedInputStream", + "org.apache.commons.io.input.BoundedReader", "org.apache.commons.io.input.BrokenInputStream", - "org.apache.commons.io.IOExceptionList", - "org.apache.commons.io.filefilter.FalseFileFilter", - "org.apache.commons.io.function.IOConsumer", + "org.apache.commons.io.input.BrokenReader", + "org.apache.commons.io.input.CharSequenceInputStream", + "org.apache.commons.io.input.CharSequenceReader", + "org.apache.commons.io.input.CharacterFilterReader", + "org.apache.commons.io.input.CharacterSetFilterReader", + "org.apache.commons.io.input.CircularInputStream", + "org.apache.commons.io.input.ClassLoaderObjectInputStream", + "org.apache.commons.io.input.CloseShieldInputStream", + "org.apache.commons.io.input.CloseShieldReader", + "org.apache.commons.io.input.ClosedInputStream", + "org.apache.commons.io.input.ClosedReader", + "org.apache.commons.io.input.CountingInputStream", + "org.apache.commons.io.input.DemuxInputStream", + "org.apache.commons.io.input.InfiniteCircularInputStream", + "org.apache.commons.io.input.MarkShieldInputStream", + "org.apache.commons.io.input.MessageDigestCalculatingInputStream", + "org.apache.commons.io.input.MessageDigestCalculatingInputStream$MessageDigestMaintainingObserver", + "org.apache.commons.io.input.NullInputStream", + "org.apache.commons.io.input.NullReader", + "org.apache.commons.io.input.ObservableInputStream", + "org.apache.commons.io.input.ObservableInputStream$Observer", + "org.apache.commons.io.input.ProxyInputStream", + "org.apache.commons.io.input.ProxyReader", + "org.apache.commons.io.input.RandomAccessFileInputStream", + "org.apache.commons.io.input.ReaderInputStream", + "org.apache.commons.io.input.ReversedLinesFileReader", + "org.apache.commons.io.input.ReversedLinesFileReader$1", + "org.apache.commons.io.input.ReversedLinesFileReader$FilePart", + "org.apache.commons.io.input.SequenceReader", + "org.apache.commons.io.input.SwappedDataInputStream", + "org.apache.commons.io.input.TaggedInputStream", + "org.apache.commons.io.input.TaggedReader", + "org.apache.commons.io.input.Tailer", "org.apache.commons.io.input.TailerListener", - "org.apache.commons.io.file.DeletingPathVisitor", - "org.apache.commons.io.filefilter.CanReadFileFilter", - "org.apache.commons.io.output.DemuxOutputStream", - "org.apache.commons.io.FilenameUtils", - "org.apache.commons.io.DirectoryWalker$CancelException", + "org.apache.commons.io.input.TailerListenerAdapter", + "org.apache.commons.io.input.TeeInputStream", + "org.apache.commons.io.input.TeeReader", + "org.apache.commons.io.input.UnixLineEndingInputStream", + "org.apache.commons.io.input.UnsynchronizedByteArrayInputStream", + "org.apache.commons.io.input.WindowsLineEndingInputStream", + "org.apache.commons.io.input.XmlStreamReader", + "org.apache.commons.io.input.XmlStreamReaderException", + "org.apache.commons.io.input.buffer.CircularBufferInputStream", + "org.apache.commons.io.input.buffer.CircularByteBuffer", + "org.apache.commons.io.input.buffer.PeekableInputStream", + "org.apache.commons.io.monitor.FileAlterationListener", + "org.apache.commons.io.monitor.FileAlterationListenerAdaptor", + "org.apache.commons.io.monitor.FileAlterationMonitor", + "org.apache.commons.io.monitor.FileAlterationObserver", "org.apache.commons.io.monitor.FileEntry", - "org.apache.commons.io.IOCase", - "org.apache.commons.io.FileDeleteStrategy", - "org.apache.commons.io.file.CleaningPathVisitor", - "org.apache.commons.io.FileSystemUtils", + "org.apache.commons.io.output.AbstractByteArrayOutputStream", + "org.apache.commons.io.output.AbstractByteArrayOutputStream$InputStreamConstructor", "org.apache.commons.io.output.AppendableOutputStream", - "org.apache.commons.io.function.IOFunction", + "org.apache.commons.io.output.AppendableWriter", + "org.apache.commons.io.output.BrokenOutputStream", "org.apache.commons.io.output.BrokenWriter", - "org.apache.commons.io.comparator.PathFileComparator", - "org.apache.commons.io.filefilter.SizeFileFilter", - "org.apache.commons.io.input.ReversedLinesFileReader", - "org.apache.commons.io.output.TeeWriter", - "org.apache.commons.io.monitor.FileAlterationListenerAdaptor", - "org.apache.commons.io.filefilter.OrFileFilter", - "org.apache.commons.io.input.TeeReader", - "org.apache.commons.io.input.MessageDigestCalculatingInputStream$MessageDigestMaintainingObserver", - "org.apache.commons.io.input.TailerListenerAdapter", - "org.apache.commons.io.input.MarkShieldInputStream", - "org.apache.commons.io.filefilter.RegexFileFilter", - "org.apache.commons.io.file.Counters", + "org.apache.commons.io.output.ByteArrayOutputStream", + "org.apache.commons.io.output.ChunkedOutputStream", + "org.apache.commons.io.output.ChunkedWriter", "org.apache.commons.io.output.CloseShieldOutputStream", + "org.apache.commons.io.output.CloseShieldWriter", "org.apache.commons.io.output.ClosedOutputStream", "org.apache.commons.io.output.ClosedWriter", - "org.apache.commons.io.input.ClosedInputStream", - "org.apache.commons.io.input.CountingInputStream", - "org.apache.commons.io.input.UnsynchronizedByteArrayInputStream", - "org.apache.commons.io.ThreadMonitor", - "org.apache.commons.io.monitor.FileAlterationMonitor", - "org.apache.commons.io.FileCleaner", - "org.apache.commons.io.serialization.WildcardClassNameMatcher", - "org.apache.commons.io.input.CharSequenceInputStream", - "org.apache.commons.io.filefilter.PrefixFileFilter", - "org.apache.commons.io.comparator.NameFileComparator", - "org.apache.commons.io.FileCleaningTracker$Reaper", - "org.apache.commons.io.file.Counters$PathCounters", + "org.apache.commons.io.output.CountingOutputStream", + "org.apache.commons.io.output.DeferredFileOutputStream", + "org.apache.commons.io.output.DemuxOutputStream", + "org.apache.commons.io.output.FileWriterWithEncoding", + "org.apache.commons.io.output.FilterCollectionWriter", + "org.apache.commons.io.output.LockableFileWriter", "org.apache.commons.io.output.NullAppendable", - "org.apache.commons.io.FileDeleteStrategy$ForceFileDeleteStrategy", - "org.apache.commons.io.input.AutoCloseInputStream", - "org.apache.commons.io.file.PathUtils", - "org.apache.commons.io.input.ProxyInputStream", + "org.apache.commons.io.output.NullOutputStream", + "org.apache.commons.io.output.NullPrintStream", + "org.apache.commons.io.output.NullWriter", + "org.apache.commons.io.output.ProxyCollectionWriter", + "org.apache.commons.io.output.ProxyOutputStream", + "org.apache.commons.io.output.ProxyWriter", + "org.apache.commons.io.output.StringBuilderWriter", + "org.apache.commons.io.output.TaggedOutputStream", + "org.apache.commons.io.output.TaggedWriter", + "org.apache.commons.io.output.TeeOutputStream", + "org.apache.commons.io.output.TeeWriter", "org.apache.commons.io.output.ThresholdingOutputStream", - "org.apache.commons.io.input.ClassLoaderObjectInputStream", - "org.apache.commons.io.input.ClosedReader", - "org.apache.commons.io.input.SequenceReader", - "org.apache.commons.io.filefilter.CanWriteFileFilter", - "org.apache.commons.io.input.CircularInputStream" + "org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream", + "org.apache.commons.io.output.WriterOutputStream", + "org.apache.commons.io.output.XmlStreamWriter", + "org.apache.commons.io.serialization.ClassNameMatcher", + "org.apache.commons.io.serialization.FullClassNameMatcher", + "org.apache.commons.io.serialization.RegexpClassNameMatcher", + "org.apache.commons.io.serialization.ValidatingObjectInputStream", + "org.apache.commons.io.serialization.WildcardClassNameMatcher" ], "usedTypes": [], "usageRatio": 0.0, @@ -257,112 +257,112 @@ "status": "used", "parent": "org.foo.bar:foobar:jar:1.0.0-SNAPSHOT", "allTypes": [ + "org.apache.commons.codec.BinaryDecoder", + "org.apache.commons.codec.BinaryEncoder", + "org.apache.commons.codec.CharEncoding", + "org.apache.commons.codec.Charsets", + "org.apache.commons.codec.CodecPolicy", + "org.apache.commons.codec.Decoder", + "org.apache.commons.codec.DecoderException", + "org.apache.commons.codec.Encoder", "org.apache.commons.codec.EncoderException", - "org.apache.commons.codec.language.DoubleMetaphone$DoubleMetaphoneResult", - "org.apache.commons.codec.language.ColognePhonetic$CologneBuffer", - "org.apache.commons.codec.language.SoundexUtils", - "org.apache.commons.codec.net.Utils", - "org.apache.commons.codec.digest.MurmurHash2", - "org.apache.commons.codec.digest.MurmurHash3", + "org.apache.commons.codec.Resources", + "org.apache.commons.codec.StringDecoder", + "org.apache.commons.codec.StringEncoder", + "org.apache.commons.codec.StringEncoderComparator", + "org.apache.commons.codec.binary.Base16", + "org.apache.commons.codec.binary.Base16InputStream", + "org.apache.commons.codec.binary.Base16OutputStream", + "org.apache.commons.codec.binary.Base32", "org.apache.commons.codec.binary.Base32InputStream", - "org.apache.commons.codec.language.ColognePhonetic$CologneOutputBuffer", + "org.apache.commons.codec.binary.Base32OutputStream", "org.apache.commons.codec.binary.Base64", - "org.apache.commons.codec.language.Caverphone1", - "org.apache.commons.codec.language.Caverphone2", - "org.apache.commons.codec.language.bm.Languages$2", - "org.apache.commons.codec.language.Caverphone", - "org.apache.commons.codec.digest.MurmurHash3$IncrementalHash32", - "org.apache.commons.codec.Charsets", - "org.apache.commons.codec.language.bm.Languages$1", + "org.apache.commons.codec.binary.Base64InputStream", + "org.apache.commons.codec.binary.Base64OutputStream", "org.apache.commons.codec.binary.BaseNCodec", - "org.apache.commons.codec.digest.HmacUtils", - "org.apache.commons.codec.language.bm.PhoneticEngine$RulesApplication", - "org.apache.commons.codec.DecoderException", - "org.apache.commons.codec.digest.Crypt", + "org.apache.commons.codec.binary.BaseNCodec$Context", + "org.apache.commons.codec.binary.BaseNCodecInputStream", + "org.apache.commons.codec.binary.BaseNCodecOutputStream", "org.apache.commons.codec.binary.BinaryCodec", - "org.apache.commons.codec.language.bm.Rule$PhonemeExpr", - "org.apache.commons.codec.net.QuotedPrintableCodec", + "org.apache.commons.codec.binary.CharSequenceUtils", + "org.apache.commons.codec.binary.Hex", + "org.apache.commons.codec.binary.StringUtils", "org.apache.commons.codec.cli.Digest", - "org.apache.commons.codec.language.DaitchMokotoffSoundex$1", - "org.apache.commons.codec.digest.Sha2Crypt", - "org.apache.commons.codec.net.RFC1522Codec", + "org.apache.commons.codec.digest.B64", + "org.apache.commons.codec.digest.Crypt", + "org.apache.commons.codec.digest.DigestUtils", + "org.apache.commons.codec.digest.HmacAlgorithms", + "org.apache.commons.codec.digest.HmacUtils", "org.apache.commons.codec.digest.Md5Crypt", - "org.apache.commons.codec.language.DaitchMokotoffSoundex$Rule", - "org.apache.commons.codec.language.Nysiis", - "org.apache.commons.codec.net.QCodec", - "org.apache.commons.codec.CodecPolicy", - "org.apache.commons.codec.language.bm.Languages$LanguageSet", - "org.apache.commons.codec.language.bm.PhoneticEngine$PhonemeBuilder", - "org.apache.commons.codec.language.bm.Languages", + "org.apache.commons.codec.digest.MessageDigestAlgorithms", + "org.apache.commons.codec.digest.MurmurHash2", + "org.apache.commons.codec.digest.MurmurHash3", + "org.apache.commons.codec.digest.MurmurHash3$IncrementalHash32", + "org.apache.commons.codec.digest.MurmurHash3$IncrementalHash32x86", + "org.apache.commons.codec.digest.PureJavaCrc32", "org.apache.commons.codec.digest.PureJavaCrc32C", - "org.apache.commons.codec.language.Metaphone", + "org.apache.commons.codec.digest.Sha2Crypt", + "org.apache.commons.codec.digest.UnixCrypt", + "org.apache.commons.codec.digest.XXHash32", + "org.apache.commons.codec.language.AbstractCaverphone", + "org.apache.commons.codec.language.Caverphone", + "org.apache.commons.codec.language.Caverphone1", + "org.apache.commons.codec.language.Caverphone2", + "org.apache.commons.codec.language.ColognePhonetic", + "org.apache.commons.codec.language.ColognePhonetic$CologneBuffer", + "org.apache.commons.codec.language.ColognePhonetic$CologneInputBuffer", + "org.apache.commons.codec.language.ColognePhonetic$CologneOutputBuffer", + "org.apache.commons.codec.language.DaitchMokotoffSoundex", + "org.apache.commons.codec.language.DaitchMokotoffSoundex$1", "org.apache.commons.codec.language.DaitchMokotoffSoundex$Branch", - "org.apache.commons.codec.digest.HmacAlgorithms", + "org.apache.commons.codec.language.DaitchMokotoffSoundex$Rule", + "org.apache.commons.codec.language.DoubleMetaphone", + "org.apache.commons.codec.language.DoubleMetaphone$DoubleMetaphoneResult", + "org.apache.commons.codec.language.MatchRatingApproachEncoder", + "org.apache.commons.codec.language.Metaphone", + "org.apache.commons.codec.language.Nysiis", + "org.apache.commons.codec.language.RefinedSoundex", "org.apache.commons.codec.language.Soundex", - "org.apache.commons.codec.digest.PureJavaCrc32", - "org.apache.commons.codec.language.bm.Rule$RPattern", + "org.apache.commons.codec.language.SoundexUtils", "org.apache.commons.codec.language.bm.BeiderMorseEncoder", - "org.apache.commons.codec.language.ColognePhonetic$CologneInputBuffer", - "org.apache.commons.codec.language.DoubleMetaphone", - "org.apache.commons.codec.binary.Base16OutputStream", - "org.apache.commons.codec.language.bm.Rule$PhonemeList", - "org.apache.commons.codec.language.bm.Rule", - "org.apache.commons.codec.StringEncoderComparator", - "org.apache.commons.codec.language.bm.PhoneticEngine", - "org.apache.commons.codec.language.bm.PhoneticEngine$1", - "org.apache.commons.codec.digest.UnixCrypt", - "org.apache.commons.codec.binary.BaseNCodecOutputStream", - "org.apache.commons.codec.language.bm.Rule$Phoneme", - "org.apache.commons.codec.language.bm.ResourceConstants", "org.apache.commons.codec.language.bm.Lang", - "org.apache.commons.codec.net.BCodec", - "org.apache.commons.codec.binary.Base32OutputStream", - "org.apache.commons.codec.Encoder", + "org.apache.commons.codec.language.bm.Lang$1", "org.apache.commons.codec.language.bm.Lang$LangRule", - "org.apache.commons.codec.language.AbstractCaverphone", - "org.apache.commons.codec.BinaryDecoder", - "org.apache.commons.codec.binary.Base32", - "org.apache.commons.codec.binary.BaseNCodec$Context", - "org.apache.commons.codec.binary.Base16InputStream", - "org.apache.commons.codec.language.DaitchMokotoffSoundex", - "org.apache.commons.codec.net.PercentCodec", - "org.apache.commons.codec.binary.Base64InputStream", + "org.apache.commons.codec.language.bm.Languages", + "org.apache.commons.codec.language.bm.Languages$1", + "org.apache.commons.codec.language.bm.Languages$2", + "org.apache.commons.codec.language.bm.Languages$LanguageSet", + "org.apache.commons.codec.language.bm.Languages$SomeLanguages", "org.apache.commons.codec.language.bm.NameType", - "org.apache.commons.codec.BinaryEncoder", - "org.apache.commons.codec.Resources", - "org.apache.commons.codec.binary.Hex", - "org.apache.commons.codec.binary.CharSequenceUtils", - "org.apache.commons.codec.StringDecoder", + "org.apache.commons.codec.language.bm.PhoneticEngine", + "org.apache.commons.codec.language.bm.PhoneticEngine$1", + "org.apache.commons.codec.language.bm.PhoneticEngine$PhonemeBuilder", + "org.apache.commons.codec.language.bm.PhoneticEngine$RulesApplication", + "org.apache.commons.codec.language.bm.ResourceConstants", + "org.apache.commons.codec.language.bm.Rule", + "org.apache.commons.codec.language.bm.Rule$1", "org.apache.commons.codec.language.bm.Rule$10", - "org.apache.commons.codec.Decoder", - "org.apache.commons.codec.digest.XXHash32", - "org.apache.commons.codec.language.bm.Lang$1", - "org.apache.commons.codec.binary.Base64OutputStream", - "org.apache.commons.codec.language.RefinedSoundex", - "org.apache.commons.codec.language.MatchRatingApproachEncoder", - "org.apache.commons.codec.language.bm.Rule$Phoneme$1", - "org.apache.commons.codec.StringEncoder", - "org.apache.commons.codec.binary.Base16", - "org.apache.commons.codec.language.bm.Rule$8", - "org.apache.commons.codec.digest.MurmurHash3$IncrementalHash32x86", - "org.apache.commons.codec.language.bm.Rule$7", - "org.apache.commons.codec.language.bm.Rule$9", - "org.apache.commons.codec.language.bm.Rule$4", - "org.apache.commons.codec.digest.B64", + "org.apache.commons.codec.language.bm.Rule$2", "org.apache.commons.codec.language.bm.Rule$3", - "org.apache.commons.codec.binary.BaseNCodecInputStream", - "org.apache.commons.codec.digest.MessageDigestAlgorithms", - "org.apache.commons.codec.language.bm.Rule$6", - "org.apache.commons.codec.CharEncoding", + "org.apache.commons.codec.language.bm.Rule$4", "org.apache.commons.codec.language.bm.Rule$5", - "org.apache.commons.codec.language.bm.Rule$2", - "org.apache.commons.codec.net.URLCodec", - "org.apache.commons.codec.language.bm.Rule$1", - "org.apache.commons.codec.binary.StringUtils", - "org.apache.commons.codec.digest.DigestUtils", - "org.apache.commons.codec.language.ColognePhonetic", + "org.apache.commons.codec.language.bm.Rule$6", + "org.apache.commons.codec.language.bm.Rule$7", + "org.apache.commons.codec.language.bm.Rule$8", + "org.apache.commons.codec.language.bm.Rule$9", + "org.apache.commons.codec.language.bm.Rule$Phoneme", + "org.apache.commons.codec.language.bm.Rule$Phoneme$1", + "org.apache.commons.codec.language.bm.Rule$PhonemeExpr", + "org.apache.commons.codec.language.bm.Rule$PhonemeList", + "org.apache.commons.codec.language.bm.Rule$RPattern", "org.apache.commons.codec.language.bm.RuleType", - "org.apache.commons.codec.language.bm.Languages$SomeLanguages" + "org.apache.commons.codec.net.BCodec", + "org.apache.commons.codec.net.PercentCodec", + "org.apache.commons.codec.net.QCodec", + "org.apache.commons.codec.net.QuotedPrintableCodec", + "org.apache.commons.codec.net.RFC1522Codec", + "org.apache.commons.codec.net.URLCodec", + "org.apache.commons.codec.net.Utils" ], "usedTypes": [ "org.apache.commons.codec.Charsets" diff --git a/depclean-maven-plugin/src/test/resources/DepCleanMojoResources/pom-debloated.xml b/depclean-maven-plugin/src/test/resources/DepCleanMojoResources/pom-debloated.xml index 775c20a1..db33fc1a 100644 --- a/depclean-maven-plugin/src/test/resources/DepCleanMojoResources/pom-debloated.xml +++ b/depclean-maven-plugin/src/test/resources/DepCleanMojoResources/pom-debloated.xml @@ -14,12 +14,6 @@ UTF-8 - - org.mapstruct - mapstruct-processor - ${mapstruct.version} - provided - com.fasterxml.jackson.core jackson-core @@ -27,6 +21,13 @@ compile false + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + provided + false + diff --git a/depclean-maven-plugin/src/test/resources/MavenInvokerResources/basic_spring_maven_project/tree_expected.txt b/depclean-maven-plugin/src/test/resources/MavenInvokerResources/basic_spring_maven_project/tree_expected.txt index 98aad83f..44867c28 100644 --- a/depclean-maven-plugin/src/test/resources/MavenInvokerResources/basic_spring_maven_project/tree_expected.txt +++ b/depclean-maven-plugin/src/test/resources/MavenInvokerResources/basic_spring_maven_project/tree_expected.txt @@ -3,161 +3,77 @@ se.kth.castor:depclean-maven-plugin:maven-plugin:2.0.2-SNAPSHOT | +- org.ow2.asm:asm:jar:9.1:compile | +- org.codehaus.plexus:plexus-component-annotations:jar:2.0.0:compile | +- org.codehaus.plexus:plexus-utils:jar:3.3.0:compile -| +- (org.apache.maven:maven-core:jar:3.6.2:compile - omitted for conflict with 3.6.0) | +- org.jgrapht:jgrapht-core:jar:1.3.0:compile | | \- org.jheaps:jheaps:jar:0.9:compile | +- org.jetbrains:annotations:jar:17.0.0:compile -| +- (org.slf4j:slf4j-api:jar:2.0.0-alpha1:compile - omitted for duplicate) -| \- (org.slf4j:slf4j-log4j12:jar:1.8.0-beta4:compile - omitted for duplicate) +| \- com.google.guava:guava:jar:30.1-jre:compile +| +- com.google.guava:failureaccess:jar:1.0.1:compile +| +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile +| +- com.google.code.findbugs:jsr305:jar:3.0.2:compile +| +- org.checkerframework:checker-qual:jar:3.5.0:compile +| +- com.google.errorprone:error_prone_annotations:jar:2.3.4:compile +| \- com.google.j2objc:j2objc-annotations:jar:1.3:compile +- org.apache.maven:maven-core:jar:3.6.0:compile | +- org.apache.maven:maven-model:jar:3.6.0:compile -| | \- (org.codehaus.plexus:plexus-utils:jar:3.1.0:compile - omitted for conflict with 3.3.0) | +- org.apache.maven:maven-settings:jar:3.6.0:compile -| | \- (org.codehaus.plexus:plexus-utils:jar:3.1.0:compile - omitted for conflict with 3.3.0) | +- org.apache.maven:maven-settings-builder:jar:3.6.0:compile -| | +- (org.apache.maven:maven-builder-support:jar:3.6.0:compile - omitted for duplicate) -| | +- (org.codehaus.plexus:plexus-utils:jar:3.1.0:compile - omitted for conflict with 3.3.0) -| | +- (org.codehaus.plexus:plexus-interpolation:jar:1.25:compile - omitted for conflict with 1.1) -| | +- (org.codehaus.plexus:plexus-component-annotations:jar:1.7.1:compile - omitted for conflict with 2.0.0) -| | +- (org.apache.maven:maven-settings:jar:3.6.0:compile - omitted for duplicate) | | \- org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4:compile -| | +- (org.codehaus.plexus:plexus-utils:jar:1.5.5:compile - omitted for conflict with 3.3.0) | | \- org.sonatype.plexus:plexus-cipher:jar:1.4:compile | +- org.apache.maven:maven-builder-support:jar:3.6.0:compile | +- org.apache.maven:maven-repository-metadata:jar:3.6.0:compile -| | \- (org.codehaus.plexus:plexus-utils:jar:3.1.0:compile - omitted for conflict with 3.3.0) | +- org.apache.maven:maven-artifact:jar:3.6.0:compile -| | +- (org.codehaus.plexus:plexus-utils:jar:3.1.0:compile - omitted for conflict with 3.3.0) -| | \- (org.apache.commons:commons-lang3:jar:3.8.1:compile - omitted for duplicate) -| +- (org.apache.maven:maven-plugin-api:jar:3.6.0:compile - omitted for duplicate) | +- org.apache.maven:maven-model-builder:jar:3.6.0:compile -| | +- (org.codehaus.plexus:plexus-utils:jar:3.1.0:compile - omitted for conflict with 3.3.0) -| | +- (org.codehaus.plexus:plexus-interpolation:jar:1.25:compile - omitted for duplicate) -| | +- (org.codehaus.plexus:plexus-component-annotations:jar:1.7.1:compile - omitted for conflict with 2.0.0) -| | +- (org.apache.maven:maven-model:jar:3.6.0:compile - omitted for duplicate) -| | +- (org.apache.maven:maven-artifact:jar:3.6.0:compile - omitted for duplicate) -| | \- (org.apache.maven:maven-builder-support:jar:3.6.0:compile - omitted for duplicate) | +- org.apache.maven:maven-resolver-provider:jar:3.6.0:compile -| | +- (org.apache.maven:maven-model:jar:3.6.0:compile - omitted for duplicate) -| | +- (org.apache.maven:maven-model-builder:jar:3.6.0:compile - omitted for duplicate) -| | +- (org.apache.maven:maven-repository-metadata:jar:3.6.0:compile - omitted for duplicate) -| | +- (org.apache.maven.resolver:maven-resolver-api:jar:1.3.1:compile - omitted for duplicate) -| | +- (org.apache.maven.resolver:maven-resolver-spi:jar:1.3.1:compile - omitted for duplicate) -| | +- (org.apache.maven.resolver:maven-resolver-util:jar:1.3.1:compile - omitted for duplicate) -| | +- (org.apache.maven.resolver:maven-resolver-impl:jar:1.3.1:compile - omitted for duplicate) -| | +- (org.codehaus.plexus:plexus-utils:jar:3.1.0:compile - omitted for conflict with 3.3.0) -| | +- (javax.inject:javax.inject:jar:1:compile - omitted for duplicate) -| | \- (org.slf4j:slf4j-api:jar:1.7.25:compile - omitted for conflict with 2.0.0-alpha1) | +- org.apache.maven.resolver:maven-resolver-impl:jar:1.3.1:compile -| | +- (org.apache.maven.resolver:maven-resolver-api:jar:1.3.1:compile - omitted for duplicate) -| | +- (org.apache.maven.resolver:maven-resolver-spi:jar:1.3.1:compile - omitted for duplicate) -| | +- (org.apache.maven.resolver:maven-resolver-util:jar:1.3.1:compile - omitted for duplicate) -| | \- (org.slf4j:slf4j-api:jar:1.7.25:compile - omitted for conflict with 2.0.0-alpha1) | +- org.apache.maven.resolver:maven-resolver-api:jar:1.3.1:compile | +- org.apache.maven.resolver:maven-resolver-spi:jar:1.3.1:compile -| | \- (org.apache.maven.resolver:maven-resolver-api:jar:1.3.1:compile - omitted for duplicate) | +- org.apache.maven.resolver:maven-resolver-util:jar:1.3.1:compile -| | \- (org.apache.maven.resolver:maven-resolver-api:jar:1.3.1:compile - omitted for duplicate) | +- org.apache.maven.shared:maven-shared-utils:jar:3.2.1:compile -| | \- (commons-io:commons-io:jar:2.5:compile - omitted for duplicate) | +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.3:compile -| | +- javax.enterprise:cdi-api:jar:1.0:compile -| | | +- javax.annotation:jsr250-api:jar:1.0:compile -| | | \- (javax.inject:javax.inject:jar:1:compile - omitted for duplicate) -| | +- (org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.3:compile - omitted for duplicate) -| | +- (org.codehaus.plexus:plexus-component-annotations:jar:1.5.5:compile - omitted for conflict with 2.0.0) -| | +- (org.codehaus.plexus:plexus-classworlds:jar:2.5.2:compile - omitted for duplicate) -| | \- (org.codehaus.plexus:plexus-utils:jar:3.0.17:compile - omitted for conflict with 3.3.0) +| | \- javax.enterprise:cdi-api:jar:1.0:compile +| | \- javax.annotation:jsr250-api:jar:1.0:compile | +- org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.3:compile | +- com.google.inject:guice:jar:no_aop:4.2.1:compile -| | +- (javax.inject:javax.inject:jar:1:compile - omitted for duplicate) -| | +- aopalliance:aopalliance:jar:1.0:compile -| | \- com.google.guava:guava:jar:25.1-android:compile -| | +- com.google.code.findbugs:jsr305:jar:3.0.2:compile -| | +- org.checkerframework:checker-compat-qual:jar:2.0.0:compile -| | +- com.google.errorprone:error_prone_annotations:jar:2.1.3:compile -| | +- com.google.j2objc:j2objc-annotations:jar:1.1:compile -| | \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile +| | \- aopalliance:aopalliance:jar:1.0:compile | +- javax.inject:javax.inject:jar:1:compile -| +- (org.codehaus.plexus:plexus-utils:jar:3.1.0:compile - omitted for conflict with 3.3.0) | +- org.codehaus.plexus:plexus-classworlds:jar:2.5.2:compile -| +- (org.codehaus.plexus:plexus-component-annotations:jar:1.7.1:compile - omitted for conflict with 2.0.0) | \- org.apache.commons:commons-lang3:jar:3.8.1:compile +- org.apache.maven:maven-plugin-api:jar:3.6.0:compile -| +- (org.apache.maven:maven-model:jar:3.6.0:compile - omitted for duplicate) -| +- (org.apache.maven:maven-artifact:jar:3.6.0:compile - omitted for duplicate) -| +- (org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.3:compile - omitted for duplicate) -| +- (org.codehaus.plexus:plexus-utils:jar:3.1.0:compile - omitted for conflict with 3.3.0) -| \- (org.codehaus.plexus:plexus-classworlds:jar:2.5.2:compile - omitted for duplicate) +- org.apache.maven:maven-project:jar:3.0-alpha-2:compile -| +- (org.apache.maven:maven-model:jar:3.0-alpha-2:compile - omitted for conflict with 3.6.0) -| +- (org.codehaus.plexus:plexus-utils:jar:1.5.6:compile - omitted for conflict with 3.3.0) | +- org.codehaus.plexus:plexus-interpolation:jar:1.1:compile | +- org.apache.maven:maven-compat:jar:3.0-alpha-2:compile -| | +- (org.apache.maven:maven-model:jar:3.0-alpha-2:compile - omitted for conflict with 3.6.0) -| | +- (org.codehaus.plexus:plexus-container-default:jar:1.0-beta-3.0.5:compile - omitted for duplicate) -| | +- (org.codehaus.plexus:plexus-component-annotations:jar:1.0-beta-3.0.5:compile - omitted for conflict with 2.0.0) | | \- org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-4:compile -| | \- (org.codehaus.plexus:plexus-utils:jar:1.4.2:compile - omitted for conflict with 3.3.0) | +- org.codehaus.plexus:plexus-container-default:jar:1.0-beta-3.0.5:compile -| | +- (org.codehaus.plexus:plexus-utils:jar:1.4.5:compile - omitted for conflict with 3.3.0) -| | +- (org.codehaus.plexus:plexus-classworlds:jar:1.4:compile - omitted for conflict with 2.5.2) | | +- org.apache.xbean:xbean-reflect:jar:3.4:compile -| | | +- (log4j:log4j:jar:1.2.12:compile - omitted for conflict with 1.2.17) | | | \- commons-logging:commons-logging-api:jar:1.1:compile -| | +- com.google.code.google-collections:google-collect:jar:snapshot-20080530:compile -| | \- junit:junit:jar:4.13:compile +| | \- com.google.code.google-collections:google-collect:jar:snapshot-20080530:compile | +- org.codehaus.woodstox:wstx-asl:jar:3.2.6:compile | | \- stax:stax-api:jar:1.0.1:compile | +- org.sonatype.spice:model-builder:jar:1.3:compile -| | +- (org.codehaus.woodstox:wstx-asl:jar:3.2.6:compile - omitted for duplicate) -| | \- (stax:stax-api:jar:1.0.1:compile - omitted for duplicate) | \- org.apache.maven:maven-project-builder:jar:3.0-alpha-2:compile -| \- (org.sonatype.spice:model-builder:jar:1.3:compile - omitted for duplicate) +- org.apache.maven.plugin-tools:maven-plugin-annotations:jar:3.6.0:compile -| \- (org.apache.maven:maven-artifact:jar:3.0:compile - omitted for conflict with 3.6.0) +- org.apache.maven.shared:maven-dependency-tree:jar:3.0.1:compile -| +- (org.codehaus.plexus:plexus-component-annotations:jar:1.6:compile - omitted for conflict with 2.0.0) | \- org.eclipse.aether:aether-util:jar:0.9.0.M2:compile +- commons-io:commons-io:jar:2.5:compile +- com.google.code.gson:gson:jar:2.8.6:compile +- org.whitesource:maven-dependency-tree-parser:jar:1.0.6:compile -| +- commons-lang:commons-lang:jar:2.4:compile -| \- (commons-io:commons-io:jar:2.0.1:compile - omitted for conflict with 2.5) +| \- commons-lang:commons-lang:jar:2.4:compile +- org.apache.maven.plugin-testing:maven-plugin-testing-tools:jar:3.3.0:compile | \- org.apache.maven.shared:maven-invoker:jar:2.0.11:compile -| \- (org.codehaus.plexus:plexus-utils:jar:1.5.6:compile - omitted for conflict with 3.3.0) +- com.soebes.itf.jupiter.extension:itf-extension-maven:jar:0.9.0:test -| +- (org.apache.maven:maven-model:jar:3.1.0:test - omitted for conflict with 3.6.0) | +- org.apiguardian:apiguardian-api:jar:1.1.0:test | \- org.junit.platform:junit-platform-commons:jar:1.6.2:test -| \- (org.apiguardian:apiguardian-api:jar:1.1.0:test - omitted for duplicate) +- com.soebes.itf.jupiter.extension:itf-assertj:jar:0.9.0:test -| +- (com.soebes.itf.jupiter.extension:itf-extension-maven:jar:0.9.0:test - omitted for duplicate) -| \- (org.assertj:assertj-core:jar:3.16.1:test - omitted for conflict with 3.19.0) +- com.soebes.itf.jupiter.extension:itf-jupiter-extension:jar:0.9.0:test -| +- (com.soebes.itf.jupiter.extension:itf-extension-maven:jar:0.9.0:test - omitted for duplicate) -| +- (org.junit.jupiter:junit-jupiter-api:jar:5.6.2:test - omitted for duplicate) -| +- (org.apache.maven:maven-model:jar:3.1.0:test - omitted for conflict with 3.6.0) -| \- (commons-io:commons-io:jar:2.6:test - omitted for conflict with 2.5) +- org.assertj:assertj-core:jar:3.19.0:test -+- org.projectlombok:lombok:jar:1.18.16:provided ++- org.projectlombok:lombok:jar:1.18.22:provided +- org.slf4j:slf4j-api:jar:2.0.0-alpha1:compile +- org.slf4j:slf4j-log4j12:jar:1.8.0-beta4:compile -| +- (org.slf4j:slf4j-api:jar:1.8.0-beta4:compile - omitted for conflict with 2.0.0-alpha1) | \- log4j:log4j:jar:1.2.17:compile +- org.junit.jupiter:junit-jupiter-api:jar:5.6.2:test -| +- (org.apiguardian:apiguardian-api:jar:1.1.0:test - omitted for duplicate) -| +- org.opentest4j:opentest4j:jar:1.2.0:test -| \- (org.junit.platform:junit-platform-commons:jar:1.6.2:test - omitted for duplicate) +| \- org.opentest4j:opentest4j:jar:1.2.0:test +- org.junit.jupiter:junit-jupiter-engine:jar:5.6.2:test -| +- (org.apiguardian:apiguardian-api:jar:1.1.0:test - omitted for duplicate) -| +- org.junit.platform:junit-platform-engine:jar:1.6.2:test -| | +- (org.apiguardian:apiguardian-api:jar:1.1.0:test - omitted for duplicate) -| | +- (org.opentest4j:opentest4j:jar:1.2.0:test - omitted for duplicate) -| | \- (org.junit.platform:junit-platform-commons:jar:1.6.2:test - omitted for duplicate) -| \- (org.junit.jupiter:junit-jupiter-api:jar:5.6.2:test - omitted for duplicate) +| \- org.junit.platform:junit-platform-engine:jar:1.6.2:test \- org.junit.vintage:junit-vintage-engine:jar:5.6.2:test - +- (org.apiguardian:apiguardian-api:jar:1.1.0:test - omitted for duplicate) - +- (org.junit.platform:junit-platform-engine:jar:1.6.2:test - omitted for duplicate) - \- (junit:junit:jar:4.13:compile - scope updated from test; omitted for duplicate) + \- junit:junit:jar:4.13:compile + \- org.hamcrest:hamcrest-core:jar:1.3:compile diff --git a/depclean-maven-plugin/src/test/resources/MavenInvokerResources/basic_spring_maven_project/tree_produced.txt b/depclean-maven-plugin/src/test/resources/MavenInvokerResources/basic_spring_maven_project/tree_produced.txt new file mode 100644 index 00000000..44867c28 --- /dev/null +++ b/depclean-maven-plugin/src/test/resources/MavenInvokerResources/basic_spring_maven_project/tree_produced.txt @@ -0,0 +1,79 @@ +se.kth.castor:depclean-maven-plugin:maven-plugin:2.0.2-SNAPSHOT ++- se.kth.castor:depclean-core:jar:2.0.2-SNAPSHOT:compile +| +- org.ow2.asm:asm:jar:9.1:compile +| +- org.codehaus.plexus:plexus-component-annotations:jar:2.0.0:compile +| +- org.codehaus.plexus:plexus-utils:jar:3.3.0:compile +| +- org.jgrapht:jgrapht-core:jar:1.3.0:compile +| | \- org.jheaps:jheaps:jar:0.9:compile +| +- org.jetbrains:annotations:jar:17.0.0:compile +| \- com.google.guava:guava:jar:30.1-jre:compile +| +- com.google.guava:failureaccess:jar:1.0.1:compile +| +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:compile +| +- com.google.code.findbugs:jsr305:jar:3.0.2:compile +| +- org.checkerframework:checker-qual:jar:3.5.0:compile +| +- com.google.errorprone:error_prone_annotations:jar:2.3.4:compile +| \- com.google.j2objc:j2objc-annotations:jar:1.3:compile ++- org.apache.maven:maven-core:jar:3.6.0:compile +| +- org.apache.maven:maven-model:jar:3.6.0:compile +| +- org.apache.maven:maven-settings:jar:3.6.0:compile +| +- org.apache.maven:maven-settings-builder:jar:3.6.0:compile +| | \- org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4:compile +| | \- org.sonatype.plexus:plexus-cipher:jar:1.4:compile +| +- org.apache.maven:maven-builder-support:jar:3.6.0:compile +| +- org.apache.maven:maven-repository-metadata:jar:3.6.0:compile +| +- org.apache.maven:maven-artifact:jar:3.6.0:compile +| +- org.apache.maven:maven-model-builder:jar:3.6.0:compile +| +- org.apache.maven:maven-resolver-provider:jar:3.6.0:compile +| +- org.apache.maven.resolver:maven-resolver-impl:jar:1.3.1:compile +| +- org.apache.maven.resolver:maven-resolver-api:jar:1.3.1:compile +| +- org.apache.maven.resolver:maven-resolver-spi:jar:1.3.1:compile +| +- org.apache.maven.resolver:maven-resolver-util:jar:1.3.1:compile +| +- org.apache.maven.shared:maven-shared-utils:jar:3.2.1:compile +| +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.3:compile +| | \- javax.enterprise:cdi-api:jar:1.0:compile +| | \- javax.annotation:jsr250-api:jar:1.0:compile +| +- org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.3:compile +| +- com.google.inject:guice:jar:no_aop:4.2.1:compile +| | \- aopalliance:aopalliance:jar:1.0:compile +| +- javax.inject:javax.inject:jar:1:compile +| +- org.codehaus.plexus:plexus-classworlds:jar:2.5.2:compile +| \- org.apache.commons:commons-lang3:jar:3.8.1:compile ++- org.apache.maven:maven-plugin-api:jar:3.6.0:compile ++- org.apache.maven:maven-project:jar:3.0-alpha-2:compile +| +- org.codehaus.plexus:plexus-interpolation:jar:1.1:compile +| +- org.apache.maven:maven-compat:jar:3.0-alpha-2:compile +| | \- org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-4:compile +| +- org.codehaus.plexus:plexus-container-default:jar:1.0-beta-3.0.5:compile +| | +- org.apache.xbean:xbean-reflect:jar:3.4:compile +| | | \- commons-logging:commons-logging-api:jar:1.1:compile +| | \- com.google.code.google-collections:google-collect:jar:snapshot-20080530:compile +| +- org.codehaus.woodstox:wstx-asl:jar:3.2.6:compile +| | \- stax:stax-api:jar:1.0.1:compile +| +- org.sonatype.spice:model-builder:jar:1.3:compile +| \- org.apache.maven:maven-project-builder:jar:3.0-alpha-2:compile ++- org.apache.maven.plugin-tools:maven-plugin-annotations:jar:3.6.0:compile ++- org.apache.maven.shared:maven-dependency-tree:jar:3.0.1:compile +| \- org.eclipse.aether:aether-util:jar:0.9.0.M2:compile ++- commons-io:commons-io:jar:2.5:compile ++- com.google.code.gson:gson:jar:2.8.6:compile ++- org.whitesource:maven-dependency-tree-parser:jar:1.0.6:compile +| \- commons-lang:commons-lang:jar:2.4:compile ++- org.apache.maven.plugin-testing:maven-plugin-testing-tools:jar:3.3.0:compile +| \- org.apache.maven.shared:maven-invoker:jar:2.0.11:compile ++- com.soebes.itf.jupiter.extension:itf-extension-maven:jar:0.9.0:test +| +- org.apiguardian:apiguardian-api:jar:1.1.0:test +| \- org.junit.platform:junit-platform-commons:jar:1.6.2:test ++- com.soebes.itf.jupiter.extension:itf-assertj:jar:0.9.0:test ++- com.soebes.itf.jupiter.extension:itf-jupiter-extension:jar:0.9.0:test ++- org.assertj:assertj-core:jar:3.19.0:test ++- org.projectlombok:lombok:jar:1.18.22:provided ++- org.slf4j:slf4j-api:jar:2.0.0-alpha1:compile ++- org.slf4j:slf4j-log4j12:jar:1.8.0-beta4:compile +| \- log4j:log4j:jar:1.2.17:compile ++- org.junit.jupiter:junit-jupiter-api:jar:5.6.2:test +| \- org.opentest4j:opentest4j:jar:1.2.0:test ++- org.junit.jupiter:junit-jupiter-engine:jar:5.6.2:test +| \- org.junit.platform:junit-platform-engine:jar:1.6.2:test +\- org.junit.vintage:junit-vintage-engine:jar:5.6.2:test + \- junit:junit:jar:4.13:compile + \- org.hamcrest:hamcrest-core:jar:1.3:compile diff --git a/pom.xml b/pom.xml index aa974b10..edac0da8 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ 3.0.0-M3 3.8.1 - 1.18.16 + 1.18.22 2.0.0-alpha1 1.8.0-beta4 5.6.2