From 814243be55d9efc07bb124b3b7b83974cfe7df8d Mon Sep 17 00:00:00 2001 From: ttfont <132729084+ttfont@users.noreply.github.com> Date: Wed, 24 Jan 2024 09:23:40 +0800 Subject: [PATCH 01/10] =?UTF-8?q?[ISSUE=20#5416]Optimize=20logic=20to=20av?= =?UTF-8?q?oid=20"orElse"=20execution=EF=BC=8CUpdate=20VersionTwoExtractor?= =?UTF-8?q?.java=20(#5415)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update VersionTwoExtractor.java Optimize logic to avoid "orElse" execution: “.orElse(httpRequest.getHeaders().getFirst(HttpHeaders.AUTHORIZATION));” * Update VersionTwoExtractor.java --------- Co-authored-by: DamonXue --- .../shenyu/plugin/sign/extractor/VersionTwoExtractor.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-sign/src/main/java/org/apache/shenyu/plugin/sign/extractor/VersionTwoExtractor.java b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-sign/src/main/java/org/apache/shenyu/plugin/sign/extractor/VersionTwoExtractor.java index 44a943b5c29b..43f08ec8fb7b 100644 --- a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-sign/src/main/java/org/apache/shenyu/plugin/sign/extractor/VersionTwoExtractor.java +++ b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-sign/src/main/java/org/apache/shenyu/plugin/sign/extractor/VersionTwoExtractor.java @@ -37,7 +37,7 @@ public SignParameters extract(final HttpRequest httpRequest) { // use ShenYu-Authorization to avoid conflict with another Authorization String token = Optional.ofNullable(httpRequest.getHeaders().getFirst(Constants.SHENYU_AUTHORIZATION)) - .orElse(httpRequest.getHeaders().getFirst(HttpHeaders.AUTHORIZATION)); + .orElseGet(() -> getDefaultToken(httpRequest)); if (StringUtils.isEmpty(token) || !token.contains(".")) { return new SignParameters(); @@ -59,4 +59,9 @@ public SignParameters extract(final HttpRequest httpRequest) { return signParameters; } + + private String getDefaultToken(final HttpRequest httpRequest) { + return httpRequest.getHeaders().getFirst(HttpHeaders.AUTHORIZATION); + } + } From b17d4806f19c974fdfa55815050465ff979774f0 Mon Sep 17 00:00:00 2001 From: Divyansh200102 <146909065+Divyansh200102@users.noreply.github.com> Date: Wed, 24 Jan 2024 21:20:24 +0530 Subject: [PATCH 02/10] Add test case for `ShenyuClientRegisterEventPublisher` (#5417) * Create ShenyuClientRegisterEventPublisherTest.java * Updated ShenyuClientRegisterEventPublisherTest and ShenyuClientRegisterEventPublisher * Update ShenyuClientRegisterEventPublisherTest.java * Update ShenyuClientRegisterEventPublisherTest.java * Update ShenyuClientRegisterEventPublisherTest.java * Update ShenyuClientRegisterEventPublisherTest.java * Update ShenyuClientRegisterEventPublisherTest.java * Update ShenyuClientRegisterEventPublisherTest.java * Updated and Formatted ShenyuClientRegisterEventPublisher.java * Update ShenyuClientRegisterEventPublisher.java * Formatted ShenyuClientRegisterEventPublisherTest and ShenyuClientRegisterEventPublisher --------- Co-authored-by: moremind --- .../ShenyuClientRegisterEventPublisher.java | 17 +++-- ...henyuClientRegisterEventPublisherTest.java | 65 +++++++++++++++++++ 2 files changed, 78 insertions(+), 4 deletions(-) create mode 100644 shenyu-client/shenyu-client-core/src/test/java/org/apache/shenyu/client/core/disruptor/subcriber/ShenyuClientRegisterEventPublisherTest.java diff --git a/shenyu-client/shenyu-client-core/src/main/java/org/apache/shenyu/client/core/disruptor/ShenyuClientRegisterEventPublisher.java b/shenyu-client/shenyu-client-core/src/main/java/org/apache/shenyu/client/core/disruptor/ShenyuClientRegisterEventPublisher.java index 62201ffaded0..416fbbafdf34 100644 --- a/shenyu-client/shenyu-client-core/src/main/java/org/apache/shenyu/client/core/disruptor/ShenyuClientRegisterEventPublisher.java +++ b/shenyu-client/shenyu-client-core/src/main/java/org/apache/shenyu/client/core/disruptor/ShenyuClientRegisterEventPublisher.java @@ -30,11 +30,11 @@ * The type shenyu client register event publisher. */ public class ShenyuClientRegisterEventPublisher { - + private static final ShenyuClientRegisterEventPublisher INSTANCE = new ShenyuClientRegisterEventPublisher(); - + private DisruptorProviderManage providerManage; - + /** * Get instance. * @@ -43,7 +43,7 @@ public class ShenyuClientRegisterEventPublisher { public static ShenyuClientRegisterEventPublisher getInstance() { return INSTANCE; } - + /** * Start. * @@ -57,6 +57,15 @@ public void start(final ShenyuClientRegisterRepository shenyuClientRegisterRepos providerManage = new DisruptorProviderManage<>(factory); providerManage.startup(); } + + /** + * Retrieves the Disruptor provider manager used by this ShenyuClientRegisterEventPublisher. + * + * @return The Disruptor provider manager. + */ + public DisruptorProviderManage getProviderManage() { + return providerManage; + } /** * Publish event. diff --git a/shenyu-client/shenyu-client-core/src/test/java/org/apache/shenyu/client/core/disruptor/subcriber/ShenyuClientRegisterEventPublisherTest.java b/shenyu-client/shenyu-client-core/src/test/java/org/apache/shenyu/client/core/disruptor/subcriber/ShenyuClientRegisterEventPublisherTest.java new file mode 100644 index 000000000000..a33ef6ce609c --- /dev/null +++ b/shenyu-client/shenyu-client-core/src/test/java/org/apache/shenyu/client/core/disruptor/subcriber/ShenyuClientRegisterEventPublisherTest.java @@ -0,0 +1,65 @@ +/* + * 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. + */ + +package org.apache.shenyu.client.core.disruptor.subcriber; + +import org.apache.shenyu.client.core.disruptor.ShenyuClientRegisterEventPublisher; +import org.apache.shenyu.register.client.api.ShenyuClientRegisterRepository; +import org.apache.shenyu.register.common.type.DataTypeParent; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; + +import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertSame; + +public class ShenyuClientRegisterEventPublisherTest { + @Mock + private DataTypeParent testData; + + @Mock + private ShenyuClientRegisterRepository shenyuClientRegisterRepository; + + @Test + public void testGetInstanceReturnsSameInstance() { + ShenyuClientRegisterEventPublisher instance1 = ShenyuClientRegisterEventPublisher.getInstance(); + ShenyuClientRegisterEventPublisher instance2 = ShenyuClientRegisterEventPublisher.getInstance(); + assertSame(instance1, instance2); + } + + @Test + public void testStart() { + ShenyuClientRegisterEventPublisher publisher = ShenyuClientRegisterEventPublisher.getInstance(); + publisher.start(shenyuClientRegisterRepository); + assertNotNull(publisher.getProviderManage()); + assertDoesNotThrow(() -> publisher.getProviderManage().startup()); + } + + @Test + public void testPublishEvent() { + ShenyuClientRegisterEventPublisher publisher = ShenyuClientRegisterEventPublisher.getInstance(); + publisher.start(shenyuClientRegisterRepository); + assertDoesNotThrow(() -> publisher.publishEvent(testData)); + } + + @Test + public void testPublishEventWithNullData() { + ShenyuClientRegisterEventPublisher publisher = ShenyuClientRegisterEventPublisher.getInstance(); + publisher.start(shenyuClientRegisterRepository); + assertDoesNotThrow(() -> publisher.publishEvent(null)); + } +} From b5589789be1e147af1a88d80bca63e8d4c7da304 Mon Sep 17 00:00:00 2001 From: crazyStar <653945222@qq.com> Date: Thu, 25 Jan 2024 16:15:54 +0800 Subject: [PATCH 03/10] misspelling:refernce->reference (#5420) --- .../plugin/alibaba/dubbo/cache/AlibabaDubboConfigCache.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-alibaba-dubbo/src/main/java/org/apache/shenyu/plugin/alibaba/dubbo/cache/AlibabaDubboConfigCache.java b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-alibaba-dubbo/src/main/java/org/apache/shenyu/plugin/alibaba/dubbo/cache/AlibabaDubboConfigCache.java index 3ef6c1e68f9b..191b4c7461cd 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-alibaba-dubbo/src/main/java/org/apache/shenyu/plugin/alibaba/dubbo/cache/AlibabaDubboConfigCache.java +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-alibaba-dubbo/src/main/java/org/apache/shenyu/plugin/alibaba/dubbo/cache/AlibabaDubboConfigCache.java @@ -193,7 +193,7 @@ public ReferenceConfig build(final MetaData metaData) { cache.put(metaData.getPath(), reference); } } catch (Exception e) { - LOG.error("init alibaba dubbo refernce exception", e); + LOG.error("init alibaba dubbo reference exception", e); } return reference; } From ae497d2898b4c6dca179a97f4f9ada4db9387bb0 Mon Sep 17 00:00:00 2001 From: dragon-zhang Date: Fri, 26 Jan 2024 09:52:08 +0800 Subject: [PATCH 04/10] [ISSUE #4612] init shenyu-plugin-wasm-base module (#5412) * [ISSUE #4612] init shenyu-plugin-wasm-base module * fix rat * close once * add LICENSE * add LICENSE * add LICENSE --- .gitignore | 2 + pom.xml | 7 + .../src/main/release-docs/LICENSE | 19 +- .../release-docs/licenses/LICENSE-jni-rs.txt | 24 ++ .../licenses/LICENSE-wasi-cap-std-sync.txt | 221 ++++++++++++++++++ .../licenses/LICENSE-wasi-common.txt | 221 ++++++++++++++++++ .../licenses/LICENSE-wasmtime-wasi.txt | 221 ++++++++++++++++++ .../licenses/LICENSE-wasmtime.txt | 221 ++++++++++++++++++ shenyu-plugin/pom.xml | 1 + .../plugin/api/result/ShenyuResultEnum.java | 7 +- .../plugin/base/AbstractShenyuPlugin.java | 2 +- shenyu-plugin/shenyu-plugin-wasm-base/pom.xml | 49 ++++ .../wasm/base/AbstractShenyuWasmPlugin.java | 169 ++++++++++++++ .../plugin/wasm/base/AbstractWasmPlugin.java | 127 ++++++++++ .../shenyu/plugin/wasm/base/WasmLoader.java | 183 +++++++++++++++ .../base/exception/ShenyuWasmException.java | 56 +++++ .../exception/ShenyuWasmInitException.java | 54 +++++ .../src/test/README.md | 19 ++ .../wasm/base/AbstractWasmPluginTest.java | 132 +++++++++++ ...AbstractWasmPluginTest$RustWasmPlugin.wasm | Bin 0 -> 1984076 bytes .../src/test/rust-wasm-plugin/Cargo.toml | 26 +++ .../src/test/rust-wasm-plugin/src/lib.rs | 38 +++ 22 files changed, 1796 insertions(+), 3 deletions(-) create mode 100644 shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-jni-rs.txt create mode 100644 shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasi-cap-std-sync.txt create mode 100644 shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasi-common.txt create mode 100644 shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasmtime-wasi.txt create mode 100644 shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasmtime.txt create mode 100644 shenyu-plugin/shenyu-plugin-wasm-base/pom.xml create mode 100644 shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/AbstractShenyuWasmPlugin.java create mode 100644 shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/AbstractWasmPlugin.java create mode 100644 shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/WasmLoader.java create mode 100644 shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/exception/ShenyuWasmException.java create mode 100644 shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/exception/ShenyuWasmInitException.java create mode 100644 shenyu-plugin/shenyu-plugin-wasm-base/src/test/README.md create mode 100644 shenyu-plugin/shenyu-plugin-wasm-base/src/test/java/org/apache/shenyu/plugin/wasm/base/AbstractWasmPluginTest.java create mode 100755 shenyu-plugin/shenyu-plugin-wasm-base/src/test/resources/org.apache.shenyu.plugin.wasm.base.AbstractWasmPluginTest$RustWasmPlugin.wasm create mode 100644 shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-plugin/Cargo.toml create mode 100644 shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-plugin/src/lib.rs diff --git a/.gitignore b/.gitignore index 4c5abdb4b926..b9784dc9b280 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,5 @@ Thumbs.db # agent build ignore /agent/ +# rust ignore +*.lock diff --git a/pom.xml b/pom.xml index a387ada74339..a1f532dd4f7a 100644 --- a/pom.xml +++ b/pom.xml @@ -182,6 +182,7 @@ 1.9.0 1.0.1 5.0.0-og + 0.19.0 @@ -585,6 +586,12 @@ kafka-clients ${kafka-clients.version} + + + io.github.kawamuray.wasmtime + wasmtime-java + ${wasmtime-java.version} + diff --git a/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/LICENSE b/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/LICENSE index 49a90d7560f4..30e3c069bff4 100644 --- a/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/LICENSE +++ b/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/LICENSE @@ -218,6 +218,7 @@ The text of each license is the standard Apache 2.0 license. accessors-smart 2.4.11: https://www.minidev.net, Apache 2.0 annotations 4.1.1.4: http://source.android.com, Apache 2.0 annotations 13.0: http://source.android.com, Apache 2.0 + anyhow 1.0.70: https://github.com/dtolnay/anyhow, Apache 2.0 archaius-core 0.7.6: https://github.com/Netflix/archaius, Apache 2.0 assertj-core 3.22.0: http://assertj.org/assertj-core, Apache 2.0 brave 5.1.0: https://zipkin.io, Apache 2.0 @@ -232,7 +233,8 @@ The text of each license is the standard Apache 2.0 license. btf 1.2: https://github.com/fge/btf, LGPL and Apache 2.0 byte-buddy 1.12.6: https://bytebuddy.net/byte-buddy, Apache 2.0 byte-buddy-agent 1.11.22: https://bytebuddy.net/byte-buddy, Apache 2.0 - caffeine 2.9.3 https://github.com/ben-manes/caffeine, Apache 2.0 + caffeine 2.9.3: https://github.com/ben-manes/caffeine, Apache 2.0 + cap-std 1.0.7: https://github.com/bytecodealliance/cap-std, Apache 2.0 classmate 1.5.1: https://github.com/FasterXML/java-classmate, Apache 2.0 clickhouse-client 0.3.2-patch11: https://mvnrepository.com/artifact/com.clickhouse/clickhouse-client, Apache 2.0 clickhouse-http-client 0.3.2-patch11: https://mvnrepository.com/artifact/com.clickhouse/clickhouse-http-client, Apache 2.0 @@ -329,6 +331,7 @@ The text of each license is the standard Apache 2.0 license. jsr305 3.0.2: http://findbugs.sourceforge.net/, Apache 2.0 kafka-clients 3.4.0: https://github.com/apache/kafka, Apache 2.0 lettuce-core 6.1.10.RELEASE: http://github.com/lettuce-io/lettuce-core, Apache 2.0 + wasmtime-java 0.19.0: https://github.com/kawamuray/wasmtime-java, Apache 2.0 listenablefuture 9999.0-empty-to-avoid-conflict-with-guava: https://github.com/google/guava, Apache 2.0 log4j-api 2.17.2: https://logging.apache.org/log4j/2.x/log4j-api, Apache 2.0 log4j-1.2-api 2.17.2: https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-1.2-api, Apache 2.0 @@ -534,6 +537,7 @@ The text of each license is the standard Apache 2.0 license. rxnetty-servo 0.4.9: https://github.com/ReactiveX/RxNetty, Apache 2.0 servo-core 0.12.21: https://github.com/Netflix/servo, Apache 2.0 stax-api 1.0.1: http://stax.codehaus.org/, Apache 2.0 + thiserror 1.0.40: https://github.com/dtolnay/thiserror, Apache 2.0 woodstox-core 6.2.1: https://github.com/FasterXML/woodstox, Apache 2.0 libthrift 0.14.1: http://thrift.apache.org, Apache 2.0 tomcat-annotations-api 9.0.29: https://tomcat.apache.org/, Apache 2.0 @@ -563,6 +567,18 @@ The text of each license is the standard Apache 2.0 license. amqp-client 5.14.3: https://www.rabbitmq.com/api-guide.html#license, Apache 2.0 hessian-lite 3.2.13: https://github.com/apache/dubbo-hessian-lite, Apache 2.0 +======================================================================== +Apache 2.0 licenses +======================================================================== + +The following components are provided under the Apache license. See project link for details. +The text of each license is also included at licenses/LICENSE-[project].txt. + + wasi-cap-std-sync 7.0.0: https://github.com/bytecodealliance/wasmtime, Apache 2.0 + wasi-common 7.0.0: https://github.com/bytecodealliance/wasmtime, Apache 2.0 + wasmtime 7.0.0: https://github.com/bytecodealliance/wasmtime, Apache 2.0 + wasmtime-wasi 7.0.0: https://github.com/bytecodealliance/wasmtime, Apache 2.0 + ======================================================================== BSD licenses ======================================================================== @@ -660,6 +676,7 @@ The text of each license is also included at licenses/LICENSE-[project].txt. checker-qual 3.12.0: https://github.com/typetools/checker-framework/blob/master/checker-qual, MIT Java-WebSocket 1.5.0: https://github.com/TooTallNate/Java-WebSocket, MIT jcl-over-slf4j 1.7.36: https://www.slf4j.org, MIT + jni-rs 0.21.1: https://github.com/jni-rs/jni-rs, MIT jul-to-slf4j 1.7.36: http://www.slf4j.org, MIT mockito 3.5.15: https://github.com/mockito/mockito MIT slf4j-api 1.7.36: https://www.slf4j.org, MIT diff --git a/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-jni-rs.txt b/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-jni-rs.txt new file mode 100644 index 000000000000..bb65a171f651 --- /dev/null +++ b/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-jni-rs.txt @@ -0,0 +1,24 @@ +jni-rs License +--------------- + +The MIT License (MIT) + +Copyright (c) 2016 Prevoty, Inc. and jni-rs contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasi-cap-std-sync.txt b/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasi-cap-std-sync.txt new file mode 100644 index 000000000000..264466f63e02 --- /dev/null +++ b/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasi-cap-std-sync.txt @@ -0,0 +1,221 @@ +wasi-common License +--------------- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. + + +--- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. diff --git a/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasi-common.txt b/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasi-common.txt new file mode 100644 index 000000000000..264466f63e02 --- /dev/null +++ b/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasi-common.txt @@ -0,0 +1,221 @@ +wasi-common License +--------------- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. + + +--- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. diff --git a/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasmtime-wasi.txt b/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasmtime-wasi.txt new file mode 100644 index 000000000000..d8506353e73b --- /dev/null +++ b/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasmtime-wasi.txt @@ -0,0 +1,221 @@ +wasmtime-wasi License +--------------- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. + + +--- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. diff --git a/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasmtime.txt b/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasmtime.txt new file mode 100644 index 000000000000..299c81adaf1e --- /dev/null +++ b/shenyu-dist/shenyu-bootstrap-dist/src/main/release-docs/licenses/LICENSE-wasmtime.txt @@ -0,0 +1,221 @@ +wasmtime License +--------------- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. + + +--- LLVM Exceptions to the Apache 2.0 License ---- + +As an exception, if, as a result of your compiling your source code, portions +of this Software are embedded into an Object form of such source code, you +may redistribute such embedded portions in such Object form without complying +with the conditions of Sections 4(a), 4(b) and 4(d) of the License. + +In addition, if you combine or link compiled forms of this Software with +software that is licensed under the GPLv2 ("Combined Software") and if a +court of competent jurisdiction determines that the patent provision (Section +3), the indemnity provision (Section 9) or other Section of the License +conflicts with the conditions of the GPLv2, you may retroactively and +prospectively choose to deem waived or otherwise exclude such Section(s) of +the License, but only in their entirety and only with respect to the Combined +Software. diff --git a/shenyu-plugin/pom.xml b/shenyu-plugin/pom.xml index 1c5fee0b128e..17e406f8bb25 100644 --- a/shenyu-plugin/pom.xml +++ b/shenyu-plugin/pom.xml @@ -29,6 +29,7 @@ shenyu-plugin-api shenyu-plugin-base + shenyu-plugin-wasm-base shenyu-plugin-httpclient shenyu-plugin-rewrite shenyu-plugin-waf diff --git a/shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/result/ShenyuResultEnum.java b/shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/result/ShenyuResultEnum.java index 526763eefde8..c7b6b023107b 100644 --- a/shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/result/ShenyuResultEnum.java +++ b/shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/result/ShenyuResultEnum.java @@ -235,7 +235,12 @@ public enum ShenyuResultEnum { /** * Key is incorrect. */ - ERROR_KEY(401, "Key is incorrect"); + ERROR_KEY(401, "Key is incorrect"), + + /** + * WASM function not found. + */ + WASM_FUNC_NOT_FOUND(533, "WASM function not found"); /** * the code. diff --git a/shenyu-plugin/shenyu-plugin-base/src/main/java/org/apache/shenyu/plugin/base/AbstractShenyuPlugin.java b/shenyu-plugin/shenyu-plugin-base/src/main/java/org/apache/shenyu/plugin/base/AbstractShenyuPlugin.java index 67d91faae655..1d45050c93d5 100644 --- a/shenyu-plugin/shenyu-plugin-base/src/main/java/org/apache/shenyu/plugin/base/AbstractShenyuPlugin.java +++ b/shenyu-plugin/shenyu-plugin-base/src/main/java/org/apache/shenyu/plugin/base/AbstractShenyuPlugin.java @@ -70,7 +70,7 @@ public abstract class AbstractShenyuPlugin implements ShenyuPlugin { private ShenyuConfig.RuleMatchCache ruleMatchConfig; /** - * this is Template Method child has Implement your own logic. + * this is Template Method child has implements your own logic. * * @param exchange exchange the current server exchange {@linkplain ServerWebExchange} * @param chain chain the current chain {@linkplain ServerWebExchange} diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/pom.xml b/shenyu-plugin/shenyu-plugin-wasm-base/pom.xml new file mode 100644 index 000000000000..d64e2de34045 --- /dev/null +++ b/shenyu-plugin/shenyu-plugin-wasm-base/pom.xml @@ -0,0 +1,49 @@ + + + + + + org.apache.shenyu + shenyu-plugin + 2.6.2-SNAPSHOT + + 4.0.0 + shenyu-plugin-wasm-base + + + + org.apache.shenyu + shenyu-plugin-base + ${project.version} + + + io.github.kawamuray.wasmtime + wasmtime-java + + + ch.qos.logback + logback-classic + test + + + com.fasterxml.jackson.module + jackson-module-kotlin + test + + + \ No newline at end of file diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/AbstractShenyuWasmPlugin.java b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/AbstractShenyuWasmPlugin.java new file mode 100644 index 000000000000..c44da42e74eb --- /dev/null +++ b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/AbstractShenyuWasmPlugin.java @@ -0,0 +1,169 @@ +/* + * 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. + */ + +package org.apache.shenyu.plugin.wasm.base; + +import io.github.kawamuray.wasmtime.Extern; +import io.github.kawamuray.wasmtime.Func; +import io.github.kawamuray.wasmtime.Store; +import io.github.kawamuray.wasmtime.WasmFunctions; +import io.github.kawamuray.wasmtime.WasmValType; +import org.apache.shenyu.common.dto.RuleData; +import org.apache.shenyu.common.dto.SelectorData; +import org.apache.shenyu.plugin.api.ShenyuPluginChain; +import org.apache.shenyu.plugin.api.result.ShenyuResultEnum; +import org.apache.shenyu.plugin.api.result.ShenyuResultWrap; +import org.apache.shenyu.plugin.api.utils.WebFluxResultUtils; +import org.apache.shenyu.plugin.base.AbstractShenyuPlugin; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Complex plugins implemented in other languages should extend this class, we still need to write Java subclasses, + * so we can reuse the convenient/powerful control of ShenYu, such as {@link #getOrder}/{@link #skip} + * /{@link #skipExcept}/{@link #skipExceptHttpLike}. + * + * @see org.apache.shenyu.plugin.base.AbstractShenyuPlugin + * @see io.github.kawamuray.wasmtime.WasmValType + * @see org.apache.shenyu.plugin.wasm.base.WasmLoader + */ +public abstract class AbstractShenyuWasmPlugin extends AbstractShenyuPlugin { + + protected static final Logger LOG = LoggerFactory.getLogger(AbstractShenyuWasmPlugin.class); + + protected static final Map ARGUMENTS = new ConcurrentHashMap<>(); + + protected static final String DO_EXECUTE_METHOD_NAME = "doExecute"; + + protected static final String BEFORE_METHOD_NAME = "before"; + + protected static final String AFTER_METHOD_NAME = "after"; + + private final WasmLoader wasmLoader; + + public AbstractShenyuWasmPlugin() { + this.wasmLoader = new WasmLoader(this.getClass(), this::initWasmCallJavaFunc); + } + + protected Map initWasmCallJavaFunc(final Store store) { + return null; + } + + @Override + protected Mono doExecute(final ServerWebExchange exchange, + final ShenyuPluginChain chain, + final SelectorData selector, + final RuleData rule) { + return wasmLoader.getWasmExtern(DO_EXECUTE_METHOD_NAME).map(doExecute -> { + final Long argumentId = callWASI(exchange, chain, selector, rule, doExecute); + return doExecute(exchange, chain, selector, rule, argumentId); + }).orElseGet(() -> { + LOG.error("{} function not found in {}", DO_EXECUTE_METHOD_NAME, wasmLoader.getWasmName()); + exchange.getResponse().setStatusCode(HttpStatus.INTERNAL_SERVER_ERROR); + Object error = ShenyuResultWrap.error(exchange, ShenyuResultEnum.WASM_FUNC_NOT_FOUND); + return WebFluxResultUtils.result(exchange, error); + }); + } + + /** + * this is Template Method child has implements your own logic. + * + * @param exchange exchange the current server exchange {@linkplain ServerWebExchange} + * @param chain chain the current chain {@linkplain ServerWebExchange} + * @param selector selector {@linkplain SelectorData} + * @param rule rule {@linkplain RuleData} + * @param argumentId the argument id {@linkplain #getArgumentId} + * @return {@code Mono} to indicate when request handling is complete + */ + protected abstract Mono doExecute(ServerWebExchange exchange, ShenyuPluginChain chain, SelectorData selector, RuleData rule, Long argumentId); + + private Long callWASI(final ServerWebExchange exchange, + final ShenyuPluginChain chain, + final SelectorData selector, + final RuleData rule, + final Extern doExecute) { + // WASI cannot easily pass Java objects like JNI, here we pass Long as arg + // then we can get the argument by Long + final Long argumentId = getArgumentId(exchange, chain, selector, rule); + ARGUMENTS.put(argumentId, new Argument(exchange, chain, selector, rule)); + // call WASI function + WasmFunctions.consumer(wasmLoader.getStore(), doExecute.func(), WasmValType.I64) + .accept(argumentId); + ARGUMENTS.remove(argumentId); + return argumentId; + } + + protected abstract Long getArgumentId(ServerWebExchange exchange, + ShenyuPluginChain chain, + SelectorData selector, + RuleData rule); + + @Override + public void before(final ServerWebExchange exchange) { + wasmLoader.getWasmExtern(BEFORE_METHOD_NAME) + .ifPresent(before -> callWASI(exchange, null, null, null, before)); + } + + @Override + public void after(final ServerWebExchange exchange) { + wasmLoader.getWasmExtern(AFTER_METHOD_NAME) + .ifPresent(before -> callWASI(exchange, null, null, null, before)); + } + + protected static final class Argument { + + private final ServerWebExchange exchange; + + private final ShenyuPluginChain chain; + + private final SelectorData selector; + + private final RuleData rule; + + private Argument(final ServerWebExchange exchange, + final ShenyuPluginChain chain, + final SelectorData selector, + final RuleData rule) { + this.exchange = exchange; + this.chain = chain; + this.selector = selector; + this.rule = rule; + } + + public ServerWebExchange getExchange() { + return exchange; + } + + public ShenyuPluginChain getChain() { + return chain; + } + + public SelectorData getSelector() { + return selector; + } + + public RuleData getRule() { + return rule; + } + } +} diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/AbstractWasmPlugin.java b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/AbstractWasmPlugin.java new file mode 100644 index 000000000000..ce3a58a05914 --- /dev/null +++ b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/AbstractWasmPlugin.java @@ -0,0 +1,127 @@ +/* + * 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. + */ + +package org.apache.shenyu.plugin.wasm.base; + +import io.github.kawamuray.wasmtime.Extern; +import io.github.kawamuray.wasmtime.WasmFunctions; +import io.github.kawamuray.wasmtime.WasmValType; +import org.apache.shenyu.plugin.api.ShenyuPlugin; +import org.apache.shenyu.plugin.api.ShenyuPluginChain; +import org.apache.shenyu.plugin.api.result.ShenyuResultEnum; +import org.apache.shenyu.plugin.api.result.ShenyuResultWrap; +import org.apache.shenyu.plugin.api.utils.WebFluxResultUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Simple plugins implemented in other languages should extend this class, we still need to write Java subclasses, + * so we can reuse the convenient/powerful control of ShenYu, such as {@link #getOrder}/{@link #skip} + * /{@link #skipExcept}/{@link #skipExceptHttpLike}. + * + * @see org.apache.shenyu.plugin.api.ShenyuPlugin + * @see io.github.kawamuray.wasmtime.WasmValType + * @see org.apache.shenyu.plugin.wasm.base.WasmLoader + */ +public abstract class AbstractWasmPlugin extends WasmLoader implements ShenyuPlugin { + + protected static final Logger LOG = LoggerFactory.getLogger(AbstractWasmPlugin.class); + + protected static final Map ARGUMENTS = new ConcurrentHashMap<>(); + + protected static final String EXECUTE_METHOD_NAME = "execute"; + + protected static final String BEFORE_METHOD_NAME = "before"; + + protected static final String AFTER_METHOD_NAME = "after"; + + @Override + public Mono execute(final ServerWebExchange exchange, final ShenyuPluginChain chain) { + return super.getWasmExtern(EXECUTE_METHOD_NAME).map(execute -> { + final Long argumentId = callWASI(exchange, chain, execute); + return doExecute(exchange, chain, argumentId); + }).orElseGet(() -> { + LOG.error("{} function not found in {}", EXECUTE_METHOD_NAME, super.getWasmName()); + exchange.getResponse().setStatusCode(HttpStatus.INTERNAL_SERVER_ERROR); + Object error = ShenyuResultWrap.error(exchange, ShenyuResultEnum.WASM_FUNC_NOT_FOUND); + return WebFluxResultUtils.result(exchange, error); + }); + } + + /** + * this is Template Method child has implements your own logic. + * + * @param exchange exchange the current server exchange {@linkplain ServerWebExchange} + * @param chain chain the current chain {@linkplain ServerWebExchange} + * @param argumentId the argument id {@linkplain #getArgumentId} + * @return {@code Mono} to indicate when request handling is complete + */ + protected abstract Mono doExecute(ServerWebExchange exchange, ShenyuPluginChain chain, Long argumentId); + + private Long callWASI(final ServerWebExchange exchange, final ShenyuPluginChain chain, final Extern execute) { + // WASI cannot easily pass Java objects like JNI, here we pass Long as arg + // then we can get the argument by Long + final Long argumentId = getArgumentId(exchange, chain); + ARGUMENTS.put(argumentId, new Argument(exchange, chain)); + // call WASI function + WasmFunctions.consumer(super.getStore(), execute.func(), WasmValType.I64) + .accept(argumentId); + ARGUMENTS.remove(argumentId); + return argumentId; + } + + protected abstract Long getArgumentId(ServerWebExchange exchange, ShenyuPluginChain chain); + + @Override + public void before(final ServerWebExchange exchange) { + super.getWasmExtern(BEFORE_METHOD_NAME) + .ifPresent(before -> callWASI(exchange, null, before)); + } + + @Override + public void after(final ServerWebExchange exchange) { + super.getWasmExtern(AFTER_METHOD_NAME) + .ifPresent(before -> callWASI(exchange, null, before)); + } + + protected static final class Argument { + + private final ServerWebExchange exchange; + + private final ShenyuPluginChain chain; + + private Argument(final ServerWebExchange exchange, + final ShenyuPluginChain chain) { + this.exchange = exchange; + this.chain = chain; + } + + public ServerWebExchange getExchange() { + return exchange; + } + + public ShenyuPluginChain getChain() { + return chain; + } + } +} diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/WasmLoader.java b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/WasmLoader.java new file mode 100644 index 000000000000..706d55f50310 --- /dev/null +++ b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/WasmLoader.java @@ -0,0 +1,183 @@ +/* + * 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. + */ + +package org.apache.shenyu.plugin.wasm.base; + +import io.github.kawamuray.wasmtime.Extern; +import io.github.kawamuray.wasmtime.Func; +import io.github.kawamuray.wasmtime.Linker; +import io.github.kawamuray.wasmtime.Memory; +import io.github.kawamuray.wasmtime.Module; +import io.github.kawamuray.wasmtime.Store; +import io.github.kawamuray.wasmtime.wasi.WasiCtx; +import io.github.kawamuray.wasmtime.wasi.WasiCtxBuilder; +import org.apache.shenyu.plugin.wasm.base.exception.ShenyuWasmInitException; + +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.ByteBuffer; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.Function; + +/** + * The WasmLoader aims to load wasm file and provide the wasm function to java, + * also provide the java function to wasm if we need. + */ +public class WasmLoader implements AutoCloseable { + + private static final String IMPORT_WASM_MODULE_NAME = "shenyu"; + + private static final String MEMORY_METHOD_NAME = "memory"; + + private final AtomicBoolean closed = new AtomicBoolean(false); + + private final String wasmName; + + private final WasiCtx wasiCtx = new WasiCtxBuilder().inheritStdout().inheritStderr().build(); + + /** + * the WASM store. + * + * @see io.github.kawamuray.wasmtime.WasmFunctions#consumer + * @see io.github.kawamuray.wasmtime.WasmFunctions#func + */ + private final Store store = Store.withoutData(wasiCtx); + + private final Linker linker = new Linker(store.engine()); + + /** + * wasmCallJavaFuncName -> wasmCallJavaFunc. + */ + private final Map wasmCallJavaFuncMap = new HashMap<>(); + + private final Module module; + + private final Memory memRef; + + public WasmLoader() { + this(null, null); + } + + /** + * This constructor is designed for classes that cannot extend WasmLoader. + * + * @see io.github.kawamuray.wasmtime.WasmFunctions#wrap + */ + public WasmLoader(final Class wasmClass, final Function, Map> initializer) { + final Class clazz = wasmClass != null ? wasmClass : this.getClass(); + this.wasmName = clazz.getName() + ".wasm"; + try { + // locate `.wasm` lib. + URL resource = clazz.getClassLoader().getResource(wasmName); + if (Objects.isNull(resource)) { + throw new ShenyuWasmInitException("Can't find wasm file: " + wasmName); + } + // Reads the WebAssembly module as bytes. + byte[] wasmBytes = Files.readAllBytes(Paths.get(resource.toURI())); + // Instantiates the WebAssembly module. + if (Objects.nonNull(initializer)) { + Map wasmFunctionMap = initializer.apply(store); + if (Objects.nonNull(wasmFunctionMap) && !wasmFunctionMap.isEmpty()) { + wasmCallJavaFuncMap.putAll(wasmFunctionMap); + } + } + Map wasmFunctionMap = initWasmCallJavaFunc(store); + if (Objects.nonNull(wasmFunctionMap) && !wasmFunctionMap.isEmpty()) { + wasmCallJavaFuncMap.putAll(wasmFunctionMap); + } + this.module = Module.fromBinary(store.engine(), wasmBytes); + WasiCtx.addToLinker(linker); + // maybe need define many functions + if (!wasmCallJavaFuncMap.isEmpty()) { + wasmCallJavaFuncMap.forEach((funcName, wasmCallJavaFunc) -> + linker.define(store, IMPORT_WASM_MODULE_NAME, funcName, Extern.fromFunc(wasmCallJavaFunc))); + } + linker.module(store, "", module); + // Let the `wasmCallJavaFunc` function to refer this as a placeholder of Memory because + // we have to add the function as import before loading the module exporting Memory. + Optional extern = this.getWasmExtern(MEMORY_METHOD_NAME); + if (!extern.isPresent()) { + throw new ShenyuWasmInitException(MEMORY_METHOD_NAME + " function not find in wasm file: " + wasmName); + } + this.memRef = extern.get().memory(); + Runtime.getRuntime().addShutdownHook(new Thread(this::close)); + } catch (URISyntaxException | IOException e) { + throw new ShenyuWasmInitException(e); + } + } + + protected Map initWasmCallJavaFunc(final Store store) { + return null; + } + + /** + * get the WASI function. + * + * @param wasiFuncName the WASI function name + * @return the WASI function + */ + public Optional getWasmExtern(final String wasiFuncName) { + return linker.get(store, "", wasiFuncName); + } + + /** + * get the wasm file name. + * + * @return wasm file name + */ + public String getWasmName() { + return wasmName; + } + + /** + * use this when call WASI. + * + * @return the Store + */ + public Store getStore() { + return store; + } + + /** + * use this in wasmCallJavaFunc. + * + * @return the ByteBuffer + */ + public ByteBuffer getBuffer() { + return memRef.buffer(store); + } + + @Override + public void close() { + if (this.closed.compareAndSet(false, true)) { + this.wasiCtx.close(); + this.store.close(); + this.linker.close(); + if (!wasmCallJavaFuncMap.isEmpty()) { + this.wasmCallJavaFuncMap.forEach((funcName, wasmCallJavaFunc) -> wasmCallJavaFunc.close()); + } + this.module.close(); + } + } +} diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/exception/ShenyuWasmException.java b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/exception/ShenyuWasmException.java new file mode 100644 index 000000000000..52b524bd71ff --- /dev/null +++ b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/exception/ShenyuWasmException.java @@ -0,0 +1,56 @@ +/* + * 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. + */ + +package org.apache.shenyu.plugin.wasm.base.exception; + +import org.apache.shenyu.common.exception.ShenyuException; + +/** + * Shenyu WASM Exception. + */ +public class ShenyuWasmException extends ShenyuException { + + private static final long serialVersionUID = -3927608941632834099L; + + /** + * Instantiates a new Shenyu WASM exception. + * + * @param e the e + */ + public ShenyuWasmException(final Throwable e) { + super(e); + } + + /** + * Instantiates a new Shenyu WASM exception. + * + * @param message the message + */ + public ShenyuWasmException(final String message) { + super(message); + } + + /** + * Instantiates a new Shenyu WASM exception. + * + * @param message the message + * @param throwable the throwable + */ + public ShenyuWasmException(final String message, final Throwable throwable) { + super(message, throwable); + } +} diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/exception/ShenyuWasmInitException.java b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/exception/ShenyuWasmInitException.java new file mode 100644 index 000000000000..230e93676a9f --- /dev/null +++ b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/exception/ShenyuWasmInitException.java @@ -0,0 +1,54 @@ +/* + * 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. + */ + +package org.apache.shenyu.plugin.wasm.base.exception; + +/** + * Shenyu WASM init Exception. + */ +public class ShenyuWasmInitException extends ShenyuWasmException { + + private static final long serialVersionUID = -2152384472200663352L; + + /** + * Instantiates a new Shenyu WASM exception. + * + * @param e the e + */ + public ShenyuWasmInitException(final Throwable e) { + super(e); + } + + /** + * Instantiates a new Shenyu WASM exception. + * + * @param message the message + */ + public ShenyuWasmInitException(final String message) { + super(message); + } + + /** + * Instantiates a new Shenyu WASM exception. + * + * @param message the message + * @param throwable the throwable + */ + public ShenyuWasmInitException(final String message, final Throwable throwable) { + super(message, throwable); + } +} diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/test/README.md b/shenyu-plugin/shenyu-plugin-wasm-base/src/test/README.md new file mode 100644 index 000000000000..82bb92adb661 --- /dev/null +++ b/shenyu-plugin/shenyu-plugin-wasm-base/src/test/README.md @@ -0,0 +1,19 @@ +# How to build the wasm file + +1. install rustup + +2. install rust + +3. generate the wasm file + +```shell +cd {shenyu}/shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-filter +cargo build --target wasm32-wasi --release +``` + +then you will see the wasm file +in `{shenyu}/shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-filter/target/wasm32-wasi/release/rust_filter.wasm` + +4. rename the wasm file + +rename the file to `org.apache.shenyu.plugin.wasm.base.AbstractWasmPluginTest$RustWasmPlugin.wasm` diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/test/java/org/apache/shenyu/plugin/wasm/base/AbstractWasmPluginTest.java b/shenyu-plugin/shenyu-plugin-wasm-base/src/test/java/org/apache/shenyu/plugin/wasm/base/AbstractWasmPluginTest.java new file mode 100644 index 000000000000..e626c784ff46 --- /dev/null +++ b/shenyu-plugin/shenyu-plugin-wasm-base/src/test/java/org/apache/shenyu/plugin/wasm/base/AbstractWasmPluginTest.java @@ -0,0 +1,132 @@ +/* + * 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. + */ + +package org.apache.shenyu.plugin.wasm.base; + +import io.github.kawamuray.wasmtime.Func; +import io.github.kawamuray.wasmtime.Store; +import io.github.kawamuray.wasmtime.WasmFunctions; +import io.github.kawamuray.wasmtime.WasmValType; +import org.apache.shenyu.common.config.ShenyuConfig; +import org.apache.shenyu.plugin.api.ShenyuPluginChain; +import org.apache.shenyu.plugin.api.utils.SpringBeanUtils; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.mock.http.server.reactive.MockServerHttpRequest; +import org.springframework.mock.web.server.MockServerWebExchange; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; +import reactor.test.StepVerifier; + +import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class AbstractWasmPluginTest { + + private ServerWebExchange exchange; + + private RustWasmPlugin rustWasmPlugin; + + private ShenyuPluginChain shenyuPluginChain; + + @BeforeEach + public void setUp() { + mockShenyuConfig(); + this.shenyuPluginChain = mock(ShenyuPluginChain.class); + this.rustWasmPlugin = spy(new RustWasmPlugin()); + this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/http/SHENYU/SHENYU") + .build()); + when(shenyuPluginChain.execute(exchange)).thenReturn(Mono.empty()); + } + + /** + * The plugin is null test. + */ + @Test + public void executePluginTest() { + StepVerifier.create(rustWasmPlugin.execute(exchange, shenyuPluginChain)).expectSubscription().verifyComplete(); + verify(shenyuPluginChain).execute(exchange); + } + + private void mockShenyuConfig() { + ConfigurableApplicationContext context = mock(ConfigurableApplicationContext.class); + when(context.getBean(ShenyuConfig.class)).thenReturn(new ShenyuConfig()); + SpringBeanUtils.getInstance().setApplicationContext(context); + } + + static class RustWasmPlugin extends AbstractWasmPlugin { + + private static final Map RESULTS = new ConcurrentHashMap<>(); + + @Override + public int getOrder() { + return 0; + } + + @Override + protected Mono doExecute(final ServerWebExchange exchange, final ShenyuPluginChain chain, final Long argumentId) { + final String result = RESULTS.get(argumentId); + assertEquals("rust result", result); + return chain.execute(exchange); + } + + @Override + protected Long getArgumentId(final ServerWebExchange exchange, final ShenyuPluginChain chain) { + return 0L; + } + + @Override + protected Map initWasmCallJavaFunc(final Store store) { + Map funcMap = new HashMap<>(); + funcMap.put("get_args", WasmFunctions.wrap(store, WasmValType.I64, WasmValType.I64, WasmValType.I32, WasmValType.I32, + (argId, addr, len) -> { + String config = "hello from java " + argId; + LOG.info("java side->" + config); + assertEquals("hello from java 0", config); + ByteBuffer buf = super.getBuffer(); + for (int i = 0; i < len && i < config.length(); i++) { + buf.put(addr.intValue() + i, (byte) config.charAt(i)); + } + return Math.min(config.length(), len); + })); + funcMap.put("put_result", WasmFunctions.wrap(store, WasmValType.I64, WasmValType.I64, WasmValType.I32, WasmValType.I32, + (argId, addr, len) -> { + ByteBuffer buf = super.getBuffer(); + byte[] bytes = new byte[len]; + for (int i = 0; i < len; i++) { + bytes[i] = buf.get(addr.intValue() + i); + } + String result = new String(bytes, StandardCharsets.UTF_8); + assertEquals("rust result", result); + RESULTS.put(argId, result); + LOG.info("java side->" + result); + return 0; + })); + return funcMap; + } + } +} diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/test/resources/org.apache.shenyu.plugin.wasm.base.AbstractWasmPluginTest$RustWasmPlugin.wasm b/shenyu-plugin/shenyu-plugin-wasm-base/src/test/resources/org.apache.shenyu.plugin.wasm.base.AbstractWasmPluginTest$RustWasmPlugin.wasm new file mode 100755 index 0000000000000000000000000000000000000000..e95a8d27bb68da3e2a921583e264e0b762e180fd GIT binary patch literal 1984076 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�Q5n8q@>9tLs2*nOo>Nc(?|W#sjg6VNsycj~!F#{TZtuBS{Oj=Y&~ zhh0ypSB+)25MDJVBC={sM0nMhaAeh(i0xWSa)QenbCBW}7h!?l>L$iNWvLm2A-&)_ zzrFw>*ZC0Hh`VMxd37c1=!T%{DrVvK19l<<#nfpmWH zB2VD)C$;$_1mJ@j)f=G7&X4nyf07Gq`mlI?=Tm=xClO!as@ETHREAt4zH=HmNBI_& zh>~S-#JD;eL%uiA2n(mQ{W1pM8+hMuFhuaZfhhx2y=k`OyX5rBm_j0g_XhCM;Z|gR zm=8dfFW8sZi-_>HWDMxGwI-;yCGX8R;cdx1fKc0#-Lw2M$u8}Pc%CR4Jl+=FA00!se`zjA)DEhcb({dX}no3#Z715CB5mrfL7H_SGt&xt#pzrrCocP_4+ z{k|@5y`@>srODedb$RQB5qxW+MP1(hs}653smt3Fw#D0E&*wqp3d3XScvU_s3SyaS1Cm2 zOTRErGt~vq*5GboiO_coKZUP<{kw&=@vdNP!p573h#ey$Y{v*k>=+SYJ66aDzqAox zyNtKC)v^Wu`gOy8lgC{z<~0X zZS_|DAR@{?IS{=zur#wCiix33!I6K)owRRh>Y+V=(=lhC;|sbxnn|zDmCbGA9_F`+3%&-#hYs*E=}&bxaZx3GA?1` zej%RnmZE$s0VHn0ZQ2U~tOt-9Y7}}G0oX*~FeA^M5vqpVAojGMjfZSxH|^Z%M>&m{ z!;O^lz8{6XN9ykw2EP(QsKfrf9#w_qI5Ksc(b%0DLdY{m`p&D?jB-0JOW0?fN<)?d zQQ$u8XUx``T44b1b{wYSaKwblppecxzNFa3(=WzT&SoDWMRl~3aX%lT5=n&Iv==`y zggM%2;|@AkAz16g2qz^R-d|2J_9fYuKsMNAL`0;W5%Hh3Gg*3E>+SMlb7sPlMYiWr z$p7O`Qtafe^%ZPsGI~?B{31jhKzi24f+-^n>sK+Szf@hF>1Wm-R7QzR{Py z0bj1X+!pU~#T>qYFngn!>nZqPE#-d_7JtSpJ#gF#Aw++%$htVRb^?Mg-kb zE>w@Z;FsRxTcf7HrXR+3kw-cyr-F!*adBL){ZN*CakHKzZ9W4Xk=z~(NKUj?O|jKU z$&YNOMc7JyY&UkA)wPl>>RQRO!$y(5Zi_I2RBo#RSr z-cLfO@F8|1h8wcQHgb^YbtJN8;*JfuWrefGygVlMc)pKWLtZpOndEkgHxURZ?{k1q ziM}?R#qTI~v}DmRW#;vV_F+eiJPF{PcoWuk0F-7wNOwhCu2%p_CE?!2W!Xa3mjsVL?o8n(x@a1A`*x2JJA)aKkOA+n* ztJU@Mg$wZIsLe4kyA!^2#q|;mX5lVW4?qjkXwF>cg>s#Iju6*e?}$Rnw7eV8HI1Hx zm=5;xY(5NYo&aPIcKzYlCjcOs!W$P;O*&Ha9tYvM*3U zV`lCSb7fUHlx5B~>q$g85aGJg>P2#wh*0hl4&`3J1VLS+0u4)7m;!qeOba5lyuPM* z7*5|wt*8|z!S|5&Uv~zjpwJs}4I3?4;r_`Ql%FMKMuq3c6TH~jB?AwPd%Uo<6k*=b z>+!PIiU8n6twVi4JFFbc=nHa5Q#!fd8R=hsP#DE!Q?Twb#Q_j$;l(gf*$bQ6hKjp> zPha<+GTfaX$o7wgPaDvAd4Ys=Z;fh*g_nT}Hj=9@=mi91JKa#>f4_knF!oE=T%c3L8W+i9J3eiyhakcGEct=uZV zPDJE><5G*{T`o;df}?|;MOERYQ`H{B!j-BDqgjP}t@=4%+zW?~z$z6hqejo-x{w$AvpQAL~1Xs;rg+7M#B(lI7G>cW3O zrw)hhFQ8V3HS-SKiorWL3jcvLhquGeAVAV$$7Y@nKk5osGsvj*zLqLN7*eC1xv8o2>{2|r3ka|v}SSv@~K531jp88Cny9x(qPw# za6UOnVQKQ3ZM2L2TVFz`w*cO?mf0)c3h`Z(rp5C3E~pvh=)-JV5AF0V1$UpeXz52M~anv8qe3eEfgv3~unR z-hHs~w+1F?ZN?VuFx>%5d zLcD?K^qRUgj@5UL4btwXsA3?J==P!__ufY8>Z0x`hQ ztaS+xVe7JoA4yx60HLi*fCyWc{+;0igLL3j=hMJ^{G1{7#fLrcfxWn#E)5W6xGGjo zmj(zuT^b;Q=~BY*o8(%IJjFZ`1%e6{o+cd&94aXi&p3s0 zePWWIN*~_V2z_{ax=%;1C7%ie?65q*iGTcy9dKYwyz?|n$3bv%N@kb>RaU@JOXH#w zf%*7S{8>!gNhfD5fN6P_h?V)#?${C&E7+Ct%k@dT{d0v6GxY;o7+_yQnrVOt^Au_(Oth(fO>F=k_!(*oP`N|&M`+yP)r zyg_Q(IJ7hXa_{9#M7swx5}?{_Y`mvC73M=D&WdBIERDXcFB6ZAw{txJk03r(LESZ3 zR*mD%{5&aMn%Hv*?zREo;nMVj5Z;2QY!}}5xRUB;_<|a-34X;8v`>w=#OQ;FB3T8k z%WscX2;hJ*W!?iQ;Vjah7H{aCh0-k{&^w-+oD8?*M8u>Po|0)JQ|5KjDS>r1zGR4t z5v2{gnT2+NbKh%1BIe?2*`-EjXZagh#Q1LYJp0x+vxvWSP1^&&JCb0EGfwjob}bfm zP=umQO;VGPcs;^r9Mn)Ge_SO*Eh5sY7Jb4wD&g>f)shZElmaNb40jwa#EQcvq|l8_ z+!<~ovmQ}5$K$hzGL%Fv5YF^*x>;Wc1T{c6YmLy&dJdwnrb4bY zCb%ayBKfqTa~n=&BGwHvcd2@OlRty!p1|&q`7Xn*VwNLG3mJ z(9QoA(1mdvVQv_P3&1X(JdRwj+m zEZM~P0ZZQSi;-0(!O?NR?n2t-K$$x8OTer_00L%pfXOIesRLW75dpJ$(V1h6FtZK^ z64_Ik9NNk`fKO)G!7zvRQX>MU-GdlmrahgdfOI0yE5xu90Xd$jKv(B*tMu-`=8*3D zb~E?D5Te6CY(AGmo(m9VUq<=VR`(0c1EN0=+Fy$x=&wZ(^w%N?`fJyLM(cnE{j~^! z{@OnfBjT?SK{KlTwE&_0wMP+yoYbCIfC&3*&-#(HzZM{LssIu8*N#UIq`5ba+)F z{oRv*Bdc`BI1PwM$EXpyV>}H}NJn>!X95xG7)9Oq;j^IxhSG-y!R`1PJZ8 z1c<DE;7Yv9%_VNQWtvl>9)*3|Mt;MRy~q4E?0(B)ZBw>;HZL>Y3G zZq5BZPD^hM5E1EVgqB_nqC}+k6c8clNw=mmilW_`K>(y%gUJhYhcV=1(IvtEMv?-vsVMqykXRcW;XyL zBrD0Aa^NDG-5H1oZ!|*lriV{QYjy{MMz%)02Nv%>(N0)tUSQkHS$mgQVellX0H;l_?q|00;e#nGL z<23Y)P+p4~8uCTyvb5d&=GQ_zPSDE#TEed_ zjn0XB)flBs2k>Fz#G440Bg`)R6NE{IoRnSo75>z>M6e4NFwi=N--Qe3`#B0rz955? z)9A)5!tE6E+#YMPh@4UNQlQ@lrRvK~b9&dXM3?ure zi7n?vKN(kDz=#58wI7R!$XPFm2+n$${mP-mN9}2e8V<-m!M=`-xE|-2wLb7U4#9Tc zUjZWaBOU^K_gxH0Pe;7V!GIr`=nZV?poC*r{5vihqW5WbEakRWOQ4R#y;^6G*bUhJ z5Sz5X688Ik`fE>(i>vvG={vI+AI*q~mG9y6*&zSrP~7rb=qX^*+m`56puPxmNO$xq zbBpkE0)M9A$NKKEn0O0Ak&`P7>o835y^J^~1)) z+Yk#>ycNSY8xj0lhneEV2EacY#fQ`G_gP%5XB^x)E7yDFdf4lzuN*A>KlZ*mu&N^a zf9`$n-IA9;LJ0{qp$3WYsDcF}C6?Dg3+)1aCglgFLTa4)6SeZbEci?_Ps6ew2-LGx4dz$ zq&KH4yIAeL12lpf5QskhgjaF!xXbnI(<1cnc@AJuufa&Troa84M-NoUEaAH<+`+r-a0O8&p{p5$=SfT{ss!3h^ zRR~ugTsQ>_;}-hKttN4L^7&)0NuIc|tcJ2d&=!%<|sX3?QsDFE$=jzPUhE z_OM#H=WAJ!h)Z$4q)}%~bv$LacJ6$gG2w_>l?bg?-M4hQF{azqYLhulrz;U}w-IhB zgo8CcmK5Erb`JSZL@5wehvqtL0>Z-pqZu4FLjV`}ncT!B+za1Tb7VfIx!6-C;S2Aj zrxi^$5D@kb>R1_%c*xmc_92#dnH_S1<$sD2&m^}GvbrW`p|lGK+|(xd61cbmVRQli zc65PN2utz*UWu>+pmltjO{m>fU$3C00j08t4KKx zY*8Y}#jxdWhyvS>hy;jWtBm$;+(U6eA_Dt{Bupo;Z-}61X#2+fCftU9uv%r-HETnE zU$o%@6t?n@Sk=nV4Vr@_s!r^ZWMizr$Ep+677deUMYu(C>%FQi37>e3@9}Vn`JOim z6L9=_y;iDXOOZhi8E>OCSLy6Te9$AdG^Z;2K&k(Ed0c$UmK+1%;sr4=hQLG&tYbN_ z{$;uli>N)TFfhkQ%t(m!gm_kS6l5dLYgh97j`)rtB%X&K9s;u8LUeoLK)o+I1|N;J zSNac2B)dUc*P%#LpYGyM#ENg;5#Zm=@a2&hr3%j)%CoEa`-Twm?5aQcdR&ZB5&Y!W z&~{}2uzc=2_24PP*f{g=hs@Ow;Iet2$MVBwq7q?PZ^)}bl;vAs(A(+u77-E8X``R+3UzL*U)sQuyi_hVW6A8W4u?DOqX)U}R|x!$y`cxJG5kMPbsilzbWe zHV-sY-)*1dX_^$mRj21VJWRvNi~uGottNkIz=wnJt)#+(9Kn9zg zS|&l*?9>|A?9@8k5;n-G>(q|0f#r^H=Dy$wF|5ecwFQ|K8m0(NeLL5g13BRLc7*?# za4GW!rsy~nHiMY@`Y@LQXJAP{Ng@K16$+k9!85QFJ|j_*fD+}HC@fSs3gI7@S9}mj zmbDZdM>&0#vjSm~%RXAo53jeEU2-PEKiVakjK@cSSU}1)<;K4UX)R#%)2&?hI4xt6 zL3df5y&b}xR*n!^C#VG2bW`uL`g+#G3L!;zDUKJM78caIEp&8B4l~7YBc>h?qlMx_ z#O^?ZMF@&AB0>@li4ZiF7NKBBw`CH3vp)I5ez-dbrA2(&)|NPv{qRD|9Ri1qEQjoe zGtm#v*JTg-;n*Ma!`b2L1^sXZS$MhbhpP$bez=}t-4C;m3iZPx0Hz<7Fl_o^If1ZF z|B-%J2^!N6YY+}I@%MhXx%*)~xv%?S1HwT+Y~lyq57!{P@qYMixF14p{GA|*;%G#l zkA8Tama(88?)QU!*s*y(Y^D1lZKSE}hqs0kk^S&(-4E|3Nv+jB$rF-!$h7LxTzNn; zg|OV`r%o>gU=B!DFsu(qRwJzU`KMlwvtx{74oEHlzRE985eCyHer)wElVx-`7M@sCkLsWsAu$YjSq~a{<7p88Kqo)un! zFH^tb9YwjoA&DVeig@-N>O}3-4T^XbiNCYDdCRnLaLx|INVicVG8AGD?@%prL?mf} zAcOuk(*4)Mg!q;U6u#c?S+}Z zedN=bh&ik`VqW-eT*c)5mU!leIJ?a6xq#%^=J<7o+oGDNzW{~zmAm0b+TYAL)}eD; z=2gAairJ6hkUsLQe%p$5bR1F2@H>`BP*`$M3#t82fuCF!zWT;w#ouu(1N^97+RFdK zn=sLj!2!$J$yUkrZ@@eRaO{Y-$=(Q;BRs0XcTQfQgt{GAaoopUGLJr1!5rJMzVF8M zcS>*mQ}dOYnvB%cC!MvYgXWI@I9pqd=Mg+ngYN0BL%)i=XNp*RQ+Bn_XeFCVac8| zR;yYPLH3*&f=@p*;neHW@cZe9WI3gw?`NEZb%js{(`KuabQLHOUD(NEN#wPI$k206 zw$^i5gyFz>19SktOBfEECuprkSUYfbC+H0K1deXfoWWX)#etYMAm2F{XF8Y&;p(?L zdwb(Zhk@0;Vlss^s!^zE1B#P7BKk~(&p4=a^7s!ig+aLbojm_ggjXOuRba>HMLnhk zX4G+dOd}#Gr!#%D8ATggPG>r4Gs-7|X4D3q2UKC) zOFz?OJ`bB| zGb#}d#*7+%&|^kD!W$hkL{w}cs@Hsk-6%w6BQam<3+Isis$Jse33q_%*-Pgpv`L1U!04B_9U_W!5UPA2!Y)J{h@klI>) z&{De?;f+eI*WnpeV7Z_Mxp9YUNu5VY9fS82c<8nfX`FnH6%3^wK8A-<4ld!LRKlU5 zl&~I3lgl9aYmi?4ckTV_AllxEGNZv6L(m;c2w+(*qv&BMX95_*gntx9*XfFGe8wLz zwAKSq!>aIUjIH3u?d|-)61x&PhAlC|5lf7Suq8&=SYoS?8qZ(R5?hDxPg-Iad?J<@ z;jksPHQ*n&#L#F@-I|bd%<55AEVf-tP9dwYvu}5T0T*jC+7W%QB46FhitPp86uWcw zS8Rpxm{Ydm#tvOh#HM^?%NgQ~$F114U)nO|84p;oejPDY#Y}X@!&a>9Xj|qoW2F`Q zaEv2XBF!1kBgY;{CbsBNAt&%Njr@lOJl|xABM9^d5RNJAo}Ezv9yZBc zGgloLs+wr!K7VRlWFwoZ3M<#fh0C#n5T2sE!(74w@tOyBT!UTK-GB}6vJM9v-er|= zXqUAQzBk)t?Jkqh503HXo6Loq{&Kg!yc#*^-Tq31gWdib0>N%SfMB=3fq>raUxo0m zyW2kwvyk;F?>@i7zSA3Q^X$${e&KGf^tSM|$!5@EM{wh| z>ZD``8(}-5jI@nmd zewCVO8>_!r(X|?MMdzF zTi4?PG61fLZi_IB;vuqJ6a5?_6(DFQ9H}Qx)b_!~o7?Tlbcs=zm!EhvhMOE1b0Rrgx4p}WMz{05g{xoDTW{o}SgoLDu@$~~raOpGo>wwGABrxnEn z7xb#mY^IvHa}?|r?S|6+9Q&vr=+#P4RCrIY3KgcX;hzk?NwW0vz*0ifs>)GHCpMs`wkf3@ZOBo8>PLpD{va4BEv zhvDckk_{V9!XQjRx;&YKy$$bl1h2@IH(v@64z39eCt&Walmp=TY;GxrP$ld|_OPFgITUMEK?lkv$O2T%&4W z`sSKY69IGMg_JCdxkeR=$!xi)vxfBMnvnQYS`6|KmSP~8l>!u86Jj!44vDZtA_A6_ zk^aY7Li2YrKO1&W2S9eqJ7=~0VwklUK$uyPYeFoAM6{Gy@|qB1!B$RR6ABP5V_I}e z>Uw?goQXhr2(=|8Ww;S#ue#!wX;3M{os>3;)qU0xn-`d+SIu#{LWY^w{m83oZmv5< z>v`raFDQ)&A<|cD7-bKVmpd5d^Q;5J77|rojtJ5d^Q; z5Yfp{yzsC>xIhFKlt@8DaK(lQ_JH8Bj6sC2*chD5neHkKVq>w8ppf1GNGL6wxxcJo za^EPyyGFgi{0pF0I6aVBH?W*nXW--y-6Jp~IXqpH>+m)n;q6fh+>;JgmnD2q+O!H( zyNK%cYnl&FA2XN7|E}sSho|~M?(#R%upFKm-b^DnJe8r}u^47}YO`91)$Dqhmz{~o z>k*d2Q;+);A%#j`=#A8&>bmp_`9|vyt-^J>3RDv2SloKlA~?=UEmgIs`5;CQ6w>oV z_8IuBJx>%NEC(_2wFH2P035`QuUGX91~EE-A%`S_ z_7@$%5J3?&_E%H^7|#==YNh}hkWH2LI$=Jy^emH4u>=w6wi* z8)wIqA$+x!`+9qLsHM$PXXWOc0oQZXHw&%YllF@#Tjq8v_pYlG%2>wP0J+284Y`?~ z)ovzEX?8)RQI>n{{c0Pf4NJ3&mG4|0LY%d-wR5h9GeB_GhOSPvhS^om+B3)f_i~kh zgm<*sIy((fvO>i8@7rZoyr4P>;XSr)hhP5L^HBgP#tQ&JjP1G`Gi~9&unfL`*)t~L zMnN1a5NiMo%(3#E<8(Tlb`5D);AUN+(j`oHDc(a4jEE%CE{OJXXn6g(un>&d%K4`orVW>k0soKMujLu5~*>vP{S%m>oh4xIL3CE&uZGzc3-rM^06TS?bY(Bk>KDkJascwIdc|)v9WS<&zNt)9f zjJ$yWXXF=+gf|KRaz?&eD59K^FWfhsQc}&xYcV3MQ4##)w0i6nOjjd94Z_Sdn33mS z8$xhIxb!H6pvajKLAa-BtBYMg&d84oA(Xm2Ut=Hwaz^fT)@S6|VYV(x-} z(_PNf4T83g$GN&enEAT9otAhO37qx4uU|=*aiDAWfns<J7ocrdOaK2?M-YbXSsixO>379qB1pv$%?+S+X8t*EEo3HU^f~CL48ZU+xu*k<0YTPrb zWAy?C%*3y>6t+gdSPF%Ysr#H&A6wpEb=$HaRi9wf|1PvGdtHG-v~vf95S6_0mHVE` zf%=kHzN~lCaOBDt34&J>WhuDUXiCxWazY$gh+NlM?qXdEF1b{F25q+Wt13;1qmbIn z`xYYs%ax%>+9@;R2|#kB<&fiZs96Ut2SZKvrC{&R7-~|aH$zP+0W;K01`ru)6396+ z)JQ~nsF|)JsG+7F04E300ym) zM@I9{8tkZTs7A}mU%V4u0v&|5dc{(!yS zTq9`kAj-CxPiO?&p10{;=QWj!PGfxL!{J09!hQRx=uWF$TTNo4I}r|aC&Gd5L^!QG2?VV00(Kn?ZLX)wJ#;5a><- zf$n73=uU(;yY56)lP_Z(8hKR?=51%RZozrr<##|kz^%8Um5m#KBF?{G7b7p2e*yxYGhVr zG42q*rZbX=x7z?M$DGv|8!<%0>#o{Lxy`6*vb+a5EB?OKp$5nMQD_?cf{JFn5BwuEq=nO~9qLix7DY!g8rCb)O>S;HH<_ zy!UnCS?9`9XrnK}ilY>_@-GEr#rgO;-YSqrR{;T|I7$G7Z{@T4;amBHBMQU?BCJ5l znSfRx)d(8}Qj4%rAPooy3S<=lqd?XJ2=?joY5-^jG92Ns@YBwS2){&xh2JHG5&n(b z$}dN%fdZ){U=&CV0HZ+a8P*D<0pb523Zw%RNE7m^+yko+*_SDsg)-YaX%%?&`Zy~Q zh3n(+H_2Q4Ye0|Bxxp>|R-_Nz;wK#G84}ULTl~p^^D)=Obfotuo&25%7a*Kb?so95 zK1#_UIiAtrZij!uy;}EQ4#$;c=)d1$7e z$D;oxbh7=A%OYAIAaQTn zO)-&0syx=pcK;GWv|8=7@(viCrjUyv!tJW%=?q4yvU0u2I$2JwX}7v#O4Dsa+tsZd znMO$ab)rr-fhf{`y=z}ZArb0OuY28-3dg39OB=I82)VT3-wModND>bkczr`MB9}Gf z(StI6Hb)OC0dR>y9zB@JFY4%lH$@jHgOxhf>XI>NB_^dHs5}i_Xr3-V)kNhqxG+7V zdHEmwLHRS5p=^yzVVc#^AGim0JP4eH6A=x&A)O21OLCguN;+dGAkZbQ98Q%02pmpT z05HxNrt^bw#!ySZIAd50VAIYR$ivOzjDeFS?Ti5(e5CGQS&C5|1BC2OU}d(UkO&dH z$&tqhSf6zH7zw)@r}=U*i0^WQ5x?whjvynh5HTb9>PaK`#!P%>vRVTh&%i<4$m1VG z1g`YtIR6*bHRE*`AT_#esQQQHU7))rJ4n@AsN~7I#~ja&2!!7QT4z0CRPJbHCOZJg z!@|ateS0NGLRF?1h6&yqD}tp6%Mo{(=L)2X*D8FU_t>ie6gqY%`7lR4fV?YXt-Ti>P-+k*7J1jiilozXwu?l- z>3Klmk>YAReqy3X#I>=-Y{4KbZ(AJ!U^SK>RoCCu8C430R0y;MSw2(y(kVaPEx9E9a~A z!q-CaofRULdGWWk^ zt1Q@(NKrg)3W*015%CBRMm)f*{~hs2yo9r4L%^e(m3XY7MBJjqL!2EFk30bXo#Jup z@8Y4HS3>aBi1Q@^&>pe6V=mE$_?Ia0NKqp0)Z$SV7LUqbRXpT~Q^O?9h*M9%j5rMd zu$L@HoF;^W5oZm6pE=@iS|(=bYH@m&M}QBgaB7wU@M9y+T_KqX2AKcp5$Am)GsWHY zj1^abcow0Q{JdMsOa%cm;#8Bl|CJ+7Lr6S=0mg_&fcT#radudvXHEAg@t8@8xL1qE zg0Oh3_^%a@WxtC@dc;vqsH1y&JMNC@EvB$l|F+crYd2^Yvyk@u#aKvtHgwRe>S()_ z^H2!ElV?ktojhCE?BtnypIS5Zk@8tQc{YBCn*I{OlV`JEP}5Pup_6A*GxXZtv%q7J zwCZ{c#+LA?6}DJ$DN1||4v-9ePDSNX*Vz+01t+=)%abWiXMN^mPf{G&*||<=E zxk9C2PGe=feE}R1B7HeWTL*x1=@??`<0i>HP=IwHID1l#v*CXA-D2u9TX}0kaGz(a zZX#>tTrA~WhOd{m63!@H+$6~-!wuW>Dmr0(kS71&LQ9=J<7?1%(rLa6J9)j{g}vSu z_Wf~eI9yZis6&Sj<1ym1-qj}!p8@d27=6632|!VOT%9|7-d6jwNt9YnUG^hi$=r&| z!PiG@UoyFxz-DCfOr*a_CNBU%%bC1_)GcJPn}PKqwrdYCzUomdc6_TFng}^-IR~w5 zD2Q;1v>-Fc1k! zoH<*iY{dblxjIhN2TLEbWvi`1&8r^Qt+tN9W^6SNwc2E>6@Z}Stu~z0Eo?Ra)Lm^+ zh6u8<=fh~6OyD1OJNGobJ}-MQA6T5A5$(u)KCsxRn}?b~KCt+fMo{a>2NqupBY601 zC!|ghkQCfP=&2i!2-AS*-P68N`V9Jtr73hrYC0|rR=ox3;(LQki3llOd~-02@c8Z^ z5i&2lJ?Qf7K_Vyze1Fj8`-1_3#p4@<0fNQjJA?+2E}n=Ad*g3j*yU+sIM1hUvg-~r zx@kJw`dKaIwFEY!lrKj5o0RfK5VTy%SChJhQXXxtmH!#d6$~XOnC4o~7J5!MSN5#U z+gwFRf0NBs0)mz|S2?MFQFHz6KdiYw5 zc?WGE^)G6}-@Yx_tPO|t)fZFmv3(kbO>C)qbsMfBU<^dDnHL%Ikp3pyFa?5^w_z!% ze^DF$_6uQY*8F0RPci!Yr#*DS6` zM0jyUBEpL+M5I?Q{PVH6vOtxfFu65=MgTKb_?e&E$~$&0=&MH;N@u8R@U6O3IYZ5! zgRpjnTEwt+hFXH~&vb@bE|dCkXQ-9@W}KliY2yr)VdD%HVI0*|@3gE2fSW_|&7buQ z2hLEjQv6eHC5u2~+)9=p{BztU@wkQZr4TsqBCmgcr$x;qxGKxFxgWkOgb(VSmU436 zI73C41c&i)u!DL;IJd%YDaRuWE~2`6xO>rP#aqHt z55oIb&+MBA+xYHy zT{;P0jpE*QluAP)rdz{67u2~Q6FCJ>Z`Las!r?k+6Goj~Q)h`_2Y*PX8t&lIV|op_ zFhhAvuSfXjdQ4|AH|;T5VMKraY!g>EP>V#$!4W`fZY^v_ov4fSX)4$vDtd zkIi$JX_1qq@@-s@2+JH(edPx-=QkqKY8ETg&UNSM2;3S%%{zPV>Ig(Ack+`@Q0)^_ zBz?V64=V(BZlycO3PxEfoHlGI!cCUP& z8*A&qo8LFqz!AA|yOE7Gxr%Y9S;bg)V@$1Lyl;E=YM!gjezca2ua)Rw#|=GHjs=!Dd#)9s?bI~);J7jl4U zt{Xqt(z;RhG>_0iYVdj3z(xyYQTNeQP-$5-g1}E` z6MFMD+GHKVVQsQK7#G$i68>GADBDF&c>b^2#DlqOv`GQNfi@Y=4_cd)A-qv-A~Gk1 z=fvOUWQ?1SqdkaHZCQQY!y(_a_h=JV$Kd(y#qb=XcYE)Sk*Yc*pb$g1mD%v zfkQ%e{$J`v+5Ji@=TYQDrq$kkD{L<3!(4t~bclU4mp}V~x$LghkqVK@)Xp%OpVpD2 zil@o^?GH@mlbV~%dp@i(qG2LU=2vtgX_ML8aiyZ^r;F zB8%SK0Q~qjVE}%F0!jmLGTv8_{^mciy}xM#ussT2^(hR%WiS9s!5;wWlc%lll}2E2 z@>C)=vmtmB#>NU&lEUQPI3qJ1z>F7s>Fd27;lMHe3IfJc`)U9Y$N1E)oA3g^o{_^| z;3$N1Ux_-uT=7Xjcc^nLN4Jrn2G|F4emOPIcKj9*TmWj@~J4g5;d!@s+{fnN*Y z*Smqg7|!WdF!}48j=>uPKf%h?qz|)_T|%*v4)xdbvuUPm9GD0k>K6eBm|OxN%;dI6 zL|*m(9`-M}E)gwtsPEs0ij*^b!{kZ=En{-vH=q<{D4gf`f!_cksH9!vHy}V5zX7`# ziY@Pl-ZMope&~sa_@O5v@K4cPeXZTn>Py%YAW6}?Jx9Z6m3Mo-#7&V6P+xKZ@LALY zI?k$_as+ODOn`E$L2Fl4$GSKNKc}Q80g@lTO*5p~ZJOK{RSYC9y&fEdQ@@ly!dyDb zD8CRstdYLl&7TB-Un%o?I-5KK1!w>Pck^=}P~R=)kJ~hU2v)ag{*E27CQ@@Z|0rEt z8k8HmO|yL}u5Qyz#iLtxPrEsfI!#j#X;+g>=!e}8 z!|*-?e5+9(5M&Iy?(#qAmjy11MUSvO`kGK{3RlGZb(3we2GyvVg?EkE4gyV8bqfHt zM;?LA*d8gQzsdF}1wqT(qk_~eY!CNLEdo8juc}+&rTfGXLTZbddblNpwDC%sUA#$Y znWIg^i#I(&u)KJ~TOkxP63F%2i*+7Em}L~_WGy`u#*JRQX(kTG7ihC!PAq!t;&n7= z{w27NDC}MfE8@h7Wc?iq;9DMTy&aR9fVDxD*PhMsdcRIy|H#~BLKEt9==L* z>c}vH=F|?lx!LRGMVKwSAF0)Y{f&whA+l_l|m=RfG}rYiLO z2YY(>`40()p8x2B?`qW`i!X2$Fg-l|;m+52a@JI}43fV^_kx0s*qg<O8~A`&9#!E8MM-NLeah5$Z`vy`s@0s`i zwtD6b{~0~ASPg4-U5D)~{m_Z(nMGvsBHc4f32e@uiS#$!GePh(dM2sEJ(Ei@VMCL! zzN72YuvyId-2|UpG-?_FP>=dFXjW@rOX^U69+by=7Lo0-7K$T#9)L$eiUVCEI_gS9 zc+}<8;MW~>gMpF5NY$gE?ni_iiOg-;0AVi25)ru^D-j&>&E;5$;J{+`@QFwdEG}QK zqP-Dg=8weuV6Rdl@RF6DH6@MRM$=syY(-?AG1*H9Y(~j0NBWzT>`D-{T(WCO9hU4( zOrZixp$A#?+c(+etm{nET=r=&#W_#AP3fb0Hq>IRj~WPU##U=W`kQREHEf3#o7rOi z&uFzfw54zXTa6XofDWIB6sn#Kb@(k}X7e4ilq!iY-&iaq@C)BU3)F|StDg#~46WqUKh?M=Sl{@WkD&*&vYaKE$+Pa(<~>>aANRIp)|=-yII!1R{u5iNl#nq?vb zt9byIi57z*Y*!O*j~H~0$z>t~2g^h=k$%uymVufoIJ``>00gGDxV?oy9}kv^44hsj zT0v@~k;oCXoR z$oU2+98x?V&&hn}AR!DQ{37Q^nn;$OE1?Dv#4?ERN+?DCUx+COh&8-z@XCQumR zaH5!vI!!vR`$YWYf3>|{fVl^U z3NqlvT`uP>2QckGZNokc;H^{irKl%j%4^P}h%8rdxRBw!p;xO|5iDT%K36kV&6hxW zHDim|Rb0)WX>+VDTCk$A8xf%u4S6W$mpy12)xKMNRYNXtPcmaaC(GW4;Rd=74a6Dq zIyO*v#=J!uh%;t3P$mkD()>!ZX79%IteIO%KRIh=^M_~6QXE3F=6?7t7qo)o{@rDa z-`vbuw*F2in>pXi36J-c769(w(88B9pW$H4mY@0j1>*GpcnIwHdbMbsjhy6djbHZ#;_L-1^Dldm zHY!1lTiQI95_B8bBu7xrQM^`R33?I|#ED7~s~n!FY!M0KM1>NxKP3o73y$RNLd1W^ zge8C8g)y~7^%!@pET{Pn>4g0fY8SZ)hR_$c*dn%1D@*(x`sSP>MEDBVuj2QA05`#i zS@ky3kZn8>95QM+hT{e9fqzqdgnFv#jo1LM2iEY(Tp|Wcu<<&~5t@XvgsQh<=_f>q zkWYxZ&wip>WB^ItjwPH2Lx{4keE(4>r4k5FS(a6h{M#`&Ck^170qvc+2s1kuG0!=) zYvu>oNjC7g{kIa%^A#HZDw$m?E8CxleWw}O$mdV43Te$fyF;vi+=!Flz=iCmOn5ZYQ|3 zeik^METlJW`DAr~FfTM4gn6Oaz`@hI1`&AICW0**JiTiW=^2gikHrMGT35`?eF|?w z6{!iboV@xWM0)aiB}n!_!olSA1|UWQ5lmhq2u@xj2u@xj2u@y?APp2)rNPN-1i{Jc z1E7dZUWsrKC78S#L@;@M0Tk#6>B*}>geR~6&_u!H)gXe&t3iY(ulJ$VzD9x3v7}UZ z+hX`J2=&y{$EfERBrdhS7vEPNc`}HAR}lnx6+w_!5d?X)9}wV+n!Az~w{T;<2x`n3R717HgNQlzk+0FOL% zLhS5CT2TxI&>N-kQDBvn+XUiaK%uf?@U?isXcTA+qG)w2&)pM<9Y9eC3d!H@Y&_x8uQtLAJd{pQ(%Mq}0MG0P_7;yaIs zE9>!Sx~q8yvK#NZtG0Nmh^ohs8sERpQB=EFmWUtKCMHN(HH8F|5+K;`R7aeEj0?|7 zSSc6W@$d93HoO4#hW%(2Sn`FS6M4Lc12XD2)n7em-o^=P;KvJ>L4XEfjqPl(2+ z6(CwM8Azv^Z~n1FhyDkNx&j(lBxWRVjO;!|L3IF%?%oa| zgxqIvCu$58HAo7)12h6P5Pjx(h3**|0VON?EbuycQ^E*(h{vBhXU9-h^YHxQRj|ug zI_Axn35EX!G-e6-TDSl%CH(!=XIf3kue^?~0INukejt+n^m4uSnnEJ_C)x<_Y^}Z7 zt{~|l{GRanU(O`&vReDAaFt*>fhm}RTWG`u1k7u&jR1nzVAl}PufcjZN98ILsYm2W zBEoXTGMh)|#716&EkdfnYp^8*%xkda0L*K!l??0GU~3T8ufZbuStx%!qph&ICL6JA zvjV{6XGbL`T#Hc~VL0mWjzpL|%VdGzs007JtPmdyAGLD)5fjjqw;-h^t3#5nmF593 z1xPWh3s8!%Du91I#J+-Yp0|ejFCh170HY7a`_l*D_Sj4SSTvH}Sr#xX-HHhLcI65c zE8kx}2D=CVg10Nz0l?dpfuyj|e7`b~6p5guxKC(dl1;zT9qrwyg()oyj~uJ2E@fe* zTjouBP$7~`cBR|KTOLm2S(p37Zb!`=wqW56Ru``@EQTi|Z`I%Q+%!?w>9T})l>HL@ zExUPt+rN2#tJOUt=x-N=5L=|bdAFjXo9u701BUyXL~NwLb;J?T#ebujn_|}q;;=39G)BwPU?<#~hCcb@|i*Fxfxt=LOeEn(2GW#}U zxek|@Y5)`g=zJSqgxL@Imk_|~Q&~qnAw)R<-JSf~AkLM5r8s|#($oNu;ye-JTo1sA za|6R6ac)wvlsK;e5Qwu_yyeAtNON)C`p3ojAX^R}iMsNmV`4`w&Rv>|^Wn|K`HqnE z%Hd;P2(d-PIS)+#6~#GmNKB-dB*poa17o5Lz@#CuHd3}L2^iU)2|&rV@Na@}FJ?3f z_j-s^696OJ>k!_UaPQPyxZ9ur*_g{n;eG%GC;~94KMFueFCkzgy&OOw>6HYGq}Kp2 z1BbsHqFxV#6!rLD(eVICQJ(@)ZvtRMeGS7QQ5Sc}SW49M00g3*0M1fniM2#5xD1`6UYQzX2vR}nU z5O={#QTdKb?cB^^dc>h&1e?*}wh9Md>dXA`eVjJOgy7?bdjC2i4R?CS8U!-_Nqg>g z)gj|`V_R#3`cc<^=vDa9yBCFf!tLQ7j@PT3090OxLH7gzYXD5ChM%o@Dp{EHd+9~oirRV$Z1WCGzNKaCNcxqs!1#%9uu_a+nGx})u8B-84iVlKa7A%8qTHr!3J9Ype8Fw+(#jzT5$rF{^&yII zpD7@Ld98amY8brMT?Sy&uXV=|cXPki?PmW~)g*o4!;1iQgbBu@x$B5V{$0mn4HvKojvDQWyr~nE@APNLou}mWh zM4)0|#!B>XN(-0x3tw@4ce@ax@=~jflX_3_lyW*{w{~tPE$)Oz-i7(*tzpF8X1-a4 zJmQyJ92Xy8a9=tO(``7*6|vhth>M+{1?EXh#47Gih$_94CS zGp;>;o}gZOettqM^MvTu-?n~TK-f!=Uwp`=3AxPCtppkTs(_H|DEZs&1nxoYcbmke zm1n`be0OeKp^m}Ihy5;#u^I~&V>^Lr5LQMu3aAam__Z~0Mclw7k1PUrYqDaZCj#Bp zSuF|6kqKi+u)l%0?iX7t$ry$2-Lma|&Yq|OMTLm24TbK-C22Uh2bMD9 z7`8|-3{=-S%K z^(O(S0dVLHyOUoIpq@az)yiK!5f%^uydas}6F?Jz6a3`C;O`oSug~{yp#`u9*!UN_ zUGj0TF%Ll2*}l{E5mi+bNMzks;GGV-pZ?CdSkBPn602bMng=f1g6QT-jjq36KW-IxW~Xh2aX zPH3Nbh_+6^TWOt4#5cAzl@G0xv@Ff8M3@)lw50knQ0syDQvs2R~6%k;|9R#3+09x)Sv|KsEXt{gPa+L@NEms5J|7XkH z->l_U{AkO46mGc_bj#JFs1wKjIxY7Q8fXR6+pUd%7s9I$?miVQw-SI?2B5Fa1rPvN zhg+@?Ef;@#Tdadq4;96%C=l+N@pHGa#TyWpZd0HxBXJ^R5n!Wa!ah2VzTf{-A#TRq zhHkTvW*87QR;rayjYFx8I@n>ZCC*_{AGh5O*C`R)4d1&pVwe4UtwSZkwtUA7&_r}y z;s+x%;fU!$MA-D`K>}l}6+ue`###x0h_RLdQrKplyfMpFhod#Lxs5esA?$sjmEzO( ziHVERvfb_n12+l?o3}~i0MrUm4L9#O+Y!sUBJ!(o?;CVc>WeIV@AewRLfD;AmADvZ zi!=HHcOx?R1%R;MN+6lee-+}Mj!5RqxV3RW*u6>o&oP!F-hdHWI{%NqiCMLbe-ek^ zU0Aa3{v8)DvGir6qP-Kp4kt;T?t!7EC#X;ZYao95+xVe15TDsACih>8ufP~}+f7*2 zL~g}(0N!~}i02@1#r2jtA`P=3VAHZ2amK4dqiSBn5XG~s!Cp^|U`9Y}ulf5F#hO#k z!@pJrNAa1KTdLoaEg3mcZTZsWvQLV&+L#{{6bor z>-S~-k9Nf>1k8it3#~5xh8?i63jprII=CH56g3)AB#+71+Ph7g1`_dk9OH>!a6PoJ zir^;?!8~p~0GRpy(FkXcMwtG^#$E#@Oo0By+G|}$kq;cQyX#R57Ci^p;u@=q%c2-W zq&Ugu#gPbE9N`_Ym70uk`cXU=UeY$qhssCR#kH_p%Jk?)?n}2n14~pUOrrQotE<;D zgh-C_S_$t&ouVw*RaRT?9F6GCI9I_<*5x%S5z0IeW4$Z-sX`FJ{Z!#+&c$HEQq)=f z-9`ukYqkoX(wl&OI%-?df;FCV300W?i7ueV09VIjMH-N72sMKr5o+m=KIL4sUWAR#rsjXx&sSqiiZ) zS4=h)5_LzGs7SK;DW1!;cuItn2Y25}MRPjqaWkI4-Zg}fTiwTN1cx<=IJ7xpjz+XK z6gABe)0!jxzQ4-WMDdouHX#EjcvmMjKML70XM5T@ZW4TWjA0AU&~K$wOL5N7g2L{_++h)AD=_+M=& z42iukRgin}bn_yItQj*LIY%zOJ(~`_y97k(yk&H7bciHCJwpR&xo5w3>uNT8(ge<<`c{ zLS;zA9(+I@_b7hNQbp<((?#kxR*(8GWbBSA)S?J1e&#BS1+0%$)UR#jysKf1>!SFz z!ESu98d_EYrm9YIXlX#~;@7qdMi!PQ7+IR|F&J6a0Emn%V@aw;mdv+8d@p|OK->sC z5JeL^>Y{zGi^5^O_#eetJU>%_kHv3g$?$N7-@^!CXMzE;1>OazY=POgSW03(%{mif zS{X^dN@ZTG$2V%t;;;HRMtPq`czweC57FIwp}10I8QmQqjP4E){|&lZ*vWyY@VJgK z(RC;q>N_i*$VrG-`yo8WQqG?)v}Ma%b))84qV?AJ(#!JyaR&}zv*~-|$Z)6Ul%#iM zTgPBx%x+2}urAKm0IS|6A9y2xLq-}ve!ui%C~ae6Ck+;(JJBRIO`rrBSx-k z?R0uO4NvImyJHuo;gP#IS()2}5IbbcY=nD9wW4ANE%sppn*oamDM4ny3J_+%GKj#^ zAcB?#{)vE7hXE+g2yu#tjd7|m#HrOGPOWb#r;=93&CMycY;n>m3^-*hF4u4>Kp0LL zM8GL(mzLXPZW+c6wtWt>&Vrj4~;lkh(tgdI7A<%NL}dREy@s0#yMT&_4oSe^qu1RPogYI$McXw5DP zs6JBcTQCRKfq<6<{Bg*~+X(C zXX6Q;!~|5$uWr@py5AufZ!_U~)O_MaXT`wT?5hZU>e-w~fc4fIcO zF%PP}Evvq>sb$5igxLEXPxQYG3E{A_u5#U=9kv{TVg9_ z06^FWqOfuQl!Q2(F~7q1QS)QsSR9X*fM}l(d(G9rE%1}Mv=K2urnV*HW9s5!35gw) zc8dT{d=VGZSwfZ|41l2{Quw(DKe5j*f=}+Xju?ND6?*~4yK%KbhQG(_GP4I`Me;i< z77p)lR9u`kCPR#W%!=)IgCz?0QQ^ln*kZ(Z8CH{rsB_;1?bNl*@vXt2>V9DDm*?5y zt|7=^1bN2IXt`#6q>%!9v6^m--_>#tzE7!pPFu#8T03~jot4g&h;1!&38AKJJz1x( z4#Q1`olur0?0)|hs-;wgb`KebmnBjjbzMxHYNN(;tk~OoJL1hx!HGE#Wyobu z{9KHm*fNx)&~nB8S6dqkt18DH?O}=M1t^j6M#5??Zue*Idp&B4Gf94p%<*jIcnyBy zcUQ#32l>7@Youkx{`jOV`Vhcg{>o7?G4SdPan=`BY+`S0DSzRJv!1fzohlOI_G5H} zcm5p{3y)S2c5WLNcVD3*tjx7V@+BET9!%Oxv0Bt!g8!#CgY##kon4sN*NGV%hS=so@|PX!>&<@b!(p3q-Ke|_v4A}r%GnkZ5xY=nYAjh zemXI5PL*s*v&6pmL1MA2JWSgEtg8RuNL!3rC#$a;p|BMiq5g)1IN(K~S6Z=AZ{q$0 zIs?OpUWOZEpUbeY+fv!x_A=P1yzl$A_=2e+?#~RPdb?BCFG3k)M{k2_ zo2{l@?^8~y=Uf8!!xx|ql7e$YLoxd)bwOgzHK6zy1AwH!ND)xXKR})8n1j_9VdulF zlWSPfdlq>~wE#1BM`0I&M6Op%L59*?I{Vdxn1vReJ3aX+%*E=L5Iif-pE%eOGZB_H z(bHOF+9PY)MDbZlxCu*}Xy!#Y^#*Eb6I}~{BNeBedXRRD^llCWBz=vRL=s`H(Gr1< zP5a2Dg>2x6X<7(^h@HezMC>FYjGg2hplx7Ijr#Y>ai(iiRl)!@&@3r@3W!{OUCBi)b z?|pP{{5q$cs8H;rb1zM}m*_$gj#%zRKtwEe9ySPD?t~-kAtJ&a8Y~g^5D~D)Snh1B zu;orzTkfm1-rKAw%hEhQJC1+uZ6f8f;o2) z`YV?drGy4UT<1Tkjxu*vW{GAs2ei4f$Kcm4>xiFn{KSs?gDw6J^P=`%E4D*%Ts-l% zBWgd@Nj4j2-&EslZ6EYZd+9d#Y0J*@{viB(gZWeJ(UMr;4nf4e*flQr?W$*x+`Z80 z_EY$g#iXAfbRgEwESaoZJJx`By=Dt{j{1$N!D_Ai{&5uoKCDVG8KIEX0WJ ziR7KQv|qq*p6@>f{BVSMc|N(~6$JR9O}0nzr?W7fa+0yn zY*EW__r88&4c3_u9`toQ;Xi*kwpsz~b0zNnw|Y($i;ELO-*=0>6lUctHxUEM!?#$S zw{&~v;nS77b#}f4Pe@Ams^=2U`ym*PAlw&1^wPJ%8`{4EBha_Otr}*H=-XhsT9r3p z>D%C5O+X&dw?U3pWrXS5V9`Y?0^yLPCI=pd&0$pW$}#QycF~-Dl8DgRCkcnnKFJ*zbM^_5?JUj?g5~{Ffs!+uRnQaM zx4*ixQ?W$lwL89D-Nny5;0^^tm5X-w=VngSFtt{@6`Z{y#XX^2?K${~H$amAJ=YbB ziZDutf!O5tEiv`a_<~!K_HhG2dtnDlJVx3a8>lj9%J`$W?7Et$2}IGqNc@;C8dU}q zvY{gadq>nP-fr&%jypgLEwQZp%JwnQ9nF!N4`BZbz(tUxZpQh{R557pbJadV>Jr$y z(&@+_keC?}TVq6YpVI=yks?)N4e%PYfDs`D%tF0!1LZJ?)Kyk%cc&0Ss@=!6 zEHjE!yDy@ECQ7)FBZ^VTKa7XQN5iFXz(a9*n@}Nb6w-eKoL)gb)LES~9tD?I0gxBb z{c;p{9Y59MEZR5#-oH^!_-a{-au+ZRu6hUQB0?>S)OA*Ye-aSG@ilclI6E0Y834)I z7f|@g1jyO9Q1IyhLWP#Hz;0~VxGkE{&C*=sfRMVy@-syUf#N^}-|vOWK6AU8fv288 zWjkG*t^6&Rq-Ncg5F|@ATJ97i!0*fo)V?z@gg}bkUop{`3jzu`D~W&kP3tT{rl$S^ zp}rXR?=&usY|HkbW8(d0$3(%!86wpk)6a{KOo+CR zxe7RAeq8iER)6{Q$hf%nG6e*uW~E9v^EOM~nNDTfE*p*QJ(Ok7#eFa~U@h5g8gMay zbOSc>lWD-!089g}XLzFxn7skfOam4H2pX`2fN8*T0HFp%Ww#w>iSHhDL~0e3&Y(qc zal?HY=y_613_Tt7~xp!)tlyJo8k_6*y$DQA# z3e$-(?zFlETRlV=qbqsm<5=+h926Jj`yazvtVDRxR#uiHbbsLpzOZkuJ6!i@!m>w? zK*wN-s86J^Jw_wa<5i@t3%A0Zlhw$shFSE}OVafO+SqDIx&eS$kZeLYSdd%;AYw^k zEh<_mB21+aOzwi>iZ4KPaqEnIP_R6NS;~wG03`(A+($TjgN&6x`$0P=+~af|2uoKP zU!cH-AYu*|gJRJ^w(m^+P*LOq5jKYjM_Pu6mRF)h3)$Mdr-E4Y2fK@tr5lZig*$e2 z|EQ}+ST@>ex_(5YJA`wrrt1%MYG%ScUy~7*Y?!SPeSnZ`*lmJh94jRe`#ho$2_U4S zol|w1Lsw4)t^FncYTuidNCf!NC_N~C+(Yk-ao{VFEDg_NcC)EoR*)nbRS z>Tc_k5Kpqh-0oC`JIo!P`~1pu2Z}Vy&+IS{LLer8fh?A)4pW2hX6`Wc%))e-1_GwT zGyyOjW(~qYhY??*gkdf4lO1N(EOZjay1Si!9>OVvi}r{mGOk0@ml9y_xfMVq0rno@ z)PvCUj#R_{YWK-{7qV4D-rd_OlQ#j$5+lF%K?udKyTw)(PTaCuodWBo39~(jY^?76 zLu2x!Ys#^tbCd#FGA_>D;K7Fog5Gd; zK^j3nrU$JEf?lEa0tH72nac|gD+JYg;6aNNLacp$rytO7-JA=#wgBoLrlpTzAQ_T z83aUxGus0Z;Yg~1d6Ib_10nlc z9*(0>tiA#w(%&KoGB1K4^CAc`FR^Vi=0y->UJfWC%p)SgJc9_B*BcZO<{3nod4n}k z(BBLqV4gvQm?t{qX9{sbTo0*togNcZVX03upZ*A=4Zg`K)Ms5BPJ2cGrUjV#qP3g> z1+bX`8HAhxWp?R})DVS6LF!9Ca}|<23NS01`X)cK*OeGw0=Q@L=0&(JM$NjRr++rW z4G6bB8S}i80W=YKGbih5gx4_q7)zG<4$?dwX>j==wV|VP4?aH*7`vt-^<8iGDn*d)kZF?r2v?P zwNi%l!deBwoXp6DwQ7FQ3u`kGHVbRRkXHwkz$~l`mutXsVQm2mqZigzFsv8WRv{cLtgQnOEUZ-`(Y8o5SXeWN z$ikXG2rcS;1>VFl=dS%5X5;{P8q%-CirR4XWoy5~$C!rz7&Il}`}fbm1f0N03E#UN zz+B`NLtcrG^cIX-gabRZ0YG4(46=v>|wkHL_QE^(q`abc3==e0f|7*NzXhD z!W2+W+P(o5S!4Dv3>@+wX(JVq1pXrp!uXFguv|=||HuG=B@K`MBMrg`3EG!ZpJM&H zFRO<5Z!^0qEHQMDT1J@OCqE$Gp;TT!nnHhmt73K^9>U1jR&WP)d*3TtyHK?w9jeH z5FMK%jzPAOC`+0Yf?ZB}*t{BTL<%BIw%{~psFuH2BCiO`T)6^LD>dh{J)%SBS3O22lLTP|UE~37c{4 zSBD|BSy$WQ(E`Lg7>kA<;2;L~ol@mkcbD70HowK^SEDz;T1g!WypWp-oo+yaxn`m3 z$-02&lS-3=E6 znI0()v%9!e_XzPm5F8~_hud8<4{1mvvR_6Ag@}GS3$_Lp29Zf;{~rKma+Q!%-nD4# z#RNFz-2kA8fSmIBjT4|(8S4bQliG3l7BOS&6=Xa6+}oX}13YD!l;3PEFI5UID;VdKK$qD!q{N43+F=W}h(UIstM z_&6FLQ#E#h=Y0(R0U@oki|kyl9T2w}1n$Rs1wh}R&}4?87v-+dbW)jJp#=oYuFwhqa_O79LaPXv zU7>XVjHX2yykgXKhaE5kvq0ZtVg6YxXn8oYni8@0$v95v6aZNCx2(*wU&4tFP*TM% zY}d)T2Jm@+(ZR*S+z#$#Ay|%6|3==1fcbm=C252%gIp4Rq(teng?SK(?BQ%Mq{{&@ zB{KRQgprBmX&uXQz1c!s25PB`+TeAGTqJ1_a`NwhNd_U+VK%B@5R3M)yJRgyIm?jX z!fgwkhY`LO=~3A&+_tT|Gz7~!v`2=9K-QrLGBk(~A6;&pEzl{YI-q3SMhg&T8_gil zoN^m2fYGEbx6uqD*hVu5SsHGm1qgDK+h_(6Doti6QT5sq0!{H8Ox(3{eCoxoy3^{Y(Cxl2lbKd}xJ&;=9%-!9w+0;0K;M6#R z`1*uq2u_W2kp_oq*>GHniXb>O?hcAhhJs5`M6mUOr6_|4rpDWVA~H2Li15^SXH6t? z=8B6!1XE*!2u+RU8o>=Yuni2^j0!Bm-WJCl(Mnn)~#M`=c zWE$*Q5d;~r78DUi5D^h5g9sQAZ_WsV2s0w5IU@`rV1z-07*W6_b4a2xgO11X@zFgX zPJLoF|4UO+?lt!Wi7^;0!yOVn@YRZoEbP(<< zIuBG@49$RV-oo=#rV_E0n+3f4(Xk4b17MJs=;QU*L`3v>7G9A28CVplV72^2KlfhD zW>|1$GiYAC$XgIX4A>q=)!c&n6$xx8G3ds4U$1Qlp&Xb#t|N6O$xZPd-islGOhvfs zb;;O=k##R`J6$p&WXVK+KR+hg^vCz93DqEBIpR8$Tz{%&;j#YY4qu~6M&aNZl$#eq z?DJ?W*By9xnqr@NOj52tG>sVQc&)uL$Al0~4ttuA3tKapi&@wri^%5C!WK~$Gv>mU zJZjPgkdaZYlLh5tBS*?dM5KHY5iTDQk@87|E}zSVH&djIlrip>IpV89$at58mH*_~ z32`79TS>=leIfkuJ73qre`Oq~;vVQGH=!xwlfaOxalE9=!x8zLr^H1afzPe@TaA|3 z{RLNkh#!BAEuI?UE2_^v#VmjTsO~!+0&S`2@#ixgvFp7mN~}EJ65|Mf>ZtSL;`Mv< zhp&*l%agw;Yp=69GmGYXnbZof+b>k@=-Jq_K(>QQ@b-$ieC&W&j>VhtlB)8& zbOy-%?cveqQPbb5j}uNZ&sADFnY71f?>T` zQH^l0Suqnpuvx)0+9Hi$v%(-En-!{E`+-if>#yeu@r;Kg*V*3Cozr(l2YqHI6lozy zjR=fA4t_I{$Dkc!-XHXM(FWfKmBf;Y`e+E26!X?MLYrVj7<5$3-w6pXV7ZTuB{GlJ z@i;u~dttuw-sMUn2NS+}EBBL`X}IVz+jn<^R%BI3;LWiLy>Snv5k3APofBr}-K%f` z6Q%eTn9>}wG$9T`O$OZ+^WQiYH;`GHrLorjiIAC90NQr3a*~GvSO=g@e$M}6?>)e? zDz>)a+2z^gDIp{f0t8ZMp@$x%7^MpeC@2U*1Oix4Y>3B(JqjWUD%b)Rj2*?J*rTFi zK|wtVR;*x0MMXX8f8R5EcJ>p%S3T!F=lj3w%cT#q*37I~vu4ejHD%AF#;rqXFjHAs z>^uHv$W#EZ>l&+xe+JT(0mvSM)r^x-pK>N_=DT|ZqdPm`*nG3S*D-=?%=AjYoC_l87Z={O`?)vYp8s&z+7YX%@Rgi*E6 zSuxR&4e^BKMGxU zFMHP(0=jo`yI=RN%-#qGy{j1Euy>U)BG?KXhwy*3cg-d@Ggn%(nrcRrI-DF7^rlu9fEofXj7qwi%5~xK6GSdUYFZwRR3Zi-bCM zon@=bFoL!+s^YlyZ8AINzPA68=CttpFR2%i>*+3mUGRfNr?C0CdAGVmN5H zYJ|gvt6@aYaGMbRuQuFvG7~hM*N5Dzk0S~Y4jZl%z+Y;(QKWL5-B&i;OaNiS&C>uI zZfOAg(S}n)RM1#v6&px4%qmr!>QUKsU@zhJ%L5>>FvAVgR~f$`JmqHq1CO z6Ew_hhJ%KwL^y1il0{-7p&fgblMz18f+ce~=!?AM8=;^IT42TQx=RIY67f zw}v?4RE#%WueOt2AH+&CBEyj-@?G#smBFmqmZ4nSuBXP_shDf&&fE2LT=PE&cAW^i z1YHMXs?{ojkW-odQ)^Smsn%VG*CM1Jcu?R6l17hUDkJ3af@;pS&WJUW)4Li1`gp-6 z0)KQC2BROHRV>fS6k+-MJe!uqaj712i-JJoyChhJF!g6nfx2IGiwOkz9 z)9ooWB&Sa_Y$6c-J`|Eq`#zL#czA%kHU=U*JU~Q>i0D~-BErK1`uk81$msW>5{`Ty zN;v#J6smzwM)(Zigw{r^stc+IrGbR(sy+plIFS(z6BO2V@IRqY-8kcYP%E{fEb@#95gm~rJR@=# z5Uh+oBckDuRgDN)C4#<6*vuNCS(Rr*PD3gRPM;CcaBxP1H`JVqBZ6* z+$rJ>H6emKMZBR#BO*IRR!6Mz_Jb@ZbTv$BjWk4!UPWO;l-`(C=RB=U)`a#>(Qo+T z9C0*66FTHLo1YirSHRQ3*n}S4DdnF*O=H4?PYIo8e> z;u|2ah$JQ~GQ9gEFqsh!Q#e>7VjYmeWeN>Tc6oJQ8iKcXrXhG~RvLoq5ow51>muGd zxK0WRMP~^w&C-a7P{1Vwk_Uzp2JFJ;xbhbrT_$;BJyJ(=E|27vaMVYsN6VN)2yh$pp3FI9jzrtf~cW z%BHWeq<`X?n=yHUS})l<+s{T7h9aEb%531jiYk;7IL>OC7+!&oQ~@;qsL=0^@FIle zn*pn)VZq9OoG%6w-L)Pqe&_hre%=I$IwOT)aJ(CraPkUs~DH&g4T=ovxe z|6=>@*js98=6`1wh8G;N5PiWRgmoxdqX2?hvQIm|0O3-E^OwXjWXp^qpj&1p0Npb4 z5Dr^rDFNLws|W-wvyS1QWwsz3w#-fd|BaT(K;5G)LpZHvHqKX4<4C?_pPv4wC*YI` zdZaXw`aWX^krMHryhc#n)39GmI%rna)wt}Ye>*TaQ1-22@VI1<>RV+9hka`t0o{VL z0q7R2L^y20RU^XjRU;zfYhrO<_(j{GG(%JV`3Mh1*vPfm^PEFc(1I-c1rS5njabGr5V6-+{$u`0c#J zhbv*Q5#G0RedpDi6*cIwyrQ|oQ4ttdG!L3l3+pSIogb={J#2$aec#D;pNqix5183* z>K2uY3G%ze3Z0*;YZ3kO{p5?7z_1btB*qVm1DLjG;FykXgG+1KLczn_W=GZ{yvNO^-aCPjBIC}> zeDy&j&POYaLYV`{r~VL|9G^^PDZhMpQ3uB zJ`JkZ4nLR1L=auWXxoRk9yxNsi~bR~`qW+fKt?}#8I2O_l! z3bqJ&29E8O6fdZ%fh)jWomT=`j3Rt!EB|T0)ktfeXXMBEAx;ed`%nw7vZYW4TdzHf zx&SXE3=5VLIH=nD85v$S?Z!1knvIi6?UQjJ!HHJ zKzyCqJax;lXbJ%S&js*shuox!ga!(Gx?Si#h_vLM2&PZ2m{p6Ac@QD|SCc|)0hPVG z;h1lyKy@fi`zW)AI}nXUB1A~l>9C*{p&HG54-}Y&ZD!BHb359GaG0}ao2l@5F(R}L zaUTin1e`z`jsllQAV`N6n&Ni#a7hGGbaeG_NrW_k+Q5YfZQw$LHgFmd-VyAAM%o?0 zWG>C(MY%?{-$xujcurFyUYA=jGOUGKcfbA6@v2&8o1)4D&aZ66dgh80^ zqW$DygoaROP_wG8c{?Uj;Ipb@;x*iwF&DFxs!oacInTm4AY5@8PCq18JctcW#*{RQ zU-U3$WeDe9V$~A~o^{(MWA^j8Odvi|Lh`vpkQ)Flmj~FwgOEUqkjn!^aGa0`E)S$3 zxI92aQ=Nj#14K~a!sP*t2$u(lpxT5JeT@kEi~NR}IQB$YvhHO>q~#()_c8?KK{0bp zOJqx(tge4qo(L{4_!;q#CXU0rVGAZ%9&_&BsQ5)oiREs+@bCg*xsK%MTiQ`mu{=>P zyriA*o~|C>2@|6)Y0pH7`jYlyg!gbsyOVlBal*d4Jkc(^2b-{5@EK59n?TA$cY#ny z+G2zVZ81WG?gJr0_kj=*6?B?`V2X&Kh4Xr#xY()&!=2shafK+`j4(etOt!0040A+T zp6H)yf*O`V0?QMF9er9u)pppwa{u|CwQb1{1I8`#mCR18g$|4(UzxtVO?)=O!5X6Z zLRDOtIcAUq-!*^dR0Xxf&bV0dLqqSf0On{|@R?Ijgzv8nWs04( z@2?R~dw-3H==*C0OrYOis{~i!`)kVqq`ki;h43GFe~pe;;w6`E6uR4X$j3HD#>5rv zQMm_A+;>!ZHog-fGz+IRPeUSk2m%*{DO2`pl{%=kBHQ$n4e+`LsY~DOew*XjM-m zI7F`yl7q}IRpO9bCgV1m^+R%$JITeHpen^kzT#=KeVCk1!ivWu$#v=e+8fXpnEWBL zD6wn>6c7NP7hZrc8OPut-yU;cx;BE~`(vX6FGZ%9XY@ouB;5dlvq`YP?2(vy4bEdp zg1)zZkUzmxR~vA=^ro!j_5l?JcUl1h%_L=e|^_x&AP@O3+CfBoA= zOYiHz7PLXu>z^{S{dv#83X}HRY^ z*C@W(_$#~C^63#SZ5q-f{0I3;k!B49v$A(~$fKlJmj9ROZ6dvWS|z7|Hd~y1eq|>Z zibO8jWjkWen9;<)6>62aT{WlQA;%IW0NQuK-CT_y$4n9cbhWde1TY&w!ME60Y7KxC z$zj1-qtxpbAnFmZ&gkOJ2oRJ}!81m2dWxrv65!>ZOQk2RBLH6io>34gKFtCZ-=*R+ z#X$;@a;W?op*z4L@RrsAnjv+x0}xK@04XB=Ob4h&5xN7^ARKl85W;|yfE|$o3bql1 z-sxDnUfmYEqP-eZHX+}N&gjil?wthmn3DUowAW#4!$_oQkAx#yP594`DbkkiVN5Ae z9Efm`$V3sl9aF*-RH;1=BSS$j97f6k{42xAwi_@TC&8{}KRJvnk_2mq5jpC}VZ_~m zv{Vp!Ix9-e{hakHY7u0jCJJ-p_#_xPm_xp$IX7az!;wR@B-M>bgCWAMa#uQHVM#r<{|AJF z`^o#4;?V}MKI}&DX~I<6^(WY(9x?TCAz~E3(G+;q)^lTR(H{*kY`9@8c%1JJdrU~DFFm&1LUkSau&0sUY}5)r zhw*1Pj?~M2acjnYmgrxK>n;jFTF5D|+At??Q&lOks>eQviPh*Z3%4asIRM*yPayb- zpFHAOrFb2XZhAYgDFqPb%4unf70mT{;ymOkX09*l`YYRqwtXpZ_W{HOnS z!z@Q3i!_vBA^qcq_^Lh9)ieCZk!J(*WCnS*G0$wUpfa7S>tY^@ZQLZ_?iolv*)VTLKC1vP8P0`e8L`-~-kNR8$B;*0KiPWV zGj-$Yh}prettpF+RV6z*f>}qL?o{AiWfu4|G^gwiDs-+qO(}`2Xc^+lpDl z|NggaWhmzVyl>l_yh_y?RR0k(N4RYRn5`ohWb|@Nh|tR|Awn;=XvChE9O?A!dHqG5 zRe+dA%xvTEY$3Je1oCx+A09I#96e@8IC{)b!vE4SL-zaVF+;-9V}=qAj~OCTIL8H@ zq&|QVOBy&mgHA%2on%3e@ zT$>=m!TaS13G>4y)Sz#1N)6uah~r@|%v_9x)(IDzVgf$i8+ox|&FgK6(YPm?;fygD z{Bcb*!{27(hzd^mAY4dZSW7+ZpK%)|vt3Y|+vL#JG!hj%+!C!}NJqZpbi~CD%n2sM z$PF=f(MF}`giCHV^1MS{sYP_&EHCpnFYN^WTJ6BXPg~^L3MZsFj>jHKR^MhUF^$OJBz;uC&D0mwx+FNS!s!^tC}3xs((%ChgkNj-{Z zWC;#vHGcM5Qyc;GNCz)+US5K;a!4)5f@g4NEi;U4X}Gtdlv@zV_88gT7$}!_HA0nE zAEm8B5)5%n(!^Uh)DoWqkxfKrBg^fD5$rc0rV~+O#NFeNr4^)F287(Y+4lpi+W{f7 zbisWSJdvUi;fWND2v4MFgiOH`DH;);NC^@8M2bd)CsJIN-Cvj8&1fXc)`+ldjR?!u zh_Gyp2+Ix;x@?W8Et?C_2kNr%@}As;(TLC@rXgq%(-5?XQG~RJL~u?UZo*6k0&QPw z5j7&RBJEPKjzmJK$Ni0%)FdJ}RiGxh)VfoEfZj{Z^Qd_m5iI!%^JX|2=5J7Ca}pJA z({t*Lk8y*ccycetU$_cj62C_>bJZRGc?A|F-j6U zR$v1N0B2jq^(ti&DSghitm`5OuG77{+u4?yj!0KAWak4s?nZBZ+&zk&Y8H6kp4eFz zWoOI3%8oF3l-j%i#ako)sqVR&*uk(`|0Kkx9dU)$erSf17`x?(m>7npn7GEUmR)a) zr+Xp%mSJzkr@JedGG!R@q+wd+NMyydxe8ySSPMMh+=+(r3q~duGVT1WM zoGHaS)u|ryj&V{?pF@t)*C=NkZEy9P)EpL2_e&G1qJfdT@B2E-8Pp55RmN6vdE zc1M()p;=kq$HW8Z4ioXM177Ta=9{HW@v|MmvHEVoMk1g)QkYF1Xo)^h`#ZSfsG{E< zi8>(q_VI>wIj-$z^zE}i`B-!(Ih>r0qNVaCJ+=ID`&{Qe9KNOTwh(vw-wKjXMBzgl z2cMNECSb=4HC})7z%*r@=_B~eq(jhQff^{d3A(_ z_00rqdpS@40);@^Uyxd`WuG>b&y)Q`~38FNsB#Pe6-kO#sz z+8n)qCnb$gxS zd858}b_CJ3#K;%k%60fO14&qX3Q2_5X`B!z0mDk59LUEx9z0#Cc^uxeA=``pZ0iM}x55OC&&TOtMgCS)Y zXEy6YF-s8+d-o^+f9}*R1*H2wFo}QOVJSX5QZ%L>kwYbFdD?44Z*A;z{cpio5ql`S|`c$l(O1_a44&t1hlL& zhX6R%cPJ~egF%Gyaw#tjQ)Uh=qDK5T{8R=rs!@$0UgfZlPNfB#@*gyLn#Q zAcaKG7rqiC4SGudtHU010PB}A0t>Y(JbAPI-wNiVi=rVp*nGHGL;cU+Xj2XPF1 z%4y9hy~UA-k;Xq_V39ABe80z{jJX6gBEmPm9*$J{Uk2_E$mlko30{6A@p zpBxrw8T<#)b6vaSZ2^Dn2tS9RTTKLuBlKPeJ*N!xDCQzWjDOru3|Z zHL!u|`AR;1m2Y73=#;hWY&9Vqe_L?A2bUu#f8spRE= zE3iD-0C)PkZICtKeh&>2@dr;pNzxze|D8JfHvV2`T_A6VyxdpfP!24O@T8ktI3wPy zg?kR}>ah8Be6N$5hbqAIfeJtglF*3s4ThI3HGdlaOxkDeR@HSKERnnvKcq@WX#A&% zL>w~Dg_7wrS|teUmKuui?&VywPVq)>W&CFiMANh2Qaq}Z&Z??@2KF`^F$u%{2Wou- zA{QcZeA0*|)*p`H41_0r97|R_fem6rW`fL=)_(E~^vnAI(_T$!Q{R~nxCXE*;UaHM zWi2dk*-Cs2@^e9LO8YG5;7^be-HT(%q%VtH9$wb49PGc_7C}h=EYStVZxOlqav#4X z!qo^%<9{P;UJU^n|6Tw#5x~a{>&q~LGK_(;2Q1zkdgJ{Cx6FAPxXRdUHG%nTFum$TS4cM}CYfm?x+#JRkWT5N$Mq z=Ofb)JRfP~VY07N@O&f@Y~1jCq(+42BXf{~8Xul?)QG@ml;`L+2MVdZ9BK_pl>PU)pMw6|((tA~sFc11A~`jdlh09*>iA-K*1{}@ zrrOV4td>H?Pr%eut|V~J1GMa_ul9`zrWt>z;eHz!gA8_y2}aD>jBdexNyMa`vE-R( zNy3>Zj9p_Xx&mR{HEs%EGC!qFk@qrMmGOjC*RTiU_AzjWu95f%)aSANfAo_J0?J@n zQobjk#FZd+y2t8Jezz`Vry(e_tYYQ>^`3y2lKRgnuQ-UK=1=Nicgm}dOBhC4Fg;962Y&xpBS2f`;}5*A95%j!t~g*wvTTt`Nq z?;@kagEC4$5;F2Bqiw9Bh2t!H6p}{otjt;op%685g_H%`dLZiSycw*Gc~7IVrv<;d60N&qg?+D zgl8fw*Dv;m;hsl;>lga~SPFoKy8woo6sf-2aBEl^?&Q?*krb=5r6Feu%xyzMu3>G+ z3DeL=FU!mzTux5;=NS7avV8zd&28lFD656ZvO6AJk`5E3O)`kkV-6GSk@b+(=$OMC zlC{Y5yuZ(CqA6HiMX5Gzv2>J(8^YH#OGE;1Xr7O@elAz}eF!YV;rueb4 zHcQW?#w6E*P||4VuK-9iZ5Nt|T6aROk?D+63uAJPOvB+CSsLPxP!7pvvyKt6gwx1s zM7WPmv4y)vy5K$4z;Oam!FEG4IImP_VYq~yChiu?l=QBT`9&cH`vn_8l} z(*ki1j0oku!RTz8A?}@M!|@g9C(l8&nfpV`eSP=JXlLtYwDT^CAe@BF(ETa!?mXKtzK`xYFC&5MI(MIoSvc9)%W_#NYeTg|Qd}4oG`K{73x{0j6n~f#|19*T zd8|kutH9rXh$WT+kiDr>(3^Uz65EBniHK-#V(KM51W6&Y=&XMT+jwT*F)6iRiKzY z1K4Q$crBwYVDD^`%YnT~LCMC29!1QNQ!drMnEgyNG8Y%DL7ZidM z78V>LC{ET1|Cm%;xq0}D7ReJ|8se^8h~U@6L`b=G6oS9ydapwfDIKn^S72+@{V+gq z^aCQ#+wV(Nok$nBdNZ#LaUA8YvYfR$8 zXyCG~Lj>B4=0Q(-BI&c1j!n5H-#n4c<%~)VLf?RTco@C$6;q6}A!cc^0Z1vGg>3 zZYIwSfY6)W#ml7oo#tf{5qOy?mbQqcLC`}kR8r&k%);EqFQ`RG*Y@7Jh@0ymysLsQ z14x5e@DFZY2nhRi2@{b)@~x8wRSrJrM2GIQLROB>1x~Vud3}~n2UP{q8J=A^sj~576Zum+-T%4 z0x%SS)ZvZL;h6-q4p##BPwKF6AHhQ_>~k~FEEOGK6jntLg`eZLkjel-BUE^{QO}JH zt?j0T=NQf0lK!=b#O?7$?yaaKiBhQ(N5wmOZ=<3i;v0D}i#zgJg`;YKOtH6b1RC_J z@F@Xy^@>jDJo;ca5mLwX!S4DR!S2htXvAOZ!b0+~iF{D)bYGL5n0)-NbmAysiv3^f z#GTN08()!SDJLi^@O$QfE_$?G)eHyC+=9U94+pj)8-8rZ0KuKLyc+0RDi{SMVl762 zv@d*yW+9#O9Ht>42|oeCKIyE3OH|Rw@_o|S0w8bq`5Ujo_gA^ykvIoVxBO~P{GRiLB>9{nHifXyf-AiyS>4WRH~C);P!R5Aw5;iLC)Zy^=byfdF(O zMV;CPV7k&L;g7l=RUHG0hdC`1x8XodE&!f*T7xi~ArtZPXzl6OL=Ze=^Zd+O+2|8b z!e<9A0gZ|SFx<2Ajsn2`<#Y6%tpN^@ivl3dQFm1Upg0k~3#MrU5UezslwUN;CY^yu zsJ>Zs=BsL=RPm1K4*XW}F$j?r@4}y|3J|oGc^%EJZbMu+$+}2Hrdi*+J@NtI^#0t` z!=HWG%lOo%JBWN}8gdV%@nK(Dq6{<9iq=8rIGO3_ZGSTso#Pk?opjk{E4Z#REZT=R zq7SEiH8)!JVR;f-P66)I#6BL6j=TjFx5K1X*j59dPGjaF06sD^<>a84fSw$b0Z4Nc zb3iF@6yL`{Fph~o#@(6ZayEd%m9FoT+e*fOQ=gnJCmC>=BA06bOjjIwhd-+71=)*= zPw*JD&tsJvm^X&JJX5(1KzKEWHx8q9OB_r*3o#UkbmF2{a|DRiAgEgM5Y;)Ys^{?d z5xt;_xFtnU3|bWlt3l|1bR-iHL+Cdnu@ptOKQ0^p7c^fn&3Ouf-VUG)0NoGw zWRywSx~N>?Sw@k!HZsCzyy)P>)a8K_(11zcq4-%tah{z7;GOvW;GJ;WMS3P1BblXV z@(HYhCZCX=i9Zpxp;Be=6Hmb&R0E)GcsZ~Q9?Frn;iAAcNCa)erkRQw%~)s~+*_e% zEQ5L_J)LVK2=#d5{Q-upPEW_Hw^{XF)~RDLUM>5Jz7GcCTw5(|e1%noBQ7;W8}{`b z01kW65oAy($I#^|3UnCw zTUM5PYG6wwVmqu@Wq>F{ioCmE$j73~?nDdZt*+}FbeD#u&X_uTAx>$qhFFGtAt;Ts zD!QPwDDev1bu5WzVjXHv#AOv~kX=?GhAQ}*L9`fID!N-){^j7djKEJIb~rd4M`90S z8}02+Fv|lleXk~o@2|rsh49Qznk3$Z67jujznSlUj_`Jde}bM~31#xIz~XO%A_<6% za*~R4i2)VHpYsW55?cgd`reJ5B_Ao627cy`jomXptcCmkWP9G=D5AgRlM4RipmH|? z(x&flv6jP@$GRg;GE2A+krh~Xl(wk=T+uv-wh1~@YobdTt4;JM0BJUXs^b}?V#uC|X zb5tpIRp%KPEXl9oMahs>l&gk=N>~ z$dWy%NM9|*=?B3Kax^>&n@IsV8qA8LLGFWq91&9ERs`fEB6uIiZzj8=t`-b^Vf~;%F4Qxfi<&wDUyd zl_!(eZmWf}Iyb=BzV=y#;gHBIYFQ&nc_b-68l^n2F6C+eBV}aSmGVSVelALRT3yOB z|3}KmBJ6jjLnGj(R?NqK*pyW)B0FMFqA>rzX}Kj)qmvtxz-7L9eOp&`}dK=t3DtuD1Qq8Kz>xGaLxH^vQ$ZX$T$!PebU7atG)v|NV<{xep|{kDjjz4}z0> zrqJh+pkV(`4v@$HlLLnx^=HB*3{G-QZyuA!Q7W#4MU=+ypNPY>(5y;gT;``$6<0X! z)mNx~u^y2~+Q@(F2um!2E5M^8@r}=7jf76Zl}-zmV15S;lr!h{fb_8W^(+iQ?RF?a z9Q7(5a`3HTFuZdLoA-n7HVQ^}!qUuOWv?}NMD6P;>l2lyO}EMX_2g> z4tK;D`Y8pjKN6{zGi#yiCl(LI@+N@1pY!|$6bDOyhKskConsD?$f`lUn5;7RC&)7R3%~Ulfmgl3_ zKT!)iE%0e6|C~|H)mYmQK;F-OvO4H1gpVwwb~m2X#uTkvLnsf@O~UyaCBv%`C$+KT z`RdA$iZ-sxUQKb!4qfcF+ogx6*d59t3U&qE+c{5<_I5dMr!TL2yF~o|p|}6F-tF>H zIf|_*1X0n}jfHPQ5FxjXc*FZ#h)n|Am0qL)?nqZ_fVyZ>n-yGR+RFg;)G;E#jDA zDIebq1xbc6&koG{wnh-gBND@9~v){x!FrYvKc1(}VT(^Ia<7OgyW#)PZ z1_<`uW7^kaN5@~7kvnzA^v&E?Vuj1+AJ`sU09X9tHWpaoqM9X~Z2yGI05AtFGawYw^UsNkGZ>`>ar6cwCPRs?fOBGjA`9L1i) z#)M*`#69Lhl?CIQ=y*5tl|646&KIBR z8up3;C_I5{UBi44Ld&LH1|uK`{I@;|2K?uR`6kpXJ@%I~f>o1OFpkJuU%x|ts=fNP z5M=a-a`$T5DcThUpNuliv%njJnRM_^AU81{fw-{XaL0o zzV;JGB3#CB#IfXLD{w5`c|(;PP@1IVT@nm0L?rkHlb4B7DXMx*5(`Qm2bz^Gt|?^6 zjLktTOP7~sg^0*^nKD6yi%e!v?rl03pt>6_j$g0JX+kdI{3N(`(`-0!QdWz%8A?|5 z4gdCG=aeL%Y_r;P%az(>v91%=6Ox=vpPTMS(LoCSYH=7Vifwr{M(Z)o>wBEIhucmuX^Dm z0J7;nk2_*o9%4R8teJ?9;Zd*opQ;o7;!za0dsZ*^{9SZ{T1Bk;ez)hTOpxUS9Yl`*-WJpXvp zr)UK1Eh_diAod+mvCqP_e^Id?S4ZsX zOkp~sC;XyLoX$VX^hvCQjGhffNogn<-8~gKf=E(xbe%_+#N;;r{7dWT$7TP5emtqE zuO6+=HO#+U=|?#ky&}+$d1N%ukL3t!{aA;v){pH7YyHTriRecOf&YwtOw+abv~!>z z%anc$1rPJD3iP8Kz@GGjuN+9R&rqbys*zijS2OS_@cbB17?pNHc|l_+{{ z4frU-Ne14UUkzZv`>EuDz}~|I5l*}@3Evqp?&A)LYr)?phWj*%?~5lMwj(@!KY43L zd_U0e9#;evdv}0>G-=z`8sb8@NAvLj(-M?h%w#`Ue*6&RDFd*8_nIz4!80|$mk;I< z$mZ8cje8z%iLVmK)i>>=%%!RXv+CZhmRw|>Z`*!fRBtIuh}jvknyU!tYOW*E_frn5 zMGM#xBv3VnRSV%hjXYM5Fbuk`B0{xW^9yy+O%V&kTy+5-on` zzgGM$MqT~-=n-|3>iiD2`*~0&sb3xOM){FZ{pw}x?R2iAU~6}$V8T3$!`QCJhUemB zDnFpSc!=c=o?NTT7Z1e}$((3eZyNoazIDplu-mePIT8b!EKJ_db-tGCtflIHuEk%f zqfzPKV_ui7SXqoEn%XZx;YuhK|ME2Tx#nVA-D((rrqdqg0fWgIg+wFX27z%*yeVmEQ2?VaaT=Y&? zy^R~xc(8bS49r0$G8#T~STzF+gkM0Giw|>ziKDfOeVP=>{!zB-@QZJC+)D#lc9rZq zzIRomDR}o5@MeP&s2%G>&C&9^;Wi#4so)SSD#b}RwTS?jwy%; zubLYM1X`$eg-j!Y6*76%+`&O2Ntf$t8WFCmX+&gQO|CdU1X*zaqiE%dvqpr1NJCH% zX$T4;4M9OX2cl_$NJCH%uOUU6Ac&w@2nC@Lp&&j(iZnrJL{t!baEHr>p&&FO6of|9 z3PP&ab}G=6K)o&t8UcvCg?VWX7Bn6Qst*Y3j=2aOrusa?f4>~}Jb#1mMMlcWKim+n zBViLHyf!D5|-cCFdR^?>Dj>T z@lh?@|L-`BerFVMAWx$wkAUWmMjlG~nqGeLOO!euFe`RVDXY+ywq`s6x}KMyZ&%-B z_*vk-l-%D6?#V3^()qo%ppoP@gai2z&S5;|mz;x=iD60C7S+dZ%a`^=Z$Utp^v*}7 zc(XZ5INER*!N@Q^6YQtq`0_4tTx3K)WLqukBJMQ zCq`c^SU0}W5myo@1MnAOgn2jG#oUIX<+Bl7PtnXZtWg8C`G|80(3Bw;HqA$Kobv;i zV}e=J3_tttj>1E8)n|I3u(%F|<-1UL7{qqr;VUS&6yGDx9d#%?SeJq@&w%>cFXA<` zt!M*dxB-gh^9=*3g2AwAEB|4L9f!ne)TG3tac{nFi+v~WK5oEDTkLhDjI(@=*5jja?!6C!0HBd?&O|bHhFB@0j6s zMz{^S2p`w*s9eiv4Ct&c5z3LW_wq~7Yqp~s+x?3Cz6j^;g>e5?AfF2p7iYE(k#;@i zD@zsfQKD|tiubY2!ZLfIOx~s}Q#^spvdow7R(I>z^T`rQN|L~G9laLg4)xGpVx-7t z8Tq(eex3Ta5}^HuOjU3kHZ1FCM-`Q2f*3y!m&9VpAl1(%Ru>jT)r(Uu|Fwuu|`rxGb+lJ!K0J*fo5tZh%G0vv7mes zfNca0mXsHf=MJ~xDj~MWsi2&PyJ95e^GTU|E0S_6O}Y7b0nhWz)Ds|90_$ck1m%|i z%p`D$q}-D{e~0rDk}^NF`)Fps^ADuVPXi?7gS9kzU}aW{Hg2WzpbN`MEM*m?+5)H{ zkYQ08_*zA^*>SLUvdtDepeD)oQJ5!{vEa7%1?^9LJhp$(443n;bW7a~Yjm47!E@;!@dUHKQHSoWc-G~5Mr^Y)GNN?90$q)ebhm@9 zLQ{#Fs23GU}}rl8&nakBgKEQA|^&-w6|BQA||UMVpVUR7!zN@GqpFw zGDb!P{Dy9eu-V?MaKvzO^IEoD)sDKa%d!UEIxBlxmFB zlN{NohwBpGF0)0ymWVjc$ygL6^EXW@w@L0F`DAI&dInHN%ume?4UR65~EUGIl~dSXieDns1je&?fA)QmN=A+ z^Q@C`e^8=Sl~**G=-70_=a%SAb$H*AvS|Y{x-)!+6`!^gf$2)w9H)x#s}?lIhlB9Y z>@IG`+GwSQxIx1OVsxrL%CSUK(m2G;z@AQR{bwNQE?sl{LPsQ7sS{io7wyuSm)hcc zn$rtZT#E>&&sP~DgQZ-n;-Z4u_asOBgX(vWszoU8z3`~xX!eq4-Hdmlti7gLOGJv8 zI@S>{r;z&nU5j|-?U-mqtMR#ti)zO4aJ$yP)v&);anXMI)Wn#0kxk`!Qo!X(z_`c( zpL_EeUc0H6@mZ9$d@m629F;Uybqc=Gxz$I~5-($CH0eHGDkFx`iCsmS-+jHn{7%z( z{WC4mmb{JeGO~iCQsbte7})@YNUGK0B>2LU;osP^I3JvJH9`Vk3x!jSo|x|3^|&Dp zxIs;HGEc?;C#M=OVPH4=VP0oaqShC1;U69w#~L-hZ8ir3Z@(17rD#MQYS=9Y z<04gI*jN8*ijUwDr+~lpDpTBxuz9ADmOh#{8oq0aA>JMCN;*+|G`t6z!raP=?MUDz zK5&(~1~(1vZ;4k)?Hcgh9_?qlj@`>Xd!rUKoPpc-!QPn6y&D0?qtKwc$3?Bz? z^j6of#;q{LWaP2N0BAHYCMpShXBk$fBXFAgDLCQd&EErl?q`Vy*Ly12qRx0zgA<05 zcpYkKq|<;4@3h5l5ALp<2lh6_0J3w7ZKQLZMj#DH<2o86%!i;Qa%b1xk!6TJAl&$M zV~^qHxT!Tc!u`E8$^*6rWjc!5WW%sJ7%^OE2+~W~2Cd*A+HqW0xd;+!T%S$wBu9c{ ze~t+T3fda>-V2Ze>j(wikzp8ms=WHd?$!`X6yxKfkUJlePV28?Vh1tx40{h@D6>-Q zLojBmJ1%){$v&_fH1%Ug)SHg!Z-F6hdqRbeY+#5c`@6(5J$kL2XV{z67`$+@Pu0qnHtY}oe}A>0SyGQ)210UpWgC&Pib7hGwI`Y(E-%}J=r40i8x zrdVR@cdlsD(y-@N8=^}Lu?QD_9TQ)vFp6o{89&d$gqVX`BGdEV;URde0u*m1v)vGB zU;4Ho&Lrw}Q05HDe(4(_rVzsey26~RNm%P9<4vJ8uJAWOozs9@&v(Qk#>AlYX)$TQ z<|c-?A1x~hynap$Hxum+h~`nV8Y_QIOe9zUE(7?Zz&Ga@vZu>D$IpRbV`(Ii21H4# z7Y(ev&x?u6S=yaQ90i2QB^i5bg)N@KYNh`aWOfmxYrmdhh}FbA1`Ky1?At4?5QEb$ z7>><)TmYdS%EgDFRBY~{J>Wt4A8~{+(BXKuy`LeBLB87tRJ{IJDe8mOwx$3I0Mwh| zdwZc(H~@^mzkuByXr@xcnFqP8++qNu09fPPM*e{?&3dS?*0_C;!D)nv$4p77iF+)@ zzIh0H{HBN_`ceRyUAT`doR&zqDoA)5FzbSZZZQ&W2@<+{0oVy3)&qy!{()5ymPg+- z*4=39w}S!I47g_)ZQ{Lv$lTiy?s-`J*RfPHAUcb97nE6yXk;EDB<(UnJ&YEAkoLIW zr#)NKMv21hkJ2iM>0>l;%TbYP08$nQ0$9hG1B?RM5L*b0Hu6q*tS&6um9Xr5i{Lh|nulKtOLCAW2UOaG4GLA!d}( zB;FjrQUHE;?1}mlFdNb>9~)~lPB>T{BZA&SY&;qiC5DJB!)lY*A2B+Gh4T-|$$|PZ zi#cf|eiLV6Ihkp$Bb7sq=H93XBD+IYa$*3}!xF7Ck`sbrSjAL_214?fYB7 zSHB5h|D<8Ag~O?exuuUOn!g3~I1KQ@Iu`@Xt))T!whx%1<{`wjNf=iA5g|_P8^jEF z5gVdp0X$o$oMDKq{ezg?s+bt-AO?BNxzGVs%=&(gc!}svAayA$@ZO#RP-dGuY|*(a z$Ukk9C7vZ^mih8}tO9DvQ-md&u%;*zWQX^}&ooHW{-mWL3O0D6?MIZgS_L*AhO$db zZ^dsCVir6_`&JAkdj|I3Da2`Tr|g!$n=FmMDUj){aIgLc(rJ1ARRGnxs{lWb;KzD? zt}W}9d<$ONPrXc8gXH%BKEehtS!0Y^iL(a7KU#qrCUI@0wH8+i7-F9g$fAnXT{)G4II$ z=z5|f9)efN7^J?i1e$i=0fxBmqPWQX39oQ(Fh#dHGAztxoVM?SyCCj637C`Yc$w{~JP*HS ziJu9a0r@Y*t)M*$0Q}7{ti6WguD}`)cn;JuzBR=Zw7WM5)2g&`ZXaWa7L1vU82bWC zT-*!g{2jcd0e99j#Px#^b1g`3{us|U6PO6!b?{lXm`I=!z+Z`ZzPTYf|KzLs{1pOw z&eQF4Q#_4DASt&!CrcAzTAp@K+2Sz@o{eRd*y4SPm%vH*n(*z5AvcQZiU))^r1&`ng>H z{sv}Io+Ps$zf`SzH^8@sl3qP_?gOA)a-~?TQLE|=%8-G#ZCOt(v&2+VJqS&<4a-=U z5~z<>x&zDkmk?+NU|A1Kv@ZZ~ACmouJ&FAYVB5mlilcR>k(2Gvt?@U;#H|EgK==B$ z<_Tscrxw}bFpM(JJ`h6vEK^jow2x@>PD3TFhjAh%Q7g)d;>aY%^xSpq>UX+`P~bA6CVMdkdts z`c6aiL_YU=^tX@C!nfGy{_fp|k;!&?9aYflM9+VS2Rq>BxDOeY|5f1T!*>zxTBEf7 zKLbRZ2;sj6Q%3^z2tH#J3#-{8OKfDRxVhcpCpo>z&rtA_1{Bpk*D1h2;9EWL`Hm(%x{p?2F*q ze~RU;*6$hiN!Viemf@7KC%mvLUd2{A66Kw2M8ishmmI2|$ITld4fhf_dge;}SZB== z;=;!q5#I}S%U|Y*7moHsyfxHx@+wOl+rbs_&d{P1?#Owj6M&N;sVpeQqon|B#4PyM z7VSR-fo+Hx+dC#aSiN|Ye>-p@9!q(uCrA$h>3h1On-f?E;DRNXojn?G@Z;Gr@db>D zZEu8LB$%JXsChgPG5j!aY zd?)uufvb*p>d*Fteywqh&4>OjM;Ot8;8flHRz>Ty`d3Jt7GCHk2@mk zY*2dyKJBF>O(2c*w0_v|Bk3j{Ruo^scM8vXBI^hAkVB5a{EK0at)uEZ*;vzygynKcYZ{X;I296AXOD2iAXuO55^oBY0BLJzi?X{Ed&lA5 z5I(-dtBAnnJm2dROt_dn)w{WW3QT}bpZur6`IJa~1&3Uu|K0Mo&>)hFgq8E>N*A~}6QL=}dh<}m8Zlg^?#jle_ z>ts59T-LG{<9xvl#h3)Rr)k1C;J8=PadPuZC3G}gBdaWaf=Kbm= z8V4|BCYs-gryH_S)&_9h{9+^NOayn^0A#(BAMXkAh{1t)lAVJQlo_i448b&7Gp2n}vU?!I;x|HTNxosJ{(?$?mjP!Px+ zZ8vg{0AI5Suwl7Zy&QmQ*wv8P21c=A2LadyKsM|>Xd{7M6g2E1XxLnUvSAxQz$E~5 z!wzM-zud4win*M`$Jqr^%<}+fF)u|}GP{eI6BAk}8Pgo(POv*B_KzT%;6h)&PZXgp z^tDcVCnhe1JCTdmUzC$2wFcWb%CYSSFGR*)jlROK8fQWA5+p&b19_2qzcIik8I3^2U|-)YQW$z*AeWce z5+os_$si|{d@+J3%%qES8!&TO{Pjjrio42-02FjUzY*r=XdmnHe7Mo)SvlxUl4dWMqBLOb_L!oXUpFS2Or1rtFrJ7J7%p?=A)=jN z*}4zCOQIg9U6cOzm-k?WoT)A&Y8V){Z@k(TtGA-VZ!_#WDlE}qD8f4t%iVb^?{-IA z#tdI0L$Gkh6H3-y9|-XU{MqIUU|};)iV5z7HNXAe4XAYidkA*zT0P~7=6#K{@UqKb z9cp&P@BO?G>z`5hBd5cC!@d*qM#Fo`8!hV(qzNRu;2)^BjbL5mq#qR;Z z6z`4lKzJW>cv=lH+q1S?ir7ttoh-B!t*wT=FFw>evIpqa{CRvNZ?LWPXaAw!iXLd7iX4g8mk0lng2a!A%^#~8+ z+WPQqL--!*Xt1mw9Vt0WcYE66;1^`&5@(&NI2?pXvh1JKQX$~WiJUwG#=@F>m8E$K zx|L)bVh-7UVvbrD$av3J=F>j99#&`vqL8-@d-(`ce8n&(WRWmd5Wv0k1z|xIZ#h`# zx&=#l87sZ_gAw#mvUYQm#N#NC!Xyk+*UrB;KuGz0=0JJ9H9>Vo%RIh26FzGhS|g_f z&mcU9$Z`O2yanK1j8>hiVw%P00aye8Gk&(Re@cNW3M55NH{MHO4&}TL(-2_~PFP|b zS$x@uhJ%_!rE>HDM;ykKPb3d2R1{Gsk?}g5(Aqf2bP#mVI`CafY0+jMsB#c8e}%EP z&Ob+p&p-D?v%94U!vd+&K%j$F7u*p3?S~NWPhR4-pqztP&QD(d#FGJ{HxY06zWV_J zYv8gpyU)xCcPk)%?pB1GCYT%m?y$bkV`?)>W@JwJS3S>judhe zUoMog0@g=3cJdP9n!Jn2&0hcltJN4M(vJDa6-@?WbzqNx`dGlaZ?hSe2?2v;YyQRf zBtf$g1rT>3#_UgS2km+>!#uAGFh5@|#0U2SgBicD=8lUg=tmpvwFx3oi*Eb1bwszB zaZxk@=0%uGpix#29ER+Oj}7Ub`ReaU5}58_J^Zb z&a%{l!p$+}H6eNm8xvnrbi&VcK^~x$X2T=}lnOH{<)+?Xe;s#iU*gn8pH_i-F^y@wC&h zU%gPsOEzQQ7@{F*PGeW(iSL^;)rs%e*UmDKFT@WP}2Vj{6f-TVo&pIyv0mAG8 zZA#D}_;X5;c{?)1Zp?DHftiW*Q8@GtGnXJ7-5Hd92|I(~?jI3)XLA%22RoZH8Qz_@ z?~TT6ggk&15xXhn-4EFlW)sBDsP7*TxQ2wKpDet4gHenoEw;9!e{%$`zYolw_hNuS zBO^t=|9AwhzaA6mkOqxdY+a*}24O`b1}Tvd&c|YpcJi(ZCi8@gi}O7SR>woQ;qIxA zcnVkVo`y2g(&h-Nq@7~r=Rq{F%_-Tk%Nc$fj1Bp(baK)E;Hh3lk~o^U*_S69{Xwl)?JAe z$@5^UoNK_kCx>B26)X7;Hi(3Ehx&SH&TAcpw!VpR3*SF0XNi&V$TyY_oO0$H8EkxD z1Yj)qmL}hp=#~l3mibYbn->I@5$Ppo>IYa=7Da@+hfB7yDiJLNG8W=S^G^rVAlL3Q6Av8m6+v zZ{nrbSczzivNGo?bsuGlZ8+Wj)`d7s2 z&+Z@^(z*Jjsg=wT)i@p^qQ-@Wfew1iFc2Y44z)x^B5Fyf=oq!7lu*%$@D)9!wQoD7 zq4xbIn$-!tNl|aeU!e}Vqf+|>>WB{Li(qb`v7&wN8$DAeL=e6Tw*;j~-+bQ~3T{08 zvZ*TZNv`vtVaVvVJ*v_N)c9ibHEc3~oQBQ# zITH59VE|@>*JbH>X1B09k@7>h7>_2bF6 zMd(qIQs`imOvQLyW_Ieik1+az8vIeO%;9jh2y>93!{uHdlt69|{B?4 zJ)dO^>-`>gCji**2`lQncu-NC`{=jI`sfoJv&6XIe1|cu{&PniFaW@L02&QTt&IV~ z`Do>si}1aE*HMUBhL}C}u+<*SbJ@ztIvMlnRkk_^EO+jp6Uup+NvmefDL4Izc3)X- z8UZ)REJa_mX14@0@LjQlQT#VJpkRV?2v$PO_aInn40g|PVo*6ZVT*f*Z4+uH%5*LS z(5KQ?IMShp&17nVL@j-5FGKEQ@K7Zse1xr9P5&Pvw=)yzWu=61t@+GiB5Yhz^} zp=RSD$6vzu(eiEce8gbpVa&VsIomJnAC~uht*=@W!G7m%t8c0xFfwAQW}yRI5=_;= zP|RguW^M_zk%%;|kq!+}kYZqHh@gf!L$nyKM(D-00mvEm6@FCb3=zsqlIrXfl=n}o zcaj8F5&&^Y5?2F&gvmfZ*^kK)r3ZSk*fSWbUCTxQIii~Vs7@2*nG<|gisSH@)it$Y zc?7Y*#8=2V3FN1ory@xN!6d1>13R}qlRRq;PJRUgw1~7kXAMlg2%r@}(aWZhd>g=0 z0#nSc$;HU0u*OuhmAPK>UU0q?fXoS>3(OJc6M8a`J^_w+6;hzo;UQUIBoR5vVW^Zt zvV@9Srhne*D^%38E>Pi-3L2+6qzx&V$yiOvTmT(V;yoWUmo*jbW%l zle}gXq+7wp1!Pr$)g$a*=$=Fj3cHgaqTPvzSa%9ie)QMm4fMNMRZxz{q;yDL5K{raaoIve*;f$YvV#yM0d>@mtVjQ-H$_u zT}T5*!kIh~!j;frhXp0mBAkKg6%!SDJVf{&4+3%dzum5i=the5yT>XGCHxBvW^BIW z;^;vr;c@^u30M13k#^8EpdTH!gNU#lsh+`h4~78c9As9;8`fe~w4>PCSc&d;BFO_* zuT@J){XG~@Fs$L@7v4x{+R!s=(+z?Vtq>y`UU7mIkr~83NGGGz)jKEDU%tf|>*G!D ziD2r1vXt{Tv#)n@g|Ci8xbqUJ)Dm=Snhp9?LvWvB>YV_=8P1T4c>hysld*mp(SnoB zRQgPg9Pn72li}Q2_6v^M6$i|mYfOK@+!Qo}6m#D5&pB%Lzd_0wX7YkD7+{#^Y_oTg zGug=melQATw3$I5I)g>CazkJvV|AZx29T5JB0s8g5|yf2nIk%bjVaI4XjN+GXjP?v z;+ZJ(6Jq72yymJGc98X%B%pU3GP{ArNTlA3w8fm9rCHk1!Ay7v|!2N>;ivIJ6 zk?4Q#>uvQOKF`ofS4**JrK=~Pm2M`14wY^$W3|#P0FYC<7C-7|DBTj~=uqjFMXTZz zAXim6p#M|4AAijG4cfe}M(K=TwKP<^&sR~p%LApuB89JX84T3bV74e-Sukqnl3*it^;lWyxGogQ(#b~_)fjeU zcs=h1rN-mJDQBT+rA{i34AP6tf;i$Hvn(|S4kj%rs!`7UX20YH7{(`4)c2d^$!9^^ z3;;d1FxGIN!2Fp>*~fRuwglGAGi@+*N)B{xWebfLz`6KdWx;o6Ka6sBzR=XW_g^ zrSgSsPwW1l|(Q`kZYi{O*+8ii z>3C*>g~NLwdvQsR+Syj?;wx9(=UPZ*=lk3eCf9v#8GxMLySqzNL;+VbCy_o^&K#ZZ zbJczYexIuYkgI#@&#GJYNtxsS`rPl|=Z=UBa}N95ei4M<=N=mC4-<{(0?u-?*h^1} zAU?LbhD&gxm?F9aCy3}091*c4xFE%EQxDpXJuEM5Yvgov$<+!_}ZakLb zQrE%<;%F%YHx?cvYgc0bf3Y><&0$T{cUq&P04xL`)@a!8V~sp5(X%Kod|Vt#R1lD8 znvGpdnxZSLSR06oR}fM05)l(`kRm7Ea+aZo={DA&&D9D3Ig^paSKo;0oVh}op%Lzc zNJXQ#!ip^pO7uJg^p^TVw$gVNVfBiHM7c1WEr=?)Afj9#BF2RvMUD%x zb>|=GU(3IX~+dRoHRGWgSDoB{s+= zd43<3xkK3Yg^{*%uR-<~mj3Q-S9?UXzZ5`D?p1!&Z>s%ze<5tUb^U3UYAEw(M$!>* zccSlxJh7gmUgshOd%>&Fgjy05?FA!O?gfH~_5vbey&y=D>jmX3L)(J-C^u%txH0#a zazmDe+udzRo`_zsfaO99l02`~N}$>9D^s0i1aM}nlT)26&bfzntP(&@k~Mx*=OpQ` zb~8uR?dnT5bvV_T8LfM6tZuwg(RmvxE8Z>45p}!tj4m9F#aoX~b%>DWu4byU8c#FL zGh0hoEzfIp@`TjU1285%B%p#!$;k+WZ)ut!Z;^jw^$Z*1WMe2*ABQ8R8 z4@d^3%k5!dv0hn2b)-JgDd6n%hM74lbv-xFVi>jjuqwLzw{(InDAWJ7}|qgm{3 z6kBi0KOH@l?Z)Y7IUCUsQf#|P zQmZevpVjlHifuPZsLxbWr@vK@WY=2E21nE982MNrpN*M*gw@^Cob5-%XE=eyb9rqn zKy!A5&pzL$%I+Q2yh=dgSw_0O@Bk&Z(;gdigvzmoRi63^T}LC*8*^JqTLu|!sv}$2 zp}PD8C)fUI0kxatCyJf$(*jz360}q~+e9{<1tH3<+bn%%{m9{uoKor~N!c~s$m$pJ zNw_`H>fa8xb+M9U!=Fx48zC-Nvo@H5nPl~f*Su-F)an&gk=bTeSv=3??dH+-h~T%4 z)FW0Q%G;bW$66SbYM4aaks500E>>4@Mfv)k-P zb>Yns2XhGOh1hHxdJRp)J>;~~t4zmiwQoI3iE_XgqFQlTeD=^ceSNRl4(DkWO}#Qbxfg1hgSo=9leP>&6a*mj9dsp;ApXb3{AiD#ydb2u0@xMEum;fV&FBL6iNf zgChH&lIN^;jfg&9C?nh1R&gjdK}6+7L`-f$ik#f^Kpak(r8&_~K}5V${M_a1RQ_t+ z{d26AuiwZnsya@|jta^q@Ck%|_swiK!8w$&yP z!QC0DND#51Rw`Pw+ES#V58F+mwM=$AK0`(NsIE-fqoWOmr}%dOM8woCNRd;!Rcvu! zE`G~hlb=w#&)c0oX>Ab3tUie_{L7z~z!i}sVaE?OQ@oPp?Ij6q1GZS?psd$BFcz|~ z@*@=f>9M{$K?E7Tl3BZ`y<)u?dqjK?8?VhTU)cu(A6h z4^B^w9h`3XnFpu6;ZuC}Jq#DkDYWxEp8w?pyNn2&jPvx@tlzO+`gB|q>xoW7WHCT{ zJ`1A+E{+k{whDo(aY4lMS-~7p&*%RS2S8*-K+h+o&je$XS5E9qu=KU)Y2FUHWBW-i zMK7bA#Z>XY@7xH&-+I2g!cQXl$^*YO=qXuT4<^UpHV420a%V4RtnFjOr1I=#*eAsP zbhH1rK3Ql7gmGndd&gI}`Nl?_LvDAs^JF8g5>1XR)uM~UHz5TPbybLnjTu3T+?Y|$ zGIWQjVGVkzb~1pRlQ+YU>hugHY^CtL-R+l@-iQ;~%T}zMJ^N5^Kpj2XQddB(PCq;K z@4!mK9Nc0LZm|svm_L6?xUd+#pw)*DNdm5Pkp>Z}lL%oe!C0owJ1{46zH+^mmsK5MOuj zYF)bFc4_DzuiD3i&+R5jbA@UdD;Z(uN%ii507gQsSbaHxn2RF=RJ5pYfC}4JL@|tw z=&m4S3|n=|u`>iL>+O#|inI3Umd;vslFPT%ta@$RUlgw+5KcD;XjwD>$jPF~kBUw= zq$i=AkUfG}wN23^VVhDvqEoQ5i9fZ<3}YQTxAGryJ@ss$j_uDdwz6}JHDMmn*o7p1 zd%IYabTI*RSNWQ<4M3=*EBu&THx;)?D{6LHggKP}a?GjmqkdsG-Jw0YQ{z{wmAlwK zxv$WPB)i%_xs9;fPbb;kZf8aw%1V2DKhdB)?S7#ig~AIJU%FZQNv;bl?WWT`^Y7v;%HGK{->v*}YY2_*PRJ*-zzqB&SXwCJz%f|ZU z^d}|L?SeS=?y*6+VgNHG&l6rLC_REDwGn?YEuOur#7{I z)GDI_%2`csmXR)+BpemuGH7a7{F+yy5ErdBiRj{`t4-pMS*uMVrCevXvqKpgxzGk^ z;v~;PyS;V)RqTe&BMrK}Ju~6GHO)6ILhW6c=Vk(1L!0L0*4nFmC(fLAU@uE;isdfn zZac}l!s;ogf5HdX;uaa`d&3$StHs^q%hX?UTnHd1?!|r-#4Y!QwGj;O3!9G1F@pQT z${Bt?KfKn2ZVGNh`33i8gqMGD=`MP$2|2F6_m680TDcnC6DB{{Zuil0C_vH9Ly;tc z5LZ#}RLUX3`{)@4qx8DW^QhfDBt^XI$0CIYLJGMn7_mf{kK%4}U9rd{N`BZcl(pu4 zxS7-cjL83fw?r>P^jqIi4VZyD&-kLQ2J@X~?fmvdUB_50>Zt^D&u##a6LpgxrA57v zpceIF01&mytKm3s;w;B+B<_s9#Rm0K-1xuJ5Q&DhBi(Zc`;@@tmbRxKMgeW4d4D`# zIS0-!=@kC%kK4s&M-ctTc$i?|J~4b*h4e#>vScxUQUKQVcFKDV05d0%z#Nzyocbhk zWrKeE(R<)XKh>s4?K}sc>8x@eAq&j-(knRz@~UDDe>Y1K4?zX$0OU{Uo;(G8cm~4! z$SU~`fJOj(Dl%^<rT^Mmx!f(SCAwl?USSx_ow_*HjEBbAie8v_1HjD;D zzP9M>w_!_Bh5j~79i00%OgC8O|NJ&gBZLF|v`r%<1wR&xD}Ge6q2h;0#GpRk-pH70 zLuyJ$W(EF7_+7AXVO`eMR81oxkInGi$FBvHwZ`3eX?8e@JH#;TZSXkN4wjhWH`PppHpr!!rCY4;KZ#XR7F<|&Aown`GhV&j&UM>z0j_n#G)t|4 z2hB=`<38RKVKA(5gP;$@@BukFKD;$b(nqLy@wI>3^%2qAt^wq3yY^#(+pYnueA_iG zZE)N5Lr{8q|FaY7M9k7E_5lg_wRx>3uj{G6ev*IlFt2yEUr75`231@Z+|ApDjv`Gw z1lOoDNyYwd3#J3QH&sk4^|p?{a_;^<^m!(r#`_OUB#I%-1+|8%m|iYde6}ErD?any zLXss2^HyE`WGAgGp6m>7`J^4um+CHK+Tc=Mcaq%l8Qwe#LGiiJ@a9>PJE%xl^olUTV#ZgwWegFCc__1qbsf?-F&^f7VNe$@ z)mqFjF4YR_;?73wVl4_KS{LCC>&o$76d*8*kKzwOIxpTqf2o_a@B3r7mIl_F|H+d{7 zss_MUee?bXUe*EdU-V5Z2hCF@(~#sl2sa|!|GRW5Sq<*#-Mwmg?$l4k=O&g7`XJ>>d*BwEK=t z>F2I>r$t8mxf=%(=N3f8v0c3$fq)5%#I=BlhzXb@UQED5!~{%)7O-@VaFtr{v{!2m8X^*G>PUj9Fc=0G zB1y&V17%ofMVLb_hlOPf>$@f0%>iIIkn66?0bux(C%&o??r`V})dWZ6RK*>ALp32B zRg)URdZ?>oT~QTbYdbyMiq)8kA}UUuBtvQ=iwoR{1q?^sh+o&i5+_5KTBNRx(z77! zB?wa$Qj<|IHHLl|5F=FLE@;a#COxfBVlS|_bPJM|N_`K9kSS@Xdw+m;S&m0!4I@7= z`pT{2^#mfT2(*z{MF@=?T`0b(CijcaWa0(>wd8XV)^b{aaEEg8eXkZIsW@$ojA{g}v#|8x= z{6QgJ#yP)18Rz~6Wt{gLlyUxVP{swnt_0?gfEu_2iIyyzv7ZX zNe--&sTJ`4k{ncL0^op}q+`%T0E20gUf&`BbO@64_?7@*`FVWGZ3O`B2>9w*T8H8< z9VhBpgRt(?QyJE(*+?L2JAU5qqE(cgvEsrUE2MKqSV1_(3L*j(JvSI%IMP*IHo?0t z7+wg|TlCIDfc=078D5%$;e`l)cyTuaZ<*#%peiog&|5D8(|h#jJu(4D3VM*g&Ct;d z_UXZY5yR`Z_qt+9Kn(ptdXlNVXZgek0-hxBnd5`qB^vLFD+ea_fkkXZkrh`B47aAh zsrc3u5z(zF!qKfM!ok*5W_IAM(!^HGA1Zc#DJwX6far+3RZd4L8IIb0v_SM^6(b5f zX6sXqa%5SfVpOoKVV$1v=lZggAuApB1wN`|F9WaB_e!WqBe7ucy2gC5pcp&F|NcL2Yn*P z3CE^jM8u|GRFl{gjEI;iBSKr=1S^^h(kj*{NV1X{B$;-dro0hAXv&+}0By<_0SHZb zD*#it&Cu^?p6!Boz#dn;wcJR^QJWqNKi=tZyy9zPT&a zNA-`HIu1>&FEn*hpZ^AL8M#Eo5i6}+GD?GBR!Xm=Fq(zJT&J+A!X&JxVqzC>MbP^R z7j9+s@&1m0P9VMCh5x1zLGQmS7`+BbAthc*(BTLd72t`OW59IgAp$!SUEJFuDF$tv z^45454w;D>4fp6m4c&7+!xsXs@VFSYizy7bKjAXR1a7Y!W!~xFBKwnJTsF zs*Zb2bj@b7{LU=2x_VuQI}#OjtG?f)+@9!tWIsq!6nvR9?96pZgl)@yPqt-V3r0=$g^KNZCq9Q|cMn6a+Nm)4H-yU(mUZ~Y;iZxjl(xSP zA1a76edmsw&W;xymMtub{Bw>L1w$=BSuvqSsVXt%ovE2U+ z%r0|8EjI@YI(DJu7Nw-+elRG4ol`9L+d&aT&~on?D5xX|EqCG|pchjN+jPmRhB8v}MZ(BBtd` z5mO%`V(LRgOnr#Z>Z9Bp=lERYm98Zx4szECNTDE0en@(S;3T;$o&YDhPa{Gj#1rU> zj;axXC(u36pW!U@hkP$D0*Biqi@=j`n`8-qjux+1AWmD+EcSGxR+N4%c0%Nx%Sy&Y zMkS6?G|fm+g+`OcEda`1%b(JYM%f>N3O)cUgn7bVw{f{fFJzH-0oNeWN!Be z9N}7$Y-7MO$fGws zSOSEk^hWwRPXvVE@>F?qewDYbN37*PI9t*m#H)tm(E>FJo`r2ZfH_`Ibt?X^G0s%O z@b)hM7Tt=HdJRW~+zOZX#x2%L=IdGy%lDuCHu&r}U&W5RH~r8^L;drrq%!c{bR>*! z$5LqUbSeElwblJh`9NY1pc&0cg~9ixb8(>NFbw#~m2>OonvHtAHjI4k*{|E`RkXpt zOTTeIKc{ZsIrVtVy0dI`6qsR5#VG}4K8DGF+qNg(@x3~!%;iXZ{196eoR3x#Sh10# z+Ai>c6zM6Cv}W(~EOp%|$(HVi!Wa*+NltG95KCsFDJaGRgVZt&T#rub9_7bm=0ate zk9N>nVGK-fi{m6j&=a)2HcAo`BMAEk|0QHt3qh8tm8mKB(CgCQ_ZfH zxI7kJ9*HB}LThu7b)+r?3*?|^5X%Myn9Pw-n#X1K*Km}&!{i+Vdo z95~p)r#yd8s-iD#!#%ytQPU#rTmSUKw!aMdwPeC?QW*O>g#z3*-$-e))qxRT6 z$P)v;Ji}1^-bK+Yt>c(jr7=S1zi+Dhc0FA?+P(T;Fv6#(V!TI;AGpu{{r0cvkB)lugKy>7wY z33Yb>paVe%&0cVF#30Z_Yjbke?T*?I9nhI6QBj>Ao-))Cj9Mg7pg+uY=aHs*n^C)? z-1FDKzj3f3W`AV266iWngLV9Zgq#mbyaF!BQ|5d|-Q9G1L){EBp14zt$OPnf?@1c! z(CyMHaSPhrF;KF*qbkst1ePM*t8wn9ADq9$EC8{X%NlHD!k8q6um)w`g0Q&{tc3d> z?Eb9r_>5~A#J}TJj=GKjo|AQ7ep9LAs{uR#@&D>%ueLgB0gJ|~rkyQ%y~UQgn0c-O z1u=3i9A~MakV5)S2>WXsQQL$-jcK?O4^--qz5w=h<9YC$J4E94yfmRM7zXh@gT(vy zu+*LenDdx^w%QfqNUo3Co;t)*TQcTz#PozgzmC8l6LPx^9CY`&&Qy0|+)5sb#2o_< zUY$^%!X~Fn(dq@w2{n8afJp$3?O~_^7!uPbq*hlzv}lNI5*CKt(r$)&|AwS;^U)Pg zLV@llw<-13UBIk`?&S`^^&e8eU2U=A^?X6>?fHJQ^ zcDJoCp%Q;}RSM<1^9yY?xgh{ft5@pYa|2-Br=~gvLyaW6c($qT#W0bw!J)5kKmKC_ z0gME2&M8VA=K^49sdr5ERVo0Y$&`5t8GZ5>hB|jN;;#kK&C_jF8UV_K2$Wfke&a5h zXsa(DPpQ-yNOVq}83M{(26?~t1foty)R6<65J2Ab;EI|Vnz6TCQ}sB-Rb43VD1ZcC zLrQMzei%exCG%#ajb9I(J;7A_qjTrAuC}xelPU8oOajb%@X!4s&s0Y)N~-S7;AZA~ zrG^tY2Ef)oDzzPqYWLmI^f|SrDue~@zR}9SiZu;&5|a&uY@&cN@1xp0zC@{MEb}lI z>a-K4Ztfwwnm(!?C}loXg?|si3fa@Ybrb_V1{?Nza~w5y2*P8HC|;TCKx8H_B(^tM zZm8WSrd0WJhP{JptABzg<(C-tbw`+LYm6NX_xo6>XWmIlIB$@x<`aKCDA^dr*wg!3 z>Sp8`xszd^@jV6^jDO`v8um2wwMj@x{Mi><>Kx|U$FPt7kD=OF8p6>uqmlk!z%%_( zSXjIrvK~3xu)l@je+S`mJj7%UrK%hRZ{P=vGv$pirRHr!ol|71cc&vmK2n>x%xg93+pJj*(#M8{j1#FdZ=n-V=-nrWWp-D;#wwoP%C- zLCF34*lIljn*(@xLr3j+b<&S1deuH8T2KK6&8T``L?ucGt9 z#{=EhMw;q7aIW_{rXf=hdh&W?KIH*R%>iS|YVFJp8Q-G?S*mQ3JrF;EO6`E5*1Q51 z(&uZ%4VVIc=Bj=(4ZFV3!Hw5x)o)+J9uLYNeiSao0fzn6dyZPXaZ1v({slIm-cM6g zZ-(hB@56lLF+csg107Yrsh|GhuZ=MM(HT=2Px@*8{g$O}-BQvh^JWak_5h45-+l^8 zwl(ZquC>(l8zL6rGqJ%qagrb2=w?g3yt#yxc{>_mZ-@6!cX`=gX~$JlCmIj|!Q`_k(YYCs>CVZ>bb z9uD321~i1_-#=EDueuv*Q>e?BL54kGu&oYdcqnu1z0^`SUYAs3n+>xI#$}(LBac^V zXIPeTsA0mr_?d2ou(BUL#|g8I#I{J+Sk-J8J3sN!1tIy4L|~H@$1A zy@(ix24MUw!N2MF=f1fZE0K36RmBK&if=~SYHKsCD$d7X+^^73t-VvKVv1*&Ut@R` zM!H>6wz|3x&- zk3lG`yf1Pu|JGEQBY@rky=T9*Z8dB;auYcHb1N6qyk$cD^NS!R|4~D2_O%bNh}Rr- z%i{@E(GR&U!ABQoEeNQ2?P*6%x+Va&RgM~PB5In1p{DV4TOILV6ai}7Nq@&lecgiL zTUoglTz0mdYr)iA6JZP7d;W&$)BK?5#x*R}^W>oD`5PH3@l{atkbhwX=hPtP&ZUmp z`Wrtcuy13p#2oHx#MfrQOLJ4|(%z7Y{fh0V>#ejJ_Kx9R^BGn_py$K(g0id#<&dp$ zRKLT4-e2s9GJ9a%$2XgoJ?N-YKTE2$uxKM@VIj@SU|1DOCEe-q7ex`by_|kZqNZ!Eeh?2iB+*Isyl^FLr3NOcf zDks5sRYDcbM=-M5Tis*$xlRRUF$csi?#479-Im80%*&zM_K-WlJv5_o200~_jaXnP zI96)#^M-rhmbSVW=>{uE^j{|%YRiAQYVcQRzuz@xfe&um{)YM(Yf?l10>|^ePbAif!>Bo@ewi=8jiM1EPa|QA` ztZtcKjl@4`YT_GH?GDFo^iabtgp>Nxr+&EgVWmD?hVW*FebWWDs%IE!4t>=Q)4YAL z5vG~2gBhmz5%y{U%f#_VWnN3~?iD=O{PeuEs(vzI_^O04&d2P75qLhP`EN7&TKNC5 z#P016+iDlItNMckOKYJyYU&b@Z(e_8ngd@#?Rr51ZUd{y1L^f_44qu#xQE5$n2E#vpjyb*>p)K*x-ei}A`s9?PvOYE36H83x zo{8`&sOtXpE!ArdfTOX5dBAL}BqFygKHm4OQu9wo%y1*kXO~Y#qrY|ug@c4uMcAtcLkc?Vj*jpd0)PW5D)v)*7*ie(RVQ^Evh)Wuc>|{uqA-Ae^lxP0@tjh9?{BO<4jBaja1!*R2Sc7shgPPpp{6BlJaxI z5z_5QINpri*G{PABxCeyYL1E}LPapEyXOu|wNYrahwhYtn8LxNV<0xfb1_E&l4aO8 zp$oEz|IA`j?R*Au^z?fM*EcVqqVzR-O3xrdluP#vjmY&3Vq!f*BSIw)5xJg0RIF!c zL@X0ixVfI8(^$G^Xhg1OOpW#oM#p*v5%HcujP#7Y2Ap=~zCSdfHpkd&6`4k=`*BJw z2Ufe~A6#Ur

o0B_s1WdLH9p%9Qn%QIh!t)4)m~#E!gUIO%$r`Hg^Bk10Mf^3qKa zgq=1DvsVEz2`L63h5cAz_7=d~1I9#8*>_AzG+@vq%r@BdFe-_AkYXk<7*>`2d>>Rl z4VaUFsQ?BhF(rj+g#B4c3OySMUvSGdh4iw&(NT@~hypA=D0t!E9hdHmyCyu(G zF*A+Cd!V0@VLJ-)&?+j3R)ssZO(+& zBmZ+C7J}9Gl}3R8iwQJS`P{w!1viw$)`Ale%9Yu53|RTGg*3gfBJ^*}&olqQJk{Jt zP~%PYCg#4G&oPhf-4UQn6AqWmG!Kuoqy9ceoiZE>RpofkLkevmCo|d^;av{LWCegO zU*H0iGXP|dM$8vZ%KHEwL?wZjoucB`0Mr1mc1aaKgYaaAk56R}!?;BTNN>2gT*fgC zOK;6mafv}DWi1*mdaGfrw;>#K2EsYLMaB&F)1(w)Gp{-n5m@yQ|GfZ~i*q9;53&k{ zXU%q06C9Dux30HmCC&h{HQ%`f-WUkH5kU66)X? zm}Lk;SMB@ItJM9??U<>tZa0;_B3gF}b-V6;y1TSnw{o9uGZlFZ z85l7j@MW*ZT&EZt1(_EOI~uNUHq@h-GXt+oj7Um$)wV}Kb8k7$aisMTnTd$V^i7RU zuNj=~5JX-omE9j&Nv5Dl=ntv%QGrI`2X10uUztD^y*bt@$J(l*0F9XmDpz!H+y>$>? zig3XiRu``dfI0?1v(d%-1Whj`@OL9sd=G#s0@G8)d?dM+;Va6#?hryf!ugk(#nRDc z0{8buhb6P+E0`w@r76K4nF@?8; zKtyotK{3GzA|g0}BZ7=UuLn>KfRft*;W~sxa+?5{N`R942Eu9}K*>D>tOSqqrR zDLM~CxYJ9JOMDyoh8L1R*P95uc44Vge=UD1A%!u+&!_w$K)-cu4j2Q~o>dyNO zHIaGN!gv>}CsuUFF*`NdGB?fV>4}}o4Rsq!n~X|h^<3QBpMvIhL9;)(!cljToXr4? z$5zabB^es^KH{qU<=|T^CR!R!NsOjH z2diX1-H=dkg6$<-MmG)kLhgo**sQ_cQT~&j5d(r{!?E3LwKgSn4EH#v8EOxbd}27kvL)o6;tpB+aO4n--~o$imK*+;2=5SHq?GtNZNtIhWF4DqJ29WlFEOFfn{HlA>gdZt3R(nCoi!Pb5?6O(8Po5X9+L zVP@R`!MVQG-@sB=`nw<#QTb0LCuSx`(&Uf8j3;xE`F3Osc=1 zLJD~@$@+3Ff>Nk#L!?E5h_;A`Sc`~=wg~+>-XcMuMQPn4nq{^qvv-7i>qw(V=6#S& zCXjj{2I6NGdP6P*P0VpY5Ub|`Oqy^3Kgy#Rvu8oaPB05Rim;LZ8tYMfH2~PqVv24u z05sC0*k&*SBJ(J+MgnM@$Hp}SSbf7F9o?|79lxJ6H%D#RlgzH6ehMNgO(J5_B;x-y z((Fd+q0{(T$qI_u*%Pjdn4N>KvekZ$~u#DoQ zm01H;CVMsjZDpze{IOQ%ICNQd28^dFd!;!jtv}}`Vgzo%N-Phi(L{{gZA+;1H1MJh zlp=j$@f&$q7yvMOMAzcI(^wZkcuZv~dn>{$n95kb`Jn7}$REPf#$|Z9p@s*(ZH&eu ze`Sz_U9246a3rn^%nG)&Stbs@LXDXT)?JMrl`oYyvGVGkVPe`K5jNVpCF4qc{-aRgM&05EnzftN&#`~O0AjPlQQ!#VTT0+K02AncoXhVuaerJDfKmYC zk2dm(`yyEtfUys!yrZCUwM>Q2%!=>8F3?l}RJj7=XhgUl*0qYzs09d*t4et|(xw(8 zJTjX~m5c+2mI8oM72k^p_dJ9*A5^?2@Z}6o8<(GfqE;j9>muyaU0`1w5aX&adX*G` zyHf#C>sWsS!__^d{sjo5e#z15=MY+!O4z4Go$u2k^_K$B^;a<*)L)CRt{+_Swm{?R zfvdnr&&8v#ZZ#9Y*heOM8EHiZH^i>5I_wkysJ2PBVZTA(tgs%RF|-{v?V=Z3G4B!Tu%_iM^9K)&C{DRxV=!kCp6jzTV!5X(F(DvS&Vz zpp8I%GEaH`Md>R5WhXjSUKc1+<;AG#dUHs|0KleDMAaWA zKzQg4LYbMNFr2Lr5%UI#hJstx!~XYYn$qaz=W}9L2|_~$IQ^fX zH=q-#Y`#^V9vDH4IM_+09}f_;!Xv+M`=wt9`U??aHV2}7s*9wcOPP5$$is?9e(v^z z0>vzKo;5-&bq#05k+_Nt*fQq{ebUMJzGWPIz3d3fdjY+^5*f4OFj4&{hW}as;z0ft z26id{aUd^8Od|j~kdGkC0zYDm_X+I4;vh>VJ;B!y+GrW}rf&)t4zc1uE<-+b82}DP zhobaS0OCMS0Z;`%9LTqjtQG(r$V*|n>Y0iTL+y50bw-<0m&bXdzKguCN@d~Y&OfK%0(Bu^$DmxZFQmm82z1meA z*;ioY#F5?gcvIa>M|L~BACC5BuRv+L!Ug;meW40~xPT+!OVV0`Q+{8V1#Z+aDP6$N z0&fP|;Jbj=LerU?i1uB;2|KF5n%gd?6#~ z0;b^2tN@^0z|t#4E5!w@K{#{)5e{9zxd6gGw+O(ma{*hW9(2Ih&;geM&>c|WyN*zI zO96zsTSXwy-CBf0-K{4O>Tby%;P6bK=u@((WO@ad9`z~dS3 zNjTn)XK{$bu|wP>8t3Nz)E# zn5@Xq7KMnA9m?Ajb<71n#Cbgs>f8o^&g)+`g*IP}2<^N!00^DeRs!02T?!!Qyeb@# z51rR?0HO0*O+Y)Zbp%4^b*dlbJFg7{Lg%#!Q0Tn20QjAq*QKmouiL8me=_Iwlr4QZ z?hVz*?gr;|66``Ls0>}18UostnF=6uW#$5ix-x%S=XDXO)~mO1=XIyw&w2GXe#^mF zz46=cRtMi9fzh+A{PnpYOx8AFl|dXT6Du(?B5ZLkHrt0F*>iS!3nXJdyO;8L-Y)d` zB*-$hrxi~Y)>%=_t2%N~b(|G^~Z6Eha4vibc75pd3P z-+yStpY)V_IUB6M{~)a#6T|O6h~Q3>|NX~vftdnprNQ_SUcZlk@cM(@V3sg;Wxu!6 zI|sbJ8j;x_!0XE~DXvCs`QL)qya>3CRqqI1Hv(WyA+NKm@cQl`$+4_@C-8bmkVJTW zqtPwXD}wNO{ntPoh)~u|!51*Bhlt2If0A*FF*NgV&^+P5E%*XvaZssn;8uPC^G1{d zAOi)-1~|@WkOSsCE+nM6fWUgFDzw8HE+S}zZ;LtcZ$QPN?Q8-Nvz??OnD}$mf!X1~ zi}B8I<$(xLBL+OfRfP}%@Dgrxe(ykYrK@pQDC?0%C9mUpxzf!UiG_r(t~rwJ$phh~tB5SatT;L`izq zq(~V@BuX<=ql7$}fbzv1>e!)x7!Y-}g9|+R&rPUXDpD#t6eq+EJPkJ`EKmBtm_2aU z%ZC9l0digM~^CzS(2kQm-qR+!m>B>#J>kw}BO^FH;m&0%08UT1S-1>gY!sGo8#0SK1vv5e`Ma2^gu9lN z$j=?i67E>m0N^Bn6_SUQUqiat*Oco4g+t3+0I{KkcH&pBDVL*=(B!wUcI}og0nlkZ z`)${hqb48p$)Epe)5EXZ>elg4!)Z7f7X_4jKHiO51WATN!lyR|hvO8k!s10Yk^;&e zrr7K$<)4*HA_Xr<5?^RmB*oG~TfT_O_Hn(+fly%#9@%p2-5$&Xhye1B#cKtH044*F zvu@9CkFG@kXWh<((QafIXWjmafuor@^tpyb0RF&p4cVH&`jEpsjksH2-v}3lA8iN= zCP!GXFMQ%w4!aeuHx4Xl1=-pDSnpVZRxe|NPD`gUR|nn-6|-QNm6dh=EDTw}aQKQm z)l&%|oGR4-fcGKhZZadZ=P`qTR>MXB?W!Rv`E9k13k2HHK+r$Ze$CeYWdYfFDI9G$ z1bAT%eM#+hT#j8We!-u8#Z7;_m2b%~p;6ga-MsXaiU^_^Uvga%jN!EZ@+H^lfiocp z|4XjS7SK?tGKVD;1IXMKu7y<1V>i0$wcq!@I?8^PP9HeM&x7Jrb_K+75yli2LPX)` z1`1K;CMZS5O_;c_l*#Ae*+)2**(NW2dyok~Dtn>VCB9u1J-oyeF>jKHs5gn0=VZE+ zCp@)G)xwoznnqHYp6MfKRH5I+n~VurZhfTcYkqdSU8#%k9a8o(50{?c&_LJZbB5eL zk$o*VB+HWoI{C-jVCbGsS>J;G@VZx2{3cpb3ZU|ks_Z8SlmBeX$c9uF7iESpJpo=M zrQ<_S!2eWH1bq?BBgXQgsypU3D#hUtV?O)3zfbtvs~A zR6LrVeaOpP8}&dR!J91)1_*L7`>0otxidg;?9F$ey57}jcRi_m)Enn*4(l-!08ddA z--?*I0499uczYpYVGxmM4GJOaCbYn;WSNxA!Vi;Ym|VjwOG#m^k;0bh!VU;*9DdY< zdxMi8xo?f40{#4YM;$j9)xG0$x{7jr7vF+W$hA=+*Z(RZD-+jo_}zIZsM7j$+x_r+ zVF$9`c_xC=ci-9+p{h87|UD_ zF;O7+NGb17NBsp~$rKE=z(Z56&XI3Fc1~I92CN7awiIw9c z!soJmAwtH{;ub#NHC-Hmdu?GknGXU{F+r~jEg0zHe_1vv@m0vGl@&3~$nom_~q4h0~29?_G3_Y68>DBJV!{>Hx?g z)FQ}bDgo`RH30Z|&Kj8={gj<>^iy_$BcHEQA#&dxr*8pIs7Nw`&o(zme-$VW5k=qH zg_$9NZ6m_$;sEk+BbI7ngHAPjKlj3$CZm?X)shORF5 zb9a@ZvZqFhssteEB&sGFH8~bFBO28hi)xNWEs908Mx&O-qSR>-GD-mm87i~e5WfX* zUsT}{MsIIZw55uPXByp#yV7g}sGL()d?%*6^$ZUyEQWnhGZ7v%uuDl7*wMKNV`8Zi z4+JX*9K8mOE-WFufC<+ul5h*d>kmjg8KeWl)u0golvfX}T7u}p*+zl)EGk|`;5=i! z;uZkz9K5BzPJa3}gvoJEb%*i==Hr1VXC$6XD&8A5z8b*b*ZSmdg>W6hBX%|ORpLK^ zq-fm-`!Cz1&j`vwLRPd<`ru%QAYw4Cr%#^|xFAHx0h4E&`pZo_e<%U zzA%`Lzd^($#@gAxMi9f-PG$EC8qWk(wW;*35qQ{iBbD7XAnYn681_-G>`Orc!j;<= zX7!5-RR2NS7AJZ@1SEk50%AyC6p+ovmY-$x&ejGA1aU(D^pc<%ga>|RjLtk3K@@p5 z7Y=aaQNRwS8nj!t->BHcyFqKD*m^f!&0alzmumLO#H*Rw=eMe6dC(fVT7&j0O#BeQ zqS^be1RvNXjHkml=pYCx+Ysa+X4uDF(>Dj|BJcr5abk9$VJ;F3ui~N{|Gd|sB~zi` zh36Y%ihlsmz;1v(@>!rhZ& z6cmBnuIWdDHoiv$`^Xz;EmfEZ^pW&)5xC+|FO}{aG-^H)@T^Ui_J}!%fKAHMCJ`3K z5A2elT_T)Be22EF4UN~fX$8aW*{1Z0fEY@I=Sk9cM?_RH-78MaX-`Dy1BUn{?1p@W z7Z}-aGROgh`=8<2MIvI8K_a4)K}nz|_}SAVlfg;=u?fC|tg*>pfEWlo{z4)+SjLDT zB1QxeQ6eOPCZZ-v#N=N}MAgbf5D_DSh$s=_1%Zh0II$q$k^RQr7EOH4+mab&9y+;r zLuQs6|kNDou3^c#+(ZCyOB%r;aW^#$25;Zp(wICMN5{+6C zi&_?qa?cEClLE^Dg=AO9qUxeiQ+1Te%nUlLctcOa8yZft%EZqah2jA<1JE8&3&Pq1 zT7qzgR%RI!1|E<*w<9ZaabV$SunM0v`lUVeH}aE+!QUDs>E02<&?}Ap30!?1rWpEk zPo(qR_MGjP% zD*sYg({fOZ=+PdpRjVej0^ghcw?Et~0HWM|pxjdlXytAI@bi?LS`>Bl2}fOhfg`Ry zZE?ia?>f+L+=gt+x7Zoi->?#q|CE>ehLwn@J)slT?hNmb{Dw7idoVMhtP5;&d}a-B zp3 zYN($5lB#$jW`W-=!majw0TdyXe{1N=FWM@>_^pZR4?PnL_>Hev*1Qi+Rq9nN{S-fK zWUij#lS=(7e#Xe8PY4=A))qetVe~^bHU|17D_7wsLm^`1$|>|GLt%=}Jw)SW!Gi_I zVLj^wqnEe10^e!?kS`?f2CxKxXzXZo@nr1DdAYh;jmYVY?bY z%$K1v7xQJP?7_nJ@AnC^cQ!P-4z!?Qd2)}{3<4!aAGyb>5rDq9p&8-u;)X>8nuB|+ zS_$Zj8t+iln@q4fc6&SYa0frPgMl8eX0eZ zmE)+O3M;r7R>QfQVP_#l)W_Da_OU}a@UaQ6&aNn<(ULDm*k>7WHJsxzF;OmSSaUgqJD$mq z%Q{)eWsL~AtPz^a8jf!pW!OruN0sfgYfRj@`m@fK5{e{~l z)PKey!L~-1(&KS52g$?-I2Y^4OBk`Ek=_KlIt-C_B3Ic?;N(r<3DX5^P>%c!0b+04+IZ&Y6NdkNS}lh+vpUJ;l%lo zII5u$b`{Q2X1XBv&PYOvEhO<9eH<|8q^t*x4%7pMg=W^?$5h)Os_b;5>kfE5?HkzV zvd@BxM(#&KF_d5IWXNQ+>_0~ShC{H+##X+B3!Ps-+*f%P4n&X4X=pZ;RS^F*idDJ? z2qR{1KS?Sx7urAs4SQ-G3p*Ba1RWVes#xr*MY&J(aMbzZP}8x&Ls17t@*J`OUiV|< zOf%hZgkQx5tn+BIFip|0PC?+FuQbJ@5fo9HA|hfuvV>wHVki)yn23mpNh3lrX#`~; zV$z75n251iYA7aR$T2M@-(!DW_tv8QaV!(VW!aTxdZ!AXPHK1ARp#JyQ_vF8L*C8( zZO{@y$g!&QIOqWDc+t<)O)NJNw*o=S9dc|#rnuJZ6>>}vQH~MuC*+u$w?{%fLne(f zvF;&H`|Y@eBew~bJwg;uG|0$A)@e7x-owA0ysXtsFP!OfiR;H@Pn+E{mqrnfnrj0u zXXCoIerU_Nh_Wv&|1kcmh?1UidS62hLzI1Ed5d6&C;tsSd{wIqFjyNz7ymK)(=fl0_Ak`K^47S(?l3T~&mLyFOTf}Lr0=t*S(<(rT1Fn<286MnQJcOr zf~XkNC6&Dv=18aLJGvyhSujX5M?YNiK8E%NC)~=H_9(dtnM)DIM;a=@qg~91DpmPM zFi-gNwt`z$g%o}EGP`?^16d0|*2?Y!P!B+6NlDE6XA;n}q`3h8Kqh0h2&M3`n7%7DNzW5FFr5@Ufz zL|D*?%?Oy?@cfGShJI>oGXO)?K^eamv3Zl~I;3>?)LIB8@g*|GvRe$8Ltm z<%T_GrMPYvDm5E#Eh5hRCrXlKD(mtOl$wSED;_Sc?<{cPgXqWmx0k2yK8Ct=Kg2v` z7}i0j!l`63G;K9SA2chWs&JTB@~rsGP*;a!r3Sz*}E(z85q@ZyzrHBEsJe>qS!b^>3Q4gMg?!+4R|7qaiE1)j#LyYV{gM)HUJjvh?O{WpH;~@?I~NGffh*2p6ev!MR);T-poG#XMQ-NN<;zjte;MeT*oi zkfp^ah?Uk2i(%9zQULkf9*zK0a7KdEbj^pFU30D9f}a2i?{dW4NU~S~d23>s5JpmB z(htGH!1}G4ESBe&05J+;K<7#W3k>+9riXvdv>%!9DkV`B!G{M z4C|#X4H5`^Ob?aZ9HV`mUmB8FN0pf}q!`C14C{i=F&*cyekMfJoV3(l1g2oH*%wz= z?}33sV&>dusy+l5bLa>>qYbf2%;9HPYKtpei3!~Q2e4jXDoD$@;T;?)hr?##137aA z2y(8y!Jj9YryEZ5w^*Ybj9A>otjyyIK-<}`+v-)2>#Prr`z64Wc%Aw^xHrzGzp#K` zQt9|EmfC6zsNM;co{x`6_!PBs-S105tkM|Ov6v14WkRO7rWbxXC$7$fl;K?gWuyr$V5X#j_ zz`5H}V?RqM=T7M0iECSG&QKK46Qy+$*r?urHrq*q<*__daK(lN#d6*PIi*t!^$#ps zJL6GwHO_n9PzeCf17+5{3{1A+YB-Nq!)KpG33x*U zu|2YrP<;);J8s)E`zlDAf$&Zzmn83c&rr<>Z+|k@g_FZUM60Cgs!~^YhUz`fpZatO z=FqGw3tqex;GO=?|HIy!$5mBzf57{kd(Y(@lsh0GBI?Bn)HE6>tTfboBAZAhF->W( zNUMitnlZCz#%!<=vND>fo{DCgX{MQGvWd!yCZl@ldB5L%_CB0@)n8@3Z_o4jy#66; zt-bf!YpuQZwDvyx4v8F%mpeWIfgWUyu;St27{*9IMllER!tiDwd;3a@P;Qx>K?pYb%M1d)VW5m*nF4Egsh6IdPLa~W0-WSN0@Q*F6 zSd6DJ*+gy$rpNAs6vaSTH0=aPP(cK>N1AZxGWjZ3C+BT*m~$&^>=7Q8cU(o^i(oa(vHcw9>-UJC|jqfMnR>G4;IB$VI z0QuN+X36ifB2U1ISA#_PAWUxf9v?xPRY-wvK%P0wbFSe?fk~(UK@05RN?_uCfr)E@ zrBEG8C<^-u64^x{uvF$fjc?9wA|iv)vZ2$3*bInufYmRO-PKE&-hviLM~)tFoQn^} zqGQp_(IQh!e|JdQ>Z!Qe4LHUR#+>2H;ksZ%b*IY@#=X$KjSwWz zqI#g=2;rO|#6*@l*~*loL?J5oMu}1&-Y8K?M2`}AC`VWDMhTCgMu~K;4X;2qm21co zZ!yI#obQ^f$j(2y3r7ZntedPcDXHHZq6W-I?{1~^2V75hS4)KN$LK>g9CNL^Fp`f~ zMd5eCy5H*We7V-;btnjw{9ZZZY-BzH;>@A+hwlZ0u8%eY>BOCx7Vx~b+fld zEvv0w<#b;S--pH|uN3O`i6)dkh;eDn%xtkNWNrzekBtfmGSizp?To? zz>UhcQ^+1`fao*nT6~#~%zD+d7gj}m=7Wg!qDSQBL;k4wmOkQvAV$OxmpvBF!djT( zI4sZlhJsMEFU06e>|D$Mo4D`z8sj`tlD#r=rer$?k zFFL~2cLsB;&5t~TtmMBF@WKKs%VQB|h962je6Yk(F$AiCcHaSjKz$m*$A(0d0@b<# zosC2(P@NKpgam=!2SEySmJ%p+6)vZczY-_|c!EHKL5MSh5@>tieu1cgX-I)04g05hX6g>4r zfgVZ{=(*n%=;gmspi)<$l!hPo3yJM0(3?pDy}urTV$amz7A5=N>XgAL%Yleu69-*b zM{9S-QeRjf{gt8?gQM=@=Z+7G#&M`2U`NU}ar@8KtTAXiVcmVDdv0Q+hsR(MLU*u` zqiC#wJ0X1!U4_i9?p8zJqXVLn{il!1?Gz+pc`K~G_CU#v1P(Aon%ng(uDM0-8;J|5 zpj^f>VcUtkj4u8i2po!w_~Sl5BF7IP90CISxa6959gfPFqt3{bgef58k#Ht|!cPr5 z5#2&};z!%ZP|D0+ou!lmm6TL5LCOT3rIe&dDF-VlNl1{Agaj!`NRX0*b)+2NO6fGr zz#zXC+FB!$q}*g9q%8c4r5xr;i4k+WDITVjTPI1m{YFT+!(S}rSXaulhAez;c{Zio zIZ4Wy8zJRh|L;g?HN119f$a~Z+^1Jc_EqbE-z8=20xWZ~F??7D+F8yb^eQ?SOu#jq zeIOPf#8Zgxns4WX+;oW_QWV|<3n!f}m*AMs*&Rt+K_M3Yb!yAi!!}^*jY8;ck-gRM zGoH0A_6xA+p8Tz*XQRUE%IB$f|E z`B&`7F{*qC>wh)5{I9G(ArzH*S5{DbixrMlYa4-txYU&w1;zU#kaA6O%qdk*=JZJsMF>hiy%s+k4sS2|#Rz@1Oo$KNQNe2HI5Z?4+Z+j} z+M_Tqr=Bmwy+|us8n*Ajyb}X{4e@2eBJbp3%?o@ba85gR5enph!0Dyv{7mOg_(2|U z{1HXJri&ELo!O)Db1)4tXSc)gsRa_z#U#$Og}}3kH^$_;v<^6F7HEt_alC3EQNJflHX-++Qmqd^Z(^Br)RhjKS2(T8ATT(quL031_0}4 zqag+f?RjchekXH1F)VTqGIA8T7I?z4d>Avl7G{ZiSDsU(Gxf}p_5vxj>Y>W^vboM+|04ULRH!H*=3;6FRjN; z54d@j8gL%@WzV@Btg0rOEkQElXZ&n!M1mqopy!aWHq0t*a z5U}&)O)dK|fJ=}FfyCtLS>gT|E;Zg~u9YR6yO8^GLV-fOV)B1)uUX~xbodBH&Y z5v1n>r_)YenB`oE&kP7nN)WbXiDOiiPohdL8Ykldd4$^C zrizr^ZA=MMLrrkCoKwa5_iX>VOlub|QXb5-eaS z5u1@Z)V_I}UP5YmB+}@|zcvO$K7cy9MCxi|lkn##>k(=V8bU<&hl-nnFPeya`$f)& zMw;NMs0pr$ESPx!3RM8mJ+J&{_dU*{P27t|)*-JUijD4F6fu4eEXMVR4G8$dzML-7INmpL5ZTv=h38;0 z*z^iD8IbTXIBo-i9PRf5f!WJIki-3KBQwU%+{*HMqjzxh>mZ^=zDtlZVdT>Uw_~S~ zeK+&ZQ>=SXK#p4TL5M>7#URKbeXfzm_K<@KW52pRxDJeQD`t-YA8f;7+=j)0&;n9k zj;&H&y#*tI+|(8XB z(rF+G^Cirjfrs#c!}rgJMA7AF-se6v+~&QLWuC&YWgZRH0*BO!%^RYqQz*-7A7RCJ4PE4>W}+BqIVyhAqZ z4rc5N*r1mDr{dY2d8%|CGAH;63CK}^KkknbxNY3Bmoon=()_=|D(h?%rjCLq{)Adq zu$EU)%R6908P{LSE3%frk2@gB5r>oAW*Vu7Zi}N}$X4_+>M>Uh#JehFz{Qx>>6QBo zx1n8^$0H+3&RuLdj(?760|f4oJ&IsM~0c3xRh$X zuS6b8RPr1iU1=FU2)e?Ab(gQtLWrHa7P@PeA+8vWa%To27vV1%7ttVR!9p3zLRhMotM`Oz94!Iee}tiKjUfdYg+mgx!x5<61i4&bTpW(#HZv{;awR-n13wO6Hn` zDQhn_!o?)f&VhSIs9a}}B*)QOqZ@hMhi{Atb1(R~$qOcOCo7%ade14H7i@WNr0i9s1{Gy??SL?x4X}*mq%3c=(J^6l+sP850BR2$6O+xMK@q`bm3vD-^+ zp5T7KW#u|Xzay{165OZmnnLW3c$e)YBydk}4RRbwsP_>t^vJ8l(?+{j6mj~C@oOpa z%l?kRkNrK^kp7V+ZapMb%ot=J_OvT_J^;k|h9DEvs2u!E<$q$62m(f~V6Wg$Lbg%cJEPXiu2#*Bq?6ahoM2p(r< zhw~L-2NF&*v+yVFBuFO4nquTUGa5ciiJ1=C$dk;RSna_GFEMqgIXLB_HXJJf39O>j zQg@nI>i%JOP#k`M)P03w(yDadU*TVqDRtjnDWY{B2o2cE#0NY&AbhXS7Ac2H-RGzx z=O7DpFH%K_4|p*gE>JjT7m;!tbf2sUoL^Ivs@Fo03a#qx>r=JbuWEgws>5_MpEB6M zUK6TrZ9k-#ypR3Bj47Fs1XT|<{ytTog<#E8<`5$qIU9{g`&PmhBhN7gJ6EG2HNn@I zpF#`Sn3L`ZiRpCYt?f6IhPNpV6C9Zu{?|D2$B?w`kE)Dk_o=eg(0-U9E@Y$bZ-1*) z4j^qtbyB1D`y2gNJR?LWHOw%hX=y-uh!mllJ~IUuxv(i6Io{kZI&dm(aslCGl9m!f zln|DeNh0jdZ1_Xy3FFPd4!g7_&=X=gU|T^>+n6I`4^O~~gGiQ99Ie8Rw4SWeBe6Mv zn+PMS6MGMJv=U)N=R0sFL#%=DAc7mw0VoHHKHAv#;g{-PqJQmg=c7L6e;ES_jh*0M zH1>aue{Bg#J7^4Ae-e;xBDDVNu)d8rfV6%AtRDxWtzS&|k66EqoV4|;iD>KBk(IK3 zBVld*79zi8{U`PKRX@)XHMD-My_>TBc^se^c+C14-LyjC+y?v=`Phph-9G zV)j>zm~>;i&}Yav5N*g}!rG8!M1ISV*u}WR@Z1C*G1Czq=t1Q{?A0Q<0+U8nL~*NSx6g?FPRt*7ah{S>&&4 zMh;nxnSr~#ROC`aMjs`sX+BoJyy!lLGUN5=w%cOW)&y1^F{j4Q>PoVb(ZzL&@39|l zm0|@q<6T+2fW_ZiUvX>ErXf*+`*JiX&vdN!HVyQe6l0T+%rExIc38K&fQ3mPhis)} z4wEibvT>D7lfH&Dnv~l|nslyOOG#Xr^v&Y};)eyUN$G^&;xF(%EIv_q_H-bqS6j;Y56Y-3%w8`tybHS=knY6*r$~EZ;ka(Tqbu(4*cV+P= zWzuzvSGVTm42bl5Ng85eF>+iYYa zAX#nA7&n|G^nHo!+pG^ zz{7pwuyd7XS41-15}QRiaLX7s z4-Iwic=ZOipOtAIo>X9nG>oRC-}y70TWG{hPg7UoxIgN(Gv?#x_%CFX8M0Ibwq zg?NIkiU^5(1}DQZLtyjjkCuPk@NOFG}nG9Pavq~7_m zDd!TIk1jLX$M0vEkI$Z^j_daEV?GWBn%}S~vR=#)sq?>7&dqu&ZW03S?B&~8=HpbH znpNt4O)2X=3HgTk@*N@b@w74Zq9=U%K6pl=9+$~{oNiMeS*_YY+r=;6qs-TT!VN+k zguF0&py8}x7VZF{gZ4P&b?xsC-v4s3>zDYJJldmoj351qY_%3cA2oPheM?A^?sVhj$m zswGHGCHH>D7Ve}xFrXIR4^It=2~=i`5$;s004d0LRJC(oH@wSmUioBWm`9Mq`D9~a zY{#QfZwspWhmjMTfKSrmK;+jV4?u}xBJxYXw822jm~jD)P_@erRW%qnGCV&r&bCE-G-PtMFCr@0G_Onej$!^xp@4CL01_5+TRx$-H; zdr2k^5ZxU8d^zTv>8@O54n`>@k4=0z`hKE3g*@0>Wez`&ewnIIFb98EROZO{@uqz4{B#{2S3T|Hfuj{Shrcs)_VMMo9#&k3$Hn+y#jC|wpFOT$qj)?7Nz2w}k7>9E zC3!H%m0DZBJwC!uBY8RSDA&4j#Fi)2!He|)vvptbeeG!x&_d$k004!=FJ zKJdwL#`^4W!XwHakVBZOp>D=;?TYP{M!z$!$1lgCkr~^spbfZm$?`1c8RUIi<1;gz&nj_t4IEXAa(viz z{#?X0$m^i~v0b-EHvt@-i*J`U-4>k$2sVb1?EvRt$bik{<}k9^WFLVWL`G4)9JOA2 zNSGt3Uh^tt6R6kGhJ)$D`-KE&1Poe1?ZwK__@Q5sk3 z6$01lH9);urQU3)w?eD86I5ze>g@^mP!#gin+Wwh0@W)-l1K2Xw>MTX0+!%pqf+%(s&1=5X}SKIkab?l_w z=oh#R)3sf1f?XTQ3vROjc5MMH-DW@7vKjWfu1ixLm!$a>nE$Bk9~+zSoaeu+_eFP*)-&!6~6d46ut)viM!Afick)^o*Pl>0V`-N19s0#J z5Z_vPlQIfRy#+Bd7R~H6(|(8)G;6)(e*D#ZPv+EaK$Z#>z{C;t{ zhvz!iz)V*G*M1S*#}Kz_9K*>I98Sm!esLnqR18>}>0+3s3<%A14d5S9$n%Q@Fq221 zU(7<1NAUXvr&DXe0cNjX%%s9sAU-WS6#SwI3yfQ}!aq^rrBJvH)LNgyRX&B^LYh{X ze$naSxz24+_#@zcg}>D}6n>clj8gavD7-=|d>fQ(Rti4|c*0FSg%5|q9)Sw)4~0E~ zU*T`y1=gywl^3vu)9D2lf708+bmKd)DA^8#E!+W^g}fF%Ik_Voh9obCUtunX ztk>{TjJNSPn8RUHz;k=q^Z%t4ejEDOS15%Ss}`ohT^mq1x#vIg8w!8Ho`0*W@KsPa z8?aRPBPdx2gbII?tnk^%3ZJwgg}I85Dy?!=G8*38T}>Nph-q;zmC+v_r?y?fwHT+lHm-4e^Ew!##R}GG!EcfjO`g{?pjf9`FFg*$ zdh~i}3n&v+^Lk0LVs|7fcI}1~o41Z)l{mmsiaoa;#R`(?Bz3;yRf6w8BRCFBKH zd=ZLO0G6(}E0n2LitUxGSZlIkw{J+XTqMXAyH>Z@0Y~d4o&APV3>#Fr661_p%Ebg) zj597>Q7e|*=lX&T)BO{Whog^;gJPBB1;yTB9|J5EI}pm$17ROKGFh?bk`?0#7uiw_ z-vKY~Nn?0QRP51jy%zguJ&HALK(XW&8}J*7ZOcBU6#JBYOe?k+%5*Em&P`VA&1A*! zI^g;htHjJI6~o5H?PEihcrEs|QcRDEoKV`-l0na)Hd}K&eQacsV#zaTDf^gOGJMZI zrk4ztL7AwUL7S2l`y^ShH#Vf$y+}w@EJap`(P zQ`}xI30x4Ok4eUCi-i7|u2tSut9p1P+ZobLA2gKyJAP&5xJ*R%45n0?)DzOi!ppooE%B1ev$@`aPF0cnDK;Uu~* zv}|H=rDZE%Xc8NY{wnevE!kzV+D&VJ5~eMcB}*J*|Cv` zvSSNizE~se*bXGoj$NS8j$EzC4`k7D+$AnXTXj%gki_cV8=$l z(vE{*yEY*7$I;1lEJ(KFmK(C;^XP&ZcRZvg3+%~qNx5ln-(LNGm{{J9Iz-$0D-11i zWO~54Nd>nv;FskOW;ypL99czq>mY{*0&HVO9?Kuij2j+3fqpcIs;m(~rH?)r6&b^qtU^MRBD*#KQapztGghu1eolM|J?zqLByGPJF zcaPA!uZx}x6;_b_!hW}xJHw#iN0Tz@RA0jvpY3b z+|GF-so`HvYIvUTuaLKoSi;je%Sf`>s$g>1s>Q6ahEf6o@Zki4J*x9DYnr3&1l zR|BC68^1+&kEsyDW_wx5@FAsz^Sj(u5eBl*d#vu?twiBPAYF zO~Wx&GZ1-9_4IrgoQQi&H3n!WGxC^fjv9>MR3vPbwg^@BFqOwtM56Zq;V~5vI+2u# z$5gtkB=DGuoS6ehP@-HOQ=NxlLmr2efTWM9vR+fOEDw<0fdDcG&TzdP|B0!-z#Mrx zho8rUNov%42suv0xUmk8ZT3*T2RYo^Q>ic6ZpGI9IDNG*MThd$`BWtkc}YutS>;c9 zb)mcXv+gv)%tjrvklVV8A1ejE8Hgt!a)F+NcV~C|5I-}Aer7EX8hu|pLx^Wg*}j2> z`}zdL%rQur9t?kqUiB#ww;Vhjex`e{ zD__M+y8sKBDrT(=#$tz~TrH6UQSJnkTcOI~)~49zY#~3=bzjqq?}Klt&Vux;vpSd) z84JQ<5QdYmG?*D~1ZR(MS#T2}v%G;Uab`I!hz|{r#UscpAuJdNpdzR#taE}xB2VK= zt0u&*G;B$U`AO`48U|~z0TFT$?(5yU0%r2 zrA{}MSA1s6Z#mey>{Zt1Hd zVkk4x=^y12q@_UcnrD>Hk5&=hBt6QfN9zFVXGh6_6D%7_zSKzqyVWf9>}Vr1t7k`B z2u~Uz-!El8h$Uu~46(OXt104qYv)^V)ahZowZm1e#?@Op9uFugW)%b3*fX5Wn1 zt4Csf0xU=1V=5u(Htq-)8q7G6Hbx!H0bK|U)P?c5(La}?NS-+^i8ql#j{BMO6q zFb>SZ%C7?G_GP%MygkyYiA**!Q?>w7$3oL(^UyULfm(%5X2e|N+8G>#wYf7me7BD< z?f~41iX8`Iv@m~>lM{UkNIMX;QRIGQr4p2#dy5f~ufldQ@f`IktiZ?3x|Om4ufLU0 z+_NU``mmzj4n&h%TRD*2>@8&d6E zq}ta*TdDT8TJ48FR3p=LC-M`FL9dZrYKD^${=!FaA8L-MCcTfA+0)7PJ{u)r1D}n0 zf^hn^W;&R<>q)>Y z#8FR%Ji4(m@CaOY;~rrzp|W#YC|Vr%81ov2>cMi`#YS zFy66g>8+NyYo1gu^777ZgJZ2EnXUICMZrC;2mBQmDN4u-9>9wf6@aA&@FGPu5PHDI zU!*{DwxSu$=P^f`XB5H}hMtNQfzON|?{10NN2Q9uPxdJ`eq9gA9P0uGOT|diq{HHmas5u5Xg`#_CWrU zpjg_LA_9d5Ixeqd1~y$B5L^8M(g?gIkn)WX2mGv%vu6jy@*fpa-Yi7x4+?quJX5q{ z{9zdiSF?gyJwiSMV(%DrlYxr%+*g{Ubyp1h;^clMRz>kBn zBaNLC4y*F{$>lMAim`jMd?_I7-Pa7UWEPCF8(uy5Z5YK`M&Li5Em)UL42nyN(fThz zn*+fuF#l6aOpk-YXG!J4-@3CUAa36Zqys?VEEV_&@yFgwJbtkzud#YLjl=kFEyHTq zE4Djo3p_p-Ye$baZ~I!W@9pC~0L20&ICJgI#Gf;^u0F@?<%G*JBJeYAn)YUTiq%ai z!>`O~Des^=7I*tqVOv?P`}s2Ag02WmZt!!O2Iki62Yg16ml*a<_Z3@C-e14#m-0mx zOD`9_7Ld1F9z8MGE7A|FZ5plx^~%lWw{}0zXQs8F1je3@k9$2c4JGd%XZteo+K9E; z6rYgyu;rdQ#}HS-D>i+HEw>G;JL+Y>1;R9M)x$wIS2uGtko0UY=&Nrz?fXa_uAP&Y z%!PO*x?_u9WA=Az)?L^rYm;BVOeOuXP{&I)n@)zGn0(SEa3Wf#S1cYm1giG*lTt_; z7FS|P;diEq%XjhTx`g^H{J}>O=6P7snpKo{>1J@le z;0@FsY=RhHX)#{WVl0PkQlVP#-eB4-5Tl7=+!ySZ(h8QXnq}V#A^uI4Pm|?~r{M=_ z$nqZu@cbh!Ajme@2xLdxZa$c%`3ep!%nNbLT#mzmq8stb3oMiJ5iIk|cX*Q!mPuIz zo2|q}WSS}ET)&x~)bcgrAZP~Iq|6FNCLQ4p+8E+RN<}a$yrm+bGq~>-?4}6AN#MH$ zDbGQT4z0!>LqcLInH@+qKF3O!mPu*!Tc%sr+z0F3vzWOhnAQfq-QbdP4=nR0SlV|f zW4GYK(TU8}MwWf?t538{${sMr@6$QZgRVpard)zDo8mP}8ZhNcX}}4XPTX0S!)V|e z+}sagCFgX&aDOdw=aPW9yFArpeR|)3_z}MX=ve5H2`T>wVGN-JO!;di__N&HA4U&6 zzRVDPC?QrRe=&0S?uNLZHX`c;_dk2$%3GGoG^wf z^Gx`X^?KOwQuo`!=uKrjF|fzxLGdd+;1;Ob^Svo9q)C520=J#T1@YcoG0Lg*i~;!2 z>KRA$9l?>|6!^GH??m8a(dT%9bR2##_?v+E*HAh<4C@~J@Y$~~y7bS(A@L;2GLMxX5O036 zE*yCaFG;r9GLIjgu)vh{vaFx(=i{e${9=lupfB_PcsqWEs=q6bU(Qc+0^+Qv+&sSn zhN?#(E+IdC4xIE>Kt%C8*3iu{qNYC`6!+rS0wuC~KuC;TwREB-ez`@$N{jy( z0dY0U=CiJqG=;2-Z$cN(am4Hz!!j2e;<_2On2q0`F2PqY_wMGxxw9}e@94ty|1rhY z6%rQat*mztt_c1x7aVZSS#FoCdWI>4BHdPK|n5F9uNoYqLBSUmKeK-LY}%HB);59A#*Xe zWzBIBrO~BFgj}8{LL({F4OYNqyo+JY-rsQf0=}X(=&}X;8s!iIHeA47~@?ZUG#Vr-AjOZvaw4~SdVNEqr3!6Lvs9NGq|4+@BtxhZ1) z&X|5XFk=VK9vBjXNZA$BTlN%7tQZJn5AJGQXM6aRfT(;Dv;~-JyE=mcKVv55KZe|Q zV$X3IDkLIr?gkFS+xjC0A#X9QHZLFw5FU}pwfHEhMkD*S1jXAqD&;Ip`JoqFMETs& zeS+dqRtb+hw@HZmo^atK{)wlNSq}7DCkk=!^Abi6jY5-y)&|7MQy@+?D*xsnQ{240 zLPBfsRlp>LWZ^f~?wFvEInzR7@l+QPZv5>`WIlN-kbX4`a}}IWnlG^CC{v96H|n#Y z`B4W4#OXZ>8INQ6`9CS7`)Nbmy;dPPn_1%SUtI(OUV*zQ!Er9_|jcM!E2gCHPVJZ6)l6ug#^N z@Vnm|5Z~fA$L1dg)9f)1o3LMyk;vNzghV;6B}rtbhj7&TZ-tyu84?#ECeIXh6fCoa z_31Vtw@q8%jdDx(!Xrwlc6v+;wiKq^?Alv~LjM+4%W zhaE9|Nf>L6eNFLD8;}KI!)(e&fp{JY?0AbI&S(Mo4HUTUZ9_csPRK>Rz{%_D7pw0SHF$-sh@BWVZMkpwK;Aq zGJWw3Hpq{Hel9YFPr^c=)kTmt9dUrx2U5iFaY$>(3yI4S>Kk5x)(9LP5|0x(8%X+# z0Wp7s?P`1E>y|hZ=ZeEGf+n})C$DGX%WjE8Pr*83gfhxxF!=64)I_5^b3;JnQBW8q zu*^p=y5AFh{{;uHE{+ zjTqqrkhv&|ZOUQz+2H$J1a@oeV~Trkaf=A^P7Z3%(#pZvYzxxv*jq_R)i5FU-L?IyufZ2F50U zS`9=-K_4o{vK|Pdpw9wksZ2;KPY|Y*_y{~fI2kEk4t;_U+X_eT&E&q9kr~|$NC%L< z1!>-)DwYfK2%kSJ$>Na8z08Sa=_$1?tq?T(V#f{KVa4UC<(w+S161oWFYk2bMMtxS zo{v7mv=SpD_xqqYe>1>)Vu~oo%=r`(24MV@F{Up+!U_|{w+CVW#;+FcsG75Vr+lmal_6~*sqW9a9YiN zdo%lW#T`SJu;1@*Z=z}^o}TT5FUQ3w)=u1gwA3zJ>I%frkG(qP47tF?VGof$A>wSJ za8{8%F(RUu?`?=U1hPNMjBSg1d&Pj|FYdhoAHfs*c&5vVe60Khb`z;T8G|Ba%3ma* z3;wbg(LIVH3FjG@E%DF(Kq)|~{n1EI0pjU{dlewA6xazqOGa2h3Hy_Nw!lMb8mH@i zt3+YCblts`D3U;a5hn<<|L zk=SCmy&&?l5@SD#k!qwlhbGG5e2ls&S03fsG$tZ9Vu&CC6Oyp|;h}u~fV3uXtO%FR zcP+%e=iYb1m~&<>{*&FoTp1Fh@N`FdKAr={iyB8Fl98TeScA_AiiLy+8P;1pxF_?3 zo9C&8rg-;(b@MN~2Al4WUAp~_C5{fKNS=qH&pd_!FC8&AKYt&L^Z561mI*gc-_G#E z?%e(L5JTL9Kv((>hUJ5y0ACQ5TF94=GoYXz0&`DOW9m*mVi3eA18oH`xc|XVcGvYj z_?gBBKTDC@eeBbUAiDi3_Ok=dHZr16j3KN67aP`tM~1{cFxG(MjEsDQYweMspK4fZ zF*W`Oy#~~(Wyd;#9s!xG?L^RJ`v^9x=eg0u0qur0;=-WI_Esaq#!JJJ?LCI|#r^n- zlWgxaV1S{RuB?9}D7_t)J2@vC8K>+M5+6gdoYS%E|H%+9ViS^cocp%&J18MXuu=qg zUcsYLIRm3tLWW8xnKLRQ<$S<3gfA;_2-B4?e2Sc_20K&L;DB=yk+X6TzKmBH*p+f7 zWjUiRatqMaa*nr!GhUTo2hPcligmE66%sK#3#P=W_leW=d&L=lx?8;#XRBm! zrYDIbXWcg;8!QrRpc$n8t-rHEEQdFN=?}(bt;^9Gx#%e?rw7D+0{|anSQCy3iDyWU z879-M?S6EBJRx_qA*}fUY)){rlRFLb68>6STxrQC!E-B+`sPiBxS3@)cc*v!maOO7 zp(UnhXB`jP1L|Cjzr`q$`_NE3P2nFwr`&%=?3AT$I=e=0UZyv|68Fy##MJ;hR~3OT ziQJ)moq5V;dWKk}a5S8pA?y*V&h1!W*fvg$%0Ms4&Cc@}&?#~UqXTN`8X+;j!cgF6A!zeQnZxSjCP#k6Ng%R zE2S4&LC)1neTwIfi8$vgoKr;Zm^l8A()^upp4=1q{r{$S-!uF_O+THc8|`?ejsWMf zXhWu!9syG)w-u(oDXO)a$@1JBhd<-Ru`7f4tkL!m)!MSkigf3~#MX9Zs`4XU5inJb zSF0&m=@lcLmA(?W4FjY5phOQF`v%A1kA$%{=?mj=`|c3W1vza6K}^fXw5nU2OAhbbK4AS z4=m4Zyled@)x$nPqN{C$U$9(xf(;0`6>RhP97cwQC46~ghJN;NLW}a5G<}jVdNCn zlMi50qzs*gjBQB``@)=Zy4!5EDGtYeX3!OO^c+{64?;k%jM<}b8HDO`KpOOQ#Qsv< zpCZmB<@Y3pbaM#R z%<{kFI3tySJls2IVl4X9h4>^AX$MUkmv%qkPQd*q;rP~xV#=cEFq=4Nx0thIwToK{ z=Q4=tT;Loub&!`%Cp&0rrlZq2#vL?ekh7O6&$0TTDVZLBS$@(W5qWsuUeyPMi~{En zr7Mk<)g8e-M+o0TMfw_H=TM~y`7hieGZCMXW?!+`l@A*Wv2aed%?+>C2buP!f-R5vP(C^btl)&_PgKGZuZrAE-wU7q?;8b zxtWb?N7Rj$qnrJl>}LJf<7N$Tvl3`XH=D8%ZZ-`TsbqP$*+gX>EY78yeE`?0K^ooc zHNf?NT{k;WnXNB#!p#mzax*SssfuO>#5M-*dC)lHKgsWH&ndcTBKz$rMv`5d~MW{`{=eLH$Obn;}X9jYwz^}q? zf=n+#n1wi9*p~( zJZZzMH<%(_gp-I4FKmAsLf+C#tfRicp*9w-{XaAOuzS81xCJ-U*kA*D&|rRK9hQB+ z!xueZIj|f*H-);)7DV@DxZq+`EY~onUxc~nQarQZjK(hqjxsWi!+o?h$ToPIVLjgL z-Vz&}jS0ov5e;UZo&~R@cS8VA^cTUzX}G{0usQb(NzD@(%eS$_Fk~Nsi{0i4=(Xmt z*Z|784a0?3c+pxRe!^9u_%QpNXIvJ?f=7I$6TNWwj<{A4!|-{I1xdy zZXkTme;HQ1_Pv1Rd;TK22O?o{;CavHM6Uu|0T>_IM4!b1rkd~}MQL|H#yY_2%C0c+uE0DHpK1JS}Y5%vk! zDhs*7bpzJI*%+v_aB;wX;fjH4;c5YU!f|v10^x-94DPiZc@-?F;`bM4s{!cvxdCDK zflU|KFR51I^bxPg2tV$_`#)z45%wBIfw@Hd*o^RdKD>WASBRIWW@5xOetL$7??AjR z)5CWneny6Kt;)~sfBei$C;pb(%!qZ1_{#p#+mPM~J>o0V?aqDN6--~G|qaIlPIk&)5}``-d+>vL?tZ5avg?QaAZt znxD1?aQs07*S14LBvM9XSO}Y@XbFr^2Q{0=>+kr4-d}Rr~0wXL##v(H0Bv<5Vtg7C~jHLSrIPY^J zFJhxdrI=&*1>s1lkZO5@k9NSCC9`D%ipV*7%&vv47kS-oF z#IP?iqg#PnHsJi+%vcwyDg=zf%bdt9iYr?lXJgs+W{N8be7fQzwSXg@UxtQ{G%Lvf zi{V>GvmR8ZDS3+mi|;uo|!0 z0Q-l8PL@&QRY9w7NT_fTw2rK&4ru&3cf4u>tjDWXz}|S(0YvwbZow4-4t9lv%`|D|88C8!! z9Kx%o&_z&>H{1+nliif-;UkIPl7u(sMklYp$bjPUhq9tW_BBK;;W9hc?;U*l4LIw< zV0w(*w;4#@X~x(X`)?Z&^xYWyZYQ&0v`XV>)kCDW&qg0ZM%`x%fOvhj1c>gl6@-)e z>|_X>&}T_V=(CdG@3Rw_!{28m!QW>|@b_8b=(8zw|7r*^Y|S9qf9nXV{@Vyx_um%4 z3H_HtR6_qH!QX$0|6TnTec}PkHti5PzK0Wi2m^l?;JgRiNg(=o?<7!6SWg0FKoTbb zY||4b0TT2i&<|^xDiq0kFh4B>cm-fN2@q)`;!Xl|FM(xge5UJO*?>LwDg;9J+W6_A zlpM6HRRZx`tpXEgq5px0M@S74fub~)$AwHyydQ|#Q|$qD+R3A z8`XrhtJMMdgRa&{zRK0w0eh|{5UlmNS~1Xgh3jf%fIU~M0`livt(F|LtE~Xyxmq(2 z?P_g=|87_7gb>=*dI&35i$2xsY6XD*=UlA>LdUV(;;2>uSi4#+VC`y6gte=+0{Mfk z)cT}qe8lUUBS{-1|)f$2PIag~T2kmO@Ks;CL0-{|_;CfoJtNjB* zbixEmLc#Er7MFbrROD)&t}Zx?1$vURNst?2T&GM5L>^+o&es@eiWjJV^s4 zY@*hWc0?~<&IHEECP1mbyA4-oB9(dYgPJgNXfXpbr(tURg$u=c2G!2dfQ<*mng zG!_4FkPHXZL528-*&7`WXhL}%4rm4Jg#$W(cpDwUzHoqznSu07QkLOpo>UvI3WH4l@5D;OvVX*OhSSmOG2+77lVQ4$7Mh~ zKdu6z{kWEJ(j>eQ;ee?SCShch1pmlLf`4Qru1Cfd5JLNLGhyY&ZGg2OcLM(3@nbJE z&#1ptkf}e{d_yP<)FkgI)ySL89-F3aU zE(NUj)|G_S-ns^`e{WsSGHP$#0odDH+xYg`jXBByLov|!7j8WjfOS1}fOS2MgjGE) zfc^Efvy7@I`z2pJr7ogl1vNn9U%K_I0Ich21FY-mB&_P`0qn0QimzpKJr#gGed=6< z^=yI-SqsqkciD2k-wxPYx^w|aSi1b-iAKBv4tk==2I6(lLLj<>mJ&|tp!3lD2}>6e z5|%EK;9t7TW)A<-MH2iSlmveVC9XSYC4|r&w1%+ip!I-t2WkzTKz0D0qo(tvTKjzp|cX304ycjg{qO{1EoqO@v+JNJh=Wn1Rpm4@(v#t4TuZao5C7YjeCDwR17GP3d0R!6y6LgaC2 zR^);sdvSTEwtT+Jlo{MRwO$zx^CMSgg>@O??%8r|DFVN^V=m%`u~l@z4gi4Ak!~!( z#cIORk!&8(P(nsP-K#DP|Pf+0UCe>6j$9#{?gT@@6=aC#KCj7aE0 zmkkb;L_E#N2>+-~2S||T2a&kSA_uTAvh?#2KT{qAQCe1VB%PH zL{LaVzA+?L+bl#G^~}ew8@-C`RYXdh*rR(RLI*f+H)B|A{uIQ-fyn9pa9E=ih@S2{ z3A@vM>|Qvmcukhdi9QDphy#JcM($Bf%kV8$l- zV)PBEwYxf4JVPAwjEpO{KnOjzv;)?2OBdk(oy8wKoM*%0O|N zVdkj-B4?d_)vUwe&7E~(UqX>;W-c|N(bYg!0Lfb%i+(!C5Y2>-7#LfId8ZAqbgYvx z(slyTj@3ihbu1Cx0+VO-ZOI{40=NKhxDO`HwQAB#L)G%_R3ZCC3DV;;jHq0HRRHn& zMK!tnsepJLIp}`T2*m3bEkLyR?Szy1#Z(BHu>K+;Vf`fu{`J>3%;8^uNrJy$kl^nZ z#C5;uf)Ki2h=lIdz}pNY zap0w!By6*#-|%1_>vkTvw2`k0P4)ox;zb4TCJellK;yHNgVh4@9IO$@pL4KQa?lRe z0mO5#ZXnvh?Dsqei}64{4xG*v<6(R;5IR-v}RLu}NUZI?-4TyHCZot~9vO9fFRS4t{I#nr(Xs4^W5v zk>1(76KH&na;hF6o>N8N2Zuj3Y88-!cB&E}o>Nr-(N0xO_|K18CCLsZ34RA7!S7(i z^{%lFLg-y%BVn~`YyqsDtsU_HoU?U7==faaY+`k;#A)(RoCvvm+w z&ejcBJDdIC|DdzQA#}V_Ia@IhJ+f5-*3MQ(SUX!IkU!{bE##}5tqZW{Y}p@q&c-!u z8PNCvMw+~hSq(&AAgTi_cUruS*$71Mv|0$Oofa3u?Xr-2;Zb}HLDg-{Y{F_GTnN~| z5H1C-7sB;`y@hbAi(m^8TQmj1C7|)0jiJ$&5=iq2g>WK|1J--=)K$iy@SSRV%~fuy z`>A+rAtWnA0hG>h0&16!KXNT9SM#MzJ;cb7npXnRn%4mKG_MDuHE$y9)4Wv{Qdd0z zYt8MhUd`ix{hITwcCC3WU{CXA7oq07ebfmQ(#1CZxS)qM>8>9A)YsJufatDXLO7|b z&xDy0R>LGDtcE4Qzi`=&Is6M3N$}4rB>3kQ;(Fmy0U>nvt_G~TcOBq_xr8Cvgw-$! z{@X{y6Qhw~7V+O6lm!3nK}q;Sw+HQ{+k;Lt$-z)3{>6@g3pYZC_|e9!=-KE;EkNi^ zbmw-$(wibWh9 z1o=xSUKFz*%dG5;d=gJ6!)nxP0Hb2D!V_O_*p@g2d+JemOzUyjBw*m3+I*~@ zM=dbaQyn)WawR|OK7X+(m}k_r_BJZInF`*cZpsLc_2KS?>Y2Xy=ct=A!aMqK84pe2 zCHz9@H0q9+gi8tkD=mdGRuO(IH)T2U)DwO(D&ZEwPo<^QB2PQvFGr>=1KdRzF;$6( z&w)%eGP0SXN5oM=GKe#+E#@2##!R}F3gEL(&r(v;tJ~BIqjlJ=YujzJbx6EH^EZ71?l%2DQ36eGHC%+IPrd#cH~2s5XVXZXiSJ4H z9l@w4&?7{~={DYQ&q1fY&@lPex)*a3UK+*df@zD)Zvrpfyd1*3law(?@Q*<}Ye^V` zP|M#v2FWi~9`HHnK9}Hw=S&EGSM*Mpw*>Ar^8MoIZsYNh30)1}Vow5GO_<+ezXTK4 z5#hJkpFkm+#KK?wUVv+)GksO$JcCK$VK8qb^DLt{S_O_Riu)YE?V9_0;NGRVf2X*E zRWEn*qycD@TYoadCHVAt=0wBl*eNLH;^St(BG57m&-|U4Dn{;(kFd(0HN>|#ei^xy zVFXS)+Z1y!6pqAuyMeAYyyAbxZ)RIo6BK8jhHQJIOaiy=;UQ6f`ub89;bEkU>W~un zza&U~qY01P)9yjAe)Xu3SVeLE&oY7M@54_Xk@a=S;#ABJiar!4IR)=VLud1Ae2bK^ z43C8M&BG$+DI??iEK9zalDEHMHNA>w=Hj65ZDc%xmmB#McHVL$W4~KM@*(iNyA$%H ze!r6?er5h04I|_7B1^o4?@99xH!@mY!H)yrJCM9uLk_rAXgJ+dcswS%&lWx+1F<$E zuympfBp?bKVH8&5+^5-$#A*V2IY0mKaDOi!?_=HbnyPP>kH{#njQ)zfOfUMIO;|;L z3jxc$A?qv!!r__qRT5Tp*^K^DfU%T#aZE;lYmgx!0xVBSH_5Os-r3D8as0N@ZoX47 zY!t$6X74GPS~4ri>wS{1fjVy78ujGW4R+(!gmv5+uqSyZ5G{ERVJ-O&O7d+f`I!U5 zdPOH!M>zBq(c{*lqB-Du_Lkw(0aH(k-v4`Zgp%uEU*G0Y*G3<46|f$4#8m>=JL0MU zqPHK_gw^(g-#69CLhcb)D`35K>>;eTj#0cwmbi7qOrIEOB|&C^zWlza07di>R|R0X zb>zoRbwp&GLJpqqz#7`AFMAC4SJ%2Fk@8aOS3_0^Y%!z(|G?ur3vxoMJ{rgBf zfCkvPHQP*9Xh5Udun}}+eLcm_jlmgK$Q%P9)7+a=B7IFgzjevE_v=CM;(+=3*GF>dATBdM+ zU&~aw2m=Rk=vNOkub+{VmIV_w1EKlc^UHQ7Wg+lH!Mlkl!ELmlCwLr)7QC3SPw+C} z+NEj%Yr$6#R)RMJ_6y#|GD`610Y1S?Tm*u<#oSK=eT0PFM}}F*4|4sfosBl7%?1mqj*Uk3}I6&7zdBW>NbdJ{e=F ziTI-Oh}~S5;i#E6+{lkyt)?{+Q7VPRxj}rGykHq!#n3f6ATFH5gv5BmvlgMymxU43-s<)a_z^Eq5S-6rg z!gQR0YY3z1+8}j3V9i=c%Qb9(T%2IJI0#^oDa9)x zqODK?L|dU6@Sn0m9XV?&G!fBO=y0p?PNX?8`Kyw+&)^dG8JxJbir4(OF_qZ-BqTIH z39|XsVqtgRz|Jd9^4gEU+lb!XrfeXx8}e>bArRdSO9{K(P~L5-bW6F{e(Hhv?>2EP zOSs!43BJ2c#1rl|k&t+|sg)J@?>5ot60ZG_kZ|pX1ozrcM%QJgcyI&?oMvP^k16yl zMA-6b+}$N$>}$iR;79 z76_rwquL3p^QbPsI$$jhHD$nBUYX4%qOZ&r0?}7yO93Yask!S&2vSReKS(VJe<(=3 z{!iRdk-W1}2^sPZHU`K$8#P4KN3xB8^_sVhu--{@0{Me$-X8K*hfoE0``%mgRuGYE zUTn#SV*CjleP~FWfo){oh1k*i5%(v{QYT=?&)3WI&N2+SPQDnL=-meoOuT~D@Y4~lCaEFi3WumrI7!3w}UG?6}7O+@=(9T4qha|M9r1xD_&tRIg6T zVA*tEwofU!CiLNX`@ zMh0Or;0BqY^t`K#OjMr@z05c^-qHkD`xJR=icm34IaC(;lDayv+pd}0y939nB@)}d z7iZ_Nk4BJ0Z^zL=!hD+C!_^8#w$-*i*7={~)Zn3=LOKd6>&Dk2o_!<85TyWR(28q2 z%27oaD<{fO3s`ne*1rM>J16UICamhUgRmHd*#oS(woAi?stp;qwoBpf1auL>j!OTS zJ6cDs^YF73vY^DV&MN>wM#Q~!o|O7+P_$PJ)KW)}fTUROQR)K1O6n58p41gUwA9sv zwbU^s^>LK?%z?4ZfY%`d&qd^$?#)Ct$%q|+4O%;4e4h}_#}2KV$dchPgnC5uNbJz? zT|(LnAca7@b$hg8ISdO5mx~JkQ!{voidV|0&B@SItMzk*`%{m3%k2yO@in~4)bcyx zYca&vs#qJMmOmrDRts3}U6!!vfN<}!hD}FUg%Dmxe639u8WL>;EbyB&Tx$%5Es65W=mgmT&j zFP(_RY#!QURrC_%j2;aZ*KLt@HsAulZnTmqB}_rIk||Y8>5bRz=d0ba;+IZrq`NfgtaxRf&2k$ z-T@`+QG_eERe)OoOKTG8Ceo{Yx6hgjK86X$K$8Oeb~Hmv{h&z+V5!L!(4+#0)})%S z(&T9N1z9L3FD@gO&GX&i3iay9B`a%ZWr$p|vMyg`;yAZ58M(|R^1CCK8Mi!xA5Wn_Kjm(= z_k^9auP^%sNAxO+$(AYvYZ=94iMlCF-~@RlH5tr4(xwHCt4)!G5Ot|pb}ViIR)H*C2dW*ix| zyb5lq!fM4NEa>Nfz})6pJRn9*b5M zQ}bj8VZ|cS2c46i*%w|QLzlHGbSc*~3|-!;LYE}S*wt6a$|5AVp-cWIPdBSZ&@P2D zZT3krXeZLP!_uq-hzz;5cQ4a*+OV<*uOhNcDLQBwu zyj4bPc)w&s04W81F?xVq3-0^`atMahI1t$dZorUQ z3`BQw$1{FbLLd0gS3+FT&~D33I7|-&hpgM6lEd!%)%1 zYN=rWDFoszHPW~$F9St}2+vVo#U-%}5q=M@v;YY*L^xVa*(9hC;lKZd4WN5Ko{@!% ziaJ~vn}pxbb;E@jXN+}!fE=gp@=RtcbTnN+>f%Q=_5E)Xu5VKMl5r!0p zV8E(kHhxcWt6E0Me#BQZU)slYD-sgIIg;Q$ld%-TLoGRQyFUm!iWNYl-S0+UX$GS0 z-bUE9d*o8T2cL&Ne4iQ@r3dq)@qepvQF<^x8jo#xGVbWICVtqH|NpS}-hovW+aB=j zz0Xe00dtCh5GfkaKtxIam4HA3hy)Ob3K~?3A{s$3DkXL-X!N4Sjs=N5cI?=(2e}G% zyj~S6SdgHCSnz(o-`X?#>~lyI(eHileedx{nBSV2HEY(aSyRs*fXx8%!=BJw^qqMC z*!D@ZMoa+#wtNyjq23Y#Z1=>6VP#YffUTbRy3?_Hi!krQ9s_zc!d&{7oq;AG9bePj z2u``@Av3pjI)c+A0xtdgGY0^Aw>%WJ7-1~^#Yk2m>>G(XKWQWd2>V7-24IXNbMX`$ zP=X-42Z^U3LM;$?Cld<*>Itwjne{FjwSmCwN=o6m)v|*jg_k4j7e1FjTWB4^e&H(t zbm6iN+RTK~z0lBbnWlA`1E5{^@LPuj8MRF7kf2Xo5W~rM?geNe?s9UjTu6XjPOd!4 z5jHE2xeS}RaxFmWT$!U$%F2TTv-03vc`5noxpD)-{#-flLNiy!LY+@%d0P?BJgL&R zBAV^Z+nydVadf1&-90t0Dga13t;+#x@7DA@Fz6x zx01{)f_=!JTbNc#&Mnx7a#60|hYA7wK2%D;tyA_PjwiQ3@3M8ue&iFlb;`bE2;4el ze=?YTifipjV27eU5v2lqMH%+ zyJ*R!0H%vp0GKXXgRtqMOAz)2SWTb>2wxTupb)?aAYHT^gk%?;3*>jvIs(&0R}z>m z3JrSyCXJ7a z3BtY!s*3=O2^Iht6D&j6m|zvcz5ulZT7Y_leE}K(QcN%x{v&CEB|yFjRuC8ytRdLS z1ikHBnb~1C(|2}ncDDRY*hd0;uCfVR5g_PI*lrk_g~{Xan6e4`#Z`Fq6~9p6CM+K0 zRh!WR{7u;0%hA}}gdM;UfqrrIfLA`dW7K87hV0XfwHM|dlb5?d&|v^ zI&NpBI_G$g(cK>y&CZyw)R;XG*ERC(CeKgvdTi%z+3`!Tk*L<;Mev>-<4dv9$wk;K zZVDNe#Z82}3Uu!rh&%V(IsOu6s-?`_uf7BVt}tKc%H*pZxYCYM{2f!BKFUfnk{B+ z^bTn~!&0-9cb_`8+ z+Ax=q$8?VK#n&Q)gD<{v@JM;_RS3ZsUpYb0KjXuJ!d|#BBBnG(zm?)XSAt)XbcJwG zyRyH_!5>bpWQUtV8lCL&q2~woNWMqL{qQ|_cq1o}ZuVo|8)tjW1Mg*UB*LR}fX8Ve zOMJ;5r$w%WirJ{UlE)cIo+uiaEoASE4=lB2n&CjutF`FS2k=`O)UeBCku~9D{*0*| zajexdL!FE#K)VdI+&2!k)Q#Ak>(T~S_ZN1|P(2TArn0Yey%&g`)l)-ik32l}5z4fj zub)@a@7wHeTh2Y3EO~gP%>q2UGGK@;53jW08}DN-cjU2_HeC@@xyE~}rOgZa`5N{K zqo`hIdoS4VA(0E<{hU){u9T2{CZ6?~cDMJMOZGVc57&5}CHs6APusGp_hTbow!aQq zA5yze>TBFstLa`{!Axb};O-a=1qfYjyvm;S1JqFt+sIz%x`|hD)4h^lvD+qmHhu>| z&NN-j4Pvu`n6Ih*gkuFifxM=+J$Y1Cm!Gk4VyTb2;lz;@*Z?G0;bukiv}2-ec00rB zl+_i4C5Y`d&nop}DIf^lRkQ-ViW1Ru$w0WRB)2c!EXlmNsmxg{E507AQI5*m^F-{Q z17&~g?ku2$;1jof;&Dh@K>(JCDFAZ`&ISK+fCT_;B6z<;#qI&5Ffj^)#IX@U!dz5u zK!DI@Br|1k&u+2i9-}VE0iH%>uL0hNeG&)FA{l3-PZnEExyFn%U{Zn6BG816GS2oZ8ocQuU ze?AwTmTz_?`?HG*$&hgHfv&opWuiat7U;ge)1PapNc88}ds-1$RK!DW*YNea50gMe zToS}oM8-f*b&`OJ*h?!y2y-pS2%Qi34c(B1m>#>5!0%%KjT)ra$2Mq-NL&am1whi1 z#sicPuqTxPlmmD@DSDqaV=*0AZYqI2l-;J%uwu8VCV&T!PQMtSX@Tk)D<--qXrj#g z00^r!Co$2@8f>qL=6$D4)O2m$2}tSMoD})4t_aB+6N4G_G} zo2s|Q6e-=i45j+ryQ(P>q%mt4o1#1M9rO(^KzDVTljv@#2HUH_9(>H{m`v#r^>}siA6ZEvjT2f#3Zrn#l$nfq}_bz+|R z$deM2!tHc;x_lg>wK^w)hv{B-lTXfdoreZQf9K18vfhY7y=Ja*^}CM0-r#*AXG}kD z6(n<&tj|4nC+dEe!t@!IXJ8e4h*Zr`rJ?a!BR3X!~I%-rt77CF#h13pf6?SFG0vfv_ISz zYT(PoZWNSDa6m5Nz;IuV{PYJhg{>qr40*~qFw<6}kJ8<*BU;Tl^jRx8jb7J3Inp{` z?uy@56k`~o!;TuX=u@U+UbBlv{Na(S{EMMkZ!aqgGLH-dp?M1w0Vsft>MD@ z%Jju>A%R9~xCo}v8ZJVh(T>(eD+FV-pP-VopcJF6rR>IN>j9c>+|`T~qqQ<{9bIQk zR9}gS^G0x?(VhxW0N@#I^vM&wBH4L3=S(GFZ~@LqQ_&aN(1RXaV+gv#`fB25%SYc zm2=-=jymBmZJN!oV0Bhq;w>oUN!R_OfsLdd(ZI+s?_RuAN>_|0UANl$xqCm$cf~W| zQJrBk?4-TdycV$cF@5Ybd%p)3BGb%YY40Pp&ECtX5za5Sq}%&fLHmZKeh|d8_pXiD zyWv7(6?->a#Cii<1k>IP7a`Ezc^!eqAp~RZr-vJ{_X^5x?7aq{X^W|2tl0Yoa9XM} zCLRG;ML>JM1E2vw+xxO~dru+I-akWz@QG?k{h&)vIhCtSZa5t=AW!ZKc;o1_b&Q zcZx!NlLU@WKc@HkzK!&H!-ZW|dcENyeK^2HFnhh>A_VsOV;k%B$2Lz2Tnxgooum%-u4uvURzGxuQ?VCPe|&CYA7KaOrKwVh|t zLb-dgv$k^*Xy=I_riBjGb}k8Mp|iDx3PF!cSzTke4ZuRo!eJ$Wzk34Ev~|XRHrDwB zxD)`%?#a;rr3BnP83#}Spm$F`O}EYz0>`9#k)hhK+8>~nfMZfIz!I`b?oO^W3Au%_ zmcVSY#DDoc$qN`O@9*h7c{*^2S?z8CU-m0}3uonx`mzV^@-|55%W#)LIlX&0 z$ys?U7TEk0lw_S>3_6?;w_8Wy7XnZcr2F5gE{eK zMSYV5w$2_wOudfLzKl8K+gj(KooL)bFuv@kY`6{LNmfZ;R&5fp zr_~Y|UsezBJCZY&l1Fbuf1*-kfy>NSpp?yq(?f`jW4%qb(%T9&*xue&hWz5sSj`GD zqnBYd=MtD|E&%YVDL!PePT06Vt4D03RaLPY!I-tfKBSZs+g}r8*BL%7S{xu~zn0P@ z^lK>uKhGks79zHckMF{G{?t9{$2 z;O@*mDX<&c`JRAFkzKBb%rc;ktNt^$&6m_soAf1J2Y6QDYvVxeJB&7l1TnR7L?iQm z!-Z85Z5S?6H)z9f5ln3uE<&I-YEU4}QwUlc(YJF0(iyL`l(M6%$N;_?pizStYun6N z8AS)e*~Bemgw19V6cE6o6F;DgG6MF#PcOrPFagK-cL1sZyp=&>4HDLwgv$`Olz`pz zNq|*MD7#x?t_?b&{8%Gwd$uPXI1j+@ETsTVi$966(pgpoT@yRY*C14BPEufv2HV>| zmLNa-hjJdf!ByWMp)K%uuJ%K>2S&=@a28=kO6Q0v8OhQ0-RtpC-;$Wnl|A*Ec>yvKK#{~@-rZ_Q( zY0xtoF=)eu)+h#TxQKZMxCo{}8!keiK`(5?ptBBXgI|ZRrC`kdm4Lli2&~U{=_%)i zYmvNB6H&3J!Hs=}>B%5AJ4m2QKQ=({T)NnxasoD(2heB%(uIl`D>k?#-3H^8@X?x+ z=c6^)UK^}Iei;!tgx8UonS87SXj;a#jHQf;<*2U;c^MNm0J#L5e4GPN2;faVMBGxH z&=(iW)s#aE!GS{y;^1LQ1sRxGMh!sIBGxf>Yc(=+2dHtW<|J~h(!iICHuWbCQjsMC8t0JnN@+dhOU6LS!N+*Ufss3d}~t7d08`#Fj|% za+o6|xp5KItG>`?T@FRg*HiMtw;NT~O;NT~OrUt*5IW@@wUv_u@XKy?; zl(`N24J*j|b15E$jK%z9?90Pej6V<-5nv#UaUf)7Hnn&Y4u&K&BZ1z81EL`W2E{UR z;ONOgv4X%1igN+HLD6@1umTzWd}rs27Bzz$TE|PmL5}6|5R*fu^o|8A0Ko4ZQv1M9 z9|Z?`EwR^YeTA_E8SG#*M_~RWMl&j4G?U96Z8UKnaxX@iG#GOPEfR9K)Eq&Rz@|1w z(1JO*m?LN*psA70=faxH;9|H)^9Q&Hrok94LZHD60zYa-2*zNxI>@HM)Kgt(9A8~j zX3&`k4ycPb=;YRF23t2+jOX2y!oRn|Gj9^aglI85_cjF2Vz%q-+qWJuY&8DX!bHs> zH8oB9i1Lt{Wv5t=!bSGK(|TS)abi8~5il;NWpCTKoaeO5`4&>qf(90Q3K1!3K^^u< z5@vm0MLJAT z`U@m{S;oSqnMur>SKQM%C zHx+XufSMCOz#9Q%!+C;7(8EfK?Np`PjtnE)Ijlt9-X&RPulhvhyRfAiZA;Bg^5Qs* zd$zPwEoMX)&vng=2;WsloVb-0sD@bA>8JVD#p8We=orM&r-tkC z_cRT$F2hA^CBQ{6t;?L;3xU>kI0~d-LNL~qesV9?RcEY=N9fGbk)_gM@EF}E(7Je( zZV20MT|DJyuAL2Ep7fI-+xZ-tc-n6W+iYEO{=QV3N|fjCWWoB1W$_H2gs3KX)A@AE zq9F!HV8MYAn7FA4OXRfzuT1tVTGnTf`aKRoT!!k7{!@7RzQ zL)$ZuVC+Md_GFP++VRnpJYy{}IZg&iOtYbf8SWxy>*RF2NFLb$>8KD~`Vl|6o0gEB z%VT#hR|C#!Cu#c^qy8e&DW-s1*PGc`+^pPlW| z7wu$$-gU8qPWQT!+HG( zz%E1L9AkH867o?eR~j+<1gz0+fVf+w*e%Di14*$C8k7`qRK)OTez{8W7}8jZ2XQ%p zt1IDgClt9AkAIB{q__ZfB)=@oL%@_Wu!S#a%q-Coh|fOJP5e(?qsgQb{>-0O&_Msp z8ZCS^W?g2pGLPUdtkoc^w)>}Z}w=1FFeC1Z+=ka|re+W^5u772f4k!AK5 zjP3fZx9!ttmAXi1+=jMorMC8OwxRLHhH?U~=UOZyj16(ArWR-$`X9JXE2Qi+kd*aQ z<3_bT>$K>Iz|bZafKv$YRjDO6-uT+vZ%Rs?c0zc{0STK?oDfh z*v56+(scWgDO_MjK=3xM+u%3s6@~co1kO(6m-5bi&$_Ax%YtU#;748i6}YNTIlyXw zpD|^Bkue(qe%a!x)dXLpCu^F)|HW9pqu#%)oeucL{?Vf{z4kf7#RpFb*gmz_y7*jH zV{MvJ=ufLc>OX5DUeiy)clX}?3V=+^mOZyMJ(&K$wi)W2=e;xo>Rr`dr*DcLOcUhu-y!_<5K9eM=G7$_4$2%1 ze~<5=9jo>B7|v?)8_`2BeXx$7*%@m5OIzzUsPkahzSmYYuX^dnziq3_>b-DNX@c}% zI4DC?;h=2)3&P%W13K|TZO!lb{;@V%(4z4Z>YW^JtigD*A2Eh3p;qt z79rVduRCfa0rTv1x9vH6f+y!>sQGK*@R_W1i&FVt0&G=i3hN1ljyEM>o|KsXPr$?_ zSQv58V||8fbk*LY0jR`J^6+vYV_2V2gK@QmH9Zz!{XdjCoMWSC2j7>Hfszd7Kjx@u zjA5Qmvuw4`!2lBhQYv@l1sUEz$#PO+wh^Q-_}>YBZVwZh`Bl#q?so z6P}Mf^2`3|rI~WPrB0&9NBUrRhjq5vsOdre-*-W;c+pFL=kty_P?z=Uaklz|-Ytz! zQ#^xm2Fu!pu=gb@r`h4~r<_XTHEt*SP~~;j<>{cjLib!Ivv3qAQ?;$~q$Dfq>3V&d z+*0zSfRtp*&&}}q^zY|+=@{K_nCz(axVp-&vXyL2m(z5iDGF&Cq^K$-SxObQ5d;}1 zdDX^!c(SA3&xO9dW{8Uys8Qa@e07mi~%gt&_tMmV8vrm*Mqk8R`?tFfQC{sCS|z91e?$ z46DfDNN`B~6x%wCN~bc{jL4l>p7RK5S4hrJv85(F_4JT>kO^l+9!*Oq+j8e2mwz1e zLr5Lj9cjO|W1r&3ndE9wAK%%#N8bq$WUo6l$&Ysa)=88-9qgRl|AjknI5uszgJU@p z@DaHx)TdcC?l6f6^8+GuJ3=YuX%=!~TLL8_Yj(6DK=4E;)rXG!6dsavh;}da#O98C z{z|8%O68L6B(~;~7z-|&spo7bFWOIY;I6-L&>zK|@POVl7=Tj%W%tj;pEWq#b9ep9 zRZqgVMX$G<OlA#hEKznsc%FtWq93TN{uVkX>de(_WX#7zGb<~-%u*+ zdZ9aAC%fvduXM>3_~zi27d+t3!ujgy=ojSl^n6P-U*d(o!Aa&vHo|XNPM=p@)q91` zaQF)$_073n?dJ4z)O|l|wwHIwP!H+~IR{V0=N?SV4Y-)o4Ld4Sg0lC3j+}LuS?V`T zEuz&>MWQ+0yQh)>@G}AYb6f3d8HG3>!+jVXx)09^sqvV{P~H=6@)hm2T4fvUIL|~v zf$|>3g(tUuj8ZpH!BZ?ZyoaM^AYAaK<=%c-h8oGD=V0{3$a){zjr2TxfGmR|r_r;< zWT+VB2A^R17qcAI9bz%>4%PVDA$Ad%H$YeRelQWY;+_nzltV4|L%b1TxCQBZpPHdA zXH%n;Ablc!w6;5&6!dfPYbYaOFwLnSI_ej;57OMePljLXVYm@2wMMzY^ntLlamuZn zJ+S9xn!}lSh?8un>)&wIM$C}ChQe=-mGjjKysiqHDR{<3+jT?hxp_mBI_D7R@ly7S zeDrg7%6vy{f@%}1EN9BV4D~Fc6CTu`hhJWwPJ$?$M?6@sT(zTW`nCrzSUp`_8V4z=K*{= zX>^7<%viuf|8&(muOW&>Z)|O=-I*@E=+r!Uzl79NM%-i2A>L-Gzn>@G5hnDyE~n22 z_=Vplo#(UVu6k;@j@fY#e)UGNf1les7zV0V=seHugiAxz$nWQQ{!Tmwg;7XqTKhU9fl`lQNA5D=DI4GP!@Gpks@=flhwv$a6T?;V1T@BP@)Nfs z=0}?O1Re>Hm)|9iO+xVo%SW0I3J}akn&T}nL79Xy$6dNh;^yP<>wbju3q$P^SCv_+ z7QpFYWyQ}0SPC$yqGf#XDfk!@!ULa=#J@mT6=U8$F%j8bzv5;*(EBApm{Oi^M;h4HcE(Zr9N*5}(Y( z$21V;11nkQPQnWu1bF!?@di@W5a99V%mKLLR7W5WH^;l7(4~NVkIqXh2IsX1vyzec zX`T`>BS&OUE$|f(D?Si19$@E1+aoWlg$cGN^wEedWbBK!Cv>Tobc6^!2>?QeDKxXe zj3{`Ff*UMvq)~Vh*q-uq87n{n+s}J}8kO(~$%<5=1XGb3gi|U4uac|?!pi1ntlZb% z@jeAT@Sm_>{`}87R(7)_^~iMENJXSL;84M zcpms`_~3&)(J{uTfm@>CbK{0pGTwAQFCouhbK(%B6&2}x5SN(2;lhTRz!un%<#(Nt+u{{-AHGA4UFtiQ`Pk# zDim`eT_)RfV*jSfT>5vGiIU>qpMhVEg6Y65If)9WX*0rj#wHs7?KBwiAVhrHB0d%2 zB7`RnZjsm(;c|wX+mXas096EMSlJ16CJdS&Z10?Slbr)#w}p{*@#CSbl>mK?jl?rx zHJcIcdt{5mde~U*U|9X0PBiOM*jEw3dp3T`5#NXX4zTZ$ZL)4a{z`;tIn>o7==ang z(y85Uh_s9iMlB4%>1g4@!@9*K1s>LkT-YU5dGBOA6B^84R}+rdu*N=$d%At6fuk0QUR~QNXyvT8iFF5uSL8wX^7b5&`v2)l_LQ z5>!hq09BHpO6nN{b!1W<4FH}hq_uK~1X`;Iz_eC5!ltz<5thdf*;m@P&U zSBq%1C|k{7-ExSLe^P;J@S1p@Hk?`lV>n9ye8X7{U_=RHWokqzK-f2&Qi7!6R7g6{ zaONWXHye(wg?w3FmhD49F>}fnkIj%D2M)BY7$$?Ff_%gebgW2B;SMr&LV`OrGZMjf z)qTQVM`Df|OXwu6be`~plRQ0=u-8kw#vX%<4Z~ zuY=P!6~40^AE3jOMm>uNcwaT>z?^6+j8FzQKithxkw=j1eWc((JLu4zBd;UJUUgVP z5l?9oeh%@YfHR4w=0vW<4hJzUY*33#B?*o)36Av=5Ss*2!ucQ+Gsm2q$QR()1(=R` z(4-t(d!S0}6TBUmL6=(Yj*DH{fEjd;rQARrgF2B>WpbdtTMl;>ISo23JanYjG&w9` zeix}Vn}&5rw2$o)J3=R*2#NeyesoNbP@dUJMQ3OVN>GW8vE5YsDJZ)N^Q}Rb?wt8n zUrW^>jQd_HT#KL5k$pcFcWLXGnR3B~otXyIXj zNa{w7@L?@{^r>`NVZ_7Q;19ox?yk5Ow-v@UQwI#Q+z;l4)HTy2tXJ7CZU6VT>t=B>Exdnk5_*f5OQHsJj>s(`1@&rrK#i%7r^YeQ;1_I?DUKduPaVZ8`5V73S2+$)22{W_+Hha`wd|FF~N} z_tC)4Bk$Qsbu|f;{3^#;*vxx+E9W2N&jpsVV1uLPpf}_k3I1!BTIx*L4uP`AkpIa3 zDj+3)x#P_0YRdy&9+!1&w6op}1xWmDjN&QV|94Q<5mL!)^;KnY*qs88{^(VV{614{w7&9K!xY{}(}N{>lNwrxN; z-7&wAf_}mVY!G;QyaxSpAf?8^hO*C~Xzh-2)nWHQfFqIP>-V&tuh@1_bQYdMW^*8q za;Cm$sSafK3OM{UBji=?p)_eyMB7GSKiL{yBr+^R)nHROXT22+qhDUy7Jr_?AEz_E ziZuae1^E-P=eh8j47K01u*yFJ4fT2$2RqPq{^8iayayALwFK1wO~-70%2xY*o1yae zKqW4~tDqMfuo%ww)@6tx>&pEdb?*qx`lzE_RZT$FS7Gle51Z0b=-sfMYy!q8NYIsn zQk+|_c2ph#V{XS6INrpjY5t=yi>4W5KL)op9OY29A)Q02^*0dbV~BImYuJ()rek)% zWZ~mp01qQsL$RZ#@2NovW-%QN`1U<0Z!aBl?ems;$i!@1jLKo#PgtM6)>U8Q97_s4 zg(fx^~marj1kTpR={9mOW^xhY6^v6Rx(@-8lRfRednQ zRo#D%c(OIkEf1ecI;aiuJOu{(;V>lUWnG_?n4XyFyo1eGsp4^9I_oO^NTvdjKRR*RT(F0|C1zabeL>pnQK4>oErYFtJz6rPUZm?Cm?#RP7{W23*p}T3Y@nfY%ch%qoZ0{Up zlC>TeQgcnRKKZt~+9bPUrwn!akGiH;^uamawP3IiP4eBDAr&TI`y8L+sJsxnaY)_&wASeOyIs}p84u`r@3lCf&7odrhT+E!r9W zqx~hFY&GJ67?Q|r-zhxQRWxFqB2~iApQJ+YwzDjxTKANzUSW$bVJh5RP|j&M`Vi7SNTuvM z;g;yTUP3uZOcEy?mp&- z-JY_%XoGrX))N z=XHXE$JD=DXD|rbbSiiiSNq!LBiWgFJax=a90cQ`m2OX2PE!%e`8O7TBHC+kwGX`< zQiroodz!e=xhfuHwT$!%5c(d7sx{m5WUQ~@2a5-CUi~u4XmKCTYWcOc;_ED7+YfCZ zRiWz$(`8VCf0O6dZX-;$!T9!wM~{oqbr{TE7pD6#gukQbQ58WKLTp@!{UoX`?Ll#j z{S5vjIjKJ^xhVm8MH7@a=Wdmy!VCo9njoQlY) zwbeG>2A~|E@1c>ngAb)tF??`#;s9*nEkIbF?>-f-atT1Q9V4-7gsBwn={LI$p9H!S zN+*HagZ?vyDvR6LtB?n!poL`qAW~u6_pA5hbS+h-l^6j*8kqh>YoJIKk0hlkWLQg8 zhOjSHCBUDRss?#bO7|=tdDIb{#LrjRvRJL%+g994DSnGq#tlG``m%u3%|FB|%}g@S ziavF`r;T$FUwod_R2H~xW;$|~UJO6yZ9NH_qXKLO9Ao+pq_#9m6VBX%NcPO+rpGz$>u6pEYM2}!<+$)kZ-NgmU&4UA3L1*+K!^j<#g zT%2J;>>VwEs?P^=h*He!`CmSUl8 z#^aBO67+?~ede9#7I(2zd|`1{ygI9FJfxzWqT4VD-5Fdb!#M?kvgO5?D=@8;#@wF` zbtY=;jJm^-M~90GNV<@l6WwfFL+lDJ`6Tf>v2J}xr+N<*x$0F3cOk641BJiJb(eo^ zdD*T4Mb4~SU}H|w+>Vm$E1(Tqc0Yc;QK^kxGF9P1Of<_TTWXmB?_7n`(IOqwG;vKj?XVPXzH303W^ll^$JtuEO^gT3E()uAS4@xMdrHIrx3Wv=>v~6IWQO*hp{&Kft4tDf>34%Q@*yTODtqfR0#!Ux2IX{kLRzATr%m?^9FVv06(3 zJx5^GPTA*RI*}5S0)|e?P{o;HkK1l=fOlkQF!9Kc`s7z#&KB(2ul-(2a7CV_&Nngh zOI_8)fZf8bI^zeO>;>%lT^G{aF1g-Sum7UCO=}raU7kQPZg9L@g8}VD#H@v&yI$_9 z>kSAdQ*GB=uGBT?5*X~ct&1qKQGK+GfT$6>wh zi5M@(^;D|IV9UM3#YH&GS9^?tZE^=$2A>gNY6hP<*M!sqdn3h!$h9*)|AZ|-)ng(% z7oRtf9GtJ19E%1)ES%=`I5u*d&VjV5$5j5c*VEd6Wg8yQETrDXF7$o{XsK-ky}RRU z^vtsk9r^JrSIxtceZME6r<9ogod7zm{u%uO%k{%*ung=OLnqovgDM<)o`dx9wtMd*FmNmHYTzZ@G+@t`mgaoTC}QV&ubxFclLIFdriyyW zz{$QXd0IjiX@NKLJku!ZV@De>7vg*m<*1@kyR|D@SYq#{1@~Eh&oP~LFoB}X2!to}I+{#;tT*0d^JQl{)mq0QW zleMl!o<0jvE!ndYk%IO$^+zqz%_;WP=axThU&ykZ_9fGh5l`T8vE7vFGtW{j4xJy8 z#de?ZmN${PdA)blt`BAg-j(&cCwSAAKHQ(N&)`_Hv?8RQz$QpvoC7|Gp6AYZ7GK%M zci{StwcL}(*eb^GILqB1`{z?|uGDuVex89(yX}XgRHlio!4E1KMw&}ITdFg|Lyqr)k%2P^u?+;@aJa<1^Gj%-nPs*<@GXeoQp& zj_j?YF>QPYXdm3B351os7s_xRg9SgqSeM=VS{SV}ut!Fcq`$)&?&9 zg}X9jQAOanFXu+=2RC5vb=VKm>EFmh>34v?^xgJ>u28wjv%7xFY~QmZvFi7V-NwIw zL_*31BogET64-K|QrHIP-wW~E9>enEO`5^v34C6)^@- z|GpJ5s+_!UUz7+{vv*Es#%H$QVwG^-m=7~EDx=5*q19i)tqts`tTZI*S z4Ji*n{2{E{vAS-md9rR35E-nS!BRIVD3_`AJ+i$oPQ6FAKX9;K#3}WfXcFjp5t{^3 zuQNdCtm`F&S_pIj39Q@JjmVy0#-eI`+H@M4y5vMVx(SO+>In5zC3Ea{umXQFeIsbF zQD@Q7ID%!@DyfsbxJsz7)EMBEy!mT=eb$$Dd&dmYl3wH|MXAw$EV&tc;So0=s!NlT7m|3n6v32b=F>u4p9`BL?oUAB;|pn6MLsTEc~e~zh_Wszz~L0RJ#hx8tD;TQ5R9n zDMk3URUQ&uZ$%0M{R_YCOvhm54PP=2w+AxKap8AfA07OeKMsSX8vJ>3947W%5Tz!; zxF9M@#F_=7sO9=Iy!IO0))Hq?2vZ!~&WdEQ%a>|^#C9jB*8T?l!)~@aN|^ArtImN# z+ZT-|1D43jK|)YMkEMQ#V(0?ygunb}_s6!4ec(>`L&eCZ z)gaJ~wy!@I6T0(Yt&^aKA$j>(Hx0z@0m6ydaL(Zlvpgy2g@&}xie0Ylns~qNp-A)* zOg<1A>}f5N6S5Cm8C8r2hiV+WT>kd2K~x8*s5VEpg))4s6h;ao3ZlI5KiT!<3Ir))yjXygXZ%A%l_mf!~i zEj3}NCPY5D*-L@`s7i}-GM%H)Rvm1l-UmD1&3|%LKKfqiKAh9}3v6s0dR;kmsW({~ z8V^M;M1izucFduPP@CvXgh=3K%Fvdfcx;EsUJB@mgtpQDV7kf_B;;RU$5iwsmUNpRnds;nyX{z+c)F^M<8tcqag&`xnI zfm98^keq>u@dI#`7hzczy}B=q9{^X6v+gRvOq*f3%d3ONX&>CE$ z$`_b9Hkej^Zn|zgeDcyB!1me!_EC)?U}$ITg)O}?Lmh$}14BQ?;aovchSzv^hrGtS z2#loh9z7q8*FM;Ihv8OzS526RWThZPj=ROv7B!5xw>03PY(P$4 z<@ZF+2<$aoT?jd*;iO+o@G%&exaUW%)FwJ8GkTV8Li)y`Lo%bWj=?4zlG!@CQ-I(# z;fK&Vn~*Epp=V`!O_)cuos*dr+gmqb4q~MV>va>7z$T2&(+(V~7-q>&dze>&XwN@R(&LYl6#j9N-hZ5A?>|nm*B>Y8)mRdh7z#}-hU$ivX10%B zt-JId)Y4}eIbMILXY{blg!G5i8pKv;6@SCDb23{>*V)Y2>6tr4%_0GVst^)KVFx81 zMeK~sf=qZcRRAD&`OV=E>`@IpKC_)LDq+&f%yy}aKu}RL1ET>At;%ef=nNAnXZn*f zyCr79Mk)blBbk@uFrylPzcNq>N?hxuYZ-l6576S9j>{~PQkO8cN%2=Q)`-6r0OE&7 z>j^8R=eq+6^B@|UV0^#wLlj`Je)-4WKuW2xiZxYZU)8PQC5N7>Rh`T9jmau!ScQx= z%B<9^r2*G!0D0vu_EsKk^|{)|&(Fjp4=v?fcOP!I!6gjM4#TPRhLe-2%OE$l9hrG{_Q3&1!rpTUa<{2f#42Sr^pKJTWB<;AMXV7&No7vV^< z@B|$8Vy-&$AK`Y1^;L+z2H?VQr+C)MSlD0wZ)Off2d_zzAKW>^cg5@91$ z1H!&gaXdh6gepYX7pe>(C{(k{m93uhHF*dG+)9((Te)5mXp+KKf`@35LRS+|lN5Rh zff0HYfDw8#!&>Ovg-M}{5cY*GXN1;d6~eyI3jl&bLzB0d6-R%xtZDKqFM%feL#QRl zK%wx(99(}(8Vc5bUiE^xzOVKTB}NYPJ^jE{sz`2mxDG1ZQ0|k6kQNMb$bzY5ji)k9 z%4YF*arM?$>t4tuY7OSP^#;eNHAW68<&s;2;RdU=M_@*0ABaEhw+?Q8!=se$Yq`7N z^6(aXsGzi~IFN!kCcAT5M=sOT4o-DSTlJ2w#PDCvxK>$N&m%k+VejdN_)PGv zW7O>Y_;V<8CBr>);`|o;W})xnJ$RqM^|*Ofsl4r3;eqavz2N4l4Q`-efiIDB8Oawb z<8#RysC4!|nQvlDTE+127V#3uUbrK}9kSd-@Fob;w!lQi??OE`GqS36eAsDNGGrs% zrb|`_gi8?~)|Sf$X!nGrj`{*Oy{XYpmW0&#_%1HPRp;TYc3coHoo2b0O%JK()@BNQ zUW2QK;-Y%#;gN)~DUI)tV9 z(Uwo4Eem%-9NO|=wBHhj(UyB5T+-UKWqcWu)dRwG`D%uBB~)94$7D$*@)*{YC_z|jXCxFiNs_h6sz&y?jM8V6 zEDI*qy+3Ykc_t6bVyX z%!KVGk(JF(EdF9lmNam#$l!I>B2OOatmO#*30dMFjE8MA|2usX4-SSwA}m*C*IL~^u2u&XAOW4L0A@9KcM_cWQDczlVDZFu(!wxf23#72`cEltmyOT z`z(rBcDTaF!h}h=j49r4725&xM1zNI#CI0PU`Ad8mP1>HBeAdGbQvqN;)g@A=m!Bp ztIMq%m73(CKTh)CA18U>kCWX0$4M6dagzIfHwl|#=)Hj?BuJ(4zpu!vsK^&P_=+U< z6}jsF6bb8*1!qu^Bp5{^=q~#V-|EuC-Nox{wf76&aA!@z@TkHv4Cdpm#*b?}`p!60 zdk4QFzEN+zYop$x-iN!BM)-a(BBDn~{Kjr_Fyc!8 zgYOezU?Bb#-VQ!BW_;>yv=wC~9h(pWj;#X|zzG}2CXP=#*UI+dT*aByAS}*ITwa~T zv{2jRWTWdaqEa|1%d&D}UA6S@uyEUI8*U#Yd>aW5*44Q~OJ}MhL&W-IZ3G8u!}FP7 zZE}dmWQ948q6C76ci8UX;s7n@4DxM=g@*+336b#km?5wniHBDE=y;KHc7FI@IvziN zNs&{Q%d_|KETu$pwnPi#;(diuI4A> z*NXM1-6YHX62Ia-nc=qi!V#$GRsn_eDpYgfRDIRs8b>nD8;xL%YP^L%5dVNs;(L zm>JhIjCI5kgjX|sR90pLX1Q6?_f!7#dJmf0kqLilFF4R&c4vH`qvKGS9bFbB@jNg# zD=UPPqfn{DY~v`T;%A{hOk$Q^*;z9Yt|Bv@KcSXeP_r7w-Ps|&0pU7^QOlvI*;0mk z=49TD@G6Fn%JM5F9X(Jn!GVg&a2lvsUZ7$P29-m|==yIV1Ce{<-681qcLB?ys$4mi2{O4P+*xnU= zwm2to03yp6o@I544*{qo*n}VbV){|TaL=5`&w3J#9;8Zt%n6&h3pQ0%>E`6rMQ~v1 zGMVv#sS6HXQ>HG010IV94?$Nfu35X{I?AFwRz1Q=SG-zcw$T;)QArfE72BiEYp)tamR^naIyTr| zm!Q37X~Nk|0Yc=?+q^6?Ma7|eXGp>(mzklKhQGq{qu?B@=by#u!YV0YNczD%eIk8Os-EL)8M||Eh@~<YA{1j?6@@y z0vAH|M)*zpaJXgXon^R398qfcY<*$GR|{3~cT~UG%UGt$`P#+!QOo92Z1o|$|8N_( zRpPVp5CASR59c@G^RZvl4mLcTnz0Mu>*eUd?^f(e+t_`|=tgw+sbtu6pBe()eHJtP z-=zE0Qx@HQ)*_tjKI*@&`{bJL(`@q;-C}&hV8A~duaWReL1)h~_zo5uX#^Xo3x;U> zXpZi+%R>qa1T}m&eSKt$@rKo>W95Z0v-D0YdRDMA-G$C{ttQkXbtwq(A{c8NBRE^{ zB19H4e3#Y9^MnNW3ApD835+LXIM9@wxCK4oiNpa+kiOZkygo)mCge(b)O8f)EL>!KQr{Rfx5mP{~5ViJ9%s5V|62{=nC^L2^riK6x zUb&Zlkps4JVlwP*b%|| z;rq!A`VMG&Nq>uHGWMdgasOQS?Qcgf#x?`JDZT6P(RMU8O-qKvB(#oB2oPj$8{KrS z=YcU}QNzdJRGlxm)UrhURww$E9+G(=079qekD9;@4G?<926gqy#QCFlC+RH=g%pAW zxmLCahl5K!hJ6z@=02+k%I#M1eX&*E0Kof57Y)F#a60O(atmv?JOFbasfgj=wX!l0 zhL@!aScXScjDQ>?kfKoTX;kRs=z$#Twz{UV*Glhq!^0=qfv+sIhfXl)*^9cK?%nDd zezYCEPV1O^Ps5Lej^_nb3PS5>Re<2>II1UnqT>_oHqjzIa$+n|!%wnvMd@=XbxJbi6vK~8 z7xFl}uP>xD>v8sIY1T@eT+~-hFfCnu)9k|3ywmJ`ByX)w4wK-7V=I%G35P2E>MYEl zm3>VC9wkyI*s2SDWjEq}t4+(RL+WBo=to>_wcZ=cwf&JwjOC~Pu9}7pK4Q0iK9PrF{C&8AlK?$1zTDa%Wl$3m7RO!Uu)_u)t$dl_$dFz&P7&We2?-;@kS^@VgV zVOSmUO|WT1mS;>28t~o3Db(^0k=ZDQS{}k0Y-}5ze7{$t;lw|BKR;MyYP1VeGDfDo z1MhOw(6Uz&=K-W9n`EoNBWjB`XMZ^qfcatbU6 zrrNe#pwxSwKhIqB{nHNKE`mTkz26Ol@!RbY`&tRH@jQZJPD^bXgxw4CR9R4Ghpxnz zD?DlKMHgc(?0vBXM!x?``im`IShe_mf6trk|02q?i!oD{TlyLIf(7i*v*JrJ^`!Za zyixA>zl=Cq@yMGZVRHWw7;_ah@@7wM3e`bD@~e$0SK$lQhyzxV`CJgVxiRuq?`Iv$ zbb^t$WrYV<;Q}}?3_*>&eb3mDz#D+!&s6W(xaf9pknm9=b0%;eO6v{oxS_@ijCogU z{&iV`2Ldy4aC--IyCXqb`Z=61_c0IMm)zC3?e> zC!rM)9Z7tHT2}$!``i)#dlhkHcH1>V09`qYPEcwxDlIbphA%2P?|m5ZWIQwi8E*(_ z8L{y8TC#EvZ#FUNm~d=7HZp0~99c$HggZq?1PO;nTC2nrgK!685d^FVCnCJ3#Pl5O z#y*`B;e9D$@K$4&wu{__#Kc&ZsIkwtj6XgU*VB-B>@zLn!v^Bk6T^!VnM*1$r(pP? zog$NU9yyBBo`T1;jC?i8lUd3)2L_k;NE? z5SH`x?)zXe2Y}%w)(>Ga;fUL8gSAtv$Djb=6MWliS48b)xg$(N|lroGeR1Nd;nktAJ(#&LjkRWFA5!6%wNySVyrJ0F?8$UEz@D>O1OPT}OfXpSxOfxxR zAUqMn(D8?G3Y84QA*_TiCl9ap6>Q~DE==oT5n`$nYqzW$B(zW65)Z!OuwOs1m>>gHq>av5%<3h55z>OZK$W2izQd7%m?pbBLO zOBGIs*p&dR!iDKoC{M4#@W!hEnVko3Q)=o&Z6@c^OoogNdXqEJg5pi4BOu=7b*zVt znY{RTnwdNpB#4Wt1y@0MyjwqX0m|1w3#eH*f*0^ z0Dsv`4lcFT7QB}r(~%Chz)X79x&d#3<7LlGV9=hKw7k}veR9zG=E*cO`B#u2X7VG{ zv>B3$nRHGwliq1&GD4e42R-OSuqcb)iu%J$PDWQOU>G{y0B=&lFm${YX@1X}+>+K6 z<3}WA9*gP7OX!N_gRu;}<|biV}v)bTCpU2#f!SHwG#jg95;pCR57vWGXB zhbpXOSXW^!!;MrS-AwNPgDSj}NccW2#R(=oGay!JnI; zh--1O@HSRxQp97}5O?mrE;z1DHI_IBWl0go4@wp>JIIkm92F#pCB8QjGj}LMEOFm7 zOFSUW5>L{Wh=rU?f4)ZMDykTkcqy8(hG8^g2-EpGhS7|#U}un)$ZC!qyY;yCbXqg+ znr4Zs(Tq#U3zm3gF|HCIEX}waO{Z@6nsHTnGoG2=j3+eSjPZX%ygYEBB`!o2iWt^a zC}X&hDx_QD@;|7;I#i*8yikQ3QH5%Rr3#-z>^cBi;&FJ*^67^kG#e4 z1iX>6c|20%TU?`$!%5DYM<{hY!3Y~GHhvw(`OiR0y)^=)0WL_~L2%E;GJOaJywQc0 z`%YKyn}nlx-=?s49_$|Ql=qFE(HDXz?#|%03l^LFYT@X1pzwrVJ}&Sd)LD8&&6VDs z*XaGSUWmZ&?vERt!LO9S$kphf*a6V9I&e~>OK~jQ#j{*u_pETl|5+iH-fFL@Sof;% z1skPOxb0g4??)T(rB#&V^J}mj4=}pRj`6Hv z@Ja|D(lIK}tCb_nOE!@eNJN%&3y1XFF_XBG3HxMAxSHXC`H}Z^I#f{|(k+g^;UT(k zE(1}c#Lp*TA%^68y@ij^d{E#?#@p-s3W8rf5|9GX%Ku&k4hz-jVPI{qf_}x6hJs{F z=@^{#aF#TBp6h>jC!bl)bCX|iAffRuIHbJ%#XQ^j&8K5fg43)|hGz|r)98MJ6*z-4 zEj6HfSdIRSBrK-&Po8({=iT8L{Wj=QsSp}YjONt?y`7@bZ@G!9UqGLI49)bmo0GWz zbS(M_9(S9?Cm#dn1Ta0%jh&AOwo@Ol=Szv<2Tx5BCO+0W)?DKcAmv0{n+sPWH*-7; z!i1J?Z08COF90ToSo0vESHz8-u5+Bs6!(YS*qgYBMix_bmc&vJRzafTj#h4B#i`iC zCg^50j~C5=MLdp=fDLvt_ugo!JcRWVjL3}5tqV2t=>YQfqhUS)1j-}Ki;&G{UPfS; zS9r`LWKNlAh^7Fa`T1myFHAKq`P?A$1wrPEJ?0{LJ;H`D*u}4g;HyEK-rkM9kED2;#RD1JA_55`18>J16dh`PKmNam&Q> zu+qhhS>q<+*8r>pm_8yq{sQ&^8xWrOPK!h#!to~&=1Z3s0~8YQrOQ!ZTuQ(P3-5ug zO#$fKT}yx$3llHRhOAEk{M+6& zv&ZGwp(1#e?lry|$4!NRd<63{u%3jloTI83Kcr1HFkNw(mGD2RErj4lwMmeVYOBP` z<1jq|4?a?vcpjh*KwgI&e+D*y40sN@TE%2|DpGzW-2ebBb_XZ?OT2vwI?>ap|Jisq z^K^hb0KS`f7!*^)Fy75f?2CR|1|W**0Z;*u-!IZ4k&lZya|s>`@0h5;_0k0di!vfv zQ^IH%fWxl!ewddSfySu^ff7f1>I*(xO5*9u0%?`ih?RFR*(#d}OsmA7(S@^B3IY69 zDF-mEQiZVJDhmiqt1Koktx`{rY?al3rd8rgO{*l>DkXqykpw?;UQU44$mA!^D**y6 zQ4Q#~L@j{d5=#tVORQuv(-La|k}V;vLDN*vqTYN zN?QP6l(qz6UumldjM5qijMBm{q$n*9&{$3x!hc0+?80-wLzKoYyZ}IyMm;TNjL}m) zfUl>-$LO@HL6IJOA;4w;_TW1(sK#H^FW=6BUJ3yC@-3%qB?wb3GG!|VFjKZlgw2$# z8ex9$p|}3v1N|~T`0zcZOmtWnl2jBQd?-M`VEw^|FsFZ{G0!1AT5S)H^qHd1lS{8d zirV-*iMLTMnPJwlj(xII`IYRl-Tao2Utq>6@^QwRaL^tr5zAH$-}*yRC3s3Wa(Mvb zDPa{ahq52h;F#35?+v0{Dhs2H+ch z6@W4P1ql0wzl6XT{z?L4_-hFQ-s0t?;TIyDX81C|2M01C1ib|b+FQ`@CxM4=_*DSD z;ny(67=9gqZ}{MVe=+uc+Sv}ULAuQt72y+%GM18!8P!(<_{s>^CzX+hu&<0F0w^QK zQJoBF?NmsFBfC#XDy2*~d82z3!hcmMwcz0^WeI?{d%Nq5y#QmkdYDe2RC21){_q>1GqlruG-WdB0X`8y$2rnv88 zfTe=508_>9w+`>C=ZVCeCl1mR@=RboPZW-o{7) zE&;P@0vh6G)Uy^q{4OUl^#H}+M`U){fUxP5@#O(KEF^#(>N#W?pc!*25caH0#Xdkc zqR!|ZXf?5^7()z!mJ|CGbuk25kN-^`X7Md3u?{Y4E*Q&ray7sL0FEaQV?0^RFke!? z9u=zxz<3hlctXZYSTs6WnA-q`fN{n5v)F9m*b>2m0us;m`~TzkvKor{JI9yJ|QZGzrz$l zz@u0GQ#_9$1)k!O7rP2jo_Xl11Y!BrKA+qv2fz>T6MV6&lHs4Nb_u@LRZW1Gy0Z9E zS1o~gr7O-?x|V=~=XJ99Lf1-!<(Ks7kA*=1{EJWF5Q#JxBD40#h!}nqmdf=5yIr0K zc9w2eL}0pI8GzsIDgjKlt3lXwyE=q@_rH`N+3i+II?uT`ApCcCJFj|Di|}g@oC^Rt zk30fXiy{EO7Lx!>EvgarYk{y|i+X}&E!IjpuNDeF1Nwib7I}y7!LX0rp=u=*oKKfjSl4NzR?jXvSmlLl0Pux~)61W5y` zkaV5_%|+N4&{yfB&z$tp=M>b1u0_VDCP$yxPjF~VhA-O42o%00K)@&zdlsV*6Z`@v z#*rxeJSu4j|2G;z6HtuOt1wyZEI>Q`oukoW@@s4~inY;gwKqiI93;F>k3gFs5=W%> z1DGSycs&3y{=iPnn)?F~3I3~#^(fE`KC2NngU@D!{lO>xMsn~eVAu>k{||d#0v}gZ z{eNeYveVELW3{7UjOwt9BMG*>u7FjHcAP7=+ z+z^Go;`&1c6-4Eyh~SE#2;xrxxBvIt`_7w}*WBKDnKzxJo%i{ix%ZxP?z!ild+z>b zWb=)5KQ)Sy%Utp9_Kss-kv zwR_@&ZuKgTz_)3y#f-5069LR!@)sd%msW|raR0RYC48w^ey6lz!=6EfS`Y-PV|QeH zc?*6P_sel1o;etabx0(4o+Rps?VL%-NpA=SiB|F2 zN7V(+^7WWAMQ{m3%4?iFVwU$;?Ou0FB!}4boyzLkxD#MiX4R3h zHX?t8JE6s>3PY~t-&Y=5DUQV5cK1p6Bd@QWR4G1z%inH+zbm=pc>H-8PUXA1DgsrF zoAD!Z*rj#<1plCZIL4F5t3~&h@PicJ{&}UqKOIn_;(wxu6H{d%5Tr=OM!a-KUnlOy zZ&!%mQ|Lz(LrL|`>+U;h0%Amo(!bA!QL)^sxb=rOR?7dG?Y_09E^h5BKMS?HKV383 z-d7R=`^p+VV?>#9Upd;%@<#k!+UU#0wLN)0ARLx#>39C0sM4)2- zx{Ix|S3<~thj_qpQbMSIhd`s!8wgc*|FKG3igsK%E3nJlHv{6CLlD0_5Tvl`_}$gW zvhoW2fX9(_`2SsuH!CxNst^4uC^jF6_yvJU@4Zck3osb*P&0LMrMQSB?pOW2Wmw^Y zOscOuZ2wvsjAsBX_oa_PA(wKdh(V)e%ir{UX;8_+{IefotpHR~{nQJRcHCkxZy zh0j|`Q4gOE<8fNHYW^k{Nf50ga;w!J% z8=~J0rDh*XTr)(??NjiF>9-3JpaN-7phwp89AFnAvGSNUSx-A{)sxd)PfpwQWCYif z)2OG^dO37JHvy0r>?IEP zX4M{b*J2=L#I9e&$Qp5Q?AlEuYu!9J>yMF%&gBmHR@J<^nGQq)n!NUcps+a_9+`|G zL{v`!)04FL+btmKjC!4K~;y=zTrej$Ep7c+F2}xs>^qu{6VzwOvLGBlF6^2 znVN`j${y8!NBo*kgGhqUm|n9R2JG9AhC_>$7uPE0(}+2?NBwsoaUI2@vnJy|EyYGl zqLgyL9hRdfc9l{NN1CP7lM`>IoQvw~$$=lI_!TGAlk+}@I2yEp9QSp^sWI!xX{(P5 z3N&OrIqYo2(TLJHFMwp~LhPKJ&N*i%xVf48D5vF|n-J$_egg4aGruLdEa!X-1&nY` z^%eAoQ6~3ts*tS70mtWRG9PiS$!Un&H5o*LYq9}xt_e+4&YEyKSCdbHn``nT%4yX^ zoRF(Y6XLm=oQss*%}C(LngkEr86#VEpP+d1AdJE@164ozE?nT%8nJ3_pla#4LcBou zhCtQfKMsh;C_V-FkKxzw-i7$Zfr=aPmC>KgLwp*(2<}XX;AD(@K`iJ+#fy0N;?Gz& zoplVD-h5h!M=|!D6%Sx;`#cn?8hE`z(eDgYO`U^(S0nNt@T*JsBaHLf5Py6G95dP2f6LX;LNi|QS9m(4Jf`*^(g&p?795(6g4-4@(bZGXQWBwt; z&u`sHL{6*!14hUujF6Etrqt|&ZnyX&s(-Kg$-8R?kYy#(wDw!|%L8lP1n(D-rlDrl zCovkyx7(b8ul-b&xO*odB9}?Q$CBX7m0(hf1`ZZXX{TUH+k&gUg5SOR6Ivj0KicZA zyP_iY+jKQ(IeEbJ_Ot5!(w_6>ckwpD<$AKyaf&H}Jv* z)^yQTd)F^O{1U`Zx_Wncb^9rbTW{Mvj=1x99iy5YB;EI@@>JkCVz%D6d!6D7=Go`; zaL*BIBuYEiNHXnMBT?E~BiS;juFgAJIW#!#j%C^*gVL6aQQrKk+0!~HAVWq^n^W^~ z>&^(>5?{32v;Ojzu@qkp8=ZM@{aJ|5M*OTJ>Z&^tC!dIc@2o%8)lYv3D_Wx6RbT&Z z%rnao?|xzLX}`v%rVnws;i;MHxZ&%5We*{#$b-*%8oNyl{`}t##1lPp_j-B>=?RF8p0$sB2kB+RbGMZz=eEqV5x2L@os__q zIiDi}`7Y9ODM@Xr2N73C1M;nxjY!&Wy=yztOvDgk=mG zzoL)tUVYkY%6DnW9sSmx)hA%#MBYP}=g|imY9}qprIlHFtStytGy1?xVT;&<5Z~Lc zU=hz1Bm!f-i2f>95!q6Xics265h>y~g^PG*Od`+^WeZRbh(6L-_YOu4Y7t5|+!CBs zbDPz{39-{_=-~CIBg-c8!hf~YGL^hau7)M`A)@}{@GYruqN`|ubLN{uJi9+iyalt^ zcTs}eGXD!gilLp=w*=Qvq8IQrl zhMHI1I=pvKoQ>JPdv$dO#tmwTPB3;4%&2<-ouAT8l&--&ae8zq^;F4AsKCp1tqobHQ8WN`R|n=b{P{>Y8WC#( zht&V=SiCca1pWuP_ND=4LmCuzT8Q5np@X?6h`5k`tj0Fgy(EcD6*>;DAA?@o8<;ow zk6578pMu08yEJ66VVqC#YXf`L?~h@sj}jl4+i)(NawFo?-Uu{LLr(Ds5>uvBQeA~K z{forOrmx0#6xsCmz{E|IzPzsfH;5mLIGLVjhJzr%o*B+1BF_x#D3@jWjfjtKG-R(o z9gC*T#C`dGa?$hz;?DCUY64m~jdp(YGI)8NBwS}d)Q{!a&*U@)-kG3wU;ggucE{}3 zeMNKa(~h*94dpr$|FJE)H>ls|IE~^%>L(i3Q5?q@LCg!H>ZmI!#B6ktb8$c>HzQRu zUJ>FNbk%cl%rAdPt?E~o26H@kmsM1)!DXw>LqD5R_1SkEJYPkVR&B)pF))t^(py5o zb?BVxVEeD1s}c)-I$4}ugAK$zx1tU4b1IZjzf@S&fWKU$ENA~RkWUe}E4#PM}PTv6Fk{rInQh?7D!^5BLT z9t6Y6*){Uu#!g!YH=O2!8&2B?H;mwe8&2oHQ+^Ir;+=9e{?dnc%AJVwp1%+A+)jCu zUu~*#_7UB$W>=vt-S-0~$DhnZ6 z4hRNn_O=kTa6ROB+IH2^52sOagGj_~t30Ic85BSWTEtX+ylQ&g19)AY5wu*bO@~#% zq@lXy5p|dLD5m)&=F^qCH~b1>o(PPav|5jQGdfO;#Vh5H zy40TrH|wpOA%B*ri4(LnJeCsYS(J0FM8j%)Np2k_&aXVK;cX1g8iCS0oxmPP|NBllY>{a{=>^zW&gUTQTmGrek@zH<}`E$*e!V_5b z>o`C8+*~2zmG!S;3ZD;!wX9`5v8e_X=l0s?q;X4et#5tbJ|+J z*H;~dSCmNJP6x}osX@dsKiYRwG@6gNo0151H)U^YslfP7xmS-_0e&S~rX3pyO0xp% zaSphF6qq?%Zca8MzW)I=_U44jqssB?)*fWnJYf7r_UyMyq;g_e$|C z{Jur%$UyMs{egJ+%u4Y9A&w7Jo$(ZWkm9QXRqw^Gl^<&1pTu9W&a&{=V^Q3KzqTd* zEG3X!tp^ux1GS8_zvm+*t<-<>B!sw+@64_{}# zc`wA<0>MW+tdpq^I_k0f|0=|vW`W_p`u>07yN=HWMe6>V>K|D9g40p|)bVrbzV1jj zWT({B{lY@fywO_bTYEQ&pq)b>1|zZ>A>_`X?$1^pYEtCct?qp&kyvQpgw%bj zzjVIJLx|Mz%WDQ5>2vo*hpXM|T$QEH%7UQg@0J*Hx76}k^@pB>enu5JxpUfHQ0p|r z)mn-<$q`fCHT8)E-kT!MRdedDw4~62p3V+xg8#~O$1ZZu zw)Z*G`ewTyij%V3Y*Fa;BdQ3RtsQE;jJRqx=HzC}qS?exRI}aYZniI5VpStivt8|I zrWBg(VnzWy%){4 znFONQ&PTI7j<{^LH%4u?X;%it?^Uw}S7OYT>i{&9Jy#$6R!}uhU7)Tm5R}zCn1+ga zoEd!9vZqw=_&K$AIMUQe;1g9p{J9WU(Ez=b4n3{eD%#nhpSUTYias*XkU`PUQMHaj zvER3f;V%7EM_T&Ea~8tx(r37R1OLJ(tCAaucd_!=zVU6hZ~VgH3*;LgbENgYagk*- z?$WVq;2R03RsB=;4d!IuxCXv48&vX*r`^7Bl_fUk8;?7DfqdihjTwPq=vtPnhHOgkQQn;SY|MCr`M;k=A>{2Fpb33A;nL zOQT)H8)mZJ)h;ko7Ktl|S(;A1cH6_!n z3{G!29Eq7fLxM{Dq?P+1FgLvt+`VqCrQ{6CeR6O{^@aUP93dLNT2r&ZN>4-jh&t@D zYwto!(@Y{8^W@-s?7shco$5%m6;B->oLT!j2V&=iL0BYs`b?NI(XalOBo&4!&%oci z(att?ZZHs}NX0b|TbLdgS2f{&j?TR2vsHq`q|OM|e!ywnGhyBNmNCyD9nL{rm$|Kb zquaXpF96pF`-@4+F>LFubXqq|)~!1h2BrEhn$UaE5N9t z?hBR;4h+FxIScLbUuU}<7=$hH1iSXd$7zS+!@fuUEAaC8;cfiE5&Z&5;wRO; zD2XcG4qD=;`JCxjJCE>@#h(*=`KE#F-!oxQspaois;lnACr92rByP>??qS4L1Lg5Y zQ5f{b4t%u1aJfISnFI6jc=685O7Gs^1?-=RnGJgH@8utj=I-a6ncn|mKsHHVqkY#% zdHN2Oiy84@GKy$GnU#TWd}b%HCw`e_C%igQDbkD?*4e9uWAvC=d^ z1oy3yiOM z?GStg@3iiP z5Er7$R(u20Kch`*Z+to+>WI1`fb95pwRhv=vsl!~%(Wl?RE5lpe>@M2OoVEKQdH&Z zRg_UYg%PMy{LSHM--NFF%~tgyj^}<4)8^z~2vo&C-d81ljQ3P3uMbqN{b_}`5pG+V z4hAZ}^JY-I9}E1-r|8I!DpFbbZ~TXwjiTCCEZR4hy?w=`T=t9S=Xfh0tE&_z>;nn+ zR0Jx!z9_^|l=yH}ptAbz3h@cpqw)@vf;#8=!2-NhS<&>rLGfo?09S+p6_ruEYXfA} zC4nkx*>}Tw=o(eG-us10aViLbT_!~!gJ^Vu8Mt@<$v?Kz^de5+&b=qKS!r6`Rm|Vh zPQ!FaH;d|DSqwDt<6eG&BUyFno?6~43r+hKvR0)puKGg zlpeuAE8swMUzT(>r@({b}e}W<@+iLQKKvP@M>XzDO z2qC3uprW=JnQj)7PP7=L?eE>cdV?jvYO6~uG9{~iiMC=ow-qzUwsJCHLX~aB43s7b zBTIy(St47SGe}F5M6MJ07g^d>2Rls}q@_pH36>sF0xZ2n2_qQbK3ivi`?wi|>^y_$ zZQLfqu}X0v+GNshHLO4Nmr2(K_OKP!HOfxcfRkHo(shB|Yy>syq+0@ePq_<`nHYH{ zeLk?q)Q=-^EE1I;t=d&grOfLT>ENkfKw>i`z7&u*#G(fX{8J;Au{?F&c?(<^e+ow)U2qYmRXKGMQH~FUp{a8Ke?>{E&H;g@P6T*p(Px!XrKW=qe`+TYw@PtI zpY*$dDk0^)Do1Ne$K5e;vyLI;zTTkY{#)os7}BxfyLugEDGnXq*64U8ZtA5xOUG4c zYrL`V(D5w%isu3Q=j^x&HgME*H}sI;VXPw&*;NQhYCiTorRL$F$yLaM4n%NO&7>b9 z{T3QCSlck^ZN%&Ufbro=()KK@!1@k!MFIO?&ok+THr=2sCbH4&x3UQO(rR#|FV zEEIL2VBNu0zp%29hX(5!s&=;Ml&-opR6W~D2a%ric`CK$WCsgnVJ&FI7Oa_OYe8wJ z7SyYi7Kq5_*Z8zdyOVOBSJC|MKVXZsgf!_H``~@oj>9I2>uAY$5SQ@(X|rMMpBStZ`_fodbC?rB$dsfn}#6X~>}{}pnIt-usJ?G!8; zK81W04}vlqo3{HY@pJl$8qM0%cyg|wxm^SwM|Tf?1k-HrWmsw2x%XCzYHFQ2<>TUu z(t+sjPT0wlSi=qaICx z3-_!RNd=|iu4)5fB9sJW>^>ET3bI8--UqSxtE<$_>@HBuQ9sU{c{4d}Iz+WBwPW*2j z_^H?}?h4oga43KuCw`6tzoYvv*PrdgX?Lij>+qakM=v(M)a84vpGn_|PWNh$Qt{_& zXA|Fe)nBJqsq4e#bEwnPE1u7z6kCqTPTPC=e$|id$e~Uy(>c`f`Gq%?!*qA3E8oq>=~D6Q z%JqupdbmTK95)}Qb^N8mvtAtP^k6!N+nP^TUKy|MHFS2!x4m@vCpz9#f4}NyDu?Or zP*;Awe7gKz@m!wQd^;LH+sPg3?BM3(w2t2^-XxFd?od~bn~&3_;@6ey70>l>hdMcK zK2GcSi;Xvx&vbXF(<@&-U4E~4F3)SeQt?kTeRX!?dT>}MpDw=+@3q{C#;>clS3K9- z9qQz``8ciP*Wo#zJM@cRCr5{8Jxp}w<8Y$z>-6-B=X$$Cog6nGr*-^Z@qWwGmCxmH zSSX(^zgN6heI^>eS9|FAx!&&3FMgdIulTX*=d~OiKbLQ!GarW&g4s@b$I^06#i>2Y6NhP6MoV@DJnLW;XzC2HZ;DJhL9wo5M1Gq~E`V@0!fS z_wM!v>_gwbvmUk=hh_XoyRlt3EZe8F_A#|Xq4aY5mbQJ%_AlF?`!I!Ne<=IIc<=|- zq1gVot;#8OJ^Yf-_TW$_m+2gu_=-i>$(<RHxv+s-SM_)WCJ*&6;}4gYBPW59bR;C{fP0Dg3M;yugaeayk{6(2wyj~S)DJ8AIT@7y8l zn=hXEyyh$OZ`=OB?Zly1`*S`Hb@@$nUB2xF|7rBMkKjk@ZUWq=eymPb?JvNmM#1k4 z+{s18AE}Y=1y6O_1h^k?Ab!J?A8v0BONIBle81(5SG$<%xuerd)o$f-$LIWL>JPeh z<9zPWFMgeziH>J`d94TMbB8)PZaz-y_=}AFrm!ruv!ae(9l;V=CW7 z*U2pv-lQ+nIn?RNbPfyU)8*gM@cG(vqS&R-`sAB`Tl0Cfzu)@l%FnkPUH-%!;D>-`0sMRcJYNU=6!2TXUjT0d_?ZLV{Q!poIvn|Qcq;2m zz%_u6Ir#e#Uk|ttaFqkk^>l|^ezEZ<%!WRIYXP?c_!$d+CGwvMNCWsGIgF1W&QHx8 zA!Yy;0FDFjqr;yDo-iN=Sm)q(;?Hy7*CT!r;P-&PIq(}0{|I0c;4^@G0K~&jG3bvv z*SX4W1IKA+HFT|pB=T{Uj3uYpWnIcw(=)aIVO6s z+tXCOiC%2|%JRpTKbPBM>+?MK7Y=pyVmgN=J{{dFzR>a}dVa6=@{6DC<_^8e_bb1y zT$Zn+`-L}^W1{QyFy-6c={mcV3U9KvUwWC!DU|M2&qB*9c7Ct*@r&P7FTcvs$>H)j zER;`|-!HsLPp{>e- zSH_oi-Zr&QzH}2`vD=x;=djr2mF1V#Z_D=g*Z!t{Q*8QpYfr8(hdTY3&Y_7z?S>IoXBLV!}uE9S9{G))c0=^BfAIR8s z6gkzvO&bNz?ZF|-;WUS3{K)oVyKp#O?b8QeI_E$k)&lMZ@Uvkn_-jGC6L24ZABvAA z=d)YEzY3bWT;l(M2LCwl-voRQz|ZT5zYTZ?aO43(Tn+dGfS;EUZ$Q0v1?=vqpAJ9W z!Atew$B94GBYr;zKl=lRET7Zvkm=7rM#Diu%m!=%@N*F29e`zkGXV*}`2c?0@;F^A zx=yZNc-Egoom{4KXyPjsT~}_g@x``FvGt!Q^7FN`-+Vgz`SSs8`8qt$UmUW0PIFjl{6jkl(K1DdF9W_0;OEQ0 z{|T@=aPu7a?|Z~Qui^hM@Y5mJU9JxQLX{A20=_j#h^GPk{1do!NN)l>=)$K*!A}8h zJ|GI{2k^6pNBkig{^Nn~0gyg-1NhP5F9XlV0Hpgj0nY$_1K`IG`ZbV8@*f6}{9ge0 z`7q*C{#O80{__B5`NgI$YZ9UxunMpmz>gDuwgb=ohC}A(G>2t;Ve2=xBZuS7o~### zUiBMmKCk6Wbbgba@}+NUzVT-FeCw~%oAYzHt@w21_=V^CxI@3>dzHg_j5Xg_^Ls6? z%s;W_Hucik+8pMfqI)gRFMigGL!Dfv zbExAh72c#*q4Z+ci}mABS02+j+*W+La=ha6)mtaG(EK{NW&FfikCoeN$80ZC|1bN+ z_Td+%cHYtHrSkLfZue5zrCjdzG44$CcI5ua;Y6=bS^sU*uT1`8q8GcJOy!&C#n#U+ z`CJbUb#j@`p^2|pbe-HXe%tihiEd|;|4#J!l}dk;T}^bI-llvex=wBxUmh>mcPRAR zA3nGz-X8^2<3Gu!0G0vHb^JfsU7-CAP)z(Y8u?!E0qD$i*vp~6({{zMpIbhs{cb0g z%OT7Ed`O6Y06x`>cOU`$Yz_Z&4gYt5e+uv{fS*Z_xfh@baF|0r>%k%ObDG2L74LWb zO!7?h?bXiZdX?ut_I(P={xClM!P!R6xURjNJkEHr`JH8LE$&s1t;urI#*199dice! zlj9ejZLO2XbPi2?#iHxvmhozQE3|zkx*ZFxzbU_8_A!-HDBY``g_c+B{9fy$<1bWC zo!nC6XSd-$)d9x=P66=KgZSqGfp#Iz0`QYY{0hKLfKNN{Pa^&X;7!0k9rzg?_>LqX z4mcmc58IPN9o|IO?d2?wX#9i`-w3z|@Ce{(_*rE=Q-vVfS&{S`N(`BZU)=| z*bLyO;Yj@c8K4z#B!Hh25WgAl7r=2xF;$=;}B5q^`VTrYUGCx=`wPIKrN-fww+=~b3fUMH|`QdstfvOkpl0skF_zTkxM z)-Rm8QCz2AvG{c5mGR~A!|8Kne<=IIc<=|-!7qRGTi)CXy!Q)O42T0*egg3gjx^)F zhF3zyQw}*lK>UcxTsis5I}&-8jUivY@=t{9vjOJ-GNY7}1@0lh=Kzo3Kj-=;<9)p9 zTs=0{2yr9+(~iq~68~-Y0)W%MLi`O!`mcyr;`=96fZYJhX9};xJK7%tnD}l2&nHIV zt85TrE|}TJYQn_zYn3 zOz-8hyi$jIz>dj0?CrOnuft{+&+^Z1mqON2d-^BO@A{VIjoiQNX!c0I3%?V#m)<{5 zn2qn>0`3I-cMets_>bL6Ko#Irz)C9d`vHgh56A9WY2W%4VQqXo*1i+9ef|a?Ja-{{8Spj0D{$6D@K^O^M3$z}XR$#2rL zP&(Vg9r`8LB!|m2@fAwva@?U`a&>ZwjpzF4$|*KoSFTq)>uCyga!vV|uFGG>Z++fm z`*EnV7t`ILU;H{brNVPPi(NjK!=bJ`rgLcGD;8ZRccS2nZNFmMf%WH5S02+jH1Um< zuFI#xoAlA;D;3_PuZdnNy~kU*COetvrK*ofFB9D_y}29?b#j@`p@~mN-(K;B+GV2T z&sWcU`AX#v+gd+Uc@xzRe%H%yd8M*zvCB2t$wV)*VV2CV3|MSmo;SmGS=e-?BZ+_T)ZH zVc8$b{!sP@^LuY>qwTf7aQ!&c)w58#POewHNe{2`%KYVVkbR26vOkplq3jRkd9geW zl*fT$i~~-YTbpnE<}3Si*`J+0HPQWn>r$$En94WNOQpA8<@#MelROjMuX>eA&h}ov zQrWd!Zh7A0zC~f#AGYofY%86eOmtm7ulQ|Mj!rMX%V&AzQ2F0@w}Z|v#w-4d7Yp$d z!1I7#0rch0Dj!|FXOj9E|%?6wvV&Vl>MRX598S%ST~)YmYS~9ONTe< ztIJo$kI#N;YR^*Bz50zwU$64UEC1jn_}w?a#g__kJ%FF}z}-Lq+~y+S*}fcdxt!+E zZ~P(e7or7l7~t0cew_I4YVb!m@TVd^47d<*u>=1b#QzTXH(>S$Sh|Xzi}Xc+4SC>O z!7~~^+l50efzupL6ue1a6Mdr8v#jU%oVRwgcH#b%Z@8n`r(EB1KXvwvvOjFyADp(z zCtkMa*6pdY58HOEbX~qOer)YA(d|~KKNXt4Y`?AhU7_|h zrK-pFTCU07CVH{$!sX{1>h$6K)m~eRcVYjc2{w zp{`svAE$NvUhyoCLtTERbGWVebme%(v)&x)@-v;oZN+CQXQI+|dKVj?Z~N)=D0P0F zUOO6|+krz}{h7|8j<1a0`aZE#_A#}aiC%2Ix%_-Xoj#o3L?5qwI=v@4p6%^5)YaRo z9Oj>>@^pIZ@TU6e@)aA;dU2>LkLeuh_`Kp-9*4U8Oy_W0@tMle(aZSpIq&+_F8TVQ zU*%17Ipf7%tVh0~&hDIltaM#IuXxtOYp5&7s~qN^sPc4r>+q)f>hcvE&w9B-UAb;P zPV4x+;{BHAwfr*w*5_YS`y799{Wk{MP4Roqfiuz5Uk9B+o?G*-wWz$urS)a{a<{`MS`ra&&TZ z!Xv;c(3|S6n<0vnC=dX zT|akurnF8UT|U40b@Gahch_%Qm*+0uo!05&=Hs;A{C>&P$?=NkdgdGIYL&99SJ z#*b}3;?-{McGl(3mrs{phj+{6bg}tO<><;U<3~SF(%FUW%%P6YE1u=KL!BHqAE&+Y zoAT-8mGNc2A>S$c!Pw?C?spvO?8tNub$nj&EYBV4 zbEqqi=^X0#yy97&JJiW>^KsfMzbT(i-bBZn>dka_SnPVc%QK~Q`snic&F_~yogA-t zUA=X9o&0UZ?^pRcIbQL)dh75y`Nihfm0QM-ZQWHWyRo0>%AY87*3%v8>QyQ{>!&L} zUpn)-!?DWMg)|1mZ`Am0*I)1Nsw_Hx^h+BzLTIUA`R+ z&+WjWuKrBtP{-#L&+^=%PL7+8(_Z;a`E>Hi`0_mk`A*pn#x~D#zvED6N2YVAzuZ9BY2B`MmO*^fS?Q<#9d^b$ou|xf~AtlB<)$<#4Fuo9KA1 zABUx?50}rOUwW`S4*ill-sEuoIP^=uV#%8*a{acW-}Tn%$K`OSP6-%Dqa&`6PayZoSZLfH)H;1LFCzsD* zsr2w#F6+yo*Zh9*bNL+lE!Qu3IytO2hdMqT-jvTo*U2q5p7r8zdo6Fg*Ng4XVX^h~ zD&M3R(>e4i-zz_t!=cywI{sqGW4RpqU4Ef*i=ChA`_9!uOut5mcLDYX@WbVESjLZ! z`z~EOnA)k>^zo{fsopxhi;W+zdih=Nb13r?vce!qPWj#jsW4E15>G5L6ZKdaUsc%`2k^Wn@ zM{(@omtD7&98)>lD_vKwV&i$-)s+%&FZ_=w!`nJ-a^)!V#eN6e>bd#L1(oOkT zk3#u$`Mu&z`goN$-uO#hKflZ0*78i{6`QW}CsVn)d|vUUatfvE^fAfR<@1U+l~ZiG zPG3{Gx_lEIU#_=mLAHZC9B=K*`uVNbUDpfoHNf`(&jR>4{01Rb06qY?2Efnz9JpH? z_g$oDJZI_2STP{HY%o;vB%a zfC~XneL{$50Q{KfA3&b(0Cqy2PdM_0K8ibWz)C<2z|Sj)zX1qbC&XC*esuWvgXc=X zhXFS@_}LyDvK&rx$oSwVg_sPO12`1G&-sY218e~NCJ#LEyaM%oCdfUa0!5)KO_Do;2px3|7#ZiKM@jtHGueM z0Equ606)d%CtXN?(uMRVT}Xe@h4d#~ocbSfn-K2-ECfUV{5bK8fj?&q^fu(_0+4)n z{^vg^#IFIHFBjq-06#kX5#Tuzuo!TXga16lR|7JDbq@T`5dRh6*MQ#wUIqLgfS*ZM zU@Zwa2+#)Lrw;L5E&QQ*;9mgGZvn3Y-T=G>_z$3JgAjFqLjfHCeu)290OJ1>fcW1A z5dS2LziAutlP;t`=|cLGE~G!{Li&>~PW@}J*P9EN4>-oL@7o%Fmr?k6oaB)0!)Xq8 zG(6XvLtXuu&Y_O4RCtqKCVHv#9&hEE>|~<*RUcD1Cc0mGj5j%^dYkBe)yGthiSCyk z#g=2LN1^m$>p$M)v%NUf>Bn>qO?=xso$cTbb@kTa-TB?=@t)7CemZ`?@ME=~u6&lK zqfZpPsUD@Kd$l9$%b_km(>XNp6^pKuTgH!kpEKWfDixouy-fP(^7)15@;TJWWjco@ zzGBgJavA@b%Y^tm;0eG_0WSew1@Lny&W_##I2jNIoCg>J@Wb_UhdR0r&-t1DHogxW zzZQ3yfM)^xFdv7E|1-|M-UPe@5Vzxe5HJm}3t&&c0>DxLKg9o<#s5!)#9s{{{uuz` zUkKo**!-jm=})?l{-g`(Pr8u)q>EGkVWckvTnV@qa0}pe06$LpRTlkLAL%5M$|af3 za=(N0lYk!sUIg$%@!tT>|FjV60sQFjmEf5PmF`w_Hwpm2b*tqI)fGd*wIT$wc?dE~au!bief2 z(d3xyYNBti_TqZGLtTB{e4Ngge|zWC)vwt2eA~e+0nd z&-U_~Z=&;;y56Sp3#E^@_A%9Gyy;tPeb^qlP*=W=pYghUUhyo?9qQz``8e&BztDV~ ze@73;YWE%8Zd`wz{fdp}^4+1XTsI%5b^KoOEYBV4+`C*M$4t}egd{3dy0rR(zfh4*ToVwdYx zpJMa-Ro}9lk?+yy?4fH<#(T}DjOHZBLGJfQ|m2W$m_`KSc<+($h95)}Qz4Dv#>ExC1 zV;hgQSG$${Xnc$#e)$)-Cx<$@JnQKWb@JVOoHp?nO6PJoG|6K=4!!c5^6BLHg&!~FvmWkHS5M|M z(M^21{AK*;^E}&=L!F&WbX`8LcvCrr(!J{Am7n#~g*ti6Z=##{botA8fA>Ay4jk(2 z%XAL&b9g?HP5(>i^a?hd{3yYq8eC#TqWE}uhPc}(X}$EU-a@@*?R zm&2h>-|>c@X!`2x$MxXQ#5Z2)I=%eDo9yFPIb}IppU1f!@(p$N%r`&tZEHFCmRIH* zecw|myRg5w!&2$vSGhVlI()I}Zz|73AFE!R&#U}=^XcSH6g<~6-%wXC&Tpbm6h78d z7v@_}U4F)IYdQIrSLQ42{G_x0c*C&~~Ml%uPsUwF2wPF|sO zom{W@LiI4^_o|OqepC5{(!J`V<1bVXQ+{2!e&J2!7fRpJ^wib2P&=CP>&o?tHtIKRewg#5}+efcXG^yyDrv zIb=DU=CF+4HvVt2w_o%^<&?@F3e`K`{C@G3%1#rd+#hc10lwqT#KXu^WLA(O%$x6Uv$GY+;#E%6m1uS>qBZ!{|SPjTH@T@0? zUhPokA0O+=ayx9BcJRy2rv5hG>0a%SZ+-IR)0J<^ugm8Z&*iv7og6nGr*-^gd};f$ zsePEvp{~6OrR(H+#j_snP$$RD$7vn^j)phcgXtXV>{BRRC)X>U^>BweIc`2q>-cvx zyvZI+=TK*#Lg_lWUh%AlJJiW>^Kn|oU&fbqzVm8-Q+qOL(yP>Tuk~boIn?E6I)^5{V$pSS z%lOjHb0)v=t9?x6nCO1#QEWL}4-R$ZF`YvbU$N*qxnA*w*28Oge(@Kocd_$(ttacl zp)NnuIW+MVi>{Mf#+PGMz&cU$N*qxn=zJ;g98Z+u`&=f( zp@1epGoS^~24K16P}zUH+ToK|3-L8Tq53@z8812H{2KB3*Ay*&FaQ+UREV z;V#%90sg<=f&P4_5I25Mh`v$UZvklM0K$MZ0Jr>g!1aG-OT3$p(<$&~@5-N_^O?dS z$h^%V_jbe|a-?cuTS})5YqtH0~qf$d>doYpW&OF@4aY)|3e#a zx*U%0d9~a=<@WK@2d=tXh{N&D>vI@`HX!a*b`*2*&X^lF?Hge;)Rhsv6 zSni6C0`?5xJFWnJzK+OG051dn2AB@o9v8Be&SmTrAXVBXhA($VNJ1 zO*Ybwbak+jop!9b-HzsBZ8omej)huU9C16ELpIyE=8zo?Iifbwj&!!OLe1@VG#6{L zajkZ&#g2uV?WiLbvXLQ2)J9Sy+Mmu2XX5+X$gVb4qtlLc*sQ7tO^&p&Z?gQG`{qkzK8}YIdx-!;a=+&FwZa7i+U|t#+)%j)j`-Xf75C*+@sM z$wpFywX~64Ev#j8haC;&qPbY8rQK%8#oBCKs~u~xW1(g{nu~=(HZm6@6f0+wyP8?K zP^TTu#hN>8WGENS#oBFhn;mPlW1$v1nu~>+ZDcOi60(sYN7P1Agmt%(U7?)rcC^!u zHFwz2P%fH_wcF%YI~HoOqq$h9*+%AKEg>7}h&j~Ek-M5$&s;3jX(My7<_;Sf%0+Xr zcAMO0$6D=JiyaF!+tFMsM7U@=g}GrkI+V`rYx78g)$I}Qk6f@`B(vecOnhia#^M8m zhzw;SsqDb;P^2f>pF}!-{%}M_)+UGg!qLcJBr4I_q2xehC?3n9hSD@6B~!g&l#*R9 z5}EWscz7rgYVVJ4f$DLiI=5i45b@MdX1!P$iAGXGi)DOKGNU3VMWe%m$#_hq1|v`~ z6CX&giHBp!Oq{B}UPx>-6Nj!2EGi!Di)6w*>ETo?0=7hdI-POhzy$R>UD#-PaJ`76 z)(cb?LVKx*%uq7YACC4%ve{%}z354%ATykeM>5gAaL@Yi>iBwbLOL4hKOT|(cq-fz zPoy((6d$8>ZzM{F2B(M)3{nuuWFqTDESVkbM;J{H3=Tv8!Av@aRt-l65nCscDVV$m zk)gramJ)A-@@zfg8tAeA`0|Sv1 zoNo>6F1>E`8ZjJ8t`X6`cyu+o2F1}Nu+|!pO-EP5JEO>+NoI%9rYRV5NGy!>M^aJr znxid5im>r4Y7d8%>pVh4`upKOXgByx7(S669uk=-+T2P={F+GrF#46E!uOIXG@X{= z1jV;Dk{k+Cvyez=l|sj{({Sz8b|O0zBc2s17)~Wq$O(TCk*o~h-~BQYi^G#-OnN4< z@L

(MyNo8F-FZlA_Or(g(WZ2}&$Yujo%k;}k^`h2>CYwT_DC96&50^PB)z5U>hH zqj0t_of(QFjs6}B4=0yx6`jP4%ok6^MxnWs52pw13dPq&&>Do0{u7Bt zVz`qL*p*_+7FJyLQEB7w zFuE&dg7smvKZX;T498_35g09qD&-HRWi)v~JlsdI=x`>3fkC7PQFY{{xDr8LjY0O_PX7Rx@qD6Uemc(geIEJpTdIKD19B*I~|7((g>s_?PL;io+7|8@rY56aDZO4sEP{;3Q?%w+44B(u$zE_`3Q-YYBH3s%$#{s0 z#Apm7E_M`*&+&EeEUW=6oSmeSdVpSw3QOOCiHJ+ORcw6<$|*{6Ae>3|_Q6o}i9VZ5 zppwG_J?Kp7genl)#iMcx>yIaxXSlr;-hhtYpS&P4luW0ryu&TcqvEj`83!TUlvIf>pS?S-f zWEP`yWN0`m7Ndi#P|+*~fbd{HkmUX7IoTmZ(QH|o&1iVfs+AJva2k`4R7xp@X$h;a zgP1bhI2xKTjOB)?EEXZw7?rh0A*dDar9mhw28R1B4|a^7vJWZ!)Myy$vQX%BomNy) zIK^v8>QcywbsmLs7R|+|Lnu0REs#+G<&iY&$?laE>F7`#G&xX)At;?lfC`n@5A>w_ zsgJ`UvVw*jbbxe}5@?S>Own15JXt>zKALUz`VR*$s4 zhPC8p5098(priv}!8bezV6#<40LNMfa~c*sRKJ}`(5k6i(3J%rf;gFtTi z6CQxg`s49IiqNqewLezrs@I59u~V?3)W0od2a^5$N#v80F%2p35IKgE-mdma^hbch zK4kUqAo>&~66CtHG{K$#E-kWa(JxdK(=D7rVF%+;TF-__D+{MwT+x-+V22>NVQNSk zIlPg(&{(5X;z7@WrHKwbGrlgIO7`?%P!z|;*PUoZv+3as+y-8=220s^SgxC3e%fGR z4#gr0wT=(!Dc{F`27)lQ$ zqstMa;TBtSYqcWPK$pzWI-G)TtjnRPqKG7BC{f=jL6}C1tu$6qf5-9^e|d{F}7%qcX?plCXYy5cZ=;2HjNqDqeR|~9eRfI-oG=WNBBaQV8r}{80QX7&mi{X^a`XxAC zSVA+;ig+};m=@`@e$U2Ll)9seVOW>rNh%&k4QPZH*oItd~stn+;Kn$#=&uAZg zVi=|RNrYO^Vn~N|X~{%Jj`j~@Ux>A?OjF~?NH_8<0z-egSFXpieHqL&*sGIQQ(`z} zuSSs?h!5a&K!y}VBOubA1$$^3@8xD%ERp*fv;^uFTcAc|v78(pD0nsnJ;MpAXi_X%|F zKdd|gRgd>3X`?}V1;(w#VF)N{_06kr)zQ^~45+89O|OcqUm?$DkVJp8V$YiTZs&(!HOy6SZpcSlX=SZuJVBo+Yjv>ej zafUTSQ>);EHHu5Uda)l%$w^)e#^bA1Ol=@&;J4OTGAj9H3`;nilELga?UK7~RDJRJ zFatCf$5T3L7m+pj$XGml1-|aa3}(d>?SVU1<65i20*R_aNdJ_ zQKT?4%ieA+%&~w)|Ae9xkv_c)k%gyZ;&F;B8RR1#WiskUwB}FI_6$*LtB9SRJcE)r z-ulEbE6FucIz=lc%p=&!hv9BAg#k2`78v^QdFry^{xp`%v1FPKII*Ekq=lMaQ4Hd2 zctlT;)9zBjE~n;@G4eDFUBfu>S)0NtCW24Q)5wQ8DT6Sb%%(xW;R;sD1Bl|N0_!Rm zAsfvkRorS!47_n#s>j#S83r+_b(+Yi?L80)jF6Io$|$=G5(YCAvGd>=pG2Y^i?>v=dEk+x6KOpQ3Q;B%4uL~lTRIY7?bs4Z<{D1o_-Q&drl zK-IINF`PbP{R&T!S!mY+$Cb-_<*$j9?0l#L8l4(Swio6*ERC&22bLk|E6|?KfH6!# zQS@^P;XZW0NHJbF;4qnnKZzt4LsfCKLgO2j;^>9zXwnKbVGAA}phN8;jKnzEqXitD zpIU`vhX+u-UJPvlr&#!;-5T{Tp*AEcuDXCk%MlGGfWZ%Do5eMzZjc zoBeR4FyNT?R!~wd12LH(M(vKHSsK#d(`Zo`?*hzDj2p%kb1p%9to32qYT0z0HxLQ| zqu4h|Bqnw#RvmN4`;o*Jp7vI~SVjxXYM5{0h{@4KF3NGFGlcWS)Nns_Y=x2zMHmO$ zNE|lN%I%0N*D^R^?ZKMwTQ5g4KMl6sk*@bD)aF$1vM4jm4#B}OJnZPEArpBQ-!YF;& zPfgLmhm4+torR1@b7XM{)Q`zoHey(%pt%*Jj-zmNB#rrs?}TU(A##^NGAS2KGL~JR z!oe^&hS3<-UQafRn(SpCw9%(*;u`arg?Uo4;xxyQleqjnYjxLpDc z0}i3!%t*++7g`##HB}gA&e%1;HRz~aveAA7myNUpwoIj@i50XbUTVn}w7j&A{AfHpQ3T@H0x7RQw!pedRQV;V zECS1hWLEA4)Vh|GIhH=;5e-7@C6cMt=(8B{R#Sh&QI3qtJ@AMGnJh<=F}WI(F?6{s zmTq$Wh9weWnYF0ZYHRHV`IM0SR-7)4$&Rb#=q)2@+VRU6E$dGpTK8HRP>+=nwaSoJ zt#s{*yD@CMa3VT{Qz4x8;R9tzdnORjSrLwAaa|x|${9vpA1Df+&0#@-8K*ZMUK@|B z7OUukmTdMwWcia^Q1HS^CE&MoJ{VrxC(j7z^jpZmA45rBQsC|sD;#X@uwLm?eL+QW zWP!$=+k+EjFWBLy=D=R?^z^u zQ92q0U7hZsC8p4WHG?@ z;cgyBmA$liQ72fGP^&o9h!V7Upuw5qIE|n?$Q*)4IoZo|XgPa^<;fLgljl+tp`$4Z ztpylnR;*(QLBk(r_Z}JvBm<3IGA50oQ1T!~EKg^LaGF7fGFbcJoRh8;dTD`%!^`1> z(wAITrlhaR7^W1gNigyglhl_Y>=Y=l%k#J3YB8i*jOv0U(hFAreX1zpsq#1iCE@#6CMXvJ&~Bi57T`Q zHHwO0^=mEbFz_jqT*p{Z$ITKMQs$L+GAfFN(ivEIpDOWcIi=$244+D}H-}O?wW5_? zXWjN-oRx=YoRlZYYGEW_1wuu#>Halw+O%Q>pti(>+84p(h>gBFwp~gmUs+0yTu~t} z4#Ok?YhN5@VPimCa_GZi3a`+}H3*##C6XD8QMAHU1a}%Xq;;c%1G@zWN?k80GBq!b zDojcNlI^zWvT6_-5bs)u5L>`$@lVYPx4IamuhCC>_ z24|^)=C&1BR>bj^2yUdY83mnA<5CopUWL0>toSKujqN!Eq{1qpc6cZAq#|pQl36bP z;R9-wio9}WBr#CUj$`~y(d!^sNN3|%?9->5DTxc4C?ttJwkAmgx>Clr6H$5O9zg^; zp$j1b7nMhiQA$8DweQZMKzE}C=yfAEl3bnM_ZcZChqC45P!2gcB%KqXwdhDg4tR8$ zO{%HeEX@3fQy;-P4evzJ+h;?#)TTp8tV1}J#gR75LLbr#l7w|QbQj;`?1 z+h80=sd3sC%Q#&R$cUOeWmN7OWef#l4QVr;Lb=r`jqGM}!^~nHbED~P$<(YB1SHJ+-=3h$V!jC07jd z4ZSiV7wyqp@>n^zsUaTIT?F?P=oHu!;J_iBkx4qFl#%5eQ3J4gKasMk!4$2tI*tV- zK4?jmI}ke6C&pKk3na9fs*AWIK+`ZPGlr~&D9NOhpcQ#~iu zWRG__=){DIjQ7G_)wm%muI6K$hOL)pDi(!zPc#9E6QGEUEXGal(S%X=axjFP($GC* zC&{JlS&$FTFxy~UgZ-fh?G)vq5++=}1CY}nra)p^)h7e%&JX83G$e`z7;zBLZVpZ? zZAG&rU3u9F6`|KC)d`78tLrq{8}ln*mLB%2I4Nx0EC;l@J5HQ(DBJS{`7X{XAqlfZ zKZO{4daM@UP!7OI;AkegHbw_^)_Ddl#4<4)f#B`DV`LO72^CTM8aXj2#Bz0bd=mI^ zhM7(F;4oTlPhF~8NxZ>|SF_*)^k$LTcd82v3j?}M#2Z6+QPLt<6Np;XVNr$5n3H1I zKi~sLz3I&H6vK{uun!lin7DE1hdR-{FvqbjLvIIGEdkLgQA)Yje}uyu4)kK9T0SJw z{V|MEXe@bPM=5kt8cprA99!)a4!mm?3!e~&tp~NkU=n4^1tcm+ z17#NFq7S2d9v$T&HDPG!h0RX_+EBl;;=lqU?{h7i^Qi$m5WRmr-jY>|NEg{g(>d1~ zEb^^;x0rnc7sK|Otcto}O%$i3Tpb~Xv4gs7CNqqeCS;N(8cZfg&@HH%$0(&Hb$AOF z(YSGkSIUc|a5BMD7oB9Fc6iSZ7iTD>KQc(+$iWOptaSH+0WN0k)v1f~J2j+_T*Krr z(wa8iD%5_zHiLJ(F-O91QX52|S#oeqD_vd;A}QN}i^5JKtR_CI$6y&Ecc)-fN40X5 z!YFEc%L}kWS(^eE^ivlHh)Yt8&P-|DXbm`WF90G=ymOa_FgW~~uM(LicNcioN?kDG zOoWa#IfWS!GeHdNF?xf}TJz_YRM>#vwFw+F2z|bW}m=1 zsA^nu9?v?6aILj;qnHy$W0(t-laOQM`Kr^A6$4xbNep&)->{De*@Np-Zku$flzl>wBjX4 z=lfP%yI}6`jV~gcb-fi6tFVq+0v>A|K=dSXN`wQ0*(hG=iNevW10_0SPDe2>KvxV` zR#G`RN|HpCvX<%24uF?;aGp#`(aUWdm*K$R07)I}i}c_P&!{yV&=_Xz@u`K>0$Xy) zEe7~<2Zww^isc5*ujGWyD7yW$FnBiu?~q`qqw`dpZegJd$ABD^1n*Qsr;PLuHDi*& zHgD}p1W}OWD-xK)M>I2~9nDNhyO}AGYi3IEi+y65^@bnl>OPY!f?Gozx69ZH8s`@g zPN|A}P+VN#Rb9NL6~R&0U~X$cmtF%A5f+P1UAF9Waq5btXDkjcThM*{;%*T>`?g^*NrTdDx!_7@|=Pq167bF=!W$rPj%x!^thC2FMV=Y}RO`R=W zv3N%;l1MBjX`xoKcy689$?H#K2(>h|H^-a0LZPO%CeEOWM{_m1ipBL26&7mFnX9iK zQXr@5^q9`CY>ZIhlA3OU|iYm*DfR$55nTbQ)W!+`@;OtLmMI#?SUC2wOR zF*i02;EX$-X>7!TX715*j|Z#-pi&q1&7Np}vdeNJ--2&yj%*QXF{*$(ifwFMg6W(pHn)4pT;yqNq)d&C zbj(9K$cDoZDnqLlYVvMu#MeV8=V-Z*vz5kAsMpn$i1+j~h2kw8U0t1)$yLK)YI8Rn zP_pV6{*gD<)z;GHb)c55T%NS^)|ACr4Jq5+))v9{Byn%q66%aw%G!<8F3ZfewT|jZ1B2u)^0kh| z=a29gt1+A7=c9<0o{o;Lme#hW=C%%WK4lM81ipmTMk7YHwL@D17X2e+4|hsGK~~6) zLjSI&SZjNtqcw&lwj515TBI<`X=(IpY{YcKc3!X*JIjq%W8)$^ek8Uwi9kV}@laPN z5o>8`X=!W2m&#;8?MiFe5AbS6VAVT1nT6?dpwH+?-6~jdkljRPH6PLBK*06>DqhKqv3Q zH)=7eavs@>+T^~zSq(6``FFUj2Sd|v8*Bqd?o?;&5puPTj^?f=OukJRph7IFy-9W& z>C4GmcvPrWbr(8;$1CpCfK8zU#-N^-ShTgt7SYiz8&H`K+dP^y zMts8qLp(T+rCTWeQWbBuEvJg}upotlzv#^s>HS=G*o&c7Xw zNOXxJvv^ouE{?&b$kVC53$}UT#Mv4JqyFuprbr^3Z_H5NYjc z>gj6jXvT1bi#Rpys-?JcKyDy8?<~b9)n2ZYwrou8%o1%%w6*j^d(h{*5?xLOY3I>O z10BJ#Uyrr|NwX-S8Tw8CGE~y^9D~|k_eOeQVSXWOXlIR$jza0x1_;dRT8MNT! zAN;UaXDHg%oQTJIZ2pdB=bA$vj5RhcOiPD61r4>;MF%#LSPT2(4iMH9rw5d^gIMlwS8R5RzlE^pzFt6iW;iSPV2@EwmU&Mpt*4EBMS8GpOG~O0( z=L*X%&|&QxL(R?&WGLjgVJ8D%OV$x@YsGY!Xyg1eC}8?(Ly$~&Snn4bXToL-Es53+ z%t$@aM5ool?ITA9x=F-TAzx+PiWiMKW5i-@@n#IOO|eK@oaKi)Xmr9=NA3$qEttGp za17JjG}p)ODqwMz`-zcwp)shT&5(lt#p6VO0W7L2S(2S&)%CY*=;0QyDwAM zGz4Z`YV77|l}biRRc3vYhEd$6WG4U2BqjFKpU>SRfWWYGXHp{T?_#-mEq%Y!ypNl8w-Ex=4 zsU+7N@JAX69PT6&%w4m(B|>P#45wAN>*~8@?n1)!;s(6@%Qb=c(R9l3RmSfUpg!!x|x4vC2gQQJQ_9GlE+!aqPEA3njxk|rk4A+;?Q(S#o1bP zNqASYh>~95C_lc_CI%{}Ebj@r5rZL)?d@3cXY=?_s)KQtn{}8ST{~|y=JNE67cX9t zQ~wJ7g_=KSj)|uEE`BzWDP@{BMNVYdgdx~rQm9pT<<_dZ%+lV9RyoNDfnZEN;RzQ_ zPQdHmqqO-@CwT2(pKgAjX!OK6DmV`sj9M)xaJcvEkyWz6sG}8%Ka-(MT}#d@>BoWf z6Hn>WY(17}%&U4FTvlhjzrL_nG5_rN)9PX5Nj#*s1Vq0Hk-4J@O9U3}LubpHB(U(lV>URkHjXd4mAFxVv967KMUA(vx^)NsXJ*HBFv!G?(!sGh&!J5Nk>+(>F6D zfJ@u1OklY@5<)7b*8fgMkV}z|Vc^e=Nm=Ac z)AVT=hS_l@NqrJs32FJG=qSAwF_~{pcm4a*!|dR>L^AjaXh<(Egpw6HRV>n^Z6}Tp zwJ2t_Gv2qEUpI9aqy6i;(wDiVn4z%&Z;^FnONOK=(wb0bcT-pXb6n>XU8UYutok6I z9TUufLUy)uMdoi)TCAjB*z)dkB)#7|q&nk7D-&&r)e)Jux*n?pPh(8|on2xf!V~wU z2Hrl5o+D_pU;0mROfE4+*rJ7A!|Sp8a8;A6ADdjK@Te5hwI`+MvXa$HlI=i#0@ zuCw`6t7$VHj*%oUNlDgCJ2^idu@Lhy;&Sr+tg3)T(2FKQVLtFQq)Fm0nw=M7C^i04 zmc4W7auWPA&qY3o8{pnyR|@#a4OXVxnEFQjLE*D!ww-4ONGfgmkGgU+#txxz(qgDE zYk5QVWpzu7@YTz8rR-rTTZIsvloQZl-cNAJB>3eMVOCsMR4(grX~N(N4SG-1+;-=g zuAal35*c57V$SpeS1;VEuv~Kkbj0Is{5Y~R6XY*xcMu0bEi08Ib9qz0qC{7#HVP@->ev0Es?UKCi(|k-g#A}d_ zdX#!IcAOveh5e=|h`t9xx1pg55?yEqacOdSrK#Z+&?eiD%tnGy!Q>5?>XH=`U3Sh+ zN2S)bX~vp*8Oa8MHGgpx?^o=l6zGi&`QpWo#)O@J(dQ}tMeTo3K8$A7n%Q@3aAU2u#zl^;k>b6O@Tqx*zq_5Y zhY95P$o~6#b@e1C%B{$fHK`lBGQ&26Td6}tIj^)Q)}fe}3${-N-63vXmvT}}WgZP$ zRuhiX?Omak*rnp*aTEPJF04wIa6FN+>_KjXfy+wJ8ZMrLz%^XmoyZBm=pieIZ50ob zi_@OeW>#acvw>V>G^ZiqK?V@dO#q87#fw}1#8TjtP0N9_ZPJkmiZ145@6?E<>55M) zmgFa~_)gcA_)JFKk@s+}14fb!DdpqU-JV^tO%fbKum_GBMeF>)iU@wN&L}aH@#fg< z(s=Kc*)WoZEwd2>$$VoC9@fQ=c8aMyTHB!mp@ani8aI0w0X> zB6EdzsTIPG*eFlNsm7SI6K&r8vBAVIB^Wzbfs{)gsj7x#Y};0Hn`OAlj;bg(QWitS z-l@6@Wf+#CZSUCKG%YrPHEDkND-^@x*^7Oe;G8U+G09<|^Arm?satBbqH-c1$~xoS zuq^)JHbmabxkWDH-qrG2S1T44FUd!5z~+?XeyBvocOZ`=Fd`zOJ&dT5Ts5nJ8w`Ed z4ZJ-C;}QSB-d{e^T&<}?(qHCua&1|He@cc@Hm=Ur>VsN^r)K9U2ajvoJ|$jhhrURt zsm4RJb?#$D@G9(6tGsDgDVJ8*w9$kkTI!hfdFzORzLTOjHF}-l%TJrgu{UqK(EA zek`Re?B^Yuht5D>^|+_tdBDOEF2tWkaw_}uM>Eqn-9G1*4Va0#Amke;vf9mT_IbEv z3B2zz$F=qjI<{Yg@b=vw?{r%R2gAGCz6Oy}FU38hKsOeA8~=po*C3>LHR8cy4yEpD z_bJV-vJr`JhSYY2-$2x?XV~6e9L{O$hMLMk1BAy>dbOKZ_Q`z0Cia(pp53M6@H$4T zN&GH>hyI-pAB&_<#kB$BN6|9OiM+)*-&zY@9HLVVthCPo2ee}zUl&d`$*rbGfD_ z(cMXUzw1(eBRi2EO-a=u870Q8lnN;MAm*fV{vKZx_u|xaEnsoWD)eoWa()to_7XqY zB* zC!j%2p4NhC!;M})1A8seg-ibv3%hIGEvmlz0w3YBoEyljI< z{$a~!))Kd<(z+Gq17Ri%2>*tkHPCEk$u}N9R9QwM7}ydn5D*}>jXs8m&RX1G7?DUU zuUCa|2M*6PoFUj5Eno-Ss&Ly!7qvfRWGUu7-aD~ThHpE&nx!Scifa)SauvmK?dM^J zfHO|hRg(GVrE=_QlILwzQU{@)Y%ite=)i%j1N*-!R+Qq%gk2_hd@FKaoXmy|mCz55 zL7!-xEb|nnbR?o_CW6?$Cv_N|M3QXXeKdnG@hg*C`B0&or zrkQ|GlftXQ^YlwTX&>j}Zp%8O;#HE*$w4?*V|C$^7}X}VuwX{C12w3ptin&PK`!`v z*rIw`)YG!sYp4z6$hsliVC5X2L5%FqsKZ4Mu_dLuR7EmmAilJBbS@@&SR!aif@{_m zn$0%?pdVz#y%dLSzsuGcq!{AGskoO2RWprc6>E%KEn-GebP%t>v2%~+yhHDk4YAH|1Dl(umKP{6+si<^d@+M4c8$ZWv zfyV|{K!ZhG`Qpi&^`P?-9G`3ibG-TpkNVTDT$gyYwoAr}vsjiIyFA=XCn1-TPib^a z=j>NxR}?2a=4CZdF0UPqZ0&~-(;lJ~ddp0KGkoI0EXFQvbCQ+=0JzHE*=;zD5lQ3# z(qBy}m6slDF({rgo^KYs_bzhrF6<+b-{K>IS4rwZ3h(f53V)Go2z3Pm7R=>q^%2>u z)XfUw8;azRK%xt!z+GBh-h3NH3#}yMxV-ACt}pRJi7xZ)<;K~WhSCVYfD!RUMXf{H zYRI4gt`)!*V1$)0!o2D9!N2(-X5zQ}xHDBl4KbxEsJS^?;AF&3!~6DHtn9g4+TYJ~ zNMv|9!%>zHw7pUB#5&9Io@p_ULFqkt1!^uy31GD@U|>)$Hd_}FXeQZcymq{P)CkJD zGLl&M5fD)NkTPm0AzEDm119g+QqJQD1EU(AW1AfV8DUyYg}`=h17wA~Xpy>vqdfYy zDbbzfLuUJ+V|uiFvtrNbkB5QFsOA5KK3rynf~Hi@NlQ7*t<8#!mXUePvPYfHBe1Wa z-*AgUS&qk$@!>Z5#DF~k<&;vUgj@ph6rVeC{*F^rz&0cYDfI?Gp%iB^bO{y-KtJoT z8!)VT57|RA)`NMgyw)Q>4@;nw8hX!Zl7yf4DIC9~6iZ8$LTSO@>aP^7T={6GXa}l= z$HoB;DGBSa)BVPg&Vj*iI0#`1;Bs=xK?-Cc~6m`8<`dcw&uVnR?_G3(DTGd@!B5gnj)#L5WH;d4Z&4F^i^Ol3tgt_&a z4>@M~`tmWJu_&vAHnrrz!y}s&67(p5QUC}Ugc*4kcy-UG#lY#zCNSpmcmU_&W5)0k zjU`~aip(g-xOV^g8X>&c8b@{~U^X$?(j`wO`foq{q`Y`7SpV%6fAGeR^q%T<$U&A< z(MenbJf!Q2FcP(Q25zV=uls4HE|AzV;kr^)|8Zt=&TDBRo1T#~p>m#0>?{5Jc515| zqnuXexJukvI*7 zD;&kHu9`nf%;ebyL_X2-nr2u!>4FT>6~6yY>yYToZucygz93d^u`vk%r7}#5=S|`0 z?gBil>0`VpFU}(St!tU=32bXJ4B^g=tvrqYxs7zVnTcQFBYF;Q{OH}!e~-O*I>UNkojWVa-5 zrwlMBmPePkJ!`?W`$XnupXosoVJ=tbdzsmo79w+l+cdIZT1xiC>QQ!J+P2%`Um`Pd z*?rk8hj}AIMXlRH20);l`nQDT6V*|+dxzc_FJ90bLl(+YF{p?fJ_gF_@>C_CtIs}H$2Ge9+AD7Z|2 zA@4f*bz5b5E(|S>$7+2wOg@z}(ct%x7&JThvccq?1^Ob^Tm~K-%Q^j)%XVWmI2^)+ zvJX)Dstn^T>;d+}yZ2t(C~dvKntT6N9tN9Q?n*%|L92n-D@&lZ+AMhC92z(3kZeWK z_87YMjVgTz&F^~G^;d;LJ-(FbQje`nqVc4_BL#5QTZ zRy+>1K8hn2bPb+2uENFr3S6}uSjRQ1hdONhnFXes{DjkuWG=v_REzS$YU!FDP*Iz; zB(0(&>>zt9dE-Jzk{{DLYEvyAb>&ZZVT_BT9ZBDTMIHpdP=}|hbx}?oxeaZlmTrQk zz*IpxL0t*XnbI`1%(6zGsYny7(JMHq+o@-Dg=qJ1k0kjLgH;K==koW-j1V>MYbHg(e|I3#o+O zay9(%EWyt&KzB}X%^tVfzQ9vOs4egO9z}{bnluSoYM(5_A{xE_pwXS6JxBwJzt^bb zB(D(lSm9-ee})l{7A8pV!poSEA-7$5VOx3YrmoQfqbvoauaD+zvp#8^tP2!Ef-q(g zBO*lW{LeQA+4K|eM6A!+bo*J0xs%4R7N>^)d-5bBu9|{_q(+UbNXjq*pVmF2c~|A1 z@|h%R4)xG){ubbO;Ce?>jPr0LW-slBQ6xPWRy2cAz9Q!RHe!pF0nE#w!Zf9lG(rt9 z4;SlqdLj-or#Mw+C2}J9;KB`PHYK)ytv>kT#fOCale9ID-6K2s%)MP_>n?6@$`wRi z*yUsbiR$0n27g9R&TsD?(^{0Sg@i)t%wJeURkbzlch4l>`*ew(FA88~T069wTGULi z+eAHKm2P5MLAr^H;Z^@M3A>*eP2zgS7aV8AhR`CB*)@ehyGnLqg26|1Q~sF|Ak9IM zwy5A`PeHn~_l{+Hg-k#PjaO?HXpCuL_bgbdnvMdqTSL?@2iBa(i=DXiiQ=6p zism(7q_l6lEL>y{p}3URnktIf$kA8ia`2z%n;_DdX6<~rPlKNckbGLs$H{uIynIBn z$-{!0qJ<&Rk$t8HM?0tQ1ck+++aw=b1JuWWiOyXELEF@M(Bt06tT|BS11c z5I**Zpn151M+p#y&oEa~U(rSTkN+I6L8!{Y@@i4a^djV?>`B5U<5Pwk+Z?aYmW)(l z3Am0Gm{E!FFB!r6=b}p#cJ8-!rdyj+MY=Mm;tR0&0%M1C00K|`zCMScmq#T}FS8=& zN@)4M-{VKtPgVoG)ggsjh`dNfHc~%Qx#MA}zOP`5a79JxSAKi$85?R+(RQ$sMsQ~6 zZUF+&C-~aGA=3Y(cFjc_-t{ST4#El9Xon-vafnH4Y9uqN0nR~+QdTtB*}X#3FvBJH z2@g5lsP>4Q66_VqHhuxfiNia7mfBg5C@bid8l3Z3vOsl0%{j3Dme#-xYpvy9*<7+$ zV8M~CqLec9^JSr2<}1f8zZV7PxvLQrNZNy19iO-1E_l1RMko-H5Ru(6f6ZlrC|1(# z_dAL9wVKUU6UY`US=NIxfun0zc^L{job?EbDeH4!w_j%FRmDFX&I-+r$r*8P{oYm6 zpaTF%jo*QB1o!M8PM!0S*j%d~fB#EpuencdQ(}ebO!+K9MmdbaEXwCvCoD`yYzbab zv>oG>i52`rz{%+Va3ZPoI!#-S;S5THnUFtKQ_rQ(CF_RcgOib21MN&LFnWb^!Bs5^ z?xOuKs}2eqaUXh_xvB^2z}!CW3-T&C9-Tx=qjVN2Q|^F{upH?rZVpD?Ki_XMz8Z-& zFEHnv;1~cJjCUUd>I+;3s7g{~Ly=98-t^J>wIB0&gX;)>4guntYON!|W*6I2kBj4h zx0g{+B8>&RhviL~cX?`@2`>VLhuj%J5+PXCDIvN2c(o=0n1mbQ*jxZSQ}{beZN~41 z>pH?0N|T0QUI+C#gnpr+mVnDxf*OrSZ!i8v#K}yM-o|@EWTHpxG@d3=g0bmIi&r9M zNg3Nnfnttc4u7bhAOxzn?;eB$4cRJBNE-r|4gK9wibQToSCena}$G|wr zkO>yV1Ucw1hcRaH76k0z+hlJ%AuX9nQVWi?u+RKF13T}|`?U_fG5jr!J|JQ7a#F`;PM zDgc})>9v7WR_>;c_t(|IN3LbGp%OvJNXk&u^1B|coK0dlaDzVb;!9j~V{#ai1BhaH z#|h#f(MLIF3{@LP3l9nM5u!Lx2umm)Un{gA;JPq3Fnx=Hk$*+eyEgEPeFoNf33LxE z9`$8X<+_<|y*~;DjL9_#+=mf(3mld<3HSJ-G20n(&DbOLLq&liG>THu{H~}|4xPeU z@Hu4%oZ{%K&ImdJbZcwD0&ZEnXdvfPl7e7#hu7Wbg0|y_@e(rFm5Ku6?23l+Bn;3D z0g~rtfcwEWjupTn^uD7ncFsbj&DSmMh%BH@m3W< z1Nj+r1;!ldm*vC7SLf0mgC8b4%|>L!rfDJC{W_iMJbCRA@4KHf^FQBx3?*YpeQb*N zEAt-z`yQ}k>MB-Oh7>{NH)}iUwm{Wn=}?i~`#-H7YBVoU!AUs*I(0{kg`e%`Ttwa~OGl-j3w}H?)?B9SZ*H zLF`O<<&5bs4$s?Fs$rG8u?7(QJ71Xv)!-wvJ)r|otmst=^(B3RXd_!<=hDjAjGrLi zQ_F#N4<3Uj0~I1cS)yx5(JU+P7`Nv!dL^C*h`#vP67&qkaY$s8Uc!wYcl99f{)GbK z{*zs6vincIE+~yt6b+6i_#O1aQ2o?Qo1eY&>J>;d#g=@|bIsibTyB8pDANU> z5B0PGFkVH%C0Rbunc4yXRo}DAS~zKMcs_J9Vl-g676oAd{-+&5pU+1|PA$Xx2i8GT zh`~S4)6M4>=Qon)f33Y3et5c8Y?ZYMP%q*cDyre;mMy?vdzPYHNq1&+Q< z_JFYzP`rtmC!|!^)zKC6sTA^Jjy5JV;3X5U*;!8dp+ngPD~V6-FZ5Yc{q|9IHpDWT zHs8vgb)+SLI2kk`4%k_@n4V)<3f~23n!>27FuM;-P zxsQiKt)eJWf5#XCK0_7$aX>+}tle{ESm^kGI2m{WaD-WSrq3SeOwZ5UPwo1N@~20D zGb~)$9Il|pS$Iyf5|2=FfMJrY1yGdHx4p4`;8T@mZ~-Xa70}A59RV9%&h$q)QEgM; zB<2aw))voXxk@~Nxx$ngrk2AGocZd<9!o@}w@OFMQJ2h7?d z8%}-&SsABYjmGuhg2pA7Gk&bkp`4C1v)TL<(mOkE#_ug@3q^l*=|3w}BWe+(v>vEs z`+l@qG9&{}Xs?PNuf{20h4c>V(ko&+D3ppN3;*X0AkL9D94K2Mkg*z@MPMd7lYb>z zc;A47{_Wlp*5CZ?O77yJF34me;X!7on>vc6_J&`qy%RMTkeg1lW~BdKG{4c&x)Xd! z5-?=I9)Pt9jxxGRp_yac=nXmbT? zi-D5W1HDq{S<79-vQl?L9Fm3v;V#e2Fd%uBj>!Gdia}_j@hil8gWfja!;sadUk5R{ z|1lwXxop*xwzQtjxpYlth@x8UT1rYa#Z5RN(dzcT@iDMjP5sxWo0dLsvC}GzD|FGA zV@&2b5g=lZDnquq{gZ-!M<*P41k}M6f+tKKhTI?_TQ@YCx z)=1R(3p}(#x9ZGPU|c~ud%u=+Xd4Oki~d4Mn+^nrP&FdUPfwWWGvcwhLKT~Crz@1c zgm=bh!Mc)@;e3FjKq@7=Le0V4bi%3uq5Fjt&FD=)T@g{5lB|VYcaR?lt;o{S0BHZ` z{Vo1RXeCTLNkG;NqZDD9G68qiAUM1l#-j+yMDh+ZQ6H&35huey!3Yg^3DP1PVUY`! za}r5!Mrp4r8p$%iwruDKhjz)p0TmDM05w@?>HF8y2kF<$8$SNs9{*RK-Gh#U=s|&$ zb7dO+Tz^?5;F%u)^j*Z!3f33rryopX6&4?s{W&CAD9ngsBRg@?OJ^$RwuS+PZ_)sO zg%Y3({Ba-huSJo`&Y|&X>rrG#4x-EsMzm>DT0Yu%4(m;pL9!E7&gI?V5hFz6C`7U< zIV^}C9WaVc_K4h)ev%vbYJV&L9lnxUd6-5FaL@(O>{SlP1mX~>--<=;?6p2OA_gt98ib{R1%{D$*<7`klxLpOq;E5S zq<6^#$pVu9TR>N$kW5rW0s!9U=27PEa+dxz3cbYb6X7(eQ+iZX@%&oC&%>dQrZnd6 z2$)gIbow6g0UI)a`wZU-y@ecak`rkNJc10QU!Q*QcwV7Q(>KaQ5pH3$E_L?z)TN(q z7r}Vz=_SonB8<2gbc#g8H^nH`$hwT*|D2=kE5#^o=5(8)w=%h@)L-b4s`iZ-ul5HP z?5uP+zJ54;gOUC2|GZZ3z`DDAGtb!Sz+YcGU%(0pgd+-D1Dc8mx54#7%~>ssocA8e zU78TK_lBur3dgV%xllx6<88!JdR9`yN2DN11$>RyiN47Cj_Z;y-H2GpRntlE|XT1>v5aSbV{%z~^mnWE=<^Y@1HR8ej(jRUG5OG4NGG!pABEsAp4s0-O{?5@>BM&^MfZq(oRg$}BnF@g_E3(} zs;21?UO%V~s<8gO4C*R#v0E)Vs0C6hxAJQi90Zbrm4xpIfcRV0mT8D>|I7VNKW$l5 z17&E83*C?DqaMaCi~8vl3PKW^K1knN00H41veBhvp_{_hwjr3ot0=qc#HvZRNrADG zSbl;Ja-sZK54Tru$2(=A(VJyT+onXp%r)?`^zI%dX}eZD%BXcZ=-c~I4WOu4?`N1? zfV9S0O5RR#;ddu(VaPg2OE}j;29k!)B5O3ohBU|D7X{x6H4RHrMacU z#G1XlxiOQb`47*24y^(zx+WtUH_#T70{iMtR+@UOE4u_vMM|Tbj@(?hSTn|w*L86x zTSH|+192R_rQY4k=xOH*tA{4a~%2Qw&3 zt3y_kx>`I1T2tK=7eiZ<{Jwp7Pb!zw`pSA8(#l6#O{uPonNQjM z7t_ESCGenCEDIfHNR1)WPUhe4VG$%7@VvAqM>tXy;~msznz+h; zuKnJ>b-uhb75sif5BrlBHfkbEq57Cj>2`_xG z4XGf~dteZ(jp=K7(Iz@|;=RB~Bw}wNn|kB^#Yw!hF-Y4Mr4$4tv6nUuuYhP0RIBWy z9#=QFdjocq6%#uM{UagY2@tGJ!tJdvMBXb%@D3tTLR`UtL17}y=Ik}hxh@)ni8S*~ zT7GZ80n~$Cwm|Hgzx^VfkIQ81%^g_hO9-vrS0a_T_{7XqL$0(U`BDyI%QkrBTpuN}<+9QENrjK5- zL>&)QvY$XTMYg_{_sTl(bMUd!u)FdV2gqUv0tlpNvICWpU&6nP#pl2 zK!avVb@KqeP|~=8txF;ZJ>Z!wSu)8?E^8a-tt;s83SJu> zzc7n&Mm{)(%*8VU#^dQr^DAu}DHAJ-ek*-2iR2-06DrWBn9P!{tupT9qbmfooWzUT zj_JSo%`Zm{Yu zO)TQNFlXWmj|yvzP%RZC$S{E$3DyKmAkv;hVET1pkpOAcBEoB&X-CAYZ8SKf+^^q!+U)Y4G*pXDAh2Ujl=6jGUF8pGmo*XcFiVk895{WcK)_3wDfB#1wnl(n0ppdLcs-E|$TK9-|L0@sL~H)P#*cGy!=z>s z(U?IE35+jG6d+ha8wGrJF!tf*=9bN8NMp${{>%l)Y-7s#3>3uCCb749ye@YkC&mmY z8ehe0cml*O{6E^~jzsy4YuR1AuTf78ID#z=xA;p#20vEmlbjSp31x$tb^OLFyjO~!_Vy&)BvL|*&-Iiw(e8srM?+J8 znLpR!1o}V6b#LqV=BrerzBtf7vhE9&z%lIOi?pT=9$ z&4^&QK$|QwSn?u%O+MZl6~sO;Hd<}b9JNpVJ=V(uar_bbJP!n#O6Uz9h45w~HTKj8 zW_$%1FD?!2g%%k)w_N_oX~qR#1&RP-NZrs_n2cFGu0>D5%l6M+uYK@+wO0xai}GMx zde(xpRe&pGmvVI8kaR+1!#~iYT>Xl}C}`14BF9fqN*-{gk(NQHUIfwOS2`EqmvgIc zpg4dlAlKoE)34q>(+aV<3ZP<;-k**@6XI$FvmjQ}*E2l(^K`GRyB@+*RfB5*|LR}U z>lvzZHnXW-3)XzU+Yh5L%K9W2g|RBItJ)?{HiR+uqnx^PB-rl9cd7_2%bTpiB+ct^ zKcS*TyW;@cV=9EFcOOdYo{kkOz!ajD)e}Y&yvLV6Hw+9gQo6uSbUAHCw8u)Qh0A{B zg@Szu&CNDDBP@}l;tLmRKqQ5MutRJ=?Mgh`R^lwMxlRMi1w=Y9Gdk}9HC(0|b#fH- zm1jaa^j+JZ9)v>vf8L)=0>sgVm1;FL^A=T4f8l3sIux99vH*QeMU7T+5Iy~qOAAWG za_G9-foS8UH~+-h5Q(J({!U;~D%^WH;Q5>zIU4ZUHuR$DJ1mV_T4rI!Q`#)&;8va8wPhEh#HV(tdl`5)|`s00uuiq|nYl;wCA`v_d@z z_Yo8Pq|l&N(IPZ(nFb)C$U`uf7fVB0GBeW9qLxO{ex=D*Iybw;?Qe+0^0aP($_y%uh@E{FUm9o5 z+^+TU#hptJ6*>ZOw9&hnzQxg)^fk2GIr#W%nx2b3^Z1AH(MTtFg1l+;(|Ctb78#&% zD$BUX#rkHUC%Q|$i1C$(4Uh=zV zON<4^l@`mK2LRgm~LsV^AC9qb2(E@Dp_*xd=Ut=u;5_|kfWQX(&kWt5sxCR z4MqBL@XLb?57p}?9Z2U@;pabNcSUd*DCWXtqoFWfrH$`PY$DSixV;vi6HYA^v?MPZ zL{JAmh|m&O&wPQoU0)+1c)Gp8h<6WnBN=FG;KCUt2imOR5$~7hA8P2QBj!g_S|ozV zlSGSNT(zj=1uB^6g)Aq&5->gc!Ltka|6+etJ7lihRrVzEz_6;2{TS$BsvCc;ViST( zbt+!^Phh#V$lpAg{^!GwI0uoRq%dBT^a=^X`CrwWZGue*A$!b<6m`l`%aqealzS@=v+v`u} zZX|UnpK5{ViX&oWg^VbVVtwTbw8o**FQ>csay35`M6Nj=CxSIJvJ)7k{wF`@I>MJC z^@u)8>iUwhZ8S6z3gup7&9COQlG%JVd*Jgo^oe3Rm;sG^MOA~MD@`Y97X+r)KgOT_ z_8B%1f}LfHu?Mf;cXD4!k+Kjw@>&gY5oFuxti5^#W;aDjF8$^8%m4oF>hE8@`mgU^ zUG!8?7wSal64)A|v;KZ|+8pa9qL8YwmZV@959E84VjGeyocG~+ujpa#x{Z~OBjv*& zDQTVb&m@yh7!DmT`d$P{6+K1L>H0x_m1cmUlTP>}iPIdQH>ICC1{+x{ya>xCx zGL}K$!zvbFTGG>G!XCb=e@ODS`MH1h8n2;!J7-ehn37Ecej@dE8kXv)eI`)Xj?Rd7 z{hKe|`xb{2(vOt>kyZ!I1^3C{+Bri#+jLu?y_Cl_w)y=H?KzQDAg$APWeggXy1>09T{)(ilj@{O2!)?uGmY;l+0Hs> zt-12Y+nXQXN8MX|ev?c&x-=99!1)7hS=Oo0OjvKHTiRPno0sA0>upXCM{$5b?Xy&HHC|9~8z36v1=72NBaiRHNbKZAP-l z(X`7HeF_P#p)2o%WZGW=_t5+(y}e zb*ZtRHX?76^?2LUspAhYyHwU@- z85Ovs5cTr@?--%`f83a!V9KtevF`hOq_H&iA-gXRL9l;I`7kSHf1h60;5%s~uo3yEb*D$h5FXTlD!l`J2#FpKax{IWv4JoIG7 zG#aFIwx(GdJB8dO6+z4wu^3R~4uvWIbDuG@Lk=7$Z%T7eASPrr77Hl;y@XY&a(Ebi zm{a51$;35c-=SAFaKzeI#p$poKNUe#4)MT(tnQIJom z3+Xsr5=(V&eWmIBJzmoH{MQ^LKF9upJ=b>a8YVQ!>C=q!2!zr;|_xH}~k?#F+2!6ElJAblnBXLKC!53{(Ec%%+O z3|~O8p@ee@$F8mE*Si@B-~Wh|T?>or-R57=-UP;I%nD-)^j{oP9uVNyIzNo?^%t1%#IG%`LZhXRSgHlmb z^UFK>)coi8hdw;uQG7cFZ);#mNu8xnsW+Ag;V%;n+6Uq9H3)#elEKyewN!2=k%^j+ zWJH8cCUYE1e*-V_s?(rqd;dHnP?|m5us#a>ZW^P2oQD1zZm9e4%aB}=nMi1FI3mP@ z^i_BvpDH`zuCOQ1^#@wGBc^gxCs3=`(dB(tA5l7Z_F7D}Eg=rHFL=Ah`o)kOiCNXMZPh{TKMBwHYx~W=+S9`;#NDnR8XQ!t?w}-Oj47mS9DkTZv|+Lt z^zXWKlJJhq#_A2@)N(%{UiO>Snw?$mxNEzuclFt~Jso&Oa%*}+UT!4+0@R2UMMhie z=;b(MgUa01-F>0tOqb5ebKkQmr#n*tYzGQ)DO69GbIg^!+A5#(WWV`v!GoR2>IT#& zVozzfe_R9)w%Eifb|2ktx^8#KtGD!Rrjt!ar39rHKWs(FZ$u9XT0kSx34w}1kNg$s z1(YO}>6y+97Pb<8jUV&8^9GG+#qR7^cTaYl!e9TQ85poPUR4%}lqmyM7@lr2(L*$IjWorJH#y18Qn$rjXc3gy zF7crgx=pl;z}AsIL3Jm-lnH^vX7kZ#HtC1c{X->Er6;8u3g$)0lud1p*ii@3OZ}RM}G{0(V7KhWGOkN1VOT#Qx_K zIyoj-ix~m2j3_e4G2H}oT(&^?i>3ZuX!(1tD3cIcJ3rojL|4oeb8BS#X~OLnZyRut zFW-vB+b04l#cku-CqFC*yUTS>-T8(4d(pohM{HzD5^JJOahUN{%-1Z5f!XaXH8d0B z(V*Z!Rcr!fMP$?I*yTWH`)s%85}H@VIr8 zO8@P*x^6mA=un5wTvg89)9{{V$-KCYZGTJq`#DT`c{8zkPK1f9BkK|+Yf9EfCc%od zGShqN2h2dA(>a?Q5e=jxGa_L}^Zo7JTTy_xOD*8LdU*d1m5=E(UJn_++?>=HBWHog z9ZXY95xq|R_p^}14^EWjY4Gp4{f^$En^B#g}BAT4938_~$1SSaosFREBFUa&||@TZJ4 zPBbNkVWcl8PMP$;3XQ-2agT%VBm+tRu+wQ#V&MjK^Z@D5I@sk1nfV*|B#bvFNZpEn z7yfzs`(-YfuE(|bT2K&y>kgU=>>~X%2MWA8Sld&U={YYSr8er~q=FPj*b00%7C|b= z%WM#7ghcR))#*|w&<~L6EGe4C`A}c-$H>ql9SJ>h_R?%+8Fh%!T^j2jSL^|x){^0Z zQk!r(;qRhb6E0opo2n!3OYJ|2zm0zD^V~Oz<%qGQP#Y@Rnfl>*Awvy=9?w{>cbY6M z;f^tOqP%`8$`S#5aJbQ2?g>FimPnf=VUTkn?QjT696@Xa`EoU1&yA5>F8(G*lLEK3 z(E@-T_#9LdL2P!byIYacHby47La~0D*!J~JxXpxah?NMZeRb(&?`ME8>?%ZDsEyKt z$QHq8>{m+PRkEa}TP6Vr^V+tk=Oau3-5UUJ^g)EOtp0lCnO_x(J8x-w>70mq@Rz?5 zp>PMuh~c)UP>2R;POK}LIR@gEt&3O%}2l>+;C?A)mQ1cTNSjs!Ju?$Z(E2+k*yly{I`YnIZUo3;f zfDtvs>QnlL+n&#tJr~jIoUT5BWNXhw@^hd;2$TAZc5i+fbTERISjPp8Bwe4NUd>>s zKSN-LR9RInUEg+}nfCdOO<=4xH>9v}0dAyUiY)&phzZjM!gp0+EFDED5hbr^V?#C~ zvUPk% zx4xVWGZ8Q<919YCc&gEb=WPY*X(%+z^ml|62AZ6p*3QnS0gFD{XVuKQ65M_-pp)o* z^dF>BXWCqWRrVci^RTb5P~@<&E@+q|G)YR(Nn}L)?QKb6g?+;-3$ZqzJa&GdbI8*} z3V6n?8EKb57Z5eAHAJ2%JVRWBU@ly;vc zc%-dC5Z{kS<`c|5IZabHdYA%HVeQjA#~$DpxE)JoE~o`c#*X=XQVHwqI>O=VQ88#* zdM@|jd1g%1olKnoA{ix%TtI1ia{AJqe|vrkgq+4>>hmi7^VxYBBMOTgg@*PQ?iS z3#cUZ9VAG@O>OJNX16qBy0Vf)6Oh?jFp%I$is)-DprrgCzx@2uFF#*>^VLs3|MKd) z>PqyrR7`+6N=LIRZb0cak1n2%aVgOMc3 zSkl>io7_yrk#?zVC7+ym{V=}MaH+y({NCP)i{(KT+!{H#tQ19CyuJ*&P_*&aV1AlW z)etkOu~iNTjQ_#&!Ui6ntENly%sy(XM46Sg06ZJ8H~PIGIgs+AJ5luPbGANY?M9X} zx#gnh(ZQXjAsRJqC&iUx@~{*My#K9d+qd8jWbymh=Q-e5o6$GI#~teiR3^QkiE)>K zTzUl}7tqB3<-kBAz+_iiDyz_eka)iRW9!z6acFD0D9{_7I=a8guLSKn868crT@7v+ z&ypI~>-P%t4XQvj`=f<43-=DHkKJ|6X4qP1aBh-t0W)VQm#@eqERqtd9ch<_0mz>o z_XB&%3y2Mk^lk(<;YSm<*3&rt|G7QgNI~{qzvMZSxJ!Un;GPQbL&zsf>zC+*J}s(js$Rhu{Q$rn~2@S z(o5Nx$Y}{s*WT!}DA(XBqSw>2`GCj9!#%gwy=zuZ^m3xW&U&4sEt8pa-E;?8+YN~* zq2VgUKWR6eW?8s6a_@CDC}~%h!~O#to(Sk1N#{wpfUE={RQrwlcwUpHV3d*QMT`m| z0BO5^E&0FQGRnpJd;3oI^h>tOnH=9!wo3qIAl8ps6H`M52!K#LvyWz1A!%v7gawV( zYz-o{s}oq7;TFEdo_aVmO_4m*Ze8yTJSh#y#^Ipyf@TZwfD0roK(rHXKp6wb#371` z5WRtP#>Fj?gH$}QdoP1Odt>Ta&xKtbL2!G$X~Uj(w*tST`4CzfR5ksdzIlIlZ#{8l zFgvxHhP^hHQ-Z1U&p#@C`F>v!_l6P(gqaqv47zc+G`2{l9rohIeSiB-G$UTiulp%G zT!~15jtzAxdX5hWy2an{fFn!pE-?I=iz^F>FXqY!j`&|eR>7hF8{S0~P`w?~HKj$klYDJ`C-3j1g*iN0 z5B!h!_$J%)4!#6ss0xMv>6maEb=>Se2A6lv!{y}!1S!sY$$}fD?nT+M7=U52gA8^*+-hPl5k~{?J)@4D`jZ#d!QcBwfF8${A_j&s{lVS^+Sl)FS-Hl|`_c%f#mL>)YGwc`6Y{1)5JIPJ{zUh}oqwc+b(j2s4#FSRK_w zSW*(z$3s6j0zQq)te>3J_(XD)w$HR6vB#{T{#&bTl`1@$YY?@%{+13x&vs*iU8ViyX z4+j{`KE`kZng|cK=m~FoHn8w83%q#XImp|se~irc7JuepN50^Mwo3;fMU?pHB8-uO z7DTv4mfL^B|5Y_J+#}{I;q%u>v-(%i35zppDC2|A<&8(OjD%nmhmhmKFP&G*(x_8; zFK=!&S5x*m3fKUlnCGF6@BW#T;E*usIR9YjWT;uK9>|BSyehOyq4lULv{>Pwb_n04 zqw+`L7G0m{)gBFiwGzO@2o#*k0&R`JP=~AMg-3egP$DX%;CzVIcN7EhJ#qj*b-0Px zu6YQ)be4hbMDI*YCMj;)cj%;awDu5HBJ@_H@o#BWVaPdp$sM>NI9L^#F8h`?WKMre zq~Wgx{SVLZJJ9|>QIw{U>;%!qqB3nqu~_R1-Zp}9;MTexEf&fB*oAS8Xd4AT(NBT1 zNi$iY={9nPL<4#nW2}-Rbxu9ZA~z0MY|zmH(OKPepJsQ3rs$Vmk*pAu>`;%$5r82m zgGa2hw1SnNLBE}(1I736_V2#Qwc^2AW|e;0W1pujFgmJ3VOrHlAJa>7k3*u~su1v& z3@F-p(Y!sDhN~&*Xs--jk~Rn<`3_{@;Ovkg)R+9?u?Cf-Zp3w_w=15iABF6rIS~dy zpUU||ZcY`wc?N03iHHeGY~cdSa7e+rP>`MvRA--GCp38VC@6bUO`LZ%-~R~b2ZL8m zaVf}(?2{-Q;{OT52P^#4nYRQeJy;+<)8LpepPY%!dA%!xDeV2liv{++Ur^79=ZKR@ z?Ldn~@1vv3!LsRXkD)~ibS(i@_$3Mo!>70``O4^qZI%qBZ1<#@{61hxa9nf$0FuNn>RR#;3MdE z6V1Kw`jGJ39yWfd9v~)S0YAPAPw{8bRFDLQ05f2sMdN7szK0nfgXp^g_y3L~<9E&^ z-(#1vLByk>b3-T~3%cAWPGh+=MzXl(+uQeGe!fF8VUTYuX}CrroV$>F$FX3=({&|5 z&MUs_lT3UpxmF0cIjLP1t+4eG^2rukRPZs{BPBL|6Xi*M`E$9FxWr7W=XU5| z`UBFCHnGdJ9nF7eIknO%6MQ^II4h74D`4Exgz5sV>fwvz7@$8h$--TU?Sj(+S~YC%o;90 zVguLihtpdgF?|2_A)tI2&zWSFW;|xNuO~C$U0uvrz)Ga*l4Cc7{IvQ~?8f?x>t~k1 ziYY*tw3@O`E~o*~cI3aYn_j&5PkicVgTiq_pan&e9!GBdSYAaI$yxl5)bv4kp$y!h z47yqr#}0xJmU$P}QwjSc>!*p>ek{YKJ_n}*-bj)v(e(Qvw#%y@!z3v~y8WFW!um8k zNz9bWmvVf!xDn9)0oIINym-%r;%Na=i59Z$wJ3wi@|&fkJlqC0Op9|w0cm8`{7u~+ zZ4x>k(RufZM)lZUdHuG9*D|7aTP8F&j(6p{1|=X$B&P($hCsdlL2*HHks)!(>yP&j zS@AG`WwSd$Eb4pIH>05dRwnpzJh<^LOxT!yc?2Zs=4<4E;dy z{Oi-N^&i=OkmtPHNj5(mT_RR8cm63}mv;DQ3aR$A_U0pN>*k}pBy40pA9ePE;Gof7 zF`R8`ROPEI;j2J3fv*$hya!~|7%Y^Wt^KXUwHFOSMM4sF0c0ytMMhmwpMt6`7LiK& z9qHc_-HmVVGn_xC=?iPoFhFYgfE9l0YFf3DWw?@G!r!s@C`=^m+aCBDa5KBFw|=^* zBwQl5JmDtbd+@v8r8o-&if~ca&C-r0p6~fu{TZ1p_uMuy9a`HHGyyu<jlSr51*Y4J-Th=IZ8_6sPwrxP;uz0DcjLZko@HZM0PR zmgk!NS<6kXrUU^nJFCHqqblI9mPJ5xF!%Fm=Gk-ge)hur;8(FwRQ3)rmW*T`@`^e0 z;O}~1R$Kx#^2bw$cXRJ@acL+q!)JOgi$PF|l(&%EqvBI@R z4AyV}MXSTAjULDb*jua=3Q{S3&nLS6VPeAFWWPUKd^v%AilsubmtzpR`r=_dHQEJd zE{d9U19lTQmfgXJi9#?C=7jh>|BAmvWP)|StyqAsL09VEe*acMSsrisyMip35Lx^g z`4Y+_V*gqMLY85R^Utxfb^h&vd%T+u3bxTHzJ@LyF#{z0O7iHW!a2f-rsJob$Ex|` z06HSE5}jSZxo6>0*=KV$OV7f}Hv>zPpr0WO#KCv^VhEJsdNT52UnnW~A*}90kYE0* zy+3^~6$(-}+FeHN{aDg*6=~AGAPn)B9&E~R)`u>K4wmZNna3(NDqH#UP zj@%2tWLDMZZIL`qpkaXM7NLxI!k3h3(Bz;JsVmFA@aDjb^AJ8fu=EhK1)ED6uZt_a zdcqDb8hj?m(WLjYjqq}gIG5Y4UW@mL4L!ILHE6E_uH3X2B8R9UBbihTE%HPPqN`gz=#Z2og zp{8e*0`a{hYSpqA%G#!B8p8F&V9GG0dlTCj6cgB}p^1lk;7R}gY_#9xM172n#!jWZ zVofhbAWr010d+@)c(;!{W}9!5pVejORhT?%S8hmVc2Q4 z)2h8U2)@j95mMObH^V8yoUt%8-!Ju0NcaW7c)jhP8|=lcfV>2SS1GH2!wb(`5t;lK z(qwcH?D>_Q1HiLgvb=>edS0upF3YiSEB8LE1oxaUIofZ5wf3l+w zrA*JWM=Y~OL9IcPmb6kd_nL~vw=_h5_CKe0uKe$l;@@VtsP}~?M^j6*k!c0UJHS5VxRQ!O+HoE zabye9tP)pjq9=C&f#}*3sO>06{0)XVlBy9 z_HXXQJ$X0M=R<707z?OHQBdD3!UYAF6CtlD%Nx(a#TD< zQlQbxn!2dxqLaYGKq|~mk418GvYWbsN?bKD$#lAnFFrR@i}>e69-5}7BukMkSY5k# zat>Onq$5$MLjgz8eN-o*RF`Zx^rI;}E*~el4BDSuM()}xi!s)coHsqW^NEI$Qn6ev zT${f|6(Cgh1z#xlkra4Coy>_+LQd2>-^Bu!pZDt>)t#0!tRyzRlHV$LO{Ra=Tm)xb z&^Ls&LRM$Kp=>rKbZI(dqrQS7Nk_jZ3NIYVyGx|@aU3G+5wH4W-~C~Lim+-<0*Gf+ zJ{b;kT`+(Jwcr8cW>a<6QYi@VQs>)*gg*iRB9|zOj`pZSiHanctC7Z8`Yl%NqVE^( zsydc0Z+ecg(+4eToRN)qj&Y$)H92IuT9T!a_HfH;kaNI+2-+r+Ry*roW2+!k-C95e zV^*OAPg0H>mbTEad?5w3n%?cA? zy?CLSQ*5U^??(--{&T!Wd`@pVmsN~=fHY8#$PA|sEtbRUer{PV(Iamv+-i!i;h7pM zJxRBC21g*Gruu}$aLC;EBvTPa8mp(Q$|{eJLqGfHkIo?aB9Mwj@+BOYF8#m)CSTQh zNE8A{^n9XmGxB3n=CZG*PdPZxb(j3L@@XCQ%!p3X8}B@BkZ6EMcMs;87aR zhMCx5ZJ_|<1FjO{jnOW7+~ukT@(vtFk}st3ConRi0g+E_e2>rWF+zl+VgyD7P*zXO z7k#0*{9lk)oAonfJMLl@I)>*YU{RZpt^n~1C>CL(Ix7en-GRBDlh`pTy2I%YIXgrs z3`Hbb#i5AoZ{)*xJENx)-7IMbAjVJiLG~xgCeKN@%})ngVku6fRH<-75hK-Ah39xr zVkI#@BZ3PMb48sXgiW#}k6-aISF3_3a|KP0SA$#Ak!Qw%B*PJI5Q_?Kv5fykoUnhn zGeIb|AP1C@G8Fa%sB? z=BP{C-Tk7r!)jl9IRjQx*q77<6%qrc@J@@@Wd}i4O$lc;z!wmAL@5ZL+OuS0RsAFv zTA9lf6Z{T=4N*V2m_wmdJvHD!@OF@p^tU`yt{#Jm~bT- zc;vqHV+be;)aQ+r1y_j`+xVN)Cxe6oeUJ9;bbmziW_eYT5f22fU<#?c;6vWI^tJxs zD}MjaGJkhVR~kM~Ns&{UP9m1mgd5E3#l`Kj(U4TN9Lnq+(nBiDLR$bz`UAxu8bPcc zkBd0lPO8HkxVR-0dFiWZql^V0#q_a8eIW;X8QVRz`|?lf=!+enZ#;mrMpGJ51T=y3 z@O(RNOu%gyULQ^)OB3DryhqZV$THkVBMd@?(9*^O1Yk#nn!KVEq>k8vxd5IpArOt$ z!0HB^Mn(zD&0C%G6t?yCuo6CbT#l1KQeMcrUx9_OXyPH2RJ-TR_GR#Pi6d6&-E+U{yqn;!lYKHBa<;suL z2>`C79F4U0!3a|TSk|(6K^K(8j#U;>gn_;U)d*E6$P9kz=?mKl#n{asrCx)1;)md) z({>wv+cE&1=0ZgXAmp$07wt1%46Ih4m(Ue2<{dH7R&~;ZZX;4*-nj7815nlyzYGw8PR=Tm z{^Ub!k^`u_vTbwyg8>)(liNZ`j!vmZ~j?DMbiB0Dr5silq0IMXas@E6CNJN zeiDWwQ#V5?wj>`{83=+5&>M6Lftv|8kM6H@bxIqU0tl9^<_sU&^FqBe@Wzno($Um5 zxk~9|x6W~fJc@V4XN4J>cA(5c0UiVfl5Kv2TJJ2($bN~c0rypHm9J~BzgOW#F_@f! z*WxmQ0|%Z5HvG!I>HVAA_t&U}fTN1q6zlm1M4#YG5Oef2iPqdBDMd*qtn9TnpqEpM z&V=FSMa&5D6bv9t1{^FLa6bZmZY6F;cgSDc{-cwgDe^B@Z`%7e7Z+(sAs8jG5;!TF zA^w_=#VkJA+O!>lIgpuXPJ>LX&5T79Z}9$`?i$#`74jau12PIUV*^CqVY*S1UMy#D z@*YD7b7aP&cH{fnDIYpZW{d%WnbE?$^=Q)Db3{ zDYr|%_4uL?H~PL_Sx)#?l$3i#Wn??j21z60lADKnN#e59nH%(I2rdesaT!Hze}$br zY|wLHMBK>RmEI*lRu~ru=99t5!fn)1lT}xMBpd&5Ie8h|cp5(h_EHBr8mcx2KWHsl z6)vCWC`vOmIyUHyA({pH#M1Zf8ZvIs zGxSr-GPy*}C);l6d$ejO{*ltEiki+v@mE?S*pr0D^S~oXpbW&e@efLV7}xwveptVi zBoOpGlhfkiHcal{e)x%O4WC7w(N&^HaEISK_K&ZA(rmGO8YUFUN$dk14?tPt14hF; zH=)JtZv=o`O1}UE8bEJl102E3E{%Id?&1|?Y(?IbzQQ_Y2{q=brS^p;JYfq+7k~3F z#(<0&L{znq$Hb0JIgXMa$;xSvAad!Y8F<0)!BJwznm{YTxJ5H7)_QiVT%w-U&my8+ z8chD;iA9EtT|-^4*3LY3Yi}%B5uRu1QFB{@GqvLaBbT%QfKmOliyL!y^@BuJi1zMR zyzgTLy0tH_0O%{>fm6Q~32)&I$#MqT7) z7H}v)Pyfl~7y#<*MUfbhv`L0a%7_DqS}dl^KSq|rC1DI* zQ@)V^ZDi=XgQyqMbV<00k9@z6-`LJt4nV2Wi0HORp4)G90}J;7S09@M>Q^@9IOGhi zD3ESoWBTEJ7U25^C5n^{rw@etHo-Fb2dg8bq9m~E?@#?bfALNrbqFRRQHbZ-0;>c2 zxtz6HHOut7ez=7e2-QPvO%3*i>N_%|`{S2KZ{_uDmJ&; z>b&A$$^tvR`;c39NOJEKMf!}PpjtS_Be`fW6OcnAdTWr^DJ1wy>$m~#3Sae?fQNdb z(Wb@x;1Utw`rRJOus?EoM_ccS@w)^UH~0*EGRUe>j7XM&LF%c}u0L_GlE{k*cn*#i zoTBhkE9;ux-j@V&h<4O9gAFEaaX>*! zK!&d)f0~1{m|Vf@*|yt8mK|82BBz*M6PLH~%br^mlD|bqLl$>7Lh;uFCMUfZUo4wp zPUE32ll4^UAxXlNT>Y5rfla~%T!jubzi;W8%RZW!#NaE?07g)R&e?cBeo5Fe3?Z80 ztpzWBtj)i+{k{-t%?W0kFOh;z(8)jy1SuEt#?rPH=oCE|yPVu=yf!4081zMwpf3XW z_GT34xTMcFl5ha->8`xKkV91w3mdAuEnE$UjRYf$I)vGNk~~@gQ3?bX2Iholn+Qu+ z?4L-$9-JOvI_W_Q$cjAAC_dhxXbi2O;@KG1J_6tWkU+*8rRWREWRxXY9z?0Do?% zib+&YA3HxGrn+Doc4vgPAt{T?hn-R(##IC2nKYz%qS=izz%E&w6<6(?74N9P1}+mx zwLl-8kYUm<^>1jwNoKZ3#(^~ns49#@&sA|d*RteZFU9ISe0Vu&r3*zyim&dd7O$_z zxIC->ba^{X@PfE0DM$o@P@K*a!nk;%7j})$ns4%7o2;gfB^MphurnpX)GV(hJw*$J z1D66Dr5y0L%f6AltNVUaK9BbO52yw1Iw_h;gWvgCjTTKw!~utrf~(!WGIE{Wh`D<4 z0=sktcKiCp3k=h$pZWes*}N!=)ZT>rFshim4l5Mei+|KAN?)te{!BQx2)(b0UAhw_ zex%O8f5ps(W*mHU=mmgukrqKQXER|-6BmfHr(bWbT9`TG)&Golw@_Wg&Bagwje*Nd zyiL`}uD1~593}U;mUVihCe~vgjM~Z>fVX z2m~|@Q*ve}HtIL}>LH@Gpwpmdi4;0YLS{-fxl0-|tT?SI(_x&}d!Qe3l-@sXy&wNq zUO@blqAhVzum^Y(I*wR$Ad37%f8Y}Zcl&h2ttU+_Y(X^9>~)WM+fs|65YB&ZA5J-A z#1R5EOhLQiGzb^(!U%`mdiPQMC!sT6Q}nRJJPBOtIAEzru)1({Wt(do+fJlUjO`e2 zUj3;czChxR==Ywq-GQot1M^4fXFyqmt?XZORq9cv1AhhxPX7Q-Z+DU{KM;4A(M6{< zQ|6-u*a}pkgV~0=>z`taj%DFX4Z#84*xKOPA9=N0tlJ^>hRo9K{O6x<*WNRG!UJMx zLqu`}4cUq>4Wd4>%1=9+CYmo0rRIQsCphTQ^-RrSilop!Qx}&y2tV*<9kv!thj8cr zWo@{C1|x{=Cg5^t(b?q0c^b)-00I!y`xz+S-2N+sK;HDlC2Wo{yIPDR|5vn`Y((@k zK#!v~M6<*u{xH*PsDIaiEoz*qvm$aw$4wNBYvFw|5XbFXG*`oF*aX^CI*7*o^i4TZ)%5kGYacAKcm%=!JFC(I zN32FE8vtD|jntySOLWaSbteCgh2&6~V_;c98n`C(N@}Ulj9@(MW{riM&s&~nLg$t>Y9O^6gL3^e3wHB5=8u901kjx;Nxp*8 zXy4Y3%;$iEqxJ8772TrJV5_`5O6$|j(cHw6QJLF!)ZD9AaBB@S@8dW@GnY85`b(#Tr{c!i5 z7MqElqzVqbc$^Xebbw|DKz?|2{sAjvxvqgYpTJ$x=A^m--L_~QGBvrsgL856({{wd z2z!uDO~1b(0StnZ-~UT~Yo_B*(SqmVPN7N}7hk^3I=(87CGbBQF4%Xy6bj}4-wK5S zhhK8}^bvTV&!?PfaG20~hkXSA6<;vgE9cUlp`Q!rfU-*9rUHq?mPS{`shT|pbN+Zd z9d;`K1NxHDsFvmoc8|Dw*SeO(xrZkod*SNruj-GkHjNlLxTB(vB*YkN22>W2@p!c1 z`0;Irt^eyhz^{9L6^SKL9{=;ZLcpHffSWVijHlABZMCne`_gIZPK)X zFnUy}rMEM5AOz}~foaa8P&2HsDG?|g zDJet?AWg(Wd2SY+?jUF<((g5=zX^?J$?qUoAKmfO;%i^ZS{*Y7@inr7oVF9_JXfME zX^-7`a?btSzx&|?)fRMHF0!4B7y$3YNrmJmO7(c?k!#Kz;2mxQDLq~d?YS0ceMM1y zZvLV_r8Mh9eb$nNOs*W!G=MnasUhKYCSw(H4zq=i4}H7lvE0}u5Y^Qp8Lt(D3=}@m z1?{NGfK{krEVJ>rZHyfl)SLl00p?6VJFV`)7deM{41LLH3rE!qT&x(0^~JGGZFDQk zx2!;1-kr4L268VzmmPX9NS;@I@Sj;^rf4Pv0#gzwbkzyZoHLn~hqt)==ihJt)qZ^K zAuRz-KnTyOMFJ1m$ueB+_BnLSrf+n7snXeirY1!wym4VFMj!Ao*l$FKE2V~xoF9tZ zfKvPo8cTxcqJB2I_N#j-#z=^BXsR*CmdK*~hTW2%Wm^JdNA#@D>3<3$$q(b-f|MgO zk&;!T=$s`KxNJs4$+S&N;-ene_%ck6tE3{vXno^!Q6CS&5Y7 zNPaH*s*i8Woy$@}<|OK)Juda%ska+F>OducnMw9}g=d5hIy!LC2qn*uGqvmEVvBaM z`zL46{@vHkx%^4eK?mX{7tby13Mf0mGxYm7X`<=)#J~k9z2Fs)7la4Kp-}Y&S-Eic z+MtBqA6nNkzrRq+jGJ7`Hc;eY_`;G+6{i#l07PPueCTk+;#bly{O{o(!7dyUH1uJ0 zwP_s>O6GYfw`NvdB})TTh*XHQ7b)W(H&}VCE%Z(gADfN4WOgBrYOML59$ED5%R1A_ z`H{b%g`Z4a9CzxEeLer1WdKDwGNJu;PpdlwDx)>BqK_s9EAZ_IKy;zR0OFm*PzS&( zI{td7(=J;Rs0}ti1~!4aM)(SqBl8!D^P#j`ato~Vt9IhQd}pZ2s5Dfx17aW2FG-)^ znc(NneQNXj-E`p4Vl`3lLimr~5A+5NcMrbgA?ZsCd18#npS=<7>p+a30lw!Enhf44THz+UR{_v42QlZ`H zK{%E`5#D?gMA>pxq{um4AQHkqwI>S zB9=S8jfU^Z&d;4qo%E%o;$#i^@Zfa+@pRR@>bbp zTrT=Xvp<4Mlu-*t@Yq2P_it(k=d6`+#DtN_Wum5*5|3*~_$@7D8vBU!Uy9am@ZELM zs;G~w*`GOEo}}j!cSr#^v+s~1pRExTt7`FHT)mV>!O;UuokRmW{;^B02B0?tsV+Ki-QSkub0V97b!)*@=A2oFks-#NfA83P7 z3GErXjyPyM7O9d6oP}G{A%@Bfl@Un#6MJ^C`ttQE@BR2L0&^-ZZjPfnZickdYJqhO z7}QnJdBXh;hKexw)q|WXERYoO329;81EvYr=piDZ=7N1(^>jz8o-{u3qX;k~dZh!m zMOm^@$(_*3N`9GBldw0y+);2N(dvKRdvAWb$3=9h+S&DID)Dv(?L;wg6=>5cvN)pq z;2-mOOGX}@Jz|fL4R+B3`GrwibKjWMQoNpq=z*ct<#k| zM#WO3BCZ~UeM3!SydDaExjEg7;82Dp8i6$_D1;l}G3s4rcSTh~1b<0bebGiBngHx{ z5Y|IFgj-oARTAxV9)5UpJKS%xV<8Fe+<4O?t$6kRf%u9Ha}6vN_)$)SZhEK3@5erT z7O2xhXC(xtzDJ*Pr1-)eeQHzA0y)j1RN=uM@N^?kk|T$p)SQ1De}5_3>T&{R_d)>V zpMuUUjTt&{7d@N=g!KF?c&V~a6YQ@0YdM4_m2562&RHaL5VC^gXA|^!0G&uyLjrF` zB0U-bg>Uiv0=nuo(vM8otF(o-AzwJw^S|&|w|kvE)^p4z;uxH95Q?Gcngz9E*%pY< z5ee_{B3F&DXVV~AKU)h5j*QA{O+&lkQdDTD=!JXR?vRk+-xJc2$8ZG&3-m;?uJA8B z?|xU`DJ~Rif#pE*bGW^11?Y`NXFO=2s5j6uz~*p1x;#6%!8aZMnA4+rVER)D&xpp7 z4Vew9g;Z4Z8=(1j&NmWI*IXm{tkL#0&ras{#f#83?3r$nSXsKHwi7xCP`{+bx-AJc z4F?!uaeC6?>!0t&5g7>?mbH}f0Ir2u3n3_J#C?Pf6Yi>u;Y)#yTu0=IEK7o*2s+dD zUKWDE?F|TPWS*$63>Cv1Qq)%U?bpcDG^N2|3Fp%PuvgSNbEF2>`Uo8)P5BCE5Dy;4g&d5G`kSk4)=^jr_{&W(W`eGNe4XZE-gLpWRJ8&LUfEE zH<}SB__g#2rvsimO0gpze@$x9?(=85e8kjQ5rjkZv4YA$Gn{B{kweMFo>$Ti=6aNL zbCHtkMo~h=Z^O^(<~SGaG_z_LmroUkav}6J5r+=*5&X^tsG?bSZa8~MtU4M&gOj4k-UwvWuNryWxk+9cMYZS|RV~7xv{21LUE7V+4?0?p zM{j&aTd?@`u6_3gsDhWMD6i=$_g>;(*aO6f(hi1t?dnz-%5znAe)6CIl>G5kTl^D`SWdpqq!mH z4=C-aB(}Aoer7FR2XYWog`BScHfEuG z@TA_sKgUZr_8owFc_;SMtPoX8quU92lnRC1@W7R4kdf!)O$0V;%{8u0leEl&9!y|K zb9CMjDaamuB2Fsgmgyh8d?HEkd`e&`b%G9*buX@BxT7~mkJ!oG8M~_o8aUb8%uxO- z!R-=Fpe{q`*Zc8@sFGay?zWoMXW^vNHCfQ3Hc&ZpHvURs!j>148bvzoJsVxuH=x-7J=ITR!(JUfEgHVbPw;;>SPdG>h3Lf&|&DH(Kx7Vi| zX+6+GlfmvnfM^Tu63vvB1eb;+BJ!B>A8S8A$H|L>8qg@=P@`uXg6E{`qWLPcw&~KZ zZ&k!C4%9jT;4Y`Juz0G}N7vh^+H(%flaR`p_!pBePw4(wm%JhT2#9rY6{v9wO1&JY z-XTICJt{V;B-2g&_5OFJKxj5BgbGw8?^NRWEdxB~VECLhF%g{%k*q}l4-pi*@N;*N zqE8GfLV81p3%wex2`;C(f%0Es#Z4|ByMHCK6!0Uh6J$K4HS}MpD%!Yh-5 z?SnikAZE_(f(Gtn5OsIxNxv>J?Bo^LS$H=v!>C-L^U{QCJuOrtXo%;>jat`75p9m& z-lF#NHLYY`iy(}_1MhMkLC#ayu zw;gf3B^J`%!j{6C=(k&-6MBZPm}{Ufd}hR86{0QIXFc#R@L}{cULJmEn7yytRc({B z2?R)FY_YQQ(jyeFB@~w~5+EgXBK+~EtN}z}P@!y5HHw}jAo6Wke8MZnFdhMJ5k;lp z13h>rQI9I)8{whI&Casy>UQMp#Z0qvP*gv-G@~9^Y=oL@veo-hk%nD68G|=?OgsAd zC||<$K!aZ@dCQDGhS-byIMMAGCk7V?`5?4{qdTy>&xMArWVR*3K*kfbRJa_he$GM2 z{5jqb{YF8}EMr-_93@2clMoz~u&zYcr??#nCpvOJ?>fFALK4$faExYsvYL_pi;K@^J_YEN1cB{iVd!i0{$PBMcpIp^$abT*SEb=HJK0GB z)IkNum0J}YPi=54S&@pygQIPee{9^tWp*sgy}AF#-M>!5s%RJ;3~MS1Rr!f9XFz+K zECmvn_Bs7NCVwpLLLm(B8)fp{xtbQDnw!^B*uV7b+qLGYunrhccuoz9wDDv=?nkX* z!&uSl%lARw=2!Taej4mX8w|qic@&Bdn zOq=93u5|rp{FzZ$3-~C>)(m58OCeHr#QoBNszQ++?Cn-}Q{w#k`@H950*OLxO^Wo@ zOjvADjV+PLJj=Vt7E_jq=piEmG#TKEHSzks#uSC5gq4cMEet-gNLm5}g5&RwU73PS zZ#lZ>Awh%s3@JWH4@}Vgh{~hI1043D>_c8;IwZg91?qpQ%iQZ0O1RGwoFT}P;F*2i zX%oj8DAGVfh=qT?VWGWrvSke_#V9sFD*$y=hP(AKwH0epP`Z5}KqE|e21p4{)_Q*? z+-s8#3uq{I>O(k9kS$`(UJDmz*;M#S*^O%=TYT8wbpQK_7a(_5ga3H{xmJ;x{L&;AwLE)Yhsq@fMG27rwzi@l$TtG35RBcFcPe^hbl z<5)kQOkSC7ToO*D1SY_1Sc-Q@M_24G;U9rzx3iBb$3q`wi4xaJC&w5 zb7w=(3Jv`d{Y;XGa4MU{$D-FnK@&SCn(!6fyanx$^k9{(;i4R&rVVTqDL(z}&LCvm z3nf2L77aj12*G7I-Eso3m8ugPp%l|h4etN&!)r3D*^pWcyC3-Q`KED>+?zVwW(ad| z^i6M{p2HkW??EC6z7nNTncLEG4+lknxZZInJWUxGn@_H&>>DiA#8f_L6*`*HzwnLZ z-kRe1KW!)hH#JK-J}1lB!qee|at%Meg+C)SI9dlEUhXXqpcdyL!{9SqSr zK6|!TE4eCsFul&F5X2b z7OC+4>ebElilhJ*CVLhDD^&oVr~u68*&Zi^;SKsO^p9a)lhhM3vRe=9xDX?j_UwCX z4{47h8uXH5-Vn2>Pvt1ZdX%8cQFsnCp1x zpG&{1tQm8mwNM5w;v=L{aH6(nQI$RfobM+%%e{BO2oKolMFV=8xB)Hk1(-a4v7fi? z2Mp+{gPMu46OI71PUANbYBs)L%rOu{JTjk>*11&4!s4ol>Ya_ zTJrjC%e=crWQUpdx43xdPYRYw7P%=qr*;vV8kE3D2*LDFL$=vI3<_25*-j9q^r7-R z)sd;~g1wEyxQ^(B@nSFtk717jBOL9I0@Y23xrB4+y$4d5L#_7`>l5wa^vkvKCGqu~ zAU1T67XVmUgOF%gEvS^lCDB83ecxolB!a0 zp%Tw(N!bKC_LkBH2oOIoq=vrM1$CHV42SRQV2Q^DE!OLKQIQ6L85$5GU}*UEvc!cO zJk+Ty)C0YGeEr&v4^%Sdn>>*at3`R4}2ER#TAB$)_QWSs>p>(8Fl02G^w z76NW4Zur?P^j1aD$O#ShS2%p#D^Z7F1Jj1~z`CTB8pmkinXG@@`}u+`fB$f(?(3L! z&ga-AIl}};Bl}z=*SK%Y#L+KE-gO8I&b0~tn;art+@><_3%uq4lT(92ZVasoJAY84 zK2Tu*9N01Zk#XzPh41v2PObfwN4Hk8Uc=I84E_Jrh&I^fWDV#mnpflr)5jPozpUz_ zm^cGA!$EXYVWAGMoN7gK(6KBh^xg3Z+M-WHreCb7_9O?65=bF%92U2*k0z}wNg%10 zMfv)amh0Hq zokF1mQTCoB2~^KID-eQ;$JzFt_SD*db+FDxPeXA___aZGb2vobNm9q~&f0fRP}tTW z_=vQ5eu^n*6@iplb##itJx(YjDFaN;Z9R&AUq8JcG*xE{@+9HXXN?BM<9c^(M!Q@T zVvaXwSrZSgcf#(v=zgl!`hbG?Jim2wB9jvNc|#2P&Zr2v&Msl z(C=byVu*!N`QhV+P7K_UK1_1=7ZsxB6x>*V2-mw;{Xcq^iaiud(Wmd zS5u>sz{ZMTO2Q1&Qke-N>0lF0DC@7U>$BixhV^$eQ-*~YP_uh{JU=HRw zx2<3eux|{?PLFy+h3l&C)_}bEB+jBj*$&Y=uD}NNx(DnRpr$P!kH^xd7pZ`&+h54-vzrXMN7bV z^@#4EsQ;DhmWw4p-~x-)^zhSfw`PN4b7Ixz$#>^*V-l-G8wQKT23Ml=I=W4s_KAKc zOr#CAWIHy#9^*sP;sUF)T!Jt~cT-TT@!J@RtzTAvNMRbda- zwqxsiviS|gPsk?-D3N@v$iiTe+eDf~^}cN#M)!r9-@BXpRR`euzwFQNv=vU$N?YQ? z@4oqj7~-v^fK-3re1m#<2>4z2h50lcVX2j>T0Oyfbx?7$_&jCk@9(89 zBlI7e&x^6ebk7G=F~^68N^bGhE4xQEwM3zb9iXWDO!W1*cA*9sRg?$|TD)Rxhll=i zmF9Dy_F&cl|3@JuJi_G!jsv+bUz~VHB>I{n;S0hm0aiP~2jJW_N&hfOSq+x2?+w)p zjeGO4lRukLZ>8Y0hJ#7z2nrt|^xk2mBGAn0kg9;OC3B1U*PEdaQxTt~d0*f@~QRD8^DxcD!@34qPg@fL1Jo@zK3VG@CKG%!C zFi|}|zwOQ|Z%`)RsGUJG91c-9O^g@7Xp3u+l@@1S$!61* z)nfO2XZ{#hYo9ah{HS*n053K$)xudO7$1A7!hg}o1yb^JxA|@ZW1`<30iE$GI>_YO zJM4!LVA#+4#;9KAETXX6u(664bnLIsqJyjY>&@@BHq4^>eNQArH{61D!@hwZE7C+# zBn}t4VBXELRjejUAVGAv$o|mj8W)w*Av(}exiU%f5QU?T?U@fC96qgo9(>|IZXY{L zn}pepNG5W@9lLGrz zB%>d(lZ*(gOS+(x?D)qb{_^FSd(0a_AXFQg`dI@d4EJjPj*>E%s;Ep@noHN-T$zxi z4PBz{fubA!g&S*1HdEd;@JlcQ>5zCr>sLN&Wy^<&2oz@OG;Q+9Y4%JYAeU(KXMQ39 z4Ybc+fj@zBfoIeG;1Ub4ev57`P;3OvaaT)TC2J9uWBa8dTgO!%1XFC_V*AO_#Q>OR z=wi``Mcd=o?LWJe4+F=b(V(O(4v!Sy+r5i(vnLrguuv-s2Xvf3{n1z)?>p^%3`Ebs zCqkeGV+6uU2}$(fD9tqx=NTAN(5Mg(Fmy4T6uiT;y9kBxVu9QMFJUz~;u^ zuEQ0-InayhFlNooigpVASm|@0UKXe8>t)3$%6#y}%eE>zWVO<3>5Ga6JeZL}3VAhz0)Z_n6fJj|tf4ydkt?71{5< zgoTAK5?N!ca&~|*lm~T-Qk>1rqFkY78g8%leaU0A^nIU1xz6-KK}||rjGo~ZpNVkp zkVo5V_FelmA67a8P9zuzsX~AR^h!IB&p#PVD{T^E3o8^OVo^<+flfr@Q8r&|+#vB{ zm>f$;-~g+T`|PdVL-?RAI)X{HX`2FC2q+4Kjgi~T5QFSMN%*Zz1ixM8#i{kRePRBgkuNkArF=AHt!e70N^f?^-fvTd+pqJOOy)Q<85ek_`MU z#BKtQj;1WloFK0z5^t+)cmz3g+Rd_iuyL3AJk*B>t6GnDZdTjws0 zWw3*1M^9sa97Cunr^11({0fKh|tO?xO_BCK{3;8wU^5G#BSsQ(qJ>t;%<%WHD8 zNOL>fH%=t*|54!s!~+pzeA(tXU^uy~Ao!K>JxpBYHV2`W2mp2o-V#}bV)7!$5s=C~ zm?I=xb7C&;fq#WET>5l&cD%Y(9S zX~5IkUQG`qe}L5WaDyg@mV{-$&G}Lbl2VDHjaN7Y4@(@B06}9G00CW|+LIILHRXF8 z_iKr<+0$lb+zJlZmnJkmdTs(YMM-Rj`v`QcuvDz9d!|+5H)R=&y-qX_9&E4dc3}7b z2P4@| zOaxjKKUlrj*efoQ)X-4|`09xAvMi;H3!d)0G*tB(uS%DvGyAIT$8BMKucx_-dTnY^HyZJ~;vRw>>_RM!y(nBEI~2G>KRS%A%7 zMYR^}Wju0-$n*`Ftc_=Td-HB`Gil;8b^k?ng(@%(AOwFH{){&#@m)pSl(OLeX}xVB zijzZQ7Az@t|IH9H*iJDkQhLB{RY*0Cy%cSNCF$4=#}d)&*R(V?2twS1XsCe(4$l}F z4VoyZtJ?5QJAL+zrOoBHM%Mr1%JM@!j{vuk%*_IoZd@7sX6%g|gB2&zxNI`mEm9B^ zfFV8BdA9X0{dVG8m6iHJeDeq*rj@X$3$|2%9~9S;>#HB-2K9%NV4n|$5lCl4kXH$q z0o-;86E~=j<7K-Er`J>+b5Hz=I+9=f?w{|Tgt6l-TP1=>71R>^=|!87)+DzUI-#z% zTmRifcMDd%EAVvBJPd(;2^a3$RXetWa5fX7o;Mt78P z@T>WS{GUV$w)<-4F0xHSK@xid)J4-Xr{&KJR;+3VP*~|m+tJM9+gMek-;*=GT&UCy zSph1-Mc8h(e2K*U{yg8LI|`!#(P1`y{8%J3ImS^oIz!2{w#*6mhy8iEh9!fvgjv~1zeq(n?}i=_sFoUm<3(WG~LXeO5m3^|Gd9Lh_*31U)aPsUMAx@E|X znrMgBJofLR)Ae!z{S4wLA_RbF_7BZ2?C*`}f+dKsMO{l*9+i{H`IJENWmry4I*0^Q zPT@uVXJKFyM;$Nk9qAn(&7+|#l#pIP$lxs%Pun>0%yY$y3Tc;wC6T{}dKk_iYa|m% z9O-rV7V)Q|4i`XzdKMFEqjeh};U!!BuPO@fE7&=ZAuR5Qx)Dqe_>!2R>^7O8bMohP z>uG@|4OMtv8%=Iv3Ufx9d!&UB`_*_`q<-&Wt*T02Lveqb`CAq1>OxTa&$kb zzlH<8Qs|OYBsbLKMZrWN2ao0SK5Oud-2*IPuS32jZXOb-Q8@N&PooBH4qjo~z-7ZL zCeC}0T{UcBDYVjAW0fku=)WRwin+SUK9th0f^A7)>n8du~6oZ2a zL^C#p8YKY&hIDka*9&i>UO;8Fsf?`R6D2arR6%|8?AUB&yi@{ZB$l8>62|6RQBLE^ z1k$s?GexS^NXUn~@Ll96MmM)z4WjKW-=01lINOVCL5xldDxSla23B(<1$iU%z^<$? zqE~7Wbu{?(8n9{zq;3e7kVrLU#jsD$q#+N;at%Gbja}`3a$Mb#B}1a1rUNGQ*sH2< z`rGSWUp?IaW(h+M=!!yhM;BEsVSfXAc~2~K$32N&77co6^pwwFdiXJor}aak;2i)7 zlJL`UB*eia!xjh4WMXAt5?UP4`2g>OnuWX{4&SEB)Kyzm8##ngWV?nYiTKMh9ul^j zNvSyOcU~N(a<-#RvL_^FG=>;> z3Zki2v@ihBB$GX1IKwbkUP?o(GIVhZFmpKWp&J*zp*i3+Tfm9_=kmeSDpJW%$Bqy3t|q0jS>49EQsqK3AqJY zZvL45krpcB*DCAVCKT2=-q|y3cmtv$VvbZk`o8c4fsXmX!-%(Y@h6KtRf)Cvd`!>d z#DBCZZH!!@rNAv@Z9!DDtv96e<8F8Y356L$YC5YP9JXF;SM;WkFSK*$Q$0BGmgB_R zb+niqkyg#@Te0n* zz61rF>!+V~-{Eff?#_b3oWCV|m*1fgkJjjCE2lt8uv7%F(=Q#d;65n+>-whOsip{IC~yr^UfkBTA!&wpWFT=ViWhE4;bLc^qe4-Uu}|zN z2u=zaGk{M{w3xY+-A+=Z|sK<4*@fXAVvxdRgE} zU`dMhgTa*Dpk9nssiSib;o$q87TP9cSz9cvNYK{=U3f->qk_U>{HCToy!lj#afjNr z`s~7SN7_+Z4Edk6Us%QvKcL2m{4e_pDh$cEp6ajV_kzxqLN+0ZNXKcz69Z`PDgyH$FunO#?`_IHo;Ub@xw z&Gpl#n#B%+{c`mz9RsD1Iou9}v1uRY7#4>Uqz-uA8Y9Lt*y(F27cTyCeucrF4-<88 zhP3mr*$MN_Uevh+0gYEyIBhtH2{woc0*H}SPckspX4`8IM55&(DnG1FSdksNfPgsW zXWDDnsb$QBnV!h|Ye?YGA%fyUWCWiieXKzfKyD7*n$b>)%3yN|fobd(>v|1jHTjxJ zQE1lAxy>j(bZg|g$Tbj+njAuYL^Ga%s2iQUgZ}^CPUrdV)sF(c@5Sr zeZDZA<_X^^bRI z7(=RLO}G*q_Ak%N6;Uhy_{ef~)4zIre|^ipZ}gWNrTJoa5Qd?R57!VMoADbuwQ|>V zSKN~Ym%9d{J2^i@^LYHyKmPrW=uQ8wTO(lgvaaaajF0sPc-(4<$QAy3$qT*&6j-Z! zXevrzrLayfTI3`pgPDv(+W8p>ZCS3^pEiUM^%+Urh#)@5EtG8o0Ma;;7iKSqeMMYL zC1jtZ3Kabd1ZI#XLt}2d#v%FLSOZ0dp#!E#MYF`|Vd+PGGh)F+Q4IgejjM)r0(}4`cuy%O-=Gj%VV;Ii&VS?$C)k3 zE!7aZ5~>r1mr?fUs-mkV{}KA6@kE}e@ecB1Vd`F91PG`C2t{Oxl2ANL7^A(s$T-*Y zxp<<&pv;e`03)KsIwwRJKhIM;XM!mNFGjh0OSKaH1Ssm`3GDm!sA&i-0?)Xhm>61AHb9Ok9Wq&;w8}>SV5p!quG%28TfUNuEENAnkRXok@9df z%rtU{1@)y2{iASnfIubl?q{QC4zq7Qvd1PL2qsm^7bMqc5QX#qxkNiE+8?0P@WNr& zg&sA&*i$pZvtht;7}`=wLX`)$z8`A^0DaHdVi?iKeBp)jAT1R>bL}}mTw$m{b#R~$} z^vey}5%n7v1ZWMgYf>1)g2B{4lo8)TOd}Z(N=)eqhE%&H+1zhpWJdbC>Td7ZEdJNG z`DKgaB+g%(uBOhKOjM;+my_|hE27d8Vkh!d3$~kZsQSNr_a#VT{*1@U90>hSED0kNpE~j*nUe;eU~ou{}aqMhL^7-fsC=To;4! zUJ!CPa#X+@K}pBOK@)al&Jg4WG2Sb0*Fi1>_Qqd>Lq}#}9Ps@#$EM9eH>q}@d-Dhd zJzG3%D7q0p#PdyTSqQAap^F=22!x|NHrpgq*mB5s)woiXnkd@n0^tobmY(`<0yQ76 z2X?OlBv8IT8rlaxr{yzMS(f7yA9qF#03Eu?HB|G-(dm14cQup_F-67qNyIt^W)Xh< zD>6VjdseAjjE$5&PgMcN^MS)d3>Kbc0Vh zocF{h+&+MN*z^xZnIUq65<$>bpjidTXS^v@oQExe@-Z|_iAK;#rjnfe8ehf{(rv(? zs3Z=4cY&}b%5k_=q(|!__2ELJwh1-|S>2FF?&u0p_N36Sn&X2pLHKfWTuQJ91jGYc zWSO4Y2el?-Tfb)o7}6n`|HKpsbSntXo(Ec#RXjRy*X(PZO)6Ul2tU*e8@pnB&D21^ z*h8+o{+;iKJA+${0O%I!Z$6(o+*#`wBcIE}_-g-1qE6BOJTA1wB=B0^Jg+FOtCL9Z z;1gU)0u`iZ<{W9=Pz+rFHyeA58{&SF7`94Gr9oxdn@cfVp`QDj%6ts1N%sj)K9q8g z6h2R+15H&)stZsw0M&TSG%k)jcf|4aK3yfR-~4!K^$PYaKpiU!1jludGQTmm|V7#v9uuabktkGUYBJtLf@S^kmLE*;$gmM7Ug0S&*YKnlyI0a z-7@OpG-q(H9frc|7Pb;56x@g1y=Xkv?76<5FNrMU2x)_@h`rhU6AaRAA;OAn*`}a2 zk@clm`l~A3h2O4b|3spAX~_cXxi*csSAfRfLiGb8hOPxbb^Cs)G@K}xxr;P$qq#|6 zTqrvnMhv>Wd=YvSX#ZdvY2n9vIhTEYri5uoFwU!vD$@N%nut;06q9dj<^uX$Kkpu0 zRddn7LSIUFq|PMVV=pQ!>M2$5-}BjJA){rTuU>h^X@B#E29N#ikGD_OZ!FDFWcUr< z2yHc3=ZII62@zU`izWcfLvx%02Kem_7QzQAl6GYWvoMuo(*ucquyI?q5rX7&79Y#C z273mQGaQJT4OqYm>R-AFAMKd`x!MiY;{zass~f5;S4Mk8%^Xd9cC9U;7;T^US{#-W zCbnhG8_7%xuFW65$$t(sn;iO>V})#hug4715W5)uXlfw@s;g^SXF|ty#y(+T@M-d(9?OlUMS&vsE$f9ZysUqmu;*B8{%X`W?j7#~*J5)R^ zS6E{HP~qiH8B&G%J$e?@$0m0=-EfxX%nQ6huouSD765ys%A%Xf62_$*8LzHYs>cX| zwE_<}0s-6>!+Tq#8X^0gknQCZ;jw)(9`qXG^SB@IxG_mYUK_0?DxPTRNC?dCJ(#nH zK_AsvRF62YavX&upcR9n8nOb^I_QJ>$wN9H_R%{^NR%Vgu4g^(fB%9kfbG6nn!E1f^*gY^An9yN9jg6jH=xgJiF(rUxzgM!<^BZuM0p^-hzd4d+#mI= z#PShav-*wIPm!PK@r(dR0N^o>+u3y>X@ADk_a|z6GdQv|`Cg#6JF5ivijb~juS5CAK5mX_ElSY)Whelw!04_&+o-~*DpP)T_OA+S9q2*3Vb ze=1$ly%p!ZQpw_$87%0AWG`MIX!&2dcKN7A5c%o%iDeWIv!rgzT!l|O&hTTwP%yb- zpQBmK)(8U(g$zHiokRtP!dw=U9a z6c#%8GT2y0*$Hi(Z!QuR`VN5^EjX#H5JuFf)KW9-X3PJy?5kt3O!J{;w-%9NVRAGmEnsijLU;Ty6l%*<1n!^!2P6VPC9vW(-zKDw@k{wOCba?uKurU)i_>Sk z{sq?T=(o?--GlRgZ(^4+S>}bTDI_hc^mz~B*P6I;HxKuZ*DCliW?6-(8)yWrl~T>M zF`GCEGB3?e{_5`e21Am6-rr#%Xkp!v8sXkL%1!&i3ELHv^p?0ahlG&c?x`ku`+WD? zu6sbqle-1@M~|Jz4l$TEp5mL~+TspdlK*T9dPd+PNGy_hW+Jw#^K-9+o`^WNXhPHG zgef)7#-o^;$KN^~2~mUEO}0U}AA7&_$Z-n`(uI3l=-$xt;b~PkWv6L&p*p?#0OlJ|OKV_rE3njlJ)4~D(vkCIPH)Q~l&^KB!9xvz6`f4thH#K?cZWHj zNU%K$E)^UHksqMJji5Syg~0XvqMqEaoSw)^mg;KpE8GJ(3$pc&tQ}lsJV&awyw_eb z9g}Hq$>N0gYhWk5o(y(^UsFV|r?!m54t)z&EhMRMAMv{meL_toJKa!uPPQ!j4{Bsu z`Op(SFB?*JiYQS;Ch-uNtq(vY zV7^D&{<4zIR0{Qq_W)LMCaN(Fyl4ogg7b!3oGgbkNF?>`k=}K+3B69v1)>XO>Z+0$ zT^7%^^fFa=JSi~R%E*_h@OMNj%|BGHw$8u;?EOWTm0&q>VFlMTZdE?#>xnp%2UFZ! z+4P7qAvq34T~I4K>_3+GLU4gI0sM|`Y>nOM_z)AA%_xfr5g<+~q#4m++rU%>DU=?1 zdjD&8F_Nn6{hiGj@Gv2R!_ug(kQ)ydDtyH~APq2huk*1cg}e<+cPOG;;GIBM!db$b zB5q`vj-ar7OXhTCokrySd1HCgBc}n;lw%Rt7{|!$s5tcTdi}_(e^5uVsZqbIk?H~4 zjYYNpcDe!?+fjA>Lu|)OHiZdO0J|s3v&9w_Gsq?B%^e5^D#;XGxhy-|s%{q`rIh}b z<(6!-Nss>m?_Ovt4B-ldTopJlBG(%AB+!%>Ii%l-4+oB7^CUqG227!{txx#Ai~@7 zPO*uja4@;zMKg)^|NG~=5066=c`IMSdV|qB{w`H`0*#|U5mv0vXgnw2AFT8qb~M%z zwIm$?#!v%|uX-Z%cyyMXYROJ~*FzcSHKp5M`JZWr&bNk3KG(E4OQzc*od*LM80TZ1#kcC?&stWLv{8`Rp19NjXQa zyFs~<2x8lf+sd&LWkW;w>gj#25(Kg4VzZ`xU*lOyarOMs8B1#@3IOqohGaS#+~<}o z4FG63PjeW6p`iG0cOTQS@^I>s&mh(TV3{vahXIyIsXbmWe%1{A^*z8Jq>>cPS6$8? zf!(IG%8_uhhYT6TP%d1mT*&qv!17YG!L6pKz)0h16prx@sT|iQq3&U)N?JD-j^`RK zC2&`d@8wnuR0#zK6!_p!ZmMuhMHQaE1_$XvpUJ-VdIBX{hP` zhyqEgxWGtJXFoZ#>Vb6<{|Sr{Pf9uJM9*pL%W44|smTYRz85uf)7=1sDZoEemQi2r zu_8>S2O6^bUHu>{n-%LDgjlY($k-AS=_>(JnX&KY*sUSBoW8GP=#9MnzQZbP&D{P0 z920FQJ>9@NX*Ty)kom0T2xl&110neBS7@YPa`pfh^p6JCG5)oA4iAIXGaUcTtB;`f z2*{|`QUJ^2U09+zsVin48v`#ip56*mcF833wJ#A{OkPl2qT3Ptsbt@>Tk2X5*H&8x zYs73L>1H#6UFXM7CUGTb?W42nE9ezLmlfB=s>sFt*_KO%%clu9$17CgmAzpqe53*9&=!AS9EeSOWMZ^VZ0X~)bj zFk>}nCW+FZ@t_4bB{f8HUBi?>ein(ZB_bW+4yO82zNw5KRS0z75G4*?_cP_|%lD(< zLp-}`fQz69#!9%Pf{iFs@|m*eBCxzK7U(w-sRH8+u~){v_3G8Vnbrawe)PRd@5Z(q zlyWJMQ@<)#E!v*(YJqQZ;smo7Kh!n9dkpQQBS*(;OY0UkBGV2PdO#V7DX@J>Sv1*p z4=gCP=VU=xd8n<2cG{t4sXLNi+UT-zDWwuELpstMlp?svHKlJ0pvsP@vByh1dV}`lIfl*j$UMj!gt4EX?9CF z%*;5nURa^jQDF@Ao;L^Dnk7w6P`WvWqLT;X1B_~JV)YXB0cU9nir4=5Usvus;5SOB z{48cgQ}&b-CifQx{%D$xS_z_ZB|TV*hycTl5uolOAJi52g359;^&ZjF5C^~c1?gQ*bH2I_82&MLg16Hn1`Z=g;z z2k;>#V1G|o+*8b>{0Fdt_E)l|A@UTE2Qihfy55LC$O=s68v-(+)!C5j*ep~a{b}a@ zZU18DJL2Cq9j&lJdgA>$;Doe^9y{}Q!fh};4BG3mNIKHpuyps69Nx7HZ&~|cmgKxWAK%__awP%nGO~ivIF5#f$ik4_rP$& zXPqydzDUoS5bQ&!h%A|m)X9o)fm9gNiD0jB^XUkiW>G@2_G^pdUm5S^3Uf12&ZS>K z-QB;HB<%DOj%ydp&$-u6=e!PO=m~=hLOx(wfQrIthyLDBV$bVOYpU9gv%PCVFYy3XGznY;LQ5#=**ha4Pb{|KW!7IA3`}iBdt{-SU}*^C}c{ zAUpg{6Q42>Di?WSlDC)>Q6fRi0Ky+!Ynx^tM`=Q|X3d znz*l`7>XRgUM0Fl$1|(IT_*>soP&kXer91Id_or)`pSG{JQGZHPy(>H+ZC{|aK1@i z=hy^SA(z6KRLOr8r|xWZ<1*Z3B_1&L!!`A*70I5B>Yq!N1R59dSl)JdiQYzd1TQ)s z$bJm92WvCQX3l0lx83f848q(*oroM zBO*qOLQWSz3+x)9Nbc*Be^*{7abnhNlX}VeO-GkECZY#=0P%tvqin&~uZ8RuAY$fd zRzjuiec^(xz(DEdBeR6kpFj|Hr-50X-s#(WlhKnO(EM#q@ATzr-O{3JN(eTn8c+fD zoA8aEBy`^ea>z6Jx&od91ySBCYblZsSP(-E#ogIY^Ph4lBeAT(k^uKWPhh?OOwn3H ze_r1bv=$D#3;%jHEQc#v5{g2FrPdVBKI~xS&uAL8C@}U{cW6N~G*IYq@9kRZgOHe} zchf&*7rGmTjtRA6HX^DIe3hFnoGd77_?(%SvR;T{r5^*VE5qV#y+*)2d_WUa{kht~ zbW#pU)8Br7!Vb~WCF&?jW%WOVH}%(N#~o3Xrlhk@p$nm}a9=j=!j8*#X7jPzEvb>~ zPmBex6(3X5hE_mdl`bQ6Gk==t+mhs;Uf9_?sB85TiPTud*fo=H<(o>URs`f3F4%lt z6duEEq-um`LjD`#Dlm`wL*rjrkC>q%ZSQd_05(&YRj{o`!&0yho?nXB$9|zPULlhz z^~(asZkFBgz%wxwz$$dImZ-SkAR7<-=KTgbyNFq$Za~2d^#H&9KUW-t2QL&cTw29k zjgR23Zpx_yE1HW@iFXumjqt4c90m#kP4O&q2Cn9jnpVuTmaYhCU?qRjpL47MaO~8LW)}$Xn?WRZAQ|YX8JrES>?~ebh;(u;3$usiXs=%_oAb=5 zWJps=a11A>k8(N68mijxXRh=|{5v{@5IyK4flb@c+YRUS(AM%os82h3f&hxH9K3in zI!gLqaC0bww{(ptfVZfMhm!=6BwjkjBQUL>;U^Tg8p?vod&IbQgRJOPQL{?6OE5t# z@kP9F;JzKxDuwO#*F&BKp>Q2vL644}Tn3K%bbtdpT2^xI$WBUwsNVn71q;VoG! z#%_B@4z#z*@mqTx#A6e5T53V^duj3DM(V%SXozIWx#D)n_B5sK( z0-|pK9OK#iLp_NC!AbOaXBi+%^!-lx5e;m_{8916=Nqt5cvQ<#h02Ep8VXT)cCZkY zSzi$3iQpYpXyc@aD=ML6`3CVGPiiy%*zP>~Mo5zz&KL9^y6f>+^4CL)TLGJ{_y_-U z-ZI)m9b7034Tx8UL$g$t*fP-x^EPcO47tYq4ZpC4IM^3UC2Co-Ota%7b?f7+ zJ3S5X#%Y>-A4cqj_->3^vCxAW29}&1FBy^PZj70p#MSQd`bYoa2i5fkEWoe!?G#$z zhK-u>7H+m~%c4cv2lGNddn$4^-L8&XPW)TvPv_0>1rNJPaLDB2;==2N(LPJGf#^tv z3x~AIq7uLn7P8D18(U{c9c9+|>Xj$^R91jryb&zJo|7KQ=-kNFmgvb2K>}4TGV@->TkGN=n`c6^Og??k#wQ0(oEEAd@4&RALYCWn zOG29tjLM{^xuZdSS6}_C_h+fxjkaOJ9(m=U~aWM)zP@ zFE&8HNqo~MKLS9{98d8G0rXMaWK%Rao82jZ1HA)jD?{fny^Ke>U!U1uOKD@VqMpRE zGr0qmn9(8IFEL-xr1;DCKMybmC;5kMi`bGHe2sc0sT;0|HlJSV#&xWDzyPkvk~?q` z!?``k;)u$=!HGlditrTK@Se(Gwx#iCHxmMg7n7dG+LZ4^Y(Zec0BleuB_vJ094*Gh zPrFTVdo7$U0LUJ=;WEcwrG~p_cQJ`3Bc0B^?V71YC4>WIVA5<^cPZ}_@xWj@7v9mi zlF0x85~N!J-X6>%QW_}_BlAABgo#>KNUc9?rli86}cUA=_s-lJ`B`dPV z^eF2j2@1t%fl&cRh+!9ut*%Uei{T<7zDH8^H?l~9rplo00Qk-2n(INvHNPP|!4$NeetDL{r-*(pu6f{48ZZe`&k%<`T z>G%uR#-MR&`9k0!@>8*=r=caz{-aF@hjk9p$N1i0&bWb>Q0l^vPhQv1KB8@RA;1BVg6<|su5`B+w{pK&P~x4#!<2Q z1jD&*Q1zt}+kmTRC(pqhQmTEt_SYf33rUhoO@za6b5j6a$tML+VDc6WlW%LHmSBum zH`f9h!ny_xi65=CRl@<5t2RB*MnFmfELjhC|4jggYiO|2IPL}Js>787FNU0c?yd}= zGG*G+iK&ocLcyX&YA7C`kbXk7pIYsFFb~GlsFAgpM-b=M1^Cls797#lYvqMnZP3pk z6DF4*r;R?tCB{TjGRTm_xicjLD23NI_wQ&S$&nje3&{gIXdph~u`l1nX|7VEh5w3} z1V9gQa-r|yK|YDxh&QXhzc&qyw*U@J#|jf7RIC#lUJG%l zDzC7&Z5kS*#N2-Mi;7k62sb8f8CFH58wT=SqVnNEw3cVZ&GqW)oye{T0itcY-CS)q zpxVR<#wGju-FqX$kdM-CB2lPFgoiVH)`lODqZ^v>o3_CY5@}@I>ujbjJznsw%YrfK z2`DC0GhXWN{QR09k4={uk`H4~x}*@D5&10QWjw!`?aO&m->jQQ_$EQElGGpBGPImv zk5P|GCxU>0&0m8^Lc?-!*WJ;UVF8B+P01U~3t!}F^7@YBU8>K)yHE>YCPihmki;A( z2*hlEuBVt)dgoKD3l#~Xap0{>s=8PUjth!^14aA>jQL0p8r}^=Dv6Ne^Q4HZ2LM>m zVMq>5IP~pagy^rHK;dG=wIs5lIbmUzq$mDmpLD9d2Hw5clqfbWNz3B>_y=|DjV#MA ze<4v>EX&2SAV%+kmlbl}s1hPv0V;^qEE%7J0sq*|!tj^j#lZ}4meN1-|zC|&A;1kA{D4~Ku5XHaDZFM9LvXFG~uXqV)~QOT1j zJ>c(Veat`V^fZm6e~2U*y!CL+TX}B z12QCagW8_l6-sEygGczVdQ+*%=OBV!BCCDDJz;z8x8b;$>uJe7rN6scj3uN#Jdo%!9T z>fP@8@tM!{es`eA`!iGn@=A25}!@7p6f}BK%}++QG3U^#{N_lLdRek6L<@ z+9~M;9`RC&w8Or|Fk;F6$QJ-fDjkmFb`z`7ZXy>@XoZVABLVa$J^sMTtj3M&Vit>^ z*6U}nLQP;>cN(`r53F(@?JK~W*0n=eX1b0E0rgkAuP=?budjBnHo zpev2eH|o`Xmzq(`kpl?J+MD$?ILj@^3p}>&c2)(_zf+1tqW~$eZnJ_zo1X6|8ZleE zbp>S%|Stc0Vg=e zE3(UzF}F4Fw5d0ADI|q@v<^_Z#)3lyc zIO1<;--it{0$M+-o@AS4iumyz`eZq&w4HTYPFf%eC6OHp`gI;3V~D?l>~2(5%#2$) zd~lWU4wRoUJ)!GRB||mYYck(!etiV0gMs4H`aP~tBBx1vRl1is&=%A<#v!!B&j`4( z86bYojL%mvy3&hFSToCSyHBiO&v)o{J>`pk=-;rY<6njiZ=l}b;lAjg*tHcZ3A7&U zm4B0pMzh9Fasyxr*$xCBk`ZKu*m(`1g{aV2FTFL)1iQUTyd-+?bsCgegp~@1R*rdz zQJJ+pkMmLwmNcj|P^0MB_KnmkQRMf_~UN*uGu5RJ4!}C=wA5+SrX!JXIPkg4Vm@NLWrKOHbXr%Hq%zkMtT>7 zjRh#aa6yl_>}$^QK|O_g4G?Sq$OOg!5-HG1X2(Q8Nz8N?c#9G2TQy#sL%k8(g! z;^F0AJ)louHF;IlP^pn{3UIS!V?5*s!>Wre$mv!30_7no|~ z8RNRaepeH$A9IP6Wkq@N4)b&HIZO_re9 z8&*t!;oevti~#?}w)Tb=!1Dp8qk}JsLJQ$N209Ihpm>#Zb6!Tbh@s~(faPfaHiSNi zd{n4Nr6Xief}<`JQ$6yRVcb|K!&kduVUry9vaMnG?O**+r82HQR*{U4m25tIErXSl zzNzs0M@o_xS!HCPzqS}PugDo!lbifjaJOx~Y_X`Puf;YH@4#R18Q}D+7bW3PNo18U zswpm{%a&@$nugDm*WCpGCPwJ&8%hEhsVf8Jt=O%|${q%Z`YI*wUwVn-Q-M zn8t2#{1C)`h1iV%m3}=(ZP{z~Chlvx-D%+C>)kYz*1suwe)USf9pmU&+2HZf=)&W* z!Mt!0E)HOk(W0{F|qp3DXAkPNwrdkZy^q3v-&!f7z~pC)rbIHzEMYO_B2X zhW4Ju+M#h2LeB0y=RRoySfYCa$liF5!x?z#!8gOx5VBfyCqT$(VEs!<@Pz6-F zSL@raaArS=<4^n>njio!9Qg&*9rWCOqMi}z0Rx;86;pb5{Mque+7*kIAU`0Lz?IK=@cNOl(|x? z2)`YrqGEuxC-)RFsY3!ie{AbRz$ZK8A!!JD;7pP8r=`W{qk{rzXkKoBVTeJ#q)ddp zM0mvxY!d<>#j}Z)r>(nD%HXG6qGXWsw=4~VkU@oC(h5dOyFrg?n z`>O?%YP{QHG5IhsK?NEZF*?4~C&HcCHazTAnak~8X?NlfR9zeD<#3JAz3bpM!+!a%%7@ZpBm zLCELX1z5Fz?mkIY6D2=u>n_-{YFsP23@P1p`Y1_Pc(Bz%YuW5u@7|ehctcaKRcVL9 zCp?K{=ymYEa_aRVKUBwYuc)du_>h4zg|(JETJ72j(&v;07393`=70K6L(SBLtwLvG zYr15`xv*R)w*k3Rp0Q61|D1k+@RkFkjzn`QI;kDIlO$ia$ny@*hn@nVI|02c#44?bR!@uK3qM zW7&%aH|Qm@W}^MlP;O$7^JHes@YAA_VPRupx|rBOTi)VMkEnY*>TI9|%2Cb~X z>tXUXPOKDz5{dU`HndL4tN6wDgoX7 zu3I7HAtCoG{hgv2kOS2c+&->!*ji0)lk!k7;5= z0w1X{T)3ze&^Ud+GsrI*XGl%MEJZ3Jo+`Wv+uTYBwjV@gA(`ai5Txn|P!`LImUjI8 z&tP5D_DGqDZvo0WCi6ggC&E)y{FbR4C^_M5sjG}hU zW=rS}crpI+1v$_}u@Rug2E&R?BSw0-;MY+~>~fqG0d{x8!0yDV8U^Jwj_nha2U(1UxeKRh~L4XR<5%(93=3*Q5B4j&*TGJ_hJ{+2Jv#_RTEbT5aqMIVx(ZSO+~ zTrwzQN~EKCcpN_q>S0SRfVXD2NRV_4gKLuHX1$AZ;PZ_)3ucK?k~cEOAx{MJf(NCf zsBo-UrjHPl(4*4FLZ7!#8~LZ=cpsy{kG5!oMLkx02c5&@uIzUvK7A;iN0+{qJPSz- zAmR+cwj%#iduEFq8LVUfFz4|(4ZGX!?wy699kOcxvME8aC70nC-ztXW?2r#ffF{Eq zlIR^DlIEY}^wvuno&X=wojE)ka^!f4mPxzUs0K}bOOeVR{CG&4_X}zWx7HiHPa0Ip zp#_ACUD%vMYC#c0kXry2OHx6?x2DmFw^MT8x+4$Chnab;QlP%RiXzKyOW-5SQUJJ= z8+e-QC4C_1SK&;jH{OYf#EQj>S&YsQ=ux7H@lGxZUI?gmyYADKJ52FLsA!a^8h}g2 zu?S<_@qCB!$LGvh7Y$*$ci!Ow?e5bB-2e*A>`2aXv|yHJpA-CiwyxzQ z{Gsdl8+Yyj5%-_1Rx5}RAYb8QEW`bOQ^uRaBe)f;8&RtO1OrH*i?`w%3d=iij8mlg z&91w~X6vu|LwVYW`_`EoaQ0QrgaULhIrAxqbpRf%0f?j8EA1)p_F;rB2>A;30j^CO z0lGZ?U28rLM7ooYLQiEKcz#XtKARF4P+l`J!>{dCgNDNW`}_M3XX{IFc7Vg-*wt@Q z!qpjn`t|M4zrMZt;k%#T{`$*!AO5iil*++u$f|dtVE9^fL$3+2ES=gahZkG1O2NOu zmXp#v{=Va-wVfsK6e?fvj||}q8%fAaV;_;afn-300|jf)2;umbGt+XC6jEfIUsm9W z;(1j4xM;mgleHxzH|YJq(eT5Hr#ij#5-9w)Rq!-;Ax1c!yL`?H@%mQ1`jHEyb42I!%FcY z{&_&m5KTjuElWx#C=AZ0hF6_yRh+q&h%pi zuGD>wAx1C~2-lXaV{)|ZpL?;&wE(ZjLId_pysnUi2i3BqWjEf4g_zmTI0a+DxgnSs zmLPECuq!s8(mAM%Z`l(q3kzNK{>`Vyr~dXW#J3}5FjwkTz{A(g>>-i`w23rvi98+> z<>S448xRESR?>S^=a7*v;`Oz(lBNMket6*BjcrhF7%y9_zf=prlO+!~9NLJJ`1t;} zJDH-}&Ww+B5=JNO8Esp0**%yX1_2YexWs$i21Pd&(S`Z7Rj{BGudJ4j^Jx6FuTv|i zYc@&nmGUh_yCiu{r`x+V8Ifbww^Z9QwjI`2_$cWaE?QqnmLG2DM?h~G+D*I-)NQE% z;F5-tFYOt>FJF8d`gx&o9)&g3+WKY#ESybo9C2mq27PWVNBbW(y3u-IK_?m@5>=Gd z2K0j;1-$M=v-bZZGCf=-tjS9(WLa0@-PfMB_!Jd`D)vcP*-mDuGj=V_aBPlM6~vm9 zN^d1UqM%UnEiaAoqdpNnFW_MD(i2R2Y(2A!Iw(e=&=E-BMXiqkwE%MxxehuX z_}#~c4%zu3;YkZ<12qCkC_>_>m+eJ14?P?%`CrlDKe_=Rh;6VAnGslM`G@USVH+gl9}=1xkwng?KnL zFDaFmH0TRD58=MPIUr$3D@v?}Xzz55vbro8>$HlRWzhK5L6?3f&w!0Ks_>A0Eh~y+ zdtl+H|4k=p-IqZdekqU346-)7&t`G>VzEmyL{v0t0jyIQPz5R;6kHT6kVuMg!3Oxv z)9#4V!NHY=ibGAE4`4iRd$@w*6~YyaDE)8?FkadpuU<*`g@E9wmXbd=W8l zPELMVI9UU_dv~YE-ZjP^i+5|q)FdMW4*>P^C2FGSd5t zi1^bf$zR#4$-0%02-hFIw23-8I@B$`nKZAbCrK+pIba9SuN4s-Jlt@tqo0LA@xE%( zjkvB@d3xu8~`V-{ccOJWbq4{cb2+hSOE!HQ7XI8IHS2A2cpaqN6b;K}ZTd%4v11fFk; zE=IAXjDzRPxz}|FKIeTMGF9jlm=w_eqwMJ?I{oEeuINEvx2E86wtS3K4nlJ19#LsS zpdpO17hNr~m?}I2m=c^^fjwZUU+hP{(O-tQ86u70SpAOvW9leOgjrygLRqyW<_H({ z!rt*2UrEA@8G)wFs)asVuU0K(mGtP-vHRx$)CJzpL2h=KMACrt;ZdM(HHr47``=HX zl-3{e?C<;t(D8%kIsr#lQRQBrm+LGrufYKU{&<1aOZr6GTL(Qi`bnne_L>(KxUUck z%C-8mthY7F9G>HPF)tRUgh!`(^`JjbWMW4(X0eSxe7fiD z(E5e7oOk3^NKA&`4(VYCRY%E!0m1m{m3GcMG%tfi!1oc`I4`$(_&TdnAj3w7zDJ<5 z0}whL#6dJJY7kVK#gw4#Z?D0o-YBPAkqTz*1_wae@_1wWP&(Fmn9cm458{ovW6&^9 z?{4^|0U$W+WKx1)Q$%u*Jpvq;o%@Jv|G||x%cf=|3)D#v-lOVJZ!6%pc0wz5ZXcU} z^iS-FPm~BA`rYj{-f<|k@`TulfnlMw-9he%2TjD-f@Qt^LBqG>GyhI5_EMBdA2ltC z%w7bIe>w=8e2si_9xvnT+C>pv>)5y0cqIU<5M0f8KUsKCKiNqr!4keuzaxRjHuog9 z_Oqc19A2&Wy}@>}5jK0dMh?=4&=#SK?s87=rzSx~5u5_IibF#JlS-!mxjPxRE#MwAIsB2Q)dA1lAIaU{?mqp}uRp%5KAT~A zMAi<%7s_3{LhygG2R6*})0!~s?fT*GfaawHnLe-mmP!-O5w+h>ewBbpBj9>8S3FH` za#YO{(MnvPaO|ZPmcGnmF>lt$qzoR2!!x3(G#waZk|>_Qi^okbofT6_9-`X@p+Rb% z@FY=Nx2ZjJ1c&7onIsB)aLP*f3GvsCMplK%BJ4rM&Sv(X)4BcQiU+(6-uU(J1nV22 zp?CMs@7|B)FTzs9c<4^Tv0*7l$B9{d5Jpei>AJt!#8(2`4d~X&jAn3s_cMHDIe=}& z=7g#)gi+=}xaJ@1Mp`YYGmw)jOX{E>`QqqBCM_eg=AL~E)D_u51h_M%2w0PD9MBi*avp(lMe71Wa;uHw(#u|A172HlP@!ti1r|F`-}R2gE!IW$3^|x z0C90muNKtlX>D!MpqrkaBLBW;05;Yp(P1=2s3biBUAdw)jF^w#nT1Nx3h9aaMxieSJ0%}ke{-crY}I{rZ0e1!4M@TCIuqzM-(_Y^EZ{= zCsXW-svt{3iULQjafX>j?eeyNdVjxpY!ncQjmwy{9kph>Ik)Ot;#h8ngasum@RIEq zG)GS~0FQo>OVnQ=3D+xiM^O(RZ|hVSC&hy-A;y3$0_{x>h}F$_hDl6x{PPJZ)AZ}f zQbsCtN6ucbnzL~tYiXAti?l*!7>Q{wbSkxAee+kZJS<`FNvFAg$1}O7;jFU7cm<{T zH|3sGY^+kCbMU`W_o+qsV+nAB9!KA%LqGz&?|dhJSQ9uW+Z14z1PI)~lHQOXH~~(i z_-xT;Y4fXX+(YN){JDmdVFkl(lh zZT|Es$2N}i698T>yHw;sX=kp((MJO|=cE6}xJBi|vngMLaom>Ownje;@v+GxyI4im z{?b39zz|D9CRUL?HjEc06K-14XpU#NET0mS{8|-N&|&9O5MXL}bwPYyke`M-op=<@ zTJ{Q6zp!f`2#YwsW9SRG8?AK7Jlfjh?{@CTi9CX7w6P6O&_O8t;y?$?1u9$vdpTJn zwY%jr(6FycEFKUqS%HY%s6apVfTV{-j9H70E{J$UhYQIFhts~KEoXuy8 ztQ;QhCC%i$2fux)33O0D<1V0wp%=PDlmSnm_=}#^45jrb8G_uCExuvZO-k$gj24GR z=QoDULy=NOSfp9#kWX&q0DQf<>por!pwHZ#wz|TiejLyGdEHlcOEL`WXZBWYQ+WaQ z^>45P<3_YJvX>)Zu?DH=p_bJeG~Q&Krc#1pGxWC)#yN(;lQ$d6(K+K)hJy|mx4pf$ z;)PhN^ZoNkQB!!;iqxKZ39RC9?gN2hsB1Qx>vsS-%;I^`WA{=V7>R_4t zGo7Ze#_Dkc%vO*`r&qBC@?2PLh>H0klv4RXtyaXA#n%8&cm;0=D+<6{@xDX64hjwa z^B`)||K6=Ny(tNxW{8kni7hH?OtLzJ3|OG^9JW%KQzD|>{b)(hQ<58 zZXVoz;MhBy){7wX*5FI&R7g-JUcfV|OLqwXzPS1Vx{`x)xJ6$cSl^Cwo61MTy$~c4 zlgLw3IE7$0QCXrghIEcU>_l57T`;LdDPS6w%voxDWX`gGFCZnU>!Mz7)mxU!2i-n@xGJO+`{T4{lr9k&HD;IyS~BzZ*ZNAC ziX{{t)Z8Hy#h2_S976x!1)ClOoIdCM;)#>d;@H4{qYD=ciV_S!rZG4L13r2gL&un6whP7%A z=w^-m?w0MyUzgUv0rO_M)}_kqQJ$Z|d~MIs(F+}Scn<%jCk0K)Rml4m|`-x7c^sXGf21X%ddK&DyQ5fmjW^_b{Q z>`bx+l_`V>*w>WJ;E`02Z5N0!2$bw62>O>{y|!w4qR;mQs<4GLfg%1uNT;l~^s9yM z)(643k$fSJb%mS$nxA68e?&!O3QN$x9oLToIfOhKiRTJ;^mqrKA^)(+z@_Af+)&j+ zTFaj#tx9Sy-uqhi#GNMpmDycC-apgb=A{rlZz&cw;)=sEOyBBDQ_MirLD~crFydl3 z-qfAaGtL*|1I=7A3pfs#8z3#WMjm>cXQ!$%3AT0vh$rtCfI%s1PEKH*|KNZU3{ZY; zN~tq35*WO6VlniXK5RY*Qq21)SYwzCWrTe7lqkSE%IPI$) zsUa8$0nbAc8oWx$g>5KX-|3PS2VADFIluJsA?fa(NTK`RFI#+iw7J<~^@sKi0QUUE zYs6(PgZ}{MqOXA$Cy#qkk2-ArtnGl6fD522x`=0~lIUYPA+PT&8c#x}VNM`f5t2JIn=?plD(Z~QX^_xf46N5xw zra=LDiwFbB&SYSwjo=o94t~HOrm7MUM|cw&LH{tEb2OC?+-GrSMTRhyAPq}Qs?u{D zOppg>wp8Q?^IY620Ftm>fV=SfXgvQIz8Y5-38t3l~5~wu=e(=W0FpTPgIjM_u1@G=%gPtD-*cG#ezAsw+8w9x9O<$#_ zI99l=InU0tIoM$lRfc^6P#3cdzx*Uj#pKHbZoYeZ+BLWLn`@fP+9&Z*?sB1nG9>O$ zv7hfxh64!+%CzWZY3Hx-Id}UwkV(r>_M|)%Ff_h$^3m}UlU-`B!sSt&Wr-;hK9oaU zB`57t?ukTVp8;<^sApn4(gW!RiUMSIatCtv*~=(R*G8&_okfF;5!FL#N|OG77C$+B z((u}s5{Z~rm8cBJ#i>>q%GX6MZ93Efs$?uK42M>@Jud|`;{%87mYhHc#RC}(BpO(L zFbas&p{e-+M|TA^k@M>Nx4XU%QiP`+zM$!VF_c3Wo}XvW?x6YlbGDp)u6^X$mq>pa zq>g4ZwsrI^T2ykvV-CB>@@M+B;ACURV7&sEvL>Gcf&e!u8N~}<18^pYK&+1?9ZMKP=2J!%p({10h}oAa(o!3pB3;t!2$A zwWYL}!m-+S(Bn?eQB!U%LvoHYs!x0q?C4+ePX+ zJ^sM@ow}Nxesib)t46Lt(PcwrdRw4?F}>~qLP%g3VDsbM*dQCVDX6kAGuF6j@~V>Y zH<^h&TFG@FG0kgHRZoGO5dcO}A!fdJp6KSY?_eq9d+K1xV}Zs5tc>?5gjJRVKhal; zl}0F_3OBG0!T#h>%#yp8EJVIabi}jL`%wMnhv(hn{Z1($IURS7Ja@mS8kkMezKVD5 zk#+hl$Cd2WtL^h6i_VYyQ)|u`HcWV!M=>Q^^v}z_1nh#6ZoJ-5l{>K8mIX^aWpG?U zE0VF~DQ$_ZY!Qrd276_^=`wU)9x;u6l4xmvopmunzNa?TQpE3vcz`f-m4V_6HyTP2 ztj+s+;zPNW+Vj0e@>dI!IcrHxT66>WD^S80*oLhN&Ye7Y{Kog0kE1jgC98FT-0+&_ z6)RbK?1|P)elJnTj5aj*L29(DcEhn@y_cBV>{-&z!=6zcdK{ZvYV=U7hI46bl@8+I zd~l!kY%UZXrnQDp7`F~fXs?VySsFneV6|C-=%Pso!-ct)Jp5sIJhtxo20^N4iSl6? z$gWP_-{oM=!okNY3VS6kpEce++Uu4riC7>g5U|sihu$!5EyrGGz#pOpi3ht1Qg9*& zj_knwRHT&FW;7oefqt0T;)94PP*%{!O)u&@)fs&YBqoH4@gjckMvzn-?Z~`@(FZLz zeU1}TD?E#iQ9n}n+pb9uw)p_|=IZVl)iEO4J5WqFUT)^KhT+~a?oqp;$;cFe-3BXue2r2jfSd7fg9@)c z-wb0eLdg={b;+Ikt)|K))@2a?#4B~UZ|Y``d|oefG{y@WG6F#xl%W+tvR%D)@`89SsQ2NK?$1j*Jg@zi4=w8Jeu(x?Cb4{^s*dszt zK}??Sp<i`F6tn|-=RBZ~MdYP92PJiXpTnM};IfzT3q0Gp(iZigQ&3w;H(11y?SRd_UhDX6T` z3G2`)P9NusBy`BBYXq|q{)Rft5B}cg`2I*oEik0$ZqZhG)+VAQkk(^EqJ)giLiW}N zPvC^+M0XkH8z^)>RFEDxGKHfSPC-1Js8|j{W%>uUoqqENtrjbyCoIIwo-bo{uKjkbbEfuX1!SVPAyv+xUO8+SC^CO37vjbrN~*_^EzzO<@|u=-;%W zOuY%yeE|(n1b{MlJsYeLbH5K833mLO8w<9a&O1?j$*Mr)e8Lb*Nc5~A$y0kvy6vWj zjI9^SH%#4Y%It=s6$N&3YwSn(KjiF_mvX3d7vz)xa_ht81q2=<0xF~hO!2bZEW=4s zQ`n&kc(sH1JN%o>C%cPPU%A4DHVo38DA*tyY#Y@+u88#@v=hJ(omEX}z0Ju&$oO}C zkGJlELN$6!=?9Wr)zPe;9MXG;vg5UQ+fRMdCT(Df55$p{jD_1pIf z{;G9QhU1liN@goY_^^t7?^n5PzFJNDIA>5gN|&$=JC(#6+TLj zS*s7&6Ho5PG#?(%uKmO$(2KEKt1tw~C$~8e7E1p{h5_-H#eYVMWY2pe()am~i~)90 z=))}_k72( z$ih1IaOrm}zgPA*@>{XL{qfeB^re}s48Or+FKc=f2pCiP0pOKBw)XUKX;@33E3bNh zUBj;}y_g^7oQFZ*?Y;n3-4!I9Tcl8Mmj{THyaO#jv20P_^tTv9WyKmUGhnAHd@GF5 z0`hDDX@PD5KCSWaAl>Bi;9zUc)W7Cq>RVb`Uw$37wbud$sGRA;nHHKiGTuQ<8O&1w zZZ3I(V}-;K*1($Cud6joDLOGg?Zz2+LjJ9_`X5G%Y75H)4x}p3!&-Wheg-WrVm#IN z*jQ56{psa@&1OF#@%j<4LagE?CmAw>hyw|dhM{bX0`BBAG1-rU!N;o739F+rZCcz zgAaz9Q<@3KV}ih_pe90vDR08X1AB%6bF^d%J(Y0te3IB_wl7JJuSgAOff&2$;Hdam zL~)UQ)ccM?50m@6_p+;Z(E~?s17$%HVHnqb?&BLD(b1(FpNCHwcp`FTm}3RV{q&_A zo4~PpTo+p!!)%$zHpc^P0-ULyon7{c6(Kt#g@uCs1~j`(tv{K~81e>uRRk;jD$C-G z_@XwwK6h!asML;PfCLMNZ%ztXw(f_RCPcNVZqZCh-bCf&kkgk~zlThVqm)8SAViq{${ht; zsQCLHVv>S@6WVV!`iAXYE0vTZquJh?_7sth4CeHgAN*D7jioELUYu>yxG~AuyCJV* zgKbd+_Nicj%K;*)6TS1#0t^536T2yQ6oF(RI66*UJucOYhFEWh)6+2xF<^DU2n5M} zpiuINgF~1M{s_MWb!zZSZ+O(2f8EV*9THR>$$_Uh4LV)8AFL3#h$rzkqV4y`V3f1V zfrX<*b@e3ITg2{B>&f{;9W-kQ|qXsPU-%Sk-h_uL3t7_!_+s6<>I{)Wz+7hP}Ey zC8+iy0f2m+Z&3`Q6^AE%ypB(?5sBI!d@F>dr&(S;Y}Vy^ME_Frd$ZvfXUTrY&;Kg* z^-pMEn=NIxhE~o3@NjtU%Ci`iGbYuP!*s;JMohFocu3OqlG-OCj`5^f7M4^>L&=JD zN_}Y>N`mFN75h=2UJ!kn+?~S4@i+9KVVbTwv7$S066EqUB<-$rVqoL0DZi$fNFSp;YAzC3tCBJx_K_U01k7*@3uj3BI z4@ci*D)qRwCjEYQw$`h`bB2WsoCqjyV6DlBDfJ!ju|VyF=wz129n&1J>ESEPQpYG0 zx0`hlYPW7IoaItL($pQJM;McG=K^6&%JA`AdWR~YApW=?BmCv>KO^eQ|Cs)o14I~G zoLRRBFHMiXXcEt*HQ}`^(ON+!r3FgAe?u25iwArR3X}rY7pn!3cre7{fS)R_j`&KK zN?WXC2aK>3*gLokewJ)rZi^aTS?wBLj*fmN=Vzp74{owGX#kqFIFf{uWT)ByJxQvn z`obl|AOE1f9mw>K(g*)nW3HPH%)wlKV8kHUeKvXQ;EBVLq2tj5OA6->^;3XqSsj3C zZ;9CqJD3%Z@2QA<5Ity1gMledE4|1N`2|#51Kmm98!PZ6(c<4Vx=W~vNCBf32305= z5Cm^+Gr;wCZL&<%|t)ND(! zZI_LK1px780&M+YpBJi5XeIX&f4mowZHd?ddhdv5QnieyKdTLeEE+{;v`A$8qSJs; zqC`Ri8L$FTy5FUi-)u4JrH*TVWs{lX*2NnAPbxPEwPWlQp3VZ!e7Ckz(?-6)UfWt# zmGW=Egp_wz$yJ0SsvkeyDp0#Z$_*q70>&(kIp{pzH;E>I=y-bX1Sb3W&o&^_xZ&u| z3=*ZMFa*{RKr$SmWFGNBT_m{gO8}UdmXB9O@M<|ZQCg{+Vp;-*zT)|{U&1giIx@iI z9+Za7<@)Slr}z}@)K)^CvB`#C=7-RE2?eMz6|1QAv9?2WrUw`AAWX{x$K$t}Ow!>O z6gSwkG{}p-)uE0Fkdt{qO=OFCbRA!v$J)d3;|-EA9=yVk`%n5ps?e8+8|MuQe=rSf z{4`z1DVpUb&rarge}fS8xrR2_ZU9y|slc_zD>r!~rx(Apo4S=T-WFsG!@8WD<6<~T zW^Z)BJkh^UsR%XHbyrW%$Us*&_m7XCvIW@9=7;yscOM?Z^kVNW(B;6Ti(LvgJR6>G ziL-$pmEvsVCyFRL98q?0xMX%ep`{Y@t_yYQt#zQTm95PtnXCy|ujml0l?h{gv1nUf z_@*g_Ygw{mytyokr~x8+n=Owwou$x}G7+I`@#RECIo{-08u5*rud~=ol;mJy|Iy~J zrHEss0kD;dJpMYMt^Ki6De57XMkgf()9F{>W8?Y7w1s(gJ{LLk21pA`>1MdL4}gIE+d&F$mXo7m0U#^A zhgfcfKnM=Xvx6#YEn(}a4wF_H8uX@~ivnKI^5(Bx4T`rP1KJ~S{%b!)4I~;Op_&J6J&a#;1|xw%3$hjK1V!W83CYQ z6egZ$f$+sy>v$Kv`4(b-Q-Pv|3GXw^bdO^XEcTbQLk{3zAvv!Il$BLOnMg-giOGw! zEED29{bt;+pt6x7v!DCDS4TH0?mhiPho>7hsv~;BSW?$`OmyptCPBQ6eUPrB8@jkd z(&+DXf??7Q9N_~IeNwDkr|6&j#l|wQ%8p^$RPdgpF4==4rzez5M16=JFz-2TA`{WD zsb*`empd>)NnD~s?EA~fM2~)kT7Y3mq5p+(A4Xj99KQKfR)Wm(K@^I46eFT~fn?Zf z3!uGJ{Uf8$dXRot5mUSxtiA3hic^PvIDi1sQ1&DEJXAVE6gTKI;FFydG zX9WBM51yhU zB~$D99X_oXe}C$B^dyB(i@+6aRsuVU!Z}7Xl8R4#@TT5ojw$+z%BwRct(S}=) z6D~M*fJ~;ZbD_+NZ^Z(GQHi{Z2sei1`q#)^7w`(~@bW;p(4RVbzLl;nH7(7nFe@;l zH<-FHCwQLTwZQM{dDipq?t0oWl0|jZ(d0ooJ{w(;Y!-N!xLXTwyxkG{_-tv{iXbBD z)hL%M!WCIAAlZl^0bgBGX&&7*?2^(kU`N)He*|B&c?!Kc(N>O#A#e-;e9^&%{#1<( z8NQsF=&7Rr&H&)`1v>&jj2&0SA3B%aLC_md2I*m>HDKFlAH|9cX;%h{1529G3YI?V zxKD8^H0;v|GHpe?|y`-qqC0;%#ce8;HC&Pm|(pk=Y*zOPNWWP0@3Rx|&(}c(ZHwx4hVH30#Ln2kHtL zq>gO@)yuUP5JI1$egv^8{KIX$L8w(59q8|67TTg6teK2v%jDenU3-e79t&_2g--M>55Wl1ICKBek@D+rswku=r`Wp1~4+d3~*Z*-N6r!ZXw46 zT+Sphe?{TfwrtusDN;!#l+&a>J9quJe?LC~^RrF-x90+1Q|{>Kr}Tk&Q?(#Rpou2kXp4+_7=ZM+zbiN7g_5faL_f zgHuy)@vLU-XnW#$5Fpd;*YJZp7qu2h`^bb*iw8gzY=E!)F{fxxu|Go`Dn3z7!f|#L z5HlRWYee9LYYlhz6{D2nQ9_|Nm}8YsHz*uR0LUdVLyvE~RSK9(wkVr1r2j6Z@0`$< zL_Dbgha%HuQ_vH=Vp|~+oO}nZwbkh+>PWbJb}1>_)uE` zIdeh{h{2v8E+di=L}XX3cHpL|?Sv=oQ)Q!zQ%=#*iRN1m8Ti+r8W=Q}=eYjCo! zL%vGy1_KYNAlY^vp&A5qXb2qaT7uW3F&$_1MGmcvdek&QzG_94MgVvDvti;dPm|eS zc}P^wHW)Bk3OOD8a-G(vz*u1RONm1gZL)BOpQkEM1i9P61BqWUB>J=F`zdW)h_Vo` zTtk{i{~BH`gy_jf(dmGO?s3^RoDL(vxSikrH>|Sm_ZKgS;l!hP2NW6Fvs&!*p z37b(qHbp+j*C>!T%W5=`Q!!QJlyWG;X|0eRf%ly@2-uRZx;zE{OGF1D88VkOgtTE6 z0<^{6?Nki~p<|r7VS3;2XT9|m%zPtsCp5h|s7RP@kTO|}KEv2KXm44#cg_<)vjW>f zPQ?PI_}0JOUlH0{36n`joP!7ji;o&SUCZg>VILpw9{x(-x&(bDCypROiHRjxprgLFOI1~nK*)_Zh12180o*J|v z-#igJzE4%1X-k2U576J5{`w|d>uJBScm_QHcbq3r&iud!Q*qf2#`#U$qzBGz?Fg%}pG9k|ZqOd(e?AsoadT@$9l zjYN~&=%?l7`i|^<_R#i~4Zs@jtf0|bJcoeBfs8=AY|qphH0JH{{loiBB|na{V)Ohc zK$rwDu|YTcZS~DB|N7VeUfz(0c{0oh8n{%W)I|(9Hr~v(?|Dy51bnP3?DCq9^w`lA{()=Q1kh zwjO)l8Pw$vxUKDVx=9;B~Ux>)KdQxx&}?#SIgm?wG66qqgSu)OJR56Vo@g`RCHYLA3caFdVbEzd)- z-ntD27}Uj4ZAo`g=RnV)fSoAZ^ji0lPHz}EM0+Qm>u~XTlux$IzD%PneCW&lGlYvQ z%Gh=z(&b2+%wJ!9mw)~$XR7|~L!jVX0%8-b4nnq|## zMS_NuT<=`W!yHM#S<=($Qh^D8wrg71B&9-+e!N8>RtWFs@$-MW_BW4n;(nN{WA_cQ z*c=4>*Mce;aF!cw@T5wpn~_6>10w7fHxsrYlRTfyG#nppr%#QrlhwBm#&hbndqvwIa7`cea`8)>;(qF`PrWjs`K7A;`W-J z=&s@Weyu z{LgBqrRTe&Z-ld)CJgNR;0v6JKUCvA+@nWDlC(xMq9k0S+RXa)izCg#bG0TvV2GAv z)5PuN*#xmFyb^Df@`As1M|=nJaTaz6_7F2jvLW07OH6HIm5$bI$b8R65m{CCxA$-H z7v8~Vv!Ziz)4?gjSMy;vUo+Veb2Lk$Jkc6}ZzH!9p1eBOEAYo?h&xo~q0j*C!}q0a zbNIRzBA(!npWVwcY|I^EaXSu zG9lU1J1oI@ztp<654EARHEjnhhl&RzYLtT+<@lw!VBWu;W=wnKpWb_l30>nDRKPl6 z7VLkN-}HqWYNwW1U<$)D(ps~HEu@7i1h*j_I@==tYp!LX+{AlHSCNFp4!j9a| zg8VWjYYh>lUzj3z#_>h6WmAtf=Jfi6J|!BIxa@9 z;vxA(^<|{SktE&F`e9rVE=z`#Dr99~CE+Zd$asTw zS%FPNC@P2QHF;)QkZ4%Q4$#V0L^wwPt=v6+`M|#5M?%gU`in>wL(7Hj#Pp{#HZaRj zE`bU+r-xsRxcpbL7LXplUt6gMrfMxB==G>kL{Ihvz90watUfi(0_VY9TytBL~?{MXISKpJT z|A#Hli0STQc~CsfvyMWDkKhjzGG~jSf1ih_{)v?0ng$#Qsz;xj1j^OTgneL}LE8?b zY_TSf3UOT+^hxM5*#ueiWX|l%%G~$WhZ6|mlH!&QB{(lY=cOYzixp`87e{&4xlf`D z!%;t*1{9-uzr=!*ly^yny65$eUI{eKVA8vyqtF2>hrfOZ2K+vl!WS>b#C?Q2p4ejb zQsmT)Pl#n&q~A|WsI;*M`H(aht&o0RqWudQS$Oha#;zORAF4H!XfQm`g(ag%De5B1 zjY)SVM#ady@>K<}>#+DK_f9 zB$iR&2{#Wkso`@A9LLG>f4WDW0Z09R@ta?=86H+XQN8!~RQXja>RDKsmro5AYF4Xe-kK47!H(`Z&k zjm}@OPXGkSOGIu1;T`}2_UeIuM`f_->)D6F%TR&(eD^6TqsTs@0g+Q-0FY$&9>pZ% zd%YR7h%P-gY8L5r;${PUN}npHKJHB&AJ>Ng#~n4%zfUs7ochcNjHE67tkVF*&?S^$!U&oRim^q(VyuhZU)k!Tcj6}aL=9CY1sf+WK*7|k5Ah#X{* zQ;*CW^)$zCnRppyY_Fi3|B3j+W>$d+Qv#C;-10b^6l0rs()|O@ z7l2P(PTBX=Y3iX$T04VGw4MF)o*~QL>laI3GIy$F~#paIBm;a_Grc_h8;v;Ku;k9Gq-46s_UF2T-+ z=Z~SyQVw6E=)JeV+<)^Q2mpR^(yPQ}^HX42gdwfL#%@HZllIA*6KXhR(m0(C-V2o}Kurn&0fIbK>mcSjG^vBNu+((En z8kK9563|dxLO&30VUe!VD(CCGB?(0lP!k}6(AG93UM5?yf+xO3Qzp4v4113Fw>J0} zn_P0%)U)Hy_cmkn&fCI8Kcqg-T83j5OeMKEU&~)J2RH&ep_c>idM305ZFb2UCbVOH zLFyf%O&4$ER%3G7MXA8pg!z(>Tj#SA9gVBuGj4X z`Ml&#w)}fGn<%pfc`S(tVIr=QeFTNGLuQ^f%`T&JE8N~;+8$J%*rk&?dJb=Oj*E;2 z7;j(tow(-^uqOo;+IjE>uVD)Le0Loo3;_LfpOV(V5AcD6JoujjOPCVsfD}djjGenh z(HsF^Tfn~N6$4LGyD{_5e$+fzuHDYAWRgVTD7WI9eGpS0PB6HH*GRvtk*I?nAw17A zHVL~(jW*Qg-DCKLwFJU}1SeurxO?p;T$OUHo+OP-N=pn%vR|Q^l))non&AnhU6@Z) zjIj(5g*Nmm0TALp#0SMvMB-Zisf^D}okQ9}R{-iw%uMsyESQx(7(0wloCNFppG6=$ugy-Cs&uzA}r-4&1am z{>u+T;|0N0Ns|>EV(Aa36;rz3?l;P&DJu!IWlQzm_Pf4fw=EXbOYr5;tPM{K;fG`= zM;mq?@$nB_CbKvT1(meJ(Z9r5M*qAJE(JHOKb2F;JX5i&Ht9B}l1zVB z^4J9Rtt6{lbH0I+ta_^FNq(}4D9NX6+Q)6kvFf9)N|6Y{YX}rD-t}Z{R0V;&NVx#_;pBw6&c2{!hSvGHdXH&4upT#2o6E>>Q& zMW$TYZE&V&KZe1~66<~Y0dU|^e-Qv>lp@Il5Jv83l(RK+4Z=>|j5R?JEZjUiJ7dUh zkrk9-B=dwz?Kh(j>kKc$7h!oE5ERQNpMS*EfXge2XL#Og;B-FD;Nl#^W3x)j?#5*~ zSlc?(Vb!6do>~j#_x^g>8p;B+9XL-#4}EcN)E!0x?Y|tJPAL7-XPyA{W{2PQ57=cX z6<>B(B#yMC(?H3Gc=yKrfUqIwpen3-k~%-1&>5eu(RmMlL91ep-$%@h!j8}8Uy|_z zH$@Uh@U|uJ+H_8pFo?YT`gQ-ly%qnd>L=lk7w5D9KnDjSuox&-0rT6|uvOywqrPoF z0f(u-w_iL{!r~wg!+fwKQCCCEC~Si4PY1M(H^EE>8#CJnQIRb1;!ES1Fn&V&8o>=H zpput11LbBXN1~Aqh8vbP(S~}62?S#MFgdAALXXe^B8w4j5sIV7a8IcSe!qXu=(pd! ze|qWC=gJjW*6zdtoKJt_rO~QLrx9ezh%orbj~##&&e*qixYvz3>u&;t3Dz?p&7{&m zpOvsz3@?4Wj`H2DQiu?UpqB#b5iuFS#NkrPPqafx`zO!}u7qpX{&*Hp}X3CsIXM*W2c| zMxR1O7Pg`tvsh$+WRrO^czs36xcfaTNo{)5m(?grxlzpV3cM>>SJ-k^Qd2rwH^*UO z=(5d`eKLf*lJf)>F@-m>B}ocu^^tLIO*|lPhCYy) z=;$foO|dI*0W|=B(L9J(|IdQzfw_hS4$4|8U??~F$Kr(&S5>v37cXA5hYo2e8k^p} zCIXyp!0~$fd}kDh1u$%y?V-eg-f&oMN9Ya5X>eYWbr1P@M{a~eOl+gTR4Q_gB*W5A znxw&qXwiNE=+X-yK-|0r;{uS5g^S8&e@+Zn6`YrR^@jBAk}@7G9PpZ@5BM`Y*c@hU zn0rcKBQSG^yVsu7HzSxrS#VnK->;|N!lEvnnp6BRRFq3ZgxEvSYRCKgS&LUYkW|db z3ZU>4Wd$m7ePHh3MxZAP&BA`R2$9`r;UERL38{<{83S?)xEJ9^Ly&}#e-o{G_@3zCK*+fKof zC)2w^>`FV6-|V!na#gSE3AD+21>G3E>2yt$(470Dnq-0cDLuf@rpxn>nhJ2PB{C0) z#;Bt52d7SQv?cUD#BC%=;?#NJ-62)C`?V7|(Uc8)4Wz>Qgi0VxUu`xr1d5nbeMJ3s zl|vwveCq3KKcZnq!eB$gTZOQc-vh0p#8CUR4qT7_XV3osul<8OnwNij^|!z4=${Vx z)Mc+Fqc*x!o&(&%*gyog>C>tq1!wx>XyjFgje~Z;{+7&C8H_U6&=MN^yd|XxNW@1U zB)4YRDpJN4C8IP9?`L8N7R<>RW*iV{)JQaMpt*0Fc;DWd1zy6k=Oqjw?@icS++fkw zm|MgJyOJ#w2j*Yj%t(0+nJ37NVxgxX9w2uStfLvGW!m_}&gn z)I8{BVBwNTrK;eAJdQ@Q1>tB|G1dFuwtFR*Y3xx405NQalv;A-a3B*%h8&ZsSzJ@p zILaCNNgMj><27?Rz)X4cchf#Iqz&`<}(zv(K{v?wP+AreoPP1%zNk1h&*(JD`%3 z)#HflXyLcF{u&JCZFG#+HbaA1tCr62>bz1hAV-7l&;%tNBM zSU@H~v?`U5@Iit9#!JDFjJkdE4~t$6!U^j(N@vjeEtHnk zJku9Xjfzuwt!N}2q_3X9FWpa9NG+U`qO~+jXt!ZzkNRfT)a8-s0S^EjLVTjOwg=X9 z_8#u@A}j{Cwr9iG05^T})LAnee$M^lN7Xs{90GSI zp$y(^3rIm7o#E~pP@bfEvW0hWk!ZvDQ-Rr=fmkC^ZkOc>fo6$>M~3Kh9Hng^9P6I# z@-KksfdZonC?zO(U?{VhLHfF|990vUOZav{i8GZ@TM1TYPwo%aBupUOlKL2>$>+@z z1{L|SYKRk99FXCX6DLw$!Xa$8@sng8w3RKr(c{J->y}+*G_aS5ws%9of?!Cv4c%d9 zoS#uag}_y&&D)}1ol2_yVYifCW(q2F0aG{5M{}m?Iq9Gqehp=yejkb^o_{jG%(7|$ zk_AwAjnlN=Y*BxvsAg05SAl(Wa^!q5&TZ<+yQMvxbapb~lgeICttU>zc~|pGYkN&c zKB=bIUqN%gkdoC%tTg6v!MdtYb?B&a2+MxakD}O{QT`K6ScbNh-#l2$*#O|>_5(@( zsUtn>`$Kh2#tybxRVCLahQ9Lfsb3TBSF)$3IOw#*>_2AEPD*6zTmeN0Qy$npYeq={ z(-P!{D`O3VFJu?#I8J3P+zCG@vnhoth*7)ClL-e8%3IXIaEPF^9DONDQIriZ(110$ zp%L?oOIF5%OiA@J0z%L!=$m~GuS!UD-Z_FH5t_FEY;sho``dzwZlS!Ij`d#kG+1Q`F#1r6RZZMc$!N|zHx|?3?!mr28`kv#D1W8hA3`9f|-od8U}^%gVzK=3y3K{_I!xo$e;p%f=c~k zoZ|L8zs*eHz+_FArFzMsN!OAHE?QDz0Ens@gBmHe{5Oh|QkEgUk5CP3PM5!yL%Nd6 ztsrg;1wQ#|ut8GSPTrq7@v%Q097=2pZWwP=1-KpO8K&b9PqfJgGc!4* zq9i3ptceIA77FSCAKV{IVT~C0Y9b-hMkqye@Nb6)n7^u6aQP$u0Z}t0W`U;^{$m-D>6YZ97vSgP<-Q1Jl&}zHsnOj6q6%qQ{ORm; zz|aeB2^2?4n!OAFrVFDy+H%|aKSs>F42oKeuB%B_ZgPlApj?iZU9-|BGHhf}q`|>7 zF}c9HhH1JgdSxCTZujya9}jXs!Cqx+G-lA4Bo+=FCanGGTUv0r11H0|l=kx6(g9j7kbm2^qP=U+3&({u{n zHhn|fi&(TKxnz@UUm2N;m7x~_vR#}J1aE0)-ysXP#5Etyh($vl+C=&#1WR;1bH`AH9jKPhw(E;l}$1fn-xb7L}76Kr9)AfF}QZ6qehPWqtlL$ zHC+L5v4WrWASVjnAVa?p36k)TE51POT7%qyW)NNkL>Dp}RlGyoUVxV0zo%=ZJOHmj zct{Qnb+VjoduJs5Hyi#2foJOFP+;8&Y)L~+L9;1xKmhbeF7#jW`j%=4A;FueKp-ff z5eq+sMTc+Lk*ZObst+*`N^Zg(v|zk(-O`^jU93y8L@Oa) zo)H?;G>d_NL$jgLycpfem^6;^HIZxgn2V>SQV%?g5F8l@0QffSs9&;60A+T#f^?A;9f_mih7L(yvGEA=I<>~T@YiKdaF{L@ zXp_)zlu^GAw{%N?(^$b#+Bactp^Ws5x`bb~v+O(uNEx)&tPmfL%{>u#lz zf$i92J9ZIj3qpMOcJ=l#JW zOhIgehi~#%D&`xZ_82*LRKZz?V>r70Z^%(IgOk6eBV#@X)7REwz9vK&er5p?va`#s zWo;nX0e3|FTQ4K=*ZS`CrvS0dmiQ5{g{3Bg7p{xR`^M)?dPSV3RSl3J2I7Nx!Y*Um zYyWoyzYs0^5$UJMc#eAQ1%`$YF4wZ3_>_RJvmHVrqtW5mIVD2A{0X*AXreZpqx%om zo9S6-y9>0E0QOOblSab0iH@wh%}3adPU7p_F{W+xWGuPx4& zo~+&ouz6RvP+M4O#dAwCt^6=0i^x0IYvI<>G;c z*Wic*nPpmh)iDf`oe(fm%%!0uj~DpxA>)O)_8o$u|P_46$jJA6iv#WdaSx{W^} zXgly6Sj9(F2K&43De0uPrvIVPN1;!(A{B8fkBSjdxTR{eQEv(r$nXH>D6z~jpUG*> z@)a!Vv{7?|{N-SM*2XgDg~cVZ+JxZ@2hK^V!zv0;;1u3?dWIB8g^MNhKH7|>4w@ocH7mc9 zeJ-M$>-y~muZrULu~%hZn$6R_e=zD*ing%rHM9=GpZj$m8yvbdTO2W*9J*M5QE|$2 zTn0*7t(I&o5sfg`mq0yG2o83Jq zd5(*}FJ9bsZ`;kMFQ9zpqthIXwin4F6b{1I|9lPY`d`T1XTchGvE3o^dCvL?T^b?z_>E}}W z@>{hO;)gKDz&lVO0bLTNI%FjPnNF95jUjL?{OkEvcP*T2wp-JQN03BXr0T$qB%79A zvS%7An!qezhe=?KcSJ;$*EL{*7R5c37~&)?{F|GFG+^s**m_dM-CNO47}E6}&6l@2 zrM@%F>>G3Pesq+^bnteK7+wI$#vjt@Xs~v78)z<-hLZr^1ZL~xEoL{NV>1%Q6*4P2 zV`-3S)HDSuGn?MU->VP6qi9!h8=um4T?77tzn4xlH4zL`YJ)in#yn9q4#xaGh?oKk zspv`FRnP$^_lZ7O^KT=C);aHes#K0i45S+1b$PF_{M0t+^DW#(Z zq#idzf4pdXsfB@n$_dE|8hXPmLr0r^@Czir={kJ#ydL&~?*qU3n`g2O6#BGEZT&BB z6o%EmsqzMDK9pQY`o}R0uE$YcC-!&r2G^Yq`hl0fb3b0*Q|R2&9e}go;g)07|M96lg}*D;>q)%O5%P zgZ}_HZigNc@I0{lyVhUxs{%s`kM^l(0pf(zu-g?iYrS9LJw#4T(&O&3P}u|h3d|NV z5OxN|irG(79c@)#q)Ez3wmzobgJT+wT*Oi+wBe%g0kE*)_MS)C8zf==oS3!IsAK2Q zejtH>lK~-RvW%47Iq7VdhxW<#QtxZS^M#7#0?0J~t4~ZAR7GTi4EDIlyBcH_m~bLY z@)60C6$fROw#5mY&wT=5L?A`D9P54hru6tW!jk#;f8pp0t`5J>v3p&Rp%n6 z)0^9o3~Wm>+k8pHOq%p#oDfVHk@^VIhLAK3+LYL_miF4K#DUS+2*6F_&VHx8Va!Vt zx`T8&Y@O>`)dp?VddeWpF%ZVn`BFg1B{`~e=(9dcptBk36P~dp<3OtgC%_6cS{v>% zO2&J~R00L@&}(9UMx``9Utc?uplb$=B1{&La-{?PLpd3=B&b1xVnv7$RKl>0RFOl0 z^tjE|t*<+!npiof=J{Y({w4zvEQqFkl%|Ys1P3Z*J@_Um=GI+@fwpIw;ZV_?Bh83K zAbCY(E|xZ1YIxb%nfOA7#|KMUnccv&rpG&7w7=SW7dC(V3S)cQ2`+_BYuE%2tvGgnYVTr zW$$JCS3k?4ev^t!hs?>UVn2*vh>nhYVO27Y4tX62E z`ClmBdSZWKp!{^1^oQVQq36~@cSgx0KHzK#tsbcz;l5~7HFR$Qv&PNZ?vBJ}*y>WG*I&^a~C(gadxpNH^v?@kFX( z^06j`9fPJQ{q-EdDQv(Bf$m_Q&0O$ipq3GHAn9IaAWPCWOCT6$N?#--aBhKn!j*-- zRx&f^+_QlrG+)wzh1UyYlpc|A{U2*?=dFn3R7e1SQqk`^8r2CuWl6>-h&qY3eX%1R z?UK zc_-eb_yC=#$x#I7u-cn9v^V1qlIb>ntOKi>bkNgf8XYv;79`*a)kI$&UOy17lRZh6 zUa%(?cpMO3aom1)+o@*ApH*c1mOp9Dd1sFPjd_9-2FrmYD4;cn8GMEVyH@YZjr>4s zNy6kA?a8C%rhe|9NM=k?SjRC3qWoK@}HYR7W-O<}>q2 zJ*9*dj4&Kaw~F(rS3O`@|F$GQMks>%9-+@+@riY$+ZURLO~R_6=Ytl>}ut! zs`&0+3kFV=oI$>H>@&=gTLVk#NDER{A`Qe_`R>zI=VQi^ou-`uVN8T7;dm(0dz`5- z)YwJmoEfYmoFM|uFOe0c)i~Vf|AKTB@NL9D@d2qXAtEw-`Pk7PTD!H$;Ml84$U$^W zr)fGDgr;M?fxk9$bSJggA_Vv1Cu6EHG>bF;J7WrE#zOJuiOh z;DaE6_+%N-KA4aESZGph=x15h4eoxt&B+~NeIV$JeVIOCFtnfBGjjE1-vh?70OHm4 z?I}^_aM;{v&C&?Gp}m%N`#2*Z9yc>Rll=U#dwjpAAWLt_boYCtdZcBElmqP~V2N?B zx=r%=03pFpVeF|c`%doZaw#s$Aqf%{xV)@*yOf$IsJ%TLl!fm$A3iUthKYjKIY@Yk zi&a^*#pbKzgahZI&T{Knt2Iaxx`lz1FWZX#9J@UD>^7wqM?%~6;zdH+b>&Qw>C9=w z7d(sn*=TGtHr`e+v<+W^0U5V4efF{}0|hG+v7{!vg(w;-&M;te1(PtT8D;Ex6f-i8 z-HH}O5KXiR#cMwwS3#z*ruakGAcmfkaX5F*#l>Fer?|dG>0-5O5osA+tMdj*04aKL z5M$g(n(_Ie%Ew}51yl=EFw=)AZmi6;3GGn)nF}PeSg!Dtwy=jFcr}bJ2CC(3Vldfh zsSE5y^$?>9!$rpgl-U9~jPA`UJnGk-0n_GN*!Q8q=+qB3x<1z7k42elN!?LT!Dd(J zgk(rcQb9w2%ipU>@yM}!WAWarch7gf9SkDY+wJM582hFA)9LhE4Glq8s?W3`Tb#ap zeF>B$-!JC5+7%hZ1?L4V3h*H&-{*R-1@B3XWN@pC2_)P@?py(o4(=chFwlV;5}s_`a6nV%>hmu z)?`YFWlrl5g05xoKunVb2x1>< z8#6Js{01)iK2>|@I-~HRfPk|OWeU>}uQ9`YYU?L3Xo423C5}2m23r()5}P))J6<2W zo+luysBFM>yMZujGrsxfvg$M)P&;~ha)`%(3i&vFANY6v<76#r*^h)Ku$r+TX?&xh zN{ya2Edgqw`VH&eOddsVk{Y9AL1OJ$nK(Vb zVuoVUo^Z_94*;4Hv#=J_U98YY?p)%FEkr>8_|rFtN9h?{%fB~It@l^PY|=hU`^ac2 zp|vEV`Kqv6 zxNuIdG4B3`x)>=MkUGikWSI@%D$x)?Df9IFAZltuS7ArU9g3Y8}oiI?H2p>mt)KkeZtA+q}R_x;l==9?&t-!bd1EW)X)QiZ@M zDo76<9T>!Y-mVn*qYY%s_SH+u)9Y_B@ z;I2WnbsutJed`ln0=TTCwna@NY0`8VG2_j4kN%Uen)!DR4Ns@N+WKVQ5uI&8)ls6N zy@)Z`H(#bsKCAH0X*#4R3f2i312Aw<=K7-oPU{%T{|(*OcWx4^rTMTiIpF|O?t49$4Y1SygwSSp6qOxa;TkV z1Q2M`9PM$Pf_%ai1?)yl!gSkh;!g$Y067=-BK;YfI2iU1{ZY&U?HL`otJWv14X7Y7 zIq|NxMiu{tp3mM1^$aj}{5)S$z{#YvNaPS{10m4IsRLfiQHnICk7iMD7tTi5jtX%BM2aP%bebbe>h%4w2x00r6&%AbUMh3G9wXRfKxr8k`9Oh4=oG+vC}9{bz(R#WywRgPo^F)_J}WVTPmbV;U|h--~fGWjt0JJM_A zTlY@m$~v(AMT_ch-6uQeFSZJZ;Si8)4Z4(W$m2VE#w=SH>VS~eQY5ed?Uq}r0cv!F zNWFJ8dhAg+^a`@eX_KvpM*(zK3t|$ITFDHIRG;(j?jqmUw!#gd7(@C8HM88WI9W3& ztP~geks@D9*omi00e^9R_TRK1VmImGwE_YbpYH7a@7Nc-X!?`TmLt@FW1Byq8b@>` z?4^;wQi9n+BdJ8{VA4)5o<0`{$vZSR#Hu^kR^qi|FIZ3c zj%$n`Q7cD0wEXnkrB7pL>4}$+O2-5!M@S{gwp}GMH)*F(Qyjm}ahvg^ZD_myz-ys` zkRwAvPzA1~NpEuM^RKj&p6J%(YIq~zbjQ+@BcRVL8A7Q<#40vE;i(5H8gEu2mPble z95ECZ$JZ%@u}-dRsaCELdN<32^an;}%*vN)n46YEi=dNC=xz-J@520KmKB&u{jaE^ zk;CV9ylcEqM4g(KWpJ>s)D##H%j#aLK=Og&1Ammh%=r_wfV+VYg*ftpb65b)WgaiD zJj-Da#^c14RkKXUj14Tz{}0da*WKeBeAr?8a$_6f3}_p2qQzvkPc0do?|*1@Td_caWp~F2G-^+9JS->kXY! zD!TbILypiAK3V>E=L<<2ZIIF=eGie(7IBGqmHW*knX`p@$k0TF>M%ES5p?0j1|2^( zs@hPJS+UPHLbZxG{Gl(^Up!xT1vx9aJOBl4V97~tE!%RshpM*DbQ&_B_DTTVtEdBS zC(N5Id?OlXxYyW4f>&bk`u>gREl4X+^|g=JLuqK02NOnsjo*h}fRE-cL8TGoQI+jP z?*U{YJUL>LJaX~%F+dML3lu)R?Dd>-Lj=in2w;QCV_C71<8bVp*uiX1=UyP<2boQT z_k>R1-l)s?3bYz#IC|9dI5J58n8EsMxrzqb0&PqB{5b3|IHV5ZctXkh_0_vD#&fFZ zX&X`wAy=VK!Xt=6i!y^RtfWC6>uRq&T6l@amn~F%?w6c&z&BgmdK7YjWDeKHoEE~f zri#1LsX;|f?hZ|oAlNpD_bEIK7x@Opr3NQ{oIs4|r(;Sqvr93t`13nO>(R*Yn0iBF zBh64C4I2CgADcbqoHg|P5t6#p)H6~RO}&O^XF4Ykt{0mRvYgODN!*U^dGtBr&)RcN zBj9F;E+~bsA<7cl{9+54;`pdM<|hj+wXk`#;6c$qBwK`{^>EQ2wrw;3C?y1dctK-O zytU__(oA}i?(pyAnVKV<3a}tHB>FRJO6GvNZJ>YdItI5QnK`<#$O{v&4s#)6yo5$b z5b%TfXUxPPd=Q|puypi&TFnXQn? zpt1)|i9Py%mP#5~eLgr$XJCJJ&1m-0I2VE*s7h(;B>#`}X)?)Ig#*A*hT16r7LL13 zofDxJ(DT`>tvp9Ge`s7q3wN^R5bPgvEA56@n?;z8y&%hb?5u~@>wyzU-2W*j5S{R- zL(uJy_ut>nPMJCWr;EM>BCDF@(rvKcYz*Q`I?f#>bmf)yx3TcV2VK$QH)}8@W2QhQoJBNdnsaO_-BbNZXW>zES)gfIE*L>Z!iVOvHjd)#!4dkf z!H)szsnNye$QfNYO61^z$U6S4;-B-EbBb)YJDk}X?BvdL34DUQG-6or6Lxlz5vO?u z&r8@4I&7i$vKyVusstpaAdgCw$WeEWZGAh1cnobp>aH%^3JnxCf4F0RUVm1`bt%#f z>}gq>j#z}X8d1kQ3;YN+lfmyeyTEK>%3sNPaP*tF%QLf?bQ z3fCR2^g|EQRsLHAcDQ*cv9Cc#hAT$3zmU&+bN~D}$Jq5bv$6x64Bs}TS*%@rSmUfB zSC(of2Sd1SjM|`h72WgnXsDN*Mf8s#PSGfx|Cj_=?1ckSaRGcfaD7noPuR`3ZRoZ=h_ulpC)Hs;AXwpo)y zQciiEa|o+-{@hsIwIB9xiJkM{#P@~Diz)f94Ep~@nyP;rq#`bkC(_LR5!k=hbIy5T z4>SIAP(8mVj3{hs>>R2bXeZI@)=#hzmuAICe={%ShuK+Y%6$hyXQgs2b|zZyC=wLN z5KtjYY|#0PQ*U}b`CHR1j$91*9im+9l6~y6=UFLYG~NR67rbcXKpS)m;+5y!3*64X z_?yd>i4q|!g{zmqKY!JSL~~IY2vynWt>K-Ku`QaMEH+)d2pxp2;jp{w>i=&*ewxh- z5K!R3)W|v<12A0FCWiSJwy3Wvs`h9B3webVC+_fLS4CTPEHQov3`i@2u!eC3b%@Ws zO{Vj0LA(>gqsL1d1|ZgO!?2Al{I9NP#R``Nq;KN3g-G3K zv_qsmb=YQ+5PZB8`LNjTaH=VNBAQ33(T5p8Q2K5&V9@>~dwKZD6>54>)&YOtbPG6K z+0L-Gqx+D|C#U*Ad+#S$Zy5azBQk%ESScQmX$0q2O%6ag>cjEJdxshY-HpIJkbi^{ z3ayFo%C-Scb+LR^JsuL{Ij%a2SOi6JJRUoctPlEvN8X~pa@wg(E?+OKZ+4EJ#hZ!I zbVKF^;y5~e(O0rPGuCx;?`TLWcetzy2tn_C8-J_k4Y2YNVEA*Kt71!j12G<;UpYia z=~CfI!dFW1tF#6u+IAiRp`kkR_6CsE6P;jU&8|qzY{?7)aYmGAbPMLFe&7D?!1}s{ zH4_jN8srTw?(w5y{wojpuU`Z)$&>;cZS7UP*-^qLnOK4uO7C(yn;G(G^dV7zmdfyk z8cn!Ve(oIeP*&g`ZICr+AE1-d$pTalhZp)$2#^Xo<_2TeyIr#j#oVqLh_Q29=~`|M z`3UMCK(JR;-O)QS-27ZJ*h^zFniTH9-T>BuyKcBvH=pS{0w=Nn?I)fA3NqW|0<*|L z7h@HJm7c+A#grK8#t;%0Ge+c6TL7?#pHQiYkBN#N8JsASg5vcE&jNvy&4PpmwL~gy z$t#=yP%hfrhj;B7@cU*UlxYAow{R(TOMZhui_P3orWHHf2RctZnS`47l(QkcsUr16^5 zucLXcYSW1skFIa?y}mP;cSqD25IkxF5U;U`h6xLO0*y}MJ`WA7`;%T@@Tvv^RcI+7 zP>7dhr@Iv>KY+PIlBIhvf=_Ni@plD>BjhxQ+pNNqXKukpascSX*@fFtT&OFg$5EXR zcXUs&0C1S)zjj99Xtmv`CK)*a7@tW#-66HjyjB$o^#f-YsfrL`=v&CEcknpICgtqwKXKC9m$ z$Ju{SSD?Nh{fjWXB6qbVlNc@zEMofD5SQ=QH%_1nW()7&15NPadY#%J}0y|cVJ ziZFP2!KG<4*{wk5f=LTwv&-eh9+yM-E02vR9Mg^M${ql5N3eOrBypr4tY>Js-68^j zicP*ibSXT+eLse9wODW;4T+yX>s?U??Xx~&ohAl@ZNxRr&^9E{gjzB!44gQJj$k)= z=PfV1fF!Sm9uwF}cxTTW_jAo}H05vj<+Py2Pb?do4^I;^DNGQF2OdHr8hSybQVP8A z_z)YW!g_DkDD1}*hLMIh1GllE%`1mL+DB${#J0L9D9d5+Mcw=-T zrgYZ;_yp=r;F#RQasx+|qZy|0kQ=~X17WjPrn2#%FFZ? zr=3Uy?NGVGAyyxYHs=`Wrc&DHpHY~zFpmnO^P*h9Kk5iFQ zf4%kxSllI4Zxx=%4rop?4Mx8KQ0UXT!*w%JyXRC7XkTU-*yZ-L(UTK1ltWM^yrpJjiXDc>j65u|6qZh5TSr71@-)(8n z1}S2{!hGK{U3y~V-vu2 z*tsRjk(gVihCUP@i@#*Tcoxk+=wEL@7M+O`u*z}g46WuSC9Bv$N67K7o@TC5P zD?N`m>BQIR66!ak#~hKxm(Jm|peg_x2mMU(X0~C5PP3JDn%OyHvuXvF8=oZI0_YmO zp)k{xfPuq!Mtg1$Xox6$nx!%Fl%_D4qiZgos_N3*3v1~eYgvz^3ndd!A@{cAj94Is&igsra zZWSOlAuDdZUm+B8hLh=@=(D2HrT46NU(Smt4^-CcC1}D0Nl1E?{KfnI@L5QK0C2INUK#y4O=tT73{2IMvV((G@_3n zM}d0h=wc@Bv2x1PQu3A}PqnR~(h@{AWba5=t!tHr{Fz@jnhk&(+ zBPU))%J)h>M!?;}Wrv8P*dqi81K7IF6IPcC6aj1P3QD0 z|0Q!0unIMeE(o8LTf%%ix^xAc;`XJ@`fyLS0+$KhyOuJeu(={+8h!pWm-XW+7GK(0eNO{+Sm5eQBjaF75Bu8AA~ z6c2Gt9JQs!`sis-E!H)scwXKZ23klkqWp1*tA;iTGDMVWBnF&L;nnVc=8bh0l<-m3 zVEgzg)oO*rE17(I$84IU3pCX9jm!I03naX%lDYuj8m@Aa%4W_oDwO-JDH|QK%4*Ke z*l>@3z~vPHD;jXKjxUAp=MN3kE5X+iEzmLT&vZg(JuTQPNmY`Hf`JK@-{7A!}l1KFq9VJ3cTI0g3 zruZ{+TK(mtNQUFeCV|(<*Msa~iz>rnNoNRxYW|Q>jt>*|=MVtUkw@pMDAJHVijT5I zmf8!dc=ylb+vUBH;Ay_GKYgn|ybgfMM#!hfD0jC69!pIM%~g_>;RSkcfGq#9@eKB&2zW(h$%NMd76EBXeOi7Qe1S%mG zAKjAesU*(@VBf5!`T8Ldd-}McRmhgcVX9J;q1EpM- zk8YDL;=bzkh3ad#fcW+>m;i;P&%g&8f@oX60r&UfMd*Ba`S^B*%yWD`eU_AKldX_J z202So1VC<>t{LzJ-V-pQ&{B`e3SFM8$+oQk+Knc8!dK{V8k0}E;YCLPX9Fb;28B7M z*puA(M5!=4{06zQCj>6u9gYWr?4sU4SVZ%$-@S5lqR%%k32Zk3zmJObzTze*X|VQN zlrF$!HU%pt8T6@oaCELKC^yk!UcfabjrM+j^yMRu?OZUd!b|CX7qNlmrQZ?GWb}~M z{DOQ*xY~@uIlq3X$d`-(CIBVM4Nbye=qbv^8w9S95YTb-kRVV3d!AS0RvuRwx67<(vRs^ zF5^4(MaG*)f0_aF2R|D28JfW8CIGSoU#5>@nW8OO<};PD844OZ)1&TzB4K7&rYMCR z(FM*()eO<(cc8XhU6fq5ehNkI zkQ=SgoF*FzX~r@g5q4`J?9S*26knXgIJvB-pg9Do3xv2MZ+X@nP^~lO=qG)4z4j_84=6tmIew656mPl(^2A!-^LwM2HfAhS&`3`w^G9^G z{fxd=FDWUtkQD@Cs{3&&ChtoN0NrNR?9f9+mF4B?aql5fJ7)$ReY`%~U%?e*ZAA%B zYkE6g@{APk0Aj^B0ZYJqfGCHdBfZ5WhfdeGK@&qJ6rBjFvk+_NV0p{&rBjDJO7|Vb zM__0noWtoS^#i-2Ki{{Y4xi&G;jc6$95D}`7@=i1&z23ng7i^9KAu=}1w*8OwM<~T zT;Q1kp#-rTeyH)Ty8dg;ee1)!Jzl}^z2ER>c_mkT^Q`o|54MxU5|$dg$MbSc&5ZwG zDG$IM`8^_K`VWI7N_s6OwCbXX82KsT%CDLT?}4AJhI|S7 zuEVw3txA9(!?*(kuD@eycPn)gizp)Gu$IKPhz0(6U;o6NclYw+-6gI#~-j5DTxc6&n4 zrw1SmcMu0cIP=lqlwitnjN#3N9}T0NmCmBuZC^b<9_}AkYJ>{GWeyD(z1bU*+nlE9 zJ4XMZF^H@1!CuhN=IELQoV5x%Is~4RiLngPhzV$=m|Ka=i{?863rzZpj@TtYm-Ma% zyE;OtdWkj9DAqhfbZXVNn>B^FEp3C05qf5-=mq5Ia3jUL{iRm4|5W5zLF3a*P!U1L zq0Ba{k#-xmt66UW@eLYEfUOqPqFMx%k_lJ&4gYO613dP>SO~T`aKHYZ>X-Gqh~I>L z23`mhj`pekpUH$>8a}mZfnotQs_^^}=-KrrNn7tnNobuCFj@Is$EUj=866xf5K#k0 z1+m7)OPmo7(Aeft^LsLC^$+$73CP0;Hb78H!^L8=VdX=+;y2NDXJ-J0aEG+%=ObH< z=EFRb6~?^XNd8X%I;<`##YjP;^m#m{FAR4Bp+p+)qEHL_474GT&>#huy!)wCT1sCB z%PRG1L_WpoM+G98Io!A&1JaXURusIRFBg8X%xdx`@3ciDIK8bS5HHadf*e*KZ^%-5 zgAHyC@~t^sI4D*_LN=IVkyf9@pN?4bWQl;SsCHFAsk(+dFnQ~#^Icii{p}v`v6+jD z7KuJTC>sFcfWs3tq22wfIxu6t+C{YyG5oGX;HL?Xr@JTdLENzz%7T^=HW6eFOtQoO zksh)<-q$1@oH=fCJdd3d{poZTFt4F1r`3}73Pjc7kfycQ<&Wx%z_SL7%5Nn3d3d@w z-$I}_;vPca7e9Vj7}3M5oo9>>zoe0S7Cv;fOd>G5@fP8;NR~kyR_C;i0 zzvyd>SIG)2!WBxl4IUe9FJy+CtJ7shc4@}=2OUxyI! zXfk6CtWpjST6Vg7lb`zh0wh##1-+H>6n4z9Kh6AX(?G-si~!0D11Oud;=9B7#uzHW z-mtsL#eG32T7f9lz6R;P#kb#}?!H3%t3OB5E3)kV0ees0h1&IH3xtD1&Uw|*2!IGd&InU%TxXd8dj+5tZ$EXU6V zqMBHV*^do@9WD=LL|6qV$c>*Ka~Qev{HejCy)AFs|MMx&zURN7^&A_3X>!#47?ese zrrzRy0*9yC5N__N4e--sLmzJ2jrK1_k-}WJM)U+--S}3vN#`?)U~P@ul$7r?onoA| z?>3r!VYVPl+N_c{2{^<00O34rb8qy^HzXWDpmm%L@A<|zIEOc6t>_^@7{tocIa|oqX|IH@hnr2eN3Tm`?|nnM zU6T(9GHfJt#5SlS$Lr2o?@-dEn6)hs(uA6xp55euoUeW+*KaI{k7B3FSyOw3sY?Ww zqjzM|fD0Z^n#CFkL$MYNTU!G5N~sdJ+`OaDRH*ciNVAIc){Q^dzYf|c;$jjzi_wz? zKe0MOq$EYdgoq!Y}1H+WagtJY+cJ8-dj&y z5@JDEL-HnXyAB>PqV{BAoC*`Nl4cSq)eeVjvD<*=RLYkcYZq=37-+)E48Q!Z+xs;v z>=O$V{`uvt3`w9v&D>Io30Ccrwv~}zA*WiyXiMV-f%tHoTdtro=>ej&apL~V(qBF5vNZk>JdjJ;i_6haFbM#K zCN@D|G%Q9lrrXDMPt(me`bGctGpFc@a;vQl-B3S%|DfFr$6f#DUe^&n@>P7scw2Bq zurR>LfEfcYglnusm~dD=I6#kCZP{XhPuPTNHPlI2Q*T_OOicx9e95VuoCf?GowF^U z4irI--!VLJ7N*scBS;SZqM3q85H&^u3swW!-f(mGmCr)bCIBIk#Bqw?+)B_o+(|xR znvBWHp*pCFQC^&=80E$8R=mmkoy3mdeUt=*u4OvW&!xqSoIi|XReX|Lq*ING|G$*Z z7IcHsG%TyeI%#|<1!?>Z9h{rw14!7lreTn_C!PA72PKkt&4OlI=<97c)noFwW8P@< z6Q@VRNfZMv#R86Nh*N28iqFtmNF8=BB^}lN7$Bf+VkGkMB`t3d><#N(&i9#8ZRmiZ zN>8r7QFA*BBwU|%voRfr+krCt_eGrH`6LOEs}u;C@Rs>ZW_<92cxRlIi`x+H^fm0h z>w4X+;HOUCnFt`kwSZ0Pbr3aI+jiZGX+Rp^{dEc0?_|DKUT}m+WYeDPik9XD1`hNb zyr`oA$vi{dHtVvv7~RAD{&0_J{?UH@)>`&3(B{FuwSEaLGy~05bV4KbMj_M!&gl<5smiFtPPqb7i}jlF4?%O5 z3?qf%5rRFa9l z;)<$)uO9eb@=jK=vV^dJM1_M$`tqsT>+K(H!t8{JEsS_eoF24BuDNTxqrW%AxbvGY zbaTFWUducb&dg8=!%eceEf)Yr!kuc5{>&N)w{?cU+qd;8&CKP3Fk-vFdFqxBO8J|Q zPdPLXzPutTRKPK&~yQ#)WL9$YTh zv>X#7(;>QslFv56IgG$kHRM|pPC}6Y{-!1LS(1-T2M|lhSx)-g+NlH%0m86<(&dg^ z=iP|Vpfa@1VDhIAPg3@8_tJJLGI1YA`CgfQ}`0w_XIKKd40 zw_MZnLW3sKAb#KRHbIkH6=N}wO1WLx5M9_T+l(Ij45(HUFZ9gVRgNI!7ZQ0xC!p$R z0!m&;mg#CbonVy^B1blk{zhyPe3s#EUZYb-&}W#XT9Q~a0#VG7env8|Q#*M;aszr- zvkrW3bkoFZvm(Xk16YNKLhhY@)!F_lVePlFi_=k#>lnQZm2Cg(P$ASEJj*h@^UMCu zAwqWMFWvQ`(@SWuMA(KpHY~AJf^5@-lh~HDC{1+ok{P>unhxEpb7J@VVfuAZ$Iae* zI1`X)TvQD;Cj{t#w-h3l_{XO{crF!A^28c%%a!2nq0ZOAr4Zk+TxF?E{ zD{6>~HL_PgpitxUOU@bGGIaQ6ut`Ge2wIo4>1uT0Oq4q`?G=lEZ#K^l`))hmwg+$e z`+J&+fBSIp1LdTJ3-sk_aOBuYr|JwVQTcFBu9k*#ct{Wylhwy8g8ACgNx-ySdK1Hr zmx#`6yFe)GpeCay9$2a)TXErM6TCY+=rq{!_`mTPW@P5LKnf+1#iSXbAFz_3w#TJ- z&Mgw4gMVl-=Tu>-H@OB$qyN(2XlA=#Zei$jDd3qiZ75ZSFb0?(Av^NkV9Iw@cr+0i z8Sf2FL*NelKu`5Qy5E1;ufb;>GHV<4bent&>0KNyeone#si6ys0UtwrlIF-jv*r7T z_nYb?RbtwvdQKfHtK96ZRzoLNLD~Qh5`v+0jxJlR1Df zQH$H9*I%rwJe%LU=uq@2L4BMU!HG|nV;%2@1(t`whr`|0LC-G<;)-Slbu@HuKD}Sx z&!p4+ct5J%(nL%fX05Jlcr4SYz3S*)9Tdemu!^ELE-5Mz7!GQL=}N|pfn@UuYGDvW zMziz?ty`d5g53q*5*i&Uv#5Yo?ihN9wv>G)#~XJ`1Vd&xomQJ$=)Cqj`2Y|fzhAA-Isx9>$zJ0jcs8xlouXDF3^O}|4xU}8)G=)J5l-F?c`?)*vrFIb0J#97h|1r z`j0pB)#rY8)D5+!9Et=M-F~!!jc$9cjVr%5eP#&EmJNK6<+|bg@F5)+B?qO#>1JLOOW*aBRI{;87gh6**y1)U!LlwpI5@2?co9~f_Nv-%^mC1fc998_B%?}2M2 zv!yi3EE*HaG0IF2D!lfA777R%Djbk$k8a`%*ddb35W__=;-qwwM%m+R#Bqon$Vz+A zC1`1iz0jt@q(h@kI{tCJ8dy7o4#-v^+<|JL|KPck__$tu(ZGVffZr5(yBvfE(5Yc6 zuiC~Sd!(*z@N~=7WJ?aWoA>*}`}S#rzJXU07LedWrLe6RFdcw%wx`%pM+bwWO`CV^ z;hpff6y3HEvEqm;^-D7qy?+}OC6}~UCgVG|f(PG|?jth$q?c*)CkXWGXO5~s$YGqq z+WaIRAPyz334AGDRwksLXOon6z}i_kO%)TXY#?G_y4AaozED!n3Zuzpl-6rThbt&K zmGv4DAo_Fsr9!&c3F9X=DJIh9FyAo~6qczU@*}R4h%E!ovZE9Uv0Q;1>hKv2tDY_B zhJOG;cJ~BL3EtH0GlJM0%aY#Ir`+u}%iRVQQQVz)wZ}#{1Sfids1o8QaJ3XNr790e zZBAQ!vJn0VuDgT$p~mi%8L%M4riSG&&w5B==fSYDvsu_G?BL1pnn(7w-ECWRJtqZb_gjrf%P=*g5sV`(CQlDxS z4f_@eFx3Z@a|9xUUpLIfXSvP|DN89`leB~0s!MJ&v%tqaXE|K{DE^X^+jQ&krMSeE z-1Em$jny!Zac+XxrRf(oN~kJ8)~IaREn#DC5IJJ4anAU|`L>o)K6cu^LN)fwyfw-p z^i=_bXXb>Y^T=)+J53VpaAL2@?)RHHWCs9D7%sdrA>n@4OHBIN7-dn zgUpIG9wl)2GP@bn0dP%`HR5`-mTiTcuVPYmNy4JwGKY|zUUd-o>!-(#kok__>BWnv z)AR3-LZS|#)72MB;OF0u_~5Wx0u7O?wR%A41qa>!hP>d1PVZ7>Yx*>?q_Sslg%7K} zz;RjaU>;FPvHtFE;(lx@8g?2|g={lcY=)x`X}3qQ%w6@XwH_=_RQsMP46d{B*~c5{c2 zk(oUv(Hjz1Xh%Q?MfA6Y_a>cy^Yx*s`)^0t!y$tDGNdxlB5*$Yb8X$-AHWz@_xk+V zBDMy7$M3yq2=Cw{ACLY;$Vh0YhdQZ@*V|E2>bzLe>-X+{dpItr>EE;@R`l3z_irr? zN*5jiY&%kcz&qouMy|;KdNOe5MVE@?0~NjoeDI=MfxSy7^}}3GThgvgyav(yx~xdo zfz}JxdU1623^?(nkAgL5rXZ7nG$#XFwTQR1O|=Zz4ygF3rt(xfOp@gH%L$x5@ukz&J31?=U0Q>^=L@7%u zeIi$eF7fmoq*NMYuxL52AUGz31~A@*p9;Kc$u3-TMk}y{dcMeiFBj8D$amk-H$jD$ znm@!P#Joi7K8Df4n~+4)3l|E(I`Oy9G($Mw2ZUbK8R72QtN^B`?{g~8QQiLrj{VH|MqT(-UZ$i%AchEuX$NCox>yEO?yZui2GjI^lJkgKU zbwC8dUH@8%^%TiYZ3LYY0I+}x%Qzg(wWX2Re^%Vji=R3rPRZO7s&>E2U$7!y4r(PL zct!H#q?)`Y#TS4n)I77@8tT1t^4K&H!VdX9#sK^^S=ghWVr9&vZ)+$T_lI{EEe)6$ z>RJsz^A^d=@c2-hGIvuQZaX?V%$~k@VW;YM+jN1>{n*O`KZBX9a1M7$qcL*CkD-Er zQ~{KVzvfI36+3GvAm30~AJMGi=hu`)H(6g-6?8;(wmR1MkJR4o0!$H$qnVc6;m1#NOd```NrGF_wo z84cYokuX-KaDrM|Qe+{lCyP$E!X|kacS`Hq_7hO1`g{Au)TpHP_uK_HVp)*FED=&b z{0~5Xa{V}_`~sby{*p_?5b%7V>qKn~qCK+I$rzGwshou%8@?5mH4X#ur9OP9i5b5D z_uXv7HAuh+k?aauz+_422nhLC68JE@zk}2W*!NBMJM3hKC*m%+Iv0 z6Vg+S0;_HJV9eQSzlPu$eFZ|Qcx~?%eo1gj2@;kJgiZid;vf2GMgri|nbpTSQ8hmP zSU--ds`R%U?$3{7oFu)tg`67^xshGd#{srb^HPTc&^UO52L(5Jtm5fPOP zY;6(>tTTzUvy&i}$->jktx~3H8LHp|d=Wz>g8|+TFf`gBKwaWhm-2udH@Ek|(-p#{ zR0m%9UC%UArqcjtnPCLLo%0X%)VUUq8$>*KkL&Kvw6 z@KuAcX=sFuKSi|>rvb^J-^+V3-gX))$iyp!7rty@5b1d>1e4 zoec=BT}Ruhvv!FLTfh13WBa%riC;49(C)}*CWTJQ)28w-CEpm~E9vUl(L_fON+=PB z)7#BHO5U~Wyg=Ncg~_Y`v6HDc(U&J}k2GUI3k!ieph8+O)0K`R?q|4!cHGYlQMQ2aJDCyKPuGU=#{1?mccpHDC@7h_ zc$J=reOvu2uyHM&H9_YBiD<~sC1N5*iSU%LEYGPplkB~hrRqhT%P?`UdjSh%+-&)l zBD1Z_uS=2f2$G1|Hxkx0Dm`1cD46mLAxeMz@%!U%Z@PnP>4_naP@6r3sAjytO#y!R zaakK!u|9VNFv_S~RoQmjdAS6BNbE@^s@t(I?Y#$+GDQZ3!=L2jix(jUm@0`4_#b^G zgJZAAY=SHs-CVun_m7o131UJ0uy;|cdd(|>!sV+XxR8#9046K9o|P6E6l{!n9$20U zCi$bjtL;m18sZl*05BpQ_4=|#?SL3|m{u=Bl9Yi2^4+I{y#AZV`+KFM@b^hs?tm~u z_|~<_7|ywNp>?<+)PVgOF93=L@TR_u{#t%P-l5xN2*r@CBkKzDjSnMikJ(NIbMaX? zJ#jW0MN6gE-| zHQNoUhGaXEc};@XSj?UY$Y2#;&^!dYA2p(tU=F@4n?>d25z zoEk*KEioG*D?_D^zN!5|DjugKQHOK}O9@$oWjUqI$eBfwTwjbvvS!T+rA znxs75xyt5?ZI*{ukj);7=T6&D|7}NY zyRSncRI35U1IwZxW0OT=0DfOhifoipecZ#h2f9B#88)mKjXvR z2zp9b!)lIDa>8vDuNswX*wQ_h#xIcboh_Iim26lQ3y`Qv*pbu>WAc57x$3n!j);EU zllFv5sKAcAX*i!!LqB{P28x_GKp3Ux>Q_ z5~&-ML?|hi#PB863r>lUC3X zP(T1NAq0p`e=>~No2T~aYQ0F1L&VU_6(`LqJ}UTDlholDm4a@G8jp!XaA3+X%A=Kd zSc$)lW^Y4Iiq?n&O+>pZ+SKi}Rvw3hoyRIXn*utq<=`iTMMcItma?_+YUik7*TGIk zXtCue#!ZM%4zS<&WTR~ABZiZk{$!&xL7sM4UISI7FzRnNo{sxN4SejuAlP^;1(ZAx z-iiw#{P@>a{fgb4?Yb^-E3hRs&7I-ly(fIRFMC%5(%&qo@JVkkz1|80fgoftyWz*5 zP=CS?QJy}U%+v_Djj$AD$YQX>-x@n!&j=DvdWm#GNAp&4!IV$ew#~tVwT4^}Ip%6hdJaX;;W;3o z$~S7aqgjSM{{AM3@LIKrh)+rij6`jT0Zj`ha=81#33uVOI-t(*PL%a-gW(%piRrz( zFdJBLNe1Sm5rH6$t{*sqqT_9;OnL?>;%Nz9^c-k?gN+Eso|?`g-aM_?jr;bfuzgS1 zpPmGq^JH1*?i-M>^X$jO{AiIi90JhVEW>+L3C?!>sQn!vmDvYHUVxakZGccw*MqEU zO>4o03Cd->Z$c&Q;`HR*4sziQ^1}l2q_;i=wiw*Jj1ke3LT3z`S}1t?iRT@8st|xf zu-E%f`jUwQVe>g^-FZXC+5Yys_ZHn{rE<_W4%@@&V6mz9vLjKBoE0P*;h`CNwsw%v zj2kmzLyf#+{mNkRPv6Gh>ZgY`@{s`3MO()y6^%ij(da-X5&%5%E@3p|^MhJ)Xe>Z3 z=L6*#f&O#S`zr|P%BF<;Af5K>V$CgEbp_aqzyt!`(e+GI1GxsTEa>uz`X-1Lfqav8 zs}=n&biq@IDuBs`%SUBS3$^d=??f;4;>8d5cmKt2enG%+`Yp`~wW1*a4U4T@`5>j- zC7kQFaE~EtN|Wx=m&&LS{PA9?BZ_=dA$eo09n(j--+AQ7sx2g^VHWD=oZ|0b?F@1h z3pdN|wteu_6cr|tk3ehdoJP=afgPl2vqaulC@Aef;uOdSZensOHUi)RfN!JH4e}{( z<9$L$>Kv-Uj>OO~Np)N9PQb1r<=&CLKsvL`K$IuO_dE!(CS(SMXcZjN0T;JBD8~#( z2Tt(}e!lRW#!Zy(O#7OzC`?^YfwXstz*4^Zof=};RMMk0f9_Q;ORM*U8G}SD7JA!>VPWTvl?k!lPyb5W}{J<<}s2%J4ia@3Ql^!Z@FgaiT>stvdf%0P56^>@;& zpER|U;wY-~((S6)<{1b=BCS{sOjeU9J_|N4iuqVl$BeoTYPIh z$!GcqjFLaNN;<{Dw@TjtKmn6bYye@DIplYKGKAW(+Ra{`=r*%0_u>Vsn$nm0%K!sQ zuN?+R*4E#(lJx&zZ=WT9{SFWo0&^z0KzmU-&Qo)${&v=s@mSS}en>lmP1j#MWIoX#D(so=)_7>uPz7cSv1wvSNF~t+OIF$`J1~;>gX*ST(^?EEGq}+7 za%(@wUZ^GKHmh-j$V?^Z3rB%KMhlpfE`pl)I$ob;X|>j^@8FbvAy4^rk~V^IMNwmb z!c>{itSW0-iNd?d{9H<28Ui!`IMI%QHx{ zPlQAbh%S&i-{2DW&oEnZVnY=`s7&DAWPNoDm9J68fG`5lx-iT%Xtu=dy;U(mVjtd| z0DsvzK8CphzNfsz$QBzlYx#U@Ifja-x6+G&hJN~+?fqr$KCqhV2chQ04qSvgW>cVF z1aw!Xl)zhV=?917gPw>2sorp5I74hH_CfzBNPRi*OIZDI>SD_Jwl^^+lQg|{dp%;rKr+Nj=jV2FYIMhEIU7To+g7I6?S!@k7Z(rMU?V{WfHcc#KLUIP@!nvo>488s zjkbCR=0K*?LQur2q<3glm$WWH1rANZ=+h7wiw%!7CTJMPHBfzaf;=TX==leqq+&{# z#qeQ{1K=ZwA!(XBgA042C%e6WYaoZiJFB?Sx=Y(G{M~@-&>!&tB6Pm~QND_>Au*Y} zIx?rUwly2;%&*efx?t7u8E?AQz_t|}s-C@y3W;SYxh%4a$-V+a)W;ss!C z^4F|0Ws!*VG0jg9g`F^a25!(w3`IarA<}~|Kkzld7Wn88=*P-`DH=8s-JMG(k`@s3?MvZlsG$f@E?M`}SVtRQ(>+JC0%wSQPq-;(au!5E;!U9Qwl)H5jgr$nF04l`(HXaT)DU}k6*Ih?~a@(z3VW&n2@FE7_{ z#!(nS`~aLF+$z2R29I*}IB_YtC`Wpr#_~glg)x|w|JZ&Kuq+(PWSrqtU6Ts~S%sao&HPpCl}!rYEGVNxVM}8}%TW>@ zU#Ib@ZPm-&zvj`0q+D?9wIMA@cf&t2wFM<|3RSxXOr^L5?N#04v*NtWoL82GeJx&< z13GcGNwy{;vLc9kLQ+7X3`tLfyE!&EKcF=BTLschkqk_Xo4o~1yg7Ydbc>3-Kmd!6 zMkk<85xNKM=m&-dT#)`4M4J{}y!*L838F87?qVe+x=ablxN z^gPMMI@Sj&nF>e6I;M7%Z&59#;Ro9Kx;H}4i6N}_R4LrA88a~+n> zfRp#%1^nz5JQW+C0C0;aPI`g1ao=!&<~&rUG>-s_1Rs>#*TNr5TdQ8yyi@{Pzk`Ry z^2GASScow7aOTli2ZyVAKw_Q8<4E5{-gH)j>O{ylHY#;7X?Vyk&oi?&A06eIi*JMyL!mKeYf|=T=!vXfRi(2RC#q7CG39|lt zN3fCc=F615m2Q(4FVr`Gpjy?g_b~f?dhr7GA}XrWIj}Qywxn0U5C+B-wnmX6j9vpf z=?Uv#f&1LB`{}8T^}>g$>0bOuaW?u}%V7s)EOPxgybz#NB@~3|yrp{q1~!-xh<~9O z&Ud;0*a($3ZK#va^rfAMq>lia5x@gC|9`1F)8@F1ENlN6e`XX=*y^J<%_zp*c35_I z#C&0(s!$SNQzVB)TGssf_c`}w0*L}@p=_zAW2Uv4NF;K-%em+D@3ZS5&Gv!&MZ@w9 zh>rGc_Z@MIEbMb4%v%-ck_N_)!3m5WH)cR_7N_N$84d!dTnHJY_kmQN=n`l9)#HiJw$st zs#yC>AKHwBy=c*VEPnTs<4?(nrm;uLY=J(){(;0cMeN~gX6!L!$@!e^^~am;R_Db= z?DcD40u&w8tN38Fl_E%mWk<6eu1X8jd;BSfY-^?BlpLZfXYZ|TMU+SCabSK?&hl;s zz+s9ivBc91ZDm*lDYP^c4#UgTeITz0q~!12hu2~=lIyiJj0ykgTKkai%^{T`Qcm7e zHh=sQeebbkLbx?am)0fn4^#tk*MtX0)@zj2bHFv{nFxTk1W*=K9*~NJU_O1{5+mpE z?hNEg&hu;`-{l4ulz;%iE&d}7F0jAW1h$r>t|2$@Ayhwzw9SA~2p6>(5r6{rUMOPy z$5-i@I9aE+TKdGPUilv`Vx2e&!h}bGnh9KWAX=c%{QcpsV4sl`Mb1vYWfR_DDlcK- z!;S;?OGQ~&ES{Y=i~Uo*qJ-IA2{YEoi0PA{9`FU`8z-lKZyJ+HvKaJ3f#f$6OpA4} zk1^X?oKh?T#iIfc{B&LuybWI%Lh;%TeIqY<%{+b$B`_RJR1nLq%`umf<1W2GYJ}|Y zCRVs-a6g70v(>fRo2Jl8gMMua1RNfsC*V+6Vb`IW5E^~?u^{DXI!9gu?sqt`lg?rE z!}`{eqq~3VK|0z7pyrh=0!czA4j+kB5DiO=$kyABNJqABDRzqlVKEs3u92jVc>G{c z0=*i-n4oVL(tgqoXc=#J>aV)WFpnM?|{+}e%Y7i1G)q+8%-lcU2XvbSf`Bwd90X72#p-37LF07d0e zRG?@-zz>1kmOY-j$vQ@@WD|_15j#wbjnRMAy$_}Me)D)^yN4bEiX$S_=3RxN71Wi( z_?8ys$ta|d{^`x#?tb-?{s`5{eFKG7Brb!q3^o_oV?gO6HQ+4-e2v?C7M=i2Fh*6* z1u{64%nKo<%Pp&dwJE3)6DdQLx!jUYgik){vAo*c@JDp_+604TOv2q@w+yx^H$C}X z73S=6BDwal+T??uy*#W(moN(k(TaJ@MlZvRQ@K!#10Q3Fgg)O6Lso|U?lr%CnxKP+ zNj$SK@==)7cPOG1Vr|-%&^pjnpmby&ce`SkCVezOu5*FA|3tTT7zM&U826~%F%$=F zRnrWeUA8Ao3V|O@N1F8&-ofs{L;+Y&7`1{qdgyP8!ir$iSQaO^sko;_Iel#iK$!g& z6+9b@B{y_z=g)x4GqV1m_I~G>!?Kl~U)JmaTm%TZ0i35@1$9A?WsGAITtQ|LKuO4J z1wAl36nYTZp+?UIP6JRh*&Bk_Emh9;?K7Lcd`-6NDK8Z~hHD$3=)?2fN7pg3K+0LS z9#}kGmoj!JdHQfodXqY^btTp%$BOKA)h-G02YL(b3r!@Fl{6cY4y z{;Zh63$1bw;P}XU(C^xC`d^_<$49Ej8|+yPZViQx_>p?&8gwM7!pQwS zrf~%bV7-N%0oxcmd|1kte<9)dW{LC(3ZGyKLK|PCgpu-bh`8XDlKOBL-aM+aIP|R3 ztl^Qg-BCXph+V}U!`%)IaeP}ywNq7}2T+OOYlrMQJX5eg<8x49gd9mS!hS*J9_8+1 zlm~#{z(3WH^TCkcG#w#`*h*vz`zsOO;wG(-oS+UIRAbs*TM#JZnflM(PPAMa3^65n z_7cgU^?-GNvN;sGW7GfIggYwB@ZhR5es`f=o?lC>j)aJ9W58LS*!{t99T z2eW|EYZZBh4vAX&@Wji*0o-m#j&#&85iIQ6(aEPbAKEHJ$IKkFb5n;4oSBGfa)M?B zXXhF{H<${@tR!D>?5a#T@)jBS)E&YaowB;=(=uyeJ7{7h7V-hIlMI)^Yd4}s*w%~% zXvjr)usKS@!VFjq96kZ#Z^%N64*%0Ggv8b9*F=v#>~ml>Wr-rrqI?((>ejzBXwAzp zNLukrYq${Kyfeh}jaz(r=W_qfNUE@l2;PCrqtrCEIa>>h^MCz7VnM~QKoYM5c!O{s z#S9QOlk-Cz>xIKl^>$ssQ%HsrLnk~P0+%)t=CS=|7pU~SLb_gXe*gNG8`nA$Jtg~=@Uw3|?kNz~96;%zpBw;|8O||Eu-tSSjX1+e{i&1F z_O!J7=@-vNZxuzYAwcC_L zN1F|>(sT)#LpVj5hk;BJ1U=h?h80U2l^k$LFwEl_u0oUlUfeG^BpBFOJ5#(fJ zsY)p0V*I%70IsRlEnoaifBV(`(wlev!OD03YFS zb83{~I|92!7!|Qy1m{1p0h>sd z;IM9Dyl*C8Dar#FLSZ1%4Ly1uC$V3itG0s=4@N0rzX0-I>LK8EW5rl-k}7r%alr8i zRTD(;CPFr676bbRlnAWIlM7>Z9?HBxX0@h*pQw6l-OTbcE)1K*5XP4Y&_j7mB{aZ^ zH38|-Yb*p}_5){IBjy|UvC%}@6!>j6T>n=C@ld&K;Wi`m-p1PD4mXAD>UPm>h!A-9 z@f)XVoom3$n`DP;Cr^HPnZ&HFeNxF2*JD8Dt2dk3d ztKgU3 zB+Rk}*o74M=o92^9aOmX;PY&W@Kg|a3DtH0Vt_9%C<>4X=mYB8>C)OXaeSfh1p{>1 z$lkSOGIIjN&|qG9Xz+iY@5O@Qh(p*g!0RbcslYA;)zo7Vq=z=qnzNHZ)^hz5zp%2i z0?HX>vp_urk{wdug-QltTLz>N9{lT6Y0pM0s0JYeDfawoi-KCRHsyP2%M=HZ8(&Mw z9hF*QqihVBEO61{U<6h{b-j=A;uOis?s*Tt$}4_#*wVrN_jh}=i+sDKwe+_G8Yvlj zFucG2nkhGS2anWkj7R z;z#T%_FjW|3d9SC8n^(ZUC}XsYI(Z=Isw5}c>Z4-(xO8xdk4aD_&;Npk|UthMpN#K zqHCpXviwc=^h1Yo-FN&gB+{j?1+Nn>Bw4XGe3y1@1X%4UQR}v=H~Q_n_6hocLG_5O zasBvwhr9Fk+6(D)5Kz4ZYZD4A&plW7; zHz*8RH>Y$s0ib&YsZ{$IQM%I;pF=y5DCvKWgZ}{03(b=#0CrFifeKDXXQb2!k@TG< zuYu4sL7j=}YmC4Otx?MQ;-evbKTAB?k%$CyL|wi@l!(y*j2xheZf1#!l|yo-W%ohuQT<9i7lgR+B*t-0l^=r zlAuUcY`{h$EU*j|rxiU@Kj@i8_TpJniy9h;7^#p|1T3~_yP~vYTo9c&FoVP1y@hOu z6{z1vyJCHRZ}?+xf&pf~Asi3NaSaGKz6D(F31++hy@4m`zi&+2xy%to5BW-w;QH)19cTEnNIYP>)@o}!F!^pQke6(NaH!vKWi-M!MlrozC;0c4A zdNGV7uyrWrYGDERW)qX4T~l=!pHJ@c4E)vOZ`V@cQPlpu4ggg+fV@L+9xw#Aqjj!7 zr_QR@{&4@Hd;I>7htY%tV0BnU+XlQm{BFoSV5N-SfXN9&9+pT974Cd+|8MLs0{Z3u z5N2)*ntHLN^q703jSq*t!fA7up5mX(CC(U@B=;@B)r)nuo_`9dRFZxWys1UU2m8`hCj>5L6pdOQ~gj=K44>(g=}qNIsmyc z_5G{1gEs5RX5#+eouAanS5X z5AP_S0WfmhFx*iT>A`2W$cgkn+aE}?g^w`V_QQeF5AYJ$}Kh>uhgM-SyEVCP(V#ntP-4LpC0v=l+WdTLis4ZqQ z7A+y|i&g zi4D9V>Dlo}L;zo!!1hogFAJ%k{#^L(CfpDON_UIlQ;8DnU}McwQ}~Df87Q*phGXjKK1h)y{H7k zHJj~nCLWEOWH>GhO_Z{EMGO1>+9*^Q8sww7X#i)zO~524O^zb_)hmKmoIyr`tK*PI z5l(}b28ja-V`}s+`?X<*=0I}6iDSpe1Ef3VJP};VE3lRrfGAal2Yq9n1lDGin=0)? zOCjw?>H_Em2UoX68GcQf6ez{?1GLf(9GX6^PdRJwJ-y%+5~&+Hh>kjK?o5ytlDv$f z!r11~ljDWdTEG@Jmw0T@Pf&cFLn&$U(8-7SWJ_~-9+Gpgxw)wf@c7L@`;+c>`)`5F zcG&mK3$*imd`V$t7}ZcP)<=&hQlS?0+xri?42Rn88H+C|Mbz0sWHBI|*_GuQj5O%d zGQQ^6ZRxiolZxK`>0NpHzcRu2B0K7V$;`9#K}9FW6Gw>XJA`E3!`oqqH^o5GQ=1Zx zhP(xoo8%YpcJ1*m9+E~;lo|`Z2E8pvMxX?M7-i_r!ZV(3%pGEMqx-Cx8(im!oq9>K zBRbm!8CObRH$;we#1VZ^RvvT4ng9oK2b&OJ!u^jksIBpvE~5ywoh!J!wk)zW<*rjv z%?54+fBVFW@lg2+fiA8Je{h|F?Ld_Y-=CW2@Srb2mckJ?x8X!X;^Ijn*5F#f4;Bz& z*8~GY19h5bdJ!3cxdw*}WDTN?z|uLU0b(q}JN~Kz2>|GxY(=}f#;oFl03<5dqwu@cm;O0)Vk>5&$LeNw#kSP zibxIJfuwV?8hfXHWh3~*&HkyTEa&m2vxp13oho(i306yd_TLK=Co@PPE$lvEGU4+_ zlB%DZ#D$3WX1O8qkwLmgWW~Qtw#!RPe1gz`Wbg z2RjqYvf`kyEqy5|@|B)uv$g+@|?rLGl4 zhAMp}huCSJ@mleoy@i1o# z$M6U2)Q*Kg{U8Lq1l}PdozWj=u!X&bPMBpWbZVynBX6nEm;h5XH}S@O_%q7Z?(=8Vz|4OBIO0d*(eE7mO+QSe|cLv!R{ahn-+@N5QwrOC% zgIeTR*nXH3rO0LnE9kD_OUI3{5MvAw1~lm?H)U7CG8d>JP;fPIl%KK`I()kmoi(__^5|V=d4M~8K z$PRUbb{W|DcM4gQ70-7nm(khW-I_`%rycb~)H6fwO-)DA(5D{FsHDP~Mph4brXsfZ zS>Y=quFMvCJ?In=3WeVT*ThEVPg1ee9I`M%K-^w{uss~4xDq8W0xJkOt2xPC~)Am`r{b4M}?l76EvSDmTL@-J;%2MS} z`{}+ynZDYwt z62^sFIBQK460V5Y^k+GNM)jX70yzRY0mP`6@wI1~YON{9p82*z!2@qJ=bhf@E=yoMX>;|E+z<7H-o8g_I5u zF??%el2L%fi||v!Mqx>*S!ucB+CeV;71$4wM+1Mk|MA0JH(sy7wh;@gHNj`R2~;pF z&3pa4rh@PhbJ+U@u$43is;n@16AlXNVVWs8Th({^hCK6M3qxHQ zd5YqXyPHQ`gEhj^I)KpXL#$C;AxO)I9{P%RMy;%LHZAuvStaHDZ`^e}3auZIB5(yH z?RKzZ+5GDCIfWAdQhzss2yBUc61-n*x6N_~UGUHf0lpew#{Sv>Zksh852iT+;H7AV z`=8?oFYP25VY7&)5>F5k2FCaz`Ej_o%*n4Q`h1TSm}T;J`Ny}gb@5dVwUc<2cwv&M z2oHYoU~FbycpoGV?rH`Sm*K*-DKIKS-`qpvHk=uST5Lw-jgd%(uxj)Gfp4&Dmb*!c zzZc4T6kzg}Nb<%9!cBj(hb?z%OVQA!poap{>ypRy9HGYy+NyDwsuhELZ>~hxh$s`MrJ(F?v;HQ!Diz>K52n zc^)b(d{b!K;lZln^I_)4OaLhMQ7fP5uaGRMiL$RUxF(^d@j(SANDokpP-$** z2p?Oj-KnSar!I~3m`wnN0kVbxH+FUP%l&{H+ndp0^2)=HDDnyq@(LI~2}J0F2$V2w>GuAE zxZD`wj-2qeUJz6>P)@QSPWeIsWo|oc3l#-*g3vnn!_DWXAZ^#YjYEqn$P(u(>9lW) zkl{kjl&xjHB40|9sa$s@aUU_nrVqWiEPTTeu?6x2?1!?c&{P_*&4XZ(Mcss?{t)ZU z&pE&Z#~O%pAev)E#-_uhLOB@t{q?)fiyE?Z{ayn7u|O_ySi!4+NAbDw@hLjogFJsi zEOpu5DTf7SDT4}ig*GG%YGELPf{yQ>$ks`+$JAMl0Q`;;`v8*`TAu$$H!Hru#>3V3 zrh(r=c(GCN7hW_-pJ8eOH_OH3%Ox-#P< z7D^W4$Z*awODkc#f-+g*L_i1fWJy4(EFgA-`=6+vC>QL23w-o;a0>cM{M?u?e&Nq2 zdpD_RK#hn02MgX%`3t?EH}7YWfB8%3?hnMLOY$rY_*jVUGGbQVxbK3}5r9mQOT*>L^fxxm};_sKj+QELOq8z~w~6IV5) zZpd|R2~I%6G(0wMl&)5gMKUJb*&va^kK3v}b*k2)Y{EogV*xu_fndXz*g{g4yf5u$ zv~aUUFmb=X`+e#9lO;7Ka2iu1$w}FS=TnmAp2m)49~teAE&9o_f*xeewxslu+TPgu zzgI$(#R2ym z^O%(AaaHMunfw)ev((!_t+WF~l&+r3tiHKQvbFGeck!1XT~B+P zbd)^KZVQWz$g|r~qbHDOOOq+)H+t%nHZ!AyeSMu{V{9QJh0I z)1+{2dozI`fzNVjP)x0J-cf*wNEAE?SWU91dz5uP<6& z00y8{BrUd5q9_c7lRAal>y9X+(AlqNtn&jn8&m2)bhH6Bpq`eX_0aIly;(OYRD2b( z^jQ{aujCBJOnuYACj=iI*%BFA{%Dm@L?j_#mR6vq8<#`dlI!EM^eTqH0f8zFgX3DL zxIKKXhta5;$R<^0upP>+7uz^xLQneuY{VykFO{F~7Da4EH{4J$Tl~L!!$9JsLuC)) zX-j4uZWLQ)*A)Suy~fetu(%7{i4 zuM_{iSfeDL%$J~yxFW)`AzQ|Llug}`cU`4Fbb6H+As;C;mLRgEhTv8R&j&+nmIsHb zw#{#sJB6ab5RoCr9yRpIH=HTtB}s*)l0m<^#4`vFjx)Bi8L=L)I=$3isDjwT1xZkY zcLQ2YftSeaZMB>=Y7(|h0o@8^OIhKg=ant%NsTatVIr>?DBv2%#|*C#;X%bpr=&7+ zC#Bdq=c%F@YX&S76y z5!Z;QU3XZY8~8&+JHd%KK`T5{P)_2CPEN|tKVzLaC%IOj*auN3aVR97Xvxk{GM+>~G)eFF4A^46>3N8-?uA>uQPFFKaFc5>BDjP#!BR!6cY8>#m|o zzXU)?t^*eAgEawG);%>p&oGj~+ z&4fSmo^bjt>YvOWnr!5~*U*Gku$iY%9lQ1VoKu!lsvY`b3`vBhmi7*>xcUf*#Z@xYs3mWFo3OAKcy}?)%*}lFLppfy}eVrX13Br?0fKl zV3JWZ8CwZtTeBza%L;MhbqBE?$Og6sMbjHD`eBKT$6Nd`s=2ZSe2vx#AIiBzAxEB( zbU{xvJo~S!{|A6Xst0+^MX}>z9gX{t&<@gSp^_HJPPRd%Wg+f;9vpxE8Gtzg>J>YN z+~^9bG=Fw%)5!je9YIixoYXZiG|(P0j-7x}(W69E8t!8wJMhlFD} z{`^@-1Re*+s#0>7q56RuBgLKZ$^N)5$i=XxA@`w*0wz{+_e^(3+MXf^3Z&CPyL6XR zgadPg^xmp1-A;x*O$7vCMh`yl%gzkvAa~v?oez4|F>qkVFs^qvg$H|>@G&u{fdbyZptzK3R z<-su+`=Yokyhrazu%5tHT85R8M*7wYLD4Gc2rpXCBB#*|%gjYNf2X$>(;CGK0@rTg z;R#LK5Q7WPGSVK~_UPeZcrTn^c;RVZk{9D6DLCt!YA5CGXKbG5MwG4yc>@YU7t3r=Mz`5d#vC!P^WAK(pes8ld@l1Q}H z)!!lcu<9f8)rJaxgYlpZug%hIVY$XC@yGtXLhm5lSs<8G(8dG9^G~oif(!*&O7pen zw!~*SP(-n=1+M2=Tjb+7MmB(&xskaVY-qESb&VF*4-tJK+>J(bI+x>{Rew_e-!J4C z%8%6_Y<+knm7eD&tkcgtX8eY%I)E4Sws8}vpoRO$)icZeX{eBxhj~TZlx(a`aJ=T7RX62Z-&86sK_sMvZ3%TYKP(eb0q5#cS^L$M z%G{?5X14p(hOeP9srYqGSl-*!*0*Y}676k_;uYGf-5&|Fjn=n|=I$_?@ThPq(MR2N z{=5gUwIutxBCV%}|51f=djZoIgPyX#eckl zIvZ%~Y8{?E<$+8)kjF8Iv`_u?0fdi}73N;zfdZYJ;(i(!BRtol- zo$>mPTBbgL6?AE0OtgbdxF$$RNf||Z>6eTU`q_s^HkqMng;0YRkLw0WIyBPZar4C$ zs>xnYCqVmikcGG`9ZcGG3;M2sdl9zf@QTu7MYHNPX0-W&5-suV?T-(Ru*-M+CD9@& zD*P9LddW8Kve0s@nf00S4i5n@>A#S2<5!L2;4F=BapSMl-;Q6CaQ?NxKU$;`(O!&S z=Zo8u7?U{TxOt$m0;axsHf5MlOpaP~4sMi+bgnZb0qy8^8-qR2L_Tpp*P4U4Te3#u z4>FEMWTKBAAWZS<(C*>9u<4!>kYnT)I;Yo&HbLbamPne${0s5`C=PBZYs?laWZuF% z?0XYjXJev1V57i_!K@-46IO7yfxjuIP?buIO?)&v#M#Px_rPO&`#^LG7mlhx9)~&* zwFjcuR?UKR0W?tr5z^LX2)=Z|<>gT{ zMmUSlUJ%p;BY}n4MVP%p=*R8FfCZV~29}V)T_X#qs)b9p!ez0TH1c0oTYwVCR<#H| zA-rsT3vSJbGS-fz$E+brZz1?WBny-=rFV+v>pz-BQEcfplSfttrYnFL66t6|>#4S| z!_Qt*V%*O8Hg=!19Ek6<0oP{gIf)kFg%T7jI4dek;3GTQZ&8<#&!cyg3I(d$Mk;Hj zy~YjP5f$W!Xr%2C8|uAP7MEJ-yRt+mREGq1j;W+(SGV zku7WSyAo;5D-^V1@4lR`6tnLX3Dop}DnRI}<2rOZ-Ur0YcR%?3K1Z@i`P}Ihdo)*C zQZr6{6FwOw4`2;#Ngg|?h*t=a#cMBtD8Mw1g$cM6oGEsuH$5s_wX^f;%8yXz+W30E zxw#QN^Yj~L-3CY{z;5l@g>>igbRlV%)?t%UzYqwjCW04R6~y-+U1h!pc~^*ScFfvQ{zdmK;}P00uJ4UcOn=6Cxlgum!&7UA9_^^trZhFrcSL}x%(TVq zk8n31(htQVak8q2KSC%d6?U1gc%aI#0RkdNH*SWW$}r&P(&CKx^J z#4S}{2XM&Sg2_QDoWqWC;2mJyVg8OS$Qlc5fB#^ zda80_Goz6bsAy18Y4-1)$>x4g_7$#-4zVx}+g-7!l2P`HTcGO)%&0roB04+W?&c4% zOe22c5$>9DZ-HDpm0iNPVqfsZZ`P7%PE{b?y%Wb|I*u%iJ?w?q>Sz1iPv0;lqrl84d;(vff z_wgl(t}pRLXXa_j6%nnezYZOjO({X-grTJZr8c#dqtB;5rI#aRKa&dSzA;Zsw1H17 z8y#t_LOqgg-%;FzD2siRA89lGPtQF|iQw3ZJe%42%rb3bLfda6qU(I7?Fabe?6`Ts zGv6bWXU}kuoFvXYYpX9dlxwi-1;eFiC=9>bp=L-c+Q}b!VDArrKvVOr{~;q^pg+^7 zXD20z1y)?Wfbk+-A1OktiAK&qlgFHvX4{?p48S_1?okVbVM(-W!{MnNctp=*bXg@e3 zn9sO!;N9`BbX!$U*U_BBG^58!gjxYnEY=P|TWcv0Sq3M@D?EcQ;C_sG0qGL*AJy~^ zfx@^L#+jxRVMd(@CfHWe!qCXY&rn-q^v$Sto(djJ2uQLwFpP~KVx5GTboqpI^}Zr9 z-Tbj6yhd>%(vTEGp#ir7?vO-*CR3^Tpu=@#S0yk&*_7X|9 zf-(q5{?HeWBkf+iZU5*1q?6j83vasaH+7`g^9Nc3GPR(tq9E#p6&hR9yrq&Sj(RH`%GTl6H7{+p^NvK)QI;PMV=8JYj8+QAZlJQYFK_&^AUr18rUpNp?W z^I2>Nuddt)v40Vti~Z}X_fPsHq$2p2>;5NrDV?N3bVr3SqCxScp4Bv?o(M2U9MaX1qGXLyrVp+xllr)Z+@LAMUq%)+$^a!YrxoJ785q=j; zQ^U{k0vffhIZ)MEKW1!yCXjJb5M^1lEA$wVcn&``PWAY~Fa+dxw<>VIBS7tckX73D zOl@8bH1R@Tbh`9}tLJK$YpRZSkZAyDhIlZ6zUNQ3E4q>lLF+LVjQfH(4nK&n&Xz5#iyBG z?&DZcA?gIYz(h&`O!!@A&BG{65KSu_U1J~DiB-Xb&!$Ga0lZfD=s+cF$DCyue!~d@ z&D6bxGTGA(Bn`H=y42nn<;I(*$Di7dI?bl@Zx86+AjTJeh-J{2mq7s^y|5}H1|A?< zhNzhDr_)3KS(QLg^Z}5A>NoTnRL7?Ko5M1zAE>zEO26hWK;KA1@(pM&K*tEHJ&TAE zIe+F~wA&+U1vZFs4M`8RWi5JN>30k!L7%3sOmIPt%MSGA3O-l@^)Pa#&xJg&@6v-X zw>fAj0yBgGhrD8pZO35aG!;DFk^v(uO-QZSEz@maqcf-+nc1MfGTgZ1utSPg4^MF&UNMSm z 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

uX`3ZbS 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

!W3YyQTNCy57YX;ol+z#HF*A-K4@ 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 literal 0 HcmV?d00001 diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-plugin/Cargo.toml b/shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-plugin/Cargo.toml new file mode 100644 index 000000000000..465d29ee5935 --- /dev/null +++ b/shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-plugin/Cargo.toml @@ -0,0 +1,26 @@ +# +# 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. +# + +[package] +name = "rust-wasm-plugin" +version = "0.1.0" +edition = "2021" + +[lib] +crate-type = ["cdylib"] diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-plugin/src/lib.rs b/shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-plugin/src/lib.rs new file mode 100644 index 000000000000..b2ece8f3f17c --- /dev/null +++ b/shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-plugin/src/lib.rs @@ -0,0 +1,38 @@ +/* + * 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. + */ + +#[link(wasm_import_module = "shenyu")] +extern "C" { + fn get_args(arg_id: i64, addr: i64, len: i32) -> i32; + + fn put_result(arg_id: i64, addr: i64, len: i32) -> i32; +} + +#[no_mangle] +pub unsafe extern "C" fn execute(arg_id: i64) { + let mut buf = [0u8; 32]; + let buf_ptr = buf.as_mut_ptr() as i64; + eprintln!("rust side-> buffer base address: {}", buf_ptr); + // get arg from java + let len = get_args(arg_id, buf_ptr, buf.len() as i32); + let java_arg = std::str::from_utf8(&buf[..len as usize]).unwrap(); + eprintln!("rust side-> recv:{}", java_arg); + // pass rust result to java + let rust_result = "rust result".as_bytes(); + let result_ptr = rust_result.as_ptr() as i64; + _ = put_result(arg_id, result_ptr, rust_result.len() as i32); +} From 79552f2078de15aa9e07133c58411ac307e60888 Mon Sep 17 00:00:00 2001 From: Divyansh200102 <146909065+Divyansh200102@users.noreply.github.com> Date: Fri, 26 Jan 2024 12:08:44 +0530 Subject: [PATCH 05/10] Add test case for `ShenyuClientMetadataExecutorSubscriber` (#5404) * Create ShenyuClientMetadataExecutorSubscriberTest.java * Update ShenyuClientMetadataExecutorSubscriberTest.java * Update ShenyuClientMetadataExecutorSubscriberTest.java * Update ShenyuClientMetadataExecutorSubscriberTest.java * Update ShenyuClientMetadataExecutorSubscriberTest.java * Update ShenyuClientMetadataExecutorSubscriberTest.java * Update ShenyuClientMetadataExecutorSubscriberTest.java * Update ShenyuClientMetadataExecutorSubscriberTest.java --------- Co-authored-by: dragon-zhang --- ...uClientMetadataExecutorSubscriberTest.java | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 shenyu-client/shenyu-client-core/src/test/java/org/apache/shenyu/client/core/disruptor/subcriber/ShenyuClientMetadataExecutorSubscriberTest.java diff --git a/shenyu-client/shenyu-client-core/src/test/java/org/apache/shenyu/client/core/disruptor/subcriber/ShenyuClientMetadataExecutorSubscriberTest.java b/shenyu-client/shenyu-client-core/src/test/java/org/apache/shenyu/client/core/disruptor/subcriber/ShenyuClientMetadataExecutorSubscriberTest.java new file mode 100644 index 000000000000..42e6f2986bfd --- /dev/null +++ b/shenyu-client/shenyu-client-core/src/test/java/org/apache/shenyu/client/core/disruptor/subcriber/ShenyuClientMetadataExecutorSubscriberTest.java @@ -0,0 +1,90 @@ +/* + * 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. + */ + +package org.apache.shenyu.client.core.disruptor.subcriber; + +import org.apache.shenyu.register.client.api.ShenyuClientRegisterRepository; +import org.apache.shenyu.register.common.dto.MetaDataRegisterDTO; +import org.apache.shenyu.register.common.type.DataType; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.Collection; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.times; + +/** + * Test for {@link ShenyuClientMetadataExecutorSubscriber}. + */ +public class ShenyuClientMetadataExecutorSubscriberTest { + + private ShenyuClientRegisterRepository shenyuClientRegisterRepository; + + private ShenyuClientMetadataExecutorSubscriber executorSubscriber; + + @BeforeEach + public void setUp() { + shenyuClientRegisterRepository = mock(ShenyuClientRegisterRepository.class); + executorSubscriber = new ShenyuClientMetadataExecutorSubscriber(shenyuClientRegisterRepository); + } + + @Test + public void testGetType() { + DataType expected = DataType.META_DATA; + DataType actual = executorSubscriber.getType(); + assertEquals(expected, actual); + } + + @Test + public void testExecutorWithEmptyData() { + Collection metaDataRegisterDTOList = new ArrayList<>(); + executorSubscriber.executor(metaDataRegisterDTOList); + + verify(shenyuClientRegisterRepository, never()).persistInterface(any()); + } + + @Test + public void testExecutorValidData() { + Collection metaList = new ArrayList<>(); + + MetaDataRegisterDTO metaDataRegisterDTO = + MetaDataRegisterDTO.builder().contextPath("/test").path("/meta").pathDesc("application/json") + .rpcType("http") + .serviceName("UserService") + .methodName("getUserInfo") + .ruleName("AuthorizationRule") + .parameterTypes("String, int") + .rpcExt("test") + .enabled(true) + .host("localhost") + .port(8080) + .pluginNames(new ArrayList<>()) + .build(); + metaList.add(metaDataRegisterDTO); + + executorSubscriber.executor(metaList); + + verify(shenyuClientRegisterRepository, times(1)).persistInterface(metaDataRegisterDTO); + } + +} From a026635f30d159a1814811b99074998eaa01c136 Mon Sep 17 00:00:00 2001 From: zhengke zhou <36791902+zzzk1@users.noreply.github.com> Date: Fri, 26 Jan 2024 16:42:18 +0800 Subject: [PATCH 06/10] test client grpc test case (#5395) * test client grpc test case * fix format --------- Co-authored-by: dragon-zhang Co-authored-by: moremind --- .../shenyu/client/grpc/TestRequest.java | 29 ++++++++++++++ .../shenyu/client/grpc/TestResponse.java | 29 ++++++++++++++ .../json/JsonForwardingServerCallTest.java | 33 +++++++++++++++ .../grpc/json/JsonServerCallListenerTest.java | 33 +++++++++++++++ .../JsonServerServiceInterceptorTest.java | 22 ++++++++++ .../grpc/server/GrpcServerRunnerTest.java | 40 +++++++++++++++++++ 6 files changed, 186 insertions(+) create mode 100644 shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/TestRequest.java create mode 100644 shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/TestResponse.java create mode 100644 shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/json/JsonForwardingServerCallTest.java create mode 100644 shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/json/JsonServerCallListenerTest.java create mode 100644 shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/json/JsonServerServiceInterceptorTest.java create mode 100644 shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/server/GrpcServerRunnerTest.java diff --git a/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/TestRequest.java b/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/TestRequest.java new file mode 100644 index 000000000000..58f6db248bd6 --- /dev/null +++ b/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/TestRequest.java @@ -0,0 +1,29 @@ +/* + * 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. + */ + +package org.apache.shenyu.client.grpc; + +/** + * name request message. + */ +public class TestRequest { + private final String name; + + public TestRequest(final String name) { + this.name = name; + } +} diff --git a/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/TestResponse.java b/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/TestResponse.java new file mode 100644 index 000000000000..b9f31e0a05ee --- /dev/null +++ b/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/TestResponse.java @@ -0,0 +1,29 @@ +/* + * 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. + */ + +package org.apache.shenyu.client.grpc; + +/** + * name response message. + */ +public class TestResponse { + private final String name; + + public TestResponse(final String name) { + this.name = name; + } +} diff --git a/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/json/JsonForwardingServerCallTest.java b/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/json/JsonForwardingServerCallTest.java new file mode 100644 index 000000000000..98fc74aee36c --- /dev/null +++ b/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/json/JsonForwardingServerCallTest.java @@ -0,0 +1,33 @@ +/* + * 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. + */ + +package org.apache.shenyu.client.grpc.json; + +import org.apache.shenyu.client.grpc.TestRequest; +import org.apache.shenyu.client.grpc.TestResponse; +import org.junit.jupiter.api.Test; + +import static org.mockito.Mockito.mock; + +public class JsonForwardingServerCallTest { + private final JsonForwardingServerCall testJsonForwardingServerCall = mock(JsonForwardingServerCall.class); + + @Test + public void sentMsgTest() { + testJsonForwardingServerCall.sendMessage(new TestResponse("test-response")); + } +} diff --git a/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/json/JsonServerCallListenerTest.java b/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/json/JsonServerCallListenerTest.java new file mode 100644 index 000000000000..3e70c5cd6998 --- /dev/null +++ b/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/json/JsonServerCallListenerTest.java @@ -0,0 +1,33 @@ +/* + * 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. + */ + +package org.apache.shenyu.client.grpc.json; + +import org.apache.shenyu.client.grpc.TestRequest; +import org.apache.shenyu.client.grpc.TestResponse; +import org.junit.jupiter.api.Test; + +import static org.mockito.Mockito.mock; + +public class JsonServerCallListenerTest { + private final JsonServerCallListener testJsonServerCallListener = mock(JsonServerCallListener.class); + + @Test + public void testOnMessage() { + testJsonServerCallListener.onMessage(new TestRequest("test-on-message")); + } +} diff --git a/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/json/JsonServerServiceInterceptorTest.java b/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/json/JsonServerServiceInterceptorTest.java new file mode 100644 index 000000000000..d523feaec31b --- /dev/null +++ b/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/json/JsonServerServiceInterceptorTest.java @@ -0,0 +1,22 @@ +/* + * 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. + */ + +package org.apache.shenyu.client.grpc.json; + +public class JsonServerServiceInterceptorTest { + +} diff --git a/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/server/GrpcServerRunnerTest.java b/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/server/GrpcServerRunnerTest.java new file mode 100644 index 000000000000..050cd2a1793e --- /dev/null +++ b/shenyu-client/shenyu-client-grpc/src/test/java/org/apache/shenyu/client/grpc/server/GrpcServerRunnerTest.java @@ -0,0 +1,40 @@ +/* + * 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. + */ + +package org.apache.shenyu.client.grpc.server; + +import io.grpc.ServerBuilder; +import org.apache.shenyu.client.grpc.GrpcClientEventListener; +import org.junit.jupiter.api.Test; +import org.springframework.context.event.ContextRefreshedEvent; + +import static org.mockito.Mockito.mock; + +public class GrpcServerRunnerTest { + private final ContextRefreshedEvent testEvent = mock(ContextRefreshedEvent.class); + + private final GrpcClientEventListener testGrpcClientEventListener = mock(GrpcClientEventListener.class); + + @Test + public void testOnApplicationEvent() { + GrpcServerBuilder testGrpcServerBuilder = () -> ServerBuilder.forPort(8088); + + GrpcServerRunner testGrpcServerRunner = new GrpcServerRunner(testGrpcServerBuilder, testGrpcClientEventListener); + + testGrpcServerRunner.onApplicationEvent(testEvent); + } +} From b45d0e65ccaf1fdd49643b52a1026ad1f22b7e39 Mon Sep 17 00:00:00 2001 From: dragon-zhang Date: Sat, 27 Jan 2024 18:44:11 +0800 Subject: [PATCH 07/10] [ISSUE #4612] init shenyu-plugin-wasm-api module (#5424) * [ISSUE #4612] init shenyu-plugin-wasm-api module * simplify dep --- shenyu-plugin/pom.xml | 1 + shenyu-plugin/shenyu-plugin-wasm-api/pom.xml | 49 +++++++ .../plugin/wasm/api}/AbstractWasmPlugin.java | 5 +- .../api}/exception/ShenyuWasmException.java | 2 +- .../exception/ShenyuWasmInitException.java | 2 +- .../plugin/wasm/api/loader}/WasmLoader.java | 4 +- .../shenyu-plugin-wasm-api/src/test/README.md | 19 +++ .../wasm/api}/AbstractWasmPluginTest.java | 2 +- ...bstractWasmPluginTest$RustWasmPlugin.wasm} | Bin .../src/test/rust-wasm-plugin/Cargo.toml | 0 .../src/test/rust-wasm-plugin/src/lib.rs | 0 shenyu-plugin/shenyu-plugin-wasm-base/pom.xml | 7 +- .../wasm/base/AbstractShenyuWasmPlugin.java | 3 +- .../handler/AbstractWasmDiscoveryHandler.java | 56 +++++++ .../handler/AbstractWasmMetaDataHandler.java | 77 ++++++++++ .../AbstractWasmPluginDataHandler.java | 138 ++++++++++++++++++ .../src/test/README.md | 19 --- 17 files changed, 354 insertions(+), 30 deletions(-) create mode 100644 shenyu-plugin/shenyu-plugin-wasm-api/pom.xml rename shenyu-plugin/{shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base => shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api}/AbstractWasmPlugin.java (97%) rename shenyu-plugin/{shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base => shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api}/exception/ShenyuWasmException.java (96%) rename shenyu-plugin/{shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base => shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api}/exception/ShenyuWasmInitException.java (96%) rename shenyu-plugin/{shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base => shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api/loader}/WasmLoader.java (98%) create mode 100644 shenyu-plugin/shenyu-plugin-wasm-api/src/test/README.md rename shenyu-plugin/{shenyu-plugin-wasm-base/src/test/java/org/apache/shenyu/plugin/wasm/base => shenyu-plugin-wasm-api/src/test/java/org/apache/shenyu/plugin/wasm/api}/AbstractWasmPluginTest.java (99%) rename shenyu-plugin/{shenyu-plugin-wasm-base/src/test/resources/org.apache.shenyu.plugin.wasm.base.AbstractWasmPluginTest$RustWasmPlugin.wasm => shenyu-plugin-wasm-api/src/test/resources/org.apache.shenyu.plugin.wasm.api.AbstractWasmPluginTest$RustWasmPlugin.wasm} (100%) rename shenyu-plugin/{shenyu-plugin-wasm-base => shenyu-plugin-wasm-api}/src/test/rust-wasm-plugin/Cargo.toml (100%) rename shenyu-plugin/{shenyu-plugin-wasm-base => shenyu-plugin-wasm-api}/src/test/rust-wasm-plugin/src/lib.rs (100%) create mode 100644 shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/handler/AbstractWasmDiscoveryHandler.java create mode 100644 shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/handler/AbstractWasmMetaDataHandler.java create mode 100644 shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/handler/AbstractWasmPluginDataHandler.java delete mode 100644 shenyu-plugin/shenyu-plugin-wasm-base/src/test/README.md diff --git a/shenyu-plugin/pom.xml b/shenyu-plugin/pom.xml index 17e406f8bb25..540393acbd24 100644 --- a/shenyu-plugin/pom.xml +++ b/shenyu-plugin/pom.xml @@ -28,6 +28,7 @@ shenyu-plugin-api + shenyu-plugin-wasm-api shenyu-plugin-base shenyu-plugin-wasm-base shenyu-plugin-httpclient diff --git a/shenyu-plugin/shenyu-plugin-wasm-api/pom.xml b/shenyu-plugin/shenyu-plugin-wasm-api/pom.xml new file mode 100644 index 000000000000..8e90f828ddbc --- /dev/null +++ b/shenyu-plugin/shenyu-plugin-wasm-api/pom.xml @@ -0,0 +1,49 @@ + + + + + + org.apache.shenyu + shenyu-plugin + 2.6.2-SNAPSHOT + + 4.0.0 + shenyu-plugin-wasm-api + + + + org.apache.shenyu + shenyu-plugin-api + ${project.version} + + + io.github.kawamuray.wasmtime + wasmtime-java + + + ch.qos.logback + logback-classic + test + + + com.fasterxml.jackson.module + jackson-module-kotlin + test + + + \ No newline at end of file diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/AbstractWasmPlugin.java b/shenyu-plugin/shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api/AbstractWasmPlugin.java similarity index 97% rename from shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/AbstractWasmPlugin.java rename to shenyu-plugin/shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api/AbstractWasmPlugin.java index ce3a58a05914..cc90b3718296 100644 --- a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/AbstractWasmPlugin.java +++ b/shenyu-plugin/shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api/AbstractWasmPlugin.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shenyu.plugin.wasm.base; +package org.apache.shenyu.plugin.wasm.api; import io.github.kawamuray.wasmtime.Extern; import io.github.kawamuray.wasmtime.WasmFunctions; @@ -25,6 +25,7 @@ import org.apache.shenyu.plugin.api.result.ShenyuResultEnum; import org.apache.shenyu.plugin.api.result.ShenyuResultWrap; import org.apache.shenyu.plugin.api.utils.WebFluxResultUtils; +import org.apache.shenyu.plugin.wasm.api.loader.WasmLoader; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; @@ -41,7 +42,7 @@ * * @see org.apache.shenyu.plugin.api.ShenyuPlugin * @see io.github.kawamuray.wasmtime.WasmValType - * @see org.apache.shenyu.plugin.wasm.base.WasmLoader + * @see WasmLoader */ public abstract class AbstractWasmPlugin extends WasmLoader implements ShenyuPlugin { diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/exception/ShenyuWasmException.java b/shenyu-plugin/shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api/exception/ShenyuWasmException.java similarity index 96% rename from shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/exception/ShenyuWasmException.java rename to shenyu-plugin/shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api/exception/ShenyuWasmException.java index 52b524bd71ff..b53b6b3b62b5 100644 --- a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/exception/ShenyuWasmException.java +++ b/shenyu-plugin/shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api/exception/ShenyuWasmException.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shenyu.plugin.wasm.base.exception; +package org.apache.shenyu.plugin.wasm.api.exception; import org.apache.shenyu.common.exception.ShenyuException; diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/exception/ShenyuWasmInitException.java b/shenyu-plugin/shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api/exception/ShenyuWasmInitException.java similarity index 96% rename from shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/exception/ShenyuWasmInitException.java rename to shenyu-plugin/shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api/exception/ShenyuWasmInitException.java index 230e93676a9f..5ac88bfd1b1d 100644 --- a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/exception/ShenyuWasmInitException.java +++ b/shenyu-plugin/shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api/exception/ShenyuWasmInitException.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shenyu.plugin.wasm.base.exception; +package org.apache.shenyu.plugin.wasm.api.exception; /** * Shenyu WASM init Exception. diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/WasmLoader.java b/shenyu-plugin/shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api/loader/WasmLoader.java similarity index 98% rename from shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/WasmLoader.java rename to shenyu-plugin/shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api/loader/WasmLoader.java index 706d55f50310..c089344f6bad 100644 --- a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/WasmLoader.java +++ b/shenyu-plugin/shenyu-plugin-wasm-api/src/main/java/org/apache/shenyu/plugin/wasm/api/loader/WasmLoader.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shenyu.plugin.wasm.base; +package org.apache.shenyu.plugin.wasm.api.loader; import io.github.kawamuray.wasmtime.Extern; import io.github.kawamuray.wasmtime.Func; @@ -25,7 +25,7 @@ import io.github.kawamuray.wasmtime.Store; import io.github.kawamuray.wasmtime.wasi.WasiCtx; import io.github.kawamuray.wasmtime.wasi.WasiCtxBuilder; -import org.apache.shenyu.plugin.wasm.base.exception.ShenyuWasmInitException; +import org.apache.shenyu.plugin.wasm.api.exception.ShenyuWasmInitException; import java.io.IOException; import java.net.URISyntaxException; diff --git a/shenyu-plugin/shenyu-plugin-wasm-api/src/test/README.md b/shenyu-plugin/shenyu-plugin-wasm-api/src/test/README.md new file mode 100644 index 000000000000..1da92def0048 --- /dev/null +++ b/shenyu-plugin/shenyu-plugin-wasm-api/src/test/README.md @@ -0,0 +1,19 @@ +# How to build the wasm file + +1. install rustup + +2. install rust + +3. generate the wasm file + +```shell +cd {shenyu}/shenyu-plugin/shenyu-plugin-wasm-api/src/test/rust-wasm-filter +cargo build --target wasm32-wasi --release +``` + +then you will see the wasm file +in `{shenyu}/shenyu-plugin/shenyu-plugin-wasm-api/src/test/rust-wasm-filter/target/wasm32-wasi/release/rust_filter.wasm` + +4. rename the wasm file + +rename the file to `org.apache.shenyu.plugin.wasm.api.AbstractWasmPluginTest$RustWasmPlugin.wasm` diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/test/java/org/apache/shenyu/plugin/wasm/base/AbstractWasmPluginTest.java b/shenyu-plugin/shenyu-plugin-wasm-api/src/test/java/org/apache/shenyu/plugin/wasm/api/AbstractWasmPluginTest.java similarity index 99% rename from shenyu-plugin/shenyu-plugin-wasm-base/src/test/java/org/apache/shenyu/plugin/wasm/base/AbstractWasmPluginTest.java rename to shenyu-plugin/shenyu-plugin-wasm-api/src/test/java/org/apache/shenyu/plugin/wasm/api/AbstractWasmPluginTest.java index e626c784ff46..07a1fb645f1f 100644 --- a/shenyu-plugin/shenyu-plugin-wasm-base/src/test/java/org/apache/shenyu/plugin/wasm/base/AbstractWasmPluginTest.java +++ b/shenyu-plugin/shenyu-plugin-wasm-api/src/test/java/org/apache/shenyu/plugin/wasm/api/AbstractWasmPluginTest.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.apache.shenyu.plugin.wasm.base; +package org.apache.shenyu.plugin.wasm.api; import io.github.kawamuray.wasmtime.Func; import io.github.kawamuray.wasmtime.Store; diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/test/resources/org.apache.shenyu.plugin.wasm.base.AbstractWasmPluginTest$RustWasmPlugin.wasm b/shenyu-plugin/shenyu-plugin-wasm-api/src/test/resources/org.apache.shenyu.plugin.wasm.api.AbstractWasmPluginTest$RustWasmPlugin.wasm similarity index 100% rename from shenyu-plugin/shenyu-plugin-wasm-base/src/test/resources/org.apache.shenyu.plugin.wasm.base.AbstractWasmPluginTest$RustWasmPlugin.wasm rename to shenyu-plugin/shenyu-plugin-wasm-api/src/test/resources/org.apache.shenyu.plugin.wasm.api.AbstractWasmPluginTest$RustWasmPlugin.wasm diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-plugin/Cargo.toml b/shenyu-plugin/shenyu-plugin-wasm-api/src/test/rust-wasm-plugin/Cargo.toml similarity index 100% rename from shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-plugin/Cargo.toml rename to shenyu-plugin/shenyu-plugin-wasm-api/src/test/rust-wasm-plugin/Cargo.toml diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-plugin/src/lib.rs b/shenyu-plugin/shenyu-plugin-wasm-api/src/test/rust-wasm-plugin/src/lib.rs similarity index 100% rename from shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-plugin/src/lib.rs rename to shenyu-plugin/shenyu-plugin-wasm-api/src/test/rust-wasm-plugin/src/lib.rs diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/pom.xml b/shenyu-plugin/shenyu-plugin-wasm-base/pom.xml index d64e2de34045..17735b1c7add 100644 --- a/shenyu-plugin/shenyu-plugin-wasm-base/pom.xml +++ b/shenyu-plugin/shenyu-plugin-wasm-base/pom.xml @@ -28,12 +28,13 @@ org.apache.shenyu - shenyu-plugin-base + shenyu-plugin-wasm-api ${project.version} - io.github.kawamuray.wasmtime - wasmtime-java + org.apache.shenyu + shenyu-plugin-base + ${project.version} ch.qos.logback diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/AbstractShenyuWasmPlugin.java b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/AbstractShenyuWasmPlugin.java index c44da42e74eb..ae8198ebb039 100644 --- a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/AbstractShenyuWasmPlugin.java +++ b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/AbstractShenyuWasmPlugin.java @@ -29,6 +29,7 @@ import org.apache.shenyu.plugin.api.result.ShenyuResultWrap; import org.apache.shenyu.plugin.api.utils.WebFluxResultUtils; import org.apache.shenyu.plugin.base.AbstractShenyuPlugin; +import org.apache.shenyu.plugin.wasm.api.loader.WasmLoader; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; @@ -45,7 +46,7 @@ * * @see org.apache.shenyu.plugin.base.AbstractShenyuPlugin * @see io.github.kawamuray.wasmtime.WasmValType - * @see org.apache.shenyu.plugin.wasm.base.WasmLoader + * @see org.apache.shenyu.plugin.wasm.api.loader.WasmLoader */ public abstract class AbstractShenyuWasmPlugin extends AbstractShenyuPlugin { diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/handler/AbstractWasmDiscoveryHandler.java b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/handler/AbstractWasmDiscoveryHandler.java new file mode 100644 index 000000000000..2021c9cf526e --- /dev/null +++ b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/handler/AbstractWasmDiscoveryHandler.java @@ -0,0 +1,56 @@ +/* + * 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. + */ + +package org.apache.shenyu.plugin.wasm.base.handler; + +import io.github.kawamuray.wasmtime.WasmFunctions; +import io.github.kawamuray.wasmtime.WasmValType; +import org.apache.shenyu.common.dto.DiscoverySyncData; +import org.apache.shenyu.plugin.base.handler.DiscoveryUpstreamDataHandler; +import org.apache.shenyu.plugin.wasm.api.exception.ShenyuWasmInitException; +import org.apache.shenyu.plugin.wasm.api.loader.WasmLoader; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * upstreamList data change. + */ +public abstract class AbstractWasmDiscoveryHandler extends WasmLoader implements DiscoveryUpstreamDataHandler { + + protected static final Map ARGUMENTS = new ConcurrentHashMap<>(); + + protected static final String METHOD_NAME = "handlerDiscoveryUpstreamData"; + + @Override + public void handlerDiscoveryUpstreamData(final DiscoverySyncData discoverySyncData) { + super.getWasmExtern(METHOD_NAME) + .map(handlerDiscoveryUpstreamData -> { + // WASI cannot easily pass Java objects like JNI, here we pass Long as arg + // then we can get the argument by Long + final Long argumentId = getArgumentId(discoverySyncData); + ARGUMENTS.put(argumentId, discoverySyncData); + // call WASI function + WasmFunctions.consumer(super.getStore(), handlerDiscoveryUpstreamData.func(), WasmValType.I64) + .accept(argumentId); + ARGUMENTS.remove(argumentId); + return argumentId; + }).orElseThrow(() -> new ShenyuWasmInitException(METHOD_NAME + " function not find in wasm file: " + getWasmName())); + } + + protected abstract Long getArgumentId(DiscoverySyncData discoverySyncData); +} diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/handler/AbstractWasmMetaDataHandler.java b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/handler/AbstractWasmMetaDataHandler.java new file mode 100644 index 000000000000..ee56c83e2c79 --- /dev/null +++ b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/handler/AbstractWasmMetaDataHandler.java @@ -0,0 +1,77 @@ +/* + * 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. + */ + +package org.apache.shenyu.plugin.wasm.base.handler; + +import io.github.kawamuray.wasmtime.Extern; +import io.github.kawamuray.wasmtime.WasmFunctions; +import io.github.kawamuray.wasmtime.WasmValType; +import org.apache.shenyu.common.dto.MetaData; +import org.apache.shenyu.plugin.base.handler.MetaDataHandler; +import org.apache.shenyu.plugin.wasm.api.exception.ShenyuWasmInitException; +import org.apache.shenyu.plugin.wasm.api.loader.WasmLoader; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * The type abstract wasm metadata subscriber. + */ +public abstract class AbstractWasmMetaDataHandler extends WasmLoader implements MetaDataHandler { + + protected static final Map ARGUMENTS = new ConcurrentHashMap<>(); + + protected static final String HANDLE_METHOD_NAME = "handle"; + + protected static final String REMOVE_METHOD_NAME = "remove"; + + protected static final String REFRESH_METHOD_NAME = "refresh"; + + @Override + public void handle(final MetaData metaData) { + super.getWasmExtern(HANDLE_METHOD_NAME) + .map(handle -> callWASI(metaData, handle)) + .orElseThrow(() -> new ShenyuWasmInitException(HANDLE_METHOD_NAME + " function not find in wasm file: " + getWasmName())); + } + + @Override + public void remove(final MetaData metaData) { + super.getWasmExtern(REMOVE_METHOD_NAME) + .map(remove -> callWASI(metaData, remove)) + .orElseThrow(() -> new ShenyuWasmInitException(REMOVE_METHOD_NAME + " function not find in wasm file: " + getWasmName())); + } + + private Long callWASI(final MetaData metaData, final Extern execute) { + // WASI cannot easily pass Java objects like JNI, here we pass Long as arg + // then we can get the argument by Long + final Long argumentId = getArgumentId(metaData); + ARGUMENTS.put(argumentId, metaData); + // call WASI function + WasmFunctions.consumer(super.getStore(), execute.func(), WasmValType.I64) + .accept(argumentId); + ARGUMENTS.remove(argumentId); + return argumentId; + } + + protected abstract Long getArgumentId(MetaData metaData); + + @Override + public void refresh() { + super.getWasmExtern(REFRESH_METHOD_NAME) + .ifPresent(refresh -> WasmFunctions.consumer(super.getStore(), refresh.func()).accept()); + } +} diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/handler/AbstractWasmPluginDataHandler.java b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/handler/AbstractWasmPluginDataHandler.java new file mode 100644 index 000000000000..350f3315892a --- /dev/null +++ b/shenyu-plugin/shenyu-plugin-wasm-base/src/main/java/org/apache/shenyu/plugin/wasm/base/handler/AbstractWasmPluginDataHandler.java @@ -0,0 +1,138 @@ +/* + * 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. + */ + +package org.apache.shenyu.plugin.wasm.base.handler; + +import io.github.kawamuray.wasmtime.Extern; +import io.github.kawamuray.wasmtime.WasmFunctions; +import io.github.kawamuray.wasmtime.WasmValType; +import org.apache.shenyu.common.dto.PluginData; +import org.apache.shenyu.common.dto.RuleData; +import org.apache.shenyu.common.dto.SelectorData; +import org.apache.shenyu.plugin.base.handler.PluginDataHandler; +import org.apache.shenyu.plugin.wasm.api.loader.WasmLoader; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * AbstractWasmPluginDataHandler. + */ +public abstract class AbstractWasmPluginDataHandler extends WasmLoader implements PluginDataHandler { + + protected static final Map PLUGIN_ARGUMENTS = new ConcurrentHashMap<>(); + + protected static final String HANDLER_PLUGIN_METHOD_NAME = "handlerPlugin"; + + protected static final String REMOVE_PLUGIN_METHOD_NAME = "removePlugin"; + + protected static final Map SELECTOR_ARGUMENTS = new ConcurrentHashMap<>(); + + protected static final String HANDLER_SELECTOR_METHOD_NAME = "handlerSelector"; + + protected static final String REMOVE_SELECTOR_METHOD_NAME = "removeSelector"; + + protected static final Map RULE_ARGUMENTS = new ConcurrentHashMap<>(); + + protected static final String HANDLER_RULE_METHOD_NAME = "handlerRule"; + + protected static final String REMOVE_RULE_METHOD_NAME = "removeRule"; + + @Override + public void handlerPlugin(final PluginData pluginData) { + super.getWasmExtern(HANDLER_PLUGIN_METHOD_NAME) + .ifPresent(handlerPlugin -> callWASI(pluginData, handlerPlugin)); + } + + @Override + public void removePlugin(final PluginData pluginData) { + super.getWasmExtern(REMOVE_PLUGIN_METHOD_NAME) + .ifPresent(handlerPlugin -> callWASI(pluginData, handlerPlugin)); + } + + @Override + public void handlerSelector(final SelectorData selectorData) { + super.getWasmExtern(HANDLER_SELECTOR_METHOD_NAME) + .ifPresent(handlerPlugin -> callWASI(selectorData, handlerPlugin)); + } + + @Override + public void removeSelector(final SelectorData selectorData) { + super.getWasmExtern(REMOVE_SELECTOR_METHOD_NAME) + .ifPresent(handlerPlugin -> callWASI(selectorData, handlerPlugin)); + } + + @Override + public void handlerRule(final RuleData ruleData) { + super.getWasmExtern(HANDLER_RULE_METHOD_NAME) + .ifPresent(handlerPlugin -> callWASI(ruleData, handlerPlugin)); + } + + @Override + public void removeRule(final RuleData ruleData) { + super.getWasmExtern(REMOVE_RULE_METHOD_NAME) + .ifPresent(handlerPlugin -> callWASI(ruleData, handlerPlugin)); + } + + private Long callWASI(final PluginData pluginData, final Extern execute) { + // WASI cannot easily pass Java objects like JNI, here we pass Long as arg + // then we can get the argument by Long + final Long argumentId = getPluginArgumentId(pluginData); + PLUGIN_ARGUMENTS.put(argumentId, pluginData); + // call WASI function + WasmFunctions.consumer(super.getStore(), execute.func(), WasmValType.I64) + .accept(argumentId); + PLUGIN_ARGUMENTS.remove(argumentId); + return argumentId; + } + + private Long callWASI(final RuleData ruleData, final Extern execute) { + // WASI cannot easily pass Java objects like JNI, here we pass Long as arg + // then we can get the argument by Long + final Long argumentId = getRuleArgumentId(ruleData); + RULE_ARGUMENTS.put(argumentId, ruleData); + // call WASI function + WasmFunctions.consumer(super.getStore(), execute.func(), WasmValType.I64) + .accept(argumentId); + RULE_ARGUMENTS.remove(argumentId); + return argumentId; + } + + private Long callWASI(final SelectorData selectorData, final Extern execute) { + // WASI cannot easily pass Java objects like JNI, here we pass Long as arg + // then we can get the argument by Long + final Long argumentId = getSelectorArgumentId(selectorData); + SELECTOR_ARGUMENTS.put(argumentId, selectorData); + // call WASI function + WasmFunctions.consumer(super.getStore(), execute.func(), WasmValType.I64) + .accept(argumentId); + SELECTOR_ARGUMENTS.remove(argumentId); + return argumentId; + } + + protected Long getPluginArgumentId(final PluginData pluginData) { + return 0L; + } + + protected Long getSelectorArgumentId(final SelectorData selectorData) { + return 0L; + } + + protected Long getRuleArgumentId(final RuleData ruleData) { + return 0L; + } +} diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/src/test/README.md b/shenyu-plugin/shenyu-plugin-wasm-base/src/test/README.md deleted file mode 100644 index 82bb92adb661..000000000000 --- a/shenyu-plugin/shenyu-plugin-wasm-base/src/test/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# How to build the wasm file - -1. install rustup - -2. install rust - -3. generate the wasm file - -```shell -cd {shenyu}/shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-filter -cargo build --target wasm32-wasi --release -``` - -then you will see the wasm file -in `{shenyu}/shenyu-plugin/shenyu-plugin-wasm-base/src/test/rust-wasm-filter/target/wasm32-wasi/release/rust_filter.wasm` - -4. rename the wasm file - -rename the file to `org.apache.shenyu.plugin.wasm.base.AbstractWasmPluginTest$RustWasmPlugin.wasm` From 07aa06236dae05057532b6c69605b227b31de349 Mon Sep 17 00:00:00 2001 From: dragon-zhang Date: Sat, 27 Jan 2024 22:54:36 +0800 Subject: [PATCH 08/10] [ISSUE #5177] add JDK 21 CI (#5423) * [ISSUE #5177] add JDK21 test * add distribution * rollback * upgrade bytebuddy * upgrade jacoco-maven-plugin * rollback --------- Co-authored-by: hailang --- .github/workflows/ci.yml | 8 ++++++++ pom.xml | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0639cbf3ed21..df2e7dca4425 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,6 +40,14 @@ jobs: os: ubuntu-latest - java: 17 os: ubuntu-latest + - java: 18 + os: ubuntu-latest + - java: 19 + os: ubuntu-latest + - java: 20 + os: ubuntu-latest + - java: 21 + os: ubuntu-latest runs-on: ${{ matrix.os }} if: (github.repository == 'apache/shenyu') steps: diff --git a/pom.xml b/pom.xml index a1f532dd4f7a..ecfad29a083f 100644 --- a/pom.xml +++ b/pom.xml @@ -159,7 +159,7 @@ 1.2 17.0.2 1.13.0 - 1.12.6 + 1.14.11 2.3.4.RELEASE 2.3.1 1.6.2 From a0db13ab5af5037e2e8ddbae6236a31e519abb43 Mon Sep 17 00:00:00 2001 From: hdgaadd <53108370+hdgaadd@users.noreply.github.com> Date: Wed, 31 Jan 2024 00:10:26 +0800 Subject: [PATCH 09/10] [type:refactor] adjust code order and remove invalid input parameters (#5397) Co-authored-by: hdgaadd Co-authored-by: dragon-zhang --- .../shenyu/plugin/modify/response/ModifyResponsePlugin.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shenyu-plugin/shenyu-plugin-modify-response/src/main/java/org/apache/shenyu/plugin/modify/response/ModifyResponsePlugin.java b/shenyu-plugin/shenyu-plugin-modify-response/src/main/java/org/apache/shenyu/plugin/modify/response/ModifyResponsePlugin.java index 92d261bdce3d..c4b191928e2a 100644 --- a/shenyu-plugin/shenyu-plugin-modify-response/src/main/java/org/apache/shenyu/plugin/modify/response/ModifyResponsePlugin.java +++ b/shenyu-plugin/shenyu-plugin-modify-response/src/main/java/org/apache/shenyu/plugin/modify/response/ModifyResponsePlugin.java @@ -96,8 +96,8 @@ static class ModifyResponseDecorator extends ServerHttpResponseDecorator { @Override @NonNull public Mono writeWith(@NonNull final Publisher body) { + modifyResponseHeadersAndStatus(); final Mono dataBufferMono = DataBufferUtils.join(body); - buildModifiedResponse(body); return dataBufferMono.flatMap(dataBuffer -> { byte[] bytes = new byte[dataBuffer.readableByteCount()]; dataBuffer.read(bytes); @@ -105,7 +105,7 @@ public Mono writeWith(@NonNull final Publisher body) }); } - private void buildModifiedResponse(final Publisher body) { + private void modifyResponseHeadersAndStatus() { HttpHeaders httpHeaders = new HttpHeaders(); // add origin headers httpHeaders.addAll(this.getHeaders()); From 82a34db2ae188cbb9629164cbc1bff5814381f57 Mon Sep 17 00:00:00 2001 From: VampireAchao Date: Wed, 31 Jan 2024 11:01:11 +0800 Subject: [PATCH 10/10] [type:release] 2.7.0-SNAPSHOT release (#5426) --- Makefile | 2 +- pom.xml | 2 +- shenyu-admin-listener/pom.xml | 4 ++-- .../shenyu-admin-listener-api/pom.xml | 4 ++-- .../shenyu-admin-listener-apollo/pom.xml | 4 ++-- .../shenyu-admin-listener-consul/pom.xml | 4 ++-- .../shenyu-admin-listener-etcd/pom.xml | 4 ++-- .../shenyu-admin-listener-nacos/pom.xml | 4 ++-- .../shenyu-admin-listener-polaris/pom.xml | 4 ++-- .../shenyu-admin-listener-zookeeper/pom.xml | 4 ++-- shenyu-admin/pom.xml | 2 +- shenyu-alert/pom.xml | 2 +- shenyu-bootstrap/pom.xml | 6 +++--- shenyu-client/pom.xml | 4 ++-- .../shenyu-client-api-docs-annotations/pom.xml | 4 ++-- shenyu-client/shenyu-client-autoconfig/pom.xml | 4 ++-- shenyu-client/shenyu-client-core/pom.xml | 4 ++-- shenyu-client/shenyu-client-dubbo/pom.xml | 6 +++--- .../shenyu-client-alibaba-dubbo/pom.xml | 4 ++-- .../shenyu-client-apache-dubbo/pom.xml | 4 ++-- .../shenyu-client-dubbo-common/pom.xml | 4 ++-- shenyu-client/shenyu-client-grpc/pom.xml | 2 +- shenyu-client/shenyu-client-http/pom.xml | 6 +++--- .../shenyu-client-springcloud/pom.xml | 4 ++-- .../shenyu-client-http/shenyu-client-springmvc/pom.xml | 4 ++-- shenyu-client/shenyu-client-motan/pom.xml | 4 ++-- shenyu-client/shenyu-client-sofa/pom.xml | 6 +++--- shenyu-client/shenyu-client-tars/pom.xml | 4 ++-- shenyu-client/shenyu-client-websocket/pom.xml | 6 +++--- .../shenyu-client-spring-websocket/pom.xml | 4 ++-- shenyu-common/pom.xml | 4 ++-- shenyu-discovery/pom.xml | 6 +++--- shenyu-discovery/shenyu-discovery-api/pom.xml | 4 ++-- shenyu-discovery/shenyu-discovery-etcd/pom.xml | 6 +++--- shenyu-discovery/shenyu-discovery-eureka/pom.xml | 4 ++-- shenyu-discovery/shenyu-discovery-nacos/pom.xml | 4 ++-- shenyu-discovery/shenyu-discovery-zookeeper/pom.xml | 6 +++--- shenyu-disruptor/pom.xml | 4 ++-- shenyu-dist/pom.xml | 6 +++--- shenyu-dist/shenyu-admin-dist/pom.xml | 2 +- shenyu-dist/shenyu-bootstrap-dist/pom.xml | 4 ++-- shenyu-dist/shenyu-docker-compose-dist/pom.xml | 2 +- shenyu-dist/shenyu-src-dist/pom.xml | 4 ++-- shenyu-examples/pom.xml | 2 +- shenyu-examples/shenyu-examples-common/pom.xml | 2 +- shenyu-examples/shenyu-examples-dubbo/pom.xml | 2 +- .../pom.xml | 2 +- .../shenyu-examples-alibaba-dubbo-service/pom.xml | 2 +- .../pom.xml | 2 +- .../shenyu-examples-apache-dubbo-service-xml/pom.xml | 4 ++-- .../shenyu-examples-apache-dubbo-service/pom.xml | 2 +- .../shenyu-examples-dubbo-api/pom.xml | 2 +- .../pom.xml | 2 +- shenyu-examples/shenyu-examples-eureka/pom.xml | 2 +- shenyu-examples/shenyu-examples-grpc/pom.xml | 2 +- shenyu-examples/shenyu-examples-http-swagger2/pom.xml | 2 +- shenyu-examples/shenyu-examples-http/pom.xml | 2 +- shenyu-examples/shenyu-examples-https/pom.xml | 2 +- shenyu-examples/shenyu-examples-motan/pom.xml | 2 +- .../shenyu-examples-motan-api/pom.xml | 2 +- .../shenyu-examples-motan-service/pom.xml | 2 +- shenyu-examples/shenyu-examples-plugin/pom.xml | 2 +- shenyu-examples/shenyu-examples-sdk/pom.xml | 2 +- .../shenyu-examples-sdk-dubbo/pom.xml | 2 +- .../shenyu-examples-sdk-alibaba-dubbo-consumer/pom.xml | 2 +- .../shenyu-examples-sdk-alibaba-dubbo-provider/pom.xml | 2 +- .../shenyu-examples-sdk-apache-dubbo-consumer/pom.xml | 2 +- .../shenyu-examples-sdk-apache-dubbo-provider/pom.xml | 2 +- .../shenyu-examples-sdk-feign/pom.xml | 2 +- .../shenyu-examples-sdk-grpc/pom.xml | 2 +- .../shenyu-examples-sdk-grpc-consumer/pom.xml | 2 +- .../shenyu-examples-sdk-grpc-provider/pom.xml | 2 +- .../shenyu-examples-sdk-http/pom.xml | 2 +- .../shenyu-examples-sdk-springcloud/pom.xml | 2 +- .../shenyu-examples-sdk-springcloud-consumer/pom.xml | 2 +- .../shenyu-examples-sdk-springcloud-provider/pom.xml | 2 +- shenyu-examples/shenyu-examples-sofa/pom.xml | 2 +- .../shenyu-examples-sofa-api/pom.xml | 2 +- .../shenyu-examples-sofa-service/pom.xml | 2 +- shenyu-examples/shenyu-examples-springcloud/pom.xml | 2 +- .../shenyu-examples-springmvc-tomcat/pom.xml | 2 +- shenyu-examples/shenyu-examples-springmvc/pom.xml | 2 +- shenyu-examples/shenyu-examples-tars/pom.xml | 2 +- shenyu-examples/shenyu-examples-websocket/pom.xml | 2 +- .../shenyu-example-spring-annotation-websocket/pom.xml | 2 +- .../shenyu-example-spring-native-websocket/pom.xml | 2 +- .../shenyu-example-spring-reactive-websocket/pom.xml | 2 +- shenyu-integrated-test/pom.xml | 4 ++-- .../shenyu-integrated-test-alibaba-dubbo/pom.xml | 2 +- .../shenyu-integrated-test-apache-dubbo/pom.xml | 2 +- .../shenyu-integrated-test-combination/pom.xml | 2 +- .../shenyu-integrated-test-common/pom.xml | 2 +- .../shenyu-integrated-test-grpc/pom.xml | 2 +- .../shenyu-integrated-test-http/pom.xml | 2 +- .../shenyu-integrated-test-https/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../shenyu-integrated-test-k8s-ingress-grpc/pom.xml | 2 +- .../shenyu-integrated-test-k8s-ingress-http/pom.xml | 2 +- .../shenyu-integrated-test-k8s-ingress-motan/pom.xml | 2 +- .../shenyu-integrated-test-k8s-ingress-sofa/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../shenyu-integrated-test-motan/pom.xml | 2 +- .../shenyu-integrated-test-sdk-alibaba-dubbo/pom.xml | 2 +- .../shenyu-integrated-test-sdk-apache-dubbo/pom.xml | 2 +- .../shenyu-integrated-test-sdk-http/pom.xml | 2 +- .../shenyu-integrated-test-sofa/pom.xml | 2 +- .../shenyu-integrated-test-spring-cloud/pom.xml | 2 +- .../shenyu-integrated-test-upload-plugin/pom.xml | 2 +- .../shenyu-custom-plugin/Dockerfile | 2 +- .../shenyu-custom-plugin/pom.xml | 2 +- .../shenyu-integrated-test-admin/pom.xml | 2 +- .../shenyu-integrated-test-upload-plugin-case/pom.xml | 2 +- .../shenyu-integrated-test-websocket/pom.xml | 2 +- shenyu-kubernetes-controller/pom.xml | 2 +- shenyu-loadbalancer/pom.xml | 2 +- shenyu-plugin/pom.xml | 2 +- shenyu-plugin/shenyu-plugin-api/pom.xml | 2 +- shenyu-plugin/shenyu-plugin-base/pom.xml | 4 ++-- shenyu-plugin/shenyu-plugin-cache/pom.xml | 4 ++-- .../shenyu-plugin-cache-handler/pom.xml | 4 ++-- .../shenyu-plugin-cache-memory/pom.xml | 4 ++-- .../shenyu-plugin-cache-redis/pom.xml | 4 ++-- .../shenyu-plugin-cache-spi/pom.xml | 6 +++--- shenyu-plugin/shenyu-plugin-context-path/pom.xml | 4 ++-- shenyu-plugin/shenyu-plugin-fault-tolerance/pom.xml | 10 +++++----- .../shenyu-plugin-hystrix/pom.xml | 4 ++-- .../shenyu-plugin-ratelimiter/pom.xml | 4 ++-- .../shenyu-plugin-resilience4j/pom.xml | 4 ++-- .../shenyu-plugin-sentinel/pom.xml | 4 ++-- shenyu-plugin/shenyu-plugin-global/pom.xml | 4 ++-- shenyu-plugin/shenyu-plugin-httpclient/pom.xml | 2 +- shenyu-plugin/shenyu-plugin-logging/pom.xml | 4 ++-- .../shenyu-plugin-logging-aliyun-sls/pom.xml | 2 +- .../shenyu-plugin-logging-clickhouse/pom.xml | 2 +- .../shenyu-plugin-logging-common/pom.xml | 4 ++-- .../shenyu-plugin-logging-console/pom.xml | 4 ++-- .../shenyu-plugin-logging-desensitize-api/pom.xml | 2 +- .../shenyu-plugin-logging-elasticsearch/pom.xml | 4 ++-- .../shenyu-plugin-logging-huawei-lts/pom.xml | 4 ++-- .../shenyu-plugin-logging-kafka/pom.xml | 6 +++--- .../shenyu-plugin-logging-pulsar/pom.xml | 4 ++-- .../shenyu-plugin-logging-rabbitmq/pom.xml | 4 ++-- .../shenyu-plugin-logging-rocketmq/pom.xml | 4 ++-- .../shenyu-plugin-logging-tencent-cls/pom.xml | 4 ++-- shenyu-plugin/shenyu-plugin-metrics/pom.xml | 6 +++--- shenyu-plugin/shenyu-plugin-mock/pom.xml | 4 ++-- shenyu-plugin/shenyu-plugin-modify-response/pom.xml | 4 ++-- shenyu-plugin/shenyu-plugin-param-mapping/pom.xml | 2 +- shenyu-plugin/shenyu-plugin-proxy/pom.xml | 6 +++--- .../shenyu-plugin-proxy/shenyu-plugin-divide/pom.xml | 4 ++-- .../shenyu-plugin-proxy/shenyu-plugin-mqtt/pom.xml | 4 ++-- .../shenyu-plugin-proxy/shenyu-plugin-rpc/pom.xml | 6 +++--- .../shenyu-plugin-rpc/shenyu-plugin-dubbo/pom.xml | 4 ++-- .../shenyu-plugin-alibaba-dubbo/pom.xml | 4 ++-- .../shenyu-plugin-apache-dubbo/pom.xml | 6 +++--- .../shenyu-plugin-dubbo-common/pom.xml | 4 ++-- .../shenyu-plugin-general-context/pom.xml | 4 ++-- .../shenyu-plugin-rpc/shenyu-plugin-grpc/pom.xml | 2 +- .../shenyu-plugin-rpc/shenyu-plugin-motan/pom.xml | 2 +- .../shenyu-plugin-rpc/shenyu-plugin-sofa/pom.xml | 4 ++-- .../shenyu-plugin-rpc/shenyu-plugin-tars/pom.xml | 4 ++-- .../shenyu-plugin-rpc/shenyu-plugin-transform/pom.xml | 6 +++--- .../shenyu-plugin-springcloud/pom.xml | 2 +- .../shenyu-plugin-proxy/shenyu-plugin-tcp/pom.xml | 4 ++-- .../shenyu-plugin-websocket/pom.xml | 4 ++-- shenyu-plugin/shenyu-plugin-redirect/pom.xml | 4 ++-- shenyu-plugin/shenyu-plugin-request/pom.xml | 4 ++-- shenyu-plugin/shenyu-plugin-response/pom.xml | 6 +++--- shenyu-plugin/shenyu-plugin-rewrite/pom.xml | 4 ++-- shenyu-plugin/shenyu-plugin-security/pom.xml | 2 +- .../shenyu-plugin-basic-auth/pom.xml | 2 +- .../shenyu-plugin-casdoor/pom.xml | 6 +++--- .../shenyu-plugin-cryptor/pom.xml | 4 ++-- .../shenyu-plugin-security/shenyu-plugin-jwt/pom.xml | 4 ++-- .../shenyu-plugin-key-auth/pom.xml | 4 ++-- .../shenyu-plugin-oauth2/pom.xml | 4 ++-- .../shenyu-plugin-security/shenyu-plugin-sign/pom.xml | 4 ++-- shenyu-plugin/shenyu-plugin-uri/pom.xml | 4 ++-- shenyu-plugin/shenyu-plugin-waf/pom.xml | 4 ++-- shenyu-plugin/shenyu-plugin-wasm-api/pom.xml | 4 ++-- shenyu-plugin/shenyu-plugin-wasm-base/pom.xml | 4 ++-- shenyu-protocol/pom.xml | 4 ++-- shenyu-protocol/shenyu-protocol-grpc/pom.xml | 4 ++-- shenyu-protocol/shenyu-protocol-mqtt/pom.xml | 4 ++-- shenyu-protocol/shenyu-protocol-tcp/pom.xml | 4 ++-- shenyu-register-center/pom.xml | 4 ++-- shenyu-register-center/shenyu-register-client/pom.xml | 4 ++-- .../shenyu-register-client-api/pom.xml | 4 ++-- .../shenyu-register-client-http/pom.xml | 4 ++-- shenyu-register-center/shenyu-register-common/pom.xml | 4 ++-- shenyu-registry/pom.xml | 4 ++-- shenyu-registry/shenyu-registry-api/pom.xml | 6 +++--- shenyu-registry/shenyu-registry-apollo/pom.xml | 2 +- shenyu-registry/shenyu-registry-consul/pom.xml | 4 ++-- shenyu-registry/shenyu-registry-core/pom.xml | 4 ++-- shenyu-registry/shenyu-registry-etcd/pom.xml | 2 +- shenyu-registry/shenyu-registry-eureka/pom.xml | 4 ++-- shenyu-registry/shenyu-registry-nacos/pom.xml | 2 +- shenyu-registry/shenyu-registry-polaris/pom.xml | 2 +- shenyu-registry/shenyu-registry-zookeeper/pom.xml | 4 ++-- shenyu-sdk/pom.xml | 4 ++-- shenyu-sdk/shenyu-sdk-core/pom.xml | 6 +++--- shenyu-sdk/shenyu-sdk-feign/pom.xml | 4 ++-- shenyu-sdk/shenyu-sdk-httpclient/pom.xml | 4 ++-- shenyu-sdk/shenyu-sdk-okhttp/pom.xml | 4 ++-- shenyu-sdk/shenyu-sdk-spring/pom.xml | 4 ++-- shenyu-spi/pom.xml | 4 ++-- shenyu-spring-boot-starter/pom.xml | 2 +- .../shenyu-spring-boot-starter-client/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../shenyu-spring-boot-starter-client-common/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-client-grpc/pom.xml | 2 +- .../shenyu-spring-boot-starter-client-motan/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-client-sofa/pom.xml | 2 +- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../shenyu-spring-boot-starter-client-tars/pom.xml | 6 +++--- .../shenyu-spring-boot-starter-gateway/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-k8s/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin/pom.xml | 2 +- .../pom.xml | 2 +- .../shenyu-spring-boot-starter-plugin-cache/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-casdoor/pom.xml | 6 +++--- .../pom.xml | 2 +- .../shenyu-spring-boot-starter-plugin-cryptor/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-divide/pom.xml | 2 +- .../shenyu-spring-boot-starter-plugin-dubbo/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 6 +++--- .../pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-global/pom.xml | 2 +- .../shenyu-spring-boot-starter-plugin-grpc/pom.xml | 2 +- .../pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-hystrix/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-jwt/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-key-auth/pom.xml | 4 ++-- .../pom.xml | 2 +- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 6 +++--- .../pom.xml | 6 +++--- .../pom.xml | 4 ++-- .../pom.xml | 2 +- .../shenyu-spring-boot-starter-plugin-metrics/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-mock/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-motan/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-mqtt/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-oauth2/pom.xml | 4 ++-- .../pom.xml | 2 +- .../pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-redirect/pom.xml | 2 +- .../shenyu-spring-boot-starter-plugin-request/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-response/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-rewrite/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-sentinel/pom.xml | 2 +- .../shenyu-spring-boot-starter-plugin-sign/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-sofa/pom.xml | 4 ++-- .../pom.xml | 6 +++--- .../shenyu-spring-boot-starter-plugin-tars/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-tcp/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-uri/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-plugin-waf/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../shenyu-spring-boot-starter-registry/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-sdk-feign/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-sdk/pom.xml | 4 ++-- .../pom.xml | 6 +++--- .../pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../shenyu-spring-boot-starter-sync-data-etcd/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-sync-data-http/pom.xml | 4 ++-- .../shenyu-spring-boot-starter-sync-data-nacos/pom.xml | 4 ++-- .../pom.xml | 4 ++-- .../pom.xml | 2 +- .../pom.xml | 4 ++-- shenyu-sync-data-center/pom.xml | 4 ++-- shenyu-sync-data-center/shenyu-sync-data-api/pom.xml | 4 ++-- .../shenyu-sync-data-apollo/pom.xml | 4 ++-- .../shenyu-sync-data-consul/pom.xml | 4 ++-- shenyu-sync-data-center/shenyu-sync-data-etcd/pom.xml | 4 ++-- shenyu-sync-data-center/shenyu-sync-data-http/pom.xml | 2 +- shenyu-sync-data-center/shenyu-sync-data-nacos/pom.xml | 6 +++--- .../shenyu-sync-data-polaris/pom.xml | 4 ++-- .../shenyu-sync-data-websocket/pom.xml | 6 +++--- .../shenyu-sync-data-zookeeper/pom.xml | 2 +- shenyu-web/pom.xml | 2 +- 297 files changed, 513 insertions(+), 513 deletions(-) diff --git a/Makefile b/Makefile index 4792944235c6..e1dd8d0285fa 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ # limitations under the License. SHENYU_HOME := "." -VERSION ?= "2.6.2-SNAPSHOT" +VERSION ?= "2.7.0-SNAPSHOT" REGISTRY ?= "docker.io" REPOSITORY_PREF ?= "apache/shenyu" diff --git a/pom.xml b/pom.xml index ecfad29a083f..359fee06fc36 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ org.apache.shenyu shenyu pom - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu shenyu-admin diff --git a/shenyu-admin-listener/pom.xml b/shenyu-admin-listener/pom.xml index 3bfbecd54d5e..5ff725fa3b63 100644 --- a/shenyu-admin-listener/pom.xml +++ b/shenyu-admin-listener/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-admin-listener @@ -36,4 +36,4 @@ shenyu-admin-listener-polaris shenyu-admin-listener-zookeeper - \ No newline at end of file + diff --git a/shenyu-admin-listener/shenyu-admin-listener-api/pom.xml b/shenyu-admin-listener/shenyu-admin-listener-api/pom.xml index 9e03318ae98f..dc2b880e4906 100644 --- a/shenyu-admin-listener/shenyu-admin-listener-api/pom.xml +++ b/shenyu-admin-listener/shenyu-admin-listener-api/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-admin-listener - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-admin-listener-api @@ -44,4 +44,4 @@ test - \ No newline at end of file + diff --git a/shenyu-admin-listener/shenyu-admin-listener-apollo/pom.xml b/shenyu-admin-listener/shenyu-admin-listener-apollo/pom.xml index 74995205802c..fba9c48ac15e 100644 --- a/shenyu-admin-listener/shenyu-admin-listener-apollo/pom.xml +++ b/shenyu-admin-listener/shenyu-admin-listener-apollo/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-admin-listener - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-admin-listener-apollo @@ -70,4 +70,4 @@ - \ No newline at end of file + diff --git a/shenyu-admin-listener/shenyu-admin-listener-consul/pom.xml b/shenyu-admin-listener/shenyu-admin-listener-consul/pom.xml index 08398630a711..687aeb54dc81 100644 --- a/shenyu-admin-listener/shenyu-admin-listener-consul/pom.xml +++ b/shenyu-admin-listener/shenyu-admin-listener-consul/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-admin-listener - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-admin-listener-consul @@ -45,4 +45,4 @@ provided - \ No newline at end of file + diff --git a/shenyu-admin-listener/shenyu-admin-listener-etcd/pom.xml b/shenyu-admin-listener/shenyu-admin-listener-etcd/pom.xml index cefa7f632475..277cfc399c32 100644 --- a/shenyu-admin-listener/shenyu-admin-listener-etcd/pom.xml +++ b/shenyu-admin-listener/shenyu-admin-listener-etcd/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-admin-listener - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-admin-listener-etcd @@ -56,4 +56,4 @@ - \ No newline at end of file + diff --git a/shenyu-admin-listener/shenyu-admin-listener-nacos/pom.xml b/shenyu-admin-listener/shenyu-admin-listener-nacos/pom.xml index ba4e4c56da6b..552be009a4d4 100644 --- a/shenyu-admin-listener/shenyu-admin-listener-nacos/pom.xml +++ b/shenyu-admin-listener/shenyu-admin-listener-nacos/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-admin-listener - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-admin-listener-nacos @@ -51,4 +51,4 @@ - \ No newline at end of file + diff --git a/shenyu-admin-listener/shenyu-admin-listener-polaris/pom.xml b/shenyu-admin-listener/shenyu-admin-listener-polaris/pom.xml index 36b4483a7884..f0200ef6f076 100644 --- a/shenyu-admin-listener/shenyu-admin-listener-polaris/pom.xml +++ b/shenyu-admin-listener/shenyu-admin-listener-polaris/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-admin-listener - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-admin-listener-polaris @@ -44,4 +44,4 @@ provided - \ No newline at end of file + diff --git a/shenyu-admin-listener/shenyu-admin-listener-zookeeper/pom.xml b/shenyu-admin-listener/shenyu-admin-listener-zookeeper/pom.xml index d9d8e914c5ce..7c29878d338a 100644 --- a/shenyu-admin-listener/shenyu-admin-listener-zookeeper/pom.xml +++ b/shenyu-admin-listener/shenyu-admin-listener-zookeeper/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-admin-listener - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-admin-listener-zookeeper @@ -63,4 +63,4 @@ - \ No newline at end of file + diff --git a/shenyu-admin/pom.xml b/shenyu-admin/pom.xml index ab1ec44f9d3e..5c0f3025dd74 100644 --- a/shenyu-admin/pom.xml +++ b/shenyu-admin/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-admin diff --git a/shenyu-alert/pom.xml b/shenyu-alert/pom.xml index 9822c92fc5da..86fdcfb4964b 100644 --- a/shenyu-alert/pom.xml +++ b/shenyu-alert/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-alert diff --git a/shenyu-bootstrap/pom.xml b/shenyu-bootstrap/pom.xml index d5361895b728..94529b65d538 100644 --- a/shenyu-bootstrap/pom.xml +++ b/shenyu-bootstrap/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-bootstrap @@ -535,7 +535,7 @@ ${project.version} - + org.apache.shenyu @@ -543,7 +543,7 @@ ${project.version} - + org.apache.shenyu diff --git a/shenyu-client/pom.xml b/shenyu-client/pom.xml index 3b698722d815..17b4bbe24b79 100644 --- a/shenyu-client/pom.xml +++ b/shenyu-client/pom.xml @@ -20,12 +20,12 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-client pom - + shenyu-client-core shenyu-client-http diff --git a/shenyu-client/shenyu-client-api-docs-annotations/pom.xml b/shenyu-client/shenyu-client-api-docs-annotations/pom.xml index 88e89219adcd..dd0380ea107e 100644 --- a/shenyu-client/shenyu-client-api-docs-annotations/pom.xml +++ b/shenyu-client/shenyu-client-api-docs-annotations/pom.xml @@ -19,10 +19,10 @@ org.apache.shenyu shenyu-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-client-api-docs-annotations - \ No newline at end of file + diff --git a/shenyu-client/shenyu-client-autoconfig/pom.xml b/shenyu-client/shenyu-client-autoconfig/pom.xml index 754d4ffcb3ed..22a852002683 100644 --- a/shenyu-client/shenyu-client-autoconfig/pom.xml +++ b/shenyu-client/shenyu-client-autoconfig/pom.xml @@ -20,7 +20,7 @@ shenyu-client org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -37,4 +37,4 @@ spring-boot-autoconfigure - \ No newline at end of file + diff --git a/shenyu-client/shenyu-client-core/pom.xml b/shenyu-client/shenyu-client-core/pom.xml index 81e8d424b57b..b21cb0f4ec1a 100644 --- a/shenyu-client/shenyu-client-core/pom.xml +++ b/shenyu-client/shenyu-client-core/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-client-core @@ -82,4 +82,4 @@ test - \ No newline at end of file + diff --git a/shenyu-client/shenyu-client-dubbo/pom.xml b/shenyu-client/shenyu-client-dubbo/pom.xml index 3d30ff2ed171..1a36fd220c41 100644 --- a/shenyu-client/shenyu-client-dubbo/pom.xml +++ b/shenyu-client/shenyu-client-dubbo/pom.xml @@ -20,15 +20,15 @@ org.apache.shenyu shenyu-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-client-dubbo pom - + shenyu-client-dubbo-common shenyu-client-alibaba-dubbo shenyu-client-apache-dubbo - \ No newline at end of file + diff --git a/shenyu-client/shenyu-client-dubbo/shenyu-client-alibaba-dubbo/pom.xml b/shenyu-client/shenyu-client-dubbo/shenyu-client-alibaba-dubbo/pom.xml index 1887bc1d74fd..2dee0d7144a0 100644 --- a/shenyu-client/shenyu-client-dubbo/shenyu-client-alibaba-dubbo/pom.xml +++ b/shenyu-client/shenyu-client-dubbo/shenyu-client-alibaba-dubbo/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-client-dubbo - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-client-alibaba-dubbo @@ -70,4 +70,4 @@ test - \ No newline at end of file + diff --git a/shenyu-client/shenyu-client-dubbo/shenyu-client-apache-dubbo/pom.xml b/shenyu-client/shenyu-client-dubbo/shenyu-client-apache-dubbo/pom.xml index 96a8622bb5b1..8291f5f885bf 100644 --- a/shenyu-client/shenyu-client-dubbo/shenyu-client-apache-dubbo/pom.xml +++ b/shenyu-client/shenyu-client-dubbo/shenyu-client-apache-dubbo/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-client-dubbo - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-client-apache-dubbo @@ -70,4 +70,4 @@ test - \ No newline at end of file + diff --git a/shenyu-client/shenyu-client-dubbo/shenyu-client-dubbo-common/pom.xml b/shenyu-client/shenyu-client-dubbo/shenyu-client-dubbo-common/pom.xml index 96c24b75c469..8d8a16329279 100644 --- a/shenyu-client/shenyu-client-dubbo/shenyu-client-dubbo-common/pom.xml +++ b/shenyu-client/shenyu-client-dubbo/shenyu-client-dubbo-common/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-client-dubbo - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-client-dubbo-common @@ -37,4 +37,4 @@ provided - \ No newline at end of file + diff --git a/shenyu-client/shenyu-client-grpc/pom.xml b/shenyu-client/shenyu-client-grpc/pom.xml index 3e8c3905ff55..3c4df23e0542 100644 --- a/shenyu-client/shenyu-client-grpc/pom.xml +++ b/shenyu-client/shenyu-client-grpc/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-client-grpc diff --git a/shenyu-client/shenyu-client-http/pom.xml b/shenyu-client/shenyu-client-http/pom.xml index a5eb38a4bd8b..57b2f7a5e9fd 100644 --- a/shenyu-client/shenyu-client-http/pom.xml +++ b/shenyu-client/shenyu-client-http/pom.xml @@ -20,14 +20,14 @@ org.apache.shenyu shenyu-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-client-http pom - + shenyu-client-springmvc shenyu-client-springcloud - \ No newline at end of file + diff --git a/shenyu-client/shenyu-client-http/shenyu-client-springcloud/pom.xml b/shenyu-client/shenyu-client-http/shenyu-client-springcloud/pom.xml index e03930ef660b..0555ae6f9b75 100644 --- a/shenyu-client/shenyu-client-http/shenyu-client-springcloud/pom.xml +++ b/shenyu-client/shenyu-client-http/shenyu-client-springcloud/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-client-http - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-client-springcloud @@ -52,4 +52,4 @@ provided - \ No newline at end of file + diff --git a/shenyu-client/shenyu-client-http/shenyu-client-springmvc/pom.xml b/shenyu-client/shenyu-client-http/shenyu-client-springmvc/pom.xml index 6ecd344eac75..c461f56c2b5a 100644 --- a/shenyu-client/shenyu-client-http/shenyu-client-springmvc/pom.xml +++ b/shenyu-client/shenyu-client-http/shenyu-client-springmvc/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-client-http - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-client-springmvc @@ -53,4 +53,4 @@ - \ No newline at end of file + diff --git a/shenyu-client/shenyu-client-motan/pom.xml b/shenyu-client/shenyu-client-motan/pom.xml index 5b0edd53436a..6e4645acc759 100644 --- a/shenyu-client/shenyu-client-motan/pom.xml +++ b/shenyu-client/shenyu-client-motan/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -54,4 +54,4 @@ - \ No newline at end of file + diff --git a/shenyu-client/shenyu-client-sofa/pom.xml b/shenyu-client/shenyu-client-sofa/pom.xml index 04a2a72b7b5a..4a6195340891 100644 --- a/shenyu-client/shenyu-client-sofa/pom.xml +++ b/shenyu-client/shenyu-client-sofa/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-client-sofa @@ -28,7 +28,7 @@ 3.1.4 - + org.apache.shenyu @@ -68,4 +68,4 @@ provided - \ No newline at end of file + diff --git a/shenyu-client/shenyu-client-tars/pom.xml b/shenyu-client/shenyu-client-tars/pom.xml index 7fe5d805cbf0..9e60783aa192 100644 --- a/shenyu-client/shenyu-client-tars/pom.xml +++ b/shenyu-client/shenyu-client-tars/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-client-tars @@ -65,4 +65,4 @@ test - \ No newline at end of file + diff --git a/shenyu-client/shenyu-client-websocket/pom.xml b/shenyu-client/shenyu-client-websocket/pom.xml index 7294258f0eeb..738f30cd00c1 100644 --- a/shenyu-client/shenyu-client-websocket/pom.xml +++ b/shenyu-client/shenyu-client-websocket/pom.xml @@ -20,13 +20,13 @@ org.apache.shenyu shenyu-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-client-websocket pom - + shenyu-client-spring-websocket - \ No newline at end of file + diff --git a/shenyu-client/shenyu-client-websocket/shenyu-client-spring-websocket/pom.xml b/shenyu-client/shenyu-client-websocket/shenyu-client-spring-websocket/pom.xml index 2055bf769258..a173639a24da 100644 --- a/shenyu-client/shenyu-client-websocket/shenyu-client-spring-websocket/pom.xml +++ b/shenyu-client/shenyu-client-websocket/shenyu-client-spring-websocket/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-client-websocket - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-client-spring-websocket @@ -67,4 +67,4 @@ test - \ No newline at end of file + diff --git a/shenyu-common/pom.xml b/shenyu-common/pom.xml index 767e59848380..aafcea152653 100644 --- a/shenyu-common/pom.xml +++ b/shenyu-common/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-common @@ -49,7 +49,7 @@ com.fasterxml.jackson.datatype jackson-datatype-jsr310 - + com.fasterxml.jackson.module jackson-module-parameter-names diff --git a/shenyu-discovery/pom.xml b/shenyu-discovery/pom.xml index da5fddf7cf02..491fbc42e2bf 100644 --- a/shenyu-discovery/pom.xml +++ b/shenyu-discovery/pom.xml @@ -20,12 +20,12 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-discovery pom - + shenyu-discovery-api shenyu-discovery-zookeeper @@ -34,4 +34,4 @@ shenyu-discovery-eureka - \ No newline at end of file + diff --git a/shenyu-discovery/shenyu-discovery-api/pom.xml b/shenyu-discovery/shenyu-discovery-api/pom.xml index 2edec7ee25a9..ea6ef5173693 100644 --- a/shenyu-discovery/shenyu-discovery-api/pom.xml +++ b/shenyu-discovery/shenyu-discovery-api/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-discovery - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-discovery-api @@ -38,4 +38,4 @@ - \ No newline at end of file + diff --git a/shenyu-discovery/shenyu-discovery-etcd/pom.xml b/shenyu-discovery/shenyu-discovery-etcd/pom.xml index bf543d817c98..17f149060c85 100644 --- a/shenyu-discovery/shenyu-discovery-etcd/pom.xml +++ b/shenyu-discovery/shenyu-discovery-etcd/pom.xml @@ -20,11 +20,11 @@ org.apache.shenyu shenyu-discovery - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-discovery-etcd - + org.apache.shenyu @@ -82,4 +82,4 @@ - \ No newline at end of file + diff --git a/shenyu-discovery/shenyu-discovery-eureka/pom.xml b/shenyu-discovery/shenyu-discovery-eureka/pom.xml index c41b0dba35ba..ed24c73544ec 100644 --- a/shenyu-discovery/shenyu-discovery-eureka/pom.xml +++ b/shenyu-discovery/shenyu-discovery-eureka/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-discovery - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-discovery-eureka @@ -44,4 +44,4 @@ - \ No newline at end of file + diff --git a/shenyu-discovery/shenyu-discovery-nacos/pom.xml b/shenyu-discovery/shenyu-discovery-nacos/pom.xml index e9c48c81e1c0..163a962d9798 100644 --- a/shenyu-discovery/shenyu-discovery-nacos/pom.xml +++ b/shenyu-discovery/shenyu-discovery-nacos/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-discovery - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-discovery-nacos @@ -43,4 +43,4 @@ - \ No newline at end of file + diff --git a/shenyu-discovery/shenyu-discovery-zookeeper/pom.xml b/shenyu-discovery/shenyu-discovery-zookeeper/pom.xml index 512cc7e41e70..4c256839465e 100644 --- a/shenyu-discovery/shenyu-discovery-zookeeper/pom.xml +++ b/shenyu-discovery/shenyu-discovery-zookeeper/pom.xml @@ -20,11 +20,11 @@ org.apache.shenyu shenyu-discovery - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-discovery-zookeeper - + org.apache.shenyu @@ -47,4 +47,4 @@ - \ No newline at end of file + diff --git a/shenyu-disruptor/pom.xml b/shenyu-disruptor/pom.xml index edd049da3292..27990d3341ab 100644 --- a/shenyu-disruptor/pom.xml +++ b/shenyu-disruptor/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-disruptor @@ -31,4 +31,4 @@ disruptor - \ No newline at end of file + diff --git a/shenyu-dist/pom.xml b/shenyu-dist/pom.xml index 85dedbf0d435..e64456277ea3 100644 --- a/shenyu-dist/pom.xml +++ b/shenyu-dist/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-dist @@ -32,11 +32,11 @@ shenyu-bootstrap-dist shenyu-docker-compose-dist - + 1.10 - + diff --git a/shenyu-dist/shenyu-admin-dist/pom.xml b/shenyu-dist/shenyu-admin-dist/pom.xml index 836bba96c9d3..59e0727510bc 100644 --- a/shenyu-dist/shenyu-admin-dist/pom.xml +++ b/shenyu-dist/shenyu-admin-dist/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-dist - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-admin-dist diff --git a/shenyu-dist/shenyu-bootstrap-dist/pom.xml b/shenyu-dist/shenyu-bootstrap-dist/pom.xml index 23f745d7288e..a06c086c6e6a 100644 --- a/shenyu-dist/shenyu-bootstrap-dist/pom.xml +++ b/shenyu-dist/shenyu-bootstrap-dist/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-dist - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-bootstrap-dist @@ -33,7 +33,7 @@ shenyu-bootstrap ${project.version} - + org.springframework.boot spring-boot-starter diff --git a/shenyu-dist/shenyu-docker-compose-dist/pom.xml b/shenyu-dist/shenyu-docker-compose-dist/pom.xml index 9d2d95578742..a654b6f3dc13 100644 --- a/shenyu-dist/shenyu-docker-compose-dist/pom.xml +++ b/shenyu-dist/shenyu-docker-compose-dist/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-dist - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-docker-compose-dist pom diff --git a/shenyu-dist/shenyu-src-dist/pom.xml b/shenyu-dist/shenyu-src-dist/pom.xml index ca7f64679da1..5394ff162590 100644 --- a/shenyu-dist/shenyu-src-dist/pom.xml +++ b/shenyu-dist/shenyu-src-dist/pom.xml @@ -21,12 +21,12 @@ org.apache.shenyu shenyu-dist - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-src-dist pom ${project.artifactId} - + release diff --git a/shenyu-examples/pom.xml b/shenyu-examples/pom.xml index f014b6ac6e02..4b3380f50832 100644 --- a/shenyu-examples/pom.xml +++ b/shenyu-examples/pom.xml @@ -23,7 +23,7 @@ 4.0.0 org.apache.shenyu shenyu-examples - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT pom diff --git a/shenyu-examples/shenyu-examples-common/pom.xml b/shenyu-examples/shenyu-examples-common/pom.xml index 77e778f1ea6c..87fcf74e2468 100644 --- a/shenyu-examples/shenyu-examples-common/pom.xml +++ b/shenyu-examples/shenyu-examples-common/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-dubbo/pom.xml b/shenyu-examples/shenyu-examples-dubbo/pom.xml index 00de18386e45..0bc5a39fe143 100644 --- a/shenyu-examples/shenyu-examples-dubbo/pom.xml +++ b/shenyu-examples/shenyu-examples-dubbo/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-dubbo diff --git a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service-annotation/pom.xml b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service-annotation/pom.xml index 8a916272e815..25a8abd9a4e5 100644 --- a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service-annotation/pom.xml +++ b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service-annotation/pom.xml @@ -21,7 +21,7 @@ shenyu-examples-dubbo org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service/pom.xml b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service/pom.xml index fcfc07655563..6e1f5c4ec464 100644 --- a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service/pom.xml +++ b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-alibaba-dubbo-service/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples-dubbo - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-annotation/pom.xml b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-annotation/pom.xml index d7a3eded6ba4..7d590cb97fa7 100644 --- a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-annotation/pom.xml +++ b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-annotation/pom.xml @@ -21,7 +21,7 @@ shenyu-examples-dubbo org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/pom.xml b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/pom.xml index a9cb0868d814..1a48c6f4e666 100644 --- a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/pom.xml +++ b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-examples-dubbo - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-apache-dubbo-service-xml @@ -131,7 +131,7 @@ org.apache.shenyu shenyu-examples-dubbo-api - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT diff --git a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service/pom.xml b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service/pom.xml index c2c57c5e6b38..ef2e68a1ff2b 100644 --- a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service/pom.xml +++ b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples-dubbo - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-apache-dubbo-service diff --git a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-dubbo-api/pom.xml b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-dubbo-api/pom.xml index b3ed269cf5ea..55182dac414f 100644 --- a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-dubbo-api/pom.xml +++ b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-dubbo-api/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples-dubbo - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-dubbo-api diff --git a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-spring-cloud-alibaba-dubbo-service-annotation/pom.xml b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-spring-cloud-alibaba-dubbo-service-annotation/pom.xml index c8f9d17e56e5..9dbd88e8e134 100644 --- a/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-spring-cloud-alibaba-dubbo-service-annotation/pom.xml +++ b/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-spring-cloud-alibaba-dubbo-service-annotation/pom.xml @@ -22,7 +22,7 @@ shenyu-examples-dubbo org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-eureka/pom.xml b/shenyu-examples/shenyu-examples-eureka/pom.xml index 731f726e9388..91333040a697 100644 --- a/shenyu-examples/shenyu-examples-eureka/pom.xml +++ b/shenyu-examples/shenyu-examples-eureka/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-eureka diff --git a/shenyu-examples/shenyu-examples-grpc/pom.xml b/shenyu-examples/shenyu-examples-grpc/pom.xml index 507345c3fc3b..0c19df90c98e 100644 --- a/shenyu-examples/shenyu-examples-grpc/pom.xml +++ b/shenyu-examples/shenyu-examples-grpc/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-grpc diff --git a/shenyu-examples/shenyu-examples-http-swagger2/pom.xml b/shenyu-examples/shenyu-examples-http-swagger2/pom.xml index ddcb8c2125df..8fb3dacca71a 100644 --- a/shenyu-examples/shenyu-examples-http-swagger2/pom.xml +++ b/shenyu-examples/shenyu-examples-http-swagger2/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-http-swagger2 diff --git a/shenyu-examples/shenyu-examples-http/pom.xml b/shenyu-examples/shenyu-examples-http/pom.xml index 55ac2dd0bb15..8b97f444c3cf 100644 --- a/shenyu-examples/shenyu-examples-http/pom.xml +++ b/shenyu-examples/shenyu-examples-http/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-http diff --git a/shenyu-examples/shenyu-examples-https/pom.xml b/shenyu-examples/shenyu-examples-https/pom.xml index b3822756033b..07593d46e214 100644 --- a/shenyu-examples/shenyu-examples-https/pom.xml +++ b/shenyu-examples/shenyu-examples-https/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-https diff --git a/shenyu-examples/shenyu-examples-motan/pom.xml b/shenyu-examples/shenyu-examples-motan/pom.xml index 24cd373a1730..fae643b39173 100644 --- a/shenyu-examples/shenyu-examples-motan/pom.xml +++ b/shenyu-examples/shenyu-examples-motan/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-api/pom.xml b/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-api/pom.xml index 3480f076ca11..3bb4bc5d0f69 100644 --- a/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-api/pom.xml +++ b/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-api/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples-motan - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-service/pom.xml b/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-service/pom.xml index c77a73191053..800a2ddbfe7a 100644 --- a/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-service/pom.xml +++ b/shenyu-examples/shenyu-examples-motan/shenyu-examples-motan-service/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples-motan - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-plugin/pom.xml b/shenyu-examples/shenyu-examples-plugin/pom.xml index eaec28c88129..a5f28e62acc7 100644 --- a/shenyu-examples/shenyu-examples-plugin/pom.xml +++ b/shenyu-examples/shenyu-examples-plugin/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-plugin diff --git a/shenyu-examples/shenyu-examples-sdk/pom.xml b/shenyu-examples/shenyu-examples-sdk/pom.xml index 7cd16757663e..581a8080d4ae 100644 --- a/shenyu-examples/shenyu-examples-sdk/pom.xml +++ b/shenyu-examples/shenyu-examples-sdk/pom.xml @@ -21,7 +21,7 @@ shenyu-examples org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/pom.xml b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/pom.xml index 93ba59fc9d9c..09005bba63b6 100644 --- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/pom.xml +++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples-sdk - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-sdk-dubbo diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-alibaba-dubbo-consumer/pom.xml b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-alibaba-dubbo-consumer/pom.xml index a1a4d05609ea..d2f272efe287 100644 --- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-alibaba-dubbo-consumer/pom.xml +++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-alibaba-dubbo-consumer/pom.xml @@ -21,7 +21,7 @@ shenyu-examples-sdk-dubbo org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-alibaba-dubbo-provider/pom.xml b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-alibaba-dubbo-provider/pom.xml index 7e3e8b47f339..668ebad40717 100644 --- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-alibaba-dubbo-provider/pom.xml +++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-alibaba-dubbo-provider/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-examples-sdk-dubbo - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-sdk-alibaba-dubbo-provider diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-consumer/pom.xml b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-consumer/pom.xml index c7101c8ec699..df03ae9575e7 100644 --- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-consumer/pom.xml +++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-consumer/pom.xml @@ -21,7 +21,7 @@ shenyu-examples-sdk-dubbo org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-provider/pom.xml b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-provider/pom.xml index a3526f49013d..0a745a84228c 100644 --- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-provider/pom.xml +++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-dubbo/shenyu-examples-sdk-apache-dubbo-provider/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-examples-sdk-dubbo - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-sdk-apache-dubbo-provider diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-feign/pom.xml b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-feign/pom.xml index 78a708d1d0ad..fd8cf47987d7 100644 --- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-feign/pom.xml +++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-feign/pom.xml @@ -22,7 +22,7 @@ shenyu-examples-sdk org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/pom.xml b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/pom.xml index b05a83d21fe0..457b84231a95 100644 --- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/pom.xml +++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/pom.xml @@ -21,7 +21,7 @@ shenyu-examples-sdk org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 pom diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-consumer/pom.xml b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-consumer/pom.xml index 7641badb4e65..63390972bcb5 100644 --- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-consumer/pom.xml +++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-consumer/pom.xml @@ -21,7 +21,7 @@ shenyu-examples-sdk-grpc org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-provider/pom.xml b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-provider/pom.xml index f02ec723ab51..6554877f190c 100644 --- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-provider/pom.xml +++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-grpc/shenyu-examples-sdk-grpc-provider/pom.xml @@ -21,7 +21,7 @@ shenyu-examples-sdk-grpc org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-http/pom.xml b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-http/pom.xml index 5695f81f2e59..a727f0922468 100644 --- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-http/pom.xml +++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-http/pom.xml @@ -21,7 +21,7 @@ shenyu-examples-sdk org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/pom.xml b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/pom.xml index 4e4af9a6f138..d634ae8a0398 100644 --- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/pom.xml +++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/pom.xml @@ -22,7 +22,7 @@ shenyu-examples-sdk org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-consumer/pom.xml b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-consumer/pom.xml index b13e8ab6c18c..e918edc07ee1 100644 --- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-consumer/pom.xml +++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-consumer/pom.xml @@ -22,7 +22,7 @@ shenyu-examples-sdk-springcloud org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-provider/pom.xml b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-provider/pom.xml index a1a5c847552a..00531f230152 100644 --- a/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-provider/pom.xml +++ b/shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-springcloud/shenyu-examples-sdk-springcloud-provider/pom.xml @@ -22,7 +22,7 @@ shenyu-examples-sdk-springcloud org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-examples/shenyu-examples-sofa/pom.xml b/shenyu-examples/shenyu-examples-sofa/pom.xml index d3a112614c62..8290f334a001 100644 --- a/shenyu-examples/shenyu-examples-sofa/pom.xml +++ b/shenyu-examples/shenyu-examples-sofa/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-sofa diff --git a/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-api/pom.xml b/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-api/pom.xml index 405990683261..51be4fa82172 100644 --- a/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-api/pom.xml +++ b/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-api/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples-sofa - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-sofa-api diff --git a/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-service/pom.xml b/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-service/pom.xml index cbd7a5d4d832..cc33d3b9fdcc 100644 --- a/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-service/pom.xml +++ b/shenyu-examples/shenyu-examples-sofa/shenyu-examples-sofa-service/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples-sofa - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-sofa-service diff --git a/shenyu-examples/shenyu-examples-springcloud/pom.xml b/shenyu-examples/shenyu-examples-springcloud/pom.xml index 3992aee78242..c5ff4be8b478 100644 --- a/shenyu-examples/shenyu-examples-springcloud/pom.xml +++ b/shenyu-examples/shenyu-examples-springcloud/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-springcloud diff --git a/shenyu-examples/shenyu-examples-springmvc-tomcat/pom.xml b/shenyu-examples/shenyu-examples-springmvc-tomcat/pom.xml index 737cb174f21e..baa2868e91af 100644 --- a/shenyu-examples/shenyu-examples-springmvc-tomcat/pom.xml +++ b/shenyu-examples/shenyu-examples-springmvc-tomcat/pom.xml @@ -22,7 +22,7 @@ shenyu-examples org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-springmvc-tomcat diff --git a/shenyu-examples/shenyu-examples-springmvc/pom.xml b/shenyu-examples/shenyu-examples-springmvc/pom.xml index 24cb83e4d771..45d81be9afa0 100644 --- a/shenyu-examples/shenyu-examples-springmvc/pom.xml +++ b/shenyu-examples/shenyu-examples-springmvc/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-springmvc diff --git a/shenyu-examples/shenyu-examples-tars/pom.xml b/shenyu-examples/shenyu-examples-tars/pom.xml index 954967c8dac9..25df0de9f0d4 100644 --- a/shenyu-examples/shenyu-examples-tars/pom.xml +++ b/shenyu-examples/shenyu-examples-tars/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-tars diff --git a/shenyu-examples/shenyu-examples-websocket/pom.xml b/shenyu-examples/shenyu-examples-websocket/pom.xml index 7dcca6df1c6a..ae58768763d2 100644 --- a/shenyu-examples/shenyu-examples-websocket/pom.xml +++ b/shenyu-examples/shenyu-examples-websocket/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-examples - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-examples-websocket diff --git a/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-annotation-websocket/pom.xml b/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-annotation-websocket/pom.xml index a9f757e2ab69..d98f94ce624d 100644 --- a/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-annotation-websocket/pom.xml +++ b/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-annotation-websocket/pom.xml @@ -21,7 +21,7 @@ shenyu-examples-websocket org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-example-spring-annotation-websocket diff --git a/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-native-websocket/pom.xml b/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-native-websocket/pom.xml index 5867517edfd4..01edc630e02f 100644 --- a/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-native-websocket/pom.xml +++ b/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-native-websocket/pom.xml @@ -21,7 +21,7 @@ shenyu-examples-websocket org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-example-spring-native-websocket diff --git a/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-reactive-websocket/pom.xml b/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-reactive-websocket/pom.xml index 6d76a4de346c..ef54612c20b7 100644 --- a/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-reactive-websocket/pom.xml +++ b/shenyu-examples/shenyu-examples-websocket/shenyu-example-spring-reactive-websocket/pom.xml @@ -21,7 +21,7 @@ shenyu-examples-websocket org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-integrated-test/pom.xml b/shenyu-integrated-test/pom.xml index 0b6ef5cf9bb1..8e45463daf9e 100644 --- a/shenyu-integrated-test/pom.xml +++ b/shenyu-integrated-test/pom.xml @@ -19,13 +19,13 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT pom org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT diff --git a/shenyu-integrated-test/shenyu-integrated-test-alibaba-dubbo/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-alibaba-dubbo/pom.xml index a3b2f64d1db6..7fc4641701fa 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-alibaba-dubbo/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-alibaba-dubbo/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-alibaba-dubbo diff --git a/shenyu-integrated-test/shenyu-integrated-test-apache-dubbo/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-apache-dubbo/pom.xml index f61167d23c48..2723dc98dcf2 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-apache-dubbo/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-apache-dubbo/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-apache-dubbo diff --git a/shenyu-integrated-test/shenyu-integrated-test-combination/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-combination/pom.xml index 37d23fb1630e..bc20dc3e951a 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-combination/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-combination/pom.xml @@ -21,7 +21,7 @@ shenyu-integrated-test org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-integrated-test/shenyu-integrated-test-common/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-common/pom.xml index ebf61273ba09..4c3a689f02f7 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-common/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-common/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-common shenyu-integrated-test-common diff --git a/shenyu-integrated-test/shenyu-integrated-test-grpc/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-grpc/pom.xml index bcce18286b3c..1aec85a5f479 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-grpc/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-grpc/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-integrated-test/shenyu-integrated-test-http/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-http/pom.xml index a64185324a38..aab6ef80de36 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-http/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-http/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-http diff --git a/shenyu-integrated-test/shenyu-integrated-test-https/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-https/pom.xml index b27be596cd70..03d4cee2dc0d 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-https/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-https/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-https diff --git a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-alibaba-dubbo/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-alibaba-dubbo/pom.xml index 779df2a15505..beefb06ba373 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-alibaba-dubbo/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-alibaba-dubbo/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-k8s-ingress-alibaba-dubbo diff --git a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-apache-dubbo/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-apache-dubbo/pom.xml index 1bbf67233251..00b9df61c4ca 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-apache-dubbo/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-apache-dubbo/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-k8s-ingress-apache-dubbo diff --git a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-grpc/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-grpc/pom.xml index 50037ffcae71..e111ef8ed44c 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-grpc/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-grpc/pom.xml @@ -21,7 +21,7 @@ shenyu-integrated-test org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-http/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-http/pom.xml index 0ef86020ddf6..6985b6928170 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-http/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-http/pom.xml @@ -21,7 +21,7 @@ shenyu-integrated-test org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-motan/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-motan/pom.xml index 368165981101..cdec02a86e44 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-motan/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-motan/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-k8s-ingress-motan diff --git a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-sofa/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-sofa/pom.xml index c5e6ecb836f5..984da5f2d7fd 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-sofa/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-sofa/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-k8s-ingress-sofa diff --git a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-spring-cloud/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-spring-cloud/pom.xml index b23000af59b3..cf05f938353f 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-spring-cloud/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-spring-cloud/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-k8s-ingress-spring-cloud diff --git a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-websocket/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-websocket/pom.xml index 068e6b274e90..1b6249585c16 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-websocket/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-k8s-ingress-websocket/pom.xml @@ -22,7 +22,7 @@ shenyu-integrated-test org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-k8s-ingress-websocket diff --git a/shenyu-integrated-test/shenyu-integrated-test-motan/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-motan/pom.xml index 9f6cfafe4e27..0c139963bfed 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-motan/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-motan/pom.xml @@ -21,7 +21,7 @@ shenyu-integrated-test org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-integrated-test/shenyu-integrated-test-sdk-alibaba-dubbo/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-sdk-alibaba-dubbo/pom.xml index e19a801116e1..0f31eef37aa8 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-sdk-alibaba-dubbo/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-sdk-alibaba-dubbo/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-sdk-alibaba-dubbo diff --git a/shenyu-integrated-test/shenyu-integrated-test-sdk-apache-dubbo/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-sdk-apache-dubbo/pom.xml index e9ad682ee6f3..37514d44b421 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-sdk-apache-dubbo/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-sdk-apache-dubbo/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-sdk-apache-dubbo diff --git a/shenyu-integrated-test/shenyu-integrated-test-sdk-http/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-sdk-http/pom.xml index 05c2753d1d18..359d5e378d7e 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-sdk-http/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-sdk-http/pom.xml @@ -21,7 +21,7 @@ shenyu-integrated-test org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-integrated-test/shenyu-integrated-test-sofa/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-sofa/pom.xml index 59d6433dec1e..3c3f4a2d875c 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-sofa/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-sofa/pom.xml @@ -21,7 +21,7 @@ shenyu-integrated-test org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-integrated-test/shenyu-integrated-test-spring-cloud/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-spring-cloud/pom.xml index 6da56879b4d8..94ff978d4fc4 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-spring-cloud/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-spring-cloud/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-spring-cloud diff --git a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/pom.xml index 08b7914e79c2..7e4127c3253b 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-integrated-test - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT pom diff --git a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-custom-plugin/Dockerfile b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-custom-plugin/Dockerfile index 09cd5c24e46d..aa0485e14958 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-custom-plugin/Dockerfile +++ b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-custom-plugin/Dockerfile @@ -17,6 +17,6 @@ FROM openjdk:8-jre-alpine ENV APP_NAME shenyu-integrated-test-custom-plugin -ADD target/shenyu-custom-plugin-2.6.2-SNAPSHOT.jar /opt/shenyu-custom-plugin.jar +ADD target/shenyu-custom-plugin-2.7.0-SNAPSHOT.jar /opt/shenyu-custom-plugin.jar RUN ls -l diff --git a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-custom-plugin/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-custom-plugin/pom.xml index 987a8d780974..4f6fc38d5f33 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-custom-plugin/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-custom-plugin/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-integrated-test-upload-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-admin/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-admin/pom.xml index 15a19a4d0844..82f3424861a8 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-admin/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-admin/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-integrated-test-upload-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-admin diff --git a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-upload-plugin-case/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-upload-plugin-case/pom.xml index e98a41466e2e..0c876e81bb8d 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-upload-plugin-case/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-upload-plugin/shenyu-integrated-test-upload-plugin-case/pom.xml @@ -22,7 +22,7 @@ org.apache.shenyu shenyu-integrated-test-upload-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-integrated-test-upload-plugin-case diff --git a/shenyu-integrated-test/shenyu-integrated-test-websocket/pom.xml b/shenyu-integrated-test/shenyu-integrated-test-websocket/pom.xml index b0dfa796b5f5..ba5e8b98cb0a 100644 --- a/shenyu-integrated-test/shenyu-integrated-test-websocket/pom.xml +++ b/shenyu-integrated-test/shenyu-integrated-test-websocket/pom.xml @@ -21,7 +21,7 @@ shenyu-integrated-test org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-kubernetes-controller/pom.xml b/shenyu-kubernetes-controller/pom.xml index 48f17c4b2b93..5a7fe56b5adb 100644 --- a/shenyu-kubernetes-controller/pom.xml +++ b/shenyu-kubernetes-controller/pom.xml @@ -20,7 +20,7 @@ shenyu org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-kubernetes-controller diff --git a/shenyu-loadbalancer/pom.xml b/shenyu-loadbalancer/pom.xml index 8558820cc9c6..427bdfe2c690 100644 --- a/shenyu-loadbalancer/pom.xml +++ b/shenyu-loadbalancer/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-loadbalancer diff --git a/shenyu-plugin/pom.xml b/shenyu-plugin/pom.xml index 540393acbd24..c582ff0b5298 100644 --- a/shenyu-plugin/pom.xml +++ b/shenyu-plugin/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin diff --git a/shenyu-plugin/shenyu-plugin-api/pom.xml b/shenyu-plugin/shenyu-plugin-api/pom.xml index 3cd8b648fffc..c1142c184e5c 100644 --- a/shenyu-plugin/shenyu-plugin-api/pom.xml +++ b/shenyu-plugin/shenyu-plugin-api/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-api diff --git a/shenyu-plugin/shenyu-plugin-base/pom.xml b/shenyu-plugin/shenyu-plugin-base/pom.xml index 1cce922900e8..adb25dd227aa 100644 --- a/shenyu-plugin/shenyu-plugin-base/pom.xml +++ b/shenyu-plugin/shenyu-plugin-base/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-base @@ -50,4 +50,4 @@ test - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-cache/pom.xml b/shenyu-plugin/shenyu-plugin-cache/pom.xml index 2160f3e36169..e96e641c1a4f 100644 --- a/shenyu-plugin/shenyu-plugin-cache/pom.xml +++ b/shenyu-plugin/shenyu-plugin-cache/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-cache @@ -41,4 +41,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-handler/pom.xml b/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-handler/pom.xml index 29dd082d7da9..f7a36d461b4b 100644 --- a/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-handler/pom.xml +++ b/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-handler/pom.xml @@ -20,7 +20,7 @@ shenyu-plugin-cache org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -49,4 +49,4 @@ test - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-memory/pom.xml b/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-memory/pom.xml index 367e2a2c4678..906c914946ec 100644 --- a/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-memory/pom.xml +++ b/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-memory/pom.xml @@ -20,7 +20,7 @@ shenyu-plugin-cache org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -34,4 +34,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-redis/pom.xml b/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-redis/pom.xml index 10aaaa2dcf57..0ff0580b9488 100644 --- a/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-redis/pom.xml +++ b/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-redis/pom.xml @@ -20,7 +20,7 @@ shenyu-plugin-cache org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -53,4 +53,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-spi/pom.xml b/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-spi/pom.xml index 1ecbb46ca3e0..4e37edd6ab83 100644 --- a/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-spi/pom.xml +++ b/shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-spi/pom.xml @@ -20,9 +20,9 @@ org.apache.shenyu shenyu-plugin-cache - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-cache-spi - - \ No newline at end of file + + diff --git a/shenyu-plugin/shenyu-plugin-context-path/pom.xml b/shenyu-plugin/shenyu-plugin-context-path/pom.xml index a814afd65e50..d2a3feab6fcb 100644 --- a/shenyu-plugin/shenyu-plugin-context-path/pom.xml +++ b/shenyu-plugin/shenyu-plugin-context-path/pom.xml @@ -20,11 +20,11 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-context-path - + org.apache.shenyu diff --git a/shenyu-plugin/shenyu-plugin-fault-tolerance/pom.xml b/shenyu-plugin/shenyu-plugin-fault-tolerance/pom.xml index ac138e40c09c..e95dc4dd65b6 100644 --- a/shenyu-plugin/shenyu-plugin-fault-tolerance/pom.xml +++ b/shenyu-plugin/shenyu-plugin-fault-tolerance/pom.xml @@ -6,9 +6,9 @@ ~ 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. @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-plugin-fault-tolerance pom @@ -32,7 +32,7 @@ shenyu-plugin-resilience4j shenyu-plugin-sentinel - + org.apache.shenyu @@ -40,4 +40,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-hystrix/pom.xml b/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-hystrix/pom.xml index d7d47755d119..6c31bee1ef20 100644 --- a/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-hystrix/pom.xml +++ b/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-hystrix/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-fault-tolerance - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-hystrix @@ -49,4 +49,4 @@ ${rxjava-reactive-streams.version} - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-ratelimiter/pom.xml b/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-ratelimiter/pom.xml index e69a1d89a30e..8d8fa9e74bf4 100644 --- a/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-ratelimiter/pom.xml +++ b/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-ratelimiter/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-fault-tolerance - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-ratelimiter @@ -28,7 +28,7 @@ 0.6 - + org.apache.shenyu diff --git a/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-resilience4j/pom.xml b/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-resilience4j/pom.xml index 04aa29ea1158..708c0bdd191c 100644 --- a/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-resilience4j/pom.xml +++ b/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-resilience4j/pom.xml @@ -20,11 +20,11 @@ org.apache.shenyu shenyu-plugin-fault-tolerance - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-resilience4j - + io.github.resilience4j diff --git a/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-sentinel/pom.xml b/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-sentinel/pom.xml index 6025f6c44301..f885b273cac3 100644 --- a/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-sentinel/pom.xml +++ b/shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-sentinel/pom.xml @@ -20,11 +20,11 @@ org.apache.shenyu shenyu-plugin-fault-tolerance - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-sentinel - + com.alibaba.csp diff --git a/shenyu-plugin/shenyu-plugin-global/pom.xml b/shenyu-plugin/shenyu-plugin-global/pom.xml index 9d9c7630990d..72c235e2eb39 100644 --- a/shenyu-plugin/shenyu-plugin-global/pom.xml +++ b/shenyu-plugin/shenyu-plugin-global/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-global @@ -36,4 +36,4 @@ commons-lang3 - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-httpclient/pom.xml b/shenyu-plugin/shenyu-plugin-httpclient/pom.xml index a83081eb82bd..94bc12d74c22 100644 --- a/shenyu-plugin/shenyu-plugin-httpclient/pom.xml +++ b/shenyu-plugin/shenyu-plugin-httpclient/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-httpclient diff --git a/shenyu-plugin/shenyu-plugin-logging/pom.xml b/shenyu-plugin/shenyu-plugin-logging/pom.xml index 47a0194a075b..09906f2da0ef 100644 --- a/shenyu-plugin/shenyu-plugin-logging/pom.xml +++ b/shenyu-plugin/shenyu-plugin-logging/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-logging @@ -48,4 +48,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-aliyun-sls/pom.xml b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-aliyun-sls/pom.xml index b1e3b580f5a4..f2848f5e89e8 100644 --- a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-aliyun-sls/pom.xml +++ b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-aliyun-sls/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-logging - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-logging-aliyun-sls diff --git a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/pom.xml b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/pom.xml index 194ef2e279f4..8918b7790105 100644 --- a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/pom.xml +++ b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-clickhouse/pom.xml @@ -20,7 +20,7 @@ shenyu-plugin-logging org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-logging-clickhouse diff --git a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-common/pom.xml b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-common/pom.xml index 90b36b6ffa04..c92390ff0215 100644 --- a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-common/pom.xml +++ b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-common/pom.xml @@ -20,7 +20,7 @@ shenyu-plugin-logging org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -34,4 +34,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-console/pom.xml b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-console/pom.xml index 1d7a0eff9f0d..924ed8fd9672 100644 --- a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-console/pom.xml +++ b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-console/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-logging - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -33,4 +33,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-desensitize-api/pom.xml b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-desensitize-api/pom.xml index a4cfad607c26..ac1c951106e2 100644 --- a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-desensitize-api/pom.xml +++ b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-desensitize-api/pom.xml @@ -20,7 +20,7 @@ shenyu-plugin-logging org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-logging-desensitize-api diff --git a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-elasticsearch/pom.xml b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-elasticsearch/pom.xml index 3dcd35b0fbbc..a3a52c9e3fd7 100644 --- a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-elasticsearch/pom.xml +++ b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-elasticsearch/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-logging - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-logging-elasticsearch @@ -53,4 +53,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-huawei-lts/pom.xml b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-huawei-lts/pom.xml index b31b52b3a9b3..ab9e953dc1c7 100644 --- a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-huawei-lts/pom.xml +++ b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-huawei-lts/pom.xml @@ -20,7 +20,7 @@ shenyu-plugin-logging org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -48,4 +48,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-kafka/pom.xml b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-kafka/pom.xml index 8055fcafdfda..ee39146205b6 100644 --- a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-kafka/pom.xml +++ b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-kafka/pom.xml @@ -19,11 +19,11 @@ org.apache.shenyu shenyu-plugin-logging - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-logging-kafka - + org.apache.shenyu @@ -41,4 +41,4 @@ ${lz4-java.version} - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-pulsar/pom.xml b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-pulsar/pom.xml index f75bd4bd3dde..5e5a3f5ce56c 100644 --- a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-pulsar/pom.xml +++ b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-pulsar/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-logging - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-logging-pulsar @@ -47,4 +47,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-rabbitmq/pom.xml b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-rabbitmq/pom.xml index 9fe4c2598410..1291dc590cc7 100644 --- a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-rabbitmq/pom.xml +++ b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-rabbitmq/pom.xml @@ -19,7 +19,7 @@ org.apache.shenyu shenyu-plugin-logging - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-logging-rabbitmq @@ -41,4 +41,4 @@ ${lz4-java.version} - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-rocketmq/pom.xml b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-rocketmq/pom.xml index bf501ab4e245..35b36b8d1509 100644 --- a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-rocketmq/pom.xml +++ b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-rocketmq/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-logging - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-logging-rocketmq @@ -48,4 +48,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-tencent-cls/pom.xml b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-tencent-cls/pom.xml index 5bd08d7143ef..7f627814c131 100644 --- a/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-tencent-cls/pom.xml +++ b/shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-tencent-cls/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-logging - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-logging-tencent-cls @@ -31,7 +31,7 @@ shenyu-plugin-logging-common ${project.version} - + com.tencentcloudapi.cls tencentcloud-cls-sdk-java diff --git a/shenyu-plugin/shenyu-plugin-metrics/pom.xml b/shenyu-plugin/shenyu-plugin-metrics/pom.xml index 78131c5e8d80..6f4908bb77b4 100644 --- a/shenyu-plugin/shenyu-plugin-metrics/pom.xml +++ b/shenyu-plugin/shenyu-plugin-metrics/pom.xml @@ -20,11 +20,11 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-metrics - + org.apache.shenyu @@ -58,4 +58,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-mock/pom.xml b/shenyu-plugin/shenyu-plugin-mock/pom.xml index 90c59f934781..1cca677a99f5 100644 --- a/shenyu-plugin/shenyu-plugin-mock/pom.xml +++ b/shenyu-plugin/shenyu-plugin-mock/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-mock @@ -43,4 +43,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-modify-response/pom.xml b/shenyu-plugin/shenyu-plugin-modify-response/pom.xml index 0fba92ba9fed..46701d6578ff 100644 --- a/shenyu-plugin/shenyu-plugin-modify-response/pom.xml +++ b/shenyu-plugin/shenyu-plugin-modify-response/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-modify-response @@ -43,4 +43,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-param-mapping/pom.xml b/shenyu-plugin/shenyu-plugin-param-mapping/pom.xml index b8d5c7a36ee2..cd75b6cd7e6a 100644 --- a/shenyu-plugin/shenyu-plugin-param-mapping/pom.xml +++ b/shenyu-plugin/shenyu-plugin-param-mapping/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-param-mapping diff --git a/shenyu-plugin/shenyu-plugin-proxy/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/pom.xml index faf93eab1d96..5359c32d9d15 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/pom.xml @@ -21,11 +21,11 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-plugin-proxy pom - + shenyu-plugin-divide shenyu-plugin-mqtt @@ -42,4 +42,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/pom.xml index 13e8f34d7ddf..f8b5bcd9bbc1 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-proxy - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-divide @@ -37,4 +37,4 @@ test - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-mqtt/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-mqtt/pom.xml index 55795f259c33..6f2258c34a0c 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-mqtt/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-mqtt/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-proxy - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -40,4 +40,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/pom.xml index e1a6fac933cd..06d1357dfb8b 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-plugin-proxy - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-plugin-rpc pom @@ -35,5 +35,5 @@ shenyu-plugin-tars shenyu-plugin-transform - - \ No newline at end of file + + diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/pom.xml index 8e728d7a0b29..c1ff24a15099 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-rpc - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -41,4 +41,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-alibaba-dubbo/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-alibaba-dubbo/pom.xml index fe3e4ede8859..d8b7474645c2 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-alibaba-dubbo/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-alibaba-dubbo/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-dubbo - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-alibaba-dubbo @@ -37,4 +37,4 @@ provided - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-apache-dubbo/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-apache-dubbo/pom.xml index 6e628cd40bd6..4f61e246f368 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-apache-dubbo/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-apache-dubbo/pom.xml @@ -20,11 +20,11 @@ org.apache.shenyu shenyu-plugin-dubbo - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-apache-dubbo - + org.apache.shenyu @@ -37,4 +37,4 @@ provided - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-dubbo-common/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-dubbo-common/pom.xml index 1c049585804c..d286e67cb54a 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-dubbo-common/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-dubbo/shenyu-plugin-dubbo-common/pom.xml @@ -20,8 +20,8 @@ org.apache.shenyu shenyu-plugin-dubbo - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-dubbo-common - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-general-context/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-general-context/pom.xml index ad5b6bf375b5..ac32ed290521 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-general-context/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-general-context/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-rpc - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -34,4 +34,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-grpc/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-grpc/pom.xml index 765b53e5656e..70f83849d51d 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-grpc/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-grpc/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-rpc - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-grpc diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-motan/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-motan/pom.xml index 05942c40d7e0..d84cdf71baec 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-motan/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-motan/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-rpc - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-motan diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-sofa/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-sofa/pom.xml index 7f92b4c6ef53..76412865e29f 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-sofa/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-sofa/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-rpc - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-sofa @@ -44,4 +44,4 @@ ${grpc.version} - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-tars/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-tars/pom.xml index bfa58df1d24a..b654d4dec7b9 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-tars/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-tars/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-rpc - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -73,4 +73,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-transform/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-transform/pom.xml index 9287e6a27e14..e528eb2da2af 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-transform/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-transform/pom.xml @@ -21,8 +21,8 @@ org.apache.shenyu shenyu-plugin-rpc - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-plugin-transform - - \ No newline at end of file + + diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-springcloud/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-springcloud/pom.xml index 230e04023210..7326b329c235 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-springcloud/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-springcloud/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-proxy - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-springcloud diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-tcp/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-tcp/pom.xml index d76583b12110..9cd2ab7b9160 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-tcp/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-tcp/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-plugin-proxy - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-plugin-tcp @@ -35,4 +35,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-websocket/pom.xml b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-websocket/pom.xml index 478aab968fcf..0178ef2b8833 100644 --- a/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-websocket/pom.xml +++ b/shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-websocket/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-proxy - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-websocket @@ -41,4 +41,4 @@ test - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-redirect/pom.xml b/shenyu-plugin/shenyu-plugin-redirect/pom.xml index 96b7b714b96c..6a6a2e343099 100644 --- a/shenyu-plugin/shenyu-plugin-redirect/pom.xml +++ b/shenyu-plugin/shenyu-plugin-redirect/pom.xml @@ -20,12 +20,12 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-redirect - + org.apache.shenyu diff --git a/shenyu-plugin/shenyu-plugin-request/pom.xml b/shenyu-plugin/shenyu-plugin-request/pom.xml index f82a1625d25a..17a3a427837f 100644 --- a/shenyu-plugin/shenyu-plugin-request/pom.xml +++ b/shenyu-plugin/shenyu-plugin-request/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-request @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-response/pom.xml b/shenyu-plugin/shenyu-plugin-response/pom.xml index 61cb82fda85b..530bc8a57375 100644 --- a/shenyu-plugin/shenyu-plugin-response/pom.xml +++ b/shenyu-plugin/shenyu-plugin-response/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-response @@ -31,7 +31,7 @@ shenyu-plugin-base ${project.version} - + io.netty netty-codec-http @@ -42,4 +42,4 @@ reactor-netty - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-rewrite/pom.xml b/shenyu-plugin/shenyu-plugin-rewrite/pom.xml index e3766de988c7..23e0c62d7a37 100644 --- a/shenyu-plugin/shenyu-plugin-rewrite/pom.xml +++ b/shenyu-plugin/shenyu-plugin-rewrite/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-rewrite @@ -33,4 +33,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-security/pom.xml b/shenyu-plugin/shenyu-plugin-security/pom.xml index 297a08948ff9..a49d94dacaba 100644 --- a/shenyu-plugin/shenyu-plugin-security/pom.xml +++ b/shenyu-plugin/shenyu-plugin-security/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-plugin-security pom diff --git a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-basic-auth/pom.xml b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-basic-auth/pom.xml index 2bba20768dd8..66b81947a7f6 100755 --- a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-basic-auth/pom.xml +++ b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-basic-auth/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-security - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-casdoor/pom.xml b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-casdoor/pom.xml index 3518057d8dc5..b980e3523baa 100644 --- a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-casdoor/pom.xml +++ b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-casdoor/pom.xml @@ -20,11 +20,11 @@ org.apache.shenyu shenyu-plugin-security - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-casdoor - + org.casbin @@ -38,4 +38,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-cryptor/pom.xml b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-cryptor/pom.xml index 2927c27a6a29..f959a32b5610 100644 --- a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-cryptor/pom.xml +++ b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-cryptor/pom.xml @@ -19,7 +19,7 @@ org.apache.shenyu shenyu-plugin-security - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-cryptor @@ -38,4 +38,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-jwt/pom.xml b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-jwt/pom.xml index 3cb8629e9cbe..1da79de1d929 100644 --- a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-jwt/pom.xml +++ b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-jwt/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-security - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-jwt @@ -43,4 +43,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-key-auth/pom.xml b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-key-auth/pom.xml index ce505c84481e..320d8dfc3ed5 100644 --- a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-key-auth/pom.xml +++ b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-key-auth/pom.xml @@ -20,9 +20,9 @@ org.apache.shenyu shenyu-plugin-security - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-key-auth - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-oauth2/pom.xml b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-oauth2/pom.xml index 4dced6367d47..3cad59784d40 100644 --- a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-oauth2/pom.xml +++ b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-oauth2/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin-security - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-oauth2 @@ -34,4 +34,4 @@ - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-sign/pom.xml b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-sign/pom.xml index 7d124004f89a..219138bf496c 100644 --- a/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-sign/pom.xml +++ b/shenyu-plugin/shenyu-plugin-security/shenyu-plugin-sign/pom.xml @@ -20,8 +20,8 @@ org.apache.shenyu shenyu-plugin-security - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-sign - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-uri/pom.xml b/shenyu-plugin/shenyu-plugin-uri/pom.xml index ae0ad90c0c37..8785b6e0a092 100644 --- a/shenyu-plugin/shenyu-plugin-uri/pom.xml +++ b/shenyu-plugin/shenyu-plugin-uri/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-uri @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-waf/pom.xml b/shenyu-plugin/shenyu-plugin-waf/pom.xml index e0d6c6810e7b..ff55437499cc 100644 --- a/shenyu-plugin/shenyu-plugin-waf/pom.xml +++ b/shenyu-plugin/shenyu-plugin-waf/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-waf @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-wasm-api/pom.xml b/shenyu-plugin/shenyu-plugin-wasm-api/pom.xml index 8e90f828ddbc..818034e5d511 100644 --- a/shenyu-plugin/shenyu-plugin-wasm-api/pom.xml +++ b/shenyu-plugin/shenyu-plugin-wasm-api/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-wasm-api @@ -46,4 +46,4 @@ test - \ No newline at end of file + diff --git a/shenyu-plugin/shenyu-plugin-wasm-base/pom.xml b/shenyu-plugin/shenyu-plugin-wasm-base/pom.xml index 17735b1c7add..e18a100fc946 100644 --- a/shenyu-plugin/shenyu-plugin-wasm-base/pom.xml +++ b/shenyu-plugin/shenyu-plugin-wasm-base/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-plugin-wasm-base @@ -47,4 +47,4 @@ test - \ No newline at end of file + diff --git a/shenyu-protocol/pom.xml b/shenyu-protocol/pom.xml index f51d112f4c70..3863850ad547 100644 --- a/shenyu-protocol/pom.xml +++ b/shenyu-protocol/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-protocol @@ -31,4 +31,4 @@ shenyu-protocol-mqtt shenyu-protocol-tcp - \ No newline at end of file + diff --git a/shenyu-protocol/shenyu-protocol-grpc/pom.xml b/shenyu-protocol/shenyu-protocol-grpc/pom.xml index 32d9c94b29d5..19da9eddef90 100644 --- a/shenyu-protocol/shenyu-protocol-grpc/pom.xml +++ b/shenyu-protocol/shenyu-protocol-grpc/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-protocol - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-protocol-grpc @@ -64,4 +64,4 @@ - \ No newline at end of file + diff --git a/shenyu-protocol/shenyu-protocol-mqtt/pom.xml b/shenyu-protocol/shenyu-protocol-mqtt/pom.xml index 6ac616364bd7..2c9f53e13071 100644 --- a/shenyu-protocol/shenyu-protocol-mqtt/pom.xml +++ b/shenyu-protocol/shenyu-protocol-mqtt/pom.xml @@ -20,7 +20,7 @@ shenyu-protocol org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -48,4 +48,4 @@ - \ No newline at end of file + diff --git a/shenyu-protocol/shenyu-protocol-tcp/pom.xml b/shenyu-protocol/shenyu-protocol-tcp/pom.xml index 258f4309ba4e..6ea2bb6dab17 100644 --- a/shenyu-protocol/shenyu-protocol-tcp/pom.xml +++ b/shenyu-protocol/shenyu-protocol-tcp/pom.xml @@ -21,7 +21,7 @@ shenyu-protocol org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-protocol-tcp @@ -57,4 +57,4 @@ - \ No newline at end of file + diff --git a/shenyu-register-center/pom.xml b/shenyu-register-center/pom.xml index f700f6ea3a4c..d046ce8201c2 100644 --- a/shenyu-register-center/pom.xml +++ b/shenyu-register-center/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-register-center @@ -31,4 +31,4 @@ shenyu-register-client - \ No newline at end of file + diff --git a/shenyu-register-center/shenyu-register-client/pom.xml b/shenyu-register-center/shenyu-register-client/pom.xml index 3dcef29f11c2..0bc249fa4653 100644 --- a/shenyu-register-center/shenyu-register-client/pom.xml +++ b/shenyu-register-center/shenyu-register-client/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-register-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-register-client @@ -30,4 +30,4 @@ shenyu-register-client-api shenyu-register-client-http - \ No newline at end of file + diff --git a/shenyu-register-center/shenyu-register-client/shenyu-register-client-api/pom.xml b/shenyu-register-center/shenyu-register-client/shenyu-register-client-api/pom.xml index ed95e18c88c0..c7a238f5b4d4 100644 --- a/shenyu-register-center/shenyu-register-client/shenyu-register-client-api/pom.xml +++ b/shenyu-register-center/shenyu-register-client/shenyu-register-client-api/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-register-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-register-client-api @@ -38,4 +38,4 @@ - \ No newline at end of file + diff --git a/shenyu-register-center/shenyu-register-client/shenyu-register-client-http/pom.xml b/shenyu-register-center/shenyu-register-client/shenyu-register-client-http/pom.xml index c383fa1d3ff7..0190d0e8ea5f 100644 --- a/shenyu-register-center/shenyu-register-client/shenyu-register-client-http/pom.xml +++ b/shenyu-register-center/shenyu-register-client/shenyu-register-client-http/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-register-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-register-client-http @@ -52,4 +52,4 @@ test - \ No newline at end of file + diff --git a/shenyu-register-center/shenyu-register-common/pom.xml b/shenyu-register-center/shenyu-register-common/pom.xml index 30b9238a0fbc..d583a2b07f1d 100644 --- a/shenyu-register-center/shenyu-register-common/pom.xml +++ b/shenyu-register-center/shenyu-register-common/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-register-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-register-common @@ -38,4 +38,4 @@ compile - \ No newline at end of file + diff --git a/shenyu-registry/pom.xml b/shenyu-registry/pom.xml index 8bdff8c3f0db..2841f36688b0 100644 --- a/shenyu-registry/pom.xml +++ b/shenyu-registry/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-registry @@ -38,4 +38,4 @@ shenyu-registry-polaris - \ No newline at end of file + diff --git a/shenyu-registry/shenyu-registry-api/pom.xml b/shenyu-registry/shenyu-registry-api/pom.xml index feeb68d5770d..ed812d08a3b4 100644 --- a/shenyu-registry/shenyu-registry-api/pom.xml +++ b/shenyu-registry/shenyu-registry-api/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-registry - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-registry-api @@ -37,5 +37,5 @@ ${project.version} - - \ No newline at end of file + + diff --git a/shenyu-registry/shenyu-registry-apollo/pom.xml b/shenyu-registry/shenyu-registry-apollo/pom.xml index 871623d88dd8..959d09a98c14 100644 --- a/shenyu-registry/shenyu-registry-apollo/pom.xml +++ b/shenyu-registry/shenyu-registry-apollo/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-registry - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-registry-apollo diff --git a/shenyu-registry/shenyu-registry-consul/pom.xml b/shenyu-registry/shenyu-registry-consul/pom.xml index dc818cbda48d..57fac9f9a193 100644 --- a/shenyu-registry/shenyu-registry-consul/pom.xml +++ b/shenyu-registry/shenyu-registry-consul/pom.xml @@ -20,7 +20,7 @@ shenyu-registry org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-registry-consul @@ -37,4 +37,4 @@ ${consul.api.version} - \ No newline at end of file + diff --git a/shenyu-registry/shenyu-registry-core/pom.xml b/shenyu-registry/shenyu-registry-core/pom.xml index 49ba9d8e0a0b..efa78bf792b9 100644 --- a/shenyu-registry/shenyu-registry-core/pom.xml +++ b/shenyu-registry/shenyu-registry-core/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-registry - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-registry-core @@ -58,4 +58,4 @@ - \ No newline at end of file + diff --git a/shenyu-registry/shenyu-registry-etcd/pom.xml b/shenyu-registry/shenyu-registry-etcd/pom.xml index de4ad1bafcd5..a22d5531bbdb 100644 --- a/shenyu-registry/shenyu-registry-etcd/pom.xml +++ b/shenyu-registry/shenyu-registry-etcd/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-registry - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-registry-etcd diff --git a/shenyu-registry/shenyu-registry-eureka/pom.xml b/shenyu-registry/shenyu-registry-eureka/pom.xml index 33c9bd202f31..03009b24230c 100644 --- a/shenyu-registry/shenyu-registry-eureka/pom.xml +++ b/shenyu-registry/shenyu-registry-eureka/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-registry - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-registry-eureka @@ -37,4 +37,4 @@ eureka-client - \ No newline at end of file + diff --git a/shenyu-registry/shenyu-registry-nacos/pom.xml b/shenyu-registry/shenyu-registry-nacos/pom.xml index 122efaf3a379..7dbddc6ac89a 100644 --- a/shenyu-registry/shenyu-registry-nacos/pom.xml +++ b/shenyu-registry/shenyu-registry-nacos/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-registry - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-registry-nacos diff --git a/shenyu-registry/shenyu-registry-polaris/pom.xml b/shenyu-registry/shenyu-registry-polaris/pom.xml index 5d89090a9556..793c6bae4cc4 100644 --- a/shenyu-registry/shenyu-registry-polaris/pom.xml +++ b/shenyu-registry/shenyu-registry-polaris/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-registry - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-registry-polaris diff --git a/shenyu-registry/shenyu-registry-zookeeper/pom.xml b/shenyu-registry/shenyu-registry-zookeeper/pom.xml index a2e6ad4434c2..0ddb194c45d7 100644 --- a/shenyu-registry/shenyu-registry-zookeeper/pom.xml +++ b/shenyu-registry/shenyu-registry-zookeeper/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-registry - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-registry-zookeeper @@ -45,4 +45,4 @@ test - \ No newline at end of file + diff --git a/shenyu-sdk/pom.xml b/shenyu-sdk/pom.xml index 011ab3881c78..5a9c1b36328c 100644 --- a/shenyu-sdk/pom.xml +++ b/shenyu-sdk/pom.xml @@ -19,7 +19,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sdk @@ -32,4 +32,4 @@ shenyu-sdk-spring shenyu-sdk-feign - \ No newline at end of file + diff --git a/shenyu-sdk/shenyu-sdk-core/pom.xml b/shenyu-sdk/shenyu-sdk-core/pom.xml index 87369deda253..80d5e633ae74 100644 --- a/shenyu-sdk/shenyu-sdk-core/pom.xml +++ b/shenyu-sdk/shenyu-sdk-core/pom.xml @@ -19,11 +19,11 @@ org.apache.shenyu shenyu-sdk - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sdk-core - + org.apache.shenyu @@ -41,4 +41,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-sdk/shenyu-sdk-feign/pom.xml b/shenyu-sdk/shenyu-sdk-feign/pom.xml index 882bb2a01c74..98adbd1d31d5 100644 --- a/shenyu-sdk/shenyu-sdk-feign/pom.xml +++ b/shenyu-sdk/shenyu-sdk-feign/pom.xml @@ -19,7 +19,7 @@ org.apache.shenyu shenyu-sdk - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sdk-feign @@ -63,4 +63,4 @@ test - \ No newline at end of file + diff --git a/shenyu-sdk/shenyu-sdk-httpclient/pom.xml b/shenyu-sdk/shenyu-sdk-httpclient/pom.xml index 517de0b8aebe..ce3892d5b134 100644 --- a/shenyu-sdk/shenyu-sdk-httpclient/pom.xml +++ b/shenyu-sdk/shenyu-sdk-httpclient/pom.xml @@ -19,7 +19,7 @@ org.apache.shenyu shenyu-sdk - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sdk-httpclient @@ -36,4 +36,4 @@ ${httpasyncclient.version} - \ No newline at end of file + diff --git a/shenyu-sdk/shenyu-sdk-okhttp/pom.xml b/shenyu-sdk/shenyu-sdk-okhttp/pom.xml index 2a63f6f80d06..5b74c6e96460 100644 --- a/shenyu-sdk/shenyu-sdk-okhttp/pom.xml +++ b/shenyu-sdk/shenyu-sdk-okhttp/pom.xml @@ -19,7 +19,7 @@ org.apache.shenyu shenyu-sdk - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sdk-okhttp @@ -36,4 +36,4 @@ ${okhttp.version} - \ No newline at end of file + diff --git a/shenyu-sdk/shenyu-sdk-spring/pom.xml b/shenyu-sdk/shenyu-sdk-spring/pom.xml index df1494bda440..dbc0d48fa838 100644 --- a/shenyu-sdk/shenyu-sdk-spring/pom.xml +++ b/shenyu-sdk/shenyu-sdk-spring/pom.xml @@ -19,7 +19,7 @@ org.apache.shenyu shenyu-sdk - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sdk-spring @@ -56,4 +56,4 @@ test - \ No newline at end of file + diff --git a/shenyu-spi/pom.xml b/shenyu-spi/pom.xml index e5853c9c5a1f..8b8bea2fed7d 100644 --- a/shenyu-spi/pom.xml +++ b/shenyu-spi/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -32,4 +32,4 @@ commons-lang3 - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/pom.xml b/shenyu-spring-boot-starter/pom.xml index 04138c5f008e..de64d448ad96 100644 --- a/shenyu-spring-boot-starter/pom.xml +++ b/shenyu-spring-boot-starter/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/pom.xml index e41382dd6bd5..463ee09ba2bb 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/pom.xml @@ -20,12 +20,12 @@ org.apache.shenyu shenyu-spring-boot-starter - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-client pom - + shenyu-spring-boot-starter-client-springmvc shenyu-spring-boot-starter-client-springcloud diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-alibaba-dubbo/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-alibaba-dubbo/pom.xml index a08cb5e41a1e..ac7794f8fdfc 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-alibaba-dubbo/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-alibaba-dubbo/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-client-alibaba-dubbo @@ -43,4 +43,4 @@ test - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-apache-dubbo/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-apache-dubbo/pom.xml index 54baf1c628b9..616e2d868949 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-apache-dubbo/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-apache-dubbo/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-client-apache-dubbo @@ -43,4 +43,4 @@ provided - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-common/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-common/pom.xml index 2e8b0e0c17af..7606f49e6fc7 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-common/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-common/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-client-common @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-grpc/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-grpc/pom.xml index 2c8243d0cf13..624540de6c14 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-grpc/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-grpc/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-client-grpc diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-motan/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-motan/pom.xml index 0b58f01bef38..238c7c1c6378 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-motan/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-motan/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -44,4 +44,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-sofa/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-sofa/pom.xml index fb81839d72e5..d7515345ebd8 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-sofa/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-sofa/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-client-sofa diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-spring-websocket/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-spring-websocket/pom.xml index 0b6a26ffd154..622f416f9b13 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-spring-websocket/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-spring-websocket/pom.xml @@ -19,7 +19,7 @@ shenyu-spring-boot-starter-client org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -43,4 +43,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-springcloud/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-springcloud/pom.xml index 2decf23d0cc2..f9ce416265b0 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-springcloud/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-springcloud/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-client-springcloud @@ -42,4 +42,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-springmvc/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-springmvc/pom.xml index cd08c74ee01c..dd0f7e5a7421 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-springmvc/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-springmvc/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-client-springmvc @@ -42,4 +42,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-tars/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-tars/pom.xml index d22d9b19f343..559217278fc2 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-tars/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-tars/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-client - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-client-tars @@ -31,11 +31,11 @@ shenyu-client-tars ${project.version} - + org.apache.shenyu shenyu-spring-boot-starter-client-common ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-gateway/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-gateway/pom.xml index 2dbdc27501a1..2a1cb2181a8c 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-gateway/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-gateway/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-gateway @@ -69,7 +69,7 @@ ${project.version} - + org.apache.shenyu diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-k8s/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-k8s/pom.xml index 2ff2dcad7d7d..dce5b980742c 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-k8s/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-k8s/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-k8s @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/pom.xml index d918bd801506..f4ee6c30dc74 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-basic-auth/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-basic-auth/pom.xml index 9141f20533b5..f51180ba8823 100755 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-basic-auth/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-basic-auth/pom.xml @@ -20,7 +20,7 @@ shenyu-spring-boot-starter-plugin org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-cache/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-cache/pom.xml index 6667b1679732..38a09a7eec43 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-cache/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-cache/pom.xml @@ -20,7 +20,7 @@ shenyu-spring-boot-starter-plugin org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -33,4 +33,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-casdoor/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-casdoor/pom.xml index 1238ef069499..1ae88540267a 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-casdoor/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-casdoor/pom.xml @@ -20,11 +20,11 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-casdoor - + org.apache.shenyu @@ -33,4 +33,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-context-path/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-context-path/pom.xml index c75c8d1071ce..1c6de21fc764 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-context-path/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-context-path/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-context-path diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-cryptor/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-cryptor/pom.xml index 3be384d5e99b..d79412eb6c94 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-cryptor/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-cryptor/pom.xml @@ -19,7 +19,7 @@ shenyu-spring-boot-starter-plugin org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -33,4 +33,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-divide/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-divide/pom.xml index 9401b352889b..703cd33e933a 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-divide/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-divide/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-divide diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/pom.xml index 518c1c4bd523..f6ec1381c643 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/pom.xml @@ -20,7 +20,7 @@ shenyu-spring-boot-starter-plugin org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-dubbo @@ -32,4 +32,4 @@ shenyu-spring-boot-starter-plugin-apache-dubbo - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/shenyu-spring-boot-starter-plugin-alibaba-dubbo/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/shenyu-spring-boot-starter-plugin-alibaba-dubbo/pom.xml index 6f98f57b1d99..dadf805daaa5 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/shenyu-spring-boot-starter-plugin-alibaba-dubbo/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/shenyu-spring-boot-starter-plugin-alibaba-dubbo/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin-dubbo - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-alibaba-dubbo @@ -43,4 +43,4 @@ test - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/shenyu-spring-boot-starter-plugin-apache-dubbo/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/shenyu-spring-boot-starter-plugin-apache-dubbo/pom.xml index d8694d712fb6..f4498e97b49d 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/shenyu-spring-boot-starter-plugin-apache-dubbo/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/shenyu-spring-boot-starter-plugin-apache-dubbo/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin-dubbo - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-apache-dubbo @@ -43,4 +43,4 @@ test - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/shenyu-spring-boot-starter-plugin-dubbo-common/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/shenyu-spring-boot-starter-plugin-dubbo-common/pom.xml index 6ba72fd36959..eec1c244127f 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/shenyu-spring-boot-starter-plugin-dubbo-common/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-dubbo/shenyu-spring-boot-starter-plugin-dubbo-common/pom.xml @@ -20,11 +20,11 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin-dubbo - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-dubbo-common - + org.apache.shenyu @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-general-context/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-general-context/pom.xml index 9a6ceaa38eab..42867593f39c 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-general-context/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-general-context/pom.xml @@ -20,7 +20,7 @@ shenyu-spring-boot-starter-plugin org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -34,4 +34,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-global/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-global/pom.xml index e138a4ebbb64..17cd16614afa 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-global/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-global/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-global diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-grpc/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-grpc/pom.xml index 0a2dbce364f3..d5a540011947 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-grpc/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-grpc/pom.xml @@ -19,7 +19,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-grpc diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-httpclient/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-httpclient/pom.xml index 1d99c13df7db..49f8e53db893 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-httpclient/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-httpclient/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-httpclient @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-hystrix/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-hystrix/pom.xml index c64f163029c1..397ec117cf7d 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-hystrix/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-hystrix/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-hystrix @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-jwt/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-jwt/pom.xml index ffcc382985e9..83f619468414 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-jwt/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-jwt/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-jwt @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-key-auth/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-key-auth/pom.xml index 0f9d0c831617..b0dc496c424f 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-key-auth/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-key-auth/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-key-auth @@ -33,4 +33,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-aliyun-sls/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-aliyun-sls/pom.xml index 7ce9136f6e59..7d93ea452af7 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-aliyun-sls/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-aliyun-sls/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-clickhouse/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-clickhouse/pom.xml index b87e3d35a0a8..e16a8a0babb6 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-clickhouse/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-clickhouse/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-logging-clickhouse @@ -32,7 +32,7 @@ shenyu-plugin-logging-clickhouse ${project.version} - + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-console/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-console/pom.xml index dffe6836f5e0..4ab22e782698 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-console/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-console/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -33,4 +33,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-elasticsearch/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-elasticsearch/pom.xml index 6c372fb0cd0d..92f7b59b72b3 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-elasticsearch/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-elasticsearch/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -34,4 +34,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-huawei-lts/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-huawei-lts/pom.xml index 63a21d7053f2..a9f2cc6d0b65 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-huawei-lts/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-huawei-lts/pom.xml @@ -20,7 +20,7 @@ shenyu-spring-boot-starter-plugin org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -34,4 +34,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-kafka/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-kafka/pom.xml index 5d67938b103a..81d69804c9bf 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-kafka/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-kafka/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -34,4 +34,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-pulsar/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-pulsar/pom.xml index 75f7bbcfe808..cad99877e70a 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-pulsar/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-pulsar/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -33,5 +33,5 @@ ${project.version} - - \ No newline at end of file + + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-rabbitmq/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-rabbitmq/pom.xml index 68fa38c86a48..fee02c8cb5a2 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-rabbitmq/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-rabbitmq/pom.xml @@ -17,11 +17,11 @@ --> - + org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -35,4 +35,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-rocketmq/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-rocketmq/pom.xml index 918992c42eca..917d1a56837e 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-rocketmq/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-rocketmq/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -34,4 +34,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-tencent-cls/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-tencent-cls/pom.xml index 821ea36abf24..30c29a1a2b0a 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-tencent-cls/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-logging-tencent-cls/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-metrics/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-metrics/pom.xml index 7981fb5af84e..67d9eb60b2de 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-metrics/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-metrics/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-metrics @@ -33,4 +33,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-mock/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-mock/pom.xml index 833efc9e264f..d7fc5791234c 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-mock/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-mock/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-mock @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-modify-response/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-modify-response/pom.xml index 54e1b8fa784a..6ff4c16abbfd 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-modify-response/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-modify-response/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-modify-response @@ -33,4 +33,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-motan/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-motan/pom.xml index 9c104aa77b63..7cdae4536946 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-motan/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-motan/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-motan @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-mqtt/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-mqtt/pom.xml index 81408ed2ec36..ea49cabe98c9 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-mqtt/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-mqtt/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -34,4 +34,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-oauth2/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-oauth2/pom.xml index 5ee94797179d..8643fbfadf72 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-oauth2/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-oauth2/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-oauth2 @@ -39,4 +39,4 @@ true - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-param-mapping/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-param-mapping/pom.xml index 262914407b0c..4d7850dac980 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-param-mapping/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-param-mapping/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-param-mapping diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-ratelimiter/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-ratelimiter/pom.xml index a7474e8da2cf..680b58af033a 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-ratelimiter/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-ratelimiter/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-ratelimiter @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-redirect/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-redirect/pom.xml index a6dba9884a48..ed6832263057 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-redirect/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-redirect/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-redirect diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-request/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-request/pom.xml index f37ec15ceafe..8ceb8ea65a41 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-request/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-request/pom.xml @@ -20,7 +20,7 @@ shenyu-spring-boot-starter-plugin org.apache.shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-request @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-resilience4j/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-resilience4j/pom.xml index 6a4deddf489d..181a301d6e5f 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-resilience4j/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-resilience4j/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-resilience4j @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-response/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-response/pom.xml index c8e1be487b8c..e6d990f115c9 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-response/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-response/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-response @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-rewrite/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-rewrite/pom.xml index 2ab01e995c96..bc3e8d05e435 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-rewrite/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-rewrite/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-rewrite @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-sentinel/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-sentinel/pom.xml index 81320ddd2d22..4d76818aff5e 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-sentinel/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-sentinel/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-sentinel diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-sign/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-sign/pom.xml index 2ab194a105e2..e85e737c9196 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-sign/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-sign/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-sign @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-sofa/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-sofa/pom.xml index 334056ba6d1e..850cf5a22bb4 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-sofa/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-sofa/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-sofa @@ -37,4 +37,4 @@ test - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-springcloud/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-springcloud/pom.xml index b6f7e4dc3d50..e7eb645f4393 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-springcloud/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-springcloud/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-springcloud @@ -28,7 +28,7 @@ 3.1.2 - + org.apache.shenyu @@ -47,4 +47,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-tars/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-tars/pom.xml index df224d6242bb..ab4befa9bc5f 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-tars/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-tars/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-tars @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-tcp/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-tcp/pom.xml index 1acbeff0095f..906e304acf48 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-tcp/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-tcp/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-spring-boot-starter-plugin-tcp @@ -48,4 +48,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-transform/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-transform/pom.xml index 7e35c3a0522b..7514ad07a39c 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-transform/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-transform/pom.xml @@ -21,7 +21,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT shenyu-spring-boot-starter-plugin-transform @@ -33,4 +33,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-uri/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-uri/pom.xml index dab8b9fac133..a0909dc6f842 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-uri/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-uri/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-uri @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-waf/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-waf/pom.xml index 3cb5575af9c4..33c1bc370dfc 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-waf/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-waf/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-waf @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-websocket/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-websocket/pom.xml index 1fef5ade30ea..dde0203421cf 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-websocket/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-websocket/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-plugin - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-plugin-websocket @@ -33,4 +33,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-registry/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-registry/pom.xml index 5ae021f5c9f3..576989c239c5 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-registry/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-registry/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-registry @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sdk-feign/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sdk-feign/pom.xml index de6f9ba2762e..413956bdff87 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sdk-feign/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sdk-feign/pom.xml @@ -19,7 +19,7 @@ org.apache.shenyu shenyu-spring-boot-starter - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-sdk-feign @@ -31,4 +31,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sdk/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sdk/pom.xml index 52aa3489d790..a25d5fb19541 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sdk/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sdk/pom.xml @@ -19,7 +19,7 @@ org.apache.shenyu shenyu-spring-boot-starter - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-sdk @@ -47,4 +47,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/pom.xml index b577662b7e34..999939df3863 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-sync-data-center @@ -36,7 +36,7 @@ shenyu-spring-boot-starter-sync-data-apollo shenyu-spring-boot-starter-sync-data-polaris - + org.springframework @@ -44,4 +44,4 @@ test - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-apollo/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-apollo/pom.xml index 8d905480b862..87809f50fb0e 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-apollo/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-apollo/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -53,4 +53,4 @@ - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-consul/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-consul/pom.xml index 7a4c502b78b7..21c4a08ecaaf 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-consul/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-consul/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-sync-data-consul @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-etcd/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-etcd/pom.xml index 98a104e67889..10884dad770d 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-etcd/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-etcd/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -33,4 +33,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-http/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-http/pom.xml index 2978f1b7e7ae..a37596031e9e 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-http/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-http/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -44,4 +44,4 @@ test - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-nacos/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-nacos/pom.xml index 4a72a2087b28..5311ef08cd76 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-nacos/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-nacos/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -33,4 +33,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/pom.xml index a60ce4e571e5..46aa85664890 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 @@ -42,4 +42,4 @@ spring-boot-starter - \ No newline at end of file + diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-websocket/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-websocket/pom.xml index 5daa74ca9754..e79c95d07356 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-websocket/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-websocket/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-sync-data-websocket diff --git a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-zookeeper/pom.xml b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-zookeeper/pom.xml index c4f7e6cccae0..d858e1e7e79d 100644 --- a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-zookeeper/pom.xml +++ b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-zookeeper/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-spring-boot-starter-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-spring-boot-starter-sync-data-zookeeper @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-sync-data-center/pom.xml b/shenyu-sync-data-center/pom.xml index 409c0fa6adfb..de457dc00b38 100644 --- a/shenyu-sync-data-center/pom.xml +++ b/shenyu-sync-data-center/pom.xml @@ -20,12 +20,12 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sync-data-center pom - + shenyu-sync-data-api shenyu-sync-data-zookeeper diff --git a/shenyu-sync-data-center/shenyu-sync-data-api/pom.xml b/shenyu-sync-data-center/shenyu-sync-data-api/pom.xml index 6a8470f320e7..0cb0577b6dfc 100644 --- a/shenyu-sync-data-center/shenyu-sync-data-api/pom.xml +++ b/shenyu-sync-data-center/shenyu-sync-data-api/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sync-data-api @@ -32,4 +32,4 @@ ${project.version} - \ No newline at end of file + diff --git a/shenyu-sync-data-center/shenyu-sync-data-apollo/pom.xml b/shenyu-sync-data-center/shenyu-sync-data-apollo/pom.xml index c355359155e5..1855736b172f 100644 --- a/shenyu-sync-data-center/shenyu-sync-data-apollo/pom.xml +++ b/shenyu-sync-data-center/shenyu-sync-data-apollo/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sync-data-apollo @@ -37,4 +37,4 @@ - \ No newline at end of file + diff --git a/shenyu-sync-data-center/shenyu-sync-data-consul/pom.xml b/shenyu-sync-data-center/shenyu-sync-data-consul/pom.xml index 56de97861998..e9bb99294a9a 100644 --- a/shenyu-sync-data-center/shenyu-sync-data-consul/pom.xml +++ b/shenyu-sync-data-center/shenyu-sync-data-consul/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sync-data-consul @@ -44,4 +44,4 @@ - \ No newline at end of file + diff --git a/shenyu-sync-data-center/shenyu-sync-data-etcd/pom.xml b/shenyu-sync-data-center/shenyu-sync-data-etcd/pom.xml index 8af4d4d5244a..9ef3a45bfb1a 100644 --- a/shenyu-sync-data-center/shenyu-sync-data-etcd/pom.xml +++ b/shenyu-sync-data-center/shenyu-sync-data-etcd/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sync-data-etcd @@ -51,4 +51,4 @@ - \ No newline at end of file + diff --git a/shenyu-sync-data-center/shenyu-sync-data-http/pom.xml b/shenyu-sync-data-center/shenyu-sync-data-http/pom.xml index 673aff52a7bd..118ff2f29aed 100644 --- a/shenyu-sync-data-center/shenyu-sync-data-http/pom.xml +++ b/shenyu-sync-data-center/shenyu-sync-data-http/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sync-data-http diff --git a/shenyu-sync-data-center/shenyu-sync-data-nacos/pom.xml b/shenyu-sync-data-center/shenyu-sync-data-nacos/pom.xml index 3f52a74f4e41..3f7798a532f4 100644 --- a/shenyu-sync-data-center/shenyu-sync-data-nacos/pom.xml +++ b/shenyu-sync-data-center/shenyu-sync-data-nacos/pom.xml @@ -20,11 +20,11 @@ org.apache.shenyu shenyu-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sync-data-nacos - + org.apache.shenyu @@ -40,4 +40,4 @@ commons-collections4 - \ No newline at end of file + diff --git a/shenyu-sync-data-center/shenyu-sync-data-polaris/pom.xml b/shenyu-sync-data-center/shenyu-sync-data-polaris/pom.xml index e783fd44bc2b..1963740f3d7e 100644 --- a/shenyu-sync-data-center/shenyu-sync-data-polaris/pom.xml +++ b/shenyu-sync-data-center/shenyu-sync-data-polaris/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sync-data-polaris @@ -38,4 +38,4 @@ 1.13.0 - \ No newline at end of file + diff --git a/shenyu-sync-data-center/shenyu-sync-data-websocket/pom.xml b/shenyu-sync-data-center/shenyu-sync-data-websocket/pom.xml index 042299450456..8078363c9ceb 100644 --- a/shenyu-sync-data-center/shenyu-sync-data-websocket/pom.xml +++ b/shenyu-sync-data-center/shenyu-sync-data-websocket/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sync-data-websocket @@ -31,13 +31,13 @@ shenyu-sync-data-api ${project.version} - + org.java-websocket Java-WebSocket ${java-websocket.version} - + org.apache.commons commons-collections4 diff --git a/shenyu-sync-data-center/shenyu-sync-data-zookeeper/pom.xml b/shenyu-sync-data-center/shenyu-sync-data-zookeeper/pom.xml index d981c17591bd..3061f68554e9 100644 --- a/shenyu-sync-data-center/shenyu-sync-data-zookeeper/pom.xml +++ b/shenyu-sync-data-center/shenyu-sync-data-zookeeper/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu-sync-data-center - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-sync-data-zookeeper diff --git a/shenyu-web/pom.xml b/shenyu-web/pom.xml index 2178469134b7..bdd152b77fc4 100644 --- a/shenyu-web/pom.xml +++ b/shenyu-web/pom.xml @@ -20,7 +20,7 @@ org.apache.shenyu shenyu - 2.6.2-SNAPSHOT + 2.7.0-SNAPSHOT 4.0.0 shenyu-web