From 2193de8a36275be7d03a8981788bd217153540fc Mon Sep 17 00:00:00 2001 From: Tomas Pereira de Vasconcelos Date: Sun, 5 Feb 2023 16:45:04 +0100 Subject: [PATCH 01/11] [WIP] Add a sphinx-gallery example --- MANIFEST.in | 2 + docs/_static/css/sphinx_gallery_overwrite.css | 3 + docs/conf.py | 21 +++ docs/examples_gallery_in/README.rst | 7 + docs/examples_gallery_in/plot_probly.py | 74 ++++++++ .../images/sphx_glr_plot_probly_001.html | 7 + .../images/sphx_glr_plot_probly_001.png | Bin 0 -> 85610 bytes .../thumb/sphx_glr_plot_probly_thumb.png | Bin 0 -> 30387 bytes docs/examples_gallery_out/index.rst | 51 ++++++ docs/examples_gallery_out/plot_probly.ipynb | 108 +++++++++++ docs/examples_gallery_out/plot_probly.py | 74 ++++++++ docs/examples_gallery_out/plot_probly.py.md5 | 1 + docs/examples_gallery_out/plot_probly.rst | 173 ++++++++++++++++++ .../plot_probly_codeobj.pickle | Bin 0 -> 2314 bytes .../sg_execution_times.rst | 12 ++ docs/index.md | 1 + misc/_violin.py | 1 - requirements/docs.in | 11 ++ requirements/locked/docs.38-darwin.txt | 31 +++- requirements/locked/local-dev.38-darwin.txt | 2 +- requirements/locked/release.38-darwin.txt | 2 +- tox.ini | 3 +- 22 files changed, 575 insertions(+), 9 deletions(-) create mode 100644 docs/_static/css/sphinx_gallery_overwrite.css create mode 100644 docs/examples_gallery_in/README.rst create mode 100644 docs/examples_gallery_in/plot_probly.py create mode 100644 docs/examples_gallery_out/images/sphx_glr_plot_probly_001.html create mode 100644 docs/examples_gallery_out/images/sphx_glr_plot_probly_001.png create mode 100644 docs/examples_gallery_out/images/thumb/sphx_glr_plot_probly_thumb.png create mode 100644 docs/examples_gallery_out/index.rst create mode 100644 docs/examples_gallery_out/plot_probly.ipynb create mode 100644 docs/examples_gallery_out/plot_probly.py create mode 100644 docs/examples_gallery_out/plot_probly.py.md5 create mode 100644 docs/examples_gallery_out/plot_probly.rst create mode 100644 docs/examples_gallery_out/plot_probly_codeobj.pickle create mode 100644 docs/examples_gallery_out/sg_execution_times.rst diff --git a/MANIFEST.in b/MANIFEST.in index 73fb9682..729484ca 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -26,7 +26,9 @@ include docs/make.bat include docs/robots.txt recursive-include docs *.md *.py *.rst recursive-include docs/_static *.ico +recursive-include docs/_static/css *.css recursive-include docs/_static/img *.png +recursive-include docs/examples_gallery_out *.html *.png *.md5 *.pickle *.ipynb prune docs/build # Misc diff --git a/docs/_static/css/sphinx_gallery_overwrite.css b/docs/_static/css/sphinx_gallery_overwrite.css new file mode 100644 index 00000000..0e4a7f44 --- /dev/null +++ b/docs/_static/css/sphinx_gallery_overwrite.css @@ -0,0 +1,3 @@ +div.sphx-glr-download-link-note { + display: none; +} diff --git a/docs/conf.py b/docs/conf.py index 3eee7835..3ffbbc5f 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -10,6 +10,7 @@ # -- Project information ----------------------------------------------------- from datetime import datetime +from pathlib import Path import importlib_metadata @@ -44,6 +45,7 @@ # "sphinx_toolbox.more_autodoc.typehints", "sphinx_copybutton", "sphinx_design", + "sphinx_gallery.gen_gallery", "sphinx_inline_tabs", "sphinx_thebe", "sphinx_togglebutton", @@ -196,6 +198,19 @@ "ColorScaleType": ":data:`ColorScaleType`", } +# sphinx-gallery config +import plotly.io as pio # noqa: E402 +from plotly.io._sg_scraper import plotly_sg_scraper # noqa: E402 + +pio.renderers.default = "sphinx_gallery_png" +sphinx_gallery_conf = { + "examples_dirs": "examples_gallery_in", + "gallery_dirs": "examples_gallery_out", + "run_stale_examples": False, + "download_all_examples": False, + "image_scrapers": (plotly_sg_scraper,), +} + # myst config myst_enable_extensions = [ "dollarmath", @@ -223,3 +238,9 @@ .. |go.Figure| replace:: :class:`plotly.graph_objects.Figure` .. |~go.Figure| replace:: :class:`~plotly.graph_objects.Figure` """ + + +def setup(app): + # html_css_files doesn't seem to be working... + for css_path in Path("_static/css").glob("*.css"): + app.add_css_file(css_path.relative_to("_static").as_posix()) diff --git a/docs/examples_gallery_in/README.rst b/docs/examples_gallery_in/README.rst new file mode 100644 index 00000000..3334fe3b --- /dev/null +++ b/docs/examples_gallery_in/README.rst @@ -0,0 +1,7 @@ +:hide-toc: + +Examples gallery +================== + +This page contains example plots. Click on a thumbnail to see the full +graph and source code. diff --git a/docs/examples_gallery_in/plot_probly.py b/docs/examples_gallery_in/plot_probly.py new file mode 100644 index 00000000..aaee1ee1 --- /dev/null +++ b/docs/examples_gallery_in/plot_probly.py @@ -0,0 +1,74 @@ +""" +probly dataset +================= + +In this example, we will be replicating the first ridgeline plot example in +`this _from Data to Viz_ post `_ +, which uses the _probly_ dataset. You can find the _plobly_ dataset on +multiple sources like in the +`bokeh `_ +python interactive visualization library. I'll be using the +`same source `_ +used in the original post. +""" +import numpy as np +import plotly.io as pio + +from ridgeplot import ridgeplot +from ridgeplot.datasets import load_probly + +# Load the probly dataset +df = load_probly() + +# %% +# Let's grab only the subset of columns displayed in the example +column_names = [ + "Almost Certainly", + "Very Good Chance", + "We Believe", + "Likely", + "About Even", + "Little Chance", + "Chances Are Slight", + "Almost No Chance", +] +df = df[column_names] + +# %% +# Not only does 'ridgeplot(...)' come configured with sensible defaults +# but is also fully configurable to your own style and preference! + +fig = ridgeplot( + # Get your samples in the correct format + samples=df.values.T, + # We can specify the bandwidth used for KDE + bandwidth=4, + # and the range of points for which the KDE is evaluated + kde_points=np.linspace(-12.5, 112.5, 400), + # You can pass any plotly color scale here + colorscale="viridis", + # In the example, the distributions seem to be colored + # by 'index'. Have a look at the other available options! + colormode="index", + # Set the transparency level + coloralpha=0.6, + # Always label your plots! Don't be evil... + labels=column_names, + # Adjust the vertical spacing between the distributions + spacing=5 / 9, +) + +# %% +# Again, update the figure layout to your liking here +fig.update_layout( + title="What probability would you assign to the phrase “Highly likely”?", + height=650, + width=800, + plot_bgcolor="rgba(255, 255, 255, 0.0)", + xaxis_gridcolor="rgba(0, 0, 0, 0.1)", + yaxis_gridcolor="rgba(0, 0, 0, 0.1)", + yaxis_title="Assigned Probability (%)", +) + +# Or, simply: fig.show() +pio.show(fig) diff --git a/docs/examples_gallery_out/images/sphx_glr_plot_probly_001.html b/docs/examples_gallery_out/images/sphx_glr_plot_probly_001.html new file mode 100644 index 00000000..73fcf9c1 --- /dev/null +++ b/docs/examples_gallery_out/images/sphx_glr_plot_probly_001.html @@ -0,0 +1,7 @@ + + + +
+
+ + diff --git a/docs/examples_gallery_out/images/sphx_glr_plot_probly_001.png b/docs/examples_gallery_out/images/sphx_glr_plot_probly_001.png new file mode 100644 index 0000000000000000000000000000000000000000..d76cd2745e38b24ab05e9be81ebbd8c8273bad64 GIT binary patch literal 85610 zcmeEuWl&w+wj~+@B*7)Y;oweimxH@I1h?Q8oDkgIU4pxNa0|iR-5r8MZ*KCs@Av9e z|LT8ztIiJ!+3YpfTyu{(<`_FjPDb=C!UqHh2#B}hVqgUb2xvkG2&mxKuYm9Lc=IVi zKoCNRg9Vhn=p3fOI>h$P^b!yTH*>*i)QE-DG+;S92dp2{2?RGcW7e-Llr#uY%H_({ zd=V4ubUr>Eequ|Ju5wY2etZ9ug9r9E-u>{B$4*kCGudDO5&^Gw5R91jKR%sb`Oy&~ zZ8CpS{kI>WLn0u5fP#;N__qe&+Ab~p&8V>$%cR;~!3jL33@i?LlKPX}P`v-<1S(Ozgi#66m@Xky|boDM{jS5uS7|wTooew;|k#u3R zS`l@SMFL6U>Q1@cb!MnF>d`mV7KVX>*4MfMkQ!{Z$e41azhaN^@HSe8t9b{_$ofU` z$@V|w)6W+)jh5LOi5^Nc)bE{5?A)C6SQtuVFfATDEn<|-RS_gSw}c63<9Hnx3DT~- z_k=vynFY^RBix@~^`ti=GO zntlJ#`HyeDkn)0{SVN_BU-D(4FPz+#^0TRu~RadUs% zp2*lFS+Vr`^^La(p6GhONp+IvN$30yZF9K(a&YPXQapu#R@~$6fMkCnFDYtoM9veh z{y6HQ+bO8K&R3~C$|?DyR-+ygX30F{?a@S`(pn4lVk!K3Z_xW`x(gSex{#Bsos4@BcB)S zaffD3p7hDq&2Ur}SzgF-okONPLO{L3YJKg}M`;3Cqq3`@%d z!051n+NZCm43FZWk%><4dnso7uY5R+Mkx>4&S)fXpo{ZWiYR^f9xOu&BAc5WrVTijV1*M} zK1ZaZ$D&@Y`3kwlT0{9LH5mEkDZh>)l1(zu629=bqR#%jMVHZH!1!mzD56(tqfb%@ z>w2@+N~TJWzPZW$?B0-C%Ql-5t?KJ8Hx{;W%WWb^R2yQbcl7)+>COJVX(D=RBgO^4 z74;@Y9d_B^-HWKB(Fr@;@L38)11vZC*T>4}#^}x_(PNKitFQ9XRwY+VUKd@z)G%99P9;m)(_aRAw^ONHg;B;4-U8 zY9F8b%MCgZN1>VN+R>I{*$yWuCwkYgM8CL?uZZv2_TEB9I!kT8DU@!;q1SEiSv1m= ztJas#l}N{SKH(FbbLAN;m8NAbMswE`EaIj)ip4w7pW-TBN?@_~FW?)pTGSb%%g)a1HOa^4(4iS)r;0MWzSTnytBhMfGytGsOH@B^Q^?4cv2|t40x=jU3 zu7qDrnVbtHRfFwgDPk9Dm~yp|3~LpgL_x+xn%fQqTEF}FZHdn9V$v|wU7B2WAh{Q{ z&z9;}GDVv?&8H53@gXsOSro+Ovll*U$d!tho4OrZ{Virv$CWcI>i+ob_Jq0>ywgWt zt+Mg6=Rhop28Ak~Dv&jdI%$y)pT{M9nx{|Cp?#X&Zk;&(p$QF%;2CQdmaN#*&66+e zTi-7t(fBtMseEwBlT;>l>WtFf%`6>{UKyWGPV$M0s~W33{EjUTVC+7=F3lK!s)!}` zk#%C_tS`xGvZCa7cs9H$vuVRM&#utxJK0x1y4KB768Jpl2oq)=FTY`yZdh;lt7;f~ zxfr&}SjOUR_X@{)%ba|KtyJ;XgzTSBVT=fG$$>6S|4y0XSZ6ie>3yc^v#*q^QI8Y zJ6Wiubwsm&*_Tv2+jheK4wt9+P^Gs>82D9UGcH7@nVtBLTr_2OTTXBT7QHZatn-Cx2r9JM)mcEg^@H6m}EZ&HGl5 zB&@naUVk&h=@cy=Y)0-%{X1{MhTN06HW`x%tFN=IEHm75mV3;f5Vjx36?^7j z$-_yfMV$Of;j=!$jURp^AJNGatCiWEZQ;~lD=}pWIsEN_$E_U}b!(kk8<3Y4P2=aT zHcx3VSvCSwJG--v`u1Ft(@YI+qO875_0Z!v>LXB%-!NwoL6VcdoWkCGbu9Y+ZmII3 zRL4WI`lN>M~=u!q%i}mGW zbjuof_67o4T0$@%Fx8p9f34Am2|e8IFAE3p%q6fRBxS}@-tnMzhxkpur7pBHf}*B_ zJI@}tKboP+)Fc}|Uu^hlIfdCuC*&(%l9;~VL&!)~%zCUC1LvZbFB8@M-7~p6dpNz+wv$*oN0=%Wxg535y?#ZvHdh@TZ-q_FMgbs{!}=lj33Vx zu(;HDEGoozf9f{A-7qOrsl(#4qETFOHL?1xs)|0C&{YJ1VoMUEodgriAeU{op`+|S z8&SJNkVF$(G(oHMZoPTg=v0X`UO1IpGMZm{v-=6o!7LZ-1HwZhr6VD(a2OYC6>dG> z9WVMml_9Vce`yxIac|wO@`mk@y(E39)wLzLCFDopd`Wxqmjv2$q%yiOo8RNQfgeZ_ zzK8Cj@9!wYZ_#!9ZtWwYo<8>|P--IlrP~G%zm3^3nx)Qy{>;b*S{Ce8?*)Gr1V2tZ z>j=VRfbhHw=NM54&zBOWbZ=?JQaF>$t4qF1dRgk3tA8(PvYvMV(=v#0oVQ9QP*DzI zjO5>ut&2r>7aI-4s=%}K40kFU%{47ybGQ^Hhe|Glr#F=hqK9|DQ#~$?;{tdAF~L-R z>LlC!q@D)fNCUU>%303K%kMeQ!iyRbRJ^pbFsTyS&CAzA=IiI4aZvL<8`G{^g@D)d zyRTJ@hEbeNRlK1)qUuqBC!EpPPQV~vaSt{MZk3Q+rXUw{nffc9g_*ap+FsYg&WK<_ z8l7szMho#35WfD^w#RklDJ2^{O?k))4I-UVG-DtP}Vr zmh|Q$32URfhF7fhEDj&W2!Uz+;z?_}Ykp5S2Hu2-)4OqHo;kLateBH;*IWb>7Y6y| zN+C$1^-`jTiDR}q8KS$KUy@zxrLo8H@sF+c>-m?J$7RINbz=NDY0EmtWlo+Wl9KnP z-d3${UO(|{haTZm&?(N#m3hkcTeqmTPpkArK8w9{p2_^V$b{?8R8RTsrP#$fud4R* zRHU7M_J(`(#jTWkj_r%DG`Vz1oxQs2vEYS|(f0PiSSS{Mp#QdzL?fs&Wzc)d{HWdR z8Wd3pBXxgsN94R0Pu0LsgN@8{%ivWwh}hy-erA4U-FMDt&ZR9&oI4JS=DKmOrJJ%p zlU*P+cEVuwiHnpKG!P=J0!><>Lq@%AWXfmaB7?{TAIi!XL|)_RpVw0H8kuLV9y5^E zfXcvv*K9ln&Yn^4=?X)SEXJR&Zdl2)f4*E@w!em9$z>JP^d`CJp|$5k(}~^?YkQ_q z=OA|S=*$S9hW3%3Iv*(`t-7ySAfkA*yP zG+taOMQ4L3<}i)Ak4SjjHv`0Gh=w2%wK&MPm zsB2z^7t9l7iZQ=(;@D@32e*ARJ+W%oW0x{nTRr8oCA#BkL2diP&EfFtK1S4v7Dj{N z9W{P9CB5E(5K(xvwrJzx54T1M%5eD>2_H~s4esjYSL`_s1)T~v>m?R)jFz@>S!r>z zd<#IWVg_xadIu+&n1r2|GmTx5>}!35rfIxWWVyIzA%})1S{%zYA=Hc>RnVoDGgakP z3-;UV88=kg5=L10zjPG^DGZuo&E-YOuBr%0-VDd2j}8&NCoTdFT!X=x+eJsNrV+-2 zq!z>5kNa#YgF`VS)%v3qU1E-%8JN<*a|AI+KGv@0Anh>IL$$0{Tx{S(e7yS%8ZS0` zMLxc)t7-V|(aCUvxjP6Cnpmxkb`Ft7AW zfmr16=J_?MPIoDjbj6sbn>D7&~iPFgeWmSSNU=dy<4XcY;YkU0Z4a{-F+Na~m5`h1jc6+^o9yZTUg zjmPmV<6eeIn#{;ZQ410Ld7xV@Tpok_ zC9?iAb!`zHm%y}w4OF+v_vyhm(%y$UEX$yGpmxlpd#|(tl~Q4w0qX=zr>5}tA#D2l z4_E9hwnbAhe#~(8Swt?vq1)6eD)1kN<=gV>9^RQl>RTW?s#yxsQw6$3HN4*gK`Htg zi*fOGJbDiN@;#Ij^P-g{j#*-w+lzJfp`jZfmU}`tk}I;okI^iLNdWTBwNL5fa2RJr z5gzsEH}%z!b2}4Gk4c=R>P`MC|ss>Ukg>9}&PJiLW0~%TDNe_!Lj}p6_ zsT0!HK+xBvs)=l@j_%&A>qhxLd2ASJk|0yU1U_}d4QTakPn{ZUy)#eIal!-*P${10 z!ZUa%sa}m^Bw$}?zjZnDjAIp!Byi_21It{Dc7i<{t_e6oJOV~m%Qc@@&#HI6T+MSu zBF04FMcTV*yQ|nsY7QRw@xZBdv??o$;X^hPW|dK&c%rJ zn@*0pxbE^J%}ZK|r5HgGccfQwf%-lNi@9HJ@=dJJzSTG}thH7UzI_^^Dk#Aol*o{x z0;dLvp{dfMM6L^-ZXa>EKP#s2TiG;eNeUP!dG|xYSGj#B-`_rBC8%F*%gnMxMxpy{ zMp?AQ{p1rjpW?L3tL)vs$AzkDb8y_=a6dxA5`{K{&+{Ht^8<@Z(m<`0Q_&{hoJSP; z{LXo39>ka+|4C6`LBV)UM)3XUvCBN~uooP&Igu9F)aw?)tQOetMV$1J^lYw*34 z;b__-tB@~Y;=NInL6^^(`A#p>o*${b0Hv*fP%k}mBZm1k%We8&(^Y0LMly3rjv2W) zy#~B!kO>+auk8%#*G%Uc-rBV7qv__ecyi@=CM$P;7_lEN@L&W;;x3Y6K_6nq!)w z))IjUgt1PBgBaXbDdb#|wjw4<%LFmPD74pdp&I7h593&0=}#H;Bc!(^{)}<59E~B= zyn7#ien`oGxhYDfC5}eUU-=A3jhmm;4i1{%Y5VnS_%#*w2!66@}K%qu`LW>Z! z7HLm-kpqq0+hU=5V$JsJRLXf~UR&m*bgI!c%>|wjyLb*uuTdwd3IpE_|f-1!^EO6u7*qUs7+TL-DIt2`F60995yEnS5o+lj|r+@T9Lp>1Ko$u)wca*t^ zo@fx{^kHXy=h`!K?!(3NbxcsH*-#w;suck@6=E!g)9j?J7EQ`lzABrJ`XC+({1M&D z!7K&lJbj6Utv?HLniqgUsQ05~Ctz;ZhYZeL0j=20Nwy1&jS(XL&qj9~FoEglnhSex z_O8%VsgpOOw3&m@BC$ahD~j4>TY^%+^GJu)_IXXQmc+~~Mnt!Z)3bN}S5V%4^ki1V z0Z+4AI;S^(G^VeePs*Vn25lnZlo!?KDqR#BCXsC}^>}^V!O9kL@Ju<96pAfzb2I#U zPu;w>#k$y{@I;xreL1&Ng<1?7*!DvLs$HmAUAvh#DMJFZwV#j_F8f*>Knb5E^|GL;jbL?E z&K=(~nXOcPsi9QUo~NT1_FxM7*LGTl1wNTGbY)bK{O3`$R4rZ^M?E}y@_D67CHs)TT)IC#CSO>C7mq6i(+_9c=3!- z8fviQ{FgErsmsQm3K6NjB*jfH0QuW8%lO%cc)pV(#V6Tm^ZZJ0Zgpv376LfJSbW} z3(7RbNJ8}RZppp&$Z;|CczbMrWLIOVkijo%I&@*@nv9!f)kZN|v3df}yqV7TOZj%UuyCS_C?;G24oamOzq-1E2 zQs3L@#VxWhx*V4e`U&4pEX>Pl4o%Q^w{S3}z$DQ^fvxHj&*UM8`y z*-6h~B&PBJV%Jd+>pLCn7A50fCnoAEkl^a(5uBYT<`-Nir1!uRTdA|fFceF{CI6-6 z2SXbY5~xEvwLu~ZA^D?x(rs^^w*OapZlqR4cPp5z*X~BBrJ<6r416c1PRnoDqtb?W zdtoTtc~d!+LH<)cXE6RIc9b_^hlYHQQ$#|hWhj{=%}zT?hk54pQwiXX!Z zNH#~kX`eRKf41inV-_dSLlF?@{?utwPy1!)$(cmk{%yP*xXVL5G=%`nPvax=alwVF zX13Bxj=LcLtIznG4BsMkhUd4$GJH**N^}m#jwLybrN}Or3KKx0>dv?f>UasXX!p#N zF-3T69s$8H>O)cO@#F+_TD8yyCMC>0Zl>4FlJ$}vcZsvrhk}|q(Wc8fK_;OD^mXF6 z>i7f2utB#1cy~+WY+Xa}Y8pR=3YGOk>=w&u#y4-sT7$!?M7bPOu87kfJf6#A4n55Z zE~E!$4Nz_Hp`t{*3kDRfE6t(k(QsPLO9LbbEKM7W3duj&J!EgqZN`_u*|B+-@b6*Z z+4e;fxHj5%FTNG?xzo79wsw^%XVpv&Yl|&(X+1YzrxaJA2*G&36mn($2>W(FCFxtr z=OJIS&ci7xOfY$nVichSN3Uu$oebN#%Mz*Qh}@W?dd|{w=HggvHzt7*dn19xQFih$yOP)Guhp2L2~u{l8wXUdrT-R zHw!1`33Bc;J<7v;g#2Mq?(|nOnJg*eNAY;=sC?Uuc-RLjVRCrM`C{!=Rq@7aqWtV}4w!K9Qx!#nU4b4KRYa-8+fe!~3g zv1jE&`u@3(eaHBU?uF}-9$FJOe5TIbfedM^L-Y#DoNWwAt)(=o;?;I({lL^u?usNKadB+*GVED>F%BT^R6kR&6TM*2d0nSqt<~6-KBwD);eA7G1fimwBUyX&NDEGSG ziZdu0E+Ty*$IGWz9_0@YSGl?b%9@1Mm?>6ttQz&d$eRVLGz~q8BWjsyA>fZVhFX|7 z;%p_c>Fboe4p--`sp01EVwE-Q{ig?G?{UEBLC=j_rTs*Vv7RB=(Vm+22`HM;Ppw|h zI(XWj%~G;FtaR#mgQp&R<_6^fhTW@K4|u4Ui5tx+GvFJahskQvPnPF8us zk7KzZ9H?o=lYAY8goF&lA&;k&>Cn)XZq8pyEKNz5IS`HdyLRu?G_OR-7*ZTp0iwk)l78e0XQQeRII?jlu5>GzFW;GJ;=6=@Pt3i0 zRkOONpOSf@ejhTPTVZ+d1QGf05}A3hX1VTNtVH_gX~P-RaP z;UVcM50PK+4*O$RW0ed}o$opN)3DY>jE4zy>1<-XH7&?H{ZNjuF20x^r|3$F@(GC= zstP)h(-?#qX61_veeHix-si9M7fJr)l3NqS)JY<1XlC-I;u9XQwQEAa`0u0LcZf>7 zvJzZLo6{w@h&autMVAV9jb|He#+ugJj1zH_olKAAp2td8KVqt02|C0j$JJa^f-Jm& zhg*?eM#=9GjJ$Mr{I7$A%#?DNqe0>2$AlVfp7l+9MjgJ(ktAQck~fhjyr`yivi};y z;r_;Fx#6NB_IOH>?n`s;cDII`c* zU#~HwJ2jq{Q+x5QyR}&8!rXt!if@Mk9Pi{Q^NJ<~V2##a%Xzzt{I=t+_`DN9ntA?_ zwQns1lh3fxmo`^XAGZz7$&`@8-Irp8Ac!F93k}%;O!tVcz8g39qEILXQF|o3*w2XB zq=$kY-O&qP0MggSeosJt|%W7ZH7U^gLv-F(OJ`tv^pLF|Zt^2X%7+3%Qt z=z(y(Az%Zc-$14OyC4WSfP&so-RdIAkD!0k0}(>P5%NQ>Lwx%|_77Q*cQtY*gl&A3 zF`xLq3zmLB0*ht;L0AC~Z2SNDtkM8#qg12ZIoW>*gZ^{d|B3d0lH}!V{=YqvM>4A` zUeChOAaP_;3H0U!yg5Yo(^bf5Qc29Y<}>wqujeNZkZk%xbu93cyd@YuA47w*VL*U* zdb%bAl1^r>O5t0Og_02l3PPcON?I*BP)B6qLub)oUmx`bF3EYzd1F`N074N_QlK~# zkaRh50HqaK1{8)(`TzZ|q|g&ZthjkKG=UK(nrct%ROkmR!D z324$6v0Us7nH=*wMo31hJYmr(BQL6*&j4+j)pA<|P13kV>Ck-|J=w5!h;BW8x8{lS zev;sAmBDw_dWQNVK%*v>LiHXHd~6E z42fUFYhlQccDpw&z~CIl|JvNDHqFvCETH_v?F}G7C{zUXYFZO4wm!d3`Uta9zRIZu z2$w=}CNT@6$=}7D0em?Mo6JwSj2sAf3={&wul+z0`l5-GU`j#?HUq&xCqyR{IqaS0 zo+(f3o@M-I>9J@vV)QE&Wyw{hLSxy@%L~1D`Mm*Lop69>j4d$v0AD+(jwH(#VF6rh zIiUSHA*Wk^*utUEIMsBpP{ipXr|I=8u74R6TwTMQ=@++Ls9JT+)4~xpzs?JG4_H1r z0Q7zsvd?Zo@`~|mKgR6$8=I7ab7qkmM~nKt)K*6^sS`67seiaCj$^95zVzc8114Cw zT6}X#ZAK>BrL+E1DZf2vs?Fh<3zac>+dK4n2--XnKSKx@vRX*83KRrU=Z#tHpC6hu_pk9e>Of&DT z#+Z|1-Y94u(4RVWP`^BDzsv0Te(~32_cDnIiEf$o$m zBDq{%w*D(a@$*Y0g(H$M3z@EgNRGuMFc{w{= z@89X>Nq^lsaNf8{qE6&0gX=z$JSSLS!lR?3+aG~FHx}NBXIb63)`72CQ3+Mf77wW{ zNt(z86e+XS+gKoJbb=Rk1Oc`4k7MPHC>n97=CHz2Sb6VRiQthaZ`i-bgYuupBX#F- z<>u5leK=y_po4?`)Pb_yUv%Uh@WFhlcgm@DGb<8PrvzN`dgNV|()9uG_nt#_Y) zRnZO_NsygK$Cs~svrl;T0S4#0?4Ovb45dO?!>9^J%9a|6$#%)>MtolQM*p#rq8;Q$X&JR(fd6TB8w7gkI$R^edI zw>cO;7RzQaMmAgNE`^L$!e+g)Hj+ZH;A*=9)pBu$NX%~>aTHF_HuQaPf7BW^_&HJY z=yT!;rnnoRKrBc^kX9iCU8h{K%n~sax{2@in}~UjD1r*y4l+;XP1irbkSX1V8RFJBu7{KpwT9L{zndUC}A->@$SQ0IPC3v!$5=CGJ7QwTXWkgrq{P@=o| zHf*dv0!PVzC>~?PfdP5!Z9{CX_Qs0TbA5`gzU+9h#Gk*->xt=Tv_hPfoBU zgYFa-cp?Qc_%6S4&#i( zO0iEyyZ5^=i4Zy=R@ovrtxl-Yc^C#Hj!ysD$`)@Zff_M+ni6aG{f|5O15UaYJcg_rT}kLvBQa1SjuTXqb!TVui!WnBot z!_S4Nga%`-r2-qu9>uJGi%wXBL*gX#vZ>uxpMPz9f&$BYGY8nd!GwP6{m$hslT{YS zMmu>_qO6Fuw;>Sf6?V-Cm+=N3ON&|zcIQkla?Fn+&R=nFQ>cXX8^9s{2Kn?keWUNq zO~6h>m}Sdfr>b9(m`_rCjl8>u%e?qON#$htX{NV7kq-6&8tU|NPLfm%vuysW_5H`mpwEccpH?fUtd@)YjQq(L=Y|=$RZKkXstU zELYrcIjRliDk)LoDENtkxevlF|E{k4zpW1Klz{gpz4F%9jR%|5T}D zn9^KHk;H5qJ0$oFe$QHA^V!#md-q%Um9Mxtm?OUXeJ`xqUD#!-E7A3h|) zW_RLs!s9NS*J!q5ESYaW>Z|`H$Hg11`*gUDI()g4$jGg{@G3N^T&rSVi4NbiUW~Wd z_P&i%K=POpMYTFm0-X>=IQ>e*^$+A=)c*(M_-T;lU0zPGnW&pIn?i0Ic7AsD)~>zx z1tLCdS!|VoxIi7G9O{D;U3mD%U+GcNiO$cjQsgcq8^`^;gUAOn|j>f#1v!oR4r6|qW$qM%layggJC zR-NrSzkPre`yywIrwjTEPFeqeQ}+R=&EH20VyWzm+&p}Dhw*-?#hGOLwEUl!a$5?OXD23<)Z7`h2PwwbLW=npSy`qX8#wPZM4zM=pX~Hs{&4u%PIP3eA zkq3ZM>7PPSD6&9|*899^19ShLtfoIF3vCWI5GFYScNtB2NLVNd_5EkT3cVqg&npBN z+D-2|*;d>QSdf4yQQZDtq9kpIN$Bb6iOuQ&q3@O|TAy*@TX>Hcuif2P3_n)>{Mu0= z-Y6Ra9!-Y#GYMql$F7wXf;(edoa(uU*@w6VxnliF$6tVX>trqW)48A`E^$x#U3n1`( zt@O&7{|(XG=z+hmT~<$zLipHIJdR2^5;yL{wQ!0^+?isK`}dLg-|61m986h&LQ}7x zqfWFZTtr4ExQm>wvsl-{J&p0LR<>}@RQoZZ`Z^52TzK!~a}0G9d_BBFj^N&f+!uVnrl^eB1n7S}6;Z*W&4cd_+jWiE6i zORQT-yw{*7&q(|n5m}#*kdVCv~MG*&ujK}MB49}89$c2P3fqnEK+k;=wp-FA1L~gdwy#=AR*P*&C_EiU61zXwIcuGUAX{7? zG5_`fR8fR`qh}Y1wT2%7L>BVU*e-DL?n*fYRJvS)^fBRcXYtH(fog4cUm7Mg7vXTz zmltjQ?qZb)GMT8XPG{mC_2iCSu}e0L?I}RllSMflP8vxiwu&4r_kUc{m=Rn~OZ?+GotTL$_(@TfBlM$|^0CI?GsLwIJ~FoGCVb>yxqK zrermbgdu?eK9cCEFyGJtEEzH$WHFbROMOM~PC!#->hz@n89D?hAx+G& z=KXhN`D#IwLoPc^KxEUMlx8o*MOwbn)}?Bu`04g;iQRJ>VLSW)GRR~=vkn7cbGXPi z?9>9VNj=o*(@HM7YH4S$b-_{0RIFkL@D|na2texNkn;*d3H+(W zn-&6pQ(M{_m-`Fy5N3pM048PRRSH<72^TcdLTX}rbfSdKVUDV$&4=*e*n1Y1R_AWH zC+|6aF28~y7IlG^rK-2sghljdT1YNm!j_cG&?M7vt;PJB-wC^jg}@sSh;~f%zyjlV zvgvibTsMB5L*j#zADo&Gn!zeSb!Uu6nU8AV4 zzta)J?((~+P$uZ8V9ZVq8S;Gk9FRxF8uH*$1@m6*$j4}z&BgQhCcQtEC=Ov9tNx>z^FF%x zWRUv5IusRR{@k>)4bPSvMJFD>M-u|f4COx$!=||7qZ-(LtrpFOsDu-aUyJ?w5We~Q z5LO37Bifvf>6KD$2KbcUnfr-Qn`1FM z=5~vfE{?c-9&Mt2HDpw_#j{V5jQOyCtz$^P-ZgrLztDz-G_#Vx$5GEJ6|&dQ4E6 zDioL48GYcj4MGS^7-@T=V(GoKwnQ+-N?_#hlTdhZ%&_aug+*#}HqHpGgF!(R>~4FU zfT}YSYJ)Zgrhs0n6*`~(!OXm?+&*Casa;m-7WE=a@hn-J&|@%?jHBsoQrWs(u4OH? zq|FmA2K`HS&TXVo$afHe;aAx3X{t~Qw`yY2@st^3g1Aum8^XSC$tw23kXQq>K7BMz z-yTr;0D&;15yh7XFk5bWI(ZUp-d$?C>9(wuAtORz%VBx79f6@3mjw_n(^%S$2!-2I@HZkok zK!U-Pkf`TVjJM@?7<{8ISG1kk5l z(YbBj-roEPd=j3T?*sDaT;icXCEYjN@DF@{Nv!vONUYv5*nXgjp58yfVoy?&N0U~b z3{iT8Uti5D%dTi=xel~9Ie$P$d!m2wBh&(cu2aRtf=ZJ)T@E_6>0sP*lFP+oVPxTEf!9SSx`(H9OoPr-{ zoB}W;`*O^d!2Qol&sOrR<9s+1vu`dMdYw~E3HxW?2P6pjpxB}k&mODB*0UbM6dT(~+A&!r;RwyiU z%k>6Gpt^zHr%#5vbAPxEo7avCl{9!(JE@{3W8@X-=^rrj>Tl;T1uZ#!+`Z{?0JUVu zYqd@F#qItRe}V|BUd#0=I-UO!%L#W`NOyu7S&4G59Cu~4B227JbHmgZv~G~wwj zzJT0=STJ~1VlWZi|O0=Zq-SXw? z6=RMYu|`b+>(o#HkTB4oPpW_Si{kHNz!cK%=2VYHXVvcmhJKD=v+ZB(`6!M;QNo?Y3FW#KBKYQ-{ShazD07zfB(^_JJFNm+a#CA+N+0)6SUCX zB`8->u&+-8kE4}3G~mk-=#V(7v_1lZWU#T|!qdBclBS%_lzPe4&0b@VHWDq;XyyKd z4J@kw_#d%U3jC(}!qO+RR$Qo+ox2Y&rhU6} zg~Qovxbb`$|8UwO60c*Lf+geEuN*CW4t2dA%Cs8n(1bkIeF5fi1F&&38sABzayv^O z{ph!+j3#^I{2N7^$eEwm6-Lb~7Z_{4@Jt(jDS<$A!kIGdu5R5|#BSTFrVERe;Y}=9 zgylN7nb)J$H-!qKN(FKquZ{DE?Jwr=XgF(G7w;A$TV;)gv8(UkNdNg}TVlAxl2JdRs7=y!x0pOdAKJ%0pi`SmMSJ%IN-Bx1U z$V8@MNqr`%xe#53>N>->3@Sb^S%E?c;KD58ggb(dDs4M#XjUrVo}M6gr`qUVQ2i2| ztUlmoFG>ZNi2`n5>QhO@-**4oqQ&bZ0(cn)vGuQ?*yF8*^TPi=266w0X$>yHPT!qx zidTj_-?*NODpgaIBA60}#}=37j8M=Asr=mCW&XtU`{>4KC0Hs*$NwN>`g|T`hB7J#}6b`f(Vg;xg$*^EPrFd@HZyD5K#@@@+5FX zt4r{gd&%^IC-<+zlky;L|J8ms`Mi?8%aY3y6p`aH!WTs&WO@y-1z8e}1dNs)uR;kH z-_0@Q3(a&)$TL{0lq@!29VIIXoDtaRb?1`KR%|e!k_H-lXuh#EFxZ>?aowrb^a+5V zKPrMk&UOd95?QN0dYX?Smg}@DuM6Y@t(MBM`Zk@KD;&t)fAXar0(x6?3jAEfkbMf} z8?M-rB@Dm<_;qr^ZIk9u{Sgr`k7wOQk{LzwJF!j_r%FgCy>dV-n>|lfj3n^C3OeHmh^b{pEVKN zcxp0Y0)u4HHZAqh8kt7I9yK(=moeTi)Zv$&f9uXD2^7B7j#WO%*B63=bM!&Aw{eI~ zu6&6hb&i8vEHt?KJsxaebr}1-1>4_xNA{=Q!COOC>Gv?<&a)vc&6^0^)trSgb7-9d z*PpTG?rJb|9&OvO+5DOGQEMJ$j@lLsX}7)ZSbHJY2KK~AAQC@brBE*}wsRS$Q*l+` zbJjxI97=_@9OH*=%%W%cR znAsLz7N>Aq0PppK$5`Cq;Hlk>ptDpysvwyOJw6==mV1l%ku3_p<*>BbFn`#t5nAzyd&6R>gc?+&z>2% zQhM;~juoqDh}~K{E*eZ`zchI`)vo&l8<^TVWia~&m)BNaTZY2y@nKCORIF&p^>wyL zNRgAcLzBai_2qjG%^(bMj%s7?KynjFbi!Y(>xbn_f3aKQAE-mt0@I)L(S*T%o?nTc z04Fb4GXwjB+4IgIS}FvG$Fc5DjR%;=S5n|)W&&v6q&9b`5#1J*1OyHI4xIS(5M-Cz zyRcwblzMv2aV`SgT1{fXUX^;jIlZW6FoySoK_3FKUsY+!s zOJ=R^ulwtr&4U=!;S=*%{|n#Tq-hTj*Cd3YBe|m4aV_$U|0Hj$GO51fPS$rM0Q-L< zf%I`k0ohERAeBF+B*JAdX0z;#aa3XwS+S6Vem#vf1~0skmp{VpFSf)bp44f9P9G=W zCF&5-KmNDAMSwW>?uW=$^0i#7gVXvnD*C!Ckk9iMf{^xmLFGmoH3c9z9>uH*zY6$u zSIU>GR-Rj89RYD)ut5NLk_m)FME_TnIFSEWmDoci>FDT40x&6d!2@&k z1M2^tD|`?5SbR=v{Y7QwrcJr$Wmam%qEM@XugG!K>|kV3+8w)OW7=QAs#y|HNBfnc z2=W{(A>llK1JJr-{kQQvAM?MbmO9SAr`Cd$F9Ekbq!gBnP&kF$M6NMWZ}f?E0XK5O z02bKg_JI~6jvH=NI*N!NI21wAi6tx?7aQ;dQzEb1mxTZJpYOl>Z&wLQLO=jCSD_K` zg%_LrY5vu0g`HDd$EtO!OTwdvJ_hKjSY);Mjl1lV3?Uri-In$PXaOZL0A@{u!Do&r z>_6o0`Ja}f1R2`c$XO(p?QfCdoTD8USfb6xmM6k81wZh|upIR8H0BVQbWUp2`<8O{-;jKHcA7Jkk{FH;q~V? zVmKhA3CH;GwyW?30fIDcspm?~EaatAR%8TcG7f0^eXg;hG7xDz31mBS>7W}2Jl?aF zJJM+4?@|%qtdNlX_jscEk2i@y4$f6-)tJtUHHkfZ7{xac?MKvGHTL|5MzY8JrMvDS z=A+r5a)HE!F&qo|C*v$}=OF+SKb7_ca(5ONQ!5rqVp8bYf{PG&zHV{=`A~3-Q~=A1 zTp?uze5k!2f1<_3{Yw>&lmDd(-DCnpe4e3hSG$|Hqxm$7U4$z1CjKFGeXR?ImubQZgx)GQ?C%p zLEN6tOjy-!0e%5gB*w#uV!@jcBMv*0Uec?bUzVSenZ6lZGw4p5faSS-iMC2Z#>U1@ z0R44ahb$V=3wf8}zddu|e6}XdYIhCOJvrI{I*W6jCU6%zMi5x?Jbq~Ze2;;$V^cK% z5UR?XU;Z9nc=C=R>W&m#Jp3J6eY+4m>XOFAS9DmBf0tGd?!RMF#`m-PHSE>icwgmF zXTIYkPKi3x2W_2vyiz*F9k_B(+}I7FJI2tosz?ZOCYg#Jzp0^3yJv87%G-U0iaH~& z&hfoj+|Co=8U7Ib9O<3EXK+&?D3QX0+e`He(<1yJzhyl=(p>rPKL~F7Nqa37GPJlA zA71ql7lG~i{9&pv%%UJ%B5fcP#O?5^H=^xITz}{+I22DwZrpjYvJa?)fucp%v^C#% zNt&9QH-YNuf7mL}Z1R=5o439sy8EFM2_ultd-wbO(^J0i)#2e<ueXmg-$0=?C*xIBB$J2qlsftuS5ce-5*ua5HjEbYi(_G!w z4V=kVD6HxSB&p)tS{T{nZxFyt;FDaSq5lNJ8~;HLi2tr13pNSs!D^=u|6HYxZ=fA< zo?Ae59GROXd7s$hXECVIm~jt8TrWtls%94bu8+NuxNK9k_ld|{WgzZWi>gvBprgt! zJG*nS^k*cP+vA$lyO!iIa3kQ?rZEYCoL<0~ly!1cmKqBrrjY_9A4rQs-Nsp6tPELy z_%m;&(FqO|doO8m(l`;{D>tBsn0R0Af0xaZ{NK3}`}dML%}8r>ek-K#-rCYizoUh-Zli%4JLq zoc~D4qSq1|AzXuS8?NiVsAOB;M3;HdAns{3o>y>{(TX085G$=YX0e0@^504VLkfUc z4{{Skxuk(-qS)E=JHx^IAg*6-c$>Z97v_Wp*6F~yE<}c-#0%*Eiyt0j|GjCWU}H~~ z8n+fEPX=QTk$%iP;e~y$`*lqVWEgEM4Eg-je}GUfTO`7yQ~t=xKC;yX2|%o}EvKES z-|MmsnoZwf#`KzVqt}e#`GMzd4E*5m`u1NHX$pV{=|2~uv{4%!_GB$r+HkBViSph1 z>S#3gw}$wn<*A9_^7kjB*1oq}-arvN_h4qWA_@XGN$BiX*ul!f_b{|A*?blcOU^-L z1f~1;I8pw&iUWlIq{W2y%YDIsleKiU-U9pfR5#?V!-rh&RK4VSnlqH}&r0&K>{a9! z$k0w7kXR&tFt!bw;d)M7DE_>gESdwJaLv@@q*99TDR`+)GtPHan!^zqvVt=}-}cW; z@`n3w5CiXnh&|o~<|x+C$>nU(*Tv>lXsA0(zF|f!6zk@Ny7CggW_B=kfCyaV@!>j+ z6Zo%!9MkCXt(IKv`BaLZ?486X&tfx->d3IWPV<3j&sAOse zVX_SvWLMXPyI^{wK3sC|MGp^4WcQGx{8J4(js&haa!4lKwot9cD#N|o`g_!K#6IuP zFvY%U7&Iab5>lT($BY664KOHrhLe{LO-{_8=+vyjE_eRmKa{bd0I{sFkR3E&Q^2ta zv{n-X8lv&xubs-2>?J(Fo)A@68vlEGYpbEz*!}#RHds#6|3!R^tfd$R2qzN;!X+ll z1p7X6o&X-$I9`t;`KuRz9<;4J1vXgC%BaC#|8{1fJ zo^En|b-C~G03_f%QkSt_npA$uJdfZufqp_@60d-k?ke+vQ+)N#8$F{j&380ns2v(d z{24H_=)-!lfN$>{HPR^5mLKj0L-oXwnG4yl9cC^IW$3%HTK@OiS0EuwsHC59Pv7U>S6?)aiKI;XUr4}5s{OZ4Q@>47noZ=ZObmsmne_p-q z63=?oS@^)-DVER6#Ax&frnU7PHZK3oo!`UPE{*q>Hd<*2xPOU>koZB9WzR9i3%{H2 z-R^hUv@#jh zJbF{)I(O1Bz*-LYd?lS2wEr_pNJ?ZjyAm$l5(I>_^1d4;O`QIGd&=5svU}otm&K3Q z3I>4WvKpfk*@}gqFfrL30%1bUDr@nS(J`VH-aSuuuV%V;)HkL!HpI_%yYSIK`AaeA zD$inq4itE)b(zWU3+d#}~P=pkQt4C*dtIO)S+ns8zi<47G zYb(t1m(LrgM1G4fAmADMps{F%?q?B)6SUCsLJ^GXmy z^hMDt{(4?d&35M!uJ_tCBIECJ9GjMq(NG3#Rh0tLEFeL!fQ!sOKGn2x-41-w?z{mD zO$M#)(uHd`+mnh%6NI7#U<=`~e#d8fXum^YPl>locP8p@)aVof#9T{;pcrmEKV~uC z86ceqNG25UZ>pIzT#!Ci=M$5;9EA!kk3hIgwhFTEyUI0fZQ-&zrF+i`1-!VyKmgBAR>!+HE}XdedCv-n%|lvBaU=acQ$nNE2s1Z|UljQ^Rj)Pp zgPRZ>9Q^!6&g!T07;1q;vc!pPYB3P~O0G5+X{K4Mjmmp|Bcm_sb`fi1A3R z3upw`_}ArH%0I5&h8EEBsUKy{bReTpYn>R?7m&`O3^*Jn#hg6$eVL+^wFbtuqvmbe zRXReYFMp*_ES+9v%RY{Od+9XRNH&I63wdsp{)7(nu#_NuGf${=TAHGwl{y~Bi}_hc z%jMlt+3?E;fJ&PKF*bPgf1YMGdkc!cmiXr27lB-}8bAJ6*2Rs&bf!!Q1Y6?wi| zPtE!6_5`8r${Xpd(PsUG@q?|8=lyyN&7}{d=kptk&&`4&>IE;BReq>lz(hkzN)7Hfr(Lk<ZgRsr}3S5Ej9z^Vk$|i}M-H$BY}D0ZjaO4_eiUq0ti3l~Z2k!t)(6u>|c2|Fx>1pW&aG+t-Rn>WDmQ_9a4 zl1nb+ECs6Er(18+WSvhP&3`FchtfLQDn>>!pGNW7Hbnc8&t zMM1A!Zij>K=(d@;Ma=)x=H|u6=g-zE#MvidhY{Qg&UX)ZWf!HLuNtO@*@sJu!|R6z z5K2nqsXy>~MrLrRsKjE2qytr{vh~PQKXR}Ik9>CG51E*duhIWw78V-o1D&isxC11F zY){t2BDm%buxzrlQ>}ie_Htub7bA)p98@37-y)46YYIb4mg2=BvS#JtNe%aKasK6B zo4~QWY^g8Hp7d2zYtd-x{8#xZPDi&5yPApDfa32{%r0-Iy z(AESW(IzPbBH{+n)%2|gL%hFUCnE!6V0>E3%w=j|fVzE@Ra=iLfz)QTjrLYp?}zo8 zkECyZ0osbn4J(4cF4J1L|HJ2rHt#7yHvW+R@d7ygKo_tk(kaA)c^Tzojc+JV`*v~N z7C-<-a;0X~^XumA_pHW+%ycUX@nn&?%(sdmu)*dxtgtOrWmp`u$?9v|(rIU!A4I>sn;m;C4Pi`H8ea-H`@;uh^K$yGqvVFyzLi5lWbFD&#&M@v^Gi` ze1ehF?gmtWjZEqdXELx}i%yi(W>+@Yj6_OqP;O?FFf~*8As5dAJgZzAgb*)ozRw}W z;X|8SjOv$xt;^TKug}J?U4v?UWBu^tRLuQxoqM68k@na^OAS7UGqe-@6v~MRC4mvu z%n0Sz9a)OmL+w=u^#|#e;^G7B13xhD64X(4IHsT6#rn%ulRHSAon8$79R4U`FN)OW zrS!<*b7IU*&CVtUJS+7t7ei<-lQm+ToQ(u_%s*Cp17J{WfiA^mFIUWJueGklVJs%u zte^Gun7GY4+S-7yZC5i5WGPRI2tRHHMRy&Pefs_T_oh103yq77x!UNTKT-)xQZ9t0 zK4(>{Em2|9Ma56kiewF?3L%7c<}$NV8en8#U^7jBqb9s8C6D?uj6cVlqPr=(#i5rmFG5Ii}Z zLTP*Xdeew`KDI^G@RAtx%mJ8^2aY3&NCGM1CH6|nryPCzX`yb5COWe{nZcJP#*ns75?5d!XQA&1 zB~UM_Fv#uKdZHE|&Cm+^jr8Sp2(p_qA?up-cep=QDAi=QN0w(0pl?Dh zzA;s0kU~Sp3Vk_f);oxV_Q5<GyeZR6;vbrB|X}$1VO1%nxrhB$*=>6|h06wMKOgQ;fX4ZE&)(WahAq zmqoa@1>_ehL$mCLk{1~byMmX6G>e4}cX)9A;2h_4(k3syd_Mza}u%3C+KPUr*YLj!6Llq@a8SPkpg1>P% zekR;^yZ3HWZqjrX21!@Q9Kg=Uu38BUoWqqNTW3*vdN>GAdVsh+9+0WVHBx*{%r|L- zFt`)vABr+4K%@{Qv+l4((T9G}^>lCnMdS)v$+7|+pR4?Bbux|xn#J9bvuOvDqE*ql zV%J1Yz8fbj$gLNn)*XD&ZJTd(P-^1lCHYJSuVBwTA}s@4LgP3Sl~6pMdTIpqd9^VQ z?aM(Z5(Xf*t2yEuo=8;jg26rE1B_0m2N6$1cu~O16FY?*S_Be8z14Zz*i`@B^3VzI zzIQ1K28{}hN}CM>9lLD7d2MwcUx;9P_3D5*)md@iHCEOTsXQi@O9!||=i^B1F-j8-tZ z=w+_f67>Dq1o!cRk7kmIAJ)*w?nTVFV&4FHPAGr6{EjgFxA^hAJKI3Y>lV(y8 zMDL^nzQrF5ut0DOw8)uq4boY1^}_=c%}-^~!S(d{2KgNe?bbZ-?jEp%G^&GAkgv2V zt*u9uO7Ez*B~R6>9n*fWKzcQNS#GWChCurnW^Uznsb4VE!J-;ka{d%5Zd+f z8EGV&2M6dGbrz78iR{~o@JK0XIOs(lCA>&)0B;BUgqV7GCdHuoCib1fIpf=eO4N^+>u+AYzH`Mn{`+=EByOmkD=rf4} z6*6k9a9q(Vrx*A0DoprY2c3revA%YbyWB+GquodMY-cwbA+^F^eILIq#O!l;7L_r2 z(VTtuWLjj_6qem*F?c?VDMcZBO#adzMy|enmp3DMARtE!+z4kuY@bsC;XnFruLc>3 z@gX3RG*4UWwz>N8V~=$&t+$p;=Rr!UNUWg|*bDi1uMuO%JPHsQg39iDKl$H(z>ZNhzoMjFda-p`xr2D~n^51h?2lQ4boyD0C7SwcgtEBu|JVc`6 zd1fb~elCeYz-p0+BFO-kj74d1JzW@V=?{>^Cb_y}R1KSIn3G=0ryJ3aWQF|9IuW{R zcOP<>ZPrvDG(oTrYg2a2#>A8nyGn#RQ)45C*39lGBpRfQUZ@p}jLJ(+jxuE5;n$?Z zo6$|xi&xNis?%}!W(Fk12mFP*MLllh+m)#)*tK!!z0RlT*gx6(t3~@cGcqua)??8% zzU?=63w8=e@R%b}&bN<);(4*-aXB1;J#NYgC|7-#vse1N1cAvq^gUxNFWDP}C=w6p#|4i? zm_H4h=7Pk=Zy@~r2-R5zPB=Lxl{QX`l(?nvNL}6viQ4?|Qg>P-JEe z-oRUC`6A2Ime$nc1g?Pnnvf#CST88P_1I*(NM^yo^+ULFok+mk*O=Y!-<868&J{7L zg_o>1W;1b~CmK-jK3SHSt8teRy$?od9u(-z(9&R$GyF%)#qIdmX+*v0D?#%at69r= zdQR{7wj9guU6QSX9cn4K^@<0)*_dXSC*Dj+v)r3Don}{9-AB z)8|jsUXZ>(w*#~)7HcHI1ZmjMQqkXvkL0}E3*j?J!-mS&lvVYGh@FVXuz zYGZRNQpEkShL?#kBqVTe!s$?Ll`URBB#+}U*(Xd|5AJ3T^eWsA8%J!7(*`Jm1=FCS zh%yxli8q-<9z=xeVSgB>{Z`Ams6ymIjaFJ_mpKeBP_^nFSQStlQBpQ7cB4p{UF2-O z1D1PKxm<^R7^ixmJUmD%CGa{toUgiFAv@WE-U=C+-mH1-yPf=j+7ptVkQk$C7`}wQ z3)q-g@rw=a(6JddoRA2e<3Hfnx-888<`ZNrvt|V{)r$mr^AXp0tRQg>hwJNi=F-UL z_%@8Hnm!qVCjXWW#rsX#xnAnYoDTAyu*%DF7%xKIfK5h=s;d{AugGZcf8l|b1M{v^ zF^j}-PkFYO?di8D_whOo0TUrMjT)%<@P24K2N{{*;6X@?HKuF$NDn})CG3C9p{uZ* zy4{)X9h({sBtoMa7`wr~xJcq|ao!Jczd1CYs$8A_2AX`L-Nqj*e1FJP*xu4u6F4FX zw-0HW9sSou2;hMY>78@cJ$`IQ7d<({wzhMtoF(R9u%(g_7fLXv8~sBlC7KPSkJqON z!|a&}2oMsoSvnn!85N-a{v@s93r1neOu_cY6-U6nYK4H`8~Cl3ae;^|$_*Wf)}dZ@ zFx0|da>Q+Y9Z`)N-}LYxo?apWE2?QSx2Z=bBFSGqsLvo(fq3Ap;*GY%DnP(=J7CAB znXdt_Ic@!}6q?uii1q~|m&mv0%*oJv0SRHhVW0+El{1rkT0qm`xfaai;bu$Zfe4+G ziQ+Ya`XvGe9m^1x#vK0vQy(;xhA=eJpaQI&DJM|H>glD;-;k$)l;Kq!#P}e|>^nh{ zx5Ki~x-&2 z#7fT)2MqkLjED$iku-kH$1U;wiO%muX|Wg}1>|6%8=|!vRH!e*hWc-$=a-UtShv!x zw2Y1;pgbtFW&~9dd<@{-peG;VxrKq(&8UwZp({564QV*DxvUa5Jzdgx-#62Z7*nO0 zh~a{v;?1P15!V==P~wO;=Q>5mngM!uQ4|L~uL)>Kvi?D{!uJ+<-egwtvJ#Wh`+_i1 z)DC+BXHfLY^UK}Zf`cXDA_@b7xY~(mo1|=RB#=&wi;EUT&TF%|Q>mWF{K5!q7$}RQ z5keOepDG*yR;_QR*_eX_z*t$u)lNCEf#JtHV8v^gR{_h?V?CC^9Z+atl55upKBzat zF)bs356UChe!=hHYB+&gwv@{8>GY#fmw%GIN@E(_L-^=xlr+`ikeSkPww@_oJHDKh zjv^QaRh~#sdH_w6_RUrzb?~RPkrB9w<}TFi(rpT7Ocohavztu_ zFtf3<`5J{i7(a-5zVPJ;4#YKi7+CpRCl#CT#7TFn*b?ixj%l`6i}+zCc2^-R?r zij2x#hxL&l(5j3sr`I9aZbPrXx}7aBpU&q4flSaD2(EjIvs}*6QL0Wy2!CX)0*$(o ziBFUk4O{~M%n&OxFhlj}GU=Z-x=LmCuN^cNcz`Orpb0qaC@kU7V(kSL8Q(&lQmb`| zTD7jTm&lZp4s@*JP?EvU0Q2)t%W1HGma^@O&c_n14^dzua3Dv>;fV=UpqAFtNl*2A zdIguNzaRJoEwJw@^b!3|G~_Neue!DAM*N zil*0fyDNnTqi>F96Es6jiSyMeCl=2C=AJ|cVBMH|%*oq3*VWUvS^y?qvU@}-t` z%U;*uUxLTFW&{495u<=Hsn924%tu5=qn!X8Dd_X*81PeB3?_`L{trqp5qou8ifum| zeJi?h^ds>Wz6wl-4oUs=*+S&vUMLbaUa1%c<)vSB=TAWZpXjvZ=%3c5Z^!$UNx5^-`NRT{O2^Jdd^MP+ng zVqL}hbthlI5QOJigz5tXPYwYZ;w%&_qa6r9j(o2Oo-)3{2C3Q8=)O)Q z%#T7l1EigBIHejl<&Gs4=_mEpoU2-c7f7g|Cpvh)&z2P;5NA^u0vFL(-8M8xqurR8NvAWWkS(~FZgH^_MgOfP zVxh^EAuX?OsCq$_k}GXU3}NGEVJnc$dfhk}Xt98*zIK~MXn z2V;X_PdG_%q#7F(UDX}4m4gNLf565MF??J39T4&DzQLZ{@#vO(WOQ^I?|X8`I4F;> z*$Gp?nn1U-MG!(5LPUIkDpW`m;nhyKHP4wtRHOy2cD`#^C^!y+Cv@-do2$*LN4P9R zk^atcT#0rSq`}ta`KfTu!Z&$lzigq2qC3|~)3Y&|jooA4^H3U*p`DMMY*Oe@QgG;y zM8MZRaD4HikZ+HB%;PF{99?qeTL4M&XYMVer?^UgbXlQWFw;|Da6BL2NIx4AH&TFN zqeJJNp8-rC1I#uFfa=CfQ#^)(093a>E~J<;lJGuqlfH0FE;l!rMWlQ9vD3dt*J*^H zyo}P~yS2^rWSGG%d1!v5XWXo;ES{@41K<(LkU=8rb6cE?2MmPm3z|dnMWN#HSdzr3 zH=M)CbdgCuks=S!Ubc2;=;|870m|Gnj9f^0?U$mc!yt=B;xJg{ z;m;(zx7qy}#&0C7beh|@I5YW}k4{!u+mGAlFMGp2b{mUc7eup}Y<9lqH}ai)?VQ%T z-|ZkHK!Ic$quO;EBAbt8MuIqaI5|FzSOzc@_0E$lHK|-4NPrzW|GQKU22e_iQ%YVx z-r+6F*Wy)`Gp4?FT)YpFgIo^?f^(_UsYgOjmfu0IM?k|Gj z>RoMZa^Zt?>M)OH(rM|QQI7NDX$5w;Gwt}iF%)YN0Ji(Dx8|DF0c^3NCvlkP#_GG@ zumTAUZLqmrfQ#j3j0*ur1PBAIM|;ES2GQg<3;_;t7B`4xgLiE%2YipAi9c6?XUXm-}yjGYwV0MFR-FAt=!(vT&h*s5jI+GdD5bybKi96THr|vCKEht?DVH0 zW-6|~v^Wnf%C`gm%Bb)&ma2dQa22u7hgIKo9FkBY6b3M3%!IL-w+5(-Fg4QF*&&8n#P?+u)j=Erf`tV+)( zfKg0S?jrmIPs;-qvuJQQa~B$TLq`kJQsz$spgi7xFG~$>7&pnjT=M~VxXsg}A72h2 zd}B=%&?Xl;cG2^m30YjbBoY}kSd|I^s-W!F?4U|A{mvuU&6~F}-tp!s1I5kI9Pr#8 zYuRkRC`^ktk&bGl$)8plnZYQE(t4o4ems2q5HGE&jhipR*N2~AIlj*f*2T~O@AS1? zi4Z0z@OSqzA{AA?fp#lOX5Ty|!tX!RD#iV2i~2OBxw(F%fc8XzGt<9Li)LtPSuuzx z7gSYi^2giJY6)agMCE$$guLpeIDara8WI{6A-waeubzb>>JeB03971IcnW|mig04Z zKboWi)X#=<+qT2KM+l=#-~X|)V-DfN6g5Zz-hFq%Ynkg6jS=5P^k}Y<4eAoOO}jlQ zk>auDe5#(Ymu|Dr|NbtWDbdCQq(E^1;N;q*n3O1JaH0nlIR!xO)N8&)j#VB-*jeNQ z;StFBMT`TL9&(~C$j)=>d=`+GJ5J(3!CtoB;|8dQ%H}*E>W0yPTEpSE7a$f1%*~NK z_{J*bc;b}boAxm&&4QVo8zS^mh40f~5^&ray$LB2BgKGGc%1A` z&{&`U&EGXRff|$b5S|%*?^*)t?H>lu_80nQYLRqUQ2<5qzr28wuomczg+{IXIz+hh z3D|SLTu4i+Z~H;V8F z5ML7ZYCWU?kNV)s`ogCEzkghQ8m%yCcV4M8>~b>WGOudYyAi+s_0pa>Sop={Z8S-N?oM!>dfwu7C%)ct-IGb6fA?~lB)i&qb|z-rp+qA+C(-6#dVWuM_}_g;cM4@@-qN_UO3NSo##ZyOdyx@tYD{0w zKC*n09AKcrp=j}~^yqSgh*vvL+*Mw87Un2m(yMEo5 zzS*Q=AB45W?6qdlcN`a+mL4W*pLw{WJdlo@+2(Iwh(OLN84c9KwqoEQ z+dK@QV@%|1Nm%M}h~DQdd)*TN1!6gS>9A+DG7kLEXDAmq3DHS-SA>DGlyKad@ou^-Iaol<21xa zP1?V>mCZ~|6h8<|1fR~HxLNUi$~7boTWf$RuUuJfc7Q3LXB3pbcJQ2U!MVhoTt)M* zs1x;qL9O`+pJ4cO_$L&_xhGbz)3@Vg%j!*=GIhS11u9Ufasv+Z zon_^B@mB0QgrCOqEZQxvAV6}Em>7t?Kv4LY4YSBuO|DC=4UQ3UzaW#_y1lWg503P9zxB6Mt8;r4lxaxLOO5ewbqeqO zv>ip>AQwKH=28TYrEerM7zWD1mPguljQ$OIL2UrwHe`twANTs`Gpv8H+AhvKak95& z=k}&}(PmUh3|y+xeEvzuOS@$i0!2W5ApTb!5CvuH;xf*Da?@-G9a~Y89vh2lx%vx@ zdhA3nE?l)_x&lL58WYX&x@H>^M7m;_XINwLV(jVp&Ck0%IM1Lj9QOw@bS&af@%IV~ z&@aO`^9|3AZyTvbHn9SErp5gwI+Yc!*?9(&Xhqx~V8|%g3D~f0eit6y1#NMhxH>*} zFuA`?D1!!LPVhHd@pcmG(r@?N7u2;3+v$`{P#kG{jXu0&GjLA5@PJd8;P+8t%M^=&R9Sh0?H9^ z{0$a~48EuWGJtaM&KrR`LWx#8!KDXn2aWV+WPr7MRyAR(k|@0c5ui+6B(43)Wf&Ci z=6nSN_Ec!rf^(i`3r)f|02_o|di2_5URb9z1CnI;sl{uDQr6NZY*9rkPyCMPBdcVm zA^p2FkaK|NJJI+EWCnE&Y^`&kF9O@{w%e}F z^9r?SPT{^xQa7<$_v65^dkKA#5?J6V%f2C3^hsL?XN*DIcrD})cI)smmGbY`b^tAr zplYwaW}y)gX;l<+mplqKLz6?W^7rfI!!@s`OoxX@4oFIp4jfd$I%MNgu3=K@kgc9v z*ymV8n>6`)>K^t~Tu%pv_~2Ne0v+|B)P?iVBd@?yex}LBID1p_ORtO=8@m|u9x&-3 z3ncy}GnK=MC82C%wFd>UOpEN-QIR#@#bk8^ce)Vw-0;fvE{QDh-S#$EF!g;B z*&RJp5#DM^N|?Fu!1gWmslpyp7Aav5&i1Isn#8(hyed`|o&G%rOayQ~{VpAyA!YHE zXvDW?==6MG9n<5AfRU>vUnGHjh*-*%rnGUzc9y*pB3Gi;{FAw71X7T^nY;VIMBo+9 ziIN{TP)~!$`91u-0OZad0VeV%xPN6w9SU$2PzmkdzUHRg+h;mQnlLT;=WFemG1ghT z_f7-;r{B|aANs7bK31e3>dw77fcBWy(1>2s6mALIX~WXc79y|JIYqA}BMX@~ujUp=B{yq7J<5HQk>!$Qvp%@+1+3?XrmZ zZoYyzuVE?_w_a0UJ9SI$tb#C{0J9TTa^;&`U2#QvKFkXVL1u}3Hx@W`IH^vZzAobP zg$Ho>D7J}zTLe5T)MJOU4@DKWWrs7DtrWZ@e>k6E7K8r&a`gPQwq2O~kl-9zG@=ty z-bfU275dV`F5bFZ-*+=T{QNbItMP;zE__blPRB~Cm%$MpLZ%}l8O%BdyqsX6 zidTRL)8u*#N2G@klr#cXHRdK?BA|dlBQNmm>h2yMstE{j0qN=KRnnL-0hszw?D7KC zV1duX9Txo3M&T6-&4^i@m%`IkZ#{q&4=&~f&<@Bx(%|GnJEPa6h)e7Gzu=p8O$kwb ze*2S11K6m1FfOt^kkkFVb<*<%D<$b-bB)*!2eJqM2LIBa`_MyCjL$g6d!5ce;7Fsj zv(_5D@t^N#(_m|&VyXJRK@#_!zupnGV?=o4CDi7(hdK+SQSo}~!L*`eefVl=5_Oaf zoTRj+mP6gN!R}IwSJashZLTLobV-cSt$_a&$klCfw{7NPPSf0#yQEL6cSYEhBV@>k zFdHaz{dR`IAxjV>2!a2nM#Uc7S43RAd^hBkw3ygfflu~;b5^P}N)g}chT0ghG)nHf z&*DduOC4Lg$#Ems#U>wPV&Io*a!OSAY_c|j#tqvpu0&mpJ~C7wZLC`(tD$IdHL3Ru z&Ei#MIde}{lYepF6$45@AF$Aav{H1t#`nni+K`1^Kk6IM1SAE03CCbS#-^4_q*p_h zm6g@}^D`@}d84HQL?7!7<%lk@|B1%&ug6;q8877t;7V`mxjCM~gqa0;_L}O=VF{B)xz3SyYW~CJWXQ`6U-lz1e zB8sG;xrTa)m#^og^y<7eb*`D7DrM}1zM~NXq&!q&#}hQz&)0ll5=r)yv495Gg7QK* zk6ek0ED5QW$eplGSA!z))R8bzI_m-_)Kn@*>nEa_#-E>Wh&)qNm*t`g>7 zYVulOr^=*7aH2)S>Pd%fMQg5Id#IMU$N%=)UArw0X*N7U3F!+HAJaj-8CtX}i`=lb(6zb@K`*JSBQ_Qha$2+WWHnB# zf%J7z6IFZcFqzJb)X#l6SLQG$`H-N3$LV@Lg#3(wadIiUsze#Sn7C85K4NG+ccmg_ z#npU8DLaqD6pR?mI|5uxI0v@y_*`iAQe+XC&GD5o$JxP!nO&N%UiJ7YBZ-TQ6yJ-z z<;t`bhust+B@!VGC^-e{-QmgQ%`q`Cq1f1_A!`$CcN1SI3Gkyn|8*b!F8R_at)Ayc znXi!d@S#W9TXjbN`p;)NJc_0Qv8$x(#hHkN5N-k;#*J+gBvVd&^~Kb#p;_5{+;OWU zGBPrf1lrft?OSwQrh!&Y!TWP6oU<4I^V?bKKyS!MBnEwbeOL(jbu8ft^2bWg(U}>H zA}SNWG8~Xr`mjfgi-?5jr~9jni~*1~WF#cMNN?UEO(q-rSNjFoy+=LS_FlyF)3 z_CAt~MHanY74MBJtZA`3$s9~dZS#c#Y)paJEl$E(_vdGh+1jOX@qT5c#$fS(zDeFhF z6YD|*PWo4p@BPN}crc<5cg@lC*7c_rZeX?2% z?CKIw`4X<3OVmzwv9(R6MWZM6oX#Ut&M$LVqQ}O?h4bmtr!t?mDG!;Qn?%lvRo&?) z*#mE-X~~2;bc;ehH`;>|KCB<&fLqsbypYOJ$|7s#CNa-Y(rN~q_D3XJVKeEVvy+p| zx!Xh?KkZ$Y9!)e$yY(zk4ZOI&kY8`o+!T-;{t38 z6~3ctG&429?_q}aeZ8!QB}Y;C@wOsTzmh4+iH!BDs!w z&8BY*>tp%t_e&mw);AGfWNZg{XL?esSsvcRv$%WNbyw0-C zii1!fc{-aNXgGxy9w7~vhMr2apX_Io(-|!fa;m=s_+uVn89Bt|Lf&~46bh|8tw_P&c!fYlnVS6{{7faMl^v~rKZPNVX0v4-a~ zg$WcFA(dnbX|Hq&Pvd_}{V2dSIZm{ucRvDXM9_fLC;1a19^E%q=?fvF7Mn|AsG$rW zNrAZ}o(1n%y|pJ|L6kpOAhwhuLkL*liC8$0xI@ifk-U-|8M#EE;|->3|Sg+n=}o0$G_p(+gN;6_qocC7e(B$)9Cl z&0t~o7qE@z3WQ!M9P7g2MSuKYDPpGc){*|)>A3|))6Z($Qy?^Un3xm~{~MmLI!|$8 z34+Kv+Dy08{g<1-VCn04(%WWt{Zk&F;0Hl8KbcKJ)EmSsjG^zld86HpJLU0E-^}!V zUsp6?^-^aRMF)BfHjgJVlsz zL~#bKyy(=Hl2Ubz#Mq#}Q02!P6GZ(WR>6#N>AMfBN(!?_lQ6?%V z51^dSpF?!(**L|#o;yKL8Z|~0V>`h0PDq*B+ zJb|gHIILO0-?{&XwXce*YYVnKxVyW%ySuwvaEIU$oZ#*R2ol_aOK^8f&=8#9?gZD~ z+}wWB{YHQF7<}*noXuWq)vB6v)+}8>LPIS42h9K5B!EGr0T@I_Vv3mpBB?!(`f)f| zD41mQs?AdPms@{7KhCP^Mjy;Yrhj@WngOwkJMp@_+?g~g*yNChAGo!%o(ljs)hPimsx8#rhw($i7C-@%CYaZ>o&-DoM;w;e$)~LrN>I#} z87X&2ms)=`Zh@0gHWahatiDKK=P)P~UlHS0aT;3l<~%^{aeW6%xeAv;gT6 zYUHB{lsZ7$h2kWu3lsexOSn6FvZpKL&{^`UQG2q&nfNMehGOw01;O$1;)LfAh4Z-@ zKXa}k6H?UXb11rC&BGQB=Ga+O&}$ZrpEupzBtY(%{y3|c>JZ~>7);gMGyOd0BZtLORW%>RWlH+ZA?f$nIG2IY%W-el%-Kqcc@Lk2{ z(nx_NWTzba0L+DmCuTr#MjCt%=-%-GELk2~G^f+25FWR|Y>U{%LOvra4&ZeI@P$oOON(1Z*?QU1p(E}k2jxr7ZR4ug zQrtXU3&dx)mhcCszHOzWDQ1O1>1RMcqv++`MmZfSYIfcNRo;NyAfefKAPNQr)zKB& zNn^Zi2s5$1k}3coOMoDP`9z=oa*=M?L7xxKTgX5X^OsW0aDnp+i||a50sxXb+kCeN zcp?PS!u{%~!XH)xsDN~@fVg@57eHE_i>r^p0GsHaYax&|P_~XhX?Y(2*~l|5Gm@O3 zq=<@P3mZg5IxM*bSH7SV_L4hCrhFfqfWqRBzS_^Ip?4za{XWexA4=gF5>LVAA&ax2 zAx_1~2%egCg#!|c`9pQ&5dG}Q>D-#^{#KgUnLURxyGIUBt#TY}TUR}XL zNv3!fVJ9k!t2!Xr?}Mg{zl`i+_+ib{7LH40v_}wfc1z{q#B{Irov?-g|2ye+&Zy;S zM>wk6lA<+sH;rG9KsOcm&QxIo#$i|>H6QQH?8NL5fLf@QI;zlJs)l2GBDrLy@W&ck~XR ziA3)mf@UnI+#Bq)6;l1~e;s++T=mng@Yc&?xumRHPiGRfIA7=JHrTs4(JWW*| zy}lvocMtanAUUR_Mjs27_bPk~mwO*Dyid__z@rA#YEwYs&eC1{ zk|L6-A4~t_Zi9X!_{8TukR&N-E%U#sb6`87#{jb@EpdNefncSiicwoJ=jLZ;aewYP zg#xNY#(V#-&TSJ%2jt0G#w{Kwz(6Q80gCO(x|>{xJL^SBTzq`WM9l*T@#~bZzz|UQ zWiwh}QQAnRhu16uUo3_JnxLAme4J<(ZOY#1!^tom_(+^ULfwZ+IeSB4wY$12LT(5E zAg2S1be1LIhk*Lyz5Y2U+r+{qGC_|xrJX-oRu$lq)u{?{1nULxf0Z$U)+2&62GMGn9S#ct0;c?e8iq85r)V(2T(!*$ zY$HXPs!?(-YOttKA5svI)uWpi)jRB1ba)@JB%4+U1kc+FXx@1*Eb8XZpJ$x=lF%N$ zP8|wtM5@Tt+R)Gxd!!JYb-vO7bf@fHzv{uy*0QOa(|(|%_iCqHm~OO@`==hzQ*dHF z@Rz6kzeCst_b7v?T-GR_zy&fSRdsxHa{t5}y_m%1*&QY!J-SeZOtpMMmn~Jj@(NB| zSbQ4Q=N10qBWS3I-kBML8QcRO7Z;a49O+Kg7BdQpe#&>nd%r(beE)wgfnz`Xe)*dg zgP%i?IUA5c{Ig6c|81H6|Ne|EIIQ=bhM;9MI4TAP1dJ~M8bgaN*%{@=i2F6Qw?U<- z6`)0a%K<$G|LajlYBq&(*9x)#3l+TfBoc&>Ckc4HP+;?b5wP0;QxPrj`(5qraCN*u zDVEM@*r`U0!;t6jZyHka-_no`fac8cFE8$pET2RR#SgLn= z^^VQ5lHwQf8Vr~c-jBaEXw^7LbZRLT|AlHXYCV(6V z2S6E&vixgEwZDdBj4%oyKvp0FO{O` zAUI?snboF#R##D&hW7>#Bu^q6?Kk~(cH?gh4_SlP zS+&3K@7{|wuy&Oe%j^0u6%-FlP1>9b5rBn-3$3fdtL!*2wYQDlr{yD;pcqgYC}qW! zgs4NCPQ=S7eAi0nPjCmVjYD04zGV{ z8O*~-*_mk{41wUg1r$6AN<>%~Q~||~*W(pej-hX;ipulG`>jx)wOOg__iK5gLE!3& z>NU%N&hPr_V%@C{obDk|l{vA$l-Yc!VBGApx%1>45MldsyCOt2J4fk_OP7(CUGKhZhxt!xC*6FMx8o>98&^kU`Kh z_MO<{x3cr-88iWnZ5P2PSY%srP>sm?{q^v9`#rojW~h zp|=K=J!VRdpOko_MT_I#KeM1=VHHo$;^N`;4h%q+l$5}I1i)y!S))(#+pMQsTM+p3 z3b{I7=i6lDTLq|S7;t-L#I+Y5p>`iV7upu=W(+ew%z&d>!dynu3JM0moH2I?$CN?f z&)JcRhQ>SX4D^ALF|1S1=y+&>C<4p-9>7F^)HSw79$V5+(E0g>!Ugkavi*LaGAH&pP12N=`kdS0CLaw2Op5K$?D7Q5+Wpe&>)g#E+R<<7v$RAI<8Oj`$i_q zkQv<@`w7}?$h{6uzXp6%oE%3~GPO5>gn*C$>klTsmR$r-1Z&Rnc~rn0JA|7|@rZ{mUjiBxuD}IDTNDNp2o}OlzY9%E zjo(xTE&L2!trxx|k!MRt{W;wqB|frvUM!9Ks;G4&;wUO9xvz73!B&dSz3J)~#o3Rn zrJHL;K*{bO3knM_t`0O@{0?>mNLD(05lriVAvE=Yg`Z<|XS4J&;SyQd*@E+v$ZS6M zPc6Vo4_&Rub|@#54GayCOB2WKf3>*~kR~p?W6BBm$e1A3a46Jzc-^wkJ1}aFMv&0H zr}n?K09YXl`?wdn#AFeT*<8nhgr>(P)F%Byi^w;pdY*)QouC3uK6*j)Tjf>p^|<-- z1`mlX=s49gu?E{$?Rk_LvELJ4!k zvw7v=@X3BtsCpG3C;|PubHgC;q@Qmd{$6+cXw^TFhYNjS6QTn1JMmWFeR`;J1q={c z`Zd!yut(L8DP0K4Kn2G%~evc>3tlZoa z`>5ZFg&<^`Mka6oHS0g29q2@GLg0p%`O`tnTxLYd&ks%DNhsE;9;Q|z*^7u0E?@$6 zCHMEO-DDbq#1R&Rd~epzqbTlBv0=RpI5*?KG<@+aJko0Gn}h1g*vNzXQIB8Yl1MP4 z&PGc6W~U&V(&k1!(~v}C(#HZrt0-GO@J~o6Ph3fC7{k4@01+rI(jNVZt_lUl71{y@K6mcT88xX#l!mLqdn2 zrG20Rm2ZRQmQY>)9CUiFiF?3aDz zJDSXHWG9gNv{R1&!NeOfbhQXZ8i7pIHzCx1LH$IuLcbfLFQ%d^uvB!wsD#%NBJ3y5 z`rPpvnHXp?f;f)Gl7IzwLA#kOC@9bC8S^SE;0 zAp$t`x0ct&3T8tbbpHM9N6`c<;VkO; zaJ=i%)wY#rH@r<)mAw0@LYvdfn#p4q506D3xyoe72&A{X41(0!qz+IskckcL>-d$T zr+`@F4Jq5PrVf0|OGC@p>L9jFw9^b?xU1PgKtB78-+yb6Vme zt#eiB16;t!0r%lwe5imna{r`nH|8_?zVdC^b@<`#WI4arVG4dD8*pwHD~}y zn`Um!IK1qeGP%uTh5hrJ6dO3{6nRRZe8`X6CSBIAMt4&86e^9uwC@^=WPg+TSx(tKKRso ze4u9%OBPGCV0)U^?Sk8bh(DyTv?eM$Q9G_%>JRjqGbZE7B-HI!Yv3{lu46X6G7vf{ zY9JB;_xeg)Or$59Sd@?D#_G80>uaWLe6ytAme z22UeXiy42yjNzC-xhwtMH{2OUpw@N|qS)Nd&-P^C0*LM48pQ89bXhw$2egxru;J7+eQr9|hP=#4VIwoPKP zJmr{?Hg1f9MIJtaVYzr2)DL}tp`d3aly(Vc<>Cy=$fvVstV*00Vp%a23)xS zRrbWSw0jghgSs3GDvObDdk2BZnWT2Jc z&Y@SDa79pI%XHRO0P{@P5A!+(b0nlj9#g#811WLsyU;J;{}hPBT&_h$#`dM>w%hm_ zR;LU96OLxA*`k-qz+l6E3b|}T-ViRrto87)x-^RR$`7s^wvoohUUSrI`Ebt6OL_R5 zs=Z(RQlzv$j2a3JO|c*Xn-Y}$kz6EPf*6x5FLXWhx{Yr>8!^c>KDHh9nJ8CJqI> zKsEsI3-BsJC@?pxb-j^|1EU1g!*^byR@G~2E}Ym*1oZ6x9EV!W3( zV=Pjvsl5%PImAQ$aQOMy7FFP2?}V_PY+ZBn{7s5;z?(h+>@7gNBIn|?6R!E|6I(?! zJ=e2y@xwA0tX_vr*~P2{3rKf**1l6m&c7)I z|CNYDMy8lQJR$KqKcT~WwVFHE%-xlkl~E?sffc#C4DvaF_bM$Xm<%75ZQhUm;i+?f zb`1!b~1ZWQMYobIzN={BqjV&a=jqO02i8qds8qajJIqZSNW_fB1jFiP7 z>aJlhD!pht!JSNfBEXH*Q5wXmQBh&}wl(xmL1gd4r4u<)?xCg^DB$lkh` z1ri0Q1b7hUK*>OWk08s&#U7L$$3%ESw6VF5C?gO-DL@ZNw}>XM8!hyP2CQMpav;_e zhA;t0dE&b8!4J#gp=Y2J*95NQgLdfTVHJcMc%(-YpiQB+u}-ql3c|%>Ufl2JCe4?X z7aGObIJK&K(Tj!AUhQLQC}=42*&bzZV(Gt9p2*u-1Tfid=5e*2WeA|9!K}YYVt+cH zZHcogY7YQetIsHZ;Qo{Wtu5d&01M3%e&zTHBsyzq0rV5=Hdw(}#UH^aWbm~i=foep z9)(QR0wYV#bK&g)%$?f9{>C9a|3a54rnD5v-`^h%8=HE4W`q2UCQL8lK3u<$5B z`9E-XnbT_Bn}Vuhga}uNHohbzB%YHC?5Ggfed^%8x=jugzE~@7S>Tlnmm+1SBt#=a z16SUU$O~JiqNhZkHdTv+iwQUF=-pezq_}8K@lg9hn7wYX2Z;ky3YjM^(*vuisHj-< zWV_7`oSAbyFgeiWLzT#(CvK2Xz;jxOvAD9%1JJr!sI`T^nT~(L3IM0z5CPc{(v1u; z`zG5lK--6V-B(7fb^+{HZp=XhUj)66gqK-?Nts&R^5CQm?G|?CP~DzjX1BI8Bd4_b z<*fgu{Z=aL+h-?pz$56+bFc^#%mQ#@rcIxOILVqvb4Yt?M3_rszdBk1$0E4K+G5y0 zAq$N3sJEG?Y^)pGxm3)U`&p_I1Emi%6&*%+K&>!UYZ|x8X)eIP+SOdL%Vu6=-$P=Zen$pO(ivYK|F{IGK|f`VPj5y?b@7!!y+#% zFtIR;^`c$xm9&DV(4fH0!0YdsmE}dqO3&z7i2ayVF2o%aRd)FSLrTbP@UetF?5Cx@ zV&z>4i!^Zv?uEd+Yr%t~I=J6Dvk7R|TV*8PjGKj9s02hY`>?I>Hkg5hff)m}g)hXN zc9ynOpa}AXkslVdvXDHG4DyL&v;~QE?$TLTS`%c?+QK+(G(IZN{+0yS4~NeK1B2u_ z$Kp@4$5I_Cq__8-EncMYyI(*o%tl(d_MuBj%H^#(<5ibfrfBe4clIQ#s<=^o_?Tw_ z)y4I>EREd_R3oe|DZMj;_}t7Mtc~m;->fI#b1SMuU>g!sMtRH4Tz%@f>Gbua8>8T3 zo)Br^Rn-E&?+xdp%_|2oAWH{E&h z;dTAbu8^W)EMTROwZQZMH0Bs|Uc**TAe)(9eea3)I(vm{Tt*Zl_Ou4jmvZ~9J)^3@ z3&!i@JJ`9L{yjF^3H~o@-(UeYqi+JjdgJ)ca(xYECRZMo)?2vrS_aC%C;fjsiHbgzd%E=iTl$3wxAln@m zYhq$U+Q4!5lzG?;*6CRE)!GJ@LSoSTBJ-<4H`WJ4#QhJ0cAL%ln>^R4E!kgRTZw*Y z+<-wq)Gd?{A;VM9eM_``LQ%2Wr!JoSIwFfIEB(C?tGlppF!&4c_d?9c!h<>=qQ*8& z889jMJ2i3iYZ<9lQqo~tw$E1*0=&?u31w49temPHDlxun30LWd0cE8&6<*99em2U# zj4&ppAf$4~_&Ghnt2JxrYNSqV8KL3zA67osJI-`rT_;~XdNYn4(J%QQWW|qpZ(l32 z3%$I&IJ=H@3JjMmGT42p=dV<{T$=ifxgC1CzfZfPV%oMeHQ{07Oe-!Sj*3ordEdP0 ztxJ1fJ`l~)KA@ub9kA?m~*V4|L_oO4GB~03?w+V>iHv)d@z{0%=9?64}w!DsvFhT>Q z)+WYPE0*Rrmv3thZw3IT&Y7!JIl#n@7fIkb*j#@PaD({M;{Gh0Hi4TX>2YnYbC~cL z_W+UlJx%l$IWD<@Oawbv2|OQZIo{+s*!U;c+=}3>x}T_Pj1l0?vy(B$iRk25hjsmE z(Jtpbrmjc+9VmAxn+tUFP=k9DC&iN^i-0+aM%WgW z(3@^x-bqATs=r`9I2b_1$It=crA#0URRJJZ>lhFBqWGoptfx=(;PWdx`gN{9 ze?!(59q79KS>bpij-#JB03;n?jQ=TJJ^CF0;g}XFT;P{(SDa4iALvoQRChj>zUC6m z+3wZ(Uj(y*E^6_};81|!h)cD>`+H1Gcm%vK+h2_MFhR1;HtFY3)0l*fT-s%~U%#LH z)qx2AH=_Pu0_GU45+Dz2n;WIwIi)b7m0XS+?sfotTl-(8;pTt(rE-+WYUE6S*w_#L zm)MB-pNWl_`O^WwD}fWA@OR$d1DH2_8csD^OM zm_Z|5{*Sc>xmA%d2@y&8VEmr@fzU|!vaLi_O{3LP+?FjLpYGUBSKA|WgoW=gv4ZX} zPk#(dp(<;0(;9W~c0C+cFn)iZYq(_dA($hdV=Qzc3YJ4m_cR%6!~%*J(TN)2$LgNJ zU;ISZ(*t5;qd%g~WamBZ-Y5zO0)nKB6#4PJ`PJbRa+Q8_nybP)yH8p%$NT#>g8mPf zD8zz2&oH+xM;j2KBZa7p3Beid9QH!1Ch6kw4BooD!d>S&hSQMV-F1*)`Ig_0LuhO z&bEFigE9o1h;NKqg3C|ZDFK_B%be_U&e*|*(NF7}o8&ul>?_pYuosh(l6Zk01dp?| zh~{ZD)@yB0M4=~fx(!)!p&&UpNlsVKGK>o9%O#Th?uGOu34ft@7(CvbGn48LCk4hhI4)C+jpLEFHTpmg>CGJ_+o@It#@&T5&k zh^>d;MEk1U+~LSX^u_P>nx>^`9)T%s3!dAkIsQ+e_A$$K?Lu~op{3={3%e;CuWaE2 zuQgH5>UR)A0f)%e*4E68qxBku7NVd&F^WWlqCiL}P4JP5<}RC`Zh}4@j^XdI6iAz^ zxQGS4;|yV50lhICATpxQmt`k|at;6cY~*|bpiriIVm=STj>0XqR;et+)f?{zT;tQ< zJ>`Q48{6BI#XfrV)0ly^%4NX7B9GJMkchJmQ=>{y^lTZJhQg}9?U1xY4lsuU27<4x z@c~Sv!4~jIKG*{ghb%@e)QBNSQbKO{R!R7;`GNAFj4lg=-;dDiHDQGs79S>$s6OHg zV&L4c$T$kvaYg4-7Ku)11cE|AlJc6?FoDM_tr$nQgrdKcMS5pv)QgvOJe{Nxtm3A= zS*y_f`kov|&A(`GdOv3uGx9|kouVoiuvl&=9smdPi z?wm~y%i*2Y%H(}R;8ggt;n{Y-e?-rYK91Sy-QB@u<8w*8cKJ(v&cbq##3_-1h9vcw z)!nA2OH>3)1-YIy;aD*)1|!7`^$gNAn_%N%#c}B)_xArGyQ$7qHcJLytNOco!N&7I z;PiiY***Ss?gVG#*FpvzJ0oKAt;6sSwnEAPeHJMkD~iTXL;ze$#gMkO`BR2=x*E^^ zkCp#;*ew6odf(S`w%2w4(1-qxAD#x^NqgV(hQw`tx?3Ovn*nc5WbQ zpe)>bLx_<`wZaQ(qi|Ow{ECz6y=e#=gL+!&c--oyIBInH0}GBUz8LIv7aP>E1}88C z{Vtgu3UTp^^&YnExX>VB-xb?GKo|Yp=^L>&6dR&IbnEWfH8%1ZI=DYy=Y4_? zSOLhDl~5AYWgp8V5S#Xn?VNMP%Y?;O{lec!+D;FT+cYx=+^%5?NVefjriJuOuJlO_w_-}RT)A0 zgC=5s1aeqNh(vgC;Z3*FMMp4+qYnrtsKFvfNDH@%Ks4}QAroz5xG8dDARb<3;g6b0usk}#ib%z7probOU#1kZ#Af7ErN;ov0HpLROi{ItiU8yFT- z>4260=qK{`fucMNL9kinS9Y&ptgZ}j&G4y3Ep!W^kkIP~7a_XB*4WY5O!RytACP_? zS$xZ`-eod|7tw&|Tsn|nr*Io;MMtFFKJU6r-ij zEw*tOIWxX`?OMw4;V@ebe~o5x!|ev1ew!(9f{4H1z1Fjlb1oJWdp#9sI=noEhAz(^ z*i*8a4d7zA66;@RHX5`&WXT{EG<}YCk1$Fip1&n*CdeHJ9)9f)IDKwiOH6PI`MueZQ1e`kK{f*O;KkQSw zhDn?C)O1d_)IGq+@9L^0YsG@LeQhku&6PDpulPu(r{QsN@x_@r#-e;wvt_{=u}DE= zATt ztXtS;{2(*Od(}=eI>7S-g^KCh|JDMqK6aEO%Yh+dzCBM8diWA_A`Xku`Yqfi)fPF1 zh27DIOt888&ia!8+@Cc(nLP8S6A^Eth~}~doUgArQtamiWlr6xsI1bJyu5gW*SaDm z@laA+CL-3Lk-`CK$?UOfED@M&ysdosh-V3qL#WZ3O|=0cfIDc|^^I*C7W?7vc@{v= z&~&j<$eAK@IWyh4(%&YdoWD^4GpbsplI&4H3G&-`wp}<6#q;1 zY~UIP-vWwAJRkcu#7TULLW%P(a~WKml1+V~91eJU7VA)_N^C8<$YB&VYNQ2qB> zz@6g`jLl+2n~>+$x?e7Zcvm3l9YD{CQN1nU2}&?Uuj6vj%L(*8Q?+$7HqM8j}quf?X7h2SJyS}yodFd zVHwEQI5M?oq;Zf7I#d64uvQWBshLt;QW8>#M zuj?WF5_bg!p{gtn-FfG~_v%d}9O)k%#(_beGqqxGJG$z!25+wm#!JZv)9Yv~y$Jz! zcJzw*s=*`%oQ=5|BIUstSa0+|3&yIpCBOS~G!haaiS3H!5p&0|=;E=wyo!oi<9 zkPrxa2L~Y4PTBF;CW8P+C4Lv=M+!B-06b;5vO)YeV$a#JgRvy7+NOF{1|}+CAWi1q zpkwwx+FBkSc}@`y0D6G2*>sg zP^@h1?Bb^@tw|yQFN}?K%#GBb>Eb0#Y`Q!?s2LEffL|gLr_LTb4~H5JUNKNx6#acV zaD9D{>+{10#V_5kTJ1NXbr~6$^O{SwCtfv<%aLr)zJ+?~B^MV*Bf*ZptA&O1zk@AY;ME<8HD%_J z&L|jE%@YL!lU-2h4SsUyRsj`6^eQrc0tc}R!BDo!AES!D`y=Ke0Z;iiBiS*U!Vav| zYetT!UK6|a$S!IrPK(={4zba#Bpr$+uF`(kjxy^07=eLco50YJ}lA6-1kO9oaI8QLZA$)0xL+pNWhJqD^6)lqN<_1c# z{g>i3P@X7Si`G}hL8eA~qt(v1^v^~G&09i1K@2$8!d!$Is8(xzLi|3XMWbIe=9)$; z&r# z!+@>NX-dGE9Ol1mb|m*9#R3h37*W~p8mmkZjX-v|*r zlhPZ(-dv}cma_2sA%FM%rX~T1{V+k~oO%w{@{l`aGnqCE24{jizz;KxMej@g>O{6c z-Sa-#0Pk|4UzXMTT>A+-8vPW}ck(~lxs&ou&%69dKHie_4~d3bH6G+SBXlNRE|nt6d+uow89pu=Kvy&2~0;vz>D)ZHzjU8NuM2j#S=3->IdrQ$e{G0&)KS zoDJ0wMmeIY5$kZiGSF|L^f@@uxtGYvNmD`Ap$1)1p!>gDJ)s0_dvh=* zy~`cy{nb8FhQT92$N)WNOOqSN(9Ky$iBc9kx}=oU1_0OH*)6Ym-B5unmpDVREAFOU z{0}V@Y#%EZ_6xale?Rm*?gG=yP9S(>Xxwe)zyXdjqOtLVc9E>90tG4lr(|HmxR;BT zw42;N`1b)bT3yzTsQmmO)H<9$y4!1^h;UXR0cL91{0d=7;DU62D;HueBvPR08|)>p ze_WkVUrDlXdj>KG=8bT&5SXpw#cy}F18^OPPq5w_Pqfpu$cl_VsCFt6vhC%tQca2` zmue66oE(3LtogGn;NcZ&L3naH?#K6qeG@j50g;oXkAz~bi@w$SkG*c&^_((E;+x&0 zn|Y3F#R&F$_2BoHq}1HlSsp~gHHMiI%sNgw=*3Et6XPakjIYes7#g;3yPxf%K(Rs& zWV(EIL(GbrA2eCo8U&PRtft%0;<2#iwv{U2#z{UPXI?eS71@y zOe|JOd5W5u8v2YxXs~_xmJ9_>rcoWP-CC#bJEqoM#CH!*hLo2A$bsBO8PzDV7u z_7btn%02&M^oTG26O+6uT9jKRx0ur!Lc4WXw|9bg>mS&k-|#tYKnx5FXysGn?rLUg zX6k_yQ0%MWw_k=0?e&C-!^5EoTc7>glhFcMwYnf9dWV+K<0NlAIP;6l46%iPm9lE(Ji;Gm#gk-`ioGBPrg?6n%>Zu0Z* z)}c~T;*QoxuM9Y9*8ht;!ea1Tpt2Y z9@AZ7{)WiJ))vm!*LOqamlOqQW-R+y4CYie5b-E^uNWR;4M5g10u4@TI8EGi-5Ip{ zGfac0x@~TckIZxwpr~l=^$26?^`4;&R#sL;Ht_n7k7|NG5705C$kGku&~DoH{eU%J zC|b3tzd(VG=+&4^FZZvrgJRQ~ zIueht@Njq$VBi%jG8~$p&cLuZ8Uc(12S)nxQcvH6^vG@hwH<5xT`0B0zEY2R zE;3c+`EaGlhx0o=aHB41uO1pwPH=2jzRGbXK-566a=8=n?HdO$2o{EhhGt=D3BDdZ z(1yH?7DZk3_N^ADI(k8C+8Ez&bG5*#tg7eU)4A1}dqw8}N8R~4+*nuavFYi@3yD${sTGY!yPNVvR>HB!lu{^dsJT~=?poLlcyukpFekq_^F z>~M7VCZ?*nZHIcEt#eO(Ooa%u661S`dhNsqGX!vxwJDk>?9bvE*CD~tOG+F&XG7v zk2z^0WXXwl$xunC8K6*g z8X>KGW>HZg;d9W%pkyfwVNd{(uufnS0GLyQ!7e{n4m*8w zxu23Bv1Fe;V@3RKg($V-I=FsxRDpG$#$p@~j4&-7)xSroyNtuk{^c%EzsBD-rtDO1 zA+8OVJ-OXlY|LcIKc}JLaj7@<^{XsyRyr(E=WJ_{zR^rfRQ8s|s^!hF`l3E&$qa6- z0S5n|Jtsq54Q)#5l)k11^CzElxPug-QOQTh_6FP38UlFk(UMb2VU^5@PmJ9I>STUg zx%)DG%Tccgjx=`@qBARurfrd8n^#JfIdBO-N}W9D4w+jj{aAh#ng(Ob5hHw1NTV*R zh9f!;y~J=(xA`-Enk78?U26%K^m7%G>*A6)H6XpQXA~S;bf?3x%?&vCkXE#!isG~~ z(Az1aTJNvZTeGbrNT4SNi4HA~sJLK0V|OuX9D}hQCKg`SnxV?`ff-uT$k#JZDMFjp z_*)x4bwx}Q3RYU0jYF;Pievn?D@5nrex7MTv=qKq>VGHqJ`^#Bm*i29+Z?O zW3*@h769iYUFLQVE(GWq5=jFaQY`R@v?qg#ke5T z92~dr5vz8keG9tCuRSa_3%0zMd;&!a()YJrL~1qCVVE&f0@qpe_M#@AzM~gfR}N*Y zDm1iVM~=r?yG?xZq+R?o+f8#-hGC?#s%EJnk#a_(Qi?<%A|mppG7V!nUgmBi6{UYB zQxrkxY=rf{2i(Cwp0SlTpQJmGd4@O)>({eN#}SsHk#89__+4 z)u8(JSb&yz>M|5c1D1speWx7HiVFS~>>0@AaX!ZF0Yg?J)1Z^1DNYYQ8+V>OZ zMeub_FN>S5O{Wys_=zgH5>o|_y7s!9&|DQMLwO=;ePexy<`GY{m2el=D8borsjNa2 z_uL)5WX97iN3`jgBXyR8kfy!-hHC&!ls}Q2@+gJ@x?Jyth|Ok0pwj;kn3`=hXDnN$ zU^7J{_~I$DtCSfCM015v@-QSY*i{X)kVueZrCCZ2=DI|XJ6O^Cn4oml%J$knSnYy> zBn7YOQeIw;pR}8Nwk6=7FM`3|vUT~5^F-t2{M!U3wN||VgI7-^3wDZ)R#$@GfK=J+ zrJRVj-m-cs+}x@fZ7DSfrXAV-3zPx^M=$j~AE|xNL;LLuFnz831-6Jn1sEFgjgo4X z6O2^A^K{?=LPo7whJ}vVW_HMY5BtjTC%DM-l}6ehDp0%M~s1t_e-va1*JL-4Z6dZZN&=NS_m9k`n3 z113~a{=O*PImkdnA~y6ccDI!3WzlE^{6=r*4G~OMRg;4PDZPo$pip30#Uw%G+HCSF z@aOrW_#jj3fZ6vPkfY5DmKttjZMS_>J$ZkIvWL?-11Kg=4C!Oz zr&8Ylm_tUnR+@Tv(#lW5&I7b9vn~;Zc4BY;;_lYb=ksn4w2IG+W0yk^kfiP^QAo<* zsCCh5KI(xeQ0$PXZr@U9&g+xVJg5SmyM+`&ohA>)yy0t!YJo9+Km($+CZh)Do|Y;E z7tq!ZtUc=(ec%^ifBZl54x;0you=ttfq9rBoR<9))U8eC6fd}(pg01a3H7GGpGEqg zpY?_|+-_ZkWxe;FFEX+m*@MR)i}{aR#=62bl6K%Tb)m4O8^-P?Xz zX%_jRpcQCW#;zVc9}OsJcwWXi>)Ek9FBM3ro zOd-F5dLK6fkk;Qg#O4a2VDY~|YA7hs4cZNcI}AUDIt&YVlLH_>O)DZeYFp_5GzwUx z?jWrYT~7p1Kl(L5c;`m|Af2kUocw|nlqlf66-;E!k}o~%s2)96KAxJbKLtQq|2_gR z&gTE|2r~gAPOx<@k{5@KMVM7uS&w^@d3mOaX-!*ycWNT~f9zC%M3xaq#PRtGAeBJ; z53SM!c>}-|!WQ1X!!>FyRpx;q}EB^3}*=~lYC8vzMvX(W}D zkop$rK6{_{clP%O-0NO3Gi%m0*UUuR#z=vziYuYR3iYeddv-lDthSF;L0lgQd(8=0L;>x0Z(gQZR>AlVPL&9OF)1k51k$2!22Z16bYn@fq5L;+ z8&D_{W@0EEJ^e_mZ~NjrBi1TqyPgKSY1IdUFVD#z z-Rimb%m18ffIOV!riHOG_lxErx|l$Y!Xoz5z0^h;q;i!%XDC(%;jz0w^az&DR2_Sx z`f{vJq1~U703Qa;bS`sBP)KN`<+2opJOE!1Io*Z%o# z%YS}zv)!D)o;%zCD`?o4FKJg2mxeml+aJ=12nlq3o~LvG?1^8|x?yZGnvXc|FX!^C z0;Ea~ys>Yts`*Yx@2{WarQ35-|v6zFRHsQ>3t)c;tXyKq4q z{9+y#JQJLx;Rc~YfSj)hiA|c)j<+92>8as@SsOY!`<&(T1F?T<@O#U`>0IF$*x4~J zLoSeYmQ)=+D$Cydh~R(~S1E=PHuc>D?bbY0{%sz>Q!MfdJwoCy4euX-N`4$Sgr`u9|C z%&ujT@*Wwbhadt+nX0s)0Z z19a@>K8jUCfokVjtxlDB5MilXj>|u}H*M#9Jx4}(4~}@~U0yZU%|%o|$sUgOx48wu zpItHJ%-PmW0Og{n5txyZlD3YvW0I77?I;zcytlZ{?=$}5M!+8Z5ilWFNaw%+hFRVq zOm9WA)OB=N#bP0G7;n*&%=C{%{^uHQ!73!5?i;Y`WXTzXyE31gEnDi>@Ca6a=#jzd z#ZaYr_s5(13|637q7#TfC7}FK&Ye}t0hHTcX&S0txwOT-X^r_t>2?W3EPeR@@J?7^ zdrM5o%ZQ-rI6F!1wZrv*xkJ+QZbCztd_3WQ8V{@kXHX=JbqAlTaV&)KXlPB9`^oxtqO z4zJGCeCl0^w%>55Y^%Hcwv1d+|GAC;NFnB}@Bm5VXV(y1hT6!P<>LeK zlRrja+#H!k&0?stgA0#E&uETyS=DDGcrbzT9e2H!60h}}GgGhIfx8+0X>wP`gWo09 zxnM|RZ@egHoHI_c>iPKM?7gw&V|p4NUPjLh>pwd5O&#=*I9$KyzGf9~JBdU*!LM4r zKJ@KuaGU$;l=$Nt&Vb>rKgBADk>_Z zV$XRD*)Wxdn!@7?>ng*;quZ+t^zK#42vk~6Mnfb`+3?=ya8ba8b;9WGgEJ-qqK2XQ zJ!rTGQke9R{oU8>Wm&kZKjGE{GPqvARwy+Y7FFMzL$G+GsapPR;#=}MU$1Cm+uOAP z05&COq>cCG-gu@2|J>l42v{QA*gd}urS{{7V$Z|9B|abw4(Wef0243B!EzTyWEwxh zH^zZ1(UfRVhDzc#vMAVNRC2&8tG#)C+kEwY@?c*$ zD}p$~dA4{p>95eRMFAXxpx_+>CWY=SrMCQu>bQ9JpY7i^qdvB?^v)0s+^0awP~^XH z_LHUmbM^PSAg%^3XzY!nm(L0pq|o&CL9#*<`lBz@ zJccB+IhcmFQ!HUULmZ@YRRr~J-@z@JnSnYqN)iE)l*Cm5bt=JAa+`m#m zudNd_JExTo`K|0UUI&XXPObA$vTKcN6_+AlUcl4->lNqJvTO60e0P5svl%I;5QS|p5GE@T!jevd^P z_+0O(pskx^wpytH5_Wptw*ZbpU$%>ndKCCy<;OpkZR*$0ZO4rx9c?16C{qpV$9>|v zwigS{Z3E8C_p+biRNBt+7l{6TZ`l3)-T+aSYd5NnkufdsjL|ar@TGQoTe;j44kY$2 z74}fF)GU1;x4+ADHIG0vK)424;Ucl7Bm6cWOrNIS#(c4!FuhK`R?dzVI!I*a=oaqD z@%1|t6i*fHOiva0{6T{)!|(S`feHNUK?Qy~x%U{8w1E_)W|B01|60U|zB&-7Mk2iQ znpuDf#JA1t$l;{z(sXeM%pOu#(Q!S7qx|h_xpwRTj7+=M1FcxZH$c2QxQLhF@g=Jsn zTOv)NhSvJjp#hzV^l!WMHR=5{x1I;NvjHzUtb~Av{S8Lk#tkI-ieo za2p=Qgv&PeW4;*8(HTAGq0ibakaaQCx(N{FLLD5qZwd(w3b`+J=~0u;Otn?Xd#(-| zdmF&VMy`DO66lTU^9%J`*+{-omf%d4ErynsR?5PxF!5t>WbJ19ua&Z4>PX|d2y}dh z?`?Xd$vGE1P(e8X&^;s*&@NdaPbII1rW_YB315;PZA=kfdRK-71Oz}>fWH+Da@sKH z89*0|pfn*qA{#AxQB{f&tUgVW2d?USTxkNcW~l+kJa@1hdtsbhzy;mqagO-AA$ zv96la(*$GGE>0E?#u+|S>#WCqA6<~;CpC>995hKS>=(Q#SG}0#Iu`U(2t#wX{iZrf znLHjXB?4>pX6uz%V$c!u&{ybw``Ji?9){pLqXv`!<|76Qjm}RO zyU6W9kxN=(-2e}Q`%`ONFnII+wtmH*0fmS(WIZ>OB+%q=AGj-xbt`DjQiQsEZZZ{2 z3eD$ucsCOEel9Pw-q#<*7;uLhl=k-etdF)P#Ff8o4ay`nI0@YVAXdg&>L0b2&(+w= zy2Y?lS)svA3Y?M2b;QhW?2q9w`H=>i+@vC@XDDM*o7#fv$Ptb6jVgqhhGro~ElMx^ zcJ4f|yT^oeO*VK(y<=xhZwas(FY9ZF=MTM(ky{k>qpz=Y;K9G|S^c_u(O@h3R66AO z#0EFy9xpEx<77+LR<%f6_LFWiQEoRNQXORN{kqT)!XqFEEDQ9PoHZmEsh8z&xy+z- zqZW+7(Aq^~{#xN?5h~}l`x#M0kiQ!gvnV^>l^~05wiH4oL=RR*oc%6&7I$$HId4|d z)78Z|Z6$~^K{l8oWU?A@mSZb6`mv>YJE`7q^UJ-aOa+DW7x>P!+>jh?TDyT}0P(!s@r@W-RIn3<^bP~e%5+VjpJ$>9Vh>oXxiz(WJ6 zu;LCm+xwuQ=DLzeKhn2+`RMo6%$DBmAD+JfkAS@ff`c!5MlO`xlvJUb;+%;YDv7V) zjZ1%$fk=?|q!P)Hya|br%KZ2^Vw~SKnfX_5lYxW%d{xnN~ft zYT+MZ7I>VL`pL!fm{0&n(v-wWjGkZX2_xgAHMi}?X`$M75q}ccc|gHtfkgnxl}PJ* zP-Ts`%0njJ60&j=(AygM;&HTE1)&j$E(#8=E5JqI)5B?N#u{6CD}W>F+wY-ksQJRA z?=|Dz{=RISl)mY@=udJq&}Q}GKFfm)1Y4SMkxf-mzQ^23$BHv9$e5g}7R5X9GE&m* zoxE!nSpC_uYm9_x>W@`5W!G|@n9A}AMGFf3ofhJQbJQ7=C$jGPcXvW4#>47vd;@+irkCp^-9hbM;xx&5BcA2+^Q`yEa z3Xo8p=9}^-<)A$FAxy+*VG{5Vn}rCpQ%I2%3>>89)&Ad_NJo3 z<=Ds^TerV!zZQSY*h$fVNsz`u{V<-PFDEPv6;v16-!ZK|%e9|b9Z1BXmtm4$nm97I zFY!Xu99vWIyD?=Sk4-L9LXj2X^v#!VjY zXfs_KZ19pYK}$Zks2)7#Qd+YvI5aD%NQs^b^|iQqdgOP|SfwJP(aa`vl)RZO&zu-B zI})X!=H%owDxI|9n|h?+)~&$8Z#VUr=-r*3;;AWZlTNj>4!>v60-sMCO{*nrGV-37 zJigQ#<8N{cqoxJf$=}(Ni&%bSS6H*QwT%*V-LkyfKzLTl<+lOYIFA66pQu(cLDn$Pc@oABJJAeF5 zqlCyDy>dhvcIxWtRcD9%*t{YIPRy$ujvt;)ol1evmWK*{KCi~GP%9-aIY+S}l<{Ol z!Ho(pSSK5~6B|h$D>zMNebZ*i)cc35|sxMN5VauOT#)x)U8qZC`_I zy#SCEG=k8O0SHy?Z*e9Y6-kA%$ulzvH}+@QD{T!?THKyTe?M1R+3RDQYV;8X0Se5t za#hkZV|p5DQRGb7nvq%`OGcZbF~tRAwNjoLqzDDFb93!>%kFA1X0$A-B|Mep|@z-y3!*TtXNbv2tBEt3MuCPx)+KfQ|)t!y0K*x$nv<3xM_a;^17SJMDzt&4j z+h`{SvEH>NJS948F{GmBDS5(?})a8@LaMRwe$i zd#Y!n!DS{Rq@@+cpi6;_c5HFuoKOtpU8)rGynkE@0NO!SXFpUZi(Pgn2oiy`i&|Q8 zRhSk~aa6tgv8Bd`vp+YT!}h*6RwW>nxGr~>i)(Us%8uo#Yt&(8%xzAau_u4AMk!@k%RtbND0AOM2itzBWjB-u5 zC}#P^1|Q=4s7Ks9#Y&)x5L~x>hI5ni4R0?m!28nj7>3f{Mc$8nWM_w^hC!~aGuz%j zLp4!dM=QYJwyxy2cfA-z)8Y;Yps<`e)|W(XU0f|klHe8u=?r}0nU@nwHHdfMG8C)h zH?qB7N<)Dl{I$J++!Zud)8u=h47yleH2E}^TE6|BI&R*|J14xKSnA7m^PI_tiNf_x zmKg2-_$p+A{snNak)R&O%S2PT$TmV7VJt}OHV3V3Ik-;KtHjWbDaj@UG{O-T_}IpS zdNj4bl8ve2D2HA^s{G}SbSr?vayLFVtD^*eHlzg92gTwN^4L9Nqb6jH$8k!2r5qCj z_sC;^O9bG=96PC!w>ViVJ*;$74U=1&SqqJv%gCFah8q>U<|TVNA6b~f)fEu2J59Iq zBytowP17Yti99_h^i6J+mNxSE+TAmGqTCpZadm1&K|x8`((_qa=h^K91b$EFk3ImD zU^V(asY&Q~*;s>8>d6Hs4&7=MZ6DWHHc;6PpNc9vPbqB~z^oppy%_e53uxOFbXi1U zQ364A36#s23c+A{yzI`?Xv0;$!NES=gK|B_*2FOjq1fUerLNK-+wdl?2JDJ4+6{sA zuQMQqfm9BZYR27SiD!66jD%QL8ql6MKS6=2F5dN^JzbRpz=4Gld&Qf^}- zRmb+GbC7S;3%Vglu4bLd?gsqqoMLIeISRpjX9X=SbwA8#L$SK3*qGtZE$%p#R$rdP z`zk8R-~PS%pMQ^~1$ozYL!NVO^I7YTmqRPr5?j$%A|##^mDe11OJ2M(%7&@J8Nl}@ zuxXW=O&T_O?_!ualanS-qn4WVz&d848>CGjrgnDG&v5LQ$7at-AKK7tO_mI&q)jj3 z{EDD;?-q9DVeLYzp3x29d z^ce}(=yQgzS8dnBH|*WJrj5(kKMBi8h*I2U&EaN*anGKolBAy=Ag}a9OM?90?5BxY zHn+wDk@ufwZWPj+H%yy9>6f&)J4Gv&sgZT3*Y+7lS!vlKo2wW_+ot$ez#v0=|T@-rCpmfoM|wf3ljMhVK}Lmgd?7M`|32efAL_r zu`z!wuU@TmN-)NMSifs1@ET2TuYR&P4E`*|VWZO=9@kLs^~Go%{0w}oSx>ad*hC6y z%&RQz>9@UcHR(g!Z@$3CA%yXifYKKoZNkW7xr!kX5ptRlpY^2M7+WffVN9TU6A%93H?GzMy%?2d3uhA`QXDn4pV&g<&p1@i6>nFR`cHvO=Z7(rv{q<|w!0M4Hq9`8kM6QY z>f=&{>Y-brLkZE5h&gp5owa^sS_QhbXTW~>nIqB^8mhcn+7oV|cKwjhzM+yu6W4dt zRG)dl4Ay{0#2p^~&mYjBK|P8v&!o^dRN)lhdJopv_I8s8@|7F-b|~Jv>L3**f zGfXm!9Ci;(KuutB1QhJ?x75NGztxBHpM!yLu=PN!(HvVk8bqhXPsEM-L4Z@0Zu`h| z!nxqbZDR{a`@#PCVpN`hk_mM8hvjT_QN7N#ui)*0KKec2p98%SkC2OH!+=8g-Zvb2 zrM|;>@r9#^LuX%WOG-#lzQEzWS%^EI++Vw-$D|x50Tu;cEoeTM@%Ee=Z?Ved5Szzv zh9FwARAt`F^@FGv9kw&yME}K&k`)&}e0EpYYX_2tsudRo>2XVT-^8J+BLVC{$ zG{2jDab9o!&iseq>`^w~``-1A!vm

| z^AuBfm+%EVZ+$Q{>D$%*xo1IM>I}~+$qD*XWSYXPhpxZa8*yGr7j;tteW@#n%cb~q z7sf3{wa^fPyTE*F$0v$DvQCzZQ2!R!8=#Ah@&AY`oCaiheLa-y{`%rtsPVYf99}n5 z?%bqI9JUoaG)e5?ek8c*!CilH=btti73yJ2b`ar>!~-9jo=zkG?jC`XAxfs(m?HPR z!Q_UA1y(c)aE}#*=|Qj_BH15G{y#q+MTq_US@~1aLkxH77KuS7N)x+R5$9f(9gh^? zP!BosQvMuL>OXIw{~Qw33M3l-c<8*o^y}-h{E1S8!b01+lE7+;aRwMSweu($?X6P% z013>0`zrt0Lk5&sP^^O8u$*vR_(!_aWp!!w;9%4BjEnLZq}|8-SC%5h{EcUmC4kK=B?BX7P2 z9sqw|mfM+6?y%jUvyxA^ZwLLqg0~39df>1}b0y*l*L9a)a{fhE?TL;S zwiN+Xo6^+G%;99qKkR%f;>y=66Qn8Cf6#q1KznPFB>%@ki-}Ot(AthR@9!;63&j`A z6Gjge>z{wLUa!QW>HpQ}<%ASIwRl``}lwIZqb;IXl>r!{P=`ftpe3Y)Sj z>hP5S}k@+vjOgEzXEsg}3QmKey((K+y&8TuJ|@WAT^N=Co!=gqC^_`$>{& zXE~*Oi|t!APO*WHJ$lF5015K!7{c(pTD+6laiLNzX;NvwfDNkNE-|IvN(v(V|Ii`~ zB#^Nd2>g+iUq$DoF6=LyG`5+~q#&;y3Cx*cEKR>CPVtne^<_RyLe$yy;8O(M7EP^) zZwJB=_;1Y!vm~>p79;FUl;OajUVwN2z~`7_>qCO5Yi4b&M^KPoa6%4XP-6zy;G`Wu zgGZ$n-)f0aGZ4v3zknZ36YBv5X&euS5IRY9GPUb;pJS6UK$gg%@$^0^wO7*EJT}oq7|q%FTObe)JY5? zxoO_o<8Ev%iAhMCuTg~GpTH5^=y{mwvN_7l$M;32^48F!@&EVy^U-M7rxO>sLDT@9 zSnhfzupP-@PhxDQeK)aqp{MUKHHoh{<|zaX4MQeth<>C@Lj)A#pafap^q_Yss3X(6 zy9^3a_s!_F zb&}G>>qgb~~>!$^W+bd~i2R9%{d27iEvxCj`0Ao32U2lI3a^Cob1Z%XvFm)BK@{ z)OXO&V%}GyYp}()PBi7+^ydU=Nx>kIqkX1d+{1q$HEzoN2;R`k9~$SSQEJm|9~Ktb z{hnynVR;S<1b;C$t+hBhtSKT6*aQW2lT3fE_7Mmlcty&@q%B!X5`J=i*eYrd8p-NE zDY`&~9uYuadk+rbq8%MRioN!h4EBAI9R7;?gHE#znR<~f5fPiFIva5(!;Lw?BjD<< zT%d=6RIC8sM}%Z#tQVyV)9ZFylb074#x^$WjYFedU0shj6EW!D?Kq6C#_ZG`xL1dx zR;V?1QwAKF^G+hBjQfbmW(!v6;m2uCCi84scB_`c9xdY`N*qIWT1F% z@Op_4_j5_5B+>!L^Q#I5h$ld`0B^15BK%SXJm%%!w!ksIBy8RDOHqv%wK+gnXEz{h zs;_!nLq-O28htu{Ntqd2SiJy&;`Sy*Mibo$5Kh%^`5p}D{mUa20vjTxqIM}47`aT{ z?Y(^{El_!~{fN?#wU}xD44ED#fLp#PEe>iMd#Tfb=wV9F$rwT0`gbY_e){vHNWKTn zzM@XEIuV%n2AQ7u>l30&y-WjbewR*8Pfsy1Fi=q;=k%^8SMOx>UksJNZCkhY#) z$LJ`2ozoh=UtwWkkc?}t6CUg-7IdmE=6YbLZ^*u1Z?53az2jrzbh?MyrNgerLV72?qFNmt^m}~56lI{NjoZ3onWOPG zo!JUODs$72VMK(4Fs6x>1-695L(HdWMmt?SU38owmj;hLBBR1XGBRi*F|mwUE?CmY z(ObyL%4Hau?NHg+DyP?#7sSWNdedU9GU)5VDV4ND;S7|M7>%BaIxnOV5hD4iAlJ25HN?~AU^+qcTnl3E ziqaS11xTMbih{f>Cc6Up-{zku()b632Gh_96TVt9!o#Bq>D}Y*yh{gaX2R8dLUl?u zY0sKN4M9eB;84bumgXV7L-U+L%~O+6sPe#Co0PqXJ@{k_?+s`*@?v#!%K44a0b7$I zm$w)b(;M?34>u)-c?@tAf=&I3g4>_Vj$i?MQI67-R&Lj*o~%MA;U~u8zdF5nSQSil z-!M&E?|fNxNDm4lbd?aMqo<3b;oRH~B3xi&IaJDXMKVHE3Km2gVr+PQ{f2*6a=@jz z!#M3>KRW@&>9J0M&zn!2WiCqDPc=c{ulDLD5e0OfU(k}Nw}2*bivXr%F?w2zav_>TR&O6WO} z9Ubq5J&U=APKvr{N;8-DB;RD1fM%WibLk{v`n~&sb#-Lu#12v?Kfdzq<0UZR9GjyW zWWz)Osp9pA1RmX>R3Ai1cGxGwW+D_NkJh%U*^Ph{1x}lDXVaIX*GY#Y2SP%|k4ug> zyRi|%Ma8NlJ9N>;#HTip^a`7w&fvmHP7xO0G`jY{(=x%km`ET{DX>w2gZh1+p@`bn zR5Y6`?|C3kHBSJNDHQLH0S?9;w>zAXVJz;8ruOAsdm!*Dp{<>yY3e;$Y=DZ5O)Q-> zwO4l#dN~x*2l9i+%7zU4PsYwgTt(lyy^YF$ASk$XK_i~q5*mu4m?jwEKHrRr6)qV` zN6b@)7a288?Ih6~W$xfmDRYipG*W8Pt}bj~NG;|U6c-oA8S&{&IpA9aC0&BZZL`lA zojjb07APzG8SYt%-C9g};IPe3^TAmvGqXS;{1^e{Z6uS5{j1POWuM8*~R-cbo zDWNGX7_(+I@*D;}x3so?r>-;+KIYaGH>nYc++W$>DyI}NUXqh2tgb0j0*q;{UHa$Y+8)Ifiy`QYS4CRMn8f%3J&y7@_?(^lev=hoyDDvsR8 z_tF+-W`T++szb2P@tQVI-*BozsR1oc_REtQNNg17R1VS{K*59f{-mkKbHwPhrs(e< znIBm^jc2mmGAMnG5azv(2dD^?zJ4~0J}X8a2XPDaxbLDtU+<fHV=YFiu6dv^Hn7DigWr-yx*4;7uWJ4v6tFwE66cC<J;kM0Wk_5gC7@RZ zvC39YXg+sqQ+?67To9;Iv_`}Jmgn(Q=E>*2fh68*f8geTcdV;k%;HhkyQxZ-_oYcG zMQ|qD!pN6pgqp+_q(ZAQOYYShDIB%Ww)HliC_@u(lX}<<8u8(%J6J}X2*Znm#5$_q{i@RU?GxcihSX8qgTUhA$r3t3on))l)3>e zBijkttK+`B&=3kvsq0VVWd9^fc_gRDy`VA8YHE7Vc7%yS*zsZCn*ddZUM)c5K&DE? zLE1B(42Y^I_r>!%Uf@{}{!9b|)yByN5{m=M0_Zeq>VaQk<S!ieH)vDUdDYyvsh4GSzK{4js zNhBDBpbP4|s~UtlXQD^R_+Kj6SH6Z)p@#2u+qayAHk{W)p_IRO{D7HHFAFA>3nm5q zKa={CoMK4;omyT2DLTuo%>*o~s%TQ^&wpUP@s1J3z4H^BUK;Ds_nFPz+BaXmrAGtm zZ9HjaE$|`91^%Y-0kmNRdo`HqZaR3rH{@KLt>1nBa4BF^YMZ8{;$8QbI^S!2I#V&@ zqbZYoLy>KIwgSrR+o95P{{Mzb7V*Xw=A4tt;fZ=RtLUvaJzwumrLylw$|rq@D^4j3 z;Eo#JF0jv2H>3Q?00LN4j2jKtkusbur1$u{P^s&fsQSmx@NWFkx>{X_KXf`tkxh4M z@$&T_F1;sJ&>w%r0AO($!kgu+g#0HN0Fb;zX95~OOCa%L(b#G=m>kL39zjJv2 zbp3R?oalk)I6~Bxi{>`$k!`Q*RX^N=hPP(FA`2W`KFu6)Z9T>ZxSYz%n^`#io#g=@ z=G5Pzh8r31Z{cGxNH~pud@|2h&t;`>ULWLVq@!zD9<7pKQ7ePwDx{%1JMXXev83eP zo)I+n-_HmQV&WM|A&Sj}Jj7yDuUY*O7yk}o%sUz778RmMN+D!W2IRHU?;U>d?>h|A z)XK`rl6XAt{FwK_I+>v~d73>RelqjsM#<*9eXwnX_}f|o5EzMMZVx>`;$~s|Hv;{C z^R;L`LYx*`;RcftsZZHVlx!fn-w_+U0cx~%=}^e@dZ{CVGvfIU*`NUC$84;mkt?t0&Bb{Kk6XXn2!E*t)_ zq$FZ@R5GllL>vUm^z5vMu1dY<9w0lDBZ19E6c7-o^3A!~>Y29J?6m(nC%6Jgx!)!7 z&a@*1mbLqfr z`?UWk7>wBR=@|)!c)$Up*drR|6p#ngfL5A?`QtHVmSsj~h?Y-b;jX za(u3_H%hotyHzZh+P^B6G6}S?smbwpM`!2s9Ac$zgXJy6EK+FuVt~s~tW)UPo0NNl zq|#=Zr^8G6cC6TcAFCG=3TnB8#`P#IFBxzN`z#`1u<4D1`jJu?3Bj*kRT6Z2#%|8j zvsbC&nUZxYP4;}b8F`2g;YrTF7MjB&#&)RQ`ipn4^YMj!Ke^{XC!qEEM@s_!k z-DcSP61QKAHIh}0sqNFwY#8=$ap3<~aR?Z{4FKMw?`c0Vfo#2T>j9PZt{3J#TV+%# z9Z%C%M`gvaWKo+=qE&OkXkNU4!Ct`BH!0)ib5I|nkkhdM4o(hBeq{`26Z)tezPK0H zf<4omBii$ZTzSsx^Jb5}uRA}4h8t@>Ip43q5KDs+?z14Vv29E8HEww$j}*W1XtL#c zAXN9Qb%r^Jopadxbk(iWQiD26I*QjIHIY&lJuEfbVqO_q`3(z6lI`9bW;i}nW$3si ziu5Z4GzOwrC9zAwcVd@#gLkW53`-d4Kkz3C#vlw#N$GH|iU^PBPL>H(Zd859Yky#Y zU3gg$8y)qF!6}X@?wAvSZLR1oufF_Kgqn~p5*0e7jtVyz|r?+AV$JFo$i@@N&#ol3j}XQ`=pl84U5;Wy|NnKvb3WN z;q*Mn5xPQYt68)^LA7rl;p&Nb5%$EW#gl5im_qXB+qKUn{zmGc1M63ICy7Vss7R7Z zscKLb8n1(p*;v>IL>8J4)tD=)sW9AFKuV0H;Jsr`!M3!(R)a@Ofq-+e{MIxkBBo=( z4@J4e(OI3-NNcS61M%^`FYHhYr-N1rbAD$EJ4Mj-MO&=%?p5lm_pCI8xFTnga2c?T zK5{z=_z(E$u>2XGNI6e{xLJU`;4;I%){95O8T49WYps1+h=;M~FL|i=@>0+d^ z>S~qdAJ36ULGzYf45zDudvk|%LAtJNCL5pI^hw}h;A~~L598*}Z}+KjiJu|;E*yH; z2ab-~cxDs}sz zKX3iQ*fKGga5qgI8rdcS(q9H=6PM0U`E4kdRqAaV$L*DI_^igE)8!BSSD8hkpx{T@ z%u27{WcJ#*I;i=*u2qn%vn&9 zg?-MMa!iU8EQs92~CL#Kc5t zS()rn+?;hckEvMKOCk_5v#oZ%6>A1sq#&R`_CSI1pTOWVtp>O`&Cw*KrAYgB}=POgK z4J67W^Ozgkr~QlsCmvfVD%SV=VE$Wfb>JgNIJ#%P7`5^D;<>)$ClXn}jNlXGM}KyK zlLh!AEJnG~A>Rc)x@T)ZE4xX^$smaV!x9gdNs?gGMiqAdO-v$Ol}&5EXC`~xi$D3B2%7hY17bcA$6mh#nQQ3HF}nk4 z%mFxfc$BEj&rsBhG*yaa@px1lJ@)03%cX9m+vtBtAl_7|2}1MPFXmNu){qM3m~_+B zdIvX$AqP0LXw25C()%7ct|T6w@ygK>Uht|0(AN`>nx5>L_3)+e9#b>UMf>s9WG@O1D|h@hx|da z=q?xS&T{5%Di`?IV=pn8Z)^W!J0C4}N0Dm-u1GZXL*})P*$P7b>stIDW%Dc>8_Cb% zmkFG3a2yCIXHKN3o(V8&TcXkBVLTqKM@ByH=sDrMxY(uVZO1vr=4a8$s3gRvr8n)@ z^eQR6*;LCjcCrE0e;C+!5-+K_=qr zgV}>fU(jl=ZD<05avszLC{U-%r<(&Cdsb$WGCi#)j*v!S^jxpc?|bi?v5L0T?Cm*R z>~-Lrn)grzA$4Wxc6GBPEf7rF8@3v?*h@rRM8P~h$`jy%8r_wsHKgKBs#Sl!5Bt~zCAU8xe!Ek z#`Hp%u*VT;h3MHGe=1QdW*L;5LQ)<#QMo2cfM-O(iOgi|V|-Cxd&^SnZ!ZR&br);> zl|!BBR^>#7f0(hde$Vr29aPauw0S~u(teVr*i%rUwZH#%@N{Wx^MS(=`!~+nFe8Ca zazB%v?+d&BxND^`m{fZ|`yjb74m2BF9^jf-*~-yl*)*Ue8u-Fb>9}ykvDa{bOEhOq z3(6{uAxcv0O~kQaN@Vq0;`z<2!89mD?nz%ST9zJncZ@zJ7w@lmoJTX5q z8+hMiOErq9WInxD+rZo#o|pIR13mM@yKpYZayPQ9K#3lvY09nyZ-uL@3Z1ZmED=@5bmF zL#5h}NBPg$lxw7sd@ehvPDQahw@Y|iOPeVbD33~-7ow=$FM_vgeq@=)32O70p#s2< z``IS)&aV~HCq#$wYvdC}@Q$N;wOc|v7c2P`!TE-DyqZH~a6%28?z++8QBoDr^rgoA z=cIy;tXDG!XzwWq?EILbpOu!iEfK7*Js!^0P*cv$b}#R_uS9~UmNIc!_Wk2Sr`3)N z6HXfcw3ZOA=1Zah3mh5Ar-T-qhA|@kDY5iS!5C|SMQyM_>pYV^6uH-HWF*uvR1y|) zRP(99%2lSU?C%en?EHwBU{Vidp^X6$n?Frj? zj;ApO`8uT_54Z5X0aOyQ?i=0uQB{`L_EZ{q{K2-{t9M8YjQz{=jE~x`_Pj4p?>VXf zU4dF!($Hl|;Mx-*c%$gm*43q3-m@p<&_(Q$^N_oTm&I(_$q{VIAuU}E;M(%_!&j;T#Io5UAox=Za_?%`kfnB=} zP3{?1T#D_zWz{kpM|r(k?5luBq++MG7l*qdk;!G~LIOh_3ES?a4quqaz~v8@cwHAo zVx{TBX-JEBsO1-t)|?a^up%Zsn@FB+JMgRgJt>(^l^+`u_HKX$mUSl7kmQq2{k`cG zqEBfawB^PO%XqW=`D)V)R^Q-Fug+`4cDugW`Wt^`re4g55u4w+PbM@mEY)Y4`dZFO z_}tw-VkNJ{_~?k})VxEO)TVIFrS|dUpauh2jd$y-jb5aeHUhRWb(C9}>aI$p;ptZ)* z&U+7a9wsLAM{P>D6nDaK_X+UBO2cR*C6PM%1r?*;6S5>xOEoqrXFkPaW$F&Ceb+E$ z1R5Bx#(>y`&xChE@s2#tjh(f=Qh`?Dn|b0Z2f|*%kD9l-G+uri@W|5WAVkVmh#=W_ z3nf1Ay_f0uV-)LC+J#MVqc-gF0S#)(xkA^$LwbOnKc5~c)~bL9fkVrgAEQ-zPDhfF z(Wn6%2hz@C_qxK1o>a_hKXlKI$J^iFGcAtCE8Fv)S~b_^wdDo{fL||Tt#l6?20mGP zlKyO6bE3=SOB!T4`R<>u)55vyJ5QsYv&1 zMoI&;*yYyY0r?&hdX(h-oAx*t7Z{S_OrCoO^76{Exky(`(n}_Pl3~b> zt%0$9FUkqLA&Yt`>W&S8bhfH@nBtO>n12X<_1df9vRL*z1O(?USdVq}w*AHUIf?VA zsl~t4bERv3Vfy7B-=+6b>Y{+7b7Qk#8`<9-7yoC^&U z|4K9n)%sQYG|uNR%-I{%DnIx(_|fG&8D;(3w-D(lp7muqH#anr?4>|Nb>{SJn0!(N zv6KjgiNh{--vI&L$ohAF%Zc<{AEQXaFjjeS2^YR2wpKVA1<}rZg;Y8_g4_^{4{O&Z!VAG3aBNl(Zz&=R8urS?{cFHqTfO@zi0NaBAjT zq`!X9V`BECUtcD97{i@f74HWsJXO#BBtyH7_X;lz^~Q)Z(9w5Urz7Cg}8+&&4lI5kx4{Uj%zqkM@-TmnMj*jK;r$SFr zQAd=fv{74FC{JwO1*P;|>a^Wm!UzD}qivU$@%zyq#x4KiW!gsy^awjtxARxtQX7K3 z@9v(RB?sV2e|$WrGR=Bq{4;dO58j^JE7Z3}&Mj7;_&tNrTUlyZ5`}jWl81mo^fT() z#@KhhFg{Fi$iydVTYTKZkI$0rnVZ+_C(8rgN1OYE{UraQchpwH#+;>_Gup@hK^xM% zQqz&dyX#!n+~MJX}7h=4i&C-U+UFU~bW_CLrA z5cE?N#4NQIR;QpWqm$}AmUwEDrB`8*FU3U#5($MqQ7ch02C9vCx!+6r&I15pj^WhmYeT=YPRN!hp%8^Jgk(%^EQqR4^p*zREpzk zE|^r=`AP6;b7c+A*4@hCoxUx*M!v777Ml^HGhAsBi{8~YtKUlSFep@bzV{2a(180+XiQotX)<>- zEbK&0F!ijr|GT&7#+3WZr*vDJ#`Y07A#O77h`APf`y#Y!e+hX~mwK zgrh*3ORaKVbhJ3HKK>N~i;-an`kd=%XaSunf!h=EdiGyin@x&BhXe2+{YAukR9tDg z^h6%PCrJ(LUFZS6O+&3rqpxAQ;ZF?2s%Ec$NsG9~V!=YHW{%sGF-?A}$fgx4Xii53 z8_YTz3Ab@y{A%yVB%_arMZA}VeJnG&$^kvKAs_VOq_b*GH}CZ2m2H#N#DZ&w)Gv-- ztrh*ww*7TT!6k21PE}$X%5=V@yyt5hSR{h^N>aiFNd-l%H%uy|y42N;)xUo4MiPI% zUqqp``)&`1ZH(EMC``c`+eC^JQ2yaG`z|oJ`wEwT5uvr%c?StHB;s*`nlEZxXuEbt zAA9*GsYb?^5_)-%C|kWJ2WPoja0LJBEQbXrTZ>p$fkVRC8mJl%y7`rh6Nt^VSOT%aendhds24xV$}-lRvILm%L@}~(z-1g4$)GBNCIO|1)1D8!)?e`LnDT|L%ocpsAaVp8oJNMK==!J6( zNuLYaZ*Vw&vTvVJB4Vh1aIakIrm%pp0{CrJM{Rn_;~sLwrjNgr%o(L6;J4SE4jTzt zRmSVGqL4Qm&!`Ge(^}pi45+--<@H;-?%RCfgH(U_L5wu!r6`%o@W#`VBd)!cgGVYw zIF|WOfNRxy$2Xx>($JO!-9L16RkxgUn5o)O^_P@h7?IcsGgbp$3v8 zl!?aGHuM}1Nje8ceg-Q1kWs<=ivc|rOwj(NakZ9G157_MVtL6NJ80L0<;4`ujR+vMJjluo`0vBPW84#hH*yW;yA|=e>H!# z{c=>n$jur&VFe1{ag5)ScP0MraT*zm6C2kX&ce_Jh|(XAYFZcC$!YQAVZbqV5oMXy z?_!9lJw%9icXyYA#BXB%*v=3Byq$|9!CAm^JYl2K;~2@{?(78hf>9onhIYD1z}kZY zcqo6Z2OhlSk8e;UT>w&0lRpDep{VTo)qr0jCY@c&JM|*0b+JuZ10N4E(9aT}oK-En z@IEbdEtBSAmE5!b3_F?7`wYF&GX7kh`beiPG>1{0AmRfY@7U%sKYA#&H`wduc?vSb zW*5j+Zo(gtD-!}AKn1JX7qOByirFi8#e_A4Dvj!Ox-P8Wa!0DoNzD1_ zoab>4XBo!ab?(o5fMfrwqym7E{;MH$$rzTO%W=BJb^R8u>9$Ppc?9=`rspxz6xkH* zuf2cwXe=Efwr?oKr!r3#G1$1pUAt36 z)ZECP#3&n5e*Q_B$|@4l*T0F@2fvYACl3&VHaC^)lqm`A2Ru>4HPEEJg`GE)oV7SY(1I6QdVARibZ&@Vy6{!A2^$}}vGwpt6f3Xq7)c?g~61>C1 zanbiEpGj>@Fs^7AeCpRA!c$4duIQzsv*ILTPfVM~{y2Ibj1H8+uKwk~^~1w-z>sSk z*P7ea#G6<&J~ta0e{irLLX%cEpY+qWl{{SP&vY14S(o{-r?38TPY1C=@yN)6no#`d z7Q~cmRY(hM(uedTn8W;TLM zCTs$aD|1(+x&+r=)Y$=C5Y#wLQEs7F&mDT!4!`9^$0faDVX<=do+g{J@FM=}{dx7d z6D3ScpfWh*p>B)r-&Kc*NNr0~ZqQ_WJZ%cMIUc4hUGKk&f_}w2Hde#GP_CNb!j$lX z|L9Y1-yqmuNVY0`x{S{A_5*&{uHyM%j5HZDVo10fdv(UnD|KPu%|E9cIgB5tQtm&` zFj4LtI3N)nW$d}t-HgGxkOs5$&lVMpk*`yN ze!qS!$lo-nskNW?R(R9^nsj63tQ&UjQ_5R@Nv8elC-txNYaIPKVHfT!@?UHK*$31x zjE{02sI}FOtA0=r?RXFDwn!Fo0smUYhd{UoY`5OBZn- zdx$u6Lr{cqGpn^I340e4ecZgtSrj06#-WIq{NTOb=1g_k?bSVY-O@+tZazXk)GqXA zwUbKIaB|{dFLEF{#rs}94MguqUTpA)PSe$n0~S%B!WAiCH%oX-N1d*d9RK09f@}=i zeNDTS3;Rmpx%B&-yRhXfEh%OoxX(vZlh?(*w{8r?_fHSCnJd5dWt^Fr0S{?l#fvBw z7Rgr{jhBlCC}-M|60)cY5QHUcIWY-wY%RQR*=ewv_4^n)wK|pZI<{CEi3@oPXS>Po z{zHfnK~VF=w?|{enC3$TexP}F%kVJYy@GRt_;@$U1dH=GPXz!XOuOOc_C3scZIKD- zRWAnisaf9Sjh5Vj65pBEc3LWL%&Sbod0kG41?-P09P`gG6vK9NxZhTXwsuv~D_2WH z?s19zzd$oQYXcv#kB*LJM~aL`HU{2RdM!f?7(Zh;qSxGgSAHEE4lw|G{^`*K;!Asl z(L7tc`3MS`-0^m}+_WTTO!HG0(V5(C}YiZ4+{WWGEW zWkG{-3J_9GB>Q?yaww`ulpj}9dsLS-y+X1|?BZD$!M9ipmrRUWCdM=N5Uw9aeePNo zU_r&Oe{h*jgbx39-8d7CyzUfu<3PZE2``LF$ltI**?ElkwqHhU$!c^gIVyr;AsWwX ze5cOO4av!H1twwOq*dzq_F7jw2QHwVRaRCu4%{@V`>~Cvr5Emf!^g8p+y+bsxPu#b zup1s4>K7Uc@axsNc=8#YV*$Zz_bqL}z)&Kqp!Hd0cvIR+baHxyLnTvD_qMxqwE?$W$Q;K&@f-I!djA z$)?~kW?1tFr>qfp^hmSDq|qX^EQA6->}#xo@wdw-A07_6>oqt~{{t*|W@r-7)1Ylu z%?yMJ7tU`b0t(_Q_es6;Rcr=iUf7@3WF8K?Yk$!I%_q4GGX0Trgru0Ke*6Z_f^{n)n+@iJ$p~5aO+;gF z6OrRp$IU9aemX{FMsa4%Jb1Goc1ugkt)RfnOyjun@Vv`4UT0#pwcMw9mU+Wk3VMWi zJ804!&mzz>1pw?KnSveqE)m8^UFklcd}v4Ikb)>zA0KsKG>Wy5ksc)To*P&YPDr5 z(-4RsUV)hpE&1rrm7}zKg~-#pzSJ0S4cz6m+*BRR*CVQ{sZX-(#zd-e*h>%T?{A`- zH7k(Wk|~=j&Hqq{K_Th@*)i8d_`TuZnCNg3sB&YYSY4az=sc12OyDkN2y!EC^BuM5 zuQOICb<6hA(<(NczrmWyd-qNpi46pw|H-t_{$+Hd_1Kmj(+D9cp?cEe0lTQ}oMrU@vscVjrOl2iSABB4HDZ`t?vOLdFR5 z=s+vU+qsQ~oKRQ3`Wpts;gyvF1D?{0w?z;o2kULfopmotQ{oyzO+(x7t`~t@fF>tu z!f_KGxeTWvhS543XrRU7(9Y9mOY=v~a#F5d#q?2lAriPtJ1k4qeS>2Cv3(mu$w?xzlBy!%J@xop zS?BV{&Asj(9w4N|&|FcafZdxhWQT0-j0lYAer{^(LLV;lai|SFe%3K;i2c0Gx!mor z;>$q8llfAejrAHswq7PKa2qJLuLvF(DwFRX7Aan2)Az!7))+!bfM#)@9MRfNM`g3= zC8e9yArebsmoC3uQ^uQ*XjoGW11$%=>z<>eq@+&GttRAu5D*aPu#2i1A@P%;U=hVF zda^OoI-nL~D%S|ZWMrY?e=05kS}fZBbfB;cs99eK}h)05{bxF45>v=wIcUk z4E1;Fy2A|yJy;~extWiJRXDg@>11RLUg<#eCmuZ=3)sJ0`WqM)8UIx)J}QDV+@)lp zrLP_LYPq6ysgrMX=FLq3!IsW`%w9#8skyl;4`m+;2))|4S6w+1x5OIg#d9EcSE3Ly zP>i4#fMWPG`CwpSHb+Z%iFj@bq~C&22Y{v=qeXbB{v(yX4YwJPH8n9OeRc15PPUfp ze;#=)hikPJmRIyVp)}KU^={Y6^#PrmUXz3AJS-NjX9o}P*Lp=J;NPvmnk5MZ_X*{- zsdn1m?Qx7y=3p6p9Fq=RwkLbQyVjGB-`C9JD4a&A7Df}K7pCNlk2|1(=-%9U*v=al zF>i8^yMFyp0R9QzOAH|vGHIV|2brg%qn}$8-Z;`MRNTFJ!?r~v$d^R=WlmoflR*gy zK66y1XYtj(E~xtAW74f+vl_0r_#K6=mF3f@7v%VqEyvFCGcH7DC60KRm^rWIayA!i zl3O{%`Q*Po%2WDSes5eVaFmo(tSMH zai>~^2wtNkz~ORb_q`7IN?cr+AL$GT)?49w^GYG^N-=?aEG!ej!Tenj`}%MV)(qp! z>_KQsFhWpXPVw1l)}Bh19OMeMm`GhKZ|v++-VHt0lu*=|YZ2LLXN|*V^HQ$A%hkEGVoH!r5xDjj&Nn_k=3c}1rQLWF?xfPtTT(_K=842@ z#zhCKMUEd)Wc61PGLH_eN?r@_-2a}Q0+U8^sb}JbF^48}(F)@g+kIcvIesd(8TmoW zeOQO*>Ue6)PN^mdVYW}jo2#7FpcP&|y94KgWnPOdBue}!D^DtdJ z-S6cUu$!hH&?t;zms7eYq3Kzsq3D++_)S!ep7*IZp#pfGY|R`~t12igur+M*s`1C# zzKu_DN^>1@t}+rK@u)-tZxI(ziikQjW_B-ve)f30n7NNM>R}A=z-B~`U z1acrIBNI(PSXz6??FWg&?j*N})KU)X2Z#>7=-Fd-j0S(A9gaP&HhQ6lO$#+_o7vg7 z=*CAy4`>45RKW(GRy{uDek%E5w*xg>O;}UY+wO?Ip82X{F2yEpEV!2hC*rzu>%3is zr{H}9G==;FMok3DEV|Qe6B8c5sPg02<(GO_q02CqHd6iv5G|@*QC>pqg%HNhSS?5H zt3ZWq!0%ATiaEfLyMs(8lZYrS_(4Jg@0&XwBF=b^(BT z{H`dCZFfKja&uVL3%y)#PAkAV{)wI`A&*2V?uG*hTip6PT^LIF)B7u4xf=$b_BixWtYNCh3x9KC8JPM?UODIA~lD7l%s05t?Bf$Pz=QiI>b!;J<@ zV{OMGEBn*65$r;fGqf@Wh;8PgFj#8}Byf!TwKtr<6(a!8`^kz~_mMYTCEliFxI+a( zd&8>yF`cYa)XMu{w8=F0U6intYG^opS8y2}?5mn85(IgteYyc)k2cre9I({KB400< zy1sC?VR8#+Fh7bDty@pxeFXu%*Z`4dV44#p&y%Ck<|2$MSm(z$8WUxBK>jD<5^e`b zbslw8%uI%NA^mHHhfFl@$wfg$;U6+Hph0ny$5nPaTfZXNkaN$q>?g$q&rrV!9uMmr`DoQ~}9o z0#K~~z~Cf!c_F?0e@g#16`K&x5xN6qLi2UWWB}>t?^p$s5@5Rni-2bTheiBF*qsM3 zz)0j^bQaeC6LCk(@U&%qO&q*%ZeI+8hJt4(Kogif zy)4isg_Fe6u&_v_mMD?j0Ca*`wZthbF6O3$TY8U-2mmMA41isgusKIQ&^WfRsQg)K zDuC4=OGVuV*9(@ex3Af<`JAOzdM7Fjw}2G3D~9!%Ai*J^HTLOs z&H_SI!bvCkvBzmrzSk^q9&94Z$J)+D2E?x$Jx3I7xGB$`*RfSQIFmkit&e08Jn@`@ z`YRduQ?4v_>CuumwsTy%N$ln45pXJFv)+8p)3A4cD_`(%tFfKh_+dU^_c`GaQTY&s zS{U{EdUnjNCRmJO5Ygwd%YKf-!B4%VdLb{1Qdz$JRXPczPRY<#<&re-{hS7k3a$k1 zJO*8!yiksY&w(hieJ}tRk5cRLNn3y0Y^Zdby!@_Kop^?PWlyHJrTdrZ?@VU2xJ4H}8Z#Vxt3pdo*HeG%@Zj=HYEy~zp3ggZ30q-uT0{NIy%ANM z-@kmyE+nI_O6|$uO}5$dpSpr$HP{orV&3h|%*e&WO!n|MNg;0;PY1xqRxiA?#)g#B&eA*0H!d;Mv z@!q!mwe4XCJ3|XO5nhgplEezYQ#s)DR6NffzzCiF>Ej&>gH;xQ>3r?JrzlNsCaJ6n zu!hOnt%${CJ%>0`Q#(3vB}dVcw=Lxfs^gi<74bC@@1ZT3WZ0t#7pUfYQlB8x;D`71 zm?^Z~?|(L(vIjkKumGpgTk}gBtZB~YmFDZxD^^D@T1K`$*{~*y>iJohK+#ne^}VQ~ z5BdRjCfXa=qm<0M6F1^)1!u{-vjl0WFH-M=JVET!V$Yge_=lo(_1d9=*LvjiLIW1W zA)Pyxhp0^+I^bn)hUu@o$?XisPoWCEo%b zKZ_lNW^K^cj~a+QM9mXF$q`@4>^h|nvZ8;;c0e}y_5~J4_%rU8pWHm*iL*xum6o6F zFdDvzMm^eQJfiPQ!I+tytaJm^X+?O+Q_AYx>qQ2vELwa(5IR4#Ry}g_6Cn)z)6&3tV z-v`fq6?k%&Ly#=y{wT(cm4?YsaQNl4amEdlJDxaPvpKJ#$S6HXd@~B?;L-HtIq#Ab zV~OCYf9rO2y2Q^oGFer=Q=|vZ>oHrKb4jZAl6{}{c5DhC zov@OfOvjPWTwB1tjHY{X+P00^`XcbwaRbHWYl5t@L4bRFE%S11?2?RoRbV1s1W<6N z8(=x=R;7j}MDg2geBwr{6~%^ihNPRIbR2ozO{kMG2+|S(ZHMVw>kK_B^iug1#Lpn; z&uRNT{t_p-w;Qq3Uxp}@1HuJcYHI$fqd_nel@fiDYrhPk z4L!GJkih?{qyMV;Z^QVnntw6H|621;`{%z-<7eCW|8yG1)G>pnvB%Hc?_2_Z^0yVG J3#1I6{U7U7&ffq4 literal 0 HcmV?d00001 diff --git a/docs/examples_gallery_out/images/thumb/sphx_glr_plot_probly_thumb.png b/docs/examples_gallery_out/images/thumb/sphx_glr_plot_probly_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..107f61a3de281649adfe239d80183cc5a09ada11 GIT binary patch literal 30387 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 literal 0 HcmV?d00001 diff --git a/docs/examples_gallery_out/index.rst b/docs/examples_gallery_out/index.rst new file mode 100644 index 00000000..410cfcae --- /dev/null +++ b/docs/examples_gallery_out/index.rst @@ -0,0 +1,51 @@ +:orphan: + +:hide-toc: + +Examples gallery +================== + +This page contains example plots. Click on a thumbnail to see the full +graph and source code. + + + +.. raw:: html + +

+ + +.. raw:: html + +
+ +.. only:: html + + .. image:: /examples_gallery_out/images/thumb/sphx_glr_plot_probly_thumb.png + :alt: probly dataset + + :ref:`sphx_glr_examples_gallery_out_plot_probly.py` + +.. raw:: html + +
probly dataset
+
+ + +.. raw:: html + +
+ + +.. toctree:: + :hidden: + + /examples_gallery_out/plot_probly + + + +.. only:: html + + .. rst-class:: sphx-glr-signature + + `Gallery generated by Sphinx-Gallery `_ diff --git a/docs/examples_gallery_out/plot_probly.ipynb b/docs/examples_gallery_out/plot_probly.ipynb new file mode 100644 index 00000000..8c9806bc --- /dev/null +++ b/docs/examples_gallery_out/plot_probly.ipynb @@ -0,0 +1,108 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n# probly dataset\n\nIn this example, we will be replicating the first ridgeline plot example in\n[this _from Data to Viz_ post](https://www.data-to-viz.com/graph/ridgeline.html)\n, which uses the _probly_ dataset. You can find the _plobly_ dataset on\nmultiple sources like in the\n[bokeh](https://raw.githubusercontent.com/bokeh/bokeh/main/bokeh/sampledata/_data/probly.csv)\npython interactive visualization library. I'll be using the\n[same source](https://raw.githubusercontent.com/zonination/perceptions/master/probly.csv)\nused in the original post.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import numpy as np\nimport plotly.io as pio\n\nfrom ridgeplot import ridgeplot\nfrom ridgeplot.datasets import load_probly\n\n# Load the probly dataset\ndf = load_probly()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's grab only the subset of columns displayed in the example\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "column_names = [\n \"Almost Certainly\",\n \"Very Good Chance\",\n \"We Believe\",\n \"Likely\",\n \"About Even\",\n \"Little Chance\",\n \"Chances Are Slight\",\n \"Almost No Chance\",\n]\ndf = df[column_names]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Not only does 'ridgeplot(...)' come configured with sensible defaults\nbut is also fully configurable to your own style and preference!\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig = ridgeplot(\n # Get your samples in the correct format\n samples=df.values.T,\n # We can specify the bandwidth used for KDE\n bandwidth=4,\n # and the range of points for which the KDE is evaluated\n kde_points=np.linspace(-12.5, 112.5, 400),\n # You can pass any plotly color scale here\n colorscale=\"viridis\",\n # In the example, the distributions seem to be colored\n # by 'index'. Have a look at the other available options!\n colormode=\"index\",\n # Set the transparency level\n coloralpha=0.6,\n # Always label your plots! Don't be evil...\n labels=column_names,\n # Adjust the vertical spacing between the distributions\n spacing=5 / 9,\n)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again, update the figure layout to your liking here\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "fig.update_layout(\n title=\"What probability would you assign to the phrase \u201cHighly likely\u201d?\",\n height=650,\n width=800,\n plot_bgcolor=\"rgba(255, 255, 255, 0.0)\",\n xaxis_gridcolor=\"rgba(0, 0, 0, 0.1)\",\n yaxis_gridcolor=\"rgba(0, 0, 0, 0.1)\",\n yaxis_title=\"Assigned Probability (%)\",\n)\n\n# Or, simply: fig.show()\npio.show(fig)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.15" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/docs/examples_gallery_out/plot_probly.py b/docs/examples_gallery_out/plot_probly.py new file mode 100644 index 00000000..aaee1ee1 --- /dev/null +++ b/docs/examples_gallery_out/plot_probly.py @@ -0,0 +1,74 @@ +""" +probly dataset +================= + +In this example, we will be replicating the first ridgeline plot example in +`this _from Data to Viz_ post `_ +, which uses the _probly_ dataset. You can find the _plobly_ dataset on +multiple sources like in the +`bokeh `_ +python interactive visualization library. I'll be using the +`same source `_ +used in the original post. +""" +import numpy as np +import plotly.io as pio + +from ridgeplot import ridgeplot +from ridgeplot.datasets import load_probly + +# Load the probly dataset +df = load_probly() + +# %% +# Let's grab only the subset of columns displayed in the example +column_names = [ + "Almost Certainly", + "Very Good Chance", + "We Believe", + "Likely", + "About Even", + "Little Chance", + "Chances Are Slight", + "Almost No Chance", +] +df = df[column_names] + +# %% +# Not only does 'ridgeplot(...)' come configured with sensible defaults +# but is also fully configurable to your own style and preference! + +fig = ridgeplot( + # Get your samples in the correct format + samples=df.values.T, + # We can specify the bandwidth used for KDE + bandwidth=4, + # and the range of points for which the KDE is evaluated + kde_points=np.linspace(-12.5, 112.5, 400), + # You can pass any plotly color scale here + colorscale="viridis", + # In the example, the distributions seem to be colored + # by 'index'. Have a look at the other available options! + colormode="index", + # Set the transparency level + coloralpha=0.6, + # Always label your plots! Don't be evil... + labels=column_names, + # Adjust the vertical spacing between the distributions + spacing=5 / 9, +) + +# %% +# Again, update the figure layout to your liking here +fig.update_layout( + title="What probability would you assign to the phrase “Highly likely”?", + height=650, + width=800, + plot_bgcolor="rgba(255, 255, 255, 0.0)", + xaxis_gridcolor="rgba(0, 0, 0, 0.1)", + yaxis_gridcolor="rgba(0, 0, 0, 0.1)", + yaxis_title="Assigned Probability (%)", +) + +# Or, simply: fig.show() +pio.show(fig) diff --git a/docs/examples_gallery_out/plot_probly.py.md5 b/docs/examples_gallery_out/plot_probly.py.md5 new file mode 100644 index 00000000..44084b7c --- /dev/null +++ b/docs/examples_gallery_out/plot_probly.py.md5 @@ -0,0 +1 @@ +bcfa81baabac2c0da6e3d382e50f0990 diff --git a/docs/examples_gallery_out/plot_probly.rst b/docs/examples_gallery_out/plot_probly.rst new file mode 100644 index 00000000..683555b3 --- /dev/null +++ b/docs/examples_gallery_out/plot_probly.rst @@ -0,0 +1,173 @@ + +.. DO NOT EDIT. +.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. +.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: +.. "examples_gallery_out/plot_probly.py" +.. LINE NUMBERS ARE GIVEN BELOW. + +.. only:: html + + .. note:: + :class: sphx-glr-download-link-note + + Click :ref:`here ` + to download the full example code + +.. rst-class:: sphx-glr-example-title + +.. _sphx_glr_examples_gallery_out_plot_probly.py: + + +probly dataset +================= + +In this example, we will be replicating the first ridgeline plot example in +`this _from Data to Viz_ post `_ +, which uses the _probly_ dataset. You can find the _plobly_ dataset on +multiple sources like in the +`bokeh `_ +python interactive visualization library. I'll be using the +`same source `_ +used in the original post. + +.. GENERATED FROM PYTHON SOURCE LINES 14-23 + +.. code-block:: default + + import numpy as np + import plotly.io as pio + + from ridgeplot import ridgeplot + from ridgeplot.datasets import load_probly + + # Load the probly dataset + df = load_probly() + + + + + + + + +.. GENERATED FROM PYTHON SOURCE LINES 24-25 + +Let's grab only the subset of columns displayed in the example + +.. GENERATED FROM PYTHON SOURCE LINES 25-37 + +.. code-block:: default + + column_names = [ + "Almost Certainly", + "Very Good Chance", + "We Believe", + "Likely", + "About Even", + "Little Chance", + "Chances Are Slight", + "Almost No Chance", + ] + df = df[column_names] + + + + + + + + +.. GENERATED FROM PYTHON SOURCE LINES 38-40 + +Not only does 'ridgeplot(...)' come configured with sensible defaults +but is also fully configurable to your own style and preference! + +.. GENERATED FROM PYTHON SOURCE LINES 40-61 + +.. code-block:: default + + + fig = ridgeplot( + # Get your samples in the correct format + samples=df.values.T, + # We can specify the bandwidth used for KDE + bandwidth=4, + # and the range of points for which the KDE is evaluated + kde_points=np.linspace(-12.5, 112.5, 400), + # You can pass any plotly color scale here + colorscale="viridis", + # In the example, the distributions seem to be colored + # by 'index'. Have a look at the other available options! + colormode="index", + # Set the transparency level + coloralpha=0.6, + # Always label your plots! Don't be evil... + labels=column_names, + # Adjust the vertical spacing between the distributions + spacing=5 / 9, + ) + + + + + + + + +.. GENERATED FROM PYTHON SOURCE LINES 62-63 + +Again, update the figure layout to your liking here + +.. GENERATED FROM PYTHON SOURCE LINES 63-75 + +.. code-block:: default + + fig.update_layout( + title="What probability would you assign to the phrase “Highly likely”?", + height=650, + width=800, + plot_bgcolor="rgba(255, 255, 255, 0.0)", + xaxis_gridcolor="rgba(0, 0, 0, 0.1)", + yaxis_gridcolor="rgba(0, 0, 0, 0.1)", + yaxis_title="Assigned Probability (%)", + ) + + # Or, simply: fig.show() + pio.show(fig) + + + +.. raw:: html + :file: images/sphx_glr_plot_probly_001.html + + + + + + +.. rst-class:: sphx-glr-timing + + **Total running time of the script:** ( 0 minutes 2.422 seconds) + + +.. _sphx_glr_download_examples_gallery_out_plot_probly.py: + +.. only:: html + + .. container:: sphx-glr-footer sphx-glr-footer-example + + + .. container:: sphx-glr-download sphx-glr-download-python + + :download:`Download Python source code: plot_probly.py ` + + .. container:: sphx-glr-download sphx-glr-download-jupyter + + :download:`Download Jupyter notebook: plot_probly.ipynb ` + + +.. only:: html + + .. rst-class:: sphx-glr-signature + + `Gallery generated by Sphinx-Gallery `_ diff --git a/docs/examples_gallery_out/plot_probly_codeobj.pickle b/docs/examples_gallery_out/plot_probly_codeobj.pickle new file mode 100644 index 0000000000000000000000000000000000000000..36c8a6fc1b93f7e9029ad39119a78a531038274c GIT binary patch literal 2314 zcmbW2L2uJA6vq*CB~`{)Sto(S1&PBZp-5c#08=%@fpr2-NKK5T zl5aD7U3hM?)XuUs&{Gq?|Ns5`-i!Tx>(?LW*6JtSfKiHrjIcx~=}vfvIS$7p$kc^8 ze4`HJFd{QAPeYVppQ3{0nL1MkUty(}pgC4@bWCPB$Bh`-pR+Khu>L5eETe@t<0y@N zHa!=f51t@Va=Q%jMa+1nq?DP8!F7bztH$<#6ji1_X``Qt>kN*J zy|;{aHrn+|I2F6`erzfp9wC8SivSR#YD-gyff}N$NU;Eq>lQj28#s?E94rT%gfpyD zR!xHXI8mOg8ms`vndXFM1ey)ocw%kC&_ba3< zpQnWec~;wR!#w8m#Mh%Gz`ty9j}nnx!GB()L^`-EtYh4*gFzdMF~ zA9LtIwWxP8Oi>ad;ROsn_DC=4F>ZTn&Ty-hYgp<2pIZHBmGn!Aj(%%J@0^UAq6@V6y2%XCAC&@2Cnd~-OZW5oo4@{=_-Q5T vtz>W>462)rFxZ6kba^P=4x_dIpgvRn|1hyVngzMAIPF-Y3coL_kb8dtybWVO literal 0 HcmV?d00001 diff --git a/docs/examples_gallery_out/sg_execution_times.rst b/docs/examples_gallery_out/sg_execution_times.rst new file mode 100644 index 00000000..086b662f --- /dev/null +++ b/docs/examples_gallery_out/sg_execution_times.rst @@ -0,0 +1,12 @@ + +:orphan: + +.. _sphx_glr_examples_gallery_out_sg_execution_times: + +Computation times +================= +**00:02.422** total execution time for **examples_gallery_out** files: + ++--------------------------------------------------------------------------+-----------+--------+ +| :ref:`sphx_glr_examples_gallery_out_plot_probly.py` (``plot_probly.py``) | 00:02.422 | 0.0 MB | ++--------------------------------------------------------------------------+-----------+--------+ diff --git a/docs/index.md b/docs/index.md index cb865dff..0e28bb6e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -43,6 +43,7 @@ maxdepth: 1 --- installation getting_started +examples_gallery_out/index.rst ``` ```{toctree} diff --git a/misc/_violin.py b/misc/_violin.py index 587724a7..aeebc135 100644 --- a/misc/_violin.py +++ b/misc/_violin.py @@ -20,7 +20,6 @@ def plot_violin( ridgeplot = True for dist, name, color in zip(data, names, colors): - defaults_violin = dict( fillcolor=color, line_color="black" if color else None, diff --git a/requirements/docs.in b/requirements/docs.in index ed886790..c076b74e 100644 --- a/requirements/docs.in +++ b/requirements/docs.in @@ -15,3 +15,14 @@ sphinx-inline-tabs sphinx-autobuild sphinx-toolbox sphinx-sitemap + +# --- sphinx-gallery --- # +sphinx-gallery +# kaleido is used to export static images from plotly +# figures, which is used by sphinx-gallery to generate +# thumbnails for the examples gallery +kaleido +# matplotlib is an implicit dependency of sphinx-gallery. +# although we don't need it for this project, we still +# need to declare the dependency here. +matplotlib diff --git a/requirements/locked/docs.38-darwin.txt b/requirements/locked/docs.38-darwin.txt index e491d703..9ea5255d 100644 --- a/requirements/locked/docs.38-darwin.txt +++ b/requirements/locked/docs.38-darwin.txt @@ -1,4 +1,4 @@ -# SHA1:12b7e9f93beb04f83147f4c376929d91f78ad34c +# SHA1:f99fab209554e4376feedf65a6036ae94649062b # # This file is autogenerated by pip-compile-multi # To update, run: @@ -45,8 +45,12 @@ colorama==0.4.6 # via sphinx-autobuild comm==0.1.2 # via ipykernel +contourpy==1.0.7 + # via matplotlib cssutils==2.6.0 # via dict2css +cycler==0.11.0 + # via matplotlib debugpy==1.6.6 # via ipykernel decorator==5.1.1 @@ -70,10 +74,10 @@ executing==1.2.0 # via stack-data fastjsonschema==2.16.2 # via nbformat +fonttools==4.38.0 + # via matplotlib furo==2022.12.7 # via -r requirements/docs.in -greenlet==2.0.1 - # via sqlalchemy html5lib==1.1 # via sphinx-toolbox idna==3.4 @@ -93,7 +97,7 @@ importlib-resources==5.10.2 # via jsonschema ipykernel==6.20.2 # via myst-nb -ipython==8.8.0 +ipython==8.9.0 # via # ipykernel # myst-nb @@ -117,6 +121,10 @@ jupyter-core==5.1.5 # via # jupyter-client # nbformat +kaleido==0.2.1 + # via -r requirements/docs.in +kiwisolver==1.4.4 + # via matplotlib livereload==2.6.3 # via sphinx-autobuild lockfile==0.12.2 @@ -131,6 +139,8 @@ markupsafe==2.1.2 # via # jinja2 # sphinx-jinja2-compat +matplotlib==3.6.3 + # via -r requirements/docs.in matplotlib-inline==0.1.6 # via # ipykernel @@ -162,6 +172,8 @@ nest-asyncio==1.5.6 # nbclient numpy==1.24.1 # via + # contourpy + # matplotlib # pandas # patsy # ridgeplot @@ -170,6 +182,7 @@ numpy==1.24.1 packaging==23.0 # via # ipykernel + # matplotlib # sphinx # statsmodels pandas==1.5.3 @@ -182,6 +195,8 @@ pexpect==4.8.0 # via ipython pickleshare==0.7.5 # via ipython +pillow==9.4.0 + # via matplotlib pkgutil-resolve-name==1.3.10 # via jsonschema platformdirs==2.6.2 @@ -205,11 +220,14 @@ pygments==2.14.0 # sphinx # sphinx-prompt # sphinx-tabs +pyparsing==3.0.9 + # via matplotlib pyrsistent==0.19.3 # via jsonschema python-dateutil==2.8.2 # via # jupyter-client + # matplotlib # pandas pytz==2022.7.1 # via @@ -260,6 +278,7 @@ sphinx==5.3.0 # sphinx-basic-ng # sphinx-copybutton # sphinx-design + # sphinx-gallery # sphinx-inline-tabs # sphinx-notfound-page # sphinx-prompt @@ -281,6 +300,8 @@ sphinx-copybutton==0.5.1 # via -r requirements/docs.in sphinx-design==0.3.0 # via -r requirements/docs.in +sphinx-gallery==0.11.1 + # via -r requirements/docs.in sphinx-inline-tabs==2022.1.2b11 # via -r requirements/docs.in sphinx-jinja2-compat==0.2.0 @@ -293,7 +314,7 @@ sphinx-sitemap==2.4.0 # via -r requirements/docs.in sphinx-tabs==3.4.1 # via sphinx-toolbox -sphinx-thebe==0.2.0 +sphinx-thebe==0.2.1 # via -r requirements/docs.in sphinx-togglebutton==0.3.2 # via -r requirements/docs.in diff --git a/requirements/locked/local-dev.38-darwin.txt b/requirements/locked/local-dev.38-darwin.txt index 9ce170ba..01d9e563 100644 --- a/requirements/locked/local-dev.38-darwin.txt +++ b/requirements/locked/local-dev.38-darwin.txt @@ -34,7 +34,7 @@ executing==1.2.0 # via stack-data identify==2.5.15 # via pre-commit -ipython==8.8.0 +ipython==8.9.0 # via -r requirements/local-dev.in jedi==0.18.2 # via diff --git a/requirements/locked/release.38-darwin.txt b/requirements/locked/release.38-darwin.txt index e892a6e8..3ec4f5e5 100644 --- a/requirements/locked/release.38-darwin.txt +++ b/requirements/locked/release.38-darwin.txt @@ -53,7 +53,7 @@ requests-toolbelt==0.10.1 # via twine rfc3986==2.0.0 # via twine -rich==13.2.0 +rich==13.3.0 # via twine six==1.16.0 # via bleach diff --git a/tox.ini b/tox.ini index 20da1235..c0e2a9c5 100644 --- a/tox.ini +++ b/tox.ini @@ -40,9 +40,10 @@ commands = description = generate Sphinx (live/static) HTML documentation skip_install = true deps = -r requirements/locked/docs.{env:PY_PYTHON_VERSION}-{env:PY_SYS_PLATFORM}.txt -allowlist_externals = make +allowlist_externals = make, rm commands = make --directory=docs clean + rm -rf docs/jupyter_execute live: make --directory=docs livehtml static: make --directory=docs html python "scripts/open_in_browser.py" "docs/build/html/index.html" From c8adf5727ce3c91580a59b40f620ebc61761bc50 Mon Sep 17 00:00:00 2001 From: Tomas Pereira de Vasconcelos Date: Mon, 28 Oct 2024 15:15:30 +0000 Subject: [PATCH 02/11] Update plot_probly.py example --- docs/examples_gallery_in/plot_probly.py | 28 ++++++++++++++----------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/docs/examples_gallery_in/plot_probly.py b/docs/examples_gallery_in/plot_probly.py index 4db5ec5a..5bcb17bc 100644 --- a/docs/examples_gallery_in/plot_probly.py +++ b/docs/examples_gallery_in/plot_probly.py @@ -24,7 +24,7 @@ df = load_probly() # %% -# Let's grab only the subset of columns displayed in the example +# Let's grab the subset of columns used in the example column_names = [ "Almost Certainly", "Very Good Chance", @@ -47,14 +47,14 @@ # We can specify the bandwidth used for KDE bandwidth=4, # and the range of points for which the KDE is evaluated - kde_points=np.linspace(-12.5, 112.5, 400), + kde_points=np.linspace(-12.5, 112.5, 500), # You can pass any plotly color scale here colorscale="viridis", - # In the example, the distributions seem to be colored - # by 'index'. Have a look at the other available options! - colormode="index", + # In the example, the distributions seem to be colored the + # row's index. Have a look at the other available options! + colormode="row-index", # Set the transparency level - coloralpha=0.6, + opacity=0.65, # Always label your plots! Don't be evil... labels=column_names, # Adjust the vertical spacing between the distributions @@ -62,16 +62,20 @@ ) # %% -# Again, update the figure layout to your liking here +# And you can still update and extend the final +# Plotly Figure using standard Plotly methods fig.update_layout( - title="What probability would you assign to the phrase “Highly likely”?", - height=650, + height=560, width=800, - plot_bgcolor="rgba(255, 255, 255, 0.0)", + font_size=16, + plot_bgcolor="white", + xaxis_tickvals=[-12.5, 0, 12.5, 25, 37.5, 50, 62.5, 75, 87.5, 100, 112.5], + xaxis_ticktext=["", "0", "", "25", "", "50", "", "75", "", "100", ""], xaxis_gridcolor="rgba(0, 0, 0, 0.1)", yaxis_gridcolor="rgba(0, 0, 0, 0.1)", - yaxis_title="Assigned Probability (%)", + yaxis_title=dict(text="Assigned Probability (%)", font_size=13), + showlegend=False, ) -# Or, simply: fig.show() +# Show us the work! pio.show(fig) From 3b61f966925d8c8c10a8497f2ce354cad4f15779 Mon Sep 17 00:00:00 2001 From: Tomas Pereira de Vasconcelos Date: Mon, 28 Oct 2024 15:15:49 +0000 Subject: [PATCH 03/11] Remove docs/examples_gallery_out/ artifacts from git --- .gitignore | 3 +- .../images/sphx_glr_plot_probly_001.html | 7 - .../images/sphx_glr_plot_probly_001.png | Bin 82037 -> 0 bytes .../thumb/sphx_glr_plot_probly_thumb.png | Bin 29601 -> 0 bytes docs/examples_gallery_out/index.rst | 54 ---- .../plot_probly.codeobj.json | 286 ------------------ docs/examples_gallery_out/plot_probly.ipynb | 97 ------ docs/examples_gallery_out/plot_probly.py | 77 ----- docs/examples_gallery_out/plot_probly.py.md5 | 1 - docs/examples_gallery_out/plot_probly.rst | 188 ------------ .../plot_probly_codeobj.pickle | Bin 2314 -> 0 bytes .../sg_execution_times.rst | 37 --- docs/sg_execution_times.rst | 37 --- 13 files changed, 2 insertions(+), 785 deletions(-) delete mode 100644 docs/examples_gallery_out/images/sphx_glr_plot_probly_001.html delete mode 100644 docs/examples_gallery_out/images/sphx_glr_plot_probly_001.png delete mode 100644 docs/examples_gallery_out/images/thumb/sphx_glr_plot_probly_thumb.png delete mode 100644 docs/examples_gallery_out/index.rst delete mode 100644 docs/examples_gallery_out/plot_probly.codeobj.json delete mode 100644 docs/examples_gallery_out/plot_probly.ipynb delete mode 100644 docs/examples_gallery_out/plot_probly.py delete mode 100644 docs/examples_gallery_out/plot_probly.py.md5 delete mode 100644 docs/examples_gallery_out/plot_probly.rst delete mode 100644 docs/examples_gallery_out/plot_probly_codeobj.pickle delete mode 100644 docs/examples_gallery_out/sg_execution_times.rst delete mode 100644 docs/sg_execution_times.rst diff --git a/.gitignore b/.gitignore index b57bc488..024466a6 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,8 @@ # Project specific # ============================================================================ -# add custom entries here... +docs/examples_gallery_out/ +docs/sg_execution_times.rst # ============================================================================ diff --git a/docs/examples_gallery_out/images/sphx_glr_plot_probly_001.html b/docs/examples_gallery_out/images/sphx_glr_plot_probly_001.html deleted file mode 100644 index f464a64c..00000000 --- a/docs/examples_gallery_out/images/sphx_glr_plot_probly_001.html +++ /dev/null @@ -1,7 +0,0 @@ - - - -
-
- - diff --git a/docs/examples_gallery_out/images/sphx_glr_plot_probly_001.png b/docs/examples_gallery_out/images/sphx_glr_plot_probly_001.png deleted file mode 100644 index dffe6d50f5235fb11b299e3e91558eabe2acf3c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82037 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 UD=9955*hgDX&Y&kYFxYfKg^Uyd;kCd diff --git a/docs/examples_gallery_out/images/thumb/sphx_glr_plot_probly_thumb.png b/docs/examples_gallery_out/images/thumb/sphx_glr_plot_probly_thumb.png deleted file mode 100644 index 68d8eec9ea11b4a17733323ea148129187c145ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29601 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 diff --git a/docs/examples_gallery_out/index.rst b/docs/examples_gallery_out/index.rst deleted file mode 100644 index 5d871d6a..00000000 --- a/docs/examples_gallery_out/index.rst +++ /dev/null @@ -1,54 +0,0 @@ -:orphan: - -:hide-toc: - -Examples gallery -================== - -This page contains example plots. Click on a thumbnail to see the full -graph and source code. - - - -.. raw:: html - -
- -.. thumbnail-parent-div-open - -.. raw:: html - -
- -.. only:: html - - .. image:: /examples_gallery_out/images/thumb/sphx_glr_plot_probly_thumb.png - :alt: - - :ref:`sphx_glr_examples_gallery_out_plot_probly.py` - -.. raw:: html - -
probly dataset
-
- - -.. thumbnail-parent-div-close - -.. raw:: html - -
- - -.. toctree:: - :hidden: - - /examples_gallery_out/plot_probly - - - -.. only:: html - - .. rst-class:: sphx-glr-signature - - `Gallery generated by Sphinx-Gallery `_ diff --git a/docs/examples_gallery_out/plot_probly.codeobj.json b/docs/examples_gallery_out/plot_probly.codeobj.json deleted file mode 100644 index a1a384b6..00000000 --- a/docs/examples_gallery_out/plot_probly.codeobj.json +++ /dev/null @@ -1,286 +0,0 @@ -{ - "column_names": [ - { - "is_class": false, - "is_explicit": false, - "module": "builtins", - "module_short": "builtins", - "name": "list" - } - ], - "df": [ - { - "is_class": false, - "is_explicit": false, - "module": "pandas.core.frame", - "module_short": "pandas.core.frame", - "name": "DataFrame" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas.core", - "module_short": "pandas.core", - "name": "DataFrame" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas", - "module_short": "pandas", - "name": "DataFrame" - } - ], - "df.to_numpy": [ - { - "is_class": false, - "is_explicit": false, - "module": "pandas.core.frame", - "module_short": "pandas.core.frame", - "name": "DataFrame.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas.core", - "module_short": "pandas.core", - "name": "DataFrame.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas", - "module_short": "pandas", - "name": "DataFrame.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas.core.generic", - "module_short": "pandas.core.generic", - "name": "NDFrame.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas.core", - "module_short": "pandas.core", - "name": "NDFrame.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas", - "module_short": "pandas", - "name": "NDFrame.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas.core.arraylike", - "module_short": "pandas.core.arraylike", - "name": "OpsMixin.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas.core", - "module_short": "pandas.core", - "name": "OpsMixin.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas", - "module_short": "pandas", - "name": "OpsMixin.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas.core.base", - "module_short": "pandas.core.base", - "name": "PandasObject.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas.core", - "module_short": "pandas.core", - "name": "PandasObject.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas", - "module_short": "pandas", - "name": "PandasObject.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas.core.indexing", - "module_short": "pandas.core.indexing", - "name": "IndexingMixin.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas.core", - "module_short": "pandas.core", - "name": "IndexingMixin.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas", - "module_short": "pandas", - "name": "IndexingMixin.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas.core.accessor", - "module_short": "pandas.core.accessor", - "name": "DirNamesMixin.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas.core", - "module_short": "pandas.core", - "name": "DirNamesMixin.to_numpy" - }, - { - "is_class": false, - "is_explicit": false, - "module": "pandas", - "module_short": "pandas", - "name": "DirNamesMixin.to_numpy" - } - ], - "fig": [ - { - "is_class": false, - "is_explicit": false, - "module": "plotly.graph_objs._figure", - "module_short": "plotly.graph_objs", - "name": "Figure" - }, - { - "is_class": false, - "is_explicit": false, - "module": "plotly.graph_objs", - "module_short": "plotly.graph_objs", - "name": "Figure" - }, - { - "is_class": false, - "is_explicit": false, - "module": "plotly", - "module_short": "plotly", - "name": "Figure" - } - ], - "fig.update_layout": [ - { - "is_class": false, - "is_explicit": false, - "module": "plotly.graph_objs._figure", - "module_short": "plotly.graph_objs", - "name": "Figure.update_layout" - }, - { - "is_class": false, - "is_explicit": false, - "module": "plotly.graph_objs", - "module_short": "plotly.graph_objs", - "name": "Figure.update_layout" - }, - { - "is_class": false, - "is_explicit": false, - "module": "plotly", - "module_short": "plotly", - "name": "Figure.update_layout" - }, - { - "is_class": false, - "is_explicit": false, - "module": "plotly.basedatatypes", - "module_short": "plotly.basedatatypes", - "name": "BaseFigure.update_layout" - }, - { - "is_class": false, - "is_explicit": false, - "module": "plotly", - "module_short": "plotly", - "name": "BaseFigure.update_layout" - } - ], - "load_probly": [ - { - "is_class": false, - "is_explicit": false, - "module": "builtins", - "module_short": "builtins", - "name": "function" - }, - { - "is_class": false, - "is_explicit": false, - "module": "ridgeplot.datasets", - "module_short": "ridgeplot.datasets", - "name": "load_probly" - } - ], - "np.linspace": [ - { - "is_class": false, - "is_explicit": false, - "module": "numpy", - "module_short": "numpy", - "name": "_ArrayFunctionDispatcher" - }, - { - "is_class": false, - "is_explicit": false, - "module": "numpy", - "module_short": "numpy", - "name": "linspace" - } - ], - "pio.show": [ - { - "is_class": false, - "is_explicit": false, - "module": "builtins", - "module_short": "builtins", - "name": "function" - }, - { - "is_class": false, - "is_explicit": false, - "module": "plotly.io", - "module_short": "plotly.io", - "name": "show" - } - ], - "ridgeplot": [ - { - "is_class": false, - "is_explicit": false, - "module": "builtins", - "module_short": "builtins", - "name": "function" - }, - { - "is_class": false, - "is_explicit": false, - "module": "ridgeplot", - "module_short": "ridgeplot", - "name": "ridgeplot" - } - ] -} diff --git a/docs/examples_gallery_out/plot_probly.ipynb b/docs/examples_gallery_out/plot_probly.ipynb deleted file mode 100644 index 91fde0f4..00000000 --- a/docs/examples_gallery_out/plot_probly.ipynb +++ /dev/null @@ -1,97 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n# probly dataset\n\nIn this example, we will be replicating the first ridgeline plot example in\n[this _from Data to Viz_ post](https://www.data-to-viz.com/graph/ridgeline.html)\n, which uses the _probly_ dataset. You can find the _plobly_ dataset on\nmultiple sources like in the\n[bokeh](https://raw.githubusercontent.com/bokeh/bokeh/main/bokeh/sampledata/_data/probly.csv)\npython interactive visualization library. I'll be using the\n[same source](https://raw.githubusercontent.com/zonination/perceptions/master/probly.csv)\nused in the original post.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "from __future__ import annotations\n\nimport numpy as np\nimport plotly.io as pio\n\nfrom ridgeplot import ridgeplot\nfrom ridgeplot.datasets import load_probly\n\n# Load the probly dataset\ndf = load_probly()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's grab only the subset of columns displayed in the example\n\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "column_names = [\n \"Almost Certainly\",\n \"Very Good Chance\",\n \"We Believe\",\n \"Likely\",\n \"About Even\",\n \"Little Chance\",\n \"Chances Are Slight\",\n \"Almost No Chance\",\n]\ndf = df[column_names]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Not only does 'ridgeplot(...)' come configured with sensible defaults\nbut is also fully configurable to your own style and preference!\n\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "fig = ridgeplot(\n # Get your samples in the correct format\n samples=df.to_numpy().T,\n # We can specify the bandwidth used for KDE\n bandwidth=4,\n # and the range of points for which the KDE is evaluated\n kde_points=np.linspace(-12.5, 112.5, 400),\n # You can pass any plotly color scale here\n colorscale=\"viridis\",\n # In the example, the distributions seem to be colored\n # by 'index'. Have a look at the other available options!\n colormode=\"index\",\n # Set the transparency level\n coloralpha=0.6,\n # Always label your plots! Don't be evil...\n labels=column_names,\n # Adjust the vertical spacing between the distributions\n spacing=5 / 9,\n)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Again, update the figure layout to your liking here\n\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "fig.update_layout(\n title=\"What probability would you assign to the phrase “Highly likely”?\",\n height=650,\n width=800,\n plot_bgcolor=\"rgba(255, 255, 255, 0.0)\",\n xaxis_gridcolor=\"rgba(0, 0, 0, 0.1)\",\n yaxis_gridcolor=\"rgba(0, 0, 0, 0.1)\",\n yaxis_title=\"Assigned Probability (%)\",\n)\n\n# Or, simply: fig.show()\npio.show(fig)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.20" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} diff --git a/docs/examples_gallery_out/plot_probly.py b/docs/examples_gallery_out/plot_probly.py deleted file mode 100644 index 4db5ec5a..00000000 --- a/docs/examples_gallery_out/plot_probly.py +++ /dev/null @@ -1,77 +0,0 @@ -""" -probly dataset -================= - -In this example, we will be replicating the first ridgeline plot example in -`this _from Data to Viz_ post `_ -, which uses the _probly_ dataset. You can find the _plobly_ dataset on -multiple sources like in the -`bokeh `_ -python interactive visualization library. I'll be using the -`same source `_ -used in the original post. -""" - -from __future__ import annotations - -import numpy as np -import plotly.io as pio - -from ridgeplot import ridgeplot -from ridgeplot.datasets import load_probly - -# Load the probly dataset -df = load_probly() - -# %% -# Let's grab only the subset of columns displayed in the example -column_names = [ - "Almost Certainly", - "Very Good Chance", - "We Believe", - "Likely", - "About Even", - "Little Chance", - "Chances Are Slight", - "Almost No Chance", -] -df = df[column_names] - -# %% -# Not only does 'ridgeplot(...)' come configured with sensible defaults -# but is also fully configurable to your own style and preference! - -fig = ridgeplot( - # Get your samples in the correct format - samples=df.to_numpy().T, - # We can specify the bandwidth used for KDE - bandwidth=4, - # and the range of points for which the KDE is evaluated - kde_points=np.linspace(-12.5, 112.5, 400), - # You can pass any plotly color scale here - colorscale="viridis", - # In the example, the distributions seem to be colored - # by 'index'. Have a look at the other available options! - colormode="index", - # Set the transparency level - coloralpha=0.6, - # Always label your plots! Don't be evil... - labels=column_names, - # Adjust the vertical spacing between the distributions - spacing=5 / 9, -) - -# %% -# Again, update the figure layout to your liking here -fig.update_layout( - title="What probability would you assign to the phrase “Highly likely”?", - height=650, - width=800, - plot_bgcolor="rgba(255, 255, 255, 0.0)", - xaxis_gridcolor="rgba(0, 0, 0, 0.1)", - yaxis_gridcolor="rgba(0, 0, 0, 0.1)", - yaxis_title="Assigned Probability (%)", -) - -# Or, simply: fig.show() -pio.show(fig) diff --git a/docs/examples_gallery_out/plot_probly.py.md5 b/docs/examples_gallery_out/plot_probly.py.md5 deleted file mode 100644 index 38fb3b56..00000000 --- a/docs/examples_gallery_out/plot_probly.py.md5 +++ /dev/null @@ -1 +0,0 @@ -799df3b6e09af346d2785711732e41bf diff --git a/docs/examples_gallery_out/plot_probly.rst b/docs/examples_gallery_out/plot_probly.rst deleted file mode 100644 index 24d20246..00000000 --- a/docs/examples_gallery_out/plot_probly.rst +++ /dev/null @@ -1,188 +0,0 @@ - -.. DO NOT EDIT. -.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. -.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: -.. "examples_gallery_out/plot_probly.py" -.. LINE NUMBERS ARE GIVEN BELOW. - -.. only:: html - - .. note:: - :class: sphx-glr-download-link-note - - :ref:`Go to the end ` - to download the full example code. - -.. rst-class:: sphx-glr-example-title - -.. _sphx_glr_examples_gallery_out_plot_probly.py: - - -probly dataset -================= - -In this example, we will be replicating the first ridgeline plot example in -`this _from Data to Viz_ post `_ -, which uses the _probly_ dataset. You can find the _plobly_ dataset on -multiple sources like in the -`bokeh `_ -python interactive visualization library. I'll be using the -`same source `_ -used in the original post. - -.. GENERATED FROM PYTHON SOURCE LINES 14-26 - -.. code-block:: Python - - - from __future__ import annotations - - import numpy as np - import plotly.io as pio - - from ridgeplot import ridgeplot - from ridgeplot.datasets import load_probly - - # Load the probly dataset - df = load_probly() - - - - - - - - -.. GENERATED FROM PYTHON SOURCE LINES 27-28 - -Let's grab only the subset of columns displayed in the example - -.. GENERATED FROM PYTHON SOURCE LINES 28-40 - -.. code-block:: Python - - column_names = [ - "Almost Certainly", - "Very Good Chance", - "We Believe", - "Likely", - "About Even", - "Little Chance", - "Chances Are Slight", - "Almost No Chance", - ] - df = df[column_names] - - - - - - - - -.. GENERATED FROM PYTHON SOURCE LINES 41-43 - -Not only does 'ridgeplot(...)' come configured with sensible defaults -but is also fully configurable to your own style and preference! - -.. GENERATED FROM PYTHON SOURCE LINES 43-64 - -.. code-block:: Python - - - fig = ridgeplot( - # Get your samples in the correct format - samples=df.to_numpy().T, - # We can specify the bandwidth used for KDE - bandwidth=4, - # and the range of points for which the KDE is evaluated - kde_points=np.linspace(-12.5, 112.5, 400), - # You can pass any plotly color scale here - colorscale="viridis", - # In the example, the distributions seem to be colored - # by 'index'. Have a look at the other available options! - colormode="index", - # Set the transparency level - coloralpha=0.6, - # Always label your plots! Don't be evil... - labels=column_names, - # Adjust the vertical spacing between the distributions - spacing=5 / 9, - ) - - - - - -.. rst-class:: sphx-glr-script-out - - .. code-block:: none - - /Users/tpvasconcelos/git_tree/personal_projects/ridgeplot/docs/examples_gallery_in/plot_probly.py:44: DeprecationWarning: - - The colormode='index' value has been deprecated in favor of colormode='row-index', which provides the same functionality but is more explicit and allows to distinguish between the 'row-index' and 'trace-index' modes. Support for the deprecated value will be removed in a future version. - - - - - -.. GENERATED FROM PYTHON SOURCE LINES 65-66 - -Again, update the figure layout to your liking here - -.. GENERATED FROM PYTHON SOURCE LINES 66-78 - -.. code-block:: Python - - fig.update_layout( - title="What probability would you assign to the phrase “Highly likely”?", - height=650, - width=800, - plot_bgcolor="rgba(255, 255, 255, 0.0)", - xaxis_gridcolor="rgba(0, 0, 0, 0.1)", - yaxis_gridcolor="rgba(0, 0, 0, 0.1)", - yaxis_title="Assigned Probability (%)", - ) - - # Or, simply: fig.show() - pio.show(fig) - - - -.. raw:: html - :file: images/sphx_glr_plot_probly_001.html - - - - - - -.. rst-class:: sphx-glr-timing - - **Total running time of the script:** (0 minutes 0.329 seconds) - - -.. _sphx_glr_download_examples_gallery_out_plot_probly.py: - -.. only:: html - - .. container:: sphx-glr-footer sphx-glr-footer-example - - .. container:: sphx-glr-download sphx-glr-download-jupyter - - :download:`Download Jupyter notebook: plot_probly.ipynb ` - - .. container:: sphx-glr-download sphx-glr-download-python - - :download:`Download Python source code: plot_probly.py ` - - .. container:: sphx-glr-download sphx-glr-download-zip - - :download:`Download zipped: plot_probly.zip ` - - -.. only:: html - - .. rst-class:: sphx-glr-signature - - `Gallery generated by Sphinx-Gallery `_ diff --git a/docs/examples_gallery_out/plot_probly_codeobj.pickle b/docs/examples_gallery_out/plot_probly_codeobj.pickle deleted file mode 100644 index 36c8a6fc1b93f7e9029ad39119a78a531038274c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2314 zcmbW2L2uJA6vq*CB~`{)Sto(S1&PBZp-5c#08=%@fpr2-NKK5T zl5aD7U3hM?)XuUs&{Gq?|Ns5`-i!Tx>(?LW*6JtSfKiHrjIcx~=}vfvIS$7p$kc^8 ze4`HJFd{QAPeYVppQ3{0nL1MkUty(}pgC4@bWCPB$Bh`-pR+Khu>L5eETe@t<0y@N zHa!=f51t@Va=Q%jMa+1nq?DP8!F7bztH$<#6ji1_X``Qt>kN*J zy|;{aHrn+|I2F6`erzfp9wC8SivSR#YD-gyff}N$NU;Eq>lQj28#s?E94rT%gfpyD zR!xHXI8mOg8ms`vndXFM1ey)ocw%kC&_ba3< zpQnWec~;wR!#w8m#Mh%Gz`ty9j}nnx!GB()L^`-EtYh4*gFzdMF~ zA9LtIwWxP8Oi>ad;ROsn_DC=4F>ZTn&Ty-hYgp<2pIZHBmGn!Aj(%%J@0^UAq6@V6y2%XCAC&@2Cnd~-OZW5oo4@{=_-Q5T vtz>W>462)rFxZ6kba^P=4x_dIpgvRn|1hyVngzMAIPF-Y3coL_kb8dtybWVO diff --git a/docs/examples_gallery_out/sg_execution_times.rst b/docs/examples_gallery_out/sg_execution_times.rst deleted file mode 100644 index 7460590f..00000000 --- a/docs/examples_gallery_out/sg_execution_times.rst +++ /dev/null @@ -1,37 +0,0 @@ - -:orphan: - -.. _sphx_glr_examples_gallery_out_sg_execution_times: - - -Computation times -================= -**00:00.329** total execution time for 1 file **from examples_gallery_out**: - -.. container:: - - .. raw:: html - - - - - - - - .. list-table:: - :header-rows: 1 - :class: table table-striped sg-datatable - - * - Example - - Time - - Mem (MB) - * - :ref:`sphx_glr_examples_gallery_out_plot_probly.py` (``plot_probly.py``) - - 00:00.329 - - 0.0 diff --git a/docs/sg_execution_times.rst b/docs/sg_execution_times.rst deleted file mode 100644 index 24d3f207..00000000 --- a/docs/sg_execution_times.rst +++ /dev/null @@ -1,37 +0,0 @@ - -:orphan: - -.. _sphx_glr_sg_execution_times: - - -Computation times -================= -**00:00.329** total execution time for 1 file **from all galleries**: - -.. container:: - - .. raw:: html - - - - - - - - .. list-table:: - :header-rows: 1 - :class: table table-striped sg-datatable - - * - Example - - Time - - Mem (MB) - * - :ref:`sphx_glr_examples_gallery_out_plot_probly.py` (``examples_gallery_in/plot_probly.py``) - - 00:00.329 - - 0.0 From 7e5108e7cd82410a716f30e6c9a14c0081e88305 Mon Sep 17 00:00:00 2001 From: Tomas Pereira de Vasconcelos Date: Mon, 28 Oct 2024 15:22:17 +0000 Subject: [PATCH 04/11] Add `sphinx_gallery_overwrite.css` CSS override --- MANIFEST.in | 3 ++- docs/conf.py | 6 +----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index 2a2dfcfe..c8c0e105 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -26,7 +26,8 @@ recursive-include docs/_static/css *.css recursive-include docs/_static/img *.png *.webp *.svg *.gif *.jpg recursive-include docs/_static/js *.js recursive-include docs/_templates *.html -recursive-include docs/examples_gallery_out *.html *.png *.md5 *.pickle *.ipynb *.json +exclude docs/sg_execution_times.rst +prune docs/examples_gallery_out prune docs/build # Misc diff --git a/docs/conf.py b/docs/conf.py index a62bef17..e8371cbf 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -110,6 +110,7 @@ html_css_files = [ "css/misc_overrides.css", + "css/sphinx_gallery_overwrite.css", "css/versionmodified_admonitions.css", # FontAwesome CSS for footer icons # https://fontawesome.com/search @@ -385,10 +386,5 @@ def setup(app: Sphinx) -> None: compile_plotly_charts() # app.connect("html-page-context", register_jinja_functions) - # TODO: Check this! - # # html_css_files doesn't seem to be working... - # for css_path in Path("_static/css").glob("*.css"): - # app.add_css_file(css_path.relative_to("_static").as_posix()) - app.connect("build-finished", lambda *_: _fix_generated_public_api_rst()) app.connect("build-finished", lambda *_: _fix_html_charts()) From 5618d69c589772a1fe9fddc7fd8667fb3f8c2d59 Mon Sep 17 00:00:00 2001 From: Tomas Pereira de Vasconcelos Date: Mon, 28 Oct 2024 15:25:46 +0000 Subject: [PATCH 05/11] Update cross-reference to ridgeplot function --- docs/examples_gallery_in/plot_probly.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/examples_gallery_in/plot_probly.py b/docs/examples_gallery_in/plot_probly.py index 5bcb17bc..9b13deea 100644 --- a/docs/examples_gallery_in/plot_probly.py +++ b/docs/examples_gallery_in/plot_probly.py @@ -38,7 +38,7 @@ df = df[column_names] # %% -# Not only does 'ridgeplot(...)' come configured with sensible defaults +# Not only does :func:`~ridgeplot.ridgeplot()` come configured with sensible defaults # but is also fully configurable to your own style and preference! fig = ridgeplot( From 39f499939f83a1af5137cf95cbd279648e266b43 Mon Sep 17 00:00:00 2001 From: Tomas Pereira de Vasconcelos Date: Mon, 28 Oct 2024 15:29:19 +0000 Subject: [PATCH 06/11] Update docs.txt --- requirements/docs.txt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/requirements/docs.txt b/requirements/docs.txt index b9cb0967..9803ab25 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -22,16 +22,17 @@ sphinx_design sphinx_thebe sphinxext-opengraph -# --- sphinx-gallery --- # +# Sphinx-Gallery dependencies sphinx-gallery -# kaleido is used to export static images from plotly +# kaleido is used to export static images from Plotly # figures, which is used by sphinx-gallery to generate # thumbnails for the examples gallery kaleido # matplotlib is an implicit dependency of sphinx-gallery. -# although we don't need it for this project, we still -# need to declare the dependency here. +# although we don't need it for this project, we +# still need to declare the dependency here. matplotlib -# Cleanup generated files +# Use the `pre_commit_hooks` Python package to cleanup +# generated files as 'build-finished' Sphinx hooks pre_commit_hooks From 1cd0e716895e91bfb029b706fbdebd1b75e7a71c Mon Sep 17 00:00:00 2001 From: Tomas Pereira de Vasconcelos Date: Mon, 28 Oct 2024 15:30:43 +0000 Subject: [PATCH 07/11] Remove dead `rm -rf docs/jupyter_execute` --- tox.ini | 1 - 1 file changed, 1 deletion(-) diff --git a/tox.ini b/tox.ini index 0403f602..da2855f5 100644 --- a/tox.ini +++ b/tox.ini @@ -87,7 +87,6 @@ deps = -r requirements/docs.txt allowlist_externals = make, rm commands = make --directory=docs clean - rm -rf docs/jupyter_execute live: make --directory=docs livehtml static: make --directory=docs html python "cicd_utils/cicd/scripts/open_in_browser.py" "docs/build/html/index.html" From 518e8f0b0ea551117a25ecc50aaf792cf8f537d3 Mon Sep 17 00:00:00 2001 From: Tomas Pereira de Vasconcelos Date: Mon, 28 Oct 2024 15:30:53 +0000 Subject: [PATCH 08/11] Remove dead `rm -rf docs/jupyter_execute` --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index da2855f5..6196182f 100644 --- a/tox.ini +++ b/tox.ini @@ -84,7 +84,7 @@ setenv = {[testenv]setenv} PYTHONPATH={env:PYTHONPATH}{:}{toxinidir}/cicd_utils deps = -r requirements/docs.txt -allowlist_externals = make, rm +allowlist_externals = make commands = make --directory=docs clean live: make --directory=docs livehtml From 77a1d43962efa6b50e5680a22b04fb2509bb9adf Mon Sep 17 00:00:00 2001 From: Tomas Pereira de Vasconcelos Date: Mon, 28 Oct 2024 16:21:45 +0000 Subject: [PATCH 09/11] Remove usage of `plotly.io.show()` --- docs/examples_gallery_in/plot_probly.py | 3 +-- ruff.toml | 6 +++--- tests/unit/test_missing.py | 6 +++--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/docs/examples_gallery_in/plot_probly.py b/docs/examples_gallery_in/plot_probly.py index 9b13deea..9fc1cfed 100644 --- a/docs/examples_gallery_in/plot_probly.py +++ b/docs/examples_gallery_in/plot_probly.py @@ -15,7 +15,6 @@ from __future__ import annotations import numpy as np -import plotly.io as pio from ridgeplot import ridgeplot from ridgeplot.datasets import load_probly @@ -78,4 +77,4 @@ ) # Show us the work! -pio.show(fig) +fig diff --git a/ruff.toml b/ruff.toml index 59da2fc0..ac51752e 100644 --- a/ruff.toml +++ b/ruff.toml @@ -86,13 +86,13 @@ ignore = [ ] "docs/*" = [ "INP001", # File {x} is part of an implicit namespace package. Add an `__init__.py` - "S101", # Use of assert detected - "T201", # `print` found +] +"docs/examples_gallery_in/*" = [ + "B018", # Found useless expression. Either assign it to a variable or remove it. ] "tests/*" = [ "INP001", # File {x} is part of an implicit namespace package. Add an `__init__.py` "S101", # Use of assert detected - "SLF001", # Private member accessed: `_X` ] "misc/brand/logo.ipynb" = [ "E501", # Line too long diff --git a/tests/unit/test_missing.py b/tests/unit/test_missing.py index 87966d28..4711dbb4 100644 --- a/tests/unit/test_missing.py +++ b/tests/unit/test_missing.py @@ -43,7 +43,7 @@ def test_reloading() -> None: import ridgeplot._missing as types_module from ridgeplot._missing import MISSING - missing1 = ridgeplot._missing.MISSING + missing1 = ridgeplot._missing.MISSING # noqa: SLF001 missing2 = types_module.MISSING missing3 = MISSING @@ -54,7 +54,7 @@ def test_reloading() -> None: missing1, missing2, missing3, - ridgeplot._missing.MISSING, + ridgeplot._missing.MISSING, # noqa: SLF001 types_module.MISSING, MISSING, ) @@ -64,7 +64,7 @@ def test_reloading() -> None: missing1, missing2, missing3, - ridgeplot._missing.MISSING, + ridgeplot._missing.MISSING, # noqa: SLF001 types_module.MISSING, MISSING, ) From e021ee2094c60db1c7169520eb560f38932b150f Mon Sep 17 00:00:00 2001 From: Tomas Pereira de Vasconcelos Date: Sun, 3 Nov 2024 23:54:25 +0000 Subject: [PATCH 10/11] Update `sphinx_gallery_conf` --- docs/conf.py | 11 +++++------ docs/examples_gallery_in/plot_probly.py | 2 ++ ruff.toml | 1 + tox.ini | 4 +++- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index e8371cbf..88731414 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -307,16 +307,15 @@ # -- sphinx-gallery config ------------------------------------------------------------------------- -import plotly.io as pio # noqa: E402 -from plotly.io._sg_scraper import plotly_sg_scraper # noqa: E402 - -pio.renderers.default = "sphinx_gallery_png" sphinx_gallery_conf = { "examples_dirs": "examples_gallery_in", "gallery_dirs": "examples_gallery_out", - "run_stale_examples": False, + "run_stale_examples": True, "download_all_examples": False, - "image_scrapers": (plotly_sg_scraper,), + "image_scrapers": ("plotly.io._sg_scraper.plotly_sg_scraper",), + "show_memory": False, + "show_signature": False, + "min_reported_time": 6, } # -- sphinx-paramlinks ----------------------------------------------------------------------------- diff --git a/docs/examples_gallery_in/plot_probly.py b/docs/examples_gallery_in/plot_probly.py index 9fc1cfed..888db808 100644 --- a/docs/examples_gallery_in/plot_probly.py +++ b/docs/examples_gallery_in/plot_probly.py @@ -19,6 +19,7 @@ from ridgeplot import ridgeplot from ridgeplot.datasets import load_probly +# %% # Load the probly dataset df = load_probly() @@ -76,5 +77,6 @@ showlegend=False, ) +# %% # Show us the work! fig diff --git a/ruff.toml b/ruff.toml index ac51752e..67ddc44d 100644 --- a/ruff.toml +++ b/ruff.toml @@ -89,6 +89,7 @@ ignore = [ ] "docs/examples_gallery_in/*" = [ "B018", # Found useless expression. Either assign it to a variable or remove it. + "T201", # `print` found ] "tests/*" = [ "INP001", # File {x} is part of an implicit namespace package. Add an `__init__.py` diff --git a/tox.ini b/tox.ini index 6196182f..742828fe 100644 --- a/tox.ini +++ b/tox.ini @@ -84,9 +84,11 @@ setenv = {[testenv]setenv} PYTHONPATH={env:PYTHONPATH}{:}{toxinidir}/cicd_utils deps = -r requirements/docs.txt -allowlist_externals = make +allowlist_externals = make, rm commands = make --directory=docs clean + rm -rf docs/examples_gallery_out/ + rm -f docs/sg_execution_times.rst live: make --directory=docs livehtml static: make --directory=docs html python "cicd_utils/cicd/scripts/open_in_browser.py" "docs/build/html/index.html" From 13d2c496c39a01ce4bf44d8896eb422d54ab0aaa Mon Sep 17 00:00:00 2001 From: Tomas Pereira de Vasconcelos Date: Mon, 4 Nov 2024 00:13:55 +0000 Subject: [PATCH 11/11] Add `rename_plotly_io_show` as a Sphinx `builder-inited` hook --- docs/conf.py | 16 ++++++++++++++++ docs/examples_gallery_in/plot_probly.py | 3 ++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index 88731414..06e286be 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -381,9 +381,25 @@ def _fix_html_charts() -> None: end_of_file_fixer(files) +def rename_plotly_io_show() -> None: + """Rename usages of `plotly.io.show` to `fig.show`.""" + from pathlib import Path + + for file in Path("examples_gallery_out/").iterdir(): + if file.suffix not in {".py", ".rst", ".ipynb"}: + continue + new_lines = [] + for line in file.read_text().split("\n"): + if "import plotly.io as pio" in line: + continue + new_lines.append(line.replace("pio.show(fig)", "fig.show()")) + file.write_text("\n".join(new_lines)) + + def setup(app: Sphinx) -> None: compile_plotly_charts() # app.connect("html-page-context", register_jinja_functions) + app.connect("builder-inited", lambda *_: rename_plotly_io_show()) app.connect("build-finished", lambda *_: _fix_generated_public_api_rst()) app.connect("build-finished", lambda *_: _fix_html_charts()) diff --git a/docs/examples_gallery_in/plot_probly.py b/docs/examples_gallery_in/plot_probly.py index 888db808..a9f31c2b 100644 --- a/docs/examples_gallery_in/plot_probly.py +++ b/docs/examples_gallery_in/plot_probly.py @@ -15,6 +15,7 @@ from __future__ import annotations import numpy as np +import plotly.io as pio from ridgeplot import ridgeplot from ridgeplot.datasets import load_probly @@ -79,4 +80,4 @@ # %% # Show us the work! -fig +pio.show(fig)