From 9b3e54e9f80885e180980864e9cc7490fa07798e Mon Sep 17 00:00:00 2001 From: pereiraru Date: Wed, 8 Nov 2017 14:38:12 +0000 Subject: [PATCH 01/24] update main page (#3930) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit i´ve tested the configuration with the new vodafone router and confirmed working. --- source/_components/device_tracker.huawei_router.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/device_tracker.huawei_router.markdown b/source/_components/device_tracker.huawei_router.markdown index 42c7b22a4e4..6fb470ea4fb 100644 --- a/source/_components/device_tracker.huawei_router.markdown +++ b/source/_components/device_tracker.huawei_router.markdown @@ -13,7 +13,7 @@ ha_release: 0.51 --- This component offers presence detection by looking at connected devices to a [Huawei router](http://m.huawei.com/enmobile/enterprise/products/network/access/pon-one/hw-371813.htm). -Currently, this was only tested with the Huawei HG8247H (used by Vodafone Portugal). +Currently, this was only tested with the Huawei HG8247H and HG8247Q Smart Router (used by Vodafone Portugal). To use a Huawei router in your installation, add the following to your `configuration.yaml` file: From 3686974b7d1018045bb2ca36ea6f7af9a6590c04 Mon Sep 17 00:00:00 2001 From: DubhAd Date: Wed, 8 Nov 2017 19:26:47 +0000 Subject: [PATCH 02/24] Tweaks for readability --- source/_docs/z-wave/adding.markdown | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/source/_docs/z-wave/adding.markdown b/source/_docs/z-wave/adding.markdown index 8c2e52017be..45cb73278a2 100644 --- a/source/_docs/z-wave/adding.markdown +++ b/source/_docs/z-wave/adding.markdown @@ -2,7 +2,7 @@ layout: page title: "Z-Wave Devices - Adding and Removing" description: "How to add and remove Z-Wave devices." -date: 2016-02-27 19:59 +date: 2017-11-08 19:06 sidebar: true comments: false sharing: true @@ -11,17 +11,29 @@ footer: true ## {% linkable_title Adding Non-Secure Devices %} -To add (include) a non-secure Z-Wave [device](/docs/z-wave/devices/) to your system, go to the [Z-Wave control panel](/docs/z-wave/control-panel/) in the Home Assistant frontend and click the **Add Node** button in the *Z-Wave Network Management* card. This will place the controller in inclusion mode, after which you should activate your device to be included by following the instructions provided with the device. Don't use this for secure devices, since this is likely to limit the features the device supports. +To add (include) a non-secure Z-Wave [device](/docs/z-wave/devices/) to your system: + +1. Go to the [Z-Wave control panel](/docs/z-wave/control-panel/) in the Home Assistant frontend +2. Click the **Add Node** button in the *Z-Wave Network Management* card - this will place the controller in inclusion mode +3. Activate your device to be included by following the instructions provided with the device + +Don't use this for [secure devices](https://home-assistant.io/docs/z-wave/adding/#adding-secure-devices), since this is likely to limit the features the device supports.

-Don't use the OpenZWave control panel (OZWCP), or the physical button on a controller, to add or remove devices. Many devices will only send the information about their capabilities at the time you include them. If you use the OpenZWave control panel, or the button on a device, then Home Assistant won't have that information. Using the physical button on a controller will also result in a non-security inclusion being performed, which may limit the features the device supports. +Don't use the OpenZWave control panel (OZWCP), **or the physical button on a controller**, to add or remove devices. Many devices will only send the information about their capabilities at the time you include them. If you use the OpenZWave control panel, or the button on a device, then Home Assistant won't have that information. Using the physical button on a controller will also result in a non-security inclusion being performed, which may limit the features the device supports.

When you add a device, it may initially appear without a specific entity ID (eg `zwave.__`) and without other identifying information. Running a *Heal* should help speed this process up, and you'll need to run a *Heal* anyway so that all the devices in your Z-Wave network learn about the new device. You *might* need to restart Home Assistant (not reboot the system) to have the entity ID fully visible. ## {% linkable_title Adding Secure Devices %} -Security Z-Wave devices require a network key before being added to the network using the **Add Secure Node** button in the Z-Wave Network Management card. You must set the *network_key* configuration variable to use a network key before adding these devices. Some devices only expose their full capabilities when included this way, you should always read the manual for your device to find out the recommended inclusion method. +Security Z-Wave devices require a network key - you must set the *network_key* configuration variable to use a network key before adding these devices. Some devices only expose their full capabilities when included this way, you should always read the manual for your device to find out the recommended inclusion method. To add (include) a secure Z-Wave device: + +1. Go to the [Z-Wave control panel](/docs/z-wave/control-panel/) in the Home Assistant frontend +2. Click the **Add Node Secure** button in the *Z-Wave Network Management* card - this will place the controller in inclusion mode +3. Activate your device to be included by following the instructions provided with the device + +### {% linkable_title Network Key %} An easy script to generate a random key: ```bash @@ -39,5 +51,8 @@ Ensure you keep a backup of this key. If you have to rebuild your system and don ## {% linkable_title Removing Devices %} -To remove (exclude) a Z-Wave device from your system, go to the Z-Wave control panel in the Home Assistant frontend and click the **Remove Node** button in the *Z-Wave Network Management* card. This will place the controller in exclusion mode, after which you should activate your device to be excluded by following the instructions provided with the device. +To remove (exclude) a Z-Wave device from your system: +1. Go to the Z-Wave control panel in the Home Assistant frontend +2. Click the **Remove Node** button in the *Z-Wave Network Management* card - this will place the controller in exclusion mode +3. Activate your device to be excluded by following the instructions provided with the device From 6e73eb86a95581922bdae2d55f0cd1fe2a27759b Mon Sep 17 00:00:00 2001 From: Delio Castillo Date: Wed, 8 Nov 2017 14:43:05 -0700 Subject: [PATCH 03/24] Update git_pull.markdown (#3925) * Update git_pull.markdown Some people are trying to use this add-on without having a previous git repo cloned. This is causing them to lose whatever they had on their config. It is important that they know this info. Please refer to this discussion. https://community.home-assistant.io/t/git-pull-addon/23435/17 * Make warning --- source/_addons/git_pull.markdown | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/_addons/git_pull.markdown b/source/_addons/git_pull.markdown index 579ca5ad092..126fab9c1a5 100644 --- a/source/_addons/git_pull.markdown +++ b/source/_addons/git_pull.markdown @@ -44,4 +44,8 @@ Load and update configuration files for Home Assistant from a GIT repository. * **ed25519** * **rsa** - The protocol is typically known by the suffix of the private key --e.g., a key file named `id_rsa` will be a private key using "rsa" protocol. +The protocol is typically known by the suffix of the private key --e.g., a key file named `id_rsa` will be a private key using "rsa" protocol. + +

+You should only use this add-on if you do not have an existing configuration or if your existing configuration is already in a git repository. If the script does not find the necessary git files in your configuration folder, it will delete anything that might be there. Please ensure that there is a `.git` folder before using this. You can verify this by listing the items in the configuration folder including hidden files. The command is `ls -a /config`. +

From 264ea2982b736ec2bc8b6feeb2e84cceaeb2f736 Mon Sep 17 00:00:00 2001 From: travislreno Date: Thu, 9 Nov 2017 00:40:38 -0600 Subject: [PATCH 04/24] Update sensor.serial.markdown (#3937) --- source/_components/sensor.serial.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_components/sensor.serial.markdown b/source/_components/sensor.serial.markdown index d03daed3906..b56969bacad 100644 --- a/source/_components/sensor.serial.markdown +++ b/source/_components/sensor.serial.markdown @@ -27,11 +27,11 @@ To setup a serial sensor to your installation, add the following to your `config # Example configuration.yaml entry sensor: - platform: serial - port: /dev/ttyACM0 + serial_port: /dev/ttyACM0 ``` {% configuration %} - port: + serial_port: description: Local serial port where the sensor is connected and access is granted. required: true type: string From 932c5b329cbd2644d6ea15e9d96dc0a6f173fef0 Mon Sep 17 00:00:00 2001 From: Adam Mills Date: Thu, 9 Nov 2017 01:44:01 -0500 Subject: [PATCH 05/24] Specify how to handle region key inheritance (#3939) --- source/developers/frontend_translation.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/developers/frontend_translation.markdown b/source/developers/frontend_translation.markdown index 8f0090be5ef..e5b12de85f7 100644 --- a/source/developers/frontend_translation.markdown +++ b/source/developers/frontend_translation.markdown @@ -23,6 +23,7 @@ The translation of the Home Assistant frontend is still a work in progress. More 1. Only native speakers should submit translations. 2. Stick to [Material Design guidelines](https://material.io/guidelines/style/writing.html). 3. Don't translate or change proper nouns like `Home Assistant`, `Hass.io` or `Hue`. +4. For a region specific translation, keys that will be the same as the base translation should be filled with `[VOID]`. These will be replaced during our translation build process. ## {% linkable_title Adding a new language %} If your language is not listed you can request it at [GitHub](https://github.com/home-assistant/home-assistant-polymer/issues/new). Please provide both the English name and the native name for your language. For example: From 29220c2e19f87deeaca1ced48bd0602c612c3a12 Mon Sep 17 00:00:00 2001 From: jimbob1001 Date: Thu, 9 Nov 2017 07:09:58 +0000 Subject: [PATCH 06/24] Update docker.markdown (#3935) * Update docker.markdown Added info to add timezone variable to docker using synology gui * Fix name --- source/_docs/installation/docker.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown index 4b3d8de4633..b4cbcad9037 100644 --- a/source/_docs/installation/docker.markdown +++ b/source/_docs/installation/docker.markdown @@ -54,6 +54,7 @@ The steps would be: * Set "Enable auto-restart" if you like * Within "Volume" click on "Add Folder" and choose either an existing folder or add a new folder. The "mount point" has to be "/config", so that Home Assistant will use it for the configs and logs. * Within "Network" select "Use same network as Docker Host" +* To ensure that Home Assistant displays the correct timezone go to the "Environment" tab and click the plus sign then add `variable` = `TZ` & `value` = `Europe/London` choosing [your correct timezone](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones) * Confirm the "Advanced Settings" * Click on "Next" and then "Apply" * Your Home Assistant within Docker should now run From d1b38d4098e62d5a35924280c56322f934561943 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Thu, 9 Nov 2017 12:08:48 +0100 Subject: [PATCH 07/24] Add screenshots --- source/_components/frontend.markdown | 17 +++++++++++++++-- source/images/frontend/choose-language.png | Bin 0 -> 18509 bytes source/images/frontend/choose-theme.png | Bin 0 -> 17681 bytes 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 source/images/frontend/choose-language.png create mode 100644 source/images/frontend/choose-theme.png diff --git a/source/_components/frontend.markdown b/source/_components/frontend.markdown index dc48dd837fb..ee89044b2ed 100644 --- a/source/_components/frontend.markdown +++ b/source/_components/frontend.markdown @@ -101,8 +101,12 @@ automation: ### {% linkable_title Manual Theme Selection %} -When themes are enabled in the `configuration.yaml` file, a new option will show up in the Configuration panel under `configuration.yaml` called "Set a theme." You can then choose any installed theme from the dropdown list and it will be applied immediately. +When themes are enabled in the `configuration.yaml` file, a new option will show up in the Configuration panel under **General** called "Set a theme." You can then choose any installed theme from the dropdown list and it will be applied immediately. +

+ + Set a theme +

## {% linkable_title Loading extra HTML %} @@ -118,4 +122,13 @@ frontend: - /file2.html ``` -Those will be loaded via `` on any page (states and panels) +Those will be loaded via `` on any page (states and panels). + +### {% linkable_title Manual Language Selection %} + +The browser language is automatically detected. To use a different language, go to **General** in the Configuration panel and select a one from "Choose a Language". It will be applied immediately. + +

+ + Choose a Language +

diff --git a/source/images/frontend/choose-language.png b/source/images/frontend/choose-language.png new file mode 100644 index 0000000000000000000000000000000000000000..38599f7fe44629230269354f3abca39bc1624741 GIT binary patch literal 18509 zcmeIac{rA9`!9YQB0~`=l_8OkOhuC+B9aOvB$+Z+WXwF2AsP%JQlg?rN+B~L3T4O? zGE_2#ijt}Qxvcdb-|zlo@8dV@KlgL2clB0}=eh6eKCkoqOxFt4KBT^kc`Y+VQOovg zsOnM_y)gd&`=t!{w{amyFn*zTR@r}aDPG=7PhG#6;!%17OAjehhvaq!Py#tHq|^dQxms8zCRu^EERdMJ@7?ikLo|K`&2rWlyU$5pd0&&#aE-BR)8w4rP}rjm;QMz z6mrL{-|){X$jtOVf4nj{fa%{q)#YXo{`buqX8-NYI*&(#v$C>UJ}m$DjWet5njh+< zjl_^Eh>nR?)OG&%=PogGX$bMuDF1s^VHIWc|6I-rQC2$6|6HpStJc3)8CfnR^`AF0 z|KB(NpID76>37#@M+xi=UN0-lMfDC0gfJ{yE0U-7@8Tc*XeT7~eYj=wiM(?(eSLkG zE??feZy&?9ZQD$3Y?iKDx6Wm>eZ`?ehqQHd(?dVLS88ucIp8=y<4To1HLH-as^fko z_wTc|JDS5F{OtMjtkZ20w-kNW{`vDqX5`0@9})5Kp?P^b$md^OD_h=`?`&pisdxL} zzr}agFT##R>yqjQcTdkxL+>Ay%NQFQw}1GM?DnnW_1m{SS+gm>}aqH$C;O|9V_3g&dw`V ztzuZc`iAa{e3v1P3l}f0;N`tKIq5PuI9OIw!>r)-EAaVq=low@BduHL85uu+|6HxH ze}BNun``abGM6zjGP;bkE^~8p>ra2MYs7PULSSL~Guzx$n~D4EuPr}*{xmZ+r8aNg z>@w7}3|kG%l1I9Ubi*9zJfq{@b6Q1997IIjAJH%c~5EJ!Mfbj>FBOCkow`egFRb z^}Bb$$;kpYw>w-5pkpj=YI;^Dr{M8}e$(N^%8QI_6JsBD+nhdKQCG+M?%lh=kA>SS z&815gW=>Q7#l;G(nZ}!+7bhenM4XUYzn+?znb|n@XfV65(CyoW_;|z6>a{#PSG<0Y z3GCdt#?a8Pp|MfUO&GsyT+#w*7?FgP*jwurl#hh(F+M4 zUS8>Qy?dI|jxb)|ba8K#KqK*3x z9}Wo#VdPWv7I}U`h@Vl&Z5;kWK;AT*a{0qNJ|0)~iJMmgxvEUX;0 zCVjSJ8+A^q+)1z8oH|?(HrA?)L5wMV}edj%?eMLnaB=uU{M- zv=KMTWep7tl^KbOiekt5*WQq{Xw5Jj>@M~SotpmhM*vT1$&w}I&zhT$-cL>a)Ob&Q zhvO&uRIPa3(0h-0vJ9@A?ab{9S6Ya$<FU)O!^Ehl3(?Ul1A~J4 zCi*H2o}FS67Z(>hSGo9vCezZKOz#eg^W^5{a&@>>U0KsFHh@;}<;$suj~?B#tc@kL zfc5-7*eKX1Fo;DvckWz7=ZFd()$Dkwx{3-dwddf$Wsi^NT*%MgiQYHyyT|V{?kGY- zi0lizo_bE%+1S~&+8A%v&s4Rs5%DkIa}c}8%-(+a#*G^*D=XJyWhwSGYeMs#2h2xW zA3OCNe_~v?YT(^%I_hD1dU<2ximzY4zOJvY{#+gYeWGu#h7bpjk}nTODE*NKhqknN zNZR$3_)Pr%y}HE6$mpKO&#w(_ZR)55`>wnI+{>j`<{2iXe8IuNHf@>4LBEd}mzS46 zwQ1b&dKWX4QWRFW4C1Q-n~U0 zKN&D*+^2@Qii(RL{Wd+4T6GMXFKKUZpuEY8b&uxW{+-YXebNg+8nk_)O~VrMeG(MhDeP- zjDgP$$$QV8KYv5id11~&K*Y@4oEEcc+nILl)H-zPr>EX<;PHH_4CNfe0FL+A6XyBn z$HrgdJ#0x*6Vm6$PN1c$rPc*9arTakTyAL4Mp0mMiHb`_CL~;5woY!Ta;Wk}1~W{* zS5aAf^6u<~=f@c+o}EtgCO%VKtjm`5w~BIvQdE!k&t<`E{1RIO*YDc3mSwdBmgxdo zO4^YJVM}%r&kv%d{q*xzQ4mfF6(`mWk#Q!H5Y8&q|c zMfFoai1?EV{2Z5GO-xO3UEmPhcctugq@bnepHr5WX8koWc^*H7Wwvh3a{Rn6<3#>5 zyG{Rqft9J6ZzNfmnIo=W7xZpxZOwGL_{Fv*ovWy*D6BY5cH6efY}@yNmN*jBCsZEy?O#~v zl~u$L8ym|lcP4IPzCu8qIycxL(8nWpx|J2p?gkS+ysa7gO7ZxffsUNh%jz)wFV`kcv|9Gf(rCZwrA2H+sLTufO5JA~AmOZ%CN1 zM6~eNjIjdhbzQsTP}9Z}CEkYiyg(t`JI<|VSk7ZGnmji4v9Np~_iSfu$11?wzAbLp zKA%2+u02y49UHr9a%w91$rH)#`ulX$+WfflW(=B}n*)Ev%3fD({G}P<`}$sH=E>nY zksP}g4#m~Q3<2e9B=0MDY?GC3Og)&O+c}v9_`y7||718v+Ov0!J$`=yHrlf+QaXQ* ze%LDTv^`0gZktU*Qu7ZvIl1xypi0g08;e+WeV3C4FOS6x;d>&D74Ms=g+rh8W#qmUNa1`XnlQsZF))+ z0N*5pV#VL0I)my&?no0gWg@er?JtKwc2m5J%^7L~7F2?z@Awc1ht;Ooc2 z^JGF|6cL<{PJYVTTK{3ShMJGT`9?$KwX$|cGt*3za#4_h!ND73WHcj-(S8bCyUF`n$C^3ON)q# zzAP`N#U-l)HTN@!rvH$Ny?xs_`3F#?ih0#d?}twgF)rsR8!!EPQhfY%^|5S5wZ=Pt zAFP*(t3k{Oqy9>=a>AG6Rfd3>(tN*hcV z3M)#H*mc@}QlMzpNR+Og-YYaiY11<5M84A!jIzp#5Vpwpc&1R*3qV||>gpDM7v|&S zJ)YGyuqR3VdDxt!e6fZnSNo`%=K+jNvzHf^lvg}TOyny#KQ5tlIV~k+;}LVTJB7TT?Di|Fa{W;Ttc6H8i* z+d^DiUHiU%W!S!bJEk3wQ!ilc4m56TsK~^`YkH54DXXce3HRN}%*E!4bxnI}d z_Muxl1n4)4Z`qP%{wja%2tG3~FnGOXwy%y`HrYne0N7FoRN*M_vJ;#SE;5M%h7JiFCMY7N|g#aWeb)YSU)w= z_9U`EQ;@g(``hh3y#sgr_J#8)1iE_t8jTb+n%v@OS@`KjH86Zoy+!r4En9yF-8Ig4 zQX9P8^unQs<01$Dfktm3{zL1G)~I=j9{u9GS#0-iqqvzPplc|)%%fv07#zxa8 zW4dM3tbdB!)V{vh0Tw={^TZ8yfk6h?=F{zkp(E=ESDi&apQuOii(OUxqe-Fj^)4gpPYPCFHMuTs@Y`nVyzkK<^QH$TLTrGKWWyyJV;H6Ua*Me3^M=^Wu|oB5zVhF%Uu)dLj;i#e)?+FGyo<}-wloa;WhMIU zpqqxqrMmi)I{RfV=f22xUblL62oQny72!9mFTel(EjiUizhp_was5WyZTyPf2Il$r z@#r0+8W;i7;vAux-)JVy4&P?uQpg3Q7u>iprSjRPL$^d6Zv&)j858i~I(Wd>SMgZp ziBO{#_Awob|8$CMy#vA}W);CNo0>TG^sVayWB7!|;Z$2yU2XCG)2mBYuFz|@b9v8A ze{X4I&F^^OAURnDjueQwhD~xg=JJ&*mB3zsFDi( zPKvLxnEmywd~Zfhjx5GZ(3G&S@HuB^&Ju^t+{cw69lgD#;)c)Y1q1{PvTY)}WHx5K zc(Gb>yd&qp^oRYHR#xUHAF%wKx*uT-d(sd5{Q5Si{^iS;ucC~;0xn>grx#|&EjtXZ z|KTs08Qz?{9Remj=;4vkxl^Z3l~q?Wq7iJ)$-G;98RP#{>IZseIu$&$N>E(QjEeSl z11tAPjLhy5pUp>vrKMMNcXz+?RQ8E;z6&x`el7<6T>NJOzm{Wy>$weD}!#sj@W zL!tOmB3F5N-8)(AIX(KkKIy@OkcU3-i@CwU467thp0GMUn|^cmc?q=0 zAZ!K!Ik{DTXM6rOq#j&H^dtym;MFPy25}J&o65`YR+{d2ZIN~Qq5*m;fJx!#=oq)d zaRb=&#eG-TDjONC+rNK*p6kdeNJakTrd1g1ms_?veo`f^4}&vg@Qa*m|W5 z6bQ%NyjlM7BQI)}o+6STrjshRS2C6e+%qsFPI~&EV;JFPqvV@u*c~aUtHYU;a1X9z!qeoXVGcyN@I;5cW zSX%k(963?}svQopE3ke0YA6=mO1?!6sd)PG-qY+3P+gpF8gp`T0@a$n3gdcRTU!Bi zbk*^5RWcMko2L6rVC(GIw-A0Kyja%=%6Hx1Dt=#C!-L~mc8PVzkZZ?>)nGhp1Q;AcX@!kMv$s}roX-DIh9%^ zUQ<~~U+g)>5xna|XQ#!tj+|FD#-+ZzX!hk5`SN(8)%af!9~YE1F}Z`Im~UCu^@$vv z7N(~DK`g7w+uHP(x?$~K3t7fs=dMB{Gc>Q~Jb3V+*6m$-U)>LZGHf5RGBDsKd*90c z71UeKO^3v%d^awR(!=@zs=5ja!uNrYiTVKEvJ^ch&+o4y=EcP;S6FRqZC?U;K)N~S zd0xh&pgB&|9`;P@d5fSY2zH{6VGOxb>V|VI`IC}e?#VdjIYMty>!p5>#Oule1h=nC)}-u zrY3+WQ7#D(N;$CFd*RPOittYHtM~2+x{Y;(qOX4j*LFEXFE)L%K}Kf zLsk{NepE+?us~c+FJ^C^=ad-8HUoAe9UUE1Wuj+qIi9@-hzsm}{h1qyi4t4STDqc* z(WB*ukS|!6pJfkKg~YH2N<{DI=oQE>EYB?|k*pBq2ZwG?yg#fYASK04)ECH{M~@!W zesG8vQu|AMHWn^!r?XYsw>7(5L`cgaABa11|2@Wwf&x2d20fho*13Auu3dvYrKJ%j z_ie^Q?~?Dn-a1S3KE2k#$j{qaz(qVDoQu-Lw1cOpv1^;p?@WzcB7mSYj zKte+sSe_(RS{Es(zOrj^i*C@pPaAsQGs=WRXG(O}bq(9SaSNeg?}p9o?9$6(7rmv% z2NwdE?uLJv`}5Q3r`pOX2ug&XO)q4H$m_L|%>anS;T%EjQC1GnVhi=F$y&S=oww$u z7X}3}Nh_nKE6w#p`ynY zHI72J$5JgBm+@eA@Y}a-hcpTdd8^FF=6@kNG5+lQ9hTljYE( zNYB6!yW=#YHg{#5v;_ln)tMDWP`mKDlTI5NNLFwQs28^0QZ_bqsAo=2PDxLmu(7bP z?AW<88CUx%wPo%Bwu1^J@qg_C4Dvnd>WmP{Kqdmw^s$M#K5G5bTvh+O;WwnRC^KBT zq>=pJ{Ko%R=H&l<^Z#Vk>bcMX-79iI9OejBojx(?K$cyM9~jfz?|@S6KOQSH9Xlj= zm2)aHw+R;zI|LrPR0A}Zsi%K&K^K1BSH3hi=Pj~%GbCI(m^xwht4L`n9S1Ch2LotD zlT_JD?@XLr8W9nZJtt4{!Q)sHjSaCOodG|gt*@^R9X?G#XAO+!yMN`uR`HRbPckCJ z^F4YM9Vr58CE5gs^Lc40W#*TTovJCH6@EDG4{-u-6)g}YrTBMO6CWq5R>LMJ)Mh}r z#JK>(N*Vmh?&BnJvgpzZ!F@^R$Gh{K2d>>s_<3i;H|a%Bx#d8I#a$styHLPKKNhYA zfl|Ap=pzNhb*86;mvHxZfX0_CEqYcTO5@SbL3+U!lLu41o!rK|ucAen{Tlr+-Sc-r z|MTplw9^i+BLv!W&n9%a9=IX#Dq8eNx~re8WnG+foZQ*tSDSfPtO)3<2oaQ%%iTBp z#9rG!QRF{afDa!&aLd}QlsJ)>^i&Qq%UWQhi?FbK;WZi<8j5CY`75ht{fR8z-C@1f zzd7kE;|RXHu!M!+JD4!#@85I!%uK!n=6`zT!?X0G2mk7_@yYLbVgIoq=d?bUxc=#n z5M9r?y1oLde3aAe_vq54rA3}o%z#I-9P&~!GAj61okzzWJ2`wF88Na@zKxYL1>WD7 z*@htkZQIn`T=((Ru}XAj@?=Dhq$atJw8Bq#66=}f&Hc~A-I+3P@<{W25W|us#4sRt za{D$fm4vk3_A-1a0KKH+P6qAE-PFKz(fhV)&D2V?5sAej*k7Ykz5#FsamHa0d%&I9itxrbc4 zb||Q(tHfvB!omVfqM(uz7`cPw!Lh`*LQ8(?_t*Evy+af+>+XibrBTJ<->%s1F;nJ?Hf5v7S=4P*vK~r%!9$+{OgUhGGukIrFiA3pfMN zoe}b~z;B+Qz`(Me9{x9P-T;hO5rqK{tD?T14en|g_)%nRY;ex$Hs(&A9p|Xh`Csb} zCCW2V5WdO*53sIbkjmoX-N0jk)P z<|vBbx`|GQ(wDWhEbvoQu!-R%gkwbnU~%ADNpWJdGg8Dq&vX1NEB|DDd9#`4xXo@!Pj=7{g}>WXCjC*3@K%Jtqaz5p*eA^KAXw zx33^$6X6TRvO!3Qer#+^#+ljL%BmbImYkgY`pugFFjY+IO;m%H)VAMayf*6H zZZg1iJoJWgegdPI+1iSp|M;YIAq>Rjjd*8~$5!GEW697(%d4x^U;8h7dc{(gsIZPA zfB|a$+8dH4!N5)p{rBW838H|F`Le5v2c3BE{R6h;JUjde(aRPDFx(r=`V#nvAekjB zt9k+Hox(Tb&#{2}>Jt^9moc;Q$#a+fUD$o$!i5^w#AnZ*kuQf#Zh>ny$U7$x9UcAD z{ku6jZ1M>rSUfp-6(sqMf;w&kDsT|kCNbQgl$pWM?6=#i0}e6$vtCKscg|hhq=W|) z&>+iv35r`d`uo(>E0|vp^OtHR$SuQl<$3+i)KcKu84ll(>>&tt4KEx_NTvgIPfrnJ zGh{h$xjzlvLS7+esMM zcqOH#GQeAy9R0uvFRnhqJ+N%)(ug7)9ya4;IV>!6QT~ zla`i->M8@t?kZX>alNoHDjw?Glk%ByDf0TgoDe3tn6tAepa>|G#O?U-VGW`6Xfj#O zZZPV#ZtYkB>bUpNq2=-l3XxG!wA2pgudKd*`d3fFp@7d8923Julpq+UZ$4Vv{09rA}+wY+pVmjfgKzNTyM8F zhK6o^_)**6r);NU2fBCoEyzP4CB9-a5GvUS@F!^~*so=fi>T=F-}UH^S*|0;cI@75 z(Rf!4MtIqe{#t@yshGk;HC`sMF5Qb@uI5pb0pBVs7o3xm)1cOg^+4Z3y5owrB!!3fpwf9IH}@sPI8ZD`gY(IcA78z?ZhP#kHAR8h z1R?`B@vHUaOPYcDJJooiruOzE_3{auoic_1r`<-YOAZ&-vh;(Xgy(K zVlq89_s1FZo)2SspF)#)1;V1&z_d<|CMUGQh8@Hfz!mTn_#3L=S>k8N8w zK0Nu+qs!<^d!gyVZzCui;iVvp>jUUNJ6wmOyIfbTT17E?#f)|ruY_^G4K~Ep-$k|Mlp^;$R@5R=EgX}o)j@RJ$@lTk%3>3yB!_J*MH8eE#;2oF0 zJPC#N}qSnWLoel-j zC*41~*P(gKFqxiiN#A&aMXl4Ib^K0Ik^E>+DL+(U&aptI=$8`l zp`rs%wg3)nxcls=t%$nXe*RYfaz+6PvW#*?@G{cd_4V}ydZ|S-3;Z2ZJAAR;w4PhN zO}cycg6!$mGVo(G9OA!fD?G&1)?8OUpZEbc5laecym8$5QFt`Qa zEK``=%aWu_E=8xOr)zOk)Z9|{fH{U3YJp3nVK=;%GacFczs_;5U3+X&dr8XeHaKI+ zwS|)gXikp5Mh)SV#O~_wO&QSa+X*9Q;);#tFx}=UD4H zZDvg7hYugVmiInD7l2W}SOgvTt80+OYFRf9A-IH48i@g64^kAYUBZY_pZ75Tq~zqP zYGO7AokiGdqE@oB3||RpU?*lcWK+@KCul@|c8l*fY4Juk*z<*F z(Qe;fAL;hG2Uobi+t0St5B)zFst#J(NvlE-UBOM87^#1rX-3-5LyI(kH)gpOSnpnV zJcF&qhM+hgF|S|0j_91dix1K`aA33knxu)oYN*I?U5L<~l%5_21ZWP34iLM#V>f(a z^C@p`p$KLsrkBuPq(KI*@GJ4bVJ(MV6M6II@l1=Ah#^c)2ErtSW=gkp>sFzS8_gEx z{`7a8+@+-^#GyCTcft+^be`}0E~1qZHg0EUjyIRjAZ_$8EiGnOf{Nw4d-8BV8(Ld~ z(Fy9Dh8(R)f5Ut8dSs-IxhWu(hVbE_XskSYT!dnhkNZbWI!&&f z`YkQL05?^{S3zCTiQAV0Nsol37Uq5)7Puti&@E3?Suy}2U^Zmi9*OT-PC8X?t{evT zxrtt7SU>BCTn7uPUw9Kh3V9xDI0-Tb(FxM2JJnwfdQ$3H82mZ@EgvAQJA40oea$G-i=)i$TT>+uMLjuCW z4A{mT!Q4l`Dvh}gH?N?T+NeWxV|zrx094I}o71L0U6wqRdtC-h1`!0HkuZfg4ZW}O zHTV8eCKNH;d*`9F4YaU6g z$yV60gPRKU-lArV@W)b8UKLQY0W&Wl;s*U2ktHJ93ao$s+BB&nG*h=+6;8Cn2JHOQG{PF>`srKdv>}l6Cz4AoJY&p z9yC?J8yVw<+9pgWGP;tI_87SRUGRZ4zGKIZ=)yYmHxNA;${$)1LW9I^HFLj!oK-|N zYU~!O?t-ll2YNZbA}gkFJkJu#HPFK$%ZEbOBZ304Q}Cd{ zCBv8V?ustdLZOqaFvjJ*y&=mXmEP9URYGPOT9{c&x*j*Q*_(1_!{Xw&r)Os?K-jTg zx3tRP(|LBgu|g0d>MtP_0O_&2^AkXui3M%fA~reR!!LQVs0l~ftO=gS(IQ%i|M zASo&7GTzM#z9@6VoHppq05&!ec0q+{{N|@tE3(u)sd|kgKg2S@1 zvVF;aE2MvKTmyCptV~jAdHMOu`}Z?JFjq&EMGk?rWI1mQJv}Z^Bf@w9R#})CG#L#=B+$Va?9cq>VJz!>?K$+m7_!kuHf;=7wPiwD<2|xB%Ac`kq zX%i3}eBuzqtLxsr{f-2QJou)G@1K;e+*nr!+8~E|{p9AGo3raia*D28y^1M+ z4Usr(qobV_Q~y;VuCA_&dzkUI2vJ3%_r`RYlwGq3$(_Imh9pgcq{cPik`3Fo ztpp*Fd9$NG4YBG~TaE`3^__q)xD+JC3D8&ARiR9kb#$x+kEp;TeTt3+EMi{fPt#uN zr$jPEpW#FAAmMPLY(TfK24gz+sgfx7Wkh7bjC6Jpu{<`Z8*gsb$|Pl)6znvEvifrNO4EBF`tgJ zsf!WJ%Amx1C)9u9h33DHI<^nXnw**%jBO-1l3W`Rms&gszGIvIO5U_oG&_y})%dI^Npt_E&(6Srn4V7~ZmF3-oMe8u9bze{)#V ziPjf?06!q;9|6^}D{HnA9Vc@nM}FTm9?{9=kqlw!7mGX}jdW8rzh|w%ok&;{P@K$7 z>;`i@sB>;^4BGjpiwedL`~xaQitFD*iujd(&e?x#-@f2Fx)#FDp)B?dHr|shxC7XJ zgZn*VVoR8?Q;iAs_70SOL~+j}aV0J<-$s#3)YGaW&Q zRUu>|*LHs}l^ue$1~!vbed1O0^Z)3{OVh*JhtQe0vO1Y<+cJ3}d_5SnTC|N;teAhK zw@XSI1}^|LErt0O2s@GJY2`CuiyM$$|5q41-{Zpw{7jW$!OdW50S3`fAiiLAA?QB9 zB4kVAz`@0s7`@QhQtv-95DqTF72k#+CoCf`Y>2NE;hiZ?J|? zIW%peAwZTmA~KGV1O94?k7_UW+Wsz4;j+I!W#$9-6dZa5Cnp^=`pLmYI&7w(bh|!V zjM7)=9p`?2JxKW@u!kXlDBQQ2L@PYp)o z?YsPeVvs=yBI8|r)n}}g`;RY7@H&ZHLIxgG0EEiowpuTT@pSdpEgqcaS;TtKkzHK2 zVO$1crXW~l3XK%nqg%y5)q7KSD4EboBAieZE~FY#PmpW< z9i?i1zqtT}@JPad3_CchhUUhkTcJjzk%XvA*nW7rUQbgqtm_BDrY}K98j*P{#cZZv$@=LZCOBqK%UnD^V(N88^lQIaV~5b|WwixgraQjdhI-J;oNy4?c=O zQ816iz_YDwC{jWc1rxv@1fcGY62HB@z5Dl1YVosgUcW9wR#X~8fTXH0!tj3OljbkZZTF`-+9CQ$sq(`vG>^4w8qP|4Cr1s!w0y0~g z86&tWI09V`Grv4SY*1XefjvH`hLZOlhDDB$OaLedJkKF#(Cj z1i6Y#Kv*Y4NjjJyC$M=l3%VDv1OX&(-M-zQ>xh1D)0HRfJKe`6%`?El>|9(y$V0CJfm*d^6S2c7%pE~Ss9wSSgwSiAYE!|sts&=IMa=YG!Wa~#BV;Qs{m91 z;pZg?CdBt6%_0T4qGJ-07DRphu?18k^r%KmH&)(VD{+DfXv!?UlN`L*vSk@;4Ut^p zFOFrmBH%=%&D6tpNRcATs>c0HN7sj_KSz#SeDPv?bj%|kIY-hHID9w){&TVqn;#Yn zPT>0EEy#<|d3nv6_b+2*#Ysa$yW2N!-aO~%81U%P=`2^^h$R&Go+;XiJC4J3BPKTa zbUFf6hXRA2bZmHm2&CYb<|FWrOzez8FAbIoz>(0@)C6@^c6Z+ak2^4N1xdE4pF1ao zrZ<7`04OlY0PisiuLN672C&aV#XUWUvy%vT;2(0_Y1JxW`nChyK5KAE-K+ zTAZ1)Ea~j*{0wCTqdVa7<1N@3|HZ#}Daf^q@C3}E?!vU%Ec-JL?}0`y_*@)2(4y*! zGWI0MTVzCpKiMy{&vSCrprh4}euP*0S5awUS`brm%bW+G1I|y9T$IJ1AN@qnL&4UJ z>b1dS#4|Mmp(mnaT|-%k&+I2O+-dC4NSwbAcWBL6lkxa*7U;~}%*Yd)j%-ob#I+d? zm6ui!M1q!b1F>8SzS_S9gAnB^$>Ie;#rkHZjNhTnqN?L|lu2}>@; z!>X#2^+_2SS76x1=J^6II^B>oE;u@U#=?RQQ<4hu5WWB0l%@>IQu4ifbkx)A?CAY9 zIM3$S_Y+S{8gh#HtmtD!?1n4rwr4hf7DVl*+v_oFkvR#n_FOv^N$ZL4-vjR4;V0t()Qf1f zNW&Ft856kn3PJ>EFWLEm|bLsHoFLm@p7m@Sx1Ytm|kpBLD zB6^}N*fc+kyqh2>h#d$WO9j{g$)O;$`snt1+AF5;qbp+m3oQqvr=R(IX)&3CCUJP@ z;^Fbh!}`ZeFZ>K3@5Sr?=b3UH*#t$OT{mS<2P0$fvbA*;QPiJV)<#4}15w5p;V>xq zOOQ^r?Lp{$3;joHB~%DHw!|SW(DjuoSFXoNHo|`KD0;`o!%@qhhuR)c6k|2{?*bef zDFK-#a|)R&{nLx7Q+~R| z3-}0-`xPr!(nFZ1%COlTkr@N9V}oG!3OGvIZPb9YQ0g4iF>I6N2v9-FUq=Y@9BQ{6 zneaLim1gqt^1}I02Ap*vCq0p`PalaUsNPY8vGH%tdB0@6Hb0(flYwx1`-3*`T^R zkYLW8zgBR&C#aOS{mGqLncwp}`Pp`y**)M@;x*oN%QL-S3^!E4u~NYN$mZ)kB|KvD;)m{-Z3;heACSj*yA8}6EIa%b8|Ez%~fY%6&asI z5uCv;-~SAOkD}k*UisdCoDj$RfsXqC9|Rs~+Xahq_f9MkvX5)qisyfIe#o*=k2>}C zrtBJS?$-!ouKiiAG=wVnGxXq2>c>=IEwr1h+g4CpmE$P?HAkPc9TAI(5`w8!&mvhA z0qwKdE=TCi0m$nJHLq(=zN5~2e>9S!|( zRJ3MFDHrW=BcrW5cEmwUL)c*_zaVHl&mTxUonb|A5J-ZwrOEZ`hjB+G zZak>GjK*q-;{AgZ{PnKg8egH-L2lFT4CZFK0CD^km?7n z&>C>n*1@43!b^;1N>o5VfY2KN`R7PolLMqVZ6|9%fSi$PB~^+O>+#>KSr%^K6j9YM z6J;f7MoaMpU>94Wb)+2?Gt9Qp!6du^>|}`;*VVIM>+jqF`L_ml_)vJ>VXV720kcCI z&s!7M8+8h#B_B2d1ln6p`M1FAPa(&QE&KP^C`6*CiK?piDf%E>dtd z4?I400H!_?8#jTAH|C!oZUV;mf@bD1aQl2ycXuN8r8Qu|*4aHY)ZwD0Qo9__KT7J1 zjQ*P%(YLnB$V4I8?{fb9YK7%gS%wo@4)EiBL`_a;lBk#y;>oRfBTm& z<-{+0%mSJ4OOjMMJ$}*V#_dy-$Q2YKMXgMo8AzZgHai=ehl4A6L)}o@ch#w0Ne*GE zm;cMb6;zqY=X*SO=l}Lo_Ql~H6tm#smk0en{__71KUT*1#I; zq3Dg;e4kmjM)35ywMZ8o%0F=^MK^z34u5~RNH?w7y_|=S?;Tw1M!3B4zreGw{kx_a z8|IH`9kq6spr%W=t`SD1T*vwnJduxt3|_iV+Aj04QN3BZVlhn}9XBDSSOU+$lf+H- z)@xO_!GQ3X-DzBWRo%KVVn9i y(Nn#523l5Qt^e~FwPg1T-(p^dKM^S_rSUAk{fBu|l0SY+?N>XbnyF%X;eP<>6Zee( literal 0 HcmV?d00001 diff --git a/source/images/frontend/choose-theme.png b/source/images/frontend/choose-theme.png new file mode 100644 index 0000000000000000000000000000000000000000..62b1b2b6be30fd7df9af8e47209835e6f9e382e7 GIT binary patch literal 17681 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 literal 0 HcmV?d00001 From 74e3209d093c6d1795452a90b0d196f88064ed75 Mon Sep 17 00:00:00 2001 From: cgtobi Date: Thu, 9 Nov 2017 18:15:14 +0100 Subject: [PATCH 08/24] Explain how to access config.txt (#3928) * Explain how to access config.txt * Mark the raspberry related configuration --- source/hassio/zwave.markdown | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/source/hassio/zwave.markdown b/source/hassio/zwave.markdown index 119a2928f56..3ffe692ecf5 100644 --- a/source/hassio/zwave.markdown +++ b/source/hassio/zwave.markdown @@ -16,7 +16,9 @@ zwave: usb_path: /dev/ttyACM0 ``` -If you need GPIO on Raspberry Pi 3 for your Z-Wave module, add the following line into `config.txt`: +### RAZBERRY BOARD + +If you need GPIO on Raspberry Pi 3 for your Z-Wave module, add the following line into `config.txt` (you have to access that on the SD card directly; simply plug it into your PC and edit it there): ``` dtoverlay=pi3-miniuart-bt @@ -28,7 +30,12 @@ For some devices the `/dev/ttyAMA0` device is not detected by udev and is theref $ curl -d '{"devices": ["ttyAMA0"]}' http://hassio/homeassistant/options ``` -After that, you need to change `usb_path` to `/dev/ttyAMA0`. +After that, you need to change `usb_path` to `/dev/ttyAMA0` in your `configuration.yaml`. + +```yaml +zwave: + usb_path: /dev/ttyAMA0 +``` ### HUSBZB-1: From 07d95d98b8666548a0e105acdba282a37d6f9de1 Mon Sep 17 00:00:00 2001 From: DubhAd Date: Thu, 9 Nov 2017 19:49:43 +0000 Subject: [PATCH 09/24] Emphasising the long first start time --- source/_docs/z-wave/installation.markdown | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown index 40ef9739c62..338c348d5f0 100644 --- a/source/_docs/z-wave/installation.markdown +++ b/source/_docs/z-wave/installation.markdown @@ -25,7 +25,7 @@ $ sudo /Applications/Python\ x.x/Install\ Certificates.command ```

-The installation of python-openzwave can take half an hour or more on a Raspbery Pi. +The installation of python-openzwave happens when you first enable the Z-Wave component, and can take half an hour or more on a Raspbery Pi.

## {% linkable_title Configuration %} @@ -183,7 +183,9 @@ Ensure you keep a backup of this key. If you have to rebuild your system and don ## {% linkable_title First Run %} -Upon first run, the `zwave` component will take time to initialize entities and entities may appear with incomplete names. Running a network heal may speed up this process. +The (compilation and) installation of python-openzwave happens when you first enable the Z-Wave component, and can take half an hour or more on a Raspbery Pi. When you upgrade Home Assistant and python-openzwave is also upgraded, this will also result in a delay while the new version is compiled and installed. + +The first run after adding a device is when the `zwave` component will take time to initialize the entities, some entities may appear with incomplete names. Running a network heal may speed up this process. ## {% linkable_title Troubleshooting %} From 14eccf7f32567e1c63d968e455813a19d5043021 Mon Sep 17 00:00:00 2001 From: DubhAd Date: Thu, 9 Nov 2017 20:23:16 +0000 Subject: [PATCH 10/24] Adding further device details Adding config details for the Fibaro Button and Aeotec Wallmote --- source/_docs/z-wave/device-specific.markdown | 51 ++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/source/_docs/z-wave/device-specific.markdown b/source/_docs/z-wave/device-specific.markdown index f7a219a2fc2..83fa3cad95a 100644 --- a/source/_docs/z-wave/device-specific.markdown +++ b/source/_docs/z-wave/device-specific.markdown @@ -156,3 +156,54 @@ Triple tap on|1|4 Triple tap off|2|4 Tap and hold on|1|2 Tap and hold off|2|2 + +### {% linkable_title Fibaro Button FGPB-101-6 v3.2 %} + + + +For the Button, you may need to update the `COMMAND_CLASS_CENTRAL_SCENE` for each node in your `zwcfg` file with the following: + +```xml + + + + + +``` + +Below is a table of the action/scenes for the Button (as a reference for other similar devices): + +**Action**|**scene\_id**|**scene\_data** +:-----:|:-----:|:-----: +Single tap on|1|0 +Double tap on|1|3 +Triple tap on|1|4 + +Tap and hold wakes up the Button. + +### {% linkable_title Aeotec Wallmote %} + + + +For the Aeotec Wallmote, you may need to update the `COMMAND_CLASS_CENTRAL_SCENE` for each node in your `zwcfg` file with the following: + +```xml + + + + + + + + + +``` + +Below is a table of the action/scenes for the Wallmote (as a reference for other similar devices): + +**Action**|**scene\_id**|**scene\_data** +:-----:|:-----:|:-----: +Button one single tap|1|TBC +Button two single tap|2|TBC +Button three single tap|3|TBC +Button four single tap|4|TBC From cf33748e1614163c9ff4db8d5672396528a5ef42 Mon Sep 17 00:00:00 2001 From: NeLLyMerC Date: Fri, 10 Nov 2017 03:58:44 -0500 Subject: [PATCH 11/24] Update timer.markdown (#3943) Quick spelling correction. --- source/_components/timer.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_components/timer.markdown b/source/_components/timer.markdown index c3e35ab8fbe..0c4c1a34d03 100644 --- a/source/_components/timer.markdown +++ b/source/_components/timer.markdown @@ -14,7 +14,7 @@ ha_release: 0.57 The `timer` component aims to simplify automations based on (dynamic) durations. -When a timer finishes or gets cancelled the corresponding events are fired. This allows you to diffferentiate if a timer has switched from `active` to `idle` because the given duration has elapsed or it has been cancelled. To control timers in your automations you can use the services mentioned below. When calling the `start` service on a timer that is already running, it resets the duration it will need to finish and restart the timer without triggering any events. This for example makes it easy to create timed lights that get triggered by motion. +When a timer finishes or gets cancelled the corresponding events are fired. This allows you to differentiate if a timer has switched from `active` to `idle` because the given duration has elapsed or it has been cancelled. To control timers in your automations you can use the services mentioned below. When calling the `start` service on a timer that is already running, it resets the duration it will need to finish and restart the timer without triggering any events. This for example makes it easy to create timed lights that get triggered by motion.

With the current implementation timers don't persist over restarts. After a restart they will be idle again, together with their initial configuration. From 63ee4ed5dc5104136636afa965ea5b7d12b99b2b Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 10 Nov 2017 10:02:09 +0100 Subject: [PATCH 12/24] Add additional types --- source/developers/documentation/create_page.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/developers/documentation/create_page.markdown b/source/developers/documentation/create_page.markdown index db3ca834c6a..f2bf29dcef1 100644 --- a/source/developers/documentation/create_page.markdown +++ b/source/developers/documentation/create_page.markdown @@ -86,7 +86,7 @@ required: inclusive #=> Inclusive required: exclusive #=> Exclusive required: any string here #=> Any string here ``` -- **`type:`**: The type of the variable. Allowed entries: `string`, `int` or `map`. For multiple possibilities use `[string, int]`. If you use `map` then you need to define `keys:` (see the [`template` sensor](/components/sensor.template/) for an example). +- **`type:`**: The type of the variable. Allowed entries: `string`, `int`, `time`, `template` or `map`. For multiple possibilities use `[string, int]`. If you use `map` then you need to define `keys:` (see the [`template` sensor](/components/sensor.template/) for an example). - **`default:`**: The default value for the variable. ### {% linkable_title Embedding Code %} From 6ad5f68509fe622266f87183f994c449ef666f33 Mon Sep 17 00:00:00 2001 From: jimbob1001 Date: Fri, 10 Nov 2017 09:07:33 +0000 Subject: [PATCH 13/24] typos & additional info (#3940) typo - the instructions suggest calling your container "homeassistant" but then refer to restarting a container called "home-assistant" typo - "lose" instead of "loose" & "a" instead of "an" additional - web interface accessible using http://synologyIP:8123 additional - how to restart from synology --- source/_docs/installation/docker.markdown | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/source/_docs/installation/docker.markdown b/source/_docs/installation/docker.markdown index b4cbcad9037..59d3b5a2b5c 100644 --- a/source/_docs/installation/docker.markdown +++ b/source/_docs/installation/docker.markdown @@ -57,7 +57,7 @@ The steps would be: * To ensure that Home Assistant displays the correct timezone go to the "Environment" tab and click the plus sign then add `variable` = `TZ` & `value` = `Europe/London` choosing [your correct timezone](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones) * Confirm the "Advanced Settings" * Click on "Next" and then "Apply" -* Your Home Assistant within Docker should now run +* Your Home Assistant within Docker should now run and will serve the web interface from port 8123 on your Docker host (this will be your Synology NAS IP address - for example `http://192.168.1.10:8123`) Remark: to update your Home Assistant on your Docker within Synology NAS, you just have to do the following: * Go to the Docker-app and move to "Image"-section @@ -65,9 +65,13 @@ Remark: to update your Home Assistant on your Docker within Synology NAS, you ju * wait until the system-message/-notification comes up, that the download is finished (there is no progress bar) * Move to "Container"-section * Stop your container if it's running -* Right-click on it and select "Action"->"Clear". You won't loose any data, as all files are stored in your config-directory +* Right-click on it and select "Action"->"Clear". You won't lose any data, as all files are stored in your config-directory * Start the container again - it will then boot up with the new Home Assistant image +Remark: to restart your Home Assistant within Synology NAS, you just have to do the following: +* Go to the Docker-app and move to "Container"-section +* Right-click on it and select "Action"->"Restart". + ### {% linkable_title Restart %} This will launch Home Assistant and serve the web interface from port 8123 on your Docker host. @@ -75,4 +79,4 @@ This will launch Home Assistant and serve the web interface from port 8123 on yo If you change the configuration you have to restart the server. To do that you have 2 options. 1. You can go to the service developer tool icon service developer tools, select the service `homeassistant/restart` and click "Call Service". - 2. Or you can restart it from an terminal by running `docker restart home-assistant` + 2. Or you can restart it from a terminal by running `docker restart homeassistant` From 9a6b724243f1fa33664fa46224049542ab372a5b Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Fri, 10 Nov 2017 17:28:05 +0100 Subject: [PATCH 14/24] Fix notation (fixes #3947) (#3950) --- source/_components/device_tracker.nmap_tracker.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_components/device_tracker.nmap_tracker.markdown b/source/_components/device_tracker.nmap_tracker.markdown index 74b40f25eed..7e3de32b678 100644 --- a/source/_components/device_tracker.nmap_tracker.markdown +++ b/source/_components/device_tracker.nmap_tracker.markdown @@ -29,7 +29,7 @@ To use this device tracker in your installation, add the following to your `conf # Example configuration.yaml entry device_tracker: - platform: nmap_tracker - hosts: 192.168.1.1/24 + hosts: 192.168.1.0/24 ``` Configuration variables: @@ -47,7 +47,7 @@ A full example for the `nmap` tracker could look like the following sample: # One whole subnet, and skipping two specific IPs. device_tracker: - platform: nmap_tracker - hosts: 192.168.1.1/24 + hosts: 192.168.1.0/24 home_interval: 10 exclude: - 192.168.1.12 @@ -60,7 +60,7 @@ device_tracker: device_tracker: - platform: nmap_tracker hosts: - - 192.168.1.1/24 + - 192.168.1.0/24 - 10.0.0.2 - 10.0.0.15 ``` From 777f357472b7d4e0a7cd20c3c0ab1c1231272f78 Mon Sep 17 00:00:00 2001 From: Tristan Caulfield Date: Fri, 10 Nov 2017 13:08:11 -0600 Subject: [PATCH 15/24] Update sensor.speedtest.markdown (#3952) --- source/_components/sensor.speedtest.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/_components/sensor.speedtest.markdown b/source/_components/sensor.speedtest.markdown index d9c25821a8a..bc1e8bf9884 100644 --- a/source/_components/sensor.speedtest.markdown +++ b/source/_components/sensor.speedtest.markdown @@ -113,3 +113,5 @@ automation: - When running on Raspberry Pi, just note that the maximum speed is limited by its 100 Mbit/s LAN adapter. - Entries under `monitored_conditions` only control what entities are available under home-assistant, it does not disable the condition from running. +- If ran frequently, this component has the capability of using a very large amount of data. Frequent updates should be avoided on bandwidth capped connections. +- While running, network usage is fully utilized. This may have a negative affect on other devices in use the network such as gaming consoles or streaming boxes. From c41cd5a3b2ce614991013e7d20d7add64bf12411 Mon Sep 17 00:00:00 2001 From: DubhAd Date: Fri, 10 Nov 2017 20:02:24 +0000 Subject: [PATCH 16/24] Added note about naming Added note that renaming takes place on restart --- source/_docs/z-wave/control-panel.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_docs/z-wave/control-panel.markdown b/source/_docs/z-wave/control-panel.markdown index 342d2947c5a..613b4fc29fa 100644 --- a/source/_docs/z-wave/control-panel.markdown +++ b/source/_docs/z-wave/control-panel.markdown @@ -36,7 +36,7 @@ Here is where you [include and exclude](/docs/z-wave/adding/) Z-Wave devices fro * **Replace Failed Node** will replace a failed device with another. If the node is not in the controller's Failed Node List, or the node responds, this command will fail. * **Print Node** prints all state of Z-Wave node to the console log -* **Rename Node** sets a node's name +* **Rename Node** sets a node's name - this won't happen immediately, and requires you to restart Home Assistant (not reboot) to set the new name

Battery powered devices need to be awake before you can use the Z-Wave control panel to update their settings. How to wake your device is device specific, and some devices will stay awake for only a couple of seconds. Please refer to the manual of your device for more details. From 35e55bb5a9697e06017087509920ee15b765b1b2 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 11 Nov 2017 09:32:34 +0100 Subject: [PATCH 17/24] Add blog post about TTN and Home Assistant (#3945) --- .../_posts/2017-11-10-ttn-with-mqtt.markdown | 198 ++++++++++++++++++ .../blog/2017-11-mqtt-ttn/social-ha-ttn.png | Bin 0 -> 81446 bytes 2 files changed, 198 insertions(+) create mode 100644 source/_posts/2017-11-10-ttn-with-mqtt.markdown create mode 100644 source/images/blog/2017-11-mqtt-ttn/social-ha-ttn.png diff --git a/source/_posts/2017-11-10-ttn-with-mqtt.markdown b/source/_posts/2017-11-10-ttn-with-mqtt.markdown new file mode 100644 index 00000000000..1300f7cd8f7 --- /dev/null +++ b/source/_posts/2017-11-10-ttn-with-mqtt.markdown @@ -0,0 +1,198 @@ +--- +layout: post +title: "Home Assistant and The Things Network (TTN)" +description: "How to use transfer MQTT messages from The Things Network (TTN) to a local broker." +date: 2017-11-10 14:00:00 +0200 +date_formatted: "November 10, 2017" +author: Fabian Affolter +author_twitter: fabaff +comments: true +categories: How-To +og_image: /images/blog/2017-11-mqtt-ttn/social-ha-ttn.png +--- + +The Home Assistant integration for [The Things Network (TTN)](https://www.thethingsnetwork.org/) uses their [Storage](https://www.thethingsnetwork.org/docs/applications/storage/) feature to get the sensor data. The easiest way to observe TTN sensors would be [MQTT](https://www.thethingsnetwork.org/docs/applications/mqtt/) as it doesn't requires any additional configuration. + +At the moment Home Assistant only supports one [MQTT broker](/docs/mqtt/). This means that you can't subscribe to topics which are located on different brokers. + + + +## {% linkable_title Subscribe to the TTN Broker %} + +To check what your devices are sending, subscribe to the topic `+/devices/+/up` with a command-line tool like `mosquitto_sub`. The `` is the postfix of the **Handler** entry in your **Application overview**. `` is the **Application ID** and `` is your access key. + +``bash +$ mosquitto_sub -v -h .thethings.network -t '+/devices/+/up' -u '' -P '' +{ + "app_id": "ha-demo", + "dev_id": "device01", + "hardware_serial": "AJDJENDNHRBFBBT", + "port": 1, + [...] +``` + +The payload contains details about the device itself and the sensor data. The sensor data is stored in `payload_fields`. Depending on the device configuration it may contain a single value or multiple values. + +## {% linkable_title The relay %} + +To be able to work locally with the MQTT data that is received from the devices connected to TTN, we need to transfer it to the local broker. With this simple script below all messages from a given device are re-published on your local MQTT broker after they are received. Modify the script with your details as outlined in the previous section. + +```python +"""Relay MQTT messages from The Things Network to a local MQTT broker.""" +import paho.mqtt.client as mqtt +import paho.mqtt.publish as publish + +DEVICE_NAME = '' + +TTN_BROKER = '.thethings.network' +TTN_USERNAME = '' +TTN_PASSWORD = '' +TTN_TOPIC = '+/devices/{}/up'.format(DEVICE_NAME) + +LOCAL_BROKER = '192.168.0.2' +LOCAL_TOPIC = 'home/ttn/garden_temp' + + +def on_connect(client, userdata, flags, rc): + """Subscribe to topic after connection to broker is made.""" + print("Connected with result code", str(rc)) + client.subscribe(TTN_TOPIC) + + +def on_message(client, userdata, msg): + """Relay message to a different broker.""" + publish.single( + LOCAL_TOPIC, payload=msg.payload, qos=0, retain=False, + hostname=LOCAL_BROKER, port=1883, client_id='ttn-local', + keepalive=60, will=None, auth=None, tls=None, protocol=mqtt.MQTTv311) + + +client = mqtt.Client() +client.username_pw_set(TTN_USERNAME, password=TTN_PASSWORD) +client.on_connect = on_connect +client.on_message = on_message +client.connect(TTN_BROKER, 1883, 60) + +client.loop_forever() +``` + +Save it and run it. As soon as a MQTT message is received from your device you should see it on your local broker (here 192.168.0.2) if you subscribe to `#` or the topic given in the script above `home/ttn/garden_temp`. + +```bash +$ mosquitto_sub -h 192.168.0.2 -t "#" -d +``` + +## {% linkable_title The sensor %} + +All we would need now, is a [`mqtt` sensor](/components/sensor.mqtt/) with a `value_template`. With a sophisticated custom sensor it would be possible to displaying a little more than just the state. The device is only sending the temperature `{"temperature": 7.5}` but there are other details available which the sensor should show. + +```python +"""Support for The Things Network MQTT sensors.""" +import asyncio +from datetime import timedelta +import json +import logging + +import voluptuous as vol + +import homeassistant.components.mqtt as mqtt +from homeassistant.components.mqtt import CONF_STATE_TOPIC +from homeassistant.const import CONF_NAME, CONF_UNIT_OF_MEASUREMENT +from homeassistant.core import callback +import homeassistant.helpers.config_validation as cv +from homeassistant.helpers.entity import Entity + +_LOGGER = logging.getLogger(__name__) + +DEFAULT_NAME = 'MQTT TTN Sensor' +DEFAULT_FORCE_UPDATE = False +DEPENDENCIES = ['mqtt'] + +PLATFORM_SCHEMA = mqtt.MQTT_RO_PLATFORM_SCHEMA.extend({ + vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, + vol.Optional(CONF_UNIT_OF_MEASUREMENT): cv.string, + +}) + + +@asyncio.coroutine +def async_setup_platform(hass, config, async_add_devices, discovery_info=None): + """Set up the TTN MQTT Sensor.""" + async_add_devices([MqttTtnSensor( + config.get(CONF_NAME), config.get(CONF_STATE_TOPIC), + config.get(CONF_UNIT_OF_MEASUREMENT)) + ]) + + +class MqttTtnSensor(Entity): + """Representation of a sensor.""" + + def __init__(self, name, state_topic, unit_of_measurement): + """Initialize the sensor.""" + self._state = None + self._name = name + self._unit_of_measurement = unit_of_measurement + self._attributes = {} + self._state_topic = state_topic + + def async_added_to_hass(self): + """Subscribe to MQTT events.""" + @callback + def message_received(topic, payload, qos): + """Handle new MQTT messages.""" + + try: + data = json.loads(payload) + except json.JSONDecodeError: + _LOGGER.error("Invalid JSON data received: %s", data) + + self._state = data['payload_fields'][next( + iter(data['payload_fields']))] + self._attributes = data + del self._attributes['payload_fields'] + del self._attributes['metadata'] + self.async_schedule_update_ha_state() + + return mqtt.async_subscribe( + self.hass, self._state_topic, message_received, 0) + + @property + def should_poll(self): + """No polling needed.""" + return False + + @property + def name(self): + """Return the name of the sensor.""" + return self._name + + @property + def unit_of_measurement(self): + """Return the unit this state is expressed in.""" + return self._unit_of_measurement + + @property + def state_attributes(self): + """Return the attributes of the entity.""" + return self._attributes + + @property + def state(self): + """Return the state of the entity.""" + return self._state +``` + +Store it in `/custom_components/sensor/mqtt_ttn.py` and it will handle the messages. + +## {% linkable_title The configuration %} + +Now create the [`mqtt_ttn` sensor](/components/sensor.mqtt/) entry for your device. + +``` +sensor: + - platform: mqtt_ttn + name: TTN Sensor + state_topic: "home/ttn/garden_temp" +``` + +This solution is not production-ready, scalable or stable but it could fill the gape till Home Assistant is able to connect to multiple MQTT brokers. If you have multiple devices relay all messages to your local broker and add an configuration variable to `mqtt_ttn` sensor which allows you to select the device. diff --git a/source/images/blog/2017-11-mqtt-ttn/social-ha-ttn.png b/source/images/blog/2017-11-mqtt-ttn/social-ha-ttn.png new file mode 100644 index 0000000000000000000000000000000000000000..c9de59745a093e8a7a565906fe2989b16f719e04 GIT binary patch literal 81446 zcmd43gtp3zDlKwZNjl z5(^9OtiR_uj_)7%j`u~B+1t72o|&u8^Sb8d{YzDO(i^llAP@+tqQWx`2;@pN1cL8* z?JBsU_SDZ1{J8pBS^gR168GnGM^O^Ea@|=$-wgsGCdd87gJgW71{aCk6;+-S{kn1O zj_?&qhzte-xd%~vCZpv&zq4fI%&?KUag3N++Q0@w6x#=qUyM(a6e(CG?^JF^<-d02 za^;lhOp$ zyw5VCz%u^mVK79YJ@Xh9=sMB;is_a=-uTj{+vu@o`0Z~Ac!yJCTc{1h<>e)>)Aq6J!RLnfa?h(Q->f~u?|E%b0V z0*nGHZX>ywW#BMI?>mDac&hQAVwwFMJkOi#DRepux>%>z*YggHS_nZ2gobq4VRVF3 z{YY*GYx(FTTF^rvX2Y%|5UAk@KSsXhPL;{>)+X6#+Qa7-;nJ7oBlmu_bQ~xeAVf`O zzA5U0g>?iqeF@m4;o99YI%V90BC&RUuyR62>CrBH$hRnV_2;?{6e|LZV`mrXcdcEw|Lea(XKT+Z?LKXq30PXbmX%JED9mpmpQh&5+U!=&Z?RF*-|F|NX$Gqmlnrz~9FtdDgI%<_ z0$YsjyRY`TyV9hpst#MavoVN0M-pC=!jTavx|{P+_s1Rb)h<=c(z)tjXf`qa#teBhloPNV|Wr zg{bbO7drD`jYWC~g;_V0L44x)&G(`9%=9$#pn!!iGQYTLylFJmefNd>9%7qOjK>+Y z5Ml;m8spBhz-pbaj@mfOJy6`%L$G)G&QE!bre%MyLAQ_27-Cn6DRA?-Ja<|!OLI_P znCe1)4r!-TUb?uv7&K(o#VgNWS2*XV>AE;SuWO`iB8X+RqAqd=PHNM@O8I@v_FP7p zw8$P3e2{PLFYs}Yu>Hv{#cCqCyA>vAa(SLKGj5Sc#y_U?x)~3$`c-NbA^Mh8`n)5s zF&`ma7v%IQ#k1IeE(8qxMCgd@4d?Wy;%Vn137am{K_a`(<$*sTe{7`JVh+{<;*Qz+ zTj{?0ddyG7N!d#syKqe#b@=3zhqGRp^i(zjBkUfo%wRo>=Q6X6+~C{?i*)|&B3nqc zOBod>tP1}@IB;^l2eKB3!e1(gqyE#GzSXYTsaTuBoy`hF1(F-(fvy{yH**U(ldp;X z4%7j~#KY#}HljP#RO8q!udC}d1g`x`N2bKjoJo`0f|^B)_R z7+_=4?Rs;l?@16*SZrpfnB(6E_<>^bliwyt< zFfq~)hLsW=d-m|1RU`q~p$fv1_A3ZHn7?~EOyZXjqLmp|?z`8WX0yFM$@j#Wl%S~! z_xvZtv>sbXIQyBk6nRP6Ff9C)*s5!8)?~*>h;yPg_HERvRH=?gWAjB#pj+Nq9t;+r z_K$a5fI$k6rX6>z8=HvvZ=sX=1b6)gw`=b7GD+sV`7>xJ<78Ycapcz#R8_W3#JQFI zSiH5>Z7(|RmCo^~x_6*tWTf5i3zXO8EK|bYs}O3|I*X#q_=d?Exj7EjA+sN(d^-Vd zr$gcl*t$4_)|Pd<4!=JU@6nZT6X`>=Q|C?z6_m`f?S|@I(>aIn%sx4%bCIkDXPEsJ zj1^N88kISkGq^L;raqQJHsg;yx~{AF&6=|)GB)t+&GGcXG4K%=+i6O1PlT3F7dDSu zX2nkSricr=7H+tMUC1>%G+N|%)W{1DK8`nexYTwp-g z(|KT1y16MWxwa);eu9i~-djqqog#A=3MdOYwK;p)-?m(bsWN6esuFB7%ZT`?J=KKi zx~!}SI`wjRBGfB)X?zTO)kQXGKR1zHnuPJEX;}4{_egdbMAY>=-eV0M!O6R#%LX{X zC6*<-)m7ih3$|_V!a|lb``02Q(s!&j0j)3WW5eg(q0_moUVJ zXI<#!NSb73Nh|hL(>eO0E@`4eV#IEZO`?nOc@MAa6$s={^iS<`mDSfQ<75|Ra(l~L z5B3XNe;IW673DFV_rIk){=L`ble7PIKcSp*xT}3?f-DfO@PN+VMcnrblk{j*lDg+i z;1OfcRFm&UQtC2>Cmm7r%K*Dmcl7kF3Y;IaoYe%kd6Iv`#hysLapE7zZAocc3AEWG zU%E=y%x!I*nP1CuV+%!Jf!ZobDUfa#IMHth%Vt6>s=7}!PToYbHf3O@3`Rn}?Z}S6 znT$(aB|aS|R3B$799CQ$>S#Iz{7|Sr{sn@Z0h7?-f!>@aod2xzit<7O|F;lI2*>VA z>6188+=LRcjc7aJ*^9O}hX+oGujK!W#y@5Qd&=mBI@lmdvKi+qo}Zb{OaK13|8VHu z%<@mTcy|4rJ*KHYyJj-wvty}R3!0OEF>{mMF5E)7!fQ6|E*&+Cbl*QWH`k^3!VYYm z{vb2eVDFDhV2d{yi6gnD887GZ8Wm!)r&vbb7sy|p4NZj)$F0q$_ZUq8<3F5oj zDAmR!og?3K@7Wt1r0{;>uo1Jh{8O891dce(7yNUi6FCT>L^_sA9|M2fAF69pup#VU z<|RerFULS81-ua^K+=<`bLs{?%J*1xqvkUVcEFC3e@wXM+3(|2jkDe~wYX*c)yd@9 zF=suS2>DU-sO%(NHNSK#wf0V{3#*9;I~Q?p&JQ&v&grYa+R3Im{GI-=@A@g8)86Sy zGx_As-*SW!Dna-S+eo&7fOPbf(jZlTb@lsJ)AmLbcjw7URFw;6{u}Sk8G7AGmyygk zU~zEg$8wi=GocrN(FaXK193~ECq@~ESCvSYPxC1(KIeN!M~O=odjg-AT(0Hj73ZFD^x8b|ZO1J& zPgA{RfE}pNv25E|f*li4(&=s_`6c;VbbgM~4D0w-OS{oGD$++)G;2(sc_$~s>M9>y zC96QCaB5o^-c0mYWoJkF*AY{Btu08hD|@lNJ9(bKY<{(HeKi?w_bW;|{h&n4M%E>= zR+ym@u>0-x<(aS-UuIo%(6Sz_{k>510IF%_c`ca^WF)axHXAbqn zK`uN`lb?^370p%YYEA0vg^{)I4#x>!jQj1raJhHOg`POp`zk=ADi6N9?S5N%N;9;O zT_0;9)zS82i^v@Mn0R}COP(0+4dJ^^Ak!7y$HB?-~koFO*iKuT*x zCi!^JBM$BL-Xv}E2Fg(UpxAIfOxr|Q7i%BKn|kVNGe|KhgCk5|86iwhUOH6~rAtFl zR!-}~DJ` zc-hM^D#GmFoNua*T+nc*e0mt1asx^MfhZ(aj*?oMFvtr{PB8{f4SzZ{ zg-bUQEo1R-_A~rebmd&xzy&$8k@6psjhvVo^M_eWsXChHCsy3Xl^;^qdB+lrnq~-a zSPjG=Q4Pg~Vg|B}fM$C6)g$bp@z|rfC)*d11ZGPL(o^<}6GkKuo*6FH7R;KkS~OM! zaPyGEGaxC~WAVsl(58WlSQ((5*uQaB?erV?C0@A_|vWzKotuq-8*Zhx1CUbko83wRvM(wxEv#}2T8v-&VOcy znGZ(F?*d7D`9;)an}4A%Sza$RE;5>?KKYZlM1AhT1E*`mKn5XvH7TASqLy{zxE(|L zJ$IC4Gl(z0G4P5wz#NI6O0 zRx>Ic@V-TJQ;T1H`+qy52hFOTr=2YTHzu%<`D^rd|JWI0oe=24m)4%lll2dUk^!RzZ5R*1jUe?;`hJv5$|D2MKPQ?ve7pK9vA*mrO_n^30Z ztDcm>!PxR8V=`RO`bA9g!Ur?K0l(5^;(xY(e)Xke!MGfYQ~v^W<_Y|%r{=Qnz}KM^ z%c0S6LC09(e&8?jFU}B#X!v18Y1UTS+rpH&nr4Q>AzN#Cu(z!RSvJ0sM&b|R= zC_zEEg=l{{;o2q|zrP}5?ex+f+w8B>LStlYto??f=l}AkLTdXonZR&d zSpj?`A#c6o9U6y2A61RQKLw1@#Bwb^liXe3_4_8Qp&(AIoVa|^T;a7RVSDcqGnadD zPA6!T$xUMM)NDF7!UaG6VMa3nBsj-anz5VxFBezUO4P70cQSfCoG&afIJ|X=`wV#g zbYZT}&S@M&eV|yS>R0OX2u)HAf?I0~psizRfDmcp!nmxy)2F7^&c!Ko!SYMAB5lL! zt4|Pf;HTflCj6!y;Du(f_&mahn=uMD9>_he*Dx*UhK1|c>wq*hiGT#=;J)O8V8f_1 zGGmj`z=+1TPUxOe#9ohwN9X5bl&9upOVmP6;K?h^v_iuU&%$EeB1vt@JiyUg!3V%s zKiYLVR$^KfV(jU`%4kzI@bbc2^OQBSz`k5`=??hHsov`Ded!YOn>H_zjw>8AnWaG7g$TTS zcUv16H)nj6>n!AT*NI!jHUL?*F5Ec`qfK=8lN^_)3vsO25U=LNDF7+R)#Q~O5aO_n zkO$uWI|!v~)h4yJWXW%870SHelnn(abe)Eqpgcv^jzX`5LSeVtcA?4kL|q4Hi~<56 zUHuo2e(tLt4WMMP7rbc7wiaaBmVvfcEx+ZE>U!4@;MPDCzFswXbG3OxQ(0Upt=R7Q zZ;y4UiVU}QOifqUZKZ}rah6`>U$$%C`v)_3|6`76@vUxIt`=x%vwF8}skN5#&9p{a zPrgP&#pk*i$rI%;-EKmbG^t~X%3Zwr>1;KcRe~y{VgUkRxU30bi$UqMPBg2HmfB}>>D*^Ds zNG4YfQ@8^v3zTJhs1s1=5r^w&5M5T?B`A@xonAS$PU)r+&0cnrpEDt@Q9x3w&zNr* z!rQIVu0FD|N;LZZXQ=cB=A)ULvKdHrBm9&OKfm zw9~=Kg z=@(!zu|@-e8Bgdk*~QYYR<6*S3Fs%Q-Zj(~%SkoJ@%{@jH57O~RWB=cZ@t68 zG@K_vRDHF|OJ_FCw-uOb!DC&7l))s>0^mNtGmSD24v$!Ob6Rf3;ylPeo0!S?N2)=B zpr&R9q*XRAH;@13kGEzXxu%B=t$9-gtHj3NXvjOBOGy8+&F%KAf%J{>*rx;lQfjah z7*W{nW6X1(rp|)(xGfB%GK$wpXX~aa&`+h$t4o@s>}@TIu47-!O@O2WvVkf}PFU@q z`sFQfdjqy!c`;B$d!>pe`FnS74Uf2RcE zC}~uI8%`fkfc(wp-7rMGso-xEQt z1{W3MRsek5`*fgFczn?zk5{%-i270tST)wg0OacVohAM*o6(PL(yX~)mcs|T(I*j1 zLf4I7otRxG!K?jEyJbHDFIoBXqGRfz{Kg|gAAcCgcc1(K-F7%$;+HTwe_FEvFzg6gWK*B%S zTD8$G9R51;{PIz3%TCT8Vp zOuwwza5weSg9M{vggm1-FRLatU`3`}*G-~oAEOOwDX1`@&n@SYm+X{!ZDPW-8>dCt zl1Toe`E>k#{s*%Y?b*kiePzh>5Wlsq&MBI?vqh2RA^BZ?uW@d^>iGA-_Q}8fQZo_L zcRftG!9)kiW6heoz1Nf^{1>r1^LFe#U9Jy0#^&gz*dPD6n7I|t;xRWEzI#B)?AXeu z$KoxcEB?k!Ghu;o9i>+8l_+NkGt;|$k1tLQY$D9r&GMbsWRa>V!!LJi(e0Ll;ui4` zp4Vi%f42=8sXo_PSeeRP>Xu!p-sf6o+8Q(rSr#Wcgq1(Wpx6A2ZYv)v00*UDt0&Mf)u*VGfn2L&5fyt9Anrm6cP;viKhj(Gf} z@@2a=W0ntv6a6`Dhga5u{Tz*T@26u%p&*(wEO2(v`+9TlDzKtie|eQwr@yP8M~X%~ z03P2rX-MIKLLPO^Q;J&zYEmMy!bf77{FPqGr*yZ{heaVrPL$^lb-jmoQ`FE5L-%j@Reim&4WwbG7t`XgA$R}B7AA=(x14q4q}HKeQW(Uy z{q8moP`}Auk(kcC^-UlAFQ6o)q3#}Sse$sNc%#!XUOExgnGtxnmotJQT{E1!o$^Ms zIi99ug*KCuc0`vxvjTWRFOR_cM`PD@H(2R2vz^fm*L6)QM16BsHnk>-SD+zJAd`N_ zuPvTV8FTr*8cAj72s~0BUj?4$c!8PK?%nyyXdWj>8ByBY!;<_B_n&H#Bd?CR%t|X< zB(QSf5@Jjt43eap&B~Lc2k0$7+(k+43DJ}G&W@LZ&rR>J)S}F;#m|Iy#Y49~$1wgz zHOU6FQXuz)B7Y!vf|#O+ z>64g&m!OG@fVMy>MKpVs`W!!d+l1~w%throO(v&kMwtl4b_qU29&5aO-8Pf$8Qv39 z!w#>eg|XCx{5=ykCclB%W3FVPFy<&D)#>>6Rc|rJk()0g4 z3vjT5#Pi$w=A}RU#j*G=;up`uPaxr7L(}h~bkIr59U_7H+b*znvpu-ic{s$1d*GM7b!u3=iQa}5cP)`LEUO$}mDKe7 zzC7R^2=*E~^QO$rL)VQ$UU2NYxNP^dNAA-*?}`O z&3(J1_bj&BxYMrIb}s{$dSFbj%)~SnZABncu+n`pZ zv7`SYOmX65?-%L;ms~f@{+qn28G4|MqR(o1pa8(Ow$S>8iSIHfSN}r#%gm16C1M;5 zs`>Hj3TcVKcF1xZp)fGj!`<+mv)pNkq_VdYez>TBT?UoDr=Ek=hSDoh8)4CZmzQ34 z1vGlwhxF}baraZkM2M696H}VY{Mr7)iWm)AP}h7NaAtorI|tmPbgR~u$q;zFoY#|~ zyz=#zSv5##ZB&qAQn+~$9L74>YRkY3X_%|S*mJyivM;TFPm}ctYSb}xV>{MzFm{ke zYFy;e4fBA8b)@}>#Rg||N|Uq=S+YL>2j;Y2Tg6PMzn|M;bew`FSH6<8WCzaE=;?uK z(+8VdW$QEn$7_iIfKeh{-`+Yz9Z%52D>X7%`jOOjcznF?fs2I>6oBVW4>Tl}sop5G$ zBOO^X*HNrDu2d)18+g7Pn`mxTofZhpSua&kVeaeR_{WtFYVPU43Umd>HsiRo5Bsuq z8xa@zlJ&$s5|uS|pXZ#63(!KRlgVX47_u^gISL<=$UeVI5RBy(_IB4x5hfD4l5Rh< zpg?Sl*IbQ3brB4sLF$S!4yxSIzjXmji$!=JS56xeiJp?L(HKzHbS#xAkX}ea<7hA_ zIW0V)IbROnfBFXraL?K7T*^)EoVN})*KXr+J}6ConHt?NsllQ3p%?2h)I>n~Cy{T! z@y&bZnEIDq9)-vU%gRq~Lo?WEut)E$o8(NVcd0;yOB^G8`AP+0%=WOcx*6cut`n$A zT2V(orNEUcsGBi1E(lJoSI#xf03uTi)!x#R2Mc@lDvaBw1E+7ehXFL#+ItsJ@6S8KQ|$MToX|<6uW8L=Ry2 z9mEzuXMdxX+Gc-9Blu&Z#K&&_O}lbzwp}&HH#Yu-Cu0BIqU3`@Bn|wIuM6fgxvluO zCOJ@+ER1|q6a4W31%1g%1`8TV>y?rT-9+TFODm0)rL(Q;7wz99qQmiAMB7W6 z@1{Ojdv%bA-CWP80yvNC(+Hn|r@PPml%3TLf*!)hzHVnhi?*Z!N8haHjLHM|WPMD3 zxdD#D;YJ9G>08`sz7ZJ&fH7m2{eRVzM*_%eC2I6FdtnPrZIVw?x2@c9@rWd?NOB}K zlfWW*cQh`$eV@&(5=qnH(wXm+{RD||RRb6-Vl>xp9&IK3F2OwB4Fvh!?cU;8%`Z*9 zd&X*2*)dXdZ6RmUop7axtNTUSo>~XP-3@={({n3FDGrxAvXTb^8sH$Y2dx5lX&Sktip4W^x732-|-sXoD9RyUwNSx zy0$elV#)ir2&+6>Vkc&im8gc^5GjIgwt3Rm0e(3m)%>O&8$BnWm;uT_O+xrfP6h#o zZz}q&yavO#ReaSJ@i9J(fxKd5D?$Ec1;CP#3szCsN%AfAdw@+Z8Af?lWBkRvS3;47 zOK{ndiP@sXkiEKXz#@Pn+c?6L&U)o))*^g(aCxx%GHT(~rCXrSytuPk4)77um!&yQ z+{u`zhNbP%2L6eL;w^)KdPeJ-+bM=pyXRSD@@qoGg2(S?vq5-}KFiNk`r{AwaAdoe zEpE!ss|{oj&;-`R9`ZpKF&VgG(S&dHUd?bS0|;cXsz*0Y?e+UpGkfiiKvEunD!bzXUs8d6yv)Eo|}Ou{hY-2reuP zWb{t|&PNdjtR7CR%ll`Yuc_+8QbV#pGGs`E;XA@90+SsGpFTeJp*a*F_BbA&jfeyJ zZ?Yix_}&QB;cneGmbldsZIjtFzcK6?XOo;@z(UuI5jgkYk7zRU-;;2%W5=|IzrAA{joDfsfQM1vWPI&lApD1sR4Gfx$pif{Xi*_ z?*!%5d(qyiW^=4J9QQB926Q!d|927LlvkCsPbMqC8qre+2x)FLKMY1wY1^yH1!#ui zj>Q;CBrsqypqvO{+}4&GxO~mSZb`b4O7;6J{UGd{;Faolk}-v@fL@jS#~6U2B4|=x zt5D=+(I{?R(Ftm!dDrmcAe}=TqvTPaA>w#cE`@mX?mEbWLlnVL(E3aH`}AhXT7-J3 z+ZWyJ6HmjoE}0~h=LA_=!cp%-Us-|j1jwmTmvKJmr5>Q^)q8fgT}do7d?TG3FrocV z6ZF+Bk)j&X_i)|1@8RnyJWKT3vuHtiVY&ib5o64e=ohTS(4=n@46L)%0R_El{{~Dn z>LQRgPci)YXlQAZo^|l5k`miME!nTB{zZi;3)X{E8;8cV5^}=4lKVX`a6>DE_TRd9 zeMYIXf&IZPQudZd6Va7L7o7bMGPo(`tvUagvqnK1lBagc^Y7K$Ueyq}@w-#e zlM{MOzILc5{+a630Ix&7@yrg+O)<;uoyf2PCa+jwqCLVd2FUri1<1pKWhcxek>DlX z(kmfX2*2{0JT?Iten_BKslE~tW&B~M@@<}Ft+fWnZHH4G<=vNbOIB1asI0t^EO;Xm zpi9=BE5-4$nx~o%<;hy{SV58+0*SrDVR|k8id}(mXvoK@=SkL1r2#?E0Y!-qlh?O` z(E>IpH>Eb;VC==meUE>xGQn&b%+P-=KR2j;@P^bHo66(PUqVFKfizyQ_C%LNS_v2_ zIr;j=f*(@Fj; zV|xz@lbi<-_H)IF8ZG)u{Opg;I|%IHhXY-{iSI-2Fdcv-N0-f;_m&+MUKJ>z#F4LJ z>I%|%w{TN{(%^2Vc_!ZVuwawAL(e1G-Qa#+X0U8;KhwN*zqrJy|06L32rfDwlm^zr zD&bg9*DZI7*s>6=y{NH<&;rHkHU?7u8(NtSyQzqefwQ>;i+~XZ+l=h z%bjM)Ra`6MZ||Dt2R&#euLk^KFzys2Bm$f>eee52MJm@h*AyI0e3aPZR%?AIdqdwS zv3_?7vaKk=I*;akylqq#1jMn2r8-M0Yh5P!#~+->2S2iK+AW`t(k0 zC5meODcPX~sC~0cP&nnDtaaWUB?+JNjyJh)XP_|)bqbz#n29lE*>9S!)8F7G!Q&|L z7NTfNsI$;1p#S2+FU=6p7sE_0{fb7p2K*9+`F?y7XrftusF{{a0Z5v(TK^W?TI(wJ zlA~>we%`}YQ!b2vHSph{Jd!O_wboX>7ceXc&EiGA_W=cHZ~%Qx|NYwCI}J0W9=V%^ zN7%Bg31vaukOuWz9M$`BijUYeImDpP<=Ms5$4$MCo9fqF8YW@0`=Y+{;eEXCW7Ig} z#a;>J?HZKODHU8Ptm9R`n)*L8KjEn7wREt@IlWV*R`qjcmAKoxWhN2`2e>g6^^-UI*Y#$_nA^yt zwq=t{AspMrr-~O6LihifqFf~h4SxQwS7Ww*Bz!8qIdIB}GAk47J0y#5Xvn-0i)LB= zN0d{-30aNzfaJyDayjdFNe#mkQP1FXaW^J9H0-rH`t4GCVAhY**{?N{iC<Rq{YNd~yYL&|^F`kohu-EKqt@n&G}SiDdmSnmm3Q|$PCJ7+0m%Z%Fp%gm zJ!=?;Eje6;?cRDLQtU}B*r686JC|~MG&QN?Sz^OKWsHym%VHOUx~=^pGuGz-U@cTP zVw$u(@dZp=TYx>^A1$UWkiqsq*b6&eO2I>go6b)jP!!Ovv&akOU&JdPhhYn8Hisy; z_#@T~O4eA9v5}P^7sA>giItGgD0`3{Kmo)5jJwa78U&RLa2BprU{SN23I^708#7$S zvY_NGJP5L`{A=#(v;K4Hb1Fg-jk^Y?FIaGQiQJ82ehORXhd_Rb@jTE8b@REs|I1+!f>70dzsf#Ba<^}t+3`W3*wa55~;546rd z+GcmjNon*GN?~}c2DaBQ54fmpNx#qboc#(QPVhgJPf7L^_Wx0Xd^`O3-^@9I*cM+5 zC_Yq3ptLIh*_HY04e&fQ^^BQTohb{B{s+?1>{%1Kc9p6aohJy}4l1l$*VGm@a0Dp~ zHie&1{-hNu?U(=dJem%SrG+a+kjekC6?Sf@C2!6(_Os$c!Un`o6EX{Y7#u%9|TxyX+7R=_lFUO(SSaJ(;|NaQmRa%D&w618wh zCY`#G%kVd&6RtDHcgf#4Un8au0xZWUb)K(GV%CM*q|~LIQ7w241>CK$?UN7^eg%|- zG{4#VnuN~`lED#c;|kapv~~r~8`(=Qk>QC>6|{lL@4;qU%e(u7alcf;w-RYi%^VJM zC$(_HbWZ>SxF4N=8kyuPntGS8u+#dj?~jIk&-;33gw?WiDTFZP)K|-#O%;VVbSn8< zWjO5$3Op66@8WL0^Avbs5pBKf9ps-h6#ZCo_l^3L$BNDurv|fzIffB(VAGxUnqs)4_Yg&Z(OEt|7H4mn zGdGdkfyT`8(xMt=J>)rQ=dPCrPLaTw2XU|WK;GjzK5m2Z(+IAjuIiLAc#_gT#H9lG zwXEe=%V8V=6F1 z-yA;r8gw`8NmF_1oXfwkssX|pk&biiP$#Ip0)7;K0{@}s7!E#AvB$PYW6BtyURF&# zDxqb#*~W|E>xop)CFbRRR5AVaYS#86!%|;lO8tDz{E-}p$pY%%O>UJj=mm5#l#Ues ziz)HfeNBHoWv`sr(h$N6_cU#oXMW042~uU5 z!PXhERFX8_S>ghau#`gFL|2ou*PnhMd#GFbySe=~ZZ=TThi|+cHJ|5|ycUW&+RcI! zczS$^ed`1#DSzY#)g;V&A1XR?p%?pJh}Zg#=|4aD0@R@0Tw(;W)mM)I(RI&V+6*?D zQNji7O6@tpjK_2;-q1>QOZ^ZR!8j7!I}(uZkyaFfDp#}CwFcB5<`JF&4a>7iPy3OU zGEGt*xKzz90wt6O5RP3GN};wNoxrOxU)QjrltrE*`fmd!jffIM!mWV2ty{AX)m<95 zEiii?WG^vBSWXA?_)`3JT!Fn6O30F8RPy^7-OYS$TRqpj&-!r#|8%b8;MonztXGxh zS^|%feD*&(z&ClBU7U3^`kRmn^Qh-RtF-b{k5L)=$I*@HRk-=aV?yJMuKm>#9J3b7 zTh>)U*fz-VKn83Gw*oK40;+Lc?vWc~GGFryuXCtA;{U1y+lH>04l6#eC}Ta=Bxe(iIc+ZLlq4qx0vU274*cb_ccklDCj*|{+Svl*w#)%atjlS zo~B8xCtLOjg+_IXYg{S&zgION3JiFhJ9dRT#VeKvbwaH|=z9cxv(Q1eG8B#I*Z-!Z zeWm)(heSI8%|XlO%cKPZ^2Pc?@3QL6r9?ja|8#1pRcFpiubHW_)ewJow}GI{ zLAqmakG5o;cN90{_(%A9)I91uV%o!xKIU&J+c7jc$zjA~Fc$wHRPbTEaIlnF{%LKJ zqICAS5=Z7sqZQrn-OyRvLi^;I=}KQ{rDBuT?TFP6n<_D84`wBhx|Fa1r5hF6*1*w$ z_fNnZDCBsYhneiODtBv7^$j}VzG?9LwG$-e_#6c(Y}&5*wRY2=>5qPZ@_sASf*WJi z!@D2-TTK1l5cPmUZ5tk^q73!!+xeU2VmaDh(!jxoIEXlI;&fN4Z>d~i8A+)tVMEK= z6gUj%$XMcYI2@N3YOu$7L~Eh*-;U`q5zQ(j5$5^!6eDR<7B@dhpzZrFv&GXo$q89F z^17ii6%k8pp8?r0kHYC+Kgf|kPy}ZsEQCL1qpPhN=2(2g?HvlKyA$)Tk6DLf1^BfO zqCtMPBvE}%`~JgRsQOccTLCBvo98ZREa;H6=@=nNaPKmif%A2x%~1X|`;3=OVb;vo z%qz&BJv2M)p^dSd*-D%M<(dyNE7lVru*MWBLqAHEHE^{R;pU(ZVAqIlZn)Qcd45Bz z_D2e-*q%lw_`1qW?n^PW=@SG=SIJGiirU*a!;Pnj zV5W9rz3~WMTiRU6Eos^iVfMN}Yp5$aztxI*Gg(U#SCin@ie>et&~?x4zHDhNW8VO8 zazVad!7F!>I)!Fbi449zrGRY(iks_l)0ag&-t+g#jaLy`72!<;(*>Dy)w}r;q)sDA z#+Bm05xC6b7VYk%le_!pgP1m7sn6V}OLP|8cZ_e=xtvy}^`K)#@!@Q-Oi;eL<4e_g zapa9zv54g*}W%tTn$1&JHuw|+v1VB?Kg0fWKy!!vPl?;0PfSOe~Q+mo$} z=v6K!I*Q5!<5H;`#%oJj6PpDYEbKS_J^EHRttJp$K{VyOol%*?!*N+;fqzjLRvdav;hM_q??$aqai>`8Ly3qk;Hv zH)}%H!S+(JEyfl>HHAlAyLKp1(7t_0?T#rLY9> zR+y0AFg7gX$#Zei*wFOa1Sf`ox!2p;kf)gP2IOguzjXXw1k#hBL0r;9th06LX=Y`W zv2Z-on;ZCL_q;LKlAofklJbOO+BrW<_1v}Dec96_QkrnoC}_Dq{j!`-_4(yWBr;_ZxI0V%HJgQeTKS>(M{;~|H{OCZSV zTi_FYP~{j)-B;Fm+;$dUtPk>eNX&v7Ydw#*MLUCTv0tn3?RZ+~U>=>Y`n7X7uZthb zo+1Iad#Iw4s$G^MA_LKof!Iak3ak8Ls~~ugQaXGudFw>6rc_|o8^zb&`T!x3mPnVf z7z0DF^(%nN6U;!S)S?U$Jh6WEO8R5z6zTLXRA0M7M>ob&t;0C}WUO9j5IKL^WOZ@e zN9~Zh07F=pz@7}cWwP0o{Vp-w*W#iQNr1#gLuNj(fk;B*Ades}NEtooSi*~yW35MC zQF35a?N_jvEvDON_C6x0I!uXF2S{hNtXX}1+bIL*K*z?8P?~AtX9R{-y*7A4{k%Ui15mJUmipk z^26>m`rD-R?NZ}cJQYh{Ip%JYh?b19%b$AAT6eG;p#`-(;~&>8V-oLGV^)SppFD8_s#U5JmGLoid`nZCwuiu* z>q>QBH!+3$qp*g0?dj&s+Q%ee;O!UxxqQlYwlx0A6kC-gJ^yfH zMo9*!maK(Y$KVd9VR-{qnjrWY#O`+{d&Y2M0RpK=*2X!? zL*JT{;#5$dNNz-qmbN8~MkjsZDkOhepUCK0u9KxPO8;ZC3{V(F-yfs`My>+7yh?Uq zgCJ!*!bpw}=`$*WPYog)=NU|Zz#E&y&E~{~NF2I`tKq1UiOo`t$JV*VlVBf2Z|dtq zt^)bKs!UiPoHINj;HapVORx{k@v*L*42y;PKkN|pLx)Zfgtnf6D1ep~GrN2~Wm`aw zyf^SU1P5suJ!3jGc*XSj-tTGZAAcVt2zH^k5|>e1C25UZrlKQJdeKB@?NM~u-ihKo>~K&B+@%DB{LrPjF6OMW61V1=0Tp^QqQjKB=t#$ z-t(8OQzQ*8Z$7^gu7}y{Np8}1Xt`-A{b2~U%U!>ypv0{=yg?`MmTf>s!P=RDZ}T#3 z%d(E5oj@C=ZA?d--3KRhVmESZCh_CPSNiDi%5Q6X##k!P8UAd`sh@0I(TUFSd%9oI z`fB>SI4OW+^n8wtbX2U!>nZu;N+yl5l9U(t!}1< zbDTHXHwTodiA`x(R1#bcKIA6(@0IxhTz`EpxD{Rpj)!AlONu+kPg*o41oz*YHkt1n z0q6Vg_X6N`D;W5Vj}O|)87wd~z?N!uTvC1Y`{;0$m3hf={1RCokSV4OA1EoMk4Wr&HH$jg z_X|0{m&^+#98(A0`{hq&+BlYA!Pn6V>qD`%&8ZPOu-!MvJ6*lE4EA6h@vm8qORcor zzivEuG!QL}P#Sui##7~9u1b+KWLx1UVNcL)Eg3|28dzMhD?~c4IkRB03j67hwH|i%I&aSxlj$&5Na?9+@y+JEvU8tu$z=>sjOh!DU9#!R&H|)m zYvC)Ofuy`^^p6G#2(;Vr2#$q2;N%P6Iw4WI+Sn*Qk8yu~;70EID_jw7_dHZj?l67s zhwb)kmrpSoJu{V^E+Nl9iAD}Ge}eiX+TSTiD%pK&W5}6^yGdas>;3$_&%*DF;V@At*s39 zHGBfGSi9?QP2IKVlVJSF4o1(4M!&^;UfNuhYd|MeD5C-W9G$0G%g30YWi4iuOA~(5 zyF@>ulz@=z;V)9>@zl2l1u2_wIobNP$t4|`O*@_eFRLO*YZS0+H^sgu;2n4T=*!;& z>{BvEAz%w{=N&E~*`klH$r8#GJ959Qo0!-iOf7}yf&k#|T6%vh&t#_gUa+97Euls2 zfvNaA-(KhJK!0^4%>eIujfJCW!8k1Zj=r5}Jv?eO;o~H~YR~&lU$c3lA%#+J=tEZ9 zpIN{kL&q#<49e-AWiRF9tLg9FA%-ZNWLZXo{YphSZT%r5WvX0(yT$tXvYAeuc+vEo`aVpW;cYmE*PR=@bI7sVq zr5dWB6B9BkmNRd*-2P30y+yrm;Tbay?X&Ng>+DF9=j7ju4t=mYUP`Vo(p^eryVK7{ z1`A1HQgT${cDfPko@-h^Q)6~~`hk-=#W1fm&3{Hc6|cwGnw->>BKkH18=h&io*mrr zto7{M+tgGcnt1xwuG$LE{#oLVmqn`Da|2xR^Sj0?;%<%(9`z0Iga;}r+5+O5x*a+i zK>76^O!G#Hl;zc$3bYaDCUZ-K9DWw>jHQjkT=JqD1x!LM=BN?uH=eS3 zOy%d|LEb7;!vsGXVX+%_FvMr>r&$h;jc~`~Y1HB2WEAVb_kj?{Sv5%m7vPrBXdvxS zpr`@?t%dul*_=v>@*v!+!=73GY2g$}w2SsNOBSte_MIUobHk9Fa80RFK${0}ad`9|n||8rqtjJ3TS)M) zNqbL^?Ms8#X+6vnyH_zIOCDfu9$PEKS88JC)-4S<$`)t>bo^Qmwj*He2T!?&)sSV} zDhV-yvLZ<=z4P{zeU%BNj>+!@k%r_cM5D>{@Qy=*H+{I=A8?E@S#YTE;Bam)4_yb( z9HYFSc1Q8B0QDp}GGh}LylNwBEBcCPT6nk63IvefC#T(H^{w;c9o$0KjB!2-puFv) zer4ZNyD6+ay?GTJWiij~=p{dX#$jM9AXW-j_I>3j+W>o?#QXc2Y0P9eb2X@l1ciIl zT0=XdtJi5p((*Kl%c(X;Rqp|84vt5I1ImqTPlkUV)a@#>YWO#n_MIvL+cOxu}Yy&vW7&d2|#|E+tpL{rBm|4N*m1maL!Bb^a|?5e8Tz+g+2!cEt!?*oIKzwUT&Awc2eK6T5G1ys&Q zl80;d?pWR>)MT&B11TKF>H{;RSV)Qn3I6|~=_;eDY=bS`EzP038xNh*AfR-E#GyL{ z=@2*|UD6>90@95fxPs}s3XYV~PZ;4}d+*bxW_7!tpAy*7L z5e{q?tD9hjG>G?VRAh6VV zjgR2XXQlwUjlR)H8hx!stRyU&RbM}dc9nq|1{z#&R9wJKkEY%l=Dc@o;oGV~#%(M# zVcBJVUma1ZHf|y#)DRR3%tj8}&+o6=@sXq}*<@H&Rz}aCKE{4e7NDW%^-0VpKzz7e zd%JOugY5sh#TwHnEI&rf)QQYVTj^tSwmFaL*@HfAX{qR$k@{^fxwPJrgtU1#FYPaNbn=TP`^N$y~h+?wcq z_^*f5U-$O}`g`7t756XR^FEzVs9-4^1XvT-{YwaHG+)_n#rIYiSHV5 zUfpn8_so*3Y)xnl#0NW^EpCj0F}9 zFP0u7Lj!IXuS#$r3CrdbhR5LIz@cQYN&Va|mq;i;ijDt<%CEz=7^=h?_qV;frVIP* zW)%;jGaYV#sMx*KfUdtUk1+2o_JcTNV!;d!2O)w4-_-B-9Niu0uCA}{FeyqKbtW@6 z*CbA`)BEei&ButDge@2pzp}H7sIt}MaaAB|S75vGvrAhOHj#rCTV5V_0FpEwdw4R& z>qlVrj(NL%31RmV;dFvo@f`tYX2I%>tIsc!mMu1n;KM^w8ym}&E6Y|5b{s1+M;d)Z z^OJ0N2^*FLpI2UlA;4-!aP zq|O+U3ID-*yPceRWm0&5;ytt2{Dqixe;nfmqA-vig`yF>T650r{4e-fPqLh6tgdsFh+S2xM95pUp>YH;yZl2AS0!3k z%^2f(Cy<}IJ{fOaxP5NN^O(}XOU!(oU}X2c^(ls;3X*USwGn#C%DZ2Q*6Zp|e#cMFq%u{dF2(YInKX$xzP9;;w9Qn8bDjxRpt65Fopo-u{GNs76e zRv5q$4Qpr3{ zUG(=B8sOkMyLf}^-^SVM!j6QlN1<#4krQMWpnXm8$008HRT?}u9n>rolyjMUS;0?x z%;j9&U3x@m;EAbD$%OJod?&nnT#f3l;4Ec9lK7ZThh}tiEbjvPr>w^u%L~Too6hoskGwmYqi+GPwI#=G$ZWUxo`2pxt5ND zP>SHi7J?UeO|iU-Wb`pUv`FRX4qjl?L!bDWgp5^~NK4e96!`D5 zP}BPlVYKd8Z+c6?2+PFlR!7<`{0L2b^{!+Y|S0;f-5l=8&` z**PjemM5fDeNxp|PEP6Gn}#!v@AITY>a734C}3a@R6Pp`?)`#SrVL8TSI!n!UNT6* zDqqocEhJ&p$I5nPHTpn+PN%N%C1dw%Aw^=xq6C3tgbTOO{s^ke7w>mC+K~ zac9{JTW8dl8`cNp=D!Pl#hKP!J4s56VY-x-s%*&>q{+JB9ubhc!Sbys*>%FEd3>Ql zbX%Egmq@Xju2O?_ovn253r*CHRw{xomqzNQM6w3=3Mm#Fv_rhe2rH z1{kY)uiKr{C9-D&1RdEB0p;w`U>S$yHzn@XG|DF?H+MocwG*AtHY;8hOf{(;iFc`VT(_fD;qaVS*O7ZtTWtuepUArj7#?KgIId+jfM>YmCM;>os3ID*3 zdZ%r;;65F`s?@Mh&9yUahoZ z6TzohlG!x_X?X>Bz=IO}F~m6kk(!aHy2b`9a+J4>Js93-VO!NB+;^@?f_m==+<<%^ zQaxBfUx;4A)MUI{xUb$uoS=?845<>Ex%v-DEeNLpw54bu*uEUgWgjDrZDdWp@OP`; zfv@ab=*wO8@ocK*k3;^CgQMpJ@yulccvB(8PjApP*xp&RK?=WO8LAJ`! z-?#9nytUbfwAS%kp<-tys1lEQf)U#1>bCOpDG)RC3A9J@D!JI9$a3T7PeKED=ieH& z{_g;Ev#~wxfOBZV?I9MS+2Ut6lrvG85~PHk&4^)%xu?&%zR=R|&1s_2+&&SU1FHlb z3cX_)?kSJaf(HyRDKhy%zQyMSKV9)0pkdmI>vY;Qm%t{}ctK3JT=d0+$o#4+@gk^lBv12a&|Q25fwVXGbPHu> z{oP5qIhGZA?;AO+ei#gdjRN9eiu`+bbLd3ypt+)sZT&8v|9FNB!t0g*WK-L%$-9=3 z9!}E&s7>!CvNpGPv?@ZI09O1`^M~o?UrfdFWwAcjf?o_-){V>0WFz}bFXOYR`NH+z zYyvlM{e=NJq7O;QfDRf{+>mU#|25&If+=a4NpMe|AORsxgZ5_?ilx9hU`bFD1>?^p zNgs1NI&M@<)_WDw{j*1!qVqIQ@@(>S!rs#oJ>SKXvhNm1=H45v*#PRjxf4LjnkcH2 zM2+D$gBfzdS8Oe@Q@0Oytw7F(Fg5ad*#vPo)6{)IXyDL1no4F#$x_-v9Dy|{$R#r| zd4>REuy@EDowpgAz&HWD#knBJy(%urLGeT(gvO3;ge|$ad(N{R_)3H?SHhlqZSbPT z$!Q~A1lPx|9LJ$NNd+WtH|<1A8(;nk_pB3a#VuaA3;U=xNhR{8%(g_?GB{W-sL?a9*#faWmzjx zvBa0VJ#a`M#eIAqf^fc*{OF)b&64tRwTren$*W4(a=H*TQa74NB_?I+PIw1E>p^)&UfOIUW z6gAR{BVx~Q=kN57$51RkpDySbkr7tugMg)oF4rIyOEJWgYm@PR z*EKn2Mg~M#n5rGz_1jwGv^f)}+dPV_WptMbMh$^&mYDDejon|4(qn z26-Qp)V4?#(*DBP9Cna7#z|r^o_(@#BK6uPjTdDu@<6)R&0a*hIker#BjR|TyyFVma2&h**R0~ujSigJ0 zhQLk$WK54G4#x5Sp74{j@75WICaiZ%O&mG~{QL)=pCf5)XtME6IG8~FR!dSUo-EVv zvA~KlGUH11uQo9J%;l`tMe`Nn3C75na~rp!6--c~c}4DSo}C^&Y42adiXE#Q*OKt- zob=`+6sr4N=$8gB#HAJ_E{!KgIl6}oFai6xy8@&<@RKj?=F?NtE04B~&_HVe<@1fc zWR&=C&YT4TpN*tg)vUrk{dQL8Q?>Es^lv){|8z(#oIyXk*f|LxUVQiW046J!A9=fH zdDz=D-wi}+$7&Q3hYGOjHw@U(%A#DdpJaMPpLL|lt_E7pl##J8;xt*OT*;uaIJt=Mktr84*zZgrPgLQ00%?&7c>P{{U#-BB zxn>SSEw!wK;oaO_IA^Pe;zy@V)Mw8%8mWmW&~GV+6z}Aln-&Us?xF%E2Rt$tF4`J} zcEV>M5n?sK^Y6Xf>+p}e@7ek^`UdCz=6znHug>@QVRrYHj7@53yb7WC zL;t-wTY#?G14>7`WUdsVDN!BJ*kx+&Nf!iK*MsW8FfMex+yrawV|)&Stn9XmL(&wD zeJ{l9Y>$oB@xoiNl?|}ipS((j-(A#(Bz4~_dwsGC0P@5aXO-pcujNEU`xv~Ytd+?! zZ<`a>ydA#L@}1*<4k>sMIP2~a<-tKT<3~2hO4u0bCJExX<~BbmJB#@;yy_+gi-y7p z?ApSWtAdpg-xc##3H&-X+IB<9MdU&R4RmMx_4X81uqCxgnU(jLDEgrrq6(B3IN;p^ z9T!0j6%A?j*SIOWzor~N$>OG~4t^ZhB*L5 zBw8zHJSp2hwnPGi0f=dyzYf@ZXb)&2=X&4T7Xf(C%W~`jH}+g{7Cel4BZRe|4Hv@V z7L-OHB@f?scn%R#^KL{jH{915j5^lY%hXWb(On%=yE_h%U8TIij-AwHi@QpCRt6Xh zWr}rzg$4er`()qi$@71Yx3q!(4)*K0A~sy0V$7(-Q!9_)j1OROMtBwbfW!7_mA`Fk zosbkO`^+t_!S$8Bb8}e!{+vj`_QhG7LcI{QA2E=* zSo%_b!`6CLhZGG;q%kojPLg?8WdVv9rYot79Q*p8IXErz-r+SSjAsh=2hmgjpT;T& za8D8d#KmC@9)YedzmdtfEe}h64d=yfI56_w=n&I=2e8z zDhgu^wu{6lTR3IS6DpHO=HbUXVXZP(GwE&%EHDn)rt$)l!-)@8n;@DVa@7{qsFH10 z*rmNK+~x2}X}$8=t^tJ2jUFxJmxjbif~Tj|FiJ54Y|;`>W}`2X6%<*x5R=z9l!hNN zkYt-GMnW1#aCGv6>T5@X5(w0wNr(V3;5sJ#UfKE#et~x^7u47OejRu+9{8|uZP#`V zMlLQUpKCi@X{o@1H;bA0mT(A>v>vLyh938)*#Q*}F&TMlhLLi`v7&TIptsMvCzF0CC8Y%}1=tVyFXJi+1qI3? zNXvV8Odh&hpb6BnYxk*(VKHcbh~kYf;qDz$A|WApRiTYfZDWofQ+H0k>y~%S1B$?! za(rF>M#Y_MbmDF_OsvTm1v|ph3aLt|jE7}jVQ@HEo;FUlT%B$Y_w_O#i_-*utw+uT z9kfMbki&F8b;NGSn2nHy`2Zd~iWa37C@=%Z<^Erf(w_>DeOz26@BdgwpM%5qgnz9$ zOQVs$EAUO8PFLq=Dc(3&Jl*+!FMvRLp&#>npvwD}RFsw}$>D&G*et97 zU>xt)-ck#qAwmVJ-R{J9INW4vV@A)Rgva32))2o>bG&`C88hqUr= z&ht5J$>aUDVQZA8v&OL)+S&!cq_{^6~XV-o_(JdVm8n*a=gUY2y(A zg4+o@jgC0;B8jS7x_i>mhY3VX?)ru#k_OFU8OYKrD;g&$oS$X#*5bdEFox5;Qem86 zZ+7CR-BpGp7fb0YE0*OYM7F*zCG)D_77#KV;){z>9=kCNKi}sVGD^PG6VY{cw)-#>_`UH zhnN?Hgw-cwslk%WZWNJ=7WbH`QbHPQ==h^Q&d&%^(X*0|_%OTSlUvT5n+6Le`GT+K zNH3^J;|nK&3JtYJBxFZ6+VgM(REi&Q0L-kf$Hxxy+>pvEX9#GZPmRzbe?vQI_t%B$ z@5aMcYSu#p$-B-NFHxz|t-`sB z4PU6|R2*+aM+e%c$3t|WAX)Mar3MB7nf&?R0#V@I2A=tTfLD8$m&8}~AQNtx98CMg za2b|=uBG0Zia z9!)GPA9G>H1%$Ka4V1HAi|CxOktloK*u(-r&qEk4m8z|n=*G%8>%EFpXdAIN;U7Po zBO<;kt*vx*@9ytE2Z8p`^jz+V`z25f%A@IJ!!y&uG$$QM>T0Ikf)}_H7Ur4!h1(jS1Cf_!B_x@i^wwCD$%&p*~^wtS1x=;WBj?KmTuLEww^IscDY5@)A%?FXFswGAn zxEsWX)I&X1;ri&=lGxgvc~QG;`20Q%F5WaV19)bP#;7bDerTKcnl!+QH}$R?rzxam zBzWZ_ic%rkT(=>*qsJ<1)pTAvQ;t^YJQYh!-K_0GMmw zwdYg9hy7$`OlUj_F7Cbd#2P0v>0B|q+w=C40T9;tO;v~6*>{1H29^uOem^*SPP0bi z2;C|_zAy(jUAG(BndV^~SO6~xxdQfJp#PJbd#zg;FNc6Sz0RQ^4&}_(i>;xwy4?|d zXSeXrsuHGF3pV?I$4oLHR^;NqKJb=9wa8z;=1svN=qEm#R8QB}*?9OE5-5pcS;>38 zn-B0|E?}5Tdbca-&F!+!qaUvM{^ByMDWJjNKl-Vh0ic{Lz^deAkp*}F#RgQdNvC_v zX!)EyGaKfRQ_*>ZKbJ=9K%+|?2>$31u_RRY13_om3J?=@OFo<#^1w~dqu4?Zjm(L5 zzrD|tI%tK}?xfT7SgDUb%52cM*h%U}NG{EBg*MaO&NaC>sX(*ZRh21jiHykrS>Ra4 z9>^h`1YeucLcXOjuudI+o=C-Kv)T304IfZ39kf z04RYdJ##v3EIxr-L6KW+r#LPjS310lc3Qq&KLDww>uCuF(15Kji#Bb?TanZ_=ck|6 z^bP{qieI2@`F0`y?2qV1!dkC@t@exgqknvG+y+>|edk>Ioo|@Z$bAtJbhZ&FBWX=6 zj^CFBRTyn(+q*L(7mo>R-OMcrV`X|f;$X%J&*1<_%Yjmx@e9Mwu#*;gNUcI5;o#*T zNu)1}9DOe779wNw-;?jSy6gagxr8yXsQamtmAgUvg7^&;zwS^vChfn%Pup-$RQJK4wl+?=FOdwaRUPb1Nm!AQpz6cPzAK`6^==GML>hi%*MLaB zbhic@bcBe7S(Po$X-rxQtE8Wcctm_bI=^lY@hkSRmI&9i@=j$HU4EYnNXY&RJCTd= zq$e!^YJ|#_Ed-RQjCADi`u&ou=9ryE1UP|OR9#~k3pAZzu)41Hb*&n++_VRg=f= zn>Rjln=HvP?b|_@TKP9>0SlHcq^Vp~W8pxSI4@|_hxgUZkddbwS~!(XGw<41zmbCr za5H^Lkc@9Mr>w(hexOyU(cA*a9Y9z13zjXlFy=9|H)byn{ZxE6}=!?oBn8=kvx$J#dqLy^M8 z+!du^WezW{+AaJ5MG%oZrDTNe{QCYB%tvQu8I!*3uQpZua+@NbWoXpOE@`A4UTLvi z-SYxvvyfwFzL`5lW__1w;Q6m)8o=Bhc69-L_n$ec-|dSv$DooKtWfFiXA_j5hNO&K+x=d<$1#ky_aWf(p>UC8L}(r){MNGinn@T36xlv?$SLTO zVoyMf4uF*8cD!`MKk6^$4lY3QOe~Vi@pg4@<>YEdbbINnWe9< z=hY`D&fDEb(c$Xfcuc9=Up{Hz9z``f+ExZ5RxISX%k&`ysKm*S1gd_!zu~SdG?Mm^&5-9Ru%}k-4(W)H>s$o&j8$$0RZ`mI9>sZN+?eR zj0~H%Ymqu%_27Ufwf5{1HDl9ZuzP%a3d3xx1&~2@&WWBVj;0cOhC$Y_a;Y*e91Ol@ zj_f__Opl`pqzGV|3qSIqAg!QriJCkz+BlN@x+RlWVG&MT+BTcxm~>0vqQ9xT8K*ilv$bK9OOKDziz$TpQ6 zG6_yj2tHA=KM<%GeZbh#qOTU%?R{|9u+1*Tc+OEWDk7gLH?f&l8m!|eU9Y4SENbcp zRU!hkLEIjEeh_ZiK$~1}Cb@X*%(B}QQwtZN@YV~`Oc&rROCprUGmM`fn7caU4#0|x zo?D{~qXNXPU(3$=j~&WvAMbedeQ<8YP&-UMSaIiCGg=dFKfTe>>E0aOo}ZOAg6|r@ zuql(_671BLU~f2Jx>+{b3^2&`nRE;O%INuLgn@=)veqxK{_FaQ3z-Xfl{0LVZ1EV1zQx?4ldMai*1302%R1`oPS-wq0{J! z?Ooo891z=ofyO~wNim-$1!x?s%!efa=Lhmm8UPVik{B4r$K_qbQQO+^L3@ybq)u$% z(`z~ql_$^s1T9C4YSApvW&>)-+NWQ;zdVIoMe`fa%h_herf(@R+@CM?YW@T_8rP#Y z4yje2O9cFj`-&F#2}U640lMNyEAkYNm^2@>s&6x^QcL%5vqmMglxi}EwGaE z1kaZ>_7B(2%x{V7PUI*DNCO|v(X3c`zw4EN$xDF%JOaw3M2^l#q5TF$HJp_8n=zARl9zH{1P!O4z8Emh=f|sHE#24Nf^pc`Wofq=a=qe zMz)vz{0$l0xVZMYC>BD1bWNsf|C=9^t)B-RQ((w1CuTw*leFppNQ)vW8Dpru+cw*R zPw7-eg;3uK*aBW&QydpIPZ= zroitMs%X(e08HR88JQ`xao0p{LGo)F_C%Q zD`$&_T(Nf{Y=9%%o#mQwothBZa3|+yXA(JWqyoVKR-iw&bRFL}VZ>xMS0cW4Ou_4-+pWT?HC$&9sF zlZ$kFT(}R&%hoekGGfQzqFI*De}2QOKJ+MK=s7N!?D1f)^HsdX8!Q^ou0H#2_4XRl zf^~HBD@)GSU1BwJRhbKw4z;mu6pW}&|HCb_an`yLv+N57|8CvnY|Hp`z5B0PvkaB> zh~DeyOmiM;uaD!CUht8;&7-5GSj|mom{z-_*feS6;RpcuqcA|g?{8wgz&LN0%1KEd zcN;As6RrZ%0LQyj0^PKCcR8UQk2f>70omrxU4RQt3bdyKb(P@e`D(p?T@YC{=QM(5 zJTac;p~>p^{83#+?`P;|jvr-N+VY@pNt$J@pv-ATc9QUnI3K#q4)YWtwcZ}03>7K%l)(VxQ zycIx{8L!>rZ!o%a@*pMN-yY6$+RIS2`!Ef5EWOtRWm z)jcp*dmJ+or62&E-R0o;_@cSg2z(-=K&?_(g#2T5@eg~soYowr_^hJ}>jA80MM+{_ z+X8(Q@im95tPeVnSd7-+Va6YEKqw%}g^!~?!>=jFN2%lak9>AHvoPKnP-DhHl*TzM z+P-K>qlH(DuyS!TCtO)Y)1Vc!G+uGQo}cc?pRd;@HpHh|w!t9H{T^3v(MLbeuw-&2 zEsjpyYY-qtT-?jCUIw-vHY<|qsCRE-p>d?tLRPcU1ge6P@M^87F7Nn0qs0Yjv(bFh zzefkTe?1(=7C~>(roD=}B~>kza$Dyhi3A#4`v#TB`EG6btWUjE5~zTUu`kHb{VEVT zU&Z5v6#*%BO`_n9u^^6el(mmr3p}(G8PZ4%$$(38VJAgSJy8ZJf0H$c1uE8sQ1rAku^sab*-CPrMrL?*;uJaL1B zQ5*WGwDQRy>Lc34_64b{T|h=4T&NHOJ5@G=bFQq=ycV}9(Fm)@ouPiOb)I$bhr2^) z=$>ZB=3MT9FP5aIaGgxjLgZ*&Af1fJu*Sv2pqCKy zq4rI_7)9)%jI473dyA3N2S{jrr8XC~Rrs(LqSuQ|b#4g6HlMap#Z#0I2C{jT5zBsd zjc$$Dr!UTyv}?~;9|%~ukdum)1s`S`VU7&!b-PX;z1LxNKStjy^Dv5_76H{5jA7_f z_rV?g!;)O3ij);0uIo{K5&W>vH!Nf*5P@?e$}d;_))x0r&T@gTKRAm3Jfa!5{6~{E zN0n}bO<#E0Z}-QrN+a|Q3;0G;h5W_TO`!_Fo{8`=jTSl@&Kg(Yk2`a%x(<8~&+Et+ zs||aH1{>&+gk4hA-|ZAoyC<=4Cnw2>xk4qeg>lj*eb!?z5uCEkC>MGnRn3)8v@AmL zWB^&e{gY&`N8(fvP`4^cfj+~QN1^Rlk`>L^J`P}ezUbn;U9nXzOBltpeLP#O+Y>(H zKyKO7S6YnyWKttz*~nMgi0_zQyf(MpqOFX$1oi0^L^PakWDS?64XU-)q%o74up%|U z=-I{cA$H?;5`4$9&h##Mq4NWP-GV2`J8;U7{N&5TT<Uk5s;1rv*_jI=9+%Uh1qWwpFffR}BfeY>GntuaaN zb8y+OB>Qq^Us)$3@iyxkj3Zt<{`P^5!o*Cu4M3&%h}wh%hpMS5U`gt&1yg6mb~?b; z<~popCZL>9vQu?-`nQC)xjUl@L5S0?JK2Y$D#SZj{&On%A7X1R(`~ zMFxb;Vf%-ulvlM5f0*(SeXtE`>0%hY2}U@Vqu2#D`JzGHO=kJR=vnAe^E?}?+uizH zCys#{Ni5h#R`1o{h(RgiH()pl-3zC`ZUZ6~IDdaD%%Gua8)~)$X9Kp{kaKWxxFpaw zk^@dcp9cXFVmNz*#CiGmhTF!Qtt(4w+<>n&H}<&vjTw5CCZt=(N`F0lG_&=*8Godq z(Upf{*UC7{$Zng!R&brrwnd7L>iLo~ZG*-vE_SY&0d<_s1&>G0seVGCYckGrpFs#S z7jeQ6#AUjM78)8PZ41~Ti8cB$`bdkW)5rJ#*$T)(ap*70(IP|ulp?WDbulzPMhabk zn2y)h#2ECJevHkd72_e8QMdZA`_>U%4?}BO!K1sf@Gl!xvRc-y^yDb>7IdUiBuKes zB@T*0zFc`KCSCObP96C8)p!_6wOgi0s@e;hKk8&7a``$l@Kq0#i|D)r;5P%#$#(f&{xd*)sz7Lnh~Fk;oOpOndu3c}wedtKd-&W)H;_yr7?);e#s0xyi^sAeA4o z9U%JVVrYNd0rI~w`8{~_;dgE;h?zFDEsR}TF|IPWCLJq&WJv@kV{ZMSMj9uZD7`YB z)!dFx(Ezb|m?-?_RSb6~XkEYm^~K84$!-osT@H|ItE)=@>Yp47xCm^z3ATRMCl*wK zJ*@0y{TjtGV!OHl(n{glWIEJ&<^@k8Tsy8jseNV`0Hb5uwX3 zC-64CCd-cIyK2rG1~dGTViu(88tZgbEe%g(;8j>BmN1qid6dD<(g`H2Rm9pJsm=A2 z;8pC*-plT)PFMn_HheveI(1nf??IW;PO+HY?UdrcMpD0C-VtX^#wCxpVBvZ#cu=f> zpek{YH?Ic13uE|L?i6@mVPYIJQ^Cx;Qxoxvr;bott6{ak%)=Xwcm`G%SKgA~mk=;3 zSEd`GN^`blkF?te5JgO9ES6I0(0H0J*{c2%tj2CUvatGN;zI2rIPK^ASJpM4hs|7+J0TDbnqAJ(HSibs~gf!j*r7`wW8ba77fzzr;m^X zs*6bJB)^4gD^*{h?5#ap@O#qy#`n8hxNQLnJ}Xg=`F(icZ;s<)IAkS^0VE8WHat=1 zPY!bb+2oN4i={GCqv)LTr`wAoat)0>PKg}i0`2T@kvyHMUZo>YvL=ipr1N<>1-1S< z!VhkBSHoNgg-((FUJOwAtZx3g6mY`WA}rq``-&OYfr3;SM6uAjQ2jH|EUb-bpQQW? zp8w_{M`3i2X9@X1x01u|qroj!3Wk{mo9al7=m+P#4L6!itO>dZCv10{1wnT{VeM%7 zg(&^#4I1Ao5?`R}wdi2M41OBJsxdj`W-`+k4cQSHA3A+PWoI{IbwmpDQWMqP`%$=P z-kqRg_MQ!}BswL}ua8EtQoSyA=XUT?s|(w_KA@r&Q5h8B4{U<9_fjz*5ZGsE`d-ntY;|Y+44?n4h?Ko^9zP*3xB{Zg|zY(u! zOEkNdxsn&mtE=PibJhG9$#*8X$B^IgNXK`amp=DMM^8ER`(MS(eo;GmmW7bqH76X0 z=e`$pZmYJX+GL?6ga&nd`t*Qlh2vA;gpn2bduw$uU|)E%MRk~f$rt1C;e5xhPlg^J zW37=)gt*Pj!}wjvorY!{4HaPfi35-Gf<`q{J^Eglm{(Sezzj#uZ7p{GJh}4n;-u?1 zv9i^|lEq)T#TtnYVt{E;MtqIEJIO-|)9xNi^N6fkd)#!NA^QWX4nD%%9J;X2#zH#(&2p?7bIJ1QNHW?K>H+oxZDJy4N9TDUHxQzz|i}*BH_#4Bqp2 zbk_g-g*0{PkBq;et#G%uBlJ`hB>H>Cn8Q^z>tE`~nXqLyv%((eRL92OtuMc5R0$8RzNIBr# z|D{ZfU;DkiVRPOJ>kQGG7G8xNyO=|y);7a)Vi;3T8F8AxQH8jjC?&6Zv0z9Jm&$7PMsd6XydoKQlHVXRk2gum(cdIb|^N=im~d1ES5jT#-FxLbIRu<`Ti1tK*V@zia3MqG!n*VLY)PX;U>>F| zpZgvN18ntP>)|(&yKK669tY9P8j(KyY#zt%iJZZsR#LFy`=D=;Ks=Hq`MfZu$J@Th zf2GX7aU40AkRcYNqS^#E=4fHaEV*Kd;xNM>($C9xC;k(v4;9LITXOt+*RoN#6_W+| zr92o%bo0Vrm74Q6+0w;Q1nY6NN%T4O>5J4WTPiN(_|TbPztf%$%A?XHuPbg@E&Zrj zQ0?sjm?+f&@))R*&Z)bQDm9(dMh(jdnzL?VmYr8J(s~#PuMvnjzn|z;d;yqH~DdQ6*6k_|6YL56-4)ZO+h^I9E1YnkCEHJiyAz3&% z&|Q+``2725X9%R!4EHP_6fKn#gS1W@0zsNExy z9NDsrVRD*F`ewphrh|`-=Z7brqU%6Inwk)0r6$l!^f~a)g>$NtHb&fzS%;H5NN~F| zGnG6k@#LG;%!ihJ%D`>^@Lb1NPCijKu2m3`kv z_|0>HDVWq0ffqdy2`7dNR{{YZPloO z8IX20!a+@^wCa(wfUGUG$WQaw{I8fM1KyDmw$?dtZ;k*={P{z+Jy4N#(wRybu_xP- z^@JPdSybR@8L&}+U*-B%|8vc*3NK2MzSYKI!Iq1MNRP~4T{sPGgyHFuMR(TzM@yrC zHXmaJl<0c+Z+5)kU*MX$~ng?(=^yc;}>3%WMWgVNVSRnS`6JeAw0XdULuir_7^qj(^6nv>gt$8lmJk2!%7x zIACBzB?j*29Q|LgDGn~KC?LfCo!eR=`Reo{Qv7U;_I2WXE?>Q1eg5;dIm?Ys3sE;? zpk2#nif?r^)w7HUnD}tbICyq3ie8>PgA}_E@*Uk{9cskE;EsH-IMY^hXIe4zFm}lk z5N(E%a1qtXbzF;u{`z_xpjWtm7E*(E*nDlKT??{-fO2%PzH6u29%9rX?`aul=a+QI8cUf$mok6I+oKu~n27l!jCp@A~?@C=A6qMV>>z%P3+d ziq=ifk+W09%B|WuWuRdi)AJxpd!V>+j~|5EevbY4Lld%|2?DDy0|h}c| z6SbtUxZ`y!Fmz)>4w+S(n2yZ(%%syxpvA&)*_#~w@|yb72VczkLpb9x(j8 zub(0rxd+>T!AI*qN5qkWZ}-PPX#qlHUMz1|z5-*|CyT-zf~vS$Ld>{9b2Q5JZksbo zl-vv_f6Qm~bnasSXaT;?fuh-4<9}44)4(WM6niuPyLi^o_9d#qrJY(?2u60mAI>N` zVKwg8MSICKo$_p|=wHW{|IvIieG#w4pARllW~I0eBxsKElI2rVX9)~$FlMLr$gn1m}ggCCwMNN^=sX|EY zcdCN_#GXyebZAh_DI+MYa1|Yxlt}>iQuL~4yk@Gy=6@4g_3k;CJ!LPIzvVd^4v1ne^M)IX<~c06N&De$vNEZTV0TxB||mTWPRz`P0{WuL6Q{EEPeq8%` zNz&G|lh_Xfyy{#r63Bqune=%BEWkw^d9sJf%cdHsXwd>fUddeE%D-w7YgpTpTDAgX z#rpi@d{l=+qkre3$7-g*604Gg-8?4a$~0zFuPZyS+&Pga0P`)+*$#BiaP?Re8&I_) zyb2Gx!+8CgACPE2%Sd5(QfI5YtSN>7iA&7claexIna}^k z*z1#rT+`u`pAy8?d1uA%@J&`dS}FfugBnqow`^VaX4RXGkQ7kIVBV8i+F!2ATIC4J7UnZa!i!6DC*A6)M6NutKp&k9 za1XKnL(^95}f24(Ucpx=Y}40SQT^n=9R2O1+2Q z|9QW_IcH|}?7j9{>&!&B?K1-HjFdhDnpoShty91o>)k8EAQV97Q20Wi!_fWj36~x? zW-ur8;b!~zGGEEC$Bg5@ON_(P-N$eFiQJL_y(&C zzb~)*zNW;1^tOKF?4`~w>C)D~B*pFy(C-~|VRXEZnX^;~ldpMKgi)e`LW&9(+0Oge zv7PUzk^nFGHMB?HGh5UQSSK}EjZIX4cV`x|vn=ETIk7IGk@1ai4)5VnYklk5K>uGd zz?s)T^lO-p2N7X_46q@u0DmytM4}-jTSJlKexW2P$K8|S0EZ&Ev5E19q@MAyM(b_!rcJh6BV`EhDn2oW1D%o3mMW;mIRLQXbSQ% zEQNGc0%0`83%K-`7=w%?1^)EZcw@z#X1UxaLUfTRGbSUrP)!m=QWZ?X5X}Ss z)050GABIi#D+W=5jP?@FBolB|iMWIt<^T&qM-&iK;Nvg?$xS*ct#AnZbW~FD@N^%` zBqw+KkvrbjN^>1oRkc4n{5jU`T5Ma*FTft7O_r9H|@XU01WBXI>?%=e>TMp|Z3-bSVi2~)i1 zQO!3V0OlZ37!MySLWAkPklDCPh^S6jsm6geFv;$4U^aBfEXm(Bnf#r;NZTim_cvq6 zID}mU0iwZ3ru!`Raz}g8tO%yZY-pFmXf!kvSpVqvmX*N{L2uo#4b7^pP9d@0ljf&I z393m`2hn)apXpIT(V%LLIXV$Yx`UbNC^RbA|a;*L9i z6558~Nu#+$?66$=ylhO@rNYo>3kp6`=jXr@knS-p=GxsItyMx%{erK*;W0-ZhnBhyM_t-Uq-ch*<=1c@()Jj+xMEc}`xr~i3Fa)SD*-65JlU4{aFU`n4+Yzcyc|(A(k6m?q<~n912%z1 z9?FM6=i*M1ZQwh{+?b*Ic( zOoD-1o!}LShi^lM&Z1m1J{D7-z@abDT8fTKl`(_vx*Ssp9Kpx_@O?Os;O$xQ=HKsM zV+YY+h>4bY$)UacU~}n%I6Lc$CcV9ahl$L7&ccH&nqhbEWwEq;5HZN1_%mK#1+v*e zYEX*oJnb?SfDaLAC%xo(O^x+zs8K=J)bP<@G-6}Z0!F|ZlqAxr^TT;m+hE-c%#7g z{g_GYboo#W8=^}#s#Gu?6cG#?--Dqd=>&SL%Z#q8GfL%Y#hV+ zay@Q$i0-lOv2D6VA@q(PnEI+poq%J?(3lJI_yoqGi)4^AFsUrJ(B2i_gU{=Up;F>q z0z%+TZ{y5jvrUSQq@$`Cu-p37Xb?4U8)rd~NId9z5+PxGMevB`He@Voc%R2X*(pIQ zbZ3Fm=KT}ZE0nk8JwA{|o=E-=<4d3F|A#+>2(98Xb~zAsIE-;+uoMf>3p)eVh-;NcRpR*(@4 zRAoasu{0UZ)I6qncVn$ATlg79#x)yaFGa+)#Y@wYRw8x`kRR6!8EHuR9fl6$dxx+i z!nzcMyZVCiSv?einAdZ&Yo|P|xkh_53VBxIBhIcog(t+%5w>Q;_ywGu4Z=bBi_Q#5 zB9*3uzv69URsxbl?ogM+EEnFTsQEQ4c|M_pBxx%~NI|!+srv*yg7_{v&MnlFX@-1_ za(b`PC(_gBNKPO`q!M{udrx)!50ibHV}=KB=RKv#V2ulwaKP zq3SgbL8zj}$^_-@(ZZZak`QOn3sRIpqFM#Hocsx{Y)dLMV61WP1;$R{MZEXBkqItd zLh^a(TvhI7NBSwi+j?PHNZo?Jy#gzegqaa3G-0me9v`vqOdwKb9=B{H z)L^@ny8$b(PD`zSE7D%fVW4x$b~6s!+soPJk;e+@J6F^z!w% zHBr4T8HRqb>#&@W2dULka1)zR(NP#MH7hSD!x3?|D=!i;w42w*He}Zpn;wMUDU0ao z{JIFL`{VEh8Rp17-t|=TU6R1ns7V0G77zi;>*wI{5N$2}LUaOk3ww(@u90>q-w4z^ zx@MQmqU&T%HGTQrq0K}FEZqsE=3t0$(^c3LO@j9wIP90!r`4A`VJV6gNiV7UL1xrrhSt z&!aCNg7;jD5=#eB?E1Eo5TH36Z@p{>$AK6PMjLGudH@{hG7&w!0tKL7x1#r-){ zYNuy!%Q70te-29m-#t7kb$N*X>qcnSy@3QxfI3|n*gjwEuXsQeM0LhY2ilp`)7peL z>WCfnAqNRJ%)eFp6($|FFQ{msfk=Ia&&i2n=kh~zf`oAYZMm!TqzSNF4KvdQ6j8<~ z{OfG{2mx%FgK~%hEBXN;R$iz~kvGQF*Lj4NGD42zhua|mnUp!DL=+1AA04>zE%~|` z!tf@^$5pMpZqLZaC#(4o?AL9D;c)S`P{PTM`=q+V=^sArTxu+cbKujD%Vtf8B5YdI0a!L}RQl-TA zVzFzAeCd2#!)Gbj;l`}Al}0`sbWDgc2BH4kk2tUlx3R8i%vi@sKgS5_Qpm|3p(z`P zN~blTPWFyC6WWpl>e3$300QX_uc&w%Byt7kISS%q-chIpAzq-fSxe}CrphOXEH~X# zwbQY}m(PP)%8+#Tn$7aP@ew1k7rG8Ma_3H;mdPUF>v$fs;;`n%pHMeoeG+#VP>Vx> zh`lmPYnIxE*}jMKf-03Fl$q1B(qVt1Q4e(-Qza2)-eyMSA@pH%?Ph69?W5Px#9Sng z4o1lvYQpGdfS8K?^PLWOu8H{LX&9%SFa|O(-b|EI93@BuG>Af%AI%?2Au#;+@8 zTHCM}jD+`w^&m#OdCT29^uDB(zGvvnDkBw!AGf5~AIrIuaVD(>1kgrGNe}7?&Bmeq zaL+E8I6_um@?s`Y>GgTGI$}L1*^cq=R!cXH*ITZyCV)7KbrWQN&^}@>?C}}veV_Q0yuNN9(R?MIVv#1J z2SFim>23Sg!nbb_n-St}=jYX+OIv2;! zfjJcKG8~a$S#5eY7ANS=wR*Kd?zLsC95n2FiMw01k-rK2;7y1xG)5Wt)zc^p-5l@% zbV6M^MU;U1S_qFi1c}6jB&8jX*(XovBx{a=POWZ7=#F&?_TIzrj;Jv@4kjSe^I&>) z;j@+6qE$b{%Q-eVvXg?~t9%+Pq8djyA=%(V z0^PMrH&Y9EZ$CldVzKbcmh&Dgn^k@GBC?arbKN$strjFw{qSmsoK>)~dx>!Q0KK9K z$P#?fXtOe{){3RUp<(H4nz(Wry+D|S;Wb!ndPg-*vCIdxQg*5r zCK42!p!*?Tiqh(aNG=4v#$(e*M*wXOuq#>ED=O3k8<>Ao?Fe~Qf<1iTC?|1=ymOh* z&P{JtcO(SKClS~P^ULzKX>^_qvEA7)RWpY_!;e-1Y%xRte_z`&*YYAvG8kQghpo)o zRkuYI_;~j9iWw)HfK>+e=}fH5&Ks*KqEPd9GB;^%4u~U!5F)f$kln|ni_I+QFu(ni z+EMQ>lRm3CA5cmViGLHL5AT%p)NNyxCvociV`*ok6UZL8@(xJ+$n|&sqJ6ZIv_UiOLjWgfd(U6#QM#2M2pPmz zl+}YT@O(qwkWMu(U{nhoC0~qkX&qw<{lq%H-v6l|D+b?!_R4?c8pn>;3cbfPeHFI< zg_JD2aN3Y0AcMWtuWkn&XjbKY5(uyv2NQ)Aci!;U0qt9r6_ssJQ6G1U=UbvW!*Sk{ zutKLe?>Ugs3;ovlI%14%?o;O)mw|$oMq?5bU;d7--bh$}ka5*Nb0T0O=Rp^kDFxiz zB7@-ud6Pm&5&L@m-}T5)Yo@kH(pYqEx@65!3>cplPik`^`E00iZNk~qVsAmOqyA1F z&zi_B3ZyTs03gAc%n2T>2yVZ8lWs%Gj(}?#Fh(0CoBdnO4!z&jd)}~YnedTiIM-G< zG{*RE{$CuwI{kPzv1>XblEdVpX^1?1r(N8Xu67_(r#fOGK@~ELXUQ?gisCN;TaJ9N zf987fGj3kSEDkvDEQk_$j)r)-GL{Cu$dk8Jv1#YBK17HfbUkXd-T*#`(Nk+AL0hF@ z?c`B!whByQFfJfve01kMP49?UlAa(u6jl{fi{(P=Uvp;TGN`c?h0VF|#PM2a(*z3~40&7%447Z+?)x`k^v(VxUR%04?wcMI5xgoP$O3u9Rc7Z2W**M13tq02Wz7 zO;szDyWbed-C=k)p8HjjJY_*Mx`r$uZ2ulgnS`w{4l5;^s*-wA79mxk9u14MEXyh4 z*KVP>rQZoNMVK;s`WSqDtC2&-ejSAt^TDKgyCnbjWzn6o1FB)wCC%RNWY)4eFy*Rr zlhaTxCi{iWQAf)5?m}|sk3NqoFL@_w_bFPPo>i^T&DvOnw^>A)^%5?HPhG_%4n~z` zD5oKvC<8P1`3lAwoecV|X=w7fl^o-Epo+nMtH(U3JapF`K81QH8nc+Tr?B3Cwooj8Dn8yS;K3qA2As(=2xNn1mj#kDA8`h39#fpuxv`HyIQ z@H`sOUYcy9l#zq3g}u1u06hLX?ZXQYo2kF35ww8ZyCr4z>Zdc8(}Z8ru{rW(myYoN z_X4ns;{w>SO2D#QV{;T{%T`SaG+{S)Nc|!P2V|rJid;M2mrM!Iz-^Qr*z?#yZ=?27 z_PnNqR2^7Mrv}^jT9)8d!iY{s~As9)JVms}&b!C87FzfFkS(@=RL|cyS;j$zr2t z2_p5BZX~Z8H)1l`pmYfp2R(1QEe$0&3x+=M$k+avW9oR`Inx43wxQF(k*gIH54iq4 z9-G%46BzKs1-+3at&*$$f4}uNUh(R;eEJF=AJLP*4NUScN&6MfTcXBngJ8ZXbJnX0 zJhopWnq1#ud)8bIAX1cck)i~cu^_S7hSHYG{PIwk-nSLWMN){M_N~`=>xzREB}9|r z(vBnpU{naJv{AW&k0$rNH(YD z+A#_FPRL7Jo+nUK6nIE8|*e}NU#WQTFX7%^Cqxjv-Pykd!{rzEU5g}n0^p-+l z8Mu-7=9vJ**!UZ*qGCAO?8Kek?l5I47nEfOe<-g}`LXZYA{)`foZ*p3&VQ-bw<&QA z?ucK)v7!)ylr`(}RvP#j8-;|FkPIBvY+P+j$1$r7sVvMN7D>bk;XR`kl8KF&909lL z1(69XfJ`SM9w=)^Ssw){3Yin34+2CRG`|YGDQ2|0_bMU%`$H=D!{zE@_>uw9mgtL(jZoqK$6|T zPc6YNob+^7#N!`VWDA1Vl^ZG>O2c03u^6QV~zeYtNkEMD6PnI9I-S(E$+ zDd~^H(PZ*Lzqd1PywlIFQ~MmSFl> z6Q59}e&^{Ae@2XU|IjO_NJ3e(7^`LtrgGjY|yf)=4OMi(#I5Wu330>T|EVIXZ z{6R8Ht(L~3N&Y|FzmGqNDE5r-YHt@28Yfp!%fEkO&<3(LrJ{k;sb9Y#YTWV-U3lI` z<1I6Pvu6#xG?EB7+h~X`i_M6Lz zw?&8Zckw%1!i~*Cx?$k|QXg^r zp}GB&dI;e+M|b+=gcVFzR5uU91J)gH|B_Cnpn`$LW6N7u2|&3nb&(%-BGfbO`p(`5 zz?ZrK(o_KviZCtwU54!6`~pqS#X>_Sz#QFZDAhId7C-5rdTnF9rWdLfMyYcmVTo>z zvN0dgJGkbg{HJL*$gfw08lo}?I68ab83RYT3{xnXDEsGUrUlAS`kXIZ~DjWTe9itX%xyMoCp;)P15rh&pBylj+ye zI94Bj#RjB_!@(hsJ@?PfkcBKoR^>hp>e93ucq>H}*jP#-pZZ!4kckcX&f21SK z#NW=>M|8K3u=AM0d;a4}m_Da8Ew);T5X4fYE9aIDC}uJN|D>Q+<~0*DA86=o%~IY1 zbgBc(bZW-ZCln}z9?$;mY+zM|fezA-JPwg%Eac3VgYDlr0T2f%**fTNz+bKLT=ypp z?qPk$j}*vNHKRL?k8*8bqcB#v#$|*~nbt3g=5=OnFM%d<2k|0JR~2CM5>^~1dl694 z1!q{f*n*{tNSvB~HD-$Hc)$3MTajo4P@YSuKP4&@BGR<3seUn!X8+TM$guv9i(g2Q zZid9_FMM=tvs%oq} zOxmd{)Z&BSUYl7}P{g}F0@=n3_>#5mrE%&x@9y+W{wa}ctX{RY`vwp-xl*hq#iHu2G(c#`;Thrb6%EzR+u3cP>6g=j5N)>n*`lA4z zX2=5Q8+>mrOOlh%#uVzd^{Et!s+qDz{#nu7 zc?zbj2Lc^Y*mTcFj)8yjG`*2VWw*VaO$Wgpf=fCvmgGjhty#j25_#+a<=so>GxqGF z4#uv}M4oo7Zk+a<-oKd(aH~pNoESvHHSndkkW*U50p{tf!k+-M!k<3(0qkDkbh`B1 z1Cp{_h9?}u?7+JcJ?N3_PioAY1`aE0&ccyqnd>5|+zFW}GxYj9`7-LX3@ZWEwH$=s zphB*nH&6S^1_FX>Sm?)h0Agdad(I_*kz37~lEd|iM1Y#zSoNmk<#o_pB*sB-(^o1V zCW20W?dI&^FWIK&NBihVxWFiX9fVU60b8jWxJf3VIZj+ut%ppW$7H>IPJwhwsUvAw zIKw;3ICM*ugJ}*n+Vcv>zr1A1(4=SWS3TS#ha#2*rIy`2&0=l4B>bpu$76$H{;;z2 zFk&8LN~3>Pp+h<>c{)(AuwYRc{kdQcw?5Dbq(SBU9KKBiYd6k2kBq(HJp#&T9sO?f zK~TT0avLbc9Bds{diGF0|0Y3Y^qmP{U&>28KCb2T{jj| zEn~8ua{JwKD447#-9L-M#|mw8BiD$FVE^2`JJkem@OxHs-LWG1J~08oBOdarZ{>~> zs9ntcDJQR8s|~v5w3=^^vHW`~iMyjzl(dW%FkPrbNrODNQtddres_|#pRisF{Z>$} z>6=*%MUhj%n1!X28ct=$D=p=hDq7T_oocG-WHonU%_8-T_?xn450BIy{lW#76*#Rf{pYX3F4~;S#?~{l-M_-^aPxZpvURoTRvd(T7Hm9dh;=Q$7*$7ORQuNGdd%1>2MCb#H+PpBGC!8{n8y82 zjcE}~$(zbD2P(LYW6rkIk7=>|{~O}K`J|o5{Ib>TDXa4aWfa0Z2C^L#Vrr^WpFYoo#8+=n z!=GgwucI+BdwZOZi%_~-P9Kv?VlK@P4chrA`?896lo|cFmp}exGY5ZBzR?I3mQBJ4 zwRYfQQ#oQ_q&GwO`{6+#ICm%-`udMJU4984th0&EY34`X5o5;Q&dCJF;DTNW;tNI; zm3i!gUs_4Y)}u->{W4m+QvsWcEl6W*2D2V0i?lYM&$JHFujyKy@HLO= z&jCh5OZjhJH}l#Uw7?*g03zX$@Bb-7K;|7jz+3K*m_CZSVs8#eQu=DBBS>40-0%OR zT3z>r@@`)>MlqMvwfv5py(X8!f2MAEfb=4AXE(oM_7=u-llqmg@j>YKgny`-A+Wtr z?)W2}@(}D06H~@+$355gMLxOGBrP5G2rGFb!(gbdy9-!t03BOoTwIC&wC!a{Q%8~z z_nV2PtE3zflrNJ7(*lkEZ1emq%{1fuAWWKQws?&KNI-|wHp*hbpBh*FQgp2^6jzN4 zTJRa@?0$$z!Oc&Oh5IXsORjjuUt`7ZE=&PLhE$Ej&&$e~U?xdWvf3O{PYY0`6wRGe zfNz;7oBmdv(t3k@_gcN>BG2w^C?GRA1p$z0+HpD04$xr%Ds+TEK{<4UN=Qk$3OS@p zf$N*I3Yz^MA99ryFR%;8IM@0Upic;mHYo3f%$}L0f)x1HoF@R_LeM(MYBwo9UPP+# zpPr4@tu}9bpvVwrKBBzU|E}0TknO+a^IlxZzFmC|e?FO=0fEMQZV;h4GZXj0Ivw>` zRx`%?o|M}$F{5J}bAPfH%id-;fsuk{%rVVB6X+cIy{x~UeOqtX7*nTMB2M!QIbrkL ztGsamvTew(jUa%HE6;5sg_k`}E6*>NdNogaCbk5e8iP($__53M!T{`oKkcjDpGSKR z?kAX=)@9bmU4AiChP~gUyUS;2hsAcC$>@ms$;-;7a3@aH0QZhR|} z8?2EbOki;Uol}rwm>H50gKrlcDX}-xTt7{hN1+w|&zn8#DmNg^I zhPDr6Sfa4?y+VCgyIMsaeAFbsk#<21vTUq1)+D2>^IYd5GzxfgTCJv50A6iwtlm_l z&9^O>Mgc^Trn(T4uAZvTIUlE!@uzQs7p%bzUGvciuipU79>uwFl;||$BF(6K2{lQA zR;YLR*=!vJz8w+Tbo7VtmRum~wTnrT{oTc-&!LJ>vP4FW05SqYmBVFyJwFV9q+J0& z5MKg9zta2u$}h11VgLx(Vg|f9p~%?P(X#f69=CC8v#d7?9)0a zi{qi%vZTH?E-(F1AwCX!`8gw*@TJ#DP^XDr7Tzk#1a1^1me^Szz;IKL(%b)+=)xeP zq2L^lvNroauLI1>#v|L(b3=#b9b(orFUSu0Kvn%SP2NCiaB-DP#8pp9j#-5je*mJcSIrD+6nQ0uOrqhF`~ z=>TpEm9O0mOEX>9Ns zQ_ELZ{#(^atex7o2L;=chFb%i?Xle^4=n)H1CTmZIf)+cK%<2i)<06!XO0 z<`?^%k~^|I&u!{r<|E zeD4{EJ^1XwYm@A;e`ePv3MFElcUBo&JR;y7xaXs7FQ;I>gmHKN;VTLh3z>GtWY6xC z`W#3}Cb2+hfg?>76g5ZW-jp&J!sgm>0YJ5lv?xxcpcREW8a7$wN;@*^MUU;B;{R5FR~sPfJJV$vVwNNuB&8@4R-SqN!fU zT^dpvQwulf==GAy^G!rFKE?P~NU^gPqt<}x1-3DSsTaNim=NI5%pVVUU8bKOxq3fV zN4AlQ{{^mu_Mmt*v8ly)92wQ)t-J21X3peFsU3)a5d5iBi^AKbslLYwIIew-)H-+y zU|-+h%&SqS;OqR9XKq^~yzJT*8~WfPE=T`7u>=g^UzQ=Y5wSfYVq5o_@BN8YHZW%V z%EhPn+?k2AlQ<4yI7sDtUKf~1vV;RV?Ck8F!ZtZz*vL@RDz*t0Z4A`60yF~?e-yNk zUvJ6&p-JNcAiNm59uSC(y;Z2oLehP%9c~*o1{633^|SdBT+Bnq zg+V4}RZ_P$V-~W-K@al|LwR=D{xc-k7CkHaGm~-EN*2ffV1M3=`ycdBNin4g_uoXN za}5rb_q4slCBcX6qD$kZVuqpUYP-sP#XdKx!4Kx3+$L`E{n2%*<+ND#1iB8VA%tN1a|KL z0A)qq_WG!ePW$>Mzb*~3MZP1zRj~xJ;Q;>OSd2-%D0twSQ83ipZ=pmt-K(4h*CD}8 z)ubqoe%O69Afgy*Dqk-8$=_a|i<%zJ)S~SSU$|gAKYi8Fw4XFH5MZX4G64P9c7-fg zv)X&Uux9x$6z#0?<#BgIxF{!(P|uqrvxpU}$R}UD&DtJnOb!JKxk|@VG%cD~SW*IW z!wX&WPpJ-DK#+VU_>7jaZpWh8^KcsTSQ1R!P#QkA2*5(hLQ(GJ>W!}t>^|Z_v4k!A z^Y22ID8Uj5g-)Q+?@f8Zob&GX%i?U1qf2g}CFnsH|h-5gCNxc7ef)0jP*rkFTZ&6TSb zC0vMGND(V#e#EoDp0?(P$5zD!o%lHzBZ4{#ZJZ}`EK3CYG6k}UK5nOAgoog15sWIN z!VcJpn|drh@HSb7R`mNm1gI7Mq8PLh#H~_{*JbJ-RSNBEFMkjLV|-49z?ax7Ps`IK z)SS8FQSdgL$7`CxjUJ&)`I!?BsnSuvZQ~Q5kf05~B2yhc;iTD@b#C^7It@iF^)J<}+ynYVFu@DM0b@5xP2y4)n_j-9l}lCFujl~gwJ9gNj6p^Uv&R9535MGiz>J%ZI%2CXHlI+1aCwwb^ zoQEKVOdZx#UK^YJY>NnM;u@&fM*Xq3N{$oo_)c3;IeZ)*?`i{iM#z;hm?zQ8{G3nU-o zCQZ>zvhq+9?8G}!k-;f`26RmTJ|<38LijRiDsb?9=hoH1GUg$5g93<16mm*NyYSO((2wn!<~wt(;8LGZh@;-5RM68GW5;^|gAh17#MX#nA+4(Y9SHSeM=gjc z28#|+fc|bScQV+z`-L(zB7u_K-Ly+iK- zG}vC=+_yMH%KWFqV}`q~$8Du|@E7T&XwMCb4M;Q@Y8W5Y43{1zR?$5$wbil=OD&u!}O`tp4FFms->i=#G`6D58gSPbiM1`IwSOjZ|nV z4d}q1*cV92(UbK|xprjE)Ie*L)2}wZMBS3}nk>?LV0k=;|y%0 zm^yf^V7)50aT%UlA5i$ZWDx<79ufw=U&Fk44`=_l57g9Ef7rwX>=cKx=e-kCg`8gg z-&ilYd|cyGFT0 zC^#KZH)kWdoomBqu3w*1_U~Du*HM=LBR7r=6h7eH0R-LgG+AjV8_UyH#vBMJ;#`G4 z*$~*?UHRK7QL)lqgM%A-V|;8en(BKk+PPX)`4dxNRea2sOw@~uvZX7xkOdytLBcOX z+If%VTn9}us%)eg8;Y zd0z%H0vK(iDzH^GeM`rcJ4nITC2whG1J9L$s_nj8Z!uBR|CiU$yt53!?4Uc8=J9d6 zB1uCnR-KU_9Gw8KUU0H-9E&0N5k!MFYEi@EfLv{3?wp0#?x-d&XMSk7RB6C&hzTz2 zZRYVyLGbjwq6`W2m=IH{;I*vDt{6t$S%in$TpjRF0XkbKXSE{7sv@Aae?HDJ(*h*u zZQE@NhPJiFiHKg92P@ItiCFL#-lJCz6K~}Io4n<9GvEBP*#GYZh$7Q*GnmJ8Hc932 zpZModl{`_2ppT0zvlgwFuNU#b6mBh#@j1mG)J+L8uyIbJ6jgo4HsGmCk&$(G?~Mdj zsw zzf%pVseW7;;h%wdjlwz^NtS&z+PH$fkFlYDIvzn6I1w%MV?7^CLiDYPa zw*rlJB1kxdaT`qw(z8OX(xql@mz~7JZj?meVIQ-0z|qmuDRxJz9%L4bZ&Z3F9dRW1 zhl_h2y~OpUxO&TI>!AYqpEj-`s+99&N4Ff?QJZi7o0B{#hd&Vlv!h+F!LXr|M{s{0 z{3^KDh(3HQtG{xBfaTevl|Dz*LT^*`_pXy~hcN@P?G2WEMmySrH9 z?v6{EQEi?uK&ekr$Tmm@709d*#Y$Dq(%QV3BJsWjgk^x2+)_WdJ69aD5uq%c&U0^M z7p=D#Qmf@y%;7w1ydP{bM0Hk~UoEY*!Me|=a{~5C2 z;|i^rba@Od~v|c!1v-wm<2@lS1;#qc^9GL$q@Enyw?fxd|^mJA+)g5OA zrKZsGTR@NxUJr*wMinAFs{lY{QLcWe{Z-{CfW%I!mGJ`yUMDw^efSvBwqLzvcrCVe zk!+Q02ltNvUGhKjy8+{`U6;(q-Tj$d)J6PXaaHBeNVl=^(ErA>**?8bXBj)zTQOBRoYvI*w9SS9Kr1_$=4scS zg9d60Fb2&#cY3VVFLI}yFQzLo?87i{x3|hdIMjkf>Wu<Gch*APwY#LH5UO)1UNtVSz?LTtQnl!KPqwg#%F!80e-QG zYki9$6%#4^?0UfoEEt|0HbIv&4NG~42Njcl6k`d4h4wm1YuH>t5>GsI?1)mR-H4yx$0uf?<^e) zG~66~Vp!rH+>$6?mGoF57MHZU{Jm)60^CGriv_uKX~D#`s(Zfw%e#&QsIw24JPsZB zj|bmvD~mX%fyB(J&T^m zDJC(TrNH?Em1(3IP%{EC9Qsp}CfKXkG#ws#O2d2PaEJ!d&{oqfM&V*bXS3f-CK8qr zXjJ%Bmi`A5<6PEtd8!RyhPdE_?V}6OzPG?d1?B>VQ6cSANP^W!cKGBxR^s=u={qPf zA7HgTXfw9erJ!Os!nv;)nkGc3Cn&}V6O|I926Y&|NwuruTj;%f5*1WXxb7#8-7e*?r+IG-s!`MJl%Y}x3 zg8Pz%KR#`q{Giv^L#;Tyz554}#&n!5Ew9c(cD;8+QwS0YBBv zhRh5@dFmGO8z()cJ4UfF-kNA2+WmVRp9eCHt^Lhn<;34V(-2+FPP(wf;e5FP$*_fq zVnjRc+`eMo0)=2Y)TRh-0R>XD0wUTMa8yY=sSq?YU%Z*sf_WnH(M>9aQZ7rB6b4As zQ7=8xXQUKVuNOaXk8Y0QXw65FFOY;rU|H!XeObdwet=;n+dh^R51|%|XjWL)iXP$k zhUj&StBr+)=6q1Yagu*I=V$6lJ%A;&S$u?ZPR-n|$0127K9qRbNnJ_1p?|8m$l`!L2h9 z^{3nT=lpw<66%eHHt%A%cMz$xXzhTz2|GA{eS1d%50rOe{DW^`zVRD-5Km-gjtosF zrvI(@=mO&CEfJ&gp#ir3%RyXPb1ZU4DS_*PmJ=Bdv*5*f)carY&F8ekc9$(J2P~+= zNdGn@q|W-BWF&51jvgW@Sb2z&Af??Fu8^J~@GOQb`eN^=)=IDVVop*TN=?{3dOE%v z{j*OxX6slheu_NEfqo2hkIludnc(4Q{S(!+FQz;OpGzLH`b(hi&y+yb>|Y*4?LDHU zoJS(<*BTeZclgukv2E2qxH=fFc&%T|M;E(&6@~N6djQ(8OI6)V0T(^ zQ}3L+nVP$}zAw0~!GACRs_J_As{4F|>w^1TreKFnEZVy?X&;%(fWO_S>wk8ho-Eyn z)*e(oJnaO6euUZuGJP3`cbzq!KJ|8EK8*yne3g_hx_=Z*d|V7f|Iv34n8qG_v#qCLhaKW^V*$E#)t2hL4zr8rdL|=@9(>DpUNIPzZ7Ul_@M69K00K4 zvI?i1TIL-f!$!CGrUwn#b-K5foWHxb9>eX9yMKDfFT`Ez{+*NclRPBwK|=l(^U2(O z;tQ&T#y(V=Q`7|GmB8ZpP*$Rz^?>wS(&Ovq8-0r(h=$@>fP=`ICAnyU; zzf^k|3f5>(|JFjDn!Ay}g-cgr;^B{{W(BwDYm$HaoQ!^JnOV|s@FdnaD(4S#>3?7l z`>CoK#I4TxKy+VwPt_^djbpzWF56{wY*$@K0}Wlze>`DcdyvW4Td*LgHD%9G%T>0* zzaT@SwHQ?L4w_ZJtL?el3nYHj3w$yE-R-EoENCleY7|l{-(B#hH~rh5qJAF2jn9gz z#yk%4P9ZzPNA9}PpAYfq^8l(Yrr*O1N3=r5(>sk_iPbQTk zYa>)T+O40#MWL`GP-Kz3vMZ9g*H33u@qH=sC+QZ?m&R=Ww4a${lI=ZmgYPEHU&jYE zeEeaY^>dGoaQwGiE&E|xYCm0L-5)!H*XE2jP%km-DC)t5t+Aa;#)BQ-B&H1h`<719n2W<)OXo7{hp4od%z2ijTI7zI zC^*TE`TSFzu%b8F5 zk7e@`NLi8nq=ru(2#K;i;ekh-bB(I9rXTO~?pyhbI1>sb?$d$Y`(l{p32}7ers9dg z635Nu1F{doA|_<}y;tp%4X_*-`&+fsh68`U+?1a_vb>q3n+XLF!*sas3a{5o2MSy1-EZ*6JIxN*JUV5WIA zWF}?igPc!?sZUa0ji}!RzDRE$`&4cr2-slW0S9vTUqGo1iXMd(M2g=oMxY!C&tbgp znjdHpuUl+_$+v6x;U`D{hVK)q^vwk1wK69=9=Xr&qN3GK=ne zTGb!nM(R%f)Q@ukh^uUY7!B^}r6-tv>D~6a)7j*W5xXc z5$PUMx=Xr2QfcXu?xDLor8}jiW9S^1=j-*qf6rR3#TyyUoZ9;nXKz&U@r)-iJv0P2 z`Zv}9E8DyIxrrVz5XaV=>_^*#*HaBEjjO%lPg`aa48hGIE>;EG_B97rUfbXT>M8(Y zfS!UV6w8rS5%qF68v=vC)=CDh%C3RBL`{6cThp&(<$|q^1re1{DVagV?G@~eXq$jG z_6sf-c=@y1)3mR%Gotn(he?L~$ zcb}pg<^pryuQRD6F+b?TjC(l>c*Z#7Lc3%=T@w90z}TM^d2I?e zgClFq&UPaEFw(j7L+B|Ad9Jvwu2QN@L63@MQ49UAO5@LmW?@?35!#H{*Z}tB#)IH_ z=OZCihDYnO!6Zfg{XUHFa^rb}=@z}6?19f8V}Jst9s*n02!S;imfU#Y2b{Gtsx+iknP4>*q)!?zDM@L`U;~zCr>*1XRSba8o^mpEO zczq*d*i>R!iq)(L#oCE6GejKme&osZoa&CqtD7;>W#OzK2*T$I&brc{5_`>j85bjY z0Z^0<0sE=HsGg!>1Y2D<*<$t^kiDJlK1lxkLRJ3#3m@1KN2RB3?4AF&6W9YJCsst_ zJ`$!X+_jepp#(bhR=ZxHzRD3AeqA(|7ti` zyI);KE5K7I@Jw*_l);C#mbWZOivQ|v$%U9ZjQ$Qv){RMe9#yLST(f4Pc=p=E`F!d4$0I93vNZx$*H^Ay~*;E@@*Tq_FSquI{#s8 zT?pj{?9KJ$%lrhgb~Yz7Y#KrZ+wTgzMA~r3^1QjW6!H79oe@BIE*S!BMJ6&dmlvXk zrU3ZI4hYY7o3|s3`TWZR6W==A#?1#I`Qw`&U9|F)PYENHLa$};V_owCV*#nPX>6}~ z48vb&+S68Bx$UN`yt)4(1n-S(gLux0j*MsG(V)j%dC*XJk2^z>g^<@PUUZ(t>XTVg>M9u0v4+xc(>K@!Zn|IOvoRx z@$|&7@ep(Bxq`sD#Vm^C2D5i)MVvq^FR%yzcUr>F){5_9)zBwdWD>uED7%>#%GUKp zXgkJguv&~s8lHQi=r~#G2>Mm40Zy|r>?A|C537|upMD49>wY;}&3<;}Py4X&?a%Jf z$I%K3b;6}+#7YwI7r>Mf+GSXzSS;`n2Y{`Iv`gRUd<#$#1Fi*szL3nV@llD-Jwozh zMP*)K&mX2BFx55@&n(L4>=)iV!^g?3=R?Dgl2rqh@xOS$iu66ou#sX9pOvY6fN{S+ zahhfQ`o)OngQH_DR7eH`m$kCCm&wcFpGcqdbfAD19BXkS73LSfU+6oVyy7P$=SoA0 zJ$LK3e`7H{ysZqdbRX0vAkG>O>5goldn@uD6~_<9#50`g1{0fBC~$2MG8F*u8Dumuk&d{BA05QU%7;p$AJ zpnA0JLT`9t;#*b!n1WwlW6*q5U~NzX9_thsSFm5^2TrUG1~GLUPQN_EuDot)1qU0t z(#(8o(ztwZaKY+Gzmsm)SIFN$s)c6Zul1Rjdu6nHI1*WT!(vH!tg60SYzOlsbQ$o{ zD|tZkEHjkF&qy5fn5xjTr9eaQM4%T+tyDXA4a_tZIpI8NAlL;-`m97#-pPIP_#G*Shxi78FNb9MUKk4)9E z38gU`Ze2zh93E%MaHRs-pjTwFL^xTmTBoBO>V4KToYTA@{>>1cS9u#gH%FT0njHdN zKj@~#(f}{W`q)*K%S*9fiGwAFv>#`+#7-+)k@~p0%*RgoTGvKl2x{_K4!^ueQ=XBL zb4tP6n<6}6lv2=Woc(Z2ZO~NtK`u=wP!1auq)OzFGWZmPQhvuOvE@6 zi8K1>1imUF7Dgv?7b6B{%?&@v6?mHd?&#*?EV!S?tsUHQO`U4Lo{|)#faLwPDm&whXTa#7?_@@JK?gs-B(DPyITuQfIpS{*UL9i-5? zc^>0P{*w_QcViqbQIs+?e1QFd3X1*+Sbb7C%uHEYE{$B;Z6RY|e(imLW%E@OT(^;w z%(N>&PoPyT@3J(&IJSMAyk9QheF1r7FIY8;d%kC1+>r;-fH*bE!VGnkr?<+&&ND9X zHMwvMqxC@zy0thu1agf>v=TQ*Z<^mN3>uaaj3wIy_>tc3Ic_;mI2Wkbta6t#^Gk9# zyj&r3qZewL6sDMZF}Dx~sf_dZZcJ)Y65Ok3=Uz``o9+)TX=NxEsv0~aI6fhmtu(2w zv|!&M06urjV3!(xp6`79@;A4{9b& z*`Osh*=1pG^S)!|f5*)I6q|GRPWleLWSU#!5TuWZU=# zPHRwoE+5Z`s-Eabg}F_U`na}AH*I&=nbz^+QlpQ5?k`4xgvYgRBVF2LDn9iU;jp`) zDRxX>zBQ1}Pj#l8P8g8mlx-fG!g z`=CDtBEYhVJ|gLEJNz=|O&3nt?%*F18xW`A!)H_dc>(ke=Vfy=mH7i`|0;+Z?DO-Q z-X94v^?Q8LsTG6Anauld>*Cw}F-%6kXJw8Q;QFVdj;^4igNl)@)lkM1 zd;Q;?b6qK$_M+0~x5{?VbOogK^&L;2Si@%z3*-3nxJex08=e%eccDhnqxyo*#kifJ zd>@*;{VpV;gA>kjIA%WjYIcY#ji40~sk`Nte*w|dPMDTXr?I3KeVouuh%{=_CRfB~ zC3J4vv0L#S5Ywe^w4lGNB|ykEX6F!md_B_785SMXuxt7DbnijmdM~XZdVWve>fQE_ z`!q+aY(E@5ZTt8JqaRuRSZzXWSCdBvw4Qgxzh52${;0LDs3bO@xpTs{H{u?L9rIeh z^ZHeI9Q&L@pkL?vnO|iXRyO-i0qxr|B0!{rLk7VGBG<=e0mreQ{jQrTBeK0=C{Vo( z)?=Iei^@g9#nytNK954#n_I=oWRDhHlX(8U8>P5;yw~b(@p2VzoyMojgB9}3M57ww zaPEjvX83JXFdP0_{fRV#Ez6>>g~2F?AnH9-iJek%PK352XWjA!hC(wIgxryk4cI$y zJ|^rhd~^o}o=bl*dEZ1d1j_I9RkTMqySwXVZQ>X_GkGC&E^rQcK?c{w&PWD?Wp-W{ zEqV=|(KYYy9QX~D2{IJIH8%TQsJdbDQ*_Hs=-7(odw){l6aCf%dDBbZ6#@Kky~|-K z!6?xyZ^qGa=0R5znkQOAF1zu?())pP;-Cr^-;>dx zG3!iJ5V=Rbnaxzw{J^;W!nXXS!LBumO) z?}pAD10XT|WqiICOpzY59S9Jp^xSbMRpIoLDb)(vYVXcr8w|?=*-8OgJ#epsDu$Dj~(|xkb`PqVYMzeV&Gd z&6%rOaBom2wjZtvgYO4ZW}epk=pGm;uEG#o;})XMBk}c?a{OESbE%2 zWyN}&RNT{_m9qTZTh&7A#ynqj#mM_NPy~AChAM@Q(b8nn>ilK9=~|XUx&mRM-@H{< zn!mdrH2VsFt>I^Zs=C-Dt&?OAt6mTGHyivbni*p7Et8`7`rMG)Y!-pbE%1JR--95< z{Wjro$uSq{b^+=cjN~6URt&=o@_^bYc71xV9RZ z)9lQ9d^1%i;}}+F%TZwQtZ*JT)ZeF|Bopc07U{iO8*;<6a)T`Nnu4Ow5eu5Uy>|6v-MlcdH#rKP6ZkytSMLE5r_Ya zurCph>r`6%q6W9sr-nO?>xF|*h}vUs0Hyb#YTDE1v2bsHFFWJX!88s(H(qBJQQn63i zR4@{gj|;~q-$$oj2oz(>14f`8dKS}5w+LQGQaPp+Ic7W}CLbcmV+!Y63zX|eDjQdK z)!?TsTHjVR`!%FQ^D~llcE%dx+jM!JP6X2FN(1R6sS+!(MMPVf+4)g09DAawCSeVq zNo{kRZy$oVRq}YH_awiZ&-e}~ufelySbzQT$}C0$k;^^o{u*~FDRl5-7PDowAdB0q zPfX6IxB2z!2BRg8nBI^JG6YnDt0R}h&fDUUSpTepU3&I9kQw&es|^VQ#e#kLWMLiI zc`FPA5&<~PD}}1)AFO!j^`Naf0bl9jDjT-`0^wr26{Z;RX%&yUOMSbVIaruba#Kj2 z;dGY;*7|{@@mF#iv|RH}GeGuRnn_T*E{bnqYgyvd`6=@zXli&#pevwmvf{q3Vqg&4 zqT_f@sa4n-!zqf#iF&_w=NLPQT@@t}sgZ;h4mDl2+xG8+{)La?$(~BROBebs($dHN zGb4wkf(0kU4Nb59U(Uz0>z&1#*ZnCf2G92%e$8htf}PhhF`T{EJsB4codF&qO@*8# z)5m`rV&nvoeI@fgy~G?mWe>Dndl&Zae?P6N13cK zuQAgJw<50dGwk_F*HYeG(@vYbONlHogW268Jr+vnzQFr@6kPNM*OaYe?w+1J>Bpo{ zczWwWj1RqWNrO^5DyQdnB?+Gvul{X_ZwVv3=?l(KWmpS=pd`q;)tx;x)O_MU34 zaPhr9Ee}|4tH=JAE0LE$^wYfY+t>{r-1$6TLAn*&ZUv5e;1MWZC{VgCvpwicUK2?| zw`uzKvwH+xagZe#RsQD%fD}EQ$8_Kec$PDDuZ_$9E#H$%02&3 z)ZIeuovygJCz$PNoniXiZFN##xgKZPM!8D;4Ey!Pv5s*1Sru@E@7Ry#@-;n0Tqjc- zQyrnWAMk&WKf&E=dP1Adioh#AQ+_lI*wsfe&=K|2aF9FOU=S{^JffYy^qbq8z8S$F z@|H@I8Uc|jNg$0X^+wZvFh@p9ik0-?bG<%WKmM~2>H&4gbA0AInNh%h^GD1f{C+GU zHQYri*8gn>4Bvl8_G2EnkB36a# zR45Dv=Z2u)uqut=BZ!xvsUnZMRNMu}^DGUN9{HO&py)A;`~uUr(AqhC9?UJW9oi;q z!R0(n9W8D$^w%4~&3<@&As?IP*j&tJZni+wba(m+-;7DX-PYvf@?H5Dz1fSyTCkrU zA-DqxzhG2!=!^>L@j|^N8Su7D^O6k>ZK=iSrDc*TpZ>#SS6*Hmu8C&OL}-1cvYG@ z2Bzo;3c8$P`lQ5vfnUpTM!b*rH9^~{8uj#%EKRqfcQj$I7=E9a`BAgFJmTL4I(1z_ z$r`rNdseI==7zcDc8vo&5KOI8b`T~1)gpC&+C|-P#{jmad~jjM=3Ni`w)^n2bZVZT z#dt#Gv+o`fmRUSXr(%f5z1B4lwL55bA=X*S=Z)F@N?G*Ym)Y(tj|R4E1CxFUsg8M% zciU^1Y|xA|>6=q=b3yZpBymY(?V8Yeq7_?DZurAT;uiR^BqIg`VOZgM;g}wwUMZ@=y4~0x29xCG_NxJT8^%;)LH3%p^pF9H9Tg zm4!H?9pm@2Rmt=2VuqN^z*CD3;@}o%lB-MHl8m!Y=7KnHn@yJjzZH6aQcX(643plz zn#2)(`r5nyE?1`VyFIe@F#_a;`_=T0Vfpgb@-nm322_5V;sv+I2gd)nqz6DShST5a zt07^B0XoMsV0Y29^4REM>BgfTSI3;@N=XQVEp_3RN?WCl){JXSjZn6lTk1twoOuz0 zL$J@H#d? z_9FI$XAfFeyU^HL9_>syYHZ)8TF6uXaHHsyRVgmEhRfh^GIR3VK{@9tk(pRvCYQK8 z&NC^Jl=(@H5!9J%cAJDahzcB^9MPm-;`dTtq~cFcsDw++Dn}!J0L_Gek#ch|WxCP* z5$?l()8P^l3m`Zrku92yt*eyVBN~ZQ?)%liwz{K(p0-mz1d7L-6%Snuw50)SIoLT8 z5Zvff(?)BTc)J}F;ZdS-g>3LQnR5C($X*{0`2MbqZ`8a?yTm^kw|P`gF3l^%Y7?7o zpD55}TtwtJWfbrQsV!@n(pq+!k%H|iMGFt!YHTn1iVIX=TM>=Z<)?gzl&!5e=KQ4^ z4vnvI_~Y<*=3lZ9G}V7_Cf>ffewI5}EGWZZ#|0^xQ3l?c*lz=+NIm zh57lsKmj&9q!l~@hW_NKZg056D#~5)ocP~joO2)+sFRv)pm%&f!62G*(<>q+=J;xD zUBb_1bEBq|6*e=?Te@ROERnhT#Q$Yn?&4T}`$*N1>QWoeZKqu=&2rF7%qb*?-c=8w zGI?+&+0e+oN-3;{Ck7uCIN=~__#{7+ET}{<{Ct_O-Mln9n3Z^ zW*ZLjA@lyIE{Iuh8XwC#K!V!V8B}fvb0HhmbFcF^;GQUHiG#Z-KuB~$9W-A>VNX|- z`566v$6gQJJRbMDI3lc_s0V0t3=|{JfIB>P80xx$$M4#R>QDfduX=E9-B8Y!-bC|< zL27>`+psheka~QEK_T%kNdb`_Lr9rFHEI5h#rp{8R?5tIe!NqK_s(k374e49T`nvg zi9h;l7IU0AXO|#t`EYMpSy66#l?>-^j~qN)r%#i*1V%Ut1n7v^pGVe_5?a|1;c=;1 z00?v3b4sYcas%emgBPg2`lfJX*H|t<}G7IIiS8 zJ?Qv^vVJ395OA}B?F(&E?Q6K;jwFA6cacVKzPWhb(?BgWSLtQVSm`s>fv4+j!@$|# zQ)%zp5gk&6$70{9_(!9CZ$F6-L$h}tm*Ek2f?Yp`h0Ekmj27Dy6Ut>xQdAS?MdDSk zyxbhwBq=qv3!=DHN%6)jPO=h>WUyzxZY1ljv0Dv_16TO5RjuI4H8luX#7SCp-e2#}>UXEa0D z_xdn+`*e`j5vlc93X4ze982?vcSOCG+Xu@U0=B>CLxLTxPtKZ=rFrJyKq&;}9$Brp z0$+2dFQQuYcyDmIktrti-amkaym3zkTi)qd6w(w>B1aRrx?bm2wP6T58{jL18w6AS z%fpwylR`^HLp`?1N)(2Uvvl1(&z9e6RIHAoW#rwF4GB6`p(T4T8F`7g?{QwVSk|al zjcg{j;XK~{i)4B9FW8M4g=Qwb-(TJVz))Oc=dJdkJFv|jg+uY}w51RaQQug5cuc8_ zlK?cs*UQ&HkiqUcH`uOIZe>f-#0nk{rN9<>e}I#dayNU)Rro9;T84SZ&6QoWsBHSWt4c*L&1)W}P z%YQIV+5aKk%@m+~Ary26bs0;V1(E=J7`zn$je@r@B^uO@P~ zB+zdaYJ$1O^X-s0tPIYZA0Ex!>#egqTVJ)#!rv{u^S2v8X&n-W6foSq8OCAOGa)p4 zueXBkZyN5j<*S(Q0Sd<;z0_{9%rr6Q@%HD-!v+wE)uAV_P%_cBI#!`3 zDF9HqMxtpuqH=I$nJ}mus+#kIPc@Fwe~Bs!A70}>x8=Bh1sJI@o@8sm^6+33Oo#>$ zre4=SG1W{I%}S3tzc>AI=0+@QHR(h~HE=J76(TdJbyt@@AlSXqa1tPHaY-lMH5NAl zcWmmBf48wzy>mv^i7yOjm8Bd$h%RSo_Fc-1p{O$@c1TR>XW8x=Kb^De27JwtPKw2z z+%hob7(K{o7UNz35D46K?v30o|4>VUn|nn7|4$`49}^nqxC(1tWnFqh-PXKhwbFwy1&Yv4Swp%{-(5y|(Sx(_c6ce0;AJ{5xnD8j*{g zU_yjdAg%Mn{*ID@`8jUCA>b53}s*PHvqP|2h;B>5G z%#bkP>-tCAGjzQz&@`wRNUpvj% zWA9xu0!MFcoAYg*YJW$+8U`5qq-B1Y~OUvw>eYg=V~_r5Pd<;LYIG>hQ<4wA{t zdm02tWArnMkJ1b4bxkSCql#tcdys7@3lGjSlsh?_-}-!D9U4m_ndM#uvBy_`w8Fx@ za0{D>XbjQVs%e)#863$MtvHZlV0NIYcRMxtk5vg$xqH>-Gi7d!m^LWb*eQH4eGE`z z#&O%0{+KQguBUIgV;KFmM2+YTD>mN?U$5`19(yA96B-s=^K~g7Uctx(T}pZPcOOdZ z=mBiVl+~BF!ZmBy{*PFstQP>%-8tpww_uNg3xsdE@FmkU6Ym?; zn)J?vIc#<`EX~9v(FVgj9`cKyHgn+>Jp$%?Gb|BS>fgx) z!c7||<4j>VYGacBk^-!BgqH8967il*?QL69EJ+T1Z4WP*9tU+{_n$VXd=DnWKeT^~ z_5duUK-9>BG65*5dmwRIfdz*H}9W z1b;Y}m*r^X3!vdvb<# z=8E<=a3FuRY_Sd^JuL}6E_f5f`iE+L)4)o;!h_G<%46FKiSit5-!vW3O%|m~hb7Ed zLWv}f+b?N5 z8&-7?cYNXC^WlXR5_Eeueur+#PH0H!y)B;#${u2yrU59f76>am zmwWQeKFo107=|zGjQ|Pr`IXx6`);{f7J4EnHR*@z@-P=OpC091z39AO?^(tr-&Iogw`_i*;BL z;UAkXSEm&?O}j`M96SUIDf96ePy5g7!(zmy8Qi^h5F_INLN93Q{%;E7%Pu4^+xs-P znnd~7|69P_rwhkc}4Cr z0+LcdAoAOk(SR^8CA~)DWin1F;s8w;5f)dMp)G}4Go1ZlF`(!`gOQ1fZ?Ho`t^g>L?+k_&4yyDNSZKeX! z<9P*6u)__Ua?7ic1x7K(ex-PWyfeO4kd$SPW0vhC4QVR1^Z}qp#?CuHW_FG6TnNkD$8@U!R z8Zcop5dN7geyy^4hUh(tk

1>*Q`(?Ct#5>v`%=l|z{l9xPa&|pf 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 literal 0 HcmV?d00001 From d6aaf52fe1721d3c1d6d33c734a4135a2f985963 Mon Sep 17 00:00:00 2001 From: Ernst79 Date: Sat, 11 Nov 2017 09:37:58 +0100 Subject: [PATCH 18/24] Change link to tutorial to get the key (#3958) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The old links were referring to a forum post in which it only was explained how to enable the advanced settings, followed by a link to the remaining part of the tutorial (on the Domoticz site). I changed the link to the domoticz forum directly, as it gives the full instructions, including enabling the advanced settings in the app. Added the word “password”, as it is called “password” in the Mii app, and not “key” in the app. --- source/_components/xiaomi_aqara.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_components/xiaomi_aqara.markdown b/source/_components/xiaomi_aqara.markdown index 61d3ed9231d..d5b94a0a6e4 100644 --- a/source/_components/xiaomi_aqara.markdown +++ b/source/_components/xiaomi_aqara.markdown @@ -9,7 +9,7 @@ sharing: true footer: true logo: xiaomi.png ha_category: Hub -ha_release: "0.50" +ha_release: "0.57" ha_iot_class: "Local Push" redirect_from: /components/xiaomi/ --- @@ -49,7 +49,7 @@ The `xiaomi_aqara` component allows you to integrate [Xiaomi](http://www.mi.com/ ## {% linkable_title Setup %} -Follow the setup process using your phone and Mi-Home app. From here you will be able to retrieve the key from within the app following [this tutorial](https://community.home-assistant.io/t/beta-xiaomi-gateway-integration/8213/1832). +Follow the setup process using your phone and Mi-Home app. From here you will be able to retrieve the key (password) from within the app following [this tutorial](https://www.domoticz.com/wiki/Xiaomi_Gateway_(Aqara)#Adding_the_Xiaomi_Gateway_to_Domoticz). To enable {{ page.title }} in your installation, add the following to your `configuration.yaml` file: @@ -236,7 +236,7 @@ If you run into trouble initializing the gateway with your app, try another smar ``` That means that Home Assistant is not getting any response from your Xiaomi gateway. Might be a local network problem or your firewall. -- Make sure you have [enabled LAN access](https://community.home-assistant.io/t/beta-xiaomi-gateway-integration/8213/1832). +- Make sure you have [enabled LAN access](https://www.domoticz.com/wiki/Xiaomi_Gateway_(Aqara)#Adding_the_Xiaomi_Gateway_to_Domoticz). - Turn off the firewall on the system where Home Assistant is running. - Ensure your router supports multicast as this is a requirement of the Xiaomi GW - Try to leave the MAC address `mac:` blank. From 0a197b3a61c01710699b7385e9ba2e972473de78 Mon Sep 17 00:00:00 2001 From: Taylor Peet Date: Sat, 11 Nov 2017 03:38:40 -0500 Subject: [PATCH 19/24] Related issue #10507 (#3957) --- source/_components/device_tracker.unifi.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_components/device_tracker.unifi.markdown b/source/_components/device_tracker.unifi.markdown index af017915885..004d92679d7 100644 --- a/source/_components/device_tracker.unifi.markdown +++ b/source/_components/device_tracker.unifi.markdown @@ -36,3 +36,9 @@ Configuration variables: - **detection_time** (*Optional*): The Unifi component will not return a device that has not been seen by the controller in the last 180 seconds. You can adjust this threshold with this variable and accepts seconds or `00:00:00` time formats. See the [device tracker component page](/components/device_tracker/) for instructions how to configure the people to be tracked. + +

+If you decide to install the Unifi Controller on the same system as your Home Assistant, be aware there may be overlap in ports if you have the MQTT component as well. + +[Related Issue](https://github.com/home-assistant/home-assistant/issues/10507) +

From 4146b5def06e9bb2ad0dcd6fe627b9e15f347326 Mon Sep 17 00:00:00 2001 From: Patrik Hermansson Date: Sat, 11 Nov 2017 10:14:04 +0100 Subject: [PATCH 20/24] Update timer.markdown (#3960) * Update timer.markdown Added a working configuration example. * Remove blank lines --- source/_components/timer.markdown | 39 +++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/source/_components/timer.markdown b/source/_components/timer.markdown index 0c4c1a34d03..505aeacdb22 100644 --- a/source/_components/timer.markdown +++ b/source/_components/timer.markdown @@ -92,3 +92,42 @@ Select serv
 }
 ```
 
+### {% linkable_title Configuration example %}
+
+```yaml
+# Example configuration.yaml entry
+
+# Set a timer called test to a duration of 30 seconds: 
+timer:
+  test:
+    duration: Date: Sat, 11 Nov 2017 00:12:55 +0100 Subject: [PATCH 21/24] Fix slashes --- source/developers/frontend_creating_custom_ui.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/developers/frontend_creating_custom_ui.markdown b/source/developers/frontend_creating_custom_ui.markdown index 85dcae24e46..7a4b8eeb418 100644 --- a/source/developers/frontend_creating_custom_ui.markdown +++ b/source/developers/frontend_creating_custom_ui.markdown @@ -40,7 +40,7 @@ frontend: - /local/custom_ui/state-card-my-custom-light.html ``` -`www\custom_ui\state-card-my-custom-light.html`: +`www/custom_ui/state-card-my-custom-light.html`: ```javascript From 39892e28b8f1f9f79c0fc7572d28f7cd37fbd410 Mon Sep 17 00:00:00 2001 From: Fabian Affolter Date: Sat, 11 Nov 2017 10:54:28 +0100 Subject: [PATCH 22/24] Fix markdown --- source/_posts/2017-11-10-ttn-with-mqtt.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2017-11-10-ttn-with-mqtt.markdown b/source/_posts/2017-11-10-ttn-with-mqtt.markdown index 1300f7cd8f7..d619623c020 100644 --- a/source/_posts/2017-11-10-ttn-with-mqtt.markdown +++ b/source/_posts/2017-11-10-ttn-with-mqtt.markdown @@ -21,7 +21,7 @@ At the moment Home Assistant only supports one [MQTT broker](/docs/mqtt/). This To check what your devices are sending, subscribe to the topic `+/devices/+/up` with a command-line tool like `mosquitto_sub`. The `` is the postfix of the **Handler** entry in your **Application overview**. `` is the **Application ID** and `` is your access key. -``bash +```bash $ mosquitto_sub -v -h .thethings.network -t '+/devices/+/up' -u '' -P '' { "app_id": "ha-demo", From 75f174abd7a4e8e5023830cc466aba902cc600cc Mon Sep 17 00:00:00 2001 From: Erik Eriksson Date: Sat, 11 Nov 2017 21:21:49 +0100 Subject: [PATCH 23/24] Update volvooncall.markdown (#3953) * Update volvooncall.markdown * Update volvooncall.markdown * Update volvooncall.markdown --- source/_components/volvooncall.markdown | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/source/_components/volvooncall.markdown b/source/_components/volvooncall.markdown index 24a6200f5f9..acd511a037c 100644 --- a/source/_components/volvooncall.markdown +++ b/source/_components/volvooncall.markdown @@ -25,21 +25,21 @@ volvooncall: password: password ``` -Users registered with Volvo in North America or China will need to specify a service URL: +Users registered with Volvo in North America or China will need to specify a region: ```yaml # North America volvooncall: username: username password: password - service_url: 'https://vocapi-na.wirelesscar.net/customerapi/rest/v3.0/' + region: na ``` ```yaml # China volvooncall: username: username password: password - service_url: 'https://vocapi-cn.wirelesscar.net/customerapi/rest/v3.0/' + region: cn ``` A more advanced example for setting the vehicle name and selecting what resources to display: @@ -61,7 +61,8 @@ Configuration variables: - **username** (*Required*): The username associated with your Volvo On Call account. - **password** (*Required*): The password for your given Volvo On Call account. -- **service_url** (*Optional*): The service URL to use for Volvo On Call (defaults to https://vocapi.wirelesscar.net/customerapi/rest/v3.0/). +- **region** (*Optional*): The region where the Volvo is registered. Needs to be set for users in North America or China. +- **service_url** (*Optional*): The service URL to use for Volvo On Call. Normally not neccessary to specify. - **name** (*Optional*): Make it possible to provide a name for the vehicles. - **resources** (*Optional*): A list of resources to display (defaults to all available). From 3ad0d8035206f6c39e2870fbbe7e9990aed03376 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 11 Nov 2017 13:01:45 -0800 Subject: [PATCH 24/24] Release 0.57.3 --- _config.yml | 4 ++-- source/_posts/2017-11-04-release-57.markdown | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/_config.yml b/_config.yml index 69312dd7804..ceb7d51b754 100644 --- a/_config.yml +++ b/_config.yml @@ -141,10 +141,10 @@ social: current_major_version: 0 current_minor_version: 57 current_patch_version: 2 -date_released: 2017-11-05 +date_released: 2017-11-11 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. # Major release: -patch_version_notes: "#release-0572--november-5" +patch_version_notes: "#release-0573--november-11" # Minor release (Example #release-0431---april-25): diff --git a/source/_posts/2017-11-04-release-57.markdown b/source/_posts/2017-11-04-release-57.markdown index 0779d7b5a66..dc054b035ce 100644 --- a/source/_posts/2017-11-04-release-57.markdown +++ b/source/_posts/2017-11-04-release-57.markdown @@ -92,6 +92,11 @@ Okay, one more highlight before we'll let you check out the changelog. Contribut - Update frontend with fixes for setting temperature on climate card ([@balloob]) - Fix setting max brightness for TRADFRI ([@ggravlingen] - [#10359]) +## {% linkable_title release 0.57.3 - november 11 %} + +- Tellstick Duo acync callback fix ([@stefan-jonasson] - [#10384]) ([tellstick docs]) +- Fixed update() method and removed `ding` feature from stickupcams/floodlight ([@tchellomello] - [#10428]) ([binary_sensor.ring docs]) ([camera.ring docs]) ([sensor.ring docs]) + ## {% linkable_title If you need help... %} ...don't hesitate to use our very active [forums](https://community.home-assistant.io/) or join us for a little [chat](https://discord.gg/c5DvZ4e). The release notes have comments enabled but it's preferred if you use the former communication channels. Thanks. @@ -643,4 +648,12 @@ Experiencing issues introduced by this release? Please report them in our [issue [wink docs]: https://home-assistant.io/components/wink/ [xiaomi_aqara docs]: https://home-assistant.io/components/xiaomi_aqara/ [ikea email]: https://twitter.com/home_assistant/status/925373865802502144 -[wink-auth]: https://home-assistant.io/components/wink/#authenticate-using-developerwinkcomhttpsdeveloperwinkcom \ No newline at end of file +[wink-auth]: https://home-assistant.io/components/wink/#authenticate-using-developerwinkcomhttpsdeveloperwinkcom +[#10384]: https://github.com/home-assistant/home-assistant/pull/10384 +[#10428]: https://github.com/home-assistant/home-assistant/pull/10428 +[@stefan-jonasson]: https://github.com/stefan-jonasson +[@tchellomello]: https://github.com/tchellomello +[binary_sensor.ring docs]: https://home-assistant.io/components/binary_sensor.ring/ +[camera.ring docs]: https://home-assistant.io/components/camera.ring/ +[sensor.ring docs]: https://home-assistant.io/components/sensor.ring/ +[tellstick docs]: https://home-assistant.io/components/tellstick/