From 780b674446d2f255543643683f3f00f749789376 Mon Sep 17 00:00:00 2001 From: Daniel Shokouhi Date: Fri, 28 Aug 2020 11:04:01 -0700 Subject: [PATCH] Android blog for release 2.3.0 (#14334) --- .../2020-08-28-android-230-release.markdown | 91 ++++++++++++++++++ .../Companion.png | Bin 0 -> 65901 bytes .../app_theme.png | Bin 0 -> 166999 bytes .../manage_sensors.png | Bin 0 -> 51520 bytes .../2020-08-28-android-230-release/nfc.png | Bin 0 -> 342309 bytes .../sensor_management.png | Bin 0 -> 43492 bytes .../template_widget.png | Bin 0 -> 50729 bytes 7 files changed, 91 insertions(+) create mode 100644 source/_posts/2020-08-28-android-230-release.markdown create mode 100644 source/images/blog/2020-08-28-android-230-release/Companion.png create mode 100644 source/images/blog/2020-08-28-android-230-release/app_theme.png create mode 100644 source/images/blog/2020-08-28-android-230-release/manage_sensors.png create mode 100644 source/images/blog/2020-08-28-android-230-release/nfc.png create mode 100644 source/images/blog/2020-08-28-android-230-release/sensor_management.png create mode 100644 source/images/blog/2020-08-28-android-230-release/template_widget.png diff --git a/source/_posts/2020-08-28-android-230-release.markdown b/source/_posts/2020-08-28-android-230-release.markdown new file mode 100644 index 00000000000..76d772b84fc --- /dev/null +++ b/source/_posts/2020-08-28-android-230-release.markdown @@ -0,0 +1,91 @@ +--- +title: "Home Assistant Companion Android App: New Features" +description: "What's new with the Home Assistant Companion Android App in 2.3.0" +date: 2020-08-28 00:00:00 +date_formatted: "August 28, 2020" +comments: true +author: Daniel Shokouhi +categories: Release-Notes +og_image: /images/blog/2020-08-28-android-230-release/Companion.png +--- + +Hey there, its been so long since we last gave an update on our mobile apps we thought it would be time to give you more updates! This time around we will focus on whats new in the Android app. There have been a few releases so were going to cover everything new up until version 2.3.0 which was just released to the Google Play Store. + +## Manage Sensors + +Starting from version 2.2.0 there is a new Manage Sensors screen that you can find under App Configuration. Users can now disable sensors they don't want while continuing to receive updates from the sensors they do care about. This includes turning off the Geocoded sensor while keeping location tracking on. Speaking of which the 2 location toggles that used to be found in App Configuration are now located in this new screen. You can expect to see the live data that was recently sent over to your Home Assistant server as well as the attributes and other sensor details. + +

+Screenshot of Manage Sensors +Screenshot of the Manage Sensors. +

+ +

+Screenshot of Sensor Management +Screenshot of Sensor Management. +

+ +## New Sensors + +We have had quite a bit of sensors get added since we last spoke so here's whats new. Some of these sensors will update their state in your Home Assistant server upon certain state changes. All of the sensors listed below will also update during the normal 15 minute update interval. To get more details about what to expect from each sensor check out the [docs](https://companion.home-assistant.io/docs/core/sensors). + +Available for Google Play Store version only: + +* Activity + +Available for all users: + +* Audio +* Bluetooth +* Do Not Disturb +* Last Reboot +* Light +* Phone +* Pressure +* Proximity +* Next Alarm +* Sim 1 & 2 +* Steps +* Storage + +## Sensor Enhancements + +In addition to all the new sensors mentioned above we also had some improvements to our existing set of sensors. The battery state sensor now includes the battery health as a attribute and will also issue a second update call a few seconds after being plugged in so the state can update faster. The WiFi connection sensor was also updated so the state and certain attributes will update upon any network detected change. This state change also means that if you have multiple access points you will be able to see the device switching in real time. + +## NFC + +The app now supports reading and writing to NFC tags so you can build automations off scanning the tag. Home Assistant Core 0.114+ is required for this feature. Keep in mind that certain phones will require you to have your phone unlocked before it can read the tag. More details about how it works in the [docs](https://companion.home-assistant.io/docs/integrations/universal-links). + +

+Screenshot of NFC +Screenshot of NFC. +

+ +## Template Widget + +A new widget was added to give the user full control over creating a template widget with just about any data they want! Users will see the template rendering in real time as they build it. I personally recommend to start building your templates on a desktop as it can feel a bit cumbersome on a phone or tablet. This widget will update every 15 minutes or when it is tapped. + +

+Screenshot of the Template Widget +Screenshot of the Template Widget. +

+ + +## Theming + +You can now set the theme of the app independently from the device theme. This is useful for users who like a dark theme on their device but use a light theme for Home Assistant. In addition to this change we also had a few more fixes around themes. + +

+Screenshot of App Theme selection +Screenshot of App Theme selection. +

+ +## Additional Improvements + +* Support for H265 videos was added +* Entity state widget was enhanced to allow for multiple attributes and a custom separator +* Widgets were enhanced overall to allow material icons +* Notifications can now use `:smiley:` like you can in Discord +* Lots of fixes across the board + +Special thanks to [chriss158](https://github.com/chriss158), [colincachia](https://github.com/colincachia), [David-Development](https://github.com/David-Development), [JBassett](https://github.com/JBassett), [klejejs](https://github.com/klejejs), [noam148](https://github.com/noam148), [skynetua](https://github.com/skynetua) and [uvjustin](https://github.com/uvjustin) for all of your contributions. So keep them bug reports and feature requests [coming](https://github.com/home-assistant/android/issues/new/choose), we'll chat again soon! \ No newline at end of file diff --git a/source/images/blog/2020-08-28-android-230-release/Companion.png b/source/images/blog/2020-08-28-android-230-release/Companion.png new file mode 100644 index 0000000000000000000000000000000000000000..28230a2d1a6a6a416a68c3c5a4a075f9c81a3e55 GIT binary patch literal 65901 zcmeFYby!qw*EouWA_@W`-6hh^kkZoKCCm&+$Iz)L0#cGAEdtUl(v5TpGt!_8AuY`? z#Mz+F^F811df)SY*E#3+&$)j4x|G>_-}_$o>U*twtuPHWg}b-OZ)0I$-Bo-dtA&Mi zy$lQMs>dyC;EDQUUlZWZ6_}QSG*-zVlaq~(ft!Jq_7BHV%^d?4CC7d-&Y6=Ef#B`g027H}s{|IE$JS%izr)6asVSZVBU^y7G4~VFowTokcGm)t~SnYHcpPT7c*K|I=Q=v(*rC0 zje>*o-_tt6{*VbE7?+oYGZzmh_XSFq10mqQ$2q&Z+Ft^PfVrUdPzR`^8w?oB^Y>Wi zXHITTuxC#HX6nCR|2F^tX;oGKhVd`g;^6Q%2$-9k2Y|*Og8a+TFdc7aD3=x#=H%`Q zhRS&W%VhWq85ogrd5=a5##|0 z3Ucsr@?5S#RaHdM5$0y$2!<-kiqivVa@yEHMEJnmyq1E(LL7onuq6jbh#$-$%nRHK z^9fmS3t0*XK|lbYOA!*0bppFz$mGTMztt1s1P12#ujN4nxCObPf&v_T{FVY7g2Md5 z92Oveeo$dyr~tnJgqN4!@~_#{U2OmhVPXHzSua)v0cPZZ2=EJX3-EAQK%rI~5MVYA zkd-Ar2OoqF#LaEV%?lQ^qNlwO3K3u$U`ZAiYA8+*pnCbx;6ga<-G4t6;^hV|E}o13 z|GYQ+5AXl$wXUNLzzbe_+6%GzO@3{_!U1FkU|l}buO=!z68C{pXjx%|94_IY!OG0Ra5O$pK0$1%ugKaMKO2 zf)36WjsWC;%ERUGi@E=AhI9P~IBHN&S_?-At-CW|wrm`&X{`WFa(9Ko{tcjiKmI>K zQg!mUnBVOgl-5RFn^wx%nbysTR?WiFomR#IX7O*}{im<~6Vyu@(f&6z`UlzQFFxnG zFzmlM!u4->_Fs?x5@abr#bAKR`Bxm3_}6+PC@cVoH3-5X0OGUc01NR$IV=SPggJPu zAcBD2a0_u;fqpN>-sayf>tDhDt+-DBQE_th{=;u=sLOwG{?gowSb%@43i!fULLv0D zzaQKD3xn}LQ_bJsdp?5#O8KuX=f}KCw?VxSE(>R8dmHej+2HbUg#7W(e>3xv`xndyl<>d9fmwL` z-xG+Bht~?i$0NwWFTf+fA;bsRKuaMZehv_X56UMb3=!btJ{2%4uKd}BnI{p@we@{0E)Yax6lJHMy`+EtrmvZ<24ZQy> zcmE?#{+j{+l)L}^e7dxvzpW0}|7wu_>@0p0Q~p9tFL#h4|H}0IPbCr9Qi=dOlmD<+ z`JdR_3%S0S&FTN`Ugd9R@{g$DFGCK5A{RgZj)8!izoRIqBcQ#mK#cUdifbGTYv+-o ztdx$I+4{`QR7QPw!4qvNmR!|J3oFy*jKIHf}}+D>m(GEW#x+Wli1)p z%ni?Z+PGTJu)r-42ovs$SFYo!?fsjBojv)!AM2Yjh`q9`q=F>8Lp^(LF+HZFc@u06l|6JX<(i4(lf8F_oU16vHbL|LVm;Lp;dyKT@ujlmUV65=J zUid}+pAY^)r6P(=s$R$z5y8b3qplkwd*-x%y<3>7El z$uzbvA2Ke~=W0(V$kt-kb6h4y2nQwV@`Peys>KB#nJTJngy#8`zj}MYp(mBb4}z&) z>N}(6pBzwYZki1fdfYLS(w>eT<65qv|FF}E_26=)Rzm%R*^|SRiHo{=2Lzgqp9Kdb z+^2>YD5vS^ACcU7dWnzCr*c6?Hi~JkN`g9{FN9Wo8UahUy?GgxWEZ3UNI|5dDX%AU z|Ly}hQs?&#>nqCETOd*4u0R(0+aiCYi9gJMevC6&wB9zLifPDhDMxs5a~79%VhS~V z5=fgAQ%ZAqKL0RhCvB}@v5CUYYI;~d;-NmJLQa>u>ZJ&(IwsR3zBX{I)fK8t5?#Eq zhTCMPAiXKU!+AP^#3o{mVHwI@C`~6#Ai^nm{6u!~F9}sOTOf>=es597_CPlKh558L zH8xWCIOLk5_ac|VLh#|;KIK3O_P|C4x)24@27owSe~5z}ZkcGp>trRniqJ6HloY6J zVEcHs%2C|k_Mwd%A}5>h`VaPZ9c}I^k7xS)dNGRHiQ`{VZrSaqV) zReOGZ`mBFg7f&$T&nx}kW~Cqzy_vC@swE-3vI%1)qf9YWsBtheSOQ&d1?2A8)jxRL zFnUl8sgyy_O~iZ>8xevbTOslbF_nCMw-{CnPQK|S5)cv))c%Ff<5B}kg4~Aun`%RM zv{a8LSeJR*C`@>3FC@96?#C=$NRw{gKn|eVAX)d#0Rsn zow~Q|1?Aa1R*I?%^Y=wEmj=Rg5I;GbyQdO?BU>|#O2U4#d+Fhe!! z(K?u)QBpECX4FdrtkVW%>c_LgF5h+yIF@B-$&R3yC4hUqOS-?i1#;o@0*7Gyl?t&gPGWLj)i93?7T& z%FfY0yy=G*#2eL1c4^%1Tr=?buC*e!+qN^$L;%>TM1vQ)@-Na5b?JP3Jj29CLsH=NT-B9C!bwdi91Q2TU#?|V|bpK&8g z9rCP%f2<&EY0jy%SEBA&M)H%U{e0Pjn9B1?G5S(Nsy>OjpVR{K5Em zY7u+iY`kDLMVn<5Ey9`(vyIPO3^;WIJHy9om*o-5>EyU``WdAkCG9?sg)9&aC3&CqLD>Zr*wMu~7PXF= zvXiSj=O(K8s=iCoN=;)t%=r5c0>!oQP%x6U~l_qC56+&-&N0ZZIA@=a`(m9*p zTIugqCqrR8=!VI|QT^QA+n*Oce6-tq&WIf}3aV$1NA& zoVuBhr^Igw^E+qQh9$H6pHA9}a&r@3Ev-Iv?bu9MycxHgIac(hC&*SD1tnz8#4qgG zq*^`wu1m}Ia|-2-)whLV`}rb7Ki?m-O03ys-*5SJPQuH_Rd zSI5yN`a~qW&Okjwy~i4lG5q#8&vRl*pE*{*mSulocIUz5uoWx}33gT8EPV=w8A$ke zC-`}RRg(ElWtXxBGm-dBF{k5+?;1RfO^kotUSArwZ3{V_NC&rICkdF>7buz4Gk@gp zy5YsarBAZunKxD;zYF0eq2Mk-xSSKYPrKhJ#UhHC(}*i8HPhu7%lFsE(U9Lyy}>t1 zr`d$5tgO6Q`dx>f!PmzsG4=hOwJ&%>#<$rJq-gkt3q~wk)a%L<{@M}&dUGw*(txeB z-7%G>;}n?u5Dq%9ZV({>&#mH_T{+m;B~e)D)7S5D@}4#>C2yW?UA#+&UQN(-ohr!t z{GHfDM3Vjd5Tv_vvebLDp6@2s3t%s?d((jc{i%-B*z{?wkwkhfr+xDWPUlkBZvI_D z&ZXwO&* zbS6xmA+e(cm}_b3ij-z+`loQTSsVN`JIWEu+kj2)Ehp~v=QK3p+Vg5#S-8Prfo@2) z|ImQokC$t9R8^5^UDucGZ_0Gc45XjP%668$;+Eub|9aS}%2O+^8nNtZ z`;epFXQZN8l1TxnfUbpfa?VI&`^DA0HNHn=Xi5^RYP(Zj%e1$~jB?bNJb+fI&ZTFq zvzj|Da?VNcGMkGD@?e)dyVY|O+3|&S6en^B{~!mV;5q4tHJvHAGaa8k^y3L{-fkA^YdpfSEXslt~d^xL##cO4)${v^L)}r!@^GS zy1S(e$9pH=7U`p`3hUlFre`t!XnQ6u$qa*oy>4t7k;J7e-+Gj(K89E2Q16Ru zqE=BJi+8ZoJO5NH!bpKApByPV)4@#I#PTBX5!Fcc5Wtw$Q z=iV48H%cNgQjJ0cHEGHrJ|&)FX>W1K=ZF?RiJQgW!?p?ZXL+1s?v;WvIcdwO%n0A` zFO&cu?5V9!q1wqng@Z$J3D3u;b?1wK71kjo_}qsJ?nnrj6yX*5X&r zUBU4Ur%B=BSm*Y-I%ZXtOYd%&_^#_ug$<>j+8T=@t&5JktAE5|fuDItLIV%%wKMX= zm%H_3Kp1lgiAR`Sdn=l37oC;MpaM+V(o1zL?dNAV?HIL&9cNSzvRkeZ%jev44OZN7 z`Xs-Q2#o=;+%p${8(*3+Ow!?+Vy_x?1!8uJI!J0|GkGfJ)e}d(EdV?my0{s^)0=vaCtdcjb25ck0=)Dojj&)_d>x zDV_Ort>10N4IX(@BK14i*f~3&P z&1Tx-;I`1`3r>>!v18Y_Us71Qp2jA1Edv}tnIkbBc0+b}JvTXvUGJJjeB^bl_Aw7o zm=W2%Q|6$#oG~>?f8dqMAsm#TeSXrT$#IJ4b?{ZWSr+uU*?BO7?H!(ZQ$?@YfKy%I zWYSv&SNp3HA3iq@gG1-m56Jj%*v4mzB@WMwXLe?)A4Ui6kAzNV5B631TkMZU@t`~C z#FvSyvA#*|gV2dA@*9}$XJ^H_d|hmx_thd8s*0_5etr$M-xkVSmZ7*V)P=O3OrfC} zuv?saAHhI~Q|gD>py{1up{E~N)e~TCcRd-kz&Q(n^=mw2svZl}F{M164{BPB-7a45 z;tK0ys=Qu`m+ybjYE8Jap^fqug2-uDR{IP{YMcw^pK(;YwB#hInL^l+YU%6w-rU7d zIhHu$^!bFa6Gyx_y+(#!I7lLS`LNX|dh(m^U@nAqXeOfbr+UG1)0Uf(U_no;F&S;* zs>FC)?BLh1jgIVJa>~|b5C)3xTON!HbI4#1x(RND*L*uNRda<%$(d}u&!<599dAXp^2anIXg9f1 zcM0yiTRSk`(Cpf%t7c;YOa$y$Xw<0|`zWme=Ah$fFrONH{jhK->~K@1_tch#q{0b< z$hVwNO^vOp+RX5`qi7$=lwgRCydS7$RunZlfHwh|S*_gZ0(^JDx3ZJ7x+Jz@iT7ty zz8;K=SE`C@6OGl|NQ@+PGq!BpXB%W2Nm7HqJqy{xu1 z8SHUUPv$pf0yuL&&ldS`ye$)PX11Ws#7#B<<2+eEN(On*SzQW?`C^Sczns(LQZRwhiCH-5{T?aGaTOZ@Csx; zBzeaTDi*sX$@>2KA%Q@Wtl^s5E&JpE8nr_`cTU^K9F^B7QO#Og`F_0gGwa$Y{N+#e zRye~mWsLMg92KmvT8C(xX>+UT3T}2T8yKD$6H)=e;>on&gj|;KjDp5hwt~nq{BIG~ zqT}{?>cxicr!st<+vZq9O=PIFd=5}@SPMCL&|G|^wF2{<=7XD0P!F(Xy$Q+{8@vrT z=_~v5XbbQBx?$I#zIv|w@W~-+veDy6DkY*b9aZYLD+|}z78`w)r_Tgu(-pccpJL5>;dU(JO-u%Zl zxr06AdcM-y5SE9fN4qS9u20&9em!qNbs?LiZQc<18J~KDIQ@9Jdc0HyF1;T=aKBDH zM&QQ+lyd^cOxt~A0$64Mufz0Y%K z1>dFV<&oUm%R5;p!jNzTw=|vpn$2D#5k8v#Dfkjs4w2^&u)I|B9(2wae`od#k$3V0 z_4({^n$VU@tyPQQ{PCM!{L4s?X{3nxz{&kqy2^3&sUrFttN)d>d_tR;!%d~`QBEfE zC#``Pkwe!IOVxpfpwj%Xh|O@X$8~2URxA1kO%B^+WH;x;QsYZKk|(w@#QB*S-kA#5 z7>>TWnzE~(Vi_fFrG}roSemZ%B)ZS;A@*@Wjq1C5MI8lJi{HN}r&goRu2z&XXHIvn zgqq|Zq_lqF&R8V2Jpn}~ok8R!GHaLTbbbbhd>m5K6L_^QAsT!UEnSdctV%BDD^uYH zu5a9qv$+ddlcTc)I@IS(0&c$qCpBSx5cy4C1?1S>aD0#VgDG!w_%@mW%=>dkb#ye5^{Za=n!KbSC|kn>FT* z>fvO<($x=UQp4y9G#^WV;{JnU8-gna@u%xsN$9OY#Fj5w8b&mb&k17%Hz}lr++OL4 zV~a>s-&CHAGhq>`dfP>7^BuTeidBdMwxD7$Ht~UImR+V9bgr)1vDeNrp_cOMhB5IUb%U08^GY%#EBNTZ zoMVYjCdJJ{qdG@Rdnn9+)7lIOQnAm-yAy3o51mx6OJ(7>W#yuL4NLCifiABiqhx?0`L2j)@D5LK_$=^F8vN7xUjon29uPRzghR#WFz z@cTy;)JWn57`)aYyX=LL10R2HOizc~9gpdmp7VXtH@T`@=U;6%%{d2iRSie)Zu_$g z+*~cw05nF*-6kd@e?e001E9oAzkJzJDIz{(3`=gQ+HN%R!~NUI>NOkU4vyc>JpUHI zl|L6=#5lSsnUM}t+;E~I<4d;T#u+#os)w*TI6mAQS--nMAZlkVvS)p)F0+_7da9!8 zwT($_(9uqU*YT)pOICv6SI+M?aKZui*UcI&aOn&XIlE3t#4)+c6HmNfrYy?8RW%6>u=kMD{d3zrarEldBj$*C^;Z0&Ug zsM>1tc}4YB`oU6F%MXcVoG-ofO&s!--$`otPtO9WRp>t+zfhJrWFvWfO_XegzqquI zF#?6DPm8veC`)Y^ZM!{gT21P>WVW@lhg#)8>2jaC?58^)>xLFC)W3oLvAUmX<9|}| z>!>YT>6h+q*$GTP#W%lw_kN&le-9m;OI5Fi^4e`qYE63jooOH;aFPD=3zX@J!)g98 z!cGzwTsl-iAE%hL>RDfmT~)$r4;NeY7|M6SOj(q=4HCBaeBV1tB{LGCqH#Tg?uK`N z@|LsfFxz$#**o{?(8zi!EF_4ifqu51!r9CJK|FEFV@oA{#iYu22y3}JoV!>r3-r9PLPyTOf>djPdO70?!dmp zmvF-RPXFG84>&M^fBb}>K?RTFG}JJATzV&$ka^hjICyTyKU!&$xfc4al}qgBE-%s$ zj-#SXK=fwKI4%0CDK)fKHP}1Pc%m0(k}QWITN*Mzw1gR}S4xYG$LYmQC86BXlV6FK zPE13657})5zZ^jOy6Q7jy3Hj8MNl5YIbz+ae^z?3Klp0eYwlOXR5O{;;x|>ea!=hT z33c6xjzbpQ{C1k_%GUTog$CXYl1uAMJ*fc(mE61O=|ef3gg5tGa%m)_!y&jpnrdCO zhc)`8yBe9)^Y=4@Qcf&SW;lucNA>0UiF>v5L6AF^i&A^pkAibedRO&sIvbvl4B#uj zY?r--%eg*kuoF&jtPC#-CZS+wpwvupo`qiZYHX$U8r{&^YG=7=HLGEk6zw`iJzCS; zun2v6b9z3oyNvJ3#DXMZn1q{##6)6l4KSplm-%P!pGNS<_bOfnERN*1DSOtcq{ETH zkn&F4R$QiTept%&G;JawcrP*d*p!#r^2Q)>sXnTA<>&f}ny=AE5K@~H8cwP#1&dS0 zojfyrN^s3%N|2n^ck!8k%yh#xXagIYtC$|4Jw@ojA=!gBVsz-vA`E` zkm`{yV1&FEJLFIrD}ZbTIsO3(nh)iWY#?N!rypWM3h*)q1T@#~@o^a_BU~Lu8mCau zD(lKQ2hb{3Vu0>d2p@;r&%)Q+^$Os?kJ5MY4rAhiuiSoWx<$xeH^$VR-L5_uF}2*Y za_`Aw8gU|x?cIczn}zQ$vS2WM-9FK8vQ>#hDO#6l5)y(NS4w4pbhKE-$l}x*kASB5 z_mRid_eE+c-QO3L;DG}ABB1?^n;QbABTVIGJhXlD=Ck)=bE^2b;N`Sfym~4t`s$|$ z&@$Ep2X;#BT=D0XuCAGvqz_&Ey?u3>0!*v?++h7?WM7BGtuBHs)EPZ}^W|w)H-oat z)yFegHbeSM$phsU%Os=SPBZ>J4ki{=eHh0g)|CxHxE$`C1NyO5C}-;j^E5IcYRZPf zKG0(iQ@f6zXBfl}p4zR2^$F<1{01LQSqVSG1i!61Tl8?}y9QD=f#b3{mEYPayI}oW zptF0Jun=n%C$Rif=M`feimL2neY_?0 zk+m`-ma9ENb=R@oTbxcXz+P%86QTx1++E!l3v`j4byqZLIy@mq?-1*HBu(HV?e=6) zTfaqG$tg)Bx7j4k_sk8dbLOb6(o`ePIagDs6!2@>ws!5tp!tJ-56s|hLFJIjeZPh~ z0QYx7r)-5ED(u9i8)_*RT)XF$$1jk|NWMLC!y@11iTf(0N*|s(-(ABb{B)PWSG7G) z`3@C5-6Hx#FM>%P-1xXmb&}qG$GHda^FeI>*(Q-k`hp_xI-i{1zIlt*AfT_U49MU0 z4?dF#TN3@;u_&Z3zY);~q;74BaTNXgV{ch+>HIi)Kzp&6Q3$EhOm26W@fLkz=uz}k z&4>A#;-kZsm5IJWx8pG7k7GHz?Yu)TB`nqNW-sE?&?KmDsdc-!OPYszGQ8h@v#5z4 zU)0^10}j$I@|qMzZA>d^I=>TihQJoad+zw1pTY*bd6E#moDWme#^SRLYv{N*8PN=5 z>epvj~6xw}Kv$>Qor(KG$uD=>RVaMHc>&hMHMmQsM1pNfS4xPJ~qv$OB%VLBx|dR^U$ zW)Tm1|A^VAPC8>KJ42$`sDP5Q;QXgPgR5{fG11ItGSxDtxs46MW)DT#vu85wn4ceB z`rCN-5oJv%%#H)cP3mH~kAR1o0z7^b*BB-gYF(zf@bki!tntyi{(|wnPw3BI;SDvo zLv=3iI&$+@C+2nK z;m+~_=v!KMw*&stAxN(XiAw*vW;;i@n@_0;%zR`@jbJN6n44OC2aF z_wBPY@w3}cXT1F*J17aoNLxnQ!?6-+u4PGWXV}tzdaN3HvRO(^k&uh~aAU;5G?Hm5 zrL96Sjmu@wL?jbM6gMX$okoCsY**n5C9X(`LEx;|MPDOQTRieXg2^S)Zf7 zIFL#Ls*azN1J;;9xHZ}_a#$0Qt?0qk8o^{eEZ@em0~X;_L82{KdI5kFYdjg^1lXwa z_I@3&=r1tWz1;7_3l)!uz56!ab$BJ{zg3@fY<9!J z4^8xpc~rNx2g^FG?U=LUmCvi8OinsO`-bo18Ntil#*Lf-+TGV;eDO#)ux9N;5fQII_^ z_4U#LLfek!Qsy7auHCZ@eo_V!{)Q&W{%&UMmx09^y`R*6OtFhEla!DF|Dr-y*TP-= zsBxy=InlJ(%9A1{*GmP9Q5a-N<$6NlFL=!z_i3hn4=vwkaaV)(q&b4bHT!WW`qhWQnGvRm?s(&d?oBy#8Y?MXWm&$iv2EWpHkQkpdn ztmA!TO!eT^yFCOt{^Z3ZSB8j59ksKpR2$nR(r%F==Ba~hAFh<(I0y`u-t_0_4y-d} z7FY8ZdFH`od_Sf}J(+EJHMqF7hg61mKYHln0$^CGu95jys*J~!?+Av-9|v4`FQc4| z(z{i3wa83!vZsB`-Va%~#$(=UpV%|~J_?hiUU9~GN*8V!79Dh#4JlV02V3jd|>Q*R*y1n7lv?*(+yD<$P2GLb+cs$P+ z6%>%~lPohv$=&6BRure+JIyn@o9BD5t@`fW3PO8p|MHOd$kHb%6vPiufEmMM=mjU`m{38dNI`A*6Ss7Uej!Ptn=^7|>&@+nM$?lyh8_{9$BlhebE z$(w77%1S95FFOhgNkHmB8Qp*^dsNkVX06|hei-^dTGk79FlH9!AE#e8o;OA9UUmE)sAUE41FTTEAg zcPHrO{Ecu1CR2e;-C_cp2+;XiMy*P656$q+wV2Amu3I@SeOHCA?A@M)!3R9?c4pSv zUCx_lSXa~sQ?KjiZ+NY=oxDuQ@K;Nic2V7rm?CC+s3<17O4*XvgK9AN?c~UGIs5SG zHI}Q6M*@W8vx$GlADGsBm#)QMJXiev!}Ltrsy9lFHc#sD4|6v9d3LI4(%kSOESXA$ zN+YajzPgn@yE}z>RyQjvPwi|-RUB`HtJgHl6lX8Uz{$~+IOZj(`lP;pV@9bj6-c}S zb`kn|O1b19pt^VK6Av!DR{>{M8j#V1jiYDs>2529yE_MYMFj_EQ%gd5xF-BT9y?h? zCOoXSJnnqlAl^+C3sjUXaWOQl7%|@?OUwv5&B zPa6<*kjXpCF;%~Z%bJTU-?q~0(9pc=O&)Ij z+Z2;|$B=-o*Y9%sUW0>k_3I%&-R|Zrc5zNnFG!x3bS4l*9jX3>5~-mtt7!u}62_ z_wAfeq_pp_P$&3(K_;~L3U!%c+)uh7!hgG5vau&-g2T`^bRZLrR3l7eEk$v<# z(Liy=T>jkJB1Blfx+Z?w0y$u9!h8_0{a*R`UGbqEP$zyZ`|$H7ndZW%41F_xF7|yq z@gwKsiI}ePi_}}O*1=e)@{&rW@?4iCm43#yT8Sy?!8+y1>^_g-1UJU5x#_yO?e(OK z#adoe!sN+H_&cj$Qzr9VbLUd(S*)ghO#<@+5}axy2Lef6gYjp@CnA%=&hS* zG8c=fMa49IqAG*!6cEqG^P>zJ91~!}XQ4j+Bqn;}Zh!Io3VivQkeiy1ihqEJRQ_2Z z5OV%x3vfo7=pm4&I>biT!BQGEaUn_rn*l|di-?=R##qPIqT%BU+ zioUwMOrur05r;`Nr$A5j$jUc0%$<(U)bLy0ELREGJ`=T_-#g&gwpNXLP>6e?ZbA+B zmdH1(HH`GHj)=~vgD4#1_^eQ^yQecY3lCXsp8HSN?%hvHqM0NYY7$wk|Mn%jc+lI( zHCnm3bmBr!^l&hRcH^L5Wvv=vyN%1*ygv!oy-<^RMctM9rX>Z4rIW^E`#?owN5g53 zSw>&@-O?_Cfevw1U`rz{2}+5jsaK)aKpv8$pmqWim-Pwx;lY~95>*_I)?b8M7bi## zm~!}j_+`qU9iH;B){a4SrM-TPg!;|L*02v#sz@t73IaR1te_6!23_VL84bhG6NZNf z9`cCt^XJMR$Dz3N-ut4M*_C+8b=Y8=p&m)>kbN{oPe-eAhnJKFvInRyI`O=6CE~(a zJhBMfSo551%CW_8y5OV}U+Y17raK30RIN5(2=>XQ3u@QbM~>f4yT~P&h;B^3e!b&Z zjI~s`$H8S5&5#`Cn*@kdhlD>wCEbNps3m97POocW7ybq6uewc=%w%lYlw2WN(U+pwPP-LeKbi! zEEg4N<+Us5i$q{C;lWs`kJkL>=hMdD|_C zHSiA3zTd5Em0*Xn%`k{`qP~e>$)LGxX_a_!jJ0+k_;?A}yp{~U_ zM8~qwgJ7mPF4Xqn_SPBH*JL)(#w0OMF)2=b^~3q8ZP2>w%vP;2NeC6o{4H#{hxhL{ zuF}@uXf`h!2XTMLW(uR3h}Z%JQ)-MccG@jOspw+DzRZgaBLH_$QCOi;!RnHe$_ zTHA1+o&qPbbL?PG&Wl7v0_JR0U%jeu3XLvvzRla}rZ0q_XMUK}h%@$FK{I_MNX|L*nCs4TH(=o7;jGZ*gZiRyplic=Bci3bdX<| z4_?hWG2vy1^Y@}?r|(02`SoVBxbq$sgYU)WWj!Z-aAiz!>q{pHMM9TvdL`h{h-3C3BP2> ztfXfKDLl}51^->?g(fZ|T&K*nP3H(>@y$eb8$?(7os9wlM3|yIbF-Bl`a&lYefGWI zH2L=-K&85k2j`%;ikJTA$4lfvft9U%AN8y_AT8`||4 zRdH?Se6u%~k1V*hXCpwp*;~Sk{<7iX-jtq{5Qcm^*PL7CzX1e~#RoGE_^YRsDSfu? z1F$XuufnDdpZ+@`ziHvS2)bJmg+oT!q>*+^Fq1O zvRfd=O?uO_rzL5C0xq|%YuI>XAPIVx7@b$nE#MW|xjE_!ZpGR6ocs06A|o(?yd_90 zlED&(4!~i{Z+rY*!|t}`iVjKQM{y59rog@KyqNFA=)S;IN_e$6FTJmCKaHK=wbRU8 z`9*CBTp-RgNla9rJxsU%EdBPq!f@8A|N3>JZy-V&$_$_XmQl6wMs~~$X&m!pYIwBsp?mf;4CJ3 zLo&<-n_t8pN#%DETt?~(%IbJPVg@PqlL`~-I{P>o-IN|LZs;{u@+$Qkk_qm&HT*<= z_CQBkqKSd73qd-1mt^mJE;GAf<*O!IE?R+aPV8wInvFyx(C%!!HlB;ZetCX#bTBR; zp0sf|$MDod9{B^akjdk{#=zi_M4;5E(((>{+?w6+BSzD^W@!4|#p!0T$svi}*y;CC zoE6Q$2bLuxy%W>^7W24SA&4_Xt!SKW^$g6?WcH|#06nd_+k3ZI_x%D-$MYKY^IwS}D5iUeiI>#` z63-q-Uc1i219G?fl@iV)5aHpOyRZuc=*c1S3v(i!{>Uxc0(e1K@>ItU>MEL`RRV!+ zNzr+~J5H`W!hOU+=|5w3nceNrcYnQ0?AL(ofA@QhJ=%QwJ=CuXHZ3vdeNlyV5xIyW z1W&fJvUd7PPOibKs*ze(V3N-Um)ZTq;sJ~L z)DlDS^t!vZHo+8wd9c|ZXP-{?_G&2g4&7UqM}VD!Z~kNk8{*8wzQ@Tks=%G7 zuv9%vnVm3$FX9XX^)%vKAltXoVetvcWB}W)KmF3-SL+{@B)r^zBe&@zVZg^kA4*-q zfA&=TpU#WFYV(2g)BnHQO)4F0JRin2s*f71>JdH24>!^(K8pxucPGLrJb%AAIbypN ziAsE+n0K=sMc!-=F83qpjYG8H3P#cix@fG#7`Z#5e5VFSqIMQybM5QQZ($&%FcLV;uvh|J1%=hfSgL`l3uy$bXH<_fswMHpbtqy5cYn(px`S=@bOHX z|EG%)7gx8b9Cq38oUO8U_mkSEB};{KjkRp{Z-qgaoJLK^XYA5Qwq%lfO*5K;zc*-6AVAs>=RUKs=`sE%68 z*BO99t=a^4eD=M>+eW``uOjT^E4}GID81mDbqHtJp&8TZTN~?)04kX$OoTYXyY&%U zK3&Oqrt?7F!^goP`E;Q!la+Rn060#hfcj3%-Xk!){~dX{^o7G*FcrU`hJ0n$GLgOb zGXz@9M6oJUkx$2%LLpNjHzQbpd6pf0{@EZh8}Lp5Xn=myM=1SCN$M&6&nuyyM0o3uM`9tRi48x7 zh2-UuDGz8Qw6+nmxirVEi?wV;8IF3=N%njz2o9NtMU@L4}Q>2AH2_ebf z#rRg&!tc#y4OY{LzwMU*gf!XM5WDQ#H`VJLy;A4zx~~WrW=%iM>G}4kZ}4*kKmL{L zgrcuUM*2MN${ID~b6CQ02M_e9RG|y{)>=DRKuMh2i{-YBeLC-+`B0N75l_CO4EKm0 zNvipj)X+Qw;i-VliW+iiT6i0q7~t4Wieo62D13i_R` z#&XygKx;jB8T9*<43CH&7SayD1Q?}>jGaxazB8%fX1~kRH)uaM6Bio@dKcf$aK{Wd z$qMM@d>%Z~x@ySGEX5y$kCCvl0EHP54IF>v>$mIfp3I8s6E1BI-Pw5!CGZ}tGdTFF zV%lzlKHAI{13$#LsRFs4NlG~K?xwlNbU7F6oY)svX?l87=bTPuzzjW-H_UmIx$RL4 zh~E@qUCK&xn7brJQBKH)-1`9B_=CdGFd+P9afP2AU_U| z`X@QOc@DnEUPw?n|B?c{bMj@7Wve9f)5%#@R!>hh@W%ciP=j&Lv$UWG%WNi)m8E)FZC6WpxtY}4ftkPDjFpk*jQh3 zM$Vg0K8W$=Bm-YgzmQge^HjhFZ*wmTg3n}e10tr1-GnW0c#dq0lnO$lUIPV9p1oT} z^NB?zs8{f3gnF4iGvv$i0a^JGer}%9giP$s;-ZN$rS(N32E^qHhj5Irt=h%ZI&{7C z&vkP?OIts^cKQ(yFFWTQT1SL$o6q|Az& zzE-x>x%Q0I+~(db>A>>$h6d1{t26@1ERTY1_gQy$1eezf2U|b+?Pf3OAg}&NJvZ-4 zt1Mgnkl0{vfu(+t?v<5=X0u;45b>qYoFmqYAH7jHk~Z?r^r>rtoTP13Sg9UGKZ%}l z(T@iBqj5H4hLP_(Ozrx3k!V}P{fu-~#f-k#mqX?q7fo=0@zr`1j-@A7#M1Jj1sVM6 zYz49MH3Gsf?x1=D`ZSZ>P0rz0$j{!ow~Z!}noM=x`LOS~U|NntPmGWj-cN$RYiE$?w)G3OE^)E#sJiXQ9f4WNjaM zD>DTd`_|IbjU+es6jr{wHH$4%>V)SXZdVPc_GR4< z_Seio&V))o^u|`a)1p1sHVPLN!VB1K*s_>^cDGDTz!M>88j%m?m|a~>@5MJsr=?{( z-<{4ZJ2=Y^DA>ujvzB$0t7JZ}9Y#gtKatq^mR&!CCL94G82FWIHP5V7 z16`PYCO;UJy;yck>HE8_?f}jrrA_mo)*`?F*gj-aO%-`at3oUVp0t4YdD3HAd8!(1 zQ=;=W{0oGb@CzN}vD4HXT$D@FND>A1iAtd_j!g>M?0Nz!gUp4p%@oY(8LWR9VI%BT z6nhv}O=w>EN1OWOkQ?iNdX)n-)rBLEY_+B$iVk|XqJNoDX~{I%33IT#MvQBX(cl+2 z=*SGf%PhB%s&o^V?QS)hBut<4^-e?b%|n0qk7o2gDXmM>nFzB;tJ2 zeddaKqjXbQobghots0!l8fR9seeJm!FvnW1=fR)$Rs%+_%QB@Kzd*eT?Unj|&7f-4 z(lhHAYvc-v)yI;a;a8M2@gia~S?AI->fA4;KXN|KHM38=7N1Lf_h2gWA(y$gS^^mR z8-sP%qIiAmgu>ZwZQp!F58agQ?P= z^V}STos6rov22MEDQ6zX73O_>;3zq;aHAd4gebc~D#>L;nW&7+`0^=1Sm;CN*CZEo z6L~3f^i1}~>d6s~dwMEfPCrmycuF}@6gA_-aktMsoPI$GYZ)H`GL7Y*TVDYm$hri>w*5G{S&I=6${OX?3wH9 zx%wQp`!Lm=i#ZOOhDByFHDyO(cjJzbcL9Gs5^6GWKh{xzM>2CzlG(JFIam#|(X-1s zvB>+i{ngG(+Y~2BsQHW5ZL1gj1KqBS3x^iIH@QS*Zft}*yn2Pb`Wy~(RJOXB>&VNLRVVH>@zxvPYFOP>@~^P1e` z5>6(TYN$HCI{dR`PsP54GF9)kyk1KeqGPpjYW@cFMvc_Lw_@9o*Fei23VmQCfO9&j ztGhEPz$5xR6W6S-Zz{_*#D~L9Z2hHhqds#0Ul7c^q0WfYoSW~h#zV0!fpGerV79`A z9P$hyk^^7)NSg-h#5_zLUDz7hw(V@OuyCOonPFDgiRTQJC(7()}a8w)!DUMNK7QZahR>vRQK7VVT!B(**elVM>aD_{E7d8#J9_C2h<|6!Nw8UR zxrl2N8R9PwQE4sJVJxmruj^p=j4wai0}Vh^p#$X#!# z&2>u+i$QSvyX{NPU8m;h%#~E6wmLTQ$C92=0*oG(n^*V8Jqhl5!b9Rm3!#$^05@;{ zA%Q?F7!~$gh757WJBD7Q*UDM#m+cetn!AZ<)gkx`gjevczIhnq zG>wyngk2h{q*3t0v+crb6g8~9o1)7b@v#NxKJp}d-W#>K4MyNhIVp}RTuow1s`9R3Yl9M{Y|Izy*Om8*- zkeg%tvUrPTd9pPrel#;lvWcgc{|(XIYHhti9yV*{6TL6+CWMzQA`ZPKax3p_NVg!Z zv4)<~eDD2yNv(q~fvz2#;RtH}MmVXg_)0Z_04#+-Jqz_Lcg(7^(5IZ#KXgr?&HoYn z9L!9Z*GRhxbo_DEcROsP|b4=@L$WBqFRRrp0IlOZW|G# zKNh0X^;d(vVuo#b0T()#?ex9>+wO1zKX8<{RN3xk{$}uGUgB%$nc2irNwT}&{zAE< znGUq%?sVudOqz_U?8Ia(MkZcIjIff!L-%LHar9OA(oCIYd(pC2v_IXJmrO8JptLQ0 za$IUN&ojzh0mU`DIGn@VyYcmWK8697#50?nybhotCw{8B-u2FL*EW!4t_#}52oLYi z#|WQKRDG=XFgilU&TNtiTfFa<*&LUIr{Xn{x%+joU6SjCkwy}KdDy@u-?MUeJ3NA| zb$8J_8aC)O<>^(ze0d+XDJC5@J93=+S9PlX#%Z|apAoN7bOrhPA2Xu+x<-f1 z`DnzAymB3a$mFS8quO`fvb;U(*nwxMZA&oN2-9L4PE@WHX_a!^CGFWB8ZO z6?M3H!AwYF;<6HQ*TBa->y6#;f8Z5JsnsI8JeW(voz z&aI<&SIBu0(MD1&6wCEZDBruW!%h83V$UwTdhiZ$w{@Ei$=F=mQaB;0DZNaQ?f;yn z4!+`ZSKz<&$X5i*OVj=tfU4BG>qv{SHyUk9kZUv984A(~T(I`4qtHjtmBBgUb`uHR zBQ3huDSe;=W29d2B$1^*5%SOuq3fs*{_NJ2tF~?3P>nuVtMTvaUQlhUAyDJW_t`lO zjz@;v)thStOnWwq5S!OAJ07i|pXaUn^^7(=RnpNUjYz7#UKZa!ET?{LcoZti2skm3 zxc@Gz;b}unWp4hb7c1%1ser{vY9EDoDamf_?Kj=FB6h~MHml8sH|mau^N}$KQy1tP z4K0XRk4i1Z6T1uWy#qT7@P~>ipB#%WMJk)k{^^YTFaDUoRG@2dm;AlN*3C$9A1^1M z#(Qd)|1R6G*-v|oaV2BRT*@PkWIRUe=dpv-n!?|D!~&bPR&r#%635L=zq}w_x%-XX z0{#Y@Q=oWxGD9O~7%oY1t@U>>)%vM6Bfvu+c$=DzBDV8Hs@ovKXYUqL>DnhW7^N5d zy(b*k36Sbe(!^x~OMKdtq9X#@I6nT(yVmcuh-l*JT@NQAjm`g+@>5?jLjMZj z)Fo2&O-x*xa!vxu7tP-^@W;KEW17E&`je*7J^1VZq0beuneJana+>wF zLwz-!iA|zriK5}_^)kP^(uI{jW?9-LVdFuSenD-?pVUdKB+H~a9bjDZS`6>2K0+#5 z(iIkivBtmE;dw8N?%RyQyBoSGE#f)p6mYGM{cz-^>C-DI)`FruXwKO@m)o;k~W05L+3gw$iAI4>F-G~VncsfGJCB~n-56Zv9(i9+D;?bLza3>G1z3Zr04M3#_-FsakF zCP}K*^7jythtKrecj>Av^%u;SVYO8h&-f$%i*?>Nk$FH-zTyv#Z4%xN+v+I-N0 zKb(qfHgLOy;3qYS2NF-FGXjQ_iCHC~W<5z=U6nj-Yp*hvl-^2`s$hH7{h)=Zti#ty z#MHHIv9r_qrudJA7Ov^OQ2siyXaBwEx`~(XmeH&M5}IBDHH`>RYA*&89;8Fc$JQo58#;&e?nhwjch} zC@Z^|e2Hh)x6vo1iUgmA^27@iXWanq;?C&^HUTW(a;wZ5!Zh1tvX|HXX9c%0=rQ+e z6tho_E-SV5Y*Gx0kDGsU+-oL>JRc#MEciCpL#^}Qp+H!!>+c593_f$RSwAGWTGcTJ zTWR3N8dkwp*&R357O*u|<6d1|@h)ta~!ENh+haktoul8{iT?@&wH--CH z?fb9jdbYwt`ZFZYE^fX&U`Q#QG{gc|B6@js*ov`iahejpKoX{IGr3t#O9FyA+0Jzg zhTYig`kv9&j{!H5XvHY6v^R=aHZ>LTi|zV9NEIcPB|7Cl-tQz8Of^Y$9YTnzBo(BR zhU9p5qB8w9=X4l@!(x~0jdY|h<*YR>&Uw-c%=1De*&