From 38580fec9cf130bbb6132fdba14cd68a52bc91d7 Mon Sep 17 00:00:00 2001 From: Edwin Solis Date: Tue, 5 Aug 2025 12:03:03 -0700 Subject: [PATCH 1/6] Updating readme --- README.md | 122 +++++++++++++++--- .../comparison_afcuda_t4.png | Bin 0 -> 71635 bytes .../comparison_afoneapi_b580.png | Bin 0 -> 72430 bytes .../comparison_afopencl_b580.png | Bin 0 -> 72729 bytes .../comparison_afopencl_t4.png | Bin 0 -> 72618 bytes 5 files changed, 101 insertions(+), 21 deletions(-) create mode 100644 docs/benchmark_results/comparison_afcuda_t4.png create mode 100644 docs/benchmark_results/comparison_afoneapi_b580.png create mode 100644 docs/benchmark_results/comparison_afopencl_b580.png create mode 100644 docs/benchmark_results/comparison_afopencl_t4.png diff --git a/README.md b/README.md index 81a3f90..1ebf535 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,101 @@ -# arrayfire-py - -Arrayfire python wrapper - -## Coverage - -- [x] Computer Vision -- [] Events -- [x] Functions to Create and Modify Arrays -- [x] Functions to Work with Internal Array Layout -- [x] Image Processing - - [x] Features -- [x] Input and Output Functions -- [x] Interface Functions -- [x] Linear Algebra -- [x] Machine Learning -- [x] Mathematical Functions -- [x] Signal Processing -- [x] Statistics -- [x] Unified API Functions -- [x] Vector Algorithms +# arrayfire-py (WIP) +

