From c5ba13b96a9ffd768d20ddb9edecaa8181b3d4c0 Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Fri, 24 Oct 2025 11:52:35 -0400 Subject: [PATCH 01/17] checkpoint - getting rs content duplicated on rc --- config.toml | 11 ++++ .../rc/databases/active-active/_index.md | 62 +++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 content/operate/rc/databases/active-active/_index.md diff --git a/config.toml b/config.toml index e1e7265d20..35f1b78240 100644 --- a/config.toml +++ b/config.toml @@ -71,6 +71,17 @@ rdi_current_version = "1.15.0" "Rust-sync"={quickstartSlug="rust"} "Rust-async"={quickstartSlug="rust"} + + +# Mount directories +[module] +[[module.mounts]] + source = "content" + target = "content" +[[module.mounts]] + source = "content/operate/rs/databases/active-active/develop" + target = "content/operate/rc/databases/active-active/develop" + # Markup [markup] [markup.goldmark] diff --git a/content/operate/rc/databases/active-active/_index.md b/content/operate/rc/databases/active-active/_index.md new file mode 100644 index 0000000000..d046f160df --- /dev/null +++ b/content/operate/rc/databases/active-active/_index.md @@ -0,0 +1,62 @@ +--- +Title: Active-Active geo-distributed Redis +alwaysopen: false +categories: +- docs +- operate +- rs +- kubernetes +description: Overview of the Active-Active database in Redis Enterprise Software +hideListLinks: true +linktitle: Active-Active +weight: 40 +--- +In Redis Enterprise, Active-Active geo-distribution is based on [CRDT technology](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type). +The Redis Enterprise implementation of CRDT is called an Active-Active database (formerly known as CRDB). +With Active-Active databases, applications can read and write to the same data set from different geographical locations seamlessly and with latency less than one millisecond (ms), +without changing the way the application connects to the database. + +Active-Active databases also provide disaster recovery and accelerated data read-access for geographically distributed users. + + +## High availability + +The [high availability]({{< relref "/operate/rs/databases/durability-ha/" >}}) that Active-Active replication provides is built upon a number of Redis Enterprise Software features (such as [clustering]({{< relref "/operate/rs/databases/durability-ha/clustering.md" >}}), [replication]({{< relref "/operate/rs/databases/durability-ha/replication.md" >}}), and [replica HA]({{< relref "/operate/rs/databases/configure/replica-ha.md" >}})) as well as some features unique to Active-Active ([multi-primary replication]({{}}), [automatic conflict resolution]({{}}), and [strong eventual consistency]({{}})). + +Clustering and replication are used together in Active-Active databases to distribute multiple copies of the dataset across multiple nodes and multiple clusters. As a result, a node or cluster is less likely to become a single point of failure. If a primary node or primary shard fails, a replica is automatically promoted to primary. To avoid having one node hold all copies of certain data, the [replica HA]({{< relref "/operate/rs/databases/configure/replica-ha.md" >}}) feature (enabled by default) automatically migrates replica shards to available nodes. + +## Multi-primary replication + +In Redis Enterprise Software, replication copies data from primary shards to replica shards. Active-Active geo-distributed replication also copies both primary and replica shards to other clusters. Each Active-Active database needs to span at least two clusters; these are called participating clusters. + +Each participating cluster hosts an instance of your database, and each instance has its own primary node. Having multiple primary nodes means you can connect to the proxy in any of your participating clusters. Connecting to the closest cluster geographically enables near-local latency. Multi-primary replication (previously referred to as multi-master replication) also means that your users still have access to the database if one of the participating clusters fails. + +{{< note >}} +Active-Active databases do not replicate the entire database, only the data. +Database configurations, LUA scripts, and other support info are not replicated. +{{< /note >}} + +## Syncer + +Keeping multiple copies of the dataset consistent across multiple clusters is no small task. To achieve consistency between participating clusters, Redis Active-Active replication uses a process called the [syncer]({{< relref "/operate/rs/databases/active-active/syncer" >}}). + +The syncer keeps a [replication backlog]({{< relref "/operate/rs/databases/active-active/manage#replication-backlog/" >}}), which stores changes to the dataset that the syncer sends to other participating clusters. The syncer uses partial syncs to keep replicas up to date with changes, or a full sync in the event a replica or primary is lost. + +## Conflict resolution + +Because you can connect to any participating cluster to perform a write operation, concurrent and conflicting writes are always possible. Conflict resolution is an important part of the Active-Active technology. Active-Active databases only use [conflict-free replicated data types (CRDTs)](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type). These data types provide a predictable conflict resolution and don't require any additional work from the application or client side. + +When developing with CRDTs for Active-Active databases, you need to consider some important differences. See [Develop applications with Active-Active databases]({{< relref "/operate/rs/databases/active-active/develop/_index.md" >}}) for related information. + + +## Strong eventual consistency + +Maintaining strong consistency for replicated databases comes with tradeoffs in scalability and availability. Redis Active-Active databases use a strong eventual consistency model, which means that local values may differ across replicas for short periods of time, but they all eventually converge to one consistent state. Redis uses vector clocks and the CRDT conflict resolution to strengthen consistency between replicas. You can also enable the causal consistency feature to preserve the order of operations as they are synchronized among replicas. + +Other Redis Enterprise Software features can also be used to enhance the performance, scalability, or durability of your Active-Active database. These include [data persistence]({{< relref "/operate/rs/databases/configure/database-persistence.md" >}}), [multiple active proxies]({{< relref "/operate/rs/databases/configure/proxy-policy.md" >}}), [distributed synchronization]({{< relref "/operate/rs/databases/active-active/synchronization-mode.md" >}}), [OSS Cluster API]({{< relref "/operate/rs/databases/configure/oss-cluster-api.md" >}}), and [rack-zone awareness]({{< relref "/operate/rs/clusters/configure/rack-zone-awareness.md" >}}). + +## Next steps + +- [Plan your Active-Active deployment]({{< relref "/operate/rs/databases/active-active/planning.md" >}}) +- [Get started with Active-Active]({{< relref "/operate/rs/databases/active-active/get-started.md" >}}) +- [Create an Active-Active database]({{< relref "/operate/rs/databases/active-active/create.md" >}}) \ No newline at end of file From 07712e6dad0b54c7cd1b044a0adb4c228ac0ce9a Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Fri, 24 Oct 2025 11:56:24 -0400 Subject: [PATCH 02/17] generalize links --- content/operate/rs/databases/active-active/develop/_index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content/operate/rs/databases/active-active/develop/_index.md b/content/operate/rs/databases/active-active/develop/_index.md index a650fd8933..92d7922154 100644 --- a/content/operate/rs/databases/active-active/develop/_index.md +++ b/content/operate/rs/databases/active-active/develop/_index.md @@ -11,6 +11,7 @@ description: General information to keep in mind while developing applications f hideListLinks: true linktitle: Develop applications weight: 99 +note: This entire folder is duplicated in operate/rc/databases/active-active/develop. If you link to anything in this folder, make sure the link works on both RS and RC. --- Developing globally distributed applications can be challenging, as developers have to think about race conditions and complex combinations @@ -64,4 +65,4 @@ in between. [Learn more about synchronization for -each supported data type]({{< relref "/operate/rs/databases/active-active/develop/data-types/" >}}) and [how to develop applications]({{< relref "/operate/rs/databases/active-active/develop/develop-for-aa.md" >}}) with them on Redis Enterprise Software. +each supported data type]({{< relref "./data-types/" >}}) and [how to develop applications]({{< relref "./develop-for-aa.md" >}}) with them on Redis Enterprise Software. From 344966f981860b36ceda364bba0d75c312e90a09 Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Fri, 24 Oct 2025 14:25:25 -0400 Subject: [PATCH 03/17] RC Active-Active section --- config.toml | 5 +- content/embeds/rc-rs-aa-synchronization.md | 13 ++++ .../rc/databases/active-active/_index.md | 59 ++++++++----------- .../create-active-active-database.md | 7 ++- .../databases/active-active/develop/_index.md | 52 ++++++++++++++++ .../configuration/active-active-redis.md | 46 --------------- content/operate/rc/databases/import-data.md | 2 +- .../databases/active-active/develop/_index.md | 18 +----- 8 files changed, 97 insertions(+), 105 deletions(-) create mode 100644 content/embeds/rc-rs-aa-synchronization.md rename content/operate/rc/databases/{create-database => active-active}/create-active-active-database.md (98%) create mode 100644 content/operate/rc/databases/active-active/develop/_index.md delete mode 100644 content/operate/rc/databases/configuration/active-active-redis.md diff --git a/config.toml b/config.toml index 35f1b78240..f011d5dfa1 100644 --- a/config.toml +++ b/config.toml @@ -71,9 +71,7 @@ rdi_current_version = "1.15.0" "Rust-sync"={quickstartSlug="rust"} "Rust-async"={quickstartSlug="rust"} - - -# Mount directories +# Mount directories for duplicate content [module] [[module.mounts]] source = "content" @@ -81,6 +79,7 @@ rdi_current_version = "1.15.0" [[module.mounts]] source = "content/operate/rs/databases/active-active/develop" target = "content/operate/rc/databases/active-active/develop" + excludeFiles = ["_index.md"] # Markup [markup] diff --git a/content/embeds/rc-rs-aa-synchronization.md b/content/embeds/rc-rs-aa-synchronization.md new file mode 100644 index 0000000000..a7fc8db245 --- /dev/null +++ b/content/embeds/rc-rs-aa-synchronization.md @@ -0,0 +1,13 @@ +In the example below, database writes are concurrent at the points in +time t1 and t2 and happen before a sync can communicate the changes. +However, writes at times t4 and t6 are not concurrent as a sync happened +in between. + +| **Time** | **CRDB Instance1** | **CRDB Instance2** | +| ------: | :------: | :------: | +| t1 | SET key1 "a" | | +| t2 | | SET key1 "b" | +| t3 | — Sync — | — Sync — | +| t4 | SET key1 "c" | | +| t5 | — Sync — | — Sync — | +| t6 | | SET key1 "d" | \ No newline at end of file diff --git a/content/operate/rc/databases/active-active/_index.md b/content/operate/rc/databases/active-active/_index.md index d046f160df..816949cda9 100644 --- a/content/operate/rc/databases/active-active/_index.md +++ b/content/operate/rc/databases/active-active/_index.md @@ -1,62 +1,49 @@ --- -Title: Active-Active geo-distributed Redis +Title: Active-Active Redis alwaysopen: false categories: - docs - operate -- rs -- kubernetes -description: Overview of the Active-Active database in Redis Enterprise Software +- rc +description: Overview of the Active-Active feature for Redis Cloud. +weight: 43 hideListLinks: true -linktitle: Active-Active -weight: 40 +aliases: + - /operate/rc/databases/configuration/active-active-redis/ --- -In Redis Enterprise, Active-Active geo-distribution is based on [CRDT technology](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type). -The Redis Enterprise implementation of CRDT is called an Active-Active database (formerly known as CRDB). -With Active-Active databases, applications can read and write to the same data set from different geographical locations seamlessly and with latency less than one millisecond (ms), -without changing the way the application connects to the database. -Active-Active databases also provide disaster recovery and accelerated data read-access for geographically distributed users. +Active-Active databases store data across multiple regions and availability zones. This improves scalability, performance, and availability, especially when compared to standalone databases. +To create Active-Active databases, you need a Redis Cloud Pro subscription that enables Active-Active Redis and defines the regions for each copy of your databases. See [Create an Active-Active database]({{< relref "/operate/rc/databases/create-database/create-active-active-database" >}}) for instructions. -## High availability +Active-Active databases are distributed across multiple regions (geo-distribution). This improves performance by reducing latency for nearby users and improves availability by protecting against data loss in case of network or resource failure. -The [high availability]({{< relref "/operate/rs/databases/durability-ha/" >}}) that Active-Active replication provides is built upon a number of Redis Enterprise Software features (such as [clustering]({{< relref "/operate/rs/databases/durability-ha/clustering.md" >}}), [replication]({{< relref "/operate/rs/databases/durability-ha/replication.md" >}}), and [replica HA]({{< relref "/operate/rs/databases/configure/replica-ha.md" >}})) as well as some features unique to Active-Active ([multi-primary replication]({{}}), [automatic conflict resolution]({{}}), and [strong eventual consistency]({{}})). +Active-Active databases allow read and write operations in each copy. Each copy eventually reflects changes made in other copies ([eventual consistency]({{< relref "/glossary#eventual-consistency" >}})). Conflict-free data types (CRDTs) synchronize read and write operations between copies. CRDTs ensure consistency and resolve conflicts. -Clustering and replication are used together in Active-Active databases to distribute multiple copies of the dataset across multiple nodes and multiple clusters. As a result, a node or cluster is less likely to become a single point of failure. If a primary node or primary shard fails, a replica is automatically promoted to primary. To avoid having one node hold all copies of certain data, the [replica HA]({{< relref "/operate/rs/databases/configure/replica-ha.md" >}}) feature (enabled by default) automatically migrates replica shards to available nodes. +Active-Active databases use TLS to synchronize data between regions. You can also use TLS to encrypt client connections. See [Transport Layer Security (TLS)]({{< relref "/operate/rc/security/database-security/tls-ssl.md" >}}) for more information. -## Multi-primary replication - -In Redis Enterprise Software, replication copies data from primary shards to replica shards. Active-Active geo-distributed replication also copies both primary and replica shards to other clusters. Each Active-Active database needs to span at least two clusters; these are called participating clusters. - -Each participating cluster hosts an instance of your database, and each instance has its own primary node. Having multiple primary nodes means you can connect to the proxy in any of your participating clusters. Connecting to the closest cluster geographically enables near-local latency. Multi-primary replication (previously referred to as multi-master replication) also means that your users still have access to the database if one of the participating clusters fails. +When developing for Active-Active databases, you need to consider some important differences. See [Develop applications with Active-Active databases]({{< relref "/operate/rc/databases/active-active/develop/_index.md" >}}) for related information. {{< note >}} -Active-Active databases do not replicate the entire database, only the data. -Database configurations, LUA scripts, and other support info are not replicated. +Active-Active subscriptions on Redis Cloud are limited to a maximum of 10 regions and 10 databases. {{< /note >}} -## Syncer - -Keeping multiple copies of the dataset consistent across multiple clusters is no small task. To achieve consistency between participating clusters, Redis Active-Active replication uses a process called the [syncer]({{< relref "/operate/rs/databases/active-active/syncer" >}}). - -The syncer keeps a [replication backlog]({{< relref "/operate/rs/databases/active-active/manage#replication-backlog/" >}}), which stores changes to the dataset that the syncer sends to other participating clusters. The syncer uses partial syncs to keep replicas up to date with changes, or a full sync in the event a replica or primary is lost. +## Active-Active geo-distributed replication highlights -## Conflict resolution +### Multi-zone -Because you can connect to any participating cluster to perform a write operation, concurrent and conflicting writes are always possible. Conflict resolution is an important part of the Active-Active technology. Active-Active databases only use [conflict-free replicated data types (CRDTs)](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type). These data types provide a predictable conflict resolution and don't require any additional work from the application or client side. +Geo-distributed replication maintains copies of both primary and replica shards in multiple clusters. These clusters can be spread across multiple availability zones. Active-Active Redis uses zone awareness to spread your primary and replica shards across zones, which helps protect against data loss from regional outages. -When developing with CRDTs for Active-Active databases, you need to consider some important differences. See [Develop applications with Active-Active databases]({{< relref "/operate/rs/databases/active-active/develop/_index.md" >}}) for related information. +### Local latency with unique endpoints +Applications can connect to a specific copy of an Active-Active database using its unique endpoint. For local latency, configure your application to use a database endpoint in the closest region. -## Strong eventual consistency +### Conflict resolution -Maintaining strong consistency for replicated databases comes with tradeoffs in scalability and availability. Redis Active-Active databases use a strong eventual consistency model, which means that local values may differ across replicas for short periods of time, but they all eventually converge to one consistent state. Redis uses vector clocks and the CRDT conflict resolution to strengthen consistency between replicas. You can also enable the causal consistency feature to preserve the order of operations as they are synchronized among replicas. +Active-Active databases use special data types called conflict-free data types (CRDT). These automatically resolve conflicts that occur when writes are made to different clusters at the same time. -Other Redis Enterprise Software features can also be used to enhance the performance, scalability, or durability of your Active-Active database. These include [data persistence]({{< relref "/operate/rs/databases/configure/database-persistence.md" >}}), [multiple active proxies]({{< relref "/operate/rs/databases/configure/proxy-policy.md" >}}), [distributed synchronization]({{< relref "/operate/rs/databases/active-active/synchronization-mode.md" >}}), [OSS Cluster API]({{< relref "/operate/rs/databases/configure/oss-cluster-api.md" >}}), and [rack-zone awareness]({{< relref "/operate/rs/clusters/configure/rack-zone-awareness.md" >}}). +### Failover handling -## Next steps +After a failure at the process, node, or zone level, Active-Active databases automatically promote replica shards to replace failed primaries, copy data to new replica shards, and migrate shards to new nodes as needed. This reduces downtime and makes the most of your computing resources, even in the event of a failure. -- [Plan your Active-Active deployment]({{< relref "/operate/rs/databases/active-active/planning.md" >}}) -- [Get started with Active-Active]({{< relref "/operate/rs/databases/active-active/get-started.md" >}}) -- [Create an Active-Active database]({{< relref "/operate/rs/databases/active-active/create.md" >}}) \ No newline at end of file +Active-Active also provides a failover opportunity in case an entire cluster fails. Applications should redirect traffic to another cluster in the Active-Active deployment if a connected cluster fails. After the original cluster recovers, applications can direct traffic back to the original cluster. Redirecting traffic to alternate clusters is not handled automatically by Active-Active, so you must add redirection logic to the application. However, data automatically syncs to a recovered cluster when it returns to a healthy state. diff --git a/content/operate/rc/databases/create-database/create-active-active-database.md b/content/operate/rc/databases/active-active/create-active-active-database.md similarity index 98% rename from content/operate/rc/databases/create-database/create-active-active-database.md rename to content/operate/rc/databases/active-active/create-active-active-database.md index 310ff2523c..ace96712c5 100644 --- a/content/operate/rc/databases/create-database/create-active-active-database.md +++ b/content/operate/rc/databases/active-active/create-active-active-database.md @@ -10,9 +10,10 @@ linkTitle: Create Active-Active database weight: 20 aliases: - /operate/rc/subscriptions/create-active-active-subscription + - /operate/rc/databases/create-database/create-active-active-database --- -Active-Active databases store data across multiple regions and availability zones. This improves scalability, performance, and availability, especially when compared to standalone databases. See [Active-Active Redis]({{< relref "/operate/rc/databases/configuration/active-active-redis" >}}) for more information. +Active-Active databases store data across multiple regions and availability zones. This improves scalability, performance, and availability, especially when compared to standalone databases. See [Active-Active Redis]({{< relref "/operate/rc/databases/active-active" >}}) for more information. To deploy Active-Active databases in Redis Cloud, you need a Redis Cloud Pro plan that enables Active-Active Redis and defines the regions for each copy of your databases. @@ -319,8 +320,8 @@ Use the **Database list** to check the status of your databases. ## More info - [Create a Pro database with a new subscription]({{< relref "/operate/rc/databases/create-database/create-pro-database-new" >}}) -- [Active-Active Redis]({{< relref "/operate/rc/databases/configuration/active-active-redis" >}}) -- [Develop applications with Active-Active databases]({{< relref "/operate/rs/databases/active-active/develop/_index.md" >}}) +- [Active-Active Redis]({{< relref "/operate/rc/databases/active-active" >}}) +- [Develop applications with Active-Active databases]({{< relref "/operate/rc/databases/active-active/develop/_index.md" >}}) - Database [memory limit]({{< relref "/operate/rc/databases/configuration/sizing#dataset-size" >}}) - Redis Cloud [subscription plans]({{< relref "/operate/rc/subscriptions/" >}}) - [Redis Cloud pricing](https://redis.io/pricing/#monthly) diff --git a/content/operate/rc/databases/active-active/develop/_index.md b/content/operate/rc/databases/active-active/develop/_index.md new file mode 100644 index 0000000000..d5eb355c4d --- /dev/null +++ b/content/operate/rc/databases/active-active/develop/_index.md @@ -0,0 +1,52 @@ +--- +Title: Active-Active Redis applications +alwaysopen: false +categories: +- docs +- operate +- rc +description: General information to keep in mind while developing applications for + an Active-Active database. +hideListLinks: true +linktitle: Develop applications +weight: 99 +note: The rest of the content in this folder is mounted from content/operate/rs/databases/active-active/develop. If you need to make a change in the pages in this folder, make it in the RS folder. +--- +Developing globally distributed applications can be challenging, as +developers have to think about race conditions and complex combinations +of events under geo-failovers and cross-region write conflicts. In Redis Cloud, Active-Active databases +simplify developing such applications by directly using built-in smarts +for handling conflicting writes based on the data type in use. Instead +of depending on just simplistic "last-writer-wins" type conflict +resolution, geo-distributed Active-Active databases combine techniques defined in CRDT +(conflict-free replicated data types) research with Redis types to +provide smart and automatic conflict resolution based on the data type's +intent. + +An Active-Active database is a globally distributed database that spans multiple cloud provider regions. Each Active-Active database can have many Active-Active database instances +that come with added smarts for handling globally distributed writes +using the proven +[CRDT](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type) +approach. +[CRDT](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type) +research describes a set of techniques for creating systems that can +handle conflicting writes. CRDBs powered by Multi-Master Replication +(MMR) provide a straightforward and effective way to replicate your +data between regions and simplify development of complex applications +that can maintain correctness under geo-failovers and concurrent +cross-region writes to the same data. + +{{< image filename="/images/rs/crdbs.png" alt="Geo-replication world map">}} + +Active-Active databases replicate data between multiple Redis Cloud provider regions. Common uses for Active-Active databases include disaster recovery, +geographically redundant applications, and keeping data closer to your +users' locations. MMR is always multi-directional amongst the regions +configured in the Active-Active database. For unidirectional replication, see [Active-Passive replication]({{< relref "/operate/rc/databases/migrate-databases#sync-using-active-passive" >}}). + +## Example of synchronization + +{{< embedmd "content/embeds/rc-rs-aa-synchronization.md" >}} + +[Learn more about +synchronization for +each supported data type]({{< relref "content/operate/rc/databases/active-active/develop/data-types/" >}}) and [how to develop applications]({{< relref "content/operate/rc/databases/active-active/develop/develop-for-aa.md" >}}) with them on Redis Cloud. \ No newline at end of file diff --git a/content/operate/rc/databases/configuration/active-active-redis.md b/content/operate/rc/databases/configuration/active-active-redis.md deleted file mode 100644 index e649ec5efd..0000000000 --- a/content/operate/rc/databases/configuration/active-active-redis.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -Title: Active-Active Redis -alwaysopen: false -categories: -- docs -- operate -- rc -description: Overview of the Active-Active feature for Redis Cloud. -weight: 5 ---- - -Active-Active databases store data across multiple regions and availability zones. This improves scalability, performance, and availability, especially when compared to standalone databases. - -To create Active-Active databases, you need a Redis Cloud Pro subscription that enables Active-Active Redis and defines the regions for each copy of your databases. See [Create an Active-Active database]({{< relref "/operate/rc/databases/create-database/create-active-active-database" >}}) for instructions. - -Active-Active databases are distributed across multiple regions (geo-distribution). This improves performance by reducing latency for nearby users and improves availability by protecting against data loss in case of network or resource failure. - -Active-Active databases allow read and write operations in each copy. Each copy eventually reflects changes made in other copies ([eventual consistency]({{< relref "/glossary#eventual-consistency" >}})). Conflict-free data types (CRDTs) synchronize read and write operations between copies. CRDTs ensure consistency and resolve conflicts. - -Active-Active databases use TLS to synchronize data between regions. You can also use TLS to encrypt client connections. See [Transport Layer Security (TLS)]({{< relref "/operate/rc/security/database-security/tls-ssl.md" >}}) for more information. - -When developing for Active-Active databases, you need to consider some important differences. See [Develop applications with Active-Active databases]({{< relref "/operate/rs/databases/active-active/develop/_index.md" >}}) for related information. - -{{< note >}} -Active-Active subscriptions on Redis Cloud are limited to a maximum of 10 regions and 10 databases. -{{< /note >}} - -## Active-Active geo-distributed replication highlights - -### Multi-zone - -Geo-distributed replication maintains copies of both primary and replica shards in multiple clusters. These clusters can be spread across multiple availability zones. Active-Active Redis uses zone awareness to spread your primary and replica shards across zones, which helps protect against data loss from regional outages. - -### Local latency with unique endpoints - -Applications can connect to a specific copy of an Active-Active database using its unique endpoint. For local latency, configure your application to use a database endpoint in the closest region. - -### Conflict resolution - -Active-Active databases use special data types called conflict-free data types (CRDT). These automatically resolve conflicts that occur when writes are made to different clusters at the same time. - -### Failover handling - -After a failure at the process, node, or zone level, Active-Active databases automatically promote replica shards to replace failed primaries, copy data to new replica shards, and migrate shards to new nodes as needed. This reduces downtime and makes the most of your computing resources, even in the event of a failure. - -Active-Active also provides a failover opportunity in case an entire cluster fails. Applications should redirect traffic to another cluster in the Active-Active deployment if a connected cluster fails. After the original cluster recovers, applications can direct traffic back to the original cluster. Redirecting traffic to alternate clusters is not handled automatically by Active-Active, so you must add redirection logic to the application. However, data automatically syncs to a recovered cluster when it returns to a healthy state. diff --git a/content/operate/rc/databases/import-data.md b/content/operate/rc/databases/import-data.md index f9908f9999..55afc7bd99 100644 --- a/content/operate/rc/databases/import-data.md +++ b/content/operate/rc/databases/import-data.md @@ -14,7 +14,7 @@ You can import an existing dataset into your Redis Cloud instance from an existi {{< warning >}} Data imported into an existing database overwrites existing data. - If you import a dataset into the target database of an [Active-Passive setup]({{< relref "/operate/rc/databases/migrate-databases#sync-using-active-passive" >}}), the dataset will be overwritten by any changes to the source database. -- If you import a dataset into one region in an [Active-Active database]({{< relref "/operate/rc/databases/configuration/active-active-redis" >}}), the dataset will also be replicated across regions. +- If you import a dataset into one region in an [Active-Active database]({{< relref "/operate/rc/databases/active-active/" >}}), the dataset will also be replicated across regions. {{< /warning >}}
{{< note >}} diff --git a/content/operate/rs/databases/active-active/develop/_index.md b/content/operate/rs/databases/active-active/develop/_index.md index 92d7922154..eb4a879afd 100644 --- a/content/operate/rs/databases/active-active/develop/_index.md +++ b/content/operate/rs/databases/active-active/develop/_index.md @@ -5,13 +5,11 @@ categories: - docs - operate - rs -- rc description: General information to keep in mind while developing applications for an Active-Active database. hideListLinks: true linktitle: Develop applications weight: 99 -note: This entire folder is duplicated in operate/rc/databases/active-active/develop. If you link to anything in this folder, make sure the link works on both RS and RC. --- Developing globally distributed applications can be challenging, as developers have to think about race conditions and complex combinations @@ -49,20 +47,8 @@ Replica Of capabilities in Redis Enterprise Software. ## Example of synchronization -In the example below, database writes are concurrent at the points in -time t1 and t2 and happen before a sync can communicate the changes. -However, writes at times t4 and t6 are not concurrent as a sync happened -in between. - -| **Time** | **CRDB Instance1** | **CRDB Instance2** | -| ------: | :------: | :------: | -| t1 | SET key1 "a" | | -| t2 | | SET key1 "b" | -| t3 | — Sync — | — Sync — | -| t4 | SET key1 "c" | | -| t5 | — Sync — | — Sync — | -| t6 | | SET key1 "d" | +{{< embedmd "content/embeds/rc-rs-aa-synchronization.md" >}} [Learn more about synchronization for -each supported data type]({{< relref "./data-types/" >}}) and [how to develop applications]({{< relref "./develop-for-aa.md" >}}) with them on Redis Enterprise Software. +each supported data type]({{< relref "content/operate/rs/databases/active-active/develop/data-types/" >}}) and [how to develop applications]({{< relref "content/operate/rs/databases/active-active/develop/develop-for-aa.md" >}}) with them on Redis Enterprise Software. From acda1c41840c9b829d40bf8362be86efd59245e2 Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Fri, 24 Oct 2025 14:42:55 -0400 Subject: [PATCH 04/17] embeds --- .../rc/databases/active-active/develop/_index.md | 2 +- .../configuration/data-eviction-policies.md | 12 +++++++++--- .../rs/databases/active-active/develop/_index.md | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/content/operate/rc/databases/active-active/develop/_index.md b/content/operate/rc/databases/active-active/develop/_index.md index d5eb355c4d..bd8c7e9485 100644 --- a/content/operate/rc/databases/active-active/develop/_index.md +++ b/content/operate/rc/databases/active-active/develop/_index.md @@ -45,7 +45,7 @@ configured in the Active-Active database. For unidirectional replication, see [A ## Example of synchronization -{{< embedmd "content/embeds/rc-rs-aa-synchronization.md" >}} +{{< embed-md "rc-rs-aa-synchronization.md" >}} [Learn more about synchronization for diff --git a/content/operate/rc/databases/configuration/data-eviction-policies.md b/content/operate/rc/databases/configuration/data-eviction-policies.md index e29f399ab3..e14c52c25e 100644 --- a/content/operate/rc/databases/configuration/data-eviction-policies.md +++ b/content/operate/rc/databases/configuration/data-eviction-policies.md @@ -35,10 +35,12 @@ For each database, you can choose from these data eviction policies: ## Prevent data eviction -Redis Cloud supports [Auto Tiering]({{< relref "/operate/rs/databases/auto-tiering/" >}}) +To avoid data eviction, make sure your database is large enough to hold required values. + +Redis Cloud supports [Auto Tiering]({{< relref "/operate/rs/databases/auto-tiering/" >}}) on Redis Cloud Pro and [Redis Flex]({{< relref "/operate/rc/databases/create-database/create-flex-database" >}}) on Redis Cloud Essentials to prevent data eviction but maintain high performance. -Auto Tiering can extend your database across RAM and Flash Memory and intelligently manage "hot" (active) data in RAM and "cold" (less active) data in Flash memory (SSD). +Auto Tiering and Redis Flex can extend your database across RAM and Flash Memory and intelligently manage "hot" (active) data in RAM and "cold" (less active) data in Flash memory (SSD). ## Active-Passive replication considerations @@ -48,4 +50,8 @@ Do not write to the target database while Active-Passive is enabled. Doing so ca - The target database cannot rely on eviction or expiration to manage local writes, requiring sufficient memory to handle both replicated data and local writes. - Local writes create differences between the source and target databases, causing replicated commands to behave differently on each database. -- Inconsistent data can cause replicated commands to fail with errors, which will cause the synchronization process to exit and break replication. \ No newline at end of file +- Inconsistent data can cause replicated commands to fail with errors, which will cause the synchronization process to exit and break replication. + +## Active-Active replication considerations + +The eviction policy mechanism for [Active-Active databases]({{< relref "/operate/rc/databases/active-active" >}}) kicks in earlier than for standalone databases because it requires propagation to all regions. The eviction policy starts to evict keys when one of the Active-Active instances reaches 80% of its memory limit. If memory usage continues to rise while the keys are being evicted, the rate of eviction will increase to prevent reaching the Out-of-Memory state. diff --git a/content/operate/rs/databases/active-active/develop/_index.md b/content/operate/rs/databases/active-active/develop/_index.md index eb4a879afd..d563da6c68 100644 --- a/content/operate/rs/databases/active-active/develop/_index.md +++ b/content/operate/rs/databases/active-active/develop/_index.md @@ -47,7 +47,7 @@ Replica Of capabilities in Redis Enterprise Software. ## Example of synchronization -{{< embedmd "content/embeds/rc-rs-aa-synchronization.md" >}} +{{< embed-md "rc-rs-aa-synchronization.md" >}} [Learn more about synchronization for From 1bbbd243812940c2e446a5c5a69bd2ae1285edbd Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Fri, 24 Oct 2025 15:08:49 -0400 Subject: [PATCH 05/17] show-on-path shortcode --- .../active-active/develop/develop-for-aa.md | 12 +++++++++- layouts/shortcodes/show-on-path.html | 23 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 layouts/shortcodes/show-on-path.html diff --git a/content/operate/rs/databases/active-active/develop/develop-for-aa.md b/content/operate/rs/databases/active-active/develop/develop-for-aa.md index fe063cc95e..f5cd12b3e0 100644 --- a/content/operate/rs/databases/active-active/develop/develop-for-aa.md +++ b/content/operate/rs/databases/active-active/develop/develop-for-aa.md @@ -97,9 +97,19 @@ execute them in script-replication mode. ## Eviction -The default policy for Active-Active databases is _noeviction_ mode. Redis Enterprise version 6.0.20 and later support all eviction policies for Active-Active databases, unless [Auto Tiering]({{< relref "/operate/rs/databases/auto-tiering" >}})(previously known as Redis on Flash) is enabled. +{{< show-on-path filepath="/operate/rs/databases/active-active/develop/develop-for-aa" >}} + +The default policy for Active-Active databases is _noeviction_ mode. Redis Enterprise version 6.0.20 and later support all eviction policies for Active-Active databases, unless [Auto Tiering]({{< relref "/operate/rs/databases/auto-tiering" >}}) (previously known as Redis on Flash) is enabled. For details, see [eviction for Active-Active databases]({{< relref "/operate/rs/databases/memory-performance/eviction-policy#active-active-database-eviction" >}}). +{{< /show-on-path >}} + +{{< show-on-path filepath="/operate/rc/databases/active-active/develop/develop-for-aa" >}} + +The default policy for Active-Active databases is _noeviction_ mode. All eviction policies are supported for Active-Active databases. +For details, see [eviction for Active-Active databases]({{< relref "/operate/rc/databases/configuration/data-eviction-policies#active-active-replication-considerations" >}}). + +{{< /show-on-path >}} ## Expiration diff --git a/layouts/shortcodes/show-on-path.html b/layouts/shortcodes/show-on-path.html new file mode 100644 index 0000000000..c99821e691 --- /dev/null +++ b/layouts/shortcodes/show-on-path.html @@ -0,0 +1,23 @@ +{{/* +Show-on-path shortcode that displays content only if the current page URL matches the specified filepath. + +Usage: +{{< show-on-path filepath="/path/to/page" >}} +Content to show only on the specified path +{{< /show-on-path >}} + +Parameters: +- filepath: The URL path to match against (required) +*/}} + +{{ $filepath := .Get "filepath" }} +{{ $currentPath := .Page.RelPermalink }} + +{{/* Remove trailing slash from both paths for consistent comparison */}} +{{ $normalizedFilepath := cond (strings.HasSuffix $filepath "/") (substr $filepath 0 (sub (len $filepath) 1)) $filepath }} +{{ $normalizedCurrentPath := cond (strings.HasSuffix $currentPath "/") (substr $currentPath 0 (sub (len $currentPath) 1)) $currentPath }} + +{{/* Display content only if paths match */}} +{{ if eq $normalizedCurrentPath $normalizedFilepath }} +{{ .Inner | markdownify }} +{{ end }} From f827241bdf742e33df9cb612d4b54740ea737c7a Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Fri, 24 Oct 2025 15:30:31 -0400 Subject: [PATCH 06/17] Fix relrefs --- content/integrate/prometheus-with-redis-cloud/_index.md | 2 +- content/operate/_index.md | 2 +- .../oss_and_stack/stack-with-enterprise/json/active-active.md | 2 +- content/operate/rc/changelog/2023/december-2023.md | 4 ++-- content/operate/rc/changelog/2023/may-2023.md | 2 +- content/operate/rc/changelog/2024/may-2024.md | 4 ++-- content/operate/rc/changelog/august-2025.md | 2 +- content/operate/rc/databases/_index.md | 2 +- content/operate/rc/databases/active-active/_index.md | 2 +- content/operate/rc/databases/active-active/develop/_index.md | 2 +- .../rc/databases/configuration/advanced-capabilities.md | 2 +- content/operate/rc/databases/configuration/sizing.md | 2 +- content/operate/rc/databases/create-database/_index.md | 2 +- .../rc/databases/create-database/create-pro-database-new.md | 2 +- content/operate/rc/databases/view-edit-database.md | 2 +- content/operate/rc/langcache/create-service.md | 2 +- content/operate/rc/resilient-apps.md | 2 +- .../access-control/data-access-control/active-active-roles.md | 2 +- .../access-control/data-access-control/configure-acls.md | 2 +- .../access-control/data-access-control/create-roles.md | 2 +- .../operate/rc/subscriptions/bring-your-own-cloud/_index.md | 2 +- .../rs/7.4/databases/active-active/develop/data-types/json.md | 2 +- .../rs/7.8/databases/active-active/develop/data-types/json.md | 2 +- content/operate/rs/databases/active-active/develop/_index.md | 2 +- .../rs/databases/active-active/develop/data-types/json.md | 2 +- 25 files changed, 27 insertions(+), 27 deletions(-) diff --git a/content/integrate/prometheus-with-redis-cloud/_index.md b/content/integrate/prometheus-with-redis-cloud/_index.md index 8e1923b7ea..9946ef1ab6 100644 --- a/content/integrate/prometheus-with-redis-cloud/_index.md +++ b/content/integrate/prometheus-with-redis-cloud/_index.md @@ -193,7 +193,7 @@ Redis publishes preconfigured dashboards for Redis Cloud and Grafana: * The [subscription status dashboard](https://grafana.com/grafana/dashboards/18406-subscription-status-dashboard/) provides an overview of your Redis Cloud subscriptions. * The [database status dashboard](https://grafana.com/grafana/dashboards/18407-database-status-dashboard/) displays specific database metrics, including latency, memory usage, ops/second, and key count. -* The [Active-Active dashboard](https://github.com/redis-field-engineering/redis-enterprise-observability/blob/main/grafana/dashboards/grafana_v9-11/cloud/basic/redis-cloud-active-active-dashboard_v9-11.json) displays metrics specific to [Active-Active databases]({{< relref "/operate/rc/databases/configuration/active-active-redis" >}}). +* The [Active-Active dashboard](https://github.com/redis-field-engineering/redis-enterprise-observability/blob/main/grafana/dashboards/grafana_v9-11/cloud/basic/redis-cloud-active-active-dashboard_v9-11.json) displays metrics specific to [Active-Active databases]({{< relref "/operate/rc/databases/active-active" >}}). These dashboards are open source. For additional dashboard options, or to file an issue, see the [Redis Enterprise observability Github repository](https://github.com/redis-field-engineering/redis-enterprise-observability/tree/main/grafana). diff --git a/content/operate/_index.md b/content/operate/_index.md index 2ed166aaae..911000db93 100644 --- a/content/operate/_index.md +++ b/content/operate/_index.md @@ -22,7 +22,7 @@ hideListLinks: true |:-----------|:--------------|:-----------|:--------------|:--------------| | Clustering | [Clustering]({{< relref "/operate/rc/databases/configuration/clustering" >}}) | [Clustering]({{}}) | [Scale with Redis Cluster]({{< relref "/operate/oss_and_stack/management/scaling" >}}) | [Redis Enterprise clusters (REC)]({{}}) | | Replication | [Replication]({{< relref "/operate/rc/databases/configuration/high-availability" >}}) | [Replication]({{}}) | [Replication]({{< relref "/operate/oss_and_stack/management/replication" >}}) | [Create replica databases]({{}})| -| Active-Active geo-distribution | [Active-Active Redis]({{< relref "/operate/rc/databases/configuration/active-active-redis" >}}) | [Active-Active Redis]({{}}) | | [Active-Active databases]({{}}) | +| Active-Active geo-distribution | [Active-Active Redis]({{< relref "/operate/rc/databases/active-active" >}}) | [Active-Active Redis]({{}}) | | [Active-Active databases]({{}}) | | Rolling upgrades | [Upgrade database version]({{< relref "/operate/rc/databases/upgrade-version" >}}) | [Upgrade Redis Software]({{}}) | | [Upgrade Redis for K8s]({{}}) | | Redis Flex/Auto tiering | [Create a Redis Flex database]({{< relref "/operate/rc/databases/create-database/create-flex-database" >}}) | [Auto Tiering]({{}}) | | [Auto Tiering]({{}}) | | Persistence | [Data persistence]({{< relref "/operate/rc/databases/configuration/data-persistence" >}}) | [Persistence]({{}}) | [Persistence]({{< relref "/operate/oss_and_stack/management/replication" >}}) | [Persistence volumes]({{}})| diff --git a/content/operate/oss_and_stack/stack-with-enterprise/json/active-active.md b/content/operate/oss_and_stack/stack-with-enterprise/json/active-active.md index e7e29289e2..3040bd1858 100644 --- a/content/operate/oss_and_stack/stack-with-enterprise/json/active-active.md +++ b/content/operate/oss_and_stack/stack-with-enterprise/json/active-active.md @@ -19,7 +19,7 @@ The design is based on [A Conflict-Free Replicated JSON Datatype](https://arxiv. To use JSON in an Active-Active database, you must enable JSON during database creation. -Active-Active Redis Cloud databases add JSON by default. See [Create an Active-Active database]({{< relref "/operate/rc/databases/create-database/create-active-active-database#select-capabilities" >}}) in the Redis Cloud documentation for details. +Active-Active Redis Cloud databases add JSON by default. See [Create an Active-Active database]({{< relref "/operate/rc/databases/active-active/create-active-active-database#select-capabilities" >}}) in the Redis Cloud documentation for details. In Redis Enterprise Software, JSON is not enabled by default for Active-Active databases. To create an Active-Active JSON database in Redis Enterprise Software: diff --git a/content/operate/rc/changelog/2023/december-2023.md b/content/operate/rc/changelog/2023/december-2023.md index d4e68aa029..890ea15e5a 100644 --- a/content/operate/rc/changelog/2023/december-2023.md +++ b/content/operate/rc/changelog/2023/december-2023.md @@ -20,9 +20,9 @@ aliases: ### Active-Active JSON support -[Active-Active databases]({{< relref "/operate/rc/databases/configuration/active-active-redis" >}}) on Redis Cloud now support the [JSON]({{< relref "/operate/oss_and_stack/stack-with-enterprise/json" >}}) data type. +[Active-Active databases]({{< relref "/operate/rc/databases/active-active" >}}) on Redis Cloud now support the [JSON]({{< relref "/operate/oss_and_stack/stack-with-enterprise/json" >}}) data type. -See [Create an Active-Active subscription]({{< relref "/operate/rc/databases/create-database/create-active-active-database" >}}) to learn how to create an Active-Active subscription. +See [Create an Active-Active subscription]({{< relref "/operate/rc/databases/active-active/create-active-active-database" >}}) to learn how to create an Active-Active subscription. ### Mutual TLS enhancements diff --git a/content/operate/rc/changelog/2023/may-2023.md b/content/operate/rc/changelog/2023/may-2023.md index 65bf1bf20f..192bdc0797 100644 --- a/content/operate/rc/changelog/2023/may-2023.md +++ b/content/operate/rc/changelog/2023/may-2023.md @@ -28,6 +28,6 @@ The new fixed endpoints can be viewed in the [Redis Cloud Swagger UI](https://ap ### Active-Active access roles -For [Active-Active databases]({{< relref "/operate/rc/databases/configuration/active-active-redis" >}}), you can now define roles with different levels of access for different regions. +For [Active-Active databases]({{< relref "/operate/rc/databases/active-active" >}}), you can now define roles with different levels of access for different regions. For more information, see [Active-Active roles]({{< relref "/operate/rc/security/access-control/data-access-control/active-active-roles" >}}). \ No newline at end of file diff --git a/content/operate/rc/changelog/2024/may-2024.md b/content/operate/rc/changelog/2024/may-2024.md index 611fbec95a..c2d7fb4435 100644 --- a/content/operate/rc/changelog/2024/may-2024.md +++ b/content/operate/rc/changelog/2024/may-2024.md @@ -30,9 +30,9 @@ If you have an active SAML configuration, you can still sign in with SAML SSO, b ### Active-Active Search and query support -[Active-Active databases]({{< relref "/operate/rc/databases/configuration/active-active-redis" >}}) on Redis Cloud now support [Search and query]({{< relref "/operate/oss_and_stack/stack-with-enterprise/search" >}}). +[Active-Active databases]({{< relref "/operate/rc/databases/active-active" >}}) on Redis Cloud now support [Search and query]({{< relref "/operate/oss_and_stack/stack-with-enterprise/search" >}}). -See [Create an Active-Active database]({{< relref "/operate/rc/databases/create-database/create-active-active-database" >}}) to learn how to create an Active-Active database. +See [Create an Active-Active database]({{< relref "/operate/rc/databases/active-active/create-active-active-database" >}}) to learn how to create an Active-Active database. See [Search and query Active-Active databases]({{< relref "/operate/oss_and_stack/stack-with-enterprise/search/search-active-active" >}}) to learn how to use Search and query on Active-Active databases. diff --git a/content/operate/rc/changelog/august-2025.md b/content/operate/rc/changelog/august-2025.md index f6e21f2911..e77cbd9e13 100644 --- a/content/operate/rc/changelog/august-2025.md +++ b/content/operate/rc/changelog/august-2025.md @@ -18,4 +18,4 @@ tags: ### Active-Active on Redis Cloud BYOC -You can now deploy [Active-Active databases]({{< relref "/operate/rc/databases/create-database/create-active-active-database" >}}) to [Redis Cloud Bring your own Cloud]({{< relref "/operate/rc/subscriptions/bring-your-own-cloud" >}}). +You can now deploy [Active-Active databases]({{< relref "/operate/rc/databases/active-active/create-active-active-database" >}}) to [Redis Cloud Bring your own Cloud]({{< relref "/operate/rc/subscriptions/bring-your-own-cloud" >}}). diff --git a/content/operate/rc/databases/_index.md b/content/operate/rc/databases/_index.md index 1ede3a7cf4..63c32545b7 100644 --- a/content/operate/rc/databases/_index.md +++ b/content/operate/rc/databases/_index.md @@ -22,7 +22,7 @@ Here's how to perform a variety of tasks: - [Create an Essentials database]({{< relref "/operate/rc/databases/create-database/create-essentials-database" >}}) - [Create a Pro database with a new subscription]({{< relref "/operate/rc/databases/create-database/create-pro-database-new" >}}) - [Create a Pro database in an existing subscription]({{< relref "/operate/rc/databases/create-database/create-pro-database-existing" >}}) - - [Create an Active-Active database]({{< relref "/operate/rc/databases/create-database/create-active-active-database" >}}) + - [Create an Active-Active database]({{< relref "/operate/rc/databases/active-active/create-active-active-database" >}}) - [View and edit databases]({{< relref "/operate/rc/databases/view-edit-database" >}}) diff --git a/content/operate/rc/databases/active-active/_index.md b/content/operate/rc/databases/active-active/_index.md index 816949cda9..75c22a26ae 100644 --- a/content/operate/rc/databases/active-active/_index.md +++ b/content/operate/rc/databases/active-active/_index.md @@ -14,7 +14,7 @@ aliases: Active-Active databases store data across multiple regions and availability zones. This improves scalability, performance, and availability, especially when compared to standalone databases. -To create Active-Active databases, you need a Redis Cloud Pro subscription that enables Active-Active Redis and defines the regions for each copy of your databases. See [Create an Active-Active database]({{< relref "/operate/rc/databases/create-database/create-active-active-database" >}}) for instructions. +To create Active-Active databases, you need a Redis Cloud Pro subscription that enables Active-Active Redis and defines the regions for each copy of your databases. See [Create an Active-Active database]({{< relref "/operate/rc/databases/active-active/create-active-active-database" >}}) for instructions. Active-Active databases are distributed across multiple regions (geo-distribution). This improves performance by reducing latency for nearby users and improves availability by protecting against data loss in case of network or resource failure. diff --git a/content/operate/rc/databases/active-active/develop/_index.md b/content/operate/rc/databases/active-active/develop/_index.md index bd8c7e9485..4bd99e15a7 100644 --- a/content/operate/rc/databases/active-active/develop/_index.md +++ b/content/operate/rc/databases/active-active/develop/_index.md @@ -49,4 +49,4 @@ configured in the Active-Active database. For unidirectional replication, see [A [Learn more about synchronization for -each supported data type]({{< relref "content/operate/rc/databases/active-active/develop/data-types/" >}}) and [how to develop applications]({{< relref "content/operate/rc/databases/active-active/develop/develop-for-aa.md" >}}) with them on Redis Cloud. \ No newline at end of file +each supported data type]({{< relref "/operate/rc/databases/active-active/develop/data-types/" >}}) and [how to develop applications]({{< relref "/operate/rc/databases/active-active/develop/develop-for-aa" >}}) with them on Redis Cloud. \ No newline at end of file diff --git a/content/operate/rc/databases/configuration/advanced-capabilities.md b/content/operate/rc/databases/configuration/advanced-capabilities.md index 3c18048035..785f2835c8 100644 --- a/content/operate/rc/databases/configuration/advanced-capabilities.md +++ b/content/operate/rc/databases/configuration/advanced-capabilities.md @@ -44,7 +44,7 @@ You can select more than one advanced capability for a database, though there ar - Time series - Probabilistic -- [Active-Active databases]({{< relref "/operate/rc/databases/create-database/create-active-active-database" >}}) only support JSON and Search and query. +- [Active-Active databases]({{< relref "/operate/rc/databases/active-active/create-active-active-database" >}}) only support JSON and Search and query. To remove a selected capability, clear its checkbox. diff --git a/content/operate/rc/databases/configuration/sizing.md b/content/operate/rc/databases/configuration/sizing.md index 4c2e8f31b8..ea031b3e16 100644 --- a/content/operate/rc/databases/configuration/sizing.md +++ b/content/operate/rc/databases/configuration/sizing.md @@ -24,7 +24,7 @@ Here are some general guidelines: - [Replication]({{< relref "/operate/rc/databases/configuration/high-availability" >}}) doubles memory consumption; that is, 512 MB of data requires at least 1 GB of memory limit when replication is enabled. This affects both Redis Cloud Pro and Redis Cloud Essentials. For example, if you subscribe to a 1 GB Essentials plan, Redis will allocate 512 MB for your dataset and the other 512 MB for replication. -- [Active-Active]({{< relref "/operate/rc/databases/configuration/active-active-redis" >}}) also doubles memory consumption and the effect is cumulative with replication's impact. Since Active-Active requires replication to be turned on, the memory limit impact can be as large as four times (4x) the original data size. +- [Active-Active]({{< relref "/operate/rc/databases/active-active" >}}) also doubles memory consumption and the effect is cumulative with replication's impact. Since Active-Active requires replication to be turned on, the memory limit impact can be as large as four times (4x) the original data size. - [Advanced capabilities]({{< relref "/operate/rc/databases/configuration/advanced-capabilities" >}}) also consume memory. For search databases, consider index size when you size your database. See [Search and query sizing]({{< relref "/operate/rc/databases/configuration/advanced-capabilities#search-and-query-sizing" >}}) for more info. diff --git a/content/operate/rc/databases/create-database/_index.md b/content/operate/rc/databases/create-database/_index.md index 7386a5505b..13bb1975a8 100644 --- a/content/operate/rc/databases/create-database/_index.md +++ b/content/operate/rc/databases/create-database/_index.md @@ -25,6 +25,6 @@ A **Free** plan is a type of Essentials plan designed for learning and building A **Pro** plan is an hourly price based on capacity. It supports more databases, larger databases, greater throughput, and unlimited connections. - [Create a Pro database with a new subscription]({{< relref "/operate/rc/databases/create-database/create-pro-database-new" >}}) - [Create a Pro database in an existing subscription]({{< relref "/operate/rc/databases/create-database/create-pro-database-existing" >}}) -- [Create an Active-Active database]({{< relref "/operate/rc/databases/create-database/create-active-active-database" >}}) +- [Create an Active-Active database]({{< relref "/operate/rc/databases/active-active/create-active-active-database" >}}) diff --git a/content/operate/rc/databases/create-database/create-pro-database-new.md b/content/operate/rc/databases/create-database/create-pro-database-new.md index 6704397e3f..c65bf6f36c 100644 --- a/content/operate/rc/databases/create-database/create-pro-database-new.md +++ b/content/operate/rc/databases/create-database/create-pro-database-new.md @@ -113,7 +113,7 @@ In the **General settings** of the **Setup** tab, you need to: 1. Select the **Region** where you want to deploy your database. {{< note >}} -This guide is for single region database deployment. If you want to create a multi-region Active-Active database, see [Create an Active-Active database]({{< relref "/operate/rc/databases/create-database/create-active-active-database" >}}) for specific steps and configuration options exclusive to Active-Active. +This guide is for single region database deployment. If you want to create a multi-region Active-Active database, see [Create an Active-Active database]({{< relref "/operate/rc/databases/active-active/create-active-active-database" >}}) for specific steps and configuration options exclusive to Active-Active. {{< /note >}} #### Advanced options {#advanced-options} diff --git a/content/operate/rc/databases/view-edit-database.md b/content/operate/rc/databases/view-edit-database.md index c6cead9fea..dfbe810abf 100644 --- a/content/operate/rc/databases/view-edit-database.md +++ b/content/operate/rc/databases/view-edit-database.md @@ -53,7 +53,7 @@ The available settings vary according to your plan, cloud provider, and design c | **Type** | Displays 'Redis', 'Redis Stack' or 'memcached' based on the value selected when the database was created | | **Redis version** | Redis version of the database | | **Auto Tiering** | Checked when the subscription supports Auto Tiering (_Redis Cloud Pro only_) | -| **Active-Active Redis** | Checked when the database is part of an [Active-Active]({{< relref "/operate/rc/databases/configuration/active-active-redis" >}}) relationship (_Redis Cloud Pro only_) | +| **Active-Active Redis** | Checked when the database is part of an [Active-Active]({{< relref "/operate/rc/databases/active-active" >}}) relationship (_Redis Cloud Pro only_) | | **Creation time** | Date and time the database was created | | **Last changed** | Date and time of last update | | **Supported Protocol(s)** | Shows which version of RESP the database uses. See [Redis serialization protocol]({{< relref "/develop/reference/protocol-spec" >}}#resp-versions) for details | diff --git a/content/operate/rc/langcache/create-service.md b/content/operate/rc/langcache/create-service.md index d728c3b8e5..24b96a2489 100644 --- a/content/operate/rc/langcache/create-service.md +++ b/content/operate/rc/langcache/create-service.md @@ -22,7 +22,7 @@ To create a LangCache service, you will need: {{< note >}} LangCache does not support the following databases during public preview: - Databases with a [CIDR allow list]({{< relref "/operate/rc/security/cidr-whitelist" >}}) -- [Active-Active]({{< relref "/operate/rc/databases/configuration/active-active-redis" >}}) databases +- [Active-Active]({{< relref "/operate/rc/databases/active-active" >}}) databases - Databases with the [default user]({{< relref "/operate/rc/security/access-control/data-access-control/default-user" >}}) turned off {{< /note >}} diff --git a/content/operate/rc/resilient-apps.md b/content/operate/rc/resilient-apps.md index 5180acc110..36c0285624 100644 --- a/content/operate/rc/resilient-apps.md +++ b/content/operate/rc/resilient-apps.md @@ -98,5 +98,5 @@ For more info, see [How to run a Failover Test in Redis Cloud](https://support.r ## More info - [Redis Clients]({{< relref "/develop/clients" >}}) -- [Active-Active Redis]({{< relref "/operate/rc/databases/configuration/active-active-redis" >}}) +- [Active-Active Redis]({{< relref "/operate/rc/databases/active-active" >}}) - [Active-Active Redis applications]({{< relref "/operate/rs/databases/active-active/develop" >}}) \ No newline at end of file diff --git a/content/operate/rc/security/access-control/data-access-control/active-active-roles.md b/content/operate/rc/security/access-control/data-access-control/active-active-roles.md index 2b1dd9083b..238feb004f 100644 --- a/content/operate/rc/security/access-control/data-access-control/active-active-roles.md +++ b/content/operate/rc/security/access-control/data-access-control/active-active-roles.md @@ -12,7 +12,7 @@ toc: 'true' weight: $weight --- -For [Active-Active databases]({{< relref "/operate/rc/databases/configuration/active-active-redis" >}}), you can define roles with different levels of access for different regions. For example, you can define a user role with full database access in one region and read-only access in another. Or, you can prevent a user from running any commands in a specified region. +For [Active-Active databases]({{< relref "/operate/rc/databases/active-active" >}}), you can define roles with different levels of access for different regions. For example, you can define a user role with full database access in one region and read-only access in another. Or, you can prevent a user from running any commands in a specified region. 1. Go to **Data Access Control > Roles** and either select `+` to create a new role or point to an existing role and select the pencil icon to edit it. diff --git a/content/operate/rc/security/access-control/data-access-control/configure-acls.md b/content/operate/rc/security/access-control/data-access-control/configure-acls.md index aa1c56b51f..7ec6e37bfc 100644 --- a/content/operate/rc/security/access-control/data-access-control/configure-acls.md +++ b/content/operate/rc/security/access-control/data-access-control/configure-acls.md @@ -46,7 +46,7 @@ To configure a Redis ACL that you can assign to a data access role: {{Saved Redis ACL.}} -After you create a Redis ACL, you can assign it to a role. Redis ACLs are not fully verified until they are assigned to a role. For more information, see [Create roles]({{< relref "/operate/rc/security/access-control/data-access-control/create-roles" >}}) or [Active-Active access roles]({{< relref "/operate/rc/security/access-control/data-access-control/active-active-roles" >}}) for an [Active-Active database]({{< relref "/operate/rc/databases/configuration/active-active-redis" >}}). +After you create a Redis ACL, you can assign it to a role. Redis ACLs are not fully verified until they are assigned to a role. For more information, see [Create roles]({{< relref "/operate/rc/security/access-control/data-access-control/create-roles" >}}) or [Active-Active access roles]({{< relref "/operate/rc/security/access-control/data-access-control/active-active-roles" >}}) for an [Active-Active database]({{< relref "/operate/rc/databases/active-active" >}}). ## Define permissions with ACL syntax diff --git a/content/operate/rc/security/access-control/data-access-control/create-roles.md b/content/operate/rc/security/access-control/data-access-control/create-roles.md index d81590f0a8..a04eed8a7d 100644 --- a/content/operate/rc/security/access-control/data-access-control/create-roles.md +++ b/content/operate/rc/security/access-control/data-access-control/create-roles.md @@ -44,7 +44,7 @@ When you assign a user-defined ACL rule to a role and associate it with one or m After you create a role, you can assign it to a user. Users with this role can access the databases according to the role's associated Redis ACLs. For more information, see [Assign roles to users]({{< relref "/operate/rc/security/access-control/data-access-control/create-assign-users#assign-roles-to-existing-users" >}}). -To assign Redis ACLs to a role for an [Active-Active database]({{< relref "/operate/rc/databases/configuration/active-active-redis" >}}), see [Active-Active access roles]({{< relref "/operate/rc/security/access-control/data-access-control/active-active-roles" >}}). +To assign Redis ACLs to a role for an [Active-Active database]({{< relref "/operate/rc/databases/active-active" >}}), see [Active-Active access roles]({{< relref "/operate/rc/security/access-control/data-access-control/active-active-roles" >}}). {{< note >}} {{< embed-md "rc-acls-note.md" >}} diff --git a/content/operate/rc/subscriptions/bring-your-own-cloud/_index.md b/content/operate/rc/subscriptions/bring-your-own-cloud/_index.md index c1d80e4811..e96fa315af 100644 --- a/content/operate/rc/subscriptions/bring-your-own-cloud/_index.md +++ b/content/operate/rc/subscriptions/bring-your-own-cloud/_index.md @@ -50,7 +50,7 @@ To set up Redis Cloud BYOC on Amazon Web Services (AWS): 1. [Set your AWS Account as a BYOC Cloud account]({{< relref "/operate/rc/subscriptions/bring-your-own-cloud/cloud-account-settings" >}}) on Redis Cloud. -After you set up your cloud account, you can create a [new Redis Cloud Pro subscription]({{< relref "/operate/rc/databases/create-database/create-pro-database-new" >}}) or an [Active-Active database]({{< relref "/operate/rc/databases/create-database/create-active-active-database" >}}) that uses your cloud account. +After you set up your cloud account, you can create a [new Redis Cloud Pro subscription]({{< relref "/operate/rc/databases/create-database/create-pro-database-new" >}}) or an [Active-Active database]({{< relref "/operate/rc/databases/active-active/create-active-active-database" >}}) that uses your cloud account. ## Redis Cloud BYOC pricing diff --git a/content/operate/rs/7.4/databases/active-active/develop/data-types/json.md b/content/operate/rs/7.4/databases/active-active/develop/data-types/json.md index 4060709d42..ddc62eab28 100644 --- a/content/operate/rs/7.4/databases/active-active/develop/data-types/json.md +++ b/content/operate/rs/7.4/databases/active-active/develop/data-types/json.md @@ -20,7 +20,7 @@ The design is based on [A Conflict-Free Replicated JSON Datatype](https://arxiv. To use JSON in an Active-Active database, you must enable JSON during database creation. -Active-Active Redis Cloud databases add JSON by default. See [Create an Active-Active subscription]({{< relref "/operate/rc/databases/create-database/create-active-active-database#select-capabilities" >}}) in the Redis Cloud documentation for details. +Active-Active Redis Cloud databases add JSON by default. See [Create an Active-Active subscription]({{< relref "/operate/rc/databases/active-active/create-active-active-database#select-capabilities" >}}) in the Redis Cloud documentation for details. In Redis Enterprise Software, JSON is not enabled by default for Active-Active databases. See [Create an Active-Active JSON database]({{< relref "/operate/oss_and_stack/stack-with-enterprise/json/active-active#create-an-active-active-json-database" >}}) in the Redis Stack and Redis Enterprise documentation for instructions. diff --git a/content/operate/rs/7.8/databases/active-active/develop/data-types/json.md b/content/operate/rs/7.8/databases/active-active/develop/data-types/json.md index b0fa509309..7d6c6a7f57 100644 --- a/content/operate/rs/7.8/databases/active-active/develop/data-types/json.md +++ b/content/operate/rs/7.8/databases/active-active/develop/data-types/json.md @@ -20,7 +20,7 @@ The design is based on [A Conflict-Free Replicated JSON Datatype](https://arxiv. To use JSON in an Active-Active database, you must enable JSON during database creation. -Active-Active Redis Cloud databases add JSON by default. See [Create an Active-Active subscription]({{< relref "/operate/rc/databases/create-database/create-active-active-database#select-capabilities" >}}) in the Redis Cloud documentation for details. +Active-Active Redis Cloud databases add JSON by default. See [Create an Active-Active subscription]({{< relref "/operate/rc/databases/active-active/create-active-active-database#select-capabilities" >}}) in the Redis Cloud documentation for details. In Redis Enterprise Software, JSON is not enabled by default for Active-Active databases. See [Create an Active-Active JSON database]({{< relref "/operate/oss_and_stack/stack-with-enterprise/json/active-active#create-an-active-active-json-database" >}}) in the Redis Stack and Redis Enterprise documentation for instructions. diff --git a/content/operate/rs/databases/active-active/develop/_index.md b/content/operate/rs/databases/active-active/develop/_index.md index d563da6c68..501902d6cb 100644 --- a/content/operate/rs/databases/active-active/develop/_index.md +++ b/content/operate/rs/databases/active-active/develop/_index.md @@ -51,4 +51,4 @@ Replica Of capabilities in Redis Enterprise Software. [Learn more about synchronization for -each supported data type]({{< relref "content/operate/rs/databases/active-active/develop/data-types/" >}}) and [how to develop applications]({{< relref "content/operate/rs/databases/active-active/develop/develop-for-aa.md" >}}) with them on Redis Enterprise Software. +each supported data type]({{< relref "/operate/rs/databases/active-active/develop/data-types/" >}}) and [how to develop applications]({{< relref "/operate/rs/databases/active-active/develop/develop-for-aa.md" >}}) with them on Redis Enterprise Software. diff --git a/content/operate/rs/databases/active-active/develop/data-types/json.md b/content/operate/rs/databases/active-active/develop/data-types/json.md index 5aad07742c..70cfee5887 100644 --- a/content/operate/rs/databases/active-active/develop/data-types/json.md +++ b/content/operate/rs/databases/active-active/develop/data-types/json.md @@ -19,7 +19,7 @@ The design is based on [A Conflict-Free Replicated JSON Datatype](https://arxiv. To use JSON in an Active-Active database, you must enable JSON during database creation. -Active-Active Redis Cloud databases add JSON by default. See [Create an Active-Active subscription]({{< relref "/operate/rc/databases/create-database/create-active-active-database#select-capabilities" >}}) in the Redis Cloud documentation for details. +Active-Active Redis Cloud databases add JSON by default. See [Create an Active-Active subscription]({{< relref "/operate/rc/databases/active-active/create-active-active-database#select-capabilities" >}}) in the Redis Cloud documentation for details. In Redis Enterprise Software, JSON is not enabled by default for Active-Active databases. See [Create an Active-Active JSON database]({{< relref "/operate/oss_and_stack/stack-with-enterprise/json/active-active#create-an-active-active-json-database" >}}) in the Redis Stack and Redis Enterprise documentation for instructions. From d2ea54b8e79d72654fe949a709e6ece9025209f0 Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Fri, 24 Oct 2025 15:31:34 -0400 Subject: [PATCH 07/17] Debug info for show-on-path --- layouts/shortcodes/show-on-path.html | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/layouts/shortcodes/show-on-path.html b/layouts/shortcodes/show-on-path.html index c99821e691..bc38087b9d 100644 --- a/layouts/shortcodes/show-on-path.html +++ b/layouts/shortcodes/show-on-path.html @@ -17,6 +17,16 @@ {{ $normalizedFilepath := cond (strings.HasSuffix $filepath "/") (substr $filepath 0 (sub (len $filepath) 1)) $filepath }} {{ $normalizedCurrentPath := cond (strings.HasSuffix $currentPath "/") (substr $currentPath 0 (sub (len $currentPath) 1)) $currentPath }} +{{/* Debug output */}} +
+Debug Info:
+currentPath: {{ $currentPath }}
+filepath: {{ $filepath }}
+normalizedCurrentPath: {{ $normalizedCurrentPath }}
+normalizedFilepath: {{ $normalizedFilepath }}
+Match: {{ eq $normalizedCurrentPath $normalizedFilepath }} +
+ {{/* Display content only if paths match */}} {{ if eq $normalizedCurrentPath $normalizedFilepath }} {{ .Inner | markdownify }} From f68d5c9a2d49c3d42f91142d63facec96297ba06 Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Fri, 24 Oct 2025 16:24:18 -0400 Subject: [PATCH 08/17] Full filepath --- layouts/shortcodes/show-on-path.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/layouts/shortcodes/show-on-path.html b/layouts/shortcodes/show-on-path.html index bc38087b9d..2d0a9bf551 100644 --- a/layouts/shortcodes/show-on-path.html +++ b/layouts/shortcodes/show-on-path.html @@ -13,9 +13,12 @@ {{ $filepath := .Get "filepath" }} {{ $currentPath := .Page.RelPermalink }} +{{ $fullFilepath = printf "%s%s" .Site.BaseURL $filepath }} +{{ $fullCurrentPath = printf "%s%s" .Site.BaseURL $filepath }} + {{/* Remove trailing slash from both paths for consistent comparison */}} -{{ $normalizedFilepath := cond (strings.HasSuffix $filepath "/") (substr $filepath 0 (sub (len $filepath) 1)) $filepath }} -{{ $normalizedCurrentPath := cond (strings.HasSuffix $currentPath "/") (substr $currentPath 0 (sub (len $currentPath) 1)) $currentPath }} +{{ $normalizedFilepath := cond (strings.HasSuffix $fullFilepath "/") (substr $filepath 0 (sub (len $filepath) 1)) $filepath }} +{{ $normalizedCurrentPath := cond (strings.HasSuffix $fullCurrentPath "/") (substr $currentPath 0 (sub (len $currentPath) 1)) $currentPath }} {{/* Debug output */}}
From 292cc9145398a3e3fd5d25b99562f971dd71931c Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Fri, 24 Oct 2025 16:29:13 -0400 Subject: [PATCH 09/17] fix filepath error --- layouts/shortcodes/show-on-path.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/layouts/shortcodes/show-on-path.html b/layouts/shortcodes/show-on-path.html index 2d0a9bf551..3914be44c6 100644 --- a/layouts/shortcodes/show-on-path.html +++ b/layouts/shortcodes/show-on-path.html @@ -13,8 +13,8 @@ {{ $filepath := .Get "filepath" }} {{ $currentPath := .Page.RelPermalink }} -{{ $fullFilepath = printf "%s%s" .Site.BaseURL $filepath }} -{{ $fullCurrentPath = printf "%s%s" .Site.BaseURL $filepath }} +{{ $fullFilepath := printf "%s%s" .Site.BaseURL $filepath }} +{{ $fullCurrentPath := printf "%s%s" .Site.BaseURL $filepath }} {{/* Remove trailing slash from both paths for consistent comparison */}} {{ $normalizedFilepath := cond (strings.HasSuffix $fullFilepath "/") (substr $filepath 0 (sub (len $filepath) 1)) $filepath }} From c4eeeb3be75dc3491ba25e240f4c215ecd02aa14 Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Fri, 24 Oct 2025 16:32:48 -0400 Subject: [PATCH 10/17] fix typo --- layouts/shortcodes/show-on-path.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/shortcodes/show-on-path.html b/layouts/shortcodes/show-on-path.html index 3914be44c6..72ccf80213 100644 --- a/layouts/shortcodes/show-on-path.html +++ b/layouts/shortcodes/show-on-path.html @@ -14,7 +14,7 @@ {{ $currentPath := .Page.RelPermalink }} {{ $fullFilepath := printf "%s%s" .Site.BaseURL $filepath }} -{{ $fullCurrentPath := printf "%s%s" .Site.BaseURL $filepath }} +{{ $fullCurrentPath := printf "%s%s" .Site.BaseURL $currentPath }} {{/* Remove trailing slash from both paths for consistent comparison */}} {{ $normalizedFilepath := cond (strings.HasSuffix $fullFilepath "/") (substr $filepath 0 (sub (len $filepath) 1)) $filepath }} From 079c3fab22f53a4c2647eb0a6a4af2b183b8fbfa Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Fri, 24 Oct 2025 16:53:40 -0400 Subject: [PATCH 11/17] more debugging --- layouts/shortcodes/show-on-path.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/layouts/shortcodes/show-on-path.html b/layouts/shortcodes/show-on-path.html index 72ccf80213..297ca0edc4 100644 --- a/layouts/shortcodes/show-on-path.html +++ b/layouts/shortcodes/show-on-path.html @@ -17,8 +17,8 @@ {{ $fullCurrentPath := printf "%s%s" .Site.BaseURL $currentPath }} {{/* Remove trailing slash from both paths for consistent comparison */}} -{{ $normalizedFilepath := cond (strings.HasSuffix $fullFilepath "/") (substr $filepath 0 (sub (len $filepath) 1)) $filepath }} -{{ $normalizedCurrentPath := cond (strings.HasSuffix $fullCurrentPath "/") (substr $currentPath 0 (sub (len $currentPath) 1)) $currentPath }} +{{ $normalizedFilepath := cond (strings.HasSuffix $fullFilepath "/") (substr $fullFilepath 0 (sub (len $fullFilepath) 1)) $fullFilepath }} +{{ $normalizedCurrentPath := cond (strings.HasSuffix $fullCurrentPath "/") (substr $fullCurrentPath 0 (sub (len $fullCurrentPath) 1)) $fullCurrentPath }} {{/* Debug output */}}
From 228dd96faa2f05dbb1806b329ec9caeafdbc82f4 Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Fri, 24 Oct 2025 17:08:23 -0400 Subject: [PATCH 12/17] change to .Path --- layouts/shortcodes/show-on-path.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/shortcodes/show-on-path.html b/layouts/shortcodes/show-on-path.html index 297ca0edc4..150bf78841 100644 --- a/layouts/shortcodes/show-on-path.html +++ b/layouts/shortcodes/show-on-path.html @@ -11,7 +11,7 @@ */}} {{ $filepath := .Get "filepath" }} -{{ $currentPath := .Page.RelPermalink }} +{{ $currentPath := .Page.Path }} {{ $fullFilepath := printf "%s%s" .Site.BaseURL $filepath }} {{ $fullCurrentPath := printf "%s%s" .Site.BaseURL $currentPath }} From 2f630c98839c489f7eedbe034dce3d16788ef288 Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Mon, 27 Oct 2025 13:51:33 -0400 Subject: [PATCH 13/17] More debugging --- layouts/shortcodes/show-on-path.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/layouts/shortcodes/show-on-path.html b/layouts/shortcodes/show-on-path.html index 150bf78841..7faea504e5 100644 --- a/layouts/shortcodes/show-on-path.html +++ b/layouts/shortcodes/show-on-path.html @@ -23,6 +23,8 @@ {{/* Debug output */}}
Debug Info:
+RelPermalink: {{ .Page.RelPermalink }}
+RelRef: {{ .Page.RelRef .Page.File.Path }}
currentPath: {{ $currentPath }}
filepath: {{ $filepath }}
normalizedCurrentPath: {{ $normalizedCurrentPath }}
From 6b33ee84859a7398c15eaa8ea170245b0f89549d Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Mon, 27 Oct 2025 14:16:20 -0400 Subject: [PATCH 14/17] Remove show-on-path shortcode --- .../active-active/develop/develop-for-aa.md | 13 +------ layouts/shortcodes/show-on-path.html | 38 ------------------- 2 files changed, 1 insertion(+), 50 deletions(-) delete mode 100644 layouts/shortcodes/show-on-path.html diff --git a/content/operate/rs/databases/active-active/develop/develop-for-aa.md b/content/operate/rs/databases/active-active/develop/develop-for-aa.md index f5cd12b3e0..f53261cdd3 100644 --- a/content/operate/rs/databases/active-active/develop/develop-for-aa.md +++ b/content/operate/rs/databases/active-active/develop/develop-for-aa.md @@ -97,19 +97,8 @@ execute them in script-replication mode. ## Eviction -{{< show-on-path filepath="/operate/rs/databases/active-active/develop/develop-for-aa" >}} - The default policy for Active-Active databases is _noeviction_ mode. Redis Enterprise version 6.0.20 and later support all eviction policies for Active-Active databases, unless [Auto Tiering]({{< relref "/operate/rs/databases/auto-tiering" >}}) (previously known as Redis on Flash) is enabled. -For details, see [eviction for Active-Active databases]({{< relref "/operate/rs/databases/memory-performance/eviction-policy#active-active-database-eviction" >}}). - -{{< /show-on-path >}} - -{{< show-on-path filepath="/operate/rc/databases/active-active/develop/develop-for-aa" >}} - -The default policy for Active-Active databases is _noeviction_ mode. All eviction policies are supported for Active-Active databases. -For details, see [eviction for Active-Active databases]({{< relref "/operate/rc/databases/configuration/data-eviction-policies#active-active-replication-considerations" >}}). - -{{< /show-on-path >}} +For details, see [eviction for Active-Active databases (Redis Enterprise)]({{< relref "/operate/rs/databases/memory-performance/eviction-policy#active-active-database-eviction" >}}) or [eviction for Active-Active databases (Redis Cloud)]({{< relref "/operate/rc/databases/configuration/data-eviction-policies#active-active-replication-considerations" >}}). ## Expiration diff --git a/layouts/shortcodes/show-on-path.html b/layouts/shortcodes/show-on-path.html deleted file mode 100644 index 7faea504e5..0000000000 --- a/layouts/shortcodes/show-on-path.html +++ /dev/null @@ -1,38 +0,0 @@ -{{/* -Show-on-path shortcode that displays content only if the current page URL matches the specified filepath. - -Usage: -{{< show-on-path filepath="/path/to/page" >}} -Content to show only on the specified path -{{< /show-on-path >}} - -Parameters: -- filepath: The URL path to match against (required) -*/}} - -{{ $filepath := .Get "filepath" }} -{{ $currentPath := .Page.Path }} - -{{ $fullFilepath := printf "%s%s" .Site.BaseURL $filepath }} -{{ $fullCurrentPath := printf "%s%s" .Site.BaseURL $currentPath }} - -{{/* Remove trailing slash from both paths for consistent comparison */}} -{{ $normalizedFilepath := cond (strings.HasSuffix $fullFilepath "/") (substr $fullFilepath 0 (sub (len $fullFilepath) 1)) $fullFilepath }} -{{ $normalizedCurrentPath := cond (strings.HasSuffix $fullCurrentPath "/") (substr $fullCurrentPath 0 (sub (len $fullCurrentPath) 1)) $fullCurrentPath }} - -{{/* Debug output */}} -
-Debug Info:
-RelPermalink: {{ .Page.RelPermalink }}
-RelRef: {{ .Page.RelRef .Page.File.Path }}
-currentPath: {{ $currentPath }}
-filepath: {{ $filepath }}
-normalizedCurrentPath: {{ $normalizedCurrentPath }}
-normalizedFilepath: {{ $normalizedFilepath }}
-Match: {{ eq $normalizedCurrentPath $normalizedFilepath }} -
- -{{/* Display content only if paths match */}} -{{ if eq $normalizedCurrentPath $normalizedFilepath }} -{{ .Inner | markdownify }} -{{ end }} From c9040e27207d380eed95f92ca8996e8bba5e7ca5 Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Mon, 27 Oct 2025 16:01:13 -0400 Subject: [PATCH 15/17] Manage regions page --- content/embeds/rc-aa-cidr.md | 9 ++ .../rc/databases/active-active/_index.md | 1 + .../create-active-active-database.md | 18 +--- .../databases/active-active/manage-regions.md | 90 ++++++++++++++++++ .../operate/rc/databases/connect/_index.md | 4 + .../rc/subscriptions/view-pro-subscription.md | 12 ++- ...cription-add-region-required-resources.png | Bin 0 -> 29897 bytes .../rc/subscription-add-region-setup.png | Bin 0 -> 23655 bytes .../rc/subscription-add-region-throughput.png | Bin 0 -> 34173 bytes .../subscription-details-regions-tab-add.png | Bin 0 -> 4937 bytes .../subscription-details-regions-tab-edit.png | Bin 0 -> 4432 bytes .../rc/subscription-details-regions-tab.png | Bin 0 -> 89402 bytes .../rc/subscription-edit-region-delete.png | Bin 0 -> 3849 bytes .../subscription-edit-region-throughput.png | Bin 0 -> 7874 bytes 14 files changed, 120 insertions(+), 14 deletions(-) create mode 100644 content/embeds/rc-aa-cidr.md create mode 100644 content/operate/rc/databases/active-active/manage-regions.md create mode 100644 static/images/rc/subscription-add-region-required-resources.png create mode 100644 static/images/rc/subscription-add-region-setup.png create mode 100644 static/images/rc/subscription-add-region-throughput.png create mode 100644 static/images/rc/subscription-details-regions-tab-add.png create mode 100644 static/images/rc/subscription-details-regions-tab-edit.png create mode 100644 static/images/rc/subscription-details-regions-tab.png create mode 100644 static/images/rc/subscription-edit-region-delete.png create mode 100644 static/images/rc/subscription-edit-region-throughput.png diff --git a/content/embeds/rc-aa-cidr.md b/content/embeds/rc-aa-cidr.md new file mode 100644 index 0000000000..5d1cd96743 --- /dev/null +++ b/content/embeds/rc-aa-cidr.md @@ -0,0 +1,9 @@ +Every CIDR should be unique to properly route network traffic between each Active-Active database instance and your consumer VPCs. The CIDR block regions should _not_ overlap between the Redis server and your app consumer VPCs. In addition, CIDR blocks should not overlap between cluster instances. + +When all **Deployment CIDR** regions display a green checkmark, you're ready to continue. + +{{Green checkmarks indicate valid CIDR address values.}} + +Red exclamation marks indicate error conditions; the tooltip provides additional details. + +{{Red exclamation points indicate CIDR address problems.}} \ No newline at end of file diff --git a/content/operate/rc/databases/active-active/_index.md b/content/operate/rc/databases/active-active/_index.md index 75c22a26ae..2125331633 100644 --- a/content/operate/rc/databases/active-active/_index.md +++ b/content/operate/rc/databases/active-active/_index.md @@ -1,5 +1,6 @@ --- Title: Active-Active Redis +linkTitle: Active-Active alwaysopen: false categories: - docs diff --git a/content/operate/rc/databases/active-active/create-active-active-database.md b/content/operate/rc/databases/active-active/create-active-active-database.md index ace96712c5..5f6020b616 100644 --- a/content/operate/rc/databases/active-active/create-active-active-database.md +++ b/content/operate/rc/databases/active-active/create-active-active-database.md @@ -7,7 +7,7 @@ categories: - rc description: Shows how to create an Active-Active database linkTitle: Create Active-Active database -weight: 20 +weight: 5 aliases: - /operate/rc/subscriptions/create-active-active-subscription - /operate/rc/databases/create-database/create-active-active-database @@ -91,18 +91,10 @@ In the **Advanced options** section, you can: - Define CIDR addresses for each region in the **VPC configuration** section. - Every CIDR should be unique to properly route network traffic between each Active-Active database instance and your consumer VPCs. The CIDR block regions should _not_ overlap between the Redis server and your app consumer VPCs. In addition, CIDR blocks should not overlap between cluster instances. - - When all **Deployment CIDR** regions display a green checkmark, you're ready to continue. - - {{Green checkmarks indicate valid CIDR address values.}} - - Red exclamation marks indicate error conditions; the tooltip provides additional details. - - {{Red exclamation points indicate CIDR address problems.}} - - If you chose to deploy your Active-Active database to an existing [Bring your own Cloud]({{< relref "/operate/rc/subscriptions/bring-your-own-cloud" >}}) account, you can also define the VPC ID for each region. Select **In existing VPC** and the set the VPC ID for each selected region. - + {{< embed-md "rc-aa-cidr.md" >}} + + If you chose to deploy your Active-Active database to an existing [Bring your own Cloud]({{< relref "/operate/rc/subscriptions/bring-your-own-cloud" >}}) account, you can also define the VPC ID for each region. Select **In existing VPC** and the set the VPC ID for each selected region. + - Set your [maintenance]({{< relref "/operate/rc/subscriptions/maintenance" >}}) settings in the **Maintenance windows** section. Select **Manual** if you want to set [manual maintenance windows]({{< relref "/operate/rc/subscriptions/maintenance/set-maintenance-windows" >}}). When finished, choose **Continue** to determine your size requirements. diff --git a/content/operate/rc/databases/active-active/manage-regions.md b/content/operate/rc/databases/active-active/manage-regions.md new file mode 100644 index 0000000000..9e73dc6e65 --- /dev/null +++ b/content/operate/rc/databases/active-active/manage-regions.md @@ -0,0 +1,90 @@ +--- +Title: Manage regions in Active-Active databases +alwaysopen: false +categories: +- docs +- operate +- rc +description: Shows how to add and edit regions for an Active-Active deployment. +linkTitle: Manage regions +weight: 10 +--- + +You can add and edit regions for an Active-Active deployment after it has been created by going to the **Regions** tab of the [subscription page]({{< relref "/operate/rc/subscriptions/view-pro-subscription" >}}). + +{{The Regions tab lets you manage the regions in your Active-Active subscription.}} + +## Add a new region + +To add a new region to an Active-Active deployment: + +1. In the **Regions** tab of the subscription page, select **Add region**. + + {{Select Add region to add a new region to your Active-Active subscription.}} + +1. In the **Region setup** step: + + {{The Region setup step.}} + + 1. Select the desired region from the **Region** list. + + 1. If you chose to deploy your Active-Active database to an existing [Bring your own Cloud]({{< relref "/operate/rc/subscriptions/bring-your-own-cloud" >}}) account, you can define the VPC ID for the new region. Select **In existing VPC** and the set the VPC ID for the region. + + 1. Enter a unique CIDR address for the region. + + {{< embed-md "rc-aa-cidr.md" >}} + + Select **Continue**. + +1. In the **Throughput** step, enter the desired read and write throughput for the new region. + + {{The Throughput step.}} + + You can also select **Set throughput as existing region** to duplicate the throughput settings from an existing region. + +1. Review the required resources and updated price for the database in the **Required resources** step. + + {{The Required resources step.}} + + Select **Continue** to add the region to your Active-Active deployment. + +Redis Cloud will provision the new region in the background and add it to all databases in the subscription. You aren't allowed to make changes to the database settings while this process is running. + +Your database will still be available, but you may notice some increased latency. This process will take some time depending on the size of your database. + +## Edit regions + +To edit the local throughput settings for a database instance or remove a region from the deployment, select **Edit regions** in the **Regions** tab of the subscription page. + +{{Select Edit regions to update regions for your Active-Active subscription.}} + +From here, you can: + +- [Edit local throughput](#edit-local-throughput) for a database instance +- [Remove a region](#remove-region) from the subscription + +After making the desired changes, [save and confirm the changes](#save-and-confirm-changes). + +### Edit local throughput + +To edit the local throughput settings for a database instance: + +1. Select the region you want to edit. + +1. Add or reduce the local read and write throughput for each database in that region in the **Local reads ops/sec** and **Local writes ops/sec** fields. + + {{The Edit regions page, with throughput settings changed.}} + +### Remove region + +To remove a region from an Active-Active deployment, select the **Delete** button for the region you want to remove. + +{{Select the Delete button to remove a region from your Active-Active subscription.}} + +### Save and confirm changes + +After making your changes, select **Save changes** to apply them. You'll need to review and confirm the changes and any updated costs before they are applied. Select **Confirm** to apply the changes. + +Redis Cloud will make the desired changes in the background. You aren't allowed to make changes to the database settings while this process is running. + +Your databases will still be available, but you may notice some increased latency. This process will take some time depending on the size of your database. diff --git a/content/operate/rc/databases/connect/_index.md b/content/operate/rc/databases/connect/_index.md index f8958e27d4..a71310311d 100644 --- a/content/operate/rc/databases/connect/_index.md +++ b/content/operate/rc/databases/connect/_index.md @@ -23,6 +23,10 @@ Once you have the username and password, select **Connect** to open the connecti {{< image filename="/images/rc/button-connect.png#no-click" alt="Connect button." >}} +{{< note >}} +For [Active-Active databases]({{< relref "/operate/rc/databases/active-active" >}}), you connect to one of the database instances. Select the region you to connect to from the region selection to access the connection information for that instance. +{{< /note >}} + The connection wizard provides the following database connection methods: - [Redis Insight](#using-redisinsight) diff --git a/content/operate/rc/subscriptions/view-pro-subscription.md b/content/operate/rc/subscriptions/view-pro-subscription.md index f8854a45bd..b722b10eaa 100644 --- a/content/operate/rc/subscriptions/view-pro-subscription.md +++ b/content/operate/rc/subscriptions/view-pro-subscription.md @@ -33,7 +33,7 @@ From here, you can: Because subscriptions represent active deployments, there aren't many details you can change. If your needs change, [create a new subscription]({{< relref "/operate/rc/databases/create-database/create-pro-database-new" >}}) and then [migrate the existing data]({{< relref "/operate/rc/databases/migrate-databases" >}}) to the new databases. -In addition, three tabs are available: +In addition, you can view and edit the following subscription details: 1. The **Databases** tab lists the databases in your subscription and summarizes their settings. @@ -43,6 +43,8 @@ In addition, three tabs are available: 4. The **Security** tab lets you set security settings for the databases in your subscription. +5. The **Regions** tab lets you manage the regions in your Active-Active subscription (_Active-Active subscriptions only_). + The following sections provide more info. ## **Databases** tab @@ -130,3 +132,11 @@ See the individual links to learn more. The **Security** tab lets you set security settings for the databases in your subscription. Here, you can [block public endpoints]({{< relref "/operate/rc/security/database-security/block-public-endpoints" >}}) for all databases in the subscription. + +## **Regions** tab + +The **Regions** tab is only available for Active-Active subscriptions. It lets you manage the regions in your Active-Active subscription. + +{{The Regions tab lets you manage the regions in your Active-Active subscription.}} + +See [Manage regions for an Active-Active database]({{< relref "/operate/rc/databases/active-active/manage-regions" >}}) for more information. diff --git a/static/images/rc/subscription-add-region-required-resources.png b/static/images/rc/subscription-add-region-required-resources.png new file mode 100644 index 0000000000000000000000000000000000000000..4b653cb14e07cd2484c8e79f1849a3efdc14e88b GIT binary patch literal 29897 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 X0taWkXS%8W*?KDnR+g%gFbVlz8mzp7 literal 0 HcmV?d00001 diff --git a/static/images/rc/subscription-add-region-setup.png b/static/images/rc/subscription-add-region-setup.png new file mode 100644 index 0000000000000000000000000000000000000000..d00eb0501edc2cd045d2f8e74b0458b5142d735d GIT binary patch literal 23655 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 literal 0 HcmV?d00001 diff --git a/static/images/rc/subscription-add-region-throughput.png b/static/images/rc/subscription-add-region-throughput.png new file mode 100644 index 0000000000000000000000000000000000000000..d55db735317053caf2aa36675d110d9d1e21ab21 GIT binary patch literal 34173 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 JYUM58{~xg}yMF)x literal 0 HcmV?d00001 diff --git a/static/images/rc/subscription-details-regions-tab-add.png b/static/images/rc/subscription-details-regions-tab-add.png new file mode 100644 index 0000000000000000000000000000000000000000..d66582058a3a86a02852df5ce9c5bcb03a607218 GIT binary patch literal 4937 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 yto-<}B{f+GE*fMzoe;=m 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 f2e)i= zc=$EPcjef#J2JqGq(m1=oWWj*=CB! zBABHw;2xpi0<_DZqwz0A@37v%^9`$su1%kn;|U-F_S0bpJId3};6I1;ZT8RgKxe66 z%!GtN=?nzqBp&exk1s#gfAaV<&wnqTcw|pJzEieXBrX&83^G(Sa(*=mVZxN4V@P{ekc%~K3%`eaXOCK+ZVZoW{ zBLkJalGmhwrE2F9kK3b4O8Dv4Xm~yUm+O}#9v^OQdaBbJQ*4RHH_B$6OP8~k_P(7< zv)|Y}B@YZIiA$C~aFPoN#t-83ZH5j$sOq-I6AyY@v<)SnW8M1OJH<22M5YGB4S~Z@ zef0d-5C@Wma(_fzqV*V!e=H?w9*N@_5AJ}t>b10;{pA11;4l0z5EG}A{*iYzy>S#l zv}Umq4p`RuGO53mBR8MBatTuI7S9`mstGlN9ZFg5yPONX8+RCYZ)bdXsNCeAB zuG(Y$@IyVW2R!O8Jl@vwI|4k!<{tTF&eamTZ!d{k#jv66Y~_Z9G`To6ykYy2(U9&| z+jKiH${@RY)Pl9SJqe|$-Tx2<1xH5&c-SYgjS$9x{$g%he*dV%+O)O4L=RcYG%_A- z>woEdP%n@4qY6A|GuhyYVsjD$i$3rOYu7(2;`>aAaZ2hEDtDG8UtWPNAAY&?D-JyT zvzDIf=BDb3mE65sKn>)q(q_T;?uyY>2?)y8JI>`&!~bldLEtfX^mi3{G?2w3lgdPo zAHL!I4}PiyJRYU^eK^_{;nMrC- z!OzK_Rq&4UhkH3Tqx$N^DQVK7HX1d~ch`vroFTyD>onl;wZv#wPee|1_mcnYMD_W` z6lwsM(-)()ouTTc$iWAvs;66$)AmqRyL-dYp~$V#SzdN;IMPvfUu0Tzy7KghgP zcuZ^(f{p=?qrZNsLVq2};!(eEqC;Rl2Y4L)SP6Li+_L;^{_)m03zUQgnFk_}>h8Gq z7kR$p4(iVH@>EO6W*!F?2JJMNh6%I~|wVsCxm!JS#5 zUhDdwG9Ot@cT}cg0pkIWC=dpfa@?OQx&u4yqdqkbJm~KmKR}5IlMq1c%QWEerNn5g zha#Wqc*fpPeerCpH&i>o<@C7@N2(`xq&HE$*&XZcY3V1bqnBqo9_zNqzP`voOHo-r zm1)uWOC7yZ)g8X@pdm5YdC2tM<3Fp=?>L$0d;08sq`r(gUD@L?rVx z2j)!?3gU%ijdn;l@c1_kc>F67I@IwDe&pN~Ic+@OiZALpSKl1qfd@MLeGo1^?hSZ-194{j9 z+$G3o0{vbn`F-G#s)q%+gS;&4R`cszg8)bX@Pw~L*T2?HK}QY?`u@aXORo=$r`X_fpq9xOW}1s=WY6@bT+ z*5&up;wLA$65^>~RVyT!lj!z4))L=OU-&l=fJEIvog{I9M@#KVaAsMz|9+CY(oZkR zo)Jkh)~fvJN#3j+G&nuUTvR37)_<4}*o}jq_4bX-O|s@B8O(Wpebk^6x2HiAdM~M; z)pV2GF@H4zs9@+D#vPz5ZrWV}Jj4YaUzIq#2-40h&O>h$x{vGya?&OB$p<68c? zp*JL_(MaT)-YXb2;9->~(;{7&JZi}0Oy?``wDMNU-v(_rx0v-<*6n7c$pqWmo zp~)n{a5@329K#JpuY9VU&^@zOp&lA&_C8=aw+<7* z!hr+I$>lb309w2Hk0Jg2`S9LvtKzpKeAi3;nKsj$Ch4SD3@h1m(Jox$H!pd*+Pqs3PlDHXkwu+st^$fyUy3hA^ zF}?q0nLxr(G;rLYlXByTaka9V{r63~@zjein1RT~JDZ2LJ+~JCG5#X__U2CVS9~3}_9kuwt!(_Mo4Z+MB@IdMv4ZbO- z!O@~FyLP$M)Gp+0{+ChySz3I7%Ud`i@S6=U4PrUJJjhOAQ<9-cMlSDh5GlrkpFe;a z_CA<7v~rC5V)g_sx7F`p@P= zGQPgC_nY15!F98c!Mh~u*-zsFDO2A|;o}>h_YB&1olTk|-+czpKG6rfphg3Tbw+w< z?k&Z2(zTqs8E^&OUM=%1!eJ}?eOGy1bHPi?^mXM}W z5qC8(aNwu!8eVT~J$FV-Ss!qwsN^McRbqFe|i7}ddk)@69D&@pbU=hAYKO3M=rAuJh=P2 zGrrh9O8!3q4?kcCY`oB5N|H4iGJQkG#*B3%M-YdSe`qJ*0^rd()5(E|>D56?jCPs-l7CmKAuIp2st>8H?_l#$o`ZkRzttSpWIx zCYi?L39=D6nx*f94Hw#%z=ohOb^Gtv1Hd$2Cm4G+VQe1SmOqAzBmsADMPwRmtpqh& z)qg0@c?@*N)-hO=0Z5@EFZXujJla!`7KViR%@JAXXc~`lxdBC+Ap{y8@F3;QCy6`P zEn~KFY;aq3a`Rk|RXYI}01r7hQ#~6_GML_C1r;W zzT>4(X@q>gcJ$Q4^2%xP|G^?WX}P6(VBA3-;wxL5sOrVKYDWUDpf$a5S>fW9s-C^h zna=7L-HRQW=>D|b0%dHxRMp{O{wV*B2TurYe=j%i0Hp?gd4UH>!W2*TMZ8QhA?DLf z0*2W=@%dqv(Sna9|AHiEk$H@!7e{%iKM0o7L|iCo{r+d-e9sG*2)#~D1t-$3{C*E@ zIVC-Jh^ z;jl92u$(VEPx}ehkm|pj37K7j_RD~uq~nn% z4>0+w~&7mjPS{G%}WNw zfgK!<{CZ!kF1rhNLhQl4kJ0vz`e;TftYhG4Cpg;Cuiz4}lQ_lkZA26`>>QWr-!I?a z=b)@cpg^?{uMl2%uCFXz$3E%fn}=}C&qppiO^sev@{uQ({RW#%^<|E= z|LUcXj;eG#PNn?7Mpa#$0;{ghBmQRdi!I0 zPp_AiMGsD{J^JKQNr;j!uhVcmG)YaixpjQ_tokrn_3rsKT9+laDIR64p4?`VH>2TD zcqOju=`*C&Yn4-FQ@xgKq-Gyjmf2}zXxJ{d9A{;?<<)RL)o{ZCPtOFm6g=HFh2 z^0DAlS-4YGsz1-~ssxTl(nJFjRL#5=^Yr=;fScPI{GXcBw`Pl#%Rrh=VBjv1^20jTm z3IHT#BPRlamehy=pmcpNsX$L90swzWK4bmWNclle1o+tU0|0QU?-E(Ki{bYFKnSFj z9>C1Qh%j(m-`+}32H37^!TdhL0{A89uhEa-_|QDE3MIV2$q=o@IXNEQ^Y|7APEB=M zf|5V#W7FKkK2M1?$^X$aaRx z&jh`oz0ECIP~8FrulkEQ`in60#@ag`AwvR+0CDjgALGB~ILo1vltu4&=i?lY^OsNI zcuYxo8|rv`K7Y1P{ZsKTJv{;A14=P9qY7FgCqLgpP`h3%BIS!zu@nkhgc-rVOntOe(jHb4>9mC0X%Y)>AG<{^w0kU zFgqF0>Wp+wC*1D`Zu4Vg8$2!Y<5r7-n7A+Uq5ccT%bkQI_k^^Q?fMDo7&W0SnPf6EjW3UcMB_UbKh{5yA6PNqH=27#QgBo+|y( zH~j=8sQ#i4y>zaLJYvl));s?*5bF>@H4K0#_n5;QE{uU@ih)hYf46CmI*_<=|8aeb z_?-l=u38dQz=M0;V!`vrr+;+(vwZr){t9716>Ix)=Pna?JOQi-k7rmZ@JNMS1NvVD z@Hl3I{{))l0*}PNgW5pHIGv9&UM1iK=XCS(b6lFh_9J_g*5kYct+z1}Q%Ef!Z53Lg z{7nejkQ!bdcYZCNL`&-oTI6_7#)7+V`lAVl zr{C=_652g}>LyY$UN!L8#C+r7%76#EkFwIKU{Ao~8OGat%LE>zsz@jLJbFnDWz{k^|p>zfjI z*oN6kfJaimBVWhBW80z-r`vujfrmXYTLJK>7^M=&N^27@Igk@a7kx15C2W7DC#?9$ zEL#m=Ed#DC-Qj0kAM*a`ne)a4w<{H=wN)5+T*r00P`*NNtNtK)*DL*IG9O+4L^~F$ zzv(zF^?c9#PvF<{XXzIoua@rhWc^aWZypQyhF*!=Bkn&w7VdAY#7_&+D#jlze(~%1 z>3u&=Nqo(xfNH>F)aiU*C0lHx*ZcqR^ct!K49juxaDA z9rmpVO9dXh6{+WbIX=7%{edt_$4jVOeiG%&2_p$N{)J!@LtNUh@r3-vEROlg{1aQs zBw)mD*Zl^ydt{fHE5h)N`^K*-+XMa6AM>a4l;2a=o}BqoG-1E|&xWrg@`x>sGShV0 zoy!yaR>T>T^41fNQRcdCyYe-!mxcZ3mrDg6oIR6Fi#B{t+`bLq!Gok_U45K(AM^bG z5+`Q%6_^btz|cD30N6X2V}4{dXn^xc1MHgF(FJfaJO|cx<`=+xKHusac+j*Fxy66n zpc%G)a{h*^d~b+d^RNwM!0`^4n&l>V(M|URz0KD4im zL?+g0QlJqSman~xR)Gg?DY&HL)LvulY>pT7nPN{;sz9*dE#gA(UgyU1lBPp1gmq08g<_Jh}ou@U1bb0ogSLm z2f)lmXx7c_*{N@}^a4Cc&zzQqCGa?G@QazP&9I?>hfNlMV+=G4m5o`EZi@;)*!t&x+6*e*={yLW29kW_N|iu} z_|40+kpB|3NYEaX+pYSqKGt=8?=nPw`@NeZ;9>V3cqBS_bUWa&4jdW>U}Le>0KeDZ zf!P%f+GxMP!?{6t=hVRCDW2#59Xyr5V}!b5L1#k)S?u_6;}*qtp7g1|Ieq!)xTR_BDqMv&WcOE05Q#4TCfMWcC8h zs01D_bF!V40uQB{=)+V3k8z6`9$;t=Jn)Oz(bpVCW&_~0*$2G(ilNyN@SsSyh07-e z@bJ_t+-l+NW(Hzne9+NGF|mb$i-Dj2iSaCK5|WHzfk;9loXA4K5ea^OoiY|8OME_2 zzBy>Y&#mHr(o+))`o8Js`ZB*(gtN5u!S8m8AiDeJe{B%U1aP4KR4XzbJkl+%QUC!R z=^VbI8cj8*uXqsuMg3>G|5W|$PA!+JDw{`fxuFxlNUbKo&U4(qD~9?pQmm!Sq84X(p^0Xz=#-P}A=yfWLv zi)~7Z*@uFp;bP4?8jRXtW|&W zrE;=gp~}-=Wbu5Zzm4@)hrdB>5daU`n(3W>u5U?)|F8tm=V6l0lXB>l|J!>c#5fiM z4{C3Zsq#8)FRjr!2C4F&-dIb_e_qOM`%m}$l7UAzYi4e#XY4ioM!b_c^VgNN0^soh zCky+da{%)-v+v*Muwk|XT(x1%(hNAAZtX6Bhy5^a0Bo59kI^DsS~c+S$v_X(D)6{$ zX)Cu{1`9%-Eod7YVrDkMzJ0-mGM(A`Jpj$ffrqDF0r2R$UDwLBIV#78zpa(mV&%-B zeAci&Jx?e|ECQp(u~uFX*Ir-~1mPU#9Uuf|;O=w>NKUQF)wm0aR+EvM$yu zz=Ht}@o><8De6C};GN?Rjl{z9=QQ!&d*#w3c1a@xVvm8rLbRT^2<>8s0q}PR64=XV z1Mm~0U+~oI0kF{<@F*Cb76SEF+cCa)WCthhHpwoTBR$8@xhbwN^mLt&atnL_dH^1Y zyu^u#)%;2Vli~yAmIk=A0XH#2)W>se$2)ces0~Wp*Z@>)z{`~OK|EhE0x4=98t{q) zYtbFFh0!|h8LWg zz?SYmZx;_9*s{fw=*c)E}AI%1Pz~yH&rzP;PQ{Zb0E*eU=2{gm$Wovis5@`4Sr{fQzXIj{rMJOA_gOWk^CwLj@z(cT3= zad8YWe1AoIO*U$&q?|eu$ANz-o{ct|(XRp4RY&49g^ zqr7$S?h630-Ob}K0A|y5GkY@xaJF%Z*Jf}3lNQZlrDKrg>t@$0Ya3oKA9yf8?P{0F z{@*w_2k<%5y#5@(_|cSr$3C!~FJ}12=^hUO;Nm#n-+T_>tT6oAhBr$G9?tXPT%i~r zei69cj@_!q<@-FzUpIlWvxBntvwe?NDS*>sS z)4$j|n_W$EqzpTHrZtQN3tDUtJH!UjE08FO6<5%6`sY+nx5RycMo_&2@iW&*4QdqQ zc=D~cqSINfFVE!SoX?rgu;a(!NIM*HC>GN2fIOhR@`lTvyIcNM{lWDwMGrB#6Q&CO zO}AEIq+(pEd02Z0$*e3b{$=@)j43B8E-D|0AMYHirJFmKj>KFU9_d`l>$9Kd?@vDe z^q6~}=03{jS%3WeXRosG3-RvNTP+j6so0g_kw|<#5;?IdVcz@2&+@%bK27uMgYlno zufGMg(;*=p8vY?vj!zYXYPy|71Ay7(P{Aqyy;Pg^tnK{Z8oG*j2{0l(mNC3A4QUFK z3H-v{jsGD~c0Wj|uyi6=7B|bkoyT;$x+HQx%MnkyAyAooL(mq@nzZ;0{;>w%1M$ya zWtbc}$xq~^-}U|Dc);!zOQO%uW%_D=J_>Q16qEc~=-7oADQNhwQre=$)R0 zpyLS09WdD{|EOR2E!z!kc!+~UCX_zxC;}T3Q)$o^<4Uj77IPmWOas zgG=2^&KKcant}mmyre_i+VGf@6HOtr@6Z2qSk#jS7j;>W=l7knAjc))W(_*88Rtsu z&Ept7lqVHzIz!SqkTbtBF)9^_8 zl%sSn$?&M5bdnZ#51CKDcoR?3Dqfjb3yQ70V%kSb+VD7zZzzsk$|whehI!WJ=X^12 zN_%*(j5VjPvXMAxcxXOyhFx z@!mk^$_>1?h<{?ah0R-vGP=ITNyRu#n>z+XEYXwQeyqG#{b8Mg@N=eI zSt>2Z!|E3m+)1OEP1oYt+Be&isEZIx&Cf0}Ro_IHSb6*w?G<#-Ys~H(VGa}< z!(R+WN{%K$$)Hi`mC~BwZUobF7;kH6oI{gQiy|$nS@4$Y)moxpM`MCQ$1I$dZxo)c zamH#^zy$Q+N`Lc$W+Wn>30g+@Pg&8r;e<4SQ2d?|c_RTjr*@Q|RbXIJa%@W4bS1VcP%pGlt>5WRAQbJT>Jj>8fn@W2@q|PiWCnF!T{+Mc>a&y{8@Hg13X7^omnn|$r*Zp&rLPo}{ zhIbzZ&-2BSIml|C=~g=GCv3rr%=YV*Vnl-xj1tQV5R3fAwY|XE zJp6FmJ*h2zEQ@$w5Ax=n(6w;UA~*vH*VwQ7E> z`#wWILS#hd6c5AtYf*K5Afq*7T47^>c5X{;JSF5Tlk-n>Sw!ArKa@f7?e%A$h9uB2 zjejPl)2EfVZhjI?An3K$1m5uwFM6WpZ-magk;Sc8U!a@PT_FSL@;M=PAN;JsqI3NM z+Pc>FVui*Yta;dS=dnkXz;9#I`MOUI*IPI`m3Y{$R<|;<-ve-xT4y}^_lxaUG6rms z^Z3t@I`y0gR@b9w9 zsvA9mWzCDU&myd=GuOv@+r2zxw%NX4bc5Bo&80i(o7>H#{0WT+_Bzh;y1#aHqXDB7kXGEO%saLgJs#-sG{sU{X)~`6pS4 z5UdNLy#p0VRabdk5<#k-^O%wanAgHl3155y>!T!i0P6J4Yr%WcTp+={U#sGG`vvGH z!>MAX*i2--3uor#@n1z25&$g&v`C7dTdak#3p6o&6Y00E;G5|@3YT%^L;Y>}r64nG zB^isf=HOA3WzNxHvKAgP?L=n48XRckzk8UvnfO^e1*GI8fLl5{CUZ~!jocr;Qa=yC zOdr&roJ8OG)gQf*HIM6a@xNjNd+MWzsTTPtBblsURuWG2pMk||k{iw5&#Q{LY|UEV z%Jpd2lwgUvqSG|0Xx$`wb$V z#JgIevd9NXY8}^QUNz5U7fvTERIy4vDaB8-;$EvvTWv&7(QFf;LLDWv$2QA zJq;+?-iYiLk<S$bUFel z7pz=vPjnfa9r-QG#uM_De8^Qyl}I~Hp2xTqr%PjoDqs2c>^oYN?-U!$ zN*ri+;@?Kjeq{eC#SSRuPW44ATh1i=!KKn_cxpGi)pEK@`7qUkR1+=#r2mrUmAh-h zAX7<>cfYe&XZ(+?{Ml&8{iCB+Mvxu{1+cSRC$CPj$nKHfj!fkqOF`c92nXEdl4n4> zPruuIT-@uh8DsG|UGUKkMsC}M^;~;rIG^geF2SD$_=RE4@$N(fw#uxGUs`9oUKD5O$2hF)nls1TdjYBr*Etes>;OM~@#pua?S! zyTc=f9EUs9QFWm6bpD4(P&*~M8@ZkG9o>G2kJB?Vm&H7=y>9&(UnW>@x@C4|`vI z=JEZmg0Ej|c;)rM$;|_{FK&0y)DNGykeIin0|Vxf9r$4;<7kIG%XBB&;G z!|Wno+$k96F5!nTTSOFgex3Z+lCAuZL&7@-ZB%g2;=5zW$F;vetAxw7%p=Z+8W-gx zrGh#Y$?IPepO3Del#u5lfdkXG{E&^uM~$upTS=s=m7`)$#24EAG1>lq^H^ zl#gqu|1;Z{H2z0-3Ib8cto5IjX|JmUBpW{da#z`&Y7ljD;1FI$_$)oyhZDXWN4fh* z>D0JSnS_~Bi}aQ}OW?y)*s#yz>q)rCyUhq18@M<6%m3lx3=CEy<#0%~&W<{`3O^4~ z$mr&B#Y5TjiBLLAo#7J^Dd_w$qqd0LY~gRh5r&x~%*V8j+F=#$rDwPMyXIC9E100< z=0F-)iEOv{HpjcR3u`!8B;%<}qv9PiTJ|#G(8*ERZ$`4Nko!AJO8a}$v)$r9>C~Jq z+ukPNYL{LZnHE}%PTqpkB1Ym?Eis++K@-A{{OHfXOqivW*|oI~xw#X+8yoIe-Xu}i zrF_jj$STLR{>-3kP9*wqkcFxY_Ssb40p9CSaeTjqxv)He;029-4)edkqQ1^g1(r+M z*5lBvsL3gy779OcxS4KLxB4nL^V18Ze`!FOAJVru&SlarFF4y(mA!67;)Uc*a%;oZ z2#Cs~zYf{}jn4PRzWqBm*26hexnTa842}SIPKK%;l9!7@;G@|~%BM9~SFgo}d z{i}Tgv{6v6U*P&|=7WqEPpb{>sG~(T_W-lRDp!l+0Ed*wD6Q}vb;G=m+uoz5lqhm| z+^3xLw?)d0S`58#O;^%>j*%}&mbY7^fKFX>`bD+e;$9Yk2rnsMSY-$=dG$)Jp8*wQ{?d}TMDcGXPjTc5&TjzjjjllCUIT?{m>654vX9$Ou4~NhxpKHn z&8ho#X%2}3u-oFCM;X@FOH(MGT;O@tiM%tsQ+b+kgqf^sb%G4XW>y{q&=j!$mQ5Id zjdKLa&C8h2_?2DjMsowYO9hj5Naku0N-YOmK$eCy59(8Y6Msd;taF8XOustmP!gp{ zTJ$w64I)Y|!O`$P%Z?{Hkt0G6YmG2*5z5}-@bR?^gjq)4oB+{X1)hyz`Z7iC&8 z`p@L#Ou`G^DxKOgq~62Lw3VY`pos40W6PM02NathZ3mt-)r&2dXF!6FKUKKdE|+*v z6eZ4b1js{l`Bh!4G^h)i_a^o#I`Iuo^y6Gd^Q#5gi{0K)>P3rNYf$!e^j4ewmn4J! zS``HoyXSA+{n$mnM-c24mf60nv5nol_xh$YM;-PF`;LX79UJvZR-qJ__JuYZf?sG5hbXyc>QnThINW59j9 zbMXtw7yo`r-`uVpC&0r;n+ZVT@VJ0FMD&!(*;LYB@N#UoXbPs-+|aBuGg^|YGUVdKKmYe zb-LcPO2jvibsrrltlz_o{)+xAMmJ7Q&Q3D!>6}XzZ8x6q&^=0DYh_rA>+VcQci%sp z!wa1kHx-*!R~gmKTZb#}$c+9ytR_H$aBgaHf}w?D5IJ*fUkLXw(EEC*^}*GsVQp$J z91_iXcq?+>alB0=E5S^JJ6g1nhN&40|MWyN2`du2R9$&5_ud^91AjD&G&Aj1AuGF| z8V=sW08&h?n+2QJ7LkGRuJdMq14GoKMHq(dCv^8{nsD=6Ovx>dwWLln&{zMI*yO8n zO7+*y-jQ6+BB)ix=~+gu*Gy(8$H01v?Z8O)k8wzF6I)SFC-s=`@B19awu$eXe6646|Gg&V)>H%3>#Y>Is@8Fl1HV@u*=Zi@;e{3{oHBIrrUe)u&CffkYC-{zL(&N&; z?07ywkU2j8)q`XAJZk@E0SmK}C9U`+YRk@3zd9gNkcpYe;@#7qYp0FXh1f37d-dtQ zu+lP-28i6t9lt`B!uxtAOSrXb7xXjDcGoFV4raq$N>9{o8Nx)VbZCTUCg6Osa`k`uc9|46rgj zQ4x4{mGnoy@LlzkhZx!CMjD7T)roRv~#0_mdcY4{%=z}$MOdM-rn zQe$k~Z9%(RR~#qgQp9GW*q#OaT*vgI%8y8%w7=io)i3lUMOb1|w-pek0MJGd;=S79 zX?Oq)$Xu>_^NAqHqBM3X%In@l30tAz`}E0|IQH(W2NvX~2H6J+)ayskzd@8+ltwvE z&nRrx0U#fpmg6=fP9IUm(|qyK)S)xVr<@ZOuwU6V`l}WJG8&VmYHrAntdy*S=EN*s^cybD8k{Jf)d3B;rI#hX9~hyhMwoi`@DR`5%I8|0E(Y&A}NV{ zjP1tvTVw0+P5IaPBzLfumqU=Z9PtZ6Zm_$wHLJ~U6^;9!nnOy%#aUFfq1oZG}2;u);Z5q&w zu-wGo6u`)jNVrdYS6%(x+oaa=>Wdl;e{K^j!F9yTy%*2;j2TUdk0aDTror`5sv2U@ zK2s=S=6NgsLL|J7JAiQK{k3~`D~6(zsr+j;u!V|r$_Ar@0)?(2Sm`Gb(7!dHV9Xp_ zgZh8Ad9S54aU%9M&Q-A*@CBS*oQJ4Po%J8yce=M*GTV#0rhFV$2XEg1mOmV)&(M8Z z(HPF2(YUMnqwn9x>WuY<5F4 ztrwHXFbNucxDJnS;nHb0dvj)~S(KasEEFXk!Bv^X&Ix&gW@erW-h1~AdRY7)A!W$v zy!aa)S&&kspTBX9G?W8Xq+V30GS2Xoerh|hel|`@Z|I;8Z~QNscq0IYS6XH}EQSiz zK*K|0RrRx>ZdKO6okyA4i?i=|dSpqkE;C+N0oxx8X|Ew~Jx^vfN_4a_ktzhw-@Zh& z&cnaiR%X1>XGi{_0C`9}=jUdhpnJXLZdAd|KBkhJB?TS0O$=D*OOU(GPd5$V^kMhs z-JRq@7@82)%mt|mFN>T+3jXCDXd4z<+V$=RIp_~~dcb_y!t?|Si^x+A_d51*zzhuQ6j#43Bg!bkjF8d)dC;5j(}oQ2 zgoB&0PDp=C`?pbkNHb?FaVY`upI?C_mFcc9*26)2D|yfcs;fd+_X2#C4{dx62!Fnt zFTvD~IMhZ|d%t>R;9eFR9%>kU_Hx2)-=V5-LEeomd=$Voa%T_lsiRwM{ z!Xphw?`?^Hjh>b~Z+>7=s$+EG5`61}+f%IBy~BAx87y6>l6N}emu4QHV4u1S3q=;i zUaC#zb)F=EJ&@kcjVGz-97M#^0!a^kr^8=I2i@D+>f-BSiV~)tIlnHtl;8ZF{B6A? z!9sSHy>F@{=YnFEA$%o=tQlRHsH~hA?=iI51MFJPS@P!k&+e7E z>s?d@WVP;VcC2ECr2*$lVM)Bx_BZ@Cj3BR};p6iUL<|O$bs+!hzkh~oF$d=Aht~X< zaiUL^5grNVUbkVMRO*f#2|8Z!v-S@d6%0eD)Fx2d2}l~%o}hDkNc_C||3CA1 zt4V?J9+y#@(gqZ$-dT-3shXxKG#fbL=EXBjfmux;#F35Vj6vp2TyiRi?Z-0olTcIc z_85>J+Ea`@oQ{Gzu;-Wr0>5?cGN$SaOhs+#=Si;x>X-)nx&K2hPAO9kl=%jG25SlX zN2{`OhHun{i;}<|ezbTeA_9SVvB;QU>hJmLLEi*w82-d5wBsa#Bv-SU#h+DG(bQE| z;=cF30qOD06p+VaH2y)@E>ZJe&}1&>?O_m;e~5svr!HE20i6~2L?F%ptwL8VBKCtNo})*SuDU7#;6 zZ6$Xya{@})CUra+e)bgpK1u@!5B(3MZG#B)Z-d{Y8IK1=oJ{Cp#e z&7~Q6_6KAJ@))wzH#b#Ar|8Q%(K5->B5Z4^LS&0{!lTKtUc4(=|00A9EmBi6O3c*+ z^N#boUWXT`X055~ zNFb$%59g?$;DFahicdY&)cyp|UIz9o!Dyb+3(MuduM0&bM*$v!L<>QjN^%lCw5XSM z=*ZEo2Zf=$`W?x90)O6Z<&T1e7bK3|NauM_cG3@^53IJVy6Pvoj=257VVJOdgI;t# zUh^B)R~Z7yKwxvtzFgSk6YFY<%{2JoOr?QC@|f|*#*MZaWP!71Ix29bzSMp57WI3q zR!Jg=F7<{D{~8M5A_v>D6O}@~OBm}_>t%e4WMvld6vF1E6Qw%Y9A)o6|GX4hj z+l*Z~AhqYn+$HsTCi6ev!~7gXr}o-H zlizXw<^(6jW0n)!J{@Yyy3)c1-IJl3ZgGLH<7pU6a_lUi4TvP#Vc4J3+m_wQf}6f( z5E;kB(2)6|hO%}>#bSYQHUZ1VG8el2I$;*DcE0#WKWzqmHBgq7MLI)i{T_Ct=^uO}@1YLU)( zxx3{uV)e0RJ)NOAq{j9Xm<-NW%wf=vZ!K*f=cSL(Y_>a=K0ceVwrh1qS zfuS>hpe_<)$(R$%ixn+WW1zPQm>b*_&8DWb{4DGiwLZ)@&A@MaSX%cJ#B23| z!f)T>q(?y-qN$_S5aoRYECepYYJXMpmY@-^hVR8o76y~- zaT1$Z71Rx54$D@&?;jHqQ_5RxQoi&rS;73WB?n(J15zdo?xD<8_`^JRDw*Wcn1`sE z4a8Uo*WTO7nRq6+5`lX6;4(E*Tp&`Fgy z6FlJ^D@>yC@NDhmg~VV0VoLr;3v@>rvscD7Ix@hF@R@)9xS|ic=98o${I~%!Ts;I% zK$>#)(S7)@T!J5yGJFj|?8&vVQH-1nec#>G{jR~vG7*-Dzxp3N^ZL9ss42UL5Z(Jwq>}7d*H8)v2g?D z-u9!t$|Nr+*p)45(~H^bZ`^Sp9wZ6m;rOeGvM+Hni}i23?Xb2(-=vz2X)`siv-kY% z;pe3i|9ak_l6&2Jcs$c=7H##WrLTB`JQ-YFDa`}IGw08(Bl*fX2HV<=a9kWX2;IAN z|LOmJovYFD-WzJ}5cb)SfoY#~r`KuMAr1ZTn4*K849?@Or5BO`t>9hrY0Huho{ZAXcQ_5&jg?9Lg2fvvh%~eh271NI&o3m z#Q|Mb8l&#BTwJjplSYrCg*EqKm!Bua#5!hE#7cly+<;mV`fsYRRT68{Y@>qXfzY!h z9Z-sh)E)nZeJaR)1sGzr->!sr76|zxDd$uBUk`U`O!qG)>ToJ9&IY+?%;8BT({_rzQ31pE>} z{qo_B!az6aP2;UJW*nREG`VW8Jh7)*1J%!RTOvp|3yt@j^M4m1$+_1WSX}M=2J$6| z5%Q5ZOxosCkcyr>ofDn8jqV5E&B?NG+w%j(gbjbhyMDd@Vz90tRz4?8+JBg}O2Awh z?YY2jXxDCd6^>7Rc=x5wEF7fL+i9nbPTiQ ztnUf)!tvo0(TsD<9iq#L95fdviW5R|r!)ux+uN3zwSmU~sh*jS{URG@_ z@M1C@h7_?o3fT9p3rCNsR_x+lh**%fX&fETqO3;%$RNxjn`8~uOgFBZh$<;4J~-If zMJsbuJ%FU^jqlIq2AqWr;{XDDm!TS@;d}rKJuUO{V~@zYWuJZ1hq8Rw({qul?Jxg1 zxg$U{Zypq$Va{8G{vPuc*<-eyQLT&l?WH=a-G$RudgfVl)XPs!CatuI78P>u#+D5t zMc`pjCb=KXEsP$o<&!^_5*EwK8P3+f6q}La->NsIEXvYr(TG=gmnK5IQS&La6Vv}U z0p|nOGbqh)(n6o+J>J8VrgvzK=FbZCGOfm}zJqA9=syt+$mU zR32;F=Q7_$a=HHAoq@hy{vC(J%DFdv^-3&F!?=+vPYg6@1tpTsUhfUXCPAUX&drBYr_IA0z$(3_&^L4>+sup z;JO(kXa0=jOvD+8Qo$hOK>O_<?pGEBkhO#G*Tngf2@^1< zfKO4BS0hITwLiM~lhJcqwXWM?q}CJ#y8&MGr4JD-DrIDlk=O7OEF7#+MHL1V&+)!x?Gw z?Dlo4{V0$yLaxP>PhEupSLS~%ySK0LV<>tq79!k^__S&VtiMz7YdAyYsDp;q`bjUF z3^2ffV(MTB#KJ=F^_RX^aK%&WGXgO5O37ICaZ)%yNVC*%v*+2?j07H7)4%#9yydX` zov0KU{l3fG!5nkCJxzz=b7jGG%dD&{AuiF3!+paN%fQEn<6QgLH|d`|18=0rgJA9~0iy%?^d$C*>+lqRsE9!5wt0M)cs-3$cM{ zkG`(Ni51K1LwSSEo<*^7HDx7epY@;6z=(dI)ncNC_VYd{YUt_q>|m92G$;mko9&*= zG2i@&R6-Cw9380ga*Cnngvm%byBF+xyYnH))`@(<$(Od-4OtOxUE+oL0F8}_gF^Oo ziSFDEE$$kxTF$7uJUoyz>4w?X>_s7`Em1>Lw^u=3GKeeSO|Z%(;xb`ZCOPpTzNUNg zMRJg^zBu}q8DyWY0+2twi+E>Cpp+rwM7VKgTy&BQiBQdo*%bNJdRXNyGN+WMFtIV&*97` zpb+-r_Brn35c3z(E-qZGxg$2eUbi`OwhYEL9#epCPubVY`qeA?h%5zz^NEXU825fM z-WGlTK}z<*fRFYzvn2e%{Ma$T;;r-nLj;4aZgoggPbWW|VUgTIT4qP*FF?A!yF?Z? z3qX|q-jH~BdE1_<2@F%5OHVzfPnq&34kJ|I)mbBAKtyIfheD$yYQ51 zbA_eVp9*!_<^OyFC%^7@__x$wal#>YDw{vcYPK2oXQUR2&7Nr0iv>{0sxs^Bea!7E_8La)+S;iD8IH4F+wq`(j;!{32yzWUx=`b4hDQWgeAF~Ur;$HOooRuJ?-M#m z;6K!x-!RD<5GEMKn~jOlTLt0|KXZp#M)HTLKv@lI213Qo1Ah_doXT&E%Ih}e6R(q) zSOp3}gaKN05LcX!r(&0{{MddsQ=Jl=`^;h_Oth*E{3=}o`|2FiZU#kkn*rnW8Lz38 z+}Zs*O)vn808}q7j#ImAL1`feoj_CN(LH1qs`BD&yzSz@hz&V`t%N*W+x8as zYaTpoBw!qByd7L~RRB5SZn6-9_t#M51GnVhmK^c(9nlo|HRDlw`Z!?2c>DAVomXKD zGgb+KL!nJTH*%#VT&CFdKc(;KO}jEPr#!rLJUA;;$Kq^k=gby{qr~J8LkiQTvshGu zmEj0u5rd<@X3Hpi+l^P{5v|F4#SgO$$2K|Q-HT@ou8hu0-aOo0nO&$4j%e{?BojZ> z@@}naq_#0NsA+yl-J!R8qOE99uQ_gW@P2Phw&Sd{l!#p?c|Jm9GWudS`r}h%uuP!2 z3m3KKbfL{h7VDrPs@pBQ4@Meq_rxmJ8H@}%b|Y5;#l01uiB_EA`&oDu$#vlHGWNng zJn>)Rd9a`CPNM62Y)`OJAP3_F8vl>AIV#p=9RpE^5pDL5c8b^(xb3AylkVg8MMaFK z=#=Cr>VkJ34-_o)TIT4GgEq2TZ!=x@?R|ud+=CQ?gtSW>e;-~^aE-)AY*Z$Ucnf5e z0>&RjFeKHBsq&6k>KGQulyncfrL3JD?Aa`19L@?!$V z=AwIXeu?w@(0ljsbra^{CS0%ahJxu1(wbtw{`qRBRGBd(XrW_6QZQ!X#S0Vt6o9$% zi<;4|1Dx_LOah*SblZ-nr2R`cB_}75JT$hkN5A=rk4El`( zNpmTBPPrR!F4E~~PD>&e*g_G+8lrHrX^DC=H-11!XhiXv%P3ys; zxuLiK+0?pUtJ^}}BeS0ag_lk!HDH1GOXoG=E#F&v6brl|9d@;7^ox;*c7&-%Y2its z&Sm-eB0w^dk65xFY=n&o7-Xvr$1Yr&b!89dezs}RCt{QJSw8Y9c#ahAA}7b;6*MHJ zJT=T(Yyh1mkmMzWgXxZHIvr8Sx0hM(FP;lCe;WIkkcKejX$txlVIVNFayH(6$qU~v z{f5u<9hXTI0M@zc%yRhq%4R!)vA~)VbHkn5=q}?dk54n0U+DLo`h9S46Z=S*NP3!|Duk1piBh6hr}^EDld z;@r1hq0SU!N~A3~toqF`OOss6D$@cZzUDR=AMYb&EEV7o-FQzPx=GG*DHV2I~wcOpIYKI zHF!ihhVf4rYwwCDz&!bdU&BM@jaxM>Sf8-}_%R*-yz7%~eo~QHj;_+YQp%OMNW?oq zo`EULY&tAc-B$=*4*Tz}>wC$ht$8Hk-9%zsBx0B(61B2j-+bfM7YAqs%;Y-(S9fx- z*AGV%pg7Ke$6G4Fc@yicjPfsCu+cq8;}Ia9VaIzpr1I8)!)YqB?!H?CQ=ENRBn8^1 zOa@MO`R>toUMU_}SwwF4C96wcL&wmfL||5^KJ1z2n0)b z;l+pzeIG8B5pN@x*d_}#86}agoG$PYQFCVH3*0~FHinoan0`A7VFLI|Fa6&^Lnxpb z`ei4jzqa2nOF=EyQ(G&ys~wQ>*pl?xKcO(C<(Z+jj$|Cki#efE<#xI>YWHmmntauk ztI5Uvj*Ia2-^C+g{+?BKHsVadc>_7Ot=t9tBTe^0QUcJvnH!+WnTg$IQ2BVa2>yf! zUos{>k%0t#B++zIu&X`kCB3xhlm<8NLTUOa_cI?{4LBX2c&BxpcS=VGk9CfM_6+S0fTh@Z)p%1eNX+Ey#|Pd zH($OF)UreW6WAmL(1tbjvv^~G6=&>5MoHosISg$ynBnPJncC=|$vs!ydGby%>J{L! zLENE`i2_?*g&(glB>M}fv|dzF1L40sHTd5*4401YVI>TwPM>EP-YrZ-MPM=s8;(A` zCWn6`J5yMSBjfeQk^GD&8QL+WO>2L*cD~(82$c2%SMk`D#^zM~RQu2uCNQ!<;*#k0 z-rARDdVlPyzfZ4izVgZ;9B1tK194+L$L1El22Ru6X5Aztr6=PH8DoBUApT3G;Sc#A z$h4|J@Wb%!kDHyE@h#zD3(i*z!WhW0$V6=>jF;K+H15F|2NUit9nwkCox96&u6+L? zNSU&ZBdImm#vN;UF9!(zpnHv^`BM$@yRVVzy6$bq3ae7*GJD+0SxKtmWYf0B^^i4+ zGgMz(OHXkZ-(kjl8LBKFwU}+yDj{7H`&zbU*ij1-X-iv7ig#99THu)V%-Chw+@g$s zvB}ak4K8sC!e{->)vr&#Oz=yk{o^I+PMAuB@pn>>_ zLRu02**WQ@1{|jqxsHPM@gh(;1ywse`_)5r={CE>8oxKPBkFBD#JyQeA+8pxKQX1c zL)=G}CCE9E1Erlx^E3FG)D)^&yFcCwqFh`Ygx1$-kDz`D4l@*A&cgms>fA2i|d~t zDXZuQg3ydx`==O8BrxH3>wmV11Z55|2h6l=*xy_vk37c!yk-_|P1Br$%9YbQiawO{ zex?C~vp-|P4W#GNpJQ!q(Q?+}QAzCIE35Uyx$GK=P;*i5!2 zqBJ3c%JjGd!-@VB2AWv?7gr~jo_ibl~$tvmj2(o~|+nle|k)j_9KppsDD7SGw>! zLU7Kgo}3(FI%<21Z`i2cB0qHOhMGm(-v zwm=>Gu@%b)1;Vm(Je*nlbH8U8L`ivwBf0sSI4Gj=-*t3gL|Rgq zeA?srkm|!D&%RkDdy+F3NDGj>=qzwV$+&&St`mxCt9XQ0-WX0D8m78Ao`{zG| z5hbLLp`HFKRUN64OnmsD6DL1`KlGdnPpGZtdeTJFx7G0kyc38&p@hl7tzHWrV}jkq2H!?891k|1Z?n6aMHS8MGdCfZ`pO;DnK84Tfp-^@ zG@lq$8CpEOQ)5_QaXnXcU~}mqUGPFuT#t}r?k$1j8@lMGALCy$-Hb^yxt@vXCKfXV zDO^V4GBs#`*m{U*z@OhR(XEL5#!QHM?@IzFXWHCqn{AhaVxL}GTy`lRebgLq@~e+m$Ftj zJuX=B>!p;g;TEs^8dR(t&yq!|ZS-$g4=0a(ZY;rHx`=Fx%^up=FKiYvB(Wk=;SDBa zuR#vTK)_gu2BT&CW6_QQQ2z2Tszah?J?&nD=FUT>RD-r|-jeNG>PgbA#5{cPLjU7p zo_)IOClm?^RH(YiFXEvQ|MSO=u59V5 zecm*BwNT1rbxp_OWq0ZFuhfbZ&ovo)f(MBd?@`zUmrqjqYlYtwaOO`p$%U0!LPe#b zZI~Ko6c7^D5_JQJ+yF&tN!R3a-c3oFw&&VtDer}Rw z)hy#9ZqIgmmn(qjWNW0+UqG5A%zM?6wt2?(BP@?iar~Ay(xngzr1XQxT~SiIg<3szi32#8 z6wjntAj~n)`EfC|X;B-r0zg@4+4i0J9fHyh2w=3r5PcpPoX7=vI53CH5j(JXyO?&E z(rbLMDp}`^KQ5jgX6qCN_%<^=T+OapL%p_U+9P{tJ1 z`drlPQlr|Nw%6w$wT^n9{2pF8XLe$ugo}=PxG-*7*t4CJ=0rpLcF+?$_CO%J5++!a zPUoFg%N!fKjvAGi;+xGN*!P3fY@tED0AVv-z42Okq?>?tVr`DWyRgue&P=TqfAJQ{ z%a!GL*ZJpqo(H5X1t|tY6FP-ICG6FxY*9bV9FM-M<;>stKWr}*CBGX#9ih?4>jLM; zoONh!ZJfT`4ZIak_1U+yX;qX#!?Wc=X4dkWIdHvR~U4MlyI$i?Pz?S}V z;C~E=f)>ggu_jcN(VHodeZiVnaK2YG_mlKz=^{XB6|jv>x98CB6gA)IO8tk!+j-VS zSk)-4FVpMgANYokjNTpCD<_X};;m^?#7|xlPxeG)RnZqs!h@w>j#5JU zh3B#rr7dtx_)MKut#Q8T;A9vJ@RWD_yxlo4;_=9Hd@oWpF5{5QrqtxD;d7QyrgEK& z&o(VNt9^+$2D~Os`$R4$W3}&xX4-8^_UK_v`3xyeRCBYoR0^Jj9(_z){HsKiqw@6Y zl#T_fH(E1$>`m?0W_$JXiW^o&yw;pfw-Y-@Z4(<8M9ri{WNk|Z23B`(Aixj}NOTtJX@pb3 z`}Z)%g*R>Eu0y#*npplaB=D)>zVJd{E_kH+6QbrL+h0HHX|Ovn5^U13nflA#;sOYg z-$3O+#=3&yVouo|Biy@vM5KmDtLxy}q?* zKOw~i6pUj7Mlb*#LxAv+8aET0kcoB!dr7$BD|zDhynx_mE5~7~12L&Di1V zY*J9DWwiO&Q;3wM54Aj&WK$QLp-wU=Q3p<)xE%E$d{Uc+*U}d|B|df*50%rNwTjkt z7?R6|cVc(uhgD|HQOpEq6;arg`6`J&o~FLg$60zqC0h_zYU2QUhmiLOz|jdJf8slN;T-2oj+rs=UYvB=w^+S+*Iv+qWJ##3f02UaT|TY24>-Wc0Rn4lymz3aQB|! za7XXo;2=n%cY+a}Xwic~qW2!6ccQmobRl{fy+n)X1krnoVYCpvccPck4aQD>|K02V z;<@(O>)L1c#qPZNo_3$RoO93pneUnVZ1veGIA}=I-1r2F1_}n66a}j^4-BK1yB(Wv zmg^z{0X2>11awyXC$O?{9WFD|Uc_qi1AH+8ZLLrW@aFhKW)82c{wIZ@|c9LC)RNU{-KZof^x&DwZ6j2i1O*b_5ArJvzCM2 zHPdHU3c<*OeO~(vi3$z-+5>2jo+g~?cDW6ZYknoU<<)WVkg(^pllMeSc++Rjn@51) zBDvkYEUnh}NO>ngyQcwo|@{d5snvjZ4*-r7LyKwtpzIf3n zq&4C8@NU~3(-<%M|UJ#O@k zlwf|R2BGsG`~>eIJ~3zjN%;vgi-#!+96oT_bjm!6CKY(_{5M zoQf4^;+CM=^#cOq4?%V(LCmTbQW{vSR=Q%B+tcc?JZ>AeA9Q{N3pG1uk-NbvjGP+! zRbhx+ACGc;_Wc`Pm@U5;afRu#Z;Zj)gVH7zwvaroRU0B|bHI0tg!zhfdgqf#f0GVF zr(WTu=X65x>S&hONdIP~sA3xtpKS)UE8 z>zC(v&br+`_jg$6zV(t>dBS3BHc|)w_I`j~!d-~7nvMZdQmxdz=g~Ifi+te60#!I& zA3^4V&s7ipaa_lD&)(Ski2u&eAuY&>1GvlhImC|2n$Uio>cwGP&|!{vH8adDyrN3) zCoLtG9e+LT+-FR_#-Fjcl)C;IuNS)NZ|R>XraXD3F@X6L3+F-j-BO4Bw2zDG^8B$# z2md*!XN7-9#k*r!+jvrJl8!@;XGia9y+l)Q8lG^A-0KzZ=$NB$D;||B4IDS#OV=}w zAwb=$P)OzT1}4zdj`Un=9a5L`D*XKZzQDhp;z0T$+@rw6*uG@Hr+h_5e#6w=*wLvi zvQ@`+n&7&8b3DaXbkq8oXF0^asC~MkBq48qVW@LTnRxcfBoH2xYQl76ulmq(XZ4r| z46+YEI1C%^bG8s{&sv`&P8hmU{#MBu3k{6FQ$?WHc_IvD_YAidPh{1F6a;cl`o3iw zs^+F@57RcldSnSqk(P^AR~~Kz0mpxgx=9`eLC4>O!?}*kn$viwVhb;;FAs*1S|dBc zPHIO6I-!~M5=ke?WsZYxzWp0!y&5i=LE?e*m+jw;n+48_7jYg5FxHX|H1O4i7vzy4 zGj%;~nR!YHjx&vQE)5R_DU#>O)+fXdiuZ~a&Fa^Ww{X_|aj>1N|Afb-1nE6f{dL?y z5N<0+j2FlXk+}3|V1LBh%u0ff=~<}3tC?xC+jpL5*ij79TBpjiG@I=B$8 zMWWG6sYGw)b8$f0KwYb`j_4&~;DvsV`q@Fkt#m*^l%gk1N}AFH=|Q)%-73i)MDn=v zp8Mzxbo{$9h#zTn9d?V96hkU>u)=GP!KCM&Ne8ud4+PK(OzjKeU5_wFF}L6OoeAG< zw`&&g&$`V?{%Pp9kHJo3r!lE$#pbE17p+!~0eKVCljw!-5#*n&-HKK_z2_z6 zZu4k`rQ6c>4XcA%AJrj}MJow4Y4hJ}KNeh7ptMT!uAKYQ;7!J`s;avkD^sQTK_DZ_(Xni5wE1$mHwdVK;(cqZQtNEmcyK@IpDP7IS?*ddCDI+@sc&0xD2$W4d z?E*kav)UPvw8K`z%8YHhzh^!u+;iZyd$tiCWsbIrm+o+;4ga`kN*FqzHkH1w|0B54 zDSYR?Nty>zy5*NF6MwZ(ewneGx%XJNsh-cn9_1s{#Lz{cPwXL7`RM#fLanpXrPe16 ze`T^ulSeLv-_E$GZXAcx#r=5OUU08k87H5TOCg)Xo`xbXn>IA{N222l4YWi%@H-ra&K+<^Y%P27XU^!NGdDJ*w z7A)-)iL^qiRq0ZLlC_+P7$tArTWKHvKyn#x$qc2B4k%WK2?hI$)=fox?1KNcaFl;| z*)&&d)FJcmZZS-<%b1jwsYSw9{CobE=#vxT99f#DR8Wtpd}7JpjYyzfS8jUo)wN0B zeDShl&2n^W$wDfHufcu`Qc@D>Z`Of*5Vs*git`C_!(TheI|aYTz%ZWFXpiH>#v#8Q z<_v-t-Xad-^O$M7_7Hb2OS>nNs}roP!_+mA__jKGmM@OhEQ1X1LN_2>u-ijPL1-TS zgC}en=W%zOZd6V5XMwBXKA2P7_wr(V6(Qf&`bFkWo+q1(qH4f&I?{G@hR#stkGA+k z{T`yt^!>Lk^{%-J)8*+P@h-UC=Fld?ieGY;lzS4V6qleBS@?7EzQdtIk{Tu@Q?6ru;&e-+VBckP(}vo!REU#ly7 zp_Ajjz%Ym;kxNGS$#wbKLAr)XgNz4Ih^vKjJ8bxTmcOC>{Bnl_W&>H+IH|k5<`#)Z znmoc~m$!*GcumV73;{%QC)OxeX3G}jeP6cO?wq;)7n-Mu*yJ%ciKRe}S9TdBb<)ws zo?o!MYjjTjCYYsVcRkdxq{^$)vCDH#uL zb7i>hE$ch!iD!_ryxNJ0GJa6W<5rffgsr#xf=da~%SzGi6-q6pUh#+l{^}-c7tnxc4|U&{K{FdiLu zUU@Rd6{H76J`RYy*m+>5tzUJ1SP!gk&GkDmwO)>2ttg5br>OzWd#L^>9(7M$5soIwH~w5Zp?G@6|fFJj**hoa7mQg9@NP*j7G zA}sq>86HdJpEFJc{J+n%yH`;ZArd=_nKDfA=b|AT+JS4c&H+FQR zsc7ey7TtTqpN2%l{6e50+cEC;$z`5@viN23j76km?}@2}>{N8nrvn%27joO1@GR6B zkM!rtG{!h95{f-s?BF*OeHNbMv){UgOiQq3!;&v&C;i?-ShA{3$6^RVekXOuBDo*F z>XI!X^gF(I)f*Pg+JWCKTwOU0BB_QXxshM$H&k0Wo*gxrK2Fj?irdd15)ae_ucn_n z!}g>MHJh)hFS$HGjJnw-?jnv?+Z)!1gZs-w9kw3-2bN=MS~l)C1->>1)#RWFP3du5 zgxKW)`rFp0iL$hsmLt;p1qwWu9@VA}3{Y=E+9E%{yyBGXKA3Qje&x+9t2$rN`}+a?CLO+Z>G)-OmRE@#W{ zqO|I~6VEJ^fZO4uTK?CcWZOX3Y2M9b!z{ApDD??-B$6gy!Y&MixU5yg^t(R2s(=EkvHrC36`g9dpHo`vpooS;{^jg1fAR6NqFdO^}MqduZNg#O4#dj+NA)i+zG# zvm!C^)=heDGQ9n#8UFdlA8z$~iZXY@{NzDtIIM`_drxNtv*JKEj``xQLvY5}%!#{* z6!XE{!AFV*#tY#b`-OB2eNY;LZF1Oa0jLbdzN@;*3f@fb8VeG*FTL9`{;=TE6c__N zU*>q+oee74tJl(JV1ritSi3zmJEG?ihOAw0$hcSS@|?}?ne##h5p~noXPQDA=lquk z_deqI=K4011zqw%0h?UtZngb;(Qi#Y`Ty*yd`N`Dpy_!lxOq4HYC$SQ9;FWjra@vV zLxNabO6^v@OOK_j5?gK_W6v`xSvHE}S3Z&6D&r@?K0Tu%E z`oN^Im=BWiV_aT`w#|kbTD?ue|LSHcLWlYr7((#zEnm4$T3`b$zZT3*dD+_cVfgBv zH_u*|2yu6z7s^r5fjjD(`_}UcPE|Y}1^G$@^`-$X`*2%}S}A8P)~n zu1rKlPfd-;zCX^tuMQ!_3ZdWSLZ5$3wrvqfpUhlUsGh}}Ak`iR4ZGd%-TtkJPIuo3 zg3d>*pj7ub=`UXm#c4gK8{2dL(l4Xc*&F_y7_Yd$+)kX!sFvJXKq~Z7$a`f~n(mar zu9GLcq}~c%c<=Hwg;h5_gJ=oflkFuV5)Xx&s(Wt5QA;o4acZ&E;V@R@PoVs+u;Maq z3Ua*6^#1*jU^H8OVx=7;zAiav=^Zm{f(YukzAKBYF)sT#kI0ks*PuqizIDBl#x-A< z`m>sEn!;=slU`xp+H_!c&k8K`l-(KL-&FGlD;?AS1R1E`RIzrXVcitCg$uo8xE7 z9g1hF&i=9p`P6xzxz$nR?hOfNxuhK|^k%ZG3mFvj&xxu&lou^p)V&E<|2|!iwQ#eU zy`h_b7Qm(*D6NWRxfgl)lRXFJ3S8#*l#1x00>?}|_Jkoql~H-+l5FbA-^&(lFCg$B z?Z>n$#|a>?=A-Zc_XI`g(XqYhn3(kK-F?X|c;)%UUU0`SN~|(e9_~B&lEBN^tW`O@ z(*Z9)H2xfeKA+Poovc6}!MRtR87ri(KBT+qJ;);YhV;dN=a&_RrNJLIe+#o5=q>wZ zk0nb5H3d$;IIr-U)RByy+&;Ki7Z5q&zB)fw(?p`d<$-8B>X1e6`qjV(Z z?;kH#;NY@0KYvRO! z`qV5?FC(ARb+9(_w|?^S;ALT0s&4W<%f1Wwfm5OYX>&nP0+KLtT2H64 z_|xP>>YgE+^5}mi`_EUxS7es_88q+rrNh$f<`Bw_vI2!OUX}+C_35)|rPTlAIyryN z?K2!^Xw+Wrf1nGM>Hc;JKOTdUn2{h`|zX(9M8|2EzDGEeU7eX5<9z64!vSLJVy z4kX=tMIirbTi`YA-I&^i?atH!KeaWY7D_|H;;U8Yx{(5Ri+7T6+bZNt|IU=UWbH{HSf3$i zJ29(}OJepm0y$%Idt&_9c^-s~5T4G<(?$Y^|5i-4Wtj(keK>kpT@JuTc3oe!{a6j? zz3(W^1D?&VzE4+J*&@r+`&(@nvE%Z$ZRYX##N_hvDWYjAFYi45!W(bsV6x3J=xe~n z82y4vWst=K;Q#BNZZVTi#QLQ-1xk=$y4&MRf@+fmA^*p}=%@Sr#gjZO#zZ}m zZf|d6A8ZSH*r6z|>EmY1p3%}0pc=sB=_fxZbO}(i2k%_H*adg{fCs@$bL=V8*yd&h~m-)9%G~19h zJU`6Uu->;YjL|1O)K||taUwp)V`o1L5k4gIr@+TR{ftcV#AS}-|DO}kfWSfU?a-cg zBF!gAvd7gf;Wux*_rW*4Vk%`m;Fn*2b%Zp{uIP&G|DZwM`aVSU@ZJviU-!jOEJC;Q zOsey!X|lvTK}gqtF&E_BIYndAs&VzBJz(*Pi{~^?MUnfz2*c3OGq>AgirIrp zQ%4+R+{!t;MH{xcc(8hUUO4u!(KpF;pog-UbI;u(S&x|al!(av@+AW2zlNy?9)ds4 zRh1R_JGiHwS;Wps$+-78>cgnxKngko14b$#Ez?{9Ptbz^#YqIQhv$3bWmo{OepX zy?;;Lw@E;8-G%1I1;naGT^P8r{^#Cn{h`x)K<34FUUqMm&6pyrqe|Y67x-%Koo}=TR+a*Cj0`Ctaa+&FUX?P>z;i4bH zt7o()#4DGY6D0^rGu=gE%?NLDaucWL4sj4Hz;JFPTaT=-c5r)obExkXP4s8|r>0Eb z>z`zJb=+u#rc+K<&}&DgMIQk7EFs58w6Nw8Es9>^R})|M*T)D!nbNm*jvRx`>ohF6 zsnA!Q=Lvqy6A$m7x~37y8{9^2Xg={}i16S%*R2J|M%pb3^1j^28km8~JOBI=k@dLW zdE(uU!cQL@i6zZ4UlDo2pJD?(D^M$|%RJ*2XXt=^t!uH-kw^Z0ReQ z9U=4OxZ7fXuAq&q8{#sbE@(~iTa_{^GlIB$BQXWULefugnFdM2wPnov=n`$X~_9)(b;mFH@;r;F`cPN@GVcGNP2-H!Q4~;C*H{GXvvj=sA zi5s}1A?N+HpZeCpmS9u#O|4T_jkr30U;k9oKda=L6a>Ng4OxkdW^>%w^fXb#_fJ1e z`3lp&^_i`^lq!|JDN5v6mJMrvk{-p|@Pd#2ONEWM%x+*ZkLTg!GL^tlKX%4Wm6>%k z_G|rR?~zy;M^F-;gow{V49^r>=6V#dOtwdh%KTcU*i>Jt=Ur#3NZJx9) z`h>O#QW{P=VrELSyaLwMLivSiDw&&N=LW=eh+SY!G`-j9jN%Y3p_bG)6GIWC5cVzW zUfOz#P?D|nq0$!>;t}Cr=fdnQsCOcMw4gU(@1j(R4duap{s$6rErq*aW(+FrGh}Dv z)p^#i_EvUA;PY9P?LnAp7I@wt?E#u$fT#bBD?X)G-8-h+T!7|%0@jkgw8!^onDd~a z`Zj(lRH#!}<(X;Jg~&ar{LpP_Wm=N4a;8!No^CZTNXG+;1yffA(-I z%!aT5BV_cDuJP~4APc0*5`66zu>5bVS7;e}>IGpnJsr^=?Y!+cuAJd~W>uCI^^vV$ z!qqUmOQ)V{GbW;_4b9*z*0C9!9#g>U-?rO{XrG8J?FEf`wP@_D^Nxp@Ie(`dicdi? zL=!bFjX}A|OYS)dZQq$!piQ(6T{L@CYr?m-zLNZOnxJD|+64l%<9>|ypnkyc_}ctN zKC6<)7xRzKznF?y@L`6%cQ*214kA--U~)#k+^H}*!L1vAFJa`(>x6$MP}KuXj7TgC zVr1g06h777d)FhwwG_<_G&nQm0uJ7!iM;`fOw~Cj(y@}LoF-0%YipYFJb8_8^Sd5>YHh>bkkC8*jaQnVvO3J%5?4qo1 z*8I^w6NC2IH}=7r%IUR6gNfhBrG~n5Jy$MwtZn``%laU!@63sArh>noHtV%`K&`r6SH19}4$V~H0s%5<$0=xWe)aNcPk81Z=}bI<|5 z@0+aA+lToLqHY~rgVSZYbcyyex3V6S_k{$VOt3@yxrNP7g(<=-!rzTP@ulFAz3e88m($zpEKJNLd%KFw9N;NBvp6s8NGGjqn6++4GfGo@-re}0|b z3eM2?zBTb6<0G3VZ$}@o@2Nqc)j&~xFXOC1XYfft#t?Igm4ixUxaUp8?KdHtz?bnU zH7LGk0iJEF=#@J$FqXz9Cdgp;>o#F`9x$tgbUuelrg#?;w){zT zfZMd5{ZTl52R5+;57^@6j#}}rxfeDp`hY+$PK?VW)%KQFW{w~NjER(mT zt}i*nnsmh`myD&eUObI-@Z;a=X@2e^Y8MXf=!`(lw(IU4Cny(ZHSMhPO5VF4Gc_Bu zTh%WTq|b@xRg{}VkEE50N>a^aHEYr01zdGDHFmgy^&%c*+BYK95o2h2Vf{gA*IUe~ z*AgvywP(|_8y0`;S(=+JJX@{710}7yCjm9iPmG|eg35Wz(*MQh6*u`M{{!8*TUoim za(!Rf$}qw*OCCcwir?9E9uHAY2ldm)QKSTxjN9?JISESvQ!Wc&eQAWSOWM(=K@Afn zV@McvRfhAdNjS_o`Ao$k$E$5Ljhb$t_4{F?SI3{Yp>c%AqJK*4(e}f&=w@xgK)txc zV&a;bzNp>DaDgYF_$I%j4h~7>Xp>JbRoXf%F4++;10Ao&*W|W8cYk}ZxjvF|5|#!w zJG*RoMZ9S*E$~J3EAb2^cK^Jl0tVx056=S6aypE8n+u{yY(?8#p4CvBj6Kme1HWV~ z9&XzR%ogF#F_yv&$9A`FZQncmkvYmukJXFO!e_if##*p7^2zHNFC}mwb??ksL~Uv) zWABjI;x#CtLSTqmgrQ9V)m0?F-JEP*mJikI**0Fq0C!T)>0326mk+XDiT~(I`SiZ3 zjj=)vA{nCAO*Cc-UH_b|vGOzekbw%9VC&0S_;2>qqe*3zw((*&nN^L+u^V;l!K2-#e#M{X&IiE>-SrBZR$qluf^ErDS?Sad&|%fpEUUN{~(0{DE)#Bcr6D8 z08&o@fc~chfN#V=KsV(&8bIe427rmF;4o92f{}4|2u5z(vUkU_uEB z_-2a|5AZSyB^5wi8l?|_B1$2ET`JT}00jmR0PuE<5Y_K3@xLLyfBSk1*ti=IU03YU zR}&rf8oC9Odi@2}+fsggHOH0F+V*%A`L4^)J?C_`-^ybZ*n1Q(CMOm2t-fyS9*&T= zTiwfh?^T3Dxgh!JP{>5#Rk9&%>}KBY-&11OjI^A8qiF9uigH++EEYM+KG}$V5PRjw zdMBtj0kSs7sIB@i|xaY2U_)y-^(vJ@rnvq zg++Lb21p=!RU-!COD}wPBxhs4+^0som`k2y-;^W-N>Zs8_ST^hgwcb-JvZcjKlY_A z_@DZKW4oB(Y7KPTSB`WG9*@UzK+J5vzWIiuIgt@(#u4t;_QcZV4WUz0`LA(%gN&uT)|P5qg*2O! z)nfM;Rxl&$BHy@97z@y~wDe0U&3cK5E7mI>lv9idQ6ce%7$HhSMs% zaMEjSUruRWE~V(*r0$j0K2X6ljerq}XI}rgd_+&wPuODea>meaPMOPzkhfKJ&XFHL zq@R8qKVlD4!o$v#ayDTUI@-CmUwOWAf6IxyMctal8I8)-^=jO;ZQ^5_{#@0<5pffB z4)pY<^Ymq%8rDa;V;dUanAy8{`ygG{`V~jl7*eFsQ!^hC(2Kcj3T4aj-(?N%muw*2 z{g66hB;i4zP)iUsXugdZDtRh1t8u>Pg(AJ^)fT-N*B|&E+-!xQ2eAwy&rdUEJ#e&A zzAiJ5I-Xvv)r#w>J954w8&UtPY4nr;ZqdVG?{C+=(D`~bx{#~9sd9@u45stZA}8uk zj;t^%FLjVl%&(9x3v=B9N%Ac-8<@72)O``CH5!Vn^X6`edu2{40sls^M*G^9CPr1} z>Pf?sW6q6{xD29vTt0IOIImZhjGcFFgP$}RDoAP#<(RMC&+4frP4o{|zeL}ut9V)p z6>3WwuG$QyCMIxUiHdpiT?!C6lwFvFIv=a3XbSlCC26Ae2tL=DWaUH9oibRAE0f9O ztXuj_NoxT_Lqrh1L4wQws(vG19G>6>fEF4qCQ!yabqkT<#O29dXVi=P|TVPWWD`7rlh?LjjcoNaJ>#_v}81^j~tN&I?;;xocnOE)1P zME-4m^(_v%SPKvN;N=$g&;a|NRQ+^%t{q^AAW7YG-5?AwzgwUTsC`M`vy_M^oNb3I zpUVDr{-*nbmA&K6#ZuyZClP_{Tb5Dv7?{D=f=zAr&9d3Sx1hj_K+#%2E>x41nXX$- z`GeQS6O@)p2SN{%BIZ+3#-b5s00vH4)--JJBI3SEmF<1`n0uZI`I-_&MDWlpY-$DK zMCHr}VQC0l>-F>z!Mic^(Mk)uBBvuGpf92XHZ;dGqSMua2(*%S5{7eWe-~ql< z!({C%Na(*?(CT&z!|mIA7i~sF@{Q2EZ2#hKhX~Z&@?*TRW}>{@h=ewGoPK+w_oTfBewoM%Q0+&TV)HR5Iamk%t zXw5F7dNW4>NfOj|@f;!HB%(syO!H6=)*usoRr_W0`Ce;9#515odq532!S$(^5gOT; zRr*4@&8lLZ;OR^i9PA{)-z z?mQmpxoCMdxyS(#!o2ynxZu~ovoFjP5BX^~x29=BtsKsO2sIOPn&G%0Iy(D&sZU=D z7xQmKsUl(7_h>OXKrg+BZaHd{{&8sHV>C2(!VQKV%%x`Li-xNT#^NGj-|?+_3g0k%&oLyl=TB zzhO!hfWB?#lPPwvG88Uhb@S5&A)ah3#FqNg5J5ujqw>K|T1aUqAkiv+;Ig`|M)bYM z`-?foEuY+HL*- z-!KJagsUGLMFYayvdfOb$M=827zxQ}$OsOZXel5Nj}?l6iE~F$(zmIaFXGQCEzqgu`#Pnckx$z(3i>on zWlIy@oy6&9nAPo;a{;x~dH*?T=zDzkh?i0Ip}J4HrsqnhBSXK)GSWOgMl&&DetPe4 z!g`i>OAbZ%cHiay~c0&(v2Su(N^Xtt{j{xGB~`*cP09xiP$S|u}TxDfzxRv}2F<+`(~YrR#Wr|fDW1XWYH_SKnTtTN zm0+_rqCt_LzDzA}?>MkbS2~jjo`&VHS7_B3&n6X-eTdejc_ao4E3_aDE4_yAw+gM^LL3d?OUP3 zk=#!iD#cnbMax8Hd&ryEDCdqFX}=Lr66Rz3d%t9UgQcop~s%kO*Z z0iDk-FPwE3z5#(tnsNKQ)wm@&39?&$jK~pdv}1c3{8Ch~8STYOx$n=U_&)v$OVp%$ z!o)P7kalXiQehrCzPtzAU^5vT3-D=|oW8ykzY3T-sTybrK03=YW(Ao|4?>h^ruL2; z+wRj&gS)QW1E0qac(rK$!U){D&n&1lc252upv3=^!T%t19W;P%f$*QLY&fb5AyIrFbg zykD;~uYM(oQHZ0^j?!`2MD$)z;a2WbNbkuX=Qhivk$S5>Q>H2(6w=XY$pU6(@-+_Y z{CElpbypudim+C;1+%r_plCN|HS%+jg+f(ox75HiT4z%Y{64&C+wvsBh5!KOgQ{TN zw1b;_CZ{Cky4%}0JwCs`O5tQpKkrqy<51X2cC(m)-|6+Bqvc_y@D~_b%Z^>XHF;Xo z$k2FV<&py$;G!>}Y4_)-2O-df5Exd-_JLXM_9Y5`?WVRpfBuZG_4EVhg+%kt`dS@< zK^ZHoB(8Bzg$$(t#FgFp{wD!t-;G77UM((Qh6z+W$mUx)q~2;#8d`6na=foK-H@vg zWAk*~oTyVJ#I?)a*zc|8YywRyLWUv0hxDm(=`uk{PBC~|xC^7J$ zCGv1G&&taU(uM2E+}+AS;<*{Ih=BxRKIiE<=d+rm(FLcP$w!U(%R{*@dX*_12bczK z2urTR@hv$&{^bRURwXb0&^LA33>o-Myfl)B+xK7*veX^ctvV`yV+@uXvol#?XFo$@ z4nO&zp)2 z7?LE#)UL>wF%19y^r&;$F#qH6>y!nb_qUY~?eOXVDIlCm@7kogS)U6(q8DEEX~*A> zy5GTu)iVlKK)cQ1gg!1`Jz}Z0BCzMQvF_%UJw7!l*yiDQYPvzs+zbz6F}l(NNeQr( zABCv(zA#XoiQdT{ENn>^e*1gwxM7!*I|riyeE)sOSqL=MG~&zt*B(TJA5kE`f(C^s zEI3-HhwuThbmTcL(x*;4SE0( z!30ddkf{&gC6alB14uBrN@5^@>koM~pC-jv3G}4WA!u#4EXdG*ic%`|u@}5kEO#P| z0>PTsPG*^!*pX-Lg#tK*=zt9coll4N@vx+}gH!)<*xRRB;{!9j)r_pbe`*j}F;9+U z{h$(8%7*!qoPF=lS@sh3`OiM-XTN?+XMoZB%Z-vW^+n*J3*U^M0_1o-S z;bE=z6#&y*uCloIe zM$>6@iK}IcN?xwDZZc4-0mlkg)$MOS@I=&t1w2(MMQ7&uUMrbrQV)0bOW=711XgUg zt=MNK;W1bC65eoe;ig5I=xrr=y-{4KexKa?D$zzigTKKe_=)5DQX4c*si!tcX8{b% zi-a!f3NVs>4TPq|wZhEFRcj-7OV=2b^0~-_!;=2p(M2B+qQFGlQswdBDM%1inUX$y33}hIW+H33P8+gvtTz&JaDB8KD zRE(g=F2qonIEs-sZsli6eawn~og{#vm|L^3_2D#BeOGx-enfU+)$P9Qn%mC z%Q1RF#~%u7TZE4*Y2NV~fk!8y7Fao)?7; zmeI2YDo?ozQEP{`%B!T9DZStVR@=BlPVoSb73*x>ew4)F*%Z#ZsR*E(wt))`o@G$s zz7@khc=c6Um>-ZE8BS%H3MA8y{u{&O|DEvz#>?{2H=m%Pisuw{qn{Ni$t(?CE0FNz z?*6FrfF1CV)KaVhb_dl*mae=h7Iow7E0|xC|4w9D0e+IRSI@fE^LnDr zpml?{Y{(8hxF8KoQwjb=O$m@r2Xkg#y2MUKz(l|*(q?9kgd{IMD^JR8%{-YVf)Lvs zq(zJI%XbZYGI&S$#evqo#?Af7lhJ(gwGL^n>_Ch72?S zlClVM48wMmrIHAXVupiFAI8o`&nz>rg-E0JO`mj~|Mm#))UP`=3eUM7y=y)m1PY|_hmIoJbBw6>7 zXF%gM_6&z8-jk7D=Mu+(awYU-4tXx1$nyZH@O}Q7W)E*oYz`p(c@1~XUSx#*$&H%rY=fI*WwMq( zZa<7Gb%Na4v$iG<$RW(LkE0&q9LyPA^?jTAF%fF_DvakxSX^)gjPIJ^?aOaBhzU&g z9b!6iy(=y{1c7>((O{zG>iQ)W%`B(@bzAGe3cR`KYm$hT0A~jF5%P6d;O(aJfey1Y z7fLM@f{-`Sz|R8F4E7m( z^gxa@+7D;MRs%4ZUfM_ENxL#YGniTF^ZT!Wr-RYhxkt2+XWezRZz~vaazCFx@%{a? z7|rI3tu$BrkmeT0nnHv7mIx)KL$W#6&mXjK=-XU=*GUf_Wxyp>KEn%E0Obg;XCm_? z<~zcwaS(ddTiLni?Q`2yuZuk3bAl)8+;2uVC?IRV4<)Lc&-ry6iJi3lu##qDc~7F= z5#b6Qv&-)X%ayIX5z_yB-hdCY-GBoyuqh}AEGg7Q_IIvaJZydp@#@2y`8UwM$P|!X zCjCqc=~C6}-uIFE>VzLWoWOQt0;+wD`BOrxZ#}GwArFAD>}xc7%wqX-B}NPD4J|6^ zBrc#c&?&HXodz)DM+_%?^6sNY(cg7af>vXGVfE<@&pylP_O9kaZcc9h~9YIBdj@fi{WBhR2M&_?3~ z85a&jEegfT&j{McGj5=K;Y)vRzn7~rlcaAD&|Z>p9a{+*3g!*C8~kZw>~oVpkf;a- zo*_6^<}|~WkuY)IHXSnZAG%v+sU<~+ss<<1>m&Bake}B3N*U>P|Q~1x;={j8E zjoy4qi1}w<;@495Z9o4M*H9FrsiL<&bu31WUt?IKXrdZg`U~h^24)$;D~`klB`Xy;l|eOinW^WxevY7UBpQ45E#^V3N?aIt)41d@G(r@BR{@*C1pHdjb)3;#>UQVo3sUT^A`g7(NVvwffq)xP=O}E&1Bl z175GYy?0viqa^|9HV*c^IRUJdmz3IP5rSrBO+B8)ivcn&wkr%Egs9h4CCn%kL005SbX+mYNTLdNGb;&+6dCjCF8lX6?!SGnS3mwIUsbIerVmuQY z;JW+)28`LW%zTXrK%P|EAJ!BaPwz^g-jzwkzi<06H>}aHJdAqbhTXENi^o&bK3M|* zAl*QfTGzB~uAq)+~dK^9e8Q*X-%U^n4JaUl?N9Dni@ct*H|HmeOMF}DlThdWDTPxWP zBKzY;u<8l6c(&B8=pkle#kRnlfrf^$$*X4<53iCV^>BJcJA)jeuXvVwq!HfSQJr%} zij`C?2Z5e$hTLAa9BzpXSW8v&E0ydPZ4H6xID6*(j@x2*w++?PEkaogEC5$ML&3?R zi*1oq^1s%%OnK=Q@ms~hbuvJEf%)nnQ8+z*R=5tjA%4H64%ywCSEly#tOrsYCz(dO zcny4mMOFN~$*pk|)CZAx9|e%+H8y7iMb_tz_u8d+_w zl1sdkFH;?sf7y#!iF3U7NOYu>===@oV4fHe_C%Jy!27sHaDeNH3jV!2!MllZ+l~4A zS^g%@Gk-Vo(*~BU=BJb6%I#h&Z^pn9a~}O1N-Uu-zVGAdG(@V;ejDMI%HnXJQ%6hqJ)zuyuxpDlJp!wT&X6~QyQ{BnOG zOu!%WCV)YdQRZE;@fRL^Nh)Tm8KEz5{;P~&vL1y*|5tZ|wI^+PKm0g@q|m)*67(o_ zg)kjFUVdg;v!i=L%(o>Ad6p118rBq2 z&j55DzSI^XwrbGbbFHvIdu8J#pHLanBhL9l=D8hlbJ>?JWuFB7)Hs3YpdY467R@2^ zcv_@a=+}S?jwm1n0WDQ~?{S(5pH4vnwyUiw(JODD7C&~@ahfL|rV}zwMu{Lw{xI9H zGj6AQIW8y6-e93f&?6Vy%>h$=Yr_pwCLhNLYk}+xEBU93UPX%Wp71EiuO<77w^^C< zqM?ecCov|iHbO+2W1L{}W}X;%TXaz_AZ?RngM0PF5=t}!ZZ2Tavvhq%?&}InWC^%% z*S2#CLV5@P`>+{W!A|(q6tqxIX=g+XiF;(}N)Ocg>uG$O6^%iySLxpGKJ}x+?Gj72 zsmiRp90pB4FrDJI6@>Y_brp7|f)mnoEsfeqC-48a)~+k638+aYbOa5A-U8C4_ZpBU zgbvc1fb`xWASHkbN(sFPqS9-mcQh!y8VHCqLsfdHQWTbd_w3WY?(2P+d*(ZH?>A>= z&Nsj1CneIqFYzQ7B$DdZ(2(QXnC3hLfg{vGbWnMjn99c4sxwEHbGE1OFhiqZV@8`~Ng=9P9(&Or^2U&(@IoK3t>B~v( zKS9PL7dL`<#&j#2SE;M_F8m7-F!WlGMOlI+CYCh+4Xrg(7au~~FhPKL5xj?9;0`|W z%wMT&me|eSCQ&25MnH*%Ka+rF66Vg^Xff=^Zh2LA;FZ%4DMOO0?}t-DR?Ts_mu(ub zW)4gvzpR-#Y1JW|`gd_Mpgl)`cI)aR$7D51Uc$}M!&92)wgJg%WGE_N5G_KQD;Ttw9c*TvPxF`o^wHp8mf zL$dp|@Iqr^q=rOYrSh6%M(=)l&Gz=zUmlz>nxL1!)Lew{Al6boq^tTKgq+G!Y%Vv3 zDm&~-B;fc( zQ#Lkx$b|NW4|1v#{p>?7U$w}e#~k=MkxB4HVYQ920S4Xuqj$@|X~B69$MymvXmh_Ui@D-_Ia+yE2i)5b9pQpv&AS^MVP$w4D+HOJK9 zDW14P3c2ix7JtP@*HyYy3%Pf-$6|(v>=)veVRkS8H|ci2ogz~pA>`v`0)Gy`{Z?c< zl_hPcE1IX_N(g5x1Mpx;W+3v9?$~j=4G-ohcDP1g(={}03{W_ROZw)W#(B8u{mz;0 zuc4W*-Hx9MDpJ^}b@VR0k3%)9?TlV*2)0yQ@t1rd11E&0Rca zomd>Dg|u<%Hrk8Pd4^ur4T(?KPXl2n;k(t+^?wW}Efcb2bwnAvi28F3=wbW?@Xtz}UCVV!0TpE#c@o__O3eP$N| zkHx;Fr~TAZ_5SyXLNk~w4WXJ_BG=l(!_~s2a@5+O&)T_3EB}CrNA@3tS=V|UdwmVa zNbR~rXO57o^J1Tac50}Td%EW*Z$Xp3L~ab6VamIIlGq%%mCk=X@_ILjsGGcQk0s6Bgv_m0B$r8i|ni0`i(?Jb_BiB-bmQM*Wgv6qIn-%Z1bVL(NH* zwnS|C^JsF(9jCC2*mYE5D9(H)xket{&%M2V`Gn=AVj%6y4`3zWv?y9#=Be2aMqxyS zXzv;m*`nTgjl`R8Wzr6I_DdC!A*!RiETu0+6hkudzcmq4!rAQt^l(9m#wivFYdpHVAq&!0k{0ibhS0L2y?JXpwJv#ne> zMSq!RmaAQ8{%zSV7lzZPdB`Fm*;m3gM@Ev%*DL-~^K8i`xq!+TfAnyh2JI1U|I_!^4D?HCPwQCW zX{EjnevubrZRIb#*3$xkVvl5+(h6%cScJKz}25@pgtd(0V$92;P{bs@Qf96B53x$-Q|J%2GVEL3stiHy) zIP5g_8G*V_`|TxSrpk)@C)4j=G`=CUGtt(SV*L>Ks)wA1Hc%W}LOkbAeEob-;|BDg zh0MA4qU)_nQodj0ijM3WEas$?CWhhiO5F1s~e z=<(jTN{V!zq+9wu)ncj5*8jY0LU`Kq91(`LJ^pS$@Q4)0;d=ZaMSa`MZaN9FFPo(H zvd?&m%WvE}0~+w5iGZ-m`Ev&o5@2f?IGk4pRVRS8+~aEMX0Y0YS}xBY5`l82nbkL>LcU_T;AZx5qz{20#(=J={2@+* zmnHi)Hb*6dNB};5;(c5uiMwcuJDL@;owTWb^ZsT3j% zf|ft2ji;nABSzi@d~2OFe!Uo)?QV-~92sFuB@^aMs=*mMbC8qSh&~`yN)H&HqNo>F zWX|0kZV1GQllTzsXWdTTE6zmAcw#FtF(_Gw`X_ugZ3c0ysAjeIB~Ko_xTIIY&n<8- zbLBEa$Nq&6ys(e2&~4*-E5j>T_YODCP2)k{*C*uMoswTw-z!NxZXez>Io2NLQFOyyS#$fiXNPz~f&mc}deI zBJFy`uulk2&+(TH&bn;qubNaO3wV&dOpx)z#0K1o1!v}ts1F1k9d<1c;*7#;`Erbv z+B(9ch;w5IAc}`IA1SMBsHfFV!AZk!gZ2wBQO#n3`;*p?^Ex6Z^z`z9{DY-0{ko-b z1_l#*zP}W4DPIiqczHy|E(OcJuvrz&&YD)3Glk!^5nyJkRBWQPG!a~N7N!$_FN`@d zejWRgPq`p7N3ed%!TxjNq_dXvEo|wRsQxnX^hf1j!$i&P{LpgwAl!;Y-*C$fL5Z;J zi04Fn^1$i%U#6l%Sj&)`g$_~(4(*tUqR=PMQd;(kj}KhX1FwC1X6{dx0U&pGavS!` z6o5x|wrAx>%9Uv>nc2q=&e+@Pw6$aH=MXClxDVY16DQ<*d1m&Hz!4Nw*Y}_!sV#wc zPje(fY{V=#YxztGpSMWrWpLQFm#E%Qvj1}^ZcwCi*y&yGJA{@2WTxlrvR-R%bDrlc z2~vIH5X>&DSKGxsI!eF=1ld!Ew?~n!n|f-}d@h=08}XW@8Q1i1@CqPghX(5A?h!VE zp`EGb{a_#vbe+M$LAP6tNbo|N`XNmp(KP1c-T#A!Cf-Q2y!$Z8nUk4?<6AKhv>ZQ( z#wE_uL*U*4q!8z)GiJh^VOEZ1STM3zeXHw$Jh=u3B!x(?ZI5;20(Q!BWYYdkBx}KZ z1zGss34aOl*sK`sQhe|KBh?~z+t5B%>vd3zSksG%Qn1wP74g`uE)=Pn-e@LezA@&5kfDaUhL4rZ`!31UTIr99FOUIV%7dTL}uH%CG2kXrp7vk zs2{;P`cqEzyPb}I zplm?yPXO|H_mF1S+PW8>%#qshUW72*KS@>5K6VhD@zXLaY{TW4aryZL=u(iE>V_B| zY!tz)mo>z9rv;T|ZChXej|$qCU6VI=g)^oYK8PPIYZXw9V0g4XW&3pIF~tdH=gx3M zb5YN|fmPcJ**)ll^0ok;~!a8u^p#Pev6F_r(gjgcL4nI=%UPjYgrNIBJ87>pBd_;a8vc1Z=j zRPmm ze!-|OD_(e`{N4I$?jdO_*q!&co98Y=8y|k}__fMRdm?$|?i9>1HNNWS3dO2)&5!FZ z_B8eUdT7A%4P?G_@M)mWUnSH_i&o!=eE1g*!*yP~y-jtc)ZW?E_gEy$lchYcT5I%W zJ!xsGo{VM?qF`L3Dtl5ly< zuCdo#c(OpUgKkX6oz4&=S_~hqq2xn3u~_K1Q{b`)jXY{&6Hg7NePqnZkOaaj>KDpiuus-Pz&JPd`&G!f^ZDN_87`F%_h0I$8_g=C>u|SSvh3)ePi=bh*gTr>T zQI*`c?PNWPwwPCkXIh*qw={!EmBMhQ%8WfU(+^G2k~x^`sBFGmoy=@z@?dx^qhhM5 z8ipL|oTXu5hk{}3akSoEcrj#4h4W||H!hZefhZk1^Vmbh6jH%P+WPJ`L-afu$5E@^ zu$8SVo9`K*b{2Xm^EM`J%b)c~aA6mZv99v%=KVIEGQCYPiBPSK6GW8$eN*(s zysI62z7ao2jcz2fc8qbo39)u=V_&2^UlGz@L93Il=-Z$e6zvEl#98ECo4Tdc?DPFF z`48;em%Ml*T?Y$SDfa-#;*riB!1^Hv?(nH^7xzYv4Iv0a0O+wOM~**HK}mj(D`TT? zl_%+ZZRBg%y#Y*A27;z3z#MrGt-bsoToo6_y|7^r_rAaZr~M?@VsO>W@IpXdw3|eY z-8R)Z4pTI0tQfs41p6^zWLVr(c3)-tH0o`~65&XzQv1i)!Jq$jn(Yui0Yut42l;t% zL}HAX*aY$%a@(Z?GipmL((>*rr3S|xYB*vFR}6_y81YsuBNox~qF-J(*B&bjVGw>? z%tKs(bc2?ci)Kxe-9w!C3BAw0vTPwvOV780D){gH(Lt++X3^-65$BGADw;JU2$Olj zT@;3VcEsWSb^7xphGN#b4_R*itlu_S9A?F6=M8>7;Fwm%@XPoWFI|_Rs6Iv?;1OPc zO9}|m7J5=euvN(sJ^Xo1GtRF;gv+0a7tsDH+gw)sq9zld5^7eg+>oQJYYr?&VL1mJ zlWSh&0-T)I%3ovI&|}Rv zAN_fei76{RWjtG*Fx8btrSrm6*j-MNjK)y(NKW)}Yo>y}UAk~hOESZ+vpu&st)}n^ zk&XUK|F=3*p85UO4eb{VLTjaWV?C5N`ZBhY68Az5+S4YuJa&z}bIRrOTV5Cm@1MculxP0ZKYCWi z7g8;rT|Jk!gw5dlr`Yo9vQ_`nCy~_O?o|ZhsQ}+`r+gs2~A#>pKW@D6H z$YmWZw1@y$R9@ASLtw3erJTLP7~8#E_t3R~A=rEr^JKx}vKh z3a$l^wPL}FV#B^5i-Nj}1yMnHK^|e>+xPx>Gw*xnH^0xEIlu4koSFNZIRG>&S0u_p zl>oAZ5^+SJ4>K-4fl2HG477j@dZ5AO<%-zh;h`YY_x*4Bcoz_m>6Z1V7yNHh=BMQH z0FZDQC-ZZ8*)l#NThDkRu>=6C0sy0V645B1ma(c>R-lY;k8;`=_l|P%7!QBXiHh(A zz$pQcs9df%4S=cx0L(mInncD^Wo#?t3xqPxlCfuYb`D?0`(7nDCDhS}neI%TyaZbtgj~r)lPDGeIU+l{sXRdhS zUTJ2uJf5Dyk^ASTN5zhFo*-uWIOk?YhD_x6%Hv{bM6|pHVW7{%y#eyxvvdE_uYe;z zD@l(ElK0M))i3v9Pk83W$!p`M`1w!dM9cF<5}yb;XN8B#bFu>E@!Y&f`B{nVhnzSY z9yQJx+~DwWhERwGdtgBXILSVcq|BFqOujjy1!6&3x`fG=y{;4{N6538%(S<)m*tGU zRrs#=5r6;yqJDBBma_|h^$`HuFcC{G1!yb;(0nivGu{S3F92w0;Yr1LV=)}aga-=H zK^3$>4~)PZtic|f!5zH8AA%taq97h-0}s+68^kaV7Qu2Tgko3^o1g-=!%o->2jCDi z!f`kQ7vKuqfIILII-v(%LO*pJ-H$e)XV5F?9kdgDi4I_ZDPZcD0cMS{FkdVTOTbbwF}4IN!pg8} ztPX3&TCrPLC-w^aj3eL}I3~^-=Z*`)MdNt5xws{`HMk1gUR(q29PSpb3)hePhNt0m z@K$&?JO>|#Ps7i{7vjtCyYWZy=ka&&J@}6V0zsW%MsOhn5#k9MgoT7Pgsp^n!f8S~ zp_?#3BoeiVRzweC7?Deq5DST0i2I4Bh&PEn#7`szl0M0v6hKNK2}vtRWu$$ilcbxZ z=cFOB64`|8Mh+wM$qUHq$h*kRe5R^UEvdfLM5>g!mb!;}ntGr5o<^gY(!6O2Gzo1jt%i1% z_JsCHk)dd#$Wi1gE>)~lY*4(Z_?k|po6yBMbyIbYdY1Y+^+W1+)xT)yYOpm@ zG*)ZWY24Hp)SRU0t(l@(q*oVKO*4DET^+qBPXznY{v z$$b)UQqiPClOE`xI+i*SItz7n>Ri5$STQ5VeRPUr-pFTt1 zQ(vH8s((uV1yha5W@a(Vndg}O208{o22z6^25kmIhGvG*hARx~4Idj(j95mgMx{nA zM*YV6#?y=!8P^&=Fd>_;Owvs@o3xq?nwpu$nyxZ!H0?FhG~<}%o7I{g{R$HywC*vo(P8LqCp4?$gwPsuAS=U;3 z*{Iuu+N`i?w0S+ncuK;Q4O3dDe6w}3&9dEP`_N9sF4%5`U9;UgdrNzseWm?v2bx2G z!%~MPhqsPajwz1Y9Pc?XoTfRga%yq<>g?hycCK^ob1`;Fa;b9ZV5zdgS!-AqUGc6y zu1j5yyMA_ac9Xara(m-$?Vjnr&%Jl5+0>M&yQX$~7~NBdX!KM61l zNDHV9=nr%XTo`yd2p<#@v>~X2qs!rOYB>GDF2Rd~&xKG!B10-do`zb6ibI>Hq0@q= zZJhRKy2*6m^u{m<}o zhtcNI(&&~LdQ4(WP0V1dUu;QiXWW#y#c@~Swc`cxO$o$=n1tO412g?+ZkpMX=#*HP zcz2fBtogGp&DNfsHT%RI`W)_@!%6t0*ra_)!`v`#HFqGHlU$YD&-3MN=Dp;5^Go@C zDIO^$DbG_qQcF^M(>&5PruC(JrI)3@68H)#1aC8fGPY+7W`i>yS2qRzQ)b2rWH7l(*<=OVeYa+@TovZ3gz)Li<5v@6duuQKn` zyqI~1=PS<_&cC|Aa>42a&+`NFe_4oI$XnR5$Y9a(MO};8i+3zRmLxA}S!%SjU}?{? zz-4=vQq^{FB{J;UTZP;6)T#{eXy>Z&c zhEir}QR#o2TdYIbYyF5dlhk8n@t-iW>D zYFuh+_UY_fSBut4Yy0*m?!R%s??6+Xb={77_4?w2a8P>i#ji=f-aQm@sO2#0aNQA; zBUMKkM~fPeh6N4%jp>b@P4P|b$AXWwG`lw+{mtgLJ;x1>SDsKivF;@0WWmXiQ~9R` zPK!>zI+J#$yJb$x!?ST`Z=aiSuI+rt`HL3WdYfjgWwmG*oTz9$Nbi?&VbNkfxlQ+F?p1I|B>%wi$?JIYt-)X-aefM5RVn^pa z{=MG&S@+*Q$a^sKaM>gLqoT)3kISCuJgNTO;`jPa=gt#deqC3eMm~Mm&Fg;oNA4fP zJq6Eb&&r*iZ(0Aj-%ojZ`MK6b575=IGXVq)-*GJxXzq#5U*WdG2{C4Es zn)h1o_k3{t&@vD{@Z@9m$DzTZPg^2X!s8ro8Kqu{@V_tu8#2U`#%8cECY-K z;c!y`00B5qOjJer`ufM;=S-Qn0dJfGZ=99G*6;B0(AVO@%h~Jh^WWs_tGUW$ew-~% zcNjftBu8==JZdLHZo)@s#7%6{d63Jw$>ZhdGgEsfNpvqzc_Tk--kq=Cp0C=RuG7)n zNM(sRSbiu%Zp6sWfr*wmT7VxyZcJ&6&1r;3Q(7)hcy2^u5nz{@yRek@0F+moh@ zk*S4?rIeShjEtt=z|7mf%fiOU&w7%hsj_Nwf~~TFVuQVR9EHJR>niFFa6tgODdQO55GxIYn73I8C#-z*%E- z0TC*{!^&-Tgn5CE9VqjTG1Fo47f0HZ%UzH zYiR{*Ye9u7(O9c~F%v(5D_y&A<~3p6B*I#1HMe{^1V=&O_5d4F*r(fdIWoj`Q6Fa5C*dvrT}> z9869zeJWqb@LlS3VFog1vbkAebNRFL#ZtC#4#)Wmo(72JAy#I*NM(U!g;P(Weu59Dtc@Ia%g%K9{}dRPu$wjj#2>(iG|Z*>aqT zE7_X>jF(n<8Ndi*R4_uO;!eQdj{l|rfuCjwFI1*@t7+c88GyG7WQPLsm9W~eCa`GVUjVQtB(w}Uo1xFrf*UD8LA+I)5K`U%W);g>cWU!rSk}Q*u{br4pDJo5M1B9?yaq;xwW-?+R5uj=Q}VdVfbbpAeN-Bm-91q8=fO*!fQ77T;e8pb=MivX^-@yQetWsB%q02Z*8&?(SG*Q#T z5o((%@VbeeHB2-orzhclr$nwV);)*T`c81iS~mRC=FRYig`G644Z}PS{=5Cf*-E|p z^F%e|oj9vP9QOC?vE*rvYjaibcK?vWM#;^s>ZbI_xeReGrjSh-blANPW$SdQP5xFt z@(`LO_?DV)jC|=Y(luNy0>jTt5>0SOEWYqhD&$j#PyxDyq(MvQP)d8%Yeu=j`t(1r zriRq5m=5ims%s($08sGNjXtFw2XaXSSmY#9Vn?@SLqqs;67j5HNN@mbZPyg~d@Q*r z2SZ04^-88{;xCOM-)~Ey%bZ>ui61?el`w(iON06C^(%7pq zhx76;A#abXAS&r!>?Mc@l2ADRrHPcde<&TAWCSLjIjup2m_@K2-4!Ozsq{mF8UsqC z-1m51=?M7*nL))uGG<;f`#$E~Uot_)F^Zj7oF17C@UP}y?|AN067Tk<1l5nG(|R*Rk&A~UZ7v7U+p7z9{omh#FSOjAw=iLjHP2%W6>4vk+ z4DQgGQ7AkVK^Y4Cf8Hyq8p91aK-F3& zg(kUTpjA!NJk#<(#b3->OzH0tXN68v9{m%wp8h)8a8VKtb8|oOCG)YxvRifz_RxU7YFtw_@QK`yVGFNV} zHr&ylHSnGqqJIMoi$Li9D2ijfcfXG`c2Q@AWvvP(;?NW{xw< zB-N>wQt0^h_{44sneQiyPs)GHDonp9e6d+d`qk&EyWX&YeyWW1J2WkH84H!?(Z(rb zK5;imFAeOSGGB39&ptYnlg)SkoAQqGIICCTrf{w>K%sYu(}~ZUHa*cOc?o{L<+$Cx z>36Pl8^BD>{GJ)E3Di*1@S7B!;4i)`@+(R$>Lk9wWiO(Yz|h)kRL%IorX%cqR)LSU?L zo@(xs$+k2f=ngBKbgZ+b%dLAK9e$2_7N{R#IA}OmH)u9~CSx2uAMMR1nZm$fr*98~ znc2bXx~%+CHB)TZI~#kvWQL*$SS@w=Nq66{vF<+6A)yOWeNwLG11#6ti-Er%Kit$h zHuUa){Mkuz8qH3+_$HNvpn9#c`5|#xbxZtPg|hKtvQ)| zg63@rhDx+br*NWIajTWeNN>HXjdO0MYt@ne;B7Q13VW8LRZ~vOuIuT|`zECU_Ih>! z6W5Ljm+8IzaR-&z*hZlyJ|pku6_4IaS@-*?t3-izr<~?3?}Hx4u_IRR;#IrOw*l8C zau#wsz^C?=d;RNGu|Yr13zzwK4?hY96yrv6c16pcme;TERCdN*8Gkj_&6O1km>WI# zdMkHK(+fn0+ro!)4#cbX8cu*KqzLbgzCWZu4jB%p3CUC0gUz(V`K;UuxU+eIW_I;l z=fP`pIpf;knQp&rmnj_J)8WbCqfTX%YWNRV?!4UL3H` zh8lyq=AsDzyiim7q$TtG{5-$9ThaU{v9KMIRJ*;8%&O=qYaHG`I@{PjJUzei35p#V zoBZM#a&UM|$|(ARh=o;9*~TTXp`|>|1(%NzK3rqPe55qh}~B zx9k{s9-ms^3=UV&vMz=V4Nt7*4$f<2w^DvB1~_F_AXa?pN0jZpFR$K6>%xba<$ae@XytujvPjAq6N$nh(t8Ir5AeIa31`Itjb=}e$ zdnRIXnjuZ265nBgiM6iKQvdksxV#p`?0V!*883rMF zw0{qX|1KJXCloLNK7!2X3)MztGiZR@Qf*eNBcjj*0Ij$>*f#jQ@lk#Ct-k40;km;B6q!d-^t8Xvcy^h|GWv>E&;>J$o;zMOdY~p~>Q?#C}{Q zPtw9cY=DEJ%`$i_Q`|%g+Ru=KU%2bXWFozI=Ak0v3Zmw0CnA{z9I(fgx zJT;IzVLY*zV#(jA49d`dye@&79_pLAXGl;Qtqe2Q4EIGpyh1YYDcg_r_hVElXP!K# z3rFN7HciMam8^DsBxtR_f4dElDYw8f<6LiPif&UP2txNLuh%8Go1P@^L98-|#IU); z??b0QC#unF&5N}`dj|t!TxG5W$->==w=If^+w1I)76pH8YBI1Sr*duAKIkK)hSg$s zjp~diA}x-&q6jiC-e@%7PcK1!n7W0D6(k~wN^YcD5R}x)HG<9QoKq>*+Ip))Bq4-9bI)EI`V<~Kho~auDO_*paA~r zM8voojq~9Ldv_(Bbx}(Ecx;BI00eEd#nf`i#@^q9$JPNWJC;&8qc5Sv>jj>?e%{xP}Me4UKr%c><5p+B2?>#Gt-87KF zv~-v52f-3jfKnz7LqLgT0AIdn5VdNT0tykL-QA=_v4x3Wt6}l7EUGdzJCLP*Ne%IZ zem1?;=qY;c&JW&Y6~>AaR|Ic0%~_dbBCg^KG|GKZUSms0wc^Q@k*)TY_+>Vhertz+^PCp%8W72_+diYo6z4{sDPRIqqHgVrI-RJ+nE3Q^@^uyM2bCNmk}gp+sv* z)yd>oL(Q0=fAh0~Tt}&K3*k4GfhGYF{i_Xo;IQuprQ5D=J?ST&eC-8n3iH#o%M>c2 zQ+XYet{axBEZNT;ppuTmDPQbygKi~dQw5T1-V-|QjE0NM6O~RcO@)Qa5`&Sgoi%y! zLZ-_4V{&1gz9~`ewSH(ai`gJnv@Wj~6$88E5 z);gT+0)11GT;1Xg`Dl^XpRp=Q{X4)NZeqBOCu3tWwNru_RHI@dH%&|6&M#DNZ!

  • JRon%;$3GN&`44m3o2j#cJ9P-3=`Q#A-p=NZ!pMNe~w9swaVz z%!BIu7W~2!Y#L0Bjki$)`5PiZP#NJmXN}g027FD?Z~mhDWe~Li(MHWE=2tA=54ruf3>D zQpl!QRB93QBGF+G>5ylaoix$$j5DQ&l}5wrL>fU3ZyIEb^4K<6{UNFWO!6XM4hMWO z&hS$US(Um}8`ci{h0#?d#cq#OFNbQVq~T${(rUc^moDSGLgyizl2(3koRZoESfBo{ zTOJjq({E!ZOJ{4`Gs!ofw5I<4&>|?xijA=D^+DKLK-akkAIeI*<;tiPg{YKfRetk% zG4Y4|&W)n**Yfop{QUzvM@Ld|m&8M=lP|f;{3NoeQAlTtJI4B<{y^13u8~uO{mu9UAzh1ph;8!YT-x zjbF{3e=0uW_SO@OPx>A}qbOJxg&C;l17PxDcs0uT*f2=D_+L|~rnWFXz8sPn*)Za; zVe;5q8GGdtRXL*yG-S}Ix`wpf7eqGwI0(p4>7lK9>dfZ@qvY4Nu z^%Ecy0(X6>|Gd+ie<}fSj-(W8M|XK5xH@W{ zfUP`qr1Pl7%DDA10=QTC2Txak0@Nb{xEV4PC<1n*i0Ku43dpQb!VaO6nzv$-JS_kx zWPOI>>fE&3tuhuVPwr**>$i?RKbP9YG>lOPQ!6g+aA0zX=5G4%h>%AWI5u3{K`fJV z*-EL-j+leen~OlEDdHM~0H$lCOmH*6fEhjSv+N$>DY%zz62r`eu=mgMnU%?Qu|Cxp z2V~ZmeN{bWB2*|Xsl*F#s#~#Y!YG7j$pR#2ddU3% z#6c;4S)%A=LGAqw`xX!E_=Y`G95h<&+A zE3&3$Z}Gem)z79*9O5c$$E{Kw1Cie(S$80JW2O5jvs3%cfzN(ufll@*7yo_O70yO? z!>8nu4O~^D&QDu}krhmXPT3f_a+a^ zD%V$!qh2kkG^h&BIVS;ME5A=T+?=*IHpP+q$J%?!X8;${S4QWms5cL-;R2KGPNh;o zl(j=%Ef2L}do(rKvE8ZK&pRVE$pbi1r{EVM9MVuqUF5H=e(=)w?oBv!{O?^uMrf5Pkp(wzgjB?3!xJkbkp{l3Y^7$A&R0Ulz#Tpq5e zd>Q+ugLnrB{AOFLci4zsZS1UG2g<%mAnwinCj8l-kDzHHe=J!jVJb54==Z;aOQ)aC z6a&0Vc=&23`a?K)6js87R395t?^t{uqxakdpU9hLOk3-VxVD6+A_qDc0zZFsUdV55 zO2%)XXx07BsI=#nC!J;>Miu;%dixy}vGanc=0a(;wDXea>}05|a1!rL%hLkh+tnCq zoO<>J+cN2kp65BSD44 zB9@7Ic0WEXTz^ns*BJ6;ThUh6Su-8U?^k@Kno_5Od@kQwaLDN7VlBiP9}3Y?ME^uX zLF0QIje_juD2hm^ENVvgFFT=LiqQ@8y#@^9B4)@$Cv@-j2;3vsr_69KzqU|v2Tf5^ zIM5(J{OT179^6tB@@&tXC9cwBaA027rAjxrz{s2-A=6v5z0etPuYm45526MANy7UB z7dpn)A{TypUx|%=D;j&EyYLh-ZdVzV@-az@5t+ejU?{NRiJuIRevv#4h~YZUxFGpw zZDkevf!8KfBl%|J%tLA%H6!`;XzJvQ^EwxrC&m0f{WI+qh%k1Q@!fa9lPxGsbS}k| zE$WDw^I|XJPzYN*Hg`J91^=aG46I=%IjE7u_b69_UZM`Wl39xOmFTG8pM2pL7H?5G z;j>eZE`k3vBHe7op$vOXyy5P<#gy%qgUuvhxd44POxPL4I@Hev$xDM5G5 zx2RcFne?FWo?9QV=$H$#TuSY}JhsP|=D%bZsoR_jNEfm-2(hj1a^FUr;m1?{>SKp$ zp}*h#@+G*;jHfzpGL^Ef#U5u$NM~mAJBR(jzs_nV&qN#nhm#L&G3;|LgxY&L6PVd2 zjz!LA#`xLZxfE624edIW%9;v9G;lf|1gxs-d<%iA@KHgS)Q-qVd?%jCJ-wiwS*ckc z(7~&G_8sKtI7{SI#9q-|Y~;IceMsW#Ao5k*DVhw9E8bM1BtRzpcJVe=#V9HiJVv+b zMJ%ZEX!COqRcO=KyOvG&JH0bS^Wwqapw|ra<3aHu$*$Xn`fOyc(B^NzpEW&a&AbIX z!J{cW9l$!4i}5i$LPaRv0@pplHolwia$h_wu59V;hXWH})CvcKFeS~i(LixmzE>2L zr)JgBx_thL5s`buu6y74ZF{@eEq%55DBg>X`9B1;a(ySpexmM2Ge^O!{zV@^=S z*S?!}hmKu$al$_EtK1OTi)W8Q?@`hKd Date: Wed, 29 Oct 2025 12:01:48 -0400 Subject: [PATCH 16/17] Apply suggestions from code review Co-authored-by: andy-stark-redis <164213578+andy-stark-redis@users.noreply.github.com> --- content/operate/rc/databases/active-active/manage-regions.md | 2 +- content/operate/rc/databases/configuration/sizing.md | 2 +- content/operate/rc/databases/connect/_index.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/operate/rc/databases/active-active/manage-regions.md b/content/operate/rc/databases/active-active/manage-regions.md index 9e73dc6e65..afce64d723 100644 --- a/content/operate/rc/databases/active-active/manage-regions.md +++ b/content/operate/rc/databases/active-active/manage-regions.md @@ -5,7 +5,7 @@ categories: - docs - operate - rc -description: Shows how to add and edit regions for an Active-Active deployment. +description: Learn how to add and edit regions for an Active-Active deployment. linkTitle: Manage regions weight: 10 --- diff --git a/content/operate/rc/databases/configuration/sizing.md b/content/operate/rc/databases/configuration/sizing.md index ea031b3e16..04cba5cacf 100644 --- a/content/operate/rc/databases/configuration/sizing.md +++ b/content/operate/rc/databases/configuration/sizing.md @@ -24,7 +24,7 @@ Here are some general guidelines: - [Replication]({{< relref "/operate/rc/databases/configuration/high-availability" >}}) doubles memory consumption; that is, 512 MB of data requires at least 1 GB of memory limit when replication is enabled. This affects both Redis Cloud Pro and Redis Cloud Essentials. For example, if you subscribe to a 1 GB Essentials plan, Redis will allocate 512 MB for your dataset and the other 512 MB for replication. -- [Active-Active]({{< relref "/operate/rc/databases/active-active" >}}) also doubles memory consumption and the effect is cumulative with replication's impact. Since Active-Active requires replication to be turned on, the memory limit impact can be as large as four times (4x) the original data size. +- [Active-Active]({{< relref "/operate/rc/databases/active-active" >}}) also doubles memory consumption and the effect is cumulative with the impact of replication. Since Active-Active requires replication to be turned on, the memory limit impact can be as large as four times (4x) the original data size. - [Advanced capabilities]({{< relref "/operate/rc/databases/configuration/advanced-capabilities" >}}) also consume memory. For search databases, consider index size when you size your database. See [Search and query sizing]({{< relref "/operate/rc/databases/configuration/advanced-capabilities#search-and-query-sizing" >}}) for more info. diff --git a/content/operate/rc/databases/connect/_index.md b/content/operate/rc/databases/connect/_index.md index a71310311d..7c58b774e0 100644 --- a/content/operate/rc/databases/connect/_index.md +++ b/content/operate/rc/databases/connect/_index.md @@ -24,7 +24,7 @@ Once you have the username and password, select **Connect** to open the connecti {{< image filename="/images/rc/button-connect.png#no-click" alt="Connect button." >}} {{< note >}} -For [Active-Active databases]({{< relref "/operate/rc/databases/active-active" >}}), you connect to one of the database instances. Select the region you to connect to from the region selection to access the connection information for that instance. +For [Active-Active databases]({{< relref "/operate/rc/databases/active-active" >}}), you connect to one of the database instances. Choose the region you want to connect to from the region selection to access the connection information for that instance. {{< /note >}} The connection wizard provides the following database connection methods: From 5baa0a81c797dd0eaf7114ea679c357f878e7cf8 Mon Sep 17 00:00:00 2001 From: Cameron Bates Date: Wed, 29 Oct 2025 16:55:20 -0400 Subject: [PATCH 17/17] suggestions --- .../active-active/create-active-active-database.md | 4 ++++ .../operate/rc/databases/active-active/manage-regions.md | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/content/operate/rc/databases/active-active/create-active-active-database.md b/content/operate/rc/databases/active-active/create-active-active-database.md index 5f6020b616..5438ca0267 100644 --- a/content/operate/rc/databases/active-active/create-active-active-database.md +++ b/content/operate/rc/databases/active-active/create-active-active-database.md @@ -97,6 +97,10 @@ In the **Advanced options** section, you can: - Set your [maintenance]({{< relref "/operate/rc/subscriptions/maintenance" >}}) settings in the **Maintenance windows** section. Select **Manual** if you want to set [manual maintenance windows]({{< relref "/operate/rc/subscriptions/maintenance/set-maintenance-windows" >}}). +{{< note >}} +Multi-AZ replication is required for all Active-Active databases. +{{< /note >}} + When finished, choose **Continue** to determine your size requirements. {{Select the Continue button to continue to the next step.}} diff --git a/content/operate/rc/databases/active-active/manage-regions.md b/content/operate/rc/databases/active-active/manage-regions.md index afce64d723..76704d82f6 100644 --- a/content/operate/rc/databases/active-active/manage-regions.md +++ b/content/operate/rc/databases/active-active/manage-regions.md @@ -36,17 +36,17 @@ To add a new region to an Active-Active deployment: Select **Continue**. -1. In the **Throughput** step, enter the desired read and write throughput for the new region. - - {{The Throughput step.}} +1. In the **Throughput** step, enter the desired read and write throughput for the new region. You can also select **Set throughput as existing region** to duplicate the throughput settings from an existing region. + {{The Throughput step.}} + 1. Review the required resources and updated price for the database in the **Required resources** step. {{The Required resources step.}} - Select **Continue** to add the region to your Active-Active deployment. +1. Select **Continue** to add the region to your Active-Active deployment. Redis Cloud will provision the new region in the background and add it to all databases in the subscription. You aren't allowed to make changes to the database settings while this process is running.