From 415db306e78d7b038e0c9ef8f1906b0d3fef36a9 Mon Sep 17 00:00:00 2001
From: Marius
Date: Mon, 16 Jul 2018 16:26:44 +0300
Subject: [PATCH 01/46] Updates for future beta (#5792)
* Updates for future beta
* Update views changelog
* Updated based on PR feedback
---
source/lovelace/changelog.markdown | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/source/lovelace/changelog.markdown b/source/lovelace/changelog.markdown
index 80b9e5c1570..598b48d7681 100644
--- a/source/lovelace/changelog.markdown
+++ b/source/lovelace/changelog.markdown
@@ -9,6 +9,23 @@ sharing: true
footer: true
---
+## {% linkable_title Changes in 0.74.0b0 %}
+
+### Views
+- Add basic support for `badges` like in old view style
+- Custom cards now work with `panel: true`
+
+### Cards
+- `glance` card supports now `toggle` and `turn-on` besides showing more-info dialog
+- `glance` card supports now to hide `name` or `state`
+- `history-graph` supports override of entity names
+- Allow `picture-glance` to open more info for camera
+- Show more-info for `media_players` in `picture-glance`
+- `picture-elements` card now supports also `image` as element type
+- `picture-elements` card now supports also `service-icon` as element type
+- Make Lovelace `entity-filter` card more robust (new use case: https://github.com/home-assistant/ui-schema/issues/82)
+- 🔧 Fix `picture-glance` crash when state of entity was unavailable
+
## {% linkable_title Changes in 0.73.1 %}
- Setting Lovelace as default now updates `Overview` button to point to `/lovelace`
From b28f6a3469c55cd2ab1c7c5c4da4e855076c6539 Mon Sep 17 00:00:00 2001
From: c727
Date: Mon, 16 Jul 2018 15:29:53 +0200
Subject: [PATCH 02/46] Lovelace: Overwrite name in history card (#5797)
---
source/_lovelace/history-graph.markdown | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/source/_lovelace/history-graph.markdown b/source/_lovelace/history-graph.markdown
index 282b59912f5..a27641069a1 100644
--- a/source/_lovelace/history-graph.markdown
+++ b/source/_lovelace/history-graph.markdown
@@ -24,7 +24,7 @@ type:
type: string
entities:
required: true
- description: List of entities to graph.
+ description: "A list of entity IDs or `entity` objects, see below."
type: list
hours_to_show:
required: false
@@ -42,6 +42,21 @@ title:
type: string
{% endconfiguration %}
+## {% linkable_title Options For Entities %}
+
+If you define entities as objects instead of strings, you can add more customization and configuration:
+
+{% configuration %}
+entity:
+ required: true
+ description: Home Assistant entity ID.
+ type: string
+name:
+ required: false
+ description: Overwrites friendly name.
+ type: string
+{% endconfiguration %}
+
## {% linkable_title Example %}
```yaml
@@ -49,5 +64,6 @@ title:
title: 'My Graph'
entities:
- sensor.outside_temperature
- - media_player.lounge_room
+ - entity: media_player.lounge_room
+ name: Main player
```
From a7a07e2f3dd2b06cc9b7099bd2908c7fbe312094 Mon Sep 17 00:00:00 2001
From: c727
Date: Tue, 17 Jul 2018 21:23:35 +0200
Subject: [PATCH 03/46] Lovelace: Add column width for glance + fix key name
(#5811)
---
source/_lovelace/glance.markdown | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/source/_lovelace/glance.markdown b/source/_lovelace/glance.markdown
index 9dc6c021bc7..f1aceb91e53 100644
--- a/source/_lovelace/glance.markdown
+++ b/source/_lovelace/glance.markdown
@@ -30,9 +30,9 @@ title:
required: false
description: Card title
type: string
-show_title:
+show_name:
required: false
- description: Show entity titles.
+ description: Show entity names.
type: boolean
default: "true"
show_state:
@@ -40,6 +40,11 @@ show_state:
description: Show entity state-text.
type: boolean
default: "true"
+column_width:
+ required: false
+ description: "Column width as CSS length like `100px` or `calc(100% / 7)`."
+ type: string
+ default: 20%
{% endconfiguration %}
## {% linkable_title Options For Entities %}
From c759cfd7a50954619702f60e55385ab90096de44 Mon Sep 17 00:00:00 2001
From: lich
Date: Wed, 18 Jul 2018 04:59:39 +0800
Subject: [PATCH 04/46] Customizable command timeout (#5782)
* Customizable command timeout
* update the binary_sensor.command_line
---
source/_components/binary_sensor.command_line.markdown | 9 +++++----
source/_components/sensor.command_line.markdown | 1 +
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/source/_components/binary_sensor.command_line.markdown b/source/_components/binary_sensor.command_line.markdown
index 25fb0c03302..93769da9729 100644
--- a/source/_components/binary_sensor.command_line.markdown
+++ b/source/_components/binary_sensor.command_line.markdown
@@ -33,7 +33,8 @@ Configuration variables:
- **payload_on** (*Optional*): The payload that represents enabled state. Default is "ON".
- **payload_off** (*Optional*): The payload that represents disabled state. Default is "OFF".
- **value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload.
-- **scan_interval** (*Optional*): Defines number of seconds for polling interval (defaults to 60 seconds).
+- **scan_interval** (*Optional*): Defines number of seconds for polling interval (defaults to 60 seconds).
+- **command_timeout** (*Optional*): Defines number of seconds for command timeout (defaults to 15 seconds).
## {% linkable_title Examples %}
@@ -87,10 +88,10 @@ Consider to use the [`ping` sensor ](/components/binary_sensor.ping/) as an alte
The services running is listed in `/etc/systemd/system` and can be checked with the `systemctl` command:
```
-$ systemctl is-active home-assistant@rock64.service
+$ systemctl is-active home-assistant@rock64.service
active
$ sudo service home-assistant@rock64.service stop
-$ systemctl is-active home-assistant@rock64.service
+$ systemctl is-active home-assistant@rock64.service
inactive
```
@@ -104,4 +105,4 @@ binary_sensor:
payload_off: 'inactive'
```
-Note: Use single quotes!
+Note: Use single quotes!
diff --git a/source/_components/sensor.command_line.markdown b/source/_components/sensor.command_line.markdown
index 5cc0b4d9eaa..ac5b78e301d 100644
--- a/source/_components/sensor.command_line.markdown
+++ b/source/_components/sensor.command_line.markdown
@@ -32,6 +32,7 @@ Configuration variables:
- **unit_of_measurement** (*Optional*): Defines the unit of measurement of the sensor, if any.
- **value_template** (*Optional*): Defines a [template](/docs/configuration/templating/#processing-incoming-data) to extract a value from the payload.
- **scan_interval** (*Optional*): Defines number of seconds for polling interval (defaults to 60 seconds).
+- **command_timeout** (*Optional*): Defines number of seconds for command timeout (defaults to 15 seconds).
## {% linkable_title Examples %}
From 2a539db4dfcca6f24e370be0ebe24eaa95f162bb Mon Sep 17 00:00:00 2001
From: Tom Harris
Date: Wed, 18 Jul 2018 10:12:29 -0400
Subject: [PATCH 05/46] Events for mini-remotes (#5814)
* Add X10 support
* insteon_plm binary_sensor on event
* revert
* Add binary_sensor_on event information
* Describe events for Mini-Remotes
* Remove blank line
---
.../binary_sensor.insteon_plm.markdown | 3 +-
source/_components/insteon_plm.markdown | 54 +++++++++++++++++++
2 files changed, 55 insertions(+), 2 deletions(-)
diff --git a/source/_components/binary_sensor.insteon_plm.markdown b/source/_components/binary_sensor.insteon_plm.markdown
index d06c324a442..9312a66cffd 100644
--- a/source/_components/binary_sensor.insteon_plm.markdown
+++ b/source/_components/binary_sensor.insteon_plm.markdown
@@ -18,5 +18,4 @@ an INSTEON PowerLinc Modem (PLM) device connected directly to your system on a
USB or serial port. To add support, set up the primary [insteon_plm]
component.
-[insteon_plm]: /components/insteon_plm/
-
+[insteon_plm]: /components/insteon_plm/
\ No newline at end of file
diff --git a/source/_components/insteon_plm.markdown b/source/_components/insteon_plm.markdown
index fff18634a17..53ac5745983 100644
--- a/source/_components/insteon_plm.markdown
+++ b/source/_components/insteon_plm.markdown
@@ -186,3 +186,57 @@ light:
- platform: insteon_plm
address: 1a2b3c
```
+
+### {% linkable_title Events and Mini-Remotes %}
+
+Mini-Remote devices do not appear as Home Assistant entities. They generate
+events. The following events are available:
+
+- **insteon_plm.button_on**
+ - **address**: (required) The Insteon device address in lower case without
+ dots (e.g. 1a2b3c)
+ - **button**: (Optional) The button id in lower case. For an 4 button remote
+ the values are a to d. For an 8 button remote the values are a to g. For
+ a one button remote this field is not used.
+- **insteon_plm.button_of**
+ - **address**: (required) The Insteon device address in lower case without
+ dots (e.g. 1a2b3c)
+ - **button**: (Optional) The button id in lower case. For an 4 button remote
+ the values are a to d. For an 8 button remote the values are a to g. For
+ a one button remote this field is not used.
+
+This allows the mini-remotes to be configured as
+
+Here is an example of how to use these events for automations:
+
+```
+automation:
+ # 4 or 8 button remote with button c pressed
+ trigger:
+ platform: event
+ event_type: insteon_plm.button_on
+ event_data:
+ address: 1a2b3c
+ button: c
+ condition:
+ - condition: state
+ entity_id: light.some_light
+ state: 'off'
+ action:
+ service: light.turn_on
+ entity_id: light.some_light
+
+ # single button remote
+ trigger:
+ platform: event
+ event_type: insteon_plm.button_on
+ event_data:
+ address: 1a2b3c
+ condition:
+ - condition: state
+ entity_id: light.some_light
+ state: 'off'
+ action:
+ service: light.turn_on
+ entity_id: light.some_light
+```
From 8ecd3526571479ee6e4c405b247c77f3815005fe Mon Sep 17 00:00:00 2001
From: c727
Date: Thu, 19 Jul 2018 14:43:46 +0200
Subject: [PATCH 06/46] Lovelace: Make cards[] optional in a view (#5823)
---
source/lovelace/views.markdown | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/source/lovelace/views.markdown b/source/lovelace/views.markdown
index d1eb9d7e5c1..e25c77b39a4 100644
--- a/source/lovelace/views.markdown
+++ b/source/lovelace/views.markdown
@@ -26,14 +26,14 @@ views:
required: true
description: The title or name.
type: string
- cards:
- required: true
- description: Cards to display in this view.
- type: list
badges:
required: false
description: List of entities IDs to display as badge.
type: list
+ cards:
+ required: false
+ description: Cards to display in this view.
+ type: list
id:
required: false
description: IDs are used in the URL, more info below.
From ce33989bdbf0445b165923a0d55946d944289b5f Mon Sep 17 00:00:00 2001
From: c727
Date: Thu, 19 Jul 2018 22:34:49 +0200
Subject: [PATCH 07/46] Lovelace: Add secondary info docs (#5816)
---
source/_lovelace/entities.markdown | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/source/_lovelace/entities.markdown b/source/_lovelace/entities.markdown
index a727e42badb..01c0241fb61 100644
--- a/source/_lovelace/entities.markdown
+++ b/source/_lovelace/entities.markdown
@@ -49,6 +49,10 @@ name:
required: false
description: Overwrites friendly name.
type: string
+secondary_info:
+ required: false
+ description: "Show additional info. Values: `entity-id`, `last-changed`."
+ type: string
{% endconfiguration %}
## {% linkable_title Example %}
From d400dd24bae06d2f316c41612974815cb99ebccb Mon Sep 17 00:00:00 2001
From: huangyupeng
Date: Fri, 20 Jul 2018 04:38:07 +0800
Subject: [PATCH 08/46] Add Tuya climate platform (#5806)
* Add Tuya climate platform
* Edit the date
* change the release version
* :pencil2: Tweaks
---
source/_components/climate.tuya.markdown | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100644 source/_components/climate.tuya.markdown
diff --git a/source/_components/climate.tuya.markdown b/source/_components/climate.tuya.markdown
new file mode 100644
index 00000000000..4d89a4783b1
--- /dev/null
+++ b/source/_components/climate.tuya.markdown
@@ -0,0 +1,22 @@
+---
+layout: page
+title: "Tuya Climate"
+description: "Instructions on how to setup the Tuya climate devices within Home Assistant."
+date: 2018-07-16 09:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: tuya.png
+ha_category: Climate
+ha_release: 0.75
+ha_iot_class: "Cloud Polling"
+---
+
+The `tuya` climate platform allows you to control your [Tuya Smart](https://www.tuya.com) climate devices.
+
+The platform supports the air conditioner and heater.
+
+
+Full configuration details can be found on the main [Tuya component](/components/tuya/) page.
+
From 628d0b65cda12bc2b58dd430817287c3fd05c68d Mon Sep 17 00:00:00 2001
From: Jerad Meisner
Date: Thu, 19 Jul 2018 13:40:21 -0700
Subject: [PATCH 09/46] Update picture-elements docs. (#5830)
---
source/_lovelace/picture-elements.markdown | 107 +++++++++++++++------
1 file changed, 75 insertions(+), 32 deletions(-)
diff --git a/source/_lovelace/picture-elements.markdown b/source/_lovelace/picture-elements.markdown
index 32c77331861..771684130e0 100644
--- a/source/_lovelace/picture-elements.markdown
+++ b/source/_lovelace/picture-elements.markdown
@@ -40,23 +40,6 @@ title:
## {% linkable_title Elements %}
-### {% linkable_title Navigate to other views %}
-
-{% configuration %}
-type:
- required: true
- description: navigation
- type: string
-navigation_path:
- required: true
- description: URL path to another view.
- type: string
-icon:
- required: false
- description: Material Design Icon.
- type: string
-{% endconfiguration %}
-
### {% linkable_title State Badge %}
{% configuration %}
@@ -87,9 +70,21 @@ entity:
type: string
tap_action:
required: false
- description: "Set to `toggle` to change state"
+ description: more-info, toggle, navigate, call-service
type: string
default: more-info
+navigation_path:
+ required: false
+ description: Url path to navigate to (e.g. `/lovelace/1`)
+ type: string
+service:
+ required: false
+ description: "Service to call (e.g. `light.turn_on`)"
+ type: string
+service_data:
+ required: false
+ description: The service data to use.
+ type: object
style:
required: true
description: Position and style the element using CSS.
@@ -107,6 +102,23 @@ entity:
required: true
description: Entity id
type: string
+tap_action:
+ required: false
+ description: more-info, toggle, navigate, call-service
+ type: string
+ default: more-info
+navigation_path:
+ required: false
+ description: Url path to navigate to (e.g. `/lovelace/1`)
+ type: string
+service:
+ required: false
+ description: "Service to call (e.g. `light.turn_on`)"
+ type: string
+service_data:
+ required: false
+ description: The service data to use.
+ type: object
style:
required: true
description: Position and style the element using CSS.
@@ -138,20 +150,37 @@ style:
type: object
{% endconfiguration %}
-### {% linkable_title Service Call Icon %}
+### {% linkable_title Icon Element %}
{% configuration %}
type:
required: true
- description: service-icon
+ description: icon
+ type: string
+icon:
+ required: true
+ description: Icon to display (e.g. `mdi:home`)
type: string
title:
required: false
description: Icon tooltip.
type: string
+entity:
+ required: false
+ description: Entity to use for more-info/toggle
+ type: string
+tap_action:
+ required: false
+ description: more-info, toggle, navigate, call-service
+ type: string
+ default: more-info
+navigation_path:
+ required: false
+ description: Url path to navigate to (e.g. `/lovelace/1`)
+ type: string
service:
- required: true
- description: "Service like `light.turn_on`."
+ required: false
+ description: "Service to call (e.g. `light.turn_on`)"
type: string
service_data:
required: false
@@ -176,9 +205,21 @@ entity:
type: string
tap_action:
required: false
- description: none, more-info, toggle, call-service
+ description: none, more-info, toggle, navigate, call-service
type: string
default: more-info
+navigation_path:
+ required: false
+ description: Url path to navigate to (e.g. `/lovelace/1`)
+ type: string
+service:
+ required: false
+ description: "Service to call (e.g. `light.turn_on`)"
+ type: string
+service_data:
+ required: false
+ description: The service data to use.
+ type: object
image:
required: false
description: The image to display.
@@ -199,14 +240,6 @@ state_filter:
required: false
description: '[State-based CSS filters](#how-to-use-state_filter)'
type: object
-service:
- required: false
- description: Service to call.
- type: string
-service_data:
- required: false
- description: The service data to use.
- type: object
style:
required: true
description: Position and style the element using CSS.
@@ -276,7 +309,16 @@ state_filter:
left: 60%
service: light.turn_off
service_data:
- entity_id: group.all_lights
+ entity_id: group.all_lights
+ - type: icon
+ icon: mdi:home
+ tap_action: navigate
+ navigation_path: /lovelace/0
+ style:
+ top: 10%
+ left: 10%
+
+
```
## {% linkable_title Images Example %}
@@ -302,6 +344,7 @@ state_filter:
# Camera, red border, rounded-rectangle - show more-info on click
- type: image
entity: camera.driveway_camera
+ camera_image: camera.driveway_camera
style:
top: 5%
left: 10%
From 2986bc45a7cc793c2b6bb06b0c2a6166c5a80ce8 Mon Sep 17 00:00:00 2001
From: huangyupeng
Date: Fri, 20 Jul 2018 04:44:02 +0800
Subject: [PATCH 10/46] Add Tuya light platform document (#5800)
* Add Tuya light document
* fix grammar problem
---
source/_components/light.tuya.markdown | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
create mode 100644 source/_components/light.tuya.markdown
diff --git a/source/_components/light.tuya.markdown b/source/_components/light.tuya.markdown
new file mode 100644
index 00000000000..ec3d418e5e5
--- /dev/null
+++ b/source/_components/light.tuya.markdown
@@ -0,0 +1,23 @@
+---
+layout: page
+title: "Tuya Light"
+description: "Instructions on how to setup the Tuya lights within Home Assistant."
+date: 2018-07-16 09:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: tuya.png
+ha_category: Light
+ha_iot_class: "Cloud Polling"
+ha_release: 0.74
+---
+
+
+The `tuya` light platform allows you to control your [Tuya Smart](https://www.tuya.com) lights.
+
+The platform supports most kinds of Tuya light.
+
+
+Full configuration details can be found on the main [Tuya component](/components/tuya/) page.
+
\ No newline at end of file
From 04eaee00894e5af305254bbbbacc4c5f781d7ab0 Mon Sep 17 00:00:00 2001
From: huangyupeng
Date: Fri, 20 Jul 2018 18:20:38 +0800
Subject: [PATCH 11/46] Add Tuya fan platform document (#5815)
* Add Tuya fan platform document
* fix grammar problem
---
source/_components/fan.tuya.markdown | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
create mode 100644 source/_components/fan.tuya.markdown
diff --git a/source/_components/fan.tuya.markdown b/source/_components/fan.tuya.markdown
new file mode 100644
index 00000000000..273a6f00729
--- /dev/null
+++ b/source/_components/fan.tuya.markdown
@@ -0,0 +1,23 @@
+---
+layout: page
+title: "Tuya Fan"
+description: "Instructions on how to setup the Tuya fan within Home Assistant."
+date: 2018-07-17 09:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: tuya.png
+ha_category: Fan
+ha_iot_class: "Cloud Polling"
+ha_release: 0.75
+---
+
+
+The `tuya` fan platform allows you to control your [Tuya Smart](https://www.tuya.com) fan.
+
+The platform supports most kinds of Tuya fans.
+
+
+Full configuration details can be found on the main [Tuya component](/components/tuya/) page.
+
\ No newline at end of file
From d483e549a31b22fdf6f5b1a522d79d025db77ac4 Mon Sep 17 00:00:00 2001
From: Ryan Davies
Date: Sat, 21 Jul 2018 09:05:02 +1200
Subject: [PATCH 12/46] Updates MQTT switch to add state_ configurations
(#5776)
---
source/_components/switch.mqtt.markdown | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/source/_components/switch.mqtt.markdown b/source/_components/switch.mqtt.markdown
index 295ae106db1..ff824f97137 100644
--- a/source/_components/switch.mqtt.markdown
+++ b/source/_components/switch.mqtt.markdown
@@ -46,6 +46,16 @@ state_topic:
description: The MQTT topic subscribed to receive state updates.
required: false
type: string
+state_on:
+ description: The payload that represents the on state.
+ required: false
+ type: string
+ default: ON
+state_off:
+ description: The payload that represents the off state.
+ required: false
+ type: string
+ default: OFF
command_topic:
description: The MQTT topic to publish commands to change the switch state.
required: false
@@ -117,6 +127,8 @@ switch:
availability_topic: "home/bedroom/switch1/available"
payload_on: "ON"
payload_off: "OFF"
+ state_on: "ON"
+ state_off: "OFF"
optimistic: false
qos: 0
retain: true
From c449471ba50caad7098de0dd4e2af2a599999b28 Mon Sep 17 00:00:00 2001
From: Nick Chamberlin
Date: Sat, 21 Jul 2018 09:35:27 -0700
Subject: [PATCH 13/46] Updated example indentation (#5841)
Picture elements example indentation was off.
---
source/_lovelace/picture-elements.markdown | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/source/_lovelace/picture-elements.markdown b/source/_lovelace/picture-elements.markdown
index 771684130e0..72824fa8243 100644
--- a/source/_lovelace/picture-elements.markdown
+++ b/source/_lovelace/picture-elements.markdown
@@ -337,10 +337,10 @@ state_filter:
filter: saturate(.8)
state_filter:
'on': brightness(120%) saturate(1.2)
- style:
- top: 25%
- left: 75%
- width: 15%
+ style:
+ top: 25%
+ left: 75%
+ width: 15%
# Camera, red border, rounded-rectangle - show more-info on click
- type: image
entity: camera.driveway_camera
From dd08a604c57ba80cc3a1401f13e81acdf15d82e5 Mon Sep 17 00:00:00 2001
From: c727
Date: Sat, 21 Jul 2018 18:36:25 +0200
Subject: [PATCH 14/46] Lovelace: overwrite icons in entities card (#5839)
* Lovelace: overwrite icons in entities card
* Add icon support to glance
---
source/_lovelace/entities.markdown | 4 ++++
source/_lovelace/glance.markdown | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/source/_lovelace/entities.markdown b/source/_lovelace/entities.markdown
index 01c0241fb61..e1cc1ce4beb 100644
--- a/source/_lovelace/entities.markdown
+++ b/source/_lovelace/entities.markdown
@@ -49,6 +49,10 @@ name:
required: false
description: Overwrites friendly name.
type: string
+icon:
+ required: false
+ description: Overwrites icon or entity picture.
+ type: string
secondary_info:
required: false
description: "Show additional info. Values: `entity-id`, `last-changed`."
diff --git a/source/_lovelace/glance.markdown b/source/_lovelace/glance.markdown
index f1aceb91e53..1bfffba369a 100644
--- a/source/_lovelace/glance.markdown
+++ b/source/_lovelace/glance.markdown
@@ -60,6 +60,10 @@ name:
required: false
description: Overwrites friendly name.
type: string
+icon:
+ required: false
+ description: Overwrites icon or entity picture.
+ type: string
tap_action:
required: false
description: "Set to `toggle` or `turn-on` for direct actions."
From 4a3a21bb8e50099c9bfa64f9d552f0427dfd6df9 Mon Sep 17 00:00:00 2001
From: digiblur <3240875+digiblur@users.noreply.github.com>
Date: Sat, 21 Jul 2018 16:59:25 -0500
Subject: [PATCH 15/46] Add RelayAddr/Chan to Alarmdecoder (#5645)
* Add RelayAddr/Chan to Alarmdecoder
* Pulled zone 3 example out, corrected motion-based
Zone 3 example not needed
* Removed RFID double space
* Removed double space on relayaddr line
---
source/_components/alarmdecoder.markdown | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/source/_components/alarmdecoder.markdown b/source/_components/alarmdecoder.markdown
index 8cfc24d2152..ae81c2cf1f5 100644
--- a/source/_components/alarmdecoder.markdown
+++ b/source/_components/alarmdecoder.markdown
@@ -54,4 +54,6 @@ Configuration variables:
- **baudrate** (*Optional*): The baud rate of the AlarmDecoder device, if using serial type. Default: `115200`
- **panel_display** (*Optional*): Create a sensor called sensor.alarm_display to match the Alarm Keypad display. Default: `off`
- **zones** (*Optional*): AlarmDecoder has no way to tell us which zones are actually in use, so each zone must be configured in Home Assistant. For each zone, at least a name must be given. For more information on the available zone types, take a look at the [Binary Sensor](/components/binary_sensor.alarmdecoder/) docs. *Note: If no zones are specified, Home Assistant will not load any binary_sensor components.*
-- **rfid** (*Optional*): The RF serial-number associated with RF zones. Providing this field allows Home Assistant to associate raw sensor data to a given zone, allowing direct monitoring of the state, battery, and supervision status.
+- **rfid** (*Optional*): The RF serial-number associated with RF zones. Providing this field allows Home Assistant to associate raw sensor data to a given zone, allowing direct monitoring of the state, battery, and supervision status.
+- **relayaddr** (*Optional*): Address of the relay expander board to associate with the zone. (ex: 12, 13, 14, or 15). Typically used in cases where a panel will not send bypassed zones such as motion during an armed home state, the Vista 20P is an example of this. Alarmdecoder can emulate a zone expander board and the panel can be programmed to push zone events to this virtual expander. This allows the bypassed zone binary sensors to be utilized. One example is using bypassed motion sensors at night for motion-based automated lights while the system is armed with the motion sensor bypassed.
+- **relaychan** (*Optional*): Channel of the relay expander board to associate with the zone. (ex: 1, 2, 3, or 4)
From 67c64b1a9c131a7f4a9ac2afd0892a8f6104d96e Mon Sep 17 00:00:00 2001
From: cdce8p <30130371+cdce8p@users.noreply.github.com>
Date: Sun, 22 Jul 2018 22:43:46 +0200
Subject: [PATCH 16/46] Added doc for name parameter (#5848)
---
source/_components/homekit.markdown | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/source/_components/homekit.markdown b/source/_components/homekit.markdown
index b2cea8deeda..74bb8a7c48a 100644
--- a/source/_components/homekit.markdown
+++ b/source/_components/homekit.markdown
@@ -64,6 +64,11 @@ homekit:
required: false
type: int
default: 51827
+ name:
+ description: Need to be individual for each instance of Home Assistant using the component on the same local network. Between `3` and `25` characters. Alphanumeric and spaces allowed.
+ required: false
+ type: string
+ default: '`Home Assistant Bridge`'
ip_address:
description: The local network IP address. Only necessary if the default from Home Assistant does not work.
required: false
From de70830e124c3b365f9335dba582b70119febb64 Mon Sep 17 00:00:00 2001
From: huangyupeng
Date: Tue, 24 Jul 2018 16:37:28 +0800
Subject: [PATCH 17/46] Add Tuya cover and scene document (#5840)
* Add Tuya cover and scene document
* fix as required
---
source/_components/cover.tuya.markdown | 23 +++++++++++++++++++++++
source/_components/scene.tuya.markdown | 24 ++++++++++++++++++++++++
2 files changed, 47 insertions(+)
create mode 100644 source/_components/cover.tuya.markdown
create mode 100644 source/_components/scene.tuya.markdown
diff --git a/source/_components/cover.tuya.markdown b/source/_components/cover.tuya.markdown
new file mode 100644
index 00000000000..82040f93ecc
--- /dev/null
+++ b/source/_components/cover.tuya.markdown
@@ -0,0 +1,23 @@
+---
+layout: page
+title: "Tuya Cover"
+description: "Instructions on how to setup the Tuya cover within Home Assistant."
+date: 2018-07-20 09:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: tuya.png
+ha_category: Cover
+ha_iot_class: "Cloud Polling"
+ha_release: 0.75
+---
+
+
+The `tuya` cover platform allows you to control your [Tuya Smart](https://www.tuya.com) curtains.
+
+The platform supports curtains.
+
+
+Full configuration details can be found on the main [Tuya component](/components/tuya/) page.
+
\ No newline at end of file
diff --git a/source/_components/scene.tuya.markdown b/source/_components/scene.tuya.markdown
new file mode 100644
index 00000000000..70babb97885
--- /dev/null
+++ b/source/_components/scene.tuya.markdown
@@ -0,0 +1,24 @@
+---
+layout: page
+title: "Tuya Scene"
+description: "Instructions on how to setup the Tuya scene within Home Assistant."
+date: 2018-07-20 09:00
+sidebar: true
+comments: false
+sharing: true
+footer: true
+logo: tuya.png
+ha_category: Scene
+ha_release: 0.75
+---
+
+
+The `tuya` scene platform allows you to activate your [Tuya Smart](https://www.tuya.com) scenes.
+
+The platform supports scenes.
+
+The device state in frontend panel will not change immediately after you activate a scene.
+
+
+Full configuration details can be found on the main [Tuya component](/components/tuya/) page.
+
\ No newline at end of file
From 7b467602999857adff8cb46a6683c8e8aa7aa78d Mon Sep 17 00:00:00 2001
From: c727
Date: Tue, 24 Jul 2018 15:56:31 +0200
Subject: [PATCH 18/46] Lovelace: Docs for special rows (#5858)
* Lovelace: Docs for special rows
* Row
* Add call-service
---
source/_lovelace/entities.markdown | 89 ++++++++++++++++++++++++++++++
1 file changed, 89 insertions(+)
diff --git a/source/_lovelace/entities.markdown b/source/_lovelace/entities.markdown
index e1cc1ce4beb..d32e39a94c4 100644
--- a/source/_lovelace/entities.markdown
+++ b/source/_lovelace/entities.markdown
@@ -59,8 +59,76 @@ secondary_info:
type: string
{% endconfiguration %}
+## {% linkable_title Secial Row Elements %}
+
+### {% linkable_title Call Service %}
+
+{% configuration %}
+type:
+ required: true
+ description: call-service
+ type: string
+name:
+ required: true
+ description: Main Label.
+ type: string
+icon:
+ required: true
+ description: "Icon to display (e.g. `mdi:home`)"
+ type: string
+action_name:
+ required: true
+ description: Button label.
+ type: string
+service:
+ required: true
+ description: "Service like `media_player.media_play_pause`"
+ type: string
+service_data:
+ required: true
+ description: The service data to use.
+ type: object
+{% endconfiguration %}
+
+### {% linkable_title Weblink %}
+
+{% configuration %}
+type:
+ required: true
+ description: weblink
+ type: string
+name:
+ required: true
+ description: Link label.
+ type: string
+icon:
+ required: true
+ description: "Icon to display (e.g. `mdi:home`)"
+ type: string
+url:
+ required: true
+ description: "Website URL."
+ type: string
+{% endconfiguration %}
+
+### {% linkable_title Divider %}
+
+{% configuration %}
+type:
+ required: true
+ description: divider
+ type: string
+style:
+ required: false
+ description: Style the element using CSS.
+ type: object
+ default: "height: 1px, background-color: var(--secondary-text-color)"
+{% endconfiguration %}
+
## {% linkable_title Example %}
+Entity rows:
+
```yaml
- type: entities
title: Entities card sample
@@ -73,3 +141,24 @@ secondary_info:
- group.all_lights
- group.all_locks
```
+
+Special rows:
+
+```yaml
+- type: entities
+ title: Entities card sample
+ show_header_toggle: true
+ entities:
+ - type: call-service
+ icon: mdi:power
+ name: Bed light
+ action_name: Toggle light
+ service: light.toggle
+ service_data:
+ entity_id: light.bed_light
+ - type: divider
+ - type: weblink
+ name: Home Assistant
+ url: https://www.home-assistant.io/
+ icon: mdi:home-assistant
+```
\ No newline at end of file
From db132868ec173e3aeb4dbe39f1c0b29274a50f60 Mon Sep 17 00:00:00 2001
From: c727
Date: Tue, 24 Jul 2018 15:56:57 +0200
Subject: [PATCH 19/46] Lovelace: Add Prefix and Suffix to state-label (#5862)
---
source/_lovelace/picture-elements.markdown | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/source/_lovelace/picture-elements.markdown b/source/_lovelace/picture-elements.markdown
index 72824fa8243..a12ce456df4 100644
--- a/source/_lovelace/picture-elements.markdown
+++ b/source/_lovelace/picture-elements.markdown
@@ -102,6 +102,14 @@ entity:
required: true
description: Entity id
type: string
+prefix:
+ required: false
+ description: Text before entity state.
+ type: string
+suffix:
+ required: false
+ description: Text after entity state.
+ type: string
tap_action:
required: false
description: more-info, toggle, navigate, call-service
From 073b7414719e686a2927cdd3d9ebf7e6b4d2be20 Mon Sep 17 00:00:00 2001
From: c727
Date: Tue, 24 Jul 2018 15:57:05 +0200
Subject: [PATCH 20/46] Lovelace: Change glance tap action (#5864)
---
source/_lovelace/glance.markdown | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/source/_lovelace/glance.markdown b/source/_lovelace/glance.markdown
index 1bfffba369a..ab3c553bd08 100644
--- a/source/_lovelace/glance.markdown
+++ b/source/_lovelace/glance.markdown
@@ -66,9 +66,18 @@ icon:
type: string
tap_action:
required: false
- description: "Set to `toggle` or `turn-on` for direct actions."
+ description: "Set to `toggle` or `call-service` for direct actions."
type: string
default: more-info
+service:
+ required: false
+ description: "For `call-service`, e.g. `media_player.media_play_pause`"
+ type: string
+service_data:
+ required: false
+ description: The service data to use.
+ type: object
+ default: "entity_id: entity_id"
{% endconfiguration %}
## {% linkable_title Examples %}
From 013ea650e528296d6344da7ce65a67f7d5494c0e Mon Sep 17 00:00:00 2001
From: Daniel Kalmar
Date: Tue, 24 Jul 2018 20:30:21 +0200
Subject: [PATCH 21/46] Add documentation for default turn-on values for
lights. (#5865)
---
source/_components/light.markdown | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/source/_components/light.markdown b/source/_components/light.markdown
index 5eb3083f2de..b4e6102c8f6 100644
--- a/source/_components/light.markdown
+++ b/source/_components/light.markdown
@@ -15,6 +15,12 @@ This component allows you to track and control various light bulbs. Read the pla
The light component supports multiple entries in configuration.yaml
by appending a sequential number to the section: light 2:
, light 3:
etc.
+### {% linkable_title Default turn-on values %}
+
+To set the default color and brightness values when the light is turned on, create a custom `light_profiles.csv` (as described below in the `profile` attribute of `light.turn_on`).
+
+The `.default` suffix should be added to the entity identifier of each light to define a default value, e.g. for `light.ceiling_2` the `id` field is `light.ceiling_2.default`. To define a default for all lights, the identifier `group.all_lights.default` can be used. Individual settings always supercede the `all_lights` default setting.
+
### {% linkable_title Service `light.turn_on` %}
Turns one light on or multiple lights on using [groups]({{site_root}}/components/group/).
From 93c911fe992b0576b7fd5d56296de071dfb4fa6c Mon Sep 17 00:00:00 2001
From: David Gibbons
Date: Tue, 24 Jul 2018 13:19:51 -0700
Subject: [PATCH 22/46] In a code block we want to match the command "secret"
not the name of the section, "secrets". (#5854)
This fix brings documentation in alignment with the commands used.
---
source/_docs/configuration/secrets.markdown | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/_docs/configuration/secrets.markdown b/source/_docs/configuration/secrets.markdown
index 906c40f536e..0f1728cc013 100644
--- a/source/_docs/configuration/secrets.markdown
+++ b/source/_docs/configuration/secrets.markdown
@@ -10,7 +10,7 @@ footer: true
redirect_from: /topics/secrets/
---
-The `configuration.yaml` file is a plain-text file, thus it is readable by anyone who has access to the file. The file contains passwords and API tokens which need to be redacted if you want to share your configuration. By using `!secrets` you can remove any private information from you configuration files. This separation can also help you to keep easier track of your passwords and API keys. As they are all stored at one place and no longer spread across the `configuration.yaml` file or even multiple yaml files if you [split up your configuration](/docs/configuration/splitting_configuration/).
+The `configuration.yaml` file is a plain-text file, thus it is readable by anyone who has access to the file. The file contains passwords and API tokens which need to be redacted if you want to share your configuration. By using `!secret` you can remove any private information from you configuration files. This separation can also help you to keep easier track of your passwords and API keys. As they are all stored at one place and no longer spread across the `configuration.yaml` file or even multiple yaml files if you [split up your configuration](/docs/configuration/splitting_configuration/).
### {% linkable_title Using secrets.yaml %}
From 3e240c20d61dcb0e59203bd0348a0c4c5e58a27d Mon Sep 17 00:00:00 2001
From: Andrey Kupreychik
Date: Wed, 25 Jul 2018 03:42:55 +0700
Subject: [PATCH 23/46] Changed documentation to comply with
https://github.com/home-assistant/home-assistant/pull/15511 (#5813)
---
source/_components/device_tracker.keenetic_ndms2.markdown | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/source/_components/device_tracker.keenetic_ndms2.markdown b/source/_components/device_tracker.keenetic_ndms2.markdown
index aec5ac8a522..d2d9fc506be 100644
--- a/source/_components/device_tracker.keenetic_ndms2.markdown
+++ b/source/_components/device_tracker.keenetic_ndms2.markdown
@@ -29,7 +29,8 @@ device_tracker:
Configuration variables:
- **host** (*Required*): The IP address of your router, e.g., 192.168.1.1.
-- **username** (*Required*): The username to login into the router (user should have read access to web interface of the router).
+- **port** (*Optional*): The Telnet port of your router. Default is 23.
+- **username** (*Required*): The username to login into the router (user should have read access to telnet interface of the router).
- **password** (*Required*): The password for the specified username.
- **interface** (*Optional*): Ihe internal name of the interface to get devices connected to. Default is 'Home'. For expert users only.
From 91dfff7cff0a85fd1b06b78f4fead86b6954eb81 Mon Sep 17 00:00:00 2001
From: c727
Date: Tue, 24 Jul 2018 23:24:49 +0200
Subject: [PATCH 24/46] Lovelace: Add resources to config file (#5877)
---
source/lovelace/index.markdown | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/source/lovelace/index.markdown b/source/lovelace/index.markdown
index 6f2862b8ad0..2d10ef96947 100644
--- a/source/lovelace/index.markdown
+++ b/source/lovelace/index.markdown
@@ -45,6 +45,13 @@ Create a new file `/ui-lovelace.yaml` and add the following content. Adj
```yaml
title: My Awesome Home
+# Include external resources
+resources:
+ - url: /local/my-custom-card.js
+ type: js
+ - url: /local/my-webfont.css
+ type: css
+
# Optional background for all views. Check https://developer.mozilla.org/en-US/docs/Web/CSS/background for more examples.
background: center / cover no-repeat url("/background.png") fixed
# Exclude entities from "Unused entities" view
@@ -120,6 +127,6 @@ This is probably because your version of Firefox doesn't have custom components
### Custom components don't load on my IOS device?
-This is because for IOS devices by default javascript served is `es5`. You can allow custom components to load by forcing `javascript_version: latest` in your `configuration.yaml` under `frontend:`.
+This is because for IOS devices by default javascript served is `es5`. You can allow custom components to load by forcing `javascript_version: latest` in your `configuration.yaml` under `frontend:`.
> Note: Enabling `latest` on IOS could cause automation and script editor to crash.
From c8146e572054d9bd3e18687119c14ec4a45b1882 Mon Sep 17 00:00:00 2001
From: c727
Date: Wed, 25 Jul 2018 04:18:42 +0200
Subject: [PATCH 25/46] Lovelace: Pic entity show name, state options (#5880)
* Lovelace: cleanup picture entity (#5855)
* Lovelace: Pic entity show name, state options
---
source/_lovelace/picture-entity.markdown | 75 +++++-------------
.../lovelace/lovelace_picture_entity_2.gif | Bin 2422793 -> 0 bytes
2 files changed, 22 insertions(+), 53 deletions(-)
delete mode 100644 source/images/lovelace/lovelace_picture_entity_2.gif
diff --git a/source/_lovelace/picture-entity.markdown b/source/_lovelace/picture-entity.markdown
index b45c475f334..39ad6002f19 100644
--- a/source/_lovelace/picture-entity.markdown
+++ b/source/_lovelace/picture-entity.markdown
@@ -1,8 +1,8 @@
---
layout: page
-title: "Picture Entity Card"
+title: Picture Entity Card
sidebar_label: Picture Entity
-description: "A very useful card for controlling entities. By default, you will get `more-info-dialog` but using `tap_action` you can directly control entities that have `on`/`off` states."
+description: Displays the entity in form of an image. Instead of images from URL it can also show the picture of `camera` entities.
date: 2018-07-01 10:28 +00:00
sidebar: true
comments: false
@@ -10,15 +10,11 @@ sharing: true
footer: true
---
-A very useful card for controlling entities. By default, you will get `more-info-dialog` but using `tap_action` you can directly control entities that have `on`/`off` states. It allows you to generate a very nice looking card with a big touch area, highly recommended for mobile dashboards on small screens.
-
-You can use different image combination to get a more realistic view for images with lights. The image setup also allows enough flexibility to get your garage picture with the door opened and closed.
-
-You can also use `camera` domain entities to use that as `camera_image`.
+Displays the entity in form of an image. Instead of images from URL it can also show the picture of `camera` entities.
-
-Screenshot of the picture entity card.
+
+ Background changes according to the entity state.
{% configuration %}
@@ -28,60 +24,39 @@ type:
type: string
entity:
required: true
- description: "An `entity_id` to control via picture."
+ description: "An `entity_id` used for the picture."
type: string
camera_image:
required: false
- description: "Camera `entity_id` to use."
+ description: "Camera `entity_id` to use. (not required if `entity` is already a camera-entity)."
type: string
- default: None
image:
required: false
description: URL of an image.
type: string
- default: None
state_image:
required: false
- description: "See `state_image` object structure."
+ description: "Map entity states to images (`state: image URL`, check the example below)."
type: object
- keys:
- "on":
- required: true
- description: URL of an image used for on state.
- type: string
- "off":
- required: true
- description: URL of an image used for off state.
- type: string
- default: None
- home:
- required: false
- description: URL of an image used for home state.
- type: string
- not_home:
- required: false
- description: URL of an image used for not_home state.
- type: string
- default: None
- any:
- required: false
- description: Any state that is supported by the entity works.
- type: object
name:
required: false
- description: Custom name for entity.
+ description: Overwrite entity name.
type: string
- default: None
-show_info:
+show_name:
required: false
- description: Set to false to hide infobar.
+ description: Shows name in footer.
+ type: boolean
+ default: true
+show_state:
+ required: false
+ description: Shows state in footer.
type: boolean
default: true
tap_action:
required: false
- description: "Set to `toggle` for turning entity on/off without opening a dialog."
+ description: "Set to `toggle` for turning entity on/off."
type: string
- default: dialog
+ default: more-info
{% endconfiguration %}
## {% linkable_title Examples %}
@@ -90,22 +65,16 @@ Basic example:
```yaml
- type: picture-entity
- image: https://images.pexels.com/photos/775219/pexels-photo-775219.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=295&w=490
entity: light.bed_light
+ image: /local/bed_light.png
```
-
-
-Screenshot of the picture entity card.
-
-
-Example with night/day:
+Different images for each state:
```yaml
- type: picture-entity
entity: light.bed_light
- image: http://farm7.static.flickr.com/6153/6220100622_88e64ec5d8_b.jpg
state_image:
- "on": http://farm7.static.flickr.com/6220/6220100616_a877f41a66_b.jpg
- title: Livingroom lights
+ "on": /local/bed_light_on.png
+ "off": /local/bed_light_off.png
```
diff --git a/source/images/lovelace/lovelace_picture_entity_2.gif b/source/images/lovelace/lovelace_picture_entity_2.gif
deleted file mode 100644
index 3f24d0ba9c93478ceb12ca32e0ceb7bf2fad604c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 2422793
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Ǣ}*
zGmcGVGbbKcFozM=w(*x_wtG3BD|El5(K%N9Tj~se4af5~D!ESMrwCh><1rSeCN~}z
zm$1GvS7I)Y02os0Ogl^SiRA@w0~55H{4}0LEGmM>m}r5?SUzwI6A%s=S}_K$Vq-rB$R7eDm=
zCu~2fx%?MVmM7P}RG)w0I**I{Cg+-qm+o}a_ko@Ig;S-Q+TnH;E@*|Ris9pf1;65}
zNV7Dw{Z*_aZ~^>!!41VfHscTf(FJG|v)FX$&;1n_
zt0oVFB2`swGSG;Y;zu{4=b3(`i*J&dy0yDEK~o)T84bIyu+Of(%0_FJy)fmq|9Xzo
zMB&NC7sb+&a(tc
zY@xhIYVGFJG}3hcL{x?K`T#HLK4v1^@=k-zm&<{0u2Ld{IR7|vW5&RA8@npx7oJtL
zJk8k43@INtVuv^wGE1-t)Taq{1rmXE0VxL6Uv9B@GY!@Q8^11#d5(Lg_^?MN5{gq$
z?xc;!zanO>Jj#P&JR7qr3CyPH4!ad`U)V*+
z12+)e_Y&@)_n)|VK+=SrF)ODYr~PyiUFwP0ArYmgHqDkqXSdS%Rs>?rwZTr&k^-;r
zAT?T-?`8E6-V=B^MNWAPUZ>}89c@aRMLLVyW&kd6A&~{EBn3(4`(h_{v4%jgeQJ#L
z`ujTIkDX<*(=rBV
zUo*->NgnZw0&(zD#e9F&Bj@f)BYAqh;;O16Rf586c
z)J#8k&f(a}_?HE{2O_JOe@g6R7_d&7{jtq*TC{Y;9
zN(SmDX;mp^8L1ViX@&8609im6T1mTQU=6to_2i`%rLVs>Yhjpc8TMlA#`
zdavb}=}L`IHV9XNxBz-)zm*kGhJZ7#A4tA)HnjWAC`^;5Y{k)M=M2
z_~mJ$UtRxHfF03v@FhrC<+@MMx6d3;8U_abkl%ASobiv;YodpR0X`{scLDf0=Iki&
z=bJ@9$UPL};!rAlO>WD_SuTWM(W2b;^4mj7OY@6Wr@{{2A`v%klvSMbyKfgawZk{X
zK|034MdgpbP_Fa-J4AfKdug}`%}4|VZn&^6sT#X57?3cIU4qA_ycY%V7d49|8TS(Y
z$D3H$AYLkst&ldkIuh{Xh%dn?jm6xig>H?a^A68j58H{$lN^=zBp)OI5E7nDTVNZNDd>Jt6-uCA=RYXnX3TYy5(c!M2(SJ+S
zSLhb@;$d5O_TDBjfkUyWpXpX=T-`oFE8@|dl18^9@n%K}3o4>Zks3-(zWa`bdk_6f
zje{Zfa-Tm!WD%+TDyjE+!8gp6_$yPZ$5Ja^U+ghaK1JswUT;p!qNZ87YCFw>wmvkMuE!@uWf+hesKd#Wd1Z1pia7`kBV;k#Bt6d+KxZd<#m)k3Ek?$
zpi2iNsb`21#K0G45{K+4W6-4vP8l(%Q{e$Q(4HRP1wyKp2FQ?gVE}0n%#i44DU`}q
zL`Y#EFytH}W;lJ0xxyY#Xx#EX7l|Voc_UafizNh9_lvk+NirC$nY~j(28%ny%%d$#
z958(z8R;pRxTL#vLIe93-WP*=5>nmM@~h$)FUJu=M2~m@zow#W
z$>}6O}1hil4}7GSxrSNM|;11gE|H$-|;KnLKojB=52Q60xEKRqXtDF`8Qb}
zm`J2}lzlO$+i!GHA;wR5B+p@_L~qLK{T!HArt~wTvJQsNGS=9#?^YkT#4h7G>+SqH
zNWm*w+Kp@{BTkUVoV4|UO+cCM3t!ve60Tt;IZh)8h6oZSnwa}QjA;-sPa(BiGrCP7
zf-h6?7$V7(C9?%Q;^96v2gt}DeTsooZ+6x$9-2Wdryo*$ss*sS>;L_V+ks=_OCxUEy%?1WMnP>Hj`CUK
z1xA0_HiFVc$zXsAQb57((}7Dqi458hQZPb`LZK}Ck}b}k$yH(z*Z=!+$G$OxA4q~_
zcx1cDxid33CMfC<;quM3DTyV9IL;5mIyo$xu^mKYTBwY#{$^F6A_+JXRPWQcDEM>i
z_1UM>quJ{fzQr4^Y3f>Oo0d-id!@t*y%p1;jpQE>wUDw+FN4{(e+s@Rb2KceUN_@v
z{augc3#&EqH0IUn%wcsqsrAS^laM7Z6oJh$!JZ5E3>$TJPVO1b-}`pL<6+N-#-HtC
zHjibT)9cdMj%|Z=c&2(m?hNeOdq7LP0CPV}AK3L}nz1pco0i1VXM2x9@u3jRA7%_EtL3ExHHzk4NLNmDHru3&pZVTtA888d
z_s3UQ1$QInL4YpKFp%TxkFcw*(vxbU56Pmsl~UY2e2dvux@C&eYeFBZo9MYbwVxH;
z>)PKJ;~uL(d&PwVG;}stbbcL3)GUIB_r*QH)>m9W7zB|&`z+do;9Umi9~0Fy6;c6R
zQ{1ynkiwoWM{zIILsrlUt=vihvP}+<+7*Zih*R#5@NmAqr8pPA$_0yKuqqXzP6g;x
z9#NvM{vVd{Y=BptMad4bNmm&9bN6k&j~mR*yo=jPNd2ed;}2WrO{T$BOpoD!>Wri6
z{Rr;u98DObkdwIFpfn59a^(3a7nuk^njUG}t*jP^lQK?9wZ4~o`j949FSN=pjG^5B
ztIPjWRVQo!Zqv`lH^f(Z4cbcVzXC{i{@{n9Kwxa7-&NlBF&)?X7+H|3GKzdNpYLS?
z35&Q1_XpZX;Qs_N0m(trbdH{bWP1ryO)S#55{pAri_cknKn%eTyK!yBbI$-O9e5$c
zCQ6TN!4Eqz0P<_{{k#x1Mnhp9j>4t53o?}kOzr!KN;PozOQy%SGV?T15Z20PPgTkr
ztgX0B29j)4c*m}CHt?xc1}7YHbZK8Uq~ia>GEnUA2*z?ZNFnv!JQO^9_|Z!5)s!H-
z7V~&kXn37g@P}6T^$GZGr1(;4k&v^<-@4j|f)~-#r)dr#DdDr49?;n*`Ow?v!!{sM
zREH*MLNf{!RR_{72Ej-+E=H0p=|K7CJE_O2-Ja1`{+QR9vTIJ%5&O4!p_(g5Vi4zt|jb`6h`T=&Bc!
zzwwFu`8-p%>!pLoJ6lizp6+79l)`93X_qapQoAF(Fjb
z+@Kl~^W%YsoGyb3k%z6lr%Ik6NuSWjg0fpdd=HA6>bQRoDwI;C-}OorzFQ*cmHW0m
zW5!8okkE{y@^YC*GAax*RZD}5H6PAlmRg$r_jRPU1;Ddr{C$>kUbpKnwp#~OtOoMmM%%Kg
z376AseyP|ku;wg}Kqxt~u|g1Sa=4$u;sZu@abmOMPk6*
z7An+S5GQA(7}LwPRWNloXI1W0s8$cE_H7k=?=?JndPH9se@2QI9q$eg}e=-wc=}j
zi`iRkq`cM&vc{1F&XOqE?_G#ZmGD4H2JZ-2%*@H_G+9*-ZLrjq_mq^YT-<4bkC;1s
zJg=%Vu5WT()#NnYNaq!`wa@=SX4!h_cw-k#ec)3lsu|++)aI1MQwyv9@e7B?ZT%a1
zLs~(Ka%-^f{vW)$TKD0=1M&Jf3y2ki5RPWAm;Lon>%uiCo$?7)3LWR}=*;cRSYIMO
zR8?0IbR;!ud>NF>_Y$lz&{UU$;Gbh@m5~Lyx(ZZ?WU(T&AWCm)>SfRl{KFo{4ECgb
zXY^ZslCjA%#j@9*)gCkVu`%R^z}=%aJ@yHY@qgutC=e~I(D&45oN8w@0pv#!Hv;KM
z?Wop0@fr>(St?;urh{3i6Q+Q*ScH&_E5B6?%VS3c?yi)j={d2D?zjxkkk=WcR
zgNp5^`pN9}Y)Z(R*ms*1qOBpepQL~KUvk{FpRH?z6-xzeT{nEh{ORqv>_6!o275p*
zXhhRZ=gGT%1H0At>O1U)zcM&JzKRhz#q1luQ07tQw}{#w_XVnn$xx%HntCqq3xBYR
zT=@3)wtn=vo0RE|c**-5F{1$MC7#{8u=v4uoFZ1;?K15=TsI^f)c3#y=nGNQp&SZm
zjgXij!Jyj511xdO=W3p(i+)d)=CEGAI`q!nuTF;1o^3SVJUaFR2?CW_UJVltxRks%
zNN{&~XS~m%V}}&~w>j9(?lH+dw-MKvQ!FrL&@>S`at$YM_v_@z|DK4H^>OW!h#1@{
zE+HzdxVZIEW!hxxqk4>X+rd($1ac5U58d2wtojs!yJG||E=$Tn?;|#Ti>6ZQ*-ho
zG=|48TypY*)US_-ydT+*P9&R+!WE~-?D)6KI6dPo>%MV|AZFByRH9oLt^f|J?)SAx-y)v
zb>+hOBwgf*by`L)w=}c`YyXHUX-yS$^>_=NsGF)Yz9F+v@!zNCX;zi^BLRCkdbUzq
z&f$*wU2ge{lS`lEpRs!z1TUV}!J*c|su7uV8Yn#iE?9p-4eSF+UxRU@62fWt)NMxg
zK;o=P&QN{mt@ohFSDueUWQ>zw>jD#aUUgd9Fqq-1`>h9Gf9!QNJih6Da_!gse_|;o
zYzab0ks3(itDO^>5jhGJaqiMX2
zmnmD-yB>q>xm)n|O=wl`(
zmgB)4cTX}35Cpxl*T^enIUUeP#R>IL`Q{~e7MTJ>8dR>*ZkMQ{`cqt?L}D(qckc1r
ztUTsju{BJO^olVcJnhzu#9hDAKBml-`qZg|DnHM5JUKLPoJSg^`
z55<^$1=)02&-CpYN5aR9A4V)|*NLpG#l1vw8}8RBo}p!Lru|E`T_QYcQY_ylsyT$c
z>jS%zdqS&C|1dmyM)gr;6r>I5icm4{ssX8Rfw{#=qCbMRL9MqMqlskLjdtJ_7
zI|t9%_FWu4U77L^dpWVvU4YZ=lvp^Y+h9H$-m7S)I!=A?D17jR5}O*$MctTnI_qBX
z>Cu`)=_4xj%>2(3&=eV0t#yuB@XPc2PZ&W85xP4HO|3|sQqap$k@?>da&nY4<7+J2
z?)R{XcM4BJE!&g6?|j)=8`!aYn*3eGP(H`RRkbPkD)xv)9QC#HGuxl9<39?Arg45+
z3?G!;cXf8DpYhk(=f2tvA1%ASqO%3u6VQM;pWZxw>NR||yU*~`{8V)zxri;L*XUyY
zPcq-|jsJz%l-xr+l06naZz+Ku8fVvtte;Adti+GD<@M+HB%&(`6$Fxt$bsWjc4
zVwPE>F&!YK_d-EJt+;ZSO&MbOSGH!)$ob@pOQXC8L`}5M3IcOUOm?h&LVf@nN5wKa&71{#Jv;ZRl$snW^k3isJ<4lo6t(n4?K
zR1AIL0piPAgha?|3~Y8rB2dZn1L(pj!VP2;S(*+x2Hj+`NH9O5kk7Ax-8~NPwnZnIC({o<+*QvqV>tf<$bM8q`)B0I+A`Dm%S7jdCU6L%ZFRpjWsBLkYIU)aM>~@>ns0D+;oFLo_Ecn@vejV*pCq?(O$Fv&>
zXVC5lA^c^(HO*SJaw=TqTvPVilFMd_qh@?^W8ye#=wVNlmUO1?R1U^%GnYA>
zj)y4UKw4!l1gs-m;DHY&TsA%~oVS#iryQ^{2<$n4i{;W>QJ+PpuM(VEG@K1w7Lr{>
zBtqHi&yoTq?j*hY{8`vt@~R4%Q8p(ZdL(%(***X)WAV&Kn`Kt~5G2Uo+95N$l8R`Y
zV^D#5U^=CT78repyB%-sIhhSc@2?sBYI^|#$K3g|k=>)baQo{6Ovx)wUz(P+E9~1K
z4{-fwPv78wu!_^tJ3RO7EIS)+A7+8qW;nm;J9AUA8KF&x)wQu?{p#FRNQP?h&t5~@
zZ?#_Vk16BN`&j;gj0~t8oOq`8hhaA1rroQ(!)hsy|9z9YnS`JM-?3sA6ed-YB+~$i
z5koWg;6O-i12fE~Yq`8-qbi=Uc7mH0waiv1mP4nR2Ay9ccAMa$=Lh$)w*{GCDFHPQ
zp)uyePGuFcQS0fhtMffM){#8YxRmj@w1K-qgO~`nv2=P@S65p{8TP>`zk)
z(8OB{0k0J5Y_F%MHV0OhO$5W`ZfzX~^N+0vHQIcAJih|w%Ap8Lke4J~j2c8ezdl2=
zbgx{^KXq5P2wT;MNC=T>wR9%GaF39)dxfp4~?bMA@
zcd?q1N>&01nC)~hF~wOUlc`E~pGJod(#4E_Es7>`VbL_=^1H^0!Hgbw+#fI<`(5pl
zC_ZkszfL`%EVaf*uUeXm#fm^iPBhA7Dr@gk*0Vs`G9|yU$cAUJ_O1`5&eCuGu%c
z)lv_g?Y|3M-Th__-db(bBq5CQ(=P~wOHp*`scz%mFNV-VDrx>04T;uIQ`9tCvzWRDKNnQX_PKokq(
zH1c*@hk9FUJpA5ndi1YVF`*llV!i4(S32xX-St6v+Zmg@ii4W6IBjFh4(>H
zzjbns!t%~fr{y&W#=07Lom;y49WA7tA*YChWRE~|BB1p}{P0KOaSW-*K$ey|K@=F*
zWfv-rOe7d{O7ABK1tO<-BPiLBX}?R&<&hc1QO>9;6bhY%
z-8#OaVTbSVPQLIE{LVREmhNP59Q~LXP$a1s8KvCEKz=<8|Le-KcnFN}cxh3LSzO>+
zG#~|?lkO&vj^fX#WaVtl(N2SAfD}bW6y3jQs^BI1*RBwJ)h|G^hP@HS5Fd*T&O4Ro
z|Gw52eVQp@;nn||hj&Z0o8a;2q1j-X8TCuLVP&+5jHoex#wQ~C1ScR&ae-=x!02EM
z9*FT_t*c|5`z&s}5o5HKP$ZN4=XIj{1k9mZP=@YzPz)BLpWb+rl~spkkzYfmx1=gk
z0A+kQVK(qcD_aO}_0gW~jT8<|&bBCrY*UQf>L9XMR+3Q;SeBed;m>c)8B2@i;0}p1
zE_7ZB=gz7E@7h
zgGO|JcJu=or$*01|A?L;?
zSAV@@pG9@x9u0Ww0BN1mVsTXuz{nep1l}`-#Nb57%x}g<-F)97Ef~f7FF{}mM~=3v
zNUMxt{2h`Hx}I&Mup(uZ@|$gS&8gL>@&yKVdI|-k@UZ;jRKC=(W~?Eq74}ZNm=*zV
zVZO|%qGm8w)mO)kv&c_CR=**XJPa%e;jh%%zBUr?6k#)CoTS#$kfbdfJ`J(oh(AY%DoxW(xjjxCf#(ANMk(YXwN9u
z(G}z^`twn|tU9mQ4|Xj|NNn5fuZgTp-cU-{?fSKf6w5ntu^iQV@=rJg6Wv)R0Tt{4
zsg(kSvRnZ?j6a^8sff;p2ql~&MniRdEWOFSL{lK6HHf{cCuOut5{_aUw-?^WvByRU
z5OQng>T9Uv(#6pPlQ*8Vd`hQkSgk81&J3GC5s5{XSSa{~Y{aXxoEoSIh7Xkn<@3mk
z@p0>Q-D1sAQXtmMFHIT0nl8za{XG1?y4*?8
zPWswoCR2~0kl9Y@X2T8&^$0%N*=Y}W&qZR}M+o#dXm&Y<7p1>GOkZ8|;jPZ+_qek_
zmAuyv8VA>pxnADdV@W58%L+RG=&A2VCBA-CY$e_>x_sR-t^v~CAY$)Knin#Xg5dTL
zMmwCxr8oPE8qI?nr|}#=<}Sp=+AflT5GJpNbOdZxt#*P-6JHvgnB%w7^hyWnWd&WP
zV1t4?Q?{i7GEez5mecF|()iqr~Bu%=G^>(_U4T>
zqfv01*MUWdPJJ~^e0{nAKiBr;cbofU@em$wlU`)1iO5I53Z^vcS(Q|;LMnn#=Zhm~
zWFvxr5oogfa7lS*Gu_f6j*P_u*
z@kIr+atci6eC}cC|9E*J68hn0@+jl{26s%ZP6p4_>JW=N3wCV3s_&mvdufEQTO1pJ
z|A^Omz(^&YiYul3{kdTuHI?!VOL6|$>n!O;F!U0vQCwaBM@z$oo6um@pGb(RUBX$^
zLG)?#SpkrVVFc=Gwx1zIMlu^R5SODW-=Bu)|Jug()1gPx^UfBfbzks)+&W970AD)d
z-nBd%b6uZD>3#&YSf8$5c`3{}>*{-#OYpe+hAqvaPHcjtzI)q})GDv{8ufd;;<)y<
z{joManFn9}oX?!ruVBO2wV^p(iBAcsWkjfMeMq&v?c$+Nn1lkS8f*YTw8h9@6}sA}
zbrvHD?_kb~R@0hRhZ|A3i|cuHsROEYYLf^CE$Uq`i$a-he+`1HBGg$a2aGV^tiIOS
z*4FxPsZ(c?Z!*fZ@hkN{g`!|_@4l*WnhDEwMJA@
z0@79wKXU?~I+C7I9}DM;X(E)as6nPT5n2fh7GwrPJl>*<^Xy$Rr$`>
zdAQN%w8L#0Z@UKr&j@F(?I)Llzb)ao{>DJe;>RZ6{B~ebnySXn*DC`$wZ*8^X+Z
z-zU!{M^c{+yP4bPGzdv%>J~Ko-4rkK27XUrVs_F!xqN@LS4Tg5rutUgokhzt6QW4M
z{BA4M8|j*5;d=8UKqXp8#}2YS>WM=z7_D74BXSv&sn=R;POe4b5U03E1#+zLo#-H1
zx(x1I^|K(I=k}}5s7wP~Z=EQSBln2|W}Zs@zFn5<==+;iL9>%iKPMf8rUK=x+4F5XHSG7gk=R%+42kibnIjBx%3gZ}<3c?ON(vr#tqgRB{k7?S6vd?H(~FZ
z@Rr6uki}6T`afNO(OH`7R=B*~6+}I^4&Gn-0C1`m!hUlDe1w!=h<(Lq4I|HbA1xO@
z%~&BAjECd3D3ktR24(7e2I|>v;%an3+k(!*Rj&p8fN^nazU$~o5ct{GAwXa#s_K*H
zey<@xT%ES2t32h{J=n=TeJw9<@VGnW^lkOXm*lmqB$|-<_3Ly2!Nn8o;3f~c$a-uvo3dbE%gB}9oHEq<$a(K}g0@1h3D
zD$&Ujy(Bt`9)yU<p?iI`IJKOyd1R+&GY<2*rvWODWN1>H($!02Y
z^>ddlnL!rNZ(l@q
zy`js@PQnxO2)DiMh7Lbf%nbvHrl~SaLe%lKgTpXpWQp3le?5F5g7WRMfcD%(av*
zcc}&*FN4Nl6Db(!Ku2XIYqdFu_Yr8^5`W6KgN?_eo2}N91BJU@y8PvsY=!V%w7W=i
zF=O#GISRiw&+T_#89b+7X=0xsr`gaKv+xg=ZL#+`Xm&eujWri6h6rv2nJ@RMHH0fCC2j?J%{GkZ`Teb&
zCIkottaSXWKt)I2xk5>t0~CueAQ4PQ8(p6{?B0Ld$2@1ppj(Q;4|pfnA!;RT
zTGGC1m7DE4YZ+ShkL$Q$Rr(aOK@ILI3ur6_v>9Y8GTUOJh?bYYQvqEn6cy7f*M0Zmy7|bmTzf
z9TitqT~$qeQuDLsw5Ghe=f$R;Zch+3TKIr?)mvcKh>qYEH|A~K}UB}
z<28dMC2{{Kt!r|VENl9G`cCg{2CKNjLJ?KM-3R=)(p3zrai*V(G_4WpbSmHLB7*;G
zf@XCtJRQn>sg*VQC+0|n`7Y;wfmw1zYeXvK0zs1&Popkiorxlg>H=i!nb~nsa&*3%$<=u
z<;=v8ImbWGK)scf3c4r$a?)GRkGqdl3BFEmrpOSTi5&2~n02tvZPl_8oACsbD|DDe
zB2_xkf+>fvf27g{Jlqu*+w?fxu<8IWiIhQ#KU
z=iPg>r_;RE5v>d59QZXxD*B^yH_^oZwdoRDP2f0|2vBV)~#Qx6noYW`&FDR6?z1CkQRJk?J%IEJc#tcBPG%pQA$qc`+A)SV>}w{vc*XmE=fi#}
zlw&3{MJ1Lm!!Y6%+dz@t?>YB=GTB&SYMjyu+}%`p0UqAV!&2b+e6rVaOyJ#`<1Pup
z=yAS#BG5~XvgHX_ZB)0g+GDe>3H{S6wi@?1+BN8KkBgQHc{YB9+3h|9Inwk5l2+!{
z{728diXi;v^`Fa2>Em?eFMt2;`qnPK^5*0w%GwDX>u!VD=VqSE)wFTBkuYWKtIe|7OtZAwAM%Y6F+An{mL5A>M$X~
z4M1$vB*@x*Vq~L-5C7)3N#Dn(GsVjO@wXpq;8<|X&(SXwWasw5j^d>cfF;caln+)PCu@k8dE5@_)2O0nTtRynry<%xkY&0D_D}$9~!Kk0uwxETM4>nGR|)
z22a(avT_T^O>fUt8hwe0xI380HqE;wJ6&QjTcU{32$7x}6#_v|dIZ-qHFhUeVlC-D
z_@E4gCFe_lQ7#D%$4<>c%R;=0*`+YWRc`pDD#5r>@>!ZZc_OG_oj*i$|H8tc{L{vZ
z#8Bnm#bGdq&!M3Ov$>M3Em3aak^Q+?5`ME^zpjduKyZpufvQA6J59scG-t#d&-)pbcA~QKE38%sD
z@&3&tk*!EG@y_zWfE_#@=30X-nBGc|q{gk8Az
zj*`RrpyRSnH1;t$=N`<9zz?b%Q2%hkvVdG}Q)5op4T=h~3dNYR>m}G6vKCbamWIL`}(vRh(UK`ToX;PvS)6~pyMPf7*1!!1R_H00yxvd2<;-;Qs
zYMEUli6j`p9EtlxCm=vC;l~uP7BI9{WU4fzf8?G2XJt=N%6)#qL*O>pa{Mp*JO9yi
zOFbUb)Ro0H=T7q_iR<8$(Tt`1i@nOTBYf_@s6+_&DK2^pNl;+H%&l?~27@`aBS=z0
zMHRFReZ^C1D7ER%h9CK~n5hoQ&O*_PK*E+k+nE=`xvE7y=BYbD7P?W;NQepr0S`fT
zKpH-VDURkbZU1pkn4HPuL)T+_wxzkt?kBnchF#hfS?bN#UnVZ<)4PWCn8e11ZjS=`
z=bH0=9z1(sMMtjox9!c9_#WzK;Y6B0vy<9LF7_UaB!_xms&o*RQ6vDdrU|C}v^VeO
zw$uIMrldwRWs3q*<95addOknHxLo0-AiFeG$|IeB`)8@?%dMmwncEcDOM15H1
zgNiSM8izQWpMls>&s%6z7(wFSwrxI`kZF68eY*6`(li`-<~k+?nAi;g!(Z)2TRtW7
zaT@YitO&Eoa?E4(Ya0Z_R`8WIN{q0okczN3{PO=Qb_*vSeu)4X(>59piSe=EnVv4d
zqf|+^k%3k%QF$t!-5U}+pVaqhJYCC}t2GVDwU{n3Jdd52tamVy5j-}MOlvQBs&*;#
z*)T*U8d5YdR$43^P<935Xx;$9E;bM!9z5gZzTgz`HJzvBQ;7L)h@x~n{#j(X1(WJd
zj8BW0L5?yD1mtn)zm5oWHkM#*r+7%sL$C(q7H0nS6aJFL#d#rIZXIa!h>36eWuu`q
zmAN>HmJe9dhlM4C6Q%*
zmiyEc7Xg07Ij?PHBIUK6lybxL2{Rn2m4GFPTb!2ljz;;#Q=~*f(V7wG6yrQC&p9ms
zh)D&&0T2Ks6dwN*C&o;ic5a6dQ-gE{2IM2T_
z$x{1uII+i*+}C!2{yzf}oh)AvM@0w?g+XS;r+GA2FUcQq0qAoJ>8r9qD8T(dq@>g{
zT2WAxOU{2Hh`8^-1Q%jf9J!Hw-26FdI*)u4Yto}VilGX3Czlt07T-L$@>YIO7`vd@
zkjtrEmC<0x%bkoCWe72A?{M4JG|sqy6Qy9Y&?HeqLE^
zd6itEO0I=7d|J}yiQ;KmoR3?LR0r(!iU3#JCq2_t`0
z3D$|2RY}qiY{sD6G59a4l&NM3BZ%e+VGQ@;mG5e!Ry+MKWKhb(2ZH3?CcEO{|6EnKk|jIC{9
z#p;z$$}@vxs+L9yWi%KG8^sDx>KdiUR)GS&y}w^cLQjUSR*=Yk$#!nx7K?l
zUgFO)G=K9Lve<>e{oa`6m33ch6lRt@tqQA|&HFtC)b$be=FCU*A;$^9S!iaz)aTQ(
zb<@}A1UAW@FUh_?d|h)3_RHnZJ1Q<0Dt7!|J&s8-_peM@dKDHc2Ar}w%Qi$^Ii96t
z2g#IX230}O6yV!%>y$Z$J$w~YGu%%?h-9f;3CsvnC3Q09BLJHBvC<`O
zt>_-9yR$Kc4X~%M&}STv3c_@}y?kOKVhJy)O)swam3*YD{Y`0Y9!^Besj+
z)fG{X0;|xol0LZP)VAZ)I&0)C8u)5ZqYsK<_?_CeJ~0qh
zd0h=EKu*;gW;^pYDq)McrycDU+6qNo9{oDTciT317av`X1pQleT4PXBu>R3{ha!nO
z4;+j_xht*tR!jSjMs)rhd!Jw9F@A$IE!?o7xAy?&tA`VJOgU-cnvJXy@@Dm)!_;4@j01}%@VIjJm1^~
zQsh4CyIf9xe4SK#=~{f|WDwxFE)leFpLy5i14>Wm`ya4r+>5W*b$RlVCPG!P}gcOB!4Vst8hSL01{P`x);63
z{<4qs2VbWz$?J$Ek4?hTZ-WC*w+60blLSVyxEQMBs7oso8o=Gz*(450Y8j!vt%T9o
zsuSyXUBlklt?%{Rnu5{Ix>PEuZQUH{VvB)Ii@=7Br2C^~z`W3W*sul9@SI#flijd>
zzme>9mq#pJEGhHdnfe9{{MvAGJMmt+wl7zp{tsPuIXLL$mG{n)fiC|?8=le9TetWJ
zT8#RxewTEu)qmWJA6uVGmABS5TZ!3nn%fSh_xjfI)ttDn#B@>PDx3VPvoxU&^F
zz>62Z!%
zVnj4Lv%Qmq&GYna76JnnSQw|96X&Fflpu=2J@A
zv4iC?_Lv2Cg^+AjevTl>?Rw;lOW^AA^%V1C?saG^GquMZTQ_;>@ivf)(mUhhx80BX
z?i=!P8v!v+wn5me#n7+$pyU*gtS*iIkAA^BaxQ!(`DAtHz%x#eSO^7{6O7nn1m)1I
z2E=cf?T!XjN384278Y#HvfwOhztz=crzf5asp;8fk(Ri;3WPkJaeVera
zd98O0>k-!L?LQO4DTqe0pL
z_&cDP=GK;^Wj7Q=vlwEK@TrWcmFQ;nr=g`iBmDVYmT_^NDF&2k1fnwo38v^d^RS$O
z@7Pulp_3=7VS^ps+XJ`6c2+~4xutYcXWmIJ!W2nhnjN~sZEiUdUW0il1*OGhC$d>5
z>S5sKI}JvJp^~mOkNjaWuOZ8Jl<&=t58k|XS0KeNATdv{=p6#Xq=*j%Rx*UBVZlPU
zXObujl}7LZlg!aqXtE(#lgwbo@OY#m>=*;&PXUWI0?R%CrBM*Rl#?_9imw^~enW^X
z7Eu1-TV>a$^h}2+Iv*3JK-w3=uc-JKaG={yQy}_NkQ)9D%TM)R#vuzHtc?Nx+dcDs
zwtpU>@L}TVJ;$BbMA<}8?Tl=f;lDp*UThP|EJy5j$!whwRa;cwXG+kq0+^ix$`lx;
z3|T)}UG>-RJH7gk*Wt@<@$A>K{2)H*H#<~6m3Z!|UIvi68k-6R?DFv$?;4fz1^D1I
zNCFAbMnh1BU`Y?VI1jtmp5_>U=^bR&*P#X6+}IJjb_IQ)E!=1qv4;R)JLBM`_gEW=
z;VC?H@Der?bZk=MU|WI_Tz=ZUy2&@Q%&
zBp5Z=$_7e|!B6Iei|OJeAHM~-uxk-8NvPvzs7m7&h*=>P8LUv003cH{zsyl=YdK?Lcb^k!AnJvwL6!MF+G3Y57(i3pU*Z$Oasxx}87lavzzdsQVqX!Yr
zi+f5ljng+5k5R*Jm39OdLF9sct$UdD2q;`+m23I!?4i$0@03w2fyAiGm*W9|3IrG$F
zR1u0DjUZCN@jG#-TsK|?Cf41!U}xpgSq4+0JQ
zD2fxRVp+SBdAX@*6G34ZjBvU$W?F(7iv~gI`Gv>tuqmG5q+A8;Do{pYfJzBtBvu7V
ze~ZKep={U`6=)z~OA%2)vtb|6q1##*l(RrQoP-AhpCIC_#e`RZSo%>!vxwe4VV3iF
z3PWT;qe@j%$;szCK&ohLU+@Dq|329PsYP
z5++8VU08a_f#SlsuV0Sf6Eq$qPP38IB9NHf69-K9#qW?a4|^x@)8nyVC@8=aOlA%i#u14xU}K4I1_T|8
zL`TR--k>1xoKm!^wCWlLL^Ozehm%sH>g@y3x2*Nc^kd)=6b+lW&lEh)Ct>6|GxcDE
z>Ol&qR-Cq2jYX9q8F=)5*$+%Ib#+PFLkDPOFapfw*C(#M5dW#M9~Bvz^n~ChQwL3U
zV|<4h2~qS%xDR{wlOMl$@Q`kDCdI#XpKb*lFE)cCV
zA&3D%SN%Yl$eayhLIMD>a2FFmuW;E<8!-SkB%vli1uA|5;(!4m5O^<~nhXUS1YrGv6@(E8|G!n>DCT9S=c8LEN|x3=)CqP#*9
zYv4EGdr(Ll?PsVqI{yWRMUJ{V`Hnq>B1>BXBQQFIs?y=7v@wxv9cb{Tm+dLG9
zoHfsRn9?u1NY;}zex0jc=+Z^~KR5(QcpaCR95}wW;L3ghkGr{!qKN2x@k%1kFmf;Z
zL-GyRe|np5q^4R*w778y*@I#s_|v3YfA`Neo69sKtW?x+ESg9Q7d9r!T|18I7-h%sx7@{GU-%yoZ?iAT>^T4B19bE(LaO5#p(dJ`xfaW>
z=*$kYz=hKcV+G`KX-}#Cp#_Hez5|keUfR`acNtii><1PS1|f_w
zVIVgoL0Px!Nd~?(FcMQFb%g<@RZg!Cm=jCj(+O1?!x6%BEMR3VQG50e;izA&;<6)-
z0_Wqr6}OQpMNv<5sJF(Suc_M8+tWV(oVZig5-VAI-wFJ{LBH|Jl%G2`jm#}ySr<@D
zz@pV_8Gs9?YQz!IPbl+9CpU2@|X^(7~&4GO9VKV27!{DNOSLgB_F&IY>BX9cla8mD#K%=EM{K
zalCW=WLM+qSt5d1kLepd0W+q;_ExTANqy2fY9o_ItXVV-=eVrg$
zxCR&JO+yw=-cqXrQppWdp)8(H-