+ +[ArrayFire](https://github.com/arrayfire/arrayfire) is a high performance library for parallel computing with an easy-to-use API. It enables users to write scientific computing code that is portable across CUDA, OpenCL and CPU devices. + +This project is a **work in progress**. It is meant to provide thin Python bindings for the ArrayFire C library, i.e, it provides array functionality, math operations, printing, etc. This is the front-end python library for using ArrayFire. + + +This project is separated into 3 different parts: +``` +arrayfire-py -> arrayfire-binary-python-wrapper -> ArrayFire C Libraries +``` +The arrow `->` means `uses/depends on`. This means that arrayfire with python each of these parts is needed: +- [`arrayfire-py`](https://github.com/arrayfire/arrayfire-py) is the `thin` wrapper that provides the numpy-like interface to do math and array operations. *** This is the intended User Interface *** +- [`arrayfire-binary-python-wrapper`](https://github.com/arrayfire/arrayfire-binary-python-wrapper) is the `binary` wrapper that provides rough direct access to the functions in the C library. Its purpose is to do the handling of finding the C libraries and handling the communication between Python and C datatypes. This package can exist in two forms, with a bundled binary distribution, or merely as a loader that will load the ArrayFire library from a system or user level install. +- [`ArrayFire C Libraries`](https://github.com/arrayfire/arrayfire) are the binaries obtained from compiling the [ArrayFire C/C++ Project](https://github.com/arrayfire/arrayfire) + +The main reason for this separation has to do with handling updates. Bug fixes and features for user-interface and python functionality will only require updating `arrayfire-py`, updates for the communication between Python and C will require only updating `arrayfire-binary-python-wrapper`, and updates to the internal math operations, device handling, speedup, etc will only require updating the `ArrayFire C Libraries`. This way we allow the user to customize their own ArrayFire installation (e.g. only requiring the cuda backend, using both oneapi and opencl, etc.). As we continuously update each of the components, updating one of the wrapper will not force the user to reinstall the heavy binaries, and doing updating the binaries will not necessarily force the user update the python interface they are using through `arrayfire-py`. + +# Installing + +The arrayfire-py can be installed from a variety of sources or can be easily and quickly built from source: + + +**Install the last stable version of python wrapper:** +``` +pip install arrayfire-py +``` + +**Install a pre-built wheel:** +``` +pip install arrayfire-py -f https://repo.arrayfire.com/python/wheels/arrayfire-py/0.1.0 +``` + +# Building +Building this interface is straight forward using [scikit-build-core](https://github.com/scikit-build/scikit-build-core): +``` +python -m pip install -r dev-requirements.txt +python -m build --wheel +``` + +**Note: Building this project does not require the arrayfire-binary-python-wrapper package; however, the binary wrapper is needed to run any projects with it** + +# Running Tests + +Tests are located in folder [tests](tests). + +To run the tests, use: +```bash +python -m pytest tests/ +``` + +# Benchmarks +Here are some graphs comparing ArrayFire Python against other packages for some common operations: + +

+

+

+ +These graphs were generated with this benchmark code using the ArrayFire C Libraries v3.10 + +# Contributing + +If you are interested in using ArrayFire through python, we would appreciate any feedback and contributions. + +The community of ArrayFire developers invites you to build with us if you are +interested and able to write top-performing tensor functions. Together we can +fulfill [The ArrayFire +Mission](https://github.com/arrayfire/arrayfire/wiki/The-ArrayFire-Mission-Statement) +for fast scientific computing for all. + +Contributions of any kind are welcome! Please refer to [the +wiki](https://github.com/arrayfire/arrayfire/wiki) and our [Code of +Conduct](33) to learn more about how you can get involved with the ArrayFire +Community through +[Sponsorship](https://github.com/arrayfire/arrayfire/wiki/Sponsorship), +[Developer +Commits](https://github.com/arrayfire/arrayfire/wiki/Contributing-Code-to-ArrayFire), +or [Governance](https://github.com/arrayfire/arrayfire/wiki/Governance). + +# Citations and Acknowledgements + +If you redistribute ArrayFire, please follow the terms established in [the +license](LICENSE). + +ArrayFire development is funded by AccelerEyes LLC and several third parties, +please see the list of [acknowledgements](ACKNOWLEDGEMENTS.md) for an +expression of our gratitude. + +# Support and Contact Info + +* [Slack Chat](https://join.slack.com/t/arrayfire-org/shared_invite/MjI4MjIzMDMzMTczLTE1MDI5ODg4NzYtN2QwNGE3ODA5OQ) +* [Google Groups](https://groups.google.com/forum/#!forum/arrayfire-users) +* ArrayFire Services: [Consulting](http://arrayfire.com/consulting) | [Support](http://arrayfire.com/download) | [Training](http://arrayfire.com/training) + +# Trademark Policy + +The literal mark "ArrayFire" and ArrayFire logos are trademarks of AccelerEyes +LLC (dba ArrayFire). If you wish to use either of these marks in your own +project, please consult [ArrayFire's Trademark +Policy](http://arrayfire.com/trademark-policy/) diff --git a/docs/benchmark_results/comparison_afcuda_t4.png b/docs/benchmark_results/comparison_afcuda_t4.png new file mode 100644 index 0000000000000000000000000000000000000000..e9c90e8b18ab4c06c63b36b13579ca28585af77b GIT binary patch literal 71635 zcmeFZ^;?u}`!A{pN_VG7N{2LpfT%+#;DB_e(&Zo}NGL5xNr{5MNOw03F#>{gGr%Yv zQc~->ec$g|Yahq{VgCX9IedJ0V3@h*y07azKj$aroz~-rB!rBFSFT(kfjzpfbL9#i z^_45vZsK1D-_e=fasdC4^;FgOeClHB`O?DO=8C3;r>mojr=x@AO>Y}_4+j@#aUoF= zAyI*w_MV=u9S}bKfLa(>PSt~aPu#Xz}s7r z_mn93BWQe;l(av{kDs1hR18{Aa;C+RKbk99H-vfH+1c6JNp0C}pQbb7fq#_ZIbqPB zJuUI9(EohNNpL;lf4*z`iTB@+Id8lC`{uA^{)1@7Y?t}w#3lwcpWnI3OZ)9D@tnGL z|9*_DzD~xLW5RO=RF~9xqQZyIGgYx@mN;*c$ubU0q&DjnkUo8r9 zlL+~XDs_HMRlPtgz2o8Y9pQux-_q$Y$mD{>!!xdReTk9fGk*0u*P?1vkH`Z%K;qK4 z`=GJeYkh37>1d8fUAW0J^zH?WCxhC#VY51JJ+OC@7U!{0WMrgpvoz~BiE(3bX1|@b zY~62qi`cBdm^NM|%r!E3a#ES)I4#}pS&E8h`-6(2kBSUNrifuW2UW*s^Y6eiz+v^C zzbPdrtrLztVp;FD6Y>|57uT(R6mehfac#YN1Kua8YaM4m8+-RqpP1@sKJZe+aiUZ! z?{Nm&$u7f74{5jhC3!?hnXytbHqCT^lQ6lJ(x8=YE{7|0@8_b8FVyp3nIsLaD6P_ zh{yG0Ms~8#X!p6Nm z(U58LHze(G>?(w_JpP5!v`$l%1pNXP8WT3jCQBEkX2~Yr2KGNbtL8r|F`a2K3pmLg zl9fJ`-|`r|OD8$w+HtJ!G+k}-2`}w5!)G-$+yC@1Tj|a9U1(B-Z3ACK;*_htY^$R@PeJH(Ei?PJ_ z+N>JyF1w)!7J2K#^8Wi+nEl~m zI9u44SOwWTV0UynovoL&SRTvz|NS#DrYUybluLGCD$#R0# z4yx?4*oSlWMmcP{$5Op>-AYoeS;)u9X_TAH#W60MEhQW9L zcV1S^DePAoyovIw&a6*2gI$Q!yq~zS*QoB|8!`p_j&L&J%EyNZEBIEEbcczUv22y_ zp<&A6~)`FK1AHV#&UV?Y9HX1pdRJ+}LO89)N z&|s&Jzl8c#y4+SRNAc0)zwr?`f}KwCm?-fG zKVn!st%T9PinzI1Ir6y7KZVvD*|9cW!iIX1<6l*npQ8Run%n6oyibrAIZIjfd^EyJ zF|xn+2b5h$MjdAh1hbF({!#c0`Tcq`HmN!7+F2wxX< zQx8U>pFWo1LTBEUYXrMKG%4@7NWp4{ZJHD9Wp0(+-PdUFr zSm~v=B0hV|JF_q6yVmU`9&_uQY`0u4S&LOFc%;t-oNnSB2CdzjDvV5U6vsS-7G9N= z=+D+{!_WboFPLxS&Qw)`2VQ#e=mVvc^iLU(e2qHaVyh5w26L4T4U z(RpS_WXr|h7j?zST9IXkDUY~M|NgQ1K`Rex61`Tg@Qb1AS^RHC&5Xv1#HM=uUbl<^w7Cavxqw2mTu;If2)A4a9Rt4o;*H`29d-Pu8 z(VTC1QO%qzvwIKwA~@O+x{fzX|F%3{ZqN7b4_#|Bb}#yJ$Gu1@3w2A&N;w{s0tIaO z0Xs# z`z$5#K{NYPAM-E^+dFe^C>HheTKMS?Z*_a`5ltx@<+0C|&qw+6E+~HHexpvE;Hqnq z7ky6f#r}FP@eDj`FMSSF_0X;U<=c~^8M&%j{hi{9jsRLqV{|E6YL0$&AR~=n8NV~&Y!`)g$MpnF>v<|$ zcp0NoDf~x@L~7ZM?fUiN^a`=TRPnrtQ#1EoF1Hz_Zdd4t(bZQ3+waA4)-_j)+o%u-&5^2ttB5y0v)->Jq|Z-3@a z&0aZ);4glgkRh^2IO-J=_2pqKsa1CrK}Q%#WdGsDq&P9Nv`95h%fXmYnOYp7Qv0*u zDnFi=w>9y&275c-QFVZ-_ODOtUzN5W`h*tq-6(rl3#v?q_Cpq$>KXU`T46HzoqP5p zUo}(Nj=Jc~hyE+TyO6>-D(h4h&|n`F*CM(Ln8T>s&U2#n;|OAt&t&Op-eAk z{m8K-@3~HV4p(&0XMlY^bbuvc`bK$ruud0q_i$pOSZ#D#mCl5kXUSaBw4Fn_GTHQ1 z0Xo)gua_r0ob?s&3@E8(!Ns3(RFSI>qUb4jxGfa(e;L`P+E{+_UMtA65 z;!4QXVu3wMliqIJx1`}7q^ogi-0gM?Tgl0762K?&iOS1-#iu9hE??*TGhcf*g)^lx z6r&;i-7W8V`I9V#MNm~ufB7eK7Kr`ib@eoZ;H)|?l5O0`rAecqiW7!J#AN?JK`wYi z{NDeCeE+YX>-{@n-~oMU|JDjTGN%zbb~(42!0pHe;COf5&lnsD3#iuaV+VytFtgyS zW!v;8ErPm8N>j!LK-PqE$vVIsvFnWT2-kw`=^B@L#C%r3Ux)0PFMNpQ_Yajp8|c`W ztmyZ={PE>s_;nJ-5YTl*;WR|2j5@y|)Mx=tH<3Ed+)D)6qCc;h;^mn~zFA8EVl~x{ z&vP2o&`9VC)my_+umtYJzs*n+A}-w{xkfhzu7edqv#tX&*pQDBmzS4a=BFdc;Nn9c zXUK+Lo^J;d6=HfgVu>%$_Mgy8yPD6%p8kCLr0bxla#+nG)h3AmLV-7!UGEX6A=B6b zj@hq!$^kHnQ}Z3P%u1Jeg-YjHSpckf;MD+y2pfZ1ytth3BqrNDcvC$~7?(ZGx!!?Z z*7Fz6`UC)59gHsuDT?dYkUDn{Kiq!WZV}Ext7qahss#`Z0__copa|IZwI=WWc)LE9 za+#Cg0H~L!@oVjQPQv596aA2hldwJ2rm$fJfT~NujYvN6w}9<|8XE>i3)BKbNTJ{F z(#0^QZV%g)#Al=?^_~PJO^1f>)<4R4*!n3h*OfSbyyHL#x-o@N<4$|1DcxeALC4lR zDxU6f7&!Aw>mP+<5hVb8#qOJ;05GL}b-2L*!S31^02&k;&kv_%l38TjttUWL#;k{; zmd;lJ)DRp!{auI6WSW*LkM46r1VWeRQX~0t`gE z=eq#1e6N!)NrgJe#dqsTs2yYJW?&ae^;nwyx_slqbhmB>(WoV&Py#CM5A?iy0s1W0 zR9&|yml}_kB6I86wmV`K{@PD~(`K1JR%+34tnl5#6@c1Ka(T1HYF2;(OEEEWVPG%c zZaySv$3I87@DV7jf(vC0BVnR_14H@{oa3(}2A^OK>L7ful4K+VinZV_wqLkKJ|O5l z*#J-QAd^d@sOPUCc4xWmj2o;7^F}9dkKau<*DiRqCX>q#g2Qeky^j{}cscJ+R}IDv zyk=vJM5{;ZCC85JEyrds3aNmD;(i?=(BaE9Xi#KWwNw{J3MY7(aJ2p>^z^3BIX4(n z>Pow4jXJS0acKuzWhmA~a5@HFnE6~Dkge;VLrYPfHJ&r7Vin1agR&WrdKre zTjxjfvEwg)58DK-@MwOdc3~2?)hLSvN4GH;lo^_h#{B^q7f>3u=_X6`itOv}6Vg9@jGpTG;?fu82lwqyxfN7Qs` z5t#1r!0_gqy&iD97#<9+m%6ZFt6nAxYgqN1W(HsuE`?R_c3G2G+(557!gI!YB?Xvz zWPo2fb#4p*BkXPOI$Z2bdvh2i=*>d<&kJ%1g=!aq#ae_vNSTI%UwRo@cnZ*l@UNc* zPgmWf!=ag9x!={0bDd2=jjE1P z5CpgcE%NC<=`5$YG{4iOJJSfgLPG#+;1+yjd;{qoPs@gEq6F>5VglR&t7)?NUr(!4 zBlQi?V6W&o|B(C`3r*^UV270Xi!+VhbQ}Tr*kD7JK0IzMrKoxe+4H<toF*nH= z{fw7$K12ej1Lmj5XZBB5^<6c}rxRtq!oM&3HoFRm7n>LFhhlxs55|Re{a`J$`Igzk zd`u-*Gf_)gsa`-uSkBB2LK4wO*E+D;HscK*|XoVKmJ)Y(zTP~AvI%v!gF@M zI}RMHJ`hPmoA0h^$W%c5)tz64Z4Rthl)I#Sr%FVEf+^n$%hd{B_nVR(effJ5OeFNS zztmAD_XxC@Zpo)}!nK)wy&FkSO}86a$4z}VYrk(OCR)^W-%poxGAs`fUIJ`t^s6bT+QIa)_mpCggRWZ2sejr5>yy=B~*&c%TCY~Om)qEz3oa$pa8cqiY_ zKg~aM24#AkPL}+P0fq5RbF>CN=eP1Gz7qGA^zt=M48!i?1)xOU3Ksdb=5fW5QCz!D z{8n+hVo)KK%p6yE;o2=FX12Es91*no3XjOOhU2^a)i@YBqQM8fC?Ti&N>otCZQALY`38BHdi+$;0NZ-hRWg{eCwsr!+@O zc2N{ot}R@8s*B+Axb;zw9N>^9Bp;v7yrtj}>mR0kSbJape%kFef^}|OdIdj3HtK6e z#>(*!EKSU*(GS7RYum5`%5_(n*#2EJ{5uZem^WrZg>p?zb*{#!C7egx_tUW z$*biP|1d83VBHAHGXd?}INo1tUum~zOd(bl5PUyaA?7xgx#Y&w1D`E>F0Q!G-xIOX zWE&wV4p9;?UbIg_lv3)pFQEkimJ~~!EnXsM8eWN^MC5i{<(_75RTc|iV!yc=zd<$q zVCcKg`)^(fZFT;Dr|ur}PQo<9S`!y0D6j9C!tSZ2v`@I<_C$@ObX!s0-(lqFT(UEK zXAt8d>X5rEz56!+0L7(d?$a(0{~@ItU2$5bu-uz~IY~RGXEur<**20l6S#r1d8hm8atcokUFeZtjE8J3nl5nK zU9-MxR}Is2_q6}oT;56fmmJ}ah>rDlM|#yk!tVB5*#0csK?*GVuxwGrI{)3DvPEpw znBh0Aowv)zU%fsGXS=g|VqG+b57QU61=rP^$ya1BGYV%r9hf?}af3VKAj#%zIu?d_ ztPi_lJTp%dytjO^=yLaHk$x65P@lWSIRc3$w{FAYBa*&FM)ysPBXBQh!ff z$8a$7u9dG9OsM|X=UP_7PxhGlr3ijP&@7AalGJPD%AzZ?eo)E-dI>GY=Kn|A*tYfc z)zB^V7tZTrMVQ^&$d!{p#Y^J_Q8qyG*Ur?sVce_bN7Tjv^Bx?-BG*mZ&7J*6?0KdIkZ15SQ=i(hrRF z!z8~iO+}OdHV5Hb|NZVXK+;snG6z4O6741WZw=%0ya-=EJ=!)a798wq3Tp;XHW&cL z?xc}n($KiZ2hgd&b507?T7~%{+_y%$dvfNCj~d_ zj1h~WyT*@B0n#UwoI_x0NqR#)&Hy7J;O5U&CGRl}=n$eR<>5WGQ|rT1{Mgih?-f}a z97VakqIms<)l<(y!)$sEOqKWp4l!9^+S-*JsKZ71P1+<2{@j!IJKkv=37L%mmOKB2szEO|+~WJKUO;!|uVEwIx(_4czQAa@x(mL`z0cNvDIcyNocLFw|Jk6CSJe zUF8M$W+dF2Gr#i_4&Pl22P&eP4=E6V6uV#l{4J6thNt4;t#RTU_p@(Yj zt#Z3{=jm#vuQ%@$?A^)mH0s=SLLzjgIduLEIvFdlP`P$Edgw&G* za0`Vz6}c7E!r;7{zJxTM@E)5dpWjD2sZC{2$-jh`gNc=2k6SdGbW{&6OLH`XeS^s? zR$e_&;nFKUf+Kf_OMLjM;`P)IWhMisWPCPvKWa|NjvRe?9=%fFy;7Sq&p#13rxO2M z#1&n^-(1U<8SwWv9&({?Pxh)V3hu(a9eXz5D=63j$9c-$SNC2)4{n#_jUzG_?jvNt zhN|Q|)BJQx(nx1C3H>+i%;;x%o$ZZ*fRdgA*_;R=AG4+Qbup#{UoEFhe^~uB_eJ@| zgWmo9g*RkEJEkU#&&>S2{4SUMBlp9fcl|++<;qB&ux>lTS#&}l(>Qxe+}`FnGs)}v z$S$3KXW5KTvf#PEZ-4gaaV9MDXk+8$jtgva0DhZiuos*}=K1~O%j2g8=mg z9kc!YbK}*HMM!m1{Lt7VZJG*x_uf#+dQabt_RmczdTI(YLwhel59%hPQLRF8S^3e> zEpZ*+YYim}s$3eTg!S|Y4CB81P0Ocz6Gzdo&b?}4mpy#bI=uo2EL}sF16y3wueI7l7Gm5@vRm17RuxZog3MIR& zhC(@l%04l5Zw0KoP$ilwpRzrH|Gt#LW^>> zVrO!`r;I<7b!Df&X>2u#n~k3>ThxZ0N?VZ4q-tN?V5nDrqc^dEeY>ADZdtu?{zN%$ zNm+F6M!c|^{mECBk8u*`jE`ELxuShotU1!3U?K@J&E^8_8CH(TODPMj!<9~&ODM1Z zaLzFI_Bs?~cp8t5)e>X5xfk#t@>Me;h9K%>n1kV431>*zB&Is}=+E-upB7a?qZvfn zg4g4n#OVF^M>sjt`y=?TE2iJQ_fz^nwEeyDu|uex#`nu)khmES>e z&tozKPjrOj&K}S6_;ULWj0au2(Ot&iBiwhRgMG)Cf|znm+>;K=G**p&^Fl5@Q0j?|x8sK!sye$k~nwUbySN-nF=Ul7&#f z6>(-_Lmv-)e38!A&e8pw@An%sZ}ZM@c_H{S(N(sq9Bj2ze&pPLzC^s)%`Lx1&BvG0 z7)*9QO3n*(5foYYB->KOZgvRS8;IpTyZ7)>j~ll@uf&4<)hp8|jP;Yl_Pvd3H0gEZ zogYHl_83sn=0SWyNb&;QTdf+3q-@2-VAM}v?_p))pTAd_?;*~T&dK)CCsRhM+%13; zON8Z}9<&w?$*DscCX~jX(u8_^B)r#6&L91!&WJiV?K9FVo^Lw7`#S%cM5oWaE*^Hh zJtY|eZu+PDfDkdx7iI6ib?RmC@rb&+lvCbA|Ozv=s8< zhioNo-5;zpOp4V5E#42VhXQ7jrncE(VG4Fy{HI-nb^60 zmjjra<*^l9<6P?&b<2M@oR;c6N9}|f=K*~ox7*Kok;EDCO-z7)ZX{oA*+o+u``BO? zj~KJOcNBBPGcf(9thd|iH#XSD!;9aVZQIc=8#S*{k5}%-#`nQPvpB@BnOd`Dd+(C$ zOfWaTwlHB*OI0IuJA{CWHa{W>E`JTkOUV4sI5!P>+HU0f*-Z+<#HhH%M_2c=Bgv!5 zg9y0o5Blcx#uDHU6YJ)0zfJx8<-myH+yZ+`L399{=XYK1G> zcOQh3Z^GX#8P?#l;@8--TgweQ8EU{)ywL6PQZO2l#CLwY)(nb6#5$H6K1qmeg>$Rt=&n+o9DMP!b!%Lx{oIQlxw zKSgBxXdejm$cTF{a+84C;R}z3#*LS~#J_qq4jph6e^(Fe6_S5{C{{;p_WVQTWk?|W zl;Sv-zqve1CB~=tDDLxs_>@uIjv>#`;(6q_Z@s2MYHDN7k=`MPi6BhE{g8P5x1KBV z3Bg(VjA{z?ad zuPkX}Ub_2AI)Aa0F)>Mh(DSH4RLSOVq--YBhic`xmJE%vu9LVkC;p=4CXQ#i$ebma zFhJPr!o`g24{zx5UA2$=(!~2LQQ2W?j1oTen(X$;!Zi}BogeP~H-0!)%6+vn7ewww z9_Ab8yDAs=wOem+^L=)Y4pKekswmQNdNis7W7CQ6`?{g_bt(8!JBclqjihxup6!h0 zPEgFb+A}I{gpfMn<70C4-{X79A-1^5esN#wg&EZ2P>U)on^AQNA!5aJ@dn-%M?3}8 z{OYPVrj-vgnz2NP;{5c!s-{YNZmhXm{?xM1lFY!t;`;;g`^mJZw^xEs?G(*IM*McT zKiuwr@peB1d&i%h`MP*x9_kDo`dmL4voTpaf)$v4Lc~|}hG0P4FtWf^{n^Q?&c~w< z)@Nwk^}JW24n>^IoUT0zCGn+i;{;Bdg5#py;E@R-LtUXIHeDwg`91sZ*BjNg6}Rao zw`rKM8=vmTjMBqo^;G=L=6Ob{fc-s6d_a)c##zO7dJT5)%LKo+kC^X^>dSqQk>H1Z8jZ;eszVnG@*SYe1-I8QDiMqR1f*> zbV%T!sT^yey!Y56Vf6W*IC?nAbJW7D?&~YnKKv#$s#(cKJ6hgz<36{#dCN!w_l`a; zjvu~t7J&%?HwG#y<5kk@^d@+al$A%OqH#NOj#uG#KLp`!yC$wck*@mp$S=QVFif6~}I@oWGf z2EJ9xN|GG63bRmjLjyK~H zizM4}%tSF{gFc57K9%(q%-c>tx_mxkYWfBy;Sh{zE4>~Pu)%>9%a)5x^<#*;na_pb zFEC7S$_b9gsE3MgQ#e}bsG_RfO?NLe6E{Rr%v2pe<9E0yu`JWAGCikehOcze75x8p z`eXb*?28iAB3iJ=d%0xWZ#Lw%jo@$dD2B_N(s}%D-%k|ErlLvX(zSOtrEIOpXjG_G z#O&{8s(6W)cma|ATB9Nr`M$he_%fWAN4Kw0FNL}whdjX}c9B6k?<7stMtobYku0}` z_lj;|Bi-Ib+l#DmoLZoxlkAqyMQqBI$F6TylQ$o!J?T#6|$4Z-#q z87C|_aedBL=BxbU=FRQjHpevIQ0ULMb?uSqU)EO1QL#cNI(<=3@O3TKnRHXJo7|d zz1slU-X&xOk~vxoQY?-z^YO-k=LdKsjCXjCfeK4xGI;KLu$H*50L*D7=I6k4^;ik= zo2(9InQdTzq*<~62n)Umz-SWzML`#mC4+5}48B4`9$)QN{W{?VkTUQNF+U!%30B4c zl26Vw5S(7x`ioAgCsE^MOp=a4s0?6wYK+Em?;ebs(E(;%0k2=M#<&eo(?&yp-VaU{ zw-a(jCt!a8jRkFt+66P#Q+e-yj>j!Pq3}ZLS{tO4W;M|0>1UgR-xl}<+=6XD`+d4B z`j20LJWwJQ?IGzkS)RkN-9w=LcFh}%0}A*lWZgoXB?0Xn(QFJH6?l+=$+NJ|8F(ur zv3j5){l9%& zSw|lLR%|o}o|Wj5#8(GvG=&udvUtyo-Bec_6#z>^G*#`C=5fxP4BVl2<_7$Iipnl} z6L_#*%$a_By$G|+tUo@Tb-gccGNIn?m*pJ2$DJ+%IuPw0hhfg<%-Zd%H<-0VY|$xb zG01DQD!p$E2(7vWFvLam?;#u@$!MlJH`!E{wZC7ep>P36YwxC8J%VcH0~!{<>=?71 zD!;16Uql@X+hcqJh^ZU90m6+t%BH9Y)XH7KbA>ZV_G$zyGaf(~?@rrJi50PtUgadJ zCd1OSzt1&*^GX;G#q6OW-`%)nV5eR3X0aoj&JhT!yS1(ZX0B~`UCn{Er@-PvG$6ZP zh(76l1+iI!yKb27#5IXj{}`H=0>gpg2*uR{IORo{6L1RbHZGl+x^>YI)q8IOqKezp zXC?7iD%2y=#wV-)fb}mBth&ZIr&}+85Kw0R=hqLJ@!kW+OQ01SZ&dFw@6=>@WF8S* z49o(5Bi;$`+GU{Ht1LCshTlZn9+TUO@oIV3FK=sJ0rcPpA}eR@#QV9dH2gM7ax|m7 za6j$Drv~<3UvSy<8V|orVN`tzbEbYC4kgFalIFp zf~)H5v*hui_^5a6kO6^SOcdn&? zyJc*|=(%6RL;~0`6grv%h`9KiH5BA`yB#7eB2N{i732Xtytdr$;&Rqv*a=fK)7I{D z+gRX4T8H@pZ?g6O@nVm@FsJ>GFB?YG_0KT}EGas3keDA2cN)#t=J>NYUDLUuA7(RR zSmVqR1Dr{vIlWcF;9}zgxzs(#m4gCwE=w^`a9lxg{4gyGSwsO@IeC$sV&FoMNjnBvo5p|-8oga%H%Q8p z?y5Wil*=WjcZttTWdt7oGg1R5AWeNSa85%KIjIz|^y2h?EsF(@^M)KY1+4p!6#=pu z$kXEbLkcG_C@8k4h+4HnP5D|q7!FI&r#~T?ZdCVKR~8nXN(E?BR*2Vi1#@`#HB#xD z7e>G>j<X{XulhO3|7+eQ;!#XNw66IT1Cxvb~tN9wjpfV9}wjzJ~_U9;OKfkj-g1W z;C3$SqFqe2%Y1kABptBCWy6qjoQMc;JIN;I(*$KtfDrBqq+XQdOPtoq;NW1$6YmQ2 zvJeJw+s?jzziVBjEV3bBQ_1KVP~P`m9}~p7ha^7DdrY!9Rn>0{Sa(z?FoVeI*_r}I zJ5>4i68U|1_MsJ@IL-nAh@A!RD5y_-N{#>#p>is&q+5Nmj}6z=GvL|)7T&IyZ0Ufr z6%h*R<&edJkctXk#w|F0vT!C1qykK+hY`4uV*kC7Pypf~v)lbbopfMXdf(52 zSO^mRc>;DKEk0o#TlN#}d>pIv`hQ-mXvk(%3p^SfJBuCaGYV5W1=Z641X=2P1N%$Y z0Z{e|CN{sLDji1Jftt(uhNFAtOH~SC8@QhhL)B&9ab0kcA!d-1z<#pa1_ADAq>199 z#W%eoOZ)zMhO9Vm!|qLf7dTb9KjhGzJF*~Fn)(Pi;%gNn8MBwb*=DYJv(Fp-I>9xD zydHQW{+Y&rjJt4avUr)9#}$o&e4zY~gn`L|a83-Sqife+0o-&+^tje4;iS<{c~Y~U zPu~YEK^7mQM^9vb=b#UO^TD-{c?O6zk;aNgUqTPSq3y+e1}@L6P*#AT-w!bTq20RH z=`CJk20W1Oqf8Lkqj{}-L4G2|p^AIw%io=JkAYq|5_m2yBb8=>L~npR01<)yY+x%% zotJS2r1%Ts2LKMz^bt)Tf#*o9f1XfATu|JP^~vY$?NrpTk2g=>$7_H^w0#S!lalKm3S|%J7weVqzlP#J1*GNaISk_015M zO0wi`$n^YYOsp3^py54a5Z)^ z_&H#Tc!AVs^J})@B{Mem)4S&nxm7I0NZPy0)wcRWgbRhoxl$LCQD3=$vb7y8SP!gM zFaKHlT2w7gpeh{ZUnxD3gqAJf)=<1?zxl!X!6G28v^d5axeM(yrTQLS9 zT{;?J9bHkPv zfMBH^G~9qX^+bD+Y23rNd5}nO12<$Q+>O6YMgpK_>1@rzSNe)r-o&ily_LmYo~)=r z4CLTI5_sSfw}1+TNUsoG<*<;$7I4B&{#)z9t96jnH%OW3?RW+x!kBdou%h!dCC=R4M0-V#BRyLfBMs0g78OQ2_Xve5!?< zLkss1_l737HH_m^E>~7Hc8`!cwJx2ZkKnC=i*`}J2DQrQZFUQHje=E8q!?951u(g& zr{{#ed&3FiBY}`3r(l`5g18X#sCgxgofRe3R7jmxRq_)rHq2=>>s{IEaIr`+D+$W_ z(u?@+TQgw0EzyU;uS4;mvb)I(JOv`g^zbhf8lpnCoH`2k!E_dDF#~{oMyf=rw^2I^ zG~Z7DOfcr)RG8Rt=o>*(bBF}wu`J}Y_ES)9{cPB$9@(eBcfW#S?s19;JJxAZ`YZE| zOgbEqU{%8?hG*|Z#R^JuiezVlfpt3#m9!0VPhn$4MkqbAc8TuC%ZHA*1-PL%Ut4M1 z=c6F_g}+Zv%RxKd=`pw4Vmd3Z!k)=EIDD;-Q&XVjOVn0v=RUX-u1~Lsl$mG z;`a|}1r0mNBdVWH-H#;lq6`s(bBNLYYaQcCJ&#KDbUyWPazn#bQCX!Sm9;1dais|NnLi81s!CE49STFgfAG*uWoTd^%*%gueVQ_J_V+`A>xA|I0Uvye}fvbWYNM z(=r8s3j2vti+m6pv~h{~_oQmKd3o`n*c=2L^9}YdpHq=gbLsN6cLL~NRW7CS@3m<# zz@|tjXju7Hk%?Cg35RoYyJ!IaA#&sU`+rY!8;Vy6;HoLKbllU{$yJ+5CxD&@x@<%F z-0<5TI{!1v`24%E(6fG!`gb0n$Nc}_{I?)AQzycFFdDmki?ndVgXg-3wvRx)_)svL zr+3KxC?3982px+5_qEF*JOtB9$jD6FM^H2@mO9_1P7@IlwnHH6qr?kZ zmwAW0jCP(ZKb@slEnpM>oAbbs)p=S4JpCFU?-T?dJ&1?T{wHXpgSQT{36K}P13)r5 zV1Z%u2D1P?BPIS42%V8YB^7u!qj8!E6LQq{KphJQ6NY4=oVf{)4cJqF;S~N+qW|K(3rG#fsj zFzs&f;1`&EXzQJ4y~ar(LJ)5gq{c7*u^1reMPcj0jc*-hJN4lRY=F|K=ij;(T!C3P z^m?mZwVh#ZWIOR7}k6ZUZC_5aARY1(% zV*ZyHLJ<1I&&%*OgtEAp`~1+z2n|E&CqCOvM+1dcpotL!8uG>J5oGrV`5>mU6`#L< zep`T&wg}>}#7(abkU32sICbf&_6%>oRbyA`AP;Uwwn>9` zw)1SgTk6I6DV?FP_?*qNX+Z!|EC4Ls#e(@pUT7a!&_luZ#7GUBAgTx$P-V8A0>MpC zP8Kpzesi6q9g3=v0*kux8xy-zaB?~TW558p+G|_>MOT0qQ>>=K$q@tY6w4Se4ws_E z`a?ioK=BN`35%XMb~i=vv?s28xAQ^(30(4X-6pIR@_9RN0~VeUa?2rn=bQa8e?dyT z7okz>8pwJI<$wyqu_4pYM6XfXk7?RzCz3JB1b*Pd($$YIx~=+mE&Sg>d;ti+^O0UL zEir8>1tH%MkW?1fwi5nVI+Nt}c#*~s!2;2<7Rx>FMLmHvF|r+uD=bi$9W4gT?UCbV zz$U(X1U4K$Gx#(BQG7WNr|E#4<&WieJBI+!oTxWq{FfvAQ4Fm4i(rG1fz>4uw?)5Q z=Of*017Rr@klcPqtOPMsP!6ke^A)h3d(4Hq{>x6V+wQM^$Dm)~`hvY4-NuAZ2Bqa{ zi7nP41`EV-vgq+4vU?H82$ABaPJkY8n^&(ejln>r7^naYfUPK{S5^R5wmT07@0+Aa zvVgzSsA4~21A#8vQv#!B`WB&pDFJ5;>I4>`$&1E)mvk7;q4(QE%v=DLJp@z^E)O}2 zC2)J#Kz2T+HX5QWrYnIFp(uHU+N{)yx1UC@$tM3zb_HzZAE`O-9uV? z0^3jdp%2U-*vtT8uRTU?i@t;ZCl&`Mzan`wSa0#t)>H1j%K7T zG!J8M#-cEPt?%M`I-(#eeqbIlR%;7_!-=7|S>RUs(}Oq?F*R7O_6F;wjUzzjGX~l= z!3lJJPXJB?E&0?90ZjK{P~z@qv56cj_%MW^B@n}4yWE^8vntF%cOPms)qk6q};L^_1NI0-fRbwj?{jJIGD^ddXSO5ww>E&*KJ{ zDL^{u{CbJ}oj;_GIRa!-juyYGLi|0V5LUvfHmY*By>?l7lod+0;U(ow#X51= zYs`luTmI~Yc))($KuS7z*-rlP0w=CRxhVN?&zeOw8!uf=bxhTZJ?Q3Di(%S0huc2(2*bJ!BIP5+cXJ84Wu3u&hj)KX*1odHp zq-XQ#R}BMm7C+V;l~^#2$$z;PxAf7N7oJ^FmhYA5)r3Uo@jic_JzP|YcnSa`uP4i* zjZf-bUvIyPMsVoe&2oMf;iS6g;9J_i5Z-QWHjb_{^(-mcJ&B5~>jpsqA70^=DpT8m0o_^H=`Nsi zXx=pQ7uViuo^)@t7v|AN7gK9uY9Y>ixBWO7guR)h6W#eEx?Jn^gN{NX-i3<@$;K?Dtdq;R^98z8u5p`$^>O1KXu!5Sr`k zh2{U`|F&l+-1ZA(shA+skMvV7o$oN+TUI=KGdoT??ks}n%5XZ}yL}p?8bT_+Pw342 zD5g^jkU1F{*bM9%5c^^WSx_<0yFo69>p}>+sYp{^efArVUKR-gsz{X0yzv~js1GhJ zHh!;o_pHC(R8aPM1Rou`5G@@R^&KU34c@37)I-!*yVm-U)rWK7Ia)ffazw1{(JSR7 z(8^E*I{8y_%W*1}uM^k5uY!sYL)Vw(BW_XcU@Im>kUQ!(qJ(&K;(2 zzEsR?42?cgei64mmuHAqCg@=;lB4hez3Y65ab6cF}c-h-Fm-~tdDA2TP`T(*6ic=ooVIKi~8K5&;zGN@z z^NYb&*bV#ll$!W$<(c#P7Ker!l+YG2;&G9*awlFDcJ3bKAkQ%@`>eI6fl$Tcut=p1 z^sDIP+65&IHG~+eBLM|i^;sqKaUAh|+Vcioa~i5QGhS0Sd|0iJc0xngaij5zR(Q-k z+0~RDFW{jsBZ^tN#f@)MTj8fTo?L0F%dAi%ej?N{%_WG9$hcjA& zpe%AjbHp<2c{iZNbN)N`!LR5F?yHn;eG<{4WDlU zREuCMQSvuaejU785=8e0F{7_vAc&LKlB4~5|Rt15c~aJ6Zzx zoSiqHdO03V)=GaGwf=-_3Gj1_Jp0y-f!2dmaZ&pa+Z7Jc3|Y`%1m!-v-zohLLEAMM zRssZ;3nim>Z$VccA0Y*LXeodxb^+UfGCHgAJ=%gWlpD@ZNYM5;h4}wVC_||NV2n6B zM}|X4EcMk4U=Z$9 znFT&GrkrGJEk^))&B_UlzFRa>w9O=JT1)d7kh0YkSZA0$hTzS1IY@6NW#~ z$Zo(6$5Mgku`!J2+U`E$Z>6TMLfUd)v8r2@8L|Yi4e}>;uOfY<_p&#fhHQwaD&a(M zvCbzb#++Qb&H`XxV4kVO@ii;zR?AXm)K%7o@j9s41y^*38{R1?gurGV4|MwO z;p%8g>sqm&t{knn`26M@U{g>$&4tG(d19REbgV<6nH9?#K1$`d&xhv~QTaFpJxF?)MkhfC)5?B*(4`X*0l%4NpyX&~ct)tr`Fu(<-2;K;`fK=k$f0waNu^Y5PTm&%S|Rt|k=FWwCp%+P-oa zc>#61ppTLK-M!`>r)yV`c@Fe5C@x{=uED*pKV z3$^}*T(uMTjxldw^?Mb|vUepS$XDzyv%#h+MQl$4QL&2k9NB(~R*U2rcK0hQ3j3UT z36@jhseb!ejBw|$0S%@T;)*X>L&+Wr`->&{QwTJ}#1P+_%sF!@)>XKR&2T)WE$I;t z{f2Tcwnh`6{AC7kqU=zLCYLu<$Jk7@$Ihn)oB^_yeUq&DRV{j+cq+FFX44_aE0~AX z;tf^btIq(*caCP}Q|=^NW+wFdlPeKVR@VMLLM3h-l5)0-0(~bG@u4ZCEucHuc8twp zI2quQs?nE!pAUh}J&Vq*JYy;mviwI;?UWIM1TLKUi}zsniU09+CO)J`OU`c5YJz^! zL2#|T5<%^tQz&e*sxPff!x6^}<$0^0E{#=KOhvday>Ahj5eH&NEnH2rOak|Rb!jMh zPr4yzxSRH8h5ermzP>iJ@kyB`U&jC>wWWQ=AuM3?5j{}UE$nv3y*ERdux#`kMiVJHQRNcE}5TF&K`>y ztZSwCE?U~sSrzMOYmr+BFNMxa5vObirAOuM4PuWoJx>kyBIwC(CvuxtYO8KP5wu-x z`;s!>eIo1fS74Bn)4Tkuo@!Kn)j9m=f`?)Hm%U2Gxe@Ve)Jw&SwX5(1vQfJuPl05? z(r8@>gG3Z0*AeqIASR%Xtc7-dX7hJ~af}md|JFfqt zPB(c3b4#nO#Jo*0)nR*&$oN3ym^RxlYh@aL5yB7>6bHJcb4&&sNorSj@lh?K+r#dN zI-V;Pk)FSP8Xe9-T39|5ID~^b*)Uox;}TJfH{n?WQo2OwG6Z>htPDCxcXY{4{<{@N z$XQbw-lFjsOGxpns#TiLsy>k^n7n(WC4$ne{nUS;`qa&!Znnab9*-FQ8j072hec#5 z1=E)o__BR&LVj6L)V{p%w(#!QJ1MSNW>&A7y7Pn+?yJTvJ!*h zK71j|Bb5#3k1VSzmbU=*$>v~NMt}g`irq~RMVE|R$F!96NWCxgOS=;Y(G3^WHmFH0 zpmeEqS6LN1{l(JLaHrJwgqX5e^+`Vcg;BZ*XQwyG;#Ho(ZjCA)H80XhCk(!eZ|y9S z5#^h{H7$1kQ5%glYYQw=&s`8Sr{M^sQ@)8_cSZUJdwO-~M+3b-UVElK{dyj*GoIUb$vHkqSUcKGCjdocDlfjqMsQgig8b*`72-= z6%B9_$9-u!*|9kjhji!CEUP|Ibi33tZX~6dt}vSiYunVQW7h!M>*jLpsv>TB7T43= zSN*`I5)Up_A?ywB*Gh`AWH;T3VO8euQv~*GNU&DVAU=EMHwMrRJ|tXq%+uk$nt2U# zg*Yw(+C3nWKEy2Er6;;f9hg5yObZCI9of3gdN?O9B1{+(-N;Z`#zQY@H(kTL93l^Z zo4yhNo$vIA0wVhjJZ{_n%z>0u2$Fwfj%71niyxQ~iU5Ke!&K@F0NIC%j z{Xg?N@Tn99#vT@h_&^Gh=kYk^pJAC13(ODl?}0}DeZD7pxBs7i({A@4W0}%-{(AmP zmbYBWJI6RZ{|8nIy|D@@7KK#7e}99Q%mTpnTL20Z6m^L5m)u$|@U$wOg$$*(iMz_M zV>o$?D4;*UiotakSzlH2wirT@mJsVgeYuEaCMy8Gt7W3(Or&Ky0p8-K`?lyUhz;l) zAo@XG(8bIsMW~|}DEWoVT@*=d)&~@zk5XD_4+&C^@1fMny8|RkEC52b%Qu+Mi&+Oe zBmI)<0QKV_kp?NEI>)x4k7F&&{Hr3+Zt+49TXzTGtV93&Rp%3U9;(~7Y}rDF(o<6e zVogw3>c1$pjA)<|eA7@$Nb{Ge=grXS+YDc2HXm3iI`BXluK>&^;j%!Iwhwujec&FU zLyd`cgW{(N48ej~NuIDVbAU|QMaCb3u;4;;gdobwETF&0)D3F%-k)O+!#}SaM{$#| z%A27g-_`&Cyy3TOSYF6h+YEuyAY8kDu8u;(tTW!Z z8KqKr9&d7QWk@jZu9WNSu&wOpw7TfGM!`&d-(p-j@C zI#Jz|WGJKCPOnq@>~i9nu^SK_Ol%(%56L4LK2RCq!D^3qJl^|}pk{n3^0@`t3uc<~6KXG0Kn)(m15>uI`pSrqgf&7hXy zxs48?S}0wc0h)R@hivo+)9tDkLu?A?M`Y_|rrxL(h#?s+4)*Gm6`c=2vxqhuQk@`@ zl*D}j+~hl=;K3Y+>Y5$lY*23RX+rr40SXU6Lg&%c|6beBCNPN$|MpxUq&CEY1)wcI zwNLdFbqolQR!i#F;8R;073sP2i$DnO49)tR{6-Z44D;gN*moeV5;^M<@>IPUVa;t2 zTY*|=#E7kH1>Nw`JaF5N)w*$Vm-f6r z64Q<}h$x8@CEwaf2A{PIHGO*p@FxQ#jUR_cDsdp^B0MMsmIIRf6ju~xbZXRvhR-}a zn4p2y1%;+6zvW)bh6La0DPBnw6Q%Oj57xH7k%basA_mSCKLgTqeTCGhRFsovhOIlB z$r_WR3$Pj;Zu}CzOlWHPa^_rL%2)KX#xBPuv{II1@1%-X=I4vsarPJ1!*kt+qfEB| zTS$Mh1u_^6hM;_9e|_zZ@9`U#v<&dsT}TOtNVJihO?)z@6KJyzy1?^0OohkcWIHc2 ztd;|J>J9X;P|MlH^cWSwijb(k(y3F70{N+FPb`-$WW3RCvp}hXW%Yg>anhff8=h%3(-J@M?_UFl`K~0iUAdOs7 zmR8_m*mfSRq`U2FQdLCLDx~+SCQGJ2ll~@S=@GS$rS-&&YDQubUpAoBez;O|Q#SkT zCtfHKYuwwR$qe4IiR|edT)?{kO3MppUyj^6DtLPv&Q;$Bh+RYyGo(H0=8LzHBD{c9~qojI_fdV^@lU^s8c913$9SVdGQrInM8ZxGiTZA49 zqQLJD+6`YA9Ch!0i(Uf0{r4Xh#a=)vf`7Uv1tnHJ&IkC=`q+j9nl;-?p+6VqXMsLW zunp^WA#CFl6GFO5{8~(v8lrCP7Pkkr@W@nL4U>OWf+W`~jpy$qJ7mf8N{EegGAvEo zYb}XuDXc)lHQ8>3vBZeHiBr1UDy(FRQSmQ4YyEUKuyszhn&tIUA*^c;3$h;!)2LY5Kv%zq? zi$_GbfQAl}EQ*(Q(;>BO@+#qaz)xAA?7y@%BSbf99FMekzD}z38;@*t0XcZh!G&PYDVJtNTv|vI zmX8ED85=wd;aph4H9cL68mg;^TTGirlNx%Vrw)0=>`hq&!aIt&Y91-HMgO}q$oe<( zCG-52@v*rfnN}Gsyk`LvSeFbW_Z)=4Z4{kdDRUAc+&V_%D=EU^c;VF*GM~i-zSK$u zzC<2F)ty}+(6ipT3R``3k&5MIESnn6oKh5PbZ;E$zH8qfg?}DfcmsjN@r~y<(lxv* zRsl#O#Y&7zq?Z*T8GMj)D{FIr4xCrxz*cNV6cy(-j9@PS_{O!~a3jr?w( zPYv8UYkk@7eY;!Z>m{8VW&gSl<3Uoj?Z&btN;V{{m0}|+Qz;qR>yJ696xu0g&g_dia#xP3Cul<9#fzkgipNpOtD{uSz3`dupbpQqKf2#W)oyo~ z_D?=vSzrjV@xcOoi67*VP?~%Lz$mdqediHW05c;V0aUP=UbU0UIgc6)7kZZdo?kx~ zv?srt9igjox*xnJH3K#XbQ~V)*%cjKUaCV-LeQ)|RE9<%TY=j#rgGscQUoLY4$3gJ zH&_Af3cuq^sIZ$5l?v$L{U;2|XDzkrL|lwzAksd%dBTcQy2u!@6wc(BIRgM9v+9*! zK=rEKp(nFj|EsEe4w|1YOU4?FhlyRiOZ(rc7Rt4)#aqeQt zS=eizDj4BUg43w=8pbBw%;L<4l}Av+WSiYR;rRisdCUEbUw~_?lkm=4%$zV(Ogd9d z0!1dhu{*M%lv~jP;YGOz<;(6E7K}um5oXOjEg9wUOUL5mJ1#Gl58BI@42HDMkmG$t zt{ZLE-StUr(!&(5MDE_SO(V%R4Q+pnUCb(cqgYg+h|NVt^Y?E+?+HBkgG4$<*0H_- zI4mm1X97x>ghtg#o|)pU)R+2_rOVgVvnH?k*(XoHO*k}LgHrt~o2V1Rn#(GsO%wHn zyq6n4YI%{rwQjl7{rbt{xP+gYp$Mxu$W2-~+%o?QF}}OqvM6n+ z)ui3DCnlAZ-<0_E7uW>dK;l*T^fGq0A(ho&o5X7*{xHh+C#v!^NRJOel`clVBvsNW zI1oVAopJ~%UAg}F6g(H%o<52eB;ksK%W19(k2o`&eOpWzXC_TfM;J|l}bgI*}I zcgVb0y8PV~U83arBkjl>f8wiOfQn~#_9EHOhG143Ooh4Fw-c*N!rnPnC5EXpyku+g z31pCDW~K_!m$H?U*G=xVD*uRae1NHAYl=uZvBq@$j*Kg;RXH{y<}ouT_@(9sb&jx} zV10n(c+f)`lu^tLNlYM17nvYkMtW+NGK(mSdt<*IW~?C=o6g_BIULkSM2vXQtM~&fzT%DV+#GoO*(z8gw8?=W5ngCv2AT%zH z6TuVYzJBZ4_32TTX&J-=L1MC}#XZ_9WY-mNyUDEOb>kU01vcZSoby?mSsu*lD}T=& zNpOnmOEaTEF{y5Mf5Pzt@R!{`Exttzk3-QAOWV&!qy#0Uvp4$d>>-Yi!`_&*R=H8g;IJv%sE|$Cs^GUM z9xCq{t5B2tjxat-@Xv@IG~}XIgg=Z}dG|Ik07-Zt_fig1fhorvPq#b;w_62B3GP=s z6qNE-y!CpzYr3nl@bfgfnPs-g%!!ygsREHbr)a@^)wMQ331BZL1G%QXA&GS=|LYlG zl2xjUc~uOK{sNI*4n_u}5&4UI-iwjN6BgVM?MlTu$ML%A&Ti~gHc*e=k&!SJ(7g;j zR!c~Qg5reC_~~;YRQitcuOG(v`~(zMTASa!U%C~3d-ecSqHy>7GqQGY_xE*P)!iUD z5XpK8xoG|QJbxNAaktsDz~RR$Kf~sbP=#`B-^QII`#pfJOpwN&|GKKDw<-P zF%AP6_(XsU0e`}|$gK7R=4tY1u0xMsu?2OlO zSCV|Qh!YFPgAbn+X4%!WS@f!Th38%QRiWLy)f+-2F33Nvk)83R0{go~lTU4~n|zej zoS1KAMTfw8;-L>Ti|+mXV^{NkC}UR4*!i?HBa+Q+4zSbMUpgKw?+(co+1OT2kis2k z+KpB5-6Pxmbl*eVq!j<1DV4S9zw))yJ4iz7c5SmwBS;!LsWC*X=l0L&G0adkirV=E z+p3Q4!Rq>(PGyPOaj^X*bW)O!1`VC1ZNX5gcsLO#5F{2^Zf$T1#E)%ra{fJIdfX3! z$B0{81a*+F6`mI;Vf*bmvrcrU=1_@Zp7#m7oidG>xhhuI>ipmW)lJp6Wl4{t-=42= zZ%P629i6VQ3HzudfpF*?4~_eTj0AsIlCav1zF+pTrM%Y{Q=ecTajrIgo-$L7k$-im zlzcrSQ{Y8Et1*Gos3hx*$g2wB<4V8q#+R;}Ot|oh%0^3OIy2;ChwghAX2xcaFD5Ksk9}oLLl-f{{zVp69qXn)x9(kr)V$tICZxDh_k+G+f1Dl(7KVO!!;OiMnO zg0)|c?@P)~f=Xt_zBp6wWvwN~G;!A+IW=zY`@d92G-nE4QP!kktSOc$0>M4rHQ7ti zA-WG^Lf!hB2zLk>$|Q%oXN_~$)$bEJM8O)%ZgoFZQbcGw=8`4~u z-C?%X2%Y7+`h}m|4IgN1<+O-v;wNrsJE8BT$nW(cVf|JEp{m{9*Dp~LjARq?RpZ4k zodZeaaLkecKi}HzZf5Kp5OO-~sFA6lNQzL&&-6X9s$q*|q zCFiqhOm*rHnx8Y-CLb*;Av^9GgYh~8kKalJ*`r$AMkPBbdcUnqBVWpT>@31~gpzpt zcz1BuSn+3a?QC4;{&CJSeND`1PX&Xvr1wE)Tc0QQrCQ=JTZF??#4}P87rrIj1^;#{ zHMAy?F2(jV&s9$BP1Mo>PJ^`9dAT}*;?Abt?@y$0L>}w%j-s99%;JDLi@>ov2Us777_n#!9`M-+C687QkLb0@ z#3w1Hft~9}8oYTnksS+B!14uexaPVI{~3StHni`Ak==|vG4q$d1~u?}=`VcxBY`IF z`3BR9i9KCDu=!VIv4C(Zc&>XM3NQlblq2V`td zRG)e-dK$1=Mcl1OUnC8js10SVRNo-a{2hvhN$PdAmsC?lm#qKpb=_4u|JZ=6HRKV+ zgzNeRT!7l+UdYDoY40J-DmvAay$E2csY)dQ*zY&Y+U0AVQ@8uszoYu{L0xF?G^Ggv zJ3?%2YrV|eN+thisGj+r|F@wR%s=eBnts>BQK3HEbg~aR4B%_f%Tb6d@Tr*p`hVj{ z`rr31{eSnHev^+&q-}Ga#s`S{4cxLFzA9mAUHm^NCu^7gg|SA!2C0-0Ab?o6dVes; zBQTsp;gF>zH|m^#^5Fpkz17YUEWojwnVt(@l>w9t0N6-8QjjBR5JqQkxdAZ34n4no z^(eANH}8erz_^h~HWsxKUsfFE_;m)&9-y_NU}wmgS8~w=g1YbV**`*fjiZBQlo}#1 zCvr@3ub=lVI9E8(_<}5GTK!MAL5C@frrsg3XDr~);2MIQ0KX<6nm|RHbO4}~4HwXa zJxIktlfO12!N>hvz~$Y*T$~ip2fvn>z_hSb3ps)EisZCZ=1|oHE<}L`;h#kjhl>Lp z-#ldV#DQM*(BIc@`{(r)@4c{gyQDsNVNW<@1rtD{FnZ$o0c5%!2Oq#D8FGyX+ zoVWsNA~rN+CnFxo&~nH!FZU`aJOp2gZRavv{&eHtk4N|gG{*P^sbn_T&jReh#ng-x zRn0Bn53jqcc>q2L>7SRM2FLf#fkhad$X}xf_vGT0>}y3>KfqKtkU=HwK422sqc8*{ zadrV~7CB2tDyU^>hJ!}{(nAa5D`KCM`;~~4UiQG~FwUSrqS#M=fOPuT#5!Eh zd<2M81Rk7*yZ{)<62^w+j~uwN3!{5#+1d3?Kjb4Z*&4i!^tWL|slvlRt;;=)P|#)= zcqDZE2%=H|6*LPW5Rcans-vU{IN9iD(N@oEbg)g? z`!FFKXTJl3d#;JAxB5ncRb~8$e=H#GX+9t^KT8Q6ui5W&dHY6L| zkORh|%>aNM+L5T)u%f+-wt99IYifP(Mffn{*34-QRah`e*s7_s=dfGYie!+<-mv<+ z$RR+^9TS2{GMvp>-DFc@!WENP*JR6iup%cs7DL0ukY<%ZPf=c6K$aAtCp^D(0bfvw zlJ5YvfcMshQtR$}KY>yfMhMWl2Irv^%}Z&38eLmGnCICOLg z{HfxpvoI_Np?LNX4g|teq}CLINro$Mi<$l?4&{1oqjpva>5Noz5%^@iIeDQ}9J91T z4$rc;Iibglm^)ml0#L!W`Q4Mt4poNN_g#7y3bq=@A)pV{+$7oBOFnej+M1l(=Q#$r zn$VG5L@t2XG~;}#@iqlR5QOC}mcmWpP9OAfgeaeg{rUU(k%dbHWdxwvn`BVww~j=P zI`e1vqOJFX_j0Cw+T0TWX}F!J={TNh;`70ufFQQ&t6cIkTFwqIy{;OJK(0MDYwKWv z$0BJd%9W{XqP(?XE=AkJFyyH?3hI<<5V}3dtsq+XXV1;NqUOTi-#(s(IxzU2GA6%fR!dK{A zGe(IJ`1dvqA0rAw62C5L8Cnmx=a=}6Lpqbfm)#QE6+3_?#-7k!E4fx=Ad#rf`;q5z z@xuN{aNf1*jUfvR-L~j8JR=8{25NZsp#g{Wke!AmNF|oHe%Ct|v?8|V_sw&aTlk2U zs$SA01+SwJ9*ssf`hRvIT~cR1ymBppwb2)p03`WkIG$>s?8TuQC-4X)(M&|(Oq-iX zq^$QSP~q<^Eiu~ph}YB7 zFV)+YgX|9DA-Q0MJNx%O0$qT+Pu8V7{@_Yl2!ja)fiN>~*Y69e9J|u*&2JjBHdo|t zHhPsWd=O_K1la^j^cF>OKx;M#9yl37nW=l~t0m4tVh-BWFWg6dtxA^EJByG3o=`rN z6y08X;k&Db*Py}5OBlU14-j12ohA4_kL14=?%s0Xp2R>rxeO+Rg^DOglbSSh$|egF zmDm9hWCKVs@r^!meACFNEG$yfNaZJ$??m#la4T7z*!yE^4(uiZv2Wi2Bf zMC?H2yCsmkcAmP5PAOZRw&ck_&!_Cn4%W6$ZcmV0nQi{_QZ4Re&<>pI?6-G_!>wFQ z>yZ4;DOu_lO!YR+=w#0CElS9qh=h|vMc;$cfr9+TFGJ^cKVsW!D|P-nlPJCo)(eA+_3r`P#{YK1x%X%%gN7 zC3&apUI|uLcjGw4lW_hqBBrL272{5z5WHE}A3)YHaOS>M$L$nPpEJ7ll6;B2f1++qu>*%szpt&s20 za{GLM4Bz`A`7N9Hp&~9ypnD`v9V>9YW?Moe;2x@x?(=O>1^)IJ82kd^D!k8JgFW~o z5DF16%}6b}xQGU2iX)kF{3A`Rq5M74`INdpZvWh0Y>q@d{zhIuTcBdvY4O6uDMU5T z9RSLALJ4qQoXqh_!w9BpcsK23F<@r_Zs=izE}sgrxB~ic(SxO1h1AxpP}&xHO0!44$4zIEl6QW=cduE7!r-#s zDR^fF{?rhf?=0pG`w|yGw?LTzW5~Oa|3*L<g|D}$ktF#o!qw1QBa_*Jxz+S6b=#;&x)g<$N3qjy86vyHR0iZ zP+NX#bxF)Ba3CYvoj?4k`b#nzjR>2LIx{oy8xj?vVPV;xJA&kD88yzexlhvGUT}Em z0$h*K7VsFUb4@1#U4{Ft140sf;O9-6qula?a8}k^2YiOWOCI!~uHey0mJ^#aLs`(~ z{da4F$jOfdl|Pb$_WaM*hLvu$-WK{Wuy2gtgghNB1@Jf2z;rqe-3=1wWyC^XSQY%& z7KdieVB+q(fA#sqP+>5lpc#8*Dq4xlivyG$u6dVCIJ)y|qfRC7e z+Xqx)gfPTLGAqL0`cIIes`eAaCXo??#?0^H#cgL%J+@!qhMlwKB*cd4+!Xxy@6q{GGq_ZuMoF*Zh@wjIM61ceM; z<4sX;D)nfLwxKHZx^-Ft9nr!y_)M=;!wtI(?|?W>8%?{?`fL;`qjs(M{(tLr@LI!Q zUAN`AS5KuJoAh3Sq0xpt2t{J_a(WT&y@6uc81jhM>o;%kC7uHkUEJ?o=b3aJJs*lm55RnDh_Y*r}}TW$55=Ou-to?I&#b zB3x}wZTPF{Fb{W1ZjyfRg;wr<+ z1X3_BZ2*l3l{4rs3~JW>H_EP&!WG^PgxH22VKX!^wQ~IfsKdsgtx-I& zE&W;_`+?Rm;M;iU#|V&-)k(P1)*@Q%$*0u6&xshA&5>ey3rAA6e!XA(3PF!@^putc zD)x2kbiz!d9e8D9T$9gH7?cJjU*8R+U3WJFNR(u-Ga8GCS>A6l*E$JJgHYMa@tpvd zqjAA@t%osHI#!z;iD*cwhKbmcFrue7ecG43%sRc52tCj%CvnNTDDUQn>h>Kyl?n z%QnTQm7S-1Y52-26tJYtx$0K0vC%SlyMOfgNpNm(Sk=Hh~Mb|@&m ze7{*RvaE*ph05}k-PtrHF#Qgf#%X&q>00~V-6$N0p|)7B)<9AspJr_)CiDxq^?)9vv0Isml*%5n(1F(vuxo52I#7UlD zt9vH)war|+TZGSNr>&qkGJaQ#z)tu z_mcAJZu?Th8%UL78A1{v{q!g4X02a>*4bW88aFwr%}}Ni-Ll%2`vsnQXyupZUW-h| zL?+Tk;gAuS-9^(s`qHKLvrx%$x2Wbn-KL^CdltsX`ktY&EdMRS3!_-+XeEXYZ;OEK zusv^#Q;e(OSU)jRl|!rR_Q_XL1zxXZPEozF2ZW{4=MTfvODUp>e;?HY%r9&E6RLOV z*1}D>*#*9#H{FB4&96cv^gcN3NMLI|*;(c3jDBBQ5yaWWe%R8&>jU**01f)^$)mpO zZo4zd~CyL|Tyyjk6NS*NM!SB6x%L7tSX(|APnnntK07lr0lh zLofXAwgZb!N#Dx(F_~N=Ko9<9hp@){FOXPxf&UXTqyDSZChU_JpKRn$@xezXCja-B zWL+$zdCd7EKr+nuEkLjk7E>_d4Mt`Qh{NoIYTXh-O!^>@ClI>kEf0I3NQ;H8TNw>s zu2=%ySlQc0z@*cd%6tlOClcanfcF7mz!UXI_vQvk&*KQoLgHQgT=jGJC-~s^?UFA+ zI&wA+m0pPL-v!}kEcacY6#oJ69Xv6%2}*|_w3u4~PIj*kzWh5#^#A4*_=+}w%@)a} zmqEXi^KA;y#rn7K&+>f5O!y#U%**X}_eGHMzy(AWL1F|O)ZCjOYa?g~w4c~h&*8?< z)S2u-wfzGG1VEU;jzP%bcmYwuqiDl|&tE=!0H_VxATv9tdT2ue3V0~9_8*|x=Cl+; zkUUchC@)FFhUW8ggg?Eq<#&-vDPxdoW^L$ zgrN{5m|Q*dGuhX&`(i^ieEP)8D%-YZ+{uJ@ zu|0T+fCLO+DQNV)ltsgYScQD|BOZ~5nctZdNGl~fI17a!M+tMG* z1?s4}&KQg(RB@s!!nPxo-vDfa25Nhq*#krGn*rZGY~Uov+)QZepnaT(p;mzvru<(i zake=4VXM3TDdw*fk)sPQ@1J-LJFv*D&nS`}&7h4(fFz3Z5J5c#7>WUPg~z^i;tv3j zf!!+fmbK&A8Nm=k$%R}y1);L#bPz~#K*%E#l?GQcJEZ1xDJ+4$h77)pw$M8j$jKcY z0Ik^@l&#!^P-(gfh|0D%L7QarPVX=z;b*Uk04fk`Xtewda)c6Ak(U6;{^&E=4k3^; zzX_ZUmqwz%-xCKm3eBoLqdjL-P4omew8BHp{Icdc$JY3o;yl_@1JS5#h{hlTwu#RH z5xU#T{J0wcFc|dM0bQ}JX*^y`6xCZOW(uw1d1#T_^5>BoT+N!dX*+Y{(0(87_x^M1oMz7)f$-GxsRnA z&1@XOEFip7$i-S0#W|x%1oYH2S|jTKg?x>iMLsRHFNqB@X*zU1*&Nj6N7GtSf>g^4 z5;p~+eBMcqmxqxj^;m&oZns&K>Ck z9!Nlt`KbRmi>~WBs8#nYsjU^~KMmIVUg!PWc2U@yP#`(1W(m6~$U+w%g=ELdlPcw) zo6QCfF{R@d<`beNUZ&YYf!qYGd*=7t!4F8l6)>(sLE;j3ONYzI_;#t4LGlY#e2#;em4)Vel^}B+$ilz3ylrb0q&k-pW<#r3B+3QAl zJ#o0bp-k{ND0dWQ^+b|WiP~P~8&f>3z(5}R;IVY6pZibOhAeHs5lO{olvpo7uvh2L zyo$o!Sd|Fj{aKc2m65_`9ss;xKtkSd7V`5b0ybcy)FO>GB2hB3^k>f`+!BI`KYR6v z05m&gQ@v^GS!9_?K+EYGepq4XYI46lDE0pdJMg=qMA%j|-8~s_U5@Wh``o)Rki-%I(e+Vrb}8zl=+Q(K!^Ei`9WRs#^Qu_IRvUh=rj(;@m4)D1 zIm+Tr6Duw$yqzH!E1a7hd!;i4PhvZrKNrZ0ZbGRcOyVvpxemv% zt3d7>X&VYh!AF`0A)Il=p1^B#YXrqq8Fg?d)rwbf28<n85{;MCZYX$7Mu@Q;uaF!uOu_%1u!0KrwXhRrU#zQ{YV@bxSBf8UNP z6WPi&aht_N@&Cjgf2*bPow$0BrkJsvPoN_x5j?CB^_ z2LEM0>=OyjabChrduiJdnvb#t75f9=udJuEx~htd6NdMIoP(+Zl29dL03P-}9I)f~ zX!cCxqnZWE2Rtf(746CaEF3Y>Y(SRwjK&X6!vD*~T|gkbkcPi~&ipMndB(v^mH5)8 zH7_p-eP4;2ndQjkOsJh>(HsJoKBS>oLb;i8A5KF4B*WtfVN2Wl!-yh)xvypg$`rP( zX90KU{)|SY@Xx@bdAQ7jpoHY*#k1GpCYyQX*Rs0JF9ATbB@&Hy70oQL&fft97#9i> zETJuGZAj#;k~FH;Q%Mg8#>^; zHlIIP^$3xM1tTt~FhL8Qp3fiuhsRo71eBlq^2ZbNkzFO`g! z?9S1u>I(+{ojHnLWXu{PEkW7c{HM3@b;%QG+v{Cz-E{jUTKs4M8^>LndV?t(eq5-e zbDQ%)ZzbXOKV8`p1kd@w%m6oJRd`ziD4?zm1o4jpmADC*)nHB^WX$iLLns^)I5Qn< zs4pL}M`nf|Kq(Dp&=j6#__ggutq7V`ssb>B>O0969ULIf_%#a{JhIlNWcahj>z@2_ z;SEi0F-a~W^`})f7 zlFo7-M@Dr(1*f9$8XS9zXXf~PLLw2S7bhzK6hiT zY6sCHFSv7O<@6=UcdrA3k09;U_1p^qk{^qv<%QdI9M2B!(x(n2q&(ytf0 zdtF^m4Cemi%3FuUJA_}=2zVzxGv#MZowUF6nE1oW_y>H9R_;uax$PueYA)u=6BQA_ ztewNHhxc(`t=<`u9OyEiMYa}q{-E_vJ7xqVEsy$sUtSinG&M7c0Q$ORZUl-VroR*t zG|LH|J156M(83@gf=Ojp12jBM;6|v{mm&SA{h&=9wmoYa`vD=;PEYWg5#$l!-wSp{ ze7^1^#Psj-GW5FYkmm_}?(K+CUXlGV;dvZXi5)*dhm)YgHERyaAtT=yAC>?m9X)(+ z`V79p2Yyuc!{depvlb^lU1$6%yL4KruWO%>k+H)Mjizf5U=RnY6W!mxVZkd~*6she zcSh#hM*d{-AtIT_jHlCbXBKfc&kJr7E5%UcgPBPNB4tP*mun09mW28_w`=cuQC9a> z>F$ByRRf<)fBA8)ar=t7?I`d&5@~tP{#iZZ{}ck%cA>RVz$gS<7@S+Z^c7c(KUSz zQO3~S*~~==6kfTw+*fEwVOGmWOvTglSrSL|#SJ}2VPh0BlBtmUvTiLW8vSB#Ybyl$qUv@>8}}2jW+n5m>qIz+m>#Q&k(;Cc~R_X?&Pt zC~ce>^*W6|MtX?xE3sx>m(1s*a^pR0x1#3_X|H^iL{T1Qcrb)Gf_O^h!n%Q=S)&?M zJlW|9ctV7(%9HD=m*1v$;#f-fEbtPSZ%lLQ9EaOqvQK*SdN41!UL+C7l!tvQ5%D6y zCjLPO7!4Rhw`AdH$zCl9p#p_os~-!zM2{OI?;{mxCh0TwM|cD8222ETvQ?MzPUIA< z$7}7mdyAm;xTM>>XEG|qQ>iRoKj$0;YntcnScy5(_`NaG_#>jzT00LcrzdnsOH0?j zuPh-*3rTO0xm;u>kaOR-AUJcPRJx3aqrp&ft1elC9bKJXCaXiTwZ^~y$& zW>~B5yZW&yX;ZrpnH)ttvKm_ZxEgMF{eu4?kf*1@1f z5m}mP3Z~=1@MDkDmlx!C@MlBwzbci&HyFa zw(QpAfc?0bJAr@HpcV3=MFs0ypa+|^+Dn^Dnbj|qW>xYRQ}WZ7zn_plWh}KqIMl;y zkA|?t_F!I(W6IMfNl-$me6(PEe=D@`sxae9U*7oIk{ce6A>y05v=HfHIYv4y%XUc% zwF^)Ss0T#K>ProYTV6LynbM%A#O{0?8fFeo; zm1Ot?mE&V6>}?*_*_5J}ncXGbS-Del5pbha8No_P(u5*O>K&a@3qntdbhr7&?CP;h z;_0juq~rRLOKWz1DI=jqk2$AxTBH`uhp9B%Rcc?f^|C-Pc5CD&{?HsYd51sHs&2)y z(07&&{av2}I7{hNDT3KXVIoDvfMbswe;BJIl$0H#DG7!#_hu7RVmKWoF`s;-Tu?HB zJw}!yURyAYHSmdn><`Zh6mIJtiwt+}ce1OE&V%LqqghRchLt6z1E1=8wSR=&u-F+) zSafb!>1KcBW*X`Tb5aTg$f4Sdbf?F zwk%@XGS0 zHb9Zi(cRP?sXw1fydD#hbS@=G)jUL@YhCZg5wmS!%atZH^+uJOhM8Cgtf()hH+J%z zc+T=dg8s*@8lqrQYzM1m&h25ozX%Ue5snN6j9kB2P|8&&Vl;CEk`RW=r?81lUr0(_8sb=hiU=vqF?mtCv8|9 zBA&N0-fxa&NT^nFMmt(r01?a_xs{y^RDqoLNa9s}DM9S>+RbxMSdEgJhi)HvZ0Sgd zGOFzyI@h7%A-UyMPpS3$y25)|)6LK_cspYu^ zF}UFTo`{~$OR#V9j|u8Ag{bzLK+w{M$Lz&!DXlHizP#pcZO|6q6bo4)>_OA7xPYO7 z^>g31`QI_{|Hj0YO10ZhQ70)VswBwz0)qPdkw8cN3ur)hRCDsjq8N;_K-dR~q_9`r zZ7<4%*J;70Xe{d|OOhQ{pc^CwcKA1#+DaAh4fvDE-z7cXFJRa)ELkh(&Gs2mzeL0n zckxQ9uI)wv=jZR9IEv-Fg>#Wi_p64;|BCbMrc^~U)wOIh(t)0ZyrTE38N)$)lKCaJ z4Y)$fawbRUM)gp5^16&dQ(NJYX2J-o4TO-fFZ~p-jm#GR>B*9@ZnF-~Zt)jzVjSdK z1^h8)xz-IU6J#UaV?t!rv42v4x99=2*pkQ;yF_OX_52&iBM*B3gp2Wbr3-K_>JnW7m1npqxsH&I*Fu5z zzkpn^HNV92d$TbG+ktW-r~p3P`E)LHJ4(cw$nfH9Md?Q{+(Jntq+5k!bQx;yIN(+l z5Q6`rBKOFpCoLEGnvoNIoheNO)|}Z=UG66~?VYa71g~l#G*Qgm)x_RpCPb;@Pv7J= zS=n!;0QlR32B$OVsEny~=--)_iW|^uk##K)-Vp~vLNem~1t$H0)Uc@q9j{?;p6-&1 z=8OlS6)I=EjRPnxh<3ms!b7IGA?pO-KsyoK$%%rHKSK0c1fUy&K3cDkE~#$_n2h?t zE>^{jB7yoMiD?}$s)Hgxg|&mS8C)TDi~VR><-VVFFy<$y8woadast-w@(qnt0VGu& ziGl2tkumu*E-i=;-R)bDbz@z}oWV#DFj|`I-Hf2L8>*FHus|ag&}0EOz}I_r6Mn+8 z&;&G@5vcYA8tu%%lmL`2eDYGtSJ3Gq5E#jlgA|O;I7>bkn`5oqnC8%jJQ1oU-(h!_RFc8GA65LW9`z&0b>iSo-zKhpX%jpWzc2LY|3%!JK-IjzeZyO1C^-%d#)Ob4LC@N8e<}~c==G{mt5{2fuXjC+b21>l2?{@z8b3e~}56`;Sde>{M z|8SgL?SA_^T-Rs1w)ft;g+RI{mZIOX=JSlt?x2$)blz>;k2cj~PKzu_@4ypV`MeY~ z%pPJs2ycUjxpc)c62{a8-h*qwT4xosZhv*#Vt+3p{tXf-a8J^~*d3u3&jDI3C1md# zBm<4EoBtR8nz?0U0u30mO=R+jlPByZ#sh@2eM3e79Qpp?_b5nP~Vm0G)ae2^$NtF+#Eki>_sCiysRFv?HrOs+}p^o2Ix;sLc4%a@F9!r zsy)Erm-JHXSZPrwAoYI436A}<_c2JjE+FX(D@A91Yf;H;p*1imkYTXlgG6pzooQC7 zefS^y^5(hnmW!5f*I8I6$nJ!fOcx7BxB}RgEWtX++>GA`0zsDhntk_a zB+^0ex{DDt zIJ&5+gwM92o%(%>vQYP4^5$Njq!8gU;`bpe_+u>bF}*Xw{41jza5>-1B^2qdJ%pR( zJh;TRA^Vv6qdXEth!9$rTO)~B3Sm-;{I4Dfk)n-&m)+W3i|BvXAqzD8M?Uz?F5F8& z>-+Gpi;6R^<9LwzRVfw{pNUCG^w@hAv_(`hW<#>E8+kEew^Mf>=ln3@ig^Q15L-x6 z!O5K#`1>*wRA9N;y*YTiX@SFAvI7Yd)CKfiuhU`0u`z7DB_N;f-p)WbZW&YK@?6g6 z2Kzg?OWPRPYHR$rXz4j$+EJ0LsSlg+&r2BYJZG+avVQ@>dI=`RU9KCy=|{jCWn_R&0k!+RefuW4`bI?;7p6ca1N`ZXK&kKQIa9< ze4nHVNA%f9{|h1KcI4tMHA$Y``+Hr5sV_l#W6a3hnD4)1^vRS=k~PB`uG5-xQq4s* z?xOEzLCf_^kLJLGM<%>(5}g4|R(`S@{~h#UL)HFVBMXhD*9a~Oq2DRWI-!3hqxkAy z>mq+Ro`(X%2qWnikw6i`Hk{qJ*}^D~zeq@VXSl!|!Q~tTSYPt|xr+3s3|^<0zHqCT z@X}oc>S-V2sv1Jy4{xdB3r{;zQ@~VnLO6?LO8lx?H`i?HbHlc@8J4mD2~N!+xc%a@ z3D-g=Z7 z4lvM|-p$^xAb6N)tKP#vAK z|35M)C4py`LKV7V+h14~Gdpqqe1UMS?A;1NV03{TUxK)q zliCP4>Jjw4k*^Jni{t@kV+4d>Un}-nyYt5SQ=uDe8x&+KVPkw5fLSvvNd_+MWRxyt zc6_2_s^`xiP#F6^TTXcoMR^y%Q7$r08T_;xE4Y$0JLk-AydVQ^{H~G zCA($e;!pm^Nh2ct4%?RB=g>g(up=#>REqHTZ ziywB$M9Ft=0s5}h&9+dTE-{F>gTg#nmsBIVPjHX%T4Sl6Ch?FxHrCm~kHKGe!HN{n z6D>%_LpL{8BWZ0#K@IP%VGs~EKUmaG7hm@#wkMpuMJf+QNZ99qgD99l;%&RLVtVYJ zzEuOAhZKrU&tC}k-PHL^tf#^iIKg`|&OTd?geH+a&kd%h#*6w3FwOk3`8wpD(Hj3b zllkY$i%8sSHbIz27aj{2kplgU;Jr%bab$sAaWZ}|H@B~JcwXQYeG=U04v5x7rI~5n zwA1I;&%DLEpN)Mh_MJd>v~cV8a3CbJ`k68QOECj8N(QE&Uk@~*z&mWh+P zY)mof+W#4rzedXp=F5uwC2VrSOBdjlEZ6N4gBU~dDCeAwuGri=|KC#b=?uXem9ovb zM8{bY13Hgi??TAT?y3eak|*W0-~gBO*LFIa?n! zYPU?on#A!dLW@s514qti8Smc~yn}x5wlCe|!cGY#$F+~D&OA$Q zk2hdB{ROE?^Zj*gSabLYAB*-d@Yyqz1x7!=k3F)QoyCD}vf^&)h)MBB;C3%vcxVok zkm&8FiD>Gfr5&PMEA^-Fd6jhrl|(>EvZ~F`Qe<-u-1UzdDv}I$G+%ywnWVzxmlm41)eIhqZ zb~QV9@s1?u<{p_SLP)KN3*N<(2IkLxAm-}Fr-4MPt@$Z}xCu!tP0x-@!$x^)J5lIY zf@~X52yJtieLQuEQ}o)P$r{;LYPRI!_Uo?M_95H)J@(cRweZYCmdp9v8eM9R(pS{Pn>@_|3cJc51MxDJ{~?UbLd5IjE&)+1D8o zw0gH|5=#d<|NW+RTVyt^+0GGq|4O8WP^PkeQi5Q$DcdUV&5z^#Z%LeexqG{?R2k0g z(B$^V3$q=6qaEYP9QmF0^nhhMps4Y$A9*T28X zC1Q7-r)oWjo%i5|2$YKpB zEA1Ha>`8`Yv3}1Xm-|57L-%(qxx}7oyj%2~tgEA9A}^Qe*tA=-@JMum&GhXWU?7WwnGNIE( zU!`izZ^e)gO4yX*FD6Y-)u6@sMGL)IT;%>-B_2zfG@}Jw65#aRLLF|)RAw>eSe%$p~5_0zBXYlc`P#L<)W`?9ErKnsQ43K+CI-jiKFrU6_Ov8?5$pz z!RNR2M%@Iil?6GfGI`FQ)U+N+dQCewy=zZYUYDYgtfp{JJ3(<}liDn3v;6V}qZ_3$ zaKyeX`H}XZ0G+PZ;7)hEgG;}fDf`#j{q>ByNv^|CuNQ2sjdfB9m_U(gf?nh)Col2D zHEmwAjd`fuida5RnYE3QHOz6aFWq>`oK?=j{21F>izy!L8mMf-sWE^ zJ%5V6?5z-4e(-{3qKuQSO=M&JYW~rEE0g`^$64Gv4h5XPe2j1r_Y*F(u<37cLom>i z`VJa;j>DzhE@!sGRHHcIONM^FBbi8BC{q)sd4_R3sS;~+o#T>K-62aO0^FoImWgZ2 z&xvfk_S8z2!Jcf(EgUAKT8fd(OoUi?(Q`>Zfv?nrj5R z{(L^GFkxy1m(T0FJEBqoe}ZZ^aL;!eHFSG}?yBmk>)0pw+Roey(CSM%p~Act6#(5< zF*_4lqi{3s`?8Vuj`xyZixTe=Zd`RInxb%5BR`p<(Usyn`o4oI_3pvm(Z^HC;;X6q zS~5(IeF&;CJx9C$$g?W*O-tS69do8sN+uLBIa^&%vA&JqmeEmHo=wT=$1ObOizUHu zPVtrSXdjB3n(`Zg5!a6KBK_$=fR)o*tE_{I{B z#B`o*npZk<5YHdBRekenNUtx=NO^pX=UTC|7%7TuxmD=JtNoU&waS3cb9_5~+N|~w z@=#^&PoWUg2H*k&@9ZQrt=cuQ^1#=;vo5i7M&=B|XJm^-t(j^1diRJMpr1)F$*uLt z>R=A7M5Bk=^RxP@qCOz?I8?D}KILNlpASpseqv{u^QYQLI9V3hsZ)*egkNG!et>>b zy%2PNRo(}j7Vn73zd46&Sn$-XXtqPXV|fI-R)1ZLHz)A+!2!3_28Lb}?4@V7X+FM( z1m$ufTFHD1$L$b0_jDv<=UW{)1Yp>PlTS1o>4$lPp!4I1`=}8!T1`FpvEA7JEDMEi z&~WwY-o~^vYru*3L{1mAGX>3Y!p6qM&86PZ$uvE#k>Uv1hAsZ1neS*8;P3BfEsTKL zcH%8Iy&!>aX7^_i)=E*=(PhUlYRj>S8k6Tbtm_GkOFuf#vG2s{L*7sDfGW65#>f_s zFnPK7!9J&i6f1pfm5Gs#Hpa67_D~ANbWgSvIl~pcowy@p1OpjYKI25FF!s2_6b=_3 zTgcKg#LO!4gyjto!excyBwCMem$X%oW~edl>-KsJrsCA6x^m>S+#0G{gy-+i!CJVM zk(;GJ7)kd^Fg&$$Y;>lWmx_t%sQp8%Jf~Y>f<$@$m#*hw`|3j{0KQzjMRvPFbjw6O+L&do?DiC0 zxZPVhssz372gJkaP(-z&^a(AkT8j5X_BvT>K#UJQIOv&k5ZX)$(^pFiJ1=qCpt!!y zA4w)9x8YD)oA(Q{z?O@1<~}|a#Gh)WYrTa`uaSUB)YP39PoFE?*u=zSqt`Nun5dEx zk+xGkGW_NHZupOXqEIgGIioawUm*%d$I6k>$$R%!RN|;Eycx5d5^{rgkJcu<5ByPh zhGQ_;G;GIdJK(Z`Iy-?saw}|eZ+CbX3ly=?IB_AIf4~rLx7>lv1t+0%P^+lX}kphV}i$XFmYD2qoCufS=AlW z{zVi@ZAQtDjb8I*+%KDK@S0Bv-hk6b@C3HlFnWEaVz`*jqZ6SvkcE#-=gtUUqR(i_4VUh>oR|yEG(r~ z6!&wd&b4Hgd7W7|@)ZqEo-I6(#|i=P804y8rVm+j5)ePm3o5jziFKbUyzt|zsn2^# z?OxqT{BnQ>);W5SQy{}w9y`Lnc^~<)$!M^>%%J^>;^a|&C}~7?lmYC$lRyErN80lZ z6!I|IBDfqP*4Iaa_-(Nv9Gh^Peky&1=DKhg*zbYduzc?YO~o(lv4JnNdW)+#bd}OH zfeV^mcu5gs!y$Y<6PsbMEjNv1JQ5KeyaD}01$s+b1aCrsdjF7*_p1qvFUhl4S>J^T zn}_%~cy|~|nLYqMqKB<6q8uqTGL6;9+rHeDW{(m&Ghx7>$i^zBv+DT*1dbbAIvjIQi(~Q+Gatv z^g+O*=IzQCW)_;`7tcXOFo^PGL)8k(sbg4Ds$}E9WRZoa)UoWD>|dmgy!ZvRo*4`% zIj|#X!wvr2?i+xo0`X-HnQPWDr2yizO+vo+Lpo=&4V(4=en!>j_BjG8d^cR=b{QW~ zbsHP{@a#}*KRH3-xfzeh88kyCWV}y16%GGl0dq-DTzRf#-AfP;y^Y4>CU_c?z=m6K z*uR@5-%34lPW<;fg^*b<5Y^RKg>R%Vn%&q1B4-Gn;*H!BWY7Z>hWA1BB>Esb8Yf>4{`c48s&$l0X8t#C-sH+>r>N!0s>T>A{(cg+<3PX>ygvc1 z)jxd(H_oq%YF~9F_VBggkjYOF?UQS->#xkR@#&+krtgb+>~$DV8Qq%VG&EgRF|sZEcY7%ks}4 zl>&5a%sF#3nTBq{tZ!fq;*Vb@PIwR)34j(Y5O`PVZiNU5epy0}@U&hYa!LfRd zK=M+dQa-N=7c{(uE_?sojsBw03$5{X*aZ>|aFg*iAB`$v+I6&^2;2T?1e0Li>Cnz~ z1>Qd3HZpHrqU&W~`~@KfUMG^i)n+qqbYuQVCJ|DbI_kHN`ns_ah)(x(1|%Ff1gWWn z%V&)?bSYONdGHGaPbc+Bw#)nMX7@xcoefOHxEMaB`%GPFyXyVdlu&xTZC^zwr^jRA zjbv4tUht!cZD5msSOap#1er=1SWm5JB)fUp_;;VZ!Lwa^=lgOD5q=M!KTjTrj&+(z zD(eg3oSxgZX20_*Kt5*puz%`AJ&=9e*)yPqvOl=z1=GGuwh$7+A-KPsZRc#$O3ema z7BzX?@cg6GVw+Drw7@KzG3Hall+LDHG;oc8ae~{j=f^glx2%b!&CJ97fIso4=lM&< z!E{+rtZ=&oJmjcwn}%N+&8sJ_;u)5~0#W)|jh$qeU$F$vq)bSrbqZaFyE}sX+=TXQ zr_%4F?6;|o_SJjUjCoy=!98TQx9Ar|q3ts;ni$Bm!q$zpDZ~KdOB!*$2A}zc6EYX2 zMKk&aj3Cv#gkMg|^w4y#a(~()o7MzOE0J&;(QopPF8`bZK*UeOk=~jnE3WaJQNQPErG{39ZN4yHeB>1CPf#C>Y&w<_R*eiFpork+Y8+C`kom`(kk%^LNHQaqhigZL))55UeM)^h^wWz zsi}89K@}3*_^0s>E;7A7zDQuA?!LQ~Ny8rKDm~wjI~?XI$51PD80Hs#!un*8lHE9> zu$bmX_pg7ZYp$xnko5U=!L9HT^USfpH4aAi{Vog2T|UB1w_K~h{!sTMA|pY2Ja{0p z-KwmyY`61(O72MPr318w{Io!zMnN;WF;RwFsJqXLGzCe0y=MKlW?%dzMOAC2ZXnfm zE604QSJI?4yQ2fr=Uy@IeE`8YQXnixrTqXcQP^}kEr`CBj1bL@>xloNPo-zRi&uPNOd;3;5#r4GwHBQsSc6cAXPRUtZ`k__49N?#y3@ zxbG#u)v_(So^kf=sspI;Qxeo?(%s1PS^Y{oeU6{-QrW)@R%g_Kg}Q~2B{e{17v)xw z{+;GQ=N}j5<}nl=sLQurO-1OfipI&TW5YGE(PAT{)?Cycw&`S8u%(TaQRA-c-+9^Z z;v-XZ^DdvB%hdHu^W}9y<{i`egJ$&%ij_^@e}cI=)U+yMO+CNJ`@ugwOYJ&gZil0~ z50o#Ty0q1T#H76YuFae-Vx5TEJU6e$s3=>1vwVB#+)e2qS*HE)yCwrS1A!L@mLneC z5!FN+(8Q5Tm1sfQ7~hh1Isk>4M5>22je|#D#TAaW{0WZBmMS-oHTaHoB&bZ<42Umf z-t*+S$v-Nt+FXc!REwSN!rzvAZnU)$p_CozGxcA%Y0TF~=tDj(F5=3$&nmSLii3RB%~_@tSUmOOf!&6KO1_3i`?;&wBy2S#Jv zo|j?mp*iuOar(g?%aB5Meh`dp875a(?^))yB0zYMu9e20Gkwa)#9k<=u>&}lPPmwv zepz&*c)iMU#`+`y#pQRzh2$A8OVs_T?8zriClZdT!bHINWns{NCpFsXl!R+Y?+b#&n~0v(c(` z&wWD{4aZ|ARK(~E&L5?1c&9KpYw1PE(K>dORVre3?UHlrN<@vvcw~AEwKeA^j__u{%EcgaVf}%)W6czcglY=o~$9VKz*s zL8b~b{@v-SrWBR>?2ou?@{hMq8zzT*#p-nJGL}T$;~IK*)tR2LQZ@F6{jzm=%%ZbL zW24qFER&nKS-bd#fVz$2_(8UXCl8;2$I5_eDhOItIdzr#Wdm*tVHIjeTzn zp>d{;+lKXm;9r1Pwyx>^6ryWkAK>?d^_P_IWh#HJQ3|Dq;1KxEi z6IRTX8nr2t8T|1m`o&`+?zeg!uybn`*lFMGc zJUYFH^;HVH9{=Y62VU{-0iVTYbAp8*du7u4(8&D*6H(q>{L|#(wf`MV^glso{u|`! zfATH=Bfy9KUx3fWc`E<;^H5m+p8!7dMuKkMWctospnHAUruJFf>4cILDe+o@aut{X zw_`GZ6%MJ@=s89IpjpZ9|Br&r7}leJn=5y}!X?dN<+;K{1JZ%& zXb(E7Z#HN*8zCZapNiOYl6RZo6L+ygSSq!Dkv2Nqv9BWkbT5v-kX8ckLT%&<90whB z*<&NC}FM)F9zfA<@q_LuS4cdF>(e%Hl5T(hewn>S%6754LZ%C z2r&M9UcsNC=zWdsIr$Xrj94#lovyf>bV1PCAm?qwn|3|c|HYYtkq*8UdG^fXnAQDJmqid zEUCLu2u&+W8)@qgMNf(5&3A@r3q*eyUK$7M#eFClJ5oQ<$b>C4wk~1Yv_wr{ z{AE=3{ltsMLE6zWa|$s$r+pMal7JMOyg;b>>L500CE@zs()CCDngI;9CysM`pB!#8 zN1R${p%OzTx83pNtDcF)-5o7=Wd%DoyBtXApe*~gG9+r~_@lgJ$tw_ZGla*;b`QPp5m+F$v$z~fWztBiLg zUpg|I+THTZ=h@6!Iu7Qdptuhn>NiWJIHevv8};l#!VSQYtc%(K-{@y&fEl%|vQ zlJPC>`qlS>&(V9deC?|=V2^3~__z(LdsXHK)QpAxM=`nVSo@AvSRT{K)zF49*K=}j zCPFPRvJCn5kq6sEg8A1-0Rj-b3I$Q#5)P)+pxZsO%CHuKk(CV=gS*cK0{Le4UHnDW zXKfbEC(ugGoyq?PDf9hsn*aR3`lL-_c;MP5X0X04*eIzD2Fy-#6G!?Bpb!6U4VO+F0qq$5u-j_9q2K|U^9H~T9#UG?sF?1N3c z)9~nr#`iA-=qMAtFdhMcKarzn&zE*$4C7fGqF$C8q)Tlj`aU8}Y}z15*S;~sx$n>I z@q0xDTf8diVMHpdzUeTnLiLU*9MQxWLr0?E2wA6W{kO+u0|IgFeX(g*Xb9`e1iS?B zc!ikbB%n?+{mfyE()-oV_7ZD>_}n74m#;qH`uIQ??~$g`zE$rXkuJ8SGK2M{GM_`Y zf~1hB-7-g@r?&boP6j;|wlVXY(Z;HJ73R(_mz!Q39O9E({vt1iAxrx&$c2l7S?*)T zxs%=iqB^F36YX5S53+d)-dq`RAXhKt^zJ!iPGYbvCW@cIv6Znw-ak*G4MMznlD$wo z3rxUaW{DdBF6AfvnyLEvbveYZd%KIO@NaBJu<5@i)P`pH44iK%J(R2g9&G|1{wC*- zR1B?|0eHjKrjIkkwfn`Q8T1=AX!Y%U3TzR|G4cyKiZar~JJx)u1|ZZ9%qFb!2NwoV z^*W&G^;!0e?bABn4fbL8C2Xy*Vq8xTzQxhwaNPR_4s0DP|L6R>^MeRVLMd*sXrPCZ z{XujJlfQtr6wqJb`6KVC!3HucyD#N1IrokbJs69E_%%DD2PBkXT;`wZ{{?t;4iK(f zC4yMGk9GT=)X=!Yxef`njxWDe;#zoRLfv}(1<0q6VtiLLT6RS_N{Zi+#Ne*=GU5)v z+3phsz@Q_B$_b7~5m;XyxHb#AoBXY%blE$lG)_H&y@HfTZB-5RCx>f_)DxoL8adYX zu_Cn6uHaL`ZhrNy_(0XfQ)^crJfGcmXxWyN8*&#cJqp_7wzCiL0_T{h_bTcqPVlpO z*5C{*)T;f?1D*6GCxP*E@@}^u+~og@p9F0g@I}xU0mvCDeevU4f1xp8cE%>=r{Pc3)NdTxV`sC?0bE?{Amqt@Xhb(&zqaI zbBk?I`fo=oXZN@6QzH+NN<0N7POEvmK0MU@2x%39BW*s`ltvtQ65hy^&lKVSFm*2b%P6s^#Ekr)V` zU%o>>uNo@TLFq+SxN#U@97>whW~f^|zpy^@;EX-ijc;7uZLPO%$$Z3wD`Tgkyid=2 zs5VAMYk(WJ!mj!8mtjLRAI-->L?`nFIrdUI@-d}tWb_PE4LLs@vtGZ!3FJScc44V? z9)aU}2+2N~1ha+1a5rB9P#oc*99-v-2jMtOU883$E!3W(8s}FyiV(@%Z&im5nayzQ?MV3IEwzb!M zJ@X|f%)E0kinxLI^$E&Rc2IdeDpWdmhGYJ7RkIjgmj<>hP<1Y${y-Alrjp}zIm^y- z7SBK6{WH(=@_6HoYe8(1>|yjJ_4k+E_kT2qZ?B}`nbR0>&2vc!PdJ(CnPOFMTp;H0 z)l}@5|--B84GkW|P{pGURd zXyvjbVX#$nN-pZXJEOKXNp+*vqGT7o+h6x>>#W~$n4cEMag=(LfBW}`4NF7~ z!_P}v^}oBj&aWFS6!u_Yi`FAkE|J8c1htg9+=!_19HOdczWnIt%6gzYY({Q zJxhH0%!#RK?ChL93oSs7(ewFQ&9Spd*ETidupj>Qkt94ncO4*g$#9$X%|=JF)_y?I zHi(n6J1%xmqKLWjZ+?KkFEnfuUFJP?972S8GmBiP-XzyHe*w+>>tWsk|n8=`A-Rg9|Or)dD zJpN}z|FRr7-Y$Fh%ow9@o#Og#63_c`cu#%VsK>xL$62nMPGC76`ffg8t#+p(g*g)4 zNUatK$+O<)o;?y>x}T|F{WYV}P@{N&-Rb_qr?~t82VS0WmWz5K=y&49#3zzI(Bt>W zViomEy`|Ur-45MyS{qWoxuYPHr7v{(wSOHprHcTwF~%?Mg~1xAc1K;RbcQ=P)G#Ep z@6z!@>RIH`Q)H$=VSa}y(?ZLN;eUin!vlA{$mY$PhjN6oh`iBYAW=qnc_a~=^Bwiy zEVXU122V8aL!|-r2lf~ub1L^}T;pyHYBzjeXNYvFJF6-~vL-n$e4~MJ>rl{Ub40sh80FB4H&Z_{yF>9iEU~v)^=! zhWd;A1j#!UpePKZ||*@G42M-%*VRR?51-!TbWnfc}+soKB@n?>~#JXI(xCR8+Lu7 zj?sg2M+Dadiids3H)xX0S&8b9O4oQz7zosSIk+^M0irMCk^S_r)L?R`W%+2&rQEvs zXmI^4fD_Mr>LC0dA#8~F1Ff4GWC+;<0~QBdhqU9BxvrD6A*7;)5q9jBG$9%&6t#Ir zbZXDoI{@@+0k6|J;{a)EF51#MBm+}ZRAMf%YS@VVJb6BN_l?hdeE7s9?An`2DTI`I z$MqjzIPqHBgBbxC#OmLk;3aftyXIrF~O|M(J)wxZG@Y@cIJcDL@7?nH|-2i)zDrKMXi-n{O)~6(#`G(t@ zt39pFpKk|$o}9dV3s^uSFd6%L_R*he2IZsIvO)AAtNsFFd?fNYxSP*8+w}9&NpCla zYG}d8hfK2o&O-#5gP7YgI7~|fFhtl#iFxIJV zDjHuhBFUkJdhu=W?0`GRCTL7-0ib0=>{&H@qy(EILIhNssLU^D=-GmFvMp|TE+MT5 zvMlT1>@Y&Tmkpj~^Y?>l4FjOohH`eCE_y)glJmir<@KVNLAfE_w|_F&>YIJ25|9a^F+ zG&8R;vB|t?nHS;H(#6);rU)oD_<3)QR^xdjRQ*jzfN;qS?Tk`hQGE-Lq^`ba>_ZzsSmM|-M ze{P4|ZTiH6FbvYx^@BRqLwHSN55y*GzUD#K(gFvQ4d4t-h_Rba_&{2l-v1S^~6bLcVg3LHP#b66Sh_J(}LPH)bOnoG7#ZXTk=;W zswMpt_<`tIJjcekV}J1_B{ww3HR{nErX5rkHa+!p(_-{9N|Knrq<{Z((&`w) z0V0n&xAa2 z>b}rI>b8O>sFy^qEnZ@KIhmo879qQj7C>K$q~dJ`7Ktu`J#ln}gLe^Z_0pheFvV-@ zmv55~AOvVyk|v`CYlrQo6L;*XclHN*^Nv4l+DBJ1AZP_Kh#XjV@bqj7{n)5WO;zAK zW#43T@WqpW9oh(Ur1zv$jy($X74wB!O5wXg=TV)oeV#0K#>+P3r`sR6TDNPqBUQhw zQUpguKX>)kUVKu14QZ!8P}d4m)XX06xoB?=8|nP-(+_)zX?k|LDukg z06V?`vMKhAryObAy+177c&WL`t;&pijtxAE=U=@}Kd;V=(Y2kpoKma`c9A!89rMe1 z?%3;lmmck}gU~T}`0{hra}PQ-?Q2{*_&+$*pWR-<<58f*<2U`6=o(rghZFjD{-iYx zgK0a}Ljw#YlbTM?G+4(p%|Mf{^ktv*Gpj{Go}wjbNAmhpXH%XY82L8-6E^|`Il;lB zUa%o`Q`1GY(~GIapMN$i@sZ#O z_;aSX#L4c8P^U$-sy$Uv*;A%7xRm~us$rHeSfVk!nS-Ayp46$*;9&Tr-++5Fdz}Me zBn$WN5~ZpNUmI`iud`o9qgw6OY-5yGll04)nTDS1K;xavZRH&wQB-o}D>Y60y#2tB zF7%TcJh(O&!)ojzPH^2*oro$rcYM?L{K1L(qKTi+Yj*N_{nhO~>N4hSw@2}4Nt$jy zb&M`dWyYJ&n-15aF+?*#VokZUTm9L|wVcA-b=vkZlO{oY`blQg<*xFB?ZeF(8`J$F z8<%K+78+L%4R2gmFSCR()vv^@xins40EVx;oHJ{WPy-4KN@5e(t-a*Aj8z{!*esfI z&M@Y#Zg3nFZ~fy46fAVrVmC5B8S1{OAXa>uJ2UyF*5Ino*0epa?J18-i@Rud(Hqxk zs3cArF``x|rUf)EtsjhbnM;bOreBPT!ua@!`4e7sPW4yJna2ia9vSV0wew-y(a^a2 zv5ZCS9IIj4MZa}>d%Ff_mZ26?E`@`7*`Ql*O4<6H)$GyP84OV<<#5{ zu&QaS3YUv08wiaq?3QWqpkg-+5csN2zcQJI|zqRw`=nq*M0vwl8BA z28Ep!LJYS=2@S61>g;}!cBpdvBcA={)q|(mHR+-@kO*)VNpWoA5wmK|5^mWuBrj6E z%5RzC^W*gxA|m6PuOhIX2kxjd`CM0oFx>g-0ckHYO8qHwSV|+@YXwIl3e1Bjj z?!@~%zEU~zJIkCey93&1EI}&e?GJs~5Ak;*6Ij|oO7Q!geSbu?l;V9rKUhzQ(z*JG z&c($q^hW<;{d1=cSPcc9M(LIf>AWm%hNAEkBDjCO*!RBxtSJ8hk+>H5;i()*6MdwlSivTNYghOUtE_AW~QGu&ABt?$5 z_{ELn(T(XAUC4h5kWCZK?Yvx~+MF2u@Bv}L;)I5^ZB8%2*6O`PIDmxaAEdNa@Fwcg zi|J_DEr^Z)GK&`QDfc>az&=NaTh_iH$Tv{6ET9&xb{J>@?m)*sVh6tVALU+Y0o1TV zFnTc|Jc@GAqizDG_fLTX>!L~F$NSc5orq!2~?Sr|@DG(STqne7kv zqSQP`iZ?DqV6{~7;Y(#ID!5a`*eKV6aUAFo!lfdBx?R{@BVKvID|;|l`-XF%71D-) zX1nlb1k8e?IllMICZL+G$Y&0o>4iZo3*>q$8jrcTN>S42tDt2tuJ6Hjr^I(WYcnx6 zCK~P$3G$1{Tq6>*#>b1eRzcWggN{B2j+fr-ovNsHF6dee*p{2$CGTrmmPj6Dd*422 zBJ{VT9)x!c`>s;oHWG2S4Jw|SKxPcibrdjfu07BQj>iQ043-oOvXl1VE;a@71}yo= z%2&t+T}0CmlpcGrJav=q?~&$==l;ARpG#jrfOKq}wLk<9Vu37G1$7x;B+gQd3&e#S#CKKLa6oi_b{V+ey^qT(usd{|v8qNNW(K@*vDB&DztF5G zxxT%g@Ok|noDI4Y`1 zvxGw3b!uv;r4G^0e4emPKL)iX;W=qT&^wH`dnv5>cpyjBT@ox|?oGCe)pmL0a__(N z62Mq9I6hOf9C2jH!(tXzoWWx#4F|gfDuk&C1S=Uqh?fJ{tdhtHlY(aj?)4#+Rq_Z#Gs%aG18`3(V0+-ZL!nU`27TuZ?X9-5;cBoYZdmpTJ4 z2Fcug1Cc(+N2Hqt`z1x_%y|!_d~R-XuRG|qkwH>5aL7{^61iTlY?%PW?u05r9p8c* zeBIzaqTyfb+o8Ne4jDT=~Bst|;8J13b`IQ+M)Pl2(3R?LC~-1tnVm zI7C>x)d_wSrqZ?Xp4(@EJ{NFu6US(7jxm;y0qq2^^9^2~DHpS{QGxAUd~$TA#Ciax z!{V^*I^EXm2wec_avRYSYsZqaUvf2Bn}-ARlhq#S%NySnHQ3HDs@Q#Tae4V2b9Qe8 zy1K68cn!3>Us|R$-zib=NKIXlmuK!U3P!J&UhnRUSCY#CKiz3?5BY}PxXTq5Ak%HZ z3|hU8c=OqEDJbRL3Y*yOwpw;)iIq+INsB1+*fD^_XnaGP$V@16m0Zw{PODHBRO z{_y89dA6#(sJ(=I);wj2CntfAZuB}q3I6PHnMs(3;5L_zs%i!}l2$ZDcEnno8A0$% zu_bKs0yk@-Lvix9LLy`f(UhIBITr1921#`=Fni?o0~(kOtnX%EU&1abSs%>kp6}im)5ZPJ3R+lth>au_OvzHKknuX51)(3w3uNmi5vncAPIMqC*bvEE=6SfL`XW6u03{H zdCzg3+~N06511Zc-t0icuF=#O1YsnY;Ve$lTzqt`@Edi$JC^24&`41g(q48r)ORQJ zlXQD+t3F!RDvsh+e{@Zz`q@$&b++Ch>X0EkP_A}YWONh=mtv<~wMh{^LR}%O!I}CK z%ubcQd^@1RU{_?b;vJ1ay2c{)3uYOtsIw3dTdu*9FVe%He#zpI7 zeJa^l#pnY$>-n8Ji|4p0Dyao}KEgG2mON)ouoxV4A8+mW>yQEbbh!V_=BwT(Tl zOCv?|E$z2r7BZD&nS%tlV)|BYO~u~Hfj+wF#P)yLo32}hBZW7KGviW9cQ(Zf zXlX}LcicK>rI+JGQcFEBiNe(Y!vV?-9;9jQO9~r=%_Bcpu`O9ml_!YfeSP=Cd*8SW z1x|BE6MrTa%c{v;u%o)KyinA&M*2eY!5|_j7I~58YR0^jQme{GySl%h_^rRJpgpkK z-DI6c(O7Q`je5Hm0gMTr>cuEl9e%^H?jWuzCIKPoD%1-vT~K2bsHpRVpMQ#UmyMnn zT1beNBG&PRl4KHx-s=-x5g|iR;TQVvVr)<0VS6~wxmRIB z)p5rjF09^>iep0?{saOM=71~oYftRjLXgmuX7#r8M!RvLq$lVd^wTGCU9`bLr=OR^ z|x_tRXdadf*vl?@fc+I(-lVQ3k+%fXwvo_XSF6Z(dJx(!gK#a-< zH1pb?7>QeTXqLs(ck&Eb%_=Z_guFMONfE36i*X>iNuwkskcHAwYIm^73vOfl;L8U3oPxOsc+fOyN5bwDDHuSXpnqB*uWHUFh+Ix$mjQ)~_fY@)#nZZ#v ziM>kQC8S|G5mmFB!kTb)mXT z!u-brYcA;}Ess4cM&I8seSKB76T-dm9B0INQgKW;pIe z2kPW3X}W-R7wXHEyoW?&Wd0+ep%6gK`I8px#`JgU6LEB29$rGH66?cW`Dp<5_P)1{ ziB#-A#I>ugfekWUt0({Mj^f^WIHQPMZ6UbbJ~wbs@NW>GnZ$8I+EWR%WMbvdj%_|-zO zGOK0m6uD~&7gL0@{=mnrkzXI5P-dtme}NVgo#Oa7Vf}7As1f+Tb}Q@g{(itl>8{nV zS6VTJxxy{LjclP9%mn=-H{Q;AwhBworPwb46=p=H%IJ@R=$P5Ne}5|^(aTD9vp^pK zkN=q<7Y%Pbhjo;V5!$VQf7vB>NB^hL3wcBT|5~j7Lr_WQ=Q$3_>%^`%e!QW(g;{dq zi@!hI9}vGK%}$X4@&_z{_2=JIRR87)|6+#S*jV6Vy$$;qMs^mrI!ctNZfzv!u6GhG zbqlG1@QAX|zH6fy7(!P!2JsLI&sj|bu~vrfP7K|u{*turkhCA4#wSNq*yLwk*ylVD zjN7J?L^c6=f>?sIqU=EqTNQ}|i4;5%I5zpzTn8IP-g^zV=hqoTdVE}os*#}-E>?z# z_M?{+C^Duy@36EIohMT?8SR_agP^qMp^?!Z24H&EPodmY^Rrpk0}kC+%wCs9F)6{dXsO7%6}*lczJ>Jk$VbV7 zmLbCRH{`ea53=|+pFk%rf@X9QEYpm1U~5E!n9{w4lw1FpR27zOJQnD@J_>OQ<`9`- zy=K703T19ycjl%;kYS@b0?Ed?$q2a!@oi0)h^a-vFp)s2!fM>o+zLD&4fwH)Z5{H^w{Lj z%DJ$x?uK!<$l54;@3}}q`R9PNazthISycPsZu3*|%763%g1dpb*&hXGSQv_!4%mc; zQi17-_wHwXr&p51KAnWMNRY89CVeStr9rl`&cR5?7V~{v+R%e-aDK^pvA{lpfmeSY z>tXeA5dO6Q{TK!?3FIofcp@q3_v&~xnB_bnBw&Ea_ibBd@~Lq+Y=>vUA4EZN+vRUj zUBB+#*}oje1u`-O4&U#+gTWqr%V0Tf@8F#(NQA8~v4b>_P_^^O3MhgFt?-$MaDS8Z^K1FRV;lXt|qu# zrg@be`1>2P2kRWW8&Y1kcfEI^?AAxOG?m%i*k_I+8-rdJy(3O_7_1KsOXKSV z@;W?-y0XxW1W8~8=ldTGtD18$`!d}0TR-E27$L%LA35wo=!R2Jwfd%6*C!c?TQ_Et z2n(u+p+{fn-v{?nE+T`6O+gj&w9;ATWvg3w9Kz=T zTo4(M{lAb43gucfbSH)4+|XqH{YiZe<+~hoH{6e|dl!)R>9rrK1O;Xn(0HN>AaIyl z&Ak5A=bqFkd62=>!wA>PAxdXF2(}=MDSCi!S2df$@9#ZgZktlR z7~VqmJMVvGpQFh1{*BV{Q{4-U+-`?4 zqFf)&jd#E%tjOgAD!eVq=hw=-)9SQ|N`)^D#^lGDZs;v&BGPeu05&)AO93}LLN5y{8M-5@AP+u)sS zm%zl?l$mLWUvluad(Gu#KLq|6%x#I&caARQtCdSPt8nUrTkE3Dub-x&%uR zn(;i1#R|q8J>!-=V18ERDGfdvxc&MMtf9PxYLuiRlJ|8K!zY}09Ef%=<>PX$Z$jGX z(S>Qak&J>EbQxMWrnqoixoC9@=W0IZ3+`YHZ!5;EDkC5XSvVEjsEdV%kU3b{ZUX0L zXJG!Bl1p`gyRm$mrdQ|2k{B}ApWhuk(Sft&Zk3@1)5Xtl-|$0xi#VSe{prRvUMJcL z-Of$n0P4JKckeX@XY{-?C|8qDFuaRQ%IEC&thU_xPhgEKoB-^G-_8Kq9nqd1&&4`{ zeU#Tt@#!ggWBm_Y!ELQMwu6BkP?}5~B(@vRC;toLxD7(7(6Z`}F0Sh|DUIW0|Ab;( ze5t4Q@hfxEaTY+bsAlH`^k^zG&T4FhaeuVz!AVsWf``?o<*ZLAy_XRX;d^Fozag;>Nqr zzWKtlnN{>%%)Yv{Nm7&|*T1}iIb!~L5k8GCfil&P)kH)tnz))1K{(Q)JZz2&d zumAQ{H!+qd0`Y(wq zg@aBF=j3DN7+okaliZKY_=5(8x%3(CYpw&;B^`Vt7baSzh~A7@o3T8Weu!9VZf}dO zA6$0f0WTWIn@0~`B`UgT4PScF?6l&~d6zl#8fr(_BMjMvSZ`e+Y9aTn$B0qsXWPtf zrF&U|zTO(-muXR(bxDljl0=tcze>;J%yH^Jr4^H?X{{8%*`)h;(tvuB z?zr<_BQdT;T5qwdjla&hU0g+exZ?UE8S1B`IlJi;jexBA1sE6qp@VPgg3Dv*3fpMc z#~AD@w?plhxOQ8+?fdjqOuH0gHR?SMSEhG-<00-t%hRbVKVNN(sJEtfQp;IYIpq`R z%#hH=p8th?v$X&g?D zj5n>K-}N_*^f=Gjywj@6g77c(#2Athof~e^bH)d9h)2pN?Wu%^uH}S2%64l2(b=o_ z#5I2F{48JdQVX5KR+A~W5>t_j$d@t!fg34qc=l~`~TE-<$+M=e}5=# zk+elp%291OqD^eHBq2H!W>U_!2;*2sxyRKrimvHWDk-6vkt2-zYRj^<6uHUKv66(% z6%D`FXSC0=`<#D0{!7J|neXTOex2_wVuWF6v;i;8%qrw+$RWwQ(Y1`Y*POa2>2$8y&G zV+$Uxub)>dFGGu`^9{vYwQ+L4oH#R4>c*%%qc0T)C#lcY7jSQHhe9s+u^o3X@tQ=c zitGYi>lJakQN0+Ys|E&XXrQo$rB(P&JlxH?0o+Uj<1}YBW4_GB$9r5Btjy0k^iWuO z*flZ7AZ^i_owL;v4-LSt9&=xF`H5#VA!iE<$`*(x z(k{w_)a1j1ecy2t>zAFQ?`fJi9nINL|Czhq`jL;JNB@L%=MiSHOhjZoWSaulHo@KD zI6LmJX0$Lx(a^G-cI9BsVPwx?;c)Kd+e|IJrD41X1;5t@+^WTS&J)oyYcf|>y z2kS@Rg)Uhvg(kDoD#1jC=gv}r_k()nKjw7bvyudm(m#|LIKB&Ks{x6&`X0%SCnVPI6! zGvOL`be$k!B;PR9xSQ&vNRbZ=9N>jErLLJl=t^0C@m z#RZAo4;Z)n6ykm`kmmNl_!a38CEBCPzT4q9 z!b4vkZz@=5KJ1%~Zn&|M#-@&Eb_ShW84|-Kb5jPclsex6(rLl`+pD~igv9WS*6uIv z2zV`?M|NryCIs?B-a9Yp#$oXU^(yy@Q)Vf=QbVW3)C zmDcqIKawh!FcCXZ-rO^<$6(HG1vu&d z(9R%UEkM7bWU~AD3PI~TZHwb+tbU?sY1-* z(mOfAw1_O_c_mGZx+GKQFH>s_Bi`VtPDg`r9wyF>3vK&)l&%T8oe#Z*1@~Q{HNydo zKJ$-53zZ)4V<>-`YCQgcK0QcLbjEY4Zbiv)uQVLIiM*}@h= znH>_6qH9II9^NKV`rlt`HC)^_B~vUxQ{!COym|bEhxZt#w^VeoE{p?Ns3oXIrl2=n z)C zU&1XFKQgASAo^e=`;~}QB10*2LCSvEV{D2NM0mO?Y_oU88?)enX#p0UCDh-t&+7wY zgFH~3pU3moJoZ^#^dpf)LN1p)L8Wx{ytVzxxUwFD@>}L(r;s45mC^9rrs;X=CY=|0 z!{g(laZ5!*sA);8ZT-LLd_=fja58qgO7fN@8kA*! zo?25eX6(_-4W*T9qvgm-yjSGlP`s6KtVYCu>EVu5i!QFW(aQUn%w_RI16WIEj(1AZ zLS9NtW8SCP5-!?S_W5rP79QicW$#bEXw{IkWEXROp-VMSL&S`Gxn5iOam;z{bH9)6 zGCsB+ixsw84g20XE;*vn zZQk~Y7(}r7BeHEOYPn}-lE8NdfGcW#>UOT9h&p{w{cSPkc2lE=x90e*v)$*G-MBHN zE8-i2T=S|y1U~Y+l|q$c>+MrV#_J6@-4Xz_Swt$vY`Cb|*z%|pl`db2OX^Rtbvtz? z?_5F()s1yVO*Db9SS+R7!FzzTo>|$AM)mTt47m}$-qnGG(jP=qa^|G8a(JW8Ud^fK zf{wa3C;MGMq58)|5!0hT9tq zuG;!UlLk+52UBIb_ZK8ZY}sBgdKPSW0J8HQZHFepO0)|i8K*V*-6?%a{49b zq`uWwYKvcE>E3P}NHN)l-7R^7!29kqHb0Z$Wudru3&NMg`jdYB8)uRwO0_G>g|$!Z zVZY?8b<_{FcPm{RJh(m;fL+={8pMLtFpUiEmopyc{7Fk@ zM|R*T(R;ts_Ywc4*;frl<}qAMPK(!?<>274fuHY@rv}sytNx@gOA8SH_i@N81?`qE z0abU~ZEsW90R5~P{ouur^W?=sFQi4A8}#1xWg*t*)zjfy6KOoAYMy8qbE^#};;U9( ziRNd@%@QnWE^Ks7i;t`CuQ31xcq&ogrS2vTv`QzxmV8nuzeWA$4&rd?X<8vgex#&n z(aih9A|CR8VVDHsJ0KLpj|~h?Puuq)lROV4i{z3xX2`2cA%P98{dIZ|^5j6BlD#j4 z!;e|Tu{W3x@PeK-1ZT+oHTrP~6mn3f&ZexEU`BTYr~mukm`X)M1VzDeObaZ6s~9>I zmYP%b^#*^Z#FI1E$>R1(ynHDnTL4uUlBf5dFKG)>i!PSG2-W>h2)uJEKw_br)X2)lMHIF z_x`9ko@h3pVzcy&6ROq?ll^hT;_K`kyZOd|CH;bRjc#(yD(!QZsFOcl<=^Z-viQ^H z4wbs5Fkjct?SW-oe8sya>!+)e8+`XZ9gs3DaOhCq7*#*mX=|2c4k;{sCnKsE0HWkO2g`P!7px)!myVF9l6M zp16rgw*k;gIF$^HnWU8yb5t1BMfqLC)cj%ph&d=)&}XM>P-23U*9fW<`+r zLCr%9jP2@^7_E{?Av7_xfi4@k4~^@Bo+gF!9K~xNa2SzcGZ-~*;}| zB*IA+4x1z_38(Iq+5rmnER<@Kx2RU`{>4zqzBr$FB0+vj?kwBn(q&-yjQCovy{jeJPm>3q zzG3-ws8bweO+SY|z<_VXq+*AO$1_}57TmL)gg?>?r&tK%uA09mO=v9r{zvJc9HPn;j7WRc5UECW)1Y@02X^HWI<^n@sCSdpO8m!0o;K%}#7YjJWmKtS(r zRMo*R!N9X=1W$$r2I-Gl4%0BSq2C#Y$C2REpov$7e<^l2H8ppi%|+{*IgPboUyon} zjVYIzWl}vLjYnLX+i{%JM-T1c5mp;a`nMN+=dg4-Rp5W4Lt+q{f5iN);=p1PC7i=v z=hDljg8YTTH9kXbBTQypIMGEI`{q&Rndj95CxSz$x(%ivJix`kno6yA6UnxK1iJtVN+H_cZE}s$s)t%k`i9b2K1RldsR1`4{7gJ>8;J)iDy^pwvvz}FjX${&J%Et&6w{!+ie<_f zqOl`M?Mdzuh>KVq0O7BWt$IOE@aX!j2j#Ijm}y!_B{!hhD8|=TRJ(Y9q9F$ng=IWb zub*T|&NGr3*MeM6Qq?3o0cYFK=k+GoM2hoV&Ran?;-E)fg*Z3FR**VL7N5ju8sXw5 z;GRU^A!)w0jy*w&MfNA}lzNJW6w)hUAJENYOgb;{e`%Mp z44j=i1o9Nf1A)`G6T^Vr>0`JBQOmmDwI4+rvFU%BAN~E>Pw=pkF5RL^EXuU>OyI^` zCXNK`Tz3Y~&jVH}JT!={KRT&BFlifO5n(I?ioF(UQ>Ay0zN>wGe-xIIngw4k#_6|< z6|^a(X3G%=Yz}}ycx5&QI3>p-f%uFqAf!KxWZKgs2O-w^j+LNo!|#2)l2yckyT;;H z%yC#W;CXLDCeO%|ly#A;^9KSiP+45gZ$s&&mFYS(;~bkL8=Iic(ba4}G-Y%i)V&Au z2==SIuuXnN>Nxywk$D+z3>KJh(W-jp@=T9%pjHGqfipE|zNP1Ma-Mxn~P~m*- z@eBh{rd&}fGtp{@o$D+TOzZ{lSyb`c@Dh~s3rYC@rCO^MbPc;A-;m1TU5}h#o|Vdy zV_tzzVrwcN)nt#cf`Ys@HA+=Q2==xcrB!i_skEPPrjg216$jkq>1o>Oc<>cYI>Dye zNYcBLcM}ss5{|&FOBP?e(c;<6LPP#Zfq6y#M6GocS9Ms`u5i4b_I~q=?~>?Jw2MNj(?IEyv9Tm)$`Z_!`lo!2o)>w)KX8 zkO_HmQ&KX71kYe`r&_&wt(WK~Y6CCUM%<)1Fn=~wW!rB*M z;(pL%4@f!)R;4(WFYWl<6fL*2J9sqAO5NI&7S`+!@hVg2NtR-pxYUX zB#18ONyMK>*;bkSWJi1@q|hU+13Jw!*?6daTYpwHLSy37vhY|-34GmxB!&_A}w1>oKXb&@UW41;_mMF!S5G1tmJ7} zq@*9+@9}>!VPpDa;)`F}fJ@Y2UrNj6I+eTBl*CAu$Zol0Ml1VYtAJmR75Y8E?E3Oz0mf%Tx|!_0SUP9l z5XjYh`Fq6Zt`(CmX;o6Ht+J?kmbKDuj=%q9JDy2#-6l?=eLbWWanQhg_8T0^_ss7Z zqH@vCA-V*_?n}@M$A3M{!4FBb>2I#!sVkjiMqw925_dN%0|HBUJcEL!8BMo-n6%`a z4SVIv2W&!pl7D*aoJVRLmTHTH-FApSO`8M{mzj1SwG&Eo82?N=&Q7$)5jm(eP0&SN zEcvb+w%kR$u^!8wwD=I6Z4fh5Lj+D4@??7?Lt5J;kYu&xV%DbQWjD1;K*gXi+q~Cd zlgXT2P4e@;@q{-P(0NaIGPnG^MWS6BI3DWkRG;frQ)yaHGmrHs={9hfMA`2H8d%;Y z%`cM4L^D0~)rJs}lU5r@@V+_jF1tFdgQrjx*YD() z4ol(&ZVn^{lW6I42_}Z1>+s4&(r>ZQ1p?a*x5Mwse$K4tjT`WR77knuNaf)vkrZmqNZC~y^kQ_=8YX`+mJ*nr=B#1wk?6&R`2Tycp{ytY|GgZ8@ zU$aC2&O#~H^9h=2?BCtTH^+yn>^yH+BP;d-LQb1J?~oVWXU|U+G)e;U)ZJ-)E>~8v z;tg>ulbqgrfZ}NryO>uqPbp*`d)!sdS;#hLceN2um@ML6>^3JC&8spT{2P=sF9+pI zW3*&4Qd)3&ZQ$^?$7cq%AV~^6rh&m>XKp+&mnGM1BrYaKajfIlgzdPR&DN7y6z1KjV;JaXDYC zJFNtgb!|H|9(S!meeaO&CKDQ39Q~k11C4yHvU;mOdfnZe40S?4ElhjdjmmKuT*6a* zLoNz<)^(P3L&_4cr$r8Xfkg%K|^`&yvI$e41H>idx=W9&5zKOu?bz zSL-pM7x*;7yn_y{56ReXZV`tX*-DYezG2ituWq5;H16v2q#5tSL&o;NBG5RHSpD{F z6{#eCWme@z!EdX5-0aYT-p0HE;%Q8ji zJoUrL#P#owoO&w>Fcmcx0fyX9ascM)r!SseJtMK}v8@;&B{gszVJ&$VNU!ldl%rbv z5*$saKt39`>(+2ciHwWUdY&S>f2DF!_a6>yjbE5_-j3t~_WB;+;ugp&O&I5Iw)e7? zP~Rzy9qgs?&MRpcZ)44?liAm8#C5hn1{-&a8-k*qNe7j*+zKyBtF7_==)F8%TQh#e z3$+kwy51?6nDpCu4bz!=&cTC}z6GC7QuFZobX#r1hn3__EQEBRYOMMGdEe-TYILT| z!2jBb==EX7Hur-_+scvm+*Z%Nz#h>EyXO9L$00-Abc|%KbW-R(_Ye7Pog+~H zBoFfU?4sV0vYdNrW8b5(YD?~BPW65w{gsmj``2q8F~d1wzb`fO$gH^^;tUl?rKd$& z*3F7B4lwr${l*$wuF1QzDWj6nB@@Ytt=X6OZ&vuG^oiioCzj_~dpFuz)erg--Yv@> z>CIJtKnw;P2t+^UdyY{4`CMj{H}c-g(HBE{wq@_MO~d)xz_KP^1l>Zr6XSltoy~WB zk_r0_Wif5VI?wTUbyu679QXM!o(q9$>r>RDTr^jiz`EAA#fyz=VW?Tz&Pk=kj7z8c za4ns=B=fadicpN#K2fzwgP94>M~W_3DhTiUgLdUWnY(YGyMBztnHv355#2TG@Lb0F z14amF#i}xCQuO0ZUKftrS@A)p5klG8jGDzW5J;eo!8-mg%KOjoczz!X?-r`Tr?O@v zEouTR$P8RnxXp?(O}it?{zay7>Sg`?!?}GN)bW}L-G1imV;V)~2$6`3$OoIH#kQENZ`A^s$ccld?6>R~WJWuTV=Vte z<7dQbRUTj!27%X9kpF%B4Xk(f&TXtM&}r&Ew-7-2z8dG1aa+HF5*k9!Cd{SHZvli^ zd*8}1Cle!RG6}oEx~-XAQ-^ccb6fE%E(O*se9}91N@;&F5D*nsIRAs3LqtUP6;zyn zlJ^CBMgOZZh!akTT*1wjR(YjFSN*b^Y|X>grwpvmBy#NToo5xQv(z7VQB5Jv7-eAU zg{Zq3-7EO-@3S>yh6k7gcz~HW*s{uDy_N99`y!d@ub%F9FkdHVC1b$Ra`W%_jyJ}< zIlyqvp#^G%2S|uqE%JPBt^Oq%u7)e`6w~t!9}H5Nfo3-RS5h(XF+~v$f=_K<*wm*U zzY@PWYG3)zoPs5=87H(yy?!>Mph#?5Mu!@p|QbdGzvP z-X$0;HBL=50`iw>f&)y6woeoR(v*UO44%-`<0$S^5Lh54)puh3V>D zntFC51y2Bi&X-;+dUbE+t2ZTktbTW*CwRZcDEjoR*G^u}4w4d+##OoYY*Mcs^geR7 zElM`!Ol$k2T<9k2I)ND;6Qd{iZZ9lc^b1vHMjxOO$<2ylh2?B#;O za#>q~rWuPw5(J%D;;??wa@e0(rZIHyfH3@UKh0d9=jho>au{;y!qGqYua@p^$qHV2 zws_bA_z8W+p2M_%_D1`!%{=HkWusC1Jy1fiQ{{OkZ2#)gWbB-o19b&juf4K#hoxqs z#)IhR3OEWl=Lc*kqKEVDY%N-jQ^(exLnfLs75X2|1?#8xe-MOPN%sFODDYFXa|Pl5 zBg8uC|6i6Io&C9H$;ZoTq23LJp~uajUs zx{>X=^9u5X1Q2gM5Xin0Q zID)+xF3VO#jG}S>QE|YT0|8?Y9iKqWAl0+h1+|7e{V%1wBl#Cx#~cBm1oz0CU($Q8 zKusl#ulP(*NKy*QtMgAN)Vqf<9*@k(+bI^JD1kgBU+x!zCpk$Rj_0Wfo(@a3qsWV$ zPtwJpIAX8#&wbnuNW89fo?{+qXno~LyO^}B80 zvxy|Qid$~49l@j$cx^0F2=JAAZ|&yq)mrtOeSsh{n9hfM%Kwal`{UcJ4G@DO}@y64GeAeDVB!y;-(X#=04rEQ&;wOR@4oh^(;q$kIYQ||x-cGxZD zspYhRIY>_s(DXILOuj}zTfJ8M;GT^&K_VWy>|FU2I8+CjZ4>+2j(xTDg3BJI5Y43maZ*o3k$>n;u z*wl+e%>t+qhSj#|Y_jg$A9Ug7(wl#MWTZM~QMG#;`p!L!PAMXLrBd@L;3P~;Q0Oye z1XfyLqoU|>$0c<&$6YgMj%(-UEdz*Kd3N@p&$~rrk&$owF-R1Jw=>)3U503u4pHn% zm1~iBH%gk81vLf-#%dYXIo@8uyIrP7r0EP$-KRjl1^_w>05EY z^j3wM!Q3%HOUGj&e|$WcETZLE2-UEFSKPH8?I^VOOd{1RZ>|YN+ zve{!P-pEHM0bGZVf1?_~JwJAn<>JH^uU+;5<6g)`nb!m2RNuXq^cXJ0V{2&*(X66kSV32Lnm5xwz=oKU=c=M5M`^kA$o85 zi&*gy<)vl3X$zO27>Io^-=ubiZQ2KV-4ME`32^W_qupHxu;!f>vo4R*PtSI~(*I05 z1As7yq>iw;Z`L-~=(h@(wCcXMjuv{ywrKl#A@PfHI@D0gy{rgtgHd}d`#BlznMP;R z@O#DqXgL5ANQlBZ|Dwm*bYWNv+b=K+w(Hsyk=TPSXnnFZnk842?N|jW)bwMFJnTHq z1|zW>9KDY1Z7eK#WIi&xDa)hi9hpI;t=isR_~yinMGJ4I9-xkNw+p$b zvYF!KkIlq(vi{ufIt`?S0@2i#o{Vw@w8O@e!Rfu?|E5i=`yXN&!AfV~FYDlHxp|WK zW-RH~=44NC!vSR?=O~vhslp~i*t6rYbO5+}4D(>IJ5i17!H@;~yvR&XBfIJIJxrZO zW-7Z%l}j*Iwu4opyDO?FxDqhk5o;08Tf$k@ia`~iz(13Dc>y>BRSjX^-)h~@+gYYO z1MIN;@{%M_+$hxs50|4-S-%)OM@0Pgpy9A~q{nHnG{~T<%-G^opZf1L7i=QUfFj;>6v5DWx28 z1_0WQx#Rp@9`7cJbsrgyxF#^A^#?Ph>=xA++6E=XTFwX^%y0=Am2wT=xaA~&%CALg z6VyLTqhRY^2V-hnLn20|MZt_cMGzjvlOZME1tkw9fXFSi4$j^aZYlU>Ev6>}0+B;( z`}ThOe-Hyg3|#eCuPZDDtdkA^zJ$Ti22HZMdxq1c+QAs7Au3RDXAzl>%UMhBx;M?; z3{N^-^gbD2JvjjF#8wdsG{No`A+lSeb3@w0K89fGCl1t!o=2XoufA9;vg>`0RMn!{ z_E@3r@q}GfEb6$bC?ANb6+?J;d*DxYk)YnY-3kLtHvmCqnR^(NnHT?m!N%{DP`l&-WHlFYUuNRPgZWOB_P z06gR|qEHU;7}-2xM0IZxEH8Dt>w6C{I*{N0oP*L2z4x>g8+z0P7#g=N{1yf0ob4zD zsN@U@`r#@E75~~#HAQSf(WBRRpSBT^7dFd({5prX!gvO;z_{za#~j_vU9mC&#tB-) z*t*9@%E?Ic^~N8M+R8Xj4Wx$$c?15T7o+FRh~M9KZ~?O5w~H}Cdc=SnSCe{@1<-r( zwe+3diNw|?7iCOI?t)4q4z`lY17(%dA43Dr_vgrlMrQ2zt%lR4BN^cl zrjcU&Dey~`ASf5&mOBzO^Ou9croT-6=x}=KyDv^0`G_cRs(|nD1%sKy<+s>%`fxXO00anAkmgu8_{;_B|6QJ@r}HE+{qf zCXq>nH&SH%hZHM+4iJawOkG}H_qL$~$;3V%@PK(D;$^vMt%I&XA()tsn=7t6c1YNZUx1V(oCm^GQO$2C;h$rd1gXZ7^!wasppW0iql!ps6C4mbbmEh zvbbv+#EG3z$kGLQ4o}&D`DHbH?WgItJ08NxtZ^+PC<&dMz~DQS_z(-R8tgsi>J%y* zEgxZqz$`(J!9h(J{s)JUmSqo%2B+ei(=nwr(^HaPaW#N9m?w%_P6;h+%~hWwxq@$* ze%%5NmwT>VHzn8o2!3lTfSs2Zv}cLkO|kH%6uGtI=duF$g7znolf^QlF(Y;iJn|n6 zJubT0qfA5FE}={dIsnsr8ztrj-fAi+r2NvFCHyoC$*EN=q*9m=()wvL+iyvPbdrUA z(nig#lug1>o8J~1+_^L(RXn9#{>m!k=AxVNuBf+4s?`G8Sv0*~P(1oA#WQhTh4Jkf zjzX`MqRhk?(4o`||D@|YCHcrpG%y(BW-ipH(Kj6C1h{9|ZrA553#huG>SL)ux%}pp zI2h9yHCHH;*Nla8*t{&?m^2+!eNA`-FJUS(Byc1e5+TDVmoJ-fUBsmRZqzJkhYL2S znkN;rR?>W(-+Pi5wgUa#7P`X$YaMz1D?6W8uD_Y!F8h8q@qlB+iTqs&uU(e8(f|)+ zQ)?>w-`SgrKPh5fUA_G8e-7v8&!$M#rp9s&d>d z{>LZroR4)ZH#_5Fx&GLi>Xf0ET@u%XyZU3**zp{t)M+!p(BgaLvH9xFD)+jZe=eF1 zliWv0OoSPCteUh3b()q)1rum&{(3*pG-rnHp8r{`)3CmbQ#~hpv$tY^U$4-rAdeLW z$<+o_lB-WV#eJqC_hrBTMFcc>?R);K{EpFJT*SzQ_973 z?<#e-`1=Xgxnvhjse{8T1F2HlLb^k`yP<=rjm*c(bt41!6*}^)Gus-fPqgxv6*V?J zRY(%|nf!2+;{5l2mhR^XX8w!4@L!7N9lqABT7?U-1F6XN+92}*TTWyHUMl+-7(<`yL$nNwzvR@ydfM{UHiok$i z;2HLDg7_To&(bfUAMeBV!n6M@S5?S9h;wD=erTtFMXN&>=Xd)MTLzm$wW5x=UQ;q= z_zrpK>qL8+^}fZkKeU;)Vu-nvUf+bK4vX=pxgJV|;(qT#ZIpS(_4Vzo!pTwB;uM77!?f(ukAMVh1onVrg+ONZqNl%o+l*qeaOZ0gHolSd z-XWX!NFXCyHRy-6K zUZy`A2rB{8uk~&;Y&YADp~Ix*8Qw?4&h&vWinvonn9Z9k;C&k(h_z*;t= z&X-1Cb0nY0B1AH`1tr*rYnTo<%;OD6{e2{>>uL3Ll5)IGw;s2f_-xVBH-M34x3LBO z=8+XSsy)o{( zs~hI3Nm9>Kj{VDfx)Aq{POm?;`A;vy^51-3<2Na|<`}ES4WmXBerU+=+-UbyzvvLL ze$5qqj+S*O9+wz;JqjlhEFZw8!V;d*)K43YXYi*q!*pZOdK{lmtM;MQbp|1q!$D>- zoMV_@|CHWjrj9&YIG6hoInh?Bk|k#Iy$2(iKiCjHkKbmAKc$j_SpB?qSrf|)DM=FT z#(Jak$uYFCWa-Cf{jd=W{F^MpXB>U(8&6;I1b;fbE#{~niNko*HF(W$mxsO(pDKAy z>R5KN>VaFaIv*>*`|)lg;ditM+gXL~T;xObcP?S2hgtW$FB5k*M}Op;PUi=_v<5vZ z{6xN6brC7X6(Nnm%g|`<$S_Fc7JKdS{HHvL=SC)-({!At|6=2G+|5h%IYf6P*Pbc* zKFhis3AB;x#zXS}GvgZe!;x#B&TWPn`%(^bKZ@6l2PHs<2ZbtdzRpc!=?oMmJJeT> z!==Ffjg@jAGd_kLGU zS8f5`m$u!XHq|m7TK2E$CAC=>$)n#A8*V9`9<*mK-en%t#wpBtH2k*~Q3TV#e6Ia- zM@z~<3D5W@@k^7h$Y=Py(V3f5GZwqC%AOy14g*Ys^TjY?dobLxx-}JYi`ld`wC8S9 z$l#Cf^ZJa_Hx?0Mw7h}D9I9^Lyv-7o2w2ycou_t1{&=sgcxbf4NssV8A;?0<5ZGkBlE_4zr7ESURUGSiP-HvZIw(mjCg3tS6v*TkXeAzIxf)DtxG~ zO7eTP!JrOA?~7)2>vFoE?Voe9VcT)a4AOV@r+IO0QS9dn<3D3>Ss9 z+(=Xsd3OXzBB~ymH6Gr)P$6@ziNc?l<_stY8lkwJ?2^P+(Lqz!lOOM2Z;EzD(#+@y zOP48J-LsecdF$BidG9Q*)ch{JH_q*EgnBY8F8)?f`b>P(hY>Ps9Ej4Jh#`NTuyXaL zJ4k+g!1;Uhp$-e@6PpHQ`P!FEjR(Io)LlmewD~LZ**N>_JhEQ}D~Al8xBfeE zkYvShdx1}aRgJ}OwWB$^p17GXU;88bUz9jb-eiWa)O~{d!P?Z``q9wq>!)uSyfaw8 z$tJTE*FH5odh%*Kh$+yuSBc0CMmS1GPL^2c3n_j5T9UkdR|Wdv<=bW1rH~mPc5Hkd z+Wd}Otc<#SAPdnYK8OoqQx9<}leL;`a6c6Mi-9~Z6WvDs0h0nK+1JppXt)^tkpP zWq|RX%_)!U8Jo64+aF*ta2Wnk^L%^fc8d9-N;^ed5}O9AHgELz3@eGosimw0)K)Fu zoC>%5ak}V4b7N#7TZw`j)2?L9WkA~ZjZE1eXNm)FXM%HO6(mR<`%CG{IQJazMB9zo z)d&AMlt#Wx!0#qK#Joojec;?!K9GyEhWX&W{h&ZVg=lJN611?m&rmC13Ga2gQ=4bl zm0DG|XQ1gbK8X!Xv^J}A3f2Rx;~9yWL+zkFr@z;wB}8aXV5+h5g6}(d;q$JxkNy(P z^C+=~JZfMNss@O|BnD;=KQQ>S}K)Tz`qyjr#yH!hv>@QH3^_NY^}lQK4~=))qHJ za&9g&_CrRjzY>go!geSb6__JsM?gN&NU{I}2Ae$aDFT5`DSkVk74v{VFs8biQ`(vl2YQ#Ai4M+oi6A&dHVJYzZPYIPkK>)nI!W1*oVq9i zfnZ!PTUm%3d2(C92^=aN6Ci4s!x1P=H9~Op+kftmHyHjq+d!H{|I@5xif48yuy#7H zK!7C4Ne@M(JG-UB$W;=6Re*z1{$}9d`1%5~6%t7a#4ndAr`)!N(@B@EeV$Fn&kp}gyEO@|A?d3%UQc8Tm z=lz5h0Wq<(6qv1Dc7w+PKo%tBpD~N^C>&=R;)Yc((YVj6oF9XHTT$s=d0*E>gWK+8 zVDhKgydw}((@H!5aWHn2JsAjGCyr)#C}+LZN&t~!Znc;;?YYflpqnnxByhA0+%%kE zK)NX}oz%4<0g^V6kxP0YDJ!+-dQ_)rC^VrZ-thDGe|8Dakf_Ve1%O4v5_7n=8LeBZ zP?}MT&#|_J7%8w+{xb>8DF@|}ECs6*Bo2LZ6q9j+X+K-dxRAn|0ACjyjDZNX%medC zBim$w5QL4|ROL7{tS0g`yzR1=fTOkM^OG+f;bn(-*T&sdZc!#bGqozXsXb#7OtV_Y z5(x~LhX1UWoKzp(-Cgs@bf6M(9T+vjZHntGRzQfQfd3Gcu(FpvZ*kR+v)^?V{N$Ou z(jGh|Y?rkr+{6V6?-Rn>skpY?Lf(I}etD*ay~t0rsi_Wg7w^>$Sf zxj<$E2l+wr@t|U&+@Mrq|KG~tGK}lMH_@hkEjL=(Do)G@JXJJ>KUVxOn%uY1yq@X5 z1O}2J=SFk%oV}67Xj?=xFI8aY)2LXJs@O2|Q>4mB4iz$2A?z`XQRXcE{k3L$ddqv6 zF(y1PawX>j%0f&MO$MMI14ov-} z;Iah)RljKQ#LzreqfJGchJ;BANRT=SVA-{U0}~iAJOLK~3spcKz;kAvwaK?YS;5n0 zF$&hn2cRK@bmQDjjhBpG0ms)K3uRFx_*`$dqk=P-x!2X zrKztt8O#;k&vy9G#h@)g6;*|Jma_iegZ_N$Ym7%FH>!@f7cQNL0#`uhklF_rajZk| zGI8j2hhyfvm*!aK9dPO>P!XzHF;68_Owtjg=7M`3BQ8-1yc+w3)pCB2aI=p=K}r}o z_ix>AKbuN81(`7LDTz_RJd|zSu`jpW=j09&Xa9lWy(#ORxbroX{WLg)1UGx_L~bY+ z-|vK;Y<$MWe%4{M2;ddUatnutqe8T^q7mZPTOQ)Kz*^cpouzJ}c4+JZQWp_rUk`IC zHJ3dQrOrNT|AcGSbD;EP>yvCbufcZF6np@@5F)OBO2Bx~@6)!g6RgIz=|lc$D>JhH zbw&N+44id`i#5pANdcMb6_?6!P$6`az`GZuNo7m2ylU*-1s>UV_!5bxHbXzK z@Q&xlL5S~iVHw14|BBHCUP7}`K5xU5Lym4EA#f-fc#ie%hqMwBHaJp3ITwdZ5~wuJ zvB)2k3;G!hyGs}Bh6UNC&%9^_k*8y8KEl9A>{_c+%TeSWzXm3UbCD&Cxm!*M_}KbR zu)V7aR|+8|C-(A^6R|9DcKMzUBvd}3(7dE;nZ;hXo&Dga^ zMb#dy+>hq!M`chvfbX(KHs1*DTZZHC8_YnrNgZa44@J6FI4IA6x-8z)03;_gvf;SY zZ~#)zfF7m$L0>_^im)lOw~PE1wlzd5H$(!>v^{X+%IBOHUZURIzy|S$zt&Xxpq(? zj>fbNF^3o4QB2C~p&WiLEaxPgUw|7{bLoRJyH~(vE&3ESR)5jumb$r|cFe~U;gy7R85I{C@2E@}h02S~S1=*%!?W&~z{+~{Gq{JktsNQ}9ErJ)$Aek9}{C4sL{W;%U<_rP-lYUn7e})&#Nau z{FK($Y`NmsTKbdbsh0`{jy@}1Y~8NV(iX>*r+?R{OSXdx01$LR16`y*j$*Cagi0J- zq+`tYKHt#buHs~ZzDH{{Oln~uy*iqCz8<4Qda1p72N(&|1b9ai*%Tm+khBR3D9`y0 ztVXKCL!e9_i{FYbe|cc-J#g5JC_Vz*QnSGqEQ83QJ77zPTtERxJJpq++yMNu69+S7>LsemH_9An5hFa z1kD8Sd|WEq(lNFT10Il(0Vz>wU(NpYog@`fa-cI0h6RpvCk`| z3d}{F2qR$FTAwU|Zn}!lOGGhgR8uBJ5pom&6o_{DL>aDuHozgzIStp&2DWC}tSLKB zH|ide-dUu6)IBe&p9TL}b>V6}YAcTf?|}#eO|r1d6CAO`aji8TQ8}R!PVD)bDCH`3 z)cM1~&YpsjX39e^-~xdJY5fv42ml@5q6q2i4RGiFNOniitkvs-=Nz671z+}DjH5G+|0Pp$&qGFco5WYr!}IW#&| z!Cibnn>MgEP#nx@B!Ew`N2G%74>c%`u2Gk|VP0qB0z8M#t2iG+kZdYGz6B(u%)=;> zRt#rTgY6r*o^;N%DM_K6r|D1Z=T}GsM$dC|tosE79m=>56yTvsUK||zG z^a6&&xG=|<9T-3U8xJr*7Jq}gIp+8h+y;aF8=Y;QWx&@W#|+&jG|t2&G7q6=LPn+_ zy?yL~;x)M74tN#A0k{YRf`wUy+JzF2Y}Uty4`R=h%(zbn|FMblQ8WYYn$Ld}|A5Ey z+z;%IAx5P-KXWBg#w(;S%8dMtdS)6!!umEBBdzU=b#&plZKzRN-c|+#r-f4OopP}b z&IA^!dXs{Tk_13h;s_jGEELKrcWEB8$$#_PApZ7Hb)qYQ+jOULkhf(I+@~sp4#-Fj zsrbD)qiX45w#9`7AFQHVL=%9sB1 zt95}h5~<86vw;C+Hb*SUDG=pR{}%pn5#_d_b?F?7seY`&EgSggP$eIoWr{iuhYqH5 z43k&tG^?g~j9}~QxQ^Xr{%)Qf?I>A5q(hi5u6-ayAe6bstKM!FnKxc^j|3YPrt+qn z8OnQd1;}ALh{TfrS9XTBT#GH~Qo)+PEI-kr_Egxi%J6VkQyi)Z@ixtU4CPp@i$tcL zaqXX{>C=UXI)I>R7zsN&bF4=ak+!DeU>fU>vvuvX`hcBEkaZ{&B+O2S=qpS}@uhzb zv?rNKkYD>aqo7bD4C-X|-#~U{%(zy`U3w8W1*FvgT8}IlJ zs<8|cLsc4y&S9e+B6F_1p~X)wi&d|io@^8SuA% zottke9GAM0?c9=ZI5Dbg z4w5?-lG}jT2^t+kvs{gg8!EU;lWimeIs4ScZc{QRaXnii9T(RwH~Gph#bqWK;a?g@ z-3vrDwl@X|*}d}5*LWBaS5eK(Vu0L~vBp5Z9kzh%qz$;e*Gl+#7JQwB@<`LmZXx23pG%X zk2^+58!?_j+TuN%^&KB~#V@Jy5?SaruR9+12P#5*19>r@p|9eS4p=2HlQrtg$NO+^ z_MxZak?Aep@wWV(i`T3_T6>ztkU7QZ*pE@{9rc?Z`n;mPh#KFkF8c1|c3kUtGO({n7=<^=i{AhJiU$a`s zOH}l)uc;8?!*0s*m5p<`?;)|y-rWnk>Xb*rj&J^+o6nhzD3KejZc9YiwRH*_rPUeB z36f4*G%8WMoVs z3;2N!X|%9I8UP!A?G7MHIJDtd*H-OoIPr3Mn61~>W{|evrrVjLYuT3lWgZSeCAO%^}q8qS)TWU$@)nr zhL2urU2})fN79GjdbC+D5-obA^m%pIRP1B5K%(Q@EbsqBP5;}Cs@QMZ@(YS}vknaw zpBZw^!EIRL!Y`f;MY1km!jlHWi#etVby5wRK5Hb#b&nAWpkpLC=)l<{gdU~16h3Bp z^lCT|9bPm}eFkjuZ*bCj@4rtS%^If8g? z=G0DghD!Vs3!+0#8zv3S#9yYT^ZqT`=P71(q`#7=kK5e|*zXtbyI}NrVZ3nV z$F}e5`AEH-F6&DYGAgaU8jXjB%Uk^D0rx`o(J$pWG||{W!X(pC!X9eoB!{c?r|Gz8 z;sS!q$2tm*GSkV(vK7FaBk!2CHxpI`*Sa5_!<{8uor|+)_)3zQ-wu9S`s1z^F>*Td z8cR3+kj3+H$H_B-fh3_IZMt(7pVu!gga$8|2X~2FUb0W9JkxqD8=Z~DOZ3Ymh$5et z3>sC@Rdo{WZ( zkJ*0gqOdHSq~_uC%%;Fr_>iy!vep{fAgZy31d)#^bOFX}$n+CA_Q#37W{FuN#Ac{n zPII;qQ^Fw9XPv|~SEx~-83=Yn=Jg_Z-((1F{a}#7L4|v47u#+)fpGVIGAU|vKs25T zac@BV4#d`UQ?-io9u2f643(O+1BwR*5!C)iG6IR4qg7}uOnt(9iN)?;KjPh3!rtyr zMFbd_I-$W9#waVoHk%iWk8yUlf4Tp-pdzM}HUI5Bj4!HYQt1!fyqd}W&MPH95a0;j zwj04!zxDf4pj!v1WUF33#Wt;OJH+e3-Uto7Zm{($qu0g(CEoGd&8iC-{udt(6y2Fy z7it4m_a<*_}_3#X6);SEPz3D_uE85Lf zhb!Dzi%5@~)3Hsh|Kg-8FHsZbP)OG?gblkC!#&o#f567$SE=8|)QZ--ZmUj%G~hF+()q{hxhYl)CapC~8|${|3dmn3XAhl-d^pM6j*{d998=#SxZ+|K0`w5K(zXHA#wEQ!Lir9)T@ob)NP)$ z(=N*sAgrqH?oPV;QWM1&^N`g4Li_c0M>aJF>}Iq zX9&rP#X-gY!VSVBNRN(jo=FBKc@=*DVY)o~G&$FzMZS9q$stdfLgOT|eaph&FjlM+g z^o1M2uFM-MzdvnpKH0U|sTAgODpH3?KE!WHQB`Q=no@tETJ{rpR@0oToc8&P^>14> zGN11pQzkx?>S@_V)_LbE@fH}a=@izaE%mB-uZf=IGh0PVR}sc~on4*Ph--76-^1ui zQ?rMq9ToUMRm^|E_`Y6*FbU#)RZFZt5Yf5$IOO)Ot~V!O!`L%7!nl;=T!=M5m3dhQ zB3>1qt2c%wDf7AURQop$6GGpo3_fjobnhrsEEbPCR9!o3zcuZZderFKNX4a!>Bw>q zE)V<9`=@uJ12If*KPQh`{4S(Ad{aO2yo6Xocm@Z%lrS?pwvgx0JwK>d^M)~LtUUQv zt+h-1XSJQ(Twyjcb}Hu=)q{hdnx+iNbV7@Hx~pP^0njL9HRrR+_>WYU1@+U4g$^mE z#p0kB4drboWJCvEL`SL3wB(hWj1S5x?EKP7Q7Oy|`TdkrqxxC006BUtG29`)xjZ*4 z=T&e%LiUhhH$JX_L7A_=E;*lfkmjbPdMB?D{yTtGY%ps+_qkbvGEJhLF7Du!cgnvR z88?mr917Pk*78wKrD>(S;tc2b{jRH+A%1bTnA2Yx+ZE;2L%f3&8?e}ly&0GHb^D#p z@dO>Qc0O{96o-s(?}$EUI9~Id8Jiu%ul3@~sLOk(_*(8@<_6}1{LlZ2y|1rKPHjw9 zp@YFtr zflb5htS!+ir-%?+y>`89gemM#dt8k20#o z>uN7E>O@NVD)qOX%nv*0N>)JSuJFHzUJj+pxKv>cb*yt;*YXKlt>99UfSm2OloBH-8Q9)P?+}IKo{E+v z*HAn|cA861G5#?@j1ec`UXCKgLZi&CsMn=m`WW9IxW1a-I1zl<8t}tgB8}p?ALD@3 zSY73)rMVq)*J<#>Jq3u%=J;u)s>_x$9PPe5EM_$Dz5%Y;l2o;{9UM=R@oUUzG5^j9 zMSQ(Q-gZ)}(;NB@uh(>ew!V{zuXEB7a>ZOXCskCEwD$8M>{IuZQ^fP@iR& z=2H*FCAXO+kCw6HXynNABD%hJxqqEcbUK#8ng<94@QbPsS=^!~ztgRiOVE~rU+`7e9plp^qKsJFB)pG_q>2C3UEYeH+)r&fkw0qj^}3LuTSB znQ4^)+N9-Ou8hHXvhxIfqX3@)*q|44UAB(PLAEHeU#W)YfSp@0>fL+hr9;`Mw$a%s zSBI;RX&l@eSN~zoKeW>JC{aUqL~ZUo$5%{wKpB#P&(K5wtr@8?f}}-DraSlUyUWWB zE0ExkDe9Y*7o%frU|jw!7(KVf+H+v1A{$k|H-`EAL8qhmG;mia_uME~6AJpo zk8w+9ndPspH?2uO;rzA)V%6m*8`9ac5kixpIM4H6^wFrHahM@@tp0{@ zPo{yP z=g~zhB8gqh(vg$#rcaZMs4}yZu?pvf#sM+Wj9M*^)fcN z|L$C_O~>c?3c@@q)8*)sL^8j+t(`mqx{{>5D=Q`Aq(j=Y>v+AL*x5_#h zf|t^ebU-n8^#wjL6(t!$e_qW=rMT{4?JyHwTKoClLtDzq>{H1k1Z1!+ke5WolhrtS z+%`X(HM;BVkH3MBNo>!Wuu2rNj1qUt4}X57I=N}gfD-YSE{)(tU*x(f2k@qj`gzDY zrAyVe($jCWS>N`<|0gi@UgW-lL4c3b|uF`8RvS&x@0WPEEhEfE?<#X!dJ%wL?>EN%Kx zw?6cO`+T>tTOa4k7(E~4C@g^fJMJ1N1B~XCufK4HMjn3HD>{)yU0eUEy^Q?-L@71a6h= zw{|aCWo^CE_PU?e9|kG#9!)(0c#*Xi8LKXAya0_GLM;u z%neFn$qG@nAbukU~V4elpM_9NR7CqWARLi5qGyILqppi2qAtb6` zR4~DAj%TjYj)|*qTKV@fiRKz4bwueVA7oO?>pWL92IjnDop&i7^_GuBaYs>^`&cL5 z87>OKFo@W%^2|J;%eJ6DRebDERhRsALcMmIuJN_m>qZAujqcPhBp#}#;I7t-sogjA zW{ihofz-mnFhKtoA^-VLgCmQlz8K&>*rk@*B_>Do;YRhXEF3;{vHIfdx6Mj!sa+_h zYF7xoP0H(*pqdr`#vxlGVz&2rI!)S%msj%2%iXpwnYZ*zrCR9IW3HtJRb}3GPAHj6 zVQw7^`en<;8N@f4Qk$S^q*Z)OwkuDBx2lz`YPvTi<&060`BrUXz1}lio`P5P%;U)0 z*K2o9zX?s-_+wotGL8RU!6~*P)F|=A;Tfn|moJKlwFyP>rHOp_lby46);9eD5K_i! zWwPaBm7dfn%HG!;HPvj~-=S&Rvi z2MMRuSI^6E{83PvNi@H<^yaa)PO)<}B zi-$db$+m#(#36^ZR{^3q- z*b36oLss20wvj*I9WZ_FO*Igqt(S87wsOXs%!tQp5t1YtR1X|}H6P%Zu?pRt-prHU z+3HMG{u*&Z$E$6Ar5W!%S(K7YbI;K}m3CqoWU$V))Hb(?{yUh_Lox$p7Q?A{5prgR z(2Y50{zUr@^0U#`S?29#&<&laztWo$9>!n-yD$rT#wenA+GZN45^jvc0cvrs@g!2*dq%r*yI|>@yIdusu_CgVJ3# zu~N7$@vy-kGL>5*4_@+o#ioU3FX6U+zT>r(H6OyBECTekp zdTkBD&qfEEBq}?--cn4+tk-s@#rj6tM(=xAtb9MMJ#akACG26CZu%&+n8Yq9Rv0}>BUr>h}+v~i;^lDf$TYMh>R08}r z@>d32MO2IHr!874TQ?}94-Q@Yc$e(iU$6F!T*G^rTuD!HMduH&DP#3K`xX05(u64U z|I`z%>0YKapM2_M+i&>$L?gRm+3k#pVLWD}dhYi9k!?!f>qj{iq@18lM2c3c+b)JqW&|(Up7CCChUC3 z892JmJ*AZ=)s;tib|AN=+%@`Q8GTQ!>EmoIv8ozAM~O8E>mNgA4FdQM3>`i_QOmx& z@hccwU-j)+QgZ5%Yik5ZDwhl@LNwY-aZmJ3rZ+L0jNEq!zQu@A$%Kcrykq0YA_jje zyJd3j>(fgJTZTc6xnObImUn$%PrL1OnKS{t$f-FbLX9C28tded#@27$Q-F-v{DSTck ztW$gALlw^FR098~ht48O2OPRyTB&XwEjx7*d;M#v7+keu{Rb~4_m{pMTLY5iUm1tG%v z^PYc@4Q7+W3YoUp|4;NwwQK7DjchkWFH3)j@9y}?QvnS zas)%?Nby(b;KiF9hj;FMU+Y(|&OXc?L~w!uZGTHr(^F znyZR2{+^fsTnNM=NSx1Md8JD&QpW%{gNcNVzTnlCiuWYGFgwV&aUFhVAmv3s&oG6I0vNK~;*^8;hTgjeKhdXUG6%#?2}JOXaF20*kG%;=IC z7UNVfLiDni>D8^5Qd*&9e|ZLa^T-++)4N#Hdp;O)&)JrluK0SUv*6fTzWo-=T+4$^ zmA3)1@vgNV+So6jdcB2Tumau%3xvig`4BjpyaAupV*a^q=Fa5J{&7yp^l6Q=Pc(5-0c=rhrzA0PGG)~3C>XZ2CU$oFl* z=d~X%)^1avq~)NfjKDB+2@lcYXIByf5Ssc1`FV`SQNVeyyvJNL8Z;&#=I zq{$waXziR0Rxa5TF7OCs41X+21Wp;@n~t0jmI^rab6ij~CHT|d5CO|5$&*o7$!tMh zJ-pCiC;Y)5oZZ4V-Kgo6do}hKXy<&BBHtRxm6g*oI81-QDS*PqaP_L*>*>%UcEttH z*`8)GSBYz!0FQDkCiowmBu{%EalfvxCNBP{Z^k6c@+$#6d0(;xO;W;w=F6WO z*h}8vHqD6blGZzmehTRi$CYcyMUR}1xr6_M1=8eyhSfRJ&f^%j1uq)`T45~a&z)x} zLWrJ8J^Ptc%djpTMphfP$ivVL6c8l51HaELL(vf8k1uXS&WZ0YZgKA2$U5m5_e4TG zJqex!$$$RKI6gb%7Otc@dHF45*?Rc!DYEnetpBb8>)q~YG)3f}pkL=k4BVhU#itUn zN5qS#MmACOt0wLL?{S#$7yjp*p#QCZWS+VE{MS=#J~P?Y=HgGEmZQ6%Rh(+?k!IO* z6?st)fxqcCu!>yXOuNFO9SS>~g0B0unxom?kHhv}!QVE#ymtIdQKC|ufGnw+9v!%H z?j*tfCje&ANZ39v%&GkYk3JSpl`m0778Gk(d8yE*<3dMxmz_$OHPo{PDRG;A)yLMe0pHbjs^ z5ESc!%y^_VqW&NZ#4kHPSYuVem4eCwIs~|^0H;k5Jc#vUYeb9@fcOZIg+JbRXA*z$ z2pnv1%dQDgc8FHg^dv%r6^uQ!0Lw^4>o}2{RW=Px4Gv^M7lSQdu4@C9AWFoKv={=? zj2K!`mX`sW+WhAziv-_I`kV5ZeG1U7h*%vxJ6Z`%^B2s&R(#Ov-Y?JvZ-e&?z=#H) zJ9ADY{zZ^d6s|ucT%nW%yDI^)yMDpt4GvfmpHMw-YKAXdz|x~fo+o5c3<0-;Fk&DQ z4SW)v2q;Qgfbe|u=ViEoBPE0wriYR76`_P|xLS4ug-auNW8@{+fI{LrR8scJ>6?46 z9<0)T_2*X|IO>3E6AIoRDe$)PAaCC&1f|0|j44M4p(3DB{Q$4)*|mlK)8uzK?=302 zvJ#r$_uiB`-RkEAb1~jwAD>)#vMOHTaWQXLwH)Nw7DvXIrVL z@%Ga5*uW-9iEP0#P)ONW`FkiczkrIY)z8YcnNfW66@2<8@Kqa+uZn<6ky!v47Mr(` z-YW(Stzh_y6h(}Vk#Nkn?DcNJk;-Qf`Y>`-YrXgT6xDuOvq=~@YIP6#ZGQXzR{$;5l$IA@zxNVyJF zq2{dXfJns*NyB|;nW{GvDy>k#za0h(7ox>pti6T!eaMRAOeGJcGV22p4X|2@3}n_v#Cy?+znXFlK|+QYzkcyrp^S6XYgLp0!fUx9eT#*1G+(r{VPR zV+ql5AAI6p$0$&oaIeoBC}8OA)=kzvw^ht1Zvkv78&j>lM}Qf*SK03_SWM^m>f>$1 z%W@eDJJFIqi+yaLyxc%~^xb{VYA<&9?T+Tkch1$+jBU$bKKcU;^wwaAKdEqDCl3r~ za`y}J2l(qVt-v2!S-v9tN=Xh(f&?hI7|IU;)HeBBsNAVX?b(N(KwRR?ddx?xyY0JY zdXBE4e3IC0{m*1MK2cc_v4SjTJe{2-Ea=IPWe+zC@8)ZZ20MX;_L^%qZFeS@v1^_s zm{P~yLWw)Psr>Qp^=f#Fn(OxpIV^yHQ!?0oAPYBSprr{M&b5B~7LPCbt9kpy&vfg= zZ5d3cXML-2?A_!K5j{&5feSHFX`V*NPy{sl_JWsmR36ZzmHkqU+?`K!5|ahS;ePkj zjDeFaVyC&lM9GX{AB{*)RRjsc>_)nY(!JIx?|!jI$CS~D#0$#C@!yP>*_MC2p))_u z?$SWA?DMdGL9l-0PyZinL)!`!1NunJbFgwW2N*b*p8>0BaJ}z#%Ta~maZI+N+SV`I zwQKN>kj5(PWXv$v#}kF}{V|MGf^5`*ThYl(q!!!MADiWw_<|EsN=&eX*X&Uj+4~?uJB9 z#9P^n?%lkB4_T|tXx^7-5o2)W5xcHI9BT?=xDyRBTvG4Mq{di%FZALaOoeR5_0l7C zP!QXCX(;+(3+((KE%*xuUB|tC3cLzy@VrNonAA3^euRbGYy6@z`2p)1M|Fv^!=za> z{F@Wp@=ze9w!L}7dc7V&S?-DWY8w7X z#weLVj#YrZh*C0uXZ~{0-nk{V6n&b7mHQH0)K)${Ox%Pk!jF z!3`?B{>ikD%P`LE@{1VuA2hobuHaaoxHDV}vvTMyubF*^78t#! zGY=k`C^DGSF!wyAd-}?OCw=a2&y^@R#9Tl~#PPSY&EbMnHS^Fc8oVQ~WF zP_HyD>9FcW8%-0CLRV(r8s!Monkc<{9Y4Hu={c=JHtl$Sur;WmMeH?#7)G*6VoZ)o z%<%bg?t+Ka)n5n5VUXSrI9fep@=%%Pdeg|MH9v%B>xLIa-TaW&)?TSTE^wspwA^m` zH|C(+e3NaQcF&@XY?1Co`aS?F9!KQdJe5!SMC$tf`}!A1pP`+3T`QyP`pj^8BV+Xt z6kXwgZ~U)k2Og0-DOGtNIE@P(7Cq-+J1AmJXT9A!5%{s7mblhNz``1ga(jCmV8t%g z%ndsoC_DsUKiBSayF2hg1%YFeZ@p5JGrVZH8I=i$V)%UP$DM5h z1f6;@C}F~vZ~qZNO__n{f;Op5sPG~hCxOz8{q!O**D>@zg*M;^ntuIw&9ry^l$+1* zIY#m$Y|N>$w};{1(x*x!l zw-Iu1ZxKpNy!T;dF|GyhtVBJpkDEBz)x(hQ{`ut=lnu{p6ys1vBvAO`-tG>O?hRR! zdbzV*2H@C@!%9YhQN5RNvg=5@1pYYWk^W9b)MHP2PxqbLnr)kEi@&&?+jj5XB zeZl*bIW-v)zMdHXCY0KJm4F!TuAi$G=Jm_=;F|gzy=QrY9%Zw92<|fj4yH{j!3^R5 z7CtB0S7Q&HoQCZ(Cgz#LCms~8L?H@ej%(?CkQf@=n;eOum!V@j3md~IRErVHqd;$CML;>3!@hTy z77<*k4l1HifM`EtyuPklCVr_@)b_Wx;_G?j;!##gpwdw^yF~a#X zKN(7h81%xa5Y$-(nl01Am=njgxTin zT~|C%3TRL9ce>Jq2_mr3SNAj|PTx6cOaZL*zdjqRtO_Q7Z$Q4Ka?BZp3r9x)7i5uU z4~Kcm6B%AMrl7-gd<@+8i0a(dF5=GBeNq_Fw(bsFM@f7G#J=~#>P}xUj~Jm)S2w|7fg`Xns3H7gsCT*>!f<|LOHz8| zXnIHen1GlbJ{dQ}j)1Stj29!zZ$s>*72mXymGC|%_lr^~E4vku=5N6n@dG@TLh(Aoau^Ai+&=XA42!FSJuG6b88Q0T>j^F{B-#tRNqdd)*9?6ZASmjdJ1u3OR4z=7=$u*hY(kvCGsX8Aau zu=YmNgEPQ^^|ftUtWox)5$GgLCNTQj?M*0eAy~~w7latTjL|4u%U^1sFaUI^y@^$mcUpj$b zy4_R5wTi_kJwuOjazI`%W79N)wxWo-Gf>(7TRvHNoxR>n%rcx zTQgcydeWD}ukV_-Sr?qbq<6PLM-Th*s6Q)W+aX%Fu&v=#RDj10d?#Zg5^ISRZ_NE5A}|4Y4UD97>QAq zrqst~z5mhV6$LCwzFTZVjDN|+ za!Xe^3_Vc1=EUqjBw+$L@liNVy6{i;?tCsZSiZj{%9ob&Ag=FyB_}Ma-2XZG)6xX}*-=RZIKSV3;BULS#{dUPgf%nHiZ5Y-fJd zWV3HwVEZegbNT_LvG`T(Z1&EaKWEMqi*fVrut>xpjUl=_jooDu3atobPF`(#CupFQ zd66~_fw;hSP@8)}1#)h-YPhdtC4JN0>i1>0(mwb^q1ARa4)TQ(Uc<@kzak>caguzB&``+h)yG*9_|t zzg(<`qu~`kYOP)dj6{*CT^0w1kJ5d1`VrT2Lp$3W6gMd!PmLAZ;XH1S4_K7o?7yJ@g~!{253NE+xCiJ_i5ZtCMKr1$`DUiq-D6CVuJ$7g)4_}cu^GR*^dw|)V z0XD|+BI@(*ZOnZUqGpqEp%Y0aUQ-leqX{TMIw5L7RgHvm^vC~IJ^88G zt`>jMa-DY%c{cdxANzX*iMK9A z9==!Ezfg5O_MsIJx_OlNHRWF>4^J5*D&6;%8b=FrqN$!XXxCX~CkzHR%Lj;3L5em_X zRy(3VE-bWxW;9vD|A`u?0k-j%uc3Vd05T<@Y7uSGJ~z(i9Ij#ShVHVD7G1)^% z)Iy>WaRe9Aloh^0#jpf*X$XKtP7;M=u;?E`!s;eOSmyt-A_~73?3^lav>NwCvknjk z(+j~s$I)mTYN`2o&=9Eu4<3!?=6V5JsT^^PPb($;K|m!~W%kK~(qlu@=1!JE7T^V9 zHZiU%0%?s3sPkI%rHix zo1rp(@K;bGI;tZa#hVvl|DK6D*^?3ZnmVVR;bwps@fUR#32?_*GXN}T+PneHqgJIy zPOlk)XuliuUo5LCqnpw(O;&5RdG54`z!M0Q{t|jj^UpYNTy%raockqq-#{DT-EWzn zHN7^Pcc7{Wg%Uv?9paXk0pKo%hE$;eAH)PVV@eXlK5dL`R3>>z#;Al!Y4$GAc=u?X zXm)CcFm(u=##^Tgigot)G0=%rweb+gIDt5QzSK*%a1AN&5q?J8lvA}ZxukUxiYpLMXD^A9@ z?=Mst1US`LmjC98*R{6sJgYR*dJmmLG4m?THaF%~Of_RoPcqmvkD#F-DD=RrZkR5E zR`Ui1Xu_N~g%JxSK+#r&Jg!Z(BfyNSp+gx2M%7dD(5MaxGdz14)b!;#^~C*yo3sI# zd2M2rT6aZt|CjGY+hpkZOJOdB$IlU!WGm9XWQIRAk~B{y-WW>FrBX;aMPFmL1I>Uh z`O`dSBf{&TPt3OfyGG@M*g2*BuYgi~`iNoA6SWBPOGk6-SvY}6&V0o_Z>~ez;p07M zAvOEs`?9Q5f7!l9FxKX|cdt(V;CPQ9@Cc5u1gGeC7kDQ8WD3KXnRo3N;o`J_{^ieDItP@x$FrMp6*jpjsR z^~R?SE60}?!|TZ@x0x$~^y%P&?>Y$U2v?q?KEg7RYq(D{*58?*+fXqaC0v(l$->Ew zk%jl?ci=>NE?hn4*SqG83>zM@l%|OQWgt$mSgKaA&ci+(fEG>3-_Dq0xKnU!j<5sb zJ(r;j(1L9!-p8;(+Z3L4)>OR=NnJ|KQ(43&+M{~Jw z(kwIm(pK1o&8!0&M0g{S@}3FJvc-#(I}}W_FCH1Bc}IHpp5QM}?^8a=&anMB_rYT& zRl}WS(nc8Y#`>C0bEn{IP`G-uHTktMnMAnk+!lM#si;Q3Bc(vJ*l||_&z{5N2Ptf8 zSY4uf_1`q@5yLrd`4SMSpVanhtTAZ%3f#8gBZBps*c=Im&n*VjTr-C8gW zXo#S~c_Rn%O9(nYw#5z)2plR|>2!0I9tp(Z&O-Y|N*Goe<6^m@8oq`rZ_rc+87EIq zr388AiV(YON-TF-?knqfk1ee{iR8u%bVTs_U_#iZqkADwf|PgJmejWl7)4r!w$}|$ z{?t7m$4Z-{d|L;}p2SX3Wor%f(-i6C+ztWBSNCm&6wX5ILyw|tfF%fjoss-eP{5Piuwno|RmN4u2RzCDtyF2jbOhny zUqbzSTkkFGQo(3uiaZRFps(;p4*~9Omc!#~MUTW{_jl5E{BRIC`&16p^>M9}KPZ&= z@a0M$Ojf1V)`)-ADtbj&l5WfGDovuBpx0nte~Oa%I6UaB*SN} z$mSXMPF>G6r@0sSy>ggCQu*K!&7)QD?u$zhuUb-yR1JRV{%XF-Wh7>FFM*ODu1Cq7 zmo6rLxJqR>TrYKZPyImTJ~YcP6dp_Y57=H^YY6Qhf-t=8H`r_y?#KBIvg2hLhfzYK$em?I7BB{xALhF(p0jQDv3Sl2YClfA-48ll6JFBEAQz$re z(^?_)H&@e*1Ow!tLBnhaz(z9hWW`9M0S7XjXo5~O-0>w?Lrs!H@@<8A^-e)EZIt^aKx}Vp~I=jA(MOxTroLtakq{bTC2?@T!|jRMXs z`P}t??gxR8s(>-D$k|qxxP#o{~li++&xwY)E0WIdL7&P`KBusY$4yMFzc}Q@O=X)R;jA2n>6Cm)#Dl#OQopKd~ z!$ZDXYm{)Ni^^_8ZEj@V`$m0AG$m_U{=s`~Vl4vlPODQHP|*a*9qK;9qrk$tpPN71 zNp%~3<+!ITD8^%ZuqOT5+(i>DYRON$|8)W02j^#EuHdSoMqMmw*Zw^;7z@+6y|M-O zsR=oTkrPc$@s2q`0SzOa{@y~i)xQxlp0*)$m$Mg5X{r4F$ooG>%8UJ2YoNqM;zMUq zJ=PjMjQZATAxpoq0*_D$J*_b`b!j}%1T_(-5Cs~ggjoeYMJNFph^!xBqjD-&RiocI zmuDbIc>qnNVKxy!I3Co&wz0F2{Q%$5aI~+6L6}CtdO@0-Hudi$PKw22(2#Kf9#k-5 z+JqP*(-^W!gs-A8a!v4+u&XA(TooRL(C}6O*NG^cKX5ES>-ko=OYBm#w&>D#Frhgi zB3Flq(3ddWy~?Lj(7t~83!3QR#`hfXELVI?soJTou0G_R!!#Oczr6<;f`uq2s+S)7_5PB7t`6yi+=o z!mUbi#XAnHAGR+@3JOWt+3uC2i?l1qc8hr1i!Ehpr0uM8Jbj*D;ENC15Ps3#EsD=A@>=(xm~*g9w=7`5 zdq!?1V-&%mHw(k_bomDpfBfp7>H>V=<9ge3uEK0_%hSwk+wO; z$&3jjTl8we8|P*JNjTF#wNIeo#KRIS4|ZO+?LJbImi|H^9N8%LgT%j#oT9Zh^M;d}z1_8n9`Q7fT>wgitxBgwQKWHc*s z3ZE96A>~$;4N?ih^1Oju6}UqT~8$I|C#(L9oG=0!03HnZ;{DbaI_CjH^k9)%*FY!3}~d(UqwdGpe|hv z{vimZ8!cRl8%gO-SxU%?Hj!D*JWUw}tZy#^R?@+Y1U_|3@C93hUR4*(q;SJD7LPJS{z%%{O|c^@1$f+n{s^ zm>ufMp-S8*{`BDDsd*JVk8xAoeg4dQD_VoobG^BBQe^mr>biekx)ixDDJN-qy5nEe z96eXOO2G=x^zt{|_}zm=o;iwY2m~gM<+)n)9smxkfyejL70)6poLKD>Gc?J8L5M){ zxk@kpIK4G@BMbMbFHUP0wF=cAs(bJ(9v(Hm{Aof;D=>Rv_H-Oq@#HugQZ7!SF3HaVjkXrnBvk59t5%PupxdsM~#G4n_w}bvv z*Q4V}|K!!3qI%u=k5LV=;YJwF{(7?Ups2wMVrFtD4UYBF-IF?|GT#&aA0h3xgGp~7 zj)j(4VxPvb#zUQPj#S#WzvGJ3zNtaYbF@d}c&AtO&PafhS_*(>@%#BxD(G5hSidmh z&GL*riY};f=*s+ zqV?_Bm4I&iPJX3}#ZoK3YW<5e*E*%BfVj)r(AIu&NM)p`v?ftn%`G)CPWPV8M?pJZO;mZyfn+YriYW+JRkLK2UYo zu3lZ@kXY3AWv$wE&itINBuh3F%e2qzs*5(!N&kH+Su0y{Y^6swAP*VWE><`RVgOM)C`pR6c;Hv3s>5CO1TEJk})~b^unL|c(~bf=y-$q zDLb*sdCa8N{`dFI+Wvwqm>LRaA2!G2fD;s*JtyDbiVT+D?NPQcPcqjjtX}Otq{6Wu zqkdW7B)2XPPV38~wQ)_gNdy8tn3!D^E${-DZ2ua0;yv!n*7d&Tr~6b);96^&Za84e|L6MUE_dxrZW zz{qS1bs4!DPmi*H6L41iRnU&l!p|A2*smYb|D?U7+n~{F^)--63vA_G_%l*#9#zi#tR!?HIhmJn**%HgOGTg8J+*>xtw~ixQaP@{JPVn|ZLJ0+) zxYZbWXK7Bdb90bb2&NbqF1ISt2C0!blHDUyjy#rj&{&tuotio>rC8z{B{%2j2$&ab zmd+)`rD*UPD;RKV;5m9}Tnt7vnz{9iD9I_E>Gne*!pO>aolKv4Nm(XIY-<^uo=jFT zS&>&FNK_0ty>QBOHhB&4`L7TLn7V~RlCo(=rwTGE#wyws@<9q*`*;hlUY^y7Rp9kb z|Grhji{)d`&5@-aqrFM%_G!SE7rG- zO%2M5zVWVs4;yIbTlBF*DvbZCo!`g~x4iu&y7LA4;jxiB0m@e#)^#Si1M_Jtzdn2K zLAc)}A?_nF5bGc1-CM&P)I-hOq(GQoy-&L-Uge>h^(uZT&FRAPX*8*h+D@mEdg0DO zFS6uS_Mh2N%wLNCQ~8!wn9lw5TW!YN(lgmIBpy=w6B3;PL$`~7*rwW={^V4n?#7B}n3aSp;z$t%i1qq7rD@d{5?xjA;Sbfs3 z*xPky=4ZC!?NoVUF^-kh>ifxHmPaU~6w-*psyz|CpzcyYmHeOHg{z9X*|pD(Q$~qm z|A@TEE}Q3wo2z~_HH3|+2Wg-<%E^)m>gAiHBI*B14vWd-8K#DTS>;+jEJ^X5={ldL z`ExWk0Q6ue+RhNRdv^9O+#^fBztb1+@;Y#PXBVq0^qg?1phemcX%eaj2Sx6A?J1a8Z==q}&sw&xHMNF#1>k4Zjf|1du`CoLr zU#kB5Sle*ido}m4N{Pu+@O=N26Fw8C(=&8KI6%G4=IVbwY{Uzj?B4VmPBG5t-xSqzx)8#y6)|0qI`O z8lb-vND=XZV?q;hGquEUTHUZjwlo;D%WjjTxny!_Mr$t^fU1YlfhkQo!0NGpUU(xP z$ruuaQD+>r1DF-;!87G;9n5I*For(p7aT!G(P*O>@NV7`-{jlJu5ix_IH6|$N6@Jq(PdKtKf#TfSN@)*r_|GNiZ3V+mJOQX*M)8^d$oAy|!P<7_ zJ-7$j1aP8Dk=qESodKDWfQYC~V&tc-Y4F;lMf#6kfVL3=DwD$Q8~B|eV3fs@hv6-6 zfxaL1#Rr`?k?W3{^7<;8tzE2K%+R6t77(4ms0V@Q?{=A8KBZtWMX2wGezzT7fa;m% z-lOIE2es^7);?*3BKgonX$-K?k=8TFY=Ke|GABDgp<_dwNJOAUu{>ruGy=G}uOE`5 zHvD|nvtUI%M*0qE51;$c#7rTXR*qhYnktx^y`@M5q36CoxBSX?;TvkId1VGxIi#R* z*9=YPXkraIFP0U@?u%-#gMCt(1B*KXU9wE^b2(wB8N)$%Dqa3f!A&Xd$f`#_DNnIT zu~x`q0lt3(!9D&Qj)&b~&)JkIe+`b7KAD)j1oPs}TVE5E9!>6J48oe7x8`v$)T_2H zW~OAQMvn8oWV`oU@E|u;b%-3_(>pK$pgeZsplJAbtyDS>E)W+f?C+}g)$z+9<%FV! z1Nm)~>hl62j{tcH6Y3r%tAJl`fVuQVc)qv-Z$ezK09b$fRq?4;@W`ItYgv z?+WDRXsy7DeR1;s{&V|fikXU>__}#dc8ooV*gbT;3bL)iAmz49eMAHP(i8AvE8w+0 zjQRqmaNM))9jhz9^cbm3DELt++8jisy%lKzCae;@3!INSQ>9}%Un6xBBTZhSMREQv zcsEmRtiUVsh5W%IK1sHZqqx)p&ez)Mu;Ns5UfHUjtd1#m#|#(Ml;?uHHwvxM$jksF z>;&Gq0a4A$5*oDNv8BpiPf#n^${cRc%wmAcJv<%0yB+@R);!doX-G)wes}c=$X|rsGwz|TZ z_R&?5c~G??j3fSTw*0vaUlPVH_(?uxkQ*GaHP{&c_>&%?2xW8AWK*tXFy@Th=L-`! zn&*_%ujMN?3qK&h#5}CYwzy(Sh(Va9gK2oXqIy_8$kPNk5?hW-^eFP~NcEiHE^l0^ zEDg%yO1gU0p8T?~`vR=@a`R z0^KNCbT3T|?~k8*542z*lY79yds>^Q75CX?(|Qh;;ONdYdbuu3&@pZAuzGjD5SwT&iib~jtz~ek0?2byJVhv2aJ<_-MiA`D> zN7l2TslWRrCH37QhuoY6eumzAwn?)dK8;?7oBi~U`5b$mJjn=nu^HFaaLN7pGFmxz z-C*__FHD1bV{~0*L=s{ONTVkW!}=HwPt|t2Ge5jmd3BTZ{i=C<#Jt z*8UKy$)PrYBUF7Ig~>^dg>31K)Al3xQr$+kb0xLISB=0 z3Zc7lccd}!gqK2O`v)~!RWw5##j%b%-;c|kQ;%e(MKB*PQpVxG+iJc zq#?g%ny!Q=fLEJ1>e{7Uupnq*WC)R6O`)BR<|o^j8kd=gFmd8ee?XI2&T*GN4dn4Lc-e58z#U1|&w$gFi zQ|2`k>}NcwQJWhNICPQto-MJe$=u?1SyVwkcVPjTPT55rBs?Ge7^vM*i^H%3Th-k{ zW(pKsdiJ(=<%|1&?`8DrTE)g;1(C_)en{dFa+h;XrvW+tL?~?da?#)Zg7zPZRF!u5 z%@4o&%B_|cVJDLs(xAUaP|L7Qf>D{dDapmxE+gL7ti5p1$&kT%xr zh=BRbgUhC}^5;j|)Y`#7#)5JR%nXK6>YO@W5Rn{z3xN1`#C8rwBaKZ;VYcC3N$<+d zs`mn;P#i^-uYw->?)+$N%%L1%LJ901Wef5g&@!k1O*|ORTGDmk>O>PkVmg|nG|~1T zn!o|Zl}$O+LzzDfQG2mk?NQ+!TRn%zqo^=ifWj@?vG@B0l9H#-&8fwEqr|+S|5573 z+1s7H2YoW;>HoJb>M*^$uh3$xTIEv8bqkma6}kNC-2ia_)n!^RQ9FW+={kha0^gu1 zMnJt3A(CqD5j0(9VIti>(%u|fy}z>@;*o(aAH-YV&Ccx2!VW+U_3T}0a{B!xC?{Qi zURHY0MRh?aoam$83g!9dqy8iuId!G(BM4(0dw#G+8xJOw?xDdXzu=#L6ONqIcz&Xz zb^XdV>JC*th->d&SSf{OBpNFsPR-|@v!BfQB0+b_LS+C+$fm(6dnRk4YRywn2wMV9rGAe ziV>anj3&AC$|&b3-X}$Ct6?~%Vet7kWS&m_DMS@?1&$5go4`;2&d;2-+>NK~(}$bCZHt4#u>_nN0sLb5Vhb|8Z*mPR}{B=Y7xF#0t6y@f)k^7|rG z%@~EmthkD3{lxGt!=Oquj=Z$(>fN)DKpll&ObO$7ji}{2M$e8{qCFprePEOjNUQem zLw5e7PA-}|Rr)nYJ9d|LwuvSvVQt`?2X_p;DV+e_puw9&Cj31#f`j^J;jXP2 z$X#`t%pE%X)`AI-qvstzUZN)`r^NPZ@D=Lwoy%2J`FaZt^eBJtlPA!RvlqbW(rM;L zuXvxQ5;wbu;i@i7$qn<-qYx{a$(4u;*WYR`7WC)GrNbL}Tk=ks(1UiwbGLC3Ldz}K zj!oe8W=;!ol2l){YoNvqQFLwkSyEfLK_&fes)6hZnL6&6$csTYJJlixC-6uG{OYg1 z_6@qJfb}0afep^LS%lV9jIXo+86ImVU}}5iXo?-ZNKfQ*Ll?6n9!ciTZ|G&}|`B3cg3zq`$1m4=*gW@vcBvp&onE7sDG`~jS< zVX#)k8JMWxf;Ruwl}LX*I|mMGi6$w2uSv=4Dt?hLz|6=&n3&wj{%_Bf02uNy&Dtd^ z6d8si#utMO1po3{TwTHk`9A{moE*7>;KjpU&}Dr`n@wzY)rhm_94@d^n_b;}tZ0w%C@;-WFqsU9#iJp022){F=Zkr@lczJ zo(2CBd1bUDc_~jga@0xXXq~=7$@ozC;A%Fd7(S5fKAFWEpWorV2FYF!!3_m_Dvt7R zp>yt5tbXLwYY=+EH+ucJN7)$T>&QD)Up80uUQMMrJ@6s9&w5`x{-UMq$3t}jdasUC z4W!#WQPfgTx36(ZxqGd$v(PD5?lFmpX^1oZT#8sMwQ<2(W}DKPp93#qc22L<_rA3S zA(X5M7v3XW$NdSHz9BInY=PbiKE2D%EAn{WHXhUOkSVd{(%cJ1$vC|JJlc1;ji`P) zaC8p$8w69b%yz|kqdnC%XllV<2(dJ%x0nr5^h@Ae-F%#49i4t<^r@_wd^Ucu3$aqZ zEBweiVYBZTfdJ3bnP}z@58tVVP*WmNVELKDlMgH6%#=A7S8v@Eq&dLoBcD040?S@_ zj(CB6SC*_)4sGu>TTe4end5XM3k?CJwpm&uT6s2}uLCgJTQ0edayz1i)=5kqI@J#3 z9VDIK|41*2bKlBq*DF?We2}ij=umA>zkZz5I5Tg@9vOAO9fG11{v3I87JK97<7>pXPvFEXI>=UvpYhkr z$aAFW>}Fv}$^V5DKEjGU84})a@M1ok#5(DMsuT-yH1TOYhD@^~s~Wv$_vborM!HV? z`aEpsJHf(#>EAv71H_D!7V(FNeXp+nM{0Bgmq?{mH`I?Oj+CADS{l)MLwqFpBr&8= zuc&rv*@uvF7FvIS_ncUQH_TGetEbJ9Gmul2Ece!f#`?_r&g7hyb9`E{|Q_ z6aSJE@}gl$KrlE)6->yrr2cpRScxDL^x6McEzO-P7cg2;)18l{C}6Zw%70whaZc9% zoksG1GSH)k;p%@Yfq%_z1GF3E(8q@VOKo(VC4LP(HCaTp(I^ze-{z$%k$`KA|EL`y zmco*`_ia!7rXxOG0;KT76n}!k^lTB6^1p{u9aM8R{2inh$gFj%HX+~zQiWX5l7&p3 z#Cj8IE^E*`kD%FCX>gQSwuTLX`oGW>2%dqgyqHy8y%_jEgGjPLLLtP+4+cS-u0W;} zPUpuF$_gNs9^j8MzVsZbAz75OMvfb5G&&1vbWapjbGlprvnh)<)1W|pq3zJN#Q}~! zSKsL*+vti$^5gHe(Y8_1qb-Ce@~w6XNKS*I@sb56$F;MmSVy{BsMSs8>_L1Uv9%KV z@oq0c{IPwxjtsyquJC#t0^x}oRnTZ{ZUWtl6M4mm5;@ZD62_{@FOqLnI9Y~?4&I{zte%FLV)6m2`P-o_gV2t{dh2%=1!h~ z@cJl=(u9V*7M##Tx-8Kc1j=5C7aWfNusY2D^Dw>FdQ40(9OBmdSokexZVAMuFu&DB zsE#C^pM5d0hFsxtJvt|u{CorESZlnoNs-i1%x+T16|vx8G9R*V_Kc1XxzF**V4hCmm@hU^y_l;GdNl-a z`Y|C3{1Vu;-w8DLe@gfSd%R5&#s2qDy7KO(j+CJ}eBeY9Rj3E`9*z5Xx+#r+Fy0as z(Gk}?Pm43D0@aPF>72e<+dT>(J1j6ScGTZA=g8Nw<}rc7YO@Y`8;Sh5pC|q;${e6& zxS=77C4coQ65fa&xPiTsPgr`$8~t$SBqDoN%Ei_n(>W+DD19L#lgXNcn{Tyi2zK8$ zrmiyF_8@>z`qby2LUGz1-;W^syDH{mo(tgG^XsLmrByu9Z|Ru;D1A}Dr$sJbA#_@5 z-gYWx77lefM=qaj_3raTa#pOeDIFAzERy(0I79gT@;2(%WaJHeGXm!TY8ck16Xna% z^EpMJYb`dGVD$AdiQ|kY-CC{YZ5O?}%vlfH`%n|W^ML;GtwF?_iSVl~U%j_QMr^0* z?LuUQ)f74FVS6Azw2y9EMIP*V2)Z|qJ-T&a5Rwp0@Ls&zFNiS&GWHs+Mo*F#JUsR~wQbJ1vIPh4p1k#fNyB=pMclxTX$Qh+QpvL%&N< zAx8hPot-QqkI5Nda%%qywpAIWE_l0=ulsBbISf3%vD~t|1qE!gw&j0rl9GYbl^}nd zBV-9Yi55+mH=&AmYOW)vW~NDv1xKdj#~5W3$RCuAjpL~3D9S)46Mtw1qkjmXKyU&= z?XgW}^rRRSHv2@EEsHdom*AzNHwEwSra3j8Dt|wmD37bY2SvVK=5S}-EWI0QPaxjM zf}&x2AZ-(6n-OOQT4{6Nr$SsQC6{f|dyaK7Icpo%*f4yx_dR(2T=g^I6_$;57eN=E zQYX`1ovZZ=UeWLu3t?KlWvE#aZJ8nMPi!gZ`M@KFH9#54<^PMkHxH-!ecMJCMXVBq zLS@RhkRd5DMM{P;Eg6aoWu}xePZ=^4G8D=ztjsK>3`HVC=4lbBWR5as+}FK)f5(2G zef-}2JkR?cdmqO>_WG-$wLa_q+@I^duJb&v^Lp~|&Py9H7R@gLk=3xkHOJmg@87i; zg^mSHRyZ0p^`O1OUO4*VNotSw(g`TG_rkh8+PFo|kzO1oztahra5*Hoh#IN(P)Gj{ zT~zg(`)H%8;aL~6ZcDMfUnF+39eT^9Y2%F0H_|hO(?5e&;@{Ge*H)lelkjj=(`6F* zI-$cMq^g3v5VRK2V}dm4S$o-KUw``!QSsKZpvDxnpZ{=bK{@y&2Ql%*sa{d&36d~# zKI_s4;d%Jl{2FjywMdXF54(ptG3&)1VC2F!xZ;Lr7~gLt12BhcP2Fln$J;cpE78_D zEAv9Ym#4?8z-A>bh- z^&1ihWf{WMjY*<&fZ}Le>?Xi(uHXC4MyN^o*H$i(gpiEA&Sqr|x-oYnfQal^#oLQW zpEU|~G;OUAfr@npjD@LV5RbRV<^~L$Zj0Q6ZLs2_)JHqx;fOK^1TQ|^*QNP+UOoGP zJDld<*FKPi!gFwCby}yw#D1enW9=OR_R-i_-UlsVH=jp(Ip2o9s*itbO*2~G zPLId+IZjk{*}DL?M^8piEVqkVNp=C9=PC`(C@BJUVx^I(fn>5QQs*LC6p;sF*WUTg zAtf~QMTuWj_Emj-4^-bDL*GFr6hy`pA-^bM6T`2eZW%L(YvNxGulZ4ZtAOoSX}-vv zI)oV9EjqABV~BS;FrSKx!WQX(2Uf&98d+5Xf<<;j5~CS;0qE?N-$VynTfnF>D0ja7 z(aEdZig$8`q@^x0Wp$VH=W^hLiFubw5s6pJPwri9o^ud+7j&$N3+UgsXqm<(GK zxlBQBi-O?7jQZ z4;24!eL$zXd^{~oe}dzogDdRzdbg}bDgVAMjd-ts4gX%A7|Ice*?r6V22G${0^gIB zKj5pTqf~<$yp9bcFG%FQH3v8;laP8pJ;JwFNPAe$SbKt4C;--mXvAxA_ifxjTqfQp zM`<2t1A54k?hVpkg!ug00p_hXoO(dDcD(-5fumd{%^Ize5KP?$9cc%mzCK^}x1qr* zKpYPp@N?-0tX=u4zcr0>cX(== z@EXeqeY!^#WJ@&~8AzGec?Y=;3%#lUCd__)8S3zZD8KEKOdQ*v z&miC3YwUpvYMQIAP+tC^e?IPIOHqp&Xby%()1MT;7Z2EBJ)9u9r4pLTDf`AaWO5 z|LhCZ&P>1!SgR#zvFRU&U zg}bHhLW&zjZd2k**F>j4kA_>Mh{fXJ7mbod`TOZ0w`)wtNY}`q&Fqkf*bFXDafgQijzl zaw=UPgpCL%?Jxd?9Ta;|0%d?#;Z$K!%|5SdOV~wgrs%5rPUUNzEZX4)vCyPdVt%t6 zb*RB9%uk)rTmqH`_L)s;ug|-1zi&ZW*Nb3_YjC9ALipqvI(#U)MHVS4$&ZnUeh)Us zHa&hB$qZlX?u~Usr{|t;iY|wzv!%{`(sLuwOS7P31m5ppn#@ z2D8cP*LB`~Dn9W+inHy7T8vi^-#eQvfjo)pTWJ!aGp%l~u1hxuD?ammjJq&om0-?T z<-c)%Becy4=!uBf#9V&nXh9yH*FT8a8aymKOuR7}Y6qrY#cGu|E$Ho+qW+nfWu#AD zX3b1LZcULKw)FV%fCV~Lj(`A9J<}P$7>Yy{2`$-{YWRQvz5vaD5WP*m!Us267kbaF z_(PZXN50sAW0G%qJ=JL}Xmk zCKQ?i17Gx4Y($v(j@xj;oJjTP>8&2gIvaNL30qLHzYPj+Y=>Z6e_ zi7naLqkgR1GSP$JG1WLnakOQ--dT;>RIkP9Q!Ck!!<6iXR2SJ<)9W1%8W;NGuRa2$OG%&TSb(Y-H*- zA~xq_k)pV8{~n$*He)NN_#20JReD4OJR`w1;{JweAIGgOqrw z*dRTn7jDHGnJwY8v5ojw`h)+p{3s#bx0}Y& z=3>&TP|-tIbW|?H8e#uVGM4_XD%xXM!I68}cIf#*{KK6_aCdxu%MUdPml;n?#n#?6 zS4jONbD!eG4=GqA3c;36_48&o6gXG-N-xHy?d;y^xe#sm#G#+TRe^@qCg?exyt?=) zx|4)EhPx61j*n{y4(;&2nGm7-rLT>~i`5`IKW=@V)K=OycQo>3OhoITtB$BYidz?S z&!wmyZ?eCw!BDubCS#4ZF#MsBancnXWH<+LAx< zHd3C#O{9i9?!Fs;K(J(BX8eg3O}8UTUG~X-gODK()ZHuud1(>73Uyqn>07nFW2oVL z&(u>6FWi3p9!cMG(t0n%8zsRlCX(ehIN!9=xzxQox$}KMxumkyAqfWT#_#rByc?JQ zc(+f-r99Z=7D}CvZt3p7yKqmn@4RbcbxA?}_nmRm$~k|XrS&dIa7%R-4!0fl{_tSm zEsvstZmUBKe8m?7Uhmmd#ynkBu^i^Lw=f-9d@9<~>$W%Du`}6Bb7L_-arCtJtkuE*c{oP> zB>ZP0fsOWg_Kl-F&0)S_y;-q1peNY<8q2Nv#9J*&O{Y)=$m#%bO*u`uRS6y$GGyb6}+-=2G{jzhnp8C+H_Zf%P5& zd(%g>k9OdW)6TlB!`^yW&;I`OQQ4B&Ki+yZ^En;Y6)w@tb$&g!SSQ}%?ELJX?l#?M z%ImHPmNd6$9$5P~sWx_esQG$s=e*uMf32jHSh4adn&cdurq}78@5d+gQa}G2IWBKz zeji(|lJ?&=y;#3<<91Pvh~gIwXFdMnB1L!?gY`Mh*fB`f*@QTA1YQjIt)_WU-~@8s z{iDM!ptT#$mPt1}*>abaF8-U=YAUi-3rjatXWZ>2-;p(jWOa$IodMOyuI`FSdr7(a zFWbGvKwt2$K>|rwpd&MW9Wl*(t&h9jA=3WT>rUipn{yDE z^*zoA0ndJ!GfTc=c*J636I(ClXbZJ zj-Cr3Tj2eI6J*^7CIZv|R>(i{nEXp!r=U2up+pJ>CT!q^N|x>Gk|ay%P-yvI($fC_ zU7|~l$>30)Fq*8_5t9by(IbGe&>Gtpsoej358~u*dfHJrHU&`EW z@L?z4iT^8mB1whDL!1Jk1M&-IHhSfFgjD8m2nK0_5EtZ?IM50mCHFYPu+%*W2ac^D zhKd&1i`3T-KwBGP$&hZ>(-W$u)Jw_oW>EfzMa&z4T6<*$i4``GsYUGHj%Ii09JMKR z`G;IW+N8iYkQLV=-w}kU-2^p4FtRg}g3|S!z@LcVYdxQJf0UW;x8sP)UK9I`=`t8^igp{3R9}6fc!#5=O02~ib{SF|C zam6fD3Un}dUJ;apa(tw_+YaB1Ptaun_L`{#4TQ=F32rEUuRK$rTBG9Qry)uSx@{gyyrKfSK$;DR-ak%RF+yi=glu z&s}=Ht>@SyIKI}GVn^um7g$*k8|^Lf*V%q9e4W0g(H-hgbG4Hy!mf-b0JuQ;&DHz8la6^nz(Rw!v%ftpn4b9Ae~&)CWqXa|2- z!3Wo+%MY|5_QbYCboWup_aQdGFg$$E6Z;5MLu$x7#T*QhIs#Jc_R5$*UCkEZwC^V1*WU|&L7?P0qaBFhG%mSNiFwRc53(SZL?x>& zKFm(dr#W3;{YCJC$lnfRLNClfBKNSHT~D?{;X9aQGIJpJN(<}PU^|R=JCcC!luf|Z z0aSjn8JTk;k+v=eHS>4M6h)tR-LQI)COgr+#QW_!i z;#f06AZFP8d@kOZiOM75BQnu#NO0|sP+si5L*`l;-t~#62qhEF)sS_S|mrM6yVu?PehY1?crX6 zJAK)coq1)wP0F$%^3(&C_dj5-9`IoTt0|o?l7bM;W#rF4CUAyN50>A44cMvO^CdEp z`vdgWA+g*R5jLzwC+>+IypZr>;ZWks_&-3G>8`g=g16-!5TH3B5qk~vHD7u5h{9<6 z<9&{{KP&Lam>=Y99*fbv81EYkPhi5ETVF1U@7wXZgZ~7aWqM9Xhf&dxuDp&USG~7C z!!C5?Ry(|(Y&=(QB{3=)9Rz}tl5pv!VzmTcO9S2Y0Cmcv!AXfjW{PEmFw(EeRrZ0lgJ+5FM2E%#usMbylM)6ItZ8we{s|*Um zaUWZ)zJ-ZSFPbLc7-r1OzzC^QZ4+)(Dcm*D^}|F3E122RBXtBGfMOuPjG-|jG zbu%C7m7&96d^5yjs8n|m^m5FhA!1J5^H5t>5ImwtW&g8NT(<`B+;0jod4?q)aeCR2 z>n&GV8!0h{mwZ!&F&NB)V?o87S36D4LEs}oS4TI%7);P+(djv9ZuwIV!q{6t;c{Jn ze`9}>vmuxdVs4L7rB9D}Hx6w87GDM-{ex|1B~3pl%sWF{f|%44&Oe6EWwJbEW$A|m;~aHISWAf$7eL&h|0e)^-EXEkC0z&h&y(5 z@{Ad%wr9ZOe)B1GMf7aRUvFeugUhrB;q8#rB9N^oKb^4M;tlk&O@}k$iT&?ybwjqX z9gQ)9(S)@~~zCzloYGOxY&XJ4|3zBe&B>9{ZjWkjGC^Z|Xc-H>zs@gVqCRJRvAjEkE6F1Z2L9KKpw2fCn4 z_e`^drkI*nc_x*l`_-@mdwL2?XB}#7MfBgXrY&8gBJO1I z&3-=SRhN|%(Ms{%l}@Na0xQpgI)J0!Re_GsxXeC&@zB}Y0u2qu~LKs?X~jN-R7(aF~`aYnbl zmw*eQ(@S=MbspFE-kN^#W__;S>I= zHU4M^I2o)VMIltyya;VX_b zwsfWF|AHux*;qt@u2FG8JN3aGWwYl5+U{e*q%EyA%%j879m}{qY92>%)@wkr%U0+b zWO;3tnwn=kKYedi{(&vg8)ziTBgWC;FChk^`sB?+4uv5&CVtK|(aub{7VkZL>MMn% zr-ukmkq$3xd#ZW;?|fyNHa=$e0pYpOme)#*#kv+UL~BlU>#N&KHP3~fF+$mEe1NUj zUQMfu#{zxQ%!EnlTD6zCg&3LnaM`*n2Td2v8H`LVyOWI`66?))u3nxhVSj0RcE&Bc z@_@2PYeHNut}!6{jSg38P>Qw0Z6!8I>#t9^l!IIwa@1N^DC^){H3qdv1+(#po!UU5 z*?q)c_P3s%pOb82k8bUFnHOQgHp5H4q{w4!u<4X%-jI&}2GaI7?Z*VBTsd0A%1iRW>TU|194@ z9Fw2$#Wi(X|I#JGGchy&Q8*6;%Dc89ac+OjqYnHVr75a&<;}s6 zOwqq!8gSVtoj@-J7QgM!!uYlkKy^CP?o8{sQ0|ZeI&cID7{ArFaeAY5PS?Si9%E+D%}MR55R4_|6JPG0k} z;4evn^DVs+rHdF$PTT`A^lPStqjZT`*R`DE%V-RuO0$3XKPVNN#T`2fn%cJ zQHMPyr?JPTCpX>;v|dZlS9Hz=!aC>tAxQtWd{lpA-e^e}S)=EWw}(bQB0T@bew0+x zK--o=W_i}71%t6Xx4k(e!r}ZJ0N%Ui3F>0?90t(AZ2o6UN&Imu5;Py1gFkgC)Xm(4 zDJl%-@w8D^#bQs0u0{Exrd5N4%LR_okhqW%;AHDbt$fxLBY1mo2GT`H1zz;S5o`}t z+rj`Of6}L+5o&$wa@TcOJsoOzcpqN}9gx(`uZqyLU2O4kX*N7Tpb3xQ}F; zd8OQ0pJ8TgMR)B}tk4s5((+wO@*MOse&wk7=kNJPhkvU#Kv<0bW(R>HUKhSatxtjR ztNdNzu!YLN%I*tdEwl6KFuu6~5CCm#A#2xveRE_k)4VRU-DE#RnH0T;u8{Z*fbP=M zv<@lBSi4H>y{NGe z^+PUb)awwo#Jmn`T}2PRBYNym}|<`CXC?t^D~|A2=^*P4!x` zuN8x>_egyy)R55V#x(^so_~G&&`B&Eq*t@}V9f-{kP|E!ihh(upTTvQonDr4cN6G% z$0#NM1w|nW8E_#7Z*!`|gac?WmGMMJ=Eh-=7L<7bK34QdH&cz-)CaJ>4RO+8&tHS( zOORo$-F7hsDBc3^Odu7gMsb_`yaE{Rgg2l3C4(AMt}Y#Vq< z@KLJpT;MW<7LJO^0=*oao|H2?JfP5zb_s_VWeD~dveRmNsUVJs%ts<*XW_&ZXc%7t z%!{9;LXZ3>o~Ab{Df**A2h1R z0^~6d=#I#A4TO!t(BZj)b^sI|q22Def{B@xQk<~ix7jG8O5FrXD~GuJ1J>m47b(3@ zfcpZ8@sdL>A=?9vgBj2$5h3dh-jSC9xK^ierpMBBeC|B1LKpv|IsUjDr{1Y7TNTau z&Y4@_n$TBUnqlPT^maz7;8d4NXDV=vgo}7aDHuGDR9`s$f|mxEQoFY}i1 zrwM4S!O;|9cVVwuUMrhqTBu_CP!M5#H(j`P;S-%TN+frb&sJfMN?X=n6ToFWR3FJE zJ?OqW1RC$15r)}XT*)7E!~8GJ{LQ|3DVq4*!?e35zwjiJ>kFnC^&CYa$UQ!J|B4UJ zGF*D<8E4|)CE3TYoi9tAM$hir;&V78hW_MEo}5`+24ZD}7vNm3GK>1X9FqI*v4r8K zN)MV{!A>wqoeT1}{eq{_hZ?YeMeo6jR6dfj)|sb#0(M%VMh}l>F}=j<#Kt5XejWpW znTLA*l7gN9LG03f&C*w9uxlVhMc)KflKcae)Wo2aXV$Uswu7Y+>7R3!tmu+#08}}3 zE!+->^r6PwPyJXdvDd=db_uvb2k1fCBrR@QwkCa9e%AGsm8e~x1v&oake!&Or|FaE zR6kLyk8)n?_QKDb(W5W6VdGN+GuG;M2+#?zDtLS5hL%Ia){$4$U!f$c5RplpJR4|^ zeSc?PpvCIjpu_;{l~78RnOoU%ltlXPfC9?h+@sxg(rfijfk5~G+mU1h?Fen&xiVv# z&EO13R@HLKXD;kS=mC+*GX$kNDF>3P-7PgO-i#n3XzBW2Ds)%n=}!e@^BT_#x{H=7 zr1uo`zN8RIvuT0xM6WM>>*-aCjR96ZKRE2Sph?B+%O=YTaRDK96B{W#CLhD8)o9_LqOx8Fpd~AA+5mhw5lE*3BN_SB-qlT?S89`KN zuj`lMu~aCW;N`o(vvB(@w!U;Uq3zEe%QLpDK45iQ(Q<|P5u1Ga2HT|uNIidc>tS}R>?&ELB~#!Rw&3M zd9NHK|GgLsIXL-G|C3tq-xf0(Zq&ZfFcy~r_(k27)i@DjdpH208W4X8XOiAFM5t)X zskPHLx)6YDJ3ypYR$*stv_hj$KY-ckuO-NzsHQdxlHPz%uvK>sKVO=(o1^)xO*VMgj^{Z zr7Q4H5^#H?laKpsuHOZ@b06HK+WL-RmweEIul6T~Q9D^4Yp#J0drrWId_2UNWaKjrFs*pCWM$fj5fxaoMExO z-7~|h9vAL12&k{CN;;Z02?6x@A(=bbM5qOv-h$+0L!1lVY+l`xQ`%$6KJoND$K0>m z7=@)H6m6`WTH$(7%?!M~SKtNa*z7z(HD`11FXNa2ai86tbEW*xEi?1M?}UejlU+HC zQ)RWm^aD_TvF2-40Af@jXEdfYQ1V&%9{|H}H*=_>%oCx@`3AkjtyI$U`#Nv$=+t+M zGrkeIb1X2#76H`c;}nrHFino}z6p5=8q8tC>`{yLhhY@U>e*_)A^R!=s;O3pS(gMi zFb}eW9;n-I)_sEnLw8-4{J%K809%pBhP8GJa|U!AK?_UJwqTGf?==lm?Fu1D&RqFh z>XT0W)|w%VaF94`?u_G&mMr!+Oxk)GO2(Qplxvq&Jg8Lp`;_-Jq%ci_zoM~zskQc6 ztIy_l3JV}QAYC+3kDY&bo9a1LH+l{6T`CqY$A$FB4( z(H*l6+(xr}7s9Z0xf{3Fs=V~!K(2m>{jWufQ)X++v#%(2P#eJgo&iepw^U8b$sK^oeIlYjKQ94IyOZ+S^hC_m`dHV8!?Lbz0QJg(S8u(}D15Lq zV>!K|;%bXJfIK_o^heT_-gCbH8bHe^oVlyW>C2n$i_qm~{Pu1hBGB-yROt3L41$^6hcn?6ZZ~*TaDYrkC9?+(;E)^JtIzNzq{#~d^KFWLqbkzaM&0>%# zHx^rMRg=(=6%xo&>>wTelOisUnkZJru4IT%s&G=p2pdYML@Yz3axX9YSezAGDob7k z&fADgUbpJ2aGU@5=4xIm)ZjT=8&IUNZ_=?zHh_Y{Yfv2M19N~~_XdZgj)gsn(n@(S z4u>j@;`J`bC5V(%SOXaTNgg`#E5hDQKQ`I>kS^p$P0{=jPn?%$hZP2k*MUwU0q`^8 zmwHSB(urYyb12mGU+Rna454w@4$3{jE-?B|79*^k7628Br2h5PN77cGpBc2a7rE@! zc1e@8ZhOb^^2CL~+Y>vkP94J&Vzz?MT>lZ}aZT8$v?00r=7^FVa7?33Pg<8htpMPo zGk%qfDrelI+I^rD@Tz`rA|B6c!a`vBt%ArYh%!wa>2W`vN#73gk$UtJDzq|>WyeD& zY-2W{I9mca!vHw+Y*e+0M^-TiP*RM)5&(DQkS8~NAU9`!VN=_;lHKJ2B&8H0EJ0N( zH~12GMAzCrIN17j(93@12#w+hhwAkYeSeN_)~d-q?4NJPEk5qq;xs8T4}2vEm+ z$|XOWoZmZ!LU4BkO{*#nHlVg8WdGwt*T{g*F;d2bXh6)|L-MoWN9+cZ_g_OSsv615NAt7{XZjQTneWj>F~^gp zlsHzPgKBXA<{KFfTV9?Gr0j`=1E=rU>#vksZ@uqlREq88koUY&?$H1f1{@#(_Ui#K z22jy07%wU*TGQV87{{h>FLxZsaYCLy9Azsj15 zb!~r!qytH^$H_&{C|^z0i!F(Sn%6yM&Pb%|qmmr`|}w!jkxhf|4KfA2Yuv)sx$A#_+n zB&tBL)Z5{8B13HT6gfR^ILx$Xa!iYP$QoBtQv-m85wwl1Tb*-hQ0Z`(d>SU)6@Thh z+H6ySn6`rY6bq2<*{wTi+QqvU;jlShoi9?}#hYDuh_^JW`q6W(^Xv#aRrKv}@aiMa z_Z(Olhy$>bk8N)moaW09+q}a_;re->Qq?|0=kSGJ2^QYQX@BK)rN;eisAR=gW^b@6 z-|@a+Pv_p^J_rY!Mc`w$#rNOn z6yD1F;PeL-ztqpnY42aKog(DD`T^px#VJ6K?_jHBJ_KV`IB8dB8o-tONA;0*C%mMv z%6--SBo_U(y|`T6uu`e$?x8R&3qzNzsE z>?TWJSWKKeZ5!AlgT}lVaC|eW?t$#eb9k2y?~eqQBd;_z0Pa}q&0TVwarq5ps)tz4 z@^)1c2`*J6(KCTdn&AtOwDA9}c>To{PMYQ29qfMG48BHjC!VR`gW0mvS}czG2<->k zFIZ|c5olIVTFlJ0*rY2yu7$d%WbMmQF&$P2YB(-YcLqMzW7O3;np4Bxf zv9XYf{H+oVd|_il(0{-u{?b`z>NT0HBcz3^7o5p!BF&nE0Hr5e`{)*(F68ym#O;J5 zvfMK4f@1;&Mo^XUogP=Y)6FwNF=IcLBe!#c$0NTF_Hc%g@lKSEIzd50zD1b-Mv70S zdnBGrbY=~J9B&%xx(7=-9kJGxqE_rlH~KC97`hV|+tt%6$)Abopu#a7kAw=z7@nCt zK;NNIkxB$WBxUS~wDSj;d2I6XN_p|R^z-upAt_`YX|OyctNTLZ_lfaS(3cRDYz1T!;<%cU6{>@aqo%^9;GCZ8 zMV~u>c;_+QcPn71u(~E-lvqU#w{m%2;EESmbDAGHKc*{?v-AUSa3cf?vtW}v7RJrs zxL?5h1-a^O1uJ+MHre2KIPwzc6X17y6Qmq$0YFq;u*)E{gM(}nhbhoMhs4bTe4g|0 z@qGju;n!>)?i&8gK()`-*@$goTH+XGorWW%Ea(}dFJQVTSo#(!gK7AVScP*GeQ?m$ zQhWnHqOTM`K+C${JG|xtWL856>qqHg1@9_oMwSaDjTXDRv- zxC5K43=){8B)PY{{G;%3X=RR;Wx!Sc=iBrr!SiEmS;$rI)FB&4Q161S zcK}oj6BGj=vYLK>#qzZvRt^T#OxEWZmb}(HhukEJs%3NqlCG%x}nzigy!Ix8nz!|v=2t;@0%+KkwR9-X0bHtn` zkhtA|a67j+zWDJ-W7_PIyi0yI4ItaKhDOm>Gk~ZMd;@jNN;7bSyibh25Pya4FnKlY z#sd03cqzK?UoF2{t|ss*MM*qbS22rW8Z1AHK~C<`ol41xFAJm;4b(tLf3Oe1R(Gn9 zvQ*3Z#a$DsU{patx*i~k&HH9IgLlp36jgm&lKn=r+uODU&yaIXOhQAiJCQ)wZTr&c z3e}@x2s;M#+Pj?|C`r=N1+=>-fSbzH@2C;$aq+0UuW3_nfQfW{=+iK#glli z-s?FRlBpr1x}vHj5KR6dPOd32N3EK4^qzkuG`<%fbc2dtMwl$y@C^@56^?)Ae}YP1 z?Xhy{Y%*>iv$f5eIcUVVvL`=sGB;EIJ`cCN$bt$!u^2~ zXRT;)^?SOR@G6_YoaTd|PXa65nUJ3iCFI53kvl20N4oTkl?w!wG*H@y^rvrvyFMCJu6bvp@P(_<#Rb3 znA@+G9J;!}%=xxkXQ*6kIeIojq86&G>CaTslTO}*LV0L2ukme6#s>AGOQ&5|fEDrl z)KsR~N#JZU6wbw_C#2=k4q^{2E<$B+DU>SI)~siZ5NC}~wJlUvTDxUCt2r~AJu6Pv zuf38hWjzz0{a%W6TU&&*I@Hd|K2wlAD}s;RPWhUH<(Q5$Xfo*cWrkV*Dca0`$A5N> zr1GmIi*S~hYWpteh1|V~j=K9wbY`^ek^3~IdXllZrOReel*_JQwFPn_wPS+`mYszM ziHdeCYCLrO+5=Wm+$tAWTqgTu@(E1LCN{ngf=aVn3{zi_Y@*e7T+kcMCY&c`AvS2! z{ivW;=LYr&F*((w+NkivIuCCSR(GV3dU#xxu&P&=vNW_C?`!Ko_|@5aX6&-DtIiJB z$KRoGbTOxeK;8ZIKwwr>H1Vhn9fY8=YAcj1RX-suOE9ra+T|_l`{ga&(Zjs_E?Bso ztHsmnCiw~TNRApheCB6deUZ^DIVwHA;6je+64)2A+gTLml;Hn~{aOg@jtsO`ICocC zbJUQ1fr1SW%YK;Crk1LbE z{{J&dC}(OP0Zc|(6m#<*%djP!Z?45km30C7Kt*bm|A_|6QVgMR;P`3)xn-Vxf3XxC z;$VMVPRAnlZdL&VI7r%|U*+lMqX9x;dq}HB#-MHKODL0|IoeF!+1j;#Mw_g_-@h1` z=ziz{%mwrfL5wh_v3djI%*fcp5_ADK0FrD=g=H!PdT9XEn=_Cnm7z-638iQt+Q8vv zw*g1hLpwtisgFa&W(=Hmup1~%3sKn*6>iP)@>Fjtlnyt5Gbea~D&TH6{&GL4HSM9T z$7@9#OP}oejn)ULRON00b(UTU6s@-#xRxPIeF?QG$h@j)0x-E3Vb#Er=X?R5B6cwo z=)0;40zclCg8C01GA2C84?d>jVi}9~pIs7qF6Mwg&VYz^iJ;W~$|)HHIiKAZCr8Z? zh6?AUgSW9Nq$jx`vRZ<66W2gKdq2 zW+S4Za`XuN0q58Zs5IvW;zUgyp;SP%han{Dl$9@_Ev6G`z}Bb_mMZPJPSLSf*$~}U zp0TkdueDsQR3-02P`Ok8f#GC*Fj`pd@Sb)BTjH@MIQc3y|H7%fd`;{Q=wB`&dC$mL zc8fFoy}3l8==lmr2H_rusEGCr+Ajx| z-7peKuwbh_yP~R9RhyxJ@Y>SHOQ0~)FbEKc1OxH7(7R6hRW6+L5ENHim5_Owq(ZV~ z+fAr@v(w=WHD<$EsWutGNE{t8OkTgne}ljLT&o~ji1w4rY6DR44VZUW4Ap2K zXf=f1LZgE)s1!_&Wb0dPXcfE{099x)e67AvW+8hJPb~qEd)DJGM&bd|s($62sb&jU z(iQ=f(T5!cr-pUVJ4rl+I&YOB7Wm}9H?mQ(<}h6K<lK(f5?gd%E3vZS0ztpVwk6GxSZWQ-u-u}gqY)+Gqg!+Uey1~O411$NpR z{UiXyWl&m>pdp}wD18*BQ#_zMd}{7B&;afC;ISjYCbakhK3()Lp*r~j4_>`yMDNTk z4&?UiHu?=xs+CtrUSz3*p8E6)p9$QJ*?)d~`hE~IaeJ;4DnZt%GI*Sg;rXk5Wj7vO zW~fChT5^22wgRlcO7blyRH{X~0Zt2X6+q>m(c}`^@+v$kk-`8`m%#ClltemrZ(j~7 z#%ObF=hJ6`inYvr^)g%5;b*o0s1wi>^(yHtC_}BIq?f=$WEw0D|HR1z;(@|H{p%EI zr5dbWQ6;qXvl3(w4$$f|vUY+=k@3;d*5kl!twFepCJq5=wtACs=6v@2GiU-`0#Q!A zy9NL?Uc*Yn8QVWLo)BzYszK)HsbB7V9bjj@+_l97$lQ*2%b`afdUA%-%uoqiWrwq4 zfZ7gw={7kT!x+;0aqDzjM9AHU=D)NwkpeoJho*4r>t{akC+|`C39vQ$;6&BRxHr`! zs2^9ykD?g5D=-1amcU2Isb5`-5!9Uq0IL`RRX_AFIc$L_2d)|Rc0UA~?_=%qfrwKZ zxH~&^Wa<`po>%PDqU~NvItb>Q5x3x1(Ww(!9 z!q;aefi?X=eirWHhFgQd7_x}8s^YQV)t(%4fX86>@Lj0l-I3v7e0^pVke)$xpC^3EO2_Sq;LN`d|4YbO;2%Q3qFqC7-Ot*qSzQ4eWpW?%-q&VCc8t`Hi!)||m%-PM;h;o~Z_ zsIHXaH3NHY2Et)PTKWAw56JeBWm%n9j$hWV01>>LiiJ;IxIO8mL%dX{k*|)mF4W&1nJfoxlPG0FX>(K!1L%+8d^WxhFbhJ8Oybp0Mqji`0nF z%}m3wGgsu)NlQ<4uW}12Zot7ajhcIxrJ;6rWi20C0UOH((|Xttw)11H%XhC6{aZDtET27`CQC5rmkP^B&hr#M*2Y+6-~#Wd72EaXPB7ml>7wZcOBh@> z0B-Krzd&OZS*bQ#o&9~%0Q>G6YWpd`Lf6rq6;!~wW`2P&H`fr(gOkG#26ngv#v%UX z^3a4gRUDR)c`%1f0_rtVAEKO6pBu#!iu9J>qVILdKn zqUJAdTZIdiRYpYHztW3ultlUo&3kf;h=g5_QJS25sg*YHse7JEC{u`wJpKrw82+;u zgo7y$bz3J@ydxjK@Ai|)3hb~dp6z0qEfIP=`;D*Rf4`X1@S)C>vLr5iPCVJVLoBwR zP&@~&PJh}&^WlK(Lum`>He=y=6YB9|^L7SfcelDEQV{W;#RLCFIFZ~7%Pc?bHwMZm zIE*wPmikpfUd9UevWhRp-Co$U1>j0wEn2lWSqbCb1FA2}+%wl(JcwmfnfZYgSgblb zR0f3UoXbpmcCQwobM$J=*`cI@=>0q_dVPerC9O7A0%rT_Q45()H%KpKuj!<`kXtFO zP9`kFjHLM7@74lgd~!kpodCHs>fX!_eX9z}?FFnH(MSOd^?sKfcD0~Hlv*O6*~U9w-?FF{{pIeG5806W)2D4Fkx|a0 zjV^=b-`-Ia1cGhh=^A6e_p@5uYX zovR0ofQ8Rm!B4|>nDCePDd(>CY>G#^pCm!iC(a|jWSBe!!@ z45vE9_G=dO47<=$rKMrz0$w-T`Bd4VHSMmwrb$u&36z6nW_Mq zKLB~fb7=o)#^DJ}-Nfz7U?X2fF3`$GrPlkZ z=o&r1$jJDQS}XDf2uaY7p{o41T|ob~LjSjNtkFH2S{PNiL+471pfy0ngDls>aMFTs zXZr*GvxcMp`bYhDlwaGQ{h#(_{cpb|=LMvodV9|a5mmsTv_PhQXlfNIn6%2XyxPUcsLX9K>h?oYw>VVw8{{{^bc~F?~-+fH3`_(5hcVLP`N7m9R zVG(_W??bD{V=1R0d-wn%Y7j2i0(zw=pA6vm=As{`q2d84#j0Ooi{PEv1eSZN1MiCmr#+PR*$$RNO2l`qT&>MykDADS0M}QoOLx=whnr7@0_L4 zE_(J-DA4<%N#1493$1mk@~$<=H>Q!^hG^HjD*p~phd*Py83sk>cOiQs0b)N5h(syK zxK>a;cxm)9eD_Fs5RP)H{Ai4A+Jt|!7TtmIH2~k2sV6Jh`)@(@R%TX94f7DnhLLV( zxavDj1n`~9{_6HX|_3Jeq$skZFmFGK1U?wP}1WFodlOSvb4}5;uC$6EA#D|10|V z8>p{Kmo#nyny3zcqsJ%z6)_7`h2fc;O+E#k-Sqnxm!TtI?ZXY?SyLF1H!_CoBN`!f zV1AIMfPe2wvdMCLfOJPBAcnp&ropx^ru=6Q5~L7f_8--@UMr!Fp#6-96*2Cqtp!pH zR9z7CE9#_wK=B5{@i;h!pbpJix%mW^vppYXIZArMVqn^9wGLoD?H>+W5-ctkLJ&}n zYz#Uo1dqoA$}vR|V0W5siEM#6{ABg}%XX13IM4m;1H9u;SsFZ89tN3G8Lv?+fYfs# zj>l^rO+z%fz)PD1Q2vhpy9fGK6wPG9rO zt~%7PC!L9_64}@H^QH4X z=egeJeXr}CKe{^S>YDZU``-8c*>1N(yUcJgrUU|{Cj=ugjKhNTq#?am-W|Y#oHC2yAIsdM!rHg5-*v;uGxW7k&+8Z`o5RrVZkl4__loK0Ku4A*cerD4-5^N#*6pVl0k9?yc zKrU_IscsNZ1?pP@C)q-C@trBBl7EE;h)@VCL_WlE1M9mtXW47!ecI7nFK0dQpN3aT z+#&#EkZVcjZ(96}*eM8~?WdT4ZAzsici)}&lo5PcC#Rfq6Jo=G&n+8lb-GSmof^9k zJK>MmZA3CiW3B)yx2DgsoO!g$KsdNJDZKnZ%VHnfCg#WRH?Ioj6&q45dH#by_2#ti zr8#DOU%98KV|_qNTuCgUXg^n{whJp5Vs;sBUZt%1A)vfRQqym~jmRyB+o|*Fs&c+-xId1Wn*hmhE|vbsb0`0%Q(C6#%I>ftT=PVb&4l1`LS*#V z6)XS2r2;cY=|;s@=fl{?){jS4Fe%bBz!^n(#Hnv)BO-cAgT z(hVWRAbYolPMc~m6ytLaz+gsx)|)3mf%bO zJ&MM)uM>TOf#9#|E6qoAOpEG)kv-gy%K3%9BWaFUA^^zlB1PU>mg?FwlJ~~?tcVyi zUo2HHQanD2Uz^%BPLNGd=9a_OvU&Ewus$@4Bv$y+cLZU1<$;#j4N%Iq0huU3USkF7 zt90vTi7mH?TH4iO*8~0?4ZW=%VA{2|J3u7B-G06Ffxd88qUG+n3zBa*mxMKa<9^*N zb{QTdu3)wxxVtH4jz+0qY4S!5&cL+D=*#=|h@A~~UgQVKwqM`v9@DA4P*0ML`)REOk-{VU(-rhaNae?`yTMl6TDmjzMjv*LXNt) z#N<-|_WJathKMggt{hPMQy8oF1e0Nb*Iq(;5 zGZfLq`*^-fAIA9Ztv|4eqJJhcaM_FXbv4P>UBy0Te2Y%(ez*?DanPOp3PqkA1}!ji zQjV9zDYe?@7xHuI$&67w34WGk+M)JpcJ7^?{eLr@V~Av))Uxg`FUv%?3Y~*+G?YW}twt3HeowiDFnZ z-Po#85svVlV+LZboGP2{^hwv0mw`{qAbsi;!xAF9N4m=QTeX*Sy1nN_XWF&4-##+I z$|^D?<($7X8h#mbBfYJ(+_#;;;yS&brWJTvZ7j%KNs4AS_{1A6&|J;_3Trk7aWm!y6j5FI+x$!Ig*PJ@T3h zWnP@p++{90Zd@N8yFImSxBf58PdGwI?V6O{__MGF7!ClYedk zCCLd)e+~v8K*a^xCzn`Gj8p$N6O?@Nl*nkv2J?`qA~v#cHYM(^a}xn(!OXQbphU~I z9Qgam8$QpYN&;Pw6Mmv-XYM17Vk%X-`<5(gIB6^)j1m!`nD2R66_{(*@~#820oC?n z-6(R*^e$*pSk=`I1w(zCOy06@?aS(OoU8&RT?=>Eq%wWJsCvsTEB}3CW%*+;Zq^5YMawCnu+kr zDk&}Xak7&#S10~{JL^k-!RFvBkJWIcU&lej>OXKCR|VNErT^@Esdq?ms7hEl;P<~E zjbf0{gc!E_lhb8yGQa9cOuZldGD3Rzf;wDS845qK8^incZ+?2VgbS0x;vhy3%Bg=) zp5VmO`?`i_Xi#8Gw#^W4cWN;vM3dBF5-as;uIELUNUC%mM3;Y|iFZvdM0E>O*?IF? zys}kk6c{CpoMEHz0{n)!!_WS$^l2=)bBQGE01=rR!nHUN1k)l)>#$U(3$Yq-667AK z`RynX7lU`0?XwHr+@FC@VP6S4zWUIGE#bxB7!Szhc@G=_BeY3RDzuu!R+Ll?Fk6^^ z;71x6PH$hVwM{x=@-OqIEU`UjsRt6RPgZ{2KTJq@Q1d8l}yMH_igqBG`S(@g<_pwK#pdPK?m zq8EuITsLId*a?;WU&M~RAmsZ&GRBrAuSLV$v|*D==|tI$`*O^ZH`KM?f$~)d6@N!T zO&mslJ`j3u6jj6B^Qo!CiU2LsQG!_(_r0Gs-2~>0Sz%AXNwlFJ6#@V|(30_?2fOcf z|CpX1#5r1lKdVj()Bfd(BlE}pojz;@VCH;M$|ecxS3{zka-AC1@U>sF$9 ze|K|M&%@#^htF#<3kXa+vLWy)J`Dy1UXLLa!$_y`Xc*mVKfGK6y(P+0wS(4Rj7bNk z=6Jg{ySM8+S(kFJ-2`a~TI)iwl4PinS|^!3fmS}dKO|Hw@Q>j;HO+_X^MD(CNLkCM zRVFbKqjzLB1zjr{`52bMn)G+w*h*T+;WidpKRIz#N{!$!_81>+gFUaiM1aj22*jK* zeJyR5A`~H=mvp7A7jn*8$DcVgjs8d02D1j3|2&8Wa)v&$hOCbt2^w~EacN2Hu!`u1 zs*Ne1VXSVYXsaM*j7jdUokjE^b6!&{))T4BWp8$|A7O_DO9pO0r!W!}8BdK3 z99)c;IjkI*wFisN4n%TwK0{AAd0<4`So$zWPF$>>`U!%JZ-s?kFBT20iv+CG(^ZmP zY9Vs5c=;00?_glgAH7D^)ID>e+n&Z{bBd3v-&TIo>jC4;$UwkrTqXSZDK7c?JT-7IN6uVoG}B|pH3m9aZ< z&W79xvJ#WGR=jAi=H?D;w*2c3-$mcWIfS38} zk;+v6+RLh^1|RExdy?>6qig6$Y|=cA=}RX+hHTx)-VKGS^Ci=@TFeui_J8y-Zwp-9 zk()Z{D!bD%-gjUid!aHlXDpey_Iv6|a}q)#k5O0froVl1 zbt$i9b(a1h>Vk2=3RBniN)?sw?TZu@nl%+4RVOQXj!pXV$EQU~^FOF7>`5$rLX|L{ zYPFQj&(Yl)XYYzMtnlh|xUe@7I>YI!nMKOhWPGB8iepe~4SqM;|uJLPQ`^;YGgqbd^u@Cq0>1{` zWE($|OzSl~=?? ztr7PbU(;N4-Xd@3TO^XR_nryo&5l~v?6-!Je$ubmbo9i6u7&d#lH|xs*6-pcnRr$3 zqRNj8wXzhUp8!0Md`BsS;HNCt^8Njofj}&h?v(oFi`~u(0 zDpgdm)s6bC$6i0M!u|rLsp_SdVVU-Oz2=;7I+sZc|SRa0<|OWaEvyx#wz5V-|g>|>A00zxwCOk|v>*Yl?D zb;P=Or=*PUi}E<8@s8Nl7%9j-IEw=+{`ibYb*e>v@$(sp|PHbTg73a0uJB8C8fu* zw(0Cvvy@G*1U3?Xz9?BDw368&A#?5!jlM8SS-dXnPuL=V+*jvMv-Yu?GS8^}juJE5 zo|Za0IHjpIzt7ajv>@@O>|Bbr%mBWeqMV%za-Q^mN0+VrIb%T^y<;zu4di+stbTt* zI|H8f;**Z9QX@%i2OZ zv?KCNR>xg0QemgBtqBMayO?Hd7lO2i^BdO6&$;7wW3MJCr zlLr8^hc-ryn3@nt)G$ zm^H}5U4-FK-{j9fYQgM$lo86;8O$XEo>>FIg8YugTP{`0TO&NB{A4cw^a~>TcSz&$ zVD;i%Ngp|psbDs7I$e=b!8C@TL!0)Z6BJs+O(0_t`CzNZUVsuo(bTEH4-NGNevy*NIYCVUZA8KwmR z5g92+sM$&nkN0Rphkn?m-r0JEAvxZP*Cdl+JvGhpS4v#4lv32@{f99Rk$1q_$T3{z zP>@3?8^BaDW77os<*WDNqZj@?YnW{LsMI^zk)r+8Re4;R`M)Vwdn_l;=>D~vPz45f z%xY^`u4QDAyI8H^w0*PjlMk5>ubX$x zc@ip@s+lw@@ccbU!n-IT=ll8xo~DlzQbt05PiVL|TFGj=Uh}nC@!ejfy`zJ)0QQRO z#E7OfI4Vprj9e7Kt~qLjOUAtA7D$YB??$&Lm+$Qk8u^g8$NY2axfIrwhEoYXM%=v_ zAN_6KZ(kA|BRTeZz5nOy4UE0skC8!fx>D4Nvtrs&b%lNc_NLh?i*JNT)VypptmLuk zZ&`QVRPoP|)G`PjC@!y9`JiE;R#8;GlZkEL#dn%YZk6KBN4t7t`ofdWYR%fR+`~8Y zWq(5iBH*T27Uv2cxBXSP+;KQ+iuULG&EgTY4?Xe6<7U%(5?!FM&?05iSn`4-#ac8~ zlVUBIszI@qP1W2n{a>?xy3YTD)_to`g!BdC%*#e%EIRDf{7R9yCjo7ZFAxdCK-6B3cASnM2|q03vuTpQ^3Y2@TTrbb}K)I4DR86rXf(LdAuVzcwm{OC!beS5F_3#c z7$>&opA(apwEAQTC_cSNoRUOCzpiC^7WdS4NKVLFh2uy7be~BmuN78O%Q%@QZWla7 z6sLAV0qmzfg5n}vz*V3Xf5#_Z|4jqie$OIC_7UhkAJmSH85-`*RmpNnQ7!GzjvC(R z7A=2`-zF|0RTB+(592cC=FIyQBJT0kb9h<}h!{mA_-_!nb~^8r|A2UixQwher&0fx z;S)dnfR|#-Q-)M;w7fFmz5q|iIpJMwOPMbCJZ;?Ou-0Zff*Q(YHdI4=lNEKUxB=ps1+bzF?RS%a7!YE0- zqaHf&f4Py{y>X`!$q7|>i>9`xJ{28Lq#tp`IXgoc<7^jn6CA7GUg#7eAVXx1$gZat zMpw_F7z(TB)}0H07c>0c64QxsHK`gLgWBEei9);3vH{XrhL1tTlcYms6CzAOvV?Vn z9)SvRe(OHRQG`|vw*&jgheT{Uw1z{4{!lTlm8_(&8a-oL!Yk^OSP6@TTC2bULa(+% z%2r%nGpuSECMt(n=+$MLWQE9`zJ?x5&*K?oWrOEa5ENcO0e_k9X7y=N>hdH}0;91Y zOM1GT5+_5pSt8<7TZt@B>tC)fBEOoQ?t^9-K$5ixvVh_!W(z7$EiUuFFsU^d+V9H+ z>XanWpEv8+ZMy?XXNrP6qABXHx#$wR8Gf2c&JEscC+^PcixG+A_gxf;JKq=cgpcAA zm*E{(fibqUq0sl$d&Pc|NdrECTqVROL_Cel8y0K{yW8$Y7U{CD%4$EpH-2=CA0jhP zs~OyJouEAnPR~UP*fYx|A@c+2PpWTFu8xF&yI^hB32cG%>-h00UuDEZ-S=&33Lm1S$9{QDmUH) zw{i(FPBJRuRcs!Upaqk2>L+kWz$Fo{$sa3oaluzHQ4=xmE&vcDCX^7igs3NbT*o3) z-7Uu(k)&FL%(<8(EW>U^=2M7iTnOld8S*cfFtLAH{YM#F7z7lhzF?OFu`zE72*Hu% zI^Pon^*-#na3I(q5g_2+V^;2AAuWPWuqCwIJTxpMYQgnQ2~rz!L>*hPMU2TA*$Bo%STZ`COZ*(y<@UqTu>&W$5OeXE8+qvzgl`y?v?HkI2F{)X zVy-AKcc~rl?cYGJM>dKNX<$|M4cy3$Fmk&PE%)dFc*TPh)9!-w4;#y4M6;>2a~|SE zrWR$ApdWOx?eWJ(`>Vr4l8Ku{*i`EKxVp3@LHpP~f%dBRw%9+qjoE}$mxmy#7B+vI%jT2&3rgtHu%2m^|DxXA6Em?iErGN;_ z3!o*)-C3*m8CPe2s7#IZWxc84ccb!J<}faNBmN-##v_T?lGO<7gOEg1y5%5~r+3FZ zAa?=*1ly_guTe7wF&GO08uQTVm)U1?WLNWcFgJ1N_JisM1s>aM9rm@>KXbUwljG{1 zNkLTbnTmEL3T4W|u@h&diqM07=?}!UY`*sq)OJ^brx;UmiMjX|^MjWrUGPfPmDq$W zKz4VJSxI%OIo)mSRj<7!O_ybq=+R|oAs=Bu`YeXTE~`J;_tmg`?%>gbX;gi#u1%8k zsx=6wA<+dS3dog9A6%*0M{8uec}bj~H2<9H0$wcEQa;4m>qX8#a3fpyC*uS>mG|i3 z8#Xx#wG+}R?*B9=EGx3Pw+>)okVBdXMVk+K5dH!AH~&!CrH@D2k^lK~48mvpPpRC? b*rU@&eIFecZA$!1p2SGsT<@yRZ-@R1%^NC` literal 0 HcmV?d00001 diff --git a/docs/benchmark_results/comparison_afopencl_b580.png b/docs/benchmark_results/comparison_afopencl_b580.png new file mode 100644 index 0000000000000000000000000000000000000000..5f624fcf64892ef6f2a4d5ca5e5294f81d378d58 GIT binary patch literal 72729 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�e%Q0 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 Defhl^ literal 0 HcmV?d00001 diff --git a/docs/benchmark_results/comparison_afopencl_t4.png b/docs/benchmark_results/comparison_afopencl_t4.png new file mode 100644 index 0000000000000000000000000000000000000000..a8b62a11714abd3dc9bbc1ab987a0e28b1056f87 GIT binary patch literal 72618 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 literal 0 HcmV?d00001 From d652d8db9b5f8a8e0d0ee90a624566aadd16514f Mon Sep 17 00:00:00 2001 From: Edwin Solis Date: Tue, 5 Aug 2025 12:13:54 -0700 Subject: [PATCH 2/6] Added release notes --- docs/release_notes.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 docs/release_notes.md diff --git a/docs/release_notes.md b/docs/release_notes.md new file mode 100644 index 0000000..cc17462 --- /dev/null +++ b/docs/release_notes.md @@ -0,0 +1,21 @@ +Release Notes {#releasenotes} +============== + +v0.1.0 +====== +Welcome to the ArrayFire Python Bindings! These are the currently supported features: + +- Support for all backends (cpu, opencl, oneapi, cuda) +- Computer Vision +- Functions to Create and Modify Arrays +- Functions to Work with Internal Array Layout +- Image Processing with Features +- Input and Output Functions +- Interface Functions +- Linear Algebra +- Machine Learning +- Mathematical Functions +- Signal Processing +- Statistics +- Unified API Functions +- Vector Algorithms \ No newline at end of file From f40aaf9813d9745de791efaaa2612705b1a758dd Mon Sep 17 00:00:00 2001 From: Edwin Solis Date: Fri, 8 Aug 2025 11:29:22 -0700 Subject: [PATCH 3/6] Moved benchmarks, cleaned up readme --- README.md | 50 ++++++++++-------- .../img}/comparison_afcuda_t4.png | Bin .../img}/comparison_afoneapi_b580.png | Bin .../img}/comparison_afopencl_b580.png | Bin .../img}/comparison_afopencl_t4.png | Bin benchmarks/results.md | 8 +++ 6 files changed, 36 insertions(+), 22 deletions(-) rename {docs/benchmark_results => benchmarks/img}/comparison_afcuda_t4.png (100%) rename {docs/benchmark_results => benchmarks/img}/comparison_afoneapi_b580.png (100%) rename {docs/benchmark_results => benchmarks/img}/comparison_afopencl_b580.png (100%) rename {docs/benchmark_results => benchmarks/img}/comparison_afopencl_t4.png (100%) create mode 100644 benchmarks/results.md diff --git a/README.md b/README.md index 1ebf535..dc6b361 100644 --- a/README.md +++ b/README.md @@ -3,28 +3,43 @@ [ArrayFire](https://github.com/arrayfire/arrayfire) is a high performance library for parallel computing with an easy-to-use API. It enables users to write scientific computing code that is portable across CUDA, OpenCL and CPU devices. -This project is a **work in progress**. It is meant to provide thin Python bindings for the ArrayFire C library, i.e, it provides array functionality, math operations, printing, etc. This is the front-end python library for using ArrayFire. +This project is a **work in progress**. It is meant to provide a numpy-like Python interface for the ArrayFire C library, i.e, it provides array functionality, math operations, printing, etc. This is the front-end python library for using ArrayFire. It is currently supported on Python 3.10+. +Here is an example of the library at work: +```py +# Set backend and device (optional: 'cuda', 'opencl', 'oneapi', 'cpu') +af.setBackend(af.BackendType.cuda) +af.setDevice(0) +# Create two 5x5 arrays on the GPU +a = af.randu((5, 5)) +b = af.randu((5, 5)) + +# Perform element-wise addition and matrix multiplication +c = a + b +d = af.matmul(a, b) + +# Print the result +print(c, "Element-wise Sum") +print(d, "Matrix Product") +``` + +# Installing + +**Requirement Details** This project is separated into 3 different parts: ``` arrayfire-py -> arrayfire-binary-python-wrapper -> ArrayFire C Libraries ``` -The arrow `->` means `uses/depends on`. This means that arrayfire with python each of these parts is needed: -- [`arrayfire-py`](https://github.com/arrayfire/arrayfire-py) is the `thin` wrapper that provides the numpy-like interface to do math and array operations. *** This is the intended User Interface *** -- [`arrayfire-binary-python-wrapper`](https://github.com/arrayfire/arrayfire-binary-python-wrapper) is the `binary` wrapper that provides rough direct access to the functions in the C library. Its purpose is to do the handling of finding the C libraries and handling the communication between Python and C datatypes. This package can exist in two forms, with a bundled binary distribution, or merely as a loader that will load the ArrayFire library from a system or user level install. +This means that arrayfire with python each of these parts is needed: +- [`arrayfire-py`](https://github.com/arrayfire/arrayfire-py) is the `thin` wrapper that provides the numpy-like interface to execute math and array operations. *** This is the intended User Interface *** +- [`arrayfire-binary-python-wrapper`](https://github.com/arrayfire/arrayfire-binary-python-wrapper) is the `binary` wrapper that provides rough direct access to the functions in the C library. - [`ArrayFire C Libraries`](https://github.com/arrayfire/arrayfire) are the binaries obtained from compiling the [ArrayFire C/C++ Project](https://github.com/arrayfire/arrayfire) -The main reason for this separation has to do with handling updates. Bug fixes and features for user-interface and python functionality will only require updating `arrayfire-py`, updates for the communication between Python and C will require only updating `arrayfire-binary-python-wrapper`, and updates to the internal math operations, device handling, speedup, etc will only require updating the `ArrayFire C Libraries`. This way we allow the user to customize their own ArrayFire installation (e.g. only requiring the cuda backend, using both oneapi and opencl, etc.). As we continuously update each of the components, updating one of the wrapper will not force the user to reinstall the heavy binaries, and doing updating the binaries will not necessarily force the user update the python interface they are using through `arrayfire-py`. - -# Installing - -The arrayfire-py can be installed from a variety of sources or can be easily and quickly built from source: - - **Install the last stable version of python wrapper:** -``` -pip install arrayfire-py +```sh +pip install arrayfire_binary_python_wrapper-0.8.0+af3.10.0-py3-none-linux_x86_64.whl # install required binary wrapper with the 3.10 ArrayFire binaries included +pip install arrayfire-py # install arrayfire python interface library ``` **Install a pre-built wheel:** @@ -50,15 +65,6 @@ To run the tests, use: python -m pytest tests/ ``` -# Benchmarks -Here are some graphs comparing ArrayFire Python against other packages for some common operations: - - -

-

- -These graphs were generated with this benchmark code using the ArrayFire C Libraries v3.10 - # Contributing If you are interested in using ArrayFire through python, we would appreciate any feedback and contributions. diff --git a/docs/benchmark_results/comparison_afcuda_t4.png b/benchmarks/img/comparison_afcuda_t4.png similarity index 100% rename from docs/benchmark_results/comparison_afcuda_t4.png rename to benchmarks/img/comparison_afcuda_t4.png diff --git a/docs/benchmark_results/comparison_afoneapi_b580.png b/benchmarks/img/comparison_afoneapi_b580.png similarity index 100% rename from docs/benchmark_results/comparison_afoneapi_b580.png rename to benchmarks/img/comparison_afoneapi_b580.png diff --git a/docs/benchmark_results/comparison_afopencl_b580.png b/benchmarks/img/comparison_afopencl_b580.png similarity index 100% rename from docs/benchmark_results/comparison_afopencl_b580.png rename to benchmarks/img/comparison_afopencl_b580.png diff --git a/docs/benchmark_results/comparison_afopencl_t4.png b/benchmarks/img/comparison_afopencl_t4.png similarity index 100% rename from docs/benchmark_results/comparison_afopencl_t4.png rename to benchmarks/img/comparison_afopencl_t4.png diff --git a/benchmarks/results.md b/benchmarks/results.md new file mode 100644 index 0000000..60cbfc3 --- /dev/null +++ b/benchmarks/results.md @@ -0,0 +1,8 @@ +# Benchmarks +Here are some graphs comparing ArrayFire Python against other packages for some common operations: + +

+

+

+ +These graphs were generated with this benchmark code using the ArrayFire C Libraries v3.10 \ No newline at end of file From 80b793d91eecbf346a492645f32fc47bc060429a Mon Sep 17 00:00:00 2001 From: Edwin Solis Date: Fri, 8 Aug 2025 11:35:42 -0700 Subject: [PATCH 4/6] Renamed results to readme --- benchmarks/{results.md => README.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename benchmarks/{results.md => README.md} (95%) diff --git a/benchmarks/results.md b/benchmarks/README.md similarity index 95% rename from benchmarks/results.md rename to benchmarks/README.md index 60cbfc3..30894ce 100644 --- a/benchmarks/results.md +++ b/benchmarks/README.md @@ -1,4 +1,4 @@ -# Benchmarks +# Benchmarks Results Here are some graphs comparing ArrayFire Python against other packages for some common operations:

From 376833c97d8e34e3fc93cf8c0b9122efebd2d026 Mon Sep 17 00:00:00 2001 From: Edwin Date: Tue, 2 Sep 2025 10:27:58 -0700 Subject: [PATCH 5/6] Update readme --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index dc6b361..decf586 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# arrayfire-py (WIP) +# arrayfire-python (WIP)

[ArrayFire](https://github.com/arrayfire/arrayfire) is a high performance library for parallel computing with an easy-to-use API. It enables users to write scientific computing code that is portable across CUDA, OpenCL and CPU devices. @@ -32,9 +32,9 @@ This project is separated into 3 different parts: arrayfire-py -> arrayfire-binary-python-wrapper -> ArrayFire C Libraries ``` This means that arrayfire with python each of these parts is needed: -- [`arrayfire-py`](https://github.com/arrayfire/arrayfire-py) is the `thin` wrapper that provides the numpy-like interface to execute math and array operations. *** This is the intended User Interface *** -- [`arrayfire-binary-python-wrapper`](https://github.com/arrayfire/arrayfire-binary-python-wrapper) is the `binary` wrapper that provides rough direct access to the functions in the C library. -- [`ArrayFire C Libraries`](https://github.com/arrayfire/arrayfire) are the binaries obtained from compiling the [ArrayFire C/C++ Project](https://github.com/arrayfire/arrayfire) +- [`arrayfire-py`](https://github.com/arrayfire/arrayfire-python) is the intended User Interface that provides a numpy-like layer to execute math and array operations with ArrayFire. *** This is the preferred Interface *** +- [`arrayfire-binary-python-wrapper`](https://github.com/arrayfire/arrayfire-binary-python-wrapper) is the wrapper that provides Python direct access to the ArrayFire functions in the C library. This package must have access to ArrayFire binaries. +- [`ArrayFire C Libraries`](https://github.com/arrayfire/arrayfire) are the binaries obtained from compiling the [ArrayFire C/C++ Project](https://github.com/arrayfire/arrayfire). You obtain these easily through [installers in the ArrayFire download page](https://arrayfire.com/download/). **Install the last stable version of python wrapper:** ```sh @@ -44,7 +44,7 @@ pip install arrayfire-py # install arrayfire python interface library **Install a pre-built wheel:** ``` -pip install arrayfire-py -f https://repo.arrayfire.com/python/wheels/arrayfire-py/0.1.0 +pip install arrayfire-py -f https://repo.arrayfire.com/python/wheels/arrayfire-python/0.1.0 ``` # Building From 7e63da37a1981f2c8f87715a64bfddb0031e2401 Mon Sep 17 00:00:00 2001 From: Edwin Date: Thu, 4 Sep 2025 18:45:51 -0700 Subject: [PATCH 6/6] Linting fixes --- .flake8 | 4 +- arrayfire/__init__.py | 6 +- arrayfire/array_object.py | 22 +-- arrayfire/library/array_functions.py | 11 +- arrayfire/library/computer_vision.py | 3 +- arrayfire/library/linear_algebra.py | 2 +- docs/afjit.py | 8 +- docs/arrayandmatrixmanipulation.py | 40 +++--- docs/conf.py | 34 ++--- docs/gettingstarted.py | 54 ++++--- docs/indexing.py | 43 +++--- docs/introductiontovectorization.py | 21 ++- docs/overview.py | 4 +- .../test_documentation/test_documentation.py | 135 +++++++++--------- 14 files changed, 197 insertions(+), 190 deletions(-) diff --git a/.flake8 b/.flake8 index 0d726f9..2760c29 100755 --- a/.flake8 +++ b/.flake8 @@ -8,4 +8,6 @@ max-line-length = 119 exclude = .venv/** build/** - benchmarks/** \ No newline at end of file + benchmarks/** + docs/* + tests/test_documentation/test_documentation.py diff --git a/arrayfire/__init__.py b/arrayfire/__init__.py index 7a5c4a3..9cefbea 100755 --- a/arrayfire/__init__.py +++ b/arrayfire/__init__.py @@ -103,8 +103,6 @@ from arrayfire.library.array_functions import ( constant, - zeros, - ones, copy_array, diag, eval, @@ -119,17 +117,19 @@ lookup, lower, moddims, - reshape, + ones, pad, range, reorder, replace, + reshape, select, set_manual_eval_flag, shift, tile, transpose, upper, + zeros, ) __all__ += ["gloh", "orb", "sift", "dog", "fast", "harris", "susan", "hamming_matcher", "nearest_neighbour"] diff --git a/arrayfire/array_object.py b/arrayfire/array_object.py index 3cb49ea..361eab2 100755 --- a/arrayfire/array_object.py +++ b/arrayfire/array_object.py @@ -758,10 +758,10 @@ def __getitem__(self, key: IndexKey, /) -> Array: ndims = self.ndim indexing = key - - if isinstance(key, int | float | slice): # when indexing with one dimension, treat it as indexing a flat array + + if isinstance(key, int | float | slice): # when indexing with one dimension, treat it as indexing a flat array ndims = 1 - elif isinstance(key, Array): # when indexing with one array, treat it as indexing a flat array + elif isinstance(key, Array): # when indexing with one array, treat it as indexing a flat array ndims = 1 if key.is_bool: indexing = wrapper.where(key.arr) @@ -836,9 +836,9 @@ def __setitem__(self, key: IndexKey, value: int | float | bool | Array, /) -> No del_other = False indexing = key - if isinstance(key, int | float | slice): # when indexing with one dimension, treat it as indexing a flat array + if isinstance(key, int | float | slice): # when indexing with one dimension, treat it as indexing a flat array ndims = 1 - elif isinstance(key, Array): # when indexing with one array, treat it as indexing a flat array + elif isinstance(key, Array): # when indexing with one array, treat it as indexing a flat array ndims = 1 if key.is_bool: indexing = wrapper.where(key.arr) @@ -930,7 +930,8 @@ def T(self) -> Array: Note ---- - - The array instance must be two-dimensional. If the array instance is not two-dimensional, an error should be raised. + - The array instance must be two-dimensional. If the array instance is not two-dimensional, + | an error should be raised. """ if self.ndim < 2: @@ -949,11 +950,13 @@ def H(self) -> Array: ------- Array Two-dimensional array whose first and last dimensions (axes) are permuted in reverse order relative to - original array with its elements complex conjugated. The returned array must have the same data type as the original array. + | original array with its elements complex conjugated. + | The returned array must have the same data type as the original array. Note ---- - - The array instance must be two-dimensional. If the array instance is not two-dimensional, an error should be raised. + - The array instance must be two-dimensional. If the array instance is not two-dimensional, + | an error should be raised. """ if self.ndim < 2: @@ -1191,7 +1194,8 @@ def reshape(self, shape) -> Array: ------- out : af.Array - An array containing the same data as `array` with the specified shape. - - The total number of elements in `array` must match the product of the dimensions specified in the `shape` tuple. + - The total number of elements in `array` must match the product of the dimensions + | specified in the `shape` tuple. Raises ------ diff --git a/arrayfire/library/array_functions.py b/arrayfire/library/array_functions.py index cc2d9e9..1c905fc 100644 --- a/arrayfire/library/array_functions.py +++ b/arrayfire/library/array_functions.py @@ -73,6 +73,7 @@ def constant(scalar: int | float | complex, shape: tuple[int, ...] = (1,), dtype """ return cast(Array, wrapper.create_constant_array(scalar, shape, dtype)) + def zeros(shape: tuple[int, ...], dtype: Dtype = float32) -> Array: """ Create a multi-dimensional array filled with zeros @@ -100,6 +101,7 @@ def zeros(shape: tuple[int, ...], dtype: Dtype = float32) -> Array: """ return constant(0, shape, dtype) + def ones(shape: tuple[int, ...], dtype: Dtype = float32) -> Array: """ Create a multi-dimensional array filled with ones @@ -127,6 +129,7 @@ def ones(shape: tuple[int, ...], dtype: Dtype = float32) -> Array: """ return constant(1, shape, dtype) + @afarray_as_array def diag(array: Array, /, *, diag_index: int = 0, extract: bool = True) -> Array: """ @@ -311,7 +314,8 @@ def lower(array: Array, /, *, is_unit_diag: bool = False) -> Array: Notes ----- - The function does not alter the elements above the main diagonal; it simply does not include them in the output. - - This function can be useful for mathematical operations that require lower triangular matrices, such as certain types of matrix factorizations. + - This function can be useful for mathematical operations that require lower triangular matrices, + | such as certain types of matrix factorizations. Examples -------- @@ -367,7 +371,8 @@ def upper(array: Array, /, *, is_unit_diag: bool = False) -> Array: Notes ----- - The function does not alter the elements below the main diagonal; it simply does not include them in the output. - - This function can be useful for mathematical operations that require upper triangular matrices, such as certain types of matrix factorizations. + - This function can be useful for mathematical operations that require upper triangular matrices, + | such as certain types of matrix factorizations. Examples -------- @@ -872,6 +877,7 @@ def moddims(array: Array, shape: tuple[int, ...], /) -> Array: # TODO add examples to doc return cast(Array, wrapper.moddims(array.arr, shape)) + def reshape(array: Array, shape: tuple[int, ...], /) -> Array: """ Modify the shape of the array without changing the data layout. @@ -907,6 +913,7 @@ def reshape(array: Array, shape: tuple[int, ...], /) -> Array: """ return moddims(array, shape) + @afarray_as_array def reorder(array: Array, /, *, shape: tuple[int, ...] = (1, 0, 2, 3)) -> Array: """ diff --git a/arrayfire/library/computer_vision.py b/arrayfire/library/computer_vision.py index 2e6de41..647fd9b 100644 --- a/arrayfire/library/computer_vision.py +++ b/arrayfire/library/computer_vision.py @@ -164,7 +164,8 @@ def sift( tuple[Features, Array] A tuple containing: - An ArrayFire Features object encapsulating the detected keypoints. - - An ArrayFire Array containing the corresponding descriptors for each keypoint. The descriptors are 128-dimensional vectors describing the local appearance around each keypoint. + - An ArrayFire Array containing the corresponding descriptors for each keypoint. + | The descriptors are 128-dimensional vectors describing the local appearance around each keypoint. Note ---- diff --git a/arrayfire/library/linear_algebra.py b/arrayfire/library/linear_algebra.py index 67109f2..3decc29 100644 --- a/arrayfire/library/linear_algebra.py +++ b/arrayfire/library/linear_algebra.py @@ -92,7 +92,7 @@ def gemm( rhs_opts: MatProp = MatProp.NONE, alpha: int | float = 1.0, beta: int | float = 0.0, - accum: Array = None + accum: Array = None, ) -> Array: """ Performs BLAS general matrix multiplication (GEMM) on two Array instances. diff --git a/docs/afjit.py b/docs/afjit.py index de40c05..1557c19 100644 --- a/docs/afjit.py +++ b/docs/afjit.py @@ -5,13 +5,15 @@ # removed, then the execution of this code would be equivalent to the # following function. -import arrayfire as af import time +import arrayfire as af + samples = int(9e8) x = af.randu((samples)) y = af.randu((samples)) + def pi_no_jit(x, y, samples): temp = x * x af.eval(temp) @@ -23,11 +25,13 @@ def pi_no_jit(x, y, samples): af.eval(temp) return 4.0 * af.sum(temp) / samples + def pi_jit(x, y, samples): temp = af.sqrt(x * x + y * y) < 1 af.eval(temp) return 4.0 * af.sum(temp) / samples + # Print device info af.info() @@ -47,4 +51,4 @@ def pi_jit(x, y, samples): end = time.perf_counter() print("no jit:", end - start, res) -# [jit-endsnippet] \ No newline at end of file +# [jit-endsnippet] diff --git a/docs/arrayandmatrixmanipulation.py b/docs/arrayandmatrixmanipulation.py index 55d5f77..db8bd68 100644 --- a/docs/arrayandmatrixmanipulation.py +++ b/docs/arrayandmatrixmanipulation.py @@ -64,11 +64,11 @@ print(a) -moddims_a = af.moddims(a,(2,4)) +moddims_a = af.moddims(a, (2, 4)) print(moddims_a) -moddims_b = af.moddims(a,(len(a),)) +moddims_b = af.moddims(a, (len(a),)) print(moddims_b) # [manipulation4-endsnippet] @@ -79,24 +79,24 @@ import arrayfire as af -a = af.randu((2,2,3,1)) +a = af.randu((2, 2, 3, 1)) print(a) -a_reorder = af.reorder(a,()) +a_reorder = af.reorder(a, ()) # [manipulation5-endsnippet] # [manipulation6-snippet] import arrayfire as af -a = af.randu((3,5)) +a = af.randu((3, 5)) print(a) -a_shift = af.shift(a,(0,2)) +a_shift = af.shift(a, (0, 2)) print(a_shift) -a_shift1 = af.shift(a,(-1,2)) +a_shift1 = af.shift(a, (-1, 2)) print(a_shift1) # [manipulation6-endsnippet] @@ -106,17 +106,17 @@ import arrayfire as af -a = af.randu((3,)) #[3,1,1,1] +a = af.randu((3,)) # [3,1,1,1] -print (a) +print(a) -a_tile = af.tile(a,(2,)) +a_tile = af.tile(a, (2,)) print(a_tile) -a_tile1 = af.tile(a,(2,2)) +a_tile1 = af.tile(a, (2, 2)) print(a_tile1) -a_tile2 = af.tile(a,(1,2,3)) +a_tile2 = af.tile(a, (1, 2, 3)) print(a_tile2) # [manipulation7-endsnippet] @@ -125,18 +125,18 @@ import arrayfire as af -a = af.randu((3,3)) -print(a) #[3 3 1 1] +a = af.randu((3, 3)) +print(a) # [3 3 1 1] -''' 0.3949 0.8465 0.3709 +""" 0.3949 0.8465 0.3709 0.3561 0.9399 0.2751 - 0.6097 0.6802 0.2720''' - + 0.6097 0.6802 0.2720""" + a_transpose = af.transpose(a) -print(a_transpose) #[3 3 1 1] +print(a_transpose) # [3 3 1 1] -''' 0.3949 0.3561 0.6097 +""" 0.3949 0.3561 0.6097 0.8465 0.9399 0.6802 - 0.3709 0.2751 0.2720''' + 0.3709 0.2751 0.2720""" # [manipulation8-endsnippet] diff --git a/docs/conf.py b/docs/conf.py index ca827f1..4d7bd35 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -2,47 +2,47 @@ # # For the full list of built-in configuration values, see the documentation: # https://www.sphinx-doc.org/en/master/usage/configuration.html -import sys import os -sys.path.insert(0, os.path.abspath('..')) +import sys + +sys.path.insert(0, os.path.abspath("..")) # -- Project information ----------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information -project = 'ArrayFire' -copyright = '2025, ArrayFire' -author = 'ArrayFire' -release = '' +project = "ArrayFire" +copyright = "2025, ArrayFire" +author = "ArrayFire" +release = "" # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration extensions = [ - 'sphinx.ext.duration', - 'sphinx.ext.doctest', - 'sphinx.ext.autodoc', - 'sphinx.ext.mathjax', - 'sphinx_collapse', + "sphinx.ext.duration", + "sphinx.ext.doctest", + "sphinx.ext.autodoc", + "sphinx.ext.mathjax", + "sphinx_collapse", ] -templates_path = ['_templates'] +templates_path = ["_templates"] exclude_patterns = [] - # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output -html_theme = 'sphinxawesome_theme' -html_static_path = ['_static'] +html_theme = "sphinxawesome_theme" +html_static_path = ["_static"] html_permalinks = False html_theme_options = { "logo_light": "_static/../images/arrayfire_icon.png", - "logo_dark": "_static/../images/arrayfire_icon.png" + "logo_dark": "_static/../images/arrayfire_icon.png", } # -- Suppress specific warnings -------------------------------------------- suppress_warnings = [ - 'ref.include_missing', + "ref.include_missing", ] diff --git a/docs/gettingstarted.py b/docs/gettingstarted.py index 7d6a092..5ef6e01 100644 --- a/docs/gettingstarted.py +++ b/docs/gettingstarted.py @@ -1,73 +1,72 @@ - # [gettingstarted1-snippet] # Arrays may be created using the array constructor and dimensioned # as 1D, 2D, 3D; however, the values in these arrays will be undefined import arrayfire as af -array = af.constant(0,(100,)) +array = af.constant(0, (100,)) array_2d = af.constant(0, (10, 100)) array_3d = af.constant(0, (10, 10, 10)) # [gettingstarted1-endsnippet] - # [gettingstarted2-snippet] import arrayfire as af # Generate an array of size three filled with zeros. # If no data type is specified, ArrayFire defaults to f32. # The constant function generates the data on the device. -zeroes = af.constant(0,(3,)) +zeroes = af.constant(0, (3,)) # Generate a 1x4 array of uniformly distributed [0,1] random numbers # The randu function generates the data on the device. -rand1 = af.randu((1,4)) +rand1 = af.randu((1, 4)) # Generate a 2x2 array (or matrix, if you prefer) of random numbers # sampled from a normal distribution. # The randn function generates data on the device. -rand2 = af.randu((2,2)) +rand2 = af.randu((2, 2)) # Generate a 3x3 identity matrix. The data is generated on the device. -iden = af.identity((3,3)) +iden = af.identity((3, 3)) # Lastly, create a 2x1 array (column vector) of uniformly distributed # 32-bit complex numbers (c32 data type): -randcplx = af.randu((2,1)) +randcplx = af.randu((2, 1)) # [gettingstarted2-endsnippet] # [gettingstarted3-snippet] import arrayfire as af + # Create a six-element array on the host -hA = ([0, 1, 2, 3, 4, 5]) +hA = [0, 1, 2, 3, 4, 5] # Which can be copied into an ArrayFire Array using the pointer copy # constructor. Here we copy the data into a 2x3 matrix: -A = af.moddims(af.Array(hA),(2,3)) +A = af.moddims(af.Array(hA), (2, 3)) # ArrayFire provides a convenince function for printing array # objects in case you wish to see how the data is stored: print(A) -#todo how to create complex numbers +# todo how to create complex numbers # [gettingstarted3-endsnippet] - # [gettingstarted4-snippet] -import arrayfire as af -import pycuda.driver as cuda import numpy as np +import pycuda.driver as cuda + +import arrayfire as af # Create an array on the host host_ptr = af.Array([0, 1, 2, 3, 4, 5]) # Create an ArrayFire array 'a' from host_ptr (2x3 matrix) -A = af.moddims(host_ptr,(2,3)) +A = af.moddims(host_ptr, (2, 3)) # Allocate CUDA device memory and copy data from host to device device_ptr = cuda.mem_alloc(host_ptr.nbytes) @@ -83,19 +82,18 @@ # [gettingstarted4-endsnippet] - # [gettingstarted5-snippet] import arrayfire as af # Generate two arrays -a= af.randu((2,2)) # Create a 2x2 array with random numbers between [0, 1] -b = af.constant(1,(2,1)) # Create a 2x1 array filled with constant value 1 +a = af.randu((2, 2)) # Create a 2x2 array with random numbers between [0, 1] +b = af.constant(1, (2, 1)) # Create a 2x1 array filled with constant value 1 # Print arrays 'a' and 'b' to the console print("Array 'a':", a) -print("Array 'b':",b) +print("Array 'b':", b) # Print the results of an expression involving arrays result = a.col(0) + b + 0.4 # Perform operation: first column of 'a' + 'b' + 0.4 @@ -109,7 +107,7 @@ import arrayfire as af # Create a 4x5x2 array of uniformly distributed random numbers -a = af.randu((4,5,2)) +a = af.randu((4, 5, 2)) # Determine the number of dimensions using the `numdims()` function print("numdims(a):", a.numdims()) # Print the number of dimensions (should be 3) @@ -150,7 +148,7 @@ # Generate a 3x3 array of uniformly distributed random numbers R = af.randu((3, 3)) -print(af.constant(1,( 3, 3)) + af.join(af.sin(R))) # will be c32 +print(af.constant(1, (3, 3)) + af.join(af.sin(R))) # will be c32 # Rescale complex values to unit circle a = af.randn(5) @@ -158,7 +156,7 @@ # Calculate L2 norm of vectors X = af.randn((3, 4)) -print(af.sqrt(af.sum(af.pow(X, 2)))) # norm of every column vector +print(af.sqrt(af.sum(af.pow(X, 2)))) # norm of every column vector print(af.sqrt(af.sum(af.pow(X, 2), 0))) # same as above print(af.sqrt(af.sum(af.pow(X, 2), 1))) # norm of every row vector @@ -167,9 +165,10 @@ # [gettingstarted9-snippet] -import arrayfire as af import math +import arrayfire as af + # Generate a 5x5 array of uniformly distributed random numbers A = af.randu((5, 5)) @@ -188,7 +187,6 @@ # [gettingstarted9-endsnippet] - # [gettingstarted10-snippet] import arrayfire as af @@ -233,8 +231,8 @@ import arrayfire as af # Define host arrays -h_A = ([1, 1, 0, 0, 4, 0, 0, 2, 0]) -h_B = ([1, 0, 1, 0, 1, 0, 1, 1, 1]) +h_A = [1, 1, 0, 0, 4, 0, 0, 2, 0] +h_B = [1, 0, 1, 0, 1, 0, 1, 1, 1] # Create ArrayFire arrays A and B from host arrays A = af.Array(h_A, dims=(3, 3)) @@ -256,11 +254,11 @@ # [gettingstarted12-endsnippet] - # [gettingstarted13-snippet] import arrayfire as af + def main(): # Generate random values a = af.randu(10000, dtype=af.Dtype.f32) @@ -271,5 +269,3 @@ def main(): # [gettingstarted13-endsnippet] - - diff --git a/docs/indexing.py b/docs/indexing.py index e5d2364..f83a1d7 100644 --- a/docs/indexing.py +++ b/docs/indexing.py @@ -1,50 +1,48 @@ # [indexing1-snippet] -import arrayfire as af +import arrayfire as af -data = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] +data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] A = af.Array(data) -A = af.moddims(A,(4,4)) +A = af.moddims(A, (4, 4)) # [indexing1-endsnippet] # [indexing2-snippet] -A[0,0] #Returns an array pointing to the first element +A[0, 0] # Returns an array pointing to the first element -A[2,3] #WARN: avoid doing this. Demo only +A[2, 3] # WARN: avoid doing this. Demo only # [indexing2-endsnippet] # [indexing3-snippet] -ref0 = A[2,-1] # 14 second row last column -ref1 = A[2,-2] # 10 Second row, second to last(third) column +ref0 = A[2, -1] # 14 second row last column +ref1 = A[2, -2] # 10 Second row, second to last(third) column # [indexing3-endsnippet] # [indexing4-snippet] -#Returns an array pointing to the third column -A[:,2] +# Returns an array pointing to the third column +A[:, 2] # [indexing4-endsnippet] - # [indexing5-snippet] -#Returns an array pointing to the second row +# Returns an array pointing to the second row A[1, :] # [indexing5-endsnippet] - # [indexing6-snippet] - #Returns an array pointing to the first two columns +# Returns an array pointing to the first two columns A[:, 0:2] # [indexing6-endsnippet] @@ -72,12 +70,12 @@ # [indexing9-snippet] -inputA = af.constant(3,(10,10)) -inputB = af.constant(2,(10,10)) -data = af.constant(1,(10,10)) +inputA = af.constant(3, (10, 10)) +inputB = af.constant(2, (10, 10)) +data = af.constant(1, (10, 10)) -#Points to the second column of data. Does not allocate memory -ref = data[:,1] +# Points to the second column of data. Does not allocate memory +ref = data[:, 1] # This call does NOT update data. Memory allocated in matmul ref = af.matmul(inputA, inputB) @@ -114,16 +112,15 @@ # [indexing13-snippet] -A = af.Array[1,2,3,4,5,6,7,8,9] -A = af.moddims(A,(3,3)) +A = af.Array[1, 2, 3, 4, 5, 6, 7, 8, 9] +A = af.moddims(A, (3, 3)) # 1.0000 4.0000 7.0000 # 2.0000 5.0000 8.0000 # 3.0000 6.0000 9.0000 -print(A[0,0]) # first element +print(A[0, 0]) # first element # 1.0000 -print(A[0,1]) # first row, second column +print(A[0, 1]) # first row, second column # 4.0000 # [indexing13-endsnippet] - diff --git a/docs/introductiontovectorization.py b/docs/introductiontovectorization.py index 4551d1b..e7bdfd4 100644 --- a/docs/introductiontovectorization.py +++ b/docs/introductiontovectorization.py @@ -1,4 +1,3 @@ - # [vectorization1-snippet] import arrayfire as af @@ -19,11 +18,11 @@ import arrayfire as af -#[0, 9] +# [0, 9] a = af.range(10) # [1, 10] -a = a+ 1 +a = a + 1 # [vectorization2-endsnippet] @@ -32,9 +31,7 @@ import arrayfire as af # Define the filter coefficients as a list -g_coef = [1, 2, 1, - 2, 4, 2, - 1, 2, 1] +g_coef = [1, 2, 1, 2, 4, 2, 1, 2, 1] # Convert the coefficients list to an ArrayFire array and scale it filter = (1.0 / 16.0) * af.Array(3, 3, g_coef) @@ -130,7 +127,7 @@ import arrayfire as af # Create the filter and weight vectors -filter = af.randu((1, 5)) # Shape: 1x5 +filter = af.randu((1, 5)) # Shape: 1x5 weights = af.randu((5, 5)) # Shape: 5x5 # Transpose the filter to align dimensions for broadcasting @@ -141,7 +138,7 @@ # Print the filtered weights array print("Filtered weights:") -print(filtered_weights) # Incorrect +print(filtered_weights) # Incorrect # [vectorization10-endsnippet] # [vectorization11-snippet] @@ -149,13 +146,13 @@ import arrayfire as af # Create the filter and weight vectors -filter = af.randu((1, 5)) # Shape: 1x5 -batched_filter = af.tile(filter, (1, 1, 5)) # batch on the third dimension +filter = af.randu((1, 5)) # Shape: 1x5 +batched_filter = af.tile(filter, (1, 1, 5)) # batch on the third dimension weights = af.randu((5, 5)) # Shape: 5x5 # Leverage matmul batching -filtered_weights = af.matmul(batched_filter, weights) # shape 1x5x5 -filtered_weights = af.moddims(filtered_weights, (5, 5)) # reshape to 2d 5x5 +filtered_weights = af.matmul(batched_filter, weights) # shape 1x5x5 +filtered_weights = af.moddims(filtered_weights, (5, 5)) # reshape to 2d 5x5 # Print the filtered weights array print("Filtered weights:") diff --git a/docs/overview.py b/docs/overview.py index 18ee70a..1a4d093 100644 --- a/docs/overview.py +++ b/docs/overview.py @@ -1,5 +1,6 @@ import arrayfire as af + # [pi-example-simple-snippet] # Monte Carlo estimation of pi def calc_pi_device(samples) -> float: @@ -12,5 +13,6 @@ def calc_pi_device(samples) -> float: within_unit_circle = (x * x + y * y) < 1 # Intuitive function names return 4 * af.count(within_unit_circle) / samples -# [pi-example-simple-endsnippet] + +# [pi-example-simple-endsnippet] diff --git a/tests/test_documentation/test_documentation.py b/tests/test_documentation/test_documentation.py index ddbb0de..94651b0 100644 --- a/tests/test_documentation/test_documentation.py +++ b/tests/test_documentation/test_documentation.py @@ -1,8 +1,8 @@ -import pytest -import arrayfire as af import math +import pytest +import arrayfire as af def test_array_shapes(): @@ -19,9 +19,10 @@ def test_array_shapes(): assert array_2d.shape == (10, 100) # Check shape of 2D array assert array_3d.shape == (10, 10, 10) # Check shape of 3D array - # [pi-example-simple-snippet] # Monte Carlo estimation of pi + + def calc_pi_device(samples) -> float: # Simple, array based API # Generate uniformly distributed random numers @@ -34,6 +35,7 @@ def calc_pi_device(samples) -> float: return 4 * af.count(within_unit_circle) / samples # [pi-example-simple-endsnippet] + def test_calc_pi_device(): samples = 100000 x = af.randu(samples) @@ -52,82 +54,87 @@ def test_calc_pi_device(): # Generate an array of size three filled with zeros. # If no data type is specified, ArrayFire defaults to f32. # The constant function generates the data on the device. -zeroes = af.constant(0,(3,)) +zeroes = af.constant(0, (3,)) # Generate a 1x4 array of uniformly distributed [0,1] random numbers # The randu function generates the data on the device. -rand1 = af.randu((1,4)) +rand1 = af.randu((1, 4)) # Generate a 2x2 array (or matrix, if you prefer) of random numbers # sampled from a normal distribution. # The randn function generates data on the device. -rand2 = af.randu((2,2)) +rand2 = af.randu((2, 2)) # Generate a 3x3 identity matrix. The data is generated on the device. -iden = af.identity((3,3)) +iden = af.identity((3, 3)) # Lastly, create a 2x1 array (column vector) of uniformly distributed # 32-bit complex numbers (c32 data type): -randcplx = af.randu((2,1)) +randcplx = af.randu((2, 1)) # [gettingstarted2-endsnippet] import pytest + import arrayfire as af + def test_arrayfire_operations(): # Generate an array of size three filled with zeros zeroes = af.constant(0, (3,)) assert zeroes.shape == (3,) # Check shape - + # Generate a 1x4 array of uniformly distributed [0,1] random numbers rand1 = af.randu((1, 4)) assert rand1.shape == (1, 4) # Check shape - + # Generate a 2x2 array of random numbers sampled from a normal distribution rand2 = af.randn((2, 2)) assert rand2.shape == (2, 2) # Check shape - + # Generate a 3x3 identity matrix - iden = af.identity((3,3)) + iden = af.identity((3, 3)) assert iden.shape == (3, 3) # Check shape - + # Generate a 2x1 array (column vector) of uniformly distributed 32-bit complex numbers randcplx = af.randu((2, 1)) - assert randcplx.shape == (2, ) # Check shape + assert randcplx.shape == (2,) # Check shape + # [gettingstarted3-snippet] import arrayfire as af + # Create a six-element array on the host -hA = ([0, 1, 2, 3, 4, 5]) +hA = [0, 1, 2, 3, 4, 5] # Which can be copied into an ArrayFire Array using the pointer copy # constructor. Here we copy the data into a 2x3 matrix: -A = af.moddims(af.Array(hA),(2,3)) +A = af.moddims(af.Array(hA), (2, 3)) # ArrayFire provides a convenince function for printing array # objects in case you wish to see how the data is stored: print(A) -#todo how to create complex numbers +# todo how to create complex numbers # [gettingstarted3-endsnippet] def test_arrayfire_conversion(): # Create a six-element array on the host - hA = ([0, 1, 2, 3, 4, 5]) - + hA = [0, 1, 2, 3, 4, 5] + # Copy data from host array to an ArrayFire array and reshape to 2x3 matrix - A = af.moddims(af.Array(hA),(2,3)) - + A = af.moddims(af.Array(hA), (2, 3)) + # Assert that the shape of A is (2, 3) assert A.shape == (2, 3) - + # Assert that the elements in A match hA for i in range(2): for j in range(3): assert A[i, j] == hA[i * 3 + j] + # [gettingstarted11-snippet] import arrayfire as af @@ -144,37 +151,41 @@ def test_arrayfire_conversion(): import pytest + import arrayfire as af + def test_arrayfire_scalar_value(): # Create an array consisting of 3 random numbers a = af.randu(3) - + # Get the scalar value of the array val = a.scalar() - + # Assert that the scalar value is a float assert isinstance(val, float) - + # Assert that the scalar value is between 0 and 1 (inclusive) assert 0 <= val <= 1 + def test_vectorization(): # [vectorization2-snippet] import arrayfire as af - #[0, 9] + # [0, 9] a = af.range(10) # [1, 10] - a = a+ 1 + a = a + 1 # [vectorization2-endsnippet] # Assertion: Verify the elements of the array 'a' expected_result = af.Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) assert a == expected_result + def test_apply_filter(): # [vectorization9-snippet] @@ -194,17 +205,15 @@ def test_apply_filter(): print(filtered_weights) # [vectorization9-endsnippet] assert filtered_weights.shape == (5, 5) - - -def test_filtered_weights(): +def test_filtered_weights(): # [vectorization10-snippet] import arrayfire as af # Create the filter and weight vectors - filter = af.randu((1, 5)) # Shape: 1x5 + filter = af.randu((1, 5)) # Shape: 1x5 weights = af.randu((5, 5)) # Shape: 5x5 # Transpose the filter to align dimensions for broadcasting @@ -214,7 +223,7 @@ def test_filtered_weights(): filtered_weights = filter_transposed * weights expected_shape = (5, 5) # Expected shape of filtered_weights - + # Assertions assert filtered_weights.shape == expected_shape @@ -223,6 +232,7 @@ def test_filtered_weights(): print(filtered_weights) # [vectorization10-endsnippet] + def test_flatten_array(): # [manipulation1-snippet] @@ -243,7 +253,7 @@ def test_flatten_array(): def test_flip_array(): - + # [manipulation2-snippet] import arrayfire as af @@ -270,6 +280,7 @@ def test_flip_array(): assert af.min(flip_a) >= 0 assert af.max(flip_a) < 1 + def test_join_array(): # [manipulation3-snippet] @@ -292,7 +303,6 @@ def test_join_array(): assert a_join.shape == (10,) - def test_moddims_operations(): # [manipulation4-snippet] @@ -302,11 +312,11 @@ def test_moddims_operations(): print(a) - moddims_a = af.moddims(a,(2,4)) + moddims_a = af.moddims(a, (2, 4)) print(moddims_a) - moddims_b = af.moddims(a,(len(a),)) + moddims_b = af.moddims(a, (len(a),)) print(moddims_b) # [manipulation4-endsnippet] @@ -316,28 +326,27 @@ def test_moddims_operations(): assert a == moddims_b - def test_arrayfire_shift(): # [manipulation6-snippet] import arrayfire as af - a = af.randu((3,5)) + a = af.randu((3, 5)) print(a) - a_shift = af.shift(a,(0,2)) + a_shift = af.shift(a, (0, 2)) print(a_shift) - a_shift1 = af.shift(a,(-1,2)) + a_shift1 = af.shift(a, (-1, 2)) print(a_shift1) # [manipulation6-endsnippet] # Check if arrays are equal by comparing element-wise - assert a != a_shift + assert a != a_shift assert a != a_shift1 - assert a_shift.shape == (3,5) - assert a_shift1.shape == (3,5) + assert a_shift.shape == (3, 5) + assert a_shift1.shape == (3, 5) def transpose_arrayifre(): @@ -345,20 +354,19 @@ def transpose_arrayifre(): import arrayfire as af - a = af.randu((3,3)) - print(a) #[3 3 1 1] + a = af.randu((3, 3)) + print(a) # [3 3 1 1] - ''' 0.3949 0.8465 0.3709 + """ 0.3949 0.8465 0.3709 0.3561 0.9399 0.2751 - 0.6097 0.6802 0.2720''' - + 0.6097 0.6802 0.2720""" a_transpose = af.transpose(a) - print(a_transpose) #[3 3 1 1] + print(a_transpose) # [3 3 1 1] - ''' 0.3949 0.3561 0.6097 + """ 0.3949 0.3561 0.6097 0.8465 0.9399 0.6802 - 0.3709 0.2751 0.2720''' + 0.3709 0.2751 0.2720""" # [manipulation8-endsnippet] # Convert arrays to Python lists for comparison a_list = a.to_array().tolist() @@ -371,32 +379,21 @@ def transpose_arrayifre(): assert a_transpose_list == expected_a_transpose - - def test_moddims(): # [indexing1-snippet] - import arrayfire as af + import arrayfire as af - data = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] + data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] A = af.Array(data) - A = af.moddims(A,(4,4)) - -# [indexing1-endsnippet] - expected_result = [ - [0, 1, 2, 3], - [4, 5, 6, 7], - [8, 9, 10, 11], - [12, 13, 14, 15] - ] - + A = af.moddims(A, (4, 4)) + + # [indexing1-endsnippet] + expected_result = [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]] + dims = A.shape A_list = [[A[i, j] for j in range(dims[1])] for i in range(dims[0])] # Check if the reshaped array matches the expected result assert A_list == expected_result - - - -