---
source/_integrations/openweathermap.markdown | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/source/_integrations/openweathermap.markdown b/source/_integrations/openweathermap.markdown
index fd3d948f945..229eb872670 100644
--- a/source/_integrations/openweathermap.markdown
+++ b/source/_integrations/openweathermap.markdown
@@ -16,9 +16,12 @@ ha_platforms:
- sensor
- weather
ha_integration_type: integration
+related:
+ - docs: /common-tasks/general/#defining-a-custom-polling-interval
+ title: Defining a custom polling interval
---
-The OpenWeatherMap weather integrations uses [OpenWeatherMap](https://openweathermap.org/) as a source for current meteorological data for your location.
+The OpenWeatherMap weather integration uses [OpenWeatherMap](https://openweathermap.org/) as a source for current meteorological data for your location.
There is currently support for the following device types within Home Assistant:
From d0d75249025329978c412fb61eff105e6453260b Mon Sep 17 00:00:00 2001
From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
Date: Fri, 21 Jun 2024 14:43:32 +0200
Subject: [PATCH 16/25] Icons: add links to related topics (#33346)
---
source/_docs/frontend/icons.markdown | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/source/_docs/frontend/icons.markdown b/source/_docs/frontend/icons.markdown
index 7499aa6dc75..ed95d33b146 100644
--- a/source/_docs/frontend/icons.markdown
+++ b/source/_docs/frontend/icons.markdown
@@ -1,6 +1,15 @@
---
title: "Icons"
description: "Material Design Icons in the Home Assistant frontend"
+related:
+ - docs: /docs/frontend/
+ title: Frontend
+ - docs: /dashboards/cards/
+ title: Dashboard cards
+ - docs: /docs/configuration/customizing-devices/
+ title: Customizing entities
+ - docs: https://pictogrammers.com/library/mdi/
+ title: Material Design Icons
---
@@ -11,13 +20,13 @@ Home Assistant utilizes the community-driven [Material Design Icons](https://pic
## Default icons
-Every entity in Home Assistant has a default icon assigned to it. There are way too many to list out here, but you'll see them in your dashboard. You can [customize any of your entities](/docs/configuration/customizing-devices/#icon) to change the icons displayed to you.
+Every entity in Home Assistant has a default icon assigned to it. There are way too many to list out here, but you'll see them in your dashboard. You can [customize any of your entities](/docs/configuration/customizing-devices/) to change the icons displayed to you.
## Finding icons
### Icon picker
-The most common way you can find icons is by using the icon picker built right into Home Assistant. Select the "Icon" field when customizing an entity and start typing. The list will filter to icons that match your search criteria. You can also scroll through all available icons when the field is empty.
+The most common way you can find icons is by using the icon picker built right into Home Assistant. Select the **Icon** field when customizing an entity and start typing. The list will filter to icons that match your search criteria. You can also scroll through all available icons when the field is empty.
@@ -29,6 +38,8 @@ The most common way you can find icons is by using the icon picker built right i
+For more detailed steps on customizing entities, including their icon, refer to [customizing entities](/docs/configuration/customizing-devices/).
+
### Material design icons picker browser extension
The easiest way to browse and find icons outside of Home Assistant is with the official [Material Design Icons Picker](https://github.com/Pictogrammers/MaterialDesignIcons-Picker) browser extension. The extension is available for Chrome, Firefox, and Edge and is maintained by the MDI team.
@@ -71,7 +82,7 @@ If you have an idea for an icon that isn't currently in the library, but are not
If you want to contribute a new icon to the library, familiarize yourself with the [System icons guidelines](https://material.io/design/iconography/system-icons.html#design-principles) in the Material Design system. Then create your icon and [submit it to the Pictogrammers team for review](https://github.com/Templarian/MaterialDesign/issues/new?assignees=&labels=Icon+Request%2CContribution&template=2_contribution.yml).
-#### Tips for Creating New Icons
+#### Tips for creating new icons
- Really pay attention to [Material Design guidelines](https://material.io/design/iconography/system-icons.html#design-principles).
- Keep in mind that icons are meant to be contextual, not literal.
@@ -79,6 +90,6 @@ If you want to contribute a new icon to the library, familiarize yourself with t
- If you're unsure, open an issue on their GitHub. They're more than happy to help you!
- Not all icons make it into the library and that is okay!
-### Suggesting an Icon Alias
+### Suggesting an icon alias
Sometimes an icon exists, but you aren't able to find it with the terms you were searching for. If this has ever happened to you, please [open an issue with the Pictogrammers team to suggest new aliases](https://github.com/Templarian/MaterialDesign/issues/new?assignees=&labels=Alias&template=4_alias.yml) that can be added to existing icons.
From 43cfc8dc77242f401a2b6f93698bc64a81172813 Mon Sep 17 00:00:00 2001
From: Hedda
Date: Fri, 21 Jun 2024 16:03:58 +0200
Subject: [PATCH 17/25] Document "Zigbee Groups" in ZHA integration (#29316)
Co-authored-by: j4n-e4t <130256240+j4n-e4t@users.noreply.github.com>
Co-authored-by: TheJulianJES
Co-authored-by: puddly <32534428+puddly@users.noreply.github.com>
---
source/_integrations/zha.markdown | 25 +++++++++++++++++++------
1 file changed, 19 insertions(+), 6 deletions(-)
diff --git a/source/_integrations/zha.markdown b/source/_integrations/zha.markdown
index e95ff5013c4..ceaecfd742d 100644
--- a/source/_integrations/zha.markdown
+++ b/source/_integrations/zha.markdown
@@ -414,16 +414,29 @@ In this theoretical example, a CC2652-based Zigbee coordinator has three CC2530
In practice, you will likely need to add a lot more Zigbee router devices than in this example in order to extend the coverage of the network to reach that many devices.
-## Binding and unbinding
+## Zigbee groups and binding devices
-ZHA supports binding and unbinding. Binding is an action in Zigbee which defines relations between two Zigbee devices, specific endpoints, and cluster id. It provides a mechanism for attaching an endpoint on one Zigbee node to one or more endpoints on another Zigbee node or Zigbee group (a group of Zigbee devices).
+ZHA supports Zigbee groups and binding devices to each other. These features can be used separately or combined. For example, binding a remote to a bulb or group has the benefit of faster response time and smoother control, as the remote directly controls the bound devices.
-Binding is a "target destination" in form of a device address or group ID, endpoint, and cluster. For example, binding a Zigbee device like a remote to a Zigbee lightbulb, switch or group of lightbulbs allows direct control of the "target" device (light, switch, shade) from the "remote" Zigbee device, bypassing ZHA. This means that the remote can control the lightbulb/group of lightbulbs even when the Zigbee coordinator is not available.
-Binding is only supported within the same cluster, for example, "output cluster id 6" (on/off cluster) of a remote, can be only bound to an "input cluster id 6" on the target device -- light, switch.
+### Zigbee group
-Note that not all devices support binding as it depends on the Zigbee implementation of the device itself. Also, by default ZHA binds remotes to the coordinator, so the coordinator can receive ZCL commands from the remotes and originate zha_events. However, some remotes, for example, the Philips RWL021 can only be bound to a single destination and it is not possible to make this switch to bind to other destinations like a device or groups unless you first unbind the remote from the coordinator. After you unbind the remote from the ZHA coordinator you can then bind it directly to any other Zigbee device or a group.
+A Zigbee group enables the grouping of multiple Zigbee lights, switches, and fans. This allows you to control those devices with only one command/entity.
-Binding a remote directly to a bulb or group has the benefit of faster response time and smoother control. This greatly improves user feedback experience functions like dimming as the remote then directly dims the lightbulb and thus does not have to make the software roundtrip via the ZHA coordinator.
+
+Note that while using a native Zigbee group instead of Home Assistant's [Group](/integrations/group/) integration can improve the visual responsiveness, the broadcast commands issued can flood the Zigbee network if issued repeatedly.
+
+
+To create a Zigbee Group, press the "Configure" button on the ZHA integration config page. At the top, choose "Groups" and select "Create Group". Set a group name and choose which devices to include in the group.
+
+The group should consist of products of the same device type (e.g. all lights, switches, or fans), and at least two devices must be added to a Zigbee group before a group entity is created.
+
+### Zigbee binding and unbinding
+
+Binding is an on-device feature for Zigbee devices. It provides a mechanism for attaching an endpoint of one Zigbee device to an endpoint of another Zigbee device or to a Zigbee group.
+
+For example, binding a "target destination" Zigbee device like a remote to a Zigbee light bulb, switch or group of light bulbs allows direct control of the "target" device (light, switch, shade) from the "remote" Zigbee device, bypassing ZHA. This means that the remote can control the light bulb or group even when ZHA is not active.
+
+Note that not all devices support binding. By default, ZHA binds remotes to the coordinator, so click events are forwarded to HA. As some remotes can only be bound to a single destination, you might need to unbind the remote from the coordinator before binding it to another device or group.
## Zigbee backup and restore in ZHA
From c7e35c25159bf761200247510a5bca96fc27c879 Mon Sep 17 00:00:00 2001
From: Franck Nijhof
Date: Fri, 21 Jun 2024 20:32:04 +0200
Subject: [PATCH 18/25] 2024.6.4 (#33355)
---
_config.yml | 4 +-
.../_posts/2024-06-05-release-20246.markdown | 77 +++++++++++++++++++
source/changelogs/core-2024.6.markdown | 76 ++++++++++++++++++
3 files changed, 155 insertions(+), 2 deletions(-)
diff --git a/_config.yml b/_config.yml
index 83377b6fbee..58e3517c5bf 100644
--- a/_config.yml
+++ b/_config.yml
@@ -108,8 +108,8 @@ social:
# Home Assistant release details
current_major_version: 2024
current_minor_version: 6
-current_patch_version: 3
-date_released: 2024-06-15
+current_patch_version: 4
+date_released: 2024-06-21
# Either # or the anchor link to latest release notes in the blog post.
# Must be prefixed with a # and have double quotes around it.
diff --git a/source/_posts/2024-06-05-release-20246.markdown b/source/_posts/2024-06-05-release-20246.markdown
index b59967029d1..473c57862ac 100644
--- a/source/_posts/2024-06-05-release-20246.markdown
+++ b/source/_posts/2024-06-05-release-20246.markdown
@@ -68,6 +68,7 @@ Enjoy the release!
- [2024.6.1 - June 7](#202461---june-7)
- [2024.6.2 - June 11](#202462---june-11)
- [2024.6.3 - June 15](#202463---june-15)
+ - [2024.6.4 - June 21](#202464---june-21)
- [Need help? Join the community!](#need-help-join-the-community)
- [Backward-incompatible changes](#backward-incompatible-changes)
- [All changes](#all-changes)
@@ -800,6 +801,82 @@ every Friday.
[@starkillerOG]: https://github.com/starkillerOG
[@tronikos]: https://github.com/tronikos
+### 2024.6.4 - June 21
+
+- UniFi temp fix to handle runtime data ([@Kane610] - [#120031])
+- Fix for Synology DSM shared images ([@lodesmets] - [#117695])
+- Fix Jewish Calendar unique id migration ([@tsvi] - [#119683])
+- Fix model import in Spotify ([@jjlawren] - [#119747])
+- Add Kasa Dimmer to Matter TRANSITION_BLOCKLIST ([@dubstomp] - [#119751])
+- Bump py-canary to v0.5.4 ([@0bmay] - [#119793])
+- Pin tenacity to 8.3.0 ([@cdce8p] - [#119815])
+- Bump aiozoneinfo to 0.2.0 ([@bdraco] - [#119845])
+- Fix up ecobee windspeed unit ([@bjpetit] - [#119870])
+- Bump hdate to 0.10.9 ([@tsvi] - [#119887])
+- Bump weatherflow4py to 0.2.21 ([@jeeftor] - [#119889])
+- Bump babel to 2.15.0 ([@gjohansson-ST] - [#119006])
+- Bump python-holidays to 0.51 ([@gjohansson-ST] - [#119918])
+- Fix Onkyo zone volume ([@arturpragacz] - [#119949])
+- Bump plugwise to v0.37.4.1 ([@bouwew] - [#119963])
+- Always create a new HomeAssistant object when falling back to recovery mode ([@emontnemery] - [#119969])
+- Fix Hydrawise volume unit bug ([@thomaskistler] - [#119988])
+- Fix songpal crash for soundbars without sound modes ([@BestPig] - [#119999])
+- Bump env-canada to 0.6.3 ([@gwww] - [#120035])
+- Bump aioimaplib to 1.1.0 ([@jbouwh] - [#120045])
+- Update AEMET-OpenData to v0.5.2 ([@Noltari] - [#120065])
+- Bump intents to 2024.6.21 ([@synesthesiam] - [#120106])
+- Update pydrawise to 2024.6.4 ([@thomaskistler] - [#119868])
+
+[#117695]: https://github.com/home-assistant/core/pull/117695
+[#118400]: https://github.com/home-assistant/core/pull/118400
+[#119006]: https://github.com/home-assistant/core/pull/119006
+[#119096]: https://github.com/home-assistant/core/pull/119096
+[#119376]: https://github.com/home-assistant/core/pull/119376
+[#119683]: https://github.com/home-assistant/core/pull/119683
+[#119742]: https://github.com/home-assistant/core/pull/119742
+[#119747]: https://github.com/home-assistant/core/pull/119747
+[#119751]: https://github.com/home-assistant/core/pull/119751
+[#119793]: https://github.com/home-assistant/core/pull/119793
+[#119815]: https://github.com/home-assistant/core/pull/119815
+[#119845]: https://github.com/home-assistant/core/pull/119845
+[#119868]: https://github.com/home-assistant/core/pull/119868
+[#119870]: https://github.com/home-assistant/core/pull/119870
+[#119887]: https://github.com/home-assistant/core/pull/119887
+[#119889]: https://github.com/home-assistant/core/pull/119889
+[#119918]: https://github.com/home-assistant/core/pull/119918
+[#119949]: https://github.com/home-assistant/core/pull/119949
+[#119963]: https://github.com/home-assistant/core/pull/119963
+[#119969]: https://github.com/home-assistant/core/pull/119969
+[#119988]: https://github.com/home-assistant/core/pull/119988
+[#119999]: https://github.com/home-assistant/core/pull/119999
+[#120028]: https://github.com/home-assistant/core/pull/120028
+[#120031]: https://github.com/home-assistant/core/pull/120031
+[#120035]: https://github.com/home-assistant/core/pull/120035
+[#120045]: https://github.com/home-assistant/core/pull/120045
+[#120065]: https://github.com/home-assistant/core/pull/120065
+[#120106]: https://github.com/home-assistant/core/pull/120106
+[@0bmay]: https://github.com/0bmay
+[@BestPig]: https://github.com/BestPig
+[@Kane610]: https://github.com/Kane610
+[@Noltari]: https://github.com/Noltari
+[@arturpragacz]: https://github.com/arturpragacz
+[@bdraco]: https://github.com/bdraco
+[@bjpetit]: https://github.com/bjpetit
+[@bouwew]: https://github.com/bouwew
+[@cdce8p]: https://github.com/cdce8p
+[@dubstomp]: https://github.com/dubstomp
+[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@gwww]: https://github.com/gwww
+[@jbouwh]: https://github.com/jbouwh
+[@jeeftor]: https://github.com/jeeftor
+[@jjlawren]: https://github.com/jjlawren
+[@lodesmets]: https://github.com/lodesmets
+[@synesthesiam]: https://github.com/synesthesiam
+[@thomaskistler]: https://github.com/thomaskistler
+[@tsvi]: https://github.com/tsvi
+
## Need help? Join the community!
Home Assistant has a great community of users who are all more than willing
diff --git a/source/changelogs/core-2024.6.markdown b/source/changelogs/core-2024.6.markdown
index f4aaef38ad1..e7b68b96522 100644
--- a/source/changelogs/core-2024.6.markdown
+++ b/source/changelogs/core-2024.6.markdown
@@ -1421,6 +1421,82 @@ For a summary in a more readable format:
[@starkillerOG]: https://github.com/starkillerOG
[@tronikos]: https://github.com/tronikos
+## Release 2024.6.4 - June 21
+
+- UniFi temp fix to handle runtime data ([@Kane610] - [#120031])
+- Fix for Synology DSM shared images ([@lodesmets] - [#117695])
+- Fix Jewish Calendar unique id migration ([@tsvi] - [#119683])
+- Fix model import in Spotify ([@jjlawren] - [#119747])
+- Add Kasa Dimmer to Matter TRANSITION_BLOCKLIST ([@dubstomp] - [#119751])
+- Bump py-canary to v0.5.4 ([@0bmay] - [#119793])
+- Pin tenacity to 8.3.0 ([@cdce8p] - [#119815])
+- Bump aiozoneinfo to 0.2.0 ([@bdraco] - [#119845])
+- Fix up ecobee windspeed unit ([@bjpetit] - [#119870])
+- Bump hdate to 0.10.9 ([@tsvi] - [#119887])
+- Bump weatherflow4py to 0.2.21 ([@jeeftor] - [#119889])
+- Bump babel to 2.15.0 ([@gjohansson-ST] - [#119006])
+- Bump python-holidays to 0.51 ([@gjohansson-ST] - [#119918])
+- Fix Onkyo zone volume ([@arturpragacz] - [#119949])
+- Bump plugwise to v0.37.4.1 ([@bouwew] - [#119963])
+- Always create a new HomeAssistant object when falling back to recovery mode ([@emontnemery] - [#119969])
+- Fix Hydrawise volume unit bug ([@thomaskistler] - [#119988])
+- Fix songpal crash for soundbars without sound modes ([@BestPig] - [#119999])
+- Bump env-canada to 0.6.3 ([@gwww] - [#120035])
+- Bump aioimaplib to 1.1.0 ([@jbouwh] - [#120045])
+- Update AEMET-OpenData to v0.5.2 ([@Noltari] - [#120065])
+- Bump intents to 2024.6.21 ([@synesthesiam] - [#120106])
+- Update pydrawise to 2024.6.4 ([@thomaskistler] - [#119868])
+
+[#117695]: https://github.com/home-assistant/core/pull/117695
+[#118400]: https://github.com/home-assistant/core/pull/118400
+[#119006]: https://github.com/home-assistant/core/pull/119006
+[#119096]: https://github.com/home-assistant/core/pull/119096
+[#119376]: https://github.com/home-assistant/core/pull/119376
+[#119683]: https://github.com/home-assistant/core/pull/119683
+[#119742]: https://github.com/home-assistant/core/pull/119742
+[#119747]: https://github.com/home-assistant/core/pull/119747
+[#119751]: https://github.com/home-assistant/core/pull/119751
+[#119793]: https://github.com/home-assistant/core/pull/119793
+[#119815]: https://github.com/home-assistant/core/pull/119815
+[#119845]: https://github.com/home-assistant/core/pull/119845
+[#119868]: https://github.com/home-assistant/core/pull/119868
+[#119870]: https://github.com/home-assistant/core/pull/119870
+[#119887]: https://github.com/home-assistant/core/pull/119887
+[#119889]: https://github.com/home-assistant/core/pull/119889
+[#119918]: https://github.com/home-assistant/core/pull/119918
+[#119949]: https://github.com/home-assistant/core/pull/119949
+[#119963]: https://github.com/home-assistant/core/pull/119963
+[#119969]: https://github.com/home-assistant/core/pull/119969
+[#119988]: https://github.com/home-assistant/core/pull/119988
+[#119999]: https://github.com/home-assistant/core/pull/119999
+[#120028]: https://github.com/home-assistant/core/pull/120028
+[#120031]: https://github.com/home-assistant/core/pull/120031
+[#120035]: https://github.com/home-assistant/core/pull/120035
+[#120045]: https://github.com/home-assistant/core/pull/120045
+[#120065]: https://github.com/home-assistant/core/pull/120065
+[#120106]: https://github.com/home-assistant/core/pull/120106
+[@0bmay]: https://github.com/0bmay
+[@BestPig]: https://github.com/BestPig
+[@Kane610]: https://github.com/Kane610
+[@Noltari]: https://github.com/Noltari
+[@arturpragacz]: https://github.com/arturpragacz
+[@bdraco]: https://github.com/bdraco
+[@bjpetit]: https://github.com/bjpetit
+[@bouwew]: https://github.com/bouwew
+[@cdce8p]: https://github.com/cdce8p
+[@dubstomp]: https://github.com/dubstomp
+[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@gwww]: https://github.com/gwww
+[@jbouwh]: https://github.com/jbouwh
+[@jeeftor]: https://github.com/jeeftor
+[@jjlawren]: https://github.com/jjlawren
+[@lodesmets]: https://github.com/lodesmets
+[@synesthesiam]: https://github.com/synesthesiam
+[@thomaskistler]: https://github.com/thomaskistler
+[@tsvi]: https://github.com/tsvi
+
[#101731]: https://github.com/home-assistant/core/pull/101731
[#101786]: https://github.com/home-assistant/core/pull/101786
[#103844]: https://github.com/home-assistant/core/pull/103844
From 680d3b4e9a366c9958a1f4f4e472568577839d8d Mon Sep 17 00:00:00 2001
From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
Date: Sat, 22 Jun 2024 08:53:03 +0200
Subject: [PATCH 19/25] Frontend page: add links to related topics. add content
on profile and general settings (#33334)
Co-authored-by: Franck Nijhof
---
source/_docs/frontend.markdown | 47 +++++++++++++++++++++++++++++-----
1 file changed, 40 insertions(+), 7 deletions(-)
diff --git a/source/_docs/frontend.markdown b/source/_docs/frontend.markdown
index 2b3cbcc678a..3320902fbb7 100644
--- a/source/_docs/frontend.markdown
+++ b/source/_docs/frontend.markdown
@@ -3,19 +3,52 @@ title: "Frontend of Home Assistant"
description: "Frontend of Home Assistant."
---
-The Home Assistant frontend allows users to browse and control the state of their house, manage their automations and configure integrations.
-The frontend is built with [Polymer](https://www.polymer-project.org/).
+The Home Assistant [frontend integration](/integrations/frontend/) provides the graphical user interface that allows you to browse and control the state of your house, manage automations, and configure integrations.
-
+Home Assistant comes with a [default dashboard](/dashboards/dashboards/#home-assistant-default-dashboards). But you can also create and customize your own dashboards.
- If you're looking to contribute to the frontend, please refer to the [Frontend Development documentation](/developers/frontend/).
+## Creating and styling your own dashboards
-
+To learn how to create and style your own dashboards, refer to the following topics:
-## Icons
+- [Dashboard introduction](/dashboards/)
+- [Types of dashboards](/dashboards/dashboards/)
+- [Views](/dashboards/views/)
+- [Dashboard cards](/dashboards/cards/)
+- [Badges](/dashboards/badges/)
+- [Themes](/integrations/frontend/)
+- [Icons](/docs/frontend/icons/)
-Home Assistant utilizes the community-driven [Material Design Icons](https://pictogrammers.com/library/mdi/) project for icons in the frontend. The [Icons section](/docs/frontend/icons/) has more information on how to use icons and suggest new ones.
+## Organizing and filtering data
+
+To learn how to organize and filter your data on an existing dashboard, refer to the following topics:
+
+- [Grouping](/docs/organizing/) into [areas](/docs/organizing/areas/), [floors](/docs/organizing/floors/), [labels](/docs/organizing/labels/), and [categories](/docs/organizing/categories/)
+- [Filtering](/docs/organizing/filtering)
+
+## User- or browser-dependent settings, general settings
+
+### User- or browser-dependent settings
+
+Some of the frontend settings depend on the user. Other settings can be set by client. This allows you for example to have different languages per user, and a different theme depending on the device that is used to display Home Assistant.
+
+To change these settings, in the bottom left, select your username to open your {% my profile title="**User profile**" %}.
+
+- To change general settings such as language, number and time format, go to the **User settings**.
+- To change browser dependent settings such as the theme, default dashboard, or whether or not to show the sidebar, change the **Browser settings**.
+
+### Themes
+
+Themes can be set per browser. In the {% my profile title="**User profile**" %}, you can define some theme settings, such as whether you want a light or dark theme. However, more detailed theme settings require YAML configuration. Refer to the documentation of the [frontend integration](/integrations/frontend/).
+
+### General settings
+
+Some of the settings, such as location and currency, were defined during the onboarding process. They can be changed under {% my general title="**Settings** > **System** > **General**" %}. Refer to the documentation on [setup basic information](/docs/configuration/basic/).
+
+## Apps for Android and iOS
+
+If you are looking for information on Home Assistant for Android or iOS, refer to the [documentation for the Companion Apps](https://companion.home-assistant.io/).
From c5859d284fbb9491adea275027b59ece5644e6c6 Mon Sep 17 00:00:00 2001
From: Jason Antman
Date: Sat, 22 Jun 2024 03:07:33 -0400
Subject: [PATCH 20/25] Docs - AndroidTV - note about inability to enable
Developer Options without logging in to Amazon (#33357)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---
source/_integrations/androidtv.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_integrations/androidtv.markdown b/source/_integrations/androidtv.markdown
index 294f9011212..d91224a91ad 100644
--- a/source/_integrations/androidtv.markdown
+++ b/source/_integrations/androidtv.markdown
@@ -38,7 +38,7 @@ For Fire TV devices, the instructions are as follows:
- From the main (Launcher) screen, select Settings.
- Select My Fire TV > About > Network.
-If Developer Options is missing from Settings then select My Fire TV and press the button seven times on About.
+If Developer Options is missing from Settings, then select My Fire TV and press the button seven times on About. Note that on some Fire TV devices, such as the Insignia F30 series, it is not possible to enable Developer Options until you have signed in to an Amazon account on the device.
{% include integrations/config_flow.md %}
From 3faeefd2363b8419676a0ce74c6dd56867526a95 Mon Sep 17 00:00:00 2001
From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
Date: Sat, 22 Jun 2024 09:10:22 +0200
Subject: [PATCH 21/25] Assist summary update blueprint (#33353)
---
_config.yml | 6 +
.../conversation_notify_agent_agenda.yaml | 151 ++++++++++++++++++
.../assist_daily_summary.markdown | 3 +-
3 files changed, 159 insertions(+), 1 deletion(-)
create mode 100644 source/blueprints/integrations/conversation_notify_agent_agenda.yaml
diff --git a/_config.yml b/_config.yml
index 58e3517c5bf..fa7a68b274f 100644
--- a/_config.yml
+++ b/_config.yml
@@ -177,6 +177,12 @@ defaults:
values:
sitemap: false
+ - scope:
+ path: "blueprints/**/*.yaml"
+ values:
+ render_with_liquid: false
+ layout: none
+
# Support for files Jekyll will normally exclude
include:
- "_headers"
diff --git a/source/blueprints/integrations/conversation_notify_agent_agenda.yaml b/source/blueprints/integrations/conversation_notify_agent_agenda.yaml
new file mode 100644
index 00000000000..0aab5d650c3
--- /dev/null
+++ b/source/blueprints/integrations/conversation_notify_agent_agenda.yaml
@@ -0,0 +1,151 @@
+## Copied on June 21, 2024 from allenporter: https://raw.githubusercontent.com/allenporter/home-assistant-config/f35038615cf022b989f65a640ff342195dddae5d/config/blueprints/automation/allenporter/notify_agent_agenda.yaml
+blueprint:
+ name: Conversation agent Agenda Notification
+ description:
+ Conversation agent generates a notification based on the upcoming calendar
+ agenda, location, and weather information.
+ domain: automation
+ input:
+ notify_time:
+ name: Notification time
+ description: Time the automation is triggered to send the notification.
+ selector:
+ time: {}
+ default: 07:00:00
+ notify_service:
+ name: Notify service name
+ description:
+ The name of the notify service where the notification should be
+ sent.
+ selector:
+ text: {}
+ default: notify.notify
+ notify_target:
+ name: Notify target
+ description: The target of the notify service.
+ selector:
+ text: {}
+ default:
+ calendar_entity:
+ name: Calendar
+ description: The calendar entity to use for finding upcoming calendar events.
+ selector:
+ entity:
+ multiple: false
+ filter:
+ - domain:
+ - calendar
+ calendar_duration:
+ name: Calendar Event duration
+ description: How many hours ahead to look for upcoming calendar events.
+ selector:
+ duration:
+ default:
+ hours: 18
+ weather_entity:
+ name: Weather Entity
+ description: The weather entity to use for upcoming weather forecast.
+ selector:
+ entity:
+ multiple: false
+ filter:
+ - domain:
+ - weather
+ zone_entity:
+ name: Home Zone Entity
+ description:
+ The zone entity to use to determine approximate location for understanding
+ typical weather.
+ selector:
+ entity:
+ multiple: false
+ filter:
+ - domain:
+ - zone
+ conversation_agent:
+ name: Conversation Agent
+ selector:
+ conversation_agent:
+ prompt:
+ name: Conversation Agent Prompt
+ selector:
+ text:
+ multiline: true
+ type: text
+ default: |-
+ Please generate text for a notification that will be sent to the users
+ smartphone with helpful information.
+
+ You are a helpful personal agent that generates text for the user:
+ - Your answers are helpful, friendly, warm, insightful.
+ - Your answers are not technical, and do not include Home Assistant internal details such as entities in responses.
+ - Your messages help the user prepare for their day, for example:
+ - Making note of unusual weather for the location and time of year (but not mundane details like "0% chance of precipitation")
+ - How much time remaining until their first meeting
+ - Anything that may be special or unique, such as celebrating a birthday
+
+trigger:
+ platform: time
+ at: !input notify_time
+
+action:
+ - variables:
+ weather_entity: !input weather_entity
+ calendar_entity: !input calendar_entity
+ zone_entity: !input zone_entity
+ calendar_duration: !input calendar_duration
+ prompt: !input prompt
+ - alias: Fetch Weather Forecast
+ service: weather.get_forecasts
+ data:
+ type: hourly
+ target:
+ entity_id:
+ - "{{ weather_entity }}"
+ response_variable: daily_forecast
+ - variables:
+ forecast_entity: "{{ daily_forecast[weather_entity] }}"
+ forecast: "{{ forecast_entity.forecast[0] }}"
+ - alias: Fetch Calendar Agenda
+ service: calendar.get_events
+ data:
+ duration: !input calendar_duration
+ target:
+ entity_id: !input calendar_entity
+ response_variable: events_response
+ - alias: "Conversation Agent Notification Text"
+ service: conversation.process
+ data:
+ text: |-
+ Time: {{ now().strftime("%A %B %d %H:%M %p") }}
+ {%- if weather_entity is defined %}
+ {%- set temperature_unit = state_attr(weather_entity, 'temperature_unit') -%}
+ Forecast: {{ forecast.condition }} ({{ forecast.temperature }}{{ temperature_unit }}, {{ forecast.precipitation }}% precipitation)
+ {%- endif %}
+
+ Calendar "{{ state_attr(calendar_entity, 'friendly_name') }}" events for the next {{ calendar_duration.hours }}:
+ {%- set agenda = (events_response | items | first)[1] %}
+ {%- if agenda.events %}
+ {%- for event in agenda.events %}
+ - Summary: {{ event.summary }}
+ Start-End: {% if event.start is defined %}{{ event.start }} to {{ event.end }}{% else %}All Day{% endif %}
+ {%- if event.description is defined %}
+ Description: {{ event.description }}
+ {% endif -%}
+ {%- if event.location is defined %}
+ Location: {{ event.location }}
+ {% endif -%}
+ {%- endfor %}
+ {%- else %}
+ - No upcoming events.
+ {%- endif %}
+
+ {{ prompt }}
+ agent_id: !input conversation_agent
+ response_variable: agent
+ - alias: "Send notification"
+ service: !input notify_service
+ data:
+ target: !input notify_target
+ title: "{{ now().strftime('%A') }} Agenda"
+ message: "{{ agent.response.speech.plain.speech }}"
\ No newline at end of file
diff --git a/source/voice_control/assist_daily_summary.markdown b/source/voice_control/assist_daily_summary.markdown
index b63a6c20e1f..07b25b9cdaf 100644
--- a/source/voice_control/assist_daily_summary.markdown
+++ b/source/voice_control/assist_daily_summary.markdown
@@ -82,7 +82,8 @@ We are using a blueprint (courtesy of [@allenporter]) that polls calendar events
1. To import the blueprint, select the button below:
- {% my blueprint_import badge blueprint_url="https://www.home-assistant.io/blueprints/blog/2023-07/notify_agent_agenda.yaml" %}
+ {% my blueprint_import badge blueprint_url="https://www.home-assistant.io/blueprints/integrations/conversation_notify_agent_agenda.yaml" %}
+
2. Select **Preview**, then select **Import blueprint**.
3. Select the blueprint **Conversation agent agenda notification** from the list.
4. Enter the values for each category.
From ef10bfc00522772745475d50fa3c2a67e55e3fa6 Mon Sep 17 00:00:00 2001
From: swcloudgenie <45437888+swcloudgenie@users.noreply.github.com>
Date: Sat, 22 Jun 2024 02:23:50 -0500
Subject: [PATCH 22/25] Add troubleshooting steps for AladdinConnect OAuth
credentials (#33352)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Adam Johnston
Co-authored-by: Franck Nijhof
---
source/_integrations/aladdin_connect.markdown | 6 ++++++
.../aladdin_connect/oauth-screenshot.png | Bin 0 -> 77055 bytes
2 files changed, 6 insertions(+)
create mode 100644 source/images/integrations/aladdin_connect/oauth-screenshot.png
diff --git a/source/_integrations/aladdin_connect.markdown b/source/_integrations/aladdin_connect.markdown
index e557c2f6380..3a9c957c5cf 100644
--- a/source/_integrations/aladdin_connect.markdown
+++ b/source/_integrations/aladdin_connect.markdown
@@ -24,3 +24,9 @@ Only doors that are owned by your Aladdin Connect account will be available. Doo
{% include integrations/config_flow.md %}
+
+## Troubleshooting
+If you see the below attached screen instead of the login page, please ensure that your
+{% term "`configuration.yaml`" %} file includes either a [`default_config:`](/integrations/default_config/) or [`cloud:`](/integrations/cloud/) section.
+
+
diff --git a/source/images/integrations/aladdin_connect/oauth-screenshot.png b/source/images/integrations/aladdin_connect/oauth-screenshot.png
new file mode 100644
index 0000000000000000000000000000000000000000..3d10dc62ba52e3d90a1931bb6f7532263541bcbb
GIT binary patch
literal 77055
zcmeFZ<9}q&7d0AVqKR$Wwr$&)IGNbCZBK05oY=N)P1rZz`RVx!?tO8e7yaq(m8yNJ
z>g+mu_gcFWt{^84_YLbC5D*ZYq=bkP5D>^L5D;iI6v!7c9amxg^#<&yBrXJ0J%w}n
z^+m)~L()uE7KrNWGZYYTs09$%KTW<~SYNNNu6e*fpkMF6|6q9_|M@G(Y#!);K7&U8
z)9~~9iVz4$07z0qP{j@Sq6@)GSvBLv*Dql%0i-y1SBOP}kf@O=dV=k@l^}bs)K7h@
z<7@@7^%&!dU#DZm%m%rVVT^99C}@5M{5g{=Zv{;&Bdn6RJuR47#@
zG(rAsYDijG-#Vv1Qa9e)B(-d*{f~YA%y>@c9`hV~e)2wNIm(k!BufRLBME>=06`M~
zllXxRr}Yjpro`^W1N|2iKo-aZJqP~pcLqGLnIjB@u{4PPLVj$JOaJta``gQa2P$up
z5if}m?!OR_4SXf&f36YN>-JqB)0l_C80)_f&>D^gjUjO<|bjzYuUE
zXD$5SA^wH-1%Yg0Zu6on{s);m8sPpP6AAn>xi5%0|37HvsF&+MV+4YZg8VW$9LQAc
z|L@a{tOV-7
zjXJhJ=e((PiU~8ic}??#q0iqtr;g^oZr9UQSqbZ;)!|~}?(R-Ah8Zme1xrZiWoBkZ
zqbP=DHenr8RI~=pXKHe0O4<$C*(L=oqB*#>IeUspX0mc_?%Q=pCF-{-1oGuSI)q?+
z?>7VL`rgT^5J$8H8Mxnj*}H%d5pcO!&@d%2VDbr+8`y+7eCawgtyGpWJ%=e+QLrJw
zE>h+eQ#fXjRYm?|!>uLn)T5_q3YyHA+4=Kv?Tdgo0MX$!!kBS9
zQ?*=67TR!+j8J77z_srwM0{|^Dh~Z$KNcVXF);Ci>k9$e57f1RjsS}3#)OBWF-rv-
z!rI(lS;4VV->x)xI6bWd>=U9pR!q??M#+gs1^?FvqauJ-zT0)bkYTefTmS_IW<&V{
z8Qa(kAQ{&;7w9LBX5dUsH?O-Yh~q6}Gv?`?LYg
z)Z#?)IFP;Tcs4=?sBpzS8*jX?IvHu|EHD&s-3Yv`ok#u_S^K-lslWkNbi|@bn%cok
zF7^bPcHTj)d>uKYClf3dC)DjquD0&dgeVG$$Hb>gqG`qCseI^k%eH7WV`B^U$&Zm3
zZkTcogf7!m!bn8#nff(@N66!A3f*u*yJRz;a-LOrZY(rDhqRugD@5VGt_*jDnC6|uCe%>SY`5!1l1mk6fAgNTKrmkx6t6F!A}9aDO|
z+5S+-!`vTn7_
z6JuFXJc^>BxLiT{=Kwys0-1Vg{XJE^TIGrvjormJd~ZRU590tGnQtg{8wxFwxqVos
zUS8iTx+`Xqx-3nr^6w_&fECM_Rn^btz#WiG?lh^YwiX(_NTWIWStAZKEbjW(E=jTS
zbDRp!vWS$A_7)Pzs|dBk6o|@Gmu`%TKGh73oRTOsh$K|ctUfzbxU~hM(8v=jSlVK(
z)G95@+{b8aw?yM2_5N`=|5g$pGsufe1Ab}un?A_tY;JbbF_djsNDQ1xU8W^>WcX{O
zqQ~D%&P>E-rCoKQ-F2+^RJu8!9h@jlLGH=-9;2nwoxrX5BhkN-Uq2O%6s2?snH}Wn^kk@Ds;)0#uf{i+rzfvkZ(4&
z@Tjs%(=Qiqy%?v*sWzc9HiTdejG@(!Q`e+*z0rOj>LthdDjl>uOXq^+(2i3j{;!
zFynD}qxg=2Oaery-wzU9lp#w@5m*_acqQ
z{jOZK!pj{bFtAC~i_X}C_z_RZG(Lnk#W=4a5I4d6@zNQeGtK(<0zd(Sk6-lskA>F{
zZRfJy9lssj^(azj$nvprqf&}3(fePjm=`M16$45r9MIdw%;>Bunz|Us5wRqH
zJnO6OKI^{+1}cOgU0Rc^jIt?*_wE3-;ANhc(CX?9s~7o4)4vx{>QqKINLE=HhsqRuwl)`4euYjQV_V*k!tT024D{w
zTyf1`fl4*IJ=A)y0uZ6&t94B|ne2DtBqq6|K01FcI`CB;x>p9*U)0hlagO=OO9FW=
z#e8?h+Z(Xdwnudg*;BYWJlh;n$2F~<>XC@2x;nJ2xec*~o8M}(SRLI#7}@@Yep{&C
z*`tfK2zg_-s1JK5{Yu4ciH_zy?5ZwZ-&M3cWqIY}RCh}ZmX$!R92hKKXG@=&qdH+B
zZBhZT)=))pSn?=GZPwWAXaczr{D6l8p_Q#opOR3YbQj+~EPTYmm(DxpR>ieh)GTkh
ziKm*^Z|L(&Vq=v!LTQ&st0+IbTVpQ6Uq@r36O
z-f>)22d@LWL;5003aUJ5%wJ(EB!BT-S=z=?2qp(OU~y>Q@(hbBh++i_IOE
zJHN}9Pf&U_{_ZU5Xuq36MUJ)i!&H3;IAkQG9c;8#L;hd5kPX68nZ(bwS0oJT$5#v^
z^cq}T*UIy6BuSX(0SITUjM3{*tH;)OijvV>1#VPIM2LktjbQ9imRYCg(%lQOdO*u
zw!^A{a#)sH?MJRZgAP(jGz%u*J5<8{uc-6wjc9C+zBTfsHC|C|Ununyhy5ET^+f{#J
z5B(ZCaW)G8JC)?G-#*74N<%$sWM#X&MOMEY>{cZs+q<&FYpUNqcO`5j>IC!%^gNeG
zyo=08BLCRJcDk6xSuaXI!l6z)HH+c&XZy5vQylN*q_HpY;7*)WD4yp!_0e7EaurQg
z%QLf(X*ue4>Y0^(S)&N&-yD?^n&35P9z35vhLn%reUWDgLowSa)E`yDY6tWhtP`w?Da}AXI&5vR$WMnPD86
z@C<%9j;R>S;r*ac#oSsc-0Ab8>nq7naH0N)ft=VRF@$~7%o;7
zl76QTk@#(yl{uH_jqOY-o@(sxk2@VruoN22{woCVCL_)@oQW98M6ylSZSU`&q5SW=
z`heGE;m|_u!{b#6=IQ*Gc(q9_dfx2yAvk!6#>Z*#l^W^YJb2I=u=l35*g9r{deL*4
zad5m1T2%*EGIlm_j~FhaJdEAMk7(hIWw^7B=r$qzD?ROuq7>5co!ky`u|QCxHN9hB
zO_`tKimg0C7&b$Z&SJQ}9FQCj7gu{rSQMAS9{!Le-!%1xvcvkhZ+yj*aq!)7068wX
z#>FACBgq3lO@09MBhQ6AKF~RBo=9Oe>ZnLWB_h?yp7Joj?RW16Q*_pT?JlX+9YL
z-BzVA4m1czpwz*mnaYk}Y}yn2glL^8?k5K^@c=HXUj|VY))yS3gEDzesLl|(t!}9Pu_>Ww69$7$~
z?247jXmB#hFJt`oR#?Zr0+kCGL7VrCL>ccI%Dj!;&;b3WKR%(PVx$uCzdk6i)$%`n
z+U)lCy1~Fu*K-7)l-%eDU-
z;c8fW^Bq64^n!FGh0-K`+Kl3h4)ycf4`!wvmEaBWmuk?~$|{xGs72k@fd`doTzvo;7S>d3{($2NJa<37fkpX$fN
zSKP}?R^XZXPRqz`Iy7Vez*%d~XWk}1)26D5+qJRN_5D*7T`{q(hu-Zv70We=TrjXb
zzhV?J-fi~fhw-5nI0JD~wOL2TrzwZ4y5s55Z)L%$vz7~L*om5TsPXI<@D3o<;=&17
zH#ATC4Bz>3LthEIkm5pH`On*G;#^K%5+EkblMP#FJvYR}u&ciTfrHfk=4&fhz?(tJ
z#6?kzg@H&jOvhL3#~c#G2wxzKiY@gvhi0AyI1?P$qDzqcCbjobl<9q*~;4P!ICFRxpq@KE7xUJXWy=K^J374qGqn&4f|B_
zU4m9-;5q}0yNcD-(&>^pv&x2i^BjMLSt%@wX_i`G*&zi!xuzgJPA~uPj^9o5z{Z1+
zdBQI#Iu)5px~1)FXZ!ZwC{$Xb?(tPbYPC%h3l{*lH0o!~#!I2Rjm$M1>)Id`DGhCn
zky?PTcd6wr37H=m<{B$-TzE;vA-~jln`lKX(G23hsF*@>0{_Wf?v#PqRSHWqDAw(l
zS3(!eUKVx4-_Eh=HlezB+YD!q9Q@7c(#y$94=)=*iYsqlnF#8k!rBNz`5>)wqrkOgnNS9legN|^Bl$${HDRu
zaJV1dQ89jWZTH54>EbcV!AV2*`{#|HKCfOD;JP&7UL1cF7xt;Cxmvl?o#n#$*%AL-
zBxU|q=V!cywzfeVH+=Kl;b;F_*F`E>kWx*w^JvKDV~4_TSe7^KsO9e8So!q-5Uxxj_M823b!Uzc7|5=9q2O*R}`5(^__C=-%qriFm
z?eMoD(m#k$8pXH&(rw>K{n$b&upa&{$lrz}Bwt7ngW}(0`|Ahr*EFQQxJ5;llmD@J
z5)xksv|$0o*GT>~g8#cf|964@l88*MJ2=bBhZU#HW#LSafT(-+M((hWK
zPTv|Ly3ifwY}n7*P+e!0$f*M>BT?cCyv{M6CKP-vJhm{%ny+
zef`KenOoR2al
zg*xfLxbtf;Q|eS>b-&Bw(OfQbdESyrUc4~7^Vlwq(=%tU^j^fJyv+MmMnB(FI_~ko
zAPlB=0Q6VB3vAOmTew_IeK5Fx;lhDKca0MKS}mlkTcwAYWs-Ev0Kqf}_2%O{d>L#z
zaCsF;#FWzsN6nNVsINJkJxqPqr7U!m^!aiLhwXf(=~VSopo#M^ep12Wu~;nfGh*WH
z_nBfEWkEbNM$gO-h_sM}YpfoUp2eg)^;w9}`{_gKYkCR_iYh*!H3^M6c_VDAei
z?B@JvU5C09x)5YSf>9pv{4$KS+U2^2vDS27VbwF4X|*$zjJY4MHlitY?lzlh%^sN&
z-Fpk^OqL4u61h)T#1;LvT7E|
z`BiRFmXjxU-l`*OX02;jN`rf2+6>6=yySeR-@y_qjbKc~+PaEsV;#*#INK;lqqjgn
zlqMWcSnqchHylrBbNhgyA68`eH{l#p>cO=zxNjrEd*_rcL4e51db$PL0lNoO5{fsM9$Ee<$7%>gk<&_!_BdO6+NBBMgjfBAuGRN8-
z9zGwiaODn|8A%tpBEvKYu=jarj@{Fl)G_<;S=oQ>{I%O7LmP^zuc4}0VKgw>0DE}}
zF)cW530k&kn)gHKR62QmD@Piq$`wszKDKrTM6X-CN7&u7d{-~p5~8aKtQo5DW7yn7
znPU+|OC{;Zl0vNVSVet=8nO)koSANowqm@p@n9xWb{rW4q}lMO{QdQN+99(E;v0-}
zwP!@rJ*q<<_r*`24Xu_Tr15UF$u(FFW&1V#mMe`^Uv^Q8rSmY}5O5b8LuW}Jv@Xhk
zrS8cE)Je_XYtG?QFd1)1H
zJdzEr>SYG<=|H9FT70lo5^{iJx2ahhEKPWQ8nJh1sZkq5eIbY5j>n%-kv>R0Bg0wJKyO?5Q-tQv3tlcIsIzAUcI(`}hr#%+T
znmY=|XR4jAh~w*RKv5|sNBM?uU%3cQ0ar(B<*
zp|En45?0bk(OAmNqD|%qSO>lxVk(aXym*bzzYZElkHs7%s9K0u4+JMK#JZ8fM6~;W
zB_xEZ3#-0&@jz2XwtC<4ZZ>AKS()-q+o6#v{Tw;-gW6&57Z7V8ezD2X;kd~_ZLwGg
z2fxiwg=*WWSDl#?GRC??jK
zfie4SI}ZFacsm@g7ZNaBgR-Qwu@)@gGF(5#eb8q<{na9ay7Yh-lHm_V#Pp@`pS$<}A*LxaDGo;x?
zDy6*epn+B4`XCT|@eQnBwT+dkHZYyf1#Nx=g6+GY!tDC*=&*3KB1ddR;lx&K#7Q&{
z5ki9CNx{m+^{Y}}kqU`rO#P+goC}`D>n`@sAKH-Ip1bM-`ifAzZ4Fh!3Zs);0u{C_
zCKhbg6HQp!qcI-HQ8mf3jgzy_-4@L3c$!vul78UTs))~Zlf{-j0`c6KKd&f`JIrhr
zu~|7AR5MsnID4IBrG{Y&~Ldlf5vU^M{oBo#=>=#815HC*SFlFR1BT1O=0|>+9O
z)<0T>Wq)LmH`5$rvCTk;_iXlO_yyUIiJuX?$cUIth2DKEDwo+`p91ENiF^iBGQkYp
z728WDldV)TjFb(PEr7B$79`@_5wyO+UI>ULFR-K1rEGhZ
z_ny$s#agkPN4LoyR^^q>-H6~};NZQf32PE}Ad6aASB`1-E}D2IrdQXamDV#oGbWZv
z@i$;0)~a3Hmo=`^y#*2D|P@Cs7-Xi+0dOR&NaX6W4fQIk;TP)Ey>sy>D7HJH&d@*jt^{;_w-Yrqs-=kBg(
z6^(tu*JteO-@@9)YgyL_sTa0GzaXo@dB8+rkI)^h#7{X8tH$_|iXYrwx^xG{kB&nV
z<4Lz#8-Vr1wf6o2_9&sNtQcbX;<1_1JGx-_WBuL>ebQ7j`Hk3kpO0C)AWB4DJ+Uk;
zlX&-4-WL>cmavyoi?{$({Cq=fZl>@`41_5VftY|`$Oj&SFmr5~*Ua`~<*V@EZWVLw
zJs~4?-Ia9_!zthz0k+~ax>(%h9s<(*w6PoH9!-SNF5L`_OB`lx-t3_ZCLxBMuSi?!
zOU9sE`_P=BOi08v^G&O^3F+EZ!zv&p*}JZFgn;}b%x=6TPMz0Ht53pltdj;qoZaF`
zzg^qXy$r4_c%Paq5~HTxuGQjDG`-{3%lkMYH-MiWr74zg+@N`75t(MX86j$L=f(}_
zo#33EH9y=w3kna$sQx`+{G9+RsEmz7!2L_9YJ(fzJcvRK>2<3s-K}G{hkzV(Ucx^K
zSQd6ai|!;CIMY5f$#Z14v!C(LXkL|PT6ChsjRw*sF4+dVGtJpC$JCrw%{Z;*O{2W#RW>i
zi8V#^vgZt6yGsduMxLVu?-w^&dK4QVc==~XPh)B5&vn?zE
zQqJ#u(NTbTb+7;Fsowzg(BXt%R4*W4K+LzBL4+OYvmQZc`>;oYm4}=!g@&`|;>Pt!
zUe4{R_<$Mx01+gzl}LTG{)Oqp_KD^7y~PH=!B5OB+!0?M%OhB@kj$f3JJpgqKBR71U$3k{<~#OZALt3@{23PDc_lRGfipM@%p;3N#V@4
zPOrcu#jNk1@hkWAZJW_d#LCtQ#Zske8BB)j=BD$(yxd#$<@#1*+E!HIZgd$#_73mQ
zR#t+UrMYBncgSXiJR~r)rEX9vU{OUF5Ncrj$Pa9lZvPy_oU7Ix8-z#1{;1#Mo`iYb
zgIMemzG&bN`u-F~@nWY^u&>VDA2@X)`2#qA{sfVSCQNGriHSF8kho1#PAE_wZHPf}
zw@{(QxyCjjik@${xhsCgxU(aXdOtiN$4wpWnDqO|IF3*=04kZ^D|LD_5Ltlb@cWTp
zi+6rLy{KZvazB?f-%5nY?hB`4Zxtegfoe;vEr`)N(m-}p(e`S0HHHx_?rkP_ABhH{
znMvrtzvXu5M0tyPtEUROrU9$#w{{@|6YliQV~<;k+gHZ(YiD~y5T#DvOwx%U?tYRP
z7=I6fXCnPIh+oFuAxy-Pvc7uldIt}oCFp}6er2FOx&4}U2m9UaB53CpyQCGB8j5V!
zhNX(DJW90$4*c12p~XxhaNwB%9q@vUj6IKfd5H!oT42{B#u*ov5h!u|GJ|j8vKGx)dXGArQ+Y9|TLF+i
zvS>)j;+L_?@Aw!vz9K~ck&j|XTtqQYX5gg5S!JihJq-=8yH=%IuPM^`)#LYMFErF6
zI8_VFPu|MWmmWC3LZ#w!1L=AO*-a;`GY#G27#1E4yf{4xsd~u=b}_;!B(5xT&)O9v
zO+6_~hScA?q&Ly!$@9%kbIqt*Tr8Zc8OfX#jhZMILX||>itsw&?GxA;tE^?l8qg;(
zLOE>mASOx?7-m6}3I|{l*P^oi<$gXy{!XmuC~xGl)EP$gob@OdRJ56m5=xH6%#Oh_
z*HlO(QH}>O`DBWJpyu<7EH10tjQggNeU7kFTwXvd4~gN;!W{i*
z&V)I+*IngINGGOINXb8VM?_2=P`*{A>e^hgjW<3p!H!(-qc&+d8-O0f?Pkmr<
zMNySS;F6|z+dL8#`4fz4uZ_Xp%hW2n{ogjUVsb*rU!tYGd5M$NtDvzX#~4n%i2Lro
z?K_y!l4Vwu^u#-Rw^Kh1t$nJYJFOtXHu1eKSQfNT4*m%FEG8aF<;wI=tG8Z%
zqeS^dv+w!2f3`dC_r{b5HL|y+28bDe8AVN#4Tv6o7=d~gG`(@TY+6}0q4hkyv;aN?
z*XPDQ<$-s)YLckZmNyYHNtfH*~k
z`JC&YPrXDe_l7O734yXJ#WvRUyeVTnd7nN^&
zkL#Igt=YKXV$H(94H#@d3Y^m{?Ad4Muf}DRdEkGH#e2@{7Sfi1<
zs+aC2f5psAg+x#``>t7MrqGNkO?441>=%rHp5~+Hh@Q*}r8CPX^K9NLls`E+!|{Ds=8-)c7t)Gsj9{2XW|LoW7UZQO+t|hLpXQOP?!!o#(~n
zX^!nWkY`jMt#
zpWtd8QWLmRIm_jEPNDc_o6Z=Qujd5z@8WM!)kg5oMM4GX-%tXAxERS
zw4ow6*2KFvyeU?`bg8V%NAIDGHM8jMrYfg!KInuHtg^W
zfEBwR*gXzV&9Cyj-o~oS+Hp{CnRcmUc+|!Hv#Z*SKl1CC{ZqyDM2SrUySGBz{sxYR
zdg`f{ZAzb6uw-#f?S{GY+_2u2Qpsb{xdv$JfOc^BoBWPi?6jhYaSEoH=K4{1mq2T@
z(((j%0mw|^41r@c<>W68)Bi@wAt-83M@i=)5J#->`8d=6T$cDWHv7We;Z1S4Q<4yC>)-
zZN)`aY0qYWCyjBb$>sqASf=1of|w7raXty}D7uozQ6yz!?Pbc?EJ~=8ww=N0W-;X%
zN_hnvshs=@IDanSMKM9182EE$LdXEgBC^Rolg;ZJ9TVyXDWCXat=GJs@7y`mY&<_e
zCrvFHrBv!6HPZ3!ea&FoIVxyqLwQO3(U|V2))jRXEVotSS_o3@jw-?)dmAFn7BcrI9{yCc@J8QJ1D%+FB
zFrpOlL#9X?NfVM(m@#UT`mUpDG%7q{n58Bh?@s=pcJt9Ai{8s*E(n1X>7rXOPn2B-@tT+Yi*qS@NyD2i+M(ag8E
zKZR&-wSusSp?=Ap7igqzvMsM@5lYD{D|e^ChCWSrQ}1YW!}=~%6km#~zZ+St
z+hVYLDs#4
zGe~{iY_w
z&J9d8Wac?_vvZV0%!0p7CJaulDo=b1kz@6@m<@uPz!vzoD}I&C?I8J$8zB&NF5r#n
zpGB$P&qDt#{O+6)*wbDew{l6rJN`!?Cg}b;or0);7`*l$2|Y~xOXVK48qMGOk4U%|
z`K6!Vs_K=}{#!2hcl(l}#XD1Q&Z7Tq`u|lk0$FP~sIr%rmmQXm`w*V_Y~+zxhL-!)
zCKw-Rx>?z{!!Hp(u|E5NOJ3{&yhs!*DlRJ)d^?Em!>$P@UCIA|R^!
zk8H&S;mZ@=)E?CIlT&RERfSREME>K%_Hdsm9~6F=Sb7T;rq#`p=TxpSMD0O}^^kz3
zI$yfB**^9mj~)7B6N4&&Y0iwVlQYacxc%37lMI2}G3Rjg@2>+e2H%RxhzNq2
zZRy_+y4E+*cV2CHF63X&OBnpJdo*1MW$spw(Wv{}$NC@`I8Lmf9`K}2u1#~hg8|2A
z2ot6#ZCxB${o4UzeUeh4Cwshhxv!G9n5tt#`CEnb9f|Vok`5WiIl0+Xo<~OZ3*}w_*m5*3jUd1}NkW
zj(fM)S~F_!LI;}sX|L=H7Qs8xJ#k2Eo%oYLsI{`ME8n&GA6I2*gc>{=O$-)?(8)Vhv7cir{d)yQ#9{sCN@%TX2Ye~Olv{P9SYSzuA%(+}0cYbeFT=9Xh5@$+o(#RuXN
zUVsF*zf$lb>5HaQ%qe-z$j{nEBNNeCctd)r9}H;6mPhqTojLnYOF*~-V&7b3YJD?m
z-9}%A+6H{h(USD9;<(@f$namQ=s_-Kc)CbPPcMU+KMx#8ZOEYdy8R_Kg*A0J2^9w0OqepCw*upc}%
zXZ4kl?9SM(0w;9ZhQFn#9*;^h0Eu@bp*!UK1k{ioS4$VVjxu6RnN#GVu$Y(FaB0U~
zs}%{PLI3b9>3%-9Pe?{zT6m(@KaeFl=vNS${=}4#gh7Q8e30qk^quMAx6!`l^qyK}
zQS*uQdNX_RXEPl1dkfki^nfnY{v3%Lg&p}6ah-ZedO1EqemV9k4BEJV2DJK0zSHtb1v|FxN3vwlcB+FzfG{O
zMs_L>B@mO8?Q9_UT(mJ>^88W~x-Owys;AU{nn5)10BkvlQ9JmIk{u_=Dn{@X7Z9c{
zu;xH=^!Gi+$-;hq)p=TttLO{%#_WjKPj@^|v%Hj3*HryVFZYf>9Z)#S{#?IIy&8R1
z^-P%qbDm5G{K9UHnPS$CRB~Z^K`OBWLCve{yj@7DmiIO+Kn1QWw{|G0?VHzqC=Rs^
zzSRq1nr+RdR9uEOm9Wp-bNtr%=^jBz(Lj)L+zt#fA(W9+Em1W@kUkL
z4_}jx-WW?*I9U(Qxa+uZfK$MvL1jVc>qrqHHEjb^7aDoa7^Ui{$$;Lq-|~2I<-&5e
z`3wcrsVkR9Ckdx2t9I48x#I7Lv5YKh8XHsPMJ-g=i!EjNlF&i{KL_Wq?zIT@3Ws@9
zlitGw#xb(5VguY55eexps&zF<
z+bdla)#_r~{1pi~JhTzSmgPT^nII(_Cx}*=%Ia&m`r#ph+B#_9YwnWTB7j9azE@eP
zltN7W#X#_p&$sl%75`Gsf&OO+4IjBqRa%GbcbS+zgoJ14@K7l2jTP-QZyzK{j#XaM
zIGt8HZ*#+|)4RsTvw~5E(&y`pxe9D4<(ynWq?OSG%$MVn$Baft*8@3cdufO*cPXI_
z<*itA`|m}rs|ki0Rx1FcL3yqRP}iq|zQeK6_(kHedw#bDSIKX%LgD&&kiWtfZ&XAx
zdSOAFb4~%v?}8_7ke-QhIfRssyzRNcCdugFpd+KUt9cWi-f}g3Bq|!Ag{0NwNc7p4
z*>{Jhk$&bOb5%8jS49O@!uQEQu@AZ5*rLpL;V6qCY-bGTr6``>eKR+f8OMCx&H4{4
zgjHVCuNPsbGSkiAM6eRED1WfOU+j^zT$s2z^iTAyQXZ$EARy#soT4W)KZsPF4~t|Z
z^S9||<(}o-lKU8>)s24C4CR!W2>Ht2LDNfSa58w#F3WeO->ttL=03y`chqE7k~r4)
z=w-2$mDsHPxC+MHi8Y8U}f*pe4U%aturMIA-%ko`~0c3>ru*rHYT}qPN(q
zgy&pzcTAhYy|zQq0AHeq03m)>^Nq~={#nDwFwH6vNFP8?{wy_s>~8R{gG135??Fo|
z8p$mJ4Ti?mi@)JioW3#bZCEhbK27tUu%ia{?RqU+mzo>O!j|VX-~Nm?>tbvv%Ze#u
zNjfpGe&%vfxmybSDnzCnH8Nv%Yhq3Q3f(-RRmGt%=^=;3NBSo!71B{PPH8WEL28D*
zw!5^1XYuXD1+Xu);}3(Dq%Kx)8ZZn+`Tth^^xV>VibSc+0_2*!>1|099US185kgXFg0|%`)SFicf>ubD(g50*<
z?=FN^3u~UKKN~3g@rHNDFyAG00T&nkrY38im63Pvpy$0iX(#46nr|p?Li``i!&{*z
zi*SGJqx<#6-}K#E^mvBT
zW+xredOy=UYy+I;$cqv^a&keOcXL`s_Zq`Xp5<3D%`u=KibRK$SeSD-8zNTU_NcMy
zPu>xlAL%4rc~zL-Qgz_kZh8j{>}8x9r{0}kM4HX*D$hNM#Pi$**5dJz`0S*-Z;!2Q
z+8R3#7d|38&qNauc=s3U002AgxKxAw^RivveL2dv>E
z33zXbR`}cCE~55!FK~pWe!HZ+QR^?1^MPE5+)0uC)=ARN?TepzPTmW~&+9`BUS_?<
zoH#33jecozyy{65raij_Z+!2U|H9GAf_EgJ=ffnjV0T}wob2&t2$%VDHV`%p*VcGe
z-2fdxZ~m$;%_aAHV|_aOK41CW^ChapHuEuRdIzYac~p-5y$$M|c%#XX0axWJ{ps5e
zd%ydj*ob2ArEnNmhIMs>E}5RPhGqNnq)q%&2$Y-+U4qU(@fd8)xr-f(r#XztDeVyn!rG#S%?
zB5eZ-2y^8=H^(V|*-@{{>2X!Ld8t3uwaKHy#Q
zi#KT`o52T}kDdS;-y85vKGcaMRN5p;%F_3*gQgwccXJC28bs*8xbzdK%Bl#+^jV1q
z$y7Q-yBi>|Fr7BRz@0Ro!n4jkYrk~lL5DlBl+wk5FLj4Ganf*am2qiu;Q*?SvtvuXi&VZs|r;@CP7b~xcTHn*KD|8n2!<-&svvAEnkr(LV+^uCq71{Ey}@A2=WgS1!A>5B*skKOB5ZbGJ?1=%O@C
z?$i;Z8GLVcxSyPJ9Uo!+ZRjRjx-0Lx^nZgS=iY4n2!EysE!8%^0MY%b)e-VD+y3ss
z@~FG2hZR^4I34hZo&ydkVeVTA&fnU9*vkN{2R)NIE2LL@GbB=$7}
z9Zn1UtKjE}-?c4GrR@5Q$$Vb?!GSFqvlCVRpz3#4#aLR=*zYM?77v{3g><%-T56>N
z#sRmBT#%aUhU7qLyky^pxf{S(0CeoAxHWLLS(-+pa{qRRDMJUcQ}*d@Xv;BjkHeZ(x~Tr)xf;39vD}MoPGCoq?Hg198L5e@I@C!K^)LZ?mcrfuyb$`j
z?nSFwc1$){aQ$r=_{+M00TJ(*wsP_0K?sa(DR2l#FEmd6i`l
z)2OnF*6=f>6>aU6ZCHGDv(>Y7^Hm!0MQT-y8HZcWnOfrI*Fl?aiC3feGNH+D`S~w5
zQY*}hOE{5n;rj0$uh{VkneXoGiY1=tX1Tc?Cv!I?%AenqG=)v#*$DyfG(vJdeHWnL
zWiQ{ytZV&|VqC{TYy?(f-ED^x99!c3bYX-TVep*;`}%T!jlIH_;1URB8mIMI!-aG8
z&NFLJqUWhWWb*bukhBA`*!-rZ)4)e!@75K(5+XN?Wphwm$0DUawyR{ap&z+=1+t_&
zqE;W1-__j{iKTN{Nb7xNx*5^nXsHj4!u)+Ks8sfMBI(ZUZn@sV-_;-DyXW-lR2~tF
zxMGsW?Ci5%6SfBYnQ@4z%B;BUPsXRi+#5MhDOt~o1N=DUO+^E3rgPZK9f*Igj|{48
zbb3^o=cUk}SbXDjt`K8^a`Rd}_b2>+*n11+Hkz$%H)dvrn3*jzGh@um%*@QpFbruPg85
z@`Ql+B>}tGoTkdFxxBn52xMly-Z^VoqpPMI4boKX7Y$RnxDP^a$}1PKG8V$#es*xr
z^JBO&IE#p3F*)ZEJ>|N#0f)t4Xv)25X@*xJDf3>-sn0)c(SWgIw|-K0n}}cQT>X
zgOdHCA1Z{^5=jPenin0cN%-=U{M_W^>)=)Iky8+D+CzT?om`r;Ds1dy^WPS)+684Y
z^*?2pFoI<7G9I=UfImkQ^Oq;|#`KGtl{)7pIlhnP&&12~-An|~kokazV@L0E>avO)
z=M{LSJgv8>|5}cS*{8ng4upmGx8Eo?=XYW>PBD@6aABJDWcnE8Op7>&vma?gmn!3
z6<2thUg_H;esO`i)tItx=A557e>oo9ER^Db0
zwVKJ9?j4>l44QG@4fBKY5KWKE(vbPy`iSxbj7Vv(&JizRr_X+L8~IOcR{hTHa=vd7
z^TWaxQV_mR^+=MOp=5MCzj!0}OwS$*fq{45rc9LnPNy&C@4Eb!#>BXA@j>pHpddJg-SaDwxoX;4yhf56zl;7|B0
z4P-+p4255)snG|*q%*hOQ+9U~st{;t?qDW?w;=V4q9^)ZLgwbvOXWh)BIUmOiL8Q)
zT)$}-EmRX9A@lX+>MD=foErS3Wn6!8yC4+V(4={U<^IUa;N
z=z(65cl`G290Wy~rKR9$)-PQJh6?xjr96Di!DsmD?N-nD*@#Wy=C!dmWebdOGN}nJ
zxmU92U>({}E<5E(q^CfE3VT@E{FUKF025Bi8EfvziqwXk`y<$0XT$q;#$s@c0k(QK
zy@ESUmi2T;tDFLOBYX6!4Eo#Q)oNgncJqNqTp1nvV3oA*AtbF(D8Bf;nohY#>&D}z
z1`6NTfgdWH7o>X3)c>qKA{fn43s|A82zB6WflzxkYVKy-CxjJcvV8_j9<2cXVXMWN
zE7IIzHmP*)gUBs7HQ!NAlg!T~lJgMFM;phphULS3>*N$f62bqYDi&m4)d^^6$34Gz
zH>9NOoSygpCY|Iz3E;*3!AMtjnlttFA#y=p06*}>Ny62yYPvCb(jxLl;RPrT&N@s@
zuiy-45Zt`%TYbh!I!X!NS-Gwu;n?>tQ!Q)P0Jj4+_V*>pa2#a5XXLkA$d*_X2;`+O
ztt;ngt`AAemUVi`78hG+Ye{puKA3bu50ogqNvd8fSVHlopiaqV=x{Om6=G`nfkpbdh7XMCJq$$KHf4g
zPM`3DEdyV^5M>+RG$A!?mLWYLZQ$&FzCBZF7CY_QMs;WV{2OLcgdR-)LH4Lrp`DW>
zncu^9CT)BX29ZDawevuE(+5${bKeJ%3Ka0vcT*rEpO$}9#PKf2+`3S#HTN(ZZ!)n1
zbC5B>l;`Q^3tQ5e?vA+m^lPpms8NPJrz^1>L+X}`Fpc51q^o^dU~BMPQ&Z_EcSK9BT_o=vhF)1EB
zTQ}Qn|0;e$XknQ3!e-x~X{?VtVuj^t??9P`y?xdxkDbC#%)TEdY&nmNN|Aidfho?o
z$0k`fOERkAW5m6yyA;j6rj)YVsN&clgjqYZz<_c`r@Z8?{&@R5B{G;PJPZpJ8wUht
zpNptJ?jQ+$
zw*MHBUtU60$W%GJFqhv79(0&jwVxq+TLT)2@@9~lUrjN>)Sme=^M!eMS&)@^Hq{>X&K^{LMaWM;#Lc@_9!g2N*mvXk8v
zWFk@+?k<}^@455CAPlu0`S1JAH;k
zps)dx-22*FqfPGU=AxciDbgRNWPE#>7h618znE#ZD}{%NDrAv`?~E1jq8xI+S!DEwv2=^grYd8l2+e
zE&67oJ+hgM1RTvv2z`rmofIUsugG$?gc$BWB2go73a{s|1BRY-d{3x)0rpcSx#hbJ
z7z?+@#Lce~Ul!HsX#P>4{-Y?}5faSgE85AY{y)s)23bD!wA<~sithiZ@=D~>qwbNK
zb`JgDidI41Pb)oApbV0$#9xW;XMM;5pW@kw+y-H}{}}H5|JD3|{oK?jWr^r_R(5xH
zmm3X2{3A$=)t>rEgGm5IZhy(>Yc&?RhRC<
z_n)M6HlI#gkU7%gVSE$k{Pqg9CN#07dDG_pyv;E$O=MXIQ+75MtVf?-bx&fo2Su|i
zo8LbLh36~_Z#^^$)IpY?_6|E@Yd!qxWRma`Oe#&S7ZvkE$gElkpQM*queFm=tIy-1
z)+AlC$iU4suZ_ao-Q|SsclMvt-*?tS71%mpB19`E{CoxAzuGv(`C_>WWCx`TU{;-S
z-7V4+0#Pv89kg!x08E^a+^x16IUfc>LO)w*fx2zqjOUhnx1GJksHvuThgLF2eVVg9
zzVcMYe7Z$ZL^GWkdMV}R|E69mx?s}KlrY?PcIBYWnwG02G=`ciU@abvSr_XXw1
zO5^7rVkqvvqndvvp#(rC^pXTj3gPsYhH@WpX&kU{5X|l4fwa%kIfllLcB#_xV|k(f$XfsC#4(n9P;{*5Xt?&28wIQJ$;b;JdF$l5
zv%aR4@73v}{(%U&^1_GG#sfAkg)pMkxt<6_Iq%b&C??4U#C-uFMxqn^r3w7Wgl1=l
zZE41Jb=*}dSM1Ib5!U?|(f&(q2O?Qg#(Q6~M*Xl~kpVOfcx4l|W+KpWw7AxztF)h;wST+cQ1slx
zc%o%lCJ3-L{g{}?CzN65xyeJENl8z|#t#E&4?B@s3d7V%3A7ELSh1cjG21e0u_!a9
zVa#0!k=#h-dhKE0usR_Xoq}nEK-C~YsesKwO9Tcwy18n&CA~Z%W_$cgczOHeo#mhk
zO(jm}68NLP5VACy@g*kgn@nu{U6S>kh>!n7IquQ|gxJs;Z~7isQxAbBhZ&tSpCdN$VXD$EGK$D6{1MiyG3yjOa`Z
z?CqR))9JQtqzK)L!DKYoQ8Qq-1|l-yM_)Vr9HYr3GcMu7fTs$V=B#*?4sky6gEeee6?+
zE4^hO*R%UqU}^nWMU$&kNg+JVd03D^Um9&cmUhD4e9hd9QLDCB5`47j6&uG;>5+^V2$eYPFijB^CP(a%OI;`ljHF4&&0!d4wU0@l!?bDNn(3^wKHEk60Oj
z3j+O9C^$x^`K|4zqT1Q8Du=M6B1Cg+ymekd-7{0QR5h)=3K{GM4H1gxKB@S!X#7dr
zK%%5`VZ&|7fkLexsvcilk9lKz((Z9*Q-z88fqZ9jHs|0h{1Y5oV`5E)%ZbAedHR~i
zWAujR_eJd3{CsJolOMdrnzAS&*g`UM>WgXX#h0z3#jsJR6_&+ym1iS?$hJ5%9p@nd(>g^f5IGfs{`lefW?)}dEOs|
zdXi5^5Fl@C(xJE!6mgrHw}C9PsyKtISOO`KI(@TE5B$wLr>ywZt`9+WN7^Up$Nr}u
z5>&Q*HvJahkazijJVjO<>Pmk!C*@{o
zHFq(zC44OJjSZV?h48w5)AgE?QKj=@P3=2zxe1$QH?Vpe7+U)59nzB~1BYxY+TPxz
zulvh>%FPXBbrm~+7C#GkT8rSq%JRHNh!&ZdOh5fXWvgrdqWT8-R5fh1N)sT%$-WUB
zM;Ei9N;^3o9uM{o-C|uJJLmHmW{-c73xzXzx4+Kq$~XHJpObNEpUk-Qu*G
zrh(BB>c6P&{PkT2y;~NM5RPNZJDz|NL#@?%l1Q=j0(E3}_)^wyMf1&2cpJn|K_hh-
z4x(F-1d-luDm|#-Lc~7^S!oYfw(|jEVP5&GnFtrpo$#8zvVM(f*<1xd)`*4CLGe-*
zwcW#o&Ws9f-{vKLOD4fSr9f&{rhmS2H3M_cjN!iAq{HYph}QC>`^IGIp0Blp&-v`;
zftYGcazS=wySdE<4sGl7`s)3vdS>uy)hmh`-SOpJG6-A-4)89T(VimN-vSD-M5=|q
zfqpGe(Y@LprXC+pL1;Vu@RwRvYnebh+uzUZ+{)<}tO8NaR#bRZ%`8W~)=oW&oR>ab
z!0l+V&Too*Su#^@7Hr&H?UcUIrn>1ktrbxFb-`l512S%fBa=|7u&0P*LQz?td8hNiQ$)P=kjkJIoY!_Ljr9Pc`Kw!_T3%$#Irv6P
z23@!8Dz=CapKXm>ivbO4p8SSBGyU%lhM}ng0%Z$A&aNfs*?VyA!H#cJ#LC}tvB&!6
z@vl0y@z_0&B%0eh8{P7yyP0^qit{5+=oTsjWR_MfHfPtrA5v
zgDU)?YO>>ob@bA?tG;MF0mV!DZZ
z;vi_{Fa$&+evF0x2y^9h*iPL-SwheI4P~Cy(
zV>_;|KR?ok0T4G3XUNJ57;%`oOa?nU#SXh!(t7~StoX5qo-?M{j6O%_GC0DGpTN1Y
zdTpIgG1KAf=n>$|NhCA1yaPrJK@%gF{KfV8z2GVFQa`LCJI2Xug#+U*vKgL^a;wl=
zBODC%m3;$RUf{$Tn%nvUN@MmqLg^Kj0VZd{B;`_|FrNf0I_`nBH?$L&2V8)W3h~vQ
zF7MCVNg%wYy5ZEt+BdlbSKA&fM)$0!8Inb*4>g}UyWo2g>Zmzx=j3%+M
z%u&}_d%$+loKQ68)#8m;Hea-IxZXJGzr9pvKUo9(>UI)GwIy)@B@!N?niZ}lhPKQ@
z&O#y}4HXR~(Xj(CNifjhBs3vr1&}=|LIQf$-t*#!B0@LIr#I&6i*WdZN#mBVU~&bb
z<;Y!PDMSzmCsAH9z2kH+?u+a}FE)O^!sa>+U`gqC_6sw<#aXTl*QY;K5o{cJjib)L
z8ihRXSk%D)uV84E#A;-rS$tR>aZZtQf4C5SdmhLq=8x?h$r)H9e=c6IsC(~P#hK5|
z^?KWDw(2_gGjtN~-KXB2pv1RO?=I2je_UqoV6Zp=EIWZrd1)o|NUfll53BZ;7U0|>
zygz$>0In}q!%)(3iO)ncq_OnZYT0|%x5UIBNG1eJp^l7Ds*A=;!I69A*XVu}yfZTZ
zNf{)lyXo*>9dZ@Brt;O^qAV65Jg3YP>vwo-ZY$~K_O#o0W6pOij>E!^+gQ&z)Srli
z^OXM?p75txdozxm01X+I8*_6K(pdhiAo_q&TC}buumNCveMuyj!tBxZZ)%_gLJmI8
zIp)F9{nMfqYsFK%@Yy!UH084lkKJZ;kA(6u>6PGqC;E*e8Id>3AG3i2PFMaI$-Qn-
zdSRHV`D`6{U+|*PPBnpU7lJ>@^SvR+Ow+|PqUJy`M*iCHZ|aR)MxH|YCB!4)&6l;$
znlg_mr8o0S29xE0LtBJq-#rbq4Gc>h(=~qxA;&2_0~;k
zA=07`2QxvXSomck`BBZ~Q=*F|Y7d7CCouf!L-H`ieri&dWonuWhQ*&ha_eybmcO6H
zz5H|po%1I#5sa6I=+uDYTt)6XtpgWw`w9X`V}VT90q>y=yI49iaPBub8~MEJzQZO*
z&VofmS?e3&>Mwn!1@y{DG4xm3c@FW3XD@$L(y#()vZ$Ie_&337cekp*$0CQzboX@N
zreNcIF?qQf=uV_8d1yn|a^QgJkN&OTfqu9)DzpbQ5i%z!&ZwVVCIrTRhD1Gys1B-z
zhl*I_nC^buN@MgQB^R5Pjg1VOruyZ~Q-UZf@$d;vhe)NN;e4ScP!hIcj+`xs
zH}dE>k6*sz(&=|ZQ|q;+82wm_MeI{k7fIDQa@}$N
z;9uBs+_elq27l*1YZz@%P3e#{f5$Q{3ezhY&+gANm#Ku}{|;L=gIdwmB&;o~7`DL9
z`o|#N&n5PZql62EDVXa3o%dkBKO}$ntZZ~lE|E}g%R{p~+7+7B==r*-V1C>Vh7~p{F0$iodlINaE@897Z<}?Fu(F)ZJ}uM@yejC
zwK;`#sBY?oe6BB98m5ID_QjkWIAb4=_H99Xu0m9d4!#Xumb9VSsHhwntvAG5s^>H2
z9(t9C74a~KkO}7W^cq=|c>ESjQ&t?ioWE1cHmKW!n;pt6;BT4(B?ibbRnjZPg9{E(G46q&Jx$sm`
z_@3DJA5+ii*P0&!35HliZq2|ch~Ga3j6JB6sjA}r+3wI6N0>KtRNIU)%IH*;A}ASx
zDR8+2aPwjj&J}9I-WG9ZfZ&|t^?7Exa1iXN
zO3x*`Bj#@5<8^9d)PxLy4Boj+@|dCm=s=`0Os;pYuBK~hXrXku?KW}6Hzlzw)UR=ytL6-Hh7zp0uERqk2Q-Zb*dK;oyl1r2KSHo
zvl6E|HHVC7bS-&HI)bI`N8c3NH^1p6!&$9T0W$SH9zt;*pa~mY1ZsxKqggSm>9v4F
zJXG=_U_MEY;;^d&C_ll-+OMUe`xdC3%)aCgliPrAIo%QdBwhb;+~PVtYDgOCte%$f
zbE)wH+vJ-CaK**|8SJFIv1U5JGR=irG=2HuYw%SBl`f^lsdRKZ`ZEili&4m(+0|qH
z*H%(gcx={FOJC1-HW_jzW`aOi6e-(H+z5`Y&1XOly8Abrv{=SN#{o52$64glL6#pB
zs`$Mbtm&jcr61^veLQX9^YN`2>eo2XYmf&u{%iw;#L_+(>0_7!`puV=Glbz6tb@7N
z^1nG>uRxrnLhHW=V|k@T(sciZWsD%!6t!B^@OTQ`pYank0c}h@{A^kuW=HpstM--A
z@YEY8(0fDrb?&UA;$e)Jp?a6YGQwgnt_^P2w|z)2WsY2yM`uRFdu^l=Y0IZ}L$3SS~g>YiBL<
zcI+Dp#;#0i$@l&?`@(0lH<@I98)%GW{~`<)&C$jWQOdiCfLy-cRNzY1IX1OULF$fH
zY;J4|k=fZ=vY)v9-aTDNHN+faAs0wkrP9RdFDgaG~5Zb=$8g$t)txfst_da3XsQPmRplhvkX
zP{cl>N*>;^qn}z`0(c$~_=HW)dMfx3FgEck_})~U-oak|-3L;fv!FK2LKC6&WV>(Q
zgUO*2_=6@76i;~W`7xn?a4`G+0^8*h2p^v@-_Xhryy2pnUEuSAhBE*RGN%v)!t`qj
z8)M$$j$=0h)p@8njRWlI_;bMs*)X~1EYIWxgXLCiSG7VFgf>@x2&Z&?`S{gn>krl(
zMpnUnp9&tF=Dei==R<|2qpZ&qgrugiK}ull+{?v(?#^L*x>q^!x}PxLqD_BF;q`>%
zQzw|K+or%Ufcw1AO7Get1Z{p+={+_9zLk!d>UZd)hnh5~jJtFhDvwCHkSp?Dnr6|)
zci`J%i{U^3+1_D%0SJ8ULp<|!Gh1M88<}o}$KKq93fkK01G_An@N~D8`VojeU3`GF
z-7(N};68tB+LXI)%Gp>TEN
ziTB*&M%_k`;m@vQcR!wz`P~!okHJMrn3whB=9S_joHPbZcmdUAxfPGC+=h)QB7I**
zI-g(i`&KJzEs#4dPLRRqDEYQjbLwi+wuY2xC5W10T
zhxbyj(NhTCGP(Lek|?_{h*7v9LQx0t>E*Lp)IpuW1cA`vAho*4KAeNq$1c*
zFug_E*y^AR^WoX15in15=Of-HSPBJ~6N+)*0VmxlElj55X5Ltjz%pe;z&Ca8#diaf
zB*@eu_%c3w*RQ*{W7j5foaXg3E`b17#ngyEA84F*8A*fNbZ+5
zpmBatA+JEhPNbpd>0r<_xl#MN@pW(B7$+vgoA!J$>Hay-M+SqANX0ObA-VqYf!f5f^1B
z)Z_($s!dF_7X!1Qn?@8_i&BaLWDu+Ve@>vdKos5r(Yp~qHrXes>C(S^skzLnG^Nxv
zTnF{zMu1O?oNn-mQ7T}7?pWYxY43thNRYV0u>}t)6*iPBay?+dlrpse-YUu*)`~iq
zD5s%K_l7l{RPn=bCC?pgZcF2_b)8Kz;f}h{=9`@M)}5d^5tB2Ec+-a7HcdE72=&j+
z`D(R_o7s602{v)BIf%YVEk-@lO>oP_w~XivL;ovGq68QAxd5hu4DOAjUx*RyN}1wH
z`wTP#2kern^43nzzCWd*B>WS@$bsNjC^$-=m%{;}>B=?qBoltBxl5sSdnapO!(Ude
zwNf%TRhojE{1ZkfZ8t#g^GLbmTvPBO(#z@2kM|G1^qajWq(2D9dCJ&MtP
zpQB-DSuk*uPrT$3^gHO^IR?c1&GOXw4`dD<$G87U$N-m!=mmc^56uMgU#H>k*6wfV
z9ri<$_Q?OF0|1@<0+`UtM6*Qe4L4vdX(VsSq}kUowRDuo>)za=NaS{XH@Q<
zdf1mN)3xoFh2fkErpE(@4L8V`g`+iog~VPrZpYV;@H;TUF3kvt|{63=I)#l
z4JCvG4Q=P!LMfZYP9kkGv~KpJWZ%WXbN}$wwDcr!xe?%QC3mngk>&mZ<09v^waRkvx$90QU#G;DeJtT+a_>gv
zTfx7OUMkxV0(IxbjBIwEuRS&yFL8JiNjS
zmCuraS5f|w0!ze&1Cx7o=em3fBnnP;uuRtBV{O8PaH~ardeJXyezy+3r==lhAVBO{
zG-p}v7EXY3DRD)Z|5>CIs624+x?X*z)|xvh>@ObTI}!M2sB*p$<4|QI%6vOjI<2|g
zUqf2wa#@Yzp@F=-U@O;=v9&O!ENQ
zacIB;y|uM_iio6aEUGYay>UUxDUChu)J$Vh&6@6UjKi0bdSCR0`m$BpEM2-ASm%B#dc&T^Hz0LYlGCAR(zkxDD++nIv`l&GI8L`(OLcfvZ+2#AmYT`k
zwpx|c|6&CauTS`fs46Y==x$<)LkZT?%j}URlw+miUfkC)KWZAG1H-LR!#8Ak3uuSN
zZFIq_J|ZLeSXFyLdDb-nAdjH@omxth3h){~T$|Lc=HYbAV=2E=8`G-MrX0ve>eBr%
zI^$y~1DLj&k$I$htav4_f)}`nXb%`$&C^Y2Ai%Wk+0D)z0L;$RUxdS@3q0V4Z91l?=QP+R`y($Sr2u-q@k=*_ff2Y=D9tFr%8QDg2!_<01lE6-=@&L;aT3O*t|Atqapp0JWhq}^W*|7d_0_Y
zGjm`tlbu_a%~X;!dVxBvh@_Mi0wWJQ-g4er@;Zn@?+{+V9X-0&2H3;PI)+n~&U3cr
z1BTeHERh3yj8lqeeg0kZu|*u{z&=M+7^;#dbHt*=WY~A-`3_e%Ab*;2yNW&>qQtHd
znbUU}w0D9P9?)p(#sh(l7#Ur)LLk&bML5B%qf}V|@)BY$_V!mq%Vt{Y;BPVoj+;y#
zAk=2b#gma-I%~i3(7EEj!G>XA7prBNlIu4fQeapdfe;e~jp!7sQ43?&3sM1;i)#R@
zXJICeb8&^FihNfFq?4k$^|;;&aI9YZQnl3JEMGZS=mE&TPm-Z{ryAG4=(QpuJPf?`
z6#59YWwbYyi&BoG!Ng^2M_>)xnKjIiaaSku{CJgp)Gl5*a=K(FC>c6f**xx2a>fp+5i1)eR)x
zN)zoa5W!DaSb0|g|Xdl%LOfzV5%*=XNAf4LVQ8^aU>(QNm5|LNF}-A
zqY}lZPR>)cqErB=W5>EOtqy58hR4S`rOJ~KT!q&0RI1S~W~*i*Ao{+pSvhL!(3M?z
zxEkl$&9ZU7!4+1Ii%wL-CIKs=i!Wg;@>$!qpoVqs#`Ec+4$A^@g)dEzq!?&t)cLwT
zV2v&!Dor@e;I@K9k6?;3Y^@muOuyyaA-!Vl)g>IUXp6
zV6-(k9M{=TQ5O~_7Vb?>J6|xx6b+EYN<+^qrM!r1IFn1O9`PY%z7~&0g1fb*2pF>R8?*8oHr+#!aM4usYe_io
zIj>aVRfiANPckzbg?dAAl=nIL+D(0W*Z#6#<<~5~APDoJkrSg|BpG;ylnxEDU%joo
zOXuJ9T*DHVKDKP^WA1Oq!19f=ucli3p0?QPTpZd993agz5zUYL?jT%hcCHdl%T-!f
zkKC0IO*)W0M%;ccnYS_O0R5r;(hr8|xb(QuRDqA~)meNk6@$84PY6Q_p;?~_A~j6e
zqX44im71C%jYT~r)_anH8DEoI(0*iMti#2j@z}Hgm&I!5xNXa;Vl@pUL
zE(YpL&z)+%LrdVGtU8uibtf!Lec{d{*il7_mOu^g!#=l_*KYuwFKM2$31N6VwWhs`
z(b05_rDmLDCv4KYo1)RXh29~xDzo*_&(x(M%2rHN9R9AaJCPp?FoMi4d2Zm^)b-Su
z0x~bK-og(=s5ZSGRivB+q$T(FBl?mrX!`E4xQt<#+_jEp-!a-&=vA~~U%Q^*L_&01
zKhe|At7Z!ljjBM#Sq@&XZo3JcbzmZK>NQfowQ}ViwBw%XgiIi`sK9<#7fM}hbjl6f
zq;E{8k-9|pt!?Z&Qs>~bu&rR%Y>!&rA6f~S-*5KdfzemfZ)fjWByXbq+M(=M`vqHj
z)DjJf2@wckt75%KLC&J;O+tiz)v2kitGqnrjcQ%sMU1;X(}#U&aW?7H5MV(X|9MZ#
z%-ZF-71wN%s&kE(bZL-=M_5Yu$)&D?z9JQlnw=v926Th89{spb*wtboWa^*7wtSPh
zE{SS+MDW}sgOU}}Dp(2_8$}pm4DP!ojFpNCD(r1<*mG5!@loWjs=sQt~BnCDjpB;4(GF_V#rHX&P~#phv5XhO`W
z4vDjOz<=2-GUoWc0sGy56nz3O?87jNL&$zqiT9eKQb}03eK-Q4jl_H&G&eSr@BDz{+}z-TxAS4(m{=q;Kw1{Yo=ZHq-(0&}^V(
zJ!M75xH!*h-#_wu&(|Nmu<%Q$IfH7IBIzeM45egy(@D*!*9@AloyZ}WT;*3gFJa
zZ4@R>&~E0;EO`N1|3WVItLyF7Cvm2uMt%tw;-$_9Fka@;m{L5&SG!+b+ArPLmih-=Sn1H(-J_Dd!>m!tF^b-q-6te#G8<9{d-3!BLJ;lIeb1{2NUw$b<^*#?*)v2qB*ifBu*wGz_5>b{@oiS>NtP3wEOnA@3b@X3aMoFyEAZ5M7c@{47S+x5
zzV$V#u$8mhtSLYD!+g})FZMp%_Sl`tiE(mXh8wU+q1WUo_SSkWgKE(594}*1&!sZt
zG3i7AL11(F|KvtVhh3zL2V%o`qfvOf1!JRt*DGdX%avbC90bRT_9xOS(?DD=9Kjt{
zNOg71K+U?A7-?w0^tQHA(&HpL_&JH)rc<*hS_al!K^T7mxy0016CA|AJ4W)98?2zT
z-;urlVP6rn$IIuod1}d4h2E1iACblbJ$#*BZcEiX;5hE5SE}XZ?Zsb#x`9aY_`c>F
zedj&EMUP}eu2MRW`1N>iyIl?VUA~^#yG-(mr=QR;Vk#jlMx&4dG1RmMpHe#ub=gR3
z|1K|x_>835s^#Q(ioOjcy$obODGz>N9SJPtUSV{`BwBZ;)x;9JNa6gF$yNy{}T{?iIRnuQ~r1ygai?U8T(0QW|V9!
zN#-X@`*-Nc)FU%9kS^D}Tgx#KBKcwR;&}Or2TM1gaOwh7#6(=om9EootIC_+aYbGw`WnbPQhpmHVR}8
zNa4}o{d|$_KZM+RU`r)x2Jw#4UyleIsb;oE$s!8c1l@80^&?802~;qs9gN+2l3SFn
z1QQ)a6XaXA=iSJN#JG$u5Bt(olw4zbXu6Y45i|)ptQ3W-giLf~2Li$w=jw%0A58BQ
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