From f493c13f9299e2152d7b5e29eea06495a2cb7987 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 28 Oct 2024 08:23:45 +0100
Subject: [PATCH 01/39] build(deps-dev): bump sorbet-runtime from 0.5.11615 to
0.5.11618 (#35430)
Bumps [sorbet-runtime](https://github.com/sorbet/sorbet) from 0.5.11615 to 0.5.11618.
- [Release notes](https://github.com/sorbet/sorbet/releases)
- [Commits](https://github.com/sorbet/sorbet/commits)
---
updated-dependencies:
- dependency-name: sorbet-runtime
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index c1b7d1f0de7..e495ed04013 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -150,7 +150,7 @@ GEM
rack-protection (= 4.0.0)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
- sorbet-runtime (0.5.11615)
+ sorbet-runtime (0.5.11618)
stringex (2.8.6)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
From 60db68cfd045c1d3868a76f328517106c8c75194 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 28 Oct 2024 08:24:04 +0100
Subject: [PATCH 02/39] build(deps-dev): bump json from 2.7.3 to 2.7.4 (#35431)
Bumps [json](https://github.com/ruby/json) from 2.7.3 to 2.7.4.
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](https://github.com/ruby/json/compare/v2.7.3...v2.7.4)
---
updated-dependencies:
- dependency-name: json
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index e495ed04013..f833b835f9d 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -66,7 +66,7 @@ GEM
nokogiri (~> 1.12)
jekyll-watch (2.2.1)
listen (~> 3.0)
- json (2.7.3)
+ json (2.7.4)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
From c32e72dda870701fde40f2af03780ca90d9aa0b7 Mon Sep 17 00:00:00 2001
From: Artur Pragacz <49985303+arturpragacz@users.noreply.github.com>
Date: Mon, 28 Oct 2024 08:29:28 +0100
Subject: [PATCH 03/39] Add config flow to Onkyo (#35399)
* Add config flow to Onkyo
* Fix formatting
---
source/_integrations/onkyo.markdown | 128 ++++++++++------------------
1 file changed, 43 insertions(+), 85 deletions(-)
diff --git a/source/_integrations/onkyo.markdown b/source/_integrations/onkyo.markdown
index 0898ebbcc54..d56f1c86a8f 100644
--- a/source/_integrations/onkyo.markdown
+++ b/source/_integrations/onkyo.markdown
@@ -3,93 +3,51 @@ title: Onkyo
description: Instructions on how to integrate Onkyo and some Pioneer receivers into Home Assistant.
ha_category:
- Media player
-ha_release: 0.17
-ha_iot_class: Local Push
+ha_codeowners:
+ - '@arturpragacz'
+ha_config_flow: true
ha_domain: onkyo
+ha_integration_type: integration
+ha_iot_class: Local Push
ha_platforms:
- media_player
-ha_integration_type: integration
+ha_release: 0.17
related:
- docs: /docs/configuration/
title: Configuration file
-ha_codeowners:
- - '@arturpragacz'
---
The `onkyo` {% term integration %} allows you to control a [Onkyo](https://www.onkyo.com), [Integra](http://www.integrahometheater.com)
and some recent [Pioneer](https://www.pioneerelectronics.com) receivers from Home Assistant.
Please be aware that you need to enable "Network Standby" for this integration to work in your Hardware.
-## Configuration
+{% include integrations/config_flow.md %}
-To add an Onkyo or Pioneer receiver to your installation, add the following to your {% term "`configuration.yaml`" %} file.
-{% include integrations/restart_ha_after_config_inclusion.md %}
+If your receiver has second or third zone available, they are displayed as additional media players with the same functionality as the main zone.
-```yaml
-# Example configuration.yaml entry
-media_player:
- - platform: onkyo
- host: 192.168.1.2
- name: receiver
- sources:
- pc: "HTPC"
-```
-
- If your receiver has second or third zone’s available, they are displayed as additional media players with the same functionality as the main zone.
-
-{% configuration %}
-host:
- description: IP address of the device. Example:`192.168.1.2`. If not specified, the platform will load any discovered receivers.
- required: false
+{% configuration_basic %}
+Host:
+ description: Hostname or IP address of the device, for example:`192.168.1.2`.
type: string
-name:
- description: Name of the device. (*Required if host is specified*)
- required: false
- type: string
-max_volume:
- description: Maximum volume as a percentage. Often the maximum volume of the receiver is far too loud. Setting this will set Home Assistant's 100% volume to be this setting on the amp. i.e., if you set this to 50% when you set Home Assistant to be 100% then your receiver will be set to 50% of its maximum volume.
- required: false
+Volume Resolution:
+ description: Number of steps it takes for the receiver to go from the lowest to the highest possible volume. Possible values are 50, 80, 100, 200. For older Onkyo receivers, this typically is 80; newer Onkyo receivers use 200.
+ type: integer
+Input sources:
+ description: List of input sources supported by the receiver.
+ type: list
+{% endconfiguration_basic %}
+
+{% include integrations/option_flow.md %}
+
+{% configuration_basic %}
+Max Volume:
+ description: Maximum volume limit as a percentage. Often the maximum volume of the receiver is far too loud. Setting this will set Home Assistant's 100% volume to be this setting on the amp, i.e., if you set this to 50%, when you set Home Assistant to be 100%, then your receiver will be set to 50% of its maximum volume.
default: 100
type: integer
-receiver_max_volume:
- description: The number of steps it takes for the receiver to go from the lowest to the highest possible volume. Possible values are 50, 80, 100, 200. For older Onkyo receivers, this typically is 80; newer Onkyo receivers use 200.
- required: false
- default: 80
- type: integer
-sources:
- description: A list of mappings from source to source name. Valid sources can be found below. A default list will be used if no source mapping is specified.
- required: false
+Input sources:
+ description: Mappings of input sources to their names.
type: list
-{% endconfiguration %}
-
-List of source names:
-
-- `video1`
-- `video2`
-- `video3`
-- `video4`
-- `video5`
-- `video6`
-- `video7`
-- `dvd`
-- `bd-dvd`
-- `tape1`
-- `tv-tape`
-- `tape2`
-- `phono`
-- `cd`
-- `tv-cd`
-- `fm`
-- `am`
-- `tuner`
-- `dlna`
-- `internet-radio`
-- `usb`
-- `network`
-- `universal-port`
-- `multi-ch`
-- `xm`
-- `sirius`
+{% endconfiguration_basic %}
### Action `onkyo_select_hdmi_output`
@@ -105,6 +63,21 @@ Accepted values are:
which one to use seems to vary depending on model so you will have to try them out.
( For model TX-NR676E it seems to be 'out' for main, 'out-sub' for sub, and 'sub' for both )
+### Example `onkyo_select_hdmi_output` script
+
+```yaml
+# Example onkyo_select_hdmi_output script
+#
+script:
+ hdmi_sub:
+ alias: "Hdmi out projector"
+ sequence:
+ - action: media_player.onkyo_select_hdmi_output
+ data:
+ entity_id: media_player.onkyo
+ hdmi_output: out-sub
+```
+
### Example `play_media` script
The `play_media` function can be used in script to play radio station by preset number.
@@ -114,7 +87,7 @@ Not working for NET radio.
# Example play_media script
#
script:
- radio1:
+ radio1:
alias: "Radio 1"
sequence:
- action: media_player.turn_on
@@ -127,18 +100,3 @@ script:
media_content_type: "radio"
media_content_id: "1"
```
-
-### Example `onkyo_select_hdmi_output` script
-
-```yaml
-# Example onkyo_select_hdmi_output script
-#
-script:
- hdmi_sub:
- alias: "Hdmi out projector"
- sequence:
- - action: media_player.onkyo_select_hdmi_output
- data:
- entity_id: media_player.onkyo
- hdmi_output: out-sub
-```
From cda83960a4cce8e22e37ffdc510f1168b5bd7570 Mon Sep 17 00:00:00 2001
From: Galorhallen <12990764+Galorhallen@users.noreply.github.com>
Date: Mon, 28 Oct 2024 09:40:11 +0100
Subject: [PATCH 04/39] Update govee light local docs (#35400)
Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
---
source/_integrations/govee_light_local.markdown | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/source/_integrations/govee_light_local.markdown b/source/_integrations/govee_light_local.markdown
index 720b032f990..543e3305e3f 100644
--- a/source/_integrations/govee_light_local.markdown
+++ b/source/_integrations/govee_light_local.markdown
@@ -44,6 +44,8 @@ H6087,
H6088,
H608A,
H608B,
+H608D,
+H60A1,
H610A,
H610B,
H6110,
@@ -79,6 +81,7 @@ H61A8,
H61B2,
H61B5,
H61BA,
+H61BC,
H61BE,
H61C3,
H61C5,
@@ -86,6 +89,7 @@ H61D3,
H61D5,
H61E0,
H61E1,
+H61F5,
H7012,
H7013,
H7020,
@@ -104,14 +108,19 @@ H7055,
H705A,
H705B,
H705C,
+H705E,
H7060,
H7061,
H7062,
H7063,
H7065,
H7066,
+H706A,
+H706B,
+H706C,
H7075,
H70A1,
H70B1,
H70C1,
-H70C2
\ No newline at end of file
+H70C2
+H70C2
From f25ef231ac7829ca8e7e8a8938be89d052a952ec Mon Sep 17 00:00:00 2001
From: Alistair Francis
Date: Mon, 28 Oct 2024 22:46:11 +1000
Subject: [PATCH 05/39] itegration: husqvarna_automower_ble: Initial commit
(#30921)
Signed-off-by: Alistair Francis
---
.../husqvarna_automower_ble.markdown | 33 +++++++++++++++++++
1 file changed, 33 insertions(+)
create mode 100644 source/_integrations/husqvarna_automower_ble.markdown
diff --git a/source/_integrations/husqvarna_automower_ble.markdown b/source/_integrations/husqvarna_automower_ble.markdown
new file mode 100644
index 00000000000..5b2c57606a2
--- /dev/null
+++ b/source/_integrations/husqvarna_automower_ble.markdown
@@ -0,0 +1,33 @@
+---
+title: Husqvarna Automower BLE
+description: Instructions on how to integrate Husqvarna Automower BLE lawn mowers into Home Assistant.
+ha_category:
+ - Lawn Mower
+ha_release: 2024.2
+ha_iot_class: Local Polling
+ha_config_flow: true
+ha_codeowners:
+ - '@alistair23'
+ha_platforms:
+ - lawn_mower
+ha_integration_type: integration
+ha_domain: husqvarna_automower_ble
+---
+
+The Husqvarna Automower BLE integration provides connectivity with Husqvarna Automowers lawn mowers via a local Bluetooth connection. This allows connecting and controlling an Automower without any accounts, cloud, or network connection.
+
+The integration is based on [AutoMower-BLE](https://github.com/alistair23/AutoMower-BLE), an unofficial reverse engineered Husqvarna Automower Connect BLE library.
+
+There is currently support for the following device types within Home Assistant:
+
+- Lawn Mower
+
+### Prerequisites
+
+1. Setup a [Bluetooth controller](https://www.home-assistant.io/integrations/bluetooth/). An ESPHome Bluetooth proxy works well and allows locating a device close to the mower.
+2. Enter the pairing mode on the mower. Different models will do this in different ways. For the 305, for example, the mower will enter pairing mode for the first 3 minutes after powering on. Ensure the mower is in pairing mode when adding the integration. This only needs to be done once per BLE controller (so changing the ESPHome device will require a repair).
+3. When adding the integration to Home Assistant, you will need to enter the mower BLE Mac address. You can find this in the ESPHome logs, on an Android phone, or by some other means.
+
+Pairing can take a few goes. Even when using the official Android application, it can be tricky to get the first pair to succeed. If you are having issues, reboot the mower and try again.
+
+{% include integrations/config_flow.md %}
From 99c25d615d4eff0098ba88e746f30cc952cf045b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 29 Oct 2024 07:37:35 +0100
Subject: [PATCH 06/39] build(deps-dev): bump sorbet-runtime from 0.5.11618 to
0.5.11620 (#35446)
Bumps [sorbet-runtime](https://github.com/sorbet/sorbet) from 0.5.11618 to 0.5.11620.
- [Release notes](https://github.com/sorbet/sorbet/releases)
- [Commits](https://github.com/sorbet/sorbet/commits)
---
updated-dependencies:
- dependency-name: sorbet-runtime
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index f833b835f9d..c8338c1340b 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -150,7 +150,7 @@ GEM
rack-protection (= 4.0.0)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
- sorbet-runtime (0.5.11618)
+ sorbet-runtime (0.5.11620)
stringex (2.8.6)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
From cc6385454f39c59883254e93eb71dfb8a45e8cb5 Mon Sep 17 00:00:00 2001
From: moritz-john <70295002+moritz-john@users.noreply.github.com>
Date: Tue, 29 Oct 2024 07:38:33 +0100
Subject: [PATCH 07/39] Fix typo in pushover.markdown (#35437)
* Fix typo in pushover.markdown
* Update pushover.markdown
---
source/_integrations/pushover.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_integrations/pushover.markdown b/source/_integrations/pushover.markdown
index cba763cf55f..f030e4a641c 100644
--- a/source/_integrations/pushover.markdown
+++ b/source/_integrations/pushover.markdown
@@ -38,7 +38,7 @@ Example Automation:
Integration-specific values in the nested `data` section are optional.
-Image attachments can be added using the `attachment` parameter, which can either be a local file reference (ex: `/tmp/image.png`).
+Image attachments can be added using the `attachment` parameter, which must be a local file reference (ex: `/tmp/image.png`).
To use a specific Pushover device, set it using `target`. If one of the entered devices doesn't exist or is disabled in your Pushover account it will send a message to all you devices. To send to all devices, just skip the target attribute.
From b08e002c85f506073c90f97d10b8e68ee6d5b139 Mon Sep 17 00:00:00 2001
From: karwosts <32912880+karwosts@users.noreply.github.com>
Date: Mon, 28 Oct 2024 23:43:12 -0700
Subject: [PATCH 08/39] Describe confirmation options for button entities rows
(#35436)
* Update entities.markdown
* tiny tweak
---------
Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
---
source/_dashboards/entities.markdown | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/source/_dashboards/entities.markdown b/source/_dashboards/entities.markdown
index 6185487a423..3b95e8e033c 100644
--- a/source/_dashboards/entities.markdown
+++ b/source/_dashboards/entities.markdown
@@ -115,6 +115,10 @@ double_tap_action:
required: false
description: Action taken on row double tap. See [action documentation](/dashboards/actions/#double-tap-action).
type: map
+confirmation:
+ required: false
+ description: For entities that display a button element in the row (for example, button, lock, script), this option adds a confirmation dialog to the press of the button. See [options for confirmation](/dashboards/actions/#options-for-confirmation) for configuration options.
+ type: map
{% endconfiguration %}
## Special row elements
From f3b819b99630d67c6f53f7d38d0f525737bd9f28 Mon Sep 17 00:00:00 2001
From: unfug-at-github <65363098+unfug-at-github@users.noreply.github.com>
Date: Tue, 29 Oct 2024 09:31:17 +0100
Subject: [PATCH 09/39] Changed behavior of statistics introduced with #129211
(#35410)
* Update statistics.markdown
Describe changed behavior regarding state report events introduced with #129211
* Update statistics.markdown
updated according to review comments
---
source/_integrations/statistics.markdown | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/source/_integrations/statistics.markdown b/source/_integrations/statistics.markdown
index be5fbd05c84..d4cbca66c65 100644
--- a/source/_integrations/statistics.markdown
+++ b/source/_integrations/statistics.markdown
@@ -20,14 +20,19 @@ ha_config_flow: true
The `statistics` integration observes the state of a source sensor and provides aggregated statistical characteristics about its recent past. This integration can be useful in automation, for example, to trigger an action when the air humidity in the bathroom settles after a hot shower or when the number of brewed coffees over a day gets too high.
-The statistics sensor updates with every update of the source sensor, for which the numeric `sensor` and `binary_sensor` are supported. The time period and/or number of recent state changes, which should be considered, must be given in configuration. Check the configuration section below for details.
+The `statistics` sensor can use either the numeric `sensor` or `binary_sensor` as it's input. The time period and/or number of recent state changes, which should be considered, must be given in configuration. Check the configuration section below for details.
Assuming the [`recorder`](/integrations/recorder/) integration is running, historical sensor data is read from the database on startup and is available immediately after a restart of the platform. If the [`recorder`](/integrations/recorder/) integration is *not* running, it can take some time for the sensor to start reporting data because some characteristics calculations require more than one source sensor value.
{% tip %}
-The `statistics` integration is different to [Long-term Statistics](https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics). More details on the differences can be found in the [2021.8.0 release notes](/blog/2021/08/04/release-20218/#long-term-statistics).
+The `statistics` integration is not the same as the [Long-term Statistics](https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics). More details on the differences can be found in the [2021.8.0 release notes](/blog/2021/08/04/release-20218/#long-term-statistics).
{% endtip %}
+The `statistics` sensor has an internal buffer that stores the values it needs for the computation of the various functions (for example, `average_step`). The sensor is updated whenever new values are added to the buffer or when elements are removed. This is triggered either by a change of the source sensor (which may or may not change its actual value) or by values expiring (in cases where `max_age` was specified). This means that the buffer can hold a sequence of identical values in cases where values are not changing over time.
+
+When using a time-based buffer (by providing a `max_age`), it is recommended to ensure that the buffer contains at least a decent number of values spanning the full range of time. For sensors that don't change much, this can be achieved by using a template sensor with a time-based trigger as input. If the input values don't cover most of the time range, the computed output values could lead to unexpected results.
+Example: To find out whether a switch was used in the last 5 minutes, `count_on` could be used. However, if there are no frequent readings a single "Off" (maybe only a second ago) in the buffer would produce 0 even though the sensor was "On" for most of the last five minutes.
+
{% include integrations/config_flow.md %}
Further information about these configuration options can be found under the [YAML configuration](#yaml-configuration)
@@ -61,8 +66,8 @@ The following are supported for `sensor` source sensors `state_characteristic`:
| State Characteristic | Description |
| -------------------- | ----------- |
-| `average_linear` | The average value of stored measurements under consideration of the time distances between them. A linear interpolation is applied per measurement pair. Suited to observe a source sensor with frequent, non-periodic sensor updates and when continuous behavior is represented by the measurements (e.g. your electricity consumption). WARNING: This type of average may show unexpected behavior in cases where values remain stable (e.g. an equally spaced sequence of t1:0 -> t2:0 -> t3:0 -> t4:0 -> t5:10 would produce an average of 5 instead of 1,25 because the non-changing zeros in the middle (t2 to t4) are being filtered out by Home Assistant and so the actually computed curve already starts rising at t1 instead of staying flat until t4). Accordingly, this function is only making sense in the context of noisy sensors that keep changing constantly. |
-| `average_step` | The average value of stored measurements under consideration of the time distances between them. LOCF (last observation carried forward weighting) is applied, meaning, that the old value is assumed between two measurements. This is a better fit to how Home Assistant deals with constant values (compared to the linear function) and it is also better fitting to sensors that are switching between stable phases (e.g. a heating level set to either 1, 2 or 3). WARNING: Even when a time interval is specified by the max age parameter, the average is not necessarily matching the average over that whole interval (e.g. when values were removed due to the sampling size limit). |
+| `average_linear` | The average value of stored measurements under consideration of the time distances between them. A linear interpolation is applied per measurement pair. Suited to observe a source sensor with frequent, non-periodic sensor updates and when continuous behavior is represented by the measurements (e.g. your electricity consumption). WARNING: This doesn't compute the exact average over the full interval defined by `max_age`. It will only consider the interval between the first and the last value in the buffer. |
+| `average_step` | The average value of stored measurements under consideration of the time distances between them. LOCF (last observation carried forward weighting) is applied, meaning, that the old value is assumed between two measurements. This is a better fit to how Home Assistant deals with constant values (compared to the linear function) and it is also better fitting to sensors that are switching between stable phases (e.g. a heating level set to either 1, 2 or 3). WARNING: This doesn't compute the exact average over the full interval defined by `max_age`. It will only consider the interval between the first and the last value in the buffer. |
| `average_timeless` | The average value of stored measurements. This method assumes that all measurements are equally spaced and, therefore, time is ignored and a simple average of values is computed. Equal to `mean`. |
| `change_sample` | The average change per sample. The difference between the newest and the oldest measurement is divided by the number of in-between measurements (n-1). |
| `change_second` | The average change per second. The difference between the newest and the oldest measurement is divided by seconds between them. |
From 05691ea904ff020b63c238187aa6acc497533301 Mon Sep 17 00:00:00 2001
From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
Date: Tue, 29 Oct 2024 11:29:03 +0100
Subject: [PATCH 10/39] Integration instance remove (#35449)
* Add steps on removing an integration instance
* Revert changes
---
.../_includes/common-tasks/remove_device_service.md | 13 +++++++++++++
source/common-tasks/general.markdown | 4 +++-
2 files changed, 16 insertions(+), 1 deletion(-)
create mode 100644 source/_includes/common-tasks/remove_device_service.md
diff --git a/source/_includes/common-tasks/remove_device_service.md b/source/_includes/common-tasks/remove_device_service.md
new file mode 100644
index 00000000000..886175a11c5
--- /dev/null
+++ b/source/_includes/common-tasks/remove_device_service.md
@@ -0,0 +1,13 @@
+## Removing an integration instance
+
+If you no longer want to use a device or service in Home Assistant, you can remove the integration instance including the device or service with all its entities.
+
+The following steps describe the general steps needed to remove an integration instance. Depending on the integration, additional steps can be needed, such as resetting the device or to delete credentials. Refer to the integration documentation to see if additional steps are needed.
+
+### To remove an integration instance from Home Assistant
+
+1. Go to {% my integrations title="**Settings** > **Devices & services**" %} and select the integration card.
+2. From the list of devices, select the integration instance you want to remove.
+3. Next to the entry, select the three-dot menu. Then, select **Delete**.
+
+ 
diff --git a/source/common-tasks/general.markdown b/source/common-tasks/general.markdown
index 324c38ddaeb..f6479020755 100644
--- a/source/common-tasks/general.markdown
+++ b/source/common-tasks/general.markdown
@@ -22,4 +22,6 @@ Creating an automation for polling gives you more flexibility on when to poll:
1. Not all integrations have a configurable polling interval. The homeassistant.update_entity service, on the other hand, works with most of the integrations; no code changes are required.
2. An automation allows you to poll whenever you want. For example, if you have a rate-limited solar panel provider with a maximum number of requests per day, you may want to lower/stop the polling at night but poll more frequently during the day.
-{% include common-tasks/define_custom_polling.md %}
\ No newline at end of file
+{% include common-tasks/define_custom_polling.md %}
+
+{% include common-tasks/remove_device_service.md %}
\ No newline at end of file
From 7a2b126496f095d47d1fe16822c7252bdcd84980 Mon Sep 17 00:00:00 2001
From: karwosts <32912880+karwosts@users.noreply.github.com>
Date: Tue, 29 Oct 2024 05:56:10 -0700
Subject: [PATCH 11/39] Update map.markdown
---
source/_dashboards/map.markdown | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/source/_dashboards/map.markdown b/source/_dashboards/map.markdown
index e955f788317..d30f3b0fb7d 100644
--- a/source/_dashboards/map.markdown
+++ b/source/_dashboards/map.markdown
@@ -58,11 +58,11 @@ type:
type: string
entities:
required: true
- description: List of entity IDs or `entity` objects (see below). Either this or the `geo_location_sources` configuration option is required.
+ description: List of entity IDs or `entity` objects (see [below](#options-for-entities)). Either this or the `geo_location_sources` configuration option is required.
type: list
geo_location_sources:
required: true
- description: List of geolocation sources. All current entities with that source will be displayed on the map. See [Geolocation](/integrations/geo_location/) platform for valid sources. Set to `all` to use all available sources. Either this or the `entities` configuration option is required.
+ description: List of geolocation sources or `source` objects (see [below](#options-for-geolocation-sources)). All current entities with that source will be displayed on the map. See [Geolocation](/integrations/geo_location/) platform for valid sources. Set to `all` to use all available sources. Either this or the `entities` configuration option is required.
type: list
auto_fit:
required: false
@@ -134,6 +134,22 @@ focus:
type: boolean
{% endconfiguration %}
+## Options for geolocation sources:
+
+If you define geolocation sources as objects instead of strings (by adding `source:` before the ID), you can add more customization and configuration.
+
+{% configuration %}
+source:
+ required: true
+ description: Name of a geolocation source, or `all`.
+ type: string
+focus:
+ required: false
+ default: true
+ description: When set to `false`, this entities of this source will not be considered for determining the default zoom or fit of the map.
+ type: boolean
+{% endconfiguration %}
+
## Examples
```yaml
@@ -150,6 +166,8 @@ entities:
type: map
geo_location_sources:
- nsw_rural_fire_service_feed
+ - source: gdacs
+ focus: false
entities:
- zone.home
```
From a08e6448a3cf82f27f8429482a1d797715b14c23 Mon Sep 17 00:00:00 2001
From: Petar Petrov
Date: Tue, 29 Oct 2024 15:40:15 +0200
Subject: [PATCH 12/39] typo
---
source/_dashboards/map.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_dashboards/map.markdown b/source/_dashboards/map.markdown
index d30f3b0fb7d..eadd522b5a6 100644
--- a/source/_dashboards/map.markdown
+++ b/source/_dashboards/map.markdown
@@ -146,7 +146,7 @@ source:
focus:
required: false
default: true
- description: When set to `false`, this entities of this source will not be considered for determining the default zoom or fit of the map.
+ description: When set to `false`, the entities of this source will not be considered for determining the default zoom or fit of the map.
type: boolean
{% endconfiguration %}
From 34e65a9541c83d57915c59d00a96f3387df799b7 Mon Sep 17 00:00:00 2001
From: Darren Griffin
Date: Tue, 29 Oct 2024 16:28:35 +0000
Subject: [PATCH 13/39] Add GitHub's top public project by contributors in 2024
badge (#35458)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Add GitHub's "Top open source project by contributors in 2024" badge 🎉
* Added fragment identifier
---
sass/homeassistant/_overrides.scss | 30 +++++++++++++++++-
sass/homeassistant/homepage/_hero_unit.scss | 7 ++--
source/_includes/custom/welcome.html | 12 +++++++
.../github-top-project-2024-desktop.png | Bin 0 -> 175230 bytes
.../images/github-top-project-2024-mobile.png | Bin 0 -> 289534 bytes
5 files changed, 45 insertions(+), 4 deletions(-)
create mode 100644 source/images/github-top-project-2024-desktop.png
create mode 100644 source/images/github-top-project-2024-mobile.png
diff --git a/sass/homeassistant/_overrides.scss b/sass/homeassistant/_overrides.scss
index 3d289b8accf..186de47ee16 100644
--- a/sass/homeassistant/_overrides.scss
+++ b/sass/homeassistant/_overrides.scss
@@ -888,6 +888,35 @@ dt:hover a.title-link {
}
}
+.hero-github-badge .desktop {
+ display: none;
+ max-width: 658px;
+ width: 100%;
+}
+
+.hero-github-badge .mobile {
+ display: block;
+ max-width: 420px;
+ width: 100%;
+ margin-bottom: 2rem;
+}
+
+// after 768px, show desktop, hide mobile
+@media only screen and (min-width: 1025px) {
+ .hero-github-badge .mobile {
+ display: none;
+ max-width: 385px;
+ }
+
+ .hero-github-badge .desktop {
+ display: block;
+ }
+}
+
+.hero-buttons {
+ margin-bottom: 0;
+}
+
.hero-buttons a {
margin: 0 30px 10px 0;
@@ -896,7 +925,6 @@ dt:hover a.title-link {
}
}
-
// Article formatting
article.post,
diff --git a/sass/homeassistant/homepage/_hero_unit.scss b/sass/homeassistant/homepage/_hero_unit.scss
index 758a3622f8e..e288652a7c6 100644
--- a/sass/homeassistant/homepage/_hero_unit.scss
+++ b/sass/homeassistant/homepage/_hero_unit.scss
@@ -14,7 +14,7 @@
max-height: 1080px;
height: 100vh;
align-content: center;
- min-height: 720px;
+ min-height: 840px;
// scroll-snap-align: start;
color: $white;
@@ -86,11 +86,11 @@
// animation-iteration-count: infinite;
// animation-direction: alternate;
- @media only screen and (max-height: 720px) {
+ @media only screen and (max-height: 840px) {
border-bottom: 0;
margin-bottom: -8px;
border-radius: 48px 48px 0 0;
- height: 640px;
+ height: 750px;
}
@@ -126,6 +126,7 @@
@media only screen and (max-width: 760px) {
.hero {
+ min-height: 940px;
.flex {
flex-direction: column;
}
diff --git a/source/_includes/custom/welcome.html b/source/_includes/custom/welcome.html
index a3f3f9e08f4..b6e3a3ebe08 100644
--- a/source/_includes/custom/welcome.html
+++ b/source/_includes/custom/welcome.html
@@ -19,3 +19,15 @@
View live demos
Browse {{ tot | minus: 1 | divided_by: 100 | round | times: 100 }}+ integrations
+
+
+
+
\ No newline at end of file
diff --git a/source/images/github-top-project-2024-desktop.png b/source/images/github-top-project-2024-desktop.png
new file mode 100644
index 0000000000000000000000000000000000000000..2d2bc6dcf014457881f892aaa276cdc53758b629
GIT binary patch
literal 175230
zcmV(tKsxOvE}Wcm_TFdM|F{4D|Nj3!!2aL=%OBe>
zg8#{nqqY{TstTAs{cR=OnuJysRdiOyvYm}AQx;LQw8prpFs^c5rgEbtnl>MP_!x^s
z&-VlOe*{`h4cL+;V2$;!u_0Q8VkWv3gO{j^n$;Ap1T1ESz?6WhS;_}7Y=a(#rjwU`c&_REneY}e82kxH(96R^ib~d#26BY=RsY#P*;5?wJ
zh;WNlZfah0e>{2MtV!d}Lah^i46Ls3yk$umoruMs}8=qm`puEydoE8lJr^!uAQc*{9vbh5EuW!A*-E
zLYryI%`&sJ8Fb8Ha*I@*+AO<|b84q!(=tfuO=MLI=|m&URD#BcKD%G+#dY#n?#WPy
zJ$IfZ42LiwT6{k25Fd_|u)s-A%~$#0mpvIeqOd6QBj46Ch>53Uqe1W9-3~U_{kO>`nd|MsomK`5c7xAvBK0
zYjih-?xWdn!4(Em(@r++R**SM~eby&z63fIO$3@L1Ga?B;he<
z#fy#Eo0JJXRLX&8p^$JH=lQY}LkW1*;LuB|paeo*2k$L+KOnpSIJ}^l>c8n*6KuB6
z;}r*F0c21Mp{uI}>7<1rrPUaJd;?-Tn-Gf5Ls+XIQWAt7)DZ}1q;(1cssf!r3({jt
zNDsC+*TmBUR9U8VlTbH!XO9hT;G~w+pZ=
zjH+44CR6A(T7k5Ix~132ev|bBoFUYf+d?%{jLe)N!IK-eawdy3(UNhat-4|&ij@H~
zEk~=kr#;LRnr9&p9VKmgUqEM@{J<(fb4N2ecfN`0
z`fR_}K(YTQ1c-(#IatYdzVwGMg;tX@s_srYYpJgf-FB0Cw+bfRWB3
z6i`s1#$jZI6AO}wBq^x2P?p@%P1gwO&vD}&!oC>&k!Z?LDi9+~cLOq_YT?3*w&
zS{yjn916lA09^W$x!AaNx$Hjw^m#a8!AzUB`x&3JS*{loKF{%cu2zWqDP%HLYSyD8
z^ZZ;6JD#U$`C8e(-Qz_`3-8~j@oz^~nCB*#WScr^T*l-wEV6w+na4mSxd*z3E*7^9
z^5eg(MB?=cXzc8?l|;+R#US)eWp>~~mJ_oMyMTyd2JzM{2zGKDJ8dksb#(Q456ylV
z9|ea^OlB-xDS@&``|f$@Ra*#TA{lbDT`*9~q46&B!&ns=ee2TmCUY%tN)_8ID|$#`k=SH3r6-p*!~E)W*?%%QCX
zg7Q1qx+WV%)|%}7lzBEo&X%*Q%8e45F9
z_Zp;)>qlc*9#Cvxt>cBqO>GOx1!htVY>@D?sU%K5^;D#i+hyb={s>H5izKwG<=*4b
znNA~>6()#552Yl_RHgPQC=KW`NbgLwA;ly8`#8@1!LH>Ajd^=npi$_
z=>`rCv5`7VY}3w;a4)czVFHCC~ZuT-s^l>(^n^+8eO>jTN3?712l9XK@!iO9JA8
zU^%AKBOX@P(H2|l1aOKVD_oPoc`kh5UaZIcM5Lg}khJ|zHA|vkM
z&RbLtL^6#WSHousq-jx%7l+5~ZI6fMc8epo!xd3w|Ygrp^1MJpb&ioACM*SCjB9
zY~64#wtn~kw*J>@`#Q_M?yJpDVrTu+Qu}s)@jUi?`63#&JtyxwBvOjT9j{@@xr@nU
zT3CJGJ;-!4<$$3v22o)%(JAG0&Y5SxOvZ58#TVIYAQ|`eZ@m1X+{|Q`9B(8#Jo#qh
zt;och^QJjt+GO-}?m{#g#W6=8fwRt7jClL!m_BVHVr`pn^U9yganWc*3Z<=OJzAUB
z$+qUbYq59ltMYi+6{lhQ&Lc%cOYMTKufDMqtF8?b86?nDkyX*~(UwPOuz^vvhoGb;Ueu81`M8{^%f(hgu%Etp
z6DH5O3I|jV^~~G&?_L7$TKczR)8iODl1l?%`YxRq+$}*zx5P`R8Gf*OV9Miwzs^8%BrLD3{>@q
zMe@Yi_
zM!VnQiXD8@Z%A1QUi#}QEMIxQcTN4qXK>r9hrRPX4NcN#u7Cey=;4YyAGhqPtL53;
zV~!cnVLke%zvT5BiS{C9kdtOj&TF4MW4?FpPviFI|GsH@(Q$h&Su#;cLAGfcNcP0=
zo#|60{b*?Uh-4B+sB=E_SUpajZ~Jv!vFW}H0W{$%>^M(=s*sN>EmN@ZtrnU4JZ|Bw
z2#0hu?M@c(zpR(WNu9QQB!H8dyjD(p%A8-|;-7vWla9LF4hQIW>3PRv+^h@8=c$ri
zj+uNiCLcToi%z@@4?gmYOOCPd_$7Gxm3648ork9$yB)J;pC(P~NvB>a{ax9ZnVv8E
z{XO^MhHL)=Z?0QM+Ezx#*FXuE$^N>DQ|uQeE&Sf1<2(?A);;uxdr9jmpp{kP`fIKt
z<~lr2=%HvWUU}g$l$6)u?RPeK?L#W2;_9m|M0w>*udTA`NUZ$z&rmgdt`yRU5esnT
z&(B6p^>MiE*2l2y@*hii318lniNhd2p3d~3jm-Xcj+ly6CV^PPdRUnhN@p#=dv7*l
z(E=4glY(_oSx`t`4ujMP$#6(Pc|=9iwpKjT
z6TX>p<%+zgLCh)9yv1gqd8Hg)xRm2KjJz@j8$>CGDgD;qI@>-*#jqoKm2%VqV>Ky!
z61yzxFy~m;b(B{}5FI)Sq3%+QtvnPwIuTve9#$GKtS*FeP8f~{@1oF%G)#FGS&h
zWyH|DBa3I=yBdMg$@t;Ci!pqJN)}~>oLkmNkr@v6ntLx+>4D~EQQ%KQaW8m1_=t;S
zpB*j`TO_8*MJ#XSg7ccX1&$wZ?kAomvnn}CF9UOt%Zyg%fp*BWX?;K&GkWwOGbV%1
zFz5Y-Rvy+*2*C2I7*6#>)E+IdaJik=?P`r9k=l(>^M)c7iXoWXg$iU4%GRJWmc^Yn
zw4uAb9hdxj8XaG?qv?w_e6y_w&u;h)#!Xm?#q%#gw30cX**_b!Vm{6TC`aW_I(DXK
zG9S5XsT_6pZ~sk>JN(cI^5qwwa3n5UdLrI_@is78S*I+XFM(>@{<0UBt+@UYJpII-
z@;+BCI~P+X)yaEptA9m~nKo%WZoTn(Nk-gP`DD|kJ_6slYnMFu`-XS><|_HV#B8i+
zK;3r?3RDODW1JXPR88R_
zzwSLvZJRK7&Xkj13>uGUavK9gpIQ%g)C7
z_ddqYE;2Vf?sSA}GyrFMQwlgKF`k6BpvtbIymE?UDB{C)%D$r}C;l
zPL3B_zt|?VZ|APvUTq9+YRQ*Jbld!CCpSgaXP?*RH>ri%6yIkBjw$AD^<5YhCJU;~
zTbf}G`y3U=mO-~lAo#CBq$C;$U{qN-MweG%!mtA{vbqeTrX^t=_#~!|4P)4dC_*%@
zJ>G+4dmEC8UcfQm5}Nie*K@DD;tvZvQ)hYKh*;9!IR#YV&$#7$o?ts{BORl-J1vv0
z?pXVNCYTevG9?7(M3#swRU`^HV&8n;m&N)LjVzZ+&-=Ed&*uuPz_%s^{hPDzz~?}&Y=W8qOpIaP6$
z2#HRlMWxs4EH}fzIeh6Y
zC(A49MY0ZM`$KLQolyhh
z&Zxx^vuBgP64e9^c4;z#n{SDuHPMO=D~Z$RETVQxnp^=~DQV`Kb>~z2gZ=wB@2jf3
zPXR0+5y&Nh8P9=hr@gsTJcUzW4CP1(tX%nrn@%1xoA;RsbBIcK=mGoiNeSP#D*1r^
zkPR@N6{v;hf4J1Uitn!1>S(zgzbT@AN8pJ#j?mlmRufvbnE3p)ukp_3^)gYPF-&5T
zro2T-Fo4I_oi|Vb4qpbI`@&LQ8eul#WX
zV(E<3xU^vqfClb(`f1$q@(Y-;;;_Q?ICr+Jc;>dqqUG{sELeG&3R~-R`K_g&VB}T4
zMd4ATzZv&fo(vDjlvqagANT$0Kk$=Z)^A;*mkx@WnZ{5zFM|@AlS^LQ1)UO~JsMo<
zPER|NEPc&~@8Z1Kb8U?xjePTWdmVW-^?BNV3&75`Ku1;H`QLZv&Lfj#GLt|aBqZS#
z2(K+3R4P(lB3gBI(b~EcwRWr9?(u~!OVKv977w6ek&5mqv|_7P)T-OvYKtCR5aiKA
zd1=D41V|GI$xJ3QndiOVevdmd_hu#!=wr{GLvrTK+_`t|%)S5b|Ni~{m;U~r{#_E?
zU#!v~S6>Yl%I{DL0!flA$RlbvsssuW#1+X`s744)s#Grs=$@D>8L7TXU%Qs*mjw5J
zCouSYAP+nM65hL2vAGMCPPI#MhaIX;iJjVPPNGvMJ61jG2rg?0mEFV5rQKc##a=+K
z9zRrh{Bd&8_WY9IE>3Vl%dWn>opg2{RcyhK&8`)xM1>O?$)`4w?<#4l`{-ck-BA@Y
zq1qi#1*A^~D5*e=`>&Qt=Z+6n7fin-xWALoCQdv+T>c(g7$I9;+^JIHa+c{j@5`o+sWa!GK1Llaq4
z1ajw{EaPe2p+xks%}yM4MRVt|bhd=)P}P<{KEHYNgzv%U8G>Q+deHpN5karwG%FrK
zE4CyGs?MRTehSof1+i0MoJXlhheLPkdB2)h5*@VQK7YqgDAA3w7O#A32Gz<;u@Y1&
zYOr+lG(!hQ8%O6Aa^`cBB#x-RS+aZh`zf{#)zYOgnxiv
zH2p_F2(6u&NRML(h|Q>J+U*F%J2AXCfQpI|=xsVW!(Jp^cI@2tROWip*JiC(a+;Mg
zec>~dL&&Lt9u<`ig(I4E37=Mou+6fp@?+5INw@_4Q@s1i(ojgkweWn9%%)gea;jXQFgg5}&>h#L@GIm>KlJ=c<6y
z?t)8o!fkh=fPJnazZ9`p9Zv1*L6pYfNVY+VXt;d-(gA{DK(PzKK>
zu(EYHxlwkp9msPOFiYgX*hvqo!!DUjtPwWDicUvNPdvlrxJgRRtV*
zm&Xz6Lr0*sErDP>2(9}t9NikK@BiL_Yez|E@?jv+6F0CX2K&Z9H&d>CiZS7V$l{`+
zC(^hROJR;zPPpbV**c1Athj$mNs9K8jdcN7-x-)@mCerTi)Tmv0!N==>%ic~=}~6p
zI@?4mr>JNcMokZ6|A7st9DWPi?_v?9jR}l>f+;{jaYQh6xH6=^RAoxwt{97mKZGu3
zK4UGrP<_B!IjVTX0Ecr?r$nVRDFtH6&t^eIpCQCgfL&;Ak*bc$J@MM%%_DKvB99
z!egtexXJ{aO+EL*K<47bT~N*OuVeoD6|PXURF95G?1rbrpm78mzST%LqAmU#2TBZVG@;y_7DGeu~?$0ZYDyVoj4!ugcj8>W^qRA
znvor^D1uqag(n0k>BLN#5Rd2rS_W!e!PJEJmyVmm%aa0cX|7iiok(UXWe(g^ma_&*
zE#?v?*m?d+G&>RT!fh)97*@c{si^)Z1z(UeedI%avy)$%tqA9W0R&t3qV%&&ab;YgC+o*5
zsXm$%APYU%5*ahPOrmvT8m5dNE+Whn9wa3+Jxw(>vi~$oCxcx{A(tI|D2u~w!mgO3
zM&$5m)Lfa)_K!42F}zRHICxDXmPd|GfbeZL(KqC;U5O-IcDHC4drHQ^=B7v{IM3V3
zqD>-rz)T;o|MYgW#AEpE*a^{Xx%d8X4w@BEH{~DE(b93~`o;>^87FJD)Y@BNEfTs~gD=3Bb6*Ma*L}y_+BC)X1
zC`At50L>9p(!p2$DY?i-X|H3ljx~`Qk#_NtM$BxULv;!GxoD8unNkc{xDS`=6^Ss&}r|i`Yo}
zvx5ephvc~915&DhoZa+3`g1A2p4nD}@f49I6IhbDlw>r(Qd-$K7Qj~?#=v2=^}ci|rUk#Ib8Q@@W9|^>G0Z
z(sd_dS{}1(Np`Ch?0kMle{7x9s0-Zy0ZEG0v7{2|tYiDtzqR*CL*%LPWeP78`vBydt3
zANC(*`BIbE7wkBMu8#ed<2%}S;QYC5Y2lqcyBV#m?_u#H3k6=}$kEsEsWTw?18m_&
zV%->CTEWsOjvd*Bv!{E|-OZxMcwE+dO-tvyzW}cu+q)5?
z{$Zi`+_cNbqo)3!(A@YohS%MIO|Ps()yR1`!-Tcz&CM7#VxCCm&z{^On~-%g;6Ji0
ztvz=wloJL@hE)rpaB_!G+@9_nB@#~d@QCAV`Cj!_!*^ixsN2Qt
zF6lOsh_d@IqN*Bg{?lj+96+r;2iM;HEcUBg
zzn76HXY4rbDvlqFh!|te>;|}9YQH91q2|agRpK)FmKAG%gPp%^Fww49LO7-pMcyJq
zzOtiWjuR-g2J_E6`;w7v=qRt5Wt42pi8b(&!FS_iMGir~>#GaJBhb|~VDNCh<)meM
z%!H{~j;*zMKYsJyo73CtUVIrZJpUt1nmEp~nt!tPG4ZjXrL)rSty%L(1{P{`Fu0jy
z`8DE9aQ^OdC}NRfpr;-FmaT}j#!=#}#Wz+tvE)7xgNR6z`>`K>pZPRCS3_0AkOLl{
zI-LsB{xkSs&nmcR7^OpeY|+0zkl^$zp`~7b?ZKZiweP{S>%Wh=Gsa`wRS$^|H6A&Q
z1vgB?=&AQIVcCT6YU&r@;ctDJY1@s$>^`&RWxV<7)2OVSg;S?a!ISUCgz=-rv8B~B
zL{rf_db%NODZJIIR%a!$<4(2Oi?8xxkF5Mt@O@qMvii!hZL>Xp%BGxgoNIwVuI
zc*wNAA?C(&iee=oh{T@m&*c@mFl^*d=m9T=`|40wHiPF;@J0O4C$aAiIgkhxa+(2D
zrm8NchVDX&<^!GRiS*!|9Z%r8Sx=yHSSdc-x&q-~+|-B5!5x@<&EwP@-f}@zlzGw8
z)?pNy_4JrRIbTu}H8&CNYtm$B$*2K4H;*@z4b)V`D$@gdTEj#*q_D_Jr3jrnY@Hcq
znA+N!YJ;VdtHok|t@J54lC^CXiZXzpGW!(^pTH(+m0~{^Am7hasIb_Ds!3i{xn{#1
z^nrLsvB27avvCa*tK(>ElKw$ryd=eVd(&zJF&6Wu-Ud&B3%)CM<7W-;_iCVKa|aZQ
z(2N^;^Yv3iB>CL(MV2_b@ssC-T|T;NozSFXd)JFd^!1-N;7beUp<&tA#p!;$^4qxm
z*7@RGzkdBWaqhO3o$NV*jT@fC#`RCi+>WOQ8jlS97NOmI(~aW$xX?IrhyOkM)T&->zAhbWR9Apwf7{^*?LlE5o-)BjeeX;{0`)*Fo>%K1@ykc
z#DPQz`w{`{>TX8K=h8?uIrnl+A0n%h9lv%IJ={sKl#GDEY{
zGgs_JBDR@B@N>qQ$j)pVChpD$;N9
znOqPkj%Jx}jb+&pzlOl6Bu33sFm~h!TsF2&jMNaLec69f_h9kTk8tFZxAC>R7of`L
zW$)>*vvb&OHk9P$31RAbU$x5AlsRfz*`@+8p(Zj2?F~CH&EYckDQvY-gQ7)EWhp&f
zScaj^FaeGDNC^W0MF-JL>yt)25HEZX2$R9kjQcnrF)wc_wZk)IJWJVZqLaYOT3mRX
zYQ?Qhd!vrdV-&A$`V}I{q(IQ|Mr+dG$i4CLy~r&6@1`q?Gn0gyQVczn2&8**$jl65E6bkexyUy5AW$QN=#rB`pOf@k*Obr#<`JCC
z3!d|`1YFXqi0L_^X@~}Z;Asu5`|Nmk_ij-GPO$f5i3D~ZJcuXXdK2Rx8=dp}`4~(e
z0reAPrkq&Vo`bk$)WVg6sQ%N08DEkTqMj+I@tBxodSb#{ddd+G2XZUY-we9jKY8kc
z!4D=^%<(3Z%PTXQV%!hjRe9r;KM0ytJVelSM#uK`jhH!U5-JL0sc-pxTOnC$ow>fu
z_rC(LcOBqylxO<=XSQn9C1YE*CE3UwV*{obo8}O}*pwtDv_J?sLXLYvXaREMI7&zi
zp$78gfB=CD5JI?w7!0AW5>3UhK6c%c5Z@}>>wI*ddrfWzcB#4G>TY4
zfffxC&O{i@%FF=s?P-5hhnmV#eIQPaF?BQ+n}nyHicsdHqocza6#iXTf-hD-Nd~Y-*-a=3E0K69^PUEXZUhva
z_YN=&GQXBk#UPOXqpHE%?TH?ux|RqkdPOj(cZZXDd)HiJ=~AyNun%ziZvQ{PMj9J|
z1q+f4FP}kc-$A00DiR@4MH}cP15urXlNE{)8c?VfQv<4|LL)&w6$-Pz~Zg2m`37tGL=syF&KuUD#BqRD%TugL?h5rIx@_)OzV`z
zVlvBPkI1ms?c#Ob={V+vORL`42e^H=e|oSTdn~)2r-MYJyMc9UmBi=@QqiZ7PST}>
zv*k*FWRwgI^UjVCAv6L?_`E_HdwcB7O%E*B(;o20crWgpucn{MEkTi2s6DpKG73ikO^rVnTD;Q8?a%P6z
zvTW1Nkt(KsD;v1`pc;K2;P&1A>8u)8+MYdoH%TORkWlvki9{-t{!AAOz(PuZ;V7+y
z)F{J+PMAf5TE_g$3Q9=%YwI3**~se9Q$f^EyAU-M;}H%ii0r3g#Bn>Y_R$X!Nlk{K
z1#>PVCFs`U7zme(YMUAeiQIl!Dh_VMh+;qq=x980KQT;3I29m^A&p)GX$HV}cr=Rz
z6=C%{>O+W~oQ^zsRCW4G2i%;q@6C;;Ih(%?=bWiW#KqCLZWywsS&Z`QR`Z%H;uz*W
z4eD)l&$S}C$@8rVAgNR*y6@Q>J;s?>g>5@cEiy=eB`+(4OKu@<$h!@0x{*Oth-}uhkKOF-;C=$sP5}U
zT~kz2;w9Nt(x)LCPazc<3nLta7FMurW(d3Q`KjZ$`<=H!g^JwYwyN#yQ}3ioFwOj6
zUI|xaY0Xh6^QVpVQl(Q6TdPHi?pU<2h9Nl-4a1b*abD<#N6{AU#}*JpQwm$1bYdXe
z*A6|M7zW@R)m&E_nUj;lf)DkmWl#@UC)^`MMN&ifod8RW&KGcw-V86`h*#})5WwZg
z(n&txT;M4HI0xl!LBKg%?Cj67fadHa$w^#_sZc64O8J0cP>mqM<(d@@y*&vrOkX-;
z1|~I~iD)E%@@WKHSN{&N#2jqj`3Q^Z=3sQ~Y!=GNvQ35w4j@H!9B1M~
zr)@r`1p>%)Y(`Ba3q1fKyQwnY(nuyiYG-hLBMgiPVC`RSLy%d-XqGTbNd3?05CbZr
zF`a`$PlwoDHV26>7vz&8VLP}a$SD+CEeZBxVp=p}lKQjBofBX
zU46)=RfHqenAr497Ow?SF)@J8K6;FS?NDs^{637EbOl18N(Ni$E^=}NDH<#Rr*Jk9
z{_$$=_!45V7`wUT#R9;t$-syvBpE^zEt?P~y~qeg3>~pOYk=~JC^w=w_{6KRcHMs?
z-rSaVJjdxFw5XXOk4(Tm#im}5C<}5UkPaeaO$!q)pbOFR?(CO^6NFatfumK@(wY#&
z?uIn+qF5q`&<&`J9`2B0kmWiuf5-5h4D(A@nH8Yf?iV4zI2vhukLZpApy52uge1HF=H
zs}DcCEr8NMP|SsXzA=m6Js7risqF7(9`}Hy=BDcijhzB!Uy=EAIkKvbgrcKNOCnU(
zgedmI%mdEH$36E!j}N$h?+!In)KN2K+nKLQc&Q_REW7Kjct=id>nR9Ta88_|^Z8Q4
zjPDGm0A`N92Ik!`M0J}^trMMwu4Y@MqZhhW7h
zIhgF^W%spax!BCf>F#T&=pf`9#jsHMYAe$rN>sz}PK$;*DgMQDupYOeK;IiZYwFNK&+$`!H|Nw849Yi)6m`fH#AJV
z3~Hd9T}we})q+H@T@%4L2LZlC*SF!~C6a+AV;Dkheg7#zkt`uWMbZH&a=S|8_fSlg
zA}KL!pbTMDA9y9L
z8Db7XopT-umyn88g1erXq$c>H3=@1ZVdA4GL1=C)#|EKk1x?yH>2;X2M0!>X84yPz
z!%glbry}_rvPIv(m2!h>R1k*oK{;m+T%NeN+ic~7i&B@xr7m#Mytn(S%F}$n7o&?%
z6qOwLQs|S4c^@hCFU?Qq*bXFdP%sI`MOA`~@PvjrmuB|pXGYaYcai}wt0|&B#}?
zM$Z+bXY6S#e`+ZX_iTr}))Q+5!Wcr0G(NIx=FrPS7h{?+-
zf8)>YVy-K%obzsElgdf)i|eSQ$_Qy`G#<7Xy#qby?(W8x&du1fV>xt9N9i7l*_U54
ze9yp=kS5ffiL@?uBHUok21EqQ!c+hCJ?JdReem}4u=&-`euhT7NO0?e<4p6-PUNr(4(
zOK#WB4!Saxip_ymxoa1cXiT`28qXu}SrTLsDcw(Ye=|@e2Kt2(Xzi%E(z0=aR_@8D
z5Nu7n&@CRb{jdA&QMmt_a@=!e4EJ0S!LzI1K~e~6F-w=#ar0fKcSWdgYD3^xkPSh^
zgs~vAw9zso6K&{cVau-G9Y}QVWY?RH@U~njVt&)OqMN8~bxrql73_4qC7;7Vc;+P!
z;jkIw@ZBFhff--D8UORjI=s7jt5D%=ZR^Gbm)?)X7v9ZQq!u$vnd7g?0nf;}am27=
zJuyn17rg1F{<~(5*5%wvIAqB!;3-)?FT%j56NIbkh1#ZjM#aPD=A>eAYCgd;HsK2E
zsN1^Hy)-A37Jj>*-XQf);E=rnX0dX4#dGx({#=s#&l;I9C)Bw03$b&x<&-19@F3<}
ztZcWq>bbimAOOK-r^q>CaTm-?awOdp4U^#J1cg!zj$r%aCt%rz50T1fa*=1=*e$=L
zV%K~*<~#~K7r;sBMZ!fDnHSqF=7#dnqt6tI;QSii)4d&i9jnEu3otM5^y8+9*Dl|@
zW9VZ{9DvKI=omTPAeVcXi|IaCz0I_Ok_V3m!IW8(ch)ou(DcTWVj?WdERL=lHt-C4
zB$7%cIcm6OcPv^Q>Q+HBt#4M)0SM5Ul1jvpF}0+c#DEreF*ON3PB;~+sTToyo|SXC
zl|BTFz81*=HcI{ZZ1={c^NaKLmWh)NS&S(9J;f(WtkQsYyW+aKTnQESe-k_9_9-uZ
z%m7EAnI+tK_j(vw26{$E?Z}v^HkcHN5%FH(F-m${%6SPDb3G@yh@6;89lQ4*
zKWpz|I47Ve%~!RBW2(^tTaI4OBwpsfkJIWg@ad||X7U_}rty`ZC=!hsf((&kHE&37PR*EBF%>l
z*$0gr8^hI0Qn>E6Bz|&x3P&&KX4Z^nzS%XyO9}#nG7}yO>p1y@!vxu(K~=Qx*&~0O
z7(q`D`*;QHILC2;SzjKWqVOj#T~}~NoSe)6@}uEl
z?StbrgjmZ*iDp72DRre~1W5|}oj32Q%Jhs3Ab1hZiG%yxt}M$pk5L2UGq=xbla
zJiB%VxH?%X=CkvPjJK>5Bj2}96!Uv2G6Bf{`}`1;&xs(-MNUMNXozw=Ptx$3-Q4+M
zy!lt=s|BQ|R1ss=P?Hk}tsA!C`4wx$j6QSQP*&c=z^OnB6STkmPI1eTEP)xAsCO3eS-_6^C
z|I1d@&USU349CT^+{()@KbzgpLSw^X7w@|08X_`3z_W;1
z4!CRrHI*a8m*gd>EIYq@e*ZEmCM`xJ62(!6U4)mGeSnRh-i4{tu4D`7NXaI~Jt@dc
zw?W*W&$rZEz6|p#566g5iCBDjVnru%!3r{@K76-O4hDK`Fg=dkORCIzD5VLyh)&7ux3+#BD>i*?=WKNC;A
z|H&2{I%|S>yz#R(oPNPCuxaI8_Q$^a(chSxFiAXaZQFxmPrlsjZIqVwhyS`*-1%+Q
z`|EMUq0`0V`pKt=&uRYKbN0U8S+yE-j+iMPkC||i_+D*W{wn^i8-G07w!R`Bk7_(l
zfUs-xYvS+TzJ64cmD>9Wme;!KbJzd-HMsuA*I@pFMS_d(v_%UA8zv{C>THt%GUxF-
z=BT5@;|Wuz3$iLB(J%dUlhe=sJ649}FD_%RpXWLSoWRi{xO)A~x9shK(rRdZo#OG8
z*Ib8f%{%bSlaGnNL*=9LK*Xt2t=pQl8*tzZ8O)bd?vJC6Ivg)9ecbiAW!2Nr*R@_e
zerx3im^W9FLY{m66?lHx>ozxT^@zjK)gf2$Q&0Z^&N=I3oORX$X8ronH1QPd-nHCb
ztKxBXOe;#o<2&wn0#{sdmUz5%+tXq_pVV{?=ISHyj@x89qY*)1Vs*uEE~jW2(7e7CE7#r)
zuGUC1eV9D)MAX*Sg2V!-pZ*?J7VT&dAD7ZY8|2E^c}Py&*2cgi_ef#t=|^8
z`qnQnWn!Icznn%^lA9RV{O+$Yrmj}RZp2|3EwD9A`-TJ}^Xr>8K8xl}O9jm=zpejt
z3r<}0eLHK}!hqGf0-;35{!RXQ4$-KX%5TW=ZM
zikipwo9A4FrO&@)_e>^ww&J>Le~33%zALtuR!z3I^>uwJo|AOA@-sOl?&FW$iOSkT
ze6yv0`SZQ@V-759%iC|S#@D`fRbIa&-_EU^uy8^xDu6eYoh+tSL^r-gE6W{?3=7Nq
zSZ^_#w
zfp_(l5j_1&7W{N|KD+==S}A{q$eVv6h3WZc5%bzt%;XN=59i;Cma>I?!!Eq~!Hvw7
ztYF`H0Am_vVb+WjP#Ozi+*kwm{phbn#>76ol<@NVd(+~clsTn_>x^^O*mbY}T##!!
zZ&NvYtOJ~zR^98`K4JDnBEM^xtzLXxYMg!swyl2}+c!MpdhOUrC)@j)K6L_GK6i^I
z)YTs?eq3Ag>v@M@Wc{(O??E)T0KF4zVl`iMGQNH8IiC203ZQX5=o}|BTo%o`S(a_6
z#dJH{#3yo{^5xS^S0cw7}>fm%qGPkc(Tl6NIal^2@r-zrq=Z-H2oA#~>UF4=mKSCl~1EhN}m0gpwrW}oEB#1Hfz
zv`akWIez0ig~oD-*~(?MbV26x6_2v1qU0DT`It^H#A2tiD9UTfkWL1X>`fuWEK*I`
zD2%FTLUa^c6nOhS`<%{D5TkmxL#+sca>2xS1UKAYgKIBNJ4SQN0zCU$C9nlo0_NZB
z;}9-Uu%~S|2D(_3mQLb@4{t;|9Yj^t{+M_0g{ZD7gBnmVeiFq!cix1;(*b_x)~ESR
zFfiw(n(_<5)H$kR6|n7;xZ}chCOfS73~pL(S7JmY6E)Cu#;m!SZDjWN4IDr=i{*yl
zC{>s%msNHU-jHfmNFDV=;;`XFwwl?X>)H;T9c=grd{UpWoWb+$g%3O_ltT85-MH&o
z1;%h}Q2LDDkill*6dxX4f_i3Q4m@BAo`2!>0)QM0aQX9dImT<^pmcRJWLupl)^8F$
zjv*Bh=DNiyBd8czf{M~cD7_^J>m?`+*CIeGK`Y0KQ8KaMuzNy@WB)3G_LekirZa0b
zI)H3Q$D-Ngcy?7kB0cQ=sSu*frHyy>qhm)#@bZdlPp9Zh#<61UozOEel#iN@!>62#
z8Wvyk1t1zTkSbk?KR>)2`Dc*~Y;?fuD(m^9NFPXm-be9f|C9A?|tNf`^CSF4GlS$GTHB6
z$hN)Kp_osLENTzNep*Zyif3DM^G-a!?6o2?nZ$P+@wMU9aY)^>kk(!39hi6CERoG<
z7>K9PwJVODTRPFwx(4xzk5RLbg&q@hXqA0Xvs+M-X-6cGLM*Id1Sv&tS2@DbT5MPs
z!`p9$q4p3wx2zw1FB9y3BZ(dF#WCl|e(c(!K}!+zq_^Vb&z{FCEXLoOY{$vREy3BR
z{}iXqI}c+<)?h@Vf#@Mi@zw9`K+~*9QBx8_Ex(GlA@i
zc-z6Op1Bhi$n6Kz5e(h8e^c
zUkoo?L?=ao(*66bV_-NZ@XZ)Y055AGGoWLjGlQ-jDYUHX$ErWShR@ocMd=x@ApDK3
z(2wW>9k&~?>Rwcq^`X2pB@!MJtD~3^E_;7KBF`UwJM6*
zkq2PmVQ1spCoaUfizcFOR0+mRW#B#b9n3xNV=O$s3yV)U4CRq9X3ea_1Fv2%jH5^j
z7rt$Gi&EE2nVkG~cVd*sB8c}TaLo@+!DD~mTI5xD=8?;A_(}g^>l
*={VXvz}Yg-3CSaBB)IrdV#vf^V;OBHP0cb))bK%2isqG4jz*{rW4rxAET_7|p>
zl5{U~9sPW@{L>$Qg%P6<6F+zDx=omSb2rG^z_KrPnbN_L)Yd>G5QtY
zDDl+WFnB#}P*V4ywiQ^RhfpFV1uv;$XY8n5V3MaU=lT=JcjD)Ww+R}Wj%rjDTql0wv_V%
zcPX=$r327vJCLf{ijM6an7?oiq7gnlUN175;|G;o%kE!G*^?vR938
z_TMw+Ur)W}AD(&~fqU$R|9kDFr{cUb=3&~rtLzKjl7Dbf7`SK-3>RGkb-5VSj?t{R
zOi!nnn~^egjh(KDJF#LF>&0X`C61LggdJ8G3kBl8A`&)U
zt`$Wn&N{eBR1O$Ex}&f#KtENM4x0J
zh#&*cGta$-ZLKYcR%B7vI1zIWn2EZoYJ?Q|`xMdCtO}(E)dU^CX>4D~Ocp=Ad>Ph%
z*fyj`KuAHrnX8UHhvrU|!%SWj;{C8{VtJslE_(a@ISv$;3+w7AF?meP&(SkUk;ycy
zET)5Sh}uPaH!+ZN6{gn8$>l~I$_@4cN2F~5Jouf?=VFh&qABM6leOq)9yUpeStRB!c|SY}7e|w?Gf|P(x9I61&vg|#
z>SdOT$&(oZWSSINa!wXdFWFem)pTC;a+;jLtdiR8XCS#YD`NFt60V(EhXD?BJzH$A
z?$F+xLsZ_Mxr7XJheb{!d_gvbT<<0srt9c^M}9h;4D#EF?;~@>hg-TZ0|E>Adv@-R
z5e+dxm0(#X)f_VAV6h7EVku`p;aclGZJM~8m7oM$w36WCo=xbhPT{!yW}%*0JJodQ
z4bg^1?J*vH4JT7+B$@U6^^0eVrt4%Xi>tr>ry-AJAP2QvAEmdUIgfM1j)f@T3l>M9
zG|1&iT^R(w6kM)A%|R!b`TETCzcbh4rMC09fW-Q3nvC7J->5hngx#M@bm_`ODn~Kb
zvc+FVaBs65#R8y+*O4#u8P52S3~8gkK%4YlzPf-+J28o*0z`m~17>`%7G*)nU!pjy
znY$cHM3$V>E_Aa+R8N{`kC%X1e3xy)iFgWLi?o3IWlaH)yj(W*yvBN{ggCKh
zEN9_7qcYSnKr8t$4Vw$o8giA?eY(S|B%azEu^XO)?6U%qSaC3;#o~|n?~M*0xL=UE
zX!t-bvOG|HS)ov4faf`%UIMdvgjxSqhiM~6iP()0;^<>H8>Jm=1AHDXp=EK&{0HRo
zhRImRoS5tYL1GUOZ>3mz`Tlr($ucba;623CX$CY|t`L+BY~S(DtfTF%Xs}hS-FiLw
zUjf+r4tP1rdhO?(vi0og=j5cGG!jAzNgzaeQv{WMDFPOh&&!nyTtoyF1Vlg-K{^+u
zC~_&H2uc%>X6PZ11W4~ar=RV+Gw=77>AQPc64ZM$$^6dlPTAR+_j&*Q|6upBd)d8w
zddqIa?Oy&tOKBg66HjDnRvkzzww2joDdh7>WZO58NJi>zAsQl4BZO>2jA$ezD*N*^
zhY0(Z(ef}f1+n%F-5%%M$FxJH9yT}g
zM5FagEi9nBdo5|&Y7!+BL8?|KVT2J$86=(UASqs`5DFpG8&ybAVW3kkVb
zY&1{xLe30_tIeL|Ml&(?Q2NkAwY076p96He0k?bkl!4~Ana@14LuqM=A)8%;OdA7Q
zr%p1BaiVDvRHYTtfevBRnMRa^vznsnStX_NbmqLO5``E%m?OI6DI&mHFbt|FT2Uzy
zBOC2DYID(IcI-apt+z&~$D4=U45+)8|1)6w%xAy=CAi{9Z7tB*`8sLr;L?hcY-1JC
zd$S~IbQ2?1rNlbp3JIr_tQJvpllMZVnrafwBt%n*XeuC579zt6E$^-|p2{n=^|qIV
zw^3KrsMU@k#3W$olZ(&H9CY-tqdWgm!+$s6b}yg0&GxNtfy|!|di2p*vSGuUB)&a^
zc%)9D;V?;O+6lCTqU98YD0!toRZUZLF2HmYp%c~6c{fVlrMS8&-T2ZcYhNOv5o#n-
zkH&B_!b(W?t@Ms?k2^O{O|-#)9*yO$IX_i1XTOoT-GJM@{I3Mt`0n%}W?kSnZ>%TO*eK+8CFaN7RchEr~
zt*syvCjzS%KSinw%q~kbl3cDwVaAz4)67Ow43(;a=z{5hBuojyOdv&g{_s1i@4Y46
zlRhBSbQD?|W}_z7EOIMVRVEp8jsZQ)c8n?r>2T|#nG7rN_WZnGsv+}eMPjsdW!Vt0
zafF(G?fOJ`S3_bq;C3&chIA9-?8qZ~F>6+a^sfJiRQE8f)HW#jbQj4*RVC6DR}4L;
zQjIeEObsh0ryZs-LX;>|B;&7tbn7d*E|tc|9!JJE?*~l_i+oC*NhqzFpr%oSUS9-a
zc~HF|dXqAZ6lzulNis0@5SZOOqojypA&eAMWUS7y{0ez3Y9~8S?2y8^hriskW;ft=
zFaNTt!&WQW(0LU)^zsSA_D_Jmr{^C}qFm@de`Mq*3|#X(7;
zqwvwbi41h@nz-}htI!!QXi3}1*t04z?sTje=J@rRlyCi=4Zoutc{^bD2
z1KHeeJM~nMbb29TYqu$8V?80AT}rY#q$JuCim9g+GemXXoSsQG4z>gvnl&4`-#TW+
zx(_c)cc#!V=~RqsJ`k#|BEnS0nu!F}vsYoo6N`X0S#57H$z}2eu2y}WAnj0OX}_Ws
zG43d4rWt!P$)`d|amhyow|BNXgD$P!>V*U3BfyHOp@s9l8{d03;C3(nQmW*hdjcn)
z%*J-I3x(xx5RIvkkt`E3k*pHyPB7aoqvjNyGX#VgLU=16-bb(|X>OSE_M+$hJKL2)
z^{7KJY3%W$jxEF_TjLyx@E%WK)m;-&%*L(SMwvfbFmu?>@Mh?7K^CGiol`3$QD4jn
zx++3UG|x&SUeziZfh)XsR4+lUJ&Ckgj~wU7;&vVTvus9a_1hQ5$L|ur9q{GbuVR;c
zrA-6nWb!-xLjv8ooSHU+{kM6&?K(9$bW~;uUqPVI)XVV=m-NFF-M35_%n&Z-yJ4g|
zVH!mbcefdM?VjI9K;k2pEUnX{WeGgIwSIuFDXz2K`rOr=N>r&n=Qa{7S@E*0!PleG
zU#wcDUd&e;hd`ZMxq7-_)1fjoaFzJHg9W4&dBIg*Et}$PHe^u_E28$r3r^eVeFn~p(+HLqM#A?N+oi`QIrmAD=Owli+y!|h6^uY|9Kyqgi@BUW^XQ9OSt>g0Ols`fy0tQApC
z%BjYnD+)pk@DX;d5L+Yc+z|%s2t!{TuaRqc0;=mvP_JtIsJ3z<;6
z)`_tf?WUMWCP8hg+tJ%_<+QO^Q3r6mH61}QFw?sr5G@Go!ZANxq{V9LlJ6-F1ty;(
z42M=q01qB+xWF*-(Q`YUwQSJw`X{Cu#G7QiWiSJdRsc?=8XG$BAy0Q9Y(71N5_}pz
zL$qq49tmx++lZ#DysDbh5Hsnda7I&8MLugH(L4t=Orzs%4kDwNVb}5!lui4=Fg2{)
zbUVzdIcTY!jwq9esup9%haIL>RaLEuZO;3qh|mGA1m`Ujc%f>XKkB-%SkW6t`|4ig
zdoxTOEg+-h1d|T!-Ym#K672+Ij`{XZo6MAbkG+ZJQ@ofiXMxUe`$u~2GKJH12QDL`
zA9&PaFd@W4EWuPwMX;6Ftg3W?{Mc?gJCVP`L8nHbRW-YkZh+vRgBmr|uQd*Oz|lbr
z+kBRx#4a!jJN>R(G~_IA-mW_&(pXx(Gs0Ar*gpYznpqXQzhsWDN6nndvooAqBgMnceT`qo8bxuLFIJD=+rJN<7>FKEAaZ!GK{5LOdcsb<=s^GcP|Ii6fc0gA(SGO_>5hz8`p+X3caa~C1XW4mu_-OCZw@+53$fQ(!NHc#nW(DU
z6EOw`O;b@lQNde}y?|nB7*=e&1GU4yCDcrXL}Vu}&K<7G3=^(SDq@AG0O!C`nW*A(
zv}OT~*RHD8Yo3A<02+~?9%
zPzNXBeCaN1W+|pMCe8~?Fcn><97;VM?E>A1J!+*-@;O4zZ8>d1@`uY?ZkCXUPz2kI
zQ$MXRCtBoQUIDsB5!|W7R9bP|1|;{Oz|$v}Hyu2{=%^z_m_l2!WDvm=2
z4)rkiByzh=XX;=_XAgTknvib8M;s!$b7^6MQRCO3fzHH|mA4{Xb1Y)v26kLn5{EEA
z5>@sZ5wyXI1e0iMu2P4Z*xPx~`(7iaByuboD2|*9BgJhxDnM7@=;&A|=&WPCz?jo7
zEcw;jbz@NXQz>V*P$squ88G1GotEN379G2}N>IWGzaTL^63;c9rT@hcy+wqYNNHt4
z!yu!ths#?P&0k_rV|A{i3kb~e;)|A39#O*f=Ko?0>;nJMYTQ3wnz>*r*P+C12dG#?
z-9&WQQU$Y4G#as3My1y?UOkrCZcKe^R`J3kZ(#H04`CF;s7p*{+e1=LSq*}O3aLnP
zMMbg3n@(}&xk+4cqai!qD_%#R_v#s_Nm1~5huHYa#7BWQ;m-yQ_9Ig_a+U?d|WOY4m9fP&`hii|%U<*oYnEmLvM0
zufB!v-&DlJDKU|eA|##Sj!!{5p%U2_ML>>8SSDD)Y&_OBjA7DEgOSZ4U&tX@=s}@#
ziHMGc(@e@8cTUA$KTHYt4>$uM6#2{oIOO)hfnXMaLe>xsHOq2bqtwOdWvp??IX!lr
zT%@#
zgatL&i;?(aixv&AL+oKoH_JQ8>3>C1G1Dg-n`cRNGRiJ7vmM!vjbeK=I+EA5$@6kP
zZVnpToUx?Wn9t0^^qJG7cb)yfA{!?S&AkGQM3eM6Zrsr2vXhP-NmE_F*I~$IdXZ(4
zt|ya1%E+UT>=K>1>oyoNPp!-yXwXCb-X?|Xls3ha!G3s=ml`=tI3BV_PI{i_G{;4U
z%--?x2RnLsnVW16rtN64Z77Gd%L<-5-JJuE*g~5v-2}atNgYQD_g<>8Mkt}!jtwx{
zhuS$5aM1yJV|TgD_Gz4lR)ni*Yoxn@%I0$)YFQgH-#+>>7&*_fU*I@BFfNAqlg831{Cg!4OFW=3%l~
zgagm;5inR_DG;V&8lq*GmoF~JOW>WUiR)i+RZVZkgx~`=q?+mF8Ym+~T}B=Vdrq-p
zb$X(i*>%xUrw;Agj;pBN(LU_AzJL@U0O`vE`>Bg9Iuv4$!G{5yH%^Omm#RvkR_2N5
zpsWZ97Ygel&~4A`5vH|puOe?{P9)t6>KpfA0M#Afs*Yno{^q?;ei=uf(~4?cmrfc_
zrV!6q;g+I|z(I_0g_Q4%%)dclvw6#mgHSNC$mVnC%Jm{s?1jOA$S3%^uIjRPVO=gg
z5WsmGz)DG^P81W-`rBiR^INS??;gYp)a`7(`sHFIt>|NXeaIv;6~Ndo<8Hk`QZh
zBu?9ALR?kS4he`{M>f8;Zrv!=N%3P1L2S<@Sfq-*%WRdBkM|?xMwcRe0lbBY6PjZ0
zyX*5%t*+VJabnnMdqh6ppWIAgYjcEDzEf7Rl;Dob8%1PtNu<-gNM@6w{XHN1p$=0J
zJbIUXni>b@G$GVuC)ui-^^`?_b#WCs1D=YjFFDpHa`v4%9!>QL5zF9M*=PDV%MSB^
zvy!P~wK2DiXzB$WZ@B4;0hW)C!2+FPfsRv6Y4LjLxeQ7+N-H`*{O(O!-UJNNc9l42
z=uQ?|WS0Pw?6hknmFFeub(?r{Eh(HBEmtS=yq!2RW4e2LWaD}^j(B>PqDTo8W_Db9
z`|F}wTjWOyG(ik@F${e-xH%UW<-=0k1FV#Pe^=LoT0}rVpe8kdz@vtn|x5
zY~tTz@^L6IbuydoM0@XMq&t_1Z93EPMjkxbcg+0lZ3DVpnoWE`K}+ITHoGVX;KJuF
z!}Ozn%4QY~Q(9|r%a6~%h?ZJB`TPQmWPhJ}{(b!Tdnb$IW`6ckKgpw){nVB;#GepM
zti&&ynyTbVt;x(jM)D3=U6L&?m5|KgDmFXiVJ6#3jY`_TC$!ISzz#_uiXi<|W&VKy
zd^U)$9Ju3SsBk4^MTLKW`;)A>q>FaHL{b=Gx)Q)%s>9%fQORHllI3!
zlo{T{)IX*In$k<|^dcefWc+JR8*^FEKrQY-Vu=fRjKRPri3fo6J5w-!{Ssz_Nzx9!
zeCxl$jw8=Ly=wop?LxZ-LS!YX79WKnWI(2n6k}3I>YlnG-8YTWpt@8>wPN2elS#KZ
z)5qYP?>;EDzx&~O>~++Sq2#l;^ZpmbXLsKBSL`=yyyd<0()F5wflbSkcnJPSSN))(
z>jd%i|91i4l7~>hL#}8)0=>Egv~xYoLcU~x)3Q>I0-*hlLkjexnhr(!RF;B+l5#t1
zpZ<2}Q*wGIZ?6dP({I_-Pu1JH8Q=)K6k|4SIrp}FZaiflpf_M#`(!$4?p7p5aa3w#G}7V){~
zy&g!4_ZF_T4x*U<;TmD2nrevIcdo2>>;09&E97#x(Lfl%!=LSOs@QdFZiHI`h?8%C
zCso`0a&{zvmS(=#_M8Y8Ff~LK)dj@o!09VCUeQBIE7*`bDwcM%@`nz6pB;0pkiqRo
zgK1xGNta0Z+h>|Xh(ux6T5@7cJDO&=)n6VVYTN#{=Q}usZ@ukUELgu1c~fd!1*3@T
z?<8_ea5tzztkt40BN7fWHB1q^jBJ@JbBo!M&2*rc%cEA`1T&`$>Ha7sxr<)PCkk)6
zvZnyml@oHdklsu?a4uphh9teGrdzaX28rs4-^?pXv$E9-Qx=*MYFepgo^XQ=Hq(-D
z-0f^VJznig!U>cu6!p;^)3WAWQ2nDjQzaZQ`_Qh6)sdYF>_GXfCDdpjF61wsb)NXU
zOQGL*z5qp$fudN<2p+&})-Hg~%V(>2>gzm?wn~u~PCM46B+;ACiLu9rPQGYZh_WP{
zP(j@!e35#o$Yf0Zr=eyN`zk~HhI}!FX=7HRr!X9}U=Hb4E3V5h;39XJL}{Q5j`}5^
zwUO(;1`lA`km8(Lrl<1SCoyf`h~Ji?B{4h?5hM*rO=p|eqar!LgoLvsonF-lMGKb#
zt&*dJ(h6Xs72K_^#HF4j@BZnlh(FdiRJlV30uHjv&Oyo@Kx~myf#VJCSmSG5bv-f{
z-3Dd$9w;)6CX;Go6LucCc2iUWh{={1j%{U!8+=9vacz86hR4NabbdGzn|pf%38NvL
zC&1Kwl8$ORa(u6KUMf~g;gwk->~%C;Cti$bt`*~T{xWI1nVzvRn5U+ogv^lm;%77f
zFhXrljz=n5s}QoPE(%s1&^bxYp46>CUMBU_piy7)F|nSVtw$C;BiV1)`HnGVrMO~A
zJT1}WPz{&G3+*dzR>}PzuzP*bq^0@K{k37}_ZoJhl%oUV9qnstX?qA#dV!?egbm*$
zWwMEMa_cxTfOGFHfe{ZO)w33bd=`aX1L3B*5^M~B3MxC970c9-QWIdVHnVUmtWYF2?W(^e-@THNa8_qJ`hKuWYQ
zkL~Z|eN9YDwRCVBxHkJC^ZGe9rKws3N;DA|%Rx~T^i+ELnN*0i(Y`Vt%Tz*83@+Vk
zr~spbJqM{styrmZ2L|$<2JVrEl3H#u*tp=C`b7NY6LX71PPwWb=Umf)VNs^xXsVEQMJq;Z_vzu`f}dU{i)7C{y$iak
z;mM~)i{$F6xXDz>cbGI(#Du`FG0Y?!WzsEN+dZT^qXg9|CoJGo0puW_@!6}zYA@3d
zzXH<^yPT~*EIVjqoP=F0|FL3|Vi}vJ3vjbsa2x?=is^Sn2_PAspg2miWI#QhOZl36
zEtOEz4@}RO_Zx*P=R_F*FzA5VGxTH6?Wh_#!1r~H`?7V;-~-~p%6(EAQgKEZr4Ii(
zPl7KP1sptcf9c_7YtBd^-NV$lmwTXI9mYv#T`MN%wv8_^Goi>6B}F_;4oihQ^a%~%OxcTxJZo4{)eP&XTxc}J0^)f8Li&5FS=96{E77F4x
zqmV~^!$gEaOtlOtsA^g=qzOwaM|4j;_J%h|P0Bb3>^2OGU%B4*6;lrWuGs#W*%R=a
z+s?zKKlvSQxcn?<`=r@l_o$EltdG@;9`l`R%$~=KOJ29^&t-qk$O*?dfY`L^ufA==
z#vLIXC|g&&QgYmfixy+w0}n5mDE6K)9rNeC=Ip0d)i~RXRF8kgib>nhO!xZU+n-&1
z-SxQo+UrV=Q{y%Ae912NdKNCiJ_j5sUf0&tVEcwu&bEs$y&SjQ^{Wz1F5A7K>^+Iq
z%KoLP&gH((6ZKQX-=2=ezRznLW{DFzDrMtb@%Pg2orCXP@=a&IiF`E4WGlPl4{J||j>FZd=y1=Ol(lbg8u*b&*z?7?xO+EY_x
z*RH1@G_ihZ4bDA3Cd{^c4p{KMZn5rI>0>-6HwI+7*^wk<#e{PhK74V=bQX#2e@hjIkAHDm593-E-exuLl!ok*)%wXdt$qKaW{RjLl`K&*y
z7CtJrf4pRkbIx^3p0u1P?(*i_3!T>+S3WCd%}uMG7w>;`&0RSA->;Ox&((h`xd*Sm
zB?r~s)2Eg3a>40rB&~$Zoi`4~M>7+Ff;bf%bIbMDJ?+(x}IPYBX+6J4R
zXcB*aal=pgeYUUt{VnHpx@%R%{dzk-a_{ZBP4YLjFDTisrY0f4*4>@N?AfP?&sHpd
z+SzV{?Tt6&v$+5MD@p_0@a9ff`ikB3*W?AF1>_4^rbea_i$pCcXQDUXh2-{+7;y6F
z`E?G5pY|ivMu(wu>+4W>O=eL#&ZHJ&^-b|PULHhkGfkd298cVL5%!xk!F@Q7zJlv+ew^vh297##D(<@JKT%Z`MQ=|k
zpyC0)yz?>Ke8(eV23+^?pGr)pQ4>FJb%ka+_Uac))V*Kb_Xpp5;=yYD9*4kSA50#Z
zz&kHLTLu;G>#v=8h9!yI&p6QPhmR7kJ2r0+l4vmMo*I|6R9`#mO!2p2M5{QbTLn*W
z-+$j>flb<+9CU@=?a23RMX0)^?0KU#W1JL>OxK!{?NxP?VRu2cm+FS;Lc#i<2Y-n#
ze&O(v%U-?W1@U)0yWd=TG&UcCwr#KB^wW>VZMR+~HHcxKgSVqHe>H04aZJiRC666@
zipYiJqUS`6$CGrOtkM>0r6C4%p_oH1pT+^R_QT6>zaqv%GS`80b_4QEz0?r{=}91#
zXvNqA8qx8=O6Z}Jbe*1J8K|%X=uX`#CHZu@zUh`5}
zAtRg15`463bHFrnf2Ud{6S436@4JK)djHLN?!@unL(W-mx&4kI-}teutqy>L7uh;y
zj8v_9+XT?~y0e`fixw?$zVptzAL{cg?c3*}ZTsH^*o2BdfJQo=#_P_r`y*Y6vm;Zi
z_?sMO!iFmrn5~o+$-$9GNGONguIox~LwegnwqF(nW=qXH;wxyI*N$Uv-UCXe2fSex
zE!wua{IydiEBM~UVc~t`GV2eI6|ix=DFfM}Pl_s5C!fM}+j#M=UwVi_k9G+MpFyic
zbD|K*V(O%0nFQ7mX6odYwT}$h9iHb)(
zA*%|sP`r$AqmKPFd;fzRJBzD&w#V|q|NORd(3L;@LCFoZCEojQ&FfRzU48BKmRjlB
zaK&UNZo1(*eDmD%q=c(#6w-~aYuBwuC^4+!gZ#=Frwq!YIeq$`&X9Tfsb7~pcHMe8
zDK#`5h{mRaao7>xz$1@5hoAlY0rpp_@3-E1i3|%(8;{MKpTX$S!`#@Lry|?-eBYN@
zEVi9kH(okUcq$iHEAv^TGrgEQdmquzl`qL$H+oZBnVr=wdTC_avuK|4IsEN{510|U
z62oc>xawjR`|QR0PRibs%a@zD>E@iHG4Qw=_fSfZ5fN__g{!99;7GLAV_z9!V2ZNG
zxAucPUVi^a3~=njdYDyw7q@WA(vtC
zYd^)uum7x1|J<^-{Stv!)f1EWBr3Pv_S$nS)_(GYv)|{B_xF&PI%NX0+g@9{A>BnN}qCfkj+jsx#>$u?J>%GYjG82Wkb_R6gW^eK4Y>PD(Z_?{N-OD<8b`d`z1ApO~`82>jrp
zf5Tbl-eeij?Dq3OvB{O54-g^@#LSMhRcw{rDZK1f8@8g
z__8aoaN%OdR`D|75YWT0lN^)@!%4W`D$FpT}S5lzz&8#aS!C>n}P(vbBZ
zGu1DIVw{~PUyaXyy#dcWTomnPb%w+HHZv
z=0K>x3q)#Vf_N#T=FDb*yW;`|xbr+gZFf8WN4am7=SlLonv8`YHiOg@i2_Y2@11yG5{N3QuX7{K?9mkzl7$(l6lr7LTV@
zyqA`W5WjUqN&y!HWPgAwM>SOraQ@?5z!5J6m5=U9agLQeC{?TRt87gts<-)|ra%88gc`4GgS
zI$ITN>HQ;KeSV=QdBPL{^1%SkRVhheu$9z?(b8?fR(h5s@(xlGEN}6)%7b+2QvT};
zipV_hXL^*+OZ0-rmpx=L^vJXx;`*(;Sg^CitlC!2%A;sHj6$xDDsKz`Xah*WDyI)p
z_zEWnmEzUs_mX~898$8c4YrEMQIz4eD|h}<`=3y|FjP*WGG0cQoy2>SN-!3gDo5C3
zNT(Pe7!bzHXh8QG1)3Q`o+e@DHbV=?U}{y+m?WZgqp+RkP@Br2&{zPePeLy$m@}>h
z^Iw;}R_#`LiYld>02zO+1CeME>z8z)u#AYFtFJA(fq^Z;zAuW=lRt-<6AwZ>qKjij
zPD$a>YZm$^P%?1(G~%k1Kc;1~;eC<}eMmPu)y8z`qOJEYNTac9*%ww0^y~I*m_^6!~ly^4(j?k}lGU
zB?WX4x_h9vM{qyluZDJGSY8PSR3>2zN-y
z;-g^bRnG6-%+4_@l*C4+DG{ZJ=GjrusDXoK#_-aj6trX*(Vi&6OdVD8MQmEri)=5k
zhp+I6zWCvlNM%C^$H!y*n1iub>r@7|Fq@1CS|(+1*G)ewVLal$Bvx!7v==hX1atvE_#ra+3|?Az1ye<*i@4+g(@w&;mQjdCLJar>je8_<
z?`^*j)=p`LD!+an6b}s;a0;A+V+5QeftZ|EB@Fr@`>e0>JmDzbC5ygPxjr>i#j~qzAPng
z2LU?^MN|+Ng3ltGETFd|gT=2bMPk2oi0#Q#(MAoqNQSA0z0gzb%R%kc28FB8V}mEZpc)-QV!-snBN-%$WN%J8|SV-?s7Z*57%kNmThdI@>*I4?py9
zE7i)cN*@0CV|)_K%p?N=>@nipSO4VNvN5^(mXYOhvWJE#iXp*u=P!f#W`FsPn?)FG
z+T`VrhiLxFDTgyXMf9}gF#n0=NGIMvWNs%^CdKmgIViOSM9nS+kOGtlv(I!B)ojk5
z9%ZU$M*~(pSB(!g7qKwkiw_FjSWxJ~ZGTyVH+$CLfRlPLdicNL;AzL;$i0uk=$0nL
z!eQY=sck8sZtnY-HK!B%GVLa$s<`XLua&>1KA~Z=UQ9T-+%Kt
zIQv2wv`)msc=MU7F!hj27ywVh53YU0^$L1Ab@BHP-gP0)`uAVR&R#eE2ma&Y+a1+$
z#e(}VVdmEyFX!ro4`R%oCyNq$u3~=Y!ZUH>FMlhp>727q#INrCy=yC)GAHkni@t%M
z|Kis;=IBH4+;gvr?Wdpm1w8WTvpDd;Ihgn60s*?Fkq64gMAkGf{wdOq<0VhI)HZBc
z_5m7(k1p|8zW??cm_7FZ0XQWZM>&6tkZ4;sF_4Y009PwANnU>bSqr#cb6Czq>9NrQc3X*UR>A)3_qY--rj@s^_}_aysDc?sC(vUm;`JKh
zO&V%P>6m)LB;?mm1hzClO~nw-MM07p3Tg~_9_uN}bS*gyc}0Q@u$$KSlwG-Wi%dkp
zk;kmW8?Q`4q{c*S!gg$Ee+*}ybdq3S70w)Xe70D`dB;D5R8QV{9?^IKnUvnA1BsL-
zFT2Y*j|{?3Ax9vcdtL}z*MbvOOq`NGd0HWQU~
z8|yvKAXQX<7X|j6zq)~o42OEF?!NP^UOMT+^k2t^GWcEh=un}Tg$Cgc)x%Uhq6>Dm1
z1}4!e)*cQ}qEIpj6|>x9AcOpF((i97UrFwF!%|xQW*9{VmI6gSZ6e)SMDOMTI@aW|
z;Grcj5>F%inFXLzw<6z~ggGXUSZx}$(KM>!2DGpNqEV6EuZL8GB4I=#QN$u~#3NOx
zV(+WsI+|J(EMMJPzeT_ScVa_P+DJ7sdW_W{t<6o_W`o-}uf8KNZJRCuH{b^*{QmbLvU^
z{y#X?z!jRSDh@4*WH_y6K;ft686^DuOV8aaj+y`Fdnh>VIpn-0OJMG>bTY3ahdzZrQ3x)epG%S7)M1Kk^oSp0;E
zkDvMoYQrC(&wdS=Jw8HqQYVawDd;0psBOrixi*ic8Uw>>O^jeB`j~p4wV7h{7z1M_
zB{6)~CZ?jkhvmwh7(QklPCoKTG&VP2>R}Uvr&LHnPFu_-e-64BTW@;u%gAJg-dCPX
zKjKHOD5LPHkiL)r%s_&(lpJq8`(w;K`ig)$NoDJ5Pdfz!0^`(M-A&Dspg7MYH*-05
z!!y1>y7L;Il9f5OjRBW>SeR(2CFB1nJR*k${X6h
zqk#lHT%;uM?N=KEf$u=rfRMhz14_RE@RHznFjU}E4Fjs8Po=D^V)m_mmVQ_8x=29f
z6?_9sT4`Y>ajFzV>oimiQ&Bx!L(6f~uy=L@y0&h`ij^x-Jz*SbYsW&(#-QdxPz_DQ
z;fR(84flW~wjgP@Y`|>_2NCj2kfmab~|MRyan~#_>dErc!dSDOMgJZ?Tuk=ke9U
z?+s`Z1M^VITuS0KL@H!f1Y3Pu1N(tn&y`>ch6M;kxgI^fhCH;K2f^dHq>`+eP@ReQ
zY=Gg$@7?le#lWY|N+23eOKh3uMSVBK(WH5=i%?vYlb9&H2whVVW8?9`
zm%o9p9CrVZ?xN-*)!&ET=_yEUi9nnZ7+X4g{eruF_7Jr~%cN{<4rM%=edtZR#hRuI
zrc+b!6BYej1-3MVzvX$k7Iz}EK`=S09?9bFZ__JD9}#x&olt6)3U6xC?-|
zBS0Mj7|EcHBmJnv{(U|3qwroD>_t9Jp))lz$5vz%0S2M|sfuuf*sDUki3GBrWPt%O
zwatVURj}xZdgKmy7|Ob{Fk{?U#CXpVYd_IfRgu6`Ey))W?Ls){&c;^`zkkqoPeIv$
zHSxbL)9{8kA#HD*jrxupjBODNip#d;5Z*(g=$>9jp3HuecnCY(nTZA%g{f6x?Cly&
zX{kfO=A08ebBZ!V(}?z)0Y>{n0_|hE-`OF%!JdN-0+e*<0Im?qm37C0yVH8k>~*+c
zLKjKUHWijtF+fVeXSZBTZKncs>2``GFSTNA@p-IbDrv!Vz3ZaqieWl!9tB|7c|y#V
zi-dIC_2e0Yo~)Eo-ZPIg!KnxcJbU7%dJ%tfJCp}-IeVwn_HnX6+>Q^T$ECZ~KE`y3
z6$8B_{Vi<0quk2#^aR`8!>G#<$qQ6@R=ZV`H8dv$-AQtz!hSoOo_Gg5lw_x01t|%d
zdw;OqgjMD|%U+VTp)hotag}&Lr`Rm3iUUG>Tx7c_G964fcCf$gz{h`#d$+V*8}1a2uQRYz#04pV*5J9%M9
zD(vIy9HvO%mDb|<)4HfPJH`z1j+>t9f$|->9i~-DV0+peM~OX&+I{7z
ztOnL1)gZmwB|TB;H~y2@Q^CPHSW-pu4+P#&zs3TTDl-A6oLE3zJ|_B0_Fc&!wXz}`
z@4vnEH9?upYvs(Md;j^P&yJXnwe2G?X;_P7_7Pf->7awBojv@_GuXnb)VXa}QwHhG-&ybImxf!?uk%A%LAS>y3TmJ#9Qr*v;3G8qVAd>Kz9Azq`T
zFYaxo;)Oy&t#pX~oT>s(xFHC6>bEZ)$4Ot;kVcU`XOZa5n
zTI7m`<2g3
zIKqlrHjd|M0wUE(CZ*D*SyJRIVth=Ik#-&M);+CQl3s!J?QOz-qn^r!bH4OjuhB9X
zu!&3j{{pc09RPMzW!ul0ncKJTW;eZugj7Q4y@P_Hf>J+F{J@5Y%BTFOC<=(6f{3DG
z!w#tErwG!d_mYr68UfPVZnp2OGv|NLnRaIG+}*n=sGmD9xp$|WDR<^P=XuNX{__IP
zN2ZZ!WEz>?_9@EsSw6l0{XkEYu;&a9fd-(wefNkI2Da*N(y0#O96%ZQ`RSfei-CKf@sFB4I
zx?2;hc0fnmGMHJ&B4_q94K>8TdPUAM0bU%jqQMda2?8}sBt*#mR-?~?aM8qsW}O5%
ziL64tQ|inRM3#h)gh0;FOHxXgTLv%E%+q;pv3_1>)>@^S1ZO)s`Ihu;*EP^hsnT-C>bf%f~w`JLdW1XIufRny+yP%VBMkRD!Tdx_VB(H7H
zv5DCnZ_bspmV#*{Xr*N&Vmy^%J;}JSwXweR=G>`leM@U&--kckU~b<&xGR4I;6|pA
zX=ECi{`~jr7g@Zrpvs0X?6-^b_MYFvj?Q0-GBF
zxRGgO8kzpDvNq4RHf@^C)@WwMB2ZKF29dE0wr_umHRUq`I9S{ejxa-rOfbDKi-AHH
z%hl2vVrY8afJqFEr+c(aF3tutLzLi>RR>`ix=F}KR7}$VgFt-0O#(5IO-tO4z)Y73
zne-_@Ph@4LY7pOAc;o}CR`q+@?B}TP@U*uavfe~J&11HPbB3$AuC~%^N
z?>p!Rm%$ZiZEsRTS1tWDD*lsm&%;M9oRl#~0B&R&nMS6O>0bogCQk-?>n*t7(cElj
zD4%cwSU$fEotfLYDO>iqbsE`jT3_sIyYKml?%`
zR?=d`r%Do@9t6XnBGVG)C}g2q?9jQqgo|
zAqy^Gs6a<8QbR?N)G6c(2pmfyfJI1SFyw`Fxuu~X#d%n`*sc$L%vNg~hygolXy2CD
z1IM3Xo&1HFwZ##D8<|F?k!fW5CxP2R2Z25Fj1O+a){w~zu<_$X-<(I^*4LTU-;0b^
zE7%#UEhL!;+wUvvVEOt4OAyfU0bv|8HEt9M2n>x#8$laE8rKQHECM#fxFu|dh!bs!
zfeYygp-_#Om1rOR+=@T{tXRlptYQhJfh3Zx3lOiJict-Fp(a*mm(|v66}gz95s-->
z656?zm}CP1Au%W|QzGhF1dA65Mnx(?5!^6g3)m2-nS_cZjSf$9(V)MH{S~QQ0ywQ`
z1DjUVZNNuIM{4-T)3fP((y-75Qo~EXImk*Q045#fs?|
z0Z6T8aTD1>H!B#X^slkL6w^x@W2s(d5@X|rAZJBQ)*>Osrg8e@T<9nfuyH~{7Pmws
z2!Y#%o~Mt0bK}y>g*1*;C`cWu^r!_$HO;~3hFM4&8Ie#Y*_zM|)&=JyP)jxINR74-
zZ_Gh!=t9n1hOQS)2zW>
zqlu9=5t~ce07z)173`VOj4XZT3Bd9eirE~Bg%SaJ8hOI&ydHCWdH$UiK$oYh?`|^C
z)uul;bKmS?KR&Mc--6YR0NltlGL20C&HyJ=M`W)br%qUe|4*GtSYU3$wv8{b=H588
zM3VJ2##v2|#bO1HF0F?ZGclIx$!L0BqyY32gJY~Wnb1;ZUWXaiOx+ThX@U{0vNY+U(U?Z1{bGN^gZngK`z)ig(4hq)M6#HF5H1k<0JyS
z8e)EQPQ(CZcx8!8pksMzAkR_CmXOc(Q!_Q_*U~8Jjy9re&ZOOnw5YS$!1l4)o8#x^
zX5V!}bMD_7;0`(CyGQxYlvCQ2^I(B(?#agb(#+f!tm9l2uj4_XNT>LkUB=W>>Q1?W
zlS&CUM
zO9e|xu@`ei*@xA%E<|0+0*oTo7B>>mb-R3%FlZ*42-s#=NKDv@?ydJ=)1Ma*;i{v4
z!oL>#eR98B=q>f3%c8bpDI{Wbh!MuhvQ6STb-PBkUs%!q9Yvp1q&}-a9Ms}P)DLtZ
z=?V>tTN5`iZcZ&?@t9x3oERRXLvg|I2<&*ygq1518_g1rZ9+bl0oM&LsX!>J6w-{?
zTnt-Vt(UUj{pM$_LJ`$fW38@m39A~S7?!>Dl}D=X4GuZ$7S5H<&Xu`jUjM~|ofY?G
z##soo0#f5V)UooQ8m?afm3sv@EJvi3seq;8Cv*Sy*SX8eKqPehFi=E-kFt!b-msOQy
zX#-|JF0
zZt7;d^3eUT*3UzX;6?;ls%F6L-Or%c%)`jcLnhfoz*vL0JP%DqQp(~POqb`Wv(Pgs
zw}BF7>0Ybz4m(koCjC!p#_lch+CX48erheTJWU3<$m$OScAQwQl@rA^s1Fv*
zE;oPzkHbv15_gT;RiZ^VPy1!-INHa>vF)k5QCj-iKLy~z69FD8TYKo)H@!(WeKI(U
z=!Zf%fhrSHz{EG&ma`I@3@L1jm$NOVf}F$ZeDJeEfao8}>yEiQ{y`8#p)yVv1gsE9
z^D_B)73e&M=j5G8=H|BMFgy`~Z(P>yVM-}_8_YC!y|Y}hIj10u23>-ip&L#zbxZ<*VZ_nXyG>TP
z78WI0ICr3kRI(AZV1R0+|U0nkV;S^QymM^O82CF~(zTg;GD(
zZ~ZAzyM;*9%_mT6Mx1uinO#Dj$$FxO4PFYv*PMD8ZWXq`)9KyjP)F^S0?=9D8I++n
zbgX3O8YH-Z+FFieZA^llWW^%lQZTt<2@nb{Mfy8WjE*H>rN_{AG8_jY`_B|91}!?a
zk0n-j^Ear^Gb_T|+W~OSw3vWyp%R}cm2dYi2yh;&7zE(pR$h++I88C-`rBxXg^uUsl1XsWyf&G`
z(){a|TuAo&lC_ETk}(<5^d~`0kITOki6q+FH_+p*ODB|wKrH11xHX|}!qFJpG#@&3
z_M)o1VKBt%f%-WX+9s^TKW={k4aEbf53mC_Hf_HXx#D(cnd4AjKLaVF#;)nCX->J&
zm}7QyK}=K1iNXhR@m*7%D0h9JDk2ZDxpK&mRiHJYucD#fDj?myo&dUl+LSJf3R|Kd
zlSQ^6!zyL4N=f)R`@rL^V3|?S=$b_)pfF+PYZ$hT*Rkc{-=Va6%`O34#GAJ>E{U7u
z+Wp>jW3VJ56B=tG9|QL225!|trr3&ozzdkVIFB%8hFJrG{<46X5(;o}*lxKX5OD6Z
zI(J(Omcs%aqpGZDr7|&8U_%jr65-b?^Y5u9%n+*+QsSm_9Qlw4b8B&c7+oJMVs>0I
zI;-52iYQZVWxyQ@;D+sgi(+pPOf8zdsely)T!R4IZU?uaAAS}xA65-;fh^m9C4j4j
z=H^_AIGXCn^AAhM=77i
zy3Mzv#QTY{9g61W1xV-wY%+kuJ+|&$zot3N(j~TbYjy)jnCE>AJ({6PKv9K(
zxJvRgo56~03iMgpx(Z3wha_DWr`dA)dP|xxMOHhp%VI$Ws_@#WFj6Vl>Fx$fNrvvx
zIyUsLK>r{97zuD9__L{?qc3J5r|~@raBu+b+q|M_N`|8fz!Q1;n#|?kTq$h}KMS7
zeDqA1P9Tb4cOKB?dTC@tjILCQFy-<9F!8{B;}t+Lf{lfkU$l8L1WMJgx2PKJmDt;$
z4z_CiZ@Z(|aU0x(24yUXZNz9KxC!=VX~<_w5_m>UJQi(j
z2O&<|B;tbc5x6x2&9jQw^4kBReUpJqaVB*QJ~SzrA(L#4
zd7x(d+8mIxC7SK!&Mng13ejO;6aVOn3(3jYW5=q_(
zVcE0jTuPEe*cLQHh`ES6StOK8jfPg&W}gQQ63jS5&nOL>Tl&y-%Xh0{aKgjbZ0gvi
zmv)zlQcgy26d%<&iK4u^oJ}Y1UF2N|h9{6;CNC-_wOK@a)yVuZjg$-kInA<&Xq-&+xT$$SdI{&+sARKEpyD4V$wBx1j%A)dIpj(
zg~>A4O@K$AW~ppgflxqB#d{Y8I8}#h@WJ=tRos9|H;h+zwz?8UL&(8kUmv9jryF_Z&0V?HHO0&y4+Ftaib+?ZpMbWD?)?Qb(^j_Gmf
zPiybkD1nW0Lz*TFIr|;0ZP^E{tp`YOlffj^R;-S|Z7R^Q<{oU_R6<>09+t1VRa%vd
z#B8(>ASOkkH?=FInwbNxF1T^|>8P6M4lGNb8~4T!Otp|3+;g>AqSTH^gEKTg7|@Df
zMZ7XY63`}kcQ6571a2Zi)3l(E-3wW(AAH?%#6`Ba06twX{g^WL|1BHeCB`9{_Puv{PhL4xZpOCC$L`RFYJcr+Hg3UXKLgMGh+(D
zRm;uGAKtX@Sc#P+WfrzrjWKVpAj1g(U1UV2KMLXA@5BA?+yOV&=jF5y4_F+FCUX`O
z_0=o|4lL&%73|!H#J9Cp(Wyt{2@AQUnA48N{S*grpX6{rCdZ_}GjXsyJs9~uaH9Mi
zW(BYffd(%Nu&;2&A)hE81eiFYL3U6ui}a?U%Gm$vw|m=xZZMT~?prU|P9V~M{KSUU
zL8-3K!D3c}ERiYO`@T1g`9Nobhz)SUza;!bGNCR~fbtH}Dczs0)t=dAoy7CqY8L`X)w2nR+u~;nuXq=YC{P+fkv58N^
zVQZSZm~k&QMCG``QZ{{2H%>X-KwV8-UXMHn-M|%>6r`z>yBF?R!>V{zxgB`p9!nEx
zPcmwgBgSe_n06or*1ihfw?QVYo1#_%vq7$a0Rp)c%-jy>+jG!b=0GZniOP8G7RC}&
zjbHj1Y`W>&RfE(z0yj3y=cCdjjlZok-|-d8GjUnoc&99AB)}}-`MPA}Wl1DgQWtGn
zvZMA!PO1r#IY7fAf+}2dC?b4zWyWM4&@td@Is+^3uXw;Vt(xX62kd+kAoC+=DgaB_
zZSea`7
zaQ4Ql#FDoS+=ehwMy+R6_~9bAt&j^>W~Lm(6v>7#QC2iRMwtGF4BmGHn^oyX>8lJ334dP
z4M~Pdc@bo9qIvZGXc@JT_R%FM8F3A%aSW{!fWQ7`F~-Gac%Wl<3&cf(1$HIu!
z6S#@|@R)O4JEGAwL+aA)!z5etf=RSsV2QAn%{%R3oP2%*7A#62os2ox_=DNY?2sEdFqgzdfT&Out8Yb#m|d=OJuI_8gMb2x
zCE{`fhWS!fUNa{U;MqVtO{tN5PC
zjDl5LhrX?AP%03>6$#vmMPj%Xa%N7pY+8h91b8}uoQzea-zQF35Nm41Kz=g{+jmqA
zaLqLM?=p)!4{*#G9@!6vZBDaidxdcP)^qnE+UU0x*e_a{#c>GH4hKEXQ=&r|AIujQ0u%1v7uklz?C&BPNvMIF!i?&F>hyxeYg?gbS_tq`()o>{
zm|JAPN5uCbk&0Kg&_?FUm2XoOB<+gNjq}i~m|}RPrufcd=gzGh)-HS2Fw1sv{T?s@
zS9w0H;&KH6xDR}GXYPWVYm!tLo5Lt%+yK2-NtB%Rh72?jJ~)vQ(Ay)_h=lf|o%n2(
zN|L?R)lVdFYa^y7%!!-;k2>x~9rbAq{R7m;?RZh1gGnGVX55JcfDP1cOa@)RVUw^$
zRb)_#3@Xu_2yD-VXg|c7U~DHofp>qc9q;_`M2xAgLz-BlsA*v5DLcKd2wG#dpTA^T
zGF0QN5BAD@I)}#E0WAX7U4VB63%X;nRV<~Ell0Fq+n1%Ih`O5bXx{56y8?xOSrG%MyKlL0#W}Agc$DS!`&{aFVl^@vUM_(&*BzZn0yJOb4
zP4grG%1=>MYzW>-4O_9;f~b_cZE;ggQgbs`USud&{?LR6z)W8vf;eAiVu=0ow0jw
zCD2(4=n0@BHW#aHgPv}n2O{oAsa7!Yg;{Tzd9o6F<9raH;+27m50(=*$c?EI1cT(9
z2l5>U-=PxF@ty0D`R?ev*&YCb-PqRKlJztVjbe>|WCuPYVzc``Zk{ACNmEU~lj}<$|X$aleUZi6>A`=a$m#
z{5;Rx7;yCa&uNLkc+T7gj2YV_qY`zO*?K0(P{2xv`&SxN>drnQML@HP$kdHT+mvHb
zH1jAF^T_72$mR0r%?+SE*G?eUhwP4(DD?NqzF!2a#B)GqlZBc8eNI)+O9Nf|?wGVn
zBV?wS2337YCVw*SGdx+;C;^MuM@f&t6mZHWd7
zP3elqOB>?1(9k7Rvv(W71wc*pdAV$ZdwM2}E7o^sAI&kt*`TN4sKe%9@dH<4@%>+-
z&o9xBU}EuuS7N^flkk&oeGu?XgmB`8ju%W1_WqMORaR
zu7zJvcfjDWLoqtCY?Gw~I{Q;79mIs$GSwv6oNs?G2ht$uL?vvOM_-nM8_L_O#OC-Q
zezr2q;gPA{dz?vd45Fk`<$;GAS^GAE*Pbym{@0dH+mgLfHkjslmW^PAS%UM`&M7Rm9kHs=xm2J&&Sm}b6(feDvtu7P`
zodjgv1a!R+1!X&XHle@Ji)`N}x|UvfFBzSq$O6#2fVuy5Y~=5K=)^I|()EiSj4qvR5Ad
z8a{UZG4lJ82d~A2=NyBJ2-IG_{~Eb$(fld6;|G`EtnzGo4u&hLg20
z1e+7VC}Jq30Qlf6ElOP^l?B@O6+U%;Rkp=IKkdb7u=-S
zJGYsT6aAZ*%<~X@T-{LSe8|=6Y=;L0nfE)R#Vf%vz
z;mzBR#*<%eL+{^PZL_Fm_s5%md=NTESy=MM>lhHA?DRt}+Y;KhBI*6wn@dB|YuD(j
z&cZ)u``mnyw4mA8ez`L>qcCIAd+E@kqN=cP6=j75)6Ao*za2SZcDaG=jx~-+P}K7@
z2uMsJ7VNiq{H#gx^T~Cacl!WL^MI?&D#V~hNOCXNEa)5aLgl$1jB&;%euj^odzhTn
z>4l{m}&OcVp?zG>6shBx!40`*rp3lx^a#n!RsfahI
zdVhfVgnd*z;ua|3(#~7w9^VPE^89mwss(OKmK$Wk6b6jo`MRnt60Buno@8@k)Fbb!
zw0#RUm$2DfrjgiO5@Baxw2}!TgqSP2nIe+%%NS6V;D({VjqhGetG3sU%99@=@MhNz
z%Lmg$%M*w^X+82uk9hOn1Mw;SGEhpXK-o~IO9sX0t<3IHOYJ8(~HqLa}o@p
z)*%4Sf(LSLOn|18=<)nzo@>J|Kxzkc=w3R5jdR=wT}SnwD+}zVwBRPT4K^aA(VcW`
z|HA@ojrU^J)-C8IkSjT$?AqZ>S++~Vc^~Nw6cy4O;F5tO4rz1)Pc*=bsC4oe0?{Yo
z2v4#7xT!NBDyGAUws+$x2C^L(DD@)WzeT2x+0o&2cZ7AWuNEyc8*swBDYD%MR;=A)
zh61CKKL%<6fk<_Er9D;Wkp5k{W()Q?@!Ej7%cMkO2KeS-u%-POq4`zK*@uxBITgkob771+g;mWH=R#aJqFv2=dttcvO$b)tgN(<
zZ_MPb$xcl>ptC6f
zlqI2iMqC!e1Li7q%VXLRmmE&yB`ohgsJP0M`@#@bV&Q&zg~N#D%Vu&f!cv+qg_VQu
zmq;lv(v4t7JX(o`58`7($4D$}odh{z=a;Z{htM5S>|5jwMiiX=`D3HRz6@KA{u76Ofs
z+0KFoc+w}Qq!P$zOOfA_tcOuEN~RXLqp=}F_bVog4^qgqQZ5{?B&5vCbv3I@Cs2PY
zzOw<9!|1u$&UEnqbdVdS8S-rbu-(M^cm=_SvM9?igA1EYSefdJ*ko#_uE2(`9+aea
zD1Y&{CBW$?9cT}zsf`k`j=sJP$me@tmWl*)MOg?m-wQ0U
zR=~U!e1W*_n-dZ_%Z6ri|0+PZ
z(*UOMxm^N5R`r_l9JugxM9HTG1sS5BA?8~{lxAG($ovjFuMopRL>+TN!Oa=009YYZH~hu9~p@iYWqB?)$IClFkjNX)dAC@#_gC;*WT2hD$6Rj9Cs>SXD
zWCW#&!iu#htXz-e`wm8dn&|6UgF<0|KrT-#g!Unj>)OW9FnW$RQ19w_4Jh{66;~W(
zs3=2Yz$Fqk1%?g$63Co^y_-uXKW&qvShxMBN1_V@*tmVWEuSR{l?nzYX6hh|rjXS#
z3Dk--XL0Ho8A&UPblnAFrC+!{FF{SPus|JI@we`pSVh@1!;a__|53MGo9e>RM|a9|
z5!#+t-TXK7IMo<*neeVTmRYXbV9Cwy-DZZYyc_cwoT?%cHB#q@(17HjD8@3M
zPpE*WGdc;^Df1Nmz2J)=*tz~H$$**TuM<&EikVO*Xu7^SN6V4RhgX#Y?3DY5EI`SbL#N?b6j-~gd)9pDCd)T16iQ05Xb7;0l&6n
zz};a3nGg&%X%H$tYtm`COfKg(*!BMYaSZI(j>0kZ=(D!SFnG?3GE%X>Baai0I~zu-
zS&Bgvi#yQQu^6m0K>d|s6|;i=XEzNl0BUM}t^;bK+P39J#t0D&S$o9m$Zk2!I;J#G=
z8?VIqcGpxzO%Tq8IY=zur{Ym~lq<`zo!Y!eZ!UXzFRb4Ey_{lcaYBY|@q%9qJ@Tci0^O+W;rj@l7j^17^?1
z1J6I|^*e4%NYTuq`wvgk;Bg`{hmS!lO?b1}c0qJ(<2d$|i}Clnz9`RUbNl0nr(2M0
zoJ~8Y;MTs8v5L}Vq4^P#VZ3Hq0O&O51T3fMsTYLfjJXdza}%b`O-S=$N*|B7KFKey
z1793U2EK6Sx!v4C)tZxPA@clMS`4&~@4>bW_1>>npSEzyDINIppGV6g-r1~y2mUbw
zh7hWbTWDXG#g>j&2rv!0m%1XVA^eagGW8P?Pb3}oMg%0L!Km%W%7@*uq_McFP9Nbw%NjR(~%+|~4fVea49vLAl+i*KU4rw^aF_^Xwp9IF?A
ziuhjLNqzd$XUf^NI8B}Meg`TLFA%FuOL{)L#C
zK`doV^Jr}D*zCP~mLoZsCsvj#bfJIot4OrYgVjq9YQf0{#0^K^`x^)75&`8R57
z0P8l~gNd|LvcU#9w^FvWHZj{8<^7gMc{K?y&djam?H9*^-n0Wv?^}vRZ8OjsPa#R*
z6mxR>EE~&{Qj=7
zo=;I!K9}aoB!PaRomiWOZJjHLA=XMOniR#5gZU!TsRq;+-=1eYMM4<
z`|^Q3z~0K+Frr8CA>#laWHcXHdL;yStg;l8zZ>`R%*6TBWRf`V{fA=zeWuDy9(rsU
zesR|m3b?^zJevC;YKA@9q0U@H8h-GsV{!bE`^fE|dvOJB|IPjA=^gNx5a&Ll^UbJ1
zCg&lGbN;8FdK6BhSxnD7w+wgv>0xZxu+7`w2J3K|gg>O3z4ugn`cvnkuC4|>J^i@z
z4-ew+4?N}Nzo>aOiXbK?j%&qdK6M@@jBAsN?)=03_}%aC3$i))iFO(iqqA71871Ao
zyN=u+7hm{6xyhqXJcX}){rVu-M5veW3f02TKj&zvbZ?%D6R2Zl>u
z!!5V|4C~fys2acyKl}hMgyiujo-5mA-rQL@=dAZ&{=8Y}?(W5}fBR?L^S4JTp5M9W
zUFJJxIEy_0v(9{{oW-<${T5t*1D!K{4#hGLIb;DYy6802*VoXw^x=*>9>9I~Jrmki
zu^D;Vw*Gs}7*nkH9IwW^LOEV)-mDFFA~;P{pcX#3l2t^pl$XNG^JdJ%)*V}%pbzeS
z76`cV7J*#fdgRihV8r7vf7k^hMhxW(!2Z{tgZ}Ub
zLM=xK+V_z&2gO*~!|z2+hVs7ojwa-m*WpFB68pE!LMx$-(8n}but<>|0m*1NlP1Pz
zAIszEhimED4H>*Pf4+s2k2kUXEspLkd(S5yO~`Yys~+fq7#~qJTry+Yq_&1**)ut8
zXUrdZ@+I}e;onG
z$A>%z0d^m{=%e0otbxA3dM#a3_7GbGz25h$2w<X@u3haf2G%#V9O!}0_rCij0=1KeY;#oW
zQQmcn|IR$~MBIGy=ZB0Z`ShjV#+`RQgwK5T9DMe(XM3tYY96cW>e_4iSx(_oP5SEH
zBB!o$iL43dD2>?5>}mpr(4wR{K|qyAq>+lJWd-hsUwF(87LoYFWpsTiQG=#T8yZrh
z(Ac(!*vL2}j1+-gO14*bU;=Luur2@PV>YpnH##_rpcR@GD;NY<{(P+exaKiIrbWI!H$m78~YEjIl<}qpMT#2{YA4%sg|YI#ASgc*R-;8B0@FxaQS2(LccO$V=BCXQpAAjwjJ95hKoF
zRPz+fo_!WZHMPJ<(#58A)AvG0Ee)~|Z$c0czm6fELLbOLX@az_B%Ce1mW=F>1~_WNjlFMfZwFEe)E
z-8bRG=f69cN}x=4{qX^epLQb6Ct$+V<1v29ad_1QM4E28{-mtfI6cB1@L!EMcJ%L3rG@4<%>P}O?#z6TxZtvmnRbFgFc22>Xd
z&nqvkAR#tw_FOu@I%h5iHvwXLra{g|jhGv~bpp`NKi6iflP66GfZM3?(-5m|p?Q=y
zyVIBc-(~pmtv6$5rUMT<390%?_S`U8&g!&z?czb%?&q(#7B!8tsPmoWf!hzhcWnUN
zKK6+(qON%!&GS*;yZ{rY9;UFnnFMMt4SAl6U%ER0Zq1_(rTH+lh`IG}eDad7d+WAu
zd&KJ(1hA>#cF83-psnqAnoq#!wi9vOasG27fUT}BgKvHFHyAhe6x{gj-+Fmg;&aNR
z(=m1G`!Rjm8D2jlp5L)N?Q7>M{&fyFjmQolF}aD7DFRH2C=i3o7e#=^fK1w6xc59y
z%)w5r6(RTi=*e}UztoBT&R3A{-!8J>z|EWp%11Y`ny~}#z}QKPaQ3~QL9J1Tp3c{h
z>v$1*p$B@&l-4ETsbEfmICEsITsc40KOb4vnK4QFI(~dQV)+f&+_?>R-&VxWzS@A-
zA8o+|0^fBnjz)1H<)ydX`)7_DiN|zx*o;vEzwTByC!p7L`%}{cU?IVcmc>MYS7L6-
zG_mv5Yf&u3ux!npbpMiG+yLXka+XC+x(?H(or31ZX2jyUoQ1+lQ-g)>4G(+ZwyW%{
zn)Mn2;SxNk(#RuN8?VgT0wGqsyo5~UK8xe(%TEt1KJ9{=JaeDxTiW~Z%L3b6e8Gv4
zZO=UT67=+D?OI0Sr!?%S%V~=)2zDg<&azXm)d2Pv<=8EqGw)yfE
z7e-#{)6c$wPk-*42WzuJO)Ahk?U9tFXY^cdDPU&rDluLL{CS6=a0mkT6&ViKU{nIzrc=nMZZ@OSgrNo58M0dn@-L=5w{
za@kLQ@V&r(+c&I1vA3P(?cS_T=bdv#b-qAlI^pCqq)9S7r5mOM{{F({pNeeqkRwjT
z_inwttbJjQbf+htd|sL))%AiAp8W3r9)=%}Vd8`_fkhqLpQQN-w2OJ$@Ldjn&}yo2U<;=ltgpmXbY0xMX=X(%of&oRxh0e$lC
z~69+%?tO{aqZVrIPZfAbp7dUy!idO7}zvQGTFx-F5!!p<+1D)
z%L$Otyje2{z+%K<<9VS!{!F|f9~biBiZ3~Upxnwf9;n(o0LMu
zI^OrLLj&7A^TH}WKM$dxlZXh(Z(jWgeD;c45JAq$gD65b_22{Nt3xnUYUJr>mPmkG
zzhMgw#(dkKv0*EX>d$e4V}iMYesr0ue;HAl$8=s0sb-#lk!cq1X96lX0bWqtwV}R_SX@tFpN58dhu!(hh5rsX
z)cL+1(`PUA9TbWIF3J>H@x(%xa@(!n!mN3Rlx;R?Vo=)X@h6^%-2auOD~7x!haI|q
zWcP91wg0oz!6*y&Jx%)CR4vFrG2uX2o1p(Ksw2Db!uQ~|+x{H!C^E<2#sg+HPqWbl
z2xbSDJy2RJ&t<$(gNdPvDY-S<;=p&a&&w(R+IQQ92GiSjUD<91lHeV&g{cnJ>k>WU+~*i?iMx
z)g1q$^w(*cmkb_w9+@Nj?5aC4U!ak3e|yPzL?)J~N2zNvH!haosA=R_`RrD@zj18q
zT#eV>`d^fYCCf?+#9*z07!WjJF9Np-V`m~x;1-YDIde7j8pciDitk+Yzu=1i{*Y7
zUT|8_r#SZ%bobbPsjcfC^%>kVFXPlRKWT%bX8W_nV4-XElioJ5+U6m_twfA1X!e^Y
znbAv6KY<1F=lN`C%mj3Hca{0c-09KBANK-20)Cw_cN6&&J5-ArWpq{jl&g>*?q@#SN{RO{>7uxCnusQ6Ul@O
zaZjaE(k!@yn6)WN(a?xlR3Avh;z*}5Xw0;tG2M!qx=BbkPp5r_Y+gd945X4AE#nxb
zG;YF-2^uj(;Egp|Jo|JH5^bY!>?bDRw^#Ma#BH~9HZug$2eZb=(&9cLj$6{TRTs*s{FVq;8J9*-Hab}RCI+tL0elk9cVj@5W^#qB6s85vl@
zh_&*<02*4RVDB04$Jn+BGN>d$JBtMI+O&qTQ**fWhc}?7)2skZY!}!Y8`?d$;JB-Y
zsN6Lautl*ppIx}im;U4GAi!OETS#fc{!yO(+f}HoNkyLUiq#wO-t)g1$T5>aCg1k~
z?$rOf4uAgT<&pbu+}wd9-*p8&u$EmY&@4Doldg`W85s$B<>ep51?Qbo@kY+s?+p23
zt2uQWSKsHY|JKdF#DyPxZzQOR>7YZ;q7m?Bdt~V)0BNWtcCm8l|5iNil~>(@AN}O6
zfKKSv^^XMr?mcIG(uoFRve2S=_nvVk{`{A}mOWMiWOi)XSTQI?`0d>3JGXovpZ?tEs{^>uixCBM
zUI5OoeuE1>a&eiyQX_4@eULzt&wl<(`0n?A6ah3t1Kj9|bFpRJvdDIAVB06qMGXhw
z#9xypj>EFW_g6gk>#qMHuKUIh18k`hz_~#(AN|OgxaR6lRcv$mjFY9AG0f=Z&YO;h
zANpa%{f;~KV!Zn5n}O>U=QDfGRNVi-O#zS-A5$j0A5aPxYnm@~C4Eg$#Fm-v1A+s3
zkTu_!wDyQ_c!N6Wcp{EOB7tNoi3H6nR;@)LSCH?h&|x$LD~qR5n`%T;dNcuE6VjvR
zKu^?3bs=5UzZRoP+Bl!09bR7wJ)b84OGs5FD=vn`fEBdT?K*4!ei
zPNa!ifq*f;w2qtc!n}w}hmmomdID1`p!?-<1orFBcX7)^ojW=u`s~A7OS7_n6n@I5
zU;Pf+dpf9xOv`&z%nl$OOQ3%2Ld=`;PBhfj6Kf;p7qe^H(Vz6Z7V)DWU5~CEL20gh
zA%|ouf`+gzEltq7qI`n1aRNG
z#Ah=Hexf|Uh4Da@06%NZlI3RT7j&4W&E#05FmxyhJakS0^%fQaxbOTz&O9tt=9yOf
z`f+M)118JE>E2L_MO5u}k5`_c&3!)w;3y(E!mgSt_G+O(ti;TA!77!?!EMlDq&)Od
zr6ksn7Dhh!gU+foPq1OUAVbJhv8YzdSs7!|`v*;T!R5IgKZ-J0KLIR4y)X(OSwuu;
z)+MrbP
zRw~1JnvPx@%!wjow$I9-S%6$j_>&0WlIaBcdQ0f)=$DlRq#_AzACD!GNz|et(}tQ<
z15)XUFdD{EdkHX0bNV$VQ+9e|#D3SUq&5ls(!`b$F>u{UTF=E{71Q|WwY9kCH$}X$
z%5v(mDUXlF0*|gIjI5L=Wg3DE&AHcpF@Yc}6kyHhyy9t&{?1OcuXU;t2%jT?(WA?*
zM7EG11{;G}G+|IbRo6NL6UQ7pePeiC;kNb8j@j6@+1R#iTRUhPv$5Hjjcr@aj%_ry
zjpplj?>YD1`Z=Gq=3HaE^LfV@!R32LXzQ_L%)Y*1lZ*sexFZS^d+XaB#4lBNFEvrY
zWpo|ZKER#y(-1^V%F2~lq>yGZdfa04wi^{dN#!7J$}PQe8*xSLzCWLEG-+OLSK4zZ
zvd*p&T>hRDX$_u$5Mqe8NxC)7H>jK*{`95yReXGhNPtEnv~w@R~*%*TPRl-1)}*MxgPm5
z#+aIBgf5==RVm(REW-)34v;jc3w9$RrKgS$=-$%i3r0mMX9OHX{78`XJ=Hd6tuuM-
z{pf_{F86UX4bQ{VZYI#k58v1nGSUaiNfdU%7!dB)_$)g&`a|r@G(vNz$SmcMxqaIE
z&!aZgpw>vS@k`z0bdE2MCEqg1zXeU41T&2_L3$)4EDw%fTN|WfCIQfJEbmf1_tpg>D?cfKeF4B?f
z5)9bkp^c-$z-eh^r}(fqLPexSVtiS&3}f)TV<##4ZCY>9Eaq*ZIF8L8YMj_7kMf14
z)Xm7qxmXM}N>8y50aK8P#eC0<{rh|HL@Himx&XHp7p)6!HMH;vr@MLjo^g{)f6^dt
zry+ijRi=%^zbKXa^(a)nrT(ToB4`gbspb7b9~z?
zVfs)9tLlt#H}LgQaCiN~P9roaj9VJd#Nu(yO+(Z{Cc9LQZkoID@QLPJGcK^#KkRzS
z1j}9c1x1dPqF(KQ`*KwJ50tt%qh%+tzdcYP&q|eYMO2R9#ZZB;TgnqtfN7`Tv |