From b0b0e379a6aafbd8997df2eb736ea58e63c034d1 Mon Sep 17 00:00:00 2001 From: Ben Nuttall Date: Sun, 9 Oct 2016 21:19:27 +0100 Subject: [PATCH 1/9] Add source/values docs page, close #448 --- docs/examples/combining_sources.py | 11 ++ docs/examples/custom_generator.py | 12 ++ docs/examples/custom_generator_finite.py | 7 ++ docs/examples/led_button.py | 9 ++ docs/examples/led_button_loop.py | 7 ++ docs/examples/matching_leds.py | 11 ++ docs/examples/negated.py | 9 ++ docs/examples/pwmled_pot.py | 9 ++ docs/examples/random_values.py | 8 ++ docs/images/combining_sources.png | Bin 0 -> 43274 bytes docs/images/custom_generator.png | Bin 0 -> 21895 bytes docs/images/source_tool.png | Bin 0 -> 19578 bytes docs/images/source_tool_value_processor.png | Bin 0 -> 19388 bytes docs/images/source_value_processing.png | Bin 0 -> 25435 bytes docs/images/source_values.png | Bin 0 -> 17234 bytes docs/index.rst | 1 + docs/source_values.rst | 133 ++++++++++++++++++++ 17 files changed, 217 insertions(+) create mode 100644 docs/examples/combining_sources.py create mode 100644 docs/examples/custom_generator.py create mode 100644 docs/examples/custom_generator_finite.py create mode 100644 docs/examples/led_button.py create mode 100644 docs/examples/led_button_loop.py create mode 100644 docs/examples/matching_leds.py create mode 100644 docs/examples/negated.py create mode 100644 docs/examples/pwmled_pot.py create mode 100644 docs/examples/random_values.py create mode 100644 docs/images/combining_sources.png create mode 100644 docs/images/custom_generator.png create mode 100644 docs/images/source_tool.png create mode 100644 docs/images/source_tool_value_processor.png create mode 100644 docs/images/source_value_processing.png create mode 100644 docs/images/source_values.png create mode 100644 docs/source_values.rst diff --git a/docs/examples/combining_sources.py b/docs/examples/combining_sources.py new file mode 100644 index 0000000..136314c --- /dev/null +++ b/docs/examples/combining_sources.py @@ -0,0 +1,11 @@ +from gpiozero import Button, LED +from gpiozero.tools import all_values +from signal import pause + +button_a = Button(2) +button_b = Button(3) +led = LED(17) + +led.source = all_values(button_a.values, button_b.values) + +pause() diff --git a/docs/examples/custom_generator.py b/docs/examples/custom_generator.py new file mode 100644 index 0000000..19a0f27 --- /dev/null +++ b/docs/examples/custom_generator.py @@ -0,0 +1,12 @@ +from gpiozero import LED +from random import randint +from signal import pause + +def rand(): + while True: + yield randint(0, 1) + +led = LED(17) +led.source = rand() + +pause() diff --git a/docs/examples/custom_generator_finite.py b/docs/examples/custom_generator_finite.py new file mode 100644 index 0000000..1678fa6 --- /dev/null +++ b/docs/examples/custom_generator_finite.py @@ -0,0 +1,7 @@ +from gpiozero import LED +from signal import pause + +led = LED(17) +led.source = [1, 0, 1, 1, 1, 0, 0, 1, 0, 1] + +pause() diff --git a/docs/examples/led_button.py b/docs/examples/led_button.py new file mode 100644 index 0000000..ba66df5 --- /dev/null +++ b/docs/examples/led_button.py @@ -0,0 +1,9 @@ +from gpiozero import LED, Button +from signal import pause + +led = LED(17) +button = Button(2) + +led.source = button.values + +pause() diff --git a/docs/examples/led_button_loop.py b/docs/examples/led_button_loop.py new file mode 100644 index 0000000..8e28368 --- /dev/null +++ b/docs/examples/led_button_loop.py @@ -0,0 +1,7 @@ +from gpiozero import LED, Button + +led = LED(17) +button = Button(2) + +while True: + led.value = button.value diff --git a/docs/examples/matching_leds.py b/docs/examples/matching_leds.py new file mode 100644 index 0000000..542a711 --- /dev/null +++ b/docs/examples/matching_leds.py @@ -0,0 +1,11 @@ +from gpiozero import LED, Button +from signal import pause + +red = LED(14) +green = LED(15) +button = Button(17) + +red.source = button.values +green.source = red.values + +pause() diff --git a/docs/examples/negated.py b/docs/examples/negated.py new file mode 100644 index 0000000..e7cc2cf --- /dev/null +++ b/docs/examples/negated.py @@ -0,0 +1,9 @@ +from gpiozero import Button, LED +from gpiozero.tools import negated +from signal import pause + +led = LED(4) +btn = Button(17) +led.source = negated(btn.values) + +pause() diff --git a/docs/examples/pwmled_pot.py b/docs/examples/pwmled_pot.py new file mode 100644 index 0000000..00e1e5c --- /dev/null +++ b/docs/examples/pwmled_pot.py @@ -0,0 +1,9 @@ +from gpiozero import PWMLED, MCP3008 +from signal import pause + +led = PWMLED(17) +pot = MCP3008() + +led.source = pot.values + +pause() diff --git a/docs/examples/random_values.py b/docs/examples/random_values.py new file mode 100644 index 0000000..99a2572 --- /dev/null +++ b/docs/examples/random_values.py @@ -0,0 +1,8 @@ +from gpiozero import PWMLED +from gpiozero.tools import random_values +from signal import pause + +led = PWMLED(4) +led.source = random_values() + +pause() diff --git a/docs/images/combining_sources.png b/docs/images/combining_sources.png new file mode 100644 index 0000000000000000000000000000000000000000..5f9c98ecb24b152ba638a51c3151d00503a62f2f GIT binary patch literal 43274 zcmdqJ2UJtvzb}XdMNvQzkPa4lQEAcz6jY>l0z{>U-h}{B0YT}#H|bzNdIzNwdhdi5 zdheatf#3hmT6gZ9``%k`?wXmbvzAdp&N=(+y}zIK^}D>R)a{!TH*s)qZohf`QV|CS z*9HgY(oek0;9ppDYudmcS8T-JDC6PbjZDf-fWMO4zEZbUvM{i9_+YJ%V`y$+rq6Dp zYpt(uZewI&yLP2o1P6x>=gmtoz{A5M!-M4F?|ZHvtTd$lF||}b;^-P)3C?A*m%Es}T8#DDntvk= zEk}Z-hDXOyAMISsoKS}_;kM^qi-s~o@EdSp;HCa@Y~;$tTeYV_xaaTQ^Z)6{oBrko`TiFk8R!zhq#I3sjYoh=*d~jY>e`0D1&Kh7iL#HVHCs! zY#)1-vNm);jLni3GUfjEdH?GdAEI;Ggi7V`p4#??aJ(bc%w%dGE1z6Zx?aTQIM1nb zN_WlWzP`Zd%FRn&wrKn?iB#LB=b_?|(UaZ*<&ar@gLnbw z)jFD_+&8NRodbZDDk85;MH>lqX*J-DS%wC^G5<6D)H z$Bj6uK8=WW5;xC5vUwkEw(0v?BS)qC@j-j8kN~^P z#3EFCS0CdO)7I9AJHa`XQ^cxO>)#RcS0$1}cA9qcJrPVTEtyD`Vh4N5d-p`lcQ-#w z8x#omA zt#?p)JUgfJ3roT%jkNqh#+@KBJahFD&bEwd+bSdJN19dcL^P{6zh{1Xh9Sl_av8&y+%Z zRWKglD9zZAs)7ohW%tns+F+zVDBy=Si}yF5m_5cP{|*oB3sfR2MjZ2yq?C)eycu3p zRE26QfFs0Zw$5)y*Kq9lQ4xB0aJaalILU(hg?b#DP(H^7Di&v3$zqJSYeWLfwE4^Z zyhW(Ysw&=9Z@$pnuZqLD+U6pcxWYtTBN=;D!%mLv^3}x_w!g636SU`BAc|~~R$c7< zIPPqz(TpGGjt03b{(cha{`PV4y?D8i_2J6HvZx{&MTkZb#?3GXzMr$H7ck+a(N6(! zs}jp3HHgnZve{T}JSoquN>${qm(ZPiF7%)*_F)cF)p|7_%`diQlYGzSkcz#L?uypv zcnw`r4)t}(D_3pK*ZnOmSe60$dwV>8RLPtPy}K{6GAT>V&M`4jA!ph0W8>i)@6{rk zGVbXy6iRYva=}+yFNo^-w1AKBwMd?NZ5>illSv&JD%J%;l$&+G(z-F z+uM}OF-G1gr$&zXh+@D1Hj0~JwS+1)a5<;<8SG#V-)#JBT^~t|ESw`du>`*b^ zzn_6t{`9rPgE{pPqhT(Cq+H`A&kj~yT;EvTrn(_N^Kpy^f8-4~rg1ifarIP){-P1h?!*IKnG7N!mpwWmHkaSxlC6%E3iJMUxIn!NqFuHzSAi zXhmUFnK<5uPClxA`?jA)(6DSjFU?QP8blAcj1et*^bh~mq!2NSS}1bpSz7Ov?s&*) zR~#q96m}zT=Zp;u$}_42@46C~t`j(*6J)EpUL;gmlVLZ)`}Zj*7gO0v4N-P`ZxL4p z1_e3PcM#(e;-M}#pUG*T(r>x$R8X49{(`SNgdoZC?9Tf_*=QCfAE@AYY-<-uPP=bUU@tsniMUs#;zvy zuBs?j@Z;i-_Hc}TvxN>*FQK-K3szA_&&hc=>n&vO+!d|LOo4K!PbFSWMQ z^$rx5eu*dg_(5j@8zU zfPv>scALJ3!WY|SNfX=4fafKjSh6IOHmv3DkD`d(iL!NEQF@6*KYM>(+GXD<3`J!g zlbsHup6QqKViI^U6Bt^RD1`A{sm?(Y?p?o4o$nfNjts}GjTgjHrz+l%af((4Y^+e3 zsTk*P(Sb5iyd~MSz_+-ke*3(_lMM|E7Mhy!drw-+Sz4MGjy1F^X!H#X6b-MieC*^? zz6X^r8WhxiM@j)>fs{{MhX{&kYM6*KvxNbv2-%2e#b(BCz2NQ zj_0e*8vIZXNyFMHKXMohZ&|nk2~k=5Ebpi!A$Xk(ld^6+!0x&pN+2v`xvh)|3v}p z8UlNU%N>&HhHBL`cpxY%$5=$t=|6z6Q=cRGae=96I+BI6Nww(H;dRz5igE)8e+b6# zHYK0LQ1_sGw9Ty1^@grkR>oV0hqNM^W=0jZ_r4bTGJG6ITHCF!KSiDD<7(oIJT^tu zgv9HnSnEn?n=gK+(9Uh%ZrP1wQSs!}AQImvphf-)n@Q#4?Ts}1sgT5~ah3+b*xlub zt13Q2J9WLX==Bf00AS(FZ7mf6q-&xdf97p02d*&Gf4}Qzu0vDx1w~+hkQH^YT&lx$ zU}AhmHI&z%kYjQ71O|!T>3p2|7Qe`4`|A+1kFLSk%>3+QHQ^IC>ahx#?c+`M(hSDS zH4j3I@4-4^Mz;#xyvyCZ)7-opCnl`2$4^lN618cAg5@nee0f2;YM~@eYA0VCOFtdh z8O_9<{^f{sW0l@YfdwaSEKkxlNTQRMZ8#>=DC%>m#dK5cCnOO84SJZ}e6pi8&%+NE_NWh~!-5LttQ?T<5ZhuF;ejSuT@Q9amsPUn>adoodj?J#XeE?vEJcOnO9beU9l)Lf`$%_ z$w|InnA+M@ws(idNy@6`?-Nxaz7Z7(NfwXXBR;LHr0pWqPFpm;9WMUZ;T)r(;P0q6 zv2+yM1%n(?{q;`p>~(kTD0uf{i(cr?nVuLF8f>%Z#fyYEaflx z1ST@^bEn}>1tkGn5q1uXJ;NM^dNb3V|Cr9?SHiH4&Qi~d`0Q*%5byS%S8G&m@)7M2r=nx4yk5)HRdX3HTGS2r;|sbz>0wRvX_z?fhu z08%e!ehRX~!&x`C3H=7Mrv*^VmTy0uf!iTr zf5&fgFbzH15s~nJS5s_b`(5kP9M}`IW;+Vp+#1KroW_a>p-jy(7L}fFdF%~Zmq+3Y z`v;4xw1q!*AG?o1BMbdwhI5tZLnB_^eAZ|Eg9e$!Nl zDR-zHNh2`T*zAN>97~j~xe1_#dgRD&2*PhI*8jz>C66_Wq>RP1H3j+w}|_5Y0v2`6%%-uySmO5RJ)~*NCcKsYOTE-vlQCWX#iD&dPd=H`1pM^9qOw z+>0w&Av`00K9>g`Wdiis4g52Ee67mE4|%_*(VYDQ$}AAccN$OD)H#X8IbV;T9b5<1vn7TW~&{7Y<7n&El?-dDeW&^mXYb*$~^a_%>PZ(2`FFWBc3J zqsLEupJ_cOJ5w^&NlimrmSVE1f1#wSxvwv0tDO#5OMOm)h>lfnxReT&ewe!1duc#0wZ`u)_@UX!Wm3bjjzc)SPjwKlHQ|x3&6~zl5OK9k*nyHjl z=8u4xWR)LINXeIkq1+ji7wo9FS>K!!`Qfr>1&DU(Q&4pPe*v=$gtzXLOE9l2^SfU(NESL-@=-|X3rlN`Rgz> zy;I;-4J8A|Y-$7Tf$Pd~xvJ;O_E1ibSM16R_!^9R#i49^k5*Mw1ccp^GLgp-MvB_I|a3c_!ws zHas|?r7di#Mh$vz$B$O{EQGC@iw`|;|25jxQTg&g;fcpf#Y7KG-Gd z(UezkPLwXXd+R^t?9D5xs=O$;zZoQrRlq{ujLUTN79b4TAN+U^608Sm_s5`qaiy*B zCa-q?{3MAL@rMj;q7?_arJ70#nnB_8oKu|xeRWlP?p4{6Puu6adMtk1ShKgk5iDB? zrqKRQRHOII9D3CF_pffOu(JmdZxI0?knaSmj;4eef_V@Aq%TOfiD*VUzc|>s^*u({ zEXjE8w{Jr#l2#-~C`ny+?*22YqNHdCP`eCjbPk#w7rw)*o#3ZqS(v!6%6r(wxGi(S zqQO)dkoap@u)LUy8n8o6WRaq4Gh4Ipz~kncfc0jH8pd#pNhow6R@eoiU67;52PsSh zx4X9N+G0cNi0l5A{eZlg678IxI~i_cB9l5T>Rhz{S4~i~-H)IU-|@h6kiU$HZ|oOa z6&)k~MtM~_3wr>kZzM_n`#x_)emb^ikF4A0IL9@i+Vt*E<|zrB%MH3tIHlF3Ub0t& zu;B$p7F6r!1q8l7Q1l9k=VLacdR}@odRUXjq2sDp$aK{DZD2JxjpfnG34`?{^=g$^ ztTQwA*5=&~`(StrEfK#?x;_^+^mnzD4<*5DwRwNZM(kzHVbsO&o<9Gy%)=*=yd2{;vEX*V_zV<+MK351K#X7Q~Qq9TI!mFj_CHriVOKh>U>I(o{+S@b`5YPikPmx9)m zFjHCZXpN&*8{iVWDt0_+razLN>eEDxgE2B^Tpq})V~x$Syi-d{XLfA8ea zNZ&400b5om-)w3&g>(APNnatVcn;xJ7S$x4}?AcNRo$VhHK0H2N!Er zBpr(UCeL$bU<6zIL%Su@c9wuFT0Dtw1@i$#B=&J`eo^GP{6S$6H)k#Ub$Uq@`E6fR zW(E2sV5NE5x^wC=!7%%rzX@up-v2j*-ZSh!A@nKO=a-PPaI)5+-PGRoN&}gLgq>BQ zM4|Zf%duJ`i$l6X*9c7t$NF02fL^8=vfJxbChcODlE-r9h+cki-3%pWh63C)ll!du zmR~~dfYCBF#`kW1&~8Tsrn}7TUA<#4m_Dxb(<7o2ncYJAef2h$M{6rH(pXae0@{0=$%Z2Qo2OeN#uVwN?QO?u5m;?)MOzISC$yB<_iVjn#^wu-GSEZXNfePLNyUcxU*HRTs=Ph6TYo3}M zs^mRkG78Dd%*kOcwagagBh`yF4--pQHt>ge+P}I_-94LkHf#0$ZJ$$4k==>B;6qWa zp+UV8Wwi|F%Tg$epNI?;n)EA*S}@Aax>{LYR-H)P2cSc}zecbk`-a{soTZ<#)felX z`2@z}?mhS3a8GO#o#H`cNMIK2*g~vU@pNaNK)(;r`O|zyX{32CS{^c%mmAzlYShFL zE5PhdB(6Kx+fVFdnjUKfc#(deAf0mDlaF(qrjFA41xuu&`)@sIXr4P|ZoY2$mFzNY zfM#=Vk~hr*`pQqC&q>0q*ZLDJPGb=lYg6g4F9sKI{~K+*WzvVnx@H)XBKmX|*5@u0 zaDC}@_aRi~5bqB=6%0GAq7!|R#I&hDK+^pq(oyW24%T~tEtNdV-U~n4(^z;l?up-` z6;Gi?fI1HpyNkV1PpF{vAJ(sHwa)cJ?C*vkur0Z29P z7^dqPLNk-1+3@IrMWd=JZQVmjx!8KxJO5V1$@7ien^M_f#822hEWAGo3?QDLzg@^dBACOkAKsR2_^wG?04Y7ikxq z6dkU$vrVX~n)MdnT1hTKI87dI00w6Tz3+P5eijD+6;OW-(Og>xE0IIY1GQixF^P-t5lf%`~t#8AOmQD>2orRju2k&{`OTIkN$^^;@&TW zFxYSbC1h|Dah*f>n?nqBP0*V;{m)oUDD?}uIg={rMzjO*3iJocM01W$7&pnLH)~?9 zpj{J|iJnQ{L zLW|Q9B%@%NQ%0Yvh!XwYf+ekrV;IX1CI40B zQ(?q$49TVgJO#*-7(KC4xQC`0&(DKf;k(iQm7L*mE@#Lr5C2n+e$q1Fi+la8Z5%(W zDU(?f=|44|0h@QY@Ts5ma7F8XtU=)6c`NJiP(&lee)kU^dddhPW+O&{S!8eBF(B^M z^va=#CmAe#((0v_VN~Aq$XO4}bAeA3#v5E+{B2m7DuVc5S%5b{L3=7!v9w6txfz74 z?6D)PK5c^#E-i6LvVc8`(LUQ^s0UD={vV7G7uOeqFQxc$0DjXr>QqoLV1*8MXzG@4 z^I4cWZzTfZIio%yN7Tm1q$N(|%Ow8lNpN0@v<^1JfOF_|TGa8i706^`InG=ssc55R zDo%9IP>;i;3qp}Yz{t2^vk^#C#yg7Yy*2y}LWaA{GQP8o!tGk8C565Rrd}<;ghd~> zUPrE8PEgE9V?WwSe&w(en5fy>-lcyiQ(b!EA74zt`WowC*zJ_HP~XZ>^o_NfZtM7! z`)~3>*vi8+`+a4+$2p%n0VPk3@#);OX>9e;I5EVrF8F8{N8(sqf?vAqUhLqU2i z-g3okD2>4I@d{`A8zhn~CyPZX1GyYKMy)M;BL483Z|of+UIjBdk9fDx!ZzTF#yaUq zp-$WC`7?IkE@5sjY`~x0 zo!aCIGGTdp>-G+~6aWn_J$%^MUa|3G3AY9)a)T$KdG*7R#CM0BuJ*VB%aS$j%)uU& zxJ?Y_NM;0v-MmQ_4}om9&Z&f?ECmQti4k|A;P78jjxE#df)PFqy}E*2Q`0x|6k#lHJ%|W6XlUHrz&a=Ax65tF zzA}9&8+PITm1(Q@iZg3836xehClu%P7Yw&`riYi^psz_|4;zt@)E!krNRL(m50d3b zZRtmrUH$Nk8&;=3d1$fk;j>o6_e3ow`0ylZ4#@i zkFe4y<06VoC~;aicwc@Eg3znN_aoSp%$v z+b8&bmR;^O#^#0v_b&1{yZ4pj<-?|y0_7@mp`}^uSfL-jeUl5k333scd0)-RE5#K@`4s6F505ls{om^&BMbI9GGd%;4ITWi z&)Z$hDJLvM)vGbhh}mt)yq*G#>SS^C-pl%5Cnl!&pX+G>F#aVet*Am8Z*pRpLzyK* z3#v5ap=+KYsivqCz#i&`aEuMZUMC5FV&(AHFLHF_&xI`EM{KZ-1viKX5&4E_TlE$$ zKLL?AH#r5@T@DTpy!f(YBxA(8hQ+*}0JuuJ#O5w^2i**nk92>t*r}aFCXS~N;iAa` zDqvf`7!$B9fVnlG5{gfc+I$A;NtvDUi?s(Aqa<;;@m-;fH8LkVJ%g!D&_VIQMG)Y{ zZ)Grg_vj8HP(n1vqa9ZDj{SD5i^m^$;ELn9xU`LAF%-;&fpf1?-RV5KuyYeU)B98( zGHA1g_V}NrSA^IvPbqo@_K-%S8R|Nq)kl3&9{GbB@O0%^Y z^QC#Vc;bzAmq1}l7C^F2UqY_W0aP*`2dVhxZa?SsdHiCZPMEvuE@NxGmEBLG7B&NX zgpC`w$i(&H1-j)SkI!BGF+TYrbb`fms-r+zg8CT5>0Pq5U%@UW9iSSm%)KO*l1OAG#knG~YQo>oS-7*Y5;O_1Nnnj7D6&dL?n zRw>0$@`%|5BZF~ z4+`F`0&1b8uW|X}>45`^6j?tWnx>|98(y5+Hgl^=M2b8vozvt!yy_v18{7qCgZ{1# z+{4EgcD^udeLXjO{F1m=(CBvNX3dtNU*CW-9zC!amgg6Z`%80kby(Cjh6;B60QJ|_ z_7;#+GvrlNJ7J!{^HA-u1@6MuCSf2dqtU)-$2qtw!pT+&xRXg&u4GI8Gx;?KIq@Il zDG}&DS`J0AhXXMTaHI1MFSo}VT>FWa7O+d9fu4RBN zQ)RW_=LZo2{n%YbV_w+yW#X<6QH?45H6`TeF=18Nh6N$;+kvEwI7P5tk&@fFL1nD3 zucV?H;Bx3C6!@Vo`QV|ZxAbS%Z|Awm7o2$Bnzoib6wInbW^5h-t>sG|-N$Uq&zk@< z4K09HaWgR;H>90@Fj>3z)B-b9D~df{C9Q}cG~!py=gW<>7%7d76hjrWDw z>Uav)lUmIl(nmZ5{$4tt&RX7BQKrCJy!0%aN=Q0##&)~#F}Rw#!GBGa#qmNlsh?Wt zZ==#UgUxYHu3bEKohR0dKLKZatuH7Qo{-x!vS>EK;?z8K)6GSSWGHlEiT-&TE_o$oKO%j`L~nHw_S69xF?+XXu#^-z&H3x!Lbfq&;uHo?KFV5;Nc3YhP$#k@A zEcOmMSAb$7v^66_U+2Y)pN-hxY1tm#om>M#2#5Q9nmg26b>%4O6tZWs)PvUa!eVNl zbf9WT#f)Vt?aFWN1eAO>+uJD=@Wx$#!zIypIpH!1ygP;4rwe>1seK|?+|Zh6ChpZN zt=d+B*$AV4C#k!b8%w@ng{#2~!js~7K$ijP2R-qePfVG*?!fFP+gGK)+YgU+`dL9& zo>=r2FBs_t%&A0)T1J2HjQU2ZPdG1cboL4@%b0;34rcu)zj7Uo7qH6b-gO2t!V^XXGxL^ujy=8MYE z*Q=M#!P(0|3*Z3Y|JWEyY*GtYAx;yoK68kj)1HJ8<7FyO|L912XW;v+?E8b5>q4W0 zv`0V_Kgf?}Xz3)#jOL56$m!(48aAa=GNmaSRPN2Wo*Z6LNx=oWy5~nxt?fUoWBU}K zW>8SVihnt({vZJfogBo>?dxRz(rOk6`^I51kjOND#(lcJu?UBrwKw!nPVodUbk6!G zPx)Z{WlC3dFuF1f(|;`ns18oi;$Byx`+Y!|^7ICd3zgt=tbsOv zQAgc6^r@>Rj30f-ri=Z~<7esn1S>i5~3C%Q~8iOK2A=|1QcUVNuBc zq-TSDc_wCQxnXO$QPCPq9W&M zsAk9|pjRCfB75gOuQywe@j;mKrERP8Rr=?1SVRQV^_%QDz%#GN3c{s-sowh$@HVeA zA-Tl9GE5oEL+N;@&?a&uaOR+2T#HW7m)>EzP1Vu78&yLqg5BNX26) zE#+%NdzUG-dyt#AXJtMdfH9(fl<1bGl+o^_~ zW;<1VE2jejgRe+Q;rhibu2S|=>s~9PJg_uzzT=$$L&s+H#n%= zfFSs>yAae=4_q~8lFUMlwxcX?^Dk;0rOim(W7@8oAwy%MKwmLL@ z=^>+C-=~_Nq&n|Nr}kc=cYS(|OrO1mB43$E)5|VvaW>wps+E*0+2uulNCKLX8Fehi z=D~O=XWn&L4Qeg2F0D5uRRishu43Pqqf>xB=l~ zrzJ!OpWWnrPS}poI|!UH1G{oaw*u-39e^pxXLwM;55W2%zVQu>=Ih=5E7@#qWa7ZE zKbb{Jt%3-TDq#)IA>GBri3SwO26Vgca@xyV+t@@4!*}!aTMRnlsPEl-#Ip)9Y<}n2 zBA?OwFqO>+v^NvWHb4|@beq*vPi85?wR4~qhM>Rc*rPz5|QYkv} zrGyDSEr=;|x*FLz28&tfBXien5FhlB5Z;B4o0F*0ef0O4gSra+Z1y1?gcieH3-$s6-;1)7iMS`~tDwb;-1 zlh0Z2K7RaZ`%5Bg?q!kG%a`s{OtzS&VZ#ez0tAMO5HE03!M-Q%MgI`1w@2BTn^u%u z{}LK110nQ5@4S*~OvrTzxd~u0(w?a|P9biAF8`dG0J~2XFVM-<5Yqg$*$6oMCiCe` za7Mn;t^^CFb{Wt^;4W95jr?+ORYzz#KQ}SkCFk_EvD`(_l6hSU6c&WbcdfC({gG5qjp<@;3V3-4m z0G2|{;lBz{wVt?3B?nhudyE!bP0G!{Jn+7PK21Wxr8+c=_F9VFi5T~eEov$tAW5&e z`{wjuWGuciQ!%5lRm*-Q^DLM`6k(D%$o<5L`<6$$} zN)Wi^;U#aCeC!VNh&x-Vk~z+rk>-Pg0&IxgB;=X%DG+dpKuE5~vB`eTE#i){ z(AowwFQ5|VP;r~!Ag0ML+bWzYd?!0>VtO}Sls9+K@!8GYh-pp9T_?X(v3{bZtU0y1$T-jFdI_nU6xe>9sELHU~PAB2KtpLAFC#*0`_z?qxy`KbP2F6bJWQ z^)8n6^70C};=w^pfn!U0Ui3TJlaa&%2-z7>KC;7*#5lL!onxci@@!@bQKF++*#b-#^(^#6=bgbS#<(HXn?Z2Uz@P|JT=aBE>r#FzYDgg_&Wi-#} z#YGtN`fQVgXOP6t8Sno2bIv_J>)1zT+hO(l|$si`R)=Z$)f19>p#vDI+tD!qFQgQe`F&zJnp zHIT}rSS1p@STqcLuYjX$GN@SAPjEUd&Z}qwSpg#RtD=^cmQ;1ON#QWIq{`2?@&~qr zvFk2f#W5l|e|S#HQfVwqX5$s5!p&c0(}H{4+hed}VH%5r6MnwDKga0~DdP@d)SfmO zi!*k7*D5k4hcGrdz0bLg^AGUcc5i>D67ZOTVbN9q6LfVUrl~EO&%s~``z|6PqTS~< z&Na64A+s%)l~s}d;qC1WW)V1-X)N8vxneJ-gL&^`aO@$t)?f9sozY5Gi9R7Fgdcu?RHj?;O=>Wk|a=3RDRR=%nT zk8ziFk~q$a(X)T*q?n_M-0xf_n#ZK?Tg$J&1r{3f4Ayq*kna8LdbNbHPP!r}YGmvGEJv|q+~KkcG;GhpugFtFAkgAWA?(weUjWqAz(Q=>>cTrHrd#YHFI}yo$5k zT2=?trq4QC{lY6z)Y!#+za&p~71R~gqL&=|eRUoV&*A$hc3h3LUDtztkP|6=rDl7& zJZY9>$hK7ah2Z{02Qz4DF3F1%#rdfM?s|Cw569&aw%_T>Kwa|r#bp(}U!@i6+VfCBnpWO^@FZR> z*mammZ4EvRSFE*jO zuE@|vX3_z&@3K)(28V+f8Fp^s7(AH|?E}hlk<&G)m!hW|A3_(cZBB0a9$rBoKLlb= z)Gc4sE-<0MQL$Yo0VKC)u&x-;#Q@^!GffbEU6Y(&i%XeX9goeNrw0tC1N)RiRu8vR zT7!>5d_f`r9Iu89fzl~z-|w4mafBSweGGDoBO*?TbX>27)KzrA5fM#+m^mukTGOPy z%U|5H)?3zomJUA&x8qqH(Rzuh<}*g=%Ff&6kNl5J%3Z$5AY?cQ&%^dHdLLHG5wwVgI_ zyjT|niJ5TT(_uB#TUsDm%bHa`*CTp1{R6a70183v(z}Z|dAc_GM&BE-@IZW59^;KM z2`QO7ETN;>tO8)J8J6qDix;ZoXLtdfg$xD}rRy;=9X_1g0#>fIcSE~XFVBFCj5|ioGYB5y3v~T<&4ZBbc)9lxqvQYF$}3R9;{kRbr+F1U2m{;IWmVALeJy)E zLzvZ1F|C)u4l|{RXUlZu#QKo2ToIk#SRN2c%cvO5Q#rJ+4eneiaj2M02T=#l(x&| zWNB=ZZ~OEAYm+adoXYFrBbk{R!BH2tWEhy;nQu8UxVi@QZ0dGaiSYldlelWC2{c>K z+!ZNhgThTm1WLO=_NM!1d8?ECsnnR1tA<)206H?!ypcRChBpBwQdL%N(s$Hx%Nun8 z_yX-X7rT0T59bdCTVk$p07)dsQ|D;)ByDGh2W5Y5aB0Q_J7EJzc!q@N57ViH{t-N; z%eO+yLKj>ai_WApe9KNnFnlWXFDK?RxXfL-S6ix^*#Y^=SqjEg$%m;pPJ+fQbEm^A z`K7nS@$y&hCaHv};L_QdoEFrU8(cGbiRWSGNgz1Kf`pyGS<-5L z^)FY>2M@$KiW$E@k*3Pa&xaH(*_Htvkp88X)~N8_Xpct{E{<*Q9~si!UuPy${*>-S z(*~UJh`q&e8Umbzf&Hs~#~`cFBy_L^>R;iT>#eh#OrRga6r}KfC7)oO`U-L}SIM9} zf6%R7sl+PS2Lef;A(?rA?w(%kVn1gVC@tj&w~UA49I}T#|GQRYj3EQ)P8DpNic!uN zF<>;mr=Mo8lGh1VRs4zm-*@uzL_I{Hx9XW?FmRJYzWK-VI3NFFkkECNR9qb*CTo98 zs+Y>$t6I1m2{I+#;qe6mFYppsg>otuMU0Ffw3CY~ImdaL8bRn+x)!m3eW;FP-3z|s zPNX*aO8iYJBM`7aha2c&+AI#4H7q(i2p_mO^(7oj73_{QaTgS75Q+Hw`!$H-N50*9 z1`^YZXB8P0bdVu-kgR-2HayLx+<6I1e-wx|qA)co}D~N*9W- ze3R!t=q_O5_ViFJP$6BJv8+7UyS#kO=kvPbm;9;ANmI=CxK4upjNN#E{jYLbgPZm4 zet#q?dNvU_&3Sq>^HQ$y@Q{14XsOT47kjMu_Or$UPHXnZU;QP)u8u$ETDt4tKVDgypHkli%; z_BF+V0KSE42T07FzYJ>@l{zV_rfKDHa_#I@Qwy{7M{AK!S^e(!#Kbgv4qNoPH*nCe zE%c->WyjKDuU?dEw&(_*^0u)P6_rKwi{d;xhgs4Gay4TkXMqk558YEcVr)i)qGwbi zgB%$&D3Z<;AQ)OOoTft{GgN1_J~4#<>%PX5zOL?o>bYRnG=#?4=-F1}9T9s@ZbkF) zOILP+)>8)xZp5^X=}tYwpIQ#zINLE~S9d{gjeL8)^=Hl^G)~Z+D60AGR8^3SNUwe6 zB5DDet@b*!ZD%-+d%+w_Dy*m`;+y)!hqViklin(>q5aVoui2L**C6f#FgcU}+ zF>cTb8{`CzxY4PThyrCyYr;Ud_H#v*N5+|@qhnp)h<=vC9c2u^H9nSN*D_ST2U4UA zVOkuGCd7~K-soZ)e=RXopFyU9=P$<~MfziF_gaU}lR;gUC|FMHL1=}c=Dewp<<{ z?k3F$KWrU?I~k6=$aizqhAs@b*#y(j#Vawl)gr2&%*J@s6>{8)H`iw!S1#n?3DJI3 z{Y3(grzM9Zeo)$BFS#7vGgg`ES?{#p{`-9#EZBqc;vp=VyCJwNpHmrKx$${rX=OD8 z%5lF#&D1P?f48!c?_{C+wAeF_v2z)|8tc+gNi6JL-d-m~`ha*~qDfq4Bf~YezkU2z zlR`T_Ox=y5(ug`2oiHF>b>_J|NV6%3<1QZ#;_&sJ|IsnOq}Yi>SzjY)!45}f2 z?hd7;MY^RyLPC&M0Rd@{E&=Hh5CLfcX%JD6mX_|WZ{q#D^_=%RXaD$*#b&K5<{Wd3 zF|Rf9Hm%`?M`cO5!l1_LGNt5{&`Pyhj()+GhI-yyv# zvffEL@!6Av7B$})>*K&|_jKR_FTYZm3y>TSR!^KSlL$n;TK1A$PM`U} z=(RDfzud*sdfmanxOqELQM}xX^myH5JETEd^>TKRuS9Y1)#dfCWj<$i8-xU+1qC&l zkp@Ehm9vKiuct~QCUqmF+sd9ECY4%4ozP7?V6OG0ySY=p7O|#@Wh{P|CSH^&dEWT) zICC^~%C#9U2CHdO>atXGM}UDLX#8GBRO#JlKnaS{$UYnTSl3WWpAkVq0Nsb zJ3sQEJJ)IFHoaz~oL4NTY0D@txU=iGbec*xe-mzs)~;IxMSsMGU4|CMkbLjy`?{Ml z^hyn#*Cnm{xgAs!c3^FX5j0|~Q%s?8DQ*ai)h-sWIvw=PW92;49vCs?dqhml#Qbc`wk*I&LESejENGi^StHP{#~(Wh=hFz{u+Mp5-SV!7C8 zs9-9iyUfc?W`T9s)!xbhosa4pu-G=92lYAn@zK62SsjW`6VdQIF!3@A*UNe8W~O8& z+u_Vl5;sWgeR+8ley93EU1IwJE4Ll3f0HmqJC)7%cVHXF0963pw6BKio_==hYH9jq zfP|XC;?&XwMN*9=kwn;Ir^EEd?Qn8PQw#J~!D*V`&qy`thguht8{TiM)b60kk+Qt0 zdn<6tE9MG)KuyFr+br3ex{g1*84oj-rMC#FKXNYU4yE#~&1M=Ndx=x?x6Z|E`Yq$} z#+1eiFmuEi3+icmX6lcAAD?{S;^uUSiSkAzvF@#V$A_b>j6dvL+tD`z)aJib30A1F zi4=?+J}PjNW!zi+s9E7H8lm@`@n;X`#6sNu|4XP2#u=Cy7 z$ds`|+X>{riD1AkaQALV>&#lk8AWXK*?z%LtEt~9^{K387rE*IMsnQV){~Y&G$kyd z+8RgixzK6fPImF_Ruh(o>*UsJnvoN&UM<$65}(ZH6v^2z;$%E>gCOD1Nt}G`8&luu zzYyn1yBjpX$Z6UmVoZ6=oSj+Rxpo^LmCv&4yeqQtvBm@rHLsZ6M!dT-ruPMZty=UP#bs}E@qk-ECN zAXz_>GB%<|Xu?QJJ6mgc{~X!9-aoYL@k&3xM;Eb2SCa0oc8TAHqb#LP*v7Z89r#NPDz^ER!3UMx_2Lqfft!QlBM#VDwR$GdMy=rw~L)RpuNiPN15ZE91w)wZ6 zrgPU(wDhOPf7l3V72&~=v{;I~2kf_rOxqYzh_vapvLM8~)|P8GO_xd^1~4)NHh0!Q zMrw*b*(s!X;IjVn;A?U^d(J0qSg>{C#h2r z1)G?A{zkX%Lf>l&O_4y`rM1Q7Wy&vMy7);oUw=ZwcF+16`G((eY=uh@M@F}O0n6(8 z3PdkutP~M}<@*LVn@9IQZQlFXu<}q`u$ANKP>RSC4nhqBQKtsUvB|+gP4~e+r4-^k zud;9#Sr;(3!@~!{wiu_zA3b!7J~`oY9iV^Eu6?BL1<#V5$I@!0 zgx{c=(R=ucRKrw5;vq@1FAm1v1^)?0gt(}I+)2H576deH%_f{rgJ1S6M4TdB`w-R8 zYR{!+U#7RSE;s+-x-R5B^rmKdQb(3q2Up~0R;OJJ)q!_9OVcmfLpHv8%^~b*(p^lIe;m?-C0kZW;Hx`$E54Q3(fj%Y zlneQ%5s=j3W9hAQ!!ObdCORAx5HIek!tttfF%uI8MRIr>l8yH(z5Ol2FT^Ptd2lzq zn714ASnEW&o%&4Bw8Xq`7~fF{s^NEP<$12V797y4YyQ~qF)BTcuZ;8=s$wa5s1}SESz@jEzoys#*T>l5C;RQ^YIi+b{YJ@oU|S z!myj2yIQl%rrTMS%eyJbS;P9A_LGOR)eQurq}KLQ2}BcisVGhZrS(>;IxXpo>EsAL zi;U@!76sE`!lpSI((a`E()#NGSLmj@^S*Tfi-g~AmI<3qlW&wKI~)-FXZassM!3@G zQcwq=-}2~M9t{;BYWP?`&wDIKLXn|V>c@-J(CBx$`d|7e&)71SR*Z!HidngbYTB8FCv+Cm_o0KtK_g7B}-`_wp%pxqMT*JKO-&k~R znJ{aa@kwslZ}rj~Uz&^RhWO)R%SaGjYY&(yzNH!{`P(9Wu1f%{9I5aU+t#rdGx$Zl zG@`llxAk?SbO3W~b+<#?X|ir_zFO(%39>?tGR z;naqTsj5}aGnxuD$iS)05q-K}4f_U~=bAf@wvOfviS<3}gs~-sOBVN3$4A7^Da3_Y zocc-t-26;XNs=W9Rt^5O^@y5113wy%7&73edN#VomyNn!_5;)DG{Rhl-IrXxec9<3 zy${6)C!4is(5PJqglj$b+@85!p>Kj%2}eNSMa#>QC|qZ+dfgt_7qhYp*QW^DXYHL$ zx#^FOEB{a+)=QXO)age-a6ao?a4y$DA4Ebl2lRAy64_u7mg}$*gdTf~2M{&C|CYC` z`;;R?UO!i;u6VJ@tMb5B@w}v)TluGUXY|cSEEHa`C@fR~xj}smL5Btxht&k;nuM2@ zpPDD=q%vzby}P0V(@S5v-@WB;q`=HI8N`9}1 z0oX?@{(c1B#IF(ZeNvfcN|hS$^X1NlEJzAtKbp^cwQW-XO1P1}~*aT;8# zFXdo0h;}o6CJnQfX`RVdU$>-3r_0j7r(mR{`Rpgd#*G&&Tq|&TilyFz7O8BfbB+2( zkyiL#%wS&Ubwn;_twDNhZ0pjl)Zfq0&``VSwtOq95(5t(pC%Lj@Q)wzIqEO(AvTw< zA+qUkLs(DwUd^GUr>EQTLlPdh>$-(tNcE?kWSR?+%;|4j`n1`rxvp&ev=n_h_?RW! z?JH|-hJm9|wpNv48O6RiWBNnN02q!}5p2&Eq~Bhn<_#AbAMG3ZGxp7+ddwUMij~sz zb~C8*h@KET$!BZvX-y1c)nwKOpDjBMpJ}#+4Kg_nR|^bdryTIg4XKAdL>qzSMSroh z_Lb-yZxX}KqVKvS6SotF!?5~8SDNLSku4RUrU)hs+hkOy?aqxa{>F3Ve%9z-KU*&{ zx%x}fBiJ3<{HkB&&0=K#>EZKkV}ax{t0l&rs_6ZSX2Tm7@!NqWp(jKMIds~ECrQcF z{(5ZJ$HgK^OM&722NRt)Tx-xTeNBk;|PopyyJktpN+O0URJpEgK=+-^-rh7CU zFYVr{@-B?3nNxFe_s7kQ=h!XV+1KlOVT??dHaM$fYf%T}a#?wu1Vs&u*zj4ki);zf zJZ^6oaO9yZ;MVagoHwOLlC#nl{ZN_5HY;v*u6+}s^iUxuCYV8If-a`T1fov;ePl$K z|HqHK6Ju^~52+>5YaAB<+3T`0-M`6@I6BNPYcaPkv zuUPguw*G;4YuSb!<7R@fIBk=+xn#^F_W*_HMX8b*6SydD&~7rZqI^oL1j4 z`i!dL-SP&nd%IfaKFQje&5TnQ6ufT)^hudD-dG9@*q~&7`f9t-cWbsczpaY)c}VHF zrHspatjjS7T5qjbo)K_n4QR!!(MigeZFUr3<1_PppTFdi)>V0J9EH}}v4*j#h$bhD zoVAKRDD_k0iB!(Aip1i*SQlUx)wRXHkK9B|V9?<{(9$AE={wllo8NvuIyy=aa7U0V z;vQ9$LJn%6Bpq%}PEO0IBcl1pjFX5ax^tzvo%+_9SIodtq^~X#f>t(j;y9HWBYD^F zR3L$%p`WO@gCdahC;f@6p|gGb(|Se44T5>>j*gejbp;$uWasY^7*DjgiO{nO+H~r%5n2K| zHplvgj5v}ggQ>l&5mbri$&a$re`oE>0+I`?UnV8GkI(0tRTqmT!|~aDvT`%>&muJ! zS{EDJ6ZUh09uMsE3wqu~9@^9i|G9`TOTH}Ci)_EFg1%2QXegPTH;V=~FHxyAylQ`2 zuHSorKBR#X5LMK1@8D%cPNwmQm7dq!?2KXf9d6XPH!Oml8hOV$3cV@w>9 zIDhitiCKKkyx$?0Wd2bb7LaG1=ZYxwjDErg`^fmH&-%Z=)jV?#;-N=0zo(7uf@yYe z*s#vJ4M_>OCtg7IJxJGEtSdgh_DA8O3V7#8pNKE4N74(tFk9F3&!NbA8;!kaYa7*J zw+7oEm6aq5eJ9-N(J}$wdOZ|F%0u%wj-x)iw8_xtyB*AI_i$v8>C|Yr?|V0us*aEQ z_-h0X+8s7i*LWPq3WTc*z2-k*Odk8nS3z~bTXNuhO_IsHpJsz)v2{E;#D#3V>_5B! zPmpQQwEOu-4DO?hihQG))lN(&#^%C$$OIV6#*1T(kX^|mUhw_qNZRQ$tNR-fLOnGC zg$i4KFZ-%SUS%y!JH_x=V&Ic&x_`P8EMa`s9NLyC9xl9@5;;$AmCKc#vM{1l7Ow26 z=4PiVr|7RTemd8|F>(2waq1dRNcOFU#`$?wMz?cvYIDv%Qj1eA9bG{G;*cpf_u#Rr zh+3BGKr!@u8Xb{{A0YYI*}0+$l^tD~m0)f-POvR1IawH!1GQP+kRu^^<43;cn_Rse zicR9j^UBFX_Bmw#Mya=me&u$N%v%?$nIkuxF3~~(KsEe^t!;5{T>ELYKo{HdxXznT zf;%NMa`Q6ROsgvvw8+I!Eu>{&?_BVhb*7YH-0?}K$fhBg>>i#>(hnBB?e2IfH#Hev zyeIwWSB)&e-seW&G=ii(2I^gmH(QtxSal5P`$lZMa3pzjA4tExo|KYsS$uQ{1OseI ztG3J9hlaTLV$)MEbL~pYYMx8}oSGM66SV1h(s6ls`P6&{$hUJJJ-N@MPmXh`W6aN_ z%-|>4wv;LW2y6?@XmeR}vc9ey#X*Bd&Y!D`Xq{U~rhn@SR+wl|d~X@_IIpB!JMGx@ zA*sqLa2u&hkuoJX36vfk70Mq=u`NqqJrh$A0>YQoWd;|~JpU?1dba8|wlV@Sk*32s z%#@<0caN2Tk$#e`VWRo{(6EkALw)ek7hD!G_s)AOOfz4$wm&!QrVWlPL!}d`f6nAV z-CAqh*p?Cb`hmT}Pk+t)v1H7(=i~WkbEy_sQK8cw11K(!k6c;wLljB6*>A~yjpeY3 zH)atpPuSRa;C`4}=cSAly1$inUz}Rd6PRYka_{WL?{}TQdfwA19+jDu+DgY++z@N1 zT)#E7HnJa=E+#0jd~HW4?t8t1`Zy+#^;+IpcY7BrsIeuZL!Jx-f5N*QO;iqS))L)z z8xJQT6U?u5Erf5J{l;s_%W-ZT(O+78Cq;39LK?-!t4{TD&oMyFZbz2cBC3!XyvD=g zyBCd6>8XFB3eYRlp8bCNmy*`^RE`N1OqPaAd)riZA9YQ_wV0jlP>wxYuZ|C8psf| z&v=*0Ql?MdFbTi2E^W<_MwxNy2^YtlDD(-2vI1!Rwhj9SDaKWKLI6?2R<4h#O2r|40c{%dVj)BPhqq~>Qp3_c`ADSPn^AgA<{ zRHoVzy`wPgn97<^^6tfAbtB!0`^v`#k7>In#jF&9848mpBR;Zt@6-x#ZnLm2V62tJ zEXKx4%WBj`Cu-X5NaY=z$Nt(KZ}jUAHo+^Ah0Lk4ej4W81#_&k9g@qbAI2)pW}tZH z59Kz`5a``3;Y9vdt?Xxi>xz8!a@;@ftBSXAV%hw1{yLVI{r+?`^ zb1wpTlCE}ID$#i7yvRMHp`^&B>LuV{_~`S1mp$PXi*T*Bp&kS-6xEFJA(KXySV-xB z(&IRr-akLEd_j4tQAnQFaM7JC_%mWdo@PjV(Q-d}n@dq$b~i%+VIs*Cr|?hJfFKH! zr$fcSAkRn*=CW11_M%F#&g0W`l;8PMc;#m8KwppXpn=!^UfI0qOSc2e-4T1f&&;Ci z$1oG~T4=zW8i}2Uri^@KmqBY3^O`u=BBB*$8K^zXRI%|$@9Hx0QMXG{m!^Y5-h$07Qj~hO52x* zBHuk@`AzOvcb4dmL`!i%+{@_d;dGsaklaG2a8}W+v8GLLTuJn%ciMrL&au7DPv3LY z9CqD26c=g}Do;grB7a!15ZO?BRxW^C*EZVc()Bd~%FnK~L5TY<@fiEY41o&adNu5} zGo7e!Kx%xWUO+d@pkt64_7`X-^aNUirw$d63lR7nbK$K|LZoRr$!~mOb@2_+_=I$r5_tC!1LZ_xTMy{FU^_2;Lm zWz6B#P%*Ehsa^x5dCMpz3d9Hfg5Br!Yin!KukSqd=LK;+PT>w}pgf&|qN4u?c-rnc z=i0fb%&4TK+vF}U!aCIaPIXeHKCtXN|0$NoG+FoLt118_Uc%0g03L zX(Vul5I>I7@i-UuRtx*bO81(}9M$fA@YUQz>Y`SVp@0#FZ43+z3bmCs*3R*m zQPm*%nN|PjPXCCN-$hnty?oI|mQbBw9d~Zv*MRb3we7c(Il^_^K!gn?4gv?z7iMVt z>02WXAW7Bw>b$H!(s3Hj*@f@xvNiLTpS`bxBRP;{+XoE0>&&|E&A;ONZZ;iz_)Fy5 zm$|+mlh+|Lgf+{3X;lem%gqk!)CY0EWrl`mvqtinhqR9Qxn>0&P}Fv#nVp*w3|BBPTZwb zrb@Z~k`B>a^SE5+`b!hmWHmtcC@e1?w7g(F+aP$+g$BNd7k49q8RY43Lqp>$by%TB zeT#7e@gg%^2Co}RHFo#5xT_B0Fsv)zK`vFT0eiIk)~Q}F1I+9Z9%`T+|G1tq)3z{5 z(FADb%{niD8Zdd&Jcv}!f1f=;-wh9FLuovdJ~ntQQ&^X|UeRs(4J)COQz(LoM6kgs zqhwn1fKD1th-$tCH~r(skJQxEhf`K9uWoMj5X0UklLp^tY}h|LeB#%C?r?!(1cFoc z3d_^R#@DxDGgZ}`< zcYM5MTnIec2llH+vm?Y&CQ^Rs1Z4NjQ&0z}lHm^LBHK+ZEU!KhJK_pC++t#45)#Ht z_>!82CQon$L}P1al0wpNBJlniNXAXuuc$SXs-&xLm6w(M%H&ss*JfI-#DEtfjm>%s z?(F*2owb3{MDQIIK`2|}Z3o<>n3(H8AR#{R(b`LPEjU*@Om;8rDsx2lEC5jglpHN> z>(~%nV3JuUQ1R6CaN45dkSf4bh*aCb$0{rDMzdkiKQl<0J_k3Df(SK(?PbZ8r1bJ$ z^U`jR2e*ocNx6=<`1G1-P;aji#6sMV-w6^3#IINIjW7{@&b0INqcSp&N@PnUJAcc&n<=4TMx;|#(zUm`f8C-)Laf>{ zu@!SP=ooALQq!~ERtBWWq55G81agEDH!y*;wEmq>VDZs1w*;^9(b3cAz`(na&~VcN z`Yh%*gX^S{!Pj6uOG2ibe^>lx+0fYNP;WZ86=sL9B?m)?aZWKj8|F{_IwRJ(i1y}p z>)=TGZURu}(2xTT8@3(;Xyfv_ZU&ZwCI>&MK?Av||HXC^y&Sl7==V%^j}i#I`bU$a zSJtQEsI<%dBAJOL*vVp_Dv@8jhlJAj@dK1yJ~o-MB^7H7tORIf$}a#+AP|yzdV0RT zjXJCppXc)ok(CX<`fdNE2z?<+^{}*-fcd~Ckx4&MWa|8B!JnU3?I?2p$v+0;h43C)Oa`W=6 ztgKQfKs~LoLJIf<>_M@zxB1J(d2Svz8;=>T05y-9?G_reJAoZrRHEXe>5IV~|I^BF z7oXYbft+INl>GpdV!XDRFOPPs2I?hVN4|ujLN)us;&fH87@LULZyJpf=xPUYpZWb( zW6QUM6ssfqar;(txrJZDh7nvTE(U(X?vL7;)OSvLUUmoozwenG%iQ9kh<9mKWI0 z`+NF3zwIC242TMH{QW)1NNDR=A0<+7Y0+O8DQ~~q!H^?*~-7yXpD1F^b#VtJn%8Hz$#Y zhlj4NF5GRd96j#sls*E~z}B^USNAP#M^j<4c@NFXr8Ips5}TPr)RIIupGou$a&$;h z7Y-;}0+W+o!6HMGqBw!CM)>yJ+#_tv!8cK8UD!Uy$#3-mMBIeg`-+CTj_!G}p(2u< zeJ&(Z1-6dxRbVj7Sq`+6x`UX&`J1sIc*IY(MQ;$`$H7XZ#E<(;N*02xpd9F61bf;} zMOOA!e;CxyvO#YZ=p#E66%|PzQUcsTw1N%~ehl+jVTfML-TKEz4;~)ko!$*Ly?4v|i%uV?g=#MAnxgN7YNL8sh%)QEgz7vF z^6^nJ55BIvKp~Lq44lCe6)E3X5eoQLHa;C}RO8#vy%DBsr;~|b)zW=ywf{FVnVjmd z#%nMy>>itz|Jt+un-xvUsiZLx2rV;~=)fo;v@`=T5Y9lb3YL zS1PLgIEzYbi%JXxA+0=-C()Ed0c};0V>sas|62k*@7U)2fOnk%TY{KZFan{ZUK4BK z=H{lQ6>p;}_ZNS$VxvF=Wi)kz#d~v9!ThB{RZ854l^Ao%zqGtig_`eUsyj5cgTg~- zs$i-YJ=#A~a<*=uEz2*1!xPLvHI$n^U!35$WD~mkWs)A&s;2sbIE`1>I~Z?FN`B#1 z^4`?qLeOf3F(ApbBg@k3I61(bG$TQ^^f!qcGsF^;t24)Wi%SRyXak~?pam2orXRve z6##}5bZLS&Ds*CJuwphxW+I0>4Vc^7Y3o8hy!to&M>+$g<14u_8`3#mWai(D#1-;qcJOXbjsC!G9_VHf=~m5rbwUM zlDj2CA5bZDMS>wXH9=1_80G@KY%d?Cxyzg;8igC~)#R-mQw1#6rS2`@hFm}KPZc*T z65@tq7dAL!`aMnlnz{})L~-N1pQ(2?o9BW9?i`9Y^_?9a-&$4GEZY>AT>i862HEZ4 zBji8UMxn_`7Jd&iyPdDTX$PLQA9Lqj+XKzg>;sR5nts9was2(&b8i zp~xuseX>|Y>S{=DL12A(FY4{vHUOGl^vNbl{$46Au)$eK1ag~G#0h|9}AI{LX=OK)qf?e}O1xUj+dnsV4D2U0lLHT7C9KynY;Su|1q@8Q4ZfjLpi zjVo*o9wzpL9@BCNk2aP_l1u>PVcO|%?_0tzb-up-OU<|OfvJjKr1q#qVrBna@XjmA z9I#993G4nG4nPL7q6HUeMK0Y#rHb?@>9;AeWfi|h^2VN->>RKxjs+|N`gY&B@lkvU?6T_$&8vn7>o=%gD8Q9(kPsBV13@SWkyO4qSwQ z{Lms5U;m9ZoB?5BVejA5QAAoL6K85L$HvB9`3AVT8O&jeae9nunO~#EuQk~}K8Ken zf`fgcn5|Vr`4RA;r4%y2kt`Y(@Mc0iXn>D1QUiQyUYRrTh?P1$=FJ&&FPDPY~z!Sj~ zd86N=<={}I!cG)pzM>gE0j6Ejg_3ceuk^{k#2##ulc%7zkg90c{#I3=0>Z_I5k~3M!dJ70%1Ty9dkZX|Gk*_elB4p6b-o5kdqp$0?pXtd#@TLZT7 z#!@K6aY3$6U5%hm{`6woJ43d_x^QxTV-fO>FZDw=H_XC=+_9pi;J}SaT&;eZK*iY+ zaV^gclT!?jNQH9n0eT_#rcw}qMLtW7NzAa@^0>+fGqzK8Bx z1Y*!~oZUwWQ$Ts6g!1N15JNPK(hJS^IXO;(WE7E%2|eMMP?AEanw-pxjq$IM7f&8tIIQz*Zk}$9vRj}@=I?vbv!}i2Gp8@{I1w{=fRlt4t%Mah zxwn{r>{ef59kY7+Otuov^UT*6e$xk3JiVL%8QC(a@pSp6griYe6ivVwNm2N)2tdt1 zSXsY!IxcwIdS9;pQ^EWTCn&3`4s>;Ki6zIzf9+Pt3WGn9q6#*K#>Y4*xK4YsIpEAsBUsRX##Ey)c>;+rp$TF;1I-5ylemVK-8q2|GR$ES4cY1kAA zc9UR5ft-c^*KPLT!Gq=H6U*>1&eVH*ANELi@I=- z`hmrZa1~hXe;VeUiaI?7*CeW&a}#F_By{yQwJ$i=N@i|t^oG5tK1WRSy*~alO)$dx zqAp6dgjslJ-CXxzdUQ-)8jsZhcXLEDGk*?oYSI5m55a_$YrvJeenMp1} z_TUF5!-U4>N8zgpa)<~mDWFfuOh_oLz3t?+y%WKpL9n0;`sTk#3WO4Y0XyMg7^vjA zauCevaYN+kK8x_cLT_dbW_@w{k?vdf=T^6B`2kQT$(AJl`hlQHRx{T7_1^+3m`PUq zua2idn1#2P%r7ihz{k=unIcY}E;BO|nD{H-BrpTb1ozFaDIvo3o;|mch4{6cdGh_s z?d6bfYI-_%)R2pCI;kOL)vo)g!M_Gaid+CX42<6 zxMRQkBD-R5VIENaZiBmb?|O?H7if@>)Bj~<7|cCkbzKo^UlpWm9#6Snet7p&(&8b- z(#$34Vi!Pa;P{}bji0;%RtWdo|BkHwp-2H){oa6aF#+Ybkjhl@<FE=x{UDfPU}rvV@U~fRQVPFWKDcM-Q#zOq?pot}4&`_-$4MNtPZ-=06G& z3x%uELs)VVh1J)?Dc{9FLkwl(h6MCkqFoWIB3CQxg%c3QoO%!eVm2=x$K{|Rh3i?| z*SVGj#43a!CSqb@K_0l6^s1H-rQl#=Q>MaJYWuO_#^`ow=;n;3 zX55>zGX@60tB)Fpe#=ZU7ye$$ zNd>xqT@~sPh=4+x5LlOzIX=xeUHH&}${HUL3O)~A%VRu2s6NUbdKN9xy z-=Yww8j3aK@<=VRCIeU5^|N&^=KtVC$0>kZdU6vPTXJ_~H$i-lyZrLkrFhNTYAouH z%=;YB&SPEJ=)KZ0;Gki+F_f>pJ)Kq;Cf6A9Den~iS5c@cG-!T~D*-Pd&~$)Fc4GwK z`OvqAIRET}5lQ3DgJfHFclVFf0e?1(Ktl$b7dQ?FQw?6%xUGHs5l23j#Feaq(Yo|y z%c5U5V1xnvyz&a4AwJv%+A-l-Z+}0(7&EA4+)46uuX<6y$YdfF9SG&PFzrcXqp{pn z!G;}l83|~0_Fta-q}gx@Ax-CR`0)9tI{ORj*=Wi;TSxUO0q~i79V~Ig@HYvAQGrF} z=T!P@WS`{p;n!~(#?yyw_$&vCYh71hu|BgBDbF*`Yk+l;AHc6mz8B8W`T*jY?()mmGTB;p<~Nvxclv4?X3w7K&uK{rJ8-}h z!s?NMRYHXgtTf>U!ixg@Rip85TeJfT`fuiy`_z|D>BDJI!DILi0jEvvH5s=6Yl zd`CS}VX$nq=W@f$oU^UWW8%-3+?5{bk6->De5>AS=IdcKJxCm~R!`=R>L;2*;|&8k z|4t(V-@gaO|13F8)GNa~U$v-3)!o2Ku=BQoPMaxTHNVBY^(EiQ5Nu(#F$!3=K&E09 zh>S;|Ot(G;5+`)S%a>H>M#k>e6FHZuCeIVXfNxz5qcHx^xT|Nv%TmMEWf0OM$e0lN8GnU-P0!yc$~($xGxm% zpzPy4r1+bdnm;EheRXD0kNv7te#YSPwg-xJ$Ot@~*^2`QAFd0Y5*6Rr{Y{Rl}% zz`32*kwEkn7`VB5EGu^xe`OZ=vNP2SD^MXv=sTEXL!`cEPs8IwKNOKTsnJnJW)Der z(qUJ|rHu-E(Gl?!&lhaT^UvbTgPWZKO?1Z(fg!+lKD_-q=Q5T|>mG`b;P;X9nHvB^ zQ8G6o_`!5ivaeXJ@CkR9THV4&oP__u48}qwi@8h!b-{ln90>WoZIl zF~jF3o4o^NMsUwB_{3&b+Jss}qbBtkqEsBw+yerh=&OM4MPrT}IB>!6nEX+AEx+nN5^Nf3A-a?a; z!o-#<6znjqlKF~GkLaEkWam6CrbK#D*a*iB={xE2BFlO1W$lABX0a?)2Ic!RHw&tO zrx(tXKV9Z{V2t9G&82EQR9bIndOh-(Dc8NtqCCKL9ySRr&N($99go-Ew>b2t))8UB zK*BizH6|~spt^vGG_FU9Y%&+UKggR4oBh9+C&9Az3Vom*6 zs8g{08V`~VJGQv6B|jxJp*IIqhVY>QJDG($1KhLVQF{isiZ^Q-e=lyX&KI~H7!64w zi}bZJzBr2eF{Wk{ejMYlA=0{5cALhcHGT2V;)3IasY?-0@{_XJYkghqOjxhNKw(^4 z4Cz>ZzZW&QYG*$I|GNv&CD0O*`PUS{App6e`+=fjtU`_w!_Z!odI4CIEyo`yUAvNG z?t>yT>VA4IY#+x;8JSHmr4Y!}^c0;K9fcZHGlv3EA?7 zk@U2&IoxfTjo+XJ@6z#rb)_hX4{y%fI^AnlbUZ-R&Ed86TP) zpBx0;bZk+{Nd4XVvMkErWP_CDwBE6ZKnNjO!@UyQ>O7%``Ie1j7!gJsi)W0i|472SICd^JnhRo-zOy67O;%R zmAAXaGe`YQFiQP%_wS?WQ2s3&Kqj>N7n`4&mS*p1y;A`lXP4<)`WIfqH*{rY9*RP? zQI4ScHrbFD)bSen%IHZzt_iu*(lD8(m0EeXXD6Y-p^4TV~OKJV*$VKNxh1>GRz4vj{dZ>x864Y{S4>Ct5~VwWZnAHi z!V>7J1+ z2xHuH@~UJJZyVKODo$HP4>^Lv7%CFYz3`{^uWhUSi>~+Dk9K}v$2N=U?J96e+?Z2} zUS{z}vj{3yWVhi292VBEA4w#k2$n4&S#Bb~dd6n+`{uHVhMC|wak51ETSMs@ccuoa zlu`iY1_%qf@#hD|tF-%P)1A zs9h>)paECwOQB+n4@xFv^Z8E6<3Ld1@?}<)I7Dj&>b8E5%<*((Dr;OlOs^X)8WL(? zw_bTpRVM1?^+I6los4tKgGyUb~s`cOk%5RvnY3y%jYH0q!P5 z6u_d#f8Md_wH|VD1q%JV`S5bcs=tM$<;+(C&)Aw@=SdHAnFf0bxwF>E7rXwkwqLVr zc-bK>{93le_E?N!P|XeJ@0l}*#GM)gcJLhi7ZEK@gA*bhE5<_u-IVvtGyh0`Z!Mci zJMlFHd8;G00Glv!jo}L_bRfYo2d6<_1?xP8KiA-lwm~0KMVPmxf*w)>QD4A+K;@%PTiuk~Qu)8>3yj;-cWCyo<;QIJ$y;Ta z#jh43B8=~re{@1ZLR?&2Qj(3Q#(z19px~`cZtfJ+e(eY+i$JYuxz5)VWgVcl9_RAh zVwHE%PW2Ld=NNkbik~A>$k7$o!1)4;+DMVbjiVnDl_S!l{(11d*T3S*kL#Mmowh9}xpSIY2ii5K?L>iGJp@NKJY2!S*B|gCaRh=S?oq(-&dmI;5Q_-4^|4KyE7{P*4? z$Njtiv-e2w%e-~=nFX3L{)++&12`B*bx7QYVSC65w>={_`Ven54bDE1l}bt?@P}AbxqivpE{-|@&L@p-~@-owqyGi8JG!LFaQ4*T|sahCrjNMxf$ zddJao2${K+v~aeU_~LUgfr}U0s!7s_crfoF<@A2_=O;@zk{X5Nrw4o*pQpl+-N+a;bO5wN(wD0bza9%`}1ktIdpsWduYSs_f4n<=F!N>(ncgs zTN?dDVOGF~?%q%*L}!_4e8nyL7d8|etO%J>w}NB3a#lOc)%5RLGEoPs1Why(XuxZz zH)regexWiqujJ6KqB;5F+_E}=jE6o)b_o?XsegDj;9j~lTUNvji=Iv*|@D*vW#fNJv7Kv+inrDRTpmYvGj8M9E+U)B_% zBnFBy97Qm&1jn&tOF?Jhz!H4WkX}8|9_DgxSpi-|66L26dyTG$TJ<>Zo$J)|D_l`N z@9bX__*>!#|>-H1;;TmCgdsmAm}Nb!-@_B46_TSQ_#7*hV) ze#Xy+`;%jM!10v4pe;O}eB${NpZRC>#-b1#9n~v7uWcXM>2(f-k_t>WC~{AO(Y4^N*+aBSScMR_*g|aj`~T?zOD+bO23I+|65rf zdz0R%^Qq<&?zqJPbz;T(EdMNz`$+Xv0nJQ@j}wp2w|_>PnAm@L_#w3xb`tEL?#6;y| zOE7+Caq^x@#wRNrDD zULVG@bffMUkF$C4td!C#=}bC1(;d(U+un=sZbuuEDk$q0c4P8plx=>{dn@j{f@Ah2 zEAMN+-VX~iQdrLD8hR!C5)u-$w6t)>zL%qeL#eA}fL77^l$R!v(SwAGd;)PN*_~D) zl@95Sfu<-{vWbU=ZfYnq%Q?Z$pQr?QZ7ZU>0wx`*K5iIQb3Y#BAUFJkx!PZ~X?Ho_ z7b3urahI)B%#b-Czf=&PfM;Dor9#nZuUCZPscTg=-_qr(Oo5=D-j@j(gV{70QVCIQ z7llIOi$Q-5_lrW)>d`k%dQ#`yx9%i0EMX{m9?Cn6e8X@4y{*1dwKEFN)RtBgPLKtY z`YiJrfFK3+NTtpfg;4yU%wzfG&JB1MWpaqX#CGQsF^tnCJojNOibIX(`fMeV!P`R) zMm1+Q^JqsJ5B>~(30D_^`OxX*Rpkh*Ju&Y}he6f6PyPROcU@6UZQVK+IAEcOR4E3e zmnZ_Eg=hqnfS@2Cy-IHiQVdBvN)rWC#QcbWiZO=XrDNwPND)YAAruW#LKQGT;9rn4 z#(lj{_u=l5hdo9{*3O=5uG#1OydGcK4D7D&kRC2`1rg_!?CPVo@}KOT2cb4Kt!CTDinUIAM{@eM@X|;$%>#wVh@$hy#SRDx3YzA1HKt$dii6yURt=uMwW4|Wf&56 z0bUyj)RK^smAz-0=QOd`{pi1|m$$XGfovBkL(r$fp@iz|?OlVngK!_>EPWHubDOG` zmXQNl>FIghlV1T<4U{2!{@R(QetaHK6=X|hW`anK;KlW`+ue`X#DE33ISZ7Y15uGo z3yG9h7(#!LCCKoCQa$%U{SepXp;rGoLU+WGEmm7^&i>=>95mG1Np=O=nHHcF#1a!8 z9=?17d-37}j3U=FJO`YOTeQlt@!HR?8LIaBG)md)*XK&8An&$Kk2Ph^Gmmdi80zSt z22|1N+kC=--G@ehg%sR_gvE1qnOIgs>k@^yX}{#LWV$B0He-kjp(bfG_RGSP4%PQ|Hzl zc~0Qg)c50;VqtPf{5XGN)Ml=LXQ9ps*63W&F$YZDZ})e;By$VK6zF(1&9q=JkLYTt zsmO*z&a@2*8#NJ-xz|gOIBzO9)Odrr`mJGn7s-p#y!`PwGj~7qmHN3X_IP3)f9YV* z*+~4wI_hQH$Y+zzMFJ>c0ZBt^Aw3f$bkr_BDsAZm9y2vUv9gltw{f%Wq5vde7xJQg z;yrPplj@O_7jHfCG`3P8)ZNtdc!G8I%<{HB_iPJ9i!H!qZa%%FpY-cbjCJ{i>d?T% z-my_~n10(p$b$r4sHe}+R87d6{(CYTMSkOnk@ZDOe@w&A=hePyh#s8nu-9+nIX7#hWc8C%AR zby;H7eSP@CC2;G69E-Z}h8}grm;bji1vE4OQE&{nn%B|b7|DF`l2Xy* z>Xm9n@}9w#0HJI?RhUL;r4BC?NUrfpf-7Q+EqYf6d$fvuD6(v%Ow))j1jZ=H*X_d!!dLZ*}*l$3{* zv}H+C2w^nY#m&~Wl68iR2tGYf_^CPLi$<_mR57FHYzLiw!Ks%rR7#uwys^GDpeQtJ zf^k~%Rh0%9z+GK7q8j+q!UD16sQ$bo!|jHSHDwEYx)hr5!^yGA5h_)@pY{}h~Os-G72&)Z*dEbH;; zE_)rPv#YzL?9BbUM92u}sI~IPF4~cJnnv9GehH)L_PLMyP)UHYzFU7h$k;aT%E2ZZ zjjQrAaNN)~x+{;E#FK|0kp~9w#}TZrPnYC~AJVtu>53?(R4(i}YmZ&Nqp;)vjRP9# zH#38DWa{4MZ1DItTwO!#=-Auq-dptvRD2 za)F=!$caeLRg7vHbFkhc!>h0N`}YelZMCBFFw&&P#P*?+V#cicVCUWZ0pj5M5M(8m z_MAC=*r>@v=v92n=foC;y(yi}cl7qyb3kSx@CU7k&u;i7+;{-g*lhGw` zVuFGN^(>N{tS5Hk)}yA))Nt8y{E6O!Bmk2rS@QZ4%c?e}|L2gVmRkN&TK-LUb_Y%d zzs_!12{HoKzffYNgL;v*{kJaizP0&8kM8Emd)T(^C3VF+jGgz`9e8noHcL~l@zMVhu`?Vn2TKg zyZiR>n}GsbHrquxHE9+KGDx-v*~PlXEI=0x#C(KHY1ra?h`$$CrnAw6Z<;}hu%pD3 z3%#am*h`^{Q8@q33NiEkt_~&Yvbsi-pQ3b5@(JoEMGZC$=IU%PQA{@vlx@#Z(F6O- zkJlZM-hm*245{eja(a~1*8m`J#r1PU0nJ)NeH@PP4lslD8H8aWY4_jhiTj)9B!5VY zJ`Od{lG44t(o;4oni%N$GJ)n(pm+86dQ%7tw8llwS}Dj6L)p<|oyA76x?v_9J0h&$ zftMl|-x2jVT}=MV=S^!rp3{I#h!X((#p33h)U0V_zn9)CE$xaxgv}A=@N_+;*jS?J z8JCRiUA;dO^>ZgjMu1hSuVNh_)6X`s>UguQZiD^&wW6B*sw%VfT!+>@<3>ljtn(U+ zhy;(f+VPxCtT%B}OM0za+SpTR5)cIgqsjkpxxO|!PJKF6S{)@*>iYqcA#akZ&I_24 zaB|o3e3$ij&&Bj^_Thb$jYbm2E7bXz_Db;PDyt&HvgI(o%7-?c*1XU;1hY3{*8Fj0 zeBWZX(!l8~CzyyV+bX_Hz|SXb{Z_ac$i>kuP2SP+?2Pqsw_4=zJo<)}m!vH};GsvN zp~9%>8_F+UwKI)0Ic}SPo%!_abyb6?e*MBhWK4K#V!u$R1)sDy)TOXkH$pF6QX7}t z<7ebnPn$QLCm&qGBK-r;WL3y> zKlJdpcm~x1Ts4?>@Pl?|$%69{my{wHGKQWTJ+(XPv0B^}8Q!3)=JSL^c<+oY_wHaM z)a5_Bf8q`@#v6ERlpGCV)XbkBMX8Z@t$&teR~RQBdnzF)Xdo+Foj>zTz;nVklrXEE znw;}uekHiDL_<}>FW68NfgLVAF<#Kh&kL;!;-4h`c9?JVwcBFCnZe(dZH4F9G5*m( z@8{=v0n-3cEKHw?Q1ceUv(Jwke3G}BpkI%kSgSkvQ~ltw3?hntzq3rPyD9ap5`({{0``g(a!}zrvUtYc@<6_|){rZ&1m?#{5KqhqX~#Wh)k$hb12|>5kR- zf;?4Yq4b9fQN*;|$l3273@H1dK!$P!x(cB_PKvf(X>TVr_-(TBF6{TPBj2=9Nfo5D zYy{T7`E%L8$Cy<_BfZ9Ptqfxf651hO#zXO&44LVIufb9jjfz94e|}tJ4iWE|vSUY&**~>5+tZjVn_xwvNe*WC!$_uGruZdD3C^hKC++62)?*uhGmS))$2TZQhg~y3h*V}qYB8p9=XqPCRQog zRZ4!w(W~_vw-R9N4+d904WjqK?Fcf4Zce?!18V8587f=P?$38BF|VH#<>QsYWHz4} zk$_gL#>T1wF1&eq_QBAL0t6St{+l^@pjG@c$L4{&z0Q$Z|Hn6)^)y`7#P<0B-lrp>1JBc7h literal 0 HcmV?d00001 diff --git a/docs/images/custom_generator.png b/docs/images/custom_generator.png new file mode 100644 index 0000000000000000000000000000000000000000..1434cb629682440d68c1050e88880e9bc02dda9b GIT binary patch literal 21895 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 literal 0 HcmV?d00001 diff --git a/docs/images/source_tool_value_processor.png b/docs/images/source_tool_value_processor.png new file mode 100644 index 0000000000000000000000000000000000000000..9e05a98169639307ebfa75ee6fa7a9c2fbc474bb GIT binary patch literal 19388 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 K=d#Wzp$P!AZb8)m literal 0 HcmV?d00001 diff --git a/docs/images/source_value_processing.png b/docs/images/source_value_processing.png new file mode 100644 index 0000000000000000000000000000000000000000..c31aed510bb8d750846bd49e21ed204b0ad616ac GIT binary patch literal 25435 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 WC}7s~L_Vbqq^i>Wy9Ln4Fa86$X1dM* literal 0 HcmV?d00001 diff --git a/docs/images/source_values.png b/docs/images/source_values.png new file mode 100644 index 0000000000000000000000000000000000000000..a424928ed52e410a0a55fcd42d6f72bc2c662ed3 GIT binary patch literal 17234 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 led = PWMLED(17) + >>> led.value # LED is initially off + 0.0 + >>> led.on() # LED is now on + >>> led.value + 1.0 + >>> led.value = 0 # LED is now off + +Every device also has a ``.values`` property (a generator continuously yielding +the device's current value). All output devices have a ``.source`` property +which can be set to any iterator. The device will iterate over the values +provided, setting the device's value to each element at a rate specified in the +``source_delay`` property. + +.. image:: images/source_values.* + +The most common use case for this is to set the source of an output device to +the values of an input device, like the example above. It is also possible to +set the source of an output device to the values of another output device (so +they match): + +.. literalinclude:: examples/led_button.py + +A more interesting example would be a potentiometer controlling the brightness +of an LED: + +.. literalinclude:: examples/pwmled_pot.py + +It is also possible to set an output device's ``source`` to the ``values`` of +another output device, to keep them matching: + +.. literalinclude:: examples/matching_leds.py + +The device's values can also be processed before they are passed to the +``source``: + +.. image:: images/source_value_processing.* + +For example: + +.. literalinclude:: examples/custom_generator.py + +Alternatively, a custom generator can be used to provide values from an +artificial source: + +.. image:: images/custom_generator.* + +For example: + +.. literalinclude:: examples/custom_generator.py + +If the iterator is infinite (i.e. an infinite generator), the elements will be +processed until the ``source`` is changed or set to ``None``. + +If the iterator is finite (e.g. a list), this will terminate once all elements +are processed (leaving the device's value at the final element): + +.. literalinclude:: examples/custom_generator_finite.py + +Composite devices +----------------- + +Most devices have a ``value`` range between 0 and 1. Some have a range between +-1 and 1 (e.g. ``Robot``). The ``value`` of a composite device is a namedtuple +of such values. For example:: + + >>> from gpiozero import Robot + >>> robot = Robot(left=(14, 15), right=(17, 18) + >>> robot.value + RobotValue(left_motor=0.0, right_motor=0.0) + >>> tuple(robot.value) + (0.0, 0.0) + >>> robot.forward() + >>> tuple(robot.value) + (1.0, 1.0) + >>> robot.backward() + >>> tuple(robot.value) + (-1.0, -1.0) + >>> robot.value = (1, 1) # robot is now driven forwards + +Source Tools +------------ + +GPIO Zero provides a set of ready-made functions for dealing with source/values, +called source tools. These are available by importing from ``gpiozero.tools``. + +Some of these source tools are artificial sources which require no input: + +.. image:: images/source_tool.* + +In this example, random values between 0 and 1 are passed to the LED, giving it +a flickering candle effect: + +.. literalinclude:: examples/random_values.py + +Some tools take a single source and process its values: + +.. image:: images/source_tool_value_processor.* + +In this example, the LED is lit only when the button is not pressed: + +.. literalinclude:: examples/negated.py + +Some tools combine the values of multiple sources: + +.. image:: images/combining_sources.* + +In this example, the LED is lit only if both buttons are pressed (like an `AND`_ +gate): + +.. _AND: https://en.wikipedia.org/wiki/AND_gate + +.. literalinclude:: examples/combining_sources.py From 70063662436ce6ba742a73bccbe253721e4734de Mon Sep 17 00:00:00 2001 From: Ben Nuttall Date: Fri, 2 Dec 2016 00:02:24 +0000 Subject: [PATCH 2/9] Update sourcevalues docs as suggested in lurch's review --- docs/examples/led_button_loop.py | 2 ++ docs/examples/negated.py | 1 + docs/examples/random_values.py | 1 + docs/examples/source_value_processing.py | 13 +++++++++++++ docs/source_values.rst | 18 ++++++------------ 5 files changed, 23 insertions(+), 12 deletions(-) create mode 100644 docs/examples/source_value_processing.py diff --git a/docs/examples/led_button_loop.py b/docs/examples/led_button_loop.py index 8e28368..0b01872 100644 --- a/docs/examples/led_button_loop.py +++ b/docs/examples/led_button_loop.py @@ -1,7 +1,9 @@ from gpiozero import LED, Button +from time import sleep led = LED(17) button = Button(2) while True: led.value = button.value + sleep(0.01) diff --git a/docs/examples/negated.py b/docs/examples/negated.py index e7cc2cf..2e5285e 100644 --- a/docs/examples/negated.py +++ b/docs/examples/negated.py @@ -4,6 +4,7 @@ from signal import pause led = LED(4) btn = Button(17) + led.source = negated(btn.values) pause() diff --git a/docs/examples/random_values.py b/docs/examples/random_values.py index 99a2572..524e456 100644 --- a/docs/examples/random_values.py +++ b/docs/examples/random_values.py @@ -4,5 +4,6 @@ from signal import pause led = PWMLED(4) led.source = random_values() +led.source_delay = 0.1 pause() diff --git a/docs/examples/source_value_processing.py b/docs/examples/source_value_processing.py new file mode 100644 index 0000000..bd2b845 --- /dev/null +++ b/docs/examples/source_value_processing.py @@ -0,0 +1,13 @@ +from gpiozero import Button, LED +from signal import pause + +def opposite(values): + for value in values: + yield not value + +led = LED(4) +btn = Button(17) + +led.source = opposite(btn.values) + +pause() diff --git a/docs/source_values.rst b/docs/source_values.rst index 45d49e5..4b108d9 100644 --- a/docs/source_values.rst +++ b/docs/source_values.rst @@ -35,14 +35,8 @@ provided, setting the device's value to each element at a rate specified in the .. image:: images/source_values.* The most common use case for this is to set the source of an output device to -the values of an input device, like the example above. It is also possible to -set the source of an output device to the values of another output device (so -they match): - -.. literalinclude:: examples/led_button.py - -A more interesting example would be a potentiometer controlling the brightness -of an LED: +the values of an input device, like the example above. A more interesting +example would be a potentiometer controlling the brightness of an LED: .. literalinclude:: examples/pwmled_pot.py @@ -58,7 +52,7 @@ The device's values can also be processed before they are passed to the For example: -.. literalinclude:: examples/custom_generator.py +.. literalinclude:: examples/source_value_processing.py Alternatively, a custom generator can be used to provide values from an artificial source: @@ -81,11 +75,11 @@ Composite devices ----------------- Most devices have a ``value`` range between 0 and 1. Some have a range between --1 and 1 (e.g. ``Robot``). The ``value`` of a composite device is a namedtuple -of such values. For example:: +-1 and 1 (e.g. ``Motor``). The ``value`` of a composite device is a namedtuple +of such values. For example, the ``Robot`` class:: >>> from gpiozero import Robot - >>> robot = Robot(left=(14, 15), right=(17, 18) + >>> robot = Robot(left=(14, 15), right=(17, 18)) >>> robot.value RobotValue(left_motor=0.0, right_motor=0.0) >>> tuple(robot.value) From 5a1ee73164d4a6983f235ba2083f74d3337132a2 Mon Sep 17 00:00:00 2001 From: Ben Nuttall Date: Thu, 8 Dec 2016 17:25:56 +0000 Subject: [PATCH 3/9] Tidy up readme, update description and add contributors --- README.rst | 37 ++++++++++++++++++++++++++++++++----- setup.py | 2 +- 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/README.rst b/README.rst index c3e5b55..93255ca 100644 --- a/README.rst +++ b/README.rst @@ -14,7 +14,7 @@ gpiozero :target: https://codecov.io/github/RPi-Distro/python-gpiozero :alt: Code Coverage -A simple interface to everyday GPIO components used with Raspberry Pi. +A simple interface to GPIO devices with Raspberry Pi. Created by `Ben Nuttall`_ of the `Raspberry Pi Foundation`_, `Dave Jones`_, and other contributors. @@ -93,20 +93,47 @@ Alternatively, email suggestions and feedback to ben@raspberrypi.org Contributors ============ -- `Ben Nuttall`_ (project maintainer) +Core developers: + +- `Ben Nuttall`_ - `Dave Jones`_ -- `Martin O'Hanlon`_ - `Andrew Scheller`_ + +Other contributors: + +- `Martin O'Hanlon`_ +- `Steve Amor`_ +- `David Glaude`_ +- `Edward Betts`_ +- `Alex Chan`_ +- `Thijs Triemstra`_ - `Schelto vanDoorn`_ +- `Alex Eames`_ +- `Barry Byford`_ +- `Clare Macrae`_ +- `Tim Golden`_ +- `Phil Howard`_ .. _Raspberry Pi Foundation: https://www.raspberrypi.org/ .. _GitHub: https://github.com/RPi-Distro/python-gpiozero .. _issues: https://github.com/RPi-Distro/python-gpiozero/issues .. _recipes: https://gpiozero.readthedocs.io/en/latest/recipes.html -.. _contribute: https://gpiozero.readthedocs.io/en/latest/contributing.html +.. _Contribute: https://gpiozero.readthedocs.io/en/latest/contributing.html .. _Ben Nuttall: https://github.com/bennuttall .. _Dave Jones: https://github.com/waveform80 -.. _Martin O'Hanlon: https://github.com/martinohanlon .. _Andrew Scheller: https://github.com/lurch +.. _Martin O'Hanlon: https://github.com/martinohanlon .. _Schelto vanDoorn: https://github.com/pcopa +.. _Steve Amor: https://github.com/SteveAmor +.. _David Glaude: https://github.com/dglaude +.. _Edward Betts: https://github.com/edwardbetts +.. _Alex Chan: https://github.com/alexwlchan +.. _Thijs Triemstra: https://github.com/thijstriemstra +.. _Schelto vanDoorn: https://github.com/goloplo +.. _Alex Eames: https://github.com/raspitv +.. _Barry Byford: https://github.com/ukBaz +.. _Clare Macrae: https://github.com/claremacrae +.. _Tim Golden: https://github.com/tjguk +.. _Phil Howard: https://github.com/Gadgetoid + diff --git a/setup.py b/setup.py index a7ea6ae..cd1883b 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ import os import sys from setuptools import setup, find_packages -"A simple interface to everyday GPIO components used with Raspberry Pi" +"A simple interface to GPIO devices with Raspberry Pi." if sys.version_info[0] == 2: if not sys.version_info >= (2, 7): From ea4ed9ad8c1f5b57e92007275998fe1d4c07b6f2 Mon Sep 17 00:00:00 2001 From: Ben Nuttall Date: Thu, 8 Dec 2016 17:26:09 +0000 Subject: [PATCH 4/9] Update contributing guidelines --- docs/contributing.rst | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/docs/contributing.rst b/docs/contributing.rst index d1c6d17..5c58da8 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -4,11 +4,7 @@ Contributing ============ -This module was designed for use in education; particularly for young children. -It is intended to provide a simple interface to everyday components. - -If a proposed change added an advanced feature but made basic usage more -complex, it is unlikely to be added. +Contributions to the library are welcome! Here are some guidelines to follow. Suggestions =========== @@ -33,8 +29,13 @@ Commit messages and pull requests Commit messages should be concise but descriptive, and in the form of a patch description, i.e. instructional not past tense ("Add LED example" not "Added -LED example"). Commits that close (or intend to close) an issue should use the -phrase "fix #123" where ``#123`` is the issue number. +LED example"). + +Commits which close (or intend to close) an issue should include the phrase +"fix #123" or "close #123" where ``#123`` is the issue number, as well as +include a short description, for example: "Add LED example, close #123", and +pull requests should aim to match or closely match the correspoding issue +title. Backwards compatibility ======================= @@ -42,11 +43,12 @@ Backwards compatibility Since this library reached v1.0 we aim to maintain backwards-compatibility thereafter. Changes which break backwards-compatibility will not be accepted. -Python -====== +Python 2/3 +========== -* Python 2/3 compatibility -* PEP8-compliance (with exceptions) +The library is 100% compatible with both Python 2 and 3. We intend to drop +Python 2 support in 2020 when Python 2 reaches `end-of-life`_. .. _docs: https://github.com/RPi-Distro/python-gpiozero/tree/master/docs .. _issue: https://github.com/RPi-Distro/python-gpiozero/issues +.. _end-of-life: http://legacy.python.org/dev/peps/pep-0373/ From 6fd4ac4cdb9d2203ed109c1e692d897824e19f13 Mon Sep 17 00:00:00 2001 From: Ben Nuttall Date: Thu, 8 Dec 2016 17:39:28 +0000 Subject: [PATCH 5/9] Remove Schelto duplicate --- README.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/README.rst b/README.rst index 93255ca..8ecedd0 100644 --- a/README.rst +++ b/README.rst @@ -124,7 +124,6 @@ Other contributors: .. _Dave Jones: https://github.com/waveform80 .. _Andrew Scheller: https://github.com/lurch .. _Martin O'Hanlon: https://github.com/martinohanlon -.. _Schelto vanDoorn: https://github.com/pcopa .. _Steve Amor: https://github.com/SteveAmor .. _David Glaude: https://github.com/dglaude .. _Edward Betts: https://github.com/edwardbetts From 06e534b5370fcc3109bbaa7d5ec38fb72e77fb47 Mon Sep 17 00:00:00 2001 From: Ben Nuttall Date: Wed, 4 Jan 2017 16:35:45 +0000 Subject: [PATCH 6/9] Update source-tool-value-processor image --- docs/images/source_tool_value_processor.png | Bin 19388 -> 23506 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/source_tool_value_processor.png b/docs/images/source_tool_value_processor.png index 9e05a98169639307ebfa75ee6fa7a9c2fbc474bb..0c6f1778df0aa048541fcfb9b8c6eaee957ffddc 100644 GIT binary patch literal 23506 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 K=d#Wzp$P!AZb8)m From c586fe07f53e794048ab1ba1ee230ffa026cac5d Mon Sep 17 00:00:00 2001 From: Ben Nuttall Date: Sun, 8 Jan 2017 11:36:43 +0000 Subject: [PATCH 7/9] Update music box recipe --- docs/examples/music_box.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/docs/examples/music_box.py b/docs/examples/music_box.py index 872b08e..80ac929 100644 --- a/docs/examples/music_box.py +++ b/docs/examples/music_box.py @@ -5,14 +5,12 @@ from signal import pause pygame.mixer.init() -sound_pins = { - 2: Sound("samples/drum_tom_mid_hard.wav"), - 3: Sound("samples/drum_cymbal_open.wav"), +button_sounds = { + Button(2): Sound("samples/drum_tom_mid_hard.wav"), + Button(3): Sound("samples/drum_cymbal_open.wav"), } -buttons = [Button(pin) for pin in sound_pins] -for button in buttons: - sound = sound_pins[button.pin.number] +for button, sound in button_sounds.items(): button.when_pressed = sound.play pause() From ed12ac19948c4673e67987155e06253f38e78671 Mon Sep 17 00:00:00 2001 From: Ben Nuttall Date: Sun, 8 Jan 2017 15:58:50 +0000 Subject: [PATCH 8/9] Add bee-bot / turtle robot example, close #443 --- .../{robot_buttons.py => robot_buttons_1.py} | 0 docs/examples/robot_buttons_2.py | 34 +++++++++++++++++++ docs/recipes.rst | 6 +++- 3 files changed, 39 insertions(+), 1 deletion(-) rename docs/examples/{robot_buttons.py => robot_buttons_1.py} (100%) create mode 100644 docs/examples/robot_buttons_2.py diff --git a/docs/examples/robot_buttons.py b/docs/examples/robot_buttons_1.py similarity index 100% rename from docs/examples/robot_buttons.py rename to docs/examples/robot_buttons_1.py diff --git a/docs/examples/robot_buttons_2.py b/docs/examples/robot_buttons_2.py new file mode 100644 index 0000000..56241f3 --- /dev/null +++ b/docs/examples/robot_buttons_2.py @@ -0,0 +1,34 @@ +from gpiozero import Button, Robot +from time import sleep +from signal import pause + +robot = Robot((17, 18), (22, 23)) + +left = Button(2) +right = Button(3) +forward = Button(4) +backward = Button(5) +go = Button(6) + +instructions = [] + +def add_instruction(btn): + instructions.append({ + left: (-1, 1), + right: (1, -1), + forward: (1, 1), + backward: (-1, -1), + }[btn]) + +def do_instructions(): + instructions.append((0, 0)) + robot.source_delay = 0.5 + robot.source = instructions + sleep(robot.source_delay * len(instructions)) + del instructions[:] + +go.when_pressed = do_instructions +for button in (left, right, forward, backward): + button.when_pressed = add_instruction + +pause() diff --git a/docs/recipes.rst b/docs/recipes.rst index 6ca48d7..5c64dd3 100644 --- a/docs/recipes.rst +++ b/docs/recipes.rst @@ -331,8 +331,12 @@ Button controlled robot Use four GPIO buttons as forward/back/left/right controls for a robot: -.. literalinclude:: examples/robot_buttons.py +.. literalinclude:: examples/robot_buttons_1.py +Alternatively, use four buttons to program the directions and add a fifth +button to process them in turn, like a Bee-Bot or Turtle robot. + +.. literalinclude:: examples/robot_buttons_2.py Keyboard controlled robot ========================= From 218ca4b527e52b6e0d5ea11584587e8a23112651 Mon Sep 17 00:00:00 2001 From: Ben Nuttall Date: Wed, 8 Feb 2017 13:54:41 +0000 Subject: [PATCH 9/9] Include licence in sdist. --- MANIFEST.in | 1 + setup.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/MANIFEST.in b/MANIFEST.in index 40b7bf4..c0b7b32 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1,3 @@ include README.rst recursive-include tests *.py +include LICENCE.txt diff --git a/setup.py b/setup.py index 5c03634..6cc8f26 100644 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ except ImportError: pass __project__ = 'gpiozero' -__version__ = '1.3.1' +__version__ = '1.3.1.post1' __author__ = 'Ben Nuttall' __author_email__ = 'ben@raspberrypi.org' __url__ = 'https://github.com/RPi-Distro/python-gpiozero'