From 697fce992459c49a54a774f8aa127513f2812ff2 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 4 Jan 2014 18:24:30 -0800 Subject: [PATCH] Updating documentation --- README.md | 58 ++++++++++----------------- docs/architecture.png | Bin 31205 -> 33778 bytes homeassistant/components/__init__.py | 10 +++++ 3 files changed, 32 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index a4f045a1686..27383efbf55 100644 --- a/README.md +++ b/README.md @@ -169,15 +169,15 @@ The [APK](https://raw.github.com/balloob/home-assistant/master/android-tasker/Ho Architecture ------------ -The core of Home Assistant exists of two components; a Bus for calling services and firing events and a State Machine that keeps track of the state of things. +The core of Home Assistant exists of two parts; a Bus for calling services and firing events and a State Machine that keeps track of the state of things. ![screenshot-android-tasker.jpg](https://raw.github.com/balloob/home-assistant/master/docs/architecture.png) -For example to control the lights there are two components. One is the device tracker that polls the wireless router for connected devices and updates the state of the tracked devices in the State Machine to be either 'Home' or 'Not Home'. +For example to control the lights there are two components. One is the device_tracker that polls the wireless router for connected devices and updates the state of the tracked devices in the State Machine to be either 'Home' or 'Not Home'. -When a state is changed a state_changed event is fired for which the light trigger component is listening. Based on the new state of the device combined with the state of the sun it will decide if it should turn the lights on or off: +When a state is changed a state_changed event is fired for which the device_sun_light_trigger component is listening. Based on the new state of the device combined with the state of the sun it will decide if it should turn the lights on or off: - In the event that the state of device 'Paulus Nexus 4' changes to the 'Home' state: + In the event that the state of device 'Paulus Nexus 5' changes to the 'Home' state: If the sun has set and the lights are not on: Turn on the lights @@ -189,37 +189,23 @@ When a state is changed a state_changed event is fired for which the light trigg If the lights are off and the combined state of all tracked device equals 'Home': Turn on the lights -The light trigger component also registers the service turn_light_on with the Bus. When this is called it will turn on the lights. +By using the Bus as a central communication hub between components it is easy to replace components or add functionality. For example if you would want to change the way devices are detected you only have to write a component that updates the device states in the State Machine. -By using the Bus as a central communication hub between components it is easy to replace components or add functionality. For example if you would want to change the way devices are detected you only have to write a component that updates the State Machine and you're good to go. +### Components -The components have been categorized into two categories: - - 1 components that observe (implemented in [observers.py](https://github.com/balloob/home-assistant/blob/master/homeassistant/observers.py)) - 2 components that act on observations or provide services (implemented in [actors.py](https://github.com/balloob/home-assistant/blob/master/homeassistant/actors.py)) - -### Supported observers - -**track_sun** +**sun** Tracks the state of the sun and when the next sun rising and setting will occur. Depends on: latitude and longitude Action: maintains state of `weather.sun` including attributes `next_rising` and `next_setting` -**TomatoDeviceScanner** -A device scanner that scans a Tomato-based router and retrieves currently connected devices. To be used by `DeviceTracker`. -Depends on: host, username, password and http_id to login to Tomato Router. - -**DeviceTracker** +**device_tracker** Keeps track of which devices are currently home. -Depends on: a device scanner -Action: sets the state per device and maintains a combined state called `all_devices`. Keeps track of known devices in the file `known_devices.csv`. Will also provide a service to reload `known_devices.csv`. +Action: sets the state per device and maintains a combined state called `all_devices`. Keeps track of known devices in the file `known_devices.csv`. -### Supported actors +**Light** +Keeps track which lights are turned on and can control the lights. -**HueLightControl** -A light control for controlling the Philips Hue lights. - -**LightTrigger** +**device_sun_light_trigger** Turns lights on or off using a light control component based on state of the sun and devices that are home. Depends on: light control, track_sun, DeviceTracker Action: @@ -233,19 +219,19 @@ Optional service data: - `light_id` - only act on specific light. Else targets all. - `transition_seconds` - seconds to take to swithc to new state. -**media_buttons** -Registers services that will simulate key presses on the keyboard. It currently offers the following Buttons as a Service (BaaS): `keyboard/volume_up`, `keyboard/volume_down` and `keyboard/media_play_pause` -This actor depends on: PyUserInput - -**file_downloader** -Registers service `downloader/download_file` that will download files. File to download is specified in the `url` field in the service data. - -**webbrowser** -Registers service `browser/browse_url` that opens `url` as specified in event_data in the system default browser. - **chromecast** Registers three services to start playing YouTube video's on the ChromeCast. Service `chromecast/play_youtube_video` starts playing the specified video on the YouTube app on the ChromeCast. Specify video using `video` in service_data. Service `chromecast/start_fireplace` will start a YouTube movie simulating a fireplace and the `chromecast/start_epic_sax` service will start playing Epic Sax Guy 10h version. + +**media_buttons** +Registers services that will simulate key presses on the keyboard. It currently offers the following Buttons as a Service (BaaS): `keyboard/volume_up`, `keyboard/volume_down` and `keyboard/media_play_pause` +This actor depends on: PyUserInput + +**downloader** +Registers service `downloader/download_file` that will download files. File to download is specified in the `url` field in the service data. + +**browser** +Registers service `browser/browse_url` that opens `url` as specified in event_data in the system default browser. diff --git a/docs/architecture.png b/docs/architecture.png index 435be87b58ccb877ad098260ea620be96fc352a1..927410ee87575f54c9608431a3f411b7cbecf180 100644 GIT binary patch literal 33778 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
Cgkz8{(3wDa_{SsR^V+#lRKd*W~8lp2ly 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 M>FVdQ&MBb@0FZxo@c;k- literal 31205 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
cIcfCUq{-uW9=N2mL70*dl7b*!}e21uKgA zyLR8Qd$$p4W>;=|?&0hMmA7tO)6lvon=8&?|0*rsTiN9@$Hkwed)vZKRmj?1RWj$= zCcCXS(lg19{e+)L=&S!1)dbGlpMgx7E&6;~=vBOkM&GM1zusR`_{A(guiEmd=GvWa zr=I+7x+pi|TjTLVd(MQUbN~IfF~#4@#c$zOc^6?84z90n-efhrs5*KfwoPn_jWW~P z(wt3w*BS54lkuwY%I|t5^0SaBx+LO)RqJF9CYIJLlSOiEs(0(A|IUk;#HpC3wEk1u z6W6-v*?koT3=<1I)s{<4|7?69F{oR*>MWnBpvV0j=i7zmhs&(D&18#V-w~(#_O3={ z*DHs+(<+WhS?Oftp7(sq#WXkPD_d(5)6}E8WOwpi{&ex(iJviB*-r4^{UrSTe=fV? z!=twA?kE2CFTJ_(TK;9(&tEH(?`sqsi1{kecrs*HrPT_)OD)wMGK&v4T|3Ap+SQd6 zckcL3U#$zbwj4VVoNc_J*K^Y6vb&6t2OBr~%3NG8_m5cU)IjPkhe^8|^wx|(WwS{&WQAXjB}0ta)Zv?P14z{KN+{=61(-MZtQTZ8zn#i!eue@JmDR4GUB&r6+sGfS!A z#c#)*#&6f`JuW%ZUZ9;lKVH0E&Z%VbsZCekaNeI0@K&+==l-6R?~b=lmIxHN$|e<% zU>mB>5_CG!;`lP{bVaG-lX|Y*D}8!Fa^35)oWHEw_Z{_p9Qv>{HZ9U-p5~VIufH)~ z5B`(ManV=D=0RlNXKNeTknU`cNpFm&7QOlQx_0rT<-7D3%P7uTv|<}mW=lfC1`(TV zevw(V&)ffpi%j5MS6#aIIM)^FTb756%k>*x2*&2$b~G_r_S!Zudit}OTPFzkre;P= z;%xeH!F}st=7&{oI|~?ot^D@+;cST(204$PDlyyd{$)8QEFE63CUqub%OZ^~C71FU zZ*sYuCj6?fS|K*2^^5J)FBg^+>N2yRUQ)Mhf|`B!fi)_IR~s^0zC>m`XsiCQCDLL0 z7X2g-5!XNw*N%4%xz-03tO&cbMJ4X(Lz%yBFAUivW`E!1Ew7gRn1yGFJF`Z*1v^A( z!dGpZ2Yd8Bl?3Q6V)SHd)DO|fZsz-Vz(Td~{KuAQovGDQ(>}dC%z077H83RF$s})5 zg=}}kQTIxvn^ z?oo-H@@&Z`mZv2Ad3-gEEQ@=ywvO*@G@)t9iRXjJ&Qr@^Xm0xA1@PTc+CtWgY zQ>kQj=~$-Gwdj`EqR+>C%9k@_PS@M-@oJS^?DqFe0=d79Couh;s&K35cAUwbWEUa+ zyDa+Vt4_AOzJ2MmZumyId;jK~`Z-~p^t&kc>djM16Mt`%%zFOyvxMTTMH*dM>K*qc zem3lREcju|^=-zJczkY^3GCML{FfrJXY=*qdk?lZ|1!K(uf_1E;Qs>0y%*rjz{VGUB0Jx^&aM4=O5U6sq8}B=Tm#m_;0zp_->-W+si`WSW)chFR2b&&c<=x*t78d%?FFE zs}|2K`Vhsr#4z*x#60=eey@GMg$SMBQn^oV=U?U(cEQmFU!@Gz?09_pQmXlv&5U1W zUNc?&T3=fsVo$oM){B2nWw*EnPFJknQLQF^IQz47a8;j@q1@qWdK3+QidDG%`5sUdE)U)q|tzXjaee_h}1YK~t z<$F+M7I9rIWQW+zcdP2APyNRmmr+q49<*&D+r>rZuRf&NuDN~Zq=i`X_p=_cv6}qc zm8Qxkw;XTY^JRs$(7h`%OKctlfig=etAMTC8tLwpe%*{mUk$$w=g$8B453x%BpPs|IkxOcAM1#c(6pO#0ef64qM?Zplqs%uM^xk>M+ zQ1i?&cQuWwXim;gSypKUT3)oOQnAYG(&MS~y==~}X}@|yMRi*BHHBT~LG6_X4mbK0 zTPjFZE&45XEb+X@Up2pv#z#ucAC%9X^2VHD%d;(Rwjrh2v$bCx28V8-FVDpZOLyE3 zS+Vb(Liy4|`xMiJ??tuP`n=dRZP~f>dki1!E*Bl%73-~TzN*aow5+zz44t#$X;GWE z)I8HXW+wi1$A+`QJ1eXVI&C~`F77ga^=G!!o6AvW?tNKi{`Wgu;9?7HO<{tT?Od zbWoq-nWX{i?@tl9`%&PnbDP=v7q_;VOl202k57~FBLSk z=y(03 zW?i#>*f&$bH&Db?aFKOLg>A0fw%08gP9;+}$-Mk<=3AW8enSDB{fnoC@-@qTH{SO0 zb4vR|8MDUAZ%-UPyiTsX@h%4_H+8)8(e<3Peb@U%`!yAJJyy8ouWo2-6`w)+K& zxNhZgN%#GI*KgOE$8U-YHoA1Exr9$RDrZ0GG;g{?T3>2wG`I7o;O^rJzt-v94tLn6 z=owR@+HtS!xyD%wOKylC5<1$}W!E-LUYJ!M>{N2x;mabG&2fA&m$r6R9cxPc;BfzX z?M#ox7ml9uBVH_f!v9>t@8)vF%sX!ufsdX|ks_)+<})EsEW>_90j5+It7JYa$HR-^~*(aOij^(;+wQ7W<+&7yd2x4EBF6 zV(pN-etz}De-ASGI=)3Z?%~??Z>33@gDS|Cp{y5oSibkJvWsXw&FUGnWhVRAv<CP1A4q47uw%2McCwvw*UBhzQ`eN$BXU#vHZ7Z zPF2~=cIw=YDxJ4?WosXZc_wX?&$w@*?CJMPwCp9QS+d#T%aUe~I~yJx+#2{{HlxdY z%`HiDGui9yf)A{_Cn7FVS17z!I_JE?FOSnvXP)r>?U}uyGWGY@&&GHA1NY9Hzw@u* z+Fey{TmO~DmYtqD`(kQ;>HXth+G^Fpg|`{Kc{T6E@7ZytF3Iu?D>Lu^{}}(bcIBDh z^-0^l{9GQ@^@@>5Ap+ydT+aYkzk3LE?_vJvOh3B*e_OteD;WvXMz`Xi6|UGrm}{hj5_crVXV{;~vDfz=$w ziwoOzd%W)jPv$DUed2$_ofW(fW`|06%r-3e$fdaJ!MT%Sio5m+@cy1T|93{_-|+a~ zHJhEkEI4HRc{iwT44LfoWkX&0=0j$i*zU9n@cw8E|JrzHJ#UxRGKZ3-yL9GRsmTl1 z25UW^zE|_)f#o+0{ZCv?Q`~q#^vz)#kh#49eXDKqEfsI2J?q~4b0N5%^i|vyeo$xyCp*mL*WMKQ_nWHqZ(dNg3JmACX#4B#-xK8@PAQ#9 zUcuF|ZI_tx({K757bX6%zt5RbyehME=ben5 zOXPO@bR0`?&AHAKX&08aKkU?n#0&Rbn7Mgp{O^t{4xYsG;OUiXpmO5s5dq#rwk^Vz z_5~+4g?p@T_85vr)09@ zml^;5=L>zG)4uT%$Szk?MVIQU+UnVRmpya!Dbw+P*KlOH__qghpGWL^lBKrk#NsCA zzrIc-(T-nuSIYSRn*y%l0@pHMJiE+#*MH}OMYBT-SDmf5pKn~zCUDnGV6SN7Gvn|7 znQH@S=jV^tG*tEPJJK;OfGE({7(-xVVMe z`AhwzB7GA%KKIH_P!K^@xHU`QZ|K7Vj$MmZXixPm&M{kDpC2c*=l9CF z?0OsXx&-c?Jk2Xdo;5g=A zbg{g%GbreqEnWp1-3wXPcVK|4xIJ=0zH>yh;~5s1ofuE8;G=NP6k< zJ@>qX4@o#oPisl>DLL)*<-eN#CzoO+(XK@+ysvF&y122)3H|0-E2#!cj0%R+f0hPN)>{)#m%n_ejBY7nX!K1ssFdj>B|%q%Z{_#=1$M?n0~i&jkVrM7NKv}YhUKal>$raBBIctj6K>x-X8q>-?$>fr?SJ#5@;m0ujn_Hr@Z)*>&*R){_kTA3A2KUp z>Ac@xuE*Qz)jc>|e02TKTk9^p@2|~a?)Xyl#nN|{v3Zy8+6862;5t>RS@8D5^Yzj${;!xt<8=LBz8O=CAu}UXz@u^}g!eWzahF-z_sa7#FV3&)LfCa$eJ-dcwc=xA-)= z7OhZgdhz>U)%DV!ebc^fQ~Mb=_j&7!wF!G8Ecq|8Ri#flQr%v*BEaz~`y$3u=amYq z*1o>kdpAfcj$bb8L$u9>^UpTk>$vjSq5gUt`^AUf6u2Ktp5AfK%JJK^XFlhu@6YC2 zv{64|`#pibpw$w&-}(1{+5T4KT;sMKy3g-#ir67#Tpl3eYRc(y-<$E8@?EzxT1RD{ zx4x(rZ^@7^o|_i(R^aY*#uc##n*|i46D9xY9`a#0Wd5c2&DD}0+YT!1(q4L}g5CMc zB<2?{x7`1-Nl{9H+hgDUziw9r{vK_Q*Q;&cANl*k(*3`u2U)hXJ^1{)KFO?fe!w^L z`v2#>p4LC_|F=ox*Tiji*UnuZvPM2pN258nuJV1nH19=iO@Z9pzM0k<7Kv8_iAPw-_Bo?ezTnU{@1&zFSZ&ngzN18IrDmV{@-WYr~doD zYx^G6s=o_t7{p8W?F`WP&G#C#PvL#cjFS&;-wzDq`^~&!o6(JXPk!4+gt2|C|02BJ zOlXn1)|SccPW>jXfgzV2OZKbGGB{mF~@yA9q96PrE{Cr(>(RP)Y zc6KK3L$^uWCrz&w{c`Qjceab>M%&DNI{dC~QJGmXP3!Nn>8uweuC%`w=;!fY*BbHX zLjS)T-umy)|GDGtecJAu_x!q-y~m0UXed(K8;a(d! z4}X%E`2X-y`TkG8#N+a=FZipx|HH~4*&BQeGPjSIol)jJZ#j)|o&E2f_w}Ym|NbNH zJ^%hU-TPrR$^Tb`@Rc&1*l4?k+5h*I{`wUm?zWCr4KMOeeskg9@ESD0WY;0)xhe5Z z!Rac|xbreEmYif;RQmGlf_nnCuk+OG)_|Px}+$TkaZxF&48^Vt+n{TZf=XOaq-R3Q~o~iKR4ac#O7F{ zhnvK?#`h0d%^SYAz5TiA+s*2|i41vf#2e)1Wl#Bev;WVZoo{R3@4go+r6VaNPj(Ys-0Q9KKb*(owX+Kt(=^s zST62gI{*Lv=il0Xk8cOa}ip{k56|rQ84Cr zVQvyMYYOPkfBV00`t40Im%^?c3fRv<|ixkBm!!E(oJo$!?mI@jrO~^`p$hn^7;(DKb>$mVZSzr40 zana=SPZ~1#PsdI=b86R-yl&9uwJ7FAD^H8d#mw^*njE(RY-C#^L%hx$rnZQb?$C8? zix_u5dbD!$seON|??rY!=R2Jk=K99|!EGnA3D@+dP2*3L`|4FL-uNOQcv8!TubVqT zBZMM~vsTGFn47x%mSh!tEOXnxIjy2`b!$e$dY4UU3_TAk#mo&)KRRwFxmG^XVuOrA ze?|JA{tE*3D+C|(%*btNi8%MlyCGv@%7yQ>X2PHVQgR9I6j0i%@2U4-UH89bXIUUVGX$m_`f;HBxz}&*^ZJ+09poun-I&o5cH>t^H`^BGX%7px{m6LJ z&7OFrpRr|yyj)I=n?}dgMw=Upg1hTM`+m+8c`xo`Te`zr*yh6VsJyPTt)P(MxOj!T z;a)Mr-PqHh`myb~M8TWnhL4i-Zg1K2O)@T~LCZl*QDz%&gUJEWmmfBq{~)G(yM6vK z=|tfhVQ(q|%6IsGkYlc3JZ!LJQT5lY=cj+NZohqSP1_Cq*+*D^H z94n}jl!iJL&t;SLRsC7k@?u+S2FJ|kb1L%=&jn=ymfq9djy^W$&RtwH#eehOrRMKS zJN=*fnuf*lE%^SL;X=!ca}60M(lTn#q`3r&l>U6x@^X^(ON-AZ7FeFn`)Cr|^&#rs zCS9A=kDKKbcNr^4FCMn>)#V16)R>VGHHmY=uN!MX z<6+Zn&K-N@$>#9>^Ou;ecV0$?$2{h4_XUk(w8_1wlFkVeaSi+`Y}3^-`*v8z9M8tn zj+KU|q@M~%Tg%-H>)+$CwxzGi{r@A;r0{_IzPi>+Z`Wz)A7W-xy3O-i_TsL5w^Qd{ zd<*z?u2|aF^4aTk_fjiAo|-IB`!B|5%HvmCo-tIdVZ5#GQZDAg?_p&7hh?_7YhcLR zsA*3^KQ2>wx!H`lcLZ+W*+wj|Gzq90#t8y7TWyAB%Rk|2t{n?l&f4Yxp z!n{jw=f3z>cGt=^e4T=)%=>wHw_nBiHBM&!dd{Z!xNnD^{qpuh0e!14=-Qr7*W_Q_ zlHv5l)#&M+2~T{3#Ai#o23|R8x=8j_^8)9s;U|Lm7A1aOcgD2!_VT=&%$D=LP9A>i z!En*tF>DvghR+m!Wv2Yi-FtC%8uJCSv+N4l z0i|*ady~V2_b??bukDYOv{mdpS-tnK}6<)O1>BQOp+B{D)%p25P%GF$) z7r&EA_VVvqw1S&UQOw=))KXrzo#G8^I1^=qxmY?9?K~P^?3}WTCq?&7l0i`3*{gT; zJx`oG+abHVo#BtIkL9^!r;?EDLjirKFKlV@4ZQ8Q*tO%GPscaDDRbFkqgmG;KJ@Qh zw*98VY5y)Innbw%^tEjlaW$RzO|;;%!0=7z>?KduIF1%b*;MlS4E&me6hJW@C zURir=bdUO`@OTD4$Hl;foBx|9YPef7nkeqttSFT~W1i>ZG{wE^Zr3fkesjt_?yj6y zOaFb@aO!hkwRCY!aLD9LcjE&f@rRur&-FPjn(fef_A_Ss=Xoz| z82-5A%Vo-nDq5|x7i}vt@p{a+K>zcfY2Zn7?M9Qerf;U6{C<^rks|l>!?#b|bBl=% znm28u{!ztCop1Nfx}R@yc&1C>711oyOBW;4pD#4wcZqi1FRWSqy-C1!B9mC`x$Y#Z zkk?%mF&{P*INPsZ+F+TyXtSvr&(n-6m0PzYXHSp$-V`z~p#9n&v&i=Bgy`*CvgAUyu9?jO6j=iy5m=5 zBiG-z?fJ6&jrq3BmCpG)ii2M^ru4_AW@iR5wqLUoJ8f*O;kj#v-Sx(toqPuRF8nY4 z_c!|`UaP#Bwz?%FkiqVJnKi{AuB)u;AP1$iHX_?Q$*Bifk{oPc&rTF&G z`PM6PW7^zg9PaO3R2wnjhXqqq@ok^Eb@gA`mpj(SuTDB(ukie^<%R2V9-od~v`#d5 zP-uRGO-4P~@_XV@+37cH+4qa(331Qeba1cmxs_XFbGY+$#hbtKefhUpZi?-clzmOJ zHJ____pg7zID3_&am}H8`|8WH?|r!+Y;`j8ZI0j8%T{40VoovKmT;-=|Gcnl#_wIW zuT`e&GhD3YE9mCCB7f?q&Bbe#b3G)UZONRuv5X$^#reVS z;t!m53;cSiOXcU+*M+iuyQ>fP)V=d+d?CEook1@@+xpGrZ6AHE%U@tWcii&!tFGb| zJTHHB?|Qdwcf8C?Gv~KnMnCpEc&FOEOE;(3xQO3+g38<1Q|uPpxlr|e&gPQ}f45ni zXTG}lRlRcNwmvU^ua4b^7}%m--#$@&FIuy0oxk+ASxxT(KGe?Io~N_vtY&Lk!|OfO zs%FpUy^rfe5oE$tJ|9pX8z>`EwTB#>S*tMj%}$0 ze{~vO%t*g^Z_c+}?LB*H&-KXhs~^iW?ReIa+xIMwsdvTkN}EfKvK}_&rnmXl&b;k5 zf8RpQSGW1^$*fG9(0F&{m2`$^Q-NCDN1S%oN}V_F#^juP{u|1X=`5F-tV5ovuaMq7glS&DVNtQcNDOl@@VC9(6Zl> z&{skJCg19V&MlWqy1me}`1Xsi^P73^y?UJ6mK7A~_dnhA+vcqfCXZ(N2RT#*O`7p+ z22Vi#QX7?oJEs#i@c7L%^<=a9#U8_bQ=%&;Kji!J-Hrl#b$+TjFXmt}aWc8hw^sMI z+jQm^wM-^gnKr%tnzy$0A**7QCTmN(NX7h=E72F&8y0&+Z~nE8{j|Agm|*+fc}!0q zG9=9Y`0>WUy10&QbAC@{E6nq*{ahZ*!YHLUE4TfcQSRae=JB83eB7#YmFrMx)iSdx zR)N?8g?^j=(@y{Kusu5UTc+3dzaG~Q|C*-wII*kz_OHf>GBxR#j@qaaxknLQyKMw= zC(o44{BIx-d3;lk&*vf)jtd+YbF8=cWlOVUteTp-^KbdnBu$CuA{u+mD|8#qq? zUtjw7Wib03hF5!xm-S^;c7Lo}HSfNYS9I-yx2C?`uNdv8s+_%-a%Az|X`f>fs;jx~ zEtceGlCgFaSRlCQW?6>pbu*o5Lgse_&3IQGz4CO=+B1BPfh>$oPTfu=`|TcXetRKm zY3>@!2D#M*xxrgG=j~#g*VdMCDfalDFwHInhk%TOuMKtc`f}T^_2eFoYknO1rou~d zPng}+q7%%!m&DmOo$3yMogBJtr|rCLZ6}v)zxQb60*xjH$3}s(+nlpQZbuX`%r#SZ zF-v8pRbJNKjgAp>SJ`UL=UF_-;Kpk{|LDUl7Wa}n)3+|r09h7ro*>G-~bGBH=ylZ6vXDV)( ztiRWj&A;Q^ZV@*2JI&eKf7>kK@3$4~|F$J2=hMQx)}NA=^WPqL)psz+aX9W$ANTYnIKUpZx|RNHe&A*z zTQXzuIcb^C0XKMpR!^+rnsnr9FPp$$pHuOP`Y%4+&XYWBnQ@lqVkKjg%E`&Eb7Ri6 z7f1Y#D10hssc@HXTcOre^}G-HeSOVe=X*?QI`3d+cCy*Gd(Vr8YULZ(X4;jAH$A?0 zvDSwBTeaGU3+>Oh7ag`QoG-X~hy0Yr@<$gA ze(Kbl+_C)B`3BSJOi%9?{VUZ|oONxDfbF{lAHw_uB8&LD9=~$+Ykm=|yM4)qKC^Ej zw{PzGoN%A}ff@IYZmxNUe?72S%D=h&+~V9^`!65zUf9i4uR6Uo`Lo&Wjdwb~sGcv8 zXZ!MgV&3}b*JcyyUYzrt#@G7tx?b=zl}a7))3UySEg4bKjfd7b9XQ+Zmd*T|bdcTR z%LxpJ%o4K9Q>)YYHas^v&??}Y&DtRsY;a^(c4$+1M7)$sJM*)gpH3;ecXKU`EZDqU zLAou=hjm`b>U6b=14lpJY7tS^{GG9(_L{oQlL>3Lr0_nAsAmv3>1@O?=upO9Fl{O0nevdeo!@BHB9>oeZ= zwL`!+o4G@-kfHWF)4kVw1Zr)Wmb+gQdv3UvHe^f3s>W*LoSnS=Uwx)cQ_3xbFMXU)OJ4b@)=TAx~$SRldx} zioVj?>bUFeY20^jTzjmyqBd{uO>BMg&WfpIuR@j0;Y*J?j>p{g zioRaGG1uVZqHXaEU*CG%H=Mn3ZzG$diOsFL0HxBMugde2w3dp$x%&IqmO1C&r5rM~ zUU>a*$dSXb+%DxWe--~S*PZO`xc;YQu6FFi_v~BjH|SV@d$!d6@eOvR|LwPBFITx6 z|C*w>w%F@j`tgMvOk1>>TC=N+Z%tR(wn5?K>RV?$nztWx*x2a4?OxmNnUB{m-8*{~ zv6AnFHYwAYP%;ke&(B579N@0tb60mH*FV|Ubkne<``W7ic#icJ z?+oeMgT1omXX~eZ{&`tndeLzi4)LbHwaaqNx!-M9wUgb+c+u;W^T*2`w>KAmF|m-J z7X0H(rQGV)7rk81KlG_Q)?TqX&~ehi=i7tol%pK>-TyK{VbJg3vSBGcI zn^XyQyu0@8!;Rc@m+fzj&+xo_ZoBrl%_aYmp8)~SXYOmAb-m1Za*_V#+BmPq7lC)L z&HL=&zhd&Mfb*`?r=&mLDD&=h(a&aU%_as%$4igxs#RvzRk)t(U&J3D82X8eKa;&U z*m`2)30{j_>Bo)7z3;rXI2YluyJuUX`S1F2h2H=FL$l^@Tr1Y`jeq0rb-g!R+@>Cq zW)t1!FB&sVMRLs#lcJoz=O#;>=GgRL&&2H|^+^e#ye{&YbFC%+UYKVfw@ordp+fA- zP1~y8w=UNz-^ew*(^?}Iw61%nltPup(la}%ChM{!8&^EwUjMgu!MVLBqUR)A&R=gM z6D;6V61A867Mq)@we)%6m2-OAl{n^z?Eg~!Kj_cn{l9+4d^`3p@Z;&~|Gz%fJ2~B5 zZnli$;@f*>yS_Y|VixhPu2;c!O@X1L!{NT_6?3kf&zx!YOvI&6q)XoGX{V=+%$=*( zkEwI9u9iH$W!lHEQ{TQWe0O}}yX!fp%#vQW9k*P%V5|Pe0Kw*&fo0~t3$26fBq#iB z6aP4+?DhMq<$MCU^IinA-r5qdJh`?(rsGEN-gUKeH%{sM_HFC^uZoFfvjrCQi?nPG z@ivp|QYd(*7Jl(s{da$_-?{&Vg*Yy@yeRtp=&=6uZ~9x}EB|sIT|0OEhFq0NoHk1}jZUZpC{?;H=#Q+|28g3mt3&IZ;GSxo?UzS7Nu*i+5T?N4G!fk zH+7c3V!5bRQ8ZmuQaE5r$|Eu9Y~y)}m9J{FPAVK?51Pkk#Jfn_H!>dVTLJS1qi_5R zd>qtV%pRoO_V83Pkk(TnY}SDuBzq5E~hW@buaV1fByr`>0CzOE#Q*6L`G&u z8)z~$IE(+=Pw>=8E_?mqO%ZjUjo0u0vj;TY^=D=4(nq)VKcBnwTTAZ4#!WNXf9~4$ z(Vlhx=l@IZsoqgyUMPqT@6o<^r~GA&QX{`HyEV_ErX%S@SMW;W-Jch^3bEaRIsJFj-WU0LX) zLWwdS_FZ!F?>H|`XTSJi-A$v4I|a?+y=&XVZz?cM;C0ycmXRyq-QxKbTY1F52NX>; z?%#fu+u?ujS@xxlQQx=U&oB#!xZbC6`dIOe6-V5S+pk^b%XK_;dCtxMFJ3%nK9QB# zaqMeXSrhxg4Yo)7JY!z4-?{>tZOIa@;BKz^AdtyFO_$-KnW8|RU-qF0=dM*@tj{}R zFaAC<&FOw)Rfs!t|EpcUGY8YWs&F7SG>IV_x9x~##7xzc3V=yu77=AIA^-F;;&1#7x&2|Ik_e~ zJHMBj#@zR?l`Vu}$Kk36Ge5^=uP*`uEEVTO?zR7g&waq%` zU%dFQqZ!U=6&fw%@fK0s)vIu;dQ$RJrw%vU{a@MZ1AqNzSFd{#<7IH5srLEy>pF!OB=2qW zD)_0OzUJNYhI@zA+P_!bT3Klv&A90Pue15uds_{e9d3WxdcJ;RR>!uoHUUlhxCJ+j zYjsI|MUYgM<->tkmAtgan-!X145>ijOZcSWZCzIf*6%4h|(Tg!~srYKL+zmpQC z)xP#j`~~5^`3IjX@6CJ=dQab*yS@0&Ir+b-g%5V`+s$&NqG65MoWo8_65dxl-`!>Z zxmdpUSkUI&E53h!ZFptO_~3IIx9s6b?~K*`Gv&W}O?q89ZF#ejOSy(iyP|ZYTSwmg zZ32e;=UT%utt;8Y9{FOVy&v)ZZ zZqA&$zR@R(T$MxmA9HIsm8d(JJhFH=wfm?`vVqbgTU}K-#a(X|t$61|FMIo>F@s0% zOF<8h$;M=-+Y@@`Tw=(&!nk1Ci5tw@c%4kHe%oYTSzf87;Z(xzwB`Ss zUzho68LlWj$HBhIboK!bUFzj~iF1xym0Xyo{dI_Z zQhaQI!^MNG9*;9#%INO5Iy8I2XGw-$qli3#-p-y4diQQA>|MMzyYlizKE+>4!(?J+ z*iQV^shQ_;szq2oMr6@MBORG9-B;?iD+`GDHTTsdX>|l6rL(9FCikZ6A?NgmA*fv%D zDBzpoY_+>!_Ssjh`xb56sBrQK-(N1VVy=yB`zNnE)4=?UU1)yEqNonG4e}NT-j?5% zE1vf$Ju7(E{J)cYI1GiaaPGKwt#<;_6l3tH@w++XoLMVRn7Xn@=jYS_0*ekdtYwTi8s@tqI%9q0tHAXi&ssTtN%nMdes=Y+OxE#(85z%d-<6iy zo%*n=THrn}gH1~Y_tz7bHvK+(s5V+;Sy;AP?vCtrakHkJTIrLyB`c>#!2xvqQ|8&5 zX2+N~&Q0?DTCMX`GU*lLMUKuJ(>@ikOXu?%9p)v)}a1@~V9oHE-SFZ)r=4)jlnXoj3O?^Ab)b7FN*quEqbPuIi4=)(Mr zU;EAXS-;O-`j*>pH}LYwdpxVLVY(7W%1*}B#02K+AmJ3e$d^Io68 z({Yc-$<@cq;q9{KjS(k~b;!lb?_RuYN~_S?jq8_geZ99qTwR|J><`0RK@+}N&gbS5 zKhAYaooi0(f-}tw5&BFQ|7t4SU;Nd+Xn_p(b;`-xUOc-}@o()pm3jXrKn{U)5nfbzcVn)L>590thEKA4)5=Qa zpKa|q`X_Jo_0q`GHlaUmtTCMPxKE{-F<)!LyVu+PDmZ-RvcFc8&2>vX$ga{2bh3tB zSH<<@%0;^WKRf@ebDkv9@GZe`{pkX|a8s9OD-Gm!iEh#I%=^OhI|_UXB{;x7t%`T7 z^xwPXHsc<#FHu#i?lULlYc$*|T7RfoH17G`UEh}!+1+cZDwFq|RP=t|5%w!*H2279 zWaOXtIaBy>Er;oXRIwl@=XWdHt?%qV9<}~x+wnuu?{+6wthl{+R`lITJTb8;@!p`# zd|V=+5nb27pC+m&eWv_{Y)y1*gq)qJHD4#^xgD~*G`dcyS1i!o`bY#Ss^GHu?S|X{ zk*WS>yf#TocHg*uiQ}S46O-bs>$11mTmz@JIxg{7nRg8uo*Dv+GC^m2F6H>SNVoip z0Nj+zH_Sk0pN{=E0}}Eul~0A!&e%-(s`~)6kle}?U#mmLckYv zx~JBBwt2T#Zac{d+4i`=p<~%bu!B$EQv0rITW*5th9akTFP7iZ%ZF^PWMOqO0i8g) zqDJa!S?7hm>^Iq&y6hL_e|(5}$+UFqzP(02?LeM&>sYoT?9#4nXJx-_-4eD-T<1kw z#@qDCZ>CH0U#wwx%BA;hXm+id zpSHDDPBTP!QD%*{XJ9VhrRjegzMMY)Hc;B`$J-s(ch($Ovf|v8ZQqz*gLjWET2aOQ zGsKW#`TDbcua~9tUs$fO>Tjv8k&GH5s%SN>}ktK+cD=|8-wZ z78Y2f*_9Q#F#h)Ce+fS~DM*#poV{Kqx_|3`>vNLR9{=86f8M$qbVTa1*2DUCe~L2e zL8qj?+UA?XfBfBf_w(j^zdn_i{J#2ob=0GWO#;4wS6Zgs__ob`*Uj^spzTnXs~9f+=LYSd zGrQWR65JH8>2i2m*}fpH&wrEGyX^me+5F$aAIIyze&4xglScceI>|#y8~&W%|EYiF z>qyB6ot{NPE{_u#UWW<4o5*&N?b45T?8oYV9D06N{&H&N7S4+zS1Ug)lzBU2U9W&| z;FR$9#n#*Qt&3Fr1v;P=)Hk?&+D>wze24P43E3CEMc022KbkN9AB%ah;s6?ygyNB8L*u=^vs@xPr3%X7YBeG{vcHUZzjx$4|ce|%rCxaNl1 z@$Ehx%QUnu?D<-{|HrHKv63!_ou#;+A4qVHeh=#FsRpn(B;UN!U;jd8OD$-z+RNYf zZ`6F)bO+S_j_P~6Z{NnyDE`xoXSeOsWnQz0=gha`r~W>B|38w`A$R6MEt`7`B?n%C zm$r4h-@qeQb>y>?iGt+s56_$yhLmp==>6P!UZekW<9ovh!P5nKpiOvJgA+B{w=Xoa z*k@@uUw+ymjaLk{ht=(imp>HXoxv*5-u9I3v{+HY{s=w}K4)#72@fm3U3hj-qOGwj z;@{2lf6HcGmy}CquF7#{%3m+J=VU`f#jMMREO~r#DYIC{_I5>%e7CQd+2OZ_rkq?4a+XMX%B6uPH`+{ zTLJFFHE%NryJ>SKQODqwdB-s`71eW+i3&g7CGY?8GNj{Jp+b&I*_nolmg!F#Ul<&{ z%kTHc<7LgkKh6$u9mgt#d9@qEe;I9_2Riz3vx(x(%MsfTKhbW<=vuT+WYOUQzKVQZ zkwfh|6$xjJ7?!qg6VTzcNPdv@dlK7HvDZEC)1He5EAF~v=jFAhc;1YRmZk_U2Wf$s z;)@v1cKj6+=jUAjYK`XpU~qOaaV?#8t+=FRt(-R~mRGG*xb=WPk((h?-ah9*R{_T# zd1L1HZjM`c%S`&qrCbg_p0llg>bYz&m%{>!n%?WKQO>Q`WwTntANTucf9EAi|zfVtx z6m4}d*`}}gP=;gi1g?iNAC@d{%}J0?E~pdiIQFJBQlQtd_g{I-b14SdWe<$smq;A; z?O3L;}TDXah8dudl@<@(PK zCa+rC{5kn=vdkKc=Qgs7G1!5M2B(tOP9~d}-t0JUy=%?Ytt$G< zLf0+%Q1Sj{eu%EX{b}ODX#pYLPFwn4vYO0lzZrCgal^)X58Lkx=f_n@IwdM{Zgtqg zo>-A-I71*U;FWRRjPgIS?`y7~<`JLvh|lmi$8QJ8BeKbo54H=fk#cF5^agc|>m=(E zAF52t;y=Bi_DXYc%inEpZ@kZFR@%7!L(=0vhhFn-IJPs{$HXY$*`C`sS2dz3bQ;BF}EQyHRtSzV=)hIjK)qN+X~5f%52Xr!PC?uKV@gmYgEK z*t+jKn z)k;rK`Jl=3^Qd@Jvenhv!~a)@I(%7G_pbc+u5WkzVrtvZzinf_!o2qMtLUQJv#)=u zi_d5Iy>)!0s<9_%(@564pi^W1te|i7*zNzWcvdH(Yyf$0?m#k~YvaOwh zi!{3gd^`H8Md#aYPi{5MDUM{!3tzb2`yg+s*w!~miD?YpQXZ!YN-_(6w=&*nB^HksS zkGK4LmwvEN?CXxclHb-Ti{P}%!o6Y zqulahIoHZKTdqr=4_1D;{qkyZjmq=GzVEcZd}A-Y=V5ui?9b+3m6n_A&x=g3bvfMD z#J*vX-JOb?%-1+}%Yi1qeFH@lcf~4J`9F$Os9Ivvw@sTV|GLPwvaFUD>aP@gGo$y; zTIL>=ez0<*{}pBJS6h!+?v%b6wtkBL&pZKJ*~ae$2h#Q`{A#QgIKfrPp?IsI+$`u@ z)rSemrF_e#%r5>AJEcNqvv1gy*9yNfpD4a^*?Zah(3Bdu|JfZ&?tQHmnexv1g|6GR z{Twdxo=Yft^vMS;Pi~sau;{qH;G*@OLV8JtXFn|Q4{dlcds01{-)iHx zRWpnE^`~yL40~vGkh!CO`7!64tK`&OJC=dcgpy0Si3|UV@85lF4}SQhR92zEbXL4E zgW>1Ce|DMIWGm*G&sqNKLglizb8=F0vOjStMwP^?f3E8nd=2p1@^9f zZuff6_oqAjsX_ylqd z#JzRPea{^?yM17%W2-6ueCJ7W=K=#RyxHm0@oxI(M6v5%93Pl4FFMO?KbvXe4Y%;A z0((`TDoV#S2g#ii-hGa%YTx0436i@18)EqtXSsoPf(qR2k-GS}D&(-)yBB7Me#F>w zoWHccboqgxwF0%?kC?@Oi>&(|l<;BUk>vXCrF#YT@w(*43M}H!Zpo1Dko>)O8*|4! z{%x1n^Yip8^GlaEx6j!lAUlsgc)N9btfWA0WMEj+)7X{_czT$bx*`1ZnX+k*&J`&$ zZ_$yRmD;pn4d3^xldac0|KgIn->u_aV1V6Zm9Mwgs4V2WuKZdi#m2$Mb5e4pp2f1m z+*OO-Tl0S};hmS^UD$r1-IMiVsO5Xx`_oju-U<1zVdLW81`ipktb@{3JM>=s)P8k% zN@~)^Db?PVHW&R%?ZZ_(Z*HIaad#j*kwiOeS)qR2e+Hw*tqGrM4wWyhQ4*Ow;jo(U z#t9AXlTuCz{I&02en%~ulYQmV#v7BaSv4=~v7Ekgi z+BCON=HbU@Lw!`&%lnaeNDS^4|Pd8 zm3X>p&R^2JNCV&$fR7yIs9eY@tw&zBv%ivs1< zj3cIt8@KvCwPCm2HUD+g@kvKMZ@TsEeb&vR93_1(cRIv;UiI#HsqMP#iMii)CHq+) z|F`4X*Z=FL+)woFf0*{fCYAH|uOCY0B2Fc)wo_l({Mnk}ciVaXZnZL{-1RfJuDovO z3O*!g)yhyce8i9mmT0zJA^~Xa1*cK|Ur97nhx{ zU3B{(PeMB5l!TuXua!UgCnkDta|>f*T>~o>jgg)c@8@ER&deEWo;P_?YlfB z?Es}WS-y+rO84J}GwksakZsfNdGYD$9D&@pTNh?q$y9W%-Dkk^IE>FC=DN{C-|91O z|7Wy?S9|WC&7)9dq>=u>T3)8z{@w?f^sBp{U9%3-uUwIR@TcG9J$5dldPUBPF6mtP zD({}?WNXT8-gAvLeA#+Nf!y2cM5OQQ|6KO>-Nav24?kbY4xaR#3leLugcPiv{k(bM zeU(1L#q&Y0tS3GR%~kD?o1&tV9KNtZhpF1SG2M!#OQ&H2V`=)Nlw%Tpj8Av(I)5+k zb-6a9%XilY&pq}YUMRlDo^_FUP{W<n-ic@0DG) zbGjVg>{kY`sZ!4P8KR;>WogpxHt>oUk-C9$sSCrnpc>nXR zxcc--dkQz2tF4Yoi;>qlFOrqr_#*M{Ip@940>8EC-R8S>awgNqEz_dQ_!qP;@Qazu z|K(wEp!~ISN^(ink4>gAT{NE5;t_kj>b>XB=xKJj^N;`f&}p=J*IMPBduEiZ+PhW2 zX352jubVv0)?aITF=P8Nw$)!l8eXUicG#Wy;F2HCcyXED-@4HJE?0Jmtxj9Me~S%I z*m$tj_MO`N=St_BUMPAxrK>%uS>aXDCvN=e?bYHWMQQP~X$E2yhdD3mr(BN+=e-@l zuVC_8QG@5_26Gi+Bt2msjZf-~HKt)a9}H?XExD9)7gn`(W$ka{{#rThp&vO!*Pf{Nc~? z*5IQ~O?!T+a>h%nU|gg=cX@f(qm4%*`Lp*?#;ztviC0MtI%@XQaQa}wq%LpmKV-v3K=4W zCmmT-^&q}<{eUaaFLBK z*JJ1R(~l17EdR7|-FE|~i|)VXKGn6mHv4JGl6NK@-zpbFjp z4+h7Mb^I>(C)C{Y-yK(_#qed@@4Fvo>%IKCIZ(Z0+qQ;mxkP34cMo?R-+Gp}lRu%= z_t}civ$7vQn^`Ae`CZXP|7pXEy*;&$7sz%k(pZ%!&^ueyCf4kBeAJ)!GwSkf=I-28k`Yj%;{JHt7K7fobx?0p~hv~E}VS9SNi%nUQ_ z2N8YJ-=-WVak2~U>N_K5ijh9*1THNEZZ?j38 zn77RBdug%?yZj$*PPrAW7PHz}l0P+;>&srt*EMVS51Z*Fs4*{MSCuo?yY=k)*9d;q zT7%CWA?DTUu7M)1p}e4@($~o@`e;xx>r;YwmI)xi!tm!UfPh+{IsCp zV-Ca4-%;@v99NyDgcV)0)c5?g^YIDi7>f-8a%rDCs^5ATZ7A@4WcjpRC4QDWbW=>r z3+=WHZ`SLRH}7dpIk4Jl>2u)&T@$*p`Bw0&dg_|%dtT$RH~6R|kh`E#!Lw?I>fLSa z*FCq(Go)8c(mi``o_6?3zv>enpL5y;-Uh!u`_l3j&w;(+-@p2N&kXv0aa!-DouH$1 zS~9u>?%omTz0jOxGoK^UX~*QHSB>@8@_*c+_jK|?84Z=b*Z;ps>%2_=Eaw0Ext9Q^ zLY>aj$t!H8d`=X2JgFym!$(1eD0!o)%g>qW3Uen{syx5^*jLNt_sNVy7BA~!&p)4X z+^~1!N|05(0rT%kR99$eIDPScdzIm0M(|$KEyulrqs%w0y>;br>zt>0(RYI?dzxSD zE8W-$(jns7u`ecamRpsfCMZl6X*iWk6|g-we8@F`AFiEyRsZSb znZn@qU7(2TR!NuZTp=wlK1(UMK<&uN?~n_ykSa?Rknf#&=H1G~q>hCN(rmIbTomW9 zFdFyVy;>UHocr5~y~O@qMx@T`)0HwOvb$e)UN4P36ZK5JOXAwwqiW?ZuD`c2Sa?sg z{LBo+b=pPmo_+aq=R(nn|5X9&eLeR)?wc&&+p*4Vc9rbRYfEaJCZ*nezEAsw{klbQ zApd7sb;$7_;ArURR5xh8sk}E)?)CG`@@D&KDQX+t`EuUB{!|-#ec8jW3vx@NZpM15 z?XH-{Y_+l9?DnnT?fuL1Ks*6nXn|`o?T%qK$+~Lcjx_L#fzi8fh z7rtZWtxc)hdG6iOZN2nx!MSA3?;`pyKShi79b`y4ru#bZhi&15-wp>Y&e&{PZ;QOu3y=d zx6GZ-Z*R_myLT6yyY09$FSbrU`G2)Y#CE0oy{rQEYvj{i4bGARfTxR`?f4`DV zI{21X>|1-f9dy~$-h0PYt&4rv$E{Bmns2m6s^i_I*T14#|8BB!SFP6i*c5kq@kI6u zSqi(Nw+r6p10|cSvM$QsZaRqwY-^bDjC1eCw7WjMGUZ=)UwCk}c2dytaMg}^6FyZW z=db=X_h?_4=8gQ_U*BuA%-&uVJE@?jpqhWlA5r^PHfI`67dn-=JAdhjd+eIt&%A?m zjvd#jh>YOxtO`>6&BybstBdSvG`7WWv~t~E{^Zo0tlJtX4qqnSjyq@@F>lw~IWO&m zmw^rr+18rD{F0abvg_WBdMOTDDjRkAEYkX4FW{*Sh{(BEL-V0-K<1@;! zVol+=*pgAW-|`msp?PUvKJU@HeL4HQQ~R1T3${s1OBeiR66npYj&!Vb+g|%dPN@3p z=Y?^{!R_j(gM*CXe3^QKNIlV^Ux8oO=PZHY-K8{X!Y9RyW{*3Mg2E-=3w zJ*i@OTTtFIw!ZSBH_o~Ox$|Buopap!&8hh5pPP@L5uTfVNy5oQ(aKlsmvCCM;fXmH zUcZYt*UtB__hcr+*-FJK)up*>Up<#xTWl4ie#*9Feqdhsx&5V8S|_C??!S9`;~m@U z8~a*sM^69rQ3$jX?rNAo@9Y?zdliZr)5U~q1$I_`dv&&IC7(d9;l=)-2FbWB1h53o`^ES3Y(eMTx3&LmZO@$m%1R4tO*;={g&(WBTXk0^R$x)`%4hRln#Qj@w`lcY zyZauQ#Scvr<~{vA@sruQq-e!`?RWKD14XWK3gntQyf@VH`1I?0RDtncJaQn^@h z&%ws@-w*%azxTI2BS^eJX8z%&F27r)q9SEVmt>q&^@^QS)PB@WZq}kXMHf}wb4nIG zNel^>)LT><79o?aqPTQUQesN#3KdDV_O8~}gE#pP*|YrLVXyORal$L(Gv(!FW%Ksl z-Cg#*?ETj!{X2H&ZH&*qyI1u7@4fOgEBku?5QYs-YqS3^)cMa_sd{e!92y`@-)X4)5}Im-an3R-UV> z{rlF&#k2n2zwr3#o2^Sje{X$R=X?73j@5sEtr5O>e938k;ft@uH>`i|{-<2Rz^Ubji_wQE!E-1AjMWeGyvH`EBp~u(NT;LhreMfBxuA zLB_w&S>LUWiQBlJC8hlNN1=&-pYmI;y19AF=iV15 z8y}o~Y;C=M_3E3aHOjvA&HSNf9#R#nf9ms%3!SZ@zjsb~8u0XU)vmug{(EOw{`{0< z@5Rv25qHx~_vMV32X%hg&Y!P-d%a~Z@9X;T%hxsUhx*1lP=WOd57SME)1%(uzk%c6hZ zllz#=!qD+zYW|f;eaewV1!<sC- z*VLPS?lP&q^>%a4qgKCw_p8&+tGs_HYrOIIyl)?yub!FtQK$OVy%|q`W<3k)mA>`( zn?C2x{k1j0zdv5PR~MIApIDHj$e^$&yz$J9e~ZO0=>H01W>8r4{961a!{m87!-kq7Szh`ybyZ7s*v=da8xSB9DbeOrI zk_<{wE+ALCnlLaZ-4eKnjqJz}1o=knqLLJYgNrm8$snk^h><}6B*`F{+mXS5g>>1{ z!N%a=(hV|5VbOo{x_`IruT78LyLR8J$JVdX{}sJh@%{Ue_y5!uF)~El6|B9Rp0~zd zLOT1=hv@SA^&!7^eL0mqOF{f11H+nI9p}z`ewkkxy%*%`Wx;-H?RUI9?7nq>jh&Jd zLqn+S#ryl7yZegV`}1}0SJCTv`TyoTl`Y=;?4=mv9%ys-z1Z{aV|x6Y>ysud zkE^IWmTVapw|~xQS8&Lzv;T6j|LXe6x1GK->i!?^H*5US*(uGoeee79{p;@UFD&jn z@vM~d{gHS4b)Q!MTARLaapj*Sll}Al)f|ug?sqi*+sxyqv#;-aeK+|0bi=xvp=Zk? z<0j>9I-+tr<$t8wq{pT4^Wz!7HpN|SfA9a%=`~Ac#-4jVvHyPg!?tJV?Q1`MKb!4ck=|DIo?m`d{{3qI z+H;l9{m(W`PmbB}aM80LmVQlEzfYbi=KL$Yza+c(PD`nh)qC6b-Y(1x9WPX+J1@!X zw_d#a^Ro3O{i-FujjuUhoMmwCo9c|!_lo-Ftcc(}lb2p*dGOCK^F4)GH{FzWNm=YP zJnkFvJ^kqY>VK`?cG93Y@B7>lSANa%?3tqPo62VXJX`IxpltiuHw8-D_xGQ1`2Xp^ ze7AL-^RnlbcK#4Ld$T@m&hP0rPp>KNtN$yWH?ylWdl9ItnRGnin!)oMk-O)-c-yzB zZ08v(^+~HM<4PCrkDVDScgxJ%`qQ1~>iZ41=HBzK->viTL{F*o`m<)Y%igScU;ji? zke5MW(e%70$Fx*Eek*UjT={O6zu%b|bK}-@oRfOJQ)!pZ{~ce??Vepb{rh&Acxypk zhJrb6C4N$8a*D61^jFy#@4vZhP53#Z?uFSN>D#O}#-_FY7M!~}D}+1ZoT11?=jlg( zzx&rd`}-7CO>nx`|D_Rr@q}l~;%%N1;d3J&v6L*@Dt|aKY~tHpf^!S>&Oc{4YBTNh zwXe>$jB{$s{B_>Amt1oQS57-ybKmmzG+~}%qoketim%?wQO#bxyIkzdnbMt_ zUNc{w`}}wI+LZmBAOD>V6T0sFdg14o?`hhcUzhTMa%jOEw=e%+tLZMz`)zyu#F{TP z`M+(m)|SQ9@3=jw8=SvooSi`_DFdBUSOhLdAVmr<*iFbJ>ndn5z`)?LMG+MJ7$meD z0VOYii)|fj45%biD7>`l7QYxCvwJUR=HnakvyX4@$Y5wlHM__*bK|FDJNEBmU^p#( m$y{1HE9dKVF$NUSaQK&g#CE^%b=^)8APG-bKbLh*2~7ajwX_fb diff --git a/homeassistant/components/__init__.py b/homeassistant/components/__init__.py index 9133801033c..0336fba5993 100644 --- a/homeassistant/components/__init__.py +++ b/homeassistant/components/__init__.py @@ -3,4 +3,14 @@ homeassistant.components ~~~~~~~~~~~~~~~~~~~~~~~~ This package contains components that can be plugged into Home Assistant. + +Component design guidelines: + +Each component defines a constant DOMAIN that is equal to its filename. + +Each component that tracks states should create state category names in the +format ".". + +Each component should publish services only under its own domain. + """