From 504e7b3d1ca5481e5fdbeaca854b931c5367ab19 Mon Sep 17 00:00:00 2001 From: Jason Stirnaman Date: Thu, 8 May 2025 16:24:29 -0500 Subject: [PATCH 1/3] feat(dedicated): Admin UI: Add create table, revise create database and custom partitioning - Add Admin UI instructions for creating a table - Moves database and table instructions for custom partitioning to separate tab groups - Revise custom partitioning instructions for consistency. - Add descriptions and links to Management API ref --- .../cloud-dedicated/management/openapi.yml | 49 +- .../define-custom-partitions.md | 3 +- .../cloud-dedicated/admin/databases/create.md | 494 ++++++++---------- .../cloud-dedicated/admin/tables/create.md | 264 ++++++++-- .../define-custom-partitions.md | 195 +++++-- .../partition-templates.md | 69 ++- ...min-ui-create-custom-partitioned-table.png | Bin 0 -> 248983 bytes 7 files changed, 675 insertions(+), 399 deletions(-) create mode 100644 static/img/influxdb3/cloud-dedicated-admin-ui-create-custom-partitioned-table.png diff --git a/api-docs/influxdb3/cloud-dedicated/management/openapi.yml b/api-docs/influxdb3/cloud-dedicated/management/openapi.yml index 74868b46b..95bcfb27c 100644 --- a/api-docs/influxdb3/cloud-dedicated/management/openapi.yml +++ b/api-docs/influxdb3/cloud-dedicated/management/openapi.yml @@ -397,6 +397,26 @@ paths: post: operationId: CreateClusterDatabase summary: Create a database + description: | + Create a database for a cluster. + + The database name must be unique within the cluster. + + **Default maximum number of columns**: 250 + **Default maximum number of tables**: 500 + + The retention period is specified in nanoseconds. For example, to set a retention period of 1 hour, use `3600000000000`. + + InfluxDB Cloud Dedicated lets you define a [custom partitioning](/influxdb3/cloud-dedicated/admin/custom-partitions/) strategy for each database and table. + A _partition_ is a logical grouping of data stored in [Apache Parquet](https://parquet.apache.org/) + By default, data is partitioned by day, + but, depending on your schema and workload, customizing the partitioning + strategy can improve query performance. + + To use custom partitioning, you define a [partition template](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/). + If a table doesn't have a custom partition template, it inherits the database's template. + The partition template is set at the time of database creation and cannot be changed later. + For more information, see [Custom partitions](/influxdb3/cloud-dedicated/admin/custom-partitions/). tags: - Databases parameters: @@ -779,6 +799,18 @@ paths: post: operationId: CreateClusterDatabaseTable summary: Create a database table + description: | + Create a database table in a database. The database must already exist. With InfluxDB Cloud Dedicated, tables and measurements are synonymous. + + Typically, tables are created automatically on write using the measurement name + specified in line protocol written to InfluxDB. + However, to apply a [custom partition template](/influxdb3/cloud-dedicated/admin/custom-partitions/) + to a table, you must manually [create the table with custom partitioning](/influxdb3/cloud-dedicated/admin/tables/#create-a-table-with-custom-partitioning) before you write any data to it. + + Partitioning defaults to `%Y-%m-%d` (daily). + When a partition template is applied to a database, it becomes the default template + for all tables in that database, but can be overridden when creating a + table. tags: - Tables parameters: @@ -1185,6 +1217,14 @@ paths: get: operationId: GetDatabaseToken summary: Get a database token + description: | + Retrieve metadata details for a [database token](/influxdb3/cloud-dedicated/admin/tokens/database/). + + #### Store secure tokens in a secret store + + We recommend storing database tokens in a **secure secret store**. + + Token strings are viewable _only_ on token creation and aren't stored by InfluxDB; you can't recover a lost token. tags: - Database tokens parameters: @@ -1299,6 +1339,8 @@ paths: patch: operationId: UpdateDatabaseToken summary: Update a database token + description: | + Update the description and permissions of a [database token](/influxdb3/cloud-dedicated/admin/tokens/database/). tags: - Database tokens parameters: @@ -1317,7 +1359,6 @@ paths: - name: tokenId in: path description: The ID of the [database token](/influxdb3/cloud-dedicated/admin/tokens/database/) to update - required: true schema: $ref: '#/components/schemas/UuidV4' requestBody: @@ -1625,9 +1666,9 @@ components: description: | A template for [partitioning](/influxdb3/cloud-dedicated/admin/custom-partitions/) a cluster database. - Each template part is evaluated in sequence, concatinating the final - partition key from the output of each part, delimited by the partition - key delimiter `|`. + Each partition template part is evaluated in sequence. + The outputs from each part are concatenated with the + `|` delimiter to form the final partition key. For example, using the partition template below: diff --git a/content/influxdb3/cloud-dedicated/admin/custom-partitions/define-custom-partitions.md b/content/influxdb3/cloud-dedicated/admin/custom-partitions/define-custom-partitions.md index 6a8db4cae..9edb5b012 100644 --- a/content/influxdb3/cloud-dedicated/admin/custom-partitions/define-custom-partitions.md +++ b/content/influxdb3/cloud-dedicated/admin/custom-partitions/define-custom-partitions.md @@ -14,5 +14,6 @@ source: /shared/v3-distributed-admin-custom-partitions/define-custom-partitions. --- diff --git a/content/influxdb3/cloud-dedicated/admin/databases/create.md b/content/influxdb3/cloud-dedicated/admin/databases/create.md index 8f6b66334..2af42d58a 100644 --- a/content/influxdb3/cloud-dedicated/admin/databases/create.md +++ b/content/influxdb3/cloud-dedicated/admin/databases/create.md @@ -4,7 +4,7 @@ description: > Use the Admin UI, the [`influxctl database create` command](/influxdb3/cloud-dedicated/reference/cli/influxctl/database/create/), or the [Management HTTP API](/influxdb3/cloud-dedicated/api/management/) to create a new InfluxDB database in your InfluxDB Cloud Dedicated cluster. - Provide a database name and an optional retention period. + You can create a database with an optional retention period and custom partitioning. menu: influxdb3_cloud_dedicated: parent: Manage databases @@ -12,57 +12,19 @@ weight: 201 list_code_example: | ##### CLI - ```sh + ```bash influxctl database create \ --retention-period 30d \ - --max-tables 500 \ - --max-columns 250 \ DATABASE_NAME ``` ##### API - ```sh + ```bash curl \ --location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases" \ - --request POST \ - --header "Accept: application/json" \ - --header 'Content-Type: application/json' \ --header "Authorization: Bearer MANAGEMENT_TOKEN" \ - --data '{ - "name": "'DATABASE_NAME'", - "maxTables": 500, - "maxColumnsPerTable": 250, - "retentionPeriod": 2592000000000, - "partitionTemplate": [ - { - "type": "tag", - "value": "TAG_KEY_1" - }, - { - "type": "tag", - "value": "TAG_KEY_2" - }, - { - "type": "bucket", - "value": { - "tagName": "TAG_KEY_3", - "numberOfBuckets": 100 - } - }, - { - "type": "bucket", - "value": { - "tagName": "TAG_KEY_4", - "numberOfBuckets": 300 - } - }, - { - "type": "time", - "value": "%Y-%m-%d" - } - ] - }' + --json '{ "name": "DATABASE_NAME" }' ``` related: - /influxdb3/cloud-dedicated/reference/cli/influxctl/database/create/ @@ -72,6 +34,18 @@ related: Use the Admin UI, the [`influxctl` CLI](/influxdb3/cloud-dedicated/reference/cli/influxctl/), or the [Management HTTP API](/influxdb3/cloud-dedicated/api/management/) to create a database in your {{< product-name omit=" Clustered" >}} cluster. +You can create a database with an optional retention period and custom partitioning. + +- [Create a database](#create-a-database) +- [Create a database with custom partitioning](#create-a-database-with-custom-partitioning) +- [Partition template requirements and guidelines](#partition-template-requirements-and-guidelines) +- [Database attributes](#database-attributes) + - [Retention period syntax](#retention-period-syntax) + - [Database naming restrictions](#database-naming-restrictions) + - [InfluxQL DBRP naming convention](#influxql-dbrp-naming-convention) + - [Table and column limits](#table-and-column-limits) + +## Create a database {{< tabs-wrapper >}} {{% tabs %}} @@ -79,68 +53,121 @@ or the [Management HTTP API](/influxdb3/cloud-dedicated/api/management/) to crea [influxctl](#) [Management API](#) {{% /tabs %}} + {{% tab-content %}} -The InfluxDB Cloud Dedicated administrative UI includes a portal for creating -and managing databases. - -1. To access the {{< product-name >}} Admin UI, visit the following URL in your browser: - +1. Open the {{< product-name >}} Admin UI at
    https://console.influxdata.com
    
+ 2. Use the credentials provided by InfluxData to log into the Admin UI. If you don't have login credentials, [contact InfluxData support](https://support.influxdata.com). -3. In the cluster list, find the cluster you want to create a database in. You + +3. In the cluster list, find and click the cluster you want to create a database in. You can sort on column headers or use the **Search** field to find a specific cluster. -4. Click the row for the cluster that you want to create a database in. -5. Click the **New Database** button in the upper right corner of the cluster details page. + +4. Click the **New Database** button in the upper right corner of the cluster details page. The **Create Database** dialog displays. - Create database dialog -6. In the **Create Database** dialog, provide the following information: + Create database dialog + +5. In the **Create Database** dialog, provide the following information: - **Database name**: The name of the database to create. See [Database naming restrictions](#database-naming-restrictions). - - **Retention period**: The retention period for the database. See [Retention period syntax (influxctl CLI)](#retention-period-syntax-influxctl-cli). + - **Retention period**: The retention period for the database. See [Retention period syntax](#retention-period-syntax). - **Max tables**: The maximum number of tables (measurements) allowed in the database. Default is 500. - **Max columns per table**: The maximum number of columns allowed in each table (measurement). Default is 250. -7. Click the **Create Database** button to create the database. + +6. Click the **Create Database** button to create the database. The new database displays in the list of databases for the cluster. {{% /tab-content %}} + {{% tab-content %}} -Use the [`influxctl database create` command](/influxdb3/cloud-dedicated/reference/cli/influxctl/database/create/) -to create a database in your {{< product-name omit=" Clustered" >}} cluster. +1. If you haven't already, [download and install the `influxctl` CLI](/influxdb3/cloud-dedicated/reference/cli/influxctl/#download-and-install-influxctl), and then [configure an `influxctl` connection profile](/influxdb3/cloud-dedicated/reference/cli/influxctl/#configure-connection-profiles) for your cluster. -1. If you haven't already, [download and install the `influxctl` CLI](/influxdb3/cloud-dedicated/reference/cli/influxctl/#download-and-install-influxctl), and then [configure an `influxctl` connection profile](/influxdb3/cloud-dedicated/reference/cli/influxctl/#configure-connection-profiles) for your cluster. +2. Run the `influxctl database create` command: -2. In your terminal, run the `influxctl database create` command and provide the following: - - - _Optional_: Database [retention period](/influxdb3/cloud-dedicated/admin/databases/#retention-periods) - Default is `infinite` (`0`). - - _Optional_: Database table (measurement) limit. Default is `500`. - - _Optional_: Database column limit. Default is `250`. - - _Optional_: [InfluxDB tags](/influxdb3/cloud-dedicated/reference/glossary/#tag) - to use in the partition template. Limit is 7 total tags or tag buckets. - - _Optional_: [InfluxDB tag buckets](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#tag-bucket-part-templates) - to use in the partition template. Limit is 7 total tags or tag buckets. - - _Optional_: A [Rust strftime date and time string](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#time-part-templates) - that specifies the time format in the partition template and determines - the time interval to partition by. Default is `%Y-%m-%d`. - - Database name _(see [Database naming restrictions](#database-naming-restrictions))_ - - > [!Note] - > _{{< product-name >}} supports up to 7 total tags or tag buckets in the partition template._ - - - - -{{% code-placeholders "DATABASE_NAME|30d|500|100|300|(TAG_KEY(_\d)?)" %}} - -```sh +{{% code-placeholders "DATABASE_NAME|30d" %}} +```bash +influxctl database create \ + --retention-period 30d \ + DATABASE_NAME +``` +{{% /code-placeholders %}} + +Replace {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}} with your desired database name. +{{% /tab-content %}} + +{{% tab-content %}} + +_This example uses [cURL](https://curl.se/) to send a Management HTTP API request, but you can use any HTTP client._ + +1. If you haven't already, follow the instructions to [install cURL](https://everything.curl.dev/install/index.html) for your system. +2. In your terminal, use cURL to send a request to the following {{% product-name %}} endpoint: + +{{% api-endpoint method="POST" +endpoint="https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases" +api-ref="/influxdb3/cloud-dedicated/api/management/#operation/CreateClusterDatabase" %}} + +{{% code-placeholders "ACCOUNT_ID|CLUSTER_ID|MANAGEMENT_TOKEN|DATABASE_NAME" %}} +```bash +curl \ + --location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases" \ + --header "Authorization: Bearer MANAGEMENT_TOKEN" \ + --json '{ + "name": "DATABASE_NAME" + }' +``` +{{% /code-placeholders %}} + +Replace the following: + +- {{% code-placeholder-key %}}`ACCOUNT_ID`{{% /code-placeholder-key %}}: the [account](/influxdb3/cloud-dedicated/admin/account/) ID for the cluster _(list details via the [Admin UI](/influxdb3/cloud-dedicated/admin/clusters/list/) or [CLI](/influxdb3/cloud-dedicated/admin/clusters/list/#detailed-output-in-json))_ +- {{% code-placeholder-key %}}`CLUSTER_ID`{{% /code-placeholder-key %}}: the [cluster](/influxdb3/cloud-dedicated/admin/clusters/) ID _(list details via the [Admin UI](/influxdb3/cloud-dedicated/admin/clusters/list/) or [CLI](/influxdb3/cloud-dedicated/admin/clusters/list/#detailed-output-in-json))_. +- {{% code-placeholder-key %}}`MANAGEMENT_TOKEN`{{% /code-placeholder-key %}}: a valid [management token](/influxdb3/cloud-dedicated/admin/tokens/management/) for your {{% product-name %}} cluster +- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: name for the new database +{{% /tab-content %}} +{{< /tabs-wrapper >}} + +Partitioning defaults to `%Y-%m-%d` (daily). + +## Create a database with custom partitioning + +{{< product-name >}} lets you define a [custom partitioning](/influxdb3/cloud-dedicated/admin/custom-partitions/) strategy for each database and table. +A _partition_ is a logical grouping of data stored in [Apache Parquet](https://parquet.apache.org/) +By default, data is partitioned by day, +but, depending on your schema and workload, customizing the partitioning +strategy can improve query performance. + +To use custom partitioning, you define a [partition template](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/). +If a table doesn't have a custom partition template, it inherits the database's template. + +{{< tabs-wrapper >}} +{{% tabs %}} +[influxctl](#) +[Management API](#) +{{% /tabs %}} +{{% tab-content %}} + +1. If you haven't already, [download and install the `influxctl` CLI](/influxdb3/cloud-dedicated/get-started/setup/#download-install-and-configure-the-influxctl-cli). +2. Use the following `influxctl database create` command flags to specify the +[partition template parts](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#tag-part-templates): + + - `--template-timeformat`: A [Rust strftime date and time](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#time-part-templates) + string that specifies the time part in the partition template and determines + the time interval to partition by. + - `--template-tag`: An [InfluxDB tag] + to use in the partition template. + - `--template-tag-bucket`: An [InfluxDB tag](/influxdb3/cloud-dedicated/reference/glossary/#tag) + and number of "buckets" to group tag values into. + Provide the tag key and the number of buckets to bucket tag values into + separated by a comma: `tagKey,N`. + +{{% code-placeholders "DATABASE_NAME|30d|(TAG_KEY(_\d)?)|100|300" %}} +```bash influxctl database create \ --retention-period 30d \ - --max-tables 500 \ - --max-columns 250 \ --template-tag TAG_KEY_1 \ --template-tag TAG_KEY_2 \ --template-tag-bucket TAG_KEY_3,100 \ @@ -148,233 +175,128 @@ influxctl database create \ --template-timeformat '%Y-%m-%d' \ DATABASE_NAME ``` - {{% /code-placeholders %}} -Replace the following in your command: +Replace the following: -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: your {{% product-name %}} [database](/influxdb3/cloud-dedicated/admin/databases/) -- {{% code-placeholder-key %}}`TAG_KEY_1`, `TAG_KEY_2`, `TAG_KEY_3`, and `TAG_KEY_4`{{% /code-placeholder-key %}}: [tag](/influxdb3/cloud-dedicated/reference/glossary/#tag) keys from your data - -## Database attributes - -- [Database attributes](#database-attributes) - - [Retention period syntax (influxctl CLI)](#retention-period-syntax-influxctl-cli) - - [Custom partitioning (influxctl CLI)](#custom-partitioning-influxctl-cli) -- [Database attributes](#database-attributes-1) - - [Retention period syntax (Management API)](#retention-period-syntax-management-api) - - [Custom partitioning (Management API)](#custom-partitioning-management-api) - - [Database naming restrictions](#database-naming-restrictions) - - [InfluxQL DBRP naming convention](#influxql-dbrp-naming-convention) - - [Table and column limits](#table-and-column-limits) - -### Retention period syntax (influxctl CLI) - -Use the `--retention-period` flag to define the -[retention period](/influxdb3/cloud-dedicated/admin/databases/#retention-periods) -for the database. -The retention period value is a time duration value made up of a numeric value -plus a duration unit. -For example, `30d` means 30 days. -A zero duration (`0d`) retention period is infinite and data won't expire. -The retention period value cannot be negative or contain whitespace. - -{{< flex >}} -{{% flex-content "half" %}} - -#### Valid durations units include - -- **m**: minute -- **h**: hour -- **d**: day -- **w**: week -- **mo**: month -- **y**: year - -{{% /flex-content %}} -{{% flex-content "half" %}} - -#### Example retention period values - -- `0d`: infinite/none -- `3d`: 3 days -- `6w`: 6 weeks -- `1mo`: 1 month (30 days) -- `1y`: 1 year -- `30d30d`: 60 days -- `2.5d`: 60 hours - -{{% /flex-content %}} -{{< /flex >}} - -### Custom partitioning (influxctl CLI) - -{{< product-name >}} lets you define a custom partitioning strategy for each database. -A _partition_ is a logical grouping of data stored in [Apache Parquet](https://parquet.apache.org/) -format in the InfluxDB 3 storage engine. By default, data is partitioned by day, -but, depending on your schema and workload, customizing the partitioning -strategy can improve query performance. - -Use the `--template-tag`, `--template-tag-bucket`, and `--template-timeformat` -flags to define partition template parts used to generate partition keys for the database. - -For more information, see [Manage data partitioning](/influxdb3/cloud-dedicated/admin/custom-partitions/). - - +- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the database to create +- {{% code-placeholder-key %}}`TAG_KEY_1`, `TAG_KEY_2`{{% /code-placeholder-key %}}: [tag](/influxdb3/cloud-dedicated/reference/glossary/#tag) keys to partition by +- {{% code-placeholder-key %}}`TAG_KEY_3`, `TAG_KEY_4`{{% /code-placeholder-key %}}: [tag](/influxdb3/cloud-dedicated/reference/glossary/#tag) keys for bucketed partitioning +- {{% code-placeholder-key %}}`100`, `300`{{% /code-placeholder-key %}}: number of buckets to group tag values into +- {{% code-placeholder-key %}}`'%Y-%m-%d'`{{% /code-placeholder-key %}}: [Rust strftime date and time](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#time-part-templates) string that specifies the time part in the partition template {{% /tab-content %}} {{% tab-content %}} - + _This example uses [cURL](https://curl.se/) to send a Management HTTP API request, but you can use any HTTP client._ 1. If you haven't already, follow the instructions to [install cURL](https://everything.curl.dev/install/index.html) for your system. 2. In your terminal, use cURL to send a request to the following {{% product-name %}} endpoint: - {{% api-endpoint endpoint="https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases" method="post" api-ref="/influxdb3/cloud-dedicated/api/management/#operation/CreateClusterDatabase" %}} +{{% api-endpoint method="POST" +endpoint="https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases" +api-ref="/influxdb3/cloud-dedicated/api/management/#operation/CreateClusterDatabase" %}} - In the URL, provide the following credentials: +In the request body, include the `partitionTemplate` property and specify the [partition template parts](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#tag-part-templates) as an array of objects--for example: - - `ACCOUNT_ID`: The ID of the [account](/influxdb3/cloud-dedicated/get-started/setup/#request-an-influxdb-cloud-dedicated-cluster) that the cluster belongs to _(see how to [list cluster details](/influxdb3/cloud-dedicated/admin/clusters/list/#detailed-output-in-json))_. - - `CLUSTER_ID`: The ID of the [cluster](/influxdb3/cloud-dedicated/get-started/setup/#request-an-influxdb-cloud-dedicated-cluster) that you want to manage _(see how to [list cluster details](/influxdb3/cloud-dedicated/admin/clusters/list/#detailed-output-in-json))_. - - Provide the following request headers: - - - `Accept: application/json` to ensure the response body is JSON content - - `Content-Type: application/json` to indicate the request body is JSON content - - `Authorization: Bearer` and a [Management API token](/influxdb3/cloud-dedicated/admin/tokens/management/) for your cluster _(see how to [create a management token](/influxdb3/cloud-dedicated/admin/tokens/management/) for Management API requests)_. - - In the request body, provide the following parameters: - - - _Optional:_ Database [retention period](/influxdb3/cloud-dedicated/admin/databases/#retention-periods) in nanoseconds. - Default is `0` (infinite). - - _Optional_: Database table (measurement) limit. Default is `500`. - - _Optional_: Database column limit. Default is `250`. - - _Optional_: [InfluxDB tags](/influxdb3/cloud-dedicated/reference/glossary/#tag) - to use in the partition template. Limit is 7 total tags or tag buckets. - - _Optional_: [InfluxDB tag buckets](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#tag-bucket-part-templates) - to use in the partition template. Limit is 7 total tags or tag buckets. - - _Optional_: A supported [Rust strftime date and time string](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#time-part-templates) - that specifies the time format in the partition template and determines - the time interval to partition by. Default is `%Y-%m-%d`. - - Database name _(see [Database naming restrictions](#database-naming-restrictions))_. - - > [!Note] - > _{{< product-name >}} supports up to 7 total tags or tag buckets in the partition template._ - -The following example shows how to use the Management API to create a database with custom partitioning: - - - - -{{% code-placeholders "DATABASE_NAME|2592000000000|500|100|300|250|ACCOUNT_ID|CLUSTER_ID|MANAGEMENT_TOKEN|(TAG_KEY(_\d)?)" %}} - -```sh +{{% code-placeholders "ACCOUNT_ID|CLUSTER_ID|DATABASE_NAME|MANAGEMENT_TOKEN|(TAG_KEY(_\d)?)|100|300|%Y-%m-%d" %}} +```bash curl \ - --location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases" \ - --request POST \ - --header "Accept: application/json" \ - --header 'Content-Type: application/json' \ - --header "Authorization: Bearer MANAGEMENT_TOKEN" \ - --data '{ - "name": "'DATABASE_NAME'", - "maxTables": 500, - "maxColumnsPerTable": 250, - "retentionPeriod": 2592000000000, - "partitionTemplate": [ - { - "type": "tag", - "value": "TAG_KEY_1" - }, - { - "type": "tag", - "value": "TAG_KEY_2" - }, - { - "type": "bucket", - "value": { - "tagName": "TAG_KEY_3", - "numberOfBuckets": 100 - } - }, - { - "type": "bucket", - "value": { - "tagName": "TAG_KEY_4", - "numberOfBuckets": 300 - } - }, - { - "type": "time", - "value": "%Y-%m-%d" - } - ] - }' + --location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases" \ + --header "Authorization: Bearer MANAGEMENT_TOKEN" \ + --json '{ + "name": "DATABASE_NAME", + "maxTables": 500, + "maxColumnsPerTable": 250, + "retentionPeriod": 2592000000000, + "partitionTemplate": [ + { "type": "tag", "value": "TAG_KEY_1" }, + { "type": "tag", "value": "TAG_KEY_2" }, + { "type": "bucket", "value": { "tagName": "TAG_KEY_3", "numberOfBuckets": 100 } }, + { "type": "bucket", "value": { "tagName": "TAG_KEY_4", "numberOfBuckets": 300 } }, + { "type": "time", "value": "%Y-%m-%d" } + ] + }' ``` - {{% /code-placeholders %}} -Replace the following in your request: +Replace the following: -- {{% code-placeholder-key %}}`ACCOUNT_ID`{{% /code-placeholder-key %}}: the ID of the {{% product-name %}} [account](/influxdb3/cloud-dedicated/get-started/setup/#request-an-influxdb-cloud-dedicated-cluster) to create the database for -- {{% code-placeholder-key %}}`CLUSTER_ID`{{% /code-placeholder-key %}}: the ID of the {{% product-name %}} [cluster](/influxdb3/cloud-dedicated/get-started/setup/#request-an-influxdb-cloud-dedicated-cluster) to create the database for -- {{% code-placeholder-key %}}`MANAGEMENT TOKEN`{{% /code-placeholder-key %}}: a [management token](/influxdb3/cloud-dedicated/admin/tokens/management/) for your {{% product-name %}} cluster -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: your {{% product-name %}} [database](/influxdb3/cloud-dedicated/admin/databases/) -- {{% code-placeholder-key %}}`TAG_KEY_1`, `TAG_KEY_2`, `TAG_KEY_3`, and `TAG_KEY_4`{{% /code-placeholder-key %}}: [tag](/influxdb3/cloud-dedicated/reference/glossary/#tag) keys from your data +- {{% code-placeholder-key %}}`ACCOUNT_ID`{{% /code-placeholder-key %}}: the [account](/influxdb3/cloud-dedicated/admin/account/) ID for the cluster _(list details via the [Admin UI](/influxdb3/cloud-dedicated/admin/clusters/list/) or [CLI](/influxdb3/cloud-dedicated/admin/clusters/list/#detailed-output-in-json))_ +- {{% code-placeholder-key %}}`CLUSTER_ID`{{% /code-placeholder-key %}}: the [cluster](/influxdb3/cloud-dedicated/admin/clusters/) ID _(list details via the [Admin UI](/influxdb3/cloud-dedicated/admin/clusters/list/) or [CLI](/influxdb3/cloud-dedicated/admin/clusters/list/#detailed-output-in-json))_. +- {{% code-placeholder-key %}}`MANAGEMENT_TOKEN`{{% /code-placeholder-key %}}: a valid [management token](/influxdb3/cloud-dedicated/admin/tokens/management/) for your {{% product-name %}} cluster +- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: name for the new database +- {{% code-placeholder-key %}}`TAG_KEY_1`, `TAG_KEY_2`{{% /code-placeholder-key %}}: [tag](/influxdb3/cloud-dedicated/reference/glossary/#tag) keys to partition by +- {{% code-placeholder-key %}}`TAG_KEY_3`, `TAG_KEY_4`{{% /code-placeholder-key %}}: [tag](/influxdb3/cloud-dedicated/reference/glossary/#tag) keys for bucketed partitioning +- {{% code-placeholder-key %}}`100`, `300`{{% /code-placeholder-key %}}: number of buckets to group tag values into +- {{% code-placeholder-key %}}`'%Y-%m-%d'`{{% /code-placeholder-key %}}: [Rust strftime date and time](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#time-part-templates) string that specifies the time part in the partition template + +{{% /tab-content %}} +{{< /tabs-wrapper >}} + +## Partition template requirements and guidelines + +Always specify 1 time part in your template. +A template has a maximum of 8 parts: 1 time part and up to 7 total tag and tag bucket parts. + +For more information about partition template requirements and restrictions, see [Partition templates](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/). + +> [!Warning] +> #### Partition templates can only be applied on create +> +> You can only apply a partition template when creating a database. +> You can't update a partition template on an existing database. ## Database attributes -- [Database attributes](#database-attributes) - - [Retention period syntax (influxctl CLI)](#retention-period-syntax-influxctl-cli) - - [Custom partitioning (influxctl CLI)](#custom-partitioning-influxctl-cli) -- [Database attributes](#database-attributes-1) - - [Retention period syntax (Management API)](#retention-period-syntax-management-api) - - [Custom partitioning (Management API)](#custom-partitioning-management-api) - - [Database naming restrictions](#database-naming-restrictions) - - [InfluxQL DBRP naming convention](#influxql-dbrp-naming-convention) - - [Table and column limits](#table-and-column-limits) +### Retention period syntax -### Retention period syntax (Management API) +Specify how long InfluxDB retains data before automatically removing it. -Use the `retentionPeriod` property to specify the -[retention period](/influxdb3/cloud-dedicated/admin/databases/#retention-periods) -for the database. -The retention period value is an integer (``) that represents the number of nanoseconds. -For example, `2592000000000` means 30 days. -A zero (`0`) retention period is infinite and data won't expire. -The retention period value cannot be negative or contain whitespace. +{{< tabs-wrapper >}} +{{% tabs %}} +[influxctl CLI](#) +[Management API](#) +{{% /tabs %}} -#### Example retention period values +{{% tab-content %}} +Use the `--retention-period` flag to define the retention period as a duration. +For example, `30d` means 30 days. A zero duration (`0d`) keeps data indefinitely. +{{< flex >}} +{{% flex-content "half" %}} +#### Valid duration units +- **m**: minute +- **h**: hour +- **d**: day +- **w**: week +- **mo**: month +- **y**: year +{{% /flex-content %}} + +{{% flex-content "half" %}} +#### Example values +- `0d`: infinite/none +- `3d`: 3 days +- `6w`: 6 weeks +- `1mo`: 1 month (30 days) +- `1y`: 1 year +{{% /flex-content %}} +{{< /flex >}} +{{% /tab-content %}} + +{{% tab-content %}} +Use the `retentionPeriod` property to specify the retention period as nanoseconds. +For example, `2592000000000` means 30 days. A value of `0` keeps data indefinitely. + +#### Example values - `0`: infinite/none - `259200000000000`: 3 days - `2592000000000000`: 30 days - `31536000000000000`: 1 standard year (365 days) - -### Custom partitioning (Management API) - -{{< product-name >}} lets you define a custom partitioning strategy for each database. -A _partition_ is a logical grouping of data stored in [Apache Parquet](https://parquet.apache.org/) -format in the InfluxDB 3 storage engine. By default, data is partitioned by day, -but, depending on your schema and workload, customizing the partitioning -strategy can improve query performance. - -Use the [`partitionTemplate`](/influxdb3/cloud-dedicated/api/management/#operation/CreateClusterDatabase) -property to define an array of partition template parts used to generate -partition keys for the database. - -For more information, see [Manage data partitioning](/influxdb3/cloud-dedicated/admin/custom-partitions/). - - {{% /tab-content %}} {{< /tabs-wrapper >}} -> [!Warning] -> -> #### Partition templates can only be applied on create -> -> You can only apply a partition template when creating a database. -> You can't update a partition template on an existing database. - ### Database naming restrictions Database names must adhere to the following naming restrictions: @@ -392,11 +314,9 @@ and [retention policies](/influxdb/v1/concepts/glossary/#retention-policy-rp). In {{% product-name %}}, databases and retention policies have been merged into _databases_, where databases have a retention period, but retention policies are no longer part of the data model. -Because InfluxQL uses the 1.x data model, a database must be mapped to a v1 -database and retention policy (DBRP) to be queryable with InfluxQL. **When naming a database that you want to query with InfluxQL**, use the following -naming convention to automatically map v1 DBRP combinations to an {{% product-name %}} database: +naming convention: ```text database_name/retention_policy_name @@ -434,15 +354,13 @@ cluster in the following ways: {{< expand-wrapper >}} {{% expand "**May improve query performance** View more info" %}} - Schemas with many measurements that contain [focused sets of tags and fields](/influxdb3/cloud-dedicated/write-data/best-practices/schema-design/#design-for-performance) can make it easier for the query engine to identify what partitions contain the queried data, resulting in better query performance. - {{% /expand %}} -{{% expand "**More PUTs into object storage** View more info" %}} +{{% expand "**More PUTs into object storage** View more info" %}} By default, {{< product-name >}} partitions data by measurement and time range and stores each partition as a Parquet file in your cluster's object store. By increasing the number of measurements @@ -450,16 +368,14 @@ file in your cluster's object store. By increasing the number of measurements more `PUT` requests into your object store as InfluxDB creates more partitions. Each `PUT` request incurs a monetary cost and will increase the operating cost of your cluster. - {{% /expand %}} -{{% expand "**More work for the compactor** View more info" %}} +{{% expand "**More work for the compactor** View more info" %}} To optimize storage over time, your {{< product-name omit=" Clustered" >}} cluster contains a compactor that routinely compacts Parquet files in object storage. With more tables and partitions to compact, the compactor may need to be scaled (either vertically or horizontally) to keep up with demand, adding to the operating cost of your cluster. - {{% /expand %}} {{< /expand-wrapper >}} @@ -473,7 +389,6 @@ cluster in the following ways: {{< expand-wrapper >}} {{% expand "May adversely affect query performance" %}} - At query time, the InfluxDB query engine identifies what table contains the queried data and then evaluates each row in the table to match the conditions of the query. The more columns that are in each row, the longer it takes to evaluate each row. @@ -481,6 +396,5 @@ The more columns that are in each row, the longer it takes to evaluate each row. Through performance testing, InfluxData has identified 250 columns as the threshold beyond which query performance may be affected (depending on the shape of and data types in your schema). - {{% /expand %}} -{{< /expand-wrapper >}} +{{< /expand-wrapper >}} \ No newline at end of file diff --git a/content/influxdb3/cloud-dedicated/admin/tables/create.md b/content/influxdb3/cloud-dedicated/admin/tables/create.md index 120ec35ca..4d15fdf71 100644 --- a/content/influxdb3/cloud-dedicated/admin/tables/create.md +++ b/content/influxdb3/cloud-dedicated/admin/tables/create.md @@ -1,17 +1,28 @@ --- title: Create a table description: > - Use the Admin UI or the [`influxctl table create` command](/influxdb3/cloud-dedicated/reference/cli/influxctl/table/create/) - to create a new table in a specified database your InfluxDB cluster. - Provide the database name and a table name. + Use the Admin UI, the [`influxctl table create` command](/influxdb3/cloud-dedicated/reference/cli/influxctl/table/create/), or the [Management HTTP API](/influxdb3/cloud-dedicated/api/management/) + for {{< product-name >}} to create a new table in a specified database your InfluxDB cluster. + Create a table with the same partitioning as the database or with a custom partition template. menu: influxdb3_cloud_dedicated: parent: Manage tables weight: 201 list_code_example: | - ```sh + + ##### CLI + ```bash influxctl table create ``` + + + ##### API + ```bash + curl \ + --location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases/DATABASE_NAME/tables/" \ + --header "Authorization: Bearer MANAGEMENT_TOKEN" \ + --json '{ "name": "TABLE_NAME" }' + ``` related: - /influxdb3/cloud-dedicated/reference/cli/influxctl/table/create/ - /influxdb3/cloud-dedicated/admin/custom-partitions/ @@ -25,26 +36,165 @@ With {{< product-name >}}, tables and measurements are synonymous. Typically, tables are created automatically on write using the measurement name specified in line protocol written to InfluxDB. However, to apply a [custom partition template](/influxdb3/cloud-dedicated/admin/custom-partitions/) -to a table, you must manually create the table before you write any data to it. +to a table, you must manually [create the table with custom partitioning](#create-a-table-with-custom-partitioning) before you write any data to it. -1. If you haven't already, [download and install the `influxctl` CLI](/influxdb3/cloud-dedicated/reference/cli/influxctl/#download-and-install-influxctl). -2. Run the `influxctl table create` command and provide the following: +Partitioning defaults to `%Y-%m-%d` (daily). +When a partition template is applied to a database, it becomes the default template +for all tables in that database, but can be overridden when creating a +table. - - _Optional_: [InfluxDB tags](/influxdb3/cloud-dedicated/reference/glossary/#tag) - to use in the partition template - - _Optional_: [InfluxDB tag buckets](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#tag-bucket-part-templates) - to use in the partition template - - _Optional_: A supported [Rust strftime date and time string](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#time-part-templates) - that specifies the time format in the partition template and determines - the time interval to partition by _(default is `%Y-%m-%d`)_ - - The name of the database to create the table in - - The name of the table to create +- [Create a table](#create-a-table) +- [Create a table with custom partitioning](#create-a-table-with-custom-partitioning) +- [Partition template requirements and guidelines](#partition-template-requirements-and-guidelines) - > [!Note] - > _{{< product-name >}} supports up to 7 total tags or tag buckets in the partition template._ +## Create a table + +{{< tabs-wrapper >}} +{{% tabs %}} +[Admin UI](#) +[influxctl](#) +[Management API](#) +{{% /tabs %}} +{{% tab-content %}} + +The InfluxDB Cloud Dedicated administrative UI includes a portal for creating +and managing tables. + +1. To access the {{< product-name >}} Admin UI, visit the following URL in your browser: + +
+   https://console.influxdata.com
+   
+2. Use the credentials provided by InfluxData to log into the Admin UI. + If you don't have login credentials, [contact InfluxData support](https://support.influxdata.com). +3. In the cluster list, find and click the cluster you want to create a database in. You + can sort on column headers or use the **Search** field to find a specific cluster. +4. In the database list, find and click the database you want to create a table in. You + can sort on column headers or use the **Search** field to find a specific database. +4. Click the **New Table** button above the table list. + The **Create table** dialog displays. +5. In the **Create table** dialog, provide a **Table name**. +6. Toggle **Use default partitioning** to **On** +7. Click the **Create Table** button. +{{% /tab-content %}} + +{{% tab-content %}} + +1. If you haven't already, [download and install the `influxctl` CLI](/influxdb3/cloud-dedicated/reference/cli/influxctl/#download-and-install-influxctl). +2. Run the `influxctl table create` command: {{% code-placeholders "(DATABASE|TABLE)_NAME" %}} -```sh +```bash +# Create a table with the same partitioning as the database +influxctl table create \ + DATABASE_NAME \ + TABLE_NAME +``` +{{% /code-placeholders %}} + +Replace: +- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the database to create the table in +- {{% code-placeholder-key %}}`TABLE_NAME`{{% /code-placeholder-key %}}: the name for your new table +{{% /tab-content %}} + +{{% tab-content %}} + +_This example uses [cURL](https://curl.se/) to send a Management HTTP API request, but you can use any HTTP client._ + +1. If you haven't already, follow the instructions to [install cURL](https://everything.curl.dev/install/index.html) for your system. +2. In your terminal, use cURL to send a request to the following {{% product-name %}} endpoint: + +{{% api-endpoint method="POST" +endpoint="https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases/DATABASE_NAME/tables" +api-ref="/influxdb3/cloud-dedicated/api/management/#operation/CreateClusterDatabaseTable" %}} + +{{% code-placeholders "ACCOUNT_ID|CLUSTER_ID|DATABASE_NAME|TABLE_NAME|MANAGEMENT_TOKEN" %}} +```bash +# Create a table with the same partitioning as the database +curl \ + --location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases/DATABASE_NAME/tables" \ + --request POST \ + --header "Authorization: Bearer MANAGEMENT_TOKEN" \ + --json '{ + "name": "TABLE_NAME" + }' +``` +{{% /code-placeholders %}} + +Replace the following: + +- {{% code-placeholder-key %}}`ACCOUNT_ID`{{% /code-placeholder-key %}}: the account ID for the cluster +- {{% code-placeholder-key %}}`CLUSTER_ID`{{% /code-placeholder-key %}}: the cluster ID +- {{% code-placeholder-key %}}`MANAGEMENT_TOKEN`{{% /code-placeholder-key %}}: a valid management token +- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the database to create the table in +- {{% code-placeholder-key %}}`TABLE_NAME`{{% /code-placeholder-key %}}: the name for your new table +{{% /tab-content %}} +{{< /tabs-wrapper >}} + +## Create a table with custom partitioning + +{{< product-name >}} lets you define a [custom partitioning](/influxdb3/cloud-dedicated/admin/custom-partitions/) strategy for each database and table. +A _partition_ is a logical grouping of data stored in [Apache Parquet](https://parquet.apache.org/) +By default, data is partitioned by day, +but, depending on your schema and workload, customizing the partitioning +strategy can improve query performance. + +To use custom partitioning, you define a [partition template](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/). +If a table doesn't have a custom partition template, it inherits the database's template. + +{{< tabs-wrapper >}} +{{% tabs %}} +[Admin UI](#) +[influxctl](#) +[Management API](#) +{{% /tabs %}} +{{% tab-content %}} + +1. To access the {{< product-name >}} Admin UI, visit the following URL in your browser: + +
+   https://console.influxdata.com
+   
+2. Use the credentials provided by InfluxData to log into the Admin UI. + If you don't have login credentials, [contact InfluxData support](https://support.influxdata.com). +3. In the cluster list, find and click the cluster you want to create a database in. You + can sort on column headers or use the **Search** field to find a specific cluster. +4. In the database list, find and click the database you want to create a table in. You + can sort on column headers or use the **Search** field to find a specific database. +4. Click the **New Table** button above the table list. + The **Create table** dialog displays. + Create table dialog +5. In the **Create table** dialog, provide a **Table name**. +6. Make sure the **Use default partitioning** toggle is set to **Off** +7. Provide the following: + + - **Custom partition template time format**: The time part for partitioning data. + - _Optional_: **Custom partition template tag parts**: The tag parts for partitioning data. + - _Optional_: **Custom partition template tag bucket parts**: The tag bucket parts for partitioning data. +8. _Optional_: To add more parts to the partition template, click the **Add Tag** button. +9. Click the **Create Table** button to create the table. + The new table displays in the list of tables for the cluster. +{{% /tab-content %}} + +{{% tab-content %}} + +1. If you haven't already, [download and install the `influxctl` CLI](/influxdb3/cloud-dedicated/get-started/setup/#download-install-and-configure-the-influxctl-cli). +2. Use the following `influxctl table create` command flags to specify the +[partition template parts](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#tag-part-templates): + + - `--template-timeformat`: A [Rust strftime date and time](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#time-part-templates) + string that specifies the time part in the partition template and determines + the time interval to partition by. + - `--template-tag`: An [InfluxDB tag] + to use in the partition template. + - `--template-tag-bucket`: An [InfluxDB tag](/influxdb3/cloud-dedicated/reference/glossary/#tag) + and number of "buckets" to group tag values into. + Provide the tag key and the number of buckets to bucket tag values into + separated by a comma: `tagKey,N`. + +{{% code-placeholders "DATABASE_NAME|30d|(TAG_KEY(_\d)?)|100|300" %}} +```bash +# Create a table with custom partitioning influxctl table create \ --template-tag tag1 \ --template-tag tag2 \ @@ -56,22 +206,72 @@ influxctl table create \ ``` {{% /code-placeholders %}} -### Custom partitioning +Replace the following: -{{< product-name >}} lets you define a custom partitioning strategy for each table. -A _partition_ is a logical grouping of data stored in [Apache Parquet](https://parquet.apache.org/) -format in the InfluxDB 3 storage engine. By default, data is partitioned by day, -but, depending on your schema and workload, customizing the partitioning -strategy can improve query performance. +- {{% code-placeholder-key %}}`TAG_KEY_1`, `TAG_KEY_2`{{% /code-placeholder-key %}}: [tag](/influxdb3/cloud-dedicated/reference/glossary/#tag) keys to partition by +- {{% code-placeholder-key %}}`TAG_KEY_3`, `TAG_KEY_4`{{% /code-placeholder-key %}}: [tag](/influxdb3/cloud-dedicated/reference/glossary/#tag) keys for bucketed partitioning +- {{% code-placeholder-key %}}`100`, `300`{{% /code-placeholder-key %}}: number of buckets to group tag values into +- {{% code-placeholder-key %}}`'%Y-%m-%d'`{{% /code-placeholder-key %}}: [Rust strftime date and time](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#time-part-templates) string that specifies the time part in the partition template +- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the [database](/influxdb3/cloud-dedicated/admin/databases/) to create the table in +- {{% code-placeholder-key %}}`TABLE_NAME`{{% /code-placeholder-key %}}: the name you want for the new table +{{% /tab-content %}} -Use the `--template-tag`, `--template-tag-bucket`, and `--template-timeformat` -flags to define partition template parts used to generate partition keys for the table. -If no template flags are provided, the table uses the partition template of the -target database. -For more information, see [Manage data partitioning](/influxdb3/cloud-dedicated/admin/custom-partitions/). +{{% tab-content %}} + +_This example uses [cURL](https://curl.se/) to send a Management HTTP API request, but you can use any HTTP client._ + +1. If you haven't already, follow the instructions to [install cURL](https://everything.curl.dev/install/index.html) for your system. +2. In your terminal, use cURL to send a request to the following {{% product-name %}} endpoint: + +{{% api-endpoint method="POST" +endpoint="https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases/DATABASE_NAME/tables" +api-ref="/influxdb3/cloud-dedicated/api/management/#operation/CreateClusterDatabaseTable" %}} + +In the request body, include the `partitionTemplate` property and specify the [partition template parts](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#tag-part-templates) as an array of objects--for example: + +{{% code-placeholders "ACCOUNT_ID|CLUSTER_ID|DATABASE_NAME|MANAGEMENT_TOKEN|TABLE_NAME|(TAG_KEY(_\d)?)|100|300|%Y-%m-%d" %}} +```bash +# Create a table with custom partitioning +curl \ + --location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases/DATABASE_NAME/tables" \ + --request POST \ + --header "Authorization: Bearer MANAGEMENT_TOKEN" \ + --json '{ + "name": "TABLE_NAME", + "partitionTemplate": [ + { "type": "tag", "value": "TAG_KEY_1" }, + { "type": "tag", "value": "TAG_KEY_2" }, + { "type": "bucket", "value": { "tagName": "TAG_KEY_3", "numberOfBuckets": 100 } }, + { "type": "bucket", "value": { "tagName": "TAG_KEY_4", "numberOfBuckets": 300 } }, + { "type": "time", "value": "%Y-%m-%d" } + ] + }' +``` +{{% /code-placeholders %}} + +Replace the following: + +- {{% code-placeholder-key %}}`ACCOUNT_ID`{{% /code-placeholder-key %}}: the [account](/influxdb3/cloud-dedicated/admin/account/) ID for the cluster _(list details via the [Admin UI](/influxdb3/cloud-dedicated/admin/clusters/list/) or [CLI](/influxdb3/cloud-dedicated/admin/clusters/list/#detailed-output-in-json))_ +- {{% code-placeholder-key %}}`CLUSTER_ID`{{% /code-placeholder-key %}}: the [cluster](/influxdb3/cloud-dedicated/admin/clusters/) ID _(list details via the [Admin UI](/influxdb3/cloud-dedicated/admin/clusters/list/) or [CLI](/influxdb3/cloud-dedicated/admin/clusters/list/#detailed-output-in-json))_. +- {{% code-placeholder-key %}}`MANAGEMENT_TOKEN`{{% /code-placeholder-key %}}: a valid [management token](/influxdb3/cloud-dedicated/admin/tokens/management/) for your {{% product-name %}} cluster +- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: the name of the [database](/influxdb3/cloud-dedicated/admin/databases/) to create the table in +- {{% code-placeholder-key %}}`TABLE_NAME`{{% /code-placeholder-key %}}: the name you want for the new table +- {{% code-placeholder-key %}}`TAG_KEY_1`, `TAG_KEY_2`{{% /code-placeholder-key %}}: [tag](/influxdb3/cloud-dedicated/reference/glossary/#tag) keys to partition by +- {{% code-placeholder-key %}}`TAG_KEY_3`, `TAG_KEY_4`{{% /code-placeholder-key %}}: [tag](/influxdb3/cloud-dedicated/reference/glossary/#tag) keys for bucketed partitioning +- {{% code-placeholder-key %}}`100`, `300`{{% /code-placeholder-key %}}: number of buckets to group tag values into +- {{% code-placeholder-key %}}`'%Y-%m-%d'`{{% /code-placeholder-key %}}: [Rust strftime date and time](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#time-part-templates) string that specifies the time part in the partition template +{{% /tab-content %}} +{{< /tabs-wrapper >}} + +## Partition template requirements and guidelines + +Always specify 1 time part in your template. +A template has a maximum of 8 parts: 1 time part and up to 7 total tag and tag bucket parts. + +For more information about partition template requirements and restrictions, see [Partition templates](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/). > [!Warning] > #### Partition templates can only be applied on create -> +> > You can only apply a partition template when creating a table. -> There is no way to update a partition template on an existing table. +> You can't update a partition template on an existing table. diff --git a/content/shared/v3-distributed-admin-custom-partitions/define-custom-partitions.md b/content/shared/v3-distributed-admin-custom-partitions/define-custom-partitions.md index c09edf5da..16761a292 100644 --- a/content/shared/v3-distributed-admin-custom-partitions/define-custom-partitions.md +++ b/content/shared/v3-distributed-admin-custom-partitions/define-custom-partitions.md @@ -1,4 +1,4 @@ -Use the [`influxctl` CLI](/influxdb/version/reference/cli/influxctl/) +Use the Admin UI, the [`influxctl` CLI](/influxdb/version/reference/cli/influxctl/), or the [Management HTTP API](/influxdb/version/api/management/) to define custom partition strategies when creating a database or table. By default, {{< product-name >}} partitions data by day. @@ -12,52 +12,27 @@ table. - [Create a database with a custom partition template](#create-a-database-with-a-custom-partition-template) - [Create a table with a custom partition template](#create-a-table-with-a-custom-partition-template) +- [Partition template requirements and guidelines](#partition-template-requirements-and-guidelines) - [Example partition templates](#example-partition-templates) -> [!Warning] -> -> #### Partition templates can only be applied on create -> -> You can only apply a partition template when creating a database or table. -> You can't update a partition template on an existing resource. - -Use the following command flags to identify -[partition template parts](/influxdb/version/admin/custom-partitions/partition-templates/#tag-part-templates): - -- `--template-tag`: An [InfluxDB tag](/influxdb/version/reference/glossary/#tag) - to use in the partition template. -- `--template-tag-bucket`: An [InfluxDB tag](/influxdb/version/reference/glossary/#tag) - and number of "buckets" to group tag values into. - Provide the tag key and the number of buckets to bucket tag values into - separated by a comma: `tagKey,N`. -- `--template-timeformat`: A [Rust strftime date and time](/influxdb/version/admin/custom-partitions/partition-templates/#time-part-templates) - string that specifies the time format in the partition template and determines - the time interval to partition by. - -> [!Note] -> A partition template can include up to 7 total tag and tag bucket parts -> and only 1 time part. -> -> _View [partition template part restrictions](/influxdb/version/admin/custom-partitions/partition-templates/#restrictions)._ - -> [!Important] -> #### Always provide a time format when using custom partitioning -> -> When defining a custom partition template for your database or table using any -> of the `influxctl` `--template-*` flags, always include the `--template-timeformat` -> flag with a time format to use in your partition template. -> Otherwise, InfluxDB omits time from the partition template and won't compact partitions. - ## Create a database with a custom partition template -The following example creates a new `example-db` database and applies a partition +The following examples show how to create a new `example-db` database and apply a partition template that partitions by distinct values of two tags (`room` and `sensor-type`), bucketed values of the `customerID` tag, and by day using the time format `%Y-%m-%d`: - +{{< tabs-wrapper >}} +{{% tabs %}} +[influxctl](#) +[Management API](#) +{{% /tabs %}} + +{{% tab-content %}} + + -```sh +```bash influxctl database create \ --template-tag room \ --template-tag sensor-type \ @@ -66,33 +41,156 @@ influxctl database create \ example-db ``` +The following command flags identify +[partition template parts](/influxdb/version/admin/custom-partitions/partition-templates/#tag-part-templates): + +- `--template-timeformat`: A [Rust strftime date and time](/influxdb/version/admin/custom-partitions/partition-templates/#time-part-templates) + string that specifies the time part in the partition template and determines + the time interval to partition by. +- `--template-tag`: An [InfluxDB tag](/influxdb/version/reference/glossary/#tag) + to use in the partition template. +- `--template-tag-bucket`: An [InfluxDB tag](/influxdb/version/reference/glossary/#tag) + and number of "buckets" to group tag values into. + Provide the tag key and the number of buckets to bucket tag values into + separated by a comma: `tagKey,N`. + + +{{% /tab-content %}} +{{% tab-content %}} + + + + + +{{% code-placeholders "ACCOUNT_ID|CLUSTER_ID|MANAGEMENT_TOKEN" %}} +```bash +curl \ + --location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases" \ + --header "Authorization: Bearer MANAGEMENT_TOKEN" \ + --json '{ + "name": "example-db", + "maxTables": 500, + "maxColumnsPerTable": 250, + "retentionPeriod": 2592000000000, + "partitionTemplate": [ + { "type": "tag", "value": "room" }, + { "type": "tag", "value": "sensor-type" }, + { "type": "bucket", "value": { "tagName": "customerID", "numberOfBuckets": 500 } }, + { "type": "time", "value": "%Y-%m-%d" } + ] + }' +``` +{{% /code-placeholders %}} + +Replace the following in your request: + +- {{% code-placeholder-key %}}`ACCOUNT_ID`{{% /code-placeholder-key %}}: the [account](/influxdb3/cloud-dedicated/admin/account/) ID for the cluster _(list details via the [Admin UI](/influxdb3/cloud-dedicated/admin/clusters/list/) or [CLI](/influxdb3/cloud-dedicated/admin/clusters/list/#detailed-output-in-json))_ +- {{% code-placeholder-key %}}`CLUSTER_ID`{{% /code-placeholder-key %}}: the [cluster](/influxdb3/cloud-dedicated/admin/clusters/) ID _(list details via the [Admin UI](/influxdb3/cloud-dedicated/admin/clusters/list/) or [CLI](/influxdb3/cloud-dedicated/admin/clusters/list/#detailed-output-in-json))_. +- {{% code-placeholder-key %}}`MANAGEMENT TOKEN`{{% /code-placeholder-key %}}: a valid [management token](/influxdb3/cloud-dedicated/admin/tokens/management/) for your {{% product-name %}} cluster + +The `partitionTemplate` property in the request body +is an array of JSON objects that identify the [partition template parts](/influxdb/version/admin/custom-partitions/partition-templates/#tag-part-templates). + + +{{% /tab-content %}} +{{< /tabs-wrapper >}} + ## Create a table with a custom partition template -The following example creates a new `example-table` table in the specified -database and applies a partition template that partitions by distinct values of +The following example creates a new `example-table` table in the `example-db` database and applies a partition template that partitions by distinct values of two tags (`room` and `sensor-type`), bucketed values of the `customerID` tag, and by month using the time format `%Y-%m`: - - +{{< tabs-wrapper >}} +{{% tabs %}} +[Admin UI](#) +[influxctl](#) +[Management API](#) +{{% /tabs %}} +{{% tab-content %}} + +The {{< product-name >}} Admin UI lets you apply a custom partition template when creating a table. +1. To access the {{< product-name >}} Admin UI, visit the following URL in your browser: -{{% code-placeholders "DATABASE_NAME" %}} +
+   https://console.influxdata.com
+   
+2. In the cluster list, click the cluster you want to manage. +3. Create the `example-db` database or click the row of an existing database. +4. Click the **New Table** button above the table list. -```sh +In the **Create Table** dialog: + +1. Set **Table name** to `example-table`. +2. If the **Use default partitioning** toggle is on, turn it off to enable custom partitioning. +3. Under **Custom partition template time format**, set the time format to `%Y-%m`. +4. Under **Custom partition template parts**: +5. In the **Partition template part type** dropdown, click **Tag**, set **Tag name** to `room`. +6. Click **Add Tag**. +7. In the **Partition template part type** dropdown, click **Tag**, set **Tag name** to `sensor-type`. +8. Click **Add Tag**. +9. In the **Partition template part type** dropdown, click **Bucket**, set **Tag name** to `customerID` and **Buckets** to `500`. +10. Click **Create Table** to apply the template. + +{{< img-hd src="/img/influxdb3/cloud-dedicated-admin-ui-create-custom-partitioned-table.png" alt="Create table dialog with custom partitioning example values" />}} +{{% /tab-content %}} +{{% tab-content %}} + +```bash influxctl table create \ --template-tag room \ --template-tag sensor-type \ --template-tag-bucket customerID,500 \ --template-timeformat '%Y-%m' \ - DATABASE_NAME \ + example-db \ example-table ``` + +{{% /tab-content %}} +{{% tab-content %}} + + +{{% code-placeholders "ACCOUNT_ID|CLUSTER_ID|MANAGEMENT_TOKEN" %}} +```bash +curl \ + --location "https://console.influxdata.com/api/v0/accounts/ACCOUNT_ID/clusters/CLUSTER_ID/databases/example-db/tables" \ + --request POST \ + --header "Authorization: Bearer MANAGEMENT_TOKEN" \ + --json '{ + "name": "example-table", + "partitionTemplate": [ + { "type": "tag", "value": "room" }, + { "type": "tag", "value": "sensor-type" }, + { "type": "bucket", "value": { "tagName": "customerID", "numberOfBuckets": 500 } }, + { "type": "time", "value": "%Y-%m" } + ] + }' +``` {{% /code-placeholders %}} -Replace the following in your command: +Replace the following in your request: -- {{% code-placeholder-key %}}`DATABASE_NAME`{{% /code-placeholder-key %}}: your {{% product-name %}} [database](/influxdb/version/admin/databases/) +- {{% code-placeholder-key %}}`ACCOUNT_ID`{{% /code-placeholder-key %}}: the [account](/influxdb3/cloud-dedicated/admin/account/) ID for the cluster _(list details via the [Admin UI](/influxdb3/cloud-dedicated/admin/clusters/list/) or [CLI](/influxdb3/cloud-dedicated/admin/clusters/list/#detailed-output-in-json))_ +- {{% code-placeholder-key %}}`CLUSTER_ID`{{% /code-placeholder-key %}}: the [cluster](/influxdb3/cloud-dedicated/admin/clusters/) ID _(list details via the [Admin UI](/influxdb3/cloud-dedicated/admin/clusters/list/) or [CLI](/influxdb3/cloud-dedicated/admin/clusters/list/#detailed-output-in-json))_. +- {{% code-placeholder-key %}}`MANAGEMENT_TOKEN`{{% /code-placeholder-key %}}: a valid [management token](/influxdb3/cloud-dedicated/admin/tokens/management/) for your {{% product-name %}} cluster + + +{{% /tab-content %}} +{{< /tabs-wrapper >}} + +## Partition template requirements and guidelines + +Always specify 1 time part in your template. +A template has a maximum of 8 parts: 1 time part and up to 7 total tag and tag bucket parts. + +For more information about partition template requirements and restrictions, see [Partition templates](/influxdb/version/admin/custom-partitions/partition-templates/). + +> [!Warning] +> #### Partition templates can only be applied on create +> +> You can only apply a partition template when creating a database. +> You can't update a partition template on an existing database. +- [Template part types](#template-part-types) +- [Requirements and guidelines](#requirements-and-guidelines) - [Restrictions](#restrictions) - [Template part size limit](#template-part-size-limit) + - [Partition key size limit](#partition-key-size-limit) - [Reserved keywords](#reserved-keywords) - [Reserved Characters](#reserved-characters) - [Tag part templates](#tag-part-templates) - [Tag bucket part templates](#tag-bucket-part-templates) - [Time part templates](#time-part-templates) - + - [Date specifiers](#date-specifiers) + +## Template part types + +InfluxDB supports three types of partition template parts: + +- **Tag part**: Partitions data by the unique values of an [InfluxDB tag](/influxdb/version/reference/glossary/#tag). + For example, using `region` as a tag part creates separate partitions for each region value (us-west, us-east, eu-central). + +- **Tag bucket part**: Partitions data by "buckets" of [InfluxDB tag](/influxdb/version/reference/glossary/#tag) values. + Instead of creating a partition for every unique tag value, tag values are hashed and grouped into a specified number of buckets. + Use this for high-cardinality tags or when the number of distinct values is unknown. + +- {{< req type="key" >}} **Time part**: Partitions data by time intervals using a Rust strftime date and time format string. + The smallest time unit in your format determines the granularity of time partitioning (yearly with `%Y`, + monthly with `%Y-%m`, or daily with `%Y-%m-%d`). + +## Requirements and guidelines + +When creating a partition template: + +1. **Include exactly one time part** + - Always specify a [time part](#time-part-templates) in your template + - With `influxctl`, always include `--template-timeformat` with a valid format + - Without a time part, InfluxDB won't compact partitions, impacting performance + - If you include more than one time part, InfluxDB uses the smallest unit of time + +2. **Tag and tag bucket limitations** + - Include up to seven [tag](#tag-part-templates) and [tag bucket](#tag-bucket-part-templates) parts + - Don't use the same tag key in both a tag part and a tag bucket part--for example, + if your template uses `region` as a tag part, you cannot use `region` as a tag bucket part + +3. **Maximum template parts**: 8 total (1 time part + up to 7 tag and tag bucket parts) ## Restrictions @@ -59,18 +80,17 @@ characters must be [percent encoded](https://developer.mozilla.org/en-US/docs/Gl ## Tag part templates -Tag part templates consist of a _tag key_ to partition by. +Tag part templates consist of a [_tag key_](/influxdb3/cloud-dedicated/reference/glossary/#tag) to partition by. Generated partition keys include the unique _tag value_ specific to each partition. A partition template may include a given tag key only once in template parts -that operate on tags (tag value and tag bucket)--for example: - -If a template partitions on unique values of `tag_A`, then +that operate on tags (tag value and tag bucket)--for example, +if a template partitions on unique values of `tag_A`, then you can't use `tag_A` as a tag bucket part. ## Tag bucket part templates -Tag bucket part templates consist of a _tag key_ to partition by and the +Tag bucket part templates consist of a [_tag key_](/influxdb3/cloud-dedicated/reference/glossary/#tag) to partition by and the _number of "buckets" to partition tag values into_--for example: ``` @@ -95,9 +115,8 @@ each partition. > unknown number of distinct values. A partition template may include a given tag key only once in template parts -that operate on tags (tag value and tag bucket)--for example: - -If a template partitions on unique values of `tag_A`, then +that operate on tags (tag value and tag bucket)--for example, +if a template partitions on unique values of `tag_A`, then you can't use `tag_A` as a tag bucket part. ## Time part templates diff --git a/static/img/influxdb3/cloud-dedicated-admin-ui-create-custom-partitioned-table.png b/static/img/influxdb3/cloud-dedicated-admin-ui-create-custom-partitioned-table.png new file mode 100644 index 0000000000000000000000000000000000000000..d644a58ba89cbec7994e8dcbc82fdbabdda7be43 GIT binary patch literal 248983 zcmeEuXEu!(T_R#5Y7&BkAc!szgeZyLOLU_%`lty~l<2(%5u+P@Mg-A`Hlt7U zGJ2T_qnu^`%C`5p&X@D?oWJWDv%G7)YrXY(?)!e8<=sm)MM^S8G6DhuN~Pz|GzbVT zBMAtIpI;>gN?hQ2oCE|Es&;a6FO}rv*j~ChTiZEU5fD6om!M0cr`dHg(@=w*=;|Ae zyZf9GBLo^xZ7+SMf1>sDI$Qi7v?1@AjkR1hI6~-*ue@^LW&1!09!-$1XiRJm>F#dO zE9Z57N??pl*y_XeWt^S5FJ-y+XVl}U2=>(wTB+gogfaZwG3{@OD>*-Zu6#aCK$0p; ztw*SfkmXx!YkNkh7dFwHB#OF}>rnQX2X;DsX8IxVfXc~|LsVQpaJcsmCoCO$ghL zXiyOgEjytiT$Y;iVN38#?s+%j!$SY@AZq0k{`XVQqLf*O`)}?L9|#oYuD`L2D54>u zdmop}h75YFoXNy0U>m0s-xtYP`H6cjzC!QmeOjfbm$i@dd{s(pBgZn`rH1ngAo|C`6t`#tsAa=a{M}o}n02Di{_#&< z!nZMJk|Ek|bLMJbFi}bZ`F6koRiwC2%o2+o;PgBln3*OUOFg7jg+HYSan`49Zep8@$dViU(~D4X5o0s zxsv~lW83o=4y2w}B|c=d^;de%_$M7<>~YF^KBB`YnJ(nnk*g* z-Xi<%fbV{A%uIluKRG#(fh>NHzU=ai7I8hwf6-xldpMW)Tm5aqx6qgEv)$yE5MnDX zI0gb*vr7)DT{|+Lcq4@sf(Q^WBGr@gnrc!r?WGd^>E7?Tx!3k!}Ux*C9dA_`i z4GGP@Rvi@g%f{uB5h3cEW1VlqH=&>8GeOZ;LtZ3~;Z>)2Me{y(SYq(V+TRbRbd)fCoJjg^&V$jBxmH46X$9E~_QGYPazaG@% zNqpB;Ua!Zk6Qyl&peN+tuUoDLCGm@-`xN1@su5?BpN8ZQpO5BFyo3~yj@()!w7&w& z^bPY3KT=jz?KA3o@jyovDq>pl)UkO&42HMg8ikE+jMlH&t&trpt~HLRe?e;m%I6J2 z?JiYo8C-G{D@pWx?-`9%3(cAR+%imK-#h$e$o6L)bSGUc$8b<=ziXevSL}r5gafV^ zmupwjHM#)mAB7G{=K9E0sei~3*5NhaH3g+0ol5o$)L}{!$cdJTryKGUlQ4BV8A~$? za^fU*v-_6oX6fc0t2AH-4{vcXaVv2@@C4Ww3UX-qKeyw_~ zt6^!B1AkyY4lyhWDL?$`G1Bs?nIT63tKh0o^|6Kt#&E!p_D4A5i%8KwvII8;%u|Vy z7m}gEV%9^B-473h=+a7srJRmPUL>`fFIMpA73#yS6|Bvz$*LT!H>_Fv9D8Z|KJ?*I z(6DTS@&|$skOtKT`v$27QMKug`ZkAYbnWjQ6C7bPYtT_c5EI4{(~gWpsypsGdW*=5 zfJM9<>}pPHh8>C>%OTAeyY5w2KUm~YdttT4dj z!0buk$AC|#Z{ht3%GCXU@^hx%BHRj{2|Rp!v~aYJ^%3v4PPd(ka;1j!K@Jg<{t_p8 z0jmLqC*mi4$A_n*r__Y^3Ey0jxSZ*-{#YzsDt$S)Ke+N+Yp`?u%#_#^?GwG1wlD2o z`jvaSymqnLhSTiDKw}zWW?tfc>gRBMziNKXy!gA*_D3H=lLuv@Q$qe~zgMpwMEs8E zjv)Dj{Z!exw6pSidk6Fb{jTzT>@#77P+ODz)Rjg75rN^?0q^hr_|c}*E*-_hBr37# zAbC4L`FQiUC}}V$?{z1x2~M8thH)!Oc1kcM=eW>VT`n)RKZMNt-;i^M0dB59OT%7c zt$zgZu7wt*x~}Z5&a2cY-DN%WQE8crNv%K4--8T77TBHR@zmGtXmelv*fv18nLjkC zLLg7~8y%Ehl9u=?imXu{kvp2pm4Zkq7Rs_dv@Ypd>&Fi84QyU>Z%>$`7c&<#bemaH zSl;a37|BXZ8txxK)qI4_Y zSWiUWmdr`CpFC~;{`I@pa9javYL2j+V4h>aNpHST){VC}P9BnH-Ax`9pLD>6jN_JF zmK@SP^!6oBiVwV=$@MYblUqjJ&*tki-Ud~;@2t(C$m8fm_ytWK1rD}uJ#8-L9lZA` zVM=ek%Dd;f|2uCbyap}iKo* zbyj;X#?AYahdxP`x;CmteX9lo6BE-4jk+T_;P(xiQg(iP8N_s79luEj~mhbUY|Oy-JM3V7EX6OWuMxUNA&y0 z=a>BlVCgvNzy*3Nep45=+P&>)oko3nsKV8v8<#tqeEUK$yjYxxiCWe@YAgj^u0zIVSr14{#yM@Rs zrmRWnvz@Y_<_TY}eNT7{d?m1cJ)x!8xNO>_7Tdl*?H6~pG(S1yMZ9G{Q-#hti8-F_ z>R8Qsp2Z_Q32{2TzO$$n7!cST&p%InOlBtQQ{6@MYmtw@mYd+=uli5oufWo`?nSJr zNCbTg{QgyFL3W2Ao8@%41N*Hxjfr3#eJMzIq_FT3jof9n7V_-U(pK=weNmT9t(zQ@ zOb(Gp>7TMLovOadP-@=svm}rI>SSh#=P%j_eY87Mzy$D%_f~pJ)~c!mJizf)0-{Td z1XqBgOTb6^64QT=6)xQ)xcp~1Apt?S9Rbn5uTcZO&wpZo&v~7HeP50ZBOn3(x(QUbm;E!?cEoZM}lJ$xR0Z37BOU7qW^6A;|Id;Ynk zq;Y2(xIfBHOV2}3RYlyw*^$rO()qO&pSPpS`F#i^y~Tk;M=K9=Hg87}JC+ASNcp|4@)$Q1Ah8#RGRACl7P)2Tty{|8#b zi-(=F6WjTH&0jl%J)}4|&L8yOpMSN}%G>U*Cpo$QyIVj9`OnYr3-CSU|L?tls*>lW z;xFyItsL~9**OAZ20TMrK;+?L$v-RnZ>RoxD%V9CeF zYqz)854r4v@as>HTRA{AOx@S0i+JQXVU$cGOK^$k;x9J;;HqWy6lOuoPBUrRgOwS) zb@ZmxUGUn-ENhp}-!46`8S}8k_pqbb3Heo@iSd6s8}UXq*$lF>d|T9gsh8oM-1wEh zKMc6TcOp#BnNf4f9i{7*7u)e?v)HZ^nui>~ctxEQ<{o=K`A1U;F1-jc>qGssH29CJ zG*FA6j-0D(K?H;se$hY=ss2&KMsxX62$*8~@r{2rEJPUn&myANY_jE1msr9%{(fJe zbV=eLMM1I@L|2gl-{xQbb5O1#{Yn1W(THGz7I9+lTkrqYUZAZlsayXnA{3xu)9WCJ zmb> zKZ*$cXORCIk^kc$lXB{v;kTMAF+CZTj+69mNBeeS?n@ujB?8qdt@=3Y-4fH>p z>hF4O;_qq}sQ3%fTvZAtr{{|ZNCGRzKmPPtJxTgbS=@)G7oNsW+J-lS%tg}*+6@uu zH#$WcHF*nY4Ajif9_0JsGGp($CqCa8P;*r@YyB~hZ;aQqI0)HW>f-H@F`?sK_MUBD zw#04ntB$V@<;NLIAjsBybV`l*ru{tKyVpmnY9IMjq*V1%TwE}3=pt%c3_u6geVN=s z)@n&TN&MmPy{pL2$_dKi)m!&e(;g*BY}VZlfsfzPC6Y#$n@ltvxj{{w5KV`cqurww zZc$@Y$eyIYJI0M(uBCAGEyNJij@%}N;o|1F%1gr^dN5k7n-2-EskGbsQSNno1{x|* z1*Hz2`d|lKK$YZlJomTm2dHZls4$d6-!$cfYd6+I@FL;A;5g~{_3=uHo*WUma;md; zG|*O@Iq!u|oD$6$mm}O3-#1NQ=?-5{>XhMC`ugybqAgtB;Atm z)Y5@eYTSHaa?c=aS*x~xUNB(l*?@NMS@XA^vg*XhG?B+FS%EdL+?JX;^r>Jea6epU zd{NwOu>O%6!Uhz6e7O4pyY8jv?GSZK%<@-I%e77V4CXHtQBjN?7wivBBjFC89**^= z?hIs$nO~UlS!+0)om%>L49Yil4 zign@`HH6eAYb!`h>TlHhnPy7K#$#H@G#l z5+59n=|^?GAJ*>fGSv$l2TZPeKbbHV{J1$GcU~@*me{ z%4gjV4{A+Sm-P*-e|%)fmpu*9Xf}Zqy~<0}T?QenhzyWs&6cYqNc?=Us*PizT1IS| zsB)Do>kqQVX?%XpF1FdvPRFAaUkKf! zzpvMcw$l&)%U{W+-;AJdIhs0j*ZAr|T1Fz^)^^WlttiX{lUr2|=@2QKtz+@2tF!Em z?<)Qx4e{$DVMRD2?XI5gd>bgR+1Zq82wNq3@Uk4?G8^(S>mkyk$(qEcEYAD>%1d*& z?>?1iw%@wb_o_s=%OIiVhn4yVKacZtzOhJHH(6HMOF;^knM7mD5EC1X;=OJRyuE!{ zjSqW$jjyHQFt|5^dJJ)9B{F(M!&3h)XY-LQkLx2Ml( zZQrYv&oo)ZQ80^-9n;+SV&n%|RMxiqnav*1tc#WQzkmg3P(*X`Ynyi$`OWXbU5dDq*6LOfm}A zz3D77d;zs~j?1}kx89Jx7NA5{K$-)bIT?8^u0ul|olFtVU34Ku4;owPKj=F z>9N}iy-nbWdA7nqss>a~pew66=-74c&3eTT)6=E2vPGNXqPpdgZ(kEo2A#6QL;0-A z12a-hBA{_$&`5Qv{qiT36rmom;_*_?qZ<2B<#Ru_;`a@!mE$j;A_aFJJ=$QJ}nhL;sc>V^vzh{0}h&6QgfN07OhhVt^urj~^+aiyx@xI~+Kd3-& zv39XjDSPB-<=mt*t~*o852}0DGfkI$Jww>28NOni8aByxVY1uog1xUnCE&;>(y*DW z>cR=wT4x(++(x_J***o*S8&5trFE6rYl@w*QaF97>ctfY*I#<8X7UfxZyLh7Cp;$6`wn?wobebD%JtUpsF*Oytex6o z{X$i=Ve^Q_BLd84)bYV4{1T`=Z^B340bN$V!glh`sXR*6eZb5ST_CM{@+1$Gv>DL4 z8}fF~a%?+CjQ};@;IYY5)^z;U_{|=}xLFBvoOYRh``Vq2kM0g~#alrE5R%`Jv$L3k z)>m=Xk&FAQ!~Lg#(fo8}@1|H!??u<8d%kv@kh$+r$-{lAB1zJ4d_7hLSTvb>peu!H zDSXtD+h*S|KdCYwr33I}a6L}YN?9M~23uX{{`CYICaOS{B<7BG^CZ;*oqM6~)^^tT zV%@S-$ZdS69Di|`-#hJLNA(HX25iKp^Lyp;s15vq7eqjxKEsT8a_KY#jN+SKSWKFD z<5#@ZRHa8uv9`6IC;S5=GkI@yINuAos$v;>Fy@+PwUj25ZXrAd`ahD@ zx}?w0dV$PUXstowLbZK;$^|$c(L=byp(it*ooP#=h8-z&^jjU-0s9FcWlpYOL~Z&L zmFalH{WgPje)>$3Nn%GDby@9Zp!x7Wwl&jEb;@4JN8OTojUALdZBJxYbDqKm+vkd4 zA9?OS_L+Nkgnj*OK>h=L=P&j%%(xMHzEr!a27Quu9SSVx6B9EE9R)7Ej+%Psa>UjQ zej!d9#BqyH)o-QrRn^zMj8``UVaQLU$fF6_l8Mm_R)>AX&+0PzOiTFX=$YC>Z@ee- zXNz#u@kY1!1ynWnQMTzSGFs-9VSxDWxX_s@MSi>STv*kuNg+f_gVFe|;Btx2Y^IJx zn(yZ}x&D_XtHXs!j)q>u4sIKUV;@t7EvJ50^silOow+*PhF>U(+nx48i{m8?azEQf z&s|d;E>QnOO4}jPs9KpiimFUS;nO&npwo4xfhhVo@E|F&!f}%c+KL}+#my}DW!-L7 zq;S{4gH~w(KrmVO1TB5SaZ9I9x~L}eo@UKwhGApWbjFF(`1aw_)$mJI(aW@dk+9&G zHvo4sA?i?POuobfy{)--+)7RIc_uDe0{w1xk*CwJ3Xab36gf&6uXhjku^F9N;J-6I znY&vw&nJUB7BZ31BD$>?zIGC3Lkp}T6QAH3`SvMXBLdumeK`M>L_C_RBY(bfQuE#Q z=v1nA`tp4@67U~&~l_xpj3(+Z6@W_e;kw%Jx+hHT3Gyf7{k0FKYXZ_CgPZ}7-8L? zCBX$QN%i#`nvJ{pzV{yV%oiJPo-9 zb;g}c;I1bOn2})2lKqG=0I2Dy^~1_H)aa&#(nHE)R{Va6+tF_Jr6IOC-l>$AYStDE zOTe)z2sOVyaKi#wx-Bf^79CNE`8|n`K{xwN@8>HgcqXP?AlhuDq-`I}rW@7O4_&%Q zq98kScNa3+x5RoXq~@8RNrBaZ-_76nrx|waGm`7Ix|QgiHfIh(dL+O{@eWhl_3P#K z4PINP8r4|AO3jBMut^-#xF5N5b22ez>>-WK5l?Jt}tbG@wEnV#|5wJB5`huG9TMDq3Q-t?dNho zG&!SjZoj?-EN@Ht>~^Idr=CETt&)SN1>S((_swQ$s?HH{#=Xw0X)>LY;t&unwi+I_30_71YBF$0rqL?BfH+0ia5PiX1e=&FW=vU$g=QiA{n{-qCT<+ zbr=z;8&P8yBz#PttkTa+E!)l)cP*RVnt) zwG)QH@L)z%H+HI}5nH(EdX;&-dNzrp#X7s-R~&u5pR3TQ@$8l2KWp7%A0A_v1vh z%6fppx7>3+;AHxR3eqR+~CxL2eSxe`B!R~V5YkC^Mo5QC1x8E@?3iS#z#5(>(i~=U+v8NR&P^|-05jPa#R1@JipwZ6{nH^ z;&H7(zMFQ6z=^7jz6}Q%vOzt+dvOs*+l+yxcy1gk59O=c@bA960H8z8>DEz(*Ug@w zCo?S`BTRXVU0h7hFgf;dGhAz1JPoD6MA4E631WT2=0E@ExhtXyeT=##!>w! zsuqE0d2^xtMs(-xpMZgKpLAB$VgRutEweK2?u(m?%X_EzEoJm6Bz=D0c!(Np$|L{& z1{gVhzCIDKaK`td{s{e{!WYi;Oq+$yaTaLSYd4$WFNrBxR^kVn^vPGJi_5BR*(!kQ zUc~#473Wp`*?hDtjyCS#6(!Os8BdJqtak%-M9*xW?Uzymcx-xA*oR>y!$kiYCpqu%a>@&yCx-r<_U6++FkuS~r`Uap zS}GM!9{}LpEKIuT3UidQ#K};(lltu2@D(D^161u&*+%ik0!%GqLzDP;B<5?*)?E7s z>nwoIc4GNG-+2aEt4~}S-@ewmE)RI)g#GowNqwqERhw0?-1!hcHNff^m^jRoEgukr zq`$UIP`abdGDI8=_Aa{E$`yoL;iYUhj1M>Dx0C}w zDr>TFB9~CEjY;|_JN1LiFZ>n?(N*+)g^Z8vkYoC~<+4xo8y4nW0?mHD9PQ!30~EF2 zRh-tO+-b5j(!VAkqbktb!nbG!> zGQ1aTR|GHN4v!vhgD2Z)=UV4_44r{g;b*0|Zd#;Xy>_uq-1WOG!Wj?j95b*^{!0Tw zl~#M4`u1-}jT=3ES**Xm51W47&Vn`As;8MYE3pEstA=&osVRxZ#GT{FYk8k_`X(|9 zAMPne9djBtAo%>6r!fvav3EZR_ac?Mk_Gar)NJ^S>deIX_b9q3nIs>aKyxA`(d|gc zK)Tp%_htAZn7Lsl^9Z}j1&C_3^l)hsN*1;cXp;q~-_oj0J_xmWDXqE#d107Nu7Kc+ z9W1=O)6k`{%rYL^jeTmFTQQ~6;ynY+$LpOdyw|e=Dv{1tqa4bmAxqUGQ0+bp$-NCO zvvj&K2&nV`El|>jVp)?i4E9+2omvf=Y^mq7z6gnn&vhzH=wsjg2s=;zwj+v1cEc`| z1dMGPj238!W}(`HI4;$M%IJi>=>^y=fL6=B9W6H1^)C|!A)y-Ovg}<+{8{PZ;BKPN zrc@_$!k?3oRQ+jyOQp?2eCC~oamw@9YrA%6M%hU~xn}k87@jTiF z^sOqND3QL|%{FC=%T=i<^gMdc_t9BdP}efyDU4U2`w%PPQg7z6=#<}PhvWra%=HPI z2{Gs`N-g$?dWDx)weEgsNji#xnO ziF+@(Hw)jaR=U1X0dDp@Y&rU%+DUJMsr$pd=ypfxV*uX z04!C1ggM+txJC3a36CiXLoJb~5J@`rmA%PgJnVwSzDL$JY367VcrfaeBH-SD+J1!< z3Cuc@hIxL`0&u{mQq>Q3J7lO7(ns;Fg9o2_82sN4gOGv2}X!k8}^W(y*NACY%?Sve9MYNP9u~Gj;JKe6DdJv!eE{P z7GWQkP8JBSkVPPFGp3Z=CowQ(8C-@6x8t#a{CMn!P@lh$Rj=jSSch0%FQ+2?yc%2g z%`a*bk^vaxgMwAuY-_l@g!1sxQacL|X9BOTuv3_O%S!Gq4&KoVjBQcqwg z=L`le2J`_@=7hI1UhjGTe%IG`vYAu!)iT5ttm=GR&aVU*TbfQf`Cp*^{OH@=;A*?! z29JW|tS~cXcRA&M#Lur*0!FJdJNSLx5AhfZ%moyAJ`xXP%RN^QuR)DNmLC1hcm?$U z@%5x{q)5Ie?tf2;_-1t}1oq+=a5h_v^1st{-pyaYqbBaU0B3)u6aTH1F8V=c8`mEL zXKmF&|286Z_kk9WrUPdm6<*M6fKfHN$)?vxqz0T#9saxhXZ!5_z8I1K zL(CUU`+w1$ifhob6P)RIxj7_$Guy1?soQ`QPT?pyp*ZoynpRQ1Mn2Cc@ud#dz?j>L z0dXX({?99|`)(Fl&XI2tZy1)hEa?$&;%qS57@l#x-Vid8x7cHg3r_nJL zpEd*o+3>R2By3LmDy$_h@=C|5rimy45zqWFIcmkVb#$v%YJuXB*r=;4h`0%UYPLfGC65yqADSk(P1SArYroOqtv9 zZ-IK(`LKn4Nb^Exisp4L<#lZZZ*ot~?H`e*@m@1NlOsA_8$%CN9{76$5$83;3A(2! zj_a=7(C1iQU8lX7!*lu#wx8ZwHl<4S8-ef{Bkqt;tta&$qi+Jwb$wbQ(sj0&l(pEl z)%>EMH|1{GsN_j$5-+}7LC+*AaB19x{+?czOrY9LJ_EL9gO&;RZig#_$P$zHT6H7y z>t@r%HqM9N*E${cmil7(O{MMjlnn=7-+fsw4N$M%08rxb2@Y+72YulK46CGmb8yw^ z_qWZKKYsc_D8c4z+U=&h%--`_5_)2Au#T6V#)wes7m{iT`PzTVKyr{-sn{ZFeqgnZK#92Y_x$e3WF?x`R++`(DCY2 z&rCyxj53*_V0PEJHtRIc=LK7y&gcqN#PRM6r39XY{mp3<>HKNP!6-;~F;X-vtzZ&} zD#s|Y@HuslH3w!v&-~%_VJLC9ldx<54fYQ<fm`>e60`0W9(R+xN+C>t-4E^#!Yp;0EA& z^jGuKHOzFS`?8ulbypl0{Yh|+N6}EM*o&Kob011{O0buTMVhmlMvmx~eX9%iyEHl9 zC2H5I84s_fhV3v*)Ef3RHN$2S`nfaiUk-%f*5E#S3O-N=Fdo!haMy}&l27B!KH~IClBoD(sGD;1N9M?DuPGD|f!6RQx;=~9GE~>X z@kw?RKP+JUQJI&B;NQCH`V{EukOkRWvl8~rkHT6B$kYPWw0=xKc*@4{wLjo0IzbuY zX^x)d$dhm?29^SxV~PBU_hAQ8Z}7@_j4#>Z_zI}xNwfc9B?XfRhl=}h6|%0E@!4>p zIzI%zk89uzBuBIu;PipG_xgBM$H;dXe6Rb`!$3fKJOJ$`X}?Gx`f8<~Aef-LlNHdQ zENys}axnkIYWc)ULJwriBJle2oyt=Sb?oWHt*NTRIww{^j~F{fY0J)swEG9s`-3`~ zn|@nxU2(AgG~f5bse?r|pDnmo{MuTLhfc(71{q(2odXu$ZgAc=5 zsUnaXSyFz;WB2`)S9_<`&1M-u3cxB777nS~D`IwuWETD5DVs50`{dd4PnK(Z;YiMLU@Jp(%4V4*nr>0vnx@2Cp?* z4i`{X`nS97Wi~hu%wq+Pd}>FBeMv%KT%>=?_96Y#dvo6ifl(z0Lw-C`N)gPLJkYwl zCtW7hhBOV#NNSNIKBPo8oW-=Xet*6pQ?5Sa3#vi+jU!qnoYYEMpHZ?%j$q)M53eY^ zmd^$fJ+_CTUTxIO;&;IIC;>T(Lt>0DNIC(g!{s>fYHS{y^-y@y^XDj4*Gzz)E0hRR z)_kaZli%cyf#Gz+XwRp*7k^854X(R$4ma)IJ}pO1Oi(h3=;a7HC|Y`QnVs506Ku1! z)7B+K_P(m?bS`HFI;DEcOmFMoUS)!Ut+u447S~3Lhp?lb1)>gs%5*m9njwRCDEVCR z15yJ@l&Zz|lK{~OG!Xi=>>V2{@H9f>PXWRJw}*16F*^H7qgXn(>X%K*avhlhRa-0! zEF4i2ph)EpY512XuM3MBIfI$lmy6Ne>mZ`-^1#gQV-A=nGiVp31fDqvxoRPJ9MuW?NK zovBN`O>dhK_dA7@Uk|hCxiy2$$y9}Lsodf^;ses2`WA9XK8!c&ZRuqt+6@<`?&MqC z)B$7MmuB<=V^3F%ed=(*wW<0~?%Wp}9$ z6uDzG=HXU@FP;Vvj;qi9pyFb^0{`Rpz=p{0NwQq%yjBob3UDn0)m-wP^OUy6Erc-K z2jkZd7}x{}&8gLRT3gOsvyvy^sow&-0A^0+kPJPTfE8QyO$g^M598HAaHfFY+w8-x z$)ysW>&bRVlSUn8%_=8Ri)gz@m`Q}^jlx;uv`pPnEqy?cyV~r%lY3x-^VIxs`t36H z^F8Yam#0PkMrGLE{E48`UtUG}7Bh)Jlhkzsc^GBE$^bQ#{QWC*w^t}qCC&lDuP?W? zJ?oroUjIlBl+CC8wfcT-7;@<0m$)z|X8W%ua4vXQ&MrL^9LNk{2CtiGUfE#%!nSv` zY3v2|`tu5SsxvSsx;*eU8Pd0{teGW|Tazn|l|T~E`S<2(>AL}wlMw;1GxqKM ze~cCWf7P7|msC1lnMB9Q8l_6hF3X?a*ehJZCQTP~O}7$(L?=OdL67Z+N?Fo!@%;8f z3#4vyZKT{Uvx6QvBL%xV+%K|vSMBqa5_cP5=*;AW3{uvgoA5Idu^jSbhp&60^d8H# z$(z7EwXy4mKh~2abe+0l?}FM$809(DiuX9_zrR3)`hl``qiPM*$Lo$NhB98zBc37K-_&n(E1om_c}z^uy#q1*@OlOXU1+y3z_Ad=4BJi9gWpV>laYgSjWsA5QfOI>> zD(L^KdB`5qp2H-SX(}X_+A*KZv5V}`XH{PL57KO1ad&Zkg-4s42N+ae%^juK&J6C& z{YG^2*(vYYDX#1e{C3ewKyU#dCeWTN@23pM@;QokrQiK&0A<3?Ad1Fh!OEsHS01JqN#r!VuwX&^UO(iwjoa9k&euKOg0(Ck2c22y+P z0>mbEw?96h=i{3DHtNPP(Ac;vs#9Bp;&`PsErg0e$a>dL+L$51>;z@Hycl#qQECk5 zX@4(uA7HeUdVEY5#F(q#KWC*g(hQ>M)SW9&Zn@bcHs>R~(bw>NmSYG3QRK${Y&G#} zI{PMVH*42W` z+Ywz43intaF{#!ulyiw{bbr3oo1#iRNY8KLfh{pAdjFA8_{SRyzkHi=r_oB-ebb$a zbZN-M$a@g~)Y9V0(sFVY zpnRps>i+>P0aECJ7cd}QIWD=|3!qVkFqDd0nu+0x)yBEGx2rrvAyRf!n1@&H^} z2;?+%ezbE|X5ppqQ=0|S#0PCAs=1dGStkvfZ%-J^9Utzg2@DAPnlyN?Q1a2iwt31!yC%&^xb5tu#uqbl{Ky=T-ed)&M13x%gMQU6HV?S^lf9t912SDq zYyv_zf-&Z)23Zn*I!FUKc_8Up$7!mLJz7%3$hxmdn58Ol8K^GyZuBF(5e!9gU?3}4 za8?QI``$g;@+#{-o}NTLoV_@!NjZ`eHSoyZHbCnq>kVRxKP*e1q~(LgUnBsCv2D;e%(6>k2*o3z7?p0V-+Y;tGb)La zNk+71Kn53bz`Wu_-*fTp4|e`@%5bgSx?Fm@HNbADx`H(9L27M0c0)X@o|m!{NMmdv zGNTk3F6`f*P(+Ic0PhB=P?iU9OZx{F*=tM|lp=nK@+?z=C|kS&xM$S7Ak z9aL7Sd$&wr2U&?mdeIV{RcK$$f`Me~Za)xq>S5nb2JKs+`PBvIx{_pRlJgii(U*#5 zztzF2G=J;SpO^(al<*3sN0+ZhlX5L3@hY{HmWuU2>bxW?J`r}ikynZbj#HRCg@!|J+9fEDe{6(K=+!61b|MnpI81_jVOnaPz$^;inz z5n^vQTIX=XUsZy%Si7;o&fesU8M}V>NDfuH+%SF2#}<0nq^yj zXLAn=6b!tK9O`dY`=6*Xl`vxXkkog?DH$GVt&R9hp`D-?-zix5)6&L{Q6OP!TB5LE zI%rhm4ewE`A_ce~P*2ZXyi0q)c5$y`}v7q?`NJvqV67tq`LU4`D!8Mb#s9Lo-p zw60_7pUMsPGfysJoDqqpfp~2X?=R;stfVITZPJ^RQ)yuu?S_e09pE-4!~1qZ`3rgZ zk{_C2GkNvi*=Ezf-_n<)E|!`{!E`?|iyF)X*i`86Ll3BKK+h>Od5Oswn8&2)jgVHd z{_NiJ&m7ar`qwM5DS(s(lu4^W$r)}zVI*S9 zYqDb^D^qn=#u%mmV0C+uD`d!tq6r1weMPIGnNF{*qaU}fubVN)Et`>m;0S&%2y?lP zKL0To(-G8%j3%7G9Ft)Z2>r-zKzViemiLpLwwMNOfTZzm;MF>giO7u$`1;M8^Imn( z7`9AQS(G!5f|LPNbsMaRTWC^rGdTOLmI)V~oHPkorSn-_)ZLIT8vq!DG70F*gN*9o zVj!g|4oCujG1GMTY~T~8s=*FayE&t!!4S2%Ym`UdREl;t&mHwU1m5tF2PM=xjc>l` zk!_jSd}rMAGirMCdFn`2UC^GDGTIk?e0=DxroN7lz%(bnC8u-MQPi?v9zO4()NDbd zp=$JQe;34h-FgEtEBdm$CM{~YKVgz0e^E0XEx$p**R-?}K>hmef6+SuVXYFdqObcq z01_jAgVCX2!6B3wbFEcT0Uvexd;X0b@o6pKOA+MIR$XR^fZh?EfwabNyes2eJ~^(p z4+p;rqg>O_sluYYV?X{>o<8ejFfPSRGC*(pI@juMu~@J0q0K9R-6rO4V+enzE`WnA zgj&V+kVRDp%in-n9G&k_31p1f;U4`}Z(d=0ZQ+cjL(jIG_w;Hp+h5nqO=vrTd^@Ny zT-vPO;X+)Ot@KZb;#NTiJ=o2H{djfS?i(&zD9pEAY1Pw8VP%P)i^`bH@CpInnqAk? zH1QjvDy^OubR;b83%2R68>P@iO*i>yZVo`2?;Gq#=|<0spMuAC^MU`oHT(8xv{=T~ zmmZiT1N2sg=rU4b5DS^i62CJtuRbEuHxAhXqB$ncloF%Ui~-7p!N}jE>XMtyu%HR5 zKYps8R{wwn)Qz>8$oY&fTStqm{pWuHM6U=nnK6GnhYS*)D|h-*YqtHA{ICJHOAOEx z1@pn8zE~aV*#`G)Gb#IhrrjC*R_boGsPDj5#+}6?ZIvz7y*bYjaMc0EAO0PS z!2VO6Q+AgKoi=57xv+3~oFvlMA*oh|+_;aZ9pkT24ZTa8*nvjv&(Ie7447@v*oN)` zS03=27WS3tHNo)LNU&$?J$VZ^JPyb9tzLBI^eYP`Zr#wFOvaIww;5-DP|PG&uSufu7mG_C90 z7+->xz_M@vn?P1a21T4Uv3*V!tWuyc}l^b9&>q(w%kT1HM%9uji$0$x-jE!-P&x) zHU}R)w*b@mF&hhHpp{<_UA+V}ZoWsGoPd^VW`Z+#ywqVR-7sO1*gOSsOin$1(Q42` zBjEl1rjI!#w(IaIF=$+(1Vx_{7V94S5Uix^Y)$_%iv3p&mGIB%$^cfEFTs?ot{>>e z%n4_r^JQ1dY}i{(;fEyN@Zr`0ZFkj_FeU+g4Oc@`E99JMVhiBjf^r@1Iqi%su}b%G zVmkm7)=!f3^YX#Wl4R`E1)Nh1H(7|=TtoFM-#8T?dCfOrmI2I~IlwFGpwbTY zftg5J&f0+bc+aq8OnM}vwR6t*2XOmH4eMWuFQ)SQWtQ`b%Pq!UmR8WGinzWT0=H6d z`gbHe{AW8Y8FSvzlF@XB;uI_D6oU`in(2j{>Qy^nH)Ez;h0IqJ8LSOv0oybB`$fUN z=-lh}_yK&3FcdSdh8yJOOT?}B{d>b9s)5H!oW=Yv5G0uN;f-GM_MNyM+7al2G|q_D z*b(3$s+CfF3O0_dDbE{^r?+F;>57MsJ4(4y6=c+*SKWWbj7TYU+AmQzYWl-85@i%x zwVKHz++czUNolS1N~@(`MK!IdETVM-kY}x}?!#sC zZS^`qlIjr@&@H~ifGSyJ3=LBfw`q-TiWP45BdSU)#@b4HKX6mYGH?@2od?89HvoXDZOM7AB3bV_ z>Wsd6HJ9^Q)v*tqlgdEbzYGNrZcakg44_oA8-)5^Oz?`jm^Bw#DJOAd;FaCDms01D zNY3lSai7y07wTGh4n%(Uoz9laRMmQeYF=Xuh|{V5U_H-e;Ynay%J}VY$_v6D0r*Ht+sx!@qT-EzRHj8I;Or)H{D) z_VI7|@g>D$J=~1ZpkQp!HCK6KB4D@tnGpN;e*nT>6Bh92`(?VE-12Lt>97 z05;St^6v9kGrC*hV}F%H0BA}Jd_Lmf*8gwVsGAe@{~^?C5gF^cuKXWD?L~`9a6b&} zx$nU%Ha@wZ-@8l2XUUWGsni(m$}jiKjpwhr@t@Uzr|{k^<2}7l?SBGqNd1A;y`#c< z|NqvS|0z@+-v$I{vca|$oqrK{x3NP2frGe-_1RxI*bNZ+^fB-;cYG&i*#7;+FLr>Z zQLAvC?B913K=NS&qgB-xBx#2KNxr$)1mJ%skc5BTAom`Bc@K2Ccx&eF#s6B`x9+sw z+&l9L5B_tM5552&b6e8E>Cu0F)(LQ*{7%z&@}Hx;18j0E-y`};{`0f2O#v3$U-Ql1 zw>$8O3NL_mx})hv6>0I2}%%loO{mQNL&40r`XzYeHH<;>`C3KkqiUkIXG|X zQDrKA#j6XPhSJ5(xcOXzXf|u(=BCTMuE@TInvNwsScp^GtFX^j%dzo63OAOp?j^h0 z1$>de8&bfNAQ9|M0lgX9y3M((QT}M|&q@LeM^DCKrr;WYhf_=BH0A=vW$q}rs0FSv z(P=!h>aLilY^xY^hi}H35XZ#0YFQJ}N&17o@6!-2QcQ>^qGl@(81-Df0`QceJ>ZXG zhw9eyF9w!gDMu3@ZL#LLG0atY<1leDFzE+I%uB%Jo+s&x988rDYRTV&o!_D1a&Pd8sNDTfB+|%8zFo?;JAcV%3q<|FyqTJwM-+A=K9!i zJ`A;PiH3??G_6I9Vuo1t(>Dp7nCi7RoZ|HzXY2=nK$$JrDSdg6W7(gee?#uV-RGT+ zF1BFDdq7lAvI;!^bD-Pm#b5+(EDb8 zDX_riAHw>@EYuTlNOi~1O-C;S?ny-;ET_?^)?t<-K41B(q+ipn0gM26-T)C9nTbH= z5HVSqpk5+}_6%(fMn&2zthe9TGzp+*r=W%+LFFE6qpJOe82|G$uk8s=AS!|)prc-{ z#NIloDd4OtGCD2w6!0+1pX&|mU!JaJ4L8c`4xJxl2s|XA;#2Pa#)(06870jYP668B zQ`5PN;k;=y01grlL5_}cRmNFjvN!oaiNlTrH$7G3KIG(l&1i7S%70n9?FpH}o)J)Jfi`dUHp0^ zYtnC5dVQ2)=*8`w6AQ3G;w`>M`1F%zTNu6bCjv{LI%%u1pJ)KzWE){Wb#A_7vl+;& z23Lmvv}bMfJ#tO-MDkx8mHTRE2|Jh40`+a7mD)|ceQA(W8jrFaNUMDD`H|lQ$8^x9 z^=4B>5>Ado02txiJXhf{`QY4RrGtd%(txQ{b6R)0t7^UW&Sh00f3CsUMt{@4z`0v@ z)E_B)Y4z>;N|LLam5F@Q5s?Wb!6c>8U2J#x#1^WLLFUEm%p@!iIj)eM_p@dE*Q)aL>O6y#b*r`|Ba{NXh*`6cnFnT;|{Aa%yg7pFEY*e_fe2uO)Q ztK4x8lldIOv5b%wV%n6OzWD&`W&rZ*D)E@n*9D7@eiOBojOt*Dhafy|$$y zZT6esf|My+qH-lEJ?lBV8j`{9#jR@jKSCqADhH%&oZX}j8)v%#5qdco>uwjpK=Yad zAdJ^*$k+f)b;j?FP20YS+asp1-pz@5#57C(KAfuy*aGqo z3KB~&S-K@AiU7sLa;)DNjecu?)?dGRaQwu(w0RBrd^}JzX&r0_; z)W%a%&24aFsl?6dsh~>VSj|Ihf-i6^+xOHYN|AnE6FZE2L9G&%du_)_-Jv8>mMfCL z3i;Jsc_N9yx(+I|fo-e0J2=|IWI&Vg0rP-n3|uq-WTp~x_$bX$T%3A0$NS6b6#Qs^E=#FtaUHld0fq`11j!_X1MWz@*sc( zkp((vAfy)%FpKkQ@nF}>l5#ibPDG5^>HhB!8|;Rf8?!YK!N)({5k<{@xFKl=9ImIg z#ruI&Nlm#}Dyx{uvcUMI&bSfLr2l=ek}hw9e5N<5ltG1pz39p#;jO7^O%sQ+kV)CH zBbHx(hrp12{QRPU0CiY$>ts}u=z`i(A*+?}SssR5Uck7)TfJ$bM*Ak>?9k+pk*uJa zs=O&@Q#6bM%7hR5=Xh_-pgv8mOzx+e%xYvrHNlWj+@P=ZI_^#xRh8UZw~c}PrP=8- z*KD84MC(ROme2lbC*W=Gy%||O7cDs++v;k21ZVJ(+d$ z44ze{n9(VGI{dpzCDp%ql2`kH^J8H0M^~5I$K{8_M?1pdDa<2H;pSi``!3#Z&0Q^9kiP&@h$;u7vdE zsbK=GDF)0W{nzgKoUPjgkO=kwIa@=l2)VwZz2dP-pA^2>t_wK9rAbohL4$CJ=L=?` zf02z(fkr~=?bP(K5_c^h$di(dZn4g2(#=|=2zaOuG`N>!SW0UAL5X*`vg*N%YvrcE zwxDgt?ex>^Mr+*ED)7#fr}LOCy37EOa)Bk{Ru;H2dAH&iuwm@9#di8({7KhPO8^o2 zb=9QqFcfGX9+UkIh`f0G72svoFP-~xPtv>%32&nn$gxrt_+qrk zOzb#fEEMc5_|w<)|KvFI`ySHMcemENCynKrDa2mMI(xmb0pp3nT^X>7@LnlaoB?y>D#4EHg@N9mRt#YNC_ z*@w671vH-qfx)2Ch%whmzG5u?ElK0~xEgT=f@L$wz@K_4QWmN36;BYVrxEqV@QPXd zJzD7h>5Hd$Q|=A`->yavJO25IsMBngRXDv;AB6E-447$3qh>w4(fA6jiB72EC_1vx7Sd*W8di9A&&Ap z@@I<93_@PG43@Qy@Vz@xIIqYUP?I)(mSKWf;~<05;s5Q4fAKi=<^t56sYx;drW0Wc zHP9NHX=zB|?MA@Va$zQTA2Zz?>wkR-?pKG^*s;T!QSJIiv>jsE{XMAyAcs3=#^Bj! zKwZbAUuo&ty-Qej1>7I8V{V|aLUa4&>aGK*@cdW6mMpd^>9dh506NO174z?$IsP20 zn{wQ!fGy5g2!SWsjAqZ zwibrJyThBn*(qG-{X`X@e7GiJ%v<1hp7Y-WL~|AAVKJc!;+$%)S%ZHhw42%xm)`p= zQ2Q}~ZJG^%=$Urw4 zt6FF1-)bOzgQpzjp=eik-=i`BR&3Tm=n z*f0l=w-YKohZKM4Rt9$P4Vz$Ta% zX`%_RJ60DHpEN2gSz(9uq#LaUF!i*(WJ;wnabCH1P+sB2;5CVf6*lnFn(Ng(+%Jd zkUwZN4ZszbQa;N(F{QZTE5X}5A6h;8899*B4uoC^RUaM+N&UO6C;-I895&$ zUR$Fo`E!kD07-o9r#sh#6)=7#TD-cG1x-D>8Cb&ISEkech)<$Y|&%Ar0P6hdVhwk@6YVDm2J5=$yl)_$%E2 zu(QkG*x555=~62O13_9}08+fW)EIE4DF6W7x@GC>{X`8QqX*{rFOdD#ogu(sC$Af` z_{!ur(1LajG086tR0gHe4`7<5)f(2fB$jsJFaEm0{zvk;=}-ShZ@VcP{$HoJk>-aU zHU-T0K>BEM4(c+4n#zHgX%ir5jB`E^p_>WhbpWo+poH#wsQ#OxA@E`smsPu>>LItu z6J-0<(KPI4z}y|jB%kZLNRg+!-mwHsOZh-Y%I*Wc7$+5B=edM+e#n`mF)*afbNTT^ zqt502jhkjZz+<`L)O`s+8q8~e$*7*&N+;{--m>uZT7}^Ve1G*RQ1gEUK+am#E}uWi zEv=!_UG)Q~ZY&as=K$jK(L#4%*%yCv0&ZO6Fv+1NVWNgl&anh%eY$#my2_B!Y*uR7 z`$Zk_ugx8T2*a+84;$Qb;Ce4vdySXOM()i!-Hqn50!r~mbs4H1p+s+fRyNtZ`WC1KnOei9eUi`rwh|* zySR=Y{PJ-|d+l0RBIxRRLY%;*_;YD2x9NE`PC0@sl&>5IhX5;1i>FMSwA}E;FI8m@ z*@uL$@(|*WNLlYc{UtGffdpqb_op|i&A#``xRf~F4zO0cva#+ns6;^`-wx*E)N4MTLk!pV8T%}p_#AUv z0iL?A2!nZ649%UB;YgT5-(t)Fd+eXj{?l8vogK!A&cpH9$DFW+dWFd+@96^^h|Ggm zeb<5`mK*lDz5s^J&IN6@o=m?@)~w@`A_c3Z_!CU?b>b!Qgt)~6>_2DWryx%okUrq4 zANfP?sqCrW;O%NqN8@s!-k~sEvt>c`RM_dq01z;fV3Xx1cQY)MzP_k*C~Li2F(7r` zZNz|dwHM8-<+g(R)NGi|B(M;hv|5?6bA})Kq zTz|f2nayTRw7UDYljDQ=YKX(mht&$0KT{P#&|-loqGfTzS*|P(bgBajnh5>XWZJp5 z(Zl~tA8{LEJ~R1n4t(8c$=$|sz;p46E9sBP>6h-k)^lSwMGXhnKWEt!_&ikKr1`NfWG5zN7q`SbWnq zrLOvAS>Q>lyyZS;P1#9XRSQ%tg|FR!=xuWwvA9uY(004Pf*uZ9zVA=f?9nvKxm%Z- zbQct3t!PtOUg5Iv3c>sHuA-t5lYGncnG#t+L^&Uj)h zeLBG=qAIcQv_}{sdzN(ZV$yx#^=eNSOU9D{sr`%Q+%c>C6e}RSJp}NIE4r;rdRoS- z2*s&0A?03|n}e{h-lkKdW2MesZ1ad8^rf0S0nf~_O>P4haC_eQi`EoGqeAtJ$9;tm zUa`Eaqu}K2$^=IoN}hGkX_sxES~*X8j?Ze$?E)0aq}wnni=N~0U@MbDR{m?YcP*la z{S^>Pl9}W0=|NXvLc-)KRbOjoyeel~s6_pvpos1I*Bq>paK6KrWvU&_9}*<)yevyx zTG7$J4^;}(y3l-;{=FKwXG$ki-PJ!K-mR4g9f!ZUhDjOFHDcu(`F_( zWy`oYXL7nfp(6|G!oq=o6WmEWbQIImCe7A=owy=pD0uipof`}Jy2vG`sB z-p=8Us5~m`5iCd5Z%jo~yX00yFuO!fLu(aOxonF=MkNLaV@||GX}6+Q(%+3j-njNL zZnWHqoRrvF)aU&;wMi-F@$urS1LM`tZQ5iM9!qJxx*G%RI2{A3;#<(ZHwb>4vM+^Z zJ7OE1Ia_l5GjR7!+QpfqOoVBL6HAIHm{b#*!Or78)yMH5tDA zYE*4$P8EgzNBY7_i=_>J*rMNIPGboA1&+4IG_7e;tH*Q<^{0OAetFf8`^sHD?ev#- zIKhK5G1zADgS=xZn*s#YP< z!ep@C0J)jq>eIfg+Z`=Dvu()70J6tjOEdI(j!BbvJ;LW~O zBQ>ByrtI@`M2FYZH|bRzhOLl+qWw1EHWkKIX;)CaAKACR&*$pD+RPWL6rOwv#)@wM2X_}VQCr(c~5ce2_I9?HvC zt42k?48@(|?JAFDQqC}*Q(RonIHas6DapRvxt*V7!s1Aa2oaQ+DO-@?l$>l&rVWkU z3r&UjamQR~XznP72wG)&sv0Alz&uq|Iwd2s_6kxG%BAQBhty8UdlEd>YtW=_7XJBf z9s1Sw-`XAa`-Ex}lUX0}ORr(AP=mBaUpK#MUg)Euh|rPZa3pTUb&=hPlV_;$-_YiS zsqT5I`-GPb%ePQKmygGSSi1MJL}|WGIM&XRA>l8PUNgQuTS9Yb8FQ-1pWbCD<_D>P zy_xwg-v@@00dI*^K#rUwnG8QE_vrfEDd6f&jeB1x3-C+i=8n{-7$1BPWy#P%EyhZw zJecQsYv(%WQ(PHcX}QaNlpz`s_jP5XxU_mfvUwx^fvRz|-KPK>uk(1!T;RSjjdgF~ z19$7|WJ1%%je%dHtD}_|df%P61ebPeKo;!UdCt*m{a)qz4*_@nFa8fR;c97o{LhT` z^^W$tKisz^LrRG6w$0$gxe9O{1F5Bx7g3sVopnG;M_Iu2M2_0Taa(wlGNt*Gg_@qe zSg_nj<%=p?eak>6qW~d;(+{qRHa+V8b@LvJoS&9^0;^9ij?kudm``mJBmR^ivA`Ms zPQ;&-OU+)Vr7vZ(lJ)5_qWfEYXnh9{`%S5iu z)w+vlSPug-DRuf3h9(VS-V9j8^g6)w<%(2-}i0bkE?% z)A<^E;GWOESEu>Qc#C?h&lsj;5T-t-)s`j!&2(SLBlcz_Y*eqM%qbVDya#7hVT~yd zl01&9-~&j(G@DPA17aOgGDZq!rO{QPpx#B_1syR3{6iCU4mqe z?Qk8z*S+By*+KI!yM&fBkhSv%YHJ2tD>#tt)VyVy;QmBW&%LN$3lR+FS%w1568g-$ zpCeb+y)QOL2I5aarmd9$J9F}O`^13DDLEqwcG&L`aaCDL$;f^?Ba9)Kd@y2vg)6GJ zN3UhFMuzMWZaazC#t3buKw=Zi8u~fy=i+9Fa;j4gZcl-mfU+HI8rIO06wzg6{5kvfLB=q3ZB`3)Z}!@) zLks^CH2uO3Xk|^+fPt6TKU20NdRo{q%OUGNcRS~dl6+H!bWmW3bY+*t^_6FcAR&AF ztyYVfi zeW9N`dSj&la_^S+=D#j*T#4;gbGarzuDU-i!m9*fDdj?qKyvX>_r!n~GrSRKs4G{o zp_R?cjbz7d9rL!Yv13+CPfWZEEtF4qv9hX|MM|N30d{TH{{4+IP*N-wJ;VR<-qp%DX%pn zvVLvElt=qs)B$SdooVHw@QsCy@ZS2E2^@B*CdeGBPQF{k0TWK zjH--r=8SOA{yjoXxDJyJSFN(jsXT&1C1@Kw9*Any^j5s`z!cKZsfm-k^_XH{P$~aL-8quHyXROM-9VTv}JKlGL0;B^spPt8@+N4`e2AVsS!<8m;dp!45 z!@@;c#l{6+qgUoDt6z6aq#Ec(lf8}9pRq2Or$=&8${Yt8pGItvJ%avVG*dHWa~u++ zdD%HDp*|B3UQbHh9xmkhswMP_ujzXi+X0V>oqSEx&U8_;T^1YJ^GLV=XeAwcKYh0= zoXORV73;!-$jtqoSc|u{<85gq&4lgbjCNT#c`}SyZ_12z>)B!gcAq;A&ldZJ99>_E zH^Qk*5lR!w6}yO%+}0oWO4=^-k&`~d$Lf>8d5Vp)R^hHjvo8_`N4w&da%IWakDL0n ztpG;XRRb{`l3*AA*=pel7w@-yS>ougY#~m~Tm2tI`E1r>@mF{Bb~IDvIw<##r$D8( zX&j@9>%syWiyMt1=j;@%)J^GqW@j;?-w&UEh#2x}FHzb#Jz#VX5xiBeObNoeM2dqQ zpKFytuDgm|b09TATIA+YeB?8`N^}$VSeo{}o;qQ(S}&OJg&Z}Tl!cdFR|se$Z2F&1 zzwF6gA(pty8#-yl=Q9xEAZ2AW&uELVJ8(Kcl&;wCE-hMr5MKmG z@ZENrs{EhD)T0&KcJ5-$;fs^DCkV#dyy1)^7r;-Aw(t9nsT&DuhDIr8O z@vELXOb4vQ(D_f@z8tRem6vH3$98_C<(*GRxX5R($v*G;BNbVoB1j4TpcUj~OE)WS z@yI`C11DZyWXm;$WjH=ux;FYlWtXCVvUM$O=KZD~@kJN>5a7ZL}x z_(ZNDo>HLCD^#AbKr@X3*&DwuyTuKT=PSCRMmAWfevw<1ta?9xAvv-Oue#C*?lJ~F z0-KigC&`ru|E#-XicMX@0>*y6v6OUwoWjZAnCfM!KPmH!OJ=!s2zeQNsVR~@R4}bU zk7o8nB9sJEcH}x=Xy(`-0T~+o1Mv}~H*S?Z|6C7G6dR2r;`=#i2}Y-H!C!`k3uW|N z^WN=>B((M6*^|I4pNyMtbe(mYGT}{kSREqJn-jpOl_? zr2d1^_wKtvp@E&>7vexNfHq(ee)IwzV4^clCZzGueLF!d^?6`lG)1P8oJ)T=`eudi zoIGCV`o{jSjG*Vm5rv>iF=TipUB@7hx}({K3>qMpba0P%v~BDosR?z6;PQ9QoQt-; zm`1)fbwYEg5Wz@3pR<)XHoZ2E@_XwH&HAzmpbS`-qF3j%PuxZx9@Fxz{&u|91lKxbP9FRSy!T*R+=|v8@=e5k zd&_?15s2JVm?4wOU5t4DKGdDl5S%v@b8fXy6Me_=KzK6y&jU!R9Wr{L^YzX5n|HEO z7?6G=o@zO_)3j!uXU8J5T2Sw-YavYMYsorLKkR&_ET|&253~Cg=ZOPKW?1>$V`lFk zgL%s>Fis6Q7FobvNw~NmGC?NcyK?OppT3^ew*5#3-PhO5-WxBgt0{O~2|;ON`|e!t zMVi>1fM#dKDT~cYI&ihhe7VJy%w95%ae;3Hkt8Td!Gyjv<6>VY^)T9c#i6EIHl$<^1dlUignFX=49T}jQUjI z+3px2#qaddw8Y>r;X;J#j??c&c6xCk|_B{8J!&8 zMsfjLsce}}q%MUng`c)Yox%EJy=!UA_PgpDiSv*{F)ipptS^P>r&C`X=W|(c-VlQ~ zI4)54#XjNA*M~G8c{!^vO(%Qq@T21%2 zKCW*=7j2K(5a~L`54792M&Zego;+TNBG{;6%LC^eWr^P_P zt+Gn{Q(yIvTHC>tS1pH2%I6SB(dz!-8Xw;e9Tkn7G>ZcQ$a0?|j+=z`j>Mhwyxkn< z{ybQp#u)O3c;>dS;E}t z&H?YYZ8Porob37uK2$|k*3{hlISEMNEg4}NkrYew@-@uAKRfOOy zkxHf@D6!9Z>YxzS%J?bT^MmJygsxguIbRPPzfJ5<6pY|U%ky#ot+GogA~jo zOTV@cB3seqN+O~sG3Ni|)9%k&KUa=ll&j*Xb4r$|aJZ_{=gOwa0m%_DLcTi<0kAs6 zd^y(#Io7SF7XRR%4sRge=pF$wth%e<=8?G5H!g-C%b@MDOJcWCb$OaI>#G=1pvL0sRVWyoU?6zgoDLaZ7-an2Y z*B!A$*o^4OkEsYEoo1isiwL6Z(rua==>hzL@;|sB>@`TGZrr7+^Y0jP?>kg___tB)Pvk0n+ zW+mGEawIg%qsixMVjd(foo<9@Ob=mx79*ZY<>frt&f?t9V}2ENWC*@A-m2VQIa|?7 zWq}kgEkaoPMJ*`>)1=7>T;0{%jLDp4V8|d!b${IiK^+JGM&{Br@$hdXg3qN zE2kM{D>R(FA7N*hz1;*y0JTiVulPmMBD;L4iyu@O!op)+stL$ckzY0xl59agN8jC% z#-^4R#G+*!;%TH1;~Ly>S$R7k2r?Xe;AWz=Kj1N58Lr;Jq>#UIwVnK!wuf;nhVO1G zR;5ZF=cz692c9i*Y?D@nm0WP}2_fHAD46apuu#tDF2_2Tu3PfM0^^W|9tK(?TbMcR2rnT4US zu4uMUxN>Tp;QPHX-}W)vV&qi5@GtJ02Uc7S8~v27x_g31(ei5os2$(z*n@iUpC2Ss$=WJK=QvBsh)K$= z4*&eK%{``Pv7J#;dUfvaLpf|?kThz*>BKo?LC-~>B7o{;wY^{r?{Gt_UJt6NgAg<; z2E#bfo|D6R*XZ=5!E}DedvAf0(PIbki@L@Qac`2mP|hWrU>P!0k~}?7HtZ*MMQ=EWBzXx z$HY&f%vydbNG01LnCpS?#!Q4q3QjE{ovt@{e8(ZA+BYa{y%mp&`D-e<`^$~h)Tiv` z$Bl4%>PHGjt@R?SUoyiiIL?&6qZl_bKe>K<0M)MZXv{~P7Fh^eS$ij`l*PO=$nMsW zV`gBUE-{4I@W^x`$KUgXdy9ZaY^P^;VZFD1T8@_A9xkpmKTeiqz6%jS;wXy|5?lKv zTkS<~->H>UALyoaO@BJ#m*g|7!gQ8dzqqL~^7ARbuF-9!`PXY1Y8gmq#( zQ3m+}rpKkPWYSr^wWM6rs-2py+>H#izI5tzZ^9>x6Hl)`M zcT!k%e_BLHt29K>WR|2@#&xr5hK$*B&bmv2fV$Iqv?|UsY>`zx=w9=$-BW^$<6fUy z{{U-3COuZk_j9k@zXPre7nM-O91o*$ihcuj=Wl(%(8LtGfYBybyC30?#;LU*wi>Le zmP!yh_E&MOGuzD|t5cB(Z_5YJe3cZtj$m%RoE9_xU(tY6e_VQ@D`L^;g+I~6>P-sm zvm9xkv$`ch(e*oGkafWgSFD%i6?SAPP3F2j&g1#GM6SE)y^6GC2{5F=z;uk99S+*mFxdgvGXHf z7)N=8eW;xV5e^4Su6F6`3QKIHG%yYpJp(V6jZnWfTEqs?F{sC+b?WZB4N$T1-H(@498>2*i{SJ-Jx*qr? zB8yjBbURY4Lt-n4;F(Cm2eT3z(Mg3NFE}_oCfIrOR8p9Jz=8SxI5@pSJoz@IP1bD` zd>bG2OP4TbPs999c)w>6#GUnxg>h%y3kzkxHJj!Vz05%tIFH}Pe6Z-^YMZm?&f>6Q z_p>0=lgCo-G2mVn>E`DP*gx=E2QB_j7C^Ylt#pbrfrNuMkvXV4fJRn4_*MrS{pw7r zXqFm@e0m2j;I}wrSj1PC<%g>6>2Yb>?yw%;|C^sTDaLuHt&htvrTow}868ddYC%KjjtrX4)@4Om{Psq&H@ zB^<1+2Et9*{`k*{>%&QP+vg1{HhAe;gA_ch=S}vno4!v8+V( z>ljF%nu>8QFSIJ}=P{j?!V5W^VtotB!fBl%Wyg`h)IY8Z5mb&1{DZW4K1rpupKe6; zxZ5B;q&k%V;h3vRipMM+)MQqY<=Z0ubn4cX2Y8$Xe-ax+>t`mWC`t;x7xo8s>=1JJ z{kBZJvR1lc{mSzE*krmr$Hf_$X_)%d8a`fw#qPVIoU84hOG%4Y$eAxSMe(%98TeB-tYAGri;W%aXnb-rxAH4&eoPx0maBqqsUt$)R5= zh7`);aNCwZv?tMCc>J!q78^&g=TPREs`>dBuj*v#erKe~t>#M$d$KUZJ4anj91IOc3-W8cTHZ{*odlr7h8G(X>%!mE0@8)l{enZI9(w2Y|WbkuQm0wKb&%Z ze4HMk_Z$)>tSh3?npz#!FeA`Sv$w85G_E3k@-|4BKfEoz+3s zQcxYwTkGr2i=T&hGD;{zJn?)9_|5Fr38lKt`; zbuKsv%V%9(KC5&M^7x`SCf4OTD76k!zJr4f%Gl>)l7NVYeR4BFmV49cEYMm7Ec)NF zc^Lk-TP>2JM?7ObZWn16&FKB^o_;^eTBRs=WRan(D0kZ_j;gFnRpgq=E0@ zwp~WW?}lzqlW?+P{(({pI&;b&T2X_bX;H6DO0;Y+LwHwp@{V%TIbE4>Y{hlpd5`a1 zelA-3iw4V2p54Lj@rNkG0Wkr-EV44pY|usnp}YhQr46}n+%Yg_wFE+uggVp1$l7u{ z!&PacX}}$)_fM~nrkzo@^|MUoJ7dJR6UZ9_LkVueXe&Cl{U}+$o>t?=Uf&p2E+1nW z$0z6djtOxjTzuoVeD_OK-LA2YySR|*qkz6bUir9Zb8?=h*AI_4y*JxBcq1Rz^Th3ngwma7?FHN<8{t5ylx>F&1c6?q!PN30dUqVj$3(xl^GIU=H{wdJxBAlv{pGp*ros!M_^(uCp~HRPJY3*R|u7K0`elX&_vihxpngp*{R)W~`{167#F(YVvA5nRoSk zIXjYCA%*tTXtEqGKBpNy`0|Qjd-4%WrQP&4p3ha-Dm1j7EJm7fy~S#*NSho? zi>8FURfPrAJJ^=dzDt*D+(prlJGVLHiZE-i@J1=M>9O<-M)-H&0HpWn>V%Xfm$uZ> zTm5pkFhXj9K{5YgV2Dc@-Q-Z-PHrH(d3mS`qh=8znesLDRdnZl^+7p9?6ryauFquG zAT}*kwO>UeC9-dY*Sqtv-AwKePK4qjgq(qP;&5$f76`l#7jmrVV)n`m9;ipEGg9!(#hH4`j zFIDmUP=iJF6v~<^v_U_fsJxtjs_(8384*2;t$sHkc~sTEbu{PajJEWEQlX*azbt@7 zPd)8CrRr%?b2Fuvj~6*D)(31F#h~$6$DkL^QG+>(U+d0QBk_NzGx+ahR@n#Szm-~y z^f^oUVH4$;PQzR4#dn|$t7{rOzREcDJEO|)iro*YvcRv04~5foeT-{c&H&E?d4wml zWs3$Q$ZxH6(wGqUt@^ntMSg@3hj72BpZ}ap(-kDPeb%Ai>FTZ1!hJs4Fde9#dZfZ! zWIQlO`@kJ4y*MoT=lGk>iws38cN0`Khys3iWXQpdZQ@E{v6H+QQ&m@gpq7zTPE56+ zvXQPX&*os<`YvLBpz(OhP-=U)PYlK6j2s5yDW57OaaF4-s7W3Qpn1v%#si>OeI+$B z-D2?iaVUl*%dN<>;ck#-zLO*R_n5;yD&K(5o^qdaj8PNANqyV@FJ(tRu16AcZT$Re_gL_WTr z8;o=-))MdS7x(6{NHII*4`A2^kq7^7*esqAK-FXYRISZq9HnFTdcwQv1;!T)gdn!x zl;UZ+Y=qst9i3bgnjz{XrM(ED26+vg#L(|f1Rqc5BJz@vYgFdC7A2>^3y~=ye4FpB z`7E@ftAQ64BZ8Af$_XMxYfQ6@g4`i-5<`6Lc`s=`qF(i&#HUCF(&4rQg3dfIr(YZN z$z#&LrC?G<%6qz;YLE*wt*I2KJ0%$Vc>jD?5sHc8)$uNGYUwm2H4#)SW4M8GJUPcA z?gs+x%Vi8?XN4B>Swwh<*uAU_SxK8u_XG5I?tak^UFr7c)pNfik)vZ*pve@kr5piN zuEj+tR+jk>LL~Q;?^KL6X>=H31iGJJKn*J4Pkgd1kw;7$0A#YK8*QKPxBSv{9TpFW zu)4iC(uW(JV()I3a~?D6Es2Jmx^#TD2;8P6sBOTY4lrX%k+%&v zB}~f9kZq&V4IYuo#SD(?yeXd$G73RGE*<#lcI#{gG>4Ut8LwIg^s0a)Y1dZ4L4 z8!*;*h++C~Ndb%zCTxdi67|fswTHXWe%!xZ)$W!Q-o5?tyS;nW&Vob-$^4@`jZMhZ zBS!H8&q&BZ%D5~-XK3%`>e$Tvvwl^qU zSgnT7=es)ZFEPGnh}r$9aDTc=@y{#C2)}Z)1n^er({@`--#feN-{>nfnH6NuVG6J0 zY?XVhF}N~ST$gMhdA`?HdGPx=h5Mc8g+xOKJJZJNKpQxETgMHI7LsEho``j-o@p11 z807hJnk8VDebG@xM}T+D&t>=MInR5wHHW6j6-A=na>3XN@xgF72T#Y$*Im{}RaH@8 zZ>F8twTrcs0$*{|(q2iE2T1hzTi@%6+p3wLi=nw5VWUo)_3WPU80j0XQu-|g-lk2l zb?Ml%l;*!mrg;sgls}Ck;80rwZv?mFUpirbwY*-^q~I`6xXErL?L5# zTUM)$2<|}*0tF3lm|XI;%-cUd0_f2@g_crQp*nKhYdk1ve>Zds7P0b>!d{FUA=aZ) zQS!c=DvYZmYZd+JQ9$W3k4?UE3delPK=Kw4^5@oag}V~Qw3rUB1zz271Lu9sigxQ6 zfZ%X`kQ>7EY9p}|HKH7|u0VA7>jeLcuCoA(qFva(3L;8Nmxw4K-3(fuHuv>y2l@(HpO8K+1syP+jTsUK$+E?peew zSuDPzqiF|IoAh?iMhV*VgQpB`w>j7sLfmha%sWRbbG9vyF$f!G4ucha$@@CZtc7Vl z7VBTBB&f1oMc_!Bj$Dpyg-wkMz>h}hfvOlHgpt&n-WBa z8>6SY@K6dAw~b5+S3Xfizx2|}rDc3NfM0Oe>h0p(lT;y8K~jZ5P3{Y%=!qMSVdKA9lNR5 zZpes2HJ35oG3+z9c02+a*9kQzE$%momW_6N^%xf>dWZbyUF7vFOCQanKSLB*juO*aZ{YgvEG`CZ`#&km9U;7nA0i}cEezpQQ!WX6_)ELv zssrv_qA<@x#z49!n&J7+p(MSthDYz(KEHU8flcCe^$oO(x!Rtzp028RrmgY2k&baB zr$6wx|4A5);M+51Hu*vJ6Xlz=fX;1HyemKu9n^{pGPX9AEQ06;Nnw;Kbkl z0&MXyaMAwx(iz*&I5qq&?)|@i`}2z-T_6VV{UwD2*AFuE?%VhOa|ZtBgKy-4Qf?)D{qeuP_^+31p+I$V3V8ks|G%9o zF`$$xJx{;>?TNnG4(R4&^J_4E{BNgf?531r%#2U}+i{BCoa~g$2P9bk_fq~<(jVb3 z8UUlBps!x1%jbNK6K`}tsSqHSgyF5d6>iY0KS1xi5AdUYvV{4&w?;8%IC~hRNaa%&&B`x2Cf*sHcfFDXfds&>a&`kD-4J_E1 zlsPos{@jODhjO;|Wbyp>)j5N)d*tsoImD-3(Gk5L^lZ(0KB|SBFCNZ$qFmzu612aY zQaFYQOs6@);iS^WY-KYP%aQYaUFL?2&RZ`a+~qWzvu#Q}ymWcN)~?mq{l7Vhket1& zh!VyS3eG;ZvcSQB*DW4!I9XkOB&p4QQ}OfuyS;Z?W=@8^6Z04wmy&G zxkAhyY7TRoFE%r*4K#xKVS4tLWnkY-0-x2vDRZEI5RF4AsMPz!dXbos5UwhH`O2Ln4p{X{jO20T>)sy z)G_If+d&7HJ1FzbA0(CQ6nb$5jpwmpdY+eV4Oez9Z%JRip&9Wlw^4UU){oBVW{-(~ z)1Qxfn^k>wJ~{D`9Y9nZj9?Mck^Gb4ZBE%a?z`_k+`-SwruL(Kxa?+G zOEwuGef^%SC#tT9(9qUdtVg@*gy?Z$BhCo8egLr7?-pBRbk&ep-aK+BoR0>B$1P^0 zBDF>4ew+voF)uDK_TCkodi$+}A1@lv(f*JO<w?fwIHHcp~lHc_AMwl`jcF`GlBFsJH8 zw^@BTIT9(_HC{%`;nSwRe=*U_C_^^{FedTBi#tyRBZ}DIX`Y4(hRZ!k_vTzaO+Xx5^ES+p|JrgcVvSLrbV;8Q7(*Wy^md&nG`_G zQG7r@h+51!-|Ol%5$#pGC&SzIzCh;H7?`ZXeHhj~f*-kqGTh^e)q*cC&FG z#8-d`X4Pxv#SDF1m|%po+zo>eO2b<_kX&k(g#GMgzD7B60Szv?Kdj+n)ymG+?lG<` z92?o$^Ge7Zh@E_YQp~>wECNIgH~F%8A{(^K00u&Pld2y?2s}S8!ZLhUS9IuFs93an z*6BZm%Q8E;(T&Fg)*?Q%*oevn-v*dedW~?rL@YFhrM=NEm4CgLW%jkub?uyeWJHro zWWTOH7oao*o25kIb8xkvWkpE+5Z7Jc`X9=q@M#fUqAOk4|Ry^~KjRhK-@v zqB2`Hz|$wXd31{tgMwZwTSKd%DP@55X@(LHND|0lH<%et$&tJ|B`wK)vARh=cyd7A zKR9%~511!D#1wl9dtUtnq~~jOOFq#+cvkO5vMpC2y-PiZUaitu5}LN(M~9h(iW44g z5%?VpfPj3?)5M8<=9N3GbIA8K)<@dv94c*y}%Sztvjl+zm#qN;8INk(EOb>9j(ky{knZ=>zh%s9NN#u zl5Tx2w~Fx-wAz#%x*~3~jpB25eq=b3W3L}ikwbd(=Aj) zEuJSa4blU#yLEGhg&GCc-|UAh&$V(L)}T3tKs0HzW?SjQff3gQh;Sl5sCGbLxw>jh zDAvY#zzc}XOQQ3%dn5s14O&;|^y}ZF^7N~1m2EQuRN^k7GdV_PVZP_x0*Gw$LL+|5iG5ic^?e}?-ss^H0KM}} zcK^_#OCau=nlD3Zc@B(Kb`#k*jAKO6%?xm0B4lHx)>ul!{ott{RF2lxtcMA5Sf<}| zJK-h+FkF&DzVJf{bK-^&I@7f*jc+cLdce0HZ2+U@^osiU1qJ|W+WpY&I%3AYhgQwNSN&o4*lVH%dZEs4aV(vqJ3CIjjyrB z&)UP%w-UXe5ezJCS7${zM}Z73Uu|kC;Ap(igaj>A5ssqE&eGQ~fAKf~oT#jQ-|8JlYKw zHv@3=Rt{iHVNVKFdM$JDSJuDAZ1DIy9G##>d<3ELHOVBCX_dNRCP^e8T{FFudC zoEXgWPb(+zEbg_ea)t#A|4DIW1{x0}dH;?tdPR}@w+<+c^N73o_t@iW+&87w)j!-f z$ER(;ALvxp8Rw_8`%y*LDlxHb@HB763IMXpyO_-PF;lo~yUg|N;K5>Zc;hr*AxMgK zMxYX;*ffY?r*++4qrP9IJqxE8(L?DR`vpBxd+Le7@ofK;F zLP2C*HBmsagv0bIo+s2=L4VsK#q!w=hM;hP9&Y2|G@N6Z%j;sxUc$$+N2l`cHZ`OB z@~(92%360)c|vq_^#&66y8t7nXvn)_g2*=s=mx9(E$J1@)*0jF3$)a9yX*iBkRJC3?+zF)p*}XWiUF8doi)k!Zvr;pvhUWKpc$- zK-eoBhplu{*?DUvV;_zW$JdOBm@2*PY#h6+;(j<{V(Fg@MJamsxV0Pv7rj5o^g4au zM8@`vXpF28rvXtINAHRnKcD-mMw2~p-y>rc@#UOBp+HOMERMU?-o;}sj)3zBf!lUl zsxM;eTxNsM_6avMVI#{{pl63;aI7NZB!pHVI9m(zF?ap-0=k`jZk9H-Er7Q)*~mjj zL3&(eQ{Eqk!1k2LiSlU$qk+^#+Hugwo`rQS-}57G#p{KWGkkktllirn%9=&YqE1oo zNm5Z+$RH{*kfF)}*}Ph6Mz^gXW+|(YSff&8yCfT*wRmpApXZw{vV2NvOJmC-aUX&2 zdP*y;EQN3(linNBOO1BlP*lWA43r8RthK=Ga;mn$htt#l4BO;RxA8sG?tC@oj+@8v zRf6b|2#06_G%V3FkqcXs;u)3SzA4MheHAYXStF70ZylEJNTE&Ee(eWVb&rHp&Bds? zI5KYNC=)vWrwKoJQk19?_?&RW_5q*dXT(pE1?((38=9~{M}^X)xHU@8sTgMc{@mjC zFPAgSo)X|`C~Lk*B9Pz9DCuthL-t%7uID@Z7cHP#O${|!Ic1A0*Z=g=dyZ?hMPSCT zo5m#WN;aRDc|OQziBPHh*O%e-c!R{yGLh~DKt;m1amZwfC6n*YYhmp2t5E)gdl%={ z<;!bzqQy&qbmEiR0@~?REA|4{l!F#ndxZ0ye0u-`Iy%;9>-qcwdj5g? z6tqyOBbU32GEnVWQL1hYE?)d+^%%dSVQEg)8(d;#xH+pW5T7QE2mZ%~3g4)d_JwZ1 zXrnG;jA-W_F|W;hGihF&g1`#0a*=X2*bNe~DmopYevcjt(D~>3W)PuVuSWQ8{V70i zuE!fHzm2w~!>8pNJH~SMzXGZJi&GJsC~&gyYsfvyxE#1&o`EvBq1ht^lvo^1O zK%-u9M>$i~WSZDHgZs}bonjUVS%#Y3;F_UfeTU<_V4=^{s{{VrZJV(P;vk=oBcC&a zigXQ4JKKlojTBrni6#wE-wDUAVk206f*Ro=_Kf)6j83A_#)H!!m5xqErApqSLwZBy z^RJ$a2@PA9aId|-+T%0#rnco8D$h_Sn8b!ibp$WI@=7YZHoPD8MUmM@b8Bn{ln(9@ zMciqocM7i5IhjABI7@k3o+jv|va(RORJEFVG_}s@miwp}!XAGe_nvaS`&~vuHGgS% zBTjVses!8LKc$B+Fz}hf$klUegJ~>3aW%iYZuNgy?7P+-Ac&FeuT~K&bu^o-m{R9v#XVu2##(NyX? zqth3-e&sJm$ek#`-?QeJaiv7ctF{6_9%%>CVS*iZ1`5vuVGp6-@5XwSwIQJ~Uhb;( zZTasXDUqNao7rI!p(LwV%{pEBA5}cgv?*(U0>qQ$M3`8m><)}bW& zZh>D>-)ObzoACZX7LkGC3&UE;cUfeRwrm|`eeZjwhBl>4;#tLrQs<&rLmX;W;wO7u zzZn-Q!O7$6l-ddKAyf3Zulmq0*;Dd=P^Ao&Ww_$Ec%?qFaVsu(SYU!8f0)GGNa=F{L;`Z>k!WbEHAf>QcR`9!0znU@H7~)w& z(csW9d-AhRrYBa;}eSm>r?#xzM}- z60)(xTU}h&49Y^_p$ys^iG8?9x!Y%DsHKLA=SF1Dj3*yt?easO_oY98DS&#Dr8N!T z-GedC!sD~RRrWKW@ZIS~cwb0<_cL&&Q9x-#tFgiF#xNxrPwln~$Ag@lZv&mIG>Vcd zFpjqH^)1&1@?w*4YO{-qH)pB2U+<7Aod8udVWxgrf_?mU=PpX4Ks3m{Ls`rqM!$qP zggl9Pdn-Q69TTF>EVB-eMA(xTC%Q@WTw?GPT92l#UYtHIF_L!qMxxK-yPW!QP^BS4 z5LLiUOQGhDaYyUj1=Eu{xC)5cNk>w&hqNA0GA8g22>150v;q}UM$+nM0zbfF8>!s| zn;%{@vPp??8T1Fr^k~noJbLyxe*^%l=}5lQGH5$}P86j~5^|}QL>lxzCP;d7LOm~Um^dUk~LmTGb{cj~*N2}D;+b0579T;1LcWSZc=7b{hdYD11s#Vz9r z*wJ0^_UYOE9E@J$(;_D*&B-SB^&SAAUmyYtb#n1DqMHy!PSmp4kpq1(#;U4 z=3QVeKgs~3wIqOnXLElRzihyTHA+>LS|=h6zG0=a^uAiE4#WJ>!<9`(>E{|Ktp3CX zPdTdazPoCl%%%uV+}K*eYY&lFff-8sUY4wmF1#Ce9dMTv+j;cRzm`O{pV z2c81j8-z=Wu>me8r`aR9QSDi(It%jIJafiWZtXJJoc`Hmhvp|MzuT22%qAVuKE1p| zn{lts%p{PDepiB{tZ%nC@MgRqb1tI`1<_ z@A$TAgAMgYc9zjUkcD2v3cC*oSG>{xpCp3mDwa3R&O&`>M=!=GK7P-Ts|goS*mlxW z+f}AWS!SF%1N-h+r<_u~l@`fHL1hEi~(X#Wfept&)st2 zCvnwf>bOcE95mA~`Ly?(-gS|g0fKpVYUW2$X)6+Ls!{@R+;MGTXK?ueaRYsAG?V&= za^2|%daw>(c*zTGRxfq9gNcPGm{Ab(f>>;MRCpdxo2ohez|U%3rdbE{Ka`VTjf!-s zhI}8al8=3Ssep}hWDX@Z)v~HJRUUuOBhM6wz?#?;8=3kgw1_uM`8@5s<)kLE zZpocJCu~BNe(^L-+5vkyzqk7!1e3kc2z~p5WWdIofXS5JlK14G0mvS=N8}U9n~wA| zgfg`|KuJiJEvjCIeoj<(p`^v{?Zj1n4-h-m0t!{Go!%-K%$4Tm_NDfPgk zP!AIO6;|g_+6cPfByPnxjz}7L%~(m7B_>SEvJ9`{hj~v{Z0^eMdY&yi(bBX6#rE{n zGVGa&S2=ESgZugz$%BD!@xKbphYgK%bi>uBgP`r@K7sB7`TJIcA1)g$&Qk~7shtub z^m#^lb`3d)r#t=GSthXItcU_ek!EwkWh%0(3$jknm0L45`WEbq2kiH>q<)P(m|Zpc z%?NnFr2m3%yB6aa)J?LBqz?(w{_#$_d)f7>?MBdtQkt;+~cVs z`Sju`G3AK$w8jy`>DLH`{wFvgN+dif>)3wn{c z5G%r_wZ^PX6d`E#_JkL@CF@Iu*OCU0o)iYg5GJtxDUDZev3dBbAgVq1V%}g<39}u} zztNVs^18*;m3;i!!ou1G`4D)3g`g5p&O;-SO7go@>a9t)*9$8w;u9Nr2TDJEsnsvEznjEwXp+c06Aq~>HzSs6C z`{;~ybD+oUn%n%dnr(z(FG%lv;zIYFXqS0E6QX8r(%4sjSP}B`i?NE~z-WH+Mfr-M z|HZ{*@bhpZnPhoy@3g0+-u;wD+c9s|q15`@#PDX0^oC*qE(O!wx=4@qCbilk9S$;n z2G2_appOEqOb8lX52+E(J`_eC?X-#apw~}W`ANB78da965nYYEUnM)OkWVk~VZI-t z>w8gac3wgQo_fymoFEQ2W{ZJVP=SxOw5MXCjF1rd^I*R-p>C~TcfD6`-%xUV-pj)IRU%aX$!v_e4Uf8cT=2s7_2}_L2 zWGcx69#ehU>W@@p=J^eIkQ0N#r2Vh*=Y`hL`uWDG_LmTofW)C3pTu%zZ>tBezOSY@ zc%z-wa&w>ganJgM>xKlvHHbfb6B>+YN}F>1MhQtE5j?(8uOM!HaY3tvI+`!O(F0bG zlKj^wZ^o2G1{KUk?(5tu8@SdIkxo7=^^0ODW%9B~cW|4*iLox0h}+dD1=zDNYPS zZZK)f$0mZc8QnmA;=x<$*Hp;d^yEMfJT2y=ieGXmsvtpv#l`lj(zGHL#!R%AWqpiB=;zYqIH>v647-x} z`g{deSS*4Ie7Ui?4}km9<;9V(kLE94yB!Ccz>`wr60niOUQxn`Y|qTsmF7xMvM{la zampAqL_{s)lqb+XPJ{ngrs>A9dwhq609*<|IEI<~{YPY2>9f@9<}tAXB+-zf1Fsd!LARJwU$ofp&PI zued?Rh}olq+F}FiPRiUpT_RI43&iKoxh6Xj>fEz=CLVAOAxuN^U0_tS`@K*dpgsI> zljT!}C&aet3BC_4t65Yjbgm++6Ki=bE=Am$Hs}Sqd?`=#5*?-*U#$K#|LpE4Y>vm~ ztBePX5>|$^5gQK?VYLQZN)t5lDPs?d@!Iv~h#?Ul&tim3UXsPi^{}ieE_L4Ghv_Tg zc<1@0OB2@6X?@n(2@7)Pvmd;N_XI{Kw2jLiB>1L(OdP?wE0g~v&Z>TK^mISXXOst- zxS0&NKYL9Ez9Qo~Tlc?lWN1)oiG`BCF6ScSr<6WvAZ~ucP{b~!-#fgi9CP5UWUAOeIDsT#;)z=vphM!os@GoFq zG48(J*jp_i4`A0O&HDinS1ITE`agFI+xvbH(TBxb?=C}0nGKMiEtW@yjWJy!<1&#! zTfeo+KYSTDi4(W&8_2HW2P#Neq!&$>Ezz)-$8DTnDIrRp@E(XS<#TPy_t(&C^cd1t zQM*N}Dj&SSXQE7J?xDX@W|f6hAVUk@1!aEeZP!>@a=^By`t;obxHy;>BE92A`KMn= zG5hcbK=zyyTb~o+_VSc{;hA5}qriNF^U!ML+X=#bd(@jsrW_Bn2txGcV|6|y_K9R_ zDQjg>@m|KfiV=E=__Mg$HzKkV#WYg+y(vBCk7OG)i)EfZqt0FM*-#2vC0uiC^Cz&_ z2KvcjGqIW1;wAQ3ry!}X!Bmm=fcn<<=LSLV;1@Z&6Q>wpJPiVh#yk@<2n~%Jq%XqW zAUf5!YNnyyiIA9#G2*7MWV^B@h4W~Tq zQFQi?Z1{6bV0uS_n#p?bh5HC8q;V~xGrv_s3~zkbKB_>DWFxLw@gqTS$D1vJ>H+Uz zXi2G)lxkE^E4g3UBUR&+hWaX>qFfS53!KYG)*cc!{ zMr2zwIQ$%6ML#+?680`$WvB{yilE68^C;jCXANZ7o(3%MV%Pmonk*lBYQfEKToyxf zdDc_KI(Xst%@HMawWu`YX^g}|h5t@{XE>1gqCPVuGEBq!u^!@6?SH>B$RCqiG5={H z>@8fZ=tD`=^GU+0-S(jGBwV(1d^__P`iAo~7>w};$?x}l!-uPzrr_T{Ux%2*r@HoT z6K^-8hlGa|xvFN!-(Le!HhTBiL_#f{9hi7KLhz|XUVK`q_BgTzcwrqn+biJVDU&(W z|LK*9z_;2^{cAy+`4<6%^dD2-2=av20J*S4)E|9(&vb-mdPF2T_vr{#X_ABr&{ayS z-yMy7)?d5t?8}?~Q?!hx7V=8)ny(2dHl-6Ao!X^?n`bwiCB+>8(u)$TSf}9SBQKz4Br#4Ye5{!E3kE5HXb~IGLqDOU){>HmRH5+uf)-a>gS0*?5;^SL`x$O0=o-So{rogVPMef6rnlg%KF<{p2ug)<#-S>JC`E;|mhw zo&z`ovwqH6vNPi)@8cS`Rx7$pTT8mtM0>x!QYcA~;SBWlYN5k;0BnCAFh;HO-j8NG zr{_=aq0Q3=o)cO7lRF#+zrGMb>I>H=p@|Ebl^@q1%=L(v{-yl4ZMsqZ3n?=u6q+*7 z2>=JwEy@l4Cu)Gs`U^FPK@HZ4^#XQope?*3L7Cctw9A&m?S=j!&(1%(J-&9-YQz44 z_)$=0n%Oe}tNDpIEN|3kR#Pgs)5cIFAnEB6+wu#j7m$1|4H=O=|D>x84;6cFf_UI! z`%7(n5gN4I1MQ6y^JmZYf*4Y)O_Wzuw-zb$`3N;8N1!Xsa_>rz z`MKtPT%kj-Dlho9U2+mE`2^DM(0Kwx$zAy`yK_>{YOGV!258Q-0l|FxXw;}9H9WBA zx9gHO%aYf5jZMoW45pKfdc|GJZQr^sw{^V5A~SQeoysD@ced9_WbmV-xT z_z?WAQtjIFGyK;VYQiVO0)&&tvtVv&ev8mUhLPbhLpl>E!1b)e{}wXxa`@mn!8^H2 z^Jy(ozBh;^#d5#9og5uq6NjN+Z|1mpw#7hS1D|$Gp;&JY^?J}A>g=G^>K3UwKTE5H zvn-td#deC?ShN=)>K&;B&knKykA5Sk{VCmf$H9WSp0U+{)Q9?r~iu-_*w~& z0vyAwlW}@Fd4(r5fgv}f03iIKor|HhZ#0zRA2OXxG|oNV5(n5KQ$CpMiLS}U$&P5% zZgbJQOuuS=rv)3KMzx))u_r#|Q2b5dX)zt;5GvAJgnNP`A7D+hHP&;G^-H3qx(g^^ z)oIaFE5^-~ECbsWft&04ZpfGZHJS^D0{69QQqT{PF8&_Gz?tilm+LFf>xTNB>-@>uv);;gt@w6-So)+D>VZnGE`0*SGKgVOfdx)jB_NnfTiFZZ<1-mN9~;wFrqi}^`zJQcwo`4vM09>{jqw@eyWDKQ`RHhqEw z7qj&&L{19KS8V)2^K|WBuRs$3zMZ}f{3xfSH(MFn^&$NrvsQ5e>~#1L7e|t|at{^qYKGEE+k*Dq1Q3ECNI8Cyad(8wcPj1FvhtHg zuESCImg59VHPP33Q5q>LLa~ zb0fjv^Ll^Hm>{6NgnamMSSqC0&xZ7Dbpt(@R!R1=C#|aZ;YYA*>T|S>fviohg|hZ= zY4`_g-tyrcxrmOdScg3;YklO*rXJ(z0X0)G8yOLjF8QaOM2}T5`etq-xUd4p-;392ADxcZ&ThARgm&?D zI@XFHWE(2>*JjyddAJ~I$l6BPqj0N zYeibUEf9Y}1Gdfb1hsTb-P1K$vK}0a7F6mnjlne23L~kdA8$WaMtmj}m126(whS)r zWmy6`d8W#S-$ur~;3jloVR}{h@uiA((mf{HaUK2Npki|r_r%M`2kj8mR_ZxFM~P|f zL>d*C_x*>@GXKv8;d@`Cg6{yDXY#D&Git_8OwGh(zAG@HI7h>=W)LGA2Z( z*NnNTxw`O=DqW@Wq~nQg5;rlO{gFLU%o8?L9oGhXxD4m1B!8@l4q#KI<_GMA_${Ul zK=Ce==-#UQVVim@*cz4M(}y35gsjG1VTKzKx?$mMb33q_{9&&}ESnos?B}*kB^o8~ zImbL?1z|*s*FUH>W~?>kLNDN?9s#{vV|gz#)COEP#y8~VY^Xeo$RohCvjTf2k22Zr zF>IHYwzF?PCs3+*b-Pnpc!2}c`>+JB>1bq$0X`UA5;{o;dl0(d#eHB>Y74LiF8EC} zM+{0cZAqBy4@`*%AHpEq=q>3DEZxH(9Mx(;=){tBd)64G7RGK-TZ=;=J-1N9O7Gl? z^2A`mi8&=}g%l@sd0faTGyq4eTeoT-O55|=2;8A~2bB*s$>h61Cd_B}c#~6Il!KEM zlhQ=*a>~th=cKOyfBM*b4_saBDj+mq&XMV|WEv4O+|&@HXiebQKLXk$iR01U`1J4i z1eC9+LarZUh}#;fxgk(Z(BE2LG}1s9Z+fqK zhc_Cqat=Zso$W$=LAq7txA+L3?27H=vh@$QLK~Hm{NmRMaUn#wr?_UM#h0hcu3L}) z;K6d#tyy!P67MDMN3k-k>0A;2`AtsClWg7lU0bO3hN?(6*P6*~zL=AJukjXAV%SA8+>;xZ<)T8nx(vHql_NqhA z9gK7m>4q^&S-}A5b4?)$*pVwZ%S^;_r_Z`sRrvd_Ml>ta4aAe zn|;9O#bs16FBa8Ru!1OSjXX*ioE?oi)HOcPX=}d=OJwWd?|DMZ#pAFzoUrDyefS}` z!Onva%xtDSv|brJleAS(saY7#Zfz?O&@XNe8M1CPsMW3C0EYzCi{ToeYuH+8u-h9? z%kf3;Vh7*7Jz#nxmWEQt9%<`yBnBu2hyDUIVI>xQA~Y4V$xlF3eA=eC&RYkWl5I1; z-9}+f+2CTn%s+hJZh=zU1dJ+AYf*Kuaqc^t?HhQM^7IhrB=|DlB#*j|m$28wIu?T9 z0-hs1SEl(V^J3Z*ys;~tT|L{H3tZl=;_9FrR|0TZv4@o_1 zAaG?G>0GQW|JxoO0ZM!>$zs{Jf3Nm`M|h*N7u}f{`EPrWyeXoGc3{-sBMBLFPXHah z<8(phf7^q{O%V^v37_5IE`L)B(Hk6Qy4nfe&-0NQxuLSDR5 zBA-s7RuLm0$;|n^a0pPGz5h#6|LjJM=;5_!Kq#^IxWIjW|1}rW6u!@?NvYRZ3E1pV zVNRp+XvP!eZ3eW@kWkq_h*ZN^AYm=1<$Bonib;I8KKe(Rv`>6Ic(%G=tZGWj5lDvp zUC~1qU!w!4GGkQio0-XLOCM7jx~aiV8D)^T&4&kgf1v`)XUTlwrLqxO=^Ip=}H6qn;AMEDJW9dJF|!_AOq(32&uu7Bk5$3zs>jEB8^*%ueDc*CE2 z&dzIP^BugE_y_fD0)0wrTOBzMBv>^3@jHv$4;RaA1O{y)2dOxZyeD|aYHdAdtous@ z@|EV>wlO&a$tV6KGDC4Cb&Fy;|3}Pkb~;^QYPOb7^1j3xBKqeuR`fEOav*-y`Vr?j zvZ~B$wnUy!LV}F`i@J)WT5I}cODMhMORA#REsJhw2z!QbJuABT_Xm|Hkw1VXI>qBz zC+@A$%YK{D-Se>wEc!G%Zu)e0-8Ac|m)28KOnDx$AF{CsXSG~r+$k|D=(HS7Ggg-W zXvc{!fO=ynOh6~_B1s5rBbd6IX2UJMQ=VnMqUfJ_T=>zq(70u{cCPP6-zSGb3`?7D z6eseTbYO2yHsw8j`uMP};oR_sTZ!6td)Iz88pse0@PbkpyPISPj;tWm#bVQq1hy#1 zcdJ_~3f12sTcwzUOVj$#NC&f6`A{k@`{tS6>Vn)9Po#VA9^A<7!)&eRdt`G~tbncK zTRty<(;v%K29Ga^|F*4LjKn7*dM%$(e;53p>g#@GLL zGrJ}PZVy2BQl7#4v1@gsL6Tt0D`b6(=D{v7-|f0&>xu#F1AEWviEv@Uw7VR$$Aqeo z7$9!M#farDBF*SH4oF_(T&I@?;=VXpQXTz@0Z}ra^B(RD5XUgKQe1KyFv!&R26RUC zr;N>;H)xYIzCTn;uDKk6bF>(07vd72m`_(J4bUUX&eISd;zksrxtv15rr`ChXJ z(&_5}V)Z{UQhy}x0DgQx>_Dn}?SwGMmgE)tU%><6au`4wUj=u&x6BPwviP+#3Nq`v|EA`f!=}C!2 z9=|<_L5~$ygp(G(^<8-@XkIEhe2JVxtvjoDF9MMvJ??0;2+5Ne&bsOM%&KWmFYg^z ziQHuR0?rV=m0`_s96C>01}$!_+qNwnzt2(7oEcA8Jxg+V7(pj06IZ5fSF@FU4oLdJ zr9J}{J@+jZs@+$*?#m@F$+-wI7kXT!)>nnfwEB?kti3uUz+~QsD0jW>IYN)6o9|_O;cJhnK{g`#d~&bDfn-tI>vXE?Yu|s9oU`}G zbH^_;1@vaWB{i2fz5Gn{In`wrbIl~KdgzTZlr*oM+5AJtZhDLKQV9-EU1N&?PVEo1 zEcsbSQDMUxYrz@wcmws7Q)w!2=nT+R*CZ6puB7vsCb^l&!Hh<=-Ke!M&rWKr60kx? z$5qRs?EvHen$o+sF)LJH&sK=nrI2M zjXaRyt*yYKKY3u?0O;?cOaKPyQ&M!94X8Lm6!``$M-NOFcALlRnw08I4M+JgC#~CU zT%a-oA2Fvcxl6O%;s&B=hVs=Fft(2D1k<9=34o}DjUV)t#HGf? zhCCy-p#`3)VxY!$$KwW&ZaaoOtE6n{&z&#s((7yLIcix@E6^~TYhU)3P>U~A_gj9< zz+gn(lGoIO)WjieA{vQzc8!>TYNu`703zwbd}Y)|$m8CCKEUd~7JksH$6b6U&3gl5 zc5Uq@yqbYTdg|tdwaJE!OfTa85VvXbmmBn85VFaicS9dl8n^q!)U%|zRZ3u9H3^sm zRQPW&yzFb4W(8o0Mu|DVP{Vm#c|psMv!vh} zLzK2bA0W@7_@}rfuA?Bt`6dpo^iIfg8o}@wVMAYb>X_lvG2V(Bu1pl3!me8D-SNOH zi8`SUd>%vRGQCVg*3>SCEwo?SwyaAnXl=$PMdZ2D8aQ&S|4r8xJ}A8KB;9LFGgmo1 zE^4WpfF>ym-&F^X)X>>0*WcOgj7=22S4B+hS|)4#|Ii==_=u_|+y;F30+!$fJL-PS=)^rmN?X?}T;Cd{u*`!i}v)^TBri z`{9&+Nknm#IZ>zcs<*g`dTg2TWj}Y@o7BddyC(gT@DNjhzP;3}_2=6BQp0d+U!(hr10999 z#iY)wC(jlDa~6k3Fo8rGJin@;0&r^Rg6Ht%2d0`|e?I5ZX5y4Q%H1rDdv_Pn5+)R` z>>sTnHe>BgLd>k3#u_1Y{GA*Z)pl}w22!^W<>$|>t$x3J2ewO!8A&*2N=b3i<-8$V z%+Z6wb(bW70LLCZLH(sZmc$}lFv*c_ZdqV=E1bUg*`4q*eFPTv+vk8Twem$+cz=IIaEgpt*Whj-1owj??fo z0cpp)6WpdNMHlguz20=v0V#T9c4S{vLVOxIW7gi0HKk?5^6d$Eal60i1IiTNOz$3? zaiHH7RhIdN; zi}4BJzGa9VN7v|WXcs_L)~>b!t}?JJVay?>v99LxjAK71CsJF}tjXC?X06u{Vk#rGOMdF=9s z{?Qu_UnP>h_@y1S z2PR;weQ>_rMryu0>;+}Hp;TCA>kvQQpWL7s0klrDT{i-7cM$g7b7YIF^qc#_xg$c& zyV1Mq9nz@%SOVdspD~}ZMyr-@LNXo_1}M`ASD`|M#Mced7nf!~t=h2jn$Ei35F<5h zsuIiDU6tutxm~;GySL7ffIqm>{fOh%L4>D#5hkRHizYM-{g_3iJOWVk5la$@F}7B)9WiyZ;DLj z!>lR@q%qm*V`o23fFv%nrN4yT3-SzJHl1Oebupiua25j2Aqkh460|-yAr&jhVYg}R zit*leuqE@}anUk@*!GDt@l5ZrbJ-{Qv7L@ZWG4dhXTCvTL|khE^>pV`;?1~(hKg4J z5?m{kK)9zgK&=RIGxQi~T}9S!{tVe|T5M^3+Z*Du5+Pz|czI4(xj!s@-4XN2)X%mv z%sBp`itcLSVk-ipnZ738y;>MI^|Z5^4l3d1b-h4zvqfKF=3y87^JPpp_nChs#xr-- z$!dM7Z0T34lhsQ)dbiDXc^mzWZ${izY#*0M;6T(K5f58%DW1_?@@MQX?~=W2|NQg& zQ!GC}*5?oWKI7sL$EIjFs{CAgESemP&rJ4I@q?ck@l*KYjLnM^GNYrVadH0SfYg}< z^O7G+Jz;(fJK&r5rt zRag=eQ9Y=7Ry;&G!PI~O>eNx%ar3LHfr*z`cRFgXebvW&vRJ2|ZZ#0)d!UDsdep|! zc0Jl`(QILZ^^c!|OoE-Iwxz%b-HjyGU@}-|0Aa*_RPILB#$6S8+{@Z$-^%4Wt>PXK}!`o%BFWK!Ux3WPEe9N=iZ$Z>2;)cevSrHmGP9XV>bqfz;ei7_l_BOZGM54 z(gRb_p<+FJ}5c-aWbTy0^zf;SzOl>gm`%V z(5Q+RIj)zS>1LlF4ko9S)byx!{p{@9d@{E(!TP1#T(1hxQVy8Qe?-V`lUy^yEGtr%kRsHcLjX^EpMqN7(aZ8s{-RT<3{$Fb$YTEaEjz|4d^6l1|J%ZN;#u{YqI}}T{!?i#+)p16>om|%26tXt?fXY+0W+c-a{>1u`eVXNLy^D&VA5F}*QI5s zLHOpOHQ;Cx`Q$ZH7>HlThqf7FMYc=RPOYg5He4wWwpSQ_OUb|cxt9>V)p0`3XMvgB zS_R!faSdNC9DKg^8KM(iNY3^Stc9*gz7yZ?-#jCkbJlaPHG+}R-M+RMN>~-^=q|$z z4m^ev(oy{;qx-TO9M5V!Ft;ypKZfUM?i(JZ*`@_Dg;iU1~i)`^P~}pFFbKAsq|znkz8JRR`%AnA2Ny0o*TF>ak&d-WX+My zTZFQ^uGP_LX46Ld6raninp98LQ$d`OnA*|?ctuzc_M6ZD^Y3Ts=P5FY*AKvD+MTc8 zJ}@yTa#8-WR4eY5*z{6+KL}zSg`|AiyAe`U9w5zf(Go!~zJa|~Y2L+L9BIFJk-ipo z22s{9IsFKY+v%6SL!()E=oPwyI@x-bB^N<9kXm9dq;ZD^8cE~wcJ4jr-22t{{=lnx)m_CdHbt+VYp=ED9COSu1GY#o zaN3*Lc`-85hFT&qFTo>oYQGe(3e=3;8?ws;ctS)L(v>kp`CO(k=F7xKj``%29`jAj zz+5U$=sll+!q4Jy4WqVOEoU6-!{Zc(>EC_qaKeIJ)^oCz;?o|TjkkYx#?j=Wce%Uu zelqI8hOtzIH^GhYOMLsuz%G;4nhEHHV+Ai$qaXN5kDDB$R>5H)GMG0=m~VAq_+IvI z-Trm0+ofA9H6LW;J(piE7h%h4rY78$t4qMHK1cDGP5m5yN+(DqL9*Do>Sm-A)!|?3 zm*hFM)X?fwS<=%2=~Y0|p8Mq4L_{$EfD96Yh>u#@g$nA&k}pbFJ)&8@k7*pH zJU6Ws&nQ^s!vDllJUc)>5Xiz+zgPRgvKT+zEJcCdNME_jy?69$ZtfTE5#}kk-`g zxidW0wa>$;c`M0pdt-Zd40i7TMy!G0hBW&v_C~@Mi6;mNx7Cyy&XFGHw#9<2fXsVn zEq>`rjUHG*-=2By;+?2nY4AJI)-5z1)L6$G;N!VA&Z&_*%H{=z>Y#_ho~5Bn0S7!8 zyzdO6e8-PSvh&*-KG2E`xWgUcnEE0YKG?n1`+;)=+Od94Cz7|1Jll;|R5JxZ3*_bO zV}t3qhh)&!g4L5PhhbFduVG#okf)*?RSXCB`u7iK=`Vi<*?;`&MSE)B3G`4jp&DPc z5dLm%h|~5QIWYA2S9q+J_68%t%2KLdW49OLMPTG?W5m z7P1Ps&2I6za9pLFzgu|@rCa~p-66p^lG8cbNDZ_NIE=hS?&5HzNGGpQyAHtHt7)KV zPr@3h!b~27)B%#?)i?iS)~lR(TzhD`W7ln;WxAd=Q%DQD=X^YIL935D?8feqgrgru zdh+nkj+e*e$K;jRf4@Q;kcl7>lvQ$@R;}-RWzmoVO~k|vP3(~`wAGp|rab6B(JHj& zzN^B7tw0=(b)0b@A4XS4Qqc07lx-J_XSNSbYupK&wZ21djsSKdl+f$w>q9g7yBU;4 z9bBo8XVMJDaBET&$`B;&J}vDI{gRk@T+Y2CAGAm;hg@pk@u|<&jvt&Tw#dK4E^XzW zb;^M+ar5 zm$u;#t5KIKOjs@*ilkK5&rS^E+fB?rI$CN$xM}NH1}2>^zuvTS`_y=r(}QHOMz(I~ z*s+lsbjaUaFCv&SN@!cmfou6NYgDph)r17$|Izv{i{D%VfIxTzUd)(mrHA}5&|6I8 z{PNhZlV_-nrX%crKt+7Bhrjc$SKM#=PPWoLvocr828WxhUOun+-ZvZhpazb9M}jj+ ztFa87XPkyF6_YslUB?|Jy}vJsLwKxIlDFB@Q*$)0;~lnVKfymDV%ttWQ7F?gia3@d zs`^{oSeYpWkWmu5DJQ~kY4~9-n?LF3#mTou_F(4IoRER$oTGsJBs0RHxm^D`pgA^I z$*N+M_gClAxp)L}pWk2#J>}Wb_ges#ACf^l$dC!b)A=U8C_{GiM`!X2(7c0;E`j!~ z+254#B(YqbdOV3KXBKAN}RG%8IEU+jOMhjhgA)TeU{6;|F%vyk;Kcr-8)(1*mC60Ov$Hs?{k<~AWs zz@bD`0S%T*jQy|T8Q;Fy`<1WUSzoMPm~tL|b>Mrxdzhg}O9QeK^pc5{6n2DgA5q*|6=6sucaj!qsC?O&O~%MRvi(mk})b`s=7^a|}y2-{*B8)^yr zFS~p__+0B|%hiWV``xGZnli3>+q{9!S&Qd_xQn<8bk9{ay?&wa+}sY2Til%62Y~{X z>SnJ{IU_keFPzbz9xzFN!r?D@`<0o+wry?ssHc$#@uwN8k-!7ZTbur=myGxU$kE!DnQm{ z*skyWr@7ccfp+rwR);dI9>Bto2;DGV#?hY6lrCX#drF1#-g)#im~ZrBkJ(}@au_s| ztp%>y1RUH;8wQk>?%J>4Vv z@ZIuCDwOY)R4`OAuon)b}egzYLl zuA}(7w(&}zKHiDLn=7#x-maFUkAR|dp*sWOudW?GXTNzd$Y}rRJ^ZV{07U5HtC~jeN5t-o0bT|+=7pSnv`SeL({_v4fHB~5O^V~iIrV+s;&0gtmkiTLcrm(8 zBt<2%;HxoY4{_&}>{l2sP$nt-B_(4K^{8Oe+~~gL!O^xNS3Y)VNP~?5=w)x|Hb{XDt?v9P z)^Xpg$;CHr;JM7$O015pK@d^2ZJ@j2}&*(u6$ zUdIpLf-LMX)uI}Hkgil))R<3wk-?zI00|NnEWIv7F2$gIe`Z~XF1HWRP6^>XIqm5J zj<4Lu@-&IUTXBYij4?CCjk8(IUJ!nnU-G9T9k;!y*F-sbMO&%1^K_3VJnbxfckJje zdH-f_s&H$y3wa?TVG5oSVPk~1P)RN5e*JaPU^h!U*Arb>;Oj|P%x3W5me11Bghvo8 zB_(9iN$KvBO}X)70zKa{JviT$cb6ZJtnTYv&<1tYVVh)N(0BhOf2ya;XK$E2Yp2jZ zlW^y*ON{FgF@eb7Rafc%<@N_Y3U%kz4>i|Duc%b{RM^RyAo-d8BMyO5YJU6C*y6^d zU%cz~Nc@XYataVuv?cYZhQ-o9L4yJt%SS^wO#rn&1BrD&pn%dEos5ycP3d8zIZ;I4vha<>AQ@QCRA;+FMfdJOsHm( z!x9xOPz-&VKE0ex!BN1#DVov>|9Hg=5?91{pEq9{u%ZP(&hv44ziY zw*MMVVxL*H8_u&!9f+cF+648I$4Txpa$Rji>_2qKg1?<9*8P~tUDj&SyWr^8y7fOq zDSEe7Jng&Ywf&D@&GHE_%jc%AqWFJ5c>fux0$xsK42nB-!hfvzmqBRzfLkiu$?;6D z|Kpfnm|)sl>3@%dNE*1+ zr~ft!<3DEj>wiizV7$|o4-$@j^S{OsXA0aZOi>&pr2FS9{e2OR0?eYqyB+Q~e}DWx z1A6}yxJBg3;{E&|8~t7_CU82>lz%?{pNs!LY5z>uzc2p(r2X^Q{QKhnrIjXo ze+}aldbsd@!2+;>ToOyOi7b+)c z0)7sulU}11py$_74VqP%M+|Tbx|?yZyvs3e#KkW>9m^79+ZoG#0^_SWe4&jRAMaWz zjG`9+oZVL!9RZAYe0zW*V8v6Q9a@{%ibBH;kP%i@$q+T!PZCnMY`Q%izS|$9`De)i z7lUEIf;?@~tb)|)oV|DjI#*(G(tDgLWTsMjr6~46ABRT#Wu2jqj&LoU2z0Mt?$vfw zQf<68E`^&31P@KHvDfd5-q96nl+>FKW-wYWhd9guP7bg2Wm2h8#~9Jc`%&FrRnj{l z&ytJonlE-)H<+Rl3faWz!4e1AMb!smR3dfBs^WKZ_fH!~0N;19;Bf!2fn1?D9v5wd zFe1@nNc?%g(Ve;vVwXLUtpl%+wRQHI>dI$G>;2Ug>#vfX8|Q_c_vY7U<6`f(t9}*i zW^a!r>o>U=eeS9J?@c$50odg-QQ{Kz@ru>7TjsY1GvzOPSp zjpX0HI~-INYu%{t^M{_CTHZC>#SklLtE#Pu{-GcuAW-wUi8cS5ciJ~=tGNGl76ftu zM-C2huQkha#wW1#KEX?4Bw_G?@Ea+;TjIHTp> z+oHR->^jYE5!1zYpKI->#JOb|eO3S$k20(H!{pZv00tk7qm#~vwFpH33D=i3mi`+J z+2cD2V!j^00h?~o*?C{BjCu=@3|;^ovI+DP@)WQs+5r8xhqBi9I~q1q&6z8701-e@ z2=HY@f3Nn$OFWc~)ngJ4ylFTx*a9Rs-jV_|XY(iy6Q_l3?M^j)30dTrAH!&}AE_PqLntp&h(- zs?j@JdEvR}Y*iXK$>q|j6T15e8^#!Uy)Aw$$vv3H2nq_2C#O`RZWFg7U&O+S>HTvy);}gi zoDG&8VJiq0)`4a*7M=|a7w!=M*!Y>%Q*W<#w?KD}?ugq99GBud8=#v!@LyiP1QoqH$6P_(z$bN^PnLI-*=(9|!x( zIW;v9bLxDEp%Qt4{B4nW%M94NF{Qd&_aA+)JU<`wNS) zQpdZI+&1VT{1OAE39pT_nJOHz-)}kKqfo^Ndpj=1P7$!eOfMgmba!+9CfOk~+N)Hp zt>E*a{%Kbjw|rmrd&9d#ig*C;U9Z`X)Ho;>8itj(s3g6-?z_d=GQ<87bz{9XL_F4h zK1{g9mXhNRw9Ba}xg7#6mxgk`2`G^Q6ZfOvp0)x(n%myuXv!oM8$e6CTJPHU;aDTn zlOE)}K5TN}i7IaYgWivs`n#(@`w8RM>Bif!ovt_M@PvEh>%o$W))!?fAdrCTe>5~ipPCAldnZ+`n$;r8vO|C zW$QBdVoA;zkW8HpHwaH(>yb;t=e_X%);=JwotxpX)bbPPHiN2Gn#_JeB7ai0!j!F) z#K$_leSaBjtXl}=Z%8n{#@i;{XQaKR*U`Mh!Pn1Iz^8WsXixTXH(&xPh4d$_vzBsq8=mZ8S-Q1$6RHk%J`T?O zPB_$s1p}})wvGN+zTCFm)<8VjoJJv6%O?xC&ugSdf`OepG;`J2&?Fik{zm{-ld71H zzF((WAys~uyyT;Yy-3P68X-i)^C%90armgH1&Z^f00r2Yb=ufcy#^J3LoOrZE+8 zmw!hklI9q+pOp0p?!$N(Y5qi1JGyrKE_#N-X#_&#YaG$ zM>~&Vkn(6DM3kxQx%y5=^tXVWKHN%E|HpLjD~A!39eskHE-a8XkKe`U;>Y{#H*}@=I_{Z_V_M&rAo%JF!5Egc$eRh{Aqmm$Rf%CFhQE9Zmpa*mQX=5NVF-9DQ|Yrl4aFOXHnEt+UQ&TaTO(l%8T z5<{E-Q4P|?#u`lBiGew~e{+^t#J$!}&L zJzQAiqlE-@>^{->@iz9Ttu-C_KBl7b{xadsuVPnub;!aDOlflmFdj!Yxmr6=sP!D! zt-gv0zrvW@#If9dW?H1r8>4MCo@KD?T8Hc_1>j)x0w8lcneTE8hwoV0DN8GlrmJc; z1P<9HSVG)=u^Z8OJY}c@Ixf(cSyNUnt+Z?Bz%KjKEPIPpk<&#d@j8z1mbc`g?XhyX z7cWx2NEApR;ubj`S7Cxu0v|*JzBCA)Q9x)ak@j-k%ktdiejJ+%&9|Gi)P7jG7T9mI zfp|Z-?Jr7+L*^b6K@4BrD*pw2tkJC!PgfpDH;YCqEY#XCDC-8$Q9;!n+K#i^6CO&Q z-k0VQAAZ&ISDd4{+E+t<&&;!x{yUQ|3Zvma-ld-V-4 zp`5SJNgw&+NL4J8yCG1W#mTxXs{#ymcdXLsW1LT10dGIcYQ5JLOBlz3rLoqE6tA8a zgkXVczs-}+i@gK9KzP#y2cbFFJ7X!mPtp9UCiW3df1k~3^sCQiE*<=hwi8Nz8GM^E zf5Cw_AMkLsdD|2)tqOl-hJ|CI>`c`TB8iD-F71)xemg`eZkpmZcd>2_#a+2$7O+8q z84ucLEwq7fi**rwA9c9lhx;=nN*~rxpZN2uRezbJq9XeeyVeuM3*J{6%u~yhW{mRb zcQ=GxVt}F;Oo^z!d|i6ZRE2o*qBLOE=KGHi;AJJ;(7m=FqDHb@D;_}G>C7B8t}pTf zGJc`%P>-@LK#)t|OTSsV!;?~amQunVI^B>u_gqO{7f<6?jw1EqXN@m*e@lLTW^!kp z8m9dFH!h#`JkR)tQ_ZDY|6G5ADIEY^#KYD43xtyl!fce~lPf;C`OG$zq8juByK+MU zV6b0GelYu;wl4fA52NgRWenb>qVwF9#5fOrxSB@}2IR<0CG|A16?(n?ld>SFn^#T& zqt^XkPVG(Mx`1!}!I8m;=f!RXwu1+tw;7rvd%a#$;U=8tJL(C~4i3YyRfP%-#xsIC zX*HH_FR5ruqW7wVe-yL*x^yOV*DZ~FoJFA5VcfkSr!eqyo%itF@%6Vq;oRG=ex0J) z!I&`P=NMDs-=yhl-js@!$#4T_tRH!lQ}F3I&&*=!o%490{dvCP)dvHgLK0Z8QEnJ#I_G$ z%wIse0ydHl`Xv{2^p(z}Y}K4ybUNmgz}7tQ_`S;@QjG%&UpK~Ha6WZBKz$ITFFbPX zJl8U+Fbko$6Ogpac}8P>+k68+IIw5%*suQY&S~aorajMoexcvDy0-3| z)bpHQhC35OV6znox^*C|?Pwf^7y@;`2;>=^Pt++8Q!M?hEFUH~*fLgp&g^Xtt-3uP1-*zs1qYpCWcdE_{zV)E}NsKTw=rYh=djc!}U#2i< z_K1Iz!1Pu;v;66cO$hpMR#?kMboavhwfMgfN&@-L&$cf)uhnlhhf03+Lz9Ku>psE} zD?6OK4wOwXoGprp5`CDUaJG?T%3`AI@Y&?=F>Nbwn_C~X^FN+7tqD*y?}ih)YQpZe zpADof)7%Xo_NBvcF=d$jDv^~D$deZtD%_~}62994E`W+fs*B}F$_sW~K7p<>IUE}H zzRw1fUHx(xS3nfN<%)vtyC)Eea%mQdxVs=pltTV=xpfJv;CbkD{ zkHo}26qcJm{4;zl_x1;Y9W}sfy??(9IxAljh7X|nKStPjA9*g8nGp>Lg-5z@7HEZ{j81|?(7i%~dDhqy zOL;_~Km(Q3NSs>vFyNJJ zr3%2=$0RcvsBghv0Awmf?{!`%ABtmHGDxs}g0ya^Vlu;Z|L5=i6#)#n82i^Dju^!7 zpGnvmp=t+(S*1nlcuO`8d0WHD6h@%%NJ;hUxjla;dU4HjX8=O`7$J%}SGgQsx5MY-N*o;?Q)|9w>J6}-mC(^-+$V2n;(Fw9h8OBUPeCIFqUt-FF(s99 zshZ}`n>_=eSZ^rJkPO>;d- zKX9FT2R(hxUh0gK@Ip1Ne5slA0$Dqkwv%?9MbeF)*JWj8mMad(8JU(5NOc88pN1pMn>(jA8;beJ~=EFv-C8 zKRWzrRAR|)11ZhdcOB(BQhouijQ#X8?pyHPdCzFH!m4sQ?-OfNm{$0XJhMqOP9WvH ztHP0}ckOMV`;WXK?)^;;oZMr~f4R=p9aon1Copl3gA`Y0B~?x3;I2B`tMd6}eRh=N z3B;J|?V;z&&lY&ytDw=Nr&6=!2IxXws~_DazH9<9I)G&D?K)pPq|!x2kOs)ztRGiC?lWjj*9 zrFiF9AiG5%9Ot!%XxA56d=mMFEgiL<<^w0wGvvhpO_M>GcPaHMsDyWa0|!SWkQt&f3qQ{yj1uT{tqmBLTfBrM+{-DU<7}1J7K2t(1%DNfZ4a)y&3m+M%ji0V%qB2OKR z6i=C8SeI!}8nmSW{W=CGg-WD;81QzL28iUqCxPiwE^kRV^tm+gj`*$a)k_wf8{IO>QQ*EzUVD*kG{+ajg&G=LN{=WdirJz7c zsMZHh)q+R>T}?y|<#R+Qpbgwqc~o#2j{eaG?$EwxS!~b}!=1iT2P#Cf)MGi`li&0h zkudu1HMr^DTq^O`Rv;7dNQRF<2GKX(5l=TYgI^qZk(2Frn`$ga4#M&;4&{pp2>9~- zsr7ls6DgB2TISM+S@K4}WC{?J)r#00`*c2xbOE}e<+!e%ygW2Yljna!unMG)FRb}O z_(nRXtio|j?#{-aSoBmx9ZmICr=-U&Q;~wi-p!1;$y+A0TKW%W}Kuc z29UOR1vK()0}ucOhe6-SMev1~<(Rjl%vmpG@Xg=Ope@7dGYE#RN1uibgF!P}E>a)R z`FJx7zC-R=kw;nAPt=a_D}8}5w66XU7Hry|;`sJ|f)J+-DlpkQ|L-5aGk5tm+T9(T}tEZED`8io9~hEhJ9C4^;r{-8k$0FZLbs<2BPCfP?kQE{_A#pe%N z&lCLtm+&mKuo8#o-81?BkvmqC1ONaEd{OdHL{6aeNH|}?V)ge04o=2y;X0$XuYF9B z)xf9wr2>J%|78eHPe3B3VEcL{H47|p)5{_T5(s5g`!BphmWFoH|(oQ~1|K4AX!W%2}(9899sU^P}+9s)leJ(7I%Mn>wxc$!e@RDKI9 z>lk99OZs%LFq^5VvLF`GH>_$>Mi~_S3Mi11M8l@uU1SCp?6#k00E?5a|Bh8pH|@9X;fc5}?G0hg1i+DxHjg1JFPt+zywA-WV&fRyyv z3WZJTe;5g$3D`-J_*pMI9`5MptBoj5n!h38%}@y3XKi*33;sPO=2A|6wEO>%AO7`- zV<~Yhxx)){#GEg*LVGM>M9wT06Sy^Atv->c#>ttuaVeX4Uk2@qLF%8NIL)QUZ)lSvlVQe~xbV&nm;41sZiE zn+?Rg9iyn0x0}B1yhncJap3hPTfEI^^%Y+0hi>xRbydwG=0DB0+zg8_rdj&{p7yrn zAk|?Dz|ecIFR@&!RJh=x+CZFK9Tef_IR8(?|JO2#YsK)oE9JHYuWw=sx$lQ8de0u> z3#Crx_76o6G65^x?TslKj+#OJ!N#AmOu0?JTtp6wp*9oWr8NQM59x(U#8Uw%56-iU z)_oKGT$U2Pq55L*WMg0pF}qJTm6j)1{3j^ z(FbNfc0GM+0r2C^fqqO2A^@w$MX_C5)fezoPXW29L7;;nJ;2aZD7{KBL#vJG17vq< z#y`Xdp>CXyi!Llo9xVm@EX)Q!4}G!%TJYdC2;*!AB-xG@SR6ZMCZdpJ)R(mXb>Pqj z{=`3y(S2|~=M?hU4A)OR!UD@T3B6(C_dJTNw%g9)gtnAa3X9PjM;Crf7R&{Ok zkMSuQlg~@JE0%+ClP8vI)caA)k1izM94&eixY}}`XL31bVD4lu%HDKIqg$LGq{cIi zE1#yEw>PObomyDT(zI+QTd*-IZofQIPCodw;$TjaP~R>NVh${LmNs^)r?ZtnS{h7ap*m- zgH8V$>qyQ62-eQRVR=Kp_d)I`RQQq4I1&%$tC?m@yea<$JO(l|ty0zX=U@b-970>P z=tEX$1-6^%-i#R^E*L3yR*$6e7@bbq$~?3K-s;m2&(??DYlnSIh*Jja1rT95M)ml4 zwrNwWDu9x|U#o|5m_qqEH;Xz&Ir?D4Ots5ZT8?*o&nJMMIT*?JV`w8bG2xrE_-TpD z#gW10>Nn|MHS&&4+i9TNdV?P{#Rl5wAgyfw>#CPJ%`#=^`$J+EL>|X_Cp>=z@tFuf zZ6XeEI2HHg-zshmaSFod@3wN+r1JrvIUk@Zp1#eTCD5S4g2}8!x?4f(nM=)N`=0(; z2XXrtUh-vS6$m=2%0W*Udp!L>{$bowwRfc7)s_}{-pgoj`L^}XY)YN4VCweCm~C8K z7h@@Ox%$cM>6^{m$(y6T!;ELMD%MoF_8mk_rMcKndHZHY7!<8b?>;@HdfBi$dVDA# z5mG1Ih4M}tHy$N4lmPO^>5?=I*i4MVqU~WoEfTWb*V3HI^A0@9s`H&Lqkpf@!QhX+ z)8s4mA;W6tc3G?$~B>8-xCv#(X4ijebvMAciI(U-8+n4a*l`Dma=`kB6&BI%m!#FLb(oP$2aXPCEN*II5Sf^owr ztHK14!hqVEG=9y^_8VjuNfG^qdx5Z%ZrLXze4!#;sXT?!^=!2*J=f!`M)$Yd*SX-X z(q;g{@4sl4zKQA2==e<^o2D-2^SkI^uF3%DE|Y>-K9l!m(|nn%oG$Q&|1i4G8_It) z7D;WLLF4y14*g>G?GhXpfz6RKi+{*f?tpX_kX7h_USmEqU9r_?JF|5%Fif^$3cq*W z+M})lD78^dmc~ICnO)n7QKLkD4}o_S|~G8d>l>PXuLf0buVm*-+(5j+qXeR_$Z zVbOcQ;Bhwn^4)>s0Z6$^#ADYk3zaKTKB!pqcH>YH3DU*n+hVAdVu}7LU&875V=Tq4(sXRzVhlRVX}GBkv;xpexPA@KnXHU$eXK}q?xSayUV4gm;u@OMAd zmZ6s?&u{wE-Ic9^e0wys3>asOO6lyOwVs+Czg@6(+HXmA1loBWre(OZ9IPZXt$V^9bgaHD3(f~Aa z;&MgH>wAz1vYG|qsY=%Gh|QryXgOA6ZB!eDv;Dyxo>A7hq22uVM5T0ojrt-%x58vw z$oqsdkL~+9m^3DAkVf@uR+~@w&21;qg$%7$yu&^#xAQNQuBIk+V!pPp4&I}tx%jr2 zaS5&Y+AYV9n|?=<+Fac0-|oWSoI2LqLly4!2D0x?*U=XRCd$eAt@98L zfNu3tw{m*%<5AjxmNtC8M(_N#X#j(@RWN|pE`;o`K36{dH)GYGv{Uj`{q_5YrFEH46ac!YNQ$~Fszk1mqWAD6soSO`E`d?%u&uvK9(%s6`7jnW>wou2n;kgwYb0a zei27j|5j!8ph7ksr(zZVp3{3ZJY3 z(5n=+dQ0VWMQZF*OWF9cWIb)^iKL3-6tZu@?<#Knh=n}wGw}KG#!2sP*IKeO@C{|2 z!Ka&Y$?(x}F^r?$gRf>tUfExN;EBHncmm4cW2W+Ma_<%IhJ2+=ep%f*Kl%NcvRDn3 zAng<(&?h(eg7gnf@T3mSZX_|7bSbQ_lg-^Q5ldCnrWB+7{+cbdJg}3i8OIYTYIlA* z&xStrY}C&C+gpu|n+z#=7`KZUK=cZ{{3!9e1zuY}--iW*y8Xuap1-)UwFM~E%;LnR zxu~!|dtJv?QQ2Qh0FXgw0o2)|+-!DiX>+^Po64C0fPP_L^g^9{skZu=e;-NQ#{o$9 zQ0Y96GSLaAc<}hIt%7Au?cCr;hmCTGwD)`SJDVd$R#EAwa@WXLJ0eVn*GTw6;A>vj zLpq=Aci&?0mjQ{bRQ;1Jn^3;{i05+#>h>L1yr$QGQi&~SEj>kIG8YtxWj9-VCGA); zk+;T8U$nBx*z3f;iPoySdDuZ17f@uHm6JG2^_^CT8q0ESi^oy5@j3~<=_Mb%SC-#0 zQ`FSnpfo-Vtj3$ePI?^tA+CG|-z!Sjj1`}ucBVQuF-d~YICB;Y9r{+{I&L*>e#gje zAOJ|?NcDPO?sRB8un!g=QX**1C*QfgbmM9Q7DqNWsYyVoKACHDGQfPPNazvw<=+3O zf&|?*E#YbSHy|Q|`}h_v)lEQio88$$v`nJ9`v@gylX}*3{$SrVlQZBJT!Bk1$^dOR zjFWC2`3^s=EE+0(?0zD?eO?047C3Ul-t8AhXlW0x?A)K7B>0iNG-zE+24Ls*ove}r z{ed&92gII2xX#0920RmSF6?*@PMpn%xF zg6+58f2tXCxB(bPmgzD6SN3}K=CTuDyEYtZ!Tp2W0{DxL&%{=lVxO=uYYuPV{%-Yc zIuG_W4u|{hW5SyfK9_lGVXil@-z#JMr2~A^7+b(^XYnO#{P$<4G7%DEnT`;#GbKhV zs?#iCXGmetq*jik)XG}$z+L@(b93@)gxUJkkF6H}tMNPcF0C3%_8Mh+mm7O^wXL3= zgVcaq2^w8$b|5C>l$gb(L$wfgY7ecR(upQ_0j=6oOTaA4#02+FM7~ z-&e7_Z>}8VQi*b(M{ugvTIloe$qO6~g6$4vc%V+P-<9X>0~aRm+rq#=v}<3^*bZ&g zrk)GvE!9eX)KQ-Y;VQTVxGGm$D>c3yHon5LnJYe?sYh^$aU=7gEG?Q{4Fyhon>VPxl(e%$m_McnCFt$hpRv@bckgv`>a zqp8IAe4oQ?Ae!6tQ4iBX=0VXLpg8!jJrH1i!Rx#tzQ1@PXSE93Q#m&C+uy?yX8o%E zY{clmuA08*52r9Y;6*`mVD<)8!wTKhwEkSC?*50jq;F&y9HU5|cfIuKh;g%+u}NMv z+fxDGfN5#4X)Kj8HS&bgU!!u?AY5X#wWhCoHa#}OC&`_!)e0&70t49OI#$n~uIMpD zmEM*4H!n9O<5Gz;s7jpWkr`;I?M9&tSoM9(dlR1@ zbMfM1(JX?esN{P!^rM1C83F|7^WWObwMu3l$t^Ap8VZcil_AZ}n-2#L-mZrZ-^#)5 z3M3D)psn-}{tiSi0*$kV{>RZ?efyP146nnlcU-38pn{G;?xC98`Ek*^Qfv7rp%AL7 z{-SD+?%w0Nfm#nIZ|$~It%0{)5cY{z+Q-!)$F=kj(k(EMX!Q@1hB9le`}1s3%dOf! z4UwdW5HdvzXi^~d+rL3@;n#`5H0Oq}r8BVF7wdYc6}CR#Cu}PG4Z~P9g*al5-sTU* z=oX79nA|S&_!bvGTfi}$%`!&(8Q_DaI>%Wl1EYOGSTMNC9t(oQ`2!Il5=c{O2`o$fDjYX9T{EUQrLDMIZM+;K z(m`6r2LZ$;!&n(AsuxW8)T|C88h{VJN%9W!aT+bFi3+yV22Lfhib?dU#LSNlV?TG3 zqeEpcFXI@?Y2w!?1uF`gogDg=y(x`zcgB`_8~G&pKq|}PQl9?Mw#E*j^2F>d_KHyo zdkf)EHjhqdGaf6?KjpY6-hZkYmB7ZQ zty00wUA3ev-@3_fbh#(5+xSoS*(%Hu=|fsw#Q`yx`_8cRiE3(-j0+t_n-;T{5-NRk88VqCOYZ3O|f%CFKcpna#zCc z@=g1!M(FH(oyWtL^Fd5zSh2M3s862NYB(psrY%h8tMgfxS2WcRpIM5btPQ&xz6v~= za9CwBd~NoG_8s+QAA+Wp7}8}b*-6tbKYsK={51)2C%>51m5wX!n(&&Jbq^P^d{|

`gCHoXKy9 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

    oL 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 literal 0 HcmV?d00001 From 585490b983da9f50e6dd31847ea1fe6be76439eb Mon Sep 17 00:00:00 2001 From: Jason Stirnaman Date: Fri, 9 May 2025 10:22:47 -0500 Subject: [PATCH 2/3] Apply suggestions from code review Co-authored-by: Scott Anderson --- api-docs/influxdb3/cloud-dedicated/management/openapi.yml | 2 +- content/influxdb3/cloud-dedicated/admin/databases/create.md | 5 +++++ content/influxdb3/cloud-dedicated/admin/tables/create.md | 5 +++++ .../define-custom-partitions.md | 5 +++++ .../partition-templates.md | 5 +++++ 5 files changed, 21 insertions(+), 1 deletion(-) diff --git a/api-docs/influxdb3/cloud-dedicated/management/openapi.yml b/api-docs/influxdb3/cloud-dedicated/management/openapi.yml index 95bcfb27c..3204939cd 100644 --- a/api-docs/influxdb3/cloud-dedicated/management/openapi.yml +++ b/api-docs/influxdb3/cloud-dedicated/management/openapi.yml @@ -408,7 +408,7 @@ paths: The retention period is specified in nanoseconds. For example, to set a retention period of 1 hour, use `3600000000000`. InfluxDB Cloud Dedicated lets you define a [custom partitioning](/influxdb3/cloud-dedicated/admin/custom-partitions/) strategy for each database and table. - A _partition_ is a logical grouping of data stored in [Apache Parquet](https://parquet.apache.org/) + A _partition_ is a logical grouping of data stored in [Apache Parquet](https://parquet.apache.org/). By default, data is partitioned by day, but, depending on your schema and workload, customizing the partitioning strategy can improve query performance. diff --git a/content/influxdb3/cloud-dedicated/admin/databases/create.md b/content/influxdb3/cloud-dedicated/admin/databases/create.md index 2af42d58a..af605cecc 100644 --- a/content/influxdb3/cloud-dedicated/admin/databases/create.md +++ b/content/influxdb3/cloud-dedicated/admin/databases/create.md @@ -157,6 +157,11 @@ If a table doesn't have a custom partition template, it inherits the database's - `--template-timeformat`: A [Rust strftime date and time](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#time-part-templates) string that specifies the time part in the partition template and determines the time interval to partition by. + Use one of the following: + + - `%Y-%m-%d` (daily) + - `%Y-%m` (monthly) + - `%Y` (annually) - `--template-tag`: An [InfluxDB tag] to use in the partition template. - `--template-tag-bucket`: An [InfluxDB tag](/influxdb3/cloud-dedicated/reference/glossary/#tag) diff --git a/content/influxdb3/cloud-dedicated/admin/tables/create.md b/content/influxdb3/cloud-dedicated/admin/tables/create.md index 4d15fdf71..be53195de 100644 --- a/content/influxdb3/cloud-dedicated/admin/tables/create.md +++ b/content/influxdb3/cloud-dedicated/admin/tables/create.md @@ -185,6 +185,11 @@ If a table doesn't have a custom partition template, it inherits the database's - `--template-timeformat`: A [Rust strftime date and time](/influxdb3/cloud-dedicated/admin/custom-partitions/partition-templates/#time-part-templates) string that specifies the time part in the partition template and determines the time interval to partition by. + Use one of the following: + + - `%Y-%m-%d` (daily) + - `%Y-%m` (monthly) + - `%Y` (annually) - `--template-tag`: An [InfluxDB tag] to use in the partition template. - `--template-tag-bucket`: An [InfluxDB tag](/influxdb3/cloud-dedicated/reference/glossary/#tag) diff --git a/content/shared/v3-distributed-admin-custom-partitions/define-custom-partitions.md b/content/shared/v3-distributed-admin-custom-partitions/define-custom-partitions.md index 16761a292..cf266a8d6 100644 --- a/content/shared/v3-distributed-admin-custom-partitions/define-custom-partitions.md +++ b/content/shared/v3-distributed-admin-custom-partitions/define-custom-partitions.md @@ -47,6 +47,11 @@ The following command flags identify - `--template-timeformat`: A [Rust strftime date and time](/influxdb/version/admin/custom-partitions/partition-templates/#time-part-templates) string that specifies the time part in the partition template and determines the time interval to partition by. + Use one of the following: + + - `%Y-%m-%d` (daily) + - `%Y-%m` (monthly) + - `%Y` (annually) - `--template-tag`: An [InfluxDB tag](/influxdb/version/reference/glossary/#tag) to use in the partition template. - `--template-tag-bucket`: An [InfluxDB tag](/influxdb/version/reference/glossary/#tag) diff --git a/content/shared/v3-distributed-admin-custom-partitions/partition-templates.md b/content/shared/v3-distributed-admin-custom-partitions/partition-templates.md index c6a0e812f..016411b85 100644 --- a/content/shared/v3-distributed-admin-custom-partitions/partition-templates.md +++ b/content/shared/v3-distributed-admin-custom-partitions/partition-templates.md @@ -41,6 +41,11 @@ When creating a partition template: - With `influxctl`, always include `--template-timeformat` with a valid format - Without a time part, InfluxDB won't compact partitions, impacting performance - If you include more than one time part, InfluxDB uses the smallest unit of time + - Use one of the following Rust strftime date and time strings: + + - `%Y-%m-%d` (daily) + - `%Y-%m` (monthly) + - `%Y` (annually) 2. **Tag and tag bucket limitations** - Include up to seven [tag](#tag-part-templates) and [tag bucket](#tag-bucket-part-templates) parts From 815514c53b0041e555b57ceb881653eb0f67cc54 Mon Sep 17 00:00:00 2001 From: Jason Stirnaman Date: Fri, 9 May 2025 10:24:58 -0500 Subject: [PATCH 3/3] Apply suggestions from code review --- api-docs/influxdb3/cloud-dedicated/management/openapi.yml | 2 +- content/influxdb3/cloud-dedicated/admin/databases/create.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/api-docs/influxdb3/cloud-dedicated/management/openapi.yml b/api-docs/influxdb3/cloud-dedicated/management/openapi.yml index 3204939cd..ccf316d56 100644 --- a/api-docs/influxdb3/cloud-dedicated/management/openapi.yml +++ b/api-docs/influxdb3/cloud-dedicated/management/openapi.yml @@ -800,7 +800,7 @@ paths: operationId: CreateClusterDatabaseTable summary: Create a database table description: | - Create a database table in a database. The database must already exist. With InfluxDB Cloud Dedicated, tables and measurements are synonymous. + Create a table. The database must already exist. With InfluxDB Cloud Dedicated, tables and measurements are synonymous. Typically, tables are created automatically on write using the measurement name specified in line protocol written to InfluxDB. diff --git a/content/influxdb3/cloud-dedicated/admin/databases/create.md b/content/influxdb3/cloud-dedicated/admin/databases/create.md index af605cecc..4d3e26f7f 100644 --- a/content/influxdb3/cloud-dedicated/admin/databases/create.md +++ b/content/influxdb3/cloud-dedicated/admin/databases/create.md @@ -67,7 +67,7 @@ You can create a database with an optional retention period and custom partition 3. In the cluster list, find and click the cluster you want to create a database in. You can sort on column headers or use the **Search** field to find a specific cluster. -4. Click the **New Database** button in the upper right corner of the cluster details page. +4. Click the **New Database** button above the database list. The **Create Database** dialog displays. Create database dialog