From 972f974e5379a15073e69f19a412ef1f5ede9ab9 Mon Sep 17 00:00:00 2001 From: Marco Date: Fri, 8 Jan 2016 16:51:06 +0100 Subject: [PATCH 1/8] Update API Jena from 2.x.x to 3.xx. Upgrade some part of the code. Warning need a full test. --- .idea/inspectionProfiles/Project_Default.xml | 19 + .../inspectionProfiles/profiles_settings.xml | 7 + ...jackson_core_jackson_annotations_2_3_0.xml | 13 + ...terxml_jackson_core_jackson_core_2_3_3.xml | 13 + ...ml_jackson_core_jackson_databind_2_3_3.xml | 13 + ...ub_andrewoma_dexx_dexx_collections_0_2.xml | 13 + ...m_github_jsonld_java_jsonld_java_0_7_0.xml | 13 + ...om_openlink_virtuoso_virtjdbc4_1_7_1_0.xml | 13 + .../Maven__commons_cli_commons_cli_1_3.xml | 13 + ...Maven__commons_codec_commons_codec_1_6.xml | 13 + .../Maven__commons_io_commons_io_2_4.xml | 13 + .idea/libraries/Maven__log4j_log4j_1_2_17.xml | 13 + ...en__org_apache_commons_commons_csv_1_0.xml | 13 + ...org_apache_commons_commons_lang3_3_3_2.xml | 13 + ...apache_httpcomponents_httpclient_4_2_6.xml | 13 + ..._httpcomponents_httpclient_cache_4_2_6.xml | 13 + ...g_apache_httpcomponents_httpcore_4_2_5.xml | 13 + .../Maven__org_apache_jena_jena_arq_3_0_1.xml | 13 + ...Maven__org_apache_jena_jena_base_3_0_1.xml | 13 + ...Maven__org_apache_jena_jena_core_3_0_1.xml | 13 + .../Maven__org_apache_jena_jena_iri_3_0_1.xml | 13 + ...rg_apache_jena_jena_shaded_guava_3_0_1.xml | 13 + ...ven__org_apache_thrift_libthrift_0_9_2.xml | 13 + ...Maven__org_slf4j_jcl_over_slf4j_1_7_12.xml | 13 + .../Maven__org_slf4j_slf4j_api_1_7_13.xml | 13 + .../Maven__org_slf4j_slf4j_log4j12_1_7_12.xml | 13 + .../Maven__virtuoso_virtjdbc_4_1.xml | 13 + .../Maven__xerces_xercesImpl_2_11_0.xml | 13 + .../Maven__xml_apis_xml_apis_1_4_01.xml | 13 + .idea/uiDesigner.xml | 124 ++ .idea/vcs.xml | 6 + .../virtjdbc4/4.0/_maven.repositories | 4 - lib/virtuoso/virtjdbc4/4.0/virtjdbc4-4.0.jar | Bin 209842 -> 0 bytes lib/virtuoso/virtjdbc4/4.0/virtjdbc4-4.0.pom | 9 - .../virtjdbc4/maven-metadata-local.xml | 12 - pom.xml | 55 +- .../java/virtuoso/jena/driver/Version.java | 16 +- .../jena/driver/VirtBulkUpdateHandler.java | 175 +- .../virtuoso/jena/driver/VirtDataSource.java | 854 ++++---- .../java/virtuoso/jena/driver/VirtGraph.java | 1720 ++++++++--------- .../virtuoso/jena/driver/VirtInfGraph.java | 440 +++-- .../java/virtuoso/jena/driver/VirtModel.java | 95 +- .../jena/driver/VirtPrefixMapping.java | 188 +- .../virtuoso/jena/driver/VirtResSetIter.java | 252 +-- .../jena/driver/VirtTransactionHandler.java | 149 +- .../virtuoso/jena/driver/VirtUtilities.java | 307 +++ .../jena/driver/VirtuosoQueryEngine.java | 603 +++--- .../jena/driver/VirtuosoQueryExecution.java | 834 ++++---- .../driver/VirtuosoQueryExecutionFactory.java | 371 ++-- .../jena/driver/VirtuosoUpdateFactory.java | 83 +- .../jena/driver/VirtuosoUpdateRequest.java | 138 +- 51 files changed, 3852 insertions(+), 2960 deletions(-) create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_3_0.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_3_3.xml create mode 100644 .idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_3_3.xml create mode 100644 .idea/libraries/Maven__com_github_andrewoma_dexx_dexx_collections_0_2.xml create mode 100644 .idea/libraries/Maven__com_github_jsonld_java_jsonld_java_0_7_0.xml create mode 100644 .idea/libraries/Maven__com_openlink_virtuoso_virtjdbc4_1_7_1_0.xml create mode 100644 .idea/libraries/Maven__commons_cli_commons_cli_1_3.xml create mode 100644 .idea/libraries/Maven__commons_codec_commons_codec_1_6.xml create mode 100644 .idea/libraries/Maven__commons_io_commons_io_2_4.xml create mode 100644 .idea/libraries/Maven__log4j_log4j_1_2_17.xml create mode 100644 .idea/libraries/Maven__org_apache_commons_commons_csv_1_0.xml create mode 100644 .idea/libraries/Maven__org_apache_commons_commons_lang3_3_3_2.xml create mode 100644 .idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_2_6.xml create mode 100644 .idea/libraries/Maven__org_apache_httpcomponents_httpclient_cache_4_2_6.xml create mode 100644 .idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_2_5.xml create mode 100644 .idea/libraries/Maven__org_apache_jena_jena_arq_3_0_1.xml create mode 100644 .idea/libraries/Maven__org_apache_jena_jena_base_3_0_1.xml create mode 100644 .idea/libraries/Maven__org_apache_jena_jena_core_3_0_1.xml create mode 100644 .idea/libraries/Maven__org_apache_jena_jena_iri_3_0_1.xml create mode 100644 .idea/libraries/Maven__org_apache_jena_jena_shaded_guava_3_0_1.xml create mode 100644 .idea/libraries/Maven__org_apache_thrift_libthrift_0_9_2.xml create mode 100644 .idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_12.xml create mode 100644 .idea/libraries/Maven__org_slf4j_slf4j_api_1_7_13.xml create mode 100644 .idea/libraries/Maven__org_slf4j_slf4j_log4j12_1_7_12.xml create mode 100644 .idea/libraries/Maven__virtuoso_virtjdbc_4_1.xml create mode 100644 .idea/libraries/Maven__xerces_xercesImpl_2_11_0.xml create mode 100644 .idea/libraries/Maven__xml_apis_xml_apis_1_4_01.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml delete mode 100644 lib/virtuoso/virtjdbc4/4.0/_maven.repositories delete mode 100644 lib/virtuoso/virtjdbc4/4.0/virtjdbc4-4.0.jar delete mode 100644 lib/virtuoso/virtjdbc4/4.0/virtjdbc4-4.0.pom delete mode 100644 lib/virtuoso/virtjdbc4/maven-metadata-local.xml create mode 100644 src/main/java/virtuoso/jena/driver/VirtUtilities.java diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..1e712f9 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,19 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..3b31283 --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_3_0.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_3_0.xml new file mode 100644 index 0000000..e90bc9c --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_3_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_3_3.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_3_3.xml new file mode 100644 index 0000000..87b1692 --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_3_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_3_3.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_3_3.xml new file mode 100644 index 0000000..4d18ceb --- /dev/null +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_3_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_github_andrewoma_dexx_dexx_collections_0_2.xml b/.idea/libraries/Maven__com_github_andrewoma_dexx_dexx_collections_0_2.xml new file mode 100644 index 0000000..04210c5 --- /dev/null +++ b/.idea/libraries/Maven__com_github_andrewoma_dexx_dexx_collections_0_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_github_jsonld_java_jsonld_java_0_7_0.xml b/.idea/libraries/Maven__com_github_jsonld_java_jsonld_java_0_7_0.xml new file mode 100644 index 0000000..151a99f --- /dev/null +++ b/.idea/libraries/Maven__com_github_jsonld_java_jsonld_java_0_7_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_openlink_virtuoso_virtjdbc4_1_7_1_0.xml b/.idea/libraries/Maven__com_openlink_virtuoso_virtjdbc4_1_7_1_0.xml new file mode 100644 index 0000000..6df5cf8 --- /dev/null +++ b/.idea/libraries/Maven__com_openlink_virtuoso_virtjdbc4_1_7_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_cli_commons_cli_1_3.xml b/.idea/libraries/Maven__commons_cli_commons_cli_1_3.xml new file mode 100644 index 0000000..49e7d40 --- /dev/null +++ b/.idea/libraries/Maven__commons_cli_commons_cli_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_codec_commons_codec_1_6.xml b/.idea/libraries/Maven__commons_codec_commons_codec_1_6.xml new file mode 100644 index 0000000..e8a6a9f --- /dev/null +++ b/.idea/libraries/Maven__commons_codec_commons_codec_1_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_io_commons_io_2_4.xml b/.idea/libraries/Maven__commons_io_commons_io_2_4.xml new file mode 100644 index 0000000..bc2aad0 --- /dev/null +++ b/.idea/libraries/Maven__commons_io_commons_io_2_4.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__log4j_log4j_1_2_17.xml b/.idea/libraries/Maven__log4j_log4j_1_2_17.xml new file mode 100644 index 0000000..e383c1b --- /dev/null +++ b/.idea/libraries/Maven__log4j_log4j_1_2_17.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_commons_commons_csv_1_0.xml b/.idea/libraries/Maven__org_apache_commons_commons_csv_1_0.xml new file mode 100644 index 0000000..bce492c --- /dev/null +++ b/.idea/libraries/Maven__org_apache_commons_commons_csv_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_3_2.xml b/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_3_2.xml new file mode 100644 index 0000000..83cba3e --- /dev/null +++ b/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_3_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_2_6.xml b/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_2_6.xml new file mode 100644 index 0000000..d869964 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_2_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_cache_4_2_6.xml b/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_cache_4_2_6.xml new file mode 100644 index 0000000..9b8a172 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_cache_4_2_6.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_2_5.xml b/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_2_5.xml new file mode 100644 index 0000000..fb94228 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_2_5.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_jena_jena_arq_3_0_1.xml b/.idea/libraries/Maven__org_apache_jena_jena_arq_3_0_1.xml new file mode 100644 index 0000000..3cac16a --- /dev/null +++ b/.idea/libraries/Maven__org_apache_jena_jena_arq_3_0_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_jena_jena_base_3_0_1.xml b/.idea/libraries/Maven__org_apache_jena_jena_base_3_0_1.xml new file mode 100644 index 0000000..14cdff7 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_jena_jena_base_3_0_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_jena_jena_core_3_0_1.xml b/.idea/libraries/Maven__org_apache_jena_jena_core_3_0_1.xml new file mode 100644 index 0000000..9a3afaa --- /dev/null +++ b/.idea/libraries/Maven__org_apache_jena_jena_core_3_0_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_jena_jena_iri_3_0_1.xml b/.idea/libraries/Maven__org_apache_jena_jena_iri_3_0_1.xml new file mode 100644 index 0000000..48bd070 --- /dev/null +++ b/.idea/libraries/Maven__org_apache_jena_jena_iri_3_0_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_jena_jena_shaded_guava_3_0_1.xml b/.idea/libraries/Maven__org_apache_jena_jena_shaded_guava_3_0_1.xml new file mode 100644 index 0000000..b476c7b --- /dev/null +++ b/.idea/libraries/Maven__org_apache_jena_jena_shaded_guava_3_0_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_thrift_libthrift_0_9_2.xml b/.idea/libraries/Maven__org_apache_thrift_libthrift_0_9_2.xml new file mode 100644 index 0000000..ac1ee5b --- /dev/null +++ b/.idea/libraries/Maven__org_apache_thrift_libthrift_0_9_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_12.xml b/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_12.xml new file mode 100644 index 0000000..5aeb229 --- /dev/null +++ b/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_13.xml b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_13.xml new file mode 100644 index 0000000..4fd913d --- /dev/null +++ b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_13.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_slf4j_log4j12_1_7_12.xml b/.idea/libraries/Maven__org_slf4j_slf4j_log4j12_1_7_12.xml new file mode 100644 index 0000000..855bb31 --- /dev/null +++ b/.idea/libraries/Maven__org_slf4j_slf4j_log4j12_1_7_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__virtuoso_virtjdbc_4_1.xml b/.idea/libraries/Maven__virtuoso_virtjdbc_4_1.xml new file mode 100644 index 0000000..c728eed --- /dev/null +++ b/.idea/libraries/Maven__virtuoso_virtjdbc_4_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__xerces_xercesImpl_2_11_0.xml b/.idea/libraries/Maven__xerces_xercesImpl_2_11_0.xml new file mode 100644 index 0000000..285d5e8 --- /dev/null +++ b/.idea/libraries/Maven__xerces_xercesImpl_2_11_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__xml_apis_xml_apis_1_4_01.xml b/.idea/libraries/Maven__xml_apis_xml_apis_1_4_01.xml new file mode 100644 index 0000000..9aadd29 --- /dev/null +++ b/.idea/libraries/Maven__xml_apis_xml_apis_1_4_01.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/lib/virtuoso/virtjdbc4/4.0/_maven.repositories b/lib/virtuoso/virtjdbc4/4.0/_maven.repositories deleted file mode 100644 index 5c7d78e..0000000 --- a/lib/virtuoso/virtjdbc4/4.0/_maven.repositories +++ /dev/null @@ -1,4 +0,0 @@ -#NOTE: This is an internal implementation file, its format can be changed without prior notice. -#Wed Jan 30 11:17:50 EET 2013 -virtjdbc3-3.0.jar>= -virtjdbc3-3.0.pom>= diff --git a/lib/virtuoso/virtjdbc4/4.0/virtjdbc4-4.0.jar b/lib/virtuoso/virtjdbc4/4.0/virtjdbc4-4.0.jar deleted file mode 100644 index 2663a6e7e3be3d3be982b0a498639b85deaab395..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209842 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 ygjYa;%PmDr8hA453 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 diff --git a/lib/virtuoso/virtjdbc4/4.0/virtjdbc4-4.0.pom b/lib/virtuoso/virtjdbc4/4.0/virtjdbc4-4.0.pom deleted file mode 100644 index d427d19..0000000 --- a/lib/virtuoso/virtjdbc4/4.0/virtjdbc4-4.0.pom +++ /dev/null @@ -1,9 +0,0 @@ - - - 4.0.0 - virtuoso - virtjdbc4 - 4.0 - POM was created from install:install-file - diff --git a/lib/virtuoso/virtjdbc4/maven-metadata-local.xml b/lib/virtuoso/virtjdbc4/maven-metadata-local.xml deleted file mode 100644 index 7c3f651..0000000 --- a/lib/virtuoso/virtjdbc4/maven-metadata-local.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - virtuoso - virtjdbc4 - - 4.0 - - 4.0 - - 20130130091750 - - diff --git a/pom.xml b/pom.xml index 5c7a351..e9dfb63 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ tr.com.srdc virt-jena - 2.6.2-srdc + 3.0.1-srdc jar Virtuoso Jena Wrapper - SRDC updates with org.apache.jena @@ -13,20 +13,31 @@ - - virtuoso - virtjdbc4 - 4.0 + + virtuoso + virtjdbc + jar + 4.1 + + + com.openlink.virtuoso + virtjdbc4-1 + 7.1.0 org.apache.jena jena-core - 2.10.0 + 3.0.1 org.apache.jena jena-arq - 2.10.0 + 3.0.1 + + + org.slf4j + slf4j-api + 1.7.13 @@ -55,11 +66,39 @@ + - in-project-virtjdbc + + always + + + always + + in-project-virtjdbc In Project Repo for VirtJDBC file://${project.basedir}/lib + + + + maven.aksw.internal + University Leipzig, AKSW Maven2 Repository + http://maven.aksw.org/archiva/repository/internal + + + maven.aksw.snapshots + University Leipzig, AKSW Maven2 Repository + http://maven.aksw.org/archiva/repository/snapshots + diff --git a/src/main/java/virtuoso/jena/driver/Version.java b/src/main/java/virtuoso/jena/driver/Version.java index 3e1b518..83b6207 100644 --- a/src/main/java/virtuoso/jena/driver/Version.java +++ b/src/main/java/virtuoso/jena/driver/Version.java @@ -25,15 +25,15 @@ public class Version { - protected static final String DRV_VER = "2.6.2"; + protected static final String DRV_VER = "3.0.1"; - // The major and minor version number - protected static final String build_id = "1.6"; + // The major and minor version number + protected static final String build_id = "1.7"; - public static void main(String args[]) { - System.out - .println("OpenLink Virtuoso(TM) Provider for Jena(TM) Version " - + DRV_VER + " [Build " + build_id + "]"); - } + public static void main(String args[]) { + System.out + .println("OpenLink Virtuoso(TM) Provider for Jena(TM) Version " + + DRV_VER + " [Build " + build_id + "]"); + } } diff --git a/src/main/java/virtuoso/jena/driver/VirtBulkUpdateHandler.java b/src/main/java/virtuoso/jena/driver/VirtBulkUpdateHandler.java index 8adcb10..3847b39 100644 --- a/src/main/java/virtuoso/jena/driver/VirtBulkUpdateHandler.java +++ b/src/main/java/virtuoso/jena/driver/VirtBulkUpdateHandler.java @@ -22,97 +22,96 @@ */ package virtuoso.jena.driver; +import org.apache.jena.graph.*; +import org.apache.jena.graph.impl.GraphBase; +import org.apache.jena.util.iterator.ExtendedIterator; + import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; -import com.hp.hpl.jena.graph.GraphEvents; -import com.hp.hpl.jena.graph.Node; -import com.hp.hpl.jena.graph.Triple; -import com.hp.hpl.jena.graph.impl.SimpleBulkUpdateHandler; -import com.hp.hpl.jena.shared.JenaException; - -public class VirtBulkUpdateHandler extends SimpleBulkUpdateHandler { - - public VirtBulkUpdateHandler(VirtGraph parent) { - super(parent); - } - - // --java5 or newer @Override - public void add(Triple[] triples) { - addIterator(Arrays.asList(triples).iterator(), false); - manager.notifyAddArray(graph, triples); - } - - // --java5 or newer @Override - protected void add(List triples, boolean notify) { - addIterator(triples.iterator(), false); - if (notify) - manager.notifyAddList(graph, triples); - } - - // --java5 or newer @Override - public void addIterator(Iterator it, boolean notify) { - VirtGraph _graph = (VirtGraph) this.graph; - List list = notify ? new ArrayList() : null; - - try { - boolean autoCommit = _graph.getConnection().getAutoCommit(); - if (autoCommit) - _graph.getConnection().setAutoCommit(false); - _graph.add(it, list); - if (autoCommit) { - _graph.getConnection().commit(); - _graph.getConnection().setAutoCommit(true); - } - } catch (Exception e) { - throw new JenaException("Couldn't create transaction:" + e); - } - if (notify) - manager.notifyAddIterator(graph, list); - } - - public void delete(Triple[] triples) { - deleteIterator(Arrays.asList(triples).iterator(), false); - manager.notifyDeleteArray(graph, triples); - } - - protected void delete(List triples, boolean notify) { - deleteIterator(triples.iterator(), false); - if (notify) - manager.notifyDeleteList(graph, triples); - } - - public void deleteIterator(Iterator it, boolean notify) { - VirtGraph _graph = (VirtGraph) this.graph; - List list = notify ? new ArrayList() : null; - - try { - boolean autoCommit = _graph.getConnection().getAutoCommit(); - if (autoCommit) - _graph.getConnection().setAutoCommit(false); - _graph.delete(it, list); - if (autoCommit) { - _graph.getConnection().commit(); - _graph.getConnection().setAutoCommit(true); - } - } catch (Exception e) { - throw new JenaException("Couldn't create transaction:" + e); - } - if (notify) - manager.notifyDeleteIterator(graph, list); - } - - public void removeAll() { - VirtGraph _graph = (VirtGraph) this.graph; - _graph.clearGraph(_graph.getGraphName()); - notifyRemoveAll(); - } - - public void remove(Node s, Node p, Node o) { - VirtGraph _graph = (VirtGraph) this.graph; - _graph.delete_match(Triple.createMatch(s, p, o)); - manager.notifyEvent(graph, GraphEvents.remove(s, p, o)); - } +/** + * @deprecated from jena 3.X.X use instead {@link VirtGraph} + */ +public class VirtBulkUpdateHandler extends GraphBase { + + private static final org.slf4j.Logger logger = + org.slf4j.LoggerFactory.getLogger(VirtBulkUpdateHandler.class); + + private final Graph graph; + + public VirtBulkUpdateHandler(VirtGraph parent) { + super(); + graph = parent; + } + + // --java5 or newer @Override + public void add(Triple[] triples) { + addIterator(Arrays.asList(triples).iterator(), false); + gem.notifyAddArray(graph, triples); + } + + // --java5 or newer @Override + protected void add(List triples, boolean notify) { + addIterator(triples.iterator(), false); + if (notify) + gem.notifyAddList(graph, triples); + } + + // --java5 or newer @Override + public void addIterator(Iterator it, boolean notify) { + VirtGraph _graph = (VirtGraph) this.graph; + List list; + if (notify) list = new ArrayList<>(); + else list = null; + + _graph = _graph.prepareGraphConnection(_graph, it, list); + + if (notify) + gem.notifyAddIterator(_graph, list); + } + + public void delete(Triple[] triples) { + deleteIterator(Arrays.asList(triples).iterator(), false); + gem.notifyDeleteArray(graph, triples); + } + + protected void delete(List triples, boolean notify) { + deleteIterator(triples.iterator(), false); + if (notify) + gem.notifyDeleteList(graph, triples); + } + + public void deleteIterator(Iterator it, boolean notify) { + VirtGraph _graph = (VirtGraph) this.graph; + List list; + if (notify) list = new ArrayList<>(); + else list = null; + + _graph = _graph.prepareGraphConnection(_graph, it, list); + + if (notify) + gem.notifyDeleteIterator(_graph, list); + } + + public void removeAll() { + VirtGraph _graph = (VirtGraph) this.graph; + _graph.clearGraph(_graph.getGraphName()); + } + + @Override + public void remove(Node s, Node p, Node o) { + VirtGraph _graph = (VirtGraph) this.graph; + _graph.delete_match(Triple.createMatch(s, p, o)); + gem.notifyEvent(_graph, GraphEvents.remove(s, p, o)); + } + + @Override + protected ExtendedIterator graphBaseFind(Triple triplePattern) { + return super.graphBaseFind( + triplePattern.getMatchSubject(), triplePattern.getMatchPredicate(), triplePattern.getMatchObject()); + } + + } diff --git a/src/main/java/virtuoso/jena/driver/VirtDataSource.java b/src/main/java/virtuoso/jena/driver/VirtDataSource.java index 93da8e2..9b609bb 100644 --- a/src/main/java/virtuoso/jena/driver/VirtDataSource.java +++ b/src/main/java/virtuoso/jena/driver/VirtDataSource.java @@ -23,398 +23,490 @@ package virtuoso.jena.driver; import java.sql.ResultSet; +import java.sql.SQLException; import java.util.Iterator; import java.util.LinkedList; import java.util.List; +import org.apache.jena.graph.Graph; +import org.apache.jena.graph.Node; +import org.apache.jena.graph.NodeFactory; +import org.apache.jena.graph.Triple; +import org.apache.jena.query.Dataset; +import org.apache.jena.query.LabelExistsException; +import org.apache.jena.query.ReadWrite; +import org.apache.jena.rdf.model.Model; +import org.apache.jena.shared.JenaException; +import org.apache.jena.shared.Lock; +import org.apache.jena.shared.LockNone; +import org.apache.jena.sparql.core.DatasetGraph; +import org.apache.jena.sparql.core.Quad; +import org.apache.jena.sparql.util.Context; import virtuoso.jdbc4.VirtuosoDataSource; -import com.hp.hpl.jena.graph.Graph; -import com.hp.hpl.jena.graph.Node; -import com.hp.hpl.jena.graph.Triple; -import com.hp.hpl.jena.query.Dataset; -import com.hp.hpl.jena.query.LabelExistsException; -import com.hp.hpl.jena.query.ReadWrite; -import com.hp.hpl.jena.rdf.model.Model; -import com.hp.hpl.jena.shared.JenaException; -import com.hp.hpl.jena.shared.Lock; -import com.hp.hpl.jena.sparql.core.DatasetGraph; -import com.hp.hpl.jena.sparql.core.Quad; -import com.hp.hpl.jena.sparql.util.Context; - public class VirtDataSource extends VirtGraph implements Dataset { - /** - * Default model - may be null - according to Javadoc - */ - Model defaultModel = null; - - public VirtDataSource() { - super(); - } - - public VirtDataSource(String _graphName, VirtuosoDataSource _ds) { - super(_graphName, _ds); - } - - protected VirtDataSource(VirtGraph g) { - this.graphName = g.getGraphName(); - setReadFromAllGraphs(g.getReadFromAllGraphs()); - this.url_hostlist = g.getGraphUrl(); - this.user = g.getGraphUser(); - this.password = g.getGraphPassword(); - this.roundrobin = g.roundrobin; - setFetchSize(g.getFetchSize()); - this.connection = g.getConnection(); - } - - public VirtDataSource(String url_hostlist, String user, String password) { - super(url_hostlist, user, password); - } - - /** Set the background graph. Can be set to null for none. */ - public void setDefaultModel(Model model) { - if (!(model instanceof VirtDataSource)) - throw new IllegalArgumentException( - "VirtDataSource supports only VirtModel as default model"); - defaultModel = model; - } - - /** Set a named graph. */ - public void addNamedModel(String name, Model model) - throws LabelExistsException { - String query = "select count(*) from (sparql select * where { graph `iri(??)` { ?s ?p ?o }})f"; - ResultSet rs = null; - int ret = 0; - - checkOpen(); - try { - java.sql.PreparedStatement ps = prepareStatement(query); - ps.setString(1, name); - rs = ps.executeQuery(); - if (rs.next()) - ret = rs.getInt(1); - rs.close(); - ps.close(); - } catch (Exception e) { - throw new JenaException(e); - } - - try { - if (ret != 0) - throw new LabelExistsException("A model with ID '" + name - + "' already exists."); - Graph g = model.getGraph(); - int count = 0; - java.sql.PreparedStatement ps = prepareStatement(sinsert); - - for (Iterator i = g.find(Node.ANY, Node.ANY, Node.ANY); i.hasNext();) { - Triple t = (Triple) i.next(); - - ps.setString(1, name); - bindSubject(ps, 2, t.getSubject()); - bindPredicate(ps, 3, t.getPredicate()); - bindObject(ps, 4, t.getObject()); - ps.addBatch(); - count++; - if (count > BATCH_SIZE) { - ps.executeBatch(); - ps.clearBatch(); - count = 0; - } - } - if (count > 0) { - ps.executeBatch(); - ps.clearBatch(); - } - ps.close(); - } catch (Exception e) { - throw new JenaException(e); - } - } - - /** Remove a named graph. */ - public void removeNamedModel(String name) { - String exec_text = "sparql clear graph <" + name + ">"; - - checkOpen(); - try { - java.sql.Statement stmt = createStatement(); - stmt.executeQuery(exec_text); - stmt.close(); - } catch (Exception e) { - throw new JenaException(e); - } - } - - /** Change a named graph for another uisng the same name */ - public void replaceNamedModel(String name, Model model) { - try { - getConnection().setAutoCommit(false); - removeNamedModel(name); - addNamedModel(name, model); - getConnection().commit(); - getConnection().setAutoCommit(true); - } catch (Exception e) { - try { - getConnection().rollback(); - } catch (Exception e2) { - throw new JenaException( - "Could not replace model, and could not rollback!", e2); - } - throw new JenaException("Could not replace model:", e); - } - } - - /** Get the default graph as a Jena Model */ - public Model getDefaultModel() { - return defaultModel; - } - - /** Get a graph by name as a Jena Model */ - public Model getNamedModel(String name) { - try { - VirtuosoDataSource _ds = getDataSource(); - if (_ds != null) - return new VirtModel(new VirtGraph(name, _ds)); - else - return new VirtModel(new VirtGraph(name, this.getGraphUrl(), - this.getGraphUser(), this.getGraphPassword())); - } catch (Exception e) { - throw new JenaException(e); - } - } - - /** Does the dataset contain a model with the name supplied? */ - public boolean containsNamedModel(String name) { - String query = "select count(*) from (sparql select * where { graph `iri(??)` { ?s ?p ?o }})f"; - ResultSet rs = null; - int ret = 0; - - checkOpen(); - try { - java.sql.PreparedStatement ps = prepareStatement(query); - ps.setString(1, name); - rs = ps.executeQuery(); - if (rs.next()) - ret = rs.getInt(1); - rs.close(); - ps.close(); - } catch (Exception e) { - throw new JenaException(e); - } - return (ret != 0); - } - - /** List the names */ - public Iterator listNames() { - String exec_text = "DB.DBA.SPARQL_SELECT_KNOWN_GRAPHS()"; - ResultSet rs = null; - int ret = 0; - - checkOpen(); - try { - List names = new LinkedList(); - - java.sql.Statement stmt = createStatement(); - rs = stmt.executeQuery(exec_text); - while (rs.next()) - names.add(rs.getString(1)); - rs.close(); - stmt.close(); - return names.iterator(); - } catch (Exception e) { - throw new JenaException(e); - } - } - - Lock lock = null; - - /** Get the lock for this dataset */ - public Lock getLock() { - if (lock == null) - lock = new com.hp.hpl.jena.shared.LockNone(); - return lock; - } - - /** Get the dataset in graph form */ - public DatasetGraph asDatasetGraph() { - return new VirtDataSetGraph(this); - } - - public class VirtDataSetGraph implements DatasetGraph { - - VirtDataSource vd = null; - - public VirtDataSetGraph(VirtDataSource vds) { - vd = vds; - } - - public Graph getDefaultGraph() { - return vd; - } - - public Graph getGraph(Node graphNode) { - try { - return new VirtGraph(graphNode.toString(), vd.getGraphUrl(), - vd.getGraphUser(), vd.getGraphPassword()); - } catch (Exception e) { - throw new JenaException(e); - } - } - - public boolean containsGraph(Node graphNode) { - return containsNamedModel(graphNode.toString()); - } - - public Iterator listGraphNodes() { - String exec_text = "DB.DBA.SPARQL_SELECT_KNOWN_GRAPHS()"; - ResultSet rs = null; - int ret = 0; - - vd.checkOpen(); - try { - List names = new LinkedList(); - - java.sql.Statement stmt = vd.createStatement(); - rs = stmt.executeQuery(exec_text); - while (rs.next()) - names.add(Node.createURI(rs.getString(1))); - rs.close(); - stmt.close(); - return names.iterator(); - } catch (Exception e) { - throw new JenaException(e); - } - } - - public Lock getLock() { - return vd.getLock(); - } - - public long size() { - return vd.size(); - } - - public void close() { - vd.close(); - } - - public void add(Quad arg0) { - // TODO Auto-generated method stub - - } - - public void add(Node arg0, Node arg1, Node arg2, Node arg3) { - // TODO Auto-generated method stub - - } - - public void addGraph(Node arg0, Graph arg1) { - // TODO Auto-generated method stub - - } - - public boolean contains(Quad arg0) { - // TODO Auto-generated method stub - return false; - } - - public boolean contains(Node arg0, Node arg1, Node arg2, Node arg3) { - // TODO Auto-generated method stub - return false; - } - - public void delete(Quad arg0) { - // TODO Auto-generated method stub - - } - - public void delete(Node arg0, Node arg1, Node arg2, Node arg3) { - // TODO Auto-generated method stub - - } - - public void deleteAny(Node arg0, Node arg1, Node arg2, Node arg3) { - // TODO Auto-generated method stub - - } - - public Iterator find() { - // TODO Auto-generated method stub - return null; - } - - public Iterator find(Quad arg0) { - // TODO Auto-generated method stub - return null; - } - - public Iterator find(Node arg0, Node arg1, Node arg2, Node arg3) { - // TODO Auto-generated method stub - return null; - } - - public Iterator findNG(Node arg0, Node arg1, Node arg2, Node arg3) { - // TODO Auto-generated method stub - return null; - } - - public Context getContext() { - // TODO Auto-generated method stub - return null; - } - - public boolean isEmpty() { - // TODO Auto-generated method stub - return false; - } - - public void removeGraph(Node arg0) { - // TODO Auto-generated method stub - - } - - public void setDefaultGraph(Graph arg0) { - // TODO Auto-generated method stub - - } - - } - - public void abort() { - // TODO Auto-generated method stub - - } - - public void begin(ReadWrite arg0) { - // TODO Auto-generated method stub - - } - - public void commit() { - // TODO Auto-generated method stub - - } - - public void end() { - // TODO Auto-generated method stub + private static final org.slf4j.Logger logger = + org.slf4j.LoggerFactory.getLogger(VirtDataSource.class); + + /** + * Default model - may be null - according to Javadoc + */ + Model defaultModel = null; + Lock lock = null; + + public VirtDataSource() { + super(); + } + + public VirtDataSource(String _graphName, VirtuosoDataSource _ds) { + super(_graphName, _ds); + } + + protected VirtDataSource(VirtGraph g) { + this.graphName = g.getGraphName(); + setReadFromAllGraphs(g.getReadFromAllGraphs()); + this.url_hostlist = g.getGraphUrl(); + this.user = g.getGraphUser(); + this.password = g.getGraphPassword(); + this.roundrobin = g.roundrobin; + setFetchSize(g.getFetchSize()); + this.connection = g.getConnection(); + } + + public VirtDataSource(String url_hostlist, String user, String password) { + super(url_hostlist, user, password); + } + + /** + * Set a named graph. + * + * @param name the {@link String} + * @param model the {@link Model} + */ + @Override + public void addNamedModel(String name, Model model) + throws LabelExistsException { + String query = "select count(*) from (sparql select * where { graph `iri(??)` { ?s ?p ?o }})f"; + ResultSet rs; + int ret = 0; + + checkOpen(); + try { + try (java.sql.PreparedStatement ps = createPreparedStatement(query)) { + ps.setString(1, name); + rs = ps.executeQuery(); + if (rs.next()) + ret = rs.getInt(1); + rs.close(); + } + } catch (Exception e) { + throw new JenaException(e); + } + + try { + if (ret != 0) + throw new LabelExistsException("A model with ID '" + name + + "' already exists."); + Graph g = model.getGraph(); + int count = 0; + try (java.sql.PreparedStatement ps = createPreparedStatement(sinsert)) { + for (Iterator i = g.find(Node.ANY, Node.ANY, Node.ANY); i.hasNext(); ) { + Triple t = (Triple) i.next(); + + ps.setString(1, name); + bindSubject(ps, 2, t.getSubject()); + bindPredicate(ps, 3, t.getPredicate()); + bindObject(ps, 4, t.getObject()); + ps.addBatch(); + count++; + if (count > BATCH_SIZE) { + ps.executeBatch(); + ps.clearBatch(); + count = 0; + } + } + if (count > 0) { + ps.executeBatch(); + ps.clearBatch(); + } + } + } catch (LabelExistsException | SQLException e) { + throw new JenaException(e); + } + } + + /** + * Remove a named graph. + * + * @param name the {@link String} + */ + @Override + public void removeNamedModel(String name) { + String exec_text = "sparql clear graph <" + name + ">"; + + checkOpen(); + try { + try (java.sql.Statement stmt = createStatement()) { + stmt.executeQuery(exec_text); + } + } catch (Exception e) { + throw new JenaException(e); + } + } + + /** + * Change a named graph for another uisng the same name + * + * @param name the {@link String} + * @param model the {@link Model} + */ + @Override + public void replaceNamedModel(String name, Model model) { + try { + getConnection().setAutoCommit(false); + removeNamedModel(name); + addNamedModel(name, model); + getConnection().commit(); + getConnection().setAutoCommit(true); + } catch (SQLException | LabelExistsException e) { + try { + getConnection().rollback(); + } catch (Exception e2) { + throw new JenaException( + "Could not replace model, and could not rollback!", e2); + } + throw new JenaException("Could not replace model:", e); + } + } + + /** + * Get the default graph as a Jena Model + * + * @return the {òlink Model} + */ + @Override + public Model getDefaultModel() { + return defaultModel; + } + + /** + * Set the background graph. Can be set to null for none. + * + * @param model the {@link Model} + */ + @Override + public void setDefaultModel(Model model) { + if (!(model instanceof VirtDataSource)) + throw new IllegalArgumentException( + "VirtDataSource supports only VirtModel as default model"); + defaultModel = model; + } + + /** + * Get a graph by name as a Jena Model + * + * @param name the {@link String} + * @return the {@link Model} + */ + @Override + public Model getNamedModel(String name) { + try { + VirtuosoDataSource _ds = getDataSource(); + if (_ds != null) + return new VirtModel(new VirtGraph(name, _ds)); + else + return new VirtModel(new VirtGraph(name, this.getGraphUrl(), + this.getGraphUser(), this.getGraphPassword())); + } catch (Exception e) { + throw new JenaException(e); + } + } + + /** + * Does the dataset contain a model with the name supplied? + * + * @param name the {@link String} + * @return the {@link Model} + */ + @Override + public boolean containsNamedModel(String name) { + String query = "select count(*) from (sparql select * where { graph `iri(??)` { ?s ?p ?o }})f"; + ResultSet rs; + int ret = 0; + + checkOpen(); + try { + try (java.sql.PreparedStatement ps = createPreparedStatement(query)) { + ps.setString(1, name); + rs = ps.executeQuery(); + if (rs.next()) + ret = rs.getInt(1); + rs.close(); + } + } catch (Exception e) { + throw new JenaException(e); + } + return (ret != 0); + } + + /** + * List the names + * + * @return {@link Iterator} + */ + @Override + public Iterator listNames() { + String exec_text = "DB.DBA.SPARQL_SELECT_KNOWN_GRAPHS()"; + ResultSet rs; + int ret = 0; + + checkOpen(); + try { + List names = new LinkedList<>(); + + try (java.sql.Statement stmt = createStatement()) { + rs = stmt.executeQuery(exec_text); + while (rs.next()) + names.add(rs.getString(1)); + rs.close(); + } + return names.iterator(); + } catch (Exception e) { + throw new JenaException(e); + } + } + + /** + * Get the lock for this dataset + * + * @return {@link Lock} + */ + @Override + public Lock getLock() { + if (lock == null) + lock = new LockNone(); + return lock; + } + + /** + * Get the dataset in graph form + * + * @return {@link DatasetGraph} + */ + @Override + public DatasetGraph asDatasetGraph() { + return new VirtDataSetGraph(this); + } + + @Override + public void abort() { + // TODO Auto-generated method stub + + } + + @Override + public void begin(ReadWrite arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void commit() { + // TODO Auto-generated method stub + + } + + @Override + public void end() { + // TODO Auto-generated method stub + + } + + @Override + public Context getContext() { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean isInTransaction() { + // TODO Auto-generated method stub + return false; + } + + @Override + public boolean supportsTransactions() { + // TODO Auto-generated method stub + return false; + } + + public class VirtDataSetGraph implements DatasetGraph { + + VirtDataSource vd = null; + + public VirtDataSetGraph(VirtDataSource vds) { + vd = vds; + } + + @Override + public Graph getDefaultGraph() { + return vd; + } + + @Override + public void setDefaultGraph(Graph arg0) { + // TODO Auto-generated method stub + + } + + @Override + public Graph getGraph(Node graphNode) { + try { + return new VirtGraph(graphNode.toString(), vd.getGraphUrl(), + vd.getGraphUser(), vd.getGraphPassword()); + } catch (Exception e) { + throw new JenaException(e); + } + } + + @Override + public boolean containsGraph(Node graphNode) { + return containsNamedModel(graphNode.toString()); + } + + @Override + public Iterator listGraphNodes() { + String exec_text = "DB.DBA.SPARQL_SELECT_KNOWN_GRAPHS()"; + ResultSet rs; + int ret = 0; + + vd.checkOpen(); + try { + List names = new LinkedList<>(); + + try (java.sql.Statement stmt = vd.createStatement()) { + rs = stmt.executeQuery(exec_text); + while (rs.next()) + names.add(NodeFactory.createURI(rs.getString(1))); + rs.close(); + } + return names.iterator(); + } catch (Exception e) { + throw new JenaException(e); + } + } + + @Override + public Lock getLock() { + return vd.getLock(); + } + + @Override + public long size() { + return vd.size(); + } + + @Override + public void close() { + vd.close(); + } + + @Override + public void add(Quad arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void add(Node arg0, Node arg1, Node arg2, Node arg3) { + // TODO Auto-generated method stub + + } + + @Override + public void addGraph(Node arg0, Graph arg1) { + // TODO Auto-generated method stub + + } + + @Override + public boolean contains(Quad arg0) { + // TODO Auto-generated method stub + return false; + } + + @Override + public void clear() { + + } + + @Override + public boolean contains(Node arg0, Node arg1, Node arg2, Node arg3) { + // TODO Auto-generated method stub + return false; + } + + @Override + public void delete(Quad arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void delete(Node arg0, Node arg1, Node arg2, Node arg3) { + // TODO Auto-generated method stub + + } + + @Override + public void deleteAny(Node arg0, Node arg1, Node arg2, Node arg3) { + // TODO Auto-generated method stub + + } + + @Override + public Iterator find() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Iterator find(Quad arg0) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Iterator find(Node arg0, Node arg1, Node arg2, Node arg3) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Iterator findNG(Node arg0, Node arg1, Node arg2, Node arg3) { + // TODO Auto-generated method stub + return null; + } + + @Override + public Context getContext() { + // TODO Auto-generated method stub + return null; + } - } + @Override + public boolean isEmpty() { + // TODO Auto-generated method stub + return false; + } - public Context getContext() { - // TODO Auto-generated method stub - return null; - } + @Override + public void removeGraph(Node arg0) { + // TODO Auto-generated method stub - public boolean isInTransaction() { - // TODO Auto-generated method stub - return false; - } + } - public boolean supportsTransactions() { - // TODO Auto-generated method stub - return false; - } + } } diff --git a/src/main/java/virtuoso/jena/driver/VirtGraph.java b/src/main/java/virtuoso/jena/driver/VirtGraph.java index 4b2b024..7bbb9a9 100644 --- a/src/main/java/virtuoso/jena/driver/VirtGraph.java +++ b/src/main/java/virtuoso/jena/driver/VirtGraph.java @@ -28,931 +28,815 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.Iterator; -import java.util.List; - +import java.util.*; + +import org.apache.jena.datatypes.TypeMapper; +import org.apache.jena.graph.*; +import org.apache.jena.graph.impl.GraphBase; +import org.apache.jena.rdf.model.impl.ModelCom; +import org.apache.jena.shared.AddDeniedException; +import org.apache.jena.shared.DeleteDeniedException; +import org.apache.jena.shared.JenaException; +import org.apache.jena.shared.PrefixMapping; +import org.apache.jena.util.iterator.ExtendedIterator; +import org.apache.jena.util.iterator.NiceIterator; import virtuoso.jdbc4.VirtuosoConnectionPoolDataSource; import virtuoso.jdbc4.VirtuosoDataSource; -import virtuoso.sql.ExtendedString; -import virtuoso.sql.RdfBox; - -import com.hp.hpl.jena.datatypes.RDFDatatype; -import com.hp.hpl.jena.datatypes.TypeMapper; -import com.hp.hpl.jena.graph.BulkUpdateHandler; -import com.hp.hpl.jena.graph.GraphEvents; -import com.hp.hpl.jena.graph.Node; -import com.hp.hpl.jena.graph.TransactionHandler; -import com.hp.hpl.jena.graph.Triple; -import com.hp.hpl.jena.graph.TripleMatch; -import com.hp.hpl.jena.graph.impl.GraphBase; -import com.hp.hpl.jena.rdf.model.AnonId; -import com.hp.hpl.jena.rdf.model.impl.ModelCom; -import com.hp.hpl.jena.shared.AddDeniedException; -import com.hp.hpl.jena.shared.DeleteDeniedException; -import com.hp.hpl.jena.shared.JenaException; -import com.hp.hpl.jena.shared.PrefixMapping; -import com.hp.hpl.jena.util.iterator.ExtendedIterator; -import com.hp.hpl.jena.util.iterator.NiceIterator; public class VirtGraph extends GraphBase { - static { - VirtuosoQueryEngine.register(); - } - - static public final String DEFAULT = "virt:DEFAULT"; - protected String graphName; - protected boolean readFromAllGraphs = false; - protected String url_hostlist; - protected String user; - protected String password; - protected boolean roundrobin = false; - protected int prefetchSize = 200; - protected Connection connection = null; - protected String ruleSet = null; - protected boolean useSameAs = false; - protected int queryTimeout = 0; - static final String sinsert = "sparql insert into graph iri(??) { `iri(??)` `iri(??)` `bif:__rdf_long_from_batch_params(??,??,??)` }"; - static final String sdelete = "sparql delete from graph iri(??) {`iri(??)` `iri(??)` `bif:__rdf_long_from_batch_params(??,??,??)`}"; - static final int BATCH_SIZE = 5000; - static final String utf8 = "charset=utf-8"; - static final String charset = "UTF-8"; - - private VirtuosoConnectionPoolDataSource pds = new VirtuosoConnectionPoolDataSource(); - private VirtuosoDataSource ds; - - private boolean isDSconnection = false; - - public VirtGraph() { - this(null, "jdbc:virtuoso://localhost:1111/charset=UTF-8", null, null, - false); - } - - public VirtGraph(String graphName) { - this(graphName, "jdbc:virtuoso://localhost:1111/charset=UTF-8", null, - null, false); - } - - public VirtGraph(String graphName, String _url_hostlist, String user, - String password) { - this(graphName, _url_hostlist, user, password, false); - } - - public VirtGraph(String url_hostlist, String user, String password) { - this(null, url_hostlist, user, password, false); - } - - public VirtGraph(String _graphName, VirtuosoDataSource _ds) { - super(); - - this.url_hostlist = _ds.getServerName(); - this.graphName = _graphName; - this.user = _ds.getUser(); - this.password = _ds.getPassword(); - - if (this.graphName == null) - this.graphName = DEFAULT; - - try { - connection = _ds.getConnection(); - isDSconnection = true; - ds = _ds; - ModelCom m = new ModelCom(this); // don't drop is it needed for - // initialize internal Jena - // classes - TypeMapper tm = TypeMapper.getInstance(); - } catch (Exception e) { - throw new JenaException(e); - } - } - - public VirtGraph(VirtuosoDataSource _ds) { - this(null, _ds); - } - - public VirtGraph(String graphName, String _url_hostlist, String user, - String password, boolean _roundrobin) { - super(); - - this.url_hostlist = _url_hostlist.trim(); - this.roundrobin = _roundrobin; - this.graphName = graphName; - this.user = user; - this.password = password; - - if (this.graphName == null) - this.graphName = DEFAULT; - - try { - if (url_hostlist.startsWith("jdbc:virtuoso://")) { - - String url = url_hostlist; - if (url.toLowerCase().indexOf(utf8) == -1) { - if (url.charAt(url.length() - 1) != '/') - url = url + "/charset=UTF-8"; - else - url = url + "charset=UTF-8"; - } - if (roundrobin - && url.toLowerCase().indexOf("roundrobin=") == -1) { - if (url.charAt(url.length() - 1) != '/') - url = url + "/roundrobin=1"; - else - url = url + "roundrobin=1"; - } - Class.forName("virtuoso.jdbc4.Driver"); - connection = DriverManager.getConnection(url, user, password); - } else { - pds.setServerName(url_hostlist); - pds.setUser(user); - pds.setPassword(password); - pds.setCharset(charset); - pds.setRoundrobin(roundrobin); - javax.sql.PooledConnection pconn = pds.getPooledConnection(); - connection = pconn.getConnection(); - isDSconnection = true; - } - - ModelCom m = new ModelCom(this); // don't drop is it needed for - // initialize internal Jena - // classes - TypeMapper tm = TypeMapper.getInstance(); - } catch (Exception e) { - throw new JenaException(e); - } - - } - - // getters - public VirtuosoDataSource getDataSource() { - if (isDSconnection) - return (ds != null ? ds : (VirtuosoDataSource) pds); - else - return null; - } - - public String getGraphName() { - return this.graphName; - } - - public String getGraphUrl() { - return this.url_hostlist; - } - - public String getGraphUser() { - return this.user; - } - - public String getGraphPassword() { - return this.password; - } - - public Connection getConnection() { - return this.connection; - } - - public int getFetchSize() { - return this.prefetchSize; - } - - public void setFetchSize(int sz) { - this.prefetchSize = sz; - } - - public int getQueryTimeout() { - return this.queryTimeout; - } - - public void setQueryTimeout(int seconds) { - this.queryTimeout = seconds; - } - - public int getCount() { - return size(); - } - - public void remove(List triples) { - delete(triples.iterator(), null); - } - - public void remove(Triple t) { - delete(t); - } - - public boolean getReadFromAllGraphs() { - return readFromAllGraphs; - } - - public void setReadFromAllGraphs(boolean val) { - readFromAllGraphs = val; - } - - public String getRuleSet() { - return ruleSet; - } - - public void setRuleSet(String _ruleSet) { - ruleSet = _ruleSet; - } - - public boolean getSameAs() { - return useSameAs; - } - - public void setSameAs(boolean _sameAs) { - useSameAs = _sameAs; - } - - public void createRuleSet(String ruleSetName, String uriGraphRuleSet) { - checkOpen(); - - try { - java.sql.Statement st = createStatement(); - st.execute("rdfs_rule_set('" + ruleSetName + "', '" - + uriGraphRuleSet + "')"); - st.close(); - } catch (Exception e) { - throw new JenaException(e); - } - } - - public void removeRuleSet(String ruleSetName, String uriGraphRuleSet) { - checkOpen(); - - try { - java.sql.Statement st = createStatement(); - st.execute("rdfs_rule_set('" + ruleSetName + "', '" - + uriGraphRuleSet + "', 1)"); - st.close(); - } catch (Exception e) { - throw new JenaException(e); - } - } - - private static String escapeString(String s) { - StringBuffer buf = new StringBuffer(s.length()); - int i = 0; - char ch; - while (i < s.length()) { - ch = s.charAt(i++); - if (ch == '\'') - buf.append('\\'); - buf.append(ch); - } - return buf.toString(); - } - - protected java.sql.Statement createStatement() throws java.sql.SQLException { - checkOpen(); - java.sql.Statement st = connection.createStatement(); - if (queryTimeout > 0) - st.setQueryTimeout(queryTimeout); - st.setFetchSize(prefetchSize); - return st; - } - - protected java.sql.PreparedStatement prepareStatement(String sql) - throws java.sql.SQLException { - checkOpen(); - java.sql.PreparedStatement st = connection.prepareStatement(sql); - if (queryTimeout > 0) - st.setQueryTimeout(queryTimeout); - st.setFetchSize(prefetchSize); - return st; - } - - // GraphBase overrides - public static String Node2Str(Node n) { - if (n.isURI()) { - return "<" + n + ">"; - } else if (n.isBlank()) { - return "<_:" + n + ">"; - } else if (n.isLiteral()) { - String s; - StringBuffer sb = new StringBuffer(); - sb.append("'"); - sb.append(escapeString(n.getLiteralValue().toString())); - sb.append("'"); - - s = n.getLiteralLanguage(); - if (s != null && s.length() > 0) { - sb.append("@"); - sb.append(s); - } - s = n.getLiteralDatatypeURI(); - if (s != null && s.length() > 0) { - sb.append("^^<"); - sb.append(s); - sb.append(">"); - } - return sb.toString(); - } else { - return "<" + n + ">"; - } - } - - void bindSubject(PreparedStatement ps, int col, Node n) throws SQLException { - if (n == null) - return; - if (n.isURI()) - ps.setString(col, n.toString()); - else if (n.isBlank()) - ps.setString(col, "_:" + n.toString()); - else - throw new SQLException( - "Only URI or Blank nodes can be used as subject"); - } - - void bindPredicate(PreparedStatement ps, int col, Node n) - throws SQLException { - if (n == null) - return; - if (n.isURI()) - ps.setString(col, n.toString()); - else - throw new SQLException("Only URI nodes can be used as predicate"); - } - - void bindObject(PreparedStatement ps, int col, Node n) throws SQLException { - if (n == null) - return; - if (n.isURI()) { - ps.setInt(col, 1); - ps.setString(col + 1, n.toString()); - ps.setNull(col + 2, java.sql.Types.VARCHAR); - } else if (n.isBlank()) { - ps.setInt(col, 1); - ps.setString(col + 1, "_:" + n.toString()); - ps.setNull(col + 2, java.sql.Types.VARCHAR); - } else if (n.isLiteral()) { - String llang = n.getLiteralLanguage(); - String ltype = n.getLiteralDatatypeURI(); - if (llang != null && llang.length() > 0) { - ps.setInt(col, 5); - ps.setString(col + 1, n.getLiteralValue().toString()); - ps.setString(col + 2, n.getLiteralLanguage()); - } else if (ltype != null && ltype.length() > 0) { - ps.setInt(col, 4); - ps.setString(col + 1, n.getLiteralValue().toString()); - ps.setString(col + 2, n.getLiteralDatatypeURI()); - } else { - ps.setInt(col, 3); - ps.setString(col + 1, n.getLiteralValue().toString()); - ps.setNull(col + 2, java.sql.Types.VARCHAR); - } - } else { - ps.setInt(col, 3); - ps.setString(col + 1, n.toString()); - ps.setNull(col + 2, java.sql.Types.VARCHAR); - } - } - - // --java5 or newer @Override - public void performAdd(Triple t) { - java.sql.PreparedStatement ps; - - try { - ps = prepareStatement(sinsert); - ps.setString(1, this.graphName); - bindSubject(ps, 2, t.getSubject()); - bindPredicate(ps, 3, t.getPredicate()); - bindObject(ps, 4, t.getObject()); - - ps.execute(); - ps.close(); - } catch (Exception e) { - throw new AddDeniedException(e.toString()); - } - } - - public void performDelete(Triple t) { - java.sql.PreparedStatement ps; - - try { - ps = prepareStatement(sdelete); - ps.setString(1, this.graphName); - bindSubject(ps, 2, t.getSubject()); - bindPredicate(ps, 3, t.getPredicate()); - bindObject(ps, 4, t.getObject()); - - ps.execute(); - ps.close(); - } catch (Exception e) { - throw new DeleteDeniedException(e.toString()); - } - } - - /** - * more efficient - */ - // --java5 or newer @Override - protected int graphBaseSize() { - StringBuffer sb = new StringBuffer( - "select count(*) from (sparql define input:storage \"\" "); - - if (ruleSet != null) - sb.append(" define input:inference '" + ruleSet + "'\n "); - - if (useSameAs) - sb.append(" define input:same-as \"yes\"\n "); - - if (readFromAllGraphs) - sb.append(" select * where {?s ?p ?o })f"); - else - sb.append(" select * where { graph `iri(??)` { ?s ?p ?o }})f"); - - ResultSet rs = null; - int ret = 0; - - checkOpen(); - - try { - java.sql.PreparedStatement ps = prepareStatement(sb.toString()); - - if (!readFromAllGraphs) - ps.setString(1, graphName); - - rs = ps.executeQuery(); - if (rs.next()) - ret = rs.getInt(1); - rs.close(); - ps.close(); - } catch (Exception e) { - throw new JenaException(e); - } - return ret; - } - - /** - * maybe more efficient than default impl - * - */ - // --java5 or newer @Override - protected boolean graphBaseContains(Triple t) { - ResultSet rs = null; - String S, P, O; - StringBuffer sb = new StringBuffer("sparql define input:storage \"\" "); - String exec_text; - - checkOpen(); - - S = " ?s "; - P = " ?p "; - O = " ?o "; - - if (!Node.ANY.equals(t.getSubject())) - S = Node2Str(t.getSubject()); - - if (!Node.ANY.equals(t.getPredicate())) - P = Node2Str(t.getPredicate()); - - if (!Node.ANY.equals(t.getObject())) - O = Node2Str(t.getObject()); - - if (ruleSet != null) - sb.append(" define input:inference '" + ruleSet + "'\n "); - - if (useSameAs) - sb.append(" define input:same-as \"yes\"\n "); - - if (readFromAllGraphs) - sb.append(" select * where { " + S + " " + P + " " + O - + " } limit 1"); - else - sb.append(" select * where { graph <" + graphName + "> { " + S - + " " + P + " " + O + " }} limit 1"); - - try { - java.sql.Statement stmt = createStatement(); - rs = stmt.executeQuery(sb.toString()); - boolean ret = rs.next(); - rs.close(); - stmt.close(); - return ret; - } catch (Exception e) { - throw new JenaException(e); - } - } - - // --java5 or newer @Override - public ExtendedIterator graphBaseFind(TripleMatch tm) { - String S, P, O; - StringBuffer sb = new StringBuffer("sparql "); - - checkOpen(); - - S = " ?s "; - P = " ?p "; - O = " ?o "; - - if (tm.getMatchSubject() != null) - S = Node2Str(tm.getMatchSubject()); - - if (tm.getMatchPredicate() != null) - P = Node2Str(tm.getMatchPredicate()); - - if (tm.getMatchObject() != null) - O = Node2Str(tm.getMatchObject()); - - if (ruleSet != null) - sb.append(" define input:inference '" + ruleSet + "'\n "); - - if (useSameAs) - sb.append(" define input:same-as \"yes\"\n "); - - if (readFromAllGraphs) - sb.append(" select * where { " + S + " " + P + " " + O + " }"); - else - sb.append(" select * from <" + graphName + "> where { " + S + " " - + P + " " + O + " }"); - - try { - java.sql.PreparedStatement stmt; - stmt = prepareStatement(sb.toString()); - return new VirtResSetIter(this, stmt.executeQuery(), tm, stmt); - } catch (Exception e) { - throw new JenaException(e); - } - } - - // --java5 or newer @Override - public void close() { - try { - super.close(); // will set closed = true - connection.close(); - } catch (Exception e) { - throw new JenaException(e); - } - } - - // Extra functions - - public void clear() { - clearGraph(this.graphName); - getEventManager().notifyEvent(this, GraphEvents.removeAll); - } - - public void read(String url, String type) { - String exec_text; - - exec_text = "sparql load \"" + url + "\" into graph <" + graphName - + ">"; - - checkOpen(); - try { - java.sql.Statement stmt = createStatement(); - stmt.execute(exec_text); - stmt.close(); - } catch (Exception e) { - throw new JenaException(e); - } - } - - // --java5 or newer @SuppressWarnings("unchecked") - void add(Iterator it, List list) { - try { - PreparedStatement ps = prepareStatement(sinsert); - int count = 0; - - while (it.hasNext()) { - Triple t = (Triple) it.next(); - - if (list != null) - list.add(t); - - ps.setString(1, this.graphName); - bindSubject(ps, 2, t.getSubject()); - bindPredicate(ps, 3, t.getPredicate()); - bindObject(ps, 4, t.getObject()); - ps.addBatch(); - count++; - - if (count > BATCH_SIZE) { - ps.executeBatch(); - ps.clearBatch(); - count = 0; - } - } - - if (count > 0) { - ps.executeBatch(); - ps.clearBatch(); - } - ps.close(); - } catch (Exception e) { - throw new JenaException(e); - } - } - - void delete(Iterator it, List list) { - try { - while (it.hasNext()) { - Triple triple = (Triple) it.next(); - - if (list != null) - list.add(triple); - - performDelete(triple); - } - } catch (Exception e) { - throw new JenaException(e); - } - } - - void delete_match(TripleMatch tm) { - String S, P, O; - Node nS, nP, nO; - - checkOpen(); - - S = "?s"; - P = "?p"; - O = "?o"; - - nS = tm.getMatchSubject(); - nP = tm.getMatchPredicate(); - nO = tm.getMatchObject(); - - try { - if (nS == null && nP == null && nO == null) { - - clearGraph(this.graphName); - - } else if (nS != null && nP != null && nO != null) { - java.sql.PreparedStatement ps; - - ps = prepareStatement(sdelete); - ps.setString(1, this.graphName); - bindSubject(ps, 2, nS); - bindPredicate(ps, 3, nP); - bindObject(ps, 4, nO); - - ps.execute(); - ps.close(); - - } else { - - if (nS != null) - S = Node2Str(nS); - - if (nP != null) - P = Node2Str(nP); - - if (nO != null) - O = Node2Str(nO); - - String query = "sparql delete from graph <" + this.graphName - + "> { " + S + " " + P + " " + O + " } from <" - + this.graphName + "> where { " + S + " " + P + " " + O - + " }"; - - java.sql.Statement stmt = createStatement(); - stmt.execute(query); - stmt.close(); - } - } catch (Exception e) { - throw new DeleteDeniedException(e.toString()); - } - } - - void clearGraph(String name) { - String query = "sparql clear graph iri(??)"; - - checkOpen(); - - try { - java.sql.PreparedStatement ps = prepareStatement(query); - ps.setString(1, name); - ps.execute(); - ps.close(); - } catch (Exception e) { - throw new JenaException(e); - } - } - - public ExtendedIterator reifierTriples(TripleMatch m) { - return NiceIterator.emptyIterator(); - } - - public int reifierSize() { - return 0; - } - - // --java5 or newer @Override - public TransactionHandler getTransactionHandler() { - return new VirtTransactionHandler(this); - } - // --java5 or newer @Override - public BulkUpdateHandler getBulkUpdateHandler() { + static public final String DEFAULT = "virt:DEFAULT"; + static final String sinsert = "sparql insert into graph iri(??) { `iri(??)` `iri(??)` `bif:__rdf_long_from_batch_params(??,??,??)` }"; + static final String sdelete = "sparql delete from graph iri(??) {`iri(??)` `iri(??)` `bif:__rdf_long_from_batch_params(??,??,??)`}"; + static final int BATCH_SIZE = 5000; + static final String utf8 = "charset=utf-8"; + static final String charset = "UTF-8"; + private static final org.slf4j.Logger logger = + org.slf4j.LoggerFactory.getLogger(VirtGraph.class); + + static { + VirtuosoQueryEngine.register(); + } + + protected String graphName; + protected boolean readFromAllGraphs = false; + protected String url_hostlist; + protected String user; + protected String password; + protected boolean roundrobin = false; + protected int prefetchSize = 200; + protected Connection connection = null; + protected String ruleSet = null; + protected boolean useSameAs = false; + protected int queryTimeout = 0; + protected VirtPrefixMapping m_prefixMapping = null; + private VirtuosoConnectionPoolDataSource pds = new VirtuosoConnectionPoolDataSource(); + private VirtuosoDataSource ds; + private boolean isDSconnection = false; + + public VirtGraph() { + this(null, "jdbc:virtuoso://localhost:1111/charset=UTF-8", null, null, + false); + } + + public VirtGraph(String graphName) { + this(graphName, "jdbc:virtuoso://localhost:1111/charset=UTF-8", null, + null, false); + } + + public VirtGraph(String graphName, String _url_hostlist, String user, + String password) { + this(graphName, _url_hostlist, user, password, false); + } + + public VirtGraph(String url_hostlist, String user, String password) { + this(null, url_hostlist, user, password, false); + } + + public VirtGraph(String _graphName, VirtuosoDataSource _ds) { + super(); + + this.url_hostlist = _ds.getServerName(); + this.graphName = _graphName; + this.user = _ds.getUser(); + this.password = _ds.getPassword(); + + if (this.graphName == null) + this.graphName = DEFAULT; + + try { + connection = _ds.getConnection(); + isDSconnection = true; + ds = _ds; + // don't drop is it needed for initialize internal Jena classes + ModelCom m = new ModelCom(this); + + TypeMapper tm = TypeMapper.getInstance(); + } catch (Exception e) { + throw new JenaException(e); + } + } + + public VirtGraph(VirtuosoDataSource _ds) { + this(null, _ds); + } + + public VirtGraph(String graphName, String _url_hostlist, String user, + String password, boolean _roundrobin) { + super(); + + this.url_hostlist = _url_hostlist.trim(); + this.roundrobin = _roundrobin; + this.graphName = graphName; + this.user = user; + this.password = password; + + if (this.graphName == null) + this.graphName = DEFAULT; + + try { + if (url_hostlist.startsWith("jdbc:virtuoso://")) { + + String url = url_hostlist; + if (!url.toLowerCase().contains(utf8)) { + if (url.charAt(url.length() - 1) != '/') + url = url + "/charset=UTF-8"; + else + url = url + "charset=UTF-8"; + } + if (roundrobin + && !url.toLowerCase().contains("roundrobin=")) { + if (url.charAt(url.length() - 1) != '/') + url = url + "/roundrobin=1"; + else + url = url + "roundrobin=1"; + } + Class.forName("virtuoso.jdbc4.Driver"); + connection = DriverManager.getConnection(url, user, password); + } else { + pds.setServerName(url_hostlist); + pds.setUser(user); + pds.setPassword(password); + pds.setCharset(charset); + pds.setRoundrobin(roundrobin); + javax.sql.PooledConnection pconn = pds.getPooledConnection(); + connection = pconn.getConnection(); + isDSconnection = true; + } + + ModelCom m = new ModelCom(this); // don't drop is it needed for + // initialize internal Jena + // classes + TypeMapper tm = TypeMapper.getInstance(); + } catch (ClassNotFoundException | SQLException e) { + throw new JenaException(e); + } + + } + + private static String escapeString(String s) { + StringBuilder buf = new StringBuilder(s.length()); + int i = 0; + char ch; + while (i < s.length()) { + ch = s.charAt(i++); + if (ch == '\'') + buf.append('\\'); + buf.append(ch); + } + return buf.toString(); + } + + // GraphBase overrides + public static String Node2Str(Node n) { + if (n.isURI()) { + return "<" + n + ">"; + } else if (n.isBlank()) { + return "<_:" + n + ">"; + } else if (n.isLiteral()) { + String s; + StringBuilder sb = new StringBuilder(); + sb.append("'"); + sb.append(escapeString(n.getLiteralValue().toString())); + sb.append("'"); + + s = n.getLiteralLanguage(); + if (s != null && s.length() > 0) { + sb.append("@"); + sb.append(s); + } + s = n.getLiteralDatatypeURI(); + if (s != null && s.length() > 0) { + sb.append("^^<"); + sb.append(s); + sb.append(">"); + } + return sb.toString(); + } else { + return "<" + n + ">"; + } + } + + // getters + public VirtuosoDataSource getDataSource() { + if (isDSconnection) + return (ds != null ? ds : pds); + else + return null; + } + + public String getGraphName() { + return this.graphName; + } + + public String getGraphUrl() { + return this.url_hostlist; + } + + public String getGraphUser() { + return this.user; + } + + public String getGraphPassword() { + return this.password; + } + + public Connection getConnection() { + return this.connection; + } + + public int getFetchSize() { + return this.prefetchSize; + } + + public void setFetchSize(int sz) { + this.prefetchSize = sz; + } + + public int getQueryTimeout() { + return this.queryTimeout; + } + + public void setQueryTimeout(int seconds) { + this.queryTimeout = seconds; + } + + public int getCount() { + return size(); + } + + public void remove(List triples) { + delete(triples.iterator(), null); + } + + public void remove(Triple t) { + delete(t); + } + + public boolean getReadFromAllGraphs() { + return readFromAllGraphs; + } + + public void setReadFromAllGraphs(boolean val) { + readFromAllGraphs = val; + } + + public String getRuleSet() { + return ruleSet; + } + + public void setRuleSet(String _ruleSet) { + ruleSet = _ruleSet; + } + + public boolean getSameAs() { + return useSameAs; + } + + public void setSameAs(boolean _sameAs) { + useSameAs = _sameAs; + } + + public void createRuleSet(String ruleSetName, String uriGraphRuleSet) { + checkOpen(); + + try { + try (java.sql.Statement st = createStatement()) { + st.execute("rdfs_rule_set('" + ruleSetName + "', '" + + uriGraphRuleSet + "')"); + } + } catch (Exception e) { + throw new JenaException(e); + } + } + + public void removeRuleSet(String ruleSetName, String uriGraphRuleSet) { + checkOpen(); + + try { + try (java.sql.Statement st = createStatement()) { + st.execute("rdfs_rule_set('" + ruleSetName + "', '" + + uriGraphRuleSet + "', 1)"); + } + } catch (Exception e) { + throw new JenaException(e); + } + } + + protected java.sql.Statement createStatement() throws java.sql.SQLException { + checkOpen(); + java.sql.Statement st = connection.createStatement(); + if (queryTimeout > 0) + st.setQueryTimeout(queryTimeout); + st.setFetchSize(prefetchSize); + return st; + } + + protected java.sql.PreparedStatement createPreparedStatement(String sql) + throws java.sql.SQLException { + checkOpen(); + java.sql.PreparedStatement st = connection.prepareStatement(sql); + if (queryTimeout > 0) + st.setQueryTimeout(queryTimeout); + st.setFetchSize(prefetchSize); + return st; + } + + protected void executePrepareStatementOnGraph( + java.sql.PreparedStatement ps, String graphName, Triple t) throws SQLException { + ps.setString(1, graphName); + bindSubject(ps, 2, t.getSubject()); + bindPredicate(ps, 3, t.getPredicate()); + bindObject(ps, 4, t.getObject()); + ps.execute(); + ps.close(); + } + + void bindSubject(PreparedStatement ps, int col, Node n) throws SQLException { + if (n == null) return; + if (n.isURI()) ps.setString(col, n.toString()); + else if (n.isBlank()) ps.setString(col, "_:" + n.toString()); + else + throw new SQLException( + "Only URI or Blank nodes can be used as subject"); + } + + void bindPredicate(PreparedStatement ps, int col, Node n) + throws SQLException { + if (n == null) return; + if (n.isURI()) ps.setString(col, n.toString()); + else + throw new SQLException("Only URI nodes can be used as predicate"); + } + + void bindObject(PreparedStatement ps, int col, Node n) throws SQLException { + if (n == null) + return; + if (n.isURI()) { + ps.setInt(col, 1); + ps.setString(col + 1, n.toString()); + ps.setNull(col + 2, java.sql.Types.VARCHAR); + } else if (n.isBlank()) { + ps.setInt(col, 1); + ps.setString(col + 1, "_:" + n.toString()); + ps.setNull(col + 2, java.sql.Types.VARCHAR); + } else if (n.isLiteral()) { + String llang = n.getLiteralLanguage(); + String ltype = n.getLiteralDatatypeURI(); + if (llang != null && llang.length() > 0) { + ps.setInt(col, 5); + ps.setString(col + 1, n.getLiteralValue().toString()); + ps.setString(col + 2, n.getLiteralLanguage()); + } else if (ltype != null && ltype.length() > 0) { + ps.setInt(col, 4); + ps.setString(col + 1, n.getLiteralValue().toString()); + ps.setString(col + 2, n.getLiteralDatatypeURI()); + } else { + ps.setInt(col, 3); + ps.setString(col + 1, n.getLiteralValue().toString()); + ps.setNull(col + 2, java.sql.Types.VARCHAR); + } + } else { + ps.setInt(col, 3); + ps.setString(col + 1, n.toString()); + ps.setNull(col + 2, java.sql.Types.VARCHAR); + } + } + + // --java5 or newer @Override + @Override + public void performAdd(Triple t) { + java.sql.PreparedStatement ps; + try { + ps = createPreparedStatement(sinsert); + executePrepareStatementOnGraph(ps, this.graphName, t); + + } catch (Exception e) { + throw new AddDeniedException(e.toString()); + } + } + + @Override + public void performDelete(Triple t) { + java.sql.PreparedStatement ps; + + try { + ps = createPreparedStatement(sdelete); + executePrepareStatementOnGraph(ps, this.graphName, t); + } catch (Exception e) { + throw new DeleteDeniedException(e.toString()); + } + } + + /** + * more efficient + * + * @return {@link Integer} + */ + // --java5 or newer @Override + @Override + protected int graphBaseSize() { + StringBuilder sb = new StringBuilder( + "select count(*) from (sparql define input:storage \"\" "); + + if (ruleSet != null) + sb.append(" define input:inference '").append(ruleSet).append("'\n "); + + if (useSameAs) + sb.append(" define input:same-as \"yes\"\n "); + + if (readFromAllGraphs) + sb.append(" select * where {?s ?p ?o })f"); + else + sb.append(" select * where { graph `iri(??)` { ?s ?p ?o }})f"); + + ResultSet rs; + int ret = 0; + + checkOpen(); + + try { + try (java.sql.PreparedStatement ps = createPreparedStatement(sb.toString())) { + if (!readFromAllGraphs) + ps.setString(1, graphName); + + rs = ps.executeQuery(); + if (rs.next()) + ret = rs.getInt(1); + rs.close(); + } + } catch (Exception e) { + throw new JenaException(e); + } + return ret; + } + + /** + * maybe more efficient than default impl + * + * @param t {@link Triple} + * @return {@link Boolean} + */ + // --java5 or newer @Override + @Override + protected boolean graphBaseContains(Triple t) { + ResultSet rs; + String S, P, O; + StringBuilder sb = new StringBuilder("sparql define input:storage \"\" "); + + checkOpen(); + + S = " ?s "; + P = " ?p "; + O = " ?o "; + + if (!Node.ANY.equals(t.getSubject())) + S = Node2Str(t.getSubject()); + + if (!Node.ANY.equals(t.getPredicate())) + P = Node2Str(t.getPredicate()); + + if (!Node.ANY.equals(t.getObject())) + O = Node2Str(t.getObject()); + + if (ruleSet != null) + sb.append(" define input:inference '").append(ruleSet).append("'\n "); + + if (useSameAs) + sb.append(" define input:same-as \"yes\"\n "); + + if (readFromAllGraphs) + sb.append(" select * where { ") + .append(S).append(" ") + .append(P).append(" ") + .append(O) + .append(" } limit 1"); + else + sb.append(" select * where { graph <").append(graphName).append("> { ") + .append(S).append(" ") + .append(P).append(" ") + .append(O) + .append(" }} limit 1"); + + try { + boolean ret; + try (java.sql.Statement stmt = createStatement()) { + rs = stmt.executeQuery(sb.toString()); + ret = rs.next(); + rs.close(); + } + return ret; + } catch (Exception e) { + throw new JenaException(e); + } + } + + // --java5 or newer @Override + @Override + public ExtendedIterator graphBaseFind(Triple tm) { + String S, P, O; + StringBuilder sb = new StringBuilder("sparql "); + + checkOpen(); + + S = " ?s "; + P = " ?p "; + O = " ?o "; + + if (tm.getMatchSubject() != null) + S = Node2Str(tm.getMatchSubject()); + + if (tm.getMatchPredicate() != null) + P = Node2Str(tm.getMatchPredicate()); + + if (tm.getMatchObject() != null) + O = Node2Str(tm.getMatchObject()); + + if (ruleSet != null) + sb.append(" define input:inference '").append(ruleSet).append("'\n "); + + if (useSameAs) + sb.append(" define input:same-as \"yes\"\n "); + + if (readFromAllGraphs) + sb.append(" select * where { ") + .append(S).append(" ") + .append(P).append(" ") + .append(O) + .append(" }"); + else + sb.append(" select * from <").append(graphName).append("> where { ") + .append(S).append(" ") + .append(P).append(" ") + .append(O) + .append(" }"); + + try { + java.sql.PreparedStatement stmt; + stmt = createPreparedStatement(sb.toString()); + return new VirtResSetIter(this, stmt.executeQuery(), tm, stmt); + } catch (Exception e) { + throw new JenaException(e); + } + } + + // Extra functions + + // --java5 or newer @Override + @Override + public void close() { + try { + super.close(); // will set closed = true + connection.close(); + } catch (Exception e) { + throw new JenaException(e); + } + } + + @Override + public void clear() { + clearGraph(this.graphName); + getEventManager().notifyEvent(this, GraphEvents.removeAll); + } + + public void read(String url, String type) { + String exec_text; + + exec_text = "sparql load \"" + url + "\" into graph <" + graphName + ">"; + + checkOpen(); + try { + try (java.sql.Statement stmt = createStatement()) { + stmt.execute(exec_text); + } + } catch (Exception e) { + throw new JenaException(e); + } + } + + // --java5 or newer @SuppressWarnings("unchecked") + void add(Iterator it, List list) { + try { + try (PreparedStatement ps = createPreparedStatement(sinsert)) { + int count = 0; + + while (it.hasNext()) { + Triple t = it.next(); + + if (list != null) + list.add(t); + + ps.setString(1, this.graphName); + bindSubject(ps, 2, t.getSubject()); + bindPredicate(ps, 3, t.getPredicate()); + bindObject(ps, 4, t.getObject()); + ps.addBatch(); + count++; + + if (count > BATCH_SIZE) { + ps.executeBatch(); + ps.clearBatch(); + count = 0; + } + } + + if (count > 0) { + ps.executeBatch(); + ps.clearBatch(); + } + } + } catch (Exception e) { + throw new JenaException(e); + } + } + + void delete(Iterator it, List list) { + try { + while (it.hasNext()) { + Triple triple = it.next(); + + if (list != null) + list.add(triple); + + performDelete(triple); + } + } catch (Exception e) { + throw new JenaException(e); + } + } + + void delete_match(Triple tm) { + String S, P, O; + Node nS, nP, nO; + + checkOpen(); + + S = "?s"; + P = "?p"; + O = "?o"; + + nS = tm.getMatchSubject(); + nP = tm.getMatchPredicate(); + nO = tm.getMatchObject(); + + try { + if (nS == null && nP == null && nO == null) { + + clearGraph(this.graphName); + + } else if (nS != null && nP != null && nO != null) { + java.sql.PreparedStatement ps; + + ps = createPreparedStatement(sdelete); + ps.setString(1, this.graphName); + bindSubject(ps, 2, nS); + bindPredicate(ps, 3, nP); + bindObject(ps, 4, nO); + + ps.execute(); + ps.close(); + + } else { + + if (nS != null) + S = Node2Str(nS); + + if (nP != null) + P = Node2Str(nP); + + if (nO != null) + O = Node2Str(nO); + + String query = "sparql delete from graph <" + this.graphName + + "> { " + S + " " + P + " " + O + " } from <" + + this.graphName + "> where { " + S + " " + P + " " + O + + " }"; + + try (java.sql.Statement stmt = createStatement()) { + stmt.execute(query); + } + } + } catch (Exception e) { + throw new DeleteDeniedException(e.toString()); + } + } + + void clearGraph(String name) { + String query = "sparql clear graph iri(??)"; + checkOpen(); + try { + try (java.sql.PreparedStatement ps = createPreparedStatement(query)) { + ps.setString(1, name); + ps.execute(); + } + } catch (Exception e) { + throw new JenaException(e); + } + } + + public ExtendedIterator reifierTriples(Triple m) { + return NiceIterator.emptyIterator(); + } + + public int reifierSize() { + return 0; + } + + // --java5 or newer @Override + /*public BulkUpdateHandler getBulkUpdateHandler() { if (bulkHandler == null) bulkHandler = new VirtBulkUpdateHandler(this); return bulkHandler; - } - - protected VirtPrefixMapping m_prefixMapping = null; - - public PrefixMapping getPrefixMapping() { - if (m_prefixMapping == null) - m_prefixMapping = new VirtPrefixMapping(this); - return m_prefixMapping; - } - - public static Node Object2Node(Object o) { - if (o == null) - return null; - - if (o instanceof ExtendedString) { - ExtendedString vs = (ExtendedString) o; - - if (vs.getIriType() == ExtendedString.IRI - && (vs.getStrType() & 0x01) == 0x01) { - if (vs.toString().indexOf("_:") == 0) - return Node.createAnon(AnonId.create(vs.toString() - .substring(2))); // _: - else - return Node.createURI(vs.toString()); - - } else if (vs.getIriType() == ExtendedString.BNODE) { - return Node.createAnon(AnonId - .create(vs.toString().substring(9))); // nodeID:// - - } else { - return Node.createLiteral(vs.toString()); - } - - } else if (o instanceof RdfBox) { - - RdfBox rb = (RdfBox) o; - String rb_type = rb.getType(); - RDFDatatype dt = null; - - if (rb_type != null) - dt = TypeMapper.getInstance().getSafeTypeByName(rb_type); - return Node.createLiteral(rb.toString(), rb.getLang(), dt); - - } else if (o instanceof java.lang.Integer) { - - RDFDatatype dt = null; - dt = TypeMapper.getInstance().getSafeTypeByName( - "http://www.w3.org/2001/XMLSchema#integer"); - return Node.createLiteral(o.toString(), null, dt); - - } else if (o instanceof java.lang.Short) { - - RDFDatatype dt = null; - // dt = - // TypeMapper.getInstance().getSafeTypeByName("http://www.w3.org/2001/XMLSchema#short"); - dt = TypeMapper.getInstance().getSafeTypeByName( - "http://www.w3.org/2001/XMLSchema#integer"); - return Node.createLiteral(o.toString(), null, dt); - - } else if (o instanceof java.lang.Float) { - - RDFDatatype dt = null; - dt = TypeMapper.getInstance().getSafeTypeByName( - "http://www.w3.org/2001/XMLSchema#float"); - return Node.createLiteral(o.toString(), null, dt); - - } else if (o instanceof java.lang.Double) { - - RDFDatatype dt = null; - dt = TypeMapper.getInstance().getSafeTypeByName( - "http://www.w3.org/2001/XMLSchema#double"); - return Node.createLiteral(o.toString(), null, dt); - - } else if (o instanceof java.math.BigDecimal) { - - RDFDatatype dt = null; - dt = TypeMapper.getInstance().getSafeTypeByName( - "http://www.w3.org/2001/XMLSchema#decimal"); - return Node.createLiteral(o.toString(), null, dt); - - } else if (o instanceof java.sql.Blob) { - - RDFDatatype dt = null; - dt = TypeMapper.getInstance().getSafeTypeByName( - "http://www.w3.org/2001/XMLSchema#hexBinary"); - return Node.createLiteral(o.toString(), null, dt); - - } else if (o instanceof java.sql.Date) { - - RDFDatatype dt = null; - dt = TypeMapper.getInstance().getSafeTypeByName( - "http://www.w3.org/2001/XMLSchema#date"); - return Node.createLiteral(o.toString(), null, dt); - - } else if (o instanceof java.sql.Timestamp) { - - RDFDatatype dt = null; - dt = TypeMapper.getInstance().getSafeTypeByName( - "http://www.w3.org/2001/XMLSchema#dateTime"); - return Node.createLiteral(Timestamp2String((java.sql.Timestamp) o), - null, dt); - - } else if (o instanceof java.sql.Time) { - - RDFDatatype dt = null; - dt = TypeMapper.getInstance().getSafeTypeByName( - "http://www.w3.org/2001/XMLSchema#time"); - return Node.createLiteral(o.toString(), null, dt); - - } else { - - return Node.createLiteral(o.toString()); - } - } - - private static String Timestamp2String(java.sql.Timestamp v) { - GregorianCalendar cal = new GregorianCalendar(); - cal.setTime(v); - - int year = cal.get(Calendar.YEAR); - int month = cal.get(Calendar.MONTH) + 1; - int day = cal.get(Calendar.DAY_OF_MONTH); - int hour = cal.get(Calendar.HOUR_OF_DAY); - int minute = cal.get(Calendar.MINUTE); - int second = cal.get(Calendar.SECOND); - int nanos = v.getNanos(); - - String yearS; - String monthS; - String dayS; - String hourS; - String minuteS; - String secondS; - String nanosS; - String zeros = "000000000"; - String yearZeros = "0000"; - StringBuffer timestampBuf; - - if (year < 1000) { - yearS = "" + year; - yearS = yearZeros.substring(0, (4 - yearS.length())) + yearS; - } else { - yearS = "" + year; - } - - if (month < 10) - monthS = "0" + month; - else - monthS = Integer.toString(month); - - if (day < 10) - dayS = "0" + day; - else - dayS = Integer.toString(day); - - if (hour < 10) - hourS = "0" + hour; - else - hourS = Integer.toString(hour); - - if (minute < 10) - minuteS = "0" + minute; - else - minuteS = Integer.toString(minute); - - if (second < 10) - secondS = "0" + second; - else - secondS = Integer.toString(second); - - if (nanos == 0) { - nanosS = "0"; - } else { - nanosS = Integer.toString(nanos); - - // Add leading 0 - nanosS = zeros.substring(0, (9 - nanosS.length())) + nanosS; - - // Truncate trailing 0 - char[] nanosChar = new char[nanosS.length()]; - nanosS.getChars(0, nanosS.length(), nanosChar, 0); - int truncIndex = 8; - while (nanosChar[truncIndex] == '0') { - truncIndex--; - } - nanosS = new String(nanosChar, 0, truncIndex + 1); - } - - timestampBuf = new StringBuffer(); - timestampBuf.append(yearS); - timestampBuf.append("-"); - timestampBuf.append(monthS); - timestampBuf.append("-"); - timestampBuf.append(dayS); - timestampBuf.append("T"); - timestampBuf.append(hourS); - timestampBuf.append(":"); - timestampBuf.append(minuteS); - timestampBuf.append(":"); - timestampBuf.append(secondS); - timestampBuf.append("."); - timestampBuf.append(nanosS); - - return (timestampBuf.toString()); - } + }*/ + + // --java5 or newer @Override + @Override + public TransactionHandler getTransactionHandler() { + return new VirtTransactionHandler(this); + } + + @Override + public PrefixMapping getPrefixMapping() { + if (m_prefixMapping == null) + m_prefixMapping = new VirtPrefixMapping(this); + return m_prefixMapping; + } + + // --java5 or newer @Override + public void add(Triple[] triples) { + addIterator(Arrays.asList(triples).iterator(), false); + gem.notifyAddArray(this, triples); + } + + // --java5 or newer @Override + protected void add(List triples, boolean notify) { + addIterator(triples.iterator(), false); + if (notify) + gem.notifyAddList(this, triples); + } + + // --java5 or newer @Override + public void addIterator(Iterator it, boolean notify) { + VirtGraph _graph = this; + List list; + if (notify) list = new ArrayList<>(); + else list = null; + + _graph = prepareGraphConnection(_graph, it, list); + + if (notify) + gem.notifyAddIterator(_graph, list); + } + + public VirtGraph prepareGraphConnection(VirtGraph _graph, Iterator it, List list) { + try { + boolean autoCommit = _graph.getConnection().getAutoCommit(); + if (autoCommit) + _graph.getConnection().setAutoCommit(false); + _graph.add(it, list); + if (autoCommit) { + _graph.getConnection().commit(); + _graph.getConnection().setAutoCommit(true); + } + } catch (Exception e) { + throw new JenaException("Couldn't create transaction:" + e); + } + return _graph; + } + + public void delete(Triple[] triples) { + deleteIterator(Arrays.asList(triples).iterator(), false); + gem.notifyDeleteArray(this, triples); + } + + protected void delete(List triples, boolean notify) { + deleteIterator(triples.iterator(), false); + if (notify) + gem.notifyDeleteList(this, triples); + } + + public void deleteIterator(Iterator it, boolean notify) { + VirtGraph _graph = this; + List list; + if (notify) list = new ArrayList<>(); + else list = null; + + prepareGraphConnection(_graph, it, list); + + if (notify) + gem.notifyDeleteIterator(_graph, list); + } + + public void removeAll() { + VirtGraph _graph = this; + _graph.clearGraph(_graph.getGraphName()); + } + + @Override + public void remove(Node s, Node p, Node o) { + VirtGraph _graph = this; + _graph.delete_match(Triple.createMatch(s, p, o)); + gem.notifyEvent(this, GraphEvents.remove(s, p, o)); + } } diff --git a/src/main/java/virtuoso/jena/driver/VirtInfGraph.java b/src/main/java/virtuoso/jena/driver/VirtInfGraph.java index 2258e20..474631d 100644 --- a/src/main/java/virtuoso/jena/driver/VirtInfGraph.java +++ b/src/main/java/virtuoso/jena/driver/VirtInfGraph.java @@ -23,219 +23,237 @@ package virtuoso.jena.driver; -//import java.sql.*; -import java.util.Iterator; +import org.apache.jena.graph.Graph; +import org.apache.jena.graph.Node; +import org.apache.jena.graph.Triple; +import org.apache.jena.graph.compose.MultiUnion; +import org.apache.jena.reasoner.*; +import org.apache.jena.util.iterator.ExtendedIterator; -import com.hp.hpl.jena.graph.Graph; -import com.hp.hpl.jena.graph.Node; -import com.hp.hpl.jena.graph.Triple; -import com.hp.hpl.jena.graph.compose.MultiUnion; -import com.hp.hpl.jena.reasoner.Derivation; -import com.hp.hpl.jena.reasoner.InfGraph; -import com.hp.hpl.jena.reasoner.Reasoner; -import com.hp.hpl.jena.reasoner.ReasonerException; -import com.hp.hpl.jena.reasoner.StandardValidityReport; -import com.hp.hpl.jena.reasoner.ValidityReport; -import com.hp.hpl.jena.util.iterator.ExtendedIterator; +import java.util.Iterator; public class VirtInfGraph extends VirtGraph implements InfGraph { - protected boolean recordDerivations; - - public VirtInfGraph(String _ruleSet, boolean useSameAs, String graphName) { - super(graphName); - setRuleSet(_ruleSet); - setSameAs(useSameAs); - } - - public VirtInfGraph(String _ruleSet, boolean useSameAs, String graphName, - String url_hostlist, String user, String password) { - super(graphName, url_hostlist, user, password); - setRuleSet(_ruleSet); - setSameAs(useSameAs); - } - - public VirtInfGraph(String _ruleSet, boolean useSameAs, String graphName, - String url_hostlist, String user, String password, - boolean roundrobin) { - super(graphName, url_hostlist, user, password, roundrobin); - setRuleSet(_ruleSet); - setSameAs(useSameAs); - } - - /** - * Return the raw RDF data Graph being processed (i.e. the argument to the - * Reasonder.bind call that created this InfGraph). - */ - public Graph getRawGraph() { - VirtGraph g = new VirtGraph(getGraphName(), getGraphUrl(), - getGraphUser(), getGraphPassword(), roundrobin); - return g; - } - - /** - * Return the Reasoner which is being used to answer queries to this graph. - */ - public Reasoner getReasoner() { - return null; // ??TODO - } - - /** - * Replace the underlying data graph for this inference graph and start any - * inferences over again. This is primarily using in setting up ontology - * imports processing to allow an imports multiunion graph to be inserted - * between the inference graph and the raw data, before processing. - * - * @param data - * the new raw data graph - */ - public void rebind(Graph data) { - } - - /** - * Cause the inference graph to reconsult the underlying graph to take into - * account changes. Normally changes are made through the InfGraph's add and - * remove calls are will be handled appropriately. However, in some cases - * changes are made "behind the InfGraph's back" and this forces a full - * reconsult of the changed data. - */ - public void rebind() { - } - - /** - * Perform any initial processing and caching. This call is optional. Most - * engines either have negligable set up work or will perform an implicit - * "prepare" if necessary. The call is provided for those occasions where - * substantial preparation work is possible (e.g. running a forward chaining - * rule system) and where an application might wish greater control over - * when this prepration is done. - */ - public void prepare() { - } - - /** - * Reset any internal caches. Some systems, such as the tabled backchainer, - * retain information after each query. A reset will wipe this information - * preventing unbounded memory use at the expense of more expensive future - * queries. A reset does not cause the raw data to be reconsulted and so is - * less expensive than a rebind. - */ - public void reset() { - } - - /** - * Test a global boolean property of the graph. This might included - * properties like consistency, OWLSyntacticValidity etc. It remains to be - * seen what level of generality is needed here. We could replace this by a - * small number of specific tests for common concepts. - * - * @param property - * the URI of the property to be tested - * @return a Node giving the value of the global property, this may be a - * boolean literal, some other literal value (e.g. a size). - */ - public Node getGlobalProperty(Node property) { - throw new ReasonerException("Global property not implemented: " - + property); - } - - /** - * A convenience version of getGlobalProperty which can only return a - * boolean result. - */ - public boolean testGlobalProperty(Node property) { - Node resultNode = getGlobalProperty(property); - if (resultNode.isLiteral()) { - Object result = resultNode.getLiteralValue(); - if (result instanceof Boolean) { - return ((Boolean) result).booleanValue(); - } - } - throw new ReasonerException( - "Global property test returned non-boolean value" - + "\nTest was: " + property + "\nResult was: " - + resultNode); - } - - /** - * Test the consistency of the bound data. This normally tests the validity - * of the bound instance data against the bound schema data. - * - * @return a ValidityReport structure - */ - public ValidityReport validate() { - checkOpen(); - return new StandardValidityReport(); - } - - /** - * An extension of the Graph.find interface which allows the caller to - * encode complex expressions in RDF and then refer to those expressions - * within the query triple. For example, one might encode a class expression - * and then ask if there are any instances of this class expression in the - * InfGraph. - * - * @param subject - * the subject Node of the query triple, may be a Node in the - * graph or a node in the parameter micro-graph or null - * @param property - * the property to be retrieved or null - * @param object - * the object Node of the query triple, may be a Node in the - * graph or a node in the parameter micro-graph. - * @param param - * a small graph encoding an expression which the subject and/or - * object nodes refer. - */ - public ExtendedIterator find(Node subject, Node property, - Node object, Graph param) { - return cloneWithPremises(param).find(subject, property, object); - } - - /** - * Return a new inference graph which is a clone of the current graph - * together with an additional set of data premises. The default - * implementation loses ALL partial deductions so far. Some subclasses may - * be able to a more efficient job. - */ - public Graph cloneWithPremises(Graph premises) { - MultiUnion union = new MultiUnion(); - union.addGraph(this); - union.setBaseGraph(this); - union.addGraph(premises); - return union; - } - - /** - * Switch on/off drivation logging - */ - public void setDerivationLogging(boolean logOn) { - recordDerivations = logOn; - } - - /** - * Return the derivation of the given triple (which is the result of some - * previous find operation). Not all reasoneers will support derivations. - * - * @return an iterator over Derivation records or null if there is no - * derivation information available for this triple. - */ - public Iterator getDerivation(Triple triple) { - return null; - } - - /** - * Returns a derivations graph. The rule reasoners typically create a graph - * containing those triples added to the base graph due to rule firings. In - * some applications it can useful to be able to access those deductions - * directly, without seeing the raw data which triggered them. In - * particular, this allows the forward rules to be used as if they were - * rewrite transformation rules. - * - * @return the deductions graph, if relevant for this class of inference - * engine or null if not. - */ - public Graph getDeductionsGraph() { - return null; - } + + private static final org.slf4j.Logger logger = + org.slf4j.LoggerFactory.getLogger(VirtInfGraph.class); + + protected boolean recordDerivations; + + public VirtInfGraph(String _ruleSet, boolean useSameAs, String graphName) { + super(graphName); + setRuleSet(_ruleSet); + setSameAs(useSameAs); + } + + public VirtInfGraph(String _ruleSet, boolean useSameAs, String graphName, + String url_hostlist, String user, String password) { + super(graphName, url_hostlist, user, password); + setRuleSet(_ruleSet); + setSameAs(useSameAs); + } + + public VirtInfGraph(String _ruleSet, boolean useSameAs, String graphName, + String url_hostlist, String user, String password, + boolean roundrobin) { + super(graphName, url_hostlist, user, password, roundrobin); + setRuleSet(_ruleSet); + setSameAs(useSameAs); + } + + /** + * Return the raw RDF data Graph being processed (i.e. the argument to the + * Reasonder.bind call that created this InfGraph). + * + * @return {@link Graph} + */ + @Override + public Graph getRawGraph() { + return new VirtGraph(getGraphName(), getGraphUrl(), + getGraphUser(), getGraphPassword(), roundrobin); + } + + /** + * Return the Reasoner which is being used to answer queries to this graph. + * + * @return {@link Reasoner} + */ + @Override + public Reasoner getReasoner() { + return null; // ??TODO + } + + /** + * Replace the underlying data graph for this inference graph and start any + * inferences over again. This is primarily using in setting up ontology + * imports processing to allow an imports multiunion graph to be inserted + * between the inference graph and the raw data, before processing. + * + * @param data the new raw data graph + */ + @Override + public void rebind(Graph data) { + } + + /** + * Cause the inference graph to reconsult the underlying graph to take into + * account changes. Normally changes are made through the InfGraph's add and + * remove calls are will be handled appropriately. However, in some cases + * changes are made "behind the InfGraph's back" and this forces a full + * reconsult of the changed data. + */ + @Override + public void rebind() { + } + + /** + * Perform any initial processing and caching. This call is optional. Most + * engines either have negligable set up work or will perform an implicit + * "prepare" if necessary. The call is provided for those occasions where + * substantial preparation work is possible (e.g. running a forward chaining + * rule system) and where an application might wish greater control over + * when this prepration is done. + */ + @Override + public void prepare() { + } + + /** + * Reset any internal caches. Some systems, such as the tabled backchainer, + * retain information after each query. A reset will wipe this information + * preventing unbounded memory use at the expense of more expensive future + * queries. A reset does not cause the raw data to be reconsulted and so is + * less expensive than a rebind. + */ + @Override + public void reset() { + } + + /** + * Test a global boolean property of the graph. This might included + * properties like consistency, OWLSyntacticValidity etc. It remains to be + * seen what level of generality is needed here. We could replace this by a + * small number of specific tests for common concepts. + * + * @param property the URI of the property to be tested + * @return a Node giving the value of the global property, this may be a + * boolean literal, some other literal value (e.g. a size). + */ + @Override + public Node getGlobalProperty(Node property) { + throw new ReasonerException("Global property not implemented: " + + property); + } + + /** + * A convenience version of getGlobalProperty which can only return a + * boolean result. + * + * @param property the {@link Node} Jena property. + * @return the {@link Boolean} is True if all the operation ared one. + */ + @Override + public boolean testGlobalProperty(Node property) { + Node resultNode = getGlobalProperty(property); + if (resultNode.isLiteral()) { + Object result = resultNode.getLiteralValue(); + if (result instanceof Boolean) { + return (Boolean) result; + } + } + throw new ReasonerException( + "Global property test returned non-boolean value" + + "\nTest was: " + property + "\nResult was: " + + resultNode); + } + + /** + * Test the consistency of the bound data. This normally tests the validity + * of the bound instance data against the bound schema data. + * + * @return a ValidityReport structure + */ + @Override + public ValidityReport validate() { + checkOpen(); + return new StandardValidityReport(); + } + + /** + * An extension of the Graph.find interface which allows the caller to + * encode complex expressions in RDF and then refer to those expressions + * within the query triple. For example, one might encode a class expression + * and then ask if there are any instances of this class expression in the + * InfGraph. + * + * @param subject the subject Node of the query triple, may be a Node in the + * graph or a node in the parameter micro-graph or null + * @param property the property to be retrieved or null + * @param object the object Node of the query triple, may be a Node in the + * graph or a node in the parameter micro-graph. + * @param param a small graph encoding an expression which the subject and/or + * object nodes refer. + * @return the {@link ExtendedIterator} of Triple. + */ + @Override + public ExtendedIterator find(Node subject, Node property, + Node object, Graph param) { + return cloneWithPremises(param).find(subject, property, object); + } + + /** + * Return a new inference graph which is a clone of the current graph + * together with an additional set of data premises. The default + * implementation loses ALL partial deductions so far. Some subclasses may + * be able to a more efficient job. + * + * @param premises the {@link Graph} jena. + * @return the {@link Graph} + */ + public Graph cloneWithPremises(Graph premises) { + MultiUnion union = new MultiUnion(); + union.addGraph(this); + union.setBaseGraph(this); + union.addGraph(premises); + return union; + } + + /** + * Switch on/off drivation logging + * + * @param logOn {@link Boolean} + */ + @Override + public void setDerivationLogging(boolean logOn) { + recordDerivations = logOn; + } + + /** + * Return the derivation of the given triple (which is the result of some + * previous find operation). Not all reasoneers will support derivations. + * + * @param triple {@link Triple} + * @return an iterator over Derivation records or null if there is no + * derivation information available for this triple. + */ + @Override + public Iterator getDerivation(Triple triple) { + return null; + } + + /** + * Returns a derivations graph. The rule reasoners typically create a graph + * containing those triples added to the base graph due to rule firings. In + * some applications it can useful to be able to access those deductions + * directly, without seeing the raw data which triggered them. In + * particular, this allows the forward rules to be used as if they were + * rewrite transformation rules. + * + * @return the deductions graph, if relevant for this class of inference + * engine or null if not. + */ + @Override + public Graph getDeductionsGraph() { + return null; + } } diff --git a/src/main/java/virtuoso/jena/driver/VirtModel.java b/src/main/java/virtuoso/jena/driver/VirtModel.java index 7d601d4..826e049 100644 --- a/src/main/java/virtuoso/jena/driver/VirtModel.java +++ b/src/main/java/virtuoso/jena/driver/VirtModel.java @@ -22,64 +22,67 @@ */ package virtuoso.jena.driver; +import org.apache.jena.rdf.model.Model; +import org.apache.jena.rdf.model.impl.ModelCom; import virtuoso.jdbc4.VirtuosoDataSource; -import com.hp.hpl.jena.rdf.model.Model; -import com.hp.hpl.jena.rdf.model.impl.ModelCom; - public class VirtModel extends ModelCom { - /** - * @param base - */ - public VirtModel(VirtGraph base) { - super(base); - } + private static final org.slf4j.Logger logger = + org.slf4j.LoggerFactory.getLogger(VirtModel.class); + + /** + * @param base {@link VirtGraph} + */ + public VirtModel(VirtGraph base) { + super(base); + } - public static VirtModel openDefaultModel(VirtuosoDataSource ds) { - return new VirtModel(new VirtGraph(ds)); - } + public static VirtModel openDefaultModel(VirtuosoDataSource ds) { + return new VirtModel(new VirtGraph(ds)); + } - public static VirtModel openDatabaseModel(String graphName, - VirtuosoDataSource ds) { - return new VirtModel(new VirtGraph(graphName, ds)); - } + public static VirtModel openDatabaseModel(String graphName, + VirtuosoDataSource ds) { + return new VirtModel(new VirtGraph(graphName, ds)); + } - public static VirtModel openDefaultModel(String url, String user, - String password) { - return new VirtModel(new VirtGraph(url, user, password)); - } + public static VirtModel openDefaultModel(String url, String user, + String password) { + return new VirtModel(new VirtGraph(url, user, password)); + } - public static VirtModel openDatabaseModel(String graphName, String url, - String user, String password) { - return new VirtModel(new VirtGraph(graphName, url, user, password)); - } + public static VirtModel openDatabaseModel(String graphName, String url, + String user, String password) { + return new VirtModel(new VirtGraph(graphName, url, user, password)); + } - // --java5 or newer @Override - public Model removeAll() { - try { - VirtGraph _graph = (VirtGraph) this.graph; - _graph.clear(); - } catch (ClassCastException e) { - super.removeAll(); - } - return this; - } + // --java5 or newer @Override + @Override + public Model removeAll() { + try { + VirtGraph _graph = (VirtGraph) this.graph; + _graph.clear(); + } catch (ClassCastException e) { + super.removeAll(); + } + return this; + } - public void createRuleSet(String ruleSetName, String uriGraphRuleSet) { - ((VirtGraph) this.graph).createRuleSet(ruleSetName, uriGraphRuleSet); - } + public void createRuleSet(String ruleSetName, String uriGraphRuleSet) { + ((VirtGraph) this.graph).createRuleSet(ruleSetName, uriGraphRuleSet); + } - public void removeRuleSet(String ruleSetName, String uriGraphRuleSet) { - ((VirtGraph) this.graph).removeRuleSet(ruleSetName, uriGraphRuleSet); - } + public void removeRuleSet(String ruleSetName, String uriGraphRuleSet) { + ((VirtGraph) this.graph).removeRuleSet(ruleSetName, uriGraphRuleSet); + } - public void setRuleSet(String _ruleSet) { - ((VirtGraph) this.graph).setRuleSet(_ruleSet); - } + public void setRuleSet(String _ruleSet) { + ((VirtGraph) this.graph).setRuleSet(_ruleSet); + } - public void setSameAs(boolean _sameAs) { - ((VirtGraph) this.graph).setSameAs(_sameAs); - } + public void setSameAs(boolean _sameAs) { + ((VirtGraph) this.graph).setSameAs(_sameAs); + } } diff --git a/src/main/java/virtuoso/jena/driver/VirtPrefixMapping.java b/src/main/java/virtuoso/jena/driver/VirtPrefixMapping.java index b57b3bb..b5bd025 100644 --- a/src/main/java/virtuoso/jena/driver/VirtPrefixMapping.java +++ b/src/main/java/virtuoso/jena/driver/VirtPrefixMapping.java @@ -26,101 +26,105 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; -import java.util.Iterator; import java.util.Map; -import com.hp.hpl.jena.shared.JenaException; -import com.hp.hpl.jena.shared.PrefixMapping; -import com.hp.hpl.jena.shared.impl.PrefixMappingImpl; +import org.apache.jena.shared.JenaException; +import org.apache.jena.shared.PrefixMapping; +import org.apache.jena.shared.impl.PrefixMappingImpl; public class VirtPrefixMapping extends PrefixMappingImpl { - protected VirtGraph m_graph = null; - - /** - * Constructor for a persistent prefix mapping. - * - */ - public VirtPrefixMapping(VirtGraph graph) { - super(); - m_graph = graph; - - // Populate the prefix map using data from the - // persistent graph properties - String query = "DB.DBA.XML_SELECT_ALL_NS_DECLS (3)"; - try { - Statement stmt = m_graph.createStatement(); - ResultSet rs = stmt.executeQuery(query); - - while (rs.next()) { - String prefix = rs.getString(1); - String uri = rs.getString(2); - if (uri != null && uri != null) - super.setNsPrefix(prefix, uri); - } - rs.close(); - stmt.close(); - } catch (Exception e) { - throw new JenaException(e); - } - } - - public PrefixMapping removeNsPrefix(String prefix) { - String query = "DB.DBA.XML_REMOVE_NS_BY_PREFIX(?, 1)"; - super.removeNsPrefix(prefix); - - try { - PreparedStatement ps = m_graph.prepareStatement(query); - ps.setString(1, prefix); - ps.execute(); - ps.close(); - } catch (Exception e) { - throw new JenaException(e); - } - - return this; - } - - /* - * (non-Javadoc) Override the default implementation so we can catch the - * write operation and update the persistent store. - * - * @see com.hp.hpl.jena.shared.PrefixMapping#setNsPrefix(java.lang.String, - * java.lang.String) - */ - public PrefixMapping setNsPrefix(String prefix, String uri) { - super.setNsPrefix(prefix, uri); - - String query = "DB.DBA.XML_SET_NS_DECL(?, ?, 1)"; - - // All went well, so persist the prefix by adding it to the graph - // properties - // (the addPrefix call will overwrite any existing mapping with the same - // prefix - // so it matches the behaviour of the prefixMappingImpl). - try { - PreparedStatement ps = m_graph.prepareStatement(query); - ps.setString(1, prefix); - ps.setString(2, uri); - ps.execute(); - ps.close(); - } catch (Exception e) { - throw new JenaException(e.toString()); - } - return this; - } - - public PrefixMapping setNsPrefixes(PrefixMapping other) { - return setNsPrefixes(other.getNsPrefixMap()); - } - - public PrefixMapping setNsPrefixes(Map other) { - checkUnlocked(); - Iterator it = other.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry e = (Map.Entry) it.next(); - setNsPrefix((String) e.getKey(), (String) e.getValue()); - } - return this; - } + private static final org.slf4j.Logger logger = + org.slf4j.LoggerFactory.getLogger(VirtPrefixMapping.class); + + protected VirtGraph m_graph = null; + + /** + * Constructor for a persistent prefix mapping. + * + * @param graph the {@link VirtGraph} + */ + public VirtPrefixMapping(VirtGraph graph) { + super(); + m_graph = graph; + + // Populate the prefix map using data from the + // persistent graph properties + String query = "DB.DBA.XML_SELECT_ALL_NS_DECLS (3)"; + try { + try (Statement stmt = m_graph.createStatement(); ResultSet rs = stmt.executeQuery(query)) { + + while (rs.next()) { + String prefix = rs.getString(1); + String uri = rs.getString(2); + if (uri != null) + super.setNsPrefix(prefix, uri); + } + } + } catch (Exception e) { + throw new JenaException(e); + } + } + + @Override + public PrefixMapping removeNsPrefix(String prefix) { + String query = "DB.DBA.XML_REMOVE_NS_BY_PREFIX(?, 1)"; + super.removeNsPrefix(prefix); + + try { + try (PreparedStatement ps = m_graph.createPreparedStatement(query)) { + ps.setString(1, prefix); + ps.execute(); + } + } catch (Exception e) { + throw new JenaException(e); + } + + return this; + } + + /* + * (non-Javadoc) Override the default implementation so we can catch the + * write operation and update the persistent store. + * + * @see com.hp.hpl.jena.shared.PrefixMapping#setNsPrefix(java.lang.String, + * java.lang.String) + */ + @Override + public PrefixMapping setNsPrefix(String prefix, String uri) { + super.setNsPrefix(prefix, uri); + + String query = "DB.DBA.XML_SET_NS_DECL(?, ?, 1)"; + + // All went well, so persist the prefix by adding it to the graph + // properties + // (the addPrefix call will overwrite any existing mapping with the same + // prefix + // so it matches the behaviour of the prefixMappingImpl). + try { + try (PreparedStatement ps = m_graph.createPreparedStatement(query)) { + ps.setString(1, prefix); + ps.setString(2, uri); + ps.execute(); + } + } catch (Exception e) { + throw new JenaException(e.toString()); + } + return this; + } + + @Override + public PrefixMapping setNsPrefixes(PrefixMapping other) { + return setNsPrefixes(other.getNsPrefixMap()); + } + + @Override + public PrefixMapping setNsPrefixes(Map other) { + checkUnlocked(); + for (Object o : other.entrySet()) { + Map.Entry e = (Map.Entry) o; + setNsPrefix((String) e.getKey(), (String) e.getValue()); + } + return this; + } } diff --git a/src/main/java/virtuoso/jena/driver/VirtResSetIter.java b/src/main/java/virtuoso/jena/driver/VirtResSetIter.java index 814e5a4..51435a7 100644 --- a/src/main/java/virtuoso/jena/driver/VirtResSetIter.java +++ b/src/main/java/virtuoso/jena/driver/VirtResSetIter.java @@ -23,132 +23,142 @@ package virtuoso.jena.driver; +import org.apache.jena.graph.Node; +import org.apache.jena.graph.Triple; +import org.apache.jena.shared.JenaException; +import org.apache.jena.util.iterator.NiceIterator; + import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.NoSuchElementException; -import com.hp.hpl.jena.graph.Node; -import com.hp.hpl.jena.graph.Triple; -import com.hp.hpl.jena.graph.TripleMatch; -import com.hp.hpl.jena.shared.JenaException; -import com.hp.hpl.jena.util.iterator.NiceIterator; - public class VirtResSetIter extends NiceIterator { - protected ResultSet v_resultSet; - protected Triple v_row; - protected TripleMatch v_in; - protected boolean v_finished = false; - protected boolean v_prefetched = false; - protected VirtGraph v_graph = null; - protected PreparedStatement v_stmt = null; - - public VirtResSetIter() { - v_finished = true; - } - - public VirtResSetIter(VirtGraph graph, ResultSet resultSet, TripleMatch in, - PreparedStatement stmt) { - v_resultSet = resultSet; - v_in = in; - v_graph = graph; - v_stmt = stmt; - } - - public void reset(ResultSet resultSet, PreparedStatement sourceStatement) { - v_resultSet = resultSet; - v_finished = false; - v_prefetched = false; - v_row = null; - } - - public boolean hasNext() { - if (!v_finished && !v_prefetched) - moveForward(); - return !v_finished; - } - - public Triple removeNext() { - Triple ret = next(); - remove(); - return ret; - } - - public Triple next() { - if (!v_finished && !v_prefetched) - moveForward(); - - v_prefetched = false; - - if (v_finished) - throw new NoSuchElementException(); - - return getRow(); - } - - public void remove() { - if (v_row != null && v_graph != null) { - v_graph.delete(v_row); - v_row = null; - } - } - - protected void moveForward() { - try { - if (!v_finished && v_resultSet.next()) { - extractRow(); - v_prefetched = true; - } else - close(); - } catch (Exception e) { - throw new JenaException(e); - } - } - - protected void extractRow() throws Exception { - Node NodeS, NodeP, NodeO; - - if (v_in.getMatchSubject() != null) - NodeS = v_in.getMatchSubject(); - else - NodeS = VirtGraph.Object2Node(v_resultSet.getObject("s")); - - if (v_in.getMatchPredicate() != null) - NodeP = v_in.getMatchPredicate(); - else - NodeP = VirtGraph.Object2Node(v_resultSet.getObject("p")); - - if (v_in.getMatchObject() != null) - NodeO = v_in.getMatchObject(); - else - NodeO = VirtGraph.Object2Node(v_resultSet.getObject("o")); - - v_row = new Triple(NodeS, NodeP, NodeO); - } - - protected Triple getRow() { - return v_row; - } - - public void close() { - if (!v_finished) { - if (v_resultSet != null) { - try { - v_resultSet.close(); - v_stmt.close(); - v_resultSet = null; - v_stmt = null; - } catch (SQLException e) { - throw new JenaException(e); - } - } - } - v_finished = true; - } - - protected void finalize() throws SQLException { - if (!v_finished && v_resultSet != null) - close(); - } + + private static final org.slf4j.Logger logger = + org.slf4j.LoggerFactory.getLogger(VirtResSetIter.class); + + protected ResultSet v_resultSet; + protected Triple v_row; + protected Triple v_in; + protected boolean v_finished = false; + protected boolean v_prefetched = false; + protected VirtGraph v_graph = null; + protected PreparedStatement v_stmt = null; + + public VirtResSetIter() { + v_finished = true; + } + + public VirtResSetIter(VirtGraph graph, ResultSet resultSet, Triple in, + PreparedStatement stmt) { + v_resultSet = resultSet; + v_in = in; + v_graph = graph; + v_stmt = stmt; + } + + public void reset(ResultSet resultSet, PreparedStatement sourceStatement) { + v_resultSet = resultSet; + v_finished = false; + v_prefetched = false; + v_row = null; + } + + @Override + public boolean hasNext() { + if (!v_finished && !v_prefetched) + moveForward(); + return !v_finished; + } + + @Override + public Triple removeNext() { + Triple ret = next(); + remove(); + return ret; + } + + @Override + public Triple next() { + if (!v_finished && !v_prefetched) + moveForward(); + + v_prefetched = false; + + if (v_finished) + throw new NoSuchElementException(); + + return getRow(); + } + + @Override + public void remove() { + if (v_row != null && v_graph != null) { + v_graph.delete(v_row); + v_row = null; + } + } + + protected void moveForward() { + try { + if (!v_finished && v_resultSet.next()) { + extractRow(); + v_prefetched = true; + } else + close(); + } catch (Exception e) { + throw new JenaException(e); + } + } + + protected void extractRow() throws Exception { + Node NodeS, NodeP, NodeO; + + if (v_in.getMatchSubject() != null) + NodeS = v_in.getMatchSubject(); + else + NodeS = VirtUtilities.toNode(v_resultSet.getObject("s")); + + if (v_in.getMatchPredicate() != null) + NodeP = v_in.getMatchPredicate(); + else + NodeP = VirtUtilities.toNode(v_resultSet.getObject("p")); + + if (v_in.getMatchObject() != null) + NodeO = v_in.getMatchObject(); + else + NodeO = VirtUtilities.toNode(v_resultSet.getObject("o")); + + v_row = new Triple(NodeS, NodeP, NodeO); + } + + protected Triple getRow() { + return v_row; + } + + @Override + public void close() { + if (!v_finished) { + if (v_resultSet != null) { + try { + v_resultSet.close(); + v_stmt.close(); + v_resultSet = null; + v_stmt = null; + } catch (SQLException e) { + throw new JenaException(e); + } + } + } + v_finished = true; + } + + @Override + protected void finalize() throws Throwable { + if (!v_finished && v_resultSet != null) + super.finalize(); + close(); + } } diff --git a/src/main/java/virtuoso/jena/driver/VirtTransactionHandler.java b/src/main/java/virtuoso/jena/driver/VirtTransactionHandler.java index 1d942ff..8c7939c 100644 --- a/src/main/java/virtuoso/jena/driver/VirtTransactionHandler.java +++ b/src/main/java/virtuoso/jena/driver/VirtTransactionHandler.java @@ -26,86 +26,93 @@ import java.sql.Connection; import java.sql.SQLException; -import com.hp.hpl.jena.graph.impl.TransactionHandlerBase; -import com.hp.hpl.jena.shared.JenaException; +import org.apache.jena.graph.impl.TransactionHandlerBase; +import org.apache.jena.shared.JenaException; public class VirtTransactionHandler extends TransactionHandlerBase { - private VirtGraph graph = null; - private Boolean m_transactionsSupported = null; + private static final org.slf4j.Logger logger = + org.slf4j.LoggerFactory.getLogger(VirtTransactionHandler.class); - public VirtTransactionHandler(VirtGraph _graph) { - super(); - this.graph = _graph; - } + private VirtGraph graph = null; + private Boolean m_transactionsSupported = null; - public boolean transactionsSupported() { - if (m_transactionsSupported != null) { - return (m_transactionsSupported.booleanValue()); - } + public VirtTransactionHandler(VirtGraph _graph) { + super(); + this.graph = _graph; + } - try { - Connection c = graph.getConnection(); - if (c != null) { - m_transactionsSupported = new Boolean(c.getMetaData() - .supportsMultipleTransactions()); - return (m_transactionsSupported.booleanValue()); - } - } catch (Exception e) { - throw new JenaException(e); - } - return (false); - } + @Override + public boolean transactionsSupported() { + if (m_transactionsSupported != null) { + return (m_transactionsSupported); + } - public void begin() { - if (transactionsSupported()) { - try { - Connection c = graph.getConnection(); - if (c.getTransactionIsolation() != Connection.TRANSACTION_READ_COMMITTED) { - c.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); - } - if (c.getAutoCommit()) { - c.setAutoCommit(false); - } - } catch (SQLException e) { - throw new JenaException("Transaction begin failed: ", e); - } - } else { - notSupported("begin transaction"); - } - } + try { + Connection c = graph.getConnection(); + if (c != null) { + m_transactionsSupported = c.getMetaData() + .supportsMultipleTransactions(); + return (m_transactionsSupported); + } + } catch (Exception e) { + throw new JenaException(e); + } + return (false); + } - public void abort() { - if (transactionsSupported()) { - try { - Connection c = graph.getConnection(); - c.rollback(); - c.commit(); - c.setAutoCommit(true); - } catch (SQLException e) { - throw new JenaException("Transaction rollback failed: ", e); - } - } else { - notSupported("abort transaction"); - } - } + @Override + public void begin() { + if (transactionsSupported()) { + try { + Connection c = graph.getConnection(); + if (c.getTransactionIsolation() != Connection.TRANSACTION_READ_COMMITTED) { + c.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); + } + if (c.getAutoCommit()) { + c.setAutoCommit(false); + } + } catch (SQLException e) { + throw new JenaException("Transaction begin failed: ", e); + } + } else { + notSupported("begin transaction"); + } + } - public void commit() { - if (transactionsSupported()) { - try { - Connection c = graph.getConnection(); - c.commit(); - c.setAutoCommit(true); - } catch (SQLException e) { - throw new JenaException("Transaction commit failed: ", e); - } - } else { - notSupported("commit transaction"); - } - } + @Override + public void abort() { + if (transactionsSupported()) { + try { + Connection c = graph.getConnection(); + c.rollback(); + c.commit(); + c.setAutoCommit(true); + } catch (SQLException e) { + throw new JenaException("Transaction rollback failed: ", e); + } + } else { + notSupported("abort transaction"); + } + } - private void notSupported(String opName) { - throw new UnsupportedOperationException(opName); - } + @Override + public void commit() { + if (transactionsSupported()) { + try { + Connection c = graph.getConnection(); + c.commit(); + c.setAutoCommit(true); + } catch (SQLException e) { + throw new JenaException("Transaction commit failed: ", e); + } + } else { + notSupported("commit transaction"); + } + } + + private void notSupported(String opName) { + throw new UnsupportedOperationException(opName); + } } diff --git a/src/main/java/virtuoso/jena/driver/VirtUtilities.java b/src/main/java/virtuoso/jena/driver/VirtUtilities.java new file mode 100644 index 0000000..69fe9f0 --- /dev/null +++ b/src/main/java/virtuoso/jena/driver/VirtUtilities.java @@ -0,0 +1,307 @@ +package virtuoso.jena.driver; + +import org.apache.jena.datatypes.RDFDatatype; +import org.apache.jena.datatypes.TypeMapper; +import org.apache.jena.datatypes.xsd.XSDDatatype; +import org.apache.jena.graph.BlankNodeId; +import org.apache.jena.graph.Node; +import org.apache.jena.graph.NodeFactory; +import org.apache.jena.graph.impl.LiteralLabel; +import org.apache.jena.iri.IRI; +import org.apache.jena.iri.IRIFactory; +import org.apache.jena.rdf.model.Literal; +import org.apache.jena.rdf.model.RDFNode; +import org.apache.jena.rdf.model.Resource; +import org.apache.jena.sparql.util.NodeUtils; + +import java.util.Calendar; +import java.util.GregorianCalendar; + +/** + * Created by 4535992 on 08/01/2016. + * + * @see if you like these method you can found more on : + */ +public class VirtUtilities { + + private static final org.slf4j.Logger logger = + org.slf4j.LoggerFactory.getLogger(VirtUtilities.class); + + /** + * Method to convert a String uri to a jena Graph Node. + * old name : createNode. + * href: http://willware.blogspot.it/2010/02/jena-node-versus-rdfnode.html + * + * @param resource any element on API Jena can be converted to a Node. + * @return the Jena Graph Node. + */ + private static Node createNodeBase(Object resource, String lang, RDFDatatype rdfDatatype, Boolean xml) { + try { + if (resource == null) { + return null; + } else if (resource instanceof Node) { + return (Node) resource; + } else if (lang != null && rdfDatatype != null) { + return NodeFactory.createLiteral(String.valueOf(resource), lang, rdfDatatype); + } else if (rdfDatatype != null) { + return NodeFactory.createLiteral(String.valueOf(resource), rdfDatatype); + } else if (lang != null && xml != null) { + return NodeFactory.createLiteral(String.valueOf(resource), lang, xml); + } else if (lang != null) { + return NodeFactory.createLiteral(String.valueOf(resource), lang); + } else { + if (resource instanceof Literal) { + return ((Literal) resource).asNode(); + } else if (resource instanceof Resource) { + return ((Resource) resource).asNode(); + } else if (resource instanceof RDFNode) { + return ((RDFNode) resource).asNode(); + } else if (resource instanceof LiteralLabel) { + return NodeFactory.createLiteral((LiteralLabel) resource); + } else if (resource instanceof virtuoso.sql.ExtendedString) { + virtuoso.sql.ExtendedString vs = (virtuoso.sql.ExtendedString) resource; + if (vs.getIriType() == virtuoso.sql.ExtendedString.IRI + && (vs.getStrType() & 0x01) == 0x01) { + if (vs.toString().indexOf("_:") == 0) + return NodeFactory.createBlankNode(BlankNodeId.create(String.valueOf(vs) + .substring(2))); // _: + else + return NodeFactory.createURI(String.valueOf(vs)); + + } else if (vs.getIriType() == virtuoso.sql.ExtendedString.BNODE) { + return NodeFactory.createBlankNode(BlankNodeId.create(String.valueOf(vs).substring(9))); // nodeID:// + + } else { + return NodeFactory.createLiteral(String.valueOf(vs)); + } + } else if (resource instanceof virtuoso.sql.RdfBox) { + virtuoso.sql.RdfBox rb = (virtuoso.sql.RdfBox) resource; + String rb_type = rb.getType(); + if (rb_type != null) { + return NodeFactory.createLiteral(String.valueOf(rb), rb.getLang(), toRDFDatatype(rb_type)); + } else { + return NodeFactory.createLiteral(String.valueOf(rb), rb.getLang()); + } + } else if (resource instanceof java.lang.Integer) { + return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDinteger)); + } else if (resource instanceof java.lang.Short) { + return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDinteger)); + } else if (resource instanceof java.lang.Float) { + return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDfloat)); + } else if (resource instanceof java.lang.Double) { + return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDdouble)); + } else if (resource instanceof java.math.BigDecimal) { + return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDdecimal)); + } else if (resource instanceof java.sql.Blob) { + return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDhexBinary)); + } else if (resource instanceof java.sql.Date) { + return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDdate)); + } else if (resource instanceof java.sql.Timestamp) { + /* return NodeFactory.createLiteral( + Timestamp2String((java.sql.Timestamp) resource), toRDFDatatype(XSDDatatype.XSDdateTime));*/ + return NodeFactory.createLiteral( + Timestamp2String((java.sql.Timestamp) resource), toRDFDatatype(XSDDatatype.XSDdateTimeStamp)); + } else if (resource instanceof java.sql.Time) { + return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDdateTime)); + } else if (resource instanceof String) { + if (isIRI(resource)) { + return NodeUtils.asNode(String.valueOf(resource)); + /* } else if (StringUtilities.isURI(resource) || StringUtilities.isURL(resource)) { + return NodeFactory.createURI(String.valueOf(resource)); + } else if (StringUtilities.isDouble(resource)) { + return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDdouble)); + } else if (StringUtilities.isFloat(resource)) { + return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDfloat)); + } else if (StringUtilities.isInt(resource)) { + return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDinteger)); + } else if (StringUtilities.isNumeric(resource)) { + return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDinteger));*/ + } else { + return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDstring)); + } + } else { + return null; + } + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + return null; + } + } + + /** + * Method to check if a String uri is a IRI normalized. + * http://stackoverflow.com/questions/9419658/normalising-possibly-encoded-uri-strings-in-java + * + * @param uri the String to verify. + * @return if true the String is a valid IRI. + */ + private static Boolean isIRI(Object uri) { + try { + IRIFactory factory = IRIFactory.uriImplementation(); + IRI iri = factory.construct(String.valueOf(uri)); + /* ArrayList a = new ArrayList<>(); + a.add(iri.getScheme()); + a.add(iri.getRawUserinfo()); + a.add(iri.getRawHost()); + a.add(iri.getRawPath()); + a.add(iri.getRawQuery()); + a.add(iri.getRawFragment());*/ + return true; + } catch (Exception e) { + return false; + } + } + + /** + * Method to convert a {@link java.sql.Timestamp} to a {@link String} + * + * @param v the {@link java.sql.Timestamp}. + * @return the {@link String} + */ + private static String Timestamp2String(java.sql.Timestamp v) { + GregorianCalendar cal = new GregorianCalendar(); + cal.setTime(v); + + int year = cal.get(Calendar.YEAR); + int month = cal.get(Calendar.MONTH) + 1; + int day = cal.get(Calendar.DAY_OF_MONTH); + int hour = cal.get(Calendar.HOUR_OF_DAY); + int minute = cal.get(Calendar.MINUTE); + int second = cal.get(Calendar.SECOND); + int nanos = v.getNanos(); + + String yearS, monthS, dayS, hourS, minuteS, secondS, nanosS; + String zeros = "000000000"; + String yearZeros = "0000"; + StringBuffer timestampBuf; + + if (year < 1000) { + yearS = "" + year; + yearS = yearZeros.substring(0, (4 - yearS.length())) + yearS; + } else { + yearS = "" + year; + } + + if (month < 10) monthS = "0" + month; + else monthS = Integer.toString(month); + + if (day < 10) dayS = "0" + day; + else dayS = Integer.toString(day); + + if (hour < 10) hourS = "0" + hour; + else hourS = Integer.toString(hour); + + if (minute < 10) minuteS = "0" + minute; + else minuteS = Integer.toString(minute); + + if (second < 10) secondS = "0" + second; + else secondS = Integer.toString(second); + + if (nanos == 0) { + nanosS = "0"; + } else { + nanosS = Integer.toString(nanos); + + // Add leading 0 + nanosS = zeros.substring(0, (9 - nanosS.length())) + nanosS; + + // Truncate trailing 0 + char[] nanosChar = new char[nanosS.length()]; + nanosS.getChars(0, nanosS.length(), nanosChar, 0); + int truncIndex = 8; + while (nanosChar[truncIndex] == '0') { + truncIndex--; + } + nanosS = new String(nanosChar, 0, truncIndex + 1); + } + + timestampBuf = new StringBuffer(); + timestampBuf.append(yearS); + timestampBuf.append("-"); + timestampBuf.append(monthS); + timestampBuf.append("-"); + timestampBuf.append(dayS); + timestampBuf.append("T"); + timestampBuf.append(hourS); + timestampBuf.append(":"); + timestampBuf.append(minuteS); + timestampBuf.append(":"); + timestampBuf.append(secondS); + timestampBuf.append("."); + timestampBuf.append(nanosS); + return (timestampBuf.toString()); + } + + /** + * Method to convert a URI {@link String} to a correct {@link RDFDatatype} jena. + * + * @param uri the {@link String} of the uri resource. + * @return the {@link RDFDatatype} of the uri resource. + */ + public static RDFDatatype toRDFDatatype(String uri) { + return TypeMapper.getInstance().getSafeTypeByName(toXSDDatatype(uri).getURI()); + } + + /** + * Method to convert a {@link XSDDatatype} to a correct {@link RDFDatatype} jena. + * + * @param xsdDatatype the {@link XSDDatatype} of the uri resource. + * @return the {@link RDFDatatype} of the uri resource. + */ + public static RDFDatatype toRDFDatatype(XSDDatatype xsdDatatype) { + return TypeMapper.getInstance().getSafeTypeByName(xsdDatatype.getURI()); + } + + /** + * A list of com.hp.hpl.jena.datatypes.xsd.XSDDatatype. + * return all the XSDDatatype supported from jena. + */ + public static final XSDDatatype allFormatsOfXSDDataTypes[] = new XSDDatatype[]{ + XSDDatatype.XSDstring, XSDDatatype.XSDENTITY, XSDDatatype.XSDID, XSDDatatype.XSDIDREF, + XSDDatatype.XSDanyURI, XSDDatatype.XSDbase64Binary, XSDDatatype.XSDboolean, XSDDatatype.XSDbyte, + XSDDatatype.XSDdate, XSDDatatype.XSDdateTime, XSDDatatype.XSDdecimal, XSDDatatype.XSDdouble, + XSDDatatype.XSDduration, XSDDatatype.XSDfloat, XSDDatatype.XSDgDay, XSDDatatype.XSDgMonth, + XSDDatatype.XSDgMonthDay, XSDDatatype.XSDgYear, XSDDatatype.XSDgYearMonth, XSDDatatype.XSDhexBinary, + XSDDatatype.XSDint, XSDDatatype.XSDinteger, XSDDatatype.XSDlanguage, XSDDatatype.XSDlong, + XSDDatatype.XSDName, XSDDatatype.XSDNCName, XSDDatatype.XSDnegativeInteger, XSDDatatype.XSDNMTOKEN, + XSDDatatype.XSDnonNegativeInteger, XSDDatatype.XSDnonPositiveInteger, XSDDatatype.XSDnormalizedString, + XSDDatatype.XSDNOTATION, XSDDatatype.XSDpositiveInteger, XSDDatatype.XSDQName, XSDDatatype.XSDshort, + XSDDatatype.XSDtime, XSDDatatype.XSDtoken, XSDDatatype.XSDunsignedByte, XSDDatatype.XSDunsignedInt, + XSDDatatype.XSDunsignedLong, XSDDatatype.XSDunsignedShort + }; + + /** + * Method convert a {@link String} to {@link XSDDatatype}. + * + * @param uri the {@link String} uri of the XSDDatatype. + * @return the {@link XSDDatatype} of the string uri if exists. + */ + public static XSDDatatype toXSDDatatype(String uri) { + for (XSDDatatype xsdDatatype : allFormatsOfXSDDataTypes) { + if (xsdDatatype.getURI().equalsIgnoreCase(XSDDatatype.XSD + "#" + uri)) return xsdDatatype; + if (xsdDatatype.getURI().replace(XSDDatatype.XSD, "") + .toLowerCase().contains(uri.toLowerCase())) return xsdDatatype; + } + logger.error("The XSD Datatype '" + uri + "' is not recognised"); + throw new IllegalArgumentException("The XSD Datatype '" + uri + "' is not recognised"); + } + + public static Node toNode(Object resource, String lang, RDFDatatype rdfDatatype) { + return createNodeBase(resource, null, rdfDatatype, null); + } + + public static Node toNode(Object resource, String lang, boolean isXml) { + return createNodeBase(resource, null, null, isXml); + } + + public static Node toNode(Object resource) { + return createNodeBase(resource, null, null, null); + } + + public static Node toNode(Object resource, RDFDatatype rdfDatatype) { + return createNodeBase(resource, null, rdfDatatype, null); + } + + +} diff --git a/src/main/java/virtuoso/jena/driver/VirtuosoQueryEngine.java b/src/main/java/virtuoso/jena/driver/VirtuosoQueryEngine.java index 1653666..335d60c 100644 --- a/src/main/java/virtuoso/jena/driver/VirtuosoQueryEngine.java +++ b/src/main/java/virtuoso/jena/driver/VirtuosoQueryEngine.java @@ -24,306 +24,311 @@ import org.apache.jena.atlas.io.IndentedWriter; -import com.hp.hpl.jena.graph.Node; -import com.hp.hpl.jena.query.Query; -import com.hp.hpl.jena.shared.JenaException; -import com.hp.hpl.jena.sparql.ARQInternalErrorException; -import com.hp.hpl.jena.sparql.algebra.Op; -import com.hp.hpl.jena.sparql.algebra.Transform; -import com.hp.hpl.jena.sparql.algebra.TransformCopy; -import com.hp.hpl.jena.sparql.algebra.Transformer; -import com.hp.hpl.jena.sparql.algebra.op.OpBGP; -import com.hp.hpl.jena.sparql.core.DatasetGraph; -import com.hp.hpl.jena.sparql.core.Var; -import com.hp.hpl.jena.sparql.engine.Plan; -import com.hp.hpl.jena.sparql.engine.QueryEngineFactory; -import com.hp.hpl.jena.sparql.engine.QueryEngineRegistry; -import com.hp.hpl.jena.sparql.engine.QueryIterator; -import com.hp.hpl.jena.sparql.engine.binding.Binding; -import com.hp.hpl.jena.sparql.engine.binding.BindingHashMap; -import com.hp.hpl.jena.sparql.engine.binding.BindingMap; -import com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase; -import com.hp.hpl.jena.sparql.engine.main.QueryEngineMain; -import com.hp.hpl.jena.sparql.serializer.SerializationContext; -import com.hp.hpl.jena.sparql.util.Context; -import com.hp.hpl.jena.sparql.util.Utils; +import org.apache.jena.graph.Node; +import org.apache.jena.graph.NodeFactory; +import org.apache.jena.query.Query; +import org.apache.jena.shared.JenaException; +import org.apache.jena.sparql.ARQInternalErrorException; +import org.apache.jena.sparql.algebra.Op; +import org.apache.jena.sparql.algebra.Transform; +import org.apache.jena.sparql.algebra.TransformCopy; +import org.apache.jena.sparql.algebra.Transformer; +import org.apache.jena.sparql.algebra.op.OpBGP; +import org.apache.jena.sparql.core.DatasetGraph; +import org.apache.jena.sparql.core.Var; +import org.apache.jena.sparql.engine.Plan; +import org.apache.jena.sparql.engine.QueryEngineFactory; +import org.apache.jena.sparql.engine.QueryEngineRegistry; +import org.apache.jena.sparql.engine.QueryIterator; +import org.apache.jena.sparql.engine.binding.Binding; +import org.apache.jena.sparql.engine.binding.BindingHashMap; +import org.apache.jena.sparql.engine.binding.BindingMap; +import org.apache.jena.sparql.engine.iterator.QueryIteratorBase; +import org.apache.jena.sparql.engine.main.QueryEngineMain; +import org.apache.jena.sparql.serializer.SerializationContext; +import org.apache.jena.sparql.util.Context; + public class VirtuosoQueryEngine extends QueryEngineMain { - private Query eQuery = null; - - public VirtuosoQueryEngine(Query query, DatasetGraph dataset, - Binding initial, Context context) { - super(query, dataset, initial, context); - eQuery = query; - } - - public VirtuosoQueryEngine(Query query, DatasetGraph dataset) { - this(query, dataset, null, null); - } - - @Override - public QueryIterator eval(Op op, DatasetGraph dsg, Binding initial, - Context context) { - // Extension point: access possible to all the parameters for execution. - // Be careful to deal with initial bindings. - Transform transform = new VirtTransform(); - op = Transformer.transform(transform, op); - - VirtGraph vg = (VirtGraph) dsg.getDefaultGraph(); - String query = fixQuery(eQuery.toString(), initial, vg); - - try { - java.sql.Statement stmt = vg.createStatement(); - java.sql.ResultSet rs = stmt.executeQuery(query); - return (QueryIterator) new VQueryIterator(vg, rs); - } catch (Exception e) { - throw new JenaException("Can not create QueryIterator.:" + e); - } - } - - private String substBindings(String query, Binding args) { - if (args == null) - return query; - - StringBuffer buf = new StringBuffer(); - String delim = " ,)(;."; - int i = 0; - char ch; - int qlen = query.length(); - while (i < qlen) { - ch = query.charAt(i++); - if (ch == '\\') { - buf.append(ch); - if (i < qlen) - buf.append(query.charAt(i++)); - - } else if (ch == '"' || ch == '\'') { - char end = ch; - buf.append(ch); - while (i < qlen) { - ch = query.charAt(i++); - buf.append(ch); - if (ch == end) - break; - } - } else if (ch == '?') { // Parameter - String varData = null; - int j = i; - while (j < qlen && delim.indexOf(query.charAt(j)) < 0) - j++; - if (j != i) { - String varName = query.substring(i, j); - Node val = args.get(Var.alloc(varName)); - if (val != null) { - varData = VirtGraph.Node2Str(val); - i = j; - } - } - if (varData != null) - buf.append(varData); - else - buf.append(ch); - } else { - buf.append(ch); - } - } - return buf.toString(); - } - - private String fixQuery(String query, Binding args, VirtGraph vg) { - StringBuffer sb = new StringBuffer("sparql\n "); - - if (vg.getRuleSet() != null) - sb.append(" define input:inference '" + vg.getRuleSet() + "'\n "); - - if (vg.getSameAs()) - sb.append(" define input:same-as \"yes\"\n "); - - if (!vg.getReadFromAllGraphs()) - sb.append(" define input:default-graph-uri <" + vg.getGraphName() - + "> \n"); - - sb.append(substBindings(query, args)); - - return sb.toString(); - } - - @Override - protected Op modifyOp(Op op) { - // Extension point: possible place to alter the algebra expression. - // Alternative to eval(). - op = super.modifyOp(op); - return op; - } - - // ---- Registration of the factory for this query engine class. - - // Query engine factory. - // Call VirtQueryEngine.register() to add to the global query engine - // registry. - - static QueryEngineFactory factory = new VirtQueryEngineFactory(); - - static public QueryEngineFactory getFactory() { - return factory; - } - - static public void register() { - QueryEngineRegistry.addFactory(factory); - } - - static public void unregister() { - QueryEngineRegistry.removeFactory(factory); - } - - private class VirtTransform extends TransformCopy { - // Example, do nothing tranform. - @Override - public Op transform(OpBGP opBGP) { - return opBGP; - } - } - - private static class VirtQueryEngineFactory implements QueryEngineFactory { - // Accept any dataset for query execution - public boolean accept(Query query, DatasetGraph dataset, Context context) { - if (dataset instanceof VirtDataSource.VirtDataSetGraph) - return true; - if (dataset.getDefaultGraph() instanceof VirtGraph) - return true; - return false; - } - - public Plan create(Query query, DatasetGraph dataset, Binding initial, - Context context) { - if (!(dataset instanceof VirtDataSource.VirtDataSetGraph)) { - if (!(dataset.getDefaultGraph() instanceof VirtGraph)) - throw new ARQInternalErrorException( - "VirtQueryEngineFactory: only factory VirtuosoDatasetGraph is supported"); - } - // Create a query engine instance. - VirtuosoQueryEngine engine = new VirtuosoQueryEngine(query, - dataset, initial, context); - return engine.getPlan(); - } - - public boolean accept(Op op, DatasetGraph dataset, Context context) { // Refuse - // to - // accept - // algebra - // expressions - // directly. - return false; - } - - public Plan create(Op op, DatasetGraph dataset, Binding inputBinding, - Context context) { // Shodul notbe called because acceept/Op is - // false - throw new ARQInternalErrorException( - "VirtQueryEngineFactory: factory calleddirectly with an algebra expression"); - } - } - - protected class VQueryIterator extends QueryIteratorBase { - java.sql.ResultSetMetaData rsmd; - java.sql.ResultSet rs; - VirtGraph vg; - boolean v_finished = false; - boolean v_prefetched = false; - BindingMap v_row; - String virt_graph = null; - - protected VQueryIterator(VirtGraph _g, java.sql.ResultSet _rs) { - rs = _rs; - vg = _g; - virt_graph = vg.getGraphName(); - - try { - rsmd = rs.getMetaData(); - } catch (Exception e) { - throw new JenaException("VQueryIterator is FAILED.:" + e); - } - - } - - public void output(IndentedWriter out, SerializationContext sCxt) { - out.print(Utils.className(this)); - } - - protected boolean hasNextBinding() { - if (!v_finished && !v_prefetched) - moveForward(); - return !v_finished; - } - - protected Binding moveToNextBinding() { - if (!v_finished && !v_prefetched) - moveForward(); - - v_prefetched = false; - - if (v_finished) - return null; - - return v_row; - } - - protected void closeIterator() { - if (!v_finished) { - if (rs != null) { - try { - rs.close(); - rs = null; - } catch (Exception e) { - } - } - } - v_finished = true; - } - - protected void moveForward() throws JenaException { - try { - if (!v_finished && rs.next()) { - extractRow(); - v_prefetched = true; - } else - closeIterator(); - } catch (Exception e) { - throw new JenaException("Convert results are FAILED.:" + e); - } - } - - protected void extractRow() throws Exception { - v_row = new BindingHashMap(); - - try { - for (int i = 1; i <= rsmd.getColumnCount(); i++) { - Node n = VirtGraph.Object2Node(rs.getObject(i)); - if (n != null) - v_row.add(Var.alloc(rsmd.getColumnLabel(i)), n); - } - - if (virt_graph != null && !virt_graph.equals("virt:DEFAULT")) - v_row.add(Var.alloc("graph"), Node.createURI(virt_graph)); - } catch (Exception e) { - throw new JenaException("extractRow is FAILED.:" + e); - } - } - - protected void finalize() throws Throwable { - if (!v_finished) - try { - close(); - } catch (Exception e) { - } - } - - @Override - protected void requestCancel() { - // TODO Auto-generated method stub - - } - - } + + private static final org.slf4j.Logger logger = + org.slf4j.LoggerFactory.getLogger(VirtuosoQueryEngine.class); + static QueryEngineFactory factory = new VirtQueryEngineFactory(); + private Query eQuery = null; + + public VirtuosoQueryEngine(Query query, DatasetGraph dataset, + Binding initial, Context context) { + super(query, dataset, initial, context); + eQuery = query; + } + + public VirtuosoQueryEngine(Query query, DatasetGraph dataset) { + this(query, dataset, null, null); + } + + static public QueryEngineFactory getFactory() { + return factory; + } + + static public void register() { + QueryEngineRegistry.addFactory(factory); + } + + static public void unregister() { + QueryEngineRegistry.removeFactory(factory); + } + + // ---- Registration of the factory for this query engine class. + + // Query engine factory. + // Call VirtQueryEngine.register() to add to the global query engine + // registry. + + @Override + public QueryIterator eval(Op op, DatasetGraph dsg, Binding initial, + Context context) { + // Extension point: access possible to all the parameters for execution. + // Be careful to deal with initial bindings. + Transform transform = new VirtTransform(); + Transformer.transform(transform, op); + + VirtGraph vg = (VirtGraph) dsg.getDefaultGraph(); + String query = fixQuery(eQuery.toString(), initial, vg); + + try { + java.sql.Statement stmt = vg.createStatement(); + java.sql.ResultSet rs = stmt.executeQuery(query); + return new VQueryIterator(vg, rs); + } catch (Exception e) { + throw new JenaException("Can not create QueryIterator.:" + e); + } + } + + private String substBindings(String query, Binding args) { + if (args == null) + return query; + + StringBuilder buf = new StringBuilder(); + String delim = " ,)(;."; + int i = 0; + char ch; + int qlen = query.length(); + while (i < qlen) { + ch = query.charAt(i++); + if (ch == '\\') { + buf.append(ch); + if (i < qlen) + buf.append(query.charAt(i++)); + + } else if (ch == '"' || ch == '\'') { + char end = ch; + buf.append(ch); + while (i < qlen) { + ch = query.charAt(i++); + buf.append(ch); + if (ch == end) + break; + } + } else if (ch == '?') { // Parameter + String varData = null; + int j = i; + while (j < qlen && delim.indexOf(query.charAt(j)) < 0) + j++; + if (j != i) { + String varName = query.substring(i, j); + Node val = args.get(Var.alloc(varName)); + if (val != null) { + varData = VirtGraph.Node2Str(val); + i = j; + } + } + if (varData != null) + buf.append(varData); + else + buf.append(ch); + } else { + buf.append(ch); + } + } + return buf.toString(); + } + + private String fixQuery(String query, Binding args, VirtGraph vg) { + StringBuilder sb = new StringBuilder("sparql\n "); + + if (vg.getRuleSet() != null) + sb.append(" define input:inference '").append(vg.getRuleSet()).append("'\n "); + + if (vg.getSameAs()) + sb.append(" define input:same-as \"yes\"\n "); + + if (!vg.getReadFromAllGraphs()) + sb.append(" define input:default-graph-uri <").append(vg.getGraphName()).append("> \n"); + + sb.append(substBindings(query, args)); + + return sb.toString(); + } + + @Override + protected Op modifyOp(Op op) { + // Extension point: possible place to alter the algebra expression. + // Alternative to eval(). + op = super.modifyOp(op); + return op; + } + + private static class VirtQueryEngineFactory implements QueryEngineFactory { + // Accept any dataset for query execution + @Override + public boolean accept(Query query, DatasetGraph dataset, Context context) { + return dataset instanceof VirtDataSource.VirtDataSetGraph || + dataset.getDefaultGraph() instanceof VirtGraph; + } + + @Override + public Plan create(Query query, DatasetGraph dataset, Binding initial, + Context context) { + if (!(dataset instanceof VirtDataSource.VirtDataSetGraph)) { + if (!(dataset.getDefaultGraph() instanceof VirtGraph)) + throw new ARQInternalErrorException( + "VirtQueryEngineFactory: only factory VirtuosoDatasetGraph is supported"); + } + // Create a query engine instance. + VirtuosoQueryEngine engine = new VirtuosoQueryEngine(query, + dataset, initial, context); + return engine.getPlan(); + } + + @Override + public boolean accept(Op op, DatasetGraph dataset, Context context) { + // Refuse to accept algebra expressions directly. + return false; + } + + @Override + public Plan create(Op op, DatasetGraph dataset, Binding inputBinding, + Context context) { // Shodul notbe called because acceept/Op is + // false + throw new ARQInternalErrorException( + "VirtQueryEngineFactory: factory calleddirectly with an algebra expression"); + } + } + + private class VirtTransform extends TransformCopy { + // Example, do nothing tranform. + @Override + public Op transform(OpBGP opBGP) { + return opBGP; + } + } + + protected class VQueryIterator extends QueryIteratorBase { + java.sql.ResultSetMetaData rsmd; + java.sql.ResultSet rs; + VirtGraph vg; + boolean v_finished = false; + boolean v_prefetched = false; + BindingMap v_row; + String virt_graph = null; + + protected VQueryIterator(VirtGraph _g, java.sql.ResultSet _rs) { + rs = _rs; + vg = _g; + virt_graph = vg.getGraphName(); + + try { + rsmd = rs.getMetaData(); + } catch (Exception e) { + throw new JenaException("VQueryIterator is FAILED.:" + e); + } + + } + + @Override + public void output(IndentedWriter out, SerializationContext sCxt) { + out.print(this.getClass().getName()); + } + + @Override + protected boolean hasNextBinding() { + if (!v_finished && !v_prefetched) + moveForward(); + return !v_finished; + } + + @Override + protected Binding moveToNextBinding() { + if (!v_finished && !v_prefetched) + moveForward(); + + v_prefetched = false; + + if (v_finished) + return null; + + return v_row; + } + + @Override + protected void closeIterator() { + if (!v_finished) { + if (rs != null) { + try { + rs.close(); + rs = null; + } catch (Exception ignored) { + } + } + } + v_finished = true; + } + + protected void moveForward() throws JenaException { + try { + if (!v_finished && rs.next()) { + extractRow(); + v_prefetched = true; + } else + closeIterator(); + } catch (Exception e) { + throw new JenaException("Convert results are FAILED.:" + e); + } + } + + protected void extractRow() throws Exception { + v_row = new BindingHashMap(); + + try { + for (int i = 1; i <= rsmd.getColumnCount(); i++) { + Node n = VirtUtilities.toNode(rs.getObject(i)); + if (n != null) + v_row.add(Var.alloc(rsmd.getColumnLabel(i)), n); + } + + if (virt_graph != null && !virt_graph.equals("virt:DEFAULT")) + v_row.add(Var.alloc("graph"), NodeFactory.createURI(virt_graph)); + } catch (Exception e) { + throw new JenaException("extractRow is FAILED.:" + e); + } + } + + @Override + protected void finalize() throws Throwable { + if (!v_finished) + try { + super.finalize(); + close(); + } catch (Exception ignored) { + } + } + + @Override + protected void requestCancel() { + // TODO Auto-generated method stub + + } + + } } diff --git a/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecution.java b/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecution.java index 3b538b7..86f5f8c 100644 --- a/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecution.java +++ b/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecution.java @@ -23,6 +23,25 @@ package virtuoso.jena.driver; +import org.apache.jena.graph.Node; +import org.apache.jena.graph.NodeFactory; +import org.apache.jena.graph.Triple; +import org.apache.jena.query.*; +import org.apache.jena.rdf.model.Model; +import org.apache.jena.rdf.model.ModelFactory; +import org.apache.jena.rdf.model.RDFNode; +import org.apache.jena.rdf.model.Statement; +import org.apache.jena.shared.JenaException; +import org.apache.jena.sparql.core.Quad; +import org.apache.jena.sparql.core.ResultBinding; +import org.apache.jena.sparql.core.Var; +import org.apache.jena.sparql.engine.binding.Binding; +import org.apache.jena.sparql.engine.binding.BindingHashMap; +import org.apache.jena.sparql.engine.binding.BindingMap; +import org.apache.jena.sparql.util.Context; +import org.apache.jena.sparql.util.ModelUtils; +import org.apache.jena.util.FileManager; + import java.sql.ResultSetMetaData; import java.util.Iterator; import java.util.LinkedList; @@ -30,408 +49,419 @@ import java.util.NoSuchElementException; import java.util.concurrent.TimeUnit; -import com.hp.hpl.jena.graph.Node; -import com.hp.hpl.jena.graph.Triple; -import com.hp.hpl.jena.query.Dataset; -import com.hp.hpl.jena.query.Query; -import com.hp.hpl.jena.query.QueryExecution; -import com.hp.hpl.jena.query.QuerySolution; -import com.hp.hpl.jena.query.ResultSet; -import com.hp.hpl.jena.rdf.model.Model; -import com.hp.hpl.jena.rdf.model.ModelFactory; -import com.hp.hpl.jena.rdf.model.RDFNode; -import com.hp.hpl.jena.shared.JenaException; -import com.hp.hpl.jena.sparql.core.ResultBinding; -import com.hp.hpl.jena.sparql.core.Var; -import com.hp.hpl.jena.sparql.engine.binding.Binding; -import com.hp.hpl.jena.sparql.engine.binding.BindingHashMap; -import com.hp.hpl.jena.sparql.engine.binding.BindingMap; -import com.hp.hpl.jena.sparql.engine.iterator.QueryIterConcat; -import com.hp.hpl.jena.sparql.util.Context; -import com.hp.hpl.jena.sparql.util.ModelUtils; -import com.hp.hpl.jena.util.FileManager; - public class VirtuosoQueryExecution implements QueryExecution { - private QueryIterConcat output = null; - private String virt_graph = null; - private VirtGraph graph; - private String virt_query; - private QuerySolution m_arg = null; - - private java.sql.Statement stmt = null; - - public VirtuosoQueryExecution(String query, VirtGraph _graph) { - graph = _graph; - virt_graph = graph.getGraphName(); - virt_query = query; - } - - public ResultSet execSelect() { - ResultSet ret = null; - - try { - stmt = graph.createStatement(); - java.sql.ResultSet rs = stmt.executeQuery(getQueryString()); - - return new VResultSet(graph, rs); - } catch (Exception e) { - throw new JenaException("Can not create ResultSet.:" + e); - } - } - - public void setFileManager(FileManager arg) { - throw new JenaException("UnsupportedMethodException"); - } - - public void setInitialBinding(QuerySolution arg) { - m_arg = arg; - } - - public Dataset getDataset() { - return new VirtDataSource(graph); - } - - public Context getContext() { - return null; - } - - public Model execConstruct() { - return execConstruct(ModelFactory.createDefaultModel()); - } - - public Model execConstruct(Model model) { - try { - stmt = graph.createStatement(); - java.sql.ResultSet rs = stmt.executeQuery(getQueryString()); - ResultSetMetaData rsmd = rs.getMetaData(); - - while (rs.next()) { - Node s = VirtGraph.Object2Node(rs.getObject(1)); - Node p = VirtGraph.Object2Node(rs.getObject(2)); - Node o = VirtGraph.Object2Node(rs.getObject(3)); - com.hp.hpl.jena.rdf.model.Statement st = ModelUtils - .tripleToStatement(model, new Triple(s, p, o)); - if (st != null) - model.add(st); - } - rs.close(); - stmt.close(); - stmt = null; - - } catch (Exception e) { - throw new JenaException("Convert results are FAILED.:" + e); - } - return model; - } - - public Model execDescribe() { - return execDescribe(ModelFactory.createDefaultModel()); - } - - public Model execDescribe(Model model) { - try { - stmt = graph.createStatement(); - java.sql.ResultSet rs = stmt.executeQuery(getQueryString()); - ResultSetMetaData rsmd = rs.getMetaData(); - while (rs.next()) { - Node s = VirtGraph.Object2Node(rs.getObject(1)); - Node p = VirtGraph.Object2Node(rs.getObject(2)); - Node o = VirtGraph.Object2Node(rs.getObject(3)); - - com.hp.hpl.jena.rdf.model.Statement st = ModelUtils - .tripleToStatement(model, new Triple(s, p, o)); - if (st != null) - model.add(st); - } - rs.close(); - stmt.close(); - stmt = null; - - } catch (Exception e) { - throw new JenaException("Convert results are FAILED.:" + e); - } - return model; - } - - public boolean execAsk() { - boolean ret = false; - - try { - stmt = graph.createStatement(); - java.sql.ResultSet rs = stmt.executeQuery(getQueryString()); - ResultSetMetaData rsmd = rs.getMetaData(); - - while (rs.next()) { - if (rs.getInt(1) == 1) - ret = true; - } - rs.close(); - stmt.close(); - stmt = null; - - } catch (Exception e) { - throw new JenaException("Convert results are FAILED.:" + e); - } - return ret; - } - - public void abort() { - if (stmt != null) - try { - stmt.cancel(); - } catch (Exception e) { - } - } - - public void close() { - if (stmt != null) - try { - stmt.cancel(); - stmt.close(); - } catch (Exception e) { - } - } - - private String substBindings(String query) { - if (m_arg == null) - return query; - - StringBuffer buf = new StringBuffer(); - String delim = " ,)(;."; - int i = 0; - char ch; - int qlen = query.length(); - while (i < qlen) { - ch = query.charAt(i++); - if (ch == '\\') { - buf.append(ch); - if (i < qlen) - buf.append(query.charAt(i++)); - - } else if (ch == '"' || ch == '\'') { - char end = ch; - buf.append(ch); - while (i < qlen) { - ch = query.charAt(i++); - buf.append(ch); - if (ch == end) - break; - } - } else if (ch == '?') { // Parameter - String varData = null; - int j = i; - while (j < qlen && delim.indexOf(query.charAt(j)) < 0) - j++; - if (j != i) { - String varName = query.substring(i, j); - RDFNode val = m_arg.get(varName); - if (val != null) { - varData = VirtGraph.Node2Str(val.asNode()); - i = j; - } - } - if (varData != null) - buf.append(varData); - else - buf.append(ch); - } else { - buf.append(ch); - } - } - return buf.toString(); - } - - private String getQueryString() { - StringBuffer sb = new StringBuffer("sparql\n "); - - if (graph.getRuleSet() != null) - sb.append(" define input:inference '" + graph.getRuleSet() + "'\n"); - - if (graph.getSameAs()) - sb.append(" define input:same-as \"yes\"\n"); - - if (!graph.getReadFromAllGraphs()) - sb.append(" define input:default-graph-uri <" - + graph.getGraphName() + "> \n"); - - sb.append(substBindings(virt_query)); - - return sb.toString(); - } - - // /=== Inner class =========================================== - public class VResultSet implements com.hp.hpl.jena.query.ResultSet { - ResultSetMetaData rsmd; - java.sql.ResultSet rs; - boolean v_finished = false; - boolean v_prefetched = false; - VirtModel m; - BindingMap v_row; - List resVars = new LinkedList(); - int row_id = 0; - - protected VResultSet(VirtGraph _g, java.sql.ResultSet _rs) { - rs = _rs; - m = new VirtModel(_g); - - try { - rsmd = rs.getMetaData(); - for (int i = 1; i <= rsmd.getColumnCount(); i++) - resVars.add(rsmd.getColumnLabel(i)); - - if (virt_graph != null && !virt_graph.equals("virt:DEFAULT")) - resVars.add("graph"); - } catch (Exception e) { - throw new JenaException( - "ViruosoResultBindingsToJenaResults is FAILED.:" + e); - } - } - - public boolean hasNext() { - if (!v_finished && !v_prefetched) - moveForward(); - return !v_finished; - } - - public QuerySolution next() { - Binding binding = nextBinding(); - - if (v_finished) - throw new NoSuchElementException(); - - return new ResultBinding(m, binding); - } - - public QuerySolution nextSolution() { - return next(); - } - - public Binding nextBinding() { - if (!v_finished && !v_prefetched) - moveForward(); - - v_prefetched = false; - - if (v_finished) - throw new NoSuchElementException(); - - return v_row; - } - - public int getRowNumber() { - return row_id; - } - - public List getResultVars() { - return resVars; - } - - public Model getResourceModel() { - return m; - } - - protected void finalize() throws Throwable { - if (!v_finished) - try { - close(); - } catch (Exception e) { - } - } - - protected void moveForward() throws JenaException { - try { - if (!v_finished && rs.next()) { - extractRow(); - v_prefetched = true; - } else - close(); - } catch (Exception e) { - throw new JenaException("Convert results are FAILED.:" + e); - } - } - - protected void extractRow() throws Exception { - v_row = new BindingHashMap(); - row_id++; - - try { - for (int i = 1; i <= rsmd.getColumnCount(); i++) { - Node n = VirtGraph.Object2Node(rs.getObject(i)); - if (n != null) - v_row.add(Var.alloc(rsmd.getColumnLabel(i)), n); - } - - if (virt_graph != null && !virt_graph.equals("virt:DEFAULT")) - v_row.add(Var.alloc("graph"), Node.createURI(virt_graph)); - } catch (Exception e) { - throw new JenaException( - "ViruosoResultBindingsToJenaResults is FAILED.:" + e); - } - } - - public void remove() throws java.lang.UnsupportedOperationException { - throw new UnsupportedOperationException(this.getClass().getName() - + ".remove"); - } - - private void close() { - if (!v_finished) { - if (rs != null) { - try { - rs.close(); - rs = null; - } catch (Exception e) { - } - } - } - v_finished = true; - } - - } - - public Iterator execConstructTriples() { - // TODO Auto-generated method stub - return null; - } - - public Iterator execDescribeTriples() { - // TODO Auto-generated method stub - return null; - } - - public Query getQuery() { - // TODO Auto-generated method stub - return null; - } - - public void setTimeout(long arg0) { - // TODO Auto-generated method stub - - } - - public void setTimeout(long arg0, TimeUnit arg1) { - // TODO Auto-generated method stub - - } - - public void setTimeout(long arg0, long arg1) { - // TODO Auto-generated method stub - - } - - public void setTimeout(long arg0, TimeUnit arg1, long arg2, TimeUnit arg3) { - // TODO Auto-generated method stub - - } - - public long getTimeout1() { - // TODO Auto-generated method stub - return 0; - } - - public long getTimeout2() { - // TODO Auto-generated method stub - return 0; - } + + private static final org.slf4j.Logger logger = + org.slf4j.LoggerFactory.getLogger(VirtuosoQueryExecution.class); + + private String virt_graph = null; + private final VirtGraph graph; + private final String virt_query; + private QuerySolution m_arg = null; + + private java.sql.Statement stmt = null; + + public VirtuosoQueryExecution(String query, VirtGraph _graph) { + graph = _graph; + virt_graph = graph.getGraphName(); + virt_query = query; + } + + @Override + public ResultSet execSelect() { + try { + stmt = graph.createStatement(); + java.sql.ResultSet rs = stmt.executeQuery(getQueryString()); + return new VResultSet(graph, rs); + } catch (Exception e) { + throw new JenaException("Can not create ResultSet.:" + e); + } + } + + public void setFileManager(FileManager arg) { + throw new JenaException("UnsupportedMethodException"); + } + + @Override + public void setInitialBinding(QuerySolution arg) { + m_arg = arg; + } + + @Override + public Dataset getDataset() { + return new VirtDataSource(graph); + } + + @Override + public Context getContext() { + return null; + } + + @Override + public Model execConstruct() { + return execConstruct(ModelFactory.createDefaultModel()); + } + + @Override + public Model execConstruct(Model model) { + return execQuerySparql(model); + } + + @Override + public Model execDescribe() { + return execDescribe(ModelFactory.createDefaultModel()); + } + + @Override + public Model execDescribe(Model model) { + return execQuerySparql(model); + } + + @Override + public boolean execAsk() { + boolean ret = false; + + try { + stmt = graph.createStatement(); + try (java.sql.ResultSet rs = stmt.executeQuery(getQueryString())) { + ResultSetMetaData rsmd = rs.getMetaData(); + + while (rs.next()) { + if (rs.getInt(1) == 1) + ret = true; + } + } + stmt.close(); + stmt = null; + + } catch (Exception e) { + throw new JenaException("Convert results are FAILED.:" + e); + } + return ret; + } + + private Model execQuerySparql(Model model) { + try { + stmt = graph.createStatement(); + try (java.sql.ResultSet rs = stmt.executeQuery(getQueryString())) { + ResultSetMetaData rsmd = rs.getMetaData(); + while (rs.next()) { + Node s = VirtUtilities.toNode(rs.getObject(1)); + Node p = VirtUtilities.toNode(rs.getObject(2)); + Node o = VirtUtilities.toNode(rs.getObject(3)); + + Statement st = ModelUtils + .tripleToStatement(model, new Triple(s, p, o)); + if (st != null) + model.add(st); + } + } + stmt.close(); + stmt = null; + } catch (Exception e) { + throw new JenaException("Convert results are FAILED.:" + e); + } + return model; + } + + @Override + public void abort() { + if (stmt != null) + try { + stmt.cancel(); + } catch (Exception ignored) { + } + } + + @Override + public void close() { + if (stmt != null) + try { + stmt.cancel(); + stmt.close(); + } catch (Exception ignored) { + } + } + + @Override + public boolean isClosed() { + return false; + } + + private String substBindings(String query) { + if (m_arg == null) + return query; + + StringBuilder buf = new StringBuilder(); + String delim = " ,)(;."; + int i = 0; + char ch; + int qlen = query.length(); + while (i < qlen) { + ch = query.charAt(i++); + if (ch == '\\') { + buf.append(ch); + if (i < qlen) + buf.append(query.charAt(i++)); + + } else if (ch == '"' || ch == '\'') { + char end = ch; + buf.append(ch); + while (i < qlen) { + ch = query.charAt(i++); + buf.append(ch); + if (ch == end) + break; + } + } else if (ch == '?') { // Parameter + String varData = null; + int j = i; + while (j < qlen && delim.indexOf(query.charAt(j)) < 0) + j++; + if (j != i) { + String varName = query.substring(i, j); + RDFNode val = m_arg.get(varName); + if (val != null) { + varData = VirtGraph.Node2Str(val.asNode()); + i = j; + } + } + if (varData != null) + buf.append(varData); + else + buf.append(ch); + } else { + buf.append(ch); + } + } + return buf.toString(); + } + + private String getQueryString() { + StringBuilder sb = new StringBuilder("sparql\n "); + + if (graph.getRuleSet() != null) + sb.append(" define input:inference '").append(graph.getRuleSet()).append("'\n"); + + if (graph.getSameAs()) + sb.append(" define input:same-as \"yes\"\n"); + + if (!graph.getReadFromAllGraphs()) + sb.append(" define input:default-graph-uri <").append(graph.getGraphName()).append("> \n"); + + sb.append(substBindings(virt_query)); + + return sb.toString(); + } + + // /=== Inner class =========================================== + public class VResultSet implements ResultSet { + ResultSetMetaData rsmd; + java.sql.ResultSet rs; + boolean v_finished = false; + boolean v_prefetched = false; + VirtModel m; + BindingMap v_row; + List resVars = new LinkedList<>(); + int row_id = 0; + + protected VResultSet(VirtGraph _g, java.sql.ResultSet _rs) { + rs = _rs; + m = new VirtModel(_g); + + try { + rsmd = rs.getMetaData(); + for (int i = 1; i <= rsmd.getColumnCount(); i++) + resVars.add(rsmd.getColumnLabel(i)); + + if (virt_graph != null && !virt_graph.equals("virt:DEFAULT")) + resVars.add("graph"); + } catch (Exception e) { + throw new JenaException( + "ViruosoResultBindingsToJenaResults is FAILED.:" + e); + } + } + + @Override + public boolean hasNext() { + if (!v_finished && !v_prefetched) + moveForward(); + return !v_finished; + } + + @Override + public QuerySolution next() { + Binding binding = nextBinding(); + + if (v_finished) + throw new NoSuchElementException(); + + return new ResultBinding(m, binding); + } + + @Override + public QuerySolution nextSolution() { + return next(); + } + + @Override + public Binding nextBinding() { + if (!v_finished && !v_prefetched) + moveForward(); + + v_prefetched = false; + + if (v_finished) + throw new NoSuchElementException(); + + return v_row; + } + + @Override + public int getRowNumber() { + return row_id; + } + + @Override + public List getResultVars() { + return resVars; + } + + @Override + public Model getResourceModel() { + return m; + } + + @Override + protected void finalize() throws Throwable { + if (!v_finished) + try { + super.finalize(); + close(); + } catch (Exception ignored) { + logger.error(ignored.getMessage(), ignored); + } + } + + protected void moveForward() throws JenaException { + try { + if (!v_finished && rs.next()) { + extractRow(); + v_prefetched = true; + } else + close(); + } catch (Exception e) { + throw new JenaException("Convert results are FAILED.:" + e); + } + } + + protected void extractRow() throws Exception { + v_row = new BindingHashMap(); + row_id++; + + try { + for (int i = 1; i <= rsmd.getColumnCount(); i++) { + Node n = VirtUtilities.toNode(rs.getObject(i)); + if (n != null) + v_row.add(Var.alloc(rsmd.getColumnLabel(i)), n); + } + + if (virt_graph != null && !virt_graph.equals("virt:DEFAULT")) + v_row.add(Var.alloc("graph"), NodeFactory.createURI(virt_graph)); + } catch (Exception e) { + throw new JenaException( + "ViruosoResultBindingsToJenaResults is FAILED.:" + e); + } + } + + @Override + public void remove() throws java.lang.UnsupportedOperationException { + throw new UnsupportedOperationException(this.getClass().getName() + + ".remove"); + } + + private void close() { + if (!v_finished) { + if (rs != null) { + try { + rs.close(); + rs = null; + } catch (Exception ignored) { + } + } + } + v_finished = true; + } + + } + + @Override + public Iterator execConstructTriples() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Iterator execConstructQuads() { + return null; + } + + @Override + public Dataset execConstructDataset() { + return null; + } + + @Override + public Dataset execConstructDataset(Dataset dataset) { + return null; + } + + @Override + public Iterator execDescribeTriples() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Query getQuery() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void setTimeout(long arg0) { + // TODO Auto-generated method stub + + } + + @Override + public void setTimeout(long arg0, TimeUnit arg1) { + // TODO Auto-generated method stub + + } + + @Override + public void setTimeout(long arg0, long arg1) { + // TODO Auto-generated method stub + + } + + @Override + public void setTimeout(long arg0, TimeUnit arg1, long arg2, TimeUnit arg3) { + // TODO Auto-generated method stub + + } + + @Override + public long getTimeout1() { + // TODO Auto-generated method stub + return 0; + } + + @Override + public long getTimeout2() { + // TODO Auto-generated method stub + return 0; + } } diff --git a/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecutionFactory.java b/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecutionFactory.java index e7a9ce7..3b76269 100644 --- a/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecutionFactory.java +++ b/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecutionFactory.java @@ -25,204 +25,203 @@ import java.util.List; -import com.hp.hpl.jena.query.Dataset; -import com.hp.hpl.jena.query.Query; -import com.hp.hpl.jena.query.QueryExecution; -import com.hp.hpl.jena.query.QueryFactory; -import com.hp.hpl.jena.query.QuerySolution; -import com.hp.hpl.jena.rdf.model.Model; -import com.hp.hpl.jena.sparql.core.DatasetImpl; -import com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP; -import com.hp.hpl.jena.sparql.util.Context; -import com.hp.hpl.jena.util.FileManager; +import org.apache.jena.query.*; +import org.apache.jena.rdf.model.Model; +import org.apache.jena.sparql.core.DatasetImpl; +import org.apache.jena.sparql.engine.http.QueryEngineHTTP; +import org.apache.jena.sparql.util.Context; public class VirtuosoQueryExecutionFactory { - private VirtuosoQueryExecutionFactory() { - } + private static final org.slf4j.Logger logger = + org.slf4j.LoggerFactory.getLogger(VirtuosoQueryExecutionFactory.class); - static public VirtuosoQueryExecution create(Query query, VirtGraph graph) { - VirtuosoQueryExecution ret = new VirtuosoQueryExecution( - query.toString(), graph); - return ret; - } - static public VirtuosoQueryExecution create(String query, VirtGraph graph) { - VirtuosoQueryExecution ret = new VirtuosoQueryExecution(query, graph); - return ret; - } + private VirtuosoQueryExecutionFactory() { + } - /* TODO */ + static public VirtuosoQueryExecution create(Query query, VirtGraph graph) { + return new VirtuosoQueryExecution( + query.toString(), graph); + } - static public QueryExecution create(Query query, Dataset dataset) { - if (dataset instanceof VirtDataSource) { - VirtuosoQueryExecution ret = new VirtuosoQueryExecution( - query.toString(), (VirtGraph) dataset); - return ret; - } else { - return make(query, dataset); - } - } - - static public QueryExecution create(String queryStr, Dataset dataset) { - if (dataset instanceof VirtDataSource) { - VirtuosoQueryExecution ret = new VirtuosoQueryExecution(queryStr, - (VirtGraph) dataset); - return ret; - } else { - return make(makeQuery(queryStr), dataset); - } - } - - static public QueryExecution create(Query query, FileManager fm) { - checkArg(query); - QueryExecution qe = make(query); - if (fm != null) - qe.setFileManager(fm); - return qe; - } - - static public QueryExecution create(String queryStr, FileManager fm) { - checkArg(queryStr); - return create(makeQuery(queryStr), fm); - } + static public VirtuosoQueryExecution create(String query, VirtGraph graph) { + return new VirtuosoQueryExecution(query, graph); + } - // ---------------- Query + Model - - static public QueryExecution create(Query query, Model model) { - checkArg(query); - checkArg(model); - - if (model.getGraph() instanceof VirtGraph) { - VirtuosoQueryExecution ret = new VirtuosoQueryExecution( - query.toString(), (VirtGraph) model.getGraph()); - return ret; - } else { - return make(query, new DatasetImpl(model)); - } - } - - static public QueryExecution create(String queryStr, Model model) { - checkArg(queryStr); - checkArg(model); - if (model.getGraph() instanceof VirtGraph) { - VirtuosoQueryExecution ret = new VirtuosoQueryExecution(queryStr, - (VirtGraph) model.getGraph()); - return ret; - } else { - return create(makeQuery(queryStr), model); - } - } + /* TODO */ - static public QueryExecution create(Query query, - QuerySolution initialBinding) { - checkArg(query); + static public QueryExecution create(Query query, Dataset dataset) { + if (dataset instanceof VirtDataSource) { + return new VirtuosoQueryExecution( + query.toString(), (VirtGraph) dataset); + } else { + return make(query, dataset); + } + } + + static public QueryExecution create(String queryStr, Dataset dataset) { + if (dataset instanceof VirtDataSource) { + return new VirtuosoQueryExecution(queryStr, + (VirtGraph) dataset); + } else { + return make(makeQuery(queryStr), dataset); + } + } + + /*static public QueryExecution create(Query query, FileManager fm) { + checkArg(query); QueryExecution qe = make(query); - if (initialBinding != null) - qe.setInitialBinding(initialBinding); - return qe; - } + if (fm != null){ + qe.setFileManager(fm); + } - static public QueryExecution create(String queryStr, - QuerySolution initialBinding) { - checkArg(queryStr); - return create(makeQuery(queryStr), initialBinding); - } - - // ?? - static public QueryExecution create(Query query, Dataset dataset, - QuerySolution initialBinding) { - checkArg(query); - QueryExecution qe = make(query, dataset); - if (initialBinding != null) - qe.setInitialBinding(initialBinding); return qe; - } + }*/ - // ?? - static public QueryExecution create(String queryStr, Dataset dataset, - QuerySolution initialBinding) { + /*static public QueryExecution create(String queryStr, FileManager fm) { checkArg(queryStr); - return create(makeQuery(queryStr), dataset, initialBinding); - } - - // ---------------- Remote query execution - - static public QueryExecution sparqlService(String service, Query query) { - checkNotNull(service, "URL for service is null"); - checkArg(query); - return makeServiceRequest(service, query); - } - - static public QueryExecution sparqlService(String service, Query query, - String defaultGraph) { - checkNotNull(service, "URL for service is null"); - // checkNotNull(defaultGraph, "IRI for default graph is null") ; - checkArg(query); - QueryEngineHTTP qe = makeServiceRequest(service, query); - qe.addDefaultGraph(defaultGraph); - return qe; - } - - static public QueryExecution sparqlService(String service, Query query, - List defaultGraphURIs, List namedGraphURIs) { - checkNotNull(service, "URL for service is null"); - // checkNotNull(defaultGraphURIs, "List of default graph URIs is null") - // ; - // checkNotNull(namedGraphURIs, "List of named graph URIs is null") ; - checkArg(query); - - QueryEngineHTTP qe = makeServiceRequest(service, query); - - if (defaultGraphURIs != null) - qe.setDefaultGraphURIs(defaultGraphURIs); - if (namedGraphURIs != null) - qe.setNamedGraphURIs(namedGraphURIs); - return qe; - } - - // ---------------- Internal routines - - // Make query - - static private Query makeQuery(String queryStr) { - return QueryFactory.create(queryStr); - } - - // ---- Make executions - - static private QueryExecution make(Query query) { - return make(query, null); - } - - static private QueryExecution make(Query query, Dataset dataset) { - return make(query, dataset, null); - } - - static private QueryExecution make(Query query, Dataset dataset, - Context context) { - return null; - } - - static private QueryEngineHTTP makeServiceRequest(String service, - Query query) { - return new QueryEngineHTTP(service, query); - } - - static private void checkNotNull(Object obj, String msg) { - if (obj == null) - throw new IllegalArgumentException(msg); - } - - static private void checkArg(Model model) { - checkNotNull(model, "Model is a null pointer"); - } - - static private void checkArg(String queryStr) { - checkNotNull(queryStr, "Query string is null"); - } - - static private void checkArg(Query query) { - checkNotNull(query, "Query is null"); - } + return create(makeQuery(queryStr), fm); + }*/ + + // ---------------- Query + Model + + static public QueryExecution create(Query query, Model model) { + checkArg(query); + checkArg(model); + + if (model.getGraph() instanceof VirtGraph) { + return new VirtuosoQueryExecution( + query.toString(), (VirtGraph) model.getGraph()); + } else { + return make(query, new DatasetImpl(model)); + } + } + + static public QueryExecution create(String queryStr, Model model) { + checkArg(queryStr); + checkArg(model); + if (model.getGraph() instanceof VirtGraph) { + return new VirtuosoQueryExecution(queryStr, + (VirtGraph) model.getGraph()); + } else { + return create(makeQuery(queryStr), model); + } + } + + static public QueryExecution create(Query query, + QuerySolution initialBinding) { + checkArg(query); + QueryExecution qe = make(query); + if (initialBinding != null) + qe.setInitialBinding(initialBinding); + return qe; + } + + static public QueryExecution create(String queryStr, + QuerySolution initialBinding) { + checkArg(queryStr); + return create(makeQuery(queryStr), initialBinding); + } + + // ?? + static public QueryExecution create(Query query, Dataset dataset, + QuerySolution initialBinding) { + checkArg(query); + QueryExecution qe = make(query, dataset); + if (initialBinding != null) + qe.setInitialBinding(initialBinding); + return qe; + } + + // ?? + static public QueryExecution create(String queryStr, Dataset dataset, + QuerySolution initialBinding) { + checkArg(queryStr); + return create(makeQuery(queryStr), dataset, initialBinding); + } + + // ---------------- Remote query execution + + static public QueryExecution sparqlService(String service, Query query) { + checkNotNull(service, "URL for service is null"); + checkArg(query); + return makeServiceRequest(service, query); + } + + static public QueryExecution sparqlService(String service, Query query, + String defaultGraph) { + checkNotNull(service, "URL for service is null"); + // checkNotNull(defaultGraph, "IRI for default graph is null") ; + checkArg(query); + QueryEngineHTTP qe = makeServiceRequest(service, query); + qe.addDefaultGraph(defaultGraph); + return qe; + } + + static public QueryExecution sparqlService(String service, Query query, + List defaultGraphURIs, List namedGraphURIs) { + checkNotNull(service, "URL for service is null"); + // checkNotNull(defaultGraphURIs, "List of default graph URIs is null") + // ; + // checkNotNull(namedGraphURIs, "List of named graph URIs is null") ; + checkArg(query); + + QueryEngineHTTP qe = makeServiceRequest(service, query); + + if (defaultGraphURIs != null) + qe.setDefaultGraphURIs(defaultGraphURIs); + if (namedGraphURIs != null) + qe.setNamedGraphURIs(namedGraphURIs); + return qe; + } + + // ---------------- Internal routines + + // Make query + + static private Query makeQuery(String queryStr) { + return QueryFactory.create(queryStr); + } + + // ---- Make executions + + static private QueryExecution make(Query query) { + return make(query, null); + } + + static private QueryExecution make(Query query, Dataset dataset) { + return make(query, dataset, null); + } + + static private QueryExecution make(Query query, Dataset dataset, + Context context) { + if (dataset != null) { + return QueryExecutionFactory.create(query, dataset); + } else { + return QueryExecutionFactory.create(query); + } + } + + static private QueryEngineHTTP makeServiceRequest(String service, + Query query) { + return new QueryEngineHTTP(service, query); + } + + static private void checkNotNull(Object obj, String msg) { + if (obj == null) + throw new IllegalArgumentException(msg); + } + + static private void checkArg(Model model) { + checkNotNull(model, "Model is a null pointer"); + } + + static private void checkArg(String queryStr) { + checkNotNull(queryStr, "Query string is null"); + } + + static private void checkArg(Query query) { + checkNotNull(query, "Query is null"); + } } diff --git a/src/main/java/virtuoso/jena/driver/VirtuosoUpdateFactory.java b/src/main/java/virtuoso/jena/driver/VirtuosoUpdateFactory.java index 963cb92..89202f8 100644 --- a/src/main/java/virtuoso/jena/driver/VirtuosoUpdateFactory.java +++ b/src/main/java/virtuoso/jena/driver/VirtuosoUpdateFactory.java @@ -28,48 +28,57 @@ import java.io.InputStream; import java.io.Reader; -import com.hp.hpl.jena.update.UpdateException; -import com.hp.hpl.jena.util.FileUtils; +import org.apache.jena.update.UpdateException; +import org.apache.jena.util.FileUtils; public class VirtuosoUpdateFactory { - private VirtuosoUpdateFactory() { - } + private static final org.slf4j.Logger logger = + org.slf4j.LoggerFactory.getLogger(VirtuosoUpdateFactory.class); - /** Create an UpdateRequest by parsing the given string */ - static public VirtuosoUpdateRequest create(String query, VirtGraph graph) { - return new VirtuosoUpdateRequest(query, graph); - } + private VirtuosoUpdateFactory() { + } - /** Create an UpdateRequest by reading it from a file */ - public static VirtuosoUpdateRequest read(String fileName, VirtGraph graph) { - InputStream in = null; - if (fileName.equals("-")) - in = System.in; - else - try { - in = new FileInputStream(fileName); - } catch (FileNotFoundException ex) { - throw new UpdateException("File nout found: " + fileName); - } - return read(in, graph); - } + /** + * Create an UpdateRequest by parsing the given string * + * + * @param fileName the {@link String} to the File path. + * @param graph the {@link VirtGraph} the Graph jena. + * @return the {@link VirtuosoUpdateRequest} + */ + public static VirtuosoUpdateRequest read(String fileName, VirtGraph graph) { + InputStream in; + if (fileName.equals("-")) + in = System.in; + else + try { + in = new FileInputStream(fileName); + } catch (FileNotFoundException ex) { + throw new UpdateException("File nout found: " + fileName); + } + return read(in, graph); + } - /** - * Create an UpdateRequest by reading it from an InputStream (note that - * conversion to UTF-8 will be applied automatically) - */ - public static VirtuosoUpdateRequest read(InputStream in, VirtGraph graph) { - Reader r = FileUtils.asBufferedUTF8(in); - StringBuffer b = new StringBuffer(); - char ch; - try { - while ((ch = (char) r.read()) != -1) - b.append(ch); - } catch (Exception e) { - throw new UpdateException(e); - } - return new VirtuosoUpdateRequest(b.toString(), graph); - } + /** + * Create an UpdateRequest by reading it from an InputStream (note that + * conversion to UTF-8 will be applied automatically) + * + * @param in the {@link InputStream} to Stream of the File. + * @param graph the {@link VirtGraph} the Graph jena. + * @return the {@link VirtuosoUpdateRequest} + */ + public static VirtuosoUpdateRequest read(InputStream in, VirtGraph graph) { + Reader r = FileUtils.asBufferedUTF8(in); + StringBuilder b = new StringBuilder(); + char ch; + try { + //noinspection ConstantConditions + while ((ch = (char) r.read()) != -1) + b.append(ch); + } catch (Exception e) { + throw new UpdateException(e); + } + return new VirtuosoUpdateRequest(b.toString(), graph); + } } diff --git a/src/main/java/virtuoso/jena/driver/VirtuosoUpdateRequest.java b/src/main/java/virtuoso/jena/driver/VirtuosoUpdateRequest.java index d64498f..492e4c5 100644 --- a/src/main/java/virtuoso/jena/driver/VirtuosoUpdateRequest.java +++ b/src/main/java/virtuoso/jena/driver/VirtuosoUpdateRequest.java @@ -28,74 +28,78 @@ import java.util.List; import org.apache.jena.atlas.io.IndentedWriter; - -import com.hp.hpl.jena.update.UpdateException; +import org.apache.jena.update.UpdateException; public class VirtuosoUpdateRequest { - private List requests = new ArrayList(); - private VirtGraph graph; - private String virt_query; - - java.sql.Statement stmt = null; - - public VirtuosoUpdateRequest(VirtGraph _graph) { - graph = _graph; - } - - public VirtuosoUpdateRequest(String query, VirtGraph _graph) { - this(_graph); - virt_query = query; - requests.add((Object) query); - } - - public void exec() { - try { - stmt = graph.createStatement(); - - for (Iterator iter = requests.iterator(); iter.hasNext();) { - String query = "sparql\n " + (String) iter.next(); - stmt.execute(query); - } - - stmt.close(); - stmt = null; - } catch (Exception e) { - throw new UpdateException("Convert results are FAILED.:", e); - } - - } - - public void addUpdate(String update) { - requests.add(update); - } - - public Iterator iterator() { - return requests.iterator(); - } - - public String toString() { - StringBuffer b = new StringBuffer(); - - for (Iterator iter = requests.iterator(); iter.hasNext();) { - b.append((String) iter.next()); - b.append("\n"); - } - return b.toString(); - } - - public void output(IndentedWriter out) { - boolean first = true; - out.println(); - - for (Iterator iter = requests.iterator(); iter.hasNext();) { - if (!first) - out.println(" # ----------------"); - else - first = false; - System.out.println((String) iter.next()); - out.ensureStartOfLine(); - } - - } + + private static final org.slf4j.Logger logger = + org.slf4j.LoggerFactory.getLogger(VirtuosoUpdateRequest.class); + + private List requests = new ArrayList<>(); + private VirtGraph graph; + private String virt_query; + + java.sql.Statement stmt = null; + + public VirtuosoUpdateRequest(VirtGraph _graph) { + graph = _graph; + } + + public VirtuosoUpdateRequest(String query, VirtGraph _graph) { + this(_graph); + virt_query = query; + requests.add(query); + } + + public void exec() { + try { + stmt = graph.createStatement(); + + for (Object request : requests) { + String query = "sparql\n " + String.valueOf(request); + stmt.execute(query); + } + + stmt.close(); + stmt = null; + } catch (Exception e) { + throw new UpdateException("Convert results are FAILED.:", e); + } + + } + + public void addUpdate(String update) { + requests.add(update); + } + + public Iterator iterator() { + return requests.iterator(); + } + + @Override + public String toString() { + StringBuilder b = new StringBuilder(); + + for (Object request : requests) { + b.append((String) request); + b.append("\n"); + } + return b.toString(); + } + + public void output(IndentedWriter out) { + boolean first = true; + out.println(); + + for (Object request : requests) { + if (!first) + out.println(" # ----------------"); + else + first = false; + System.out.println((String) request); + out.ensureStartOfLine(); + } + + } } From bc9638a0ecae201b3cad0a03a6344123b4edec61 Mon Sep 17 00:00:00 2001 From: Marco Date: Sat, 9 Jan 2016 20:36:00 +0100 Subject: [PATCH 2/8] Upgrade README. Upgrade Some piece of code. --- README.md | 4 +- .../java/virtuoso/jena/driver/VirtGraph.java | 61 ++++--------------- .../virtuoso/jena/driver/VirtUtilities.java | 44 +++++++++++++ .../jena/driver/VirtuosoQueryEngine.java | 2 +- .../jena/driver/VirtuosoQueryExecution.java | 2 +- 5 files changed, 59 insertions(+), 54 deletions(-) diff --git a/README.md b/README.md index b2d7864..d6ca9b5 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,9 @@ The Virtuoso Jena RDF Data Provider is a fully operational Native Graph Model St http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtJenaProvider -However, current release (2.6.2) of the Virtuoso Jena Provider is designed to work with Virtuoso JDBC 3 Driver and Jena versions above 2.5.5 +However, current release (3.0.1) of the Virtuoso Jena Provider is designed to work with Virtuoso JDBC 3 Driver and Jena versions above 2.5.5 Current release supports neither Virtuoso JDBC 4 Driver nor Jena version 2.6.4 above, where Jena Framework became a top level Apache Project. -This project includes modifications on Virtuoso Jena Provider 2.6.2 so that, it can work with Virtuoso JDBC 4 Driver and current latest Jena release 2.10.0 +This project includes modifications on Virtuoso Jena Provider 2.6.2 so that, it can work with Virtuoso JDBC 4 Driver and current latest Jena release 3.0.1 ## Installation =========== diff --git a/src/main/java/virtuoso/jena/driver/VirtGraph.java b/src/main/java/virtuoso/jena/driver/VirtGraph.java index 7bbb9a9..27148fa 100644 --- a/src/main/java/virtuoso/jena/driver/VirtGraph.java +++ b/src/main/java/virtuoso/jena/driver/VirtGraph.java @@ -174,48 +174,9 @@ public VirtGraph(String graphName, String _url_hostlist, String user, } - private static String escapeString(String s) { - StringBuilder buf = new StringBuilder(s.length()); - int i = 0; - char ch; - while (i < s.length()) { - ch = s.charAt(i++); - if (ch == '\'') - buf.append('\\'); - buf.append(ch); - } - return buf.toString(); - } - // GraphBase overrides - public static String Node2Str(Node n) { - if (n.isURI()) { - return "<" + n + ">"; - } else if (n.isBlank()) { - return "<_:" + n + ">"; - } else if (n.isLiteral()) { - String s; - StringBuilder sb = new StringBuilder(); - sb.append("'"); - sb.append(escapeString(n.getLiteralValue().toString())); - sb.append("'"); - - s = n.getLiteralLanguage(); - if (s != null && s.length() > 0) { - sb.append("@"); - sb.append(s); - } - s = n.getLiteralDatatypeURI(); - if (s != null && s.length() > 0) { - sb.append("^^<"); - sb.append(s); - sb.append(">"); - } - return sb.toString(); - } else { - return "<" + n + ">"; - } - } + + // getters public VirtuosoDataSource getDataSource() { @@ -491,13 +452,13 @@ protected boolean graphBaseContains(Triple t) { O = " ?o "; if (!Node.ANY.equals(t.getSubject())) - S = Node2Str(t.getSubject()); + S = VirtUtilities.toString(t.getSubject()); if (!Node.ANY.equals(t.getPredicate())) - P = Node2Str(t.getPredicate()); + P = VirtUtilities.toString(t.getPredicate()); if (!Node.ANY.equals(t.getObject())) - O = Node2Str(t.getObject()); + O = VirtUtilities.toString(t.getObject()); if (ruleSet != null) sb.append(" define input:inference '").append(ruleSet).append("'\n "); @@ -544,13 +505,13 @@ public ExtendedIterator graphBaseFind(Triple tm) { O = " ?o "; if (tm.getMatchSubject() != null) - S = Node2Str(tm.getMatchSubject()); + S = VirtUtilities.toString(tm.getMatchSubject()); if (tm.getMatchPredicate() != null) - P = Node2Str(tm.getMatchPredicate()); + P = VirtUtilities.toString(tm.getMatchPredicate()); if (tm.getMatchObject() != null) - O = Node2Str(tm.getMatchObject()); + O = VirtUtilities.toString(tm.getMatchObject()); if (ruleSet != null) sb.append(" define input:inference '").append(ruleSet).append("'\n "); @@ -699,13 +660,13 @@ void delete_match(Triple tm) { } else { if (nS != null) - S = Node2Str(nS); + S = VirtUtilities.toString(nS); if (nP != null) - P = Node2Str(nP); + P = VirtUtilities.toString(nP); if (nO != null) - O = Node2Str(nO); + O = VirtUtilities.toString(nO); String query = "sparql delete from graph <" + this.graphName + "> { " + S + " " + P + " " + O + " } from <" diff --git a/src/main/java/virtuoso/jena/driver/VirtUtilities.java b/src/main/java/virtuoso/jena/driver/VirtUtilities.java index 69fe9f0..5e0880f 100644 --- a/src/main/java/virtuoso/jena/driver/VirtUtilities.java +++ b/src/main/java/virtuoso/jena/driver/VirtUtilities.java @@ -303,5 +303,49 @@ public static Node toNode(Object resource, RDFDatatype rdfDatatype) { return createNodeBase(resource, null, rdfDatatype, null); } + private static String escapeString(String s) { + StringBuilder buf = new StringBuilder(s.length()); + int i = 0; + char ch; + while (i < s.length()) { + ch = s.charAt(i++); + if (ch == '\'') + buf.append('\\'); + buf.append(ch); + } + return buf.toString(); + } + + // GraphBase overrides + public static String toString(Node n) { + if (n.isURI()) { + return "<" + n + ">"; + } else if (n.isBlank()) { + return "<_:" + n + ">"; + } else if (n.isLiteral()) { + String s; + StringBuilder sb = new StringBuilder(); + sb.append("'"); + sb.append(escapeString(n.getLiteralValue().toString())); + sb.append("'"); + + s = n.getLiteralLanguage(); + if (s != null && s.length() > 0) { + sb.append("@"); + sb.append(s); + } + s = n.getLiteralDatatypeURI(); + if (s != null && s.length() > 0) { + sb.append("^^<"); + sb.append(s); + sb.append(">"); + } + return sb.toString(); + } else { + return "<" + n + ">"; + } + } + + } diff --git a/src/main/java/virtuoso/jena/driver/VirtuosoQueryEngine.java b/src/main/java/virtuoso/jena/driver/VirtuosoQueryEngine.java index 335d60c..56c7405 100644 --- a/src/main/java/virtuoso/jena/driver/VirtuosoQueryEngine.java +++ b/src/main/java/virtuoso/jena/driver/VirtuosoQueryEngine.java @@ -138,7 +138,7 @@ private String substBindings(String query, Binding args) { String varName = query.substring(i, j); Node val = args.get(Var.alloc(varName)); if (val != null) { - varData = VirtGraph.Node2Str(val); + varData = VirtUtilities.toString(val); i = j; } } diff --git a/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecution.java b/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecution.java index 86f5f8c..ce67333 100644 --- a/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecution.java +++ b/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecution.java @@ -222,7 +222,7 @@ private String substBindings(String query) { String varName = query.substring(i, j); RDFNode val = m_arg.get(varName); if (val != null) { - varData = VirtGraph.Node2Str(val.asNode()); + varData = VirtUtilities.toString(val.asNode()); i = j; } } From e1d5a6398fdd0eaca4869cb598f61738d0bcc8bb Mon Sep 17 00:00:00 2001 From: Marco Date: Sun, 10 Jan 2016 10:45:22 +0100 Subject: [PATCH 3/8] Add lib folder. --- lib/virtuoso/virtjdbc/4.0/virtjdbc-4.0.jar | Bin 0 -> 217690 bytes lib/virtuoso/virtjdbc/4.0/virtjdbc-4.0.pom | 27 ++++++++++++++++ lib/virtuoso/virtjdbc/4.1/virtjdbc-4.1.jar | Bin 0 -> 214811 bytes lib/virtuoso/virtjdbc/4.1/virtjdbc-4.1.pom | 27 ++++++++++++++++ .../virtjdbc/maven-metadata-local.xml | 30 ++++++++++++++++++ 5 files changed, 84 insertions(+) create mode 100644 lib/virtuoso/virtjdbc/4.0/virtjdbc-4.0.jar create mode 100644 lib/virtuoso/virtjdbc/4.0/virtjdbc-4.0.pom create mode 100644 lib/virtuoso/virtjdbc/4.1/virtjdbc-4.1.jar create mode 100644 lib/virtuoso/virtjdbc/4.1/virtjdbc-4.1.pom create mode 100644 lib/virtuoso/virtjdbc/maven-metadata-local.xml diff --git a/lib/virtuoso/virtjdbc/4.0/virtjdbc-4.0.jar b/lib/virtuoso/virtjdbc/4.0/virtjdbc-4.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..b207f0ce9f3161234453f590222437bfc354f08a GIT binary patch literal 217690 zcma&N1CS=c_a)l4ZQC}cIc?ka*FA09wrzX*Yh&8BZQIj)^V{9`Vt3zvU%aZydov>Q zM%){b6(`ThDkWKP2n-OIf45AMuMo)pbisl^fXGXzi7-klNHTwogMfg8D9J*@{AUK( z|Cpxqe+H{<^amKRZwmXuIcW0IGAke{58lVxO@LzHEto1UC$R$*CW-#v0-l96YS zmY;L2f`H99!yUxWptpiZKc;=Ppu#@F*2GFLImV**IHtU?zIXadWpRAQcS3=MtxKC? zj+L5njD2!pUP?ikecFy;o>q!==XB=;`rmRLl;jDv`IpIm+W$FM#($%3)=n<24$cnD zHfAQK9L!?Ic6P=lcIK)s#xCXnb9)y}C*xng%$=A_?TnqBOS7PTFw}`gzM1V-DdcEq zf1DZ(Vz4}mqEN!l8Ck)S1OZlKjE$S|-MLBJhPJ(Lx{W#?ZZ&QOJ0G&TUxFaLZ_4ww zzgyWm*W@jB4yMLV9yT($zh82{-+Q0)v57yQ0>dM$pc{LB$k7y;4i1X)>B!Nc=|;+o zE=&0EuQ3DfqN~X0P?p;21LbQC<#5HrGS0C#iW-o(H$;Hpmmq7XP3UHpqf8025y=^+P zeP@4uu?UIHPF5{1{jutzMvGpoz0@LFt*m23L(&cOU_skvwsCXUoqJnOJ+^6Pa?`4) zn?nelJR+?Yv>&czq9>@YH((fD!8vPy_&XIBw`}B*S^%m}!xW{XpSYB!uZ996VX{1_ zB&Ece`b>c$KaHPTY>QL%(>Dh^P0HFQ7zS!>U3<62^vc`u`+y?Bl=yszP6py<g>G>$KRo*WL%Ev5dSlHPeJ5J zopH&{Tg;-Zd7A0i9kWqhi~_A`l7%}Xwk?m?-1Z<%f3`0c!b*YyuT^&aZ?4`vn%lMR zC0#9Q7Yt|n=?=9L%|Bq#MLmwx`drJ_?SEpP!Vxy9W#=^& z^M-qE<)WGGT2WxE9eYSdEr(b*df#I#n)%Q+cjQ?7iL=GVj>owIM>pk_$6yvbrY*mh zX%WglY32KUt%A=-sM#qIR=IuP2RI`Zm`vYO|C~rhw+`6|K1`--rM`9<^ikHewU`{x z=!%P;C1pL?(_reeJ2;%QaQ3#q9%4JL)&);1yS&1^w3r7;4$|^c=v@0vosHsb!Rzt- z=+>N@yU&ZhJynLw723E>**8@ID>>A7DN)E}8S*y$dy!tncAJaW_W7#%Uns!w;@upv zvS7Vh-dy3A7f(6e>P38)sFPN45bA_ZVpVF(C2L$&aQpeB7730S|HNfdC?ig#Ev);? zAVAi85Lp^Z&`xrt?3_HIQi8daJaaud&*b-0kRs&}@m*r^BOdEcK zp*fg);n3Sn)jj>ftEeXHvQ1C@Wwn2MLVc&!vrgBeJ$rAS;0Td-e8V}V^^hh%x44V< zr)TnejH3O4y{*yrm5A}tC8GTR^T==k+%K<}nlZqtfAbEnW$T3dH+bsPS1*Q9k^qYv zT|q=+GAd0?&R`#4%2^uOEwxoQiP@v#3?b=k+olXEjv}R-U*Nt7IGU9f*W;<&q(qpX zf(xVyZ*FmsXr!kQR!U$j;rgSp>7m2Fu<@qH|C!t?WSz48e2F*4LE+gl)S37>Km91% zY|8CEF|0Apkcq%xrO#HbzHGACP1 zH?nosVN=*+yZ7ze1y2_`Bl5*hbDx5B%oaqSnglZy$|82eFma#4b<7u3pV|c171|

o%UveoPa|CUIEcPjDx_!Tp`N9exMR@`W-? zyqAiP8WE2gp@uuYksKKw|n2fz4< zZU~V(?Ir7Rn{Px^ca)EFE+1PbU7;u{^e`6~3}SR6W2|2O#B@)^5wQ z*5>}e4);ruBmH?Z^UFNz^fei#oSKtLH_ah#@P~%f&Wc2=8E4a2a4CLO zU6+xc_6+=?n35eMR;;mdHsMef>B2!M_F*g`?s$JU{)=FTaK`<}hdaO@-qxl(CE}g- z#-QI{h%a!tRQ~=Ij_PGDAPezOHZvzxC5!-MfVt<(EWq3 z2=zlt{{8dw0xgX|s)F-*D(`6!bfwYvd*v_FB!&i~J9MqfF~r-u8y+g`M(|)FD$~ad z2u$SNF?K8asYOH%vvbL=>7SIB=eyf0jQ0zfeth(2;Zj1o>eGL?oV10$6~_DHS5`|ioK5)<&5_+vUy^_6GZGTWDh0u6&R+9pLE2xNe>6v z^vN8!olM%95?`2j9ov`^xkY&$#fi2mB@Xq~6$mnax?7`qMyH|E-=EqulHI%@HEw4n z6~D`kDTANpErz%pn_5#fbu%Y5L$@avyN2_WlR53<=#!mrI_+!elTk}M?epl9S?W3M zd+3vuJ2>q__!8fkC`|9MQ;MKJh0SdF3@O}lT4p#|QlIfnoK@wtr7|Tt8}c@)q>o1a z&S`7;I+Px@;BlWb+rpjZ?E!0#WlHMB!5F2}r||ceS_rCyt$NPDy48%ONUS_kZyweq zdq@~O(4k;!$rIeBk#J@y^ALaF&h;5pSR!ot2&92$Mh*jXhrFPg*Drbgx&K)M)|rdV z;EzS$u;KmZJ{$xMzf)W6aNr&QB`B-yW}n?etvXo0ONttCv}j z+s*UAAxQ4rMkmtg;qt2OrNBz-_OyTd@E8QvnT>t<@6`qC?8LsDc#Hz$pMrl@_mU5+ zeF^f--BvOx_x{r(?J%}{PunGbx#!5ZQzAKY8{wC|?KsGylM&%O;|Dm6{yV3+sUN*pG$YzC-{8GsXrWS?>OP*o?UU;7x=sxaX1|O`xef;Gad>5h-}!CjK1-R z%+-^QzVU=?=$C+weg6Jhe0U4Vzd*(u&iqYE(DOmz?$-FVH!w|lr(Y_8Z9#O}IdRWN*$<`#As^I~Is5$g$1$?1_0I;Bdnuv24%&cQs+lZ#{l{MZ~qd}5y2wvYR!3~_*3p79*G=H@5l!#O1IeZ0diJ@K*3F2 z$%6j6C$2E{Rq`&Q=+s8Rd3d1I*_HB})*JDEI2QMipt?Q+2#B)4|IAyY|2Kk0^k486 zI|pa;{}7k|PE`1x99D#&prFX1nB1V;+@O#op_UJGKK9ilp)3%mSR|pCR-z6UgOVmc zx=h@l6eOV{ndc<{qMz4 z{TIbJ*xQ?%x>!5d|1a#TMH}8n?I`uzKRL7A*a@7}I0*q67R?0*&9j0AR)QozQp|%Q z3}VrPy`2JlK(32jWOm)Ax((2ZTn%WX!?cwpRx^eVOwqS44P9P$@AMV6>s$}N0=^r# z!wa5ty4zn*Zo=aFb^fJ1>3s42m^t9z;XUc}Jo`8?0BH~x;D+@Uw+8VZqVR)bp;ZmR z3s6jXm@t!&gDp@~yPa4BNgNNTKwD^I9<5)Jvl;(|j5w=WOD6ikCKw>YDu&A5?u<3l zBZu1TS;7>c!}=37{b6Dg#3I7WFKYy$PH8Z;i-h1uZpO?ODwQ!6ds20M~0p8d~HM?NRSDAG62*idZX>#jmn+n%-o3@Jyx1HnPy^f#=C-jjR*z2C`_Jj zR5Ieu{t_l4muy(kMOUG*`9f(nQ&AtI5Eqv;-8}sAY_?jSLK}P9AHkqqI`#JKd_W{lrJR z>!t{t+bAk+@o@T4Fwfde4j4oO=kRWt+i0hr%aR#xabd_Dg#yTzJb`W%SRYB=$d7sS zE@MZJ%!lZvU2Y_v%K-oY<(pz4M!k{J*WD55iV>{ zv8s0R5n}dw4JwyuN>COnS2Ne<`uRC8n5^F8Sk~n+CA#*>F}hvJbhj8^duQKb%Plc8kk=Nc^`-qeLcm7n22U1FKx zdt}?Pd;u9%OM?E+Ck&`n5}GFjf-N`XPo7CH$D(v&mFZ>cWt&XU+=s@WF03iX~DpdBcVO1I(%<% z3yS#Jb8pi$J5`?n#%b~>SDp!%-{I+gT0!VhTzXS$yeeUt5;5-bZw)Xmcj2-xaZSK- zNT%|3pR#(Bptd)k;&=2=&0un)OgckmWljahqyE?y-%~w%QfCciX_&%hrP1+uEU|Oz zsxrNDtd`Me%jn*Dh%)&Sf>OUhPz6@I_?X zk}F`>gp0-e-cvSg1ro(xbn5<3MG{W=%o@X7GY;x^_FX@RidXCRyFK!we%|__G1Vs= z)8?z*v3yCAu-)Bfq(!z?dtiTQ456>qM?kCJq1>Up4-QnJOg5%(@_dDA0@x!p(IN2E=V!j^6c=04=i8sVOp8f!Zf@qd@b+- z4ual0uPq?^fxIHNEccg-*G)VvtTWh^FJ5R9dkpCklvkzefXM&aaMF6Yg*Z3RT9J9Oi zmAz-~#9+S!0X(*Wp2A3K9xrotgay-3am*st#n2?528L~`iCvIm%yUICP2qzr|I5UB zRguzzt={nM$kX5tuLL3wzaXcrm|wPEEi(w3Qv&O3(^dl^_M^{_^Db-$yP%#^@}<8) zx4KAFJ`$7Q7;=>gPo0$MaPg)Yr{Mf-oN9l6Snwt}KM*?%pU>v+n5{Mt&v7~dm zTr?7~f3=5vI?Fr$ELIX!lOj98%|(-K!D)11s2Wt-x+blu%Z|2t!YzME1t4L&Lz=$>%Zx35p9#mYrs7GZTQysu zFXBu*Wcv68>ZOY$?6b%el@mbSw96wyhB&ep3(-A7N>;vmQF$s1`t3;bsIrb8$&uGr zasWdB`JEvkEOqY>^UgR}8NyugBq6C}q2QhK)wTH7IO{b;@Q%;Mb3bR4H6`G<^0h4y;0i5EIX_ivO~~JpSQ%PL@1NRUpjE? zh!3zV5e;_oVeGqq;e+6Ws&?1lD}sLh897BI(}b(~0Z9HU!;(@le zo3J=Isuqm1zm&*2UZO}-*ni4mW9)_ztnsBTyp6dZu?CT<!VJvtyjbzQ z#$fe)b0p=&44tLJ%J?me+v^#ZXI&H-V}QT4=yQl}X!PA_e@5ERVC~E7kCJvX(JN18 z@J3z8npIiFbD%jD(^@0iQ}mP0Sq_8+|%WoNgHH7Ug=6)w-Ba-a~$ZR0!S zY@VVTlq#FTNvWlECKNbn)V9dRHt(+tTan`tZ7a=TPvf$c!mi^!Z&pQmFg!|?9vRDJ zRF6(rP!VijH5^PI&4>3GJ>M4?tg)P)f8h056U{X)RB$wF#zJnQ&z_vGpM8)$APnFf zA_}O-5@@p}gm%yU=W2t!4=4#Y)9+gPop#hNmA!EdiOUJB7=Z*HL^}<;S&VIGNNw5r z7%L5=e~9n1 zQU5rEf_&Fpt`u;;Z^fYa#i2yS{O1vhL+Po3L4Axf=|(1%7=|$n8IW-uwH$^)d`U|2 zbqQ`?SvEl$i4gi3QxVFHPOcX`=*|GSlIZ1UQ$LD`#vs}`gMf|%y6UrVR=_ve%DCgR z(=wZ1<|ujN%9_u8$T@Y=a(TdcbzuJfTH@*$&wz2~4Amr+_7v3bg<2|M-g80t zYBq`@zYP|`*IQa(RvQe^aCKC1|Il0_p$vOBv#n}H*nY^6{rWEQ0AIqMh3T!#4f6k; z3PoVE5RkpUlV7k;4^Pt*;@XU9=ouO1@YbvJ0Ue6*Ez-094+-H$_NIo0_lOUuL+ALS zB;INLG;nI0wSMOxV294xGh$s~el#f!7v`)U{n;yGo36jLg|A!bs9|ng0B;{kLmNj< zxAf_^Q!MNZ*ZJC@Q!v6WMbzdkK-+4{wRdI^gH>1jb|H7H1+KZt0_%0`ZW`=Qq6xLn zxTa;&EgxBQk7XFYdE1?u&eH&+W3I{cD=Wj@T{{MLz<+>C+tuif(b?ELbi?rbLYiYc zQs+eBF^!}Xn72=}4(njbw0(2;=HcOv75xJJF;|7T6;qCBDbO7EVd?dS{w089XXyB4 z*Z&3I{Yn27>xBcHU&j~re~He5ti}G0`)(NSWVo25NRyd)!*199@xI(!x;IIh0_4uI zPU$Hth#L3*62(ZWr4?fo@S$fR-}0Yl{@L;E6^zpT>X1EB`#aBb^4C31VBSbkQpzr~ zT}zW|158I_#mP64E(4yi-$8|=k7Z2O4sJ2|YTmnRBhh#8H|M8VU(>AWu}VHq(%%d# zU(Y+>*i6g_%X>}aOguSGLyyGVEo;a~SicjE39|BhmIWfG)())McTpo{v?Pm_{?L(9 zWWoya1>-NYM)KcVNAs^DlLIY>iz0OVTt&g_fRrLPmF)hF#`yK{I~XEo46CE$lKjnS zag7}PXLLgpHbakZQ6R4a{_kbBiu2d`th+pTu;m)42{+DT%dK%p>c#`dlskOD?Q~6i z{nG92_hW6U;ymBV+kxr+* zC90c$3pAs8;ZiD)%5VU;3d7p-jfOSnr=vA4ZYdh~zQw)^`?|R;90z*OLq;VGGJh&f zyF9AFeWh-R?O$n?{7+0$21RTo^S6;hRh;X}%`4u(PDRTzO ztt_S8DRJ<{G!taZh3#Ij|A;@MaEHK66cCUH=KnA8hvol=UP7Vj0&o#CHnsX6a!{$J zwX>=^j-NvIA@GbbB~3$Df|jgI+P1olL{=ZpiW9OBlOe)Gy6&pf8qLW8u5G{PhW|Qh zd88T_PXhlTE9?LvgiQ3wM{v&#kNWA9j5f6VMKhLyyu6jw+2mjOR_I2NWp+S zahnj}DUKjmwa1DWZ|foYCp~V*EL%CW<5t0R)JmRTqlVLN2zt_LwJ8@9?r2NHaP!wZ zttzQjinX}~x5ePQ&dSZIwPX(F6~?3X-PK~Pk}8R7uJMaIt~8M$t8;5a(SFqgxn#-C zCGfhyZK+ZTReJCsTUC`z?AJ|uUWbsFNF;+esLx3=n=1#+nU(zg~^@`PPP>vf(kxc?)d1m;l=93xAw^7`L zBv(xflg8-GO+};2L1H2DpSqtZO>Qn3Il~G))t1a&wMTm#6;{qEAhv@)XQfD%%rV7I zlCKuIdsjC3ng<6e06?D3AxOy zMSBHt_2OeIO$)I^gvDCJ!`ztpKEutC)7x`!>eR=;{(jXl#pH2{Fwv(JettrBbDqdW zjsU^W%0c@xDY%yFx^DXA^=?u!f}>pRg1d*(01{;Go|^(=c+#p)x9jUHZ9G>R8O|y z>-xt2f{fo^JyJIGdoRSE-!%;p92G%3l4DCZZ8EtB)Y+l+_r2%BV7o-+xHZ1rdt!!l z$tEu3xy-Iuyow8{HoXpH-Us3)$BO%QlV;C?$1D#PAC^k5x^L zU;dPu!FrxN^{`>XyRZs<_-dxNkiEgnx-GxJ%uQ*K)8hUR+YyOLOej{s0!KZ6Vf4VB z4rGWek8i_H?p=$}?Z2m(63S3n&lDHx52Rk-(Dmg*x^oggi`>J7ytK{pI3UHE+Iu&+ zx1T`I3B^?%ZF}92PO91&Gm5Iy6Nt!bKF}O9dsyBpPPe2~dIRn?c?E+V{&@X^5T7vR z#?6uTZFjBMf|Rh8rgyNFCWo=j(Aeu7&<&Uwirx<&rqv}Syk#qlK2`=w$1Bz%-I$Bn z%%KgbP|6(J$R+`C5KDWc=eYix_E>u~>;R(fyh~hUe+4(<6Tv+7_Rdt*3L$z7%$>OY z2SmJW(N4XbaLd?(OWIsq2Zm86!XIK52RUGf1Gi~);|81b*e^sv-ohMJd@ltT+ca+x zh4I95zJI+}`res=&8kMRNzp{1WqVNAJ)$_#hoPz6gFGiH(~2jBb&~;Ft4lsGv1o;} z2pIy}hms6(=K>mZa|nuGWJow8`(iwXA|+d|%Umb@6ZsP_?qLqnl2?#FmBtJ;EihrY z6bmXnOGtJEz6-Lrwf!*w-#@5Zo@wx!{<@Lh^lRF4`MvYVegMsy83@LWVK4`Fv*-hS z;M@WQ)S(~tc;ncDc*DXDD#lQLPp=qZO?lOofTYjzt9!b0U~~jS;u7S2*lyh(-aylG zLZ7fei)q6bD8= zAWgfg%1=DE*Csrlx4mC_z9%m)?Z%>K_??M*bA4~79C|z-j=deI#;)@9+|f<#A{}g5 zI|Kb&BJ^i^p?tbC{DTcOKMVaA+-^;fwrNx!M5SP z3f@BR#`on12!s2B+Jo9de!*=*Z6bXjwt>I$|DwJ{-eua&@9Pcd4D=504tx)I4}=bY z4h#`z4J`yB1R(?_1SJG2MEQ!-2TGg(eFzTugLD^q7)0U+D+?A3$U(qe zA4CB}222WA@<-3u&?SZ;ZchrhYCz==NEXBlq)CuxFblBe02w1L7U)&{4ERa#V{rHY zx&pikP@BNeJ~AU>Bi07y2I2;YRbnkT0uTZi0tg21G;r5GI3vnmEDdlx5L$?f;D|rS zXCXMi8T;^z7*QaQAdw#4bw*y-qt;q_+s;u|*2{)5?Np2V zQ?u%ZG#!B*HfH60YTc1Yt5zZE(^OU9q?}Qo%b}u?T5_c%W$LBRS9&|^Id;ZZ+;!}A zA#On0Ii^y6(ID0hPW?!$kvR(kOgxOvEBRgra91%JlMFR}^+<6(6GbV(hZ7*%#oM{fM6FU_P&t`>O zHHDvYZVb5^Jg89{(DkErt0lv7=g8**i$lNl$9~9e-qRn3i(O0p^IF$SaPNcdYG^@Oc7mP6y!DdDe+xx{Yz-M+c;Ut zQRQtfQ#|k#XDV!zpb-V_%5i4mYS$H(daz*m^Q;`=l; z(U+Z;C3THo_b9Zk3kKAck4G&E7TWqo3gNlgn#dUDqsewErML-TE~s>4YCbjKJ!^EF zXzgs{>h+Xp$B#hiF6rBZ;Ca?%=;JS1r#w~~$G(kJG0WCF6nfO&w~skp&Y>^t2Tys` z7lkhhbyP6QNJT55#`?X8QcC$$6z&mhJp@eYDkq-b3dJ%dv?572u`gCX)9Pas=2C1$ z4lwlt)}?s4Odfdv91DN*WHu_fa&1zsDaPS*rWA-)g}`z#oLsYuZ0AA*nFL?5HiiWS zjv3g~hw!%K&)wu^pND4b(M#aD5|%9t;>fK#X^dY=IyXPga+IbU=$rA)hjRy#2|eN@ z*Ai!DTpRQXJ6kovjdjdz+9Izz+OnE$OgU-_Y@#+;mkHNR29r3i6>>)(_7V| zMyP1at1;Az=YC=vvM)GDIYb|WP7O{8P->bh5i4{F6|S;Nt!Bd{!Ny(7wK5`}nLSBv zb*NEV?_4C>Y?;UlY3t_O!sXWgK?&B(HGjic1N^#eY3#=dkP9-CB-L1o{ z>ME4SLqp}V*=B!S@Q;(bqz|V^RadEYFQ)k3RyxvK`!Q6zhmjcDJ=$zf4rk6MfaT#LA+${R67C3l}0&jFV%3H%V>UKI(2Q3B7zvwAxmKqbAXPMbAytS5{hDhrA0p5n>#A+@n&!Ob}I#7 zUL<5$hkoJTN%nL|dGbtis!nwObv17OpN*aAoUn7`KT}&=c>475luk;VB)W;FC#}!I zEAFqk_1L|qgqd^7><87ZV;MZDFLSqNZPx_i z=?cmcGzYG!?DOg2`DA(TZ9zY`Ba{bdx$inbJEzOc_K0$fRczR*iR2NmQ<9m*NnNmN z5Nd|G5K?b~dP$pSGU$D#a(v6f$*ZOykECne|HLt8Kzeak!f{C_5SrELUNt+_izp+o zcriGbNzD8st7CFz=V>EoV6!p%vXhxJaDL6xVO?zqZpQRSd6R7He2@^pJT#MPQ^fX8 zXvwd}l~_9oSxGBt75b%)aHZmovr1tC;RV=0godW9TMA~Z_C@j1sCqZ@5e zk`l8*KUQxq!zg$9$x121-t&@ky0*ok>0yXbcd;!ZhLNmazFbW27!}t1so}O{-m0By zuCun(VzLxvLk3xzISs#zC7_@%?YLUoCfr28SzVLW$Z-?uMg-_aM{E#o+5o$xa&r#& z%=`Rvvq50wZ`=y8N~ku;EU~q-mYeeK)Dw%?(7Bom`mFd|57LR>25oo)c@2IIO$0(D zekIm7&_~|ayH*VPOuWm=;Yr{D=7Ht`=Yi(|<$>jaJ_B7OyVMR|pJ#d(EzP3gn^ueUrjSVBY@ASnfQWI&llPS^~D z6wsqS3?n)vP&x22aQ1-ifXqII0<;XoNziAgW3Y#SzkOf@a1~HC0Xpa2Jt$fbm*5Og z&ydgHX&~?5vVq_M;DNyb=6y~DNIjUVI^L_Z>U9h@SKj0gnv?hWd zL9*`9Az!FmhxubQcJ@HGhd01|2yb9+5xdy?Is;<+sMPGBkWT)9?DV%ny>i(Rf)cr zL*gL<%?%J#5EssY$U(>f%Yn;*%8A>W2AMvz+}oT+x^=#N(%TgX@fPyI?sF&YrRifn zPXDEmIcJ@nQ-7^5qZp~*ZDT%~OHR+(Jm2v?@LuqD5_Q#18+n(Su)9cS+@wA2xAS-H^@ z6<4Tc)!5p9%X~+Jr zA8qG7ww{N&W--2=hq-3)uaCY)XAYQ&wre&AFh^X^@;14jMw4x9Hv!Ydf$jgS1kkey zs3{Ko`_D=MA)A0J;y^m>jSDi}mYS=7NBOmhgxwBN|HNWot2i+9pOpYgGy&bkfxd@; z8$O`<@3!gknM&!6M_e&GN21QIZVS}ESZh77HG>xyqmSLxQTB#wr`yeV-5P3YmCST0Z6BiT!bjJKBkZcp0TN`o-8HpZX0{0}v6yRk<^a&d zTIppjh2Ln_X?l^n`Y*RYEbR@5L_lm!t@xsYt@%5khz3|-XIEOZij*1)NE&s^r~x#M zF4Ni4qpz)-0glLYJ8J+@qdMsMe z%q|jJuIQVd#@C>|CT7HbX44DeKh z%0^>ryBiyKMPl(CG=cH5^^C$lJ;LNrtu56N3bYr<-d(DlSmcZh;y2)Gvq-#x(AJF} zbt|d?#E!Zp)c_cg`G7d7n6oEICADsQMWk*{Le&%XqrIW>U3s}pki9BuiM`>u9oaW^ z6ZL;AlqJ5V%tkGp*TC4OO&@9%-y_&FZ^*f3W{^KI{=EJ*_S?4k&cBPR zKu8|q{DzG+{dW0_>sEm}$Fu@LvzyO#X=b;k6U>s0!VW(Xc$J@%st5uvO2{n!1LfS$z3Iba`V$u4p>AE2}CkM(t|t*eC0ss*zSz zxmIx9bHDNkXMm_)#~;cUndFiYhe68Ghoh)u?Y|bucx^(YnDAPp;*Ljn5_4pV-4J}4 zWIGG#;ppJPSJOXgrVaOAh7a8L?^cYOEBYNqR0psUOVb#C3tf3&k>u%66ZsFz3+fp~ z(d_yCjh1cO65!a6^|_4u+O+os<7$|?^aST> zn7m{yy0v2N${*6IU z)@is(N1K)_Do5nrPiy+j%#F>v_v*&}F|)x#dLDT*_B_axc=g@{^h>;gZUTZPUWGRS z|DcvV634Em_-(=@et7(=*>A8sG(YBep&zzC=T3Dk$Fb-XusmZnG9yj4F=Gy(j<)Mf zXvrmO`czqVs~UZ#*WR!u+c;_hE=ch1tuz7I#eqAc>;JF}(c!)J^5(#9*AlrErAD7; z(CwsgO9lRqv-pWu=w*8zebcAHvRmFeL*js2sohNO&GAaAf?sZ8nqmF8rFAC8G#c03 zg3(#m?Kb$5cH_zIV0e>I`W%IoU&Oy2Ely4A!; zuiSd{UrMkmqDp~tt6tG>rl${AOQDAk*OS+awH95O@cZY63wwq4i)odawWja?b|BO! zKNUQW1_JU&`~OQT!~ZX|GAC=d|NEcCZcR@gj3vVFo=Xc$H#gD#eyDUYuAqcu5|b1O z0kj`Mup~w-L1oEX(psyR4D8LMM#vlM1IsqZwGz55%Umt%SZZ8W=W}9KSH5fS4a?i^ zwzk#`pPv?%+@@M@h2I?clkeRxo&GnUe!VZxnf}7h5CP`<1dx2!DR*Ba96mpW^$~8; z9FYf*$J;djg#R*32t$^AjR-Mr@_|YGXCRAqxB~(ZfqsaDUgc5$6 z5E8Eaff|ZIbWF-@Eca)Pr^twjDD^fY#1S`Ng@rhtK4K3RQueMSq&(wn;c~>%r|)TZ z&C>HVC!`#cV^4u7F6dIZTAuNwFT=M)p09L&IwphVaOo=?vf(`-m#iTD0Y6*M#N*A_YflXE=xZT@?r^-BnfZs-FcGeB;+-n)%-CyY$O)z$ zgU5q2EHlk&j3I>eD`l}i<$&3%Es-DjK`Wc2*=2I0;qZ;whruwh*@tp}zK5;UNd6r* zq~&fs+85QHMBq3nAl(=)LLsmUiQIHeXZU(Qlr9A+f)t$=6or;o7!u5TH=#|kvED~-1vZOG_n zRQa&vT%56Q{>BOCJ2P!wuDPcBeZmTyC;`t@5ZpH z=BGWYJU9)+bW^#|bh6l$hft*E{gFN^Sv(8|sP+d^5O@dJ_G@eD>P&rpeV#wZ9r^0x zGbi6BMfvZyMfn?x8ZE13U$v|8jnUTFZ!e-2Z{kapKB?0g4EL(%ko-m|3UXRXl*RpR zTp1%@)WJo;(i#DnK}0w$%iGLoZf-~W8$;&Fc=nh?!=d~qI3Bu}f=(UP=*2>=Lvvh3 zT`EKAPGhrTAK=mXL!Wh9BhJs$Hoh}wQe1tMY_tk9@NY65_hHzZt8=X}lC_(3_m4}A zHvtCr)=WtYmSIlf2_7Ajy9_$f-@;}R>Jpgt7#V&lg6ytYQK$&jt0Mz`2+2UFzvWRj z%3_{1QD<%Xn8vKZ@$Tc+l_pfg(&CFMP`N%SJ}^}op}OjhVG&g(z>MOk_QmTT-+?{G z)X{?iZfE9>Wpu~UI4xaU+Ed%KEU}7yk)@WLs?CV=s?^g(B`q}^M|z?s_SDMw%`fKd ztVb$~7e2qSU|3l>6J)G_)3J#G!-A%7JMng8Vjq4QI%T3CYTz^E@R@z9_gf#JJy0i!l zb%vw2r<}dvFMWml+B`H$YdT|~-rUhx=jfqOZDH5KnHfPBH>;JQD;+SQ{0WwUZpC9_ z%T#E~>|NjdJi7vvQTAQja??rYZPP+Ds0o0flydcCjwq`QOqtHvPbyI0>Fha7ZS}0V zG&6a`5HFkJmk_C+TH{T=F=x*{E!Oxs$B)grwe2GB?i9~-0q^<}t>78!!J1p%raej> zS`WR|^jjo1+aFguJer823;>XIOnki{)Kgy;TtZw=uy;J%_MT0~`dzui&sm*aWhbvg zJkQSM7|!+LOvWu zLY;{i>_e+#ktt+LBmhQ?p=v|FE{pex@W?5ylgQF3ZRQ^Hx+5eW1Iu_;RS?60Fi(_A^LPma3e>bPh?F6i!f10Z02h2FUuv zscd#dYk-zqTc$gq1f?>h$o}*P!xgD{HOOLF(f5l7uBtgS?1#fxEfoOi{M5X5!Idq* z=52^IB9}vP&bu9~)2e%;Sz+NPGnS=&8_Pw%AQOkaRr{=)G136i=0!g$_OHiP~P5#%gxf}aJs0mKdz9r>^J1vl~@%@^KTMR(|W zJ5t+|LIHnc<)=I+*I44(yX9l!l_=s1?qQBwV)iD3i?yUev>aF?_}~gCEVtb{kiXrR>Cz(L<@d4QyTLHi~F#$RDUpy!Nwo{rFE=&YxvcZ2U+fU!Fvr<9&Xnyb7(Wa*FQ+~xMGfqcDvmB z96RY_9}W_F<(``%Nc+n~)4c9>{and(%&}SHm$p1`qNrj+lZ9^4(3{$r)n`!ngf#sG?V`!Pg$2rQFQbaQH;t-Q`twr z^oHT?0bfh?TuH@#SH9wQsvn6bV$}YXdix1k*k5P?tuO7e4|JNwlmL`c$xwX>550p;4l}4;4?>z1bh}6{|ta&zKWHjpRTD>ND zMrCvjjO5c8-?B~n!_1KEkQn5KFYy3V0aL7)g?LS|H)&U*q_`w&kgO>_$m2^-rYRkm&S^!6x8G{*wLmaYO|@o`sgBK;Nre*ANx4Q z7-;XFjXi)l?M#zUO|Rrfpl)Z4So`8o#W*o{uy;!B^h&{124>@hpLvixJ*J0I&3jts zM9QPN_IDuv_;!gPrgFl`=EcE=aiV@;puUi9gpDA^dfZ9pVy~@*P9it7@TQ5qHA!1Z zRn8zi$Zcs!E>}?JSLelMulnQK%kHvp>mVy<@2n!q?(w*l9qn9&Zbq${Sp2KrCcoOO zejdaf|9KLGR!~BmrBFxVuiApn%eVoO1H=wOIJybl6r6)uDuMS{A|ds)qi7E@Brb3W zwPIRXVX;=A{+_@;YP}a(-V1K9-@aXciGuu7h2uXHzySX>ew9^L`+v|&E{bvrzXXwe zv|*cz!@^)ACV#Bc*DSXKYK0rRH4m7wd z3NkM<)3aOcU3cC`F7ST(TvACEQi%*^2-h(fiU@}bW!zWRcpZGN!xSkw{%xmYj@Z8YwSJAa8^PAh=lyg9*1t=3lqH<1J{p~Ghemm2kJe-ElYMS2f@qmA$% z&xNU4cekuvWV)yfp_*XeNYb<@8d6Pdeb0eVGKjkJcQJ6Dp2pk6om-t3&_Zp&iSY9d z(g{Z$P}WMOoA^^;kUA-sco4-NO^Hrbx`Irjnp}oSW%e`ACzD8WOs;0=ln`~#IhozgiJ;l2`H5sC1r{#VmR$lA29zIF3nXfJQI*_-`>8? ze-77wF3tZ7(G*2PCqr9PXH%ztS({Hz(pFheL>~ED`h`5Ba#QMqgI1mwhPXk$2#y4$ zPqmaVcZVZhHjuJP2>6}uJ&V)d59PCfBan1pr)6y!E>Ds8m&?5Ied0PN@#Ev^i1sIr zjrd&T8nkDeQF`P)|GZKLpM?Y=LC9SgmZcuAS-QEVfu@P3k;kw5B-3=$U{kgzS?sm% z%isY}UOb>8>AI%+QtP#mV+cda&#V%S4H<=WR51yt7F>#Q1IXB8mlr82?6xfJosHGo zveSv0Du6B49Bt|HBF)21?ozytL`-+|cdVzsW#Q(a`5r(CwA1hzv53K_lrKn2@R9rGo4+ST(DjX!u`FQ`f zh?Z=NFW|~S{DxMet}Vk3Hkqz>E)<-);)&N&s=tc(3*)qWrD?s!nI{h$HFPd%CtH!z z-P0}OL+KiHp_tVm*1rIJTQkdbMzdtdRVY?LD^hK>Q*X5!Ybt9{(UaLavo{+RT}}A@ z(-7ulmT`}lA*h~skAy)A+w=juM(M8fx-|%!f^0NQM)KAs!8C$A`~tN^)6CrijDvi$ zU)TRGWMIXaw=!7K7%x*0YUW)P?(ySkrnhM_a9p$fzIPzT@OOfj5F3dgmW%)AHxN7U zXaKYl5c2E{xf*hez@+j6M>vL%goqLm(pN?qLjXm%(xfLzKbkC8V7S>|B2M2xR6tZ*jt7( z1IqIUQ?eHtlr?{UujgPi1uzYol+Jnx1qJ^>9FFPzgO5j;5C!>ume(Y_lUvJ>8LHQ+%)yzC zJ1*YR-3Q(iIM|-DT^T#skyMXcTKJi}QFWZ2;aYw5+vxJNXnUI16uhU`mVleOk50M| zf`Jzt-@aRs5JIMpv^`3A0n=BUff*d%{#%(4eWs6$Jr4L@(^tU24bErZtwe|b(?|Lq zBfOvKE8f5k&S(FvLWm#JN9LXY?B|6zR?bQ4U#70UTN3|ofd*76qV0ITd;6)dA<~e+ z`4NV&ftiLhfhK9gic{aS4Iu|)LvTa1LNwuB;2SZ%sJc&}((~BNcC(1ki{NgRUQ5$u zxEo7r=BM$iH4My_igJk0rlny&1&@~EH3r*$|^?^5WcV0tle#FCIsXndnVK z_v`69G9)cL)kBy)fK9-_8gf-#xEGv?d<09T!b<1%mMKsMKi;Z%O)F0PsKICGBrgr# z=tp6%-fiATs#^C=_N3)!!uaSv-|XmU0At0$dV{cnD&xtR~Uz%!w5)`1`EL&dj7Rq<%vl zbQnhb)=-ry5S$#HL>xBmoXl@tTeB{3WMlC{h%AY-P~$a)Of;#SBzjJeI6BA%LkG@(FD-yd%z?>%Jp$Y!}lj-4d1AA}E5V>YX|DK(hq zn5)Lk@2|ga)YHvr0jSEcnMC--*}%nHYDQk%dtWateqVAT(q`yhmn%vp6ihfwm<2>5 zp_BWIwLAKqwF&S{hwGPLoP&HKK2W4F1BVxNGwS78RL47M>I^oKsCeWFl?(e45}d}m zN}`~vtHhf%G?wJ9$;pFR<|d!-D$NVdl7?VtvIo|7@FwBRWm&kTjAEuq%zH&yd#KOnI28X_PGbidof zEYCp81%$vrPu3-6EVXDFm8MbFBWz$W=|@1!lDqDjD$}7yqR)|uHEL9aMHXq0@S>vZ z5toiACu|fITLe}>*AB|%wb60SMC-xkT3}fKj2|By=g~NRD~E&IwrO#;f-eoMvaWlw z@s)_HUwCHGZNsQVAcjPWm7=GH$rNkAj(Z#oN)(8qCshTDl^pYjR)wSIO;GK=%}oQn z(%W?Q&0@4rMbm%jh5M{BI)1B7Y6~{4{Z&b>7pP6H7r7$UMPMK2PP$EYXVxXQ&)%iB z@7g7|kJzQVFW)7y&kzy_e?yjg%g~j%#|M9t>`u7N=*WTO{f#h*GYCn_8=Ek`4T>A` zb2x`!By5l>$LK+Pb(XbvegP)SBzNJ`F2e_BZ$;(9GeTdX@!IkS&y-cE#+9?>e8fdX zp5#=*I4d(-ai^YdbP{-J-cM<_Bn+&@q-ZwdV-St5`nk`(EBzAE%2g~93V*YA2yo1` zsr+uze%m8RE0@!B!ar6Pam(=_85Qq^R?K6zBAr)G)m)}pt6ratmYUp(97FGkT4_iD z4|Wh-KQPRCHIW-_&=kM^LXSAfA=kz=StohjO^byT4!y@S)+nS)dAo>rma1ltlbNR^ zkaI5&L>$06u(0|5`C+U{PRTVIc${%Pwb<}J_FIvv_~KHwkdpH{#+at+QP$OaLtAT7 z$rC#V2`c0CxfR0Hxo}rhtK8;PkJS=X!Xm$ga4jwGdY~7_h77Sqa*H#4*XE zdqj~v;Qqh?03o}iF4&CDD@uLZn?j+MCBpU>AX4lG4y%BPO+*)3MqI5ZZw+CYoIZhW ztp*68bzdy15(1QHz^hT!p8Y_E)XG1y;HJ;8s^yGtlH8GN)YOmiG&Ey%cDU&53lAM}I>Jd^_OluFgq0@9JDN%i8I z83Chnc|yg?<3`u*=rF^X9~rHF2zuxAsjWxj>25gx76D@3CsAzh;7IncE*Uuo|IYSxpqL6bURJ$(-DMX2s-TO6w5ETaV0|RVK6& z=^TWicWGg7BB1<|JKLCT;mR+*-UwN~2uk_w5xH!?qyYrE`e5}wz|y48uJl;Ul!>@x z@H%%5U4*(S=fPKAh#oHJ8Rn)w#>hg)f{Sr_uHv);U^c%M`H(A>;3bH4WK>lj9yHEw zbF1TKW0VYGY=^+MwEZHf74hMJTSkpMJ2u6NlEMGd$O5v9xs@jt6yog{mEO(6@kQUX zNUfX7Cy2MMNLA}leD@amF)z2upp?oZi@sHBi|P`bC^{Ft74j@i+4Qo{kGFm#Z*emM z#@}pB->tSo%7!WJB z*|HrHN>QB_!&>90!PI(S$a8KDP~P#ExGbv$N@fqnkCmOEJjviI3q*|ARG1eho_pXA zB>qrvtMU9;JJ)m}UIIGrpL>8Rth+a@hf9pubat`HTf`cZrLIrnXlk&@S#~*ppv|*4 z7rKuR?_Xrw8n<9V;cIy#&ATps5e5gA&++h;bNi$+Iia$j%3At0PG)PJr&>O?^*(|JcAqLJpZez`=Anhk47?qUJ8L$E8*S;CYHJJ2Y3O|dPa?jh)XAZtnKUIaB zEjctYc|M@iefCQB%%;~#z2D!5bA@kdfkY4|20qBs!ofuu0rrNZ!Oc^|ujmBidrWNX zW%XkBfUy@cfw&LJd$h3`vaBL;qqs#W@G*9&K$FlxvNduKVWW6fDH~Kum})X!xqu0x zo}DTdPL=H=FWw8j=7x)3aCE&S9~gTNBrhH@LOVTstL%XfM|=xUU?aeW&Zi7VHtjw; z!`BjH`;M+9R0iCa6SX_J8$m$fIp%}%gwE14v(ngTi|#>E=boCb68mo$5hA%;j+bp zGBjqZtFj1!CVxb{nhKFql5<^V%+Q@$?zSCW>Gk6Z= z390O&E^r-MMUf+DX0s7+2sZS@=B~j<1Xl8)n$a@Ds}DvuWQnJu$5%qpuP3&y$0IEl=q|*PWV3b`td=AaR|VR=xN~e_zI27n6Ry6yLt@L8#s*>I9>zd+|JWEp z3lu_9er_Xd<9u`K@oZc%>j_P&{Q-Pv$60jfT@SSz>*ry5i!pV~Rd`}{CbO};h0s~t z<@GMwt{;dq%ho2km1>CSc9Bh~7Fc@tcAKv}5@T?9akTZq!w~T@3G1uVZ z+6nSs08v)Jn;o8fDAiA;KS*J{A;dJyj6^~y@XTe72BdBKbULCU8O$MI@Du!hARfgA z8SirYrs>X$V+?U+n6m^eE)ker#AE7ONC6*$=Dw(Z-9gtMPS$&(7d}Kz&2Ou!%=LZ= z9@ob4K$kl}8vgdDr`#LYCgWwWolkb<7FH-hH2e-Z^W#xdbV|Go9UdUIB@oj=Ay%xa zv{GC~thR_iEv+K9$Ci*6qNc=Eu1=|{n zC{b0KnAgcxn!@lcL75F4$Nx2ARhE1k*cRdPaVis+TLytk{8dVT`^Q9s2f~zs2>$Kc z%9m8tf4^-d|F4O?f1han1AC)56Utjv?Rn%TolJHdOqfWu7$yyLID{&kN-ByhL=jam z!j##A3@kDIJ4^nm*9}#K(G9=`Td}UnRM&0E#mjAFYw5~oMR(%w$F`RWGs_L)%jcW- z>r|K5%zF=Tg6E{?o#Mv3-8>h0Uvj2w!b&ny&aQJVvm~a&Dy;$Q>xFm zH`nmjpS_N2q2J$TWp;$_-l;wr4!z=TM0~%!5g$s#5sLVNzEK~V$K{Ing1kZB%Z%0% zeceNNLpW@WQy|I}_Jw-mJ4A{T5dH*zV>x7u>lOZleB(JJjPn!zgm~jP6o{K4`ujBh zH)6=#oVO&13G^Twbr8Bx1Ti@>7&AIEJTtyBEDi{DU{p|4 zK$3{K$gtqB@UYOZ2!$YG06u&=bUJuCd^%`4EEhO40yBUa%!#T9R2il`Kvl#{*h~m9 za8VF36d!~O)d~I3V$^1oDUK`7n0Q3!SlEi#CGLRufrwI2K4>y@Q3RJL`U?^u7nev3 zM>G|OIZ7S(V^mlY&jiJU$pprPx(F~2q6w*qs0qS_(SX_j+ko2u`R@|G{F0P|NM`|Q zam{gdl1OCVG@&$+V1zx1i6yb;q1L{I3l_v-7ZEm~G{7|AG(b3E9@>m@#Q}*=gr-Av zzO^Gep&S~GlE=vqrwTEI>VUMPI$<1Ijk3jA6R!x>gl>LopSx%;pKWZ`=(=cMyJ#P} zSUY~&Jb&60FEB_Hz=w@bTkl{(4u1+Q+{%jR>o)orzlf#ff_n z9iNt9w@L6YG^xjeF0<}QqJ&zgwerUP+o}LBfK6t~!teXC-Ef*(ljV3j5)E?R`oh*hY&bp0AJT3E&86h3k+n+!2VQXSW-eU6|K2jG_j&K)2`Ip&# ze}wh*Lu*+^u^4smpx*-g8(*#UAmAg=o|S6NdECkcuwydt)z)_6+PTcus!8^?4kKHh zpaRJvI;J$d=un|u5~*q}YMN>Z9)mlqFO9Bezf^dULIX=;Lz#1<1qIhq(k!tS8yUYn z1(7m!7G;n4%Vda5J2v`ATVrDh3q|@!t9-u%%4XQu;|~1!aiF+3YC9YZx)og_Fna-4 z5SVeG_x#(4k8P|&D-*ib-3k5ntn%WjlKuCtg=T@rsZP?;`Vzo@JIX4_v3XBb!nkLf zAJv%IrV5rFe>mi!@Kf-o*VN-v0(Rzigdpn-5uZOyogua|Yp$A9yC*Q{tps+>%!iRS z;i;2lqxcb3g(^8y4#_ee-7+4XG9HaG9+5I0i85SBCN3#XFY)-<(E)e7gWdYdA#9<^ zEFBo_)%yq9XLcD(J>zNshT2L(T1_I=|}D4&>EEI9GQj zK=R@BUS3J~{U)OZ&2L5**LoKpT{M-vGMdoP%noQaPsEaWNEX~Jh_vi$5F{o`1j)t` z7-2+DYE2oneK_wS3*_J81Q!`-&Scpb@5!U#me)<+gf5WlZ7tmsF%;eis2^R#+j)>p zVM)zqvEXb5S9-$QnUJqf@&PDEisr)~e9``4+4z^=Lg{9+HBASnHmY~+oRPSjjFwaQ z7h<@x?5hq@?(O&D!-F{JFD~{oe*&do2w6i5%m%rI)e3P~uL6B1MyEkUt^!5FPG;N3 z$0_97F^=2o2!hF7^U==Rn*haPuH_ilaLDr`3hR%!8dxK>&?R$4e!)=_A*WF7K%Bf2!p--Iw}(p_<-(1U*^ z@0}V4btY1hH%l_Sv>T@yZQ6-0bjDLebj?&^K4rcFBoJB~O_XIA`sWu0+Mk*`k)+4# zVK`Uyh|+(0;&$K}q9p`+szYBwI5Gfx$7JP;43>2T#kwXM6Z+<3vEd0Bl?O*Zj-Bj+ zJ~fCm254_D!|TiVW&!s@ze(`{S_=y0i7h=}5W%JzE4{0(OAFeAG;1ysc&$LE_{NB8 zq!6A3^?E8`1zv+H$Lf*>+f1yex3=;F`+2o6d)gJZ!~HcU{fWolUjB3%{oXa7L}Thx zXC*}1(o!18CJf+n3&NLgi$KGiSrQ1e7XL=7uc{Ph?8%|sy%Q3cw z=g4ABXexD44yR3@3Mp{!Xld)3+ORgHUXNJK+w30`&nr@jWAsij=RsQiT*8PhG1B?? z?MECvR0nSz{1#>-y|fJKgr{l=<9$4V4af8l+M=mfg)eD1lAhH*Gzjog~2wLwK3Xt) zGWWthJO~0Au4r}(crCV+VI0;Rid$4x+eUWdfx$E9Yvvg~NVy`ZxG_jMLkSBS0BAZS zVTp(twlkF*gqk1?v09v!jx&V`CL&Vc;_MzIpuby8LO4cvZH{##&sdQOYA0r>^?(RS z-2A;f5FaTWDiQ5eH1JrZTL@v%VpeL=WOl5nFVD=1=@i|H&4RcYrzs2*uPG=6cTpYy zNndybS)HeXpe0oauZ5ubHGj?OJIvSW{xjWy^pGO3WqvA78-889RoITjf@ce{eIO6uOnLaF zuU+Cr^n&Y5xP|1=mj`u5JURf$7m)9c4t9(E`;n>X!_gD;zDP)6ZXqrk@~Xg`Xa@HY zpAX5SKX1!Bbk;6s`H{qII+7P?@$*^mxu8~0Sid`{XFYHr)$x@X@#WW8DiPzr7++j> z+abZI-nVC==YuA7hjm&`TS7$rp}k7ZO{6~BICYR!s5PWMerP|hXg!Wo1kc35!=`tm zc3@iDomAA-DHA2-b?TV^sR?bHGhp}y_U>VttW|rWz4-NwmJjk?nBMfyQQAZD{7%^} z_cLB>yp*Vf0$JA>10YvQ$}Xv6brkjhQT!~7v3?yX(~FYbpBC(+aQe5@xTZ(o3`rK- z0{_H-IYRx+J&`@9x!egUl3&WNLph~@*mJBPtQ0ce=?qE>PL2bteNy&8YSOlV*T$dW z!R&XbDU4*kLw^P2u|x1(;Y1#GP~SRN8%ewgk%zK6+R5$14P&gyk+fIDH{f5h?RjSQ z_cE3%&bN#-o<4OaIR<%|^x<8)XfYvz(Yj^2_E)xpu*wc>PTU=%4u(z-mqHWWNn%Vk zy!nka0ysq#@eUy8_~YlK)hx680PFbXlf#3SXpn=@v8(NMRul(j>urWc?lg8v+%YWe z;OfUH3RHXUazy>nszZ0@!U1^25eF_2;OaFI2N<#79P6Yxs=w~mr2_B{P!y>5+%YKn zqo2Y`lO4KpfDR+f@F-?Bpl-82u~R8sThykEw&^lCbdpN$F-srZEvX#syUux!#Y(_A zgfK=X)L^cO#PBhDP&fN4IQ4{O9MIGpA(S`C)Hac+?HbM%Z@~iaYCHvHl@Q%ksru#A zzAj|_fCBv6GL3-DlCO(sKxPg8?P%Pt85I;SE=@n60{_+`4O~4R|JMCzAN96^Ygdg1 zikBw2O}+T5B?w%-n&5VvtS$W<#J&ieLxyiRI$;-41<9RRC)%?waSu^_D0#u+ zx>Q9IF85~ka*;HT@b4_Y1}i}>no=Z zym)RUX4jxP-J9!O>I%f^c<$ATgWY;&D69%@_pGSp66s9ZLVD%mrSao&BQ>q;s20&= z*RH4*)ns-BZn<@rk}(+Pg1{;uffYs3^}h3=KaO8jefofyCJoRM63D+akv8F+hOkIw z%&=mZBPz#y3=25^ns5zs`b;4{xS0C0c!}hv%#Z8Z-_#E7)43UT0NT9J8?y8@HS&1K zv@SY)!CJby)!4|Dth&0Awly`=_{fzmI=Z5frju;kljKdR!@P2#Yw`f*FaMiK(e0ei*8U z$PcctA9!8;zK9ANm%ReJXI}pE7o6Owy&k8$$2kgElCBL5s$29uaSRE&49Y{gvZ;~| zSe5$>#S>(0GK>12I@jzJ(A25tQDYd(X*y@e6tyahDujuZWNi~mBZpQn*RW4a?cxEQ z%740Vn}1!oar08Bm-n=M2Gjr#45Mm)9QlZ?Onh{TXS)SX_F7|jypq>X_FgP{aEyI) z>Ls@(+of#&;wYQ$sdkPudEP3E*br|W&(X4<*EF#y+%SPlt>&J*a_*d*$$Uz48~x}K z3vCa)PI_yXi}gsIoY8hkb6enJ7O-D1-lly3b|OCTcj!C4Y}RmZ-4sHRxy=A7+P)S< zO~&h4%e%nGx+<)jMMHiPuY6$Yxpj<$DWlx=k77QG9iASE((c%?R;24CLwt~=s5b=4BYd=X*M@4Fz*ji%7bag(bKaan zEED68GDKkOqdhEvitV%A8KWzq`cOC3pSyXqbI!Hc)Ew0zgxQ=yS2>WcmHclmGf@sr zU5hnr#W03JXUVQ$t2LxWEnX|`W+_`c?HPG_FArOLCD6gm(rM-JbjQ5ueb3bLFMs70 zlG8PC{SQ$t(u}oJ>j`!%R#W@E?`rkfR=hEPSJ_nZ%gs-UmplB=>$&6cKUz@@>0{TnVok?#QdK<+DpB>vO zEzVIrB_l~Ke-OG$ZO+jvcu82U9ow+^ zMc3QUW};qlB>9e>8|>`=wWrieQPpq}jsm}@XR@hvcQak%cyNuhzao4zpEsqh#`p{M zk91jYJDc+67mq_j_kWl!Q!#Wkb+EUz`;RVE$;xsH8((-hv`}pP#9BxTG=7o%@IVt7 z$MP~yA-d~c>Q*L+_8 z98mtWRb{o%$m)krDX`TXfc=puX(T5mbr8i{Rq0-7Br-%H)PDLq$h(@}^Vg;CMViZ8 zqtA@vfbOrw;G=eieANpsA@^$+zQ!#Z4W46yQd?SQ-WM4n?;S+!tk>N(`PcZ{9$tCd z2GJuH;+_*WTjAwTyEWg(ht-DZz&<-vSOrrBtK3f#GW!++*o#ZW*V2MHLx0r?M2Y5? z^y(zqcV4gnb`n>Z^wK)gyX5pYr=xm#i8lI10?3$+^`-cJ9sswQOHteprR6(V55R*4 z(PZ>fap6xA!=v6FiK7tP#&Ex*7(Ck?7~&W2pA8V#&Mx!#^}{b!{;vhbU8^ht(HbV1 z##!o+nxB~mD)A4nBTY=-aF+OuhJO%_vk_5m?jg4k7ypcM1Ute?P%7IdAs}w|+s07L z5bz*?pBx)`l^kPYcMYZfWja-cnD^rb2kMN8i44fAc!z6WB$DtJ;LIUznc?sRO8x=z zj}Ji)kN39a3tb2Jg8ck5Z~C7Bk^drZ`mbR=%^EQ7I%*i7HzobK)e5I4q&9UA&pl;`gUx#)kS6E+S1Zl|4?)vj zr|Id)OWT`I&7Ysv0*|{kA7PmS$Hxk7&nh*4qO1i@)*0KLWe|FeuI7XEfinv_?+7ct z6CJ)I&1iHv3%6bbUNJ78{$4pJ#}BxlqvM~0e2fk=a60cSk-c@Vw2{5_uRM`{b+43> ze)X>$wXaAkMegxKewtl_`=*$+b(~VdKZ6bSjFbj{O%!nlk=NP^V6CI}JdGCXv7 zztx!Sj}V7H*XM~H*=KQD#wZQ4fN_jrPe z5R;-dTMW-n;!GsCHrpBSSe}kvYRYpKgJ_@Qpd&k5kWYZ-3z~2ldg^b@+i2Ua$=000 zBPD1iAKUeEjl(U!{ZX1Q0w8P`iQ#qp7&aSqIRZb}5n6u11rq|L>ZU_x4w&y0)63Zn zpJ`=NqRqnz4Ak|XMZ~S2jK7s%ute7`u@$GvW>b>j5&`&*BzLrLJW7z3@M?k7a*R>( zp+xTI7m^$9h%dxIlJc1qiJ(0(znaBI!x}A|64`3zQQ!^Z`bQA6B;e*YL0q>kyl-u@ zIoVHxQY!PgDi>zpraN9dKR+-pC*qb@5jU3(+6R4@#eqgr*fUijgCN^ww~`-yUxbDb zYtNnUlb)ob9GxyR4Xth-maLIWWXf=okHJCL=hj4isT8c{sO+WwYmsxXKkdMZ?#SIS zka8y5P|O2Un?NTsGcle&$WoaAmtDeWJ@xh9bfwqMVh3ed@5Ew=?G+j>Am9{=Qp$Opw`~bT-L`FYBTS z*)kq)li$teRb(b{GZVh;cYgZEvPKtxh=>d3Z$KnmLtjX$sStE=*gE!~=MXvBFlAok)F{Q0~sxzsx$x;NX}t)VS)Xp8Q8Z|vp1LE(Uf_l6(v^3YIu z$A$T>$=m0S)ZiXAlokWl#Xg#c)QA)7a78riBD=5TU&88V|6{6+1N_`8bc%wtF4~A{6FE%lM3IhS%|@$@Pww5kUQ)73OhsF z@yE2ICUHFW%jRRdj4Q;k0*!etMno}oynZTubTIj!+x;H^NOl&fXLvrTW@H`1K)U&4wmKN(rWjf;6zIdI=`` zYIdX-m`Hh(%NTu!wn+uLDrSyGou4Sv2Yru@QmzDuJrbtfWCq;=LMrW1#SR?aCDFeG zx0Lp+@j{O?1H!57qG^ss?Pt+ zYe+-pL)@1Sr>To1L#g^zlMlh`h#NS6*pT*{kE`^wo?3ly5r!kVtJ~Z%!VC0BV(**; zu2dmkIIq(dmIeH|AcQ6vR6X>N!p)3 zA-wDbpR6Nm82?kj0U8<+(rJRpJ;`k}hk>x&La4H-6kn#E&Mp>es2Er|kAUp`Km{g? zJ~3cPo*k*Fd4b-=z>PWYgRSOsudzWf$4oJ7^j=bI$BKe{W12$;aCvh0VheE`<*BnuhnN1*aLgyUiZSH9lIy7i;kO z`((LXl+eXptz3Ue#*WP#PJM$aB8APYnI1U#5q?i|nnA?m83d^}Z$nH*`BGXc7$*@( zvTm&h#ld-D>VWND*lD7U1HN}uuO7*~O1AVXEkH}8SMpko(!EaNK97V7LZfb?5sy)O zC3E@pvbWHtk_Ga@0UyVDgYcYPWa%JeGU^p<^&RIHPZnyj7^R6gYekgBxKqkQJrx(J znW@>})mzr>y6{vFsW}A)rRlwsrCVbI&%-)@vTP4a?p7`B;&tbJes_;zQ|Ci|cfMki z*S*fZwMC_WRkLs;_+n;%Azxer;?I?6$RtbJr8r%=sFF{I3e@icS8TLmZy_)gTZ zVqOIKyV!#Fw*sIZu3n;p5BQR1dSu{6@Fqf6)Tq7+*HyE+RJ7m^x*XPUVqTn|Hj}&9 zTkOYIA>B$#U_5H#1pb49AySaJ4$q1&vI_tk*I~bIn-gBd$sMq2L zekd0!jGl$gEvPSPvxdt_DEoqyN&j+uurG1w+2yF5%^V<1^4W?7&Pn@jbQNEP`%vj_ zJP)FRI?bV|7N+>f>bEyL8vH)wk(wfTtABy`ZM^JpDJJavpwJ*aLNTV*cWDAZTTRF> zh_Hw%uhL7AqOocy@B8}|`9eYOZP98msiEzE_Pz4`vbAFPGN)o-fcybz=L$*S3aKX!$(}jcHHpe24*4V6g7P0eSePdt zNnfT|>HlVPHR;6|&?CeiE-A7U$o(ghpG%wCxKr@%VNA_gzB#UqKcBw@ZX= z?2Z0+H&koFxvQ=?e$HHXd)??U5W!UMf;M0VUYSCSLc(jfhQ+&!GKUQE+CUg}XzAud zSgLPBrExl5fa51Dx*Wtct;UGpmo7$29S&DzjY1|u*(P#YqH)+RNX)CxyR8?wz(dlq zoaE?kCI5i@P$TrpVF4b0u$Y^%ka*^P8SRYI}pT`%K8}-9HZ9 z{9xno8<^VBTKoXS`VLOTw!eAVefnqm9UkYly_wtj8trj^EcW$czpBF_ymA1x^=JEf zAGZB&-~L(}vVTqt&d7eW2LJ7!c?;9m2;22T_{a@cr~g2$)#MC)fYdt~gD7bm1>OGs z-6~(R4?W=hCvgC#)-5cX@PRmo=qPeX@R9ovI>i%-jbVD7dvGkKieyHe98)rcEX$y? z$|82bGP+Ahnqj`&A|8p6VYS8gLD`b>);hgO<{;yIkx9gZRHGQ`V=WDOIuTZ_RWjU1 zrKgdGTBBnMyMoP0mZ2rX^AiOjEuCVb@BnHo?0sAn9cx3%3l5?hV?()3(f0I_(ve@R zB-`*eh+)AcVGqR_a`mI=ksg*X9P}Y=+sGW)M&-mQFxZ+eIRTjyaA9t6LBF>iue}N7 zxGgI??NS)DEal6+BuXWGh-$WE> zDw|rRR=ll#GUQ?tL1wE|bxXO$H4{7LS9J;`Qvd>(C}0-y$?GhF4VI00*4;~q+3yUf*--If)7{p8t(x}D zoy~1~rZ;_XC`BV;GDSN->uUC;gTs2rkvu11l;xKBg%2hQxQhMFzn?V8&D`8r&OOsh zoib~wI>`lR!W~ML-^+4AvLV%3(=u!2;6byXQDaCE$6w?nVPq&E|{r&QB4K$2>S=vuZ5O}g$`};_m73__y?y9 zy;q0-yt?2)=0?Bl{bBb7Lt0%Ou_o+;vaJ`cBHJC_-Aprl zv>wJ}$AIkEs-pj~XAC+gMc~UNxwcO+XLV5difhSm>J$w)^9lb{Rd9~WBM3WYne)!Y z19-{(o-bZu)HMs!wz*@kUmvzVF!nyNS3gzsT>l;7qP$KGige z1boR0yRM&z;J-HO>&jMFo>n=|v&Foc0 zl%fU;#uW-JJA13yiND#G9`C5-zBi^8WJ$f4gVJjPl1CUI;yb~pf7+$am0+2H6V2in zo8M!5e5NIkEls|MX@R#v=G{1eOy4yymigwMzf^weEfFg675lEKJg4%h!8Mc$|MZNW z__juv^oXmD-QcJAM5xS{jJwE~HzRSYwEtHQw>dF{_*{KBlz4w#3VeSr5!$KHu@HzB z5t;aXe~Qv@7%z+hKQ<>w3|}QDSzm@QVgKv`8K!tWSe&jSTomryeDGk#zi5@tiiTr> zx8>UkY((0fp;5L)X^x`6H${GBt8M89&_%{xUbfPaK-qckbL2BFJ&Ba}x`d4a=PWuwp6sLBEx3DB2~8_0zf%;R%K6C4RryxWE&>e z^^v9RT4|W_It~&pkXASz890Pq_IT*iH7?uxW%A(y=tlgnBW64+gbHGIt z8g8Hf*&YW8BoO7}g)={_|8~IzO6i`V$+-n#kROmhy_}7zpLI ziqtCP;FlELlO)HtSaAo$?{^CLJKTXGR^@!!rM8IWs4_KV*pyS^u8r75ZxyV#iS2C{j4sodkzQ@EZ{+D44h16us`MOBG?30)Kc zqS6-6EV%dXM{qVF*!-3EmDA*H>+a}F;td69IPohy`Ak;DQ!Kbi&W+pebPYi~134tj z5oj|gS^8+#WS8!6R@~R(49(#TZtOYv&VQZ0ubv*4WcMOVINg0mid@F#8cZcm-O{~v z64%y3y8$ngGh+%5{<0cL)a=hqMA{l5#e4Q0hBT1yLUzmM`so=J+nouE`(iq@iq%yaJ=5EDo`#9CDl6iXT3@3_q0CWB} zblxS*S|gKEQqfXEZg_lD(Gn(%e5r&-nuK<&5i4{tMrAit)3F+ijk=@fAhtd3N8<8Z zw6<_=_{No=qFuYBvo`w1ga9TQ61NRqS$8sGe17*BKz4plL(|mLqxD&Opq4jbv zKAMRi!%BHIdExsrGpQ>ko^sk<-TwLi+D}5)W+=U`OfdtP44VRQo=xLxBl&d}=1b-y z=ab9AhUXbGR{a=q$}nc@FX%JElEeV3*K|-LLl(p*#8c4-@Z4;PmqxUB^ZJ6Dvul@2{7uWWV<`$|Xjz zPfG7k`2D@#|AiT#uK!g*p?v$sN%o&=YU=-7Q~&RP!ADtI9zzlH!`5u|Br2$*QYjC+ ze@F(bqC-U?h@G+chB+V()zDd!s!@SQmKU|%No03aqE~Hq5{X{M9aq-=s5i$LQqBhyY4FaJRbWO1Id&4K9|U zOezq}Wu{2+@v>8}K^nHmMxj{=&fs}(Qr0MUf3%R-6WIl3M`cC{K9D7&hJH>7l{zL# zTXPtD8249VdBsCr*2J|8wBHOZclN)m#hGwdqI>gc#jrW}>a&&rT_T@jGxO|{2KUKH zv)x7|RlCJ#Ee!U*F<^*}H5u@>CoR#Wp)nZ7a-M}Y*UV~NHT$ZaT`Q0xXK*L;lbMNA z?o%P~vpC~iy7}ka^WpyS4Km2N@pj|1$>)d>KaJ7~U@S`&ICAoC;qX4ap5fRCZ&IYQ z>xZ?}=~oXLv}joSkxOI?53?FLt%>&P#w{A=R8H6|f3}qkG$eR*k3b(=h+>o?HCTp- zq6zv~!_XJo^x&MW2HwHFk%7U^aG+!gDL^6*a?qN7HSFy#u+wzKn(yS);@t?$SPREB z@1(vgN^}eVIaw9AhdJf!1xHL%$=;!_Qk9%gwifN-Zh&=VlgZa_Q3Bz-1)jlhP)KZI z?DG62)Tl)PQqxIy?U+AQ2>A_nhf)cJX_E?|;U)ClxM{0O)OrR(YJ=k#B z@?UU4&^K_8@IA}XDSB1xb7-Jvn9je62XB-R24kN4IwviKtU9k#lH|k;$767t!aiZD z8I1h=36Ed2vXL`El|R4=Zpip3f$sO;_t^Y{LG$2Wci19O|7lt={@uMXk-SwFk_D()M>1rHMX__E6-5F~}v5BFdN= zng$kI)-E(HE?Qb?MK-EcC2Mx6nkrNpRu~GnHd}SOt=XJ4EpDh?4B5J=vhg2nydK_m zQB2*zKsjD{9eqr-9%Xu6aUXSovfOgK@xM*>;%wOSdv4f6cp{uw&~h%U&$rZKpFN#8 z+n(aNg@&40x~C8TLDo2odmn_hlP)_R>r8Gz1XE^D@Q1e3_9h>biq}I(2kv0XO!FWg z+tPok_#AC{=u?X|BS^O(aHQYuJ$*j)1lac7gGiAzAsLZu9WDAt1jVJ4%lUazNbKXC zi%2f+5usI+S-c)K#7h>-hg5s3?Al*BW%l%a(kp?;hZ@xeB?Mo#yS9vbrVyN|PEJsq z8;BdFJ5-BS+?>DbOvhSVrTQM*^Po8EW4@l#XMAxU%$F++au6V7mUjnz*GFaJ^qL*& zH$q5pkXx9~d&3c6bli~=!&)L7G4@Q;GKki-$0l6xW9&b{IG?UPecO6MINLx$jO!zI zoGkAmZ+8YrcCLM{&^9zHUnXw(~yXH+00rb&iTrh|>N6z7AB@17-Oh;HXZ7u*$+T{_SDsJ()NX1_=J7Xr8-d`uJV8HZ zd<4XJo3oXuZ~Wx@UQl{q_k%$xccFdlNpFh!Z3Q&~s2IwmNnSqEPVBkSQWy#B!PY=g zVKBcmdI}nw8o7k={djf3>Ga`SdIu|G8Y&t{+V4On`YoTpBKBU^9|l$W7I0#3=(A+= zmNAHr!G-IlH(>IZ=XS_<&@gYtl2B_j^F*Mbrp1y$$pdy_8aizD^;&1;#I%-`skRg< z*=Sviax={!+)H@meMHviP#12(=w}#cG}A-ihQ* zc{}RND)JSZxtKk+7qHesG$Yf&lCvqr3Wd~b*u^6|3&5QP!!(~IF1CFVp|orkTU59j zE|Gx+XUATjkGxRp93}Hi*hPEh5c%MAID?P^+DXeNZX;6fQzx#z3N8gcW@UE$D0fwI z%ailZF&@picM|0O(}?~^jN~8$EO6GI!DosVuAEErRTgEunwkDc<&r=)mVPYRY!R&D zIc8FTJk=P6gi?r()o5avN{EGli~*aAwQ8;@d72n2ieq$9SY2!=cL-ihin^oe-(5)Z-r z@QMve_@#}Nh*|d5QF~E4esL9{%(y%HIB3Cmj$18bvfazjW1pjl5$Rb>?pXDgsXdz| zeD8HM*a1J@QI6pD4gvb-LFUxjcrbgG-llS1K{MQULAdZ-n%h_A zb=IKh9f--{sxxg|J-b}9Z&<#YMvo4C{OMJBmLg2aV z^>Thf^;QqdXl*6B6a=ZS>nA>Hmsi&vS>q#zngh~dx+S4XnAUMxCJXjDpD1lF3(|)% zqC9)!(~icIcanL0@vh9WvX`#GI<$shb`;Bfl!RL)O*Hgou1Vhj3!7!68tk{neXs*7 zK!u$@X#Zxn4yu?qm#3?hi@>stnq%~WhJH}}kltcT&@f=AvnRrNABp6R^a-|X#B5iz zXMH}yGcKq$yU9jGQJ^I`#xeX72%tQgmCkbTO^XD%`>SE2?2;1wmwv#T5akSaC^$v} z1V=<{nsLLye)2@oF);x*_bF~}I(1SL>yaJo=FHW9raW6)JfPlt4BGx~fqg9PRt?Le z{G*9At8p+UX7Eymk?7%{E>i3%=*Q22dha0o<-dJkT#{o>8cx62ywW{v_S=3=<(~8s z{>wZZtR7U;TcafY*iYp5oNN=cwkn*e@0UT{ETk|hVbn3SkAgJJ-u|ag!;A_`;5}CP ztWHYTbSu+TnozZ9#F7^i0{Trx>d?nj;WbHLj z8D;k5yLDyN1*OydE6?K@jE2KkFwl~+R_Z7(Kw+T_kLDt6;`_p0mW6heR8Vfr$wh-3 z1g4Ef@(_O)%+&m7`t{^_jWBz0t&wyDFmq`kd@QDcDo>-y%Iue^I&Ex4zbP!>=Ca^* zoP#VU)<+1!d3y)M{s83~HU9cdZxKXA<8Hb5h>zvCyahp0>&?p^18J4nWR=Taz%%h( z2gpnr8Eyf8%R}O`Z9;{NWef!Ar3$V!+^U}6jbwr84hAxx_S<*1m^w~3(kV|oIal{1 z@z^siz{za@0SKj<(nAOHxScF(DYz{v_Dy$z{`7AhBT%2<$v*CZpS;%Jo9Zuz1Lc$k zr&vCLi$VBkJZ8w{_$5PTtujR$BhEdZi4aiyx5)%o;Dy$BKKb5iUx>Mt=_nS-FPWT@ z;d7D5sl4~mydvO?!73opF?8`0cZXrB6Og+L7@_G?U z>+|vOjkvvW^>j==;$5{H8QLi5KD0plDR)6XOc27FD;TuK_7n`ABP#0OJUp4CBnkCY zQmAAiYDA~K-~=FYpc&`zuXTg1EXYK(Pw?{9xS&Wr;v(@cb1E!H5qej&cOwbOzl1z4 zQr>0546`U2xcg3ehaZ-(ivdUD6MB)hcV59Zo*UMBk?a)}acf&pZ0PKKC(9B3(j1Om z_+gX(8Tf)RfBTnzEB?K`j)c-13l{G=l(XN9`2JD(Dvtk*q%fP=14mIFA#h6Z@64;= zLy-3pOe&OSpa;AfM z=Un6asRas~I?$}>%wylDekOs@;=}=MCBP3$znOq5{F=I~?lXiEPj3w#zoW|442Tn-k3(w&?%)}=RJSL@jGip|zg*6; zqT3fY!kf9Io)gOcTUjJaaY@Zi^mme#r$(7010^kWApM1?+UN6cod<0}-TlNloYO;j zHzrKs-I=@5Po5^Y5ig)6^m3A0FoO-}7A*Nj_Ip`r^5<&4w_rgcj~#8n!3?iXcE{YF zb8KlfKXSSgCl?U`?e~j7Z$5Q`umhOH7?7~9!vqaI7|a0H{I-+e#F50a_Mc!rvRt~p z!S)@5+3=$gSRN1i+g~h!L8p76L@}L>L)&jnZCsVhlrWD}(L4|haCoZD;Kdd-R#>LE zZYbW0_>XPcc@oq{>m%AaJIP#Zh2Dx2U1_F%5mzBhznBP68k!5CM!VH=l z3Q|0g4~iBFkIS3daB^#^6Qul`+Em)?!Lt1gk-Aby_t2hR%I=^J8jPkTKdCYnzgB09 zA*0!t_(a>G4lXvLfQ3YM6O!}P;x{4FV+iV%B(t7+gyICTY%VsE0CpLR6(}t2Ec8Z7 zWE{olQM`4+s&yzaHl>ljX^w(OEmVj839ZVk-uC`Ydu6(lP!26$`9W0enPJHCxky3WEUSv3Ke9Dj0jzb_f&GjFRzqtX5}i@B_aF}Byf(n&C%Yv3q^{J+E!;VBo_ zdp>x1+V?HfolkxcQiPru8}eABhsoO7X^e>PMvo>i^z7MFK5SQsTySzq4n`b$k=>n# zZe5@tVJ)6^DKSBdvd=bV-AIGCS|fZifqb-{ z{6bQ#cl`8~KS_FHt)D-KKp0v#e((bIl%HGMTQ(z~+;6?u9|GH{O`z^Ty|vzM#7_%^ zPlBf^hBrD8uhxh60@X+NcK00U8ROsQX7QWAa@`}l`$o!}UJpSNh^ddnX2%c0uP)>> zd*aCz=S>4|s}khar)Rx$74TUb(v9=6g#GdJse<9{9pu*pLh1cn>lJ{sTkRD9w_EAG z3TU?3dF+AHdV&DOFuakve|>C#+el5)v-r#(WiIUtervsxBN)c;rs%w?r8nMea`ltG zCPYB+HyZB~P8o8x`+MThC(}qw=kXvJ<%gqmM|HoRK|oHRa`J<#)^-Wy?W>G1YgcJo z8xM20?l-Cka=VqyqXz4Q!9uL3>_fE2MYLrRB7AY2!Qzr=RR@b4DDQ6_ov0Z= z7m$y*YW_DR{{bKS_b7_9`iQ?ZeM-J~hLE@UFrQzYawb_R)^ILbYb4qMw%i?CeWHc| zr&EEw&($eU*a27JT743AQY>|kY%GgV@nV0DekX|A-kq{F-fS$Idtg1Sd2lCPJM{OE zG47~|J45TeDxzYtRAh1ntEnoS)^=DGKwdk)|Egv=a{&9viUDMT{d7hTI>3I3Ro|9o z*!L5R2!93*y8^moYX*jY>rzz56&d2v1{MCP4JFlp3Q|C`}m zW&Rh#dwY9#ArTZHgFl_2EI>|uuF~qk(mrUm($)TrDk>Ssm?sf{!-+Y3tZI*80M|@$ z#}a<+>>4kWp&@;6v0zO~pesc`2-8>FHw0@F%M9CU9S|VP>MpMQCy9S@8jlYH1E_dY zX5CAc*gOt-02_)J+E!{am})k$j^V^&gT@Jc&@xDXeJfYt|#hyD^l9)K`b zM)+sjIlO%AF#V5|Qz1MFv`VH#A`qHQ3RlH}Km>5P%^2kMgU3W6#tRTC^yVWCiC8ir z^TS)Ea#z-*Z*V>S_W;eH`;7zKqpFO4Lf)BxaEYY(Je3O_wUdcsh3mkXW;j=G8J>-q zbL47z(~n=TAs8||3xy^UzddeLs7CBbxom<>W7w143oEW0Vtb^ghudthxX$%t!daDQ zOcw!|;}k^lPBo^dDVp2rE+hAWHdP?yk)w%wcaG-C+??PE21X4Bul~}VAHpoov;P+7 zFx!vi%_QmKNoX`Ub$+r1nNOD^fs1`ZdLd4$KJP7hJQsdK{2>2hUSvc36cw5Y6LZXq zSr3s1>EMKra7NDdQ970QS!SpNT?^@!SOWPAmuAvCh;K_durADLi%NDQwIbNyLsp!oW&Sz-U65$QIqXMHEZP96B{IlQsEDO}MP zq0Mj!pJ6b=^dT6ghv~VhwXTXS-n;%uv|KMutR2 zIl#i&J1_;mp>mPfJY0vMPA|x^mMbJnD|NHsl>*lm*MCL(J*|cIT|wMaBqBGpD{viI zf4$bER~J_IeaAvAOQPV1_|Kn!)w0Ag7DR70ItzaN*owqmrvD=5mo1h+yf3sD`5)2V zm%-RK*Z)_E$7E@2XvD_!zf@=GImj>QGl19WCe&p4IY?xSQ6qW((fSV#akm>64OChy~==hB~V&nt~nd)Zf+PI^b{8zg$KA1Gkw{cefNA=*SQ z%tL8C%X~%%Q4Bv!f4Bl`=b|)z(f639_o;WqgqkJL{7c?psT`&^!{SR9g+IciXMM)K zbuWo>qpXFBt^Y@j>y=RJ#(K{GW3yu0=NEprUJnc=U(vP&6p0Fm6pBO*ga$>T3SxmG z`3-`D%25H)9==+nys<|4s0|*ay>&z}NlJQ-dF*YU(~=+kiW{WpxAqx{%Z<*NojUDI zv1PiG^Msny#f|&UdNdL?NJ&B8rwhWS?BB?=jrY^((%=7D{jK3-i+NScW3yhm8?VPqq>!#vU_M`WWKN^eO!+xhS62Mh;}NoMXu_48Gsho-`eg~GGM=4Yr_Mk z`Tj4)f+xtpEGFUd1mEo@)aK8_$!5NpX6M}g9wzk16g^U6b~f*OZnnU9ifjqvUPlyG zn*h%yR3CwBkU1F>Ld;HV zK_=~KO1putt|P=ar%(^MZZ;!piwIW1Qv#5Gxx$ddC@AV;h#wG|mSSR^Rtpi;31wF# zqIzvYsLImYacO!^H}0)F@cWt_t}Oah%>itx^oi$T_U`@t@jUxP`5MVP@qyFDy&;ET zM+0lCcOZQ^Vt2MuQQ_K#W1-VJWg`lS`GJTqxyE9n+0o3oOU@wgXhx?so7=3+tbYVc zL%x(N{1;p_eSVnOoeb|`W?BrvlM-cv4Vy{i?X7qKPdU80GyJ^S#90c<8Y?!3d$eZE z<-$12E@n{5YJ)Al?mU9$q*2~_e6lYJ(|h{zO~njq+B&P6{Gy|&MfVw_hLb@s(D+xg zWfPBZRpl;jOocmgm`X<$k?s*vJ5V(Th}ThY$T2$C9DH9Iy!K(1D7EYgkyAca;8=_u zuYm)J5-nq=6o4P8slQ3zvI!>5=g>GoH=5z9(;z15y24tD&=lrkV7`Xa`TT*mml^Nm z5%gvDY5*r^Olf_|6OVKS;tBfeINW}DUrMjSVq>S-46Gd5*aj*e1$2O?K8TMt_WZ3T%Muz=WML6suj11qZw=H6riRGw1j21uwJ7^Z&O(*)$2LysDXqK#T8Vy%!YzS0(X2h86ss-kNs=E;_rJBFU!4Yl^T=IHUPMn$xwgze5y$U9zt=gko3SLp4A# zMq3z^#3w~m8Qj(<(I_w)jp5tosp=N0avDW9$Yh@XuHnu?X1jFo#=59D9;N`7k%p1t zcDE8gBn{YKT!zx*T$2_@OLHWmGE?H)!mggrk8tJ`5YzNFlk$OHV=a3DE_KO0M_^s5 zFX1sBn9YUdkWrVytTgP>iCQ!#wVN@T5916J=7J`5WQeYVbyoFM#?UaXcmJw;||v zq%!i%Ym1U~l^$NkGel5*u>k0NLGE9*waj6%XijcelU^l|Ud@nN%?SFupuC7lSX7;L zO=@udHI~$Hnczx2M~77pC;L}QAa>rn96%G=r{e$iZh;Mj`;~*6639srN-Kk)ULYJ9 zCj%)zNf|)WGZP0w*84XEdw8%xrXPaig7R2eZSr!1*~mv@*(x^gsI1B`rz3vaDr>kW z0RP@B+O0RF8!LJRURa^pZ~5AYw1*=m`zbsx?hG*!ILfVu=^Ec{+Lg*p^)7b&X=Bq} zKKnUHJFU0lto+(h{#2Kv^wyG-@E)Gic3SeWQzG|NmgswmCU9>ja1SK8R|XicbZdM> zY!UJb-;@MYCOt5i7tN*=!oKd2%odunX)1413)4AUwF;BKg{+N%h%*rb$W7e!Xb2hl zg7WMu5wB3Pcy&X=gbOfC+_^B-M(sH;Q@H7CNlL+q^Q(>QL+{_Q8sZi9aE`SyL#>W= z`gDFuoVFe?3bgscv52k`{3^+*Bis0OEw`T98W=wwJKY@E$>*Cf+(GGt=fme=5|d?! zEUQnr+-gw1skZBRT*jXC$WPFA#e=-}-+>xsEGo4!FyFp?d>x1X?-Fs^|Fk*V+L{8*!9jz?;mCk_4A6qD^6^IERsEJi5wW`^ds)xDk+@@drq*}##KD#eVAd{Hh z@#9#);i4Cbzzk9xC&tPz0pY%DSQrn_oz;W;@u2H=lK=7Gb&5$3jNX7e+F;x?cP~`b z2^}jmzE2jZc~;W!r${1cNq%TTXk940h?4V0Y0W?8rDYcp7TElM>kg|Az!e^3tAHyf zt(E}2qC55_w*lzB4u_bx3ByRCDkx+#Tm%oM|>WVjRN!82X5oVusYq!{8cH`q*q#`ZpV^6Uh6muNIwi3F4uHXX9gJ<+X4y< zgoemcoTIh_V-zD&YV(Zj5EE;cj~mT6ayU-CIIg6v z%Jj@u_0)~O_07|An5&x&zYm#&uCTV28MqGra*`24QjTs}(VSYfYO@>hZ5oL?wV$c$ z01Lqozh+t^X?6<_tCVR~9N(UXKDFW5%@*AOZ#Q-GCT z{g!(Le^c9A(Sj}ABKJZK7d@wm?8Y3Q+45@GgMk%^rB!3smQ5A>p@7-tM!Q=*LAdXh zT|MjLWab}kr^!FJ>C!pxH#5}V^wSyib{ggMJ0{`eZ#_ep90H?t(0}*~9%USh_7WFE&KN@&zm^%?OLpVSxcw zOVuR?JOP0!neqcrD#4}8f?{bvSgZ>bZAmeeZ`#m+*fPG$eIoAy3<6HYDN_JXSxY!D zQq`3K%v$k@^6o=6Sx<_$UB(1w?)BiVPW9k-sWn2UURm83+y{VcqFIFsMyKk=O2xNo zv|8cW1-^R|&g@w0y=k;tgl;SM=1R$j9BWJYS$5u|e$-C!`LXOoE&0>`bj|UZqbm!z zhUFX9dsR5tUb-wqvGFH}qB8^Nh3WejBmLP2e(L~Ipj&T8N6vi51@K9_fTB^~^ zLozpJn=Eh~T-BdaXpC!27EU5`iUI#Nf_mn>^6%&Y?Zw|HjH%6Kf+jkHOmPoT~p^@N8a6;g?tXcx!rUF z-t6R-d-U?NQ&m5JMEicbvdN!12cHVh6@br@Q9b47v*5EI$)D0YcBOB!)O^ERN>6J5 zzacoUC#^5z6gSlm;=GrxQ33lKlxGQwF0Oqe&*xyE9|rA*$Ut}2Tlbr?=S$A0fb#QE z@Es1kfUq-nIf&_(nl44dOX-1+H@d$HmJHT99OunZsU5-toKT1?nyV_8y;vSs2*6Qg z$GP{G>^E9EAatADZw$^4(?gPi1(Uj@q~w_dRWJT85ImhH2OeivR32wWx!s<$RWwf- zanGmRp3blZV-uBJg(U&n6O&~W?h5p(swjFjpc17vfU6oM#*MBk7Uk4SZP)>z+QtOO zWSN1>0b-PL#RIRo)iXu=w1G5=0~FMR2X60$`=8mAwOqh)E8K-yrhYyhA%yFA=t z{wKdgCcT`ZSP?)@wI7jsY>x?GSe$qe2>_TH1k9Uy7&ZY8b5$Z+%elV1C3VnlF>yFR~s;?ELIO#M6G`-SC3>L z1)AqQs)<2np0mw}Q)vG8d=jm^{mOl+*acS&Hs>TzK~od!r(GQgk$a$ZXw?vf+e%A} zMRibhMs4LNH%tU@ROBmT;gszfs#^Eh&O_~@i+Lvov^n}vVC!L<8{{qo_XU`{43k7c z86pzaN{&GVa0Laf-o6vOEB6LGB|)#SMS`J(;>lEQ;6@GdlGP3;-D)j0W%8L6U29_4 zUWIe^7l3_22V=z}XC4Fx_@_GeS4~T4Npz4)!M5DH@b30ZC$YZQ-aCA*Dtse##1A~{ z^#wOnNJKJi+QhvHTaqn<8-h3kpV5G*>XNMHuwtA%3x{U3MwY;>!S}X^2tF8#bIBXl z^eg3l&UP{g6Tq}afX+wMP6@Gx=mGJp{u>lz!;bpyb3VcFflJ2SK#7SMyf;x5z~LuB z6Qf0-OJIQ#EYbsl;yI;*V7QjVggL^?WjK4E!A0w4?#%Pxw@v6d-?M4Q?|El%SamOV z@HNxkDythIK_YLWiZ;RtEoRHqSu5qlh+cyTFn3z+2Kx$abn7Q?`9vZJ3`f-pdF3!i zkA3N5(H6f{a~2grv?gN7k6MjUYM@28DH@WkV#xC+(Q0&ec4Eecd%i~l)OEQ0;+l`J z>JK6Sr=b=l@1Jrnc$nBRy_IdK65HkG-L+v&hsc0ncv6}sjtB;?>d&_S_s@7%a9kH) zP$8?ZejGRP(NGHkJmJ2b9i*iSYoM@#WyoY+U0o!+vPMBnQ7sNO9Y(K}l9PxYbWZ2? zVXJXKttU`6(TFu&8eciE7Fi?M{czWZfY)y9HsQb7oXa6>98()+BwXiG(EBoH-IZjU zzKn&|oN%Gk>{ATimzlS5C2dw!Qfur{U+42W89KU)8eD;>%G^EdFN9CBLScs^1U_j& zREbAYDAk$3?l#lUqS@+TYe)m_C3!Dr`V)m5PE|~7QA66YAd5Z78OHQYM_5)&8s=q2 zoAk6?3b9(*AkFMrb0@dDGMDAcv-b2Dc=p^iv2AVP8s>h+`<``OYU=&@il>I!y$_hU z#{4tcznN}trO%qZm+-65&-0%AQ7yh{y4Fx3-Q+L3 zM!Kb?z0sTQo5;A90v$)e^b_ZBa{X$|I5)Pu=D5Cb)BW8DiE_Wmv3ov2b@UIYci< zYuZKoQWS#y34b~9HbBip!_a?0YIJ^!1_sNJl+3W=wpCmy*d?gl52%lpoF4NtW=qY; zWs3Ibi=wYssHX4*R@{JMTaVGprNZ&ns>0A?Uc(K+Z-8vMRb9F=K^-QwSCL~j72|mH zu@^{D;6&Ssw-GpkK@6)jhis)ddET_xwNGvbnatArNkMRJBgbD zRXQ$T{DH_>wUt*R1Fm>aJ1o}w0gYVGa$OQZNQPwRL2fGHIN(D~diO>RTX5LC*Y(a(Pu@~iB(8kIFA|Jq zzLk%w|EtR_DKz~j!sGMp)y=xo{!MXZ@?qY(Af{f4!>8uOJ*Yg^NEN2!Ewjx+D7j067_zNFx{YgvYNjHSzg&dpgk}eQwGY2PO+fzl*2f= zI;z5CTMNUsFZZ=jhzJE8W$IfD9yi05QvX8RpN2{PAF{j}q0_XQkAh zi^3`M38L6{$s{Ah;%PiY|43I!5zRUeNbwK4njnU?(Qx9M=M9BEL9cs1`|D~JC!tG+ zk@ii-!G#?xdiT|+FPi?qjUKrh98O@fkoIJmMM9L=?P;1k6l9aql8Nk1`5PICdN{@m167zPW&^G zjZHu)Rke}8eECnrBV+cJSwD%wH=$@30auPKAorc37M zJf5A|jh5%UD(iv+(JJf0M9qq|(ZDslP_r0gK1AFp3&V`%>RR3v9egbbR=s{O_SQ4j;j4&?YQeq896>!>H;7S;%jwnlp9 zhSXp>!hM9bf-T86(#T1R(Rcp<3I--4f6XgH@~UTf3qGTWK{B2a7dX_SNa8E}{L_gQwMTuDN=M=lXpNQ>iYg0nWAeh#fv0V(@Y~~nFmapoQYF1)8K&szuy2?=F(+l_mi&bgIT0l@ z?YTNRorXJg#fJy%E(ocW>M=A*Yd21($_!8=De0kLSg7PBs@?cFYl_E`Yk%j( zjHL8;DwqZe&fNu~=d>jfpjby$4{ij5ZMsMN=d+WUa~r311g3qw}|2-tYgB0-2+6Xg_-QvygzKaaoo&zQJj&_6Fb=N zTVipR=hC0ZU*m)v1j6!HNg}m|;{-;|`aU~mVwiQ{W%_FU(3t?cQ|V6#XiQrKh+b9C zM6z$HZw#`lNH6sO^wk22BPNS;hS~DHl)otI59dhe85VVNLEjVEAJAv6yw0h_I-)q5 zS4pU#Ph0V?itmSUzW#>jTGLj7sszr@CfIrbVi$`qdMq_dxvKW}vc&N|vf#qU2>v>9 zMEW=kv;vJ$_|n?B(GScVW*XKwDN~M^pv5w1E>BtAwj-8@I?`Euu0zS*&nw(nq$yi{+j@_5e83R3bxa!y~Rd?@jSS#dcZj-q& zKVNw7x#L^bkq{Ip`0h;Q4M8=pzJt%@nyrKt)rss?^4feCDc#ZVX1f}8h-Y<8u>@KZ z2cKuqP+|+yj&|2ZwnM~>lZgRIp;yp-40T~-@}sXSi)vMh!>N+Xty2h&Kpah$zf0H6L+{lxn0+h#x6#$yo!1UKd~GcHIy zM3Svc-id|x=UD7IU5AjxnD3T8p$8et-qq$o=DnU=*ZY98x2j+Ht~i+E76 zvbVz9iQS_WR>mL3Em*Cq92^f|cEc!_NtI17(kH|T>I;Sp zofPuoB30wz1h}=LPQ<7Z9I}Fr921)1O=gRKq_G{(9B1QU&@>TF9PUT5X;sV4xg+US zu7t+*>|(L9X=U5cNLday21_0^g1qH;-t zlTBo?78ph*)?qFbmZfkN;XI#O-UZc*cjFQlnOG{86>nN8NI&lxr!Tlu{GoD5oi~*c%WCf2WFskzrA1yoSk8LjPD?1hegBPM;FG*U9J)RiZLb zqNZH<<9-I8Xlp~ukwhEzH>j|~xYixR#kZ9WUf0Svr~_9kck2*${9-)Y7JuKxUtMC0 zD>KdJcBNkoZWf8@V6;w`Xu8VI|7UK*h`i|Z-GTzR+x$NdDQ8zh=Q-?f*Ys3V_&@q8 zbV;R4$+I2qp_OSgD|Zcn(QGK887(9y;HPf1)X1SQqM#e0jT~G9Mw4koLdwG-Ssx~Z zuNZ-A=w}O62aZ4TvY8mdR}MwC8*xjK^=2qI3Xadh5UWe{deg`0 zB}sIew=rKJ&6TZgp+DR7rR(vKcsU!gXDcQ8l?c2$$CA$$Ya{C52P8OPDHb@lOXS7 zwVGjGC(dJY!%L+|DHK zDhi)VfH~X!jBIzf#Wybjva~+_9^jq$b2j`Ux7cJcPU_aNoA_ap=^9 zY#w{D0$aes+l*NaBWB>;fG3t3>GW7q3o9xfecng=rFW=d><%vQ!yp%m#o^Vd#nHBqMlu<}pUpdVL|RNaL3OUP6Nrl( zQY2#!Na92stK^kBi#Yf$^FQzvA4x!Zs4vGHXu15cucNjCW?k`qE5re{qgnIn|T>b$Ft_mzw*|4+#Cw%;OUu4S;CS?-Cdo*;j)q)Dc^)U+i9sC6@ zv(6OJ{q?z3`pAp z(H{xgl0*d%hHO;Tc!6SR&voB_89cK1lPgTd{ImBax#j+nt-~BR)es<&FEf(y&(^Q# z4}W#}+K$>gQgC7#k;Kz&HKV|zrmn>LR~(-r*e+LnMv^{!dqs;8lKem~eG=F{dhyJi z9%?g4n_5J&%{dO;`B_9DK0PO?_i=6un%<)U0KK29HWXxH3oOQQ0fVy@so8^yEZIOf z6`8^q3~%V8_B{Vh`NCa_Q$`2b@`k;som&rU#vBC7+)8U_@KL1Uk*-4QM}y&iu}t^b|D|WbeqC8Q9K0p!&yO`575k*eORi;~ITBieg#@GTj3=R7uQA z)h38A#|qo!`|>%(GU0j7EuzcLsZ)(vwRX+F5`pXo*i5}_}wjun(rEo&u5yB0j49biG&pw0S=edYkukEL=LE8^f)~^PX zFrKR@(TMm1mzry~gy7quJEeop{Y3xN0M;mg#?Et6qx5DVADqg6gs2?Im}UOfYpHTxGInx>bpSiQL^xg6g* zmiGwa_U}Xy=t)}*5b!mp>tJ$~#g~v!zZ)Yq3fwZ1reM}m?du97xw3p1lf?t?k1hR^ z{fSs0oYs2-EAUrZmaB|cUzBP|MQ(63cfzQ-<#`*_6C@vSA_vw3 zhK@#7!d~zqZ)M_G%N_YjHJ0{CHo%bOCj;oPil=m}Wlq#w10j~&=xkl6%NH^s7LmO# zPTR}hn4_+s{4nzCn{YH0^0jmVARChRn841^Yr1AGT8OCHiDJC+3I&W&^VUlnr`&Yn z0=FV%@WQ-x8A6Op*qB=-W`^|phRBqOxxqc)*93kXISudam8eqy=O&tZDx8EQb+gnw zaWhL*g+)K4+P`16Ts#W?(x7GN0F#ea;b!!1tcpk4ffOa~nC)qQ`Cz*gO4Pw$c9J)f zQ2f3O=Q>h8Z~JadCRIklvv01QJUWn2C_eCZ{2a3UqWhY z7R4EK(1WFt1Xrn+PZg}*P5csb4}p<29rh)mzb|!N=~4v-pN$&WtDLAr!(mu7jFZQHhO?6Pg!wr$(CZQHhO?y9M;|L%y1iReFiCgv=U z@*v}WGT*h{bzkde1j*sSb3uE*Fp3Al=#;O1hM-(hz8uTufkYyZj_r_;?X=KsOYj58 zTruxu8(7FQzkU4q-xr+6-U=}Ijkx3_T*p4Eg#M_vSs_nFK_dE3hdvf17NggunsQB$ z{0&hpXfCUs&`n~UGnUrr#a51HfMi>wnkDVvm76D~wTPQNXfqjf;m{_8Y zI>f;4Jd`V|JM$~N5)Y4^D&3Wt16+OeyAIrybl-M#2kCETl$RoE993wZp>wZ4Sw8*6 z-zOaLhnDu6{so~1DFa66n{7LpRwEmid0I)BEs@%PV5s_=VO;Zp^8z=esuVukCYq|S zJ*Qg@({rguGgpE0oBKfBpP}P7%L!<3#O?wP;xr*T4DS(=!_P$2(mNL#q(6mE`a@}W zr@rFR+GiH&*EQSkx<&XrFG6QAD#!ZQ<3fEIl%2*htFmS|S|_C=n260zaou2JLSSR^ zK?K(7NJkUsSAjxIz|tIG#)Ro9Rpx$^1) z-$Gdxl=+BCohVsloxB05V*036EVzJz!99>k7wabK!3V4lw-3c=#15rRG_mwX$j)%s z1?y+`f+qC4^56==LQyd5+z`F>m!@Q^mDlp`QG=}tV}+puTL3n#)*62Z+}`My^w*VM zky9i#u7on)5a(n@@Z*`mc)<0@@5DO#ZZ>lL#Of&kyN$=7ntQI~IM$13)_%~JA>6v4 zGA{1yr}W8hWj`96CRUNqH_FK-;F56YN014oGTIC0wWl$%eSgbl6qs6g(omRmDUDj>4F>7jy%7Z1UrVP6R(sAa^L2E~UsC3rU1#W}{CO~Ios z^_Z{X3+aKXaT4c4Zg@H560hTz{&9Q;|J82W$g?R-Q`Gtx;#rVdQ_$e%0sK>QmCuSL?57Sgfxp2cW%kR&v|3_Q) zqLb#j$3Qft*?C;0V$A9)mK)xn=fFGj8Mq%qBwUo6taWye8fLWm&ss3wvYa>+r!}^e&%2c7lB6 zSWV+4aJe^0AN&i5@opd5(eW8G6odFSOz24Q_gy%3m&e-$_T}}XjlcpOjwBR&c0lf` zz60S7r}jb2NqL^#r%?f%9o(djwO~z>iGRj!3D%Cl?oHAbXeL1a>_66tGJPhO1{Ipk ztJ|hYo=PRp2uZ2Gz&i`9s4W=5J}Z{$ynjPT3nMd49`KPm8O{mfBcB9jzGy|K+o&@5 z>Euruo1+)P?9Sfb?AjVn4`Z8Lz&6K$9JF(%d*zh@AwarG> z`D10`WU^nM5SjoY^NRME4e=%g_r(I}yQ!_YXU48F_krd}c*)s%&ARe#xpE`#!Di?y z1X^^dj7BK14VzB6LDgB!@FGQe^cQ$PQr<;ZuvP2AKeheIwg}P9xKnyyZ*lk6=h-&; z60#jGRV{aha`*OVAZ#v+K>9#ufN2vhwjJ6d$3B7CLw*NE1Cm6QL@KQ#D(tRh2h~zUe-ukx=81J!x$S)2zs95e&xcX_OPbtpO{ZzpK#f!XJGBy zt(LJr#y}oKV^`kZnb`Lmkw{91Rc_|SSga$aO62wq?J~#q4F0#h_71LaB2297?^eq1 z73bIbYDE8rCn1tcN^!G|;a6+0R|wn@?e6HYj{`ZnJDv5+^5T)A9%>Bq9oel9FvC=p zR6EuJ3>hg$af(7=1|RXD%m^-WcI1k&=m7-rsE^!RA$WI>M7yC;O#f~ldLH8u(4xUL^>*J49*Cedr-s`gP7h~H1@;#y)7_z-GntfU> z!69B9T=cap(-=#KS*DYfG@@5gqTkU-_Q`hCnX3jbqim#hhe12zxRTNqFrMkdx%Er^ zI9cdZTC>g@i1vhm6ZubebZsvBoh&{#Nm5U+cupM*>xIviWl~~3rvyupnkIug*iV1x z{CMa>k?!4Y;2j0SIX$x5*z_A7M|G}q|DDd;Qs05&MXU25nrPQ~p4*~5z&{Nr==U~S zZ~+j82!5@V5~3ErxzfN5|mGk%Za91mZ(&CpbrR(Kkt? zsO4A29VH!ra9q-hi5I<8SFEsawr-5;aD#&ymk};ks`LQGr#YNJ~ zfW;%v7KHKg&N+QSc(m%_BaNcz8*zG5LyQY#==lx&F^4D^SWwS+&%^;oQtW>EG_J*$ zbjzE^%@JPB*lyV^d2@4>uE~qV7hi7TQA25tMPWubE0I&en0Ix%r8jscfR=H9H_7`n z4P(!+;|!$*Czn=~27;BL_rh-KSV3+vIIM_>tm8sLx=Ve~q<=IhOYwTNaHzq!o&hk0 zL1ri$jp0uIn^_0`nGS!!S+bJed?kt%f~M^LoDN_vGT=zbpJgcRQT@2(41^}Y?jFi) zD)G|Mvnm^y-3}-~m#^XC#h)h$vJ&=-me8umn{q9TbWSmSLsTe94&N+|YPx8NVbKnj z+l@XSpZHALcN#ZoYSKM2KR3v~QCU2!d7x`+WGxJezSc1qy*yD_i3#v>i?XfbcK%uC zZ7Emi{=-72P20H)^2qA)+%3>La*^`^U68D49+K8MccX2CXhph)?fsV0b$1|yqC-x> zDy{!Yu_g05EP{Tx7HxK(Lrk+M&akBfSBiDR(ILxq&rZl1Y=td)o;yEJW?La=i={h8 z8fWe`allJ}6aphPGby%bTf|W-vQN4;#4JKWz*CZIe8Ky916?NHHReYt$PHmp7Bd4O zf!qj9(E`06h(54$TG)F4&wD}zr(b(lUjm2kgxAN0X&%TcdH4&jP0%HOplT5Ki_UyB)GzRW^cD_wL{F5Z|B8D9!qZAnKZAo^F3l~I@Ubn@M35+DatjeZ zp^r_(*2(x+()S-uC?yiUWkH_!f}JS9GPc0kDPFx30N{!@>OmRK**mWjBNJRnZwQs< zQd*h!nFJl+%xouLXlF9zJ8#!$)k6Vb#ru+r@FM zJ!%Z9CF3B-H7-6B;yQ~*cRbC!TRcrP))E`8C*cQ-I`mT=Xy=BNcsvPGuX=s!Z|iXq z%{HK}ji{7X!jPflMx%_zjD@V`6lPNb&7=uO)CQ(A(7{F!F2&csPg5q8gEHBj2pljc z1KfE|eL(7(4O@?l4O@L^dPaGNj)4O8$?J4skm@i6eymqhf-P?FY3j6L^b6=css$-N zo{7+D@Xd|H+iDtMIdn&n(lwW&%(2*6`VcOt-astW@oLT#RtcCt<-U0dJOgXE>z1SL^pxeBmXquB*5tkbB6;%OFaaX>RuW4Qt9j1I|V zDn%Dccrf^YKPo!-qI2nMJNS}y<(IerCgbYU&iY{hqaJ?8yY|aE_=0m?AeUMIVM#dz zpAvyP1(!C3R`N-4=TX3ah8xj7&@Y=CA6{dFjyy7wv0{lhHE+QAhWpQQQSO8X!q9I# z8CvJR%P+J2pX8V2Y;CQC^_}z;ZJiwqjsI7g`L`O$cJa3w32W1t7us0}93I82Qbh)f zxU~#1RH<5cLr5MdS>d_Ie#&Gd+^7xhKTf0K?ey0s zTN6{$@9&>ytUk-CBfWilTu1VC@>9LN^yr9a5v*B^lc)AD)mHSDOhbh8_=x1yTbD1K zTPH{?$%(#I!EwXl0pJ>U&1gctvftV}@%&eGmkOpzw!autAs1lKEwx}mxbdwz)-UgA zo&>2pw?d_|6Cc(lhhh5ynvOq)k#MqZWW>fbG#&}RPN4B?4?Yo%U~N3clmD{63TxY z6K45;KMnsgH2m9+q_m9kEz6kB=I-uKUxhS)%AX)12o912vMxAhhS&!{V37&SL`P4b z4q;15-J%hxT~)o^q$1a8E`_!!2!+I4-PY97{IBD-+0*jXds*d-DmBaqICj^k9pi5EH4@?>OM_DUUKHW#7&lH54crVH?6qK8APaZH9;;rgW zZsNT?Xs#;5JmGgh0A0o10R*V7!ksaS;yntA;+?YkS4NeW_AuL>Oux5Oe=CZY7;mp; z1f`d3->dQ$0H4xbk+csn2ww^epZvYzmvsLu=pz(pZ_>Rg;iDp?&vk!Z#O_`z<;6W0 z3e}w_oB=Mhd)+MXU|?GSUs#y0(mmPNdSLHZPH)79EW}%;UoX^KsGl$8TWUn}TdUs> zxSK{l6Xkd04}_b_OBT%_2aqpmmq>GIRWMAtaoP!dT^;QE&-4bF$n9YNY5UQ2#ckz-5@Ib0H04*ywYc;3BxO zb-bEZuU0JdIoM>qxp-^|sqyxQ|FmdSFH$J@@%(qcos%Oq>N$k&XjNCXC(tKwbUeS4 zs-f%vxR`7611T?64!AJVCUCs|HX$VT6ueBt%Wv_!FgyJCUKI~cepn9+_t<0j{5Qep zQj1W3Snxg$PdL9I-cn&Wdt?d;q%-)4`^*qSX_9fae2$}_JFKs4oHglC(8|m|eIf?z z$WhGKAQ!Mqtkz9MhDu!NAj6Xp7=PhBGFB^)XHav`NP&TSSSjQb!l444>8U~c#WRBU zqv07fJKGi>w(G6Itn@CWqbs;85qn5>&Ba~wLW+h{>OmrC?; zM@Bg*k~wsKLrKe=O|VIwJlH^dm>_R3B}Xqu{yX5$`GO$IDOMf-Mo!igx^ zz$6!^!{QRwY+#eS@xtm!vVc;UeuH8MAup=&y*;Uih!^z4U|F<2&wxGiq&d3~URWIq z=5(`)ib8(6mg*G!Z7Y#F3`n2{caPq10!fhBw42nQ&%Lk6=n#+)mM)l3mM)z>`~pk^ zpb(HNBt7sjsI^#NOjt-a78_z}x1Pif;J^-1Wpus5;}v9>P&*v`V|S=o#6{{J+>s?Z z!9}-pRs{Sn6R5Pp{baXfQAhI}!DYw;w~$kqLxs7b6l`Wc>K;22?NBrt(>zC1%1$kxG&&_BE)o(vJu?@RrqEapN zDc!CcJG33&M0yKB<}8GPJ84eH+>?AM|K8cPSTq}v_;$1#(%IY%Zig!Ivn>c_)R{F@ zw$Nr{2vk38vly6xsA%3~qhMZnsc>JBeOz9S|LjTL3*~5K{dsU-TzrFSxT{Iy#G)y= z#k?t7ra$5da*g1mmOu$@!N-Q3m(5H!Ir^{(TVDqd@-*kdYxNdg6!i9N#*RB*Ok~>r zR9!{rVl1V)GkOiMvbAgia?-}pZp}-Qlp|Z4U!;brp({~&=RE?#SebVq`>^%|ElW=z zalMZ@cT{B1s0UN5cMTN_8xkFGM!}KBIi6))q{U*_G@0iSMvW~M6$^h@`q z70X+mxjT9~k97LYRh%NJIwk4;iZYy?*9W8tfa~a%O%WrBNSAb&Yd5+lDk08d1IP9n z^(f`%v3!d;zx1kn=IwjSSujh)=5SEH9A`ilTF@5p32f}s(8Jsj@ytU}coLg9Yy_wg zBGr0>cW#R9F;oIw?~r0Z$c#)5`j|ShNzva43N)__3;8EFEClzNBC>y;&Nl!mC`lx# ziaN?Q*uFC^$a=FA$#;dDdvT7};lb?yDtuy5PM`(;+9!`YSG~v0w16J+GW|P?0>c4R z4=s$kUdh3`P*dCUK1j3}vyEh2yNU!|T7qvaXvrMz)31o!(ZoyFmW2ed1RB5oKuuyhr9h5%aA03$4SUaf{Z zLyvWaJxQmY*pJ5CyO(KfkK6}obfe>SN6F)m@nvTqlE51X+(V1Q}=m1 z4~Ik8?<9SlwQRk%dw6_aZ=R@^&zRUJ?=sw(LtJlw{)oPaB4qeKI+J{8M7pDVK57g} z(L#2aSVG?j$e)q2{Umw9ewu!SeMEUmew2Arx*m`jyP7_bNMD6%Yit1#ifKc+JG{NQ zqV(^`VWx^7q72Qk7_wOXPl{>!_@!=A? z7(@h7xE0;@VF@@U46=e$JU-=1c%mnoxijZi4?LCzaP^zt3}>!g4>8px3{D2i4tj44 z$!#eZmf67)%Lu~PyJ5%}MrZYG5FcamgItXe#uvN@I9zQr+SX1zuFxkmwzxmGO#kMA zM7JSZuH*5Xjs8_48uIDPIc>CqvN0aF9p;*vSFod*ptM6ZE?B1FLg_lkmfTmkGx^@0 zAkS0n*E9=t1SRd!?$^vckxdwFxPC?9ju1F4hPn8~uc&D6k=-YhFAQKql?D{1_}ZGj zQ@>Uj+6;5gluI2H)O?85orR728GX~EW{XZUv~~PV6H{pjXl9j#i=bMiYLl61^TxjV znjM`Xx#i2;rm?yt#I?O!jn1pFL4Nk$0W&$}j2Lkim z@t#dgk0bUf33h~eP=F^ttv} zou+k0h)fy1HN4?5K%ejTmbbao_fv%jWC#D=TXsyXiy2v+F>1FAGd-MJ*E)xlU)h;+ zCp|$ozb1A(EEm-2kbDEx?4#AuNS~X@Tc}u(T|}HWP9w zxIdPd5)gS)Ym4@oJ7OAnKi??XhjPsKH)wj=(kDl!&1bFrPSustb=su3B00YU&hy{N zS$LdWFK&NB_2-pJ2=*Cgz;Aik2I-bT$sM~fPlj)C)>k^D2&YwXlaiS6=*XuVpa`bP9wZMXBpkDf>r=X^ zla<6DQhQX3F)>5z=u4$B@@)Bp8LHm=iO z-bcwRJ-=U8h}IE>_vrYR*w%4^Rjzcjt#rJ75lW9zR_Ui$&Y8rdU?-E;u!jzx;MDFR zkJHFj11W?H`aVY6m+~=Xv&O&-cFaP?DvEJJ!N3VX@&U*8RE0DHtFra zhljjpPZn$G4*j4uY#26Le&X|m_aAW*0Vl`F2@L?igZJM_Re}Ha;)M7YN8@NLZfs>| z?C@VgC0kKb7D)j4yM#vD42?pLmXgpSxj_UCxfVYHl&AwA0t9I{Mxfsjov10M| zni#AJ?y?v!NFn+Kay>O1HkK_(0vN@?Fb@owL?nd~<}FjR7Vp`{EICFe%}cMuOqBDs zl4Cclf}*QKXc=QrgR@8gO_R4B7BsJ2lw!j5U>clVA~l5?4t<*-{iO{jAoY8pT`jum zHN%sKc#S}+59U;_`C5<`xg&^C$0Ooj-iH3m9HUUdSt`ijbS7{?BjsoqW zKrkl8Y^CRA!O_bIHXYqPimI6#Kk&kQG%il}ndum=7#4Yl54jF_D>V=f+`Ty9%;gz> zX$*A-bJS&8pP@s(A)>4k_b~FHUiQ(CjPxiIN)6LR;AFS5qsb)d@n9+82aB|2nm)R1 z9Y#BnIa86W`3JRqK*8joTo81+##M1M{~eE`+6D1stUsiw3H&Y00sOI!{YOjg2fu=U#0YGHEfAEeqlHoV}T>Mx+0Vu9FNVgn*tT+?cUnWhMe zf?V2EC()dg>72T_Iv28`EG$eenV%+dI4rLufs{r*Ai4p97Q8@NSRPe%D_DW+x4yV4 zy`1@2v4`%p=Ra`goMXPz912-n-!pxH$6+fj&N~P!7`BI1GWWLdP}zGsCb-;_eN@u+ zH{X1BSW@ZFO}ibEAk=hF7&;97p|K=T+%mg#oOaWu19;co0(CbHz2rAr7g=) zVBI5qx#85b6BCp6%+O4C_uL3NP5WM)#(TeLVxM61-ic9NMFyi$EwAj*KiB9ZfIGP3 zqvVlz!@OAWxJUc&xx7Q3hEv}#C7+~la7?%CzB~gX-jT9!kIhJwJ=VjnS9bgIJ6=;U zqxT?GcSRTvyj59p4`5=!*FRwpMvdYbX=}l z?NoRY(o_$b-GkDStpgRCYf)|O=Pcj&aOz}rX9~&L%(KRBE*83exWqfnljga7bnE+% zyj=Il5o1FCxoq`d^F&>-4Wmm10|q>J1_ibZ6!>9u9ooi-3gPCo#5lhXK4qR8b?@<` zTcFHSl~JEc!l+=2TaXIWd5PJ)JpL_DDL^gb$wy2yFRluh3ENzhqSZRxxmq>0yDfgJ zU?&zVg?iUjRC^C2rJ4Z0p`hFWxHPep6(A;S4)E0Zi= zo1*M#1aB%XqOmZWv*W0lt3yaN3&XF-k4^Q#ZOPLdq{XEj{AAXOkoj7skxQx6vs80PZ;mD>8jXgN%_(I`a68f@&)KyWKgg#>!v-JdynSd zPKKcb<2$^|{FS{-CBwm{9?$#*{DWM^?cYY6?PuuCzdJ9h;B0Hmeh_n(+)tDIV6G?h zUAzzDvYh!_^-a@7ImdV`XZNg`{|SKu^lna-;wwGaJ1;{bJ!n6~>=6#4%qWv~rVvkt zERz--9DTlWw&yIPW=>%x95ETBjr4xi4iJzrC+trOIcyHpxT_*0Y3Dn4`0@(E5tABD zh#R3SUl6V!UlQ)1B}gKJgkq3ES_1WlXM^Hog2o1KxL^VA>IHP={o_fGSz-MURy6_3 zn_ycC8#`IOysQb7(1RTLnhdQJi1@E5(kwg^GecspNjMXzmZI}bh7V8NT{Ta$o+o8F z5BqTw0(r(3vk`!`wk)|D311=*NjbC`5!ZG+{<#7z8%H}AorSEB=KPT$zl@@XOE3`y zhH-m@R0#NjpsV8UGW&6YY_^ax7TU-MMMFu11X5~A-x6LEQqL8c{1k}Nh115ieuSvI zvWxC0>N-$=nC;}u>)XF2gQp8FE@wj8nu@=b%S|E$kc_M#RXs(QRE%Rt1pAi|XE+}* zVOK${@o2yf@+o<;s-k)(;)jT1yr+wW4i|3VoyByIT z++*iY6Bf@o7QZmu9Xv$q797Krrr6Se{h!fV72mkSYZI(m<2;|OdBy{vdznnU@Pwh`_5{=H<&5BQz%=qPRvVjEKXJ zT3w!MVs#nEn@F~S4OM7nj2E}o>77vkuZrh=A3|zX8xQT_r<|PNCMF=f6z~wq%>mqF z-i4^j@EDUt|D#k8=(7QAlGf&4m`jGXI1%*sqtJz>eTUz734g-&V$ZLD@CM9WTbOGJ z8}azlycrzw!K}u41>0|$1G3W*`dzzl4mQt^7pgOYQp|n>5SilLtjTc|Iyj(D* zK}|n52UMGR7OY}aiu>=f`CZvvKnB@Aa{0`*$>Mlg)W&lIDEVFF-ZnFk<4`$*IeAy` zMG!DKA-qLUT>rxE5by{wyADOlLlR^0ekL%(+0LZ?H72lE=?q9wda7|>mk3|R-N-4| zAwBj)>xRy$W+Yf9_2N7TTIzmiiz~sfg{nPFE!hm6Sga!}weyf?_6UKK@-uzUXsC#i5VuE`h%Y2cfRth6U5 zY6m;oJ##0I^JzA6O^!9VMSD_GlRh7O|in}|8wqMG_mCcPi+q~=)+bF@1r*z23H5EFhBB)E}yDahMyaZ#Y z)9#>pW&BY_782sWhQM1Q8t2943(&}pJHb1#nMC8%pm(Te<(oaJz!ebeDIag=aZNts zTn?MObyEio5nvPJ7&$m_dP0!OvRXf_e`t8gUaU`$f63c$e%K~I^SbZDfmO2sY6-ol z7ms_PO3`qX4-Y>W(In%LQ*X@^g0WCenzpEh{=@OQzRi#Ys0qeEBB-W9`H^hZH_+r~ zpdc=(J%)elpbm@0Yukad{FkvjeeRpwgaa9vITD>7HW;wWjc7V0oZtgXn3rRQabHfc zT`nsH>QyfqnFmZ&Ra-);z9AmKCuj0X8nvHcAa_t}GBwH|Jl*I7raTTXjPRu;B-vDegE3B0XVDLe3Z(2Lep3~iq!E{Kkk;qWA+-^ zsi8rR*-)?>q;2@H!}d_48nwppM&EcfIcJOrvH`8Zq%nlzFLaJq31j`5vF+dequbgt zdw@bHWerHo0~8|-Y&f%MFy$$%=z;;Fe5$K|M7BY@v?@z*C9{VS@jb1FXB4qdOrB9; zJ5Bshh~_SrAI;Isn;@99?cY%im|hyjPOJ;W@ogQZC=`^58=iVq3rlw6OCz09M0fg^ zCy2Py$+Cge1(AvUCK}sB_lM@?(@O0UeP)Q!mQS}BxcM(N{algD>>15o22yRFDsSA#?P^BZzWK-9#FA6 zplP~25)Lf#br4VJXvV8JW1^xlw%aZA<*y;yBoN^pKM(B3@Ceo+`6)w6#{fzJVgAf_ z)D#r|jzYNM&x{4PUq9J$Os&$&E28R+z9t3<+3|YcC5n@b#r_L{lhqhUGpdCmoP@9o zY;^=e%8Yg1%3h(I-c(U1HB(`{qze}>S}|oFm&%sp_);{UElK2)fpR7BIuC#czV#5S zL&->&GD-@RSNu?&_zHOBC!k>F306zQ$dHFG9*Q2Npor9fgU=2b77`oc zPUR0kpEx~vuRGu`#9qNHZII{wP|~>c#3`e{e^35BKEw2(W?@@Jt)C6MUC9hh7DZD? zpV9}e;}R47L%5w)C)ZFjIztfluYZ2DZqfLC zA-t^?!<$Nai4@`oU#A#bQCRKvP~wRxLcLH9ovNHbJIedzE1 zv-!V@@PAJmaZs>v>c+O(*?MH`9)eV4;-3m|IfY~3H`E?5k@DZJKLfc!jwz?vr&V27TiMgc z)!1Bsrb7w%l97axi9`OYj2yMWvB>5;C z2p&esc`91l@JU{XR+6oFcvJAR7UOABoJ0cVjxwHAgA$YJQN$cWwMQOkpFs~3CZ&?w zgdF`5QXJ1ne?G+j+s5j1k`E-d!?j1 zW^Z$8&Gdzwj4VmfV0k;hXGqMsvOVk>s^`3EJ0@W@Cfeu>*0Z@Tzl8*X_G!6^paHFy5MT zD3Cgb+gY=kusb;3i02c&KqmDqc=e}a?Du;1f~P*H)MjPsI*us@_=%(z--aef=sVQBfjeg*^Gjb`Z* z1C>an_|gC|T>E4AnU*x?WCM4W3g3^5lAfPSEvPgk`N7sH?{K&m;Z+$$2DJF|&1aQZP3BpAMvwrY)j8{5Px>htqZovN=MtOTL;vYPkko zFrZU$1-9^fK)HS6`Y$`}^JHqu=lf%y z=+}K@4#yx?7LH5UN{C>tk+MlY1QQD(sw9k3Lg$cBRSK%3Z0~}M$;7tAc12GT+I++) z=#)8JBX5GPlwW(*UbL`En5oxZsAm)!<74iA!W>+#>=sxbkWGq|Lpo7r!OJNCp zKuCouafhZEdKSq^HJ%^~ZJCsVk$5)xD|9oK5dOj!0Nq#01ApL zG}+&HoL9Eik!&WK~Agpr6jh-KinXR4k09C$z+Dsey@-(Tf8)7(Oj3mhPQ>>}<2 z;1cDVBcULQp`y*u6yxc5qv6KFPuK#N`ueJZ^VXeCR+=kf~kcS6^h>Qb2AX4NICp;usjpKv4BZBj@ z`ym>ygM(xdi{k?rnz4Jbdy>gy7DX>Qwb^H_s5>EUN_6~UQ!<-mHcXn#7g#IT&6%*t zZhm%fU~f_Fipq=!8E~Vdo(Aw`uB|eb2za4RZK-<5haDPx@e=D=zo+`neIztIvtR&~BezK(UAK))e5ypl(MMh<<+ zQgt5>e$)b3_iG>Du)5#)?tSmydfmTdaD5}4PBy#erf=g0UB~x*yWTvz&7ghLMt4u| z;l_^P+`ou$f6_+z_U~mSMt&aNe%!v8aDTE!d-v|?BzBOB;Cc`46S=>i6~3^(kY@>U z2DwM?wcuvk-Daj8adRFYuxA~m+-g!!Qy#SNW@!%FkGWd|PCwjjNM_&NY*1#aPuf|y zTT@PH58Iu&+4>wW-EDwpwPzev@3xY;T~TJ=-ED|wwP9c!SE-L{hINTTYah0pxm|f? ztq{TXMhV^LY@|@@LAKfBgcXSm%poe$J+53fF z&;Qd3@yk6vZqT`@OP$nT%A`t_bg0oGPo?i5^=Oc*W}9e!XgPczY{zPmsT|J(+X$cE zD0JYFr#U_HDx_QuSkK^Ao|z;;ljm8Ni&&Y50OcsTC}AY^t< zr^07St2T{1F0`1T{9RmJ&JfQoA8VG@4g{MV9-#&`c9?q$Gp2PqZ6H-g+9?6KsLFsP z4ovhn`u)X%xUVOQ2p7UIU;rmb<+EgP-KJGZHd#8vEw$Vucid@Aa|u+oZ#pJ3xr|AU z{G`ej^A|qPp?oB1|=VjYm>yCU;Iq#i*YkR$87?6^O@*65C_Oy`=z1%S~q2Ap%P0uHE$ zTjs>LY@xtVq@Ipy9Rsa8Z4oS&+YO$74uthOo?{lR!CwlB;HS-wGHCL!8=H`M36VWL zf-F}aG@}4qJ+h$Yf>QQ`YA(u}9+etqLVt#a#R1Vz!5lWAkxMRiXr?_SgA$AN&$wVJ zJXS=no<9Y>P~g!d;T=uGqdi9Hgz+Ebga!ta&9ptbkVFHU06THVlgcW-$UdV?eY^YEz(lRm+$6v0EqxFFNFi zOHEA{d+dt?iVOVFpK3=^T#ta%)vZj`2a-^wbXW#af%12M30|4jvc4GZ5yfz;1b&CH z-V|!WT@%`1X@X7Ln8*VVSzV&A)^)1&I#FuRsHLdDwVaw*7NlJuKUN|kc1%_nPIE6& zNi|KMS~gOlnwrQXU`&)bq8wkhxJeTv)tWS>vH*eS)vh%O?*WN5u3Xp3etEAT{R2GQ zLAmuW_@kbmSC*_95u=TSP>Du0Bd%E{ECGQWwSk4x$^tUnpb(WR)xeHoWenluMkN^W z3?DtzQw}*iS$m#39|m-Cxk76yp+7!G$hX!uB@|LDW=vVH1x8MB?(Q6NEV|59hI+Wt zy`2-5wYx^W>ZC}jsVB>nlTDt6jgqr2W6+NcJ!0gT=~zK0A#yJ!EnWD^7_XtvT<3F;1|`lP0QaRkNElG9{jD}90%pdrwz-~5Ql-~}>iO4w)4 zL<(ebNI^zayE%IGyB?~^A1X?vexU~hMkvY$HbddKb#t5(&d3x19Qz1P!=k*41?Qv6yd1Fk&vUt&nWs`6f z3BnrQU5(c|2TSapQa~Ne5FOCTM*J^98QVl^LNCmM63k6fMe>v@@LNlxWC`NgkARX` z;KQZ5yoKolr|^gh-Beh3+sbBy+OcB2LJcZaOMk6qE#QPkJ)$VVbogOg z;1Ide5DR=KYc9D+)Nt#PhSE`}V(K=;x&@0C^kgZq%h9Afgo!a?V{-M%6ggS3tuAB0 zJ6XrAN*GY3^(i-N6*WV0vk!YB9F_|8^(h=(J*gB5k~)wi$kzl8Qr(a+kx6)|b^~A)_u+^A3|18xaT&sYAz!FTF&WmjEQz)! zDohzR1+~NsrC!8PikM8<;mr<j1zK`&q}8FdQdi?)6V|h?)fW+K<`0JoNe&c+g$6JC+*`h+`R_|29IAt1?u&$}9=hcC8l;VzYJrl5#1(+0%U&FwQq)dovBRdHTa}-V7i_ zrI=v}p&O&F?PUMO8rpqyfUkaONy+W|7Ra2z3H(VuHgNP&5MJ0YR3JCMT5w6$SX7H% zPcdLpZOmk!4h9je2W8~vHsb&rMr&@dNV1_VZJ^~Jas^AFU@;Dq$*P_kwxIemU``qe z52>(AyJ*J!=i|LVL@^e$GL8_B5W3!}sLG06ezcMpZDKZX<*TTqAxg5nxz-b-lCPs% ziw1v%JT8V2sXGO3*&&)zpDKNFqEu3{NDzC#DPJXT$IpmLK9&Lt2s(XeTl&TL_=6#? z6BMU;C?HA0Kwx@x?kp%zC8j3K%RL$-QGL#$m664lFQ@u6rrdjAOv=STuzX|S*s0X4 z5M@JBa3Uv(s*ZFH)YPb9f($<^H#vE@zU9uGc2HcYaL#aW7NVV(AQfL>ek!1b2@^$) zmg-xtJw-(u6A@TK(F0F6pgb|U#LKfc7X=~QC7|ul?FTh60||PS?5%9 zoiT16R!p!J;qLhZUS|_SBJm$MW2>a8M1La|5HQSVJ&j`c8y#+Bkup3EDwW zc)tPQh!FQ5>0tap&gjl?DF&+r=EMxCXJ*OLigid3n5(paVXNwv#O?SfJYHB*K*vdF zX)lF+GYZX6Sbb&>O^Z;BmPz5O7A1?*nrtDvARiQq&wQCP(;#X|Rm~=^I5#q+=xP3a zJ-iQ6)iWWu{8vHzxzL`#p3Tsn&>koSW=Q}uc*`(UNwTkLYqcLIGcQR(=9pJ|GI5q( z3?Zi}UH|*{R{#mQkZVobu5~`QBCTSKZw6mb13K{;*k^l@C#a~q`0)kBJ7_c`e0rPFhr~&uo z6bzuHYLMbWoEWf0dr5yu2j^7TrRIFdv5`xGYzXXMXFvhw!h$N|Ig zjYbv^<;SE)kbsau5cLVX03b;S5dR8@5zV{dlL-4!e+3VRqh~GB_lYy|l1L9J+OvZr zjRP?A#YdGQ4H)TZ>?ia4O5lqzpo{7u1KE?|Mj-t&QR>DB@{A;bUMjp0P8`L?AvCjSfE*@ehXEHN zWRC6)H1bEuPf?y-c%ZKwA0Xl0%!wNyE7`AK5l{f=1c0lE{tNK2K=?%=Ys^QN869rk zkv%;~zX&Kuf9};OiWzp)8$ZH{P*^xVgaC5U-wZP&4R!D{_+R3_nj0qLK9EPFuCxr~ z=izvF1U%V-{T%%DC@Q|FC~8y*3A{Huaar$W{9_wBkzv$`fBU!{AtpE?tJFRClOtm` zY~vfg8j?2_RK4 z{v*PEvPge4+LG8&LMqFH_=|;Mi6c*hfcNz<9sC35j5q3~iBmZ8bVgqLNb1Zo$ZhEX zfC(6tM@T~YZibMlVY`@JBl095nfLlz(ci6)o3iGxQ;1qfS_!$%?g0VwuY z0tmq-d*@HoL6XWA4+&2I6Epy5gXfLI2PX6_B%-H0121PIB|i8J?+F?vM}S(RJTnyx z@~DRw4b5M~_b9fNk2^%x8X@HeEObK8!`kCr(jhZ%Pr_C8*3J;@6ALGF77a)O2kGZM z6d2$?7WRqJlw#JAFS7SQBpUK!pd9_Zv6un|FH)?u|A;JQ>fXrW z8Nqbug_2<6J+oimG2s8j*g3%1_C5K&Z{N0U+qP}nxNY0EZQHhO8@FxS?$^JW$(woq zH{)7LuqFmuhj;hB+Wi z%A5oq2SEhrQDU1m{?Mk~fH%$lBk#5<@3vRPOk~`YZA><+LOc{2A>{=Wm1aF}xk-iV zfEGn&blEB`eeE)nBK6`gRIf%5P2MlH^V3%xJ`%;UWC!%Lt3rz|%sW)`FNL-%Qi=1D z-4Gwo;ha&p7J?UKxFcg)CliHh4#cT6HArdsu1zJ?%Cv28`eMP%pzcRIBN!Bq02bCV zqVj_l0rnc|IC|E~vy!P>&F~sCMSaI^ zTJ)#`Ug^0p%{Os+fv`>nA(tD??lth!uJaGZ+h9rU6qvuJr71@%Pin zigzEd0;|h%wZ)Tt83z-(yY*HUtBJ~(jua1;sE4I00NUqFo~yPE@kp+51<>T*2vlVH z;5#G{Wxu^P?pu$a_0hy|tK$aD7z&$)FN<$M+BQKc=7xCWGICM9HXvJ3{~QoddXQzx zO?%<(Aeq*OYqRtfzqg{sNf$Xm{L&Cqjozf>6ow86`B~8z#+w7YR&7H8j}RGa9WMhw zlCCSCeRyfQ1`WcOGo zT^l|K078^uDl}sLnH41f3nP565#?stTtQ?t5Zb&WL7G&vBZ)&}I`xtThm88r-l-5l zW+Utnr$w66qLlLmRD8|3A_7X1T}pldC&$-)V3WgSap6|Byv zRAp@?x(-eiv@Dw-`UwbBsZ-ufOu{Voh8YiKrqbk=%`^@*W2D=ADY`I#+7AF5w>JBG1%;lJ_xa zRUEst37Bo4Au}(c^zO-sI*m@k*cohAmi|kk%SDZk4kiJA%%Ig^VM=yzaLS)}%wVKLA}2oghbc*wIhj1Yx@ zc#Mw%U8en-9gZiAL2=xS&AbO`c0Tu8naS~yC4@V7jN{fC6ZO!Rl||fg4^gaf84d8Ve`>)2^fnOZj}!V;S-ft7(X!> zf6#)3!5`N@zT5?FZvO|&yc9{GG165by(8u0ZfG#O5=(i6Cb;&UeUtq=KlA<*^|SDr zm$t$Co$u*G>iz4g)5rO~JBzVSr}}(Tz$DUJdWKEod?RA~Q^$I3fx)(PsyLZ@f}?Wq zvUSzkAVNQPZplfNb#qC2WumMl_%Db|c>=@snGq)3RLgLx7c`4!9iVpM)!gHySV5FCABaOyxV$$f zoxsn{cAeEg5mImJQBAczS%uqGm}@#y>K#MsMG>4&a&Yoam^ahVX(oKOV=Q84bC9Iy zZ8+Jt>mMY;_h>Z^jumk+l4KoUH2MBs9F97xO=oR#DlRBw!Vg-=YjwZ3oPeSB;WpP< zO)a1?YL>e6rz<{t@XJX4WY*LjRjJbbyw2pl*q`x-`@5YE&6^juCyZ8mpS5`uI&d0-V-PopdU4FVT?2p7a+h)am8wltLKU-B z14{-q3S?0`JDW8sqM+BZr6lQ?=5>RzMaR+wjCs>!(^Bo0mb&AF#3QsE<)vQcw55U| zzlFOZRV-`4gmT|@J>R@f7jQEOy@bRg$|@C;Ivz9jkUdP<0C72+^F)7gQOJ?cKB}6C z1Gjq}RW}LP4is;Qu2Z#Nx(}931=(7Q~ zO$ax;`}9@FQk>2O<{zg))Wc}C0J530uT}oT5~a|SkR?neF_WU3ZkCRX$q2i}J|}mt zzj=c?5h3W*J{vsj=2`**TdQ2&w>qm65Lu-wo;KR7tS-^p&&NV>v~~Pc(+RL9++d$1 zzt;tew5I5{26K%yEdl6?6gYla=g>^cM%TG8pk3LUHus@WXabmnH@uL76=cjd10sCHa+oOh$nd99yCJ$8wKK-&V$Z`Um{Uq2mXF>Jz^BSkd4 z^GDg+y9<`eJ6c_XHDTMmzYAui#&?}+p)t~T*UyuoJS7|SYDq{Rxxi=1$bYL z=Lt!IRKhex4w3@m5sjniMp?h39I^!iD`g9;Q2&^ro>pXd8G3@KN{{JcJ1<{K-K>p- zqe5SVw@*Psxvqj>D;SGuBl>~JF3GO3z9Ucv!X|kEr;%exWXXP_et~APe2b1Khk%BD z+utJFYdW7=KPP+<7k#wOC>J^pK+?zINfGN(<61M$Y;?<+?jLmZ419=JG};@M*@8)c z-=yka=ELPhhd89^4{f;QkZ5Pg2dGRJp<9r9CbW_wIbDE+K z8lPesk4Z{nl`9z3zm>Dc+C`h~okh8uPOpqg{Is#6TJ`~NNW!e6XCUgbId~SeZrii9 zXA+ao@X+(14rr1q+!+np;!zZ3@Wf5pUe+O8#e!w^O`0()WQpi4bpYd*R_`GMw3bw* z+*4K0-ovD!YaTr;*NmK?nqW^hJscH76`u?3$9k~4f3OF*a5=j}hihxsg=m)Pwc6Vo zYcYkV=g>5A-W9q*NndP`K3MrXf99bpcUH@@VCl`;GE5fj+1fGdIn&p`CjF&Vct+!h zFg8=lz1*r$VNI(|>lxYfnGcs1(dmh&(S=3)R2MsxIWkTw=H@M%-IX4gf+?MS&+|z3 zYD9IuZ34&>%|h+%HOx=U4v}r~0oCM${451I_N?x#+L{?AI30cY_d;%Is;{#jB(WBW`y2@j`>W zZpV8E%G=a*=cmE$rFZo8PHFzgpngz>_j$ikH24AW5h^;S#arNC5}e64WOUHHJl&*N zQbvQbN1DOCxX{+y3~bGR!PKTj<@+P`xKI>^^F6Shw7L@? zKYVibJiSx;H)bI3{K89SLdd7jLCKZ2+s>UQp6_%3ZMK&5Giq8axUnw}hB_-_nmtu( z-X|hBEocvjxi`%^IIUbtF7J7*T&^Xl|^Sczg&Ns5yp3kE^$XVi@pJ>o6 z!Z^GNBAX)DyH$(Ud`kPJe09%IcbFicaJyLY6PCYK(Na^-VpIxL%Iu9KTT>)&LDf#^`JAszh zx*I+w9zS{9cYRv`#%%!7C=8zG%R`-|k*;(P=pzPf-2%^0=3HRQ9JYL}?=0N&6?zR` z$xIpF)pf7CVnxx)7Eo&3KTX!>RJa3KBLF{)qrCk59Nw(_x0A9YRxA<;|_ib3VlIE>`;GsTzv~g z{Y9m|USAunKqxgw@{UCGVNPT=K2M$(hg9kxv4w&WJG3~@kR1Fm{*S=zr&k=4Eg(%& znRQ#Tl1aOfMzBCjl8SMbkpf_GO(>euL<$4G31!hFRL$kS&PW$d!90(+YRZK5RFt1L?Sqez>|mWX#Em%!p}%v|^qmw+EYMLdk)9 zvetmmiaEXa3tMF;9Y(HtlSlaaxM$E7U!{Z*Gg2NujL{!dUa(t@%eQ^;c8*Ya&V)T$PZ;&dVDHU z%Hl|0mVsPvOOSB1su(#`{KKQcMz8`IcukpLmpZI34|3~8kS!G?h*lM$Q4p4n$%Wav zkHy9sS>1w=!46qK4KpOVnH2>v$^L_q3`$okUur1IjAY4oDFB5Rx#nlZgW(R`ih$FI z`9k_cKj4O1!D@$?zc!dx6?prUa{pb(+grFY&;!eGsvY|Um(Yzp?;!OCBgWfb=py(w zAjJW68bf!ASI9eFNQ(DKmJrSNMo+>Gemauoh%}FDFz7Q&;K@I`+$kPe9vcR2Ke=PVEg%^mWJ`^{REW4xh?$A z9fu*$+f<}&vJ{s+|It9SG>1*#Qwj4_V^L7PD~8}Xa^@cFE`8*!$JujtYW2GzuX8Z| zZpL!9EBPd+K)3X6dHBdpEa{%MsUF!}UG}?bs-F}qY*#f}?YS^`tuX%$*_g@;^R69- zk46KuKzCp+s`b!CPy2D(bP04oCV*a{_?px&pu!rUB1l61l=7YT?lTCn*ewfamfU6dv=e1l_jr^3gT(9I49?S;{ z$p;2e1@$YirhfSHZFut{Mx-ZlGEXdf_Z_abU2dSj8vlXtl5F?06x(jtY1z_a-Lm77 zosU1}c;ji4)X#moG49S~CN1tyr6x7*M@tSl3fu3%Y(9|Fxbk+SoJBO;eZVJRlS7)@Ku zKq2YV1-Or25M4mu5Su}_&XF~9?{Uh}2aRiSA!_@f%NnAk6Igl6>;lki0#z=7Ydc_0 zZG?-+(Q>LB0@{aQhd*DPfH^f0E;2_m9k0nW-ZUOTpquMm{ z*VGBYuIH|3J_Uc~ELy4^E!TmacV!z0!6p#JDFBT98W&5bv??C~FIoz&ChBBu zHxDndC|AX-z6G_uAG)d|T3SlDm`JE3CHPoDwj%Lh#z=D&s?m?m_@vHsreifsoE4Xl z*{3kAXBIK-#%nVy&8e{d8U5ni3vWLB7XXHXz`2C+Psrq8r}3h8^yHOwro8<6VpXLd zboKjOIrP>0+#U4R`&>Nq=Lct;CaOmVT#E><4etc}enYfe2(}Z~aj41`yo7Tghks0Y zX^sGnx?7jmi{j|MCMxoYnK>l)&}i@o=v=SnT+=~$(`VoNGOzDOH?+gaoop_pb1M!X zW|S`__)a;AUhg46(161zZwSkDUInO@bv!;DI!=6D&{(SA%7ra#EADb2GQVUe&WyH> z=LPwwots@>L=5G3z}Aj|?N!oR5>HsCj;8=>J<4t6cz6y!j=HD!SUmFYYFYdmn@yOM z;RNJ^aTjW++h2>KH8qMMkXbA+D^^(5>ug#rDTcA~7VKvzyYuXhpS~U2`}rn2}rB z{P#UVc*8(~z0Qwjms|3^cf@h&0=KzBnz^a?!e*(^t&<|TxOU!%?qFNphZpCU(pN^OO{l2rJa;buf0u>!A_*dkO(Xk;Um|z~a;`2eq z7}KO-()G~U_RD&KOl);%(Amov8@X3k)pD2*(h6_wLugg@#i!)9@{d0dPK+jrxl-kD zktzl5p>phM{cVc!(t_`1nb2wD9_fcaW_`A0Y4VSt0MZV&q98 z1COJvCQ4Eo!PilRX6b<2WEKLgjbHG(`7Q#jg8i`^}h?yQ<6voiyL zAq9(6*L92im8!qg5>p0;#CL;uWDIo|wIcI_ zej~7xXQE-ifHsRuzq^uQ+X6p}5XiO>9PI|9XrEbP#3C_z1?i9L>ybVG#A!*>Xl02J zeBRw}Psvh~Sq_AVn`C*79%s{G3mri=W5VkvI>?qU1nPq=Ab6gzTh>{;<5esQp%86u zT>cS{*&ESW@Jf*9x0`pK4+UkL>>3eDUG@^xWQV!F58}*vS=3{F@ z3r05Gj$QunwNN=&JdbW!RRb{XUp}gBI0WCRSsbwT+R@NaJ>_mLfOlmRA~Q$O4yAv# zZrz)f-|U;5DzaKv*aW(k;m@3+(}l=AQc$j#+y!Ilk1QFF!o}^*CHOO|XgM2~z&C9x zGgrVDp+AvQJtOh5CSW;N#GdZWjRQ;9cEfqt)=|uK-{|Us9XB2ts6?>b;3#NDWUbtz|)3fmF8tH&PT zSShbp0sHpbl0PY;&kSr&?>aCeN!_ZwbH^UUSgNl&z#~iDs)*8>3)wL-b?HxRnVsWd zsxp#^iZy`h<(Y4ZlSboaZT1>@nQzFW5{CzhG8KsnXVdLcZLU4WC8`y??o^vQ&7Hh< zW7uk{_gP0dIvd7WA6|^(1|nS*3pN5skD$?}pLv8DK87Od8!>ky(HB?0M4y{Kz`a{; zLpq)dR#J%-24KruXUZ_SW)^I2On;3q54-L)5oNn(A;=Em@Oc}&o{PU?F5XcGn;Jym zudWIRfUBW23WRNjKAUF@bFW=&MM5NtH4DqeiwWQk_l&?V;Mf!SKAXqsXI?1wv6s4M zu_DOcknDkPNpbbrh|6a!xM`UbC`wzPqfl8L%3gk+Yl?C9NUyzO&rgf**=47Sd!FgU?!VGR=QvGp_`SzQ$9smL5blMd z_Vg?Pd;!R_fAF_{!DTCA-j!v~3u3$>25^)!{|~X{?jp zV-craD?Ihue)d}6G}+F`(yl5j!e#bkeE+`Rn#_1U>O$v!80>of)$88O3|Mee3#AJ+ zz_=sH;FpomUlI64}ew95z7+&2^Y*#?F2*b}>(3+09mGiIw63<&F9)e=|#fD<~I8n}3G?@TNDfOp9ZX+~c5a_LzBwjz1K)WO_<1G@#^sKDI zs0W#i&%XIF?_R#M*FmL>`eU$8Z>{@bU=Z%z zVCVbUta3#gxJ0LJ1uD45U$JKDBZM!fZ$PTg9>n9Q_pe03ib)zZ>@+M6Eq zQlBEpEM>+GoYDpojF+9k_s))XA=r}VXGAyw4>Xs)#^&xK=Y&PU@S0OtI4UL16^Ouh z{4x#P;2@XUo5u^oQ&ybGbFGxrVNGqKDhYr7nJfFp z3hHgzA}I$vyVveQ?i9&`QaQ_Dhyu~_5+bo+bqGs*+YZtR`p!@55Fi_Fa+2+CMd?6n zqx>lSx3k2(i1>02-<%fkoG$`lcOn6(>Rwhi7NHw>ikpJIUcjjeGpjW(>Nye6WZ;Pp=72`lZW!!psFemBteQtp@uo{E>&l9ZTlDmu4b^3_^%Q zk^Zq;kX&pRBA&U_u*@Hg(1e+#vQ_JYDNB8_?x_9)}PvW+@UYPw@NB) zXDO`yfiTgIUsE_^$Bs)h>7_l^6IWa2bydm6J?@LOnWzdr*eGndH+pM)BQ@Ae)tUj{!@#Nrc!8DPs>ftX zAq;mwfa@2rd@}*v%wgmmQquvYC~_4I_+ThC)zuwf*il+4>eUf1^)DgL^&*hbN=`{? z^?zD205kc6V!OhpV`*U`FOMaQTekJ9^io5$7Y_|DjE-M)wx`k>GArs=sH3VZ>I6A0^gHb@Z0J*sDY&k*wxE-wT%v$@ zC)^wAoez4Clk)g_guP&Di{39`~x&D?HRxEROUF^mY^qW6Y;AzlxdiEwyi zX>-DXG}fU$kY#(=W5~MfyuZwCbChX59TJ~X`s6~Vv)_!B^?nT6{G(QCeuLkaTlMzJ z$KFp|Xy&eZ$;QVzthWQa9?47_no~$z#?NwK!d!G-6yHsN!xXg;uG$Gx(z_F_uy8*b;6WsvuzHNS zChe$Tz_Ht%KGHt%F8}7T{oXM+N zkW@qL(oU}y+(ROo2Qs{qc0(nE-#&7qY9D%qv~`WzMezncXCjn?+(qKvx#a32x6|1h zBIKj?;JR?DgWA>ino;WeXB&d#jIs8{;}?~X<-0B9UOsHgUXK~BwV>x>2qzrw{q9g` z%=-<(AgQM-`ku-Ajl$r}?Jja?&iMc;p?5ZHjnIcDu1?U42(C`l3oy?{)JqUgW+2YT z@H0p=t%xzIJ=DA30amTypFXHXBE&rOQfZPiV?GIz19Y%^miWpvKX-E^bBxk31;m2l zxbzn@fGfMszO2{371z|yfN4aJw>9-bfBQ0=uFB&m6#0R(W zBQ5ZEFU~R7cn7!oF}hNt`-C_>fw3biIe{o4x)LW)S_jZh?i3SXZXfnBy8NU2$TsB> z;IAd-H^C|hcd)`;dCGyE_#v86S{G1`uWi-`7~C-Y8yN)RqZ$4LgFD8Sh;UX`yFQmM zJzbyjtr(&@AhaW{b7N|!LNIGb_{`~*yeZQx7l2-RT zL;|&k25b7f7q}`hvjQFkk$UybF+5E42mIId2|>AGa;e3`+Bx-3xh#cVCF6Ri?ATeD zd^f2qF=U8Y2sb-s!W@~BP6}xI0@(-lDO15rTn&K(?4n8#G=-#q|Bek+=hF639Ye(w z=pj{~h{(l4XF3{?j*^jXmVz@lBP1&Qar#ry8-?ZK!8V<=!3IC(bsks-jDZtkLF^g@ zRAUt}l5yjss7SROc;$`VsbhEx?&ysDRB&&5Xo_W>8Bp>Nye5EFT=A4QQ+-usRnZ0d zhMpM+{on*00IIkC)I5t3Zwkq*Ll60T^%>8*Ja=Ab^YtLWDo@>2V=Nnu$`!C87sw`d zCn~1bxbgRPeSb8e>z|X!3q*Y>C=UEeCjmCcT~It_FMwcAoj5;k5RX~nP@5pu2*M7y zO}-&12?iEOSz6v)(zX*T0Y{`yJ;Ftl0Mv#HRMCun5*9tW{n8KXH9NmNHZFIIz z0++XE;EI*@vujwT8mA>*-wwy%jKNwdlOw1LE@C2{P#g!M^dZ1qLr`OkEt@Nh5`QbO zj(uE+M*NGln_a!f(2B1(zMs)swbs3(!ka^`Yg75#wAQ_(;;WADQAYLiO7HQo`b{eL z&0f`O`QG}ko08TeJ1vj5(-8D@n%*Ob>Ss3JKjW6(V`&8sZYj>sO~B-UDa5p$J@{OsGuT@ z9!3TDg8V1MKL5ZFh54zohxuRY>}mdgLTnLz14kSC|0=2vQhD`2R7T=nAZC;I%zHYs4%|%J^%~e~B!TrGf5dA>v zav|{;NWGreXgkh!x%QfH8^bk`%>=B)=mD*R4`6Txl@HNGz5vh1_Ar71hVRYwUpL&q z5klz^9Y8VS^p00FeF4@_t&ihRN!sgKJ^4s6yO447ag(&ycr z446?>fH&c+)d#dL4y~){)TLQ1c_^UiYISJ zyjhmqHT{wiBHQRa)BpHyckYgGGwtoZ5qiz2tMae~0^qr$pv$skDXhz7^6abyNl;)j z{O(0)OjsZyv!y5_LLl*gm%&;qin!UZ*dS!JQ`}f+UXc@Ei-nmy@MC%~A<6xq*z%lW zTva;vndxn!+B!35USM)+0rAtLMVj_xo>hJm&BJ?pB-{4I%9VBpTtSl}pIyV)wk zmO>qP1~FA>DKB1d5OJvwvdum=xa6?Y#8`TBn>`h}Y^8b|=e6}b7PYZ4HA#2G^LQwH z3R;?UA{@IYLwX~BLSDCXx^ekYXnEx^PTd6-^OI%iSoyf-Sb72#N2fBy)(9v9iVBt5 zWZmd&y_FaVH8SoVA-IF&`azJgXQV6<6KPOZt)mO5lIOVGEXs0gZRbOXHj#nG^phnA z4HbG$*$bBLPh($EqS6f+t%mz4&!LN8Dq^`?<{nD)sb*3s%CbGor=>*pe9VrAM!JUR zaIqbI{V;95!J|jf}#C^Uy{*tnqiofT~Jr zZOPl>VXZ6j;0&`O$yr*QLh0n(G(aTjVjx+yA+r{-VFt#2`(pPJ(_{+oA$a7T+cMbi zYrD;SVyuPq@>OYBM+6jAtY4f3$Am-lRt=6c`rg!elBueKr^5AJyvXFdarY8kNKH}^ zGA*(;;VitmWLncvB%)s;QSW8yyXgpxJRQx#KG3EF4c0zS=6QB0KWth zrX)VT6fNh`MyJH_htX=;9tnpM(T9h69sNZbolB9<{N|xkkLs zeF4mQaYN$mq3X^h@W#r+LP0Q!lMRO?^Ujm?q#xq++C!E14D*4M46C0c9kLJCy+G^< z+)H^&0YfaB$eEW;ME**g2(@p6H8O&M&)3?ORToZN`U-SGh~YJ&mS28VtR@|I_Zf$#NgRmE>uscLBI9n+pHrtwuwyi|JU@9! z(GwQQiS$NaH@b+eOYmo~&ZE0wO`bqIxzJiW^-gKev3`Cf=zrJa|EnNE^6yt`VOIkqTSqe+>;Ke4oE9`4=J}97Z@vK!RWvA*DI}8I z4^{XpS2(6;V;So3Bk*T$>8%)(U=mDy&sOe)O@8PnFGii)P40kD)r`!r;@-!Z+#TX9 zHLyC}fO5l^bmQ_scFd7UWW~1Bf#>)edN;SwAjNc(V$qxD8O}Xc&Y;OTB7XQP%IOFz zOzI2=<=?E>Q1Zgc*UBq}$<^+0zk_4@jkJ&3M|7cfn>!ww+Gs5H)w}0%kG!1bA1DQ5)6tUBOK73s%jTI#PG^vEA2?Rdlk`_) zp%wz1_8 zrCmZhwJ+3hes(}XqC3rOutsPvY*DkkTaRpME7w~E`yO1VL8S@aeWS-ANgkH0FBf=^ z)QPs0CE1rLh3lgezsWIAG;1|vG;6Kc8MKCJLY;m_uj8_Dm$bGtG<7Lh#;}_W#-cS} zb6=r!slKz~+-3_ifO2ct@M{I$&N^kMYHC|Bdzd0gHpclk%I=8~1kzomfQ^NaxoOx& zauK>FdkWoPy_V|LY}5DM9|Z0I-`Vw%j*9n@ikASDj7Ip&Cd`1zB%}c45a%FzW_$AA z2;UL+q1&t2MrWdG`Q}`u*riPihZDj1J_iWfzp_bo`Cg-o^k8~z+l_H00i9q>A3{ca zD`}yt77j}v+1q`WO458|`Ax|afBje;DA)k!h9JXF+5Ox9(?#Q7t?);;`**UOu&b@5 znSq(3qNBZ;waI^)VwQ@w9Oer0S9Rk&^28q^zR~hu>$kE&L=ss*p!=yzdL?9j9A$Ob zQW^w>%%gFt;c9;it>#(qt>#IrE*r%&3;pJq&R}6(NkV0^#tIp+H%vt@AK zXItn7A2PN5dil;BL9SkZqKTaAOb=C`_SX(rfQ_*2($Kv*h(P+@33MG0H@C@vn$p#P z8WlaTn0o|OGjwB`ymybAM6mbf>1MJAMc+_^;z=Fcq44sC=*-CZTG48Pj z9L4=Y*=>-WKR+wqBN%pb3s0#L_srt<3HZ%ReG3J-eXzRy=V~2c#{OwWTndaW!B~ZF z5J+o4Htj9d*Pu3H(ZEL!grxn^i;F^PV3*~?~JEG=s=5TxVJR0&Yxm6QT18`9bdhchP4U*RQi#%$Mo z+U(01*b?vwlQNyKW7X7axb_FqTpUc<6LlUIl3VR^k~kS?Z7JeMd`3pYL5H?UVZR%a zu+{X=G>Mj{!4VN@7>CwZDCTgy0vPbcYNw(Y;yrb4@u++bQOA2S!ZRpl#$r?l@`Q2d zpyu*R*R9DTX^6^^8AT@qS}@ni$gD6v?NT=b??r|4YvKO>NiM9Jp_!W1jz`k_TPCNu zp62TPfnzXUiXS>scS#;_&cbZ?j0Kx7C-X*7M;SfoJFe-)+fBq zye)VNGu9A&`0Un}v+0R%ug-)I#e(}h+Js3%T4ot(40@PUJc7Eg&H&}f(v87KARi^^ zBDaJ%sTB7Jc$WnC!VQKF>Z%IMX};N_EwD}PSO&(HKn>q#m73$>O!ktQ0(MN4#S8gX za_Zs@U9s9r+F)Za&xh6kXXnE%D&UqTckR0iGt$k36MA)7E_BbIoEXy=W*qp{7Gctu zD3gUUp>Zuc4~UYLpoR>*+IJtBR|$f1QaQbqzju)>M`ykD2~ zwC2J;x{`7p!;TJQHrZAsBfF8lRAu8C#H5~xjssX4>q7|cct^EA|3OYIaSI|J*>E8^ z0IoHpP`l6tp$c+FFc9--2Tb&62P%S{O!e1<0p{9RcqO(EktQnMmrApBT0li#NRMp4 z=)o|N5&@zj8(j2aYeekD1veY-4Y*VRg;cU*IY3e?W|64`|HE9~9?=tgT80o}oR2gC zpP@Ix7RdEN^SX~L{#?B;--O4FmR}22o-f(yxwvkf@0qP+A=r|_`vCl!oLNCVfG|>C zmQK!8X3~`CATsq8EYcA>=bCN_ToIgd2C_b`ht=ci1m<4n?I~QZpe7Ouo>!H2YO}_w z@mOia7}llS7c7&Ky<;JOxK6ZI(W%^E#-5cW;T4>8pXh3v6fYlA7);oJz@AR-7`33^ zn~~}HB1{+|Le|6&k9JW;liDt)p*p|3Y)=t){XE%kjl(5n5H-10d(Zo6haw~1xGF)@ zc{%WzdLGF|J%M^wn$inXvSpW+NIZW*!sLKs_tJA)u$P=s-@kTkuVAHa+fDA4vNBD? z_m;4)25GlzkvA{2|Be?@tdgGH3%dK)x*iTQb~PC@1BN5Ayr%Cn#u-TJvu?WRXGrO} zE$HUTZbO&*^|_04d>l2f84+L++%?OzT(Yx?fLw|kb@C2!gsCl6AOD9=7^pjOcWa=p z(9Fmz%IOwGXq6HLhgf;;LXKL}axw)qbOM6|^g8Gf{DoX5sJ3^C_UJu4uhALz2?}<6 z_{nbjhjsNBBD8xc&a^Jbp%W8uQu+*1-M*vTE_BbzyCzeu79VpN5wd+-s0ad~H!Jiu z=c+uE3Z(<-L`eO0th{z z75L*GqLKs`nRR~5QE>>JmQazw@klHXZa`;fv2RAK2Uu58*eyIVmo?HTy`nqa`wj7X zA5k=};Z8Q#HELZ&rmWN8p17)SbN_WSnu&P({+YS|fpLk6lX=Vn?`Jvr;f+Z}OE0CP zl)7)o7}ZEa_8~<^2R-mM^98!z3iD!9m*uWTFSb-=ia)($Rk~7~IQ+Zu3c0aI)#R4T zBReN1b#gV|;vUBJo&Iau1Sx5zC-94sBTi0MQN?hNdPrRkj|3^zT1>0(Wj|o7hSgFx zPZ;fXAcdVkehz3_vuw4BnySEGL>dAmq5DeU#+_|5;)v{d7b*mGKC(NHz#6z@T!IbM zqBC?q@zzX6BDGZ%_%yrZ4qfo}pK32XxemYY|8U$wo#9$~KPV@1nEx3*O8m=y+W+df z9gVCFjST;%?jMdWJJYgWAK%|)0bqC1=<2jZ&|8#RwFMRe zd!q?lfGmZZfw6w6<_gc2*bAt6(?iGr+F%U|))11)b9qX^QDJxULVzDIMv%x4JAV7R z8L@_yFoYVhqTz;cu#)=UUMPFm=)y3sGneX`G2+va_fG8vYxAdV}ITDiI(w*!8dn(^il!!^^- zz0o44{P#@QK;WJzeRSV2-L-(f=6m-1$nje#_!bZA!^5SzaT7DhOWbr)vgCSrYX~sA zt^#GeZQ%*C|IGiBji>p=kOWMUj_nR~F?tDCp|ZF&7=sX3t_n*vwI*}F!psO;m0f3l z(qX!6pJ|gZc0HZnfz^0cb0Wxwjz@2d*_g~*XpEZ9TYSCJu9E*fK>7sm91t21qU>Dc zs(m0EW8eMk?f2dzy2N-#-j)D4h0fg8shEik&z%*$sA(Z^e(XYGqnV#zk$aMXar^6i#?#Bk6VSB4INy?A z^rw(2h~NoY2^tITBt;%!jM9I9SWhHnF~W@D5s*CJaIMQK8mtiq7M(7LqS0%ccEDFyu1y~tk%`AZz*asuO3**Th{$jpbt5BaUwj19$jk@r!JylS$0^Ea1yOdnR&Eh%6pLfA-vVE#bIkQ6gR4ofI zwBE8@P2n#*lkzW#Xp4k5PG_B!S%^A@!eTh-&EoxLnQyobbom*f@@VbVQnoA1#t`T* z+<)Tfxl~*`?4M`e@pJt9w>rZA<(WG`K0Qv{*Z&h(c{1blF$B- z5BgWg`p+#f6u=9_ivpMJ>mR;-$9l&+sjlY@F92v=A|K$4DILN|?*+$0pOU0HwF0#R z_@n`TUslm>X1vCt9%-(DN|qARhSk{jIQ?e78bV(1Q%{g)uVMOJOnXw8b!M(R zAM#qB8>kW1$zFxEp1spfsBsa!!CQ*!xD>$CM5DH{&vd>?CM?A@K+FL1QXcIDI6dO;P+pZW5iozef46;qi7PRwxTR@y`hRf z$~L^OHkMy%ghdrkQ>@oXzI17P`BHLxg-!r!s=OH*<|}hx10U+!M}e4)fm?Poz5?>26Gj`jqQDjE$LGN-+lmP*E$~_CW#V}gX5ye^ zk;B8097@DVO70SfhRPVZ&bg9kv#}tABL)J8#P8DDmD62_^YCk0ciK>ue^-z|=#FjG zcsb~sfB>&(CGywBVMY5cVq6RLoT&Rzwc&?++9Xc6X{w-+h4>vFQ!efNt<_Bv$|B6w z+EXhR&l!2kJbdMsY!9h1N-||}tKZX!m9E2w7>=aCOxb7a7%0q;-CPevKh?E(VTQs6ZzuxPrQc{d zYPB>cn_*#f47Th@qs0~Xjv#)qS`T`^p}q*|Z3*LuCAhK~Fx!*D#KD_x-hB@PUBCG~ z2)cH|zxQ({I0)OaD;nCf5Zoi_SqgoP&$AI6b2Ctfc*PzdFkXhF07Ei=;}lnZ5^NX# zv9N(HfJ8rU>5fj|^&6Y<)<~$DF#TvgZCXo|Y7?^yhI(OLU6hMEw#s1BL(YfrW6-oX zqz5wJe3Dt3CO_f3_ouTv(J-iWzG@n_+VI=JTxBz%hMIr!k`O-T1X6ug;T-0y$^3Uv z^W=4$rBGh!T0F91xqA6>o%|*R-MAAr2hV^Ev_TwaCfW#)a3W&YffJcLMws#0>f#N1 zxcEoz>9HFDF+-lv*-5*9)Y&ix3vc(sVF|SH^T-LB^12wdCc|}f@i|3$6(eh{l`;By zhs)wEw8pl$!ibl44z0n8=mWq-5|fvCE2bzAw=lF~UW>eaQVrH$X;G+RN`Z81t)6$& zz%WcjKCkv?sGB=OY>$*tZ2?Qmor335bQ9QzTNvTzg+Ke%Izrt<9fAX}uZRIIM@&*K z8_u`;YztBfE{x)J4>Bknarl1dnO500B+7k`<$GEdIJ|zO86zR-XC92Kb)5G;588dr zlOrbuwF<2e)a`?l+7Vh7$~3{F)%yZ@B^tZivgOu)<4{%xVhdR7%HqDf!jZd_U%&>R zRH$Sb9}ucG?vy{B!k=%aM95ws{&6pLOwndAAOHXyKifS2-o23hd-o!4ZR_-pR%4`Z z^`BbJ61$g{)>6{(bZ3oQr=Na5B-B9aSO^GMU}~y3kiWQCej&bTuTs25D&21>EMr?V z0)Aq(+Y0Z+nDQv)gs9Vc&88^b*d)_=XVn&K&8nsHrT@d)JH_Z0w%wX#+qP}nwr$(C zZQHhO+qSJ$RjahRzP+=1Bi(<}NuSJzb*0pZ!Sj}Y3=R0p_ zz)Tg6Z~3R=-sgGF^PT5A&hxx)JM8nh9#5748Z)mI4$NPQVeKd$+Mv)q!teeS4#+*y zwfvh6fAD&LYKA@^0A0UA7ygx?O?{_Bbv~#I@ueIR2Z@`$YlLDt$b|hP`$9%_;h-Ca zM2(8b5Fi3ZjlxXM6a|Gx%1n(2f@;p7V3rK!bcivTL?Bz1Ze+w(u1qCnmNj!jozkeA zc~Yq`fGawmo~aZ<%@&jZ>~+bURWXF5PSH%9(V=?RC>)A{?7CDfVt^l9Mq!fmo9X385(S9I!z$UMZ&%&BX%LT4Z1hOAU5%v*^t{2{YGpq!*~XXX;!a9Jm)S{TVl z_t+UM(>E11q(WJm4#P`x&|GIOPK&npp3VVSh+g<^ao^)3=&nXFX| z!Kqt-h(XyKV>h}CGPGo=xbt-hnq@(38L)bvhbtVj^@Lxb427p4Xq-B|*E*@oqP{J8qN`x}_CEa6~5u$sU?T+olB9|@mk{vG_5B4GzQ zr{}-c?6sP!QBw1}Ew4Lme>UvI^x|wZR(F=dKu$t+z&dj}>I{{$sK`#Svf0{l%ukhp zu*+NObXy@ImxREeoSp{}%y}zP9>&6AN9Ggqp^*u9^;{8MtvGrF8A=^{2k{>6Z>*t3 zx4eoHJ=kTj$jL{7egL`(TVfJEEC9%D?c+YV=`3H~+TPnk5!Kh>TtK`h4Sg+yFV|LK zVMl0J!-xt!aD%g!<`1u6x4*f+R0}Osg-hD`_i)5}d09=fF<1NyFTs%XU;mC04|=FN zw;U%K6&Y@2kz zK7;&gKi(_zf0r=3WqM{_VDNLV*~5gV>uWH@4bHr{nhA8+DwIHnYk@VU8ttm8Cq@}^ zC4?42T&Yv6uII*zc3w#n>TH}XYdo|liGHJ&jB&4L2jv=8>?aHes}O+{`SfHVu#Dv# z8~e#KpjjC#px`{j^Y7`la;>nIZ6IDbhA*zAQ}$6VaCUVG7_>3T9lHgSj-@o{fK`sL zJi_wFX}vCm)%4va9Clx<@~9x+K#Ont1IkUIf{hiUpi1=38x8CeP_zUl+{cdxrM~(( zJSZ`Me+*c73-e*zAt@uLZaJKGsgb%B*MRwb5kHH?0|C#Nkr=g9wvuLeAQ_&_j`wG* zJ9w|pz($X!@oVB9poxXOx!6XHJ*5%UU0Z1G4sro(0|&mtCN2vgcJ0|o;O>jwp|h)$MsWMd?o zi|x^3a-lVBEFAn>PA7>>rkkYe9D^x};jAf^SUv!K=ZqA?>}Zb8^7#icZ}EV`L(;4l zt2^a@^bcm9fx|Z|LyH?>TooEDrk8orB3ML)g#vDR#FVmc3!nH!{1!lpC`4|f^^^HAa`v~Wd}u$)z#IX0taFYg9Dq0 z`|D6)AUg2sEp6;umzt$5SXYdG$H;lQr!ayYVT1yjaGM~?>wAxn4=hYiA0Mv1G1n#` z&|~dLG#YIYg>HQV^+u}1;Hpw5ZqxVgQ>l4-uB4AJ))!3P`T?p3>U;#6e>(a+ggptC zIBssC1Vezhs^r$jM?-&o{oX#h{H&;1Hw)WL-H@X6WyGu1jWtTGr|F*4*Yns1af@T3 z4=Z-!CM#BVT1@sStQc3(26_xA@ZNNn@L|FFgp;mbPP4k%y5)`64(|=v>mNzRRyMTg zqI`|kF}spPIcYjbIk@Kte_fWaOse5^(~KIf#0W1Tmmw8z@9zx$Z$o?WcK)+_0py+^ zj;&zKeiNwrb$nrB;62-p9X+R0S*-5N-J(YO25rZ4)9GjnEz&jNkr+C9DLQkSh09$u z+yO~95Ml114749mzaYRrm4B1KI%zurG8NMuRjh8@+`t+Ake9WR79|iebtW9lnW8cM zWV|PG=R(fMf^-#OY9*LRtsd$hv|)c>e{hi-$L@^WjRPEh`lN?dQ#x2*Y1_2T-Uvd@ znYpzcb{PxE4>fH59Gv~I4d3|JkKGx+SwC>U_k#J$bNbD(>`i1yENMM~(VqncO7=3h z<@tojWVuVb(|BbnexZPCTT_?TeVqRx&kEx`P@c z-_*(AF)E)ZrX*|;&o5J^uq6Z4kjmjPy+V*$$2N!sTtm$G&U8gwrRre(2zqS$@gOgQ zZVOGx;dur#)__y<%L}sZeROYX^?{h&-=1bSG-adD7hz&1`zSPV+GS|fjucNOA2~Ui z#mN%1L5@!@KMTr_Z@L6k@A~%L z6~nDJfO#~DY2>w3%F$q^G|uv2in4iGPRmI&^|-kwrHQ%DU$;HOI%xphSf}vk9k>RX_|*rVXs;;O`Q@7Yf+ppPGm8n zb6JM0*+9UZgx)T9(6-Uf-=_Sq0_$V%vPY?~Q+%-o8xNiI+ZAPDXK3#xM z5GV{E{B58m8lM#4GYWIU*uIdI6ncusnBWU!7sDroE(TK?^)n5D)(*}!nUcqC@4rD& zKA>ZQULpPk88hD*leeOJfQEvepj2toxN*W$$OS3%9zZsmCwTIfjb$w{fn0E$n;rQK zozRJ5T23%_@@T~%7{c0^=K0|W)`$)1{BT>%1kl9<8q3eSf zx5t-mYkJD%1?;HpN_v2A0Pa-8bI&O!>d|WW6w!G<2QHCZ5QWD#d5D@8N4$|4idRWv zgawU7**p z$*8oJxZ=zWc@l^@PlPw}HbfjCdl$F>rM1Zgz-y*)rpFI%c5#5M&SBZa3f4M@9v3@S zaLAzmTL^f`+m zJEk8XhPeeF>2N|7Ij>^W@J*thg;kAzo5)zfl9$2iMVoa^?zx8bn%s7Vv-3g0&JURR zw5vh$izJxn$LpLdGrl81+6uHd!C;LW5Vz&Xo*8h=VdUsXIvG0zO202soTzLgblHTH z8z?KehZ!_8%0(LvbLe5bew#;vEvg;iKi9I0$)! z4y%XqJG_@Yki+dGpCh51N1o!)AvXL-c|n4+^KdIH6Hl%Hc+{j} z9uRbr35O4gNVo3Ov;zqsdd4@?mp~Xk(sq0tq0njC5cQgWNa;ZdeYzN6C} zsbI~}hSBp|uZ|BE-#6jj47k?pc_ii39abW3g+2f3c(!(~K3;ehhcKUnrF{c?UX9=LLOAa%OjInyW!4s#aP2w1vs{|#kH=%sG(uY}o zjXZ?OVg~!k0!(a$r$%~%AuhowdEN(0GrxfX(?<8wXF@(_w;RT(00bMjlJ@9p2wRHcJHarC^in_p~ZfTliT{gN+O6%E^wetV%t=xwBrO}Op`N` zSbo{ew&fL%#zMt2tkV`T&g!uuNi5vBKto{kWU$N*6OETmuy2?=c33Yo*dppfci3PY zsH*WR@l9Z6-kcCy`1VS;_0@*UETE09=|-RPDa|lNus(}(RWLyo$WqB56Qmx=ARDBp zB#==OjwBFqB{4}wnZjy3xmmh!A}QgUixdwpKtDUV`T-cw(4lhzov+^HqC?Sl(Wv#L zqgs9l{qG;i9{Ry)uzFYCuC=(VaY`=hTIwAm?lm>Gc7^}}*Uh{@RJuQy8h1^axb^KF zHbI|lX-?^~F3P*5ms#HM9WJnxU1V+DuCo>0EH&K?14iIFRjZ8u*}iX?w-`69zo!cTe?j+CUuXkcW~AL*Jyo-T@Bx3$D-AdL{iM|ufj zAs}^EN_`hJjy9pQ2oE(jlF)RC;K@kKjVEz@Ssp1eP037~G#uR&X}4l8Gn-(&WY8Un zQPWCl7;+E?(DjgnCWGv~UE`?9Q&Tro6*2~xH{`}ynCB#B!rtWz9~e7mHBeIp;qKWm zX6!T~dH-Va+9=KM%;2TnC_b-%oOPI>f0K5%1aXQ&#thQKKnVjsfH?JOL2i27YI-DUX2ovK3H8i!Y~C7h&lq`ISMt#dRFCBy6Kg;k z+J&`$j+gW(Y@~EC*i}-O;&wYqZE{SZOW&XxO%rNw6|2@B7~HKGiB>4SX^_EUrPEkX zkR(bX9V90T51PfffmlCGOr6)rU8T(yGQ=M%4r0OA%l3ZvZ49z28&QUSS>Pe$)8bXN^noJYF&MaY)o1HcpF-4yF zO4rL>Ps;x&*#1(}lC`TijjMVGOt}wxf{bWW!wGciB7cn=F2yD%SkvN!^IZ*+#t7!% zQrnt%aEnNu4IkyO>*u@$qS{OkVzs2|^E1sf8oYi8)1a|N(7i~w zTo9caGSr7dOcBf%Qy7zWDx5r2c4ftngZotJNkNi5DrqUmOYWy`#AhJM1qKvyA6`|{ z9kA~3L2&!H>DpDSK6hzXzShgQM|APt;l!|mU%7NUH=s|vA5^h6ofF)R(x2PkffksCDS<=a$#M4+R0II-whSXbd-@d5}? zm`im)?GlSmF+KYnl4s;okw=*wK&?$ZW?%v17CX$4N2p%9SWoEXiiKO*)_v2JWbX@| z{KiV>&2@7PxO@yO#*}urKDqOV-K>!+e|Pw|^&Ocbd($a?Fmu}3nHkO|)X#^l-?W^s z0sVMqcWh=``r_1*T}lM|Tguj z88ncO;t=R)ZyY)PIZr=k9m&mF0}8~d;SwSQ*E8@nYo2iK)a#LgtWr-)Qv!vU8A{Jd z8sK!q$MVpxLgs0f`L7g%i3~60>gNT78T9WKX&2Bx_#xOhc_)b-2LwLfi7CtH0kdv6 z%h;bFByBQTjYiD!`$T^?qwZP{iWll{%E(hxici1e1C< z6r1@qV-7;xpC=(S)U7@Z^d5^Hip3#lM8J2!<4D%@n4#EU&K5_o@$xld5F?G49mnrL z!S&{(UV~)Q7mSra?Tot?bQKF9epv)1aed?#2Bj14tedjW42&Q$fS*!sIOtiA+1$)T zkjBD1aCm&v`~%r%H0;k7fExD;aFw-c<27Y!gNjQlR7%oLIcqCa%F=~t!bN4l$T(o5 zW7|~r=LVmQ9gFX!pg-XM@m@KTxogQ#0RWz8{#Wny|BO?q{@=Y;a)1cgSb8co!;TETc{wPT^fA_!h7XmH%f0-Q<1EQ<+2H{;#? z9loOh8?7ypB13{j5gBQ*gCG$U8l8+z#{i`?Z(EKE@ef(Q_uVu1e((NttvED*+>r=C zHv(h*S>$C^*Up&;#L>c>PLn6ZeUD{>m_*hoi`#BB&!^yl-~}bVN+ReTyO1 zD`wp&b0p#vC-r>oz+Y|7UJL9rPTGT5^SY_twwl^gJH3Ud;Vlh8bB4gR$0XKNTr8YA z@DxTSDj|qzxJ$lHN1wt}fBdR10vhHIUax*PAn)-O`vOIi+#dtu=Y^00N@XgUop~EJ%r7{=o zFxVfq9u~IBa~nW+9ln)v)ab5E^ow}-pG+05M&rpzW?F<(@GtXid+k`#z`FOjU>?Mu zXu|6ty|s?qRdk0*`O^tmp^KBA=wi7!T@_MHM|Hw8f^EB_Lsa{3iw(}KGeyr%a?Ma` zFZkNY3E_@=VOcU_RS%B5YHZhL`|xTp{`MeVA%GuSLfxji*aV{pYZvs$3E)d=pPMf0 z)-Cocra#@q*(k|pX~nEp)GS-gUPuF2iS*kJdp(Nt02+i(hSN{Km5wXs6hTjde_^u@1qE=yRw)#PyRH*DLKS@+}uG;^PTsz_<=9ypK0`a&Uc;XIo`jIJmb1ghoO4U4@6`9>4$tMj)Q)Wr+uEUu=0P$A^$@6pB}i& zzVl(mQ5+c4q4^RI-=I*QN)pKPsTjcdjNAAp9CQMW-etn(Q5~4WvpMA`6u^>40ttwz z6b7kLfA0@aG$PRT5=>gC6(ZR&O!K!q93BcN4+Y8KspXwaXOs?PXVVpw4s2Z(;&@_> z0pXfVXj_Wv29$GYhlFIaiH>zZt{Nl4jlp3^cso2PPYzh{rcgD5PG|Y##-TCKxDJSP z2Zn_)<;=c`F{v=<(-(>bnAJBPV8d2;RyP{e2S_~1gUt^%+kP_Q9vhYb(T~wXnbzi; zpFK53fB8h!n*m^$^a=(D)h0a(fwdiB;n5xzCQn+J^l6T{K*JiN!(N!#7;Mcqq)d8L z$EHv_QM70Q`tB4PQTj~)dR#KV3JWnuU}j%UG3nDAWOH0HV35^qiy~vxC>`NN!1XDQ zRDC!7iI3DwZNwD1i4GhKsPJM#5YOwjaAL>6i5ewt#r@6KIa{!2F0N6QoI#{}>+uQB zro2JbgbTOW5Tn=NUERQoX$NZnKx{-ONdh!?(BtgyLcoAbTXJDmy1>4E`)L~93_E-1 zkmKH(kc``EAj5<2QX#0R{$oGaY#(f&R>6r|XMrC71bRsEVBbG}WfVYA8~1MMe;PDc zC&2$aW^yA?@p;|K*0lBfnKyMrAatkE_Iymh|HOWZXo1u*hB@*=Osh12Z27HS+7h4iONYC;D^6wCD>uit&nLosti606$2MTrw!3qf zz<*r^G<8M@>{T6*dP;|$9)hC?uZjSb7-8h9F$Vom-iMS(aWCLQEq};_2f>)AkyIb8 zVu(=W+t+q_<#a6dK3HTF7{eS<^+M1murEu?0{i9wDxKu(s|I1ZVIYG`jsWb`4k>U1 zDKhn5g^25(my3dmj#xP=h73K>3=d%xod*s4DK=1Juo(sPhG;d}GF&{M_tXv%c&dk- z9YjWJJ!+%YA={7sq%bZ6{YjLdIDoF^0FgKAEc27jnQMX#SA9p^1^PnS6Qsyrq+#A( z42BG2{}dAR_wcIb{`e|CU|Z+~*Y_ER0L zKZHZo3&bZsHk-ocNnO4G{RI9gS+)zeul4}ni&XHM8m}CZKWII%OG(qF0AE;ab9z!f zbcGw@RMyq!M}YYYtO)l9{*tow!)r?Qi)(Lmco#+X^iZN_2mb;t4EV=MKVxSFn}R*h zkJD5HwLfq_#j!lyO|aietQ0eW3Ey4B>gIhUO1=LqM5BM3x08Tq5bOuAxUbX-#&D-Sab$8FNPl2K!+GtkF+aw^unY2Dl$but1Z>CdBL#M0&Ybt z;*?CTFj1e=xR$>{x;^3X<6^99i|&kURkV0>V5d^o)7+=9nVQ*RbBJYNjRy)O#4D^k@{W3e?#ObSHO zI>bBbL<%@Oo)+zfF{{p@K>Vb5MLKiLRj^7W_{Kn6y`H{n%0@>$8Fq2*)j~w4RE7du zB7Mtf=4fc!GX&K5RyVQlM1zGqhV6h%s8kj3-Iz(YGp) z^GyEfs_WK=#zn)MgMKrVeh87QTarc5!rJ&w{OteQ6o-Cd?T# z^!)-!DG2wL6msfdEZKnJHr#%hd}k==4RYp$M&1+gQ!JKj5s%20O+xzxdRxggY#I(Z z(0dg9(Je$ibR6^vncSV@K^hdA$1FuoFkWmKe)BnaRJjGe=Sq(4x;~c+I>Rb z&yamqcivc=I)e_b%XIA#_FF;rS_<8xFibX45 zOuc*&3@Y;<|L93KCvnPZRSW|+0J_XT=$URUVG6vDVzT4o>SuvsjvIars@USzC~`ww zY7M?&CZq*cu=7SXcwwh45FKR)3t)PpgR~$up(^CN5)d1L+Jh+;l0)Y!WVeq!mFX^M z>$oFbUcj=62bSr^8|KVklmify$p-vK=8W7NQjfDaE$LaZCNuCP=5!dj@>YXj82%ES z@yR<(OgN$w1i_{&IjvSsY3Y9e>C63`OeovWX%REl#W#OBXi5|Na%NR@MHs|S^w1+9 zGUW^TSvAie#JedAvVq{{zknCS{CF}m`6iXOVw(oH@{Mn!F9h>w99T&I+xsG52T`Cp zp3J|VQ#D}D!I~ddQ&5Lhxo^SQ2kLHjMGOvugnP9&ZQYO$#7=|FK>~)!eWX;K&pDc` zm!m0nYENj_eGyhkqe^A7y=@3wZM$yn)bpiGveP-*(=6U+J8Ee;5SE$yE0TZiMLi~W zu8|bKE_s5wMY6kBL6e2g)JU_^7+cdUUSle2M@Hlu;e8jfK66a(oVz;Xd9CwhWY;WN zzbQ_0XS}~hTy7-QNq@Otln(iqbGT*P>2i+eNtAarGj8Q-d7SCxI^n)kt`=>SZ-tYa z=tZ05oceJ8UX3!cpV?S(-Jp`)FMRHo{$7l_qY1717AqVzK6+{fFB=~Yf_{p0q0&o@&Y43!Tn%DI z$Q2(PHYYg&+AUG8PirjaUCi`3Qq~1A_#?ld+-Hal1wn@J?LwPrC%9pTj_Yt!57C`( zJL!R#RlFTmXjKtUlX>^LR*JZ)QTNJWE9&WHrciuJ{uN-y=5%az=`3}-r>(7CwL0md zw%B1$5zp*oj+>B*7*5CuQxU>=EpdXp_HI_dc8?3i?htXcW1D9xTfK0^DKa~tRL(Z{ zh9syyEF(ss{Y4e~{?RH;m#+K86yST7`ZB9+DBYhA%x%!M-EBqbKYv?M3G0K| zZ{Dc9`qWFQJ*7>=QlUB`H)KU(bOc>OFZ=w{ z3e5s9vV0vnHibQ6BaVD3$*B4LAg)Mi0>4b6Ge43K@lD>v0p#2-Rp(e~vh{e$y;Cun z)N0F9Tz~PLnAPeI_%=00uT<1d7WqS+$qUI!fgGx%=M4g3{zBqo&JGXr*Jtra?b-c? zI=VD}bvM?f2fA8~O&h1xo*_CgZ^AlBvz{PMmOHRj+SA&@g(jV1)?WoAD-n9AO`hFr zOmv>ZTYUQcO)r%l#3N7Y39GVSa09qomv#?m8lfy{WdA)J0$g&e7|dCgBYrS@%(v9+ z-wb5KXgk4bSB(`kZLqNbxy|x|iH>IV`=hiNH5KfaXtpZN=~$AHp(sbT*^W;py|iI* z=uFk9S}3Y1>YiXv9{$UeBm79B{nd-|EH!<&BQ2a zi@pS@r%$Y*Z~Ed1k%FkZdp`Wu3TzS~!!mVg>FGXelr;P(2cTFrN;~pM)i|MwWI-EluZaRqeeU zv*kJqyX4lvGq!H%J8Qe;i;+*r1Xg=wf+KrK4xJ04f({2rz;fv9to$(Um^7Rpi2s2`#KwoZQRH%ZW zM5Q2DZ0jjO(MH`NliqCFh27kJBBILwg1-t^9mh1!@f*OD#HpstW&Pn&4+x>ZcOD+cpdk_%8F$c*(MI6AU-H3JeNj>Gak9zq?3;2x$ ziZW0TM?LBK5k^NT=pJ`-0w@t}J7|os)H_aW5t%bi>+d5x(C;BTs1C9s>~bQHeB+qX z=O0&b^iM%iKq!Ffm?K0xN$9E4l$bExVz5O;*HymFw%Sx^d23H-i&G3EVk)|WQcneGN$3n%d6{+!|Ia5tS&NtEW;Ku6csSEoYQjpISJ9rPdH^Ai#e$c z@`^Z}$?H)%xkQ)w>NU{Uim{n(c8ws&KAK?+`;-kfGACZyRG*l*(t5nt1^pjXy z6&9naKU|6JI>A?M##Qbqk@Uo};0%a!CA}Tx3N7pjNdp!}5<-YEkPIXn994#p;-ETc z58>{ZURY6#WY}u6I=ZpC4^nEaK=FLfO>^Cic9@P*i_fSb-yQ-(KHn9F#NRUr8zn8- zxX}WG9^^yxkC56ZvYIL`)+DFdrSPm(R%&D5Uj=owa|Gi`D zaU@XeVIolIAw9Snq#CXcAq7{5K*KSC^nG}cGKe471Oks6gY11!FzP@Y92~;WwITbU zGT1K29BvCTj~fBf@81x*J9Ln>$3PHlVE++nVLXGt#u*si6OcWROqe=*BjmsES;ToW z_tmoDR!A?lc*N)I-mqfT=3W(5yR}rC2I}HtMlSphnRw5#Z10^r_Gyp6IQ7{u?3q5- z;=t|4o@DnA0>Qt-rmO4MA+WW&eZsSl2uC8qqVioG5_VB zgwR8Vrwv*J)`EIzE|X-mU0;b=+fH}I(k|G&jIpW9Co^-{P8gDt$E;2F*zUP%+1Ji> zADQJcNNa@0ZBeayu2=d8#QO)&H;;?^?BC-cAx&&u0{gT->-pXP`SiHuukV2}!2ZD- z)8#-GV%{4b_V)C^hrd5Rq{QPx7y^GJ)br(ti9fK^<3%15e`M72<&haC_joTEC?BdA z$K3PbikUxX?(tGPaQ6A~Tys%7fCkb>c~`=ymBAcM&%B_yewWG!bC&VW3$K4#uZQFz zfA~Ythd2i2lWf^PdcJ=aDB>S}eh>D@d-lx-e+|UrJy7@Of>QxXKMy7DRP^Thkd0-0LeAHi%D%>68Yu_%Gy0sb9tlYV15Gj zK!e)<7Xov|wsbP`>>t_Ths@1ox2yPl`;*(0gDR61=(fGUDbvp2_-suc<2-_ee+c~5 zL}{gR@5cn;x5!ulPdUXszBDE=4FNerDM7-NhNe*mXOpL;mI5h4sO^cf2qJM5RRuNh-D^rRpb>&sz7 zn65{77%$JwC?D*nV|mh`5ENa-Pzuop%=#fD38XN7^Vq!K&1cmC-TqY&&vfj|P-PxAuUD>8>{~|-!GM3+T78NPo<BwS}kAN zgEy@I06wKY%U7i4&&=IjhuxsnJG7qpPrubWwqCha#SM9i9Vw;s@rni_`JJX|d3c!3 zwd7k%VTu?p3iWPd1qfH2b}^J4R-#vYIa+RSYM+|^=0)YxPBg`B+ispy*78Y?p;GqL zHXG-40;kPO7G~E3DdVn6Wc$XYB#&$5-qUrGSAOAkllnQ#lk>AswDt#I1@`iE%)Z9# zyRr8)%z8hvq1y&O!=8MwA0I=Ljc0RJS7F0mZ7AUN~E5mxQ48QGokdNA8(O1NKvX?Kd{t6~ zFN?c~xdK09Og4s4O#m1^wq|Gfy2a1x@_TMr@ilqzMLVRPdqo}F*^(k42%7- z+EE)Q*~A<3PIaIb``uzS?gzDFvplyxNO}av*iMwySy|AXqakOB=3rZnWi&2}V7e)Y zlSQ4s71UB5^F}D+*N;X@Jp&T;g_R-old6rCZPrk?##FH)yf8=7CRWYbgUk_9f!?|O zD>KDrT;sSDMGA-3o9bZ1z=rW+w*OMkTB8p~s1G0@N7GtSB8%Fi(lfew?rGddK~vYcVSRgNID^Q0Bwd-*6DLX158hhktN1Z^=A#uUo?q3k zpaj&Xy;L|*_|c6^o5%$`$8Z3h7s@%&=@)x~MFL)-Yn!ZNUUVO=U9U}7+~1baz`IxG zs%x)odH`;JaM2&Sfu1kOMBhTu9m9RZ>JGu-kDdR+Oy`{rce4u9mRLozNpFs}q_zq& z!n0K{9XoAQKzy!vj3S|Dfcna&%<}=ZhT!jI<^2NPT3z_kz`WaF*`wp05lHWX@YIi% zTCna0Vrd64t2DO1R?=31_l2&HdN@vZARqoGUJl-miZ~*n95XN;_25o`kTcE&vg1X` zF5n>sn`Q$cfxQ**59mJ^61j+hG&YFean0XU{Q=SUS@3EXXaO0vapRl&ZBoqiy7ztmbbuScy}7s$FNK*I^SfYRoOYBP z6VZY1X2dz_TneEe<0Nyr=$uA4j$m$~OUp^pGLjf&(l*k{Xmfx%_g+XQ`k!>JN?qY| zl=mblOUT+XSXi>tV-D%97V@D9>~fOUIH{?ujh4|)`Y($I8HXKX{WZPNbfek+BS}oH zx;X2c0hW}(>Hx+IrhCFQe4+1N9ha1+UQ3aw@AnHkpz4eZ^xR=^KyK%-!|n(MjY|m> z-7#fom(Hu|>a(^xWv}&g{w;#L;fiYo{!w0U#fKtwvRiE~2_$`C7Wrq4me4$e2zn`M zjtPo3Mg{3538tlSH%-71(l>!qUWPFy&krT6E?A{Hu0GT# zVZp?f%DEfWvhAZi1!YS2$}y2fMk&ilOo>2)!tO zDtviax(P7!0_ek)=K=rvdLUT<{~aE}WeZMkYKu_F)q>U1%C(hW?^_vsUvv!2g~`PH z$$A03HS^Q(O4)-FdEYxI!Nc^1>BaVl%F`HK=Mi$M7p__Rm}_bs>n>YX+mMfi59l z{KgYxnRO{B%67m0_}_YPcNRk*zP|+`D3JdjM9uU+M6LZFQU8?bVrZmsSNwNTYa`gB zCBfGjFlU5TS~KY&*~}sKWe(o;J;~_Zr|seoB2HF@5l8pUx4P$>SCk>G*+zd zx}ibHaZwy}2Z~EE*O)^muwsm}%*BFZDDfDgxrHvpCaHZQA>y=6G;U%`h^~Yk3NGan zJnpIb(!T-DdCJYumlLw!wvwkL!kc%tKaBuaGoC{<=Ax#;HkwIa>^>wMWt??M`eApb z+bt>5Selops(Hkg1fiI~x)*F0MC%x0KV90byq6q)qsf0y)5~f+NKLUbhFyW#9g>gJ z0=F~HC9pLHaKldICLeuHt4`efrgNn2@MzOhY^9kS^wg)k2zU~e`;4W4qc4mje#U7C z%tL9RmLlhvplD)Lk(|ou?2RhX1sx!K^El;XnPYPOP{QJZ zUes*Yk=rDNkQ*mwF4anQkF=E3D4ZL`1>0N`hAb zp%V2J?GTk>M+BGODY&AV-pwf?cwxgt77@#p1pt0q@f}C(CPB~UVdT*@Q_MPb6<5uB zUrJZu0z>s%5PDIDRgCkpSc_-y1;~#g-wW*J^g+K6-A61G+a7e*#1^OktA(&+*~t7fi21KXPMp^sxgyjhiu-xb_kOqee9!%U^ZWXK-w(VY0$&VaSe4bc${1*U zg{t0Av%I(L&=tkSQ;0sPbr+;b!P~cwbuHbD{h-hiFZCM&Jl%W zNAa~T%o~U}?V96Fr~M8(#{OnXoM|1#>d#IZ?VFvXe>nlRXHisZ6>)HxIkXObjMg3Q zda3g4?(SY|ErI`&NvMui@FJ9|yn)rR;w*Gl-Tj#x_4b-l-O7HI57bhk>h>}8Vwd$T zWQp7o#s(Ed6?p zRs#_NV>2mPVXs1qhsVd?=+#1QR@pZzRS@0{1Ie(+# zjTwZWI5Y^vX1!(jmMon5tn$vR@he6uI`e21)fj)a0}L;u%x_M&cVG{3?x35WSbXjyE+%t4Ce30rmalpPM6&(KBToPBQE5e@M==$UF8 zv>B=09M9Hrj{2J49Xu_Q6Fy=riIo1Om&ZrUA70?!5o4jT&@cgr&l_C%R=O4w z$SO-odh-mq#Pdb(KNfYuDtM6JKi2j2pEl!vKZE^W8G1((djrS+5TzM7o7kAxI{(+w zUdDoUPg;J?${hW9z1>|1MT00t!n4c-i3$&=A+VuPw1#ftrcN=~D6t`tu}matYj1zw z8I;)`yf`s(y4>0Vqbx@*Er4Tnk;C`8V13PTx;X|wxSnqP$Yn4`&>;8PJvP4X{QRdZ zqwA)fjQjm02p+hP$RP<#?obo9C+PHezAS<-6V-Y@&IPJQ%{~Z>vZZ2e zU!qMYXdOejKDRuy4bq7z?_d~8l)0>ryf)f_X>3~7mUcfvhw{dBA@yOjQ^h+jGW8zp z_W1VI!HMIrC)WU9e~7BBJ<&kT!X8<7I(PN%s(DL$G#6j_UMTv`z?OGFtX;Q1&T_6V znsslqtvx`aCn0sK=wOuP6T~+Wk+1k*y6ZeXu+_W{&raojk)|$XziXJig(IKuO&i%uZ2Cl ztzK{Qa5|}o_WVu>!KR!Q;28fhG7DK zSu2>q#7pQS_63`b^;%CyOMSTk>Ob}tWhqQ(K8+4#^9ma7FHK=#;V8n@Bv3xTHR!-X zWJz{_xHUZvteVc!_Ih)hW#hZVq~LdrIss0__*Ru8Q(!ai*0tCimaEG(QyF=plSbMI6BSnG0PwdwJ;H_p3kEbuWi+NoFoljlFI~e9`u+2V(KiGx|NZTQ z8|=tu;)CkJ_~#Du+%;1^iBcG3_2Y2IUnHfK$cb1{5q5GU!ZSdqF_eL(NU?*ZVMoO> zJ}%72#wWvqhHow3%2nLE>boIta8g47=?Uca3M!1)7YZK&)OmdKd=0<9@!9J$Hd#s( z@P5U}T%Z0_S{dQGqI#aVKxsaUOTdoGcMX3pU0OrYF8XC9RwhF*ae`3K*v$}}2*^4L zlykxkGC@qjfB}+Gcw43U)&vzQ*o|pALQyPX1tcNlCKVRf1(JGY(NPItZO@3QY(&}8 zTE#tHT3|sVC9jba<7Jq{oF(WA#1aP6e*|Q^#J)^Ta0Ng>6V#t4;G}aZV*I-*X#_=z zInVL%d>ue?p6I*VrOLF<44^d3Bq{ z=T|@GWmGVoghRNoIzM^snK4?cU=^Nv@dFuji4hbkDbS0VI(qGM>HRX*G88bOpY@c1W9vwf za^r7l#PTLnN!h)&XB8~o5=O7=IudClGyR3623tz+MvNI6nRm%(Lc|tBT8Wh7sBo)* zZcCxX_h}glt+Wvdeu=*HAb%7ofEHxKGfsZzJ7=DH*`U)MvZZi2+-}hA<(<_V?C|{k zO>LCL-50aFAm!p{&;=Nz#=3UMAuEvb$&6x-tc*#H&V*`3&l zxuv4-homp|Fbcm6LP5d{#}A zi1!K8kRb>`v2o|A$8dUwI?>F+u%hh@+Hyx3p-#AoAqQ@b6F{e`PgExhxHg`TIke-e zQ{1qF3c)30fMNA~QgG6ldH_hL3Z=QDENJ(vAg2hl_jsQ2BtIZ?`9NEzYF~l)I>O0; zm+jH{jjT)brHS{TbZU6_nkX##{o^Y?O-lE4yF;C7W>Ey0ZMq;tn$fCmX_zz7UtJD+ zE}!+RAO+M`XM3YX0nw&ojhyw|uyKv3RWgaxZjeXn-g`dB)Pg4HE8AGkkP83%>A9zD zC|Xi0uEWp(Nx)oy%p;|e3J2#39+NQw4i09HXE@Z>%38PW&NMHOJ${6=^6EBwK)3jnh^^oy|tO z8ztXeTEa9^B-&9j_h2$hnc*XwbHl+Q!!Twmf~=D~9Xn|9GopXnLQ5X*_|`;XW;P#U zCND8RheH52%7Kz?(Pcj@6**esmWi=5u&I*qd9$rhs=*|;;|#I8;|%$?jy8$w84>y4 zMOgwR5}jb-v^W8Z$e_o%dqosn7Zg5hAuftY=T6s$%TZL^JQ`0RZl8xDBmif&dW{j} zA3z#ukfl^GAU%^(6ozcILtPj}0FeVQA<+cJXHnMj&oe{I8I+EK^j$Cum&! z6E4`{PDfR%xZv#aE?7FEZMq?%*RQ|iB0;cn3I#u+4P50Xc_7DXFH==Ug#&ft3M=V4 zQlO#G-}UfM!ILIaG7IM@4zL!&+L@LG)&m`FvflBT{1-50DjjbKV$x!! z6~$5TQB3DUm6mKPtSl{AsXa-wyhJs#)!EU;ks<=K-5wlwYOPJh+67S-Dtc|3$C5|7 zsKAh(51Nl1t|}d8x<;sR4#7^QLgTK#Xg0nG7hx7lvb}TJ4D< zlIvnVtC$N)&%}3p#+x$ppC3SZ9k$2ajW#)WLEm~_VC8$ngFsO=a%?dPnC<~LOT2nb zv*f8ke})DkqI-&noJ3%I1si(tA3x`5cl~p-;PL@fg-Kp-k3qt` zK5Yj}XqR!-*x@2EVcIQC9y;*7NNxP6m}eV!g>$0&xo!EwmEcA}h@2no8g1hR(<50p zSi$PjJb>|a%fr_beKY4O_T*u-;vG^A8-n5~4jM0+Wb#lhI!WyZ zO|{6vnatpz`^0{6W*m!q2N#J)7dJMLX?^*OV$l(6)CTDR#9l(O4HZ(S*M#jGRwxBP zz{VPTMDd^FNaFABJ6XSf=}SYgbvtslb-bi!jt@8_3-`XYDe;Vp!Jr1yHH)Q`5*8Dw zes%ZxzGC0PwTu>dSm8?_9UmM82ddmme8)|%z#d&!Oh5G5`qc3=#`Souq^DU}86>DTnpL-w}drMOo^sY^UwgW-JA( zX@4cD8d8Kcl27cAL(`OYT(yJ7bp{>Gawic*O)zKL7$hkh{v?|kmyRkGr&ApvS&3xN zS2J>I#IJD0jAnQMG!~1QH|VG&Q`Rr9hxFqQs@sPY725y6%B;X zYL(X>LqupPLGO1J8)pz_<)yuK4FPwJv*4kDII1Y^Bs-Wm&^%Z{SotsX0FBEIh*Bif8@)8lt-r7#k$T4Xy9x6V9 zC$1tX^t}~_aEIxa_llxJiOo<^G*UMgem;q)ot<)|9cYNWQZPsaQ%KXzB^~i6MMHx$<{KY`tT_hd!vqzNPcr3sA4r0&j|_`c9vv zXtN97nB>)IZdb|!=Tue-8xQ;OoWN9CQ)jX9n)5Yw*7=-kD6$hlG<}8&4!t)vfY6;&=7(!*(WNnsEiC^ zDQqGUuY=T5IA{$!RhXWQv5T2uOC>6s+;LnsidK{P;6OzzpfzFG;p^CY$PH|8>XVv} zi8c*q8pKeaw$cXY`buhaH$>eyq3xALrdJdh^#iy2@FkDI=TX^aQt8jKsbLXSFv#8hrs0>H?_^nVKqz0qz7$(>VCsb+@^?&)DAD6goN!XeL z(t3~<&pt7A8P1b4og=sZFmo=y8e4y(yDv8tKZXNFV{egcWpMt`P zuG~0j!el*eN*66gB(YGD#ZFII9QoE0>K?$i5It^+(MT~7@mM!A$g$9#L>4`vVN2I> zD+Ub{)58g^ux(oX*M}+1=ACiSoGvpsF5BN0BC`pN8;CLX-`bTc%>e`7 zgXBC%zOz}!M&f~g5H*O1{%vgJHyw_9NQN|`&e9t@HDB7d8_U1*rtiS?^@aOwaA8tX zo+{YNB0}fInEW8;PGfqlc+{5hJ6+h#Ks5I@uEkV|-W<5`@TN1UZFUHk5Jt0l z0HR0n*7aOULkugSam41ZbtUc(Gw^k)fNzNhbZZ!fZyb1d{}w^uIy(|sq~N6s#cIny zX$Pu_|1ylEv0k9svt8c>)(c`lPY1m~1O3(k63Y*Nda`3reL7+c3}um#tsOK_l3h)@ zLAhA%%FgT0p$!`9u%wd1560cX%mbEZ0KqldjS~!cqU6xV4}+DuDt;-Lv<>4Zelcu2 zaJ6^zJHD2ucGru*E@9YYcr3MXB4P4HS_Ol>cQI5?@I zxX^y;Dbkmz$<8w~U&k$V9RPLZ>8bDc__L&3Bb_$U2{5DFB(tNOEyZbrQn-ET59*O}fNMEL8TSBfDLFSi-ulE3 z$N+y!G7w+Bz?Mv{Q>Izm=`Uxve(9CCQ-!nW!QqHhbc;%hmDKe3HHqoy`T6-(i>`pb zgG;j|-{I@M0%n$_-{d~8cfAUwzSz%&O*g3zeZS-w2(d00ZP+{wv0f)jap(VGKJK{B z-ag#}GZwy=Cx3~M?N}ZKe89ivbL<1w?U+1|!AH6tqSyImd9s-uq0N^lgdUC@!XNI9 zTKO4Vg4RzGq3;Z5@v2%D+)okCNXoO9Ns1PuL6u$yW&h+b0;STsa|W!!3nYLblR~;` z!Y@qDYvP6Jc!fI9DoNh3htMqbZFP&$iY60yWa~>(vix*9RzD)wB%EmBWjK2nf;z-W&2+kD zi^#GG3?Bm*-Ge&BbR*q;dOG6xr3RbO^b#GB+k^U-b*_fBi~O8HYaiuLr(q!KjzklU)`T!Sus zxny)_MaSh=4dHr`t|G-bDyb~vE`|LD`)jUN)_kF^T zW9+AzG|soFVS4+!QOR1E9DiiqB#J?2!VqhmlwoQqX*~_JqN2LzsovrZ&GA)g;&7bG zrm?KKR5-8KOaeIT1jmm5v!>=#c0}V&z>yf=%uy+h+(gdjR=h|1l&G5P7B-W^DG8My zRXc$YkDBOKSl@)J?%?{HZ(D@y%e{~MAVMMSTLineqf`b@*>E|j+4pEGV7u5EuY2%`Gr*X`99@`Ji z8Ha7XadD8lV}U;eJcb*EaI_QUpRgt#Q<{6i>VNyU&o5itK*iTWdn+7X9^r{6c3vU$ zOQ^;%i*BJn+oU}9tsP_P9wUsCrZygE2ya;=MiJg2_p5)g`##aGpgM3h3B^rkM3gF2 z{Fa;2!$Nkl73A7uT)#K%A;+1)Ln|y)S8}dvj?&%IPXG|3s{S!o|48HLcqldx81@0l z1RwchpIq-W!WnNk>A3@V^?96`B%C5qT=mjO+$ouq&BOgC#_N;2uRY(EgqCm1hORaU z{CWlIWMbFDLYHmn!<|mN*fl-*XSeVpC#qCATG%X&g4FV6-jaoxKUP?0OY%ud1v>4x zk-e^k?t6A&oTJJ6!5t5Y>-Vgqp8qK)?6B9H!U3-F9Y84`Wcd%=ONZ5l_BUu+`DDLt^q;+MIYK|T=Ok&~o>+%SVLRw3KBLYfSl+5QuA zW%)qJZSXy>Th@qHaA~Hs^l@$?dx~qSLXk!mW;6Oe<}JwREI!$&tG0E6L(F@p;Tec_ z3~pkS5*kkMIrN$6+kGTY$Hcs)4H-!uic=Pj|&<+(5V?!GxXOo zsfdKOU7!nBjRAMFBbLa14ij{O#9?n55BywM7VE1qx%;9oMOQQ>%T($~qE?u+vs)ki zuA{y?ANluQv;C;!(#hLnhHZ%Bd)Qt~^0WOZ) z>Di(&Df9EyeMAsTe39_MfTmA#NrjE_3P3lDUd=PbFwn@cVSkp@;hj1wFLE#sz_I*( zF(6*sa)kE03w3Q#ylNn{3dxVVatKj(c6=8ZGc16O%nzeyR_%oU+Z1rT>foZ<0)L|a zF?~2lW;!z+=|>L!&B1Zkn*!WR3I5&cw5N8o_cM<3*35CnmxAiYThlK}|GgY8^vwm= z0la1Mk+&1i{rR7S0~ozW(kkY!Utz-k{mSTna>V~f6AwjWQ$aiT|GFnCR*TTWUPb)j zu_#70WJtrXEY1%paR^2rm-S&zTT6(qV>qBkLO9EZs`uv?7uH0~+Idaawb&rB*?1}v zTUe`3kV*u|ZUJmJo@_nw{X}|e-!~T0w?(Y^=Po~ny4V^YeVOb`ce+L!f4q+zez6_U z+2RamR@j5snLeNa>`We50d{5&aDZFm2U^Tq*TpwHz^%yxFZ#}HC^mlly#U+A9U;K2 zx>|!^k`Bp1VK$I{8+GP4k8$g{S{E zt9A(eMwCRy@Xl!D8!`@c>6c={`FB4gws%GSCx1(t7a1+!}R!i;SBBoHmqu~P(ddDJ41tRa~bNp0K=X=>tcR&D4m(92OqgLre}a3H8vznP zWr4+bJLpSjUYvV?F_VG|HTrx~9iU-sonb=zyS3*G5lP*xiw_&^GyS&^gjLIr@-)#Z;L_68dAQ5eRk%N}Pd{B2+g^Qhl{DTh@%R zG%;j7$J>_B6+me}pslgAkp9bWe(j`QCzx)hB|3_+hgcp}YSuVOlR++_yOGE=)x^V2 zRmp708+7OpRmSZatK%O=$VFlrmq8P6gaayyQs+fu2vS_0ix6+u|M-ytWvZyJc^r=nh{+l(gTPI<)7W2eN!)K^uwt3^cZ6y<@vI?lm=3USHW@oqEgMkStux(}HaURu0 zLk6YgMS4L7-=rtnt{M1K z0IMZLof)vcUy?^ojX1)jPIN%Pepq7*tf=inj??os0E<$C^+eZ4cvhD+`NJYE{Y?KnGr$mL_CuT-v zjQ4|5Te@Nf_-`oL9VfCa2$C_D7ma=D9xd_TO`Zi2Wqg-6?`u+WnA=Bj(xp1cPTK*6 z{@|EehQZ+Yu|vzmZ9Ny|2Oa-vUpdI;RQc8OC-&kNq!-UDI6uf|ywW7;rAtb+bjk)X zRu#!Lwv&Vi*ADI)7G{Vo=+lY6dOWliuraJS)s`gQD_)Sq+I`P4_C#<>nzM# z0fmdhL+j)`!nF8>KY$xSDDj!VLtHc$R-(XV{4Y$C^~RQ3&_ zIjpXwSgxzP^CU*JLwS##fx1?;wR1XlldVFR|FoFu-T58qvIS;G4DK#r4wu|4c|C)cF23e z>}lesXXr0=Fl~^TC$eEN6RjauN+vctPv;xdJb~zfcx&xSB{gh$ewN!k(!8aZXzqgNb6pcbzaYV3fA9Y%r=mkZ zIY;u36^23l?}v{6$qEDh_u?f*6DJpIXC;&W&!=2_LwYMOKi{>#_Kasr>yC~5A|w!K zp_fqCmj8_oAsj@=KVZloBg7bxK!Qw$jHtD#*<7Pi>H3>ZTL~4NTDq!j56rT%+NN5y za;5l2wOSK({_~%SZ6@=$J5?W@_v?!n_SE)t>pxv=UN;XX_q8`Y@V{ObCwvh0PR~ER z@$G#DSSJtp0QQ6dQ4reFdt@NAg!U8xlMtWDeY4*5kw006y?JY%kv4g2$0(hFhH8pe zl#x0z^)c%houPfr$z7p+E+92z_CfIdF`T!ApL!Rc0Q~3^Hl=YIlucphR>cR_gICwc zZ2|qpncJoJ+A{a3IJ;v9{NzVny51;9-|IuSM;nlv`S)(lUb)lPk3D|hoK(BgyWjX% zv-m}8LcHw$e9~!g?(c91CS=RsWvP6k>2a5zY`kgHeo}joKypZLI;?@a$S+F4U*M5n z32z@sseCe9pXo@mXP+AQ)O&vULr$E2yx3NsRQGP6$6a}k=stDHy}}W_i0&Gvwemi- ziPXA}5535=P~IFrQK`MM2kt_rc8VujAUl8zH}aR7ncc;AKJqVL)~XYHgg5!qpCM3vprLx3%Q&p{cJXgXX_G z^m*TM_IL?{OQ7T6WyM;A(IgelboYmA!mWXLfjB^5fZ9R85XXq)<5D7la>-Fdl5wQ- z{QYyGK2fj*^~p)Y5XS&}#PLFX1o2Y(2m#zc4GaAsBpM9AH74yNCFBM5K>`w#>*D01 zk%~b?FAeo_F^EV0?xF2S{o?YA!VptGbYbWR&!q5TGON|BXMyfL%#NCNGee z*hd1C1Sw5OpVH?G@S1dhxeBtQeiGzqRJ zAcLr)%P>}LO2h|oS=WIC6;C8@1o*^{COM-tst~gHPg*S@{Vvsoebz7#rLMR>Vt{9@ z`9E3-)F zPm!khOHpV#!Q|GYb&}|nK6O&TkXho$XEc%3gma>K|D@j+b>Rqf*-O1ii#v_K5G zXJ}+fHdZbUk#XN+s2eTz`j7Q{?NYK!iZ zgZzx{n}z%g?DGV|hS0u2RdXLs(RD~s)4oQhpfk5ys9I8qhi z>@e()U0cxCatjYYi>bOcq%UG!z`QVrcB@L?!i8>?(Z#Zi6)6a(tIHCYk4)}BtKvqK zs;4gHSeW0!jS1zfdOj{HJq+I4K55vh;^pFa}^b0gx89!z8nH;tbbN7<5@y9 zsAVf~9wTYLu zg3FbsW>3b781}O=)#qa zlLU3usC!jO95ah(D)cdy7DfoKp+qrPLm7bjBGW7^pifv*#-0NGbwr zSPkIPB*=p0$Q~5q*V9CYat6)IOI5Tr)~$EkxPpO3VWZF3ROrh0TC09#m4Lc5#{ltn z4eFOso0nDS$!l#YE3MME*5sQyOfR%6f6_t`G_zOV@mwiCZw;%6ky;i{u~kp~ZI?P- zVH2Nft(qcr5nH8ER~1XQV;ZZ~lvism!c#CK)$rs??={}f(ugvfu1QJp_Rmhoynz^n zGpehz)>qkdI@aWMptx{SDFSsNL8mg;W#U_FXK!nu31$WDMs}7qKJrk`Z!cvIgtTNr?Z;3t+$08pQ2yxhp5%$1!%-px+3<9fAt`Bg6c$?V`AO z6e`kO5iG6cq(zP)V|XFns=k49;iytkP09aV!6dEHPwADD&}S8&g;8le9$LhLoj9T~ zkz4>b)f&CVTW&5J3SAs+IvxgOULM)x(n^f~&G?}%S0&I3H7dp^z!9vk-dI72BA1&oy@M%#EGOLwCf)f$-x4tQpO-*NxXz$GQ}iOu}LHlqG;pD zM79va)IXIGG$;rgqBaf561Ev+{v4XROwwizKcXrp`)8WoiloN=ja$42=$(?*Nvt#= zdwCfL&PYv2fLU{p`pDkcQAW(nZHii8%X{G?)}Co*1H?7QxSAM4Cv}X1L`DNQ8Z6T& z-<+tCym{fTd>yGU)uDSSgF|A^;U10KcXlTbBHQ$@kMghz$DL)*5hvA1+t@mi%h{bdr;iq(K(Ru+?mtO=}rAl;k=msXsG zf+pi+7Sc*rGHL?AnXiJJVNgH{Q;fWWGcc*PEnS}@o3!e|TFjiRjt^)=r6lzp7pL$>7i&|GY2u5xol0$~9vpz8yIJ!uXbP8C9p}3uYba|a<;Xn_6Kxd}s zOU`jf0nE`=%lO#;Pf$FH?{dzbTKd}&`c$N7(B)qpw{U(#!eN20*UjaZZ>{7ByqV8e za%9$p#VxdRqS12TZ7UX_ru;&gr}2Gpx6~QEq4IXdrN|i{7xoPi>|T8;OT6o^_@3pd zNm#dO+2MYk+bWVjcsGjg8Yd-)*w#q_Y;6tDxUv}&JLY9H7|^*mj9;x4$ujqQjAC?T zJ_gEzSvln+3t?Q+R;igno!VA$QX(t97`XfvR}5Lz17N5tW%fBxl`7=bCwD`hXU2$O zBv4E=csKfEMdw5$KR3y?xk1m8lg(F)byHhK_w{QI4OHLB1Im-}Go};Hco)h95)YX{ zxYLB3C-fmw;P?g<8s);4DNKhniX)6SQK6a+m(3g8hvsovIGQ-+5{bu|94Zvxghq>> zuxh}H@vJW;>Ex1=Qqn40CN53!BWc)02aKn<#IQ4#I-gKK_HBY>F5sITjNTE!d4Dn+ z%_MwmDDiRg*NmqGUoEA2O=$vBQLxtg2bKs+ZsO;%t5R{P_G`q0QcL(9a}XqdF7rZ4 zEGrsTm7C32G|VkS)I?qEEmcn15Ej~eFC`B=WRz4E6FG($oksjcxdQ$eQT*cpN0K8L z>6Ik7H*oM!Evz7GU|K_r)+FrODkG__qmC_BNV$oZ?XxM?nnEwB6P|bNk>ZLJ%wXq- zq?3OaC-5g}eTX!VPSvJR7w3BE-@ust$+|;|&8wKs-4F;7&g%4{#SC{Y(1)xQe_>mM z#!5u6FbxQr&Rq37#0IEAc5p(<9-K70XL8)g_qUYlw-Nq(#DnoM{j*cV%Bj2wVmb~3r{0V4^{ z`9vx^D>~~X7w3zp_qm}TBmMG&BeX@+f_cS$aE|91(XUyq531!4ZFXXwCm?A$&%1!| z8u{Vu&`a2&MX5BWCZrvAd}_^FhjC8h$asDjq_rG!^SW;XaKJ?-Uv49vftBA0FmjE3~3? zn#a_kxqrsw6!S{B1q^+(1mJR{jzc`m<$FdJ?L zdyjsPvVmT^Sv$NMTq_U&>3H zVux%IIhQQ@E%pKMO9>%wQMr4@o0;K8ksd0>0r7o(f80rP=$r5-w2Pr@U2zlBy!|SP zkT)f-5&gn5R4CkWdBCho{Um~3`1Y9zAgrr|7)?_IxhnWV1wFL5t+5|-B{Y;^sQ|E= zY93Tv5y~Z5I&+m~QOC7r8niv`Yf?vJUDPkhDx7JGE zT>3Dr8uBS@ft9mkP5M0}-($^6_)U-!%*L+l=vH}Civ9H(8$YO90J=}BYeE0^P6Es; zPL6f$!#lE{cj$eZ_uvEb3c07ZpZ6FX^5+-Ms467@CmPwsPhc9Kua-^H;uQxl5WY7d}vL^a$ zv64fhI+Nc-ayb}$5(hQ}e)<<=1qvO2%Ng^-La_G8o=!JLh-y0ePw{!^397lIsq(l5 zu60Re^@4g4a|@?(#@a{{t@0R72NE5uTgri{j}83>k=Z>-5ZzG}3@_TUKfIXNXc%G~ zcqU6tWOBxbp9CG-C$K7;_@pQz;heXze}g5breJAu;sYV=d9E@qjTqCylREBT;x-?h z&3%EAz|^uMB#dNZ`NL6C!{b6#p2vd3`}^8=KRCX-_@c5TY93vd`r037XBRhD(K7;l zTQR31P_v5WXhd7W0HQ1v+Qq~d@laOvN8}v@A?ym+LiPH5*i}h#)n+-KnoFi>bdOEA|2Q<+#)<+W=#VJV@jP=Zo4bn{;dlT}RxHRz%*;3VY1xxv| z;KmxCap-8ve8(0;ii@QV$QpxS*Ku-iRE90e<`WxrF(ME4Vd)R)ciFQryh%x-Ht zCZArOLP_Vitqi_Bjt=);)gd+f-Qw z%#=(5u6vYCg%AI0ndaPTcyTBH!}$+?$vfHhj+1R< z$`$Fpl2?to6Xb@f&(-Uw*B|Y&hUCD?-|w1HK1Pn!8QEM!ePCQ8yhDr5`5un z7T2usIHK(;3N(nOZJo2r6=1g)`m2_YuqmphJ2|3Ung4!5=wM@9|H+>_gUmSMZ>)1i zkuxV1e!SD*m3zT~j}E>O1(b)s5I6-cyKIWr6Sc6-!189+`xyzCT7tA;!cabzPUqA` ztbyC+<{)|Or>s-&pN5Z&g`fT0#mkq;Wd0AEshjKh|Tv z-LT~`rn=NRqyt@7f%Mj^s2m0zXSwx;yA@vyo=usFL~g zhI2j2!(uS?uRkp`xSvWi-dxgS5OBnHHN&n^1_L9rRpGvR8ASos3_}vt^eWeQ680mI zqq!v2x!gr!+R62D-V;@MQ+AJYZG5@uyK^6UN$LedM?mO2H9SzCI!koW{*|~Z%81o3 z|3-nl`C|X*)rNP*DkEs)Hu;b!W%b$tuoeuVm>Y0o&-AI)Gj{b7>~%-X8u@dhdLBwX z*?rvF0RU=F-dzxsU$G=xWt~U}A!^Hnd?6P!W{v8*fruZG7V#i!I<4t72H@{zz`3|& z2l66WaZzE~jikgV{dRUDFXp0^(n6`er;g-bWobV$(k~r%Aph) z&`&_n*1$Vyd~N7Ms&haP+#n4QXCPf54UlgTM<5fefrw>mQ0)N^>@XWp9w;YvAwW>j zt%8UlL9Kzg1B6-z=6T-GFq@FPFp*yTrAw+9czas;BnWFj-_`VimUx&L>(C$8qCFTN zzXv4ueCA*?W@J~_;ayz8fJ+*gKKP4{9i|r7HLk>%Vf?lD*Owbr)U^76aR!fnRMlGh z%SIk_$&2yqg63mjkUtb>p@+DZ6l|!X2}22sU1Dhcl`ks^q@X;9{feI-A}4e)xbz=S z8y=M(Ps>hH3zB1K=xZFlgMNR?QHybYo(}tU9O!cwm~++7C z3n=CGoV=`^!xeQ}>*^1}1zL-ZcvG_ju`;VsE|pfp9amZrSBmvF`NHLxvjuMm)6!=W zkkL_tQ_p!Hp8S)n(B0CK#DtMTQO`xxErKHaL;H2gn#u}GK?l^y3Ny}hp~Jc;i*M%| z>5h~$jtI(d+Hh(Hqcwq-#t`Omy)v% zv*OxIbmf(cTvS(0JOz-IvE#U)p0R_oG$8R@@u$QI(60ZYDo)_2S7g!32c%=!%~+=- zP9GG}4Zi1!FLbpy-4_v~d%|yh-`d|^2Q>d!-5k=}3GFWajw(&gz+hFlO5n^4F>v_9 ztV6XndZmPuDYtG5m4a3iSdh@U@4i&$gEl@4CO$1YYS9_6BwNEe!c;S05~v!G)6*-z4o9KE z=*mSHcVcW{^Zmj6MUBkv$BT9jL*q5 zFZgFA!$KkS{**q}H^v=>Y>^b|mRv|I=m2r;_9YOkbn4Jq>{_MAYUuWe9q%x~?#f8Lv!SkS_ZJnc_PPLOL>kitfchp`1V zugK2d+5FjhLAT)|^@wRVs?_%vd4}o*NS`wVuSH53cc0tFfa;YMpQ0SWkTu5MYvRq-3tNrQZC8?NY z`EV?0cV>}pT?Q^Z)Mv@ow3VIU#FWUA`fBYda;k*IlkU`C-SqTc)iqO)8%+mUa}%C! zH=U5$*aSMO1-55ZUH6y6WUwC}9N!vTsZ^NI)80_*Abc}2tH!|8?}T1#z}eMH`#F&I z`B>KI%oc807r?L-Yw37_RSy^xg%bbVbB)f$%MnadmojEBJ;W^CVPJs7Miq&t;SXq2 zsg%^gT_G2BPkk|A(!yI?(wC*(y~9h1@7r3S)UoctVb=Fsc;im@@M!zjy#xBk^UlFx z*Y{gnrp>07cb14-0Z^rt^1hSyLRfhzclV~8TbtLcG>FBwja>7 z8;NP4*sSGPsk^G*K*4!DbUp7_z1pa)XN_+aY0a=8u9NigRA-Yr?>pzhy4&9p7~jwzfamyZ!5Q z@$~j8>MLo*M?sQ1DPuRum=%d8gBm0UB1saER@m177&1C@H;Jqo%{5*4- zPkdK-YPT{|*Q4*yy{e%{sUc^!achct^tyW0sPO~WW4fVB>0B{W9?&&cO)ME6w8C;wY7+6O+* zYv_3ndV3iWY!@ry)7q?nApy@aKRe>n>a2jlmt%DoE#lMqtbj=l*K*8S<7Uh!*ZN_^ zryt%2T=P2GhY-(e$~leNedzhIH?H<9L35tda2w4liK}xTo0YFV?3}_e$$srX%+(2! zZwa12gQW6NOifl^a0|+#Oc-e#9rvy7M9Aj7vs!Pm>YSp1bXe{7T)O zyFbn&(Dhtc_aNkhC$uOI$@QWbIJNJi=1h?>655)-Zk;`>T7Q?R%LABPMvUU0R$iPM zR^)~&ID!qm^6T{L^!W7lOXFBti#aetnDmI~y*?Ntqc;6xoBlV1Ol}pxXY3D!EE~HM zl;#}JGS6GV@Gi1T09;0Jc%Ju2`f`@?iSM-Qz%g>xW4Xt6k7T{4z7CW1KNtYgF`Dun z=kMjol4rQMV8(2KD1qJ<+YwiH?jOSz|K{<>hh&q|JqE=z;`%i)E2CLBHsTj!D{fAQ zlSfO)Fe(N$nZf4HRyvy{%kaMHWlTzdF{{JGr+Xti;t|pGc36>;-Hj?$4eA@NX;UMD zm482Cl~HMn2C1B8ELIxe#$g!k0Dx3tL*&$S72M)AMG7%Hu|!2Rd+2w9jkKL$3#P=W zAY;mlc~`Lp1&aw*1>hZ1ziMLXLe-34y8yI8Kq6PDu6Y+kD&UdjLzbBcf@wpe<9F3v z3*lo8vzU3qtC9f4!njZn9R}by+>RXZORFy(29W*vb>49Z{p|^HZi^c2zALHxqe@U) z0f?PV{Bx9POU9Zsry_L10rO-k>BVSTC36{z_nkq*@6?;vuQv$4w?%f3c;CO@6eb>;|^$&__oE@@Oo`jzd? z1ql?gXt~RR=|ZDBajB_-&-(N67>SYD4mkrfv8gmTmF^$z`D|bwh@tYP%?^w_X1%)9 zTShW>jH~Ng(~4i3CJcO~-q^`S^*3d7zd@( zc`A_}nN-+RC{)CRsoX@^Gp@M+-9gM*DaY1eCw1fxTI5QUN>0Foz?H(8USKf<2`!LU zCe4_{&#Su=9_lQ~kbXQi< z9Dj#PyztDiOjIizm|z}C8EA@KA1#*zKV53vs516lW+yBfM;sJ`yy-@FNF%0~NLPk> z?Sy}2LUi1Vam2RToT(gfmxeSK8t(L#ozk)!)A*nP7=Rox>zG+spl|Hm>5pR1LA`ve zkCQ#({HBZEbwD4$`85EigE>9(dS$PDP2k9zEpOl2fOB~Om3&ckm(la&Lu0@&hiwc?YPxPHo>+rvD( z(={9gCCuKHxb|22QMY4&9)zSb)5&X{WG%Vn#|*6hN;IddBsyt7CA^*J@#8w_@YO8? z^aO7~#L3^t?t0^N&U5BtY~hu{eOFqyH|RUXb)H8AbpWyQpZ{D9ez@#@__ts4=iE+R z^q(vQBSD__hkBJSLfnbIbCklJs=R{eJcnI9P2mM2;fy@?3qYOrQ+R#ZT~c~2s4u}0 zAT0#Tzx<$r3wS1{gGK|p`Q#F~)|z<3@Je4(d;Q~5UwaU22Ya=i+g+D`4b**B6G2*7 zQ29$COhwjptsyex{RAksGE5)2Dr>#cq@-SA+`{S#`DtWB8!xR67UpK0s?$i~DN&Jm=7%S;F_zIU}l3Uq|eq7TYu3kDOZiy|x&} zg*o88W&7%Pc1?F}643a&TSk7I1gZXZ;sG~t)E2X>;f{r#_OnMj^B`de>1}D^kVd@i z{zKgH=5`elHCRgOKZsQrE&>}^bjb|mPtn6G@9LS_ zwJu)R*^q1d9Y9BTSotTo&)3!Pq-MWo>n}iRI+G-uDg3Z35*z5oKNdMAP+1cNZQ62? z7)ld#hjBo;i^iGKHz$Hr%(ziiR8=taRR(`Y8N0mr`ZO~6@Fha>Qo;Y((twfk&{xoh zn_nsb>`emCY1#)qC5^l+c&F2EU(Yp}J;rt5@)j+6SR?dKUusiUo(o=0i(Z0d z;W?z@99qth?MY)ugCiwn6FZIAF^!g#YHaXKCVD?}6|x!NDk-X9eTTiT{=~f-|MqDy z`!Wvlk!691?9fNMbq6!FxL+?nop$)S7K=-3L$_R6kuC!E4?~p1c)GfMoO2?*+JxYM z%I}%=!NlsHq3l|DB!)jAppwVB}t3MXV<=I{XC1z*T zJ-i^(bNbY(o6NFVvNzPt$@0Fc_Q+=b1Soln@D`?(qZ+^P4|pkT5w%v>JF`;$*_=w( z(B0hq6Y@bw*{A$>4%LZQ_w*U-t0r2CpU(Y<5Blr&y>kH)V!*i!tMio5@%KdJ@!kxw zkPWXmdN{{d{lZsbA21yZ-E<$8t~drow>_gI`op9vkb?Ig$u0Q2YsHCH zKNe233rmj>q~0PHB~7bWzuw8~)A)`z9F2p=rbxpsR*%#!N z2IcM1hZ!*pSZ{WgNz}(OY{14N;`KREYEdWx(9Hsn>A{J%ER7^lqMXUp4`pg&;rcAk zvOCqMAtLn?;e=MWPZ-oFKJIk@Yic_u^AJ3my^7_SvI3#6HXDm$mpR9uDA7r#)Vt=d zLu%ql1avNLdK^i51M50kSVne5f#RQf+cc8RJb;pk3`+J#L@f&Wy+22*jMJhIa(g<{ z;QKnzhMnu~>@xOboU3WMlkxhjAJCUu37zZ9ehD{C)!WLo;b{p3vOQ}ZEv>F^D8C)O zBhHq=X!Vag@B~y0kcQiS;}|nc7tK1T+U5wJJ-bytA(7keEfVjkt(e8_Y^yx`1n0=Q zb(1YW1 z1c2#4*KfQsP9+u1XTcyknv4bS=&L1b7k*<aYI$TN1#zOiHk2JhBBF_z;VYBI7@n~Bqj`J5O#U*BjpC}`i=V4<3C zf%ban|I`BeKcL$FcMI(QD^qDwg8`r}BY);}%~dBsOd5*76a5huF~->&_)^VGC#-OsIjJBk{A4!#A2St?CPz%rm#@k z!Bkb4pH#WqXC;U2ZmZM%ZYG1{YHFQA&*%Q9p9j-GApUtm-FhI(hFS>Qb8Zxp`%XXo zrI-4!IIqI>A1s2q-oQ6^W27^m%rP(-{=NfXWz({V5mQOkBN%(dmD#O3xt{(lBM?j`Bo)4)PQ3L&lsuN1YxF=`rhD=rE?}VY0TW09+nv8t z0oz@?a|VmAb{!O8NBLYFK!N5Z-PeNVCEn+T<|W^!1e>jT9Ti}P##^%E4zaCv4F(~g zd`$u&pn8o8A)s>20wJJw4LAHsX7nDR)$+*9taC;w#`LlFKe#1+mFULLH zcXwLPtUMVq-E_HhNhF6#D9-@SduLgJZKHrt8u_En-iECY8-TO+qDEO zCGY2mi-YL+Jd`^4e;Qn6>Ax!t_ZYux<&LSXgf{q9T^2_bwZa0{zLQ8W+QM3D9HV0V zSR0BRMS`=`R$2b&d?rB%ENBge zT4RaW(!mIPSet{=gufLfD1aeYc+T8;&b--J25`ojMBZy+1!}p(P+Qp22!juOwfh^T z@;{YEFK$M=~L3y1rBm_MBV+B zTvzKAnbmm-D3#$zP&IZ@>|61agH`j0-^b7@s4mO~Y(fZ_V@2VlbnPI7CVwlvaM+9u zs$lUNG0=h&vPV7(4Eb~!7z=va)anpx&{DPT?;GL^8VlUrK#)2M_j)*s_c-NBIm4Bx zb%)W>NE)fJqsv-Dv+lBg5W0<TbgCU97~)Y#Kx%j1F~YlF2!6-TLQ$t}pW(yWc1AlsU(|rH zjU8*^AP(3rgyd9{H!Jt1R)jS6uFmhD6p~q?k|BhVOOS8f5(*o+1a-=|R%R!c7ae^m z8f0n~2`orFt8D1}U47%G<*f*DVS+Txh25>h)tqXlI_iOt1O72T4QLTupDiTF{hCc| zjE_3eK5f5VWB#Gp@S0fGk~B`PUtIAbRAr+Z{}Is<0*x2Zxv=^EaF|z+HKt7qr`e(S zWaPkEwn9m=bgY#kz}Loxm`!)Xdc4V|D3CmHtLmB59TCM~4%3xzp~T)4M6twQPw|5)h_5`3uPaogW{OUuG}4B&xZ#Fo~6Lnf%_VkieJb zw3PQ?g)VSTH1qyZrMfy!PEN_YyG=3k{}D=gjPo6$4N&rdgtu2` z8?+(`(s!wrC!*u71r9;w-P4vPo?@sX-2FLi?M~~2k~2t-$|w~_bB^Fd6xb`IoDIUdKMPIM znRY&%rQR*a3K&L@SCaW_2clIUfu~)BH;v=_=fQ+Qsa{1Wj6b2Xl2+l#ua zCc3*j?`&|FmUBvY_e#EBU z>n6wEUW56X;b_5;y7`PVgXO_v?AHG7Nh8ib(0d-f+8Sx3mlA9>WP1bIVB+TNqDXFjd(`cV*tKm z-XNcPX5B$C&D=oc54xWSPEyDT<<_7*LK~uE=Ic)oPxxF~It;Oby~ zTJGY)ti)CRa@7OR!6#aG80m0?DSGv%Fk1lra%VzR*wRWLv4yrvYF;!G^)8;Xh$%l; z`msIp<2#IlbJFER?DY6ehlHMbYs%y0SFJMNY(g*34SjuYGN`lAb(e;YG}66_>)Q$) z!o1wvvRDwNO~KL-&Z;-(U1rH!A&b=lLY?w(hf}1F{Nuz~*MbkhRu05?(KosZKgYJj z%nJkn@gEuF>w>-GKNt{@*zf7>|3B=P@P8PhvUB?{ysrifKzq^UGnTdB>HfYEK+7Pk zJABK&6w#-zRS%PF4231>O3DC@nn7_QiS5ZMKN;2O@1Ty7TuIs(PK6Lm$_b7WVi>EP zSX)>oX)(u6WFbA*XpupmXVWe?x5v$S)cIrz6idBoaG1NA?{vFrJKFO6Y}j(vgZ`<;j=~J%Vw`LdrJuo1L@>v`q_&G1aH{nTOVqZ`B zU3sg7UL3F514uZJ~pzlUwI7YBChS9cE0b8zi@Ebpfpc~{Yn z4AH;+FIWfkp2Vu{rB)X?BFf*`=t|kbFR<>c;G-1^{=yL<*oth*N_oQRQlg-HE+;G% z)rxgdDdxuoipV<%!Q-rzg}m-EK&Bk2c{J+fTCp&zLV-Yt{4`xvSi~G2H@PAW;nXTc z2nM;7Z*ifrMU1c$TjN+IyP`^Z$zLx7yn1)27c|XW0~TGiQYn#?pB?5zO6Kv6=roPL zS6Umg(BXz`>CpT^sp*tTH3#H0JWB4Zl*?60I}_t*wvS<44A-hqo%H zX^2r!+Qm{B79zxeC$^YTpTYop1B0n(IyA(<@FzOW?_73agTbhn5W`LKnNrJboTx#u zs?x>Uj-D1f(E;|B^`wLNRjYtq{c~(#rJeWlHc|EF=pBo?SJ{AOAKx4<6gbUYN;k+U zb!n;h-k8VDVch~E;~*#;_J_-VZI6?Cm#MQYB?FkNhW8)Bsb;JYL!w9h4}RyI3mE^7>Q2RyL@6<=UNXV{ zFfAO5X=K5rp^feu*RNQ`z-3o2L8E#!AYosK!{6Ivi$R4lX)pJ-;dm%3&dy;d7sx0tqSIVz)Pd2~#d2bsslHJ}wR01OEp9%$#m zjm8=v3DN)p&i%>7vk{0U!nknk^ab>#v{o)!xOkehc7;M~XVd2Rj77DRZNPuY4lrMBhg9i)t=GN~8l2VM@ozPP3J;bL1Rtb`{QYu=Ak29ie&MG(7ESjcICb z{?KLTcXs}Y{rP8jo@%+xM$x<~ZkvG$Zu~*JlSaI416kR;B4t3G0|o3VFE)G~2TOoy z!S=RUuvqB8=k>9D4b~0Et4q7T$3fp^+1r5XBmw+eN)1fS>wJVFkAIIS(duM0kAijxn zJ%Y=ISNE=8a=UEM?mX!(Ug55%fJ_gU(}K@3m%$fOQ$(k^*|EYO!H_Q4`MGi(Hwki{ zVSyeVn(y$z$rOhUgj{Vxj|9mdS_#-@kdoBwgRJtFpFyngMHO=EnA{qy#7?%7mQ(oF zFj%wZk;u^|VU4*%b%s4AVm29L7W%cj@XNIiK`*Gw+xnvFVNoi@FM-qN3$$6p=XSry zVqz^$UTm@FEfOD38)F~uPL-tpPK5mXkY@h3PF2I&l{J+=|ASj%rJWBGcJ)3C3nx10 zV?cHAek3HS_ABC$Mzvbq<#3Tk^%bfTddA9jd*R%}zRTBY;a-09!r$b)YZlW=5BF46 zScJLfHmu{_ymk9Pf%WYpS)yYZIy&9Qs+WL=(a@1~LoAdO+tyc{>}h?hjejC+EGR2) z@t2l^YWLC!qc>$4A&(?yS{Ek`8Qd}+cXmPG9;%z8X-;Nc@DY91Wie92x;)*bpRqG~ z0V`cq#=*o~KY3blvvq0`4K7x8A4MP+WgD4|cBphoY?#A#pRBM~m~ltAQ>Afh`1kAa zIbZSgM~>0hgY90)bG_O$Y6b_QbAHCd)nBip&4<81- zrPaZ1(-Ip#V^8E9X1}U@n2VdPM7CY+{KCc4r8I~OU5AT+XKFpVw@`(c!4w$i&*J&u zUNMcBk}|W@+i~bJE-{j%S^1~T3U(^ao4Rt})t{+f%24PO6gcxbHqv87j;=3P%}l|^ z%QE6i?ePYJ9IZu8C6)V^ zNnlhyqo`d%!~|^Us?1|vojr9&V__;_Jm8Lb49!$xBh~Hkkh=0dF;CM-yCFF$M8~H^ zSNFDBW`Q(V7jf98c}w#^=b-S!#_{J$lSYMl!6N-EXHuKvvu-n z9SpguiYVzp_tuS$Ad1>Q%BY+IPPdAAtK!m{P~Xm_#Dz;mRvxyJ&<+zMEfUzA*Q}5Y zOZ1$P6-hK%pjE;u1~aj#FLRl8hS6n=q!WwUgq*Y^1$4-hrl)$$B9~0u*=PEh;Vy!h z9cHpb>{^PS1+vr1npHJi@DdM9*oE#J{d|n^Kl0}r5X2v&;@KNGt%vaypgng7%zal< zpWcY#tzSP|lCODkwo_DM{mZT7h-=y(NpCBxIUYFdW92>oAGQS$HC=aP>Mx zB{>}DJEpo97L+gIy9V&{trr#EFx@1S<=)8M;Kd_p%43DMB$NarQTXI3Z>HpoR`3n` z;(ykt)|Zk#4B=C{dMnW;HQmAaQ<@UKg5vk0N(n+8FsQYy5h!U9GY4c2XaI@7cp-hf zb~9Hla>&^g`+Xy_=ryIpDfD_o-oeet!^DM95XW`64d%-+z(C?|HbCI>{J%^Ym#`Ek4eAgQ733~fX>%3qy zJ_JX1#SdOm*SBMd8RBy>Qb%z^>s(N^7yQ+k_%&QR`RAJB8qW(UQX8Ts`0?`F58z7m zTpvJT4h*Qt6zbDbXjuFpjcKcXQd)k*_z|>GT^tN42r`QNfcIzz0}P2&qvAW^ zN{$|u*sGAI8ChR)j?Xi>x{wcWsEgq=w}x`wXBrull|-#^K(3VCNjGY%eDBs)oyHK~48Us*ufiSV zKbO~NLxDg+ifq{1ZQbG;TbbDlihQF3*lcWfVz$~%^iD|@X(mXS>3}XL8*K*Wh?gPs z6rIbaX_SohcEL0b;~8PJg~agC|4Eh_xRHx6gKf+{)JL$9*!dtH$v_qMdw%x~n&IsU2&wjYqxS@J7x+efDEzu}+OLz|#%i z1tFoFtq1o-+^^o*-vEB)@p&)QHadfyvXk2qIjw>e+s!6@aC(~7uqc7b%?N5l$i%T-0-}IULUE7hHY5X&C z#?cJKs-bB-PWwsDMLV5O>}%{}Q@2Pj`7t=;S)A~hz^)dN?_Az@iw5`r8-09^F& zJNPrLhT6adp-XAWZ!zT3q)RoCdXfW@#=({ddfQW+XxdX8pg>L2fkLQRD!}@lyMlEs z2f>f$0PM$C_e9UBgY&&I05vRzXt+dETMn$HCptEu^_ZK54+VcX<>vS4+Fpw1?mDAJ zM&%^M+KZH;J-RfSSHnHL)VAS+3H4*_O~jdk-ma4z$fjFfMAO6IP*V+sY=a6DcSx5w z6Cdz&Ux4Yi!}t#;lTSsi(v+LS(*upfYZkb^ocA8_YdWuW7hC?l+?!FF1);2N?~+Usjx{y;ac=8*Ox}f2d)@)a!=0Ni@mh3Pv!ovnOn5- z?Bz*Yt<0h#fuo5wqoW`#8J|bPLccSXfh|c0H-cSBTvLMYAGig+BRMU(nkkLbNbzGS ze*V;!OLb&tyu<{9c6+GelB1hkOf-S@w_H4(e=Ki+#+)OmTIN6sLowEqJi~4IbN@-- z)3vu-9=q0JZ$xEqvN4^ryl3=?h4aE~EAdmw#D2HuJo8at@*T6Ue~)vD&dIo1Qd1>^ zr-o2YPSdEi?I)V9ldS3$y&{oU$)D3oCq1^Y76qRJJ|LHyhm?xj?G+SN(DDs+0z*yW z34=%#zR~W8gTVTG!3A4)EZOzV1>5voPVIWP{8|k-e-c>+;ydhr?BH{2z~Y^eKtLG3 zHCz8@2mjyMYySfV<-ciqvNYiIl@F8nDehWD(7Q~zE5_tRez%N-phWtFME>B6 zc@Z2e9LD<0sHT_KwM*SzO=yk$YkR0wHoyOZCWK?N+BEdrZf;(_&0e^=5a?8>bgbKK zw*S4){Mu@3y9;mzPWpb1yv+E1I(2`&ALYDXyVZ340ExWG#7XWg@@fV185!b4gVrX* zaMxaGt##Vn=^qRJ9!!}$O3$!@(5Bf*r!~lfi`-BMP$H#uRZQ-$ZZiEW%O^tPOuz>Tm#~H;u_i?OF}S*=+2Q zrMKSQRn2Zri)8<2F;lXJZc4b=!hEq)Cx^dIzU#`d0h?0Vi>JLYDT;xy3DJrwFf~Mn zvNg`GH!?&|Z|fw&K&^e>`uD0I#I3v&z%a2j)x=L9P`QK8(Rd7eYG(@iKnc;o+$|po z29tS`#7trg*}+%Hm+C1m`(r6%6AoXxtH9XV!e0#`^02PbgC1T@2rcUI2rXvlcu$$$ z6Pxx#`G%HN7hGKGpR6xq^e<-TvNnIHfI5JKW?rg`qcF&Ax#i(JPervdKOEvyVuc`9 zY_az1Cn!6~N|Oi}DVZK$>8snxL%wcOvK~g%T%|s#3{S4cuJL|(@<(4Odh8(agC{88 z=h4n>6Zq09N#HTk-}+l3(Fv9Uda%wrh$UQ_Fug9mJoG z$=KTdI|;^1-`id+pd$6(r!w%2T(E*}e+H}z&-xdTp+_dNgrICXg z$RI#94=z#~I9a$9?^{)$3&S8O4CeQeQd^B}boJGupb$2yH0;UspgdL(t@#TSQqST^ zvC7oHEWqF*3%*bevX!eC&-;Ur<9t)97d2GSbn3kGJZQRMqtn(QL8YeAj+Nzzc$$kd z2^F(nH$8fMd?H$r!^>Ymnfm6dX3)}I$dQ0Dd|DK8{R^j+Ykz{4Oisty#P$pZ3Q*b8 zO|#bOiiR-rvSh=HtgLI$1sz6csae#@ZG%aBW>It%RV84k$OhZ^>6pjH_`Sz0mZI4; zMRe+13YCJ|64cS%nId^X*-pgyqLa;mi$;yIDJamDiv!JCAQR@Kb%v}Li)=g@WV{kB z-9e$HzbOmQ(hYq~1Z`r)-Ysdxh|}sahU#B3Bm%0LM-U+`1Y2xdf?CeB)^kG^DY@us zCHV$hWYEbnumtAo;m?1OtO|Cr@NhOrUrkeWdEU--%zFWpNPj7K1mxw4@h1)-)2(=# zr(j2mjk3&FG4s6T$AjU92eH787ACJ?A`yg9gF)X_v0#fx(I)ejEO{nWI|hl;@Zi*I z=V5`Wy1LE{X^N1YU_@QyxK!vGNSWgi2hCxgU0x(_xeyZC&%1>|h8+yD_k<|7-Oa`lXZh-AD3KpYQ3_ew$<=VO z7it4*pc81jWz{#h%C56?-hok1J6+BgqW}UQjp3SJ%qK52qM3QZ{SSb8KM6BGh(P>} z5J0rQhUmGPa6Lg6`UdHbb8JJGNwps{9FEBmq3Jq3H?6IFs~G4 zIkmqCevbowiOurFxRPBJ?;hxpCLIm_?MB?J>!4+ygtt=$1d0|9)1t-4O1va$W~Tu< z$s&K%QAUz7Ghm+CC(;Yi&cQ)o;G7GP2;t1WMY`W|!^7MOBLLimyB4jtZcbDi7V^>^ z-Zz%_^51m=l~;^Px)F7~m44O<()c$;++XK2o7RzX^9w)uhSlmCK6`i1B&c1soV(Y< z(z{%|M}ajqTg_vo4?jXGTir{a5M>b)I_BR}FdW9sK|>{T4lY17m?K^Vn*czlYnM1{R z`hB!P^Uu@yk0wde=*BTxoYB^lRVB-WtLd-;_bkr~N?ki+F`Jc_ufs}Z?LQ238i{}F zy-VxByO?$Q+r27h*7g285ieQWgKo!e5|Ma(vIQ)aex{+nHE{v44>l|UY5^9T=ok7+ zCf~plnjRBjWbR%xx-p|AIc!Dy{LKy(g)w^XIP{D+w$tV3Fowk9c7$an<{mYTY7n2BBE%MaV&(ae}F1>U6;9AniF zrE`73L&r6Ttyc1CWQDi4!1Qc(b+2{Yf^|K&(}h!7N@InC3gR>3RHDjfk!&1UC@5he zUxf@ntm5tRFXk9!(dMjc$IJ?BkX8F&uhG<{OeKgrthMaBG1Kf@G@x&GM5YoiGbNIW zE3kMGm?ixpuY3`Et_JkXOi^MHaj#QV=QA(#%$zmxWw>=;#es(+1|uG`%)3s_B)$VW zsP&Xx9Gs8StdE*;WiHa;2PO_Ey@!Q|2IESF|6xfuA|mmLFGtC$oob{>$3-W7xKA}u z=uB#9gyuM5NF$fCerPzEs*k6=u`LM$#8_sTu6xH2x_ieQaB&<&3r=qH->4x(OJx#F zG_@TVpA|*1TojYwyo_b+Sw&9Z`_5bb+RPYWir&6v#JKb$^Sjnag>-F2<%bfyzk@82 z@gMFU+|KORxz97!xZk$=`vyL>Z>-fwRfT@>7X3K@$!8cPp#K*NL5eFQ7YQd((IuZ) z57lNo0K7<9UO}o0+*|Q_l`9Y9Ha7f`_*Efa@WSp-Rj4`s?8TOWpxxHb19xfbD@6Y( zEnG~{j%9XmMEXo!T+lHq0??FY4)B-3htHp_;a;rZ5W3qMaiO_!7PCKP3^Zlt7swh)KMs4R_zw0dDx} z@{YE$$PD*iuWhdArcK%Yt49WWNje$6f``zPC)kkkCmZ0C6|%i5Fs65S9qR7M50m`W()mnv|W%7AtNNgJn z$6u{0(E6S^`~(W#7#b7nhpwQO;U7x z{~?`jgVx7i283efTyhn7p%@U}7&U#^!omnkOl*JefBn(}j|Ha~&V#=NFP39$mdl6x zH@nSAAXc!>G;7lmEz;xPhlQ!EtfCzx zG%VD()yIa|<65VYu;b@tJEY!zr9RG$)cy$oFBmYbhn|d5I-ZMnP;I0$7sL!vi>lR; zrGpJrAkUO;=8{u^(Op zZ*+QcBoKvFtFWv5=EhJ7(JcV|Jk)7RyA7FE7=*DdOisD|eLW*yYtkk#BCzfyd(z{2 zNSRW7WQ)Jyk<57{L|Z2~JX6bYB2abaD5ZGdA4{74=P{ZcSd7k%Hf33Y8Qn!yJaa7^ z&}uE34$FC=SHD(ZP^}-M7vo__U+Dt)1GHf#Q5L|;b5YWEp-*%`oxmRy^84=Dzh5!21UVgS^^ zly)>#|CZk$kriAKbu1iam6bC1P%orzJDChKnT+vSQk~EX3Kr8(km0B_GDz)J3m#^y zFG?CC74rQI`z`(VzaS%7R3P-mj_9`Jo-1BP6f8n{o}D!ACUguJ+2f04V0`x?&pUyd|QqMPtw~|7%L7g zh5>h9A36!+205{R7D=zZDQ0WjqIPiFzgMGY)WEu>C=AJ7`&M(3$sH}_gpMODqAbh47ESQn{$BXx%>#vm;DeHeyy{Favj<5TTZ@PCq zvnvjn68j2{SdlF;L0S=_FD~^?BZqv00Yv@df`#nM#f2Q4f_$TPy{xg3lGC=|Gj?jG zRh;w1PE)`Kyt%4pMmJ{u^i~yfBi|QDeN;DE8PF1yB;rE|d(TAiCBAallNYNiBKt&T zCst4{Jh+4YGKbwVfYw!b;7oMX2EZ1pFnQB&UdH-Ya0;eYOS$v?HL9!3)d(P>{zI`x^t`APFcxu@J4-}ln8HYx9^zo zfqAf=q6o?5`BMrlWaaNi6*nC3WHm*Xt6BMH5tcE$r;%97@M zusc__)?4|67fFTW@4Cu~Os_5dYb*2;;z0JF%aZY}KigDmJ1DJapoSHlU)c5-QS*m~ zC@-@-_n{JfH+p2x9PNb5QrB0aIerz5*2NQziVWVLU_PdjJSzqob1`3}y+)8bch0>e zozfWc|7uCN-pSuL)bnHPbo1vca7S`~_p&Ij>AkNTK*uU(qi|U~n5LEWd)~WmM=i~} z$Cc758bu%sFvelyZ=qt`G0?^}oy5uZb^|py1yWg$LV*XoPy{CXQKtLvhlN~URtcG3 zHp3KmP4j&XWVFr0-Y zBtnPcl}= zTz&sW>cUd}-}R*bj@2dp|96BayW5*M{bx^zO|n%Yt|;0_#VTpWlc|VASZ;0@ zA-GU&affM31D_7?^mH}r*_>kxn`2mK(l)=e6a1G~q@5tdwwQg4*WyOJL(0vbyX2=ilovd+E>cS50#HWeC zHQYJ*tLNaR@-y=}+I!f3Ni+k@U2VUD{nb&YXXt3fitS)~p%U+F8 zRY-z0K*j3oyg56HMD#gDu<{b%+}P8uLImf``jaN>_e;E^8(~O?C(%4@q)S^Lpa05V zK8aGL?43Hn%#GD4md!I1hl#z$jeY)PAF@q?u){b(o@Uf9ik~8l@PANL7EtM=TlVE* zoOSna!EAx{+Spi{CK8^1@#v;-N?j$!33QU@FjwiFyUZ=Ek1`2h2gz-zm8{0?g++~h zR?v#9E^WO)1N#u@nd*7>JXSH{?=dzaNT(}P1`6o;bk@uMdZ&qrrjF8*%o}-=7o3il zveG`eZ{V>ghS$@tQfxGGnxW_-4*uhekBh(FO-DQTW9UFOmXmZH(6`F0|NgS~93d|r7kMtx+6~(CO87if zO)aHe=qY2XFFj)CfL&ZqA^~FtPgGncoVT89IxiH=T$|6BQ|Glz^(OpT(uY4(eBSdZ zkeAZ>GfxI33T!-itrb6XPE|gjXw*K1HY)qK+KmWS0Rmz`PM+M9pbg}th5Vpjc1;)Z1 zsHsq1;X&O&TyaBNp)5nmmlBcQxXZb^q+e)|kw{*JZ(t=^Cz>r+=)o)s2a}$)`crQ7 zCtqV?iVIZH?QU7Zg_OOXOtI{rWyn7T!X=V8WTwe5i_?j8#HcO5*wtrb{_rG4a}HuM zB8!+yYDsJA5IHS)z;+-#1bJ99uOA7EUpQH$r((BsmyBu_12@X~XG_7?n_h>~mrxNb z$n6bLW=m85fpw7#vT;!3i0_7J*HPQs^bQdTK9x(Yl>MqO4q`S6!>(&$6~%dznXD}{ zGpClp>_QxcioQ_a&|=?`ZKiff&>H_sQ+0a5?HpSkzIH}#BGEJO+bm)YJ2`2(f!d|T z*Tt{^SQx?qE;pBG#Q971Us`@Y?G^&>zTJJdqDvY@vt;ar#*{0bO0O(A)7PjVFwfJ zeYPhpZ*aT37{-weIj+FH6)m)Yi=N$BxD@R4;+P*UxvMVW%DU;gkS@!RMa<{~O|G#(k0< zB$iL;XXar72;V5C&E<(MfEwVe=6*@;_j>Y z=nJo=yT#+7YpUYPt;@q_X5#5>>r>$R@hh+8E4K5)_q^&Wyydeb`)j7t%V+u-V@J>9 z#^>6v5eb(^^x%!^{bqgNbj8=-q7Bh+Zi{qo_|A*W^gLzjPq?+r}16RHb< zC+dB=duEHWQ%uhG zR0eN}yuB0nk5FtBz2VIR1p-2c@_&co|9-Ud9j8HDEgYR)?40ZvER79~SQ%9R>sDPz z#Lm{%#K_sg&h|eea;+u56FzF%+a zS0Eub(%3bIyutk1l189vN~wcvKM0EBd&RYRlln(m>2p)XVD}|u?p{!RP9gQCNF7+h z{}*519NbyAZJVT%j&0j^ez9#Q9ox1#wr$%sI<{@wcJlh1b6?f1cklbEcJ2M=uG+KK zTyu;)##q0+02xC#yodc>>2P#*-YsA>WOa$6LETrgqf7Fa)ps$27Z$xb%PxK}mi>%<;^UPhX$HqL?iu`JHY7$y>$n>TATC`au! zl^V7T+rAQT&TtlEw>yUI)<0~Rgj_ zW+|ysrH`Ac@UI#dF&C1zC|8X=u7E5-be98QV@9kgkI%N_aitio23aX>DIG>GVX`=< zLh^LOBUMkhTh{ajW)6QPU3#JdP-X))8Lj6wi0q?HlN1S%60p;EQJmLjVI~bQV!fvO zB?U_rs*9HAmL_3o6&2Vu@+dghIKyH(&*8Dm;T)_V+}P5Ig~c%tZ#myi9fUVTME=xLfm%j*&gB|^7-Q(Y!%oLA|YCaR9m{P@ysbDl-VBx(?5xW zZIP~}L7CFTLOzZ#9uI%L*R_9y&51@+qwn#*>Bl;d&ePB7G=4*`U$VQ!p*dH~(ptdr+ zH^8HsW~$u9Y2X}fAyb1-)hl#58?KZ(hbR#O!JCm%lfl#iuh)fXx#9g z(3;_Cn|zH0feWIKD=u$-BtNipe%y#pVAw{oI9LtIkVxW17iIVi{$So>BPLk=F+xhT zBe1r?LbBRh0iUn4`|mzh4VwSU9ux=&4C=r4vHurR{9_*z)_2lZvUPSaH2zN?OH#2` z!&X7?v4Oa#w*l&xDr&^~WqB_Mk=(4Qm>c^u>Zc^O@ZPUY5_S@&RT=gS`A>k)t>q(5 zKfodSaRlIVL;fm|)gd810&SpU@-&s@ew5bH(D3`~bG!z~W>?-1zQu?JW}kKgZwPlI z>89IXK>vgP#1je)5moIuNL{fu5|t27TpiWZ63W1hg1A}_^c-r}i(;QR51ENK`8F)F zFc4OMCGkf5gq9GGI&}yck`i(qiPspTU6&>NiK*Y0ueN_DIt?(jBeAOav>L3sw#3Bg zy5UOVHI#d0{|-6r7=f*E*Kq+)^4wJZL}XwFE@DXU(2i~_zeiu+X@o9QK%<|cpJ?E! zW>~C$Q(4;_l9F>C_taGy$kJcGy&8RjB~W4&!6e*4d#vYGy@yrJEPa7O+hLGAxw#mU zUR5*^o^(jn{U-&fTk)1Pn@Q^oRHp*v5vK*C8tY?b8M^lv{sm3N>qpd-n8;6!x{0J>fNAV2Pap0yFCmYi`T+iBK>X2ohtjrGQEROd7*Nw+D4 z6A|m`{aS40{!~*4ZJJ!gqa~yOmUC+JLndul1knCRvfrFlh)N?=W!P2 zY)jXcI5h>tV^`S4dxu5{X5lxtCSQ^Kr_iz|S@UfS%gqn5G;b&q4BND3=wx?_Y|vn8 z)2sdB0@?RW{W(aam$Knews&B6Vzpc9*^g!HtSx*nnWWm=ekvV+$u9uraVItifI+iV$4GA|vt z1(U=)hHaIYe<68=tLp9t^7d1|fuK2Y{*3g?+4=h6Dqft>lfXTs z_XZ)PQ}z>}-fssh30t$6JEsGiJu?a)%PvUXP~#H_t@MEQi>Q^9+m59lHa@}bQ%EW$ z(3NxpG-2m^d>4^F)*mzm`$5ntE}M5qJbf;5iQ&jQ3wQSK2V7*p^MJgCWQ9sC`idzR*bO& zu6BoWjZNdPTx+K0JsV3kL1fHyf4|1sx+tD@oAc(YE}P5j&44C^v#;;PBrjCmv_k6M z;|<3v!1wFd_3zB@v!rXEF96Uw<<%fYckb@0h1HPb9F6#WCkwsXEfL*c&0WPU>0kG! zF@0zKTT9`$_3B$V_h)qQ_Tr7_-Ag%oPYhq|5j^Wh9Q8(JSg}qDuI`=$V!6eLh$L*=C~?$SNc@m(nI={Z z3oF(s)?&C$%}6pQS^U{ynLxT|lowT%qInbg{!6>4%p!M(sE+pWV9JRHeg1)(c~z-R zcAIRGujF|b!%ev)HbhfDxF>nEleE+G^Ak)ALTSh`r_!i2Tlz$_C^Ddba734QK?52* zq#c|qxZS-uJGt2v?&0wNKVZz~-K>*R8Ceb$}7I1R}5w3IGQ0fKdDg69X%C)1%0 z62}6MSLrnOV1v`sP2R46WlMYGyPeps5yHdgCNVN@7x(5otMttyF9Hv$wVZIm@OntY zsoUKP-Ih!Eq7+u06?YN|%X4;kNkf}5+2Yrq1*40jCxyRqIZ4vUvZA6+rL1VOg5f9@ z{rRMhXeSuVG-Wzm<~JzIgWL-%2O{hoHpMm?!%-t8b3+TF^zmXcgR;|84!JoFLs_{2 zhttNm3A`{l#HI99)Afc^GbUu#7@M4^=6f!*(>CJlNYiJ8D;RCot3#XzmKdbOsf9#B zFVliL@b`RX;@Q!_Uf_Z`SSm1?nlU^C9;#q%(88WB$V*duh8Tjf@Lot&GY7k4P;YZV4P!8C}ei25ib}y+(EM zCY{!br`DM?7};?~9*b#>jL0$#N9SrQG~sUHqME0P_IZj@B}ics#kaJ9cZ#gm1BxXB zL2L|QV$}3U!g+I1RMx8I(1w6yN#^rF)(bLGkKaVBm@+G&q*i4o2yAKypq5CY4~e@3 z0@V3>&pKom;vv@7y?$D!X&Adt6@ZrEqkta?@HZE9byG4_K^y>7#rSCWo&Jk2+r8xgo1cFtOvA>*O0hq0EV0)JG9O1 zEJwHLIDcucF zu5+WK&Io!{JUnKUJ<1Q8K!pew>2=FvF(Pn2R3jv;S2S*NXzM$xWw{;4!Qa3zWU3cU zyV0gbi?=1+?4O&AY|CRJ2D{ez^;#vL5SbRpu7)BqZ|q zumWkaKmqq7?>32h6!(l#YGtUAaS~k!lkyQP-|Dur_{7TCe#*efa4Gb#eyBGy&WD^( zdG&rg9{5^0e#mNfUBA<;*x!&H5ab)nV~nD{cH}k^{?L)HG|>yiBCz&EhvAhSm_wfPbOT|61 zA85@zxnF3Vxpy0B?G-<4zRuCVUum7We@nUkLWnoLHgtV(+hMiu+E2a>SycD24-a;q z)`Lj!eM=q)IAZF%c(wF@|M~R}#5=7|_R&*EM?P*D)wpG~B0 zAUUb?w~{;^-zSuE-9BKOVWP2!4edZzD?C;nW(pA_umoi_KAY{q-s z_YLgCokDPZ4V8jMsM;&N==_8qUFyofOq&!cBe1WU+HaTmLvoiC`0Jg*XBOm{H9JA~ zgV)0U9L3Jt#qJzqpuL63rh?$ywrioe_R4U@0nx8+@9A;LMTaK_*1HPUR_hOJ74$jY zpy=*;f*34J4-3wwT}_8m3!Zpsd9kMCrR zpyOqBe=>vZngdpP-;duf?p9Z(-c4*@o*+~e6|FAdW7cjhlfhiMVX&z4!7+KItFAk@ zRBsvTgUtBt5om|cYkf$smy6XG!#B77^$(!a_6IY##r5DRl%5GPs|bAH)e`3^3e+Z+ zZiaZ1(0=nb;9j(*wNyLMIdwgGKG}Q`ReiwtOKaQ7Vi^uUW#&2}q;yk?q8_iZCgf~) z6j;*60SwJg?0c+fo1^~I2IENvW6hpMd4PROcI~nqQ^aQ+FT|LMcODV?`;OzfsCBX+ z(k`Bu%lj3^koM4FFUN-M1_JXL?`Xh+J^WkhF7Fh`-0zG~6e}XWAPOr7y5J62=ZKGX zy;ivutvRLho=7xQ(}m((56nd;U!Di1Gv!R4%Dt2><0a2dqb?zC@}7g=2@;I390o^v zEt~!=S`}cQHq4lwt){T!*6M|9dvGr<-N!5z*yoEp;qq8;FE%{TwuW8xrf}FG-K?ex zXw8!te)g{iL$8& zy}--S-Pa85Vct;{JTWcPjJos@7mH8_=%;HNk@k&^zM*^;$Dp_O0He_O8e=-!UVX{1 zmguibR5Cen=Hx`YVdOMK-DadC@Tw!2t}CG{+BdB{+on_MP{v6`8S6^hqr1o?zCD-dsWgc0I#t*+UfSusOKvv(W?(XObuk>7Ph4hb$m?Wu|@m#j?et) z0?6^kSJsdABz(@QkDEoPXV+!ct?lkBW-mXU2yZ!^0iR?$SKV0|fWVV5O3z+}$IoYF zKPkX7GY7%4MZH7!Y|k`LG^@3YWW|AR?{S^&i+<1%TF>lLp%5g)5ae9~X-kjPT<;yypN`PnG+?(6 z?29uh-l{$3%$C`1weSG;U6tF62Tn(ulBWhzG4~0F#CK|rv0nVhf{))_d6GV-O%{98 z>akH!u_1r28b~I!kxtVC5V#<1_eh7+Ida##T}L>`GJG+6-7?`VJvnhx>z5?p2FdDp z-GUmVx43Kgc79$QlX7^CnMqr0@{|5$h)+ijTY#j$-?-_*lpUe*GrBFWh+@aO^ySsu zWC`fn1ht%bWe7JUFcwx_`@zf+`-}y3NfzbX!(F5{Y0t?o_dk=bYvZ zj>I!iG!eyAN0U$HsMEF9FRx5kZQ8<7&ROfpsPx{^$J34g=ej9TxNh)&QTh9g@JB{) zKtLUY{{&nK{sFj}8~tAf-_j0w8TCt5(_HP&pe6{mnTC`MfynX@1A!3K5L}wU*+K|} zDtD$)XS|*^mUIwpp^$QB!MhM%bL|1xyU;mdCS?6CF>}RP9ACef@4e)6HtlQLiStr- zh=k|(N|I^lDvr903syACLwNJdQ4_~(3J@~)FUN_hL6-Aho% zlC;j!odz2Bu+igAj(`TJ_AZW)2AWsygcMY-UTAzW_j?gA-Mf4|-J?l0l+L|DHTz^C z@2Jt`u9u%v)PG~PY~62xWXoFroVTQTg^X6{fZl4OZtp+7Q~BiX<%dgA`IPR7;XDj` zCD(c^2ITCpqVhfNnWie%r7ZHP)yWN>(|81oW?X3lLVxRM4bdxq#LK;+W_+cOHimDP zzR))GDA|elb0*?qv)=OrAQj@R!Id=pFiCHTHq>s!$6#g-L)=m$We&U0V={p&OlZWG zrdw-sEoLh7DhbppeQtFh%QPEL*ltZ5DXC9uhHSVrv#9MltOa$42T0spWr>qGR^pT} z3-S!NM?2T8WqIuurjcoMp_b5En*^`J!QjY|-Cfd7OQ<_j*pkUUqyg+1yy+b98HdFx zYp3L)59L`iCtOn+G=)06iOST$kf;yjp-oSSy;H>RG&ng~6D6Y=;o>R+ljWtZ%NEqX zj9j?aUA*iF>Y6TVyEeJv{=%xVkGv0cD&`GYSyc%VD@~X!)f$XoYN75ht1FfQhmcaF z{JVSw<UPiroSwD*x)+d%U426{!?D8O%m_MY->yQUmegLBN@+$s{D-n0E~*6xqG`T9IXA1>Mq?lN%;C9C9D-( ztgXIvX%ki$!@#%+i5V&6jZ9gS;Cte}i)WTiu9M#lfon%|;wdoVSBHPkE}hojca!by z40g4P5N-0(Y4CSt{Q!2vivD}PgCuae#@|d@WT>ywUAY&>*LE|!=@@5*z~@%+oCQ0e zX?gtPiQ8L}miO2+Npf(&AIQFLrz6tJ>d-OP5>e^GhO~n@)uwAm%g_Om5yH9?sfy7b z>;}=7Q@_YO&1{bxMqvmov|ZfPUT~aLeLucq+I`yWKq>DKV|HE4de{Tz_g@bvVD+C! zdTUy|6jz%~-PlHH&7+%B&Rl9ztDzbHn3wB0lj`N9;pc(KtHGFv4chTF6~YujyA5*J zMdKyX$+!Fg1DB)i;)l!DsJlY0$N}fC?AsY|kXNOpAH!suLzblS7CR4g=SE0xK{H{cdWc+P^=Q`&x z(+Zp7xCYS!nZj+|34JZXZNA~(LhtqCD%AH8>sO$8jVS0JqH?+<;q1_;C8W{$Df4iu zU5$KJyN*rh8)}Y|`%S{UK%vl8pr!fS_>s?_h9x^9W}ieP%<~`}11*J@^3)){^`s&3 z=~r^Ux&~F*9ZJ{b3&&^DX!RCpmFKsUnCQTw%XPpO8+qC*drJ1MDRWIke&00dzvq z;WC_s~$Xx*&}5rT*n)U_-eS9=7z@mKP7%H19pCZot~>{ViYfu%O4sj~~tpby$L zhKn?3`)`{>OP$CjM$TEi?*p)Yn3bD^%tChlo%WOYgj)*~?Cqs;)ClDmg7WcbwW68} zZg4(RRy6Bnk{kE%_WKfQk*{O+&|aAe{QGnM^NFpGo_n(erpur1o(PZC<%M+e+vlzWdh_!Z z_=`69kGT!~Zty-_ne@5K(efi-aEKS%ev%CIDMCpno(qU_w)MDX)Iq!agvPR)+h-5w zu=LuYO=CXV$BT!{Dmt4!L_Zh1pUOYalkuFm`hfk9_QXMnqzUj~!3)-ni1{z=VZS^y z+!bm7$Wbbw2Gl@bj~19Y;L%`MCtNGSy{DHg0j_KAHjwO;4|VTEQ)aZh+y(5?!bTDE zGzt!MIpx+bFbp$?l1A=xd^?ekv zI$@P851~!sv^|AdaT~bd>5FI}CO}bIQE!G@UGg&<{CkM{_81v$a+qn6Z}uUGM>6CI zH1u|SQExJsFq9c-HA?_?9g}8!BB$(As5LU8}>dN4C?e)s!@{DSD$7%K& zN-f}G-C(nOw$`@7`BSticwgR}Yhm1F98OJ;QE=N(nCNhWoqm>A(Z4(DjYTkNr4|Bm z+5f2aphL##m~SN4cR1zY1UYd{)Icn*t_E?8|6!5(jjr7~?E&z5mfpuntR8a7ykfui z5u|Q}NWb@;Ku=d9AXn7+8!_3XZ;qk zncBd$K)TSs74Z&yrc|TKNBeim?@yCK-BYOX*~bsTS7y{8nAXB`M~e-K7B8(O_TfD` zZz-CqrGmQFeA}o&mCrhLE!Xq)P^!0mVHIyKg_ti;g&G^AsyXmb3lIMjD(_gcrfd?; z0{Fq|eqCyP*{*0ZQ?3T3(!AMwE`x;Jv5$~ICzTs83B|n+g?8V-vrkC}m00u>(~1}* zOQ5fR&pylEoY&QV342F`f0}*%7l*34!2c!dW%O|_1R-aILWKep zLdP|zU>E^3dw=6Yi9}bU7@I@6>~Y9fZg4tYxUqE*>=g$htf;tl zh5TV9fGNq%QJOK(1XYp zww11KgNADG8t5elm6@t64%^E5ooe$3%!p07^Km??Z&)pcU1CXs)up6KrRK8?*C(nC z1L=5LY+mZT~>+xbW%dk(ZT&g zg~cQ7ioHM~bn|P{r9{Yin1F$ihI&nj9A9Q-TxC`i{cmZ-(UkdC1*Kw#`9+_#rJH_r zbuokry1?c3S{JRq$stC?6CIQ1*m1Sch~X8*E+pLHxFA!KZkRQ8D<151-Xg3C28AuA zN%PrQvOHT!@!Qn9DxIS4Fm9^l8}iu&1YX&-e{I#lf$X=*zV}F5Ltv2C1Vn_sxq+7u z_BV@eE8X$0RHh5OypUYCfq|}RixF-y0mnM5f817RcfGyzPAiJJxwkM`MY_*^Wc$nF zs^`8oFLp$w@loswnQR$mb#5JU>WA>{&9tkMt)|70dil%I?pIMVGwVR+`~^d}$wr!) z-6OKL^=9^P*s4$l42)$Y6)GlCG@Go-{m7bEES7q3lNCwyto>9tcogY1nYo7v{Q&yP7emiN)%nwsIFh5 z9nHj#>f0+#phFUwjbn9VSW~dl7QN87|&6i;9 zoSsW~%QbK=y#*JRK;U?PuYTBbXt>hXi;8?N$ z(GB<{hnc~M+03`cgIhz;GJt%{dT<1oo6+X=lFkn33KCCBsjKyQaBBAj?_5&b1;6fC zv-j*=clt$rEn(YflWx;;`0L+sL^2A^LCX|iJ4ZAgfXyuDW+2z1vpjsr?0VdyJSFvi zMgiTE&|}G9n`1$!LWm7G27{W8!V-A=(%;E!d#}7Hp<>!ATe1}k{Y6Qh5fv6J^Ti78o zm*x(*M5>})tAq;*vM&;xESrw#XA1ip`Nxta-(CXsh_ACD>xwL)pZ?bOkyzK&SW6-R zzp=tRzz3ZZxZ9v2z<=cKWC7JQ10)OTjvjr7*Z-b5xgy#S=$rr{sPhY?a89eit+;gFYF9? ziBEO`1_X2r^H2N7|Ds4&7f^Q4w{g_}@A@~D&42G5n_f=r`gx>alB+-!cX5T30{pRp zv+?jSB<9va<_f*m?TwV?iV3h)IWGX-SMU=lu5OO~7X%z}QzKE6i%9q{vA5jp28je( zSTmESEypRI=Z$T^v8(OZ%X^A0aAqI64$g2XxS^X;Un{z7C^6Ff zsqrC0r!%O<-EBC)uywHC8uNN=#&}|6#C?=uJb-W?ZrYIvgsG27b|f{$UUCQ%(;X6; z>FUlyU??9QD;y6?5-FLalYE91X_Ab5AB2dqmRXZZRl3Ve_AID;m*ht9Pf}#j9t{`h zLEY`k%7`2HP`lC}WL%k&gjK8l9i*G+m}14-mBY9b*5+0)l;&FAbP1V;Dycth@j0kB zC0B>zCQZteB4{S24yHs2GR{ffY$YaM8n+L1UmGWBI|Uqe88kBM($kA;x~nGp&>+^MW1sP(c+4~`!9GV9DA zhtwQ~;?qh5p;~{8W?VE-v)dkAnM5AS(1#J3K8Ogmr{ou+J$QN)^6L{Jn*ek(3mQ5c zjfL2wR9XBAGP0==8!FMMJ)$q;Pk?ebg;kj8mbI7J^Z{0{=Gc{2g9il^aZHFjITk z-UY-E)NO)~nj&cqIF zib+IZ?2GXfBEtdra^_o`xSE{qMkAEd)ZRZXJ~ky*32KcB*~`@TQI;py!ZsNt8WyRb zPoSJz{#$S>5FbdEK}6fxa4Qtv&sl;^Omcy&V~2`qy)zlEkz1<#Lq4Dgf&8J{EHJTn z&8Go{Ikl&Vb8>4BDH43f^KuD3L&ZIU_?y5|#g_aHDc$!NL^04L-cm6g8AreJoI`VV zUvMe0N|<|QUofUlom;*BYC?XV#h%4_#QgP@yVgzV!hY9j@cY9S%%{D7_b4x-b<={+Qy z*kpnB=@o*X)fU=E7pZLfKsD}-aUU8Z=*29&z`QW2g`e&J<88gutrLHF0uIrYiMIm5 zr+=LT(IiMLczsg<`Sa+wvx2_q|{heY_LNSFkrw;Rq>-H5x4$EoXG zp1#f>gsDu{$@mgD-kLEdE58An#5@bq7z0eYL&9%BolkA#q8{o285dweS;%?5^8TlM z7yCm@LV#tQb=B#!cr@HfyvXF*vIJpUG`jmc!9NQ%Q&?Aw?xCrTpqZf;?(U5FZncFc zr=rTMyCm)PmbGQEDcEPRE1aj?5_Qu;ZkdXk&>8o=s<>l$M{RVWWUS(*Yz~X$+tnqc zn)RW4j>@GjU~)@6)?MFH_-?bep|jcCdq#5g$LS2P>-LvT3v62e{smc7vDpzx$Rd8# z$JDQ1`r7b5d@srHbFT5-^AA~%kIP=*7Q9VI_kW+3-9oI}yXl{uzWr|s%5Uf9*+@k; zj^0x|!E9ZttLUwHFkZOy@h6^P&P{ppj?4BWxL2?Dh|$3r=y$sRYSYiszq8f;wrPWZ zRQcimr8sTvjBTvUZ7k`Xoy@K11@#?`WsDsi{|@;7#c(QH%gxK9_*}8IZesZVK)tEz zCTOJ;Leb?HVS@_y?1hyHWt3W_`>Xj|aT(g)&Do(Qff7aHGuVqkl3Rx@UK(IIZ99J0 zIOcxNEO{QDuGt2X&c*3Bm$uu8CJcmxbk*Xb+^r7uyt?y2DY+pCrj+ie2*HWr!0Y&m z3?#>CKw@Gvve)g?g6WdyI0B$yAdwbjx@)A4Qzi-8yLXFAK^<+CUoSRRV?8>p*0B`u zPR?Yp!mca89w(Kvg9=s3R~{rexVs4C#T<_LE6PhYw1q2DF$Pwu1QX&H@0xkElUOzA ztB4fqFE|O(&pXKl#-L8LN1S^(h5Ug{0>JVlev(mUS70 z>rJ9ugf|HK%Vv8{+ch?g#j2{07blIKRnWKma@?=ieOyb8v^jVQgDnLp{JdA>mxJ!| zsMv5PSulpy*zpE`d0x7Dw0{t};>7GTRWoG1A_L}U9@1+uf^(`PV`AitCxdkoVCUnO zrSmC%P5vCSOs6}D<3PL3)YM~f%JPfL5#o)8#@L}4U<@|EIkwB*y}O0EOSe`kTB2B+ zVsM%utEgz^vDL&bFHlc5AFK;x5vm`RWaXAkCYamnie>+}MU;@Lo>M-cOd~^ba|&*# ziOA?1F&}!%SRO3e*wZ5OJdRQm$=-A8o!M2f|0Rrt#X_l3VwB@8+B6ua?hyltuC^Uc zHJZx@@zEmPGh0aJoWNuW!~Sh~G&wqRLON`v{}A&t+;B%X{9A~;2OauLNXxl->=8^n zQlA8f=|neFE1zqZMVkaCfFl4{-fjXhk3BxDPlLnYlrZuvSz2+>AeB5Kc&0Ax;|z!xY2L%VYq> zkcTEzsCPn5GBkjV5x}PXV<^_Y_vy25gdGkGOHxHd|j=o)Nvv3P! zu#%i-Sb=3o42KJ0r*KkAnFC)w#&DI%A+`=NusePiHSI=1VA_UAUx@6(W!~@gb4nlJ ze=W~YlHDi8ztTB^pZ|S|`hP{Z=>KDR$_TUmXIW0Fxoc@HqVmSPvjqd=AqN{7k!7UE zrs+$FlLgX<5|DsG{3NSXz(@rSHZ}nXz@#yV6fRiOKA$UQ#fZ?X2!l>Y54E1Rcpjvs z+pH>+T3l*p6+H#m;;qBH-A~^cc6(mAANxFaI$m*Icj|h54PXFO`pzRop7{pYaXa-X z_~W1Gu?IR+@CYCjpEAZrL$`tq-Nu;6Aw?o`i`?|Pk-Q>G@R^Wv!3BwP_HMb6X-!UP zV7MiHo{VmHj`QM(`=nZTpP5s4(3iNuy;r`lMY}(5+#+=}pX`UMzPR-xx;#!L7*^g7 zB@SLRaJg*ub+7BX@ld-<>kROw|F&U{`wIND+b_UgjgL5MX~p8C4oDB&}V_c`UoGeb@C=(lg!aI7VJNit$X-Hl^(d zj>^$d;xFVgR=a#Vaai*H6ZGDlU1AzCv_)l5^!x4d^P<48NXF`-Y#%uJcCxo*^%r+5!veu+-ky>qjk+Ya(m0(b?_MSyWcMCgOLsu^ximiP5igV;*i zuPdE?ZdhmX71%f3&55Dy_Z`J%+mpU+=5Ox+)C41QUQZaF?_o}$-lio723Qw_-zM=UpWCR1Y! z*gThuwzN#nNBC`XMkwiuFrR1tJ|HL?TwI)67D+4W_X|<-Zvluy24V4ZCue{0%P(HL zSh|M`Q;^oKZ?0Tg+&4?B+s8g9ac4Zj9Xiu$uiZ*z@K}4SfUBJlf_{3m2I|qvd_%&Y z?7DE|hE(YD^|FF4pY2km2k+4GY=E+#@1EOb;Z>8j`t6ANyPlkNFyw};?_du&fcIvB zy6T(U->FuaYgLCl@95%W7Q9_NnqJ>LK7oOJW#sQN^Fe6-+Q z1qXP%VBrQgo~+ZJSXw_m#BREB>^MB!@P3H-!=IS&F7)%*iNh1y;Rkb&A>dHV8VTPc zg1@UhCq8nhd9ok7EG;BHs-P~mRn$vKSy10Kqa6d*QfeqJ>78tJbhfe^sFnAt%U#{* zRuwf4Cst=$+Qt#jtmtgdt1i{e?-$sYZO&`%U6ftkwX3T(o1ZR&SXEG2n=`{{GoZbl zS;45^K?rSS>v|?PQ|6bf)|=|vU*f-T2eZ0m{NA9~mTF4ea0P$UQCzIA;gyzY9|HJh zn)5sA*-Kvc%8^{pugddrt23wIY?Icz))W+0RevpS2p(}h$tRkk(N=TCG{ z$)lW5R8?y#Z8i+4T(_VeCxgD7<393=xw=@N-$7FabU1KrbY)jv_9iW=Ty@VRXZ!XP zHLhu|X8$^ZT}*!BaB;&qPT)&X3dZ-RCV5eZ&-wHF(GC=Ecjs*8dmO*$=1=5;XgHmU zXJx2k@x#;;-nUJ8g!05^+z;QNqQUKBANo1N6cn^=Vm5Do`IWCe<=Y#~@fA&`^B;WZQlnOb&PRyX*RUS7XTu#H9$KHY zU;KRFOB!3Uqz$FD-2Fse=T}2hQUmyCa29=~E(Bu_R(oz}T2KKmQ#~+;95=gO(~a&x zPEKC(%>?LZIGs#|Qy7v!luL$x7J~?{?DbTy>~~^Hf7vOQvnUZq8)4bP2I%2}*^eDa zP7VZe4eq9flEp8wLETXdh)wL3Mw^>B`VCtHBh5|bIT`1z^3)y+OrD%c6cm|}?51XS z)1x}2pr$VBH`P+e*rC!8xqmO@TQ-W^+abmjY+1;#hX~mAZYM4_r7vm_06o@87zL4q ziTb4DqNz{PAy*mUpvSG|0&HsH@HY%mA{8;>mv%J^FoKQl8;h3Z=qCH5XXgf6QPead zy*9S!bv^qJ){NJh(bmwOH{OlMZ8Eh?=9{(jWLi?qdw6u)5p>Dc`hc~>ZUquw$YfLxX7Dnh6C6ddA`h{ z#4lD`4Ga_=jH?p2o1sL-OPFYc8!-gxM+dZE6@_k*+-rny#Y$?9O1c!Xj|wKo8!*JH zHi|A`yC=|?P?`s`%t6h&k?v(-Pf{aacbe%uz=g@o4ulI&n2In{GbxmaDN)}JSV!+J zA-0ePbNRI%58IuGc?!U|64}#7?#dEfi7;-A4s>y(XH3V#nuhFVrcJn=-v&EM@C0CP zN-@z8K0295tCs6inwKDti)SJVRTA$RGY*UjTSbv2hpwQ>L=q;!K4Bb@7)(W)poMWz zr>DjzS&T&M%L*T5nwj{8rVO{zAl`>#nD8(j5B(Hks)Xq;Popb9hx`d%R!~rhp_<_F zlX+`LO9-#b^hl1WGR!17l!Gr=ooKI#ae$LZ2VEwzHx}l+APtkzHuUcsUOF)h;zHSn z5Qd3wUm1I6kR1ggr$>dgF=S{F92HoYImxlug7VzRn75jzYSR{GV*7C{POiJS(?NriWnz24d^0Fj>6iwgEh#GtQlp=k)1_gn#32-g_V>@8L*ng9HoS{ zF@>`D7gS~!Kp43UQ}@H%L&hpq@3J&RyUPS=k0_uJ|9WvELy5u_l?H`{{I==i&_T%e zDiCxb>=Z90B0C4I@wq^6pBN*4c>|OiXzcj`w(^@Lnww%UtgOm23@~AZ1GvPV2}TE~ z;{B3Jwz&p|1uPLJl_^W6 zyZ#lX)r$v@D%^Os=*XT)oIZ%|US+z@_5}*SL8zIk`K`)^QR3!&nl2a9t74-s-6PCO z>$D#4a2oP)_Rn3I0ee&a;jCaV3+b!O3;Vz@ykkZ^wgzLAvtlCGWfp2SpX#_@PVkRpZ*Lf>|mPcP?hNF!P;d^kl6g3LQ<$ z+U3X!1IR}+vBiEWD5YJTOApe3b;`~5?SM?d496_@o>-{~OK65X z`i2=V-7)k^kcTGHLPox*W`s-;m`m^yc9 zjAH-HiZ^wM@huFTxPmo%gJ5AEBME0K9zleh<}QLqrw;e$R+6O!WrKSq5Vxa$8`S6S zftDYMGHjoj^`tC%IIVg;ox{4yH=I#4#YJB0-=Q-+pIoZbAE{4o`U#g+kI7vyqiHzr z^p0{!(HLh!0XKc#urk{s_Zkay!7LuX<72a>r5yF=$C^voT8e+9F636hjJ>*y0k;=C z-U3baO#1ufa4vEWXQ8#~77n@f2L6BXIx-+;0*o%w`J z?90>i85s8a3?kd`M>YZZ)qbF+bL2}a(13la94}nOH@x8k8gz*ORs7D4IrkOk+uX9& zW<<2&1s1u1D~bn&^izpIUBd>KKnkY&9n&o2hnh$vqRSH;A@1MU9&GD23`O58zaWg}X~HNt>=sbRR|@Xp*ZJHao67;m8o2cfLoa0B zyi~?ueLb@5mKfY19USHu!B`~IJz{fewT7RySa)O%WFYAIIHNZ&!qKe}3wIz|MfJC> zTEmGvQ=Hj=bI^~lmxLSgeYw0aL1vMxA>Fi>bnG(;LQj*J}~e@Dn<1RBy20(DV6(ptn7NG8a7h>m- zc%hIc`4!5xM$?KFNF$8?n;-l8&)QI5xUhjB1is!L{tK|n7qG{*WMt4ihv`)&*Ykw; zU*-ZRnE`hgfr)W|v6o>qHtD#dLC~k0XLIy@%2SstC4AW)iRouC%mFBonjf|s$l5I) z*rCTfJm`bs{l!Gb!8&dD5|t0>3PP;oy%>l^hmRzD@zK*c>~xLFhebE0vc+rP)EMxx z=3yZy?)akrIz@X?x|j)>sD2uTz}x@>5}7m!=-hV-g1AoWvQ78V+p&9z({9p_3E%f0 zB-S3#c>O<$%LB1MGZ3N`oFKAf|73rH=##T|%(Ag?%|*2kS_eq1PRq}Qb4-lQ2}P@m zj9@I6gbmlk;48oi59W{2 za{d+pAdp7fsaXYOQ}&@e(4R?QiO=UR)%%m(!2S#1!+xDQ+5!Us0fYQg;qd-P;jI6| zy*cVS|5xeaCS^AmP=aD4Obql=`6%Qi2|pxe1|xGX_-XW1%nK!j%Q5Qs(*{7{doc&$ zrWcdJkdVBA@Sq;aKnIi``?|lT+Mc?e=I{IQfjn2z1#zJhQhW0QV&IZFc=+$@_f+=0zQ+* zRKntS224odZ>?7*qC=b5c}@6`-f@gH=ql)~xl^4Re+ zKNWLb5=J&!MKC57q*JF_v+c3bE~^!rqo`D%%-OY#66j*X`NL48Ziy7Xg}%j6 zS$SL;g82o?X*aL8n70AXTrqWjW4%|Qfr!;1@=z%;t;HiYYt=;u93+N}wGcZL(vsl^ zZiS*Nn2ZVmLq-(h;~2xN(J@BSdWxdV#T>jxFM)(+92)a34=O)hGJ16zao5UVV2f=~ zH&{8PnZ=87Gn$(B%gWOyClj_OlR;Xoa@ni_h5~(5CukeowckpXm(z2Z0UqA8&OSZxd^OI0 z3>7L3S9I*l)b$vc@#@HbnVb|=lyO8~Vs~EAmmQcxJ%(kUENYH?s3vCR?FrK;tJ35w z;b4|BM=4KP;GpTOn8880UX`75r8ObbTC-Ql<_l?-7251y?1Bmrx_XDtf6|v3{^pF? zV3Crn5Abc0ZiQ^s;$o~Hnt#qCSElWwjD&h~u<}OmxyNjpk;3~aCyjLBZJ5hl$Z#8L z3T1AA;3Q@S8Q7anSWBCg^qQR_fYr*5~tg1QT zkc!E&+vi(-d1&!qm9{ap2SyZ%H&-W^I^3~)fFk+f|7O06=YRD_{g^WnhFGB$3?pIO zOirelF9P56{sfMv)9~TUsDM=^S4LN(moyM{SP%mEYG!QvMIl7{QzY-Wqg{EdTB!3t z)T9S>i3*frUQSq!lvV>C2K2aGrygU45u#GeNq3p7|kE79I^CB zP?p)ZgqwU_5CV5o7vhB>)~&b4ZL&T6$;t0tkbS?dyW!Q4zFQ15 zpwvNN2?7VB;`aoMC~;q(GHEm`-yrl$9s~W)j(bn2TtiwarPBJ2d+2{)JlnX@n|?j6d8ZGJ_1ZsXNzuY z!P`{pBQBBq)bAskAAc~_c>Lni(X9dB`C~alLM6u3yT)>s9{iB0k;arFg(|jc#5j?w zyG5>!(xl#q1B$C7ZAPBG_jM+J8^-1n`dhBZR$3lFL<7D_NxQ_{7|?MFv?Y~H zN#qE&a-DOa30SpIEk88P(_SHV$iJY8e}PL`!XFwQ!~jeRHl{xQW`T>0mU)LuN?V5R z<6rZQmdz+%WMdg^uxyDU5ense1eRBcZ*b_1(7td*pb_zNepZ0*vVSei4UwaJmSY&xeo)Lg z59AX@myqr-POQRy5k(etdEk|eK|9CA9o>nG^T&zY2uuocGKoVjtcrWDBaS~EmRB#| z^Im4263UL^*>tBQHg7<>B4UVviC>01@Nd`*_~la1SD+9ER zw^yL+-`>qM-_E2`l42dl|I9*M5*%=N=tZ<&A$#QDXP#(;S$6m zqV#1l$L8)pHiAE^yq~Yoyq~TdX-0NG0W0KBy&!o;;lv3M2(WJ&k_qpW2!|0a9*1iY z!}=iFZz2(U=?~8%IS6h~4ZtC7qS!kVi4zD|HtCmJgX4(RpI=L|ln*1zR`&z8krLD5 zI`~_Pz>Y29KcRSHX6pDWr`sa7KU}FuvS2}Fciv+UDOY%3`F*~?*=r824LBs@kOugDM1O*6e<$=)>LKl84T&-8NhAX5pVQ z;Pj(7C?j2Ft0Mq5n3GAlot&bG8?P3F`pfeby5{h5LzscQJt3iM0Fjb8E4 z3OtgI0pzwnah-&{gK$ts=1h=OvpdI6Z_7l+|GgLSNRm!cM!6zYd~tqH zDZ^DTq4gv0k1}aWBD$epaY=RB`9gE4lU>nj(2Z@w*;JC4VR7Lw9aM2T{f*P$giRz? z^kXFmZI@us7oZ>%HaYSTs)&BK&*#Dwr_Wt+I^@2FXJp<|DUEmU1FiJs$hL-+RI& z{H{4f9?F~0`A9VUssq1j7HJiLK2XoxT-$_SoG*Q1b?yK-{FaVoJ|z)yZ%=lSLr*lN zbR2Na%L~4vb_~6<^bAASBz!Jk)+znY8f4Xs+e^{o2!m&7?o0ULgVid(`%W8Fa161- z-iajmW4szK5Ytf3t(GBgt1j|uR1SfACSInihG<3R3{q9-!ZNwfl9#wzJRylpk5{-N z{^r{14~e2`gGwe6T5Z~x2wsEM!X2l4-&{+3U*%7lCf4M%bW)_52`A#3fn-c9Pvx-d z#kqpg-h-FfQUfZ?lsbu%qHynGW%^x-1=9^uRxtHnk3mk2{Fk&V39=fiQ%OQJ7jA4% zb`nS#wbAxD?#mzbvdhvx_g%No(n?nxuB}$5L-k6)yME%1cF_NZ+UoW-54~kN5n%GO zR%kFyQC!^Ns85>w^Il`tQgwi1yZJmz7|D_(t9C$-aGFS?^_)i`$J|_DDxafBmf|u9=z&wEU0WbKCvm@5{VCCHogez?lc5q(o6;IK9H^vsOAFqL0sqzPx zyiAg1ymsX>d&Oow3U4@rC&^%q3jzD!I{Z}}UBc~yVkqq&1LEU$Pf z4uoa5n_8#}g$w^&@bmAMqCw6+2n}xYl_^*f&?bc9QRJxa zw8hpLxp+mo#~1~+f0a#CzRxj!gvK7sO-+a=mh)b2>|4U3==c&0cS(P1N)rZW@UDP7 zY>mg;B_iP)q#=nY#1R@uS*9rTA)#5uf3o`Z=A&>_RUB6_I7F{1UTtTi$Nml%xkvoU zKyG~t6 zB;pn54G%rg4Nn-#;$)QCi#%2f6x&T(9$e`IJ)mDx2si7g>s`7Xxl8?6dU}>%lMKqi z2&^^Li4l9GHhdE0+DD*5$ z?Ab$TSKwTf99qSBdWP=2!d;qf@E#mje~)@$31+(iQZqoSLs%57K}d^x%($~f&c0GI zTIt)3+{O?r&oid@_)Cf#6*}PN|J4#Se~q&KeOvIikc80x0ZAyD7#RO+rXxvZN)Ag5 z`D0MG?y*+?Jg9yUT~bid3no>5wlMa`fXry?Pm54O0aybDt-78KmyR=5Y|qFsj+b;;F`9L z`^|@tKw8GvDL5&_S$So~t0HzutQ@QE<;iPY!|*w-qs2P4=MB;eb&_fC>-UKki6aBI z!=2cx^KsCW+XLN9yo(JXTf?z=)n;ON0ac(E zE0$%e4-O7XY;TYqLnMjMt2{U&gvUik+ z*C1~0Ap|a_1YTqoGZ&5vZ9)(kD1d8-s9$T18Y9WjODtu^m2WqXQ)|&rhB*oH8#pZk_tOPY zvq&l1dwat1F>;Cgn3TDdQE=E7fyPK;WaxIotUxzLp7^5`IRI=$Gpfy`u_3ZOonLWP`twzIqRM><1;x3L~Kn z0nc&DFs)Uvg6YHpe>I%FgsPIDzBus}O)a2j%!wrN6`a;nMa z-$a#|Vzu0~na5~iMVE69DTQ$?^?PCyh>djTYqQ`Ze7G7cOi%s!Ju+bkdJs68h{`@j z9m;ONgb;NU?@Ac4jI)eFkQe+24kp04aI6x1&Lb7T?Y+$j`ABEu!^nIK=eq8P>GL2E z6%Qx6Tqwbu?G<>ux3%c`ZV)~>)kfa=iQ!^Y%~Orw8@vc&fwe?9p|3ibqagr zLna9f#j@|R(_qjM zZxFloP7>~bDYPh%JQp0#qS94z)dP~Z6NWR*k}s#y7uF7I`)Jkhk}H0hDMcVR8gjvw zVVc|mm3pPIp@Ag!8?@xp1K8|!`#=hrGY5VGoTzu%D|etlS)dKn zduU*snrWurpzW%re^qWX!Q4G(I(g^imJ&pPU}jyNre0clPL{7+Qs&TEJ|pT;G#Bj9 zCNraJyC75e=Mg<+YBl1bV(J=@2&pMlHBnkLhe}}%uJFC|=E0hY@2^|-6|^S5@aMh- ziHx;Wsf=-&cGxbgty#LA`WZlAc4$y)xa{_zGwh6yRk4rEW3oH&O3fVpa%mE1QKhMF zL77HsG5&ZyE?)MX9nC!U%ocDi4;!fPd#V^AkX~W3!fm1;i64J?%+M(JS_CQ@Y#~6t=xBiaEh9U>zw0Fp|2Iu!L5OlWY}c%f{KEvx^E&BS9K;VEiOz;xD*vvDA1MPZ}QuLvz8&y|K1D&hOT z8|GK8YIrgmO;|3KVG`x!c6yORkj4A~u`#Ug&>G!5sC!%RG|1Jqe-Lp#O>3?9l#$)wnFBIJDN(ol zeZk2Kr9wghBNb9o4my-~c@<;M&HkaZ2$>QVdna4_D?jF8IB4p#Y#1LZly<{tmKVMqPpSR9$NLA6 z@vVPOmf$P<(Ei8l^S6lT|1N$0Z$#8b$;J**0Nyv5i@ljPSo0UEWL`KV7;42sQKPDo zAt3~C0xRY@m{SoJcLdlD?1SBN!)I?{;vnW9^W7N6Ny3G17IZCHD;-B^9;T*OOIOuf z-z&B)z7c58Aq={l6zw|-l^hfUv^c%R&xX5WbyYn%aGGi=2&xNya&fY&GOsV#=LlH1 z=m6|rvR-<|wJP7sqYuI-IRm#G!zYr79x;}!Ky%&}9ThMaYXu5-0;w>nFfhvjsm zQ^6~w=eRZASjjdm8PH=VQ1*K(jC2_DhE{s??tG&}tHn~c%6^Y!w5wGMwK$+O9c?O@ z*kDaMb-wZpYg~uAO0}nolqw0hu|XHkT=|kO9EbL4dyw(ib)oj-+lWJm@yd7n!gKXl zFE&j^D=-jVxjO`6$X1R>N8nZQ}?yZ#o36>j*ZTDO81;`zn!@Mx{sd4nvN2e?W3OV(xqFoBy;|hmCmD zEuEhz$KR-znsp1d?jL^aj^yPA%my0nd&+n5^GY%QM$aSW6w(fhMw%}7y<19LKFSJr z0DeI3)U1NLK>z5f2k}&q>^+GhBg3CPKUm<|Md{7Ia)aXtAMXe`U}<{>S9}& zfXO%z>qZ8GV5PD2wIKhK2MCv}U}dq;%o7QZrZ#}m>LpFsP?~(5aQJS~VEP52X88Dbr@7dR27FVOrtisly6{}iv6T;tI`ben;?hG58W*0}tL@HT} zCe)mxsiIfq&=aZ3O*%}mROSq~Z&tLk-#K_qj$@ikQtQtEE$oZy?UFlJs+eEa$ZWLv zVI#U9KtiA_U1Nv|h#)L+NK)EvlMWqGk}?$S zqLOc}{OR{_640YzIiKBtpgap$h^I0n6ORbD@a~yD!e;oD=3REs%TTZjYZ`o(0zG16 z#lbBAC#h()JeP0n0?00qvfN~T@T|($NR}NqT^(EIbbJdUq^Rz0_kq95&`q+oYqNRNq-YA)Z zRiZV8hum(u@(L*wqFQZbbzo`pwV)UA<|T!ilM^85Ds|uytZ-;qGhByGDGP+}o;3tl7?2;9zfP2S&bQ%5_rq9^Px_!bp ztEN8sbH;ZWXx~~sNWd@=w5Z}59|5vYkUlXd*&vQF9?>=M={PB;TRvPFGOV?#qj`Z- z%6@G7lvigI8!?-|4~_oTcm14ivLdUo1%_0_NY3hnr~JtYFiv1^U;h0-v#;M`aMt>9 z0awf^*#*t*!#%F46EDBX}_H+iV3ctjVs@cZY8vW~kZ|f*SOx1VA?Ma}zx+3dR|CSc`$8GvgT0rg1=^u7ji(jltY}{I7BS8!@7KrcXU$lT&C{Fh@>Y^b-ub|^SxIeQ^yx?i)9H23;Fm_hHiK3of z$y$+-9*EDm_*2mD>QnxU6Uf?Vpk4_;oI1{Kd&+j2;`mZEtUd63zCEpdYuxsPSBS(i z7tu5wG8slU=U?mw)?J9Z`)=3sGrB!GphrUiuw;A?1g(Knjl~|O1S+!?yVB&+P9f$k zHsl5qbe$aCWO9cC6!o0VdiE!5)B^4wV}GkOh#!^b=wfQRwS;G4f!0=l?o z=D6y`>07mj#<{uVpxRTbb8>#HUqi1z4UOX1=%VePHf(&Z?Y264bm1L5xT*b1{|K2n zsYtkZ+|>8LWQ~)WbL`fY)}-iZxy73@!-Hg|fd52Aekp5WA4;|O_mCu-jg6h7*jigp zQxhe4=7>)lPWu9#sCr6U6~RqoCNuGQNkYN>07i$wFZs_71JUE zyXUwpY9qxpU&3f1S?;^lE{7=^AiSVT z3nWIw3#l@q&wzLSjMws@f>c$LrOf6~a zJ|@!19X8I%jA!^Rla9mP1Z%fL$3+P?hMHFXilat1lo;$9r$+-en3WFmU848Nev z=|oFjbxUC!yo}~ZzEpO?@7jaNSG&Eh!xHs&KKi6*sOx47&wB+J%`QwgjDY@AInvkb zurR*8@bOof_Mi>YNB!!sKhJ=G<-RFuGhB`<$~DQ^&oLs+$>2Nc56V6k*KME)%2-E= zU}|{>hGl)HTsRKk6i$-;ZqaIM4oBG$TXQ$PGHxdkCv9lF2@^SL`kcMxRl&x2?Abk8 zvShSd<4*lMPhgrEaZ|EVlnC15e&M8|ASb>2X!V-V*L9tIS9O2cfW$WGU)%)#Nvfq^ zZa_o6n}}B9yz0c3LzNC~)MqjWc}a^+4UZ}!VQ7sM>F(Euhaoz>0}xX686RB|ByS15 zX^ngoBIM2XH9zEhIi_HlSX2pg(R#(8Mu~VBmTyTm=J*zGy>d}l-g!fX`XsqWu24br zcAlhQ8gIoK9S`>@M@hX=bc+6b^DCsARI`st9K7M+wF!!0+P+zawlo}tA+Onnc{Z%U zk~cav!$hkR`sgp(u66$L_h~ttbl>^B zpyq@KbAtmxp-e%QwVCDPR!yS?b=j~<_)x<}e=XM%h8R$^A+{99nJKhGX z9cO3p-WjJZesj4gglAM6tcaMP5FLy%X6GT)$nNNrG&5t?!F^fu{YKICz?IHL z%$8M~P=hA57>~;73yAtv?#u-@MIE*_9?-7Q?_Q9!Ri_)!8^r!sN!r%=HiW)S1Ozd& zDWcpB;XhdmX8R0=IUPSW-B?@xpkj&whYs(bVpM>aKUKL{VE3i>n=nS>X0HVX5p6V| zZogq$p)2-X1{2&=?grPdY5?^ah&RDwA~Y{xaJx>FxwXvD>z3Khix*f_WD2;~AZ*E3 z#nr}@fweewaKD)DormZyP5?UUR(f`RM534*x~gT6as46a0s?!8u5DA}fYU~Depfou6uhpllAidWD$EMRxGfKv z3~ie8t?HOsLAGrB5n#Iw3)C`dEWPkEv6&xB7SZJ{I1A!b%UrHJbbH@ zF4Sl+fu%Fvk9hhS;iff2{n#?edCyP=mZ zq4$eLA`Hqqq6SxB6x2*boSn^7MKDz_y~~dYKKN;n#F_$N$DyPxr>>f$C?{L-xck;`TJp$f))WvU!qL?8vKB~AnRZ4Y z!q-pwBVsz=0s#T~R?wW}0m-YZ&`@pZBzSwkB>xscz^_uf+1z*MUZcj->8VK`gqDIj3vZ{S~_e^-h9e@6A66aW7b z9Y-l!$zdwM^Ps^eyHujos|s7`h3E2D`lz2n&4&+I8W|c!5>RQMoYqRM3_RDp3M(ai z{QM{_cJe?uV|CzLZ*w{tUw1M!eOkK0*v5uC4qs&1E857c@(nr&M11FtsVb5Cl>1P-9eef*iR}RXOqne`3I7k&Puw5}puXG_#4T*mVOW=y0^^XjbB5Z% zwsWo6fpr$fmj3PdBU}w5V}@0*{1W|{pJ!a_Ge1kBv!~$YjBYij$=APnRUh6jp{jx=*aIap+g~Vb!fMUtPa%`jXk2{_ti%B)sK%h#qNia__gD3fU{y;Q z1oaB1-Q5&FCd9v%I=sNKDFSsIfh*2$tGQ>4-~0uxV6W=?b$@{?vR@_`|NS=n`?|ib zv5J2)z)<~K&}a8gZ#x&24J9NsCX#xWQ!BG~q1WkfLgm0M`l z@=Nb_VneNUG7Ohqy(o#=80#%+PwOsBZ<^Vd>SVj0#|cd+vzg(QM><_Pl<0u$(tL)t zBob?eEU@tmAi(%Zr()n;kZ$^=phZgWFw(C>~W5X_Bo-=#n+AvZLqF z=WcLBog?p-EFw=+4Fj)?LJ^-ySMI2!q)1O-_lVNd&NwfPl2Xsye?s7*S{2E&7wj=f zLp>|bSM7p|Y=lC*U6u5+S`XP(&v+~<{w<1tz z%>DFm8z7h8`5_uc&*87^ZMX12lQKFG|HjZVgx?%n zpN)TlpNF#A7bX)bybt%xnoFFICGQ9NiN1DZ$OS&q*dQ#t666O4|MZRb)sSDy9LXPt zzY8i9@h45agq?(Il6TAZN`SQc@Rx1TO8PTMc)YUtoUh1lP-#!z67b>g(Dc^_=zD~6 z4naj}z*4f}6e5_vn1novS-#Z-BeTGQwzJ2yQEL&+9x?$V#mO*VkW;|Ffji93sS_jm zu96k@vR9{=E9CIU+;;v3@Xz~Msb46DY2!0ikhUs^EO%>#HVD3;A>y7A`vv^mAQxRLJt6Rrc8bBV_L4-m5p%&*!@kD^i593$YU zhVq#Kj-rke5J9JT?1?Fzf)e^&LD}YwrF3yhmE#z!G@Cfn6P1;@8pV>qL|puy}0tjUA1Do^;I&hE^~#D>InM=x1Y~7iwK#k-S9X+Qxt~pT69kTu9?4?pph`umiY>kBdDOcx*%el6;GA5qPiS93dKvwWhV*X|YP7Rys1qEM z?4Uy{wy(Ds$Ge9wz-T&fW*gwI*l>=y*l-F&=i< z>dRYd(7>l`@{IuflTu~&YA72^$S>S~f_D73e&+!Cx6VG1dhDk#13Eq^J>|d@JHCUC zicu#*;_2_?NmA<;^&+4ustD(JX-D^U$@tOx!Z6)O>&)7xVcJ5yv3UCm^r2PH9MnIc zR8u5emirC+G?%z_ebB*YNZIb@&Xqj>RhWvIBMw}AT^Nx6hq>Lqmr%rib7_d!y4aXF z8vO6;!zOM@_6Gy}V3z@!sxgAddmwqfu0Dr;yJaMVBfY=-bZjUZ6l-g%GX!=2(ar8a zASpZ&9Pdv!6YS)JeC9L@u0Ip^8INyAcTnBm9}f-mNy5QZhiqxWT?&V6`}haDi~VT? zjq$az*GMWoJD{-ZKrd%am_P*qOGM49>6s_r}6vgxMw^o!X}H%ImZVQy>EYn#*U)>f-}UIjFxvRx;q3~;$cP* zTNFmVBQ>OlvCbIoVXg_(5p+$C4?k@(QG2eW`JfS3zY*f)Be79?L2L<}uLuWLl2uM7 zgF}RBEa^oGIyn1mt(m&A{Yf7J?+0-<JI43L%simf!o40jM z17`QZ@?RA&a-PzZ%~$oy^&e-n2><5qlQR{zb1}63r|*?bG!I;lJThRbTu<2tx#rlg z95Y=#ELeoF#)Sceq_P-=;&W`ie;e#sVHcYi^im?5jcjTp!^=DW@eTh~G@^cKka2_v{HQh;~&-1pLob&YoO31~P-$xkJ^2W!J zjD7IGXN6+>4Qk!wG|<~{H;RV_T+_2v8C04+ES&SEtDi^UwWX+MOcfy|2Sx~JtAQ3@ z#n|L?zbls{6kIuT5(u6t zYlO7|73C>iK^-QbDjs5N^Z9{F8`JXsijBZmY}U?AV>?0ij=J#!zhd*3AJeGsJn_WW zlXLvX*x>(dY^3dM&Hfdd|9Ng0^lMaLWGea%T9gS24yH?ZaiL81fk(WOkzMu~m zH^BcmHJZQdO2@yRoBcmV<{#X^f3LkZa5ZrM%Sler&P~bWpJ%2>6UrM~Wr2@uWkQ;D zjZ`L~(PEZ0ugJO)Vy6g1Go0DRUMfDhn1&eT%$Z51apSz0D}z;lUu6CjH10{LQW8ZW zqE;eL5&<41Cv+QW3yxoY|E>>i;F0TSlBkWzjWz7?X{>|m=ws?G+v{kZ%jf+W2<}HW z#f0NT*7V4M8a*9xa4| z6GhB}b(Z%3WNP z1WMSlR7Hl$-QVF}D&wW*^iHY+2$xS~&3Xe0C_~Ea+5=6L?jqo-yGf9`C;?8_Hk6$@ z18$}64dGYHH<&0}MZ0Yp8(zrV@Byyg)d5#fJ)YiO0eIj&!OsF9e8>UlzUn+SH>@ajYB#VbU*Bd#>8m{;SL!Z5AouH;0)?+~ zSBDZ;@rH@gS9PFG!XO|#YWRn7|yo&W?Q0UlCu-hps~|V z>`i=7+^lu>?cP^#NRpy0R^8m#$_Vd!itPko@L;IyRZ`<8*Rk zmA8^cqQHh{MVgT1H)NhOae^@TgOx@l8BcuJ8Tcu*NYP=nStJwP&~-XKVFE+fvG zaAmOwCV}dJC(J)F8D|9E)MV$_vii&enL(tyz)H2!fMO&lZoy)AIMBmGkrSzm$J37t z2JsmBl{ls#HHB(9cTs#SJ3XGF&?D8u2B@`ou&3JsPrl{UV3tikubYYZp28B2dMBiEM4!ts0qP*f}Poe4z)HU@p&wTpajdf<@r#^y^GB@3=n;@;hfQc4b%Bw0MvR zf*+jvenoZ#>Xy*Wdj5su3*p#r^iLpVe@K`&)@~IGU=S|u>BuU6~UHaE=8K#7?c-%I~TV`X$actU> z5Shn%k@Th`j5dcO+jxmVRq)6TS@rD!5Gq4ng+}B0#5@Qj!vu(`>ri!Nf-^O=l1FSV za*q+8=nU4tL|UR9EswOiBCV_e97*(yERr%zPt|?wDT(pKehqwc!&@_^-cT~cLYXB1 zJnCw*a4StRChkZ&P`M$Y3U~)A!*AIbGC;jCuDkdcY@Q2OCV`CJ3PJ5qVwa4) zdZo46+ZJ?}@M>l@N7}IhH#0zTS#}MQ0*W$&&H&7r>#pYZ5^>svPKNB9t2h-Odf3Ct z$ZuEba;Q;FE`I4em=bElHCpopfO|QbCg})n%`GHqWI-0n%wk#FV4Cs3h|I*A?P^0| z_URJooPmyKknXqMW0%GmoRRuultNh2Bm|0NMhJ$rfJtUKR0Y=M*ojx#+iHBIdmY*0 zd+1`O;!s>Nq)H64!^#Yn8C_Isy+)Y}OL_m^Pu0hak410%*gi zFR?k>l&<(mp>tZCeoJS#60@!xIRT_{O40r=rw(Qv4}yl%-YY*-gF$8y7?|baw+!(K zv0}Bz5@wFrelObP4%z7kZt;g~b+_(jbe`KV>jkhb892@0pQ*e}=&M$U`VMe%B~6mLMy-@Ufiz8X==Ru6kM&l~ahw@V%yBXW z@6_45q4Pq5_1Ximu{k;+v9UQhL9Jr~)|y+g@UFHGWo>yu@k*N7&wx5nE7uPZAs- z-(aT^Yex5me_zN@FI2}gGLw?BC7XiefbYTGNUTP1+sn57aF!xEc;a{con~nTwQ&rH zncbc(6G5;HQ`z%89}BIFgdgJpSBi!ht{Vhp6&TQ-AtnvdwwZ2FJv9Y6i&A6*e^^dAVH$b)7r9?=;`H&X`Q-}RvP z^tR2>Kf~$bX68y$)E~CU**m9yRG$-BCaux7Ip#ab#6082H)|ugK{UK9iAD>YpLy~io24}rDtx`!S5{>yYKMOPL@JI3XBw@<{4bB&3S zTN*2U^GaNOfb6@&2X)k)ie=QfdM~=eB8)KSxNYFdL+TR2VQZe?%BK4WUCpIAy+H*Y z=45o*7Nlb9o9ZTnaOKn8PY`W&!LmX4wk+1ukrvKd@>1nNXDr!I{}IeQ46U=c@RSodJ737jpF$oQ9pn z%W}&+lAFWBam+lLiftMWp|<1`OY|i#()*SoO7^Y5Nm6fE0K$dtAeUJ)J@6ZwfbD3$ zKQ{S#>5M+?D8#)rtRS~C!T@$qftZ2n74Z0^0Lh<<{2V7oc^|rKz927gqp<1bpV{h0 z?3}Pp1y2G8?DMImQ&4vBo&0`!L4C==T48kjK0HQVZMcWF1MKs*(MYqpS$o&tB`AE4U!%e?R!`_?L!COs|m4!X} zt+N}1<}F6E=wKK`*B%3^pK#p@Qpz9pCp@?udU2y=bqC%kxQW9G9gfiwD1i3vkiu?A zx@#*%{WP@a-^l3qKk)p;4sLYZzqZx3GSfb|YU3uHLc6>82L9CLICxTb?4(Fi+D*En zanD@L#zJ?+vZYdT@@rIC&xmYVQlTFhKIg^VKiYFs6y%n0a+j zU*A}b42s7sej&nJDqLKigoO-rr}8a%2$_dQIO_%VlbMf1nIpTPXDq6IP> z|Dqw{<(vb9KvdT>xX1s+*EXS{xFi@x#F0s-~em`OA7s8&RWN z(z*`$p$*MWGyH|%$Jk$U+y5mLWSe004dtI`pzT{XD_vJAT|e9Z zfZ@hKj9n>usXbCK&4WJMpGR(_kQC|LpYg1f36&e^gtF;kfG7U~<0r&zZ~h9EIz61B zbQN`r3H?lGncG9vEEHU!+@F- zhSnRGV$bHg`^xl{P=Cic{YA%rr+4ss#^=EY{A=GP_k?b_^ZAnI+Z}8HSG>iuCQ*J1 zbwSRq8SNuk<;Ig=BV&tA>56v2lXn-AR%U|Zm5wB13)YAI_B-p1w;SgBQz89}ZTTqE z{%{4a>Zzd@;@fQv!0`NMZU;9bz*RU>=fjb6KWp;RJ55e7toC^9+jBAQMOY8g{_&K) ze}Tko)C-r=0MNUR)wdT-8e{6xaohMp($cz^r|znU#j2&AZEjwZ2z@bl1XulrJ;Fy=r9JjK;wg zIS;2AGBGWHC4$W^S*Km35&zzz8cE+ThO*lt zbdXBw|p$yt~#&G$`i7Ad8&+QO35c zuS~S&2B1s)BLkbqYLl%2Ypw&TJt{(M$+Vy!MB@ew{zgJe9-XUWn!1Sa41*)cwpDQp_nWzCkMUq1PIf1C?R2hlS?jP$as9<5ezEeX`<{vC|)m z^2x!|+!yQ7i=}%YQJ+WP$GGK%AwF<&e$bhfigNCkc!6bm>nH)HE5_I%1>93lt&S1=>Ejqt1#K01tK4 z{^`Yd=gDIp^pWdoeexSi?jzRF6J$yM)f$jYz7Wx=RmBMU%-89Jm-^$1?s0>!GFI2r z6agkGi)j142`6EMS7;(XE!>z&i$2DKU6OTZ9wJXT6v9vo;FwGnwR$`!TVaF&#p<9oGx0DfU*gaF#T zYou5I|7a!^QyyKXKeY{koc~|%@xRN+)c+^VgiO)U$?&HK_y4Zw_D#}NKo$CtBQ0CE zTjJhZbP{;^94@r!R~Um{f$(bEe;s*?voELe?S0o4gSajy0r4 zE(^L@Z_4CwC3qZkP!Zo}q!61@oOO{HS*8z7`4<@N(u?`xv)ID;#Sk}a`1c`!33R+C zUiu;puCn=i$TpjaQ;ue7kmAOxEzF$Yp2~x&VDEry@I8c3eOHOKBd9~Dx@Bc2SBbL4nT>IPtv!B~Dlc_I?vo-Vg`meam2Tq+GFdVGo3U@pN$q zqy{Jy;xHyayo3X?88QR02NXD1NIr5TR2s5RFc7h5IMNA{G}HqWEYvKij*tiNKFvTB z)GCsmum|=&daydOo`?tjK723-@{X_v?mm9-CDdP%uCQDF0Z1r95})8(<^f8mJQAPK zTdo24U`C`K(N~y#>)@YMO6(P3-#eHP$xrmP9NNz=NS{tnqEfMfsV@KeV0d5Cd*aH)Ff8K38GZuBS~qr82nbG%*X zZ>&ZGIadpcM_o3N0{Z4?jEre{o`>#*7w;F%IlfeVD4o$~F#4*pp2`#l(0vc?_;pbi zf$NhVAy5oBc`7dbBB~5@A&W4jvup<&N=9#Q?@3H$C4hezk6ZEtiyJ(qVQ%6QJ*1eH??5q(gE<%$_fbQ5 zMd?j&B#cvI!$t`6!J$jp*X^477K}7h@8K%xP~0{`<`q89lBUO9d((5lJ}42qb2{X+ zdN4VPX~_)K$P8$QLKwEY3}cG#4wcm*FqSJiFJf@?j|GFT$2qe)%|&p5!;W77*WB;!xcHIG&- zl9T^bb>~wjJ}PY{B0dE_gjenAIW$jhw`WOzw}BkSj;P~rVeBViv_q0EgfrR16x z=A{T zV4OvSJEO|HVJn`20yq5^?!vSQX%c#;7xs~Tz;g7N(ZB0L>Bie5_2|GeK@LO~Z1hky`=AeimyS|T~k z9y&N!G7^UXj@SB^J=Epm`(0GEbc7-f!S#6pMFk{hXcPcM0bxco4iXFpcO^Ilo@@+u z2gdnxF+oBtse_Hg{A4>VKhOXEqWX`m{@*;L|F*&Z+TOG;tOxoq`t8)!)%NuCiK|F} z11dof*%lc{BvmaHbbdb)5($>#exlBvl_V1)ShE#<^Ge0jI?hj={lKqOP^fx#m*2sf zHFj65mMfO{lMCNwGjg^&z1{7d=D)sQtZ$}frZO^|XR^7RPo}Q!r&@dc+NwgbP@DV2+B_#P4)Y9ANVUW%L8Z zYU)NNW**5A8fPX>h@{aAY4{Om)|A8K4O!FNA3X8{o2gK|tYYlwkT4vErF3^mcDxh? zbriD(3RxH}rIj?Ggl?KlnaMe_flji7hSG9kJkv>akt1z>H zMe>9yX3agRW{62Iq~8i|#QBF$=ImhG5js+U)CBLx*uB-aiCpk+Izk!#md_CqE! zr-3}5U}Wy0kYuOPeQn~B6erearw+58Xy#1sT}ZxU@~=7ZocxEIGe9Pe;KrLbE` z(RMjj(`}bi_lrsCV1D7i+Nz=L9e#E1a0;v0DyMZnpV;nb5L0itnBePhs;${7rQLKX zmQeRXcHnWV2LxwydNBY#&^;A&aSxxQ* z8@D?K5Um$?1tR$`ry#N&{~=m8F8MB@B{V(&1@i{&=kL2xa5+{^-tYZ0^`)!MznC)n zd#-mbrCZ|*5w2%wFAwVz7T|AuO9KycjX6*PBVI9HgF0~SOQ zlOXyCrLhATgoF_jIG`L$b`U59D=$!p9HMOGb^eEn>ya{3>B=v2*yzd+so4qzs~C1? z%q&PhatiV0*o6V`#9A_BA_Ra7`E_BL^&o+kb!M#^JAhDNTKh=FuK-RCC@;Ez8&fZQ zutzA*KTV<)=HHy6)z5e%@1$cmF1nxzjkzVJhkrZYv2jau5C68mTl}?C_0asfR`{S6 z{oCBfiyYhzU;ukwJyZq+K{ar9KyZRRA z(j#>$u<{1Z{T(sGxb&s~_$2vajnRi=j$IP_M6o$m!eTXLiH;|M*gNHvO#^>B{)EZV zFTbk{dXz?@^dj%Y$uk(ZIp~GD*T1)BIuqs>+9B|xr|>VnyZq(XJz_ui8iUgtfg&97 zdvO89y3#JTrFC?JxV`QvTC6^n-1aV3BP&M-D~jDvNqY%P%t0EBDxa*CZv`WcoiVn# zc~o0lzAQrwI!8uI&DC1QTcWAh*s-adwM0+J|Dp-f50@^VtkLQ@`wiB7wp_EVj6l#D zO(PB%QrCnoyBBN`t)o0spi+neo6OpLqZo!9oAq>QRxjK$y`LI-X*z5{EL{osm>qKh zz4`Lc7C)!@y82KdrY6n~OTb^q*0sq|u4 zv^8&sm%w8l#rg{9OVANWI}g$ZN6nf&49N`j!3cj|b3T?z(6V%xU9FXU(4o$hP0&HY z#nicqp@UsqYRsmMYoo#IvoN;BW6~;MwP4w;%G!Nv9oe2hps||1qn>?d2bc&u>Y!4) z5I@IuZiG`H{X91Gw3Zj0DOW8*j>D~m{vzB>uo;Lq^7m|Xjg7tS%~d$Pg;<28&9%*W zI=XeN>riGsX#yB0)x??3DwwKRF|#ET%KM~^ZMh|I`2|wSnbMf0{-RgtwvXH8gtE2P zimMyYUH#b)CD-H9LxLRzE+7@|XoKmQ>2h*5yk*suodZ;N@sR#5RyzKC!7<7ZtWrBG zU}NtJKBnH4(?&3SV{K~#Bm*El>bVXUQytkVnssPC^2?8P$tKQKrL{&E*B00ZR=OKB zwA%zWAH%>>yQ!HL`djwz_T0ByeS6QC^#D z$f{){QiUuIB`YCluY1`sW5ygRf~SfxvcZ$Z6Y!)ca@cC|sTQ*fvGQlc-}az&Y}`Yy zLuKy=2}+m_0WcAC^A(of_Gvg?vTzpyFIaF)EqYjRq`K6+R?|Dx>VI1>4PxZV_rNip zhON%c;VS9tW7_1RglY#|XvP#0vu>L>X^yE>8T)DbupwlPbjmqZ!x4LO+15YDuC%15 zK&x&V27q@5l+4e=P_bv>jV3tEl#7o4T4PpJg35Wv929H@=9+gq5+{|klc?%&-5vo0 z&4B^I>BK3`0@7}x*uby`xkQ!yK^@5WD=O(^YPCaQYtx(54iET+hjdHmn%2nIg(UXN zw*^0@3-2Eg%wQHpv<|Vm#9h$OR6HfbuC6VOlhefQ{nU&7|N<>c&z} z4YY00qyORjrY6mu6T_AR8A^_AuD&#Wsz#7Yu|83Wdb2UJYzY-&XNYKN?xV9%FnTFG zv^E|8m8=#Y(gIe5RW{S|yu$80V89b$NN~f07i&reWmP_&Ek%un%)r1|AckUS<#R$$ zh3{OW*4zT(H{rSy zn8jmxStS1Qkv>@8EP0#$o-hx!jN6E04IZh^&Ab&c!HSb$O0EKO;r(sjZtgnmX6YI<^>pph?)bSU3jGH@%DEgco%X*FbjLDHEnN+(-xqte z1=L*8dQmY}xQA=WSC|PJ`cir7cMDqfP+~FB4&$A{g`@=0a|fuTA!Mr#h0AoKQsXgo zt}h`M1W^|3sx~$?nwK>O1!GjTW5z=?W=e%-R%Gu)xXqQF9D1iU^G}XM&4rckkI*te zC%eE?EqS`@s4?{@pbnNfk@PUi+ATR-n%k*6Sa$IK0x3Otc(d8nX4!yN%`|A4?7C8f z>H4m&)A4)e_gvZ#kSbhU?c=1uu@L?A-qw%v_B;=HHiOWx2BO zifW$z8I^tC-AymYQai;?l2S-E=u!)1KCMxQv*4s?E+~I!Ik{SJ$z#F)=Mu6zj>Pai z_yn5Jsm1}&zO@_*ZR%B6C0!C%Qc_Ia0-Pf_5M|lPJ#wLip~+WG0NIXc3g zUQGb=fx`PQq7~1JuEEHGdaZw_hs_V2`_}eUZpEn;QC#27+m>bCcV~zHWDXjYBD}cW zpF-}zOBes^S7$wGef^u|FE=6y1&Duq+m>@-=cEwZBKjO>td9(Uo03|rN7eUCp>I)r zh!6)LdSTX2_j5I7#5y=H0bd{&g8`lT*)X_wGT(`O#`!e(cM#wCJ@>g@tVdrsH^ZIA z@N2?zU7YV`q1_^T>?*7Xk8FO!If-*)2;a1x(mNh_Kg?d-=q!}gcJcEz6p{T$K7jqc zwoo~DbCWNEF%!DBPdvZLT<-vCZ`dv@syopAQABb7-#;Jmq?>R%gWmA()V}y7`Vp?b zl(f9Yh{J#|e0X*X?zG|D$g&FWHh<>RWBgikct_XJ17$_wS+lG=wgHE5547lrCYr0S zzBHnrzDr${y%9zo9Vxu5o7#JMfP`xa5D1UqJ*v{$R#>+B{ba}xe8N|Uv1QFz#n`ia zG36C^KMME78Aj}t3(`W`jn+X4T=-nnpI7J~C`98(h%5!s0P~(waAX({5P|{-G3iM2 zL$p8A#t2m331EFgI4PA^Xl}g%fAFOh6u6M>D$=hXm&HALra_305 zW~07$*{5QE-TcJ2IoAdBN)!}tnQWU)yA|&*2yE3 zY1Weui)et261rTdEXjv5d(hR`$%0E40WTa53SO)v)4B}EC z#PQi$?6ZolP=Xn~fNSEQNqGjx3K!3dqbDG&D=-a+WMMZPqZor4FDP>=Lkg%-u;{-` zEg0leb|8uxC1!g>+&Y88sXC`pKyENWrfHnr{qa00a;$4ESlVuAhY&oO)4w#(E7{lR z6m4w~ct#9H8*l*ArlZ954}tP-UHuphVgbC`Hg%|)p!t3BENkOf*#q(o;)uUexLy~8 z4KJ67W(taI(TVC~b7H|G79qG8Q{c!g$}&Egmkw$UA))he0?5w}{X0$SONvQbaJW?( zmu##PeubcoKtOU+&f}VCcAL^bFwGEmQ0YSDMO6kKat>AnV1)Q)8k%x>vCgtq#WI-! zbG;*-;;u>P6(S~>za#{(Dexh21~)Ewq8U*)Am~(uX*8_|S+SX^vWyNFb_V1`CR&@N zlHDSW5~!(0AtWyx@g|GY+SidPNS0~l-|b>q^>9PgGcv7#Us0}j1$$4tA$0x~epZh8 z#t4KYy^RN3Imxt0*ce~IwE^9iwK ztBYDEhv-cHw`Gu4KMC(f4xwIO3GW7fIRMmDwC@sDARSl+W=?=(LoRPD<5kdvatBnl zHQj<`L)$rO@Y3)B*Anye)5;)1uM&oBr9m(3Y}!(QK^jU~Hpu1*CZGS|2*PJkM%sU( zA`vJBtbA?=3xB>1AYYW9iDDm|Xk=djdqeOoN)^O$@JQxMMUoWUHd;)&q7G{UrB>@_ zy;>I)YW}n5`7A690T!V)K53Jdgt%~7oDvR6<)6}>T1L%Mo$0-H3E_ zy=vfZNT{Jqy5EQ#M4bzCCGwmg5-L`+JTQ8N3h*5eAz1ksaVvDkTi~Wh{T2|eHYw(0ZW1F1c-4NE3Ir6 z4bwwfPYio<{l|6)nzR&K63e^1q7xk8d^cyG%P7)uO1TZy)@>Rh{H9@ z(uYxV8y*yd$#MJKBTL9P3iY>0HL-S?&l;DKwl;>*P%rTJ!ME ztJeF$r&pT|$BR@>$jGEd80R=?W|8h@$<=_*ar+^VU#tRg%_BTQQK+GwmPF83wy30D z0~MP*2i#-_c5$IjXQg?JIv#T8vtEVdVOrbA)x^?EaO`fJSu%$$5TssVv`*fxhz-Pu zjc)}qx$a6mdo)$uVel(f9uFcEnV#2Ql$xHaw$}DDV5fKLl^Sb(wm@<6(nIDQBi#3X z1ydcaK|@bDZ=VnSQGcKtaamD2q&Js7fs<61^D+U;G^VfQSqc9rcD~aa*LjG{)Uwh8 zM+)1@p+#L)K6%$&mZ>|0G8tWR8FAK%+{Bh{qJH~oP=#?~9r#O9f0=6OCSxt(lX8nc zGDHhXFnq{UfN2Zn(Y1jg#`@>?R%pyC(Z2hps1Dv(cq=7?^T;OZDle!l^P+NXm3R!O z!?Ukql=VQpb|S`Vb^`}^WlG7YjY%#+tLl;Ro61Ie-OGb5@W%vCZg=ktPGbx&?HiYg{*_E$7Br5N&9A(dt(K zC1)8a%|b^pmF{n+7U>Wex@(K(lM&(>Hx#X3&2G(_UKa0k_^nfM#gqtT2tF0Xr9=(7 zm*6JJA9*0~l1D|L@pr|sUSXX@_ADi_vbE@80qVoYDUO}Q1!Y!?R%3DQxg{aIS}{>? z*`~C%4;Zd?SC2Cm&fe1(sVglS&28THlKM#=`p~;Bz>RJtT^Tw*^?W@OU|OI#T=&>2 zuIN2Cfgj(ZD9SkXKP#^5*%Z44VLcH3rCzjEZE+ce`Tfl$;7hly)r z^&4thTtUzkI87NM(G|)$%CUi10WkVa+raKd{3a z#fFdRvr;wQd124Ph$^+>soj`z*05gj#d>h_j`6UsVot5Xy4Gf0=u32`!bf_xx6ziE7#mlyG&UU^o3q0M(PWR}XSY73tKHf#%1ocst#S4vn zS}gbL7}l92b8lKsO|i@*i^Yt{Ug>D&0X5x4)5phbHLD!f2$re*=R#}8Qlg0)h@jyI z_D43Z)Dw+QhO?E9_X<-#(cmZTS=juGj(oayG{&l3Y0DC6Q@Dy8qNiY=&ygt168#mr zBTx0O+JpMmJ-#Pt$F%fs=p%-N7j4mB$D+R>kG`>w?2<2>3*GTMHHME%|Hlegpf>3VOeORz-hP9iEzec17#wGe*9W zzc+-tk9%sjefF+=C=92?M2)cAN@t2jYndJSIHUUQ{SI+SL7Zjc$G|!shz8DpVw&1^H z#tTd^@+0r00(R(F)Q2b<pb8*n%wHd`&>0EgnT+zAYa~LHc)7Egla)r-+>AWCKqW z$fg10mq7^)wkE&!m_{bg6l@XbLEA;nr1P^ujv=$)^4gN3ZNmkRQIHxIHYC^GSP&o; z(9ERDFGBeZboQv3u`+_MDU;aVUwp~-gl`v@pv1eN{KN$~3M?t-B_W2w#Dq;bgQ2l6 zh>ss8+~Q%RFKFE2MW`~SQpRbHqDzaSy4sRtEyB?p`uq=;fby!)ExXtl{Euf z0C*E)D&1KoB85JXT(W^G1z%7ZOJWE+QV8}`ON10jETU}y*^;9H{39rNuki$pasuL? zw(W8dr^tZp27oMT{35awgs?bLLqil^QxYCI5iPjMF@jT5Kz2mD>YQu7Anj6X(uEw( z^^G=M^b9rJW4xvedwG0KI9l1}n9W#@FW>kO7hF(jmeoM+az5nAFO|nc;}&F$z>ZN0 zaZ`}-D^had#9!|r;xAT@glH6hIZVpLdy7P#lk&yCx$L&qYNej}6IsJMArAE)cb%AE z3>)?@*Zt#yt)||7l|}sumXVC{pwABHHhfJP_)DcoH%cE- z7GS`EZ7koXr_?!=Enwz`aWvIvFyqeAk(>VQ_?iRJ3&87T&t4iMZ+N8L zMfjc~Aq7%-BZ=ZH-5a{0*Ec{f74YZG-_{l>B+}xDnpQAm&+NF~sEdxQRrOMfbE#j>iAB9|et$w9 z-IJ7qgWZ#cQ-|(La1G5Mho*AN_cB!!HJdV2fTE)6Kh2zw@`%^wU!V_EwnS3-WGRSn z-}ThZTwc0C<~nSMNI9Yb344P`C|e3v0q}!twsRc$nU=$=qUIG*v{NS&D%2*VqyXQ7Rh4V)d%rN%hL29IvMW z2%xKTS4Hs#hyn-4f~cTjVsyj|%Oxt{7NoEl^(oz2mqh8q_k7}*IVmxYo~trI;A^&Z zb^i6^IBX+)fk+apN%GG4ker+5pJ35I%1>HevLS{RRHtAi)71{7`L#bYV)ROHnTc>2 zBi)+63>#|TlUrRwLtd`zNt`xB08pT4R$dlHFWZo%Fqk$fqn-{r&>q_x5G>Hjx1}tN zB*#qKi<_K&YVEYwe#6LWng_F(DBex18)=|Ye5H>73Q1p+2=$W#88=ECZy+Z&2POs% z$J`8_qH2Jq264HVtKqYaNDBw}hL6=ysSKj*-t?@}pirHl#!~r-gaWAr7+SJObG1w@ z1#FRAnsb^!yxXy}X&Eu@@9-HgZDvcYv~{Xsq)y(OKwchAG#F57!fGd{ZsZg-15dTN zK1}o*aQaeOTCYiM;7)i+N-&;ZkzZcYc#UBrCc$e1IiV%zKsV38$c4vZ2HbApS&E*3x5?k%W~z zsNa# zvd}`!(f&yTF*pGEA()*9Jffle0U9enV>h6g>@TJBz{wPy!18X$e^gZVs*z93)UKXnmh$|H_*a|B0`}}q`-&ZF)np#rAE~B#6(a+a5)ffD# z$HPg#d8Wt1%U7%qO*(yhER{K7uDPL>A)exB2A)ZRc%{G^yp!O{s(y{0%#{6kbPR)1 zT(}n}U(7NyGb>X0-MVM1_U#g(=q>asv-Z~d>mAh6&(VLH&`2SWgbUn>v;a3-xsS(o zWYaY_{;Od#zgI`4X}th9q!504O~x*0s*6$zLws|5I?IqyE&7AWnHVjjbx&9$YSIkQ z{X1J>>RaU%pW#I9fCKV@?!6D9qd9BOjY*>4{2Ypf=?|Q``eLYl;B$uecf4Fvc7H`X zU~Fbtwhn>_P|c$=M?0S!V8=1C>o3Q>&|h>`Y=xTjH$zGa>R;(Wh`Q(+Vfk!)AIv4DjY#pZ9 z(9mF?Ig&hUeO82^x2obBanT^1TZ90`5nmWx-z_Z15F6Ek2PGJt(0Lw`B+rv`GD|LUhj_BrX>d+E0V-g|k9w{4Mv`g|Vr8=sQmg%9#sWx|^_lQ#T_XP?1M1t|n7jZp8bmuQgL-v^^GW6ME0mEmd#?#BtcOcrU zeg@1pB=UFIm&EI=Q6u@+Hp=%a@IkNKL0(?4Kg}bd_#@$4%^51kyYm_|WTf9n4#Oj1 z_aeX#DIYwU@I7uD`b^*pfBsbJjBwJ5?7da`Q5`-;1Gba!5eoU`Hf( zOFp*)*1`XsM<(_X3wt+;TXC!LuiO4tSm!^-@9}N^HUVdjy|1fps244Eg@do6^3OX9 zh8S{$czg=*0qUQ0Bu-nDy-GHKZfrc2yYJaEke*y3iJK`eH%Vi)wAG;9AYFc>KMz)x z`Jqjzw7!Gv;)G`=(GeI?e1PvLq>$jgaJ9E70H3j77eWTKz+T?HeKwgkQ|BV=z53B9 z1M!3Yf$xaCeIe|hnwO?e-18 zxxe2`>mjq9ost%m>mdhqonc)IGI}Ym2qJ$@bM@}EbcdA<>P~~df+f`@^+ZYhrfx%O zlII9^JPN8Qv)GnBD)^YJSzw?4boTfW68ugf=WEk&1JVA>(P$YpSm~_jc+oWHIq}z<4+gudc zxgxih;%ahoe~NE4tpOzb)fno@LLl|c|1dORX?ikYb;4j?FfJM&FUA1XMP!g?Fs77Z z1JCj*D4CHxA$zAxY{QOL^iU+X4i&xS6uU^&Td+iz6RNEqPkf=OccL|Ai2v%D`l+Hh zD0Ieyek}M?t0ijLM6&h_?sEux(hbgW@ zCp1}e+UsJygw+v}x`*$wu+QmBHO@%3lAy1(O9HM;w&I|#Az0mEqw;)#C*j!!d_01) zUhjg_I@O;Kor|EpblN#E?+=~4bI$9TDs%c<*MT*rj?jFfUdJqQ7IoFnUf4YWIhhrA z{vHLG4U0-b{^ue5fo!EgU!|DuqAl#`kG)-UlNvHKXa3#=3i9y(2pJ!#%L{t%g&EDO z%kz7mHySS2&Qab8$|Gkawb8+gda%LX&GZ57p(C#LHC4D|r8vkRch5AdT zjT7lr4x{3lbQfO|7)oMYx-P?(AW%f2)0A^@z{Scj>k>%rGbMp+E6}d`NB`t8flirx zaLyN6;R>!IiQu)-wV6s072M#+qNaYMk6rpEF8-tX6UrbZPy<5b<#cgM&&q>u%DkcR zvtoZ6D-+*~D(~b~?LVS;trk$FWr4)KWsQBa^IE$b+oB!%@;#3D^Mc~poloXp?Q7m= zk=`8$w&?R>@Pg8ZbAw&0(?-I#C-$O(rZfb2zAOb;-%48}fz)M$gl_ndj2vihU2eF) zWucQIv!{!7Rn~-k%hs8PL?<_nn?~OQY!$Itv1wUOSkz4M;_E4lbw@&@9iO{pra)O_ z8385cs9hq6I8X;k#00R*?penhv@GIwH*Dr|o{aPutOr|>4(%Qq`pB_@Hx3EmgQRb) z1RT6#(OX?U+`?Dj10gzSv%?4ON*HN|ch=NVsG1Q4QAoxD)B)#D`uC2p2(y5pP+AdQ zx@H1{)y#eFzQNfFNoG$eZts>opg0#qruG@Oz9V6i61=^(|7(po9}DKvLf-3e#XJ6I z5jl>ZJtfZnyxaCD+hyW)Y#cq~p8_(^OgRvpZi8~h0qi2HY?uX@^?6dlc?pYWZe%Vh zCLMTf_&{j<3kwdalB=m`O5K1$u}*H?_|p5LMTY-4Qnc`2HJX z7*)h{BD1eS2;)v1a(3N7?ZaUUL+uwTspJ7}!MG&$gfMV|v0JM!jHx;S>lvt}lh6J% zmpC36)aUA9NYyGx4^@?3B|I+Y`?n8A=*E)jNIGysM#lS$QxJj;Mo(u8rW^Z6!wD}& zvS=he;0}KNmlGx1t^(8hElU~Gphj|`p<4*WW%1U*a*-L~%;)C4OHa0@si7bPK=3ycvh90UZng?ktM2gg4+XBION!`%!0v_i6@tV=$*a;5pfXl6YgkB3 zZc-s5Yu64?^(7AsJ#UZnJ#Ap7AN(z5+B#>d?OzFkcya>UcCc0uKJ1~V)W@5R`@)d zN0wz4pF*nD21@^_sk=c!8Zjcpn%g7}jdS*qn{UDCyR)t*ZJV;bN2SC5VsXGLGU5p> z;>p10ddU&BJZ)+%NYjHiYL-2-SX2&nS{O5RQ)AX0=a9xZx)Q9nqW3S>AC>14v?onH z;+`y9h32KHXJLC&9wnjKJK^0)zdV?CEXGIn7FP7fdOyAS4{{f@`>9R`rnjCUQYwQh zH!XlQD;B-;Bryc*WgCH(b`6G;D*r`@4hNy!V#>^Afvbm_b)$Y)j(Oh>bNL~p(!G06 zp1`vZbdS~n7vkM#DPnGWMhGv5a$%aa;6NRUX8c$~-F8ynvnykZOk#&W6?qHn=Vw2n z%xxtxqFi1h(x$&JWKD_O%ncZqeSs=uHQ}xZCPszcMk)pIhotldhG)v{pDSkQFIZ2a zMxttHEqnR7clwoOLM{9Ez;kHr3z|8Mk&I5!oeR!vJouFlqYo%bzL-`;%kW`&Gp4{*%iulLM4O|rN1yAaNcS`d61z3B)pS>w<@svrXYs( zbtcK3y;Mw$ ziS#l9KwOvDwS3OCn%PkvzT&(7nB75K-&Hc)z8ZcvewN~HbiaPd?anJf$%$LvRgRR8 zQg`8R++CCG^1y%Y2ENyv_#kOowwCm@BP`ve6>}Q=emH#e>A3NC%>DA5cyRIRNW1;< zQK5AWeyZHz6xIGPJi7k&>Hjk9q>?q56l1OkYw?u0WO+7?9O3&)`Tg4cjMhhRIzjbW z;EOl`QYQ9p10o$blq$^ z8H^Y?;(x{Z*+%!c_zod(_nsEhaqcrQhM%LrVOMI-e+2qzFR<6>6Ub=%eFw_FiTNt+ zzeo5AqJJFsz(qaxI)V7Qg=X;zl9vVouW$D`hxv-_4>GF&d=)hk=M$Lsayn9i*4M-N zy@vUU|DDPx34FDAuiz8dYxWUN5?E_aayUylxCVRiPi##ix#*=A8lqek+g;5#9 zHuShUOfS3C$BESBB&|J8sD4#SJK4QLt#{_2CbApwpO5&&%Bi%*dS7Q3nuehW?#JOjdB zNZ!zhg!KNvd+bc+5|6pci&>NTPffG4ia{V(jcP}_SE!4V*Spc9k^^%Wlri4E`G=;y z%M|h^N5)~(`)uWJNT0ptY=UI#Ac$Xd(hm8%b)8*adOp9%J#E|Gh;+9=E7Zs~yy8fv z4&6ibkm7?>)KdYNc_r(TLTv?hmMUlFIXmxvu=Y;Dl|^s6Z)|jI+s2AIwr$(CI<~c9 z+vqqQ+qP|Wob=9rfAv+JQ>QjAPSw1abIi5Y-5T#R#(1CS7Yl&-S3}{ob84B*r+Cjv zh#Z|P|18%rLcn$AeRSiLmzNq)c5tGxo%P>Rl1X(+Mkp>_tVYMJ=n&M73nxgSe(p!4 zp}l^nj{LFC^XZ!)%#a5!2ZfAE;~kSzPA%ToY~ce~IV?z}1vco4;E86I3XiDwrvO_h zJ$26txj?X@p2NAr)sMz8@J!9FRE#d(G=5G^Ii;G%|ke z$O)^{+0Gr3ymR}p5&q9+A-N{UnyFf{=~4?Ur{C^CX?lWO00d`CMmeVxrxmPyw)q21 zUnd1DQtU?YBZfiN?)1snrWbsBlZ0b9Roj5wHM`c1k<7k4rn7~!Q_t=+H_`Rs+~AwN zHxFwylNn{F81~mjoWM48`TwZ&C|E47>r?IYfaXW(Xrq3|1={sh83SE?HBIQ}8J zzs1}?XLSk!5$`v%Zt5@>Ph9u?qhBVAM4j9cBse#9n9&#{h}_P_<-yzS%Nh=0U_`Y9 zHf>Lg14%nDgM%!NVereKbZSaZCBL?<%U>lha%Ser(RZ#Uv%H=HU)1$OHa$s>L)9Gp z^qdT1T2`7x z&M;={Tdu<+I*2^`&g1*s{-Gn}FBsX{{mij{x^Zn?I@39G?^s;2%HVijIBSWM4@f<{4XC}j>d$GirII%Ir)`c za`dAZ=)!HIU?$YOI`t6^1!PQ`It($g65|<%ZkwF+wOz%_@|*vj&Kmc@upE|Km~tvg z`gEJq$vBQj?FT%zINwQUJi0f_+|;YH^Ym-Z$c?YTy201i9#kNqFUqj>DgAT<_e{Sb z%XndL;iz%U5F{oACMA6I5O;K>H!9YEf=me;SL=<1%qeKX9u zQBRH-YRWZEjA0v3{vfVf$|{F3Pn}_2*6mb94f?ZJ&?RLG_B?#PGWl{E5r#vR0gGuX zfK4X^fJ?veYEO5Lo0YRrdp#nAa>HYDK6a6CYux%0j}%!YC?!#`E(<)f0M_6vWVU;? z-rgLpR2@~i#!a1Tqm#TEH+xoQ*>jG*6x*AX}A{kJ%pEHh*~YFi-3<)g5=@V(}0`jzJ1$ci9BtYr4XZPx=iz|FcG@NC@G8b$GMvc`Y{jfDGDT>s zIs4G6PgSOCAbw=sX^)(Q@EKGen?xIp>`pt{v8>2s8frGXZKgXJU^h7*4XHBx&b~dj zA0iG($mq<(Dv$sIHjWObO=DMHTA>vAPOGBVSJ174j;-zjm}1{(b)9R393wZIfnAS@Wq0*oweWq9pM1m(GQnz~YJQ1)w>`YprG84Y@dR+cjkAJ2JvICE zFIAWWn}Z~7%Y*D~mFvTo!s~VVe!O1|GD6~fHRqUg&J_`dGJZA72@h;>&{&RWLteZj z+O&1@A$3$6^6$g(B)ct2YC&{X431`dJkf3Dc$j`c7C^{ZWs{E(x>LxtT&iFH%9Kv6gUmk z`yBGHJ{I+4eu=^uA`%J`A?3=%GjeJNdf5=mC9Zb`!vffMI0gxZV`ACi1ry{U_#+GfOgp1XwWG zIe;pZ)Hd;q=ss;4kL9)mUV<7PTN~Z*_{yORhFpVbH5D&LN>BSI)=6SL(3B3WbuKy~ zMjuDV^l{E%OztbKE?Q;4-yHHc`4DhlApWd6*wI-Cq^c!3&@HR1>g0vq4OK!kXm*r?KF>Y-w3J7FtGGdBBgJ)t z#`HBE>^ESYjcnG(yvsT$AuYk@kH&~}S=_PnH@N$^?hk&%I2W=UcH%|m%NP^FTMn*H zb8lPU$(mXqA^C{!c!9Ua31aTOMue`!;|u<}zjTN>%EPE`a!e$q4mRa+3f_h5*k?E2 z8;tPx@`0|VBNA6S^$vUM3c;Ph1>?a|?|9@S&qIj@Ew$_P(KX4m84YP&K1%0Z^o zbGI29*F&mZSjUD}RHW?B$T&!CeUaq7j-|K%(l~?UJWs8+qAnXOH1$A&#?SaDwkIDg zWwUb)m}$GOZuRVG(MAKY6?*klA9%7+n~q;eoVUsZ&dMArE|XE&r^Q*`d8?6OJf=>j zxgv_(qRB3rhdlU02k@48!TXukWCgh{&CLRCgf;o}V!$KSQbf z`Y&wRTAvsDpUS=0hJGS0k$Cv~*7&{i$&cQ}I27Wx#^H+WdimQ>Zin>0s}(H&SGD3hzgOAJ z$n?K+Xi_y`eY3?d{wcU~HLc}PX7O6#X;btcQ%eP7!7|J$I@;87TD6FU)@99@E=*nD z`|XrUp@@m1t9IR%Q-R@%^+9MracW*SE;LyrLm&O}+1sIn^Q8yc84V^|NQ)T5%q;#dOAZ z&b-|LHks}~6a;3r7>6&-zo3DC;bS%iz@Ax~;|o3!2n?x*WX}qDHa{LGTX98$037enNejzZGI*$8@;~y zoCHr1C+(}ZkLS9N8b5E)ixxL5*SL&fS~~(koG)yeFh{T?t3q|P%;;$iKZ~cae)7FT zVzkAM$7D~{`rZBe3t<-VmmB=mT*kzX8>0^7$5|{7<6h2sUe;-;92`mvjc)V>`m#x| z@J}dgTrv$>U$ha3H0~hdbpN^@0HWW?cQaZQaE&Nv$1 z@XnikA268*h`(zhoYLeyb+_OjihB~=ly@fj4``8j%EU8`ma*pNRwkDj^9%xuN%YmX zY#+LNST7Wif&ES&(t9g0fVds%kL6#vKgyfQ7*MH_QKf8V3twa2VWv0quzICE^t>ml>_qM=h>+0?D=O8e`c&$E z917jd_E3pPV-gJgPz}00Gu_A^(l6NeY{i456w+cqRM6p6wpw9TS|y4~nt_z^K5VtR z>R-VZK8-rC&3xez=rEJh|6E<~?vT%+LiJ6dHL~~yI*RTxt_{JPnkW>=y?{aT`Sv~8 zsG58MZsTtIP+PL%3_AXCq#{M)zMVy*_o3$@g0B(w-+W362!<*+&cBn(=@Z`Ugga@n zFuFgoW$ZI`*ejS5ZeuC&hK#*91v%_}HnB@VO4ej4uuf@-UAOIyb-`thwbx}Rr10kI za*Df$TkO2$xph-IH8At&__%ymT{#DdXBH>Pvr&MvvHA?+K8ll%0(5`#x`qBesN;8t z42PAXy5^IL-iBbxq3SA~e!Nakh&swKtDfo?`J_L&A1+}U!?MJWAlTq5xM5@QyJs+&@fFbn6L{)#KD!ss?XFIE6iq+ zP+B=;oPO!6sCq{71+?L5&7`jN#Xh#0Y#pnbyqjYw@N5%oOHEa?a3_JT(HBS695I<5 zvC?%7Hr0X`m!X_r*}P8_MW$g?r`feDq{x6ZEhTEMF}DJ+zLqh8&({NOTyNDC*^TE1 zvBDYo#XBbkaV;I0WD=2RV5S@r@UHy$5S`yr7|4^t6s!(>sBwn2dmxW)F{xjqf!`}O zI&HW`4;AUB`31nJFA}T`b*{;NFD=r=273KdgU*8EyT@1YX^|RdGrk7`l3Bx@)kNcw zkj33k<#&%wXd^8cD5QmnnD;-38z=a3CNK+up_bRXn7q)IdvC?|vQDOh$!TPKL`9EM z{MpT}coS>cCiYK+#AscSo}@S}WL=z^5ku2U%&%<5MgTvBY7rFuIKp#>V_tk1h!;@t zJYD_%IiDE9@?iF=0xgu-p5wG`N3NT23$B-wW0^eaNf$cZ+u61TicsTUQ{57?Pt1qM zpSMpnmRsRT1GjD+7h9rF3nkfL-N?$ChyArZ7|@FD5zL?#T52|oGoUFqsGX81Ki3;j zOCanD?X35BWK_}z>B#kI8gPV-qb*=-8~&oUWj+>Sg%;&_2D*}64aU|;>}_9ZZ_Rq& z+8Z@oRx6uEoJ1i$lO zs-z0Hz%P&{h&gH`3)kQ+a0BCyY8gYlkrU%Aq{16AMkr|Lk2oaYe&A*}27vZ^$+oeD z*VD^sPKV$*!^|Aqz0zdQgwy~+hS~QZWnqqfFiN5^nhN`b36?^R8PZRXw%JG*0N13! zdcZ9KuF*2GdF{c$!*|=PDL(RZ54Y%05>}j3q zNWf|t(R2+W3UA!KDgXLxE8dn1nMUu3G7L^Ht*1q-mEUV*_w<6(;AZ9j zdyT#fe`OxUIXHg(XZBT&fuO>t=oZShO}oUYiWmR+Ru*5Yi0yh zH>Jpgd{s);8H3tR#1s4+Q~ub3|&53MP?BSdw|t*}eun0{#5lX~la3T*o+GVR4xc4&&>eXsFCxi^}-R>46ju~v_> zd$dA_EvbvyuoN%>J239a{o9;H8IQ`7#jXXh<_VJo7p=J&%%RWD@#p`{RSU1`pV|G! z6IP@C|019MpJ4WH`Q(YVg7PJyZKW{}7AHsvhCnJvW{{CEC}#>rG5q5faxWB?WWJ48 z1BU5X>LG~T0^Oti!h7J8%tkXJza?IhaZy58vBZ3-N7lC70%iC7yFE!DZ&PQ|QE<@? zRX6Z?yUXjr{EN%s>COe255f?D_%atBFZrNE#6|Q_MD$$FeHjk@JUTj}=G%{qnD=;~ z!c9t+_jJJaVhi%TU(WtKcKO-wC%=fFd|l5@HjkfPN<0NVpZy~dI`qBE5jnCax$(&e z$A>(SX*asxPpXXx{<+*SzTzcnG(e3fKKf&2FuQKz-XWr5C#At5@}m{}1qqI}ht6f^ zp@>ic=GhPU{ws`Vd^8^HKS<@hGFty*39?*tjGrsFDUx5poNpx&{0sv#5Vv$6+L=2M zrw(E>H^pA+DIfX>Z^7&VDaQ)5Uza018!iDT*LCxJ4C~i(w_FWZ9`k%vdpCuLM1_ZW z#vgx*-yP1rM&keNr#O~z@KH?*6zx@qx!{U(1c?uxkCr6rkcpASi|ca&Rn-ME^L!6A zX!4V4=h;(B(NaVyb0|Z!9XRaSaGjatIoKZpfumGxXOuw>mh~&6SvgtSutGYNX2tKg zJP&K89SRWMQz>UKFG*+Fz$u-sj*-osY^fudS^}qS$}GH7ib=c;^Clpk^bzlrZx)bi z8QUv3)hbf962O)+jTV9B1sz+>(o0KwWhU}!T3NsW+%|doP3hvb*3Gt-&Ur7Qm8{5C zG8@HO#OwW?1H(~s7`p8nz}o7GLo)BJ!bMf_Q8tbBgCQ}vDvGcmvO|#_7;cBuXTT<=LVXk3wAb)Dc z3Dy%=7(e7S8?p?O#z3%3Wh8sid7_vUf|ZspA@-@{Y8r}~q|j>7D*+;S_q5Ya?eFSb z9H`gBR27;Ctz~emotQIiBy&Mey7rvycQBaQ(4&{5lR}_sC2M#*XQ`_e^6slZbXR!O zGEe=Gpo&$!r!cqhC!Ue0IV?Jv{D8ufrER30q72L*!6{igPDz{q#w4Ug^X!p6MAtP2 zop7PTvZd>E`Qn&}w3c;HBxv=&MPD_v>GqrnldRlHcS(<2dA7%;@0(4|9ffGAfNGBD zUy@D!xn1T7wW^hVaIGwS<#{45nFq@uZB{IybJZ4&cGDJ~SvZr9I#-qB;MpF@QmK($ z924c&t6fk&508V4JA2 zvSt5{$Kg2X!f*AD8M(dVa!z1HdWf&LHvewi;7-Fn^}t{k%d5BzUPROIXLhzrxwf`v)# zR-ML8?iltmR;vZV?hoIUFy@mFFYD~zwO_X8bu|pC+WmFPu#q2Wa`I9`LKj~{UJ7J+ zI01ybl_8E+4aLudWEPk^%>D|DY34B3<))c}EDO3CY1W)s;&t2&2m64}dFRBM`ZMKV z%}oQjRWXnP@B0O{$*tt5(DvkK%L6i8zhlN}!v&}qese9DW6=Y%sPTaX)tKWK0!^_z zpaFl%47&vsRFc<3^1b)*a6IkY)&A}p{bnl1JYYbZV8%>2tR^h|E;ciVcc-gAts&^F zI=|^>(~AE_n>R2wi}}YXi-$$y@wzD|)qClbpX|q)Gwk&$a?PXZxc~2V6&B0jHiUtR z!eoP?bNKG*57Wj(yWyS|DYm7Ju^YiOPy3BuG0d}g}dzRX#^O7;|wTyWxv9JdnsjfZKn zpH$Bq{S=dMvv;L%(9MggzDeprTP8lPWI8^hky)E(Y@ZO@)Mv+o&vzE@f@-cGWoj)a zYgWzGdMxM|FNI@#o#Ups!wp1qPURwP@jcKu4v3NC+?_^GQJVB~n1Vh{={;7r6LRQI zIy+WWis#RgB%)L*t-kyGBSeDb5@N@ks4en%)7KPmXe1sF@yV>|>{D#tZsCl9*>(;-M_ zA_$ZLzEmQfz4h;RP-28Xb74nH>kWONavj2){CCNN%xxG2r7we$wQCm7*XS zXWm|em39*2%gj*c2l2X*wZ-`KrMitXo3nD!7323~OokvCGbWD*7X_HHzR#XEk@|WS zIeR`<6zaAxQ0*J()FvI--j#{@#zp*-{C)Uu6YRMC$3qA|y^>n5FBZMK5GYExo@Orw zBYqgwF~fDk>UNQIbKI5Ez&@EK{dpdO51gj(bS168u#s$Z1tyldLRd<0d4t{^-!w-o zq0@?!u9nC?lYJpy1yT{uA;37=siIa_k-jv?fwej(Bns^XC%2yz?pDJJCb~ZK&kUyH zEat3mw7N_8jO1?RTK(z7>5(uFO5O2qSd5c;$sq#K0?6o1jv`H@x+rj3eG|k=Plh%x zg7)-5U^Y~Z%AL2tmA(BPlzM)BAs4Iu%ln`>BLA2PXsP%Wv-QR~Tsc{-75{i5TKUd! zDHDN^NGEt_M!$eEZZ`>&0{uJ8@=93OK-)QSrf{yvZG#2UfB})NKulHVg%&yPJ*HzU zy!ubinuL01u-FaZZ4|x$>=ien+xfk@_lw|_4H-|l7?TxpekadQX7$z4+pz8y3R9R1 zVv$uA)ADO^j!DaIlG4x?Fm<>dolqSyPwdzMPobhZ&O^N6^Nc*K?a@_OALQGzU~8=l zy8N|Ju;n(b4YO(4RRckIEbjWS;b^=^f#Jf0IMneu%7naT^zJN| zz0=B<=X(spwTQWmr(K=&te}~+2p?;g+`B*Gy@2LNwXyjvTT&R=?IO}wA|6G&#hVmd zl{KzK)*|Ec^Es7GK37SAH9rD%o;qavl=gv)BVB+J?vrM#++MGrF5^;niKkk>3#O1b z2IPz(5Tgk$ZjC#7XG9?>haq<_;T71^62{+U#cRRkrA)e!4vu_A~rY@au+wz9dkD{5@ZTvMF^*bJT7in69Wysh8bJ?V!73RWi6JI4drj-3nSl}JX7Unf2zL2$g{gtkI z?XkWKy)S1vK~83^KT<@qN|Pf-ZwuP@a_7BYx;y7Ah^euB<=Xp-9P4RSPhqy+Dub-2 zALraDthu2e1Vb2b5M`2~LpEY=ZY8&B!*Z9oj`B#z5c(kg65QvaS-GDdI^>Zjl*(N8 zgK((j7Aw(uW?Sp)Af(B0*lLmp>rJF&c4snwH(O{$@^s21VvNFX(YxCOnSgZ4FZkt7 zD4>({w8ihO_=tK)nk>(_#^C7R<=oud9~QrmvjF@zgYaDEQ>$=+li4ODeyT;DDmgtQ zH(phz@{t1l@Jgg5{7T;D{sJ3mzVr2QM~{J+i_rT;(gd#jij+1vm3mUoMWo}$k8nk|mJO+y2#&5){rfr>K2 zfaJl%@nE$vmf_pONDPgD&_>f9VUy5@npkVQu=DuyQ)a$c>f#Yvxw9m80f$G0n1K!G zUV1QjSm1EwT8f-=W<&HgpHA6ucHON(jAtuqPJ4WLz1Gxe;W3lTpZ@Id?@JE^`pzb_ zw+x%_fa2B)(hfWEwmOJ3hFQXbd7QX**C>X?jG3FsM7KXANSR#oEht6`M}?JfTyk7; zEFUq_y0S5}2T z{r3h(41b2R0&=`|3~z&C9PZa!O?`FxJt(@UiT@7$HJz7)FGm^Pqv20xVFeSjP)Qb7 z?&Z%Z1V;QYBOi(Qr@JgU1JgDg3YjuT!wgMauLiM#|6usoE%aD^_tIU&z6o)Tu0Jju%Rr??0lRQZ55F7-tHOnRQ_J0%mW&g zNSmGN_~gm0a1X@aPMuf}IaQLu%2V|2B>;Cy+~otbVNHi~=R6~IUaRuo zg_JGEE~JSS_9*3>!pUYLk*588jE?30bbGP(TnLKF{S_=xDinP$hmv_LW`lCSa{eM_ znK#cY9wes(H@%&v2!#rd7_tJA7MbSxWX5E0HDpgdv`5E(8@Eo7CIW^eWO|k)aKj+S zQGw+~nc_TY0y)?UiUmF7Aiw(JQSQ~hnzf~r9z8clO)HUGW@$oxuTx?T&dE8K?$d~> zxsnv_!}5(SPJkWZMM;Z6%U5#8%45Xu)kodzVPHrILJ^J_@tpKbTUxx>%5(f#Ts^L$ z?TKHZHc@yS?l>z%aCduhM~(ZNdwp2~?_wQ6sqi%XHuK~9CUVew)O2O+mn3rgBfGa+ zR~%7!1PSf!?v_yYc<#@cR@F`)p&?|g3)*1Du7Z7u7nb0>@)sHjKg>_CzAIIb4dC}g zVhrNIdTKE}qpEA-vvTKx@u!#X!GCO516{5}gGNcMD-;j?YxLLoC+aq4IfLyAZ%|aM zetpy*=PKNSEWH`CeKwWN0Qu5|Hv|nE@Mj9fbmGbJRFb)Ms|7837rSB|1_H#fT+L$%N+JwXuRC#lt#@fUNbmD8<2bX z6g(i^{AK0|Mn{dSEq+H@9H<$B@5t1T2g4|&^&L9@!r*)3J&aj^N}-lgo$o41r!T&S z+AI{UX5Ucks~$R(^q|E{pT?EfvS3W}S`AH~#+3Ire@OX33t6igHT*9god%;nQ#STa z5sY3)U9@E&=_ZG)(v~RB+4zlNt2$paX+uJ*a-vS+vHCv_2Q#x7#YcXbDD?S&V|@ZjCNflVTPvgYf1wtb>Ri-q6CYR@tRq{P=t2*=8qt^{ENp0u>5aG5S^!Igw5cwfN_!EM7eH%QSd_* z8EJZctK`3o12n8%dtBWv4xt(=ShZlWg4dXsmqK}6 z+nW#q_^0h10swo!`^>aE?v>MfJn4<@#dTfvkksDM6?MW%>&k&e>&CtB_SInl=gAMB zm3?x-hk4Tg|HV*%=f#fAyVr64kt|*FeR{mn)s)@w$?~H+hI|C%1XIKA^Q_q2L=*Lc z%{+aVKZ5}DnwD-SIduI$OmvdH$?#FaAMd^bd1aN-7;=xT3Tpgv`y>j<91juDd?~hX z;!R8mGG&d&@TwyAo>t{6x?dbg*Hs7Qt$sL58U>JH5l?(F-H!f$ZvgEV(?@@`ss@&w zJM|LwmEK7UqM!_Fd7z=K_(X~##YfN2>))KAW4AFD5g_@Daa!OpwVLHI>yneij`1I3 zT8NsQEVuq?tZc4`o7cpd&uj~Asp)n|WdD7RdcghgNcugzt(BsU)NUKTtjbV&+1kDD zh>LlD^yM%u-456E`zc) z4ui+`nYC4iDZU^r`Ahf z6kjGmgMg@`{O@W#>;HAFCs%c_F|+@#&ZyK>JC$|8A0y9)BvIv>L)v08I@TQ8pf!H| zmDoxPqYBB*U&Ax*h)MtpQ^&-+jc8in3TOCf0)oPJESbY&~2*jY2LmF1)m zd#IXMVMeBCAcnC*j>=hzA>~8n0sTZ0&Lpr;r-}w3wrX8S&Qvm~)y(2}0w2Ax_zbMY z&{`iw{hig8h;rd_pH);%$yKAo%RJBhUTln`dEC&~TVnmr?W(ne6eDu!D^P(=D`3>d zssDL-pkES0OpF~)!H;^f%Yc+fN1Itn$aWjO2xlg?qL$NV`PS@eo2~jN{U`}g>k%)p z)mDrOKkw0fO;U-Cz{u$JZK9|#on*;y#V3#2U!_zhR()y+vSf4OMd#k*D+II)-n*A* zs=D#BV#E)fW~d63;|8}akfX2>vrw+H$|;q~WX26~dybs`FwfR-&SB2YAFJbP$(VLF z&l)?UFL~&Iq=NlqhL>Vx8l6nmx;>aey%mX(O_@ZKOgQK!+7DT{9Ytol#h#I1!F~b&!zXRS{t-YDa`$#I*qM*~Rsav?nb~pn6ofa* z&v`9|w4U+EWw#l>qr*ukNZ9NI<25=wFxqN|FWzHv&^h{Si!apUaDZ|M%}FRm*u)ag zXMX^D7|xkHNMv8W7O!QuXtMOS(FFeDZ3FWHg5u$*gYt=&)2Tf66)+q@(XoD!Cp`o6~`@81rlT4n^PE{&Rgq zx0Tz0=SW+4bln%(c197lwAAb8PvdC?`_|wYw=MtoJ~$V*4YyJwt#U@2eCLRigZ+#y z-1x7V(JlTJNJnlzo@W^R!Y_W%4GdHIBjo@5KgF=X<^;dNG{WBpDgSFN{vQ_m|2Okr z+SJ(O|Ba4@Hbh@q?y;aWl42F4E+8X?p|M0C0>h>dV$YZrR;p*n0>$L)bn*~sc-|h` zraNy6gw%yM9@zGApr-y^rjYkWf8)#6lqL5xiTLk*?$!Nx^C8FOru}5Ioh|v~%iA$W z**c}&r{FEwpGGlY_76Oc|97@Z{tmpFz$e&?Lf}{6twOJXSS8yh0kdj>P*@-806qJC z%tzo{g&+prcjo}- zj=$Na#rJHnvah0==D0Ty>v{PuLDzBvS;U4l-!K}THl_bGno$`J>u(yWf<8fAf@33> zLoI?(f;>UWLR>V9@UX< zm$UaOFaYElWD~Xx-jT}?!;oW_u(vz#9po8&8DtrZ5TqCc8H^B&55W_n9_g0akbjq@ z_aKl8L;)-p%ocT%hr1m7#qk0VgSYo$_d^B=8L!r_5yXwu*=)~97qK658?yn zg~srM&hSH)mI*ytTq<>u0ge$?oiZ*$b-BJ5iDIDPR8#qND$-OXX|Z?tslurffZd9R zm(*9hWh#+eZ9a%r?A>xM+lt1JXc`>LS;fLhk`2?YE;Wa*oHHC+v}cMz)6{H>`CLG` zY?*w{_Y)scy#L$NxYsiw?9TR<0E7J}0nYT)PkO?)V?C4?U0avPHWwuut0Cv^GfQJH z@Q$t`C?qEvHwHSZEvrb{%>;PCDIPQjnW}QkV0>XRVSYD1<@!F4DW z^m2xuogN{!iYFs&L$K9G082R_qp8e3lS>r6fu<)e1pBk zA@6xFzZXJx-rOti{G5%nrYVB@Bs3SYLpByZQU!iYR%9e*X)+Q7D>dlLj{X-T?$}ZVXAi4d_U7hK0 z(Du9C&QiD}8Ew;{joyzh9H@Od5A{ts>TY zrG>GC5eoT-tTPQ7Swnsq>)h3Fh$g&7AYJAzR0&U)VGscv7bKwVleOChjuK1#H>VTw zd;0Plm-~}*`{Rmwnvj!U|Ok~Y$QP7-kQiOINmoY-nTG5o2pAV;eE#1VGQorz5L%xQ)wGGgF~qd@3Qoa z8}N_yw5|uc7_j~FSEv!m4ybS!Zs|8B!W~tvH8|EiTP@t`(_(S_bII96_mnaEdOxi3 zFiR9mBTWmrt@v2*`m93+9KMQ#-Z^ypzIPr-dQA&c7!cuxJ4raeoH`9a?va`M8V`p&`r!m;?qA$xC=ak{cgp3yAuTDAgXaP?$# zN@m#spj>KBu<&k?t(BrnF{pfvR~u)u;zx6l(pK51sT_LrkCg1`=8I5cPQ`VGV?gP`;FH_5+X_;{@bHO6_L45xot zdF%vd{4U;l?%ontrWDbS51W-K{zxLRkE1;(q=0dZUs;+bCSbRFmDKR->l=42CDzT^`_X*5R`Wjx7M~UAB?*4Th-thmo z%u6s|v$`s`zTWw}=(Ket`!QghhI_r+`Mogj?6>!)uXhmV+1Ri~yNZmf72oRSbdyV6 zl7k9wd=?9(hJNY*A(si%wQEc^#NME-`@HQ4)$l&HPi+<8>URLJlR`U682)N@e;~W{ zyBDP}P|PdEK`B6h&A*JL7%H&6nibb}f9{@mV9b$O87-Rf%1mnF1^JFmkx65y^9lmb znBgwL4kut1d*TJ{HvNvP;+GwQoV!0O6B~GGqbw`p1iO`N@1#i_aK`2?$&qgjRc4S@ z&)JRnS88#eJd%sP_Ih@(uBz6Fx*faqNDj+7?8K!h6n#^Z)(>X?rb%IKBcNCU`n*`0 z6~MwAYueoiiJ^&Zy>qTTO$*^v{^TBPk<)~}30kjLMj>mX*6fMhN6S2NjkgohgJt5< zz0^&R-h-~vKm1q7cG@-?>)4n+99XmIWjO@D3-+;FC!B2h(QZf%+@Kv(eC z1TM=`Gq_-@X&yfX?j6HS&~r@CpG$3)IFHgsbn>HG@b2157(1jM%cr%onHCXm3~erv z26GD+y(W395F1{bCz4)|%#0?22L75XwgU+U-2e-lb;m@6Lnnwk&3R()Dm7xsry$Yi<=cg0?2yb$g;wlag;1GBbF!IcbGAIQg~66_VlJT2;7A1` zMz7480{Cgc^?b-_RfYhFiP(DEfm2^>J&+=JBX)$MXhT<)7{;)gIV>SnKOUy&3IZ9o}6?rQpas2mS}r)B!yNo0=`KaI zeyIjXo%SPcHUMz#=#AE+fFH=qY+?MVNiP+qpL8CmK&vI0 zvNf6cKlsUItc)5aD>Os4!aI!rTn(`41_$>xy7uB!f53cWnkKWqte&fs7X>OU6!-X#&X7z?kRd@ zEVRQ+z=1z#C=ojG({Ot4#NXL#YDECHggI>DcuixGZ5Mam^mg+Gz3&yMkYnm>&R_al zX8`LDlq6!RD!MG0Vu$d$>o9;!62-&zTUl|{{7z5Lb)fBc6|HEIyI}A2W|vhoZL8C` zb8%}utoQCZ_3G`%N*eG=Jchyj%^`Jmj6J zw_>gnd7Y+tW%JUzKQ|oSn_Mbpr9Mha4O6P}kp;kpg6BkMfiLT#2s?npBL2`W!_Sbs zo`;q(;CrpTS!i~AG>Lx@t-bpNXO*o4?3s4fmerYvM_%Vtd89()x% z8>tTS4QcwDixx7wXM3i18^0AxdYs%pU5we1>q@F_@wyxwqMrp{s?tX^;CNgDZ1r}| z{$3(SANNpM0V@p|&l@p0ua#UEB31RiHHFR({$|zcFI*vTnj?;`9ZgWK_Y*7B3s$AV zBN$33RkxUPDz-|LGO6qF7!OF58~Nje%CFEhYB}c;>eWiW{#HI560}tW#`mYtvMyD= zB_fwI#^1YXlw)ZW>kuh!sn5|qY3EC;0UKAj*RK@7>Bn9B zTla-4gsqbM*Pmh|F}~VIHJnvYvAQ1MLlQ{1E&3SoV;AWjdFTGTVXQLk|Ds;X_f6o4 zIEh9coB%}6w|9I*c(1!KDh>j)ud8Loirah43uGnUnbs5-77&5@G-^p@>Xkbi(xBZc zl?nn}e%V&qb#MEv2GW0_ErMs6K@dIQ5W(l_Nvn(!R_YOPOC>x_KZFH`Jy3lL90tNL(24Mn9>g=_LNEb1=jlI65tSK3E0J^^{zn(;fCL9_n*aMse%;r^VjPg1~r-{d3(H?{11Jkh$dTCH>6!&UmqoI3j| zSJ|h{!l!f*``Ol3I@U#YDP5y@QNQ?FL+vPMxx8D$*746(y108%KtjjwuzEnwg{nI^N>_Gxo_XS(T0=Y#I~wK;O)Hl?B*wH zn)N!pyYU=HG{Lw2!-4)AB>yQHOE+V(9mwk(v2hylZW9sgHmHs0q(k786gC${1i>U>W?LM5dP?TvKMI(Wp#)2%H+jxcSg>zw~q6 z>?q_(Qa46Wc!pIYl`2hSld;WshFv53kl(*zpdwk6PfWrFSA|A0Xjt4ASGr_=WIQbhu80lRsR``jnC!5&>W`%d*40M1HH~AIA>V({tai>_f5nJM z)r=cm7F;YDDc3y}vwX!2P!O3|W&b3jX8A6P@hrVM2OT9izIa&{Fd{oyPj^MPxEQPu zOb2WenW9!HU8*XvVa75ku+4R0tOkX$#h>gckf>$>l}n14xaZUOw%(em4 zYa2pw$DN#GLpf3oj&OB~3$lqEe+Q2IioV~yzwOah=Vd!E3#WV@PT zizeBAZfK8@28r%W{olw_XUWKu$SJ4U8xv`jGiPc@9X8ZwaQn9~$?Wd8w(@bp+Nvqo zBvVqKvqn79k90=fsw&u|y4kyahz2k8`(uEA?Xh1k-c(+jcu=n{qD42d2a0$E3P7Sk zq@cL@B3j&1B}^e?#XTj_D-|GjGM^vd`H4J{E#c}!zHMtA&TzFV!qkU_+O=k*LE)s7es3MiQccj{r^2w4tj-e zf2058j=Rbp9y$iS@&slN2k_<(dlZPQ@Au>)?@|1!@9xuNUqug&>>}@J{7R$Oc;{b! zmdv=Z_-O3gF8X75Dx9y2U*SzWQ;cJ+V=)trqHn=xAXAK|H`6rTxqR`Fzqi{2#x<^)t*k;usAOhUR#tXKDLW%OJLD@32}%ERzu(5a*QnqBcs;%F%KQ18 z&pMxT?s=YrTxG6jM#vmK41qLg?zhT(bk|j84Var7^dijS$06uoYrYYs5mmj`0Rn+= zMKW3aF}4F4ud1Qt6zP`3?CJOVHN$3)(It1Zn6MxwzWBid6pU6A`nChN^HN`bohj}>f|!NV6%j*mk9pK%eP;lwnw+I$dBVQpAv23d2mmC z&d8Cc;H_$tAW^D^V4t?&IhCcH&eKFgoFN?NA2AL%J3XjwUn8*lSe`pSE2A0_(WepT>_Bjj{$&OZ--KbTv!{8ls0r~vO#-V-b%xKS{mxo+fxIj@r_fFKEl{k8onRL7_KU8IU3w_yue)`BCtTcDL zCd%T48#hmkl%Ru?SR|}a8^=aiO{Io5g&RIFa5@qy&S}rBH)%s1ZNi&zt5JYlD(GYd zZCzfYq5idNv)pUi4wpniW(=ByNe*KzVHgAUVD*>SfUvKOn2o{A=~}n!t=udMODyxB zb~byZ$eJ~F35beTJT!^6AF=TzUp9=?0*Ax7jT*Y0KS9iI`#6*Cwi|V`RWAHAK6?kz zMY1j(W_hZRS3?Vn0;@m#L%5bxZ0px_rjG2(e@t*`c$f)W~xNT3wat)1;$Bz=Q%NN zQ9!*NfPL1ew|W7A{V33lfY0V|Z?-gpl?AqRaLmh`K z*OevVL_*BbH4f7bU>lg2(3;zRa>4U+ipy5ah(DJV0Z&a7xyu(X7uunW?8i&CKEB%J z8=+W7UcS&f%p`aH+N(!Kf#Pb41p?$L?jfe~F241P1=PiJ1+Gdum8FTFM3Us97wfJ{ zT_0HWV@u7F-RkXgp*haH*o?PDE>Sz%(#}IGP!Jq>#Nm13_s9BjOFG@t`Sexgo497{ z?}ws2Ul1%@ArXZPk@^gUgoKB&`_q=FO)HVbsBY1Mz0>ipRU*>PURT)?w5)9DW?56N zr76*xc4_gCkO}oNoQ`2jjbEn>pFif0^&zu`@2Gj=I%JwULMFn?V0w@&EpFYtMK#6UnR}L;kzguT~Tb&go zl=q!(L21l_f6uruhL7bh@0%eSxBrhj1F$JgnxTIx3+DRTA1rwnEGol`rG zz4lCUME=2hi)eS-=CW@MXG25?)@hJ~)T5Dy*oL?e$fJE9$KU2E%MMxc2_I zmt)s~7`=}_Uru9p;m81a>T$J1?xOA?7l+|l*F4rE=RA1BDQPZIauvsu-FlqdTO3QH z5W!8i%oTBv%CyOk%14%Tgu-^5%~9@91f^>4X`Zs|FMbo*U(8hdk~chH-bN2PUouO4 z?W|qtydwgCJzCkFD(RXKUajyTjdiuc)kmVPS*z%tXJUyL?c18Ie%TdVAJQJSGhclL z@#l0nW3cLI7W~e{pIO1%g!JGANn@8WFEpQF#@giU!AfrplEz(iNk1N#iY<GK-LP@fH!5dV&u;;cz)$yy+UUiI8>a7SgR%xy{%l|Lb40_}^;<`M=3dySzwa zzL}lmKbLKBh*egX{ig0IKNS-LYJ(e-<;fR6>52MP{Q*Fs{z1ZHtvE*KIdT9^A zlkC|XWi6U(=kxCfirtDXN@^YA7oimhR&C4ox~SjIuInO2b@!I0O{=coB6n?d2>H;` z$F=P%;;9M8Gb5xTrEOY99M8PI&+g6Z9U?IKP+Cx+%O^@fM0BngcAD-O^&S4Q&%@Rf zRg>k`j#i2h$BHe3eIF`Xxt^LAqaV$={-Tskfm)1m)Mk}CBsDxYL8tjz>iG~;I=*BF z6=yqnZG*Es$~{VMw@h3l}C;aMjo$JiB%H07xzp(>@-1VvYpx4Wuroc z<&!TWOx%_o3QLX>^JNeB7had-wN>d6RJhw?mAV>QFnTljRr6@-ASFRUxkKnz&jLDA z$K1~&DFt-&Zx@$M+H@@*L7Cjnzj&y2QFM%z?USy^klz)b&xx*GE)K1U@|X07c@`ue zcG0B~QV{p8cp0gc#e1kAc%B}s4i;8h75Ax=Z^)HVMjYy44q7|#jbOneUFP68)+$YU zP2e^m;&`25X2Z*gW7X6P%x5aGzELjNqz7Ov=MY3}Yw#(T;VsCV5rNdiHh{4o92-A<`q*BXxZ}1-8l}HA{V#f>(!?(<^6q(i*>#T{2Uj!W^Gjp6-f8 zg4#bZIylG)9bAyAxb; z-S#zZ;*Z9a7WlZeFn4f6>}~E5<^g}P!+QGVLJaQ?mkD^id3tU(MCYILw?9nad_S#P zX<}kyn0V(VwGHf8LUbv zT@I&uA3hXETXB!WLB(z;uD6u&xTQ&OaTQV1o6aYyE5qwj?u%ia+04R5u%Yuep`UW_ z?}#W2)si;7VWg zE^J6xy~y&Ls?$Oa1=rm7Kqa{_4cR6yK;+m5=?Kxp`x@Nhu>Iudk`*u5o<|AD}IH z=8%6C7Co$sr&c$7iY5`a6vo6IWur#Pja8aWmw32zj=}iN9iBrMOl&K-gJC7Zy@c%) zrE}+v&21{Mp(d9qu3WG?^7AGxuzk~z^Ka=R!z5XfpKl3i*_!G2Mda^Os-Q;MK_$Lp?x(rm$P=_@E0Z}*QC3?b!=6m zn)QvbwH=yo(uD9nx=L(tD0QFwXZ8-GR8d*{M$te}?c2a8-)n3ez7pO=Y#Rq8HVj*n zjYh5NJ7dSJj!(R!eMWzo)>AZYaO8!jc<4)e(ivW*ZobOP^`kCTd}WvGTVs7=@A`tj zr1tpew~>6(Sg7$6{_! z^=QSmuDhA$1ZbKZdaP6g}!V6*u6$b zyI)De`xhk*yByrX8s=v8V|S^cJveiaj8RM@MKrY9&Ni@D_@2s#tcaVQYO3j?l0>`& z0%aFcBWvA-pX=V3EhB+%dTwHMWq{{of|#GgO!HeUb5WR0ZMN4{OL(pc+`jqki%h^a z4n*xe%RxP7PofNkVy!0xB>445i}6RWg@fdrmEZFOsZElvV>1S`1z*PgLQsv}O6SE? zuhvXzw=O^|W5@3#ZkX#h2%d$t;|JS6qpv@L4HdYKdsdB)^srDGOY@HqUA_3Ow1PZb zU}C7$_`RePeLYmH;7ru!xE#5tLJYmF!76ig$1Ibl197NSUomIVi#oaXg;yH_bHj}7 znJPk}oppB@C-O&f+DAIpTp|_WWtLtKyBuP^ZiRbXVPhPGRSZA%eK+9UZlgi`X#F|S z;23Gno!QriYuX*(oqlk+bW9^QJD;Pm?|kzW)rb}t3mwcrIxpcQg=JH9J&Eb6!gRCdGgY16f`Vk$MA5(es%Iwkbf_Uwmohc1+BOT93U z(RAnGDvYNk^%Ps+iaN^{S5JG#;Y3cN)um%OhE|t&a$Z>xen|~Y6M_)m*Lr#28|kAV z`*>xnV(NK3&L;s~MXj3It@krp?+Yx54;X)5T{zO8MI3GEcEkI7gZ*dQ!M86%d$WkM zmA;z9td%l3LZwE=e8AaAB}orkM`XLFTQ7?pf<3xN!VeXp{#`yY=r;D z)**57RAW1KpR@F#Bz#_q^DJHwlL`kI58Gu}^uB+9yOCRvj$0K^=(NJfPuY+WUw8Cf z!cxav=+l^xm~r**9{m?MwHU?5yCcJHHCfORn+K{Wza)4s!mH4__yMPp2FHRzl81Kb z_{k``@O*3@uV(|g6>DLT8yw=O(aZN5Vg>SCAoB(e8KY-l9~kyY<|k6@@i{cDvW zIaB)A8p%+3`uhZ-P&+TaMrT#}*IN8UDsnuHHwcMVE1kg`e+HOO=)~p zrz2Szo^NyZYOmKWWL*1_)aE=iZgJu`DSTlN{8ol|Zgy&JRL>?XX;A;L&_B63r&8je zIYfBNk*;QC!&JVc_RlMC2rOG5vy1WNuCN2x5J)D`e%S?W<s*@uK6KOC1(%rd0+kLxaCITZx6~a$KJJp==S>uIxs8dCnM`ZNyqIMFx{y7gWTyv_Y^w0B9=hyTKK^D!)5Zo<@LaIQp7D>?Wag?mUtUKUCd*|^E|JjuoFy|OBA+P}V$IHWP)S8v zJ|R~2F?VU+J;4T1i-yPiN-~_sI!`nN$I3!7#$`^N6so!s6&n;A6oG|pY(h(yOlM3> z8z^`(!N%$WULS+@ZA$sm{79qX;g5Y4a7qNC4}wcu4eJ0EgbIQWzEpp7@4$}^5a)jo5;Ga!>~csHFo;4*^BM9AQofBUh-i^Uud4QPD`Vy@`{u z2?CG=a515wGr*&nm}m#M8w|<*&yz7(&k1KM#>gO$Pka!tpBc3|fwdG&792dYX@#(Z zJMAmq$oofU!@z0`3=n{sP+BVUpPB4>2uFk*)XH`jiIG+<(dZ261@8@NG=V^n51RgN zA)o^o5+j#%ETL|&pUXRY%8ev1rTF%F5<(#FfW?pe#)9vP#CDQh?L77}kjaqg5o;_6 zWCL7`Xdt-!4v@O8!9KlhIlIC}3pV*51!WSt8!;*FKxso=p^h*F%=NFjdkyy~>=OY5 z@{|n|9jmev?F!c8U6EPwPacZYV_&I z-7#Q(V>1Zk7@BUCjrT_HYj^V_lJ6^!rUH6KM|#@tKiyz*J-5J4y2)-E5aS_2A6fSva?fha&||6;S2_9cPj^| zn;U8pK$;8Z!;=CWQV2u@JS=h)O{aIg_e7s{fLrd4lX@1?e*oxG4hI4`j)waXzAtV+ z8Appo!pK3QdL#pZAZG->oAUKNp*!;G?gGDid?}I+2z+gaz~w1>vqAs&6F6T$zeF88 zKDP~o1`&qR*wXig!X4Zle>@|HX{CRv*jco}cs2+mJ%NIQK%V681N@n?f39p}V$<4u z$Xfu9$Q;vJ7w`WCc6W^yc+E)WgOH*IvWlR|8rc6AP;EHe0hzk>;O?$gu)QRYB-Iud z2N^~Rj4DECH;I1rKi_2celQ=qdM6a<{3P%US+rZ6ocW(`!7hg!iM0KqSk5 z%KYFE1Tp}IAK>RGjpfb%<91-U-e+hjKNMFI25gi8`iI^((U1T8%`{=2+OBZWGlci< zs;t3pKFSK*K^nxw8I+!Za0V$2W8D6kzvO;Z92hR4{_Sw0^ODn9dG%R(8md?$^W( z({TMNMc>+h&m)H?ba0gHKH!}*LQL?>WM&se0ImTSdU7t7+Y_v)srLs(ln6%Kk>Elg z;=m)=P}Bf{uq*71bw{|n?ovG?H7gb`QNTeBfqdkKK#-q@{%#>^djkJhKwRDU27?11 z*Z^wf`i%tNeZR0LRny(U;aA1FyB}PvJm2;O6npc>Ftz&3YEQ0~JK_)Z4qHTHs{jax zaZsV5hXa-8p4eZa{wz~>7g;m>Nun?)*2RI?=w(`l@7`=M-odPYC%c_!WE8)%ZQAq$ zS|$WJ4PDEpuI`K0fI5L~Sgw1GqY2A%(ZPUAx`T@s{#V>nyUQCph!+w7JmL#*V02%b ziu@by?o?cU@AyHmS`j9XX}pT)y{VYfmz`{6beOSl^{@lu5rJ18poiOH-kxmKg%ZrP z5b*MVt^9Ry%#$6XXf7Ci)5!49gIbQ znE*eq7YkY-XT8~*{qwvV)ZQc2X>Ck9yaiNA2r?r2&;VQ8llE(dxqI)eqQ?9rz|g=0 z;)@kc!gBlrdyS9!-p(+$ojjzBh1i+rT!7=_fLwr{xX+O7$upMyQ>->&E7W}gzTXJE z2_1`1y$^Q3fgCCAOd07LYcMF*9L1~-bm{iNf+_aDmGtf^81xfgDFkx5ftd=r(GPL% z4Yjl0okp`&2t3^1h@_^FbNgjZJD%Q!t&dHw79bxCdclO`qqklKD?i3CQ zTVvpro*{-n$iX|&Xi!iPNYoijn1;O2?hxYbMK?I89k4(iW7Vf*VuC-NQF@xZ+1px;Z2vM4hE+$J$TU{9jbw(}= zup|HZW6=;n)OTqK7-10@0lh@8G5iz!&trU4_*2gyAogPrE$Al3KDQ5jcRgfPrLC|4 zJ-F`BL$Bo?Ffi9c(F5uMFQ{1(=|7N`KFy;5&btGyb@8v@`>jHpo}#e?6bK)<0lJbq z?f(S-vy!h2K9@NO$a6q+bb6fA-_cQD-Hxf4S5ymlY#=W^0(lADgh$-=q3>=&^CSUh zd=M6e;9@~>WU%UUc@LN-(uTX!7)CAxJOOIe1W5^mfjs;CT#>l;J>hPbR>S6lZ{SL3%dEje7qL}_Bat(EqfqFo_{v8%j-=KpDOD~*y z0161mILL751%Q3ZJ}~xQ(~RAFJjLRB;WBWQFfbuRkBQ#Y9oS##{l~|6m@@VoVLyuk zYO4Sj`cQrQ-VPYZ@Bc0)S^wATy(SZ=rzoQP;N|Q;F?a7W>RDT$EJbMzV}Bz4K8q2v z@2E#mAkXRg-Ik{RhKg}&7bYI{MXBg`u7Ca#zh7!ZeK#AJ$)mKHjX&bi-o1(`IOzR`h65l-hm^#@qVV_ zJwgI?mo>Vx`GCdC->Z~AyN|xJdas~B-ROiKXy$BxrtTgVsM{ORr-1_8e`ca@n8H*l z>Xrd?rN;21u=m<7fr>+pZ>S&AgGnn&OA^4qp--l9KxqhpSb(n{kn9krKrV&+A3ad= Ak^lez literal 0 HcmV?d00001 diff --git a/lib/virtuoso/virtjdbc/4.0/virtjdbc-4.0.pom b/lib/virtuoso/virtjdbc/4.0/virtjdbc-4.0.pom new file mode 100644 index 0000000..02fa48e --- /dev/null +++ b/lib/virtuoso/virtjdbc/4.0/virtjdbc-4.0.pom @@ -0,0 +1,27 @@ + + 4.0.0 + virtuoso + virtjdbc + 4.0 + POM was created from install:install-file + diff --git a/lib/virtuoso/virtjdbc/4.1/virtjdbc-4.1.jar b/lib/virtuoso/virtjdbc/4.1/virtjdbc-4.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..1c6ccecb3b455d9f019405a45ac98639fe235c3a GIT binary patch literal 214811 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%0Aec0)IkMvTrMpX@6t-& zFF6wetwYyKbNguLIO|;X>sW8V$@S^pt$DqJO)rv`+}hqH>lJe@?ykl9sjj^eusDT# zK)m-g$u)B@Jw$>-j_oA5ie?DAk^XU@+gPB8sZb24vI*h5iAkk}*zU?!Q`V4)^#)|Q z0#0e@!DT9scWhwO$+BQCF=cMtBf^Zb9kUMP7oa3@->KUpr{Z1l$jr*U; z)NM=LX=HJkevQ=-sE!Ma&MOvg&Xyv3KR~rS6pSB}n1YYrtk9TTJpp9NyW7qM+~?^g z2YFBC&%?}`jWc`}_pu9gd;8wgsN~MQPHkfQ*i*c9R_#l?&5Ej^kO8^9LLqf^!J|Uz zKGV4?BM-TX$GMKp2%5^@h4m@I7>-VZ7H5rWBB>LBYG`Hbm3iRut9(BI>VH$#AAGKc0 zYtlUy8y^CI#;EQsN6@bkTK8-U0@YguzUqByJdF__wOfOI@*PS7O>tyFuS~gdqtYL6HCLh0b4*_0kG|0pOcH8%Lm@O0UO?-wx1T$;`z}ch7tlyH7WxY_vJa=+U zw)mIqgW0};`Pb}wy!1s2{z;(u3Kgt*f%~f7cdTt5xR2GmMMD1`v87?SW7!FPS9g~4 zl|v`QEKnMuRCms0V-Og9due@%B~hr{FD=ZsT=P(fB36fwK^D)|7_Ib7=g6j+y$PL* zCWeJMB^b(C;37QG*4Z1vQhjG=zp+Wu+U}(h(ATc}9|U!zf;jNP==j z>9$HNr|FLQ6nQmnPu!tc*$2@ozpDrGWuZ z?05Iq55&&S?BqGMu8H(Bj&+q&3478wKRm_X@9(Gf=zLD9J!DM5y+SiT?|!t2Izde8 ziT(^?b@IS?j{U_79%cZ`^CPGmSq?k+ne1i!&nsy1w=^CHas_IC;R-&ML=p2v$iqqT zEYke1irS!6<*6Sh5DLWKe0r2sZh0XYImVTsgF`=^nInHikV_c|CqZb2+wj>BZW|3j zSoJ@%MOz809=Rr);s?hU|6>X(;15#p&hPC6sI6gkkm9GG>E#$>w+9=`kI>#F!g8W7UO4G4 z>{a4%?6s>J_MaBRb3XIQ0I_R$CK~T0m;xdXDJfbcnurq6^fJv{RPL(A)G-Rc4(IGB zBxGPIX$IvLXe-Sh(EwD0n?P!#4z^S8BnDK%-QALhl|c0BJSsC7?#us_ILwtw2l?+$DT|KYA|hSSTY zX3D#7hU?|h6koJviYd;(iZ+;xHsA<85`7p|dSFjcVZ#?_newx*k1qdV=iZ9mWwRG^ zU|)7l(USI8%buj3I391IMg?WGcDEuznC4J_#68P?b}CdAF(b(-)JcZh zkVUg4e`V-V!p&yV_{&zG<#es9rJQE3#kQIi{~e-N>MM6tbmi!nSc3ol`r*UecT_CT zyjY>dyk(59RD)xp>RWiu5a01f?VQ^WU;6X0ZKKUj+@pUFhb{S(jZVhB^Yx>C=GD3< zlzwIf?%%1l+)l8&YzTsc>eSMf*qx(7fs8rx$~p71ar3|9qi@c#pPkx* z^lBBW>us#j^shHv+Uy#+b1B-!P)&w0?&~=FGv?T6g5A|A~(yooy2k`!N!{TC=>pWu0Ts*VQoOu&1n?17V@D z-&J|PHOT*CK$A`4^{+8ApB^tBLz^j?4uD2>fnLNsi>A%%+-zEkdW4;yd;KO}mjTxE zjlXXF`o9#Mv)$NnVzaip_e`YsW9oB0=75S9!Bk6sM@~(q94_j-oPl5R2+pwAm407XusSvc4JpV%!qoVaFFUi8x*;Cq zcQ3UR_X)rX!%4xRM;hYp(9L~kxEan?vjgT>er!4|N#AR2YF*qI7D|lek2&8Ias1ev z3fRp{#{%c~P0rZ9Q;+`TP-UaPy1$lw8=F?^=1LjdW34}`CX4cs;WRrMY+shqt7jAp+o91|3Gn6OJ^rnl@ z%7<0Azh9R=qrooYsoS2_4|UoxR&mFzp;8@kvfKzwrg?JTQZ?TclzQofwY9LqAI#1T zZ`*Z4%`8bGV_H?=ii`Y#nJ$kI?uXlu94J{+)aZJU={sL5%ZOWtT2JbIyxKUa@~=3B zQbZXJYfaJE2jO0(*b>Wi5Q(uv2(lRVLvBH5R_9r6)kRm96L4#BrALzH+3w!FozjO$ z#ra}>gugnY>*93;ZxGCB?oV#Q*U}@B5v%H2X!I6@*2g+KbSnp}zVrG$9+yUkv(*Z79^1`z49WkY#xQqY z`5O#gr{LMbT4q>jENjbU$7QyM?_~RGX71bnlRl6f>%Ihg)4Wq2vLtsHQBdb6GEMd1 zgXr*O^WT&rLr7UI4;!qT5)@=X6D%|ugCOu^mWzc%8c75@Y&>JBsi(xh8}!2jf=~O1 zf{NE@6Fp{~y5T-%b3e~^U@wOM?QAfH(7p>n5QynjMuZ+2V-uh-B}5iUvh$ViIU^`i zy)4|uwPUMS!dKRG_t?a1#ihJm@|ZbD+@Hb{@6T+QH@OIAGw3Z?CmV z4=yG}qBxp&n2JGqZW5SEPP-o5kg19pU)o*FZG4-|W6F|2E=Y%^1%ahIP@0dvr*r06 z+3Qcr;ZU>6_{MWvjpgMkBPcR!vhmgJVZZG}O8B5;m0IV6zLv^>CvcjVlM{c`Jc&)0 zZcVM+)b=>$#1Cl)mG56I-sED@`ghzw6VGspBV-J9@ z8974nKs8Nk5nNSy0MT1{K;AnYyL1a{uzZX2M61U&RdepCPuCa3>DC+8;fD7!@cNH_ z(T*wm8CT@9+g2o!EBt{dK4H{gLX+V*r<}XMcx3o6PybJH!$}2BZ`W88 zYTR8l-#hF%3LYOxTD82)O;|VuazS~T6fD?f)vF8F>C`@g+dwg}iHmqI1aeXVYsqzY>#Tklje=2t-7E0#?n>_>lkcL5l=Dl$Vuz~StIDc=!4p&G$jSa7!_K&fl_UtFR9s=NKua^c3Cxns< z)KMvJ5c304$8k9rCN-{zPm2dKpwSB+onEkrVvXcvQ2B+T5Xlr#o7RVtDWWH$D)L%2 z-i<1&ls_Td9YM2epawJmV~gE)4Qhh+=gyJLK`%F3JnKeC-xQx<FH* zoGo&-&YsVbD|>>;&c~0G06=}2+_r7Xz~pI`FWiccKi(c|Y_z$+>|_7+610r9CwmX0 z6aRbqwEo(kS?tER8@aowxs%{NM44flI54hoaA3QCdxK)jzF7(Rj5zv2X zX9jnaU-&!b<@dpUmvAQYAMA;mJv;9lXlM24a)+I@h$!D)Qt=rU?a{YRje2=Lam{8e zWZjN^(5(uynQ_e0|7L=BJe|B4?E^Spdz@TENT{FSyKm!)6EZ*Cl6Er&T;q6tkGi|V z)~W#JOMbI$9S&(in-=vpHfLa+=uN(!@-3lb|Agz#PAF6+LCXeBp@iFx43o~AlOfOE zn=l*!J9?P!~ zh;Iu1maY?s4!7&CJJ5fboEdW@w2azKw@VKb<%TaZ!P0YqNK_nTNUS(BBH$ZWmS7tH z?S#jU9lY|2GhM7bm4^1m#Jhs#IzC*)qmd|NI3=JCJOAU8sqFZV-mwvt?H+t8K}1G$ zhs~PjwET>`*AZ^>WKKDCfnjBCBCXzMfYP@k_GjGmGxnR~%-;r@VGFy7vw|sYX-<;^ zDmT@Fab0KGr_Su-(ZzlvD=>1>^?Uoyw#ZIELf1tY8|(_p_trN2T)=;lT#WS$eFP*3 zh&keaO>+PJu{+%VG0BMmtlj_5^JjgUKAvdH=-=BH7MAYrB11!9Q!b>?Ihde>RJcOY zAaP`%2#};UxpoxB#w{(g(|5mh+S;yHbn5KqHR_fZG;D>_DKwgq-r}A^GWIBK@lG#^d z=z#ANCJbI+Vn!83pyH3Kufd?5uka8iIUoH&W3U%jF;TcB8r@(98Q+wQp#`4dE$C{9 zkKxg=ElPiVA?UO7ecaFfC`adedzfA0*$}?(o-H4Rp=UHY%Te+d0Zzd`#}U&$nLdKa zx2D*Fd$)>Ruh?^MU9l(TAHhchskgM)jKG(+*j-?!#F(S`Me;2#c8~do!5E?0hw@l~ z*@yO+q1lJ}PzxV<%#JNlk+?MwmJ6POpoyZ5?j*zLvoB6 zyFtoReasnxCqD_C%jB6_BoY>aHB=GBUs?@TE#7JqK~=~VTCEKiduoNny&-+}6pi*p zi#Uy0j-VF##*vjymuRa?f3u3cqHWsACBeR&Ww?%P3Ws9igIku;2cXeXs~^rSwJkie z0?8(enV7uEwzy!QevKnn?iQy;&dXkm%Wa}?yLJg&duwz^HYT@+e?G^yCz8kT75$Me z^lO1NL}7d>g}1BZp)f64u{Mw7njG0ERf3{~66QDeEh;~~6TqEjyLW=Ex!bzJwWh89S9`q-X9uQ5 zN|%O=3`+y~dav89cpg|13&uGEI`r}MgGC7`s~L3e`#?QUlDro^Ow>Pq_SWjqpU4k> zyjR?QTXC*f$*#)lK5Y}L>6OaT)+&x^snq18zuSQEiI_S$q`s|bM?xgqj7zfP5!XKc zn{@t#OfNoUeOqTPvUuKInB_fo#TFjH-DNS}7q99KpW@&myg>t#wP0(`a(NgS&3PaJ z>$o9hV?Aqt&H-rstMXR0Ht~rQp0*|plgdg*I=@xBFF%cB(AZw*=M``=c29<^7Dggc ztt6iI>miD36HxU)M5@ZTu|z;BBwE$lFN2;U)<$D9Vx}HCiZu7{J=J7Pg`xZeHluID#v#QSc_3Bl=sxCk3$!(7S8tBZ*vRw_) zi%u0Z$1xDSeW>oT=oRP=#F=$RwD{c8&?*;VU$O0*tk>^?a(vp=V(Hj{Z)$6#}4(&m~M)J!YC)_t1w z<^j|+$pScVp<0aWsWLVk(qQeQ>ZuBW5&C~Bc^~*O>PqfO^n54*UcjH3E3uN*8SN`X z*Xc2=5Egy2r^lHcmHTwg?KB#Zp)@+&1hk_xkao#GqOA{ELduzcS!$LQ7qnd<^V(vO z)zCcFEiE5PZI0FEpURoLk3?%D?{2AM($?bOvP@$Yutl7#M6cbA%9`rtnWF2qcOFeo zK^zy54X$`RdoDVOG)1nCnqUvdYj@F|HL@kzHh8}+zg zt0_WbYSTD-Gh93bM#e(<;*)nPQ19Iw7<@i*mDz?Lgz{nf%Tn{UwYe=2VJzOZ66ks(F zIik0#!>5bQ7XvnPQ%;59MWm*4v`qNZ3?KI0Hx{l!^Yik&%u>gMIn*pu_F?qp#;0th zhDz_9D|FD=Yn@EhPU}g=5NMU#+e>qgb6nk2H(%Ae+md#V=KC~oDncqN)pS^EVCLPp zS^I@1=eCMs`*mC*QeKG@yIJc1Ie6mqyVtMyhDFjjQ)UIo=ccj|N*|}0d{9~eKhkp$ zk?*SY1i)WzJH{9~w-rLcN%_<}c=cIZ_AieB@w6BwGbw~(ma#JUwU=*yIssfI7^;kRe zt(%(KCB1>sfqIqfl+`S$b#fI_MI|6})P|j1;Fep{)4&`KB4}qUM;;c@=CnX0yS^J) zZIQ4B9{$Yo^wTh?#>&on48!js8}P=f-#t~2|EmJg*s+>Re^u5rPKeTc&g%@J} zN9z@=UaTzBkHy~!pv7R0wkG9z73bCP9JObIQzsgVFdubb8b2p{;R`3_*&%tPCJM|8gr$yX$RGq@Ef zutjjY8^1{c`|P;yj})SnBuRoCtwA76g(IUDuIuH5g%I0(q%fTT^g(`V1Iq8EO_NMl zy6Z#VCjOHA(a)!GIUH?8RD9T!t%lL^X-)o4o@RYOQ)KcyR=DQjt0B#)^$W$d5gc1~ zYZS$lZkZv`g-%hwx3%bYI{XZu?59&*n-TWlcRpBuz!N<7D}9 zGBDVE4{+3S+6Cfw#L7}!GQ?@0d8;!xQ(2$BL6)%khf18qwd4E~Bm%VKX!&t8)0cnq z;pk|`fhLRzX~&gHl6uJu(jRG|si$I~2&n1uzG9)EJgsyOtZspH9K?&@kCPSq+Nyzf zUbJK(Wtc73PiwZ6Q++^R<#Np%CPFx4Ub&ki%ZQ{yoIb%LEztY?%KK8@I@sZ3#iI-4 zf$U@CQ@g*T3NLVNjph=R=veJ@UBr}Q@Q_!)9_E-lSt7Qpko6MvBj82k0)tR5o6-^y z&v3clANWs^ZSa={0}l=aqyXc8Rb=D;k43heiu!+%jog&v6^Dd=`su>9l|@FvMpF>* zr5bquP9Yx&O_chT2@SYuZ$&_pvE2|^+BMxDjfoGO9Zeek9nX~=; zb^8WsM92%fKsEWZsr+ZH>{_CdNn-g&_4y7LeC=prRaZamDz;di`lYHBI7b_75i7#6 z!eUDvmBX8}C%thBab79B&D3*V6@$O`}cL{*GN->7aPg4PJ{i^o5i+T z6S%fGWO6jU8kUR;XRM_#8kVV#5k6L4%ROX=1Y7$WmX<8eht|EWs(|g5vVl^_aZAHK|+pXHCv=hrnH3dqDVKp-CQOU0^j9~zE%-i<= zrsZ2_hwoTh=j_M>g;96|^}{g!if=yjU%&TX^UCwIY^0e_Jq>;RuGscs-Ob@-ec$OF z&-Z+w3!DdY4L|{7Q%^u(EKGcH~~uPBML+y3Jz9al&3)B z1{)#)f(f_aXmE~M?@!Vkt8b9uK;<7>G6mL(|t)?H7b_M;70hy-oOC z;}?eEXRQ9Yn;+qXEFY130!uX;f+EkLeBT5)&1C z8$2r(7(6R>DTxJjv4YS<+=26E8bn*U?rMwSNaXP)z-l=<5*+h|}mZX_=a35}AA z8%+w!D$GboQwa6&^f`B*OF%QDv$&<$oLOsV)&eUhmJLS@_8y7()v@adhv-ywczSG3 zbrpgQHme@D{<#9Ep_ro0VS2XQm`c_Uuw`M4Ig*}{AbK13h>eW$+rT1(GbnbAA{*pN z`O?SSc7Z&Mn?=)bwPOg~sq(drjsiV6RrI9rq9d2mc?lfUbfvxW7L;tj!Cq+k(ee>^ zsk@f!p}f710V@^LeO{Mm6~7Kc0mlK(426a2s|xx8m|e(@U2h0$c4;Z`wcjO9eCZ048^X8uJ-1bg>Z&N8>Q z%DyOZR;gCuIo(0Bbx2wupL}&dNV*h4_2J@>QEO+l@G{kmKFD0 z5)IVYt4jbz%V4x{i0PQJsqz~3ZW2x|*DQ&x-o^p9D*iMqo4i`{VY&srb^RQ<3iX|o zD%2E4>H=>`mfa2=VrU(3j`(s%jz;+LaL|f}0X6JE>-@XjA8; zFEwMAi23X&g8@qHHp4()ZWKUG>qfc3WNjSQ zcXpQ;i|SMlb)(Z#!bDaD!`5(~XMf%FE^<|bW2Q&^^< zNXZV{u_rCs8#Zlb*040;%%HDnH>HRKM%wqy?Dw&YhvT$49EI;aK-oJ_q*d-5obW4dHl zhd~|t_9){w?ol3p@=!eX^ii(Ie8_fUo~3&U360*6SU$Jq0+4vU^!5$5D4hif61jq) z$O%jg3C0pfmE7ogLE`Cer+eaEozPN=NO0K)7&Pc4=h0aLO4)ZYI zA4~#eyqhK}8@7_bR}54(Sy!&KB&SEVL;6J>8l(9WzLkPA!8N)Si5j=$Bl_p*I2|@C zvkEQ!V=JRTvn3^@mm^D;_2Q9^-B(X_WX9N>|L(V0>+m$Y|Lx*lEfnT70T$ac_Pcu)r!NM@LJ__qXL^mQmMgTxKa}V zpl%-?uCP#K_4$P*_hSl){9yeYmY8Bv`=dG ziL3O+t3kU6NCp=f1Py=a?6QvNIB{qB&FA32gQ1vuTr>yf!qhRMIJGN~l&AogbEDG( zNKZ#*(9!#qY=bvGeWe7IQ%J42KL!Ak8&%)H?^+?eY9tx|9#(lZ7}@8-bJD$Llr1lRq${og0A z7Q#3V!_wc>b2v;^*Cw4?WnryydVx59_2^4>w3W>~I#oM-N(Igow)c{i#V-1xLT_tZ&uuAR^mgfw|H4Z+!>^?D6&7s@#M;-mK3H zO9C6mc{lioPC4kY~IByIAh%Zm);md^Q9c4OZ4Z1!~+|2Z%SGTSNg{i@iV z!H~LNx^`j;kh^bM>C$CRjzNAK-?>1(NoSYEAb<&%AZ088~G5M^dzIBIZ z5r4Qc=7xjgdl>Geh9hAc?j?t#euA!Dhffi{`(yj~k2AkcJ1=yZnhp>2-Z;(#M7BMMcEfy;?)-pAM1r9o(08UlMIym4 zU$9r~!;?fs;(@>qlsj6WW#Sz1K==pboi6a2XdvPP^iC33Kok)E0dc1Z+$9Q#`1o%)MH7Y; zh7^q^79|oT9wr(lCM6;zE+Hx*{%5))J|H?EMkPWeP9aJmRwWu2mLXClE=yzqvH@Lz z@KW4|oEI4lb|M>%@7XlfZT~L#3#bD5uU{K zKM70GO+;2iHi#~N3Yy`Y@soj^27(h4OHrErAcKz*Do$kh=YFIBS^zPC5Q%Wan8FO< zdSG2>0PI5m5IvEWSW~z@T<=F01_1xi8;FpIOUx0Cy{={-w^Gi#I9FW^>rebqxO04qj1ose-{QWUT4~W>(i&{-Z}apFW=6{y&yXNA z!}{{_EIPr)lB^_CM_$wp#ws~&+%pHQ66z@Nh?zV6^E^sA_?n58`nO_TA&TQHQqSMi z-a@|q>Y>b#XEEm7>YUayyOBp-oGH~v?=P8lg~OQ?cCA~w4*{a)R?!i2>c}KgAGA0b zY7Bq2G%EZZ-+5hOd~)aT(gpLq?YI3DcKj6p8Zbi>B<#N>kbLeH*t3KQEiM;dbK&@V z3$N`WTl$}JAc4~j28!ZkZ_&z(^8~dig_f}--_}5I1GzbQX>#@3x4jBB46HmOf+Z(T zNN7F1(i&5(i4mkNVo15CG-*6Y_AGeTInPhV4;oWskmNmeLkM`DxwNsf6xv-oR#X|j z84LHiX(LxKFpMh%wLIE;aU-!g<#R@3N7B1Lku+SJMGjy}JKvtzRRQa-%-FIwxSQPmWal9{jZC6xh3eZ(otMg9`uSpyF57MZda+ z-fXqn5@(|U{=uIk$aMZgohESmCPi~RDPdbA-qkr`5u3d;Nuxc9qa$ghJ&D1Qs@8?- z*q>HL<%&N+WI>5B2W{(}?2jgkCRd?O!WuPukII&uSG3&^q$6rO&M|hBsq}KG)+Uuf z*AH)RnP4wkrsc}cfq2EX{zz=DHqy(#V7;qRp6%uOs79!_w=bxbwRP9!WOV18q>mkg zmwORYiFCGUvnZv_+&@pw0E&v>ejD9?Y8fm;jP6|(_qq&hJ$0(x`J~o;92$4Yu2>3| z@aH$$as`x4Y7l~_wf#5;5EyPGj%rO9&bv7$9woBw_&>w+ROb@RbB-^WX0)tQO`xho zM4J!u<(mV>$|3$YHiO^`~!M^0tV=)c>L#eQw z`fEYxtR?RHaBW676vzWLZAuf%d8q#Pc!2sR#%i#9-0^~V($QM6dfu#%^%d6^;*)M0 z<*qXYz{!G68ljUFC6uU*k1Ly8R7(bbdRRtiDgD!f(Ul2vRhfv_50O*ziP#kmB{V-60(B4NfYvq0BT?h)vQ1^=oCGJc;n z#J@jq&n$B{A(%s1H)jt%^OOvBm1;(( zyCfOZe&LSvkxd$+#iwayPIda_EcW5=sP9#(5akj5*^_l@^BB6slsyj*i%i?idZ04<*8rf1xueV^TyhdI{&ql+jn^yqu$yRD=qpTHn4e)ct zKhbTJ3w!qc>&-a8`_S}RE<`MEQ4G5(D<^^WH|o2U^unBm7no_?GOm21U^dw`(Rg|~ z!)}!=8~tvUmaA-P7+o~YV+|S){-W3L-P_P9K5OBjE-B$LL7`?=AD?nkngbI8vg!hY zgI(on!DxqG0&^Fe3NzGkTe?Wam0SfsyYl9gRxRiA2|zT7@9;OP*2G!;xfO%nxwgu+ zYbE17X>28cbdiGiUps?#7%DFR}TPUECt+9b$5l$yY_3fdBh_%+SZd?D= zY7rdAP^YZ#E&h8M%)PE<*h;Hd z_SaC^R1(y$P>0MLUfft8dt|#84zH^o1dr^AXhOURM5pJPwB}9Nyz%^t)6hF41ouM6sTcleB5pUv8lQ6%?FRVS8TZ2IG zcp-ubX39)Q_%pC^6O>#PgCiw^d&*o7)jnS4G>MPzk}d(3CJ{VU=s#6Ras%nlfz@Sr z6VY#kEi8h76QYh#iUJv3qy!mV!W35z8EwQIT?!Ky{#QOgmfak-H996RNw7p%T8Ju8 zc5wIG%u{omxZCn)gK(jkP|S}*W(P#1zp%sYn2N{;Px(th6rnoe$Q~`6LQWUHLaHe> z3$Zoz{~=6PycD}vE6nN!iRm~*k=EQ!*4_V z3@P#k|8U3gd1KZ7gy)0vn8`ang&2#3ye!g-ONIAL*Z03*H%C(NSRcGkdNMq^I7}CL zFT-sh^l<_CPg#y0)NpvAMtmL|2aD6#HRdoDpkG5+L+TS6BhGTgD#ahMfO2pL50$WY zhyFVl_X`9s2oDrM6x7=-UW@wx*&R;L59^UR)Ry#2Pm?|P!Y5~_sq%eG>!IMDA;dNt zj{b*@#}&4MX{3Veph5w1A82IRw});zFfh+_OjFzgKHzeZ${Og2EO)s(N8ZW$xKMtb z?S8v&V{>SAr$VDih06e=Fjf9Bcm9FaiN}5mGDWfc?a9DUh{C*%L<*AdrsPM}0*))G zLVq3zTKYKB9?o)zvO}$1!=VZQ3Q_52k7kvMy&#fPE-`WzEIP&1Pan2OIv>zK8zc@c zP+vkDebemK)$g=|8cWv9JYK5!pR@=>t&gk5y$^P0h10soU~iOKBn}1=h7>d#!4Uwa zKvnO75Ka>!4P?I~#`;=0VEQ3kc<%j|!hVPzq8GMEV{F8Q-h~!Hk6Wa-KB~P;OvGo5 z6@)?rNvRDa|8tnHy}*VoSmd#klA?ijiv~O;Pgf*^Q5b|_{>e3GI)md|%xN#J29Si~ z3jU09i*shmISYGXUz9lf*if=%`g?EB!m5wWgB&57=TDr6tXSau!QG@aGlvj8FYX#i z61&>o=8Usnvex!#C`e)}MIED34$d+5D@SF(K{*8gS-HpAEn`1i!KqIvX)mJc&~*?8 z2=N@cm*&*(lC&S>-Gd;*V+bT|+aKldNt2du$JBd!z5MLy`d_6?<=z4*RMO?aG_( z%khWk9k?}BI^* z(Y*YPnHq{0hti=|mJ6U156&US2S7*wlvF}>^`maWKmOIA?N6?R z;>EslfBZ`^n4K4aD=f0L5=oJ;THc^Pq#q=bxjz^3JSR^Q-yjHCXGU-gJG-#7%*4*V z`N5;L+#An2k?k5mZNnNJe~^=2A;Od~A}#KkLT#JHiZ`ncKe{TJ!1|=Bc0IBv8t&$# z3busFDz&E<%x&8+)G56@A|KC}lwIU(S)sfC9jhw&7=SJpkIljC?B^sqd1&RdEOpeVZ#?L?`n=7 zjVwNt**IR6hKqemREuV^Yem$* zJn76|nKUx07U<0D%4*uhQ7y8`t{Ki5v@7Z4PN&XLTBp1fQL>wv7E_=sPjwBG9@ix6tJ#~3G!PX(Ar1G(8b$Quht3YdX8B&|XsAm2TeX$Ai z(Hi&E;S!}$PT`<+0Xp+hJNHy_lk^C$LTG!&jAPn;)+uXCC|8G0R<18UdW2B;=7|1% zITzSU<+z@RnM^xf#-`JWF4aouG@k;yX*IWzD^B)xisH-o*pdvTJ_kqrbF(@_e$!Z* zjVH`7g;C2nS&};TVr{CTY%8VS2#iU#tFYGj88t=HqbE%9^s<^f<&Vptg{w1a1t4N~ z&|WH2pyzj|DC`9p%5#$``R*XpI3|u0vLr-oma0_609*eicz@P{Y{i4kGFM?3sdl|} z|6Y}et+MGYBHTtfZX=A8%Q5SJYw_V@VLHxXO4zrc_=c%b?)iugg;DPDhz^NS?)8Wc zjZyC5hz@Xi0OZKvkHlQw(6nY1fWaN)doZuf;#bAr((7VrhP4xt&!havbT1e^>b3C> zS(nxq<__I}PF-|22tBHPz5IyIh?*2YjjG?NL-a-(QIT#j3;Bw+kz;mdW|w@owvTL0 zDxgM*FcFuu&1!k{Kpf_Z`?0l~1E$qr=O#_J_Ko>XreiHSl&ME3KGa}l0@$gP?N&L} zo2lwS&>?rUGkw;zVe+|EFtH)+CTY8?qh_|F-l4+$ZmTlS;dqZGsqDr7xU5W@NCyC zZkHZzKp~wo=H{E3_+HH!@l)L2qu?LiKLi}ac&NHW2q-W}U!{$zI`CMe4t0($J1|If zc?qLGGk25V?o+so?3)0q1KzO&iU&7;eaQHis%3Udyzy+BsXBN`J?$5pEju(2GVql~ zY<$zeE;I02B-g(Pcj$6v>szcGr9+Q@cak4#wpu;S`*PS~w=tMIYApUJ?`5!b%=}Ky zvvgcBKH1S*|G24W@-tYtg5r8Mx%7>j4b@<6e>TQy-CEc65V)8>*v|dKf3bWt@$QyO z{+tf~>1yS4_<6Mw!vkf)b^cf0cTFPHnCo1vdj%rY#Ft>{5Bp?#sB@at!H0)t?WKhA zhlgnGrSg%Lr%h_i`?;sW+5*#C1cA!>6UReNL-GD+$#*-~?v#&3@`JZxH0kYC4gbjM zp`&pn%XaOlWuaku&GHl0XeW<@Y}GBvckJxc=e?0@MFj!j*Z<#@ zu>VRU{J$t+|9AgpvnGtYt{VF1wQ)kKynY6`MM?>sR0mUfQISb$xf-r^8L8glzasN& zS%UGVM2_9=^b!b6RZ$d0K_x|F16ArGK~xccl3)xa)y-$0eh4v#YC*o^9-en$iXF4e z>n^X^?q`AT_|F-?olG+WuLB2=((pyzRsT{}-b;Ttg=s;;m^#jhJ!}kvr#Sb2fwh3j zP0tt|1EX6P{aXZ#+0@<47j^8O=+{&nH?&AhHemXw zzHz4CpJ|y*AE`luwbdQXduA*BqklVEz`$VvEnwtuuNE+Lm=F$60E1^ZQKiC>_NRoPb2lD|(j z^Gv`=`s<`NG^j_rHe%oxyVel1d>qPrWQGWtLJ(Ml-G>YP>!hqOoG)Rtuc4rh<GNDDoC_DXx&j6fX(=fi?WSRrEuT7w~?Ddn*)M@ z=?OV;L~D-NyT|T2N6-zjlc=s{q$w`7@CYCGsx6kZgCy zbTB4_L?=ozlw3Yxd_|I3%P3DhZqTynRt?zV+AkeKd8wrkBmO%*xyn-gb$xKtw zjLnuB2LE|}+1JP=vSh%@$6zNJaC;!fRti>gSap?un&+VH&DbwRaYkI#nQ$grW6KXz zlFlxiH#jn?l#U*8F|9zUbhwP`E9FdDvwV4!YJ0ozde&4uN4eMuM}xkPgb)dY#x%_OPlaG9LU6HJ37#lu6(kHUR<5 zH}FWE<~wLL1tKJ>?;DG%4b)%Otbw^yoI5EIj(bs`{o*x4;Oz&{!bw z!R2DW7N2~8I|O;j0R_@UH$X{_^|TIU-T_7*@5j(29S+nw-Ik9OGsg1>BEq>ULP_&_FiP^3?zG`gZQ zTVg!fYHi~j`@!g?Ee5yk5yo42G`dY{wDiUTpW{Ahw(h>w;T#det)VS)c#HRyK;M;t zfAaonu|79d&!3^LEq53!ieqFCBofMncgRW((kE>T>-Zlyxr^*B3Vtl}wo#i{9u?i) zhAIaErvFcoY{LF!Iw~%|A7bX46-&xMmuDI`{ zo+j419ebNhhg7h>=n-C;naq4gT-Ea-z$Z^5hH2N#J0;p$5PfU$mRAv_9^JQWRh6wC zG>=5jY_zj6SDCx$%39PUte@D$_yQd#tjQWq)Bjt}BUt z`3Lt%LGK8)c~U5`BDThg*4Mh=k@d7VnD@XW5rB}=&gW@&rTx`=$U5}GB9l-YiTwvN z1xN=~N)SUvZ>r_PDh}@|N`M6Ci-eiqC%Q^51AUi7U8cUk(e6VtW2BU$k4*1nJ^snZ zewfYVG$5z2y?xI*%;$ec0XQQ;GLz32&g-;+Z3MR!Mqs0c$Pq;Ukjs19-e=&vH(T6X zTdLv;u=F(F%o4o(d8V7^>LaYjuPFij&TZUWQAytuy zc4k_x4nK*4+f|mExm=us8F2sKUP~ZcTWv*BNP#FqWjXR-sRKg9e_Kf zq>m&NQ_SARVOH`++l2DIa`2#!T)RS1y)%N90rw725wvGk)QssXED-s0ex($R)Gih{ z`Qao2NDS9-BB&yz7WS_?PIMYUFfXWn@-4T`ARg^LXI1jhKXTN>pr9 z5N0UEnX^L>eKVapt(mEfstNWYHdvw{8BHH`{mq%R;~jn7bfMm9@~8H+lB$wJ%cHX2 zDXBcR1j0rd4H^?2&8B8h;=Zf2($ZYA1Ej|BeP_2~Z|(T0n@_^dWYNy!#5LFAU8a6O zQZd5Bg0e~ZE+zHY!kzvzsXV?!ATtX?WV$JHl5q+B;#BkNfRlFqZacl1`w>O(u`_ng z>%?_p33|@?esj0*D<8$~Gd8Hj<3!DDgovfR&6Hq~Tjypxr^@fDJjuLEn6Sp=y^Z`TycnIalW7)KRI((c}){4gijVrWk^b$j0ep6y14`eSrZz3Or6m9siM z-ij&L=!D~ppF3PBmT8w6KQ~Y&^>U~eKK2wF zo0d1mM-;K-M_W$~bqY`rbkF1(aBhRW-uy$4aQiiKclk^gypKP2yaN%u&zFW&TdCL; zdRH&(mS6SzsMGczX2g>{u$d{)s4RqCHq>b3o~x~15sE_4V2f*qi@lvuT`-=95NJ^J z^pjv5th1f*%KkT!^836uu)~BK_@>!o{`3=LS`4UCDts@Ee~`-Rvp2&VR^6?(5kX%6 zp*UgpQ%&l83wTbSWq{REzK}Lb*wwwIa95bj`)!$92A>O@eKvNBL)&QCR0~tOOKNY{ zIT?Kt2uf|^fmk1?A51j-9#P0!!2SA$dbI{>Mvk=+a8DLlRg`Jw<$sfA3E>&m9AH0#`@83TvCJ9bjzAhn{r6-AGc>F?z>JEX zTp>#?;iqu>VX^@T)sr)DIvGlHbJOv&Rby!Dm)zFJKpn7f6QWXEJ}Y z0(|7)1;&LE-rltG0`ZajW(NgsZelTP2VxO`Lwy2T=6wR^H=p1LK)Bownw>8@4AcD` zIbdjbuJ(%p5Yyn61r7zc+2@z}LI`(!+l!$;3IT@caSN%UYxpA-q01s4yRZagS{RGu zcRobzJW&9zdB_|BN<$rJZTdi-RvJb+!4ZCswkD~ZEK~3_XbFyC22}}e!N||%kg~=( za#O5=?E!8SCQ-1(sk%C$Db^ucIQ#*a{jM~d2ri6&VRghu+N-oAZ)Id@FG!5(cy~o2e`*8m z7q!jpbJnJSTdT^Psr1<%KSWytUdh_o&5#kRq){Zw9IB+VhM&_vJauUK_sy{5H1L74 zWj>KVQD`ftr*v+K#%6X$KdEr}OM3MF;?o?nn>O1T0>RfFm*u`B=kvJdxKuE?50<50 zY-lazX)iDd)ow`*4ffU3SU#C1f4Y!21E0!KRkyH9ta)7m!Oq1Z zg3NZ4O5|2Z{1o+6m`u6qCQUI8u~jHmd1V7_G*UyqywGhE5wx0pi2H5z5h&#r*G%k? zU*$!VOpYJGL=Ll9Ojc(e`um>|&&Ep;G5f6{6&osUY`WXVz^Yo`{OSC*Lvj<)tN;g} z))43Pf<>z@9URtz9K~w_c1dBWS9EWjkY(Plyo+V+nEbi<(X3;|tTDZ+i-qN+| zhc4K=qSpi}-n1dX{p_DNN&9up5THfWO`yGhbN^@q@o23yU(;-KAloL(f%45E{w|a_ z1=kRw7-j-K36>Hs%-bqIvr4k~xsE4nxHP%dFVjDi5={{&@5Jo2+?m9yE@*6ObwFyM z?K?~G9d%8V`Px+Gz=hv27~bS(Lq^!jQ9`+D_}l{@RYZzBVkS0h!zS1V9XzuCI@Qi& zfJ1)K&(u*Tn%DJ7Z<*7C9?_avxZkj{o_wbKDxih@>JYHA!DI_=`&S4uqzSJyQ+kZSF0jxz0>lC&CVJ{Q?bL$ zi(3N=Z_4=IcJ|Ggc~NA*2h(7dcHWtskWNKR<<#5+CxfXZJJ#jLuR8bB^9EikOFH(}(bREw379k5u! zu8t<_J`?b}lP#*A$ z?&v#cY4;ca<^Bpuz^6;6t^!RhhZio3tNOW|H*rHXLnaqMO`ww_dHQh0>nwT}V6ts5 zP#lXN{t4<3q!;U6O*@9Kc50+XEtA|dOSSUliF9;FPqu6yV8ob?%}a?~t9-{(VJ)SV zI1*gT1+Q{pM|l9J#cX1P&Q|$bf?b|u6-^Y9qlfIrqo>8Q(3!Ji@F(v|U-0q*V-?QP90BU@<(E|g9RyP3}% z?zf%s_*Q}VvuFJfap6}Ep(@pnz$JZ@-wz^`^SPNt*u{hrPLti@=$nkOzMeA@$QH(o zVcOtrPB~HNGmy$&h1dvHS(1IZR31}VT;Lo_#Q&N`Z-8(SCOqJ{VLAG$ zP7|uLG~=)`peF!q0b6^TVU8$P*(YsY2Lv+rWu9!t|sCq4SAk)k6vMd4%E)XH#l zvf(5ieGEDKOD(IvK%iLEj(DEjz`>=!O3OJLbqjgV%94OztS0Lq!$55XevZwBm16se zEnd5)q~Ev(GI9;a`p7D6BuXB^NnJ^Juy%KmI>nUQPWG0BT|4Fn!sv}LTR{eFLFr8s zNd|S{Pvqji#rmpRo)pd=O%3f~Z>cC;A!I-o3K>XzuZb<{T&Ee$oI0C7(9>f8P6MB3ohu%_8W>>JsV%Zo1=Ab!S{-5p zo}T1tL$Yy(B`R51!(QrF~l?!W1rcOu<_` z7|}F@v&UAc-rC0mDz-Ui$!&_l(Q+0;|KXZg%4Ii_HAh2Q!Y12@#=n2UuwO!fo!cgY zLknL6FD5*N?uQY}=}9V@W5N@DhK0ccImx^qGfwcl=bxBsbk_6Ogtpp;H$7UH!IcqS zXe>>-EhZI*uI0=rM0GFfQEKaeA|pRJEkf*I_>hm%xjNZ=v}`!fzr`9=oJo#hA%)i=^~lzTsD1b`&<5*^mB z3;qQrPie>qG_DEQG1l5`LnDClbH@X6ut4<_8pW6@OSlc7?vSK-+J}DFu3#8hhFK(Iia-v()OW0E)r8eb&m09@vfxpD9M5$<44=f{z6>3gUJkU7~b(k`2fH(YXa6MasQ zzJq;sB!Yoh!Ah63V`fb(5p2+E1cCetxjv5!Rg6k=?AUU%KMnNT@yXAa|9X_2)898B({lMGjO8P9n*R- z>Td6h+e}LplSQvH8MzH2OXG$+tHL(cW(0BknxIb&~f*d?5@Tiz3P^sC~j$t$54Xq%8-b*`1lda}J^h-7#~gUPy}A_4D_| z9Z^1bM88a9^9n1S`S#biRO=hvfr!03nD)n9mUmsXXmflOa-X9O;RGT?3}b1I=^w6)C7qH6fQI4(+-qB170R9KJh&r&wU7<>hfRZG7* zc-=8L#G8!LFyoiG3mEK5{6_yM&MyZb)h;2PCi(Tul8TE8cqfPrMYg@u{&U!k*0x2_ zxwhe#JJdfGZJM4}5D3kVIXV$~qc!vbaN0=?q$Fnr)N@MFVf6x0V2`wFLDNW9c%@!=(wWn*^9G8j0kK<2Lq zUlpzt!}$M2F7f!`%&o$GcYu&e^%(h1mYsjng%(38ez@h=8 zL^ke)KK>DL;1W*KTFwL0c(@vD%XR;zqh0 zs$T#&^nMe9t=KZFZ;u*(zbY>6C2`i|NIg0!E^nF3OQ zU%^xDp4Upy454mev&f4GVYjc?n*jCK^(bw-8`)beAhuSB{}bsyGJ`KG>m&pc2ng$c z8>~+8-`}bKcY(o2MMeSb&rd!BvvrG6A$|37Mc6%~lD}&H6?u?Wx=nYC{&C2L&f4V7 zirjKM$em6idlM1^>U%SCT4^_o8GxB!fpNgTuL0q2vZm8byQ@vFD=srzKj3Er(r;)Z zYSxE0dsxhuVufKb-M!RF*c!??HTU0Tipc8ou|FUJVQZMj#;dZ8q2;SgU}q}yntsVd zjxX68*LdOT7Io-;Xe3A!y6Qa_b z3)D?sgvOJVwNOk1O`fK$WS864+<1ynmun}l&vgYMZQqFZpL=3!I!|~j^Jdxb@_=V&E|k`KW*`acQ~57yA}io!Yf6E6!aba=7OTf9!=8gr=I&W;9XqvFJj;b zOIC5?x0ptYt6`6bAAnDnh=o;#2!v<_y!l5@^gjn_9wi2zAMM_VK8_J;R=iT5J#})- zlbYhebbH;(%@3)R3$PU2X6T$~4*A{9Pk9#Dm33aw@HlvykoVTcVLks>O3-IBsk(~Hfmdr#3Nj|@dd40Oq!lXZfU12ir6&{Z z9`uM^HiSsOV7Z zzjbY!%H&CG+0Ybb-i={!!K$5S3tQ|amUH;YgNkbgZ|9O&CnQriLK zx+&rYF1kxj^_#(%hG2edj`Krpk)*oByTkO7qsj8tM;*bDYVut{=gai=yT@2PA?*yw zbNj2jM83Llfz_KEdwUz3Kt#+Hp4(1&U=CXE^$;QFZKymD#qBFCGS|L7I1;z5Ej}`{ z?WH_OVE^ry{su4&bcsZ>bJ??z@568F8W#T3KqP>K3?r{#8fS= z4p*;aevQ&hOK^hs$`=w*O-pd;#@?>@(i0r-{S8vE|0oKAYWI~M5YZK&+xG`zx{|=p{!=~TA~jF++vzrp{$1@3UGGk?8UtjA`uWNv&D& zAruQ+j=`-4;idgiu}SR+f^=|RcGvRC&1Wn|k4x!%`4F^{e8Rfm){Q(75&Y9&N?VN> zvgWR?MoWoD1owk%Q-gX;u4jgn`58q^eLTOev=Q!)H>x;s671o*&Weg)A|7=I3=7ka ztVhu4D_g)4+S98H$!ax%e#Vb>2&8p!){)n3 z*%p&nnAB$!omm(oJ}O|R%MHEKY^gc9o7o`i|G>}WP1%{oi8$ztRS~xj$(sF}AJQhU zynls0eso4WVmGKOBA;7E!;oa!AElH>a_{hB^K~t1kx8dP?L17YMFyi42@Q*dH8IAZ zQfZHA(7+{QkQ>Af)LI2RHhFapbDAOH(+}#INUD?Bn^qkovUr*T#gDK_4Q7ZT`!Ete zVG}>a6F+ehKa0sfmdQWVMricMJH@?zJHFwA7MuPlJT*%Q4Ry3SmOL~=u#L5_{gTbHM4sfwEyY+B(k(XwG&T1Kb~+Ma z9H)l>OxP~NkFkrL%nd9U<$qOVEkf#j1o&%k9p7`){fRytFEj|5>j$ByPBM{&#? ztT2*2xNv?2E#4EnS2m|PJz%MWMdZ* z+ZR$Gb=Q>ohRj=QK*QJ@-5_xnqfISjqiq$D2YHj+?eQc!Cnh1>NaNuJc%Xp;Wl*~4 zBA2)2)vhzL1HjbcH5kK(4%u>=1T|sq3GX$^-cGoEerbrZ>u+?PTMWJn&ocQC z8fm@7?=U|heT?W^5+E@qr4}x|Xxrj$sn&N$bW_(h6z7T^eMyY+3n_E}vp5Du4du-_ zvpeAL*cT}LqSEZ3dRgIAJM-k$2@mrt z9NXKuC1n0Y`y$)#y%k{o#1u&S&npWdAJ&OBYQa&XOsSDl8DGh~Lph1N$oF`oyx1}J z-psfd8Z^Z4kIpXfrrS@N#}W9hs+;S@(ZyZ)`CVK&G9iICNkO?|VJ}p%%z_ZSbc27~ zLk66b)Kn-P(x_YxI$YgSj|NEliYo3(?$$Fp;5LD6$&!3V=^Wo_UROEgCWF8-Qj?OI zjB@)2&p}%Qv(%l9Qv^!y`{`FrVwRRh)|NP8o%ju7LF{`biIFw-xcZ?G=9%U-qlp*cJUA|fPMx>%TMgtp+;nkVM>w(p#<`5UnaL{ zYc1q`P_-ZiWLKnFKa=q(!{m<8T?uT=1UAh-PGjx_^ulT8=Iw@@>Hrc~W$I3ug!w;C z6O<0b8w)1`sQaO5l?RN20dv7`Ys>@M$>Z#$|d_1KI9Bs`dc&u<_E%sapOdMK0Kw;~WF?#Q^4$QN7%x1W{aC95! zw#X-2lv?JQMe|~xSU0e+2?9c2X+%Q0>tcJEP29nKrwz22d11eem?n14UkVd<82yx8 z2zR9ovchL*Y<+(Xs_tQZGhS@>mP6Nn zuA2L8>zk!otk+ToPw%1W^L6sq20KQtkDu>G7;O$OSe;JpY#CnXHweI{ms@X*xl}^E zCrdLOFPK8P&1-Fk*@0wl*x+i3Oqm}P;a!MlstP~NU zk2QG&YUXLYg&cm_7w}NcEMl%byYHgfbuQh8$k>TT=!uQG9+L(Ye4cdwy!Q2B3=JZ` z{}xq4_v!iB8|!eeQkG(6Tktp z(9_Iuq1HQIiSF&QzZkl`EJ-AQKlzYT4F3HD9%gqX4so|07s08InlqS6OTk<7`Yz2? z&17rr`b%M`JNBY?jaws<+;))@tMI@ylg@c;FaFU;Un0G4$SiL?&hWPH$Os~G_sY;C zB9~=!IK-fbYn0EH!lUiQ?TZKuhIwr?9ji-5Mk+%|qVB?UAm0WmkJOS;i@gV}5T6fq z3PUv6O?vhU{q%C0{-Jp#@1feTYb1-a#ioPCyeKdvgat%47JVsXP^9IS-?Pn?0aYW6Ve-q+mA16wKVf1YIwIYcnwq$ z>gDJmMlOnCBx{JL_r4i1X`%jZK$zfJV9mQ=gbnAV8Mh4I0ecGT+FGH?{#cJb6CmaB z1YJai)3=HbYBfs?raZ=H_p>N&B2n4ae?C!F%`P;74`8_sb~^1tWELHPOa*Gxz`M)ejW~>3U{m;JT5)MP{q|l)9%Tcw{1e$b$})VNWfjR%NBvbpsXOdU zrmQFFY+2Pn%#gn1&BlymOC;3p8QF`Z`cb{IB(ov0r8i>Zg!Em5jwVz)z=+%u|)=)5SF3iXT1&c?xy} zTTrEPF@5l0QIvnR>a-qxd;h?wy^Pmrz6@fU{lX7a`}LHF(sTzn zLo)=ot9Yh%U2R3b40Jk+_*M5iQhF1E%@R>^keT{}Gb%nWmp-(9WD5zYY^1wZ-27QG ziYI;^T|Zo~{3;UkX&CFAcpD6h_a(<-pao}^;9*0 zoJHuz^C)>WnhKcmefx35{r;TT3Vn$bi?_7z`>g-DWu~j=&T(iwqFRxDDLWM0qGS~5(-sRII`_i&2^?{ z%hiIq#d)&2#lOSbq=mo?f|jy`Qu9r8{!r)gT39X~bKbV6@h=XWO*fEiNelyUa$=86 zJ9L!?TwNbX32UGGAL1q6xt7CdE7rnPw-ZyZWIL?!0*}=Wzz@>{Yg(=K|3P3AHoQr_ zU;@O@{kkIz-u(^;3b6|lo`kBe;$bf0;nXN7TW~!9WbUuVC+$-eIkkP2A)mD@w_if; za>EP-{M#vJ_QvPu5lDXv-OW%gLndE66(aY9O#*qznD8mFHB$hOL6@H#;*Pj`haE2M zD$6z;QdhVzIwy9~2kax0*(H;FY!1DP2R+!y?>vX6r_W5jGU0F4<3n~EyVY1-d=b54 zAPfgz{fa$YpEfctZh+Vj2ZKKWUueKJML!l`C&r}@(x)NJ7r*y!m@kc&OfujO-Psq? zODWmc7u=_f)TbYyH|4+&nouj@iwUna=nI^`IfziOE})b!ldKD0g?1M|&2l)GQfr8Z zi4O7_3v$~;$+v^d%LLEF;u9WVF7rkdQyqTPMo{ek&HoN2QEtiSz|Z8T(< z82}Xl4wt+LivXq3yiqW4*Eg&Ka`C6H_hF`A9s&Xe_|5YJuPgMVZcww((65nCWr7#m z-xG|1y1ZMez%%2QuKpoEdTas0S;o;?CS^0^*HrTT?}JN0FE{2kVKWr(w6}`+WnfD- zB)nNA{Qj7>seSkllDV8Heke>V$Vn^IDrH)hEO;xq+hd$P9@!hX!rp=XqEYul&+Uw= z*8y`Jxdtaa<~Ls5qJn!>K4w;qnqM5^eP%-{w(J9M#?Ha>(6~*4ufOIjhK#s{iLm(y zY2?ft=gi49(g!*dc4JONbIRnWl-7s3*g6JE@*EDxT5f2iOW+@FO*iNav!iL>UD%n^oXgX%C}t^*(^dbUo8s# zEu&oconP$6&dP=W;0fvRDb_XOc&KBQqbXPPH*0kVovIj- z$~~)C9g2n_3lM9_OP(NV7Kg>OO68qJ{9TK7_tlfMKBULGO*Q-kf}{Y_3K$ZEFKSW= z@k00?^$J8gFxBuoZG%hfzf-UN8%Yzz}D^n^XlauwM!q@5c-g_63&u z@a=HzxLvgi`1x%?&Bc}lcsfs%4VrwODceJ6yq;%ZuAm1Yr{u|;r~`%(AecRWZiWFO!rhPiOBMjJi!c8`66ew|*HJ;vN^)nmjAC&Mn;8zk zNb{%b)Qx>h!~Tvz1CSzmo9u})i>9C9T)FjOxc?7p?-(O$)NO0-vTfV8ZQHhO+qPY` z%eGy$%eHOXUEe+TB%MzBq&wYzR`ULSM>5x%bBy@}-S3*rk8k|O-z>!o+RF@rVIX{l z68eTqoO7kkDW#W8oR*}`*cC(Iz9^@QBt(EPNubNxVgyj!?9=*r5b~JGM|n_$@V|RR z07V&1Sy4DBRqy^fAs8M1t26{I;(kjH{-7LT=%0PVD@Y<{woU3dI@ezNjMTa7I4+E} zxBQ(2ZWXqeR#}hx?g1ysvY4#hq2zMs$S`Pw%V6xS)`tr5omp~U8Qmf>cbIC4zp^9+YdBV$YfXGALxMQbWK7gDoG#U6yopd*z+tgyi?Rp6 zVy=2-8lrujL0gdA1Cd<(9St*uhtX^n%m>dG*a2Ed!D)NE#sSak_ajE4X_^Acn~Q(w zGw{hWY$3Q5+*}PldhD-CSuSbJaf2kLAR`(FOUjdQO;tZecv&aiu|S|{3!qn>_HR7%XbD-@k2}? zLlI)TI<%X!g!)}|s2QBB0j$xUVXjeJ)&i(ppnr(#u&10LegRM41vm&@+*wq~zbCLRm+wDicCS8pFYB6mAIT3$;jI&Tg0lIhW zjW~u;T*PO=+jBU%#&dSe6ovacg*n+A=@^6EA`OWP055Mwitqom3o;j{o(uiARUGv{ zwu*`VhgPwjwTq4IfAxo#RIRMB)lj}o^_XI3KjfAvx?cA76GJ#0uPsYV4cY+fme;3w{|0bGu_B@H>coDOmuff_+Y(=fISrH`#r zjL0&XlGH3BT{55)eRgTOdeb@ZYK<}a`yw~8DCP2 zY>(Bsjk&k};_ECvbwO^FZhb-UNNHb0$haMVkib(WoEdg z7$h2yp+E+wtAT^Y3Qf+OsIx3PltOj?(Wrzjym@Rfy~-0TYB$ArWcsp-aaiy){`GQR zBQ&Y~-L9D*%%ih%qwl?6rEwb>d-0f?nK!Yuz(o{F6l=2pF?$Z?IyH+C&Hj+=Y_}4e z#AZFwB=>^Kvv8h6fLBU?>t||_e*d_67WVjQ&|=N$f^lL}HUBktM~k@~ZiJF{g&^g& zHMTpc)!`bF<9XlLo}FN3QSR77UeIjCy;xh2m{e+IZ#7y?KsKIY!icxt<`5F9)CEr-O{=9bzeVC332`8;(7Gw}@Q{e5-va@O z`*iP|(T`JsKA5I_In0X^6b-}Bg7;E^ZmOADk1zsD|4iDI0jn~c=Ab-G{?HLtUrYbs zfuc9OLR`#xqcse|UA=#?Dz@}yxL5Dn5^SdI4TWZ9NES8WBq}i6 zx~BY6uklRJ+PCUvuRM?nvooGE_r@7AoIC1z;(45Nl&e6dX3SHtkN=mLxgi`Eb&lyE z{lSpac2_E8wq-4uhL#!~2+{TU{V~er@*DVMvf7|KrgGW&xYb?$qPD54?L>9aOjHqUC^Dl~c z*gY=(1%d;gxY-dOECd_Tv9~X5n4Rh{JiZ8!4?cP$e8irQn45n+$T%(mTaxb=S*arw zTu*LP?`#d@@RtNV2}23JQp#*OUV5iJ_MN5d?8?f#4fq>lkX?>CM=YBpHFi^a|N3Os z9i;l~dXh7fmZ&+_H1mw`9eh^R!Rj4M90w`A#RP{&^WwoAN*i-wK$eICNo#c3j9ejK zd!)r>Q}7pjP-#2DX_3LcR;zEtiDSNb@QS&l@khI-UH^>}sm`gi_lt`!=R>t-gXmSD6qME~8s$be)Qu z@b`{$ep^t?4-8YUgerF2U4A4uI?R6~=_(?&B{p`t@-*=~#8`EN_*4~kA71AJNC5t; z48Oc2PiTu0alM*k97<`yF;@-PSUX&ayS7X+vuLLTVjLavdw^Cx_%JHgQ>H-ZiDkSz;o&={nJsY=H`; z5k#g|oG)(CyMmHDbWqv<^UDGi1iiFDDm9ReIMiYiT)jvzDqb2`Zki+juYWH77FMrs z6#V#Ti%>rV%?0kItj6U19=VyD*s@(@(NRf-W<;RYMt0EUvF3m_kLYRBF%564Ef}5f zDyDcrP9x!W?;+XsjCQ~IvDm5BFfVSeknwhEdo*uu7vt!bA*_r(cAM9Na(DI6)2xye z`HdH?^NtJlh~NJT9QfKUMM{DF`ST6`f4&I+U-Qcp|5I(YwKXwvwy?7$X85lP9iu2C zhb#c^(~QT=HGS?+O^A79L~`MX4m}bzGGPjrNg_%>jO*paby+3EHvNeI6V3zy90alX zr7&_nCVButmLai}rFNsD_B5lXw(_T?e$Kzo&|iZayw0B_APjH<;M|?~R(-d;57J;H zCaJ4iL>&*CEQ8A0_F&AsOn2mCp~);}Zk%Mf%k({Ki1?bupy&bb^W-B~b0(I#AQL6D z7YB~TEk{|;^>8j1`)}q4;pPQa$~rd#7}t8tmAF335azNFa2pb#FmhoGX#q>ZDC2bR z-@EHkfgj;Bq8nj#+B@aUpjRaWZO5{o&&Q*gSO3=M4PSvj1m2_k%Tgw}7uoP%D&O?k z^hxwTaT#}|_*L5#a%B?*Q|kKFOynexX~p#oq9_`FW1>FDG*PBaj}8ILlczm6w7POj zEJQ3i*rqSpZpOK*ZZpl=uRzHoKik|tP<(}$F}f$_2v2Y!I!ivL5z8xBgjmeDR3}TB)e2)-EOt@1YQyA&vgeKuZ)%fBNs^&r}pH}%h zFlLV43ke3*TvB{kk1B}^{}~f6*lV)-@&mME0gWC>!?F(@!kqT_KB9bfMxKi+TKZ+4 zZeNjBu%7Br$Vd-2Jlk>@g`P z!y7u)&J%Iy@Jf)TnSF~@S^&0qT&=RANAKT%6;EJ8qLAv4nexJR-?5jK`KK9 zEoT=qQ~^x}NRt@b z`qggc)1Q~NfLD4xx#%>Dt{>J?Bn`t+$2|j$m`^8@!uqdJD@1G?C9y@E4qa-t3lOTM zRv%=AT)PkZ9IX;+*D4U>T-08oO-fx){xe$g1xpeyYo*Rl8y-H{3d2pjL#_el;@^m7 zhC7@%&3s|a0fq!DK(A5OF3O9mBeO4Pn_Pxc*^H+H2{NU1}useYvq>+_0;oE5Cg-V z$%EtNsOMpt=jG^QhE5M)u|882wGrdAjdU(sxP%(At!7UYQ)1H0obgb3S$)c9)IZXYEO+ew^Meo1j-m*GxVuU=U+O zum|PxHudCIyvZA(XHK7y*zjL|tA*O?V-@*6!eG9%4>xVy!==bV1DN+4T(jAmPa~D!$_<-r#gW9n z*6MgJ=i*(hO|%#lMuVoK4PE%T5f)m|fFc8dQJc-Vgh39RBE+ToG9&C0m(5`w(1R+l z)3!J;PFzC?F`xIUSWqb8wiO6}za zuKy&Qq(xwqV%pZ$Q=2zjb`rm;rsB_?>TNxQAjzWd^;-C@Z4lu!G8~K2`wL(eH=Kt= zlB!bbEv>~zf}1kIk%dIt{T>ZNZ98OF@{S(ny#$FKqY33);t(MEb z5gf}J*u*4!Bqjg(mEA)`zT-le)GG1>cPM&?Wt^K4qxTTJmHoXGs-yrDUxJPQ_8&^r z+$4eoVlyBl${|gRl4tCd53DfI90d702Pu>0JL?8AtiETW9YLZ^@|6@kVo~j{l`cNc z$A;Sr@E@5fhzM)T|4MY__oexNAD#Q3S~_q1!@VJlw%<;g|fCTbbsm1|Iby#j}+~-<%3VKgE{b0%^7F3kvYyJxTXsgSb zR#wf;s#aRn%Vy1*D3gBEo1JcMjacEnJ8_qj-ArcF*&P2dBWZswvBmKM{836Nhiyr% zRrQDhVz+bYGq_fI!vtGBEy=DeF~sS9KRdHd$vg0u-WHv`DCgi8iPzmIKiGs8MsvKS zk7M5@+?K4xQMS%EBtpq5Tc!T9ttBGIm%qcjeZ~!e&Kb=1KW8JQAy{O~I%YsZWNoH)Gpw?zOt9 zYlGR9rTZsc*LLMqHAYA1=Jy+@e@Ec6UCC%g@jwT&SL>_H{wXKdN(n;@Rg>XRkrN93S(VM7n+6Xu%~#c$zN3-hOQ{72yMGijtp zW|(W}+0WurNAu9&+$%2gM`rj#*_)sHJ3g0J@of}#b(&A%%@6w)>6_xo`|sV4<);(Y zKR!SPpMtv|i%+Q-zmmJ!2-V(^xU$c(kzR*Bp)NI)e28QJFb_LWZmKp?;6zGfnN{oo zTIG3zUQ%YyvHXF6D)vl|w>3;atkl_!{qUV+gWl@<(Rm zcFIr-!!{t>{U72)yFy+x6e8t>+6cgG1!T@4aRx~wTd*!-(MrQ;(vf|l8<)OHLu^Kg zXtBdb=k#8&$K3n~B#0*nWn=^yGWh^G0)^m9L?rA1qU=m^RgnmwZIqJCba5cE^1?{~ zyxUP`hK%h}c?K0EGK+oVMIwcoNG0rBJq8)11&CpJ6=n8aDTbiP3}xwwK0{O(D#c-I zne20a-R;VVg))m@${A-mA!T`bX~diG2fGY){=2hEw!oE2h5D(!#;1@9wPRg>VP+&I zCH5+{B}+ZJiU#%EP)2a0EXq@bx%{vq7#2Y)N4gX<=c;{ub|h(&s9^}Hs^z{{CVSLw zZ*7FBN|j^XU6%@qu1u9{9g;$4U8M-h>Y-B|;%1v+jCvNu^4*Mb03zQ;|9CJn;gx!L zi*&s%Fr$cklafOXsbD5}QaWMgXW+tV1rl9uivFz93lTVVp^1 z6!038Lj)zQOWne-NyX~EzREtM;o*_8w!m=8(0pb5R@v-+SY}&hs$UFg&C-wytV8!} zLJ&$4t@|)cQzRCScU7AN5*w0|-P}-hW}6HW-}2B^=4wTR&1wv)&}P9M3G8y<44=Sjq3jQvXN{h#!fnGWQeO*`(&B-evv}480v+b=c%eT`=jAMzP^Xi(C$t|nwv0U!4eBj zLM;5;F7xqK`0EB~&K^u{l)GB%8$4mrb}#EL2|lRGnZ7AzjLml6x`awVxLq|Jb5ZXa z+P^i^Nztz7_?yjR{&;}OfwWY8{vP9M8>pJ+7M9U%rs=EOmbaBx9|F*J2&6s0&w%D8 zf0!QmRXpME)l97}17b&esjMBeaOT$cWp}Q1!nUS@rG8hv{3$&4QGB0_S`tL)yhuqb2t2lt5@VS78NU{qYY>`o5DD&?(H7?60)sL?&A4br7NjV*I# zq__>A9(kv}PTaAXM_1v%w(qBlFL8LSfD2X+LbMpJ;;eeJYcCn$}?J!S4Zo&6SHp?Ak^Oo(Q%%y+a zVq(TqO{P1fdQd%wO<+MbJ*tRueP)V`1$+i{3BN89a$07qBsL4{Uds+|*?IP*#CTjJ zn1m2;p=zs4qO1)cAe5An0*Vgd!o<_EIpI>RQ=uLhpg!9|NhUml6`D)Ljos(>aJGG| zI7qcK8;!6Awl1mG)XNYFO@4e zv8wL0E+1Jbi|nBwg2+Ps}vZLZz|2Zyb~qmq&HM3SRnl+dRN zy6oPxnt66yzQe&N##Yb`=*XoSrYf0#D=4**cH)d%^95`~P3~&a7XG?$m4lo4%{DT2~5;b?2j*mINJw6{8Ds|Y@W|BJ=n;o2Olv1r97cVVKnU1 zHRF&oq3lqZAPeZjFvz8osF}Q5?HfpG#rt0}u<^8kjK#bnQjgD~d(5+vtp2idU^`wV zoyZZi52D;pJcx8bLm~#tELaqgE?Cphe$B@7#1RO?^v($|ckTt0xS+G7Lf^1j8+iVq zSV^fXlCCrKp()#}(5&P0<`M&+z{1Pa4)trKfxsi!U{ah9l_7yPHkEVwgf9bQn@W+Y zvzDP~Dk@KdHxw2xOAe>J*ZInf3~EGi5efkY`^_xhe<-)%#M3_aI@~WqsKR?q^v$n! zc7@g$*bDroi7(oSq%|?`T0mBw*Iw%tCZIuD{EJzO(nR8d1hf?jJNy1(94@>!;c!(X zWK2lUSf6o(V?%k^D&TDjONq?63CjjGB6KG}WPBhn=^1C!ZSLE!p|cUu9K6>vJg_yl zzG;0TAi*veN@qEMX}w0nu0M(vOE`GDJ9;CGx_VlWYjCKc@bx!w;dV{4NZ-vmJJ$*u zg1P`B5-_NwS-kT6gN9zvoaP`}T|U>jvU?C?t=!iQ7W)^>YOTIeDnLf+$@aP)^sRh> zY$c|FisR)*8VE}zxk5{VdSB2D{eej8jH2??DOCD=@D^)>9LqQkX4gEmLLM%C7DB z#es5N0wcYjJ4R-s>L9S%ICDE?9jMYH5?B+RIGy$vupx5kW@%(jsFU;%5BC@~33R~~ zMR_g~qz4<_NZngE$ z4QwbOBX?9Iw$WZ{tUNdfqs2F=o)j2J9dS)wVM_>wLAW(^=yW|`N&P4ml~G)Fb2(At z;bk&S*sP7FV1frl=J;fMZ3ylK(FHf4oq-N{n?i0r&LBdD1#U?{x|2ctwcTCI6kA=4 zcrF{PG@-M*mZtaKZCgVFBL*ur+fve_C6m^=F<|L~=QC#JSr13iwCAc-$0;(O5Zs&_ z+~k#d;|SXP@XT6K$7@I%-rlNK$LjF5;Vy=IO@vc8nDbq}yEt0snpwvx5$^IZQ8+T! z^Z6xjixP@XM|h-dj?PHS=_RCV$#hNOK4*)9*~-E~-02x8rET#(DW&b-SgqA+&d!)G zbu+Cq7c8iYOIgb6LPIW;7ez5L6uzQ;fMSOHA=e9Qpn@*~E;+NT zGYcfteT6xs18qPjXICyRxYpVEP>_-Z=eu-wZ8Nn4{<~mzaJLLLcxY=~yvx3|+Ja>t z?WJJ=z>d_=wZR^Ks+{IEg$cGg+6*EZY<&#$ z=I91a2m2)M72fpvX&Ik4%6hkQ_fu>0JOM>cN{7Tw?!qwLaBY0lT}fwD*}=-cR|tuD z7S*DtlVLmiq-TzFvKSu$GaKt}T3;z_&jg&M;hWPllKqeLgS-`_$ej!7zS)%+oW6+e z>GidC31r&XqaSn5^~eiBPP`KW_H@jbNmT9)2lvCobMKtuHGEiIp|I z)r$&u6*RvA9O7^4*&+6E*<5yy@u6}PrP885=TvAbBdg}(<~Zx#I-eq4HH~<)yj*#Y z`?bb?j%cmT9Sm_hyHM>@M7}y*0-DYMSHn+lfe4=`a@d?qB_n}AG@N{AX;ZEZ6h&4n+6w?%|qQC zMEkaIAY)xf!cx`*wnTgoo!vHj`JGF6q|L+T(d`KnPTkeE%BFt$gh2@q>sZOLez|s2 zfDM2CnvEsI*gET8vn*-{WbNY_55s)F1tnFWl3iYPwIR6G-n~00V&2N#u|oEQ$Bu7u zo-_$vA#MJnY^8KP-N(rl7!3)CZE0ESctx9;9qv5UT)kPtQ@+ck{ifMo83t>T5SEjaLHKc{mnM$O zAFO@^755)`OY%D4Ool?x-$ZUlvW+AqrSNl!_g0DPd!mGKnV@oc=KTN_di8BvfB6HM zCR9NR$L>>>Y*2gwwHy^22o!{vRJLj{Hyv5d;UMcd$?Q%KS%_V(yA8E0=vC{zUSkz%x$cB@C!aZTTsMP*)e zLgqA-JHcO2AkH-YLKK0Jz`wH!nwY)8SD=!@ z>tX#RMY%Sb6GSzRD=dmgXT3T+n@V!w&F(a0Ae$pKlF_5eNlLhI)kvkd<}~sFp@5Qn zuDwJlhmORV?b#H-h87cvc29(@mpKFP2rMF*vzPZ8aHfNyVs3+Aw!jadoMJkY=o(~2 zYhGenH6pB1vSj0mh?opjlVW#q716UuEsW~Mk2N~_?xhq4NX+QH`k|$*eVBh|svnz& zOYdmfg40YIDkBD)RnaSJGi!99%*K#+_rU-GvP&sQ5rZP=$P`FrxAMqpsgRruI`0>v zEQCKiQ32_@HTgOUlllYxVn)E`gz_nfIuu7#&L)M75+`PNHy4r^Z^F8vsFn?kATN?@ zP2&wolb#h-bER1>m))CHauFJV$yPebBM0{+EpUef8iE(`&L`sF*~jK&1jw3!BdZND z+0&+P*a(mA6a=}I4pNkgbX!1ICbR}TMsPAH_NUI`9zfk^2$$#4$jFMd zyg5r0zMM5=%@Qnbj86f##PXOzj=;DI>S`lpN5mfe{zUJoreD+f6ih91WSl3Vj)}41 zhu&o)Nz9={5f8r_3Rt9(d2!Z=ffkIwsGRvXR+GDNWY@WA?|_Cx*G^>=qi zQ@%k2nBSaw>Dty<`g4sC-1H0@H2IXR6+EY!9!NHF#=MExYk7(5l9o5v7H!(gXo2~Z zF6jX-ydW`qsF<1#Jg|wEKl;r^QZ1jA^n|<=rfa`=HMMD-5t7*B2aib4GKt5ACXB>@i2DZf_rw)Q_3L39nM+ zoKfdcixqzfQCs4dTU*h5>3n3dco6lgtmQzoW}UXPN0saCSUlO#y005{7$Ng%&)U|4 zlky^y?vo5>p1NS+@LD2eI6X0404_eiS3amEU178E;f`0{S->9g*Q*CD=$ zntD$J_D;?0C$-HQf zyJ}kZi#*_*dh;c{KuFG>c=y$C>L5yb0=g8a%0jp&Xu$&B0O~^x!eKnavwr+zcMhsh zfP4*9GB84U$)i7r>J>sc&Qhw14f2HB_II^hM1X3>-gJ}hCr6pfU_=k%`~FTXptn)m z5}C1Zx6HonGK^s1sI0Ej`q2>_QpZ);nT=gX63&>_L)$g22h+s*%kYz~j41GDQ2gyT|));y1E%;fC>Z9{p4|Y7Z@V-y0D61MuS6VGthX60lI@ z+%F$@8fbvq3>CVNG?Bzr2z7r}?;j~B=W2x(T|BD5JR&n}?ujELXH-!QnPHK#1j3#DaC~<&Xnvr0Fdsv5l?SWp}LQ$0mP^m+o zav%peBngfH_2CXb*{z?VZC%N+RK$RD2Ua8a16gwt9k3!CV2VE>QNg^s@SO15*(W^`o1#4UEzz1VmEQ5W3<4biC1hi)<{IVa$OK&vvo8md!Y z;nTtT(?R>w!Ta+Lc^-{s zX(Ta+l}up^zkHfCH~dsq-kpv5$=xwcqyV9$Yjpne5A=1&3ct+a=O~6{*9I%0AN9Jw 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

9v%E@W@%ph@Vl18z^jVLJ+U z`C%bQ-zJ(+%NUP zyj?kz&kRtugISf&kU%Hwv*$8_Mbk+ zAEKK_GL)a{eLZGx3_XS0y3HS%An&VG!Z)1cHg$~TyKZWq2(SO;@(!t78rD_yX5BsI~dU-xY$h{9tsHl9H;=;r?=%&F^4r?_EH??x#W+{hP@P z!*#Tgi4I}j2^D@^DL|x1=q97ye|wd~J`=VMx9^!+LtG)n;7wInS;D}+3iR=ti#*9u z!Bw%C5`PM>^LNnJcB5WFKN4H#;GSQl$sv{u1TTCVuD^$p zTN*2yBoIiDL*bo~gcw8U|29srGcxFG9mm0f7+rm%Q&9KL;#u8|dRO@{;0ojx0;{&|=0F6i-?en*HQZTb4Gm%FBKLU#z72Br|p%Y$HX0_f)h6HqJkOEhj zghK4EMbQf)fkmz*oV{4B!Wxc|Ew1aHZLp}r$ zG%-Q_EUlEr2ayiW&=_YUiCx*oi$yQ9kQ48>Pl&)Sdo2hfb!68$sO{I!=Yp5&H+8Uv zgqB9;4m#|%olzP?N0;7X3n1P@RC;=P6vyMYA9*L*i&DZS#6W_lq~uZ(Z??0Roxw27 z$;g(A0#8g+mSX}|MvHhIE0I)MORPWKI}h5cg$Of>&vu*h7UJ{pX5;W4h@4c^E}Oo& zxDzX00SEgPZMvzv%~XuC*aCxkH&`;Xq}c2I@|M%d@6{fArALu z(r7PCKWP!B3&h+7OLO8FcPmAbj)A?-Vl^9U-nJ4B6R1UY2yzH^C-`{7abqfh)&L@B zI6W|AC>M8FU&$Eqe|sOdKsdfIy#?%?^It9spnT#%WW|g|gyp{E@Wof@^a=yzw53rP z&Qj-wq}@|^vN}_NcxQ#$Q^zq>&J1ExB^QR-@L*!Oj%S9s>2le&=2n~eQ6Sxx1?&Q7 zWRXem+8ltA_nHeLCFO>kwmR;?YGHhgVvC7{T6u^7jtEi$8C?X3rRsdU=NS7=orT}x zeQ40y`v(?kFbrK|?DON!mrO1SG^iK*$h;4T4wQiLij7+j-G&vkvPhH84xDV0!x)|A z1UliG4S}$;5J|ME`19TK**z$WiUGYVex525=XhY>Jr$5u8s^ zv?pSkSDHA?^ss-M%#kde>{((~7IN8PQ0*CYgH^Y5jb$(hd?vKtxM&>4Q+&H{!`k

Sa;C*LhSL<3x?15?W0OKtmoI{xHHA8{+`2mF5;ZMd2*k^ut6S=?~5hJ??M=1HjM6@{U;}@Fa9Y2kp`p{jRpO;vD>GQ=X)``6;n;^{uru zD*%_1X?dTGtJP1ps-+7hObBGLQn%zDSgk!vq!=7UO$$X184 z+!6wf=Ge3kWT0+kHUb>Uy>TQR^kIbTL6V`K$H30iqF`)`F7rTsvh<{XXU8rf7iuS# z><(gSr&E2-2k1Oq=E>e&5a7|y4a2}obNEZeJJI14eGED~+2OLtMdmf+?wTl?lM2P- ztjPF$wC4rZ3)%V>$)qU^3Kt<9zb(`=^;4lMc@Q#M)!xKD5$2NpdUbjrewVcAhwMW=i zz+CPKVkgt0s9wp{2(wqwBZ7%&?{Qr<)$EA5ckeqokt75M8sKLn+qFkFk#l4b)DlF8 z{#B4pkXA=o4Yh1Omd)6!mPElh4LKW^YIeSct4osU>a&aHQvx)v?rBsij0+v#8#&i=7T>aH{TQM7Haq z;i0k34NK1aHdW?^6y0(TOdxlPMkY(RbQ`l9mI=buOp8p~w=&AvT6)C5b#EXG(`qlBByZ*75arlhAUa*;;cB zl>Be3cJPm)nAMdtj?Pj67?JGuWv^aDK4K~E!dJ)_CQ7|sI zaf{|e_ww2chOI&kg%CJD)->A33#Uu7u`z?yrT>zScO(^70*$kkbD=r54y=V{gC;Vs zu2(E3snFV(5i7SW~$2HhnVh%;kbJUO^XJUl%zgHG$q zrCl@Simlm^v#sGK zJ#l=%B3ii5txkz&Vh#v3ny#8GrIfOnN%gC{&-an|7OiHs%EJg_d2fATD>z`~W#Kt) zcm?(Fx?=eK#vG@OpECZ7*UEaFjhRLiC(NhI0LHj0WsDLzq$lDcaoqBi%%<92E(?E& z_fwmK=S$mf90fuQu@&cNu=bsC%9ybfu5)-wQ8A^8Xe6J;BZX!t>%M9SP3j6gnBh$$ zik@K1b}&j-HKn1Lo|26#n_yHMBUzsCEYh-ZZp5!~!-!*fkZvrMvS`**O|EQQ*@)=J zAJ%e;C~36B!4Qn|?u!{zO{(>LyJLmb928;pg^3AT&p`N<^9MUq!BBctYDHmM-+D7y zN<`Tl;-JUu7;0`QJdnH5cM9QQp8G!%6x)LKcp`jjDZ0R`*hHgvYj5rCD_FQ|+!aqv z_%RhZH@RsYPMEL)D<2*`N7lD0_=toi@k{Yk~xM(x+nFYwW0xJm_qu$yi(CGCKUr@a!l8z^l-VMH-G~#{QfCY<$vg*e8Kq$SDBbm zZ>g(Gzd77QX)y#x&NK&l>P=~p#yU7@~w>GJ_gZG8xwt-@K3k{@z3vmbix=Z_Zb z>XKj9>)PWXFR;Uk6v=nn;H`@B@3~ybcKthu5rTlR{^*}iV1ryVw{{yXXx_SVNanZ- zX5)cndhVBAA6VNfz0nwwedA4+QAZ)NH;nP&o07S{D*T)C%sy3=%Sz453HgBMu#Srt z@QE4XS$03Bn3}sopUMF>i||XG>CfebS^Bi}Edr#&0VNUH50u(rHbj9zoRajR!kJ&N);M#Z4j&v) zL1`PfqyqM&tVWBMmJ1(@n9dc-=aRL=1>kCd?l!sPNR%}hy;LY)2fI#gFtfXtAJ*rX zu$*ju?G*mdgGLIP zgx2y!vti4sOt=481ehRH_PH_?G9$fcJ*#l&!=RM}HcG>88TzjV+3B>9<)Wo^?r08c zMN7&Y6u?3z;7UKt&?U^R#2OY@wNZ`7IIG5EH3En)TW!5_eMJ?TTY~Pk|65gw=_N&G z!@$iRTaIPRt2+ZLQoHVQC8B~QD3;|u%X%DzxAYWE{RE3## znbu{{;r2tD~SLcQj-gsmkI!vVE)(F2Ot!s*gxQo|e7t=eMh z3_&I~SC3eGi-USY;U_`OaHFKAYRo_S8qBOk)79ifQ_K|6_+k|f8)H>jtPek$CrH0y zjFd%ITa{E5l%u>LkWz;lY4nV?0b|!M6jW>sF9+aCt4mwESa}5o$g1Bd2!?FeclJdK zmZH#PFs$)E9ld$7JUFm@NX`pnyIhTI#GbH+G5w4fKw~4{sR&%8vc%C1 zo(4P_MREbXc%j`9{rjfxA7G!0OOw<}bRo7@k-E>uXgYv`B%=MDu993farc6l0586V0W{W%P z3g({1br>qq8w1xK-gE|aO%CA_!l+bwe=zm_{5QVNDY~F~uf6hRt8t=yI{N~ZWh|E z>ibR|K%yk)>jt+-&eIj2YbYB(WAofjS#&Gm34Qx>Lu%PjK1tZvGcvIVVFcj;e)>xl zUgQMuQmjbTEe+2xWOTsno!Jdo*fi45>;|Rp#mm_;aNNIG1wX_7{D$kA2Z-Z-cE;fo0kk!Z{(vF zYX=$ySYf}lIX&Oq`q!eSD>d5gj5>4DHL#Wtf73!yR8oNRCgusnt<-PDiN`H>MGIQH z_JIB<>F|cv17rpSwv(a1CVho8rm=TxG$6ISkX<4i<%@?i98^z>xr9CI?dPB^{T-0*8}55j~fV0cF2o= zyW91Fz>#*mpN46;1w?Pp|0{~IyPu9uqPSs$LBiR2JqE#RKC{El@_8|)W%9_kpU@+@ zpl!5|72#aukDfO&PR|UQAi0E&8VE*7to=|Rgf*4Hx<$br+J5A2^LqA#7hGkWGXC_$ z53S?WP4VHe#@jkAyRyip+!77>13}<0dg0 ziA++zJU!uzxy4~k6?5L*k&>xwR|d!|Ug*RMMLMP{UWjKw=8oqCtGFBb>N)Wsf%ueJY|Wmu zkq#wkE!9fO_M#{SHErir!^3lu^S#vc?tqOw6J-OrXg1H~Ffi6Rj>9N84c#|a^NXHT z;Ejn~pt+IQ``$(5_=p+e#C)`y31v04<|B6)4D0+a^FBYQdh3Js%*e~2oNJT9Ww3S_ zrdz+l$UhaG#Y-VNDLSqPfgZLq`tpZ4JfI!u3oryL)G#{v>e7860PFDLe(}Z2;544; ztIg?+?VHX;$%Q*0k(J*e?Gc^SMi#s~)Ins{DVmH1Zzwbpn3&gas}zxGrcx7s;W^{a zPlto9-;h+^dO^gnLnZusQ+QZPLA9#fa6%9osypH`H+Xo1gXT#k zaK%fp7x@haX37givkS+b$0yESHD}jAbgcL#lnLQ?j29;OB19_}&toa)&#U5`fb3;! z#_q=}pkk}3U}rV-gNt(N7Fo|_lM#pym)UJ6IHds|g0-;&6c0 zy&wd()jCH^{y*`Tl1sWW4ob~r@oIDp)9X*ea1()>&$*%QlYbMYrbVX7*n6UpzrB=Z5)&C(xtHOLa4 zbQJyyrnum7@}G=8`T3b3uR57227@CtwgglC&+{gO6y__Y!vZNF{%Y_a4kvvATo7L# z&U^VO!QT`vd-^0I;%OmtV}PKfs5Vm0&P%4g)ds2E#$$=Z!dh*jOcJ^L7PB*NuhD zZ82NHxr_IqE{^60KNbh`ovzX5Z=XY_UmW`k_PE2@RgRzz=J)924rcf4k9 z_w-md?u!6?@*A^zevF-)FdTw}J0XtqTOx9gj$0#q0p-~EeG^&!nM*yj5&#s(^$3O6 zGZpy@<6n&tUuOPk&-{P0FOz^896A85489>?R^tE$K%C6L^vZ1F7dj4o;h$>8{kEzL z;AVIOXF=$=MI7`|85yMI9X;f|dC_6+p*skQQ3K)<$ef#@uL34Ecg!?(7dJ$hUI-PX zZfnR;V*BD%LO+huCeKwXhZVAR?@`p1v>bO8FPNE|TQZ|doRP1b1g1wma*1TEj9vtm zH>PkQt&g7}OHTq~$H2_VQBm1o3iKWPmnUj@yCTZDfPx!2f^v6P2uXK|R&h3C2BXbf z9ZSw4whRxcBqV^1%SlxL8*UugpXk~0BZwzgTVONY4*nFGm*gE_&Zgo)i#eOrB-b*v z%`&40YU_DcHLxwoCv$6oOT*OQ?LkJuO z`fCaif`hOKJ;btzqsxx%W&X!D5^{Cq!4=Q8mJv*hmWp%oFjf=!hb}<=QywPjAv@sjYYXU@z$?1laO>bQ0C-uuhCLeS}HpS~kzy zSF>=ds)4C(-uBFIc6K}58<~-T*jFbV70{eFWl>w7XBK4%O#VinJn~Hzqmtoh*a0V> zYR)#%9p9Y1T1}idgl_4?uJd3|%vjzO5g9J4xTqfQs+_F{Q!${bpRJZ5ul8TjdWS9F z6AZN}`m?ZnLqBzVKXO#ZBR`wCp{id>sU7rP1g9fHn;rO5y(plhMBT+#lbIe_@Td@{ zVrhJ=r*Qn56QtQbh-`nJ~9_ z4as*r27Ml>{BYy}|6<@3y(%@K<)Iw!Iv<%jVP^{!h7u!!Ch z52y&eq44V)KtL8S{Wps!VEfNxXq4^)@~#-&FXro1yU+`6octEMsGf`-l1G;n|5-2O zHd1ZP$4>U6y5SwWL`|{>e3Tlur%a90H+DvCjQ^clSGH;ffZQ!PQuNP43rvUXQ zU2*m7k+ZZF`T2Jayg$?vetEL&(gn3fCUuhpyPEVG$8ln$dk1eF8!O}%%*n)?0Ux~; zTr4|otu?97iZ>LAZr>L&@5tr({blLVIvcA_VDaMc&^jfbC_O>(H~F;B2H zPmY95B+gZ;clw`Rz+`6S$7EC4GXXTkmCCF`Xagcs*>5;v(qQ?>y^Af_H!0>322+Dg zmV_7RJ3_GUqq6Xp&0`tMvljt44zVLN8po!vJa+eTZ1>gOc~TSlp@N6bAblJA=U(7H zceN5JLIf<;c7cJ?o@V8Ti5shqc+2Gy8__g2oQA>S%#PiH<%0)|C@8m_lE;7MCksOt zE(yJ=;c}g`N5{DyV_*50%O^Nmo4#-v98mT|IWr_r#y!!9!2MBIr_( z$RrAM$xFlYU2}a(6waPA`5TcONB<_<5%+&IWE@-)17oo4+JTJy=8x*qA~$b1-()BX zK5@62T=TwWBEMBVX`iNq^$7B?fCHny2X#wPs7qVpnm0Dz?Nbr^4$A{(Z0S zHpAQ5mYzy-0qU)Oq|5W$Q?eF(Jv@Xck-cKT=^>r2m$5{1y{NDfg`0>Xe44b~zwVk#IR!ZIYyj7)}VcTI$* z-?r6*DcZ-z(3K(At|@ArldJu+vC*+q+WM#UPpz6L>$l5w=fe-^?FG5xZhiL##QEBN zru!uCKTtM$hL6+58(wk9%+eNbsetX$rq1q=M(-vorp?ejeb5)8c7lEoNPN*-#2^Qf zwb+7LnK)ypm?x7ScU%MLX z{6o9-O$46fn$IG%uSg?)F|Gprhl^u3ESTQt{R(Q&ITLH5#e?`S~=)t6?e-9=3r-G`VzD1ZIITMm8Z=>W zrUwLS?@<}_1_5GEjQ)JY4=$WO1H^Z}p)Z<|udt6#J(C*}j_LcZT8?#2U`|4N)oVbp-h#NiGDp;=&TvBP z3!Y4A#m;(1e>3pYw=?veR%`yo%c8Pr}S8P5Kd z>lbf9@443JB81`mmBWv+|SUX!A=S`7yi#6I>h}06bF_<^ZCx3JU;JhV___)L_n6 z)L4iDg)U$rvLI?u6(m^^M!bGlP?pALEq(3T_>n^X$ciNx>MlaqVXwX#1 zDnwZ^M!0@gP!_}p>3AW+v13BSKU2dQza9{C0`^2{ImagzjvtU{6}|qXGaN>D9r8aD z11Ajlc7Zp_E4^0gH{mpUm^|C-N3Tb#`DLZ^0fMW?G4B>*<6~*&HvFGBblS3y^7696@^@ESU zW5bcIa6xf+hX9LlmGG$^#L}RhjX*-G2YQT;AG)-0M5p42tDXqx4x$ZEZnwO#`So`& zjJ|~v0w-iQceB+WF#7i#Ut+4+(TYUZO0VV&uL1s2M;PAYKs{myI^89a21WNWOkJ@3 zN7Ua<>9Du;gaGO(syd@f8_1rxJ!sHf!9QQ*_s(R`H`FnDv0$r&?JJY@2fG6st(88V z>BoU#LDUBEhT$U)im$QQy;27}E~l9v=Af&_U~PwUEC4o0(R=mS-Lm^lHox%nI3ow^ zE{y{Z>kshC`j2I{Xg)c$A>`ilUEhQd{*yReDfl8|s?7D}ob9*TA*&RP;oEsk0) zd>Dz9=~B`*ZtSx-2$DOr{u3p+fZ4*F zq@v}t4(!z&kW$68MfBK~ry=7)$<5c4Ic@2%TDalO6$aSRUqraEibZb2!o&#LQTe-I zaONTxcZwF2$mOQG+ar#&J1AFi@;v3fa+~vu>SLxZ$Pn7|+#+{-1BSekQhji}R7=~7 zNDlDB7i9EvmAU;7S)wOR2lJi{gApeoojRLExq5hooQxtGLO*@zJT2;YS3+rBbA{KI zHAHJz%*b<{o+uN9^*lRR4yjzV^M42p6H%n#=AL%VZ4y1FVB{g?~C3?SYwQ%qO-EVjtQowj^N7KSnF*2raUOe>+NkT^mjlj9#m*Q$x?fL#s^*}j~OaZ zQoA5>Gcn>q4k(nHN_;HUczlku+04LBUEEsmTuCvgEjJYjF168h7m6SuSfLI-pXkZx0NJc_3qtRyhaEF$k$GbbwE5ifPSAxqhbwxU*xf-J3F>hF< z({-M5(-r!?HggkeQ=%uDhPUiu-TpwyRveoN!slWjh;4{m)jFG7q^{EI!-k@|YKLZN zcNWdrYkAc+D+#H(b1W^QMYo1_be75o3xL@pP5rpqNj8x90FALjwCiETh!uD!{=2=W z5-;zZy~-m51cltim(J~@->GVhPkv^sa+ z^twBsnGhT7PBcbH&rH&y|JCw~(F8~mmqwc)cHGG!3@J2cqXd5m`-hNj3(10xL&}CX zUm#k^)UJhj706|1N*7|(A2x7-9=0)%D>N6Ic=Sh#o+tS3Y4Io2$6_baVDcj*)Pwg( zPj1gU8J>8wg$~XwD=G)r~6?3a1wnykkUDq zgASPcyT8?$z_#WuW96_~W*+ZE)mU;6v-h)m#uZIWiHocUA3tWMJl~{}l$Jr8ORgOx$jh9pZU_DPl*#H?!<;!EUQM8yhc41lm zLBc4}mWlp>4-IJBS}ARaQnX-;F2c2x6uJ)RM0mb7Wusr5v3liNB$pN*zA>(+a=MT@ zD+8n3)CK1^_7S6-oO5c0z)m;KVLn(nVi#ISCZ`uACQps4a#rFiV_+^>(S&vqve3q2 zehnN-YGT0TZ?TxxVaTgfEHbWWhf!D!=aeOHYeG#Bi7OWoA2Zcu4Cn?-p4%ch-8n$_ zf0=LXCF44l1nSNq>9Ld?36e${_;Lc4!TI079!whdUW4m+BncY=_SgE~udKbl$)v3i zPCji?q;SrxE+X8E4^V-2wc~!-A345vG2vdFsjpKovaN=!1X&oM#JL@$F|?zzB6#=; z_O6Ug!g(+>?DyGw_(99Sc}#xLnsh?Kxkm`X)SZEcqm(zH!?=MS{EH&|%$Rf2cea7j1)X$ODpFuhHOp2=h6_$#zA+%XU~+f0*YaG1F!v9KYFB>AE+ zS&UW+-CUb@t*1ar<+YUhyY}`KS5`y2&MHUT^tg;Rempu^=}rr})|@C;Vp13XT9r`p zelsYs6*12qGimrCt^u)nj_~gg)}1?%A=1l;u#M5~pB>JP(-?bLy6Ba%vHRE@>&e&A z5LS!9<=?0!a9u_uQ49A;52&r0iSDWxCLXHV*Ijx;iLXr)yJ3OQxtl0I{KH$~BxP;0 zsq7;;H+6F2LICR+@aVZmFm?;6zO=C=5KQesw69Pk&pI8C`hpTt8NHnM5Ufy2zlI=+ z+={AQedXJ&HS_%82K}^E;~#1hMMSIp0=Lpz)^OX0Z(lBtiVf?9&T-0j0+AmgQ|Fn74>F* zDM%@oWP-tiJKX&+xCuKlRg^r}@N@gpmN)3(bO z8Tlm2v(H|+Kaqo?k!*z=p@L+Pd_u)tv5U94V;Avr`K5k{h|pdiFPIlYYXpq$^!vUD zCVCk!@FVQTKLF$0nQzDdKm23^!CSGKSEJt)WM74Gjfsn!MiNf#;p+jjyUS-@YXk7V z!)LySzH1g|i4^<`5l&rc&~*ik6!P+^3>e!gX}1V2KKQ;gQorR+{70`Z_ilp2wVG?* zRCB+B#Z|uoX9Nx*T)&V6Akl|%Fk+9H{(67YQVz0=x(X?@gP2p0Nzg@#85wM!Io$O7 z2(+^p@k+xJ7y8E;oDe*SaDRu;ExnfiI)zWGegJwCF?5+fo3wV_khxhpJ9?aKcx-E( zD89T;rXJp<>JUafr`O)Ji>hN>DWS<>JB=#xbR~=aQq)itTRh{V%$MVA(P3i9z6L%p zLVg=|FYvAEMIx{2_aVi88SJ`(Z2QL+T<4jJt2dvj>$pR^-}eBohXtNWrPdiU;2)z= zDw1?%U5u);TWL(530Z)h7DUvdbIJ{SJG-hLR;V$4ZOnXXaSBs#1sH8;ZlC*9j#HEY z7R;N0nwndY|Jlcin4Da!+?OJ)`+)T=$;{&c7?t>0W)-u%#t6$?4iqPv2PI1KBKaq@ zs0KMzvRi9h?P{vC8T9E;kYQ&p&AQ`@svZ<2T1t$2x5mIExNU*5T9vC=6*HXA=~BX~ z_6|TWeykPU!xFH_-`yi4(t(B8u{tB<}+f-&s z3X%6c`7#2IKt=_gp@Q($2(DV$pfDLL{+Pv7^wi?n;v-frzl?v?;>qc(>l^RqUwMN9 zhVw^^$8>Jr$S>*g-ZF-ZN3^$&x~YQt^GCKfoZKFv-K8@Jq%JxC@`i<_naz;eCY7JuC)y8bx*&{3G6Hb;x z9DAQR{(d;N*Zpi^uSW>dA_p8dho3BlDb^R|3i*Z2be0(51NoJU??N2wwyc&2^9~ef zs;ARUPmJwh-Q4<_#WXIdxEc4$!gfJ+o-Zfy5}$WZME>_VAb$##5BF?<{M&JsXj-W- zZ7_}vt7h06;B%)T#0*D+{+W&v#*bpL)kVL>f*=bq$cu*6)Cp%oI0F~t1f!^`5mY$Ysf3fi*;%1 zY1QO}HFE1!YG5<2MC_5~KF^29GXM|H%m@cRv^I%qq)|5;z0}gkNwXN!f%q@G#g05t z;VRIx{jiVBLYp8lt8-T((CM*7*rJ|?`cc5igf%>?-m`X7nsCWH>kTwE9kVb|Rj?Zx zf6<&eXsagYAtdW-MY@>M&Ll$ZEk*j;c#uDNrl;9pXVJlrh8)VbZ8bOxOO*jwXeLFg zVd|jV*5-lJKI{GrNcW25!jBbcOB@z2aP%H!VsdXzWT}GDj*(p|=jzS$O=ntOb3oka znnBNE>VFsH=9q1Jn?E)+4>}Sc#8a>9aZu;#LD_(GLSOR0KCy9kV)t{p<84U&astg} zyg_z{BOB$sQ4Gh8;0j)lA~!Kkx1`9k?+nFk>c)Du2`93ObMH#UOqxpN@sM*lnaMo{ z^ta;(2Q({(Tb*q~l|L_qi;!hwrC4j9x6^ggXVHY5a(gRa1{jj(uhBwM^KdE(dpBjc3k<3a=E=%-t<79q@swo90c>p;f3) zjv9izqa)q~DZX4@?SA*>M;@nZTQdvn{@4vOduy8A`D6cVKrX(!xkq_k^gkND10j%O z>~qtc#tz;7Uy)nsAe%UJI^3%iU1jDXi_&eLY$wB;(}&T^NJlDLJGd7E9_d->URRd* zuU1A6NG|SUeYx?gMV=C<`Zyz8nHDj}MXHtWn-i$L*UV!qGeopcshnG)SQsCK8Zh|$ zpt_*ItYu#AuG3rtY3>I!l1P;VZ;8!UghKkb5{fOA)BKWUbZcm~D60hGe${u6S+#Xw z@-aErt%Ur7N=`d&qIY10Uh>_buB18p zlAX4a{O7E@i5?@E&W?%E>rx z@i@}C+3tgXVHh)va()jcK4%NcCf+dDey88v_u8|g(xcr2t*J+M{n2sPSamiZnQgi{ znV(2+R)iR9oEN<&&-OFND#BpfofH8PxNhtV$(ag+i)A)Mh| zsLfV`dF_vydT#m&NfDtP^H{Rz9l2rSpI;iqe<`1^ZR$8#kPxgew3}mDP+l`2cgqqQ zTQWc)ONp2hV@hn!xFhN*LKwA0QM+1^?%-NPLULJ&2P$AYO+D*iOSy_N*oykTLr* zOZswtGehzdE0HWuQ+!k^O0K_Id@G9*w5NSZXLBU-T)sXeJ=il-df&TJDG$m3*vV?3x@}-5>DTzLkAKwx@P4cSB{GQQ zUt;SBZrYibVDf}KLgWw=hL#Q8_Y>v6BUcn(RhJJCf(*M$@@NCm(-O>)uu0MtQbbJS zq;Dpy70wqrDi>(3VM=ouu7*>C-9Z$jZ3IeN~~=JGB;=&%@jFn7b4^o60o3{ zn}r|if!|hT$d|5&B-$>CMq3_}*F#6i$D9i0M@13{UG4?WC|rcVaZTq0(|~bg#+i|V zx};z-$;_CNC_xhJEYI{R`Y98@sD0-g5}^lOyoz;Nusc%W$P_3#*(ff?KWIX zb*fiI^`u79r&i(10%ASUM`Tb*3d=|tnS_q*NUGY>Dc8jd#Y0(>iZ}~Z<;IKRRlz-j zax6>1(7^a8r-8AKrsfH0mjz{$k4?=cDp@Cm6uAz62OYSR{8bAH*%G>D22+z*0&2=K z4J@btM){ymy&j3|$+j*5|AH$ZFG2gQ96BMy?2(9A8&!mtPQJmP#V9&SAI^&=44lht zB|rs7>h0$oG_@;(-q*|TjEqjLJOia1E2Xf$0;(0!SkuT{6eLVHAQ`k&!x}#EV7k6t zWHa!g(hpWhhL{I0;0N$RvvN;XDY0eh$o6cDu1xFp-K!0ll1)%?Af=uX0;?5e;1fR< zNr-0elclnhpHj6WsFW)u$70bb6K!TZn>6~ONan1+(&arE3*C^p{?=$;{XJgx&He(_ z$wurF zQ;4H6cDgcHos&#=OUEVtg;j6NPWlM8QknznTds#rvEhRMc6UT9$oC$LO8Z6YOXE9% z4t9Kh*3IZr`x;T*LLn(rwVx~MH5b0{U`L_t$J367*_&x_S6~`CeV6h(=9F47`o{$m z2*zV&4Aor)0NND2hZW!)`3)ez&+T04Zx19K#C^OsEO<+z4(g2%h0DZpv{@LOC0CtbXGN`lR@25W^=&z)CK@ zfT!@AtEbb@@l0+Ow16}%14 zj=%`=a364mkPxWX$m*TNI%fDo^oV$^;<7;Pw~!dj%LAd1iOZUetE&)}I*#_#`p6Dq z=De&JKx7aV{7-azvNCnDQ*$0JV`b?D*Xw@W>y3Z=B%oqb!cO2b5X9J?yhxbA#rC(G z`66_WrK=!q+XH~)%_PzjsGYpMwN3qU77@LnDci>n;Z;~h3`i=2{39C5d0xK>3omYb z<+DFM#&^jn6a$C7!4c+-@@}-B-d1g9#|)Y$yWvCR5HfH>up^@nk0<|mgC7}%c^v+kUIjlm_&LV^XKa@Tl7L~} z0FR2luH6BV-%rkfU)jg!;7bVL8QMeriU|~kAeWE-E6X8n0wVlGx--=;_Ul;k&Ue}H z`55i(Eph+gydU5h+~ZXOXg6o%-(h}jz@;P~`}2(Sag}%g=;-J4%l^8Syt}LYS(f#s zf3F1m7VqN;;#tv4C)B!G`a=5|jPv~Ty!^`b7Kif;&-4877;nGEvDRq7n2V0{9P55* zFz2z|;Lx!e_KEzNjPpG6ZoAf7=I=h(^XiB5O!LTqZfigMRhHcCHCubFbGhcQ*xO;W zYdz{0`ZW!=8JNs*y1U(gXTGj;z1GGxEv0d}d9`-4=#N{O=`w1_a^m|Ih_l-5UMElj zLF%43qz+=nDs?exAU9@8+@tJ||EZV&p8K^*dE_ZKzyZ@cGc5PL$B{8CLMIxc5 zPBupG_;zErCUQNP9Qyt~4gz(*H+WbWR@Hsjlj74Ik}k_98mDqrjx~UpV7p7WzVoqb z{JuH%tZC@oV(5*q9(#iM0$uiwOnS$7CQ;_GnUR+}{x}*VSyrDcYXI0aels%dfX%?C z&-5c5e)LG#max5)pEZ3E5hv>$EJZ)U%(^VfkNI1~b4Gbkck0e(2K~@3SIyVz0-H9h zDs#lE_WIMNwG>y^XshvfvoYUIJBs$n#M3e3tT#{4R*YccMcz?JhP<6m=zVqiTGRLU z84Bt?1g|>*jcZjuk5FM_K00&uulrnC`Q<5@Z9C1|%jGGFX64WG>Xbw)lje<|=Z%tm z1I@P=&li?w0__vR-Bkd`<{AlB=p5PCHRxk5PQae=gJAt`v>ECeAkccCV4A#j=f58! zu>Pl0VN(Ho*W#$|bat)$0u|jcyKZ))kw&u==UL%uP0h9n=h?;m(#p02=Xn-4O@w{$ zPj(!;Lm5p+@pSf4lzp=o^tSAc>u-dAOgkcqAAKu6b^}9RYsi}5@*5KO!28Z`ufN!? zTT*>1PjL6uClG|5*`3nMZpa08$tfQ}y@04(K^cfKGu?r8Qh4~~nnp?E57w+mVGtod zb2LL|^1@TEIO0BF{FMNcOSNJ_T`h9Q-xEm&q;*$4a7cgt!C6E8^b#4P~h> z1rFHJ)S2WkCDiDSGnyy=6+$*5~9^QuLix8e}C_ z_3(QjxZk-q#N1rLHDvWrZteOZJY$o@K0g#kVd1m|mvIM46fGLzK9qm(6HF!0cw__f zkETd7HgORO)AX;bZf^qRC+sYzL-k;G9--OW(v}2nfCI z`*c&NK~7ntTa3HTD6xM%^}px^QOgaRXP0jvOpJSz#l6NJI!6z>Ry!6a6;0oU?imDi zG1aFpVR8CzNR@H#cTq8f|MiOGtk>A`!wQa!$^_xU=SOgWOz_cIr$@?gAx$^M^Jg6k zQ@$dU>cr}sH9Eq{7nuCpv{SResq9bl?Rz#ED2)?^06T*tJGvwG38V(RjCM0p!;L-? zgaUk?aBjK)MQ1DE^!QW)t=GHwB{3IPz5=7 zHXk%{0Z#tAacJJUuTn?R%y^{&Dq=F-&Sbr}{pF4m6E~ZIpo6-1o_Sb;taW@lBqbCX zmc?Tn5W|!*UzN;EQkfDi$)5Xxbmt>Hp$7gQ@3&;4WJyYwva*Hx%E#oGA|E{bb zp9roM{}=zRK2-2iXX-QC?>G?tWI(S+U%rig0;==}ty1sRVem8y6UA6{imqzL)%`zt zY0EvglboEoNs5dXHAbq$R#9x$!GtTugK3TABHV;?@o0 z`);0h5gk8$jeZ~h2%vqVhbjQE9%~`CEA`OcP2?8(3KGg(kk3|;ua@@o8y+<^8d>i% z9)IUMT`p3%)B5L&;8ky?D)4%ts5jSl@HOTB&tWaJ7hxHUq5A#Oy%4GM_UmUx>(inQ zCc6>l8?y>#P&0TP>_F_(q5|e#?Hy5X%px{_TM1BLCM@vkSV524ME3K^Ij6j%z>i%8 zGi+OFCbXAd3RdV$xg(>w_)U95qS?Hq@h0fjRB)I&3w`4)sUlT31AyPtMa-=S5l!G7%|IoF>$2B+v2gO2jf?{pui7irP!3ID^^Dq zUZOgJC?{!_Ig$3y3smPBYF@Q92cMLTAn_yS;Q;Ns8H6vY_9Or3=U@BjpXMQ8lZXPF zPqy#>@v_l7=zYXr6t`pKE%r)qF+0U2U3m|RwI+Tqo!V_$;QY7(N`{byVpRaastOf(sz#Xr`cx7*h$x;mY!6G4_YuWAe}(jHpKs(9 z8MyruPvbajFJ&JZ9CCP51{gZ@w#-l9K(H8M!gq3c{iP}%x>FRZwa{k$BU%$lwsH6^@6@@k5dP&{bJXB1gjzu$ig{v zJi#|4hCL3G7nVvnYs1)^!=SZ9B8lFEeueG(WQy=vsR5YngEytllTq%r^FNbOKJ?1b zX^(^0Vr%h`W%_sXXc%z913$+C7yh6{d8xSw_W_8lQpT_>E2QUgxTK#O^MI2w=z4AS zJLAXV-ByXS0FZSfNr435)}`9#Ul0P})Pxu}q+DQ!%j?z*Sb=AB#Gl+{Y)amN`2iT! zkqo zGJb>BS?}k|OXT?3PBzb)a*sWAgXh>1a4%0c3MzE@#t~n}%<$>E=cGn&OZ{lJMT&R6 z#{A>iy9v)q4j~wybq-ions{rMu2TJ(bgd|8Zz&E*!fU+`b6j+Q{TF`Ne|<@9^%XQb|ZDDAFT&lJ5h8=$!}-GWn7 zq)Ok?ds3Fw(_V&elFME-BrR1$*H0JFlctQ&fO1G_U8s(4t{~2fL{N!wk_2K+Q~bg~ zDj?3Fq)BFj49TWg_NFLTW^HSV&7m0=Te}iM8kE}4wa81K(G^-#*Oc5#VE4jiM)6L_ z1K{Vs{&9N`moTkBr6vJ;l!OI-6hRE!C^2qC?GbjZjiitxf02F0GYz|7`iGDCyeczb z$ooMtg6NK={6l%qMsFq-dx#bC>F4Hwtt*XbzgjoGhxKw#ztmqmtX+-EkmH68#x5%E zlS8iM-Bn&?*39Z^Q#N(}=J>vTKXoS=zB@morDLeLPJpz^`=$C$d$EJ+s@_yzUd(`^ z(SvFpZR%`h13VLzXpd4BGAetNa-cRGR92u`N<{sT zHomY;Uu~pXmi7wT0fT`1O*_u$JC=b7V(onCpK9zOpQHoD-&BNoa3x~?&h9Uxjfl|f z=>f9J0UUxdnZ||zT3czfokvEykpYCMfgjdFF2drGre`0mZX$Kpt5F9s7BAoM9$kb_ zer6e6#!jwu{lFth<)d|p0EyT)ZrQACseja2v+`NKQ3qS9ANrz2`8f=Kz~62J){B#by$TembsGM^0T)^)wQJSQy615t`L_uh+Ohbk5@*JX2M-GQ#DK%{xfkgd+vf zH^hIG(_p4hZpT07?0B*NO*#Ev7=Qm)IsN~d@%+(%^2Aw2`pWNKs2d(}Vs{Tp{so;v zNYFooOV%ot7*7h_l%v^%LQ#6Ay~7E8Kar>oB_Al9l_o56wk@bYX}6J-CI`b#Mkf(J zw-DX@;=7B1nzcApgZi3KbbJy1sl{?Loz3yx<@K=B<-0#5f&kL4IrUV4;BB_`PYCLo zb`ac0aU`7A(TKr=pZ0(RpAt|J6YsUxugB}map9LU&L_*?f0$hJXI4aopX^|fng2kD z?8n+5{nd{=U+tFb_{ED6gT0!-@ZO8uz|dJB86qQw8Oy{3!TBOu7T?%8VLUyYaU($9g$TeznK-BY{A1Km@-=M9~wdYckdj>cQO zrv)}k_0wNNKnW-eBA@~^2IW%%DueQ=0DprF7*`mu4m7sj*hcp_x=weUUp(+X@PDvx z5@7!O$G$%uF)|-89$(Z44$NQl2L!+qE0)B0_{=K6YW;R^@ZCgq!~1a6PfO}DH}N>r zz-Ir}3MzHZN{A3COBRv0kYu#aM5*T+>aONltNZXRdY&rC&L92<)CwZsUKtak-n zⅆ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

=c$MIQ?j3C0J?OHGQ3AsW;|SWwQ6V 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 + 4.0.0 + virtuoso + virtjdbc + 4.1 + POM was created from install:install-file + diff --git a/lib/virtuoso/virtjdbc/maven-metadata-local.xml b/lib/virtuoso/virtjdbc/maven-metadata-local.xml new file mode 100644 index 0000000..a0d93d6 --- /dev/null +++ b/lib/virtuoso/virtjdbc/maven-metadata-local.xml @@ -0,0 +1,30 @@ + + virtuoso + virtjdbc + + 4.1 + + 4.1 + 4.0 + + + From bdf16128311672606cf661440862e2f5ec0ef81a Mon Sep 17 00:00:00 2001 From: Marco Date: Sun, 10 Jan 2016 13:07:47 +0100 Subject: [PATCH 4/8] Upgrade some piece of code. --- .gitignore | 4 +- pom.xml | 10 ++- .../virtuoso/jena/driver/VirtUtilities.java | 90 +++++++++++++++++-- .../jena/driver/VirtuosoQueryExecution.java | 52 +---------- .../driver/VirtuosoQueryExecutionFactory.java | 29 +++--- 5 files changed, 111 insertions(+), 74 deletions(-) diff --git a/.gitignore b/.gitignore index ebfd2a7..6bc5d12 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,6 @@ build databases stores *~ -catalog-* \ No newline at end of file +catalog-* +.idea/* +.idea \ No newline at end of file diff --git a/pom.xml b/pom.xml index e9dfb63..ae0b5aa 100644 --- a/pom.xml +++ b/pom.xml @@ -13,31 +13,38 @@ + virtuoso virtjdbc jar 4.1 + true + com.openlink.virtuoso virtjdbc4-1 7.1.0 + true org.apache.jena jena-core 3.0.1 + true org.apache.jena jena-arq 3.0.1 + true org.slf4j slf4j-api 1.7.13 + true @@ -78,6 +85,7 @@ In Project Repo for VirtJDBC file://${project.basedir}/lib + - + maven.aksw.internal University Leipzig, AKSW Maven2 Repository diff --git a/src/main/java/virtuoso/jena/driver/VirtUtilities.java b/src/main/java/virtuoso/jena/driver/VirtUtilities.java index 5e0880f..fa0a838 100644 --- a/src/main/java/virtuoso/jena/driver/VirtUtilities.java +++ b/src/main/java/virtuoso/jena/driver/VirtUtilities.java @@ -9,6 +9,9 @@ import org.apache.jena.graph.impl.LiteralLabel; import org.apache.jena.iri.IRI; import org.apache.jena.iri.IRIFactory; +import org.apache.jena.query.Query; +import org.apache.jena.query.QueryFactory; +import org.apache.jena.query.QuerySolution; import org.apache.jena.rdf.model.Literal; import org.apache.jena.rdf.model.RDFNode; import org.apache.jena.rdf.model.Resource; @@ -35,9 +38,10 @@ public class VirtUtilities { * @param resource any element on API Jena can be converted to a Node. * @return the Jena Graph Node. */ - private static Node createNodeBase(Object resource, String lang, RDFDatatype rdfDatatype, Boolean xml) { + private static Node createNodeBase(Object resource, String lang, RDFDatatype rdfDatatype, Boolean xml){ try { if (resource == null) { + logger.warn("Try to create a Node from a 'NULL' value"); return null; } else if (resource instanceof Node) { return (Node) resource; @@ -106,25 +110,26 @@ private static Node createNodeBase(Object resource, String lang, RDFDatatype rdf } else if (resource instanceof String) { if (isIRI(resource)) { return NodeUtils.asNode(String.valueOf(resource)); - /* } else if (StringUtilities.isURI(resource) || StringUtilities.isURL(resource)) { + /* } else if (isURI(resource) || isURL(resource)) { return NodeFactory.createURI(String.valueOf(resource)); - } else if (StringUtilities.isDouble(resource)) { + } else if (isDouble(resource)) { return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDdouble)); - } else if (StringUtilities.isFloat(resource)) { + } else if (isFloat(resource)) { return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDfloat)); - } else if (StringUtilities.isInt(resource)) { + } else if (isInt(resource)) { return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDinteger)); - } else if (StringUtilities.isNumeric(resource)) { + } else if (isNumeric(resource)) { return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDinteger));*/ } else { return NodeFactory.createLiteral(String.valueOf(resource), toRDFDatatype(XSDDatatype.XSDstring)); } - } else { + }else{ + logger.error("The Node Datatype '" + resource.getClass().getName() + "' is not recognised"); return null; } } - } catch (Exception e) { - logger.error(e.getMessage(), e); + }catch(Exception e){ + logger.error(e.getMessage(),e); return null; } } @@ -346,6 +351,73 @@ public static String toString(Node n) { } } + /** + * Method to substitute all Bindings on the query String. + * @param query the String of the Query. + * @param querySolution the QuerySolution with the variable to check. + * @return the content String of the Query update. + */ + public static String substituteBindings(String query, QuerySolution querySolution) { + if (querySolution == null)return query; + + StringBuilder buf = new StringBuilder(); + String delim = " ,)(;."; + int i = 0; + char ch; + int qlen = query.length(); + while (i < qlen) { + ch = query.charAt(i++); + if (ch == '\\') { + buf.append(ch); + if (i < qlen) + buf.append(query.charAt(i++)); + + } else if (ch == '"' || ch == '\'') { + char end = ch; + buf.append(ch); + while (i < qlen) { + ch = query.charAt(i++); + buf.append(ch); + if (ch == end) + break; + } + } else if (ch == '?') { // Parameter + String varData = null; + int j = i; + while (j < qlen && delim.indexOf(query.charAt(j)) < 0) + j++; + if (j != i) { + String varName = query.substring(i, j); + RDFNode val = querySolution.get(varName); + if (val != null) { + varData = toString(val.asNode()); + i = j; + } + } + if (varData != null) + buf.append(varData); + else + buf.append(ch); + } else { + buf.append(ch); + } + } + return buf.toString(); + } + + // Make query + + public static Query toQuery(String queryStr) { + return QueryFactory.create(queryStr); + } + + public static Query toQuery(Query query) { + return QueryFactory.create(query); + } + + + + } diff --git a/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecution.java b/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecution.java index ce67333..d7cc155 100644 --- a/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecution.java +++ b/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecution.java @@ -29,7 +29,6 @@ import org.apache.jena.query.*; import org.apache.jena.rdf.model.Model; import org.apache.jena.rdf.model.ModelFactory; -import org.apache.jena.rdf.model.RDFNode; import org.apache.jena.rdf.model.Statement; import org.apache.jena.shared.JenaException; import org.apache.jena.sparql.core.Quad; @@ -188,55 +187,6 @@ public boolean isClosed() { return false; } - private String substBindings(String query) { - if (m_arg == null) - return query; - - StringBuilder buf = new StringBuilder(); - String delim = " ,)(;."; - int i = 0; - char ch; - int qlen = query.length(); - while (i < qlen) { - ch = query.charAt(i++); - if (ch == '\\') { - buf.append(ch); - if (i < qlen) - buf.append(query.charAt(i++)); - - } else if (ch == '"' || ch == '\'') { - char end = ch; - buf.append(ch); - while (i < qlen) { - ch = query.charAt(i++); - buf.append(ch); - if (ch == end) - break; - } - } else if (ch == '?') { // Parameter - String varData = null; - int j = i; - while (j < qlen && delim.indexOf(query.charAt(j)) < 0) - j++; - if (j != i) { - String varName = query.substring(i, j); - RDFNode val = m_arg.get(varName); - if (val != null) { - varData = VirtUtilities.toString(val.asNode()); - i = j; - } - } - if (varData != null) - buf.append(varData); - else - buf.append(ch); - } else { - buf.append(ch); - } - } - return buf.toString(); - } - private String getQueryString() { StringBuilder sb = new StringBuilder("sparql\n "); @@ -249,7 +199,7 @@ private String getQueryString() { if (!graph.getReadFromAllGraphs()) sb.append(" define input:default-graph-uri <").append(graph.getGraphName()).append("> \n"); - sb.append(substBindings(virt_query)); + sb.append(VirtUtilities.substituteBindings(virt_query,m_arg)); return sb.toString(); } diff --git a/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecutionFactory.java b/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecutionFactory.java index 3b76269..57458af 100644 --- a/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecutionFactory.java +++ b/src/main/java/virtuoso/jena/driver/VirtuosoQueryExecutionFactory.java @@ -30,6 +30,7 @@ import org.apache.jena.sparql.core.DatasetImpl; import org.apache.jena.sparql.engine.http.QueryEngineHTTP; import org.apache.jena.sparql.util.Context; +import org.apache.jena.util.FileManager; public class VirtuosoQueryExecutionFactory { @@ -65,7 +66,7 @@ static public QueryExecution create(String queryStr, Dataset dataset) { return new VirtuosoQueryExecution(queryStr, (VirtGraph) dataset); } else { - return make(makeQuery(queryStr), dataset); + return make(VirtUtilities.toQuery(queryStr), dataset); } } @@ -75,13 +76,12 @@ static public QueryExecution create(String queryStr, Dataset dataset) { if (fm != null){ qe.setFileManager(fm); } - return qe; }*/ /*static public QueryExecution create(String queryStr, FileManager fm) { checkArg(queryStr); - return create(makeQuery(queryStr), fm); + return create(VirtUtilities.toQuery(queryStr), fm); }*/ // ---------------- Query + Model @@ -105,7 +105,7 @@ static public QueryExecution create(String queryStr, Model model) { return new VirtuosoQueryExecution(queryStr, (VirtGraph) model.getGraph()); } else { - return create(makeQuery(queryStr), model); + return create(VirtUtilities.toQuery(queryStr), model); } } @@ -121,7 +121,7 @@ static public QueryExecution create(Query query, static public QueryExecution create(String queryStr, QuerySolution initialBinding) { checkArg(queryStr); - return create(makeQuery(queryStr), initialBinding); + return create(VirtUtilities.toQuery(queryStr), initialBinding); } // ?? @@ -138,7 +138,7 @@ static public QueryExecution create(Query query, Dataset dataset, static public QueryExecution create(String queryStr, Dataset dataset, QuerySolution initialBinding) { checkArg(queryStr); - return create(makeQuery(queryStr), dataset, initialBinding); + return create(VirtUtilities.toQuery(queryStr), dataset, initialBinding); } // ---------------- Remote query execution @@ -149,6 +149,12 @@ static public QueryExecution sparqlService(String service, Query query) { return makeServiceRequest(service, query); } + static public QueryExecution sparqlService(String service, String query) { + checkNotNull(service, "URL for service is null"); + checkArg(query); + return makeServiceRequest(service, query); + } + static public QueryExecution sparqlService(String service, Query query, String defaultGraph) { checkNotNull(service, "URL for service is null"); @@ -178,12 +184,6 @@ static public QueryExecution sparqlService(String service, Query query, // ---------------- Internal routines - // Make query - - static private Query makeQuery(String queryStr) { - return QueryFactory.create(queryStr); - } - // ---- Make executions static private QueryExecution make(Query query) { @@ -208,6 +208,11 @@ static private QueryEngineHTTP makeServiceRequest(String service, return new QueryEngineHTTP(service, query); } + static private QueryEngineHTTP makeServiceRequest(String service, + String query) { + return new QueryEngineHTTP(service, query); + } + static private void checkNotNull(Object obj, String msg) { if (obj == null) throw new IllegalArgumentException(msg); From 119eeeadc5319dd756c7ecc6c65aca9f630b56d3 Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 12 Jan 2016 10:36:07 +0100 Subject: [PATCH 5/8] Upgrade some piece of code. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 6bc5d12..1a7566c 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,5 @@ stores *~ catalog-* .idea/* +/.idea .idea \ No newline at end of file From 3816b976d7858751622486928cb5d02afd4d70b8 Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 12 Jan 2016 10:42:18 +0100 Subject: [PATCH 6/8] Upgrade some piece of code. --- .gitignore | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 1a7566c..6a95d52 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,5 @@ build databases stores *~ -catalog-* -.idea/* /.idea -.idea \ No newline at end of file +catalog-* \ No newline at end of file From e0450d50c1d02d4fd15cdade6ebb8fb56208625b Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 12 Jan 2016 10:54:16 +0100 Subject: [PATCH 7/8] Upgrade some piece of code. --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6a95d52..33460e1 100644 --- a/.gitignore +++ b/.gitignore @@ -9,5 +9,5 @@ build databases stores *~ -/.idea +/.idea/ catalog-* \ No newline at end of file From 9f5e940a7d21187325572476ed1df6e6eb45ad19 Mon Sep 17 00:00:00 2001 From: Marco Date: Tue, 12 Jan 2016 10:56:48 +0100 Subject: [PATCH 8/8] Upgrade some piece of code. 2. --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 33460e1..6a95d52 100644 --- a/.gitignore +++ b/.gitignore @@ -9,5 +9,5 @@ build databases stores *~ -/.idea/ +/.idea catalog-* \ No newline at end of file