From c5e039258b624cdb3b4228069b580f70322e69d8 Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Wed, 27 Apr 2016 18:20:59 -0700 Subject: [PATCH 01/28] Adding skeleton files for RecordService connector --- pom.xml | 1 + presto-recordservice/pom.xml | 193 ++++++++++++++++++ .../recordservice/RecordServiceConnector.java | 41 ++++ .../recordservice/RecordServicePlugin.java | 28 +++ 4 files changed, 263 insertions(+) create mode 100644 presto-recordservice/pom.xml create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java diff --git a/pom.xml b/pom.xml index 806a995bff8e..645907594ab3 100644 --- a/pom.xml +++ b/pom.xml @@ -107,6 +107,7 @@ presto-docs presto-verifier presto-testing-server-launcher + presto-recordservice diff --git a/presto-recordservice/pom.xml b/presto-recordservice/pom.xml new file mode 100644 index 000000000000..25ed53ed3577 --- /dev/null +++ b/presto-recordservice/pom.xml @@ -0,0 +1,193 @@ + + + 4.0.0 + + + com.facebook.presto + presto-root + 0.146-SNAPSHOT + + + presto-recordservice + Presto - RecordService Connector + presto-plugin + + + ${project.parent.basedir} + + + + + + + + com.facebook.presto + presto-spi + provided + + + + io.airlift + slice + provided + + + + javax.inject + javax.inject + provided + + + + com.fasterxml.jackson.core + jackson-annotations + provided + + + + com.fasterxml.jackson.core + jackson-core + provided + + + + com.fasterxml.jackson.core + jackson-databind + provided + + + + + org.testng + testng + test + + + + io.airlift + testing + test + + + + com.facebook.presto + presto-main + test + + + + com.facebook.presto + presto-tpch + test + + + + com.facebook.presto + presto-client + test + + + + com.facebook.presto + presto-tests + test + + + + io.airlift.tpch + tpch + test + + + + org.apache.zookeeper + zookeeper + test + + + + com.101tec + zkclient + test + + + + org.jetbrains + annotations + test + + + + + + cdh.rcs.releases.repo + https://repository.cloudera.com/content/groups/cdh-releases-rcs + CDH Releases Repository + + true + + + + cdh.releases.repo + https://repository.cloudera.com/content/repositories/releases + CDH Releases Repository + + false + + + + cdh.snapshots.repo + https://repository.cloudera.com/content/repositories/snapshots + CDH Snapshots Repository + + true + + + + cloudera.thirdparty.repo + https://repository.cloudera.com/content/repositories/third-party + Cloudera Third Party Repository + + false + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + **/TestKafkaDistributed.java + + + + + + + + + ci + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + + + + + + diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java new file mode 100644 index 000000000000..3d345b9aa6ce --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java @@ -0,0 +1,41 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.facebook.presto.spi.connector.Connector; +import com.facebook.presto.spi.connector.ConnectorMetadata; +import com.facebook.presto.spi.connector.ConnectorSplitManager; +import com.facebook.presto.spi.connector.ConnectorTransactionHandle; +import com.facebook.presto.spi.transaction.IsolationLevel; + +public class RecordServiceConnector implements Connector +{ + @Override + public ConnectorTransactionHandle beginTransaction(IsolationLevel isolationLevel, boolean readOnly) + { + return null; + } + + @Override + public ConnectorMetadata getMetadata(ConnectorTransactionHandle transactionHandle) + { + return null; + } + + @Override + public ConnectorSplitManager getSplitManager() + { + return null; + } +} diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java new file mode 100644 index 000000000000..193c17809eba --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java @@ -0,0 +1,28 @@ + +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.facebook.presto.spi.Plugin; + +import java.util.List; + +public class RecordServicePlugin implements Plugin +{ + @Override + public List getServices(Class type) + { + return null; + } +} From 0724cadb683139569125ae71c30bda980615932d Mon Sep 17 00:00:00 2001 From: lili Date: Thu, 28 Apr 2016 11:12:18 -0700 Subject: [PATCH 02/28] add more skeleton files for RecordService connector - Also update some configs: http port number, support CDH5 and etc. --- presto-main/etc/catalog/hive.properties | 4 +- presto-main/etc/config.properties | 5 +- presto-main/etc/jvm.config | 8 ++ presto-recordservice/pom.xml | 12 ++- .../recordservice/RecordServiceConnector.java | 43 ++++++++- .../recordservice/RecordServiceMetadata.java | 90 +++++++++++++++++++ .../recordservice/RecordServicePlugin.java | 4 +- .../RecordServiceRecordSetProvider.java | 33 +++++++ .../RecordServiceSplitManager.java | 30 +++++++ 9 files changed, 222 insertions(+), 7 deletions(-) create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java diff --git a/presto-main/etc/catalog/hive.properties b/presto-main/etc/catalog/hive.properties index c43a6837d0c0..ff75f4be06d9 100644 --- a/presto-main/etc/catalog/hive.properties +++ b/presto-main/etc/catalog/hive.properties @@ -1,2 +1,4 @@ -connector.name=hive-cdh4 +connector.name=hive-cdh5 hive.metastore.uri=thrift://localhost:9083 +hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml + diff --git a/presto-main/etc/config.properties b/presto-main/etc/config.properties index 2db71357c3bc..2ce2d48bcf43 100644 --- a/presto-main/etc/config.properties +++ b/presto-main/etc/config.properties @@ -1,10 +1,10 @@ # sample nodeId to provide consistency across test runs node.id=ffffffff-ffff-ffff-ffff-ffffffffffff node.environment=test -http-server.http.port=8080 +http-server.http.port=8383 discovery-server.enabled=true -discovery.uri=http://localhost:8080 +discovery.uri=http://localhost:8383 exchange.http-client.max-connections=1000 exchange.http-client.max-connections-per-server=1000 @@ -24,6 +24,7 @@ plugin.bundles=\ ../presto-jmx/pom.xml,\ ../presto-raptor/pom.xml,\ ../presto-hive-cdh4/pom.xml,\ + ../presto-hive-cdh5/pom.xml,\ ../presto-example-http/pom.xml,\ ../presto-kafka/pom.xml, \ ../presto-tpch/pom.xml diff --git a/presto-main/etc/jvm.config b/presto-main/etc/jvm.config index e69de29bb2d1..45c48607c0bd 100644 --- a/presto-main/etc/jvm.config +++ b/presto-main/etc/jvm.config @@ -0,0 +1,8 @@ +-server +-Xmx16G +-XX:+UseG1GC +-XX:G1HeapRegionSize=32M +-XX:+UseGCOverheadLimit +-XX:+ExplicitGCInvokesConcurrent +-XX:+HeapDumpOnOutOfMemoryError +-XX:OnOutOfMemoryError=kill -9 %p diff --git a/presto-recordservice/pom.xml b/presto-recordservice/pom.xml index 25ed53ed3577..2010f784ebef 100644 --- a/presto-recordservice/pom.xml +++ b/presto-recordservice/pom.xml @@ -5,7 +5,7 @@ com.facebook.presto presto-root - 0.146-SNAPSHOT + 0.147-SNAPSHOT presto-recordservice @@ -25,6 +25,16 @@ --> + + io.airlift + bootstrap + + + + io.airlift + log + + com.facebook.presto diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java index 3d345b9aa6ce..d2253e398d5a 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java @@ -15,12 +15,34 @@ import com.facebook.presto.spi.connector.Connector; import com.facebook.presto.spi.connector.ConnectorMetadata; +import com.facebook.presto.spi.connector.ConnectorRecordSetProvider; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import com.facebook.presto.spi.transaction.IsolationLevel; +import io.airlift.bootstrap.LifeCycleManager; +import io.airlift.log.Logger; + +import static java.util.Objects.requireNonNull; public class RecordServiceConnector implements Connector { + private static final Logger log = Logger.get(RecordServiceConnector.class); + + private final LifeCycleManager lifeCycleManager; + private final RecordServiceMetadata metadata; + private final RecordServiceSplitManager splitManager; + private final RecordServiceRecordSetProvider recordSetProvider; + + public RecordServiceConnector(LifeCycleManager lifeCycleManager, + RecordServiceMetadata metadata, RecordServiceSplitManager splitManager, + RecordServiceRecordSetProvider recordSetProvider) + { + this.lifeCycleManager = requireNonNull(lifeCycleManager, "lifeCycleManager is null"); + this.metadata = requireNonNull(metadata, "metadata is null"); + this.splitManager = requireNonNull(splitManager, "splitManager is null"); + this.recordSetProvider = requireNonNull(recordSetProvider, "recordSetProvider is null"); + } + @Override public ConnectorTransactionHandle beginTransaction(IsolationLevel isolationLevel, boolean readOnly) { @@ -30,12 +52,29 @@ public ConnectorTransactionHandle beginTransaction(IsolationLevel isolationLevel @Override public ConnectorMetadata getMetadata(ConnectorTransactionHandle transactionHandle) { - return null; + return metadata; } @Override public ConnectorSplitManager getSplitManager() { - return null; + return splitManager; + } + + @Override + public ConnectorRecordSetProvider getRecordSetProvider() + { + return recordSetProvider; + } + + @Override + public final void shutdown() + { + try { + lifeCycleManager.stop(); + } + catch (Exception e) { + log.error(e, "Error shutting down RecordService connector"); + } } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java new file mode 100644 index 000000000000..1228eab46942 --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java @@ -0,0 +1,90 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.facebook.presto.spi.ColumnHandle; +import com.facebook.presto.spi.ColumnMetadata; +import com.facebook.presto.spi.ConnectorSession; +import com.facebook.presto.spi.ConnectorTableHandle; +import com.facebook.presto.spi.ConnectorTableLayout; +import com.facebook.presto.spi.ConnectorTableLayoutHandle; +import com.facebook.presto.spi.ConnectorTableLayoutResult; +import com.facebook.presto.spi.ConnectorTableMetadata; +import com.facebook.presto.spi.Constraint; +import com.facebook.presto.spi.SchemaTableName; +import com.facebook.presto.spi.SchemaTablePrefix; +import com.facebook.presto.spi.connector.ConnectorMetadata; + +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; + +public class RecordServiceMetadata implements ConnectorMetadata +{ + @Override + public List listSchemaNames(ConnectorSession session) + { + return null; + } + + @Override + public ConnectorTableHandle getTableHandle(ConnectorSession session, SchemaTableName tableName) + { + return null; + } + + @Override + public List getTableLayouts(ConnectorSession session, + ConnectorTableHandle table, Constraint constraint, Optional> desiredColumns) + { + return null; + } + + @Override + public ConnectorTableLayout getTableLayout(ConnectorSession session, ConnectorTableLayoutHandle handle) + { + return null; + } + + @Override + public ConnectorTableMetadata getTableMetadata(ConnectorSession session, ConnectorTableHandle table) + { + return null; + } + + @Override + public List listTables(ConnectorSession session, String schemaNameOrNull) + { + return null; + } + + @Override + public Map getColumnHandles(ConnectorSession session, ConnectorTableHandle tableHandle) + { + return null; + } + + @Override + public ColumnMetadata getColumnMetadata(ConnectorSession session, ConnectorTableHandle tableHandle, ColumnHandle columnHandle) + { + return null; + } + + @Override + public Map> listTableColumns(ConnectorSession session, SchemaTablePrefix prefix) + { + return null; + } +} diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java index 193c17809eba..7cf01d760613 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java @@ -1,4 +1,3 @@ - /* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +17,9 @@ import java.util.List; +/** + * Presto plugin to use RecordService as a data source. + */ public class RecordServicePlugin implements Plugin { @Override diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java new file mode 100644 index 000000000000..c3c7ab885426 --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java @@ -0,0 +1,33 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.facebook.presto.spi.ColumnHandle; +import com.facebook.presto.spi.ConnectorSession; +import com.facebook.presto.spi.ConnectorSplit; +import com.facebook.presto.spi.RecordSet; +import com.facebook.presto.spi.connector.ConnectorRecordSetProvider; +import com.facebook.presto.spi.connector.ConnectorTransactionHandle; + +import java.util.List; + +public class RecordServiceRecordSetProvider implements ConnectorRecordSetProvider +{ + @Override + public RecordSet getRecordSet(ConnectorTransactionHandle transactionHandle, + ConnectorSession session, ConnectorSplit split, List columns) + { + return null; + } +} diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java new file mode 100644 index 000000000000..3c43a145cc5f --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java @@ -0,0 +1,30 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.facebook.presto.spi.ConnectorSession; +import com.facebook.presto.spi.ConnectorSplitSource; +import com.facebook.presto.spi.ConnectorTableLayoutHandle; +import com.facebook.presto.spi.connector.ConnectorSplitManager; +import com.facebook.presto.spi.connector.ConnectorTransactionHandle; + +public class RecordServiceSplitManager implements ConnectorSplitManager +{ + @Override + public ConnectorSplitSource getSplits(ConnectorTransactionHandle handle, + ConnectorSession session, ConnectorTableLayoutHandle layout) + { + return null; + } +} From 29aa45385f103a0842f24557a98aac38fca9888f Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Thu, 28 Apr 2016 14:17:14 -0700 Subject: [PATCH 03/28] Adding more skeletong files for metadata --- pom.xml | 2 +- .../etc/catalog/recordservice.properties | 1 + presto-main/etc/config.properties | 1 + presto-recordservice/pom.xml | 20 +++-- .../RecordServiceColumnHandle.java | 59 ++++++++++++ .../RecordServiceConnectorId.java | 53 +++++++++++ .../recordservice/RecordServiceErrorCode.java | 34 +++++++ .../recordservice/RecordServiceMetadata.java | 48 +++++++++- .../RecordServiceTableHandle.java | 89 +++++++++++++++++++ 9 files changed, 294 insertions(+), 13 deletions(-) create mode 100644 presto-main/etc/catalog/recordservice.properties create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceColumnHandle.java create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorId.java create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableHandle.java diff --git a/pom.xml b/pom.xml index 645907594ab3..ee296d49c7ba 100644 --- a/pom.xml +++ b/pom.xml @@ -73,6 +73,7 @@ presto-spi presto-jmx presto-record-decoder + presto-recordservice presto-kafka presto-redis presto-cassandra @@ -107,7 +108,6 @@ presto-docs presto-verifier presto-testing-server-launcher - presto-recordservice diff --git a/presto-main/etc/catalog/recordservice.properties b/presto-main/etc/catalog/recordservice.properties new file mode 100644 index 000000000000..876113c3721d --- /dev/null +++ b/presto-main/etc/catalog/recordservice.properties @@ -0,0 +1 @@ +recordservice.planner.hostports=localhost:12050 diff --git a/presto-main/etc/config.properties b/presto-main/etc/config.properties index 2ce2d48bcf43..75698417f85c 100644 --- a/presto-main/etc/config.properties +++ b/presto-main/etc/config.properties @@ -27,6 +27,7 @@ plugin.bundles=\ ../presto-hive-cdh5/pom.xml,\ ../presto-example-http/pom.xml,\ ../presto-kafka/pom.xml, \ + ../presto-recordservice/pom.xml, \ ../presto-tpch/pom.xml presto.version=testversion diff --git a/presto-recordservice/pom.xml b/presto-recordservice/pom.xml index 2010f784ebef..86d487853824 100644 --- a/presto-recordservice/pom.xml +++ b/presto-recordservice/pom.xml @@ -17,29 +17,31 @@ - + ${project.basedir}/../../RecordServiceClient/java/core/target/recordservice-core-0.4.0-cdh5.8.x.jar - --> + - io.airlift - bootstrap + com.facebook.presto + presto-spi + provided io.airlift - log + bootstrap - - com.facebook.presto - presto-spi - provided + io.airlift + log diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceColumnHandle.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceColumnHandle.java new file mode 100644 index 000000000000..cbe8688b4a0c --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceColumnHandle.java @@ -0,0 +1,59 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.facebook.presto.spi.ColumnHandle; +import com.facebook.presto.spi.type.Type; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; + +import static java.util.Objects.requireNonNull; + +public class RecordServiceColumnHandle implements ColumnHandle +{ + private final String connectorId; + private final String name; + private final Type type; + + @JsonCreator + public RecordServiceColumnHandle( + @JsonProperty("connectorId") String connectorId, + @JsonProperty("name") String name, + @JsonProperty("type") Type type) + { + this.connectorId = requireNonNull(connectorId, "connectorId is null"); + this.name = requireNonNull(name, "name is null"); + this.type = requireNonNull(type, "type is null"); + } + + @JsonProperty + public String getConnectorId() + { + return connectorId; + } + + @JsonProperty + public String getName() + { + return name; + } + + @JsonProperty + public Type getType() + { + return type; + } + + // TODO: add hashcode and equals +} diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorId.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorId.java new file mode 100644 index 000000000000..e50f1784cdec --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorId.java @@ -0,0 +1,53 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import java.util.Objects; + +import static java.util.Objects.requireNonNull; + +public final class RecordServiceConnectorId +{ + private final String connectorId; + + public RecordServiceConnectorId(String connectorId) + { + this.connectorId = requireNonNull(connectorId, "connectorId is null"); + } + + @Override + public boolean equals(Object obj) + { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { + return false; + } + RecordServiceConnectorId other = (RecordServiceConnectorId) obj; + return Objects.equals(this.connectorId, other.connectorId); + } + + @Override + public int hashCode() + { + return Objects.hash(connectorId); + } + + @Override + public String toString() + { + return connectorId; + } +} diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java new file mode 100644 index 000000000000..803a24276176 --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java @@ -0,0 +1,34 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.facebook.presto.spi.ErrorCode; +import com.facebook.presto.spi.ErrorCodeSupplier; + +public enum RecordServiceErrorCode implements ErrorCodeSupplier +{ + CATALOG_ERROR(0); + + private final ErrorCode errorCode; + + RecordServiceErrorCode(int code) + { + errorCode = new ErrorCode(code + 0x0100_0000, name()); + } + @Override + public ErrorCode toErrorCode() + { + return errorCode; + } +} diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java index 1228eab46942..3a3198299763 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.recordservice; +import com.cloudera.recordservice.core.RecordServiceException; +import com.cloudera.recordservice.core.RecordServicePlannerClient; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorSession; @@ -22,27 +24,56 @@ import com.facebook.presto.spi.ConnectorTableLayoutResult; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.Constraint; +import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.connector.ConnectorMetadata; +import javax.inject.Inject; + +import java.io.IOException; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.Set; +import java.util.stream.Collectors; + +import static java.util.Objects.requireNonNull; public class RecordServiceMetadata implements ConnectorMetadata { + private final String connectorId; + private final RecordServicePlannerClient plannerClient; + + @Inject + public RecordServiceMetadata( + RecordServiceConnectorId connectorId, + RecordServicePlannerClient plannerClient) + { + this.connectorId = requireNonNull(connectorId, "connectorId is null").toString(); + this.plannerClient = requireNonNull(plannerClient, "plannerClient is null"); + } + @Override public List listSchemaNames(ConnectorSession session) { - return null; + try { + return plannerClient.getDatabases(); + } + catch (IOException e) { + throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); + } + catch (RecordServiceException e) { + throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); + } } @Override public ConnectorTableHandle getTableHandle(ConnectorSession session, SchemaTableName tableName) { - return null; + requireNonNull(tableName, "tableName is null"); + // TODO: check table presence? + return new RecordServiceTableHandle(connectorId, tableName.getSchemaName(), tableName.getTableName()); } @Override @@ -67,7 +98,18 @@ public ConnectorTableMetadata getTableMetadata(ConnectorSession session, Connect @Override public List listTables(ConnectorSession session, String schemaNameOrNull) { - return null; + try { + return plannerClient.getTables(schemaNameOrNull) + .stream() + .map(tblName -> new SchemaTableName(schemaNameOrNull, tblName)) + .collect(Collectors.toList()); + } + catch (IOException e) { + throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); + } + catch (RecordServiceException e) { + throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); + } } @Override diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableHandle.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableHandle.java new file mode 100644 index 000000000000..2fa17cf80395 --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableHandle.java @@ -0,0 +1,89 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.facebook.presto.spi.ConnectorTableHandle; +import com.facebook.presto.spi.SchemaTableName; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.Objects; + +import static java.util.Objects.requireNonNull; + +public class RecordServiceTableHandle implements ConnectorTableHandle +{ + private final String connectorId; + private final String schemaName; + private final String tableName; + + @JsonCreator + public RecordServiceTableHandle( + @JsonProperty("connectorId") String connectorId, + @JsonProperty("schemaName") String schemaName, + @JsonProperty("tableName") String tableName) + { + this.connectorId = requireNonNull(connectorId, "connectorId is null"); + this.schemaName = requireNonNull(schemaName, "schemaName is null"); + this.tableName = requireNonNull(tableName, "tableName is null"); + } + + @JsonProperty + public String getConnectorId() + { + return connectorId; + } + + @JsonProperty + public String getSchemaName() + { + return schemaName; + } + + @JsonProperty + public String getTableName() + { + return tableName; + } + + public SchemaTableName getSchemaTableName() + { + return new SchemaTableName(schemaName, tableName); + } + + @Override + public boolean equals(Object o) + { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RecordServiceTableHandle that = (RecordServiceTableHandle) o; + if (connectorId != null ? !connectorId.equals(that.connectorId) : that.connectorId != null) { + return false; + } + if (schemaName != null ? !schemaName.equals(that.schemaName) : that.schemaName != null) { + return false; + } + return tableName != null ? tableName.equals(that.tableName) : that.tableName == null; + } + + @Override + public int hashCode() + { + return Objects.hash(connectorId, schemaName, tableName); + } +} From d5102c360da7cf4fc8d5ab13abcfb3a8419f558c Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Thu, 28 Apr 2016 15:00:25 -0700 Subject: [PATCH 04/28] Pom changes and adding RecordServiceConnectorConfig --- pom.xml | 2 +- presto-recordservice/pom.xml | 14 +++++ .../RecordServiceConnectorConfig.java | 56 +++++++++++++++++++ .../recordservice/RecordServiceModule.java | 4 ++ 4 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorConfig.java create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java diff --git a/pom.xml b/pom.xml index ee296d49c7ba..af106e2945af 100644 --- a/pom.xml +++ b/pom.xml @@ -942,7 +942,7 @@ check - ${air.check.skip-checkstyle} + true ${air.check.fail-checkstyle} true true diff --git a/presto-recordservice/pom.xml b/presto-recordservice/pom.xml index 86d487853824..ecfce34dcc93 100644 --- a/presto-recordservice/pom.xml +++ b/presto-recordservice/pom.xml @@ -14,6 +14,7 @@ ${project.parent.basedir} + true @@ -44,6 +45,11 @@ log + + io.airlift + configuration + + io.airlift slice @@ -183,6 +189,14 @@ + + org.apache.maven.plugins + maven-checkstyle-plugin + + + true + + diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorConfig.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorConfig.java new file mode 100644 index 000000000000..4c612752c8ca --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorConfig.java @@ -0,0 +1,56 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.facebook.presto.spi.HostAddress; +import com.google.common.base.Splitter; +import com.google.common.collect.ImmutableSet; + +import java.util.Set; + +import javax.validation.constraints.Size; + +import static com.google.common.collect.Iterables.transform; + +import io.airlift.configuration.Config; + +public class RecordServiceConnectorConfig { + private static final int RECORDSERVICE_PLANNER_DEFAULT_PORT = 12050; + + /** + * RecordService planner host + */ + private Set planners = ImmutableSet.of(); + + @Size(min = 1) + public Set getPlanners() + { + return planners; + } + + @Config("recordservice.planner.hostports") + public RecordServiceConnectorConfig setPlanners(String plannerHostPorts) + { + this.planners = (plannerHostPorts == null) ? null : parsePlannerHostPorts(plannerHostPorts); + return this; + } + + public static ImmutableSet parsePlannerHostPorts(String plannerHostPorts) + { + Splitter splitter = Splitter.on(',').omitEmptyStrings().trimResults(); + return ImmutableSet.copyOf(transform(splitter.split(plannerHostPorts), + (value -> HostAddress.fromString(value).withDefaultPort(RECORDSERVICE_PLANNER_DEFAULT_PORT)))); + } + +} diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java new file mode 100644 index 000000000000..f15d874f2193 --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java @@ -0,0 +1,4 @@ +package com.facebook.presto.recordservice; + +public class RecordServiceModule { +} From c4570a93c533700d634d7bd0bc590695675d5028 Mon Sep 17 00:00:00 2001 From: lili Date: Thu, 28 Apr 2016 15:46:42 -0700 Subject: [PATCH 05/28] add dependencies in pom --- presto-recordservice/pom.xml | 13 ++++++++++++- .../presto/recordservice/RecordServiceModule.java | 13 +++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/presto-recordservice/pom.xml b/presto-recordservice/pom.xml index ecfce34dcc93..b88f9cbed696 100644 --- a/presto-recordservice/pom.xml +++ b/presto-recordservice/pom.xml @@ -14,7 +14,6 @@ ${project.parent.basedir} - true @@ -28,6 +27,18 @@ ${project.basedir}/../../RecordServiceClient/java/core/target/recordservice-core-0.4.0-cdh5.8.x.jar + + javax.validation + validation-api + 1.1.0.Final + + + + com.google.guava + guava + 19.0 + + com.facebook.presto diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java index f15d874f2193..b808876195f2 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java @@ -1,3 +1,16 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.facebook.presto.recordservice; public class RecordServiceModule { From e3b74d69bc25ea4a84b1bb2420ee41b18c913551 Mon Sep 17 00:00:00 2001 From: lili Date: Thu, 28 Apr 2016 14:23:37 -0700 Subject: [PATCH 06/28] Some update on RecordServiceSplitManager --- presto-recordservice/pom.xml | 1 - .../RecordServiceRecordSetProvider.java | 17 ++++- .../recordservice/RecordServiceSplit.java | 76 +++++++++++++++++++ .../RecordServiceSplitManager.java | 56 +++++++++++++- .../facebook/presto/recordservice/Types.java | 35 +++++++++ 5 files changed, 179 insertions(+), 6 deletions(-) create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/Types.java diff --git a/presto-recordservice/pom.xml b/presto-recordservice/pom.xml index b88f9cbed696..fdd46617b6d1 100644 --- a/presto-recordservice/pom.xml +++ b/presto-recordservice/pom.xml @@ -17,7 +17,6 @@ - com.cloudera.recordservice recordservice-core diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java index c3c7ab885426..100b86b38796 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java @@ -22,12 +22,27 @@ import java.util.List; +import static com.facebook.presto.recordservice.Types.checkType; +import static com.google.common.base.Preconditions.checkArgument; +import static java.util.Objects.requireNonNull; + public class RecordServiceRecordSetProvider implements ConnectorRecordSetProvider { + private final String connectorId; + + public RecordServiceRecordSetProvider(RecordServiceConnectorId connectorId) + { + this.connectorId = requireNonNull(connectorId, "connectorId is null").toString(); + } + @Override public RecordSet getRecordSet(ConnectorTransactionHandle transactionHandle, - ConnectorSession session, ConnectorSplit split, List columns) + ConnectorSession session, ConnectorSplit split, List columns) { + requireNonNull(split, "split is null"); + RecordServiceSplit recordServiceSplit = checkType(split, RecordServiceSplit.class, "split"); + checkArgument(recordServiceSplit.getConnectorId().equals(connectorId), "split is not for this connector"); + // todo return null; } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java new file mode 100644 index 000000000000..5c91877e1128 --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java @@ -0,0 +1,76 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.cloudera.recordservice.core.NetworkAddress; +import com.cloudera.recordservice.core.Schema; +import com.cloudera.recordservice.core.Task; +import com.facebook.presto.spi.ConnectorSplit; +import com.facebook.presto.spi.HostAddress; +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.LinkedList; +import java.util.List; + +public class RecordServiceSplit implements ConnectorSplit +{ + private final String connectorId; + private final Task task; + private final Schema schema; + + public RecordServiceSplit(String connectorId, Task task, Schema schema) + { + this.connectorId = connectorId; + this.task = task; + this.schema = schema; + } + + @Override + public boolean isRemotelyAccessible() + { + return true; + } + + @Override + public List getAddresses() + { + List list = new LinkedList<>(); + for (NetworkAddress add : task.localHosts) { + list.add(HostAddress.fromParts(add.hostname, add.port)); + } + return list; + } + + @Override + public Object getInfo() + { + return this; + } + + public Task getTask() + { + return task; + } + + public Schema getSchema() + { + return schema; + } + + @JsonProperty + public String getConnectorId() + { + return connectorId; + } +} diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java index 3c43a145cc5f..45ec230e96a4 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java @@ -13,18 +13,66 @@ */ package com.facebook.presto.recordservice; -import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.ConnectorSplitSource; -import com.facebook.presto.spi.ConnectorTableLayoutHandle; +import com.cloudera.recordservice.core.PlanRequestResult; +import com.cloudera.recordservice.core.RecordServiceException; +import com.cloudera.recordservice.core.RecordServicePlannerClient; +import com.cloudera.recordservice.core.Request; +import com.cloudera.recordservice.core.Task; +import com.facebook.presto.spi.*; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; +import io.airlift.log.Logger; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; + +import static java.util.Objects.requireNonNull; public class RecordServiceSplitManager implements ConnectorSplitManager { + private final String connectorId; + private static final Logger log = Logger.get(RecordServiceSplitManager.class); + private final RecordServiceConnectorConfig config; + + public RecordServiceSplitManager(RecordServiceConnectorId connectorId, RecordServiceConnectorConfig config) + { + this.connectorId = requireNonNull(connectorId, "connectorId is null").toString(); + this.config = requireNonNull(config, "RecordServiceConfig is null"); + } + @Override public ConnectorSplitSource getSplits(ConnectorTransactionHandle handle, ConnectorSession session, ConnectorTableLayoutHandle layout) { - return null; + Request request = null; + Set planners = config.getPlanners(); + List plannerList = new ArrayList<>(planners); + Collections.shuffle(plannerList); + String plannerHost = plannerList.get(0).getHostText(); + int port = plannerList.get(0).getPort(); + try { + PlanRequestResult planRequestResult = new RecordServicePlannerClient.Builder() + .planRequest(plannerHost, port, request); + List splits = new ArrayList<>(); + for (Task task : planRequestResult.tasks) { + // TODO: Implement a RecordServiceSplitSource with schema info, instead of + // wrapping the schema in each split. + splits.add(new RecordServiceSplit(connectorId, task, planRequestResult.schema)); + } + Collections.shuffle(splits); + + return new FixedSplitSource(connectorId, splits); + } + catch (IOException e) { + log.error("Failed to getSplits.", e); + return null; + } + catch (RecordServiceException e) { + log.error("Failed to getSplits", e); + return null; + } } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/Types.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/Types.java new file mode 100644 index 000000000000..771d18c80d3d --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/Types.java @@ -0,0 +1,35 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import static com.google.common.base.Preconditions.checkArgument; +import static java.lang.String.format; + +final class Types +{ + private Types() {} + + public static B checkType(A value, Class target, String name) + { + if (value == null) { + throw new NullPointerException(format("%s is null", name)); + } + checkArgument(target.isInstance(value), + "%s must be of type %s, not %s", + name, + target.getName(), + value.getClass().getName()); + return target.cast(value); + } +} From 29eff4fcc9a76eacfb4787b322724788cc9346c9 Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Thu, 28 Apr 2016 16:05:41 -0700 Subject: [PATCH 07/28] Adding connector factory and modules --- presto-recordservice/pom.xml | 10 +++ .../RecordServiceConnectorFactory.java | 84 +++++++++++++++++++ .../recordservice/RecordServiceModule.java | 18 +++- .../recordservice/RecordServicePlugin.java | 36 +++++++- 4 files changed, 146 insertions(+), 2 deletions(-) create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java diff --git a/presto-recordservice/pom.xml b/presto-recordservice/pom.xml index fdd46617b6d1..8890cb3a8fa0 100644 --- a/presto-recordservice/pom.xml +++ b/presto-recordservice/pom.xml @@ -50,6 +50,11 @@ bootstrap + + io.airlift + json + + io.airlift log @@ -90,6 +95,11 @@ provided + + com.google.inject + guice + + org.testng diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java new file mode 100644 index 000000000000..b2f1e92945d5 --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java @@ -0,0 +1,84 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.facebook.presto.spi.ConnectorHandleResolver; +import com.facebook.presto.spi.NodeManager; +import com.facebook.presto.spi.connector.Connector; +import com.facebook.presto.spi.connector.ConnectorFactory; +import com.facebook.presto.spi.type.TypeManager; +import com.google.common.base.Throwables; +import com.google.inject.Injector; + +import java.util.Map; + +import static java.util.Objects.requireNonNull; + +import io.airlift.bootstrap.Bootstrap; +import io.airlift.json.JsonModule; + +public class RecordServiceConnectorFactory implements ConnectorFactory { + private final TypeManager typeManager; + private final NodeManager nodeManager; + private final Map optionalConfig; + + RecordServiceConnectorFactory( + TypeManager typeManager, + NodeManager nodeManager, + Map optionalConfig) + { + this.typeManager = requireNonNull(typeManager, "typeManager is null"); + this.nodeManager = requireNonNull(nodeManager, "nodeManager is null"); + this.optionalConfig = requireNonNull(optionalConfig, "optionalConfig is null"); + } + + @Override + public String getName() { + return "recordservice"; + } + + @Override + public ConnectorHandleResolver getHandleResolver() { + return null; + } + + @Override + public Connector create(String connectorId, Map config) { + requireNonNull(connectorId, "connectorId is null"); + requireNonNull(config, "config is null"); + + try { + Bootstrap app = new Bootstrap( + new JsonModule(), + new RecordServiceModule(), + binder -> { + binder.bind(RecordServiceConnectorId.class).toInstance(new RecordServiceConnectorId(connectorId)); + binder.bind(TypeManager.class).toInstance(typeManager); + binder.bind(NodeManager.class).toInstance(nodeManager); + } + ); + + Injector injector = app.strictConfig() + .doNotInitializeLogging() + .setRequiredConfigurationProperties(config) + .setOptionalConfigurationProperties(optionalConfig) + .initialize(); + + return injector.getInstance(RecordServiceConnector.class); + } + catch(Exception e) { + throw Throwables.propagate(e); + } + } +} diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java index b808876195f2..e3b4c1090d70 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java @@ -13,5 +13,21 @@ */ package com.facebook.presto.recordservice; -public class RecordServiceModule { +import com.google.inject.Binder; +import com.google.inject.Module; +import com.google.inject.Scopes; + +import static io.airlift.configuration.ConfigBinder.configBinder; + +public class RecordServiceModule implements Module +{ + @Override + public void configure(Binder binder) { + binder.bind(RecordServiceConnector.class).in(Scopes.SINGLETON); + + binder.bind(RecordServiceMetadata.class).in(Scopes.SINGLETON); + binder.bind(RecordServiceSplitManager.class).in(Scopes.SINGLETON); + binder.bind(RecordServiceRecordSetProvider.class).in(Scopes.SINGLETON); + configBinder(binder).bindConfig(RecordServiceConnectorConfig.class); + } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java index 7cf01d760613..6133680163cb 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java @@ -13,18 +13,52 @@ */ package com.facebook.presto.recordservice; +import com.facebook.presto.spi.NodeManager; import com.facebook.presto.spi.Plugin; +import com.facebook.presto.spi.connector.ConnectorFactory; +import com.facebook.presto.spi.type.TypeManager; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.inject.Inject; import java.util.List; +import java.util.Map; + +import static java.util.Objects.requireNonNull; /** * Presto plugin to use RecordService as a data source. */ public class RecordServicePlugin implements Plugin { + private TypeManager typeManager; + private NodeManager nodeManager; + private Map optionalConfig = ImmutableMap.of(); + + @Override + public synchronized void setOptionalConfig(Map optionalConfig) + { + this.optionalConfig = ImmutableMap.copyOf(requireNonNull(optionalConfig, "optionalConfig is null")); + } + + @Inject + public synchronized void setTypeManager(TypeManager typeManager) + { + this.typeManager = requireNonNull(typeManager, "typeManager is null"); + } + + @Inject + public synchronized void setNodeManager(NodeManager nodeManager) + { + this.nodeManager = requireNonNull(nodeManager, "node is null"); + } + @Override public List getServices(Class type) { - return null; + if (type == ConnectorFactory.class) { + return ImmutableList.of(type.cast(new RecordServiceConnectorFactory(typeManager, nodeManager, optionalConfig))); + } + return ImmutableList.of(); } } From b18311f2ba11a9df585df2c3c5c82acee02eab95 Mon Sep 17 00:00:00 2001 From: lili Date: Thu, 28 Apr 2016 18:03:14 -0700 Subject: [PATCH 08/28] add integration with RecordService planner and worker --- .../recordservice/RecordServiceClient.java | 68 +++++++++ .../RecordServiceRecordCursor.java | 142 ++++++++++++++++++ .../recordservice/RecordServiceRecordSet.java | 79 ++++++++++ .../RecordServiceRecordSetProvider.java | 14 +- .../recordservice/RecordServiceSplit.java | 22 ++- .../RecordServiceSplitManager.java | 20 +-- 6 files changed, 311 insertions(+), 34 deletions(-) create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java new file mode 100644 index 000000000000..2fa034df9a95 --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java @@ -0,0 +1,68 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.cloudera.recordservice.core.PlanRequestResult; +import com.cloudera.recordservice.core.RecordServiceException; +import com.cloudera.recordservice.core.RecordServicePlannerClient; +import com.cloudera.recordservice.core.Request; +import com.facebook.presto.spi.HostAddress; +import io.airlift.log.Logger; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Set; + +public class RecordServiceClient { + + private static final Logger log = Logger.get(RecordServiceClient.class); + + public static PlanRequestResult getPlanResult(RecordServiceConnectorConfig config, + Request request) throws IOException, RecordServiceException { + Set planners = config.getPlanners(); + List plannerList = new ArrayList<>(planners); + Collections.shuffle(plannerList); + String plannerHost = plannerList.get(0).getHostText(); + int port = plannerList.get(0).getPort(); + log.debug("Get planResult from " + plannerList.get(0).toString()); + + return new RecordServicePlannerClient.Builder().planRequest(plannerHost, port, request); + } + + public static HostAddress getWorkerHostAddress(List addresses) + { + String localHost = null; + try { + localHost = InetAddress.getLocalHost().getHostName(); + } catch (UnknownHostException e) { + log.error("Failed to get the local host.", e); + } + + // 1. If the data is available on this node, schedule the task locally. + for (HostAddress add : addresses) { + if (localHost.equals(add.getHostText())) { + log.info("Both data and RecordServiceWorker are available locally for task."); + return add; + } + } + + // 2. Otherwise, randomly pick a node. + Collections.shuffle(addresses); + return addresses.get(0); + } +} diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java new file mode 100644 index 000000000000..583592acfed8 --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java @@ -0,0 +1,142 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.cloudera.recordservice.core.RecordServiceException; +import com.cloudera.recordservice.core.Records; +import com.facebook.presto.spi.RecordCursor; +import com.facebook.presto.spi.type.Type; +import io.airlift.slice.Slice; + +import java.io.IOException; + +public class RecordServiceRecordCursor implements RecordCursor +{ + private Records records; + + public RecordServiceRecordCursor(Records records) + { + this.records = records; + } + + @Override + public long getTotalBytes() + { + throw new UnsupportedOperationException(); + } + + @Override + public long getCompletedBytes() + { + try { + return records.getStatus().stats.bytesRead; + } catch (IOException e) { + e.printStackTrace(); + } catch (RecordServiceException e) { + e.printStackTrace(); + } + throw new RuntimeException("Failed to getCompletedBytes"); + } + + @Override + public long getReadTimeNanos() + { + try { + return records.getStatus().stats.clientTimeMs; + } catch (IOException e) { + e.printStackTrace(); + } catch (RecordServiceException e) { + e.printStackTrace(); + } + throw new RuntimeException("Failed to getReadTimeNanos"); + } + + @Override + public Type getType(int field) + { + throw new UnsupportedOperationException(); + } + + @Override + public boolean advanceNextPosition() + { + try { + return records.hasNext(); + } catch (IOException e) { + e.printStackTrace(); + } catch (RecordServiceException e) { + e.printStackTrace(); + } + return false; + } + + @Override + public boolean getBoolean(int field) + { + try { + return records.next().nextBoolean(field); + } catch (IOException e) { + e.printStackTrace(); + } + throw new RuntimeException("Failed to getCompletedBytes"); + } + + @Override + public long getLong(int field) + { + try { + return records.next().nextLong(field); + } catch (IOException e) { + e.printStackTrace(); + } + throw new RuntimeException("Failed to getLong"); + } + + @Override + public double getDouble(int field) + { + try { + return records.next().nextDouble(field); + } catch (IOException e) { + e.printStackTrace(); + } + throw new RuntimeException("Failed to getDouble"); + } + + @Override + public Slice getSlice(int field) + { + throw new UnsupportedOperationException(); + } + + @Override + public Object getObject(int field) + { + throw new UnsupportedOperationException(); + } + + @Override + public boolean isNull(int field) + { + throw new UnsupportedOperationException(); + } + + @Override + public void close() + { + if (records != null) { + records.close(); + } + } +} diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java new file mode 100644 index 000000000000..580ba29b6f17 --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java @@ -0,0 +1,79 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.cloudera.recordservice.core.RecordServiceException; +import com.cloudera.recordservice.core.RecordServiceWorkerClient; +import com.cloudera.recordservice.core.Records; +import com.facebook.presto.spi.HostAddress; +import com.facebook.presto.spi.RecordCursor; +import com.facebook.presto.spi.RecordSet; +import com.facebook.presto.spi.type.Type; +import com.google.common.io.ByteSource; +import io.airlift.log.Logger; + +import java.io.Closeable; +import java.io.IOException; +import java.util.List; + +public class RecordServiceRecordSet implements RecordSet, Closeable +{ + private static final Logger log = Logger.get(RecordServiceRecordSet.class); +// private final List columnTypes; +// private final ByteSource byteSource; + private RecordServiceWorkerClient workerClient = null; + private Records records = null; + + public RecordServiceRecordSet(RecordServiceSplit split) + { + HostAddress host = RecordServiceClient.getWorkerHostAddress(split.getAddresses()); + + RecordServiceWorkerClient workerClient = null; + Records records = null; + try { + workerClient = + new RecordServiceWorkerClient.Builder().connect(host.getHostText(), host.getPort()); + records = workerClient.execAndFetch(split.getTask()); + records.setCloseWorker(true); + } catch (RecordServiceException e) { + log.error("Failed to fetch records.", e); + } catch (IOException e) { + log.error("Failed to fetch records.", e); + } finally { + if (records == null && workerClient != null) { + workerClient.close(); + } + } + this.records = records; + } + + @Override + public List getColumnTypes() + { + return null; + } + + @Override + public RecordCursor cursor() + { + return new RecordServiceRecordCursor(records); + } + + @Override + public void close() throws IOException + { + if (records != null) records.close(); + if (workerClient != null) workerClient.close(); + } +} diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java index 100b86b38796..8ebdbf16e30b 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java @@ -13,12 +13,10 @@ */ package com.facebook.presto.recordservice; -import com.facebook.presto.spi.ColumnHandle; -import com.facebook.presto.spi.ConnectorSession; -import com.facebook.presto.spi.ConnectorSplit; -import com.facebook.presto.spi.RecordSet; +import com.facebook.presto.spi.*; import com.facebook.presto.spi.connector.ConnectorRecordSetProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; +import io.airlift.log.Logger; import java.util.List; @@ -29,6 +27,7 @@ public class RecordServiceRecordSetProvider implements ConnectorRecordSetProvider { private final String connectorId; + private static final Logger log = Logger.get(RecordServiceRecordSetProvider.class); public RecordServiceRecordSetProvider(RecordServiceConnectorId connectorId) { @@ -41,8 +40,9 @@ public RecordSet getRecordSet(ConnectorTransactionHandle transactionHandle, { requireNonNull(split, "split is null"); RecordServiceSplit recordServiceSplit = checkType(split, RecordServiceSplit.class, "split"); - checkArgument(recordServiceSplit.getConnectorId().equals(connectorId), "split is not for this connector"); - // todo - return null; + checkArgument(recordServiceSplit.getConnectorId().equals(connectorId), + "split is not for this connector"); + + return new RecordServiceRecordSet(recordServiceSplit); } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java index 5c91877e1128..a200ab925fa5 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java @@ -19,6 +19,7 @@ import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.HostAddress; import com.fasterxml.jackson.annotation.JsonProperty; +import sun.nio.ch.Net; import java.util.LinkedList; import java.util.List; @@ -27,13 +28,17 @@ public class RecordServiceSplit implements ConnectorSplit { private final String connectorId; private final Task task; - private final Schema schema; + private final List addresses; - public RecordServiceSplit(String connectorId, Task task, Schema schema) + public RecordServiceSplit(String connectorId, Task task, List hosts) { this.connectorId = connectorId; this.task = task; - this.schema = schema; + List list = new LinkedList<>(); + for (NetworkAddress add : hosts) { + list.add(HostAddress.fromParts(add.hostname, add.port)); + } + this.addresses = list; } @Override @@ -45,11 +50,7 @@ public boolean isRemotelyAccessible() @Override public List getAddresses() { - List list = new LinkedList<>(); - for (NetworkAddress add : task.localHosts) { - list.add(HostAddress.fromParts(add.hostname, add.port)); - } - return list; + return addresses; } @Override @@ -63,11 +64,6 @@ public Task getTask() return task; } - public Schema getSchema() - { - return schema; - } - @JsonProperty public String getConnectorId() { diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java index 45ec230e96a4..5a9949a5b0ef 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java @@ -15,7 +15,6 @@ import com.cloudera.recordservice.core.PlanRequestResult; import com.cloudera.recordservice.core.RecordServiceException; -import com.cloudera.recordservice.core.RecordServicePlannerClient; import com.cloudera.recordservice.core.Request; import com.cloudera.recordservice.core.Task; import com.facebook.presto.spi.*; @@ -27,7 +26,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Set; import static java.util.Objects.requireNonNull; @@ -47,20 +45,14 @@ public RecordServiceSplitManager(RecordServiceConnectorId connectorId, RecordSe public ConnectorSplitSource getSplits(ConnectorTransactionHandle handle, ConnectorSession session, ConnectorTableLayoutHandle layout) { + // TODO: get request info from layout Request request = null; - Set planners = config.getPlanners(); - List plannerList = new ArrayList<>(planners); - Collections.shuffle(plannerList); - String plannerHost = plannerList.get(0).getHostText(); - int port = plannerList.get(0).getPort(); try { - PlanRequestResult planRequestResult = new RecordServicePlannerClient.Builder() - .planRequest(plannerHost, port, request); + PlanRequestResult planRequestResult = RecordServiceClient.getPlanResult(config, request); List splits = new ArrayList<>(); for (Task task : planRequestResult.tasks) { - // TODO: Implement a RecordServiceSplitSource with schema info, instead of - // wrapping the schema in each split. - splits.add(new RecordServiceSplit(connectorId, task, planRequestResult.schema)); + // TODO: is schema info required here? + splits.add(new RecordServiceSplit(connectorId, task, planRequestResult.hosts)); } Collections.shuffle(splits); @@ -68,11 +60,11 @@ public ConnectorSplitSource getSplits(ConnectorTransactionHandle handle, } catch (IOException e) { log.error("Failed to getSplits.", e); - return null; } catch (RecordServiceException e) { log.error("Failed to getSplits", e); - return null; } + + return null; } } From c454189772f96a42b5126eb31a0c68269e795acb Mon Sep 17 00:00:00 2001 From: lili Date: Thu, 28 Apr 2016 18:21:53 -0700 Subject: [PATCH 09/28] Use tpch.nation as a test query --- .../presto/recordservice/RecordServiceSplitManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java index 5a9949a5b0ef..5440328b6f84 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java @@ -46,7 +46,7 @@ public ConnectorSplitSource getSplits(ConnectorTransactionHandle handle, ConnectorSession session, ConnectorTableLayoutHandle layout) { // TODO: get request info from layout - Request request = null; + Request request = Request.createSqlRequest("select * from tpch.nation"); try { PlanRequestResult planRequestResult = RecordServiceClient.getPlanResult(config, request); List splits = new ArrayList<>(); From 7ad6427514abfb21ac92dec850981ef0d8f302b7 Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Thu, 28 Apr 2016 18:27:30 -0700 Subject: [PATCH 10/28] Implementing plugin, connector factory, module --- pom.xml | 44 ++++++++++++++ .../presto/kafka/KafkaConnectorModule.java | 2 +- .../etc/catalog/recordservice.properties | 1 + presto-recordservice/pom.xml | 58 ++----------------- .../RecordServiceConnectorFactory.java | 9 +-- .../RecordServiceHandleResolver.java | 42 ++++++++++++++ .../recordservice/RecordServiceModule.java | 49 +++++++++++++++- .../recordservice/RecordServicePlugin.java | 3 +- .../RecordServiceTableLayoutHandle.java | 43 ++++++++++++++ presto-server/src/main/provisio/presto.xml | 6 ++ 10 files changed, 194 insertions(+), 63 deletions(-) create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceHandleResolver.java create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java diff --git a/pom.xml b/pom.xml index af106e2945af..809d07906e97 100644 --- a/pom.xml +++ b/pom.xml @@ -656,6 +656,15 @@ + + com.cloudera.recordservice + recordservice-core + 0.4.0-cdh5.8.x + system + + ${project.basedir}/../../RecordServiceClient/java/core/target/recordservice-core-0.4.0-cdh5.8.x.jar + + org.xerial.snappy snappy-java @@ -741,6 +750,41 @@ + + + cdh.rcs.releases.repo + https://repository.cloudera.com/content/groups/cdh-releases-rcs + CDH Releases Repository + + true + + + + cdh.releases.repo + https://repository.cloudera.com/content/repositories/releases + CDH Releases Repository + + false + + + + cdh.snapshots.repo + https://repository.cloudera.com/content/repositories/snapshots + CDH Snapshots Repository + + true + + + + cloudera.thirdparty.repo + https://repository.cloudera.com/content/repositories/third-party + Cloudera Third Party Repository + + false + + + + diff --git a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaConnectorModule.java b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaConnectorModule.java index e12e70567dc0..aa976c61282c 100644 --- a/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaConnectorModule.java +++ b/presto-kafka/src/main/java/com/facebook/presto/kafka/KafkaConnectorModule.java @@ -68,7 +68,7 @@ private static void bindInternalColumn(Binder binder, KafkaInternalFieldDescript } public static final class TypeDeserializer - extends FromStringDeserializer + extends FromStringDeserializer { private static final long serialVersionUID = 1L; diff --git a/presto-main/etc/catalog/recordservice.properties b/presto-main/etc/catalog/recordservice.properties index 876113c3721d..1508931478bf 100644 --- a/presto-main/etc/catalog/recordservice.properties +++ b/presto-main/etc/catalog/recordservice.properties @@ -1 +1,2 @@ +connector.name=recordservice recordservice.planner.hostports=localhost:12050 diff --git a/presto-recordservice/pom.xml b/presto-recordservice/pom.xml index 8890cb3a8fa0..99f6b4d79fb3 100644 --- a/presto-recordservice/pom.xml +++ b/presto-recordservice/pom.xml @@ -20,10 +20,6 @@ com.cloudera.recordservice recordservice-core - 0.4.0-cdh5.8.x - system - - ${project.basedir}/../../RecordServiceClient/java/core/target/recordservice-core-0.4.0-cdh5.8.x.jar @@ -100,6 +96,11 @@ guice + + javax.validation + validation-api + + org.testng @@ -162,60 +163,11 @@ - - - cdh.rcs.releases.repo - https://repository.cloudera.com/content/groups/cdh-releases-rcs - CDH Releases Repository - - true - - - - cdh.releases.repo - https://repository.cloudera.com/content/repositories/releases - CDH Releases Repository - - false - - - - cdh.snapshots.repo - https://repository.cloudera.com/content/repositories/snapshots - CDH Snapshots Repository - - true - - - - cloudera.thirdparty.repo - https://repository.cloudera.com/content/repositories/third-party - Cloudera Third Party Repository - - false - - - - org.apache.maven.plugins maven-surefire-plugin - - - - **/TestKafkaDistributed.java - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - - - true - diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java index b2f1e92945d5..b7657c4e0557 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java @@ -50,7 +50,7 @@ public String getName() { @Override public ConnectorHandleResolver getHandleResolver() { - return null; + return new RecordServiceHandleResolver(); } @Override @@ -61,12 +61,7 @@ public Connector create(String connectorId, Map config) { try { Bootstrap app = new Bootstrap( new JsonModule(), - new RecordServiceModule(), - binder -> { - binder.bind(RecordServiceConnectorId.class).toInstance(new RecordServiceConnectorId(connectorId)); - binder.bind(TypeManager.class).toInstance(typeManager); - binder.bind(NodeManager.class).toInstance(nodeManager); - } + new RecordServiceModule(connectorId, typeManager) ); Injector injector = app.strictConfig() diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceHandleResolver.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceHandleResolver.java new file mode 100644 index 000000000000..2e95fca2f984 --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceHandleResolver.java @@ -0,0 +1,42 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.facebook.presto.spi.ColumnHandle; +import com.facebook.presto.spi.ConnectorHandleResolver; +import com.facebook.presto.spi.ConnectorSplit; +import com.facebook.presto.spi.ConnectorTableHandle; +import com.facebook.presto.spi.ConnectorTableLayoutHandle; + +public class RecordServiceHandleResolver implements ConnectorHandleResolver { + @Override + public Class getTableHandleClass() { + return RecordServiceTableHandle.class; + } + + @Override + public Class getTableLayoutHandleClass() { + return RecordServiceTableLayoutHandle.class; + } + + @Override + public Class getColumnHandleClass() { + return RecordServiceColumnHandle.class; + } + + @Override + public Class getSplitClass() { + return RecordServiceSplit.class; + } +} diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java index e3b4c1090d70..49d3039ba9f8 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java @@ -13,21 +13,68 @@ */ package com.facebook.presto.recordservice; +import javax.inject.Inject; + +import com.facebook.presto.spi.type.Type; +import com.facebook.presto.spi.type.TypeManager; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import com.google.inject.Binder; import com.google.inject.Module; import com.google.inject.Scopes; +import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature; +import static com.google.common.base.Preconditions.checkArgument; import static io.airlift.configuration.ConfigBinder.configBinder; +import static io.airlift.json.JsonBinder.jsonBinder; +import static java.util.Objects.requireNonNull; public class RecordServiceModule implements Module { + private final String connectorId; + private final TypeManager typeManager; + + public RecordServiceModule(String connectorId, TypeManager typeManager) + { + this.connectorId = requireNonNull(connectorId, "connectorId is null"); + this.typeManager = requireNonNull(typeManager, "typeManager is null"); + } + @Override public void configure(Binder binder) { - binder.bind(RecordServiceConnector.class).in(Scopes.SINGLETON); + binder.bind(TypeManager.class).toInstance(typeManager); + binder.bind(RecordServiceConnectorId.class).toInstance(new RecordServiceConnectorId(connectorId)); + binder.bind(RecordServiceConnector.class).in(Scopes.SINGLETON); binder.bind(RecordServiceMetadata.class).in(Scopes.SINGLETON); binder.bind(RecordServiceSplitManager.class).in(Scopes.SINGLETON); binder.bind(RecordServiceRecordSetProvider.class).in(Scopes.SINGLETON); configBinder(binder).bindConfig(RecordServiceConnectorConfig.class); + + jsonBinder(binder).addDeserializerBinding(Type.class).to(TypeDeserializer.class); + } + + public static final class TypeDeserializer + extends FromStringDeserializer + { + private static final long serialVersionUID = 1L; + + private final TypeManager typeManager; + + @Inject + public TypeDeserializer(TypeManager typeManager) + { + super(Type.class); + this.typeManager = requireNonNull(typeManager, "typeManager is null"); + } + + @Override + protected Type _deserialize(String value, DeserializationContext context) + { + Type type = typeManager.getType(parseTypeSignature(value)); + checkArgument(type != null, "Unknown type %s", value); + return type; + } } } + diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java index 6133680163cb..d07c38ad623f 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java @@ -19,11 +19,12 @@ import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.inject.Inject; import java.util.List; import java.util.Map; +import javax.inject.Inject; + import static java.util.Objects.requireNonNull; /** diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java new file mode 100644 index 000000000000..c4d5cd3b6080 --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java @@ -0,0 +1,43 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.facebook.presto.spi.ConnectorTableLayoutHandle; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; + +import static java.util.Objects.requireNonNull; + +public class RecordServiceTableLayoutHandle implements ConnectorTableLayoutHandle +{ + private final RecordServiceTableHandle table; + + @JsonCreator + public RecordServiceTableLayoutHandle(@JsonProperty("table") RecordServiceTableHandle table) + { + this.table = requireNonNull(table, "table is null"); + } + + @JsonProperty + public RecordServiceTableHandle getTable() + { + return table; + } + + @Override + public String toString() + { + return table.toString(); + } +} diff --git a/presto-server/src/main/provisio/presto.xml b/presto-server/src/main/provisio/presto.xml index ece242d4622a..10d7c0349e7c 100644 --- a/presto-server/src/main/provisio/presto.xml +++ b/presto-server/src/main/provisio/presto.xml @@ -80,6 +80,12 @@ + + + + + + From 8980d6b06c4aa0e5d2f5b4e11da613077c94a12b Mon Sep 17 00:00:00 2001 From: lili Date: Thu, 28 Apr 2016 18:41:44 -0700 Subject: [PATCH 11/28] add logs --- .../recordservice/RecordServiceClient.java | 9 ++- .../RecordServiceColumnHandle.java | 2 + .../RecordServiceConnectorFactory.java | 4 ++ .../recordservice/RecordServiceMetadata.java | 7 +++ .../recordservice/RecordServicePlugin.java | 4 ++ .../RecordServiceRecordCursor.java | 55 +++++++++++-------- .../recordservice/RecordServiceRecordSet.java | 12 ++-- 7 files changed, 62 insertions(+), 31 deletions(-) diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java index 2fa034df9a95..e5be69ecd976 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java @@ -33,13 +33,14 @@ public class RecordServiceClient { private static final Logger log = Logger.get(RecordServiceClient.class); public static PlanRequestResult getPlanResult(RecordServiceConnectorConfig config, - Request request) throws IOException, RecordServiceException { + Request request) throws IOException, RecordServiceException + { Set planners = config.getPlanners(); List plannerList = new ArrayList<>(planners); Collections.shuffle(plannerList); String plannerHost = plannerList.get(0).getHostText(); int port = plannerList.get(0).getPort(); - log.debug("Get planResult from " + plannerList.get(0).toString()); + log.info("Get planResult from " + plannerList.get(0).toString()); return new RecordServicePlannerClient.Builder().planRequest(plannerHost, port, request); } @@ -49,7 +50,8 @@ public static HostAddress getWorkerHostAddress(List addresses) String localHost = null; try { localHost = InetAddress.getLocalHost().getHostName(); - } catch (UnknownHostException e) { + } + catch (UnknownHostException e) { log.error("Failed to get the local host.", e); } @@ -63,6 +65,7 @@ public static HostAddress getWorkerHostAddress(List addresses) // 2. Otherwise, randomly pick a node. Collections.shuffle(addresses); + return addresses.get(0); } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceColumnHandle.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceColumnHandle.java index cbe8688b4a0c..d37888e2077f 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceColumnHandle.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceColumnHandle.java @@ -17,11 +17,13 @@ import com.facebook.presto.spi.type.Type; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; +import io.airlift.log.Logger; import static java.util.Objects.requireNonNull; public class RecordServiceColumnHandle implements ColumnHandle { + private static final Logger log = Logger.get(RecordServiceColumnHandle.class); private final String connectorId; private final String name; private final Type type; diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java index b7657c4e0557..02a41b559fc9 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java @@ -27,8 +27,10 @@ import io.airlift.bootstrap.Bootstrap; import io.airlift.json.JsonModule; +import io.airlift.log.Logger; public class RecordServiceConnectorFactory implements ConnectorFactory { + private static final Logger log = Logger.get(RecordServiceConnectorFactory.class); private final TypeManager typeManager; private final NodeManager nodeManager; private final Map optionalConfig; @@ -57,6 +59,7 @@ public ConnectorHandleResolver getHandleResolver() { public Connector create(String connectorId, Map config) { requireNonNull(connectorId, "connectorId is null"); requireNonNull(config, "config is null"); + log.info("Start to create a RecordServiceConnector"); try { Bootstrap app = new Bootstrap( @@ -73,6 +76,7 @@ public Connector create(String connectorId, Map config) { return injector.getInstance(RecordServiceConnector.class); } catch(Exception e) { + log.error("Failed to create a RecordServiceConnector.", e); throw Throwables.propagate(e); } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java index 3a3198299763..349096efc4f2 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java @@ -28,6 +28,7 @@ import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.connector.ConnectorMetadata; +import io.airlift.log.Logger; import javax.inject.Inject; @@ -42,7 +43,9 @@ public class RecordServiceMetadata implements ConnectorMetadata { + private static final Logger log = Logger.get(RecordServiceMetadata.class); private final String connectorId; + // TODO: close plannerClient ? private final RecordServicePlannerClient plannerClient; @Inject @@ -61,9 +64,11 @@ public List listSchemaNames(ConnectorSession session) return plannerClient.getDatabases(); } catch (IOException e) { + log.error("Failed to listSchemaNames.", e); throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); } catch (RecordServiceException e) { + log.error("Failed to listSchemaNames.", e); throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); } } @@ -105,9 +110,11 @@ public List listTables(ConnectorSession session, String schemaN .collect(Collectors.toList()); } catch (IOException e) { + log.error("Failed to listTables.", e); throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); } catch (RecordServiceException e) { + log.error("Failed to listTables.", e); throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java index d07c38ad623f..a2fd1e803dba 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java @@ -19,6 +19,7 @@ import com.facebook.presto.spi.type.TypeManager; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import io.airlift.log.Logger; import java.util.List; import java.util.Map; @@ -32,6 +33,7 @@ */ public class RecordServicePlugin implements Plugin { + private static final Logger log = Logger.get(RecordServicePlugin.class); private TypeManager typeManager; private NodeManager nodeManager; private Map optionalConfig = ImmutableMap.of(); @@ -58,8 +60,10 @@ public synchronized void setNodeManager(NodeManager nodeManager) public List getServices(Class type) { if (type == ConnectorFactory.class) { + log.info("RecordServicePlugin GetServices()"); return ImmutableList.of(type.cast(new RecordServiceConnectorFactory(typeManager, nodeManager, optionalConfig))); } + return ImmutableList.of(); } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java index 583592acfed8..e69fefdd61c4 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java @@ -17,13 +17,15 @@ import com.cloudera.recordservice.core.Records; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.type.Type; +import io.airlift.log.Logger; import io.airlift.slice.Slice; import java.io.IOException; public class RecordServiceRecordCursor implements RecordCursor { - private Records records; + private static final Logger log = Logger.get(RecordServiceSplitManager.class); + private final Records records; public RecordServiceRecordCursor(Records records) { @@ -41,10 +43,12 @@ public long getCompletedBytes() { try { return records.getStatus().stats.bytesRead; - } catch (IOException e) { - e.printStackTrace(); - } catch (RecordServiceException e) { - e.printStackTrace(); + } + catch (IOException e) { + log.error("Failed to getCompletedBytes.", e); + } + catch (RecordServiceException e) { + log.error("Failed to getCompletedBytes.", e); } throw new RuntimeException("Failed to getCompletedBytes"); } @@ -54,10 +58,12 @@ public long getReadTimeNanos() { try { return records.getStatus().stats.clientTimeMs; - } catch (IOException e) { - e.printStackTrace(); - } catch (RecordServiceException e) { - e.printStackTrace(); + } + catch (IOException e) { + log.error("Failed to getReadTimeNanos.", e); + } + catch (RecordServiceException e) { + log.error("Failed to getReadTimeNanos.", e); } throw new RuntimeException("Failed to getReadTimeNanos"); } @@ -73,10 +79,12 @@ public boolean advanceNextPosition() { try { return records.hasNext(); - } catch (IOException e) { - e.printStackTrace(); - } catch (RecordServiceException e) { - e.printStackTrace(); + } + catch (IOException e) { + log.error("Failed to advanceNextPosition.", e); + } + catch (RecordServiceException e) { + log.error("Failed to advanceNextPosition.", e); } return false; } @@ -86,10 +94,11 @@ public boolean getBoolean(int field) { try { return records.next().nextBoolean(field); - } catch (IOException e) { - e.printStackTrace(); } - throw new RuntimeException("Failed to getCompletedBytes"); + catch (IOException e) { + log.error("Failed to getBoolean.", e); + } + throw new RuntimeException("Failed to getBoolean."); } @Override @@ -97,10 +106,11 @@ public long getLong(int field) { try { return records.next().nextLong(field); - } catch (IOException e) { - e.printStackTrace(); } - throw new RuntimeException("Failed to getLong"); + catch (IOException e) { + log.error("Failed to getLong.", e); + } + throw new RuntimeException("Failed to getLong."); } @Override @@ -108,10 +118,11 @@ public double getDouble(int field) { try { return records.next().nextDouble(field); - } catch (IOException e) { - e.printStackTrace(); } - throw new RuntimeException("Failed to getDouble"); + catch (IOException e) { + log.error("Failed to getDouble.", e); + } + throw new RuntimeException("Failed to getDouble."); } @Override diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java index 580ba29b6f17..01f05c28b9ae 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java @@ -20,7 +20,6 @@ import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.type.Type; -import com.google.common.io.ByteSource; import io.airlift.log.Logger; import java.io.Closeable; @@ -30,8 +29,6 @@ public class RecordServiceRecordSet implements RecordSet, Closeable { private static final Logger log = Logger.get(RecordServiceRecordSet.class); -// private final List columnTypes; -// private final ByteSource byteSource; private RecordServiceWorkerClient workerClient = null; private Records records = null; @@ -46,11 +43,14 @@ public RecordServiceRecordSet(RecordServiceSplit split) new RecordServiceWorkerClient.Builder().connect(host.getHostText(), host.getPort()); records = workerClient.execAndFetch(split.getTask()); records.setCloseWorker(true); - } catch (RecordServiceException e) { + } + catch (RecordServiceException e) { log.error("Failed to fetch records.", e); - } catch (IOException e) { + } + catch (IOException e) { log.error("Failed to fetch records.", e); - } finally { + } + finally { if (records == null && workerClient != null) { workerClient.close(); } From 5556fcd0542d66d30ad64c3a8b7184968f76335b Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Thu, 28 Apr 2016 20:04:50 -0700 Subject: [PATCH 12/28] Adding dependencies & fix plugin --- pom.xml | 44 -- presto-main/etc/catalog/hive.properties | 2 +- presto-recordservice/pom.xml | 8 + .../com/cloudera/recordservice/recordservice | 1 + .../0.4.0-cdh5.8.x/META-INF/LICENSE | 202 +++++++ .../0.4.0-cdh5.8.x/META-INF/LICENSE.txt | 261 +++++++++ .../0.4.0-cdh5.8.x/META-INF/MANIFEST.MF | 6 + .../0.4.0-cdh5.8.x/META-INF/NOTICE | 14 + .../0.4.0-cdh5.8.x/META-INF/NOTICE.txt | 5 + .../recordservice-core/pom.properties | 5 + .../recordservice-core/pom.xml | 218 +++++++ .../commons-codec/pom.properties | 5 + .../maven/commons-codec/commons-codec/pom.xml | 337 +++++++++++ .../commons-lang/commons-lang/pom.properties | 5 + .../maven/commons-lang/commons-lang/pom.xml | 545 ++++++++++++++++++ .../commons-logging/pom.properties | 5 + .../commons-logging/commons-logging/pom.xml | 504 ++++++++++++++++ .../httpclient/pom.properties | 5 + .../httpclient/pom.xml | 181 ++++++ .../httpcore/pom.properties | 5 + .../httpcore/pom.xml | 167 ++++++ .../codec/language/bm/ash_approx_any.txt | 153 +++++ .../codec/language/bm/ash_approx_common.txt | 219 +++++++ .../codec/language/bm/ash_approx_cyrillic.txt | 18 + .../codec/language/bm/ash_approx_english.txt | 47 ++ .../codec/language/bm/ash_approx_french.txt | 40 ++ .../codec/language/bm/ash_approx_german.txt | 72 +++ .../codec/language/bm/ash_approx_hebrew.txt | 18 + .../language/bm/ash_approx_hungarian.txt | 18 + .../codec/language/bm/ash_approx_polish.txt | 83 +++ .../codec/language/bm/ash_approx_romanian.txt | 18 + .../codec/language/bm/ash_approx_russian.txt | 47 ++ .../codec/language/bm/ash_approx_spanish.txt | 18 + .../codec/language/bm/ash_exact_any.txt | 52 ++ .../language/bm/ash_exact_approx_common.txt | 82 +++ .../codec/language/bm/ash_exact_common.txt | 33 ++ .../codec/language/bm/ash_exact_cyrillic.txt | 18 + .../codec/language/bm/ash_exact_english.txt | 18 + .../codec/language/bm/ash_exact_french.txt | 18 + .../codec/language/bm/ash_exact_german.txt | 18 + .../codec/language/bm/ash_exact_hebrew.txt | 18 + .../codec/language/bm/ash_exact_hungarian.txt | 18 + .../codec/language/bm/ash_exact_polish.txt | 23 + .../codec/language/bm/ash_exact_romanian.txt | 18 + .../codec/language/bm/ash_exact_russian.txt | 19 + .../codec/language/bm/ash_exact_spanish.txt | 18 + .../codec/language/bm/ash_hebrew_common.txt | 118 ++++ .../codec/language/bm/ash_languages.txt | 28 + .../codec/language/bm/ash_rules_any.txt | 332 +++++++++++ .../codec/language/bm/ash_rules_cyrillic.txt | 100 ++++ .../codec/language/bm/ash_rules_english.txt | 107 ++++ .../codec/language/bm/ash_rules_french.txt | 91 +++ .../codec/language/bm/ash_rules_german.txt | 128 ++++ .../codec/language/bm/ash_rules_hebrew.txt | 62 ++ .../codec/language/bm/ash_rules_hungarian.txt | 84 +++ .../codec/language/bm/ash_rules_polish.txt | 185 ++++++ .../codec/language/bm/ash_rules_romanian.txt | 66 +++ .../codec/language/bm/ash_rules_russian.txt | 164 ++++++ .../codec/language/bm/ash_rules_spanish.txt | 77 +++ .../codec/language/bm/gen_approx_any.txt | 124 ++++ .../codec/language/bm/gen_approx_arabic.txt | 23 + .../codec/language/bm/gen_approx_common.txt | 223 +++++++ .../codec/language/bm/gen_approx_cyrillic.txt | 18 + .../codec/language/bm/gen_approx_czech.txt | 18 + .../codec/language/bm/gen_approx_dutch.txt | 18 + .../codec/language/bm/gen_approx_english.txt | 47 ++ .../codec/language/bm/gen_approx_french.txt | 25 + .../codec/language/bm/gen_approx_german.txt | 73 +++ .../codec/language/bm/gen_approx_greek.txt | 18 + .../language/bm/gen_approx_greeklatin.txt | 20 + .../codec/language/bm/gen_approx_hebrew.txt | 18 + .../language/bm/gen_approx_hungarian.txt | 18 + .../codec/language/bm/gen_approx_italian.txt | 18 + .../codec/language/bm/gen_approx_polish.txt | 84 +++ .../language/bm/gen_approx_portuguese.txt | 18 + .../codec/language/bm/gen_approx_romanian.txt | 18 + .../codec/language/bm/gen_approx_russian.txt | 48 ++ .../codec/language/bm/gen_approx_spanish.txt | 21 + .../codec/language/bm/gen_approx_turkish.txt | 18 + .../codec/language/bm/gen_exact_any.txt | 33 ++ .../language/bm/gen_exact_approx_common.txt | 79 +++ .../codec/language/bm/gen_exact_arabic.txt | 18 + .../codec/language/bm/gen_exact_common.txt | 32 + .../codec/language/bm/gen_exact_cyrillic.txt | 18 + .../codec/language/bm/gen_exact_czech.txt | 18 + .../codec/language/bm/gen_exact_dutch.txt | 18 + .../codec/language/bm/gen_exact_english.txt | 18 + .../codec/language/bm/gen_exact_french.txt | 18 + .../codec/language/bm/gen_exact_german.txt | 18 + .../codec/language/bm/gen_exact_greek.txt | 18 + .../language/bm/gen_exact_greeklatin.txt | 18 + .../codec/language/bm/gen_exact_hebrew.txt | 18 + .../codec/language/bm/gen_exact_hungarian.txt | 18 + .../codec/language/bm/gen_exact_italian.txt | 18 + .../codec/language/bm/gen_exact_polish.txt | 23 + .../language/bm/gen_exact_portuguese.txt | 18 + .../codec/language/bm/gen_exact_romanian.txt | 18 + .../codec/language/bm/gen_exact_russian.txt | 19 + .../codec/language/bm/gen_exact_spanish.txt | 19 + .../codec/language/bm/gen_exact_turkish.txt | 18 + .../codec/language/bm/gen_hebrew_common.txt | 107 ++++ .../codec/language/bm/gen_languages.txt | 36 ++ .../codec/language/bm/gen_rules_any.txt | 367 ++++++++++++ .../codec/language/bm/gen_rules_arabic.txt | 74 +++ .../codec/language/bm/gen_rules_cyrillic.txt | 99 ++++ .../codec/language/bm/gen_rules_czech.txt | 67 +++ .../codec/language/bm/gen_rules_dutch.txt | 78 +++ .../codec/language/bm/gen_rules_english.txt | 113 ++++ .../codec/language/bm/gen_rules_french.txt | 114 ++++ .../codec/language/bm/gen_rules_german.txt | 129 +++++ .../codec/language/bm/gen_rules_greek.txt | 97 ++++ .../language/bm/gen_rules_greeklatin.txt | 118 ++++ .../codec/language/bm/gen_rules_hebrew.txt | 62 ++ .../codec/language/bm/gen_rules_hungarian.txt | 83 +++ .../codec/language/bm/gen_rules_italian.txt | 77 +++ .../codec/language/bm/gen_rules_polish.txt | 185 ++++++ .../language/bm/gen_rules_portuguese.txt | 105 ++++ .../codec/language/bm/gen_rules_romanian.txt | 64 ++ .../codec/language/bm/gen_rules_russian.txt | 142 +++++ .../codec/language/bm/gen_rules_spanish.txt | 85 +++ .../codec/language/bm/gen_rules_turkish.txt | 50 ++ .../apache/commons/codec/language/bm/lang.txt | 293 ++++++++++ .../codec/language/bm/sep_approx_any.txt | 20 + .../codec/language/bm/sep_approx_common.txt | 115 ++++ .../codec/language/bm/sep_approx_french.txt | 18 + .../codec/language/bm/sep_approx_hebrew.txt | 18 + .../codec/language/bm/sep_approx_italian.txt | 18 + .../language/bm/sep_approx_portuguese.txt | 18 + .../codec/language/bm/sep_approx_spanish.txt | 18 + .../codec/language/bm/sep_exact_any.txt | 18 + .../language/bm/sep_exact_approx_common.txt | 79 +++ .../codec/language/bm/sep_exact_common.txt | 32 + .../codec/language/bm/sep_exact_french.txt | 18 + .../codec/language/bm/sep_exact_hebrew.txt | 18 + .../codec/language/bm/sep_exact_italian.txt | 18 + .../language/bm/sep_exact_portuguese.txt | 18 + .../codec/language/bm/sep_exact_spanish.txt | 18 + .../codec/language/bm/sep_hebrew_common.txt | 86 +++ .../codec/language/bm/sep_languages.txt | 23 + .../codec/language/bm/sep_rules_any.txt | 155 +++++ .../codec/language/bm/sep_rules_french.txt | 91 +++ .../codec/language/bm/sep_rules_hebrew.txt | 62 ++ .../codec/language/bm/sep_rules_italian.txt | 76 +++ .../language/bm/sep_rules_portuguese.txt | 104 ++++ .../codec/language/bm/sep_rules_spanish.txt | 95 +++ .../org/apache/http/client/version.properties | 22 + .../org/apache/http/version.properties | 22 + .../recordservice-0.4.0-cdh5.8.x.pom | 9 + .../recordservice-core-0.4.0-cdh5.8.x.jar | Bin 0 -> 1279848 bytes .../recordservice-core-0.4.0-cdh5.8.x.pom | 9 + .../maven-metadata-local.xml | 12 + .../recordservice/RecordServiceClient.java | 20 + .../recordservice/RecordServiceConnector.java | 3 + .../recordservice/RecordServiceMetadata.java | 38 +- .../RecordServiceRecordSetProvider.java | 3 + .../RecordServiceSplitManager.java | 4 + 156 files changed, 10259 insertions(+), 78 deletions(-) create mode 120000 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/LICENSE create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/LICENSE.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/MANIFEST.MF create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/NOTICE create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/NOTICE.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/com.cloudera.recordservice/recordservice-core/pom.properties create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/com.cloudera.recordservice/recordservice-core/pom.xml create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-codec/commons-codec/pom.properties create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-codec/commons-codec/pom.xml create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-lang/commons-lang/pom.properties create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-lang/commons-lang/pom.xml create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-logging/commons-logging/pom.properties create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-logging/commons-logging/pom.xml create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpclient/pom.properties create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpclient/pom.xml create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpcore/pom.properties create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpcore/pom.xml create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_any.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_common.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_cyrillic.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_english.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_french.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_german.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_hebrew.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_hungarian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_polish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_romanian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_russian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_spanish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_any.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_approx_common.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_common.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_cyrillic.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_english.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_french.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_german.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_hebrew.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_hungarian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_polish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_romanian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_russian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_spanish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_hebrew_common.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_languages.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_any.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_cyrillic.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_english.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_french.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_german.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_hebrew.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_hungarian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_polish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_romanian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_russian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_spanish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_any.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_arabic.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_common.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_cyrillic.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_czech.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_dutch.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_english.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_french.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_german.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_greek.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_greeklatin.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_hebrew.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_hungarian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_italian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_polish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_portuguese.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_romanian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_russian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_spanish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_turkish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_any.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_approx_common.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_arabic.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_common.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_cyrillic.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_czech.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_dutch.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_english.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_french.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_german.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_greek.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_greeklatin.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_hebrew.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_hungarian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_italian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_polish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_portuguese.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_romanian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_russian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_spanish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_turkish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_hebrew_common.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_languages.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_any.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_arabic.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_cyrillic.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_czech.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_dutch.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_english.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_french.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_german.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_greek.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_greeklatin.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_hebrew.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_hungarian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_italian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_polish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_portuguese.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_romanian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_russian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_spanish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_turkish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/lang.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_any.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_common.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_french.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_hebrew.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_italian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_portuguese.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_spanish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_any.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_approx_common.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_common.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_french.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_hebrew.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_italian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_portuguese.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_spanish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_hebrew_common.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_languages.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_any.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_french.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_hebrew.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_italian.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_portuguese.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_spanish.txt create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/org/apache/http/client/version.properties create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/org/apache/http/version.properties create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/recordservice-0.4.0-cdh5.8.x.pom create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/recordservice-core-0.4.0-cdh5.8.x.jar create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/recordservice-core-0.4.0-cdh5.8.x.pom create mode 100644 presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/maven-metadata-local.xml diff --git a/pom.xml b/pom.xml index 809d07906e97..af106e2945af 100644 --- a/pom.xml +++ b/pom.xml @@ -656,15 +656,6 @@ - - com.cloudera.recordservice - recordservice-core - 0.4.0-cdh5.8.x - system - - ${project.basedir}/../../RecordServiceClient/java/core/target/recordservice-core-0.4.0-cdh5.8.x.jar - - org.xerial.snappy snappy-java @@ -750,41 +741,6 @@ - - - cdh.rcs.releases.repo - https://repository.cloudera.com/content/groups/cdh-releases-rcs - CDH Releases Repository - - true - - - - cdh.releases.repo - https://repository.cloudera.com/content/repositories/releases - CDH Releases Repository - - false - - - - cdh.snapshots.repo - https://repository.cloudera.com/content/repositories/snapshots - CDH Snapshots Repository - - true - - - - cloudera.thirdparty.repo - https://repository.cloudera.com/content/repositories/third-party - Cloudera Third Party Repository - - false - - - - diff --git a/presto-main/etc/catalog/hive.properties b/presto-main/etc/catalog/hive.properties index ff75f4be06d9..b08945b36f55 100644 --- a/presto-main/etc/catalog/hive.properties +++ b/presto-main/etc/catalog/hive.properties @@ -1,4 +1,4 @@ -connector.name=hive-cdh5 +connector.name=hive-cdh4 hive.metastore.uri=thrift://localhost:9083 hive.config.resources=/etc/hadoop/conf/core-site.xml,/etc/hadoop/conf/hdfs-site.xml diff --git a/presto-recordservice/pom.xml b/presto-recordservice/pom.xml index 99f6b4d79fb3..f91d9a646955 100644 --- a/presto-recordservice/pom.xml +++ b/presto-recordservice/pom.xml @@ -20,6 +20,7 @@ com.cloudera.recordservice recordservice-core + 0.4.0-cdh5.8.x @@ -163,6 +164,13 @@ + + + local-repo + file:///${project.basedir}/rs-repo + + + diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice new file mode 120000 index 000000000000..1e45594b7714 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice @@ -0,0 +1 @@ +recordservice-core \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/LICENSE b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/LICENSE new file mode 100644 index 000000000000..d64569567334 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/LICENSE.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/LICENSE.txt new file mode 100644 index 000000000000..8db837b70ba1 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/LICENSE.txt @@ -0,0 +1,261 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +-------------------------------------------------- +SOFTWARE DISTRIBUTED WITH THRIFT: + +The Apache Thrift software includes a number of subcomponents with +separate copyright notices and license terms. Your use of the source +code for the these subcomponents is subject to the terms and +conditions of the following licenses. + +-------------------------------------------------- +Portions of the following files are licensed under the MIT License: + + lib/erl/src/Makefile.am + +Please see doc/otp-base-license.txt for the full terms of this license. + +-------------------------------------------------- +For the aclocal/ax_boost_base.m4 and contrib/fb303/aclocal/ax_boost_base.m4 components: + +# Copyright (c) 2007 Thomas Porschberg +# +# Copying and distribution of this file, with or without +# modification, are permitted in any medium without royalty provided +# the copyright notice and this notice are preserved. + +-------------------------------------------------- +For the compiler/cpp/src/thrift/md5.[ch] components: + +/* + Copyright (C) 1999, 2000, 2002 Aladdin Enterprises. All rights reserved. + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + L. Peter Deutsch + ghost@aladdin.com + + */ + +--------------------------------------------------- +For the lib/rb/setup.rb: Copyright (c) 2000-2005 Minero Aoki, +lib/ocaml/OCamlMakefile and lib/ocaml/README-OCamlMakefile components: + Copyright (C) 1999 - 2007 Markus Mottl + +Licensed under the terms of the GNU Lesser General Public License 2.1 +(see doc/lgpl-2.1.txt for the full terms of this license) diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/MANIFEST.MF b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/MANIFEST.MF new file mode 100644 index 000000000000..e23d39fad9ac --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/MANIFEST.MF @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +Archiver-Version: Plexus Archiver +Created-By: Apache Maven +Built-By: chao +Build-Jdk: 1.8.0_91 + diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/NOTICE b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/NOTICE new file mode 100644 index 000000000000..3ca08d0a6023 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/NOTICE @@ -0,0 +1,14 @@ +// ------------------------------------------------------------------ +// NOTICE file corresponding to the section 4d of The Apache License, +// Version 2.0, in this case for Commons Logging +// ------------------------------------------------------------------ + +Commons Logging +Copyright 2001-2007 The Apache Software Foundation + +This product includes/uses software(s) developed by 'an unknown organization' + - Unnamed - avalon-framework:avalon-framework:jar:4.1.3 + - Unnamed - log4j:log4j:jar:1.2.12 + - Unnamed - logkit:logkit:jar:1.0.1 + + diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/NOTICE.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/NOTICE.txt new file mode 100644 index 000000000000..c23995a23157 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/NOTICE.txt @@ -0,0 +1,5 @@ +Apache Thrift +Copyright 2006-2010 The Apache Software Foundation. + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org/). \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/com.cloudera.recordservice/recordservice-core/pom.properties b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/com.cloudera.recordservice/recordservice-core/pom.properties new file mode 100644 index 000000000000..823a5363fd7c --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/com.cloudera.recordservice/recordservice-core/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Thu Apr 28 19:18:02 PDT 2016 +version=0.4.0-cdh5.8.x +groupId=com.cloudera.recordservice +artifactId=recordservice-core diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/com.cloudera.recordservice/recordservice-core/pom.xml b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/com.cloudera.recordservice/recordservice-core/pom.xml new file mode 100644 index 000000000000..811667f9965a --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/com.cloudera.recordservice/recordservice-core/pom.xml @@ -0,0 +1,218 @@ + + + + + 4.0.0 + + com.cloudera.recordservice + recordservice + 0.4.0-cdh5.8.x + + + recordservice-core + Record Service Core + Record Service Core + jar + . + + + + org.apache.thrift + libthrift + ${thrift.version} + + + org.slf4j + slf4j-api + ${slf4j.version} + + + org.slf4j + slf4j-log4j12 + ${slf4j.version} + + + commons-lang + commons-lang + ${commons.lang.version} + + + + com.google.guava + guava + ${guava.version} + test + + + junit + junit + ${junit.version} + test + + + + + + + org.apache.maven.plugins + maven-jar-plugin + 2.3.1 + + + + test-jar + + + + + + org.apache.maven.plugins + maven-shade-plugin + 2.3 + + + package + + shade + + + + + commons-codec:commons-codec + commons-lang:commons-lang + commons-logging:commons-logging + org.apache.httpcomponents:httpcore + org.apache.httpcomponents:httpclient + org.apache.thrift:libthrift + + + + + org.apache.commons + com.cloudera.recordservice.shade.apache.commons + + + org.apache.httpcomponents + com.cloudera.recordservice.shade.apache.httpcomponents + + + org.apache.thrift + com.cloudera.recordservice.shade.apache.thrift + + + true + + + + + + org.apache.maven.plugins + maven-source-plugin + 2.1.2 + + + attach-sources + + jar + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 2.3.2 + + 1.6 + 1.6 + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.18.1 + + + org.apache.maven.surefire + surefire-junit47 + 2.18.1 + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.5 + + + + add-source + generate-sources + + add-source + + + + + ${project.basedir}/generated-sources/gen-java + + + + + + + + org.codehaus.mojo + findbugs-maven-plugin + 3.0.1 + + src/test/resources/findbugs-exclude.xml + + + + + + + + org.codehaus.mojo + findbugs-maven-plugin + 3.0.1 + + src/test/resources/findbugs-exclude.xml + + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.7 + + + html + xml + + + + + + diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-codec/commons-codec/pom.properties b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-codec/commons-codec/pom.properties new file mode 100644 index 000000000000..ae50095dad5b --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-codec/commons-codec/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Fri Dec 02 21:37:33 EST 2011 +version=1.6 +groupId=commons-codec +artifactId=commons-codec diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-codec/commons-codec/pom.xml b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-codec/commons-codec/pom.xml new file mode 100644 index 000000000000..6d0a2a822992 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-codec/commons-codec/pom.xml @@ -0,0 +1,337 @@ + + + + + org.apache.commons + commons-parent + 22 + + 4.0.0 + commons-codec + commons-codec + 1.6 + Commons Codec + 2002 + + The codec package contains simple encoder and decoders for + various formats such as Base64 and Hexadecimal. In addition to these + widely used encoders and decoders, the codec package also maintains a + collection of phonetic encoding utilities. + + http://commons.apache.org/codec/ + + jira + http://issues.apache.org/jira/browse/CODEC + + + scm:svn:http://svn.apache.org/repos/asf/commons/proper/codec/trunk + scm:svn:https://svn.apache.org/repos/asf/commons/proper/codec/trunk + http://svn.apache.org/viewvc/commons/proper/codec/trunk + + + + stagingSite + Apache Staging Website + scp://people.apache.org/www/commons.apache.org/codec/ + + + + + Henri Yandell + bayard + bayard@apache.org + + + Tim OBrien + tobrien + tobrien@apache.org + -6 + + + Scott Sanders + sanders + sanders@totalsync.com + + + Rodney Waldhoff + rwaldhoff + rwaldhoff@apache.org + + + Daniel Rall + dlr + dlr@finemaltcoding.com + + + Jon S. Stevens + jon + jon@collab.net + + + Gary D. Gregory + ggregory + ggregory@apache.org + http://www.garygregory.com + -5 + + + David Graham + dgraham + dgraham@apache.org + + + Julius Davies + julius + julius@apache.org + http://juliusdavies.ca/ + -8 + + + + + Christopher O'Brien + siege@preoccupied.net + + hex + md5 + architecture + + + + Martin Redington + + Representing xml-rpc + + + + Jeffery Dever + + Representing http-client + + + + Steve Zimmermann + steve.zimmermann@heii.com + + Documentation + + + + Benjamin Walstrum + ben@walstrum.com + + + Oleg Kalnichevski + oleg@ural.ru + + Representing http-client + + + + Dave Dribin + apache@dave.dribin.org + + DigestUtil + + + + Alex Karasulu + aok123 at bellsouth.net + + Submitted Binary class and test + + + + Matthew Inger + mattinger at yahoo.com + + Submitted DIFFERENCE algorithm for Soundex and RefinedSoundex + + + + Jochen Wiedmann + jochen@apache.org + + Base64 code [CODEC-69] + + + + Sebastian Bazley + sebb@apache.org + + Streaming Base64 + + + + Matthew Pocock + turingatemyhamster@gmail.com + + Beinder-Morse phonetic matching + + + + + + + junit + junit + 4.10 + test + + + + 1.5 + 1.5 + codec + 1.6 + + RC2 + CODEC + 12310464 + + UTF-8 + UTF-8 + UTF-8 + + + + + + org.apache.maven.plugins + maven-site-plugin + 3.0 + + + + org.apache.maven.wagon + wagon-ssh + 1.0 + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.10 + + + **/*Test.java + **/Test*.java + + + **/*AbstractTest.java + + + + + org.apache.maven.plugins + maven-jar-plugin + 2.3.2 + + + + test-jar + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 2.2.1 + + + src/main/assembly/bin.xml + src/main/assembly/src.xml + + gnu + + + + + + + + org.apache.maven.plugins + maven-changes-plugin + 2.6 + + %URL%/%ISSUE% + + + + + + changes-report + jira-report + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + 2.8 + + ${basedir}/checkstyle.xml + false + ${basedir}/LICENSE-header.txt + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.5.1 + + + org.apache.maven.plugins + maven-pmd-plugin + 2.5 + + 1.5 + + + + org.codehaus.mojo + findbugs-maven-plugin + 2.3.2 + + + org.codehaus.mojo + taglist-maven-plugin + 2.4 + + + TODO + NOPMD + NOTE + + + + + org.codehaus.mojo + javancss-maven-plugin + 2.0 + + + + diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-lang/commons-lang/pom.properties b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-lang/commons-lang/pom.properties new file mode 100644 index 000000000000..528c5b2c8be5 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-lang/commons-lang/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Thu Jan 13 23:06:50 GMT 2011 +version=2.6 +groupId=commons-lang +artifactId=commons-lang diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-lang/commons-lang/pom.xml b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-lang/commons-lang/pom.xml new file mode 100644 index 000000000000..367d43979707 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-lang/commons-lang/pom.xml @@ -0,0 +1,545 @@ + + + + + org.apache.commons + commons-parent + 17 + + 4.0.0 + commons-lang + commons-lang + 2.6 + Commons Lang + + 2001 + + Commons Lang, a package of Java utility classes for the + classes that are in java.lang's hierarchy, or are considered to be so + standard as to justify existence in java.lang. + + + http://commons.apache.org/lang/ + + + jira + http://issues.apache.org/jira/browse/LANG + + + + scm:svn:http://svn.apache.org/repos/asf/commons/proper/lang/branches/LANG_2_X + scm:svn:https://svn.apache.org/repos/asf/commons/proper/lang/branches/LANG_2_X + http://svn.apache.org/viewvc/commons/proper/lang/branches/LANG_2_X + + + + + Daniel Rall + dlr + dlr@finemaltcoding.com + CollabNet, Inc. + + Java Developer + + + + Stephen Colebourne + scolebourne + scolebourne@joda.org + SITA ATS Ltd + 0 + + Java Developer + + + + Henri Yandell + bayard + bayard@apache.org + + + Java Developer + + + + Steven Caswell + scaswell + stevencaswell@apache.org + + + Java Developer + + -5 + + + Robert Burrell Donkin + rdonkin + rdonkin@apache.org + + + Java Developer + + + + Gary D. Gregory + ggregory + ggregory@seagullsw.com + Seagull Software + -8 + + Java Developer + + + + Phil Steitz + psteitz + phil@steitz.com + + + Java Developer + + + + Fredrik Westermarck + fredrik + + + + Java Developer + + + + James Carman + jcarman + jcarman@apache.org + Carman Consulting, Inc. + + Java Developer + + + + Niall Pemberton + niallp + + Java Developer + + + + Matt Benson + mbenson + + Java Developer + + + + Joerg Schaible + joehni + joerg.schaible@gmx.de + + Java Developer + + +1 + + + Oliver Heger + oheger + oheger@apache.org + +1 + + Java Developer + + + + Paul Benedict + pbenedict + pbenedict@apache.org + + Java Developer + + + + + + C. Scott Ananian + + + Chris Audley + + + Stephane Bailliez + + + Michael Becke + + + Benjamin Bentmann + + + Ola Berg + + + Nathan Beyer + + + Stefan Bodewig + + + Janek Bogucki + + + Mike Bowler + + + Sean Brown + + + Alexander Day Chaffee + + + Al Chou + + + Greg Coladonato + + + Maarten Coene + + + Justin Couch + + + Michael Davey + + + Norm Deane + + + Ringo De Smet + + + Russel Dittmar + + + Steve Downey + + + Matthias Eichel + + + Christopher Elkins + + + Chris Feldhacker + + + Pete Gieser + + + Jason Gritman + + + Matthew Hawthorne + + + Michael Heuer + + + Chris Hyzer + + + Marc Johnson + + + Shaun Kalley + + + Tetsuya Kaneuchi + + + Nissim Karpenstein + + + Ed Korthof + + + Holger Krauth + + + Rafal Krupinski + + + Rafal Krzewski + + + Craig R. McClanahan + + + Rand McNeely + + + Hendrik Maryns + + + Dave Meikle + + + Nikolay Metchev + + + Kasper Nielsen + + + Tim O'Brien + + + Brian S O'Neill + + + Andrew C. Oliver + + + Alban Peignier + + + Moritz Petersen + + + Dmitri Plotnikov + + + Neeme Praks + + + Eric Pugh + + + Stephen Putman + + + Travis Reeder + + + Antony Riley + + + Scott Sanders + + + Ralph Schaer + + + Henning P. Schmiedehausen + + + Sean Schofield + + + Robert Scholte + + + Reuben Sivan + + + Ville Skytta + + + Jan Sorensen + + + Glen Stampoultzis + + + Scott Stanchfield + + + Jon S. Stevens + + + Sean C. Sullivan + + + Ashwin Suresh + + + Helge Tesgaard + + + Arun Mammen Thomas + + + Masato Tezuka + + + Jeff Varszegi + + + Chris Webb + + + Mario Winterer + + + Stepan Koltsov + + + Holger Hoffstatte + + + Derek C. Ashmore + + + + + + + junit + junit + 3.8.1 + test + + + + + UTF-8 + UTF-8 + 1.3 + 1.3 + lang + 2.6 + (Java 1.3+) + 3.0-beta + (Java 5.0+) + LANG + 12310481 + **/RandomUtilsFreqTest.java + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + **/*Test.java + + + **/EntitiesPerformanceTest.java + ${random.exclude.test} + + + + + maven-assembly-plugin + + + src/assembly/bin.xml + src/assembly/src.xml + + gnu + + + + + + + + + test-random-freq + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + **/RandomUtilsFreqTest.java + + + + + + + + + + + + org.apache.maven.plugins + maven-changes-plugin + 2.3 + + ${basedir}/src/site/changes/changes.xml + %URL%/%ISSUE% + + + + + changes-report + + + + + + maven-checkstyle-plugin + 2.6 + + ${basedir}/checkstyle.xml + false + + + + + org.codehaus.mojo + findbugs-maven-plugin + 2.3.1 + + Normal + Default + ${basedir}/findbugs-exclude-filter.xml + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.4 + + + org.codehaus.mojo + clirr-maven-plugin + 2.2.2 + + 2.5 + info + + + + + + diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-logging/commons-logging/pom.properties b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-logging/commons-logging/pom.properties new file mode 100644 index 000000000000..1f45336edd71 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-logging/commons-logging/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Mon Nov 19 00:16:46 CET 2007 +version=1.1.1 +groupId=commons-logging +artifactId=commons-logging diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-logging/commons-logging/pom.xml b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-logging/commons-logging/pom.xml new file mode 100644 index 000000000000..e4b450310d32 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/commons-logging/commons-logging/pom.xml @@ -0,0 +1,504 @@ + + + + + + org.apache.commons + commons-parent + 5 + + 4.0.0 + commons-logging + commons-logging + Commons Logging + 1.1.1 + Commons Logging is a thin adapter allowing configurable bridging to other, + well known logging systems. + http://commons.apache.org/logging + + + JIRA + http://issues.apache.org/jira/browse/LOGGING + + + 2001 + + + + morgand + Morgan Delagrange + morgand at apache dot org + Apache + + Java Developer + + + + rwaldhoff + Rodney Waldhoff + rwaldhoff at apache org + Apache Software Foundation + + + craigmcc + Craig McClanahan + craigmcc at apache org + Apache Software Foundation + + + sanders + Scott Sanders + sanders at apache dot org + Apache Software Foundation + + + rdonkin + Robert Burrell Donkin + rdonkin at apache dot org + Apache Software Foundation + + + donaldp + Peter Donald + donaldp at apache dot org + + + costin + Costin Manolache + costin at apache dot org + Apache Software Foundation + + + rsitze + Richard Sitze + rsitze at apache dot org + Apache Software Foundation + + + baliuka + Juozas Baliuka + baliuka@apache.org + + Java Developer + + + + skitching + Simon Kitching + skitching@apache.org + Apache Software Foundation + + + dennisl + Dennis Lundberg + dennisl@apache.org + Apache Software Foundation + + + bstansberry + Brian Stansberry + + + + + scm:svn:http://svn.apache.org/repos/asf/commons/proper/logging/tags/commons-logging-1.1.1 + scm:svn:https://svn.apache.org/repos/asf/commons/proper/logging/tags/commons-logging-1.1.1 + http://svn.apache.org/repos/asf/commons/proper/logging/tags/commons-logging-1.1.1 + + + + src/java + src/test + + + + src/test + false + + **/*.properties + + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + src/conf/MANIFEST.MF + + + + + testjar + package + + test-jar + + + commons-logging + + + + + + + + org.apache.maven.plugins + maven-antrun-plugin + 1.1 + + + apijar + package + + + + + + + + + + + + + + + + + + + + run + + + + adaptersjar + package + + + + + + + + + + + + + + + + + + run + + + + site.resources + site + + + + + + + + + + + + + + + run + + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + attach-artifacts + package + + attach-artifact + + + + + ${project.build.directory}/${project.artifactId}-adapters-${project.version}.jar + jar + adapters + + + ${project.build.directory}/${project.artifactId}-api-${project.version}.jar + jar + api + + + + + + + + + org.apache.maven.plugins + maven-release-plugin + 2.0-beta-6 + + + site deploy + + -Prelease + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + **/AvalonLoggerTestCase.java + + + + + + integration-test + integration-test + + test + + + + **/*TestCase.java + + + + + commons-logging + target/${project.build.finalName}.jar + + + commons-logging-api + target/${project.artifactId}-api-${project.version}.jar + + + commons-logging-adapters + target/${project.artifactId}-adapters-${project.version}.jar + + + testclasses + target/commons-logging-tests.jar + + + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 2.2-beta-1 + + false + + false + + src/assembly/assembly.xml + + gnu + + + + + org.apache.maven.plugins + maven-site-plugin + 2.0-beta-5 + + + + + + + + + ci + + + apache.snapshots + Apache Development Snapshot Repository + ${commons.deployment.protocol}://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository + + + apache.snapshots + Apache Development Snapshot Repository + ${commons.deployment.protocol}://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository + + + + + release + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + + single + + package + + + + + org.apache.maven.plugins + maven-deploy-plugin + 2.3 + + + ${deploy.altRepository} + true + + + + + + + + + + junit + junit + 3.8.1 + test + + + log4j + log4j + 1.2.12 + true + + + logkit + logkit + 1.0.1 + true + + + avalon-framework + avalon-framework + 4.1.3 + true + + + javax.servlet + servlet-api + 2.3 + provided + true + + + + + + + + org.codehaus.mojo + clirr-maven-plugin + 2.1.1 + + + org.codehaus.mojo + jdepend-maven-plugin + 2.0-beta-1 + + + + + + + apache.website + ${commons.deployment.protocol}://people.apache.org/www/commons.apache.org/logging/ + + + + + 1.2 + 1.1 + + diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpclient/pom.properties b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpclient/pom.properties new file mode 100644 index 000000000000..9b44a0c9f11e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpclient/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Fri Apr 19 18:19:55 CEST 2013 +version=4.2.5 +groupId=org.apache.httpcomponents +artifactId=httpclient diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpclient/pom.xml b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpclient/pom.xml new file mode 100644 index 000000000000..9f956142c7c9 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpclient/pom.xml @@ -0,0 +1,181 @@ + + + + + 4.0.0 + + org.apache.httpcomponents + httpcomponents-client + 4.2.5 + + httpclient + HttpClient + + HttpComponents Client (base module) + + http://hc.apache.org/httpcomponents-client + jar + + + + org.apache.httpcomponents + httpcore + compile + + + commons-logging + commons-logging + compile + + + commons-codec + commons-codec + compile + + + junit + junit + test + + + org.mockito + mockito-core + test + + + + + UTF-8 + UTF-8 + 1.5 + 1.5 + true + true + + + + + + src/main/resources + true + + **/*.properties + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${maven.compile.source} + ${maven.compile.target} + ${maven.compile.optimize} + ${maven.compile.deprecation} + + + + maven-surefire-plugin + + + maven-jar-plugin + + + + test-jar + + + + + + com.atlassian.maven.plugins + maven-clover2-plugin + + threaded + 100 + 50% + + + + site + pre-site + + instrument + + + + + + + + + + + + maven-javadoc-plugin + ${hc.javadoc.version} + + + true + 1.5 + + http://download.oracle.com/javase/1.5.0/docs/api/ + http://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/ + + + + + + javadoc + + + + + + + com.atlassian.maven.plugins + maven-clover2-plugin + ${clover.version} + + 1.5 + + + + + maven-jxr-plugin + ${hc.jxr.version} + + + + maven-surefire-report-plugin + ${hc.surefire-report.version} + + + + + + diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpcore/pom.properties b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpcore/pom.properties new file mode 100644 index 000000000000..64ffe1d8175f --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpcore/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Wed Mar 20 16:48:28 CET 2013 +version=4.2.4 +groupId=org.apache.httpcomponents +artifactId=httpcore diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpcore/pom.xml b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpcore/pom.xml new file mode 100644 index 000000000000..9b601f597e21 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/META-INF/maven/org.apache.httpcomponents/httpcore/pom.xml @@ -0,0 +1,167 @@ + + + + + 4.0.0 + + org.apache.httpcomponents + httpcomponents-core + 4.2.4 + + httpcore + HttpCore + 2005 + + HttpComponents Core (blocking I/O) + + http://hc.apache.org/httpcomponents-core-ga + jar + + + UTF-8 + UTF-8 + 1.5 + 1.5 + true + true + + false + + + + + + + + junit + junit + test + + + org.mockito + mockito-core + test + + + + + + + src/main/resources + true + + **/*.properties + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${maven.compile.source} + ${maven.compile.target} + ${maven.compile.optimize} + ${maven.compile.deprecation} + ${httpcore.compiler.fork} + ${httpcore.compiler.compilerVersion} + ${httpcore.compiler.javac} + + + + maven-surefire-plugin + + ${httpcore.surefire.java} + + + + com.atlassian.maven.plugins + maven-clover2-plugin + + threaded + 100 + 50% + + + + site + pre-site + + instrument + + + + + + + + + + + + maven-javadoc-plugin + ${hc.javadoc.version} + + + true + 1.5 + + http://download.oracle.com/javase/1.5.0/docs/api/ + + + + + + javadoc + + + + + + + com.atlassian.maven.plugins + maven-clover2-plugin + ${clover.version} + + 1.5 + + + + + maven-jxr-plugin + ${hc.jxr.version} + + + + maven-surefire-report-plugin + ${hc.surefire-report.version} + + + + + + diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_any.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_any.txt new file mode 100644 index 000000000000..3f4f4c98bbfd --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_any.txt @@ -0,0 +1,153 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// CONSTONANTS +"ph" "" "" "f" // foreign +"sh" "" "" "S" // foreign +"kh" "" "" "x" // foreign + +"gli" "" "" "(gli|l[italian])" +"gni" "" "" "(gni|ni[italian+french])" +"gn" "" "[aeou]" "(n[italian+french]|nj[italian+french]|gn) +"gh" "" "" "g" // It + translit. from Arabic +"dh" "" "" "d" // translit. from Arabic +"bh" "" "" "d" // translit. from Arabic +"th" "" "" "t" // translit. from Arabic +"lh" "" "" "l" // Port +"nh" "" "" "nj" // Port + +"ig" "[aeiou]" "" "(ig|tS[spanish])" +"ix" "[aeiou]" "" "S" // Sp +"tx" "" "" "tS" // Sp +"tj" "" "$" "tS" // Sp +"tj" "" "" "dZ" // Sp +"tg" "" "" "(tg|dZ[spanish])" + +"gi" "" "[aeou]" "dZ" // Italian +"g" "" "y" "Z" // French +"gg" "" "[ei]" "(gZ[portuguese+french]|dZ[italian+spanish]|x[spanish])" +"g" "" "[ei]" "(Z[portuguese+french]|dZ[italian+spanish]|x[spanish])" + +"guy" "" "" "gi" +"gue" "" "$" "(k[french]|ge)" +"gu" "" "[ei]" "(g|gv") // not It +"gu" "" "[ao]" "gv" // not It + +"ñ" "" "" "(n|nj)" +"ny" "" "" "nj" + +"sc" "" "[ei]" "(s|S[italian])" +"sç" "" "[aeiou]" "s" // not It +"ss" "" "" "s" +"ç" "" "" "s" // not It + +"ch" "" "[ei]" "(k[italian]|S[portuguese+french]|tS[spanish]|dZ[spanish])" +"ch" "" "" "(S|tS[spanish]|dZ[spanish])" + +"ci" "" "[aeou]" "(tS[italian]|si)" +"cc" "" "[eiyéèê]" "(tS[italian]|ks[portuguese+french+spanish])" +"c" "" "[eiyéèê]" "(tS[italian]|s[portuguese+french+spanish])" + //array("c" "" "[aou]" "(k|C[".($portuguese+$spanish)."])" // "C" means that the actual letter could be "ç" (cedille omitted) + +"s" "^" "" "s" +"s" "[aáuiíoóeéêy]" "[aáuiíoóeéêy]" "(s[spanish]|z[portuguese+french+italian])" +"s" "" "[dglmnrv]" "(z|Z[portuguese])" + +"z" "" "$" "(s|ts[italian]|S[portuguese])" // ts It, s/S/Z Port, s in Sp, z Fr +"z" "" "[bdgv]" "(z|dz[italian]|Z[portuguese])" // dz It, Z/z Port, z Sp & Fr +"z" "" "[ptckf]" "(s|ts[italian]|S[portuguese])" // ts It, s/S/z Port, z/s Sp +"z" "" "" "(z|dz[italian]|ts[italian]|s[spanish])" // ts/dz It, z Port & Fr, z/s Sp + +"que" "" "$" "(k[french]|ke)" +"qu" "" "[eiu]" "k" +"qu" "" "[ao]" "(kv|k)" // k is It + +"ex" "" "[aáuiíoóeéêy]" "(ez[portuguese]|eS[portuguese]|eks|egz)" +"ex" "" "[cs]" "(e[portuguese]|ek)" + +"m" "" "[cdglnrst]" "(m|n[portuguese])" +"m" "" "[bfpv]" "(m|n[portuguese+spanish])" +"m" "" "$" "(m|n[portuguese])" + +"b" "^" "" "(b|V[spanish])" +"v" "^" "" "(v|B[spanish])" + + // VOWELS +"eau" "" "" "o" // Fr + +"ouh" "" "[aioe]" "(v[french]|uh)" +"uh" "" "[aioe]" "(v|uh)" +"ou" "" "[aioe]" "v" // french +"uo" "" "" "(vo|o)" +"u" "" "[aie]" "v" + +"i" "[aáuoóeéê]" "" "j" +"i" "" "[aeou]" "j" +"y" "[aáuiíoóeéê]" "" "j" +"y" "" "[aeiíou]" "j" +"e" "" "$" "(e|E[$french])" + +"ão" "" "" "(au|an)" // Port +"ãe" "" "" "(aj|an)" // Port +"ãi" "" "" "(aj|an)" // Port +"õe" "" "" "(oj|on)" // Port +"où" "" "" "u" // Fr +"ou" "" "" "(ou|u[french])" + +"â" "" "" "a" // Port & Fr +"à" "" "" "a" // Port +"á" "" "" "a" // Port & Sp +"ã" "" "" "(a|an)" // Port +"é" "" "" "e" +"ê" "" "" "e" // Port & Fr +"è" "" "" "e" // Sp & Fr & It +"í" "" "" "i" // Port & Sp +"î" "" "" "i" // Fr +"ô" "" "" "o" // Port & Fr +"ó" "" "" "o" // Port & Sp & It +"õ" "" "" "(o|on)" // Port +"ò" "" "" "o" // Sp & It +"ú" "" "" "u" // Port & Sp +"ü" "" "" "u" // Port & Sp + + // LATIN ALPHABET +"a" "" "" "a" +"b" "" "" "(b|v[spanish])" +"c" "" "" "k" +"d" "" "" "d" +"e" "" "" "e" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "i" +"j" "" "" "(x[spanish]|Z)" // not It +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "(s|S[portuguese])" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "(v|b[spanish])" +"w" "" "" "v" // foreign +"x" "" "" "(ks|gz|S[portuguese+spanish])" // S/ks Port & Sp, gz Sp, It only ks +"y" "" "" "i" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_common.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_common.txt new file mode 100644 index 000000000000..e95a7569c873 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_common.txt @@ -0,0 +1,219 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include ash_exact_approx_common + +// REGRESSIVE ASSIMILATION OF CONSONANTS +"n" "" "[bp]" "m" + +// PECULIARITY OF "h" +"h" "" "" "" +"H" "" "" "(x|)" + +// POLISH OGONEK IMPOSSIBLE +"F" "" "[bdgkpstvzZ]h" "e" +"F" "" "[bdgkpstvzZ]x" "e" +"B" "" "[bdgkpstvzZ]h" "a" +"B" "" "[bdgkpstvzZ]x" "a" + +// "e" and "i" ARE TO BE OMITTED BEFORE (SYLLABIC) n & l: Halperin=Halpern; Frankel = Frankl, Finkelstein = Finklstein +"e" "[bdfgklmnprsStvzZ]" "[ln]$" "" +"i" "[bdfgklmnprsStvzZ]" "[ln]$" "" +"E" "[bdfgklmnprsStvzZ]" "[ln]$" "" +"I" "[bdfgklmnprsStvzZ]" "[ln]$" "" +"F" "[bdfgklmnprsStvzZ]" "[ln]$" "" +"Q" "[bdfgklmnprsStvzZ]" "[ln]$" "" +"Y" "[bdfgklmnprsStvzZ]" "[ln]$" "" + +"e" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" "" +"i" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" "" +"E" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" "" +"I" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" "" +"F" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" "" +"Q" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" "" +"Y" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" "" + +"lEs" "" "" "(lEs|lz)" // Applebaum < Appelbaum (English + blend English-something forms as Finklestein) +"lE" "[bdfgkmnprStvzZ]" "" "(lE|l)" // Applebaum < Appelbaum (English + blend English-something forms as Finklestein) + +// SIMPLIFICATION: (TRIPHTHONGS & DIPHTHONGS) -> ONE GENERIC DIPHTHONG "D" +"aue" "" "" "D" +"oue" "" "" "D" + +"AvE" "" "" "(D|AvE)" +"Ave" "" "" "(D|Ave)" +"avE" "" "" "(D|avE)" +"ave" "" "" "(D|ave)" + +"OvE" "" "" "(D|OvE)" +"Ove" "" "" "(D|Ove)" +"ovE" "" "" "(D|ovE)" +"ove" "" "" "(D|ove)" + +"ea" "" "" "(D|ea)" +"EA" "" "" "(D|EA)" +"Ea" "" "" "(D|Ea)" +"eA" "" "" "(D|eA)" + +"aji" "" "" "D" +"ajI" "" "" "D" +"aje" "" "" "D" +"ajE" "" "" "D" + +"Aji" "" "" "D" +"AjI" "" "" "D" +"Aje" "" "" "D" +"AjE" "" "" "D" + +"oji" "" "" "D" +"ojI" "" "" "D" +"oje" "" "" "D" +"ojE" "" "" "D" + +"Oji" "" "" "D" +"OjI" "" "" "D" +"Oje" "" "" "D" +"OjE" "" "" "D" + +"eji" "" "" "D" +"ejI" "" "" "D" +"eje" "" "" "D" +"ejE" "" "" "D" + +"Eji" "" "" "D" +"EjI" "" "" "D" +"Eje" "" "" "D" +"EjE" "" "" "D" + +"uji" "" "" "D" +"ujI" "" "" "D" +"uje" "" "" "D" +"ujE" "" "" "D" + +"Uji" "" "" "D" +"UjI" "" "" "D" +"Uje" "" "" "D" +"UjE" "" "" "D" + +"iji" "" "" "D" +"ijI" "" "" "D" +"ije" "" "" "D" +"ijE" "" "" "D" + +"Iji" "" "" "D" +"IjI" "" "" "D" +"Ije" "" "" "D" +"IjE" "" "" "D" + +"aja" "" "" "D" +"ajA" "" "" "D" +"ajo" "" "" "D" +"ajO" "" "" "D" +"aju" "" "" "D" +"ajU" "" "" "D" + +"Aja" "" "" "D" +"AjA" "" "" "D" +"Ajo" "" "" "D" +"AjO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"oja" "" "" "D" +"ojA" "" "" "D" +"ojo" "" "" "D" +"ojO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"Oja" "" "" "D" +"OjA" "" "" "D" +"Ojo" "" "" "D" +"OjO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"eja" "" "" "D" +"ejA" "" "" "D" +"ejo" "" "" "D" +"ejO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"Eja" "" "" "D" +"EjA" "" "" "D" +"Ejo" "" "" "D" +"EjO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"uja" "" "" "D" +"ujA" "" "" "D" +"ujo" "" "" "D" +"ujO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"Uja" "" "" "D" +"UjA" "" "" "D" +"Ujo" "" "" "D" +"UjO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"ija" "" "" "D" +"ijA" "" "" "D" +"ijo" "" "" "D" +"ijO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"Ija" "" "" "D" +"IjA" "" "" "D" +"Ijo" "" "" "D" +"IjO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"j" "" "" "i" + +// lander = lender = länder +"lYndEr" "" "$" "lYnder" +"lander" "" "$" "lYnder" +"lAndEr" "" "$" "lYnder" +"lAnder" "" "$" "lYnder" +"landEr" "" "$" "lYnder" +"lender" "" "$" "lYnder" +"lEndEr" "" "$" "lYnder" +"lendEr" "" "$" "lYnder" +"lEnder" "" "$" "lYnder" + +// CONSONANTS {z & Z; s & S} are approximately interchangeable +"s" "" "[rmnl]" "z" +"S" "" "[rmnl]" "z" +"s" "[rmnl]" "" "z" +"S" "[rmnl]" "" "z" + +"dS" "" "$" "S" +"dZ" "" "$" "S" +"Z" "" "$" "S" +"S" "" "$" "(S|s)" +"z" "" "$" "(S|s)" + +"S" "" "" "s" +"dZ" "" "" "z" +"Z" "" "" "z" \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_cyrillic.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_cyrillic.txt new file mode 100644 index 000000000000..421017318436 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_cyrillic.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include ash_approx_russian \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_english.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_english.txt new file mode 100644 index 000000000000..84d8174eaf8d --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_english.txt @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// VOWELS +"I" "" "[^aEIeiou]e" "(Q|i|D)" // like in "five" +"I" "" "$" "i" +"I" "[aEIeiou]" "" "i" +"I" "" "[^k]$" "i" +"Ik" "[lr]" "$" "(ik|Qk)" +"Ik" "" "$" "ik" +"sIts" "" "$" "(sits|sQts)" +"Its" "" "$" "its" +"I" "" "" "(i|Q)" + +"lE" "[bdfgkmnprsStvzZ]" "" "(il|li|lY)" // Applebaum < Appelbaum + +"au" "" "" "(D|a|u)" +"ou" "" "" "(D|o|u)" +"ai" "" "" "(D|a|i)" +"oi" "" "" "(D|o|i)" +"ui" "" "" "(D|u|i)" + +"E" "D[^aeiEIou]" "" "(i|)" // Weinberg, Shaneberg (shaneberg/shejneberg) --> shejnberg +"e" "D[^aeiEIou]" "" "(i|)" + +"e" "" "" "i" +"E" "" "[fklmnprsStv]$" "i" +"E" "" "ts$" "i" +"E" "[DaoiEuQY]" "" "i" +"E" "" "[aoQY]" "i" +"E" "" "" "(Y|i)" + +"a" "" "" "(a|o)" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_french.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_french.txt new file mode 100644 index 000000000000..fa8ee9954954 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_french.txt @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"I" "" "$" "i" +"I" "[aEIeiou]" "" "i" +"I" "" "[^k]$" "i" +"Ik" "[lr]" "$" "(ik|Qk)" +"Ik" "" "$" "ik" +"sIts" "" "$" "(sits|sQts)" +"Its" "" "$" "its" +"I" "" "" "(i|Q)" + +"au" "" "" "(D|a|u)" +"ou" "" "" "(D|o|u)" +"ai" "" "" "(D|a|i)" +"oi" "" "" "(D|o|i)" +"ui" "" "" "(D|u|i)" + +"a" "" "" "(a|o)" +"e" "" "" "i" + +"E" "" "[fklmnprsStv]$" "i" +"E" "" "ts$" "i" +"E" "[aoiuQ]" "" "i" +"E" "" "[aoQ]" "i" +"E" "" "" "(Y|i)" \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_german.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_german.txt new file mode 100644 index 000000000000..78cc0f83e166 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_german.txt @@ -0,0 +1,72 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"I" "" "$" "i" +"I" "[aeiAEIOUouQY]" "" "i" +"I" "" "[^k]$" "i" +"Ik" "[lr]" "$" "(ik|Qk)" +"Ik" "" "$" "ik" +"sIts" "" "$" "(sits|sQts)" +"Its" "" "$" "its" +"I" "" "" "(Q|i)" + +"AU" "" "" "(D|a|u)" +"aU" "" "" "(D|a|u)" +"Au" "" "" "(D|a|u)" +"au" "" "" "(D|a|u)" +"ou" "" "" "(D|o|u)" +"OU" "" "" "(D|o|u)" +"oU" "" "" "(D|o|u)" +"Ou" "" "" "(D|o|u)" +"ai" "" "" "(D|a|i)" +"Ai" "" "" "(D|a|i)" +"oi" "" "" "(D|o|i)" +"Oi" "" "" "(D|o|i)" +"ui" "" "" "(D|u|i)" +"Ui" "" "" "(D|u|i)" + +"e" "" "" "i" + +"E" "" "[fklmnprst]$" "i" +"E" "" "ts$" "i" +"E" "" "$" "i" +"E" "[DaoAOUiuQY]" "" "i" +"E" "" "[aoAOQY]" "i" +"E" "" "" "(Y|i)" + +"O" "" "$" "o" +"O" "" "[fklmnprst]$" "o" +"O" "" "ts$" "o" +"O" "[aoAOUeiuQY]" "" "o" +"O" "" "" "(o|Y)" + +"a" "" "" "(a|o)" + +"A" "" "$" "(a|o)" +"A" "" "[fklmnprst]$" "(a|o)" +"A" "" "ts$" "(a|o)" +"A" "[aoeOUiuQY]" "" "(a|o)" +"A" "" "" "(a|o|Y)" + +"U" "" "$" "u" +"U" "[DaoiuUQY]" "" "u" +"U" "" "[^k]$" "u" +"Uk" "[lr]" "$" "(uk|Qk)" +"Uk" "" "$" "uk" +"sUts" "" "$" "(suts|sQts)" +"Uts" "" "$" "uts" +"U" "" "" "(u|Q)" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_hebrew.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_hebrew.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_hebrew.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_hungarian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_hungarian.txt new file mode 100644 index 000000000000..bb950fb06354 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_hungarian.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include ash_approx_french \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_polish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_polish.txt new file mode 100644 index 000000000000..7f49817fe5f8 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_polish.txt @@ -0,0 +1,83 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"aiB" "" "[bp]" "(D|Dm)" +"oiB" "" "[bp]" "(D|Dm)" +"uiB" "" "[bp]" "(D|Dm)" +"eiB" "" "[bp]" "(D|Dm)" +"EiB" "" "[bp]" "(D|Dm)" +"iiB" "" "[bp]" "(D|Dm)" +"IiB" "" "[bp]" "(D|Dm)" + +"aiB" "" "[dgkstvz]" "(D|Dn)" +"oiB" "" "[dgkstvz]" "(D|Dn)" +"uiB" "" "[dgkstvz]" "(D|Dn)" +"eiB" "" "[dgkstvz]" "(D|Dn)" +"EiB" "" "[dgkstvz]" "(D|Dn)" +"iiB" "" "[dgkstvz]" "(D|Dn)" +"IiB" "" "[dgkstvz]" "(D|Dn)" + +"B" "" "[bp]" "(o|om|im)" +"B" "" "[dgkstvz]" "(o|on|in)" +"B" "" "" "o" + +"aiF" "" "[bp]" "(D|Dm)" +"oiF" "" "[bp]" "(D|Dm)" +"uiF" "" "[bp]" "(D|Dm)" +"eiF" "" "[bp]" "(D|Dm)" +"EiF" "" "[bp]" "(D|Dm)" +"iiF" "" "[bp]" "(D|Dm)" +"IiF" "" "[bp]" "(D|Dm)" + +"aiF" "" "[dgkstvz]" "(D|Dn)" +"oiF" "" "[dgkstvz]" "(D|Dn)" +"uiF" "" "[dgkstvz]" "(D|Dn)" +"eiF" "" "[dgkstvz]" "(D|Dn)" +"EiF" "" "[dgkstvz]" "(D|Dn)" +"iiF" "" "[dgkstvz]" "(D|Dn)" +"IiF" "" "[dgkstvz]" "(D|Dn)" + +"F" "" "[bp]" "(i|im|om)" +"F" "" "[dgkstvz]" "(i|in|on)" +"F" "" "" "i" + +"P" "" "" "(o|u)" + +"I" "" "$" "i" +"I" "" "[^k]$" "i" +"Ik" "[lr]" "$" "(ik|Qk)" +"Ik" "" "$" "ik" +"sIts" "" "$" "(sits|sQts)" +"Its" "" "$" "its" +"I" "[aeiAEBFIou]" "" "i" +"I" "" "" "(i|Q)" + +"au" "" "" "(D|a|u)" +"ou" "" "" "(D|o|u)" +"ai" "" "" "(D|a|i)" +"oi" "" "" "(D|o|i)" +"ui" "" "" "(D|u|i)" + +"a" "" "" "(a|o)" +"e" "" "" "i" + +"E" "" "[fklmnprst]$" "i" +"E" "" "ts$" "i" +"E" "" "$" "i" +"E" "[DaoiuQ]" "" "i" +"E" "" "[aoQ]" "i" +"E" "" "" "(Y|i)" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_romanian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_romanian.txt new file mode 100644 index 000000000000..295debf8eae9 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_romanian.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include ash_approx_polish \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_russian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_russian.txt new file mode 100644 index 000000000000..46d6a8c959c2 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_russian.txt @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"I" "" "$" "i" +"I" "" "[^k]$" "i" +"Ik" "[lr]" "$" "(ik|Qk)" +"Ik" "" "$" "ik" +"sIts" "" "$" "(sits|sQts)" +"Its" "" "$" "its" +"I" "[aeiEIou]" "" "i" +"I" "" "" "(i|Q)" + +"au" "" "" "(D|a|u)" +"ou" "" "" "(D|o|u)" +"ai" "" "" "(D|a|i)" +"oi" "" "" "(D|o|i)" +"ui" "" "" "(D|u|i)" + +"om" "" "[bp]" "(om|im)" +"on" "" "[dgkstvz]" "(on|in)" +"em" "" "[bp]" "(im|om)" +"en" "" "[dgkstvz]" "(in|on)" +"Em" "" "[bp]" "(im|Ym|om)" +"En" "" "[dgkstvz]" "(in|Yn|on)" + +"a" "" "" "(a|o)" +"e" "" "" "i" + +"E" "" "[fklmnprsStv]$" "i" +"E" "" "ts$" "i" +"E" "[DaoiuQ]" "" "i" +"E" "" "[aoQ]" "i" +"E" "" "" "(Y|i)" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_spanish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_spanish.txt new file mode 100644 index 000000000000..bb950fb06354 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_approx_spanish.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include ash_approx_french \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_any.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_any.txt new file mode 100644 index 000000000000..e6abc2d24060 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_any.txt @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// These rules are applied after the word has been transliterated into the phonetic alphabet +// These rules are substitution rules within the phonetic character space rather than mapping rules + +// format of each entry rule in the table +// (pattern, left context, right context, phonetic) +// where +// pattern is a sequence of characters that might appear after a word has been transliterated into phonetic alphabet +// left context is the context that precedes the pattern +// right context is the context that follows the pattern +// phonetic is the result that this rule generates +// +// note that both left context and right context can be regular expressions +// ex: left context of ^ would mean start of word +// right context of $ means end of word +// +// match occurs if all of the following are true: +// portion of word matches the pattern +// that portion satisfies the context + +// A, E, I, O, P, U should create variants, but a, e, i, o, u should not create any new variant +// Q = ü ; Y = ä = ö + + +"A" "" "" "a" +"B" "" "" "a" + +"E" "" "" "e" +"F" "" "" "e" + +"I" "" "" "i" +"O" "" "" "o" +"P" "" "" "o" +"U" "" "" "u" + +"J" "" "" "l" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_approx_common.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_approx_common.txt new file mode 100644 index 000000000000..0a8d12187370 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_approx_common.txt @@ -0,0 +1,82 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Ashkenazic + +"h" "" "$" "" +// VOICED - UNVOICED CONSONANTS +"b" "" "[fktSs]" "p" +"b" "" "p" "" +"b" "" "$" "p" +"p" "" "[gdZz]" "b" +"p" "" "b" "" + +"v" "" "[pktSs]" "f" +"v" "" "f" "" +"v" "" "$" "f" +"f" "" "[bgdZz]" "v" +"f" "" "v" "" + +"g" "" "[pftSs]" "k" +"g" "" "k" "" +"g" "" "$" "k" +"k" "" "[bdZz]" "g" +"k" "" "g" "" + +"d" "" "[pfkSs]" "t" +"d" "" "t" "" +"d" "" "$" "t" +"t" "" "[bgZz]" "d" +"t" "" "d" "" + +"s" "" "dZ" "" +"s" "" "tS" "" + +"z" "" "[pfkSt]" "s" +"z" "" "[sSzZ]" "" +"s" "" "[sSzZ]" "" +"Z" "" "[sSzZ]" "" +"S" "" "[sSzZ]" "" + +// SIMPLIFICATION OF CONSONANT CLUSTERS + +"jnm" "" "" "jm" + +// DOUBLE --> SINGLE + +"ji" "^" "" "i" +"jI" "^" "" "I" + +"a" "" "[aAB]" "" +"a" "[AB]" "" "" +"A" "" "A" "" +"B" "" "B" "" + +"b" "" "b" "" +"d" "" "d" "" +"f" "" "f" "" +"g" "" "g" "" +"k" "" "k" "" +"l" "" "l" "" +"m" "" "m" "" +"n" "" "n" "" +"p" "" "p" "" +"r" "" "r" "" +"t" "" "t" "" +"v" "" "v" "" +"z" "" "z" "" + \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_common.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_common.txt new file mode 100644 index 000000000000..7e6ff9531713 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_common.txt @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include ash_exact_approx_common + +"H" "" "" "h" + +// VOICED - UNVOICED CONSONANTS + +"s" "[^t]" "[bgZd]" "z" +"Z" "" "[pfkst]" "S" +"Z" "" "$" "S" +"S" "" "[bgzd]" "Z" +"z" "" "$" "s" + +"ji" "[aAoOeEiIuU]" "" "j" +"jI" "[aAoOeEiIuU]" "" "j" +"je" "[aAoOeEiIuU]" "" "j" +"jE" "[aAoOeEiIuU]" "" "j" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_cyrillic.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_cyrillic.txt new file mode 100644 index 000000000000..d309ead241d4 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_cyrillic.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include ash_exact_russian \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_english.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_english.txt new file mode 100644 index 000000000000..d309ead241d4 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_english.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include ash_exact_russian \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_french.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_french.txt new file mode 100644 index 000000000000..d309ead241d4 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_french.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include ash_exact_russian \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_german.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_german.txt new file mode 100644 index 000000000000..a60f8cc55009 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_german.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include ash_exact_any \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_hebrew.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_hebrew.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_hebrew.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_hungarian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_hungarian.txt new file mode 100644 index 000000000000..d309ead241d4 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_hungarian.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include ash_exact_russian \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_polish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_polish.txt new file mode 100644 index 000000000000..ba32ce7e4ed3 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_polish.txt @@ -0,0 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"B" "" "" "a" +"F" "" "" "e" +"P" "" "" "o" + +"E" "" "" "e" +"I" "" "" "i" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_romanian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_romanian.txt new file mode 100644 index 000000000000..d309ead241d4 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_romanian.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include ash_exact_russian \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_russian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_russian.txt new file mode 100644 index 000000000000..fc9f14d757ec --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_russian.txt @@ -0,0 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"E" "" "" "e" +"I "" "" "i" \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_spanish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_spanish.txt new file mode 100644 index 000000000000..d309ead241d4 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_exact_spanish.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include ash_exact_russian \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_hebrew_common.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_hebrew_common.txt new file mode 100644 index 000000000000..b1c6501e05a5 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_hebrew_common.txt @@ -0,0 +1,118 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include ash_exact_approx_common + +"ts" "" "" "C" // for not confusion Gutes [=guts] and Guts [=guc] +"tS" "" "" "C" // same reason +"S" "" "" "s" +"p" "" "" "f" +"b" "^" "" "b" +"b" "" "" "(b|v)" + +"ja" "" "" "i" +"jA" "" "" "i" +"jB" "" "" "i" +"je" "" "" "i" +"jE" "" "" "i" +"jF" "" "" "i" +"aj" "" "" "i" +"Aj" "" "" "i" +"Bj" "" "" "i" +"Fj" "" "" "i" +"I" "" "" "i" +"Q" "" "" "i" +"j" "" "" "i" + +"a" "^" "" "1" +"A" "^" "" "1" +"B" "^" "" "1" +"e" "^" "" "1" +"E" "^" "" "1" +"F" "^" "" "1" +"Y" "^" "" "1" + +"a" "" "$" "1" +"A" "" "$" "1" +"B" "" "$" "1" +"e" "" "$" "1" +"E" "" "$" "1" +"F" "" "$" "1" +"Y" "" "$" "1" + +"a" "" "" "" +"A" "" "" "" +"B" "" "" "" +"e" "" "" "" +"E" "" "" "" +"F" "" "" "" +"Y" "" "" "" + +"oj" "^" "" "(u|vi)" +"Oj" "^" "" "(u|vi)" +"uj" "^" "" "(u|vi)" +"Uj" "^" "" "(u|vi)" + +"oj" "" "" "u" +"Oj" "" "" "u" +"uj" "" "" "u" +"Uj" "" "" "u" + +"ou" "^" "" "(u|v|1)" +"o" "^" "" "(u|v|1)" +"O" "^" "" "(u|v|1)" +"U" "^" "" "(u|v|1)" +"u" "^" "" "(u|v|1)" + +"o" "" "$" "(u|1)" +"O" "" "$" "(u|1)" +"u" "" "$" "(u|1)" +"U" "" "$" "(u|1)" + +"ou" "" "" "u" +"o" "" "" "u" +"O" "" "" "u" +"U" "" "" "u" + +"VV" "" "" "u" // alef/ayin + vov from ruleshebrew +"V" "" "" "v" // tsvey-vov from ruleshebrew;; only Ashkenazic +"L" "^" "" "1" // alef/ayin from ruleshebrew +"L" "" "$" "1" // alef/ayin from ruleshebrew +"L" "" "" " " // alef/ayin from ruleshebrew +"WW" "^" "" "(vi|u)" // vav-yod from ruleshebrew +"WW" "" "" "u" // vav-yod from ruleshebrew +"W" "^" "" "(u|v)" // vav from ruleshebrew +"W" "" "" "u" // vav from ruleshebrew + + //"g" "" "" "(g|Z)" + //"z" "" "" "(z|Z)" + //"d" "" "" "(d|dZ)" + +"TB" "" "$" "(t|s)" // tav from ruleshebrew; only Ashkenazic +"TB" "" "" "t" // tav from ruleshebrew; only Ashkenazic +"T" "" "" "t" // tet from ruleshebrew + + //"k" "" "" "(k|x)" + //"x" "" "" "(k|x)" +"K" "" "" "k" // kof and initial kaf from ruleshebrew +"X" "" "" "x" // khet and final kaf from ruleshebrew + +"H" "^" "" "(x|1)" +"H" "" "$" "(x|1)" +"H" "" "" "(x|)" +"h" "^" "" "1" +"h" "" "" "" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_languages.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_languages.txt new file mode 100644 index 000000000000..8c84c51a2d79 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_languages.txt @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +any +cyrillic +english +french +german +hebrew +hungarian +polish +romanian +russian +spanish diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_any.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_any.txt new file mode 100644 index 000000000000..9960ada3b3fc --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_any.txt @@ -0,0 +1,332 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +//ASHKENAZIC + +// CONVERTING FEMININE TO MASCULINE +"yna" "" "$" "(in[russian]|ina)" +"ina" "" "$" "(in[russian]|ina)" +"liova" "" "$" "(lof[russian]|lef[russian]|lova)" +"lova" "" "$" "(lof[russian]|lef[russian]|lova)" +"ova" "" "$" "(of[russian]|ova)" +"eva" "" "$" "(ef[russian]|eva)" +"aia" "" "$" "(aja|i[russian])" +"aja" "" "$" "(aja|i[russian])" +"aya" "" "$" "(aja|i[russian])" + +"lowa" "" "$" "(lova|lof[polish]|l[polish]|el[polish])" +"kowa" "" "$" "(kova|kof[polish]|k[polish]|ek[polish])" +"owa" "" "$" "(ova|of[polish]|)" +"lowna" "" "$" "(lovna|levna|l[polish]|el[polish])" +"kowna" "" "$" "(kovna|k[polish]|ek[polish])" +"owna" "" "$" "(ovna|[polish])" +"lówna" "" "$" "(l|el[polish])" // polish +"kówna" "" "$" "(k|ek[polish])" // polish +"ówna" "" "$" "" // polish + +"a" "" "$" "(a|i[polish])" + +// CONSONANTS (integrated: German, Polish, Russian, Romanian and English) + +"rh" "^" "" "r" +"ssch" "" "" "S" +"chsch" "" "" "xS" +"tsch" "" "" "tS" + +"sch" "" "[ei]" "(sk[romanian]|S|StS[russian])" // german +"sch" "" "" "(S|StS[russian])" // german + +"ssh" "" "" "S" + +"sh" "" "[äöü]" "sh" // german +"sh" "" "[aeiou]" "(S[russian+english]|sh)" +"sh" "" "" "S" // russian+english + +"kh" "" "" "(x[russian+english]|kh)" + +"chs" "" "" "(ks[german]|xs|tSs[russian+english])" + + // French "ch" is currently disabled + //array("ch" "" "[ei]" "(x|tS|k[romanian]|S[french])" + //array("ch" "" "" "(x|tS[russian+english]|S[french])" + +"ch" "" "[ei]" "(x|k[romanian]|tS[russian+english])" +"ch" "" "" "(x|tS[russian+english])" + +"ck" "" "" "(k|tsk[polish])" + +"czy" "" "" "tSi" +"cze" "" "[bcdgkpstwzż]" "(tSe|tSF)" +"ciewicz" "" "" "(tsevitS|tSevitS)" +"siewicz" "" "" "(sevitS|SevitS)" +"ziewicz" "" "" "(zevitS|ZevitS)" +"riewicz" "" "" "rjevitS" +"diewicz" "" "" "djevitS" +"tiewicz" "" "" "tjevitS" +"iewicz" "" "" "evitS" +"ewicz" "" "" "evitS" +"owicz" "" "" "ovitS" +"icz" "" "" "itS" +"cz" "" "" "tS" // Polish + +"cia" "" "[bcdgkpstwzż]" "(tSB[polish]|tsB)" +"cia" "" "" "(tSa[$polish]|tsa)" +"cią" "" "[bp]" "(tSom[polish]|tsom)" +"cią" "" "" "(tSon[polish]|tson)" +"cię" "" "[bp]" "(tSem[polish]|tsem)" +"cię" "" "" "(tSen[polish]|tsen)" +"cie" "" "[bcdgkpstwzż]" "(tSF[polish]|tsF)" +"cie" "" "" "(tSe[polish]|tse)" +"cio" "" "" "(tSo[polish]|tso)" +"ciu" "" "" "(tSu[polish]|tsu)" + +"ci" "" "$" "(tsi[polish]|tSi[polish+romanian]|tS[romanian]|si)" +"ci" "" "" "(tsi[polish]|tSi[polish+romanian]|si)" +"ce" "" "[bcdgkpstwzż]" "(tsF[polish]|tSe[polish+romanian]|se)" +"ce" "" "" "(tSe[polish+romanian]|tse[polish]|se)" +"cy" "" "" "(si|tsi[polish])" + +"ssz" "" "" "S" // Polish +"sz" "" "" "S" // Polish; actually could also be Hungarian /s/, disabled here + +"ssp" "" "" "(Sp[german]|sp)" +"sp" "" "" "(Sp[german]|sp)" +"sst" "" "" "(St[german]|st)" +"st" "" "" "(St[german]|st)" +"ss" "" "" "s" + +"sia" "" "[bcdgkpstwzż]" "(SB[polish]|sB[polish]|sja)" +"sia" "" "" "(Sa[polish]|sja)" +"sią" "" "[bp]" "(Som[polish]|som)" +"sią" "" "" "(Son[polish]|son)" +"się" "" "[bp]" "(Sem[polish]|sem)" +"się" "" "" "(Sen[polish]|sen)" +"sie" "" "[bcdgkpstwzż]" "(SF[polish]|sF|zi[german])" +"sie" "" "" "(se|Se[polish]|zi[german])" +"sio" "" "" "(So[polish]|so)" +"siu" "" "" "(Su[polish]|sju)" +"si" "" "" "(Si[polish]|si|zi[german])" +"s" "" "[aeiouäöë]" "(s|z[german])" + +"gue" "" "" "ge" +"gui" "" "" "gi" +"guy" "" "" "gi" +"gh" "" "[ei]" "(g[romanian]|gh)" + +"gauz" "" "$" "haus" +"gaus" "" "$" "haus" +"gol'ts" "" "$" "holts" +"golts" "" "$" "holts" +"gol'tz" "" "$" "holts" +"goltz" "" "" "holts" +"gol'ts" "^" "" "holts" +"golts" "^" "" "holts" +"gol'tz" "^" "" "holts" +"goltz" "^" "" "holts" +"gendler" "" "$" "hendler" +"gejmer" "" "$" "hajmer" +"gejm" "" "$" "hajm" +"geymer" "" "$" "hajmer" +"geym" "" "$" "hajm" +"geimer" "" "$" "hajmer" +"geim" "" "$" "hajm" +"gof" "" "$" "hof" + +"ger" "" "$" "ger" +"gen" "" "$" "gen" +"gin" "" "$" "gin" + +"gie" "" "$" "(ge|gi[german]|ji[french])" +"gie" "" "" "ge" +"ge" "[yaeiou]" "" "(gE|xe[spanish]|dZe[english+romanian])" +"gi" "[yaeiou]" "" "(gI|xi[spanish]|dZi[english+romanian])" +"ge" "" "" "(gE|dZe[english+romanian]|hE[russian]|xe[spanish])" +"gi" "" "" "(gI|dZi[english+romanian]|hI[russian]|xi[spanish])" +"gy" "" "[aeouáéóúüöőű]" "(gi|dj[hungarian])" +"gy" "" "" "(gi|d[hungarian])" +"g" "[jyaeiou]" "[aouyei]" "g" +"g" "" "[aouei]" "(g|h[russian])" + +"ej" "" "" "(aj|eZ[french+romanian]|ex[spanish])" +"ej" "" "" "aj" + +"ly" "" "[au]" "l" +"li" "" "[au]" "l" +"lj" "" "[au]" "l" +"lio" "" "" "(lo|le[russian])" +"lyo" "" "" "(lo|le[russian])" +"ll" "" "" "(l|J[spanish])" + +"j" "" "[aoeiuy]" "(j|dZ[english]|x[spanish]|Z[french+romanian])" +"j" "" "" "(j|x[spanish])" + +"pf" "" "" "(pf|p|f)" +"ph" "" "" "(ph|f)" + +"qu" "" "" "(kv[german]|k)" + +"rze" "t" "" "(Se[polish]|re)" // polish +"rze" "" "" "(rze|rtsE[german]|Ze[polish]|re[polish]|rZe[polish])" +"rzy" "t" "" "(Si[polish]|ri)" // polish +"rzy" "" "" "(Zi[polish]|ri[polish]|rZi)" +"rz" "t" "" "(S[polish]|r)" // polish +"rz" "" "" "(rz|rts[german]|Z[polish]|r[polish]|rZ[polish])" // polish + +"tz" "" "$" "(ts|tS[english+german])" +"tz" "^" "" "(ts|tS[english+german])" +"tz" "" "" "(ts[english+german+russian]|tz)" + +"zh" "" "" "(Z|zh[polish]|tsh[german])" + +"zia" "" "[bcdgkpstwzż]" "(ZB[polish]|zB[polish]|zja)" +"zia" "" "" "(Za[polish]|zja)" +"zią" "" "[bp]" "(Zom[polish]|zom)" +"zią" "" "" "(Zon[polish]|zon)" +"zię" "" "[bp]" "(Zem[polish]|zem)" +"zię" "" "" "(Zen[polish]|zen)" +"zie" "" "[bcdgkpstwzż]" "(ZF[polish]|zF[polish]|ze|tsi[german])" +"zie" "" "" "(ze|Ze[polish]|tsi[german])" +"zio" "" "" "(Zo[polish]|zo)" +"ziu" "" "" "(Zu[polish]|zju)" +"zi" "" "" "(Zi[polish]|zi|tsi[german])" + +"thal" "" "$" "tal" +"th" "^" "" "t" +"th" "" "[aeiou]" "(t[german]|th)" +"th" "" "" "t" // german +"vogel" "" "" "(vogel|fogel[german])" +"v" "^" "" "(v|f[german])" + +"h" "[aeiouyäöü]" "" "" //german +"h" "" "" "(h|x[".(romanian+polish)."])" +"h" "^" "" "(h|H[".(english+german)."])" // H can be exact "h" or approximate "kh" + + // VOWELS +"yi" "^" "" "i" + + //"e" "" "$" "(e|)" // French & English rule disabled except for final -ine +"e" "in" "$" "(e|[french])" + +"ii" "" "$" "i" // russian +"iy" "" "$" "i" // russian +"yy" "" "$" "i" // russian +"yi" "" "$" "i" // russian +"yj" "" "$" "i" // russian +"ij" "" "$" "i" // russian + +"aue" "" "" "aue" +"oue" "" "" "oue" + +"au" "" "" "(au|o[french])" +"ou" "" "" "(ou|u[french])" + +"ue" "" "" "(Q|uje[russian])" +"ae" "" "" "(Y[german]|aje[russian]|ae)" +"oe" "" "" "(Y[german]|oje[russian]|oe)" +"ee" "" "" "(i[english]|aje[russian]|e)" + +"ei" "" "" "aj" +"ey" "" "" "aj" +"eu" "" "" "(aj[german]|oj[german]|eu)" + +"i" "[aou]" "" "j" +"y" "[aou]" "" "j" + +"ie" "" "[bcdgkpstwzż]" "(i[german]|e[polish]|ije[russian]|je)" +"ie" "" "" "(i[german]|e[polish]|ije[russian]|je)" +"ye" "" "" "(je|ije[russian])" + +"i" "" "[au]" "j" +"y" "" "[au]" "j" +"io" "" "" "(jo|e[russian])" +"yo" "" "" "(jo|e[russian])" + +"ea" "" "" "(ea|ja[romanian])" +"e" "^" "" "(e|je[russian])" +"oo" "" "" "(u[english]|o)" +"uu" "" "" "u" + +// LANGUAGE SPECIFIC CHARACTERS +"ć" "" "" "(tS[polish]|ts)" // polish +"ł" "" "" "l" // polish +"ń" "" "" "n" // polish +"ñ" "" "" "(n|nj[spanish])" +"ś" "" "" "(S[polish]|s)" // polish +"ş" "" "" "S" // romanian +"ţ" "" "" "ts" // romanian +"ż" "" "" "Z" // polish +"ź" "" "" "(Z[polish]|z)" // polish + +"où" "" "" "u" // french + +"ą" "" "[bp]" "om" // polish +"ą" "" "" "on" // polish +"ä" "" "" "Y" // german +"á" "" "" "a" // hungarian +"ă" "" "" "(e[romanian]|a)" //romanian +"à" "" "" "a" // french +"â" "" "" "a" //french+romanian +"é" "" "" "e" +"è" "" "" "e" // french +"ê" "" "" "e" // french +"ę" "" "[bp]" "em" // polish +"ę" "" "" "en" // polish +"í" "" "" "i" +"î" "" "" "i" +"ö" "" "" "Y" +"ő" "" "" "Y" // hungarian +"ó" "" "" "(u[polish]|o)" +"ű" "" "" "Q" +"ü" "" "" "Q" +"ú" "" "" "u" +"ű" "" "" "Q" // hungarian + +"ß" "" "" "s" // german +"'" "" "" "" +"\"" "" "" "" + +"a" "" "[bcdgkpstwzż]" "(A|B[polish])" +"e" "" "[bcdgkpstwzż]" "(E|F[polish])" +"o" "" "[bcćdgklłmnńrsśtwzźż]" "(O|P[polish])" + + // LATIN ALPHABET +"a" "" "" "A" +"b" "" "" "b" +"c" "" "" "(k|ts[polish])" +"d" "" "" "d" +"e" "" "" "E" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "I" +"j" "" "" "j" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "O" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "U" +"v" "" "" "v" +"w" "" "" "v" // English disabled +"x" "" "" "ks" +"y" "" "" "i" +"z" "" "" "(ts[german]|z)" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_cyrillic.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_cyrillic.txt new file mode 100644 index 000000000000..d2625877ef6c --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_cyrillic.txt @@ -0,0 +1,100 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"ця" "" "" "tsa" +"цю" "" "" "tsu" +"циа" "" "" "tsa" +"цие" "" "" "tse" +"цио" "" "" "tso" +"циу" "" "" "tsu" +"сие" "" "" "se" +"сио" "" "" "so" +"зие" "" "" "ze" +"зио" "" "" "zo" + +"гауз" "" "$" "haus" +"гаус" "" "$" "haus" +"гольц" "" "$" "holts" +"геймер" "" "$" "hajmer" +"гейм" "" "$" "hajm" +"гоф" "" "$" "hof" +"гер" "" "$" "ger" +"ген" "" "$" "gen" +"гин" "" "$" "gin" +"г" "(й|ё|я|ю|ы|а|е|о|и|у)" "(а|е|о|и|у)" "g" +"г" "" "(а|е|о|и|у)" "(g|h)" + +"ля" "" "" "la" +"лю" "" "" "lu" +"лё" "" "" "(le|lo)" +"лио" "" "" "(le|lo)" +"ле" "" "" "(lE|lo)" + +"ийе" "" "" "je" +"ие" "" "" "je" +"ыйе" "" "" "je" +"ые" "" "" "je" +"ий" "" "(а|о|у)" "j" +"ый" "" "(а|о|у)" "j" + +"ий" "" "$" "i" +"ый" "" "$" "i" + +"ё" "" "" "(e|jo)" + +"ей" "^" "" "(jaj|aj)" +"е" "(а|е|о|у)" "" "je" +"е" "^" "" "je" +"эй" "" "" "aj" +"ей" "" "" "aj" + +"ауе" "" "" "aue" +"ауэ" "" "" "aue" + +"а" "" "" "a" +"б" "" "" "b" +"в" "" "" "v" +"г" "" "" "g" +"д" "" "" "d" +"е" "" "" "E" +"ж" "" "" "Z" +"з" "" "" "z" +"и" "" "" "I" +"й" "" "" "j" +"к" "" "" "k" +"л" "" "" "l" +"м" "" "" "m" +"н" "" "" "n" +"о" "" "" "o" +"п" "" "" "p" +"р" "" "" "r" +"с" "" "с" "" +"с" "" "" "s" +"т" "" "" "t" +"у" "" "" "u" +"ф" "" "" "f" +"х" "" "" "x" +"ц" "" "" "ts" +"ч" "" "" "tS" +"ш" "" "" "S" +"щ" "" "" "StS" +"ъ" "" "" "" +"ы" "" "" "I" +"ь" "" "" "" +"э" "" "" "E" +"ю" "" "" "ju" +"я" "" "" "ja" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_english.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_english.txt new file mode 100644 index 000000000000..f84e53f6ab30 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_english.txt @@ -0,0 +1,107 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// CONSONANTS +"tch" "" "" "tS" +"ch" "" "" "(tS|x)" +"ck" "" "" "k" +"cc" "" "[iey]" "ks" // success, accent +"c" "" "c" "" +"c" "" "[iey]" "s" // circle +"c" "" "" "k" // candy +"gh" "^" "" "g" // ghost +"gh" "" "" "(g|f|w)" // burgh | tough | bough +"gn" "" "" "(gn|n)" +"g" "" "[iey]" "(g|dZ)" // get, gem, giant, gigabyte +// "th" "" "" "(6|8|t)" +"th" "" "" "t" +"kh" "" "" "x" +"ph" "" "" "f" +"sch" "" "" "(S|sk)" +"sh" "" "" "S" +"who" "^" "" "hu" +"wh" "^" "" "w" + +"h" "" "$" "" // hard to find an example that isn't in a name +"h" "" "[^aeiou]" "" // hard to find an example that isn't in a name +"h" "^" "" "H" +"h" "" "" "h" + +"j" "" "" "dZ" +"kn" "^" "" "n" // knight +"mb" "" "$" "m" +"ng" "" "$" "(N|ng)" +"pn" "^" "" "(pn|n)" +"ps" "^" "" "(ps|s)" +"qu" "" "" "kw" +"q" "" "" "k" +"tia" "" "" "(So|Sa)" +"tio" "" "" "So" +"wr" "^" "" "r" +"w" "" "" "(w|v)" // the variant "v" is for spellings coming from German/Polish +"x" "^" "" "z" +"x" "" "" "ks" + +// VOWELS +"y" "^" "" "j" +"y" "^" "[aeiouy]" "j" +"yi" "^" "" "i" +"aue" "" "" "aue" +"oue" "" "" "(aue|oue)" +"ai" "" "" "(aj|e)" // rain | said +"ay" "" "" "aj" +"a" "" "[^aeiou]e" "aj" // plane (actually "ej") +"a" "" "" "(e|o|a)" // hat | call | part +"ei" "" "" "(aj|i)" // weigh | receive +"ey" "" "" "(aj|i)" // hey | barley +"ear" "" "" "ia" // tear +"ea" "" "" "(i|e)" // reason | treasure +"ee" "" "" "i" // between +"e" "" "[^aeiou]e" "i" // meter +"e" "" "$" "(|E)" // blame, badge +"e" "" "" "E" // bed +"ie" "" "" "i" // believe +"i" "" "[^aeiou]e" "aj" // five +"i" "" "" "I" // hit -- Morse disagrees, feels it should go to I +"oa" "" "" "ou" // toad +"oi" "" "" "oj" // join +"oo" "" "" "u" // food +"ou" "" "" "(u|ou)" // through | tough | could +"oy" "" "" "oj" // boy +"o" "" "[^aeiou]e" "ou" // rode +"o" "" "" "(o|a)" // hot -- Morse disagrees, feels it should go to 9 +"u" "" "[^aeiou]e" "(ju|u)" // cute | flute +"u" "" "r" "(e|u)" // turn -- Morse disagrees, feels it should go to E +"u" "" "" "(u|a)" // put +"y" "" "" "i" + +// TRIVIAL +"b" "" "" "b" +"d" "" "" "d" +"f" "" "" "f" +"g" "" "" "g" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"p" "" "" "p" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"v" "" "" "v" +"z" "" "" "z" + diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_french.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_french.txt new file mode 100644 index 000000000000..668645f3ff0b --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_french.txt @@ -0,0 +1,91 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Ashkenazic + +// CONSONANTS +"kh" "" "" "x" // foreign +"ph" "" "" "f" + +"ç" "" "" "s" +"x" "" "" "ks" +"ch" "" "" "S" +"c" "" "[eiyéèê]" "s" +"c" "" "" "k" +"gn" "" "" "(n|gn)" +"g" "" "[eiy]" "Z" +"gue" "" "$" "k" +"gu" "" "[eiy]" "g" + //array("aill" "" "e" "aj" // non Jewish + //array("ll" "" "e" "(l|j)" // non Jewish +"que" "" "$" "k" +"qu" "" "" "k" +"q" "" "" "k" +"s" "[aeiouyéèê]" "[aeiouyéèê]" "z" +"h" "[bdgt]" "" "" // translit from Arabic +"h" "" "$" "" // foreign +"j" "" "" "Z" +"w" "" "" "v" +"ouh" "" "[aioe]" "(v|uh)" +"ou" "" "[aeio]" "v" +"uo" "" "" "(vo|o)" +"u" "" "[aeio]" "v" + +// VOWELS +"aue" "" "" "aue" +"eau" "" "" "o" + //array("au" "" "" "(o|au)" // non Jewish +"ai" "" "" "aj" // [e] is non Jewish +"ay" "" "" "aj" // [e] is non Jewish +"é" "" "" "e" +"ê" "" "" "e" +"è" "" "" "e" +"à" "" "" "a" +"â" "" "" "a" +"où" "" "" "u" +"ou" "" "" "u" +"oi" "" "" "oj" // [ua] is non Jewish +"ei" "" "" "aj" // [e] is non Jewish +"ey" "" "" "aj" // [e] non Jewish + //array("eu" "" "" "(e|o)" // non Jewish +"y" "[ou]" "" "j" +"e" "" "$" "(e|)" +"i" "" "[aou]" "j" +"y" "" "[aoeu]" "j" +"y" "" "" "i" + + // TRIVIAL +"a" "" "" "a" +"b" "" "" "b" +"d" "" "" "d" +"e" "" "" "E" // only Ashkenazic +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "I" // only Ashkenazic +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_german.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_german.txt new file mode 100644 index 000000000000..72eef9df02dc --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_german.txt @@ -0,0 +1,128 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Ashkenazic + +// CONSONANTS +"ziu" "" "" "tsu" +"zia" "" "" "tsa" +"zio" "" "" "tso" + +"ssch" "" "" "S" +"chsch" "" "" "xS" +"ewitsch" "" "$" "evitS" +"owitsch" "" "$" "ovitS" +"evitsch" "" "$" "evitS" +"ovitsch" "" "$" "ovitS" +"witsch" "" "$" "vitS" +"vitsch" "" "$" "vitS" +"sch" "" "" "S" + +"chs" "" "" "ks" +"ch" "" "" "x" +"ck" "" "" "k" +"c" "" "[eiy]" "ts" + +"sp" "^" "" "Sp" +"st" "^" "" "St" +"ssp" "" "" "(Sp|sp)" +"sp" "" "" "(Sp|sp)" +"sst" "" "" "(St|st)" +"st" "" "" "(St|st)" +"pf" "" "" "(pf|p|f)" +"ph" "" "" "(ph|f)" +"qu" "" "" "kv" + +"ewitz" "" "$" "(evits|evitS)" +"ewiz" "" "$" "(evits|evitS)" +"evitz" "" "$" "(evits|evitS)" +"eviz" "" "$" "(evits|evitS)" +"owitz" "" "$" "(ovits|ovitS)" +"owiz" "" "$" "(ovits|ovitS)" +"ovitz" "" "$" "(ovits|ovitS)" +"oviz" "" "$" "(ovits|ovitS)" +"witz" "" "$" "(vits|vitS)" +"wiz" "" "$" "(vits|vitS)" +"vitz" "" "$" "(vits|vitS)" +"viz" "" "$" "(vits|vitS)" +"tz" "" "" "ts" + +"thal" "" "$" "tal" +"th" "^" "" "t" +"th" "" "[äöüaeiou]" "(t|th)" +"th" "" "" "t" +"rh" "^" "" "r" +"h" "[aeiouyäöü]" "" "" +"h" "^" "" "H" + +"ss" "" "" "s" +"s" "" "[äöüaeiouy]" "(z|s)" +"s" "[aeiouyäöüj]" "[aeiouyäöü]" "z" +"ß" "" "" "s" + + // VOWELS +"ij" "" "$" "i" +"aue" "" "" "aue" +"ue" "" "" "Q" +"ae" "" "" "Y" +"oe" "" "" "Y" +"ü" "" "" "Q" +"ä" "" "" "Y" +"ö" "" "" "Y" +"ei" "" "" "aj" +"ey" "" "" "aj" +"eu" "" "" "(aj|oj)" +"i" "[aou]" "" "j" +"y" "[aou]" "" "j" +"ie" "" "" "I" +"i" "" "[aou]" "j" +"y" "" "[aoeu]" "j" + + // FOREIGN LETTERs +"ñ" "" "" "n" +"ã" "" "" "a" +"ő" "" "" "o" +"ű" "" "" "u" +"ç" "" "" "s" + + // ALPHABET +"a" "" "" "A" +"b" "" "" "b" +"c" "" "" "k" +"d" "" "" "d" +"e" "" "" "E" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "I" +"j" "" "" "j" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "O" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "U" +"v" "" "" "(f|v)" +"w" "" "" "v" +"x" "" "" "ks" +"y" "" "" "i" +"z" "" "" "ts" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_hebrew.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_hebrew.txt new file mode 100644 index 000000000000..4c5950386edd --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_hebrew.txt @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Ashkenazic + +"אי" "" "" "i" +"עי" "" "" "i" +"עו" "" "" "VV" +"או" "" "" "VV" + +"ג׳" "" "" "Z" +"ד׳" "" "" "dZ" + +"א" "" "" "L" +"ב" "" "" "b" +"ג" "" "" "g" +"ד" "" "" "d" + +"ה" "^" "" "1" +"ה" "" "$" "1" +"ה" "" "" "" + +"וו" "" "" "V" +"וי" "" "" "WW" +"ו" "" "" "W" +"ז" "" "" "z" +"ח" "" "" "X" +"ט" "" "" "T" +"יי" "" "" "i" +"י" "" "" "i" +"ך" "" "" "X" +"כ" "^" "" "K" +"כ" "" "" "k" +"ל" "" "" "l" +"ם" "" "" "m" +"מ" "" "" "m" +"ן" "" "" "n" +"נ" "" "" "n" +"ס" "" "" "s" +"ע" "" "" "L" +"ף" "" "" "f" +"פ" "" "" "f" +"ץ" "" "" "C" +"צ" "" "" "C" +"ק" "" "" "K" +"ר" "" "" "r" +"ש" "" "" "s" +"ת" "" "" "TB" // only Ashkenazic diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_hungarian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_hungarian.txt new file mode 100644 index 000000000000..1e6f047c80ef --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_hungarian.txt @@ -0,0 +1,84 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// ASHKENAZIC + +// CONSONANTS +"sz" "" "" "s" +"zs" "" "" "Z" +"cs" "" "" "tS" + +"ay" "" "" "(oj|aj)" +"ai" "" "" "(oj|aj)" +"aj" "" "" "(oj|aj)" + +"ei" "" "" "aj" // German element +"ey" "" "" "aj" // German element + +"y" "[áo]" "" "j" +"i" "[áo]" "" "j" +"ee" "" "" "(aj|e)" // actually ej +"ely" "" "" "(aj|eli)" // actually ej +"ly" "" "" "(j|li)" +"gy" "" "[aeouáéóúüöőű]" "dj" +"gy" "" "" "(d|gi)" +"ny" "" "[aeouáéóúüöőű]" "nj" +"ny" "" "" "(n|ni)" +"ty" "" "[aeouáéóúüöőű]" "tj" +"ty" "" "" "(t|ti)" + +"qu" "" "" "(ku|kv)" +"h" "" "$" "" + +// VOWELS +"á" "" "" "a" +"é" "" "" "e" +"í" "" "" "i" +"ó" "" "" "o" +"ö" "" "" "Y" +"ő" "" "" "Y" +"ú" "" "" "u" +"ü" "" "" "Q" +"ű" "" "" "Q" + +// LATIN ALPHABET +"a" "" "" "a" +"b" "" "" "b" +"c" "" "" "ts" +"d" "" "" "d" +"e" "" "" "E" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "I" +"j" "" "" "j" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "(S|s)" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"w" "" "" "v" +"x" "" "" "ks" +"y" "" "" "i" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_polish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_polish.txt new file mode 100644 index 000000000000..59a87dd76188 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_polish.txt @@ -0,0 +1,185 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Ashkenazic + +// CONVERTING FEMININE TO MASCULINE +"ska" "" "$" "ski" +"cka" "" "$" "tski" +"lowa" "" "$" "(lova|lof|l|el)" +"kowa" "" "$" "(kova|kof|k|ek)" +"owa" "" "$" "(ova|of|)" +"lowna" "" "$" "(lovna|levna|l|el)" +"kowna" "" "$" "(kovna|k|ek)" +"owna" "" "$" "(ovna|)" +"lówna" "" "$" "(l|el)" +"kówna" "" "$" "(k|ek)" +"ówna" "" "$" "" +"a" "" "$" "(a|i)" + + // CONSONANTS +"czy" "" "" "tSi" +"cze" "" "[bcdgkpstwzż]" "(tSe|tSF)" +"ciewicz" "" "" "(tsevitS|tSevitS)" +"siewicz" "" "" "(sevitS|SevitS)" +"ziewicz" "" "" "(zevitS|ZevitS)" +"riewicz" "" "" "rjevitS" +"diewicz" "" "" "djevitS" +"tiewicz" "" "" "tjevitS" +"iewicz" "" "" "evitS" +"ewicz" "" "" "evitS" +"owicz" "" "" "ovitS" +"icz" "" "" "itS" +"cz" "" "" "tS" +"ch" "" "" "x" + +"cia" "" "[bcdgkpstwzż]" "(tSB|tsB)" +"cia" "" "" "(tSa|tsa)" +"cią" "" "[bp]" "(tSom|tsom)" +"cią" "" "" "(tSon|tson)" +"cię" "" "[bp]" "(tSem|tsem)" +"cię" "" "" "(tSen|tsen)" +"cie" "" "[bcdgkpstwzż]" "(tSF|tsF)" +"cie" "" "" "(tSe|tse)" +"cio" "" "" "(tSo|tso)" +"ciu" "" "" "(tSu|tsu)" +"ci" "" "" "(tSi|tsI)" +"ć" "" "" "(tS|ts)" + +"ssz" "" "" "S" +"sz" "" "" "S" +"sia" "" "[bcdgkpstwzż]" "(SB|sB|sja)" +"sia" "" "" "(Sa|sja)" +"sią" "" "[bp]" "(Som|som)" +"sią" "" "" "(Son|son)" +"się" "" "[bp]" "(Sem|sem)" +"się" "" "" "(Sen|sen)" +"sie" "" "[bcdgkpstwzż]" "(SF|sF|se)" +"sie" "" "" "(Se|se)" +"sio" "" "" "(So|so)" +"siu" "" "" "(Su|sju)" +"si" "" "" "(Si|sI)" +"ś" "" "" "(S|s)" + +"zia" "" "[bcdgkpstwzż]" "(ZB|zB|zja)" +"zia" "" "" "(Za|zja)" +"zią" "" "[bp]" "(Zom|zom)" +"zią" "" "" "(Zon|zon)" +"zię" "" "[bp]" "(Zem|zem)" +"zię" "" "" "(Zen|zen)" +"zie" "" "[bcdgkpstwzż]" "(ZF|zF)" +"zie" "" "" "(Ze|ze)" +"zio" "" "" "(Zo|zo)" +"ziu" "" "" "(Zu|zju)" +"zi" "" "" "(Zi|zI)" + +"że" "" "[bcdgkpstwzż]" "(Ze|ZF)" +"że" "" "[bcdgkpstwzż]" "(Ze|ZF|ze|zF)" +"że" "" "" "Ze" +"źe" "" "" "(Ze|ze)" +"ży" "" "" "Zi" +"źi" "" "" "(Zi|zi)" +"ż" "" "" "Z" +"ź" "" "" "(Z|z)" + +"rze" "t" "" "(Se|re)" +"rze" "" "" "(Ze|re|rZe)" +"rzy" "t" "" "(Si|ri)" +"rzy" "" "" "(Zi|ri|rZi)" +"rz" "t" "" "(S|r)" +"rz" "" "" "(Z|r|rZ)" + +"lio" "" "" "(lo|le)" +"ł" "" "" "l" +"ń" "" "" "n" +"qu" "" "" "k" +"s" "" "s" "" + + // VOWELS +"ó" "" "" "(u|o)" +"ą" "" "[bp]" "om" +"ę" "" "[bp]" "em" +"ą" "" "" "on" +"ę" "" "" "en" + +"ije" "" "" "je" +"yje" "" "" "je" +"iie" "" "" "je" +"yie" "" "" "je" +"iye" "" "" "je" +"yye" "" "" "je" + +"ij" "" "[aou]" "j" +"yj" "" "[aou]" "j" +"ii" "" "[aou]" "j" +"yi" "" "[aou]" "j" +"iy" "" "[aou]" "j" +"yy" "" "[aou]" "j" + +"rie" "" "" "rje" +"die" "" "" "dje" +"tie" "" "" "tje" +"ie" "" "[bcdgkpstwzż]" "F" +"ie" "" "" "e" + +"aue" "" "" "aue" +"au" "" "" "au" + +"ei" "" "" "aj" +"ey" "" "" "aj" +"ej" "" "" "aj" + +"ai" "" "" "aj" +"ay" "" "" "aj" +"aj" "" "" "aj" + +"i" "[ou]" "" "j" +"y" "[ou]" "" "j" +"i" "" "[aou]" "j" +"y" "" "[aeou]" "j" + +"a" "" "[bcdgkpstwzż]" "B" +"e" "" "[bcdgkpstwzż]" "(E|F)" +"o" "" "[bcćdgklłmnńrsśtwzźż]" "P" + +// ALPHABET +"a" "" "" "a" +"b" "" "" "b" +"c" "" "" "ts" +"d" "" "" "d" +"e" "" "" "E" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "(h|x)" +"i" "" "" "I" +"j" "" "" "j" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"w" "" "" "v" +"x" "" "" "ks" +"y" "" "" "I" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_romanian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_romanian.txt new file mode 100644 index 000000000000..f53e26255511 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_romanian.txt @@ -0,0 +1,66 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"j" "" "" "Z" + +"ce" "" "" "tSe" +"ci" "" "" "(tSi|tS)" +"ch" "" "[ei]" "k" +"ch" "" "" "x" // foreign +"c" "" "" "k" + +"gi" "" "" "(dZi|dZ)" +"g" "" "[ei]" "dZ" +"gh" "" "" "g" + +"ei" "" "" "aj" +"i" "[aou]" "" "j" +"i" "" "[aeou]" "j" +"ţ" "" "" "ts" +"ş" "" "" "S" +"h" "" "" "(x|h)" + +"qu" "" "" "k" +"q" "" "" "k" +"w" "" "" "v" +"x" "" "" "ks" +"y" "" "" "i" + +"î" "" "" "i" +"ea" "" "" "ja" +"ă" "" "" "(e|a)" +"aue" "" "" "aue" + +"a" "" "" "a" +"b" "" "" "b" +"d" "" "" "d" +"e" "" "" "E" +"f" "" "" "f" +"g" "" "" "g" +"i" "" "" "I" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_russian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_russian.txt new file mode 100644 index 000000000000..817b2c398f40 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_russian.txt @@ -0,0 +1,164 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +// CONVERTING FEMININE TO MASCULINE +"yna" "" "$" "(in|ina)" +"ina" "" "$" "(in|ina)" +"liova" "" "$" "(lof|lef)" +"lova" "" "$" "(lof|lef|lova)" +"ova" "" "$" "(of|ova)" +"eva" "" "$" "(ef|ova)" +"aia" "" "$" "(aja|i)" +"aja" "" "$" "(aja|i)" +"aya" "" "$" "(aja|i)" + + //SPECIFIC CONSONANTS +"tsya" "" "" "tsa" +"tsyu" "" "" "tsu" +"tsia" "" "" "tsa" +"tsie" "" "" "tse" +"tsio" "" "" "tso" +"tsye" "" "" "tse" +"tsyo" "" "" "tso" +"tsiu" "" "" "tsu" +"sie" "" "" "se" +"sio" "" "" "so" +"zie" "" "" "ze" +"zio" "" "" "zo" +"sye" "" "" "se" +"syo" "" "" "so" +"zye" "" "" "ze" +"zyo" "" "" "zo" + +"gauz" "" "$" "haus" +"gaus" "" "$" "haus" +"gol'ts" "" "$" "holts" +"golts" "" "$" "holts" +"gol'tz" "" "$" "holts" +"goltz" "" "$" "holts" +"gejmer" "" "$" "hajmer" +"gejm" "" "$" "hajm" +"geimer" "" "$" "hajmer" +"geim" "" "$" "hajm" +"geymer" "" "$" "hajmer" +"geym" "" "$" "hajm" +"gendler" "" "$" "hendler" +"gof" "" "$" "hof" +"gojf" "" "$" "hojf" +"goyf" "" "$" "hojf" +"goif" "" "$" "hojf" +"ger" "" "$" "ger" +"gen" "" "$" "gen" +"gin" "" "$" "gin" +"gg" "" "" "g" +"g" "[jaeoiuy]" "[aeoiu]" "g" +"g" "" "[aeoiu]" "(g|h)" + +"kh" "" "" "x" +"ch" "" "" "(tS|x)" // in DJSRE the rule is simpler:"ch" "" "" "tS"); +"sch" "" "" "(StS|S)" +"ssh" "" "" "S" +"sh" "" "" "S" +"zh" "" "" "Z" +"tz" "" "$" "ts" // not in DJSRE +"tz" "" "" "(ts|tz)" // not in DJSRE +"c" "" "[iey]" "s" // not in DJSRE +"c" "" "" "k" // not in DJSRE +"qu" "" "" "(kv|k)" // not in DJSRE +"q" "" "" "k" // not in DJSRE +"s" "" "s" "" + +"w" "" "" "v" // not in DJSRE +"x" "" "" "ks" // not in DJSRE + + //SPECIFIC VOWELS +"lya" "" "" "la" +"lyu" "" "" "lu" +"lia" "" "" "la" // not in DJSRE +"liu" "" "" "lu" // not in DJSRE +"lja" "" "" "la" // not in DJSRE +"lju" "" "" "lu" // not in DJSRE +"le" "" "" "(lo|lE)" //not in DJSRE +"lyo" "" "" "(lo|le)" //not in DJSRE +"lio" "" "" "(lo|le)" + +"ije" "" "" "je" +"ie" "" "" "je" +"iye" "" "" "je" +"iie" "" "" "je" +"yje" "" "" "je" +"ye" "" "" "je" +"yye" "" "" "je" +"yie" "" "" "je" + +"ij" "" "[aou]" "j" +"iy" "" "[aou]" "j" +"ii" "" "[aou]" "j" +"yj" "" "[aou]" "j" +"yy" "" "[aou]" "j" +"yi" "" "[aou]" "j" + +"io" "" "" "(jo|e)" +"i" "" "[au]" "j" +"i" "[aou]" "" "j" // not in DJSRE +"ei" "" "" "aj" // not in DJSRE +"ey" "" "" "aj" // not in DJSRE +"ej" "" "" "aj" +"yo" "" "" "(jo|e)" //not in DJSRE +"y" "" "[au]" "j" +"y" "[aiou]" "" "j" // not in DJSRE + +"ii" "" "$" "i" // not in DJSRE +"iy" "" "$" "i" // not in DJSRE +"yy" "" "$" "i" // not in DJSRE +"yi" "" "$" "i" // not in DJSRE +"yj" "" "$" "i" +"ij" "" "$" "i" + +"e" "^" "" "(je|E)" // in DJSRE the rule is simpler:"e" "^" "" "je"); +"ee" "" "" "(aje|i)" // in DJSRE the rule is simpler:"ee" "" "" "(eje|aje)"); +"e" "[aou]" "" "je" +"y" "" "" "I" +"oo" "" "" "(oo|u)" // not in DJSRE +"'" "" "" "" +"\"" "" "" "" + +"aue" "" "" "aue" + +// TRIVIAL +"a" "" "" "a" +"b" "" "" "b" +"d" "" "" "d" +"e" "" "" "E" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" // not in DJSRE +"i" "" "" "I" +"j" "" "" "j" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_spanish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_spanish.txt new file mode 100644 index 000000000000..03dc04ae3573 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/ash_rules_spanish.txt @@ -0,0 +1,77 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Ashkenazic = Argentina + +// CONSONANTS +"ñ" "" "" "(n|nj)" + +"ch" "" "" "(tS|dZ)" // dZ is typical for Argentina +"h" "[bdgt]" "" "" // translit. from Arabic +"h" "" "$" "" // foreign + +"j" "" "" "x" +"x" "" "" "ks" +"ll" "" "" "(l|Z)" // Z is typical for Argentina, only Ashkenazic +"w" "" "" "v" // foreign words + +"v" "" "" "(b|v)" +"b" "" "" "(b|v)" +"m" "" "[bpvf]" "(m|n)" + +"c" "" "[ei]" "s" +"c" "" "" "k" + +"z" "" "" "(z|s)" // as "c" befoire "e" or "i", in Spain it is like unvoiced English "th" + +"gu" "" "[ei]" "(g|gv)" // "gv" because "u" can actually be "ü" +"g" "" "[ei]" "(x|g)" // "g" only for foreign words + +"qu" "" "" "k" +"q" "" "" "k" + +"uo" "" "" "(vo|o)" +"u" "" "[aei]" "v" + +"y" "" "" "(i|j|S|Z)" // S or Z are peculiar to South America; only Ashkenazic + + // VOWELS +"ü" "" "" "v" +"á" "" "" "a" +"é" "" "" "e" +"í" "" "" "i" +"ó" "" "" "o" +"ú" "" "" "u" + + // TRIVIAL +"a" "" "" "a" +"d" "" "" "d" +"e" "" "" "E" // Only Ashkenazic +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "I" // Only Ashkenazic +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_any.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_any.txt new file mode 100644 index 000000000000..6627aacdb074 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_any.txt @@ -0,0 +1,124 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// GENERIC +// A, E, I, O, P, U should create variants, but a, e, i, o, u should not create any new variant +// Q = ü ; Y = ä = ö +// EE = final "e" (english or french) + +// VOWELS + // "ALL" DIPHTHONGS are interchangeable BETWEEN THEM and with monophthongs of which they are composed ("D" means "diphthong") + // {a,o} are totally interchangeable if non-stressed; in German "a/o" can actually be from "ä/ö" (that are equivalent to "e") + // {i,e} are interchangeable if non-stressed, while in German "u" can actually be from "ü" (that is equivalent to "i") + +"mb" "" "" "(mb|b[greeklatin])" +"mp" "" "" "(mp|b[greeklatin])" +"ng" "" "" "(ng|g[greeklatin])" + +"B" "" "" "(b|v[spanish])" +"V" "" "" "(v|b[spanish])" + + // French word-final and word-part-final letters +"t" "" "$" "(t|[french])" +"g" "n" "$" "(g|[french])" +"k" "n" "$" "(k|[french])" +"p" "" "$" "(p|[french])" +"r" "[Ee]" "$" "(r|[french])" +"s" "" "$" "(s|[french])" +"t" "[aeiouAEIOU]" "[^aeiouAEIOU]" "(t|[french])" // Petitjean +"s" "[aeiouAEIOU]" "[^aeiouAEIOU]" "(s|[french])" // Groslot, Grosleau + //array("p" "[aeiouAEIOU]" "[^aeiouAEIOU]" "(p|[$french])" + +"I" "[aeiouAEIBFOUQY]" "" "i" +"I" "" "[^aeiouAEBFIOU]e" "(Q[german]|i|D[english])" // "line" +"I" "" "$" "i" +"I" "" "[^k]$" "i" +"Ik" "[lr]" "$" "(ik|Qk[german])" +"Ik" "" "$" "ik" +"sIts" "" "$" "(sits|sQts[german])" +"Its" "" "$" "its" +"I" "" "" "(Q[german]|i)" + +"lEE" "[bdfgkmnprsStvzZ]" "" "(li|il[english])" // Apple = Appel +"rEE" "[bdfgkmnprsStvzZ]" "" "(ri|ir[english])" +"lE" "[bdfgkmnprsStvzZ]" "" "(li|il[english]|lY[german])" // Applebaum < Appelbaum +"rE" "[bdfgkmnprsStvzZ]" "" "(ri|ir[english]|rY[german])" + +"ea" "" "" "(D|a|i)" + +"au" "" "" "(D|a|u)" +"ou" "" "" "(D|o|u)" +"eu" "" "" "(D|e|u)" + +"ai" "" "" "(D|a|i)" +"Ai" "" "" "(D|a|i)" +"oi" "" "" "(D|o|i)" +"Oi" "" "" "(D|o|i)" +"ui" "" "" "(D|u|i)" +"Ui" "" "" "(D|u|i)" +"ei" "" "" "(D|i)" +"Ei" "" "" "(D|i)" + +"iA" "" "$" "(ia|io)" +"iA" "" "" "(ia|io|iY[german])" +"A" "" "[^aeiouAEBFIOU]e" "(a|o|Y[german]|D[english])" // "plane" + + +"E" "i[^aeiouAEIOU]" "" "(i|Y[german]|[english])" // Wineberg (vineberg/vajneberg) --> vajnberg +"E" "a[^aeiouAEIOU]" "" "(i|Y[german]|[english])" // Shaneberg (shaneberg/shejneberg) --> shejnberg + +"E" "" "[fklmnprst]$" "i" +"E" "" "ts$" "i" +"E" "" "$" "i" +"E" "[DaoiuAOIUQY]" "" "i" +"E" "" "[aoAOQY]" "i" +"E" "" "" "(i|Y[$german])" + +"P" "" "" "(o|u)" + +"O" "" "[fklmnprstv]$" "o" +"O" "" "ts$" "o" +"O" "" "$" "o" +"O" "[oeiuQY]" "" "o" +"O" "" "" "(o|Y[$german])" +"O" "" "" "o" + +"A" "" "[fklmnprst]$" "(a|o)" +"A" "" "ts$" "(a|o)" +"A" "" "$" "(a|o)" +"A" "[oeiuQY]" "" "(a|o)" +"A" "" "" "(a|o|Y[$german])" +"A" "" "" "(a|o)" + +"U" "" "$" "u" +"U" "[DoiuQY]" "" "u" +"U" "" "[^k]$" "u" +"Uk" "[lr]" "$" "(uk|Qk[german])" +"Uk" "" "$" "uk" +"sUts" "" "$" "(suts|sQts[german])" +"Uts" "" "$" "uts" +"U" "" "" "(u|Q[german])" +"U" "" "" "u" + +"e" "" "[fklmnprstv]$" "i" +"e" "" "ts$" "i" +"e" "" "$" "i" +"e" "[DaoiuAOIUQY]" "" "i" +"e" "" "[aoAOQY]" "i" +"e" "" "" "(i|Y[german])" + +"a" "" "" "(a|o)" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_arabic.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_arabic.txt new file mode 100644 index 000000000000..a8cad6566dca --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_arabic.txt @@ -0,0 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"j1" "" "" "(ja|je|jo|ju|j)" +"1" "" "" "(a|e|i|o|u|)" +"u" "" "" "(o|u)" +"i" "" "" "(i|e)" +"p" "" "$" "p" +"p" "" "" "(p|b)" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_common.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_common.txt new file mode 100644 index 000000000000..fa0096a661c8 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_common.txt @@ -0,0 +1,223 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// GENERIC + +#include gen_exact_approx_common + +// DUTCH +"van" "^" "[bp]" "(vam|)" +"van" "^" "" "(van|)" + +// REGRESSIVE ASSIMILATION OF CONSONANTS +"n" "" "[bp]" "m" + +// PECULIARITY OF "h" +"h" "" "" "" +"H" "" "" "(x|)" + +// "e" and "i" ARE TO BE OMITTED BEFORE (SYLLABIC) n & l: Halperin=Halpern; Frankel = Frankl, Finkelstein = Finklstein +// but Andersen & Anderson should match +"sen" "[rmnl]" "$" "(zn|zon)" +"sen" "" "$" "(sn|son)" +"sEn" "[rmnl]" "$" "(zn|zon)" +"sEn" "" "$" "(sn|son)" + +"e" "[bdfgklmnprsStvzZ]" "[ln]$" "" +"i" "[bdfgklmnprsStvzZ]" "[ln]$" "" +"E" "[bdfgklmnprsStvzZ]" "[ln]$" "" +"I" "[bdfgklmnprsStvzZ]" "[ln]$" "" +"Q" "[bdfgklmnprsStvzZ]" "[ln]$" "" +"Y" "[bdfgklmnprsStvzZ]" "[ln]$" "" + +"e" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" "" +"i" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" "" +"E" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" "" +"I" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" "" +"Q" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" "" +"Y" "[bdfgklmnprsStvzZ]" "[ln][bdfgklmnprsStvzZ]" "" + +"lEs" "" "" "(lEs|lz)" // Applebaum < Appelbaum (English + blend English-something forms as Finklestein) +"lE" "[bdfgkmnprStvzZ]" "" "(lE|l)" // Applebaum < Appelbaum (English + blend English-something forms as Finklestein) + +// SIMPLIFICATION: (TRIPHTHONGS & DIPHTHONGS) -> ONE GENERIC DIPHTHONG "D" +"aue" "" "" "D" +"oue" "" "" "D" + +"AvE" "" "" "(D|AvE)" +"Ave" "" "" "(D|Ave)" +"avE" "" "" "(D|avE)" +"ave" "" "" "(D|ave)" + +"OvE" "" "" "(D|OvE)" +"Ove" "" "" "(D|Ove)" +"ovE" "" "" "(D|ovE)" +"ove" "" "" "(D|ove)" + +"ea" "" "" "(D|ea)" +"EA" "" "" "(D|EA)" +"Ea" "" "" "(D|Ea)" +"eA" "" "" "(D|eA)" + +"aji" "" "" "D" +"ajI" "" "" "D" +"aje" "" "" "D" +"ajE" "" "" "D" + +"Aji" "" "" "D" +"AjI" "" "" "D" +"Aje" "" "" "D" +"AjE" "" "" "D" + +"oji" "" "" "D" +"ojI" "" "" "D" +"oje" "" "" "D" +"ojE" "" "" "D" + +"Oji" "" "" "D" +"OjI" "" "" "D" +"Oje" "" "" "D" +"OjE" "" "" "D" + +"eji" "" "" "D" +"ejI" "" "" "D" +"eje" "" "" "D" +"ejE" "" "" "D" + +"Eji" "" "" "D" +"EjI" "" "" "D" +"Eje" "" "" "D" +"EjE" "" "" "D" + +"uji" "" "" "D" +"ujI" "" "" "D" +"uje" "" "" "D" +"ujE" "" "" "D" + +"Uji" "" "" "D" +"UjI" "" "" "D" +"Uje" "" "" "D" +"UjE" "" "" "D" + +"iji" "" "" "D" +"ijI" "" "" "D" +"ije" "" "" "D" +"ijE" "" "" "D" + +"Iji" "" "" "D" +"IjI" "" "" "D" +"Ije" "" "" "D" +"IjE" "" "" "D" + +"aja" "" "" "D" +"ajA" "" "" "D" +"ajo" "" "" "D" +"ajO" "" "" "D" +"aju" "" "" "D" +"ajU" "" "" "D" + +"Aja" "" "" "D" +"AjA" "" "" "D" +"Ajo" "" "" "D" +"AjO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"oja" "" "" "D" +"ojA" "" "" "D" +"ojo" "" "" "D" +"ojO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"Oja" "" "" "D" +"OjA" "" "" "D" +"Ojo" "" "" "D" +"OjO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"eja" "" "" "D" +"ejA" "" "" "D" +"ejo" "" "" "D" +"ejO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"Eja" "" "" "D" +"EjA" "" "" "D" +"Ejo" "" "" "D" +"EjO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"uja" "" "" "D" +"ujA" "" "" "D" +"ujo" "" "" "D" +"ujO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"Uja" "" "" "D" +"UjA" "" "" "D" +"Ujo" "" "" "D" +"UjO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"ija" "" "" "D" +"ijA" "" "" "D" +"ijo" "" "" "D" +"ijO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"Ija" "" "" "D" +"IjA" "" "" "D" +"Ijo" "" "" "D" +"IjO" "" "" "D" +"Aju" "" "" "D" +"AjU" "" "" "D" + +"j" "" "" "i" + +// lander = lender = länder +"lYndEr" "" "$" "lYnder" +"lander" "" "$" "lYnder" +"lAndEr" "" "$" "lYnder" +"lAnder" "" "$" "lYnder" +"landEr" "" "$" "lYnder" +"lender" "" "$" "lYnder" +"lEndEr" "" "$" "lYnder" +"lendEr" "" "$" "lYnder" +"lEnder" "" "$" "lYnder" + +// CONSONANTS {z & Z; s & S} are approximately interchangeable +"s" "" "[rmnl]" "z" +"S" "" "[rmnl]" "z" +"s" "[rmnl]" "" "z" +"S" "[rmnl]" "" "z" + +"dS" "" "$" "S" +"dZ" "" "$" "S" +"Z" "" "$" "S" +"S" "" "$" "(S|s)" +"z" "" "$" "(S|s)" + +"S" "" "" "s" +"dZ" "" "" "z" +"Z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_cyrillic.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_cyrillic.txt new file mode 100644 index 000000000000..d470aa861584 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_cyrillic.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_approx_russian \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_czech.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_czech.txt new file mode 100644 index 000000000000..b542861bbc9d --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_czech.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_approx_french \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_dutch.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_dutch.txt new file mode 100644 index 000000000000..b542861bbc9d --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_dutch.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_approx_french \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_english.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_english.txt new file mode 100644 index 000000000000..84d8174eaf8d --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_english.txt @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// VOWELS +"I" "" "[^aEIeiou]e" "(Q|i|D)" // like in "five" +"I" "" "$" "i" +"I" "[aEIeiou]" "" "i" +"I" "" "[^k]$" "i" +"Ik" "[lr]" "$" "(ik|Qk)" +"Ik" "" "$" "ik" +"sIts" "" "$" "(sits|sQts)" +"Its" "" "$" "its" +"I" "" "" "(i|Q)" + +"lE" "[bdfgkmnprsStvzZ]" "" "(il|li|lY)" // Applebaum < Appelbaum + +"au" "" "" "(D|a|u)" +"ou" "" "" "(D|o|u)" +"ai" "" "" "(D|a|i)" +"oi" "" "" "(D|o|i)" +"ui" "" "" "(D|u|i)" + +"E" "D[^aeiEIou]" "" "(i|)" // Weinberg, Shaneberg (shaneberg/shejneberg) --> shejnberg +"e" "D[^aeiEIou]" "" "(i|)" + +"e" "" "" "i" +"E" "" "[fklmnprsStv]$" "i" +"E" "" "ts$" "i" +"E" "[DaoiEuQY]" "" "i" +"E" "" "[aoQY]" "i" +"E" "" "" "(Y|i)" + +"a" "" "" "(a|o)" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_french.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_french.txt new file mode 100644 index 000000000000..93a4980510c4 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_french.txt @@ -0,0 +1,25 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"au" "" "" "(D|a|u)" +"ou" "" "" "(D|o|u)" +"ai" "" "" "(D|a|i)" +"oi" "" "" "(D|o|i)" +"ui" "" "" "(D|u|i)" + +"a" "" "" "(a|o)" +"e" "" "" "i" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_german.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_german.txt new file mode 100644 index 000000000000..14a5db79ca2e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_german.txt @@ -0,0 +1,73 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +"I" "" "$" "i" +"I" "[aeiAEIOUouQY]" "" "i" +"I" "" "[^k]$" "i" +"Ik" "[lr]" "$" "(ik|Qk)" +"Ik" "" "$" "ik" +"sIts" "" "$" "(sits|sQts)" +"Its" "" "$" "its" +"I" "" "" "(Q|i)" + +"AU" "" "" "(D|a|u)" +"aU" "" "" "(D|a|u)" +"Au" "" "" "(D|a|u)" +"au" "" "" "(D|a|u)" +"ou" "" "" "(D|o|u)" +"OU" "" "" "(D|o|u)" +"oU" "" "" "(D|o|u)" +"Ou" "" "" "(D|o|u)" +"ai" "" "" "(D|a|i)" +"Ai" "" "" "(D|a|i)" +"oi" "" "" "(D|o|i)" +"Oi" "" "" "(D|o|i)" +"ui" "" "" "(D|u|i)" +"Ui" "" "" "(D|u|i)" + +"e" "" "" "i" + +"E" "" "[fklmnprst]$" "i" +"E" "" "ts$" "i" +"E" "" "$" "i" +"E" "[DaoAOUiuQY]" "" "i" +"E" "" "[aoAOQY]" "i" +"E" "" "" "(Y|i)" + +"O" "" "$" "o" +"O" "" "[fklmnprst]$" "o" +"O" "" "ts$" "o" +"O" "[aoAOUeiuQY]" "" "o" +"O" "" "" "(o|Y)" + +"a" "" "" "(a|o)" + +"A" "" "$" "(a|o)" +"A" "" "[fklmnprst]$" "(a|o)" +"A" "" "ts$" "(a|o)" +"A" "[aoeOUiuQY]" "" "(a|o)" +"A" "" "" "(a|o|Y)" + +"U" "" "$" "u" +"U" "[DaoiuUQY]" "" "u" +"U" "" "[^k]$" "u" +"Uk" "[lr]" "$" "(uk|Qk)" +"Uk" "" "$" "uk" +"sUts" "" "$" "(suts|sQts)" +"Uts" "" "$" "uts" +"U" "" "" "(u|Q)" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_greek.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_greek.txt new file mode 100644 index 000000000000..b542861bbc9d --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_greek.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_approx_french \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_greeklatin.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_greeklatin.txt new file mode 100644 index 000000000000..e492b97bcc97 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_greeklatin.txt @@ -0,0 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_approx_french + +"N" "" "" "" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_hebrew.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_hebrew.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_hebrew.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_hungarian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_hungarian.txt new file mode 100644 index 000000000000..46ebf299befe --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_hungarian.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_approx_french diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_italian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_italian.txt new file mode 100644 index 000000000000..46ebf299befe --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_italian.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_approx_french diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_polish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_polish.txt new file mode 100644 index 000000000000..ce577af68aac --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_polish.txt @@ -0,0 +1,84 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +"aiB" "" "[bp]" "(D|Dm)" +"oiB" "" "[bp]" "(D|Dm)" +"uiB" "" "[bp]" "(D|Dm)" +"eiB" "" "[bp]" "(D|Dm)" +"EiB" "" "[bp]" "(D|Dm)" +"iiB" "" "[bp]" "(D|Dm)" +"IiB" "" "[bp]" "(D|Dm)" + +"aiB" "" "[dgkstvz]" "(D|Dn)" +"oiB" "" "[dgkstvz]" "(D|Dn)" +"uiB" "" "[dgkstvz]" "(D|Dn)" +"eiB" "" "[dgkstvz]" "(D|Dn)" +"EiB" "" "[dgkstvz]" "(D|Dn)" +"iiB" "" "[dgkstvz]" "(D|Dn)" +"IiB" "" "[dgkstvz]" "(D|Dn)" + +"B" "" "[bp]" "(o|om|im)" +"B" "" "[dgkstvz]" "(o|on|in)" +"B" "" "" "o" + +"aiF" "" "[bp]" "(D|Dm)" +"oiF" "" "[bp]" "(D|Dm)" +"uiF" "" "[bp]" "(D|Dm)" +"eiF" "" "[bp]" "(D|Dm)" +"EiF" "" "[bp]" "(D|Dm)" +"iiF" "" "[bp]" "(D|Dm)" +"IiF" "" "[bp]" "(D|Dm)" + +"aiF" "" "[dgkstvz]" "(D|Dn)" +"oiF" "" "[dgkstvz]" "(D|Dn)" +"uiF" "" "[dgkstvz]" "(D|Dn)" +"eiF" "" "[dgkstvz]" "(D|Dn)" +"EiF" "" "[dgkstvz]" "(D|Dn)" +"iiF" "" "[dgkstvz]" "(D|Dn)" +"IiF" "" "[dgkstvz]" "(D|Dn)" + +"F" "" "[bp]" "(i|im|om)" +"F" "" "[dgkstvz]" "(i|in|on)" +"F" "" "" "i" + +"P" "" "" "(o|u)" + +"I" "" "$" "i" +"I" "" "[^k]$" "i" +"Ik" "[lr]" "$" "(ik|Qk)" +"Ik" "" "$" "ik" +"sIts" "" "$" "(sits|sQts)" +"Its" "" "$" "its" +"I" "[aeiAEBFIou]" "" "i" +"I" "" "" "(i|Q)" + +"au" "" "" "(D|a|u)" +"ou" "" "" "(D|o|u)" +"ai" "" "" "(D|a|i)" +"oi" "" "" "(D|o|i)" +"ui" "" "" "(D|u|i)" + +"a" "" "" "(a|o)" +"e" "" "" "i" + +"E" "" "[fklmnprst]$" "i" +"E" "" "ts$" "i" +"E" "" "$" "i" +"E" "[DaoiuQ]" "" "i" +"E" "" "[aoQ]" "i" +"E" "" "" "(Y|i)" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_portuguese.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_portuguese.txt new file mode 100644 index 000000000000..b542861bbc9d --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_portuguese.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_approx_french \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_romanian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_romanian.txt new file mode 100644 index 000000000000..f5c58944e337 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_romanian.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_approx_polish \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_russian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_russian.txt new file mode 100644 index 000000000000..9138487db099 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_russian.txt @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// VOWELS +"I" "" "$" "i" +"I" "" "[^k]$" "i" +"Ik" "[lr]" "$" "(ik|Qk)" +"Ik" "" "$" "ik" +"sIts" "" "$" "(sits|sQts)" +"Its" "" "$" "its" +"I" "[aeiEIou]" "" "i" +"I" "" "" "(i|Q)" + +"au" "" "" "(D|a|u)" +"ou" "" "" "(D|o|u)" +"ai" "" "" "(D|a|i)" +"oi" "" "" "(D|o|i)" +"ui" "" "" "(D|u|i)" + +"om" "" "[bp]" "(om|im)" +"on" "" "[dgkstvz]" "(on|in)" +"em" "" "[bp]" "(im|om)" +"en" "" "[dgkstvz]" "(in|on)" +"Em" "" "[bp]" "(im|Ym|om)" +"En" "" "[dgkstvz]" "(in|Yn|on)" + +"a" "" "" "(a|o)" +"e" "" "" "i" + +"E" "" "[fklmnprsStv]$" "i" +"E" "" "ts$" "i" +"E" "[DaoiuQ]" "" "i" +"E" "" "[aoQ]" "i" +"E" "" "" "(Y|i)" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_spanish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_spanish.txt new file mode 100644 index 000000000000..fb3e6617b9d4 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_spanish.txt @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_approx_french + +"B" "" "" "(b|v)" +"V" "" "" "(b|v)" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_turkish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_turkish.txt new file mode 100644 index 000000000000..b542861bbc9d --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_approx_turkish.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_approx_french \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_any.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_any.txt new file mode 100644 index 000000000000..28fafb96a94a --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_any.txt @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// GENERAL + // A, E, I, O, P, U should create variants, + // EE = final "e" (english & french) + // V, B from Spanish + // but a, e, i, o, u should not create any new variant +"EE" "" "$" "e" + +"A" "" "" "a" +"E" "" "" "e" +"I" "" "" "i" +"O" "" "" "o" +"P" "" "" "o" +"U" "" "" "u" + +"B" "" "" "b" +"V" "" "" "v" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_approx_common.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_approx_common.txt new file mode 100644 index 000000000000..10939127296d --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_approx_common.txt @@ -0,0 +1,79 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// GENERAL +"h" "" "$" "" + +// VOICED - UNVOICED CONSONANTS +"b" "" "[fktSs]" "p" +"b" "" "p" "" +"b" "" "$" "p" +"p" "" "[vgdZz]" "b" // Ashk: "v" excluded (everythere) +"p" "" "b" "" + +"v" "" "[pktSs]" "f" +"v" "" "f" "" +"v" "" "$" "f" +"f" "" "[vbgdZz]" "v" +"f" "" "v" "" + +"g" "" "[pftSs]" "k" +"g" "" "k" "" +"g" "" "$" "k" +"k" "" "[vbdZz]" "g" +"k" "" "g" "" + +"d" "" "[pfkSs]" "t" +"d" "" "t" "" +"d" "" "$" "t" +"t" "" "[vbgZz]" "d" +"t" "" "d" "" + +"s" "" "dZ" "" +"s" "" "tS" "" + +"z" "" "[pfkSt]" "s" +"z" "" "[sSzZ]" "" +"s" "" "[sSzZ]" "" +"Z" "" "[sSzZ]" "" +"S" "" "[sSzZ]" "" + +// SIMPLIFICATION OF CONSONANT CLUSTERS +"jnm" "" "" "jm" + +// DOUBLE --> SINGLE +"ji" "^" "" "i" +"jI" "^" "" "I" + +"a" "" "[aA]" "" +"a" "A" "" "" +"A" "" "A" "" + +"b" "" "b" "" +"d" "" "d" "" +"f" "" "f" "" +"g" "" "g" "" +"j" "" "j" "" +"k" "" "k" "" +"l" "" "l" "" +"m" "" "m" "" +"n" "" "n" "" +"p" "" "p" "" +"r" "" "r" "" +"t" "" "t" "" +"v" "" "v" "" +"z" "" "z" "" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_arabic.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_arabic.txt new file mode 100644 index 000000000000..4f2ead1188f5 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_arabic.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"l" "" "" "" \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_common.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_common.txt new file mode 100644 index 000000000000..742fc71299cb --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_common.txt @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_exact_approx_common + +"H" "" "" "" + +// VOICED - UNVOICED CONSONANTS +"s" "[^t]" "[bgZd]" "z" +"Z" "" "[pfkst]" "S" +"Z" "" "$" "S" +"S" "" "[bgzd]" "Z" +"z" "" "$" "s" + +"ji" "[aAoOeEiIuU]" "" "j" +"jI" "[aAoOeEiIuU]" "" "j" +"je" "[aAoOeEiIuU]" "" "j" +"jE" "[aAoOeEiIuU]" "" "j" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_cyrillic.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_cyrillic.txt new file mode 100644 index 000000000000..474f61bb0521 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_cyrillic.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_exact_russian \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_czech.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_czech.txt new file mode 100644 index 000000000000..474f61bb0521 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_czech.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_exact_russian \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_dutch.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_dutch.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_dutch.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_english.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_english.txt new file mode 100644 index 000000000000..474f61bb0521 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_english.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_exact_russian \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_french.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_french.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_french.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_german.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_german.txt new file mode 100644 index 000000000000..7a648f207249 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_german.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_exact_any \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_greek.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_greek.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_greek.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_greeklatin.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_greeklatin.txt new file mode 100644 index 000000000000..325ff3447b2a --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_greeklatin.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"N" "" "" "n" \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_hebrew.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_hebrew.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_hebrew.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_hungarian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_hungarian.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_hungarian.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_italian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_italian.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_italian.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_polish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_polish.txt new file mode 100644 index 000000000000..babed2a667b8 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_polish.txt @@ -0,0 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"B" "" "" "a" +"F" "" "" "e" +"P" "" "" "o" + +"E" "" "" "e" +"I" "" "" "i" \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_portuguese.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_portuguese.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_portuguese.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_romanian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_romanian.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_romanian.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_russian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_russian.txt new file mode 100644 index 000000000000..0a016e0ddfa2 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_russian.txt @@ -0,0 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"E" "" "" "e" +"I" "" "" "i" \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_spanish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_spanish.txt new file mode 100644 index 000000000000..e555114b60fb --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_spanish.txt @@ -0,0 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"B" "" "" "b" +"V" "" "" "v" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_turkish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_turkish.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_exact_turkish.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_hebrew_common.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_hebrew_common.txt new file mode 100644 index 000000000000..2ae2d9d3aaee --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_hebrew_common.txt @@ -0,0 +1,107 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include gen_exact_approx_common + +"ts" "" "" "C" // for not confusion Gutes [=guts] and Guts [=guc] +"tS" "" "" "C" // same reason +"S" "" "" "s" +"p" "" "" "f" +"b" "^" "" "b" +"b" "" "" "(b|v)" + +"ja" "" "" "i" +"jA" "" "" "i" +"je" "" "" "i" +"jE" "" "" "i" +"aj" "" "" "i" +"Aj" "" "" "i" +"I" "" "" "i" +"j" "" "" "i" + +"a" "^" "" "1" +"A" "^" "" "1" +"e" "^" "" "1" +"E" "^" "" "1" +"Y" "^" "" "1" + +"a" "" "$" "1" +"A" "" "$" "1" +"e" "" "$" "1" +"E" "" "$" "1" +"Y" "" "$" "1" + +"a" "" "" "" +"A" "" "" "" +"e" "" "" "" +"E" "" "" "" +"Y" "" "" "" + +"oj" "^" "" "(u|vi)" +"Oj" "^" "" "(u|vi)" +"uj" "^" "" "(u|vi)" +"Uj" "^" "" "(u|vi)" + +"oj" "" "" "u" +"Oj" "" "" "u" +"uj" "" "" "u" +"Uj" "" "" "u" + +"ou" "^" "" "(u|v|1)" +"o" "^" "" "(u|v|1)" +"O" "^" "" "(u|v|1)" +"U" "^" "" "(u|v|1)" +"u" "^" "" "(u|v|1)" + +"o" "" "$" "(u|1)" +"O" "" "$" "(u|1)" +"u" "" "$" "(u|1)" +"U" "" "$" "(u|1)" + +"ou" "" "" "u" +"o" "" "" "u" +"O" "" "" "u" +"U" "" "" "u" + +"VV" "" "" "u" // alef/ayin + vov from ruleshebrew +"V" "" "" "v" // tsvey-vov from ruleshebrew;; only Ashkenazic +"L" "^" "" "1" // alef/ayin from ruleshebrew +"L" "" "$" "1" // alef/ayin from ruleshebrew +"L" "" "" " " // alef/ayin from ruleshebrew +"WW" "^" "" "(vi|u)" // vav-yod from ruleshebrew +"WW" "" "" "u" // vav-yod from ruleshebrew +"W" "^" "" "(u|v)" // vav from ruleshebrew +"W" "" "" "u" // vav from ruleshebrew + + //"g" "" "" "(g|Z)" + //"z" "" "" "(z|Z)" + //"d" "" "" "(d|dZ)" + +"TB" "" "$" "(t|s)" // tav from ruleshebrew; only Ashkenazic +"TB" "" "" "t" // tav from ruleshebrew; only Ashkenazic +"T" "" "" "t" // tet from ruleshebrew + + //"k" "" "" "(k|x)" + //"x" "" "" "(k|x)" +"K" "" "" "k" // kof and initial kaf from ruleshebrew +"X" "" "" "x" // khet and final kaf from ruleshebrew + +"H" "^" "" "(x|1)" +"H" "" "$" "(x|1)" +"H" "" "" "(x|)" +"h" "^" "" "1" +"h" "" "" "" \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_languages.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_languages.txt new file mode 100644 index 000000000000..50f1118e36e4 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_languages.txt @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +any +arabic +cyrillic +czech +dutch +english +french +german +greek +greeklatin +hebrew +hungarian +italian +polish +portuguese +romanian +russian +spanish +turkish diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_any.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_any.txt new file mode 100644 index 000000000000..57bb939a19fa --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_any.txt @@ -0,0 +1,367 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + // format of each entry rule in the table + // (pattern, left context, right context, phonetic) + // where + // pattern is a sequence of characters that might appear in the word to be transliterated + // left context is the context that precedes the pattern + // right context is the context that follows the pattern + // phonetic is the result that this rule generates + // + // note that both left context and right context can be regular expressions + // ex: left context of ^ would mean start of word + // left context of [aeiouy] means following a vowel + // right context of [^aeiouy] means preceding a consonant + // right context of e$ means preceding a final e + +//GENERIC + +// CONVERTING FEMININE TO MASCULINE +"yna" "" "$" "(in[russian]|ina)" +"ina" "" "$" "(in[russian]|ina)" +"liova" "" "$" "(lova|lof[russian]|lef[russian])" +"lova" "" "$" "(lova|lof[russian]|lef[russian]|l[czech]|el[czech])" +"kova" "" "$" "(kova|kof[russian]|k[czech]|ek[czech])" +"ova" "" "$" "(ova|of[russian]|[czech])" +"ová" "" "$" "(ova|[czech])" +"eva" "" "$" "(eva|ef[russian])" +"aia" "" "$" "(aja|i[russian])" +"aja" "" "$" "(aja|i[russian])" +"aya" "" "$" "(aja|i[russian])" + +"lowa" "" "$" "(lova|lof[polish]|l[polish]|el[polish])" +"kowa" "" "$" "(kova|kof[polish]|k[polish]|ek[polish])" +"owa" "" "$" "(ova|of[polish]|)" +"lowna" "" "$" "(lovna|levna|l[polish]|el[polish])" +"kowna" "" "$" "(kovna|k[polish]|ek[polish])" +"owna" "" "$" "(ovna|[polish])" +"lówna" "" "$" "(l|el)" // polish +"kówna" "" "$" "(k|ek)" // polish +"ówna" "" "$" "" // polish +"á" "" "$" "(a|i[czech])" +"a" "" "$" "(a|i[polish+czech])" + +// CONSONANTS +"pf" "" "" "(pf|p|f)" +"que" "" "$" "(k[french]|ke|kve)" +"qu" "" "" "(kv|k)" + +"m" "" "[bfpv]" "(m|n)" +"m" "[aeiouy]" "[aeiouy]" "m" +"m" "[aeiouy]" "" "(m|n[french+portuguese])" // nasal + +"ly" "" "[au]" "l" +"li" "" "[au]" "l" +"lio" "" "" "(lo|le[russian])" +"lyo" "" "" "(lo|le[russian])" + //array("ll" "" "" "(l|J[spanish])" // Disabled Argentinian rule +"lt" "u" "$" "(lt|[french])" + +"v" "^" "" "(v|f[german]|b[spanish])" + +"ex" "" "[aáuiíoóeéêy]" "(ez[portuguese]|eS[portuguese]|eks|egz)" +"ex" "" "[cs]" "(e[portuguese]|ek)" +"x" "u" "$" "(ks|[french])" + +"ck" "" "" "(k|tsk[polish+czech])" +"cz" "" "" "(tS|tsz[czech])" // Polish + + //Proceccing of "h" in various combinations +"rh" "^" "" "r" +"dh" "^" "" "d" +"bh" "^" "" "b" + +"ph" "" "" "(ph|f)" +"kh" "" "" "(x[russian+english]|kh)" + +"lh" "" "" "(lh|l[portuguese])" +"nh" "" "" "(nh|nj[portuguese])" + +"ssch" "" "" "S" // german +"chsch" "" "" "xS" // german +"tsch" "" "" "tS" // german + + ///"desch" "^" "" "deS" + ///"desh" "^" "" "(dES|de[french])" + ///"des" "^" "[^aeiouy]" "(dEs|de[french])" + +"sch" "[aeiouy]" "[ei]" "(S|StS[russian]|sk[romanian+italian])" +"sch" "[aeiouy]" "" "(S|StS[russian])" +"sch" "" "[ei]" "(sk[romanian+italian]|S|StS[russian])" +"sch" "" "" "(S|StS[russian])" +"ssh" "" "" "S" + +"sh" "" "[äöü]" "sh" // german +"sh" "" "[aeiou]" "(S[russian+english]|sh)" +"sh" "" "" "S" + +"zh" "" "" "(Z[english+russian]|zh|tsh[german])" + +"chs" "" "" "(ks[german]|xs|tSs[russian+english])" +"ch" "" "[ei]" "(x|tS[spanish+english+russian]|k[romanian+italian]|S[portuguese+french])" +"ch" "" "" "(x|tS[spanish+english+russian]|S[portuguese+french])" + +"th" "^" "" "t" // english+german+greeklatin +"th" "" "[äöüaeiou]" "(t[english+german+greeklatin]|th)" +"th" "" "" "t" // english+german+greeklatin + +"gh" "" "[ei]" "(g[romanian+italian+greeklatin]|gh)" + +"ouh" "" "[aioe]" "(v[french]|uh)" +"uh" "" "[aioe]" "(v|uh)" +"h" "." "$" "" // match h at the end of words, but not as a single letter +"h" "[aeiouyäöü]" "" "" // german +"h" "^" "" "(h|x[romanian+greeklatin]|H[english+romanian+polish+french+portuguese+italian+spanish])" + + //Processing of "ci" "ce" & "cy" +"cia" "" "" "(tSa[polish]|tsa)" // Polish +"cią" "" "[bp]" "(tSom|tsom)" // Polish +"cią" "" "" "(tSon[polish]|tson)" // Polish +"cię" "" "[bp]" "(tSem[polish]|tsem)" // Polish +"cię" "" "" "(tSen[polish]|tsen)" // Polish +"cie" "" "" "(tSe[polish]|tse)" // Polish +"cio" "" "" "(tSo[polish]|tso)" // Polish +"ciu" "" "" "(tSu[polish]|tsu)" // Polish + +"sci" "" "$" "(Si[italian]|stsi[polish+czech]|dZi[turkish]|tSi[polish+romanian]|tS[romanian]|si)" +"sc" "" "[ei]" "(S[italian]|sts[polish+czech]|dZ[turkish]|tS[polish+romanian]|s)" +"ci" "" "$" "(tsi[polish+czech]|dZi[turkish]|tSi[polish+romanian]|tS[romanian]|si)" +"cy" "" "" "(si|tsi[polish])" +"c" "" "[ei]" "(ts[polish+czech]|dZ[turkish]|tS[polish+romanian]|k[greeklatin]|s)" + + //Processing of "s" +"sç" "" "[aeiou]" "(s|stS[turkish])" +"ssz" "" "" "S" // polish +"sz" "^" "" "(S|s[hungarian])" // polish +"sz" "" "$" "(S|s[hungarian])" // polish +"sz" "" "" "(S|s[hungarian]|sts[german])" // polish +"ssp" "" "" "(Sp[german]|sp)" +"sp" "" "" "(Sp[german]|sp)" +"sst" "" "" "(St[german]|st)" +"st" "" "" "(St[german]|st)" +"ss" "" "" "s" +"sj" "^" "" "S" // dutch +"sj" "" "$" "S" // dutch +"sj" "" "" "(sj|S[dutch]|sx[spanish]|sZ[romanian+turkish])" + +"sia" "" "" "(Sa[polish]|sa[polish]|sja)" +"sią" "" "[bp]" "(Som[polish]|som)" // polish +"sią" "" "" "(Son[polish]|son)" // polish +"się" "" "[bp]" "(Sem[polish]|sem)" // polish +"się" "" "" "(Sen[polish]|sen)" // polish +"sie" "" "" "(se|sje|Se[polish]|zi[german])" + +"sio" "" "" "(So[polish]|so)" +"siu" "" "" "(Su[polish]|sju)" + +"si" "[äöëaáuiíoóeéêy]" "" "(Si[polish]|si|zi[portuguese+french+italian+german])" +"si" "" "" "(Si[polish]|si|zi[german])" +"s" "[aáuiíoóeéêy]" "[aáuíoóeéêy]" "(s|z[portuguese+french+italian+german])" +"s" "" "[aeouäöë]" "(s|z[german])" +"s" "[aeiouy]" "[dglmnrv]" "(s|z|Z[portuguese]|[french])" // Groslot +"s" "" "[dglmnrv]" "(s|z|Z[portuguese])" + + //Processing of "g" +"gue" "" "$" "(k[french]|gve)" // portuguese+spanish +"gu" "" "[ei]" "(g[french]|gv[portuguese+spanish])" // portuguese+spanish +"gu" "" "[ao]" "gv" // portuguese+spanish +"guy" "" "" "gi" // french + +"gli" "" "" "(glI|l[italian])" +"gni" "" "" "(gnI|ni[italian+french])" +"gn" "" "[aeou]" "(n[italian+french]|nj[italian+french]|gn)" + +"ggie" "" "" "(je[greeklatin]|dZe)" // dZ is Italian +"ggi" "" "[aou]" "(j[greeklatin]|dZ)" // dZ is Italian + +"ggi" "[yaeiou]" "[aou]" "(gI|dZ[italian]|j[greeklatin])" +"gge" "[yaeiou]" "" "(gE|xe[spanish]|gZe[portuguese+french]|dZe[english+romanian+italian+spanish]|je[greeklatin])" +"ggi" "[yaeiou]" "" "(gI|xi[spanish]|gZi[portuguese+french]|dZi[english+romanian+italian+spanish]|i[greeklatin])" +"ggi" "" "[aou]" "(gI|dZ[italian]|j[greeklatin])" + +"gie" "" "$" "(ge|gi[german]|ji[french]|dZe[italian])" +"gie" "" "" "(ge|gi[german]|dZe[italian]|je[greeklatin])" +"gi" "" "[aou]" "(i[greeklatin]|dZ)" // dZ is Italian + +"ge" "[yaeiou]" "" "(gE|xe[spanish]|Ze[portuguese+french]|dZe[english+romanian+italian+spanish])" +"gi" "[yaeiou]" "" "(gI|xi[spanish]|Zi[portuguese+french]|dZi[english+romanian+italian+spanish])" +"ge" "" "" "(gE|xe[spanish]|hE[russian]|je[greeklatin]|Ze[portuguese+french]|dZe[english+romanian+italian+spanish])" +"gi" "" "" "(gI|xi[spanish]|hI[russian]|i[greeklatin]|Zi[portuguese+french]|dZi[english+romanian+italian+spanish])" +"gy" "" "[aeouáéóúüöőű]" "(gi|dj[hungarian])" +"gy" "" "" "(gi|d[hungarian])" +"g" "[yaeiou]" "[aouyei]" "g" +"g" "" "[aouei]" "(g|h[russian])" + + //Processing of "j" +"ij" "" "" "(i|ej[dutch]|ix[spanish]|iZ[french+romanian+turkish+portuguese])" +"j" "" "[aoeiuy]" "(j|dZ[english]|x[spanish]|Z[french+romanian+turkish+portuguese])" + + //Processing of "z" +"rz" "t" "" "(S[polish]|r)" // polish +"rz" "" "" "(rz|rts[german]|Z[polish]|r[polish]|rZ[polish])" + +"tz" "" "$" "(ts|tS[english+german])" +"tz" "^" "" "(ts[english+german+russian]|tS[english+german])" +"tz" "" "" "(ts[english+german+russian]|tz)" + +"zia" "" "[bcdgkpstwzż]" "(Za[polish]|za[polish]|zja)" +"zia" "" "" "(Za[polish]|zja)" +"zią" "" "[bp]" "(Zom[polish]|zom)" // polish +"zią" "" "" "(Zon[polish]|zon)" // polish +"zię" "" "[bp]" "(Zem[polish]|zem)" // polish +"zię" "" "" "(Zen[polish]|zen)" // polish +"zie" "" "[bcdgkpstwzż]" "(Ze[polish]|ze[polish]|ze|tsi[german])" +"zie" "" "" "(ze|Ze[polish]|tsi[german])" +"zio" "" "" "(Zo[polish]|zo)" +"ziu" "" "" "(Zu[polish]|zju)" +"zi" "" "" "(Zi[polish]|zi|tsi[german]|dzi[italian]|tsi[italian]|si[spanish])" + +"z" "" "$" "(s|ts[german]|ts[italian]|S[portuguese])" // ts It, s/S/Z Port, s in Sp, z Fr +"z" "" "[bdgv]" "(z|dz[italian]|Z[portuguese])" // dz It, Z/z Port, z Sp & Fr +"z" "" "[ptckf]" "(s|ts[italian]|S[portuguese])" // ts It, s/S/z Port, z/s Sp + + // VOWELS +"aue" "" "" "aue" +"oue" "" "" "(oue|ve[french])" +"eau" "" "" "o" // French + +"ae" "" "" "(Y[german]|aje[russian]|ae)" +"ai" "" "" "aj" +"au" "" "" "(au|o[french])" +"ay" "" "" "aj" +"ão" "" "" "(au|an)" // Port +"ãe" "" "" "(aj|an)" // Port +"ãi" "" "" "(aj|an)" // Port +"ea" "" "" "(ea|ja[romanian])" +"ee" "" "" "(i[english]|aje[russian]|e)" +"ei" "" "" "(aj|ej)" +"eu" "" "" "(eu|Yj[german]|ej[german]|oj[german]|Y[dutch])" +"ey" "" "" "(aj|ej)" +"ia" "" "" "ja" +"ie" "" "" "(i[german]|e[polish]|ije[russian]|Q[dutch]|je)" +"ii" "" "$" "i" // russian +"io" "" "" "(jo|e[russian])" +"iu" "" "" "ju" +"iy" "" "$" "i" // russian +"oe" "" "" "(Y[german]|oje[russian]|u[dutch]|oe)" +"oi" "" "" "oj" +"oo" "" "" "(u[english]|o)" +"ou" "" "" "(ou|u[french+greeklatin]|au[dutch])" +"où" "" "" "u" // french +"oy" "" "" "oj" +"õe" "" "" "(oj|on)" // Port +"ua" "" "" "va" +"ue" "" "" "(Q[german]|uje[russian]|ve)" +"ui" "" "" "(uj|vi|Y[dutch])" +"uu" "" "" "(u|Q[dutch])" +"uo" "" "" "(vo|o)" +"uy" "" "" "uj" +"ya" "" "" "ja" +"ye" "" "" "(je|ije[russian])" +"yi" "^" "" "i" +"yi" "" "$" "i" // russian +"yo" "" "" "(jo|e[russian])" +"yu" "" "" "ju" +"yy" "" "$" "i" // russian + +"i" "[áóéê]" "" "j" +"y" "[áóéê]" "" "j" + +"e" "^" "" "(e|je[russian])" +"e" "" "$" "(e|EE[english+french])" + +// LANGUAGE SPECIFIC CHARACTERS +"ą" "" "[bp]" "om" // polish +"ą" "" "" "on" // polish +"ä" "" "" "Y" +"á" "" "" "a" // Port & Sp +"à" "" "" "a" +"â" "" "" "a" +"ã" "" "" "(a|an)" // Port +"ă" "" "" "(e[romanian]|a)" // romanian +"č" "" "" "tS" // czech +"ć" "" "" "(tS[polish]|ts)" // polish +"ç" "" "" "(s|tS[turkish])" +"ď" "" "" "(d|dj[czech])" +"ę" "" "[bp]" "em" // polish +"ę" "" "" "en" // polish +"é" "" "" "e" +"è" "" "" "e" +"ê" "" "" "e" +"ě" "" "" "(e|je[czech])" +"ğ" "" "" "" // turkish +"í" "" "" "i" +"î" "" "" "i" +"ı" "" "" "(i|e[turkish]|[turkish])" +"ł" "" "" "l" +"ń" "" "" "(n|nj[polish])" // polish +"ñ" "" "" "(n|nj[spanish])" +"ó" "" "" "(u[polish]|o)" +"ô" "" "" "o" // Port & Fr +"õ" "" "" "(o|on[portuguese]|Y[hungarian])" +"ò" "" "" "o" // Sp & It +"ö" "" "" "Y" +"ř" "" "" "(r|rZ[czech])" +"ś" "" "" "(S[polish]|s)" +"ş" "" "" "S" // romanian+turkish +"š" "" "" "S" // czech +"ţ" "" "" "ts" // romanian +"ť" "" "" "(t|tj[czech])" +"ű" "" "" "Q" // hungarian +"ü" "" "" "(Q|u[portuguese+spanish])" +"ú" "" "" "u" +"ů" "" "" "u" // czech +"ù" "" "" "u" // french +"ý" "" "" "i" // czech +"ż" "" "" "Z" // polish +"ź" "" "" "(Z[polish]|z)" + +"ß" "" "" "s" // german +"'" "" "" "" // russian +"\"" "" "" "" // russian + +"o" "" "[bcćdgklłmnńrsśtwzźż]" "(O|P[polish])" + + // LATIN ALPHABET +"a" "" "" "A" +"b" "" "" "B" +"c" "" "" "(k|ts[polish+czech]|dZ[turkish])" +"d" "" "" "d" +"e" "" "" "E" +"f" "" "" "f" + //array("g" "" "" "(g|x[dutch])" // Dutch sound disabled +"g" "" "" "g" +"h" "" "" "(h|x[romanian]|H[french+portuguese+italian+spanish])" +"i" "" "" "I" +"j" "" "" "(j|x[spanish]|Z[french+romanian+turkish+portuguese])" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "O" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "(s|S[portuguese])" +"t" "" "" "t" +"u" "" "" "U" +"v" "" "" "V" +"w" "" "" "(v|w[english+dutch])" +"x" "" "" "(ks|gz|S[portuguese+spanish])" // S/ks Port & Sp, gz Sp, It only ks +"y" "" "" "i" +"z" "" "" "(z|ts[german]|dz[italian]|ts[italian]|s[spanish])" // ts/dz It, z Port & Fr, z/s Sp diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_arabic.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_arabic.txt new file mode 100644 index 000000000000..00f85e88a14d --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_arabic.txt @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +"ا" "" "" "a" // alif isol & init + +"ب" "" "" "b1" // ba' isol + +"ت" "" "" "t1" // ta' isol + +"ث" "" "" "t1" // tha' isol + +"ج" "" "" "(dZ1|Z1)" // jim isol + +"ح" "" "" "(h1|1)" // h.a' isol + +"خ" "" "" "x1" // kha' isol + +"د" "" "" "d1" // dal isol & init + +"ذ" "" "" "d1" // dhal isol & init + +"ر" "" "" "r1" // dhal isol & init + +"ز" "" "" "z1" // za' isol & init + +"س" "" "" "s1" // sin isol + +"ش" "" "" "S1" // shin isol + +"ص" "" "" "s1" // s.ad isol + +"ض" "" "" "d1" // d.ad isol + +"ط" "" "" "t1" // t.a' isol + +"ظ" "" "" "z1" // z.a' isol + +"ع" "" "" "(h1|1)" // ayin isol + +"غ" "" "" "g1" // ghayin isol + +"ف" "" "" "f1" // fa' isol + +"ق" "" "" "k1" // qaf isol + +"ك" "" "" "k1" // kaf isol + +"ل" "" "" "l1" // lam isol + +"م" "" "" "m1" // mim isol + +"ن" "" "" "n1" // nun isol + +"ه" "" "" "(h1|1)" // h isol + +"و" "" "" "(u|v1)" // waw, isol + init + + +"ي‎" "" "" "(i|j1)" // ya' isol diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_cyrillic.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_cyrillic.txt new file mode 100644 index 000000000000..6237de43a9c4 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_cyrillic.txt @@ -0,0 +1,99 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// GENERAL +"ця" "" "" "tsa" +"цю" "" "" "tsu" +"циа" "" "" "tsa" +"цие" "" "" "tse" +"цио" "" "" "tso" +"циу" "" "" "tsu" +"сие" "" "" "se" +"сио" "" "" "so" +"зие" "" "" "ze" +"зио" "" "" "zo" +"с" "" "с" "" + +"гауз" "" "$" "haus" +"гаус" "" "$" "haus" +"гольц" "" "$" "holts" +"геймер" "" "$" "(hejmer|hajmer)" +"гейм" "" "$" "(hejm|hajm)" +"гоф" "" "$" "hof" +"гер" "" "$" "ger" +"ген" "" "$" "gen" +"гин" "" "$" "gin" +"г" "(й|ё|я|ю|ы|а|е|о|и|у)" "(а|е|о|и|у)" "g" +"г" "" "(а|е|о|и|у)" "(g|h)" + +"ля" "" "" "la" +"лю" "" "" "lu" +"лё" "" "" "(le|lo)" +"лио" "" "" "(le|lo)" +"ле" "" "" "(lE|lo)" + +"ийе" "" "" "je" +"ие" "" "" "je" +"ыйе" "" "" "je" +"ые" "" "" "je" +"ий" "" "(а|о|у)" "j" +"ый" "" "(а|о|у)" "j" +"ий" "" "$" "i" +"ый" "" "$" "i" + +"ей" "^" "" "(jej|ej)" +"е" "(а|е|о|у)" "" "je" +"е" "^" "" "je" +"эй" "" "" "ej" +"ей" "" "" "ej" + +"ауе" "" "" "aue" +"ауэ" "" "" "aue" + +"а" "" "" "a" +"б" "" "" "b" +"в" "" "" "v" +"г" "" "" "g" +"д" "" "" "d" +"е" "" "" "E" +"ё" "" "" "(e|jo)" +"ж" "" "" "Z" +"з" "" "" "z" +"и" "" "" "I" +"й" "" "" "j" +"к" "" "" "k" +"л" "" "" "l" +"м" "" "" "m" +"н" "" "" "n" +"о" "" "" "o" +"п" "" "" "p" +"р" "" "" "r" +"с" "" "" "s" +"т" "" "" "t" +"у" "" "" "u" +"ф" "" "" "f" +"х" "" "" "x" +"ц" "" "" "ts" +"ч" "" "" "tS" +"ш" "" "" "S" +"щ" "" "" "StS" +"ъ" "" "" "" +"ы" "" "" "I" +"ь" "" "" "" +"э" "" "" "E" +"ю" "" "" "ju" +"я" "" "" "ja" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_czech.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_czech.txt new file mode 100644 index 000000000000..bc7a79c82bc7 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_czech.txt @@ -0,0 +1,67 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"ch" "" "" "x" +"qu" "" "" "(k|kv)" +"aue" "" "" "aue" +"ei" "" "" "(ej|aj)" +"i" "[aou]" "" "j" +"i" "" "[aeou]" "j" + +"č" "" "" "tS" +"š" "" "" "S" +"ň" "" "" "n" +"ť" "" "" "(t|tj)" +"ď" "" "" "(d|dj)" +"ř" "" "" "(r|rZ)" + +"á" "" "" "a" +"é" "" "" "e" +"í" "" "" "i" +"ó" "" "" "o" +"ú" "" "" "u" +"ý" "" "" "i" +"ě" "" "" "(e|je)" +"ů" "" "" "u" + +// LATIN ALPHABET +"a" "" "" "a" +"b" "" "" "b" +"c" "" "" "ts" +"d" "" "" "d" +"e" "" "" "E" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "(h|g)" +"i" "" "" "I" +"j" "" "" "j" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"q" "" "" "(k|kv)" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"w" "" "" "v" +"x" "" "" "ks" +"y" "" "" "i" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_dutch.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_dutch.txt new file mode 100644 index 000000000000..2a69a96dac23 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_dutch.txt @@ -0,0 +1,78 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// CONSONANTS +"ssj" "" "" "S" +"sj" "" "" "S" +"ch" "" "" "x" +"c" "" "[eiy]" "ts" +"ck" "" "" "k" // German +"pf" "" "" "(pf|p|f)" // German +"ph" "" "" "(ph|f)" +"qu" "" "" "kv" +"th" "^" "" "t" // German +"th" "" "[äöüaeiou]" "(t|th)" // German +"th" "" "" "t" // German +"ss" "" "" "s" +"h" "[aeiouy]" "" "" + +// VOWELS +"aue" "" "" "aue" +"ou" "" "" "au" +"ie" "" "" "(Q|i)" +"uu" "" "" "(Q|u)" +"ee" "" "" "e" +"eu" "" "" "(Y|Yj)" // Dutch Y +"aa" "" "" "a" +"oo" "" "" "o" +"oe" "" "" "u" +"ij" "" "" "ej" +"ui" "" "" "(Y|uj)" +"ei" "" "" "(ej|aj)" // Dutch ej + +"i" "" "[aou]" "j" +"y" "" "[aeou]" "j" +"i" "[aou]" "" "j" +"y" "[aeou]" "" "j" + +// LATIN ALPHABET +"a" "" "" "a" +"b" "" "" "b" +"c" "" "" "k" +"d" "" "" "d" +"e" "" "" "e" +"f" "" "" "f" +"g" "" "" "(g|x)" +"h" "" "" "h" +"i" "" "" "(i|Q)" +"j" "" "" "j" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "(u|Q)" +"v" "" "" "v" +"w" "" "" "(w|v)" +"x" "" "" "ks" +"y" "" "" "i" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_english.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_english.txt new file mode 100644 index 000000000000..db9ccecce10b --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_english.txt @@ -0,0 +1,113 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// GENERAL + +// CONSONANTS +"�" "" "" "" // O�Neill +"'" "" "" "" // O�Neill +"mc" "^" "" "mak" // McDonald +"tz" "" "" "ts" // Fitzgerald +"tch" "" "" "tS" +"ch" "" "" "(tS|x)" +"ck" "" "" "k" +"cc" "" "[iey]" "ks" // success, accent +"c" "" "c" "" +"c" "" "[iey]" "s" // circle + +"gh" "^" "" "g" // ghost +"gh" "" "" "(g|f|w)" // burgh | tough | bough +"gn" "" "" "(gn|n)" +"g" "" "[iey]" "(g|dZ)" // get, gem, giant, gigabyte +// "th" "" "" "(6|8|t)" +"th" "" "" "t" +"kh" "" "" "x" +"ph" "" "" "f" +"sch" "" "" "(S|sk)" +"sh" "" "" "S" +"who" "^" "" "hu" +"wh" "^" "" "w" + +"h" "" "$" "" // hard to find an example that isn't in a name +"h" "" "[^aeiou]" "" // hard to find an example that isn't in a name +"h" "^" "" "H" + +"kn" "^" "" "n" // knight +"mb" "" "$" "m" +"ng" "" "$" "(N|ng)" +"pn" "^" "" "(pn|n)" +"ps" "^" "" "(ps|s)" +"qu" "" "" "kw" +"tia" "" "" "(So|Sa)" +"tio" "" "" "So" +"wr" "^" "" "r" +"x" "^" "" "z" + +// VOWELS +"y" "^" "" "j" +"y" "^" "[aeiouy]" "j" +"yi" "^" "" "i" +"aue" "" "" "aue" +"oue" "" "" "(aue|oue)" +"ai" "" "" "(aj|ej|e)" // rain | said +"ay" "" "" "(aj|ej)" +"a" "" "[^aeiou]e" "ej" // plane +"ei" "" "" "(ej|aj|i)" // weigh | receive +"ey" "" "" "(ej|aj|i)" // hey | barley +"ear" "" "" "ia" // tear +"ea" "" "" "(i|e)" // reason | treasure +"ee" "" "" "i" // between +"e" "" "[^aeiou]e" "i" // meter +"e" "" "$" "(|E)" // blame, badge +"ie" "" "" "i" // believe +"i" "" "[^aeiou]e" "aj" // five +"oa" "" "" "ou" // toad +"oi" "" "" "oj" // join +"oo" "" "" "u" // food +"ou" "" "" "(u|ou)" // through | tough | could +"oy" "" "" "oj" // boy +"o" "" "[^aeiou]e" "ou" // rode +"u" "" "[^aeiou]e" "(ju|u)" // cute | flute +"u" "" "r" "(e|u)" // turn -- Morse disagrees, feels it should go to E + +// LATIN ALPHABET +"a" "" "" "(e|o|a)" // hat | call | part +"b" "" "" "b" +"c" "" "" "k" // candy +"d" "" "" "d" +"e" "" "" "E" // bed +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "I" +"j" "" "" "dZ" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "(o|a)" // hot +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "(u|a)" // put +"v" "" "" "v" +"w" "" "" "(w|v)" // the variant "v" is for spellings coming from German/Polish +"x" "" "" "ks" +"y" "" "" "i" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_french.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_french.txt new file mode 100644 index 000000000000..e67a0ec82b0a --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_french.txt @@ -0,0 +1,114 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// GENERAL + +// CONSONANTS +"lt" "u" "$" "(lt|)" // Renault +"c" "n" "$" "(k|)" // Tronc +//"f" "" "" "(f|)" // Clef +"d" "" "$" "(t|)" // Durand +"g" "n" "$" "(k|)" // Gang +"p" "" "$" "(p|)" // Trop, Champ +"r" "e" "$" "(r|)" // Barbier +"t" "" "$" "(t|)" // Murat, Constant +"z" "" "$" "(s|)" + +"ds" "" "$" "(ds|)" +"ps" "" "$" "(ps|)" // Champs +"rs" "e" "$" "(rs|)" +"ts" "" "$" "(ts|)" +"s" "" "$" "(s|)" // Denis + +"x" "u" "$" "(ks|)" // Arnoux + +"s" "[aeéèêiou]" "[^aeéèêiou]" "(s|)" // Deschamps, Malesherbes, Groslot +"t" "[aeéèêiou]" "[^aeéèêiou]" "(t|)" // Petitjean + +"kh" "" "" "x" // foreign +"ph" "" "" "f" + +"ç" "" "" "s" +"x" "" "" "ks" +"ch" "" "" "S" +"c" "" "[eiyéèê]" "s" + +"gn" "" "" "(n|gn)" +"g" "" "[eiy]" "Z" +"gue" "" "$" "k" +"gu" "" "[eiy]" "g" +"aill" "" "e" "aj" // non Jewish +"ll" "" "e" "(l|j)" // non Jewish +"que" "" "$" "k" +"qu" "" "" "k" +"s" "[aeiouyéèê]" "[aeiouyéèê]" "z" +"h" "[bdgt]" "" "" // translit from Arabic + +"m" "[aeiouy]" "[aeiouy]" "m" +"m" "[aeiouy]" "" "(m|n)" // nasal + +"ou" "" "[aeio]" "v" +"u" "" "[aeio]" "v" + +// VOWELS +"aue" "" "" "aue" +"eau" "" "" "o" +"au" "" "" "(o|au)" // non Jewish +"ai" "" "" "(e|aj)" // [e] is non Jewish +"ay" "" "" "(e|aj)" // [e] is non Jewish +"é" "" "" "e" +"ê" "" "" "e" +"è" "" "" "e" +"à" "" "" "a" +"â" "" "" "a" +"où" "" "" "u" +"ou" "" "" "u" +"oi" "" "" "(oj|va)" // [va] (actually "ua") is non Jewish +"ei" "" "" "(aj|ej|e)" // [e] is non Jewish +"ey" "" "" "(aj|ej|e)" // [e] non Jewish +"eu" "" "" "(ej|Y)" // non Jewish +"y" "[ou]" "" "j" +"e" "" "$" "(e|)" +"i" "" "[aou]" "j" +"y" "" "[aoeu]" "j" + +// LATIN ALPHABET +"a" "" "" "a" +"b" "" "" "b" +"c" "" "" "k" +"d" "" "" "d" +"e" "" "" "e" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "i" +"j" "" "" "Z" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "(u|Q)" +"v" "" "" "v" +"w" "" "" "v" +"y" "" "" "i" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_german.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_german.txt new file mode 100644 index 000000000000..1e79c352d906 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_german.txt @@ -0,0 +1,129 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// GENERIC + +// CONSONANTS +"ewitsch" "" "$" "evitS" +"owitsch" "" "$" "ovitS" +"evitsch" "" "$" "evitS" +"ovitsch" "" "$" "ovitS" +"witsch" "" "$" "vitS" +"vitsch" "" "$" "vitS" +"ssch" "" "" "S" +"chsch" "" "" "xS" +"sch" "" "" "S" + +"ziu" "" "" "tsu" +"zia" "" "" "tsa" +"zio" "" "" "tso" + +"chs" "" "" "ks" +"ch" "" "" "x" +"ck" "" "" "k" +"c" "" "[eiy]" "ts" + +"sp" "^" "" "Sp" +"st" "^" "" "St" +"ssp" "" "" "(Sp|sp)" +"sp" "" "" "(Sp|sp)" +"sst" "" "" "(St|st)" +"st" "" "" "(St|st)" +"pf" "" "" "(pf|p|f)" +"ph" "" "" "(ph|f)" +"qu" "" "" "kv" + +"ewitz" "" "$" "(evits|evitS)" +"ewiz" "" "$" "(evits|evitS)" +"evitz" "" "$" "(evits|evitS)" +"eviz" "" "$" "(evits|evitS)" +"owitz" "" "$" "(ovits|ovitS)" +"owiz" "" "$" "(ovits|ovitS)" +"ovitz" "" "$" "(ovits|ovitS)" +"oviz" "" "$" "(ovits|ovitS)" +"witz" "" "$" "(vits|vitS)" +"wiz" "" "$" "(vits|vitS)" +"vitz" "" "$" "(vits|vitS)" +"viz" "" "$" "(vits|vitS)" +"tz" "" "" "ts" + +"thal" "" "$" "tal" +"th" "^" "" "t" +"th" "" "[äöüaeiou]" "(t|th)" +"th" "" "" "t" +"rh" "^" "" "r" +"h" "[aeiouyäöü]" "" "" +"h" "^" "" "H" + +"ss" "" "" "s" +"s" "" "[äöüaeiouy]" "(z|s)" +"s" "[aeiouyäöüj]" "[aeiouyäöü]" "z" +"ß" "" "" "s" + + +// VOWELS +"ij" "" "$" "i" +"aue" "" "" "aue" +"ue" "" "" "Q" +"ae" "" "" "Y" +"oe" "" "" "Y" +"ü" "" "" "Q" +"ä" "" "" "Y" +"ö" "" "" "Y" +"ei" "" "" "(aj|ej)" +"ey" "" "" "(aj|ej)" +"eu" "" "" "(Yj|ej|aj|oj)" +"i" "[aou]" "" "j" +"y" "[aou]" "" "j" +"ie" "" "" "I" +"i" "" "[aou]" "j" +"y" "" "[aoeu]" "j" + +// FOREIGN LETTERs +"ñ" "" "" "n" +"ã" "" "" "a" +"ő" "" "" "o" +"ű" "" "" "u" +"ç" "" "" "s" + +// LATIN ALPHABET +"a" "" "" "A" +"b" "" "" "b" +"c" "" "" "k" +"d" "" "" "d" +"e" "" "" "E" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "I" +"j" "" "" "j" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "O" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "U" +"v" "" "" "(f|v)" +"w" "" "" "v" +"x" "" "" "ks" +"y" "" "" "i" +"z" "" "" "ts" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_greek.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_greek.txt new file mode 100644 index 000000000000..f396a65cfd12 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_greek.txt @@ -0,0 +1,97 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"αυ" "" "$" "af" // "av" before vowels and voiced consonants, "af" elsewhere +"αυ" "" "(κ|π|σ|τ|φ|θ|χ|ψ)" "af" +"αυ" "" "" "av" +"ευ" "" "$" "ef" // "ev" before vowels and voiced consonants, "ef" elsewhere +"ευ" "" "(κ|π|σ|τ|φ|θ|χ|ψ)" "ef" +"ευ" "" "" "ev" +"ηυ" "" "$" "if" // "iv" before vowels and voiced consonants, "if" elsewhere +"ηυ" "" "(κ|π|σ|τ|φ|θ|χ|ψ)" "if" +"ηυ" "" "" "iv" +"ου" "" "" "u" // [u:] + +"αι" "" "" "aj" // modern [e] +"ει" "" "" "ej" // modern [i] +"οι" "" "" "oj" // modern [i] +"ωι" "" "" "oj" +"ηι" "" "" "ej" +"υι" "" "" "i" // modern Greek "i" + +"γγ" "(ε|ι|η|α|ο|ω|υ)" "(ε|ι|η)" "(nj|j)" +"γγ" "" "(ε|ι|η)" "j" +"γγ" "(ε|ι|η|α|ο|ω|υ)" "" "(ng|g)" +"γγ" "" "" "g" +"γκ" "^" "" "g" +"γκ" "(ε|ι|η|α|ο|ω|υ)" "(ε|ι|η)" "(nj|j)" +"γκ" "" "(ε|ι|η)" "j" +"γκ" "(ε|ι|η|α|ο|ω|υ)" "" "(ng|g)" +"γκ" "" "" "g" +"γι" "" "(α|ο|ω|υ)" "j" +"γι" "" "" "(gi|i)" +"γε" "" "(α|ο|ω|υ)" "j" +"γε" "" "" "(ge|je)" + +"κζ" "" "" "gz" +"τζ" "" "" "dz" +"σ" "" "(β|γ|δ|μ|ν|ρ)" "z" + +"μβ" "" "" "(mb|b)" +"μπ" "^" "" "b" +"μπ" "(ε|ι|η|α|ο|ω|υ)" "" "mb" +"μπ" "" "" "b" // after any consonant +"ντ" "^" "" "d" +"ντ" "(ε|ι|η|α|ο|ω|υ)" "" "(nd|nt)" // Greek is "nd" +"ντ" "" "" "(nt|d)" // Greek is "d" after any consonant + +"ά" "" "" "a" +"έ" "" "" "e" +"ή" "" "" "(i|e)" +"ί" "" "" "i" +"ό" "" "" "o" +"ύ" "" "" "(Q|i|u)" +"ώ" "" "" "o" +"ΰ" "" "" "(Q|i|u)" +"ϋ" "" "" "(Q|i|u)" +"ϊ" "" "" "j" + +"α" "" "" "a" +"β" "" "" "(v|b)" // modern "v", old "b" +"γ" "" "" "g" +"δ" "" "" "d" // modern like "th" in English "them", old "d" +"ε" "" "" "e" +"ζ" "" "" "z" +"η" "" "" "(i|e)" // modern "i", old "e:" +"ι" "" "" "i" +"κ" "" "" "k" +"λ" "" "" "l" +"μ" "" "" "m" +"ν" "" "" "n" +"ξ" "" "" "ks" +"ο" "" "" "o" +"π" "" "" "p" +"ρ" "" "" "r" +"σ" "" "" "s" +"ς" "" "" "s" +"τ" "" "" "t" +"υ" "" "" "(Q|i|u)" // modern "i", old like German "ü" +"φ" "" "" "f" +"θ" "" "" "t" // old greek like "th" in English "theme" +"χ" "" "" "x" +"ψ" "" "" "ps" +"ω" "" "" "o" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_greeklatin.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_greeklatin.txt new file mode 100644 index 000000000000..43ec3f561982 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_greeklatin.txt @@ -0,0 +1,118 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"au" "" "$" "af" +"au" "" "[kpstfh]" "af" +"au" "" "" "av" +"eu" "" "$" "ef" +"eu" "" "[kpstfh]" "ef" +"eu" "" "" "ev" +"ou" "" "" "u" + +"gge" "[aeiouy]" "" "(nje|je)" // aggelopoulos +"ggi" "[aeiouy]" "[aou]" "(nj|j)" +"ggi" "[aeiouy]" "" "(ni|i)" +"gge" "" "" "je" +"ggi" "" "" "i" +"gg" "[aeiouy]" "" "(ng|g)" +"gg" "" "" "g" +"gk" "^" "" "g" +"gke" "[aeiouy]" "" "(nje|je)" +"gki" "[aeiouy]" "" "(ni|i)" +"gke" "" "" "je" +"gki" "" "" "i" +"gk" "[aeiouy]" "" "(ng|g)" +"gk" "" "" "g" +"nghi" "" "[aouy]" "Nj" +"nghi" "" "" "(Ngi|Ni)" +"nghe" "" "[aouy]" "Nj" +"nghe" "" "" "(Nje|Nge)" +"ghi" "" "[aouy]" "j" +"ghi" "" "" "(gi|i)" +"ghe" "" "[aouy]" "j" +"ghe" "" "" "(je|ge)" +"ngh" "" "" "Ng" +"gh" "" "" "g" +"ngi" "" "[aouy]" "Nj" +"ngi" "" "" "(Ngi|Ni)" +"nge" "" "[aouy]" "Nj" +"nge" "" "" "(Nje|Nge)" +"gi" "" "[aouy]" "j" +"gi" "" "" "(gi|i)" // what about Pantazis = Pantagis ??? +"ge" "" "[aouy]" "j" +"ge" "" "" "(je|ge)" +"ng" "" "" "Ng" // fragakis = fraggakis = frangakis; angel = agel = aggel + +"i" "" "[aeou]" "j" +"i" "[aeou]" "" "j" +"y" "" "[aeou]" "j" +"y" "[aeou]" "" "j" +"yi" "" "[aeou]" "j" +"yi" "" "" "i" + +"ch" "" "" "x" +"kh" "" "" "x" +"dh" "" "" "d" // actually as "th" in English "that" +"dj" "" "" "dZ" // Turkish words +"ph" "" "" "f" +"th" "" "" "t" +"kz" "" "" "gz" +"tz" "" "" "dz" +"s" "" "[bgdmnr]" "z" + +"mb" "" "" "(mb|b)" // Liberis = Limperis = Limberis +"mp" "^" "" "b" +"mp" "[aeiouy]" "" "mp" +"mp" "" "" "b" +"nt" "^" "" "d" +"nt" "[aeiouy]" "" "(nd|nt)" // Greek "nd" +"nt" "" "" "(nt|d)" // Greek "d" after any consonant + +"á" "" "" "a" +"é" "" "" "e" +"í" "" "" "i" +"ó" "" "" "o" +"óu" "" "" "u" +"ú" "" "" "u" +"ý" "" "" "(i|Q|u)" // [ü] + +"a" "" "" "a" +"b" "" "" "(b|v)" // beta: modern "v", old "b" +"c" "" "" "k" +"d" "" "" "d" // modern like "th" in English "them", old "d" +"e" "" "" "e" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "x" +"i" "" "" "i" +"j" "" "" "(j|Z)" // Panajotti = Panaiotti; Louijos = Louizos; Pantajis = Pantazis = Pantagis +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"ο" "" "" "o" +"p" "" "" "p" +"q" "" "" "k" // foreign +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"w" "" "" "v" // foreign +"x" "" "" "ks" +"y" "" "" "(i|Q|u)" // [ü] +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_hebrew.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_hebrew.txt new file mode 100644 index 000000000000..7e039d5185df --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_hebrew.txt @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// General = Ashkenazic + +"אי" "" "" "i" +"עי" "" "" "i" +"עו" "" "" "VV" +"או" "" "" "VV" + +"ג׳" "" "" "Z" +"ד׳" "" "" "dZ" + +"א" "" "" "L" +"ב" "" "" "b" +"ג" "" "" "g" +"ד" "" "" "d" + +"ה" "^" "" "1" +"ה" "" "$" "1" +"ה" "" "" "" + +"וו" "" "" "V" +"וי" "" "" "WW" +"ו" "" "" "W" +"ז" "" "" "z" +"ח" "" "" "X" +"ט" "" "" "T" +"יי" "" "" "i" +"י" "" "" "i" +"ך" "" "" "X" +"כ" "^" "" "K" +"כ" "" "" "k" +"ל" "" "" "l" +"ם" "" "" "m" +"מ" "" "" "m" +"ן" "" "" "n" +"נ" "" "" "n" +"ס" "" "" "s" +"ע" "" "" "L" +"ף" "" "" "f" +"פ" "" "" "f" +"ץ" "" "" "C" +"צ" "" "" "C" +"ק" "" "" "K" +"ר" "" "" "r" +"ש" "" "" "s" +"ת" "" "" "TB" // only Ashkenazic diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_hungarian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_hungarian.txt new file mode 100644 index 000000000000..615d26a8a139 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_hungarian.txt @@ -0,0 +1,83 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// GENERAL + +// CONSONANTS +"sz" "" "" "s" +"zs" "" "" "Z" +"cs" "" "" "tS" + +"ay" "" "" "(oj|aj)" +"ai" "" "" "(oj|aj)" +"aj" "" "" "(oj|aj)" + +"ei" "" "" "(aj|ej)" // German element +"ey" "" "" "(aj|ej)" // German element + +"y" "[áo]" "" "j" +"i" "[áo]" "" "j" +"ee" "" "" "(ej|e)" +"ely" "" "" "(ej|eli)" +"ly" "" "" "(j|li)" +"gy" "" "[aeouáéóúüöőű]" "dj" +"gy" "" "" "(d|gi)" +"ny" "" "[aeouáéóúüöőű]" "nj" +"ny" "" "" "(n|ni)" +"ty" "" "[aeouáéóúüöőű]" "tj" +"ty" "" "" "(t|ti)" +"qu" "" "" "(ku|kv)" +"h" "" "$" "" + +// SPECIAL VOWELS +"á" "" "" "a" +"é" "" "" "e" +"í" "" "" "i" +"ó" "" "" "o" +"ú" "" "" "u" +"ö" "" "" "Y" +"ő" "" "" "Y" +"ü" "" "" "Q" +"ű" "" "" "Q" + +// LATIN ALPHABET +"a" "" "" "a" +"b" "" "" "b" +"c" "" "" "ts" +"d" "" "" "d" +"e" "" "" "E" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "I" +"j" "" "" "j" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "(S|s)" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"w" "" "" "v" +"x" "" "" "ks" +"y" "" "" "i" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_italian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_italian.txt new file mode 100644 index 000000000000..8775eddd2031 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_italian.txt @@ -0,0 +1,77 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"kh" "" "" "x" // foreign + +"gli" "" "" "(l|gli)" +"gn" "" "[aeou]" "(n|nj|gn)" +"gni" "" "" "(ni|gni)" + +"gi" "" "[aeou]" "dZ" +"gg" "" "[ei]" "dZ" +"g" "" "[ei]" "dZ" +"h" "[bdgt]" "" "g" // gh is It; others from Arabic translit +"h" "" "$" "" // foreign + +"ci" "" "[aeou]" "tS" +"ch" "" "[ei]" "k" +"sc" "" "[ei]" "S" +"cc" "" "[ei]" "tS" +"c" "" "[ei]" "tS" +"s" "[aeiou]" "[aeiou]" "z" + +"i" "[aeou]" "" "j" +"i" "" "[aeou]" "j" +"y" "[aeou]" "" "j" // foreign +"y" "" "[aeou]" "j" // foreign + +"qu" "" "" "k" +"uo" "" "" "(vo|o)" +"u" "" "[aei]" "v" + +"�" "" "" "e" +"�" "" "" "e" +"�" "" "" "o" +"�" "" "" "o" + +// LATIN ALPHABET +"a" "" "" "a" +"b" "" "" "b" +"c" "" "" "k" +"d" "" "" "d" +"e" "" "" "e" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "i" +"j" "" "" "(Z|dZ|j)" // foreign +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"w" "" "" "v" // foreign +"x" "" "" "ks" // foreign +"y" "" "" "i" // foreign +"z" "" "" "(ts|dz)" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_polish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_polish.txt new file mode 100644 index 000000000000..dd72f6a029d9 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_polish.txt @@ -0,0 +1,185 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// GENERIC + +// CONVERTING FEMININE TO MASCULINE +"ska" "" "$" "ski" +"cka" "" "$" "tski" +"lowa" "" "$" "(lova|lof|l|el)" +"kowa" "" "$" "(kova|kof|k|ek)" +"owa" "" "$" "(ova|of|)" +"lowna" "" "$" "(lovna|levna|l|el)" +"kowna" "" "$" "(kovna|k|ek)" +"owna" "" "$" "(ovna|)" +"lówna" "" "$" "(l|el)" +"kówna" "" "$" "(k|ek)" +"ówna" "" "$" "" +"a" "" "$" "(a|i)" + +// CONSONANTS +"czy" "" "" "tSi" +"cze" "" "[bcdgkpstwzż]" "(tSe|tSF)" +"ciewicz" "" "" "(tsevitS|tSevitS)" +"siewicz" "" "" "(sevitS|SevitS)" +"ziewicz" "" "" "(zevitS|ZevitS)" +"riewicz" "" "" "rjevitS" +"diewicz" "" "" "djevitS" +"tiewicz" "" "" "tjevitS" +"iewicz" "" "" "evitS" +"ewicz" "" "" "evitS" +"owicz" "" "" "ovitS" +"icz" "" "" "itS" +"cz" "" "" "tS" +"ch" "" "" "x" + +"cia" "" "[bcdgkpstwzż]" "(tSB|tsB)" +"cia" "" "" "(tSa|tsa)" +"cią" "" "[bp]" "(tSom|tsom)" +"cią" "" "" "(tSon|tson)" +"cię" "" "[bp]" "(tSem|tsem)" +"cię" "" "" "(tSen|tsen)" +"cie" "" "[bcdgkpstwzż]" "(tSF|tsF)" +"cie" "" "" "(tSe|tse)" +"cio" "" "" "(tSo|tso)" +"ciu" "" "" "(tSu|tsu)" +"ci" "" "" "(tSi|tsI)" +"ć" "" "" "(tS|ts)" + +"ssz" "" "" "S" +"sz" "" "" "S" +"sia" "" "[bcdgkpstwzż]" "(SB|sB|sja)" +"sia" "" "" "(Sa|sja)" +"sią" "" "[bp]" "(Som|som)" +"sią" "" "" "(Son|son)" +"się" "" "[bp]" "(Sem|sem)" +"się" "" "" "(Sen|sen)" +"sie" "" "[bcdgkpstwzż]" "(SF|sF|se)" +"sie" "" "" "(Se|se)" +"sio" "" "" "(So|so)" +"siu" "" "" "(Su|sju)" +"si" "" "" "(Si|sI)" +"ś" "" "" "(S|s)" + +"zia" "" "[bcdgkpstwzż]" "(ZB|zB|zja)" +"zia" "" "" "(Za|zja)" +"zią" "" "[bp]" "(Zom|zom)" +"zią" "" "" "(Zon|zon)" +"zię" "" "[bp]" "(Zem|zem)" +"zię" "" "" "(Zen|zen)" +"zie" "" "[bcdgkpstwzż]" "(ZF|zF)" +"zie" "" "" "(Ze|ze)" +"zio" "" "" "(Zo|zo)" +"ziu" "" "" "(Zu|zju)" +"zi" "" "" "(Zi|zI)" + +"że" "" "[bcdgkpstwzż]" "(Ze|ZF)" +"że" "" "[bcdgkpstwzż]" "(Ze|ZF|ze|zF)" +"że" "" "" "Ze" +"źe" "" "" "(Ze|ze)" +"ży" "" "" "Zi" +"źi" "" "" "(Zi|zi)" +"ż" "" "" "Z" +"ź" "" "" "(Z|z)" + +"rze" "t" "" "(Se|re)" +"rze" "" "" "(Ze|re|rZe)" +"rzy" "t" "" "(Si|ri)" +"rzy" "" "" "(Zi|ri|rZi)" +"rz" "t" "" "(S|r)" +"rz" "" "" "(Z|r|rZ)" + +"lio" "" "" "(lo|le)" +"ł" "" "" "l" +"ń" "" "" "n" +"qu" "" "" "k" +"s" "" "s" "" + +// VOWELS +"ó" "" "" "(u|o)" +"ą" "" "[bp]" "om" +"ę" "" "[bp]" "em" +"ą" "" "" "on" +"ę" "" "" "en" + +"ije" "" "" "je" +"yje" "" "" "je" +"iie" "" "" "je" +"yie" "" "" "je" +"iye" "" "" "je" +"yye" "" "" "je" + +"ij" "" "[aou]" "j" +"yj" "" "[aou]" "j" +"ii" "" "[aou]" "j" +"yi" "" "[aou]" "j" +"iy" "" "[aou]" "j" +"yy" "" "[aou]" "j" + +"rie" "" "" "rje" +"die" "" "" "dje" +"tie" "" "" "tje" +"ie" "" "[bcdgkpstwzż]" "F" +"ie" "" "" "e" + +"aue" "" "" "aue" +"au" "" "" "au" + +"ei" "" "" "aj" +"ey" "" "" "aj" +"ej" "" "" "aj" + +"ai" "" "" "aj" +"ay" "" "" "aj" +"aj" "" "" "aj" + +"i" "[aeou]" "" "j" +"y" "[aeou]" "" "j" +"i" "" "[aou]" "j" +"y" "" "[aeou]" "j" + +"a" "" "[bcdgkpstwzż]" "B" +"e" "" "[bcdgkpstwzż]" "(E|F)" +"o" "" "[bcćdgklłmnńrsśtwzźż]" "P" + +// LATIN ALPHABET +"a" "" "" "a" +"b" "" "" "b" +"c" "" "" "ts" +"d" "" "" "d" +"e" "" "" "E" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "(h|x)" +"i" "" "" "I" +"j" "" "" "j" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"w" "" "" "v" +"x" "" "" "ks" +"y" "" "" "I" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_portuguese.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_portuguese.txt new file mode 100644 index 000000000000..10dbc2e82826 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_portuguese.txt @@ -0,0 +1,105 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"kh" "" "" "x" // foreign +"ch" "" "" "S" +"ss" "" "" "s" +"sc" "" "[ei]" "s" +"sç" "" "[aou]" "s" +"ç" "" "" "s" +"c" "" "[ei]" "s" +// "c" "" "[aou]" "(k|C)" + +"s" "^" "" "s" +"s" "[aáuiíoóeéêy]" "[aáuiíoóeéêy]" "z" +"s" "" "[dglmnrv]" "(Z|S)" // Z is Brazil + +"z" "" "$" "(Z|s|S)" // s and S in Brazil +"z" "" "[bdgv]" "(Z|z)" // Z in Brazil +"z" "" "[ptckf]" "(s|S|z)" // s and S in Brazil + +"gu" "" "[eiu]" "g" +"gu" "" "[ao]" "gv" +"g" "" "[ei]" "Z" +"qu" "" "[eiu]" "k" +"qu" "" "[ao]" "kv" + +"uo" "" "" "(vo|o|u)" +"u" "" "[aei]" "v" + +"lh" "" "" "l" +"nh" "" "" "nj" +"h" "[bdgt]" "" "" // translit. from Arabic +"h" "" "$" "" // foreign + +"ex" "" "[aáuiíoóeéêy]" "(ez|eS|eks)" // ez in Brazil +"ex" "" "[cs]" "e" + +"y" "[aáuiíoóeéê]" "" "j" +"y" "" "[aeiíou]" "j" +"m" "" "[bcdfglnprstv]" "(m|n)" // maybe to add a rule for m/n before a consonant that disappears [preceeding vowel becomes nasalized] +"m" "" "$" "(m|n)" // maybe to add a rule for final m/n that disappears [preceeding vowel becomes nasalized] + +"ão" "" "" "(au|an|on)" +"ãe" "" "" "(aj|an)" +"ãi" "" "" "(aj|an)" +"õe" "" "" "(oj|on)" +"i" "[aáuoóeéê]" "" "j" +"i" "" "[aeou]" "j" + +"â" "" "" "a" +"à" "" "" "a" +"á" "" "" "a" +"ã" "" "" "(a|an|on)" +"é" "" "" "e" +"ê" "" "" "e" +"í" "" "" "i" +"ô" "" "" "o" +"ó" "" "" "o" +"õ" "" "" "(o|on)" +"ú" "" "" "u" +"ü" "" "" "u" + +"aue" "" "" "aue" + +// LATIN ALPHABET +"a" "" "" "a" +"b" "" "" "b" +"c" "" "" "k" +"d" "" "" "d" +"e" "" "" "(e|i)" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "i" +"j" "" "" "Z" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "(o|u)" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "S" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"w" "" "" "v" +"x" "" "" "(S|ks)" +"y" "" "" "i" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_romanian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_romanian.txt new file mode 100644 index 000000000000..a6d0aac832df --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_romanian.txt @@ -0,0 +1,64 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"ce" "" "" "tSe" +"ci" "" "" "(tSi|tS)" +"ch" "" "[ei]" "k" +"ch" "" "" "x" // foreign + +"gi" "" "" "(dZi|dZ)" +"g" "" "[ei]" "dZ" +"gh" "" "" "g" + +"i" "[aeou]" "" "j" +"i" "" "[aeou]" "j" +"ţ" "" "" "ts" +"ş" "" "" "S" +"qu" "" "" "k" + +"î" "" "" "i" +"ea" "" "" "ja" +"ă" "" "" "(e|a)" +"aue" "" "" "aue" + +// LATIN ALPHABET +"a" "" "" "a" +"b" "" "" "b" +"c" "" "" "k" +"d" "" "" "d" +"e" "" "" "E" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "(x|h)" +"i" "" "" "I" +"j" "" "" "Z" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"w" "" "" "v" +"x" "" "" "ks" +"y" "" "" "i" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_russian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_russian.txt new file mode 100644 index 000000000000..310be8443691 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_russian.txt @@ -0,0 +1,142 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +//GENERAL// CONVERTING FEMININE TO MASCULINE +"yna" "" "$" "(in|ina)" +"ina" "" "$" "(in|ina)" +"liova" "" "$" "(lof|lef)" +"lova" "" "$" "(lof|lef|lova)" +"ova" "" "$" "(of|ova)" +"eva" "" "$" "(ef|ova)" +"aia" "" "$" "(aja|i)" +"aja" "" "$" "(aja|i)" +"aya" "" "$" "(aja|i)" + +//SPECIAL CONSONANTS +"tsya" "" "" "tsa" +"tsyu" "" "" "tsu" +"tsia" "" "" "tsa" +"tsie" "" "" "tse" +"tsio" "" "" "tso" +"tsye" "" "" "tse" +"tsyo" "" "" "tso" +"tsiu" "" "" "tsu" +"sie" "" "" "se" +"sio" "" "" "so" +"zie" "" "" "ze" +"zio" "" "" "zo" +"sye" "" "" "se" +"syo" "" "" "so" +"zye" "" "" "ze" +"zyo" "" "" "zo" + +"ger" "" "$" "ger" +"gen" "" "$" "gen" +"gin" "" "$" "gin" +"gg" "" "" "g" +"g" "[jaeoiuy]" "[aeoiu]" "g" +"g" "" "[aeoiu]" "(g|h)" + +"kh" "" "" "x" +"ch" "" "" "(tS|x)" +"sch" "" "" "(StS|S)" +"ssh" "" "" "S" +"sh" "" "" "S" +"zh" "" "" "Z" +"tz" "" "$" "ts" +"tz" "" "" "(ts|tz)" +"c" "" "[iey]" "s" +"qu" "" "" "(kv|k)" +"s" "" "s" "" + +//SPECIAL VOWELS +"lya" "" "" "la" +"lyu" "" "" "lu" +"lia" "" "" "la" // not in DJSRE +"liu" "" "" "lu" // not in DJSRE +"lja" "" "" "la" // not in DJSRE +"lju" "" "" "lu" // not in DJSRE +"le" "" "" "(lo|lE)" //not in DJSRE +"lyo" "" "" "(lo|le)" //not in DJSRE +"lio" "" "" "(lo|le)" + +"ije" "" "" "je" +"ie" "" "" "je" +"iye" "" "" "je" +"iie" "" "" "je" +"yje" "" "" "je" +"ye" "" "" "je" +"yye" "" "" "je" +"yie" "" "" "je" + +"ij" "" "[aou]" "j" +"iy" "" "[aou]" "j" +"ii" "" "[aou]" "j" +"yj" "" "[aou]" "j" +"yy" "" "[aou]" "j" +"yi" "" "[aou]" "j" + +"io" "" "" "(jo|e)" +"i" "" "[au]" "j" +"i" "[aeou]" "" "j" +"yo" "" "" "(jo|e)" +"y" "" "[au]" "j" +"y" "[aeiou]" "" "j" + +"ii" "" "$" "i" +"iy" "" "$" "i" +"yy" "" "$" "i" +"yi" "" "$" "i" +"yj" "" "$" "i" +"ij" "" "$" "i" + +"e" "^" "" "(je|E)" +"ee" "" "" "(aje|i)" +"e" "[aou]" "" "je" +"oo" "" "" "(oo|u)" +"'" "" "" "" +"\"" "" "" "" + +"aue" "" "" "aue" + +// LATIN ALPHABET +"a" "" "" "a" +"b" "" "" "b" +"c" "" "" "k" +"d" "" "" "d" +"e" "" "" "E" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "I" +"j" "" "" "j" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"w" "" "" "v" +"x" "" "" "ks" +"y" "" "" "I" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_spanish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_spanish.txt new file mode 100644 index 000000000000..3ba26958e4e5 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_spanish.txt @@ -0,0 +1,85 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// GENERAL + +// Includes both Spanish (Castillian) & Catalan + +// CONSONANTS +"ñ" "" "" "(n|nj)" +"ny" "" "" "nj" // Catalan +"ç" "" "" "s" // Catalan + +"ig" "[aeiou]" "" "(tS|ig)" // tS is Catalan +"ix" "[aeiou]" "" "S" // Catalan +"tx" "" "" "tS" // Catalan +"tj" "" "$" "tS" // Catalan +"tj" "" "" "dZ" // Catalan +"tg" "" "" "(tg|dZ)" // dZ is Catalan +"ch" "" "" "(tS|dZ)" // dZ is typical for Argentina +"bh" "" "" "b" // translit. from Arabic +"h" "[dgt]" "" "" // translit. from Arabic +"h" "" "$" "" // foreign +//"ll" "" "" "(l|Z)" // Z is typical for Argentina, only Ashkenazic +"m" "" "[bpvf]" "(m|n)" +"c" "" "[ei]" "s" +// "c" "" "[aou]" "(k|C)" +"gu" "" "[ei]" "(g|gv)" // "gv" because "u" can actually be "ü" +"g" "" "[ei]" "(x|g|dZ)" // "g" only for foreign words; dZ is Catalan +"qu" "" "" "k" + +"uo" "" "" "(vo|o)" +"u" "" "[aei]" "v" + +// SPECIAL VOWELS +"ü" "" "" "v" +"á" "" "" "a" +"é" "" "" "e" +"í" "" "" "i" +"ó" "" "" "o" +"ú" "" "" "u" +"à" "" "" "a" // Catalan +"è" "" "" "e" // Catalan +"ò" "" "" "o" // Catalan + +// LATIN ALPHABET +"a" "" "" "a" +"b" "" "" "B" +"c" "" "" "k" +"d" "" "" "d" +"e" "" "" "e" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "i" +"j" "" "" "(x|Z)" // Z is Catalan +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "V" +"w" "" "" "v" // foreign words +"x" "" "" "(ks|gz|S)" // ks is Spanish, all are Catalan +"y" "" "" "(i|j)" +"z" "" "" "(z|s)" // as "c" befoire "e" or "i", in Spain it is like unvoiced English "th" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_turkish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_turkish.txt new file mode 100644 index 000000000000..c639a133488c --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/gen_rules_turkish.txt @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"ç" "" "" "tS" +"ğ" "" "" "" // to show that previous vowel is long +"ş" "" "" "S" +"ü" "" "" "Q" +"ö" "" "" "Y" +"ı" "" "" "(e|i|)" // as "e" in English "label" + +"a" "" "" "a" +"b" "" "" "b" +"c" "" "" "dZ" +"d" "" "" "d" +"e" "" "" "e" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "i" +"j" "" "" "Z" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"q" "" "" "k" // foreign words +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"w" "" "" "v" // foreign words +"x" "" "" "ks" // foreign words +"y" "" "" "j" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/lang.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/lang.txt new file mode 100644 index 000000000000..99742b17a9ad --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/lang.txt @@ -0,0 +1,293 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// 1. following are rules to accept the language +// 1.1 Special letter combinations +^o’ english true +^o' english true +^mc english true +^fitz english true +ceau french+romanian true +eau$ french true // mp: I've added this +eaux$ french true // mp: I've added this +ault$ french true +oult$ french true +eux$ french true +eix$ french true +glou$ greeklatin true +uu dutch true +tx spanish true +witz german true +tz$ german+russian+english true +^tz russian+english true +poulos$ greeklatin true +pulos$ greeklatin true +iou greeklatin true +sj$ dutch true +^sj dutch true +güe spanish true +güi spanish true +ghe romanian+greeklatin true +ghi romanian+greeklatin true +escu$ romanian true +esco$ romanian true +vici$ romanian true +schi$ romanian true +ii$ russian true +iy$ russian true +yy$ russian true +yi$ russian true +^rz polish true +rz$ polish+german true +[bcdfgklmnpstwz]rz polish true +rz[bcdfghklmnpstw] polish true +etti$ italian true +eti$ italian true +ati$ italian true +ato$ italian true +[aoei]no$ italian true +[aoei]ni$ italian true +esi$ italian true +oli$ italian true +field$ english true +cki$ polish true +ska$ polish true +cka$ polish true +ae german+russian+english true +oe german+french+russian+english+dutch true +th$ german+english true +^th german+english+greeklatin true +mann german true +cz polish true +cy polish+greeklatin true +niew polish true +stein german true +heim$ german true +heimer$ german true +thal german true +zweig german true +[aeou]h german true +äh german true +öh german true +üh german true +[ln]h[ao]$ portuguese true +[ln]h[aou] portuguese+french+german+dutch+czech+spanish+turkish true +chsch german true +tsch german true +sch$ german+russian true +^sch german+russian true +ck$ german+english true +c$ polish+romanian+hungarian+czech+turkish true +sz polish+hungarian true +cs$ hungarian true +^cs hungarian true +dzs hungarian true +zs$ hungarian true +^zs hungarian true +^wl polish true +^wr polish+english+german+dutch true + +gy$ hungarian true +gy[aeou] hungarian true +gy hungarian+russian+french+greeklatin true +guy french true +gu[ei] spanish+french+portuguese true +gu[ao] spanish+portuguese true +gi[aou] italian+greeklatin true + +ly hungarian+russian+polish+greeklatin true +ny hungarian+russian+polish+spanish+greeklatin true +ty hungarian+russian+polish+greeklatin true + +// 1.2 special characters +ć polish true +ç french+spanish+portuguese+turkish true +č czech true +ď czech true +ğ turkish true +ł polish true +ń polish true +ñ spanish true +ň czech true +ř czech true +ś polish true +ş romanian+turkish true +š czech true +ţ romanian true +ť czech true +ź polish true +ż polish true + +ß german true + +ä german true +á hungarian+spanish+portuguese+czech+greeklatin true +â romanian+french+portuguese true +ă romanian true +ą polish true +à portuguese true +ã portuguese true +ę polish true +é french+hungarian+czech+greeklatin true +è french+spanish+italian true +ê french true +ě czech true +ê french+portuguese true +í hungarian+spanish+portuguese+czech+greeklatin true +î romanian+french true +ı turkish true +ó polish+hungarian+spanish+italian+portuguese+czech+greeklatin true +ö german+hungarian+turkish true +ô french+portuguese true +õ portuguese+hungarian true +ò italian+spanish true +ű hungarian true +ú hungarian+spanish+portuguese+czech+greeklatin true +ü german+hungarian+spanish+portuguese+turkish true +ù french true +ů czech true +ý czech+greeklatin true + +// Every Cyrillic word has at least one Cyrillic vowel (аёеоиуыэюя) +а cyrillic true +ё cyrillic true +о cyrillic true +е cyrillic true +и cyrillic true +у cyrillic true +ы cyrillic true +э cyrillic true +ю cyrillic true +я cyrillic true + +// Every Greek word has at least one Greek vowel +α greek true +ε greek true +η greek true +ι greek true +ο greek true +υ greek true +ω greek true + +// Arabic (only initial) +ا arabic true // alif (isol + init) +ب arabic true // ba' +ت arabic true // ta' +ث arabic true // tha' +ج arabic true // jim +ح arabic true // h.a' +خ' arabic true // kha' +د arabic true // dal (isol + init) +ذ arabic true // dhal (isol + init) +ر arabic true // ra' (isol + init) +ز arabic true // za' (isol + init) +س arabic true // sin +ش arabic true // shin +ص arabic true // s.ad +ض arabic true // d.ad +ط arabic true // t.a' +ظ arabic true // z.a' +ع arabic true // 'ayn +غ arabic true // ghayn +ف arabic true // fa' +ق arabic true // qaf +ك arabic true // kaf +ل arabic true // lam +م arabic true // mim +ن arabic true // nun +ه arabic true // ha' +و arabic true // waw (isol + init) +ي arabic true // ya' + +آ arabic true // alif madda +إ arabic true // alif + diacritic +أ arabic true // alif + hamza +ؤ arabic true // waw + hamza +ئ arabic true // ya' + hamza + + +// Hebrew +א hebrew true +ב hebrew true +ג hebrew true +ד hebrew true +ה hebrew true +ו hebrew true +ז hebrew true +ח hebrew true +ט hebrew true +י hebrew true +כ hebrew true +ל hebrew true +מ hebrew true +נ hebrew true +ס hebrew true +ע hebrew true +פ hebrew true +צ hebrew true +ק hebrew true +ר hebrew true +ש hebrew true +ת hebrew true + +// 2. following are rules to reject the language + +// Every Latin character word has at least one Latin vowel +a cyrillic+hebrew+greek+arabic false +o cyrillic+hebrew+greek+arabic false +e cyrillic+hebrew+greek+arabic false +i cyrillic+hebrew+greek+arabic false +y cyrillic+hebrew+greek+arabic+romanian+dutch false +u cyrillic+hebrew+greek+arabic false + +j italian false +j[^aoeiuy] french+spanish+portuguese+greeklatin false +g czech false +k romanian+spanish+portuguese+french+italian false +q hungarian+polish+russian+romanian+czech+dutch+turkish+greeklatin false +v polish false +w french+romanian+spanish+hungarian+russian+czech+turkish+greeklatin false +x czech+hungarian+dutch+turkish false // polish excluded from the list + +dj spanish+turkish false +v[^aoeiu] german false // in german, "v" can be found before a vowel only +y[^aoeiu] german false // in german, "y" usually appears only in the last position; sometimes before a vowel +c[^aohk] german false +dzi german+english+french+turkish false +ou german false +a[eiou] turkish false // no diphthongs in Turkish +ö[eaio] turkish false +ü[eaio] turkish false +e[aiou] turkish false +i[aeou] turkish false +o[aieu] turkish false +u[aieo] turkish false +aj german+english+french+dutch false +ej german+english+french+dutch false +oj german+english+french+dutch false +uj german+english+french+dutch false +eu russian+polish false +ky polish false +kie french+spanish+greeklatin false +gie portuguese+romanian+spanish+greeklatin false +ch[aou] italian false +ch turkish false +son$ german false +sc[ei] french false +sch hungarian+polish+french+spanish false +^h russian false +etti$ greeklatin false diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_any.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_any.txt new file mode 100644 index 000000000000..390419e05e50 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_any.txt @@ -0,0 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// SEPHARDIC + +"E" "" "" "" \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_common.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_common.txt new file mode 100644 index 000000000000..e744d323c878 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_common.txt @@ -0,0 +1,115 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include sep_exact_approx_common + +"bens" "^" "" "(binz|s)" +"benS" "^" "" "(binz|s)" +"ben" "^" "" "(bin|)" + +"abens" "^" "" "(abinz|binz|s)" +"abenS" "^" "" "(abinz|binz|s)" +"aben" "^" "" "(abin|bin|)" + +"els" "^" "" "(ilz|alz|s)" +"elS" "^" "" "(ilz|alz|s)" +"el" "^" "" "(il|al|)" +"als" "^" "" "(alz|s)" +"alS" "^" "" "(alz|s)" +"al" "^" "" "(al|)" + +//"dels" "^" "" "(dilz|s)" +//"delS" "^" "" "(dilz|s)" +"del" "^" "" "(dil|)" +"dela" "^" "" "(dila|)" +//"delo" "^" "" "(dila|)" +"da" "^" "" "(da|)" +"de" "^" "" "(di|)" +//"des" "^" "" "(dis|dAs|)" +//"di" "^" "" "(di|)" +//"dos" "^" "" "(das|dus|)" + +"oa" "" "" "(va|a|D)" +"oe" "" "" "(vi|D)" +"ae" "" "" "D" + +/// "s" "" "$" "(s|)" // Attia(s) +/// "C" "" "" "s" // "c" could actually be "�" + +"n" "" "[bp]" "m" + +"h" "" "" "(|h|f)" // sound "h" (absent) can be expressed via /x/, Cojab in Spanish = Kohab ; Hakim = Fakim +"x" "" "" "h" + +// DIPHTHONGS ARE APPROXIMATELY equivalent +"aja" "^" "" "(Da|ia)" +"aje" "^" "" "(Di|Da|i|ia)" +"aji" "^" "" "(Di|i)" +"ajo" "^" "" "(Du|Da|iu|ia)" +"aju" "^" "" "(Du|iu)" + +"aj" "" "" "D" +"ej" "" "" "D" +"oj" "" "" "D" +"uj" "" "" "D" +"au" "" "" "D" +"eu" "" "" "D" +"ou" "" "" "D" + +"a" "^" "" "(a|)" // Arabic + +"ja" "^" "" "ia" +"je" "^" "" "i" +"jo" "^" "" "(iu|ia)" +"ju" "^" "" "iu" + +"ja" "" "" "a" +"je" "" "" "i" +"ji" "" "" "i" +"jo" "" "" "u" +"ju" "" "" "u" + +"j" "" "" "i" + +// CONSONANTS {z & Z & dZ; s & S} are approximately interchangeable +"s" "" "[rmnl]" "z" +"S" "" "[rmnl]" "z" +"s" "[rmnl]" "" "z" +"S" "[rmnl]" "" "z" + +"dS" "" "$" "S" +"dZ" "" "$" "S" +"Z" "" "$" "S" +"S" "" "$" "(S|s)" +"z" "" "$" "(S|s)" + +"S" "" "" "s" +"dZ" "" "" "z" +"Z" "" "" "z" + +"i" "" "$" "(i|)" // often in Arabic +"e" "" "" "i" + +"o" "" "$" "(a|u)" +"o" "" "" "u" + +// special character to deal correctly in Hebrew match +"B" "" "" "b" +"V" "" "" "v" + +// Arabic +"p" "^" "" "b" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_french.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_french.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_french.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_hebrew.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_hebrew.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_hebrew.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_italian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_italian.txt new file mode 100644 index 000000000000..58fe459eaa6c --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_italian.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include sep_approx_french \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_portuguese.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_portuguese.txt new file mode 100644 index 000000000000..4bca8462fa53 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_portuguese.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include sep_approx_french diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_spanish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_spanish.txt new file mode 100644 index 000000000000..4bca8462fa53 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_approx_spanish.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include sep_approx_french diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_any.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_any.txt new file mode 100644 index 000000000000..d4bf51e6e8b0 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_any.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"E" "" "" "e" \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_approx_common.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_approx_common.txt new file mode 100644 index 000000000000..1f4e8641bccc --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_approx_common.txt @@ -0,0 +1,79 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Sephardic + +"h" "" "$" "" + +// VOICED - UNVOICED CONSONANTS +"b" "" "[fktSs]" "p" +"b" "" "p" "" +"b" "" "$" "p" +"p" "" "[vgdZz]" "b" +"p" "" "b" "" + +"v" "" "[pktSs]" "f" +"v" "" "f" "" +"v" "" "$" "f" +"f" "" "[vbgdZz]" "v" +"f" "" "v" "" + +"g" "" "[pftSs]" "k" +"g" "" "k" "" +"g" "" "$" "k" +"k" "" "[vbdZz]" "g" +"k" "" "g" "" + +"d" "" "[pfkSs]" "t" +"d" "" "t" "" +"d" "" "$" "t" +"t" "" "[vbgZz]" "d" +"t" "" "d" "" + +"s" "" "dZ" "" +"s" "" "tS" "" + +"z" "" "[pfkSt]" "s" +"z" "" "[sSzZ]" "" +"s" "" "[sSzZ]" "" +"Z" "" "[sSzZ]" "" +"S" "" "[sSzZ]" "" + +// SIMPLIFICATION OF CONSONANT CLUSTERS +"nm" "" "" "m" + +// DOUBLE --> SINGLE +"ji" "^" "" "i" + +"a" "" "a" "" +"b" "" "b" "" +"d" "" "d" "" +"e" "" "e" "" +"f" "" "f" "" +"g" "" "g" "" +"i" "" "i" "" +"k" "" "k" "" +"l" "" "l" "" +"m" "" "m" "" +"n" "" "n" "" +"o" "" "o" "" +"p" "" "p" "" +"r" "" "r" "" +"t" "" "t" "" +"u" "" "u" "" +"v" "" "v" "" +"z" "" "z" "" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_common.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_common.txt new file mode 100644 index 000000000000..b97c58911bc8 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_common.txt @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include sep_exact_approx_common + +"h" "" "" "" +//"C" "" "" "k" // c that can actually be � + +// VOICED - UNVOICED CONSONANTS +"s" "[^t]" "[bgZd]" "z" +"Z" "" "[pfkst]" "S" +"Z" "" "$" "S" +"S" "" "[bgzd]" "Z" +"z" "" "$" "s" + +//special character to deal correctly in Hebrew match +"B" "" "" "b" +"V" "" "" "v" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_french.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_french.txt new file mode 100644 index 000000000000..ea75dc4da3d5 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_french.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Sephadic \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_hebrew.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_hebrew.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_hebrew.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_italian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_italian.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_italian.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_portuguese.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_portuguese.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_portuguese.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_spanish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_spanish.txt new file mode 100644 index 000000000000..09900046e96e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_exact_spanish.txt @@ -0,0 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// empty \ No newline at end of file diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_hebrew_common.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_hebrew_common.txt new file mode 100644 index 000000000000..00357f9a6659 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_hebrew_common.txt @@ -0,0 +1,86 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include sep_exact_approx_common + +"E" "" "" "" // final French "e": only in Sephardic + +"ts" "" "" "C" // for not confusion Gutes [=guts] and Guts [=guc] +"tS" "" "" "C" // same reason +"S" "" "" "s" +"p" "" "" "f" +"b" "^" "" "b" +"b" "" "" "(b|v)" + +"ja" "" "" "i" +"je" "" "" "i" +"aj" "" "" "i" +"j" "" "" "i" + +"a" "^" "" "1" +"e" "^" "" "1" +"a" "" "$" "1" +"e" "" "$" "1" + +"a" "" "" "" +"e" "" "" "" + +"oj" "^" "" "(u|vi)" +"uj" "^" "" "(u|vi)" + +"oj" "" "" "u" +"uj" "" "" "u" + +"ou" "^" "" "(u|v|1)" +"o" "^" "" "(u|v|1)" +"u" "^" "" "(u|v|1)" + +"o" "" "$" "(u|1)" +"u" "" "$" "(u|1)" + +"ou" "" "" "u" +"o" "" "" "u" + +"VV" "" "" "u" // alef/ayin + vov from ruleshebrew +"L" "^" "" "1" // alef/ayin from ruleshebrew +"L" "" "$" "1" // alef/ayin from ruleshebrew +"L" "" "" " " // alef/ayin from ruleshebrew +"WW" "^" "" "(vi|u)" // vav-yod from ruleshebrew +"WW" "" "" "u" // vav-yod from ruleshebrew +"W" "^" "" "(u|v)" // vav from ruleshebrew +"W" "" "" "u" // vav from ruleshebrew + +// "g" "" "" "(g|Z)" +// "z" "" "" "(z|Z)" +// "d" "" "" "(d|dZ)" + +"T" "" "" "t" // tet from ruleshebrew + +// "k" "" "" "(k|x)" +// "x" "" "" "(k|x)" +"K" "" "" "k" // kof and initial kaf from ruleshebrew +"X" "" "" "x" // khet and final kaf from ruleshebrew + +// special for Spanish initial B/V +"B" "" "" "v" +"V" "" "" "b" + +"H" "^" "" "(x|1)" +"H" "" "$" "(x|1)" +"H" "" "" "(x|)" +"h" "^" "" "1" +"h" "" "" "" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_languages.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_languages.txt new file mode 100644 index 000000000000..9a1935a87df5 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_languages.txt @@ -0,0 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +any +french +hebrew +italian +portuguese +spanish diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_any.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_any.txt new file mode 100644 index 000000000000..fc08b5a1c4ce --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_any.txt @@ -0,0 +1,155 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// SEPHARDIC: INCORPORATES Portuguese + Italian + Spanish(+Catalan) + French + +// CONSONANTS +"ph" "" "" "f" // foreign +"sh" "" "" "S" // foreign +"kh" "" "" "x" // foreign + +"gli" "" "" "(gli|l[italian])" +"gni" "" "" "(gni|ni[italian+french])" +"gn" "" "[aeou]" "(n[italian+french]|nj[italian+french]|gn)" +"gh" "" "" "g" // It + translit. from Arabic +"dh" "" "" "d" // translit. from Arabic +"bh" "" "" "b" // translit. from Arabic +"th" "" "" "t" // translit. from Arabic +"lh" "" "" "l" // Port +"nh" "" "" "nj" // Port + +"ig" "[aeiou]" "" "(ig|tS[spanish])" +"ix" "[aeiou]" "" "S" // Sp +"tx" "" "" "tS" // Sp +"tj" "" "$" "tS" // Sp +"tj" "" "" "dZ" // Sp +"tg" "" "" "(tg|dZ[spanish])" + +"gi" "" "[aeou]" "dZ" // italian +"g" "" "y" "Z" // french +"gg" "" "[ei]" "(gZ[portuguese+french]|dZ[italian+spanish]|x[spanish])" +"g" "" "[ei]" "(Z[portuguese+french]|dZ[italian+spanish]|x[spanish])" + +"guy" "" "" "gi" +"gue" "" "$" "(k[french]|ge)" +"gu" "" "[ei]" "(g|gv)" // not It +"gu" "" "[ao]" "gv" // not It + +"ñ" "" "" "(n|nj)" +"ny" "" "" "nj" + +"sc" "" "[ei]" "(s|S[italian])" +"sç" "" "[aeiou]" "s" // not It +"ss" "" "" "s" +"ç" "" "" "s" // not It + +"ch" "" "[ei]" "(k[italian]|S[portuguese+french]|tS[spanish]|dZ[spanish])" +"ch" "" "" "(S|tS[spanish]|dZ[spanish])" + +"ci" "" "[aeou]" "(tS[italian]|si)" +"cc" "" "[eiyéèê]" "(tS[italian]|ks[portuguese+french+spanish])" +"c" "" "[eiyéèê]" "(tS[italian]|s[portuguese+french+spanish])" +//"c" "" "[aou]" "(k|C[portuguese+spanish])" // "C" means that the actual letter could be "ç" (cedille omitted) + +"s" "^" "" "s" +"s" "[aáuiíoóeéêy]" "[aáuiíoóeéêy]" "(s[spanish]|z[portuguese+french+italian])" +"s" "" "[dglmnrv]" "(z|Z[portuguese])" + +"z" "" "$" "(s|ts[italian]|S[portuguese])" // ts It, s/S/Z Port, s in Sp, z Fr +"z" "" "[bdgv]" "(z|dz[italian]|Z[portuguese])" // dz It, Z/z Port, z Sp & Fr +"z" "" "[ptckf]" "(s|ts[italian]|S[portuguese])" // ts It, s/S/z Port, z/s Sp +"z" "" "" "(z|dz[italian]|ts[italian]|s[spanish])" // ts/dz It, z Port & Fr, z/s Sp + +"que" "" "$" "(k[french]|ke)" +"qu" "" "[eiu]" "k" +"qu" "" "[ao]" "(kv|k)" // k is It + +"ex" "" "[aáuiíoóeéêy]" "(ez[portuguese]|eS[portuguese]|eks|egz)" +"ex" "" "[cs]" "(e[portuguese]|ek)" + +"m" "" "[cdglnrst]" "(m|n[portuguese])" +"m" "" "[bfpv]" "(m|n[portuguese+spanish])" +"m" "" "$" "(m|n[portuguese])" + +"b" "^" "" "(b|V[spanish])" +"v" "^" "" "(v|B[spanish])" + +// VOWELS +"eau" "" "" "o" // Fr + +"ouh" "" "[aioe]" "(v[french]|uh)" +"uh" "" "[aioe]" "(v|uh)" +"ou" "" "[aioe]" "v" // french +"uo" "" "" "(vo|o)" +"u" "" "[aie]" "v" + +"i" "[aáuoóeéê]" "" "j" +"i" "" "[aeou]" "j" +"y" "[aáuiíoóeéê]" "" "j" +"y" "" "[aeiíou]" "j" +"e" "" "$" "(e|E[french])" + +"ão" "" "" "(au|an)" // Port +"ãe" "" "" "(aj|an)" // Port +"ãi" "" "" "(aj|an)" // Port +"õe" "" "" "(oj|on)" // Port +"où" "" "" "u" // Fr +"ou" "" "" "(ou|u[french])" + +"â" "" "" "a" // Port & Fr +"à" "" "" "a" // Port +"á" "" "" "a" // Port & Sp +"ã" "" "" "(a|an)" // Port +"é" "" "" "e" +"ê" "" "" "e" // Port & Fr +"è" "" "" "e" // Sp & Fr & It +"í" "" "" "i" // Port & Sp +"î" "" "" "i" // Fr +"ô" "" "" "o" // Port & Fr +"ó" "" "" "o" // Port & Sp & It +"õ" "" "" "(o|on)" // Port +"ò" "" "" "o" // Sp & It +"ú" "" "" "u" // Port & Sp +"ü" "" "" "u" // Port & Sp + +// LATIN ALPHABET +"a" "" "" "a" +"b" "" "" "(b|v[spanish])" +"c" "" "" "k" +"d" "" "" "d" +"e" "" "" "e" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "i" +"j" "" "" "(x[spanish]|Z)" // not It +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "(s|S[portuguese])" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "(v|b[spanish])" +"w" "" "" "v" // foreign +"x" "" "" "(ks|gz|S[portuguese+spanish])" // S/ks Port & Sp, gz Sp, It only ks +"y" "" "" "i" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_french.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_french.txt new file mode 100644 index 000000000000..de636f862180 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_french.txt @@ -0,0 +1,91 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Sephardic + +// CONSONANTS +"kh" "" "" "x" // foreign +"ph" "" "" "f" + +"ç" "" "" "s" +"x" "" "" "ks" +"ch" "" "" "S" +"c" "" "[eiyéèê]" "s" +"c" "" "" "k" +"gn" "" "" "(n|gn)" +"g" "" "[eiy]" "Z" +"gue" "" "$" "k" +"gu" "" "[eiy]" "g" +//"aill" "" "e" "aj" // non Jewish +//"ll" "" "e" "(l|j)" // non Jewish +"que" "" "$" "k" +"qu" "" "" "k" +"q" "" "" "k" +"s" "[aeiouyéèê]" "[aeiouyéèê]" "z" +"h" "[bdgt]" "" "" // translit from Arabic +"h" "" "$" "" // foreign +"j" "" "" "Z" +"w" "" "" "v" +"ouh" "" "[aioe]" "(v|uh)" +"ou" "" "[aeio]" "v" +"uo" "" "" "(vo|o)" +"u" "" "[aeio]" "v" + +// VOWELS +"aue" "" "" "aue" +"eau" "" "" "o" +//"au" "" "" "(o|au)" // non Jewish +"ai" "" "" "aj" // [e] is non Jewish +"ay" "" "" "aj" // [e] is non Jewish +"é" "" "" "e" +"ê" "" "" "e" +"è" "" "" "e" +"à" "" "" "a" +"â" "" "" "a" +"où" "" "" "u" +"ou" "" "" "u" +"oi" "" "" "oj" // [ua] is non Jewish +"ei" "" "" "ej" // [e] is non Jewish, in Ashk should be aj +"ey" "" "" "ej" // [e] non Jewish, in Ashk should be aj +//"eu" "" "" "(e|o)" // non Jewish +"y" "[ou]" "" "j" +"e" "" "$" "(e|)" +"i" "" "[aou]" "j" +"y" "" "[aoeu]" "j" +"y" "" "" "i" + +// TRIVIAL +"a" "" "" "a" +"b" "" "" "b" +"d" "" "" "d" +"e" "" "" "e" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "i" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_hebrew.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_hebrew.txt new file mode 100644 index 000000000000..91cf5ba458fe --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_hebrew.txt @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Sephardic + +"אי" "" "" "i" +"עי" "" "" "i" +"עו" "" "" "VV" +"או" "" "" "VV" + +"ג׳" "" "" "Z" +"ד׳" "" "" "dZ" + +"א" "" "" "L" +"ב" "" "" "b" +"ג" "" "" "g" +"ד" "" "" "d" + +"ה" "^" "" "1" +"ה" "" "$" "1" +"ה" "" "" "" + +"וו" "" "" "V" +"וי" "" "" "WW" +"ו" "" "" "W" +"ז" "" "" "z" +"ח" "" "" "X" +"ט" "" "" "T" +"יי" "" "" "i" +"י" "" "" "i" +"ך" "" "" "X" +"כ" "^" "" "K" +"כ" "" "" "k" +"ל" "" "" "l" +"ם" "" "" "m" +"מ" "" "" "m" +"ן" "" "" "n" +"נ" "" "" "n" +"ס" "" "" "s" +"ע" "" "" "L" +"ף" "" "" "f" +"פ" "" "" "f" +"ץ" "" "" "C" +"צ" "" "" "C" +"ק" "" "" "K" +"ר" "" "" "r" +"ש" "" "" "s" +"ת" "" "" "T" // Special for Sephardim diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_italian.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_italian.txt new file mode 100644 index 000000000000..76cf14b132d0 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_italian.txt @@ -0,0 +1,76 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"kh" "" "" "x" // foreign + +"gli" "" "" "(l|gli)" +"gn" "" "[aeou]" "(n|nj|gn)" +"gni" "" "" "(ni|gni)" + +"gi" "" "[aeou]" "dZ" +"gg" "" "[ei]" "dZ" +"g" "" "[ei]" "dZ" +"h" "[bdgt]" "" "g" // gh is It; others from Arabic translit + +"ci" "" "[aeou]" "tS" +"ch" "" "[ei]" "k" +"sc" "" "[ei]" "S" +"cc" "" "[ei]" "tS" +"c" "" "[ei]" "tS" +"s" "[aeiou]" "[aeiou]" "z" + +"i" "[aeou]" "" "j" +"i" "" "[aeou]" "j" +"y" "[aeou]" "" "j" // foreign +"y" "" "[aeou]" "j" // foreign + +"qu" "" "" "k" +"uo" "" "" "(vo|o)" +"u" "" "[aei]" "v" + +"�" "" "" "e" +"�" "" "" "e" +"�" "" "" "o" +"�" "" "" "o" + +// LATIN ALPHABET +"a" "" "" "a" +"b" "" "" "b" +"c" "" "" "k" +"d" "" "" "d" +"e" "" "" "e" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "i" +"j" "" "" "(Z|dZ|j)" // foreign +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"w" "" "" "v" // foreign +"x" "" "" "ks" // foreign +"y" "" "" "i" // foreign +"z" "" "" "(ts|dz)" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_portuguese.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_portuguese.txt new file mode 100644 index 000000000000..02d7e7826912 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_portuguese.txt @@ -0,0 +1,104 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"kh" "" "" "x" // foreign +"ch" "" "" "S" +"ss" "" "" "s" +"sc" "" "[ei]" "s" +"sç" "" "[aou]" "s" +"ç" "" "" "s" +"c" "" "[ei]" "s" +// "c" "" "[aou]" "(k|C)" + +"s" "^" "" "s" +"s" "[aáuiíoóeéêy]" "[aáuiíoóeéêy]" "z" +"s" "" "[dglmnrv]" "(Z|S)" // Z is Brazil + +"z" "" "$" "(Z|s|S)" // s and S in Brazil +"z" "" "[bdgv]" "(Z|z)" // Z in Brazil +"z" "" "[ptckf]" "(s|S|z)" // s and S in Brazil + +"gu" "" "[eiu]" "g" +"gu" "" "[ao]" "gv" +"g" "" "[ei]" "Z" +"qu" "" "[eiu]" "k" +"qu" "" "[ao]" "kv" + +"uo" "" "" "(vo|o|u)" +"u" "" "[aei]" "v" + +"lh" "" "" "l" +"nh" "" "" "nj" +"h" "[bdgt]" "" "" // translit. from Arabic + +"ex" "" "[aáuiíoóeéêy]" "(ez|eS|eks)" // ez in Brazil +"ex" "" "[cs]" "e" + +"y" "[aáuiíoóeéê]" "" "j" +"y" "" "[aeiíou]" "j" +"m" "" "[bcdfglnprstv]" "(m|n)" // maybe to add a rule for m/n before a consonant that disappears [preceeding vowel becomes nasalized] +"m" "" "$" "(m|n)" // maybe to add a rule for final m/n that disappears [preceeding vowel becomes nasalized] + +"ão" "" "" "(au|an|on)" +"ãe" "" "" "(aj|an)" +"ãi" "" "" "(aj|an)" +"õe" "" "" "(oj|on)" +"i" "[aáuoóeéê]" "" "j" +"i" "" "[aeou]" "j" + +"â" "" "" "a" +"à" "" "" "a" +"á" "" "" "a" +"ã" "" "" "(a|an|on)" +"é" "" "" "e" +"ê" "" "" "e" +"í" "" "" "i" +"ô" "" "" "o" +"ó" "" "" "o" +"õ" "" "" "(o|on)" +"ú" "" "" "u" +"ü" "" "" "u" + +"aue" "" "" "aue" + +// LATIN ALPHABET +"a" "" "" "a" +"b" "" "" "b" +"c" "" "" "k" +"d" "" "" "d" +"e" "" "" "(e|i)" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "i" +"j" "" "" "Z" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "(o|u)" +"p" "" "" "p" +"q" "" "" "k" +"r" "" "" "r" +"s" "" "" "S" +"t" "" "" "t" +"u" "" "" "u" +"v" "" "" "v" +"w" "" "" "v" +"x" "" "" "(S|ks)" +"y" "" "" "i" +"z" "" "" "z" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_spanish.txt b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_spanish.txt new file mode 100644 index 000000000000..b900e7e84a88 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/com/cloudera/recordservice/shade/apache/commons/codec/language/bm/sep_rules_spanish.txt @@ -0,0 +1,95 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +//Sephardic + +// Includes both Spanish (Castillian) & Catalan + +// CONSONANTS +"ñ" "" "" "(n|nj)" +"ny" "" "" "nj" // Catalan +"ç" "" "" "s" // Catalan + +"ig" "[aeiou]" "" "(tS|ig)" // tS is Catalan +"ix" "[aeiou]" "" "S" // Catalan +"tx" "" "" "tS" // Catalan +"tj" "" "$" "tS" // Catalan +"tj" "" "" "dZ" // Catalan +"tg" "" "" "(tg|dZ)" // dZ is Catalan +"ch" "" "" "(tS|dZ)" // dZ is typical for Argentina +"bh" "" "" "b" // translit. from Arabic +"h" "[dgt]" "" "" // translit. from Arabic + +"j" "" "" "(x|Z)" // Z is Catalan +"x" "" "" "(ks|gz|S)" // ks is Spanish, all are Catalan + +//"ll" "" "" "(l|Z)" // Z is typical for Argentina, only Ashkenazic +"w" "" "" "v" // foreign words + +"v" "^" "" "(B|v)" +"b" "^" "" "(b|V)" +"v" "" "" "(b|v)" +"b" "" "" "(b|v)" +"m" "" "[bpvf]" "(m|n)" + +"c" "" "[ei]" "s" +// "c" "" "[aou]" "(k|C)" +"c" "" "" "k" + +"z" "" "" "(z|s)" // as "c" befoire "e" or "i", in Spain it is like unvoiced English "th" + +"gu" "" "[ei]" "(g|gv)" // "gv" because "u" can actually be "ü" +"g" "" "[ei]" "(x|g|dZ)" // "g" only for foreign words; dZ is Catalan + +"qu" "" "" "k" +"q" "" "" "k" + +"uo" "" "" "(vo|o)" +"u" "" "[aei]" "v" + +// "y" "" "" "(i|j|S|Z)" // S or Z are peculiar to South America; only Ashkenazic +"y" "" "" "(i|j)" + +// VOWELS +"ü" "" "" "v" +"á" "" "" "a" +"é" "" "" "e" +"í" "" "" "i" +"ó" "" "" "o" +"ú" "" "" "u" +"à" "" "" "a" // Catalan +"è" "" "" "e" // Catalan +"ò" "" "" "o" // Catalan + +// TRIVIAL +"a" "" "" "a" +"d" "" "" "d" +"e" "" "" "e" +"f" "" "" "f" +"g" "" "" "g" +"h" "" "" "h" +"i" "" "" "i" +"k" "" "" "k" +"l" "" "" "l" +"m" "" "" "m" +"n" "" "" "n" +"o" "" "" "o" +"p" "" "" "p" +"r" "" "" "r" +"s" "" "" "s" +"t" "" "" "t" +"u" "" "" "u" diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/org/apache/http/client/version.properties b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/org/apache/http/client/version.properties new file mode 100644 index 000000000000..dd6b60de640e --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/org/apache/http/client/version.properties @@ -0,0 +1,22 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +info.module = HttpClient +info.release = 4.2.5 +info.timestamp = ${mvn.timestamp} +# timestamp requires Maven 2.1 diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/org/apache/http/version.properties b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/org/apache/http/version.properties new file mode 100644 index 000000000000..2e3be079e97f --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/org/apache/http/version.properties @@ -0,0 +1,22 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +info.module = httpcore +info.release = 4.2.4 +info.timestamp = ${mvn.timestamp} +# timestamp requires Maven 2.1 diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/recordservice-0.4.0-cdh5.8.x.pom b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/recordservice-0.4.0-cdh5.8.x.pom new file mode 100644 index 000000000000..c4e7c48d2678 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/recordservice-0.4.0-cdh5.8.x.pom @@ -0,0 +1,9 @@ + + + 4.0.0 + com.cloudera.recordservice + recordservice-core + 0.4.0-cdh5.8.x + POM was created from install:install-file + diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/recordservice-core-0.4.0-cdh5.8.x.jar b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/recordservice-core-0.4.0-cdh5.8.x.jar new file mode 100644 index 0000000000000000000000000000000000000000..675dfa32c44e3755d8dccc6ab04deff391dc20e1 GIT binary patch literal 1279848 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
  • Eq_nBlg1BhE$d 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�FI6aHhmW!l5@=Wd*h=V{|*(N*-~ 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

    3>ho67qSWZ;!$BAdFIo<_0zUe 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

    %kSHk!N9EIG0CL+7SpQZPenFl0A z{j=Ha-i$B^vU*8PBjC2VEdD4GW$){#^f#LqYkX=Dd&?&@jr4b(bQB?a6q5ZCmYMQn zTW6tG+SjL-?<^u-@({)tC3h(j0+=>Y`0}|Zp)j#hf;~voMT*itOp$~4lxIK;?;hEu zd?Yi?VMIquPeLeJoZDdy4Lr`4y^rx!0AR7br)!iC-% z4k7d2M%sh`9!^Eh(VE(Kc~JfV^3jk=(fl51@7iu6Q!2rj5YZ4jV*SJ&V9mL^C~$TU<>d z7A9V@3vlSeyXnPuNsMq*9Ps0ISPiI>*zgFrBCf0ikqL;a)~|13i<&M1>__p&Q%%@q z784Rqb?uotGyGw~gh}Z>(b&kD;;qmpgL9b?cVc^0Bxtn~DpEF)51vL~(nCLNIeaWK zV^-LG@OrBR9t*~Xe{BNJAAV?LJP2Cq4yi3U+FyN#dzUnMG&bo2x!CK^${1GgC?Pe` zIBnOi1KU~AFooP^A2Xgz#N))#K>s?Q?vq8X+E19INd4a!N2~J@7ma*R47s_ zL_sh|sG#FhBJc`t{Ty{K)JP@OK1Z2F2Uz{M2tde>u$R?~WkS5lRqLJ%wGQkh-C?xlF`N>bSL6odKU+=|aIqxp*oFEyLCC#JqNun1j zphRE$RG&mO%eJbP6!d<##-6Y!IESY$(KqA8yc-%buHwyT5SiDht!=%s&vF!}WY$_s z&n46gXQ1P9tbXK#N5`(BMq>&qr+R3PyBcUtd>J`js|H7ET6#npZ*G~w(j{xdxAJq# z>nnXreOg3n8X4B#^M`0u z*lEOj7Sv7C$_Brf>=~0R_AUp_R-NX4TgN|gCYb#hcX)=62t~i|%GHawgU=Nz1+Mpm z9(f5M$PjJFOu;R$&H&yZT^k(LhcC(S!;Rqk?mN?-%i~Z}Z_GDsNJA3*pehYbNb_(B z85FM)?HM$&)p9KT5-W^KP=5(BQq@lHJ^c^ERRmDkw`n)OdA!6M|6Gh{IziRMYqNm? zIkfZYS`Q)h-85zqtCfZ!iP{v-+7!I--L=}(A!Cw^L>j%MkGGw7(st8@F% zrTo>?!BvaFYr3Yn5xp%kZMA0nY4`e195LS^$va! z>ACsI=x})j{@|kToid4mLbK*`_3>LjHmezsqb-K$P11}4!JA#}DhwR6ki~ElZ;%ta zO5?PU_wii9dS&p}vtc-1Hqkm>R1FD3N6kO0nvq0#h_TOO?~$K6G1*BH}Fif*hm$s54y5Df@ZlQ1?BaU-hBph5cPt)y9-EGlEZ%WX6HXsu=79v%~J{8QUVwUGl`If(?R z)81A5ab??}mlYN)FnI~g1!l8SxJ!ejx^C+k2dUE~1;N`k1<6};Kn9j%`%vk1XIk+^ z6X%UJ#Gv=G?6Gf~bbCtab-&ttyGcOm(S-SObHAB|t6M;kA)UGEiud=kGA6gzRQx#| zp!+WeqWyiHM1ST4|D%&AC}GNal?{II()+t#bx8B@ics`=d>RK`aRIZ{a%l=ls$yjWx%I9|O&ER!X*V#* zixHpW1k-P~EpaoXbSdm%!|1HwH?$$zas{19pcTcd^ukI$pPSaSeSBhEOLd~OB1tm- zLRXub1wt(~*~Gn-azXlBCWlgD4qjJ!tBnKY@*DNU7Y28fODsD`JbJkGYxCPU`OKKX zRo=T`pB~gaR!b;(HFB8Cf&&-&uhi;7I_ZRHl7sCkscpb7b{#Ugs7X0l%!$70_eR~+ zpPRyO)YLTEaihyhF>3~|MUNdli*30EI)i8SrWRR*ykgi{LED@ZAS1c8E&WhTsf?kR z((AsHE=!iA@~jkp4yh?D(!Jj;VtS)@(&BXOUwHvK!;0T}LiiF3X7frODort>MAwz_ znHMGcxE+Vw=py!a%b~3$&5(Gno2?>#bs13Sb3!LMD^8jq7}@ z`#Gj&8JP=J0>QwHfkthVK&eSnLOsF%G?I=)sjJU%?KdV)W-$Z1Asw?~(2kh#^B z72-{%M=ijVJuOI;pXt|l2blH?^G0_YD=aU;AkNA#*0%=?SIg6^%wo%-S^`kItG2$g zW4-hM7kk8u|@i7C9hHjl8 zSvka;xEA(TSV}qx=b{Y1X5W6A3@WMd&g-0B-c3ELyzO3%?Xoh&8giouk+#)`B}@s8 zmKWuUw!};2d(qAse}24@iBkE-YV@G1b+Oo#;IM%E%E$W_h6ftm@yOPeCTZt(5@OAU zuIA%34DsPW4&KG77|4sQO~m7UOrT!o!$B+dHnz>1|Gqd>M4CBQ!VAa$tLXCUD{DM^ zvFufA`(^@3yWW% zp4#Vq3mS<&Ta{D??JH;@#LyYfhvLm%Jw=tdj0{H-Y5b2lD_NICZJG%=37QN+Dvs<& z?3kn=rT~Y_;YSt~Y27-5TL!eR?}U+R#!?lrv^Dk9DJqFEaO%ldmn4InI*|%Agsb&U z`a#@)y=+IPl6m#Y821Eeu`)lz?`1P*xJQCW3-tLc?yGf!KufZzsN|(@K%kTt#{qaZ zT1fRPDSnlxK_HaH2p0$QmoxKXRfOw2zpY!lh(+#65G=j*LB1?)ow8xPn;ID`SYhSNp_qVR$pUG-Q}Z58E@|OQo^?l zvy#uUvw}_F&_;tjd2oN@!6=?c+OOY%Lh|2Z?MpY~dXJ0%{7H=m%%@+(>W9~&c&Gji2>;O;1oF4DSy`I?F<$&(Z#`U zS9ZjoFlAv?(W7rUTYA9O{(V)=vL+s9+65$%aqsiheRAKc6opVEd1Xqj3GL+YgV zQb)ADS6Y+yN+#FO(gh`rDZdS>V*p$27F4T%eszJGo(YWqln0AUN+Ov8X$S8bDcIoy zug5=$&_K1vi+nnr9eYpcwN{ps{X zrT7%Q5%trUnZ90ohzLcIv-X!Miz3r z=B`$}iLTxeceQ%%Ouvw%+bYg0TW~xT8VhnOkh0V-oJU)hA64_w1{VZN6DS1?PsF+SRbhCPA@())_E(ZClCR<(Rlkb0!V;EV)l*W>hg zPs=WpUOAamp@(jpRWuv==gQYAt4pT`<11&^tS0o*9EF7*ZntG}Rm0HwNzzdeJo_u( zfX7uD5N#Zn^>(h+VK4N}w$Vcn&kZ9-Ahu!3f;{0c7vpb?1CPjUX~uslYO!1|w)NM7(<3`bBU`Qo^+7w*PsuzKz%`6clAj30N%OYu4h?!Opy zI=g^I_tGCNR_ef41kV~XS0DwCXP8Foz`dMNLZ*28w9_>OBbKL|zMF0dTR?oImo&+E z0=8kd@q~?Q#PnKbMOvRUL*8o7VL@7tc0=A8Kg7oc$;%6a_7tykm-KObMJDbE5k0@C z>LC@{mBYfRJM0KMBV4Y}gWwZ*9CwDfk!z#+{`#wJ3)5Q+xB!3&#Ss5$hx*-b{{O+1 z89!+aXcHJX2h`>kBP#q#EeD=A2UC>BB2|Eo;7NtMtEg>_Cfr_tIQo3wA-r<`J<@8S z!k;E>;~>lC?R3`@=)jiL;3FEcE!HZUoIlY_uT2T2-evu)9Zo6$o;bw{ zz!R?sL~dd~+9o6H+*>*gnE2mWFuZ_4girJXCpyb(oT%^c4)iFLepJ;qR4l>p$a=(K zj%i&GuFT54&N~CUDe{30%;%3T_t88Ek4cbFRyI&b;a(ui%H+)aH2n#E`b0~KRcx&U zAOJDrNtv07T!cV;mxLO@f|?N)&ZcHly3U)VfQi*8DW>a-u^QS0iKcQ(zqtukb<19WIpk;?z9Tqd6p3Iw z@@lh#VHG%u(k(l6Zj@)OPzlOYDb>oadUYsOL&=O%G4Nw&u7almG;?!Zo2t}1GRuVF zPc2V^OO0N3dBeJh-0u*XC%qVeFu)ky`$aHf3EFMwdASTU%ydiDC}2I_S7ytOL&eDXKTO_N z&~ZcK#Z$DtyZo_G0<+sxU(BMgO}T}WZ7hr}mthS$UKe0JLpWX0*++1lh_sh&PqZh2 zWG0tha`6!nQ!aSOeH*UXT2FY5NHQ;FeF&oaOYx%a#ji%8_)@39LBNuA_m@l7?|%0F zlL0kKMFHUA`Weq|%AEzZTJU*x@EBP}`j{1hEtMoeyYd4_U>sxoWHO=g%T8;&rTVvR zdrYPW0MJ^Qm(*r_W8lZ1BGy7qPJnxl6NW30fKs_dy{l>0gDIe-T?L1h_<=bya25$f zoT(2}fLjP68>zHrU)s=78FKS|d8ln7l0AX+t_x&PAjRX7C+6z2sT8t5EAyg2?5l9U zEOZ#|_;i?wN8LNhwk7#AEb>q$0{E8LNMZIBc{G9bx-ru_3exxuC)eDam*YvLD?r7^o|AS?A% z{9GZFEf zqn|L8IbUhb6615^JCDGxf`q|rRPW4qXTe@o+>0)7o*1*v((_#J)YyFTu`G=~)w^=WeXkCeYED5G5bJxg=W*w9lW{tG zcSkX&hE6#-<|6|mzV~AYu|Z!yFPNcvoeGxeCdBY70f+!1`;2*3ey+EDodq^5)0^!1P0_lS@E>Q=t=g#G#$Q#S=r>*oRphK>@ zfkW}1>e2$?!f}oq&*j##J>dVOwah*tp_~FJ;7EkOf-k@O#Ql>o+eul*2JqJ1eys|N z#v|@Wh04Qv=m&W0F8TG?4ezcNPi;?YpR%qcncU5nV1U4b()_M@FUBc2G5KQ_G+1O~ zX3YKi*h~Z)aGRe+8nlrJxNHD5SRjksrQFxXv#uy#>a~(cu2NL#o(FSi$ROZyFjLSZ zR{ydB4G!Xjfi3kVRj_PqLaNW1S)hG_j(e)dGB?&xn(EL)1*ZvB&jKy}(9MDx?54E= zw8`7*WThXW5o!HIpUCUgyzD^4O=_bnX5 z7?ix2i~*Wog|xi0e+U;G5yVE|*_new%$L9dnfqurP@(@xt*1WG>T0 z5{6^GpbaQ+=M%Y1@892sz^w+cv2B?n(;BF4bhX}o_o@q9pcYm|tT@|>F}?K$2jS`E z-EL+r05X%jQZiioX`e0P&k+2!K$N7JmdBjL#*H3(+|Ce=R)|&hCsV=cd zo9I;@fko@DTkSiA#`XCDX5kf8Fkwefs=rlLoKL$_UKXdy<_ClB>j#B$_skmKV6>__ z4DF_-al9f}1~w0Zx*9{~@T{t{LQ{|WSuJHZz46Us!nbipb3=dYM*kKwJXJVh$>6w* z5Ebtn<6ONvFEQU6BhkJQkC0HN98g`HA~-`m8ceL%@9*0V`%Xt=#bOJMf(A)5Dg`7} zw@zES22;zosc3})7m99Ac2oa^#ab9#Dk)_Kt?N^_DAm=ze?N)Mwbw@Io`-pY{gWsI ztkk9c#T-kU@Zfvy=Q~u={glT^tLP&y-s5r7-cB2Rxvf&nFUE2Pb7IWy4EmLtJVwRW zN;d0k8!N@8pqRw)J}HXuhW_E{@AMVh1gnguUdc?<)k0yVji; zR{m(+*Tk>FEgEVmeS`@^po59$$v=FqcSZ-rvDW4I1nfyAJVG2~ib0Jj@9~kC2@g|v zfjDBwZ8vqpf1+_B^$)>f_@moJFMuw?{L2ULj{qk=z%oy7U}@uIXk@QPZ*OE^V{hnS zWbbTdU_|d=s%L0KuV<@gU}{AFhqc}T@Y~SHfc~ErSbBXcdJ`jS9lbxo+V!m6etKe) zR1|)y6}|5(*&*F*p-J)Xnyf(+HOzvHoZqj&F%g5BW+bbP=7}mg*Eats>ijI{b&S7) zORAn2U!jHAw~PC@=Hh}siP?784b${qD%-3Bgt(go$3K(y(tv2ucoHQhBP4F%lFEDVxHCDX>u_=ck^&;bS@c+OWP{3*sEOz_Z2C;T*Y6o7DYHX*h)h9GPN{mNIx=zj|zz#e3y4elAMT-JeAUj zsrhU3;rm6=e(rN4g~BbvPpCa1jiEvc-rPU@a-SRrzO=0$NxAl|Xx>4lG0U5t@n7Fd zWn&kFw>7v?sWt4%8V_Qq#XLg`)4}#$j~Rp5pW=ZUUl6U;^Mx@!$^~?Lck-DeUp0Tc z%$=~c4RXSj>8XupT}wBjT*Ufvt4fHn;Ccy3Bc>tMz+XeTq6A@;VtF4opsm+j`wc>? zK1X+zl|}grhyK|a@K@~7E*LUI8SW-XvgtnZ*jCdgWA2O|En5%l$RY)Hzf0OSteD_w zW~>-n7pU$-JnslmA$;})*qw{}<~-QgqFnc@BrEIk!gLVIpgYb3scJMSY1#-FG>6c= z=r56h@ecK<=}%>Go8h{O)u;o|l6>P4AaL&O-9XwQ`4_D2BBNa)Qz1hk)d-8cWBlYb z;;L02Gcn=0imLWRpMC3rg3TTXJY#uLZY5@vK&u?GT>0BLL;=WuqFGmT8$9MK*&jTk{2C8r@mwpS0WN&L!HO|>A-~BwRh###W({*QhK=dVq_2|er^!3v(L#o4&I}!T2q83N z>H)VWl~}tLvw%K?JYEH~>lf&mJw1?gs2NDqe3(PHORLn5htx6nA}(Y}z@xSuPAj8l zLtnKhY2E#NWp}ZcASRc986o$6qZ%ayjuJCsHx`li$A#rp)+XlT;y!Dz8C4|@JoynZ1>R2%!H2m%8&I2vxw|+ggMUGK< zp)iZtzurn*pU zy?@YLbUJvlAa$aO(xGFgF56}*{ARGR|3E7~_FB+Q!?i1N)*mr?d9wfZc}&x_a51Q* ziG)GclkJ)%|0_hE8I9Tb4_k#(L9J5z2ij#yybFp1lZrD z3^mG;MDcH;rpu+ykhrJ7&TZ)nm#=3SNQfflIoB;~KOKcFy}pVmhkH}O6P=P_ZmQx8 zx`pL%i!i>D`wN2Y5y?5pS{~2c|t4=SR%u#F(%-$;uf_gCA}t{1|RW^E*|>8<%8G=ol&5dg9fRiH+s_nYx%$o>rYjvA$XDzd4 zr|mfSIEHx;gnLkX$4;M(c~DOL^K-DHU6UCuuRFA45Z{LSd)RZT*hbW$&WbLq`f~nt zl}!f_M^Q`llRxebyWM=s7Qn`j_uqg)|9p4Y>*<>r{1K_p9StZGXa{t7mxLH51vdb4 zr(BRxokR+{&Zxv7$aJ9_EHY~19v&w6X9!UJrXo$&+wKRpdO`3u)%Qzq&^B2fpb43X zign5+JJ8Yein){_>FfQC63v)K zCEiVOWD4wfL=PY4qig%$!W{CVQC@wUL0KGIwcC}fd~dc@~}&kI6paJN)yV6`6@ zHwhqk96|9N??EN)MAtvq^G~EwzVPQXhkVivMn--4)jT7fGpz*eZ}lu*4AGCMq$szCag8mp(C;Qd^C^ul#OH2@xiqC~ASx%Q;BbjBcRxWb-8V zG|1@zk&2DqS3j3P>+EcjZL+_FZf(Y6(eXINiByP$| z^+aUt6pF$D5pL{N6(UZ6J#lMeY9$&6Q4&HjZQwcp>1QVBSo7$KJJnu%-`^KyEC)9L%E>v%)01m zfxCrsO}TRQxQUi3YS+41*5Pi+8fn7M7&L*~rKFMhXnh1ZGhc*r6!qh6a4k}2^_e!O zMTRyN&)RkOXRu>SRqK@BPaTu~e!x-)Hi$>Y`XK=ohRRDVh1{G4s~oK@S!+qjBx=BA zAbQ(Vy2O-kryS2HM`EIH&AVtRn?uvJ5#qJh!4!;b865FN;0HeaLC#^mTfWJc{9LAw z&MSE<5cj*s*^xxIvNPLJbJ$LVZS30Eid4|81)t_1EiqfbvlSS=;v)c#AUL|j!_v1Y z2ymrI4qBn`PEp&A`t(N4D4YhSt)#$+k$P1CStl< z5TQC<&CwE?26CgpUQk)WEA$w>W=r8QpA9_4(g|s+XM3pNpmrR!-O{Y{d$1G1Q-qwpd>b?}#igg=1&gLvDx16OwxcJmJ0B_NOxTtnhNLgL>-=4{|^eRye@WP|>K`=C<^#ZL4TNw2KW$O z3;3Yn;g2OiGy5zfJV2#ABMPE1YM5sl+Dq z1pb+L#HVw5D=`@xECSblH?0BciTSLSB2@MAhtP2&Sr)$y{YSAZ)Z!@^(>ssvryN;3 zYl}!$^LGpE{s*0c-;y$Fue>4sStY(YtcLGdsn(BXky-Dy=bfUac_)Npf4$2)pI6q= zdiq{gN#`kbQH6z=46MgOK+~-?znIif@%`AjOW`~^_wG#bbRwfS>}N#E^gx6be&Z4ZIUhHh9A>esI{IKM({Y33`2DL78BO=8W<&LiGv4{YsuJ@wmOs zzDpK#pp7|?!KY8?-w9cZzY!`-?kauk?_;r@no=Dy56rsRZZ)J8Bf zsFSDG$z{s{n9LfgO6ZVe$mBhqx6}uH)6$G)YeNT0)WsP4;&#;0Jcug!|j5i(jUpQth?CM;!8RqUBD# z?nz-o^dRRbI2anB(L=UA9HbXK$0S%DxlhA!4w}7wAGRMz!7hn5+WX$4kIga!K1dt2 zVuBg4*W^?W%2uhvaLn>5Wi>stzW5Fhidhw<7&=Sq88O4Y2DM8&(SfhS;Nq zz>ycxFMD~8rkeIOs)Haf-OO|G`1Fa-8!52RY#9gz*G2THflpbzwfj%j9{c~Og^_}Q zK;8f(I`RD_==eQSqd!lXyODwEAMp3T6zl6^(y=K0P~`{VT7*;I3(^LxLoA#%@|co7 zgD^sbBV7rzH*DGzG1JR)fkcZDrAt#ckeB<90n_?G_@@EeN-#jvD$DI$S(uEd_bd6~-H zukI=R;OI-i(Hq0=whU}%Cv}b%D^r-C!MpW>1VoTk@i=Os-+Z*Ull0P7g_UnIMd;Qx7%+Sg4?*aRJ!2XrK z`g=q$e>%bbWO_iO6OlT754526y!aNUM&a2Y>qv5w=* zR@Zs28cLzyY;7`;mbO_BQMr{2PXR{;Xaq#=X+wc{izWB?PwDMi!<*7DP;NJi%}h7WYn1q5{&Ja5`h2X74Y?=7U_pOKCoWi%mT^cFiy;?<*&AK)H3r z)i@wz4>mw3cu=$J)JgK=4w@0rptmgFIn*?GqJsf?)rFZ`JX&!)nvp+l5WXI*%cE9@kTw7JZsbgLbLK@6jGcCx34n zI@V;s>!Nf{7I>C~O-_1w55AFE-Zo|1Qfb>S+ELexsa!ZbwoGhp23Inyg<$8-JXLpF z*Pd#q0mA5Qeh=$iHaggamlOW_KsNs4=JownF(fgG@@Z`OaLZ?7##=vRhmk3`X}%fa zrvrc0m;7~44D(jRN8)dmE)!#!#EY#R?t<#I6GcLXU1Q($h%D$T!U!#}Y8#4V@Iu&a z%@*`oEs9Q?d#_%&9dYl68ONd3&5>6I`S_fLjMsPPb~R;Pm<~Jzo6wbk@mH}O?(cLT zTsunWw9ukVsl-IvZObMo4~@v`({7k*omA*Em5; zFD1ks-{@8KXx~Ung+Sp+n4MECAUmpC5$%Tg|sGwHf z*yQ~H@n2k7X1p?1 z8Qu!=8VS|+aB;#FmEA~df*5beeWoxNZH{k z$iz8mb`y?kv8NC%ohl_AzoL#Mc(wv@!~>T@*7>PmU(p1qOk9+@__Gib>l%e>C{9!W z+2`@+oWdXNfKRLeDhkr ztuohC0Fi;knM(HlX4dXX1{&8@aOw7S$@7<}FhByS)B`EE_ejdTi5$y4%k-^H-2*uK zk@Y2rB-bIWOvzDw?nKzf>3L_kd@9rJ6R+T1ySDhl1fkNwO|Tm`4e-N)>HFYf=Za^n z!Cr>14C2~mO8smhmkGP+dl_>1mK(QUv1(Lio@Q&~BIVG#WDQYW-&e!Idk5%A={*w} zFuZRpOV+JCzGt3g@hWhhrC2Y17mrO98jmx>?SC$jy)Pwq6_4kAl8tZ?e{wJ3EY8Mp za(B@*x^P6eW@NuC7>~PUl3t#|AD=e%d2zxOf+)c&`(yCl`q_+(e<$UeB^TAhSdf~M zatx|K;g5KQw>(EfjRx;Zfaxi_Xe(K(N&e19$6KB|L*$znV$`|kYp~5LQM$+z{2Xzp zr_S)__;YH|ZySDIK!ra*``Av84{^6l?|vz?D8d(Fp8;64;xDo4@6ikVY5xB0Y_(Ea zi3XH1djYsw1^nDR`P*tQNp$)AiqLPd6;tNanEL)A`o$g0t?vO7n1Co0z&~VSJdxQv z&KJE&%v}Sz7jB&U?hrYsiU{IGs!w52SWykC_d{OVCIfuJJlKTMb$fD(?R?|o%yg-gql@yf*_ENyhu3(d$yw7p-Ntol&A z31h~ujP8~cqsrx`Gy;a%Tn7*1+d$E=BJ=QAytt+$^FPihtGpwA;cp+Q;HbiHO%^_3 z5%Afj0=BzZ^EHL7t3Gp>X?fzzS#;tdmc5c5@?2MD_v!1XNZ2bDZHSU|1Ly;+Um2zK zWA4xSsS=$CJOBaB%d%54!!r0rbMIHiuPIBMUy=v#l{S7>GM{njZa{_*NE1kcJm8Tj zFx8VxPTz@TT5oZ9x_#CM3B_n>cTQ`|a`Mq5nbN_woViv#ORUmx!uZ@+st@Du82hBI>MupUU59EDCo zmWY4B!=f&l7qP0dpXh*s^I|$~X|9q0B5ozlCy@5&-4>)97)T&wU>3?2%54G`0UbC3 zq6qGCrO2#W5gwDk0(sX8=c3CEmX1Betjh@`_>B4P#@w(XC|`F;_R^J3Qd^?1ve%MU zV-5K2+DJecqxi)61E;Ko1uUL<(CHHrr@GxFjsNkrY=Vgyz#TW5pePr3U_Ki*T5$>j zpBFMLBE3u(xK7nz8?shvI;Luo-v^-p*M2mlB^;q9;R}&+mnJjCZKaeZQ3-~7hMN&^ z7BlWRnCw1iyjoq@IB48v(8`GEV!5u8F*@-5m|?2es~NgSf4Y`Z6rNCuW3nXFOGSWyrkRzx0Op5Q-Kl%7Dgcpdb&O z-(GmV`B;&KBruOwEp)nuMj({AIV+USeU_Vt_L+o@jqzE$1BqZGHeeb+M=&N*Ndf2x z5VMX$V?s0wBdHmd>pN8`r=9Ldta6Kz4QOdP*_v0GhzvV&l{+`4UVVc-S15hZ%AbW+ zjX7Z7WzBo`Y+Qe!R;;d-Qk(AR**5tPNcpv!01B;+H5FUBl4?6~G6&6o8BHpiv}I(w zJ{~j4XJZ$-xMQ6^(9dS5L&V5|iEkuBJ=LK1$wVF9mMT zFl9oVa0?zB!ofJOTf5l*_An7D8^Ic&n?+4TnP6JkIa59+1X zz`ee+x3Di_k2E3^G?s@xgblDmKO908?-rmEFW6QwA`Vh$nt;`_D}|&{%q0JWu?7Lj zPQOb&+x%m*8_fWo@Ow>Y%Ymu0%Fv0t5Zydp14(}mqLl?2C^Sg?Oz1X}5@C4gQ_(qe zeim>VOvMfSY)4YsiiE%2sYptTh-$h6VXb-OK;Jx(`$dMMWlH5My-JzEc@yffb7wD? zGWiK^AaktQdhEUpb~aXxWJf%+C>d)T<5D%msewY+P`#dG4r+q$Dr+V1hmWQf5gQY! zH!Hfa2W~m2$|y*nmYnb$x}WA=SigAgg5@welB{ z6nQcvR;{x}y5(2B)J!v$E-s(PGrQY=w~URv2@iS!ihdU2hkx^RD1z??qgQtC=*5v4 zd)l)$&@8!Ys;ubSYL4t7bMTfSFyHHN2}Gu|sMmvL*$J2-@+q&ITA*fU;j+IM<=t1M zj&53OQ)VP1nr*~k)rvqb3QAQd^NcTK0iTn?7zLELDPHa9R!le9qem~+-=%cyacWKL zm^fmPYAxFBIf3A?Ss1xyq%Ml;VsAAf$_(n&E$-jy$V51-;4ghRS2goiT4^2LmRacR z=RE7Lx*|vbO_pj`5o=@5HNCnSw&&St;IDk&uegk{PPSi<^iA}ER(SUEmVX8C&$NE) zGk4ZCt_im`)zKb|G>YkorL=7-qIJ3A*vwwypzLRrJ86oOE${YIx{9}FE}LFzb#Ono zztgWTt8lXQNj+_4Q9?h5n(CM)FUg-i49LdR`edyr{Bb-va%ZX)|Cvd1UOR?$#Lc)+ zDLJca+HVP%V&;Q7OH_m zm|V9{(W!lw3m8oc1~vTHu};-h16_~57_UiY^j2w*q z-n{?by#KLz|8}LxfAEnjj{j7_b{tTO9vQhL3CP9K@WyTH zt8G2u{;_xG%YitNvm75EKfO_ZYHC$QpCaqpv;&ShcyINyNV@T7`)bdx_Epz+jK#UX z_U^e+CV4-=-u<+Uc#^`7H^``%ushU5*1-{(!?8%S;hkwDwHR?W1<#keF(NZtiYv*58G4Dh%$$>G(=B(l|HdfQI{ zw7z9{W_y3UIn`3SHTXOM^FA9VZG`^x?XFQp_B$1jSp_*g4T>L~^n~H6Ul0mLtxGVV zZn;7Z#va$wqdlL0(TAqGsg}VyD_G7maK<2rnQG;ZF<#Bm>ha5#61GQha((m@FhQ&m zW_Eho%d1sX{ky=oMwu^PpT zb6amU)3(y-l#Y26&wBw}HuB~>q`)|cjR1bn=QtsRv48PTcqwMcs<6CuiGD*2UmbEZ_aG#nV_Gl8Q7 z(tfMco6fb>dqY5q5N!~C!$T4w*4*BvwR730d+S}hb#y(LLZK_K7Hy!LKy+qSJnutL z*A7)Y8fweD-{_CT1Cetet6qj}Sdd~kngTYAI6wKQcZ2>@Ib*H^GgS^?+_V1jx%Iby zW&Y%k{bwciPd2og82#satAr&g3&?P+Ft5lzJF%+@c|A?K>qT9HVPPVS zSTA}auYn9?7>eu}zkk__M`eyA$>e}s8)JwKVTjGdK=ler75v^vB3h%4Kc2otJ#;|h zFy3&y?NwQ6O-(*u*b3`AC`1Am`I6qWzVXjvIeQMkQrUaL=tIy)?x^uXpk=}lP$gN(5yJ|jG{$t)p^4gaO_;83QyKR+Zk7vW2}J{ zQ_9SmVCL^P8MT8tV0Q+n#~j(1M~L2a&~2^;g7J+IOn5fM0Md&%Vi(zeB=a6zVBy9n z#1B5h&Jc4K3>yGg*`8uh;bEwb!QmbFpT~0B%`%5>+U`}KJ=R%`R0LQf<(Z{BO-Y`A z`LH`8i(vV>f>a{~&-duaj4yhAg#l)z#9XwAj~gk(&^+g$!+E%pqJobDTV_sfUzkVo zF1dfKL-=^J9q62EZd~iUwLkvq7exor%)9{53xp! z==ZdU{(MR_a@8|%{AY`(k>a#9K-26A5NpXRlOnMw<740Yku-@!*&3b*yK(no$p&$` zy97R*w}x~(DUZgp9Ji+}Ek#+QHFf9Hh^td=F@KT?G<_QgXGo3A z`oRF#{X8* zQI>_+2qSNNDd^#75fnZ5BvP!GJN|546!39@;zD1AxP!iRFSOW5q67yLw?Xx4y0G@m z<&ZoK3~tf0=K`q~l!-25;oC73gg?1|_kgz>BwZsq58RF}ohTKwB_K3}#Ldfj_j)Un zCwR#?!w^C5PXdK_aWAwf!h?(^;8}L53btx5x{6p}LV{U7DgMFz3F363Bq!{AqL7D; z8<2!p_3%shYRdh!%m{FO8vqh6{_pKvTEFcz;2%@|hd2G-rY<9;71=qTYE^AgSDX4 z$WXE}#bH~@6nbPsi$?@Zg~J!3aHa&`nak@+Go+0bmLrUKo<)QXWV7M*_L8L2_@^D% zcwJojh{kYUu@A;=^s;=-+edxYyM}x=$nJDL@`=wf+DF}x>~u(G5w*x->8>edFSs0q zP}apU1F2nG^Yytn>ZtLGRN_VdwistjLf6uQHJ&eZNzoikrFqqNo*72Wce9Hkt#Rcv z>V4QA0_?afNDg;1ah}Nqk##qPvg$MiXTQuf3v9nic#czZ%T??&WEUeXuoB@sWOp73 zF;ryN&Yn0>XBm6NNYDso1gPEmHaL1LaXNK-wbaksyvhda$VT&W>wzZQ+v+QuL)Y1g z-IP)O&Az7V*-fb#wEKtV8Qqz8M@yE>=F=0Gzc4~ARFOpF4=1ztX&XK3@LU>}v25|K z@-XJy0;5~?mEB>hccP2r*DkeImBbuNEh{BI7ARa6&USg3OpGSXm&dXSGYd17vpwmT z)tA-pcA4ONrL53Z`PzQ`MBMm$t~e9`+;ar}S6|uRr&a&QSN2a{;D5advy)Dv{lwcc z&Zvoy1uSNDV)U@OsFsVYq|bL*dY?t81O-`tiVv=;0w7$KQO#pmz(79>iI;ypB$h@d zJ3@>$o~wr)F>R9Szr;HXg$IZa;K6rd6{zw9lu{U{w0wlXmN@%>oh}%C`7^h!^TzNH zrb_TWtGq1;pCmxzf(FUDrA9tO!3hkvs7TX#$fwfzTR zjKVB3B;Rf_zhwLQD4ads^z9qFw*R+YgdV+Q`b(4GmYsCdM{Gd7I<*tR74$L~29GtM zUR@AdoazY6va+DUb_ZaF*t65-A0rhnOQ}U>7;k_z%oRP$%Ao^$W|1f|3*V#RV6Bi* z2^pr|OONO+&agalpXG6vGke8K%8#U1jZHRGz7o{;;J5@kpd6ni$4tm?a%zR>jLgw% zFnCH?E{kikfuUe4C6s(;NaTNBI@FgfuwHxB>`J}G!;>}BHUnB3n#c z@QA5h^J0b|o`!_rtu_cRUbM|!ogLD8Hbdpd7Bso8Ux=j~$Fde(BVsykL{jB-)_jn8yg3oT z<@z2|GJpe+Z6AWTz@3kvq`6`r#h?^5)(pt#mKic`1oW-vlK9WaQ$|ITD$SV3u_oV* zWFxtLMxst!hy=#a7sDryIMjpIR3O^zxe=LbM|D03J(0yQP4W(*Rk-9vuK)xZi7%J9 z6Jo(sI1s{o*Tk=Vm07i<9&zN>TCwX;nBF~*v_lw*#El$teC71g zudv1*$(Q-mxUnTZkILu&5e+Lqbf4+sG`Bcd0}D0Ki6u7@thacQedBYU!pU<+LohM%aL&d?RWq(as%AJK<|& zF-gO2d4?`qq4g6<{ya(}ji_$$C0F_}qn09<1^_JKW5vx53{q#1Y zI^8B|=47uck_;w^gRA(qL|tfns>%n*9n_b|?P17RrhH!4l6nVzrl3*eYwM$N` z>u}8stPjHV$#tF+^eHXtz> zjOq+Dqzlw%>)CP)aYBV-gj!JKhI+ zWAzSRiaydY{~~(TL7Tf;5bQ-nfa>v(9r_UmW0!|E`??WiJ>i;TIQ)i!fUnmeo2O7D z-NcboAYN;ebUYj0Hxcu4GsNk{*N|!g8Spl7OjrKiRq5e`Hn~iNRDE`w06TEtMYPyW zfu=>RG{+7GxNvA_$M3U z-}mC*_u?<|^mlI)e>UL#eQXhcve=)$)DwRDKk3-|-6QpHPaWWm@z2VS;Ie<^pQWxT z%Thy-F;IP*VD0Qhu0O%#aNR{o%L( zuRh3a){c?w(oQzY1!a>we^4f@)5$A2e=f%(wJE30&*(i&bC8)o+aUosE~KN@9W**Q z?K3akfYxfhe#%j|EcZy;WG}RPqRDr`X{2P^Jh+4zvzPv%*lK2YJ_<4+gRM3Q{k}ff zrdo1Nlz%<`is&Ot>6BbrM2UB7oWv0`c@{&XpLk$sz>123dz$3md~^g+%2n`(cAZoi z-lw~?edlho`0$5XIdq-rY6WmBa{lG5_`8w(FH_Gy{XBoWEdCEXuzsJ*;t!nlzuUzA zF;;&`)c!Q@{68aVI|=+PakqUrA29d{CNA6*jAI~7KgP&YcQPYA7YGjWe^$aH+wm3@ zlCP;iRT{-hEQ-)W+OA5fP-!96_HZgY1xc02zs{;*>`goo#!;p9?#@ylK3Ixm!~S3F zy;F3cTe<~W72BxTwr$(Com6bwww+XL+qP}nted_2^f`Ub!yflxk9!}wpOU<0tpEGw znri}Ms0sJ++W%+Dfy8@i?qxG^>qq2eS5IOqs4K7)Km<0+^s`(p^cR~3-KZk3(ro*f z?0?I;_5Yfv75d6+Ji+cLuJ?)@l^aZ^5S6GUcg3se$Z+wyOE^4*uT9Y?C%rS{$o`AA3xZC5c|I+V*k5| zhX3XN`p=pAw>(pS_wxH6zt=yNrf+1z?&AOO-N*eAG)WClrsp4FFw)jRoEH1AvP+s3-K0hoN;jSh5{ z(*OfpSWV2z{@^>61`h9V0H?v&WAlx^AD(;TXk-p$avnEfzZlOLhjbnQ$^4d9^$Bqj zs&FhWK%Ip*2zFI0q))spPI91qV?a&`wA!EV$l{b4AU-_alEvZ%@p5>SJG!xJRh6|9 zq$UXG58pjA4)Ce8+x$aS>u&(mEb9m02r^d{=B0I$Ug% z&ko-=YRdVuRW0*DSGJoAZQm#jequJ2E^b$yp{D#P$g=pl1%iCt0%dJM#EQ1*CgUur zaBajs9e=0wX?U>qn`K!tEaPmOWpk6b*2=W3@?~J}XvA?>eP?4h?0K5}$1O1FOOVyZ zC=rv6-*8o(!+>l#q1aIgNB)M985=(P)y_Jm{dEfjF3L^nb;*7I-5EftUNN5!z|`^e z<5C$Z}X}$I1$i%Kp^y5$Sss^{X(*767GXG1E^>>5!|LbS^&-nVc9AAI;qxAnV zF#RXa;op%N{kw72zc`luWhrLF4F~?gj3R0XMe@=Y#76(qeG$6V$)Jl+fKSLcHu=PY z$aTK`J*!mkq8h-ay9w+jNBncY=rO()OoZW7+?5{va`)W@Rx=McA3h>*Qxz#;*3{;N z-i`Y!B1AS)=v>Yn6<|Mv!6OZMWbeEAS44=N1Y(`czQ*@kDz=n}4`?QV(qH(w%2+Xn z{$B9F)V8iyY1`X7s&& z6ILhRG_6Q>B2K^{-PG|1mwly~*K_@FQYGp}u6@R0b}XfdM~ff2s&XkcWurp8a)g$(@rPkn=ji1pFp z*Bbom)aAeXX#Fo|kA%%11lApea7LUdq*C-nC}A6fIM6IV!o^JYH|3t9M(`EyEi`O0 zd3Xf$y%%kUolH>YYkUbs6pEkdn&EKJc?B{>7A)ZYKWFoQ1;nfONF`)i`-(H>Ap0>- zTlh!Fn;%3_3X7O*_<`log>aFZ0Qx}L2Fc8Fda?3TaRi937KSd9oT!7?Rn*g(-C>yf zAt({0sypB!W8H_t`A5F6|}=B<(onTy2`k7Nb8ZS8Grt46+59-^-I8ltb!+> zF~Qarm@cMV9*M9K5mDyPqZLPo7N)@jT7CA6X3SIMU226s^7aXEK#cS(2V#5J=b13D z;>)+W_fFtx4aAaDxBOx)p~WvWA^+)PSjI3^Bi=cQG5ZF>YW)=H$Jq%;qu);hg1JX8Pu$OA z8qZn3AC)|xH+BBd&XhloU@d)}E#AL`Sbz7~`d|K?|KO{COMLbBovDAYqB{R0V~teS z`szmhlCi3++rIHOf?r-5FnH?L73eVoGSCqgW?Bg^*H-8fs>IP5KHqfIb|(R>Q0J%a zV{W)#7DMj@V|)0xqbO9G0;u~;l0iuz>}87VH>{N8lN>U=SRA2k7RySa1zO+2j z_d^v^uwNdro< zH-u<3ZdD_7R8Iy+dUWHV!$wu|6HnloqY8asXp{}RV32m9a;ZW!MdsC=lKQ5%Twve? zm>pVg&U^xE8R^&MJw;y8nR*>mBlr%DoW}wYR!$ZbNeTt$kW79IY!p8G%{dR1@@C7M zvW{`wx3;)z-G-VHGFXPj1@D4OU?4dcFx~xhE1FYOo0Ii^XW7{?7FxR1fd}0gM;<52 zqxo95IQYm!WXg9wm;i^G^Y|on?w1;`7Oh=R?{{UPc8Ai(vX3CGoRxb_wM>GeV#4Op zM@5kd7-jB^wrZskkDCt>MEMMY;-ldgw%d$DJk2G;b~B?b*#$Btp4^Q0HuS(P*e)+r zN7(MY{52GhO;NtNnDcAkXGqI_5P7miTnZ2OLkBXmNa~8AqMK=R0cVvX%c`myEY)+} zl3V11{ltNe?M*FB9^Jjmp;qUmTak*J?%xTuJ~*2XA}DKtmwhZM``kZLVR=}kD#b5Cc#Eb~p$*==VR~~`h`Je< z{h$A^2xXO2NP3p zapp*4^A&&Qdwtaa7sXkYRnlEY)G8&^9%&HIME8-T#u{5zE+OGz9*{;_3Udcq08vf=B%&!Sj_;=T)}cwoo@5NaEY9y6;2T>No^i7ta7`L2bbj-jqi@~r~JJ)A2fh!ftU|2E+Oagse; z7tH(JA*0GKqAtE(RG1ID5S-)qnZ)@Al~CJUCcU$CLI!*=0iqP%#IBt#Z5!GZ%FckLw;PO*YZFjwu-%o#UQa{fRt0Vu{hDCa zi=aXYzL8anl&U`JecKQTk^abTvTkB-IPx$`%d*Eeb%@8Zoq0 zdv#e?HO}l_Q#|~{R}a*e*<78vSB{fY9L1;|l~a?GD>o}AZ5`p8D`XMUsz>*6A9>EN zm+*VK3^9FGsA!Yl<|C%FJP0$_`sMQhgdw5^{Jx@R7z0X)^xy+B0#D*hz(Gd+OzuQ; zbbv`&`I&7QqwUaS^_{gzOE%2u7OfeOU5+tfj7{KXR?>`sm*FIX7}?Mjcj%p}!EP}N zuxnDH?OW)d9liP$Q%-mE0VGJHgPf5zAP&pa<}s%mzawsQNBIKX2FK$<27T-E0ZBZJ zBVkPhRm+E>#6Fp%n5KY4fEV$>@v%X_RHQ=k6`YW@1I~wi384_JkPxt((5HD|jofo+ zNN!HG7XY24+D((J#5bFdA(7X^8$qHfXR5reob}L``M!Qq!W014&i|+f56T`fJrjn} z<+Wz~y~q;>N~NEG`G}YDE6vMhCMELGGT0dInv`l$hA6hgBx(kw+NgE6Cb#}UVD`yM z-N;@D(iFf>J8p}AYHL}5HHuc@R=I4WbBXIB>nZ96US%cz@z+IOk!{6~^@zUjkGuz&SFZ48^v~kO38q8<{X>p+p#BUv=1AO%KrB zNe>n*sdjKq7-(M{EQt)oCa13|h@S~F2BtE@sBsaQ33H)Th(p5ozy_y%j1`bIoxhxs zl*%p;`~Y|nAF>*XFH2K*Y|pC`5b*#n(k0V5ek8$H_!+Z|CXcy6UJBZ5s(`t| z;-Y1>1?DuRt)c`k3-#}fs>FFR+XR67bVfcQ1P#RQM!MYzdlA@}P+V0i2>60lRtC8J zZB|lj3olX_XpH;hDDS9ksykMO#oD(c}sT;^nXrLZf zK$Asbos%MOBKhQyZOfzcgkA-Q~yTpjO9a6Zr^NIU9!a4yn4t`od{XK)HvtJsW20_HfE z?kF+cFv410=(a5C7X9cl&Uj(G=XgG7;<1eI*P;l|iP>*O+WbI9WXBQ8!Gr9JV-CSR z)O0-r0FSoin*97t(KK$ucCrj*!i$G>6D;Xhve=z=6E@ccujZR=Jw(LvaRem?iGp>X zIl?^i#1tgeCB#y_w8X(Vc;O1i5q4C+)=@cj3m-K1v;fWHePEmkuNo*rZv_xQup6!} zENyi0tYYJj#~m|RDCd!2ZCTjE@gxYDd~IWGdAXZoPt6h~RQ3(!TxsA5rLfr#A)TQN z#lT4zp@%E;r(+QcHE&f<@ij#YA9d&9fYu+mg(C~lv9E=|Y_)OX0m&B4eclKp!G$T2hgq0RDF1Ug=4?3o$FSdq7+Fe%FB+=M{8BZ&Hb~8CizsBRYqGBmXW}=uOHMY+=9% zuM}jJd4I0f-gsE|T}z^uGUTI-&!shg`Q5R2AB;A$>Y((OaT>!`J_Zc9DN2)0XitGC zziF>xpe?*3X*<9!b=G|enNET*CD;sqGHp%F>J|hNo9`h=n#A!0?@E+e3GaSsOe;AzVhuxOb~ZqCS4_iuIQyTs%405gv~HwnJ@A0v8xoYD)Sq03_WF?~?V?9P-2H4hRG#(g^u%lEu|p4uRsVcUY5zzThzSJIG=NM)hmsU}?jm*zsmiJ%p~Y>qJF? z+6*Cu7`|OsYupPfl87QDqtZ0`;;#9I6EDOtNK~}Wn_8Ll2K2^jCmxfV zt7{7qL?tpvYBH{?wpQ`0{*1)O)3Q{sMoy5+rU;LCb;;ONuq2Fa3_{>=JbsK#WmcYn zU2J_c<<^6>$f`U*(QqtB30f~oG~75%OJ7HOe7Wq6nOnJF-YBZAwaRJVIn^k0!;(vN zxAQf}(57Z+<=eMNDY`KcToM~DlO;(pM~5yUJNL=g(~Xx~?^v{Diqxk0p?x`ZwIiLs zb8-2Gy{Uj-@?v>GqGj*3Ls^YusQ*U7coKVtsB!$1`HNd^!2A~KbmnfNDgBCh%hJ2+ zLp;!2F|tUx*rWu#c>}DGcB&0cucFpz+2?FYin@xpZ3)3$VtAfm1|@cp;@5M%SqJ{C zo6yIh$I3-F%!WXFsdBi;1N;(Faw&H`o~2IenFP81N$FRkB;ApeN^W}CxOEZztcr~C;N(k4t%&p!FzzTD+zh-c#tVgPGVxBL6b)xHdQ|TU z|9+Vr1uP-VYY`Uph`|P0a((FKm492NeYV47Av+Lm5Ou}kmtFK|)+%!>^Pj&-lsR6; zFSa;n9My{LxtH^?o4%5=6wZSaQ2~FunnMIaWhzu4W~l5bxVS{^?-zn5*$!cRR+MET z9{~pd7+2=8v*t04;g3j@4Ib(ciE$iCHqc|&&%0=PJICYQLAyeJAAqM=5i4SYtrX5Z zHItYgyLM>PD0eR0U$IGM8bVmEVWF}P_h7}~Sy=7N3ro|}_$E;tYmIjsU-#4s>*0!_ z`NL$?gj104Gmx*L9%i2l`$tuw{9~w@)h67_cz% z20>5@Q1?4C^IXu^a*8o{@q4f$j_G3*Qj)T4&;>@?U>4O%)*Z}L2Wu(0iI_F{XT`X9 zwcEVb408h8yOgw{u~rzd)d%b#LbaU_uJ&rA`Sl04Pn9+ilvF@3PrOYWO7Bc+OjJ|M9k8Vy2{Bat7kxg z%#`w$pZQ`C(Uzm_4i}=E9#W_y_2L!VWDzV$-?3W}_eI<)fiutKrD||z5KW>qjDaPsJ~-(>4N&U)*fH3OV&QL+`AkwH8fi=1LSmLHsFh~IFa|q6lr$V?mvQgOfwE7-y$FE$gaH0qQ5!6pB8OE50W{naN-PHd`95BBz zy12aAq<<^xuJ<<1S1Mp{0l))muSVTW#~VX!O`mz~8RdCDR1SVI1o4Fs^- zgf4Yhf5CIIT;gJ&wDO)TjF6cimtzyyw-~}nyH;o128bDn7brrb;cW=oG`ZS!`v_Q# z&TL`#ylb#b(Z2?JH1e1)Y01+g)z|dUxKr+C>gm5^S#Px2ewCL z+r%e3ZVa|YJpi}-YRJOQO)JuQzRC&pB6W51?taCGWD4jr+y2{>2NzSHjGCC&jLy94 zbFSu?#69Uvy~)lKl<*)yVnfC7*g$3({E4({%n&)+@Kv2RGk* z;!b_Jax0ica*4c`ls>P(U z;;?ay_4;w81k|~^k7oUul%|Ds* z@nhC=yhuS$u3`C6330+;V_QV)!}ms6W|yRnTIQ*!9P`@=~^| z7oFJ8e3}&fwvhq?R7HO&Y4#)<_SN*7#L597h>9DGDy;(jB%L^L|KM}B0QEqTyH+(1 zt9Bn$ED2N`mLCql^o^G9ze}-}!q>&b={JTG1H|VV1UyfdB!uJ##@|yc!jni-H_pjq z&0L`@otbFMn-ZX-woJf8FMvlW+^y`L`( z?Ul2wWDWhXLruk2$3+|6$1ezl%$Kz<&HHQw71GPEm9CR3KhmH~F;+`FB4Q1JR&NZW z(UxK{wbEiaxTy5TnP(PemKl-S9}$d*3m$b4hX;cZD``W!CEw|ZNf7^o1r|L9--vwLniyWDTh{Zt`JPCfBMJAcg*^y$JGu#=ON!uY|97twGF*CGlV8S#EI5C}`|#sl z%8oqniIqgC{d!8<^~p*KRUKFK%9;H|vr(c{ws6{|GoNeiRRB|g5)<-rtSy{ z8&!9;nsw+rheT$YQ~u9T7aQ;?xU5h1BiDJ9_-EOkKJRNV@A~R@*obWs$Skz$@)Wzk zW0SF>AgP;zWGv4bABAr_2saJ*GlZJ}Hx>H!zN95riAKyS*S|LzdYl_=-9?V z-i&IxLx6JwAr9ZOj6C|D!#Q}mYLPFebW4+oJUgbGN;c)a&u+^3Ihj9UJu_UQPEOoz>Wh zI_IEYY?;zumPGx1I-GxeivJo8;i$M~y(aue+!a&+x2P`#vZrPCyr6X;I)W}a^m;G= zg_%$#f9$y(+RAsFU3RJ2!=U$2cR7Nk&{xQP97ki(5PYtfukh(RW8kRf6NJI}wBU!5p|n0uTWqJ__^I)rSOXB0bN37AApwa780Cgv z0`X~8>^gUS!`i;V9I1OTWgP7t2Azb{Ne}9V6CK_?fbz>CDdE0 ze>~+t1V?Sjq6+~?ru>_;FptKqXU#WtPtYJ~ z$j-0LcN8Ot4MnmQaV4|O_j|v9Ck+Y|CPHTW(#64s6)j36Br1o8J54N zC!A2p#|+|>B>QYfxlOTRFPqA4&ppJ)i}1{Te>`JC%6{ngG)~Rfk zm@)SE+hA6et9DRy$~?T9eYZ;M61z(_b4oN$XIv{>VVsO zTDCg}f@{D$AOmrzHBs-G^_ollT0~bBq-QYW?y8R3Vnjo@GO9txM=vru`mL5so2JvPIQJo zeO5KE&@@(uMNA)BK)P$;r}*^~I(MzGj#Y0qQ-(?l%9Ia%L($lr5nW%G`K7xj%S6Y# zXZcP{4w=N#i!(INsUz)~;I#m>3J}kttWCQb=||>saS*)GYeCTLEBm%U6Wj07ps<`5 z))SezIrQ0saqr5V)X%h3)ryC8-QeqRbc^S3-@uQhv}uinW0}uidW`uC8!Sy$rFV=^ zwxRx?e`eqw48IPKeGQcNzYM_t`|N}NHBkN;1Y#A}^R?RHg08&6Vr8V15c=VztAN;e&NDkxbIo&U$wTKweq=sqYh!%?e_%)?f1n%C~mwOh{!C*;xi=s9IX32{$A%V z01LCD*{_M7<)fsFis|P!@Qhm8Qju~jTtE9noR@`D?w=QIBXKardu^=9+G-pNgJrBJR|p-?Z|pJVFg}Vz3NJOxg4mw6 zux62-crYP)bzqQpY=Vh)vOD&JX|O<)d-WptdKz0j)!EeXjH2iZ*5#rIpBnQX z%gHg39U?!y!|Nd}BECtRwlscRPZ2ln}nhwfs zKlys@Li@|~yTAKe`|n5;D}|n@HDRC{0~?SLY zz0Cbo=7IOqpPgSVtFr?#9hR*RYD&H8=Zj0i=;t?=Q0>BMXj{35qX z8^4+XIU=%6d+8#z+RO#7^Z*_sDRgZi#74J0Gl);HVmXP@qtB)=T*7d0_7;fM3aY&V zV9ypjYsD5R1YzN-8m~oaTe|>#x%$|56*265=!qT__BVc3wK*hyE$HP%{CM}&TqY&P zb~xE%6+I*>ajJ1S^|Ue}U$z;=TT-ni*+&r_MN@2{J2o@PC5rhB;qg^Kz(pQ10T0N! z**?Uc&j+>PJDuk%%04pv=K+(BYU^6n1Lyf6rT)_no{af73C|Uol?hk0jARG&nyLxW z=dfkD$t}+Tppo+@n*h{lI|tQ|MnDVim%eq<&Zwd0zFWkOhgxG<8_Qc7(qT8WCBN`QFv2 zdkb0M%m^43SiOc|l2E{y*2U_j9`bsk@=0P+zZW&K3J%lPr$1Q{=iM<84yHia`7vhC z4V9FQxx|;_YJa}ad37y2j3L%c>-IZgUkqZMJ5lMkh_Ic&x}nwB-aLkc&8XY5Nd@yg z$&9o!uqP+W^f?S>#Rev)&nAi>=jDrt2#yj2l4ihAw~H`Uyh0b>3{MZa)Fo4^ZiN6# z%(}Exaf|9maTL`jtJryF10}GVTc&n7}V_zXM za}DLvg{YZ;6z=+>?`WvAC%4Ho$AA(CkTO72aLdhOrxDJ^8+vgyPlOA5#VT|=!>Xu# zME_Ks%9{B{#F-vMa56@@7)68OvxFd%o6vmM7liHFxL~1Kj2S_|OKjW{EN+@bhT4ZP z%Uw7GL*ol&O!TNHj&6`hsnMjJD7rEGRZWJ5k~dy4t4r^1^oJ?DW!96xO-M(OAS?&lI2T) zNU|bLWI4H^a9_89P9U$qk1c*FQ zT5dilCz?_Tommh-4?O<_kc(FfWsRvRG-dPWmf(If6t*B;C)e@8nw_GZV+<_Gv?AOp zhCpJ;#Z@1u4kd8u3}d)#t+wk$t z+q#hk)dz`z9rVhg4?89`ZZEV{=CUPelK5vKt(AqOAu*zz)IsDhyq#yTux;+VDY+S2 zRT7jWT2VrxLubypLDzH6fn}p+Z`p&BXI<;#m7z`hTHMDCLv&@pkM*W-wBnZPPQ59$nc@ zBQ5ux!r;MuU0)Bli``Byza*$ zlnf=2M>L+_(~b8dz=rJgVte)JHGk~A(J*+M@rSCCKfQmK?jc;3(>1qA;4^B_ryb5nVxQ%59iHhyo*3EoCkCH*SP| z1h!lLR*Ib)bNNpUnCIbqSN%asa*Y(n#h2-=`Tk ztI~o)^C6y&8?iBsTl$|^qw^a#69G8!y&ZfN8_vsldeKM z7)By0w~@7E0@OQa3hRYl^CGKTkJ`4;VY|DoU}PC`*&{3`tzfc*cG(EOj2 zr%0sBiiE{SI{7Xd zfz!_Xme%W|3{dYI$?R7vsLn=k)FPmB$^ak}0f&*B!378wNIDx$GB+~-heD4GCvoOq z{rVMbL1ZUkrdKwBj*{{fAzm=c30yi|b0Zib+8kOaUTxjTK(EF=tw9u_HF_Q~D_I(U z{cBg>b2E?p(Y5NXHd1-05U%+8`<-ke&XiYOI;Rl6 zy(qG)Rjr~Oa;UP2BlP@Ur)1ty6hRhhrjK^LUN;tqyyZ=k1NB?!)|PdXNqde*k<@Gz z`}tN*<=)Tdj$$dfD<$%Bp$6`Q*_^>UtZOJUA&)3Sh0a1mO6gKo&w?5z(k5}~o}?ie zv(=&b5@p-|&9!gyUy#fnP8iSsj*k^WhHPZR^wsUw3&PodZLP}r@LBO=!ONA*0NE}K_p zpA3!T8zKl;3v$>|DWqzEwUSlU*hc9Ld9S3UuXdMPxZM>#a=6dHriP#r8;!j{hT5(C zsD&l7t{MfUMVL|X&zk*oN?j0V!9ZG~-Hh}WBx2pmz+X1izxrI}hin6}Jgt2xeE|wA zG$xnb)fSzM8&9J{R1Nhx6i0t7McEe4aaW1zgAq|Fdzp`QRXTwRpS+V@=fY}Yc4Bv8 zc8XdQ)D<$^dKXs(VXRbku%@4 zLZp%=l&+}J3SxhjTa9`6dsU1?pgRn|Kj6dgUvdVg!uDz8rL`44hO+B@9wwOfdJ@{k zYck$es@)96G(k#%jT)u7u>@W#%>?(V{T8w;)Y_%3Z*)KLaf->0dgml(zct$xY4s?Y43URRe_Gzzvt5RW8pgEUmCnT;hKsz+Ng(6U%v1a9EfwS4Xaz^o5cIRk<=}M>2 zQ4y9MV_K|8y`OiF58EEBfp*<4BE7Cw6Y06sBKVaR&3e1Rl%^j(lxZ*2hYKeFmKvxnpAS8WGltG~X{+?*UNfoQyP8&P$}&h| znO9q}i_r~7@D)}==F(cVuT7!IGW}bB3`9yu5zol4yy4ZqR0{vyFFgN~QRb;M_C+cq zZJbe1hfo)M4MgfSDdiRLkE%@$ z4=6GYdefAn^(X(OJ{B$)Kmxj>)I&&G1j*5!sTIuM{dQ)LlD5rBYnD9`F=+Q6&u-tq zS^!dQV<4F2ZExw5Q|0s!b0r8OI#G#< zM2L~mALY4v5wvOs_+?ESL1OW0$Pnc?^~~{Vf%XnTiQ?vc)=e}|6!(+&jl~oDmmH~E z?=AB6GoS1<5@&ujoA(2I@bVxX9F1iUD`h*hi=RS!1p=zuEPtmr(=BryWAaYBTi5-S zvP7%{nKa>AR!a=>xYuciZxWQtUH5fWZd~v|Vhl6;p1t5=HdmVciyAH1G5KdXNM|nGuWiid`E)FlNQ7WwFj;lneV*Ah$#|M z*%N)a(?sj${2kLh$o5&GvIIain(_=aF*sQkGD_ThBe@c4@t6@;w|cBa1ZP*+8ukS=hXGoH+Ty6 zdCa-DUwbOP7(fkNbjLAVfzQhJv@}m~>I!XA&|Kwte&x z*eudw5os05Ji6Gh)4{Nl@>bt$rGB7@=xOBP&{l+OZaQ0Q@6D+oFq7aU|2f0KdDF#t zQZ-AkkwalP>7Rc;6ILU$uQ&^}F&MX9r7s9iB&8%&WY+TWW@sQO7_3(9CGRcmu?z;T z&t^SH>CN&<wleqJ_monNxJR2BQVsQ_-i%N({m5ks>|}LA7F{%e?55 zXQq(L>*6Sx1>6IaPRppHNeWM8>(8e9*fuLw6b^SPbdYGW&ver~Qx^5A_3KOI=Rb3! zKBuOb(7uLK*cA& zOA<$jBq}92mIY>)#n!8IW@(0OvD&0Pk2BvTGS$M?6VIC~@dVOVQdw*^$K}m8)ciQE zePB~XQ$gtg*o>#6Ht;$h@?yu=1A5#Tk+UdV33XdGG;F@5QTmF~h9H3D2f&ZgBGB*n zmkR30;`^PELI{@blr377B-*Y%G>GlJHV9SgVmS@?r5#zEQk{Qa?LK6hoaYZYb zv3#SRhEEbiIBW|Y3XFE#>j-!=0GA_Hjf-+^=cn~NEojoV6_e1^LVjBhE2?8Ik22wB z+_C7-CC{$(;Fldk+8dY795ks8Ude3(#gC(vN(G*93Z_i@LT`b#-CA^pf1)=73lIe8 zg7BNlOQ5`1ERf26!O;b81G2q^Kc1tJRTQ*C5xSHdm)(3?o!l*OlIzLNa=}#7^3=Da zUH#BuAG;%C7pJjsSGp%m{oKUeUPTEcWUY5t@G>K_bKAi2HvDKfHr%CjOVAee z+HCp10GzZNy$o#AYGD|F6~v0!c#ubb@N(L9aphEZw38~nshoaN0B2!Kk?1r*ichfS zX`p!3qfnr_goL!0A|~th_8Gyuvj_}tSs;!R<_}uRab1#8)f~PX0%CUuH2HNk&3EHe zzaz@Npp?j_jO?=ARC4VSeH~;PrB7+(D#e>tx-x?yb|WE&%w>lkLGTz(7R;8u6C+m3 z)iWMu#pNND3hB_|OPf`DI4~JH2dlnm+v{fMWwzF>fy5O(PAU@c>}P^}?Xd~9X4-jfKVU*i!g83Q$|fnLDj;*n`Fn2u>*Z#k^WdibNGR}4_+W_K zyX+P+u}fvZp5ObI9`!8?2sdVlZ;^u>Cj&cd#1XL?KSiZ@L4%zLLbgfeG6O2i-X`i> zk>AmLR(jx5LJV}Ix-}X14c3m?!Pq^yEV&IGOkZWbUujp$o2Z}{lS<(D78IolDL3-l zMkhP((us)uf#^%N-ZNHD-gF4bB6hJg>=91E-7pA$Afp%aj!u`?y8CYR{H0>_1!ktx$+cB zoII5xN3C%6vA5?686J_(7Tla_tyy37fq?SjDdwe(X3QbW|>DS)fbnS#;+=hIjDl}QGmKQB^YRH;7_SUmkJAb^LgCnUS2m|m4|)1mAQ0ndlV|D4j9yHBDnAKO zHIX?%%6ckUCG8r!vs1NKsTeRT9ZU6%3zdJ;r)p&b#I5@%W7hjhVn{2asH+j=&*IZm zPyrwY-9=DnWB`t{Iv@6}z1&YAQyPupB?(moY&OkS4##MX05q-=RtqXnMiI3blZggK zl*9D@?2)8QXnHeKFy$({0S}kx9alvZ_Y1G3t_iol>AD*kPsg@;Pgt9KM_|omM&LZq!h&IX) z40Jz>3TP}B>#(sky88a$(!OCml?wTyi9u%#A7w*ZwR3)Y#%?+5Rwb{Elu{v6$e6Nc z3Q9RtjY8S0tI${o(MsNOYVbqD|3rBgDy-<;aF9kJyMbA_{}NJnGsRDr-v5Ns=Zd86 zm zTVFzg40hXYW5;|DZzjJ(>|LPdC@{Z5o}r)rG=?=2llY_*G2|}`-|vHl#EGf(mAPR8 zn){}l=)mPrxZOt-?ddX!&$sTzuqV_VeG+aT&tlNlEVXehu-w5FR;!*bG zliP+~cLgh48xD)VM+~X*^(bVX(Jugpj^#cB&K($3C{)Ppg@m*vCR$p%qIRc&R=9kK zir~zkB(hpvorv1l|j=lQolfP;>zG#&QnBj`WSmMx)%h)Db*5O-R|j(xzxim3 zo$Bz{+q?VFHq#z#Rc+Lb$=?0KV&Rp~4avq{gi4chA0ejhuxKVGkBg&MzMS|d^FODAK!-e49 z>Jw~iUlKO;X{UnB;=&L*kTp=_;^L?q2d&r|yLT@h0%ZiR#;yHB z!|>JO8y?;WLH84Ux0lOzfjsuKKDUE+bs57%$z-XVCFPz>JeQX(Tc(LqQYSdov9@N- zv~WLtd?(w#YtfHs8JR8_Sf-nl)&PcYQvW?{emFtWepy)|m6jkOAQ5*}8(6TCPYg!9 zPtZ(SO`j+drLUAvL)i!@$$XMTGc6Ag&enR)+5O|E0i-bgUQ9?HMDJ-Kt%11VV4jcs ziNOy&@+3k(@j9pg!M*~7Jl9bNe8VuuyHu2uWgl{)r2*A_Eb+Nw>AZ`;q`Xm!GX3me zb9S5j#TySeE7opK#RKUhltOhp9GlOoCO25)A6$A2F{9n}+YR&YYUB3)@^VXrQ(ppx zD#t_fZBCdYvH5A*dy_^)+5A=vT7O?83myZ5+qO=fB%@%p5v)Q5@0r}LaQh2k4Hk+O zqy`!WZ6wwT5`|pb!9KKVOrrtI5Pb&aS&;vSy|;?WEK!<7DI5wY+}#}t*TUVQaCdii zcXxMpclW~G-QB&Q;C|Kp&wu*dyKc`~Gri_z4lnFyh@Cq#GBV;K>HJYnxYTx?!BXI> zHcw$`wJCdJpzwL;rH{QnVh6q-{jCmnNMDJR7`X0-u66epe;sSOm%{7Cj?}tKM(5aIxk_rum%(LT}i#|*!W)?BYCqo(7ZX7Kz%Ts zy=z99Z-8*|kkqUGx_$rS>{jh-nd9%=>!!cWz5eH1Q~zu-{>?QtGNIFIO%#6E{oA0A zs4hg5L(6TI9ySMobdFsSVn0-sN-UKbiCOZBW?E8i@(-dG$yh?j7(!8z=S~IzaS7;e z_+LSPbnke)9riNakpyI+6c=s_A z_H&pl5)Knc6lcx8R#UHr(Gt~Y*mv#BrXle5xu$>1n#{X{N6p)gftmx;eNbB_A*qwl z%~5iL{VX|HCn;;H)M#0+KYJ{Mr1QQ-aIh*nj%VXU0T#d!J^%!>UJY*3gI=<}!H1q-_;-G?1e>T8{G5 zr{3}zSAkFNxn&DZ&F22keL7 zO*rE=8$kPGEg^-IBguESuiC!ePlH1|T?n5ZSFA@MZy|MvGRD4t8U%QC5y$r80fkAWF}QQHVl>~5lY!J*#O+-a<#IN^C$`m*X_?Zvc(`|X=YF2{=5wovQ} ztu@g>HQ~YUXFIYr(bsa(c1#z!f{hiHTY-hO#RV%*fgwX<7k=#vSmNsbJMxsCwG&0Q zUQUxsO=N+O!*~Jd=apRiw^LaJFJ~15FMF5B=WAOZw&%m(J@1p7WP-Q`G5T;lNYZL; zu&I94r*hvXhXU(M6KUgB?b2Mt)V+wsD{?_KHnr(l>;vQ$hnDqh`KQpBpYBB?)i{+W zX4ojASRz=fRYai$QKZTol&1C~?2SZ`^W7n2Ba;ni7Ozz^xmz3;+e0(3t&77hYiN1N zT|9(*GOyYJoLjF@zX@GI4V69(fHXn-|EM(KFBZ0*3Yyldzhe=VHH6&BQT$D#*A!O$ zFkyS=rxh(1AmUR7VwOuUV&rd@ihdRR3fxHdK?-9sfSSDd#rCAZ*mmAaA}KUbxbsy7 zjOAb(jk>Q|w$fsdDL9nUaJ)hmk@n4I79v2yKMp$~NW)ZGk&vVkb!?U}nHj~GB<(Ik z!aN9w;K=c1#REYjT9sx(F_&{zBfwxR|(T%WH}6`Y?imX)7LCM7CR zvc|f0j!=xIMBL6&UJj;o+>aEBOoXPWRNZ-y9Z%5}J)iNWH{{b>AIJQ`+4bkdwjA^; zo3n@RezD>f5 zL@<7}?e?u53bofG$OQQP9Kj2;KK+x;JmRhlB{!y*y;PpNJj_ zA+{7Li3A(5*;r#iu)Iy?X90I+a{3~M)E|MBcnR#;;h2$b+}81K+ssE3{xczIwy~le z;tV^Nv~}ElUBML=DaJ#JFZ{}ObW5*-EXkS36fuR^`-8y+&!KtoAY(#fnFUn%hjHV2_=>}Zcr`7Q{dC_SWArpD`f<53ANSU%N zPB5GYY4i4@Obsv1IA0A9cPco_t)klW%KUAlv6x$0c zSE^#nVJa*iso)f%gdy@;)zTxJ*5xPWKc9JfvJcrKQHDJZj&K{Et12(}8a6Q0Bf z&U2K*qrjnrXicH!;^cp+E@TIfb^OtE)~i6c%F!V7-4TA_V)AD3k;yo@J&FYHYE#|6 zVrBU1S@``Ax0b!$C0$y;D=YW6uk1hF#{SD8I8dqA?oW9jeFpA%gt;R?A6Q33lEEQA z^gS+=gPRwTn2!(&9Ec{oUx75!Lx2pB#7){f^s%4`M98~p#u#zn`Reqv^C@86dy#1B z2ds9DMlH#V-!UwazaQ;35du|baa?RH`5noE#{RxVOvEHqfFxopBO&offWfjMfgR0D z$GlHr6A{4mR%OVpk`_t~o$&&o$MxVQrpjWd+aE>kz2{!SvM6BHi0zEwtn*WHXx(Q^ zD+)LQGEfRJFsDrB((Yg1#eZ?j4_!WzEQ6(^t(`ztj*Ey=OSmvE>f_i7pQRyEsb$>t z>j?bD_InXivw&eom>fCjO#)FedF;E-A1_~=#0`{%D;UfyDn`w|38zxJSCS+~#FFy2iJ^%v5)48?ub z@x*C+_g;LbfemPmu?LDAqB%{RM$W(eSeB^a)YgVSXu?|ySlid+Gz(}92EC3vB*r8r zmL{}g7Tw(kPVWdWrX#a1+TYlIbfV81>JN~#8hJ2yv?x|2Qt_=zR&LF1OYzS(7$c+J` zzf`Pe7MXJ^iC@ zD%`g=;J8ZE=46(@WhvzxCp#A3m5Ing0taQ!bPy;%5x~L0WF*#9%S6oI8Cg5AtC#Zcg*pe)?Q)ZFzLERpu9&MZ3d zdR*fW9`#zy?u+{;#H`e@fHyT3m3%?qg%GiRSTQh<-ZVuIiyq{D8L1S3=U(eYxGjp; z@?Z2@Zq{U1L9C&#ZTA;rYANbPp7KILDzDge)Y}APU)WNn*oI8=^8{_x8Be|ry&!dv(R;c0J)tvd|A<5mm0;8!fNf}qfy1}Vji);%AJ2J8U!jGnCp1Dm^_2is% zhtGyrtP*@J_iGr;b=w&H4Q6>Lf@h>^0{b7Q>}&H+&uXs2`XL?NCeu}+*MU;$klL3O zq1T0DfCqMOR>+VrQp#&olZS-&f}d0bed@W+9icWO@GtdXB2;bWd7L4SmB*VhvR=s> zz`q=oggXDc{1SuHdQ1llZ1C`Zr&;=^nc;so_Rdu7wE{51ov&2jeYhDyW@y|1JJxia zNN{Nc*LG1q^6BD*0gHskN$Kay?TD)99iQ!A$-Gc{LS&>X=Cds-+UwVU>?*ofM+1s z$%y{a`Xfyv#k2&01vGA`prA^cq(qXP=t7#g*q6d>4z!@3X7s%&CJeEk&u|l5wa~yY zzkv6eVera&lPJQ4%W zgu>0KFxg>s0im|3)B5E@M};}-OE64%kS=_}sIzg45@#co+*6PH()e*?mFg2V!+k7H z!c$0cB;jLKqkiHaO{PeUNn*cXePD>$mhh=R87t(oKGx5`Ah;K&;eH(LR5gLFi?NGp z;h>CG3Aa07<#>FO&J*ZCdoqmFyQW^bjDl3^hFV8J_)~?zo{@TsRQP9X=XBb7H}SjL z0I*`W^`UrhWq@U!^Y|=k@5MkWi%qyb-i}gUuV#6eu?rL{WtHs+%-BHEu=BS_ivDExJOOj+D}C0-PtFgDLM*sI_LK)S>qm2H!4qZ-V1ASSFA9Y zIjXtUh|1hb4n5Bqpq#DbVjSnFRxz43eYz37|Dd5Ll#L0+0lY2w-|qGQ>08!+_muCI zUgL%DJfaf*h9DRZ@c%Zzhb$*AwIK%{(AAg8AbG4>(cA+)Sp0I5`}8ij_Hhb0I+Mau zwcEU#OlP%r^5F8(Z;6AV45t7nFazO}2y>MylB-a`cleblQKZelM07pAg8G^8Qh{3L zOoOYE%#32RmSEeumO~OUhJaBTivWGqBjU-N$ghW@HjIi9Uqh99Qfou`+?v=RYhE8j zA_fr8udD6jqaX;G59p9eQYs32j#b94jQUogV7A8{gcu%jiFw#w>#1)PQBAlOm;XZV z41MCu=uw{Cp~VxvQaufs0)4ISy+*PqZG%^rUF9>ZC5uc4l@L)HQIBflU;Rg*87a=9+89+qJx<~JrR z+LOQr;ajzHpgLP3vScZmbj0OlRsFE-QNOtGQdB}+~1vYdjOMojRjTjPW+UK5s z*xTmc=)e=B^G<)G9rA%Z2_-@s%M1@5uTnexbU@U($Q_m?1+@2dO)!-Lal#Grq;tLS zsUo&BR`e?Ml&Q`Ky7iJTrwUj7mcpd<+r)Y{UZ(ljbNleu-lNfe#~$VI0`Fh<83jb- zTpox4-ri@_d(t)9a*iw4AH6<79neQJ$bIE>$vY=6EW**YB0LLr2effSdx1tEMxTgGtA|%5v)@i;s z5xG~3M4N$UN&+Qof1dT&bw^DGsA)TxNqUm$SOKBDlfm&G zXMt5i#UNm1Y|mzY*oVOULhtv5{(y=US=~P=rx~Urq3W6}4$CtS!(SvdoOwY58r^+n z4;J45L$sII$R-AZk&=qSVJNv(n6?zzcL+ltg0!IxBm}+wcEm?MuF($K{?Zn!0UECSsLt3k%Us39EM>;La}%Km^SDVeGT#o`dqg z&4h!QcD`4nD5zqAyxypV|0pank+CGfXRX4Jjf@&vdbezp_Rf}+E}p|_q}Upv&SFB5 zE?Qoqzx6JiWzmu$)D_ol-n7fojZOxeMxIlfAt6nlj%Vj{7k>ok_Y{IIP;Y2Tem+M= zxJzm-rD4}PEdjj>gTd4J;S*lZg!>&YhID|2Pt_NLb-3KMqR|5L_^n`H8t(|yKpGL` ziCp(7KT|>CS^4Tt(ZjjRFe-d18j<2zS;e(tl#qfpl7~^EP``oI)-@%ZG#$rJ5=nw$ zB&QgI(?|uF32(3dAb#s<#36UoOon2@h$M}d@j9OBJTcIV^L#uC$A1Hjeow}S;m1Q| zeBKp$l2HI9l7|%c*}g-1k8UMz&0z%<4)C@n+POWpBC%5-wNSW#wMqZ9&>gq@H=W-(XdAbF$Ie$-_7U+^Q6JoNEvX_s-4E^H(E?F5HuV!z2 zM`c1RxS#oZ7)X-P)U2Dfkdy!SEUOUGzLi=I_40as$EwP8CbLRC-tv}N%BluoVk6Zh zlg}_@8qz9J?by{VEeqi^LxVh=qr_9;)<%}eTk98}ov@SD-OCKREfY6KLMk}e7Uf>7 zMEF}R0vsIti^Lr*46aGIoUg6jS&pipD>a6O6CLQPg;;H-d1uh+`Ow?mRFos zrQco4+it(w_3xveOp3p#}hmEBAAE%C-9k^ziewa641vYC`9#EJ*mXv@jTrik_NU-h-m%0zcNkS3neMC!xZLX3^_3qW z*xiR=pSJXRnp+-)_=;&bRqIautYFOB(-^En4KeG`?P%R5QT)5!`dZ5e$GMxohT+O- zAb2JhJ%%0sRMGGFWqYF?Pe}FaG=5tWMX0H5D|IgYRA=0HkV0;hp*e}CIfL&b4o*)n z&H2>Ga+5d3?YR)t`sYLa(~NdXw3xBKDV=%)@kMyl)aG%udJCyy(!w6mYJ-Wu>RQBn zvbyt>MW(_a8Sfgv{Lje#YG9zbPzWkdARI14FdQ_miW^aGH4k}a%@9ZRGvln5{J^?` z%U+`>(WzA+_Drpih#(n6?y)lgjZSOanK8D>z<=nU7pL;vqX)?6+i_83rxf-p+{8<5wGxH~dAOOHMFpU~Q5zc$NL zp+ENyV&EgQn~?Ax)y%cxCy7#}kJZ$)BrQht#A}3P$}UC#0TWRE9JFIjm(-_7u%Aenr;P%~bZiWNg+>z$BIPA||x8f0OIl0gMx zhH${jmsWyAIriA#P)~>33KJ1WE$Xpj6!gB$9DF^G=tU_zvTdV~Ewo5Ta0g^ybnnhTZ=AKp<51NMDM~W1yF$SriAl8fYDReVj zVUNf^^>K;i{yflJ-4w^7ke+a3 zNkiRr0Ts@IQ@)*;$Zf<{Y`UP%BXf-!8|F@J;n~Nrl0g+O>h^II%F60@V z=16dL_C8zVqkiaE4Zdc_zbH1th(~N#S3Ou`FolndP#hkTs~S)oEz-12K?!AhaX^J| z|0{d6h=Lic+);s6>ec~d`0(N^iW?QsJO$aS95;P)*EG`uy#hPHs%2#!yl7divVhK-^=x6I@K`pT z#cN^e%%v&6mKEZZp>Sw~l#R0?2uC4ksbAWWDu9tUjB9);8})^dd^JlXqiO^}9b>wA&-A&~Jbe zCJps>RL(zL!u}En=sg-XIU|7od zePoD0iFg6@^5F*nfVR4YK9bh4iI$&>Zy_=79^aTI^Bg{uLk+`$j!7v+i-xv zXD3a%6o-5EydNYXeICCEY9Q3-X^vQWh}sUT`WrP*^|q6nJ)>sDt}5^tR*MF0)vjWP z2Kn@az%i!C#F!Fb7+Z!Ae<_~~JH10C9zH?%l3*HXGputsM2446`AmDKRi^+M$@ zc}yne2QJl7Fo)C%rD`wlfIOt5UEvuM;w*1S_}6Bc0nxV?ToqnqTdOK2oJ8?2`%dMO zXFBE_6>Mpv$9lx?Sz#)BFU~zO5#7L5t^HFz#?J*=lds=qeR+F1(@yf_t3c&Okg51^ z4asA^XM>A}*73e5_q_!OqC-8a&?z?Jq zNMK?^#nPLv>=aQOkj%tAACf-bh^g30gfE+p93~s5`gZ@4B{Zj2fQf1hfc`TE+-RxZ)t=KqIIh zNw1} z7T*UZkQ%akpei>XE1rsB`GRrNG9TXKHWbfGAr4F{M!E}U>Q8y1zBi1>7 zJ@~rcvOv}VVb$6IHW|dEfHGd5pp3WvLr>Ise+o%8LA$gx*)*YXRwSg87RWUpAyv&R z?%)vF)v~m8JwsW1Q%%cV|6zjpc5(LQPJ+sO%s9>9fs4Jf?e^#G>g_4CtntX~C>X#^ zAaUsk%0I&wr)e%+5pYrQU69PN8Cx!PmO*xGvFG$BvnH=?d(BijPZ!r@)o zICmsF-i zs_8}o2}D_#i|O6irUQ#GJTK48njc?UVMGy&VRA4)j@!Ve4@ZCmX!9vdhpFxSg{j+^ z{JiF{btKU;u<^GQo1dUnvsR4EioSQ|nkKGKhJu=6l8R0vp!UIN!tH@?2Lr#!|5}71 zKntul74Kl8FpR??Ckl`UPc5zSB-g@FXGozv7S7=3+aZ%i{t<0>-(yH%`Pz9yAN+~= zYb&$nlcR#wf|&PngznL&9dO`I`NcBbvL}#lsUroSM;K43HFfpY)(=QYH+uS7_#LvK zbF6_pKhq~$41vrdbb2IELDpY9=j zpVO5T(%Dw>|3t?hf4Ixg`m3yIXf&iACOCsW$`LHWxtJzk5M2Uznc=JlUw>WX2Ztfy z1|&R7hxv3g%ukG>rG674pE~Ojh5@nDVoA@TvkHg&A<8=~VtN_pejNJeZuCpxxS>qB zB4Bhj>=Y;q znw;L0z@~X4)I8jk@!i?jG9vSr1^%e5W`|eL4G@-Z{ACCfRK}MLrg+||vyRIkqm^wM zhAa?(%$e`08u4#XZE3K-jbmYt=FReDv;2&sC8`8VWo}}I6FMY?JxlZ*Ujw9jpSl++F}5FmEMDb^xOklh1o+6SQ{ls zhN#`$#$;YOJq+?!e^`By+rmGE%6nHRes{-^>n>LqEiO!H>KRr==rs-&v8gWJ$*}kM zQdPq)09AH|>!6)JZb!jC`{Upcl3?=2Q=v-87|2VfPYmv3&JToR5Bp;*pxI@K{e4`} zKTu=jh>=T<+*#V5WT}=hls9#xDEWiYb|t#~st)5mjEM+Bu8&TNIb{j4&CcdwC)Z>*T*dR~ z;X15=y?I4CohrmOMn3YKjZcnIS83<#!(qQd2bC@p&pr6JbShH}C!f6W`QFpBHm<65 zZv`aZ5#qi3_Orjfph>=?#C!MeJ4$Z$>~DR2`6B5RFruE)5joPH@&+3JMDL0hpRITM ziBM5qM#`fydlYd#xK?$lJ4`~}vc(z?t!zM=cZZ;kIFCP(>YP?cXHa|X(4e3zew z#l6-EnzFicP^fse@C*6RB&`e!3z?=dq8d`hJA%gBA6;^}5{;Fv#cTwTsD#Q539AUu z5X(_mMW=<0uuYEccByPp%|hc#fqf5z4_F78`LinAZR7E!7Zkg|)rDEZb3gpGSAmCo zQIBXHscnAlF{hUOR3J{IfbD;~f`}N3LoN=}OVi%+qrk~71H(0 zvns%>e6pk{=YOOl&oEsAog7B93>p>=00X=nY0=`+`5uxqi3z-oo7P_ue)mgvoXlD+ z03Sb6oWGkZzW*crlD(mgwyuqhowdvV$kQ>DmxxaPuf$6yWs2{B-Edkks-sX@$_1qe z1gQ>+#S)9*-4!QDfeKMUiQIjLvZHk8))z*T+NUS1Of1}dtbkoK_o4v-Lx$7}OBSk0?1F~>lYswfGETng>p`QRycsPC&2XJhI#3keEB==>6}LCw2ZQ@D4mZ5GV&!-`Yun!q4SnYSq9iV=;V8K zUxVzsx3*-0uw0tovbXo7bh`(Z(9O3X7uP?{t|l>g*VX{3m)`&qHCYJ|P-GxTNJt>Q zv<)e}>=4?~foKCiRf3v;1hV+4AXa9?+8)RzHAnQI35W2L8_NKtz{CDB;K0hx z?AJI1mN!)=y6;M$B_d1~`z&GE)q`E?k|u69VIKnxCWIA&@Yzbf6!o~-gTXGAeOiJf zV#2_cpNVlaK+~aiIjQ+3%yskBEHfzirVW1h8o~9)STq?A`~re*Un2{4Mjw(I+8b1Y zldS5FT(}~kcrf4|O(<2O3USA<>Bje=MKk_**>>QL6lvNX4}3kBV1-5IP~*jkO@lU> ztOM#rFnzFQ%*G|qF|+3GYOQAE)PFRvQKgcH(zIsi2I(5HU)&|4_s~NO$D(cC0k2;L zle$?A+h4Oe+vJVKvV3tcr1cf30!tZQ7-on%z!?FnUZ3!VDN9qDXM9`1!5&G@o%D%mGK9H9)aIpzFG-C`@ zK_NVh4wU*npFWI5oI;X-=3zn4hhk>GE~aWl_VL3tHeVOsgGez>nZhpoR;$8g_p&xX zxcaiTKTwGeehBgl!5hxUGiO+#Th#@AfN+0T*$I^yA_Rdq-w+noR804_2g)_ScJrGk zon5xZ;S}=}r$B5yPFofrnTvo!xU@`G$>* ziNO~s%Xp^*v7;ciZvJa1I_aZc*uYjg2t77A0#om6|SHen*U^F>|tPdElrk5d&!;ip7m4a*DToT@g8xJIw#ldiO7rsNdn_zZ0ad6e1oI1l3Cba$KerMOng_#ex~!PI@23 z8qKwY>&HyrLLo{t1NXz%^iVvfYoO{f!HZfy9sCB!&_t470j2%qIDI29ZE<`Uu+E`u z8z49{zB7$DwDr_P z53O;V`dV9$&$~c8kin{5g4r0SQRa`$OTT`xrj)cNBbgxST(|fRMI&0`mll*aXU4S+ zMAmm>Ck!8e>s9f|cV=Yzlr|gwC*}8lnb7*nH}o&3ivPjX|DBlnXH-;w!PH+)eE@~( zkEGWl3gHt&=S2SB+l2Peur@+@9p}WkQQuF(U~7$1Vw+uz#0{bceil<6-i$Z>(74;F z;`6vvkl_5`F)E6;bgYi(i2}>1e9DwDGd9Wl?e5z|9Q2sIY{!uTd=!yzQPKk2?U!MY zWws&Qr`tq6*tULCk3v6N0@FAG!rmG~S45yIfdZ4bB8Gkiq~(5BjFl~i6TK7iM%k^A zt0LT>ukK_sTLm(jKlYGdK}_M#*l$-2@7|TJIKMLqN{3ey|&0?(@7-;gx$kBZx*WhS%hVD4#t^L zuB2IkFW@sBvU1Rb>&-mu8&+k3DFM&P$>^$)e{|CkgejMQDHyXVLC3n_3_cov>2xX? zd;H_T`g4wbUaR}S*apaaalLKv4^s<>dz&9P2MHAR;TOOK-}B-hlr5tcD^dJh@RFAv zz*dn+CAKtfULAEx3NY&8*oxVJmZX)g`y~~gZ6l)e=*sZRLVw2vP7kCyf`~f1IUDp; z+HCRe?B_d`Mr*r*@-!*$mF=gc=xY3lG9>`Y!kg$Y{zTb9r(H?7(F4S9`l7wfpl}la zGoHVlF#qvN_7`c#e=znRjQyrE{+Yz--=)mZMOWY9UkurQcl2x|GpJ>_Ye-T~C<%}S z%%%+@bTEG~WF)VDcJzNRWLuKAHU1DTiYR8$%%C8-0-}`_$3&7yq$luEM)Qp@qb4m9 zgEzRxA#f4G^l;#NF>;jo{tC%or!~9r{VZ^HeK?-cdGRN&UFD3TAxyqU%TjeSA-opw z5A)_K;F1C=n1F0u6^g;gDN44`YT``VvyE{Ls6HPD2SXPmv#DCE*F+K(E+weSzfut z_A%N2mTil7oJ90@B0Bv<6O2I)AQ3&A7W9=_tjIL%fSR49N=hksgz6wIyuVloz>uBb z{$|J`e=}rM|HY7XX1Ms>B^&}6vJn77w&C9$nXTKT|1){DEVje?4~9$}%z)7Es`SS| z7T;$5ZL15_4mWq^Y{xhpa2OI7>hC;sA?aeGf)@;}x;N7=qNxa9yi|taM2mL0YO{jd zFJ~!zSp%mw^$IZ+W0^Oi>V!-ttR2$O2J^5Ij#}LiRTw3!!BGwaZ$Do3@(h~8;SdDJ z!e{=FqopUEXH5f&*4Mu+TAKgZxADIK^(XWCFLKNOVXo?%5M^JkG3mpjCYwE-78kS0 z;)_g&Dx_R19KN1VW>D8wf6d%_Zpd5`PFhDlU+nguUf$bBQHeAyr0zA4SZsl6QZOry zHf6$GqX{>s*L{Oy#8%j9q!p>~boul;L>xmA7=qZ6IUAzI`9r_qy=%2%$JWi8Cvs^f zqwf^gsQj5$O{5%s0l4S}=`Ccp-F$nQF`{4F>;iCr6L>~8wYuZfK3}-aGH9xB_kEvm zaMr+92P~K$r!~n+&a8?`cU=RPG=*J~f>L)akm2gg&X+WQ#=vjpG;^)Vfr*e47crR4|C7GEiBuUg`^uv$S5!qDz_&MkGbtea|5GW`t(4o3vIvu#`Ix{LHXQ8)eF z{5bs<1?TyUjEL4^T=z20aZa;Y-RRB-^ctby2@oe4>7mYHRPIHbOPOU}8aI7}l9kZ5 zr|%Nd!e^zbGLFGbGK&iJn<-#rP^e z-QO)Ss0r4Wu4y-S6_4~=wC0|@a9jCQbTD=$KDDb`S|!`Jw7!IeJg?b(BlHHt{kUlk z7|VX~c4{IVQEm1hgM12ePt2y_`7__ygQ|IGdLze@XGUO|Pm-+YZH;F!b; zFV3X?J0KYChat*5WPwXOdFbko6xAAFmPV=NiEg1^1@HXB)a|OJkWfS88SF>n@Y#Yk zz)RwJPAYz^+vWiUNO8F96>s>|eSPmCZPJc%%~t?OsndO_gRx^ zG=w3egiR%#=^!=(2;at%PhLnWzWd8kHq+!?`rkSN-8S0MqrU=E`5_vX@|(~2%sNb4 zg{o8p&?HusSU1;}m2s!=9)2>yNVp!13SZle(iA)LKOw__2qPmhvJqj+9b0-y z269BUTfR@k@eYPnY}Nx=bveet<=s=$I|`+|F>4owqPgK+>4JEw+HCicT>VS-G3p_nhW2@qBQSDd*aMaKa_&IU zt3BX#|B!Sf>4YTs4Se$MoKUmKRd@zC?);Ni!O9>^3|IcQmP-p+UM9tBq%qr;cFk2e z$aF-#rQGjSBw}e*ZgK?Q4^b-N!e?_W6F=KK3f92TN17$#p^g5kreX@qKaQWRJCW!c zy2M!G|7lz|o%X;e)xyjXrZV9p<%~Rh?t#}u@52TzR@3KCtX|TACROhXymOWP6mq*m zTimMIL$Pi&N0r)l7a_TeU>|UIKlT9=o##f~KZX^)yw^0S(ClWrr~GdF>KV)JcU zh2JEATMc-x8^Gn4ue2gGOIl#R-AWjA!({+h3I@uDKVv)GGnL0`M-qo$O4my7F;w!W37z`tR4stx`;{_aW>fR@oZ`7;TLO*jdL}fjzs{$HZUd+r9*6CUDc*zfmGmU zV{dl0=slEyth_@vZuU>^01_bT4-#PLxU1-dEh;pNm~4^tWJ34nXe+AOt7#IArgc$2 zJX@tUi0kCD!>0=sr9v6%rn!7co3vRb&!n$zQEN+{`oYdtaV&|V&Nz{S6)^NJY;7Qi{WHsNoVlh)O^4%@Li#hx`xA-a ziCJRN_@SDn!k;7AO@lDz44}KA``hm3p9a-`_{#rq;Qw&L{O@$-fA%UM%yw6AjRecp zwp>yA#Kt4Bwo)A&5!w_>lGr>nb**Po&d1z^59YE_3|-RrG$WJ;i33h{`%se#X~i-O z!Xmb3hd}QvUO_8SC)#G^!na*CIqL;Mo`m=)?$22v-?7p6xoNWQnt?at@7PDe?#c0a z`t`H83x(2*9XR;nG`C46vfz9YFmASk9nXCXC?}E1U0cp*EB}-!B$X+VsLoB`1M1Y9 zaIvc#b(@xJRymn3O20#yvaZ%|8i_Q_xt$IC+%n}I@U4S@l%NEeoC1_7>c1^h|BN@n zzgoZl4?p=ISpDA!tA9@N^5<;-?|kHcF!diy{jc6M{4Q00_EOsa8dD<`Ev*4IU+-1g zwmMG)C-UYS!*H+L1vh$3HNHQjl2A2yCCEZ+1Zc*K7;^zIzh|S`|^ma{@s^WB<=JhZ)Ij9z1N=BOie32y)?RJ)n zMv^vJH(MFwQU9vC(>vBV1;>$l%qYL94R2&S{AUSyF=Z_SzcF}-L`U`#yl9$GHFfFt zjw;aaTn->s6w`x?Jf)3;5L?w{W_{)(NQForD!JYgo|>RbSC}ibr}g90=%=I^B7g8j`NCzM$Go0cQD?+%$EYWo2v8G{6IE zMl+yxkR#zXNm0eDgxikuXooG&`Ek7Q@c7|2=lkL0 z<$`{1NCkJ`ic^2E=IoBriTSnSam!;^>Z(Qi&Xdo*Zz3Nn>ApP+yK6cC`?(XM+gWGc ze}>?v{1^L$|A)PI46f{Z_kFu#bZpzUla6iMwr$(CZQHi(jyrZb>D<-*+xw`_{@2;3 zcHI}Z?yAfesgXJ6TvcOaJp6w2SGo}$8qIVio6jIwL$xP6JRuuoaT>~pZBKRmJ?{h- z(9(OzuyAwN0{A-1w2_h%;L%pRf@HurzCNZVU~h?%k+&g}UNUOGJ>z!%3~ME>(VcCs z{4}9Y(r&zG3(Uq7ggNkYdVgQ+PyGEi>s9!c0~H0ZTO$7@fcw8LBk}J|PmX`Oo&MAq zWqyb60Vr4JCXBHt$6kh$wge#h8;KF&t4Q=Nndks0**(_)WyHKnIIx5B`lnt`eRAbh;-w1kg?Ifn2>Ufk)kK^0)tQ(L zTEBEaN;Q5PQi?(*Vo*A=caIj3xHlT9j7~nZgx7rOXCJsTepb)BGBR=e=xqN4W3q*_ z0Q-}WQ2m>bpiXv%X(22ATe92lo>hZ?jEy{7ISiR*!UINmQ}B~k7A@cdb99mUa*5F0 zR10etd!#nYQspO~w$bED=GDBX%*Co$3={8c9`$6!Qu^?dMFLoAO3IV^$Pad#ZJU1G z3$!$6>3@9oi?4vh{TeZ7(J)vKnXrZxD8LrZy>CU_Njzj2pK#Ls?h`c1?I|(IJp1D0 zN6ghPnZaZIm4oTHAMRr4>m>0w(naysrgn#TTqdEZZGAxqWlPDXd^1Efpk#Maxc(IE zZlTiDzq#*$Sx${M>2o&~eptTf0hR;)grg*NIk4423@nRHj!_pgZ@ zOrUmj3^0-9|D}oiU$@Nu(R|joasS&?r@C#k$%@>wst7+szb1_e*ZH$%i}A9k%n$7(HG*D5qgNFgFopXtu<4%_F1i;pw(oCj)- z$f=)jf+U-OBu+zaNmd->Q-DDgD?#3g)`6EO0y2j4YbGA7LZL zVu^SFdT6w=IB_AvxJlHg9^1AFwGKHkYnF*a{{j*W(@IXz2@9I~0cPdiiDkU1jT^42 zKf4IsS5eK^s~?&$%k!LV2?tltX3(XoMv;I9xzwe=l2!z16gg0xN@o2a(WU#T4L`T8 zn(sqO2y{=OY{~tz>b*Rm z%ZFjC<+qxb@O;UT8cm#$a=6f_pg5J7w@hCMn^p&@xn(C~5Uy8SjJgmIH*YaeI8g@b zPY)4ai=a@HyQ|UNkfVd};6cve@m=Zl;$-)Z0vlYMKf0ec_Wkyd8!2^UFXP{bfJt7k z2(vqoWJijYU8o4;8RV*e&0WZ?fzEuxjtxTqr0=%~D$@3zZU`b^7u1jjuEr_8mPDQX zqlEy{E{mS(qOU-Vw5rH?dl=%!R;r_loeCB9G>qWfqDApUkX*d3rS^^r)ys5tby}(j zcJJB^7CD691Vk#NBAHoEILf)H(L}+Q*{r)M^4&r3Rc+W@#ue=u zI`5(dx74XDm***^zt+Uq?zbi-g#+`Gq|2E!;OI&#Xl}4}>($Pq@ zV(dpnS3%3h%gkj^_3zaaf9YEBRs_VYl@b;YC-wEJ&^>xBe2qbsHk7o4s=^JcS52K} zfoggZ$@ELJy3*VgsN`SI%Y=4e- z*F@0rf?S9ayz_-7mwfSAyvU)=gjk6p4J3XH2|bPe#o2@tA-f*Lq{J`$t71*1-T zQ$+IU%a6^hOTO?AQ>YlPEuG!g^?2HwPT(FE%kn!bR5GfZ>giYQeLfxK5tkicLTD1W zRdEy`lKc+6x#xkMnpfRtdSk$t_Qphwjj47%tNXRjB z#Eq3yL2c2Zm9u6RAHNnK2X@>IIDVm?TWt3s=UhB6ZhWrd+3#>$uwsL+Ni9@0MavJT zAZeGbqpuG_gsL06P!UVZ3%S}bq0l|0#+fT4CbSh_iDpQHR#mW+hX6K_RRVv|&YRKC z?z33i-BUPrmFjNgiF3RjTZx8@+f?)+SU9jcxH6@u+HqGB*MZ-8q-FT!x|F!H72gnA zq}$baPy!EAzV>Ne?4FH`rQ%3T=ODT~wU}F-q*hiz^wXD;iHG7@(uZYe$oANJYpROs<*`m>^fGZ`>ll+F9joUWCM*Zs5UHoRV4skLxw$$3zxa7+9 zbU*FG4|AQi%mr6m5w)ez?ueD|V*1pBh0L*8t!o-ASy+LaZqqNgLdKISS$QNm?4j_$U|)8DafmX>t`|=O&^=g=+z{C>h)- z>j8^aZAhODM+vL$l@&`T*|Zs~U^r|7Q~M!zcFDPDeD)O-zu2eCnSP7`CJR;Lvb zcF&h?vf|RxiLashJQ&Sj7424qJmx5WR1*`#ypF+VEI;BC@r>2xTwA-nJkoii?+s(S zTIsqoqFD=}9njek$k)Bx$$@V!;(WuwwDom9sfsLQ*=|$Yg5suxeunAW4;`?jj0h+M z0--m^=mX*Lxgy4s_G2OXAI#xW#nq^kzT0SM8ZxAlB+8QpJ1uzvLuaq`!=|eBAvX;hB}%K?7(>Fp+D^K4!)hB9^JmbzMs7x^*}JwoY4{|UekUKY+yP_Hty)#O0>7;LXwg#fKik5RHr1=>w)6Zfcn&@zl z)91z*TJr=xq2_WL9!Hx|R~?7hKK5{?G}L%r#zUaAN+H1$#CO zy>fQ!<{Dw?q!x!3tf9H?qza2O*lifxlkOdD!O^E`i`&PKdqr447K?t$-6 z%nlnOhI>5K!|}M9He;DfjxCU+6h5ch%2fAP{bD`Sz9g3SLb;2fdZZAH`Vjxzy~ z4x4@)!?k^H%4PHmda-IuG4w^m=O_I3r|q9ub17<$aWlY(uKSn%+J9Y2?BC!i#s&_? zu76#&q|HB?m4HegWTHwmzlF9-W6xwDc^Wyw{qIm{$*fN!>iX9m7t+#i$loP3J$Q3% ze$jWyn68YEgp4WNNgv=cO{>W~y@FPrF|!I5Yd;oUjVwEg%x#lUIk2%rsB{hjq0Ls*ZqFxR#XM#NSEM>768Rf!!*#AxFI;YkqF2 zA#Gib;91MHx0MD`izNW>aZ`r{rk|M*6|i5}{~I3A7TRs&i*6N4zZN*n?@NUa7Rajr z*YP2^2KlCG{TG=c>+o;LlzQ!}yOb2fQ-!d|EKz{2hm|xb6QGb`iK&JJM`FgA6l%lL zAIMN5F+%DOZD{)6XhSNKrB2rJl}FmyI@%t4%CR?dH;*Oz0~oNd+*pfEd1vqExlB0m zvymADybZjiGj)=0362hka#e(71`Fij4r)J#b?RKRw^>5MbSvM)KZ0l6`dRrYH6V9>{?T_0 z**Aux)h8sRg^BH_tfK($)kE+JwlJqE;fPYEFf<8Hu-gwk+fB|`s1J7FY?4D6}Pm?yuBefuHv z@4JM?MT58;R9U=6nlj?+{8V|Oo!629wk?3r>ZNj&A1yNqPE@mpb|;r?8(1sk%x~K@ zSiRaCf@5-G1+Jh@4s$JcZ#@JJkZ1c7?Hmtt<+QZO!{k>}Ch&zRmJN?cX@<^fcp*5DFYxe|OncP+T*HUNdBi6Th4pQs)gp#>1? zB*8{(-q%{SHtN4TP*H>fh?*5{V)*w+5?M_lg{ z6n8&i@GsnpRs~s*d~v1vbKkq3ZABc(0$6I%Q*@cl<~7{Wzi;KCBV0qAx=(`9Y?73_ z_Fsl_nOoA}`kO6t-ZaGOK2`oMue?A4RS#qoau0M6YT!qdzo-&WVlMms;KK^BE%czT zxy2A>6==nU%S}=s9mpD10ZX`JgSXjI!qK_qO#SNhJdbHK&HK9#=k;$SQY4%FikC#_{jFq7bc#>*% z8OW_`Mg1_eG%;w6P1JUf_9ZY|2Tr1GUS_zTLYu*88u(t&UBAWdGfnk} z-Yy889j&F#m({Yb?j`|b2Yc7)2IB*Wqx>1WTJEPDc67o@h%d`_xDa|c{sffbr%md z=Uq>yzKT$FyvQ= z0NGhYuOCxvyWH&Q-S>MqTH|u$M1*yiR)l&v_wb)D9){0d@OI^rDE0sse}1bM8(2Wz zPX);7YdS4ReUQew09f&G;}Qc4?5uk#EiL!(;1Anbg~*zht-7! zIj$X63#Z0g$Ob@cV}kNMnLd(AL=F1WG+4R)2;EG7Bw~|99?FIZklTg-+UeuUmqk(JB@oqq?^lxolCH@_8ZzR`+t*& zb)!37s8=GF5$8#!QeAHj4PNzu00JoXLj-i> z|7gTkWd1jeShW1DF?dBq`*Fjs^*iAL^LalC#)|TLFp<#_q$!!qFZ>yGkA?kBa@aCo z31!XJ1c2(~^fg4-W&K+qUpQ13i0L^`MkbOlc|&UVvovE6Ex@PdbZHn2cMWTO>GiI# z$|ZQB(?^%;c@$;8jTPRS)b=*1n%EsOU>xoPqba1u!sI_vVZ>T;T_~z*;JUk6{)7Ww z7sMLt>Gp6q(fydk@tOa~tZbWH8c}w-4ibI_*4JNXyxUb)F%DqgRS&UYq z`a#?>fG($YzSJ>adM$qa)oa4ukCue1Z`r6#OBm=VFZ#re?#neLonuwMY%;@iJW6tngLCKx6Qm@Cg?e}Z4}+I%rPHC zbDNT-+rdtkY!A9u@&r31a%cfWiq7Lex*oIwkBaOoDXA=Rq_TIvW$u-VpjE~WfPYvC zEZK9wvqn_9odDIji9QgN!c5Om4>b=7Y8u4GxPATk$RrUR`a84&Lq)V-i>Zu1upqZP z-6)nP^&@Njz7DAPN}_Htx#Y_iT(0sH+V>dunwo7H^zrlZJ6Xd+#rUfWgh6H1gB}Vq z`(GVH#>}%q{`XE#M_*vhMrbFd&z}w=QWj2j+z8&=gR}N*X^=sDZS#p=RH0e=do|S% z-k$-zRauL)|BZy3D6bE>=K5OU$w80+9|-6pDzH4H;?Bx(lk=%!mr8uM~Y`CD;Y^0 z@ZYWOU+TvKM4-M%3oG%{h|7r3S?jwP+x)xyCCxwbm%x7$gMh#K0&vj&e*WXSaVo(0 zzntu!0u#soi>Vp^b5q;dTGP5&TMc7c0#vx~JpJCmS=)p+hczS`;2xfoSgu(+#k=Yf zH#fPkp)?ANNfFD5D7bb8Kc2A^lB&S7M>efAspTw9#@rp)nWSzOy;BM}5E2}o4rg*& zJMR_Sx>3BC(5-B>=fdd44T{(mm;zuOvHL$qyed%D;GIUGQ4K+<=3PS%8?O<(5dGPS z!l0Av`CD2EXOi*~1-=r~JPWcT1Q`WUoDndS4q5rIbn)`>3M*zHA}gxX0_{Lom~3iV zh>&R5*@u?YA;cI~tREoDgZWh<3&ep$rZs>FbL&E7Od%gYgH24EU0K^|TjGqECSxO} zYr}}n-5}9b0l{cjL+a%9rjiQ$+PQjKam_FoJ#gvy#L^hp_(q3t2!)cs%u4!+Q1c~F6nMD3Ih6h&`&9C06eDEtN_Na|L=bLwT-4GTmKf}TNA2j3hJ z1X*^PoKQ%%%Ck@WVikb@imwkQqDw zaDRFH_3`xvs%K_yf0^vz_xt$|P(nSjJ%KC7{9QiQK zvg%4M`M%M8sP52W=O^4CdWkJT&k(vsbIc< z#zyJI?uD+%qxb3kK40C|b?x@VxDLt?jSFN;hnoBjh1ehY&JC;2-;6520-Olq6Wmy& zM$S1L4-`g%k>m;L18f{_tpNG_4BY!>z4i;{H~)xX!p0y9rZrG6D3ek$Hp(glc|nUC z?LM`-Xp2Sz&$YBDa|jb6ZffPcefvh=w-iS26#o~benJqo02Avpg2?bF5SH(j&_ztK z2w?vH*G_WhT@WW)gyn*mcOZ*y`GbgGvwzb#OKrj&tI6r0LlASRDGM&x(K>SRg4zJ_a**KboDm_vyQ zI{GUm&*DE*v3r_mdLKXuE5Zke&58u?Hp|F`F*kj+`dImbT zYYM`-9t$-=0EM)|3rjK7u9vSNXrtN-rW3}e`MR#C>y+O)V21=Z?^x1)1Qj$%Wa zDBM+NgSK%=UJtTg=%B4q{CSd};~{*4K2SUp7&|+@&i)ifl|)?EU=31N5Ku`qs}?A8 zb6Q|>pT91l%4o&3L-n^+X2C%sen>}%yqBV(2a>w7X2LJ|1sJd2Fz~Uz>s0fxrr2TI z7tg6_ii?HDH4HoiH`lq!aj8^|BN4J?h7+HFFb zBo&zjW&0zQ4v>8HgDXku7p<5Gdhh&s3)}F%7B~p*c6>KQ;~E0%2lpWCPll@nr#toA zlse^fNRUr3dvlT?jA=pKN24JAQw0oXi-eR-uH9b{+2taDJX z-l`wwU-zT7zthX_v z!feL(pq5(cow$JGMP(_Lxfrt%y|?<)51@q>_*uj9l$W~47sHJe@ZQL#8Bd8BG|@0K zCVput;!Hsle@u0%BqHIWbac^^?Nbc%5&lFq-Lr06$jhPdfE-1|vYV!(4!#&z3p=4F zf%J$~6d~ZBI>K?j2PsYn6!?Bk7$KT*7Hh|DBorX?MRfJ0L&^(0ZZr%Hi_;WQ>(DF% zzT75H)I%a2PSF7l6-^D*yk5k@r?vGHQ9qbeE?h#VY#r>(QcH@l;vw!NjM1Aylp@6# zy8L@?>9h=#$2@3Lqc|U2(trS8718(S87P|DsC$^04TYcDt2g;T_GHEyL0SH)9E#eEL$!Y?R(*|ct^HPwGQT|Ux?W?_M-OrDr z@OY^@C1fV2AimNf)vWa)G1A28VmvB-rxl5xO^234tKhh|r!zDxTWx*VR0%ZsTLC|4 zVG*O(@TX!RmZQh_5G~*vFcZI@4iwKMz_3{GTP5F5>&d}Z#bw%Mz(*+gOsOhHJp z)KBM}*sa{CAyEL98^=jfgjk*{#11^S2dKc|C1i$)wVm+m9}TgqQcxonXjM{|#8f#X z_VZ zyEk!HZu)}jjm9sL4lhS`=s3q1Y)C#QP%3dhQt-*31e-J;x_|TxBYe5GlZnh6UEL~s zsmIvW&bzoh6v&+I-6ZZ@o#keydmOCMx~kC;<1c3F4W|?0Mb-yQWI>~;;n(SD*o?U- zAxu*Cm4D{U7vtK+`*X^5*86oV&(t{3A({!i>8?+5HXdw)Bdn$2wBudr&OC!q<-U?%9RqOzlE1pD7PN?zW!r(>ADzD(IO6 zrm{BL{46LWuxu-|w%c1XvhhA$?P7j!^Ur;A#ti*aoufkFz3CBggAyD%<-cZMwT&@Sr|csuu!1B4FKTcQp=X$9 zgJpD8_PSBl=X8MEvXbZird{^l`G&SI`9kwab1mcrB+Olho#f+D<*3uS@PUUWvg9>}s6b{q~;d%~DLAgB-p!r#w?}QV9js?IV#7wIMa5n)!?33L6Sy8Ju3N>@P9kS4`t;5tZd)j>sP+SFX}6xU_s3ETTNTe!HK4gT1hxIo8|& zgibQRvj30GevbdVZ4QuxwKH~bGB-Q&mzEc+P`Z((mYhC3QgES~P_h%3 zR-va?pl57iWNl?+Rk4GCm8WN>)Gd0`DvczB`HPQpY-*w2O~3$&1eL8Q3t^FAAc1>z^JW*>A#Zz%$%I;=v<5) z9L;TQX#e{=8!JfL0>~KM_f#Ttf`kZ*A{@;V{nFo?GcX~!q8+q;_E%Y4cL2~BN{_wI zmm45O4*WUUZ1=n-tm*TK)N1Oq%YGl^GEs49B#bn)@I6;#}&UZWNba2H$i#cr=QNbux9E z28rcU7U)n}#DfKp%)XemA(kXn3>-X}88y2Wc@B?U8An>Tuf|u)DE*{&)q=_v-Hv9Y zMUEAjIwL!FYj2$w?GON_U%a*V_#pAavL`OaaZZ_S4Bv&a!D$OnSzJ*l8weCNzQ+1~ zDwC%Tf>Y$0YE8Ul1jatU)BbdCF#qgL474hiXK0IF-qQ7T_luhfizalU zkLyC;`enQjG-vQyfDw%co~9UCP|QcS|7=ADu$64Pu8HH*`4CJ39oAmTO~2G(RDzX+ z?jiN~@k7Fo-IZC6?x9TStmARU!p9KYl{3QxvI}Hgs)$9^FTG@Ehgs+{`Ut(vBUE3c z&%A%!9R$dHd-wmgzm@{so(Ni0UV((7SPW;C)Ek>3O;jDb7@!{>X;uVnYUKYei}nQH zFXU?@UpNUHvhRvVNN#sF7`dMje01Z0wk_f+xIP|IjU*j;7s@xypH1cavER)XJFoUe z0Q(c}a`DIC%q6V0H9i=?F^>F~1+)Jf=M}KXX#c@Y(EeFu0LR$Q*2dVz$&v1#Umc7A z-L!v#lz;{Kf8crlZ?@q7!4v+?OP*HK1T=df`#jg~MZuaysyQ^EqH_uhr$Ad!OGj*I zua*X+n5BmcRS+LdMtnTu=r}e1EK$c>NzDj7;o@G6RSHN2i5U#OuzIJeRAO8iQlz|^4So;*EPJ2EKr3G$VS|$} zGwcV{7U*aLcX669*kwWG%ojX94kE7_`cp$BsDsE7%mItMeF&Q53EkJ<9^FrMw=0K) zx05gLmSPvv4-O!>Sbg9rh!g~}x=@t(o%b{Y94|=w9B%0c%{AE+@f18+y{K`PDcI&s z)RVi^a@jQt91tDlUmyodI0qXkGNeLJpBvANJc4*-Ol)oVrshT)pRZ?aOcEz4I=o|N zY;9>t8^~PVxH`D;&iSM97kPPkHT85;($714Q6) zC84t5lkCvROE!tg2n!X^lmikOm_-> z1`IT3<8B!S8Rms2={GH)lZKsy4}nS*PTXZu*tL_U8+^?O^i^%ds*^1unvw_Ch>}V{ z1S3co_VQXmVoa-IiBnly zdw)dEb792Be)R6>$bL=RM=(}6vj<8lsx3m$xgUFZ^BbJwg&{((*73si#r4F(fD;U3 z9dnaX7zNH}fPbM$SD7F%lnOQx2o$;@%pD?Fqn^GXVuAaj4Fm_~Q*Q88jl82T9*AGl z9+|%zsJGtsYvn{X(zWnjEoRP3GgYUHYc%LLQ(`aR&J&YW>gFuQX>8 z0=jv2Nr%UBhP40|i5Aw?!0jjhfT!!*_wU${^4|EZi{J-xeo?=r1xTP4hLtnD$I`wK zZ2Dh-vOUw_>QIrBLTeR4anR_$sGI3j?J5JBE^Zgy> z73GO32u^3WFKJJy$@>ZlP)^)(K@dARn{p8l9tn)S1N~o@ZKC~p6ogLIo4mDZEphU? zo5C&|J?j{T zWcLXPR?i1?3xi}>JTBX0UN%XIyTn?jcPg(u^bBY3b?yAV)=8~~Yrn0NVBmgX@SO50 zdK=vTQD0BHAV9lo|FW?WVnG4Xb!2#&6yhZ6IpF83!VVKVYFMff?lO9c<9{148xj;m zH_DefxESX{m8`6K`QS-%wV;D7QQ=2vzO_D{dJ_*n@Df!Opxx?>2&?L(d0dq5vl1!r zng2y%aC6_{(>2eyv~}>-_0arTvOVEx!#;JYZ;SjYd*x^^R5tYLAWbwB%S4$;;0H%g zYX!O9GR_AuPRXwFjk>PTlV!pnTer8N$0_z;E6y4sau5D=E{+JAE|kPlxjU(HEQRT~ zRlDZg?<)e2`@Ww9k4X)`u0G0)k1BbOEmIt@2McjU%lD~u!D++cNV^%xg%(CR9)WlF zG>os*c6TRQ{1gi|ycNQ^a5Y|SxHQ~PDGRSn8m}G<;X068Vk{s$IqyFC^_@jE9z|Ua zwY_XLg+ATbBYj8Rtb1;i%wt!MzvIVp^mP2P67C&Lh6S*SoX0BqiF&Ak@8A6Pd1Mhzeb(;d6i$f=VYfj} z+@h_)6N#chcXxnCV?S+csI7i*@83rfT~g0+SBNl1fm_LXpTDi`zdF>~0EA4eD<|Rv zzCoHS%C<`fZeW+m>9A8@kz90^)xCfj_4JT?X8#^W_xbbP-o7Gg+W_9&1#tbxRxAr( z6kt*Or(joqI==o>CWr9?DMAR&!N zKp@7Ai1c@-1&A4-T4{Qj!1KtYW>LEG=(kjzR@bQcp+Aj*foONJjeKRP8h zIX_vMJwLUiJa}w+cx?Xa>PB;Fa+iEtX>Re9)L3n8slHFybJphB_9n@$-nNvS@buJV zqq%iGjdSze|orX}+h*R867N(dxk#pgI?jo=G5=cQ-fIc2`XNOupJv zRdH!~dYoQh&dfktWzMoGTmNx!d8!kcN=i;wZTYQBPDh?|U321a=;7|rJCW_a0x?*U7#f}^u-M+?% zqv?BKPLvGOExi852x(qh{3PXQNy_s8rwU?;Wt{N1-ijQUO0Mp&s}&cRlYv^5D_V-M zLUz?1jit(MDMcM~Yiex0T?F{c1;Jas(ZaiZq8&`^P&r{yRpBEwe{dv514ug};o?oQyTrJ>kQ}~LwoP#(_ zx?3Vs8!eMMwydPs3;(#g)YS!h=Uf_+_J~k|S>Zef#3@*yQmB?Ipefl!lgXn^0=yx1ko?>zvKmy^4_q<$XzBadBPKQ~|eR-krYeo5~ z$&*Bab)fcD_rk)zqIP*1iY%LCzWxVlLL+e#3b z^X)jdH@_L_ekf?{a0zbXt~UmDI0rSkSw@4bU;!)p^^-=1a}&GRG5GbKot}pFP9fE8 zhsHuvioN)^2u2CME}RMpV)P`FnoAkznQmv;q*|U}P%auX??snw*yrHSEY-rOl4zNY z?`a!Vmfbx}U6}%tnk;(-*Ym>+Mun1b%v}!VmM37fk+jO3bb-JZY%d|%Rxrnw(!S8v z(FEYujq#ENS$V>urlqddmZt948!*~CHoNc9);o_qF*!C^+QC%Hr(+dsbtchb7t1nl z{$iHcx}pu;**f+PE!j26W%P6zue$OF#2<2DA7TYgL(~fwHt@Bb2=(MsIeMj;g4Ds? zYM>Nbl*l%L#gM`4Y4{DAja=Q^mfjaPbE~PBfJK$9ZBlx9pe!js3foJRwWKZc#(N3& z#fkH+p|cyO$9ZSxXAaAHkMu?NdRd5p&bo=~^Mi?CQlU{Pm%NFN@o;8UExBv~%Hb|V@#v8+ zjTBiRx8JxPVzfB5;Py33ja;A*%(?>)kGPLYO?VyIrlrgeKUm@m_85+QdMDta#gtw@ z2x=8@%&(cg2fPw<%1C(P4$PytddLafrNcbP1XAfc2eZfTVV6IXLzT&8J*iIld1I+m zQVGP$hp#T7qqH+R-gRJf0&i0TLblou4Bmty{r2A~;sROUzIlGJ_mN%o_*P@1%Ouhe z*#mFtCF47qLSZLT>ncq~O&Mv1-mb9)U6{Hf{V&(8~Npoer z4FwJ5w5B8#mJ;gXLTh_*!y@d`B%0`8v)X4M zTU)%TQuLWyNqhSn=luix?8r&~wE20WWrt3YCK>})G;isxnjbDCtyFE={g;$Bs`i~3 zo6B1^`z;X4p=AjpEc&#pBUF}yQJ6`TsFe#&=A^9th$6L;?GG%^O0Hqr;0b$p^0el( zgn@H2gQqC__Fxg1hH$`A=4>?#+7UP{&@m05(h38@ML!6Ss{Y=B@TN+os7`g32 zPT9p;shLYmnHft=su6*eLx7P>z=(Uy=^dr&t;FNh1mJQ$&K6 zoDY@cuVoD0sB=W1f@qe|H;imj?y|{LLv?n#KQJrw)4#orM7?jjbRK0z$hjUJDP|Z_t zLYqH4`t&AiRIOcbK~_ehJ3FuwQv-`PJ8Z6x2AuqxtLlx2^-Kq(4o24fqK_*_BDG1k zW0zu^>;s$Bv)dbs)7v1~np%5&qaZ0^aBIQAzFqbCf%2D4XYHu(A!YPxq`nN(iSk{A zIwm}MpuroHT9E!##G>m)k?0CzZyGj$UE!?6`(tw-on z=Dh_jg)H#O>;<)gr?+cga~vI5hnO{(zIu-3)fi-l?#??6X;?r^(qH(KCD|tbuK9N zmI?;XWcj~D%nX*D&4Ov`3l>ScqlaolsQOg*6Lyk!93`&Bu0uN}I8msR;5VjOsX}O7 zK(&H_p7Y^9G|Lt@GFl~En^iij7s$}#F1KLuRoaVWi)XVI?9cA!80D8M)Mj`dzG&7m zYUn}FQG!0;3B2Xz@BCU_U+xfctd)L4L+ln|22NV0J=8 zi-Zu|To3z(mX_Ak$Z?a%T~3vC&+!PPHtSrb)4;k9S~cFp=#(( zZvHK>!GcyLZ)!o|<_O`_(~dB|8~o#~oERHh&-Mn(Mk?r^C^P}T^!v37exkm#1e|h{ zb516C1Mlj>XMYqpMl=lXWg-;Zf1T&hUI*ZApyu6sPqT`xDuPP=5CW|UoUyle%W zV8dn{jEDQ#=!8xL3mPTdR%4Qnr^wMlLfBMD7m&GK<78 zyw~bP&V}HpS=#p8r>RYnb@W;KYyCW^r0bbBH#U8DweaaxRg1!%<`qmaPx30!Tc%xg zC+}*83b^wg>hr3rykxxBySBRg@%p;bvf=~Fxt3!upS1UVp_G4y~&eMr&qh;4z*2k##noJi=n)meAsEQz z-7`ZG=Q3e`MoXnAbt(*7mc9)lMmK_io2y8VNRJHhOK2J|ir{^6K2eMoRm@gi6t=yp z;KMfYn~h2cKx2pS%?8E0mEurjivq!WQ+OBF_$KTZae=HA@Q>{Y2t+n1q225P+gP(| z)auS;1Y(=9upUpL-PmM(Vw=&h9`6EKEwUl)sGo6^Bg&N;KWNFFpZ6bF)Mg_$(e6GB z4qmlJbO@;IOa$R_HIK9lvo<$37cCRv@F@TWq=&7p?uAB{M_5MoolpBN1s-yH3Y$U0 z1SF2I;Lk|ccs3cK;c1(TA8hT~$ddL3tRKN`29GyayS+{J%+}{m)%S0l8}u_tu7K_X z9_#9CNlj0#q2xOCccQD5L(ZkTe9Pum)k}NUN2^oodllC(vYL!58(X@2w_j%8#*Ih| zj3iK8E9NCoAl}hsA>Y%)Y<#2&5Z=?IDBjrRD@=Lz^w7Z~_Z=ZC+mNf;B4i_WE(Bd!mFg3sa|J*Vpsi+d4% znH@IuCf!dD5{)$VGr>kC8;jl7OW#-{&O9yyDn3Q4ZFb+f z2P;4L9u^c$SuT-W=P1rx$T2 zARMP@y1+OFamLQLzbgoT5t<&VXTZ^1Mru+PbQ?RTJ_&wm1yRc>b@@wB>@YNr_bUcn zwY+hKp1>DkZh;H@#eE8PsqD~lQ(p)@pla2xNT*&+Mfk(1`D>Ei5d}?P-KY<^NIjA_ z-h&Ra^OYiVpeG-8ezX-#)8jYT-I-UPf#a!WM?_Dd<{5~!Xj|^kMQ$Q>7zgTr1uE6Dhpdu8j7FO(q^j9IDW#bI zd4foSI;OA+MKtJjByk&_uSkGR_8thtG5_3Pz_TdgJIC)R5JjheMSOOg04DVtf3X1Y z8&l%65+rV%0BC%*$pCO7NZf(kc)fa=8z~6dKs{*aCs9N%c)&#Joc+!4THyVT>Nojf z0im~m+X|7o-~+G-+z_B)g%Gia0Jqi1+)zUJ;05sM^@kEc{sscvhnu};4c~VffEc^;te%?`RIY^3)~t z1g`V}TaF_R9rFZa34$(yHXxIaqH$a%)TLNhcWz@x0<^J5xDoiz1@&1rMq^C)Y)B4` z>NfZRTati#>)%ipF^^tJws}*Z}{a_1h9j z`DG2#z8ZBTa`vMpWD5@8m1gpTH(={x!~uh|eLJob*uhinDi-0#4t+{ySt1uiyI`DW z+|f=H{&P#cR*TG)`4|sy`-$3BHiW}9#$@#3csFc2pTHGNiYH&d7WjyRJ7@c0+%IH@ z+{P_k!ZB|%YE^V<(*fE+V#TWQZ|%MFq7_>gYHRAZYPC|=XPsjP8PP{uJVuY$*@^Kx zyl70nOGD2l(~qaNll+2L@joQB!-_JPn#q`Gavqc-A#unQXx^4lhL)9)H1wzp`#i)C zSd=NHQ;eFV(1$=1ATNBGyqvzy3!{$YMrcE)k0h=qNvbH~a!9}aU_^=AR1zC6F_2(M zmWwebJj#$TPcTPJ&LmZ=Hjl7VWUREo^~*E>)kIy9b{kdnK8{aIH+eBo@nQh?O0Oa( zXX-UG?@2Q6DXQrC(Ex74*a&Vs;HikiT^0%+eWORft@aHrW3M04tuBdC+H?V35xPr_ z|NkNF9fLFro;T69ZQHhO8*kfw+qP|c+O};^8`GMewlU3VWBd2ty*KXtup6dm*+wt>}z1ir`a@#wQf4#RX?AnPX!q9Tp5N~v zU)X^pUw}{PU!M>_cUln~0Cj2=62NtO5)?pmstoSWds-tRO#JXmf!HcLKQ0O{c*xF7w&0I=6x3P|q<-!vUCgz(V@txtoL z_FO&%6HsN!?U{;~0!!!=kcLm#hCO-A6?aU+SoHbVtSNC4dttk4YrC!Ray(r%*qc5( zo^RXYFk7o<_2`q;2W#nQ(sEm|35>DilC*ks$ogQN`D@k!`(2Y`$)#xZD4InWv=O-h z+^^!&tIcLy&Gv_~EQs8|Uax)A$emr9u{@jk1hxFWRO8sZQL1jwCC#2&!v2OjLln6& zzkV6@U8BvOTf_cFoFymEu%|vogEX5_(!4EAgif>PZL@mYpAcCIfACkD_7BDnn133Cba8Tt=`swKVy2IDo|*07Fw}IP_%hm|E&j{fXDfta-a0_gvZg2}~hCaxflBEIc_*a|`4&*V$cwRF`mOQysi_C}u zKGr>z@ixMYUa&VlO9!|sG>a#gD>jQK_&t*GUz3@A8Ww8y<3q|peKgb-i4g`Otb0S_ zZRnY|;1^e8B9LQIVcU8JQ(`4_w@as0Mrb2&%lfAIlfS z40q5A7RwIQG5??+cGflMy}xn5U{-2L)bXfoFt2kmwf}o@RF*o&%$5nOF!=Gw;5$Fd z0K~Cy(2KHh0OE{e&P5O)$zD_MtvrhhDb2rT*p8V7* zk6g$2vb7!95dfWbo{mXjxeS-?nBkwT={-gkRM|$+8hoyY*%;OA;y}0+;k+2TW)U|j z#k)P4Hjj5;1YmA{=!llw%%R-to@p^vCxSftts{H)%Id9Br0-hY3BYI1Z&A%G&op>} zB!Bd~Ei-@tx^UEIN0FQdjw(mAWCd%+wonm{rh~2(XSU3XL|HtpoLqx_$|gS?XSN99 zLLbi}Us`8%nFjyL&yG^DMQc&u!mqkXYZ=#?xp{T?mmH&|>q-`{0HmziuR;w%JkCg{ z101wA3x=b_??{O&x?rj!13yYUquXHMpgDLtaSYMXv)-(s4 zt^akp$*M11zwY4O|LJ7h^>k~yyQ>Xq zzSn#=|C>`OP}MF7d(M+0=PaPMIi|J|Qii+J$*wnyoDU3}cN{$7-n-YUEbmZN%zCc7 z9y)od0=ZJVFzU3$vePs(-8m2}fi63a(mc?rq2d5Da%s*)$o^VV<(!VIrW!Nid{;$N zoU}A8Dyv>_KbIjQ7Wk@4&Efx(s?#f-yC{SRYe-<}`=vtAfJ@MTbEsuZ<1)0KG6j?; zt+B`8wXZsCE?b7tgDU&YMvH#c)DE1xOCi12rA3IOp-T^;End8bwJ5Fp!iLDp;rAqL;-ra)@Gb7rDCrBgW>kD8ohG6 zR=I=`z0Iet>K{T~dYPuH3a2N-PG91!KZ&|s#BFyVTY^ElyivN|AZ>RfYjQoRb+yp| zdYjGOV$V-lrCZ$*UEZ}yt(Z1l+C|upi11ZO9s1OghIG?9ExF;9pU^PdMku|=sJ#QE zUc@C@LZWp9(l;loQY`#*f zxmB0;7woJ_(S1p6y6obbT!t2X*?60&qr?psnO7`oFBOC%YSh28pt;K?jmryrra0p{6Jtkqtm^1HTQ zn}xc}Nik5}Up+DnB`$qIu`?{S-7aRLjui-9!u%bNHILqy#L&k$yuU%%>czB#62lQz zyfD`Cq0_ukKpy#lGq!0|==Ih>^Xn7sXx*s%)*5>~{miW;<{6)cJYNGdgvTV!`wD^n z(>~W^KJQ$?18xhb+}z@p_OCrZZIJQpsz>zi*1#<6T}S97Hpz_+N5WLTm;rgi(qs*W zi$gR^j9@^t8>Oz6T!r5mUF)SNj*(BuS*f1k zPfX+lMT~CVtigjz+Y;xDl6ZE5a31rFJMBrZHnBX0aJ(+6R;j$440YFKTwU@63ax)@ zlgcZ2+12tvd-dW*3{X7@Gld2d8u1p@<7}L6YkN4#T+lzqlck#y{9-)4Xf{+uY!b+R zI%B8@mxRSE{r_HCC z6)Ww0sti{2*GPe-a~_g3_TZu}j}H_CYS`KayV)9S?M=~3AG>X z^@Po{IV?0EEc>nLC5n2ly0&IR#8n~jwv3e3E%CvnYHHCr=EcXp`$;Kxw^{uGlmA>9 zjz@Fjjz{(FmGX*9w#LP{E5AuQ!|(8A^-7$nNY+d+8{KiE$UrPnLM^ky)?FUj{+_}EgMgZ2nON0lz(ibV%z_dltn(73)(~E59JBEG$9+PnBupd_V zivZj`&JnL63Gya7A+z%bkl2Ngke}u%4v^HPD|!xoL#_0WX@qkvUyAc!(bh6Y>C_Bs zvkuOnL5dAIx!2cv7NO-*4nf!B$cF14BXk2I@snSTi|A=cqkL;~l) zy!0UwWA~h4Dfy|@a#|3Gl#5~KrqU8UqFwQ{XAg^?hlgyjMN2Yu@1f z`>9(Rpk(mIalc58^~J5R1&RA3u6bk$T>jaPqyWkvQ9{9y*0w$UDe0x90!O%N3H0h7 zG|%irjg5bvqQ(_>j3;yC0Fz_b8_R-czWmmU!KvPyD>#QW%L!Tb!--q6j|R5Gs=C)&7Wpp07UGDlD}_F> z(~Xy3bQ|){A?YdT-7o1Wq&IP#$6q7j(d`7XFi?iCHlDbK&G+kYReForq!DK{s?7%TKh+-kjby zJd56l6OY)ash_1$_6pWZ#6~!pOVZY|o)?22AVBIt4^SZY;9rT;M-n$r(lg(rhdzYI zFt|sO!BJ|X6TBeKtoMs6R)A>wY%2z3t~#U4yLGY`d}>VFlb+=3Xd*c`+82c`c@y*l zbM0~Uj5X;kky3BunWAX4Fvx3Yp)ka2z`{2h$;yDT&T~yFFBbg$0t)IT3|qk|#@J$xei42JeahW15I@hM61X_0W(-iGGn%P*VQ2a(8{4XNmw_d=&?KY;;u3PeFikfVC-?53ReU6AI8T2ubr0FAPcZpfCDK^ChgT6{@(K%Vu;uXMu594{N+< z4d*GJbSXj>B0lWhr4=@^^9y6`pkeDyqYMyxWGGyuXR|V|XcT?8vcjomZ(5_J#OO_J zkyIb^v#OMWdh$LQNI=BFRWKmoARmYak=R=Ff;;J1zKjoYs6Ptp8604=G?dM6>B}_f z0myh(rn}VQCOd$0m>J~9KFJLEazwHNc2_6!%0=N1pAtYx{n7CKd2vyH5E?A)h%Qkh z$`DItJ}@wzZFH}1!wlz&c(KDcg6`SNyk5z?dQg0LQ20|%JRW>oOLcS=E9Ze3OFI3* zS$E0R&G-rIQYh#Odi?{$7oV1L5&0YRw&z;nLkd#K!>I=K10^6Kd_B z^QOChiig2GY=8ZP0MaY9$QQ-ww|8G5`h{RICLn)c`lF=EdOm@7Jo<~ybbseylz5Hu zlLyU+kHnwQVBfWMG;w+Ci4*0MC@c_U?}FqV9qkJW?ThNaIM>8eZd7!j?C2U^&hs^v zWcsrJ<82pTqcZ3t?w}C#IyT4~TG1O^^cOVR7be;lXJ~#D&n70z$fA%I;Z-35|7I|c zTkDBUiGK{&rfaBl&$NPNW_T?V{a7aut>9jS1${ai_l05k{hw0D1BNn#T7bZ z3N6L9l`SZz{8J+T3YN4M)Qfd!71T>~h)Cinv4l-_hA8uDs?`0(kJ3?Tl3!l(r9xq_ zYPsl!x+eR3%2`HfU3yjAB_-trIl^2>9{z^IUHyjw?;yhpWG1foUoeCZCZ6jL1Am58zdJUE{29v(SzhmKjQp8j4D5G@ z7E5ky+$}SeshPB^Q(IGPRn*L>WvN}-lQMeBhE&qj_bAg_-+Enq*%LaJ^HbAaZfwj+ z;!5lc!kH(hkCoHcPYh-n0V9*A)7OF-taJk=<_|}nc@}X$9dU5|U;Ibdq>i}b;_BZ` z75_)SpUhlJlQCF!dsyuvH=5^+JE~9ua$hTGNdH zL*j4IGEw2UREiU#@{2Js4){b_mmgl1T0g43_eu{q^#HW=C59Y&E7e{8E%-{cxsz*4 z=Hl#TXh!(i622}GrbD|K_f74idi8#~NXTGqCNcWc`@W_&^8~?Af+lwid_CpA>ry{s z4J68%6glYI(~rlwmV4JRTS*=nbTNFn>Y@ZA>k|wl*GB7)8(#*roH&8-xsn87bFjX&@J4PX}?gRg{*hGw;vddbLttc^mTtIo#$ zaJBQn{~#Mbk!qQ7?UZn8y#s2!>9iD901k-LbtYY*P5YPT39d=xbJ4Oq5nIkpX;|3O zW(WIKG)%!wO7NkYdlS_vO|`0KN49`2Jgs^pJAuZ=@wi-&S^;D4AWe{3F=I?tEeo95 zmw?(Ax(r6!S^`9R>5-p{CYm5MXaLQ@9OT;N;5HBd=U_FYR-0dUjJt$?WIddAJPxbX z+I7hmSSx&*$0ljlv5uTf$~;aQe&*9OXD?Ah)e{ENPsN{@g+-O8m0f*>w5LcRS^0$K z`$ls~O%zWZY06zRt}f|YGe-C{Mdtr#9(nK32sk0Vmq3;0D7Ck|(@@rAOZK~~C>#W5 zWB3c`_I)gd#HKHx60aoX*Sw3jx0aN93iwd+mLTKe$&9t|R+bnHHZprO|-XmPPQQU zh>B&;inqBqF;!{C>bDLtvC74VuaKO{khT$BM*O0c`9;Sr#2c81;@>VJ1Z#<7Pq zSQXM6t2m(y>nzmwsn0YTGVpxT%d_d06w1zebwSiQSv2L9ZtusctLm~k!?e*^#LZ)w zN#|8FJ#a0X;D9$-F$%a@)iFpIS+@ely1lN~g{pUa+eL|Cr)dA=`_L!9=+n>-k?sNy z$rNk(59TRc-`QM7nJbcS89Dd@AmgKjbNz+2A-i=D@6D?~Wt{00M}+V+qr7WSlovg+ zi7D@0QdistQw;$eG@jv~N=4F(3*{wKE*-B1AyWdZ(aKBn3kG5?@0QKu zMsm@&nWP$->Xz?XKjQ~NU_XfU4NA8UW$sF?5Po9c_^n{Rg1gIErnK77$b!r4!^$Et zEFN5&yufR|P@b2Wmr@(_j^wkF2+pL6YoA`jAmyXKQ>AT?u8*n%O-quaJ;S0Cy{a$Z zJ}icc*!3Hu)$*gCHb$w)(Hr2<9bFi|SJ}J2fQH1SiUA}O#iD90pjpcHGR*P{rw*=P zCPh)t9qy}Um96xaLg z@zM#pG1FqHedjgct>xXg+|NMKfP$j%RN|7Hui*x(y z&ilN-nV`?qs0;g|Ap7jM%{%$s@gUU=8}Mlfd0A2R4$J+3+R?vOW`=q{5}*hG>ZjWZ zkysW~9Y2`g8#b3+lPTjw*DT6$m7J}~a@}iiF7LCJ=_;JPyBeQ~p{wodm7jUp8m0r4 z9FbqjSZ-;j)jCzfU`0o*8n~RVei7`{C}9_mEkmX++rB`*CrpiTi1G!MWDEwd@A0uw zzb9S73X>@hBWmP0kt-^9Mq5&Di56yq9OwRH@ zL-DvRVvP4EYuPa!{d?PT-#i~A$eLOkt%H%ulY@pf!SYsTvi`5dBuJ1R!I!tC1E&`BhqBehym~Gbi&e+6uzxEA>oCl_(1hvfyObI-n zaGJYaX~qRJ(6$b;{oQdqKHS*{f1pM93$-+GRcE(wK5oqPuSE$;=34z6Zft<^#b5tD z)E}{N4LedlKmxt~$7H?1{PB^Lle}N5_ScL+eRcs(Q%_r`Z=BtDANJ)_(8q-F&cx;0 zw-GZXKp$IKF6Y_a@Jc!x7Waih4?fw+A35UtXcV@-5FU{SKd~DFqwEej@7$}~Dt`Tv zpjX)9r}n4bSZ4oQ{0^gi5jQxd`&+;DjT?L4CqLoDuZ*jKPHtYt5nEarBfS1tuWj13 z#>cyTLC23aqbfw|zKrMeSPU(JdI}@cym(4ht6HX6)jlO3i;~ycA|>{6KM(=je@_jZ zwjkPLqzoEqMUaeG-_QvV;3N`o%4!IaHCB-mnqnp?hcpfDH^Yd$)V$08*ZI%+m%<>E zaP3C}#PUl-&`N`R<2_^1) zZC8O;3j7}xk0!sfm52vi|87Wgag$21r~1wdCSJeyU%wMs1-|aYW`bxOAVx$u^$ze6 z#3Os)!}jr+gdIfxEltLW35!2BFW9!%xB&O*oUbhR{K!a0LujCp-lCtYupG1#k9kxh+egNE^C} zEbP$5n-I&PT~+pry!sc#7%5OpKk?$FrYwpPqqm0w$St|9knzDSDU^hq*hkz6{UeO( zo;;thK^v@DIRJ~Q7(ao z@)?z3rVMx5aZd}wv$*hi(Wfk^Il71Pp;EjnD2`rby=-pswiNVG2oJ{yqn9YuSuRJn z!dQ18O==7AQ!YXFFDc_cB`jALfo5)iK@JJ3-6Y1|CqEqvt4 z?!bsTrl{FcrVSVSFm))qszgu*mjw2cmlb(^c(G$&7mn@ZH%Y%){Zu`?5>{y=ru+BXB?K2KU*gp$a`zylym6tu<4h~nm zgY%n3GNZw5Whfp@0>6xx(x6u?p2Hh>Zrvlq>=;rW@ISzh8_}t0%*k2}u|Lf3=ae)X z@D4&*;aV($^OyT|4N}iAu)`RgtJkH-YQ_U{O+MmWnp$-&_O4YZvThlpWdcXz5R#c^ zTezL6U%sAhdhvJ0Y%qOay-bF0v#O*`*Nr^NTb;(#q=y<9p`Z$HMVDM*?D@C=1 zl(?;LJsGn)RhI8HUv(87rLKE-bDg4*67C-!0QpV_bUp)8Um*yMDI(Ro#kV?eB&8s7 zp_$1ObCAr1&pi4ksy=uxC#oJy(9IY}G^$DA3#S_*N%&L6iV*VL+K|6XjbkBeJyt^) zo$?~Y`E$W_1VHbYLbgPc_+jsIILzZi@-PWPzeXvHTbc*&ER=rl|?g@!Fbnlib*8xcsHh+2X`oM3ecZ@m$otC-k~fSdM-yPB6q1W>+mL? zJ=HqSVY~CQhV9^~3;oDc>vK6^9CG05({^o}+sv4FvhZJK$j|Cj8wEM2Cgc!F85EnC(Ud+F>nfVPgU8bUHF{{;|z}LB+6bfK4i;A~N(Gv?%q4TC8-f znN;E9*%+-ErDHmISXNDF(yb098C3B-5zXZ5OkzFwOzpV{zr}_3-P4+xUKJf=Lb>Qe z18Na$sk)9+^_R*qGZ|C049C^(pyYXYi%U~WhSD?Q)YrH2GMac9&011a|1+G0DYL)&tWjFJs` zr!Q;|4D*VM=yhqioh_!5Y>(p6n^h_!4<4m1`jT`LM}vCQIr#@_H)A%;40Cs4vE#&1 z3#QnNgGU&)n5jU`QLHb3AUrAw$3|BG^=m?J{xMTH9J zL#;B~il~?O0=b`_ zi3)4yZ)i}=6<6FnjGtb~SOQRRl7;_LTdh$XtpVLxHG-f8;g0$7G zs-E{m>Jm7ne(CsM8~2?1V(X!lWk^ZVna4MS;MJ*Wg}d86NNq_xwe(?-zd3c}crqWM z*lmlp)_9YrHPm@0E()?sF{;AsNE3k5*$9X`z#7Ukbz?d7BZc=88TNzPJxi_JO94-2 zPY*lDhPch59EU&ypcC#q@^*jU5DcJWdr>pp{qf4Z9^%)Z=;?(gz9)Lme`@j;`03|I ztT&3zFqm2!lY1#8H0kr=e@PS&b#)NA(f1C+KbhE!`U&D2m)KZvE4|_S4vWk5CS*`2 zYyK-oLhJis8*ig$$G|CJm!zvzhg+PXY4^8GORH|ril)>kEVUp!azH}2FOK&ebLQYg zWqjTYH4st$`J!^)(HL_eNcWTK{8`fb*LuTqts3vPEcVXZxD!do5>LyV^fCQsvVNcw zpLV*$Yjw(`z9!O!p{81I%~Ed-#`S|{_*eFNfCBJKZ2MOGE@1%mKsoA4_?x1y22`fL z6juqylieuY0Xmr}dW+yd1mq(uM$fUb$LuH9bW4FoieDtZ4&}77lk5?UrrXxjeO(tk3#~Sw1j#vqoF(UZDL?a%T(PR3!=Dg-XjVGXIPNG=v&#G2JMYa7$y2YK zaF14KRn*->GUtadpX&J&Y`aX*c1q#!GnyKQwJd+V`FEMQ4gXTgYD0m)QFKS$h;!WI z^ z(NOi0RkhAb0kbReyZOjirs*~C_<@=~J>lf>&a5Xju9*^3(M$s&GnRSNT)H5GVVI0T z=bSLvsK8-&jUJ91HOw3}94WDvDY2(rxe_4GAtWa9#<}>+Sm$K`m-ZC+ACNL{Q}eyo zchn$+@8F{UbC9y&|LJDm)ZGSXZsGF31y)x1znx6d+1&)_D)!%}{vWvIEN?$`O{|GP zZkzi}l)_7hN|Idr6f}=E5;;A%D-5^{Nj*ZvWoQX;wG<5JY{^jrQ4Nf9ni#R6ssx&_ z1e$%QzxWR9b8(?1B_#=bd>6ue1HL;KcFS0$O2_xIcYk|Mj^F2=wtWBU89qNQet^6` z_lS72bPp3FNaLSB00xPdLl*%C`iXULknVwg-i1m}(C6SoN8JSnS`y^WfjlTW#|`!{ z;V;l%wdsh#PQ8;n%OnskOfa=@IH7cQ%nPBgh#tZHwBQp{tYA7tor{bl)sO_s;>jwe z5kZ2?flcr_lOAN?O4tMo%_gDpB;-v3ql=iBXYf9F;t6N+BXJxU@vY;oYKD^12{!q@ zcew6j&hfPlYnlW|qX)~joBuQ@O^YVkx?M@3{qxPQCK$pp*^~P7{TDG(%a;@6H%@J2 z!iGQht=C62l9@jXQoPF3Tf$Yz1MDz6Azvwr?~Cv8hD}DkcZl%%47;=ZavTN}BjH6j z$D=5Ra2Q0`XR7Rc`j&2CBFg^mEDD=TNksK#V9*|fh$Yv<=_1>=v#kpD4Pive3~`WT zw@E~@D(5T2opPlut4Cdx0VW#%;2zF6RE*8_v~hJZAcxt_rt!2?0$0xq4Vf1?ya4Xg z4`FBJMuq{@(oD}PB=C-TBG*V#hzF2)MP51-KVT$6x(9=pI?b1;O;ga(S#&J7v(-%4 zFE0McGR>-~j_?u0O50~rNUh2aIO!KkckjPdgr;VUk#T>eW47c7{(E$Wi#xrf$5}bJ^+4y(jSU&fIE~{d zUu$E!HSwlxvrq~(%I5uLL6a#UET=F{b=C8NC$Jq zj`EnF6&W4^ija~5Q4mx>g)>h&Mx|8A$e=3?yRNtSoedkT(tY0#0#Y9$ z55Eqc5%H|4Q&*1T0zg-k0gG^!m$$lzCk7@c=4@xj+RL5?kLs}xR;!}@t6G8t6|NhF zlkcKRR5rNDK-2Do3EMPk+V~k;da!nF{nh|=S*L)hc385xU#p@vt64@YQ4(xVrwNdT z+a<9(Dv9dvF8J?XH>v@)3>MQxqfT4R6T|yTwEQi*mMFGn?s*g^Jx|5o5-iNCJaSd4 zq$#!Dutl4;I`^#>()x}8I-ZOi3%+}}2MZ0XaDWalWd1pD#6&ruq%!gXJ zjCe~5Z8fc2&rGP=v9?;d#0V3mx|({5N49k7j03HDHEET(oSob<(=wSw0HZ}U=cPK^ zFV3?%VcPr7w2hs;{^c!IP68AeH+O^cV*0COK}vF8UE=^lZ=Z`SJ@YO%y^QVdbf%gm zy^^?Axo$=!N5v)kCO5sbZM@RoWM}OZeVmytnd)fvyZQMM+8cTmoA4!=szM+UXy?VM zDMo*XFT6&g*PHc!dWpK!IS;%fLl!awpbo>PH+BznYCtMbkNnt**|dV$Gxo)#DE8?Pem zpFeXWvxqV~fVg9ed!Qa_Ar+-6|ziP?NCK+R~j>I zQEz`no+3!<_7^-80E3azawaf-lqSLU-Y52sZ|i|C7j#n({GklOn&*n3@Vn_0qvDCa z!i$16DH)*Yn8u22D4r6d@!hofXckNkq+==#;~va{yI{MWc4 zwNFoA`)YE=`jH^)STIb%w}l!u(4<`ZlW*&e$ATTIiyfY`Bea}0e$ta4u8k^=W3DXu zWPDPp^Kg>t%!(Ljbv?E+%#gTN*VPiy#jdMzx|+gsMH11|7Gm#I(;`;)5mbJ??HHn! zW$)-=Md>WXK2mqYcr4|m_$=Q^AqbHzD5CzKMz>yNS1;iMDaZH>7XLMh0Re4e5>t>x zi$!P=JypUHBSwe@%l}1Y8~J_=M5vO#>r#=&%L$~9n<{Zx)4L27Rs>8P|q=`THvOa)G59d*GV#(mn4`q!G-?Ej>W^dKD zI}u;0GMl$3yRz|jJPs5${*j{JQU#Dq>KQA& zArubw5{?eGvRiXFITFMh^Xy+-4*f3X=>7kMqGxmW9=(u_*@cA;l17<%*rly|r#ZIA z66bj+oRQ<_7rYv5dNYX&oMlY;;}tpnvc&U0-{MA61jrt^a|jvZ5${e|5u|uUjbm~M z0r7~B|0Au7ANb)t<&5{eKgWrqB`)zqk54EZnEjWeyuhRKC^Yq-;csVBJW}^rmp1um zfru-^q7po+s!A(zN*V~fWWhtl!DU@=BV)Fo2c}+QWjs3i z5oEXOX|bFDlKMfmrVL7N%GH<}r@l_SrzpEdas6rE+l!mpPNM5*{F~rT)Gw@yn|uH> zR8;OLOOvPqMn{a!K35yb56(MDfjx-#6&I7rIjDY?oE=^PM6HO<3C~Y(yH8 zY+-TGifm@E4&)miDOV(mN@ZS?8VEVq@}51ALYIHdV7eJaxgi@gLLA@>Z48qUhW=n| zi4XN{{n1U^bv;A%+eY&flDx5j6A~W^#Skd{j%b~@8=J8kOB>>-a>D|-Q@s0I?xySk zrXL8~pGW2u7DB9YBMukv-H{b?o>hBxkZUMa_r_9aK(_afs(oP@SCZ{DO>XqN#YoamRJA%ZfEkudGC#>nVE?x9DN|1i2n=w$@1sZ4&_XytDBRbVh@ zMUbF;Vyc$V-gcSH;Yft;*M*+)+}dN@ z!_a6zYfOxGNgm>_(5MXaNIN7%zJ3Dn7Gi9Kc1a)Nuh{4a^T;{$Sv07-Bw%*n-*u4s z+}mR;3(v4YG~*CyIWN-wC)m&fk@pdZ(9WN1cOAU<_yfo88nU5}8}8Dd<UPnvi(XbwJ1wDno%WQOFC7mPn&B1io@3?0=Z-!_goD z`pkUELq4q;(6`K_*YYRuDMz-iwXtBFWzD4T$b_5xLS)lnp^z;9X9~Hm&Szq=gD@uM;pT_C>SGJW6|hd)q*DFp;MTy(i$vBn4}$bX`$wsT39mFjXXpLvYY-zq#pb7@yzj zyeys5-L77tsN3^3)3=$aRZv5AZ{Tb-m(P3hHJ``pYH8$kl6wNe5rYr08G3AN#$t*T z83!n2wS<@j&^U}fMutk6`H`To;em?>?*=VSI)_?vY~#R6yx~6~Mv~_(c!`q;HBKSm zGHUI>lB&4a83zvHwfpbXNwMsOF|klvS%(r(?w)Tox7F43v`8Bp`udnYiOj%+ZO$5# zEHS8HY)ec>i*S&VY(l_|{IMiMK?R`4LG0h!vacH17uB|_YRNPH;`(_`unbm)Th1km z$-!2#BjbkmvFAnRkwk85TgN&Q?Nr({EyLlf0%L{BfdQX(B6%)R6{N&z&Mzc5g1Ewh z@47`J-ZePGaHKSYeiL?(;ZJTEW?f=g9IqnA zIgNGFUypMjz+)>e{SYBSK-aR<4Q=mwDn|e}hz9U%DsO`Ix3)5(vA%*Q#}5^vCOYz> za70j8QlAUnnD*-@Mqp@?9}mHuu_DsT@yXK;; z1U40Y0hxEWh>FAE0>15042{3IKMn;%>-_v`Gsib;8XPh}z%gJh^U@|uf`Jx1Z42XuWti`{ zzq3lprHn&%UW2+MY+=6MviUS2K&2b?Zf@Y@`{Se&$A$|?~hhL>bu_3r(tfIO}WS{+Kp28 zKxLd1{M%(8PvBktq-yyc>n|5@V!lz8P40ktH-(1ZU6GLoQgm4`3J+?Q1Ta$8#sbbW zbE*AVam!Wi`iyJ!<#mk8jW;p|1yAzVVKceRnl7GO@xF&}{$W&yI%r4|d^6S!sO%k) zVuT~1Z>6rs$Vk#?dqpr$Q=^HPFIV!`Eof2#$!B4kU*uZ6-tS=>oGbQpHd>zqiCKWJ z8xnUbipL#Pz#l>5=i0VMN`(Sl3Zp@85y#gMw~B`OxEH9%16ZRKh37}y{!=H4{b6wj z0UGkoAey?Y0FCZr^sSc}daj5KowKEoi=m1e8*T!x8F1nA!_s-DHr^^bugRz?wTaN3 zbTh4kr%r6N6NBQOoGA_mk;?7gU1IzhwKS;?|u@S1$W&VXhS*Ejnz% zm8)F@q#7t@kXk|wTZO6)3&y!Y6@LI8c4gm-@RfJr?;5iv?UrsnQXaOQeP{<5ku3+w zV+Vwr>5e0ukvYu03q`#Phwel|uY#d$>V_Ug#OH`S_v~h9v~cMg8H@~P&}ob&xGA>L zYblnT$}BbIh05j_Fnuci@PxBpwqV^DOB^q<#WfSdgbO^EYYyjAhGel?|Ft6csG{Vf zMxK1m7%CbSEsLXG_ZA=@&`(1383*T%DHZNN3ZAw#*w@L#fno2|K6ZK-i~Aip!b(2( z2c5H|UwrFTh+pwpa*Qhe|EmZpl`H~n**MeX9VK#%8*nvYLYXB|>8 z|8|P&9f{s@1sshB?h4CxX{!Ek5JAbPh+K%ugscbW+r(eq+X}H!{H-_dN9@ zD`d!%Xg8`6;xIEv)-f;;4l|QGcjr&goTXS^lx;w5=he~I(Rm(SW8dZX_ddIv7b3AQ z+9FAdpH&;^k4+kDG6kmGMEz=((PdnPVNjUA{JtQX8!u#6-`y2cgG+a}H1BIxSfJh@ z8mm`}rs&Y5lySEioW8+5`~GO*LZy&!dB8aFL!nT zydO5hMTI@R1dseEu@(TEknL}%mNzv}5AGObjk$Pe3qK0q4slf`J7uI{?ya6WbN9-Z z1rkaAR&A}alyyh@-DYNO=!DTyT55+OD6Q(qE$oF6+ou$W*1^$r-d9f%;+s&?IpvNe zrL6M><3QNcph6J%*E7`5-AFFUa{9ZU55)aauZ_ZHPx0FO#( zhP{88jbl2U$TSyoD^CeU!(1FXO(ScJ1DV43NdJ9~;y4YdUI)%o+3SWA=>%;*y_(+{ z`=;vSgwF{=U3pKzn0H*uo<^ZlnrKWbWpi&+EGR8tHhRxcmtS!dn^bIUG3cizN)36o1-6hA#j<~9?W;<1 zgzc-4yt*H&nNw}ms}p6&ORr;MWnTe$U$bd)%5zDteF;GDnmT1#aCS8)%Tk1yMuf^$ zaJO>ukri8ubE4lXb}PsGJw2ajmOsWq1uc*hcaxi17JQDi6LwP-!~e+=IJmHF^@hXu zLY6$&BJ`5af9DlRU@jJOZ-M%@-^BJXMSyU8*K%|6@K*l+L-rL2zB5 zYn6pAbW+o0LaZVICNpRqL-b?-3aCA7Ref>=Ad2`Y3hUUjE7w8WV~UTQoP5TMYv?eX zb|U65t|5P|o8R_oQ?MFiSqYnTWICNdmHn>j44VsTq`ZBgv0YEb!BHGp;2)ZPo*3qn zYC5?px?=JEl(KVaxnG%gV9Sz!d_hwG&MuVO=vQKH;byeYJE0zi0R7>N`oi{`g^9+d zeyBg6J7cIVEe8Zo-J{86xyk1pdY+!mryT5bI@xWR;C#Q{%f5*#40`F=5Rv ze234xK4P^d7#|yQX7~d?fN0J3+QJ-ddc$t;4Lx$Ev%D-5tZtoB)!JtgXz+ z`j^vxW9_YD+xnJv;XuP_7#dE)%*@Qp%*;#;G|cEQGc!5N&@ehp(l9m5j9-4|yH~oe zbaehXuQcA4$J_Gq_Uvb^Sp$#t1e2m}oJ0+DRkM!W?CWwR$h2%ps3$u8fDVbbT=6;av&FAVg}mF@Jk4@HTSl@4q^W!))x10WQNMFf zW8$?Bii#hsGSpQc4enSp)NG-NOnX=>yVCOGA1rhm)SFbMENs@#Yt)aw*!j_FPg_q^ zj7K8XDAvA**U3BYg#`<%VD{C2a^F;|x7e3Na`^#3mjbTvND(qa8$y}9bV;GVRr%7Fz ztGqH$_sB&FDrp(WmUtk@CVoUIzsjQZ{wmQ(RxuQ_`AAKP2`E+T77*8=1$dcOHg8N8 z-eFn4B{gqQ)EFi%{VBe)4c({5lkMzwah>N%joazHX4uG1F5xzNJeeF`$e~)$m$`8) z{pBK#_Q9&2dSTYMIHA4aT5S+WvmR~J^X8K>aDBc%Y^jVjtb=jlU!g&`q*}O~fU$}} z4bLCF11fHd!^o0q$oM>5@rYmjDgLl!rq!YuQ*-uC?{EC zc^+OsnmKP?K!(=dnmn&qOXvtm277fr)Hi8B(i*)a+WyEyK)NA$-eyIAgp%53nO+gS zN;ayaOZHJ>Jl3(CXV%4(u~(!w$024ec2KLFsE_51SmPvowt6$r{yAs4Vl%Y+dHwLW zV9eVyf1B(FEa8%1)adPxt73nmp27gcqUTZO(#?3s6XYGtH`K1$0F}_8YwEBe^=m@j z;e_&O_{f>WiN9m}-$Zxd!iJc`hOjYGpC?u~cE+pA1;@_bl2vp$#G`DJ3Y{x4WE-jC z5_h~+x`d*zrLQ2U1x8V68EAteQ@C+Xd5a%es0q!V%q#586jME+RBX@JD~O8()c>Y4 zARnyq0h($f0P^op6K{39c=+U$p35QQuSF(jk@rm|`pBf+-eT26sy75wC{--!m; zn7=C=&3AknzN-Q`Cf=#X$T>=*u1aJC8K*6kmsm-36bi&NIx>36GEVJN`jjvK<U;5&Xjf02oPK#2yzy%YLOd>g1+IZ5@H7RDjs?@Tk_F=1_6Jdv8OOshDP71-w^YJBy#XfQc$}7N+H~4pfz(k7xbvKe zI*?V)moV0g=7|e!CdF8ba9qm{8_*zi64L^}s9+@gCACFC&3XtkyG2#7$1TIt%>x^0 zYF4Lo8-tQr*^yVj=OMVe_+7{00p$$Y{6W3320oBg3sUBSj+sS|_LFN!bSX6UD^Igz ziYu4lO;yC)A1A>=cc!xDDl_?th)nYXtQCZ|&(_cs%?gfnF9fT2Y`4MZoK}h$>hV25 z8d2e_pnKl*kssflFL2T-H=b7c$IDyNtOm@-t@qd1GZEK{#{GC^DAa-FMT%%dX!ky2 zOOH_h>>J@i%*$VagMlghN5U1o|JKY@%q{H9P2E0ef7BdR-CV34EdR$2(v%jQmL3T6 z{UYmYm?SX@F^Uw^5ZB~St2GklNHgVz5HVsg6LtX$LMD&&0#-+rdJjdtN)OQLkVXxt zv_=`d3NkZuh@nAU*Y-rEW?lDp<>%ve?FW%#YxtF|=%0&VZ_o422f+{Ri}ss7-G@`C z*?|M*TWHfk`hF=oocUcHSv};Doq`a;O?;$d`pEC}#Xu`k9VaQr0{6iNt3vWZaTwia zz&5PC)zLf*iO($TXd!=t11Vt~Qf-1GpAjO#2dW2QVX*OeGDLij(4T5%3|mrCAGSq% zD+#W2BO^QCUwQvQY% zRQi5Tb2=2&+nzoqZzj51^De_b0pM49^H$;QpwD1VgF28IYc9=hEnRXkEIi62*{dKw zxt{=??%Viv2J=u^MqN#!9^89e(4muziIg1h%sz!WmOM7GI1wjkq!}iV9$+#yB!lum zy=}FuHR3ePb~8rWM8eIKKbp1|N`rc#&J5GS$8qw_;;9sN!`oMwABU46df?fu)FH!R zw+HaWwC(j{q;$R*p=~(Mj4Fdpr^+11Ov`SRO_B6vc{=ANKXKa(Pbdq*_GGmPWlJmz zmKUgCsYw+*NUb`rh`TK{F|IYl$9}3##c7h$Fl|OgV!68GY#;M|D+^*k0vU7E1eMYc zU$o?nBW(X8^#m&G?n~DwKBz9s@4s-dG*r56Y)_6(n zyBe*y!>UFz80lM-fT-h!S$kj;5QqEdB!VkC{C9ua-c3m1y!q6vX6+KnWhCF8;xC4J zm4HF`$1?wmlKKmd57}X#P#*TH+S>G#3!cZE zc;sZ`QkS?H&`#s5`;#T3v<(o035*JAZt`Zi`(sdm^p`!!s+eioT5dKpj;n4y7?r*@ zD{Ol%Z-3N|wXzN7N87-rS$bZt6fV;m(Hx~>WA~!-O>vU}6WjCYr7Lhe)n4%Y#)PP+ zWJmOo>9h75UW;VCN<8Tc=#?YG=I>9)w!C29c*;(uAJgnZh^rq#$b@~t*<+&G`^Ee= zhgaoT+63{VRQ&-`HOYRVw_B1ViQ@Wi4cPHpl!#wXik=T)8$hCW_u%U~hCfHYW!kAt zJ0eW!OjZc=lfNe8;v3X_&c(&g_ZW4KyjQI6wE|_3>0dBk{kMk)AIZ1vpe6;+O0b}WTiWCCr_@$K@ z%Bb%`9+dT>AIrwWYZG3fnm2;ueP^j@&kCEyQB>ZSm5;3N1G`6cYV{$>%`jt99N1D5 zodKhQk0Svr+1`(^-j}$8_K$!!6mNoxLQP zKMZY}CGV+o!u=RJNe`XBdFX4EZTG$|WF#;(TPbN~L~||ynK=g=){~W9yS{>8ywexM z(eLKcmFqy1Nu)k{)5FlmvERE5-b2*-;JdscM}MF?LLDlAisEr;Xm^gTc~s56eYV_M zLF|&s5ujDRa-SQo&roA%|Dbb9Nx5MMHfYlrY>|elUkgOBOt-UOp*{3#DMjDfT-8eq zH%X$iw-%G)gLnahZ$4|;SGDt!zshjcVV+II+0281ys0rTV`QiVl1fxu;Ln;~j&h`- zo+CTbM`XE+L<>!EJ=mtu8LgQ;1Tfg&_z~VFw~f%#+oKuH*>5Yxv8hD4`wnK8=`BXS z^wFUkQG-)K5GNogQ5#BuF<0hur-HZ03#n%)m7yn#ihvG;Koi*QN+xVsi)t)F4{)6YxM_@V}#ezeN z&b0wevw$7S^&P<`g3gZ)D?_QuN(U3VkK9E7=cfNaJeTMcU^q00h=l5G&3k`Vj7L!rMS;9H`G|{McAjWf3wxM+g=b3Nrdq&urLY`YUC+dq_p4ubi zF6=Xbr|@5*V1EznflgN=S|{)gQX|?BFgV?@-K?|l=yf5PwHP!HUWiZ&e&-3q+>{Oa1Tf742M2N{h4%DXjy7rpbzPv zi5wACz0+({eKg9v#BnJSZ<`}ovqE)fhUL@=!6P?j-Z7t{FP|xM3t^!Q_n}v=BRzKA zRy~+==uk)>a%3X~0$hx2kAg55RBOX08UQ^8+<`L=!N-c*nP*28XD-LlCQ;CaJU?CD zw_YggcXb5L)-uqqb5cEW9%*_k!d^wjX{aQNw78+k$4M4xN6|;oowFOiQBu`#scJ_d znR8#2ybE2M3oOh+kNxS6wV@g7p$+ZiJS~m<@tcjC^3r~^v4f(LYhB(wS|?}iT31(p z0CICZY}n-TO#|4wsxBY**dIoqHG8}f9R6~@mDuCVr*rQGuXwGgxWF2k7r(3d(#ln? zw%(D|)%fk~Fn`3*=C}BgKuYr?yZ5Ag$JC(Xr7rGMz0ToLu}lwQZ;@hJxlvb`Gb3&) zKjN!F^0G{JxaDPaMka0fj*vD?ybG303d5wD&#&kcX2~P*;Ksl%FAkk#0XmK8;fir@ zD^0h?MG7~X?}!VTAuM9)zqfrBCg?2+JfALxZrWSc$;XPLv(QQuZGd(h;mF>CGs>^90>Vt53&wf zL!GO7UEnv!i)S_uKhz}xJ!kW(G$Knh;Bqtp;<=mb`KP53y}?3^g$znT46HSK_cH|@ zi9d|m=;?q~vaAjF{UxWA)yhAr`+Iq4z<+(P8=H;q8`rfE^Qcj-;7U`5W z8^`FS*CTxfZA8xJV+$f!17$j^>YOSR2>zk@UGso z?0l*H!IhO`n_NOsQb{M%sM9Os{f?{N$Ej4(C7tq2|0Ow?D~zsTxnOp@9Uq}K0Q?_+ z=cdGL&H@n(tnK@Ma;yLAIQhTza)vYgd@+V`M)TS`6P)x6q=>s##rF2w$i9fZkf;G< zVJSk0_4<<3j4vF}kvKh%)(OeAtY|;wdS1p5tV&(!1s+zChUQ+L25Z%3xOKi#&3?GY zTHWr$>Sc2B;G6>p>}<#inF;UgUeDOP`O(AL$;t~@`0(Cy1}hH>K(|5?>!^fOAtS^n z5^+~U6f5jc|E7-(9|3A$7g4Il>Im(_ZNQyy7awS_k%sluc-j39N2>;u@O5FsIKRE# zY!`yXsKH!<>sm(p&|xP28jrt)KGX@M2@pRj#I+!#Z)l0#ggaPi12cYXe>+0&9D8EW zS$aIUA;Qt03O}iioM|bi{~Khx5q^y4z_;|DKZ{JlL$s7TW{?Aq&gD*7SyN!EAA7;* zCSY?;8`DsK0a5@ARKa5kk6_8@5jI>+&6q4r#oJ}GmzpRMUtJzKcw z!;Q}A3fz-@qtavyo}>FqYMW6DnJ*=^+ z==3-|MW6qHOj%L?S8Z-X)5gNjWss%$1KjavOcA8&@pW*#Ht>gzB)=cp3Okd>(hppe z&amoJhY|rn@fCI@kJ!)m6MsA--rZ`O{r@ z!r}sUqCUE*Wp^2PgYEdZ1I%4Jpi#8Qe+noN9m|OK(>XTMrd6y*4!s@0G8gqj2Ljyl z1*LcgPYMr_IIV6@uSX$YtO)IFyT|x!TfpJk!R8uodC;#qT=(+}`Pb4g5BwJYzBPxx zSoO|klIx!Nnn_9}2hoe9l^gWR^yERa+aV5Q>n$Rh`em;^l$5b8xNwsVyKM7*f!~k# z>>JqlsCleW6MoBHjnD(L={exJjRI~dsh4ytt_>@_I%WIDrr&f|ja;&@A z<0@~p6h0TC!O1pTotJJa(j*W=(fnKxXz>=Khn{(7%vQjT_?7LXY$tQ}^K)=D&Q|%_ zf-t{BEd0L7Tgfkp0@!yD`{{TbXsYjyY=#MLFgF$eP7O@uns zhLd%%R~FLtiSylmZ-HnK=<69-%Hw#^2-AJq9gx=u5bPHd-;wL&QUk>EsW31GU8K&B zT=#-3kC28~FHaT~B)YPmuWj=ivjG)nNj+PSCLT!sqK1?Hvc!TC_N9GTPB#@@(>H~^ zqu8`&8xIal65_m19@(Rrq4qQJb5_W9k=Wbht7rjk{S&^L$Le3gT68YO3)S@)JGT^_ z0-;}717+mhwDG)A^@@2l9rIOlhk~4Dp#t`KMFWan%CHab0`jMxz@=9TXX*@Rl{&lH z-Baq^&2J#EUjYv8?0tW};JYUhztM&tC~4V6dOjs4ZKW;Cnv)Sr(S}$>ylW`%_$7L= z5p#r)p)!m%8kjzF%?ftnf)c9e}@+;`64-1>S_n1 zAkcJ{;PD6LxPnRGrg^}dh*l21BBP#vd7e_-4*$M2Q5Bzfh40tY);ZhUD1-FOO8xN} znwBF}_T=0@qH>m*g-s}=D_1{?%S=8A(1Uo%)u$QBN+f7hZmlT1>eXa!xzKBr#L@~s zclnxS$d9+N-NcTR$<>T6lV2AexsfcWui49mC-%K*V7ZZ8Rbu;^W`b#r8B}LXoxScA zJkHc(?r~K+Wt442*m*Up)T*4pGHh-mI$BGPdLnx_O*%kP=l<35t~tBhNJN!uqD9|?u4v_RMG_m>LJ8%ByO%I;lP%$SQuC zxf&~XJoNQ^TlbO1tweb8zI`o%65TRJBCjvZ2tahiQnEBvK3-Q#PIH5ZG(yusCHSV48i zmFMi29f~E-Je3A!l`nTbef-c`7wVA)BGnhnbB@P4{6Bo>`%zp~b z!7%|KQ!t{h3pD}}u5b{3MZ&9ARLm+fcgn`q{-C$~%`WcY@fyOgJ8f~b_ET|5|skXhweh_3*EV7j1VdJVzCaBfTuM-mf zlw0m2T%x)))1pN_E5(m5rd83X-#__|kWO+X035w7AFuCUbfc$4A&kQF( zF7sIxdCc{nR`TZmZRFzruH;qSyzR`%#LPeK)6VUGDF09OqLREK9y131;6ZRbh7@FT zLH8XP|CS7X1&unKR6b@(CJI~&nu~{FWTL6&y+iRk?O}-u@++9X8VD$jq~u&oyJ9*s z{lk&ZGr)fnBEgH^DY2tLE|!+%TE<5vX9nUaQb9T_aa^kMf`%Z`Y<+o!IJPm(Mayas zs`0|7{r7!i+6U8ZsqChj@imOuSCOr~qp-z#s##y5GyRH4G%J1%1EW|NYjfzmV2}IL zHdt>`z`jPx6u;7~$q)jdhX>$V zx=A80Of&g_PUnb_(2q~{8N2)4+l4BDub?6L+svHKPPpS`K2o%+`Ar}T)Jr4}gQ*n- z!#+M{88_P^BWEB;OqYj#MD*IVbj~$Y@klBy?QvP>nxIG||EH(c7F;&ZYI(tQ+b|G{ z?n)$skCpMUd4}p6tz*FU%9Pr5(u0?T38rm~y+Lea{X3NM8*SdwTsG%&7H5RN$<1@# z^Pz!Xi`g;G$7XINjTieFO{qkc)yKc$TaOpEQ-II-7R`T*Z(08DT8aFpiCD{7JDC4F zJ5kkDL>I<*hfejNo~VH!*-%oF700^3MxoY9N`eT(LSqY)^MuiAT(|cqBkOtsB!?$i z?I2%TdimWFeVeIADcK*}qF}YW*XzBR%24dx2>4=T5*DcIztXJNYZLu5E3p2x4@ta! zS8D(f*hVjBu)UPZG*)-|qu|KJae+>qAPr)&&@drz*B)!HmNpE#vexZ7jxw%d*9h^Z zOp_wcB5aQtw9K)&jp#=SX>?eqg5;?wj>6LeO!_h1cc6>n7s9}Cu`y=NhxZ2Ab7UpFt=X5hIa`GUzYK0 zF%qsCs@1p?TpH%Na9C--Fo7nHo3|8;sA45^l1Z4e{IH(oAqB)={OwgJ7LEZu_ReNDMN2U#E&ZI>Tt-pXm`LZgI`~d&XbdOK*OA`aKD5^>JGHB7Z zKs!p5l3O}J-l_!Z&P3`aS;28uj?##tJ3h{>u_`S07Us6*Z13FmAw*k>_F( z)f!d_DK?h&7v9IQRdL@aSIUsPbP~R25Z4^@gavN?1EfEC+@0efz`$6c{u7W||L@)+ z3XT%i=5}TZ#`gd2Ch1m|cU%xc@%z&j3FsgS0VDU7#h)j%Ij>1j%9N>yq1|Rf(<_YS zw`pDVnp=$v`GWt%-v>^H^a-aJCZ}oeJi!DA;f5MAUK%*W zMKqpMO-unXry|39maG{GjD{0l5&|a&6jQ$R3#+Frk*KD9`ynBBeKIeLbZ0%7{Yjr!Q~WB zcTRrSd*kxhZT3#Kc+RDn3mg8IaKPotjWAoJ1Y>ZZkW(n@`H!~HGl~~CU8C-q9lg>g zt>d6kmuCuND;NrkKjc}0AT}D#z$u{;46GaK6@*gEjDe9;7aXraHu68eSth6k(eIb3 ziQx3vwpcc{t)S!$sEDF6I$u5e8jS4D{D(&z&Jb4fXx8~Ry3L_~&lz{k*g~@R`5}z@ zg_pkMx^p_+6wVWxR(J{&yolkfU(y#~v)M1`wkE6eLiK4AZ2Q&IGOncbhT zYx5sr_kY=@RIMCc+>~6*Ev&u%4e~@$j_nLrkvVQt#TENgwxywL zN+T}TBPZe=N5BC;P&AS267o?wVx<@+YN%#l{@lxQqs!ap=H~YU5ty$Xte7&#brBif zXmLp$^|+gzl%kqg56*bH?~{at=rs=KxXLai3;!LAX^KOok&JgWOs&{&lbY8Qvw$GyXcjEg4<`*r)s|*?S zcfI`C<m$Z-1c$VO_ zHm38fWeXp#0gzKr^S1=kd+6))rAPExv{{V%??x<)^fMC)5T~ieanukzkvqC~2OWNt z-CT2>cEhhi^t02f-Peb8nseOb_L)TYx69r1$c-$C+oDFpHb!`odW!~!_}rtFL(`PJ zU0De|v#7!~HN;s-u7v-VR-IpnP3TwkSZ>JLGbV4tC%UvnG8d@-vo|UFZhNEaRL#+A zTydnAzeK0EwUkEvh`PB^9fP@c@R+VRh1Pko)pnumA!s!A_G?*vt-W|{$LdFRUE9YK zBjI1<+`_50yta3=zg#(>h$u>5gj$k~>52a1v*#JjzGKh?O=p z`W-Dg?r{?_J^l*R<-y3 z>3ShP)c7AH>dGXZoya)LOKgqdG83EeX2nEIdp38u!8lyxTAzssnj#l8b8+n|e|)7X zs#j$pGe$+=RNMOMvxPef5_smrrRM33yHSx{<4iA{N8=S!v1( zg@TybtT;nSx|w!Ga(Qn-W&G4pcOx*9>@Jd2cui)LB@*pEA)v_adj~YXv}(Y%GXbYn zx8wy4bDuz%d4R~=dkpsr0?oZ<_3~!DML=2G*EPOv+j*Ovnuqe%A0 z?EKQBIvANf_J{GJXS{!4l1s(nl<0HnMf~!grr!U$*~-5`!x}v}Up3I3z~8CNF|+UA z14G0Hawo|`$fFwJ%o2^X21)XF66Agvaj>F)SyMu-QCCyLP!qG`wb2)v1e-5ZgE}$r ztl62jX|buXZE^Ux*m$^RVfD^x0`*crp4d!1lKSYxNLY)afkIohmZYk!{pZ1&fyxH(<@U0v(D~@T`1qn z*wsBB^t-u|r@pq|mefK<|4e&VnRiOReN`8|J~6VQxB8A9Tl0smUoP~f&y396=0Gx5 zfl2e>=-v^p(x4@f{fn=94}~L!2Cr(VGu}dmpH=Vb@8x+Ed%i^K_58q!QbzjUoIvP< z7M~Me+oDNI)~~0vEso5S*0q=3cs75%aErq8iJ07ek2e=0GbekW@DcNj`v-`XC?lw< zXnPOeimM}Nsxj*6s86e@gFKBWjKe0w&c`v;Q(VV+>2C8_J;lY%z13HuxECzbG(FYI z)Mv6gjkcq_5yok06i>?CG&HAkHA|vbv6J&uw7Z@9RZ79tb6g#b{i=Se>Voukt$&Uc zbM$HwSqq{w1`{r(aCp7?D~~QBi{qdfyC0QTRo`(y`3AbP^1naNALuOd*k)!ylvg8p z=|FF@_0Xp|zZ6l%&{%w`bkGv1L&E)7JL zwSbxw0MZ%=IW^XepMSE-!B;QeuiqH7sX=#D>MM0twpO!QSxQ=m`Url~{+m8^i#4g} z;y6Jz)C-$S%ZJwbWwp-6>(7#Ghi~Yb-jE1gRle^+Cp_uXj7pL<^jo%6xo6fHd&PP@ z41pM#Kb4t_=OieZGxDK1c!ma3wXM>{00eA_rC>ioT<~%bmwf#}JwOn`U)JkR8!D}X z;@zV!FiOb~4f(UXw%2*b`hSaEG83g1%7exlB@(`kb(Vq!f_^2V?c++cs5h;}t`8Fk z$Yzim%&d^Cl3jDlEsgb17#h)J&oFA87JIX83cFf^kNZ3JNh4UdUizSp)7yW`M*m9p zZJ7NDJ4Vi!+0D}go-V`*nNQ4x_8uxd zErD4nlmf1tcaU2hAgsJyT>-c9z*hmc^k90VjRB}y1PEJzRi2B9Vm)<>14vY2n#d?N zsAd5qDlq@@P#a=GdqUZq^SRM9FF+}{ROB#-410TYEK57I?5I#;R<=)Ms};-W$0=Yh zA89J!)^NP7N)OvCfP(OtjZ0ULa4BPz|J0$knAC#J-YMW#Ep5QEA9?@)BNdo`l$ci( zfLzvHI?h=DnZ>m;xdWkYWCd~`9i1-u7LYxCP~ims9;%`gP&=pEe6WHI2hcR?;tD=em{yiDm%y4^+XL1cT3Un-9jAGLRmKjY zpR6|d8p7J*iz?jZe;UwTkBQ%e5hsa^huhL(3Bi5c`7+>R`OXx20Z0pZ__tL2VWF}h z6u4<=#qxvrpAR~UV1ET&Wt#%%Ac|F{;s(*sX1xz#;oVn00-(f~MF52|C!N`V+_JwR zci3B9t61Ip+(+Uq6S5|%%EN=LLX_QwI{}!Yi*)pX+%0))Rw|@sO8do}>XE%X*6mt7 z7@uWBC?x$lsu%tKFugal2r@ah4BeDE8`y}SbI|}^`FxPnEtn_KYl2m zP;3NK2yXLJH@!MZ6LDMxy6aQ++}hgK9otxe+*eCgg2;dh)>Bu%>#4bWRZ71C4nJyO z;UzyO>!y_8(sxu-Jadz^o}!D;`;X(*5~8FWBK2}XI3lcL^+GKZ)v><;)d7)dNr^KI*OlZR? zJ^E&a_dMV5lhZ9R@P(sd8XUjuHD^%(o|Cn!C}hWTW*`HmTLm!>A7ktv-((fI@39M^ z#`ptMCUs6O6lc2NcAC0tH&$j^7H!kq;6s?h;2@+hBE8s8`>oUd`MP!@ zB-VCE*ZiwnxquhcHP3eNBq*Av{k0m)oh4j-Sf`4falyy^w+21Kz))xw7h&0RGrykT z>lOF%V0)-;Q5+-m=;Pro0!)3s3tnm^E}hA8eM}m=T}Ny#R<&V1)iVV@NiTxBgeAAZ z%-=|GZowW*MO{M%jKUoyLD}pFi($7TwC(v45t&**8XR2ku6g>90cZQWWxAodz{i-!p_YAZ17lag9?a_WSp)#Zz!v;Ix6(RnfhC5;Q*F0f09&bj$y)77= zhgxN5ewx_4_Dg~9O?lQ5dXzy9_;Iq*=7v-i=LqDi&mz*+hE&ui2;`W41!mfuGIkMS z?y3>KF=ZFv0Xw5ZBd=T#pudKTcW~8!c%ze%TRz+;Ig=bBz|cql(w{dT@m#EiHw-~^ zXBgCn3iX}JD|`n~;6cVl3xVe;V$l@XvcXm_*Q2*TDljOeQt>*m7GQ`~28Y)R@s{(u z7;3|Hwaeex{0LOa@E~ok7_i>&7-2uBw(zq^v6rEf+QHeSe&Bu$V=aZ$c2aAyPpIP* zr(3-2`E^eHP5tW}=zBH?ZM#tAEKfL!*DZ<@xu=A&or>BlgL1QpA&f;{ZO(sIY?CZ zFT*bRy>2MGE7~%clw-euC?pz%l}RlI&z)ia3^Mg_Zt5k9F5tl)vT)xm7P7G97VBj% z6Z)xZLl|cV?g0!pT_`GPFaL}3q)K!Jk_`H=T}%3TK87-WF%~Pq9>y?!OFDV(1!LbW zh$6wuxJp1xo63MRS`&2#YRp8jN-?=bMlu5kMH@>=Y~aaNne|7<`V~ z%HNKJBJde-oG3rX(3~O@EUc|tQ<3K9@iQ!O)chG%vEGsgxhsOwshuqM_Jge&U^>h;cWAW3>JqLC3_?sFsw_0)P)X_ z=1hRm$g?cy^egDb<4Cy0;NNR;Q%d7V@!kc%R6FM^k%JC}g;o%*SA~ZJ7U_{$>%=ky zMS??uX)$zm1cch&9RQ@meW>wIq)Y)Aez_q}f`hNB5h-QH@7{|uMNgSeb@`INfbI9n zH4|$J?mLRz6N?H};m7->nN+nyX*Wnn5WZuDtf1CF`pSyk`EEWxNWQUk-7~xf>7}&=jGU z)0j;+^UZi9j&3=d1HQlr29p|+Xnh0=y(Y?}Ta)No<5H?XmCaXV3*UI7&>!&ehV{VeNSV(3uC`zbT)C}QK(NX>lJc<(Lq?4io%~y@na^Fh6dt0e2&rd6w{`Hcso!@IP3`v*C4_r zf-u)gIQ;I1?Fi z8@Jn=LmYx`gvZFV#Edjm=sbnsCq&#S%lR(`!m3YnH2W!R(Y96$zlHC$eH3mSYB;P! zxAk-J+j@WXG9tv(g&GUu^5=@Wi~S=nL5GU6sA^$n_N7V#1+m7*w%f6R@{Qf2a`IZ;n%niRuN_GBi<=G z4s1euHx=MY(d%8v?V6n~(|)r|rf;2R>#_M^NIMdyZpI6jK&g77y`h^6AFHey8bVQHW{_xN1>FgLe->VPUxVur!(0fAo0s&( zcq1uPJg^ua3&)Q}ZkNmJ&++t#yuyc^U1cXpM0QNBCWc7Jn;H?)x;{ zwXAr!wT_r(Ce}{Bu)o%)ny=&iYJ}_cLq2YX|JacVr0opbkdjH2*U_Us1-tkT(shg*@wMfJ(RoH zJ2=8Vv|V~w#g?-`l14`;|L?Vk^XHe>6~e2LJx!!9(<6*SH$lrd1LFum7($z&iGJ8S z*gNFHJoH^%Y*MVkn>gPMa8|mpdQs}&RfN4(u#4&DsHM%{PKmh}^-NJUf{D2)b;Kwp zu743apDTw^GYrMcQe#+qtq!QVGm@Hm_x{_G$&O`%0>9$mBNXm5 zqq0D+% zOI-3qPU;NyUho^U0_( zaV+pfyCa4%U+1r6P?t<$I5ge0wTM5nw5!^g8(wpoHcFO`n>H$Ee5wRaYK{-x&vVAj z8mUzC1?7Jm)*J!b`!_Pl=b&SNdq|M24A3-Vm6J)(^DjeSc@wszh;%`L!}CH8o8Pp; zMfKajkrAsy0u!H6piq8_sOIAFP9Qn+ICUD+05zIXtWj zd*{XAWLV8<=-ITmB~QQl7KG&!s*2NHzk#~J1HwbRL~kYXbwHkJ6vf-zu@Tql*E?8Jbv5r&YpO`s;QLnv+FFPl2ofCh zS0o*d!qk9-;RTe%x>=^}?)HxB9Sj3C*v4n%ZFekdKH?oM?R9Jas634i`Hz-TwH(%G zb%72sPA7)-_uOmGoNLb_9WBGZYO;Q8FU6udyupeJN&{QnJIydc9zPpay4$wtQov}- zM<$!OsB}#yjoJ`zREMdbEh=s5(7^E$UEw0)E+96ou|bIL zjgeK4+ljzbAHyN)w$l8a0-$Qc@|JXu<_-3UwP))PMtmMQs+b7F`LvTr(-JW0Zr~J_ zM9?<H5#DfaT&HPR`{67@ zrc$yoA?I9@@rJO%T!(bCh4uiSj4*{PpKKdMT63($8b=-mL0uFdZbX#@mO>S>(G4)+ z(f`Ht?5W>(z5l5r_{JUPZxxaZP(qbtO(#6-%%{zb&^%+hY*!9@mTEy<&1zL>G>f6+ z$clHkIr1QbAw0VCZg7&ao+ej|9;83i&QiQy#5&n|SX_uW;V-~6muVd71j0S5Y#CH{ zZV)ipI+pu}Ti9+R&ZIDR{#ycQlX&9fPQA&9{6@_d?GfF7)Mc1e8@|A)6m=xQ)twTS z?f{X-soG%8o09HOKwV0p7TMZf%6rJRz~CKqvgMJ;F^ndbOfV43!n20%rUb`R{)IqI zWcjgb+h1@+9{HD30N1+{Q9<|*f5$;TDb8(w*zI?!fj1_TUFMLN-EW0Oun%P@=ZX_f zM5Wu^x_?M1+`m42PYh(pw@8n6K1>euoBVl(hBHli>y%r}%Ove-lyu%l1`1?at_xiG z4gT~M*UATdvPaw@c{DR_PHcfUY0TJfbT0vxLJ%B~CqsceGGmrFZRYHlL3bE7M%1^b zXmo8U6Ryi`QJQGMikV^0wqchh*YRU)&nmm=C1EVciDK%Fx<4EIR|eZG-_Nl0reCqw zS~tX*R?~@c9WQbJI^oHT6I+Vn14R%(&I6#lO&wz%k;_yhtMVq{o&+$_srK!uF>w>f zr3Om7D-!;erHCH|6(VQgqxbLmGPQ#xRQ2zPFtvY^V*mq`1&);@jX8ggI31Rv+o(~2 z$aQpC5EB!W&~ku;|I95;6DL_yDO z2HcaOAd1Z!^X35{_)M6kFauIW8g(Q9gDNq`II`TS&TR88e3;q_#aF2SGJxyn#YjiF zI2NU-B1xx%0bu_0g-_3hqp%DdgJ;r)qOg>u_>;@U^b{IU6KQS7c8ZWdpx;S&KINs_Tl}Y3dU}Xnr492UQbd4jr?%_3R^$hb(&Kv$^ zvq5HV`f^?~5B^jtgaO3sPMw(lYJL>fcr5E=tRIky2F~e|>rs6t@F1vMy$8PHXBki4ndx^en;n=oqq?(8@_PQLu_Jzv#*x#!`Yhpw*GFI{U@_tcnUj?k|`2TR`k@(W(c zC2Pld+*LzF^pBR%;5~D$BXo8q&mNUf}Q0TW=&aFVY?vY&yrxS6^d& zwefpXixkGz+fi6u|6m4kKHZOJD&3j+m7-#9qhDO`yxbiGLxfn}t4PzWhKddh;5o7L zPldz@U3q~vVYmD-fy<*HEWcnTWPzMmU3^WTOq}Ngu0w9e#{}5NL6q>okNJQ)3A?^5 zp^l^S0uAa9nol=#<-BzT8u% zcjR!3fkWw)?}JScv_bU8S)L#^YW+*e{%FsCh7vbadqMmo4(X49zpBz05EBP}M;Yh? zX|M;9v4Pdc2H9FBWy;P-(jSLtqsC|$k}zPW%(Rs>X)jeslHES(V+LDYWNom4^2f#1 zkft*j{vpnRH7Ek90U4|#zVe3+fbfFS2Hv_i27(&_<6?u`-~`A*HYfq1ZjC>O4Xply zvq1>?#>HLV{CTq|ur`FjH1HK15I1Uoi4MV1Ddc?Nj4w?Z<@cv>Uvp&6>~}W0=6~4faHBhfor8!hH0w17zjH% z%sMlWH{`%BXv1^imJyVV_uK$qcmo@I!{5e$*l3V{tO1`wZrsXA_>exMW>7Zb@dH=X zNNqm{MT*gImpE`Wp18q>H4p~0u5d2*vz=yhgHa^65r{TcjD{pC17+YV6QFDa1J;Q; zvdi!55lYj@GQ5(Q(s#5oJ@Qu~a-#Gm^$Yie#RTcC>PLPF>Iu^;RR}yXN+-}~nhi)x z5~tvQKdQDc?tHWbo*CBWO8!**ahnZjI$$u2kn23anKn~MD3}bek>8!^pe%AI`oGPU zVHQ}CZy;3H%#AN&{J{;f zfQg8%wK|pkIw#uvM3g%p@-AH|8V3BV=w+k}3B7Z3qX2HJSPT8iU2(!CF9_-=it!`1 zEnLbanS?mTZ~ZD472`X#^c>~Q+x?%`YALdiy??7Lv1}#uaBS0wg346{pY9*ja^KgB!4bL7kj7w zePFdJiq5F2XkT(k?6OU5fLi1lDcBVX?Y|U)wTp`wX&|ZVEND^7irqWg#M5NmnLD!O zw?&9=kUq(jW0-m#^VnRDS8zQKpdXw=o!#7$vc9m*|BG$V{EGQJ} zFyw-tso}1za)6&fFFR7>J-F5^oA1d|M9*3P{LY&HRd=wSr^a#Rou$XRooy3gX^CCN zxXt#3-FHMG7=rp7%S#Hkv);=n!yoyJ7}rC)Pj#(p0W{dwbd zdJt<@jx;bQ2suZBI4l`PEHQPpJEX-hYv`d&dh`%ivb%Plw~?EyQSq@R~?Yn>+Ev0;9FRCIQV{D*eQMRdtQbX}y+(av}X z0psXZsPtL!wsP`1S;L)O+sw9=0jH*R#a9{N`@=1zDpgE_e-~+E2$P34)-8}Dm-LzK zy!To^W?ak|PuBsFPE9?I3Tqz6$-N-xvGuMsTXOVO+_8{C$@wF(2y014EdEk@!}sL9 zRvMbH*g@u>h_uBxRVdQ2%n#7dyjFQNYeF9fTxy3|V|TkcN+X0MMwv!GsTr$xBvQ7% z4*ato`U$JH%a)vE9Y>RJr?PBe)$4KdD0x;*V+gVJc@AwFzh3s(Y4!2um|u522uz|i z9hcGdT7xC_wOeD|mp4Fjlu#iv6!H(2^?!Zh&W5jUh);yCif?3&PgFP}cm-jzIZ?Rz z@d_M3J2?fP9atRE)qlYy>7OuTmIXy=5;gFhE<&xX=Ltg;fRkAuQ+EXzYK=*19dNiI zJC`(1sX3g2Ad@obKBWQ;fr|u@ljmW929DSP>KQ~cVA5=Q9 z(PJu(++cmq?J58*m{x^6iO7)mv%CvrODxgHEZEA-W0+kaoL=D4EwS6pyT9c53FNxn zCb->^s$v_b+>jqv+|e;Z{`xzzlqUizjsh=*xZ=625Q7k1F|B-mOKO6k*ta#-iJ3G+ z;{Mev{Ch9g;^>2rw>K*)U|drMmae=(ol_3VidfPctI#)Q3G{kJcvtu8vE=uesiknZ z#-YwMqn8u`m)iZDO{`&P@$u_4&-h6m*Vb6+^^9EDZd@2dAtX-Hs%edr3Z~+)782^P z`e4S$)4t%yi!|{}{t)ZhJXZegddS`!8S|X0fB_c%0a%vsoGUEnD1#`-bPd-sikI&a*t{IiH7{GkqWl zLF0ACKS$J>E6$|b2}%&@uErzBW1gZvl5MoHw=c6vOG8IW&+0y1D#~?5Q zAmfM_$un~EVsnp}X*D3dFc@#u1?Apt1u|7nSsb;Co_s@Dy%kbqnc;$uGnrZuO&+j;QmRsE5y%w_JqESF_ z`cGX3I5u7igEA7HC56h@tKO7qlS;Uy+rfKwQx78Eh~)>gFS|}16{%3QjVjZ4my9T1 z3YPseR4JwaL$sQV$sspKf5?!VeM4gv26v2z@;GjZShwhB8AiF)KBUm15oKvAR-E9zlXMCx4ecA=~XKhGEqBh^midW4xn^p|3`wxhO~SF79ahETXi; z(Rz`Fnqp@)wgtqYX)qT!qwyWv*(JtHDxWZnYAW1QgASIb(W}6vXOT)IN zPNoe_u{Yjh?MinAY%?TOFS$%50jl+toK?d3%5jQ!x@2-Si@s#?v-y~rQe0_q_|tF+ zPs6&E7T>GHQf;VN485Onh#%xcZ9-VH#$sD&GATF~q*{+b(NRCpuB>W^JyZB{2~vn@ zaNs8u7tF3Qv*2dzqom3^LC8Ho{z#Haf4iXsF6eN<&I!1-x-K52P3`lI%(AqR zT$U^5ROECk4ns9}k4<;tFFlSsUFG(N!O5IO3144`({ym^ z&HM`>&oTA=q6MnIQ0&DQ+|$!beZA=V}VPN!cF$^^Z-4x_w-%y)ACHF7ETW zR_Ivhv2IP?=x*S7A9jmB^*-i8VoN#vkk6tUF%6Hz?89N%%TY(W7#{Nb+UeiKH?Kxt zXyit8-d}9(oRGa*0eYGgIk2w|3@h-mng^2t|q8~xd zFR60njuY_Dx`&ZU_RpZ63YeGiT%Op2B z=1XbMb@1T}l4&#-llX;fXB#R@qoDoDUEc-e50tNOm?SURa-YKH`J!V_f1wscf-XsV zhY|}V1b!vrJ2@S!6VTKZb{*mv8I|00!}cDWwue)R-xN7x@PYBEM;S?x<0d77+fokiCTM1p5vIiYv|uraqzpyg=o->2;HAXD0(PPxf-Xe z=^xMU?&Rp*9kHInf4#`J7*t~6nff=y$fqktU{>Fs(6>KVh3um9D9 z+TAloKnMW@1o|_(@Bbdm3jI$UlCr7Gf4L(yTL&FgY`@v-vTQrMY=Es0ZqqtQ+Kk;I zJvvQkDZ7nwSAwijl3xjZ3rBbQRc&^!=}p;UMTG|VB_P{a<(CtVN_xoM*cx&DkFgaLHG^XFX@UH{%a}IS)tfdmgX?Xv!d4NoxLp z%ti<$F}e8Dn37cK4YBKvOhA#FmOQrNXGWe3uHyZZwkCJhLbLCJhSr=bwkLmxz>4B$ z$92M%cRY@yQZGm~+Dc22uGs7{>uJGmHuDD+>iqUFE*WI}R+M3VVzVr5H)Wr)z_#|P z=jEpKH`aEOW&+hd9m&e`6co>48G4?B2tB}LRAwRnXN6-EqB`{2rcG5 zxgK$NKQ#~`I}<%j!u9IkmZ|qx;BA^`D;RHP+T=oW8KbRuL?+}b)D06ZbJH0?(iL*y z26mMsTzGP8_;zDwp!S1c9JNBRFc;Xr3(C~++W0l?&@cCv$z!m|{T%`01ave)+oGbW?XatH5n)%fS0h8!Aof7xq3age7^em&FreO1p?T{HpCv2!k7 zCBMG0`)JKex!Ic)R?wI(c@X+~8rsRVh*=J3Lb{!M(i<06>lXOOXB^ISl=CJCCrRV< zOy-6-ffs=b6{Yb#rP=YkgsVr+b()4f=P!aTuw}QP&ig z&}!jZC7jN&1`3|YXU};YPu!El>RX+hpmItda1LD+9LkqkR}V+l-8tq0le+Q}N%Fn% zo8%Hc(dfLgS@V=KZ5`Q}Wsw#I?7UNLTQQFgA|2;8WI;d$1+*`Yv<}OE1dqR4LT}XLUn1% z%Ospb53M4*UDMsX8vY2X2NDjbYAR%Ox0!vUzQh~Gw*2UWeMK>lM}FR*Ob9`mxny2}*F&3ar!{>l5O7qVm& z3pWSU(ch(!IyYJjw%SEh{zvKVL9`E!s#^lZr1kxFWDf7`%vMsE;{P6Pm zVp;aiCtCZx#G{jFB?t*e&CmSzQMQf1qg^zEG)EC1K@JB9i^E@+>yxOas z`cs|hI^AYD)HYEIQ~c?Yc@O_=IfNnxBorr4vxVLi> zwK=4Eox%s!r;e3*?RkJN;SHvE{@|V>-VeG`JftzY3QWJN(NX0uKQ&+e@MPn!J{7j| zlbg|3d3aFv$lN*9M(uFGwqDm8#mdVaA!q#OsOZ~i@wAOKi>6kOS(`^VyfI{D0e1#d zjXCbHt2v3{B;-r^UN+*$`7Vn8KJB$FEP>+Eh5LM0*_H2)SOn?G$4EFT2;vT9?#M6p z+J|<mg2{avD|N4Oo~{Et zRAAV{Y7hEVZU!G?b6#M?z*zU+x75ghzBz`?UB5sH_2&yR7c6Lt2xtqvT{mzR6!%CTlAj=>3wj_0f&qooDn2=6^eLo}jp3>}w+@)r$!NyzENk>c}1i zVYvYZdNmTBnlM+FUGDuDM>ui_b&;YDJiq->3)io2bvC-m3|0dceHkLncrpesY;@IV z2m1nTLAtGTsxw=??Z^#_=mWW0Xghht3mP#LW3_AQL9GwDkAJO}CR`WOqGGD}OgMRi zu;E=-)nw&3KIw{E$T2RWDS+oW_F0g#WskrP}%v4ffi{x5w72#>4}8lSSQn`=uKUfaQ)lU$Lb9_@}gueu8i60FVd+b*0}_Bl<8x708U3 zQ#MdaW<4Ee8lvq3igXSxsxj)E9dO+l$*`1WL0*(kn#Zbw%~B+8c7dulQqz;Ctb(m% z_?iqFn%G}4y*A$4O47pgAYfP@z1`zzSI!HknU{%DEkYmY`rY#spEQpVU<=Fi?Bef zjiaAUY~vMW6^AxiO793wGbWxNoX{}u&hrWW@vtv3XIb%v#g`V`1a;;K3HLR(g?nbo z%^dlJ0$qCz%v0VTkC8*qQuzjcZ^>E{!A7&t_*H(nIkHHXO!3y)6;X~Y>aNGA3W~c z@@FAyS>h_D@!{t4_f>b~0Xf$k@{rsY;h^#rdQc^bvoAh+Bc?+L&MI>=>hc|yp?!Ip zF;;n9FOPdpJ{5s51m!Kjm0$#zXE^mhnmH);!!J}xrx2}vanJhkk;}JdaLN9DTbrkG zqVa`2><*!~H`>_)aqh?*?e+}K4*4fr{6)$1+TV=P*+*wxUSCgb-A}x19rC7q{S~MA z-b?sqg7v2VXmXpSnb$hu%5R3%|!v?{B6Vj<0#T!Q%ax`0V)q-ajkx7h}E1EtFs zg~1Qo<)jCmRcThp|62%EHM>9;Z0n^4zUdYT9lmM*rM6h>0(G%N7RUd1ga2+h-}0N9 zp8x2z-vIL~s#gc`;HJdAY!gvk$do&nLK)rTDX!1!Xye3|xwVO&tGa_*I8ZwcdizrP z865dLoacM`T_0s*t>rC@pzkR$QlJ|O7@@LZfWNc6>oc=z$@mQpy*Hp=uXtu*%aS*VefjnU2;X-` zaY^B6^PZ0#V0}ok8qX%N-4}g8<{GB`E_s z51B-E4mvMaerIyG*SUqm;5Wibr;pI|PG*@&U;Q{?Ifo-3KF5)3|BxE19Zo+)sN{Gm zjiY|JwZq%J{ycw-=muBqBoZXW#e0LczvE$n*mCNW$#R(3i=FJ!%ycCOr5yVb_u zdzASvZuVuiPPZF%XYP8V+x|N+cn;sIul)Ho5i^eBU1|I+J|9a0F%OT6&FAfRG-x>Yf$5o&WcKR_#--*0e-vX;%wF3l zABHFjYlGAji;H_|N7)mV<&S^UR2Y}yGay)f@@dX|<_}zK>c2dgL+lpF22gx*WUD!E zWXfl0G8#*#fX{MaEg2YHqD;`0`nev+Tyqjx*BKRS6O5j1x~Dg@N$~9^m}y ze1%jVn$USm`Y^*^0~G*lbw|%>Q-{hrz6nV}zpKlFYp4R!S{?7)`b9c_%MXPcr+}gF zwzxrMcxh>$JP=7K$0|5Y=9EwkA5#h^UO94g0w6lSsM2ni=? z1gqCun$*e%PeMCL!*wpbW||0eUlqcfRcw&V!x)Jb(Tyg2Py8Xgn`N& zZjz6VqNxozqvv^1RbT*oK{kQCay^XSrLuy8_WmW^OA;`T11@*GaFJic9xOc7}{IG(l#^0cJ6iKM+|+!$ohf@-sJ|!yGwF1wcDC( ztU-c%appVt%RTbV^b32&f1D$J;ugXm?iIcfpvj46X$ue2FDQB)H$vl&5))ag@1+$K-cy2iYWc1R*7NURpU}Cd^7Ix{e-*Zzw5|HdQ@saj zTRVS$=qrD7xSaR5HjLw6NqR-YRypHIIY~RV?Q%hmYuoku7iIFJKGr{qgUld!cAyJ&c(2-usB5Zx1pj-Z+`MD7uD3L= z7aWgB=*7fVlxntx;soqo4v!k)Vx1s749$IDsJnE4#?58JG!oa2jlr0-Z&J8>G|=BR zPzlkQDKe&Z_8<||(oUpw`>=^zP90y9-ul@XKtju~Z2==H&pQy?3h`cRP`i&xb>=4L z%~?@Yhu)c5TmvkfyEEXEXyq2uZ>Xbdxvz@l1fd)kQe4wu^&FRkOc^qWOHrs(BhAoK z{0>VT)u6)pLmF@}DdMBi={6Pb1S-s_vU)G_;4$ZRX>xV(`;@t^7PIM__@+Q}bV+Mr zAEAA7`SdXthV2UCcS;yTw9~#AAIJX0KacU=k8QOKbBlNf53QEryYwhp=Vz}yF!QWj zpI6Z*S>dz3GYej05cO84DngC(5vjcV^D2?RzF;NswZu=#m*Dp?S|qG__)-W+Q84tZ`2PA`biN8-Uuzs*(rf;aF5-Y%98Sm^e6yesZc z_0s_?@`pTEtfQBb>8km4)smL6G$=B9xt*w=`4y{%y6KYAFk+UOcpU!c$V^Ra<)zuwqP+X2XR3+?1WXne35cB}j zx{XJy?vnTPCwPpap7IL*<>WV#56)nMVs;Nxi|n~R%}W~0f%F*!2;cBgc$y=QB2G!<%t zscK0MrC`z=%GION`t!x83@wDtjt}g0u&lGZ%Ia-38feFoG3NZxKZ;HU3k}qjg62QE``HOcbbG7UW!XLLS z30awBJ%{39v$KbTzjyNL5wdGpCgx^|`rOjs7GAFl8_F}`X&s=8W0WbImIkLSvJj6r zNvws5)Q5V~n?9YmBD|rrMx~}kEGW#qC2W(tESI+qSZR?~tg%>D{}BGC_bHRmM91RLWY!8i%E<5tVAtNaVrQb+se*_0&Xg4<0&g3l{X^QnVY7%XR^N5`a-*vk~TOpg#6?^sd- z90Y1P&tVcJwl1VZ6tru4OuT~x=h99K8V9>GEeF3TkdXck9Y25^ytz4;nq<%XdBzod zt%MXgnGNO0=CwWZ9Vg?OGaeJ~Rj)K`xV87M1^71dw^7T+cLusKDL3umcOiOA;UYct@wmr(Q~Z z=f22SxU73CK(>STXk0q#2Xz^1te7wbBmuhxe6j9RC>4>IBMcg|j* zf2&M=ON=DGQTyc=uq~7oOv7es|0A2~(jS2%aRv<;MDl&8xt9Gfe=EpE*G3rlQTa#h z4O?gB0-B9j#I#ael2a<)WNG-33gL13Vq_JymMDG+HRxK>VI2vo$_Lv!3N3E^liEvb z{S#Zo0F+t(T+SG5UF;$1Xo(tPPh<&@avWBH_**obLj@Pclly}Jdh0(wAd71mUT?`2 zt709Rn0KZga^s7Y2t%gAFRmIgX8!(lUm-j88`S=k%N7CV_Ko~$)DS>#vYC{`E5+xg zTz}CXko1hbjozl!;rAxFw3RmgBgRg4=t_HXmxK>US=DEp!uzwr))Fd04Wdn2Y`S{c zsElQ-4V!F;(I0rxdQ^lrR$daJV_q;jG&ctLjP|4!HWJ+eUjafG;BOFy(^ykWqU(hC zm3#d_pqK}59zK)rJ&R%iU;pq}qpRQCL8)JnH5!|nJbQxQWrLcJjBoNK1X5g%#tn;i zbOBx8WCC2CYz<9mqg@)2!#bDjh9@y}vuM(eC;kEKoNf&mLbyF5f}Ku$1HuDqGhM~HF9rt{ zp*?#VtTU}bTm$Q_1NLsi)9o(U@vf41 z(`om$O(Mq$Z@ss8_@JRYff`oC~Ed2Y08AQUZ6V8KJ%PBfh>l^fUybw{3VdD9OIl_kj^Ad4%be{@s4f&pw! zx12t8>+r`qbXH+w@KvZPqFjQiLX;Irxdl?LK{U;%D$sqZjeinMq6b>bw(T6dSx*Sa94KHC+G`h}+#w8tMk#Bz${LrBowwokn-J;C zwHibE#YUK!44mveq;)V_Sz@D*0pMC*n_Mfazlu~9fSSZga*`=P_|g>+^oFfNO;?%W zxsg*-c`r8%^MIA3g;i1y*vTmB&7lsFgupj@aeFFc5O#^KC!Mi)9XxQ#C~{SS+;O{d z0X-mYRE=kibF;Xe(nMR?q5PnSMw`2Ov;@#mhm9t>1C&@%K4`deXGBZ{#cw+$?EeOe zs4$O)$#EULY41{8rjw<*O4P^$tjXEOK4b5iPnOfi&P}gjzF=-a?YRfhbpw=l?ao$w zke4i;seQPF0Z8%vJ6qS#xMrZ(Xt@!;yj~^`r|Qs@O6l5h@sUw2?x^w%(zY0S&054g zPRI!;Elz!iMat0B5@Otg9J>#O2Wh#0Cxi>cJ^OG@GV2fPndv`-#3RZJHx0z)F{_ky zaCD4|bKUyXu-469woZa0gY6R#N$KiB>~QxY^0C?bG<(=|sBLfthpH&aNcSU#m)MTs z;z85@0+1PGAh=_=C~^)kb4q{0s^|({U!y6S1uWU^Hr;%H?`hXBj6OS>dXJq zH8R5eW&zG;K=e>_+xvZ}59^cVnb%k<+GBk}xoyu3?);s$H&w>`;Wh;NE3M{3j{RFt z$J2Ft&(`O+n7;eG1eff{eE$B#6Y_AMc`-lH1P7HMpU5sE-Rli z0KKqboKTNp2yUm&G@5_gGQ>2v0=5PBke)LjLqAT8Z2wKkH5dQ*-&<^1UfolLx78Ry zEvA9BJ@g~kRt&gazF@KAN+XgYUr(l_n$b)gW30`K*ocvi$cE#?&>v1GzYc-Vdyct} z84iEg<9b;UrhlfWll4O(^~BKn!l->=mdUM*Y?KWeD?+ zpOQf*O7JrYK_`p9$p-Df=eG8Td6RAc$@aC>>qNIRbQ$zmbGQZ0|0pAWMa+iYQN``V z4_wRr`eK;0>oXd!X8M^79&U7%75})bSX_)kGQ1Ncq z0hs_QK5%4+BP@=L7eCM+Kcp-_&*GKD^9bj<(A<*hhj7gpa3j6{!t%FNf8clh(EM61 z4}ska&)qG;@f+{qLB_H7y~oRG<CkTTooEQ;Q(u%Gf*9G2$J1Jh#GCH%Ff&u3k=VdJu!2on@E3NrH9jdh=&6vF^dd zb0`D5Xcg!n&}^{DU{zQJglc44MND2D=$&5SmeIr{8J-YvIgzAuV~NfV$2uD4@5|N% z55iE4QeSj0HV`en-HQ3VP4|PnfVv{56aXAbWoigW}yR{J4{n>FN zwpnnqjfT-!7U3p^i=Sb~)Q5D+BFs^d7279a5wR(u)>eEROA>l;)^vq5KKX;wmR$7( znIGg1@6eyiXz!K|n30jcsijazJgUN0*pdGL%)_%wo0{B znLrvbt!zV1d;uBV6)B$zmAIE71+%Y!?BJGwVU;;vg} z|5&p-HWvncad0*b$MpRVd04YOlyW zxXe>sCQ=qR(&7x});bzTzoWom(Mv`XPrsV+g;lB8NES4d^cB)3w#gt4cd zS}mR9{iU;-FHSQM;HBv{QlN3PAx zTfta*(1Pu)qc3f5Ie9d<1&^Osd(g0jZ@2j48M`{hVTJo@HWOa(9>51Ec5mJAjncIP zgcZ{C-M@8Ef%KksC}$}&RyK!iV-dh#fF$;8vMcCGaBjNc)ak}Z@driEB-agfO^iyZ zUh5!|Kk%*3Vpa2kC^QT;ZU$_N{ar>gH#(6 zj z7w$}AEZV00&UF$m*cMi}rb_V!o8m<{$qR6j7wV)e*j7%k24IQ-mnzw1Xu{3Y-b=l| zKH7^8aY@b@PC_Yoqo4JLJ?su#Cq%S>!LOe&1{js)!~$j4+?;}a`>TaR5mJ}v{++xBAYc0?am z;b#;TP-T~Oh?SThEd7^_ML=pP6vlAU1LtK4l&Gc`mq-xJ^$DkQH(TQ5Yt^IE1G29$ zx@Y#A7`I|hRdHiZ-!5x@PK@6jp@9(ITnJ1g`dlc*mGGEpKM~J9Du%pI2+lME%DN7V zIzlyBGo>=)KyS(WW2Q*PQzEuC-G;4g_h=4H^C)hbuIc)Q*KdzlZ^ufkE}5g6_N-KH zH>#f&@2H!WMoZkU`>|E5 zX&IM^ehY&2`Uk}OnBdS_JJ)9ixbLf>dSGd8Z(Fq5=my-XXreUQ+c2!>Lp@@Oco$|D z1Cc$ky1yfpb04S?M`0P&kve@m9f+W9J^`)g#6 zWux8oH5(?WeJ_(jn6A zxmVe0^W78R3t!ZWAnQ-9nXj|7t8D$ou#O*G=AUvUS714%EK^nXEzspl`9{Wp=ST_j zhb_@X`1XR8bj~4|0aS})&tMnVaD#R*;x`^$-gQ%l$aTbrbA@`Q9*RM)B$**&0Z~}H zVxfos(qIYe8x&>JnrnbRQ67TWRcVjZQwL?eK4Fo_wG`buX2Dejt_Gsi24Z47PQWtx z2kBh|sY(2_xMmR@XGi(5Qkp4}srEhfxRQV{9gtw!AYhCoWK26usk1bqOe0J=x->-X zho?WslIBHsWRY#k^LOAzPMXuEooW**`}eL^0PRBa`%burJ}t~xJmT%wuo46;90vmf zfMs&<83;I{735m_5jdgq_44<#7(pOgGsx|hrz)t=z8+tOI*mUf{vo6m;%)G=lVbjh z@y!uwll_;>)6CC}fH}VuJhVAJUMfl)eN<7>5fBH0_2ejdS5oAmqr^iX4t)NVQsN<| z$U{z@7o|8~?)#Bb^3qx4A*aNHIUfA}A}V>;ROF$k)Pp5%`1eSiY}7jH5MA<43NN%Y zelG#7UkS}#B8uaX$}gDzlGTbzAi5~{gS#yFgF!iX+GYk-H*xj~LQoW}m?NqzpjwL| zz`OLdXV3fN0*ZqsGHxp81CsLFG2r{^_&N6@5btAjl5l#EQtqo8?_+85J1tl~7bh~X zjFT-I&xDJO7NYT)QN`M>9A$>$n%{>{z$48A_;?hc+Gd5$rhNg}u(koj-_MVPD}zqO zX0H}0>Bg*YOGlqmu`O}8WQ=})UKe2yEvVHMtM(+R9fh#%_olVabG5i4>PzDL@V?Ib zGKl!D&$3et&NeqIg<3TDRJ)cG^}kNiUKc$?nrspNqd-ZNJ}5 z6_Y$0Nw1oIE97jBvGKB@&Hqs6?{K?*0tQ$xE z(IU6`g^$DwH~!_#U*CY0mS5?C2OZXTEr*qa?{<@>zSTW%Vjv1J<9;m>Mxd@zI_L0l zD%E|^+I7~UEuGT%(-UxV%0XTF9CO6=)C|{XW4ANl2zN2hWK)1Rp0tm}Y!I@lk?v>M z`D+p4jk(|h6(VoEph*rX*=vJ1V&&U4Ohj)Q!}*VhT8b20<<-(B_%+|f8@xP*imen| z!eEQsh+YYZ6mHmHamodBO5tPMO;$zvkw+v_^&z{cN%W}B!T`@b*XgZOJDF@hL$xE_ zd`Jk1-I|*PlN#l;!{4+h@g5qQPt3clIQ2U&;q6p!>%m{BCbeOxvPqo;v5bb|f0^Nu zX~fw^@J_rpla+(h+i{8x31K28j`;w$?6Vh4j(GsuWvM_jHf@#F(6fk{sGdTEurKuS z)auyFvd1EhH?7)(jr*ixf|#N|QuPYReT=>`3vd7=_FQ4B`t$O-N?BOD&Eows`l9ai zLkrvsy7^?;%$RG;8vVp3qj#)U2&s3h_8NVrFYe#IG7zVMeesp~)CouUT(L~hl#Wr? z(U17$L;E*EN9qa3H--82hBHRy<>^bctvcPcT>yRs)ko#&h~C&zN1r zBY>=~az`yeolzyZA%rB&BGIcG^U$-w{Z@kqs;3`h^am^2%Nf-@BNbOTt0HAPlyD^r zzBW60A)$rO$Xt%RKccRy0RvCZ^oIQR$0>wB)ye1_G6mQ}nD05!oN4dj{xNa_Cp| zMU(tv{bY9xbJ7Dac@v2DKlNq^tH?>J-J^Nw*({@6P;e-pLVo>i-ARn?qrKflfJF+K)?J|&5|MLR$88f!sQ_1mSKck6}6PsL{AN^iGp^mYByyXek}c5DF7 z${GNcMgQlcNlO3QCDH%tT?Eao_3i()dnr)1vcVQX@OJicHh73j?SrqsN(BCrZZRw{ z18(+12peqphaia`Q4Z2@TAPYze`oml1f{?$N`SDyNHReKQjFpTA~4jnV&4ln|La#h zXRGwvJxxnD6I18=l!FxQr&XUyFX-Rh%&;)lOZICfOZP@3>Ef;WyZuZnm)b{taDODk z%3+!aaZ4=%1x{H+s`tmhLbD#3@VHJOh*swQ?E8Jc05SZviNBjdf#iXx1Pk(EBddjg z?Uz$q1@AS)fYTny*}GK{iOE#-_FJwLw&eP;HWUYbSMRqGLtGF(GtIfup%ttNWV6JMHQU3k~uR)3nqe{c3r`Z5;vvkJP+;C1Mc27GnZ)b+6g;FX_ z^P#ZZQ0iU^>&gpfC8KlQd?CKc51FIn!Vzp%LkADWwU*q*4-fPaZujwF=q8Qg5?_2H znq$nzuh(aQCvC7r=BPjXlBES(?&Z(dRK_l$7+WpH;;taNU-DsGm`L%uY)U>Qb z^i*}BfDa_b@7dItT*iE}8@`x7K1hjOde>d%MY#$yj?txpJWaf}vx@{-A|F2g^aCoa zTt9>VNs$5AI{82M12X?{KkzRDjDn~d*s!X zbJbAd7o7Fwq(@e0-k;He>5)H)NHtF*SmaWl9z8uEvTY@s7iB6O=N(0HsL5OH2EtFI zXh&?8Lbh>FB8z{|N8Xhhw5c{V(yl7L_M7S8yCwTUhSNU0%5ZmBiZoFY^}Ggm;u!SY zbx|pi1oUp|2=)yiOeBBx*(+N}boNr&oeWsArwynxj=ew*keF0q-+wXJL8w)k<)n2n zM$J~&uV_vS>p;%}f(T*MLJ5`_`k5{EEArbQBlxz_D>99rN%oeKbo|k0_8S~qZ`pmo z?F;y~0ZkPC;~Oll?_l;XH@QN7RJNA^0jJ2fkuZm)ozu53XYVIp_Rjz+JXA__dD19r z1H?R*lI?t?to{-taZe!pz@-3SKZ~mou8sAp(-oVG$toZYXN<~MqrNwaVUQH)Oi4Zo z5Zc+$YtqFWND_3zKf!UxHVJ*HVnm$>rgnu)q<8NHQ~H?P_x;V#1GbD=1jD!6COhF{mo;f99yO?70;Z>1a^}*IIr5Uc052 zqF=T5CSSbvgxm-L=F#sLO6H#uD9L==;q!V8KkOXO&(y559d1UTNE#H|PKzVdt5nlI zAtsbE!L%R~SJcU^CZhMS{k?Eq+>DmhS$`_K-@xcr^7;fNLoo@l60iMtOIj|YKjj*^ zB=!=4jgR8c0wlY+rn0YoFDuSBtHd!dOXOBZCV7#_F_QAMhR+?wW@h)JQh;AE9+0Ht ze{L%O`6E->#>T?Q_FsR?IPHH@#RY9Hd($LRGZ{QTl4u>&j<)-eUc zWJ&Jm*e2!NB-8$o?7Blsf`x?K!FpBoh(E_X8y2#rPu6C-KbG>qeK6+va&-g)g#Cc& zyq;~?rZZ&~8nc>X>tBr;T1~F4FJ`rY#K!l>T5}0y5$bj5zS+m};;|;8AVg9Yq5VAb za4${U+rW=;&W23=t8uUikDUZ-H^Vd6RyXy=4(tj0hyl?!gLhyi;e(BR5TaZ#?j^At z!>;Z(=xqAM5TPS{K9gUz_YYY-Rrq+8)|_0ykt^Z2;HpwUMlm|^oe}I9NPCjAJsh=| zB#hlL5vxoFOD^vxqzJMz2e<|qREt!L)3S-wi^}?h{wc7qV;aAD>J8FO#qXLIQGeJN z{kpeSs<5VTrAg=0uBp!c!BjmI(@|=%O~)!Q180rwKK9mJf&yjFWfnWk={wp%_O&1m z%h7EuwsYykIZBx0(g;g{-LYS(1Wk4PL8STYiUJ7{jnW|wuU^2P!JO?YOy1m+@fq%H z+nn=t`C)LCHJG@{WGvS#;lrWLUB-}MoMlR9{WXTeZIL%D{Gt<cbR9F92Sad;AI?%Bl=F;JZ460zSfmk{)L8B&*`2KXqpEz_kEmoNn+mhD)CtQ{ z30@t+`AuPnJBaMq$`u(pF<1`D&%-e9AQ%1u99jV_`0&*0&VosNa17# z=?l^d(Yn8j4J`3*xcU(-$JI!XQ$2e^tJHF?lOYSS#2E!M-opIT`yXl|`6>e3+2!Bn zocYgtf5602!rJk_rxoO@8|Ueauij5s3`LJa+sUBU|I;Q@j!G0tTgnqX-xSU z=7qCl@8oEyA;L1ST*x0G(TT101(_|($}6?KEFBK}YxJ8t8_ZeWT`xfV{lq~|fX=RO5v~4pe&Z|>_D{DKbIoIHe4*`+~LM#XDu0qVX8ohe3 zy)W(KJbiWRUO8O)pcAx&;pmD)eGINMx{eJPsuLo3q5*^}Py$Y3k^03G*lF!_jTKB) z4WL5y+WQuqqB5ky!~R3#R-+lXZ{3l?dG%V54Ji$=Rr{DwTTTx~rRZD6F!i zuSFKGJ}$+C-3z;anAF-6WS960n>JYgh^3C5xZqv3vMcd7D@`9`H0*H7%!yf-M3DSy zct1-J%JMfD51!{P znh#DC3#lrxH8dHEBWrAr)-slD;au)Plx&)J+WIdUOG)#!PFH=lx=5+!&>j^7X)@EW z6ElaP0=lfM$CzlYDxG_B~ilc5AnwUOAs%;Qq z|91Exlj#VpQ>Ml{8#_r5+@3I*{WBMkRv>rDC87rZyB?o8U+_t1z32jpd!ejjVg9uY z*kJQpEiua<-*1AH5|bovKdFbjr!{`#W~n}WrK3fb=#1PJ3rO(aW;EH*JIW>(Y8A@3 zXYLzz`SP_j>hkOME^*0Jav`XhsYq==4HY8vTW$y#u@Pn1BmeGakg~p`2Raijv$9vv))c8F+W${w|a z>qpcil4eJ?2VU>jCFlRc)Au~!8hP(U$Fs*+Cx!X*g+{fi9Ln7J}SlbGtjD?NAQA0{%OXsw4#%M{0iJ zlqdrn?-!_NBP~C=bXW(jnOQnz015ha(=g{()sjT%NQy7(>~McN^BJM}~U7EB!mG7hYs?5jc+w`lJ(A=bmR zun9~`#fzDb)E}V2qX>6-$1SuD)5DU&6TLymnyB3{(i_Oq^?)>fuarJ z+WC-nyASMCN8b^*3$H(tj2GWws;e;EsZiIM7xk7sR6d%kHz6_vOobrui$o>6mizVd zQMCt>jdclVb3y-hqVk`Qqm}KA|FyaO*EqT$Iz|!8%q^XNd&>SdzC6DmYIaxxjLJU) zX@$JGl626}$!%pQl7D6_mV#fp8(jBrFV0<^&zc?%)PQi>VAZ@?_Pj9)d|CXkkHpAA z3f$y7cdvv&W0seB8M?n9tsPXH`x0Oi^ELdV{ldb~TR!gi>SmS7H!j*byl>N= z#yLHz8XkDN8UTTO5Abz;l!XhMZNTl7O?lZ1nA0xg3SfpQ1078}W2g#YESNKnDEl*w zsCY=1lTS}22$G0UoF#Dbjr=M&q9#WR=yfMeV z(Y`e6Z9&OsOq}Tzkk=9G&qJ#iTYCNF_a41U1rYGI`vOEz}jdDRTKdKF+*vxLoZsU zGST$0%GhqEHdXjUD0dhn$AU~)I^E{vqdst}?O`+4@f3_kY6x!RqjSd`$taOuUc-Wn za7f~B0X)0QI@AtE){*tYcHbksjo9?q?rojg3SHXMvwNBNVhH>{Rv5E!!r+vNz`sP! zjSz9_$3(>Shg7krNbM-B%o~F927JTXR>1U-oVXe|OlGD>+(xF@|?a4CF|O!2fyOpmhVf;lpx#MO3{Bvg__ z2R46Q9M27XY=C@_=9C&VcOnRu#%L~lJ=maG(=h}9_v&*%*Fz)*s1 zpiN>3Xy{)Tb?nO&vuRovx|K=1HT0`H+BjGIn#EGS=2Y7$x&V!)ZEPx6I~62yUhTTS zFydz4>Fpp;K@-3Ctr#85U?3W1&tUF+ojgyHH!QGOcJia2+0S={2EQy;#=e9X{merr zQ@uqCKQCI0@iLS8Hj|o>=GTlKU9OgzY}Mg-4PLUcx5!2C;&Yd#c7$oTr>xla&0ztx5=GLAy;tHOceBXHg+nV!<&;D_Wej7R zweDKhi8y-HB)a{uqNT!m?#h}F{a(Gze7#L?_OU$UWd+vb8G>|87qJFV!!;^yRfBy| zChcNf+ef0~VX=p!?L`9-zNb8OQE_d=8v2kg%ty2tWBq)}_Ur9)%XdPI`HkCWMUNjH zm3@wM%-d)LT=E5G<1(_QM5`zZs3E~p6`|3*6@2CW<<-$^g-8N z9eJz?2NuSb%7Na+_Gc8i4d~OSEFEuy7;rb%IaCvd<17JCh{hcl20doi;)gKE#4_J`jE@t%7d4(=C4M7@xX%r$&WdQ_wOcQ?g4tyOqOy+>(RrQ9%B&SA}K(h zkFO8t?i4SgU)3GE3laeNQ_irYJ9~5?#FrOp65Ra@GA9ot6fj@IA(C;vPoB}Y4XIsL z>fMsB)+(&~c}N~d=x)i0Q)%1~Fxr!5>njzkn>{L^YZa91P0-4Ed`J-3=0z6>&U)I6lPf?4Sh)}MK33Xn}m zpE6$NPY(%UtuLl_S|u_qF8@%W=EXcY#T*k^cX^PWhnOOX)WmhX?Yx~)loQWGGVG@DjIfI zPC~^eP%O)6toAtA7Efrn#=7pZ(3lZcj+7=(ZwxIlKViMwk^Vj3Wx){P?4uFVJ#QOj z4!BTH1^t%IG^p62a|_m0P#Ip(7J%`HJJe6^X`rUX*z9Ke=DP* z9o~+nU;W{l7~K3J!p=aI6u~zHgoeUDkzhCb9{0^(t4dEMx3eWP_d)Ys7achDG0;u zJ;4dn?UF%S-lgbC5C;bVLwm_o8bOcW5SgA5H?V2@*oR|=Z4wJGBUh^2z9~NWr`EM2 zYyxhE&)k_AXCEIjQF0drP4FYTAPESRYJMKVCbkC)pC}0*!@c=&ACVydJCFo;mC+;X^Sn>4$8W8_1zCP!Wf%?l;;w3iuO0g~ljLOD%Qfm{>}C zRk_{3zd1V0kY+Q7Okr4lw-aPa29b)(VI8X8Zgy0yl8V>Y)9WpD^XiAar_33SF)-Q^ za-qT=L)6#0K1L^vn>4+CtIKnW6K_x1PClOF=a|i;^*O?u2NE(kdXHuio##PQVW_- zzXA8bgRI26U*{|f`Yq*jg&C(< zS}PqniQ2!mV_JjWQ_0V5@eG4C?{QNx$3JJz7e}3OIH(nH(kZK4ySSMKb;|^8`G`4* zJr!Xx`Y`k=bVCUlx#=bYB+lnmNcaaq3BdQV4C=XW6s&hg9u;^cQOMBkDDT<2`c z9Y%H&BmxhMTH=Gl6B}i2@PRZwozh@~0nCpr4$Y~SS8OPQ;4P}~Z^^FG8|1>5t&_yC zR{U%{^{tcC`hHem!x2+GHY#s>h;{S%%tB=z9lX*-xY9F78i(V~RG6Yn)b&5u*DzMx zZJfS`W83GbbTk-%m<<+l+PVM|JCXFB?bLUVtxT1!0``s9 z1s_WuPMQe8)U_;YXwuB7F2_%pFni@>NQXh|7ae-H{rrZ#Vjf^yJpZ;a133{v5Tus` z9@+%`TUBr@d%i0{FIZJrP7Ki?{fzOMH)SFp=CDNO2-Y&*s?V|&n|a6Wr<3?L5oeDBET68v(f7w1(kBSG=$J~ zUd#71B81S{b)sM>4pE4^_2`69N(}buu(FD|l{2pz46VAf#WJlH2NSJy++xtkf+*;T z>c^nb8)C0#$&sQFHc`<1#B9_s9l@-f^1Ra?j6}v@c;ZA4{G>O_N`10m8>hkHlOpZh z3G))t>L_tYrPE^a#9bm=!2JkhF1}e+F8gw9zhYY|!V8N>ByVLuEZVgbVlRcaD!s55 z=o*p$?9RcRLf=RSBN0Y5{STHvPpW!$F<7tPUX4r9Zmp4k%r2Tw_tUGouxGf4!ssr? zJ6XEPbJZ776g{26Rj?(}re;lu$4njc$KWu>z9EDdDtd)YQpBDNei*nMQ`<7^_0htR z{x@($!jBxWmBwC!pcOYK$f@YFu$=xrdUc7>kYV4k_ zvM}Z>*F+_Bf%qo~Mhu|z$R!MqwP}k}I;6d2IrB~0UcaY@Cy7HmRDM1ubW|F#Z6K9f zKg?J>-y!-i`(Y?H=%FQdpd#L0LU;*5xN#AQ|A|fyjhcE-5r;UW7e2hSLF`fSIVjVD zIQQf;_@0L^T;*~!1%_w=m!Sf3NNs*d1^LHG4b>{oG4H&T_#3mMzhkE|kTnBl#J*#m z+8nwRyRyUzN;tM|rbQt-ANO)UoLJ*wS}(wD z)=uOvFcx8V9#Is^Zu*5AH-{kfR&sT!wC*^x?xaOI?aT$PDScbN8t>6e;R>WzXzh0b z&;v6ZPU>@?v*dZzcV{=;3_GgxI@oo5SOR zD^Dlbtls3gEJ){QK@@Nqrr}k`|AyEDS*bLb?}&V6Cg^4E*m^W7a_I+2bQtcKfpQ0k z2e=KHEAn8DHBm4`|2!%h;mc#lT$keNTw=dP5rmEt z3tOt?^^5_kRV0P{ii_^S#G^<=k^N_)h{UYfc@GC=?&-y3$2+vAU<4OUVaD}mIxUJ> zuH4ixi#ubEbzPu5lp-O#bG)~_?Nbd*atO6>JKeHGq1?I`3*%gtZOx_*)d4X}a#43L zy0X!_gwgA!8oYPg!2SJwrPpEN&6Kgs2sQCH{}=l=F`s!6yXbdCbuv~EpR&H)d79CO zof2-|yv@1Bhx?;6KL;YD5$|UUw2AxKF3@cbMW3AQD*`-h77)Czl=y=; z99ljRJ$8^Q{JcobVwdKGD{!_r(~qnv_1cBoQ#iOLTh(xz7)2k^UmB)Wn3PuSH}yP1 z$RF#K!4`*NwlqqAL7Go!Zl@016ld32YyA9Os2#Ytn#ypq=omKY73SCJBlk1hxOv4YrdZ{M} zHG>cRd5LhL&|ZW+Uu1KcY-xeqf~^re#^DtZrL7TF&2zXSVAkyYNONyiQa>nJkwGqG zl{UA$!+<=o)i4oT338vLNMnwa; zcxaDS*c#IzNRL7sy~#K`=LVLQeCY;U`+&2A9ZL*nV?~A9YCn{TPk+ zs}0l47$tbm zJ*E}w0cNKZ>3aM@*K|r#xFwq1RGg=n^g8IWlQpTQN#5%~hi`l>Le}q>{tWg6L9q(3 zH4PrPgL&<$`S{Z(?JUyUt~fl;;3d{Qtu2?>tD*gx z?eu{2_MTBm+{uwTV5IJ>F-FP zL^|3?F_-~FL&t6btN=`7`4qjSO4G1LHOoinp(xNFdjVTEHw!<~<8lb9&4a%vhm z4#MK)@;`yt3>_jr{xF&i`=skpXJq}NwQ$t zrl&XflA~CmtzEZEc#Zh&Mg`g9xisw<;!i%WWyuyqq=%A7^&P&AP4AXftlBQ?lcJk@ z<>1sCEOoUU9>3L+AGtMGW^Xr>gf}S{1EoqaXVr*odf=~e@?C*+6~ns?BHh6Qtnv+d z!5A35wwtL1A&#h zyl}$*K$Sn*jC9^hl;0K^wZA1v*KQ`Ez0~8FXT@^fb1_ZwQj@P-45!?`#MMqpG`;zj z*YG98c?nF^(T|9}5I+TYNmMq{kD|SVt=Z_t51z^GNxZr^x(>`^0X}%k6#y&jS-xOu9bYjCc_`o5#=3we?!ifIaJ12PYwzLbnuC97{ zxitihHQ&Bai5|);v+O6Xbxy>6U#eBHencLaK%+H(aiL zF^UUkze~Tyr|`+Kc6trRKSHPPe|`-0`-r%^O7+VE{2%D|0bESw&yMnnML^@fN%4rw zpV4*jAo;Et+I56W>Z7=Q;jT8Uo2Z;T>>>FsCLxpZ3Ia-R8U`*xfr!CWRK8FrSu4M+ zH~C}eM8epvbRxQ0^GwXP;Jc!QYNmjb9Jp3H?|y` zfO>~%q)~iA}U3rRSP;G2xL(I79!q)O1BQdJg$-2DZD3!)8Q-`4_CAN{e zo#B0I>@z@$6*MZY-*x>)Qi+jQrzEv|BLnWvOv{qS5bn-Y%SR*d*Qe68^CJUp3j#@s z&ef*cMm!_%SErV><+WFtcX4-=Tyu56>JrPKlM8VbYHZVW4#N{_3x~^rM%an0Zq884 zWXAE_FBr?lBV-=;cD2+AxckfG!{=vZxG84BT-kU5JvPATnlyhu_Xt`E8H(o zDW#RxQKnU~C1=O`?)NZEs5U!6J==!%Qi#B9XmWPJed71ex?^O3SKun9?22c z77wR9Ove|*nbST&@0#)^LGR4Bn}U;o<(d!L>xh2}27e1zp9RIwLdGHHo9SU!Ja^s) z>|4_q^Yi4C&nVAlq35$e?jibt`Fw%$$z5^#DN6NM^!QVB_EXfQ)$}$i=VRjXlOg4^ z4qT%E4K#}etK8DO*kz4SLSIu8+m5Yz?S))y8EoB&YJ7Rn`M?Kx8H> zThkbnvxf($Y1C37MF- zgJM%napQa%iSC!G23U^2Lb5F8zj6EvVShrCe<7H^km4uw`d9ds=2P$cU-jO&pZs0n zpH@DiKEL?>O6&fuj?d?{r~*C}eHQ>o0k9R|B9ox&8vxo%_%+c#3om{DAZJ6aP>ssj zxTv2rLx2KB-}|jkS_Z-=E&fxF^N)5=O{%GhkYqh6u$ARcMIJ_p zpHS0ZNc%5j^B4MSgbPry8K3(IFFIj8Dd2lG{Hd`ZIuIA9c|Iyj<$T3E=+#uE9?(%uiAV06#eFau^w#_KA8Q z1*qYCra$QnSKK1|&2TQ00&f$-76Wb;^pUy+>$dN?X*mAhyfYv^`8bj#jtbdo)hkT)OGEEtg9Fe$A@D&p8+8Q z)ic{ww9{vvOE8|bgY%aIo76lTJd8(^qE+9?ujltls@n>f=be>4kTUH7b-}LpQ32bisa9J;|mll@?j`QYdz+Yv3L zU&)pdT*;TxUD+SMZ+C1d-ac@AtZ4no)CIw)5uq^)h_doASR0rUOHdge8mNrgCfP8oK_Qr-b_C^lI_Ri*p#`F$m`bNg| z`nLLpX2$dYJ}Vn*2YO3DB0>89HYa3hV{I&|Z*FO9B=Y~);qMY_L+qq1iU7hum%&Gb zx`3@6*lRfZci8wX#Pv}sD3jjqz`eCwW#`o~$M|#1TUJjLITAd;Uel59%xxoN*3B67 z+KE+d-ghc@(OH|FAR$-j40CkhPRC&Z9br5c2l2n(N6eyng-LPBqzcG!M%%`g5sF5l z4ByM2nAj%<-saSK70LE?*KHVq5hp$nJ$ne%&?$W=EUlR`{TCrM!&lCIl-0tj$pA-( z#ZLW0Oa}qMCprml{NOv&kyEQ8S>2+imN64hX9s%Mu(^2GaB1@b+i2%%q>B%bks(d} zKdSSE1QYBae~bm(Z^}ZZ-Mq_^Z+KBXFxD;6(N-d3X`l)~W(3+mt%C_|_^ngaqy;2) zM#NI5MJsDSc5b*x?9H01SHyuyjhnk6s6q@}OT=ndXHizeoGE#hPUzA%iy{{S$e~vzoMN;7G>YbayJEgRFfbihDjcMY}Z-NlQ)#s`2U#v_HZtK8xZ*i$>>d>Sg zY|Ydo&^mtrZymX_I(yy^p~s-8isaSCy?W|ZH7Fd5+@RHIsI==9?cgyWjimH=97!=i zR2oPvJXR_Dk=($l%wAD$WiVnt=)x{0*vY>LT*w%B(iqg9#(si(0%K)l*jilpe7wKX z7_^dv8acYcJr6jxV|6}|n%Mh5eYTXvYR?I)ku0fVJsMUxz&bCr-e47)_KS?P9R4W7 zTb#~jig>*n{xlV3Q{|$>2D6j7YW)H(IK1zksHUU1fD2{qcztUzWq@3~0&$dp#wv$? zE1bq;CQM3|iz1C|X;_+5dSASWer)dW-6t~TGP)@*Z(tRBVcwT}1MgRo688)rX<15= zC)JrGAY$RLw6pFKa>U%dWt1hp$h-yw>Quk;ND<{_Jbk)Rwtrz*6Im;$z{w1;MAdqy zEhq;iokE;PPILP=lxu5rdNhvWkiyXM*)QFXz*iHJ{g>Q0aYjjB$n=xqwG4{`Byo+3 z7>{C@;)k)IB(J1r!`6FA=_n+8Ss=!9mwWu6Avn#-W0=qp@1^RP<4J$(@`UC<9r1M2 zK8M5-ac%wBf-IZW$I(|I#9! z&E>5oT{=gl)@UaTAk!COolSTIm#c08{M;D?`U-HfiCNG_nL1rv-{$65^B|BC7kZcx z%|j!T!UIx`ioTV)$dg4PM?qLg7*FO*cc<;@|@#S||V-9-@R`ouT4#JEZCp z{;fj7C0^WY1Pa1YoT4E-qHC2WBE1v0p?QP_5m`i|&zYM*t22pGWjfGfnrES3pPRu! z5NxalU9qT;2DE!8eZ(M-i+_}9@X(6bCM9Yr24R)$%+-JtpzfvZt0z7B}#gGb*c@J;?8Y@jpZXvF&a_xjZv?JA~Bx`a;4v zPgirK;31~0vtxz^FRQnU)6ENX3b(hFDI^)m%?!&B8pb6JBe%$7(-L`+RgitY%&mcn zyY_~m7ZuDUk9~u04YY2U9j`|gp^2UU;pdGA^M_9*$GT}YvOfGMOfIo;Mlg?MjglYf zaH@&bIchrzC8)PItDx<)K8@GZC>dJY{Ko(_Ch4|XzD}lJhmw@-6ke-l{uH`zs(Aa5 zT$F~R6GqzNq4&oKzpX{K@rw!1X|~4^jKQRia+&@KQmEGzSjh`;(7K#1l4K_=tm7eK z)uc_H7nG9{Rr$@4cV0c7{Ad?6#mi+89_{z`cc6ZFOG{|*JnxCV$zN=N)tDc1ccB4L|lR?z>o0-$BYi7{+nzMhs}Kzie3UPL2}8I(j91u)zFwyHk$d z*V%yW*o0`=Ly>Q^zq}w-7um{xm|IzBxf@%_NNGALDLIw->*Vr(i@SzZ@_otr6*)&O zsQ@2WfmUG`EpUoXe$xtS)AL1FNtmE0ULy;o1c{c;o-_9f_qmc|5u3l8BD~xYUYb;p zG~<{f?(SKxyy4KExf1w9_Tw)`T{uGJ{0$T> z6e5u7LC0tE?GvVOg?c5m<-IWpcsJJ+OK z7Hc0>Zzqe-w3O(6KN3>#x0R}GfB?~J1}eTIo(KO>$S)^Z=7X{=JC3tGjDx8y^L71o z@f=`rvRGPr%bs(;Da`)o;e4rk_ci|o5Nbe{M7N_F9TcYl+Z9<&0IF?s8ba{>gMj%K z+r7g({fWC}ip#Hl`uV}yOwFp0CvNL1G|l&e!;4+4{VYvGaO2(w>3zNzJNb-XCOUBz z=nD@@Sc810-V+re7F3~!2O7uHz|oPV@e9~Fp2W+PVs#2G2S#2$rRC8A46+XT{cR9& zps!xOt-lTif3MAso%1(=yVCRm?ga{2IXC(pnhCU0a^aIP+mrJ2@b+Z9TL>I(L>H*e zkQ-sZ+uh!E_{@ltZzk7>an)9<+FA-qHtN>&Z0HadXVy=ZDe2zS(U~e2;OP>L(?+Y8nqq6-4kBl$=ei}P+!Fnzbv)F`s+OHar`i)r|h;05C5MigMc zD{^{#S`Su%LU)o|gD8`vt;3oRb0z3?4UNe+*taS0u+*3Q$V2zOuoZq4N}cPFOC;!G zU>zaoO)2-mCy`^N~c{dpg@(iCYY%YFpLG` zuJz0GK@`vyJ8-YWxbqPtLKF%{qm7xq)y=L$sAu za>K|j*VZ+!b-Cg}o;>jH=>$= zj#d%;scwQ9B*fl)Fu!Q3&BYdYjq5I4?~Zu}&v$PfRdS5X3TUw1sJi6k@=1B%a;-8D zUt5t@31ssILOh+~>gaeEPtYjxA)*SH3Vzh*+Pe{m#aX9tJ-kiG(U8NiuSKS=_(KfA zLz711E%=?t0Zfg_0dh3ROG>#2Ui6s12nv^r4~{jXJEr~THG5xEu_|x++|g*q=&fu6 zI|?-L+MBa?P}h$G;#@EWt2Cb1RmC4xz)q_sIma}X57_vt$aINNqCBQ~JZ#?#^74*n zusw`-l#WXma8BVGPM~h+R}KO5jN2dUHI5!Vqc+s=N?uKolN6ZNx_a>&vDK%>tW`;* zV_l`L5*5kYROZACCDc};@e&3W)^kkz}_E_UHdU+ z4xuy?c?mD&2t#}WoA9g>=mMBmtBTD~KAS+ug7PU4exWs(@laH4zp(DA)4+5V7Myam6|D^xOvHUn+iz!)vKdc<#DGu_nu z)UMQGT*EG*lG~V9U|)57el45!ocsYZHKZ$}0A#LypuIWzRAryHRyidDr2d-)+(KjH zkGJ}Bn#fTNKJkqO;`++y8HQPIe)mMqNu14ZvX+tO^c!Fv)qct$+>C{=RSM~5Wyn18O*n4ZD++c<$L^Vzvl(a=MNIsfF(d6Lu zE7_Dl(fiZxrz_H_w>v*vqs$Q6q6qs2YtG%uIlf5ADKK^bdFcA>(f4E~>pdZqyJ0%F z3!dFlS@J@7Rdq)>#Ju5(^8_okf05eoE2slv1PdpfqS{VA0Y&4lAU7LjT(S1M#eMv+ zRm9pIaV?`L8cuN`s1P@bOK6N^Nx_K+%T&$em1S?dpEdS(Tvcf8<#b#+!?Dlk@ngZE zQ41T5CzkTXT#~+}Zui2k>jIZ91eTPv#dZ#D0;F+!VF>^p$l~Ky1)V8x34&*B4w6hX zODTS2R*wo@Kqt{trhI`}_&_~*2RCk>!yZ|{7_m=aD&p?psm$rMBi-Sr2;f_`msXAg z*|L#T?r}>PARt)V3y5oj+e#x41NzVa+UyCoOMk(VoQxZEO1civiRQ>}vlP#5u%wvu zl+@JP`sNl>*a}SrS~xl7YMSX5(>WvW9yIez;gvk#b+G9V+s171LEu%9b6XuSheCq) zXVQ_AO7lR_g|r+Up3&bW?C^`bJl?a0ahIn%Bnh-+Q5lK6%(b+dpLvLBdJwUMZR&|!NU{aR5?JLf-*KtQO#m`M#c2vr*F+oaFY)M%7Ji& zS!bTHnHyq;8T3=LgOKap`qH--d5pgf@w2~NIg~uNIR1>n-QRWmm4RR(;l2jq55kh^ z&w{w_NVv(*%x|}c?ckR>g$K}-1oZUi;BIIW1$*fj$!OyW8+ls;+yN){Bst6Qeb zB+R~oY3Qe0=*%_nK&S{;1B@$i(43F%7quL9{e0*l@=nw)Yhs8Ca9(SOcNY+1mnqQB z@cpZUlAwnvrq1M~oAr9&9m&q%HBbCkM}lMW=dXDt^O)XP+3d*cEEX*6Z~U$1o|J5F zOP8^?(duXwuX&k)(9@`w(HIt6_>WxPr1byVLmaJy#s?kE?MvepSGiSW2K79L<&CA|hL&>0 z?7ny@7~6-%uqemJXUMRTgJB_wwI9Fa8(!gCmGzrW!7mGCEf-gjq3PFGO4qXBf@}R4 z?*g(dou(ha!u=hmMg=VdgPt*}&6j!EffdMIAX3y%MS_>o9)>92f^KRXSFZ`~{(f;~n)QB^6Ai;--L}dl zkHGc&p2=dsg^c7wt10&926xDLd-1n#l|RU4cFijpk$aT=6YcKXgBf5QurQZ0!&kHp zl*@#O$l(e1a%(c?=0fq;W?scB@7b2_R3wJYAKe+*_RaCGoQ~HoX9r)8zP$7B^!XHu zJrcX47~=a#%U$Xs9&Aq8z!{CPhK$j1C@JpdkOb9|Gb9LyQQ{(bi{WD+r4HvqHyUUs zPlIq9-vV_Fehh1IaSk-J3~O0Xk%XI5q2LJrOaSi6$^L!|EOzwO`T&y(!RugPjy%nrcQ3W{&|nrg)mj5|+(&>%EfsylaZt8M zY8L!x^DC)DWB<$ocE1S=Tw@V214i7D52|7##O>Q? zDhKb(r`=wIT0Q*4T{R7RnqM5^@!D?tI8tE6!ioYKQF~K#FxMZ+UMxI&RQr7@h0S|@ zKZ|<3V=K`Tk`9q+!ZOGZxMcV{j#vC;px?nlMJ+dRm3Bd`` zl;x+`Of##ZAgv}k15y^Vtbd}=Sc!?%cTxWuCDc%?tiJvdBn zL1TrRM1J`4tw%zsde0zxDZIHQg?x&P11W`k3V}zHGfO=%7#_nE1G3?mTyOE1T>jxo z*k#M|movVdj0u&TW`0QmZYvzArN;lrXrQT>EioObQu#$E&T|K8e7VAmutwZ=HXE7MnXPB`>;GqzjocWkL>iFW3d7XNnT|HIlh z1?duHU6$*XZQHhO+f}!0+qP}nwr$(Cja!)8Jw5YJOvH4=^h`v?7n%8z4`;>x_Bm_q zwM+(ulj1RT!T9t9U-Qm$OpOA?n3**Zyf~w+HlQ&pQItwl1(8_DbPC$bq^XM6H8E5y zn94P&N>MhfG>cW_Gg(t@7AVbQSz})ey~H!+V$D?UJUM0=`5(Xo*}A}N(a|+%84RB8 zA`7NJ4?cmFRqXsIv)@JadW$EnD8qOHY3J1LAm{y0@eZjJNL|urZWm@=vwb;W%ZKIJ zb0ge}yT+FazB{7jAa!lvQ&rxN;&Uk;%2Tk49ZTi~bxHWibrdOhQO%w0Mja+rE-3Um z6H3gf_95Y>S24>~wM3#fRGLIBOPV#Is#j}DE}NIxKUB7iu)P5`f>(@3+d<>nHoUVU zHFZu3y<`Fba>Xi{Ptzvj@X%6^)2JlD-!vIuADsUz9Zy5Ee*&#H0Pckc@^3AY68OQ5 z*?=w>9@`PLI)cxD+%?85G3*~`jbsD(b1pg|Lo9IGk!CkE$##fe3QjmFg`X61Y={Q6 zMxt8qunVbOLGuEHi)R1Qu@WV$FwQ!q?cSV*GQ?{Hy~ZU-&df>d%5w033I zn!hV&C1uK~?y`^bOsLgLA6K)y*3EOHJKB+By{{z->Ef9q%VMd_6=D}GT0ZBT(84Nc zk4?PlyUv3?l&Sc0#`UAHjz1lK=~(gQ)o4{Xtvt~>Ho_Z7DGVZ;N|3WGL!YNcRIjbrhdI)q!Zc{iX_wQP|*n3VA93U*}k;1+*$IH z=Dar=s%cu`TIaG7H1wf`G&-f+jKEx2NAWWFk(NjCEJkvL+zl9ju7@Kn7-*NR#$X3E zMLci;ynq3`;n1AH&>sFJW^@Zq*UZTlyI>o-1z^|EVMo*rr^Xw3-GUu2n9i29z>uDX zzq-cXo)l^G;-+8mTpsZ8?6|<+EMdS_fr26%-vvH(ILBhiTVzCyIBHZgi6u)O3?KN{ zlVYh-m-&mX@S0uWYjc5kZV63p`>%2blX}u9Dvv~B%zzA@o!Q2wE{0Twk6mCM!fxS^ zpuJJGfnmdKJs{A(h_D|Sq8GnGUiHX$jU>)-4;{r&i}*az$$1tc0=*x}eJ_)SILCr= zCFbHoBA)>8l5ZQ_=wEQ8yo0rDz2;l)>(5@TbO{E&k#L5Dx_q0_ML9FfwaD1dh_5rP~nwsJ4MJo-UpT44n1nM zc`?8Y=hy(r_tNcQl)5|ZxKxB>J-d1GP+mE&t&6rMqA_j~G$+a`fg7DYA=Z4<%CmjG zBO%x}eEyS0+hkW7C;n@HcggtgNQ(d1n&7`k3Rz=ECw&7e07ePm#YWB zzaP@ag9bH06#qt!kvtasgfgKr7GHt!7~ep0$W%0<6{bEPHVin-GFl8PBAqL5&KgY* z7sPKpqiSUcUFvwm35Nlc%y+ud0)Y&)zg+PvZj*x8NKac6T zp*~3u8@2cZCU#l8tz%q$bIDL?RrM1N!ud!4T<5~PkuE_UY0Pcg-(9n#&}wX_%1N9i z%3B+5SCI%ycj8)1x;zKQ8aD;JMOPRkHGn>tX{A}z+*QiY4rDHaf=F!Rs zYSp4W3n7uyNP)A49X0&O4NWwS$PP%OPLD$hAKV>a5Gc!9!--m8y&mW^=C9;xWq;rv z5mSp5M{91U;n2-^mVa;KQ*Q6+pH?{UL<5xSe|e|$zkKEYnRin8f2S({$C3&gTN#_` zJN;{EtJNX?GEW#hZ0Sa%iT-{3aRiY>AmWS~$Sf@a1_XYhiFrZ8c_?}&x(V?b2cEX- zRn^r8im5F%D8ic-EY$@tYazmvkecSz*4I7j-OD$B3YwF1Ja;om#^wKbqok$3-gN(b zwLa$l(aZ5Y3>N~(5E1_^!;WDKJDN})W@9!Tf-8%Opv2Z9I_S~JQ6}lft#7Ler+C2&Of+zaXiYY?O zla>S_s>Dr1C#yt$jO*xEbxpTP3!%tMQn7;!6x=I`=U~GH$(XFF9E*ez{^;ya&Z z8v5N|xJ?!i@8Qf<({3|21BOR!#B_MYJ=-gg$^to((M}qSg~DTYLE9I?Iobt4yEOK# zHx*D=TQ7oGW+pYuv^2}aG_!g!t*{nXKkp$M42NX(4R~Rs0ny^g4x29&EQaq&B-&&N z{1lpiQ%Oh#JxgdbuN#^diiO_ z0Ex^C3-8WMTqn*0X z`^)-sB+BT-U)-+3uyu5+2ST1`U||yG$|%}v%URo3v;kNi!}0)uRtvzbENWAk*WT+F zMxA16i`QH(N_S6U!;>cum5E`8a_hfa${A4&Ce4*~lIwYu9;bv*SQ-v=Xy39ODuxSN z52PE}9*L&8MGR z+N0v^Ru&~;7pOrNT7EdD83+ojqpTCqXv7IMN|GB_pX&)|5t+cwF5H1W)ESMVtIA*F zZk43>8%;ox{t5K9=$?8|^^fpcN)C*;X1wR>5~r|%ZJ{Y#OXf{7Off2dWiLxXWvpp_ z4?F61%jFiUNr}mrlwsnGi<7NkO|aMKQz9m|zZz;zV6P#{d7f0#oO;>^8z-Ud(#wJ8 z3PCSS@VS}OPj&r=^WIW<=gb^2$+4g@xId=rA@EeG4SITDmd@0BOIp6Az2*nOmSzCl zL5tN08BILdGEJLM!TrpWewuE>e3)hfJRdbZ9n~}lO!2}&=2fCiDw?a|t1`(8Y)k@= z;&?Z4-M9J#_R~Jm19J}+p0PKqb>=|;ktBG!p&*BaN#9cSgt9=ozc)Ob#1c%SxboNx znc!NsG12KDS-n`p0h?stqd(zq9c9gO3uvX;wO}G?C$B; ziv-)NV{R3yR)48^J!<$HeZ-2Q7Z|uWb%Z5he-92~=OOQ#H9RhHX4NtZAaOtj&`V;J zyvyhdu~tG|6%69N5;23&?u3hSYS?vFnYzdieT>^ZbI!efOZC3v!+99dS=U3Zpa{&zeb1M%R|pg(2X$#v%Zmh6$6K$LhLkGmSL95_ zT2Z8%9CFB zdD}a!_S0Js)Kjk2n7|r7@v0w%5q}b*vfd{(QI9BXfY5V4*O{$)!PJ6{TWE0K}q?e ziCXT$<0C{mu23cT9B>W6QpgO%1!=!2%q=V+J%U1G``s4icm^tK7$=bYH@ZenF&-gu z(?83!+V6+W4#2ii$8Hi~_(%|DJA)ZuMENTQ??qh>j&JCRi{ zKQK??`WVozzLG`Tgbb6NjFY}t2gp~=NV(9e<4;9RoBCbK4%YKIs~c*WjpB)MBK?jd-&D{pmP}vHBWzK z^l{TWbPPWdd*<4Fr%~(0bsygQ5V-);9nm=@?0X&dlFEyF=qvaDE~`Sz6>vVI59p-t z=6zxg@WL5s3QXI*q~r1nmb*^G6rt%oT~qw*RKM;BV_kBX<>Z|$T;`8@sV#!BpCOj_ zC!h`z*uFZ(*;aFi75t_xuSFM8TJ_2DLN@*;F*G~(#wLR+Oe2CRWKUdS=8kR|uULEGqbEgUu1f(hY9sV}^YBiS@QTHcRf&D7w6vX&j{) zBEzUJJ#^kCjyXKEbYKvJLit#cZnOtGvpb&NDIW}XD10>lRN_JKBL9%xHpK9(fLy*! zSB58|XL>f580Li1q7n?d9ovXm@i0QK+$=0IKN~8I9jZ_;vgzr98nJH}iba~i2Sb&| zl)%`5#vX&5kMxC}$59-0jb9+^bnWGv@CfI4f?!}nr}2i+691blisXDX82Bip*6+-Ilh`x+MK1!-J3Uk+aswwiByi-caR;2kx30Gmf~W^h+ID9Rz8U2r(UIz5Gg!R_Q+ zc_LqVeRx;yrs%t>YeGzcXcw}I0s$!7dlKTRvH)h!gSNih_yL3X?AN;(ncB4wAX#SM1Yoxafxvcg?Zm#s^=R<1b%r zyTZpZyyhl2DJ#escyuimQQ8<{J^%SQol*)Y5wsH&0Fhpz4k1$b60W*P7I4? ztAhfmgKJ_2>oZo0cu+1e-Jv0VdLZ^zPnd$n$l&A8;NyotJ)rO@d~ZfnE5SEBi#|%L z9h{rkqD={`HJ%S|nkU|cQ(S=JQ;$p*Va$C#J0Lh8BU+DG8m4lEtZLZKj#W9#ag{J5 zlzJu{dp00CA00WQX;uLKWdPg~7VXyB7Ds+P%wvGWJF^=)JlxgPg(Md?-Q}Y_v7=Y0 zN0jh{d|-2!S(Tj<=$0PtSu9mh)9(z>djq>Jae}b9k|ygAMzJy3^qoV(8^R~UE2GJ% zV5Y!ADwjz5iQ%h{{3)C(XaxIla2E#h)q@SF|2w`89#N|usg?!yqvK6=;CXOpeHS!E zrGwB~ses0j}LDg}hl#7HcrSg1??LB0nFv0SvNG^)(_x66sTy+Yu3sz005$x z|885S^Z##Kr|A6GyWZOPf2s@rDxproVI=NX=jNX` zR3AW88_(d+o~WRegKs`HH5LSg%x1I2Ez{1`>fMa_>=s5iRQAP+z&V zo#S)+r>FJlk?)816UPrST3?9mvO(yMvhE{e1F^G5_aO8+yarPLia`xPOCN=z76C`tc; zp29R3GDJX-wMjEwi`BbJw`-`cMs)uxZp|%t)lJ2beQ@Fc0iu(bpcJE^W2Fhg)2Ti= z=^1D8Q+aLPdpByHK8qtnoK;PgJ}jTuBi=xr(}0E{ik{jemU75k&YCk^A&NqNE|(uJ zN6`)&_#jFD%-IDxQ~$Ayd=RwcD%u3tT*r~RP$79hHi9{)plRirQmA4vYG1g;QpUkJ z#0zapDEd(42Dyte*4Qz0i9SrkD6*}T(iUyqr2i96~61!zgiEo#UIj5RDVyqLgR5dE2 zwDWpnLz}9rR$UN^ev_nsrpzcF0Kuee7|f(y8wtS#kU`;~#s+ z?iZ+sOw5Yigl4rw{0r(7BwB3$k~zKwGb)Aur7kKsYBU%f%VldjNiXs0R7vrpd*O(E zhOQHxnI=Ji{ZM?~V<Tu%#aZZVMq>s`O#ME2`;*Mofm>dO z@`$}}Qmr-3mEVo;vdAPZmWYOiTj>07_tVy3?;d!e0%gJYd4hBC!6I#}p$7?qJ!!`| zBoqm4<2RL0Hc^vruCt{xfv+Wfft zGWDzPV?ew_sHQp3`KX#nii+0jih}4U5aNymyk)4Ohi(*UcRUM{Y|V<#*S3Ei5{2Gl zR@_@pgMYA#CCFtVf6B)IYj&W96P^qu4tPAa`qg_}>rshUfb>PYs=`^RYn{33ht4sL z%gFpbfU8M-v$V}(?Krsk0}x1chWQi>zpf0b#G@kn17vW1(|iU5f@+OAV-$hEQYmmd z?N5aEb^o}vO|!P~{koBhxBRpP%6kq++vDujwMas&ME-cX>(l?SclKA!T3 z*Tb2ja3IYP7l0yiq*Ci^7V8<-1Rjrc?)ap*pMc-whgSv$1!C9wC(~1z?o8IZe7d^; z?COSP9txZH17(Yd5nPgP@fO2^&cJf)^|M+7`>$J%!9raw#D-)?4JzoCP*c8p+Wm)FLY{)eOJ2pfkwIe9)r%lRNsHSD*|ga*R0mae{;h@A+dtR;|W75 zv4(t@jf6z&M@O)V(pSuLXJ@?$NY@}XPicj7% zDdez2JN@odgj9iW$BsmwWL_!g9WBr?0~ZAC27D6w7)j*RFkv@5LZk2~=z)H3e}E#L zeB_Z%mExI7Y4u2=)Z|IZDbE-{T+il3f-;E_)eOfdYE}d@Z*CIMoGqAUo=K=ya+2ji zQ#St%luCXO(V-e82v&LY+=c9b&i{?{4>-INDV?PJJphIOx5E4XIEVhf;P5XXsLIG= zk79UF&rH!y5&|v|)}k3v8$zT6C&xiA1n~Ry0}&AiMMZy4)kXcjr|;asqfTl#EJHqy z3$(3icvPARuSlXIfcUHP4XAX8t4uJ2mAERROf8}eC6=x5nm&2Hx}pU-h;&Xn&$+49 z>%Dz`_2%h)zolyh6t+{#V@pww8k!PzSrI>vPePC?GFcS0pulA!Ja_kA2|JVEVYL-D zYfY- z1*i2O9T!kd>9J_R6L9aKWIz8z0H8#MzOb zHq12T*k)Om+)Z;&{hT~RW-)DXx@Sq-WxkFv(A7|s5lK$nW(i^`<%*Q??-p}4x7%@4 zyxo2&(v(;}y0I(2PO7Ot(Db}1M;a6L_!nFB&B&R>4pUO-^}{{~v*gh!Xu#7!<&~^> zCn=yDX?!jc`&N@HsI`z;e2YHdkB`xnq1j^rE`mQWsIRDd#6qf4!uXsTBL~g=?3*0` z_@sLp4sX&Rm8Yq9S&-aI0e7;~XO2F2e;pjkyFOSjR}QYWv`NZ!`lSJMp8wA?qK3Jg|)6Ud|$wp`@ z1OB05k`c`zt>K?yvLqVbsQremYe=PlAmOYVMiNj;s2f?y3f?CvNaNpcs>mj~tSOHS z-rLX9+O(tJ-2L8d1T0R6r1?8>q!wElEb5ioj-sLwuj+5?HjC>?1gVQtGb@liQ2CP* zKJhG}G>6qVgP#qdI^)#&a?F4K*XjS5a}y!eKtlnwW`?|KJOv$1ht{1JV@9@wMuwAA zT;;PRzWpfHqJpcx%dMZ`m(MSib6A#|LMG%-l&wp4G)P`6?YA4w4oPOL2P{r_S zs&%5<`@iDVVWA1Snxsg+AT165gAEwPcJL$Mp7aseG0bX}mM@yz0t2W(Wy>=ppqx(R zottvsy@@Y)nf;HKGDLY?0(AKm`h^C6DLnb!*yB|dt>>SrFPT2PUCm%z))`#YSj+IbnKlW_$&9^tY)p@i&uJmsH@$I zPxuqfj7ClH;oX`B@oWT-gUcDg{;HRTat7|QrJK&xdmNmUdJF+h1`n?Od zD!>;++$i#^c9q{mf3wOsYio|adj=nIJ$p;7XNxPYhqpKFH+d0Is$+U>n#M3CbSmti zYa2_~wqh6}{P^Y`Vw>Kh8grEb`SKBbOL%h+iN6K2%(>QyZ*$qZxW4&rJAiH-)-g0_ z9DXX*w}-#X;yuOwas4SLd=-!XbI-H&BQWW^aH5y>6|nUqbMv#$@&ihAD5W`rd=V9g zK`OVEu+`f6h+FnJ;Uve?$XF3{f#*=QI5R2Fub%;VT`eos%3}qHOhdNhq z<42mk0A$l432~8#ljFyg_r`O5iJofR$5Ws1XIt`SwHUg0d>edB_Ty@V*j+;JZ*F8_ zn7y>&)yw)k6-qs}2=kQTifU1SYDl#>i_Lya^%#Q52X8fz(c=08m*@~}YB<5F4!PqI{iT;;WiZxzFj%!9EugPSdJrKb zXQWkSBeMLNzhvx_8M|eBDq|_uM#x6C92%e4HZ?6?WR${k|HyuhNHwT*qP-g5S5G;kEE=AJIhN(7%vr?i9kd1x}nSWz;_xYyD zb`j1TIA0_qpVkw5+|`^Ne}@as$eX5C7q$D&{E{4RYS$LeY*bvU@H07uDKrP=#oW+~ zp=?who}rnjh7_}5sX$@6KILNWoaiPi(^y!kN|8Krr1i7!IxjOtU1o}0XH%QvEll%f zb2ZXSYDFAEPc~qVq$)!^WT&iAEQk2k(HrDo2=}?iRLK|!YKx(;59~EP{QPN;HjSs; z`GyisS?-XnVA^Q#{ua=vx$(SfS%NT`OC>@^rgX{YFr-yF!&sOf*-|VJc*nihqa{i~CrM143 z+5gpm>3`hA{_{(+&ejIT4*%?qJAl14!Zcu0t04cG5 zP+S=x3qOlgg9Iw;x|3_*UZ-UBhDCEhN||3As`X%Dv7i;Qm9^z%@AqY5MfIAdR<*YV z9!hhv57X;S0~TvZ-nY*>hwI6dYmejKK#X>@+|Q%X(D1S}?`#E`%-YVj>B~z?*FQSL zKCYRwySR3L*xWX@hW%;PIy={vFD)(|(1dC?SCPnHIy^WdJ9YYN4n}%znr(h2@W}5qrqu8o-PHmtx#{+hLH52Cdlh@>z+m9DlTF{ye*bRZE3?W7q2A?lJF&Y^Kfdi4!eTR|Tr62zTs%qdo?teqLQFRDgmDo_ zCpVy|6ee$K68t6nuMZxcY$`8xOwpLnG4{#$cTnf3r9AXib4;0Lq|$Tz5cm0dhGmT6 zQGjx)GNeYR;j6}Y!s{DYwOls0{K?HzlcC>)r$^X<`qi^=JuFz8TipV&wWE?GVMi3@ zM#bssQ@W{qdnwSS5Fy6QSkRuF0N$#D=xz8_px%VlV)nhfEn?50&z#eR?*oO9#0pQS z^@yl+vI~f@oY_*xE}Fv0cBp7p%jFps!Q&+2nFt!jBti4E))S`L zDGJfq7v+GWfaXviQJ*-&7S2|c%b?4gEc5RJ7oZ9#L;Q^kkVWy#mQH6*1lgvg$xaAY zs*`sSGHemc6>F-MkQGjvB9=kRbi%=EzctPm8pNXv8aP_U zPXbJ`x0WcRT||P_0yNBZ$h#gi$mpEc%z2y#$?>0AdpA*>up~yzG^r;`iHRC+x0p62 zzzQ_h^k*(0l=Xjqk<->LP>6fGK+b`QDp5MFLT+mt-ky2@we$4+uAy=boV+xjy^f!< zYO+VB)`+8RRie=851UQXFRUzB7?^8ZVELtnfA#fp&^02zGY+5VTJ71{Da_$fhRYfyS>5sZrNeUr zBbx_ob?hA93vQbV{>G4**JUr#s!7L2)sV2T=~HPRz=`h~nZL6R0m$1DxWvK3M@L8c z*>=7)*s^oDAg1I#Z|)5?<|?r;5`jxiOWuu_ys>Iy@jSj>n>xXQ?z(XicO$m=1%$GD zN5!U>E^qO5SkaLafNu)p%xmn7`O!qtyKpLm0YPt8DCi?9eBkRPLn*=a9m6ig~EtXOIu2v5^P}EHeab;SU=g|FrjknC?)Diw@|6xg3`dtPvpY~)BU575qHJ5b&gHyt8YYT zIna# z*_yTq;qTulxZO4U@<#}`XoiOXC)^ArfP#=yf$La7^Chs^JIMRhrF>B56#5@@BiMRe z7oWRBE_8*xk^P~={vWI_VpYy93tTQ9YRY9z>NZ;E-dtZ&&{`clJZ*bNwKZsD-nzok z_a58Xw6?{)NIuWPy288$%=RLwT&)YYuGSORH&7tQth$#YurD6gPqtj%)Om|A!K`Yr z99K6tFg63vQA6mF(&rX_si1{`I6X)Ue3v0WvFD$7ZA)H zn8UnPq8s&YB}B?rSuWG|2|p0e7UjBBHAs>^)%htAYYoiD8Kcn2ng{@Bl-((MdUQm6 zcJHPK*w#qd&dv#GDZ5+L5a#bHDhW|3dO9@W!dX+32!>Q#QtH(yts#e24cW)_6oTC? zs)!1Ymd7k7?3uJ756-Op@(z#^FZ(`b!y2K9E7pSk0txXMR7Wz^kk3PQ-MXeERmyEK zmU+XQ!8Vb4pPB?%7OKAD2`&D~_^u^g4@RYv)Z zJiKQ}@7m_n`3ZV;9`!Sn8YmN`V|FUo?0^Wm+;@G)cD<7*We8ZLxPr}NzOie_69 z#?v`7IeukmJv})tja?NFdqMLNthMiyc}J_0g{drrw;GAEm>P#+jgQU^7>bP^1D|rG z?1h(vhh~Y7nstuol1bSI!*iI~PC^~RrS>69luMZ~&&_R{b*$NllGmd+XC=>}(<*$vRL)HhJ*GrAC@eQ8Z+;T~BYq#vf&fqPUuF&$sLDD@^O zywJq%y+Ol9>3?3+elShG08uN;Pm-1+@Cu4ON00u*XX#*3^(4Lq+&*+qlHKx5zp;uw z7>^g#Aupr_9%yi$TX9pf&byZmvFV3pyhabFqKvPfjz-)*dGC4N_l%tXk!9+kQSh?t zYen_C>}$pKO6@xsNO+2>01rVH4k7I3RlcUBUk z?!{yH*ex`3gPm+Ui*ffXa_x>U#HG|j_{VDQ`@*O65#L+KoKM_UnLRNAc3~ST zOTvbErU>)1g|Zr|@eLq5H#*m`q4B2l&5A+aj}(Gvu&MbN{<+XpYXbHYy9m&nMaq1d zR~#;hs#6~p4*b0HIASq@ZT0My{!e!SpOAZiiK&^KyhO-y06yvT8lYDtP;BU#Jm0XX`n*lC(LC%e zT`bad{8#Qlqr4lohduatxQ|2F%g@2>6%Gf2kEZR< z$gS8H)}B~A{y*@(IlX@!g{>fIVO?CWOF< zJ2Z~eo7y3`gQ~@{zqqvB0(0XHvXI2Y!ad((i`P!fmy;j&0!JjP%#pE&=myduspt4l z(Lt~8ZJ%gU!G#oeN?Wpi$E}+l4xS;cSbZMb?OKyR0IgF>`fEs6yz{VM>5AREXM0mv<={r(YtcLzssiyf(dHRtx4HvTE$ zeu0=aATz@?tt$i)8nnV{cHnAv=YDUOZM_4zIF)FMES=NM5e2W)9OTZ9d4PEGVI4V;Z2q~UQ`Foondt#>&!)~-|kA|88dD0_G0x+m^GZeb9f=u z>-!$4T-$wb9}6V80`5s7d*I9&NOc6)3&}D&SpVeC8B}|4=)okibc5;z>8&11WbMgm zC6eoC%k^}N^L!`WiS)XE>~!f$SH*_<+rvncLQQ#EdA+H-S^k7I zQu6|F3S?~EO-G4dgNwkkB=l_RkZwF{g5Ac|Y{&Xz>UUbR$F zPTL^0QB=6m%plh4{ayA3g$-7UFtIfviFyLXa)MwY^?8yhhMepqNQU`%9!DG%^?CqJ zW13Yfuu>i^dZe{Na09+nos6Riit!D|dR0NhG`7)C1_yh398C;i zq=hL3$a7tPRZ&)9RV>mgXdmx<{zOx&1$?OF`LLAf0bi^JewfJrFeYo*NPSPv{C)GiTc8xma7i~nj<}g(ng>mc&QcCSchK{>JpfyNV7(d0z>|iZ| z+H}zKUI`i|LA~|`d+rZ-+v#Iz`w>jiw$THi^?;(e3(!l9(JQ+Goj5|5!Xm zg@i9|snP9C-fpKLCiVg+KM&<|`3He+fTip_-Cq~OdAdLs#mXg9MeP&RnnhD3!)KLB zClYA9vkUg8Epl`?`&}{QICcaTPUKR11Bz|(;Aj{7f<)S80Z^y?!H@fbOxo&zXc>D0 z!wnzCX|z?tm|?C*O&ERH@YW(_BD*x3415G@hK)x>Lzw6hX*!Ro?m z8)263q}m;|_&V)~-+DCGGMvC#J#{pCYbkUSE7Nt)Dr+5}EjGc`n?==GOm)k+E&sfX zp{Vk=z_m8@Ey1m>lUf{Pw46^ehUF&l43x;o-`3d%q`9Y>#F_5t7YS1-aZNO*iWBfU zlWwKf%t@~l7ePIDjtErgL47^N@;3Z8$Q7>nt&@)a{xFYYmGPx`5~~JSLy@et%qIMn zBkIo)2;d0?@x+C2QQnA*{|!7M2<;UD;t2zF4^BOVR}b$yAlOA=JuF_wU>%+P`?i1O zPu(-16;5b%Y*95j1Zzn(1CsQzxJtE=%AvU0byD8Ng6b3q6*7dXnEE z>tPh4G!IspNY$F~Hbeuf0z~QYA!+$Tzxg{m>Rkt~by)JW%EK^S1C7q+0^QC^G4XR! zV!q=;Q>$4!p9igORFaP-k zNm8+{q|%aVMv03;{6#*ZbN7*F%y{eWr^)RU(yHj)7?LT#+X+m41ZbG_@IciSPJo5# z%S;+~_MW-$I7AMiB&>s9DLWadLH%h6?|T}zE%5AS|0C?(7EsRDk^F6b_(gY8;f|PT z`7Y3^ty0eiz(l{$ek`8A;3znZT-!{JT4# zNx@0%VMej$sd-46#v!teInxR1P!)3=eB1m%PO5Sv@Me^V7!3(5*STTX$_>uZlRD$^ zGft~u_Bbji99HrjxenwL7swU%$I%94je4wpY`F- zY9^%q94$$@LM26wr5ZTI!HjE4Rk#Te+kc3)z$6L4t%-LK-%$TfH(x;|N49wU?TdxCJjuqc&%rHn7AnuK{o zCzsXAHNJ4Fm4EmxmsZcQF0h(F9eO`dw=2J+TPlC@bS}7xJ}2`U%4 zmBY6q>kKyOk~iV~#`*hVjYODs*m-b?61fA8J{KN^!bc%YJHlUIb3MT>%$mKA6_Pu50g;0K<*X81WNU>7JUUofcFfEZn|v$|3FAq9?^%-;wTnvt39Wh%ObtXimo!HV5Nbu&)XnPEDj=+7^MY_CG8x`J z?l}BoQa1ZzJYMg=;07iPjg@=k)NjFkce!S&8Sj643ZH#P@>0pl65I3(a7=&`yA#{Lv~9CvN~XhL14fMRtNj?7vxcMe3UOVB6?+6zI2=To5kED-;Mw z@a@;*pTeQ7YLcJoSzl+fHQj05&Fuw{cN2Hhcq^x@s+EG(1f}&NCkjocP#+Gb)i^iQ zkyeMWz0grs?S#9yehZ7VP{+W+yIox=!5`R&&p97{MV1Qk(PGiXv7_I}i2a+dB_j3) zMY#zRS@)-Qv8YW@JR@G1uZ1s$UHEX@?iSR4$7zK2z1j2aoNE7p=}`JPtFEb?Wuh*k z85gli%9n*9{*Lp9Zs!U<1^Ds-N6glgI>yT87_EB4yae~eJp}8_b^foF(*!>=)pbRD zOY;*6upXqLNp^d$H@@rTiV$qILt%DLZskOgs_pegZWm znE2KRV*@I|G71EPKP1gD@VNC&@n_R&v^MWh!lTd?Y8!y^g z4ivFzo3lecpT?Q3DBxGp>mM4b;Xu`7;#)|UpTBd8;J=K%U?`&hqM+&DqCoUNEg}C4 z3jPHEwJ%p>H4Gmc-ZY~|32{FV%{(kkf_0Lhg_Q*`b9^sr4RTh0M1JG7EhDn4nV{`; ze$9AAv&!b`7F5f#P)(NmKtgqyg$2~RLbKS>LpTraQC~qGkI(s!t@Lq|My_~49#+ThWrxs5Yxf;wRnp61a=| zAge;{2}UMsiR~*}&$BtdsLf7mqV#!ukQ3N5A&>8b5XG63@M=XwpiI8<4lWmyLcwo*48VC0?2-V33(YAmw~ZgR-Z!|WknroFX!t; zIMYLb9(E6VD(o*-x*Uee+{N1}2b4pEOawa6f$MID;MQBvKIRoB6P+r7ZFQD^& z!IbooAk3=)T#kh-Kqw`~wyGUTzYPIM)F;M+awMEIyB$!M%8;JS;0dUe)>Teu;E2c3T)O%!?;2PaXBZ} z!#qoI8Ic*8O$5a)qb&%Lwg#63sQAmFfowER9zSmY-1K`t1;}Sh@Cd0+W$p(vNsw*S z%Nidt0X2h0V&eW@X!kA6Nf5A--*Nd()V&N2Uc63Kw;=arh49M&iM7(r8lkPZ{n2;A zTFGG^qq@|R-EcA~I(yWW_SegwaRoTFKSFsi;j?*^Zw*>gM(pvSynzQsOnKz$P z;uoW)LYy@5Try~|-V5ENRj$!ASSpa{k&{@jZ}tULr&E=$UH3o+^^IJLqm%TpgtGX~ zZ9D=zUeG*i_MP;lo>T+Shm<0g<)D~RJCD#y_Nk^ItivT5cV$8DRa81=_cW4`+?g#* zthS@jPWrD^74))a4=o}0E}hcrzDsj|X3*|onjcASrpmIXeYn16!)*_Yo1e8%(2>_% zlu|>=>)M*`Z?tOfl-bfg1{bnX*S_mF0_AeNbbMfH!S5)0Xy%-iL?4_Uy<)u}?mgfctK*c6^OFv>L4Ep|W>4YAGtXsxxhEo0c`g| zfg-yL7lx@6-wpjsvNU4iI7K6eX6hXim_bQIUuN=Nn_vX8M&*FnBcQm!78wU8(ZD4_ zC#;C9gqQC>F%R99hYTj{dnjD8Uj*8X>o1+*Ae%@2%9Y5EQI(E_X*OCXCyby!iXmUa zEEaC>N9t&EoM^`Z&B|a45d9@@wn9K;>FnZNNP$_hDV?qw(WFm+vXqJ>DWofw)4lf?T&5R=#D1$&daTNxK(p!s`mSN z+qL%DYk$jGDai1F>r|l-%jNGo;#bN?UogamLO$=J56Hz|HM+oC=syFd)X{ol1?+8f z>EV9^*mU|59B+@g@sQA>)AW#SejY8wjX0WN9GRbBm>uFx$j*k69kdt)Q|o)i9RDaQq~H<97ZB&z8zZ;pgRhSH&coebIlQ&Gztta{MPV8` z?eKi@R<1%a4A$Ts5sEp8v*zZ?TzX9g=R#zai9gcX3naLW(UFRGcG^SJ@uozH6CX&j zDtYt38gVPYUcno2i%lA{e%Ue4-7ZR<)aw>$uZ$~=D6HA1i zk6-y+3m6(;BJb4ONk0fn~_p9HlQ z7ZN~!}A7+m--AEKG=8FK0JIl*z@)X(g)w z(&k|zK%Fm{*%QQ4q>KZZ|MuJ64Zgxm8;iP6qn=3P4zK?Vt2Ob2APOV=@q?&e!sF31 zW{Tep%WaR&Gx68K>wO#xy{WQbt6+l}8q=kgbH`)R3X8{4BD3MFoQc_GQE%*?Slee+ z`j7{;?I`13?2q4PPdij)gFFo@zwg6`2{ZbBGtS1pjU(_FCU8ZIjW{VwS9cLJGOKjf zrG-p$&#I2`&MLP^aHT@ygu|5hOT?wt72EggzVhr~@7ceD9mLG~*`{BggQm_xQ1W=- zO>%o@6|pqr4|r+C4mlm~LYxmB#C%DI454dLC>$`}k@x23iG+LN z@eQ%PNBLs;3{S2y_*t!T9f{r*G2z|BNp0Y;Ixut$_cpoJI=&uaC)_|DR?f zjW=D46+9Xi{CQc%YC99A zGYS@1%I-DFZ+;CbJ~=j1x3!I2mGnQ+U)NuAj{KeYWbJDtkf}_HG)!^5--8^LQZQxqPy0R)(#r%rt^h z&Ce1Wch%0^>!oT*JF=7~;Y8+_d~Y!~arc)W#UaR{#m5mGaIml?d#R~X{M$(pL+EJ5 zRwN&H(n^JQxtN3`-;Bm6(HqP#-a%^iRmACSA%slM+}ir_tbSE;=xiP3=KgkEP?U zgvscPEib=P1W}bVS_d;rEgK~qWOi(H!qp}TW*()rw6myC7YglxT+42K8EfTe*XXC0Mh(er?7sLFh8E!sY8^5iWIq`e8j zz(6-GCg-}qa*BG|XG64^OqtS<-7SpYg=c)A28StNpO3CGmG>kANmU!8pR5gc2{8iY z8)2oyG1a8yc5+LP6$E-sw6|otWl|f2GIZWE;e?kkWG+MeLt{h}PkrzvU$!b+wuwPG ztC&I$@lXF0%`k7o8qS8nVi}9UOB3+z{xYqV`oxaRPu`v_ z5>I7e9&6TGx-{kx?}G2B)Gz^kN80%?kRjS^I&vv2bx$4cVk8Kl)jKVzs4DT&Ke$QSO)2pff(KTXO{r7g2%FCjcYx~8CORMEiSKd5Fax9=oB?)onigJhKyOP zKZz?*Nn}x{rkw%JT{s%^5N)xs(i%wh!D~^7*v52QB(%Nk3XC~- zebO(9-;Uj_1SJ?;Ih&TE_Frb;@rt z@|f;ILx7?#_amv?iuxLgJ(6u_FHrHxo!C}x-{dyaCy~8Tp@Es~yA(Pl%Cz0IcwPQ2 z-sQ^9eMjrnPzvKI)Ts4tY*MDSd9<)D z;wzTD%?!GU#K7KtLJPUU+%%q4k>p4IHR*(BeIrNiqhn&+Q$3)szgHZz1ACY~oMmfK zCS{V$M&>0GZ|T4F7qrxf-~>{{pUGHZ27{>HjfgTG^A1Oqna0@()M3XReiT|hdN#)6 z!&A}GnXx2Q7|C%O3pr5MUk__Dn@&V76tw>>nCKTq7r`J48{6(+-pA`Cf~g&iYDv9~ z|GT=Qb8dMxr6KO)a|h84yoNUX1E3Ojquo8dwt_BsuPNQH10=JeqQbsMaOhR4jjfp9 z!t625SXuKoT13`hYH2Gjjed$Gm#8%1Gfdn(Lf{1?ek zugd3L|M*STjA@Q)rj7C`80`!X+~=*&mx7t7k5!@OS^8(c>F-zS>ka%E{Q$3o?Mj|iWV`;!n%`pgC`%H!QEhY zCR3-L1l-{SGe+QNr(l{9bkhenm3+$0Xj;5wT70~KCgrjs3v<)3@`XnVGL;0iE-6SV z)}AtFpd)nqdhBsmnk;#}B-UV8nsq*4`j#e(qk&U!YNY#T`h9MJNd;|14$5(%aL`EM zUZj)goJVoAU!d)%;~JWi-S3r-0Y*EqpF8LTUG$alXg2jQ zJ6tm}ssa95H7AP7j`dw_R%kj7hn@xO&u6_smStUQQ>sVrJCawds^|eT`lv5UrHuP6A2`)Mr#QFKE`jtDgS3FT_8p^Mn8x zpD2wMxeT!=P_a)TzRwsM@or`q50DoZMbwBIzC~OEu23o4Fci6~9M5M|1vb>M8vJYc zX#v4mSuc)Itq`!Tqf2msFGPa-tm%NdD|UOQY}&Tvuz7~rahzmSo?>%!tL6m z@(nCN&MH9c=cA~1fBf65j}p!n(XQLq?M_fn@&pz+c6R|kF{>(*N1cMit+a-lRqXvS zU-(2A^{@F5hmFUeGx_2stHxuqg&;(*>Zip%At7GmLYqe6D*_nK!^n#WciiGx2shp4 zcc@OFbpMGelxBt8Ff3n_ZG#at=KM4sd=EZr7iah)FZSxa3xTN_w8@7f{Wt0`vOU}= zjdc(T&+WD*TrM}8J8qq0vhD-R#McG)j`6dznkTCpRy!z9ae7qx90luNu|B4v!hVYK zVvOk}-UOXLTO?QF2@7YKi3;sZ%)uta_WJN~Way0Po8FFil>%1WL5^plbQg{yR_uWc zzx3YE;iMiXy;v&Qk-Jt;XGUqR{SzkRiB&o8?T)gubGFQ z6TM%5&)!x*)b_E#HiG7QCXBdw|C9_bPNZYSjCAblTuM=wtB?3BF;=TwX$E)eP+a{h zOzPrh;|!AGL9O(!vueGJ}{Uai*PT zubL`IUgu~_k79=p^NgpA7YEh+DMpRwL~NMvI#td>uqcQ76~$Yj+F zlwZ*4@6eJHuz&-AesDEiTHSEh`MIcy`n?5qEH8H;1+L)|w>xrS9p^)ofI*r%TnqxT zbFWd;h5tQL&Ab$&SUzg%>x;7 zKusn!-rkyF(4V~KA82LqS>M^hnT(1M>LUrfCuE8eR77XyZE^yFvvJmQ4x~K>&Yo8H zhfLU&SR>0>&IhoMj1a$pd*(6{4#x5d82Q>p+tsg5`Jv@87UW7v!se>gOINFVVjz5H zHM4rt`?^f<<|Yt!+(0Pwk$m{h81Eg18&?7U$P{5`O1RqRH{6i`);webXmmr9|BD?8YA3T6n|ZU z%|hkcMD83q>>sIoav;C|RFm_rW1b^f*SGn@09^N2_!-ZmmX` z8FC%>isuk}hL75YLs|m;8L-%y^H{44i&w33{vB^5#twT*6Q{8rmRerV%+J6{ccz&K zMLRL3s8-XhWzFE@y&=s~kl3K%tMhX-3(T#Od}qzZXN}*>$#Pp{R;jfN!+Yv89^<>( zEs5&^j0k>PCw51WWX$OvC=5z~^4xOrwYYlI+`oB_M&9f}F9?X7@n@p_ z;3Su`6+l%_s~b(K33^QEW=-(8Bco#68+f z9~KR6AaPT1{s$X|?_uZ+d8|0_vus(i^D&7=ab|C;>Stu<7Kq_4vUpQpK$WJ;ko6N1 zuX~F)w282t4Rw_{wci{ zTn3BZLL7ec@JdhkdPX0;;_J|UMQcl_-P58xMcBfhg6H6beSEg}uqRP}EkN|ZQ+m4H z_>=(t%Ja+8Q3BM0MH$yJ4)=smV&=Gc!UH_cqrQCD!_IVEoxY~oTzw<@k^)=lumy9? zPyAV(Ol$i&L?2=6J-l`Eq$PHMFLg$OH)F8w=oa87;b_S71;_Oui5F)?cO&t~6ZaE&le5+VqS};t1qYSh zwi>HN13jxNDWahb#%3<;*=f~aZ^3K3d!oy5P_9d%lB+!#doHAPq3$YE55cFDD(pAw zP&>NG=_~!vEwtcAg2%7Itvu^HSj(?alh+Wo&s0#UOq@ia#6qbk)Q)xVM8 zY41N#h3Sk>!fAe@hOi;xD|%A4yvW;rvfI-1b>RjI7=hr2%b1BAg-0n6rtF9uwJQCU zS9`D$08P;X%hHljn~ag%$TFR6ti-(3*dI8k<8@83-4Hx1REyQ879^3C_(j>APANs_)FsY%Hh5X zB90k|O$Cp54q)MjT;<^zE60_fJ$r1qq?~CV$ayu5lUVQc_A3jhj+=?n^=RkPL=F*I1`SGlW(Ga}q7{da?gHQsIiU;hr+_INZH%RqhU=s;!IFen0S&8hU@JWNUmWifNX zl98%3e(Z`|4f2W)LzSRsVIa!OAcM&;xzD>JpAaeyB!BnM?CM7bk7HrcJJ6`}X}BnZ zT)dvj1+he6WAvr?8a4`Z1+RkJ=Pd%j_xJ(UJ>q31U+$OL+#>I0+yynIY~vPEPbq>z zd~05|Xv+rbAMMVeG$gY0I4yrja_x)bd!DhhK>nRWrs$o0_%_IHe*2C? zqN*3?5&vN*mgS5mFfqwJ=J7FMBSnqvsOA-1FE|fB_xYdUgO|-ufXi>4Df-{ig5>_E zpM0vW&eryp;x4Afj^_VGWmao_-xDrneEo7cNil{I9lMnYAcu)$3k>*edjAm1O3QebYcFkN_-%@VD?(B;e8fSfN@uGA4u&{wm1b>cDsvTIoZDR8UTo;DD5>ujHQHDwcdUsRDLR7+)Nr|`WGd}D z2_#g7e0~&Sr?7&}A;eaK{B4i0f_uzR#iKpx0#9>Iw6T=X!&{mK|4ooYX!-7o1JStY zXMu=~R%Wz081!TIv6SZ>NpnrPdImyi@K9?h0;qn}gz`iB>15@fFbL(7loZ~% zX!^o)k#d>F>1_$BUQiN=b0jJ$I%1SeNsFP72Z>{PE(MvwF=uy#XP{&e)dtzo0ni*U ztPvd57HZgDbtuu0*RBK3M%MDemJIzW;y$@XSGeLmbb=^xFT;;L{Av2c=@~>dGl6FN zKt~5TLwkVcO@C-xgu9;kcbg7@^9q=mFNDqEL8V2(tw~LVTyfVf|7y=2; zu2taWdXSx2`?pOmmd*;B@6u0%fl(#8n_SZ+yLhGr=7T|*Gn4`gG5H`+6+KOifs28 zV_sZ})HLFvurf)0FIiBd?7jkiq8H9bO{x~llkJX0%EyUeBE|Gej@iLhSJ$FW^ZTR} zdhqX>d(Q4Wn~1*7PLf84USj0PzvLakqkcrV+iKcP%ixj(87|rypCzht!720?CGL!Q zT*gx8z#&`pCo3YsGLZ+bTzwh=!ii;|2Ig2}@!Iq&e90^}#Fpida;u2aN@>|VkhR%z z|LinB7dxxh1f+8xP)(Xs&OB8!HdK@#mS<4UM=*IhNxRwR1|~S2^tt%jB` zS->PlI<|*kIO|V$S=wO!^l}P^O&1NiS5?~{wtw$7I>J5MnOZF^;=M8VsIO~rtwGkW z6RSI)$~I;(rT+r`(h9lR?KA`E91o+KPkA^dt5(=TPA);4w_?AfA0vIoO$1>V9k<*p zVO}(Y5OWw_ago?KplBVO4$p z(z|SEU6)LkmG+~?iep~BP{`@|mS@qzo}VONPfKpFBYZ+t|hl*PXpyO)*XGa5T-SN;5x4%eU}u01_>-*2d!6m4?5T_4Jo>(S>f zlh@DYmgt;Q(Xedr?vWCG`I!=3dStDUCOZa*_NPKHh^D|wk4rf>=kCx^K{_{1j1qTl zMa-0!wjv_uw!xG$dp8)u!O<)@>!7f!KHT(t`qTEv{y=lFF<|HG@YMGc?iXPoYBB*! z%ln8>HA|#5_0f&PS~6XrI!0S2*n4`ec^yWk@CBUJI<*B+Zr?yCt7wPG9=k;g&c>v4 zNlPuI=%oz${aNdc_}fM1FWt!-f6pySw{sn#kwjzqPo5rmsvG?@8OaLn(k)V5Wj#*hp?-DQXqZ4_};TGGU;e z!^%0KfB25Sl0>loDD(0X-^Waas$d&{SYQcOdA5|BoMBAbgZ`$kZ5(oVgKsq66XB=fAMNVhedo>oC;G>@JZ6V*L|;$?a$7dB zz1kpYjdrFsbUVLEWy1lY;pWSA6F5-Sdz_|Pf>aKoIV|cJw|r}B7xAJuwS=-~SWvvw z;eTcgsV0sDFZ)1}V)|R>vjy0u)tSB*J?9mR^RFns0<;M7VQI&6jf23*2x1$yH>1%A zOmW+Z8XdE{eh8r;H=MuY;NPJ??vfZZ5skRL(iGgmsNO5{k9^JUI`RLex+Tpu`S8R0 zn#owXqu(BK`M%!i9VTu5!8j4LT#$l4BF-X9DEtwjwHG}kL*z#0w+2vRZUpcbq zB5B>{x;KBo}a_8QC|_Hu-qJ3JfB zi8SS_W!~>g(w$GtY5hzc7H9IpT$7t+N;HyOX1x7P3Y!_+dk5DhX2VCnQoB|A>0MI>uq zqh9{JZoL^rRr#k6Wr9?PX?{1KHaxjZudu%6y=HHGVYxAlWx0`74IXT3-Ey(UYHL`3 zJ8#(!sDvzk4sd9gvqpUFlCX5^(=>BsgnQ+euypD>;pBzCe2NoI$5sk+;oiErx8n;S z?PRST%ig*mzs^-{F>~??Nq|G;4PG3HvHWSeCg0{8>gY_?AF-`q)aJxeRK_|U8bHsv zd#1)R(cj1fKbwKZnr|gq!oKHl$8kK$(~!y08|YM>n)0X*UXTM0)Ela5!x?Uf(XJ<0 zkYZ8AYx7B|uhqe;7h^1Vr>simXj5AzB~L5Ja;}MgI!)rdj7MChxxz{Q{m|Zn$~8&3 zNt)%9^@!rH3)^lNvVr+(xEAL@G4&=Dvy^ST9ICoCV zR`zuv6(dBi1-qv(ZFIv_YE}?l#DzhNM`r??*%a^Nxg+g6-;eJcsc@B4D49(%xT+;Y zexFU<*X`^v>i^mZ-8Gbs{Ck_15&ZSe|GJV3@g<3Snuq$S$lRxh_N-VSlRM)3x4j_E z+|ICtIOSybmnG7tq!YJL>~-#Gu=50$pHke-kuURx)ZC8hxvpGoYlguMbN9Ar#=CL0 z;x&&zUQD)l-l}iiM(Kbx-LPC1k&EquvUyhE-xlpKgR;FOAH_kc7K-E!jNz6CWs^>j z1=}a;Mt$}fs!_qh%eSBGKg`k1T9u!nCbp&4u9CN;*YwfNbnmos1a_jPJ*k}rJ&j2H zqaM0+s%i>asLd~nHBAqn2N&uOlMS-1#>;4qBy{d^b)3-|)+A*Gxn>fHa@P}~e{Lpj z&>U1Y9oif|9}u*TTyB^|jWa0SD~&5k-VKSlt16gyAg>`NZBefYWSDxWF0*h17I}JO z%wAdMuqOV3=w(*<{F|h@J(*;D-ImNWUGm=5m0Zh1bCef4`b^N(a-t0I0d2IUVqSSB zJzg{5bZrQF5_JqFGGU)|@zc#t zs-t&TsSnhs_g63o)wiH5Gy$d-0nD=SIO|#lg2ISPoeZg+`aDSUpMJt|2;bXm!WaE8#-HU>F>{X0gvlP!Nx|m!I{2! zV~evk8C@gm8a3^xfC8H)xt>1 zma#9MliYSycdWoye*^S%-5I}s57{SPGwo?*zr4+U27pdvA(#R(@t_tLzkx0C?3&0{ z3XAL?{Ez9PAt|2<5f*daU`ZYkDhfX6_9&J;Mki zyV@GvK%Gtwzqtl6`FR9z{b`)#yx&I53hBJ2%luF~$&cvk<){dCeFM8S>74!pH1K8e zdCiXdk82AfY;|yhB>#T*^O|11hN{w*YD}?$3>z`WR@qd^rn2Dtd(1fq!2f}-=83y_ zINyO4c2Dy~=OdQdUSlpY7;LR9YNxDFhPANqtIMmx5k=^yoW1e|}sqZBnWzzT<@CD(Zoh4;}n7)`1|l zqDGoBbNY06x7;S9vxzaoilh|nz2C|2gzpcupWSIJP9XV|Dq1Z0dFNF6DDDOVib6W7!RDnn zJ66nM3oZ=(KHgDGjE5Pmh})MHu@j_pj{Z$MYv>3zwi!w8 z52J!y>=Bs59sp1!UzO3LwSZL73P$B5NR^b*Ql+;@db*3Hnvm92kv<}+h~0(e95x_` zNr;#;9<^?24u{G0n;&lD%u;WR2JLdhx^orMXbZLV~bIwjn;2dKpUF2A#;E^7Htv!?!(bjw*BiXUB zp5GgipG~kK4qlT3a$2cv3EkRc;w3G)#WE0Ppx>Rz#!3eh|EfOeF|sN*7!0lsGqF8b ze{X3KNC#(qHrYxnNukTi z%1TwEk{0XTdziRdl?EC}ICWXjAh&erCbT6(9=!UJnu2{Kmb!vr{AZD zg%nuOKw`Q~&qrn+@v5|yaxE{2eWXha9Sp4i&;Rje68l#M{u5v!tC8A%Iw|GgNUX}8 zm-tASor}#lxc}?cQ*L0)t$8R!8H=j#nnFrU$6$$eHVr!?)DT#zpc$qOPjdvX_LnmI z9pfk`OG@%7ayVpuRW7VwnQJj&2!YPi$n~Pp$jgMKJ><_DoQy`IJb%}j$0%dzVW>rN z_Fks=YeTp-wg9eZQYHFki~?_AghxolV3uce<+&Z>1Rzs%u@sX4`bb=Uv$C7_9~R-) zq3Lj*$B(B-axdefstn8pN(KTxm*Z70B;OF#>cc6bvWDK2!}QDp#R{7O-#2u8!J~{? zIzP?MJDxjbec7;o$Z8vRkUbc%6)?zOhbLeAY}Q*DW<@*s=)JcNtY2nHj{}z&WE_Mi z?Z&=yK&2$R}SXU1nrOS(Io+XIZC_9ws?`|FNtE#I)xM&<<-d@#)%gBf}5ohCkee}7jji=$Ipj9;#`f1DGH zB~z6SODu;H6y6E{9PYEXw|iL3i_H+A#H7~dbT(B8DrdNV&!#IJf!yha;95e>V%tt^ zndrV~GD?hmmDXN`^`Tj}Y45ea9(sGI40RLuLZDL@A1YSuWqrsKcqxASIF@NIW9BBlVPfKe!sSyNoEshEE$49VeGQpb-fw#)07k?-z{ zfrmZ~26{@}xP^a>Vk_;X7Hw!kGv39(XKgy+prh-#m)xsD?B}W!jWg5wtA5I7!~l4x zj`o5wWU9xMlJ>Q2d5#s5z*;8ashbHquc?52y&rYkg8Tz{EIUf$h8@(?K32}392$nT{VV1V>hL+ zowHagDl(TEAc$IDwcdW=5m$2>$+~!p6NW=N6SYi@oUb~o_$(BfulWgW6)?CZ@)iEf zbM@5LUYTNx-1|N^3h}G-JRUsAJimbDQ_mxW=_TILVnff#>iJvlSV!41F{9D2v{|Ka zVlj-b!0~VJ(aawVN5Wlb9aVD1BJP@imJ@*f6lqqN_yYbnM8no?ogS+t&iIlgEhHr} z`S_Q7fsE*`5w=lsY_%n}ig%g*gsqs0@^Jl%lJu};`mvbk0x%@op$TS=wKeXX)xG_6 zvyKj?jx&PtF=j4f$xZlQdrU`;elYC}U&@=tRX=Q@wM2qs;c9+C{=jxE@>s})EaG%X zhjMU7WOg-AeW3xfTb1;$&#}ggtpS$J%%2C-4oM?;3<8a^nWbD&H4Z9mJ)*V9;(|GN z3-P?LvdI%(`-aQAH#OHXDl<3k}F9FdrrjXR2r zS+Wv;Cx)Z{@_**X3Xq@IYV(fmmktkOEl(&pi&eWKCZ-dv!{BVlemB2or;#>4-|vhK zs&79j#tM~=PE?X?C4MwC5>?mR-|joYM?&$AyS7+?KL61_)r1G8S!q>=^OL(DF9;uW zq4Cj`_%_j&05Aru4DI@s`8gH6jm1?yZTbcag@GiqnBhvD)6?Ia&(LubDH7s;A63|V zBwP{k2rqfqS63S^y>bsYT_8E4ar)fE-^~GPI(BXK*0g`iY_Sw<0mtOymm=ECdGC2| zfnB@tAcr(t0482Q&gn!Dnw~cKP}m)8u*29IDB5mYJ;JZ1arkw=d#}!Hd_5ys@cQr zTy8+;YI=rm)Ltz^dXCh>Hty;aI>L4mP8sLEauOx{wJ6e@6=GTD!}iFQ;{R9tlZ~Oi zqvt!t0vk>T0QBl-x%;J6pG9mmHh%WASO@V`dZ;7VFT9`gnV|?c-&NSrq7hMBrzq~P z|1tJC+5RTYsoLI2O?*WY6K!YiJUnqo%u2=XSan%(SUGUI$J~C2j#&Tz%r@tv>kb6i1 z>aUpvJLG_)Hb*xKZoB-kV6#P}-2Wj|Jj7t>)mHy8-V2g`)L~1ISGhm^T(^ zok%6WM??+%$&E&NY~chWEyCv&JJ<3yO(>SEr*+ni6gj6Aa(I%3O_o$~eZPOZs=t=h zRQ2=5ei}ZXyNH3qW;qj#YD}zT4>JqY&-f<4uw-gj{^6r=J64jgdWdx=ztCDshZ-=BzQfe!dPS!K zD9Y{0+Ei9*O2J*|u#)rY)0@z-4Y}oDgtMx48qm~OIaAd&cFcUdHR}CZ8i>?wfPfvom@5g z)D66O>_a?$^F?;#W^zw)xx14g!CtkD>MG?K^85*Hac>Cok>Tm==_y5!y)**roP75T(n*=alrKs;GbmaEXpu(#9sS&v$IpECmnijEKyr35_&&1%n(Wb z>)tcknPZfO5)K$Bx6Xhjlv!Hg*4)f5mX3EAm;*M8yOh7B#ma0CBTdCzqp5_i#b%ZZ5SsK@awWRlVz|zih#+Q~fOEi(+5(nrjZ|SYf zFP6)TX;d52+4EN7n?D!XojR(otk|3|tV1GxCk54{mdH=5g*eM%U}rzc$I7yPo1lO9 z!LFndkHGpAs+l`&Wp3J^>{;YbPiV|scl#1n2Exdk+Bo1{iUbLSUY6FITeB*!aOXxP z0!TXJ$-CQ(&1DUD$wFT1l?C4B$zc ztN9MLwF5KB9fd{y?~oujBR*i1V<~DpaW>v%?9j6*d-#jgCtW1+jJ@89xb~Y8?5Qvr zEy+8#KsO&&-C%9*B5z`%?+2z|AOvY7ghQF$pPY6k7nm|*S9fuO>iq;1M+lTLi)}lp6 znq{QnA;NJv0eUQ+e7YErF_c0Dqhv|==MF8NZ8>Z|E`WOj^e;Z>84$cZrkwqcLw327 zBj7l86QZbNl9^Ve2{E)@iq5-*L}3M?bD7Teq(E_rJqm}#vS?Jctt(<1<=-5tC0|Ve zMZ0)YXHdY*{<<*fIeNzfF6tdm!aZcif|H@Ic*xW2`zxBoI zGuhKKmVXNiM+?S<{bTO%I7uaeE?B1RAcMFdew#dNNadIA=~hj_Tf%*#=Y8SQyVn@O zsa@_DsiJUITfnBszu2VEDGCCi5QBdWWo78KM9o~5z7jduBrwq zajc=33(8C+^y*FOOa_&P10$o7ZhayeVRP>{+a6G!bYSF*-jNh(5pX9 z#F#0JJXxfoO9?v3Jhn!!)|ug1wupwT4$I_$z28D8Ou?QDoPBX$%5*i- z-kAUyu53YHlsB7JdNn0w=o9do%t5WPtkPcx^^x2du^U=G5B}TYHT3YOy$a6nG9+*h zG8JWc-WouvVT2CNqX@a{cLoZEk@9ewhUUan0raBlrqR&Z&**Htpkb6aS%DI)#Na}s;w0gANH|*t5ACnytv;m zqoW}Q=z#|ak)~1P+oH?Hlm(9DL0xc_6o--XkkVbK zqWCjYCF_NvO;#wwbK1O1B8y@EhisK~5(DpY-6fS zMlLuZ8U=&GN`A&^DHpUgx%Lg}8IY3-jcVFxF^^(xb_sWJ&!H%LQF4i1C-C0ws7bEG z>qUK1$L`u>ms5LBG?qbCYL<7{QQTb0X@Ow$GtbODul>8rJXl0cLUAkR_zk=%*YjGV?hhU22jexRP|x z#@pNbx_KRIkv2CJ$YaGk(NX=ONY?VB&BE9}gXG9J4K^H2Yqa28`5~`{oNzxX;7fkg>O{j3Pb_kU z2NmZIkri2W%B<=%)zs7sOZn4rT&;9T>=lr1i9zi(`8_hTT@n`mI)vggmo23s3X&HQ z))AIb!{Xye78RIwP%6JDHF_x!vRn~7#-!9UNBV~8!PJXeUt=poOZ+n4daWA8HX%(DSAlD3Y!qFSqyTy?tH6jSDt4B~iuyW;!BQcJp5KbwY z;zmk}IdB3xk>bT9)eU%}>74%4!E>o`>Oe7@I8zPP;%1P-bsmTN0T8vR2@Q3_8W<8u z4aL2PXfhYm5hz#<=B%i6uBd!ya5Mkoin(JbabDY| zCRfrocF0bvq>$*UmvjKbPJ!nc1;7Va!Py1%W&)p3phz)LvKR;mnOCDlWL4)t^iLe6 zApb2Z{Ua?2SR*v%Nl|f5>&j*j+jfVCz+w=cFml1%?|{u0S5E5G0rP6H{=D&pt2Z_j!xXQh&mRjz(X#_WrH%m z2Vibp5h{hYbqp1XD3IGVAZTX8`%G8}eqDty2!)Yah@h?e;ffqAotsT)J|~sS4cWJ& zWYT(DK~pDi%|Eiq=279h-f>vDi|q4>UueUCrX+my9R^PxhL2(h^{GWf&_rC9qJ*Un zP;noYkN(7BCa6J+CzjI>3S&{ycYh_|`Fi|WC3OIEgd2yJZ zYDer1L{na%pxG3d-WhC@FPZXqSzxC4((ex-26l`vy8)++yvf!)2@x)H@Z+*?J} z``^Oe%V#W})iLdZYt;j(h~ zS!nU#(W}Tc3ko3_l!0@bsx8}6L0>M5FZ30nBt@|nJ|Toq!4?R??C~a` zT}wTD${>yE(_8`wpix$M82_^b6`U_iSBsr42m27>#47;q{U+{%7S99L&;54KgO-d! z2|NKc$0Coc&~qyUBg8IL1P+V?jvZVhn;G0WQN1z>v#BGCk~WdpcFW#W;_774p6Y@P z5qYSRf*1C=eY0a%LN9aHH)P&z^f_&rk|G?xgU00wM)i^BhIO^oE3)Ct4A%&L~)f(@yD-{H_$~18nmXgjc z@N-$@-YY2GHj&$n5!;QZEP3HSj@`(|;s5OTl1M+G5m@#llY8?>q}TRQKP(N6?zl!W zCJmcd>KBT5W`AB4<~UGK6#g&TzA?s=Ali4ww!LH9wryKGwmtJ7+qP}nJGO0W$9{9) zhx^{An>^g4)9G||x;p8~sj72+P)Ia3&mNdAK>Z83bKDtL(-~gl6;|UVxzHI-S1~?` zfV`dR+!c*%*BWyhF}Tjdby;$7y$t`%40zWZ_~hC9V&3x&u>U65^NqLft-83@(p*DG z?jWYX3Mo7j&x=)294Wz4stTL__hZv5H>J=;E3&d;a<_vh`z^To zL96-od}{FpkHE}6S2Thr-)9&cAIEw(5W(TF^MQnZ$VV9%_)(NCI*Z7msDnnLK(r26=A~fNQs%e(j7~G1fzXGL23UwZz zoiPk5xPqt0!RxH$dD>(GU5b*cL~Gt>YC(pbATlUbV2B1~4mWojA~)!g5MpSN9~P9P z!-1u3GNari;wvXH=sXZ2IWXW%t}cNiDUm55ks02mz1wOnxY~f`Fky3Qw}&>8$rXTQ zqfl^}ts_5f9n_P#1>Ss#;lG{Wf1NbJOsqtEg={04K;26tCF2^KEJCV&F|;Y=J=#Rg zL!Z-}X-ePnNOUxlf)|3sg++XuV|^Rd_wHPj_p6&3eS_s|$A9o28Rdyh!@678v)kOn zKYS^g8{@PiVxo5tZ;FLBn4xuyczF}AgN*#7KOIIy%SobR-S~a|TcplHoIKwfZ3wy3 z8$mN6nXtvj{+!qfR;`9cH24fo+Z6p9lclonJ6MM^@kgJl6Z>--asIfTw+kVB`&gvu_JRTCxFh1=J#V>35A^y2fQ*ANEDoKE3H;AWG7 z1?LMS$ zZW9tI2qXiA2UZQ5A6bpz7{=C1Bw1DYco#%0^cf@2bJZ4OCP#>l!&l{1rr>e-cBg|) z##d9omKCcZW&b(0Fzs*WM&QkcSNj0w?Gs*~7Df3>Bleept%UYXM(teaK*RW zWvodKrWj~$u$-4!mr30)&)9rHx*$PDfY?UIN|s_BF07ImYA|$<6V*r};YRM% zG{>J{z<#cyBhvdP7ao=>^mdY%Vvq^3#7022VPU_DK44WT)Tb6?+X8CTQjGaWJH)W% z2-Bi+^p7^kxJ`6f9jjr<6>OG~)rgQb4EmayQMnD;xlN@*$`y@{5jVoh+VX+e2H2`e zC!)3uhGFQH5zn7a)OTz3U4#~^+rTTWE~CzXs&b83+MsY0Lqb&TMH+c$iHR{Nx)zAx zdyl|KPv`#OC#LkgV9jEvnk1W;D+`oG^P!~VJLGu7kr1(&iefWG)9Vui&X=#`U&Tyco8*I*8oZa2?iFGU z(}%9nk`6;xqJ-T$B$vbfkaWn*Ia2p0o|^rxgItW28M7!Sbu|xw^ossQ4R)@Eq7&f_ z!G=`%zj}N@TTh&uE%dvsKH*_k)D7u=1*KQ|r^fHtpEf(Ypc}o6%TEMZ*6-+z);oqZ zR}fjY??_86xe8X?08-by{+eByPN3AaXrWZRp|Zm8o2NAYMZqYpmKWPxN?4H*3J~Hn z_@7;!hq21INR*`o7dn=djS4mmWEv$&{Q%}nMiZV4F^HOH43V^c^CCJ!H9I3T9a{w2 zLmsX5VZh%kLw+?RKX>aj;b&Ecp8MG?9?%MHMI83qm`vR~!Qv1ygB{OHjdiBF%k^+& z*1wGh*nj5MdCgXbzGamD%BD^H0P8o}EtM=yFO)2c zt(XAwtXM*0E6s@O=}VBQ3xS?H+LDD=Wr9 zU$W!1nV(s|QPGqig8K5LV7Ld~e0^rL_VU6Z=M(s2-ItKAUO&p}GIgKq-E`Hc7uRjA zwlC<3dd{*J8sbv@0P3C9ecl&OuR%Xn{fd3p<~`bdrU!{&oqaFw)9ho=7v{@iC-CM{ zJAKR-$7!RLG1rHiy5Yt^_p-Io_9@%C?i1cM>ywUc-j^N6rZ+Tsi=kaZp4YzgxlJ)*{>1#*X+5{N^!?aFi?^VZpG^I7%yUe`2V?6f;AXgqT8h1B zFtkKU|FH8&3iy1MZMk+4Q=$AH1DFiydn=(PGDCQ!%KWVyOEMKq1e=jYpA5M$u-LzH zU!X*-N|(CU-|Kb+LidoU{MB27;NzAfN)^|WZ5HDl76rQobgU8ZPp0LJr0>k54;Rmk z{oN5XPH}bpKX?&vm`>a<)&hgQ?rV%6v=|YNkn7mQ^QSe1YrHpip{hnJkS?Vlhn$8t ztXsWO_ewV;VZzn3NiTog=NE?DyZo(E6ty#hvn$2vIm7Q`1&6M|Fh+P3GR{ekF~ec+ zP&ie1?i3E(m*l~47kKt%Zl2Y{+kLfAf{oL3Zd{;CH`IjXSab5f(4#F$slYWPr5D8mbdk1k@W*Ee%CrGF7Oc1FgX%&}X+LkJYme%& z!O2FAfZU^4BolS;D_4Gr6E}N1wu!QE0$b8By-;fKh~oSn@}O>Mp%Ysh=+33%&)b{-hHE>D9dp!>JGDVa;;}=g!`=w2IuKsIhGMubD}^2i673Tb6{!A7 z;Wp8ffc8oT*Rbl9ZhY=jzI6ZVnAm`v4;usxG+vf;NkCA7Xxx)(o`Z3kE zqQ=#Srp%@r{>IzekFFq9`tW*n%QabXrq>=|V09T&njblLbINzelAv0U$^kU%L!D^j zG$0LsvN)k4z?XJCNUpvGtMZwgq-h6l4ZQ(0u#7(^G8Hv?Gf(S&HEi&#S#qq7Cw z(8j-GQHU6dFlw@?R7#P^O0jH9!T3ty3`_C0vfv+FJsDQdM9UXKB^hbHNrz^Mr|B)o64X&^TQG(X#8IO9YZ!$cSXB8*8Qic$p}IU)|g;YK9kMyTNhQ6h{fB8oB4Cmb?va(y}{B3b8I z0BmzGbZ&X%{Xg+)jH+}v9xe`5h7^{@=EohysoBHR=tZ7R#(DQDL>DYXR{6g^D+dE& zTI-z<5V$4|vds}s&49B>W>3!OH=^PdcSr@_*IsQd3kJJ`3IscI@@#(pVLxXc8-BAQ zn2ED(GnA3-trgreG?^ebcCkdt>&~At}26m47L9H*=@0U`=xyx^9D2I$`Kcdr3S# z7xZ}$6ijcOUUU(R&fP(t2xA_2V;)WO4y~GcR(gdm3P1B)09}qpqarlRhBCX3IZQme{d6aze&Wk)L+D4owWiUxP{(82tVWFzC2P!jO}H**}INt{Ra_5hv!k-HAX@{3-Nij#_Zp* zWfPE(e}s5b6jD)sx1W0*?n&T8ykt#%S!8WKA znMX(TF#_dv26U2S*7V3 z;QCrFZ2a-c*?x8Mc9LGNOEIvY1efD7Px|1Jb&ARH{!HT z__s%t@}mc~fCUYrM_3lzi7;zJj|tZam}ZwrQB@WQ%w%ZJ$2+~x64Cli3+q=W8A8zwT0}zPqYb&HSUf!F>-wXk!relz0Bw4VO?K;)q-YfS940EJ4OA zqlQKFy7+GH7vl4(>@GzqaA^#X6q`B-Yn8$c>FSFsRD0V}ZEaS&dK@Xd5GC_ItkPes zH2C(&841X5NPV4m#Q2%bx$8>meJ<3vK%tboT3V{-8aE_=tn;`>pE^dnH8*4{KkSWQJj6_v}A)Yh)!@%(OGtX zoeR~#V|4gO-ZEz={fM%6XlDogApC19#IMmC?5E@sf`35jm&cNz2XJ2C-+WOPM#`nNP0H z#ZR)%{!g}zQ{PY<*WQViHhu%Q4t^6qM*@?X4t~?xwq66fj_-axN53CX@pq!n#TUl= z+-HE1vtRA%7C%MsH9@lN!^Y@mB2%A_1lE3l(mA7ofk*VGuHUz?wwP;)7D>F?lbJ29 z^Z9*?vY+hO*mgl-l$#@uVp+~KgNOU^gO(+@Dft3#&u%jvyALIj3(pbyIy@k)Wnfg= zh1iYD1_9VDov9j0*AgkxTls}(XNp2;qN%x8&QKXje-wp{4*m2GD!bdZqc2Yfl3EWs zJ2Nx!0k!>+Nu@V)d9YM%&c3L?SBP)BHTa3`*z$3c%Oz|3iUFmUwuU_hjnNGx%yqc( zTIWC@#J-847a3tj`Uf?94$9s?mA-@YDBu}XP~HW^CmC^!8Q6!1tf+vTbj<5=k#=)* zxqp)*&NH}Km+6tpJf#NV=0F*zUs5w?8W);jPP|JWx(-i0G|6fxws$r3saeZ+y9reh z%N0DX790K)G`kG1o#J zYmXgu{U%&OQZ8U=S1=1U_fc&ee(M6fY{{9w;L`8#>O8Ii3r_4GIl4uSUJ~Zd@zbt_ znI}LG|9Haqazf{J79s?5*pfV-jM7e!qHZsR(@z+YC&fL_UPB)07aFAGU8uQ+U$mzG z62&^fREgqeZju&n)!>aS+~yP#eR%#>Bhhnz=4c&g&B0rT5(n^`YRza|i;33E{a#vk zla%L`jWGK4))*^F>52PR7u4|_A)B1jYWUOzQhDOz&P#yUNl?&vLTq&ZyZ#jm+?{XK zA;%BVOW!Ergj(kD1134AmT~mnuHUjkLz65rSx*z^C8mk*qL{i`U9409RdO46wHt_| zTM)F1@Zr{#s4MprFQ~u4*dY9M&D`cPGFMmQ>1mGk1;r`ge-pZB+Rk zay|7PgZH01$GqtuVxTUjew<~!->GWAs@Vx`@R}D-)wUs|XJ}!h8|a&t_?e1NxpK2o zhP+#QBb~8wHe*kwT~p(TNV#lFqOgQnbv2TaP?Aq__s$GA8X5i3+V&aAI@akSFV^t3 zRCb)-Ie;bs0BC46bZslAKTzev>!b(ieEAA)4XIm6a6~EEB;{K6JJYZ#R^mFcZeuCB zZP_?ll^orW9MztMzp)(X47sfdp72VEdA8cJB1q-_9{E|tiJ{LqlemsoG#56dvB-L_ zgs6{h$_jrHb!2kAVGWH{ZGARS8v#>76&;HB-jRhN?`3-9m6Cr6xxIFtX9uTNoUz3} zla*~pi*SI^-k7;}wZ^Tt#C=+en%~%*o^6F7-?(P&ZUxkDXAe!YcZBNDC#zEhNzc)~ znceX)ju0Bj^qdxib3ED>r60r4mZ0Woi^(88c0L<6+^Q8gBZRxtLwCi-Ia~?T-xP`* z0m0t#)kJ>oaAkwUy-_LQyc4cOM_+BenBon=l;bU5#%Wyrf*;3QZaw9$5=Sf7Hb~h) z%KxRKa7a7i$`L8@+txVLRXidkMf4i|w*%IwoFB(=7*7o%vGmeu;mDp?0*1bP8&*zT zJU!&Jo*h@y{j7Qy8Zz6pV$#;SfwBx5{n)KJjp#`6h!$;VIDj^3FwN|qpqa`br+eEo z?5p>F76LdhSa`S5FzH0t+e@%dttr}G)3|F|!>$nYWTKAM3R_1WODhmoN4u~sy{bG{ z!sbgzS(iVaj=nGXpJ@e^P61|JB*2rg0!_8c(gp39TI?=n>M^Z4?X(7LhL8vuTko7; zQTO7vmtYI4zS`t~W9%qMgy;;)G|A?zujtd8e8Wnu;k~ag{1?GX*G|FTcf5jag4vaK z;t+R)J@*VZ^H)@wTP%em<@!nUA*_eab@LIfTr`Y#>$Y+8(MLXrmba|cGbclKyqial zTfj`{iMMapA$1?l!+TC_tx!+i-)ue(jP;d{{eNgk5y>_YKCM-MJl1elr1X6~w0hk$ z_a}3tyaq_lLq0Mm&Lkj-h#OwO`}T1lQ|%x<-$Inyzlh&!S*~fBv~jj9m^&_&H$4rj z-NVD=8q(CfA-KX@oRi!(vq8UOxFc{`@64YI>BQkm3D2L4PAj(6NhCRID6v{eoa z-H>~U{xS-*SI{R8EdqVOKx~r7eoU-o}d*`%9{w zT+_a0>4&H92S>n<{6S^%t($DS_Fm$Hfz*qkjM#=Mw_|$yMi;u{M#}YCL-bXP^dM?- zssUM8cMpf{vz}tnsDH+otWIgF#iWh8d(#INg}p?zL-7aIVF-^*Sp)^+Kgnq1-OK29ry>3;9`6Mg$n;j7J)_>t>na z!Ul%(L*R+Hd{qQEjFR^(48}Z&t_ZFpj*X&Q1WY;1DS6v5cU6lK>~6(R8?f7SG{y-T zx9b|edrjECB_6mT8|d{bxCa91ju&9t6FRrC64Apq?&IUdxcp2(_KH8Kvg51r25*pm z<3QrwJLtHBqH*@l+kS`A_V<|ts#9LvY>5t!Crh(?j1VtUGx-u-4ecFl@|>R}+fI^e zC(+sW_t}Sp*&|B&(oZ~P7Tlq?QDd}FBdu@Jl&p-vi`G2*dH#E_>I13li$dm$&i*ZO z@6k;-zn7cn3;&1m9KQXfcY1LXq~xa`^_Xgq&`VJA_Fg#8{|n|bDDDH%Sx z>#h5*K2=XQMXG-zf35i}p8>|}+Rf+dX#B{Vi%BL(%mCY`DsF;p=7tGAXPmr%Xlv1U zZ$m-ZW?vt@0;P3TEfGw#EP4ob7Vd;BHgg2D?kz~MOUImQ&!>Wa7-DON+~9}#;Qlw7 z^_SD$Q*J2mHy7aZr0{QVj))J?+dDn#gOv90AeLR1geUW5Gx5Ci-^MWKx3kThhskFh zrJ~q4wgpM@ZfW$h{d>nRJdw96kvF-91a8FJonX1I&bi^f`0fysdHN8CX}q@8)9jbCJotk*1}|%h3ELlOu*EJ25pnpJATMV`h{!Cu*)Gp94a{ z>cklNlZiH7U^D)cy)Vs89Cs~X{+yP|?KpG07SlL2*VB|#X_9&czP6KIe_WXF5-&HA zrQIiUrksp-6Hcp`ECmkWzBf_S!JLmS4y2Y~Qcp0c5i8r(a;9p7--4+TuQC7uN89u_ z1Y6hiGHy|#-upX!ioJx~7u7I{BWu*B_J+|Pdm+*X^pi|~Yam?LPMBod|F6mf~^_8Mv(+ z52$u?P+p~YhFi`9;AeoxaZ(zCAnd#X)?EPaZXo@x*o{Ag&zZYGpFDsxMo3Qj+nf_@ zUqlWnUieZnKTs7LO&{o8SygtJ@J(KG1qfo`l^ll;U;QqJ!#K8W$KKkay5zjIJ3dP*uG*bc4aYJ?Yxv)avc8AvRf0m&gmS zk)Gh>1Sdi*Q{gRZKuLSQdK*LRGNHR|1XPmQSKbFw^P$^ULT+N~{;*>rM}TOZ&@$o!f4e%7Rn-RouaVK9hTrtJT&;4J~;)WjWobR7p=#XMfCF*j)4F ztniB0*zhC(Pc> zKQ1156F)n}cEt5+{d9#Y7e5~P&WX&Q2ea$%*e!F80I5iE26xsExoCh|Vt}z4G<^8E zHOsk*H{73digFq3+s}uIei`}C05>s^v<&J=T-W|rLcbsfJqMkm2U(ej90=! z1ZF;nmIWejkKX}yQYe1QG89y5{KuYfJaCDFu??~@h?Rp?BeJ-Em?S#$5z(>4ImO6U z<8G_`Xpikk&Bu@)f2=V{qss5PQ{#P;9n2Er=v;FL0!mLHqce`hjnTSadKXd;T>sV) zG)O&9`If4{xKR&=hvEnEJF?%4l-s<(Uu=d+ingFiVT?0iM6{>!xH-^jt~sppFQm;2 z=hCr>u|aw*S@=OE`?Nga4}XXivs}k8QWwm~?iK^YO#rt$eOLec9Pi67aBzYlL@s=E zYf({q1Tu(cM{rcElhp}@p_UAOq@(3kUl;C^0R|;Jv<>}ZuNIY_PMU2O$|JjG9{TN= z9Wu0sxDa+wZ46^C*UrhW5w={i7$5+oYI z6QO^AlJ?6pa=dVAeqf+Nd<9@R+sWNpMS$)6M*4uC2;3>;dqK$v46S1W{ooq1_mJo> zi34g4QP~tb;TAUAL}@T!kG6p0ycPKyL@vyy^pEZcpI3Bg{}oZGfwV=xXJo!)lf5Bq z=!6jNuRIbK_zm5964&JWRt2GwjGnWy>qWi(MFY!MdUHM29u+c&!Dj{_F zjHme6k=ywWVZmg`hR+wdp+&$-G|b&ppJE|55Xy;z6xX<>NOumSWlwO2r|>UEgG(=m zbzG!WHmilvu^%P7uI>XLM^X#UhGF^@Mqc->EJGk>^<27^P&jZv_s**D^e4H< zRcLIjs!d+1UvuEbeM8@6&7VtD@UgysmtT=|p*3E^Lk#>h@N8jlLMsi41Xqt;3|Z&- zZK6M_4+I}hz#7=l*okU*NUH86Blr=ht4aDuDw22y=p=tjWjepACwC7V3A^ifhzzY! z;Hy4CS>eXQjTb&tMU1s6c|^rTrHQRC)8zQ|=4@0vg=aX;2CFQBO8)`-$bW#Y#WAV@~*UG*oK7Cs7MdPxVw5AdbZNb;CUKUCeV~~$8lm}BDVfAFQ@ty<^+6QyT zFNh#Qiz7j~iN)GuJQUm~*s~+Qg}^sGZ|(uUyjx}m3!!F5;G5i3{Ew0RaGbBUe)pE~ zeMmH=u0N`vM~d8^Dq2m$tvDd8*hdoQizk#Qzcy}Xp=jq0NEh?6Qu?VaKKa7u-RqQ;aPU7E6uwzSaL%UK75jBiHi1CY- z``}7H!L~o$9?mSgH!(QCPRPQYm@Jrm@9>s3O?pKh#*P$UpT~2;=Pb2pQ>|f>*QDKR z%#na_VoN;bokH_kuVE8}CjIy5MtC?mo7((ux)H^k z5boMbOD8vvw^!f81Zu4n=k4>7a_TcSwJ>%{W}2#ceD z1C)gP8HBL264H`WenBbZ%_>m@r_70B6@Of&e{T|Mx+eL4eBS%KWO*&~K5sH#qs(|e z&kFvcP)8@GfgR-^)5V95t2g55@3$3&+2?tnAnC=U!S!!n{H3t+G=?_ArOzk~wq_SKg* z?$h2ueyDl+owp)H7eCM7S2ui8^W0Q*`-c9m4yug}oP&KM1qkfukqsPkFKV>G59}bC zU&G!=n*EJosGvNH@~8YU@gLI+6(Gx&E4-3-+0ZgBG|%bD$WFkXb=oF+h!s<4x!qXL zPukc=Sc@d~>NH|VXDo(}jw6X}FAyu!9;<%L9-#9aF_I$I+iRQN8V|7Qa>+rDtzGY3 zz0ei{f8{#0u!q=;{`!T~##*9$@XQL16jA~u4SXG9;@`6pVgu*Zo9B*lda;X`_&H&TEp3*{t7 zJ7y>Hd5zyY_bJgWdtiWV2BD&>4RLa;>sP+2zEkVO(e#B3 zj@RUv+EfN8YI@8ca!gxWJ}lpnAeSFP&APY;(z0G#b^vws>7*wN82FA<6jLgQTO_78 zoSFJWuBac(Xh7?W7pJVjD`jP;uX{e+tva4`q5ApPK4KBM=;`-vVf6N&! zkCKkJI{&bx!mP?~nTr)nmvuXYYq7U9l_rI%z7{V(Z_QY?WBoDR6YE`?^sUr%hSaKe zueVL4zFiMVA=Ba<8pru-pjd__O|{fnd3I=#B|tDkP$hLA_{HVcC*52$;gT3D;2BCr zupu};4lj{^-fCN3QC616@JK$L?m%Pl#7N@G4BHap2>s=Oxkx)g09+q{;Sl5iF9n5h5(0JoB z$yk!BNq7jzrVgl|kAEIZG6$fLCflkRO5x1W2aw|mabCxp5gMK)jlnbvv>woTR*YG?#2HVW_zAN|RMPc`d2=Bw znQ<0=0I+O^U)onmRk{{M20=q2GgX|hJ#~B`blQWKI*%R@5#H1xSo4mOj=qx+50zYF zbaqVfy3S?EDjA49n=Ujn*KW`awb})S(1BY)rrgAj=%j>R9^0l|;`#usG0(y&!$sM; zK-Njc+stImZW)x7c{2kI#zQTyU=#u(GyfFCV#7O*xZNxn2Z0@h&vUMgjg+o6p52QO#r4BeJv&a4H3zuPC6keYC=^e|k3G&=F`wD5!^?J9X zD((HrY3WBH@Md8U2q$acU0R#TrG-dGFExciv?V)9)@)Nq+8Rl9=Qk20v3Z0r@Xybg zxG9}Vd~0(EKYr^Y4A8HA^$Ml2THv?l-sxR!m>5&6+oV`Wh!m1mAHONMv1lelB|E!{ z7t+DO&jDmc0ET!u{*`INg3(Mj}N&aV8%e+KAx-voN}+XBE2W z0J02tu`NdHh$ZUVP+WH`J(pPmuAD8NLT*&NRsNxc+|tX7TXHoqzY@pm75>dJF6N}& zVNK@X5qIA#8qs|-tB#w73Q`c(JSMkqsZv=I;X4x}Q9$zR&K|_%H9tihjxzRB+T=r) zGpEAF`AU?j^3?j(YNWBj3119_%evv(sa03XeGEQtMu+S4L|MkSAjfO(+vGloh_9)S zQ2)P0c9t3=dLqvSu+0Z91V5Fs|MD^o82;yo?<$xo)XYhEyd0V=p!@nqQog``b_mdqM0DHe{NC>o$<_YSm75n zkO2Eoi4kEl<|*C}W`rK)KzqL@3rj(c6P?UDiXVG{WV}9fdO!YDio%7KkO`bh$1~>AAqDoiWF}&>L3nJw16kCa3MA z;6UI?FBqg4&d_p4)1eZD5T!=;v8R{wCG1a1`1aSxE{vVYv8Pw^HS8^(^DS((c@~%O zp~xqvqp|504V&ULNfP5HnkGsr_KY+yvnIVduyzo&O9{KzemeHOGE)=1`QFrS^`C3v+RvLpn17!W)4$GnUF0(~qj@N&ZX{jF~gQ zBPUTSS)7`Z94i{((qoXHGYssLTQV%@lat0{#n!|?7;cqFT{&ZrglsAS-QUU{lL$RK zFY2k>^TZ>A33yTwPzF9zwwX1Ihzp;OOq(F-n6x+XA;C2YCX=1hafYs^d%K+>YKbRM zA8dm!7K)2-P*D?XzZb(RftJi@Fm5+tHzm}~Xy@BALLg_B3pXXR6fzvop~cQA7fzq$ z$ed5KDr(_Xhe$QZ&h60ccXSyo#MUblZa1(?ZeBSVCAE+WrJir+E7>dNQh`33V0I@$ zR6kW9b>C1rA=Yb&(=8rkA@pDsa&R3>dS5wb(Ea-b(8C=~Oordd8-yk7;#CzT$zpP8 zgl7hOPH`sTdP}lfGE6bp5gS*z_=J9N#WRDs&R$G1f>NizFOlh#4&@B=j{O~pa$S;x zI#Gt`*>POIIN8*u9{MWO9BMS?w+=H(0k!7y6=)l;yl;lXUZ)=lCiK&s2>KKUPYx56 zlN8j(aiP7H&-QOO4;}{WUcEdQE!Zm5*&b#Dg_1Vq`KRU)?x7JX8u*$7&;OIk0Lz`r z$JvMVQVYFb6ORm>QO>M(R<(Qygio!5hzaanGK5-WT1w?;lp0KRxrLr5;IPOD@mn-3 z|J^+;xxo6-2tNUOCM%bbzqi4)2sN+IX;Bj5x00_Hx4l=S`6K!rBpjMhxZXEX@{k4Bdm#1&p($hh{#{Kw;L_aX7v&bKLHkvPuS8SVa|@UCLQ>#Rj}vA z1HqSRfQFkV7Rj85pNzkSZWL@5;Q5ip4Yup8EwOUa4x(vcHHh zlh{v#F1?VFMUQqN{Za#O88ZAXOQoC=#f3vOj?4);oZCf%T0)u9LD|(iIzwpiN~OPi zcO%g^8J;$fC0l}djgHxcLpILL30ZP#iI7C%o^qNE$?kZY3clL3{aI>dXF$Ti8gDp1-aJhB6bp)?39 zf@w@=CR(z;p8TSIf%C#1R|Fz;+rI&YU6BG)!JO4*W5cehB}%P0s6aPXTK`UF{w>!$ zq7s1>{iW&kyWQOXP%|R)9=ED^f_6kPq|vXPw{C13#{6;MhcQ`02zLH4s@mrM{43Z? zGT=B+r3^Uuz38#ebXu=1L6Ul$=&cfl%i4G?E`R5TGs3U*Ei`YgJzWHcAY5#^O(FC& z=+fE`DkOFligSViSF;Kv905MFHnv6dvpTf}+jMzA+sxdy!PLY86W&9A!MZ9?yxJUZ zh`HhZLAa0h*>Zz|wTv1jT|uS&@j}*V%CYsz_{h(p{?wGv4Sg+q?wiJM8`NBfal5&0 zh2dV~;+!dx5*8h zdcqPthQYLZk8r$VAC;U5tU9xBiyMa-RUDhCVMXCAT3%-X~Gc>VQ*8^V8Aw4Fi#h?8&$ybsvNFydx?FNX*H?w zGqYf0E*ShfXVbgS_b79BCf@=t$h0$Qwgpc18CAm@pZD)-xx~F`2Q%lQNrjUz22+41 zJJt(^w>vHf20~Y*F&vL5INM-vae$PCfD5{}2>KJef_ki?U*dA6VWh$+6%|9YyCQVt zI*9)DPxDr!hCa)q0ewX*hj&W4+JuaDzRh|6MxW{*+737}dDL$MZG%M=Hs3uM5>TVAAqAB$eDKB_a2U>3$ zAKu`Y_M|SXK(Ipx(kPLq$$I6+%Khq@ADbvd_~02RV*Q13jA5attb)*aE!>d7SCld& z@wlvDe7*?>5{K%KOX+e^|4-(Qp_!j_Bf$GzonhdM6?LsQKk>%@Y5ncO>RG2?#MweINJ0l#Tm3MTR* zfwy6BDS6(KAH9|WPi7Z@whT5b7jY7&WX?!#r%GW$pd^KVJ$&bN?({sHUNLrJdInjq zL{S>wSCBt@AQWIusYYYr!x1n&0WJ(CHzdhqVXhP(#D(v;2o+Z;7f5(+f?2|47^MY` zvQ(~6lF|>m1O@}CR+(HUQys{a%-cc-h&)`gjWe%ACN)mK;c3fT?Et}b{&5(-x{tKs z7NB?3(hb79DxIQlx$(~;DxGp!|0w7op+iD1ipAz|VCt>cNdqXaYPPk~X$5H^s4YRb zHUqJ^aC+eR_gf-{RLUw;u?>Q{ka8@kD&*G?ep2wH)%-q8w{^l7IQayb-w7$^P%YuV z!8iwBKXjh0qcQFKmwmcEeh;4VY;?qzWwr|&Gs$ERFMf>G=1)wHb9yY%9DpCvCk;-w zhgusj!J%ZAmrFbW2kTfg)`y0xX}XIYQ&p^v7DW4?V#Hu#kVae*V1pZu>CPq21smmX z2n&LOd&XvuBHn`OjxIjUc*_%`W3VfV+rHXIVE@gA<&IVQG22JY`HvXHZ!+Erwkw8s z1;?FO+?MIK6!$effSaRXq3`E3(bvi8SR3%{FfsJTDSpjx>pQ(}z6%1t1={KZ0bB;+ z3a*7B%+H$M8fFy1@>%ZEbN)*Uh;=%Y1c|jjJk$Glf*Ao#c86FqP5uk4Kwe7o@? zJW)5{gL$Q=~Mp z@Z=};J3XlRXA>kzx)q3eK)M`x(5P&WFpisZjP3V9Phe&lmk)@d z)7LaN9?%CHXPr8IWMURRY_(U6iD8qg0|npiog2n&h#JkpzE%Bh~uobL4%I zI*!Js+TO2LcG(oI?7Bgf4APRAEZo8sp~On<| ze~GiH`~R68viAQ|Pd}QsLM|58CZ>)g|Lao8)bQs9ow2o{lT-B%WEw>rmG>Z)gIiMw zS&716rMPGpA)}aJk)?<-oN`_aNkSF}w9BM1XBW(CWnEW0Ahdw5NT^z?+44>37h2gm zga8pTqZ0Mp^HqA3@^6PsyJ8CuMp`@$Ca3#_#Bb|@IbnM zV})r7j|u+Y-Kh zaxRdlXciI4{k?Z9o05jDuVh(pu=7Y?&afvPhbtx2oH{nA1n@*%;&Z~?Pl*lQ3oD+* zkyQo6WX1k*E#5t&qIHtnf>H$o7F5gZJquAq;$kyR?uJ&iG?{L!UJpFtURILzro+H~ z;2cH6$ao~(6UXPfVfE3@aytyN?Wnn(V5No>5g3k8%njhsq@uhsN`P5ITJvP^hJ9T) zbF{zf2tafOe7WwgqU?toJKI95Tcsb zA8FM4)dH6%@A*Qjr9awFaR;10MW_3R*a>57bzuM|3Z1T3;7Q8J0cDLXhVQCh=H~a~ z4_}5Y{!Pj-R&@0nv4uv8x;tht-33lQ{A;Lwg5KeS-oryjFDDsv zoq{LouL*Nx{E0fO=#OKc3}s0+C^S{c2B!KDbAp>$q)YxFkrAyMxEvKJZ5K?9*6e^+ zQzW(Q!6MgfZTztt!$_}Sj9(=1H+<>qbJ{MyLCSZS^ar`li52AQ4B&x}FN|e}Y)SQH^gthw1s!g2=HG@?tmsBxyF=$TrpnC=W&Zcn&F1er&q8nidk z$2(hZ{+(l*;P;GQKjl{((dkjlUm2v3B+icNs@OQGj~J1z*78Db@FR9DY27Lm6H^_U zxlF8$_*cL(P*x06X(8oG(mz=l>xZz#4kFg9d^%^5ik{n((-WM-^vf7eO61~Qva&zj z#I-gD3qWfmacoy5swT+H=YSs8hqW_^FOdI;V5;pkA2T4oe#t@nR}oC_|9@Ojv9mI@ zwebAU(4s7Dw;+J{#WrJRrS+CasqkAMU?`xYuO1B|kV-Q`su&Ph_RA()wsChgxx2<+ zU$sbx6kaF(MKMfslqmT$TEx-JjQO6|>_ES__xsoGF5@6IJuX)c0U0kA6nTOk=A#i7 z9;H0joxnp8F?=w49Q-5P;BQxNBwP+H-$glbae0)Zh23+Gs}KT{JiduC*pa$N{ZsS0 zf3S_l3C+*@5)3?l;{^&c2wC#6}tw5160?TWu4{IbLGJuoHT`kll5e(_uq0%DqOk1ym49{MU7}r zMQ1R)dp8jh;XeAVQy8DL8&q){WA?erOk8`}4B==U{7%I3OJPnU>k zoMcf6`n>-=$P5;EMmNZwk1HNNQJP&Ht55pmQ;E~l%;UcWA7fC|EHE3FygH%2uu*x3 z-dgx!%@eAI)GmL7SJ>nlT!W_GllcxdD{peNWKvsvMB2r^F?%O2DadkKwS{Y!*I@tH zo$?QElRjZ+9MhL4s^!$XQDl69{d1_5MJ^Gad~$G-X=AY*gNy`S9rD3u*}WHo^$Q~M zlV097jDb1#O`Ar)qtFH9Qy4?P{LgVMhFz8=1N`gPGU$IbuKye6OLa#J=l>kksuQ*g z0;s%+MNsK&^m(+i=+K~lLC*it#72k)QGtnCLqio<U`Ge8y(j&T&k-_MuV{}0yQF}SxV${vjKi*4JsZQHh9Y`xevUu@g9 zZ992+u{r7Psj2Cyn*Q?d`{~@e=i6R)oqcMrwRg6&1#i-GuR#w;-XZlM-lE>J+@>8{ zu*F#}qh9SkjQuuq$Q4IS=v)ljpe=OHN_9tU?Ph3W0px*F9s|UV&twA?Q|I{#FAbtT zbhOc4K>e??)XMLiC>GdXHQA{~p*TtaNuqJaCN*#oW=m~9w@{;eWbkP=;p|3Snzk9m z88Og|TIM0=*NRZsH!ft%xp)W#l2D@1VA|jL=uoRICIwz^fF%smw126)r0Ifo!;aLb0guOpHm|8Jf;AWK!-b8)ufWl9^Q0BUP=bSjIABp{Pp9 zYIZ3t7pedq%=`6(XUb}Nn3X_zRmF1HF0(mxd?mQTS zYw*w;IL`j3k}elB(yphN3sG@7c~l@#{6V7Qb^xknHn>h}k5r}BVY~JDN~L;S$I51H z41LZ)jO|p5NN^eWriMd6ttn0qgOBX|wA9?axaJ*kLO0OsrU)Hq%m~JKR-qbGL)Q&R zP{@HZtU$36Y+6~G4W;nw``C;!j$k(V4q?9m$@H$WkHDKqQNck$3)*j2VA5k)e~Hhr zZ&JTJKU5PVW2&WGD&E1Hmn698Rdyor&3r^*FO>A6AuToJ;TH*qFDYPrc;Hi>ETP}S zaJbu{qdXqCqYfVgU9(MO2B`Y%L!B~^gmHo@9w0Pt29qf9e63-Z0QKoCRG0U(CAj**`ikIHox)o z_gPJ;^ESu%I)}$5eED|uPZG~_xBJX@)pNG@?%eg)`#B1b;!LhNV<*{~+Rg&jr48J} z+oU%rUH{ICV&3yXY^tDV+4e3r<@584&IahQhk-^NkLu3(^^Ph&ye>Aq0n$~@^6Gp9 z0(Kv!sr{3|B}Q7>uPt0lC>%p`Mq2L8Ijl?g7Y;WF*f}iN2!8&6E2Ft&cuJGP!R2l| zqXBa<+la>V(-z*n)6B8(LvnMhDk+xMlzs;A4jy`nP_42fR18c_oQt&OpGuAHSb^;u{2nHh_wWu>&-X z_Tp?rX{MlzE5SnIxrF*?aeH;W9XbEta2anKZ(keYB=NTL<~4ETwi1^SIr7plP>B=i z*EN7Cy^|8}qKtSV#BI(n8}u%}FO)ZOz8(NFu_j2$J&?xakV-m8?y(-x2=SsAIwSa8 z;=q%ZKM!oi*biTfNo#of`~cRWgH}m3>!U+McED;zFT8qtf2K8qdEda>SCNUWR9MS04R3o;(KZeub0W|M z=_dGKcxhvZOD-**q!meNkrH=g&m(0nE{i13W34jH>2QPkxj@UvboRFL(-Omis$CPx zK~J)c$-qcs<1CnStH8X0h{(sT2wD*0hBMYj)yC-Y<%CxhDOp;RG{pmz6-GP6?@Cis zG#ye^PkqSdamJK5NLY*kfhF--+%}}xaIj9*8uaA*z23bw!>`G5<$?BydI^^h1%x+F zb*=5L&tD)wrjk&}nsV#)oxuwu5Oo8{ph7;o_r>!iXhzy`Gnw%AhRE|Z<(+*&OEc!N z0Uw)2stxXY5Bm(rD0U_duS5-V3`0_X4;Ne1oYIT&)%}V;|lbR~uYKIeb?bIk$`LRGmu@ zF~xjg@k@uEz;5;8*?WFcw8TxO1Gnt9X*rVCc2EcJ&^Ep(uN)a%i_(O{OJGjFD9&8r z*tK!Z;enNPIeb@8u}yz2!zj%l{i1drs|VzmtAhDS)(yGB>%}vE?9X^{Z_5V~?0<#x z3YJZO#03iHNm$>0>NCajHmnD1=e3qg3Wcjy53DgeMe|bF-D1TQkeUiG*KdiB25S>h z@K+dUt97Wdn7WjMZ3vSgccF$B6!IoQiTqFP%O5<@|w9ywE2qVjn0;v{98|%u#&`VTVe^8;mKZD5bxc>ctG|-yMur$UYbI{^)*K$f{5_)&`@tJ>#wIi|gSM z>Poh`lk2~*94)se@rjcJPN`qKoq}x&x*cs66;qE=3~@jEa$KmdF;evO%-k z6a6E%d=hT4Yu&p2&rC|YR#jaXD9x--3KbV{EzKbyMpa%||HLEheRwE*AFl%wSwSR> z&nrz6G~b}rNK<>Tmxxp5pgxSJPM>{^;1k609PBmm(dvlSR`I^NC~}b7`!io^c)z8y zdYZs)e(O)KtgTbGpzDOS>=OKMOU>JPWG47IVFNl@;NIoqOSjeSCU}ti&)`?tO|NuLs;ww{4<=)vdiy@ zA@V~wE*wdIN3Ke8MdE3yCvrAVpGn-H0jKQ*-MdeN`r{zdvbf1n33W|xoAWG z)DUuQ+jL#zMYU64X$R33?j{*=05B7ooja9SdQYO94LrH6x*>u$Y*@5~f$uS!;tOhT zCh?MQ91ov6Lf%zTPl~BOzq*KW2?wcNNYQwi1^)!dZV4K}A8zObR*Q(S@<>@zTn4+! z7VAg%Kc)7!hwQ$tPvozwF1fEJ^VP!v?RFZe8B-3_LAv}~d>mfGiQU<$G>?h!(-ctL zD6A5g8tFR?L4*hr(;FAaBCH=U244D>8}@uG0vyZ6J$K?v?{MFX|Me_h#DWZc8$ofi z+0Hq8Q@cM+&ka#XP>i#l^m2~4$Oth4Qs;-Ok_9&xipcJWES5NAon1;Z*fqL`yXtE= zPG9lVk-PjSIFYiQ*D;E4RN}B5_46Y$_K%S07N~j~fSE9Obs#%JgBdC?Lxqx@ya$5_ z=GF;4jA-`n->`^vvFQ&U-*U~Iu{KR6dhvwq#9Kfz_#U;X4;%ANU|x+_c}pST!0zcY^C%o+SL9MYV8)GV%ChHxT^7dUsx<7+57alzL5I%H*eb--M7FFs={`A8f{r z+=m}3S8{(a>di$gEcCV2M^%{C-9ABK#5huFyIas9R(kh}E9^hSdKbZ5>@n5j0WeG6MNZU5R zv9e`^9JE77-6T!2P(85VQEirFkuWzP{Ex)3`UAh;=_`)SFd=tA3492wK7q`(m+ ztV^yRl-zMsM*(`lac2DvngLowOsME&LwlWuLC-f=0tcVhg%1AW0GfQM;k+5D7fuj+ zfhuk=F;@MfVg}q$dqT`3brB{uB-q3m43b(yKWw&Jq@8=Fk$#GF{I7uLn3w39;i{K* z?3J;w(upvZ^L_9BIrt!RdD6rTQBn+nRqETq@`dP~6S?S~BGvH`LywqY8_i^CWE)d- z=T0}F(5U1Vfsth?=bA_oM1qK4W(*wJwU;SkGkxSH^Nirxm%2wzz`B&}O^0kwDG8v? zjvQnjfSu}>XjGpUOHkHBJ?bYdP^at|+|$6U=|S(038Ac8?tMDspDTx>t{#2077s)~ zk*rG53;OUFMO(G#FS#*0wp1lc8C@TCsb6*r7!op3{17=3RxedO;XHW^2Z24JeuZSc zxMQL8P9tS74Kapw=wpV!V@7t0L+p;Z+li++9td34^{dBMVLRBZmCY+8p5D337M8lr z;F;?|J}^x$T_^+|MCE(Nx+j#NW_gb99uN~@M7XIVMlqtTAS+>Y^x~RnhD4rJuqJ6D z{GA{p4KxWO!wwO_t8^@)NLpPG&Rx^)1HM48?y3}59wC6iQS3cs{2Xp^!hELTvJ(iG z6P$!^xv_6_)={^acjobTq-e~eIr_od*pX)3HTe%W2GfRZ#lEYcd0Ph5MqkYbyx$p@ zgbV8h2VNP`f03FxOuU}?AvViGZ}1-%VBt|jd_`r;U?lh=(Y;Wc?=fM;GNbiB5|%7v zF1VVEd&AG8RH~(f*eF6P0N1DS7f`gXy&(Q_eV&MqZz z^H?>`YtK4VDZnU)9Yt$UsHsSSmMSjmMHGYD%J;d%)%Ez@9h&YJk?selb?FM*&tb^v zjRL)H-#57v2>k><>Qy@Q)&e`K9+L8o103tIrZG0i+ex_i&nhPctJ$R6VB*_*|pPP9i(%r0L)L~M z&$cu_+80b^okDT=3;ywvpzil4%1WJozqniIr1$E&ZR5RdOZzj+nz@GcW_sN&liBa- zWGJl?+A$`$fc+9%N>(`VS}I6t*>>E&S3-7;&On=&A91$M*A{itHT||G*dffZ;#i}B zi>&ZwG@;BYP_k^E`4dM$UMf_yj4A!ti(qS(nPbP@3KN|M8|GeBcIpXs(g$`VQH96| z#RrY)rIHyI9mvMq&`haWqiLqO)WP~Ob2jt5Ec3jsmbqT2M(B}qzlo>z9iCyWbJal8 zEtdUFbG!fa^O``i%{nDJf=`5_1z4d?v_P2YL^V`P+-Jv~v;$2$6J=U}W{%DtZ&Ms^ z(@m=&vCT%P2C%f5With+?c=kF>kr5l`EGA3p6OpF#xtW%{b@+!5pMTgjY@S*(j` ztSFY;u>Z0v*vOV!iYPv$SaPIT@=<*frFT@MLrUu+_^~%lGTjP0u7Ze4_!uXeFiO&& z`f(TiG%dIRz>7p}LoNbawq8JP8SsOHCAEW6iz2#aanjH0xEi2d+uGFgy5qzCws4YU z{>E@)a`s*zE{jR=Ru^FjB_`SSMK84pY!TCcx#1N`D8+0e17fam>MXO&xQC@4X_O1R z>pfxO233L*okkM8GLpQwp_bDRZ?^J^2 zpiGshA@E_YsO&gC*_HEOTmK134U;jjj4*V8_QtG-Q79MsF!V|8M(`;b*7RQlyXpB} zji=A5+p~~eb}T?A5xMI{tWyr#qJF^p5p)8Z@Po16e=;t804;PAKu;q$o%qL3)%Kl6 zcw#X>zvTu#V}-6$;(j0m4Hql)L&CZdBjWl_{jS61zb^$NY}eHB2k}1@oIs6deu4a8 zftM68&5RSOdFAw&QV5v+poP3+fI0%P!a)GR+E*G zOzSr*iT&7h5O3Is%A>leh+k$^eo0=y=x2|vAIwXke|nqJJ=d-di)P%?nQ*7~!8d|t z$vo%|hHgO=cTkBZu0$=OHiE`xLOF3$aiJOh;Kn|NbI9Bk)%$=L$=DV4?SfNr;NAY< z0hydazC`kq2WKScpNYUM<3_JzTuEduZzQ(QSjfocx%Va-+GnYyAY>Sb%tVzKJEb|g z5BX=A9Q}-51ENh3ul~z} zqpYMTr}9z)WwJ;KL9n~F$Sk;s8((cE9FPib(oCdSVkS}?I?cMcOl?5s9s^e!_sH^B zOFo`6D1C2vA{?<%Qdn<+7ktOhd>2ZbO8QJk`3ZzPl)3&8{C2%ZFoE6>%W0Uw5Izwk zN)56WWJ-x+1zo751vAuI#;~m=dJ<7;6~=4`R%j)|+jK=g2bDwwb&!ZshScgFkH!uK zQ=5l*ZOUvSF_=So@EB$QUg(9<$$`QFF?3u5_fDzEoL-qf618=@S}(MVUSd!e+;anc z#yhiI-yvD`H$@|g^p%OT!WezooNS7)dpXD@%E%AYzl9x3_iR&wH(wN zyx1-g>##(`1Az#nH}2&|k|dV|9-?j9KZkZ3jO07?vEg?x=ju_{-`7DSEihN)xe{OT zdw3#BWs>+*8io_Y`B*V)jK!*ca}_zljJu&k8~0^P*Mdx6bc_0;lI>GeJU!(e1S52p zg8lZ#eWn&)#B1|Cg9t%FIyo#&AU<=EMAC(R>6+y{uFrmylyf)sl`5ymdyAiShm5lB zJdZ2VQSA#3*z%LWV^O-U*weWsb`Zy7Ak(i4;iG30M2^bcKk0tmp5A-odHQ)Kuqe6pKEQN3425YM;1e z7j}M^Z)DYJdc&w&+7E(n@YG>_KUww$Rc{dNvH#<%8A6g$!+kW?9AkQ3uV}NE_BNw5 z#A50b#eM}yc_*ioQd+-KMUP|w(N{#LQB0lBDinYJ{Efa5PE%Dk zw}1)bN(ob~guYROTCb;N*{MAABnoqmKIZ}&dZtdfV8UgN6Lp%a-lU>W-+Mj zOKCgjoF_s6k+#1}=Y_vjb?OWbZ<{|bYen>lOR6^{E(L)xK~2}2Jj0^<(H9WIcj20{ zAOsu>As=~h$?%7Ulsw}Mjq;;CzF6V7OI$|3cC7G^T6&qLBbA*FQRgrx;DX3V;atohRqXdxzTfiG+U zsr8Ge*?ezRWy%q$`RPZUt)B+@sGHfV&qB#6xY~MNeeKJND6qd%wr$ud=!8 zfQ&bJ&AeTh$w$5P)2pEAH~c9_Z>5m;J)1YbwNirL_Ggg$j-QCUr2>K%s;;AS$~lW| z-0gD_JNaaQf9Ou69b!%icnK!h6G$3vXL0$saUv~WVB(`miWScy#eUIQ?Yak<42#9v zf1MVe%$x$7Xyo07$7fI)smP%OX3OPORmD;zD#V(SUeC+956iydRdSM}U1{yC{k$qD z4$8hFRdTYUn}eS?1o)Ouf4&2QI*~M$aUhG{;YyXbNJQ(N{!%NiLz~9tyT{02d=g6@ z%lMXbJrQ6gM~O5$2ZjBIz|^EbvPv~k!lzvDv6ja6pCkgL8)ig?KsGl6XxTwIvbLmRFhX5Gf0z{yL6@e-S{2x zo!0gl7$*7PsthFKBk+bkyiuh2_}t0B?_QgF+}t>u}a>-j>2opK#> z!IEO=Q0)q$U1iW;GIY_6Q^8J?KV$I#UDe3?j>KL2N*=M4U80H^(5egX6&`k?u$1`> zwykt)zjRUw%ZdTkSb^F?Z^mlKh(B$%A7yLfZaE5MKW)v87jw$f%^J9M?~U0JX>p`_ z0>-VriQ4hIoY8IKkMsw$ROzP<(NLf4rc=;MuhwBsJ#tdVItcF|^rK4POOK^4z@G$L ztg*^8qsbFr1FJxo6+#|(QzTF7*Ok}r*Kl_*=Pc>%VVUzXS2I%2^b^fsAl})^E^U<7 zSB?5?L!c)g8MmE4AtvQ071_EGMu$7p(X~xXFQ}4c6vg@CLzB{@CK!jbOqBCk#D(w+ z3FDOFN9(|w_5=TlphH%Oxzp0R8}WDGWT$#FmbeqghggT1W^D-#4ZAQz591qvG1}kr zq4v2sUeaxR?2>yF1BX;h$3^J1NM3Oz*Im3kuG|5&NQE)c_~Aj*A{e6*j8OVv*3+to zx5$X{3#(QkdZHG{Mua0n2YAsyEm?w3lnTD0QX0TgBK0Z|m6akbu>dZ#z#eg<`>zk_ zO4}-kaZG3LIWB?GM@AUvaMbGm!EVG$usk+)=8gRw>diG*C}%83=rvXoNjnT!B|aCP z+LCGekwXRFn_+Y)M%2aArFe_Mv{zeYRj1Oa*u*&uUz==w1L@s{DO!4hN74xdDo@54 zg&tGPS-x_ux`^f#D(78@21pkJu$Lb~92d^lLgqJtDdX|43rU5j-gb~j{b!Fna2b`DQC73{Dhy^t2=tRgSTpp%MR z1|?vYraX{R6YkR=6NV#xc-7xa&~s<#cEPkT`hs|a9aOP$ z)y~-f);t?3@T;lqbI^uj*U_+Y-gxQ*t4;b<$HrqKIX_*-vroG{me}~2s{TEB&DXXYwKGnvt5P96#_p5* z${YQmE9Da8K`^M&7(zYJFdGI7g57t7)d6eKD47YA99vD%M0Jq15F!<)*`bFC1wrTxihmg9tW#LzdQ!Q%Yw~+c}I7W51fW|gA7mWqP%QLhU$VQQ+j+L zS)kR*0{)LD1(E4U;ih7Fp~urhrv)y55uOh034 zezS&POFeS7I7&2|dcTJWTVy)~_3gW?2_E!9!H}m~$@=}_Py|3k7*>p^Aqswi_FW?r zTm51|`LwC}A|Z zVEKk(h1(c2w_$oc7TG&;G&^_x&{=4?I3k<}(iD@IQ8`j5nm9of%UQ^&TooR1Ej|pD zg<<64w1ntz$bz+mN3mBpxsrD4miU9JqEeeDgPe2u?sDwV_?{3)R23ada^+0CnI=T? zXtL1<9EAyv<;bJq&$J`RE~rpUjzL8e9#qWM0+OBBhD$-1ZQvwF-su#&%qSD^L?m6NzI6Oed0$7iJ;YRfBnB znJ_9J#pw2{34*QKg#)7@Db$eB8qV3&~FqFfcGP~V?9 zjAHaH9HuZ)Dm(-JA@ma&TzWFO1*q1A8XM{FH zs~z~zRi}fTf58>ayAjC`+7>QO+iKpEv zG_5=dp<6Vs%e_4rvbz)9j@i<)4*OFEf7Yz%mUq@44(C1tCEqX7BanOiS?nu?Va?{q zqqtR1pUn(16IVsgY2xYmYHY11!{Y}b!)>-N&S_A1vvXo>m|w9`TGcU1bj5)8#=hAvrPA3(x>MH^y_3}Q1z7&fN$QN} zOrG@WGT>4;NIT!1quI9X5QIR0YDCx&FSS zg*ob&XWzsSwbr%Ca@*V&R_%qe;s#39NTA{dGrAr>O!==0Y+#KBUiFnR^&SO zs|XlkfLvzN>s3Qe$`=X2_ly7AfmB^_C6agH^M-}%Ubt-cvcwYbv#8z@hPgY zcid|CM~-J{%|X(~DP8VAMdw;vh%CSdSe!O&p=aI&qXY!CmU$(zZ6)+l^+Kz7kiZG4 zGd--BkwT%i07%-S$wNu6iQpF~x#o97{|iG|Gn1wvOFwiL)`l&%%O0mCOCH8)ZQZ(2 z6dhY(7^-n7SN)yK&Ei?vo80Bgm+kDiQiR_LH z_uK>rQM#V2Jl2+y_=0=O;n*S^<=?&K&A zhye@;@`S;0ej&bW8NXuyK6VZuU|;lZt)w^n6(Me-SzSGlWrDK9G%izQWy4H!<@Z;oz%76SEkL9 z)2Ynt6w$5@J>90|z~pHs>uZ9^o4qev&+;JY2%NQ;7_Q|8;%+X++jyfx+s^h&ZbIFx z%MXxlwi;IaL#1u<#X&#Zg5LDcAA?NZQ<#LPyjq0Gl?Y5)Q^ML+IIEfo@F7!}Vo*)t z9hT0WXS%z&$JnHyoQ+e={gcNlAm-^8d-nly?1^^l2}f<$8*If{)7(9C%n69-edPr& z$w?;f1uyY)`%WlYxS{QRZR(El*$uMYeCK@s{bu%wzAhL?std88+OCB4<~ ziFxi4g>aD{Df>x^aeyBj`X3tOj(&tzvKuO~J!PaAiNfdFw<2uSkiRdPg5%7OvK;o( zb+2xfq!z;GfRir_d{<@5XiD(go!0Fa5z6;7N9f+J?eG8UW7F$t&B^s+JL$Fhp9HSz z|EGdIIU^Sn%O69Ch^3L!|Goady&y`H@|!=}Rt|P1c@U^#UTyqsmjtl#MQ|QUJxpRP zxylNm^}5V86x*XU%ga1Jcpi4!_%dqOd4#<}>KY2Fe~@)IFWJsa!iKp^%2 zgCJYtK+>#GX_1tBR(yF zo%;#)Z<`rv``=0-1Q=}U`Yabr3@O^r6sa9L0&`s~xpe%i7HCa%AegG;h%HzQg9md6 zb>{$jU)I;k`zfSV^q1|6ox=9kZhyGZo&dXTezNP?3x#pIt|4rHy#iO;^d34}<_1`= z;W2jK%Hk;gdXv#2I>S|2ar0Sfb^_r4koOmk?fMh|0|9OQNIMl}K*3Of0001xP-eE| z4>10pN9$*0VsFP_Vr%dEWA-s(a56KocQSQ0b8@pXF=KGH{ILKr7&#dIAc5g$pPl_L zX9ioNUlt7iX;Av{3jM!PqGIOq-+fT6EhR$8!^ zz40U=9MX^;f*yWzW&qG(1Vr^7=8!lN17Q5$kSdT+xbmI$P^_O1S?Tc^H~DY2`TH$9 zeIZ?^HW~L3Q=2B1u3z^g#X~~Cs}oGiNoiZRcXq+O;ZuJkZN%8xIF*_f1(?G=y%^o!j8}YtXs2d^>4&*NgbtvAEa58o@*-5p zGfSL@odH3WZ6)@uIpzIFH;S{foHH+OLt!VSs+s^b#EZoO=)&JWioZ>0=7wS+iJgUaq8Xft7_IQ`P-e_$;in zd6`(Y#+}z_n4BvL)?TBGKXIDpK7A8dHC+s|E*^Rr>IETid7|10b7os}^h<$KIF@td zE0$3#S!7ffi~OIu^fCMS87X=MOn-7kq*VqM{XvjQDy2#Jbscw&^Q z?%zzTJHFf@{H~im3#O}|Cg>^rFdyXkP{$ypj{dFJb6gdl8((MXSuz$ zcexbCTq`FZd&N!y5~oZD3Z5OS9o>#;Vx204HcCI;W=#^`+l^i86`a-YC$x}&J~3u# zs~_e``X8A`^M5PUKO|)J%i_O>Tlv4-7aXzwPUhLcU_(k!r2~q@*pSr{w1a~|!X-n% z%Nrs*WV5YI94;B%sMnqa;t`Rve#Lu80v@ZlKw^rNTV?Pg9TS0;7 zD}qP$m)yGvvE7Q1YZCQ~I_gzBdnmTsC^{CVkkNw1>97FPI&Z?T*b!}6+1`sK~ z2naX9I^>Q@Job-jZxWAY_Hi0>K0+>pc;{wre@L0V!^r-CJvGs88GAlgO8kdKD8|A$ zS)GQZ&~LayF}9%cWjo911>b10ah=_`Uc=xU=v-&6j(gvpDm{43SXpgS zO|PN8d$E-(=8g4s^ImFlMR0ZVI|G+CFOW+!^WGuLHT#r8De{CXOKKimTs)GVdBW)# z?kYDZ<5zc{SYBEkm0-jhrAn|T_8xZk0Q6y2GUIHDOGiYdZL_MjC=84Le*#qsh{T!X z2c+fyBPac@B~q$RR(Ag#riyYh|G`R&B{40{e*OpjL6DVu&|WHCsv&}C^#{XIo2Jb) zR?6&Fx3g!%L4^9eQ1~CfUzCmwbQcJWbv*VvQ$3zZv$f9%Kp--~DgsvkfoSglW@XId z(H~+uw=sw)q5~x})p)ZbYpX?(hya+mkSM#RMVed3noY1Zdi`>-2-id0-xE;PJAyjw zeLbnZlo5WNWfXQ)kl@~?I9j#FKx@OK>hGuQm)hhe%4YlW?$-;fM9D%FU!nh-d%Dc) zws4_mV3F#S=Gw9twFwg16J-Iy81k zs&-M?d@MQBarWgx(n4xDirDNTUluvV5Qa;i``yXsh2S^iq-7R~BW+c0{)6?TvyTP@ z=|uEzPyXUdqV2(a$eNgZZqzp8p1%5y`Yx9GJHV=EV3Pl<(gv1lm^2plXs}wXF|x{v zJlbOP9r`q*)8&xyirDN{z2P#nW)uHdjq=a{$A8e&=oucc*AGn<|Bp2Ff9!kt?-5tq zRl!k1{h|*h*Fu)`m!_&l-AoK_$){`CSh1GO2P0BURHve*p9JZTFV2!%#xU@GRQr>C z+mGQIIW>ocg@tF~;~+jN@o9nE>+RkdV27U+#`m0izkS_#y5(&D^>SUx2ZZHA>#$nK z&MZD$!I0IGTQ4`*kY-czS!A1@v60zhYyKd&t;xbNWT&~TT~eT-!4mr#kwnG))O5vY z9!3O){PzuI8*Y}iIx7@Kyi?E})Kv=v%v>kmqsBCi!{<>1Bg-a@85 zqMj?@wp?9uH!ZObj~^I5R6J+Zm5%WjEV>s$j{}F@69cn7!b&3`TL?WG=z;n~r9g zRX{i95yd{Y5!5JlD({HF5&1~6SyWG1hfK1Gks%t1-M{)!&*Dwy%MSE4jHqkp+m!b- z5I=5k(9xraiv7YttA*iyE7ayi7ZMZEOl*aN7d5n+OIDuIW`Ff(Q>)1gc^gTzN^@~* zpPFTUm=M{fpKL!}id5fbpSo?x9=cnuusWsosy1H{wrEd5{MIk*QtE2LeVov#u#K}& z@M>9YEalxiU0=-QE4(yv>W=mUtYtsWPZ*p@!15NOmEC$vdRj#I6l2}_AaW@jg_w_- zBDRZ~R$w_%hW`|8>ap&e5Va_n7hyfg!at(NDyQQ~gpN){dp2M_Ny0w@$5u0m>>&~i zkUe2q`Ht9{XzX1uB3^eaJY)to_ik{ULC1`fTZC@le7UwB0WR#J5AY@a5~SVFXamYD z-577!dWkIC{KQ)BjxPM4u+M=HLFs}!g#rQae!Uc*2wegSuWh#VIxQ(%MHH=9<8UhS zGS`Mr?Sx^;vTcbxl&=Lm9<32qjIO5$XJ66sm-#rob&dYRTp!}w5uMf2M6z;yozIro&2|#Ji}SK`X`9T4V5ev;w2Yib%8TA4^mf}XOZO$Z%ITUa zwKC<6D6#R^j(l2YCm-`S?5}v^h;#yG1w>qN($Fjw18T}{e`Cj$foIKPY^{ZifXB5u zI!|7&!|;Od@xmk;%Q4*Q)-;%}YV~Ky?!)h1Dy14{Q!S}=;CTpVmB2Zp?_+DV$!~Dl zVb}#eG5%B9FgbfA_z%V;QPN22_;J;8!TwJUBQOFS~VahIKv_*L1pW4t&kFyZ<6jf|^Tw8}y#Z9{u*tz4qDtp%Mar zWWkhh=qkIoC)MV#LSMXo%{*#!+qe<#gZ{NEMejQ59lSGuI=C0;zwLhNn!gd^2WtC* zMU~V@TS;ZsvO}2#oq-8+JBCx>M2vnGhVFg3b@g@@b$t7Q^oj-I@5uQMYQB`YWis)K z#1nY(0R{PZ&HI+5n3gb*dJa&sl8^?38c?!Tc3U0YR)?W%aITvxw(C7slOrWDa&%cM zfT~IY9IDg=$wf=i?0?$quVBzBb{Um1X%{Wkzq224FJ z1hk_rnI7{RE)2OPsG3K`LW-+3;J$t<$gHhT5Gk^_il#gW5Yn28**2%EWYcF;qiK>i zbg5@*Sg>Bn!U$E|(AwW;+UQ;%;Db80BMvN4z$04vY<^!{Js6nDbs*VCJ+K03j!oGm}jHapdp%=wgX$+BFZ zg*?tFDRWZS+*Bta|1Txex_bJ`8Ruv!ohv~mvBlDW&dOhU55`2?h!*WlYJA%QQ}V!t z2CXK84b?&Dy(YQQ6|+r$#2$_V6Ep0V*~?d+kV9Conf#u*`I=0_op7g54ca{`Aj>f- z_>~6~MUm2|hcJE@2j&W1?EL^;75~|`AryAY=&CL0?~xfvnr6c67y6m1o*dP4;lj%ptF@I@Ko+n${rOIoDMwKbZ1V~|oM z&VfebtBQ0D{K&LtI68NexuBvhNf-P9CDc9^#i@1Ltln|o`IekP7AzYa4y95pcD@v8 z+mxi#8`9piRTNekG^L09GX*#$@xrAZTNYVAgcOtYyzfkSVn_j_1!>dCxh zks<5Cea18;1xE~h4s25@yy`$Iga zTayl>rbZRd=tjN`j0Be~Bgn?%(2;J+zq3i6zo=h7}XFI+WAT=NVbQzEw=Q`&=l zo#vLW3SP#P{H!Laln^^CrT)XhAqhplG<{9>IGBN#Zgk!>C~L&aam}K+%Uhps1EvrJ zSUEW0Dnnp>On-g-QPotsb7jXMFKB9Bs$(t>RE@CcQM2HEFYFjoIgpa+*M0gBcC6g=GG)DkQ16tUNU)n z9BrfyT-$WT6y^RmtUx~19`jY!$d-C@ zqz8zA_%B9E;-wG%uE)uGnx6^$jV9c5MU%E_IjO2@7ETuPj-c*JVYrs5X((<+&@Y@p zj$q@gb|VE^{MRz17}9j5v750X54RB&O%c}l^bW5uWe_3BI4`dCf*tZ9r$>2W%|jdJ zan8yw7sJ$c#lECs2kxcf9ZRnB2bU)ul6g_ji-Bv(Uhed^ExMH={f7lxKO+MR3VSKX z1c|C7jG~0t1N6V()Q#NIZn&<27f@uHrMofy$#-^Bza@|1D1z2#iCQp?*?uK%A9~q~1_e^PD zb4GGy(0mJ3^G^P#N>JHaAT(CqeWj*so+j}!0rxt_GyRagqJ={#$qS-1zh|z4a6g$n z|7n!nONdlY#A-7_UliiOQAJJ?|(y3ak4z!L9udg>b$e&DLEKksCbDlEH58&YX zCUx}`D>hp0XZMQ22ppcxM!dl|=?48@#9awIRofT7DwHOfLQyC*C{r|;=XuT$GG0^W zsia7WQj{i|s3dcylFF2s3`Gbjg(NAIp-lgEtN(ir*Ku*{o!@)E>b;!r+iS0HueJAH zdmk6B7n!d(*6V&)mG6-iq3g6D?q$5l(fbyu6}GiQ-`JuDb_Csc!VzR#%_e}&dv&I~ z%8WKMwOBB;a7WTrGtUpno*l>QZon;Us}Eff@;b8dQ1swS(;lY>>ze|q+w;aYQydyy zw`KjV5l71;>_+qBC6_+RAHPbWccXCh02SF-{Mcz z*)Cec*P{ZBgqC=d^;lAQU&?)heQQ*)gS_!jc(yI2a8```w>vAkFP|6iIdoMlD`suY z<8#8ofiLE@atm|kOGs}NIH%RNmMZJJyn$Q8?EpKCf;>4cwwSLh4p#CuXQXYy+rqpn zczP^*ijE5iF0N6hl_ZyW5%~Fxsc>vQS;6y~`cH!=t9$Z}st+e!cF(xrZmT|6XI><_ zRCF_a!SZAIU)Fhr=5Syd;)&N!F=RpeTqfJ>kdM?H7D@?pRvW`o$zYAH#k! z(P^}w-`qcNxWLt1wkWMynt5HXI;&{K_iW3fCaj6~)@@ai56d5oa$GrvWu*&xmQ(#A zhwqx1w#`jLMTM$7I{ABM+n?QX-Em^*V_zFK)|+y@SN(=KuO%alR|c$ajpc8xwm0aw zC0$0r%qni3D}Bj_!|{E1H*Kets)Zk>hYId8q|V>ONu6lQ+_Scd%atp22a;Ik z7u)r28OqqI$!+Ev`}$_*7(H_j_3?|PqG|e1Y$yV`pIz&^@(s(rOw;zuwR7&Oy<{xG z19Gi8#kAQn$%9-91w#QZPu!DQp(*aL;KvCUp>^}3t}|+yDhGJ;*(a;%=zru)jz4@A zOC1uiW|?qxyCN^w-L|}&C4Bw68QEwZl)|^JDQ`dXwv+4F_HPMGKJ_X^?mORHrNAS9 zHTS#hr}KK)?@^l0S4(d2EtSHaZm{+Gl2l-5Vi$InY9I$bkwVYXaY*6O5f}gJb#5=u zSqLAC;_7&K!FADk!_w~#FVAgBv2E$yP^Ls@$Y!3mt3?KWxA(wgbqd)wl8>xes#?Osv}MfcP5!QQ5Biz zP)ud9Xltoj-n^|fY~T6&%FS6Y38&mY$@rvEuW#6*Wo@FhPgplnI!XEQIVEp$RejbB z`6mXpSm&-Q2Ui;S_ZlItuo?_#-Nz1%EKK&&b;HCOXAHGe3Kie4;rXe zWq%F1$fNn)!F{amBXdFcZH#W;Bwk~d>>Tiv?U$gq}b>15k)d3}5|jO}dUy_3+EQU0oG ztplhVC1O&+Ft< zbJm63dMXkKUj|l>f;%3%JYU8OpP}m_y=RknL*J8DxMARVRHk2MLub0U=X^nHhj&N% z*?K!ERW#chEai@GOVQo)Q7&LnId+@w9Dod)qdx|sIh#re9cuhuSPh?UQ`{nPu{-ajzHtS z&sy($9x2an_4vBXn6*putsjua!9VHy;gmlX0; z%jwScQ)bLRWDZay`Sf&$@EnvW{BbuQ2D zcv8OjN?E&9s;?(qCj3Ze-^p~zaNm(1=HEIsyLTVnxvaBoFim8BS$LO`II_`Nq;*<=v%C*B(Zx`+`NPqBsgfq^u zQu5W9@wbEU9eTRgP4~6EA_&obkUn8+owl8Y)w$;O>qP8z1{YrwL3QA{b zVVzr29y-Njvz)l8k;g-#BFn<^ro2=>FJ{N(Qai;ImnugM6?RKU4RMwCPOU;iZ{M=U z#dcqjf1t^|&+gprkvrna{M9zE%M^;71gMV`6uZ4}^m=3{Uy>r3^6n0K!gj5#%VL_A z-3kvcv{^Q^sbJ%_c4i*~MQt6nqGZ2_rzhh#v>IOev zvtzo7L%SD+$6S4Q$^KR77Mrg9UbLA^`pxeArq?1CwFM=Fwph^#2Uv^WIX)b>XAkG4 z&6T`yv^v4Mo*zPW>v%ao2ITwQwz~1`>bYAy8@80ZcoV-ugDg5*pmoR2W;*?@qaXYO z^qL=;Jv-4jyi{q|X=~X6f$uM)4u(99;;qlKVb*Z5mDRXc5*9|oq}^C=%ciwPrcZqZ z?}}JEUz=4o8)Tx>C}U}lmbEAg8|Dm4WHop=l2$glTYTCT%C|r*P+&85Fq=~RN*1-g zhf`Ox`sU++k%TdAyyjVf0X z>l*aVxr|qjqj|e5KITU@tY_dz6rmT{6u%!fsJcX-401>^ zIdA@EUFe{o^YYrtX64*M~dlp9xAmPw0(4%*}m^tF7M6Vw*{yQ&yVq6X1QtS%5XVpRMs=sI5{zb zRabD;Xk@ilO^2a`U^{)EQqIWLKHrPN9kI{uhJK8{aJx24^`n7uqw88G3hd(N_1Q1oZ^L-|(W6y21Fv7H$+if5eu31Lys>ht;}^kCJqDwsou-CMqF?WR zSvb$#D1KS%XA{Gw(Vx{l8?zIzmtgbiJL=|@)NCC>2Wo)EeaWmqXP=f<9qnkvWlu|E z`kn$^6S4*2Ek|wzvIJ6yoZzHY7hf+CXyA9sU{_hQkd*TI=t%2^+t$jB>#R;IxYpC! z?W@{iZha{(F;cmTU-?SWN6$V>ukR7wkFR*OzcvwL3Nh^1!?pRd@Tb%P5l`=-T|?J~ zYP0Ve%vTH4S@027Z$8TLhkX{HmT}8Holo5)&zJlrAhf1rZ$x9fz>h$=L_OuqtOJ|% zn6{aE#x_RZ7sg7TXI|*D!835gk1zS*zC;Fjk7g>)vW;BYU*~Q08R1ad3J(@n(y6M;6 zi?2_6Sm0l2vPZX`|x{=#|FKecZsdDM%m;n>!_nQP4FQB+3!&^h&DX`r3^NMGZfq^!ck1ve-uHZ9l z{%Di+Q2RL>ft9yTCF#cKxUfWIzd7x;SgS4i+4VG)vTsQ=;W{^8b2KMkGd`65X3;H~ zoHdUc9~r4JE~jXXe3x*U^OVF6Hyz{1JvX(DHO?L9eNfP-YjXUgpv5wNJ)YFv!6xSn z2M*YtdB;)D)j-OwpFHZS5OaD(F4LC|`78Ih)IN?_Jh(y=>hWN~L%IA94>V+6?3Bv< zKDJ`}J&HE9Ptlc^-yG!MsO=rhqgUcz7F}Z*sl?v8tfu-_lRvwy21WTiAGKvGsTGo? zN$&49{*kUC{M}4SBfu!ZfQ9yrMdU4u%wT@nsE@Q!X=eT_8=tYSWwWV#@wL+QU6WZd zrE*}m;6`HAjUCvnN0jKUuzL(W_02SscUF=p3VEfN}= zOLDd_%hmQ(ssG-h9F2|cr;Xm*UyXhje<5Tw_mArr7QS`Aw2dchEy?K!BZe=jQK{dD z&bqd4&=+9|8wom;6U5h9;eSkp(w{!+qHX7TegT%lg8^pUp&v!`c=mh6o+;;1bu)Q- zg8lIJcdag37!Uf^ON-oI2wJ!gpQkvQSbgG%v#9L5j?i1_4Q+NZ&Y3o;k1pQR`>^fN zBdYgaPvtJ}?}*;9$7b2*4QbumDcd{-D=a^sPm5CuKeR=#$AxKGV65_?%2Qw74ZV8Y zWN{`q=*~60HG6Z&wtZ#Q42n(ZzOIcm7QZHNpDRnHZ{z-4r79(sh=a=)?_KjnpymnX z8T#i;GP%5uZoL=iTf3%4+d*Z(?efXf`HhUK9IO_{Xt$m8ZG9W9ct zHn05Fjcv^?^vSmtIUGc}m!|u$pLcAM8141V5+dy!*wyj3rOI26&(GZ!upuNx#A3U% zQUSl`TOlRc6$uvvA9RiBHEP~$ksm(U*`|Jw@6h~5=~`~{!|K#CHr!Y$S*PtM%N-}< zQu9GaJ-IqjdBc~C(+{6Ed6g&bC$D%X@iOtuTK>pk{$6r7r_pNFT+Pz?UYRZnc5h?O zE=mj+mrlOA$E$MTrPIcG`pJ(KGKZNHQe{NXgjKPWC2w1us_**kNJ6SW=QonJZ~4Lo zDi17WlU~u;&>U{yRoD8&EZ(%;m`f>}RMmvmq?dDT%Cn|2u_&3i4d?rNI%E@oiAE;S6_}`lo!_PfvE|caxEI^9cnQHCx~9UhQ?9I$iuscA<2Je8PinxS*wd z*WkkJf;BxNqeqwbEE2J}S!X8c$E!%6U0T3I7x8j?ShnQO{p_7iSBCS_?8}~+FLKf5 z-(etswD{|@O^G#ri4kfm%om0=J2`(p_ajP$CsHd}itXE7#s_Zr(o8rayRfcQ;jJ`P5QMb5eS}PPbUg zX>m(}=4-#^(E`>ZQiY zy>EB@Nm#OC;o{BdPKd82QiASdmY?!5Pgn`yH1Gl)zNdA_d z6-#<}9NfLd_6#$S7Z^F|4lh-$de6|aKi6}e;Qj1_4mM-eY0MG*@nt;>mQES5+uf}< zCPv)oZE#ADI$ZwV%}(u%&2@(l<(ps7Cm+kxJ-93RtDVHk4HBw*TkFWSy&bT%#M+g; z$qdM;klvE*&Y;>vahS`*CDb4gtM{QrkG+UbX-l5=>s3%!dPC^=(dGs6c4r%vmcNMQI>7K|@7?23Op8yy z`_9;u__R7yKmNGkld`V-v|Y#jOzoa?`dyIfk`z8b_vEAvb(G=@-v*Zl<*#b8pC3RtKv#>v=5TXjQ*< z{@7{rmqEM7ewHhlHZ&C}+cc>|7cJs7Avs50hVO=j~9G zYEW?wdAh-dCOhBVww`T+{MQZhgEy_9TNsV8(#z`b&L)*pxFFRKR92DRr9@5gvfy*- zR^20FSF;U^t{M1LDFy7;-}Snmj$}pg*^|#7CsdB)6<$qvvqv?Yf9$!H&|!&%JFp}R zm$LAj3tcGZDKURIg2UfJf%dHA_`xZ+3iH^M&awON*Gq9ZlA2UZqN{+b^H6=Dld6QL6}D-XIXLBv{kOM%MP-4w1ugN?*7`WTH+tWki1zylj4j=0Zi% z0r9NcgTaOljXgg~mNk?^)icxlBJZKB-K*V*N#j%`8Sd{^@QG@4!{JImRpJ| zWnm3kbJW(|P+?&8FEH`F5~aF2VT6O%qPKP+syasYdRdqjo2brnQE97PnaBLjH?BBL zxB8w;#;9DVL?}6*1P7HRwq_{ySL_-p8fp2uY;@u~ugN}53Ew2<3 z*}Z8z{SOJDE zuTtN1uDq?GZ}dKE=nbBG{TimuA5R!+GU_X{!|A~f4r05XHY9g!eSp2fQ8*euB?`3Cnx?(bDVt%aLRJwofoh#Y# zSM%1ZXI%6!_8Znnk+8|`XcXTOw1>k{hIHeamBVV4j<3_*N@(nU)Srou<37f=_eu`c z;QaMbjKkIL?Pek&7u^qUth;+`$39;<<7@hENqq@fR1T?^yAunnX_RjF$1uNF_z}v= zoqd~P84a0}xhAhd_u+w|FUr|D9-mk0UN&G+U;0X)*L3R&A>>(TzB__=KH6NX^Sd zyX-Z{n#`WJo@O)%68oTkPmHU2v?#9dTqHy>On>-bwaUr|UFJ3Sk*{ zi*=c=o9Hn`qd>}VmjHvBXptZ$8%jg-otsMNm-93{bH2!;q!(Bfc7yG7a2MyI!gv)~ z`Uvlm4T-e#lNNIBNO(SKx2*2P;f$A2d?_oRzooSK_DVoDj5p@Y&8Fsh%}oJ~IyUBk zbP-w%`&r4>`q@Ge_WZ@N1xodozM0%PwqeIDP3n@AW4+|EJuB9^&4U^_D|bzf zYQETc&a4qtO|RcSr+Y4SRyDmkfv@3*u`6#xu@2@=6JtnUQ09C}HnVL{4k!4WoBuM< zV~ua?d94p-c|Q&?%LiTE+AIG&|3&(+YsXpV)+q)JeiFIjgX^|Odx~D~Shq4DXy56y`33WwgHPKi zWqpqtI(7TCL{#Dj+S;XtN0PLcQ_BP}bfg@tbbRHbS=nW%dTs^9|*1JpG zIoBgo@%>!Cwb|PC6q&qEqkwpG<=d}ZL|&dO@CS}B^&xwf@bMmu+!FjZ;ec?U5?amaff4)$SuZ z&r(}4JS%)Hao@Xgn_+OwGhQgCF$FrHYtsnaHE05Lk zY&!I*+z{)q;{Y$u`FyRO*wrCDid*{{i`MG~U|rJOGeVTJ??qiGRogaCQ|4lyxz_hS zyT(nV3-fZd51!15w>&OKLLU1>|B;bVjh^^EhmZ$e&fyB`FO9tSS~kmQseL)P_(8q> zk{oU78nca;X?zcK*@Y}h*5BxtdEzt6mX7t`YHCxSP}{z#Km0It z$>en;suKJRI}dk;7!BXuH)=~?=T9-3v#tCYo4F~ zPSUwnO^JK`av6=NQmeXSUOPTj>ug}u>1WY=CKsbnEp}zOzwL$SzNg~-!hSUlT`r!r z_B=l#k0`v($j{q~ttz{rZ+88@el0oue7fSrYM-xPS$Kn6PbBH+X!zKsP4lJY`ko_|0)o<`8_mB{xqY7lvtm!1@n*86t3~xF&2}`{giE^k%py|qqhCjv zv@K7b-g-uBPX15dHVrt`hIGVdt~)rqK9!5(k%uQwO`B%?x{S#87i*WEH3z5aEpDXn5=HV4A*m>@0&$$O&tBUF!Kl6Sy`ufprui)+kgEpC0 z&yI8!E@s_)TI>z>ajr{VNT=JU>zC|I!yeyY&!sgxlFZE87p3f-WkEKq-|@6kl^)T6B{u6kud2$SQnNa`jI`h9#Y`)hbECaR>4>NhJt?j6XH zR@E&FYw*IhI?JyN(oY@P0NgQKA2bcg(eG8~Tp%zRMP6&gHper=-|} zt$2UGu_u9lt9pUbHw=fVMQzHM;F4DvEB7!PMAGRzi&A~hK{ePphTF;NCn2TGUy8wK z!`{TyQ%}K}&JZ1)9UQUFuGUx=O?TCDMJ|QS^2+LRv0B~An-$Aj+BBAxaPIC_DAVNT z*XHI;x9Q`o$*L`hL;%agM>-sB6-;_7tFfTbh+tENaYj|PK0VEzB;^&$)u%p;zErqrXQ zlYdmxJZl6Cf87)Qr9u3dF#PGCA5|7tk(ZIy)Y_sfg9eU-ZiP4C&U&N$1oX_fhaPsA z5U0b@estBiAH-mGPyA8j!E&@0twp@(2KtNOv^sWDi`JLZYg*L_l{4U5J?`)+^-gRRCr+$yuh#Ba${Z0tAh zL+}^{G>LII7>tzq43TicvBx?~+FE1nr;H_jF#~T8g7RO2Qy{Lb!B}g~2~XnJ$FA|W zQlK~OM<?N{a>*7zJ4lGA;DEO$gY}7=r)RUY+bqGQoUd zAcZZ6c67&1|LR{!$W#LsXPB$kBXGSI2ph=ow#KvQV%W1odEqgVl%8KMhP zvIvF1ZyPH?f6Yqh*rDYZ4CDgip1`8%-;7fL{`awTbX-9FBy=ote7N^=W&l#wmXHC;{Vbw&#^0I`kMDMPfd5~BydJ3mm8Kbi z;eWknq~}RSFxCs`a%6_a{(*qkTiXGD6FWy06MKg#I=kXsg0(9kB!R_{qtLC7(rJLxgb0izV*jVQ=<3 z0h2VbH^bUWVG%0`MrJ0qQy6m$+q%ddthoUUpoSo%MM8p>BmFk!w1i|#%v>Fur&xli zVJx-w1as(vIrbpX&*Caxx?CN5YP6e|S8YhSwqJPra6V+0RH3Zn5KxKGLt z>*#6XtU`^!=pfj5Qxc1fG8S%IGea?nt?QT6H9(>l%9M~M(V-(22{q(=7=?|xzz!xK zV8aI;gfz*5)x=`+E5AY^;orMG>>!ZXG>HTSE3rsunV8z5y6S+xZ>}4VPy`aVOF#d8 z7I6}V#JH6Z6kE8t>`-?G8pnW!>AxJ{ccfd0LPG;2*=?H?1hxDHyGc`|0Z|%)ZoXvmAcnZ_S-zya) zhyHSdNrpdyEk^ObWQ!UkGbIO7#~`N~fpxpX2+|qKf0wkDo1-lj&Az*CEGe1~_B8|h z`XZ=WX#8hXQH|SdC0ce6W^92lZXg58D%kl#StCNrf2MX){KLqYT2VCBt>j?pKG3!gg7{IFzfXKxeM??pq$dSCdxD)$An0yC@SoB}HF6g=YJnOnsM1L0NJzh}k1JltLxK zEIWNNhe`j1kl`vt?aaO(uvM@KWaNh6#(n4SaYOZ)3MX?35-{H>7?}1UD3(Y6Ns7}B zLD>P};R9g10q`$p1Tjk}hxl{-I*u5s;dYxQ2_j#U89Be|;2Mwl;uXKUMZLk8eht?Gml?6h3geMEPSb48~2M=Na^?Cej zBKY0vvcJm@)sdWK*NS?90*hhfc0ka~sQA+~$2mKGPqWS3gu#tq%fW`QyE*QutNx4R zPz@-2!Ya9a1qPD<3(?4>O}AQNa>Q>T#}y+q6`+D2phbgm_Q7BpKFkSy!ZPCYk#O;` zqRrcZNiIafg9s+PUx>~Gr%5~v35kj%w({}wAU{$EpYlQQr0V-`c%r(OgVFV-J)qAI z5Fz&?=;lFunnNJMW4?7$m~~p6daFj>9Rr<;f=#^;By)%V1Cpo)eO-us&klNRCEsnay-RAW)f z-;4MGK`MXq#HFMgszhRjUs=5$=M6`JIn2PZcOy(fZA1iMLIUHvt^1PRfws0o`;omO zj3pk0e_e&}FnBIkc@NHCM!-NW2;)4o`CH6T-KMpGrR4``>=2}^)(C zBoX`#?A8f(b41W;ar!H?P>oi0e!sFFBw=k^;M^91of}k9&3Rz@JLatjet!j&mp5O{0Aga z4SG40g~td+x72kL=a6b4#O8`$v)>|L9C!(uojix+i6ABeLPBK$wxYB{ibI2!&{~cFUXB%1HVtfEHkyaQKk#orXDSwmlvl#N*38!0)->ce&igoaDaFe{#6&@VQ}#_r7GO^ z_T)Ka5gad{{m}PY=D&@D&J5LU?s=8c+rqGP8-gBk4rzp$|HlYUt23V+flN4^O`b!V zlKvH1s76zfKknH90c|^MMIz^ry>PUPNWF?*ZO-a9@^Q5|ljE2+<6NMB7phMm$6B23 za@2vtteX_a+}09{0QmDbK7_=vw1xwZaBDS_ox#nvEhojX{c!qr z_UCXV-I2ym4%o z%AX@Rtw^`OnH@y4I6nm%&6VDCT50T&g5$cfBSgB*!RVIn6&qNf(= ziQ70Yot&k9aQj=#P#u*O%X)4IBB(b+P-K?sec;a#oL1ediXPxIXy%eadsskiK!3M~E zsG5t!Br#rbgh$l6Z9jT(zC#OzAjrLf(yM=y9jXh7h`uqlhaoEiW`}l&QQAE0&yt*0 zdlm{W%5WL%e6XJ@f|^~#U!#U_!3-{Jb8udV_k6cC5TuVNVd=q_~q?;8NU29%66!qXDs zpikJ0#7{&0*6{feps^hK0%?TJ6~v+OYh?^SI#s`_J`R2HBy`*@C$pT0L%V;A;-85X zesrOGUk$$kIv=2GAjSjMIwGKt3q$zv`%72!z5{$oz=sRd#yuAsiGYvqgg<^Fs_8Vn z@eox)ATY~}qXEBdo;wlzm{pa$W@(TNR6^sCwZLoJW{ruj$wt#p1hlrYxVA(4qhTU| ztOYjh`~zI3WJ$=>p!g1@+XB4%xP9IK9aq%2n|CLy6{qsAFwi3RapOULvsC$%MqD@L z|Cu(0IU3gb8MjA1c^_9}@INAoYS?!Vg|*yp$u#%GeOywQoDtiw_;q~r3;nT6pyMLY zu`y!o7^PT1R1SnpF$BnXV#`3ucR|TV5o}mj{1G;IosIBGNArP_9^8R%A4r-{BKU^U z{kMEk9nXW+)diPAc7me45w!O({B7FPs`|Jt{T`gE9l*wZ2(l#1{~=ja1Fw1QBd83@ z9^5+dq-pxvKfxKlwiV(f3Jbw<2GGqy2+N(~o-GUfNEY{m$OWN)+Tl7`+y(ysK9Bik zjP&c8yQ!{-+vNS&Tnh%QAh`VtS^Q$SbGA^38{%voT(G$7CQ)v8I>OJ?=Lj4q;dUov znfEp^VsMZ?fHj+j!bb8d+i|xPvchc%s{fiBe#a?83<{|3ZC|XfXbbIchCV=M-VE|Y z0mogxk7EDw_<7H9g}-W(e1KGy82B*p_YD*Mw`pbL?t1+|HSwCMcX0dp41@P? zmmlwkz+u7+5XB(F%}0E27X{+3UPE3K7z}4Hi9+W8cM!XwT@=W)fA2sk@Caa?c;VLt zVg3qAE{{ zy4*nks-Y`bCT{b%LDk9ZI{Ftbe%t!Q>|b*eI#goP9D9}f?D76T!cIT6yXxDz^c5t8 ziyH+jIQ zK+HEsa1-_YBiyFV-`LI6p5d%j0@m7xU{rSEPcuR_)v;Xyu6rO!+q-3=hV@SohZufM z4QIw%sDUvCV7x*e;|LuUw1#OT9%iYbCwY|$TJHm#&uy5HI3f>tJ23Rxhr9oDCaZmDs6P|Y+HS%Se8rJF&>l1G@S zpn@p0@GEKUJeEheLt9rtNyx(<;jiZmOGv;{%-*(XH?Aw7?a1yJY$Xoy8C=jB&1;SYlbp0WA;1=9F02_H(w%1Z3VE;=484K_m!b9{yJx)$>U<{vz5O z;}nwzq-+p`OyNqq*`+DtIjkH12c(2iU8BIq@Rm0WE7lNtj1j!LcM_e~w8}ZbZf}JP zI>}%qb;)+LPxOj61@R42dWe<_?k#vwwi{B`;G?Hz&`SaxUJT>FLKnm4Olucq5 z;Lhy6hkKvQ5pMDpuD>Hnhan9%t(s`9yBKgs!zQoiS;JYIKg$T!ROBKfLt`-6j@vwO zJ@1D#afsn}pGM~0Un4+My5Q5u^*kq!x#JQNm*QomwlspOxS;j>5KeN*n`jLFbrZtl zQ*)S>9qumS$?JI($Nv&BRG0aB^l~9?wcH7^JLGy^g#RDoH?6{ii?W(ntP~V}M%(5C)wg>n+3K1n;Z|o{77x(+4pb z$7cEg@ET3XZjd)*AHGd&BA_~a1PKXiU*qde;l2bY3xyd+5Iwaj=0Bl{>Q^!B&H1>y zp88>F-5tTU1m=Up?cFJiI;}8|k{#TMyFP0hSQPoGq3?J9K1Wn@UeeO^-3z1I)pZk> z>~29COjL8?SL-70pnESstz)28Lqvc2z@jSA2oMq;gAZ@BJ_b}$Vc0@;TQf|Yh)o5L za}gde11;t6;)>mjz{7kIR$B&j75@=cR7ZQmXCS*Da*ui#43Ssg<(2(K#?xx|HhokC z?h(Wj7tD>%lPPpgrWLYA{R4h+-T< z0;kcog%*au;yhRZ*+oWFL}h{0AK~GW>E26K_)r6e4HSqBK8EyvnINhwB?Ww_bOIGV zfFOz7C?r|+$9azPcl^%wTzG}!5Lj^qSP^-2nsV*mWQS@(Z}xe9y$}#R1tzZiC$SQf zBz_ZdW<9m>2NTgkCyFD+g0(OinB8E7QeOIQR5lduu)rLHQCk%OM+as0vxEEhT;)HN zS@_$ES!jC{cfPj;oE16l&EGY5@c(bKO38o6)3{0!!87*{_a^q z;s@$oJ{<5A1`s+hFb@J~l`bJbS`uy+7Fg%0PQ}pk)Goo*5Qu>X2_jxEy=Nw`NB!{a zkt0r}k)LQ-sL-=g#vV75Ep7D|YAO!C_*XT6X}O@;$n*CN z!GC}Rst+a6`BcS#+u{z0BR9arE)a#wwBpIX=thFG#wxG|a%*7UWnwcxHN}F(JIJ{p zOWnx}b;k%#thhQGBKUQ6YH3^ueB=_t2fBjwp>dB%!VFMw_q<#l?v!SNmh8RRjtlbLg1Fs)urQoY$;2Q7aFEmubvo#P2{a8a90e$dU&2hL5t zgrEcejC&5}%@7{HKyp-=iR67#@tc%%H0^t`RwZ8~{YdA?Dr(ez#0#zVa zE{Fv~nG%K)mOzmL33xqIp#KX5+C_*!hBlTI;unZiE771)Jw@=XW{47WqQjzz0ttUV z2L{s$ek(t@x zC_w-dzG6F-O3t593C5K%^i9glG)c$_NiQejph|_$YBdITTD1_Qg1jd27Wu5uv?jn4 zBAOI$`{FlX+R2$&@zOs)0@aV+W0&QgfG*Ah`5+@4A0<(^Oe>^_LCg*OnVB#Ru^FJ6 zqUDFl%P<433Rezb{2qy$pNeJkm-Eq(DO$4DxJ3Bi#OFEci@xTAv zTD7ygVZ8#bIlw?e#yy+4348zVt0mM-oK5VeoKRW$hh)8gDUJ#VNpu_tTz9}b8yHm8 z<}~K%Z%rK(|8z9%S&Z*3T z27WPVS)R12g0`x`2#FNa6}uUMXkcC3Y+a{{foVd|baC~e7a#^A#Z>Ju8yHkEafTef zhszetK)J}effl#ffc+z;Uu`5rOr&RWgqrY*DbkbZ6i~hBVnx7xap>H~5dM&2TH-|n zCew;Zn)-t5H-#yMz^pW`Gohd_a!wqk70poHrtdY- z`Zv&eO$4${46%?=o8IAS%j^l^_x)xJ1{5>y$%&gO0sLA?#+t2Q1>?3%(#rM6gd?Cw zozh0*Ml(nxaA&rWT4BqYF$Stu8ir4wQvo+|hU^-tmG1l*BmL3};lai@^=Kt7Uzx0x z$K^x>M|GGlYafS-!LWq88yu+>#%FWlFs)X)u2((9EmKU^%8MFeA)_|^RL~_|BSs7+ zQg)(NHou%H0sLAy_&FuG5}L>ZT0yF@tCuhYYpkug3e2dc%FjwgNrjNIW^4t<_%(Cai`L6`2MFlPn};5#}GX zbyESOItj1GkC)WYeGV{4$c-CL;o^k(v&NrR8>)OZVYm%d+#M{)Vabu47^tXCZaI3% z_9iUg8FNou2gq79GjRN>DEmOm`4Aen3(ShVa5H-qLGOp6kbkcEM^CzXYSRsHNtYSO zLlV(@Eljh8Lf1)e*y+d6Xl~A&;(Q7 zo0}$XR|@jZk`8|1<=ZyfXF|K-6Lu4XcUXMJKp9;hj?ZV^mN*tl0N{OB#$y zbx`Dh6y7jg0y?|iz+;?gg*Pl${j?dc@OJ9{86K!+@xHHJ&Io}niD#nlV)o3E4u0XW z-6_0{s|3>n;UTlM&9;OB{rZ*(y6VVBv6Xi~b+*D zmS>PVR)<_?g@$vf@y#S8%H>+|M&icu$vak?4*dZVsQ$Fl@x$67kXZqkUkhRW^Ik;Z zGOfVa+i4i^?^sd#5}N_4DY|->x_^Z|k+MlURxW! zzLbleM(%pvyY>p`>f9tpVJBt%zlM@O1* z+2dqgrA7Y%5~$8}F`xIrBG8o$=Uhf0C{W^Ja#E9MB=?ZkGq7h_RDuUkjhk3hiHA5uO}|-CX`0=Sh=wm0$G-NT52Chxsn1`=G0|Nwu$= zYKX#RT3r?GN#25ASEdcbW`Jsnx21KKt3g)>Ar(aGs_@lph~U@N4J&4kV$f6uWKGE0 zSGmswp(r_6T3Xv%Dq-ERw)i0|O355Yz`ue41_|NPODKdgeAm&$a>_NwWxV7{A8+uaGhLUD?~vYT-0X2iXLR9 zUkNoNA``0zgO|(@9=||Dx!!qYK>IjBAjrZAigg45{5lK=Bfg`9y~~s$8MNQkZV#bN z8A2PfaDt0{HZZ6{(H<(kmjS*)3yMS*PAuF!8!#pQ+j|fbr70@~C@DZFPCKpZ&3KAC|)eJh0swdyUs-h39Dk7_p zba&2z27WQwEIlZM+ozaZg%mDN5Qqxab-#o2K5=t%X9zk|?Q$8%%^QQ;sqj=G)hW&f z231U?bvK?20GI%5bs@#{L47u0TF5pMA|}xT%T@4KA(`qDodT*CQ3sn2Nr9MFO{zjF z*+T>-(~3!qVbdbq^3G&21@0v-KB^gLuDyMK9+tUEc_)gg+jtf<@QaDNOkJBCDl5Xl z-pDGX4=x0OsF}E0X<(h)ur5>9^9eD$AfbblYAr+xWMze>`;0MAW#oGNYP1a?3Bqg( zxrJGMXvRodLxajSrnD=Q*T5epf$>AeA2b6H-)SR>BpXt zgdy0P*#FiF`r4m}X@O5Q_^}nlQVB#i3PsNn2~{^2Iyw6IaD{6$6OV&>C(aU2Yux9+ ze>Ij64P~@N>EgDr6v2m05e?s!{)dR5I+Z8At}C1-#}q(ZMqV@#`-o_Krq!09e^?wY zH17bbAU`^A?a7~DfohVWh z2Yp5G&LXL+^3cgK5TB50YiOM%5~|u_`xi07gc2Kjw z!>hJCeSe4us%w43ER4Vndu*`wf>ay*Akp|tt2Q}ZiW|7~!O3cK8v7G0P))+a^7ziu z)o|4m>_H&aR!>4f$ePf&VfdG0;8$BZDL36gh-sl->pns6rNOWvj)))%>@$GS z#5%iMn_;C7m|-1VtsU&AnkBBe+r6t6TC)|#4k+my_e65e1rBup5zjfN^ASLEAu3_V zL4sko%mq~Imw6|)osht7=w4fotFpKRv}_TS?6&=JN~j8|*mUjdaqw&gNQsdtMZ4f1 zU^eaWQfaXB5iXeff~BkxmKqlNvwTp^bSdKT{qL}O-U;iI$hAX9(K*n$`ZBDs_vqU*yKiub!F@df}wrPR(Y+z7DnRQ^JD11Hg=Phu^ zC7f>k*?@r<$G4FX5lRWI*o6O7CbJ3ADWH1OXk@x5ZqsS;r1j9FW<+2zt;n37={?3- zV)7DBsU>moQO&S|HrVtm4ASnKCobV^g1Q0%YT%GQfL}~!#Mg7afuPC>nG1R-denb?{*;{c|LqpB}ryB0wMC?Jj^_xJL>X9|HT z(*^u;%i)qv%ysA%WyJ6+;5Snst$*7^h&-ztLoIQ;T$A_ro}VTfG^#(2ct#$?p<`e` zMDFixI5P(Z)5>u}LR35c{k>xsh=YsT?9u*Ze6Q)?-Y=;9=R@@Q%S$ta$1jkLRHT`> zGdD~i5ZKHg_pH22Ab=ItZpyo*8XsnkMnW7@fo?-?t4Jr!3J%`?TrDVW2W73K*2#FIL~A7+4| z1-|a;LWsjhdnGgD#)%Lx8FKtB?42VZsvj&pz&Q3ZJ%IIOv2h&*AKUJmG48a^{?+lV z`ZH)HZq|jI6Gsfq1r4={fuy@~dRU+=*8mPeA)5GMgm6&&o^GX{t%xi6-3h}x(igX_ zT}((Cr|IhKX6E|yRNzzz5FN|&vhy&;+rfy0T<$buoiPTg*Wax5Kd=sv0wC2=MOez1 zbH+&E`~NhJ5Cz1Qgpc7C*Cub0k!&F%II62G3A}XySK2EHlM^MR0l4SHVOnMIm5dDF zE-IM3N!G$oEM(NCU+I;5ybD%W-C@8+&J~0NXG#FSR(f7}&Zmc{5CvL6hMamif)H?* zUQZ_hkQ{S;T$9CghOckzPj7q+{D@Z zXF@c^)T%B!`aCWooB)4B9`)rnm=heT8?e>HYQpy(Fx(IiV7qkO;{o5mB4A$nvy*-{ za$27^6%;irgBH3&3z2!{i23ZXP@9*F#ZWZBqInQZ@VLe`4n|f>f+6v{_ZJuK4Y=iH z>q%2#CtreJjmsC@rp$cOPtfjff$%_rDZT9=t>w7F=XsZ*OI2ES4F++I#0#RG6{N+0c#A?#`-vA~5gbXbxt3+?E8LgfV z<5mSo13CV4KP3F+sG=ZWwsGDPfZ&IDhxj;2z}7}K;SgH5wJt)0aDJha0RHiRMd6&_ zP`x1f(XO~E7>~izCyf8v#WO^m*5M;dpRUBUaPs(np?vmOsLkVATeB+H|oKAvYu4rvP#qMjV z>FV@C=m}H1*8f{Xh*TYo3zy@LXXHcot07>Yj1UDD)u)@4dOS&?;}pR0WDw|d zu$oK2xcdL5uKTCa(@HnA{+v8+eJ%xBj7$*D%%3|ZYIA+se+2l!L?s49hLl1h>5QQ9 z%NS=sn56uC*8cwW*DpCMQD5)oYHhn!O_5|C4Tc7@aN$CX_?2sNWThWt;ieUgHY8F= zVNuc(@HS`oSckni6i>j}j_K)w(~o;DtX+apmevyIl2?)0YG>k(wV%We_qYGw){WzS z6z(^g{KMc#K*7Py9P4bd1xF0NBJ!&g0`Z&0}vJzH9ffTO~LLt^4X+S_t%?k%*Of8=H!zPAn^7^LVa>LF?&CN=?W z$Th&e;WC&2(bsXvNl#UCwr1(mrJW~kt`%u+b9tK6=jgGZATbGXt27Wl(yJUK%UZQ% zSqvFAN#g-ImwWDnvwa+cI*3pfyl*_jlx9xH3zUg)9SY<7X!CZJFCn76kHJmtduEXL z!dT2{c&{bYZc1Y=Mc$*-*q%Rg7$js%p>%7+MMQ6vaN_J^s=oLvv&DuGnl?%vtoHI% zsqF!@7Uc#y*V-E8HCRHQoE)PeP0wVzzdcJHxA)SJ<}Bg4i}*!1&n4mQZ!d*R2+~^> zia32MM#gT3nbZLmHJ8bWzTxx}jPMUidDh+^qfdW?5qcdaGnkm?#(|pfV(=D+knSw$ z+ATt`IXef(p4-e8dHwb%4ypJs=Fe3dxGyXGo~(t3Jeswrr?Dy|-iSdGOr%cF^bPI) z4Uh7Gv)dXvvTAK4#tDr9=Zro8=GlZk7K=VF)^5wOW4KrZJ&Uz^t0V?|k#RI=HY6;< zhuUpNv-iLuCc6SozrFbtcLqF1$%TLDnC|-gCT&*u(`DxdzpCDm7 zD3%I*@nsI6s{MIwW>LEXz20ix{ai5#$_^(LI@pcuyzhivaWu8K}KP4XhdtVtZv z;{~ITW=qI|!&Rt^l&m%NnFICLLp3~ysA2wWjzpZc@W2og4B3L&Zu1moGp^W*gJ6}{ zp(<)1`*1jvmuZZ1(21?Gtdr!ucKe)yD$&r)7U0toz=TDbupekaDa&cwY{m1e;(@E> z-0oZpdy^M5l2)5SQupVhom1{1x!KX&J^CM6#tB|t<;?zEK9*L|f;V{$oGsY&De1W1 zPvU2{|5UJKEQWnOsF-Fqo3y~Nh>X6~v%_-b<=fMxbDCLNfV-ExdRaa?bw500ga`u{ zMQT8C%=n(`qB3uPREYm!33~GyuoDUHx{rOAE+NQ(D}3{ib2_9ARE^-p#sjm?qfjce zckkOz4sfF&Kal%>dt%`8kUkdD4lW0B{fhg9uF7whi6 z1A$pJlG<`nFAc!)g2LE|8SvxDNZ|Qn?1T_oKG0hWo?}C_yokGvBia`N@(e_z*~-g7 z8Xz4D`7V1_PZ!VLeYiS%&mRYjx=p?&_T|MuUUsHoXxi~SSN7BS`bGLGloL;Nj7HWfs2c>xQpic? zJB3j`!`k#7cPr1BT>ld`gFOjc>WW{8@fFwOE)>>}F2kYqkY8iH2DMrACLE$^k*@i^ zTe5S`A;@OK=tv^Alhj`WOhPE`4HnW9T)67P(>|k%X&;<#Cf2xO35hjv97)KJ(1QGs zzzF1S!BySMBj=N~fQQFA7rXB3KpsBZFX+Hx?YItk+V%LO1 zZXD#rpI*9h$YONEBy(Bw7aR_;#9OM}wr1E1hnAUK!+PqQ5b)MUP3jkuieB%67M5La(rslC|Sf32pWm zPWp4(p9-C}cT#Q7sG_O>SBUKwRtZ~ivt2}7b-I=tylB>eBCn76Qwj$ky zXX)bz(K&7c5IDN z6)5Pws@N~@YX?ismf(GMDrD+t_?l2;RdnLf@=MLa0Z(tuO3~-QN#~~MO?h&=&G*hI z47DStya@($-tAw?nSs-aJAXBvVj(`c|}$*~yQD$_p;EDj;{pgnT_5@!|}7QvJzOJYXltsQQFL=WVh zl*I8XoJnAZTDIOKr-{fme#h9mi)MaI&Wehm+-rCyWunqMYstmtBIrGRdE7|6ygbv@cfy$IY2kIL)IFqoLVHFCx z2)S)8T?6Z6Z#&X~diNG@8g{EyfrZ#ID2tYNIkT{$K%w9+3?F?x^-XlgN{m!mIhuz3 zbMUzxTrZS$Ag_9LAg_|RBD`CCEDIq*u0GAC6hS8M_Zz`>u^mDjqs5vvel_?Ka7Hra zI1(~!MAul@MHpNstrCP);!8!D!`%*lEMwP~upvUN!oLb<4l1Ec%z}E0an<;;P>Ez> z60|!?Yw#tZ9LTCn3`=H5k+Q?1D2JZ4`En><9HShT)ZxoPIgE+>f_m;>pWw_vEsC8y z*!|cAbjK)3cMPb6RU!b&|Us~IjF_3l>-J_O3M5M9ia^yab}?$!o;eeB*rx1 zOF|`r-P$<1_a)dv3slZ1iPHhRNH_;Zin80@<#%)39drlV$wp@9ldxf9seiWdQk-6&X<;&{ep`@DmYzE@@Uz%{fBUjk_=fvf56fZ?|gzTcD> z!&_bXvQPcWl5Y_C`UPy;)mGCw3jdq({1rq8e=398v z7%Rxv?vy$FY2(Zx-ENcTpj=8#e2Fs$l{nsN`j>P5hEZ&m43E8IIkQj>702OYb&5lN?9QH18ai{^1AqL%56OsRUJ7@ljHB;Wk| zb>1|TQ@y$m4Ow~>10@~iK@GJ1V$Lj7ay_waP!?<6c(G6|_BXkZ+prZn;JUD~mW&QA~YjM_K-6 z=QD($KPZQ5IBg5rs>a0^HUn_>hjQjSzQOcjmibB-91gDM%t0mb6|upB$SihSHJD_2fJuOy6p1$HohE` zb6&9?s6AZU&Y6Q!$~*kZ^lI!bmX7dIG|3D3;9sCnu8fzO#Ig_h@=#8A#oa-ZnyY&_ zb5P57#Wd&;4gHue4V83vNUw;*A7B?FC9&(x{d`F%XS-rWP}_Xy6W$!ul3g(mnpq`( z#+Qd$t~)NwtI9>E_`^?2PN)5)zgF!d z6WDT^7Xj5Z!NvU(=g3sfZ>zRz*U|tE z8R!gZ44Je2d> zzC#D?ABy3bB3YruT$3@e$ULX;JEk-o8{JtGu5-R!a>TPRI6`?;yqCY5!w>t49p_1QT>;CNU zok(a};7W}M@~X+PXL*odX{FrC!ZH8eXINc^6$|N>g@1bSz_kiF9=0sR9%!*-6l?&e zNxP|kNFUA&lxwESbDYRf&Los`2xSs0`f(~}Ma3~du6x!G`4_3#oiCE$+(5411CvaCk6PPXpJ z<-+@r{vC7!9h_}!d34$2N9bXxmWEun|5lF8@Xe7+o1 z9K@aqSKkXpw5TbW`1PE?mxQ{5IJk5{on-KMM>5-abP``4Dh`6pEnpOm2XhV4^W&>E z-47XYMnEfW0rYed!_%UMaBA5!4^62zTqA#Zb`Q);7ob&Cx<$_{?;2J(ZzJYt!%pdF z)q+nqQR_Ngn+0AGS3hf`#<1+BY%}%@41i_?<}bjoV}rz}@pyNF4pmF!VhL^K6Lg#h z>d0K{I4}9&{v+_3U7mDTOR-PwD`@|Ag~x`OppG&4^d@RKyTTVS)H{Izxa|E|g7)D` z?*|==I+8;>!u~XkKGy+<6Hj(Oxwh#lA0Zq!ld0Tv&~59x*K#pJs$mF+5vi;veS{1$ z26O+&im2|6*AhcH(G<7!1AY^ zRa?I!d;pf&CbV)t?QGH&je_>W2`s_zrmFb<4}B5+JMyO(IF5cq(TRU+#1HQqDdfpZ zeQj;}$qW=>b_VElLka5cyBbmBgba4)6AlPVFyru19Dk`Qf5*zbo{E5V|J2o8|C_4R z@;ZHUj9HhVl?(soZ=;URhyL3@{{qp(m?t^m$J_FZLSSDZLvJ_QT%;WTDBn5xAK6FG zf*Wv%IY>=!H~!5%&=cFWVj!gUHsDGs#_YHQBL+wJmV;Kn z!e5fu2FS${T6G$8rRBJ2wZBEkFyxklR@bExeTm%T`fBAMujwVzb=B5k z26h;TK?JdSqy|LAqx^G^+^u*H5(WZ~W+#F1+VE7elU0}Y&fWka+vD~ns@A;08bDPL z=a!ZP1=YhrH(lKGz6GhiBC`8uRUlJNh3@$l_L~Yp<48|Nn{h29R;n_7l_8boc4qpE0_HGb3j1+{b ze)BY~1YmICCYz$!UGQ7!e-+SEV0N^ecHuRx(ETljYz%-gf(P+CH=SUPlI{NFIa)a+ zU_Xrq_*ZIWhh;a^=^n$(E0~P@zYJ!kWwEj|JYt}Ce}^Sz?}(T&+P zVlTtD(7oWJwSxs4advR1-e45cJsdNArfdA+KzQ^kD6h~lwq~nlneSt(`1f1Q_qQ1Y zJ-h+U(=itQxn=_FI(dDn(qZm(OTNlZsE$<3-+lL3!~bxD?u)yBGZpW6z4%O%J#*mR ze#6{vSefZLe_Zwhez$t- znLytLbSn0-hkQhjO&y7HibLW+#zekfhd2AwpS?dF@VNT~>%SGX1IuHIZHd+hk5~5* z6Z30UJd&7`koEP<3Rp^6goK~o%GRTXMkw4-qi#_@zyH_BpMf0=XGyU?sH+*|=^VeItW4>#YRjW;&)Sg#AFwjN-Q|>gUxr2Bf!MK-_u=AkyEwc zpgYUztAP)GRlA`x)PMcbD7dFD5qyV}2v9VGJCOwQD8XbHt91L5rJz%fb>K2xqLlnu z+_@xK45-z}yRyA`BfEBk)$K)TlWxh}IF}C*dEBByXUDBZy!Zx6pp%`UA85pl*5h~{ z!4k+SRb{`+b4c7!A@)(=v$;Oa$6xu7BL`HFRB3!1(ka3KRj?^HYLud<_D7s(#F$kX zgzK7Hn*;rAD1z?)yR(-Q1E=#QAZh+C_=j#- zBBH~g=pY{s@}~IMx+gp95CG(WDo$S*cN=3dMkan?uZB(p^=t6*abaylNA8AMOq<=RU7LS&c2*;idHwHCFb z(=GSVl51CpY_r!ZJY4G_(w>2Ral{8{_J%jjDr`zf+ju%D4Xx(j^E_$2{!Ml932FDe X2oIxR#qKL;>oJXON~iljxcoTj literal 0 HcmV?d00001 diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/recordservice-core-0.4.0-cdh5.8.x.pom b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/recordservice-core-0.4.0-cdh5.8.x.pom new file mode 100644 index 000000000000..c4e7c48d2678 --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/recordservice-core-0.4.0-cdh5.8.x.pom @@ -0,0 +1,9 @@ + + + 4.0.0 + com.cloudera.recordservice + recordservice-core + 0.4.0-cdh5.8.x + POM was created from install:install-file + diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/maven-metadata-local.xml b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/maven-metadata-local.xml new file mode 100644 index 000000000000..bebbea654f3c --- /dev/null +++ b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/maven-metadata-local.xml @@ -0,0 +1,12 @@ + + + com.cloudera.recordservice + recordservice-core + + 0.4.0-cdh5.8.x + + 0.4.0-cdh5.8.x + + 20160429022605 + + diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java index e5be69ecd976..35c6b7350be3 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java @@ -18,6 +18,8 @@ import com.cloudera.recordservice.core.RecordServicePlannerClient; import com.cloudera.recordservice.core.Request; import com.facebook.presto.spi.HostAddress; +import com.facebook.presto.spi.PrestoException; + import io.airlift.log.Logger; import java.io.IOException; @@ -32,6 +34,24 @@ public class RecordServiceClient { private static final Logger log = Logger.get(RecordServiceClient.class); + public static List getDatabases() + { + try { + return new RecordServicePlannerClient.Builder().getDatabases("172.21.2.110", 12050); + } catch (Exception e) { + throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); + } + } + + public static List getTables() + { + try { + return new RecordServicePlannerClient.Builder().getTables("172.21.2.110", 12050, "tpch"); + } catch (Exception e) { + throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); + } + } + public static PlanRequestResult getPlanResult(RecordServiceConnectorConfig config, Request request) throws IOException, RecordServiceException { diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java index d2253e398d5a..6bba70ba3488 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java @@ -13,6 +13,8 @@ */ package com.facebook.presto.recordservice; +import javax.inject.Inject; + import com.facebook.presto.spi.connector.Connector; import com.facebook.presto.spi.connector.ConnectorMetadata; import com.facebook.presto.spi.connector.ConnectorRecordSetProvider; @@ -33,6 +35,7 @@ public class RecordServiceConnector implements Connector private final RecordServiceSplitManager splitManager; private final RecordServiceRecordSetProvider recordSetProvider; + @Inject public RecordServiceConnector(LifeCycleManager lifeCycleManager, RecordServiceMetadata metadata, RecordServiceSplitManager splitManager, RecordServiceRecordSetProvider recordSetProvider) diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java index 349096efc4f2..5ce4f6f97d7e 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java @@ -14,7 +14,6 @@ package com.facebook.presto.recordservice; import com.cloudera.recordservice.core.RecordServiceException; -import com.cloudera.recordservice.core.RecordServicePlannerClient; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorSession; @@ -24,7 +23,6 @@ import com.facebook.presto.spi.ConnectorTableLayoutResult; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.Constraint; -import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.connector.ConnectorMetadata; @@ -32,7 +30,6 @@ import javax.inject.Inject; -import java.io.IOException; import java.util.List; import java.util.Map; import java.util.Optional; @@ -45,32 +42,18 @@ public class RecordServiceMetadata implements ConnectorMetadata { private static final Logger log = Logger.get(RecordServiceMetadata.class); private final String connectorId; - // TODO: close plannerClient ? - private final RecordServicePlannerClient plannerClient; @Inject public RecordServiceMetadata( - RecordServiceConnectorId connectorId, - RecordServicePlannerClient plannerClient) + RecordServiceConnectorId connectorId) { this.connectorId = requireNonNull(connectorId, "connectorId is null").toString(); - this.plannerClient = requireNonNull(plannerClient, "plannerClient is null"); } @Override public List listSchemaNames(ConnectorSession session) { - try { - return plannerClient.getDatabases(); - } - catch (IOException e) { - log.error("Failed to listSchemaNames.", e); - throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); - } - catch (RecordServiceException e) { - log.error("Failed to listSchemaNames.", e); - throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); - } + return RecordServiceClient.getDatabases(); } @Override @@ -103,20 +86,9 @@ public ConnectorTableMetadata getTableMetadata(ConnectorSession session, Connect @Override public List listTables(ConnectorSession session, String schemaNameOrNull) { - try { - return plannerClient.getTables(schemaNameOrNull) - .stream() - .map(tblName -> new SchemaTableName(schemaNameOrNull, tblName)) - .collect(Collectors.toList()); - } - catch (IOException e) { - log.error("Failed to listTables.", e); - throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); - } - catch (RecordServiceException e) { - log.error("Failed to listTables.", e); - throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); - } + return RecordServiceClient.getTables() + .stream().map(tblName -> new SchemaTableName(schemaNameOrNull, tblName)) + .collect(Collectors.toList()); } @Override diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java index 8ebdbf16e30b..464a4dac1cc9 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java @@ -20,6 +20,8 @@ import java.util.List; +import javax.inject.Inject; + import static com.facebook.presto.recordservice.Types.checkType; import static com.google.common.base.Preconditions.checkArgument; import static java.util.Objects.requireNonNull; @@ -29,6 +31,7 @@ public class RecordServiceRecordSetProvider implements ConnectorRecordSetProvide private final String connectorId; private static final Logger log = Logger.get(RecordServiceRecordSetProvider.class); + @Inject public RecordServiceRecordSetProvider(RecordServiceConnectorId connectorId) { this.connectorId = requireNonNull(connectorId, "connectorId is null").toString(); diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java index 5440328b6f84..01479f5c6591 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java @@ -20,6 +20,7 @@ import com.facebook.presto.spi.*; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; + import io.airlift.log.Logger; import java.io.IOException; @@ -27,6 +28,8 @@ import java.util.Collections; import java.util.List; +import javax.inject.Inject; + import static java.util.Objects.requireNonNull; public class RecordServiceSplitManager implements ConnectorSplitManager @@ -35,6 +38,7 @@ public class RecordServiceSplitManager implements ConnectorSplitManager private static final Logger log = Logger.get(RecordServiceSplitManager.class); private final RecordServiceConnectorConfig config; + @Inject public RecordServiceSplitManager(RecordServiceConnectorId connectorId, RecordServiceConnectorConfig config) { this.connectorId = requireNonNull(connectorId, "connectorId is null").toString(); From 2def3cc1e888cd97ab9e6d5e2c82ec6216f150be Mon Sep 17 00:00:00 2001 From: lili Date: Thu, 28 Apr 2016 20:17:49 -0700 Subject: [PATCH 13/28] add RecordServiceTransactionHandle --- .../recordservice/RecordServiceConnector.java | 3 ++- .../RecordServiceHandleResolver.java | 7 ++++++ .../RecordServiceTransactionHandle.java | 22 +++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTransactionHandle.java diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java index 6bba70ba3488..a9beffd5d68a 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java @@ -24,6 +24,7 @@ import io.airlift.bootstrap.LifeCycleManager; import io.airlift.log.Logger; +import static com.facebook.presto.recordservice.RecordServiceTransactionHandle.INSTANCE; import static java.util.Objects.requireNonNull; public class RecordServiceConnector implements Connector @@ -49,7 +50,7 @@ public RecordServiceConnector(LifeCycleManager lifeCycleManager, @Override public ConnectorTransactionHandle beginTransaction(IsolationLevel isolationLevel, boolean readOnly) { - return null; + return INSTANCE; } @Override diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceHandleResolver.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceHandleResolver.java index 2e95fca2f984..ad1b479bd931 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceHandleResolver.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceHandleResolver.java @@ -18,6 +18,7 @@ import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.ConnectorTableHandle; import com.facebook.presto.spi.ConnectorTableLayoutHandle; +import com.facebook.presto.spi.connector.ConnectorTransactionHandle; public class RecordServiceHandleResolver implements ConnectorHandleResolver { @Override @@ -39,4 +40,10 @@ public Class getColumnHandleClass() { public Class getSplitClass() { return RecordServiceSplit.class; } + + @Override + public Class getTransactionHandleClass() + { + return RecordServiceTransactionHandle.class; + } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTransactionHandle.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTransactionHandle.java new file mode 100644 index 000000000000..c27123fac13a --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTransactionHandle.java @@ -0,0 +1,22 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.facebook.presto.recordservice; + +import com.facebook.presto.spi.connector.ConnectorTransactionHandle; + +public enum RecordServiceTransactionHandle implements ConnectorTransactionHandle +{ + INSTANCE +} \ No newline at end of file From 416f648d5536601f1dfde442082cb179cc9ac345 Mon Sep 17 00:00:00 2001 From: lili Date: Thu, 28 Apr 2016 21:55:04 -0700 Subject: [PATCH 14/28] update default recordservice planner host --- presto-main/etc/catalog/recordservice.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/presto-main/etc/catalog/recordservice.properties b/presto-main/etc/catalog/recordservice.properties index 1508931478bf..b7e362982408 100644 --- a/presto-main/etc/catalog/recordservice.properties +++ b/presto-main/etc/catalog/recordservice.properties @@ -1,2 +1,2 @@ connector.name=recordservice -recordservice.planner.hostports=localhost:12050 +recordservice.planner.hostports=172.21.2.110:12050 From f20f547f8fcdf924d2e089c0306ddcf205e5ec83 Mon Sep 17 00:00:00 2001 From: lili Date: Thu, 28 Apr 2016 22:18:53 -0700 Subject: [PATCH 15/28] update Request in getSplits --- .../recordservice/RecordServiceSplitManager.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java index 01479f5c6591..1d317a3b4f53 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java @@ -30,6 +30,7 @@ import javax.inject.Inject; +import static com.facebook.presto.recordservice.Types.checkType; import static java.util.Objects.requireNonNull; public class RecordServiceSplitManager implements ConnectorSplitManager @@ -49,8 +50,13 @@ public RecordServiceSplitManager(RecordServiceConnectorId connectorId, RecordSe public ConnectorSplitSource getSplits(ConnectorTransactionHandle handle, ConnectorSession session, ConnectorTableLayoutHandle layout) { - // TODO: get request info from layout - Request request = Request.createSqlRequest("select * from tpch.nation"); + RecordServiceTableLayoutHandle layoutHandle = checkType(layout, + RecordServiceTableLayoutHandle.class, "layout"); + log.info("getSplits for " + layoutHandle.getTable().getSchemaTableName().toString()); + + Request request = Request.createSqlRequest("select * from " + + layoutHandle.getTable().getSchemaTableName().toString()); + try { PlanRequestResult planRequestResult = RecordServiceClient.getPlanResult(config, request); List splits = new ArrayList<>(); From ae67f9c5572f1f1116e2a7f50b863e975ab71886 Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Thu, 28 Apr 2016 22:44:53 -0700 Subject: [PATCH 16/28] Add more implementation to metadata --- .../recordservice/RecordServiceClient.java | 10 ++ .../recordservice/RecordServiceMetadata.java | 102 ++++++++++++++++-- 2 files changed, 104 insertions(+), 8 deletions(-) diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java index 35c6b7350be3..f09631831db9 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java @@ -17,6 +17,7 @@ import com.cloudera.recordservice.core.RecordServiceException; import com.cloudera.recordservice.core.RecordServicePlannerClient; import com.cloudera.recordservice.core.Request; +import com.cloudera.recordservice.core.Schema; import com.facebook.presto.spi.HostAddress; import com.facebook.presto.spi.PrestoException; @@ -52,6 +53,15 @@ public static List getTables() } } + public static Schema getSchema(String db, String table) { + try { + Request request = Request.createTableScanRequest(db + "." + table); + return new RecordServicePlannerClient.Builder().getSchema("172.21.2.110", 12050, request).schema; + } catch (Exception e) { + throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); + } + } + public static PlanRequestResult getPlanResult(RecordServiceConnectorConfig config, Request request) throws IOException, RecordServiceException { diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java index 5ce4f6f97d7e..2a230e3827de 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java @@ -13,7 +13,8 @@ */ package com.facebook.presto.recordservice; -import com.cloudera.recordservice.core.RecordServiceException; +import com.cloudera.recordservice.core.Schema; +import com.cloudera.recordservice.core.Schema.TypeDesc; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorSession; @@ -23,9 +24,22 @@ import com.facebook.presto.spi.ConnectorTableLayoutResult; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.Constraint; +import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.connector.ConnectorMetadata; +import com.facebook.presto.spi.type.BigintType; +import com.facebook.presto.spi.type.BooleanType; +import com.facebook.presto.spi.type.DecimalType; +import com.facebook.presto.spi.type.DoubleType; +import com.facebook.presto.spi.type.IntegerType; +import com.facebook.presto.spi.type.TimestampType; +import com.facebook.presto.spi.type.Type; +import com.facebook.presto.spi.type.VarbinaryType; +import com.facebook.presto.spi.type.VarcharType; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; + import io.airlift.log.Logger; import javax.inject.Inject; @@ -36,11 +50,12 @@ import java.util.Set; import java.util.stream.Collectors; +import static com.facebook.presto.recordservice.Types.checkType; import static java.util.Objects.requireNonNull; public class RecordServiceMetadata implements ConnectorMetadata { - private static final Logger log = Logger.get(RecordServiceMetadata.class); + private static final Logger LOG = Logger.get(RecordServiceMetadata.class); private final String connectorId; @Inject @@ -68,19 +83,28 @@ public ConnectorTableHandle getTableHandle(ConnectorSession session, SchemaTable public List getTableLayouts(ConnectorSession session, ConnectorTableHandle table, Constraint constraint, Optional> desiredColumns) { - return null; + RecordServiceTableHandle handle = checkType(table, RecordServiceTableHandle.class, "table"); + return ImmutableList.of(new ConnectorTableLayoutResult( + getTableLayout(session, new RecordServiceTableLayoutHandle(handle)), constraint.getSummary())); } @Override public ConnectorTableLayout getTableLayout(ConnectorSession session, ConnectorTableLayoutHandle handle) { - return null; + RecordServiceTableLayoutHandle rsHandle = checkType(handle, RecordServiceTableLayoutHandle.class, "handle"); + return new ConnectorTableLayout(rsHandle); } @Override public ConnectorTableMetadata getTableMetadata(ConnectorSession session, ConnectorTableHandle table) { - return null; + return getTableMetadata(schemaTableName(table)); + } + + private ConnectorTableMetadata getTableMetadata(SchemaTableName schemaTableName) + { + Schema schema = RecordServiceClient.getSchema(schemaTableName.getSchemaName(), schemaTableName.getTableName()); + return new ConnectorTableMetadata(schemaTableName, extractColumnMetadataList(schema)); } @Override @@ -94,18 +118,80 @@ public List listTables(ConnectorSession session, String schemaN @Override public Map getColumnHandles(ConnectorSession session, ConnectorTableHandle tableHandle) { - return null; + requireNonNull(tableHandle, "tableHandle is null"); + SchemaTableName schemaTableName = schemaTableName(tableHandle); + Schema schema = RecordServiceClient.getSchema(schemaTableName.getSchemaName(), schemaTableName.getTableName()); + ImmutableMap.Builder columnHandles = ImmutableMap.builder(); + for (Schema.ColumnDesc columnDesc : schema.cols) { + columnHandles.put(columnDesc.name, new RecordServiceColumnHandle(connectorId, columnDesc.name, convertType(columnDesc.type))); + } + return columnHandles.build(); } @Override public ColumnMetadata getColumnMetadata(ConnectorSession session, ConnectorTableHandle tableHandle, ColumnHandle columnHandle) { - return null; + RecordServiceColumnHandle rsColumnHandle = checkType(columnHandle, RecordServiceColumnHandle.class, "columnHandle"); + return new ColumnMetadata(rsColumnHandle.getName(), rsColumnHandle.getType()); } @Override public Map> listTableColumns(ConnectorSession session, SchemaTablePrefix prefix) { - return null; + requireNonNull(prefix, "prefix is null"); + ImmutableMap.Builder> columns = ImmutableMap.builder(); + for (SchemaTableName tableName : listTables(session, prefix)) { + columns.put(tableName, getTableMetadata(tableName).getColumns()); + } + return columns.build(); + } + + public static SchemaTableName schemaTableName(ConnectorTableHandle table) + { + requireNonNull(table, "table is null"); + return checkType(table, RecordServiceTableHandle.class, "table").getSchemaTableName(); + } + + private List listTables(ConnectorSession session, SchemaTablePrefix prefix) + { + if (prefix.getSchemaName() == null || prefix.getTableName() == null) { + return listTables(session, prefix.getSchemaName()); + } + return ImmutableList.of(new SchemaTableName(prefix.getSchemaName(), prefix.getTableName())); + } + + private List extractColumnMetadataList(Schema schema) { + return schema.cols.stream() + .map(columnDesc -> new ColumnMetadata(columnDesc.name, convertType(columnDesc.type))) + .collect(Collectors.toList()); + } + + private Type convertType(TypeDesc typeDesc) { + switch (typeDesc.typeId) { + case BOOLEAN: + return BooleanType.BOOLEAN; + case TINYINT: + case SMALLINT: + case INT: + return IntegerType.INTEGER; + case BIGINT: + return BigintType.BIGINT; + case FLOAT: + case DOUBLE: + return DoubleType.DOUBLE; + case STRING: + return VarbinaryType.VARBINARY; + case VARCHAR: + return VarcharType.VARCHAR; + case CHAR: + return VarcharType.createVarcharType(typeDesc.len); + case TIMESTAMP_NANOS: + return TimestampType.TIMESTAMP; + case DECIMAL: + return DecimalType.createDecimalType(typeDesc.precision, typeDesc.len); + default: + throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, + "Unsupported RecordService type " + typeDesc.typeId.name()); + } } } From d0f8247262a145f58cfb9e1f318028ab26fa4102 Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Fri, 29 Apr 2016 00:38:42 -0700 Subject: [PATCH 17/28] More updates --- .../com/facebook/presto/hive/HiveSplit.java | 10 +- presto-recordservice/pom.xml | 5 + .../recordservice-core-0.4.0-cdh5.8.x.jar | Bin 1279848 -> 1279850 bytes .../maven-metadata-local.xml | 2 +- .../recordservice/RecordServiceErrorCode.java | 3 +- .../recordservice/RecordServiceModule.java | 5 + .../recordservice/RecordServiceRecordSet.java | 20 +++- .../recordservice/RecordServiceSplit.java | 96 ++++++++++++++---- .../RecordServiceSplitManager.java | 30 +++--- 9 files changed, 131 insertions(+), 40 deletions(-) diff --git a/presto-hive/src/main/java/com/facebook/presto/hive/HiveSplit.java b/presto-hive/src/main/java/com/facebook/presto/hive/HiveSplit.java index f192d20be9c6..db1075ac5abb 100644 --- a/presto-hive/src/main/java/com/facebook/presto/hive/HiveSplit.java +++ b/presto-hive/src/main/java/com/facebook/presto/hive/HiveSplit.java @@ -195,10 +195,10 @@ public Object getInfo() public String toString() { return toStringHelper(this) - .addValue(path) - .addValue(start) - .addValue(length) - .addValue(effectivePredicate) - .toString(); + .addValue(path) + .addValue(start) + .addValue(length) + .addValue(effectivePredicate) + .toString(); } } diff --git a/presto-recordservice/pom.xml b/presto-recordservice/pom.xml index f91d9a646955..ad8526722651 100644 --- a/presto-recordservice/pom.xml +++ b/presto-recordservice/pom.xml @@ -35,6 +35,11 @@ 19.0 + + com.facebook.presto + presto-record-decoder + + com.facebook.presto diff --git a/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/recordservice-core-0.4.0-cdh5.8.x.jar b/presto-recordservice/rs-repo/com/cloudera/recordservice/recordservice-core/0.4.0-cdh5.8.x/recordservice-core-0.4.0-cdh5.8.x.jar index 675dfa32c44e3755d8dccc6ab04deff391dc20e1..a733e4f68d6ad1b8012975f1069f512227bc10a7 100644 GIT binary patch delta 43826 zcmaGp2UrwIv+S}t?<|6X5{xJk%!&!K2qMPAjOomZ;miu=ESPAsV9uhbZ5DGvMb8{D zX9aWiRafuMGT#3^zwbS6D|K~Mb#-;kO#jbjMZK66Wr&V&Rk*omG#Zx!`)3=f$`9-( z`$`(TW_O(i|2aFSEd2kuMP&>=x05WK{n;dofuYrpEMbZS`Jku!BR2pone$y1;bH@LNm+a`8OM^C4{%f;qk6_}WaLxf$2X&dnK8 zfMh8IRr;MtTM9AY{c7dY53j1CV*kD6MOhN264dDxHr~Ys{N=}$pEb=? ztKqanm*Ss72aVl$wB5j`vsUcvd-LXpZp%}5?b?~RW9H}*yL=ZW-CXsyc+Y*U;={%? zY~}g=^`P$l=D#KeU0t;ALY42Y(m($?c;LeQnV&oCQN~vNwLZ=7vFT*<0+p8Usvhv> zM#*atPy4*xG5hM{PV2tuRqX!nmwQ%y?B(A)W_|ZUmF{*K zIcxrapqRB~ca5D=d-bc^h0oqz{O`t-eS)9vzOnN3Pu+$h?=q*CSh9U>(9a0JMFX0* zdXlvG{h$_aE?0biaPHKhp;Zpm^DEPR!_N2p`VGDDtID;i>6Mm#dev^r>Y4SA)F>3+ zO!KjX+nIV%Yw~p-x^r;(m(`ZixjoygTd{f6i3|UXY_V%k+m9t%Oj+;!bX?<&o1?Dg z-f~;?;x}m>e`=8G#}{jObi~mz6Ssex)TMZ@+=Ko{)-}JrBjcRv&0jGq1`Qq9a8CEm z`I1{bkZo#pefw^=0x=N-mnNp)xr_n##`FcKyS`Z(T__@J0lUL+|fde&O`FhEB zmTo<}^4nWee`F-QZaTEUi{n%^G2hVWkgRoHre#T>zl23#V!$Uji;QwJM!4K ziW9$0l>ePwOIatY%5%%cbNaDeJ^R?qsjc_lS)cY#tsYVRjcKDQPb+l2?+VYe$8%dv z>{jp7lEJRu7W6pUsLF%*@x@zBaXZo>dFGJH4QedBKDklrd;M3`UuC&D@pv86^sW!v z58rsB-ZbI#BxU;Sr%$I%jI435ZC958H~W8WHT15}>F#J8OHM@3JRByU_*rJ_lk0y`s-CyD3`^}At56mfM8y-I*^udS^Ey}EZ8d7TVwmyY# zst$epscrgO6Ey8xgBu?w6}0(yxWCRQSGRS*ki9o*g%6zkY>cp6xD#>t-0tGbjDu^g zj8)Cr)9=Kt?JMqv1b-;fPAX3lG|kUcY?llfipe=95lkH}>3} zrCYa*UdtF%bZqywJ-27ZAG~4elM$batawwWHdc-~ZS7 zAAvKsCmbm-BFa?yi8f^8+S7MBdVlCJvHkQh;gPpu_Fg#mWK_UQpY*cBw{PEmvOs2= zF?UxMy!&*`Kfy_s#MWJdme*?VX!7Vo|DL|t{_FkbyZ(w_()#AZw(HAH-aPw3<d^P-v5n5eKhjs6;Q#io8r3TQn(O`7fXub>$G!Fp|44>z{PoWCxKi!*!i+=lPoA~D zY0TYMwc^z8oo7Cbd0)0h$k_PCg-`VB{8F*&EU&RX zpZ`klkgNH~tQ#&MdecbN#F7NJ_+SN4n#(_!yw4b^7WSLR6Wmhkcm!DU~ zUs6^d`twuU&i%h{4y$uaUc9!UEY}VTqhXz~|Cfu#JRQ9q^zhUETwa4}w_od~i%?si;1S~RS?2M7!i|(=X$d$X{ zqh7|fzO~`|@{>gl_ZhUi_>W%4-!$A5)GVXIlQIhe`!71O_ioAE2mYBIK5FZlQNjg} zoZ6a`!SmO@q#ezdZ?+oHyK*a!t8FLhmi%5=JE!W@j+gq$f~Ovc?X|Yd#OVIb+wTr) z*1SXS$On~zdtNKn-Q(1iEAdmh6kNIFMwluxX`}VY>ZqUr+xK~DZ?7s^;6VNN!S8!# z>$D+fvPqe1M?P7;Eja$yj=SN1_ny}3$nJ*aI~03bWOv<>N4^bg7xeCK#^N1aqi(HR zVLV(SwRg9g*UWLNmlmwi&}_a)i{`#a>7FQT9P%NDn%h^~>@~jbo5EYyM~ph#{z?3_ z*m}$F*4bG$XZHy8$nGh{x(z52rVq|)Uvm7;THC@GRtO*4H+lO8ZA8;6^`{lfm$Yf7 zpXN%V%Wc}09x{7XW}P;3QqJxuT5IyoqO}^V8E+cW>RhQ44=;}z*XF>Iw-3*cDgIh< zHT!hufZ@|`KZvhX@7~Gvfys-fySaQJNgFOudBygJehzsUU(&Z* z`m%$+XH5b;`^+H0Wu~9bJE@qa)OsO}mD^$x^$xd^fweyI0Fr;g;{IJ+?lxFGe{~d<4m7k&P+!=TD>26myu;1w!*B4+3<)}Z>XWUt( zV|4}8e(7DGHAJE-$h zu~%i`Bt<7PkaKMWBRwLMC840EdrW~O$z2veHz{Q6vDEnys;otl^nx4Rq?6r2(17!H zDsrx^V5J`{vc6JM5@iw!k&Z1DdYbJn3;KiUo(Y(S7nCiQ!fC(4vegLkeP~22{An+L z4q9sslA+?PR-|F&W%IE}ggUT12{Q|xq>ok5(~xR1ceL)C7K&OVY^2PagnV#SkXesi zEp%T^*(sD>Vm(aAiR>RCD@meLWhUxVU-pt&j~XImd(j-Pj{ZsNMPi$S_J2jm3ZQ!$ z_m*|!gMb__n$t{H0Xfk`8CIbpS>8fW(WI8Ld1hw#>%kh(I6@XcGKR@iq)9QsL>G3G zZD*QM5EhUBaXwCVkcpwQ2FZ4yN_B_H_Ml+24G1oa0%+Hfvi>M|c_pwJzzb2I>9WB{ zx~&c$%bnhvDf`#JhHtu89=U6=>@pgnT`bJb@&$q*W3$YMtg9ioksLv#plwoR**I#o zHL}GhN}mb_b&!^#(d%V?IQ@_lvQ{KEO{O3rsWO4y+bk=I^aDm30!hkdSs?A2CL4+h zb{YynW4SB~p`jVF4>(QW{)C!LUFFck*GH&9(=%l@6w_&=W7v?(vY`3dt{M_oRjH=U zF31vb{FrxkMhXN?7!QTe?jo?c4%qD)PST3WZDJ6Z$=RB&dK&v&b{mJikjc3#k!1qJ z_nEh{W~i6Xw@CytZ4ULHxzg@w`tJnTthf66>i!RSY-@+5AJtN^hT7Hr(t z_kPR5tV|O>tGpcst%KXbo&L6v+@C}bQER9*zkCF0BFp8vmLt&vWL_lgj8aPjz2)2r zyWewU4Tk}A^p>xD8YNY3&@G_2od0eNcy{p+#AE7R+yp|jqNCZisL%Cy~*1l;DM9f=YrJltI)mN4^^2;No^9cB`^FjhrtxA&A8WO(OD*?7U1M7?9C}rmU3zW?E3- zDTVQY-Ul^p$zz0|IJ2}AALE$5*R?yufw`aC-DU1@B`&g@EIc(MXn8hpgLP7cvA(XoF(7c-IT5Y`=@95@BQpg>F6; z2ifze3*(zwF5)XMb(OFaa7EV##MXmStNH`rxi3y(yv zadjiv!(2f`FW22TbN~*o5{?ZDia0N}$jo%g5LcN)XND_F zF8Ind)HK|cFCp+xOE!Wpi5mq=Zuw|evqMuxZlT%)*U@}&vMM6`l4~L2y95m1)1Wfb z_ld5r&_*EUJ*o!_4zhSdNUqhBU47Z&V0!3juO+SuCYZ)8b5$eD@RhFfaHzCquoXH4 zTWPN~u1XdK6tY22oEA%m)N;VJ9{$1|H6>CgMYkMwErlRn9vyZy(vTCbtFfd&DiB(d zG>H=O(b{KRKOo#mI_tb^kw3V#|Jp%GFU_b@adM#vln-;Racj}kTXvOL`;6&ajCRO& z%|tPfF~Uh~jF1oaFA7D>U9ZhyGnau^NRKy%i{y;0B)bmr#lN`ziXOIOy+T zHRDF_g(#k&@%!9?nfh)~cu{kCMGP)_YZFBadLUFW4u^s`%*A=2n;0dz&`z)yqVwx3 zW}z4~m=oEkEkw@LaK$7P0RnH~e?XnL8D(MJ>L4#lwQUvi5sn37NL8g98$(au$0}YR z9L?>ZSJKkm6?4&0hkGh`;ROq56?PXNo{Y|F1g(+;^%1w)*ulE6tps(4kwQlxjwnPEdIB1=4b=!h$n~p&KQ45j4cq zS@%u95_YlRF&Kw@xG zxzjiA6udUYoeF)Q)Lqar`6?RsQK7({0t;7*O$3h;{I zr&0L`X9=S@k;Q3So05AIa!oCg5eKD7a6iG9-pZ%sR+(B>8O1=J-21&em3-&IfP`_2 zk*NNlPgX%?Z?q4j7nI{hhIf>M=SwS}q31!)L;R0^m6bEluduZBs4ojormu<|>@TQk zhcG2SlCYx_fg$`DTt#LLgmK>1R(`?_gRi%LAk3jc+=r4uPDlI?i10)l0z!I{BZeE2 zU??S7xrk+Ql5GTbdz3GMF%8RHagf3F)2!Pb&-VpFI9zKdB zD07`L9Xk|a8p1|HS4>p$J&(mS&6%u>LMjO7ymEYcLzJEmf{G6of|9^SsiRpllzhu# z5x*-@xgK?b)C)(Nb4pJFm7J0ni20W*`{R`1K(d61r*K%@gs~1MjR@+yN%;_e!NIUC zg>o+ve_;@(3>N~3xf~ePwp}?4YrZsBQ($tU(wpRr7CZ>leP;UWfRb-;AfYs7M>zDM z9-+i{j9|j*4@yp~{wUO`g;1Y27nOJ-A&@;AlK$(Jw&dM%)vhbbtLQyQhz+UlQ@d%= zBq{HdaF|Gynd#`)${RQrn8HHT7gu)1MA%ujyiHvp(437HJBRV4$)9cobVwd@dE1DA1fIi-qz5mabs z0yB&tmdQeKk~0x%u8;Xu?x-RzaZn|Mj`32VD+p8qs9gvF5U>20VkVmItK!*?FBT>z ze-V|y*7MwhL-=k)LZ(3ekFTIg#bOBeo}6e^QL=6d>@4Fesixs>j#FcB8e3IW42^>6 z0zubns%!`nxoM5Ms`bc-20(!kQ9=RQyrJqn!dYk}PZ!G2&5?BkEXuks$t9|_OMFB2%uV<35TZDu_}Lz zBo^LMB$RU9Ro`*Ou%VSF(fw6wV(zQ5kr^8`8ak+_sv~OI^n|VgiJv7Dr@?(yFBv^N z`$HvE^soM^G#fxj_5N_Chp|m0Y&PsrQR7vYP%=EJt3Xn&s#FLkXA>ch51y#v2V3le zIG8-i`6SR9qEb!UOjk`qt)a{*PZH*-{20=Uwwj~*fMQ|etI8w>5KFpTL3hnl9pd)8 z<%;yBNqbLl{^NzJ_ej6VJ&zh%>b*qO7}o|oszdeEbp2*KDHz=jy17+#77Yu9G)h&I ztOF_wnK>5>tJ_IW%8yrYrWTa&cTpcbt;~XD2i#?4?d&Uc@+` zZ3BH(Cc5gd>LFvA>&Hzg&{IcMskrelH7Qu}6AE=`s3)Pxz?_+@7wG5fs-;q0lV7V8 zB=M2TlfJ#H;<*}BpIzPedJ)k_CY( zUaNkgDKP@V7D00Txd6g5`nSr+7Au7aXpFu@Zv#O^V*VEn1qC$fJ*YAIINMzfhILb0 zX-SispQb_E3gq5m0SxP=E=ZSK)ay_|$j#*mqo)ApsSw;N&&LLXN8NlA8k@^Pw2s?5C@mdN|Sg)M=4eAA16WTP9Y9A6_IKrHd0-k%vvV6 zQ$X^=3hst{nblEylf+21o@`wPseMH~^#YWL#{rRo0tK3az)D38O!R(~`lvUP@6c02 z-i%bM>5IN<9_$(c|B3wliCa4226rr13frPD58|a&4^%aaqDD*=~)-tu4 zY+VU~QYb;EpKw-mX-8^3=}K6p#mS zllEMr)}yYFDsk8%BzQTD5i~(-qR-c>?_)4-D}p>WYS^S+j9ZRFOC|K*poyBhPhAaz z5mY^kE^?@4B(Yg)8#%w0rJf<+fey#j-O=+*HxhDOT>^LA;PdK_I9bf2prDZg;~1Qx zLpLRp1zlyNrJ`k^oJ+~uJ1<_>)xpn1(4N}<=?6RB7>OD?Dp$c3$7k)*Pk z&nC7oP?5N@8aI*^u2IvAwKR8`A`}$i{aMt35l|pFj@E#Yp&=Qr@!!={qjIX?km5IZV{ z3v|v#4ex7URtC<}xIk&qH2Zv*k~Dg|CP6eE8xnetdm+5Qc07fkc0i>i8GGSOi7BMX z3C&oEp8n*_KF2bxmZ_P8K1Yqi4uHKzUeQx4{E=RMC)@j|ztApScUsvrfG$-!FK<`0&E48;U8nHlNAOavgU8d9iWTcL=Ktn)` zj@~wCD|;}1;|}usuwbTbifZqmP~1EaG`hH!uUOnNejOId(UGOKS8*KJEh-S8DosEe zBk>spn`KrREe{t=ED2?_#Yw575FnoAwa=V;2EsQSg?aa{tmXR^ZWkcTMAwFD<(Pw+ zVl+Ek%a2#66Z|rhH^(4(mXFjPMCYPnA)Nqz=Q#8+u>5P+Olv`FqKe3L_c&~Hw_~)Q zae}CwB~t4_0B$C)I%xHzeHW#MR&A?o=hRcApg_SJFQ{kiNyu0AI%zjMcQngs!9Xhv z*7`HY(vCy4V^9H1n$eTAzO?jcE#KU6UkIC}H4vZCS})ujU^n7cz^)09^KuLJ1uVBP zy93llBWG!=pwl`&(1wwYnXm-Tuh!x-Ue=W@Pjb!(Hk!Cj`wd6OFl8X}_OMnUDZ91y z^5pAQZ6t0|&}89ENI`*u*G_oi$jV}znP52IecDMV5!w~@K|rD(1~KLfBn5p`H0GFA z$tn{HDo#WKhhhd2cM%9mKh_SAXvg8C(FLIdHN4XD&X_|nC(;j0WhOblwMJUullC?G z(V=D~EKCx=XkSURv@`emqUF0Pee+w(*Qi730yIFb3oOXi0VbM6Z{2zfZmgL57tuXt zQ{V@^$~qsi`4X6XeQ_P`4ip-I;W!|)waU|wU|j?J1t(zG`Ga-UiO(8^nSQOHxNA%LAv2}{k35*5kz!AEy=y7H|()cEvi8qhdVU$qV3ggf? znBYQg@dT%(t0w6xAsiDN;~^L3fpKO|(wSIZv5*V%^*S0oQ-^08g82^EJ!nFr&WITR z^Bn^b0O`r7KzLvQdBwDAzU~3D5GKCpEjk@(a#PUIB1HGg9l-o3oU}`)rX9EN+0mwH zI@tIDheu)HfwRL2oti}7h33gFm71pS(tXE#jAfjJz>As=>F{`qOOXa2*7-91D4c(5 zGqd2S7si7I+$r52bSHaJgQPu#r;X7cbqadoj_zMHAe5h#NNhIv=V7*PH-8(U4%jr~ zj!s2<9tbK@^FG_j*je}eGu<6*CZlN%-2rtS6kaswz3w@#6x<*k>{gcS)U?k>T`im~ z#IaMhH`V;my+Ffld12Qs=>gPu<$vk)h1rBayV6We+P|=#cMdSk!92>-bN>1o=oL(J zDgOEr#FESE+4HbFObF8RDhI6x^uDB81-+j43o=9W{Lvql!%+_*pN3S>W5WhR49IQd z&|_FLvnuIZvTYR%T9G70=oQo_TwetZhs!oGLO+bn3zu#5bHP9kJq43xKY^^>u9^M; zS_>PN5~PVOS0i22PLC$T_gfqU9`s5Fec3#rVV7#faHFx^_{88H;6Q>r%btOvle_Cb zU~a($@oTAGpZpy1$FT`|UR~lroPnufvL12@+l^VPAmcea>>fH(|Ju3r1C=|u_S{}m z(aiaJz8=x(K<_~!U&7kC_X39XT%h0VTp11|6dB7n6JHR|1%VuT3FKW;^kdnA0CQHM zJ``StW{RN7gI>W2ef%Ch9u^$t)RO(Lp|zd;3e5TOkiIzT?J%bkiObhWhn|p{6A3)& z_EY*-n5Xzkdkz9Ysv9@w=W})*yE(OF@f!$0zbyS7rs%Gx`ZJ7|LNjXyOJ2^>ChfCc zOBcM=W35RcTYlle2rVcII4^GFtFY;%y%luxV+~p|JqL`+Vw48|((|qh_RI17o#kpM zgyFe!l%WvjNpz5%*^T^WeBWFReBEPn4TjOsqAJ50to$-P4D4NgrXdZ_Z)l0TZi=s= zIsnN%UqcN0yYF9PQS$aZ)WlQ#3@l*i8b5;%I{&1QBRtz~>-a~h+;_UG!J^Jm6wwx>9z4B(m&4f3T-cu8nGq!twdl>-1`p;0c!eIG4}}{RqfsG>;hn7JhJ5sQq@go933lk(Wa}5` z1#WF_zymOy-O^ALlNlTgLy6@lJkF}w#-O9Fe;K}D%tDewF$HLyHiiHr(<*f^h#CD2 zs-olF4aG1R;22zs2KF`Zf)2*{Xx9fdAQ!$vDLgUGa28V_Yw3UI4dFE z_ye}oqk{~$0ZL&k{%}Z~4w?E>@Z2@RphLA`Nr7p`89Yhzk=)JD5$?cH^x`N3ZWaU} z4M@s(gMro`XRsn0G@g;I`21L#hU^$`cmy2m2qHo~sd}OznZ3YAptUW6HS}Ae;UZeb zA=XA_$!sbbIM>h)eRA=rp%%$bG#E(AB7>ejBnE!;hCLM;@QVyB(LKy!B9)E?Ei?Gw z85`CYq&rueH(9g^Cq$4kX_G-muDIF+ns2jV9?k(0eke(ZGO7t8qZBq9)owK`LnYW? zBt&5=Le4R`VTWN6D(w{3KncQ>)X*A*q0%TPLuqrPhjtqX!l8nL$J`mPVpr_t>YyV4 z;zJGl4E*)K`$}^tNm7Bl-x-E1HVy@OZ84AdMf`Yvf zPBv(42HNC?f!Cm5S|?LJy6l$W0Bgxm2=^n*derZmp*M;_m*xC21e2vYo0We5VK{+$ zGdKnKIww_v-WEpHa^oc@2nYg5d4nwDuJAW5KoBH2G=i1rOg1B(SIRga9SvcK+yWgFWDG{$=8ys0dUYP>qBeE5TT7S;KQJn@vs2G&1_3Q1+z`!+Vh>5ym%+2)&Px zSvH81XOYHsoRZBFnP){Adm#uTIVsxcP3lD(am$9Ti#=jv^VvM^p>2#KF|#y%>TPGK=DXDdgk)I%OT{$R?^ihH_f-MUQl)Sl$VI#_;3+Ef-&=hETHZ}6o z3u5H&rABOY5IA+@RSu9^x+T?E5|zWiaxiIW&}w4~)N8^TV_D|C-D`|h*x&bSj5XNb za%+wCm^LHU+N1yGdgEV+*kJ6;5M+b#DcUMwoAChyblq;`Ph(-f^`fPY7)#&)&5s%z zGrko^jqMqk?3i&kHXL9ZzQ7Prm3Lr&G2&vcLPV9nfFMk{#+fWgD0Iy`fgab1g7gBBKmzWRzMM;SVywl zA7a+>#mM_4P8EGhLY5iy&4@3su(x%bqSa(mNl<<1Pa}W41R)$sVs)mX^!;z+J|>z% zl&0bsGK<;Hm~AkrNc8}lj_y;Ncqi8>l_BW_9qiB&g(<-K!`MIMWR|w+h0U?YtJ?(uwdfvVH!fB(FnYV~8wl!WZocx8xn8H(giU#6M0HK_sI* z*eIZ+sVcq=fVPV(YjdZU%A5EnhmP@e)KbOdjS0#z86BNf!^F@1PEb~DQ+-TJB8bc^ z53@~ZU^;^8qjlmMz#LaLG9^m0iPxF)>BQ4$%+I{<%YL6 z@zx-&p`=bGqhk%l5Z|#TH3_Z^N@#kRd>yhloKEd!+Jdq`uNKLxV6`E6l`0Uyq3cbT zWn|buQ!(Ztn2=poMiodw5GXvnMflo||DcB`=-mS+2Kw1qqN>91 zDuF6FC6BHNk~bvTXCawBmCv;YE=;8(nHdHvbHIGlNz{#j=)wi|so*d3V*4V)z{);i zDoVU-!?rqXsVN?LVCgdB>Pbp%n}zmBG1YcBK88d$gj!O!%D#BenhZp?)B%%qUt{X- z7}ZW1w4P6sKoMpK&E04pUj&h=^}t8JHk)|k0u0fC9IOY^SQW>78n-!*Pf>x5+y7L6 z{@P);x>M@bJtifIZeUZ;zbO|@Awjl64IP?WsM*avEHmob=!4?A?LgBqoXG={L^xOj z@&NC`gQO0$&vCm$z_9k&9X)B{{YEwmn*WT6zb=7u`WXRp8k1?lBPRt=Gt>qCBZd~b zX!?$3c6h~`4!mM&fCM6l_1aK+=`pWDESztGss8_807lF$|$RW90&K^c*uLh=xDlX6 zA)Ucq^9Gx5IQ0gQ8@)End<=PTKt@Flb_Q#xMwx3NDe8vYYvawm9gc57ko0U9ARRry zJP6_MrkEqx@HMBJTeGNMG}XKa_trfN%zh+xs<|K;G~Yafp=8PC7C0=>z^g^w;OM$| zff?H!KpcWa@yq4rn@k*@`ZE%2p2U=jB&@mIfXwI)31ob#`CBj}f`b=S%0(u<|XcZ69kq0iyu4evX~!3h!=_4ICC z3tq~=iuKwgdaFfAf%7~+xiGsY#et!wHn;GHW+FGuYGb*;s33jM#t#O}1#0 z2SV`e9clTJCxk~@+)2Vfm_dOA3$J$JKn2nPP7M<*X0#BV8qr5g4DCD7G7RB-6)+Ls z2Z4yl$(BACV4?^zYA_tF3QV(HWpD}x7>Hv_1(K2f*lZ+WB8a}2WNDA0;jD~W!#wAk54uxsw+it0W)p( zEdF{D1i`-N7C-hwWTC}gScc$39B1$Zj2I09Cj7sM?=IG%WqZjCfjLHYHNs9MMo62zQPHn z474_+X(84(wb(H5D*_+zfcia{=9tOB;^oP`c-X^^O}0Mgkz?gc3ceVbVf_a^?jQ}L zA7)t(BMA2;;4VpxbF8gPFoD~SSpTAj_E^v1beZR9);?4g?I{n>sBCNN)cdXoF zxMDC4?oEWTj@+{@Li2TaZf(SL-SFJX4(inPh1D1PhQ+>EPcg*XFIGI_m-=cAW54@+ zwT7_2%f52>jjz@Q?Dz0@@QFZ;ZyXu-&Dxd$&waD9G)?@!TRXA8)4y9gvcIpsTYIs; zF+Z&Acu(jLj`#d&jb*<_{j}og{`OC6JN7&D7l$wTW$nU#%YJkEuD|&>hkqk}ei4BU zH-C)4q|bjL3}nO|WCHs4luYQyepi+YgW2CLa-k3VThLYL%l=Mx6$ZiIWQFh#`#Dr0 zU|N5qK%u0jQfR~AiK#=APVILIZ<#!@(y9??tuy**SNUUl#uVdE|SmvdEJeK8*B#D@7caB&xh+= zT;_SWxRjBwG$DRkAq06dWFmbg`f)=CQ`>S@SS`ir}%TD|7zVF{MXjz z;_{b7e1e73XIo@$8_J6F=MpKxIJ=yloPE8Soba>I-vV@4_I1 zO$iMF?Or7cn4wH4f9ROMY1J9eQH1 z0x+{G1J+<4+IyhCU*zAjKMlsXVRUinC>f)AO-5RU#I=-pvTyHAB(|R2))$U1Typ~g zB+caFk|1FkQ7;dZ=evi(r&a z5Q4SZ4k?a_(7zsX!&v?>>ue2qS@)6WT=PeXKWt$Z$bvp*+uL2R$F^ZiK={-rx z39u+zCCId*aM>kaK`}p=;c&^Ag)*f~CX!a0+p3Qb=y2e?h{mTkT3-NO|5pSSV{cGm z65Px%L#~P#74h)no(}K>%&lh(Q=Q$1;6@T3!;3!R;@6KqS-LXJ=m^C52#Ip#-ik~S z%=GOGgCyHW5m<$UmExltiU8)=XAu*??&HAayp3Uw{>X!ItYnl}6tMk%i&(s?0iP(| zV;FZUnO#C?&c2GpN%k%Vz`-62*oR%ofNzfTHHUT{{q{#qIqVrd!OjyUQyEuCWD+Ck zOmUD_$(JF9lIZP%fblUs^9Xd~A+LapaS|ErNKy%5HWKx2y}!bHtBXrar9VU7NW%Pu zZm7+kvOnw22E#UhbJt*h@>!{Bn@d zcwMiZf+!3L}RLU4- zr2*~MQAC?a`yoOBw8?|u-f0gYUsi@V>LZzM4U$?~7|GbZ1A%>SFOl7wz(o?GLk=-) z^S&Y$E`R~AVEuM+T>!%Htd zTkYws5@3=pi5R^0!WVu0VbD7B2Xe6n`1;K?DFJ-sX3sdwD+7Q0O%Ywp8Q>^n;jph0 z-Vs?C2+`aVsmeMGl34}V=iL_(dQx$M-5|5-{!-o8Z7H#STrQ_y9xC8b@>D1Y zIr*6b9oJ{@C8}ZP1bv0bOC+SW;4VM)QzWXwRKU31G3HGEKCoa`!Cu=_GEgk>ttJd( z9$i!ohUlUse$|9-Vy>@T9f0rE3>eO?)ZkGwuxZLMwhcG_PrCVwWK|bB#S)*)f7TvcR0 zyN4sIA&;vhhF)1O4>~2v)k+FP0*#~$D^(i^S4I2}LNV){WhB+2q$GuLSz{zMPrdv0 z6Hh%+&81ZM0Rzh-$#p@-gO(!JKnnSBO-C|J?H^m~U_Nxcj#5f1meg%k_{ZXkF$||!a} zSFCFM8Uec7GAUXhcb9?pSR!R3>}NFnR{jqf{Ja=-?hpYqiZvpQAeK9~80PQY9Fua` z751)3p#+BT!^G5#ZxF)&-HXZ=;5-LNP(XK>RhN5_XFtTVMR&n>d3<)ePPnE zG1t3qV;K3uaS>xAa7~GU+_9ryGIZu?j`ls{T9~9wv+o>DSNxd!69zKFK+>~r;Q2h_ z;3^Y?DLO(XcXM%Ei%fE&Kw)zX>nQ-Y`t^tvr|} z(L!;wQ0e_Ah1a5OBSdsTcp<#xDrK0lD_eQUPgmBzsICjGuV%$1!jw2zrjyI z+&aiP(tWYZOGZD!S=nHIIJL$CUt#~RD(({rYbMM?9gnVA_K2D6J*1N`U;V|Rq{G&=5W{_)9>Mo)q-VkLrqldKj(e-@#&S^{Sg zE4kQ0Xi3Z-3Mf?ap8awedbzuZ#se|qTh|H@Z3~D9FXvegCp9r9KYTLi;?f@~h)I&M z;nF3?U|xhB{Fpdx42av~%P=j7<6xJ_fHOiEurh)BUsU8}40q92hS^_^q{afKNo&D| z)((i@*R=)AcNR24q^GwIWNd4p8yo0ZYv8OH#yRm?m_}^`ABO4O1~4V-=fOC-GS3*s zGdvFlZi|5v&3@8@{Z%y)F=lpOAs!Z9G0ejjc`*Cjp;^HiD2#DxcTJf@Nz%BsG)J7aYRq8xXj=CeJ}^ z@q|al+ptdbuui&5=&O%n^eu@u++yQgEI7y2EniLf1m)W;7^t6wY0FrV3HLhm_L{8a z%I~mjqF~u{m5_&#lvrU9$}HX`I*Z9X4KjO6h|W!6GGoQ9V@oHnR=ep8Sl?Me{W!4c z?`Yut40dlJ;SXBONNbCi=3p*g*BOMkq>7jTaWkpa1u#oji(F3p3y z=?ZW0i&gFZ&Q+s6!W8a<8vP|IwAv_TDvEYFba?ak7GRSzMO<7WCG^ionQj91&1ZFk zF?a1@?3D>zQez^HV%7*Z@yJg=zrc?1B4hsM-M|!v@jNcYIIGyu?ttESQbbo~VSa`I zt3YFbN%QR?)MUU;J=hS?4zLel6nE+C43lzK#NgdIYIboCTDNsiK!1HCMdQ^y&ckF5 zqj~&7N>iN;JF6F9hQF3#+zH&;lgHR|OKiB#`Yu<%*nK6&8};sgaAF^i2|v&qgqxtB zV4oAe^@qT%KPr;Y&AvCLT5B(7y*p1>MNtyrz11YQFO-LHB~YGKbm)7rpP8_Vo&&wK z0UB>)^o>cFO_^sEF-2lF>VpoWA^7MEicg{h|Ql zjuBVJ8wTuKkO6D6%Y*n~>&}AE_vc|Uqd__8MqjoxBdx(M0m3$Nc7Na>Q&t43$=$L_ zsH5zS*8y>W?owHb_7s)Z)%>a{Wh&}8F_j(& zBB#|Bv3OMxpVh|_`(MrjN!4Ih(nNQ=1sO0H5}nxI!2ELR{9YAv(Hfwaj-Jzo(YGYA zZIyZ2XZhUfJZ6jezd5dHtVqun6)xt+oz^QpfzzJA6BKEZdqCm_+ml?rp05jh0ipj* za=p4Uq0S^X<{y~(_nr(`pS%vRyYiNI%lGW@Q4CB%n&bu!XQZ{+4NCA0z5T>8YzPP; z@gfHAR>BR;IutPaiFq(^TT+0-?AsW2)nq9a?^4RM0IQ!oc!wqI|7N=iGyVrBPkA1D zmUiy|6<%i0pDFJYkqzf5ufuQ{J!Kh_QI)_oOZnJ^OuP|VKQ24}XE1VeNb=I2=9pES zK5T>#i8*8h2r0N;1cr)-_-Z2ob7rF`zPfk@$Yz*tTR0|qtFo@c9@9qwV&yiG#SPmg zY#766z>GVCEooTUZ^|5$doBl2va$ zBa+s@)rJ9guUxwZLm{AVfGwmg)MLaNFHB|XEr|#99$pmLLx}HgxtIzg5&%2zvWRt; zv{BA8?71go+c;>ZvrPxJ99?|x`cp7!Ij9$;d)%{EjI=$8eQjSxOo6v!K}h3wA|}s* z={fDr8yAo?1hQNo$$X!Yv~j$37dRf+$9-k&J;W?`o&mjnFkmAB*G{R#Mq#4~fPtq3 z7iYl@VqpeVMR6r$F-)w$G10!N>g4C7aUV`3|)e8`=;yf_S> z0vL})yvh10f*1P2Mbl>-J1Rbe2$1elimFcX;#2J>%irIEZoLNbwLl&rQFRpb zJU~^HexoK_sI_@2AA8?a82dpT2i8w|xU4)4uy-3cv2Y!xAM^S_hNvFtK;Wicb2`9w zM>}AJ$g=77r1o&vzeoRqz>k23u2m&^wS(pcGaE=@c!fsu9(*hkXA5;p#wx8cAUZQypQ->{)Gh3+v-omh@B_k}yN;JPgSAgJDile;g21J^((MoLCM z_P3NCK9TIMGCEwDITJ(*Jw*~5F}Ml%6rtKIz?|+QVtg43E?ME;?SLdW^8702;u0(w z%Sy6l3D_~QBm(!Zag4iIo~yLriY+zimB^Z{F4T*+v1DVyf^af00_v(mOmd= zKAt9Ja$dvbEX;Z*f%IFm{|6!OXr#H1y|f;z#ZJM}O{ms9DHAsLhtCFaeHKbF#Yo=( zyRr&>6?GsqcSFlU8((6S3yY;pS^_tDsYshS+zLJBfZ)!XMH)4MTfOw;fE|67q33SR zgN7TvtQZpLjH8#|x5^KxxgG4KjV0qQAx-D<4*u4;AR~BR9vS_`tG_OI@mjacJfN9& zKuY6@(SQxvslvU=B#S^p*8i}SsDvYy{O5y+F-P-Y2hJDR4Oe6;!^B<{G0?S|&u9ON zVP;+zF?c-~cmJY!VY6$(%q)X$-L^zN(M>w9!W7K!sdr*rqcc9 zBogvQe>jFVk{BxGiO5t!+(pk25ZCpEi1A|=is7jsd;wtgzTz0T-%Ll67w{#sfnmP> z;uyRH?8gH8i!5`eM9pR;#z)9nVUp2X$Vi#RLIu)oAs3&p5QMB$GhjUe_llW_xtTr1 zY>)4E>K-ieKoBH-xN+Jj(u>X6*^59>c?&~Cli!O30sXl0i%SZLpDnn{YLJk{_+AlN zvKS~+-5DiZwBZhq;#pq~t@bH1;-^2Xk~)ypAhPrPTOB|;Efb29`b+GId5&*%QcFmH zO@O>g9zxJJgprmfYAWD6U8k48c+bmnAlz%l9h7nFXxqXt%oRv2(uW77LK$ft@v1ZD zBHyzVBweU2qMfIY8*T%2V<34XL&+j7tjm$uWkM%x1xFfc7P>{Ej|%x@Wk~ii{u)W6 z?}^IZ?m%u+@40_2AB(8!T^r0fJnUXH*GX)5w&1z(Fln4lHOWcFI26u%k` zZc9@W6XodGm4M#6AP*XDPQw*(hGC{J6EP*6kME~cKU3v8glsMZg|tPsYNbf;Csws* zSAis#H5`++9xf(>OX~PZ>HD>SuUA0QJ&@E~GMV1%MS86L(KXKp_wgPHzJF5s&o{gd zZxjbs5w|tmzy51r;AQ(5rVRR*S#|~k7Cp#;aR=3TD&m_zX3U9#U>)cN0WZ-e_ZXv( zaJDruO~yKw7&+5ud<*8bG{t?#}CVGtwDA(u-xajz^Uv^ojA3itN0P7PCUz&cRx z$`ujgbo}&L$uS*0U0hZ-_;d1s*BN;TyUC6BY)8D=KKlYFRt8cdgh`%%Z^(f4_BY|q z)C_OV;=C8cd1xLI7Z;z8OkQ!gSyk;$EE{;Fcy9p3N_`hGT5?;a$?wc#Nrzf|x(Z|d z3$B!|%{ekMb_-MtaKD=yyB&^i)n$i&yKZBt8w}o1GW;`Fk={qFTxM>B;RmQi40eWe zn*ex7D+0Bo)h2GnUJR4r#W0oG1#*08=U(02t~*<=Fy%UuF&`D;qyd}li7WBlvKjke zDna13_7c+lMHp!WyK4?R6BjqbQ1X%@FwZ%n#GvD;|H2#_!NI$YM94srutn&}9R6|( zu%8QN?5)_1Ww`i8Yz1KDvJ6;>T}Q{=daO@&zXM?6njo^eMBJF>N(06`&1ao$h=u(x8-7dr-QT)zU=RBc)N-Ohc`Md$HOBL{)-gfCQMqnS(X(#NLaE~4D z!mEFEyRZgCuK-VlNyPUg_tS+Ym<}G4-O#&~+Qp?Hq(kXDi=ziKdG*+>c6s_HM|zZ9 zeH(QC?^auSlt|CtI70P3;-2|_hZr~xN=U28c_enH&;|G2;!oWQ;NB~@PGCZ!#mCZ7 zyI^L6Coy1olCsP0#KZxqv1dSurr<>BvO7mE?h?XTOcbQR`Fjbm?iYdxT#2V9{V5NO zX$+%YDPo+xVe@Xl&~=DOUat|K>@Q|;zl|aXTyC@nI>Rglv!M#@0raM=QZ#>!?suaW z&zpkxF2ied((2c;U8IMyV!K8~e(m8|!mt;_ojl6W71+&s+?y|2shjl&Z?fKq)SEBJ z?7enx9;xeIbvSJ98~$@LIC+-It0!K%$4dnafn}-Yi!25I*QLiViA*KXo5QzF% z^(+I1&==Jb*>t$On%)0LLJ#vYvB_aT1r^VWf~x`f3|TzxXLxOCCmv6pHID$aVHqcs zUlr(>(rJd?Sk8&|W|sxxBed|Nfcjb~FADAp#K(nM4AnZ+i87G|1#ALNwwG~4wTs}f zXz-Y{?oA1|Gr(1n{{pOhEB z{IpPt8TKqgt(pD@DnBVyohQ`DGk}-Pa^mrk>=p(cwHl$pcs(M4>k*x0bN;h{uf8rX z9_~tXzOguk;S;tx@g=10wq^pp+HNO4jOm)npd0tvp>SU!_kX3y%QoJDSgZmWRQd#G z>0u{rQ7j%XNqpaSWa8sO&^Ll;k!~?+a`Bvfi#ZQtwRnL16-eB9yZhE?>n;ul_pJx_ z)t0#L)+0MDT)W6UhyLF1NmF1N1m-r#3~eP0^IqB+;6BE3Yq~TzW=;Z!U%$kFoFP5<&uyejr`(y?V_(htzED(YDp#@ zLE3FzTD`U=IFM$3C9CEtlp@y?o z5T~zMS?57I2J3iP!_0c-Ur?`K1u2^MNKn!90ZZObgnh37Y`&c(GM|yLmxTdHbfI17 zUKV2$VDO$2qMyWig}-|@{R#{;pe7rrD!Klh*AHJ9@LF>QEJ3`l!v%efuJTOZ@hV`H zt@2=+*W+t0lVNh(ikN~V?HcQN=Y5~I$u*$y=_IAWj`t0Q8Q(?3RKe|QKvwI0H!;)6 z&%*O6rp>bJ0xqlU>%dUD7YFw1r4xwfdwVA&u~sqvdywAzA>^e8CBG4ze%cLtM_cVZ z{wDk8XAbyVx`%fjO=jPOJshs6RFfY!_=cdn34Oe8N1DKu;no+Rrq< zKAFnhb%!<+93G&}o9EvRXb{{Kg2|5C+^eT7fJ8wg zNm~!~(>Q6LJAyZh$r*QmKYAAj9=r<|C)zK*bar`uGm_PC4rfC+NYKH zMb8Gf%6IRfQ&dA9ufL7OX3_0Hq0F z6&$7Q%DIz}2Yh8jJOD}0;pJF{Nqiu^!!gM8aRPiUkV{` zIVf*mn{zb-D*kV8 z3Ma_6SKv)wxP{ztv>5gp2Kwt1Lj;q1=irXntk-ruSD!iS!36!+t@DZOjoqz*zE`Rq zg?YDzVp!_dYZsXI;MO;Gw?=PxKCeH7$N}hxNu&7V6HfZ|4S$+wehW$+e#wEY-oo=6 z$hrL(u*qA#KG^l8Wba#^5H2vxklZ|&L%HB}vFez;(5*ImmqZR`3zwKJ?z6~LT&%`7 z=YY5)KRG5Rhkt4jkPAQ$7t%>>E5!fTeelLp$Aib^44vdEMVE3I+4CJ>Z!7a)+1;n4 z+dIA+v9Gq}hdnrY$2-A_5v4lwVnY!yRV#S3Al=QZ`8g?ElbRp*dS)K~_d>z2`Mw61 z#`Rj%3Ji~`AKbUokZ%2grSA{(|7mPUCHSwD#2A--4J5}G?oQkai+?1*~NLFHZt*pV8bmMZ$l-iAK;L^-`~k+BcDGAo|r4T`1JAG4*jf^P-D1B zhTld)J_<#!BrY-c>=*Wq$y)e7n0=mqtE<8POma1Y8=3OaUg9vMV?KU)DB&zootddf z>Hp6H{t}Kf0)p4@3^(BKEyIP#$~`DHe=!=bM*{QK4%ZTiML4}sqR_;+^>9QBPS(`5|!0J@#b4zIrn{y65Pzt7c9 z1O->Z|4C0Q<@$5dG5rntKhGuc-$7QXI8Jb${Q&E~Vt*SBGV#9|FbUeQcJZF`d)Qb#I)91{-ib~W;kD3nX!^fj4&GcFlI|y{Q>4Ql zog>m0V3*zUy*DUsjIJ@LxD|L{r_S?lED`DXCAk0B*R_CURb_1uME&?aZYRMIkV~Nu zih^1K0-^~jDvB2r5m4|-ie^eEXkIWuP4m~KrXiV@7AlRuPv#{r(_~JmJpQFQDbqO4 zXx3;=saWW|Yp;*PInew(kB`r{-nG`=d+oK?*=O&4)~2?tG_^JA-wMSK+G>WecGOC| zXB)#`Y&XLeLULReI&1x%VQgNIdj5TpRC#P?If>3iPSCl}h#-w_fNJrvz8zm$j@s8? zPGFvyRqZoqLS|icqJ6eAG*$k=fShsG)cV=K7ZG~~s?`Oj*ZvJFrup5PSLaj8X`@YG-#Oj};!l0W;<1vQ7ujS*hca7I;eG2xG^q$p zGH(XdT{Z|IrLU|H6rY-Wbf>R_!$vHZnjNbrecM)3!y&O9%1pl};#=BjlCmK6-nPIkmVRf&v|9oR~HUA15~);U+Gt95P;M_aXE zWvtklUyd9ffOQPSZu5DrH`|zn)a&8}E7Z*iH6UR&O-*Y0*?y5=b^v(*iXc17uMkp4jF;0|PXZyiy| zi48X2y}$Ntg2Aq0v%=iKja1{VsT?de57r)U*AZ{iXtsxxTf)dEiGq0avw71r`{x#S z8CjMj$b|tmAI@oP@WQ%=*0y4_@*7Ni%!7Bu0A0vmZ(zS*sC#*ky&z;cZvG5O^8!Pi zfq`~=X=>RT>-G3Tc!(|<%KiSF2IA6Go!FLM)1*%hFoLfJmBVmKWI{@0S)5Sa!w%dy z!p-sP?r;{0rP3$FIIEw4rg3RZjHCT&Hh<;mT)Jm_AiGEEh&vUx*VKl?T1NgpP7q{K z#wJ&L(Pr}oQk^ZxRBwBHS{jm+84WYK;?>VQm{;TpD^e@_>Pp)AKuOGWL6Bj&38`SD z?@U3EXjx?mwRQlpbgmGQNZE~3Er)OmwlGq(Ku5d?DVFh_rmuZ_=b4Plg_|&x4`L{r zCm$8m?@3K<7{C7{bnGe7b@b^Um&k6(Gi<&pZ6H)yupB!Z?L)R-X7TzaQ}@0 zuj;7Da*yx)_(zvek(F(lzZN)dXV$UYB40m<4zJ?h&l6HIH!0o9$oaPgK~iQJJuHLl zOn%hjs5U_B zugcm`R$96Q!NCV>;^w#RHO%xZUEPZ`%^6dq*A{m|f%9urf&H70&pQAe$CEWsTGcfW zKU>q_K&k5t{yB(x1ZlyvCs5S!oZN9U)1nkj)o4`dEuS%XyE}%+*xS_l`^>5GI~4_? z9yJ$jl(xzpH_Aa?i5gpsjbOvy(oMmd`WAA>~VQ3`Ui} z;Qs%Z^K(d)8F|QV4pI&@^C7&f7i1#J)C=UBdFU_Csgdj%o4(7)dO9pbjp$Fg} zYbwT%f}YZ*uy3w<3YGP~ZV+F5-Daiu0b*T`rvVq=5IE;)t)~iZ#a*WQPJ>(U>2tH< zzu(j~VIehClynS*lG@uk;!nuFZK12N0{55*c<3F0?}lp8stl*<(cAd&LVSzRQ1zqE z8bC4PPD$8HjLby-8`{VBu%OfN6CZQ2!gENvO?Mr`P24B<7Ak7)*`G?1EfuV zc?R;ORv{)wNON*fqgHipLPQF1Z{;qQWy#~Nz~a2@I>w|lfgHPP>Pyh-EJ$wGL~=}u zOj^G03gX@NLd@u<$zj3TKgOQB0d+H5s7t4H-89LO^4}YB)K~OPj+BO!M52%Ye<9wA zl!mC*6?GCKvVyx(MW%h4SO4Ce#G5EO6vrRTKKgYK^QUmiaJ6M_?E%dLLxqTZ;Wk>_ zLyW(Mk<(oS;k4mY-$Pz;+@gR??5QJOYQ!ir1|AKXSdW3RwMD`2QcaYMx+kL{9vZKU z<729LHw&G}m2$T;JT1upBgMFd#&;Dss3%~zWPy=Z+=CL+?XC6ET$C>&t zX0XoRhBkB-qek?Crto2gf;RV(K0Uz5$WaEwuebd_j^Y56_$=UY*!b$B4X5g7?V}{6vNp>F5r+5S&1G!FZWps6xw(vm z+b0TMD@T;GU}eb68i+lxK3W=m6t1Zg+@C*(q9O~07}H0pcRLord?OY15eMg=t?tc} zGLYQ79Sw~UtE*5rc7Y%#7N7~P(Sm#%1DTW9K;wEL>$%h`u3^|05730Z=n8Ya`jrUl z-V$_bV-!>cA73I!Mx4}mb{sT!S|&uKMfYWksd%{tAB=Hv`F*9oO8SEHTYM+R#P9lQ zvMaH!{_MbO7=wI*&KxI_%Z2qoIT}(DFAb@Phm!a3$rvkn5HFfN5n0LpvjJwZMkAU%AZiEFBbhy?CZ38QAS@6_!VRwQ;;PbL+R`+p!rBy_h>WtJE+ zb09QtIw%P8x;MoSRpu{;1Zhm~?x9*g@pieD_wV>5t$9M8d|2mqqi>R>3{`sN5kVRs z2eVR8@K48tcqK(%uawiKoDd>1!Z$fx@gT5oJ0-|J28q)>VxsdWLPUOeH|m~k_ktne zPUmCE^QAS3dG|}LCS_oGpm?bb4iGeY3Aj@AFwg|d(JsJ8u7sFSQ-B` z@FNGkh59^aZ|sdT56}D=Lciht*X&}~zcUCSOMR1{MGQwBdfqX>NL$~IKEw46+@k#q z@A%08BagkfUFat7^qvT%pR{;%72Y%OBfq^2?FiT8k~J77SFo69Zc^B92L402(y6f{ zP;!hTd1h!hy_c?8=$#RQe9XwD)&>M=@Y}VR03Y-$xz346zD51a-g(+$mTgT)p^qcm zc0WBk68i7E>pZTM;{li-n{1L{>43XvIxH(J*H2!`?FQSAXc53&eRNg}&5aiy8b1n3 zj{6Fdh=lvJwU^vIdX15*fjT0`O=HW>PrHCXa{~r9ckTYC4eEayEW!2r(NNMl%zz+A zKRyraElrp+2Jnrp2KXwTziLdsb@1(rJ5kUK6l4x2??xH;k<4FWEn8&aSg5V;k}7-n>CiW3qQ@3u@zq>*RzKz%PKU$A1=J86I#7sH z#~FxKDMCc*f0?Md?#R#O!#geG?k^NHUYp7dC?AgoWDFHaTmm4wO-DY;+x7d;!;h(Z zrbuqdgk;D_mP}DM0g%fCS#|N90A$`M9T7KKzxwj&g)r~v77vU^V}&&*!`*|v&ybD^ z;~8|rcpY(}jakxI6--BF8IX@~TL9&xh@djiu51ImeWG}t3YPV`1|&G!FjYv)Ga!4j zH6Jxi-TClM%WCvp1tN>NXWpj2X3I1+B?oo=-x(slFGoV$XH4{aL5K%(H5clYE0f~E zxj-W3>4@5PImg8OBAw_$UlgHL`iynps%}-CQIF?ZjIs?24MMn_K)m^whpF8W zbIdUyVX=W9mlnt~gPkFJGU{N#Spn`+Rb^aYAZFk>GCEKF;RvDO4{x%0S_F$n=3%9v z*D7~jDTturJn4^DnYyl#dNEIIaFeMK8|}Q&`O*)=^D)W1PX+l}4^~)-pH4$JyYre$ zB>j-Dc`)@cQ};JghfdLa)aK_yN3X0|sMmb_OElCEVX)G!0laPL=oE1ywP$sVew?Do zVeI6eXU+L*Bu+4`Xnq=+t_E!UZ;8%pAyVFJaBZiOTSRPkZ z6^r{BR9fU$X8_q}p_6m5#)K;nJP0>5*mS*ZX96zr)?shLMGd}`_JZhrgW)$j=x{vu zLH7a>Pj=La>avD#70QA({VojXAV||q4Yf^gOMtRm+Crbz9Bu5)pGQkd0*}WIx$x^!UA4IowOAqiEAY^ z@_13&x}A}$WrE;#3H3pJz&sEStP&!wmQXitY+>R*R}1m}JlQYwe+k6Qbwb4T5^67J z8xuocXJP{3S_v0={F0QWmJOZvGx98{OCt*A3sTGriZ9xc^Yb;yd$j<>-8BYw+%X{r zst-98o`Du`L0~htddOLw--~eVgbUqSAZ0YLx`5AhIFP10%UOdZML>S}T1UJn;|gxu zXgrGG`Z8dTI)QN^MX)k__2X|UFQX^x+?ofSPE_@>Hj2ku+r^NaaZ4mqi#2uaZ+0<= z|7R!SvI=kAcP=xs0Vi%2!9KXNLO!d@Yp{i_L0b=^twRh>WF z-VZHVtMhx&&9$D^O|OWvxV-{x)$4V%4gEaLeqLbbnYu-9p+CNXMsswUc$oQ<33qRJ z(rg4mul(+-g+i#$AySnI65lh3~~s0F$7xoVCb9Y%a5r0GW**=n{#AbJ20VN}@ zO0VG-4|O7-oQad_gorCVR4n)nM5j@=JY`>@yiELBZL{oXqz-$4zIm-othv1m0`&&S qo4za4)U9N{GSu;bT^FPRz0-!YM%?4q-w3BUYaJb~Kfp%6!+!t;bd#0< delta 42586 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

    ilgZZ|b#!iXM;VSg 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 0.4.0-cdh5.8.x - 20160429022605 + 20160429064123 diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java index 803a24276176..c574598daf69 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java @@ -18,7 +18,8 @@ public enum RecordServiceErrorCode implements ErrorCodeSupplier { - CATALOG_ERROR(0); + CATALOG_ERROR(0), + PLAN_ERROR(1); private final ErrorCode errorCode; diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java index 49d3039ba9f8..a8e30d9a5202 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceModule.java @@ -15,6 +15,8 @@ import javax.inject.Inject; +import com.cloudera.recordservice.core.Task; +import com.facebook.presto.decoder.DecoderModule; import com.facebook.presto.spi.type.Type; import com.facebook.presto.spi.type.TypeManager; import com.fasterxml.jackson.databind.DeserializationContext; @@ -27,6 +29,7 @@ import static com.google.common.base.Preconditions.checkArgument; import static io.airlift.configuration.ConfigBinder.configBinder; import static io.airlift.json.JsonBinder.jsonBinder; +import static io.airlift.json.JsonCodecBinder.jsonCodecBinder; import static java.util.Objects.requireNonNull; public class RecordServiceModule implements Module @@ -50,7 +53,9 @@ public void configure(Binder binder) { binder.bind(RecordServiceSplitManager.class).in(Scopes.SINGLETON); binder.bind(RecordServiceRecordSetProvider.class).in(Scopes.SINGLETON); configBinder(binder).bindConfig(RecordServiceConnectorConfig.class); + jsonCodecBinder(binder).bindJsonCodec(Task.class); + binder.install(new DecoderModule()); jsonBinder(binder).addDeserializerBinding(Type.class).to(TypeDeserializer.class); } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java index 01f05c28b9ae..243570a9f900 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java @@ -16,6 +16,10 @@ import com.cloudera.recordservice.core.RecordServiceException; import com.cloudera.recordservice.core.RecordServiceWorkerClient; import com.cloudera.recordservice.core.Records; +import com.cloudera.recordservice.core.Task; +import com.cloudera.recordservice.thrift.TNetworkAddress; +import com.cloudera.recordservice.thrift.TTask; +import com.cloudera.recordservice.thrift.TUniqueId; import com.facebook.presto.spi.HostAddress; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; @@ -25,6 +29,7 @@ import java.io.Closeable; import java.io.IOException; import java.util.List; +import java.util.stream.Collectors; public class RecordServiceRecordSet implements RecordSet, Closeable { @@ -41,7 +46,7 @@ public RecordServiceRecordSet(RecordServiceSplit split) try { workerClient = new RecordServiceWorkerClient.Builder().connect(host.getHostText(), host.getPort()); - records = workerClient.execAndFetch(split.getTask()); + records = workerClient.execAndFetch(fromSplit(split)); records.setCloseWorker(true); } catch (RecordServiceException e) { @@ -76,4 +81,17 @@ public void close() throws IOException if (records != null) records.close(); if (workerClient != null) workerClient.close(); } + + private Task fromSplit(RecordServiceSplit split) { + TTask thriftTask = new TTask(); + thriftTask.setTask(split.getTask()); + thriftTask.setLocal_hosts( + split.getAddresses().stream() + .map(addr -> new TNetworkAddress(addr.getHostText(), addr.getPort())) + .collect(Collectors.toList())); + thriftTask.setResults_ordered(split.getResultOrdered()); + thriftTask.setTask_size(split.getTaskSize()); + thriftTask.setTask_id(new TUniqueId(split.getHi(), split.getLo())); + return new Task(thriftTask); + } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java index a200ab925fa5..e8b74a8d7800 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java @@ -13,32 +13,46 @@ */ package com.facebook.presto.recordservice; -import com.cloudera.recordservice.core.NetworkAddress; -import com.cloudera.recordservice.core.Schema; -import com.cloudera.recordservice.core.Task; import com.facebook.presto.spi.ConnectorSplit; import com.facebook.presto.spi.HostAddress; +import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import sun.nio.ch.Net; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; -import java.util.LinkedList; import java.util.List; +import static com.google.common.base.MoreObjects.toStringHelper; +import static java.util.Objects.requireNonNull; + public class RecordServiceSplit implements ConnectorSplit { private final String connectorId; - private final Task task; - private final List addresses; + private final byte[] task; + private final long taskSize; + private final long hi; + private final long lo; + private final boolean resultOrdered; + private final List localHosts; - public RecordServiceSplit(String connectorId, Task task, List hosts) + @JsonCreator + public RecordServiceSplit( + @JsonProperty("connectorId") String connectorId, + @JsonProperty("task") byte[] task, + @JsonProperty("taskSize") long taskSize, + @JsonProperty("hi") long hi, + @JsonProperty("lo") long lo, + @JsonProperty("resultOrdered") boolean resultOrdered, + @JsonProperty("hosts") List hosts) { - this.connectorId = connectorId; - this.task = task; - List list = new LinkedList<>(); - for (NetworkAddress add : hosts) { - list.add(HostAddress.fromParts(add.hostname, add.port)); - } - this.addresses = list; + + this.connectorId = requireNonNull(connectorId, "connectorId is null"); + this.task = requireNonNull(task, "task is null"); + this.taskSize = requireNonNull(taskSize, "taskSize is null"); + this.hi = hi; + this.lo = lo; + this.resultOrdered = resultOrdered; + this.localHosts = ImmutableList.copyOf(requireNonNull(hosts, "host is null")); } @Override @@ -47,21 +61,35 @@ public boolean isRemotelyAccessible() return true; } + @JsonProperty @Override public List getAddresses() { - return addresses; + return localHosts; } @Override public Object getInfo() { - return this; + return ImmutableMap.builder() + .put("task", task) + .put("taskSize", taskSize) + .put("hi", hi) + .put("lo", lo) + .put("resultOrdered", resultOrdered) + .put("localHosts", localHosts) + .build(); } - public Task getTask() + @Override + public String toString() { - return task; + return toStringHelper(this) + .addValue(task) + .addValue(taskSize) + .addValue(hi) + .addValue(lo) + .toString(); } @JsonProperty @@ -69,4 +97,34 @@ public String getConnectorId() { return connectorId; } + + @JsonProperty + public byte[] getTask() + { + return task; + } + + @JsonProperty + public long getTaskSize() + { + return taskSize; + } + + @JsonProperty + public long getHi() + { + return hi; + } + + @JsonProperty + public long getLo() + { + return lo; + } + + @JsonProperty + public boolean getResultOrdered() + { + return resultOrdered; + } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java index 1d317a3b4f53..3ba87513f4ae 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.recordservice; +import com.cloudera.recordservice.core.NetworkAddress; import com.cloudera.recordservice.core.PlanRequestResult; import com.cloudera.recordservice.core.RecordServiceException; import com.cloudera.recordservice.core.Request; @@ -20,6 +21,7 @@ import com.facebook.presto.spi.*; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; +import com.google.common.collect.ImmutableList; import io.airlift.log.Logger; @@ -27,6 +29,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; import javax.inject.Inject; @@ -54,27 +57,28 @@ public ConnectorSplitSource getSplits(ConnectorTransactionHandle handle, RecordServiceTableLayoutHandle.class, "layout"); log.info("getSplits for " + layoutHandle.getTable().getSchemaTableName().toString()); - Request request = Request.createSqlRequest("select * from " + - layoutHandle.getTable().getSchemaTableName().toString()); + Request request = Request.createTableScanRequest(layoutHandle.getTable().getSchemaTableName().toString()); try { PlanRequestResult planRequestResult = RecordServiceClient.getPlanResult(config, request); - List splits = new ArrayList<>(); - for (Task task : planRequestResult.tasks) { - // TODO: is schema info required here? - splits.add(new RecordServiceSplit(connectorId, task, planRequestResult.hosts)); - } + List splits = planRequestResult.tasks.stream() + .map(t -> new RecordServiceSplit( + connectorId, t.task, t.taskSize, t.taskId.hi, + t.taskId.lo, t.resultsOrdered, toHostAddress(planRequestResult.hosts))) + .collect(Collectors.toList()); Collections.shuffle(splits); return new FixedSplitSource(connectorId, splits); } - catch (IOException e) { - log.error("Failed to getSplits.", e); - } - catch (RecordServiceException e) { - log.error("Failed to getSplits", e); + catch (Exception e) { + throw new PrestoException(RecordServiceErrorCode.PLAN_ERROR, e); } + } - return null; + private List toHostAddress(List addresses) + { + return addresses.stream().map(addr -> HostAddress.fromParts(addr.hostname, addr.port)) + .collect(Collectors.toList()); } + } From b2e815abbc8e3b0c377f82682eb4d48818968d0d Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Fri, 29 Apr 2016 01:06:18 -0700 Subject: [PATCH 18/28] Fix JsonProperty issue --- .../presto/recordservice/RecordServiceSplit.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java index e8b74a8d7800..5e29e626aee2 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java @@ -33,7 +33,7 @@ public class RecordServiceSplit implements ConnectorSplit private final long hi; private final long lo; private final boolean resultOrdered; - private final List localHosts; + private final List addresses; @JsonCreator public RecordServiceSplit( @@ -43,16 +43,15 @@ public RecordServiceSplit( @JsonProperty("hi") long hi, @JsonProperty("lo") long lo, @JsonProperty("resultOrdered") boolean resultOrdered, - @JsonProperty("hosts") List hosts) + @JsonProperty("addresses") List addresses) { - this.connectorId = requireNonNull(connectorId, "connectorId is null"); this.task = requireNonNull(task, "task is null"); this.taskSize = requireNonNull(taskSize, "taskSize is null"); this.hi = hi; this.lo = lo; this.resultOrdered = resultOrdered; - this.localHosts = ImmutableList.copyOf(requireNonNull(hosts, "host is null")); + this.addresses = ImmutableList.copyOf(requireNonNull(addresses, "addresses is null")); } @Override @@ -65,7 +64,7 @@ public boolean isRemotelyAccessible() @Override public List getAddresses() { - return localHosts; + return addresses; } @Override @@ -77,7 +76,7 @@ public Object getInfo() .put("hi", hi) .put("lo", lo) .put("resultOrdered", resultOrdered) - .put("localHosts", localHosts) + .put("addresses", addresses) .build(); } From dee8563cf7b2b7b89832322f1e8ba9144ae0ccc5 Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Fri, 29 Apr 2016 01:31:37 -0700 Subject: [PATCH 19/28] implement getColumnTypes() --- .../recordservice/RecordServiceMetadata.java | 51 +------------- .../recordservice/RecordServiceRecordSet.java | 4 +- .../recordservice/RecordServiceUtil.java | 70 +++++++++++++++++++ 3 files changed, 76 insertions(+), 49 deletions(-) create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java index 2a230e3827de..ecb73a5afcca 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java @@ -14,7 +14,6 @@ package com.facebook.presto.recordservice; import com.cloudera.recordservice.core.Schema; -import com.cloudera.recordservice.core.Schema.TypeDesc; import com.facebook.presto.spi.ColumnHandle; import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.ConnectorSession; @@ -24,19 +23,9 @@ import com.facebook.presto.spi.ConnectorTableLayoutResult; import com.facebook.presto.spi.ConnectorTableMetadata; import com.facebook.presto.spi.Constraint; -import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.SchemaTableName; import com.facebook.presto.spi.SchemaTablePrefix; import com.facebook.presto.spi.connector.ConnectorMetadata; -import com.facebook.presto.spi.type.BigintType; -import com.facebook.presto.spi.type.BooleanType; -import com.facebook.presto.spi.type.DecimalType; -import com.facebook.presto.spi.type.DoubleType; -import com.facebook.presto.spi.type.IntegerType; -import com.facebook.presto.spi.type.TimestampType; -import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; -import com.facebook.presto.spi.type.VarcharType; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -104,7 +93,7 @@ public ConnectorTableMetadata getTableMetadata(ConnectorSession session, Connect private ConnectorTableMetadata getTableMetadata(SchemaTableName schemaTableName) { Schema schema = RecordServiceClient.getSchema(schemaTableName.getSchemaName(), schemaTableName.getTableName()); - return new ConnectorTableMetadata(schemaTableName, extractColumnMetadataList(schema)); + return new ConnectorTableMetadata(schemaTableName, RecordServiceUtil.extractColumnMetadataList(schema)); } @Override @@ -123,7 +112,8 @@ public Map getColumnHandles(ConnectorSession session, Conn Schema schema = RecordServiceClient.getSchema(schemaTableName.getSchemaName(), schemaTableName.getTableName()); ImmutableMap.Builder columnHandles = ImmutableMap.builder(); for (Schema.ColumnDesc columnDesc : schema.cols) { - columnHandles.put(columnDesc.name, new RecordServiceColumnHandle(connectorId, columnDesc.name, convertType(columnDesc.type))); + columnHandles.put(columnDesc.name, + new RecordServiceColumnHandle(connectorId, columnDesc.name, RecordServiceUtil.convertType(columnDesc.type))); } return columnHandles.build(); } @@ -159,39 +149,4 @@ private List listTables(ConnectorSession session, SchemaTablePr } return ImmutableList.of(new SchemaTableName(prefix.getSchemaName(), prefix.getTableName())); } - - private List extractColumnMetadataList(Schema schema) { - return schema.cols.stream() - .map(columnDesc -> new ColumnMetadata(columnDesc.name, convertType(columnDesc.type))) - .collect(Collectors.toList()); - } - - private Type convertType(TypeDesc typeDesc) { - switch (typeDesc.typeId) { - case BOOLEAN: - return BooleanType.BOOLEAN; - case TINYINT: - case SMALLINT: - case INT: - return IntegerType.INTEGER; - case BIGINT: - return BigintType.BIGINT; - case FLOAT: - case DOUBLE: - return DoubleType.DOUBLE; - case STRING: - return VarbinaryType.VARBINARY; - case VARCHAR: - return VarcharType.VARCHAR; - case CHAR: - return VarcharType.createVarcharType(typeDesc.len); - case TIMESTAMP_NANOS: - return TimestampType.TIMESTAMP; - case DECIMAL: - return DecimalType.createDecimalType(typeDesc.precision, typeDesc.len); - default: - throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, - "Unsupported RecordService type " + typeDesc.typeId.name()); - } - } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java index 243570a9f900..3027056cc225 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java @@ -66,7 +66,9 @@ public RecordServiceRecordSet(RecordServiceSplit split) @Override public List getColumnTypes() { - return null; + return records.getSchema().cols.stream() + .map(columnDesc -> RecordServiceUtil.convertType(columnDesc.type)) + .collect(Collectors.toList()); } @Override diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java new file mode 100644 index 000000000000..6da1b5b82577 --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java @@ -0,0 +1,70 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import java.util.List; +import java.util.stream.Collectors; + +import com.cloudera.recordservice.core.Schema; +import com.facebook.presto.spi.ColumnMetadata; +import com.facebook.presto.spi.PrestoException; +import com.facebook.presto.spi.type.BigintType; +import com.facebook.presto.spi.type.BooleanType; +import com.facebook.presto.spi.type.DecimalType; +import com.facebook.presto.spi.type.DoubleType; +import com.facebook.presto.spi.type.IntegerType; +import com.facebook.presto.spi.type.TimestampType; +import com.facebook.presto.spi.type.Type; +import com.facebook.presto.spi.type.VarbinaryType; +import com.facebook.presto.spi.type.VarcharType; + +public class RecordServiceUtil +{ + public static List extractColumnMetadataList(Schema schema) + { + return schema.cols.stream() + .map(columnDesc -> new ColumnMetadata(columnDesc.name, convertType(columnDesc.type))) + .collect(Collectors.toList()); + } + + public static Type convertType(Schema.TypeDesc typeDesc) + { + switch (typeDesc.typeId) { + case BOOLEAN: + return BooleanType.BOOLEAN; + case TINYINT: + case SMALLINT: + case INT: + return IntegerType.INTEGER; + case BIGINT: + return BigintType.BIGINT; + case FLOAT: + case DOUBLE: + return DoubleType.DOUBLE; + case STRING: + return VarbinaryType.VARBINARY; + case VARCHAR: + return VarcharType.VARCHAR; + case CHAR: + return VarcharType.createVarcharType(typeDesc.len); + case TIMESTAMP_NANOS: + return TimestampType.TIMESTAMP; + case DECIMAL: + return DecimalType.createDecimalType(typeDesc.precision, typeDesc.len); + default: + throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, + "Unsupported RecordService type " + typeDesc.typeId.name()); + } + } +} From 21e8ede2b4b5304be46a588b8c7d4f268d025c42 Mon Sep 17 00:00:00 2001 From: lili Date: Fri, 29 Apr 2016 01:59:22 -0700 Subject: [PATCH 20/28] implement isNull in RecordServiceRecordCursor --- .../RecordServiceRecordCursor.java | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java index e69fefdd61c4..ee9a1c093176 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java @@ -26,10 +26,12 @@ public class RecordServiceRecordCursor implements RecordCursor { private static final Logger log = Logger.get(RecordServiceSplitManager.class); private final Records records; + private Records.Record nextRecord; public RecordServiceRecordCursor(Records records) { this.records = records; + this.nextRecord = null; } @Override @@ -78,7 +80,7 @@ public Type getType(int field) public boolean advanceNextPosition() { try { - return records.hasNext(); + return nextRecord != null || records.hasNext(); } catch (IOException e) { log.error("Failed to advanceNextPosition.", e); @@ -93,7 +95,12 @@ public boolean advanceNextPosition() public boolean getBoolean(int field) { try { - return records.next().nextBoolean(field); + if (nextRecord == null) { + nextRecord = records.next(); + } + Records.Record curRecord = nextRecord; + nextRecord = records.next(); + return curRecord.nextBoolean(field); } catch (IOException e) { log.error("Failed to getBoolean.", e); @@ -105,7 +112,12 @@ public boolean getBoolean(int field) public long getLong(int field) { try { - return records.next().nextLong(field); + if (nextRecord == null) { + nextRecord = records.next(); + } + Records.Record curRecord = nextRecord; + nextRecord = records.next(); + return curRecord.nextLong(field); } catch (IOException e) { log.error("Failed to getLong.", e); @@ -117,7 +129,12 @@ public long getLong(int field) public double getDouble(int field) { try { - return records.next().nextDouble(field); + if (nextRecord == null) { + nextRecord = records.next(); + } + Records.Record curRecord = nextRecord; + nextRecord = records.next(); + return curRecord.nextDouble(field); } catch (IOException e) { log.error("Failed to getDouble.", e); @@ -140,7 +157,13 @@ public Object getObject(int field) @Override public boolean isNull(int field) { - throw new UnsupportedOperationException(); + try { + if (nextRecord == null) nextRecord = records.next(); + return nextRecord == null || nextRecord.isNull(field); + } catch (IOException e) { + log.error("Failed to isNull.", e); + } + throw new RuntimeException("Failed to isNull."); } @Override From a916c6b386cf7e2fe74b40197d42ef54e0be5edc Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Fri, 29 Apr 2016 02:42:00 -0700 Subject: [PATCH 21/28] implementing RecordServiceRecordCursor --- .../recordservice/RecordServiceErrorCode.java | 5 +- .../RecordServiceRecordCursor.java | 119 ++++++++++-------- .../recordservice/RecordServiceUtil.java | 2 - 3 files changed, 71 insertions(+), 55 deletions(-) diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java index c574598daf69..fd33560da703 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java @@ -19,7 +19,10 @@ public enum RecordServiceErrorCode implements ErrorCodeSupplier { CATALOG_ERROR(0), - PLAN_ERROR(1); + PLAN_ERROR(1), + TASK_ERROR(2), + CURSOR_ERROR(3), + TYPE_ERROR(4); private final ErrorCode errorCode; diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java index ee9a1c093176..5cda2ed827a1 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java @@ -15,23 +15,40 @@ import com.cloudera.recordservice.core.RecordServiceException; import com.cloudera.recordservice.core.Records; +import com.cloudera.recordservice.core.Schema; +import com.facebook.presto.spi.ColumnMetadata; +import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.type.Type; import io.airlift.log.Logger; import io.airlift.slice.Slice; +import io.airlift.slice.Slices; import java.io.IOException; +import java.util.List; +import java.util.stream.Collectors; public class RecordServiceRecordCursor implements RecordCursor { private static final Logger log = Logger.get(RecordServiceSplitManager.class); private final Records records; private Records.Record nextRecord; + private List columnTypes; + private boolean[] booleanVals; + private long[] longVals; + private double[] doubleVals; + private Slice[] sliceVals; public RecordServiceRecordCursor(Records records) { this.records = records; this.nextRecord = null; + this.columnTypes = records.getSchema().cols.stream() + .map(columnDesc -> columnDesc.type).collect(Collectors.toList()); + booleanVals = new boolean[columnTypes.size()]; + longVals = new long[columnTypes.size()]; + doubleVals = new double[columnTypes.size()]; + sliceVals = new Slice[columnTypes.size()]; } @Override @@ -73,79 +90,83 @@ public long getReadTimeNanos() @Override public Type getType(int field) { - throw new UnsupportedOperationException(); + return RecordServiceUtil.convertType(records.getSchema().cols.get(field).type); } @Override public boolean advanceNextPosition() { try { - return nextRecord != null || records.hasNext(); - } - catch (IOException e) { - log.error("Failed to advanceNextPosition.", e); + boolean result = records.hasNext(); + if (result) { + nextRecord = records.next(); + for (int i = 0; i < columnTypes.size(); ++i) + { + switch (columnTypes.get(i).typeId) + { + case BOOLEAN: + booleanVals[i] = nextRecord.nextBoolean(i); + break; + case TINYINT: + longVals[i] = nextRecord.nextByte(i); + break; + case SMALLINT: + longVals[i] = nextRecord.nextShort(i); + break; + case INT: + longVals[i] = nextRecord.nextInt(i); + break; + case BIGINT: + longVals[i] = nextRecord.nextLong(i); + break; + case FLOAT: + doubleVals[i] = nextRecord.nextFloat(i); + break; + case DOUBLE: + doubleVals[i] = nextRecord.nextDouble(i); + break; + case STRING: + case VARCHAR: + case CHAR: + // TODO: avoid creating string? + sliceVals[i] = Slices.utf8Slice(nextRecord.nextByteArray(i).toString()); + break; + default: + // TODO: handle decimal and timestamp + throw new PrestoException(RecordServiceErrorCode.TYPE_ERROR, + "Unsupported type " + columnTypes.get(i).typeId); + } + } + } + return result; } - catch (RecordServiceException e) { - log.error("Failed to advanceNextPosition.", e); + catch (Exception e) { + throw new PrestoException(RecordServiceErrorCode.CURSOR_ERROR, e); } - return false; } @Override public boolean getBoolean(int field) { - try { - if (nextRecord == null) { - nextRecord = records.next(); - } - Records.Record curRecord = nextRecord; - nextRecord = records.next(); - return curRecord.nextBoolean(field); - } - catch (IOException e) { - log.error("Failed to getBoolean.", e); - } - throw new RuntimeException("Failed to getBoolean."); + return booleanVals[field]; } @Override public long getLong(int field) { - try { - if (nextRecord == null) { - nextRecord = records.next(); - } - Records.Record curRecord = nextRecord; - nextRecord = records.next(); - return curRecord.nextLong(field); - } - catch (IOException e) { - log.error("Failed to getLong.", e); - } - throw new RuntimeException("Failed to getLong."); + return longVals[field]; } @Override public double getDouble(int field) { - try { - if (nextRecord == null) { - nextRecord = records.next(); - } - Records.Record curRecord = nextRecord; - nextRecord = records.next(); - return curRecord.nextDouble(field); - } - catch (IOException e) { - log.error("Failed to getDouble.", e); - } - throw new RuntimeException("Failed to getDouble."); + return doubleVals[field]; } @Override public Slice getSlice(int field) { - throw new UnsupportedOperationException(); + return sliceVals[field]; } @Override @@ -157,13 +178,7 @@ public Object getObject(int field) @Override public boolean isNull(int field) { - try { - if (nextRecord == null) nextRecord = records.next(); - return nextRecord == null || nextRecord.isNull(field); - } catch (IOException e) { - log.error("Failed to isNull.", e); - } - throw new RuntimeException("Failed to isNull."); + return nextRecord.isNull(field); } @Override diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java index 6da1b5b82577..112e6d0f6ee6 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java @@ -26,7 +26,6 @@ import com.facebook.presto.spi.type.IntegerType; import com.facebook.presto.spi.type.TimestampType; import com.facebook.presto.spi.type.Type; -import com.facebook.presto.spi.type.VarbinaryType; import com.facebook.presto.spi.type.VarcharType; public class RecordServiceUtil @@ -53,7 +52,6 @@ public static Type convertType(Schema.TypeDesc typeDesc) case DOUBLE: return DoubleType.DOUBLE; case STRING: - return VarbinaryType.VARBINARY; case VARCHAR: return VarcharType.VARCHAR; case CHAR: From f2c173e8d0800a64cdf8a331af14a629e7003afc Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Fri, 29 Apr 2016 03:17:08 -0700 Subject: [PATCH 22/28] Update RecordServiceClient to use config --- .../recordservice/RecordServiceClient.java | 53 ++++++++++++------- .../recordservice/RecordServiceMetadata.java | 14 +++-- .../RecordServiceSplitManager.java | 7 +-- 3 files changed, 47 insertions(+), 27 deletions(-) diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java index f09631831db9..36135c43de4f 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java @@ -31,48 +31,63 @@ import java.util.List; import java.util.Set; +import javax.inject.Inject; + +import static java.util.Objects.requireNonNull; + public class RecordServiceClient { + private static final Logger LOG = Logger.get(RecordServiceClient.class); + private final RecordServiceConnectorConfig config; - private static final Logger log = Logger.get(RecordServiceClient.class); + @Inject + public RecordServiceClient(RecordServiceConnectorConfig config) + { + this.config = requireNonNull(config, "config is null"); + } - public static List getDatabases() + public List getDatabases() { try { - return new RecordServicePlannerClient.Builder().getDatabases("172.21.2.110", 12050); + HostAddress plannerAddr = getPlannerHostAddress(); + return new RecordServicePlannerClient.Builder() + .getDatabases(plannerAddr.getHostText(), plannerAddr.getPort()); } catch (Exception e) { throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); } } - public static List getTables() + public List getTables(String db) { try { - return new RecordServicePlannerClient.Builder().getTables("172.21.2.110", 12050, "tpch"); + HostAddress plannerAddr = getPlannerHostAddress(); + return new RecordServicePlannerClient.Builder() + .getTables(plannerAddr.getHostText(), plannerAddr.getPort(), db); } catch (Exception e) { throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); } } - public static Schema getSchema(String db, String table) { + public Schema getSchema(String db, String table) { try { + HostAddress plannerAddr = getPlannerHostAddress(); Request request = Request.createTableScanRequest(db + "." + table); - return new RecordServicePlannerClient.Builder().getSchema("172.21.2.110", 12050, request).schema; + return new RecordServicePlannerClient.Builder() + .getSchema(plannerAddr.getHostText(), plannerAddr.getPort(), request).schema; } catch (Exception e) { throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); } } - public static PlanRequestResult getPlanResult(RecordServiceConnectorConfig config, - Request request) throws IOException, RecordServiceException + public PlanRequestResult getPlanResult(Request request) throws IOException, RecordServiceException + { + HostAddress plannerAddr = getPlannerHostAddress(); + LOG.info("Get planResult from " + plannerAddr); + return new RecordServicePlannerClient.Builder().planRequest(plannerAddr.getHostText(), plannerAddr.getPort(), request); + } + + private HostAddress getPlannerHostAddress() { - Set planners = config.getPlanners(); - List plannerList = new ArrayList<>(planners); - Collections.shuffle(plannerList); - String plannerHost = plannerList.get(0).getHostText(); - int port = plannerList.get(0).getPort(); - log.info("Get planResult from " + plannerList.get(0).toString()); - - return new RecordServicePlannerClient.Builder().planRequest(plannerHost, port, request); + return config.getPlanners().iterator().next(); } public static HostAddress getWorkerHostAddress(List addresses) @@ -82,13 +97,13 @@ public static HostAddress getWorkerHostAddress(List addresses) localHost = InetAddress.getLocalHost().getHostName(); } catch (UnknownHostException e) { - log.error("Failed to get the local host.", e); + LOG.error("Failed to get the local host.", e); } // 1. If the data is available on this node, schedule the task locally. for (HostAddress add : addresses) { if (localHost.equals(add.getHostText())) { - log.info("Both data and RecordServiceWorker are available locally for task."); + LOG.info("Both data and RecordServiceWorker are available locally for task."); return add; } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java index ecb73a5afcca..4e3845eca12f 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java @@ -46,18 +46,22 @@ public class RecordServiceMetadata implements ConnectorMetadata { private static final Logger LOG = Logger.get(RecordServiceMetadata.class); private final String connectorId; + private final RecordServiceClient client; @Inject public RecordServiceMetadata( - RecordServiceConnectorId connectorId) + RecordServiceConnectorId connectorId, + RecordServiceConnectorConfig config) { this.connectorId = requireNonNull(connectorId, "connectorId is null").toString(); + requireNonNull(config, "config is null"); + this.client = new RecordServiceClient(config); } @Override public List listSchemaNames(ConnectorSession session) { - return RecordServiceClient.getDatabases(); + return client.getDatabases(); } @Override @@ -92,14 +96,14 @@ public ConnectorTableMetadata getTableMetadata(ConnectorSession session, Connect private ConnectorTableMetadata getTableMetadata(SchemaTableName schemaTableName) { - Schema schema = RecordServiceClient.getSchema(schemaTableName.getSchemaName(), schemaTableName.getTableName()); + Schema schema = client.getSchema(schemaTableName.getSchemaName(), schemaTableName.getTableName()); return new ConnectorTableMetadata(schemaTableName, RecordServiceUtil.extractColumnMetadataList(schema)); } @Override public List listTables(ConnectorSession session, String schemaNameOrNull) { - return RecordServiceClient.getTables() + return client.getTables(schemaNameOrNull) .stream().map(tblName -> new SchemaTableName(schemaNameOrNull, tblName)) .collect(Collectors.toList()); } @@ -109,7 +113,7 @@ public Map getColumnHandles(ConnectorSession session, Conn { requireNonNull(tableHandle, "tableHandle is null"); SchemaTableName schemaTableName = schemaTableName(tableHandle); - Schema schema = RecordServiceClient.getSchema(schemaTableName.getSchemaName(), schemaTableName.getTableName()); + Schema schema = client.getSchema(schemaTableName.getSchemaName(), schemaTableName.getTableName()); ImmutableMap.Builder columnHandles = ImmutableMap.builder(); for (Schema.ColumnDesc columnDesc : schema.cols) { columnHandles.put(columnDesc.name, diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java index 3ba87513f4ae..5a709c267eb5 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java @@ -40,13 +40,14 @@ public class RecordServiceSplitManager implements ConnectorSplitManager { private final String connectorId; private static final Logger log = Logger.get(RecordServiceSplitManager.class); - private final RecordServiceConnectorConfig config; + private final RecordServiceClient client; @Inject public RecordServiceSplitManager(RecordServiceConnectorId connectorId, RecordServiceConnectorConfig config) { this.connectorId = requireNonNull(connectorId, "connectorId is null").toString(); - this.config = requireNonNull(config, "RecordServiceConfig is null"); + requireNonNull(config, "RecordServiceConfig is null"); + this.client = new RecordServiceClient(config); } @Override @@ -60,7 +61,7 @@ public ConnectorSplitSource getSplits(ConnectorTransactionHandle handle, Request request = Request.createTableScanRequest(layoutHandle.getTable().getSchemaTableName().toString()); try { - PlanRequestResult planRequestResult = RecordServiceClient.getPlanResult(config, request); + PlanRequestResult planRequestResult = client.getPlanResult(request); List splits = planRequestResult.tasks.stream() .map(t -> new RecordServiceSplit( connectorId, t.task, t.taskSize, t.taskId.hi, From 73417d7a8e0381883618673deccd446348be3c45 Mon Sep 17 00:00:00 2001 From: lili Date: Fri, 29 Apr 2016 03:29:25 -0700 Subject: [PATCH 23/28] add column in request --- .../recordservice/RecordServiceMetadata.java | 14 ++++++---- .../RecordServiceRecordCursor.java | 1 - .../RecordServiceSplitManager.java | 9 ++---- .../RecordServiceTableLayoutHandle.java | 28 +++++++++++++++++-- 4 files changed, 37 insertions(+), 15 deletions(-) diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java index 4e3845eca12f..8f8bca54edae 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java @@ -33,10 +33,7 @@ import javax.inject.Inject; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import static com.facebook.presto.recordservice.Types.checkType; @@ -76,9 +73,16 @@ public ConnectorTableHandle getTableHandle(ConnectorSession session, SchemaTable public List getTableLayouts(ConnectorSession session, ConnectorTableHandle table, Constraint constraint, Optional> desiredColumns) { + Set columns = new HashSet<>(); + if (desiredColumns.get() != null) { + for (ColumnHandle col : desiredColumns.get()) { + RecordServiceColumnHandle rsCol = checkType(col, RecordServiceColumnHandle.class, "column"); + columns.add(rsCol); + } + } RecordServiceTableHandle handle = checkType(table, RecordServiceTableHandle.class, "table"); return ImmutableList.of(new ConnectorTableLayoutResult( - getTableLayout(session, new RecordServiceTableLayoutHandle(handle)), constraint.getSummary())); + getTableLayout(session, new RecordServiceTableLayoutHandle(handle, columns)), constraint.getSummary())); } @Override diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java index 5cda2ed827a1..4d5daf3e9cb3 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java @@ -16,7 +16,6 @@ import com.cloudera.recordservice.core.RecordServiceException; import com.cloudera.recordservice.core.Records; import com.cloudera.recordservice.core.Schema; -import com.facebook.presto.spi.ColumnMetadata; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.type.Type; diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java index 5a709c267eb5..886e82e0b074 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java @@ -15,18 +15,13 @@ import com.cloudera.recordservice.core.NetworkAddress; import com.cloudera.recordservice.core.PlanRequestResult; -import com.cloudera.recordservice.core.RecordServiceException; import com.cloudera.recordservice.core.Request; -import com.cloudera.recordservice.core.Task; import com.facebook.presto.spi.*; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -import com.google.common.collect.ImmutableList; import io.airlift.log.Logger; -import java.io.IOException; -import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -56,9 +51,9 @@ public ConnectorSplitSource getSplits(ConnectorTransactionHandle handle, { RecordServiceTableLayoutHandle layoutHandle = checkType(layout, RecordServiceTableLayoutHandle.class, "layout"); - log.info("getSplits for " + layoutHandle.getTable().getSchemaTableName().toString()); + log.info("getSplits for " + layoutHandle.toString()); - Request request = Request.createTableScanRequest(layoutHandle.getTable().getSchemaTableName().toString()); + Request request = Request.createSqlRequest(layoutHandle.toString()); try { PlanRequestResult planRequestResult = client.getPlanResult(request); diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java index c4d5cd3b6080..39a97c61d3d5 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java @@ -17,16 +17,21 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Set; + import static java.util.Objects.requireNonNull; public class RecordServiceTableLayoutHandle implements ConnectorTableLayoutHandle { private final RecordServiceTableHandle table; + private final Set columns; @JsonCreator - public RecordServiceTableLayoutHandle(@JsonProperty("table") RecordServiceTableHandle table) + public RecordServiceTableLayoutHandle(@JsonProperty("table") RecordServiceTableHandle table, + @JsonProperty("columns") Set columns) { this.table = requireNonNull(table, "table is null"); + this.columns = columns; } @JsonProperty @@ -35,9 +40,28 @@ public RecordServiceTableHandle getTable() return table; } + @JsonProperty + public Set getColumns() + { + return columns; + } + @Override public String toString() { - return table.toString(); + StringBuilder sb = new StringBuilder(); + sb.append("select "); + for (RecordServiceColumnHandle col : columns) { + sb.append(col.getName()); + sb.append(","); + } + if (columns.size() == 0) { + sb.append("*"); + } else { + sb.setLength(sb.length() - 1); + } + sb.append(" from "); + sb.append(table.getSchemaTableName()); + return sb.toString(); } } From dfb7086335563e4ed9667de5a7fbb815a481cac9 Mon Sep 17 00:00:00 2001 From: lili Date: Fri, 29 Apr 2016 04:08:14 -0700 Subject: [PATCH 24/28] use list instead of set for RecordServiceColumnHandle --- .../recordservice/RecordServiceMetadata.java | 2 +- .../RecordServiceSplitManager.java | 4 ++-- .../RecordServiceTableLayoutHandle.java | 18 ++++++++++++------ 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java index 8f8bca54edae..d40c2e472d55 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java @@ -73,7 +73,7 @@ public ConnectorTableHandle getTableHandle(ConnectorSession session, SchemaTable public List getTableLayouts(ConnectorSession session, ConnectorTableHandle table, Constraint constraint, Optional> desiredColumns) { - Set columns = new HashSet<>(); + List columns = new LinkedList<>(); if (desiredColumns.get() != null) { for (ColumnHandle col : desiredColumns.get()) { RecordServiceColumnHandle rsCol = checkType(col, RecordServiceColumnHandle.class, "column"); diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java index 886e82e0b074..54c8aa766187 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java @@ -51,9 +51,9 @@ public ConnectorSplitSource getSplits(ConnectorTransactionHandle handle, { RecordServiceTableLayoutHandle layoutHandle = checkType(layout, RecordServiceTableLayoutHandle.class, "layout"); - log.info("getSplits for " + layoutHandle.toString()); + log.info("getSplits for " + layoutHandle.getQuery()); - Request request = Request.createSqlRequest(layoutHandle.toString()); + Request request = Request.createSqlRequest(layoutHandle.getQuery()); try { PlanRequestResult planRequestResult = client.getPlanResult(request); diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java index 39a97c61d3d5..00076678bfdb 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java @@ -17,18 +17,18 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.Set; +import java.util.List; import static java.util.Objects.requireNonNull; public class RecordServiceTableLayoutHandle implements ConnectorTableLayoutHandle { private final RecordServiceTableHandle table; - private final Set columns; + private final List columns; @JsonCreator public RecordServiceTableLayoutHandle(@JsonProperty("table") RecordServiceTableHandle table, - @JsonProperty("columns") Set columns) + @JsonProperty("columns") List columns) { this.table = requireNonNull(table, "table is null"); this.columns = columns; @@ -41,13 +41,13 @@ public RecordServiceTableHandle getTable() } @JsonProperty - public Set getColumns() + public List getColumns() { return columns; } - @Override - public String toString() + @JsonProperty + public String getQuery() { StringBuilder sb = new StringBuilder(); sb.append("select "); @@ -64,4 +64,10 @@ public String toString() sb.append(table.getSchemaTableName()); return sb.toString(); } + + @Override + public String toString() + { + return table.toString(); + } } From 010db737de57403cd8ace38bb8c0f9f42d3f7999 Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Fri, 29 Apr 2016 04:25:23 -0700 Subject: [PATCH 25/28] Add support for timestamp and decimal --- .../RecordServiceRecordCursor.java | 19 +++++++++++++++++-- .../recordservice/RecordServiceUtil.java | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java index 4d5daf3e9cb3..4d5fda5a83af 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java @@ -18,13 +18,18 @@ import com.cloudera.recordservice.core.Schema; import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; +import com.facebook.presto.spi.type.DecimalType; +import com.facebook.presto.spi.type.Decimals; import com.facebook.presto.spi.type.Type; import io.airlift.log.Logger; import io.airlift.slice.Slice; import io.airlift.slice.Slices; import java.io.IOException; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.List; +import java.util.TimeZone; import java.util.stream.Collectors; public class RecordServiceRecordCursor implements RecordCursor @@ -130,8 +135,18 @@ public boolean advanceNextPosition() // TODO: avoid creating string? sliceVals[i] = Slices.utf8Slice(nextRecord.nextByteArray(i).toString()); break; + case TIMESTAMP_NANOS: + // TODO: fix timezone + longVals[i] = nextRecord.nextTimestampNanos(i).getMillisSinceEpoch(); + break; + case DECIMAL: + // TODO: double check this + BigDecimal decimal = nextRecord.nextDecimal(i).toBigDecimal(); + DecimalType decimalType = (DecimalType) getType(i); + decimal = decimal.setScale(decimalType.getScale(), BigDecimal.ROUND_HALF_UP); + sliceVals[i] = Decimals.encodeUnscaledValue(decimal.unscaledValue()); + break; default: - // TODO: handle decimal and timestamp throw new PrestoException(RecordServiceErrorCode.TYPE_ERROR, "Unsupported type " + columnTypes.get(i).typeId); } @@ -171,7 +186,7 @@ public Slice getSlice(int field) @Override public Object getObject(int field) { - throw new UnsupportedOperationException(); + throw new UnsupportedOperationException("getObject is not supported"); } @Override diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java index 112e6d0f6ee6..653b48c55a49 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java @@ -59,7 +59,7 @@ public static Type convertType(Schema.TypeDesc typeDesc) case TIMESTAMP_NANOS: return TimestampType.TIMESTAMP; case DECIMAL: - return DecimalType.createDecimalType(typeDesc.precision, typeDesc.len); + return DecimalType.createDecimalType(typeDesc.precision, typeDesc.scale); default: throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, "Unsupported RecordService type " + typeDesc.typeId.name()); From e041ea48b0e92f906dd95cfa91641c29f9b12be9 Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Fri, 29 Apr 2016 04:34:34 -0700 Subject: [PATCH 26/28] Fix null fields --- .../presto/recordservice/RecordServiceRecordCursor.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java index 4d5fda5a83af..18ac9c6dc6d6 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java @@ -106,6 +106,10 @@ public boolean advanceNextPosition() nextRecord = records.next(); for (int i = 0; i < columnTypes.size(); ++i) { + if (isNull(i)) { + continue; + } + switch (columnTypes.get(i).typeId) { case BOOLEAN: From 7d9421aaed0af1ad35f72c4394376f83719263f7 Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Fri, 29 Apr 2016 11:51:25 -0700 Subject: [PATCH 27/28] Adding kerberos & delegation token support --- .../recordservice/RecordServiceClient.java | 92 ++++++++++++++----- .../RecordServiceConnectorConfig.java | 13 +++ .../RecordServicePlanResult.java | 28 ++++++ .../recordservice/RecordServiceRecordSet.java | 14 ++- .../recordservice/RecordServiceSplit.java | 43 ++++++++- .../RecordServiceSplitManager.java | 11 ++- 6 files changed, 170 insertions(+), 31 deletions(-) create mode 100644 presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlanResult.java diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java index 36135c43de4f..2203e71634e7 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java @@ -13,8 +13,8 @@ */ package com.facebook.presto.recordservice; +import com.cloudera.recordservice.core.DelegationToken; import com.cloudera.recordservice.core.PlanRequestResult; -import com.cloudera.recordservice.core.RecordServiceException; import com.cloudera.recordservice.core.RecordServicePlannerClient; import com.cloudera.recordservice.core.Request; import com.cloudera.recordservice.core.Schema; @@ -23,13 +23,11 @@ import io.airlift.log.Logger; -import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; -import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Set; +import java.util.Random; import javax.inject.Inject; @@ -49,8 +47,7 @@ public List getDatabases() { try { HostAddress plannerAddr = getPlannerHostAddress(); - return new RecordServicePlannerClient.Builder() - .getDatabases(plannerAddr.getHostText(), plannerAddr.getPort()); + return getPlannerBuilder().getDatabases(plannerAddr.getHostText(), plannerAddr.getPort()); } catch (Exception e) { throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); } @@ -60,7 +57,7 @@ public List getTables(String db) { try { HostAddress plannerAddr = getPlannerHostAddress(); - return new RecordServicePlannerClient.Builder() + return getPlannerBuilder() .getTables(plannerAddr.getHostText(), plannerAddr.getPort(), db); } catch (Exception e) { throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); @@ -71,46 +68,91 @@ public Schema getSchema(String db, String table) { try { HostAddress plannerAddr = getPlannerHostAddress(); Request request = Request.createTableScanRequest(db + "." + table); - return new RecordServicePlannerClient.Builder() + return getPlannerBuilder() .getSchema(plannerAddr.getHostText(), plannerAddr.getPort(), request).schema; } catch (Exception e) { - throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); + throw new PrestoException(RecordServiceErrorCode.PLAN_ERROR, e); } } - public PlanRequestResult getPlanResult(Request request) throws IOException, RecordServiceException + public RecordServicePlanResult getPlanResult(Request request) { - HostAddress plannerAddr = getPlannerHostAddress(); - LOG.info("Get planResult from " + plannerAddr); - return new RecordServicePlannerClient.Builder().planRequest(plannerAddr.getHostText(), plannerAddr.getPort(), request); - } - - private HostAddress getPlannerHostAddress() - { - return config.getPlanners().iterator().next(); + RecordServicePlannerClient plannerClient = null; + try { + HostAddress plannerAddr = getPlannerHostAddress(); + LOG.info("Get planResult from " + plannerAddr); + RecordServicePlannerClient.Builder builder = getPlannerBuilder(); + plannerClient = builder.connect(plannerAddr.getHostText(), plannerAddr.getPort()); + PlanRequestResult planRequestResult = plannerClient.planRequest(request); + DelegationToken delegationToken = null; + if (plannerClient.isKerberosAuthenticated()) { + delegationToken = plannerClient.getDelegationToken(""); + } + return new RecordServicePlanResult(planRequestResult, delegationToken); + } catch (Exception e) { + throw new PrestoException(RecordServiceErrorCode.PLAN_ERROR, e); + } finally { + if (plannerClient != null) { + plannerClient.close(); + } + } } - public static HostAddress getWorkerHostAddress(List addresses) + public static HostAddress getWorkerHostAddress(List addresses, List globalAddresses) { - String localHost = null; + String localHost; try { localHost = InetAddress.getLocalHost().getHostName(); } catch (UnknownHostException e) { - LOG.error("Failed to get the local host.", e); + throw new PrestoException(RecordServiceErrorCode.TASK_ERROR, "Failed to get the local host.", e); } + HostAddress address = null; + // 1. If the data is available on this node, schedule the task locally. for (HostAddress add : addresses) { if (localHost.equals(add.getHostText())) { LOG.info("Both data and RecordServiceWorker are available locally for task."); - return add; + address = add; + break; } } - // 2. Otherwise, randomly pick a node. - Collections.shuffle(addresses); + // 2. Check if there's a RecordServiceWorker running locally. If so, pick that node. + if (address == null) { + for (HostAddress loc : globalAddresses) { + if (localHost.equals(loc.getHostText())) { + address = loc; + LOG.info("RecordServiceWorker is available locally for task"); + break; + } + } + } + + // 3. Finally, we don't have RecordServiceWorker running locally. Randomly pick + // a node from the global membership. + if (address == null) { + Random rand = new Random(); + address = globalAddresses.get(rand.nextInt(globalAddresses.size())); + LOG.info("Neither RecordServiceWorker nor data is available locally for task {}." + + " Randomly selected host {} to execute it", address); + } - return addresses.get(0); + return address; + } + + private HostAddress getPlannerHostAddress() + { + return config.getPlanners().iterator().next(); + } + + private RecordServicePlannerClient.Builder getPlannerBuilder() + { + RecordServicePlannerClient.Builder result = new RecordServicePlannerClient.Builder(); + if (config.getKerberosPrincipal() != null) { + result.setKerberosPrincipal(config.getKerberosPrincipal()); + } + return result; } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorConfig.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorConfig.java index 4c612752c8ca..216d4717d20f 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorConfig.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorConfig.java @@ -32,6 +32,7 @@ public class RecordServiceConnectorConfig { * RecordService planner host */ private Set planners = ImmutableSet.of(); + private String kerberosPrincipal = null; @Size(min = 1) public Set getPlanners() @@ -39,6 +40,11 @@ public Set getPlanners() return planners; } + public String getKerberosPrincipal() + { + return kerberosPrincipal; + } + @Config("recordservice.planner.hostports") public RecordServiceConnectorConfig setPlanners(String plannerHostPorts) { @@ -46,6 +52,13 @@ public RecordServiceConnectorConfig setPlanners(String plannerHostPorts) return this; } + @Config("recordservice.kerberos.principal") + public RecordServiceConnectorConfig setKerberosPrincipal(String kerberosPrincipal) + { + this.kerberosPrincipal = kerberosPrincipal; + return this; + } + public static ImmutableSet parsePlannerHostPorts(String plannerHostPorts) { Splitter splitter = Splitter.on(',').omitEmptyStrings().trimResults(); diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlanResult.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlanResult.java new file mode 100644 index 000000000000..a11ca9936093 --- /dev/null +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlanResult.java @@ -0,0 +1,28 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.facebook.presto.recordservice; + +import com.cloudera.recordservice.core.DelegationToken; +import com.cloudera.recordservice.core.PlanRequestResult; + +public class RecordServicePlanResult { + public final PlanRequestResult planRequestResult; + public final DelegationToken delegationToken; + + RecordServicePlanResult(PlanRequestResult planRequestResult, DelegationToken delegationToken) + { + this.planRequestResult = planRequestResult; + this.delegationToken = delegationToken; + } +} diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java index 3027056cc225..903af67db41e 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.recordservice; +import com.cloudera.recordservice.core.DelegationToken; import com.cloudera.recordservice.core.RecordServiceException; import com.cloudera.recordservice.core.RecordServiceWorkerClient; import com.cloudera.recordservice.core.Records; @@ -39,13 +40,20 @@ public class RecordServiceRecordSet implements RecordSet, Closeable public RecordServiceRecordSet(RecordServiceSplit split) { - HostAddress host = RecordServiceClient.getWorkerHostAddress(split.getAddresses()); + HostAddress host = RecordServiceClient.getWorkerHostAddress(split.getAddresses(), split.getGlobalAddresses()); RecordServiceWorkerClient workerClient = null; Records records = null; + DelegationToken delegationToken = null; + if (split.getIdentifier() != null) { + delegationToken = new DelegationToken(split.getIdentifier(), split.getPassword(), split.getToken()); + } try { - workerClient = - new RecordServiceWorkerClient.Builder().connect(host.getHostText(), host.getPort()); + RecordServiceWorkerClient.Builder workerBuilder = new RecordServiceWorkerClient.Builder(); + if (delegationToken != null) { + workerBuilder.setDelegationToken(delegationToken); + } + workerClient = workerBuilder.connect(host.getHostText(), host.getPort()); records = workerClient.execAndFetch(fromSplit(split)); records.setCloseWorker(true); } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java index 5e29e626aee2..b3784e784fdd 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java @@ -17,6 +17,7 @@ import com.facebook.presto.spi.HostAddress; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -34,6 +35,12 @@ public class RecordServiceSplit implements ConnectorSplit private final long lo; private final boolean resultOrdered; private final List addresses; + private final List globalAddresses; + + // Parts for DelegationToken. If no delegation token, these are all null. + private final String identifier; + private final String password; + private final byte[] token; @JsonCreator public RecordServiceSplit( @@ -43,7 +50,11 @@ public RecordServiceSplit( @JsonProperty("hi") long hi, @JsonProperty("lo") long lo, @JsonProperty("resultOrdered") boolean resultOrdered, - @JsonProperty("addresses") List addresses) + @JsonProperty("addresses") List addresses, + @JsonProperty("globalAddresses") List globalAddresses, + @JsonProperty("identifier") String identifier, + @JsonProperty("password") String password, + @JsonProperty("token") byte[] token) { this.connectorId = requireNonNull(connectorId, "connectorId is null"); this.task = requireNonNull(task, "task is null"); @@ -52,6 +63,12 @@ public RecordServiceSplit( this.lo = lo; this.resultOrdered = resultOrdered; this.addresses = ImmutableList.copyOf(requireNonNull(addresses, "addresses is null")); + this.globalAddresses = ImmutableList.copyOf(requireNonNull(globalAddresses, "globalAddresses is null")); + + // These are nullable + this.identifier = identifier; + this.password = password; + this.token = token; } @Override @@ -126,4 +143,28 @@ public boolean getResultOrdered() { return resultOrdered; } + + @JsonProperty + public List getGlobalAddresses() + { + return globalAddresses; + } + + @JsonProperty + public String getIdentifier() + { + return identifier; + } + + @JsonProperty + public String getPassword() + { + return password; + } + + @JsonProperty + public byte[] getToken() + { + return token; + } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java index 54c8aa766187..2b30aa7ee82e 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java @@ -13,6 +13,7 @@ */ package com.facebook.presto.recordservice; +import com.cloudera.recordservice.core.DelegationToken; import com.cloudera.recordservice.core.NetworkAddress; import com.cloudera.recordservice.core.PlanRequestResult; import com.cloudera.recordservice.core.Request; @@ -56,11 +57,17 @@ public ConnectorSplitSource getSplits(ConnectorTransactionHandle handle, Request request = Request.createSqlRequest(layoutHandle.getQuery()); try { - PlanRequestResult planRequestResult = client.getPlanResult(request); + RecordServicePlanResult planResult = client.getPlanResult(request); + PlanRequestResult planRequestResult = planResult.planRequestResult; + DelegationToken delegationToken = planResult.delegationToken; List splits = planRequestResult.tasks.stream() .map(t -> new RecordServiceSplit( connectorId, t.task, t.taskSize, t.taskId.hi, - t.taskId.lo, t.resultsOrdered, toHostAddress(planRequestResult.hosts))) + t.taskId.lo, t.resultsOrdered, toHostAddress(t.localHosts), + toHostAddress(planRequestResult.hosts), + delegationToken == null ? null : delegationToken.identifier, + delegationToken == null ? null : delegationToken.password, + delegationToken == null ? null : delegationToken.token)) .collect(Collectors.toList()); Collections.shuffle(splits); From 02c9c58072659adbaf85dbf58f75f066805716fd Mon Sep 17 00:00:00 2001 From: Chao Sun Date: Sun, 1 May 2016 11:26:33 -0700 Subject: [PATCH 28/28] cleanup / various fixes --- presto-recordservice/pom.xml | 13 +++++----- .../recordservice/RecordServiceClient.java | 22 +++++++++-------- .../recordservice/RecordServiceConnector.java | 4 ++-- .../RecordServiceConnectorConfig.java | 2 ++ .../RecordServiceConnectorFactory.java | 7 +++--- .../recordservice/RecordServiceErrorCode.java | 5 ++++ .../RecordServiceHandleResolver.java | 15 ++++++++---- .../recordservice/RecordServiceMetadata.java | 6 ++++- .../recordservice/RecordServicePlugin.java | 4 ++-- .../RecordServiceRecordCursor.java | 24 +++++++------------ .../recordservice/RecordServiceRecordSet.java | 11 ++++----- .../RecordServiceRecordSetProvider.java | 7 ++++-- .../recordservice/RecordServiceSplit.java | 1 - .../RecordServiceSplitManager.java | 12 +++++++--- .../RecordServiceTableLayoutHandle.java | 6 ++--- .../RecordServiceTransactionHandle.java | 1 - .../recordservice/RecordServiceUtil.java | 4 ++-- 17 files changed, 81 insertions(+), 63 deletions(-) diff --git a/presto-recordservice/pom.xml b/presto-recordservice/pom.xml index ad8526722651..8f79857c22ce 100644 --- a/presto-recordservice/pom.xml +++ b/presto-recordservice/pom.xml @@ -21,18 +21,22 @@ com.cloudera.recordservice recordservice-core 0.4.0-cdh5.8.x + + + org.slf4j + slf4j-log4j12 + + javax.validation validation-api - 1.1.0.Final com.google.guava guava - 19.0 @@ -102,11 +106,6 @@ guice - - javax.validation - validation-api - - org.testng diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java index 2203e71634e7..938b1efbe6cb 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceClient.java @@ -15,6 +15,7 @@ import com.cloudera.recordservice.core.DelegationToken; import com.cloudera.recordservice.core.PlanRequestResult; +import com.cloudera.recordservice.core.RecordServiceException; import com.cloudera.recordservice.core.RecordServicePlannerClient; import com.cloudera.recordservice.core.Request; import com.cloudera.recordservice.core.Schema; @@ -23,9 +24,9 @@ import io.airlift.log.Logger; +import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; -import java.util.Collections; import java.util.List; import java.util.Random; @@ -48,8 +49,8 @@ public List getDatabases() try { HostAddress plannerAddr = getPlannerHostAddress(); return getPlannerBuilder().getDatabases(plannerAddr.getHostText(), plannerAddr.getPort()); - } catch (Exception e) { - throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); + } catch (IOException | RecordServiceException e) { + throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, "Failed at getDatabases", e); } } @@ -59,8 +60,8 @@ public List getTables(String db) HostAddress plannerAddr = getPlannerHostAddress(); return getPlannerBuilder() .getTables(plannerAddr.getHostText(), plannerAddr.getPort(), db); - } catch (Exception e) { - throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, e); + } catch (IOException | RecordServiceException e) { + throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, "Failed at getTables", e); } } @@ -70,8 +71,8 @@ public Schema getSchema(String db, String table) { Request request = Request.createTableScanRequest(db + "." + table); return getPlannerBuilder() .getSchema(plannerAddr.getHostText(), plannerAddr.getPort(), request).schema; - } catch (Exception e) { - throw new PrestoException(RecordServiceErrorCode.PLAN_ERROR, e); + } catch (IOException | RecordServiceException e) { + throw new PrestoException(RecordServiceErrorCode.PLAN_ERROR, "Failed at getSchema", e); } } @@ -80,7 +81,7 @@ public RecordServicePlanResult getPlanResult(Request request) RecordServicePlannerClient plannerClient = null; try { HostAddress plannerAddr = getPlannerHostAddress(); - LOG.info("Get planResult from " + plannerAddr); + LOG.info("Get planResult from: " + plannerAddr); RecordServicePlannerClient.Builder builder = getPlannerBuilder(); plannerClient = builder.connect(plannerAddr.getHostText(), plannerAddr.getPort()); PlanRequestResult planRequestResult = plannerClient.planRequest(request); @@ -89,8 +90,8 @@ public RecordServicePlanResult getPlanResult(Request request) delegationToken = plannerClient.getDelegationToken(""); } return new RecordServicePlanResult(planRequestResult, delegationToken); - } catch (Exception e) { - throw new PrestoException(RecordServiceErrorCode.PLAN_ERROR, e); + } catch (IOException | RecordServiceException e) { + throw new PrestoException(RecordServiceErrorCode.PLAN_ERROR, "Failed at planRequest", e); } finally { if (plannerClient != null) { plannerClient.close(); @@ -144,6 +145,7 @@ public static HostAddress getWorkerHostAddress(List addresses, List private HostAddress getPlannerHostAddress() { + // size is checked in getPlanners() call return config.getPlanners().iterator().next(); } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java index a9beffd5d68a..6cba4b543956 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnector.java @@ -29,7 +29,7 @@ public class RecordServiceConnector implements Connector { - private static final Logger log = Logger.get(RecordServiceConnector.class); + private static final Logger LOG = Logger.get(RecordServiceConnector.class); private final LifeCycleManager lifeCycleManager; private final RecordServiceMetadata metadata; @@ -78,7 +78,7 @@ public final void shutdown() lifeCycleManager.stop(); } catch (Exception e) { - log.error(e, "Error shutting down RecordService connector"); + LOG.error(e, "Error shutting down RecordService connector"); } } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorConfig.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorConfig.java index 216d4717d20f..c112ed9fa794 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorConfig.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorConfig.java @@ -59,6 +59,8 @@ public RecordServiceConnectorConfig setKerberosPrincipal(String kerberosPrincipa return this; } + // TODO: more configs + public static ImmutableSet parsePlannerHostPorts(String plannerHostPorts) { Splitter splitter = Splitter.on(',').omitEmptyStrings().trimResults(); diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java index 02a41b559fc9..265e0f9628e7 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceConnectorFactory.java @@ -30,8 +30,9 @@ import io.airlift.log.Logger; public class RecordServiceConnectorFactory implements ConnectorFactory { - private static final Logger log = Logger.get(RecordServiceConnectorFactory.class); + private static final Logger LOG = Logger.get(RecordServiceConnectorFactory.class); private final TypeManager typeManager; + // TODO: do we need this? private final NodeManager nodeManager; private final Map optionalConfig; @@ -59,7 +60,7 @@ public ConnectorHandleResolver getHandleResolver() { public Connector create(String connectorId, Map config) { requireNonNull(connectorId, "connectorId is null"); requireNonNull(config, "config is null"); - log.info("Start to create a RecordServiceConnector"); + LOG.info("Start to create a RecordServiceConnector"); try { Bootstrap app = new Bootstrap( @@ -76,7 +77,7 @@ public Connector create(String connectorId, Map config) { return injector.getInstance(RecordServiceConnector.class); } catch(Exception e) { - log.error("Failed to create a RecordServiceConnector.", e); + LOG.error("Failed to create a RecordServiceConnector.", e); throw Throwables.propagate(e); } } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java index fd33560da703..7f1d64415265 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceErrorCode.java @@ -18,10 +18,15 @@ public enum RecordServiceErrorCode implements ErrorCodeSupplier { + // Error in catalog operations, such as getDbs, getTables, etc. CATALOG_ERROR(0), + // Error in request planning PLAN_ERROR(1), + // Error in executing worker tasks TASK_ERROR(2), + // Error in fetching/iterating records CURSOR_ERROR(3), + // Error in incompatible/unexpected types TYPE_ERROR(4); private final ErrorCode errorCode; diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceHandleResolver.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceHandleResolver.java index ad1b479bd931..983e904f1b28 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceHandleResolver.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceHandleResolver.java @@ -20,24 +20,29 @@ import com.facebook.presto.spi.ConnectorTableLayoutHandle; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; -public class RecordServiceHandleResolver implements ConnectorHandleResolver { +public class RecordServiceHandleResolver implements ConnectorHandleResolver +{ @Override - public Class getTableHandleClass() { + public Class getTableHandleClass() + { return RecordServiceTableHandle.class; } @Override - public Class getTableLayoutHandleClass() { + public Class getTableLayoutHandleClass() + { return RecordServiceTableLayoutHandle.class; } @Override - public Class getColumnHandleClass() { + public Class getColumnHandleClass() + { return RecordServiceColumnHandle.class; } @Override - public Class getSplitClass() { + public Class getSplitClass() + { return RecordServiceSplit.class; } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java index d40c2e472d55..780b1c77d61c 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceMetadata.java @@ -33,7 +33,11 @@ import javax.inject.Inject; -import java.util.*; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; import java.util.stream.Collectors; import static com.facebook.presto.recordservice.Types.checkType; diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java index a2fd1e803dba..6d7dea092b1f 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServicePlugin.java @@ -33,7 +33,7 @@ */ public class RecordServicePlugin implements Plugin { - private static final Logger log = Logger.get(RecordServicePlugin.class); + private static final Logger LOG = Logger.get(RecordServicePlugin.class); private TypeManager typeManager; private NodeManager nodeManager; private Map optionalConfig = ImmutableMap.of(); @@ -60,7 +60,7 @@ public synchronized void setNodeManager(NodeManager nodeManager) public List getServices(Class type) { if (type == ConnectorFactory.class) { - log.info("RecordServicePlugin GetServices()"); + LOG.info("RecordServicePlugin GetServices()"); return ImmutableList.of(type.cast(new RecordServiceConnectorFactory(typeManager, nodeManager, optionalConfig))); } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java index 18ac9c6dc6d6..6b14dbc1d826 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordCursor.java @@ -27,14 +27,12 @@ import java.io.IOException; import java.math.BigDecimal; -import java.text.SimpleDateFormat; import java.util.List; -import java.util.TimeZone; import java.util.stream.Collectors; public class RecordServiceRecordCursor implements RecordCursor { - private static final Logger log = Logger.get(RecordServiceSplitManager.class); + private static final Logger LOG = Logger.get(RecordServiceSplitManager.class); private final Records records; private Records.Record nextRecord; private List columnTypes; @@ -58,6 +56,7 @@ public RecordServiceRecordCursor(Records records) @Override public long getTotalBytes() { + // TODO: support this throw new UnsupportedOperationException(); } @@ -67,13 +66,10 @@ public long getCompletedBytes() try { return records.getStatus().stats.bytesRead; } - catch (IOException e) { - log.error("Failed to getCompletedBytes.", e); + catch (IOException | RecordServiceException e) { + throw new PrestoException(RecordServiceErrorCode.TASK_ERROR, + "Failed to getCompletedBytes", e); } - catch (RecordServiceException e) { - log.error("Failed to getCompletedBytes.", e); - } - throw new RuntimeException("Failed to getCompletedBytes"); } @Override @@ -82,13 +78,10 @@ public long getReadTimeNanos() try { return records.getStatus().stats.clientTimeMs; } - catch (IOException e) { - log.error("Failed to getReadTimeNanos.", e); - } - catch (RecordServiceException e) { - log.error("Failed to getReadTimeNanos.", e); + catch (IOException | RecordServiceException e) { + throw new PrestoException(RecordServiceErrorCode.TASK_ERROR, + "Failed to getReadTimeNanos.", e); } - throw new RuntimeException("Failed to getReadTimeNanos"); } @Override @@ -190,6 +183,7 @@ public Slice getSlice(int field) @Override public Object getObject(int field) { + // TODO: implement this throw new UnsupportedOperationException("getObject is not supported"); } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java index 903af67db41e..90b3d1bd6d7f 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSet.java @@ -22,6 +22,7 @@ import com.cloudera.recordservice.thrift.TTask; import com.cloudera.recordservice.thrift.TUniqueId; import com.facebook.presto.spi.HostAddress; +import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.RecordCursor; import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.type.Type; @@ -34,7 +35,7 @@ public class RecordServiceRecordSet implements RecordSet, Closeable { - private static final Logger log = Logger.get(RecordServiceRecordSet.class); + private static final Logger LOG = Logger.get(RecordServiceRecordSet.class); private RecordServiceWorkerClient workerClient = null; private Records records = null; @@ -57,11 +58,9 @@ public RecordServiceRecordSet(RecordServiceSplit split) records = workerClient.execAndFetch(fromSplit(split)); records.setCloseWorker(true); } - catch (RecordServiceException e) { - log.error("Failed to fetch records.", e); - } - catch (IOException e) { - log.error("Failed to fetch records.", e); + catch (IOException | RecordServiceException e) { + throw new PrestoException(RecordServiceErrorCode.TASK_ERROR, + "Failed to fetch records.", e); } finally { if (records == null && workerClient != null) { diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java index 464a4dac1cc9..44da0a43d05e 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceRecordSetProvider.java @@ -13,7 +13,10 @@ */ package com.facebook.presto.recordservice; -import com.facebook.presto.spi.*; +import com.facebook.presto.spi.ColumnHandle; +import com.facebook.presto.spi.ConnectorSession; +import com.facebook.presto.spi.ConnectorSplit; +import com.facebook.presto.spi.RecordSet; import com.facebook.presto.spi.connector.ConnectorRecordSetProvider; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; import io.airlift.log.Logger; @@ -29,7 +32,7 @@ public class RecordServiceRecordSetProvider implements ConnectorRecordSetProvider { private final String connectorId; - private static final Logger log = Logger.get(RecordServiceRecordSetProvider.class); + private static final Logger LOG = Logger.get(RecordServiceRecordSetProvider.class); @Inject public RecordServiceRecordSetProvider(RecordServiceConnectorId connectorId) diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java index b3784e784fdd..4ddf7e7fd86e 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplit.java @@ -17,7 +17,6 @@ import com.facebook.presto.spi.HostAddress; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java index 2b30aa7ee82e..682677b8c621 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceSplitManager.java @@ -17,7 +17,13 @@ import com.cloudera.recordservice.core.NetworkAddress; import com.cloudera.recordservice.core.PlanRequestResult; import com.cloudera.recordservice.core.Request; -import com.facebook.presto.spi.*; +import com.facebook.presto.spi.ConnectorSession; +import com.facebook.presto.spi.ConnectorSplit; +import com.facebook.presto.spi.ConnectorSplitSource; +import com.facebook.presto.spi.ConnectorTableLayoutHandle; +import com.facebook.presto.spi.FixedSplitSource; +import com.facebook.presto.spi.HostAddress; +import com.facebook.presto.spi.PrestoException; import com.facebook.presto.spi.connector.ConnectorSplitManager; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; @@ -35,7 +41,7 @@ public class RecordServiceSplitManager implements ConnectorSplitManager { private final String connectorId; - private static final Logger log = Logger.get(RecordServiceSplitManager.class); + private static final Logger LOG = Logger.get(RecordServiceSplitManager.class); private final RecordServiceClient client; @Inject @@ -52,7 +58,7 @@ public ConnectorSplitSource getSplits(ConnectorTransactionHandle handle, { RecordServiceTableLayoutHandle layoutHandle = checkType(layout, RecordServiceTableLayoutHandle.class, "layout"); - log.info("getSplits for " + layoutHandle.getQuery()); + LOG.info("getSplits for query: " + layoutHandle.getQuery()); Request request = Request.createSqlRequest(layoutHandle.getQuery()); diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java index 00076678bfdb..fee1daddee54 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTableLayoutHandle.java @@ -31,7 +31,7 @@ public RecordServiceTableLayoutHandle(@JsonProperty("table") RecordServiceTableH @JsonProperty("columns") List columns) { this.table = requireNonNull(table, "table is null"); - this.columns = columns; + this.columns = requireNonNull(columns, "columns is null"); } @JsonProperty @@ -50,7 +50,7 @@ public List getColumns() public String getQuery() { StringBuilder sb = new StringBuilder(); - sb.append("select "); + sb.append("SELECT "); for (RecordServiceColumnHandle col : columns) { sb.append(col.getName()); sb.append(","); @@ -60,7 +60,7 @@ public String getQuery() } else { sb.setLength(sb.length() - 1); } - sb.append(" from "); + sb.append(" FROM "); sb.append(table.getSchemaTableName()); return sb.toString(); } diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTransactionHandle.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTransactionHandle.java index c27123fac13a..9008f1a665ab 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTransactionHandle.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceTransactionHandle.java @@ -11,7 +11,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.facebook.presto.recordservice; import com.facebook.presto.spi.connector.ConnectorTransactionHandle; diff --git a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java index 653b48c55a49..f3d97c62c0dc 100644 --- a/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java +++ b/presto-recordservice/src/main/java/com/facebook/presto/recordservice/RecordServiceUtil.java @@ -61,8 +61,8 @@ public static Type convertType(Schema.TypeDesc typeDesc) case DECIMAL: return DecimalType.createDecimalType(typeDesc.precision, typeDesc.scale); default: - throw new PrestoException(RecordServiceErrorCode.CATALOG_ERROR, - "Unsupported RecordService type " + typeDesc.typeId.name()); + throw new PrestoException(RecordServiceErrorCode.TYPE_ERROR, + "Unsupported RecordService type: " + typeDesc.typeId.name()); } } }

    b4$2)%CpAhNTH>$WStJOg+h6vIFB_>c2}cEk(@U$jU#OmaTwtK)pe z1A|6r!4zMhab3dH&$Ci&$pIYYEx((;7*!$h^SBI2eFmgoL(@=+zh9jz4);ohr6CBu zLzjDCp1E^qx`VZQkQj1DLg@yHbteB(F--fvSbN9dP8((2dy+{e*2K1L+qR8=>`ZLi zwr$&XCbn%S6P`TJdiOqi@AuTIbxy6SyY3J7=dQl)?*8@FOa1#xT0;`Oa5HBNEK?r> zbM$~*9^jTVMM2KO+Zi-dbL$n+UY3bDH^>ftSyDroZ0xhO@xeG96`5UZrrV5xi#@tT z^*scC9=4H~vr!)$kE0j&>jCWd=d2-yG&>GnC z|MukjKNNmT_AiAma+a%7Da9+^6gBGphHevwuEeyb5%^gK|+dj z;gCp4!$=#kYf9)Wb?Q-B^=Us#=8jC03QXgVUBN3*C$(}?O7mY^H=~H;1n9V7M;C;Z z45-KghT!_EiP+TpwMG@$=VrL73ERWqi~#iVr0ANDE9}-3JgT=&>b}cAQR81A?^_H= zUp@lbl9m=h1TVxMox8-BzW=p!bN-jUGoJ;K?*Q()&%NU1IH}^)zN};ZWVoj2aE^$4#$Sh;fSdCb$lP5f<3@XFHTC4TvJ8p8}ap6c~(H6!2axqez6dFC|OOtCN z+^7qpTY)z0On+KkMMALQ9gUn_%k6yTw5yONj58}!T-Rq-zDC^M>KHTG2a-4*+A;Tu7v7uQDFYu(@EhntDt%uT*^foek2c?Z3J zw@wQG?7``&Dkt02yF!|^d5`1a1V_0GGC=aED%#V+FagtOiJd)cuA0Xg;pdUbn zAV2Z&efhw}fa!B01&zf-NEq#m3H&sKO9w?g^97Kzk#QS@V?ZL1w^lEkHmsbR+clfp zH=5Q~otm}RE}EK-zb;d7UctvfjKdjUzFo0zeZI3j-B!x#dSdr@{NbbP?%&eh+qgQf}WDWB=Rvx1LS`c)P;zcIvdM6rH~$;gkX#!J1Km6Jt3fOEUx z6!KI|JPOjeB-07m>7$rcF^HM7e4IT@&0@kh-PX_OX~Z&=0_0>%dp#POIzsFNV2hG* z!96OeLUM?*aMA5Zq1R-~x_&=~a<(H3aKV4fsi5z*CuH7%cN^ zwF<6AQXQ$5rg~`Z0{c@&@Da2$q4Y-n;=1QO7)-{7%!`n>aaU_KQH?p{=$7`nxc1xj zR8vE4mN}oEL^a~U@`l5hU>Y^@mHEm?QDlskEq?xsHI}IHGC}VwYrli2?=$8OcFE*2 zsFH7wm7gpAj)IGkN-V#AVX&we0pL}c$y zQk=|IJGi;8yaO09rA?U5)4AK%IUvvn7V*55N+GS!UpWR<;7kE3!((h?iJ%=gPDp=>l<8PAKr2Bhg3mwBOc@BKKoaV`|ZPxLb z*totbmmA1A#;-YexY1(}Ka_*U+N$9^DqIu0(4@}6ap6Tf!e3ujSZnFx2^6N?`r^T* zHP<6CRMGIQX{Q8xxIsOWo7*~DvheZ{|7;+{m2M^~U$*uH)e^fRGt=FP6uDg$^f89l zW6gI-$qToiHRbM5Co6oK+J+@WNcD)soiSXEd&;MMFxwufJT(MV09O&s$Zjs2WET2r zmz#ONtC|Nb+YnJ@`I=h84^LXg(K<5Q$3-o_0_2Z{$68c(pYv{3IGVH7b9%s^fpz6R z;8&I|li{u1SFTIptEK06tZyk3-m+6|hE;1tByE$m6_djI@893@u|Ivh6(oPC>(%_p z)wtc6A>Cx;$x%Oed@P}QMi?$qLup*)7ncpqQ}Tc6Ub(4$uGJG!D3>W^4CylFLeYB~;tp#k#> z)GgC_vUuTlP_X=3eV8je3QCyXJ)5N5sG-Fy6*VY(_vWPgE__OL&xxZbN*xXJiOA?! zhw@fE7RkFEeO_+|rh>_{)3R9lvRc6}xqxSNPs^4W$-Ae>f5Fanv4#et#&a*n6(I_z zBu}+M5Jysift(;c3(A@mo+EZ*SIdL^E@HV7ho5SGD%ZpGz#bE9$_dP+&M~0BeN^Hf z?VF8$i@6|0hhN(hm|mPQe43QvIG7se9aL8m<;*Ze1;BA90JXMz=B~Y5Hddo@g}2BDs>73qL~a*d4P^;G(jD96aco}W>5uX zjV#4MSdbO`ogcup=oB4pn6LLxvVl|yX^#LZ-#<2p$p+#EY^|D0qZ3#Uqd7&hz5|W& z@|G)5eEe8GfsWUsTVFduglV-bfx3WGOq5Jvzd)kKIKVX5XAbrJ1}w!2<_y|S zvyUj9s<7LTDSSy>_|CqaDjtJ^e)k2wpRI2OL|Z@Eywp%-w|UHr5){$UFkO41yZ^Y) z&DCE!X~aCJIIKAqH8q6wIGo9wHdCE0fp#TbIUAbO%RFxn)8odARtl{>?Jd{MyLuWK z5d<^ui%`BM#%L8rcO@*((T`RsJKdR~a|NIB8;fm*&)?+O9%30hlIRUWXkT!_+S)F= zdvJnti*eRtwN}2qFmac%Re9!bzv1Dkm{BiHiu{>*)Zy~?aL0&@EKzCKayh4C1S(@LSa`@?ZV?dTCBeYm!F zOp?}|CDFch`#M##aUPpT+wZ-64(Kujg)Y71HRW`T*j+ZX&qeu1`vjR2^zlLC_m;UR zaeLHq&FC`gM1PR2YZC20aqIo!s+ZV*#H`CuULn;ln+bJ8kqreB$yWp5O23=UrY_1I z>9?Q9i-MpJxeEoK5BsZ=#eC;#&q!AlVR4nJVE|AO%H->TDGx1W@TZer+y-zFAEQxi ziu{3;;^m0w0AqaSHcTEqP&YPub}SXlVmx;ilS^jcbsUQ{fAcH5_{5#!xbn^lPHSfZ!D`_)?&Y{sPj^G{2G0YRv4;;W;H|<8v`!&NVS^aqrC5nVtbe zZ5jR|M_b0tP3XN+K9q{3QXF+LKb)X*tkUWI3iTMs#o95I zb2RqZI?sD?Z~MdjT^JsHyAhNT|CF1)TDX%qYDSV?JkWCg2}?n!bBpAFSpkKQTlU+m zx9?@?5hnijf54D~|NIlLIvo{<`pTI)Eu)I9S5gP@v zQd$rNlQpK?i^M4Ti-fp&tRg~Cn1V!@L5iqKPvu)jWYTi}){rUoJ`8maAn1p|PS~&6 zY88xxhg@^sTM4k5hRSnfrThG#pRpRvxZ_|ob(Of~i?<>N;!F@}hgm}Pdb~w9euj6L zrkX~Xj6O|G;)`Bdu0K^ZXWWkK;RrF*8$}BDTYk3M8c-#bN&0^~53Mnq1u~1n98q5U(%tZ?dkfLD!X7$Y3@X44LjBK_oOcC&K=3fLG6u(x*HMyz_JT7#jl3Tm0ug- zk=r)$7tT^FSGJRr{-X8@#w4P*Pa*f7o8{O{ag@Qhqr4%}`xD0XL zNSLGT>d!FOK=s`fykTqV!&fcG#F70B5HOWQlyudo6Rxg~dYeF@*jcmL*ne zARw>~{Gxn&K79o~Vi6uqh9-)O=4Qhx%A~QBKsCbeYRF}zS6)YOdK8Ur?@RT=R2)-q z9fPOwG^B+Z($Id>=ppgXE(=uJhQQn%A4w8nh7*Z~rvQ~31|{8~drT$RrIYUojiqEc zwVX?(E-1T*7SelSHSsA{$YYnmbRl53m3$WkXIU%1RwjuIBpgP5#;Be}bG^HE z)KPCOPY7i7`BiDbJ(UlODz`K`?+953ps+s>kV+6h8e@`5K52M^o=8?NNmwaKGN_3A zX&Ix?Acn5R0Jc`3wMK%gj$Uk+6(T*9HN+N6#U8!efn~-}-J7>pY5r{(4ZNBOV~FCo zKU76yR9>Yll5wUCT2Y%t_;+#2y@YUasZR8%uDMU@i^=ZK3_pwq`;xPCjnCBkGfj!l zV|ZeySaRh1lfsc?38|Rzk|TqO1Y)vyiUdjK2d$!qQQre5NGmoH?;Q@{?nvja&RlBR zd0_#rTp8TU_2hR;`0#Y7_4cS}Q{7xn`hf&H9Sf> zkyFzUmqtqX$@?ta|yDLdBMSPG-W*4fsUqcHx%2IITaM zCELwf?)&CaCJGv*GU#F_c>8E4;kV(d7->CkA>K@O1CnrJIWh-tj*K}@jR~;d-e9~e znx;_dPf)Q2ugorZGY3piI`HikD*WnZqd7|(2l`djFT{lqnH$tFa=YK;jaZm9PVh7mBR_VnAYTghVp__ zy)v+gLzT&R)PmrHU5z4zm{FX(qRtd*PBj{*I<0eq(iWfxd&0#r=@tR&AVnv{Jr$8D zs~s}-$Q72+_=ya0OV3m76tml-Ml&DkprJXif(~i*0^P%daSurCRZ^&D;n7#X4!Pju zvof-Okj9~)0}zo5BJbsW%-hr z7@mH;MhML^nHkUwHI)Rb_dV7#bNAielhr@*xoB(}^$)A-uc)n1)n%P<23V#ySgJ+{ zG_kB;k*@KNJt6_z{pz^ISF&W1sQrIZ#~!X9K-W==gZ1#Vo}T+Z{IcGp-g)evnZRj3 zeFk-S**_gHTjC+>KpnNTZr&duy<~v4{9r?W%6y=$wloOZY?nSw>v4Hh}luk zU2&sq`s2&ygS6gd&6fdAtjE+@Y97QKzBx2j(Lz!B z=n3paq=)f8CUPDbT@Nz?Te;}9##Fj~08Eck`}+Ib!G=rnmwn^8w7W;|Y|{St&`592 zZNa+g5(2JM26$UjGd`#?F3+X(p{9P;&j!^0I-jnjZ(s>~W&&A)WP3gQo}U(U7cRd8!XAEEpxghoI0mJS=TeGwW8ZV>zBebmoQ>;T5x zx1N2DNgP>od*z8W578V=zcubyxf^nZ333Du@8?)lorj{c)>q94 zC7t192W*XqatQudU-Ohu^Wr^rcg&>j>bo@L$bn!7sJ_~zno8uJu73}P)6(K1qOsd+ zWKsxt43e2QrpKXBG(#-v*BV*sI44|(oa+;7tdg9$B<3k%lCw64A<50Xm=?1hstXJ)cp+md>FZ7z_!fq zO1(N%o#i;!pR#3WWfyv$GSlXoy{$%~11@=7PzM7tUrwJI$N{omX^mmAvo}XKK=cea&)eeT{65(a> z=JuAO33m)xaaD%Ej^q9}y@c?Zf#SGjAdA%z&dv7(GdEj|54jpWs#2;w4*0(vbo7){ zAX;Rcpp+svk5x&Te3=9N_N_KTvXn_(dF!-h)fH+3tWJy%YfC;ICPB(XAvJCie8j*( zL}qX6;N@!8ap_I5IX0bhgWE)Ds%c)!$QMQ|K9ezuz4J>5?f-V4^3LH~}sitXvFC>vgGp9i<-#28xK;KlcgzE`c zv7h)=CYQW8sq_@tJIH|zHK>Z54h-7(v#Q3gt*cex$GO9Hp817GS)}JtuB8yI5ZYhYgIWLb8#$1S4|M&!do|$m;l7;=_rA zqi_uk3sQp%=DIVmx;w0YxiBg|X{6Uqp>l%om}*QKCFa1iMTPI4VUVoEHHBj-4ru(k z*=qf}=pmzXAsP|bi&N93HcoL64e35d6@yK9n_}>bM~Bm+{o>J2cA+7V=#n~%^k7Z_ z_%ER5$qyZHM)VV1<{58+L)|`$P$egKapkm zJ>kT=BLBz_+ofVW?4|Xr5(mhXx6*?ZhJKS0&xqq(k%O3g)Q@B2XNF!mwmQ&8zoc{* zfTrFDc7X`ks9rm#=d=(Hkx1MVW^XLE)i#%PFizU~i$%APntZUBYl`Ou@&K(~+$Pb9 zx00##W35q#+*FE5FtXpVDw8?rvj?qY71GP*w-~)NS(pORcnWy2lbYg{s>vD>>rBk! z{2Jqq7y3Fn@Gwe_%wzN**P5i=rg7Xo?a?jH`qZN$ZFaZ`M&D1<_Y;m<(>`VMV$+&k zR)?zJpe79VurzRTT!Tn`qgz$jow4V)PLIXkJsYSC|C2-?x_N?7EwuG#Ik5=@h3(1< zgzi>YUA&Lnb8WxFiLx}b>jt32rmCN3Ak4P454d4E={x^+gU6}bc%$bCMY+#IF1{fr z)@e!Ku;z%Q;h0oZ#;~?&3+DE`=+=7$euSmf`@H6Y1vPYFTVx8p+!nV!v~|NV@iN!F zU6*swxIYI#dkS^<$YVS5g}JaZ_ldE6yu-sGJl-fXPtg!K=Y(ioQ2iiyvg-|m++IlX zbq;+xH>jE&L2kPnng+Tv9fTkcLB-M-*#Hlfi|G_Q%ldh( zQ-F%hj7F>myYG;;j+1CCEQ*4RK;Zu-iYx0q4oZKgeP8sPhVNA`|6FI?OfyPGp!@Al3JtNx11;PAxFq3xdR9Jfb4 zDE7`|0K1>yJcpFbFq%iP;yXqQPTo>*dUyQlB|(w3$EC;nbDtRktYHTJcx;@H6_dnXkPeJP((N6QdgqT z3HTUL1~vg{+_YLY)mV)bwPQkxd8&BN;9?DP7;;8AVTocnVmYpcRIj2Z{(hllKW%M? z$^~bGpP0DpY&}|c=)PLNTVC__bVlsq=@4Pd#UMmrHZ%H}Rw^VV%{&oMn3~^KCVZ~1 z$ZII-#>w2SiY{foXg8=NQc)HNWv3}ljKqkb8r+CL4Nf5CL~Xc)q4HBhNSv~Q*FEIm zJaXNv%$1!|GRGo}1z~k*_a5&p;5P8_DMMKVxvwjc5Q;!-xwhjD9HzV_rjuVRpwF1Q za7|u--%+|78vTq2L{8v(t-nn;q`EKt({Ab9yt|YfqEF~S!iLKVqbV0-RP4&mX0ajd ztm=dmOJnDEC$?c(Qj;Sg@&Ji|#pZ~A30?(iR>+#MNTcCuOcp_d@>0bnWmO>wx@L`X zpYggd83HNRVxv(XCtlJtP!xVsH_Te#J9dDnSCd}}QZGx^mn~9CguAT`f>UnT_8hwq z8O;|(jF(gf5qCt*%`CJ$z$K(394BE;wp+zer!fyZAeX2D`ph65j31NTat#0t-G+jY#Nc{I*5(p2f-mNwIhqK}J6hTDe^0hbq>nTVF~ z`#jDq1$(ey6%1Q~0mrVjfo`c)?O2T1Xh5jRMg&t|n+6(NJeZPQ3OtfRoI7_pEkbnA z09+ItNE>fgP5V26mOs^z9*tr7C_tcAGZb4VAj!i&{Y0D2F?~;7K}os3qU`16lvCF9%SEEnFM9dyWD_DHWed`;HRP_(`| zEeR~OJH}3GIHf9DkP?$za5?|;WA$B`k3`i^&e{Mk;ItXue)&YfeW8UKOl7yIJ|O;` z3`zXaMv7*9YfLkAa_3-r$~4rxBW;9NQoWYnY=69)a_ZB%6$zNTF>pA0zETIa)XfwQN@-0!S!waw$f=2Im9)@&|Wj3yT{rCq{CN-6+pm zWXq4D$jz?0nU-#z1#`%%;0lpA4I%m0M^Y%Z;%DNb3l!2;l9Z?<>*YpkzQcD5WZfKr zfKT6bgGUb-<~(9ne1?(oboAJ)XbX|ETtDa4N2(rEd)1?=hqEdsi1LopECKAE$h|Jk zH$AbRw1sz&NL*CzQXL3HvudD*4_RzB3790qtMv_2STDPLJN3O$z=~$nNQvf5(*%ri zWt5H^WO50L6}dP8k&mU_w6`7zeU(m(bc}a~s!+2e&wrfRa zO43DaP>TDPYMpH!f+^T1Zm|%^DkcPVb^qPHBV-HqpJ3PXg z{l4ZP7JUT26C{#QgV}X(b$BH&#hVl1HK5WqnhnZpH{LxM`DSuntlKjB9)>n)EBgW? zdgAX%YI0pW6ThJ+Cxh)98IWpSp(zc?`_gB z9!p)yuY6q#^Uo^1e;q~suj!fSpXclU0V-Mjg(7?XCyH!d{wQ4KWow0;s}x`_M~dIx$ii;}CVGehS$a7=KFBW->D1pSXH0tt{y42EqvlUOk z77wm41W-rovVF;xD4_IjqKin3|Q@I8m8u| zuFl{=cBohq_0`@$liI5T!&L=O?_YpXpSlnTjYikH-QL#ly7tLzc7}ixK^&f*6BEo@ zRbo_T*o-F`Lwr&HVv!S$NxxX+^e+~9HcQ@(a*X!FDb92*1dwzB&8jAi+yVZ!r@C?k zv%MzW1<^F%bpD7y<6$t|3!MFd7ZRRg+&;49f|L8?@fWPb{THlMeXTo-V9cBJ&7AZb z4@f$+?E}cG$wcB`uo9kkRh~;`rJ`8&C$Xn7JXM&(6~~ioH}j5OY4(*t>IK!`u+krb zdE2B5BOMH>H;})23OgU~+nfJJ82O(@+W#L$RmS|hO<+2hsTyPU_9A6FbHI-M9CFfL68DZyBenhuXVrU? zO%e@w_dqj6pXL$G*2B;vZGyQwvV4QnK-EkS+NQ46_tT5(I=VkN#m^!?WHXsHZ4X!Z zvHHsCboJDpmr9uj&|aSWv%P|KiCc@JWhDKF=;lQjgHmCoQf6})e@(6^uVtHr6b-XN zqa80G40}S;dk;UNEppD(W_B0YzHu)-hTemnM5R(vW85=C(+Q1fLVK3i@lHTiTc-+Gs!9oO(nabDisuL_tc6(1e;OZ9N$oPzLo(zjbdA{L z-id!WK@NRno4p-zA$0#XKnHJZ!%tiCJ$_{5UR|IBp#z9B)~vaTbgJco;&Nl_kTfR-h&| zM2>&@z6&+JNj1Lt@jOy0oU=yMY?UVQ>ecZoV{_{{>-}(CrzULWJFEx>Ou)M&h zIACr#b~J41ynl1oti263OpFR5&Zh~+W|cG~I&X<=r~BS(pjgkQGen8B3W+v|Nx>7w zy09GBYm4U!QpT;P$%)No-0W^(wIRVi%*0;-VR6=ynB);Ep=O1vSiutE6;^%kQcOCh z75M3~GP;t4oF^XiGsif>ZlaBjqBdfQ#D|?w1R%k;YGGnSV7tn9a^(}kp>mjfDNO)L zC|4r%vk2~soiN}xaQ!;6z1jmps!w-OnjvrpZ=3KM$J#x6yHGktJl|_e@F8MURq*`j zezpl6c!`BUZCs!#H!?#%xv5osiRJRooi6jjWom71;+z}5d z&2#f#gKJLlC9+P0)$nfg;njJ9)FO^Ss&aDw>~EikfJfISkM?QS-lXLyE{@*D=ySG| zy}2teJM4H%+-p{I!e3*g%_*q7!llWoe}F%!Gxc5sfpY9&x7}-|zA+vx^X|yhKEs^@ zowwcYDmTf{ykF9uD8B3ISa!Ov^S&Fk#e+or7!oe9Hw2pG5N~;`_5eFpI}Lprc*x1}oJ~ie*eu@Ix6NvuC0E?kua6Afd` zdXqD7$$$^9>Ea*5kDeYh>v&%MMcD>(EMPx+Qk@jSdu1Y>-v=7JV$I}u6?-R zOU1b+!0{Ybl!z2JSxRDg5m2$-oRSi=994>N2dTH4lfjHD#=S;&i+ zWQgb4ePipsQ%Y2pPIANibs6MpT)iN@I~J6+3%Ft;d!#T4P)XXZS=-ypFEv(iWn+HWU=pB`$<8uJi(&{lH0+<1i6Ah296zGsk z7k9&KPl_vq59*;k*<$mrB;&(BRhEoh`2iWFKt`^ybigKI;~)pb_o@75I zSRlj9Rh(UGQCMBJ1+c9OfhFmv^K>ePgMKO*s=4hdoX?S2hb_9+(Sm(N(F?uKAKAh( z0FrCyZ*v*2)&I=|3rk6J*jG1+7&ig$-VFvvRy%meO`cg^AJ=CJkCkeVvYq7(Uz~u9vv@L= zt@ItvbtYOAv|jmx10_5iqK?BjF=54AVQP7z!nLepVj`_jWc~Zc0G|VsSh0?y%27wJ zDUm+;S~_H4YmRkughNjOfX>_t8CTB0OL|6g<;02=A*{r@sbKlyl#^Ncd8B*zQ_bFD`&nUY%9wUuyd<* zs!Ph~*tJ{C=_iYqDDqKsIquNTLx)^*eHQpJytJiT1VT(0pWCvZ3Fa8o-D<`TXTNhu}^2~dcvvwK;uPU$-- zkjF=$<&b0yS>}Q`9X|TK&}k$qUxzy-ga|7XttdQXh9>mdm8-Zp9-2h+uhR7GHj)s8VbNL)8Pi$|U zu<9L5ze5XKGP-MNb1u7ZCuCBj!d=~@UCn0}S(rILhHF(nuqt6WsS}G?7Dte0f{!+& zt--C5vML|5Q;VKpQ_|gBqW+y%l#i`)ua!P$()`6m7 zBR?N^VG`B12Bz5wd(XRVwbV8i2N5NNjc4Jb^(yX~W!6&A-Jj|R`Y5^|;WcyR)}d8S zkQ5s!mfOot19;_;LrKcd6&f4HUd(G6$0iGgFFqXLHdTx%7qV&}(b~Jx?ooLxO1Kjv z3gfgaUcemdO3^&G7I{R3!(1;@>dZO#!QxJ^2nt$E;!Hm)Z$TP@ziSox9F=9COYRL>2dWEwx+YzjXc4Ppw7Yy{-AKF zI#|8(pt|mbgy+aRP$=zam-5FJpqxdaQ{N}W*Nb}=$!kJ2GbsC9Z{p0&u{JMFLmtg@SluDINtEwD@V+Od^}+v!LybH92jZL)Qg^h^7!vHH90 zHaKXL)cZM8$Iia%zoxG|nw1%dh3lzUD?3P*i#nAKtg~@jL7O=k5{H}nYAny|Ta9$$ zv?@Qg$}_rw&upY}e3ZaS!@BI}l+jWvo;THX|B(daTp;%(P_sFT?#H1*D$2`C8MD@e z1ld|(jI*a~Hb6v|!a2DXvrA%ki(Vo%!B;LF zhF9VDjwVlHQN4$nLD$H79$C~a!@3mc3i$Emx}+V7o>0{`IbJ@7kn1OfB#~4L-6tFE zK)7F~#HQ!((7lh&#?$TN;Djp1_L|boqbk(qcekr9?7u}0o@SU-6A_)nwiI++pBTnu zZ&-b;IR7_Fld?BGBzNkZPw#Z}iprq@@{xaOm#PD6@zf$EtHa5}7F zL(rFgO@buV-8tlf|B#S_WJM|c1$jL-UtB$YPAMA*?;7(2Tj5huz14yGkfZ@4 z#3%;ef-55=9|gv=KgnW5ImqVn0B>(mc?CKjjXznxsV4R!6PpM<5ghslT-iH%$g+l> zS18T=;Kd`Y3;&!ea#myO&eRKN(!;V5_sr_IFnZonv2gV;bw|CBuBgR#+2vC%@$}AU z7O$}V&1lDGAFjUU`fV3c_TiaN%C@{!)bwqUI8_k}bl?17qNj}MS{?DAhp>kcus`jr z7a>0k%6`vkS=axH0bHm%oX$2Mi>?oHNZi*~=V^=9KQ_ckb`TNZ{jDzv^JnaI_`^Y91A-f9z? zsewy3(Eucpm-N}D`_zBYTqr@6P{|g{S|rmOOE{N21kdR2HAeq9+GVsYR!5FR%*bTR zK+ebp1b9SMd8qWy?Gb}qQJ6lzP-1?#emJ4Bc)SM$RgcoY3Hx=6)vQ5c^3cZI!hA9y z=mQrqD)X>p7zQ1VK3xYqBS9k_&pbB>d*2G}Vk$N2`8HN?$V zC!eMot1TYZqnc{dEkf#<33LN9^-0pSv&MApoPyCUDd-_fso$e~LH^JJ(dQpfInv*h z$Z|whSLZ_@Im%*}#antu$o88t!d-W=_V|!#V-iJMx-O#$#EUP^rbg&3hW?Il%}jVf zhE({P%wXC?Rnrjqq<2ePKDbLbi1!5eD}=+9 ztR10OP~~%Aks5TdbL-(V9!?$m;|dmPOn&)s#ub!pMiG=}buWE@=oDa}g4mT`;}#et zwS?LgX90{x@pdiYHtNMhD1|hykYk4|s}zt`XEbI&KwjjTBvokTUnUrtXrf2O9!Z>7 z?8=?LMQ>9&%M|dGReRKA?Nmn5xWc?N+DW(Mh_N*7n5E*JPkE~RfT6vEHJ9@{E^RR< z8lxttmH}(faGe2GrIdzis+}Net0&AUDZH@+TaM z7<8S)dr&wj9wQNv@8~EBhY9$WZVj&34l5UP^JMeR||2lXMOtX zzQ5NYI!hw{CC-h3uNCmI%H4FX8brO( z_!62z_4aE}`@~uWf{Lx28$vrf;Cvz=*>+(+MDU8YMn(mlB5SX_PRE*a!$!b%#*Agt1*Q_VirGE z_pwhiG~U%S%bH!I!s<8O;A@p;$Ye>fyTs36H;(j8W*bLTX1X00j{{zLxUSpm)%vqL z<0Z{{&ja2$#^CGlJN80q$hLS{1qb6>1LQR`sU%WV~oAYpsb zq_FHYG9PIJ2EUhD#UCj&0ufnXeG>hmaPT?dgx`pBu?*iQ(0IPvglTf!DL=dtBPIf# zbgXdo5)1q55IQ#UCm14}DTGEkoWxS*w+P<#$=w_)I5am#%GN*B6zKNZRBi`Mnqepz zJGS9T=W>Yu$Pa17(r6JX%rX)ba(C&c(o@w37wl4vJw}H7t~XXYlrM5bN)z>=znc^d zok#{%xsU|wQ&1-hXE+P*NH^vjY`ev)9~WHrfLqJ-$sg}YmJn$z)g}rrv?s8ZWNto~ z+g72btZV5^UeCg79v-={vv+66)}%*Ax8JD9yuTjn$Z{4luUfyO+1n+YXvw!KLw>_i zuA*Fm4yA2Yen1im8BM!y9WVPJ#?TkDZnAi}itab)4MyV%8F zNuca%**+~k7!ugU7POyR2yq@qLFcwoJ*6L-1YIc#ker%uGaJcn?VOpw4m4&tm^7ld z!r?X<`I&J18&$+eRW@*)fvP<_-ipwk68CX}!Vz}-ZaI1zSS zyPv^yvb+-YqzGp4m{*Ar0dEJixvXczX=qMWg(biis>^-5pMHRyvv-PekntQMqra1DBa^7@VWBXjT~fPqT^q7A8%RJ&|Dn(;c=QtD2>{l5o}baokUssPiNk;m+#N=A$DYclaKA3 zcTUEe=a?5uHo7w3EVp5Ix+bE4Q;h%>5#SMVsi6*lB8{?~6twp;aFJ;x`k#A32kjKJ z@qOJ#KH!_VDPedBC;T;xJYTh{93jh6gismBn-DooO>cg+Kg^N(D2etAl5mlu z5&kS+#=PRCEpIogFFK#+c{pt?K7lA{Eyo71U+7~JxI=zr@w=^e3o|%j-{B{7OT+;Q z>+$t{i%c;=YUz1vi(k3&nFWYDXE<{1#!@LplBglT*eKvn3H&WH+#jUoyb2}-M@P_A z{jusXM>jgTL85R7Yg*~V6&azd@^wuBGmE$MZ4#wjV(^bcyQ~Ws5$*Zq?;P2+F81p$ zA(FUdjkgd>7n#mA+1*FBh~ZSdhGoh!mD7+>cJZ=ci;}^F6ZYY`fetN`i-+H~?{u~~ z!>K!d%(0nrpLqN|GA+k&#cBU*ko9jx9sj=&`R}Ns%6~E7#Xy!s3Xe9&S;%=%=66MA zV)nt{legd?VjVrE6F>4@PWJ3R$33PsT{8cN0q;xYfB5faaWV$-<#~RiWPHkUzhr+s zufLN1GT;r){)RP_3{C2AaAG7wt?61dE}nTb=C-;05)rp2USB{7%E;~%lx}#NFculU zUZdn-<0Q6Yz6t(y$x?bN#$>;M!eVeg$5`6A_|vdK8URix6ziwiTatgg)r$44s z_uIc;;9CyMPz?T{)6iqXt)ymd>N<^53C5BG^dFZc8#Z1;=zuu|Zx7@A$ToJ)EzB|f z^RZ?)?s*zov=}Ju7hue!0fy#Oy)9izK|5xi ztibn*>`TEKH7DfVJuCBrH!k+F=!*8@iwI z%1W(@IL!};cQkk)9sJ!>{RT-)$XrB|k_Rap_v4% z=#Rn{!dj|J`D|MO2wHj}3;gk8^MWHY8q-U@JS4x^X!H^LfcJ?Z(rbkyNW{~P#pyvr z$IC1$+Spir+KUPadXI-|NUH`3K?zcN^j1S>1@R*iCc(%sU@Fb!T#aOWTNQ<7Jj`Fl1j;r~2Xiy- zstqv?;xfi^APjjEVHfIe~NRi<3n>6>Z*>zPU@!5e^%DGr|25W^i5n4=;5Pa>Hal> zZHJDDM+Fj{JU{%s`T&B)!dKy}m=O(iABLx(ux9mn}{n7M2%vf1BFTKwqs29Ws zud%SYilPU6L{bzA2#K%a!Mq3xxrmAau0c-Dh`g zXpxqFJJ|~!u-+zL={5O_KSy6`XA*N|Lt=BUp&k|e)tdhMKujqR29Szs#FQ` zcyPh*q2HAAN>=pM#Uz&F5WmL+7z@UH@0XP`oi$?Ob$Sf=i4>y(y3Q{D%|0}&9rMTJ z_0=E$&t8lz@BJM0=5}(N@L<@3j4aPrRc96Nt;#ab+gJXsH)wr6IwZC-Q91cYtdS5C zDgh-WIA(ykNp+QlK>OG{_qqO<#e|Il7a*-sqCSq%b8$Jarm~+n3=67UM>Cr27vy{7 zV~wRVB@%533F@L8XKjY9f4&TDYjR?{u-fm6w3-_Mx8!YN)QCoY)8g53#DgtgBV>|Z z;zzRR8arGZCON^MF^$5}rw>emCgvLDuvjR-SB6AArmn~6ggo$UpN7?`7TKkgNWGi0 zuN&6^=F34A{eHAK9UAv;P3;wlHBWpx&GV0?n!SsWEdiwgX${25^5Q8ZDUfR>ij9_y zCHUm?iAj;!XiJKX5yA4fKah%$$ekq^G?bNfQQ+M;I1o?yM;sai*VxZ{0-x-`~y;dH1!5am!DtYZt$?F+^B zR>v%H;fG;d7|R@D;OKIHCUbc3NT!VPaI`U!;={F-SNujD18vyP0L`bBDA@^9Ba*fg zI1Zs-ay^^p@E% zH6zaDI~QCTH;^(zCviE2>OFy&VY3iPz^P&UdA}?i6I|9Wu(F%CepZ;Fr5a@vPVJr) zvr*oE7Xq+kTI~n0H6aza&=%bX2nM{ZxdtFLoaTxMQV)6saeyTir*?sM(IvIm@&GA5 z@zmg!cojqxS3A_T6zBDk7>Kk*2JM`)Ij2*T=aiJ0Xw;*RXHpAcY|!Fxw~FFkmw>l1 zMc!S#6c0yYdi0A91?$kGR-xow8yjLY+YH?gPiiIynPODiS@obt#ZRW5-Gy)DA-|@C z&wj0gJcF}?aQ}6>8fqXc_T^y$CC?3b$EcMPuE}=Hs7w#DP6_B$j<#bc374JY5v&050c#ao(3+jP6(?j;0DxMN*S&NVUx;ZRf*g02&`HJVhI=A z?%!j5xJAQq8(5A9gK5I5N0$}cYlj&Dp*hZ#!zGX{1d8nsZ@1w@G`a{%T1lZVU3oR9 z`r(=f7jKTU71ey}T!t4ezLPEqu^2mgXiV-RpPB%l#x!5SG;4FBpJ`gp=kZJ{xc!)QsZK;1^Ve&(i;2&fC~uD2X+`h zb3*7v9DfhGe=~v4Yu?2^u$~x03s|tTdBw#M}>pnvKrJ#KU8Q}p6y(*aDmE-eaYER%` z&VO?Z6n6aG&k0h-3Dkfq>}$rs#x>cH`2!+Tm^{61C7cxZ_b;qj1|)Y@>3(v2 zBpA*rX?&1m$@4J-=D>?xL~|dn z!0-yLS$#6?cj>pI2#u%EA+IdsEBA~(fj?n#w{@Rje?beq!sy)Y;6OlSi2v%p-~TQR z`d>=Ff5*mH|D~<-`G>ZSqNL;r{Lhs?8Vd=ip&(sPj5dRV_!kVi7D#>EXwoirr+17Y z!Ez1plpj*>N;(Lj^XNg?NX;DQnPRS=BOur70#WZF+KC)*%ayLv{n}&Q7?&F5P#6s; z6`Y&7?u2sHqo}7|4IOn=-jo{m;+$q8iVTR-tjlk+P!f+nj{Zwr7eLdenn7Xv#_ z@RbwjrZGk`V_;>&DSG*B|HGNVXInrsHjChO-Ceg%pJ#Ars-Ra>Xihw^x> zDgl^_yEjARDZbbGcPm&mb|cPaXi`2CyNNG>?8EjqZUTH1Rk6QV&|#v#SkQQ)6%?)} zsCSxPBWBqJm+Cduwh*_?Xu;35&Ko7>%F_TS|a7+C> z)%f}1>Uvl&6nYO|OH+s~B%lC;i z#W%5}JpIkaWaT2v{KdxnPkCwo!N&Y2$L#-)f~r`4HAFCdWNlyw1I1et0M_M=0b0%4 z(1AdSQk12H`Y5H_V967d8f_zk8#0A>{4ZbqkeQhWko?RU1!`EA!JYcgUM&7+1gF8p z$Fm?ibAzCg)Rm0-OZTZ;zRTOr!?S8RpAWDf>{dYm7DmP@?9k>mRCOaNebQR%9r>l& zP0U3uV@XO&Et!f*PBt6csshbZ=j;X0?wRBZuu~3D5j!?-i1O6=1+5i-&~CP(^f^8E zbvT5A1#r8mxsZ)9-Vbi39!-$x(4r#o- z+mQ{Efr!1e-``41u2!%n04cOWLwzSw(69U~tm)!g;kb?C?sGM83)B1aR`%$$#p9KZ zupnZvnQd)lHyxE&oKViN@y5)q4a-IJxxaEp(f^=3N+!i`@3feqw(489;V#i|WA{R_ zsN?~YW0gHtNw~#A8=F72D0Qhr((gE-$?m`k1?D?c6sLcQXBF0xuO$&9Im9d*08~u| zOf15hu3!;p=cso)nxKjSxeqJOP}Z=DqP56g3oZcqfazb8R1JH;VB?$zZPr#gBeY}8 zQq#WlPVf~MuA|hHM*4ex53g56fAmaOH)-8PQe7B6Ie#Z`?hI5PMq7V6BeaGuf;cgdsT+2;> ze~bUNQg{y*<}}l2A*|EDEFK7L5j6snswKPt6gG zE&sx?B)b05f~E|mGe1i7IME*E=K``0!CLL8^u0EK#(FPS-g)p7n3?DnBg4@h+1#+% zU9)x0foGaqOyOsYr7$M_bc$nBY@oN`=hxQA&vzG4nS6JA)Y7M7z+tD9;={qy5XqLL-3RjF^Dkama)!KZeN9Vu`#eHkl| zRUEC_gO-?unSSdM0{-6M{I9r;XE4w=q~ObHm;eO*X%AK&-@SwYQK)m@8Orha2{E_( zyNJZuXMZc?NM>2CXhueYsuS&@MmTMPJ7*qIug;N2NM;xmTzi33t+z z$Ek|5OSQ_9FFaI~$E=bsmM;fBLV8ufM}V!oY;Uop1);VGpC5kjN09O$Qz#7_z|uAR z_AX+-t|-uyX{n~ArggFXt;_H{!-?{K8h7VE$D) z|97#~|MRu^@1yyDFKVb(dMi}-QId2(yJiJlI7b1Ibt30pl{cAY2S7Vl1bSSPF z{Vnlv*Bc0gs_q+L)o z`m3fvu@NGYR0`|*RnvF_ePXY!n`%E?1Ktw+tETY*RrOa*gXpiCM)_AwqyHLchcsi0QZJ3}8g`$}YEfrbN4 zCmcWTv{2xaUZ3eM>N5A)a2HQ{_yVx$>N5XQ#>@Tn1vsQxOZPvIt^VVT{ZlCmrLVo< z%N+OoCQ`Rh>unQDg259vSY?%HZVSzf)+C9XHV_oNTJV420thWfgGu$rWH!( z=(`+t*|a-i*ZULFXWD1DW5o(KJ+^aD=M_QYSAW}sea%t>hv(DGuz~yPO;%Eg2A-o-)BN zWR<9eB-;)IUqA&P7`(&pc%@Cd$|On-KtoN#E>Cwvp>O=~L(Sp4m9yfIPhAF83il*v z&pn3PE*o=9$Y2y^2`UZGCr^(vhJcT0Zv^Osx}EUxv7h_i6wytr-z^NDxjt7fLOOW01b+QqsZ0;${>r zw-&c&b7NzZt#da!27J{D@>+-`cg&-*rzbf|uHBxjU#b9>hh9g+!6=o)lFP>glWrRdBR;VRtJW@2b7)7G%;?G;Ta= z!12RnC@LyQ$8d2H`QXdPSF{h|UhaWA}lPcz#hj7iYzq5gy?U1c$GJ#TF! zYc}_u9d-t#2;ns?32M}!YIKyK9X<%Zk;7cM`iP^5K7aF73}TZWjK;!N@7snBj1z|i z{3`D-Q(To9F*4Qv-Hjp{1Ge|`)kwk{`;*PoD-!{ywiFhpMngW;bL$6lbB_S?rol$s zl>zl)LM~WkgK+=|jTmvsao~Dzd9BWby46onMd*wE>NTS zq5i5BOVG?Y#HebiILRzhw$%uSrHAXb%8<1gcWhq+u&m~cpp4eP$dq1>Bn7)I-; z4Xa|wV7A5zxmPx31`CCD3l!yR`YlEMTr&B&w7Sh1SjVPPr2V?;74ls(j8eadxrGgt zv5&96W-8pG-}^|(d?2s@0Uf@iyifV@rzU-hGSzs5gBWL8HT|5|lI*CLyQ?*jK;bY1 z*sa)QQ(&KJHkOHLOpT^3lsZVLJPTkOp8i5vqnN{p+iUL65d$Ck!SFirsZ^PFHrazN z{e==hsv|sCSM%4`S78J#e?pjXi#Op>s{CJcnq-aKK7nc zkZ{>Uvr7+PB_!h*;ty81b#oB+jW=x2s)_Z`~xhV%Cw z4wYbz>t+vTd(K1^gUyLvvWw+c=&g&9Qwkj(=s+l2*0Ae@Fo!C3{-pP?hxWIS%z|o4 znX?#8y+(jC%rbA*+WCgI)8{wl5T-0UGkf#V8&1Ecp~|UAJ(H({9wtUi!(>gB6a}l^ zqvLY?c;eJSi){&02D+dsJ|iVHrUV~A)N??r;{ni`4({qzQ)YCFZJLiuz;qpF@^9Nk z_j+krY@J0rFALRVrPc6R2o7wKb}sVmt6wa5#(dJUK^86Y?!MZ&R3Z7q`}j3LxksYE zeQFi-qO75w!Jhc1l=m~hHerY0dde>;-0p<&iq?Y1r``3N7(?N1^Vk*Fhe(ZqqCEJA zjNKgoR75~-WUkQlZ`medVEa{ z{y(x|XHbXlumlV|ID_HdnyMN1=TGYd2bk4N-F zQ-0tGLWQs0*qH(HuAq#nPyAU(eed3J_EUdsq;U zfwq&MslN8;Yt^vEolSWH-xEgofcXwQPc|P0PHB-w?}9*k7wX@V%(w%!;XG2*utHnC zZ60;l@pa^Q5GHH04l3bow7%D-)n+l8fCH=Y=(gWLr%%(4tC+8V4euLZ)T`dHedZ#@p=Qcj+XS~mLd zIP#oU)>(+{HGE1BqkIpkH(8Hs1=6RLgPSvMvnyr0sb2$! z0_qx)G59!tYDp>3o+UNuWDM;D1%Ot98I}qyQOrl8RCj4K+{KqGbo<<=)U2?H&r>5| z$xGC`$5jI}1#lchxs%fH#6aAf2Yo`gOH|{=rKduR_2rRb!!rYGAnygO_Zs>#%@V)` z!3QWeoGwwa9v|x6N0suOHp|&0u5~yFN4?YtXP^G@k6>iRY)~4Vyh~GMbA^&beh2X|FgGos2av@vKH%8AnyVUnvgijrUS(7cpS+iDh6EC+iq-jcp*f10 z7|HGlthXv8d)H09dPv-(>`UYR!Wrq)IG%c)1w=F}g*#>iMl;%923}L1A+@qEyfSQe zWX>4T=v%{38hd@QvuJajHM{EFF722i4Dw-2x)Tblu-ojXksk*uctnpktAUy!9%BhF zI>9Sc;EG+R_ptof91a9xsyE43?aTZD##1Gf4*dMy58vs;h`%FTX*$3E0Jb4v?MBNe z1+v+0Y1S zb0YA4g!@zsF4CI2Q~Ki&)&bw{t|C&GSx{QiTu{=S6Rws&f3D$7Qc^-65S;DmaIbSW zv(e#+fOIK>a?uCA9&N%yL9iRqO5uT#+-u!k__?N!h-qv1v8GK`wlCdUD85$ggjt1u z;?Xy!QAH`^C=-hRjOX)E@YWXgwqO>jhpRKEmi&j~0V(ZXVRJ3q8@?BwoT=#5d?{HU z6)$+ITIP+fCp012y8D>Z34aM1qfeztXXg$OkHT=S(Gu5Nc$&pWf58}ONuiBB1%+Jr z`f9*6{%XckILD*ai`s=k$P$2UUbFX|Tl%ojix=S)3(7@ab(XQ4oZ>3J&T{}+Dejk_%*m!!H_vcwEUszDa^>pzOs7^^n&$@ zzR5J+p_EpL?B!xWBPj)ePe?eOxMv9tUw5ec|r(RG`qH7IlIQ{HUG5MS`1 z-|74>JYjp;IUe4Ts1u|YmC=(m{BeDUwRJ3ACkWx3rO^CiN5?Db{hQHdW+HZMzlEncwV((m8Ve`%HSZIk|D*gqJlV(s2LN1v? z17rQKRdpmfs}yn2D+92S!vMEJc)rrZ(zR&L*&pomeN5(m)~Sy!_E#&Fw{b1tI!5FX z?d{7~$yTdXzMWV_!2}O%BxK=LBD<`VOHq4rVT@tBaH;`n zSt93)2h718Lz4-Q9O4{87ae~2suw-Ljx}Tj5w;qMo4}8r?NMxT((Lm}1s9|-B^FS< z94@fjjtiG+Q{6U9p%-{H{Wy@4@o-6qWEn#rkC92COm9U=6Z0tJ1=pp;+Zlx0i36*% z56a2VSS&7pcCkIoP%wEfJGnG11%z95F zagWJi&+zHWA&+2%!of}3Xt=SDtkDy~+N$g91pht<@txLS(sd<9XLTZ8G~+KeHijhV zPtEUcUrjzcNtF|DXc$leVMnfvFr^cH)&Q`V{qAI-(^mHFiv0P#M(N+NWDb(w1A zO{;IgXWnS5t6HeJ0;#$=53}o`{lU7%bG5I}D@r$y3!2fyrorOb9XRb6V_lT-L&jq4 zKJHpk;yD4wgAcz}_1&s<`&yOykSaN>NYB`)2^zNZnFp_+YTcV~x04m8;Pa0Yy+EaO9oL{RH!oav-VcvIjs(Bbe z49i9f8G-F|LF?eM4yCdir}CECb{U;&G`8^hAyHF(O8HUfURUhEQ5yv{hR<`f)nKDi zV&phUJwClYR_*BSV1&LFS?%$2hW3@ZPR)~T)cfcDlZ?DkYjYdP@)iXhYeQvP~PV)mb!%Ib{Aijo=BMOq_N{5 zzw7YL0vzlMB2umbR+8&q+b8&*_Xt)FRZW#XeZM7rsV2rE&et{;2c<5p7*#rX(6EU@ z!q{%H0acA90*;js*rM8&B0}qp_~w|-l^sC=mX#Kmj+M@N;)5l1fVmUj^F z=RYLtIP)IiZre=Jr`6VIX=`Gy7s>_QQBvJvNi=NaWJv+%E-*5~rGWZgWZ z&2*vY!NjG*M2ZLizwOuc@9{k5=66H040bWR-oWF@?@*PE3*0bF-)Pq#b}>SwGeqM% z$E%<2;Jk=7gR7s)TW#$ivK0{2uAtbSsi}B=5qv|+Y-PX4P92}fW^{b18sum!xeM&4 zqxrQ-Up`RUQ%&7JMH58nMO$xi#u#1^EN3>uobn9C%>M?XIZgeFzseHa9?ePrJTFxx z<3pdWw!>$jfvKKDqvVjlI!b1oesc#4LvE^`N27$V=#Vg!z$&>Tj70Jr95cTz6^qA& ztQ5pyB7RAuYPSE(-ymxXgCM>PP36{q#^WS9h}e4hh+ne&9Twwb3s;_p{{vo+xpn`s zOY|5Gy`UKnQruR;L(Wg&m{zJ97h2*n_pTE*xG*_>Q%NOp)9_dYIX3{Oo$TE-)UG#@ zj%1$SZI>LygZT&Dok@(<(FEf2bh-gk9=nP|9yvPQT-G{#@3R^_N*Q5qx&x*WP|hcpT{Q z-bQ3`E--)Q59Q#pVci|tYzO(-1&#;zYqWC1m{4|JG|I3Iw&V1le~*pMO3fWnA(+n#23mdai2Sjo81!2{JC z9M7>ux>oRrm?_~~4A01)nIKCn}n9sUF?=C|j+>Gx8lsq{*r&#OjK7no7(7NEj6hcJqzhOv|QE$B9J)=8M4CfPvBl%^4ISRjoLmGBAPW)`{|a?0cD3`~zLc@Y;zC62z&5KlY-l;@=Xdum6hb>`UQL0ml0fvxQ z2T50Pn-?cN>n|}~ZfSAYbAiv3KR~-`BRm}qx7-i1T-zQD8nr;ftA8Fg)nMA$>>@N_ zly=jqN8wCVKG^5uR-@8wz1olre{7O>?lolvz_ui!4lMj35K2<2D_~yLEF_>&g`p^) zb$U)lE7bau3r_@Wi4HiDtxx7E&OvwfS>-3IaliPE)HfYhHj^f6BE~WY9X-^jASIWo zdxoOkp5otBVRMD3%c2M|(N?Mj0S0aHrNm;{`$-_P-7-B$aF-kC?d+t?3}q#@>9sM$ zAH5mma(off%{8*^5QH~-#V|&nB5sc5n2t6-cpuR?0ui@Uuh@zgzOb(^ZwISzoD<)_ z-)BZpxfcD-F}VlJi4n#>R9nFcR*o1Gx~(E#m$Ux+h?HAm0(n`pUU}KQ@dNcG%pUn2 zxY2!D81Re;t^B8cLcmuO`VI@MyjIlDOH}}Dadh*$h$Y-9*2qkScKCq~;l6Mdioy{8 z4WP{3okII4rT&(62u=%{k79mTTy~HTlj+Tzl5;LtF)n$UMupwWZ8De%{daDpIj#m@ z!Wi}UMAj8v@*0b%eqsxgWwM(N0*r#DgUS))2=gQij8-jHSa)hG9nGP}8B#6rTNt;Q zXeqbQBj<1x^TOG)O%_-JX_Q~s?7up zkYcos$eau}v0rre2fdywcoPnNojkKo$$)1d0?Ar!;%_dSDP1X9EGpFLCc5kAr2+3M zvoe*`+)O2fp7R2IA8ZA?Wi#bP&YUh}Qh+3EeyO@ldyxt6hJ)zBy5p9`Tq$Z&K$_;N ziRM_t*+DDMcbuz6<)!+e)1<=Z&JPYKGy4pA_C>8ou2st~hHKy{ra9uMxJS z&3@Qewy_YKiBZ8)R{K^$3(YQnV(<{`ZdZnj)27(??&FvF7(+9?T&~Si5SbKvI>h1J z0^A&8%P?U$qP}O5EPnaR23*iT>F)L%tK4>=(67WOJWXVLl?1r#M zXw*EMz`{ED2Y2OSi4X#W`VzpL){v;yj00qU8%?p;P#Z zzRPaH3uZ0;4VbFd9073=+temxbEE0;XJ!yfzL7j^c-$zL-;1ApJf@3&a0ZFTNoVlO z22l$>`7rLfeWyl|JKGROw)62pc)1_Sy~n=r-P8 z4ZNG?(ac%BKNj&X>xK*iH@jPSZLU6sLxIC+77vTY0p9q~w2Nxur2{sAcUU@ku&J&7 z(4VJlx>>#ZhT~IOe)8-!w^cErVN90yN^V^r@O)I=Beowe=YznJx<$x*St=rUmLP9T zNzBdyUv+V7GXrPXZNwE$=~LpCAV?^F3+f`wD$i|aw|fM1kzet_z+UFfd|t*F>H1sI zyGf&6-~M`hhG&A1hWNq{A^)X}Qs%#%H~*jP`45qM)s?RV!u_~7k7K~AQ8u!dK`Uqo zlB3X?7{Z4HWT?L60%m@UPfORUDM|bmbJXC; z=9OC#s21l?DsvBa4?CeIWdF5gc)w40>SW=CH7FHq1?9(2gHhv903?Q}yABYv(6L}2 zO9psQUKti68r2{bMGr?1pm<1}xdB~tbst2+2z^a3oY|-h8qRdI30JB)ZYK)jO~dH%2ejUcROs}S=MSOvc7vimS|wm3}aQExMq8c-=L$*&wiI*+|Ui6{`gcW4Fwc!OEh5ZE>jJE`_=$@PkD1t-JoLaIM*ujH1dc zNsP_6)|-|uQ+fIzu7&8izWP}fx}%;CcBzo;tzB10UmV_)9ZD>4|8Yj_hnbhsS?Ie= zFH$gjcuNe^>m5_PmL+l==44lL8ADA8P%DAIP21q|nkesEIu6kKvM$-KpC)d1cEGrb zV{Be&bHwO%D$x<#C2i%QNDO6-PFpw>FE#YC=Ws8 zWRtiYHYZCA3zfb8V7**VFV^VZls4aEiLBo^xbJYDH>fYLcCarD$AW3EW7SpEZva4WXg?^+sKY z<&EvXqxFJT6g#7?=#9JNC4v%#a;N%RB*Bm;l6=Fkq4%Yy3l)@!cQH(xGL? zz+p(%8`{yi;Pu@yIv`*wx5I$vejS=Luv>XC&J4su|8Dv#uVIOmJZdDUUFn8Uu zF0m`PLiRxSKni%M`MBViA%Kp|4HSj6$QbdFK&bsoZUGR$N5}VT&C`q`BxB6fkRCT2 z4JryyPki@8hl^f1$RYT#FA*{sFYbgdCMRMGZ{iGZj_qIDu3@82(ru|XItLydg z=S;#X0eAY0l1Ju^k|S7VS=w#nLUjbjRt!q-Tc8+Yma9H+^p4F3B(^)b=CdTvuv%_> z^&r&;DCpAkPw1p5`&<$yp|zvsGeQt=h3UbukG9<1vX@#PS`7q8Dg z$Wx?k|D_ko$9B2~($*-j7fvTJcU50YTo(h~&(Sq9>i9&QBd7$`9Zz;Qr^K21eXl3- zIdx&~^ny!Pe>bw=L(AyA3mPP@5Ddp<6=L6mE2`R-;37CvdlZAmt{vdbyKivrKVCJY zb2EiLWIf?+53f4c3lOF7 zam)AUb)$X|Q9Vng47%neUG{2s;=nvnhg_-Erd;+gbz7S}MZE#<(<7 zXhOLT9)CWwICMe$xdD)QgdeWZ^w`59JGFEZWjI`maGXaKatIlMO>k^r7!HRpxi|1U z{S6jUX!Uo$f90mS^p)%^f~xjgh`aQjYE|NAhKMb|APIo z3HzbRNJ)IwFDlPtPcv8Ak>Ax`M380PzI{;iS$PW6XwDT7*qFH39J*(%th_&;t|0)) zUB}dv&sNFXufjCO_L?Q8G0YuMC~E$}L-{>5;6rTPHKRec=CLomK5mRGiNdBL=6au` z>~6vLm-Lw;x*)`O7TvQ_sL}z0RL~n#>2K+?zfpzKYDF}4&~`EAM??s#l!zOTDh8bi zy}kXfny0BPP)2-(i2>5yyKsuoo8$mR=lgE4pJVu=DZ~l4vI$6=Y-HT4 zaDs)Ew@MS$<>m22`hN}=7<(*m{EMnRuWH4YacNEa!PY2+pVYfqzZTSM_8lI1c?p(8 zR)#~!%L(!2wu+V+d3~25(W>2S4q{jfLH@mV+SEYFq|1DcRoG0_e&re`obEwWFKw!B zLTG$d^4yrjd4P3$LRSsy3E;m!!c^bW9>BhxT2t%3=aS~7q>tj`HwX@?3iwNt+S^v8Ke zR@egdjr2PGfDOx@=^z%_=Y1)oFjgAX&4UixB3#gBS$998q1lEO0r+pOR0u!_^SrFO z`xt*8qJ$Hj#q>0$7#uvK@Vm;GVM?WJl_zR6OGWF6CSNWMSy`n)kF(d1lNGNc<5{Gd zM&G1J&)M)gDf4 zMmL&^r++$!1qK~c6S>`WER8o}&%R*?X?7X?wATc4xtNbrGB%FT=>&?0OpdqJmLSpJ z@JPR849a(=CR~t{vUCTE2Wx0gd^!#gi;GR7L>h-|kI_cDi!W%!HPA8DO_7JtCOj>N zA#zRgl2j?D;iLJ)2s_9~V!fj8&XR@HX|QrqLJB8mKqC7~Zf+T+Ge{xT2hwm27@YIy zAOKjE1YgaK%uaJRS4%!!C6$#22h|{sVN8)p`V*q5@Ga{ST}HB4&Dg(D_fv@=?-w80hJ&m_c7&8ekdvBtw_iB z(>tOKpwt-LTtZ^&*`VYSRcci}Zf9DS83xXMAUYqcYVjo>1|LuR-p{n-l?iZqJQm)Jw&c+M8G5Rodd* zB1@?CN$Z8Ax9&T#Ye9!l(Yidc{LVMkNgj7&5JBZEv!%xKi%!-%SF|T~R?})QWHSK} zCBKV$&4PS?=qbj!jBIZqDM%c)U*=fnHXl0TQtv3NWKreT2k5Tga6x&sW%h{ znA+rZ@?ujObTso~)9zR?EPa2JRcHZ4QurR^|A!EAC4Ddgm@V2dMJ0l6o9A6@IuxGd z8aEHxiU1q(EVyKcAUD=GBL58~W4n2JgkOaJ6PDNurPv*c*$am9gLG3N;aMl5e;U0{ z9%i#Jl_GON@YB(_*EfI)JiyaK%FPF5$Rk8V6CS;*dzMUgUIkyC%cXAwK zzJu-`FtHyhu{J>M;mSWef*t2b&^QSk@QeD0<_Fu`JTG#p0($wak+=HD5?c>0GRG?E zlGpbGC-DlCf+z1?XB)udjo~ci`?;(ur7?S)8~Obnm9@ejORbCWi;K&%ey|Kr7q$JP zb>61&cwF;!N3Q%!vR~nU=$`y{>HBYM_zIj2VOha|QAbS$D3NKt(Um}!LYI|@?@X5< z4^5azXmh$Wo+@8?BD%K7Ly`CZ@k2AFx8xP56o_-WnYf&}-)@e-JZ2Mg0rB*Be_5#S z110MO#Qw5Sryi?Y!vhLMHkq%3wHwkjT(z{Q+db~p*RjvYJ;d&v^lT*)O%LJ`h=e_F zeuN1Z>0DR+E>^k77dDeNGxV&>4_r@nQoiw5f*6~+rt zt4|4wW)3(xzJvs{p*s^CLf+EvvP|kBOExxcAR1BPB0y?VD~IcT8Dn=qS9Q7VfwvWaG8-=l=}?5s^NOu9O8W# zqvhebII1;#c@i|I6@Y{_h^Df0IvZL3t?;ynlY^vaL)U z?0+XjBr)p-GKj~d12Kb)0SU4BA@Q9gp-8HZBs_hirTts&;v!X(nYDG}qCA3Cx!ZS# z1Q`}0e3f~Rd3;q%txB~8Rju>q>cS6S=GzBdU??yBt#o$guGfsm?Uhg7JIJ3a*hr(? z9lU6GHnw`jbB85YoZKCqvR!k{D+@ankWR1KI3Q>fF1Bj3C>1 z!Nui({UDjisP5JWgPNyyyv#{xvFiMMZoj(09amL2h(vKub)wL<@U`T&j0@S%)`deV zADzuGvf`d=h*3qO9-%!LWb*@TCQu1rP3n!D5t3bZGe{u*oSNqk*h^ge%7cJ zZTf*uaS8fj`R9?VQW(aSbqu&v_7KM4(HM@2`I3>-q=xkti;%SDH>~VyNs`1?{4!Ch z_`b>r#wn4pm*^JY?Gm~c&_ch?yQM}bm>@EzE|~4xq=kK>na#U}LZs+d#cRj0<$qzH zF9y%l4R`=;O5^s;pE^D*yL+(LO;e=N^MeMVYLflt5Cm?^f)zHs4A*y|Dv(5|SN2)V z{!3JhPEJ@^!Xv{pe=!=M7ri(I>w;S&iy306B5K0*Br=SSAa+7d$;Be8+72y*aFkhF zo!<~SgezRTE0~23$ZKDuTEqo9G&xHrp01wsxLSdMOUf^$JhG98d&`rSOG1n zyVTPDDY;eqNcS+BDbZA(2_Qyvs45uPD+Uos3kNMujuBjyyTPg5nn7{s+e>xuTKb1O#9B*JTD+G*c>!Uq28k~5`j^mGQDeu4{3I!84HIH zqTJ`J#Hl?{F6XVl8X${Zmh1)jMskgPr zA+^55E@iGKkTOsoGo$X8;GtoJ${T^lm8)ULtrVdYTU+N2Z)rVGwl1v7meQHi5o_4yPj~t( zA;t~{PZ*!N)|1PlhKte#?-843lIrc)UsvijC8EDc(-&QJVpjH5&NgO`?HT_J*#pT$ zxwGseQ)(mQ#2%eoI=QdD(jFx5CeG`oc*67`8+wyUNasiWyrHjvw6Q9B(F1--!3%KS zCdb;o^fPe8UxUYA+be;)3QTZpAqwgYy<@e4QsJt}P+MIwB5W{IZjmzXbI~$R_spj$ z)(jk5K1GvkU_|oMz*=D;(|;ys8iIVn_@Gw3@eT$J&~jRbpnn@<)5jx6<1DZH2qJv& zdSav?@n@l<7RJ~q2Ht<`+j~W=Og#QIID(D1H_%|h9gZK3DO3w16S5Sm=OZXltRs#> z+%w%GqjqWcU~eAfPtC48mZABrR+T7?t_f10XI`X-pdBP+jBHu#JB2VMA`p;12G3}) zimKWL(6oK{>>e0ked**}tytBfl-yaQts_t}`bBuznm-+_hN+c3onAF%FC$PQy>Euq z0;bsOoFoVgk}z|+vp%nWr7YFu z?v}fdc5%xT6wdxve|pY1eR$J4g{);E-gsc}$yeM|7*vWBGe=Rn4-roLiL>spdyx~Kz#Da#b{RP3M0avqQmx@Kw~72i$0 z?ta>I>Y9EV2v?;K#Nm;WKv}QiAkWH3$W{a>Y7Sv}q-z1wu%z-KDEtUHsOdUc>^!d1 z+b1+8A?AW2z!?TuRhgW1D|nm2#(Dy%teL(_b4Wt#gKEBIM4XyP!uY{7#4t^=&`N!( zdPw?YV}3nLjSTQc;a^R*!8v+)%30;D@;8GV#!`ZmB?TfRGo7>U1LI`mt(>Yn=2fE{ z3-F-_f-^U`xbb>WFIYG}H7g^1Yqj!q>saXw3bgBN;`OR&g1|48j`Vhz^`3*LMB%on zxqgi^;@W?y{99#LPZ9X}8e1IZ?ycpPRIPg!#kn7ZoW*tx2xr9fENT~uUEfzzg9g^( zD_Y4a@PGa(n-@@-%FT#9_ZsA_UU}HwX)@AQ27=rhIGN7)76@V;>iFWtkrg#X)C~7M zxt~0h6wh8q!k@1niX^b-yonI~F$b2eFwaj~m}! zZy>!}G5uqQOFb@%*iE9?s2#Kf=q%~ie4&NXZ!{B|HDezF=Z$`zqmz>zE@dv0Bgxxt z$H78G9+guzY?II@3lrd1O~1|~!`KQLWsYzDY)S(!QbIeuR5JMHaQiZ=^RZVRDoT}p8eg5tubY}9Qmgy>%JOw_6e zz|Y7IvVDmvY2Fmvj1yE(3Jzx6@yUmZIMhux&ATiy;N6;`ltK*Rz6xdcAa8*a(IZ3B z*DBiJ%DlR5^;4raY!{n5j|S-)O0O=yQe0+wv+`O;oA3t}2k3wu+;A5bLWN>yVHk^Qy_lloRX3C)4wMO+WT=@uO7l14bncva8(baZ=xe> zXR2>1PlO^SCF2-Tb2`Q|l8!a551#q2fnOw!&o0)rK-^sjbX{Xhhjzeko*OBK%M2Y@ zWdQp@&0<|TlT99+SXa!jIfmV8nu8-ADI;z9H6{TICXEqFDHJgZaDsC{waaQOT^p<-0m}T#Xv&n3lFQ`l+G4c1j1n=k-7p5@2w<4k%NMW(7BW3pT_CF1Id7~S2NwMVe zuX9a&cIr37tNA6?s)$L+l-;lhJe|FBF6@Zj8wpRX#17C6E+V^J|{s9Q>JIEGZu1=0{^l~&Jb=@CT6$XA?F zh`jd6fCA-;sw_yZEn6?W0U(iDVJcD|Ox&oCNW(xh>Hjjq*rPAvo)+~UE;z#zJ3YE7 zhP>_UIn*<}l6??vgQrQNN&?Xi28&kj-#1QFzU|7uS#ijt*^~GLUOqUz&9W z8ihE--<5&RF&`e}fpynqEr3cUzdCJ<=H518>*+>%871<77s!-UR{=v3G<^g|j;xhx za7_JZy>UmNnP%5lgm^BgT?+%%dxfmg_M#c19o5YR}@bnxLZDg2c3Y+gx8&J2?#(;FZmI)*C^_8fyiuDSrHMTzCR%9$1$+)%XFU|lZS8KX z-zfom40NG+T>@;29KIs3BOnv?wUHBvk#WhP%Jqh*cW$ld4P`;^Uo6R%T?fmNiwFs0 zhQ_e45$4qFn+CS-e5de+(7Sdd&x5;c)yJ>{k7t{nYLqnRLx*FVBf78tbQ7q8bzC4Q z!d-s*9RXTCgh%qMxGSuA=^K{NaLEcahMWFOUL5z<`aIct7&WfjrZ?KXoh8K=G+xl^ zykPdH1+)IH&Mu1m@?1!PZe+bOYxrdIQ?j`CwdiJzL0z8+kp)%pG$YdL&4sUxyYJTw zB$PE=#io!jR7hP0PP?$Fq>l#jdc4~%qs&(*f}H4s_neVk7L-!?4V98ptab#GGM6Lh zuf^W=-3;S|}?cmD1(1}H8Ju5L3aePKdB(g zrIZs?(Sx)akZe!)a^XB$V7>rfsYmn#syN|bT41g7>kg8BgB3Y|IVr-lBlk)vxFyk) z+8&5;qm?Z}UA|U8#*Wc&)Lz;a(=C{t8Fk-@jCpF!(`a&^?u^Gm|{S z8iuTQV_7#S?7s}N!no#*D^4kO zX!su2D9@Zj{zXu=IIgx^(=RUnevF?o)CPvq9<%AmdUxU-S;AfU+LbE)E-U^n#|Nf* z52kj{x47`@cz|y@2re%v_y)usO_~E34m&x0GUSvje9|>3XZYSGzLQY_cOOx}Wd=>8 z7fu!I+c4}4eXz&*CQcywtAgYUbI_zi0VTQmw>vhGLR&k?SZC}~hB{e6WsaZf)Zqsv z5qEv9GC*Y%m}Lp<9>bhbKJy21cmav6n z?=w6Cnhc@V#d{AEpAlCU>*PnUO`aIh$kgEdsoA4^z=RE5VZ-x|$vAa_4P>>&>=BVDPBfmMu`)WpjeCO>~oR+2Z2kELLe;!ZDD^{GD zOZ*USUXs7;l8=KE5Y?(`)>ra#OLjOEhIo$jm%I=6r>`=^c*oamhbpL*0(74mF zJ^R=Wj5Gb%Gcu^A27zXVe*{o#@2^@?z?-~bBHj3#v41$>IK}MjZgfW>^Mbx60ufzGU zvMYK;&8u3~fm(6H3Ql`bw>F}U=yVn=k_+Rq)ky=@Q;?5H3&p~(QNkG~1OamuY~q3b zr0c<>6N9wY)Y!SbzpNnUm$gPMvGTK*>jBy$!=U2bHcB&bjM8p3jd})?lv=M2YR{#M zX&s89%$*w>;!37Q*s2iro7~9eQP4i~nujGzNUbm9+`1vZ_Pl5WUf%-G858_>hlIA2QevE9e5aZW?oGv5c+vKgc z&d7s99%6CMdbbPwE@{o;&BZ0T>SSD-?uftad4lUx}@bVb25Q4RHO$ z+jg;`<$GmL!a>i*z|CR{ARUDGWkN6f;&$}CQk)TBM=!g3wSN4tjV6}j*)GY3J5-&# zbDQ~%eKdJ@0zk3no+uInr^inTGn)W6&q!_>=fI22pPlL3NuGp#f}d2@b}lJ_GQE6h<+1CV!CD0SFSRy@oI~@gT1{A>} zsC(>}y)V!7($m67z{8I{xfOf8ty?CciQc_<-Zlk;M>O<_GeKiXtg{Adp)M8o-zoep2KY^9OiF=6@f8$rJ;Cr?UvbjH~alPCooVrg!qN~&#m`H=?e}T>aSnPJpb<2oBjXo;9bhd z(caA9N1$VCW9{(&k7g9f|Ib^SR5l1$dg4C{-H^=k9(@#P0a(}yZz{~zxhjfeQ|@(LI{8nLi`P{FV@rCY_?5%yx%<`ckr(eamF6lV(rug z$3uI`($dKkjEjpP@5<)D+~{!1H%!|K>Jym85__(GA_U@6!|+hX^lG`;a>ZReza}o9o5Bkw`J#3*0s0wvJ*ynpvBME_*gtbJzicwU;H1B4Gl4B^ z{*-dZ)k!;ci-`yvuJ7#^8-0) z+S$QdW200fqz`Pln#^v(xnXmYT7IPTJ5epG4PuF~#L8F#cF-CJNHXbm8eE5?kVQb=o= zbhh+PI-pLz8pk#_-9s4RjC?D-fj#l$e}9nJ2deI(?J0_BwX*36`rN}VIX7(pi788N zYvizT4e03PsMY4k)Jyh&rq=9*6v;sJo%sgLQN!9@N*(6gH#_G1r$l(E_q;oQ?q%6l%v(-!9H*$Ov=I1TdOT2U6bBE>~*M^XOf+`xiMn_u?Gu$RQUQb;=OvKj< zqwm0r_>Lh7Z^|gztGqI0d02k(7-~bZa^?!7djB-?BRVHNOXZpnw}W;Aq}#&$lN8Kp zdR)`TZ$MUsl|?sZz0xB~{aLE1$HFg{&a15}QmbZrb7hHA5atApsDlehW1}N$zoRDA zj~hrw8@xi?M?mWH9h`VE;Px+vEN>?8mrZ?;^kA@&X;QG_dC%xh!CXvT>0Ix(;ZTke z2uljqLc?=meN}4P(=&Am8KIH+NaJa1A_rPTCds6%cr}1H6maRO(IJLxStpMATAO@c zW**V)>K~@B@K9)w7-T)R}br8=;eFRSlB6R>C$G7z4y3-ECOTLR< z8kD^Q+$?ysC`D9^O<5}uNA+rbK@Ms$fG;M!71KVaAG|A3N z0&=Q0Fvf(<>`Cvrp+{q{lDoOb??cVUv9UNA-lrSk)N(e0Y}UJg&657Ey+6c0cRJ9Q zwZ#Bp=#3z%MiDM)%){g8JJ0hT?qc;fiatD*pN*8Nhc|J{s$@U#hEB**n?hN|ElakQ zQi|D25{}%-{L=`UZrF~(@3*YpZFFKFAG{CQj7P+$EnACBZO>&kf zc=qxv$QF0dMa=6l7M&o91F<3=K978n#pTVhd_WF-njvDk?NbIu#}VU#+B`yFp z5;pCD zS&FQf9kL8N?w3am43Q*{C59qd3MFWX&C=E9^wb;P+Er8F41v14S==6PN+eV%a++h< zpL7}d z-*ELT&0vDL>fTqMe`jk*ch9^ij#Ih{A8DZatz=>9`P-Pmg!DKt*tpy!@oHS-xl4?O zIw8XkgyLTbTOL8$hNHi!4gBIco`jN-z;@v3h%X?r@*Ej>wj)FSM)pXVV{eNb_z4m~ z;iwD6LGhqioarL~O|d;nc`=_~zEfr`i%hLH80;Y&phYK^Bl)hNu4J3K#RE6>=&&3#Gx7f+xcvJ`XpWm3nmYq zf{i>nhwMGxtb)FIE(muE^S0>F6!%2kdPZ>wb<`D3j_TZh8BO~HMC089TRkIH52M?vtMvJubQ}4=Dx_*Mb_L^CQx_4?5>&`8G`%0;%KG&ScX_v;)#uaOBdQQ|btFdFy**+C{A4fg zRFHFw*Vo{IE!u(2kKVgr42QM<9z4rC@vB!Gl!8$uBx9P>mlk^yDmuXQ!r~qCpRN7H zn)BHDCqY2!-zEqs{g<|O#sBy=@P8g=*!;2EB7JMc$JSEe7I`*Oh$Az{Hu~{f(x>v{ zH8%b+OYkqkZMC#cpw?r(vVN(3gsYSBGQi5oEQ`DCyB!1jE{=A;y5j#u&iH$B@~W-v zdBef`*yH={y=5CfbLbh`Mah7=7$wR+IzxQ&pj_{W%DUQuB4!Ol!NYi@zF~uf`H`nZ zJlOhnOW>QaIsX`mF+~o_GYYH^O?wiHaEXG99Y;YN^7gvCHnXEHAYV8p!JesEkfD#x z4P`vwhOrSB!RN58zM2j?8%^amU+|Ry_6VKhoh&pcKK){hdAl(wy60{;2s%SL5%BEf zP774}knQzBG#Ah4fnm>B64rq7OJN>OTCi2AFnw~?vvQciV4IDf-a%k`!>LqKisjU7 zfT;;u4Z7>^ENJR}c=UCu3g_@+<}5ve4Hx&4)_4R4nw|VWn$D3~Dke#@&eVIPLUXwt zaDrFdT#eE1SbVjNN<4SLVyh&wAT{yfk(WY%l-UW{61m{o$jF(SwpB<*(d-r`Zka;!s>@pdSkIE`}h z^%l`>S? zu~9rqU#`+UOq3TCq1&Jv<|a6>?XR=!Qh@ApBtL727~uAigIg^)wpxz5n zteK=0<<`?nra53`6_cd+XPv*8#!Ney4C>k{7xm<@48m)QRN6oqX2?w1b+M|-na)LB-j%XjYnruKXpJu0Oa2x-CzN3neil2+r-JwnoXkB#T zgIqR931J*9wD zX6C-!kGndS8)#qk5jxTX)SAsYcC=FHP1`F}xH*vJ2^@9JAbniMbdQJl9tk6wlIdA- z1Q=JfF}%Ym(-xI`W5AJ2QT#LR1Q%Q>7k3);G}LmHw&HTLUYs<6xV8Hc!7nVMHuDZB;2c?XbMV){s3qn1(Z%-lNK{$@5+*9(WejJ#(faaXJpPbx^$@vk`yZS5fs}up{?Kz^E69&yu zFy}4(!=xK}{V?f+Ta;O8qFr-ObW)Yt^b=NC$Za7@jnza0ym+uQz9e+ z55rWzry3G|KA-RPo>V_JYp@oFfd(fYE)p*86c%ksN*FhNhfBq= zR!S)%kGic17`MLXnC1;VxeY-h$A9eeoE*dR|Jdh|{xGiU z`)ZV|_UN|#3rc@&4&OVz$l`y?+MY)p8Ovwm-8}p{jUmCRjJ)b_9rO-cw^gkO`S?*A zrF~jzV@!Vhi%JKOv*=p;`S`;5>C*pqDqa4+qs0DqI$hD~ANf2t>sqa$+TT!MXw#~| z>Ll5gn1;6 zgjHkXYmID=Y=;@QtIy+Y-fvL45E=Alsup8ar53r}Y%|vl`>ybrE`jwuVcVUx957+G z46tmg%{}i;Cr_R=dRo>qCGC1x*Qg3zXc3u!2e?T{*2#9UTWU|8E9U53Dwmlb9KcZZ zb309m40-^2HKm&lPAYhnt2qP)%+j2NfXRZKvbjn43$3GUSANa6fKBIC(1a^DE%(>3Ub z2X3@-quBOZDHGL0#{eysA|w==u&rvENvI7!LJX#$wUB zVxaQP>M+_u>iD@;O>b6k#hzHIm>a!fp8_SwT*C0mdqVTh6Ws>FL4_bO`Dvi7ETPgJ ztOC$5YW@XVsPQy~f0cW8uA`Mi+$_McPC)C;DkLy&XPf6*!hO$5gYl4ii9QgOdGN+B zI>@$h%J#7=QQG4iT>7F!1DUgZ(zb{cdfsxg%2uz=B5g@)p<#+sNgD-bV2yfxmow@w z_LUH2Kv8dF_Xf-PoTddYp(4pxeAjg<-vFXd;zqE^EsTcXX-4!w*JJtV`^JcyewOdc z<6LOA30M}7o{d=2GiP^R^Ftp8A zsI>KG`sTue3^o_Iu}B0P{rp(DL=u`{3!tEn>s0H#_)(;kv@LM>d`W%7o%%_h5Vbep zOTZ&?nrOz(8;{sOhTTKnrf_J~avM%~IU!#o1O0ydmfD z?b0cx4N_i_2f**qr9N<3pMMs83PoN>^S>GjxqdzUM#Mi9iBza4{CtNu0Kh2G&d46) z{o{kEk#%K8+UkO3vFliwbyX|47*(2!QWhfw;&cx`DcZWaOyLJ-7r`F`G<+Kt8MEJf z@m?$P`8!JA&?#ONI<%_n>wicxEIf>irhkrc=pp~zZldX12UzFs3%9kvcws4>i z%jK^?*?BNQJ4yWXs%z1t;iv!6t7OAvg}HCr9deb<@_!)iJc+mZiXbfUVU8o|;nw_L zydtVJrLL)S@Mk5~BSV0Ck3HP*=?$5Q5e|W8J==&ZGBPSIKdC9-8-gTWd}K>3PoBW7 zCwY;?{Op$*fj8F0Q3v~L1d8q)+$i70&GZT=!9MDoK>A)54E_~3o|=S~GAqo7pjSuy zo|QY{U|_5a0}4Ogihzqffkj)4@anELIlV4^H@i{TnSXN{TCdKG;M1Jx#5BXCQ<6rP`MrPcgJ6lSDp+%r7m znVg5CaYaYFC201cb%^=#>=<}f0{G_;*cYN1edi70iMCaZ>I=%l*HXjnmhnlN=5yKR zlrq6kJ2T7rN60RM2)jJ8-O)PIJ#NKTxg_8WN5MAZO-~7f;{C6o_;{la-+#Il^uO&^ ztpAnz`kyGb`j4z(MeWP`75`mb8jBN-(>XmQVbvb%c$3Ll+j&pW0;?s?V&;@ZCeGTj zslM=Rt`ZJ1AdVjl(*Pv7mL9E^4n;Mg(OG_>cz@11i27nmmoB%q7MZ2F4hBu_b-Hb( zUfWrJ&8mQM(_{MC=lh+P)$5UTrUzWNqEoAO2p8SzK7?S*7yZ6zNYaN0B{ZWhB*43Y znjQfvTfFh{F*Qte)@LJ9gmAa@G!R^y^Ue2KPe)@E703FV`_=bUrV%#_fShL!D%GmH zbcUA!Wc@TE1Do-3oYqH}@3n;q)(LD%7H_M&WpfWZve9iybruzp=Zq7bVSShJQxaOqQr;hX1b)+I)@iNjC)V8N%xUD1;YK9Y9r$&2&h|CSALV&ADNK`{$ZwJ zHgUeme_frtwPFX@E?;}6(FdHO(`)4V{0x)Bb#$GWjcy$}W|$x>lo!GL{GLQ#EE$~7 zY9_CHKf4+q&?6cf=j;iK!+kb*TZgUlNW#%X6VrbZRUJJ`5?H{ByPGV>i|SrlM0ost z?>0JlZM-G0$&Ko~;;;OVjQts$uoP=)3qAavk&CKSn(%z-xwVuFK?;~qPbc)ud4o43 zUzArN`#P6)w?GeA#zdps_GC?6@D>d+Rx|_jq|VH&Aki6kpl?u{Pfo$12a0;tG#9w4 zQCV0L;%FXE({$j-o=GdGgEEfwxRxq7eL4~PbdXNG*F?dEa1C>otTC0_Dyn!r-2_B1WQw`Wv&Qok zc`vI%Ult=Exg8j0S4jZGH#lQS+-g+9Y83iv6pFJmpN(Xa_Q)p=s=J*GJIao>GK)0~ z!-~_dn=n)_(1HgZ)aX(!TU|T@^}5K5!Ca_Kw#w{n8G%gs)wHES66pzO6ZK*jnq;%- zq@8{~EO|k;&dN;pGl-zcpWiczN)N|9WP6c#3Zlo)SNt+Q_i((+L0@2`W(?j9k0ld} zc_56bj1bgc+`Q~nRz78kSjx@QGk-SGc#9`g&M2UkhP*ql9iG7!5Y8@Ap4pfTgK?jT zIdSP%a>ddDHx=gXkVrcLfWy%#O~ID^CYhRAdX^-pz{afe;P7dqH|K4w-@;$KZqr3* zM#n27@u>>v;UPj-#V|KXTZWvrW1S5dayuFDNI}E9Iw;-(gfphCF~x>w$mppW%i#qk z9IE55Qd;9DA;>6dxB*}EN>cP}5(e>xZm}sJfSyv0BZad7fEGH7AjBTYLkRmxR`GyN zm7;Tx8%i}bI<;=Kfax6-rHgKzTGKN(6Qcg;KEpR=|I_hx5Aj;XA*pEs`!^WR-rk!1 zO7(aXKjI_SrFb|1F;PQ^){hQClHt*ixXuI`YhythfQvd;m;Wh=0?kD?rK1hZ_{f zq+Fp37#+pE;=E^EsWD=s-C?j)nSRwlS=1^|;mzEH(wXo`YwGjRK~|Nm2AL==Y7aYD z%Ap&SA?{lS50rCO&SPm`;3N!gX~U+zS_WSVzccn#-&$1JvH zLx)V-wNVpIpSWR03$L8+iWCr_l+1z8m_G1%Z^{Yp=?yE{B^9ml<3}N zw0R~)l0OD)C%IiZ{g6I(oW0eE^%cA$+9y3fG?$YqzT<(T^mOsS#?i zxl2ae&R3gfnphNTJKKiojQ-9=Xo&t~>Ld4KIdOsZMEouzxQbbveB$P_YF|;yBP@CJ z;J0}7L2vcLosAf$Zji}MWIZ{~7mc5`OdU(HZKsF(M9D7QcdOR1^CN|903agS8=gW-E!E_Lo*G5G6b1=pFgZC1j@q&Cc>UFRHR$ zQ-5~=a{T~q{Wi*F2BAqwM!CXs;tjdupjLg(k0g}GjfQ0nBeAf0&`vWm7Lp|wIbIf% z{qr>@#lJY0EUKj=F8Ku74`O?BXp@g#NLU0at+ED!v0@1;2^Ewt!vpyp@!rKY$Zhnu zhz1Jc{@f_aGK+uOyD2FwXS^O&Zqu++a0hQtk7$}MgF&^0(AFm{psv~}y(V=O*Rx2rs|mGdWHlZ%E- z)Nd<~`&CnE@-}{tEC~9t=_efOeq7OG^9QlUXjMx2G=fI2;+fsDr<7$Bk5_9M;i6aikMzwuAOau)*)UM4u)M&QnE;QlC|He!J-){9 ztTzhsRkBIlG5duaLU?0f(K4)r|5tO$w%~-iIMW(gP_;zcW&z75=T3qC%0Y*Pf13Az+0@^< zTRld;Igm-ziN}Bu7UlVM*ex#4hIhd+;P42-d8-aA%pC$B&l(5t3jJ!boFK+BS$wp4 zYaO0L$A8Kh!qoBG#Tm$$893Z}L6DBzr3O;KQdav#4y$paY`Kit5<9hS+EaG&0giFw zv2pt@*?zC-)Ti8D+DEpJ679iK6I$iyfKt=$sD0pgmj(e0I-;jNQ7`5YF4HhXIz^I$ z7ZD*DV$$@W&xR2WF?u_T@f)47=j_ahQlX39K#%=8`> zRcSJZrvL144Ubvx7rkAR=BZSrnwtt`RK_mVrD(_Z`ZIurgNx^& z5}|?kbqa9y(4gR1WvXp*Pdxznfwk}V84m5O{iEMbNx-~u;`t`!c{N%7SgD2n?%&*= ztxPp!ts4(pph%i2)h}W9nqoQq)z+C|zs()2!x2Jk{dwuN9Q7QvdkQ7wp&m`%tzuif z)E>Dj;33*k$j7-y#Tw^L`K{R}asei^ri?49=GA+K*zWK_!zjz#Yc<)Q)x6Zg0Pbf) z&#PSmyM5GtZ9C-h`r)w}bzK0&tK0RBZ!s6MGvu?+^Re3OJy)Jlipr9t-hVG^Xfdu| z3RGA41^GqSL6B1DnzXZTNN8qs1LJ*XI{64$9J3|Mi9xeVFvaMM?6cP^;d)D<0789L z;o1g{+AxbLe*zPEFH^MQK~Auu?-mj5qKEzaQGL(Z=<{&0{)<8)`7P(qID?@V$Svps=dI~2&P3h0MtKica1AWkcenp|@>!2U&vXgkQw0!o^jVLJ&gk9w zjG>Tq$<(N>$eW08iThG*0z3zL8%NI|hycZ|{`jIOa`FU0WwQBneng#CvVO^;e$1kj z`wNMBW~;Oo_!97+~rqA#q33*fv3ww+~JdH)1P&s~r|^r}G?6Wio=U_?nSq11>#U5}|SlRvpH7z_%2wYkjhK^@zOL zAcIb~;?#CqdeVT=)@O{21$SeTDFMI|{d z8tN3I!@x$^=!xQq)=>r}!VFSbR?Xf^d7-gkMiRV_=N~bHzc@MR#Dre1jkD5_01)yw(F+BC6oMXaK4aTchD?&9Z z59*9vj^;_2j~4XH&h-g9{oi_-#_K+SaCNA|q2^h2;RjZ4XYu%@D2n4x13u;Bt2fxH zf`b^^sQ2aJmkiqHu3E5<&#thQt2)o$|6I$e*vf?M!T$Q?NBQrLY5pIfENLT07aMyE zK0`zMA7$?U^5y<7DC@k{4nb32+_%vanJ!kl7Ls(aJfEU0)HEJa#P$ThYFVP8>RiZz z^HVGn03r|a5zKZM7k}6q9xzOR?{C%`YqlGs%|Xp}Of&$OV90LVESO)Y6OPyb5MdCD z9L1C(1iB$&!Ioj4DPDts)zeDB=qS@;3N{_6O^l4&?|Va5wCLx;Q7lC?bsr*LvU;@S znT;X7q}|)K5Ra}hLo7MBs6KWOXqnF&StI@VV;ir%2Os;l9=kWv%r6}_^vWz80V}0J z3b{25fue?oc)i^f5>SrGp+d=PjDn~D5&@_2eNFjSbrUm_^Bm%;)>hv((6iQ)J**85 zD$RVmY?y&L-L7pT)mPd(O4F4v&+I2*BZ^%+^4jA)ifUx58phT20aQX%RvCFz^4dJY zvDppzFsuVG12bVyECoZB$=1~pube&MQU}6=Vv0Wv8MBFH;?D0387HBAm&9RAnDjCV zY3>n3Q^mZAZkPOKxBM^-Y%*UgdGr(yfE+n<9AEPwrKItX2lq>wMk-xeB23nj{C94$rthc}O<5B) z6AJ(QMzQjSqY;Z1G!M=_E3k-7vPU470IlRCh0KZ9}O-pO>+CpLFtgn>ZCs12KWyzh-r3XB!U`f zvhj`7(MxgAhz@47>j^rpWHv6zdbb43X1AHN;yA+X8ZI>Rp4cC-W~Ko@8n|Y<*0Bij z9aazlr5go>1^HpTb*t4Y0aoW(p~;srECC8tk2zTZ7f$)h+d_h5@j7?>0e+J4=5Qe|MFI7z6j{Wu~L)XMKFZ)aTb+ipj`;mwkHUJ~@@+!n^^D zXc(wB(9v(Uz$2yugBUk^z)?f`a`F(X-RtSqh72g7k0rw8@93Iw6RNt z@$DnvqWAV=tEWR^6wU$-(v>QSQGC60dmDZCf|}fsM@tAiSp86rS(%#xo+u-o)4-O0 zIAsRO1kTg#pLeM05>lXpw{)vg&(Gem=BZub7nS*)W{Kt>e=|5PHZXQDSN3;bDJdBmE_@MHP-u5(OG6_) z&u|J}UtVM^B!%z5!zci9YSvL&vB|DqoAjJr^LY7wk=f#z+chY>5-(Y}$Zf#T&(ssS zrfG*n`?yJZ0&r{4x%(#B7dj;o=sMP{P7*A7Y3!?Kalpeh=X@84pjQ&6h>ZGJX^!k% zuCpy4`^}dbct$1#i29vWcp;)w_hyia3*6h|0C-+pw z={FI_*quT8Wj^coD@vUcgdf<6b}sq=>4PQ1Gi>~)^g{GHF3Gm%(y>e6^==uMEmi6* zPf>~PWp2ud#O4R~NR(|2_0dN@>xj8l znga2^$uX$(4ADz`q7?~TR7EaFt@~q%hN+|fj)D@wvpz=uo;UWST@?uAax6zTQBLDD zXIyCyRea%@=9CTTT*kPgnde!e=Wa`wK$@Pa!HIUHH6ZA`q@fAo)N-*qd@3*Tg&2#e zD5iQbjStkV(jvUBrnsw?LxQJHCFnD>JoS{e6H>3!6}fb58`$2TcRAl_zr;gsWp|ec zSZ4P$`qZ+3lRo2}}=f9a8w?VH@ zdlC(TXi;9K=qDfl;=6P!0KW@=&f*jQJNT~u)DRT^6gKH94&NX>5KEHu~psg#Q0nd#51X!YxgAWv;Ys z+csC)wr$(CZJR4?+qP}n=-j)yE4u1*?5K)U5&z|X`OW#xF}`O!uf6Y?9RLQU(LQ#yWK7JMP4Ze%lfhmV^f2v?b;d6boBTvV;ma)s9<*w8_^P^!$eUg>ovEF1Pu$1$X2BCf*L z>rK_CB<5RgZtVTlB6>g(7Fh0pMFYKw&gT-GV*)(9#B+ff++c566y)51tys{6D`RiD z7Thj4G*6(L(+7a><4b44B_*w8olpZQr@h_}QeRsRrBs9ahZA1}G1Km~1(bf!TLT8t zvs^N-4dHH6U^WbQD_n9M+GE+moaMN-P_SUnvrN59GZ^1o^H-)A@YI8qk)r{~=%JEa zZyUHoU~`sor+n!Z{2{HcHqB1-+3aH@&+o~qZhkx5Xs|(%vj3EzL*T{z0vaQ>-OgIfVs6KGy zv4iLg@;TOyB6JC1ZBo&mmnMsHWpDCZ z4Wmmi=W%9Q>-)d+1{HIDvUVI$|88u>`!Tk9AzmKon@AknDBQQ92Me35ij!X*Fn||< zbCy?wx(k$ZF<)!J;jg5C$`3HCBCdCO{YYDp`7HnqmQwOi?xGAU3EwOODaCIT0$<}} zLz1Is*z81pq^;izD0=Ua$A^1ZdS-jbeQTp)m_NJVi*rQ861(vf&nmQV0chMy^`m7c z-{pi|SAXz09nys-NAJQPJdWGq2ai+#DM<{xxI+I4959heWZdAfLgMqF*bW8+U@qNQ zX1TVv%G!+QiK!b8yg-0%ng$SQUjevX^$D7WF z8zrAYHLFSfV*|WQ^tju!Xt(00$F4($*Q!f8cQ)!DA=dmzWm4oSFDf+r&lq@kNelh?Eitst;!?vA#t-pg724xQbEwz!NQ>d zpwfjBgbUNFCn3RhMI|Id1*a)a3)YV1)QKA;!6r|4z3trXyx}G{lj7q6Dutz&O;@xA_!-oAPYp!G&kx5-X2}zM)46gNUcU+${_ZQ`T=8eIGcy+qvG$OTE)bEmIN8u z6vPx=*6)#y8lP(~qDmK>3YTdOY-BhS$NXe1!kFgP$<*)OU{x_8*KzW1?vqe1<)TNLww_JO}) zt+Q>Z+a1PZp-9Glxn(tH`YQIijPuZ$%Gr?!99+BGr7C3mhk@0e?IoU=!{|}m+!CSW zLp}050vAtil4K7=d?pWCRs6mSaaDZ9FZUN~$K0RWA-eOMo`Vm9HEJBSDgt0BPLT`h zDqx7~;%jF#dK^K=9)u0{>9$S8Fi*}))Ig-YjT3YJcj=HeJ832(YC)nMq+*9&9#L@84+yXW;8Q9X?B0k7JZCd5QGUldU zb>%Fn#&|R^<&)jkygzF=g>;d&HOeJpCC{OApcjQPC&e-?gZuD9j`u!=c{^rWd<3$w z7*+Zgz;6n16jNnWL8xrS9H^}3VoVK080rYn)Ss!=rlDmxuE>m-UW+WZPTb2QOPckQc4d_nkMc71P>T{?R#C+z zEGu+G;XkGE!egM`1n8^Y28{mC-D4X6$H43qfisz@$Oq~_x}At|`tO229V<-me-#z~ zMJVmR{0#qxocPgtTg=NMc}uTRTSU@WJD7WAP0d~gEOP)E5hV8M$`;R9?+mXWv>8hz z*x7JA>YSp2LVW$=`w-a^%fL5QUp)!QbeI;Ky5~C1%&_6*^#Q&?qYP}yc?iNK4)|k6 z-f)MAjaC%HuM^f#($89UVp;KEl@E)-mzzXC9@N6f7OA*?UDmah=$(G@%o4hDIZjAU zfPNj8vgvhL!Xh4cgvK$S;D>N0%diCAjJ_8R_<^LCm%FDYEK-`&ijBz_SoHlQXe#wH zZbk!F{_QQJ%FC&>IrL-pzNdqkM-7y>a#{`w8Hf3Y*?V5w6pRzmiU@ZaB(JVy4)M0y zyaLfk@1>;C0dI*_n6TxjXV8h?preYO)s_-+~#Jt$NDq4pk>W1yXqc4_f>D*%Ta@4vR<($zU+ zp;|h_YX?QvG~~@la{u2k@dup}eB*zLOZ$&U?Em7@4xPTDi8Sh{coB|wiD1}z?JU`Q z@$vn*ED<>A;l(cCIALIb2_;yYLaETjq`|KFegC*2jZp%Kz(V>l1#`W`gO{o9v!hE=?26qj`=s+p4Y+YbG3OMY<^fuXPWWo@XD z_C2)DIP}EwW-ViNE*S(amM-@r#h?U`oiYkdV^DeklW`0xkV|FW?iS1 zhzN+BiKa!6eq!n_cPd!WdGjl1%UjVzoD=%(bSNQ?BpGyG)y0JjhZSLyJ8uA| zh_=c)-|0On(5HZRw*&+z#;C&ZPR%(#pAu`653p<*s7bA+;oY1U-m1dgvC z%`_T@Zcb%sLE1k}-XMX%9XJf6FE~dK(qmq28gCP;N*PT?$I%UDQ3?cx7&p>TmPX2> zZXvUI8W-mv@xs{fIUQw&;;u{-*G*e#KLg7jFsg^B&f5Q~og5()g#1G~7>1DypzUYT z5^Vi#{B*aJPPVx03L*kw7?ni9$7MW1341%6Y77tV!H z%df$clAaBW@RxoZ!Ct(I9$!$E^3*2$hQ10mc;*o`a&p_N;EqXJ!#m^I! zqq~{yq!|Y2+A_PLd$$c$7+--HY!^d#Jkr|bk&dvoz*Lg zr>Sj7nrmqeMjsLZpC8Cxm77Ad-psV(W!{T1q(0B z7p!MdAj63w{!1zMk&n)rJzA;EM6S$@EtrcLyB3h5eL$X^PSIjZzXh9G1gKauRlw zHWJ{Yoc%8I0$gD=q&67lV??=9L80t4g_Ts0{)PF~3D-T~1C~DB%QqROBe!>(aSLl} zu1N5ug1^=81Bp>AI2QH|zhO_4sV`ssxKvI!D|6Ew^aAZ&@dhrGTFwLNDr)6Jm6*$! zNq_pymlY}bRwcL)Y0!IdF@sZG#MhP(DXIGUrNfkiKw@JZbsZAYr(M zX6rU?b)+C-lJcpBtXUVPx&Skkp#_PaBrWMH@zY zuXsk#Z#mo?q6W&5CKAeWN^`FQM0>tibr&PrV`pg@inVQ zY?P=U5=V}yGC}Q{^S4M;d4SkmrcKtWTBPTJ6mH*o>+n7b~aP%}o^A(PQA71BuW0 zCr9G=S>4YBi_*EnT8XQ|Cx*mWtkbp~4P^)Kh%g=_DlclcquA{U9oBuvtWu6_J7JgN z$E55THRM~3_B!i{)!tIrTPLF!TImG>D5M)ecq_MVqS-Oh_cjibIS=u;%?~7^M6PWfbhvO-{HYxr`w~)%1$`Frlp>$_FX?_?A_UzDX)&JYK|= z9MouJClcalmQJhPK|!Cwf=u>oCV#OX``12Al5C&G#f&>ZypsaGhJ68a*5-0AVBV5~ z7*IV4O$LtJimB2vV;@;mo@x{T__QR5=mK{Me3r&o=7r93tZW+$RK^hqtLxH+sZU=i zibdZKtl4m4+CaX-Rp)R0+StVYbH4WXs6*mI^{VX z(jyW40AA1$cxRl^UkJ(p>fG0dN(XM-I>X(>s$=i$;(yD$9ybWj0uV*CcSbm(!K8lv)BUqwl)V&i2=-ZFPM`Z59)08p$4G=2-}MG!EB&6LwEB-7uj)CuKX#9=ay7$YzMt_X4h4jfotw*nY8Dqfk@KCVc4F{>NN z54PHtYvPyNh}2;UWVx%9=v=Mv5P8mzd*MI>aOsA<;1%!UC+_P3 z`UL*MO`5iC0=g4{S;>6kwfgPMi&BN0C_Ab^2c>~pYvsl)kq2xBF}X|_bMIm?Mns(~ zCf=DpvtGtatS!)_Cq927NvgdAw)n&Z{R9QiGtRs|V?JAXoUoQ~TqIowa2N&f0RGja z*WUQbATcjJUtX{-#m%AM?wCHb5V+xf<%ZznH&7)h=2A%xOauKV-U{ z&{xcRY^?j9?@lN_QJr9}G6rZt4N857Ffaa2?sy#fmQNr20%6iM)_N`^74?Q?llbF+fL+f@UmGqEuw5LHA??98Kf5Hb+?*h8%@OU? z?_S95zA_7a_(WcdkSU)iLJ~Axb8F$a_3+KhJs^YnT_YuNdkR7=4N-+^m_*B6Lep_jl)r|e|u7QE-uze_wV zER5AQxKo^CDP>qtwF8=Z4WaMeqpKEqz^YF!mlWeF$-%C`idJ%C#Fpe?yoV{!FW#?d z!&F<(EnjwU-zB>dPEdn*VFsE49Qx7&b#MXgO=NiWiFa`>uK>x}%L?df2Fp3p%0{UP zDuUk2_XS3(feYH>D?`fD43{G(RwXOC04%wcWcW>KL_(9KW*Wb`LUCxC#C{Ur+M<4B z5tNvR_YGAH9wSd|B1<5TNAa60M?9beT#S7+U9Us*9Cy>)yp$kJ#aWIyo1=PZPF1{r3MqQTH0oV{!z?Z&kqwrde^2B+@nbzrig1Vc6CnnXHd4eyjtH8G|h#kHgQfogD<&2Raq9kqBK-O zmUsfT4#dKcdP(eedJ(*pJ^Gpvx3f5-yAk2j7|Fxg*}50CU3(8p zZS?>tjHH>Jg)K99E&37GvrXpNb0;RYRvRx?TTnLyHQaEO&EPv0O{m}(+Ewo{9;h1! zTZ2U7G8To{1J|fR83$_{2lFtAgHhXae;U$02d5#wHPRyWd4oh`>7%N^2XVy+4H{!3 zVzn_)u@tGZQ6*`KpW&;?lAywsvyv-yz+J~uxf?VbrBe^?UCf6L>?E?48-0uZR?aFm z#LPj_$b_9Mx@bdzmcVwSxh%(wHxj5LAg7GUH(jq;aHd9&ml#!Wl+F+WEO<+g0#utk znK`5~ItH#&UNTCI%t+Ikk7ME@#tbj-sm&526`H4}LPsySCmQ3Z3Ti-P z_edB=%__MGVvEDZ$OU@J&sOE919fz)`goyvGM3g#Nj4DrAiKbD0t5euN_d zAG16IQ4s0SZO^W}g`|?4fPMrMTTQ4CDuK!GYOHic36jQWuF7|j*{afe{Sgo)Y+(Fr`_0%ai&)2>Q-NBd%b^+_13 zAD|;RL-eODt)HUuut+$}ROCrQ@uhI4uV8F2e`su8s|QkDZaQ(~1XJyh_eBeac~qTq z|4)zTDeNI zj8)T}v#QC#lr0#`?L)EduVa?oi?#-t?Sh0(=9tD6<-1EOjT5mps>bzQ8mt-0<7eqs z(9OfO$maDZ55PrCS~`|6Fz)=$ZqtO*illo_9`3}XT+84fb12ZPByRI1as12M7GWdc zZ&2xn@BB+#IKc!|RI@Pg54&~z^x9&U_yOdaL{#wakw9vH_Q4#6c^$Utzp1-WVC}eD zAAv_v3EdM+&H0`3Pr87G}us^nOH z3*i+e#gz{C@P3GVp)WVZHrFukZud<e;;4YPebh4_ zyqfNEWHtIcOV|wlJ<;FJ{Iuaf9aHqc8(vnwwE&~W55;;M4opjZM04rZW|7aV5y{S> zLI^-ZV1o&EuWtU7=135tx-SF{6=}NHC0hfvFEY90sItv7(E7-YFC-YiPV@&blF2e< z)`JZL3o7>Ta#5f<=mJU@#HCFJSj83Kud!sQ@{k50miLkycN9CXS|f2qh7+{ZEJZ-v zNurANX{#x4!n$6Mm{A+gI{z;JP>qS=^2hFQQT!1#J%l!n^DbV!UU5J%Czwqg`{dn# z|HX)T+wDaur#55M;V38FzeEKwc9_>h)MlXph7c!`dV~;n=)8m&v+vCHztglq4MU$y zLTrRXQEh}1tRB@q%k)=Ycs1)5(VgEA>kH0{Dih9NPnI$jqjcmcE~4g6diZIKPU<79 z)wlI3xYowVo6aV*JqG^ale*0HN4a<|K*vH|d#Ug=HPVqPX(aNqn$Dt9ApT*zA zMpC6D_l(smVe*V;Rz;REOFK}m5a+Bmsf^-@g~~}9yHu^D1r6};4;2O7B%;9;emCv( zX3C2hMt8DC^@%o6vw={?!$YLUlda1=>O>>rG)O0|DKai=xG(=CheF;*i-ue{;zNu+ z5+JML$gzTXBQKjNL9QI20KY>A{^6sZgiF;eG^a(QjUUySt})0-?=nLzPD!jxj^B+|;`xRSF*~I`mSiJZ>={?KCGJOpmEE%Jw0&hcO3R{8A8w%QNEc2$ZE&5cQD6n?;@(h%Jt#OUASlA~$!- zy33!Bk_a<7{K2Nbm=>fc#t0}c8?R+lLug!BL65(TR9W5-vHvoquo!BP)>0?mHI!$x zDsGfKr^z1wT?e3J5!5m8tEos@3lg?gCa(@RmH~K-^03)|pWut~ z7L2;ut|9F2$7@NAHAcpj{wI+LV9uSEY4v5E7c&dzQ_OsG<|C-4Q*-Sjjb?&#$MlP` zJ!NU!EsEPt(y439fbtZJqPK+z%-ZcQ)*NWh@>k141>PX51cjAe6VjYuF?>SgiHHT? z;ZRc4viMqG8pU0>TH(;VpT=)U*2(a(=53#XQV(w4MRriUk!%W-k{hN6;bV8MJBXA3 zqbW{X&~Lvcvp|ZHS!A|>DJFO8-I3`>2Q=m5CJwZhOZ`HGkXHG%U!-gv@ua*)gg1N} z0)JE5!{M?H9jg0HMv&zzsG1c^qG1w}T_$(@iT6*cCIjNiq{zsDOBJHvcz&yJ5Pk9vBX>hXpU# z$95rGZs}O|7PBt3VmFpylpLp1&&D9oeVzN{US3>o{5hRVlXFe&TELYQm}eu-l*sE>zx8XtoNhp?JC-tlb@N3eKnFgwa~xM}?biSyxt)W&Upi}lVRcpqNmiZ< zS{nCk{&9=Ug}wlQ^0OBj?_avOWd8g4qxgS)_xwL0S7kK^q@P)ct4X2+M+`84RU|OL z_*g%^ZGS&Wl%M-867b+f#%l%&_SvIoeA8s_>f`91UV_(XSkDD z2Pd?xS_e9IBhyD+CU@IK84E3)w#&QEr7t|=o0`?u7zYRBg>Dsl-~(|ebN|t1$PaSr zPM!ht5pkXCI`7t4*aH6z)OE4iLoWA-~;RXYe$(Vh4lMM#Y! zzGdu`1-e7Qr0*|B8X>2)P|nkj_1A<#xlx5DB(GtRIKqLG$zL!yQ&-LHWLhsJnP@?V z9V{pu*HSXXoU1eT3sNh$s=Nd{1s@L`?m(lFW!A0eM8l^GR0C5trZ5D4P$ndi)lz@j zMz+E{`kinn1Wu}I;y*(d+DzDGBunyT0{bP3@2axf?=@(jI8tsCDz1+=}hSm zR>5M*D!&!Q$#ROpuT5l^>0L9@y~zyNh{f&1)Lu*Tu%$&EF9(r$#_ZIYv7o^n#Da}- zNq*4kxM3Y*sX#bG@3c4^uSAmv16VkIpshVdYj!gFqXaQ>Se1jGM+P4>%RJsRQ1! za|Vb)wP{{#wxo1Aw?QyO0H-{UGZ@n9unTi%I)Guw`aK(KzNx{O0s5kYs*`_)5|6Xo zjn$%8yWZn3CeE+AJt8XQOag{$Hk0SlVe#)xPqc1K?8xiF%28EAlSyq-i>Ek9kdkbz zK4%mg*;_7{8bVOUuSuhC81^r0lFKLT5;8?ByB!h68#gH4s~(xsP_{-gciseoZFt@|q#&p<~!GlkyWm7*v*#V8bB_;Y6kruT+b@Qx{Wj7M1iuwp)uJuCus{7^(~kZ4C62T zqWK$kG5JVpmPI4_NxcZepole!I(IiJ$Ud~(a*|MRXht> zVhcIi^BQFukqAvcDSKqcRt&2;0P#3(lW3|nEAeSggui8|nvLt)Lh3_C6B zURHa`t`rRKMEnmbrw;;++YF|g_Q*ZhRS=j#Td1*5#DLCJI=e&$@wC!N#SXWZiD;-s z7L2&9l{eF=yaa3K_74!}Vt7(mJF1&P?3-6@iV55~D-vNMg%ncFY@p$kK^l z$(+6hFu57OtV5+&eVMfFrL~=^S&D8!a%R{>_W6U~5r*ruui9^$#=V-yxf#2H+F%U< zam?~%N#v-gBa_J`V=q&wICm1VQmLPRx)%|?8zCHSzbX#-n8s)<6GPzQLuM&r2uNb& zkfIfkq;n;*2jJbp3GCL4nP9U=iHQpsu~3xYL$2Ad^kG&qavP_Q|DxY z9+Q+jeblZ^NF(HMTZFn}jZaZNiy~9ur;KU;w!XmO!Z%d+U}-kpvcGI(-`@aF4mQL; ze39W1LcE&GeewPy<{X1EO3i;_juq}-RrJdLlQH+7NU3d^AKB#Bkvf}uwmn|%5^iWd zIhQTcUO;bZED4cRIfA&T=f>9GjkxoyE32?Cl^23Ak}rTSxuMmkP}PQFFy?Kg*j~*dd0zl`&DPx)@JBntr3YfVCGON3~c^@&`o_ zZ`kYZX48A7E)7fdExq))LPb#>D5TpM`H4mch6|C#g$(_0Qg#$N&u!Rc;gR!G?i8^e zwcs1Z>Eer`g4yF(uxeuHT(;gFM%wpl-`sXn5syzhn!yi%^ zkxC}xm&k+bWRK5EUA{JQaUZo{WYHN0WnpZe8=vz1)lOD3OY-?h=jqp{_3O;~kH_an z%wI4&Ucs}4jfJF)$~?rD0?k5mbqdinDieh>n?mcFwvVS`{aReq$@hJB&&incubRR{ z@e%rBfxT#V`x?IN5yIjp!c#v}2XzJdj|`bzfALs$5phEqp}vj{`oS11X+gJKrc~+C zo|J@1Bk2UrwSIu8zp@vfdV*->ZxfZLFmyoqS&Tp30Um~^X`3(la?G+yL=6cxfq;i=1KZnAOa2#(l%-JAvKggF*z}l`*dHG zHX9;s%4%1BJIAOHGH zMqaC&C!gfBD@D=+ORSxcjRGK=-f_!870oMg<6SQCPCg1PG#6Kf-csYGnIFnhv>z{+ zs9!G_L#9Zgj?{k^AKeqHKt9gI&<~ER|Hey~c+m0EGk(XN(h5^N>X3f*4!<<_1H5iX zUdqTYQyw&N8ANLfML67C8D{XzCfwP2iK-+nHe8C)RB<5wEj8h$+)bK-BLLM-h$s6)FyG366D*u7+h zqw6^T*o;Aul7!-VAxshRI4-V)X7>JSV^-C>lG4o37;2sAh*4kN zyA*$TvNCmqb`o-3r%a+n`0j(8@OV9LE<&bAErD)ct$%Xeo>1@bvJj2AD1{|?62gPc zfGyg#CW9;l&!^l}`1?=q4Tu^?ROFECGDeeD0r+sn!(xXJlP+hJiXz(I8`u*Gj(Aky zdTcN<*>;cLe-XKBack>+MV4lH+Jm`={c8bn+QZYEbaQ=a7~B)#A0oAl0!L2FAeE7A zXYQ+#$U?ve@2iO^w-kEjwFB3%$#((`F=QoS-Jv{-?OB3NkUcO->8q+b0~J#7zELuJ z9a05lH%%3VZ(!l~aPy*lB2m7;oo{7kdwB&=zp*+$AhC{g@^gHG;J=uq?`&dsw)LZZ zLfpQ%CBJ?rzcP0SsX~{wg+6;a)Mp{38P&f~X zCamHh>>e8M6(!ptLw_CVwWi6}&7MuIaJ-3W)rPmwN~v>XD#)Ys*Hxg!Rg5=}C(?}m z+mA^mUMy|x)W6310?vhnrIe;0*;evDlD^E`L>^nj@4=}w-|Lcf8xs3!B&K!Zq3zpTOX{@S!-~afI&hkV=^I^B8(~`)6#s>Ft7RG^Y$uZy0|kcH1S?cGVcU3Ee^_ zw!Kqy?|A1TPI#UFF4Y8hIkRHu>7?BB+2QlKS`Nvmei%a48+E37L|I46f`fnet{|!TH zfO{%DVt;>X&yz^$NSKkE%=!bbA(7cD9w4Zzli4>Xq73Pq@?%OSq!;3Cq2gp%&r6xi zx=9&XpRf^8JBPFGIhJNzWpg?@SYO%CpAKz2e}8vxnBfP(9(6wRdOu%(b8c18eqV=` zgqpS`_cApuF3YW+-8!*rd5aWnFP`0V{-*h6ajB?aSh;es0as?Jat2yoZlgJ~2lhAC zFV>;iK3h2|ePHXbN~&P7acTrProsIsmAkp?sKmj6{r6HXb1~Z2V(X7Ac_^$X@!*%d zN7nkG9mo+)Y6Y9~I|ZhucXR)K*Ff#+emW+hNYwDL)2LYShv4mmp?*3$8vJD9AQKg` z9iv(*gaVx|3FZ8ZDtmFbmgM|g;+G}kA;V%3I5MZ{#o0p(2A%?F3q~JPevVKva!H7I zRsr+L{WYBez&!fzYrS$_;B;udkmb`G&i=li2G5mGmf53O0W!QD(R>S{wLv*X=5&S` zRKhA6-60cGm6po9sgCBlY<~mU=Kk90GqBfR9vLG8ftl@~`za>F$NZt9r?$7X!wBd~ zNYEIiI&$f)bf-oOjlCKet5P-fc73^xjguQ)x6kmmp|wW4h$CM`yg;1%DHoNQ%QDT~ z6QD1VJ(HtB;9nwmbkzh}=t#9=?ncb;W*{MWQ)hqr4bK9V(jfF*1MfDsSSpSBmipN1 zh?w;IeLX`q1?OzRes+DoHF0X;xP)+?+%eiQH<&k*o;7ymN_B%6@hF{{>3JQ$GiXK9*|lljfzQBHDZaq zyP8|u7<`KgxLa=OgmTO{KqR5<*x4SedFRZpN{uGI8V7tgAW=|#Z4K3m{y&^TJ#?Ub zm?$N6HgDGPn}<=k3sIy2?GsioGN|?>{Vd5W{e`Yjf;fK>R?rTDaiMQ6nrhqxz;es|3lbz<5|3o7ZNK(_@S%%8ZBpY&{-m~=qj|L-ymb=4ALM2EN;b){6PgFcM zy=C46I)OEjVONDT79uLQ2XT*=pO05KwZ&Q2%|Sl^%O;W1hn2H~73brzZ8p!O0F9&w z72B5;QBhgJomdyG53H#qfr=VRjoB#|Vrt~q@|4lT%bCcT^*g)NG-9h2B85uyhf3_j zrBDnMmBBHZVV*m^acrhZxh+7;0UQetC6Ek`X*o6{)4yPH01HaboNTqQ@MkeHZdT6= z9iX0XFPMd_y~awTR7~!%a%@=Guk^P z&#FS%Fn?fbASWCur#1~8AP-GJaLq0{4%D1x%tF_ycy`saf`J`7%B^_XQ%kQT-A(zc_M-d@i{gfK0(sz) zkz&TbC2Gh}Z)3_fN*%44nM(ufN8U(B9sOHey{Ul{@RFIQ_ax*y-4w78P?%L!g~VVvkCr0 z&#JNQ$~QsHH}Wg@2_)_Lg9|*yc9G9cDrSu&r3|fABHnFPdd5zyTbMR$zD~>-$e?t{ z_TmZV0{LGR=9mi-AvQ`GOZvRh?>W0!mJba_Z_V8~@Dbp*d8he}H$ElaUlKKyA!jbOS-^a;qCA{rUe zXhc|}^hE#9FCdBrdjMF2^2ngFxMVSR2h=R3nttF5FttF%iZnTWW2TK?XVB%JSH9Df zSWY4(*tkQvt+D`oK7^mjB>a)Y-q~z@I;c{ zDZiWB0J1E1o=GaANY#!qGpfAu$s=^@88+Bu zE`23UQEdSr_MIT;X{Y&cp7rZ}10o>TWJwc^!1I5j<;B1LwS6pm5t_>g_i_x}g8kR2 zH3*wyIeeieP@~uUXZEtxTh9n{2NsOGV8NMFj)9Sy(bLqQ5-Fs zxw(=`O+6(T6^%$pq<7Hnn^O4Z z&`n|*ZSbrkKh{#-ODeIOwabYY5y8>bGw^e#}|dqt}75C=nDvQ7I~ ziTyjX^3|Tju0fyK94rOAMGqvSr&f*V?Vlz=927Tt%NIrjXr1e*W)Cs`$A&r7%6lib ztREBOV5x5(Z%3GTmk`;j1i_h@mnU$3n;cdox-Y~0#e+g{cr}Mr9t+>Gb8(|thLRUW znah%UJBNJN)y%1Ln?P>2g5qmQAdivEwnPZfQ+p~(Hi0u!p2(?@-vy4J<&OJ#;E5xT zz=A5q_O{G2H3i>W%*rjE=fv#V83d5HiDX9bMsgQ<0#E3vBS;qcS&5BM+%(cig$!`( z8%?nScobsGv!LB{I*U}vt@&H~>?sAkS91CmZWfP-WJ>vIfGFU-I`>dW1s~BV+7Iqv#k_u~S!Fxl}k06xFuwFJOs5p=lPfa_VMlLy( zR$Z+NL7i*Fp8iXN9@i*6=}DrfK1%i8i!y3Y1rD53h$u6wPfn%|;tK#5QR&9wH03;4 zwHEjJ6`B$mqDg;&R60phtX?y>g%+mKwAekPl-o_29f9MW@91MZoQjZpXzb< zjn3Z>fN!Z1wQ{o$P|bl|$00`2+N`7t_OO##n~#KVVy1g|^GjWk5}*ld+h#ZHUK-x; z=nagT2n94IZH0^l%x?d~F6EFC@W~F{E;-Es5ufJe#<~iF`f;28McZ4&MiRA6n(emT zW@ct)W@t0B%goHo)MjR8W@fjUncZeCGc(irn_X!&J3GHdqurZIl`3yiI$0<5o``rR z_kllJbs>v}SFowze##8&Ih-HE?$xtDx4&1{aJOO}Kj_v@Fs!~;PjI0=~|xUbG1YTvd*MDkfOC3pO*&1(Up9t zEX*eS%{|42pP%>n3HpVhrqiduM+ZtWa-%IsuH6%MMi%#^H0s<~u=Vy9C+rY09{y;PFXZJO2GiKp3JlY_^h@e&83^3E5u&$r_Xm zA_`e-_7uPL(|^+or79lJD4Le55ofs?Nty$+JPpsr2$G(D3TW8+J?fxoI+AI+I>wAD z^iMQLVEv>#zr%#fznW)UgSlD@?czUWEmJWh)n~C$uqTd8m!##7ITPLI_%p+jHAss$ zhz_py$}WCy6LW)DseJ~1D=df}Hp;UQ$00qQNvQ>ZrGXwu?7c=^0xV#I3O5r;*Tfx& zGH1FbQW?n)LZKFHkf!G(9|l<+(xP7fzQue71kd!Q=@^IGC(q4b9T(U*nC*zV|3gxL zDHB038~t^AL4~&MZ8+2ua5hwqw#}Odw1JB7gB#U@Xu$ja{-0l{bnT6*nTmm#^13$y zk!tT`A2i)uctc;%5q>xkU$Rv|hT;h&$}QjTTLaGyoJFaJ)*)0n!(Qtn{18UJAdS^Z z0G%I$5nn$rKLeUmk|J7jJAq$Fwa=BWYMp#|Lw;aGey~G+$d%8PCmE;_ZkJs7z^}-& zX6I~>&VM^Htvwol!$RkdAoF3Oox&np*ztCKSRuG?u3Os)=Eg~uKfs%y z;LTOJ(B^jGUN8(_yC*XRdja99h#>EmLPRZ+$cdJbPEmc4{vT~>JTehU!~ za<1<|QJh*)MpR@~l1P&fYYi&jlknQ1JT8By0kPT;N%nA;HBfw>7hm@1M!jN}#T+YD z0W`LhJVy}6otUdFs-+>C+Z|eGQ2E3#M{N0q_9TKUNyl_b@k_8w%^1J@p#!c~Ga)bE z37M4@L?F}N0CK4nBb8$4pstN~L7L(GqL74+?|yzaXrO_Vcn_J(h?VWmT7n&->%u!@ z8b)z(S+Ie7tU8@}LWVrizOL}Tq3^`#S7{|pjDj3N*H6b7MI$LSJWU`$RDdpn@KJIUvx z_I)Dz-XyMb((6lsSo7@;aWpyPbRq(4C@6KP2qYxDQ6dc|OzxO5n7`jWuJuc4yMJt5 z=IwTB%nz-OVG~<)8$5sJ`j151Cp6NCZ>dkkti$gicp~SE)GIN7*4Bjo8@kooE z;gS`?oar&@Ky5fJ*B%M^#sis8D}Y9g*ld>Sz<@>k6$02M>525f3joso5VF`wZ zp$wDea0L5qYWQ7jrDv2B5VU%bu&K@sNY+qHqDp0sCNm5BY{74NXS6H^j{qN#LI->G zoA2p0r9Xd)Z<+@S+K4SqM$g-QYi&}3F&v=imr{D0m@Puu7DNBU&iZhr-sdp~^TW%y zDuL>Zq<*Ha*zd@H@ydJgDo?o*R_P>Ayvh96k1!AZj`;W4;P$q)h&*!CIZJBto}Lre zf7|>8R5^Fv4|Wp|+=$q-6XCZ&ph#{oX0}4SEWb%b_#~p%qw!>|I@SH!#9!rqbb~K< z`CF5Q9!u>YU~KYzwW*N>FtX5jR7iP}AgrKyT=4pZKUdNq>l8s&K=iK;;^%^mpm)@X zdzrv@!2UF*j$pzt)sK{r#^P2zsm6w_JRxHg8ZFNX^n~p>J3Tm5wLWV_-|N#F4!AW@)QgDw$T|)AQbf5z%Yo^ zo~YMvz$x`~{d7X)8~k`v=^W=L_&qH44C6Rf{UpNM<2a%7jr5%mDA~S~Kj!=VI~Qr1 zid)J=Db*BDvM+#n56iy**?S}ei=@sna)0|gSV6@?>_DDNwk;!KmDI{aEgG;$njywn z`G<0A<^YW-$1}_-^bp`$=09L9>J%VH<@`abQeI??+ZRZ*9Q)bxiQ1Y3M z+e4ELbU`yq@C+gEK^M1r&7LM?FNsJxf#c0xQkrP_>H1|t_KpVHLo`gS7Q@#&=$28N zCZuBk32X-IF8OR)L}{!qM2soiD-mQl3w9aTe?1L$*}8W%arc~Pt88aybPr{ReXJu& z#2dubz_Kw5y57l7X!D^YzX;beT_@~8gk%V#$E zO=#G|mr&IgWcinoNT%Nc^e33Zr*Z?R9}lhr4XaOlh_B>=d1=aT4lDB4_7u@4i&5H) zWc)eD@m>IO4v2grATWUDh0BP6(ZGR zlZg!^oi6^BnQ@$GcCDD5vMN`rhM4aS#@9=zurY&J;U;yQA${RUzbI~P-WOMt0F8<}l2fhVqy|9=VOEScvNj3IE+sjclz- zO0r0b&^DfWm&TI8*~on?oAn^)Rb=6?EB+g4ZvP!hzd{1Ar<}Sg6iCF3D;7i<7DVIK z;h<-Kky{O_F~10~+<;DWV5nS3XE4Fx=C1%lE(nOVnOI0*R^8qDd-i^IY{}Y-dPTOE z^2J7~<&nP%4}p9$OHvaGnv#55vG{{|a=Dc`0f7+X)!FV9-j4X|GZifS(NUV`^D5|j z8MZ)bZX(r)*W&YwH=lG2LfH+BhA9{915*Z>@5zr;5K{Pb6&1BX-TGs884OGp!d#diOWAU>?c@U+rW9rJ;Vy13hYQ)^8U1nm+U_2bR&A zKKPYa&HHEInV!$`^=B@YAK*~gXb>9{egeG&=;m)P1G=A_{6DuOIEeqqlb-N1v8aYL zsuV^e4!O}oFV?Sc1e4EsQx_hTC1#j2uZ2;WBh>u(mweBtBRjLud=GzNT!ORmQ|85- zlR3%`6AOEyqXx=w!JvirH|zFKY-~#m8ll1vF#Ti?Z?MZkdjeVDSJ$lhdB5Tp#D7Nb zw-Mb_SQtNktn>d@29Ez#pS-n!?f(_YP%v;bu=&61y_GMN76eiG)>BHV{Q)9W&%wxf z4}oEZA4CHy<-d9EBgymN1uQdaSkuVUiXOPUq5UdZV)i(B|H$v5aBi`hyZjSiOgvw8 zdOYv)x|;U=_2okgsWd`nwAg#w_!7p$8uYTRAdDMmSyPTBY2=E@SILDHQOV zlNdIZ^r86#XS2eWP*MHFO#LLbP6-q6>ZcwuYMV|}Z>nBm^Lhq5r|lbR;QB8)qwq2M za<- zrsHbT*lQoWY%VQ5*NIKEA6)jxHt&$+%jLG&o#P@QYkIjMF9J zW-maVdk&*VLKC~ko*N9?BF%W2@}b$u|G)#Q@QI)&52QV;muM3~c%?T05#=RSnf)VG zw#x2 zObJpB!6NWYAccS|hS&vH`wn^-{+DM*LjQ|rNB_eD{_o=+fHx-`HMGyAB_q08Jd=fz z!J;9L9Zgp)Hre^2QBp;1E&#CrP<5lif@W!cZA+xqT&+gff1cxhs4@7~Hwj$|gd<;0 z=-08`B;yB68ptO?38?qeB{21$48(+!%hi8);XO{%ZZYr6eqX!tKQ8+c0`i5LaT$^- zq6<_x_FO6zsxj~?yY(@u+IaL@%{JX#8;k)ZRWNW94ir=E8m^Cr;?|Wa&ix9gompIF z^l1*KlS9hMVjh%@Sc%~z;W(Rahf@V;99E_VzKdy{>GTmJDA4W815hM+g!NE~20^GB z^HIib2#1Z5d#K4mEEpqG4aNGAsp}zDsX!ys z=#Z%g9$~8lyEc~&X19TRpR9WnsjUTR3^d9hl(CrzVT6ROcjAwAp6tn4J#g_ETXyGs z@Ww$<@UhPo@@R`^QdieJxLjzX(f~p@)#HBIk9syanaQk1XnGenBYCiny3|VvNR&qC zlGn`5Xq%;hK&xo@RGAUUCQlO|JS2UBR}x5Kv1t`!`gXGmshj7abE%euj}zH~g}i*} zp!4ru)~!=pIIYe_KJ0?6(?22ATc^5k?XBEZ2AQp|u)>^Ys*G4k0Q)=7JQSCjidc&_ zP&ctMKb5{qRl9}a1U9pjgonRks}*hKLjkHz7nWpEq&R)Uf_Qc-WS-c=jO8rGYSvF- z0gs<6O(Cda#BBr=?u1=us=sN88Uc;eV6J8p8@@q4zYbBE`!~`8vWX`-l(G;b605ei z3>O`#TRXaz3NG3@RO;qcTTeGvMnwn$LujWVK^I`PX`<$vAxJo5a5vK*GSvqo>&ukj zICf3r!^BaYtIseD_OY_LCRAsax3$6O&iV&sDELDI0@Ptxzt8c6z}K}-JZH_oBac`& z0^}j%T0-!Skt*+uTX^hvh{b5KF4Y&j3q&sC&G-H84J%e%S@EN)PRoUZ6N&<$qfLbT zMaCJ_T|#-4<`5}q`#MKdobOyWD}y_|>P^d^J0s|f?NuA56>mh*6xW>TlWt?QTvfd_ zh5$m<>6e`mrK-oM*i}quGvzB{qb5#FR~geDx}OyR)s^As8g?l8jDM>1B=s zjsxz&)#J3uB3~y~wrKS-3uxpgXU}3_dIKEc3$7Z^w$1d8bpWo5E9JL!cUAMAVb?8h z{9(6~kIs`Qt;ibKYhmo}&?`5f%e&w`zOB_W(qmXOfmInyOUrJlN;RANu04#Qk4(h} zt{r5>M*v8ih8ZQCSB+tNG@#fj8V#e{^`biL0#4Wt-o_K0iPG^G9I;}P8_?!!^_ zXVu#sJ5!-JDv8Z|!Wp~u5tYYGGrc;3h}U2&>H+-cX2g2g3yo9m zctSwy3tocRNZEGiy3Yq_6P+u`ca^a!Y-el>*~?b#OSK0DChC<AH^Mz$C)6OrRsRO1CC2f-UZbfHwahe5CC;m7FP9?=X+r zBR3l^8@U|;iXZ#T!(J&4njCHF!=P%{v$+szL^e+~uWw8wZX`T zHUxxktkaeCADnvvjo>%l9*qM!`c(GUHSZVEkmD<++rF&Bs68_TZ7J zNU66&f(m}x<8MXp!TJ(k2}w`VFX0O6eoEsI#qTQWi@EW)L{tKmV#2R?j(hxnZ<5U^ zv6uAXc*4z}V>hfQ%%ZjbRIxe!zFis(9@QqnAa{$-l6u7cOWBG%Y;vzVB2Bt5k$O|M z<%+hgIqW9KG$o+2@?yIOq=*=G3mGHO9-jGCyF2B|d%fiM`5kdP^b-{7Y8I;TGVxA0 z$0nIPg=+9iijp@$`folMtD`8VU`e-8E5`rq9`RTTc8yXyaIZbi*XMP(W7 z6CMW>v*y>_4oR$G0o_jr!GGp;q<<0;ppiqx*|0sc|Mo5#n5O*=T*17Hk&SLHk*qjW zj9MHUNK-c{%9tH2N?R*AA+dOsz*%1;xH$c)S!{05-aN|Tf#(+jqqWNRn#sDmuoIZ! zPhBvJMfjN(+5^S{ z8gyH>d3qnbKh=3CuMxhSU8s0sC^x10gN1L<9roD z0ZVnZqws&CT_HnXRCQJqIoNgzn2S{%Cc&N^mX=TU6(t9s_GgX-SJ3Z4Sam9M)Zu%JLSV)oH z3hONtL0sfa~iXYpSjUVmBbi$+=ilAJC1@RML?tLkc2?5^LokM$dA z8$3RGaIDQcpmsauk2P$EjF{}Sma5F8R=AC3Qo?NSE$CO``z|g<2{+!VQTzVfPL0Uj z*C)?zWXP+8Vd$18{j_)&1iCp~6wx+VnZ;IQn<>%L#?kYZYP;u1R}9ph!&m0ZyPi>> zABbiS+3ufgxM~dWzf0VnA2qO<5YzipEmT6?%7DgLp`=k)l4ULw8C9_!aby9OUySC7HJ%TxUudGLqG+ zOLZ2LZXNQh|H|bl!QN6tzH+?A3vW=OVlEPqtCyf2)ulmQx^_Z4SQx7|2z^SmJoBO7 zi{mc+da9k3_LT;lDGt;mSErqeVf&JFwDY}X3l4>mM_=pAL?s09IBGKZ&Cp`gz%6UY zj@pePl*Gv+G#w);>tQfv><7lKI)E{6W{9^VP{)!gdiG80KuFH{kna0QDWvOMM#uRJ1+4}N-mlOqvA5hs2DQO}BI;TYq4G0JWNa1GUEx=z8N#lCT#}aa4ifLUd;0M2Y0hJKV+FpA ze}5#Kekvc!(ULKomP1Ybi)#J{9SF!zycFW7?laYl3@wL?O^m_YAE3WABEWJFUULZI zb_iH9iu=has`LCO;5n`TIf?k0N8_1e=$hcPPh*Xe*&;Db;wenhxi;;$)*zg7E@c74 zAg`wcZJxLY86UN!MWuP(hzN`gN~L+ntVQT?Q8uxld;}w3u>49WR$A5#7I{140?U+7 z^qbfdtCx&Z2lEZamb}?l?O{EeMwwyQ_8`w!LLUu&uN(3+y;-ewSRmh@Y$#q;T0io- zOp5jcR%hfH+h2%A@TR4a_DROYE3g9`TutI9Bc5z~J{tp-K2V@@f$Bz6qj1&Zzj0 zHn?LqYUpFkTOc?dW9`p1rpe71kn_c^{tHE3i*)n^Np3<|Y$9-R{t=BTPSX{}?g_=u z9rkcfojO5uKX28Rt9z8d6=36xDz6~ms{GUI1oLsh0k;T6o84}QvnxE2HH^p;=W0RH zTjFX5#S_EK9P%qq`I(~2tds|*W_20;di!3*)v1!RqX)1$8F2eFVwGR!@H~emL1OW zKE0=by*<8aEfRw|HTC-6dLEL_C>~fKfBcX^{jao(;s0OS<-ap2H>=oKeTR{J4-+0U z?wZUN0cTp(s>%ZH0MVo{bko?jk#{&=-Xt|V$uBuOqsC!yy9m>1#|Ul~)VC)c@sGeg(4!X@;| zpL9%a>GDNKs$fGi{z{PK7nWF8#;hSS&)kb+h(N**=0kG%33#t^D=@n$68{swXR|>n zSLj5Ea*^r3w;urc4kYz6rt-9q?DlcaYfmEDew6a}pM^)w3_EtC2hr`6;{<=>f<&~PmR|cay4CekDE39=#TiG z+XU4KrW^+6ZPB&8Cyn|71ErU)%d!#NpkjxMN90v!h;z2INfL=yk+{*TMQpT$(`*LI zJ?Ac(lIV$bS;L4tZLgZvZA%fLZK%R-m9)$|1VQ|X zrD!Dlg-oR5Q%&0O)~MDuFD9+20*I*#%F4nBsUr|j(Zb1_FePDoK28vF=ge8L*|4L< z_7G;BuCjH|q2a1IWsjykz8&&h+gxU*0-SGKZ$Cz z7A{+aOnYrwtD|l6>WQpH0BJf73l2E2>&MRIk7jJcMg}aHmK;2?1egO$#h{q3YtaA} z{Xy7y`7GdQmp>|x69lt^G0O ztf+7cL6d1#q9puL`s$p<+a~PDAkPYeaX8Rgrh_(@>^7n2 zEU2_-E+~XO>py=lw-DPba*Gv^!lYvk#nG{pfx!kBe>8*Vs2M~N47FwaZdJXXx=g_& z^Bq4Rosw23xyWlAG0fuh;uSvFd3&Wy6(NGb-D?s02hjWkn|#lsfYSYoT{ zSY+FKA(O+jPGH@ds5>k}Ls-&sn78w*ydoif2W8>szFEUDP3>YMDl&J8iK-$zC6z`Y zb*Q~EA-LuE=g=HHwiJ@4R8y<48cOr}Z5P}XXl}Lv9SOjBCV2-t;xy9Mtz!#UIJ3k; zqi*CyQba{vW>k-`qBdPRqYiKw5o;JM@428W)j+`kn6w`nLEIpth9TvFTbBb$727m( zKEx$IY3~a0C!nM$(s$NXs%r>UjFQ$Ts<=P`kEnxJ!jk*N77iA*$8`y8pNyKXB_gFE zm#OWRkm|Cb?lCdZfOzKU32^=L&=L8M(8j^!m3wP9i0PSJO)nzC%oXn%tj>PZnJmW4 z(#cs!t_h&z&4N_mEf!78&qE2A^dwRf^z4!BM6}R<6D_kfs~=gkK*g!KrZNY*D9V5BfX_L%>W^88aVqO_Q3 zAxfEzJo@!v<2C1I8oisgm4taIj-7)No+v-VqJnTd|3i<#STQZ{NlbOnlhjZWd|bm6ere6~w-X!xZ~SApliY+zIIJFqy;v zwn9%J;#CW7_%{RxaV5Nu_DTngJQ!Xkm(u`TB&(fo%<6a_*p5XSAm0s z*;Uq1C)5cwic3Y#T?tE`MZdel_5Z@UwnO*B0C<}TNl|7a0cp%mc19#?5`MUk`FQB8 z=}GWW#3Ten*?v*DpHO1A@=P&)AxfWI)GrumeLW&=DPnyT;?Yi8r7~yvW++9B)<`)db^R|2RG!DoYmddNbxv*eq zC1WZ*E?KzPC;GgfIC2&}Le?H~mZOwJ5k}zz)lmx}@XAn{fgI9P3%vL-hbu$m=rgd$ z8Tuh;eOj0HhPg}n_#!1NUZ~rQjbTRU(qcVFx9XPAU54^J*}lYDi=j}$Fgyva>kL> zFX>-D|8u_Lg{kgr{XHBS`Y*{zdjG%dc>krkS^`-4lqbCQHB%dgLy{>_g3;MPq6*m1 zTR9y#s<~Z7eA0Xv{_Z0n1j-|uCDIrY{|@-DXXzN2WSL>%*=Wtp?fK~*uX0li-a~-mWVgI?5aHyCg|iy5!r+RviMYULi|r8{(ra_jkd;+wK!%iaBM;c zf+nTZnv2aW$3wD~i(~f7R)OK#4?9NjbzC_+X>^^V0T2+&)w@JISNO;|vQn`G z_S*u=3HiX zyk`o9LzXL$ZQC2!I*Lc-Cwco55(3-}(=&vCwkVqOt7{G$lHx0C4P(W3%wk{N1DJOo z?!Ng@qCex1y|Mb=^rUF#ub_inV2?9`K0y`bmj1W4visIn0+8R@s;U3=1OW*i@b*G~ z*`Q~L1@H8rua+NhcW!25!FUJrpOwZDnp627coNrtsjayGH&@#KnFVXsh7#NuTKwwL z&`&*>L5hhB#B@ZF5R#kp5ey@8`-4cN*wFh65Hn-~g^gA%Yhi75RvnIAtvZKYEeT6H zkKJ4?j!;>Bcvo>@rnSDdl+$8a`LQ+mzM9FC+xE3L)yZ*{^JJ>#cfFb@50b`ELr7cY z%5ezbXw$OF!WXX@(YSd0*Tl*9roA|=ZI?aLyqu}kUfnmRa^BgrxC-1nyynE#sv_*a z;?M!E9E~2-uWeMTrgBzxO|U-*R~1hy?oGO|@>HC?C*9%EO&@$1Jd6qTSUrTZH9KZc ztST%tSRXJ?bxmYz0q@&z;c7l&Dt;X`{78q!-jJ08CnXJzuoPAKYClufrZI#pk4JCq z7n2C@{e$KzzmCRZimFuFB0^@ftB20&d~smVq9 zpuM19)=KuZGE`oVX>xxd5~lTvl9sBPmTnt>DZ=Y<)}o|aM+%vy)Zn9RB6)H+PiPKo zVJkihB;t{RjtnF$&s^44*Jv*>He&p370LXol3wvB7f@SChf%Prm(#ca(`;r`>_oLNXMopP+hMD*KRqsmW za6+BLlOg8VtVv=@3s~GdH+ik91s4|Fs))zjUUIY$Hi>MVlMb_VbwB$xHprf1Id4d; zSj{UJX5*|4IB{wE$HJj9NM2KQkMp;zsHm=~!Mr-yP3xLoN#n%Q!oicKQhTdw{t1&T zSJK=87f!}-u_pe)3fCuEuGXk};7s3+XaoP0pQM0aMLxbtWr>mDZ$z(YBFh0S(}a#J z{gqSznU!g}zpA>8IO`JTH?N}}G0wq2jKJVv^qE~D%%y&`7u@=N>zGZU$RB4VjoBT} zdj8K8Y+SvSe&sJ~Ba)XY%RF`A7YnQuXe#<((}j?~H>c8YfI-;pJigC~qoe-@p(K_2v?Bc1E1q9wpV zFb!v=QrwE`bFmC7`j@un4sw4d(MSUt+%HEaHK}3meK@IxIOn|V+SM2_ZK*J|$>g+` zKEcStnA}5)j!Ppo1t(*6M*DR9BRuEnS>`Y_HO#bF@b6yWtkGX)Nq=CAUb@#}XdGl2 zWZJU#>bMMo3m^+-iJx?GqYRxPup4}ZF`GIRP))2O8H`Nf54uC!G8)?IAsGEoi@mW7fzSCaZgD40uB$nuSt3lA66r$}i7^yco-ISc3l4vw;@% zl>1>X37D(nlKuW?MLerD3s;FoWmoO6;#57~F$`;sq2Pk3$V$FSFvw2UV`bUyZN0(c z@w`T@EmgAY^#m|9?&VHuZLzomUyAIc--Q(?!c9$*R;1zxod7qm|x1f_Dg@o=T?k~9}}0pzH-!8j`kwl6snW%j5Mr0 z)-B<7E_{ONxYl^-vfFo5ErI!BJ2Mxc)T7m6x1qI;-8BBXoMX`=*!YDNH&^Ap(7VY= zT))kJ{iozE#@}wo_vKz16v1kx;}`z?*~eOME9*HQXe^NF<(>zWg7w@7bmXB^0GqSg zfWZFey|lu=eU~L}KEQjh&%olo>MxdS4yq@;8#mBRPO^G_V+=-^=Y4ytx*@ATI$d6& z$Qf9@!QQDh(c4=)P&Xj`%YC_j?H>Qjy&h<`WzuNxcY#DM?XMUM^(OyBCF0+JmYTKc zmdgV?`C-#E`V=fwX;<`IAS4QC2o82ub4&)F17)6CoRTB^tR*w0bNZUYxJ34tHN?Emg zfCj|q+&!9na7-#0UabrXRAjaAR>vM}KARUhQeITxQ-en1Rj z3dVe296}Zzvu=?~^Avi6jrKIp%OGcY6lnQWY3ahoD0JzWDA(=VI#0}VFxDIHz{A#UXYy$~*pFVO6kO1Nd^hig7vkiWFsHnc2Z?N9Zdj>Cn6C zDNi%uMp$L`z9@+iW*=zyo zDxlilvF9tc!BCil#)(*e@=-rk$irp>FIgeY@gZk>xNW>@IqBp#-{qaLnLT!5;?h2} z#7`op+TxYHR;v_5$kW{P`r_HmNf$1*gBE9VK|CS}!uQ^V2QUAPbN!bcv$Tz~fPw3v zQ$0VYLdQX1f;L5{owAj1U^M>Wr5&Io8sA_UexoYwy^v_1gwuud#ZK}zwoz!3F6IRH zNd0tk>-hm{DPv>pxjvHMpk+9=lr#FJh1K^+mye{44@&QB-Ld)#(Yz#j8q+y-!!Bl) zg;r4-O|9AoSfM+;Ks+_v6<7KF%JqjJ@kj{rd*)!pH*X?aSfq|&4@`#0cKyQHJxn@bP14ev zUVmCI8FBzWm-utNWmsiu!=J@dB@k|P?f#bv_+q*}82!kbb zimm`Ix5#T~@am|1s>WeTXB;Yg9P7o4}dWopNm6H3VJSz6DnI zDuPatfKn^_UuK3VymmD~Gqcy>opf|ZK0!#vL~f;3un|{X;{Bz&>tRsDzZ{8nrX|2es-u+a?CUj z(8dP(Wsu!+HpAb^IOfP18P?+&4I#@lOfiqq#~^|RR(=dI*JoMz)f*nmMo?+*)Lsr! z^C*#Ofk-8RR3@b{^ytD_?KX2-T@(nSI%ZieD`~G*N4t3 zl}daUX+TPLCsfKTE3(&%;)Cr!DGEi}xYlb}Q>cjF&LMpcl7;a(bs=}GP)b3G?aWNV zDwZsEBr0&8vnBicj8mp!arGduTs1^O*Js-I)nP194fbpdxhhgoiJ2Unk>M)UYg?7R z@YVHh&h}2%_*M~Fw%J(NSUNAaJ+>Qf7W(EVrK8wv#|z*)sxk%k%zV}4m7KIgEUTf3|RU4pcKn{ zCvyC)#Dg<|k2UO8(cNcw)Rvv5tBzKci-ih5N>bLD5t(x9s1-_}nCN3|)4s}91=>ES z@GSq`k5v5kZ~vb1F`F(8%->vHUz8RY7vbOt1NJ<H-k`4ffN6>q&sT%(7Q%J@u>$^ z%AHRYYpPv#GNtjPs`^wMdI)Qy%-~b!x$VB0mYktY%LUIUWh?H;Yr<{W-io>sz7MXJ z)VNWMk(cD(2TmzzxdK|Am;S^uPI3!q20b`g@Q%97-_`HD8C0MMM9>@!!?uPN_@*%g zij{iCHM-NdV|oW0Al>-iKp8?1 z`7#q+Pb|&xD#)=(h2Tk#pH?2Oau`{mh!lD>Y2v=sEP79jt?!zCkYlTS=Co#U9XL6O z_AE_{S^r#-ZQk4U%3MxJ*1p6Ur^_MF^7ICdb~@B{|=o|(9B z5>`f%l#uT9#83eb3~_P8epTW%+pCU7BF7-lg zBonUFJ3LuRewmUUN-HOk!RnM}w>lPcPc7M-^F4%t!#(O*qziti3(lZ{k{~E*iLbtx zXCkeAy$D_&DO!{s6gN?Y_Z)w;FD$*Q;dqIN?S)#P2>?=ocZe{fO6ELgG-8`24@eb5 zHCo?=gw|s=8&O)MKeWBx3Vee7eUlVHDJ4u>3_<;Q*2WM3+ytf08NPYIX%k2QZhlbf zUIP3h1Y#H2_Q8_l74{Bds`-*&C!1{~K`R-_h9gh0VL|VTizEybHb4wqMuS*@UXSEf$ z9#Zh!T=gsjcn9~7@B$S_1|ZKbfH$AA`A)qR33a#8b%Y%};2p(>rrU@z;;8|srEz2P{p{g2kP!mz z&VoZ%M^+qi>7!?|(^2O)+V&>mWAijBZy~W94+RH+`h=+KXD}}n-E}Fv^he0G$JFZGS@_~%kSm3NO^rP( zyAy?>(HR8D_XqvBuqvq$=k-ap=pI#VyrjHj#Yt@(xk1LbshxZ&5jwEMj-a6NGfo8b z=0bmt9-a~UUGB;+R~;G5T=vg!J5YKpEx1?1d^I+rENAX;a643k^(+SGvbg6$eTq_? zlC{;td`;{~p}behC1r^C4(vRTKeuM96ZNUN?mofhm<4>zhMyds3oyB7L47(=xaq@w zT48+71^ZpzdzD=FOusrip??|rBzSTM#ZG=&5s=rda2OJ8Mh!W`0OoAe<=ym2&Mas) zgPFMlq}nl5@8Qmi-{vF`3<>yxCQgvFMa3Qd;14_uN=C@-pnLvwQ^L3`RX#4l=M~x> zcJPGeyJyWQxB_at;_DV2U1NVJ4E0lz(l?EOe=>Oy?4c|?&!kW5pc$3{5rwBfRXDn$ z1S(&YM|0t-GQN1HQ)iz0C6gG0bPM*$#B{AoN8LL^k;glzZe%1l)n1YS#mR?P8pmXS z#R+vGfdMJ*$e*5pix2GV3k(V}R|NsSg(8guEsRnhBwx~3q}V3o_w7{5KGSz$XZfhQ zd=D~V-dYe;xp$O$r~Adax|#&#I#}#c|je* zoK&V45Or8T%?0U~XrpiHSwomt*v9;ziD<)+6~mC`!Z4UH>8dO(EvM=|Wu@7b zr3{hi=dGkZs^X@;#-j%6k2?nrH`+TXJy_!~veAdQ_~~8| z$xB4>66Cuuz4qgOW5}KlmCZ!PmqK_fHDQJuBx5om53EJ*rcglZu>Qp;WSb$EN53^( zutp{U7_N|tSu==b@;X57So-DY;PdYf6|a(sWewIzN44ojxq1-Ji7t3D!S7?;>Ju~Y zPsL&0AP;>)ythGg)UdDFdzjFtBrS9~7PR~x5P)(Q% z<{$!O)D*8&%P5_NjVM^>B2Zx{;S$J_m?UCE%A`gO5`Eh75ii7ekwchOs7Cd=QNs0@ zu}bm&)J!03#3-p@lIG}%^?EXWAWUd@hS;`93l5oS;Taz?7p>65a<~i#lmi6LoF-6$6!4Z*)oYcbHBR|{~uLAjvc zc_SP+v~&6;#$-j&Yqlf`508!k;u{=GqY{$2P)M@|s1*CT@RywD*0QN_3moSQ_Vc1} zf)Cj1HSY?X<_i`Tnz;U%!e1N_N<}IPGaV{)a5)psWF(rZ3Im+Vgc0f+*Bs}qEk{k^ z@sh0T2=sQIW;Zoy7lds%h0n^v_*n7f9k&VjoUtzpqsN7p^8(qa5H_Pd*Q$7%;MUvd z;_y9D&>frz`R)~?3T@_vlkF}>JkGU--T~ud77$7zSo1@2kCl!xC}^Wd9dR_SM(J&s zRw86?i}=>)@JZp8=jd!@=yLzUyV_L#<;%9s($n`HiSl(5V>=|8_Y>_7Bh5w0?e-N~ zS5c_fEOg#B3N0rj>VKf71IG8Vc6}*-j@r|OMeN+|c)pj~69Rb-y+`f5el_P8&Ny(LgtH*)%lRs*!j^&YXRzOwMdVl#OKS97g4kLP5mIz_JpXr zf5eXUgJOEo%$tN1S_Q$dtC8Tp(a_5KOb|a?x~*+s^?r3pak(LM zcy!;laF`$w)(8f)CGeeFPHQjgSG1vf0PobP;r0I>3;I73w?qU|A}t$)K0{j$J(OYS zi59kj=sJ+pAaOW6wx>5P+q4O9OsAj0Kh_Pn3vPrP0qL_)-3qlfA~A-RZ;TuWe2Fhd zG;V%up&y>rXtfZQJ(5wr$%^CX?hB+qP}nwrx8T<7Dss);Z^ov+La-PE~hx zRj=;qFROYz-Oqj9_pA{1fKr22MlSE3MH$j`oRoL6=HSzbAdU`I{|CvIqJwjqxO z;ZOm@do6tP9AAB%dLL9As?fu;lCy_-G4drfabBz3*`>3x9-;4maa9hrM;D3G7$ZF+ zQ`9``#j_rVj2@bMS{1(xJAz}K+dK zoc=P`#+RlWpyDr8^v!} zkngWDFKee#SMZk&6+29nQDRYJ>|Ok(L>G`^I~9Hrh|U>wFumLcd#(Mq8+;v0_8swL zx>_8%>8A2xHWa$eq04wt%U4?0zc{umkgJJts`K4=G5h0%Zaf!st~umxX~20af9X72 z?Duw}b5}MQ;w;X)wLa~325Ud~v_4UI@lkh^pxD{V+>u@5+Y!sW<6!RLP9St2q#fu~ zN%#)_9jUIBeFr>6KH29!6G7oE1r<_8P8b#yIGz-l? zMGG+1+Ow!7ja^a~Rq!VbVpCTvorn`f*Ai8#B+b-Ls&y_k$q3sB75_qEu5b>tzBRHb zHL^*-d6qCm_le?0$AvR1SijpW>~wI1@06$OY)sdc&c&~z(zxc|!#=N1_w^QS*T1RA z7EU|#je0XUG_F3mXKQ!$&wk}L^f}sr`oJ1vLR6I^E7Bq}YBGUh(AuKw<3{Xm4W3Gx zJ}cVJ;4DfJ?=>geaZ7R@nDctjLVb_-?&S~l73+q-0MIza8fyHWP4W4TSl+s)OP+Y+JjO2siinJv1h4pMzG#c?v zY;I|68}@WviH> z(ph}|)G7gx>5QJgzK`3BW9b8hP02Qvn!`xtH8k*OR(JkWwF^ZelCd37d$>TGl!Zo3 zyHcuO?iE91V8v1)hLS*T<{a*VT^}8uhgYlMh_gt{_HE=*7*e^J*P?YXqvX*SeC-8G!oe;@m=yKRGRj+Qb+l$K$%+kt z$p=&3B_X-N>}ln4qD`?H~#pOL(Eq& zkUwPk@aI2up>MT)L5H|MeiSMGJE7ix&NVBVIJsE=&%n7tB^$YUc@*EPt+vHIvOJg@ zu)@A0Xw-b~ScGH+eSe!4?gJ2f@ns#2+6K>c*{|5_#Xt4Ec@$Hwpd-4$vFG6^He=4+)!hyM)90#k9N>jGTx5myVtK#r?gD8F-GQ&*}ZTo|EA z7@_q$!u&TQN>oLc$;@u<>;(=aw{nbe$~(6oqpY#JXO<=u6Abn7*`59-qAk08jEVfz z&wjwvHh1o3xt5(v+@jz3ncv8nkjBSX9Zcv4mXPb9EABL;8fIMK9W~%ImKru&%+)T& zR`OH|%mX03?I;nMt4MWir)OMqj8&ztEdr;;s{JQP2zVJ|?hBh$ZW;2yQMW_`!DY;T8= zN`C%GRVi9oE6_W~pl&Lz@=>KfV#l3jE5yf;g4aMiaLOvoh%x%OFCK(bRfmT43 zd*}7|IgPKkQu&@(Q47Q~*xXatB`+0GhoCIt#3yeR=p&G2l1;!DO@0992on9|$xE~) z0&3}}%*AhHvYVK-k%7q?cz5A9%n~oC%!RL7`Q`A0xEx?`11PA<=u^C6^*;zfG>NJ? zT`8~sM5|n)AgXb{>Ey?M8$)5-re4ga5XvdW7S%C~X7XT2I*Jc24*C=L*jHIjkI zFaN-p08mvy;8gnoYFStE(H>*Ai3vw{|EJKWpeGd*3k%d>(3rdDNvbc%FZglA?kr5F zOGypWX46-fr*k*&YcJmJ&zFzrA6Gr-z>}-*>ReVw(43n~b4^*3>zrcE(byWimr-j& zHR)H|W|peiz7;v#w%J!G(#^It<1>>P$N>l(>psHVRfVO@aaRpcMw6RPjH?TC&iVIK zB}w!1Yb{B*nM_BS69)zNWd3ETy8{Sl=4k<=7M`B#VJ=@6h5(Lx@Y zOTE7H^;!kU5mdNc-L7nq#UEU*_-9HV;Z0rV-mi2Uvyb+J*IqrDc-tvNgJu7k8@2WD zbbEp=Gt7H6I;_o@RkE1BdhzX zNDo8jx~b>Tt7O=IXfto{Y?=p`a>^=E(lc`h0WBHG03%kQ{?yW?Ed#((FZ-7H)oI$4 zPT=G#<>V*|x~Bi3($lQg&!XR~%2`Xkl4saXW<#tp=*AySis-7dZ!9AU~y|LzXlB$tuS1XO=H1M+HLxoPEkiEUgE z2Z=oAzHNxX?~{m=s-84u#$Bn$p3atP;HMp5|5v10;{`=TC>pB5^We`MuDE79ZhrLOS`FuefD6fshjC@%f zk5g}Xq$_nCmB6W82xIB+{zxM{pa!2uc&t_q*#U*g_o8EBqC0zV|wa1J&d-6EwL7i=KpKaq* zBNi_inOPs6cq<&m(*gT&-?b#-?Z-Yxpj->KSVNWcC&qHpXbaR&X86~t)-apR$Zq|= zE-dicV&gri4diaJ`fih;k0eiuDLtRmCtsxwR52o-vjj0emu7TKei)&;{DwG;6f_6? zK^VXW_rS`-2Pz1-e1ppyP;csVx*aiONVRJ(pxgq9;G;S=kKSzyWsqTu| z3LxDb$LM0PC|!c43`LCQRKzlY`b-lzH<+o1h$B!0{C+~a#xAUdKlH$9VWcR!mGrT=8+VXaKhoDP{^*Q^M@~#9yWSql= zKnk(wkD*bb+jn=)A!N(r3mF`rTkh@(On+stsEf=Ie2B7zQs=!{VX_apW!nLG8nZtc z@AhqH2no-t`(Oluw{VJ+8yQFZ{vDHhHTZEATYUB-oJ=cE~#cW7J@Pzfq)b;0ahY6!MTo`L?~&~ z*cF&?X-Tu9QggvFyfR0xkHE6BQnTy<2$gb0v7(WlpAu|3Gj)=TXD&wn zZgQgYY2z*1>H1}w(=D5?{+#lM(hX3*p`Ux=IzCJ@n6i$;c^Q8N1W{R+=6$(szQnRB z##LI70BM7`jg1oV5E1Jf8q3@?{vDxd0>e$jgeJPSxGNEy5C)EDJeolX_Drj9#qsG1Zd(~BhV5vJ@>lbT0r3Sqghcfw z6;{eUvlS*3oq~sqN4uU4V}rf;&`xvCQed>!yiX0t&pjTg&@clD#ZQR zDFO>&q$8(YENK)WOqfwa`b13HDjqFz7|y$!oVvHc~%y}nO4kgKvI!i^I#Qv$#JVq zfk~>Bf6mviGDz{_lr2(LZ~e(fUL^)AWXk_;bR;MuT8Zq^Cv4_ND`oTyWCNKn+ z1GTUElZJ^dF+ytr)(pEu1H6jlj6H~0bRZ~a@LmPR<3nDp63eR3vz{Gc<~xZ=bR`rG z29dscu-F55Q5CH=0kIxwiNaGHnl-L#F{z8Sq1*SQ9EM#rmZ&gx>{FARE3gVKmpaIK zaW$u@ZCd@z*2LbWSU>(YyAi{$J#)Gu!$$I|hU9#tZ&6YnngVdvmubiVq^BQqzL?Wy zImWW5?&nQtD3P%4X)~r=%OOt49yB-A7%-8#2|!_Re>D=fqhBSPJYlo&M44d@>fOZe zNx`OJkkdt(5Nc(UMFv+Q?S!eN6`X&7*J%QGUC!|~+r*XuW|+XTzAc2Unq>_r3st&( zJH?pejVEufkx+gI^-gaw5A)KYGKD9aUUh?tJz(2!|C0?rsC*2)2p>NF3%E;e8B@t+ zdR=stfJN&KHH`aKDAzsQLyOhwBwCp9g)vh^v{XkJ-$hZyC!#LLLMU2G@RUHB0h0a( ze|S0&Oitb$sjUjbAkzS4lix6?rVp=pqZwAGuj?}5aVmLyMZ(!ek!aDf-QX%@Y~PkA zHBjf7^On;XE;_{UiKc+=9oTE2L$9r7mTJh0vfKH3WrC=?scyt~jGoagC2m_YZhP>Z zUFG@uDd{T<(ZtwJnoVXTtKQfTMWZ9wx-Ev+ZWJ!WdtHc4Xyns!6fW$&h5Za=9w{5q z)?wFVJV7ll4^QK!hSXDKpn=0Gy0|@YdowQr4ZUga{p(X`?+-tOWMYUVlMyk1n{c1}7gSUJ3J-s9%|9B`G9diAWDMFG*XV z+FWTV@8U(0>Rb4dUY>x~etq%TD6~8)oV|ph7{R9V(|ea~Q!WdoUK=$xrYspOQCv7u z9|sc;;uc+w_Ei89&|Gp{M4xY`z2pkxlYxcwDPot*8iE3of4zRhgcS=nlP())I&1jJ zfD;4c%Fzz3wlI6HwAiZU@NMpOZTwb}_!3eY%S)w8h8H6{t@B`Ae9Qr>N3L1`vk8M= zIZf+)Z~^d=NHd}?vK@}Fp*Wh~6CFzZ2#)E(CY5U1U+a5ra8J`ot4AHQxaDS)6Wna$ zSn_xzh@6^sa5fMir=CI^;jU?kKTPG)PIn;9T}JGKU9X8iqt8EO4?Sgft2Ow zD_{@M+#UcKU?=DP4RK3bCtPz23Kbd&fk@s7Q~Ur0kO*cF^h6z;LrjnoW7PA6WtSYD zA?b`#J%z1^mED0m+osJN;GNTIk@Lh(FL0~T@PyYYc&b%-{UIm$)ysFmKU51KTAysCa>tihA&@rSR36Ull{txk>KZ+mRC>d6;nv$MZS#^-O7`)S0J$=h3P(Cz`gK3>1#o7JCn7{3DT z&Eys9wL+K`?KkfW&B%1c0vN&Iza@@HjvbaIJV%MkP@DC;j@{zr#JisHgvdM;_hb__ zQqz?7&38A}-QByueU?Sd2{b(cth;|22gAN7!i#&t&E7YwyC=xYE6+Lw z_VxRNEWC0D{RxmMSW?LA%xP&(-_z|dRobvp(nfgm)t0fJ-`xQd-wP5y6cOKN-aR5M z*{k2#*Il?%q&cjw&6xHdJ0==A?%hF606W@e(+%bJKwY}G+!#mS1M=l%bHZ=-z=583`r>`fVUYr-*VN94F%FYL>lK7y@I_f$X1({uL%#TLL`YgkpQ;aw=v2Pw`K z35?k;YY>r<jv+yt=*~zhl zoeUr~&8#Wc1M(qlf9=E!z%+ps)e)(Te_OXy~mDzI!%|P4XsiQH5QIj zPm8m$R9syzwHA5&+O}ej#~dWOTzyb45VX)tbo85%l{FzekUBOr|v;oCkVW!~6ut zY&Mn3ebJn)C;Nk^2e;PP1@<0x0TPmM`jB}Kvo1#E8F2DNkcb81|jWc^Nuj=7Vz zo@Z%1Ah!rjfYIKR(r-ZxagoNl zIDGIuL-xHBBzqMR8~C7DuoZpBKbA({Skmm*I{<2)t7-c3W811%ImA-Du}EWmMJZI& z+;rSIu5%(V1vQ%UBWkuWj!hSSCW4g81zo794bMltEtKU8R4;luwI1{gn)D6XM+qgl zmhbEt!rjBsXtM&uY&yH;+ojbcrh`ibr-1CsyvL7VX1v)x>hZF@fs`0iaXn)2WF_R%)k(uY8| zjQECjOCZ;F)tkhM+zKVMc_dcbKb>Ge?d9f=byw>7#-2Z;>z1KR!YhIFZTr z{x8th|Hm2k|D~-}H{FyMQNJ=XQdU4QQInC@72-Zzs(f$HC+4b$ekpwZMQy|B83>k zDy3_1nr+uVeP;SRe(%@WU9AtKzyCff=Wv@uk||9=-B#GL z?U6g-%^s|qZ;hwyH*EVyO*T~SlRce`F!RY-ts}6o0(<R=Oya|9boCXa&T4zfo?UB2M0%{f7(%=W`${)EV4>WkgU5bcK`&=1fgx z+~R*%RGo$s0!S4C5z&9P_7@S)Xeo=LSFzROZrP>N3Hi0XiiY!oHF>SEMXogdJ z%4Gk#hqc{mH{mgfXe~-ylqaldJXz_qp1}Fl&ty8VnAs`qu2GyPMRc5&DqMWpQpvax zHYP$b2oJiacFyu16XZAn*-daV=1PtCduK?Ruu7!A43yJ_(>E20OBd)B-)ly>F2oZC20*3gUUV;N@V_ zmf;mR$n@G`U4s4R@&9&h{A&vE28qJLi!cmdXK9SsRvx zs#wA8QxgI({Q?MHFbOR;nAmntZ~NmvdEYgu-~zE{nInT~;|hUJ&EU1l{#LkG9?K|- zeU5qmd$mQD);OgAVCw%CUfuqbHyXhHx&zC+6M24L=H;WJq}%9k!s4^_vAun`{UW+m z!7VzoWEYwTYDdlIKGzOh2@PoIX+}gu1?>)y97;Wi9PDGz!BtJGKE9KsE;M^}USELt zHZ;WowLN307ge)$o~a2)B;~EjT5A`=htA4>frsu4_xLPs|%0TctEAFRd^f zwO*>>W@_8VfKz3C6)_{Zy)gzPSHP^!T+$)LZlNl zL0Nf11LqVa&#vQzIo`gslsRmJeoO2xv2i)h3QU_jHX}j;y46=HN#svwBqY_s)ZvPR zJ?;DErrD&>k?jO=TnRU5|KE-LvU47j|ZGT>r&Q=qhazp$vv7zur$R3wR;1j5Oc395?H5vl#z6zki&X!fgwmf52ew9Z={0BZmP zc;0$`GYD za8Bgj?o!?>i)#6|qT}(hiJK6`9%4zLXkk>@0}tmAnBU%+JX}#wFJ!8t$R)|wIU-%* z5C>idvyjf?@hh})2J%@$A@4tu-eWpme+D05;w0klx4eUz9TY!nf5PdFZ0}RQK)k0; z`^9GO+THO~jX*yKXP_8(C=48uDi9VAO7c}F>4j;&h(!mx5#B}a;b|0y`x#CypNvbD zgIFYmnOsWuXz`)Wj^v9^&9XMSBr9-*x>a2=&t9J}JJo_$MgQH3G@vYh3Rqg6XeBZC z>COz&IHEtY^TZ%`2rF^|BAxPlM8fx~Hw1D&K>C!d4H2MGtuiV6m*d~rkDvMfaQq`i z{CB0?e-3s3cNW%vSI1eFFTT#IO8D4UhW%F^7YF!tduqzerp4BNd$pPOC8F<2|3oM+IMD?7QmL>rqPXTyO9%^7@v-ma$z1)h!W61|XUoOWXAV&GZC2|&N zkIKnDtnzO;P0XW$?H$*YJWYGI|Lqm;b%lT1vZva1{O2_-E4C3 zXZRwD5W0_(FSBjbac?=vi69kRedtTLX>u@KmnT++Tg@mlS8JZiNoFZkG3(!~iX?Mf z^bfZR%sd4xwm#ME9UNp*#ZhmG#m21ryGyvcTJdlYdnTbK+PokRjM|t8r$WA`YWp)h zlHo{Aqr1N?gyT)32xJTPKD-@$xZ*rkQc2c9>p6k&oPgiIF2e-=z*Wq)%N>c|?F%%S zZ@jm!P2CM;z(gCdn{eA3k8;pZi#b;RH2$eZ2zHXYCO zo4g1AaLYlrLtU`@Eb8KcLK}QJO*$#&7gk@vIa+U__Ej-f?^_h;faNeDj)NPhPM zOVtGql485D6NMBLsZM=2cdg0uaH#rXzmvuPUU)W9Ke}dhW}5Mje@#x6rayJvA9b#74;TA#J`?X@>OZXP;*$l5J)MSE8B z(4qbSOC)c>b%D+-X6Nwv43gCgShoX0m1-oYby;t0(T0wL93DvD0H!8njsiwo`N?aj#;h1cisCwglus*8Oml%? zM^jptyLDNy(^zF-(~k7o#1$y-@^GAaTJq@CaZWQr&|pDgFsm?^*LPh~?%-|(3_e11 zfMbEOd+;@SA;A1V0%NnU-*+%|K?ePbKyw5_*qGBzz6Bmd)$u_UPJN_IldfS(pKTD9x#UnQDVMZXnP;5jW9tyOQW5kB7Jh-6I6h`7 zJTq@LSzQvbK;R^C+vj0&FG*aAmd!+yo?9M83hSHPu3wd(Mc%<3$HYmr!r|RD>T#)) zkX4Z*?WH8z7zG*f3nZM7AJ&7&voc|ji9H>jP};FCOps%{UwKYwTj>rRi{29J%`G{h9oH`*hpTwn-9 z1&LYvfmWlKqyo3ibDZi6LT>0vm6Q|4t1}Ebr3b9oU(XLhzH7{Rg~I2thJi$*E;?ct zf2a&P+v2oRgG0Td7=;xDuF-Gk5{p*huT*7EYR6!r8;K55-e95=xN9St3Ra9L+9V-| zoTNF=%GRPV9PB@*Z@>V+ELqmfnDVc|{n7Lrh^b7*6O^%<)uN_1ni*I=ofIU`pSck! z<41(88%e_s&DNcbA}Lj%WzbZU0f?`VxDpgCBXOC(Q={y$LyDamMdOZlUkckPGMZl_ z9r{WQBzhek-WOG|Tk8B|u>tPBw|lz(XvcWcD8op$CwBDZZV@+^r2~8f^p&Fq0b8TR_dYg_On6msDtJypJM6%$)p@a;Oe0eiuRD<;QYJ*>PFr z=;cpZTZW{-Tlg1o3N5e6!_3DU0~7@B3ranbK$}f1S15e%g7^zdA%&(-4dj5P86`+9 z!&zCVxsn0{=LT2e6a4kKN(?K<^*Y1mX9Z|{<$t~B{Jaflc;-Mo%h9)?kfmb2VZf6R zKz~nFf;nvv%@-gf|L9&J$EkpOAlQC;<1>yef5TI%_>TWZQ;uF;y;Ww58e zimyzDVX;`-hGDVX^22bKpVwu)A(!!rbi0!*h0iTzov2R=5a>z zya1RsmQ6jFJE6L&*u$ZK7?{w!sI-Y0wptnZYTBjdbYKd1Xz|GuFXFs@!`dD}^(#L^ z3f4nXCVCd~V&)({?`8^kEB%m2HvAMJ)9GfCUI^8mHsh)0jv+7>zsw6wMI;7kbTl29 z`OzpguyO<3DmL(ZlO--QK|-vE9G`;9$dn*$ECK^JTd7S~L3O*pu(Pi1eAmL7#gz>h z4g*h4$AmIXbu2nJgT`c&R64O=Smr)=M}&Un;VW~JW-6gByk}X6tRd3nb$BQqPngH; z9}e3_K4B~24i+GL+L`UbJJq?0eIZcc$66Exv8623HI+1Ph&Vxuu)Kh`+Q zFc#jjwcLq@g{Y#IrrkddGnNaC9a*3dXq)?aiU)t(=YodS&s@&q@F}U`Ll2w1hBM$4 zoqx-QB^Bf-o&n^U2I)9*8yJfFl4+1MuS3rc|K_EC@mJD$t>P%%Fn?5;WWL)zo;rEx zodYS)a?2vFIi+^s@#$PQdAdK5K2aj1y4-DPVp$|aCbN^7cdHJ|qc6dQ<_VfRpuNI* zaZy@NtrU>7h`|yr$(bC3thJ!+m?vC4->b*0C1P^^G(?_4n}~$Ft(zSv%bjMX{}WL3 zYX;KVU-sN6H|QH+g@~2h!c`Uscb^v3Ce<{DL^o@^GsZ_^9~vyeR2Gp^Iu+&$m3Ks` zN}_cRd+=D#w|MumZ5=Qvb*7>vmp)CPfUYF4=D^B1nX${hd-WeHB}*(DrM#!3Op)ZIfE?=3v6PI~&G*|m5*dmF(Vbb^4+e6EmMkIN59d9$}oR-M-;2sRc#x{VZCd)nK4Z|F`9X>bZ}JBb@!Q@@EoZlQSc)W8SL2mMkeZ{fG!rpSr zMq1QIRwc<|;Z9b|ER_Am{<)vODmY}F=wgKvnYgNT*cQsbmPWmkql#(Ab|R_q)*3p_ z$GrH*-6yURgFgE-TRR zQ@E?QhEBn@Q{LUE2i}*ooRE$T#!tMTwDNoTbZaBIopYWt;`4Z%TthjT1!q_uO$Y_HN;W+Iu)VL_iZgZ5LQdk56> z)DK;sYodCy?5YP^jB{ZMsu7S0{#4^hgH2-%Usn0q2Z+4+0UAyR*dhrvqBGX4xXOm+aL1H%f0Bo8XoxAVoB>3r&VjU4*VGO_|r#Fh8;btwilU%{VtDy zaO?%EEinya$ly(RO4u7=7?qU(4nLtfN=!nuWhRV306VIC4(*t$-W6{&hJmj#7Lmn6 zjdP^;sDCA8WuL*qypyfm7wQS21}M@oC`GX`iY2`mlWNaPN<$wq(BqV(SD8*R77SlA?bGnn_U*4W~Jab=o zrf!JzZ6O8}5;8|EeGKugN_6k3{bTQl@BB3O$Azbon$OvH9LopfPomGjg> zSfZi36A}v*i_#3c z)dOV8_`fQ9;&8jW=wuiZgDSTEL~NM0l&cFmAoExg6nU~P(wCCTsE?x=oxP4gUeZdp z2*`YI?y>`cu4r|PisBZ~f^3w8=?O96M1d53q*Q*ifr&QhQQ;1d>tyjZE|hNqJFX(@ z6Ad!bZ%7JpCjEpJ83%4Zljh(9~-{c??IQ#V5vIF?m@fkn`|7bkz3B zcA_NZW27wrC58w(_1ucF#P>qj~dQ{diF3`MiczgM%9BZM>O@5k=cpkIleeafw&Bgs9ntn>1;I` ze?c`Esk#dyl0aj*q{ddmpqTLz#6}Bqv_*HWh{ryHqR^>U0V345_nnqpq3rH$)*L5tzg8UtAoxzwI;v~o*|NXd(YW8R1VQBrp$^Tk z`Ndd8$yaCPdobP35o3N-x=Tkn1zS7ZCY&X+3-=rp^flJ!I>hdMiwG+RDNcmRqdLgy z?T`*Dw} zvTnkQnI)CtIq#*f<-XEK1O-thg3c+#K>N1PRgpR7|F6W+bPH_328MXk7NZNcJ(o2~ZuRk))r-%nd$`hIYL zF+K6>u(<6{u{(n*f&_aiLm(!N)h38&N1(@nkxWUrWv{}*+%_V{lVfcYzOY8o6--^-SqQF-mq`g$f8+B{kHx6i(-;f zH~LAssbZ@~tAl$L&}Y{FoNofyIX*}i+d%A62bT@EuydGW<<1$yrurP5*@|X4DRLtz z3hx=C>3WdbLdwUaT5~pF$aMf*ZNSCzi{?32HU3qDV9vaBMU~IAn;}-_*tU7=iD2_F zX?9YqUyXMQ-&M-I0=Kl-WMti80)-abad&JCDLRAy^6T{G`z`&;t^fP8xUY9zJ7)In z(EGc5LiI8DGM`#Cud~Uob&o-AhBVi_n5$lrwaM}=Xl_=j$x87lxrDD8CcT~S+8IK+ zu>1~B%#yilkMql^Bomrqdl0|;Fj&pEA{igst+D2J*$!}79~wg-vWYx%z+WH?=by+Y zgwnZU44HT)$-GgHo=DIq7L73|>Jc41l3jp#?NLc5QeF>I3CQ+4ygw^_1Y_JVvmw{6 zK{f)F;?p@qytlkYV$^dwI{7@)VI9AXJrOM)klN<;76(ERMs*f5wo{hr#?|9`_k*&O z)(pcsd??4Zprp2GIoQ0Q{p?hH>PD1M52Jy#CTGi`kq>#L3=~y~?5-+Ejz%Omh_ryR z3_YIaLb5?{w)%`cAe78UC6jQ_Mq_C>X@H`TJm}}edpVcTH4i_e4J4CP91E-kzG%u1 z#3Aih{szgU=wd_L+;J5#u#S^?D3V6Y+!cVkOaA?k{!Pwky!m&HsCOK>cPVo~Rcg>p z7$*~S?iN+4`Cd0GguEqVWhyBX5Zqd_GPUHk&n3C1%GA*k7uRaC8(#pR*{Hjt<4>&E zkn9cbXjW=5=^q~<#coziglJ|;`9)t3p=SW!1yJ_HJ$(T8oJ$|cZD#nrHH6^_v46rV zUEp_%=Yd~;3Zgt0tS*gzD~)eN>I2U114r-EJG&#LE&g?6euHZDh`;e`d(ZS0&TZzY zCE2&f_Z1Q1TR0Tv+sFJst!r%GNfQ!o;V&lw%!eNOEb_@j?c5n3Tyc;+8#yAl=_`tc zs79r*4dls=PzYWJS7tIln%+B}PFYzN+LmC|V#2OCgfx^IOHQ~Xt|3KI6L$A1>8Tg5 zYdzNq(^4V4O6*Y7COJ{{H%P)mL!yj&^r9|Z2OHB_W3-HV^@1u<$0Krq`QTYYlY9PF zl}(fWY%)r&-$T1id>9@O4vlg8OqB7Tq6G7mjW*ltAxe*$f_1mQ!TG-}W>7Nqzjnu`&^m+_}r zXfKBvOfRWnilY!c$wveZbYbnf=Z)U=4n8(-@M}7E2YET|d4 zRfRDT>#^CxE&_??Bg2qFr$#hV<7JWgvcC=;K)LBlbN zs?>eev{jEsJk6dNP4C~bXdKeTcmywBMRdy|^)C2hPWG7U` z&}Y3rof>_r<~6g&aaos7d6L-;t5_4PM61}{=~5%eSmKMR;$`iK{54jfzXbFqXZ5Jqk&eOXtT12P87Y+sOAHgj@7xxU^2T0Ya=?3ivOyRtecP$;j ze95Z@D)*>1NUMf?_ONhJmiG`Hc=1r#cfe#*bP=^~n_3XFLu{TkH~!cSR(7!3Dy`>m zx4lQ?qTR)?R;r!wyZ%ko=BHG5Sj;GK99(WtgJ79oRGB-Mah4&|8CTsI@xb+~rA#|{ z6N;7(=;T#`GuyafWzeXN z*yeaHt3Ch+gXm@yxDx7E8=k++dlU9nBYSZ~(FoBT(&-*^KPM)FoP`K+6UPyvHVESX z?mD9XNlr^^%?fg{h>1?Lri+suL z{GEgmkG%3?kaOO9s87sVio40*lK(dE%Y~2y8s6`H#P{cFkC4v||LFPMtPpp&XAmtd z8)@NEcIlF!_^R^6RsHnQp4{0h@DnF@9l2tCzG6MTVqK|Xow>G+v|iV3E_*JVGu)fy z=&CsukN>Xl?T0C!v>a$PxH5_nj=fCmWbmib>@rAG3({6maR7haDH5rOgn5Bk^gD4n z$_>~@AsEo~wPpAZz7kyqum~nFlH*5A-_oWPV<89W)n~9kAQjyS^}+E z40f**6;4i(Nbg9ezbUbHL)b5>9kJH~*e|x~1OcxP^P}*OxbEVh!Hz;%q*-KM;2&!oDvA%WOF!&a>CqC z!nUusU)}s=el1sDgpPTzwaAC({`{hF8z{W?-5B+15#tD611%qhg2o|Re~LN$amHF` z!g3J#l)CitR1A(EA;rmaQ74IiZO;Q+bm)r~CVH4z~{PMD1l# zf+v+j$4^PL1r}T4%ogn`NbI4gx?yF7{23!c=#a=xRjYi#+8jzo4z7)!wTe`E55jxi zH?i;hS_o#`G^@YryHl+Nv&XjD1Z^?5T9j!p6#WV6 z_a_^NKLLGkc6PVkZvcNcV&Ccd>Q`?Rv#Hq>-|;`PU#EDFv-m$h58Zw!)u2kVwy&p} zwzn_W=}_;lO;)Y1HE#M8TbOxjRn^aqFR1F6t)FtfxnABz*)-(Iqj>B1nqO+AHZ87B zpm2MwGar6kQ*ft$R4cV>sg6&nbE`U?H$o#)mlM30K2QikRXyxehlTu^ZDwvK*`N-Y zQu{WX?-Jbp(2j<)6fHDRwuDl4BGsdlVx{GVtx#XwgBglm<43jg(nVa2-doUv8$ z2U*P68soI>&%W4Y!8sP$O>D?bEnuI6a4gZFVk@bCtUTSd`sy!Bie!CxC~Wb3n%_mW zOmRe4SuP=C z10c%1DfgEY-%ge>Pd4dM>XuXykzM&QPHj#rlPH^0fh&`!z?99Xz?5RBI!F(OgefqB zY@%KBs=IQzn%H@5x>_xHYOxirH>|mgyMR8S8x__658B=-O4Bgg(#;Ipwrx8yY}>YN z+qP}nwr$&XWJE_*?K4L2eY$J(Io*BnU;Vf5xA?3%*XrCoXr5%nS@e1@)uu!!m!oYE zSUWtd7qlJMov#@ZzyfAq$2L<-;r>XzmcFs=8qAOI;X2`lcw#-@rN$8QL_-|XctD?$ z4u!^wpxqE{8$HsFO(P7U`h?%**gg|W3 zgH2ln0%rE2tKKhi7)b6R^7cT<4MNFqjU2+-6rntCbxU6X(7FJt{2lOl57|oCnb_5G z)$wN#A(s_TG!jqJm%o<1e&fkVlo~H6N#$`3$4sO;LNSVtFF_&`5)adtO(v%V4JXsT zl`XDbVLE#vp@q@phe=S~RZ2;JSQQB&t74w#fIinwg9=o})Mp-#UyB1WG%W$2lY}ZJSx`FpI)&$PA+z;dNf8uw&cWedOvjGUrZ%+xfy4&8t>AHhvgL*@sq{+hO~ksw#S z2JWnse+1=3HT2pf`$lnJ?-r?GY!bC&40nFpnz5H8qT!!^om*b_$f{K{ z{g(}GK+h}&*LLbyT4}>J{V7R4ge+*O|63e`S(~1@dnRgKs0)vRu8>w?1YS?I9Yz_8 zK6sK??ExSIzwUZ{s(pYvI4GLaAQZ>8!;GPpK)_SnN8Pg~<$)pfxYZ&r&B=5VTUG0}9hz!+7n5sziNMt03mc zInybF6(gv^m$oLE37W71FI+A-bl{?p`@sfX%52D<$|p(h6rycNU)lt%^PHrl#1_&8 zXh0A`OEgSP3O+@r!Spz+{OqDiY1}+Id9BHUJ;@|Q&r*!qnI{}6UKVJIYOe;(nJn}6 z2`HX_+A7HUCLz?Rg`bL>c!FMs<$|-gWy_==hNcEyG@0o_?22$8(L3j8DEO}~wLA0C7`aZ+uEZwMZ6Gzf zL_|X#gHtRokwbbeFoq$m^!pHcgkxIxfKUo_@^4^+lUTuSK|44J+W@;wqK#<0u-~&a ze_UbE;p4J$usH_|y+09)W4?8v;*mvN0I&8XN>czEnbc+#qUSQM`+p?|l!pw`12Qj` z#35(SeTqo>yh^Au1$M=!n?tX{$)UD4S9<_pf7_nxx_4FMVCsRskIGn8+EZa+9%5)aQHL<7N?8G=|>T; zWTrw4t_|Dy2QjXi6m{G7qqlJTZ#^XV{=a-13P$$MW(Gz=t_DW7j%GI2MD+jqPO21k zEPk{&9}YNQG7r5!zK-B}u{RA@5AV7M2G}42@3DzpEBysa%MSa+ zNX5G)v*s51&!;M{F==4r(M6uE03-X>A4<9r-{-0sv2MV#G05mEzwpnLai(m)2bG`` z(bq|P9wVxe^kUIU>Ci-c^K3k7jK)a;zk5lnKS*2tVzzJ}G=KL`%hxf;nvlu-r9({IwrX~M|K8j$4g;oImK{PzEYVfY+oKBD zMz?N*%KDby<-$;+sFiFe{Dc0cH)lCB2wZtwL>q6i>#qG#XR&`z@+5*|@K$+s0%8X_p%0T?H}@7s4N z6epWCD}xZHYO&ZT{r%&_{RU+ZjXZh4G-eUFoiB)Cd&8Iv)3eO8zZv3L<=Ic{^$PQz z0HBS}<^pBqe+1B7@<@?v3WI{7I^qCTs8aq=Kvem8 zU^qm9z)VU=gW;m|G3Mn@e*R$m`DMS$`KZi?h}Qy_rbxE7@S2;Jx_53)bY|0}eg0JD z8m+%;n7p$(7JrM3n0Z`JC9C8gD2`rkd(3dZaCJXqb$ouk$n^YLjj};=S9sGTDmscV z8;T_ijvvP~Q=lhVN<^q5fnqig3YLK|t0#(*E=u$-I(}-dOD#7wTL2usRolf%)&0{GH zNldbjHcpoblSqoAnWXtb)3jMKR=lP*wsc>eN2W1%9DpeUNA4t--X2+A5~GQ(O{Pr+ zrxOK7ELwWB8$`62WGo|IN;~C@Aetu6h@i0#b&(=MZ#YZkqsIS>5BH3BYPLO9Tyr6@ zvhoRIO<#Jhidd^9MQ=bHDH=&BYW`N2m%dP9NvR^E4;?I8l+8DQ$I(|oL~v_=2tR!y z$Uk2}my<&IhUb}lZ{T$A*!@g@4~<8(E{5`1VW7G2A-v3{MLm&xsj=A|-r!dKZ9XhX zv%w(N7Rt_g7agElK9Zm*5cY%a&za$+#;8hvs!L%Yv+4w-oqwM58t~rlrvk<{J1Gao+{To`<;SJo0QH{!ti6Hg~W!& z0uMPE(PCr?WoBA!UDb}zb^5hTxY0Bo)l5l=XV(>CWc3wlNgA{%bw+j$NBN4C_ za?QIv2JJ#yr3j32=xziWTo5>y3La*lIZ*#CrBpNi~23Mg;AF3+C2n z)>o}R`rtNtkf@#1_ygd_y&Z+>Wb=N}5Sp%{&Ydx^Y@9qqzXbD2b;Xz~CY0x7UrXY0 zPjG3JR6ruy?1s>iN0{%%MoSE>1X&cjn}eFfB&4+nYOkCGc6ko(i64Xriv|^|iHDrD z=z-?L*BT=3?E_|gOG@H&It!QD4V$f+Yh8<0K9l!4L_fy3_#(P0S- z9SBM1YYdeKOgbA(^u`fH8|b3auy96n(}CKFx|eV2XS-l^DHiB6(Cl`JnI$rEiq-zP z)xb8-6jAz3CS`2r2@}v0jJm~|7`=YIWlCDo#G>j%;P*g;O=yBD_)ELi1I+zYkvUt- z*R}^*?+Qvf_0H>zxa$;0wHD!p9C~T`F*h;^oj%1+4HIw9qPCFiG ziIgkirQhW?4zZ-?<75VNA~dxm-KSIb+qsn!)uBP{xFA^MQgpe?ir zFs=D+Yls7m=68hXUgMneJ|(^TUDGLnumi5SJI258d)(?<&gGv9h4$ZyYZ(1+r4q$| zRrde2difv9Y$#v+Bhh?sN$~TlBEid*D=RksCV=!;1ug@THMo-tFl}0*$sn$z5^L|s zRn};F*0aFdgy75Yx*>i;Ih=0*lfJ+sntEeal`p>}Rw^FkFhXMwF-xF3uF6 z1P<*q#E6mND*)GHQGOY)t#AjRTKo|+t&f)z_31A<`Z2FzUSdf|N;9ysvN1aKMBoG3 zHBh~WV|@}yf)COgs62qe>#aSH^EEQf`n$vo0;f-AxuDR#H7yHQeU^lmM+C%sO!s>E zdrM!|81}UwE`Vmp#9Z8e&+^rdJf42RSzQX#eg?;8DIJv8+})(R`HbK+&EDz=O591dllJea-z$J~VxAv?g72L?;P&<8vj z;zNe9@x+AEm!hv15j~$RLR{4^Nk}!?9HbgiK~=NgoQqIUFW7gKc)4+T&sLJ3`dknR zK6sQcHgAGy!B~WYPf2S=cC)4gVGgk?oL;gTbD$1g&aD?jZ`OAh&QO+#Cy5B^DaIlX z{URJr5Hi5ftQl^&veh`D@0L%lU`Agc^qG~x@kpx0t64hHf^cIwH(PJ@naG@uBHwbv z0pGIUI5>91m^;akj5Iq8h8$Czg1ke1oIM=I&Lqn*Lm=IVTnwPvl4Gc9m85q~T8Mx5 z($NXqljzdc&n>%MoxcHjE4Fq)X-6oM^hsLe-0a4#Ne3^LG$M~ODHaZu+ZNv)P2Aq; z^zyNt^8?+VFg%YGNh9Gl9}dJWwyy?~u2ePWS8!s$5nC}%j))AQa0joRv^!MB1GWA5 zeQMc;BR9T~68P77aWDvY`6(4&Y>2$cNA~ej8faPPHZj^#OyM6NypwjdRvwCUX}Ewv zu#u<5>gBi)6IPu)S1|HDHmQ~DMavRaQCB5LbaWDM>=tRjd%1yJK$hSkKX`pv8lsRN zmr#(b(W6@FL)-bOJtVCaAW!KgDllGE!2Ui=HtNYtd@rrqHR9%lU$Ek?h$n$fE%wst zfe9{}q&M=^hxy?fXOV#~o3-0HtLgo3u$xt|XZs5@T{3@ndKMPGW`&U@9PDofKH=DS z;$(mPM+ntt(B^%-z~a>OLU`O???8g3+|~#X9ND~jDmkktglqKA#dGqWLP6ykHDt^> zfaE%+tEi{#VS^vIHn)JpSD z|HAnMHRju}(P%fuLUENhOGQNw%MgDPykiBU4OPxK#85qut_UxIq&TDXiLT1m}4VYGZE0r;{}&YEj(W@sX$Jtq3sJ?N*9?UYlc25L&Q$F* z?n2cEGwIRTFs=--Mom=>ix5t`pk>vH-yEyPBcqOL+MTn*#(*5%{iD9Xc3WZfihQ>9 z&p`oJuu}Dn7!D;saQJCk{i(TtDXQG$#C! zROp>CzdiQz0}9sOMc#ds=#OyQJqsu{FLTp)ITl`#23Twa4&D?}JQ#(d2I?Dh9~Dnm z&QYG3D$kPg+JKeUmuqw2GOG5TRc@L`(2LQuWDsSh;A~8dZJ1&S234<1wD<3Bmt+1& z4y?ULTtRqXIjZPnkbfl~zTSA1^Pl9?|8EUFE&uN)pZ|0S*7f6^zW4{uo5aP+oqk=l z$-L^ON>fO)B4@lz6$Ua$AW!AT*`jNzS!|5hD1q`x=L{7R;_H`B)GOfNS_jgdIjmI~ zEmzWl!6u<)c_pP{{1d-bA)UGr$z;=7R1%7i;rvQC?@X1aGzCc}#Yw@^IM~TjBOADpeQn++Nw8J>4rdZB+ z2khCg54R!Ncl!QI_&}WX`oJOsN+)_g*IQb9a2uJn8k%Xi33XjKK9|8W_j2_kJ_f<8az@QnLD0G^WdNP+S%8 zi30K%)z_u?*cda-=Uv@pjBLM#m(bfwK`gh}DXPP0=_Ur^1ZXq;HL=Hb=D;!K%yX44 zYmp3uyLGi0vMz*;h@SM~btc5L6OIvT5+&dosBgV;&tt8<4XbYOpL71pFCH4t-GBg2 z%fG)vBU%T)XnYP(@@y>C%+No9lD<0DOrz zM$375ZTF{xPX4#Ung2xriT`nVL-ao>d;Z^t{YpOnsCl?;65v#orOJF2t%BxR{CXku zHNf;=t(bD-MIi~=Et6~84Hvec=hMFCyrFo7O_-e5)1tqfiW&ckI=k;|NJ+xW<{AZi z^<4kVa6D$Lzdk=!c78({r07Ytv?y)WQvwgnDUQrqmF!|nN0(uiw;ZKrWT)#Obg=ul zIIFOZXPc$C!>-P#j3>t}v_x7FLJZ#;JjWtkCo9t_R#nP*Qs+=!mqW81gz#ZaGcd>L zr*hE;ko7~M!i>_ts&34o3CBn=gp&!(bX<(Za(H(H=f|R_4^PFPNzn!FhZzAwNRNf? zG6}41FlYro9i+T-L-BQmayd!HBz_|CmeY<$U#+!UmA!HHQ8@wV5GBLjta?M;Lt}GJ z(79Ot&L?6L%t{!LIWYqScBteP1lzEa`L_q(J zrDH2>7p(kyAD6CiWGDK#*X#78S1dS{t;V&uNIFe>`ZgaeG0)zmIi04;1WJaHy3bju z4=&h9+%agmdXKzy9KHOtK6!OS_Y@3)^;bz?VGaE_W6Yd}9NZ|xu-E;HD9a7Xz@yKu ze7_5KNj~DH7?#9M^i@K;ou~Y_Jq};sDZpAoWpJ#_Cfww(fCGM@$#jh#Q7cE}toJlY_9onJEI< zj2$Dk!LulyDG+~vcV0zzKt!2s8Xe|s%9LxvKd{WBI+Y&Z3|o(u?_xDB;RnoGj7RYL zf^+_q(4={%q)#Cv3BY~reSfW9eKe)dYYKGgTfNE#2T}t+d|lEDyvvH;yi?<=Mhn;! zH+rP)t%uc?b}sB+tRy!%O{p(qDf}oOarwy7HW-hoR$AJiN!L11oS3~Q09RpE9&w;S2P@qpY7PVFH?IYC1_=Ggd#$cg|QJ7LoiazW0yGs_S6+sUo& z96YMCtq+egF+GC_DStK3rNpWxIJ#-NUj+|88WSLR3x&lXI%&8Nh2(EY9ZZysA7(Np z>&EPAMv78JdAKcfmI-7g8eSSV31wr~UsLErQBJ`>#|GcR_CISNP zrnQRuq5I0E7WfyXSDYZCk1y{y+XfCkN*RbhEGy%Okx93WG3m>}$;!>I?A_mdWrdWA ziH{rWqI!+ulAKG%w2JD6*ofYvf)7`}tf1ypKEz+@>B3TEdNclN7h;wdbhrzYQ_fDKm@L%y*CnWsE=kJs)wl0^J&q`d;8bg`lpK|C)c{4vuH`e zQ+#hy?rphAFAf3s&+pv8mzSi}?e8P#-K(L6tU>bUX|CPF@79M97=!(2uonYqeZy8L z5GOi2Ibf&?d>+bXhhy`~aY#;kA}53oA$@fh1}1q1+FxV}$+8T3Ce znjMl>5?kS%NOH?DtjCiiR*AA!;Y+RzsP+B zDZ+PBee#mqPipj+ba*0MhW#BJ0MvY&^a~(v{(>7+(lqdi=@E-yv#@Mi;Cds62=FMf zxotW7^^hYBkr<8aieBm9moc*1v%741kGl%EsxpzFvc}o=xFIrc5~7=JS-`o;`*%4o z;Hb|F^<{0w0TagJN%ti$FygYr%AD@$pHAB|njG!_aM}+1w~3hdf9K8pYe&+g4(_U` zl>8+lFQ!C+i~wE%1PzA=2`4CMD8moXM9@sCgR9WuZIv+04(TGX2yG_%Y zTQ3SQyoF=dlu~DMc|DhXZFgne;bh!yGMsI8mi@i`VlGAe)4}I%d%SEn{5|<$C%j@@ zzMl6fe;JQa`ZuV5UKLSm`;<&z+a`l-Qh)hUp2Ao@H?~R$U;<_@%bFdCbFb@0Dr?X0 zUxT@Q@=yvA)fD5t?+TYpXq{i$Hd{tAM9j|MGMTk8{)kHADt$w|P}cg)`$H@JxK<-) z_LzE4k(?Ntl#S?&Gvk!3IFvQ4U9gCBN$Y5s1+CmTT=ad-UEyL=Qu(iq1jHhr`NNMj zHujT@O68X!JM(GdHqXcc`M-_8Zks6^f=}~$gLp-fZY%L#X!{84=(`!AoL71?5_fa;}Ek z0aU!o!tth>B(5$Fwvqukn${48>4|PN+@m z+VYL*A~OdjDPwBOkKMhZ4Z5XS0wtsLMC7p<;E{JQz}SRqcKW)`rmN*X~kyv9y-TmKn=h zl$YE|>FnOQ@kaoa1qoGPr-m(DiW-RcIue!wA(Q?w05v{{ggVrV23(-y1|(0F*a>EF z2m62j!_qW;j1JCUaz1CA@GB!zOsBTb1sgiI4%40UU46;ZnllGUC0*TxQ930f z8NR?O?Ug64mEWCpXc8{usGUqzorar7lyHjVsO?AN-S9&Ys8Q!j=WU$BhFjINb`c5c z31GL=)0=~HRO+Tx(N~Uli&(iLamh#ez2g8W(hpDm^{Nw!Cr^s1AjRn~W zD}2MqtoLfBdbmwAvG2R>QvvO;0)wAe&_-(R>GeRuN}0vqSe&aDLAqEU2VU*V0MX9? zv2Tck#_(MOdL?o}+s@b#@li>W)X% zfxuICQ6nC(B6nfc2}aWw`urLMRC9PM%3q-XX-T`LW9rPv06Cm{V9RoZn&PI!E%LOC z13%q9MCy{booaS@?fN-Lzi`KT1iSsbmG*kE$<$1JH$1@_O!Q1YI7` zWo<4@%ULs6%d%KeZhaQs7PM>+q~L>1tV$9M6TXFJ-YPOw0|R|JN(0-P$Nm5%M8pa+ zt1n9U3&XbPq}{oP*0gtN^Xx7@*RgG^WYe{IpPmzEg^ZJvW0Pn2vQ09SR1pNwjx}3R zKRX{E${YIyhO402lJuD@ZfVDV^yEh<4R~s-|9CKBqh#>P#0czdU;(Bx*U}RUG_6)r zoo_2FX-Xd+H)ySkz)Dr0%_!C(gmKsU5!UHNafDbDP>WKV9;-?Q2I{O8p&T@9)xvcv zTIDYIeGg|sT2*g|7i~&7t0C(Tj-1&A^(P%ZWMBj}Wv_&*h}DWq8*{txl*I`m2Jm))bL#OgmMzE z?3Mgj_qP=LZo^Eia?FfUcavOAjWhc#IFEAEyF$Alq~bi)@0JCpN{EGTw^ytO>u!!l zB;ES+aG#xT3qL>l#(h}f0V6CS>{t1qYur0z3%5F{q|-uYtjqr^fnQn9En#IMY- z??IotMSFnh5#>)<>gyhQ++IDcwAU0#Psczw~z%GZkBd&Iq^19!qogS{5E^e~%S z)}>Lh;SshT7+GBV4TRgkO&GDcPhzF4UZ}6;*qv2>|GBUZ22Hmi3bcihYw|`hVcaxn z>`~$c8Wy`!0d&SMt_&zdNf~#LGl5nL)%b$c%)zRYi$`~>_>5jcvDxQidiguFp=(d| zZmHo}+lFJ=l7zOdDEEO7F5?V>jLiL5M-uz_!vvC5Dzpt!k1Zike+VfO>zIhDGTour zzbIC8Mi9tyRWfJd&Z*hH8%Z?_a$kx;=Zl}z)4JU=xZ|u5CxM;^%-dY*>VwX5_g4%` z?0U)sZDD*pSj7*e#RDV0X;W{wE3S#O+2WkH)}b$L_rhdcU;N?o3HTE=4t!i5lZeWdBD0UqT&3Dc7oGbxn~ z<*Py1KH~WY6<&AVGcu=<=bw2LJ|#2Ah(HqsAmy*O#QvT9exA+affzCB>F0WYbk(?H z{%rxYgu>HKyI7eOhm}Z`SdAJ{FY8Oy;yNZC^D2-qmVqL5Iz`ej0{S_P1U4g0;UDUK z@%Z*9bN9-d#i>~(KR1xE36WWVxMjoSLNuobWR)FVDN7Kf29s;^{alK+?~`fgL8rMw zFYoSqz2t03+)1qklO~kMM*@1*o`be{xQIwLGKnwfj3yj(b7;@PAt$AKV#9PYw9UZO z+7DJw`}pdn$j!Y4AEl!#;A_OC^MCX6*36TrStN^ciJsa!`&O${){hX{CW8qu#rsFl zw+zY~a?Tl#C^{?^iY(6To+IyYe;u70487O!?5DdKcVHVFsT=pfBmtk0fY19m4cT{X z_ExKQbG|-rHPSsl)NC4xRLfI>h&2^3#qTK8xO!mAKs#7BOjOx(auPkQP2;KvKkHq%`CApKB)}kAKt}rf4~jd-*3D%CQdGh`c*V9|FeX-~8^_B!sO8 zWa^RPIMf5|6am@MeI%Wxh$&ZjJqlhNxw=o~;={`KuD zk^9&GQPv}bWYYAu@hvlN+E-&J!#j?#b9iU}vHI9fi+rQhd$B|#W=3meZTk`?l~8SS ziW)U8?9DRfaw1n(kqZ{*d7uL0Gs_RfB}s&vt=x;pBAxcW8?-0_=i1|ZZWcY2}uxBM_C`XY>`Lab~A8q~$!s3H;Ba1>Q zVC|2oHL6@!%(knqJFjRK&TyJ5P{ds+)^T}4?7Pd6a>bWKZLpjji&^o0$%3bmr7)~~ zda38YHc&33zOVEOq0DUy{eA-lgHi$eP=4=`Oxk;ygrll76fU4t&>GJ0YJ=cAd$n57 z63L7_4|#f{zJ7A4tU7HF%)JZra{6FIS*-uGxhto*HJ*7Co;fpD75duK=7ixFL>jYD zWrme{N_CY)BRRJ)a=-xQ;VsDtMeX9Dto3?)k)<1?@`Saj{EOhGCEfVB(E|Jx7l_g^ zf>004N!sVR)WhY0b05ka1&i?|JmeJ{?u8U&l+-;<+&8?}JK|J!^$gwvWGz1Ut7m~YjU?AEhf}$ z4&18@_~%JoZ$~_Uj*I24&y0?X{qDs(a5vHKSK6^pN(Kul7|$B5P0Ux`xPct@76S5H zCqU4z3)kI^caUzC=+m-1X;zthU#EbQuetO~hICvNo<# zF7V1!XQ1bO8Xy+~?YqX6*|i{Q3ul91_D&~OlCr&tc3a>Ok&FSAtKfm3Lyq*)W8p2c z2-EH03cFyGHDSzZ`ip5S03j(kyfQK*NO59phoRuN_^_ey_c;mgv3t}h|@&K-6L5;j6$gvBEh5$N!znb$FirAI)LADRaGLJMT-SD zbK0hqSyhx>p_ykSx0f6`64WE(WeVT+(%Zx~fq zWgEy%jbt{)p;#BjnQ_{ki%v*8p%#-VNQt3d!zwIJimCh^!@3xC6w*^dIt%Z|C@xj- zl1S}GXmTscGZ{SgFk|dMeNJqtl~I%7w6_K9NP2oa)Lf1YaW&~9SZ)h(O9_^`M8w_G z;^0s%=$YZH7_LY=UTP_fw=`E`Ny>Y~^Nh*CAYrIKq9rc&Zun2cZj6iveCp?Y-eU5U< z70H_s>MI}9c()UWYr51Uf7n)B8#P;7z{W5I$%2$?BdE(F5f&vWQboZrSwIT@3ebXS zJ~=)Pg}Fd8zvO%oY40XHpJM~gDBoNFu-z{7+%OL> zKSLLh)}S)WL?2f;0yp7M|2XN_i*amfP^t<`fn+mWgM=)lMw$W*q)VI#{aEjOCWK;=_WCP7_g$|&F@jxqt-JUyP6j~LJ zHJ{&FKe-zn+8$DQ%*r%j!!B;q&w0%+b~DJzp0(f>M|h8Blk#QHyA2n1JV5XR|MKAO zEtkvRI@>0Rv|ewDH{7n@*n86SE6*Hv&wvqQW=gQtWTfx7#i z$j2vQ$F56%Vf0lF$?f9~IP2vmE#d>z` zzOaPuh{df$dmRt%f!H2ID%HVw=li1`q{R8nLoUmyLs%RA>I*GTQZ=%8$~$Q6hN&{n*{ZxfWOZ+FnV1v*?ZGAX zH8}}@E<(RV!BS@w)f9zhp)f0Bd|}#p?+nc@Yk|jJCsNEpUf5AYrxI?4^gUO(*I21h z+-2U2+G8$Uqcj&iW{PEDfFV-g{^j4amy$|=tK04wit*;u>Moszg$PP6Pr)c9)WUd< zoQ)XnVaO6RV@7e7+|X{smqN83Rk@Cnw!~DWF;2GWx{?bdgiViuE>DBZfkZ0EZ|6^y zG~QbOMZa)qLUocuXXHJ8c-yunRaj{(5(mE=B_$HBSXca1pb@oPWewK8)Ic_T{tWE& z5#RpTul;XayVsINi=#P{M7hJbZFHaxs^AQ{*8GJM-;Kk#AcBn{It(s#=vf2u0z{3kvXrD;^wjteuVXXEfQZ2rm zr@Q=l%Bn6Ae9k=a6d=4!0*YN4)cqscfpJeG#a?`Ey%fu{b{qNHctm`arA+gDilvcA zP0}Sb4NMNfn$z0TsR=iNVe!>v@)T%clL*b;z%o`wkp>MfUPj~zr9H#KqeI7?r;)UA zyZ7~JoRuWx4!bX{Dwh3GI!>fjymi}k?Ph8?v-{;S&S80-Mr0jMTa%fqcFU%n^PP8F zg~+wsJr#F-139S)TT^R~1`dO={ny9vCvv7wB{^w>hV#hezNEqPcq36m$l)5`{pW4s z-}_H|cDS7U=K97S-!Y&(QtQG+#|rBqy09`2hG7GUVgm}4{Lqqkgl6Z3RW)s)a4XBy z8e@+Z?3)9QPl%O=LU+I-G+JqewArO4eA)+&2pUoC zZJFTr9u;!59>dFj-C-pcbTqvo{`z&n{_iH+KY#u*u(6^wu(WY9G_u#Dwg2Zug2TV4 zYg$KBdoyE4+Ml(aos*G+qs%`MY={4c!7h@QvRU{8=arDk22MjyJX`G9*eGmHs~Utz zQSQqWN3f2@{u_o{5Yxk~xz$;1V-FR7+BXo6|L^ZlvOzW^{8%=m!l&uZtTfgK;jj0r z2XJ4`R-sl*A`xpiVmGoT+a@Rk>|%KtCA=-m{H2IV?Du;mnuSTuX+?yR>0)q#)ewD( zP0>NnYF3^^KI42z)2}$sj!^>3?6!z7h`sH#5KO0}NPe0cgh_=zt9BqYN+^=ggLMO$ z(=yU0tkNf-B@d|5{AN8OrQ5Is$Q70uvf4YY!m960Vcra*0b^8M1y1==Okhc6p{dce zUEOs(A2adIRGNdH*vy*swm8br#F`{jT%Lz-192<3P24*^?}lvmoR?Q{&0iHO04Nrl z6+;$>49F3t#Vsa#6xGNInxtq~M2UgJ)!|0GyciPPNC%-h#~^87+V{;ec3!cE9I;wT zzQUx(dGg4(mt&ScGUpYjBl0bTam5TxDype{-=u31LDT&L$PTT&&S`R}M$f*>q)am1 zi@dwzANy2ZgU|yWkOz01Fe|f$;4BJNw&q64w;-%vm9o)O>(@R+xAv?yvN|_A;XQ4iM1rp<@pvO zf(vO!fyvF39oq~^92DlEB^V|pmlBzmR#S3fiHl5udeN*)YQiA(<>8m??KPW@K^ML` zw|i%Md9hh2^yS3EmFi^GA`EjRk=>4e2S-1t0^HI=F~KwVq6AMv+rr)vLH+%1oBpMa z4q#mewIL$RsLe-y803r= zoL^^50KOVrt?W9B{RcH5C%+V^n-QbJFDI>o1X=QaD=Zt%Sr-*q|70c+jbZMc-#}`~ zxshc*l>lS-PXW@!lFX@l9Vrm+GsCN52QW6V8g=yccomBoS-Lq$`mf(tnU!Slvi2Y$ z969={%{&UiB}vW-z1~=0ao>Ew+!nS9;RH!SMuM~&5Ao*Fv?xTJa=*mV6QYu$)$93X z0Z&V+VaLlYVdz~8>d=4F?uv$1Hx)GgSY$!(vsDe5E6Ibe_629TiF;C96KNmrl>&0I z%X}ZcBDfG?Ww=MA8k#<2#@v`n1Cdk%0cK`_l3eq$CPoH$8)1G}&yi47@dbZwR2Xy5 zt}b6)5nSM(bodjdtw{^>?7>P6CB~akj!=M*gd>DP0gdHU4r&bKj4FFDWSZP`ZXPMM zF{oXPEztb@Tl^gz-uODlE%<%;K2NZfJOshD!rzR{Sqe%Qnf6zQT0_v+QZ#$-e}9#R z`GuQGiboVr4G{l^Y+VC^jPM*DquPajv>nI*&_2n(-?g%@Qg_@H4EXw%5bBJ0X(iYu z1-LwxO{lk5Lza>t#qlywpZn^MQ!<-R&q;X9WGh)!=~jkILYGT<>#(q#N!Q=wh`Z`` z5y~Mbl~rzd^k>3%pv5mLkGE!|Mj!aAn1VY9@;R{eiIDGOLf{E9`V3#iy&6fEf>|}7 zY1w-W*0XljmE_%WfPVj(y8S$x@Ev%KUms|KYcPWCZtxn&qjA~AbAK~rz48qi7aPpDJ18f31bLWXkFgtW2oSH}4B22Kep4PJQmf2JF0@pF%Drh4$2(~ZU z3eRZ@$|i&^TpCR8DQv^z%F&g0@V117(lW;g?-nX>Hb}eL;orT6jFqi5Tz4Br3?*Mz z(ofi^+W*QR{hg^Qv3`W*l<*Gj9u8*Ae70c79f3yfUjpmT%}4d8ME&lZLT*GWfBgm@ z+b5757Q=Q)dt`~}Y9Vl*6xKdy{>=^cAS`PlHSC3}cgVHn<~PljR@9<}0K`Fk6+m}8 zzfbfPbNF>bLC6{Sy;k_vf_!gj@IM{R<&%jeyV-CYN??O*G7=2il)`AlXu zPcwt6rx46;v9U0!Li>ofyO0c!v5Hcs0Htcd{K3j!QQ% zEAU}-{TGx0l~tjL7PJy}sZ7%3Tj_mxp4m#o6!(iq(8XGhd1_*ogkg%BKq z?_bezBX*f1;D@IjQ7^5~*`%kCz3J^pr$J^THJvNvFtMd>UAH5?qy#rJPbNw@=c8Ww7K=i6f_mQZ}Kub?c4!0foX+MM2FVv+Sy^}PEzKUeKpetS78 zbLngOyRhnzAv{g2Tw^^NZLS0m36dVcd zfZHz~{s)a?j~vPlh`b(s&EG&^tkY6hdb#)VkDz$)=E6^z)-mv%Sy~kghKpji1=+g| zEshbjnr;L$v<#$cKa_KD?T(sR*+a1&W_esx(RGqAA!@0^3WZ)P|4dmKx01s%=&WRF zDTeDW>OhdV&_XK|Mb2ugb9VmxhKqeMJL;%WSJV}vz&o5gZP(Q0Cd=YOJnbmJ5x9+> zXw3dE(7?KLOW;|G)aD!$2nEgIkXN!mmPSM_4#vQE2J1Zo`Xw>2aMk_bIH%Eek^)Tl z--O~|lx72sD^Z&qfOL><9$P{EB&s#2b#VTtgqw{_9{Y|EQnSTG-}*kLf8)6bZ%HXtphzbXopG4|7x$4Mte-)|@mB^-HTWN-#Qkwv=x` zig!QiaC8^Hp2HA7O=aq%O4h|PK@^WGA*kP5(v+lyRqCsy2Pq3*g}g4^hVuUUQ~RnD zNnH2n@*N(WDpIEnr)o7_x)R?pmOH{^1Yy&;2JBJm;eQa-rje;0N)}K`}2b^BFq#% z0U&$DZ{@0;x(~5{T$1ycl|FzLEqSmqdnl!nwl^lvuPdfs#^uey6ida_pY|0Q;SE`x@ozhx4G9f3X$dWYo6#zRCn_FZFxh2 zYz;6wF4#9nN9d+UFsVnhl~eHbQ*w?|^mb7`*dpvrZCMd?%LAYQFKqzM(TM)6MeMLI zKVA5>7IeI=y z9~w=nlq#N@#Lq!j8X?4m$o%;6(ddXzN2a#cE!#Gix}@fOivGi>p~ztj`HrG5`F+pW zIXLUY&Di*6W$z{Dm-1ccEcAjO*nuM&Ibo2To_W4xnin>O-iNSHt^P;VJDXyf)s0#f z$(lX+wQ8E+ykJ&s4T!lyFbi|eKbfEp`9X#?_^a(|h^h#PJa#|&iwRNiHd6G9R36N| zaD-1Jy>6mIF=-Lg%yvRl#y}tQh*_Q!x3<9ax%tnCpcF4m^WMNC5Kh|)9c zYsNHV<9ISBRrrc5`c}nX-|uXg+Sei=S$ZR7r0YGX`d{j>WL`O#9Dak&0_akKLc zL>I6T=rpm#N;LxQ5@>>vU8`v`g1YTz1x~p7a7hbT;4ZNV9fZ4C3fipkFtTyHRC^s7 z-bDHw1VVt-4K}~S=n|;6EH%yB|FWcgfHtlFQaP?N9$56PsV3lW+YbHFuX5}smU^9@ z2ogm%uSVN%`EoB~F$(vNa+Qv)i9ZO5n8D$gIf@sS5GYt{@(~!7Voqg|(Rs4=o3UHx zba|)!1f=?iL-@(qLGik8Crql}GbO1)1(rJR*@8_<^(w73em}G;7@uGHIS?MC*??+; zPY4J@dqP*0!*=-Dt-JBcy)Ri~W1m7>6}CCweY}>FL)eZa07?6#jTWG}s+PoyE93#; z2%5iVp0l3>3VC@0GI=SOYnX9#Pl|u~QZcS|dxNa7Z5s$5`*%k*Va0YFo&uS8ECTH) zBcigl|Hx*6_ihl%z|`|Dt4k(kT-!2dn$O#CteHw)2Fy;Zp9%8OgGayN5Ca328Sm&a zS4PDF!*P*0q~+dqTu|jB!FB@5{gNa(5{mi===?QSGT6yybXOh8hwwSQ@0l)*!eH_T)3m^lU3@&U^~qK!pouDa*i*jed*j%u=A@rzfX|?MxGOSRhuxcKw^> zNxa8HUJC0|HT|VzwRiO@l1}82N3XpDt_ErTucy0ETx~d>qqM#_HWE_Yy+vBC&^;8N zCsTN}&i=am<~s=XPa|e_32X1rR)DND_sGp*T(s`LV1$ri`hX_5c-)zxtaQp4(nJ`p zl$UZ}cfT)H=t>ur>fwPrFA|N#7=ZvYxIfYvNR3}4r2nVf!E^)Gv!>wC?oQTe7 zF!%LhJtO5q={a^$4{(alc*@VI>i!#R@A#hS*LCSuY}>Z&q+;7n#dmC@V%w_NR>ih$ z+qOHur{8__?%v(c(eLj52d+uN@v?v#X<;#j-r6VK`O zPw7{8%xR3w2Zd-0!9A!E(m`=#y>!J#Be@Y2_EBnDCN;lUnP1G>#u)EV$DW2`R_$V2 zU%cj01{~WI)1p;LR57FQjG=Tnsm(TdF+N13k@CUNO-s1u*U6C4=me>d~f{J-2s{yU+nRMxeeS3u-T*kIqlw6178ebub2d+2FK7c7M| z$yLy(XtwMbYFk+&C(Eed;1K;v>eNuUhIr2JZ)u}4T&-$27dE|=VLti}{CjzLdz1e$ zbsakW{cE3~AF!Ds^(+NmdTOSGC*pVST#~1I;kq>v(=vYls2~oAuT0#v;g2+-fIRqV z6aKUKv>uMw?QQqxbFIYV`^9D_Y(o@uE}I`cjHv#rAtmNnC=brgE7>zvuc71simYII0dJTa`D z4;37$!TN8dlJqA1v^H`sqlNv-vxo0Le02j|!fS38Tu!a9?1fvW4s6!wWrIMs!Rk|P z{FhRtu+RCb#$)?#nm2I=&~Y^D+tn^R&{sM~ZHr^a0{yDjV#w;t(QwgH4@( zWg)QblOsIemH5MA=!cMP0FVv7(O2-=!7j=&U#d0Q0Kl+QrP9UM`Xy0#?DG$ISY6J!f#xkw2GwY!%bb!B7n7KU za*cSQH^l0kBW)@am?aX_z;n*>)zT-l_T(25wb;smrhq|(z zox6s<-ltwBzn_o%9nY_G*+6yyxM&qoq#*%uZp=6fb6Sj*;_)ZuV)6u0qW3vWiP3mW z{(KPko^>9B$5L3e#>9Jmko1==(mZ8gds>E!%WQTj_)P3qX~0x01)>i*$+N`5do>qY zVzwC;YJeAIXllMfrgf~jy_xaD$_%>ATH_jR`Jo24bGp@^I$Jt9vf{jH(-UGnI>qt$ zDv*mQ`6Upl{_cf=o(gm&41(Pt48@!(EqZXM6&amyiyn;93c)wHS9~ifI#)$Lea4*P zHEy>)f=@}POQoWb#;?r~&i*DTxa7y_wbwSn(jtvcPBI%W{^iBE#K#@ILU&Reko1-X z+lO@=p%Bub_-~>LYa5Q+2IBH=Lz9>AJ&z}s*DBlqQj!t3n&LGHGc01zv8E5IiEG8OW2F``ablAN-sfj$I%;OnFNIpuEots>{>Uw>SV*Mp$P5O zaQ3d`k%mSY^-eNc%(_KE(X`ti;fryM{z0ohnXLm8!WfBWR}zu_c7r;EF2aUT)SH#G zd78;{HUxkO+kksArU&)a%7}6Ff-voc)}g$ug0V@?K{RkiEx5RW_auEXSKzF|PfVMu z_4LW{q#*F=dQ#)>P=n=4SYt`!+yrnci?dwQ(_x9lkChvNsGRsz9ToI6d> zP-RTm-|G`w*8mZ)xy?l@PpXjRujr?KsFYRs1v}6Tel{u*<{u?%B4c@pra~S?#79>W zedkybpo9YsH}v5y0|k%79bF< z7nyDf-!1>DvB{HaSTU%bXf-vgKMX_mYF1Tr*uh+2T`D~bHSlwIfr7Tbwr>}``J&@~ za&x7`UxH}lJo_QM^>P?$BlWP|)X^Msz(;MATyL9& zhuCDSQwgz$QkcWMs44rt0<#m&*r)+6qUNzdK+`6lTNegGX<_NC5*44IVv|1cpsY5y z_d$T0M%atD-;zYM^V@ZZ#T{=T!pzori@&$J8hgiG{9q-Kl9cor--rVqVL#gLC2Kj` zpRDxsEHYf{>tFAsqh|z)owxK47gHKA+`;bGimUz-Z>*}VQ#8Pa6Qj?v1w+?N44=RR z4BQA>9r#|oJL`|MXyy1l`X2V!*(w>W{mFlWGZiylp?ZoO;FH?!-K4k{xRNm7@#+w> zZ+9j4LF-F%XMUw~CrgqiGT_Re%+S+pcuq_&rOAZkQS%3m4%dSPZJm?UiZpz<#cX8Uh}^<-gaVKix$P@5ibWYFeSm2<+PWn$j~N{clvjg4y4>P`A5^(Ra|eE z&%2#MUolT|N)2>X4@f_!8;nKf@ID7`Z_@0bnr!^ERx{ald{(3D46`jyEd32QrRfea zADU$fxV)|l`jRhO|9f2?Re(nAwrVF9<5l;JFC1+&$ELdXmJo=0$9M zRb=rlQPVpA4ka4|b+CnY>06^fS0zsl{~m_@oXxAnuD(~y@1+hl74dAV=8^`44@sV7 zsb+K%$qW~fi-}+xIow$EQIXX>KbzRqQJ>ygCq`|FD83Xt5vw4uNN`HMeBOnAPVLDy z0g25t==y5uzcDAmGOIv>m^PM{zOW>r^4v|P6mJzd41S%Gm6AUv;U|7vK+~jve=($AwNJ&kP6#iL5nf; zh<`>Afp}%ko-hx0B5v1qcSFiT>mjtLD|uZXS&R|?I+SdWemV3wR!@qIq$aNF@fg^e zY3QWZr%$`AU!{tH@)A)>;N1>D)vdVz5YG~#N%RqhJtIUgM~uXm0MKbNg#-D#PjTq| zC_-4;)~A#*&g83$bFL*BQ5lofYf&tW zt7I{{h?`j0?xm-Vvt4bgjA~k-v33|+X4<4poG%qZldjvKxj1cT$RF=5ety++DZ$eg z%WYeXM#|Eojn~HNQKI(WQ0eWVuP#W4T_22>bCK_QY+$2#M-qGVP^>mb(@?kopYwlP zs5R}q8CE*_t!|TIqqeX99f?H(QJjs9r*Wt|#%Yk{OEZA?|gzsbs){sPDqbz zseJ^ecap@x9383MNP-pP2sEKDNH*@BAPY;8UrWN2L^;88RVW*sjgyXd#Xn=*P2(!n zA96N<5?Yc_j2@-+W^cO#_Zl8Xa};>>Fp>jHRmLQk#FWWQvFJ1ej*=cHTi(_MKYJj? zcS;OWk(vhO(`@>)xpJpE)60&(B4!5ra9>A)d);cClYc)Q<`gBdV1 zR;#!%V#S^3IyfJ}kSK8sNa+02!~Ca(dM6lytwfX!y*w4_dgR%Z-<>f)B6CaEJg@}E zq5gxLwbpyt%J$Ir2i@V5TE(Gb9J85^UaWcE<>N}cfi!^$bhbK#SPlKQ4>S%i+En+} z6@NrVTXwJMLc;+Rn`->~y=FiyTGNmC-6t^6AJKWht_g0qF!qs0YkNhp)_-GBhnk~>4CT$I+^dhN!Hq{AVDp{95ScldqvrGc%yz!#SG?pTJ z7v#Ztra0$IsT7Jwt+;xoCflPH69O$NsR5B?{wsP3mjNnI8|Q6kZB~JVTl34KKhStD zew1Vqes;XW?y!5_()&|u=o>%{Ku|j@V{q=(#4^|t-G!j63DxKN?7aRU^NO9vC$~`7 zE1meOY6>mYD)~ep58U&j!5!`TWZm5{tGCfqw6eogW`YJ2pLhv0uc}64YP_atU<9j&Z2zP0 zE7G~Z$Prb2jHen{5kh%NxIHrv457R!-3TK)lUsG(S7qMs7TEQx1CAz1#-Fxeouirz zaobCrmuI*)aMU-luMAi3zf#&-9@iKcYLcht|&?)u^F7_=?_l2^V*-)z3>9DD%- z;}0UUuVG_V5O+9fJ~s(bR(vcgxi9mz`WPMj!gX=S=R4(80>&;r8#dlQeZ_KZO%3PD zUMCynmE!PbO|dS8TRK4rnIf;{FTVIBE+K1xhtBqew~EN0XV%^B9_dn1XLf$p$qTkQ z5WoV5htE*X&s0Mnkt9CRQO{uPJHFGw`pnAj1SEUa(^2|+gz{g>4;#|@eaJW63qRfP zv#n%p4>N9irNGOkIQQ&K{-~4vVViT{KMjLU;1zLf_dnUOD8c%ye+Hho+XZ{iir8S# z?Op<-^MiSg#+k%Cp2~l_L11+kgiWL#P@OHRhxv2#HI~9~mR+3uzyPnQH(Ev)|DZd_ zH^y5`DgCmts;F~b?P&t~)mm&A(NRO^{FU4n^Jew+Ud{h1v@tcFjO*hwxKm<;GdA}7 z6^1@Bwe-UGF1j_79y$%AdOS$}RO4jHsCK*$I&CUpL8w8hueq=4eml=$Ss!_^PLdym z)A0}IT#}A*PFY0NEe*~t=o{LciJxNorU3P^Ef&&KsLDaXE7SNYPq_M2U{!(&~0W6FpXwJPGQF_)@#7+4)JOd*oANm42LN8M7uk>%~W9$9&d zL(;?rAA6IkT8rvWJ3q;qT+kkHS}NjW2Et})dAlUq_<1CLeT z3Cxi`_jpxM57pBn8}T;UGzH9qeG4;P_F6`*$r0C4wwKm%2exV{w9my%TIZ_5CQ>1_ zWVCsDsWxmBA_^LMU2N*#Z!PeJKx(?J&x$|f$DG-_v2k*!Ye*?33**}qw>vJ0{}2V{)7r5Kxcm;$BOkU!9^ow%Mc@EL*@Hi02nEBR!t&4 z3H;Z&hOF3sJ`@Le=HO7t$ejruC$n0fG99PJr}XuGf20lw2UB&lR-ULe>M`S1aRuu+ zOR@E>us91l(nPnMSXfp^ZnP>oE!)ChmJw2`y97HhDaIHcxh?!TK=&}1s;EYKxiDbMWdu@b-G1sdr}mguxsff z^lR_2sDNa00Zj(1{6f*F|5>UFSAvCic#vr-S;Ue>+L#@~CXFO^w*n>*>99tIZNmNY zmi4~kVuS1xlJFOqg=33KT<%p}f(ldk873O6k)p^9QAMkyj?Dn+kg!P~9s8xCqOwy$ zoa`Ju-^$bD;k?e6oXAXcjX?{ZXhCf{abAUuI|`yAQ=m)knOLgakx*!CPN78@rjh#` zyWV0G2dr6?t;TG0*<>ZLt4y3{#syftm1EQ8^lJ6!4G%Q^(pKj-kDg?+LM2b@&3HrP z09GE`NrvUs=QbSzcbuUUyNi%t$MCf($JsfN`>ZwoCV@AqGuf4T;$>O z4N==d6`D8f#01p_r)~cME@A}9D7U_CaVftu-~W#-qm_+*S^aYO=luLX7-p98h1|bR zP_^}$p}Gj|GgzHad9N4>tD+I1Nru%qggs8^4n&%qcx&@{{EBr{^)Ae_wrnI*FvN9k zq^q_J*$o0|o8#g7w+TKMOIw%E7bnm)rX_4LWDM<2NWdSJbtR?1G7L$!`@n|X&fCpF zwIQ_iqq4gljr15+M)18@gqDN5?QRQKgu+m^0;*T}U9I?@8V`DBIIiG_J8Scap12$r!CLgV~&?vNsmK)zPrdjT#GDU`9ra*j+nO$fmdL9@9{*srI(E3@|jIS zu7t1oPTHjk07|C);B^8CYG1X|OE!ArgO+HTRQkN%<=pgw41__J##MKwYn!frG5_dk zJaLbL&1R9XQQrVx#&~gY+iaW8-k=NrdTZ2m)G6MWwKvP`>W+1`%z)D#+ORhcJH=)< zS;x6E36`Ndmkd_wgE6+Wn@=k1YvUI!T2GB|bwVj_KMn>VGv1Jv7=a&_*aw4<#d_+) z54Z&NQ(?;%kBf{1W6sXCO~N|Zr;W$DP3<-5g|3Z}n1e0x9U32*+EpL-k^J*w+nfdP z6*^q_PEnYUE0JX7$fXf!MEa2FfKJVIWL6kNPKNr<649ja@|U$jDpDx)X(^!5?)Ofg zBJL`mk-9to$>aI6oXYqnmJuXsP}QTDDw#MiuGj`U9Opj?Jt3SR=EdJl}n>_z} zJ^KGuV*gWiGXVnXms=_|`YB1cDx^i?V%hJ}zML7zc|!DtLSg3ads3H0GMtAB&Bz6t4`gxnm11TO*0;#N~y*Cf1i)j?UYr_+6hLrU-n1r+-(I zore{R3ET4}$(95oGtaw?N*Jpc$wZVBIrdKnk1NR2Rvm}Wu*9h~!8)0j{TX&6lx)W4 zD~_Zh(v^e{=^Z&YcXSf%OowNuYhq%_Bb|?pSKB4I)2qme3k+Q)&9!2JN6;QY)ce4C-3Z!G@i@ z9U06;jh%U{BBly;&{AM5D~ph&FuOkAu4Bzfnv~0kXknKfl{0J+WLzl*xh+2TSx1CWr zsQPSPhn0jh`6{``A@ZCCjwTf?7PAzXH$x(C?A;F3BVprZIy? z!9c5il=r@}ZI-{B;p-gKiYLkxbK7X)K8(5H*(PpdZ=!O56q~e1{Z4fg4<-ja z>h@%nHEa2$4`lr=-RSijAxNt#;RlU9DOV931saPbBU9C*O7ANzK(djAhr0xuZ#2io z8&`?6Q=N&G=`V$}Q4z9$eBFh;$puLNVMJk_n9jv?U=pq*xoV%G)<+yl61_IfmdE!0JM zqdPvU)P0HGVlNC$%czFx9`vn?qa~7R<5O4~nqH z5KNEStc5O^kLOGp{ALijPe_v~+(g;{Zjq8xo_G18PmK9-L*Fgh^jA~6;Vtecy9d_j z*O*$Cs7Wl|7sn6Y;L&w891sDmNF56nbuk>m$rVufDlN$N*vtIMKHY)PiJO+C!+Iy^ zVt-frK|kQc zMQl%-&`sTB*RCY+07Yg>KS@awYeDax=042YUm@qDtpQuYFE&s*O?bxmmz-O)bHEvU z(o^YOFUX}lAs~;3TU<1uT}&|I*!^#XN^H8=7sEQ%a;8=;1jY) z8u-J{LSwIuk`1M{n-TOvmOc#>IWKrQZwePYZjw~3kl*+d8&p2v{<+l1&zD_5eP3vx z|E-Iz?0;HuRQ{X#{Lkr8ZP)McpU=q?G5~jwQVpUatx_Y0L<>5lTDp=H=})HIb*esN z^N=FR%(RBW-*m1>s0?mEii$JMUbAHVrvVWZDJkOF_dO6VIP}ihX@FwF3ue?cHb=S1 z&&f_Nvn#%%;;zmQ_-sL=+~?7|}$VM)il^O!pxaGp0^sOl*Y3#=S9R>=hk;JgSvxGGkrd7FHI< z8c&3LSbdm0LXFD1s?*d`DW5^l)yVTIJ-F`;A) zPGL#eL{MxcXnONZv@Zxy(^Zxo>7@^)#1KNp?nuHnf^=!Fi~F8Q3yBZbj}ULM@TdGfY#3(2IN_8VRVg zi{n*HXxK7MRiWWQfiVRkH^t$y0Jybf*+e9JHlkk57X(P zlFQ^;>sAWFl=jjy@#i&UJXr1C4muGdvq~UUMSrD%A+T=`GrWO;T4~qAO)U zEu2+oNP`=dE3LyT^p|AHz_TkT%YLcQS5~Lwga_{q2);UL?(%pnwo>g!&ee(ZItimh z5;({*pcL)pExFA|gZ)aw-x}8{GFXXL$CM)`gB6e$-zZF1V~I5gJw*PI6}H4|`HBWf3=busm$u(v>CKW04+e=-NNjbQsQ|1@g8TZy!qQ@1yAX zxPVE%eA_V^u=k=^mqe%Lan0~Yiq*M0#u{M_!`ia?Fv-$VXqt?q+k(qu5|1=gO`kv}qDqmfbdb^G1Y6|z^V0u*rYXSE9qqP@@&Pk9W<{U(iaODs4crs< zkbWeVVhR|HsjzP7RiDdfCPB3}-I`97uUl)>9N&rvQvd$lv&7}5(X%XQHI)Z=X*QBAJlWT#Q3WLAt z$n4vUi}|f&_E=z`G~?8(8suRmwx#aQP!at#`_vQZt7@fvgtoY)wXisk#k1(QBH*sP zwlNYg&g&1+xBmgX17;tPD&EhQ`O^b^<8M6ZEBxG-RB_7=cuP` z*FW6^ykRjTpR|dn?_mJ^aec-mj-l5l)ZJERTv&t|6dWD}fhc!UEM%gk=p34eKdm_C z&-gyCNy9?bXae;TX7;HiTvE+DWBpr@a@@UY>JEd+nU175x+7rP4l{99&ZPJ4a#I=f zD`=t9nkLaYSsA%cLaNU}314*`ic{Lk(J)Gt5Eo(X~9A=R$)&3A_o_k|&E zel^_fE%(SHUKHnC&vEuo{X8<88JhYPt4y$eME43^s{i)klTtHlN_=je!Pshkpo#x# zVR2^DlQD46W;yH{gNHu=lOITQU!-+}QSA87(*l|Uf;mZq$K>#_TtPxrsG`uN}Ei1dFc zP5%P{_1~kq3yV!MbDNKBL|$sWzbj0K>c(biS%ZuS`b11R%~;=AH?ovM9cm zwQ^6m!-3xBkQu5FD&rsTKJ7AIwjugZMBHH#D#Nt%2-gdcN(T%wA#YIS#klY2N(JUc zEbGM~G~sJySYNsR^g?1@ymFXtPWRxeQOJ!Yx8B}9tmb)Y3zP|8abf_i_r9Dm>~<+o z$@$w0;deRyXevqKom?W)CI>mss;rQS{*hVwmYO<+X!kJA0#lDgMnI9R$91j5GB%xA zKiC?T$g@T_90I(JcHhylmlnnR;Nk#CNik9Ov<}I^`ybXgtD#ntZ%!A9%%f?^+VY#z zHC<(qvK4pPxgrf?fB5EfCu_!qMzMx_5N|tJsqK{^4{t00r~q$80M~H z_7&R&$gpQ$c5oHFaZG%Dqu$!~%~7WH#s@CZ`Qe6S#nfF1b57CB@-I%;MM?BV`caPP zsjFGLRI|lz`f2wY z2mfEsaisoF>gxZC=c;`v1p@%&Qz@Y+PNT;d z`&kOpZ|a)QeByjgm*wZ@M@L8REeBhC`0v?%ihe2$HF-kxCo_X5Vb#5Dc6wjcXFsjT z`h4AmWCOwOa`&BNb{OwNyKph!&e@4fy4+UTC0AxLwu=s>KSh2o)1%8!v?(FKl^?D+ zloB$xh}M#R4}KUrWT{YX% z(P78hW%HZKVQR3RKnPI8nE=7ggLNiRo4J)^4)lPRJDHwA6$PDu{bf7jfHi2De?~Mx z0#BljH%5|p@JGv2!{K{5bp?!s2WuRe?eTgWweJSI+;mE3EG*t^MHDUu8G#49(p*El zDmO~-4syOC$qe(A0wT?+f^4ilIfz%9I(zyClN(zhW(W)1a;y3mgYbv{bh#4HR5^v+S-Z`X{Z~yX8qB8bjdMLb*j~XEA>UDtPynVkbJQFLmjE`h1 z5Z}q0Jt^w6nY|3KcXV!U161J5O>kUnWK=A?Zr85l)*UYp&9Gs9C!bhxa)*(`Cj@ul z+kuB1m-tB}Hk-7BHNkL87RXD+Bc(||C8{<0v1t>p1aZ~|68VWz0*K_#A@|Y<7a0YF z!%9ORD>8)%ruf0hex5KGB>)4(HQs`*^=mr6j4Fqc#K)Efb6xq|P_2Cjc z3+#M*cC-AdJJEnig72sktz#8o-EF{Y*57c$ymnTK%{^(G7VI@I)m0KyBWz)l2~77)_exW=_}AWSZu7QxJ}jb*JN^B zlh=7~3d3dDy}DH~{7-ss{W{0kEWVp|6*!RJB*FF@?$LcC-rGx z5IDRY1u$@|fKkY|K}8dh;ZWDWGiuIDagI?D3d#tA>T%^xcUHy(W2qVWV^fu$N;}Kj0(l5K`1Q zkd?aH{kR{unPzDdoH_^RW2r&q^Nj01fb$5Rk-7I0zh5Wzu*pwSuSu!i{m~_S?-e8H zg8}tP68}z-x!1J~tl!7_g_iPc8y-&{c=>C(xS-KFA!eB}>{zOM2r&t62J_HQ$^UokS@C;?s;OQ6eKb`f%v(V$8uKMHOF4-vlU+S#?gIurKe47~X?G-p1!Loq? zqe@BJO2rvKUHgZ}mgR(p|3C<%zG+^ejiMQfUX&B<0=}WR79xv%{=pB;l+m15pjsf| zem#D^?0A@&_HZR2-~;65FWZZg>WxV=XHSeQ0N_8} zzos>>T#2^ka<`Vd7LFo2p8G@g+4>m~h)KvzZOAc~hq`}(_ zK)%EFW&gS!{!7f8Dd8W%)jO+!7pOj$8veaZb31SaX;_D@ilGi!&(O;`u7?brROw9s zROLZw=%+Bw{Y%PCJA0SA391kzD+}32cO@N~yN|zICRAkuf3)MEXUMvD(v9B8W?oOO zR~(CjkF(hlPJa63K2;$r6(goIxxt+m<{|LzZ8oqD?WBk;@Wli3%=N=YI)itQExuFH zgQEe$mm#{bRFqlPIUJ2#36vr2Yl3*FU6+63D8WGf+zdZ+dzAwox1#PLL{eu6?$Ppn zd^PeejjntwB0G=qx#}L}yXp1pE+PG%{r2SOfd^UVTKeEg7K>mw#_zVFX7HKZ94Xy; z6Yt=aIUHcuGX1#EhJ-i^xYD(%(f_s`aeOei`U&+d*K4x|m;c&xrK&7G`bVy(|E*lJ z{AY{mKR{(|C@shrZj$`zkPXM$+FjHkj4IJzBAo? z+jP~p1&{H0pJx$a4H7U-pGLHxw}cGT!twrPtGT>{2+bkpwKMSvuCM82wA@9crKY^G z4d>R!rmgKoZ&=intaG_>P6y)_AZs$Vqe@o#6CB;*kzLch+FD$CW`(K|58 zUPSz+momeS4R4NEmvN`Uw2OnFUG7h%{3&D7k>FhyQJ0GTXp?Z!S=30jT^`Ikv0Xwi z*FA43gOLq`9MKLpqu^E^;gA;m1lfB(!jDoB?GX^QX=hZd@ggHE*D~I4j*Aoy!;xBg z?W7sqgJ1sjHLuNcuQK!{VN@GmwC}2h!L{m%;X#Q}b zY!dtMt1H|@&+#U;H+2!J@Fa;_DeN%OMWHF5J&Z4y~D7i{DWT z{FwMG@vWCX*C*p1HwP*Z*hK(KYYrd5^7HKum;>e?hb^hTnzdJTb~b?GvU2hri8DrZo2isp*fDeoHObsh{X9an0p8 z4eCg}lwdd5ntoiA=oR)RNu^YVOxB{M;whYZg!q_gnYO%XULe<%sOQ};SRt1!1Yj8> zsxj}To3`e}&}Oh^qZ=y#2{y`^;3c4+rb$f)>&m9I<@{Z*YDpCwYl#DHtC=( zGiYdLu;H+2gm5DAW{N_AS7VgrA`xL<-BV*p`;=&8(3-;np0>`CTu>odW?(7}lmdIh zP8d9E(@G#eZj;WC9s( zD+?5+Y;Kl2-~1T`9Qiy79J_r(^&=tuepKw4SuOe5fARgm!v`gyc!d1)o@KAWv)z-J zowl=6vwBI-@Gtm<@tZTB#;Lu{Be+&BS`~<0f~@ywiG;K%=`RN*+BaK}_v4Kt3S-f`v_j9w3S zPFX+nV?cox=asmVPeEs*oDwR$fmG6I^?R&Iea;kjo%kuW7KJ?$ZV97QHk#2YI#pv& z)w~qQq8GH@q&=_#bkpjzO_=E`nNMt9 zmB3BrQgVM<-Q{bf-lMIa3nIUjNvcawvzb$5<~?}X zi+Rg-) zt=W&yY#l`8k9a~ICuAw$coRJ?X#|OGKVdRz#@Kg+*TR@I6us7CRg7XXu!crU+_I67 z^ZS~BITQykcgjE^e5YD%2ZOAvoJLZvSU&v8Z5bd*pqw}}C<%6C9sSK0+D9-gMC{A} zwRO2XAw%RmnT(q760?Qhmjbc42Z0S1PeG0|yoUmn~kYM7=M*}q_;#;RLaNW>nat~N6 zp5>=i)IB7!*s?};#M{J0U}h6B5krK(RociYoD(8;PI;4uh>npb3+U-ZE!Rj3?PSVE z6Y`wyK>wtU?6pLe?&7xd+uayTtlu&1!fu-U6yX<0D85!H;xY>w9hgh2;>VDiDaIJJ zBTImB7bDm2W+_xe>Q{K++J;#E8~CBv+=m%Gdzb8~Ebk7oaj$0~Li1{((#G410GmPvwW?u5w7aV##ijCUOaQWi8ETEXkV7OYX5WLB!Efs#!F34(S#vopXwI+Raq{}Bol zEZmHwImNo4h^cyo7ah7gbN`AnQ^>6Av`GHfBoWR)WHp_td|KsqBHaIUxZ2?cQL_bjv66|G${kE8Io%C=_MJ~TF62Fb}lT1jS&Nk|AgIMj-k+qsT zW3^+4MN1Tc%FTdxvV2lxu(`TNTi#LAV`+_O-=;wU8LC*OD&5lgqLW+;rfe@_hH)5k z7)z4}=V%6zNHt49lwD>{(7hBwhmUOn;j*9& z^kZXoI~(maQT*8ZzQCX>1n{Y8IHY*P<)IgQfoR;p8Bri)cB^pm7q;^Xbx0Ecb)pY^ zOgP0D}4XK9Tr$ zt*z#}N1W zktHMiJ~eWHN-DE&XOmOdQ%Dbud&!3Ggq=#Tno79g9eDKO_fZC7~m2ghRtO_ zK_<&rr@kPvILG=ip(i!WWyUvruvU|P0H{l3E%U=qwZw7g%Br0IDylyCw7ONlhJP^V z$aaJzPb)FLB3(L;_?@NLcL2RMBQbB~AJf(!(*j$A`aiqxcD$!Z$h*`(PWm>W`^{%omcRKY)VUI7r6hXjG8&cOQedS=?RRqe45k3I(t;k ziadLqzdwzTqAY=TlN^@SGX?Yu&{w6N77uM6A~YAFu{Q@NFBk= zSB*jQyzl6sIWQeyGNd4HArhY1f++4OjMUj|c|NPk6u-~edp$7)q>!B~!Wh7`N+_jC zS^vrcu(Bw&MpMuf#5lyC`YsjR^Go)6F7^U z<>Gws{+EvMyrK0UvzH+07ZJ%Nmr7T4oh$kbWw-g&h@YRxvARf0-73-`CsH6I%tdP& zGnjhd!Fw9zMc6RHEo9Qk!?(aKxNReGejIj3g*yK%5<++y{&B0enkjT+`IM=4BQWF)qYJRsv$8i$hD9N; z4{ai~+={&W-k=r)wzUoDg}Q!+ud#{JHb_3`*Cg8p=&b_1;u_MgAZl*F-tdn=KqX(P z+?Y=njn`bS$I|LQnLqPY!P!qR_+NrL|2;Hb26{CFrqSv>Zw_2xzpyO&gcbV&&RkQX zZoj;T{^F_PC{}aJqFmp~?;WC`de_gnM$&lWsId_U>culFyH3z}!L)2DP;1_kL7lA2 zJwb(bz1Q2xl+!#1p43*R_SyiTP2%g=N>^Sx=UxAdfzFOCv702Pcp^bK`f+wqtk8T1 zi#7=|yzf=95vR2?$)fa(sKfC6?JRGFXFJMw-tG2;%UMo$%EN(`zfCiIlu10~{AGV< zokhYasBVLvC5>v4yJYubatelyH#h7~ZbD8zF}=MfY_v>eeH}SehwlTJUezM;2S-&b z4`w!4t1L|r)Pl8WV!qcxb!p@)PNY(U(i@w9t^pY66s)X6%&igMND7lbx1B*JBlFF9 zF=k$P!G}5x(}xOGdiG9;|45X(BQM;(IAO^biv5wJ;|(C@jreJE4=SWJ7L( z>dDNv@|*!B^risUcu7#>WeJG?b4YpuVD&+{&H(Q*l;3vP{^6}YXjXAk6Nz`zYtIT65NXwiXqrJzeJ~6fws@%GOT+P-8k#& zvjHr?&ex$*RrT%!$TZ!kFtw4b9vUG^?L97VA8J^3XrYf4pd_ReIOjJ~+-4n1C_K3sYj zCGQ1(!MOhRWYnb>>j$zcmek79uw-a$ws!70UE+wk61;6;j~5!+t(iHgzHGvCJ!?>P zA=bM)XRouJ{}}*n>nEER$-vnQ1+4biAQIY&EDDxd}qYvPTL9p zC$e`$myG;1-~6C{Zt+XGQ|Ohd7@p|IoV=2+DaI3zTK}O%>7*7n z|AuDzm5Q{SB_NBoC)4+md0uBC$b^#P^}K6ZzXyQ+a$-BGFuSso_d{@WPnR{6AWyL!Cv5Lm`f$w8mzY`FO<|a4Cdw~+t6X<9vlf#5P(kO=+s85FL_mto=g49<;?=ZD3X#*LhAqd2Kf!JdK zrq?UE(Uf9LoI;P#T1)xW%vqDXRS+w=Y2nDX3BTYhFzRU+0~A(1pe_*J9Lt@OO*>Zi zKE;k-bnF#;-2tuW(I;?2@f^5wIHxta^uPM-J9gY|gZDi8xUDpn8heu6q#E{bmS2Ao zAjduH?e~Ntfk0GXD0HR(>y0}mv_owdQ)ciWB1{qD!z&^QNYA}^IuZF2Je<0d4q}*d z5#(C<#L@2%5TZxVko#cWTtkb#sJ15S=i@v(w}$!3=pS$(!U*J6-(=h)enmdsYByy2 z%3ZwEc!X^grM!T4^j^*4yjyyNY~?@2ZTpOMDHmPHV+BzFFu56wt_dG7!0|@=D$aRO z3?%9iKm9_3Xir56g76k;)`arc{M1CGT z=uO908QVgr&mY>G@G$7@rYffoVGOvPVBhSKBt{J#+%{_uy^ms6YbCIYw_Qr8B+C4l zhx{?PV4?C7XvsETd#RA(BD64&8|@m>T7hDb72K=Rkse;_(Pm&<{-^~#EFz>E(@Ohd zioqe(saU2FVL1Q4kFshV9L~jw`gAIelje!!_2|a@*%s;7FoapK&J?mv0jPk1OZEI&_3oGF zecajzSc-sRj9y5`Tj`N)%zJU!OdU!Q{u_^J+xr9PzmRs0U79uPmafXItYl@S`J`>z zwr$(CZQHhO+qP|6o%?N!(c0sj?tid8#ELs2=Dg-yW3etSbDF1kP*xMGNOjNiRv)xR z(?f8?tQlH{vaqIO1(A69-P~|&!Y=|E#6zd5wmPY{`cjIb)sa@4=x8l=@$C2sFoq~# zr$^2+hrsk7b*3QAcwP-|u8P<`lYTJ&6Dq^+GN_DZ9A3yXh(byqT9G-ae6cHoYO|@@ zz3_)PKD9}WVsr2~Nt^Mvl_Jz;tZz?`wJDn)2;=XeepEnTQ||sMnv@<8OGF6$a%{Ay_7#R18|r7H;P|z2q$nGNniKit_6(S9r@^}eBXCR(qWDg zY%D2|mkjx6w>F;K0+TcL@I1QvV%4~%9x2?n!POQItgF*)KWAssp$p@qqNkg_*OwGP zlN^Va8W+~6O;Op=(8Jvhph=7aFJaHTZ)T&drPMt2RT*csQ1^boy+HneBOF72w3y zWu>K&uk^P-vtqU^NUj2No9ld!>j2H-y$JZdseisHqVZ-6cFF(T;@hy+BF1uCSwF5~ zycYv)V~7z}XHK(T;=efUyy~AaHG^z`%;CHD2)m#DbnGa}=kIzB}G#GdpwhdnZw+xxUKK9NJ zRyQJf=B=+7uvtm1kWFDPTeG5n|*|$YURV2btCDUCK~{JXtx7 zWZ#L==dgSQa~?g_H*T{syGOX>b5He>^#MqH4n2A5vp1j_mp$8ALe9o}07dlTz4i#Y z>N9FR&-G%ny68oS4PS`QJGUxzPc+Zx4omhk@+lk7sI{R zk(7yCdpP01MeYIH_$ebY90|Rm(m`Dt@18R9Tl=ZFVy1pG) z?CEGU6!e%?U%&pfT1eqQI;OtG7L0!jAp8fDVdV7wSuOuFe4t?R9UP6~X^He59Q_R+ z@JEQ!gr$;RW*fv9o8njSkW)tV>BmAr!?V)ylxtjcQf<9LzUF**EAxz*oSh_P&iyMm zde7u-GsOf9-<4cqGNt9I%kv$z+tYobT8dO+fS^Hsa-4=eCKIl$7FeAY(US*3;K@DeiBof=}U zS_Y^Hl{e}XJ#Bdr?6jjGN6em8YI*miW$x2=>J!Z7`odatL;ePGc;}$rmzuwI2`J6lMdFn|JHiUBCm|v#v?5NBjlZWuEaICHnKF!+5i2RkYYSDO72VKe1^SLF zj$8=>NXjmjQN58h`mrZ`TM4R+TYAv*5)1(lL`$);KYmUC(u2K`+z|6-?-;*IhC~7* z$n**vR1+#8mjkT5@3Rb+YtpS{6%Krhp^pP@SEa~NC_r_KA_SRmsph*@7i!%=$mNJT{k5pZjAO+-=GQU;GZ%uYg=Y%H=- za_2{(!1Rha>LQHw8ivA|3Q%@!SbR{Pb^2=MhS70;-a7cresaImI{+24u|My(T}X+p z)S-T&>v0MJE#@RJ>G}(L4xqeU1Lep?O9Wn8Q@EVnz5r+?oMH3qO%_H7Q%aI>_|!Nw z*d8F$gQ>v5c1be#1%9Ge$5c_mvrOdbT8ER?o0qp@s*>2H@rQVwd`Cxz@nrk;*JgG} z$x@I$<3vl9 zP@CAkPbH;Q%DZC-BqJ6YuA}<&Ks8wM}+il*vV} z>n;XO)FRI$TXut=)>XY#{@0u_(S($7li%h$a`Mn2h(BhwU8Eya)@)r5>zdT-8U;tC zm$$o}3HEX5W*^<(?bNzm4?(FOP9CPHrcvMxpU5Dfj+XkiJvOpi$uZ1C^SZiC#;D_U zcE>52%MFc#4s^Hbr5jBDpiIAeMAi@(xZ_?EcS$&^^$bfUkO(E;M3DrxNQd>lPWf}D zb9LUSXE^9cs$Ju1r=L>};6{fT%@D}|E!R0q+x{TAV>!l3-HR2tZ@ z`sL4_)j`3}!= zgo({KPHCvOXxt#w%0lcKgdw>n5a2G?mhErIfov*-;^u;s zhiN6<@YvSD71J#dKN9X1OrOHG-2N+qRjt*}e%j&h0mwQtUvk&T^`FMsU8KG3qGI?O zkaqO8sJ|P{*B4t}>zX}{Hm8?D36fXY``lW2im5&@HmyOcwg4fKGZdTFq}Z#v)~#Pl zeE9CoFGMnH7uu(TNsDVyRpqcc_0ZWRT_68cDzCM4d=`A?gGv5dFNeT?>fG?{y!_Wh z_&)*xN^bT51=KH(5lg}p@wMpLL1QxX3dg%s#`rGFs?yq0EHss{L;5aMu$B`Cqd#2m3;J{j zs6C};xE*nNKD~KvolV|&aXo{1-`$|;XsiQ*`{N8*b5u3!NMfPpmH1^=NW~g!3E6h`J7b20(MR}%XT?*u|p*T1$ z#Mx0_^L5IW6$IH7Nv4uqE;bwS_u{6{ z0#?T!)bcF=`r7bMe6Pm$_ZPa5s0ovm?{T}{gp=1n&EYnh%1-uu(rZD1fIkG+V6}Ji zEn9S#hh;7o`C}SD=-?lKyNPQeBqgXyA+|w=B&^J%oVJ7tr&t@<$cayHuEac3LCOQH zc&FXG5mpXqz<>P{b6WzSVt~OS;!c7-Bk!wgJv=|vJFzyd@7k?gwPFKqW>6noyy48K zD;}&C8TLz`tZmVrhM?Z2RvO;CQ9ws3Am8*}fYE9#r$$cEN}>8Ex>yY+GQ22}cuS8k zu`%*U0Z@|dZ5>0faQeCgRC_~AsjGf};ia0aB0R_@D*BSZ5Fo^)9889(3bCmln_ z5tfJUF;kzZZw@Yk3fzmlMz!Qv;2<%U-Y6z!!Mp-*~5tn~#ozB%~Av z;0=-Hb(k-WE;5oUMj=!pWk{HXa%_7ou{_GyQ1=*(rh*n)pj76?g|(&IP~c6SI8NR~ z>TTJP^Fh&JdK^aS*Zf)M6u2b?wjKD~K2gNe%S`D4*D+K|JxW}rPtt4g&d<2hM zN21$ud}uGdT*d_EjUNPel;YrW$j2*<%%>hS$tz#2-DpPK={cUmZs&MyDO8yTPdVD8 zS)+vtE1W5aZg_qwb&Qx$%-X9&r4F$W|$k zB!D3`2&@td{JqU4Dtepk{65^WBy!}$@`fMKVvx6ibtL?XNz2=LW!K8;pxOHuT(-;9 z$<&P*{S!=0)CPv@5MX)TJ$`%-8R`3GEnMEF)x%k3{NaChlwWC?$bN1xLVh%rj$@EyIu!B1?%6ii;V4I7h1X07ilhD>;vOac<+%FLCKoEn?!btu6>2&61s z9~zd{kD*+nqM(36ike0gZ4Q~NJb;Va99 zL0@AExJ)bScysExBFl%Bn5o8Y56)Z;x~h?@cADV}-re&UZl_&b>h0FSNN9gc2Y%rb zYH3_!KmWM6nhj%=azQmPXq(%!H!eE%aG=w zfq<}<{wpma#Y75bZHi1=BAQyIVxe4`~hTunAQ9MTmVF^_U)r8A#0TUe?SjmTAicg8-=1JTEV05fHMYUdl<();;^60aqiDi4oBXyA1{G@Cl!cx z39x)XC)~U7AOBtc7M5qc_?bSy)lR0GLqB_!CcAXKH@hic(YJCxCz11*Gs!|z6`|GV{G{Qv(@@xOROHKhI(W;>@rtX78bOP)W5s*Y?1@>QQ2t#(8(HiDBJ z=jP_}B7owg@vu?s{s`skN4s!t2v;|jL3*2-uKMtA-@h4lMy^NWDJhRjS65s=*@yIa z`3f|0cI%N%@d9Q@8FUIKWb*5W*$7vs1}w!K?3F5!mPZZXMByJfHlj(TCXA5z!JrRf z5NgDs``;dO6kEdJayWB&|G_x&^egLZRkDad*Q6*mYqIu0>y>$nH{{MmFKx zd}C0CGShb-!Lb13bq}CCz8W__CU_LzQkhA|AfSoY~uV4i=H zHIFcx$oYl*6K8V}e-k?M{Zdi*Z*8Hx|1V4Ff2TJTROA2(C>%{jCpyMRD@4fx0;rAj zZL~1Glz8xPba-Ht`6n$tgcJAqZ9&l}4+C5~WmGPWq&~c*7c%j!fD^3 zL~#xu5G^G1j9KZxP-*!FY&cO=Cnb%7!m0VJyN6LOvHhr4>GQaGL{NUl(>`w)^y#3m zvoR1M1UEyl*ZxV0<_OPhl2loKN$D(}=61 zR15WBnxZoB6G;S5-uf3eq}u(FlR$}FtICFs!S%Ne$+{WeB+Z9lT*`i=H^=Q)`nvG~;YdqCgD3N1 zLfF@Xr{iL(4E-%D-FD=ZhjKSPgx}QT#)9F2fb*^->C@4Jy_%x0lSKuFuDy)_?KMl zG{MUZ5ePN*2ud8UGcRL7^yi=fY6Gq6Cw^3w@st!z*$G#t6GP!N<^a%BWn)B1i*3LU zDXZPRW37-OHm{U!QIDoBmx}1wriY>kT~=`sGIc=3e8UAUAD~74hAgcgd5S z`hLji_H(~lurLVt^?JVUX~)b8Y8M@i%$QKdiX0baptphj{vWkK;Eb>I@Owx7{cmsm zBLAPe>i;sGx4x6ZU_K93nO!q&6?uBJvbj|wD39ZOV1)6&Me_dA<8xXzk#X2|;JGQ~ zekaXy1BG~be?{F)Ft1_a)UR@1?;NIOoV(vmj9)};5pDf!AB4*(jE$6*nYA$a*Knq( zkWcHAHi>DFcqW05z*tzsXo=R#bAvg_ENjXig}WO7f%WxpAr`>j=s!sjuUP zR|VK4SHMFgoK{BtXyQPSAw;NiOorQB`06WF1TWyo$Ou_4maiHZwI53$qb@IhRBOBH z8G_QWv;Tng8g``Y9-_Z=vA&*0%S^m;Nx8liO?B>X$RF4vUV(%E7 ze|WPjDv`jvag42$aV7gEHrW0aa|?z{dd4-$1KTvlzsS074WYD9AB*-LU?wRQcr&&zY(vJZ(xH& z%5&^^e-#Vo)RvP5k|z8kGFQ0kDbh z$sGT0Co|Q5W)1yUSffD|++F@5llPJk|AU8{tJ-`T*K-q4}c+Gm2@y6x?N_Cz|N|kH)s0n;GsJ zZ)ZhJ>LSt;qgB!v1Z?}7bLAP3Qp6VGakcRo^+m`pvFm<)}O#zYhr8mEyRhS4+V#uSR z>OJc{V1@#n+VWog6~r*%=RrTo%z@fSdc_;Kr9Iwhry6sWtDm2ll9v`UExVMqV*PS_ zVN>>eU*UZ$tXuGUrlH9M!3HrLRIAC&a4BGwy7wSlUYD^bP&TgOvv+>=?D58fiGr%) zBxf|_snYOhGhqD^pr|-wns0I}S6`5&QjW3EcL?&0$!0qyN)Rp%${|5f-CAFso!M4j zXrATQ;B=OsAmkBCr@(laKu=X=Q&m+em*Qy(Y!D?Llg3+g#pU#xP*q}T;)r3bWhOw; z*ty<4HCLevUSR&iR$Pn);10zA#~Uu_M$lD;8;j_yo;?n&&)FN*f8gCV-Nh_WAb20VYSmh4+4XATimPgWHL6A+d2Y`M{ zy%d>JOyUo6cV6tvw?UD;inr!2|K=STt%#9qK{i)0uh}po$PHK0O%Eb*n^(eQRJ)q7 zgJk88Pqv1rHCDrGk;7=DXvouHnwLFY6n)yzCq3-QrkKOyld+g|#b89ni?akhkclXX zzNlTPElj$lNDl$w4l7%L2QetGNFZ`ZKZLw8<9~=-K7cB|nsTRDZUnHj3rK567Cbi= z;Dc4I_KE$?oIS6QpwfS_>|a&lVBw3Z!cvcD1R=>nnL!}nvjbtYW{t!sXGZx~!^Pf! zP)juJsJkG4qqiAcu+fDNLz63yfm_D3Hh+|MZ6-&(Jg+bKiv5ppfm{3L<*PPR+%r_^ z(ep)BzH*7V2W8K?XI1E7u4Es&synhvgAjAc8#UHB7;ZMdPCPUNGRxi~Wj>s$Um*Gc zDXhuBBxe^|%r1l>X>H(JVUoT-HzRMfqZD?e0n^p^^Ke`D!Bq}`&qK$^bP+8PQ-;)W zwGNM+7haMNwK(a7>Z2Uu`x>s5Z3kRnB+}vgIA2(NNAgK_magF7s2)&e(G0f~T^PAU zpSl>#1Q0RLUek!mFzx#zuA?s_bzoPj;p2h9RML`m5}Q6JVwIOuxS*mR#osw`?{=6l za6qx<0sF*Acw?)Z_@t9qq@9SKd|;9cG?pUCX4!WUfa1$WjNSAMMA?Pmgrm(za@nXC zBsz$+t~cbUUVQ1eX469Bn5FIPTh^)_4e>|$=EsL#*iAM_OW+y4CJk4@l_6)v`@UOyiTR%IZm4Qz>9QvwckdR})8s zQT+PbuQ<3l$*!%nliND3aAzfr<3~p!cOFxVu0Npiol|$HGz?bK<8>m*u{@>%#dSgi zefXvwi~!k&D^|Yrqm!o1J2!RG#=0^KC|~63++JsqBts?sKgas-8m&Q+`5QP^$@>%T ztm+h^=;&FslofZVS+zJ8wcY~eY97;kc34hAy$%{Z+{@E5iI`bg=%$Kk%npNfh*fLX zfwaP%Wo>Kd*+rFXg1e)szd80P-lbz+VzkA)5-!S!p7aDRiGbAbmzgYv*hp8my4&nc z?W(d*$_ggZqfKvTglLR$c3L%Xtjws@l=Q(Vqz9xk;FlE&>Zx6$A)X01fOgtg%f-g(hg#QK!V;G>NG5ERk%NK{gR^_^$>hny8krq%eu}g&2MNz$NMS}{7lOr zV(2BUD&K(w1s*kWw0Gl}5Mc%7th=O2PKz)}DFK z*(AxGwRj&K9I*&6Q!YEqStF+q80twUV7L&ATZ0@T5en)lVApP>Sq4?m5A4)AWb>ma zn6_Owa0IL|pXirCf{d?NCqxm-{F#Uc=L_#3!iX_y*=ZwCVQCkTXK*7&KV7BX zDT?kkGQY2&C~UaI6s<>t*l6=4RO2X6ifw#+{-lzuW!#8uEo%xj1r>R;$*J?))NXiA zekra3M1M|X6o;pmkGNFd@sJ1|jUj0`+GGCQ7=%8f9G|ETwvpYhf|3kH!r>AK{Y>ss z2z?(7LK-N}gmXFJb+r4AbnU+pDy-2ID%J{!=XCG=_I+%?C5}{LXXdHCF~5Ju5siRPihvcr z<3(5QQ;3dO9y0S`#n0~QAye!881)5NK?cK1Tdn!SDR89T^IAS(+V14&stDrR`pQAN zW&>%daIH}q!-ezgDHR;G2Oh9Vq3r2<%r1k$FYgn8xZEAFK(llH%_oc7SxLj))=5)Ms5gE`t<{ih~BH+*a-Ns9x8 zAYfBBF703uNdBS2a)u*^Rr{p#8ai#g1Y&HI=h3+&Yh>TDr`%kVW1O*WfP*nSPGj6) zgEWcacxWNA&a6Y}QcmOSW2I@SkbeY=;(!NTkhC$DzG#=%>~g2y$tRyL7iTh$(dB#l zjTH0%)Qw@XD+bHDxNlnpsJK5>k2?J-`yEjLZ4F-B;XC*Hk3q8&(78zh@o8jkq6edk zV5R~|{pByNA16-sH&xufUw@{t6HI}xe+cw_0e2KjWX5Y^Hpq6Ct{hbBTpZP1nf=B! zO+cP6%4hX^6k~Le(JZWlk5s|Be?tW(pVTQUZi46VsmvZ~S}1CT{@AD_f03^0Oja!5 zSUY&T4VCC5;;Pn5w2}0P(7e2LmYpb{DKupDVtp5EYsax7W#}LnjTwmhgZ|_^mE+DckiE&n6Ei^IhDob{0mG zT)jZi3E#iW6Z+1jB2xE(vOHKvLXApNYi!0Ks77*{evkTizKuGC>B1L}*-Yp19%a%L zJ!vg0vd>zr+GHvTi?xufrnzEKUa=Bsl*d<$1`5;JMJdo_Su}?{G@v;f<9I)#e}GO= zA=ZUpQ~VWZSrmP=1F_ErUDTRQX@h5*ZE$QCmlTPp zFG{Y(JB-COwYhWrod#I4wApk1Vw9uwQ&mrD9jIdvW8aH!hYb@Aw~*0wgOFGzsMw5Y z06cHqiARJPoXg>TO2tGg|GD(DW{;GAX ze^C^T;t+;5E?&QxYaOiERP;9I=GBl0b2e&rhG4YuUrOqMQksELIsDm)#3UTS`Tcif z_ti*9iD-v?{u^C}Tw5))utnxDMY&HxGgpz$$5?yN z5h>k8Zr2oHA?7BCKZLv)Bo;NXj|$3mPuNUE8ziB0`JM!q2xAMMVb#6;W{e#8Ma|Cdwox&m+M- zSY~6Wt9sHnCeuFYG7vU5aRQu1>O|d>hA66sq3(4-T~f2`z?Nu_3eacfqo`r-o!CnHX74GhDhp4-?fUw)rT^8BS?PO%2t64n`rwiZ_J#SvL$N`7TP{rE#; zrNc;1twjqdKIXYT!v8suB6V6JPBP7gfLw6+k$zIua~Q08M!+naq>_?FsTgL88Jj}52>=QS9k_N`r|nnw3%PtqYa%~Z$&#!V5q95(U1!ub!sKg}UZwOk#();p(-zAslhxnoX~5cB<)|fT z4$#6lX;aZ-Bb)gW@9rshOhuzcZdkq_UuPNYil=L9-!vkl@nA+Ax&spe@MMW-3(d1` za;5Upb&Kj%)ktq>#a|qpv%)@&@_^J%!X1y*O(!*H)^9eX!D@LdX(^5F_>nZSrx-T` zcblA4*Yw&}eXa|pfaOCFn)F0i0O4mVl5Pu5H<7uo$U7K)tGq7;9%=v>9CnsS&`jf! zpL3rvClrJYNzd)eF3JC{SPw2JXw%^^K_*PN+;wQmlr!L7O21Oc7P37$IGh|q<O> zW3@sS6*{_SRE6RPt9Fi>pA$-Aa<4ZI`{kYzrsU|NVv0 zs|5#7qsK??!8g7vJ@%&|=$h-0U$Rx!agal|Xhu{PQSGM7{F5Tw>hEXiY?q=ayv1*o z2%Oz~T(pwl2I3^c@i;o;69;8-isB?i`mx`Stmrj7tJ5SG%u zbs|eS8yABtJs{vkS=vVbey*M^@wcU05dk&Kx_6@!0dlHI2TaZ-&;;j^Xvt5{o^pMA zk_tmFg;p)w(mYvfbx7+=#N9g-0q*PkR2c}b(ps9EaV`|P%7Nly;aVbhDJ z!2LI~tR~v3@N>o>B4um=i}>%0@>4?j1*W5i$>NsiByw&Axin5955gtkq7Q_1Df@d+ z56wkX>iUa?=>+050_iLQ6W6RtS`OR8?vi%Jihl(RWO7UBNS6)c)^JswX@GeHrdd@= zrIbUjT-*cslTlq!nAd1jDf89Ys3j;3Nju|Lc4)~H#%8dUrll(PH_N68mCUq=c_)vO z4HHIWrNwcQN*sB@S_QD!y-fn;<#cOvB}6vJ9PkVXR2=vX5UKW?l+ZLKpv`yMr;$)Gi2#4^?Y06+^mdZTl{Jql(uSg@)QmRI5!ug z%O;?({hHDwHc7t$E;v8TiS0#C6!IKC0y^c?er~=lyM?6vwjA1kVcU$5}KJQL4rO1Z}~3KKG4t zi&VXPP#OGVCHZ9YU@|OU%R%xW*3!H}KZ5~nMhZW&sDD6ts}OQ`>ha1q7R60nIX%5W zrFjmk<=W2NL{mkF9l*h7%SX-lJdPQJHs@Egr^h7M+?IYSYHnj9wB_ejGas+7Bv0H9#j@i&931<(fvr ztCJv0@1@ZuCE!XSx`t3J5Ff)G4tTZJlvOJSYk0)mdof96n)`qIFFpv^K4Q)vv zwX`%V?aT4Y8M_m2!R5PcP66;j%?)YtI0!6-qfJ22S%doP(BN>)VKihaIl?0(Fo%l* zLPVWqLh@vweE!7XwCAI>masXYu*Skap$2}CLMG13pHZ}FuO&|8B;nK-p-4m&P7x6? z+J32a<3@4b3&HmMh@!lP{blW&qb4bKwjkTmtcrvmqVwqGE2Trt+rwASx4$ScV7!2T z%N#*>Nj5c$ibVQisxpi)rV>J(abUBV#@GwPMLL>b%Y)q~FhxB|J#87iI3PQ+K;`m^ z!k2{~KVUEEjxTROLnVI)7nNTmNqw(xn=2jdaZ*d9p>sSXYuveybTuZInXVhW=|&70 zbe3@wXjFpY)tpLZILm_h-KH}&-Il14Q{7-&Q`@RoI?P__w)!Vfd$80*f8?Z4(fHEb zw6WYAjeb_bt(3Fi%)UD>cA;LuLcmF+N_#eh-rkO^ip8O9usf`{s9Dg5YhbaBxVWy)?+DGcx+B+m=)bo4cSRTbE>}5pATtTP~Odbjzpy(^Yr57YW zh5$j@m!Ei#M!px#aR%G|8bAf6wTq|;-`S(qjt8Y3Gy1nBt=m&KiYg>5aD~II0 zBFCa#!VdVjAEOtW+4O3*Dr*qPKRCeT0+2h#*Y(f;(1^!oTl-yQaQ$yp0LK5!|L{M9 z1d4A?=mUtKgNX$V?T+ygd-Rq+;(p<+fq=xpAh!)tu^=U4IUoEYAkn3$xRB5nNl?TI z?947W*hu6g_K<$fXJ2K7u7Q_@xS--F`oMc-x?f71draGiI8d_1c9=Y#TyL>EN^|RS zWAb{Na`OV34(S2|h#n#1o|t#0(}W4;8yDUUh>wtG*3BCBXHu!wIpXK61!}M+qcx73 z7b1AWIMaF#G8^&N3R-@bMI<1*?q0VTxSwWXB{sI$;HXR4;ALNQck~&^x?svWnqd* z2!Ik52HKB);`j_kl=k1xJI9}DoGrW>o7>8oI-SmxD0{Ix(x!^`59XH80GXhK59RKK zgz}>A*3^iA*X2S%;>p3!4G9t!!2^A!4A|)P>?ewa z*IF3h=?VHwC2tm=s0;x%C{Fy`!_`>TKr%ax6LmURa#lxi~Qj zE;@=V32{E{1RKq1JA`^In0B}aDw->h6qd2NEr1x<)A8m9t=Cwq;pvRV>m}CMrqTL& z)l8{q4J`gSU&OxseD04i6;)MoLb8*46`%G$pc0wb|auTg($O@`R@l_!irkrOV` z+Ta7)!1+n#=f|ek^KyGKHp+B^*w}J$_a`Gumro`+%XsaK*xSZ3JR}A3zUwyzES(ms zaz`@$&_>r;*2GcK_-vr(NFlI{aTVhF^6{)jft^>ib0toset&ouvyvvYo#VaxD*3V^ zCvvwRkQ-x=WwyD&%i|AavQJDhqm>Szg`LJd(m@*7eiXu%o%Rla9)u&o9PLA}^GXXk zcZ@H0SD?As4I3X1+G{3ScV#p}l^lwcc9qc$lcwaOidc^}Upb)A3@0h`!@MA#fuoyX z`)J+m#=c|r2{2s*I`_%)B~U-ha07|bWk0DA{^+3xbXMLUcj1%iCXn@kO^LmY3pT%v z&a`pJrW^mHCU;`+`V?N6YaF|bocV?tx~uwS}q^xPVOHvA^1PzD0iu_n#Cxre@ARedO|DvCdM>iGRZYIXcr}otU2C<=HJW?RDD&shR#u$5!Q(S8nk+u>0RFD*f$+QIC~G|Y;H zH}V~*3u^c18IjLw<(%KKlbED>llkz(8HbrBUOCG&tW>dy{ru+@G zr&3VUjoS)TiDHevVo7uMF1QN0LbI@3r*gI#x~7+Sp;m9G{wpc)c68+aTt!QIPk)?z zXOH{f%c&}hU3)vV9uoYZ_~OftQ2>A`*|w6yfTPXwmE7;5BCU6cBtAQn3VH6ZnxJA{ znbHU;LpZIV)9twujT+7Pc#Uk0k$Yu(1S1p5#kPouLF)2WKaa@CtyV-73Cr!5N7s-G z;yy_t-cc&KAoe_YSGM}ntrnzZ(SbtcquglMHZ62H_B#$Vr47Ng(C2GL$IsQKoQ*mz z@hw^O`O;OYy~@8b4g2d)oL&k}piX0Nj4s7CQF&o|o{^Z5nvtB5KO=JpaAFjy_!#|&13C0F=6@2+ z1k4@x;2rnnq2vyL(FW@w#U&f9arp(s6bMANfee2=F6C90xn4y5Wovw_rgewx4nx}q`YMt!USCz%|n_Mk7 zg;LdT*@725c65pnYboE&?{d#tPv&H%a|qV9wBFrc+O?a-chj{WsLb!Mz`eReWnx`# z3UCeuVB8SP%zaXdUYYx`;5V|UZ@w>91Zf!_cM9{e1Pz?c(_ZIZke0@- zCY5@uDkvpPyBbO$1E-o1>%}aIYU+stIxWN?Z)cE;cYZMkZj=!lUwX zgtb#$FnD(bv5JhP@q%$iY_hE-$9LG>ml=ZCylD0vTVTE!^!l>V@sJ4N*gs5Q$b_!8 z8)^Mh6RSGB&$n-j1*spaV1OM6huJ?@ex#(VV>SDlg}>2t1JfZM!j>IIO(tpE2CaYv zuJyy}3lh{hWh~irH%7K6E5i_n`EPEe)z#NOE%Qh~4PBYvX3u|>&i&ubo_znA6M+0T zI%044f96NP-4PBDzq%&G7|Ht(VSZH!$ne5}?MPD-NB<%K_~LteqXcb;&{nT#I5B~R zf(C~g$;cxh%9t&=)~nix6bP)DRtTw?UFevZH8d=!R&bbGG&EkNS;dMFl5ou~pIbQ+ zUVUtRdE9k6xxc*^NdbOPhXle%hTyA?epfY{&5NcSkdVa+3(P5+c3{+u(oK-G(a33P zCDG8G(7Y0A-4v&UE()YpAd!LL<|6_8@ixo_D{SdZAUZRsFP0OX3Q}#T6Di3`*c)P{ z?^K?le8E2$&ioq=UE`$Pi_5@pg;5seq`?S+0P~^Py#BtZj_Z@@qQhjEP2=7^KXLZ; zuzlzz98;<9qV?wXC`Fo?4N_!yYnz+g62u8;Lxgb^HM^EQO4;ut(3--jJCdN!j?9CV zN5V6LL21IN+osO`=rZd>yMDEbmomhb)TW*@=d?Pne_=vS$eV0ihePT75`_It`nPCB zk^Gdk_%sYSNccIbUnca+xVOY(4+6J*)+coUsOcU3z*sjkK?9Lo{u#cX*2C6860W2^qzRNN$GrttW9mf3J=SncNntbXsK{ z?QW}cf#`)uG5~HHp*Nk=>U=hwBF!z=x@c)dr1vCCz*eb5L9*{2MzVLrKRcBFB1A5o zdYq0LxTu&~xCA<~sgb^!63yNr=7*t9V<sDrY!66fgrTgk8Rmy}?L*;jZF* z_erV&<<77rIoclW#GLrIn~jaG#2X)RhF8M=_YN3V45W<R4)Zu+lbTjkCIj2UA`d`NZW| z`H?*udgDMl@I3#VLiAn(l{^*P*gi8xLvjoU;KW8t1lyX*)9Gf#iPh0WjfZkH-H>2Z zx@yU_!TU(XmwQS+bvpd~IeH;<1BHnaelt0{S_S)~lU-q0L9m|nO4B9IybCpOK_RRZ z_@soaD#IQy^XS$))#SVuZZpbwr&>f2kEPmpcMX$mT=jBiDxC2%I}3Z$@w5Yt`F8TC zlp8|SQWCaJ`32JKEEwR^{N zeDZ71p)E;Q%VTc0`m;9hFzCb8fv3s4 zj#(+d)P`!T&s+T#6%5krhvS)b$DL~zz1omjL)92ZwgxBhz@gJh1J2{*R$pxHnE;XP zSa*`b3i2-Ox2MNcUXnJeXF2Xxlnwge+V%K|jfMTpu3@eUtnSryJ0^*h%fM)V9+nml z_5@CkP%7PcyX-VxA($xN7sDaRPhA3Qu+uG4Zs3iga)iFxa%x`B}GM2cR0US3+gg!6~UXK7VWv zsm>xw_H`X_NnbSTxi4mEb#gNT8~U$|M;}2RmeMxix*YU_tq}E7k2@<#AYpFpAvl~@IhbLPEoA{ z@kEXCdGp>{7~}lb1LOX{po`h}z}6-)xkzDH`k&MTZZ=Q8;OK=&M^rj~a z*kK-eW7Uc3Opfew{;eDPFRZ;&kZ9eurJJ_3(zb2ewr$(CZQHhO+qShq- zRmF~T;@+3}H0O94F?t()w${Hm22|3_5mWf4-8c)y^cIckKlD1ZJmrVKkn()S_s zHTYLe=(hszZG2FMMt_zpJ8USY4i}g-bnBe&n!3k!B>La4+ zQ^F24d12TdAg+%S)`yDh`S1e7Udfvu7}n>C9+>f>e!a1G4~`wN;6|-^VDFwHdH0vR zhL1_Lk(Y7T;s=o}(C12vJt|`kku9j_$|AoRXO5;YN68g*a3`HUSy!G>a%NRgOgfQ| zmMH~VSpd%!NqO+v9ECLJ{91tHO|m^Bai&{a2uyvXa@UjI zj^A%LoUj+5=v5GVCd-~%FZjWmf$|ke`bdf)imfQLO`lgUlyf)o#G7OGfNFkR&5*`! z$io|z^>L*=ye`4J2W{=%Wqn{xs@HbRwioc_A;vx3ZC{~R!|@Lq_XO7i^dY*$Ye~I~Vd278^?B(+d53 zeu6t^a=&T|e`ZH|j*w7Jx`-S)#eqDD6$8YWw4u3JN%I1g$w_mx^DTMhnf(4E25B&Zm8uxQ0jfWut0Q}MaooM{e!a4rcM*V+@#{a{CtRT0{kMLdU zCSR*u;a{Fl7=DUBit0mH4$0vJIU#}<8~@tgrqhwAYt`xn^4Ed<-@`%1-i*?9B%?vu zX7>e8GqP^IZ>FVR-&a#?0CErU_mU+%f8#-T|9d>BUI)3S$*|6*WM&mgKPh-I*k)yg zXD4~G^fU;X5G3qTJW`z${7~jhp6aSl&^&s7u9IIy*(EjH|^Og zaNq3<=VmfuUCy7F#TjzG*RH?eAfkW5 zLEA>KD))?Uzp5JNw2qgc@<50fWUaIHZ;`p+R5#v55T4p+-ShG$xE0?9Qn9F#@(LK+ z)jptpXma!)jt~THum|S!!yr>>uU-=9`N688n>{Y;U!wdo$E4i10r#IdCTah+`^f)azkB@O*&tOb z`+rDwwq8=3^)w|2l3EC;@rsIrMIu{D(s%d;l;wrJ53v-6 z*Us_Az?Z?mMZv^yaIkUwUVZySaa@)k_+rm)caoU}N=0l+JG^ecW;dK>-FkPjU$4d) z0G{qqglhN}uO7k(ANM471dOa$-LlC zL0&Ozj&upSHtn>qQ)VW5bx$fkI8~Uli-(1M95$n3Vv*TR=lkC zPR&qO05c`Amfn+vHj@VBQNt2W3CKUB_pkXILaO$^nqHPsscyn zHj}2fxsg%`#^Ql%dOxLa7dw;;W)T6(oR2WSuuM4(J>FNMk%_ig8p52>PD5*Qdz@I< zYtoL{Y<0R<5!0M{y4*2H8CAn}CwfTNvswU^w15q3QCAXYftksFkwN>SNAN2;kMt$; zKS2B&(`VFlqJ%S=7U&!w^nF)7CWT^1T@|BY+dPGusHL+Ju6Q{KJ$^t(n1>e}g*Rxt8+Vayc?w*PrgA@|KCCy&=nGQy zs!)AWm!E|9m%K+btS1uP7fSQ#Vtr<(&*q2h^{TZ#CASaYhc$Qac8~4%3;2@T=4+byfnGt5A1vJu7|y5G>zmv8!5-11AHJjSFx)q?>qA~dwqAI) zUPInbXxZDH@GKtt@K5tN1pr?}Iq}$uV-8_yeL#4Z8j=u;$r8A|>a-)Cm@Uvt+0?8D z=0?e==FeOMF17}Bz@`-+q^0>xV;%^64iuAsEu3O}kdJ$Meg$CDLwm^FDDo;Nl$>T$ zrbwRlu>w+2$X{36-al0d)*bWbA9_49+`khyV*j72(tl7kB}y`Of2lY=N9`_0n3ult zl5e4bi%<3!uBU~DdH`QL76U31?=_pTvbsL8JM$&7c_+_dQ zER(KW8-&(BvK<7g{p@vzX$*dfr`IzuoRx-E1z)TwAZ^$PmbCWb;SYDi|AGct`zvhB z*4v*$TOn42Z0JyI*H-BUCX5SNJ-$y>7gi$U0N7r8V(55JRjyNh15+P$!h^Rt4h1>N z<{{>OMiJxM^4#2$qhVGgKJ@+zUzdV4s7)mKoaI|rBZKjfWwA%zgLM+7Pbbk_F~&IM z9O_j)09u#eN1o=higz#@BGP54e>NVF zbEyUb?i{-kCj_#B7zlp=hrEql@r}_Imh>afBivie_(oEsB-!^Q_3nsBo#b>!`y$uJ za-eTxzc)lQs`5|nnfLLxnnQ>KtsJbG@4p~RPxc22^M9pH$iI~~wEu-o^gmEI+Th;G zBddI7q!YHRY$3t02!dkbfPyj31fY;0K-PlN{D+Cu1`NhRjRO6Fpgx8|!hbnvYvuWh z#2|(GUVnCTalE{IU47=vJoYj&y0Uh<+|ocs^lqnlY)rqMW-}UJddhy-ozVeAo5Bzo zD|x7#DzCU_SZYPhWQ(dcm(-VzEwyiIT~FN8*gDfZoFs8{%i1P@!tWIypw2AKWOJH& zS<8$spwwF26dgc-Wu|giYO&3Nnmj$iTDZ-UtQ?7J@=b|0;S;g7S%z*Zt1L2^T@o)# zwvvwQSvqrEZe3*{f35(O6`+-=4 z*;xV+1LNXXE)e4y`MC#&Wv8kNn>z|-Px5=~idT^lJ450TOY!<l|2DUpZ~bif7m%K>a2g`#yLOJ;f0C(Kl4)n)&TOqP_*2Zpn4zQ}r}e z+hPyDuVPkOX$~KkAFfFW0#Zm0#+@@1 zOfs9LqJlNl%q-@b7bdNoUc7c$JDGN1MNoDFRU!p1!8KD_I=-%z4YQ;!6MxGecNjCn z9}k;=5$s;uaP~x%akD9^iVzI~O-8=TQd7NPt#DpN@IV9Arr+4wR=*=umBjD3aCQ?4 z%6GL|e9Ehuywbg>)RbsNuDsf=^|S*g=m=d_Werc|3U4j3>Y>%^lE9%;amlqb!#U{b zHpPgbvwLPiKqza4Gq0?s62e|DCmlZjxH?B(=;e@) zP9z40_SE5+k3wcwTM701j2}bO#8X8DBb!qmKl8J*a&ou{IK+IU;qPkg4){xiVK|3J z0ff!8C4b++;gKgyB`v6&+*v+;RHbq8N{evjZ|6iX}EWGKY$8Dj!fBsV)ttpUwlL9nmTs z@K(q7?7}9P?An%LN?CcE`6c5ZIzatEmjpI9yf4NdORpwpD+Z^4na&lNiA@VNS{^MK zpaxuxL>Yq_9jqWIGE7l1%~Fh3Q8Hjj;u{K9l)_$9e?f3ad2&u^Mw!yYj9#QXOW?*< zetsdo#;#_OT{fUz;s7{;Z^0g2A(_@EKcQDVz)s@FAV@iJ242FT^NK{`O)+>MJu5_= zKdCZWH@`2e(xn*mQ0bZihKzEkMkMUjJ*5)^v5J{iMX>j`Cc#dPUwdl}M$rB8*_Lgs zywa9!Oc5QTfRGq`kFQk|dgt=sj5v8?YMAX+Xs}a6&N35U?wqHQJXa0IC1z$~ce!G0 zqsrhKpRt0KB^i>VmJqc=rvK$^aL*ii`YunD)RoQvbydZ~a{Io?D5=<7)D>nbM3`|# z`V%{Ak7B~f+z#)$wXeG_WYakUAta_OfdvsbwN;>6G2m;CY6(vM0>KSR6{?;xcr3t9 z?0!Ssv#GHr{h>{aMbT0KNOH4enPZ4#4b-fm12jV`0NrAg1`J*D0&$UGmo-l$&8!5G z*?e%8(R_4NvYH9j6{(;kIv1bHsZIdc++C)P}A6o(G%8eGnw#bhW()>Ktb+KX5cPj(G)>s6RNm)In)&Hq^m%= zYalnzw*In+Y%P=+J7q#Je5d3@zL6PQ5bY?L>O~MWg3OI~&+S@S&{mQ07ojxfHT%#_ zjjn80-hi=V{oL_Beo|1%#J~V4;(8$=EN{@95dmOtK8O(JttTJ|3CQ6mbZ_HA?*0$+ zI;bPZ59#@zqW&dnI^y0U8;zLisRN69;BAwjy8|)U+t3`rJ2O~Z6|`?5uXi};k=%Dp z=+87)SQq7`7Qdh{>wBut+JT|_@cFkqFgbA>VOZQW=3`9mBJ%}I?izD6SY7#Mb=X|B zW_DOzg=TkHUDak`*zXGS9cFi(1x03et%YmM?hqo`$8O? z*J2c^d&i_*iCsDmg+%VptCS?`58$Ry~Y?Ft?Eb7PRtTR1?d7#ff<aelk* zE9P#0dMk4Z2gWKzaUvaREK|pDy+S4M)m$B*)hiARwF#xwCUiQJ@+Fb8ep4pcn`pxC z@)tv9*iZ8cWEPOU@d`{9d;%gq`%vBaL$G=?ehqCt&{cm8Wj;hb!!{Z^md&$`heq(< z;X{vNh3^VnirV(!>oiS8`UGg*FFZdi1w9MhN-YL0 z3$3r7%$Asfa1!x6Mw#a_G=GUiXs$RQWTa6nC&?O7oVzzzB(jDWhB}%RRjVkA z>gWz16#F|S4X86YTKZ^*PUcaydlYQJy+-__ED|$k3>nrCtvi-f3)?>XP%P$FAQXF7 zv`u^aCzfsf-m{y*oT#iFt$U-M`$DrBb(qGz3f695>pXj5VD8ENoLGvAB4%fA#5^*c8a5m2e*p>o0wd2a_aWz%aRUsxc z>>mH7I05bm%|Z`7PI32d(gyu4E!D$Q1{ajn8MVv5W?l%>c&J`|Q=S{?t*v|Z_gG+@ zf^fJ{{pWA~p|Od82fSAho6sOzYnoRS99GK_RlD$w(Q)IosJZ&6bOUga7Pe}zI` z_T}>#-$aYHrEMSBnEc>42vuBb_28!1kdI*^$NMqe^M=Glw!l#NqLXSwWVwB=hvM!3 zoh>6kwIodCOWO3;;0-}xAMz!r{*j1Qx8I~vzON>D|8uU*Q{9JpQNKOY4xk9%i|lGD z()tus|3m~kZ=FJn#fRmqxuhn3_$julhOR1BxP-yQ;BG>EXxF?OTpKz38YKIS6SXHy z1&kTxz(UMeWHMZjgv0^`$W%iuI#guX^5(ArnNV8N>>GyD%q_si3MrPKRNWOS8?p>~ zK|^_Kv6p@DBPo<1nc1_9yWzm0HVKk`c=Rj9xtKLInEt8VM~xPFMb}T)Xab_C%Y0_* zyxPw4o>|c!HKqJE^<5loHAf#3UE@A|JVm22W;Q4E4u)p4%yoTTVDrN;5bl?Txgz&fzfX zGU%+Q&wz}1?I`EKqP7n5uMrjp80A~R4unI=Kbr(8Z`cSOc14COXctja6n*cvicpC< zY;A~5VU7X>bSHPs5uTH(n$jv3x9PFC=58l%3PIkI`TVc< z1+++1XLLNO=(8`3qe~-9*!Lj-125CC8wVmWOM3YPGq-prP>*=Rxf}dE^6?;44_|PP zZv4Fb@e-V4$Utu4go|gKvLvw>l;?s-T?~Fal5>nmUrPX==6o~CcMHI0hQQpC^OfXh zvZc*pUoO52IoY5P8liB7E)Xg$TcZ|3Jo?{r2X+Q!S_U9CGSaPZ9&jmwmp0Y09@X@V zP(?NLqfkaQ^s`VMs_Y9;M>X^VZqA8bdJgGmA9}5`qq8W#uoHL%qnguTzb9jIV&a!V zxRw+=zqRawbg#81XCJA#c8T3N+c?b5nxM^{W?7xTPzvD5?~R096JQmE+kpI$6KDgr z$YFLQ0YHh5WElXa;9hjD*4?l5zj$;3<&I|21EW1?JIiatTJw5Hu4 zL+r|7jCVB(P>ynLxBQmf>{yzm;LYol0=!!BgNRgAE1eiI`*1NMz-f?3Y0MJK( z#imApc4#&({@cIym(;X2=8&fYzc|tF;TE6^J3o={nVz4L?wMYkvPK6RhYPPe&}Yvf z5#^8l9JVEnPCPO1!7fTO`t6vldwO{i;mM&(M<&i?L61n9@WpE3$JiqW>7FNfM+Vw0 zSM+iLc<1r_*XO0ne-{FH$8`R6?EjMStc!Bb8?|c&-u-LoBisL_<5>;p$=HXNI=?Z^ zo{bN;L|&GNA}Bl1vDN2Y%_vH1kBu+%$H4_40W&cJXseNkhD*W*V~- zk6S~bW_0mk$HjGykV-$pZd^vL!S1TFu8J= zo*Uu_ra`|OZu%+BKe=47x=C64tqh4zq&#)cUZ#pV0oBlc!6o9)?+*$Xg5qkwidFLm zL%)QhrrRIjEXtL;W|Z5Yv|tI_B$e+_TV{#euqtd3TG9+YsuoFg0dck=Tt9z?o<3^T z54Z&{yv*bH=GVU`bRUpChUQTqeq|xe_>B+w78F0|Nka7@8TKjA|Hux!gNGdbHk~^$U^u zv+X%a_kYYk8MqUJ-1~kvqe9vz1ONfz@%zIQ_k$;_hz$YYu4wd!A?;%fdrf2Cm&*dm zP6fU8ub|wQ9|3q11Iikq={ctZ^xm%f$CaENo%&xz2@&^;VFBRD`OD$=lO?W@4Fcfq zX!MsM?UNziNjUWvae=z?^31^iyFWVs_%Z_WCRy{EK)t>j0rO_%%4Gr9(hVd4;28mQ z2Lt4Z`OlG6%>@H;mp1vQA?_OsdSe)Yxl5M;)D@p~7y!g^!1bpg?5h|*aVYh(VPoBw zJbUkA+xrwDL*6%l_5b~%1?1JS@m&zTpC$*iI~G7sqWjkjV4E|PeW0dyt}Rsi2|Iut zX}?<1Oqw*{p1XDb+TxRmQ~!!9BjNrLjDMbtf1Z$k9a&XfFyQv4Mn4_E11MygrvMc{81JaNQ3P^(RyZiwiv2M1{@VFIlvnLFwfNeC!L97dp9=yjSmvQ9Zy}<+A z3w-0l2-9{UAl)(1y%v#gr$$D*f^%)t413h{eH?_RWSI1O66tq@({}__c40%@(wdMX z-tY#!Y3_Hy1KZSf!G^n%b67(LxU>zzgP#ZnyRxEtEF<1i4Gd&XhfX?7(`^vbc2VJP z?!c#U2&ZvKr*R1@MF;foNg9F-eu?yck?wb4f7fXVHvGosv4afrXx~PHd`g3ON}D(b zFD1*b8RG@)5uJmdk>l3_J*7cp$kS&B?2$*Q#7p#dwwl>>wMLD&~Ce z3jek(}H>I^NmGdM8jg6YEr*#mg z3Ub(8&OWZWkB5^@e%O4OosPD?G0=c?=9yz;RbYI2WI;7I3aorMR}b<7OZy3`dQi7N!lw`W4Zq41 zEQJw9r4FM#LS3ITGI&D`cWVq;A4M|Ay9ygykK!I&GI&%C&OPQikX6mrJ@h{KQH|$4 z3f2#Ajqo`g+V8g^FPs|jK#i5O4sku}SkHzPBD8@%ZP>vcm=k`q4w5}v+6d0CjkoC+ zV$m8L|8od1V%Id8L7$r~-M-(dZx$E@JIgFHN;Qr(sl>m{2Si=g2llQdg!~pADq0j?+xF!5CH8WzQf#Ir0bkPi~BTO zEW&;I7krp|a)eliyK?wgp^kxn`#Ait2q6DBmwYQsp*oGZH7H6GXZqZw0fCjjNOc0h zLts=*D5^EA`#R@+W0O7&7x=8fnIu0F|B`Iv;|~!x+EIlkqgLtBLehQsX;&j2SZj`> z+aIBR&4*?k@3ew2o-dy32-!%2l_6z^v?pH`u}=Nsi)1Z9U0Qd`}+9aRZ#gRT85@N18wA1Qv*i41$Y?Nq_UUc0P%#<=g6AD&nJ15>@fhza?say>#(P zXerxf?~oE71sBVRkG>JJg=6XG6{DqK*{uZ|cgHXPeaJZ$wG*i(4pKQHH;ynZAyQQu~NJ)(9@Y#e47%Aq|{2=Z!- zm%Sdhg?Cx>eHL!tZX8;)x&3-{CD_v$-|~6X8o_DhCBn&l$jy}T%jJodb%=viwJs_8 zZSaVNwHvphd_<4UW)$hYSQZ;~}IS{rEG3c9$y5tbvO{)oswj`j@r-%lxDxowd=+09-59t-hDJNe7;5g|1p`HpM0c-Gosr!|3esSMrVNQg%Pzu#h%s^nR3mdJ-ypsaxJ4hyE`cQhc$O( zcfe`A%N^1Sp3VqwU*%e8dz5!jYkjOe$|vxpQSJfZ0|rlDZ!+AC-*oy8Abq~@j z`bOF!PF)d516J=Mt3=e1SQ9J0?Fdt{$SSI+)VQqeaN{JIx7j*@L-S$#vAkl#2c#iR z*4lOidXgf+c&i9RqZmO#uk3tbWU7jp&7#IhN5jS+^@+$8jVu>cky@H9+a&6&+0DWxw3AVjts`P8Su-0{;9~ur zaw4cT3h`(1=E1sGHV=4%AU*q{=t19m23^7;du;Bwv`O-8Aw+*yRj zP#7Uw`_9|MMfP~pLsTXxyzoc%P0@pN_%Vkk_1{uEJMkh)Pp~4RZYUUgLP#HgolSTJ z@E;iO4SqwA*L?94z5xr@YUpFWK@-<*>9gPd8qE?}Lx_?bK~S>>6lJ~l=;cRf>LWGv zv0MArxZqgrU|1g9+9SvYSaN|_9&GI~WJ5gNT-Qgg?88b25O;ubkGl8VazShEcJ5JS zLt@=@-UA;4ZQXpI!{GgR-to_i2l^j4@9Orj-=YiOSkLsIC7@pkKQ;qZDL)TdknQA{ z)<`n5teGJ;HSI>=>rKWtq$2GVsCIiJWyW);SwXDbUhR~c54jY_B?}jX2WU2AB#)~H z&ugJxT_A-{|3dBqKS z71QmM)9X-J;|D|WLBka7(NVD_4TvbLVHC-gpiD$V7)$CSP*_1JlBq%*iv&9q*QKGd zf>0=v1w#}H1SzZuLTCh_qLK#*iv|fx>Qhi!U8S}AO(~?_!t5l9Ge0eUfgP@`LnV=; zgCD86`C@u@c5s7}J|@s-#D#kEf=Rxr+uu9LkB$k^ zLzPzf?Eubf-c98~O)^Y@nO7Xe?_^C`? zLGkKA^Kk ztH`iQm|-6OH(%Z|X`ix3IEql-vT2{PNIA-jgw2B#4OB|x9|;?kc*F@pi5hCxwgbyU zW}n`}`sfYxzip?dOZ`ms>XT_4v_19(OXM-TAa`Hzbr0z06F0@scIeQDE(7X4NG0;C z?BTnBzn1bzn3n;=UaZu6p8CHxWzk;v+2fa`$Bw+zS=IGv_>v96APgz}h|UPu;a_dBz>S+4k|JD9YQ}i_Jn;3qHPv#^!*dp9JCva~ z`d@L^386~(DKO5`BJklR!0Y@N!oZ&b%>J;3LBMkDpGx8fdi<0>FrN2w7MRPvX-M;e z(7f1JS6Ek~J)8ls3m>i>yKMxQO-252rc-cmY!~`+lU4yZ((vc|2!7yU^@!7MUYVjb z06(Fzrh9^N-@qatZt=5yVaTs>y|T2AZj7Owt1%|TGGSI5;y*QXmuxmZeLmrc2N=CTUxfb_`25 zPD(FYkajFfHrKO~n16Ld1Q7P6{ zC0Z{$_Ne!;k!~0sdqsHKNj7R6e*pcym1)#C@yhVDlWioS2vI^YU_neCB@|%~f{-+c zAgm@3tR`khHK-w(AlT>uO_Zo&obh?M?lwuqS7Szs0VOzxUqB>&3 zc(z;6uIqHG6S-wQ8A1}-_1F1&rM%5F-N6#sHJYte)oxWJG+=J@a%1F`xS`ux7ISm= zIwN=-S!WMq6=HDA6Ba~X;`zs%m=6RU%qN^VBcH~K)Z5P7J0@$0c7q;dVy17A_ zefXW9iwh7pf44#|m4k~=DuxH-Fp^i)HxF7uRh-b0P4bCC*|kj3TEa_yBWjWv;m1r7 z=3V;g_s>6$q!>`H{s#g800r%T=Sccbr}Q0NjGRR+OstLn=j;l_|879KYTqDsiO_;7 zKB@8#cvb`k4_<~+5UD^>AOjbBo)>D-pqoKk6Sd;{B%bvTMiBf04Brbz?-KDJE=jre z_%Jowo7TE{$6!6*|cj=qmctcYMVG1a8x%ftNQd>J#ah03@yM-|&O zf*ak(jmWq+O2B?Enn+0G5Q{N*xSNb=3^q9Oe#dqREj!D;$PbJz8t9*c7;631yVQ{l zc32}8xN9eHhbM5SJpYl0AJoF9Z*D!IPR8jsD}PnnXQ=*lnU*OQ(h10JPrSr9P=cY45VZ~zs=vkmtSGe=wN37bP&Q9G})fRPj4-pFEa zkHa?U%Vtr=1{L^if4%?5;y0$tZApTm`Q4>3Y}8Q%qY*;{MH9lQU~hpI@87mHO|&vs zC-IH1ppq#k2aGbW3=x=FJn`hSVS)*z)7p5dj9o%U&Z0?&ATV^huzT7%2#Y4*4xKvh z+v*Tdi1|`%YU5g zpknnG5s9+H2LC@0ks>AOAS}PXAT)6WWnkx7!$q3eiIeErrOg=yn(xYd_;~;PdKUTs zYzRzUSzV#isq!oQDVkbw-IIU{5LT5ksOhM4n%gkT^Re~)cnZq{z#dft8bi*gupb;h zPSR9`HER(j&6>8@z~Ctesfno0Z5$MGpvsa{_vthx)*8DeI14~%$H`JQTdpt2ys)p! z$h!=;nbtVAHtxylfMlr%S+QVYXgD10#gLh-M-1p(;peu86#fpAg0BQ&O*7;nCxXEK zw8QX}r`e|{rP#+jzq~_b?@-7+uQIFe>vPi=&$s+M_2(>sw5C)hu)7d#*UKqgIKRw^ zO=MiCvMpUJ@%j>kRE|TXE|dU7{B<8wa%=z?-N%h4&<5u=Li=a&&+_@GQeCD(Ot&Z+ zQNVua4!L=Mt0nvV@c=6zn@)Og4+#P_ATK*_1qt=$ZNDsDW zOZBo&T*0Yhg5GJSKirL)P>8^uhsry25QbBUQWJRG#O zR+hb+E?f9|P!Y9PnC<1N2A~-}d-XoM?5jNtnTNiS&BGz{+2wPyDbjjCU#_>YPSb&pG0~X2xJlizcO^{CpJe#l8lT8e~z9 z=5iR3d+bGVBz$OHf5SBmXqG%3Gy}eTS7jfMd+v2Hi&Q?1Jnd2Bq%Y#%fBOKvL<3Of zg%6StpqP{!X!&}HmfjKpcyi+LX{go%svKQ{A)3gZvX0HwGna{EMY-e9gqI&;y3{Oq z&>`SHRIaW---LzQQTTr{hvKUDzDcpV=C;p*}wzUL)t8k#YyJ^o#z`B}d(bY$$2I*=mkpPNUvlqB z?c5#2&X^MXL3-1X&t#n*pV$ikv&rE zjE%uYL{aP~an$=6rJ&9qa}JIEPf_jnP9KuTp@S=i#%v73gtlWZ zg4}}hLs~26dZxF+2_2grFrm2ng}|ueRWw9*jB^{4pOR#1=(99R@GWd~hQ!TBxS~Qa zwO;L>W*bUTuoH1SJfiHySKgp z+H%^TXY~5^G)h_#RbPfqB<~2=@4?G+dFBOW@C-C&_fcwOm6i|#@9L}cfX9fQJ?yXG zCATz=mm}z|7ozBH&=9jfNq>QmHvbk4A@^TD{Qu^&{%0lle@6RN zKb-za*vMuwU$|1(P{;{rmTZdQ+W?|QHppn!&x6Oe>if`UmFS4O4c)e)faIOSzXu(K zGYzs&vd6kCJ1hsN>%E$y{E&$8xVbH%Q0GJpOdHSbc+GvyzRmKS<@S89t*HSz@0$qb zS;~$sM{}gCQj?fkR9ckS%w(>r(40!EzblZjW;<3>tZdX+WjvRL&{2pnEJmitRv>Q{ zqk$oszNhs!ktH{yDK$b}oekKy*qr$)AF7yjC(S!?QHLQCFH;ZiI!b4#LTE)k zkw?=T?9>E_m{T#{-x!DoKk9TAa5)HSC_R{ZIGY(LX1iM4Q+;qg(J9Wu z2fMS%NNR+Q92lvq->yT?eakR?U!u}4#bK%%dH|UDRsxFQIjGh6IxJ0xG55L0W3uoa zFK;~qI|W!BkI>&7t!c+BwBB1R74^q>6e+9Y2h8*}_mUjf-!8j2!?liINrkZ}vV=;E zakJjt9_{y4C@VXQhj7zphRJsE$`P>Ss$bfv7OvY*WHPTU`D`)?n&N44$>SRYO~)KP zGgXFywN{hD9BmlB?+N#z9Rxz|K^wZ1A%^7}(iGpB0KnX%(jQWV7|hhUjxG04-7_+= zxE6P&5e+bp8*eK(H|)c)(Sez?1$V@gCia=4(>R@|Y*(OPw5Oha+a%0YRCER+$!xa0 zfq%^D!)}_^Hz-w4=Q*O*XE+@SmUyC6KyxNP<5@gSe|V=1<(R{I0;MvhN=BX*&Im<6 z=I`Deae>i|?TEVr39ik22A=UR*H_pO3)^0wu7E7h3H>y>XJpQBdVBXo=yV1FdcqJr z@xm^E$(g4}o(N>;#n?si_F;S?ot`mtOX%(~bq27Khn}LfVj}1B%Atx3jxa4^P-w@X zxv`ApR3Cr%c`ILoOfaSh1d3eXhB&Zebwxi|N_oP>oZK5#x=-^N*NV8K^@hM!d0Yon z(w|Wedx3tMKHH!HD_-``fEhu?;K$?f5D-Ii$`9$iNASk>@)LVSXnew2oKaz)c`z@; zZjbp4sJ^CkZhsM*cHO%%GHcM{cbH9|SEgVtxT8V9V}i zdoB`Iv>{aeSyeBK97578`?6dgVBA+5S^`a1***5|7i14=s_sOnhoS3yH(@`UbnG5( zOcev{<)T`TkZfq-eEb)?r(iYAo%rto9SQsI?sBUCe;&~PA#75kv}OC(*voTN>|zAt z0*wNZrnp&{9M(y52#89cl0YZ|^(&zgDK6{xV!NYt^RDteY`9;*FUo*n@Oy>ujbT)h zkbH5E`{`Ntvuq}=E!tb{Sav73!mo|Oc}6VG0MaeJ}D4G_o)xS@2MVv?A@NCbUg)OJx5phmO? z)XRq70NAht@(8H2RT?ZhAhMEJ4h>`LANOn_W-4&vqo9K?`+ksHNsl*O9U|yIh-HnQ zlI1IHuwNnS_Y0y$1UH)GK*1Rhg?T|O$Q-se@{b$zpTFx z5!dcheyDt#+Jy4fpZtkD3?qmAqtZLzCqq{5iwRhs4g89J&CoyNbggIa)%;3#4R~E1 zc{p~RBlw=Px0n_>QMg{4+Tr(J1PN{x^hLY6q1N#?3+Gv%mLC{(eP&}p{{sC_{jZwH z``P+?`Fr@cxs(4ayYYXOeB%GT{{P?cT4fzOED;nQqq?SsrUF}YBxwp}JQT8qCRua; zb%OZxP_RY$dPrt(+clxa`rR1UwF3Chgm0)|kXq&9$~o?*c_5%+;JrgU6bCcc8_gP{ z2_R|@GuPAEj+bmFv%dF_cUXWZdURIlw%V-Lt#XICc^=zN-I>4r9ur5N^_OaRpdQV? z0Z0sM_3c_2w_ar|aMrr?kM3C&`p{8TczVCRa)%vudh*_o>!~JB@L5T^aN6I=s!}jk zKb$pCAqVbc_n%>-1QSeqdK{F>p$|mNhUCu_e*z;>hWaB<)CVYqxVf5&1cvOPAi4YV zK|WIF?0e;AVjtuG%Dih0Kvd84o3%;cIauwbmfx2n=Bk%#lNmUnC%j9lb2lGTjJ!w0hIa~qGUTQ-qrAo;c4xTR@HIy4N zfUh8phs)Ac{s>V9)Rg%|0us3CLbA&7X7V%iL0~+_3i!$dAVP0^_Brn>X{Cx?FI#}i z{Q~#!}xDt!2A2#SjY@k}siuwYM zPc&&GrK_{T{1bbiF=~>fHWDPf(}>->Q?7Ta+svp93G-A0Ju2{=Yw4#_ZkC8@HOCMb zO2$fQJH+%BN>bP?Gj^c6!Rnp&!7f8WhVKi^TolKQPP>pLOH{s=#9W!4{N8g;QbGe^q z?X%Bs?G--T@72sgWPnPhViY+RX)0JimY+hsE3Pj5_c6)nMbZsYR`DIJ=mt6|cX)IX zPdsr$z<*o*=E!fQ)0`}sJ5e}&s9@%p+Sj-rmy7u* zkv>MGjRVLI8>8(%P>lp^#p-t%#(nT>eFjc`#&HFAU-H4ZuNVH+A#|h>VVXp6%NU$L z*SaJDO?SJ{@l@14zv!pHiBi6RlN9Q}ab9PLswvrXx$KP$im;wQa09YcFeBB&x*C0E z+l=4)u~}>%XhJ_rEiMclmVeUoujLTXQF#dv-`9^ItzRi?uHj9#V-)2h7Hh*7`f3yv5`_Hp*sQqquoIrsX zyPJt=``uwj=EhZ5rxy?)YAA4t;sgqr*uA6@Nu|6$xU`W}#Qg6=g?n z*e4iZm(?pW69J%4g+z4>T)0sHpE$vaijWLE_Z6j4WNB$y@)GD{s?G$7j5wfjtd)@Ai>Yd2f1qfEqvP!YrF7KkoKg^CqkSU*d&e>|g~Gjvx%ZSd|*n%(fWf{}?RqwtzuCCsaS z$?0N{jO`jYCqK;T5@1!pJhr*@`ve)YjV}n=Ls&GA`*f1Q9QpwLqiu{MA5Y8Q+P3v? zwTuYGY!66uJF&ik?#4b1~zesq_ zAHXm=Jz_}q;D0b-Hi*}+B=1aTxO#odz2NYemjlxnaK8HK6)B{LL8ugCrN$k z*jax0O@f4w^^Hltc?#i)>~_HB+H8DE>VL7VWG4LY48Km z48@kRN1ORs(H&r`((@a0qRfp=IeC?Bb&j^GwkTEHRn!91hiI5Aso=pFoE`Es&rXlS zRTbD5QA4gR5yZyemgjWqISNDfKWf*-(EOOsm2;K;_WWIh4i0&ql))$TvlEa*2_y0U z3t$!UZo*Bq8O$FN{RLs$#=29e4vah6Fvnyc!5mCrKQD_Cg^@G2UvMGcN{I$bq5(|o z{NPPfF$79#WmZ5xP6lt4P9uxTVxWj#RjxvAXS=l)y zzAS>es8@;5ZJvG>9#nOeKNfJ4#g`{33TAD;9E74(4seCideu(&iP;3HUM?U?R?3XlC};OV zD+#(7Py0|ir1nRqs;e6Mn9Dk*#BC)O3R{Rm(T*V3UQeODLX6`q9LXwGv{|k zmZWW1yNTG$y5gE6LCQ6ZW8DHmv&*k$7O3XMA63-AQ~<0KyB(AEa_BmHsHh2NeiBe@ zA}>eEb{UapdQ=-Z&7ohuDrW|4J<xr~gh~0$K#b<8 zFnq3I6*=O{{24Vo84=Ma30QS|g|W?E(0LsMyK7|!61o1Ml`-IjX?$5st2h#{E7 z7~%kY8nboN-Fl2Em-k@A;)cTZ88f``=2kz-4UoPIAkyNX!cs`h3$N_$-W zByk}UowjRD3$U!gp=Q>J2LCEb%JfpIwF$>tE%m{+5>}MsC@IQU4m4(7E$eX+@rRQ(}bwwsVpX$8{Ma-6LryZ5Z@+R&Aa|hr8$gg!r5a2#+%Tpf zP3BO_#;4JH+=#|87IJ?b8Zm8Ou}IV_7Hh~7E$*nQm*+1-rp|0l;6Mj|RFZl=6u@>t z>2^0$fYDATX@n!_M}f4ryA?%-mulVx9A;KotVJ|fh=6{?L6ysudnEDdyJyhja_Z4#`f_#(M-|(Q z(Cm@rDZR_EcSdy~F-?JwMqfc*wjl7+S6=aODz|+xe70h3^*t#gt9COzAa4uSBi88o z?_8((eE}`tVm?O;^)EO2m#t@Jl<9m8UyrQYJHx)mTSPT+-hldu(Ip1CvRzmEKY(a% zipM(teqjZ<{SLEEfeylYhHG>?v%q>LZ%JLr82%b)m%r-vZM$x@2;1zYWux|y0=Owy zZS)Q7N{ANC;7w^#AuUZUr=h1meIfrwc^DKt_w}#&(?Q#H|UsUwc^EnIOQ)@+G;E>3 zP4&?Gz-fnq%5;ceZFXA|$?Z(4o3yiOUN5M3GjXu9wR9vXaqzl9>afiV{|<4bfl+CI zrjkqC2!$o2p0iMz_#i3O+#vZ3ORXgI?DLUQ7EP)i26q^Vr^?=ANNkSXpIF1@D-qIwXPT#1xL46?yAC&BFNe zK^T@(zSPV(MfL*Ty3@7v%F(@;MKCj8rbXDscr2G^sck>ylY*kN^ovHRKUu2{IJ`QW zUF~&F0mDwr`^=L07%Y>4stLj?$lo#;H@~hw?GTdPSWYCxYSzRiB2eI-EJ9|ThRa|| zJXn*5p4tFX)+^YIj-d7kR7)X2Muc2QG zJ3|ELuq!A3xT$H`ZVAFy)-NQ5agp5OG0-vLqeY) zF~#3s?F=U;XA*a#g!n?2I~^e9_@|m2SHj+#i-r$o+s-u%niiWJorn)lzoOgI2|dXr z-72ln1Qi1wK$PGTw7QeBOluy<8~82{s>f3NEdf!_Pd7d+5Wige!oex*VuIIg1U$$F zd&}cvIWg9!3{)}9b8iOuW?jSUjr6jZL+>2-paSGlm*Rx!QmQLo^ue_P<&DHO}%>=>?e|T}CCN(8G zp1j*1!Y0ia{|KS>=cRFm{O6u58oKXJs^^HNhR>f8BCf?jX-IdZtB ze&QCZ^Y9a9?Yzl2rOHKlDco7ZFp1N^Y2w5TJ+DOt9PV05U#&D8Va$%fysaoc)|oa> zmTq~+ZO0&<2PY_KN)<{pD73sLn8?w?XW{i0KUW1YK?kZRCaX&%tLimn1vKn?jh2E= zS8!$W^Zuhu5Sh4+%MYww zxw&#Zb=}kj*x^>h=%g9CMuqsq>an4)dT!?%WqpSda{GIw0fn*Y_!9i3(6|Fe!s@lT zm@#@?J$+q0d#yXc#P#NZn2|0c%jx!0H1&rUCQrG2b6;*Qa-GGU&t0o(YMRJzwh(2Q zGo8U{GXIYwIb+x@A6Obkw*p@2n!#>ad9F}87W4H0BFtQOQ5LdIXnci_8NVFn+f{I%IZZ4RgzA0!v7;T7RoO*;~?=eKr~B z$eqb#2dY+PVb^kg)%c1WYQH7%TbQI!Tm};#BaZJ4MHYqNI08}}xQr+Dt-8W5Y?ryQ zu3b*4^N$%vvTrZqB@IO-4JLA$y=1?91pIl813w~Lo{pL^y82Xp~L$cAi5gDQE9IRQL?F7fQ^L;c!?^T5nk> zD_fLX`z3nn`&~dM(E_sMT@fj{$~>ei07cAZ^aVvsXa%4Z`W4Wk*K|#hLCR%tR|nb< zL#%+j4Y5b+$N^Dz)44Pcx)_XQy+nnCaG-;ANymXOVTEXn9drqkTyYb_`0+lLQoaZ! zgY5AkeDyy%>Y;`TAYD{5Nu@&SC&c53HDei)YIq7HqjFaPOHPxhV&Az^cWg3@(3`&9 zbjlB8JoB=cE$c9=Ot=@SCg%3EihE<@_Awa6xjb2mT|GY-A6)5JcycXq(f2AAeVIF6 z*Cc!^ErApvjM%Yi{c*HM47(|m#Hk;&0v2jfY)bc5O0zs#8+hvUS^_aRWyaDoMD=iD zrIXvFrE&1*hDJ_rBG9C}%ve$Ck7&N1Zq42CI&yKA38D)8H=#4j0BNj#G|PY>&W)*8zyy;7>ISHJ zzm<6&KFi#WrW~bajdE2F>`Jh9Es%9B;zlhL_iQAlF>A09oK3Pyq!=ecE$UMQ7~H6{ zn_3ksjA?nxw=-nYOn!j?(l?8J1^j1YkjK_al1_g_i}FO0fpwqcKE;UwK}Fdq6w(o8 zicWC7hP?Mr-Q0$*N374@-lgv|;Y)1C$`#T@&To^go+(g0xV3x5U|EDku!h54*wnN= z_I}kcmi+LfIQANXrS6@ukWGB{pfq)jVq7|lfIWl>g#5)7?8~la?V|c_hQxcRYJW>% z(n9Hzmo-_~I2Q9JnHDv?JRG>^r21Zr;i&pPuC+g+xlfPs{YsT-^lq~3VM1fc$ks^7 z3+{V3mUd*?mvXv<>(I&Ty_HT#lKUzmlk{01@9QEzMW*o{hvDZ2=<-QJ zf3{?v7zCaW^d5(uilxGsL~3wu!iyRw3SQKF8RjvZUoJfAi_;_N(nqs`C8!VDmF`+2 z*rFj{3p^SU&=yA2%|up=SjP}Uv|$~I@UqV^S4`UZ3sWf=K>EbutLB|8HZOw>7Fu<4 zlT^{CGE&@4>Z=?zFM}>djd+bR$p}C}#5U?6j~e-**#iiW!6*wPP>hpM!^?=`gS1o! zW-!=|S$-w)aCU03^hC9+5JVV{D6J=1+EAKwTN5kllQe}4U;K9POj+NQw23)%q$DOx zSDM-o1Y0_6XwR=b%+%aW)bdhWENWFEe9SD08-fGIUhmVX~(>Mg18 zJTgrF#YTQc`qPZdSN+EnqbtS_X%as3zFGN|1j^3(?bD$YXQSUJ;gW3hf5OdOwj{C3?!^Pq(H>SONOF@@}+|| zEQ5mwNq*s{^f#Bb&3K>o=t|Fv_UJe%nmi;;G2+W9OLjjsBbzcCf7#MX?3%Od=(pev z(T-}byby+dIIvO@@B3B!buPMLwTD(4kZ8gfOR-$6D{T#KaOGWR3r8~@T5%(G59Ic{ zYmN_Tix*<$X-ydRyk8)OvnWtFB>iMu%H^Q|U^_Z2Y0zb>HprH{X^)>Flzfr)_#3yO zeqsDGoJqSCYvcU=|K7PG}{P6ZT#cPPu`Y_qeq5$8_48)yL}{yf}vKD=QuSy{gzf9=zGYAUy* z`rA?U73mM0+)=rj55hi|j~PDDUhskoumCww!=WS*Cg_Z(zxwI~T=V6SXo5Fq3+1;TC;Re)G%9hx+rBH0RjpM-FV}CxexdqcSe%G^HTEXA?H;k{}o?#v+fCm z_8nhU{BKc5=Kn^~{TIg3+!09`iQASz(sUL=UnwCJ9W%jZzP}YIu@mkyg2!OGMTIP9v1cD6ZqhZ{EbQ)Xm(+_dnL`!nC0H zc3hs*TvkO`bxdgz$rO7VD-rjz4Gm`kn(g#;W`*Mrb#yEpx)ZZM*)+xni-}<@F({#sm`jEs>NMqYg&S+qhPjNK;`Q^?OLSvKuO*r& z9RTDJIadBrxnyeIAHBGn_fV~hJh5@OUai%~2a~5F^R~~&uWqq>z=;x7TpRt0&&``N zm53y_Kr=-!iXZq>68QbB(HnG0Kp$A8zwDX{Rg59J3VeMy2OB}G%%p7D2k(B3c~Q2{ z(0zNAMzpD9ddez*A{typ5tCThVJ=jg;t_j7I#J({!SUvg)3I4XzgB*J>8fVAA%BBw zW%QwiZAWy_!lp7?Ft*H_T%W&=`o*a#v?0uMT!i`9@}Ec$$e{nqJ8;( zaST!g#1>7m0UmSm)In~w0jCsEFsAyKO`Fl1Cdg^r#hcT5U=~|rUNRI#yb8?6c{(DZ zN?7;ee8r;sdwd`hXhB;#NRk)|tx?L~;HK-629&WRRgH@#4Ns=$2JT zy5r>_{*!GL1XZYf32Rxbjcxw0Xkb){_R$(HZ4QKHArylyzP*Zk>^}Gv^ad|K<&l@# zs?z&4dr=_RZ5h8u3^N81>cC$S7Aq>bThzi9r_In2M8p2kWA;Jk@-_OtnL98ep1Fnt zwiGKSuR6O>Bd|T;kvlVbn*>Um9t=QXVitKKl`6fpJNH?NDzFjI19!v$HyFSgautMs z4XYl?I0D7Jz4?gyQLs6IkRtUXaGrj8oq(4JYw6CHIBELUJ6Z*h*!4_KmDxXknvugGyh_!It?hcn0p!zLD7yCM+W6drH_|w? ze&*#UOMUn!o!#Y_nC3G4RTWa-{swnQRS^Bdo@Hv&8sfDVD3vV1r)hR8Y>t4={zh>t z+tmK(ei;{%nm1?%US}B~b)^lAA7OgPeaxUtEHj|ZnwvBQCTxH3KKVQ&+fHk2!`IJ% z957{f8l$i5RKb~_tuuzIC!BR~yd+6o=`!{iW@cLUp@TWAUQq_32X<`fZyyqhRY1u7 zrwvlR}85YF`f zX4WYl6wR;c|FCH1kHQT#4-1)hi+=z(}S<|;vH zDb8dE6!VCJQW`OPVN%Pws{+~3OMokgTlsba(zpZ6d!ir-1ODMxY~c3knw8y}BjEfj z)PTXGY^ngj6&0M?{g+$`(dWBMeQ%cK{kQB7|9?ZSl>X_I{;xQuDukQT0`ljTcYOQ4 z@gMjkcz$#yY6uAE-$oFj3{)5@lE09s3Sv@4Z}n0j7;V)m7BrGABI*kpQ07sr&C41p z!O^?PA`~o2Ju3xDk!I-9h1jIbg?(z-U0qcN|j0Ft-_5(*%sVOA)sYmE$uFgR!$&ZKE8U5rM%l_f)T=p??-1 zI7x;bNT7WaTHU9vhvBq7Nq5`$4f@4ZE?w2x4aY??n}+_;GE%Vjl3 z5cSw4?GJcDBWngS2ejY$j7z`EAh;QEVO{%mUc4Wb6UsH)gNxQTK^c7Dbdt;GZjgkI z5So->9fx5cPl^#4{K2eRxGB=WDOgwsERt2&nFc}WuM%J=O32X)6?p+@;qZWT(tj$? zR3kVBuHfJ#psOml_k|0JU>c3kA!CpWy#wZ`3l3{UhAl(_=E&pw`P&CKW9k_dJn{rB z2^QDU+!#n+5xBh>9`zs(Hyorux*dK&#|!7fy+kMn@r_|1y4aApk+6ym)}7&p@wqtr z1?r~ZXP{xohoK?8BQex5nh@4iEG%}wNMExzjHlYczyMlY1SE7}PaK7-EDYoJkey$< z-FH%vhVr2L2Gjm_~Y;A(k>UqY(PJ{BG-S7DDIG6DSn*{;Am(9jWequE-(eeP@nxL;`%; zvgTeS1B3%Y8+Jv8pQYidny_HjH04?TrJ%wFY2AUaZw&F{i}uK-<~195b^|S;vVSTw z{49WU`Ct<5T^RI4$CoAi1a>PSCHkXZfhe&lW7V3c!{z-=^;tZ>gf|hDO3A#k@!3#S z84){)whQU(l@)JpzFmna8h*7daz-ZoI%$A1Gt4wl6gqaNMa?l!TRqQHbBsSykUa+R zC=BrOd6J_vy%MP=ZAH`w!}2qsB7LV?_$+}nfgjN&;b^jfnQqkNbp|L)KhkWw6$Yc_ z&%s?pEdL_4@AZ-ng9TS(uqfrq-Wss0&~XU!sJbVwMl#(YYmGJQA|I!*B$FzJF13Z~ z=Hq2o^#94X}sycVorwj*7nA8%zbCb9lQQT2qT7KAGwrtrd+YCyZ#mfD;wA-2|>VKlNL zyiaQM%#fCE-@DbVG~6>48q=V%tf4?JpeN?}sC3pkA+1oUO`oCPt3*s04578yV}#3h|{kOUD9Ud3Mb;cW$m$0h0xrdFAech&t<|{UjxI4R?v+Mht9PeF|iJD zkQ0_tRHVtQxyLDYqS%2FZw1wOTeOuV&z+#m>KLC8AX-{NzChguu*aT0e;o^NG6bXC zEQQQGrN%iDe1HfS7ROuAdLPWOF@(F(U761Fgmmf#9v~R>Md&hwdPKN`;5OlqFPq_> z(^O#wRxY()t^e*N8n4j({1uO!xkRz5S@-5Dkd?f2yW_aHVtC;{2$`lE;R`e%Xg@=f z)h>-`Sz0cJeJGYly_JPu{%9tANgZ&+gEQZux*je_9n$QKcO05rRtqUK;Cb6UQLtaw zkNbTCFbuPr=mq+bPQ$_;A#ej9sVzHPPp+<)+#E?-)J}LFH$1o;LC<)ET>e2{Cy=;B ze3bgm?d}pJHJ847ggUqO93!J$7No1&1Ef^}qO*$B(PjCU^Yk=S8ExTzh0;qjQK~+C zzi>G(bSwU#H!0Dv=BEE7Cu&MLjrs(KXZR%&ZCu{KEsR^v-1~;H_V>|>69S` zU7P;0$Z;5n!8RP!SP&>NNdSa%K~A*FeBJY|$oN?3)OJ$^l0iL$J&O8b=xAi9Eg!!OF?fx3bmh^7)Pw{o(7^2Hf zf7~m)+_zQmk9#M9s0>BvgL{e51%=VgDSKXHN1oB^AHi}mB!qu-<#@O<#98-FFOs*d z?$)Yr;QtQ7TLON=A!6L=bIOC=>Kl!apfQA1IY70JS));>)ARELk2r8vC2`8p;tnai z04I%YH2>|ijrX)`^FnYP?r0X}33|9iU#HC;5P89B96<$0c7|@;5_3`O4)V0XfgSi@ z#erS>d4Yr+ls_xsAfP+yyO$&Km~J4S@U~|Zj(%y62+(Ro9wEZf=eg{0di9_R(>9(cNr}HY=&@d=J_i4? zM(A?o%|=dPvBT6sQi~AqSRn-<8d7iz;}~>jW5~7($EY52i0$4z!W%a3ItTAh5pBv$ z%(pQ5=BFYlZXKXwyoyS&W%Y-Y=K2-}S4r;jT9Adwo^WL05C3p*q>$eO{@veKRXFlT zyB|mx6hqNS4kOz{Ix(3dnMJAo@*)Pd4QMEHj zQOa(}O3tb!k8PAnQWeV}wft|lvJ1}Tf`?(iA{d;-kzt+7&qfRHo07vmnaXSlbyK-P zkyE!%@YiEu;ne;8m;n;}^?g0ERN>$rG&z+{M0WAq25RfU(!xq)l^#<=<4kN6@vw8H z25fP{*~&(NsqT9xFxg;E$^B3*joI2ui#({YIYwRXI*>7x>GT3d&g4ivqWz>CnC;$9Lz8$`3vAcNoZCc#@kQXvCZ@~2P^ zKPHeTPKv*oZg#d}a-n!8?1yCe&Lj9|;O2^@8d@*Jum0T0^^NWxt@8SMzx~{%U;O67 zXP=A{pnnwxRVPY0#Zq`V=3R zFKV*)1Gr5>33w|kQ)4EB*G=`Zjb|ZBG`w~~!6joS)bNp+cF+;GTS#{mfaW^n)G7wi zT0EHZpnJ{MIy#el*-~yT`QBBQQ@9Ety?Z%WGdm$xP%2>`L!8iKx$j#x zPJb0s_m=VUFEX6UXQ#WDLDN;OA6d(|t9PoRR1J6KR!jH}G2zxR@yc#%8lo&)^aq9M z4<7e5XuCV;H`R3MDuI<7mK?#SpAWZv(4-dB~x`CmTpQekgEY4#+=HT?< zcwWCg)vpCSv6cp+@m0qQLi01m(0(u0Lj##iljsLXIN#?67kC0~QZEJwj^8*6ch%Y& za6$Du09B{rx;skiXEJw*<}c|8Vk3UBP~4}K(zU>mYieeO{33nK--L&7xMCA&sMx8u zeZQh4?@>3Iab`rUH$o}NkdD<@v_k$cnShjoI2ecsMLob^BuRT6g0YW(238Ke^KaCq zcc=x#SsCr%`>ns2LgEy$slB34K*)AShyr-P&H(&)W4SDHs*(tuKSD0)xi0zXB~Bt` zq!w7D{1!TI*wA)_m6jD;tPGL77PMe@kQi99_l=S!Cg^N<;i*>GhBssLhy}GUJ43P*)knp_?K@L2$bZ=OI70(j>zb-eG?{i+Jh|`UpQWfgDzj3V->iv zmAn|GDM^_c7)BqOZeT6DC;Pd*A)zf9Xu=0q&c$ojoKtf_7LL(f(*{4U01 zaf>e$wH}NJvOc z=X&3Bq`*(@D=Fz`t5Zuek?}R7psy4~6)mU6CDU~(R`5TJ zv>Fgea04R)(PucEl5RnF?I)~aN|OrJm-*B-wslD+jvc{%>CTPH=I6|4(?_*uo5lH+ z-`|t4{*6gw^4TkyiLNLhr59DGcn2f802-pS&227kJ>^*3?9TtC=tjU!TMS388g>Ty z{!0}QY?`3dG(EjfW3MW!f7Za+Ri`nAi#xfUm?_9wLil*?!(_^3#r zF=F(HiI?PU%kVSi84?m@$$Nyxm}~tJ!JF_s@88bO<3jEr85+)|uCUK6FWL>h^g+G& z@>7yv4+*U$dIlIn1j_>x*S~A(y22;YO!rcT_2hL#@kml6`l!sM@Wrb6OaIrS03C z$7TwdaJC-kVEyI4AMp+yr9pGx9o+w!kqBll98siTGu6R#&)UP&%ckJTGP_QWoBs z!d%DE!roVbsk=*wkZCEm>nW{iu<%*r{YQfc7s?dTzUNY=+5&j=&(0}P-G-VO_kv=CI0Z!V+!XN{j4(7!ALb^=w5at2`v&TR%VKH+je5j3W zMlO>3x+73TY0p6K@`H?P#DfIV10md|hengGsdaaIM@v^fbPWFja^tGx-R z=r5Gg_vFm~I!iSthnXlAh1|JYJw_9BZo&P9*eL(3EkA_$3w(QR!k{Nj(F>T%+DRw71- zwRjNtco2HK2q8w``F&Cusef`BH0CWDG|DT#v)l}kk>yEx)CLwU7Bm_zJuO+=mOBCN}WcbxF!S4hOGG?x2B;ph|l{-unF=}J?2uB5MgEg{oY9~(G zm<}b8)mWHzH@MMNEGvT%<8s2(sYsX8BLkrPX)>ZOup)PmnU5a=&?}i+u$7c; z8d@0lvOP$=Q+pO7+X>u3(Aqf%e|_gy+ly2HWy?1`*N~E6P_k{z) z(O23_OFM|Vpj={VVrr@`skW?O4x`27u^*tGo3vElY^R7e^Yfoy8vHp_S#GJbH9S_W zuBzEoMdM>v&}&v@TOI*q`Lj?}MLg?w0ylqCu|q>$dh&-4myx~JJO_~9z`;ql36+Yv zE!y{4-T58r2ujii`tZz=k@ZO3$ro!p60_4jgB|-=D)|G3{EWH9f6e=|F3Hv9Rom~6 z#xR0WH31U(etU*inJcjN0(UxV+dEgq$c~FEss5oHirSTP_QqbBs>mU+2Uiatr>x_P zwv^v0xO%uwcSk%>1jh2<#YLD(m90&crM~Vq!~?pPc=w=WfM{Yhix6beV>TS9Iy`{Zkk)v-EAuRm=KA?hV?i2=z^KBo%edKQ^Od^FT&sXg zb_1HR?b!B(vyyHp_a=!UDy7l31r8I#=yuJ%u(YUJnoY1%pouEHF{M=!5MGEgq7jo` z@T^q?7iebjArC_*pxivC;ojt%d#@&AtA@%EFcTEV#*=SoB9)X3}gydK>=q9eUXd6H``lL)!X$ey* zZ|MS_N5T9WTVvvGA+}S7;c*(}TJKIhC#80l4eHsqzfF(BYlE|FL#LQ39=VWQyM>Ba zX-L(s6Z>eV9GJTolavt~7317HN-j$T$*eh)&QlCB3OG7pEX= zg|PSwb>?}>)}Azx8X6p3U4nD^++5$Sg?8}XaJ#Y#WO5Q!SDU3IKz+owZAagAc#@FI zdSxfW>A0vFs$&+(HAGRFiyY>O&Qm6}#p!&&+GRcB4SYAj0tOBcZ>>e|T}JH-vJDQ_L_>svoYnM<&BeCKHuU_8mD@*mNU<;&4M_nee+g$K9zt z#`2tOkk)CPs*TSN&S^a~eSf3c`5qInb?P?W{3bV)|LoWP77&e#4&bf96k)G=d|B?* zf$=rbwq?Lcpm2IuUTptXK8~zzIO0QIr*@m^XVvBtc_s|+O&SM;j+Eo(8HY4 zL--5OawwQ0h40Mi#_>xik|RoI1evwsrql}2(aD7(zz6oxNjg~7yv&ZkmXVO)@p*<1 zI5Fj8C+4sm0adMz99kRvO;hDFVw}h$i*u(e2xIU1;FE3TpBbS{}2d-uSzXDw?^6uBdDy+{qZ_MqrFtpaI-4S$LXx0uM|3fGzB z(e)!OTv}UR^!ax^v*;Zf<^>7AS5azThBlvoS{co9C7z3tNGoseHm`_luJ5u{6zs^4 zSfZO-D&1NP{)uvh*0k`-^y1v7CYxG2y#s~jU7p{2q!T!hh?i-&sgO_1jE<*CJ~_X1 zaZhcDkCw}y)d?`%cGDOhgAaKuQd$e4^=%<`Xem@k>G?(rN@(NflO2H&?t?;{%XY9P zw>4yNNoaCU#>8;|iq=kC8=hw+f3#x*>|7Voq??D=R7#rFU>a47WPjR z)^Qg4Dax13nKLbl6_1%xmlTbh4JF#f&)OGw59x+T>DOSGeGyqd=kec`)a(;M<8>f~ zazVd`mo`b*%9`mvR|xQJAk59^@Jz)+Lns-~NX_Kzz`S%$yg6I7Gc6-Gva}cUE+5V~ zjaN!=9XOE{BOF=VIx-hHHRjE{i)DOvJACPD=$VCeW*eWiCnpJ+l>)NAs+g~o1f9KF zkABe;pJQRq(Gx~cPRjJ&<{ygY-z~qayhJ*xWlox!7FJKIwh)GKvd$k1*ci1L1!ZM1 zWD`H()JM>a7FEv-1g6pM*s0}L*YyWnr3Bk4Pz$$HrPCDJ!Y5%NlSftIWjqS&vxR~bjpFt(1Bzii8-PGFP zW1g6=c=MVR<4UrYNfi(vGn2hK2DX&OE-MA>a#zQ%2I)xA!q+O-qrnb(X3Y+lI{?)e zkuGl_8fhgvmQ(x)+PQgUrZ00#1vo61DJ$0!qD`DtBd8RLQy;r}0B!K_lBT>egSJuY z$BI;s%~h8e-7t)(`OL}KPHR#Lt&-E5>=d`;nD7MnrM_jbMKR$VSEHhHXyWIL;#Su>ccJ@E zr%BdD@NDB_#0wy-Bk1VohLh2-s(5tHo98Q9n{%wjv!t*bBnAjgu>uhY*|cG*xG?s6 zh+x>nDOBdBqUN}qo{iDuplqy=RdL&f(AS}4&ukD`7Jo!VdZ38h(thGhJeb*s40$DU zEjKX>&V-N*+Gi?Wgi9l>4Y;X`C*fq`Fwu_$GrasFXo)DbQOTt$S{4pt8w`fTG+Cir z3vSuDlUi^Z%LG`p3#V$c8HH6~n;>F;HN=$Qjbpr`uVE2hg{r$mA}3}bw;8Kw#rB$q zG?K$R_G@h-g}R?y=}5U7bTuLjt;&w0NU`@yZy`eYJ2q)7gn)7hm95@+E0)Yq#|A7mQHSBoooWW@ZddQ$@_QC%`#BzxN+#6m z258a-Jp4_3HVPx625U(XZxMLjW`xt}UBbPlG_2v-q!HLMpAP?4`#RYN(@%^PMYMWG zP3`Rr?;hgkguxbV?rof&IoZ05Rf&23R6_79BkTgBlyqARlC)}!keMko{L7&QZxfAe zYHHfPL}oEW6rx1%0@KPS=~l4Vbjw56+@OhX!ra!@KB*U@+gV3Oe6jH47*Ug8yUAC_?!!}q=LZ$=TwC0+` zvs}T4hjD#sNk;0`K(9HWwF|4E@Qz~+$J`z0efs?D#=YSk#Be9iSf_g&J9la%g~VSXD5RkTPU;E>6h1EZ_)i zjfWhOb5$TlaVAYPK<54(O-w>5Z_kza0&KIBy0zD)nYyi-!T3kr=FHcrPpQAH@}6)*TaMb7oC~+rD4qsjoIM>*EKcGfi-XGD5V`r`oy! zIe~9LQ6mE#+hALs2yWvwLRp=E>|&QDf|AravN{k?4Ektwdl(E?ZIIbPZ||xEvpno5 zl(KbdQz{QFY0UAV6f%G@HYa>sF?a=BNh~AMn5HPrD}TdVL6pzY1gG>SiFE)4?uAI0 zb7mM1T#;>`$Q~drOI$@CcFH)J$DaCXEvh-<06z-nEw z=VtJyUotS--Nh-NDRC6c6Zsf zx@_CFZDiTDZQHhOblJ9TyQ)i5|979W&zT()Z|sSgFDo)Kzpi}N9nWuF_m$kW$Byff zee9FbwV_t+mqX+o7f|)i)EKFA0&8@0jc7r0(fwU=EZ*5u`d|<=qC4Y3oCV0Q6R7TgP%UE)PQI?LVKi(D~>JWi1!##F^D9{DUi<#ID0)jCRK zkLW<)HXDguPwOX4-Is4{JY{-gLEmem+Tb%d{<)@QOgi1hz9)Wm7H6Kx=T! zI%dTBIFV&Ikx7+!u%|BWbL#efy4I{d^`$EF7JARBxHSPAHp%`9diM?Muxi)K*$u1j zBdnX1TpSMXeuNb8h1Dfs;6f~e`ZnpLubq24LUY6W*%jds>DRfq@P|y4eV7ENud8cj z>}|FrRr(=N9>FSdkKmTCax?8gj9~CkEmY*_0SW_-g8P!O=DEDcW3os#^s!w;H1XcB zCIN)pnVPbasOVJoQZq{Qfja&g(BO8Fnb^I^X1JZ->AKC~>bh+%)!$MIkBS*ag^6;m z8Kd_*Xfh+()B$t6C&vCmEbpb5ABFbZr*g0D=3Axwq-H+Iilct3nA%6ri-%cP%*X@OnAB(lHW$4D^jWHOErDG)kSVum=6r0BhI!WCdbt1~QhLUwY zbrVu}5`T4vFB3pc%cW_!NI|;%382twZmxs0F$}6P4q~NWT!t&K9hXDtjz-y~oWM)jI{YA!KY?AGvmZ}Mb zlD*y&$bBsDhPPzf?$WnqgWf<(OPgXuxU*wd(+M$6S(xB2drl#f-y|mTD&&Qi^%1m( z?XP<&+Qn~e1dW3R^=A)ygmI+}q?YiQ)ol*1etY;1-KOv3$-*0q{?@0`tH^3k@o^r@ z(S8?1I+!l}?#0VxCg8J({9&#s-ePCoofU9GLzUZ67kI_bd}-9b86&b5l3?0{NCcIx zV;%QpATBXuAW^@XXb3H-Ke?j$2|Qpu1$7wmTflK*E7jkCj)A0a1U;RCP?nxSLPFeY zLX4N;^f%ZvA-XV-IRJKWf~$>0nq>(Y272D@fY3m?EP~jcwxiJ%uJQZHUgpZG`&>%j zCK$VpkWN!OoY~bdM&MGVyhH$%Qcpl>fUNF3-a#i*urV2IDuQmHs$9IWsA49ZhA5bT z{=GmMFpXwehhm?tDi}2=8KJBmY*cQN(bSK&sqeN~9ICva8su*(BxxI_AT_uc2*hd2 zOu))kCV3oMxKyOc3tuq>#*p0+rc*o*jSPWl86VfC-`~=pt+QiyLfyhoDv3gm+u}{` zaZ+-%#!|e}AbDp>)}xzuUaJoaJHd9GPpSzzywX6)=0_ggW@WXc%$xCS8&Miu0(yRO zPYrPl4E@EgKNTG*AzjVo6@lOmB7a~ynv9X-&J^B%p_brBjro z#O=!A^asu`e`D_KP30au_0|YYQHrDu+mR{rqtfRZz=)SD+6hmcOi`Yr|xPvUKU6{X=iG#j{^> zGC6tiJj1_WSBm`QNP#hhK+}Uzu!Klt_PK{i0R8HHur(thF*9|F2YM+ZjI0z(({lN< zc2X8hUr~%T1#QC#*E*AQxcyXj&Y43Fdm6)c)ll;HxXA1a+7&-dVP;P~7?TrO#T9My zv(2;w4z&7E>rg9pwyiRGCJuVM&mv(jnBbjB2)*SCP>QX~7=^-qHAl982mLked z5a(Bl=j)Uc3CPB5{cLv#G8k@>Q0cLZX(%mrz3(~ z`Kg91^dWfQC2uwDe(@kLz9=p1IJ}BTRsNRF6bsTPjzWE8QemRd{WcMgnxM;e#^Ero zy~lJFX7mm74mZTs+o}yeE7H}CHj2dOCb=){+7%WdS)@&{tXXFdHl~({4ZfXfIafi! z&Jq6#IhhM^WY62Mi|tPG8vw0g6X;5V@1LGPfg!M74u;AB4R? z;;hT5x=m$+lMSn>UCxO~8Bo0~Zsl`x{CSZB2o~uWO=eUX$FLaR&FXs3oqUL1E<$;A z&jVzV13m1kn04~Fm&bbdAv$ol2GdeG<8i;W0^(lOd8L^v$nBP<6{g%JvSRCkbRwHy zhpJEdQnlmGpa%zM28dH>Xa=S1Ffa!XGbyTlb+w{!_SQ3TtCfG5^f7p?HD;oNp*$dd zY#=`q;HHpdT%hMJr?#e0a~@c6XR1G0 ze!xN@OdzCZNb??-=99W6s}{{`{aMiZicS4wJJdn%S=+*2fTNDEr32XFIq2@)xy&H3 znU7i~pojicr+-;ShK}AfL>bq!gASM{gqA7kncbEK9UfH`*i%s(v_dDmI?(IR%DRP> zLUIX8<09@eBw>7k{Gj(??-u_O|^;Y@dB{-&MuOb@)A24x^H~9 ztZ<)V%q}@TPdjV-YH679mC6aXwydxPXj_V3G7}Q)4e&9JK2zU)<4yC$g1*EzVZmDX6B};Yx z%)-uF7gtcCK=?Jd9Z`JiwO+nGqXb0VoPCdIubKor-X5Hvu90uh(V=iS2t#SKC@zV} zb$3W*B!00n94fsT3%6X^*sbKU4FleWzVvEuo_$%dq8?LvjkLn%xndW(VQ}}*!C)o! zthtPp*;jlW8Gg`S@yQsG27hX;JFfkeB0b)#q`jYPc;E1NJ&sJihGX(-=Z(mCkpS=@ zrw+mT4Ug%0b_#C1&W!Zg#V(2ANq(3CJi7oA@z285wN(y9a#`ujVF45rEjoIz2LE3) z42fDbmu=7%CeB@v?m=29rSe1&1h_I4XX&l}6|dgQ=-)M!T~F2~Y}nA+NUX-;M&<*~ z9xK;Rx`=KTBGq)JSaq}*=9>IOZ>zgv6frRZ`bTCqc6^h(L&~gEiLn{{u;y8zGC9Dr zILCeo2|3fZv?Vv(_@jZh#`?tg`=YM|&|Nm^K z|H9qADSo>}KCN+y0uKS@WTD|=^fCJ7ApCrg6sC{@k_4d|cH%6fWAzzV*6`~ZO>l4C zJzxG)j(>slL8#}Kw*R?5$oRp_A+zqls;LtuC7H0=^qEiS8FTF^gDs&Zu z6-T^Wqn5(lU?>eS6StYz-^k2Z0%MUBMPnjdw5YOF@^tnByL{c`#KPU52CdAl>X`_H z;ibidUgp;A7PgAb937mj9Hxc?g~$jE`UDO7gB%#r_BC11C>HxSe+Fk>d8ORt`sA7@ z7JxQ>3f}vSO$R7|#$*u%aH3vE4WqBIgdqy9hHbfC3vG{#+<>p%Mn6VF3x~+eH5%TX z#j;V;D;-hBGa3=wYfQ|gIam;DS4f~TI;l(Bgnk4If1~IlltKy6k$X4Ng)hcDs6Kg= z{snf8E;mwmr_DLrOt8d^`SA(hbJ2XZ4JyEv!_f+CwetZuO4#+e3NxBOy~+SMS)F7= zlGCdpTs-HzY{XhmxDs^GUqKL{tXYcZ<`%;!vveF0X}Xe*;gvt5cv^4S0wkOCYQ#p( z?^YIH>;W9VW+#J*`S{qu$cb_Zcs&I8jJ%zF|A-xW1efC(tu!y)*UB(nhWq~T=b7^f z&jS#@m*$I^$)7IHx0#7EzZoMbEG0582B-vIo-^_$C!j!X2C$TSr&Nv^vj#B2W24vt zF%=d-2Z$%U^p*5(B7yU_(P&q|-BHt~U?Vo&PSg_k*QQ(?Fk(HZYBxN3zd;YGi zuCz?`=sGF6VrqI1d(5mifVYK|x8A|{Rjn4OVjjSQJ!B?9YNSih%{A2753B@$q8)I6 zKD0>R06L>J(O|$x{}tp&Gj_v>PA!OS0NqP4D`YT8U|331oB{WNU2^F5GX_8jcjxwV zU2f6@Nl2NI5DUA&C_cHmovobgjw|f%R~}kYx&oqUfsgR?dXgL!g)6=s7}kJxKU5kg z-f>{YUA{lfWT9y|Qhc=q$7Q*W(%dLzezig+k*gnI9MZK!h|u7t>5HDdOx4;x3|fK| zobgCnDcL)$DaFOwj$SWIowC#`6xS zla2^eaH0CV|52u|>a7Nb^`4VAOsv`;>Wf`}R**urX>8XFr3QA68J$4HuXv*CJ#Lx! zXNVsaI!Z06nJTAKGiA8d`xvQhvlivp9 z{TGSQ?CRJPxZM0T#CNIap$6Y7IL2&|kMQgDNWR6l3$E58S_L|1rek2u0{;W_qTx|< zgeB$gd-M!96SuFy)ZH_ASI|4`lY`GW)y$@;=E&SgQQn#j_4FIHk8eVD*26`f$u?J? z!@X%SDZ}tl zC3hoquupF{F*dHQz}pK!`}-yon@Wc-&zE>Qm7X4gAa983hU#(5+SR6MA02-VSVf4X+^+R@*Oq@BJleb2XkNCw;Qk8hXELJOrwcr@QPA~GaQFPdSigQNuvs-`z4T#rz092vh&bSlxto82 z{u51FLs4AzzpL;E|E;U!JGcBWu(6^wu(WY9G_nWK+8Y_z*c&<+**lvV7|}YK+M5|W z(*D07>_5@u|M&TSjmBCzA}?ZiUrk=g)ME%hTS7JG_)ux!3+Qf`v<2+(A0~IonkR@Z$8a{O~DY`q5(-$W`jY3LfhWx%L zvo+xRJ!|uc23I;gJjIYNkkHHc4Y^-WW?lyy6$E8qJ1ntyJr&Wub0w7^wFh)=G`fVM1qmpLy=NN%OZ+O1l%ek zH9fOt12RitrVM|$3j`#Mx+z(fb@aax&8{(337tzw%}#u>3a?!V@_~UVStoY|Kv-nZ zc@;l5$IhBd(A6QZ_qwn$0?Sz#sSugzQ}fyUxr@uN5s`=j(OFQ91O;+_3-eMfpeEOW zXpYasbO@pLSr5KN;&rVI$>Azn8YwYK_Y=J;!5(0bv31}C2oP}|skVVdt~gKDC!#NY zb$qM@LD~_rD@}kT+rla95=*SBkO+WSUIQP^dPEf`9LPASAn6v|UqOEof{JAMKdH3N-UbpS8oT*S~m>O=A^&^}3l84ZWv&t|Hvy3_0}GHlP%%WWo^vIHgi zo|=~3*YHt(a>a(&_lhuX$<6gZX{tzq!mih3N;^Jq(@?|RvYg>F(t|8g!9_||4nc&O zrzPbNK-g%XAF+973HyjTL}4+MOSvpYoCxyluL#~+(J8UT+_ARpXeM>{P%)7?dxfdb zjPfm^ylyONA>F#|4_%oBHPSOKV@21h>h{>(gw1h@^q19aSvX^q1ST7K4f?#{sq4$r z%^abw{hMi`pWC|8svpqMsd>}!As}uj!o0n{)iT*l0mY}jFsfB z+(lK(p>xjFm~=|SJe8^K45-V&15wTkzS%RNibw|OX{YLZl#4*?Nrp$8yl>i)!&>S> zF~s02$Uq2$M&*h0^pdcoi0P|Xs#KBuJu9y_s4F>Ln!OiAGX68!qROp-e`nT zaW1h!UYVll0Tqd$FnFpJp;r`4Y4(Dz!dY>X2QN(SlSl;)1~a58a%{u}#dA8`{Ki*x zu;?8JLrJ1X;9rSD=B}^QH}{%$NV>s;p6nX0kd_Bctr6SNS)RmKhZS`x+dq?*@ux-! zw?akTkg|^^*@l*PK)O*$Pd`w$!p*jVRbSmZdpU1OwtaiL94;PHC#MyK7W9(4GF0@v16{(ePi zKzv*VdGrDS(ULq17Q*|>1)EG8C zGq-o+BRfEFnjUB}&Ds9^=%6&3b%WhDQaaDh=!LpEhY0R1c6fp4ZzwGun#Q2fS1l1p zGb=x}Dv}L*c?CZ4gK+8w1PoU%-oX9FfSdI`f$Xjmk2qv%ALl#WXCGdl$9rhPq`6o{O|E#KWJ;aXSd)EO z#YNu2$B;A*i1MBitdE!AzHs8yP77X*;%CJ|nP+9Wg~3NP9TolgbK2Z0zic*nR?V?q za(h;Tr^hYmC!gZ|Psy8T#%}?%eKyZ~TDJ1Sp5sGu9MYk_nbGNgXa}On_}=Hie*B0> z`gbonl>YCfiT{Z;s8Y1DK;nn@K8k-zzc-)yz8`K=r6L~GF7iQuk_SvNC>Incz-#@q zbaZwo^TZKQy90M48s;#HVo@H)$FnhUu`zYe)zI+vFWLZip9dgY#GSX-h-dx} zZNLmDp0q1$tkp*9YRcbCUhPOuYR;+330oz}V**GzImup&87bb+f*|-4x={&JB?#WO zI}|24$rCUQ(HUufTL-o!hd7ERLH}hP*qsh_O;to-AwBCG#0EV2RKe@WoLXvW{igc5 zXXTd?QF5`1qkH3$Ab9it7V2EQf!mG>Vn7AfUy5MtN;|X{Y!WEJHgPY$mp9W>{}S=m z$bhfxX14sB4u&@#czJ6-q*c2q5cnP3J?6l24&4s0yKRnR}KPhPe!Ms%|A} zNuL>Qci>aGACBv6Fs)VV;Ows=c^TL&WcxY{Sbp#y0)HM|QKyO6{%K8OlmX5L! zr1ueuq8|KK*ui3uwvsG)&fpmmF2(C%OOv1Y&3I|y;6O@x+xV}!0sDL+uitdZ<*dbdyWHb&sN(fqp!4ULLPTDT=1SacNTmwCWDX` zD`GL7jJX{`{a={NR+R8TrF)^0A`P9&fgd563?<$osOM{Ya3`MAp%7LHINe+2Aci?{6h({?@-sSy@p+hEClDtF+&cjL+{!LMaEupEwfV?Obq3?wpGpdGX zLe{2Qq6b4iz90jYVT-_<%~uO+f>$}l zP8Y9UA}F}>o7>8eEUQelHjV#ObrP0df7Jx<)&Qy*H4k?E9$Ty@d)*a2=?WVH332sBnLYi*W3ej-crZxZY#eZ)2YPV9pAh8J}HsPjmsG3no}c zPL;8R(4eRmPbEsE{sicWvE}|#YtZ|X4LJ&-^Ug3oA5R-x0v0zPIG_sQIQ-&i_jfcM zRrZm31faA8`~Da`Rrf6W$u~XbA%tOLj4UDAUM^mUXi(1!2e44EI1YLut`PdT0GNcTiQn8;KVHW^ z)@+z+fmcWu44VCVE6;h{vR0OkYpX?l`$JDKY9LvHadrf4)~p(@C9dg?@Cx2^Hq?0u zk;}r(kEUa$6jL!uvpBP`RTw%7*PmaSjEHmEs{=4p2_I$f){o&xOna+`L(pyx%F@sc z$Hr2aEh~v?T`3yX{uHAij%+S8PwyKr4_^U#-6syib)xH(YJiW56p?)dM%5(ff8V}Hxh>2mHU)HO5g`aUW?&6bTT*Yo&b5D~HJdJwt_f?(DmTmR$8DgN z)@x%E<$;~WYFo>>Q*ycs!L`0qY$e(;zPWt!4(vWGce-|_epYv^n|}wIJ|f)Nt9eBn z5E$6G!5QWqEqKgzaksf$IE>`rVfld;Q^m+#T%5-Xiw6r&@AzvY!q~ke#5OXwDlfm2 zugG>E(M(#?Bd#&Iid%B6v5J_fp13`UdbY|k%)4*YGOQh3_C~f$C2Au*NRLRMPXN%nCianPZ0_riFIbK*T$5M0);~3SNZv3hFX+`bc9HY%qC8=`FHRka zhql}N4ccP?7jR13L*Las+7o>Yd;hVcR@JvG*U|$Y*SJ!r~QTarQS87c1XdqqN7I9$p_H*GT3* zi=>C3@c7D#C}fd}0mmv9u)H~f%d{IoiZv@U-e!d~W9LJmjj1QXO$F}FWle>mu-A)k zrZJl<_M2&}c3obbr}$UEXsqL2T@<+b4j5Nv|DiS7m8Ek{Z6V-F74wf^@4HjO2~3$! z4UcdWc)V}{rdN+>kGKz9JqBPG(}EYR{f&tQz5h1!Q*3OkZ zXq<1@NGMIl8E1VQTss48@WFEK(n!vrLpd5brwQ=BY1voH5Fx5sL~ThE!{{{pWF5!8 zcYbvYk@e@U%W3lojo4Hct~GKJzC}s|-B$MQ^^pxx`^)l6 zjveHNdBxE8yrli>&ztnrq;fwotE3K^op26?y=h2o&vW-{I;YLNs*W2FskEujnaFP~aR+W~Q0Gz6= z*b5NL3{-)7Z z^2kJymmGx6O{04S_hoi6j9vUa7oeu2M!T%@%`m>bv(hbZ`rHO)I+J@ob{VbG`X<;D zx5uW!Bx{>~51O9~#O|*+Pw(Ap+ z4eq?9QjI}>gyBq7DqitO{V^D{L|mJsor|A-8-8)WLSBE5*qCa$0kjS7-$7uU{MV!k z8n}@ofi?X<&xV4wr|5W1gwHYhzk!9>Iig zTj@}%Um44i?Lak>Lt8zFaNUn4EFoLUvRwbMw<{)5Vql^itYG#tDi+gN!fv76iI_k& zl%~)<6ksmqh>Kzbei{MALn)oA?F3JjKI;*Tzsz~p>K=o@nz98DkR0A#VWW-7=Uq)X z<&Cuxjx)Xu&Jh^BQuxiIS>K3YLc`0yHPK8AVGr6=>nZps+v?$t`+!nlsbpUZ;h@6% zX@tJo$+g#x!0X#JHkw&11Pf$Sj}gIU9uFWM=JJO%+v{P(9Y@6S3I?hJ6xs&UACF$7 z&{THbJ*kF4{PD}~VVURzEpGx-JZd6aZSju|3J@BTx&QoJ+9gxA*xu{IWGZvAcw2@T z>>u=tcsu8ojKm=6TnLk#ky>`s&;%JwP&ibedDP3AYZjKvmF`-DmPYFg&RTXLL0{d0 zVfOf#pz{;srMHO-$u_rE*`3?SOx4LRxb=*!QlFKt(y{T-uFYyXgHC5+e4w~AAzuw3 zTG@McNA7J#Pp2xu>jk=6VX7(JW;@Q z=u~xdec$y%wl97OIFaY*F7-f_CF-}Ygy<|ByB$B1QH@YN;mvAW7u=!~wr0_s#1Hqr z+qnr$f&kHT?fV;8wil><`%6BvmY64dJiRlIW~Ds8uICbO*$Nu8FBomf>E(Sxu4|=` zaoW{+N17DYg4A_wz3Zp{=da?ugt35?carX+6;I7t8tpuu*Ng6o6|Wd!Qp8A^jvJsP zY}ow}sqaex*>bWpHlS{ZJmGVHd*~Ji-3({0Al$G5fFJ_h3&3WEnHZ!`<{y4f-YLFI zIX&~L@(#T06r#X(%8tj5*vD{mkUqI{4Jb$XXDZSn}H@ane7kwl_W} zeCa~!>Bj>u88|)$3AoTrh5QtoYJaLxt8rg$Qdv48xcg-M+#ATbQEeic{1q^{y%_I9 z=L2(KHLqXOqb)r6RS(lxUpn6{?skZR$L#vG9_F*l>u*P{Eg-R+yX;fAX;(_h`MkPce)45IOEr(Li()6|Y9W?7P| zn+Hh`+tY({oM-;pkjg@!MT$Qbz!Z#l& zZ#AUr7XTHu(W;zNuN{9qKIdeVVNofp(M)HsJSkjmQ(Kk|;G%8aTOHS3%F12tlrnK2wSS^E5 zpUBRxD9V~5?)PQ03!;!2KdKCGZ&`l-f{#*K(3|*J%Uy5sdCgB|49oy2RL|Q)= zw$_Ry$?DNpa}OnTjtnlDR132Z`q9fesn9fj6v z7{}qeAPxj)j_DUXzfva~?qyFOtl}uN#_4KqY`#^RU@q_2?Hx3TUI7vTW~rqeph0k} zwYuJN$MXGqvWNvN9_U)CJLq43sfVu+Us!pKk~ zB(mlVAp8|Ro#dZ{(Xse4C%@hPd!~;5k`e^1d7no3bN=kXUf^IpyE12pG5qhMe;cV- zR>|atD?dVq48nOw1Sbu9N~rm!rF}oWj_(=ny>`={vHryT+#XEG_*D9sf?`S=r6P}M z8y#jzMe{{7+pSsnOD7V(wdaz39oM|Gxsq{mu)>U}h)@0VcwDZeVZylx zE`+Si7#rAE`|X_Fw_>9mMwttvq#s8(f@!Lm_F_6HjfFt#5Z+P?HVg*3$S~fzc4Lxv z$|BK+{f&}3tWqz*dcD5tx4&Ute-NSTgKX+lCZj-h3{jEik7&f}F#7N@x#n zVH&6#wSwKG=o<(t=$4OF&t)DbpY3#-H*uON{j(jx4~O0@PbUJVv;xUcYx>%o5%D(Sfk)<3PafVyAsd z%GTg+#yF~K3?|Rn?lppM;a@SXtx|u;=iIo_o&kAVcE(RDLrfDYArEAi>`+yg4k<;y zXA+)?yG~Z045fK2BD%%&&=|zd&yVb)b*kb4`_9Qs|h1{TYfoWpaC6 z%nobPnG92T^juDzUCw*Z)nv--At)2)gs)APZl1qLw znq+!=og)URxqGcbt*1Sl>&^K9`qoY8BP2~(o$BLWd@;h4wP!h46-(vT<7kJ5Hlmp% z(cV;QC`*cVh6Rg#EqKt%4?GmIVMndvs77iQ)SZ>X;@#}Xv`6t5H&S{eOwJ^TsK?HE zl1x#KKiq{5v~@0cbxyqWOQVmRBhNo8hh!=T15Ahd)nY_j-{kMSBMV|24j?|=BzS%Y zjoNzlO|pc1LSYZuf+cg#yx@~~f_uyna`y{LLc6N3eYthjGS6~edc^-pG5M(*jq4WN zqdE}V5evO&3J4;b3Hz0ms?s<|-Z+Di4|u`GzvcSb1r|`3Vj%#Y!Bk-|%jZf2m6$~^ z1N9!2+rPmT@{8PsEs`wMhV{=ysM{#OcNfMu{T!`M8fphZx+GE|duzrSRk--Pw}G^3`GSbFy`=u%%CFn%y4E-ax@f zoyl>C$x$DwIUN%=zrb(V?3MLoo|W0HohN31H>yHv?>MawRdFSqb!TJ^L^UXSzyf$w z0IdZ4V={Fn0wv4Bt~)I&nPfHzT^sZ`dw=euy7*kqF-)Ja|21&JV@BWa81B1^ZmTCs-j&q68sE^JTd{^3q=b2R_!L3$ zPWS#)WWx}#?N9h}dN{W@fyS-5QtGn-6*dRGCc?Wzz1OtiJyvxaJ9oTAbj$&qn0T72 zyav(o1Kwzlq|hDpu!y}hiP$G$)&nWQE3FFAb~@_l6+{G1X z{Ff6I(RT9pkHAD7iz7c`-w`mpC*HmgM|0HTI;pASH;0AmSE$6gxw+#vy$ISUKt`3r z#FDWMBl`UhIOho2i>3;HtKW%>PrA($tZv#6NdgGsuen&_H!*&z%NVuDM{;2p3*R|! z7$JW70weFNKke!~u|CVXsm$Z+$3|=6hY9(Nr=||UBmbr@5o8?2ajo}!xg8geLlM$uj<+%*A zqcIpj8H=DD47pIpgeqh0gGEtPMh&$H7S(9y8>`)H6WQ-yNmC4SRHA~GURdTc855YQ zrRLO{_L0cG(4KFOCC`puxw}@z^;TWTMn4%1G$xoDLtAR?VU2jv4)=zT(*ha{vy-X8 zo)|i`nI+$p1M)yT29Pb~53xqBh0)lZ@XktNn>t<G9Fj1F6DXqE!F)n+k8Q->5wFvEi&;h`70TVv~46fGv|y=E~`CJnq@fJ?@(6SXFAq@ zxdwdPpug?DFnm}v&0^Nu2t-#3`)LK{+1D9cgixE*9<3U%{B4O>pfPdAEDmFn|#}FG_y;zR8%sQiKFBoD&>oga1 zlwE(oUVM~wK|U_!hHWAhy|fd0ZjCbFbBy7xewGkiO5NftV|{ae+H=`u7AcF;K4zH%{SA!dX<&Cm!&80=>pwGd?%vA1N_qgtJ=m_cRmEbEVf> zDo|RZQ(>8j;>jfU9vTywNdAE;8B0Gmm2V58K|Fwd>Z{9wPn2Poq!pH72xT2t)vC)A zg=62;{3V8bfIUdwC&d0j7A|~uka&`0?#ZnJ^Hm1d_9tBjo8+#$ZoyVc9Id+{9oJ4- z#Z=VOr^&wWVocuLGm%}#Ai8CiebAY?z%##O!#sS+hthh^3>0s^u&pwKS09X63h{e% z$#UvC^`VyG$TIzX#*r+FQ~)>vwPLi|;(m8P2-`CTk5V(O9MkDo3lhu5E!uO!IFrIO z<3JtIWRkiR@L$aiv4NZm(Xo^ z0fh-m8{#kABZ<#+#p8q%1TlToF$FT&dgL{fGDq$ zcpUJL%J5_w4Lgn*1KotB`A43;Q6Nt_OzITOUc^g0g;mr`%ACdlSUL#^-3x`})Mp6| z>T6lU+{Gi^!y=RHATEcN$*#}uG_w|jGT&8~d~}fh9x>C0EoU4!vH2|%Et*@T()^}X z=D@v73NI!oJ4-$*dQwjkwiii}(ya0wPL7S4U)--YJs4}NXfUQ9JaRBDPTzG(Zp$Na z5|mzpahQO)T7a=O01~x$+@mRraB&gIxhXBP<+)0DRT2z(=dPCv>QwPU=>Uwhq(Sxc z-+baWEIgZ~oZ^a&<3#)`%wvovUSYIuifuF`Bz zM&ICK+LoY)L_mEX@-*^}02q*Q+fuSq6~>FJ4tFnzS=7uvo^a* zcG8|}hXNUQHMrx6ykU9eAJ-BeT4fgXl9ZfAl}AaDOf(>6$4&HW_9DHhWff1p zkFPHZ8H5$uW!!*2CN9q*KOF8KN&LQPg3RzZZF>WTx6H%-&us!r0)u{Q;kddgRUhaY2nWHSYLj}oK~ z4?vss4n3CVNg*#cwt3@Q)G?PSmqYjaK>-bq_s3Dkq>y08C&zE@hvdak+HZq{^$JAO z5Bfq0j^kIjs|i7i?v}c=;R`F?29>I?Ofcl9$pMlSPvSN;orN!}9*1&@c^2UJlNOtI z%m&2AJ=PPvQ?LEfK>?G>DJRO?^)&C*bvI%AR9s}dYqZzUb(aY)uwxxzWtLFY2FCUf-RB#;hiA6Ay1nG>iinPU|cfBIc)&P6@Z1R*2|I|265``kMaAN+3lzU_f8dud z#8KIo*)Bjn=GkX{4?ix=FM)3<-+xT|2Eq$`{NRD4mkH1BL?QB+&dgeMa29zxe~wZ7 z0awRg+O}J_`**jNw$MOqH@F@Tg8fblFaUJg6%}Ru+#fc>iUQBiX)hAJ%h{VZdx`_W zsuD|rJWPxw9xcaSlJAe*%U1Kj-;dsZ_1*< zdR3*QYHz8~J1Dm4{JXh!@N#qtGshxb%g&^486wSn1ualv9!ki=bpxsX{K0c8t-)Z} zYuJHzUzihHLY1jAFmb|HGqiK3mUxeUg|t)!9$fu7iwrTYxzEbv1teZYrZ`q;!~hlz zqhf-GU=m^GB|2z6XRt=?J>GMC+m`Vk*INa>wo!VPLYA4e1f^6G{l|n32-Qs{Q(|4P z(-36O=WwKKZIIOvviU`dq?Q?q3%ibxx9qNzh4XI4=DsDQ`i98_-|pkjulvpv{lH`s zR*=CI$^W?3BL^jY{rWu}G5xo^$$uAL`e#@D7t+Mc1<456n?y39cs>YxP$gL)j)fe) z^tWV$BYqH{DJ8_<4~>%1Mx0a`eFkz6emnjRR;7&|_vm4`A~C3^QqOzrufVT9INa#J zoe6aoJ93uO6P@E;*Iri+Id4bLJwAUy_!zsB;3bMh1->s>$d;)SCn_hLT2ho4i#8Qv zGK4g&nPa7@3d}ybam)PTqA<_uTQWi*vsYd3>t&GGpilm$r9hN1(;f%sik~0?? zCLY{exSbmk5$`pLm8Qo00ZIu>{@R@jK!o6dIzZjk5a$q7y%n-)<*nE4 zYbI_W$ZLEyZDmA^cyN@o9p+ds06XO2f%&Dqg`Nu3WU|wk&Schs>cmso%i-Ug{{$@o&PpRgaRcvm zk$PUDsA}JqtRMZYRZTs+ZH2S8Ox$6hil+o+CS0_m;ZY2}jEXA)ipMX|f}bZU$fsMQ zDyXM}94)1YY>o@>6%ef5LV%z=61^U^PvoH_^v#WVl9f>7%@7b;Uc?u+nT9G~HJlHB|Z^ zti4l|CCr+xTZu~Bww+nYO53(=+qSdPwr$(CZQIVB|5|6SKHa;|Kh{2@=f%93*D>Oo z5%E6n*v@bpV0euq^`1PqB6F%+4fET=Wu65zFtFLi1}B?=jE|Bj)wMlJ$`Oxa##3_Qvx zK<)QYX)(dAUr6g`9IE()INzbrQh7!bQ;E9VHD4i$q*=4JxNA=Mby2`R6fMOuJO7M1 zTi94QYJ0Ik)lqC%rJJsstl&}WXht1E;zX^B%m}o)MCRR2JKRz_=Zq))!u>WNCwVJP zrC(&YIxC!}LjXrtK$2&3h40slXP?3p4%l;w+(=M`G2v&G;sXlsY6#(2 z{neP9hxqWKaIJDORU#_$YGO zs1Lqu9>t1h&F%L1uLhTh#3fessjBBYNu39x#jT!H+espiN$1dprr^hiWt}zaBI}yd zJ9fXOX&cZeTgpvTkFh{(#xNI1j_cZbPK|x#a^@v3Ye5**n;)oI4IZa2jMt{A-Gw*c z7CUtb(s#{71Z+nFW`l_R@*xUiDm=8OHt{NZ{nNpc=bsgJ40|}B*YYUW2dTN1qK#~@rO;U?t zTc|Mwer}(p$@no~ zd<`SbvQ&?x8f#d2FQ!`89I`owa$8R{sol*WM0<~?vbcL4`o$516Klk)QtcE@>xCkS zQ9A*Z71?G|xZHq5ykWP@T^kGNyO?_NZ%Gv1fAbCguPLLT@csSY(kDu)&Pakt zpQW|q`E$N-ba1xd2*j8v)wI4MBmr~?c&z-(;F8jDj42YZ8=RucQ0xR`G|fK6#m6ol zvxE^dps><7Ny1t8J)kd`I1ftBq}Z%~;?N|doE4WoPHDC}9E-eO&(^MfQ1u%_L6^>8 z${`B%CLP)}VcDpMQ2WPSj0B18GU5}-(To>z*s9f%NKu&Pjo^r6QxbN2x$ zQx7%ACoX{VQpq?thu$bNTkx-sc+AVG@zuTPqeJJR@!uz_U@yKWhq@a);r{^;bfOQ} zE5oGq8xLhHUl{mmcmq_i+UR1W!H-{PsU#OxKMJ7a1)pWtB+8sr&SvAF zCK43CG9Z-Y{UcP#;^+{g86@CQ7Eja&F44iH2YvEF?zw}80zXO7Fi49iee7h#s7 z5^s3QO6dvmFqnG7S8tRZ1E3b^zrB-jH`hBb z#D7TI925S4%Gp%`hIQgV5(V&h0S6pq^vMz~k!_Lx zrtnno;SGrS$MVfB%PQnMDhM`|qBHeOJkf@zsoE|2>kyRmq4{~k>W@*d;lwbBNh6Hl zch!PSk@ViGr@`e0f3tjdQE`YXBBVxygnLKjgj~zk9P6%WoC}G$^NEixpA)Q+M+aEU z1vzqE?dC$=ip(?-?J+clRWczuoQA*O9f~xz#bQJCa1rMWA*XSy5Tp1nOLm?RSpANN z^`$v2NYqa*bzIL73plP9BSi~hisNiWlJ6>6Q+SBYElo94q$;gS$_e#??*|Cd6ZVi6 zS7Q$~yZIeUmSA=4cjn)DGSKV5S09V#c0$HlDEw4PY1xhPDFe0)dqD)`+i-4t5tJu;wmUo!^$Xo&g-;ky5Z(GVFQ zp{!}FjfoOj`o^L$gG>S1M}4FJ^+bD}%w4KGFq@7wK(7fn#LghLzQQz0vXM$6u4;FLbU5Dr3?Pns0X5rn{mDrm|?oqE!Z^{j=62^?i z8)VU8*$R>BMBiw~Chz2eIXQ=7DN;%Q<{4<>){N)9ld!mgfr@D6%wJ0}X-M|j^ajG!i@4j| zF!wd$h)PAas9-rq$qQ`Yx@Na8^w>dG{yfKo_qIxB(n9g7!f;P z3^!2jMO8XDi=k_djZMM)zsj9RnM1a*LkM?-2{xa&9bn`C-*Ts5znaP7S*#^o-)}1< z+ea%tK1b$%mOF)3yY&1+?gWjg3|3e5EqBuTOYW2j39I}cawqeD$en7dYJUY<|5NVN z@hx`}`j$IEf6JW^{zL9G)_mFBYx$SlY0o&I=qo3LwkZYJ0}--9Ak0MiSjK^Hfj)?C z3qt?FYx;^pQz6}nVOs7YfW+2$PvyjjXjY-1c?w~4o9UKY@i6&mXa#7}h_m8#iDp4$F~^)@Gmn0`+BrP*y$0x&nTOZq;(pARfhgo7<=9X zYPCBZJ4I^KvU=csn|D4fY`9=u=;h7({Sq9?;_V$XPHojK8j882PNQ~@;p1K5LfYFu zf~j#}w#@%?a;JYSqW_aiP_&d+7ew-Min9@Io<=GNDNt)TDBzLTDh-s$@0ZIZmqVP% zwQQF}X|^1WeA<+m{)Fb<9y>lR&db|lO_ZsiW%as4eJO}Ce$p}tSOr&1*}2TDGoEsN zWSg?``ugr=0D#&C=_^TZKpI0Xx6@h{8b@Ipn`H0RVzwtZq**;|#~d?I65kDZH5x7O z6FEW|h@I|63oCiEa7Kx25BXk#yG?d%X4d5tQ^y~23WOoi1L%|QXKomNQ1A&i&x-mh zI>+VkJ|L0!t#P11mulqaOK`fym`ve??1ON}r-qp_JjP16BI~ zKqiP~RDVrP%b&r=zBES(PooHN;#71LjI;+i1-<^s&NQ05hznwfe9;^Yw zKgVB#uZ-eKDMK6*oiXG8ZHyEUg{Y;%ouGUfPj-rSpUw{j4H2gtyThYwMjF)&_{y01 zhew(|K-}4v?)N6xZfvpaY}%e8)*Z(bLbV^2(_kIx@qDd3ROlB^w1YF&63r2rrt`!q zQA8rB?r9JHyQF?Rg9Z5k#?RKOiMEqG`L$lW4^zAB!!uS|_D_y?rtC+@MQX!X51D zL@F`Ap4=U$NKJZe_V)_%&|w9;WvBn#8VRnXq~h*+i4i!@3>;9BK3<LXf)Lz4~ck}iIz8#l}Jje1Y3JzEYu`)zG#=dy%>IE7gK{Onh4C@NwjQel|q6Vf`@@YT!h=##-2Dv1%skdrN=;z%+beOexjCS9lc-RB+Xrx-m6^| z!uf>p3}p+;oj8XBq%dtUMy#0g>|n92_9LZWb;Ha+WtnC|IIqZdhTdt^$@W7-2O0%) z8x%DR7(Ots1wT;y6hIXCPko0c79zz3v%Zv1cuVkr^bKEQw2^ z3nUt7`ZJt01PNBkFFA_s0geAjll#tDfAeIU?Ck^diU0a6jJA)fAK>k0`$;}|GetMS zJw){dnDm?k_fCoQykzsj(k#`ITioUk16_gf+p(jd1e|go8X*ehRoe1T5cj*30kUa_ zCvv+B8ha#$~gHJ=-*^K9HkA!(bW zv{PCpTXI;Y6OoN$S|&UrJm(fXCrfCiWBoP6>I+EJt-8R}6WVqY{1G=nk9RN9*H6@E z5}I3W+mx?DGE;$V7!VFIHMPrIcuszT*26n`0Ye~0p{R#@tK3e%f((X;b^f4*7P+tV zu~l^%bj4fiLAuEGE_CZnN&9Ylt2%T)=wQAwM3CyzT_6|nNJp2nL8DY#H<&))Twbfl z#jk&OWr|zb%VxjR*GZ6nH-i6NEzy6sd;XXCyCL;2Es=rXPr+-{hJ^t5ju{@Jd~k5l zJXA&^EvX_x&Dsr1qb7mO-e(dw!cZa(A6P?e?u9Zll~4j`NcP4(7KGk*ngU%Twx-+J3B7JicmL z*!&QKcGAtJ$A(djc(4cfX;b0Gh8WHfl_Cz)D9WI1QZTK_4n0vY=^>KxkNH@CI7|WlarYiOOKx~{Y06`-@0PU78-VR<^iLblTrs2 z%I2s-2E_@d%Nu3pK>SS{&&?B3LcgM)5gQ@haP5FAban=WcruXq*pzl z>mmh4Oq5e)8VNS)ed*@FzS+<%OH+A;_KbY%_)Un5!L2BL%hNv+@)^5a;$;4y!?eZY z=9ySmIM-4(B$J3!Q8pi#v{)Sb$FO0|zG>;WH!P-Uj6TZ-VQAs(tqx8E5{LYPao(+E6Vt!IVxoUYEdD)=n<-@~u zeuvhH4(&6hTimxk z%yk^=g0_i`_8d^v1orccjipMLQqSCIP%2Zk;kU$UU zCXQ*FTNj&}UOF7N+mPcyd7k%G3tfxCZF1V!5TGn=Ww_>I;;0xV#2`I2`?0T^`7^B& zA#(-=?s?^s@jWNJ56~dHJRq#9rg;Tzk~Z} z{-2|-ts=$PzC-caTh;A_B~H9^y{oAMkW~FgSzLMp2he*#Hpj2XbPw0+o2Lv^A4@=r~5Q&3k|R+fi7 zGsHtgtY4eYf57C9j!#>gClZUwVnV8?#d;JpBk3)ucS^yxdDlAg|y3+v$fb+GM3RwnW~{Ji9yfRV7-RfppvidWk= z<0AANCf~#CAyktVFg5_>ONi${2D1d|WZH_-3>m}OgnLy~&!9>`&I4E5dn|Zs)>$AZ z?spDN!tN!4-kwyo(SEr+yw*&sm`VGCKV+&`t5MScrS z5ONz~NhQzP1rMFoTZvbqb{%edp)Ge}r_65z6PPh9;yyL`nEIlCg9wo|L;!?wwzd_b z&a+9iWJ#S+1-kyQsvG%L(T z^Il5faTy}fexB=oGIVU6kHDPs6T*L{Pz91nWZO*|R>~*JJRO9zdx(0U^t@WF>>b#| zoPicVj!D}U+{SFQr3ZUc2K!!zzl$BYy8#49w_?EYf{UA3fu{Ca;lvoU<0N-)7bNAf zk=go3ZzYfGn~G_-@>ZcXWQwzcQ$64V%WnD8taYHlR>97_NGBR%HwUeFS!R1=?G#iB30&3HOtGGCa&bnttB(;GJ6P^oC3sHSla0c z(0l6>kuO42;65KBFwhJiHy?u%^{8@x1eI?_9^JRo;XmBf(F#^eJ^U)&2*hEFyYwKs?7<1@5l`}Nf zrBgWj!?FIwMSjT<-?oW*tzcQAT-JaS7w!TKK^GlBj_lTB3F*3#Dc=C&iQAE+?p*4a zoKhLO=haW|EW3mVNoUA!qCHB6G!JL1YA&67=>4vno51=AoXw%M%U zNFo?|7|KDOM%f%&@~Y3;#O?w?blG-xH6#ukGHh∨s_wcoZSS=JIr~ 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

    ?Ns4x&J`gFy+3}6jZQDA9k9UDXV*774?TP{=Rqv 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ÏHaa); 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%0AD-T36|tH3MZ>Yrk)Z~H34(dW??Z-m3BA|r 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