From 5c1d8fdbc548b3e39922d75064d6e7703a2170c6 Mon Sep 17 00:00:00 2001 From: Liam Thompson <32779855+leemthompo@users.noreply.github.com> Date: Thu, 21 Nov 2024 09:59:21 +0100 Subject: [PATCH 1/8] Revamp Elasticsearch serverless ingest landing page (#208) --- serverless/pages/ingest-your-data.asciidoc | 39 +++++++++++++--------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/serverless/pages/ingest-your-data.asciidoc b/serverless/pages/ingest-your-data.asciidoc index aa4f772f..067b3b92 100644 --- a/serverless/pages/ingest-your-data.asciidoc +++ b/serverless/pages/ingest-your-data.asciidoc @@ -4,27 +4,36 @@ // :description: Add data to your {es-serverless} project. // :keywords: serverless, elasticsearch, ingest, overview -You have many options for ingesting, or indexing, data into {es}: +The best ingest option(s) for your use case depends on whether you are indexing general content or time series (timestamped) data. -* <> -* <> -* <> -* <> -* <> -* https://github.com/elastic/crawler[Elastic Open Web Crawler] +[discrete] +[[es-ingestion-overview-apis]] +== Ingest data using APIs -The best ingest option(s) for your use case depends on whether you are indexing general content or time series (timestamped) data. +You can use the <> to add data to your {es} indices, using any HTTP client, including the <>. -**General content** +While the {es} APIs can be used for any data type, Elastic provides specialized tools that optimize ingestion for specific use cases. + +[discrete] +[[es-ingestion-overview-general-content]] +== Ingest general content -General content includes HTML pages, catalogs, files, and other content that does not update continuously. -This data can be updated, but the value of the content remains relatively constant over time. -Use connector clients to sync data from a range of popular data sources to {es}. -You can also send data directly to {es} from your application using the API. +General content is typically text-heavy data that does not have a timestamp. +This could be data like knowledge bases, website content, product catalogs, and more. + +You can use these specialized tools to add general content to {es} indices: + +* <> +* https://github.com/elastic/crawler[Elastic Open Web Crawler] +* <> [discrete] [[elasticsearch-ingest-time-series-data]] -**Times series (timestamped) data** +== Ingest time series data Time series, or timestamped data, describes data that changes frequently and "flows" over time, such as stock quotes, system metrics, and network traffic data. -Use {beats} or {ls} to collect time series data. + +You can use these specialized tools to add timestamped data to {es} data streams: + +* <> +* <> From 16807455860d7fd1301ab1f73f41a86453756dc4 Mon Sep 17 00:00:00 2001 From: Liam Thompson <32779855+leemthompo@users.noreply.github.com> Date: Thu, 21 Nov 2024 10:00:47 +0100 Subject: [PATCH 2/8] Improve Elasticsearch serverless APIs docs landing page (#207) --- serverless/pages/apis-http-apis.asciidoc | 33 +++++++++++++++++-- serverless/pages/clients.asciidoc | 5 +++ .../pages/connecting-to-es-endpoint.asciidoc | 5 ++- 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/serverless/pages/apis-http-apis.asciidoc b/serverless/pages/apis-http-apis.asciidoc index 87873d12..8de2a62a 100644 --- a/serverless/pages/apis-http-apis.asciidoc +++ b/serverless/pages/apis-http-apis.asciidoc @@ -4,6 +4,33 @@ // :description: {es} and {kib} expose REST APIs that can be called directly to configure and access {stack} features. // :keywords: serverless, elasticsearch, http, rest, overview -* <>: The {es-serverless} REST APIs have conventions for headers and request bodies. -* <>: The Management APIs for {serverless-short} have request header conventions. -* https://www.elastic.co/docs/api/[API Reference]: Explore the reference information for Elastic Serverless REST APIs +[discrete] +[[elasticsearch-api-references-links]] +== API references + +The following APIs are available for {es-serverless} users. +These links will take you to the autogenerated API reference documentation. + +https://www.elastic.co/docs/api/doc/elasticsearch-serverless[Elasticsearch Serverless APIs β†’]:: +Use these APIs to index, manage, search, and analyze your data in {es-serverless}. ++ +[TIP] +==== +Learn how to <>. +==== + +https://www.elastic.co/docs/api/doc/serverless[Kibana Serverless APIs β†’]:: +Use these APIs to manage resources such as connectors, data views, and saved objects for your {serverless-full} project. + +https://www.elastic.co/docs/api/doc/elastic-cloud-serverless[{serverless-full} APIs β†’]:: +Use these APIs to manage your {serverless-full} projects. + +[discrete] +[[additional-api-details]] +== Additional API information + +<>:: +Reference information about headers and request body conventions for {es-serverless} REST APIs. + +<>:: +Reference information about request header conventions for {serverless-full} REST APIs. diff --git a/serverless/pages/clients.asciidoc b/serverless/pages/clients.asciidoc index e3e42f6e..9590ed24 100644 --- a/serverless/pages/clients.asciidoc +++ b/serverless/pages/clients.asciidoc @@ -20,3 +20,8 @@ Currently, the following language clients are supported: * <> | https://github.com/elastic/elasticsearch-serverless-php[Repository] * <> | https://github.com/elastic/elasticsearch-serverless-python[Repository] * <> | https://github.com/elastic/elasticsearch-serverless-ruby[Repository] + +[TIP] +==== +Learn how to <>. +==== diff --git a/serverless/pages/connecting-to-es-endpoint.asciidoc b/serverless/pages/connecting-to-es-endpoint.asciidoc index 02069ee8..34746236 100644 --- a/serverless/pages/connecting-to-es-endpoint.asciidoc +++ b/serverless/pages/connecting-to-es-endpoint.asciidoc @@ -1,5 +1,8 @@ [[elasticsearch-connecting-to-es-serverless-endpoint]] -= Connecting to your Elasticsearch Serverless endpoint += Connect to your Elasticsearch Serverless endpoint +++++ +Connect to your endpoint +++++ [TIP] ==== From 353b9dd69e8ef3e3f95733e3a48207dd2fbe165f Mon Sep 17 00:00:00 2001 From: Liam Thompson <32779855+leemthompo@users.noreply.github.com> Date: Thu, 21 Nov 2024 10:01:48 +0100 Subject: [PATCH 3/8] =?UTF-8?q?[ES3]=20Consolidate=20tech=20preview=20limi?= =?UTF-8?q?tations=20+=20serverless=20differences,=20=E2=80=A6=20(#194)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../index-serverless-elasticsearch.asciidoc | 7 +- .../pages/serverless-differences.asciidoc | 153 +++++++++++++++--- .../technical-preview-limitations.asciidoc | 18 +-- .../what-is-elasticsearch-serverless.asciidoc | 6 +- 4 files changed, 141 insertions(+), 43 deletions(-) diff --git a/serverless/index-serverless-elasticsearch.asciidoc b/serverless/index-serverless-elasticsearch.asciidoc index 509fa5cf..b7493298 100644 --- a/serverless/index-serverless-elasticsearch.asciidoc +++ b/serverless/index-serverless-elasticsearch.asciidoc @@ -5,6 +5,7 @@ ++++ include::./pages/what-is-elasticsearch-serverless.asciidoc[leveloffset=+2] +include::./pages/serverless-differences.asciidoc[leveloffset=+2] include::./pages/pricing.asciidoc[leveloffset=+2] @@ -43,8 +44,4 @@ include::./pages/search-your-data-semantic-search-elser.asciidoc[leveloffset=+4] include::./pages/explore-your-data.asciidoc[leveloffset=+2] -include::./pages/search-playground.asciidoc[leveloffset=+2] - -include::./pages/serverless-differences.asciidoc[leveloffset=+2] - -include::./pages/technical-preview-limitations.asciidoc[leveloffset=+2] +include::./pages/search-playground.asciidoc[leveloffset=+2] \ No newline at end of file diff --git a/serverless/pages/serverless-differences.asciidoc b/serverless/pages/serverless-differences.asciidoc index 65533244..7e3f19f8 100644 --- a/serverless/pages/serverless-differences.asciidoc +++ b/serverless/pages/serverless-differences.asciidoc @@ -1,17 +1,111 @@ [[elasticsearch-differences]] = Differences from other {es} offerings +++++ +Serverless differences +++++ // :description: Understand how {es-serverless} differs from Elastic Cloud Hosted and self-managed offerings. // :keywords: serverless, elasticsearch -++++ -Serverless differences -++++ +<> handles all the infrastructure management for you, providing a fully managed {es} service. + +If you've used {es} before, you'll notice some differences in how you work with the service on {serverless-full}, because a number of APIs and settings are not required for serverless projects. + +This guide helps you understand what's different, what's available, and how to work effectively when running {es} on {serverless-full}. + +[discrete] +[[elasticsearch-differences-serverless-infrastructure-management]] +== Fully managed infrastructure + +{es-serverless} manages all infrastructure automatically, including: + +* Cluster scaling and optimization +* Node management and allocation +* Shard distribution and replication +* Resource utilization and monitoring + +This fully managed approach means many traditional {es} infrastructure APIs and settings are not available to end users, as detailed in the following sections. + +[discrete] +[[elasticsearch-differences-serverless-apis-availability]] +== API availability + +Because {es-serverless} manages infrastructure automatically, certain APIs are not available, while others remain fully accessible. + +[TIP] +==== +Refer to the https://www.elastic.co/docs/api/doc/elasticsearch-serverless[{es-serverless} API reference] for a complete list of available APIs. +==== + +The following categories of operations are unavailable: + +Infrastructure operations:: +* All `_nodes/*` operations +* All `_cluster/*` operations +* Most `_cat/*` operations, except for index-related operations such as `/_cat/indices` and `/_cat/aliases` + +Storage and backup:: +* All `_snapshot/*` operations +* Repository management operations + +Index management:: +* `indices/close` operations +* `indices/open` operations +* Recovery and stats operations +* Force merge operations + +When attempting to use an unavailable API, you'll receive a clear error message: + +[source,json] +---- +{ + "error": { + "root_cause": [ + { + "type": "api_not_available_exception", + "reason": "Request for uri [/] with method [] exists but is not available when running in serverless mode" + } + ], + "status": 410 + } +} +---- + +[discrete] +[[elasticsearch-differences-serverless-settings-availability]] +== Settings availability + +In {es-serverless}, you can only configure {ref}/index-modules.html#index-modules-settings[index-level settings]. +Cluster-level settings and node-level settings are not required by end users and the `elasticsearch.yml` file is fully managed by Elastic. + +Available settings:: +*Index-level settings*: Settings that control how {es} documents are processed, stored, and searched are available to end users. These include: +* Analysis configuration +* Mapping parameters +* Search/query settings +* Indexing settings such as `refresh_interval` + +Managed settings:: +*Infrastructure-related settings*: Settings that affect cluster resources or data distribution are not available to end users. These include: +* Node configurations +* Cluster topology +* Shard allocation +* Resource management + +[discrete] +[[elasticsearch-differences-serverless-feature-categories]] +== Feature availability Some features that are available in Elastic Cloud Hosted and self-managed offerings are not available in {es-serverless}. -These features have either been replaced by a new feature, or are not applicable in the new Serverless architecture: +These features have either been replaced by a new feature, are planned to be released in future, or are not applicable in the new serverless architecture. + +[discrete] +[[elasticsearch-differences-serverless-features-replaced]] +=== Replaced features -* **Index lifecycle management ({ilm-init})** is not available, in favor of <>. +These features have been replaced by a new feature and are therefore not available on {es-serverless}: + +* *Index lifecycle management ({ilm-init})* is not available, in favor of <>. + In an Elastic Cloud Hosted or self-managed environment, {ilm-init} lets you automatically transition indices through data tiers according to your performance needs and retention requirements. This allows you to balance hardware costs with performance. {es-serverless} eliminates this @@ -20,21 +114,44 @@ complexity by optimizing your cluster performance for you. Data stream lifecycle is an optimized lifecycle tool that lets you focus on the most common lifecycle management needs, without unnecessary hardware-centric concepts like data tiers. + -* **Watcher** is not available, in favor of Kibana Alerts**. +* *Watcher* is not available, in favor of <>. + Kibana Alerts allows rich integrations across use cases like APM, metrics, security, and uptime. Prepackaged rule types simplify setup and hide the details of complex, domain-specific detections, while providing a consistent interface across Kibana. + +[discrete] +[[elasticsearch-differences-serverless-feature-planned]] +=== Planned features + +The following features are planned for future support in all {serverless-full} projects: + +* Reindexing from remote clusters +* Cross-project search and replication +* Snapshot and restore +* Migrations from non-serverless deployments +* Audit logging +* Authentication realms (native/SAML/OIDC/Kerberos/JWT) +* Clone index API +* Traffic filtering and VPCs + +The following {es-serverless} project-specific features are planned for future support: + +* {ref}/behavioral-analytics-overview.html[Behavioral Analytics] +* {ref}/search-application-overview.html[Search Applications] +* {enterprise-search-ref}/crawler.html[Managed web crawler] ++ +You can use the https://github.com/elastic/crawler[self-managed web crawler] in the meantime. + -* Certain APIs, API parameters, index, cluster and node level settings are not available. Refer to our -<> for a list of available APIs. -+ -{es-serverless} manages the underlying Elastic cluster for you, optimizing nodes, shards, and replicas for your use case. -Because of this, various management and monitoring APIs, API parameters and settings are not available on Serverless. -+ -* {ref}/search-aggregations-metrics-scripted-metric-aggregation.html[Scripted metric aggregations] are not available. +* {ref}/es-native-connectors.html[Elastic managed Search connectors] ++ +You can use {ref}/es-build-connector.html[self-managed Search connectors] in the meantime. -.Other limitations -[IMPORTANT] -==== -For serverless technical preview limitations, refer to <>. -==== +[discrete] +[[elasticsearch-differences-serverless-feature-unavailable]] +=== Unplanned features + +The following features are not available in {es-serverless} and are not planned for future support: + +* https://www.elastic.co/guide/en/cloud/current/ec-custom-bundles.html[Custom plugins and bundles] +* https://www.elastic.co/guide/en/elasticsearch/hadoop/current/reference.html[{es} for Apache Hadoop] +* {ref}/search-aggregations-metrics-scripted-metric-aggregation.html[Scripted metric aggregations] \ No newline at end of file diff --git a/serverless/pages/technical-preview-limitations.asciidoc b/serverless/pages/technical-preview-limitations.asciidoc index f34629a2..830ff882 100644 --- a/serverless/pages/technical-preview-limitations.asciidoc +++ b/serverless/pages/technical-preview-limitations.asciidoc @@ -1,22 +1,10 @@ [[elasticsearch-technical-preview-limitations]] -= Technical preview limitations += Limitations // :description: Review the limitations that apply to {es-serverless} projects. // :keywords: serverless, elasticsearch -The following are currently not available: -* Custom plugins and custom bundles -* Reindexing from remote clusters -* Cross-cluster search and cross-cluster replication -* Snapshot and restore -* Clone index API -* Migrations from non-serverless {es} deployments. In the interim, you can <> to move data to and from serverless projects. -* Audit logging -* {es} for Apache Hadoop +// This page is not included in the index file, so it is not visible in the navigation menu anymore. HTTP redirects will be set up. -Currently, workloads outside of the following ranges may experience higher latencies (greater than sub-second): - -* Search queries on indices greater than 150GB -* Index queries per second (QPS) greater than 1000 -* Search queries per second (QPS) greater than 1800 +Refer to <> for a comparison of {es-serverless} with other Elastic Cloud offerings. \ No newline at end of file diff --git a/serverless/pages/what-is-elasticsearch-serverless.asciidoc b/serverless/pages/what-is-elasticsearch-serverless.asciidoc index 713da55c..ba15f267 100644 --- a/serverless/pages/what-is-elasticsearch-serverless.asciidoc +++ b/serverless/pages/what-is-elasticsearch-serverless.asciidoc @@ -12,7 +12,6 @@ Elasticsearch allows you to build custom applications. Whether you have structur If you haven't used {es} before, first learn the basics in the https://www.elastic.co/guide/en/elasticsearch/reference/current/elasticsearch-intro.html[core {es} documentation]. ==== - {es} is one of the three available project types on <>. This project type enables you to use the core functionality of {es}: searching, indexing, storing, and analyzing data of all shapes and sizes. @@ -32,12 +31,9 @@ a| [.card-title]#<># + Get started by creating your first {es} project on serverless. | πŸ”Œ -a| [.card-title]#<># + +a| [.card-title]#<># + Learn how to connect your applications to your {es-serverless} endpoint. -// TODO add coming link to new page about connecting to your serverless endpoint -// <> - | ‡️ a| [.card-title]#<># + Learn how to get your data into {es} and start building your search application. From 8379036121bbf20be2e4496307d56d806cf513a3 Mon Sep 17 00:00:00 2001 From: kosabogi <105062005+kosabogi@users.noreply.github.com> Date: Thu, 21 Nov 2024 11:45:13 +0100 Subject: [PATCH 4/8] [ML] Updates Semantic search section (#205) * Updates Semantic search section * Update serverless/pages/search-your-data-semantic-search.asciidoc Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com> * Update serverless/pages/search-your-data-semantic-search.asciidoc Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com> * Updates based on feedback * Update serverless/pages/search-your-data-semantic-search.asciidoc Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com> * Replaces ELSER with model deployment workflow * Adds Semantic search with ELSER page --------- Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com> --- serverless/images/semantic-options.svg | 62 +++ .../index-serverless-elasticsearch.asciidoc | 1 - ...h-your-data-semantic-search-elser.asciidoc | 390 ------------------ ...-your-data-semantic-search-elser.asciidoc | 9 + .../search-your-data-semantic-search.asciidoc | 138 +------ 5 files changed, 93 insertions(+), 507 deletions(-) create mode 100644 serverless/images/semantic-options.svg delete mode 100644 serverless/pages/search-your-data-semantic-search-elser.asciidoc create mode 100644 serverless/pages/search-your-data-semantic-search-elser.asciidoc diff --git a/serverless/images/semantic-options.svg b/serverless/images/semantic-options.svg new file mode 100644 index 00000000..3bedf530 --- /dev/null +++ b/serverless/images/semantic-options.svg @@ -0,0 +1,62 @@ + + + + Elasticsearch semantic search workflows + + + + + + semantic_text + (Recommended) + + + + Inference API + + + + Model Deployment + + + Complexity: Low + Complexity: Medium + Complexity: High + + + + + + Create Inference Endpoint + + + Define Index Mapping + + + + Create Inference Endpoint + + + Configure Model Settings + + + Define Index Mapping + + + Setup Ingest Pipeline + + + + Select NLP Model + + + Deploy with Eland Client + + + Define Index Mapping + + + Setup Ingest Pipeline + + + diff --git a/serverless/index-serverless-elasticsearch.asciidoc b/serverless/index-serverless-elasticsearch.asciidoc index b7493298..64d53024 100644 --- a/serverless/index-serverless-elasticsearch.asciidoc +++ b/serverless/index-serverless-elasticsearch.asciidoc @@ -40,7 +40,6 @@ include::./pages/search-your-data-the-search-api.asciidoc[leveloffset=+3] include::./pages/search-with-synonyms.asciidoc[leveloffset=+3] include::./pages/knn-search.asciidoc[leveloffset=+3] include::./pages/search-your-data-semantic-search.asciidoc[leveloffset=+3] -include::./pages/search-your-data-semantic-search-elser.asciidoc[leveloffset=+4] include::./pages/explore-your-data.asciidoc[leveloffset=+2] diff --git a/serverless/pages/search-your-data-semantic-search-elser.asciidoc b/serverless/pages/search-your-data-semantic-search-elser.asciidoc deleted file mode 100644 index 5e9d4907..00000000 --- a/serverless/pages/search-your-data-semantic-search-elser.asciidoc +++ /dev/null @@ -1,390 +0,0 @@ -[[elasticsearch-reference-semantic-search-elser]] -= Tutorial: Semantic search with ELSER - -// :description: Perform semantic search using ELSER, an NLP model trained by Elastic. -// :keywords: elasticsearch, elser, semantic search - -Elastic Learned Sparse EncodeR - or ELSER - is an NLP model trained by Elastic -that enables you to perform semantic search by using sparse vector -representation. Instead of literal matching on search terms, semantic search -retrieves results based on the intent and the contextual meaning of a search -query. - -The instructions in this tutorial shows you how to use ELSER to perform semantic -search on your data. - -[NOTE] -==== -Only the first 512 extracted tokens per field are considered during -semantic search with ELSER. Refer to -{ml-docs}/ml-nlp-limitations.html#ml-nlp-elser-v1-limit-512[this page] for more -information. -==== - -[discrete] -[[requirements]] -== Requirements - -To perform semantic search by using ELSER, you must have the NLP model deployed -in your cluster. Refer to the -{ml-docs}/ml-nlp-elser.html[ELSER documentation] to learn how to download and -deploy the model. - -[NOTE] -==== -The minimum dedicated ML node size for deploying and using the ELSER model -is 4 GB in {es} Service if -{cloud}/ec-autoscaling.html[deployment autoscaling] is turned off. Turning on -autoscaling is recommended because it allows your deployment to dynamically -adjust resources based on demand. Better performance can be achieved by using -more allocations or more threads per allocation, which requires bigger ML nodes. -Autoscaling provides bigger nodes when required. If autoscaling is turned off, -you must provide suitably sized nodes yourself. -==== - -[discrete] -[[elser-mappings]] -== Create the index mapping - -First, the mapping of the destination index - the index that contains the tokens -that the model created based on your text - must be created. The destination -index must have a field with the -{ref}/sparse-vector.html[`sparse_vector`] or {ref}/rank-features.html[`rank_features`] field -type to index the ELSER output. - -[NOTE] -==== -ELSER output must be ingested into a field with the `sparse_vector` or -`rank_features` field type. Otherwise, {es} interprets the token-weight pairs as -a massive amount of fields in a document. If you get an error similar to this -`"Limit of total fields [1000] has been exceeded while adding new fields"` then -the ELSER output field is not mapped properly and it has a field type different -than `sparse_vector` or `rank_features`. -==== - -[source,bash] ----- -curl -X PUT "${ES_URL}/my-index" \ --H "Authorization: ApiKey ${API_KEY}" \ --H "Content-Type: application/json" \ --d' -{ - "mappings": { - "properties": { - "content_embedding": { <1> - "type": "sparse_vector" <2> - }, - "content": { <3> - "type": "text" <4> - } - } - } -} -' ----- - -<1> The name of the field to contain the generated tokens. It must be refrenced -in the {infer} pipeline configuration in the next step. - -<2> The field to contain the tokens is a `sparse_vector` field. - -<3> The name of the field from which to create the sparse vector representation. -In this example, the name of the field is `content`. It must be referenced in the -{infer} pipeline configuration in the next step. - -<4> The field type which is text in this example. - -To learn how to optimize space, refer to the <> section. - -[discrete] -[[inference-ingest-pipeline]] -== Create an ingest pipeline with an inference processor - -Create an {ref}/ingest.html[ingest pipeline] with an -{ref}/inference-processor.html[inference processor] to use ELSER to infer against the data -that is being ingested in the pipeline. - -[source,bash] ----- -curl -X PUT "${ES_URL}/_ingest/pipeline/elser-v2-test" \ --H "Authorization: ApiKey ${API_KEY}" \ --H "Content-Type: application/json" \ --d' -{ - "processors": [ - { - "inference": { - "model_id": ".elser_model_2", - "input_output": [ <1> - { - "input_field": "content", - "output_field": "content_embedding" - } - ] - } - } - ] -} -' ----- - -[discrete] -[[load-data]] -== Load data - -In this step, you load the data that you later use in the {infer} ingest -pipeline to extract tokens from it. - -Use the `msmarco-passagetest2019-top1000` data set, which is a subset of the MS -MARCO Passage Ranking data set. It consists of 200 queries, each accompanied by -a list of relevant text passages. All unique passages, along with their IDs, -have been extracted from that data set and compiled into a -https://github.com/elastic/stack-docs/blob/main/docs/en/stack/ml/nlp/data/msmarco-passagetest2019-unique.tsv[tsv file]. - -Download the file and upload it to your cluster using the -{kibana-ref}/connect-to-elasticsearch.html#upload-data-kibana[Data Visualizer] -in the {ml-app} UI. Assign the name `id` to the first column and `content` to -the second column. The index name is `test-data`. Once the upload is complete, -you can see an index named `test-data` with 182469 documents. - -[discrete] -[[reindexing-data-elser]] -== Ingest the data through the {infer} ingest pipeline - -Create the tokens from the text by reindexing the data throught the {infer} -pipeline that uses ELSER as the inference model. - -[source,bash] ----- -curl -X POST "${ES_URL}/_reindex?wait_for_completion=false" \ --H "Authorization: ApiKey ${API_KEY}" \ --H "Content-Type: application/json" \ --d' -{ - "source": { - "index": "test-data", - "size": 50 <1> - }, - "dest": { - "index": "my-index", - "pipeline": "elser-v2-test" - } -} -' ----- - -<1> The default batch size for reindexing is 1000. Reducing `size` to a smaller -number makes the update of the reindexing process quicker which enables you to -follow the progress closely and detect errors early. - -The call returns a task ID to monitor the progress: - -[source,bash] ----- -curl -X GET "${ES_URL}/_tasks/" \ --H "Authorization: ApiKey ${API_KEY}" \ ----- - -You can also open the Trained Models UI, select the Pipelines tab under ELSER to -follow the progress. - -[discrete] -[[sparse-vector-query]] -== Semantic search by using the `sparse_vector` query - -To perform semantic search, use the `sparse_vector` query, and provide the -query text and the inference ID associated with the ELSER model service. The example below uses the query text "How to -avoid muscle soreness after running?", the `content_embedding` field contains -the generated ELSER output: - -[source,bash] ----- -curl -X GET "${ES_URL}/my-index/_search" \ --H "Authorization: ApiKey ${API_KEY}" \ --H "Content-Type: application/json" \ --d' -{ - "query":{ - "sparse_vector":{ - "field": "content_embedding", - "inference_id": "my-elser-endpoint", - "query": "How to avoid muscle soreness after running?" - } - } -} -' ----- - -The result is the top 10 documents that are closest in meaning to your query -text from the `my-index` index sorted by their relevancy. The result also -contains the extracted tokens for each of the relevant search results with their -weights. - -[source,consol-result] ----- -"hits": { - "total": { - "value": 10000, - "relation": "gte" - }, - "max_score": 26.199875, - "hits": [ - { - "_index": "my-index", - "_id": "FPr9HYsBag9jXmT8lEpI", - "_score": 26.199875, - "_source": { - "content_embedding": { - "muscular": 0.2821541, - "bleeding": 0.37929374, - "foods": 1.1718726, - "delayed": 1.2112266, - "cure": 0.6848574, - "during": 0.5886185, - "fighting": 0.35022718, - "rid": 0.2752442, - "soon": 0.2967024, - "leg": 0.37649947, - "preparation": 0.32974035, - "advance": 0.09652356, - (...) - }, - "id": 1713868, - "model_id": ".elser_model_2", - "content": "For example, if you go for a run, you will mostly use the muscles in your lower body. Give yourself 2 days to rest those muscles so they have a chance to heal before you exercise them again. Not giving your muscles enough time to rest can cause muscle damage, rather than muscle development." - } - }, - (...) - ] -} ----- - -[discrete] -[[sparse-vector-compound-query]] -== Combining semantic search with other queries - -You can combine `sparse_vector` with other queries in a -{ref}/compound-queries.html[compound query]. For example using a filter clause in a -{ref}/query-dsl-bool-query.html[Boolean query] or a full text query which may or may not use the same -query text as the `sparse_vector` query. This enables you to combine the search -results from both queries. - -The search hits from the `sparse_vector` query tend to score higher than other -{es} queries. Those scores can be regularized by increasing or decreasing the -relevance scores of each query by using the `boost` parameter. Recall on the -`sparse_vector` query can be high where there is a long tail of less relevant -results. Use the `min_score` parameter to prune those less relevant documents. - -[source,bash] ----- -curl -X GET "${ES_URL}/my-index/_search" \ --H "Authorization: ApiKey ${API_KEY}" \ --H "Content-Type: application/json" \ --d' -{ - "query": { - "bool": { <1> - "should": [ - { - "sparse_vector": { - "field": "content_embedding", - "query": "How to avoid muscle soreness after running?", - "inference_id": "my-elser-endpoint", - "boost": 1 <2> - } - } - }, - { - "query_string": { - "query": "toxins", - "boost": 4 <3> - } - } - ] - } - }, - "min_score": 10 <4> -} -' ----- - -<1> Both the `sparse_vector` and the `query_string` queries are in a `should` -clause of a `bool` query. - -<2> The `boost` value is `1` for the `sparse_vector` query which is the default -value. This means that the relevance score of the results of this query are not -boosted. - -<3> The `boost` value is `4` for the `query_string` query. The relevance score -of the results of this query is increased causing them to rank higher in the -search results. - -<4> Only the results with a score equal to or higher than `10` are displayed. - -[discrete] -[[optimization]] -== Optimizing performance - -[discrete] -[[save-space]] -=== Saving disk space by excluding the ELSER tokens from document source - -The tokens generated by ELSER must be indexed for use in the -{ref}/query-dsl-sparse-vector-query.html[sparse_vector query]. However, it is not -necessary to retain those terms in the document source. You can save disk space -by using the {ref}/mapping-source-field.html#include-exclude[source exclude] mapping to remove the ELSER -terms from the document source. - -[WARNING] -==== -Reindex uses the document source to populate the destination index. -Once the ELSER terms have been excluded from the source, they cannot be -recovered through reindexing. Excluding the tokens from the source is a -space-saving optimsation that should only be applied if you are certain that -reindexing will not be required in the future! It's important to carefully -consider this trade-off and make sure that excluding the ELSER terms from the -source aligns with your specific requirements and use case. -==== - -The mapping that excludes `content_embedding` from the `_source` field can be -created by the following API call: - -[source,bash] ----- -curl -X PUT "${ES_URL}/my-index" \ --H "Authorization: ApiKey ${API_KEY}" \ --H "Content-Type: application/json" \ --d' -{ - "mappings": { - "_source": { - "excludes": [ - "content_embedding" - ] - }, - "properties": { - "content_embedding": { - "type": "sparse_vector" - }, - "content": { - "type": "text" - } - } - } -} -' ----- - -[discrete] -[[further-reading]] -== Further reading - -* {ml-docs}/ml-nlp-elser.html[How to download and deploy ELSER] -* {ml-docs}/ml-nlp-limitations.html#ml-nlp-elser-v1-limit-512[ELSER limitation] -* https://www.elastic.co/blog/may-2023-launch-information-retrieval-elasticsearch-ai-model[Improving information retrieval in the Elastic Stack: Introducing Elastic Learned Sparse Encoder, our new retrieval model] - -[discrete] -[[interactive-example]] -== Interactive example - -* The `elasticsearch-labs` repo has an interactive example of running https://github.com/elastic/elasticsearch-labs/blob/main/notebooks/search/03-ELSER.ipynb[ELSER-powered semantic search] using the {es} Python client. diff --git a/serverless/pages/search-your-data-semantic-search-elser.asciidoc b/serverless/pages/search-your-data-semantic-search-elser.asciidoc new file mode 100644 index 00000000..02712bc1 --- /dev/null +++ b/serverless/pages/search-your-data-semantic-search-elser.asciidoc @@ -0,0 +1,9 @@ +[[elasticsearch-reference-semantic-search-elser]] += Tutorial: Semantic search with ELSER + +// :description: Perform semantic search using ELSER, an NLP model trained by Elastic. +// :keywords: elasticsearch, elser, semantic search + +// This page is not included in the index file, so it is not visible in the navigation menu anymore. HTTP redirects will be set up. + +ℹ️ Refer to <> for an overview of semantic search in {es-serverless}. \ No newline at end of file diff --git a/serverless/pages/search-your-data-semantic-search.asciidoc b/serverless/pages/search-your-data-semantic-search.asciidoc index efe8670f..de30fe82 100644 --- a/serverless/pages/search-your-data-semantic-search.asciidoc +++ b/serverless/pages/search-your-data-semantic-search.asciidoc @@ -8,136 +8,42 @@ Semantic search is a search method that helps you find data based on the intent and contextual meaning of a search query, instead of a match on query terms (lexical search). -{es} provides semantic search capabilities using {ml-docs}/ml-nlp.html[natural -language processing (NLP)] and vector search. Deploying an NLP model to {es} -enables it to extract text embeddings out of text. Embeddings are vectors that -provide a numeric representation of a text. Pieces of content with similar -meaning have similar representations. +Elasticsearch provides various semantic search capabilities using natural language processing (NLP) and vector search. Using an NLP model enables you to extract text embeddings out of text. Embeddings are vectors that provide a numeric representation of a text. Pieces of content with similar meaning have similar representations. -image::images/vector-search-oversimplification.png[A simplified representation of encoding textual concepts as vectors] +There are three main workflows for implementing semantic search with {es}, arranged in order of increasing complexity: -_A simplified representation of encoding textual concepts as vectors_ +- <> +- <> +- <> -At query time, {es} can use the same NLP model to convert a query into -embeddings, enabling you to find documents with similar text embeddings. +image::images/semantic-options.svg[Overview of semantic search workflows in {es}] -This guide shows you how to implement semantic search with {es}, from selecting -an NLP model, to writing queries. +[NOTE] +==== +Semantic search is available on all Elastic deployment types: self-managed clusters, Elastic Cloud Hosted deployments, and {es-serverless} projects. The links on this page will take you to the {ref}/semantic-search.html[{es} core documentation]. +==== [discrete] -[[semantic-search-select-nlp-model]] -== Select an NLP model - -{es} offers the usage of a -{ml-docs}/ml-nlp-model-ref.html#ml-nlp-model-ref-text-embedding[wide range of NLP models], -including both dense and sparse vector models. Your choice of the language model -is critical for implementing semantic search successfully. - -While it is possible to bring your own text embedding model, achieving good -search results through model tuning is challenging. Selecting an appropriate -model from our third-party model list is the first step. Training the model on -your own data is essential to ensure better search results than using only BM25. -However, the model training process requires a team of data scientists and ML -experts, making it expensive and time-consuming. - -To address this issue, Elastic provides a pre-trained representational model -called {ml-docs}/ml-nlp-elser.html[Elastic Learned Sparse EncodeR (ELSER)]. -ELSER, currently available only for English, is an out-of-domain sparse vector -model that does not require fine-tuning. This adaptability makes it suitable for -various NLP use cases out of the box. Unless you have a team of ML specialists, -it is highly recommended to use the ELSER model. - -In the case of sparse vector representation, the vectors mostly consist of zero -values, with only a small subset containing non-zero values. This representation -is commonly used for textual data. In the case of ELSER, each document in an -index and the query text itself are represented by high-dimensional sparse -vectors. Each non-zero element of the vector corresponds to a term in the model -vocabulary. The ELSER vocabulary contains around 30000 terms, so the sparse -vectors created by ELSER contain about 30000 values, the majority of which are -zero. Effectively the ELSER model is replacing the terms in the original query -with other terms that have been learnt to exist in the documents that best match -the original search terms in a training dataset, and weights to control how -important each is. +[[elasticsearch-reference-semantic-search-semantic-text]] +== Semantic search with `semantic text` -[discrete] -[[semantic-search-deploy-nlp-model]] -== Deploy the model - -After you decide which model you want to use for implementing semantic search, -you need to deploy the model in {es}. +The `semantic_text` field simplifies semantic search by providing inference at ingestion time with sensible default values, eliminating the need for complex configurations. -include::../partials/deploy-nlp-model-widget.asciidoc[] +Learn how to implement semantic search with `semantic text` in the {ref}/semantic-search-semantic-text.html[Elasticsearch docs β†’]. [discrete] -[[semantic-search-field-mappings]] -== Map a field for the text embeddings +[[elasticsearch-reference-semantic-search-inference-api]] +== Semantic search with the inference API -Before you start using the deployed model to generate embeddings based on your -input text, you need to prepare your index mapping first. The mapping of the -index depends on the type of model. +The inference API workflow enables you to perform semantic search using models from a variety of services, such as Cohere, OpenAI, HuggingFace, Azure AI Studio, and more. -include::../partials/field-mappings-widget.asciidoc[] - -[discrete] -[[semantic-search-generate-embeddings]] -== Generate text embeddings +Learn how to implement semantic search with the inference API in the {ref}/semantic-search-inference.html[Elasticsearch docs β†’]. -Once you have created the mappings for the index, you can generate text -embeddings from your input text. This can be done by using an -{ref}/ingest.html[ingest pipeline] with an {ref}/inference-processor.html[inference processor]. -The ingest pipeline processes the input data and indexes it into the destination -index. At index time, the inference ingest processor uses the trained model to -infer against the data ingested through the pipeline. After you created the -ingest pipeline with the inference processor, you can ingest your data through -it to generate the model output. - -include::../partials/generate-embeddings-widget.asciidoc[] - -Now it is time to perform semantic search! [discrete] -[[semantic-search-search]] -== Search the data - -Depending on the type of model you have deployed, you can query sparse vectors -with a sparse vector query, or dense vectors with a kNN search. +[[elasticsearch-reference-semantic-search-model-deployment]] +== Semantic search with the model deployment workflow -include::../partials/search-widget.asciidoc[] +The model deployment workflow enables you to deploy custom NLP models in Elasticsearch, giving you full control over text embedding generation and vector search. While this workflow offers advanced flexibility, it requires expertise in NLP and machine learning. -[discrete] -[[semantic-search-hybrid-search]] -== Beyond semantic search with hybrid search - -In some situations, lexical search may perform better than semantic search. For -example, when searching for single words or IDs, like product numbers. - -Combining semantic and lexical search into one hybrid search request using -{ref}/rrf.html[reciprocal rank fusion] provides the best of both worlds. Not only that, -but hybrid search using reciprocal rank fusion {blog-ref}improving-information-retrieval-elastic-stack-hybrid[has been shown to perform better -in general]. - -include::../partials/hybrid-search-widget.asciidoc[] - -[discrete] -[[semantic-search-read-more]] -== Read more - -* Tutorials: -+ -** <> -** {ml-docs}/ml-nlp-text-emb-vector-search-example.html[Semantic search with the msmarco-MiniLM-L-12-v3 sentence-transformer model] -* Blogs: -+ -** {blog-ref}may-2023-launch-sparse-encoder-ai-model[Introducing Elastic Learned Sparse Encoder: Elastic's AI model for semantic search] -** {blog-ref}lexical-ai-powered-search-elastic-vector-database[How to get the best of lexical and AI-powered search with Elastic's vector database] -** Information retrieval blog series: -+ -*** {blog-ref}improving-information-retrieval-elastic-stack-search-relevance[Part 1: Steps to improve search relevance] -*** {blog-ref}improving-information-retrieval-elastic-stack-benchmarking-passage-retrieval[Part 2: Benchmarking passage retrieval] -*** {blog-ref}may-2023-launch-information-retrieval-elasticsearch-ai-model[Part 3: Introducing Elastic Learned Sparse Encoder, our new retrieval model] -*** {blog-ref}improving-information-retrieval-elastic-stack-hybrid[Part 4: Hybrid retrieval] -* Interactive examples: -+ -** The https://github.com/elastic/elasticsearch-labs[`elasticsearch-labs`] repo contains a number of interactive semantic search examples in the form of executable Python notebooks, using the {es} Python client. - -// The include that was here is another page +Learn how to implement semantic search with the model deployment workflow in the {ref}/semantic-search-deployed-nlp-model.html[Elasticsearch docs β†’]. From dc48543e6d32506b03f66a12e49ea08d1ea861b9 Mon Sep 17 00:00:00 2001 From: Liam Thompson <32779855+leemthompo@users.noreply.github.com> Date: Thu, 21 Nov 2024 11:51:23 +0100 Subject: [PATCH 5/8] Align wording with main ES page on what-is-elasticsearch-serverless.asciidoc (#211) --- serverless/pages/what-is-elasticsearch-serverless.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverless/pages/what-is-elasticsearch-serverless.asciidoc b/serverless/pages/what-is-elasticsearch-serverless.asciidoc index ba15f267..262e585d 100644 --- a/serverless/pages/what-is-elasticsearch-serverless.asciidoc +++ b/serverless/pages/what-is-elasticsearch-serverless.asciidoc @@ -4,7 +4,7 @@ // :description: Build search solutions and applications with {es-serverless}. // :keywords: serverless, elasticsearch, overview -Elasticsearch allows you to build custom applications. Whether you have structured or unstructured text, numerical data, or geospatial data, Elasticsearch can efficiently store and index it in a way that supports fast searches. +{es} is an open source distributed search and analytics engine, scalable data store, and vector database. It’s optimized for speed and relevance on production-scale workloads. .Understanding Elasticsearch on serverless [IMPORTANT] From 35cf15af5501984384d2736bfe78ec853dbf2f34 Mon Sep 17 00:00:00 2001 From: Liam Thompson <32779855+leemthompo@users.noreply.github.com> Date: Thu, 21 Nov 2024 12:30:12 +0100 Subject: [PATCH 6/8] Remove links to avoid confusion for planned products (#212) --- serverless/pages/serverless-differences.asciidoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/serverless/pages/serverless-differences.asciidoc b/serverless/pages/serverless-differences.asciidoc index 7e3f19f8..398edcee 100644 --- a/serverless/pages/serverless-differences.asciidoc +++ b/serverless/pages/serverless-differences.asciidoc @@ -138,11 +138,11 @@ The following {es-serverless} project-specific features are planned for future s * {ref}/behavioral-analytics-overview.html[Behavioral Analytics] * {ref}/search-application-overview.html[Search Applications] -* {enterprise-search-ref}/crawler.html[Managed web crawler] +* Managed web crawler + You can use the https://github.com/elastic/crawler[self-managed web crawler] in the meantime. + -* {ref}/es-native-connectors.html[Elastic managed Search connectors] +* Managed Search connectors + You can use {ref}/es-build-connector.html[self-managed Search connectors] in the meantime. @@ -154,4 +154,4 @@ The following features are not available in {es-serverless} and are not planned * https://www.elastic.co/guide/en/cloud/current/ec-custom-bundles.html[Custom plugins and bundles] * https://www.elastic.co/guide/en/elasticsearch/hadoop/current/reference.html[{es} for Apache Hadoop] -* {ref}/search-aggregations-metrics-scripted-metric-aggregation.html[Scripted metric aggregations] \ No newline at end of file +* {ref}/search-aggregations-metrics-scripted-metric-aggregation.html[Scripted metric aggregations] From c3e8409081f6d7030523f39f2f336d00dda99ddd Mon Sep 17 00:00:00 2001 From: wajihaparvez Date: Thu, 21 Nov 2024 13:29:44 -0500 Subject: [PATCH 7/8] [Docs] Update data view screenshot and instructions (#199) * [Docs] Update data view screenshot and instructions * removed wrong file --- serverless/images/discover-find-data-view.png | Bin 74234 -> 62423 bytes serverless/pages/data-views.asciidoc | 3 +-- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/serverless/images/discover-find-data-view.png b/serverless/images/discover-find-data-view.png index 869fc9b9288112c9ef247786e543a6129a99eff2..5f9b3107ce0fc79028d37f21028ac49880a2c2cf 100644 GIT binary patch literal 62423 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%0A_wLn9U821%>jt z+GXau26BA_OQ#U+8=H{mk{E-J5n?zd>bk^&O3C^=z?h-<9hw}fj6e4?YWyasqU^r0 zMj71y^W4z-?@%xU>JV~ooLNp;I!+{OmD2TxOMtu|INT->01>8|$F7V=i7Lhm9wm`F z(S+l!)svzC4DpEGSl?M#3|xpKrr021W@8K*~`t(!w8Wq|mDgz}@# z;2;;c9|9~mIvKRZWuGWSL<!hx?)gC?S!|olrQg-l!!=CmuI3>>4%aNZ~DFfkiJ9_U)r?ysL8}iFE+1B3~!E z>=y(G4J3+bSLgK$IvBk@pS{Kj;FMi<*?U})olAYXlEw#%f+k9|9;!;hmfeS(L5t!y z1UF=>*c8X2z9~XPFt%B?b;`Ef)&5M>Cw%y(4BeV$m@#2W5 z#J-B+ZnWvM;ZL5Mr?#pDk&f-cw&qjlq~|9Ny@MRhKV0~#ZgXk-HGyWlIuFk4-oFH$ z@f!}BvsGWmNWrmWJ)(`Ss!kCY{CmlHryTn83nshj0R7+j20`e4uGRNM*Z%t=f(-Lf z)29^4Rcqi|uVdEKn-E{`<9o$IEL1U6s0-Z0Bc7qoUQ02CuoMtk(%NJE1T7dZjO&-X z(536u?S7tnH0NBHQLM=ppY4ICFj3vr?k&H%-pMJHERjqTclPsSsdCoF(8;%m;pgrm z1nOCo@5@r!diGOxQNGq?-LD_+Ylss2miiMvj(QVZ^W^Ux*@k|H|HF}?YHjFs#K2j# zqJuUo)m;ln6E?8s?UiN^`PkBfHkwy)d(F|>-IPTxr_09gC<>Iy3h`9-dtezwcat#q zmO_C5JLzA`Fg)9mYw{Ou*ojo~3MWeKAdhxsf=y#pI}Lq*umu|U@o_D5uXEI186-Wj zLryK9kq9<*sj@#bIMon}BO8;P&&IV0>$f{;MzcqbjrE18iUfP>ovc>g7)@;|V|e2R zoxDF=8KuE|HLbJbvQd+r^xZGtZ8tO_s<7Ifp&6q;6yP==_jc{*Ed&4dT zjtte$NV}dtc)MgmjUz1Cu%k#K_y?cM$^1J$hQ5gHMZ?e%JnaDs(&d`twyCT9B)2He zbnmtiaJG@s5t|jmnlhy-$4{FtsHW3N#4N56km#bs`R!_dxvN(=y<5PK5^jG9U$7#F}A@!7M($V zHnK9-8aAU&v#!u+pNgFx!5lp_nxLd@cPo>LaKWg1%QzDf%Z84f$N%ayY8B;JAMyvU8RLd-* z*@{VXdpJiF(*&GuA@>y}_DH#DDwu*}v5j0oz0h;Ed9-6%zfkfhz?XPJa$#KZW^wgo z>Cw4c44Xpz^4G_~Wo56N3vte?XGHsJKgR&!Y>q4 z36?)9fjj({hK(Ty!h_SsEYVzv!iU)93cGV5iR#knMuksmC&Ct@%L$d5)iu8YK$Tkc zJ$ND~&*j@`=VIG;BPpXQb2pz#UZC$si0>r;lJil~5TV@OhD6$rDwP{*?b~fh)>kSW zlKR)>a#d0-j-AaGHdQ(AMw7=Cl&O*wUtgNlbpwx-qb!mV+#z?PgFk`oJD=G1h$RiJ zvQx}>cqBxbTCf@+oJ=9uT(p|!#2nDh73cXOqQSJ8+<2-<0T?ecc|+2eaOl~RT%nU< zd9d7UA*@^`un)tP=Cx3zzEokeT4SG4o?GHg9~JglKM1D8$e^bwJ_e#nRIsf<857X$ z|M9W0p^-YirCPVU`y2RvR)j+5G?*0WYgYGbSCUe6*ZbN!xh{ z(=F?jHSF6k@ZM=rQZ4+_c6OpxbQ(UMP#k+tX~b?F#Q^g}E8^XgB=Jp@+;aSbg2|pF z0my&1{ix+J?wLr_<1PPTkp?z01&UT+j+J7lkJ*=N4-}h#SQw} zFjL4RHl8PsVeMIH?YAFpS8DUMD{$ioEM)DLar#pKlnMbqa%lj7~nd}X8ofI3#eJ$bTTAw z%-_Y>Agna_NTpmJNOfQzy>(JTIjdREdiA!dST#h!0hQhe5s1nmgZ;wSwjrjg_=s*` zv2sKZtGVJc@+IrcIHZksA|pSBr{l2a0w$;W8n?+p_T|K+$nZ?FGiJO@0Bqd^fK6hR zQ<07;OU=OupxfN}2vc>svmu9dOsmN?m7h3vI<)+^mgMS}1@kpx_8Z?@p4^k#Vd-hk z33Iv_<^K7Qvjn+krh;+Y;-2R~Ay_~TEo z?+~|M3f>#F2~ZQ4?n0n)KIjvB&}jDlBEFfx0#4a%xjFkp1qbJ`G`(c;ij(yAC&G@q zBQftn<7^7;DblHXbid`zYLN&sR`v1maVi$@HtJ2%T9o9Vj^@<0#h_%48+e0JNZ_Zo zVA$YL&FGTtK`6SN6mrlnW$h*_rF&2ba zMPks7d$4mZ3o(s3hc|}T6AmPDv#6m?QNmO%d+oP=8JrWAyy}ILvktRMtIJx+e@0&9M0@BV8w+*iRM|bI-P$g+_D^$c(uzgd&zDFjW|QQ zg9|;|aE!!=`dHzno72}5DukJQ`&@n#kAbKRyR$u;3yhLI>Q0KX1nB%vwT<_WNg7vtaMx@YTfWyX#AIQfKB+N3q z-l83?_TIt=9-;dA2lF*pQYxfz@@79FN#-kSt$gm+87>skuA166+L0N|$%^t+{q^oVt52J1zW~u`ptk z?Y4;GBjsK2e4H>xfBhlLa)8!nbwTdd@?qJq_I5|))6S_^1F@S}1i>_TLWrYQU#-_x zwTi*1ZzzD(g_LcIx@*U^*2gHN!THPSIEO@GP*q4gr8~Y_1LOW6)h&)1*R$)~pFLX- zN~lw(d(z;DW6H{7ybSgM8Z%$lBpZ#cO%J#Dz)s1SiX~r{HuQk!;4cO%*8aCp_KbEMb zRZ^HwrFeN9H6yjZ`@LWT!M1J~SM_PiKE-24lE5AH*~~3lF{+d@=_EKddEnS#Td?CI zeXoGNr@|H;c>UQEZQMRwOkXCL9xWdDn;bX@!d?WO_g;{14RnrEN3}VpwbOd= zhGx$u@EHGfP7&mDjc7nS!9mwZUOW>q$#jVX*Qj=@-Ssd|X3hf4aq6UcPomPFl=wjh)D2+Omg2BPkbV zD?*1NmMO;IZZY_=`p!ohQsn%wxjV15rrpVEN1WsaxU7^F&Rx&uN z)(38gg?yR6ini>iYU>Y&+L`wm$9riOLVI@s{%?g6i{2uMeV8WkzRdkqM19h?{852T zWrYTO(nj(#TS#ah>qM?N=Hk>=qtQOSM7jvt3N^Z~`xSNCwn_mdMAQjK=D;mdev||b z2kxM>!Y)5Jf0!OuDxgF(y5X57mrPbldmwH4P$W?n{~(Kl=JnSP8H8c{>UKsxJ^hvY z9ftzJw%iHM%dc#1zruR#jaoHt@MGK_Y;g6nOPc4w`S4-9!l;me{_kw*KRLMlP>?8P z3hB5>)1rvqFoslRWTFMX^3@U9Fz%{#$WclxZUQBJrlAWXz;Ek+e>#Ek!B4@R6~%{0 z7ko-#4ma4T8&(xhgqy0%fc{BxP=~7jpSF~js4if)T_VW*b7{ad5MaeKFK2hrcg~|KMs@`AhNT%kWfBE{qGkxSO&1! z@c{sS3d=4!#kg5zB4lT(#c#t>Ao_owlK<0=CJdqbh?*VLgcpJB%*Z4lNf=lB2lyWu z$bx+VvclAEG&*4{-H7x(o`He$_M5%duOsZecAW2bWRF8GCS-#giePyorRIU*7*TDYK34BFkN8`y8 zidF5&jd`5;PYWd-T;bRzImE{m#v}{L^vH~rS&|ypVFhqf7!8ZdsprfTKkS?`IKNL` zJuQuj!nEYU>BbhE!-7-lurpHZOk~AP3%B8EyHwYoInw|dk^%p=j{wc*>AYkaoX$E6 z&auvDa9%<|rL=)t!~!zSsjWhU?zytrtQH2p^H4hZ(Wz-{;cqwi|FHKKPH{8~*l)0) zVR82$!7T)L2n2UFA-F?u_uv{dSg;T*xVyUrcXyXv+~E%AoL6q$f8f?vU)5HM!1PS_ z$WC|vp66-OhgZrWdCaAJe+Fwu}+fi7L!DO3ka|8_ts{Z9Pf2y_i{fmU2(F!Fa(&bqK9o%P-qLO!+QI z8wajC3;7%HUbnC9`-6H?ETV)?e*!8V$x+(hz@*_y@_xlLD=%_B{I!E?T>4< z4QqMa=BFEi2Og|;42<-^Vr&H}Fm|`%9RNv@`FBq?INi5$u6|sHI0|2Vx#$mY znX0l8)~r2m9y6LLboptqdBpPwkEDsJowd`*+a7Ik+Z$LG$u*6nzHwg_h(F8XFIx6zq-SxTJAJ7gWvwP!IN@jM)G|e zEN#-C-y3Zyz8PvH?v|O}oA6Qd8BR0R7zI>yOBiQ>bX+a%+|HodvMDy=Ec9K=?LP6v zVA0(6k88!J<;yA5x3&+?`>wG%Cz>>0Tu;&=KOX{|_RA~X&hRb{XYu7f6o0xabQs~C z5NG^uoRJ3yD#{uLbi?#tL906%!S{D8jfZ0DIre=rN7iQ5EsCDmOYC@$xVLG?rMgA7 zBW4Si@Mj)Q2OBv~2|d{Mb2$x5&C@no5Y8o5JZBL;i`1y|I>nAK^j0vEP8cya-+cBB zIp&)_r0hUfT%#8T-;TKD#f;*$XH@x#vBv8iJTCg_GV)h07{qu2$X!=qlv6&|+s8N5 zuUMf(Hr2Gbc`nM9=4&A?elhjPbpfn4FJF-s2vlwtzJes82^FsjPn`6j~)COGvxlgLO zb(c<;<<+s^{-Y>}ki&qRA@bTV-AnnR`R1j#+@Zbjo>3}YsW+6u`(_K{rfkp(&Gr!x zpC7p_&oG)x&8w%r_2ve?>l=t>TcbK~igjRnRh~kK9d})WfyW~IS%{h6(`mjOa3}!$e#h%c zcl|sW*V?ZiGrpPX0`_AZZ$)p`Gi8&s}yi zU*Ys@C)jQ1sDq>7+QSR*Puvw-aRv(pS;(yF7B+=2-yk9JsD5+*Xede$b&}I?*^q+! zxQa^aV|dw8pW_jIiNe$5B@UI`U6X%ob zo_xa?q~}D;20a$YMzv~Nf8jf|zGs@wx##-05EGa6a@pO5V6WpEN`V*bQgyd)`DFTd zf2picJGR}Wv8@=1??eMyfIE<&D{Z=W@XwZe`vPrd6F$Nn zdKEgLtLqp!g9;~5wWQD4GKq(m;^-ULQNLRBvJ-m0`SWf$s?+ncs>oT(< zC12SK{UDo|?XSgdt5#g`4RVAzn5H8ke}^X^4QV>?4#bCVg&o|f-_gc<-vHI(e>hjg z!P68OJ@yxuy0#i0lkK_bLe*^5I!1b}O@Ob{^u==Hh1XIW2Q}8YXYWGPIlj48ff~J4 z{Xlh}RAX;j0R!w{jc&W_j|cv4$lZ0q5U#f>Rat}J#W{G6OY4qi%rcON$=2aAmPPHl zW5c~iHi-$XUGQR5d_VZ2os>!`8bkU{Ei1#nmw2Vpus5I3{eZ^M>0<)|2s3Gf(sh=^ z$!OQAIoX?M^`$>z?;T&yP`n^Z_-@>JfcHim_i*QV3hBC!zQs!ol++MSotq3d#;!?y z>UOPz+Lb^9&&(CX;KeLJ3b8KNu6K*n#q^0dWjttZZ^>f{F^T zvWUKN*GrlsJso|$pJYh1XD;QF5DPqMgn-N}CT5MKlpIaZYhQR(AupNk{VUC(NXz}h zC&25{;}?ebt|Xa=%R-_`g*X0^mQ6BL_|7wZra7gQ-r?Nkpsi*94`%~kt4o0F?#z?3 zA?|x#??O{BBjM7+!X4157%NXtn|b)+q+ME=dhJwZyO_tEQpV(yn-@!KZXaeY*c!Wg z(CUuOW`AjrGN7-LSrGfej(ajeOFH^2Ot9ZCo+=t;{R+36vMX}~LovLhXV%U)jpGM-MEBgZ#`bu&#p}R$Crb{>h7tedKrDqX<{1R+F8#1N)~U3jtV{KEYGL?v?hQ?##9mUttf^DY$F5k@S>4 z89#&Ej#g!zM*)}tX(n3N&8Q1IazAM-DtRSeKAo-jz7N`7&u6IXI4)f!od0dExB4OY za;^%2{feRnG6NF+Q>OlXmjW9PjDq=w>G_S81B-@Htrk}rRSec9ov%gZN8|Abn>BIo z@4QU0aq!ByU35(2`{~TwIQ!vst~&5|rC%rN$rO9t)ua~yZVL6X-`$KCAfY}9++g8X z%kP`vF;^t(b`%C)`I~vsbSYvnIXiP`@Chv(-cN?_mUoFt6->Q~clWsE z5`*q{97c|xt8c4D}@`*C{fm@H}Ji5h$ZCb;!I0Qf(J+> z({m4QujgA-PmmZq3Ic3o6n<{A3Jtj1tkmec*B6id+FfZX_m~0pp;(6Yl*}TX09+)S z%Ni1|$(Tr8%vAnztU>0aAWS=cTv?$SC?wQz0~emUY^FSu>Aqwv=8v3*ghLW84am8rNMA941*uYAsl z-HU2mO!(SP=kC&KdLw{c>-rAXbnSF@j^zGB**;4$G;=9dusXtY?MH~jk zmrK#I?CLw%6Z*0VEULnL=4{t$9o*O(xc#AL;n*s=HT}ms+06+wRl;`bMteP9PE_bL z22`tYS8QgZ+|IW7kMt0-W~$$~&COBfxq~yUWO-A!wrG$UTO_ylr$$bRMKFx(OZ8>2 zT7F{`B_!b6G(~XqB>n8Q5|#YfcJ11(FNC?mEGNIdUTL%159>9sqsuG5R;1BHcQ!+*4HRhK(4vucAQI7QUicB8e$McDMygf{;6 zBePa5?PeRqnzQe5dnm>KH-E$RaZYo@5`7ugyPlJDy2AQ^*o7J^r+rPpgY&_IhC$;G z^Gd;pygoKYJ*7WH9e9)JJV2h7?U-13&;>$HxSuU`&|t(u3eb#Enj+Z4rpf&44k{88 zSMWj9XeSmU>l+$1qXVNVhqy>@y&){!5_(-v<6N7QmyhM>E3h!-=%=v65Qx=a0(50B zv{;LGjY983z=ceaZqhFav|7NhGx_mPK%fML&SlkW4HwlA5q&WV-O!l`!g?EK1mw3x zM4bht6n^T#Nk1wL+2?$56L+}&i~W&rvsg|I^sF?Md`T;$^3V-`|jl!ow=1a9J=GZ)2x5kiIKHhjN4+z*zT$jBiLF+V_*qP~$>;Kg6_ zrW>Uyf_+X%WijiBDc-_KzbKlp*GBi*w7c-JX<@YRt=-$tlRPs)cOw*DQx$J|Oyyq* zRd(Gb%nK@Jh;X8~ggCB#6+&TbevrPfsQ3OgDm?vz1u@wIa8mT1vQpCN5n3)acE`UhZI>(Zo1q6Em26+o(MgUxSOaU2Uz` z!!XhiNt)(GJey8(lArZ3fqP$tb;kI(sZ#=92_j{J#owiV+JDl>@|g}Fp(5= z$_NaE-t9@w!m*OSyPsZ#GFM1R>iopn^Q3DeCk&sNj$A_+53F;+xZghfny2Hm?HexXa*nS?B?8Rs$~b_>eKRtoqVUbF?h0jP}-1#os%Cs zQ7CWl$oI*MNdsumUyOFBB|y=AGB>QKNd&J(hE9NLy{!YAK~eOsGtcU{$uc@oCcO!`fdsz2 z?<>obq?QXQM#;bf(^BxPT&+AQrJsG{;31YZvXQH$&{4(6H@k^?xb!G-qLU^L-CdW= zT;Rn&7!iJ@{(!i=_1VEWMfPGcOFAp)u@ixM!;{LjtPcfLh^I3OLxV0vw zFx@4sA*hi0_9K^>ZCU=y);FGN#2`E*YXzvjuNw(@aUd%p9->5rbF$2BtECf#RA{yT zh~@dNTbkWw??CBPp+;ftviHiK?mqn7I&IjC0A0n0>F7c&o5tR*Wplvtd#0?Hbcuap zh|G~7-2g=(;$5f279{T?;677ze4!vw)KkDMR|!jeckeVaHu@l4F&vlCvWkSZjQ zCChQq$IkC$WS?El{JPNTb#;1e3UeYyh2*Xo#0n5VDmO#EdQ`A{>+)Qa)L0WP*F()$ zkG;ceWgTOsz}0|7#DuTvmJtDKL$$2&)b)_85K3v;((iMnc|sSwXVSjiy4wiZxm- ztQzDcZQ1NTHXZ7+m^pndjM*m)e;V&fiRD~+;62=$<#N#kgz)V62L0O5x;>-!%_kY_ zq$KxxtE`i@o zKAt3eI)nIB!Ttj4lt`^yA7PB6;L3ZN#B^r)^5qQo*Ft-P3&UCV%o|_`amDtJ@nI~p zx&<8$=r#oE7tZH<;SfMX(N@vvQc^OYBby^!tinpv7+)1ouI%JWNY(XAZ+m?0$)!TVI3T7ag-vDZ_n5MqV~VA&7QgcbGF{c5tWGp4B?1gKA)Om8 zCAqQsJYxR{gz1t(4;`{>8MP&HpC4=AH^iI0{ZHHJWPWjW5}g(51X-h!oFfX`)*5ct z4k|$cchbjwQ3rYFa?a&fnCtrWxH4wO&5P>XAEtJO)chtpUkQd#B&{*B3KurPHXAfJ zCOxwJ^5l3U-B@E?)1pkrP(}+IES-TQisR(TIjpm}S~~)KZ-BihCAt_{1rP3ZBz#J6 zqp{p@&kKg=&P`*Ur~G~gSlQi=M351>hK*To-k&w(-$5EXk>Mjax@=?<+x9Pi2_?ov zVzydJlt5-`Yi|OSM(t?ah04dV3h70^FTr*MmI`!HU3m|?aNOEOv5pJj>Caw8t12LS z-7>{`7kS>KrDrkM=)e~4AJtxP?kF=g=(y8?yBdZ#(n9Hfx%P+(syvZ zeNMXlV%9bjxMZGWg@?X3+CrF#&?s9yT198H25GzA^9Chw%C`<#Ki;s2Kvk#r>uR9v zMX(hnCXsTM;Z3GnH6}CYq+!*vT${ghy{CS~`>q>JjHtL-EuIqPlH=P>u6)WXyJF=m zca?+$U~0FU&zh%?Rl7!x@{x$_I0p9ny638R&q9?XUI0--E112-;Npm-*9L_LFdI(U z9lIQ4+xrv>)c`pr``z%Cf6Au{^GaWNeWMnSwG%oK3sldp)101obad`RX*E1|Xo(w( zS~;QC0u7%5BQ-W(CE0xpjJrMaISW2diJ})h{bYy>uVE1|VLlVr^`^9T$TX#U?<@D_ zH&giiVgHA%NxVRs?P8qu{H}PvUM+ER6M&IRyGBgQi0p+P`kzR#{}IMM7kCx1rgcGv z1zl9-BU3X|n~-bY7~Ae}rh|WWh5+LWE7|lS1kfzOijctl3oina%E|(E`#)PoPTkIb zVL*T{D&1qWb&y~NyMB0C`!}h3X0iFAfT)?PuHxU=a8tAmgLMHuLCT--|FtbLCB^4( zywU(YBjbP3yKAYR*=%f2>c2ny%^iUQV&K5ovV3at`}O`=5b{?|xpDZd!+r{5O~dc8FE_Ger5{tlI9mD4lK5`@au>;rkO1p(98} z-2SWP0Q$u$b_tixT1KO|D^$gwqV&}d*K+!O49t}XH z{dY~2fcE=Q{ohmf_Za~cApbu)bly06qhMKw$8Tn3oH2A+e(fO(MP$jh zei4XFQ}_{jPQ`XGvmzJF+L*h6_}u5)rc*Y%U#O|e4?Ov}+M@1>6=#^-7x6g> z^!vckPk*j-|K{MCmp;zB*IYb(#Hw39UgaU}e_PLQe{Dbgvj6Ts~l4~l8D`tb})8(KK5Bg^PS&ez(= zj^iS~*?v}D;lPg@oM5dmo!rEFwMtQ3-0#zAK`ywLRdyWtW#gGb3Fmh!yzZO0%2{FJEiuN!bIrL@;1N7 z7tA_B!x*_SCcAsDg*mpuOQ!&b*8Ojlyb#J4D{R7>O(CStF+3zZlW~r?p{o7<6tDtHxR#NN$;CEWrCsBb%5n*m(6D zh(pK+Y>)W>GlA@}!VL~QbIc!m^VQ)6npYwSh!#vpNxTjTK>n4=t9|k!zFl){Ie*DG z*W20!&I>xv0+Xl9;7=`{fehNYReZU2uctB%`PCg-i7fs{ZF}bKW5Y*k3xjfY{v;O) zJ$woK)a05!|C<@)biqDVs;hV>Q>}^1@EtVqt=fN&<;v~r$`k;9In+5hI3{1s=#rKv zKL;v(tTZXi@VQYRx^XCBP;ICp8x-B&jN?x>JS}+B8;bi)^P*`{R$ zh_VqQM8n3#50(YaM+$24=e$mF11`%qBFy6rJhU;U8N_)OhZp8uI685(uX6h4ULN)4 z6Hu}r=gdsDK9z9iG~3kC?iX~8jR=(1SS^@1LW#dt+mECRTKuVGEhxVIByc|Za(|PB zRM4Zt28fvunwXg~XP_@zk~&Iv{~Qh`jbTi1KKT;|W=Qlw52>CR87{EG6U zGoVetim0B(UpyOmVXN&KUYdW@qZ%<6*(-lyK<-K z=UH4Z9@OBumL??A@gp3zq+YLv~tda3%9}F(W(-L1YX`A)T3&m2X{S zQX4r~p@C;rrqIT~DBVf->Cg5}#6Rf>?*>8)`_HsM+NK+SWQT`J?mA1B8q-!5bB9s{ zLuaxTg zb~Qr0c8y#PoEzdUWmba(9cTN>h{P8R@1PKFsU`Ww9qJUuVk9W66jY6%&W`a_^As*1t~5#$U! z&LsZd+W!Y!EduaPO*BhBf2igykH3ji!Jz6t7|-!H+L>E+?rjDbsyNS|+R@0~(pQs4!=)t>`>nj#c)v;RAjowvifqSCek*0*+XCh+bfxoUZr7MQzaPhvY9uD_lkK z6?|#~74qv4X z%vPCKZm2~ejtC^h)4E*?0yM@{~#w(m)lBD#&K8tDmc*d8k&V{F$&iycM}~R8UDF38xmQHPfd+sXYj(G>$IedB&abOin*0H%3Nu%GXEbW0@@g6; zx%qq#!5L`mo$QiWlfCPhF~Py;97de{{0m0^uStW}bPoMfpU>K5!F8&@Dde|%hUwDsPMma(yMV7_nm`W5xM3ySkbkGwuBFm0J; zcbi`jkscKIBFf{K^h;5L!#NH|+4nl1q#sAKnQ4^O1jJ0%uZT#P#Fc``aOZ0%(1!uvS_sK| zN-_Kw)*o=*8BSA}u;sAavqk@$ ziYo{+JE}^p*t8xU<-u7dNhb~;(d^YDu(zN0ZM+W7Pq9AS%2#din^c-h?w!+x5 zD;GTi;~Oci#q{DxelUHU+1Qo;xv-1%acAvgJ0h=F9dRuCMDcOtbunqau&D$k@bE)lN8_z; zA?BKL<@>2y77fVO9o{xyD)7qaH1y5z&O@X;orFeX_DUx*5-`it_D2M=3XOUfhjq(F z17g1-e6WVHGuGpD&2+_EIm^a}S&v54J^@3ql*^M`vLpWvK#5_3qL%A=$lh`FAsfP6 zE6cHu2U0KcJFk$IEGGDgL5V~4At-$ug#jraCL?PtDuP3OZRfSOC3H@-FEH}4Y|cJCaN`?-(^=|%2jfUCJyx2PyD4MmU~7>>JpIrzUUv%R3K^r6 zO9DDk%ITY68?q4m9;QM|en&Ini%)Sa&r0~8tFKof=-<~j+EOT_HI;l3n6xLNE@jx6 zO7X*|TMuRmpL0jiNXcg}?p|~U*ReM3%A6$}&}zFf+Bg_6BBHl~Q1bkuB&Z$+;j%v0 zFYb*>Yx{Y+^_w&|36ag!bJC?-+wV>$|Q%2~2YAh7B!N3)And_LsW}gw3QpVz9M# zmO<1}&z5);I@o2!?ziNqMcOAQeVTklI%S8BGmpX{_3-N_f#^10L6ovUv^)8h_vTK9 zX?}2U@baHbP;4MY{PS>pYSBm7G;A~VII+tLIs9Fu#9eUC%WRmFu3yNxs$YEYwQ38t zCb*6R#|oN8DDsm%G!N&jaD(1zEU$qiNY?~ShHmA3>fFQpN0Ll+*^HKJvfuNwER=%Q zn2o}g3x@}q3l*COblfh!mD%D@g!b;)k!9x{Lo>}VV2c*{s}Fc}ro47?vdEjtzBW;) z4J7J%WwFI47k{8*a>HmM=*Rh);j3Bl{eT}i_@1$(ZdQ>?J>S60sp5^{XYg29G>PtB z85TH#<054g$KYU^nN$`}Oj7Ug+Dq?nBKLtp{u*WZ@D1m)nb`L|fKp{O-iFyE9)_z5 zcEG!SY{IBSHKx!g`{H)vmHExFKR?g$T^H&@bAGXoYp3^Fv5WkbtAk*^HnFZaCOOv| z!>M$9eK>PqG?rF+>Bm4bFPu>2@2Zc2+4A1$^>wm7A5H9GVb)prDi}1{{x00V?E^XE z5;T~NDumf-N8A5T=Ii@l-F5XLsuCn4V)^YMU5s)t6RVQzO%8j|ePjGgvFyD|Qi-?1 zlrH`YH{Y+GK%6?Rsf?nAPy;Ye?TxFgX$0sbkRRTk7$B?%TE3k4#t~?yC3@6W+IDb8 zubX@<|3xUHkj=R1*~6h^iy30GO!1-jwFFAnK)8s0P9nI{$kK(mYiL;3m`L`3AEI3z zlCoP^`j}x@zB_$%UiN!=tcQKYp1Rgwc-{&6kuZ7utkG|{gq%6e?CEHJyTsdLEl`un z`QrYJRf@?n*FP?->FhW-_D^N^xTl0(aHky=kA&9G=)4JPleUgPiezUrdUG-jHLyI* zE)&^6Ncpx@B#*$%7?El~nT#8<=bjP6V&P{zUcE39JWbY{y}ZxdUj;p!J@R?nVsdw4 zm!c*z8GRM4`hOwv%qjl(-q^uz#`6+<7eLT{Ys6}1>ttD^X8SV==a2yNLNZABw2r#k z>4bppTQ^%7tvJTHMu|@sRyGE3A{;TKQBVAGWQ(-FDqJ23uu5AEMrgWuZ#wZGIOb`= zH{tL)*pN`pMb!x2mx-qucpeNhKRwin3chs=;O95L3%y(^IYLHh5ymLO^DvvuvXD|J zf#AaaUd|JS!=c|M-1p__bDDZF9)@;cTLi^Z(BQ2Lbc_D}YxYum_?V#X*5ET;;V^|=-=Ft9dptd@LNVFY)5Gu=G9Y!#r!{$}H4 zYcaX5F^}(a1$M2xn9SNtQ+|aC(gfSQcmKd~dtxz@7EIupw+BfSTg6}%4OlZHw^A={ zB%PD8)r$c#gWsustzgxXt6#A-^dX&l5}L{%OhyUUScEMs`^*W}gMpc=W=`z0T%g_D zK?tu1i58yQ0lZ$m9p9dn{f44A=0tWq5xS`u*g6X5HQh`aRu4Pc7g&zpw9qh(aq)ivpq4BkbF_&nZOEYSKIP4b8KV^tjK@t#*H=Tgn42i@d0 zu2>wzh@Px!@XFWaL}iZ7=2JD=mZt73gb&i>pudN1gyR_G0Pr)7l}nGQ_+tNk?Wzuyu7e0+ zN&fzHRg+f69WdpKBLt5Ee}VnN(;yBq9ieBtGzk=KZ(G*zCEQvpsGijZpsQ z(`5!f&M`%R3d8zT0(QzK@z(24Q1RHfpH=P!vLKzlKn@Muci~Atb48i?;e8OvK5lUM z+EIJl#b9)>PI+;dq&$DBx-_itiSOe>C!N{7luZG@b!)fhIbrxK3=zCLo5vMd1&ls3 zxZc`>vVyV4s<2`ZY6o^!5I@Ma@sDBy5J69rX9q_ABD#6yh?EO|veX9zTX&p&HoQev z9+!j-r(C#|NHQJ<_TAURLXWI2F{7HzJhJWMt z&jw_tz+OY|D-}qKnPdDwH99cL?CL03jO%VTF=GGee18YfWVu0L`o%1OCO>D+lL2TF zk+Kl);VrGV&NW`v%s`KsmEM5KxoXsVReGp#n|J=@$;SqxWaNCMQftzk?bOKjyoRS5 zx-<(W1MtAp`kA7XAT?8_ZjEPP=)OzhhleYwqu;IXkF=T_YKTaG za&UHr{wRjT_dv{(Bi&o2o(h41So#HkBQ;m{`usCiPjMN)A)p1I8M(C*aS23ml5Xge zKi>}M@CmHCC8lUH0gtCCu5+6o?(5i&)+3czM}?Xb&DvcM+{f1OKag6-MZM4{ZT{u& zlU`_;C`rX0!s>MFmiS{>{}nOEb^0bKfcY=m(>KA!;@~&Vn8nN1P3P=teUNlX0^8Lv4B7>@kpv!T}1LAYYv((A@ zG93AD*JBtzEd9v|!|_kN;Ek0Quf~RpOOG^AuoRyOkC$OiVxp>jHs7DWz@E}~4Cxy+ zLuJ_T-t})H&dxPNm!lL9{VA++NJtX%Qg!f18W?21o}gY0s)~D9Z{Eeb*!=m+II8p( z<7aoFS!yq=9S(qME-D^WOs3xZ5?~+#eW(An<^_dFxF!q_vZNi7s5l5m63tcaFKG3P zQi%fg_j_WBX9F{UBK|}7l+-YQrF0lfV|)MF1#rb&0o;djPrv@+Z+z(c%MT!h%Diy` z=s-{Qf5&Qj4Xg*Ws)&gw{Wm_u!3Bzj4J2>c0dMvHZHPby;7(YdFdmV=ek1YoHw92s zZJ0XB|8Hpd1`6O#+-ub?n7=MFkmUrdlUVx8p4N@zuSNh}L@8iBptcMu^yq(zGCUWJ z=j`A3t64yATL8eF2#+{+U;inp48Y~W->DzS5dUfa>hn@U(7X^h>c4qs7z$8Sa!c-% zC#3DE(uEAFjH6596D_vee6{Sss=`bWf^g`=9}*JwiuhfbuQolyF9QgIBs>lb{kR9N zgu57s1{wLo^@vT!mrE9x#LxDLpO3vqM#?K2D=RBkn(JCU&bFD6qhCCK;00h%O24*B z9#Z`87ttbR7(byX3H<#B6fju-{UEu*u3eH@&wIDE3~>Cl9Z*~Z9r-)GMw^8%8K5me zr51tx-)B`97M-j#_oDFn>dTijcN^(kH9q*KQF@p^p%qGHe>YMD z_K`+pZA-W1-z{W<#nHh-!TY<#(rvB4@$Ux{i{t)ty8lxFNuZKq?XdsU@j4MWzRyjC z(?1m`LsI%bzuZ&8-4-w8`F!A^WW)6vYZ z2nGfQ!}M{*{D#@4i5hbj0f<`>BKGzb)O2~$YHFFOTwPhf9Z(_JhQ!i1YdI)cI9=T9pg)G#!%;x z3BzIevVwEEHRrHBa9|_%eWTZKYdEvEKbqef-HjGr1h)ReYJ!~uHKX5Py<$C0o5~bu z!#KroGdPgn=X~Ufi>)N^9Il0!P^tgS3 z+vU5AaoD!LjXh-2(wQWIIQ>aJqfBbh;`A7<*#WW%<4xNLJ-t!d_8FPC9U zp9FrD)?Qjs=_8S5qi6!W+0W`x4lYdF=VVIeJjb5hP3H!D=5)3 zZMCp9R7)%S1mkafJJQPMM88wW+IpJ%+2f&j+H|I5iPvTl#EioPRsv?!Hb?D^jIulV zG=b;gUR>`NmO`>y!|K$j5r%GZ_1d1R;@#?8!~Py2p@e4Veol^ceC%|llw$grP7pc% zgQXSfW`|VeyTQVhqH*$o`q7H_6vDO#3oQws=ZZ_-=6`&zQ-9!Bqzy)zKCSN^)Cyv4 zx-K|ea1nXGC^)$wzBK&=X?w)8io}%r2Ab4K45L?jC$K^D03lXZ$Ic zNGZ+ORGK0LNyL#bD!y@$Lp(HjN}SC*xR=C7q~4OVa6wgNq<k} zP;GGDdy`L}Z%@JZ{_(*jkLlX791d99<_1Wnw_+ycuW^_qLt&Ipc^k{E<3W$Z5{B$qvHHOS(k{f8Fu3f!RUx^RlW7j(ecfWh^q^?HJE5e> zpJuCpXC?4+u$nO*!*#&}DKNruBgleZfB*gb~jgDbjekCl%-pDh4>wbC2#$3{$0@< zy)@iG3thJCLuPI?<ot}pj_x7{L+hv?n!n^9d-eZ{j2n!d45)Oo zyhQf=WgLb-0KIa8x;9bdqG{C2VVdW+lsb31m@X`DxMR26eQajEe0Q&|@Kks}p63E82Ms;EJ8=0}?OyyiOY9Dqce6j=RE+=Dha(i&wZCJTtM-WclgcY~dAz`i z2qKFO!)26S;;YX25Et~Ua}RDP(NIVips`W(oY9}@1T81(2d#6jJW@P;Q6xv%9cwQ9 zJX##ybhjLAzqzY?;Huf%Lr2|5-Z~ODWjSsB5*k)*F(n2pbH(tDnCp8;$oazc9r>Bj z+-baqhZk#$5`b{6ik~<(xIflc<^6&*I%exI#70yS-4;{YqGLxrQ5Xj z&S8$l?W~bYMj$U-%fVW%%T{H(U=Oyp zb=t^rfG7Xc0>!hZ-`H{qC*i(X4qy1;kdctzqzX`*mbsm2+}!LW=l-aEdlBUlULBxm zVNuX@y1#Jx0GcRvfAeLr?jsQKURv9(bv64MB;6l-?9-0JsG)|(^7)r3&A$Jn@UX#4 z(et?YYfjPg-!A5@;Z7IiKDXU#voTl8TNLw`kf?-(;Kd^)L`0%e{e^eMn@(Hoj7269 z9k%HF{%kY>haCq%;Dj?qlPT6P4^kkIT=MgZjvk zTo!6^F0{>*TZ5+e@f%9XjMNxL@Sb}YemngvN-WACYDEq4A=`WXKQG#$MiO-g}?Tz0R zo0@6Swt9ugPyQpV#VDS*DIH_PxzeE%{@a31`s)>8ei1h6-F_Cxrx`3AqCjPM&lWw+!E9u;ZZx%mS<=<*io!C}8-A`bWm0z++K8(b-w6o3L|T5Gp>i9eu;$ z#Tr86S`R-w8KsTY_~sR72+PhpiZ(Kjd%~R|^aCjL^ShrJoi#bKnmk1|Dt@CZ4Kj%= zG{v9Zx%}R+*n-An*^hXEj4`w?8=z3Z>(PzapYS+E#Y7d=#FxbWF2iJZK}X?uthm^# zVQ(og(w%|TBz$!O%k1eIQUq9A&eKeQ|#C{~e*W{GAiix2IzUD?#>Q|jy5 z;PO8nRk+Xg;Mxk*6(q8J_Ht>Xnb1IhbdtgRUv?DzQ>B(pr89HGVRvyUcWX ztZ;tSSXBRq%qOQP<5u{_c2d&M!=yD>LsGp@LARoVnUeiuk9X{LbQ`eFLP0!}=YfS6 zdHaZ5Pn)1tUeFB(CmJh}|4;rb_?V^b(go9Es-$Jt{Gx9P2={O5?uvzrA%C2jiTW02 zUhX|+W_ZnKyG`Q#cGguDTLH7CVNI)<4K3PGhF zTdtYpZ`ON_wgwa-X=q zyzJpeVd>;WG$-ov|HIx}e#Oyz(ZYd{;F<&p?!hetcLc@whisZtf=v zPREf)IaAR)fO2%-w{1BS=_n!t;a1b^KERFhcya%fxnSNtG+t^5+vLY`5dWO>6e)TT z`u5X#um`m7+bs-ynfJ--hZ?Ka3vbuGyl`KL_^VWO7Who#gS*!8KpJ?bg6u1Ogfqgp zB1Bjk`eN_!{l?v_j~ec)oV)~>gBxL=6sw5zF&q??Eb!OtnR7xovzwI7UZ&!|#H{c% z*&^$h@u)%emgbp`zJss91`$Fm4;HH{!Px;zi%Dg71|zQucmpPgn$>L3N!=l7^s1HR z%c!0l=ca~*13lW}C6!IEyapIbJ@J;3UTFIGV7;D~4yBeMRtZh$>9NXBIf&#aH2k@6 zEx}VF0=msbO)V>5pH!~rtg zpdy}Hfx`ULEJ~0_;P_+ENcyLEPpPktM~gx(Zl8a0mLj-7ecb3P?9O*sl9+e->=X6g zRouPMh7(D=zRz2WJ@CyHkFauW;#!q4$XetvNCcJxX>UZg6rf|;+-q0eSpq8cjIk&< zl}!QFU0zgtJ}Q>)ywyNRvR~uI;87_uM)l|e-yjpBHJ3Zf20E(J?ax^Mvb8iO_Mg_Y z4zI&SA#(V3-h56w81rF$X3p-IuQNw3Q+Qla`xw}0d_{{JPN|ieDNQ3VXev%C^iC{G zW-kh@V&0#vXfAcyQ|bZv;9J*gM8=?|589c1#XNEBR=Ot)&(@Pf3E=}<{}`Oe6% z*iocW7&^`Z8oi4AJIdduvu~u_JRyK>px$eN17z%6ZMamfaLJnmP&=Y%BxKo87{T)E z3)&iA7L;%8_}JOLD^~||bQvBeHFLQMfHKcnZPX&S63d-q$stV{wd`Q5{emUXaB$kv z07v_$!9qI(B@$CG_09GlLIz!>ku&y~xB(>ddbi^lcN}6Tv zvLG!e!tD9!u=xXj)9%gF6xij}WTUT7SSL5tMu5Kb19 zW8AS=NE^LXxxkN=8<*zQ_5OopA=wM}xtW@6lW~Z9qUr8Ha?zZ7sXxx%Z6(vlb`Qou z8IX_2J}_}Tx~!HUbUD&nuW7wf9*zA0w=$*5E`rz1oSH9Zhj|Djv_$V>$Z;TZRk>8U z24-bjR0Zwn;nWqGdZ07Q%vab_N?(&+9{6r4S3`vboD0?C>#3<+7)0^AG=He4BbDJ& zIvl8Eg0t;&6@1a?QiFNU%lO>#dzu^_L^q9up7q?7Xv42gBVmQ6lb(~BvJ$M z?sVr>TZ?F_&bkSBcjSy(PLm<){ngKummwcYCj9i|y)O0~xnB+uwX*LN4wm57wI(pm zut}(-5?6M!U}#JgDT~SDug&sbGe1E5A@iohURF-#5yYj30sHXgvWYc*FR&0WVU54C z<|k;@0^l*`e7oQKONXpjT9tSC!^WIM%P_C<Uc;i7l5Elgy!HRvGTLYE$vdj+damh*7k7f8Z zKXeMgGSJldFAulQL+*)~4?^51*7Q1v?q6_z+P{Tqk?D4UII3?EIVffgruP^%%zKSr zrg?uw79CWC7~#Nr`zfLI=(u_Kx<3q~8&Bm+!>vaU+ypIT)*YmxEHj{Rk7jNV}Co0^=Ey)n@`TyV%WV)Q9zhpvIdgY;4@5 zS@HDhW~iE3WC2!(PTRjUU&O%bcpO^Z85e!mR{@{y6VO6662;gZ@ zTM(T_->EI$I@oTW@a{PYwI%6O9Nw}BPoJ{?oc0mQ+LzTBf&C>=+h;GUAK`U&sw)<~ zk>4M9SNIlI4(yuV!$P}9Rn@Y9V+NfPuiQ+YGFTkYFaSebkyQhXjZlx>Yy}4rXH`^o zf_m}Xg!M+B*;ZVcNS{_HUW1BF*Z7I(2-Kiz% z752D5V%sfxzK8Llczb#i@_t`sL_cDJ)}lD`ox?;P!|j(*!~j>^@cWGkrp19N^D z8?W{}h3|R0R-sG71uTr3u9&PGNn7D+ybtj98uG7R@MPi(-cm!La*qshm_A(^*P#qz ze_4^HY;G0G*LgLOau;$NL@BC898jIl^r)JFZ7@ioeOTa6<&QI7PQabMN#G}+cSGU&*guw*<&LwfQ|!sq@A$XvhR=L%jCsHg63J#yuN8$3Buz&5yl(;T zQmLpcF&Rg~ZKIN(zI-MAE+Wsc>fhR5^4C@b^X6m zek9>@)6q*F8?@YR_C&*P5Qc>jewI$7>ykf2*?`o>aaUOd)_Uqv80WCu`n2#nqF{cA14OfbZ7QT|M=uf6>^ehLa#i7Zc%!ckGz17aP#Dlo_ zIpRI9K>9t9-3eRTfOle}?-wi9b>Yh*8~WtYmrO!@)kB>`q@I5nV}aicWol(FVoXS! zGpS2rGud}0AsgflX#1S*aQ_7jT^f0>mj$SUFythI7a#?RV!2%t|XyV=4t+Isb!Y2StHvzmq_i+XzMkVNDYe}xJk3fCIL^S&Rtc`~Lns?%dUGe3mpi3=T{AyZ)J!Bw&@2D$5AlDIo3 zteRWnjQBx{R0Fh0s4(z^^Ligvb`#LQT*I*uvkVS`v0n6&a75S5H9%;XJHz_SBH))l z;jmAO@GMNyX)k9)VXycFst5L%E~6nlBWxCrz+gu zwz|cyhjjc^Ul5_p{xn}ucd0D(yi^sU0`b<%c2N&x?4>5QzwErpXwHpcY`UY)_i&tI z3^-wa9dH1>USzcjCo(HhX-RCM2Dy3D4Vvom+E%$`<&7-Yib&0Kz>tf+=WNZ}5-)8!W z$l)tOEJt8&aCP2aXf#T$&6k*)1X@9~Q=B^Gpxqv2a%IY96k~f2DQb0^Ow{O!9>jwb z7zl8yC%4xXp%)?(+Fm4$tf4PNcv>z2>je_(*UMuF)(I@UsYA~PEIP3oQkaK!N+9|d zM}EzlJvhd@-bO<&+1NS`EZOC`nvV`v7U$ppbo1EP4-cf_cVg@4Y8j4&G`HERM} zzzhBQ2-5#~P>Q$?S+*GkwBU*~W^yNcCq1GYCg59|4M1TikyU(K0On6$s9lX35 zm_9EZGtYR5-hLcMcJb{yh#A~_aMYGE&lZ@9(og-$I2de=U{Gfg(kg6Jdo}%W<>$Ca z!CeT-1wuG6m#t6$71YE1@sbhGSjs>Gb8h<+Bl9E>k3}YRCQAb@LP*|!Z_N;_;l(q1 z&rCuVnKH2Pi*;e4#yp#N&zMjexoA^8gBCTr<%TS0@haYlb9swQB+` zF<3FWp_6l{4-dDy(uATu9$ues*Mjl=d#NLIEhrP%x4RzjC!5nf#k1$IF}FYhLr${N zZs8o&h@@KsydK-k2OLKuR;;3wOOB6>*$nOpCwp{va-|Oh0BnJ7xu-AcIPBE)!{zoD zxhR-}h|7(qL7oxg)vN4r!?Zsn8_sC^g8J^SE=ffPo0_6Vkhf~FnvPk~v$Ig8+N;um zDy%n~ob+GAMIMX#kHJi>g7d(U>aE_jg(h#IB&~)i`md z6uy0N8tnm=XK(J9cAazmKuJ&AWq6{b%j&!L;bH{HM0Lw{ekAPvMLD@{S4S~Isw@75 z@j^TEFYx9)+&Y@3Jzrxp-7i797mTS{7qVN5RN>pRInKj1l`Pcp71N}#`f%V@=Q?bn zIE?MwUF>B(?~`E=iug!KdIw6W7@xbija;+!`@*FlU@(=ysf%qM_R)WS$(4Xc5Ij*e ze6U7Ox7|~tcPjvg;e4?Vlbc9wt zb9(TRx^CL^g)IaMYv_TT^gNb zb&30f%XY1ts{r%A( zD*3gw^-X^)*?xfhtH=@q?;S>E_ilcF>*CWMDlb|CBl|WCE)`MF@TeH;)>fmFLLvmq zU~?eesWg7wF$0+i)JW3U(b18UqY#QIWi$5osJG$6UT21Hi;Gs+JggITAdh0Bz#C1S zy^u}7)XtSk$XY$!dg-sHjbKMUK-vObYIp9NNoUG#&{)UWi=H8b)HiD+Fg@>@lOruQzQ-pA|rbN%*>O0&sSB zPd6zPK(eJ%>;bIu&Z$SYw=v5E?F_`pr9XWb&bOmJLKD%%Ug z;)WTJ$oTf}b#fj3ES(|fs-udEHf9@z0H!>sPeRv;G-v+S{?S0a$ts&5i2of8O*{Lm z*AO{nTGdz;h7`%;bZzZr)vo7Ml-+wt<&1QO_Sv%Ea9}6&5OVVW4hr5(h>0elF4G{h z1pu7E$flMmy&~jumEnIp(41>J_TEPlDt{x4H4}*5waM_*q%jcBux?|t)%2xB8jZ)k zd~G80W4*V2YIC9=Plw2#Wv7M3Jc@l*Y^xrOZ!beKE0(}U0#ur`w@Q-zrfTJwyiNK~ zq=E9mpfJ6x${!?T(PAs*4UUJeb%?B=J4gQ)`i=pm&rLX`=Kln` z2q3EQuI~OSNLUpi|L3kqU~~at*69neTA}}3;);D0yJ$RhX6tT-`G+q z2t*|0NVRYOHMt9s=z@n`r}k=m(JcV%YOhLVzS=Z*CJ?PbjA5tMz_?$`yzY^kqS2db8r9A(p`>iwksAkHnvPckNNK>=ktRE1KMFeFlox_xYvt) zKq~dM#&kjfnc0HC^Xj=PaqSA%hKly(g@FCzwe+<0V)Ul*U;Src!CyBUD@aJ(aW^cv$EFxt7gy-CCzDXXzK5 z?-MrfJfXkz0~_%LFuFS$v+fSHTGg0+%@8Oy!%_tW}KThAddY@N~k8;0!4U=Rz9c41Dh zY&X(o$?d!IqdDa=96(6p>U6wO9zo|Lq6dlIJniu>xLv1Df1aOk_g>HoLPkcOBWL({ngw#qEKbdb8;E73 zv~K49_&J@MAy+ECZ=wadL4iRFM^a5v{~hmSbL8yBD6VKShtt9##~@){em9$&y_RP& z@@QfmtmW2$OLPXWDa`gsM>(nQb~C2-B~t(XFq`3iH z>`ksGs=7aI8Uy4j#)e%Z)uUC3zzC82;MFk>!t4y?Vj+mglsbHY>^&C_cs3+ZN~`Wl zzjZhA8vGJ47q0965R=Lk^X}8znS>F-g@N?uJEMs$FT;s=FF2T!sUp>=_~8_Z6qR9C zF+f$pa$~=2FjsZ#-BpPDQ^8E4+GXOS8K}xWuh+N+b}ay#UW;~&C2#`@$#(sU%*H-; zW&88@Vkm4T5xT@<)~=eae6m-IBFz&C-tlJxWEy8`v>klWJtPJnfs?aAp>oxr~R zRH^dPTkbmUY^3W_&zoU~=7O(dWOhqa&kvhQPPcU*ezqP*4cxg+p!yXb(nktd_UfQyY~NS&mp z|Gwts1XGn!p5m`HQp)cbauI>&+9KAhpN!3uVjWcSJZ{5^wVL@mPnxa{W)@DMUQ(#t z#?Wfgf7H~X)eb3ld|k`k{fyj-I4jX^?azgFpud=KCUCaRI6|}3TWA*% zFFtlV)L<_U{s?;$FIY6q07tA!HV{wY_YamV zyfAbcxZ4Vl_;2W9tKf)?pSAGah$!-D4$8J%Gy3fmW`b>Z zr~~TsFqq0(Zc1kkMVP_&w;L!~MH*8B@j(mqrYY`E6V^lvBUZ$uA8ZJrlek4n72xH7 zL-s;d_LK`&;DLPY>XzCLw=6F4V$#gzQ=5LNslT3A5^rNRR$Ota_NMaCQTIC+h|_PU z!%>(S-%pPCY2Hv$Qj#U*JOUQMOU=L_dbQWPszkf4Uq7bkoNj+Qf3(qJrS_YMN9pew z6q&S*v^E&`4wy6jkGJXG=2yYTqcQso^Y$K_xBXSN!o0s$Y2LCNU>`0Czrvtk^Gu;@ zO&!%{Hy?4|U8#$p{3r+CkW#)hE69G}pDETA+YT-7_IuqaHpd>+u}L?r5xC-X#ylWK`{<yjNwp7!>U)GE~&#YE=snNrb!{~Oh$JQ`cCfsf* z(P@KM z<+SM18y3GK{H9AsBPZ#KN=Rz(6#E~p65R%E152kvJTedfYLjv@Wd0A9v zksk}F!Z#Ix$MJzgZl5F1P;IRfv|XbvoicTbus>~nx%o`&o4NA%FutZ<4s&9Q5yBi~ zM1X#R5M=_+oHcIg#Ox>BS z#JQ?;nzK)W+?j&4pr7AnejB(X?P^y=`_-Er!DAWoruH%BgXuG#g(42wU%&TSBua>I zvAqEAg}&Bq0SF-S;!6Wg+x3pBO(B6w>=xabST`W_+$q4rh%l@{E5Cf#Y zP$M_GCO7S^)%z3eorEOQP<=7nH6+aZ%S{e}-3y@js6;b&jl&$#^8lx>6c~kYtf8pL z%8Xl$Tt#D%ecicb0q`Dt7N!_r&Mg+YuS*tZ-IWqi=Yp==mmMSUWjxjbwx_W*1+F!; zDs#%2T64v{S`FMpMBgv)>jrc~;|FTJ9&6w-iW-+KLiudR3)AP=4KEAHy)MS~R&RV; zM<<#!#Tmdhjg)5fV+du}{&2%Y3z!(zIAXI~BM09h`tJJoaL&qvwb`W)%~?T%x4YYO zjcER_{c(&z$?pkpu|5vr@_xbi`qO@D^I?211IOgrR*#t0nUnOl_*jAj4gnaN!5kmK z(}~oaSmu7k=cIA|0<9uWqY9YlwkA6wIj*ZlGtn_IQ^kD|#k1twPRw^$A~qm7H*>TZ zxmk|`g87S$u`?6m!790D%ewOFa#3d!6E36%;Ji0_sATM>FS6;zkC$}fnB zCIo0A;2*mQE=&}n^(-jxog{rEVCIVFG^`}J!!~yN@k!g+Y=^dzfau)|kwm4)b4lZL zi(-atPvmAP3V)A>*TFt~dSr)N{UR`eC}Lr#coFdOEuudwjB3?eKU-{a zgPPS7*0sS!`=%YcO;mgKB9_)sgZDF5@i6Q~V-B;7ClzNI0vpQ4U$ZY$IM4De(GKf7>AE$b}yb1X?VH5G~Ey(|+O9Aezv?PexN^W{M5x6+4xcRdZa zTDmNw*Qi`N2Zmu5`o*eu?z*B#2ZIIE@Q_ z#qcioRYhI{>SH@JU}@)lE@yhK0BYB~7}?->e+L=xGcu@UZNdYXP?0!wKB}q@&plfC znmgeqS{!cL?p=D0r=PR(%qVW&^E}5KiU1LsEL7Mhi14#)Kcr7%)=lNuYB18G6hUf) zFhZO<4_eR#9_L$VMCNcj==Jd%AFjY^HvCacBkPNKO&2;#O=?Yfqlwvr(6{>UMm6`R zvWpxMPBZnX@~Xs&)W2JQPNmIoe{ANxzdobIv-*fmZk(`|7S7!D1J4}tUew|?$Sv>= zsS18CWxbxlM~>WEJuDP^*zp?9KEREgHhR_ zpS3ZXreog{8Qf)bN;8Sp>V`1L_d17MJzFHxZ;|09AFBNceu+V>aM4dxas7N^i&m{T1(opxeT+NeqODm8i?s# z*o-zQP|-+TwcUlt%Qe;E=$DF%gxNm*_3y)N?<*IxP8<(W_aqm*_m#65oGuDv6WKe|jd2 zEb@I}3VmMhm3(R0?Af&U8=brbjL%dOM8|gi?Z_`966dV;l5;UNGf7&Y7%j3MnZ3>2 zlGHV#TBrfJ2O^5AtUDpnQ%z_lZ$)(&+#HT6`ZUmO14qwwxB46;&)O0LB0CY8ghs;S zRAFvGVxyB0Et7#?>Q83W?WcMx*bO%`GFi);Sar`a9|XPYgL6Biv-R~XqQh_3cuQ}O z&G2>l{qcN3pQ0*`Xm|LVE?f7@#;?#t5-@f_z4>&0K^@3*OG%Q}`j<^uN)kOG`ZllJ z5J*+;@6C&cY_*~VnK2QJ%i@@hVyKxCnC3@iE#Wrgve^U=9~6j~;TG1b+;@5FvIYr| zPu|dWhJ)I|T=qy4MC5{c+v&bD?%DeYt=IJCDD`7CKJ9WADDX%X%COS}%cu^;aL|B84&iraHQ@u`$;z4$o)s z_j1{FINMq)K@2%R5ngoiTr3Xro_AjW?jfdS(w}*mk}jT;J}YXAr*e2?5V_%A2X#|L~#LvOOl-%y>8H`VGrcdhqPaRg6-=FDfv z<~n}w*59ZbNh?+x@}bC--TpicSoi|JXP@eCB##;v5OCYiV{!k112fOk*5dxg1HHvz zo86q^_NEF!#jn2e*bdiUE;45zF@e=^oftV>N9_NkG5WuTIkR9HO^$55)&kFJJ~}%} z1TzIO{)J_pfy6$FN*E|aQ&3Y&i`L7gj4%-KqW|>>1ii7^s$K+`d@{x+BFak_qltF7 zw20p`nbvuC$fQ~OotM)t@t(`8qFB359!-=u7Wn%i>@Dcp<)9B5OUp-IA;fKwZh4P=3}CEL3Mo;Rj1Px{=Ei@a$bzspkpLRZ%xlhC1yJL0P^rl4dd^^aW!kE}#be)R zaKSwCYgw+pEV+vaB$?e4+)eojf!e^Uu;HN*302!(N!OKC7NLJ(lqByFSCf2AkkeVz zT`;g2wAB2hq_~TkbuuNxRMWI!ZKcY4ySw*0hn;DfEV+oc73*Fa6R4}nIby4)2+C2??~rp%bdFUB^x{u0ZE%A53~v_ru$#$P|*75uA$`Xxtf=_k4( zggYg!gxA#D(W4SD7vk9t3D~+n{RA3Oq>r43yP;&nr?wZ)oyX$ySH51v?Kf9Zg=-`iNekl!{L#z%iMVg%34WYc8+G^# z)!?9=k@VonE9#nUX*ZS;bYi0h7!?#rSZMsMhy#qVPhw)C{ea>A2=4A&Zk#Mk*@}mP zadA-mn+3GN7IIrN75`)u6cd~+ID1L7dm`vDaB<)PF5Y{Q$b2hRqSIBH=Xl5ToLea# z8z?I4B3P`dCG1N3!N-)aHca9h!))Zn561JTCmbR%=NG2 zsduE;L7*qP?!YBI#XoEICROlrhAf2kg;+m*PG;YB;;aWTX5a4Bup$S+w*-OFjRKrS z@&9mcQo%MM(9JC54eT{2_}^7e5$Onv)ja>y$H~G_lNUSYGBEK*t=lg zD;o@*bI`Z@E1zfoqUHAzKwsM*V-Y!X@Ba-QK+o4YsZ+S8x(Kj9e(;}vC^3vUB)2O0 z_Sn!O=|5~;ILX@&YVck4o!1-C;lFqGNVQ4=PW;rdQa{K4?`7Y;dWSoJGiv^Cj3Mz^ zq*z@&S(E!>m9^dQ?>z~J0ha_Ce=d3IF#TD~KVL}%36Pt_j7Zs?s>g{p3(Bp(`%%iw z%PagFwzY}+$=jep4e6HAak0YzDg48`8Nt#N6xi)`nNrqATbiJG5=KVHQUveWZ^>l6 zW>S~wK-#jJjLU{rW|~C(^Mgo0h^d^OQX{lu%Jp*ov2=SB{W5SK~!!%(eoprDjg;o{}30hi5t9o_S~ zY&WT-wVNkZB_MgyWxaQp_WHdtQGI2>Yq}wUgkLu*XHvhpo;Crvos(1a8E>Us!nl|{%W>Dt|K$O~rbnfw`T zcTs?w7AHB=WOGC7?)NyRpU7yfBN~yvGFN#=Wx1a)WvN7?DGDsUgzU@H)78<(MbqHE zKIpjsx?+GTy5nCw{qL6~A*>LW)9FzTVsf`O`Oz@iE24Eum>dt6n{X$)10_INjGbg{ z(nr7Gq{g3IrR{ZeFe6yHqcA}xFQ~mSgZvmn)B2EIH&v#g#r=Wa`q1Q`Ec;4fk{$n< zNKNbLI64)Hrpv=ByNBX+5!f5PQo7Nt6%5vFFSJ`UJ*t|#?mvGCqyxRqV3z_tEf~NzV0k;r8NqX zNO3iq{H4W3^ENJkm<@*GfSYmuiHA}1sz)k!Tr9^nEPA|5n;jAT?A}`-Ypu$-Y>}x6 zJuO~Didl(PTg^O0mZRv=nass6N zR?5XiZ%6u@f_$ajoxFNp_)5!@zr$B0oq$WrA6MkqW_La@x5-uw<>|{?dl_Dr8IvrE zcgkA0zSBhsOk`n&3DMX!($aHSN6$}L%TMS8e6f^qM%tK+htKdiFw&O&Yt zHGq@_;m5w~H1?|u|3iG|?t!aNr|hqD@qE;9#A*>+Zx|poy4`F^ji1cp<5gQ%e){Wc z@J*KJw7kQf|Fy#YL^QG11-$ts`KZg>>*V2!QofXH)uKKf#gl#O*zCvGs3&Ogt9L&- ztErU#^wOqQH{n=O#E)m=;jT&IqyuxLsaYrR*Wp-JbfdNHbWO@f5@lpTMLM8|60!}~A^1CULET>{|ii=J=*j0(B zzHq)=fSM|EFi0#Puni(kaA;;Bi&#SYlvRAr)oaj|4_<=}dTc&}Hh&T08msf4jG1j( z&RZ9%Em*r*M)~aslX$gWPQm%yGozrkoODuYkMs-dbmE*j4WO<+4v;kdVibLMnTfVH z{`ZO(c}B#9K({>#b~&S$#o2@N%N5u>+ns_d+<_fg&yT5w-zjP0*68%aHNd|)Vr@om zUo0_Bzb{(0NtKsTjJcJRV^P3wJA_;P}|uVL6sE<9as7Q${Z5V}J(RBKC(HU-4#qn>|u z)>6>TBI|U}295Q2RS9jChQ+_YM;ib;vWyoQQ8qL2Jl)@4>D=f!B|BsJLNkRvZTeiP z?Bp%uPV4C0dBz+lUZFcig3y;m|C|fFpAZruVjwW{Ydn-SI$#Hs=z#!<)kZcPGb%L& zCm)(b)Cl8|4dN0(oiAixY0thq@mI@!x+pa-lo+ajEBfBirCY19Z;iJ9!=PtCL-+;H zYMAR|{Im)osKw3<+ShDju309Avo;gyKRLVL>{u>}Q%mzemQYxXeJef3NA9 zeV8G-nL99~z^6o`{$9b;y|Ks@gGS>zu`1SDWAk; zh$ghQ=pjm`2aYVJaWwTdm@^eEtSf&{U~$txu41U7gj-Rh9quZAW2EdFwuIJDBlGq< z4ck-Hwv|F#V9~Qw5khmXql1W-ByX>$YDf!t{a(N>*axVTX{^#wlET++HXI+(F@L;QC(Ki22$ zTBb{d8pY9q#h38bY9rf;Gd35-O@xW$=FS{d?g@KY36RhdX-rYd472`V02_ob>xZXC z=p^+R`vmkvW!|rJ>eZc2jC4R@mhZ>Po*Hs2HAd)yunc>|$CXVqe}VuYDsmYCA0e_R?I#jo*Q>798k^+nGwiuM9lIsP<}-{F zATmB=8q`Fd!UoJxCCxyt@E`?xZoXS%lx~OxXTbSaMjr3^2bRZQogRv zJ$62)CQV9}?hBzr{on|?&V7Gwmc->ZZ>@fxH+-}x_588B6U+}_xF&ZRi`uK$g%PQ( z=~>C>MJ}@BA*Ug(gkyqnGLvznJCE%}$w&&cv#)CB_tExL6p31E8${Zg`a`VCwnJHY zO|8+7cc57|6O6D>c*i2jGSowoOZCWE^wGr}%rrwm@tK)meHp`2;>=}}{;s@$cYj=r z>flIPhRVs|5;4EHEEKhIx&dcxT=qrR&$UP2qwrK1DaFQqJvjC1jILInq{q zLl64{%RmtYLHZxE1dMrJK29|qk$y`sXPld#->#UO;|_=4)P-g1Igjd~EqU>$e;Ydt z0+ah!Q#dg42Qv1*&!E50bv_oaR%I_NvIjw{i?#`di+%qC@7bh3f3OJvLl zSZ@tb{^CXb``iqN1jDw?$NtRZ?G`q<{b7KZRa!y^U7f@k@873w3=+7G&Iz)xwY68z zbHp1~Q2*+50jS{q&rV2UZ^rq!+|OfiM`gVo7*rd5%zJ7&Q9`x2D!35=RbbSX%bzWp z1PQRuq|s0#i=Ck(Jt;nzcN6{GorZ`A^RoS$c{ls|eETzcy9v%B77o)ht^aO9DwdX! z`irb7Oyzc4#j{=IBgf}i$S8IT@4$8`oTLAM88Ct*^z<@P2@I4cwuryArT`5|3DwzK z*OWuZ5tjj^n)VA5My388gORJzf1h=QBcH)Z=mbY%bPeN{$$@vl#{WEBA24a#>Ma;D zQuQy;;ZFhxt}%d4hX2zE5Ds!Ix~TlyfM|ZkpVP}2%%*!4lCm=#t>>u1G60qodqfp0V&3M@v!5`Orcex)U{_&$m8ne-X z2;rai1zXkC_jGCl(mxPfyRgwxNX3D0^;9xBWee2*5+E~-kT8lX5BIXV1vvBt?ak+;i@)R;&W6%Cs6jdM5LW0QuKhGHI+rdsBn& z;)h_?bv+eZp7a~lrv{CrMB8sKnk8ixm z&jTJ?t`DBm$dheXp^^T)JwGCCaz3uO&EausDVr4^GYSH9t-m7y#taBxa z!N(1}*!W|QQ!~qJB#qooU#XwN>zLK}WVRFX2tVBmd(DauQ&GVs{TJUUYsUA2?%|-)y8c zzOZZ84K?a;k$*Av;W3wGJns|T;FoHHZZo`#9mPt=1*d)7?T&FHI)*6wLw42vrOrSp zNQZo*24FLIw0-~}``Vp-nlWjxRH68T4*T4H^d>6P0)L@XEg3U-neXqs*FTm`fE8p= ze;B@C9bKx;v#X>3?zA_<({=~qAAGE_Kg#=%_<7unIL~~gB@E2#S*+ZvtUs33S~6T$ zbOt2Fg+U;Y)4opfnpxNDOgH5rHN_$;CnP_3?NUA$XSC)|=-MAFr)SMx8ljjN5F0fA z9~1xgtu%R!+zoQ$^9n%KxHMtntRel>A0=BK{mx6(tDefif=y0`)61j>ZNCheHpA?U z2lA9%Vp7t1l9*E%|^v3~m z$Y8swHX~5`%!cNrqu9mhYhH;RkdsH)}jNqrM?z$ zLn~R>n=X&jusLIy6m6(pF~c{2fR=k**6>+C^j96gEkfA>pM&>{wJLp^srjvhoSA11 z?^W_-h9K2b;^4s;s-@XYjK7anWC<8#=%R_uipc;j*UL9$Qm@KYrvdug6AnqpHM_sf z!WCoTZwnIA1#*Br*0ryV`{b@~Qb=FhnOg$-UdJL&9!e@&G6hWYm(6C12d-=lsb;oo z*>4YqMFaSE$a2=Irat};c_8}+14TEMC4>b6_v^RAuH^a^NSz0o{sE zq09+vZ0XQVM}Y*)g9@SBOVWvt=7&w_?B=tivtj)~lHu|7E3a7qjkt-OFNyX9n%h;l zOH%(F{%gWts)>kguAF<(9^QcCPP`iVD5?fuF=#L{rHNB59ulr zQu`tnA9G`Fq+6u}oPL3A&NGb|bxP^wJoe6Jb~HRU920lw;atVB$QX-hHx~6I-%H)C zfG-^Ve>*F{U#%qr)Gc#nulZ2_qQ0mi&(Y)ylNp^2bwR_vi0WCER}BvQMY(lU1nRV@&lc z>WN{C9r8pxflm<09E$1*^ZPBJE9>ZC&zUk=b0@69y^xG1VL8g^ zEibi%;N3ZcfS&7Z6t=HZiCPgO5{9^LI{QfKlA)}S!2+#jc_~crk5R8iyx%Sh6Ctia z%LYjRbsP>ES1&yQ-`FQ(r6~5s1h0s_ynu=?! zRpa%uol!T>o@2hPo{-qnvvH0K-j$NzNVXRHO8frH(*`$`ItKSOAM7gIDHEopD5Dwu zZ1om}0iz$zGZ^)c@VJX4fJyLy1d9X!(NSLaKS-orA6pq0--c=KkToomtXW+qQJGMZ zH{WG4AnobtCC0tPQ)T zc$PsYtg)%a-=D*G8aGItGzwhebf}X=?dj3t766qKZVhQHeE}{p z+l}O=>9OeX3&I%ua__lJQs>o8ZBDw;v_uGs(g)NU?rb%K79Rsv4>4dRxL@0s#X$=c zVxa|IrQ=A}c)o}7O(;_#Fe%xQ)$LvN+@L~GYw>(9z^VKn(MOmB;4Th{UCr}2Zc3n+ zb;DG*t{t~6KF`(Fx;+>=;@NnM0-`6>B^njAdrJa;Fhat@YG$?ng~0gW!%l|yF6RZ$ zs*D-7R-%vW9g_kxUft&E+1Zj-5B+B#tPf$DB*M@wIyUo@#R?&14jk`jK#iu}MB<}_ zQ7mq;4teS99W9N_zWT){sX9&-#bSdQV( z9hdNLn?)kv1K`ivzH9z{EC|B`kLqGTwx(x!Yy%-<1sI%9w>=Fi{?5h#Hy#C~9at-B zphv={@CRUtpO4&jfgZOl;u|2YBx@;Zp?tKU17<-YG@$igGerS2MO;)}r5`Qukp?Va zg`m2>|Ht=X`2%M99_OFNJX!!BE8Nhk+ppNOsHy!=YX@wYW7sl!Ajir-ni2Jd2BwES zN%hsGc-ZrC6yOgKPH=>f0kKHr|5u;>e=5-}Xni+bq*`S%>ITpnPFxo)qW(^!Vfx%a z8pN;bOl@<#_9lt-L_k_z9`OFm2|#-+kEU&Nn>!TLc(aglaSw}yYA{zT_xk$Mqvlo; z$>;{@{(6zj=M-iI@ukS>QBwJw75c)6X@F5CD-HP?Jw7}v9f_8wLhg#DeziY14Lbt5 z!}y~q+e19AI6xKTk36u^5+GoQ5s{>`+l-r1{U(R=y#pX*tlP6*X;CNJpw}qPtS1IY z+$Q7cCBvgL2$?17u}^W1<<@{u-WNhuDstzBgQq@l2B-ZKb)EC9o~Ow~O-*g$d4=m4 z!B7M-Umm#qYn5<-I&9wx`-_EN@9IwExN{dNWwjjHW(W!}{fLWX_R&WdhHrmhQw&6F zmGs7V9gNXI@=PJYE9IiOR4e)(0XZ8-qfjYXOTd#?A;0AzI+fRv*M@gA9qbzSE z{GOA`kzAvlvGGkLcxW)TAQ#AP(i!Z5R)sH$D6e_!)Y4rq-!E?i4tA@}9a7ce7abja zI@d*Y+V!Uck`V&#xn?NBr|l zaX_hlGYBTfd!GtT0P>FgukPoS1+{DJnmT}pit4Yw3M8+AScqp0IV|q(HfL)Q;#I?I z4+J1m*QZ;Ewj8P}8Pq5!D3jj}Jb%y4+3OANaqb%d6v(R2XZSn`ZVEu~Lf`7<6kBJh zt83ZJ&{JYRl6(;q3cl97JQT`|lqBVKJ|ZJ<*#CGpSx@Q>Ncvr$S67_p!y(+r0A!$< z#`sYSKR!b01++ya$W*UFc~K)vJ|I=iZx@XhCLNj(_x#xYF|KQ%k<WzE9Z&4&#{?9hQEj3*0)edIS1|d9G*F@MAE6yDNp+5?z|9%O&+fjoMH- zS18lnUE*8UP=MXGT>PAc;2=K5I_hEBr3|1Lb}jV(rGNhuaP0G+5ruhpc_jkTN$G+x zh-X^~ZJ|m`P2YWy4uLo$yWX&{JMCDs6`Jp1G&6&g`mmE??LC2ccft}Lz0v!1(OG*7 z;+Nb3njax6UIE)VnJAaG#(BE%a>Wiosns9`k{4nNadoTg_)D ztwCb4hod%tm!Ja=?%7;(c8ugAtE}zr_glsvoPWys&RITLHzS-FA`*$K!18ygXmSk> z2F-HijU%r^;_qDPEW$6>4NL-+z7v9|U5eyB2zf1IlAdIe1qAT|Q@~-(CNK0bgh~GX%e`Q~_$L-@xXqL12ktL8HTz5V-l)&0`D1fD785 zfzF$=i$St-BX9PuABaF(oUh%N- z?g>z3cpe3T%RgUrgxMcg96}3QYlzP42NlA=;MjBKp3f{>C zE=9)^pwWnurmHt5ge`L(I1xI`Y|XN`1p54#jd8&$Hqx^YZVh=5Z_H}$)0y|yggl6pY?ljahw^z>OZQ2Ih(qz;5&yr z=ifm5Gw+UhR%FVA7I%*SI;|*v&S>dsZflf#k`TS6G=qu^`^?Y4z*M*9%G!KNT@z%2 zp0Rblq>)qneHy5F#U=#N370lK*Ab=uSGr|^oZ(ph z{aZyeq_)AN-JFJ6(=aZVnUFOEBv3ka$7^4wUPmD3#c9!ewIMiLo|?XBw(9|h>D`R= z-ea0m6Ks4zJabv%(%Qm>Mv)BRAuF8^T zMMGUIVvjSt!V7HM6!{Yrx++nO!dKXuj z?gF>=))9e2<&75^uMVq0$E#rsO~pe)WUN34-Nv>aVS^y&4Yup?I?cJ2oE&Sm9dOr# zudv(89y=E9O0O#r1vTbipgy73F(p+#3XSG%B|1p_?5^wP>Y?8GzEd4f^EH?pj?w{< z5vx$mfqr(ZW;Px}tWt%+(h@F!u2$7w<3$l!fJR3&DF?Yy)*o7UJS-&{Wr<#q=XeDg zl8G7&c~e3+L9|$eNukmmfyWFih%rabvDMa)QBUZyvwbYV2$Yq@*%`93d@Bf{g4$dj z@O&jzJzOk!u*k2$BZ!evPod!Q`alu5*q^$F3Cj~ckwx93ic&HuJdv6EMTa>bG;rm9 zq@nfEqIeCn9nk@e2sQdJ%SGfE3%8e{(7JX-6f^I8Y0J{<%6-LOON}={5!1_?GZClj zbvaAT&XtzF53#hMx*v2OLSEdn8{Y&_#JjJ!F?eEf5||zMVMFQY;!@ub;X&K3i+$md zuOlyqv3-1%RqVuz(+v-Mb#xz&ca?P|;OLSwT}0M~pKfUzjjy!JDjR4|#!+s^pOmAY z^wS^3X}s;^(+uh6oO+!IzK^x_TVW!)oEKBZbDdK@6|zujvN>W{$P$ptbTCnA>5E8N zLxID7JGK`mEAW7Q%%Jx1q-pJ!!UYtCD8Uj)ek>D&-L(kU%tb%D!Yh`~uO+>egFAH? zQL)8K$t<4(O^tJjU7roF$6$uF0|b8WYMHEd#kwY1E|ELtDUAYFkxZF)Y+^~a2^U@E zgIjv~`Z^)>=062O_xqPT!MO%lRh@WRyB}J8o?_0v);z)4$GD;3_hXPAVcK-0lhGy5 zlaEL$b+HpH${FUIN<@Z`k<0d}KuHbs1A0;J&HEz@n39g1XYZJADO7(d!=M4A)k~ z1wX7;ALbF8{jQ3$Td?oJkY-Z9T_WGeW2nwUJ-F` zOEWWV)^k)RZGG_;Ji|MSTLd(6|-I5k6H^=*$5WWslRFkSJ zmU)sp6tONYo499EkQD{r9{a_t(d+klOR(sQhU_jE{CwBH+4RFX{HrBOtgBzdajeLg zFt(OBU~v`}7H*reUBz&Gg$j$6EK*|Jy~}{fDKuK}o%?%MLrA3f zM7j+;JO4ELj2#6#$A9a1KnW!PdDcL*69XtM6le>A`@F^ZRv=5Yy7F!xd>59#4`auR zdgr=@#Z506KxY=l0KtXPmB~)OAWNP?B^@2J6rs6-dL{xsL0@F7S9OGl*nj9?g@Pz+ z_-u!D!5A>Z5VX13f4iSq6uFC$QMYR13MDJzo$w-fCEz2Y2$^K%iz}qUVwvBS&I=~o zo)ZTBmHbnHTwWTY=6m5m%HE5#rb9k4_&Bn69m6U#+vQUa$>hif^c#VmQCvLaee)Sk zZ6CAGWK$mAosO;Nqu@)5UnPvMMPLh|d9X;29kwSlIQHn6D|BLrRK69FzU$|E7>Gp{cf$*N@2Ac*!)4doaXquf-!La6`db_!Ba2sD!W`77o`LHh_d zt6_;PW+VwBDQDjq^R6B`>Mg7o_3j&AEvcA(jLn8lC1puwzUZL*arTq8XS;Rqt*8i# z*VvpS8ll@UET6&5(QzfS$x=5BG(Cr1Rny>AmnmEs(HpKU_}RPu zkL}h?;Cj!eG=>wy))$TMO~Hkvnw5xoEUs?$-FPGqhS zI+#VEn60`I>@%&K{d?1b7nQ}w!bzO&={je>p1&%gA9{Jr;&va95Eg^@RW#}fS1@P% zLPuIS2Fw_1aO9{ckn;i*u_p42l!cZ~8e-OS)WK72`jg*9%9ujBK27%+vDd+wv&qwr zPE1?0=jJKuewmuoMw)bH?zJ;blV{L=BB*?WQXdBTf$MM4u=p7PnL#|<9V3;Z~bX#;9>^B?Wo|475Zpu;| zZqfSa-AXSFYIOF)JF=BFgdzKG5|3npEUkKIe|PT=~$(N~;BJc%fm>VZwN$?f3`J1FfR@ znu!wA@l?h#+f|N9K?9^sI$~1vW)t_{nMKO&1@qfWZJq@esOOSd<4#QDf3+T}ARcpL zJgoP8l?|6xz6i&~Z(N?M)h;;>55dJI1!MG#+1aCV?T0@@i%2uCa%Wm|sOG%bJ<$%( z6r{|s-@MzfCongcZG8}Jox)C$wF7EI50)z0okU5}SW%jk5f!<5!xXT(J>~l^bbc}9 zgSJ5FOegHgpW_|^^jYI~i(;Q0wpc1!vz*#*l0SFZnXI-ATEDQ_G5iaMtHS<{&+7vIMlevIyM3RLxj!RO!R|Z0UYl3{SnmzQfV?SxLvK&kH2nyzI1)_4+H|Ng~XRo zO{P|(81CWOa@Qj;Nis;E6}7J{>X9nr~COI-8QK;ppgB%O+Q<8eK(Xw z(@aIDHS6D6Zzv3FqKf_Mr`u**x}JNTq*GB|c}7+PD$39&=2@cVTb*?R}E$YM*BH z;|$0!d~*5)*%I{UDoj&{4Z)jx)br0!_V(+H8HQb7FSBpQan&!cQbTDD3sdqWG+k{K zv;EM5*>4&hYkq4iA02A0lKfHa!|G*d&^*^zigbVYQDLO`i0(8XijzheF4@{OGS4;o z-rO$cGD|K+e)Eg4N@-_wBl2_7X~ENI_+x zGBPJJkpusNO0w8k`oa-RY}V!WPcNYLjgEAZJWZatXwPVaW*#tqysVgiC-RZ)3GgHR MUO~KE^n>sJ0rSuf{Qv*} literal 74234 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 diff --git a/serverless/pages/data-views.asciidoc b/serverless/pages/data-views.asciidoc index bfa31dce..3a0d6139 100644 --- a/serverless/pages/data-views.asciidoc +++ b/serverless/pages/data-views.asciidoc @@ -35,12 +35,11 @@ After you've loaded your data, follow these steps to create a {data-source}: // -. Open **Discover** then open the data view menu. +. Go to **{project-settings} β†’ {manage-app} β†’ {data-views-app}**. Alternatively, go to **Discover** and open the data view menu. + [role="screenshot"] image:images/discover-find-data-view.png[How to set the {data-source} in Discover] + -Alternatively, go to **{project-settings} β†’ {manage-app} β†’ {data-views-app}**. . Click **Create a {data-source}**. . Give your {data-source} a name. . Start typing in the **Index pattern** field, and Elastic looks for the names of From f9876c225db002ae9c8d4f9fb7c345f8e2000e34 Mon Sep 17 00:00:00 2001 From: George Wallace Date: Thu, 21 Nov 2024 12:14:00 -0700 Subject: [PATCH 8/8] Update welcome-to-serverless.asciidoc (#214) --- serverless/pages/welcome-to-serverless.asciidoc | 2 -- 1 file changed, 2 deletions(-) diff --git a/serverless/pages/welcome-to-serverless.asciidoc b/serverless/pages/welcome-to-serverless.asciidoc index 2d1f993d..b78f1b32 100644 --- a/serverless/pages/welcome-to-serverless.asciidoc +++ b/serverless/pages/welcome-to-serverless.asciidoc @@ -22,8 +22,6 @@ Elastic provides three serverless solutions available on {ecloud}: Serverless instances of the Elastic Stack that you create in {ecloud} are called **serverless projects**. -Elastic serverless products are currently in preview. https://www.elastic.co/blog/elastic-serverless-architecture[Learn more about serverless in our blog]. - [discrete] == Get started