From c223a9ed61f7dd0c7b0a757cb931eaec8a52ee91 Mon Sep 17 00:00:00 2001 From: Fabi <38692350+fgerschwiler@users.noreply.github.com> Date: Tue, 20 Apr 2021 21:37:30 +0200 Subject: [PATCH] docs: access zitadel apis (#1627) * doc: access zitadel apis * doc: access zitadel apis * doc: swagger --- docs/docs/apis/apis.md | 5 + docs/docs/apis/openidoauth/scopes.md | 2 +- docs/docs/guides/access-zitadel-apis.md | 132 ++++++++++++++++++++ docs/docs/guides/serviceusers.md | 2 +- docs/docs/manuals/admin-managers.md | 31 +++++ docs/sidebars.js | 7 +- docs/static/img/console_org_manager_add.gif | Bin 0 -> 2459053 bytes 7 files changed, 176 insertions(+), 3 deletions(-) create mode 100644 docs/docs/guides/access-zitadel-apis.md create mode 100644 docs/docs/manuals/admin-managers.md create mode 100644 docs/static/img/console_org_manager_add.gif diff --git a/docs/docs/apis/apis.md b/docs/docs/apis/apis.md index f11ad27f5f..052c239afa 100644 --- a/docs/docs/apis/apis.md +++ b/docs/docs/apis/apis.md @@ -6,6 +6,11 @@ All of our APIs are generated by proto defintions. You can find all the proto de > More about [Protocol Buffer](https://developers.google.com/protocol-buffers) +## Swagger Documentation + +We provide some json files for the swagger documentation of our APIs with the following link: [https://api.zitadel.ch/openapi/v2/swagger/](https://api.zitadel.ch/openapi/v2/swagger/) +The easiest way to have a look at them is, to import them in the [Swagger Editor](https://editor.swagger.io/) + ## Authentication API aka Auth The authentication API (aka Auth API) is used for all operations on the currently logged in user. diff --git a/docs/docs/apis/openidoauth/scopes.md b/docs/docs/apis/openidoauth/scopes.md index 604fe7ec01..6f18f837d6 100644 --- a/docs/docs/apis/openidoauth/scopes.md +++ b/docs/docs/apis/openidoauth/scopes.md @@ -26,6 +26,6 @@ In addition to the standard compliant scopes we utilize the following scopes. | urn:zitadel:iam:org:project:role:{rolename} | `urn:zitadel:iam:org:project:role:user` | By using this scope a client can request the claim urn:zitadel:iam:roles:rolename} to be asserted when possible. As an alternative approach you can enable all roles to be asserted from the [project](../../guides/projects) a client belongs to. | | urn:zitadel:iam:org:domain:primary:{domainname} | `urn:zitadel:iam:org:domain:primary:acme.ch` | When requesting this scope **ZITADEL** will enforce that the user is a member of the selected organization. If the organization does not exist a failure is displayed | | urn:zitadel:iam:role:{rolename} | | | -| urn:zitadel:iam:org:project:id:{projectid}:aud | ZITADEL's Project id is `urn:zitadel:iam:org:project:id:69234237810729019:aud` | By adding this scope, the requested projectid will be added to the audience of the access and id token | +| `urn:zitadel:iam:org:project:id:{projectid}:aud` | ZITADEL's Project id is `urn:zitadel:iam:org:project:id:69234237810729019:aud` | By adding this scope, the requested projectid will be added to the audience of the access and id token | > If access to ZITADEL's API's is needed with a service user the scope `urn:zitadel:iam:org:project:id:69234237810729019:aud` needs to be used with the JWT Profile request diff --git a/docs/docs/guides/access-zitadel-apis.md b/docs/docs/guides/access-zitadel-apis.md new file mode 100644 index 0000000000..bab38b2a42 --- /dev/null +++ b/docs/docs/guides/access-zitadel-apis.md @@ -0,0 +1,132 @@ +--- +title: Access ZITADEL APIs +--- + +
Description | +Learn how to authorize Service Users to access ZITADEL APIs. | +
Learning Outcomes | +
+ In this module you will:
+
|
+
Prerequisites | +
+
|
+
)dx!GI6}Ur1%kjQLWyj-h z6BizGwwZ4q(qGEC=^4M9r~%7$Y)Jt=kR!-kV9Js1qQQY~12T}K;^P{##&OeTp8fvs z{dz-q^RK?)L} z<5Fl&j|n+KM~_J`UAf0N>hZv%O+$#Lu3cM_>uN^F($RC)$oa@~hC;VFQ|Afm8!XDq z oWaY0-J4x=@B0Fj7w0Ao>dMmzr*$FGYs`#9m@=PW^8}cmGbH|F5SsK-H z7#_7&hbO7*Mn^R=8k13sk-~|GVZ(F|TNkGI`i_^zVdZsKGp3cFua~q>#IIMK=>nT) zt`7q+gk^s|{yX?E69_p`CYQV$7&4W7*k6@IKi=K&Xxzu+e(j7T4QA8G#fO|?9FjCj zVfp3a;~j>QsW7Lkfo*jC+`G uFyBb&Ilq31RKS+rW*#%&Q&j$LLl zMk|i8&cla-$*VV3|A{3@GgzTIYSPGhE06lmt-Ro4r9k%&8Oj#}Qasbdp;g_Rha(fX z+Ag7Z*!ZIfx;8{DBAp} ;s%-1lp;d zvdYAj!Y^^dV}DGHSiG$UkFp!Mr_Uu936@5yvi@c_T)UhVm=qp!N!8BWQYjXhi5~O( zU7K|(W~-M7DD`kUh!hm$KP4SNkAHqo6pA Ab~KQ9}g#o70Miky4tQbSZI?X#yjSU=l~A z>87=4SPy-- hFP${ )uU33gy<2vkvxs9c@?uR8SNd$12HgMX z56V9Os9*gllPaANPh%s6L3uzDb(Ww?gjvn~YuAQy HR4+%A?g822T!BNKQLOKk~K$9aSyrS7LR*H?kx zd=GYlPR0n&{T^*7sw?LsEe60HB&IoC7!{%6K` SLQ;Qv&aWxU`U6JQSseUaWUq+i>-}snIPjN|C`6ubae8)f3;vS1U(%MZV@L z$3e)=UQGJRjz117Aec0dRf#RfqqxiESki*`$5|q{R0P4|Rj>|kFPn)uo_6vqevwaa zpQ?Ezc6xx94jO4;esds3rx}8W)g*8EEHAqEQI_P{=V&Wu1}qV}bb_N(?+Cq`Xx9b{ zQmLDpCazHr717o`jiBGtPlP<8P@9zC$}35zW;PcpjN$rCw^Tu}r7yh `U?|I!&y15lf)7x(!B-WCGP& T4VXOZgr2TTd^6?<8{b4<*9W^hBzMKnsxGrvgyciEc-LF2}-vpge z1_Q_-EY{%NFTtm2!OxJvPwj#UOM-9y1`|+)kTnKV35QTLhAcPeSWH@6cX+!g;K9;B z8K;C5i7H(6xTBEJoK9<4v0RRqlmOV(%M-ss1Ka2n?`91TVupR~g8!-3u;`5`*E><; zHFhR`LH1Bajz6M`r}zSTM8r~Bc)Ylgu!z1Y%orjw%1+@dY*H&*!YmM$SEQq$H&ou% zy*&r2XKPl#>l8bKr?}>sVM~-g=dRb_nP`R&wIeL=Cx(%Eh6{T}>PJQSM8(*VL2iij z(8WZL%tXy~`X$9*VmX}{#4GhoTV)0V05d(I2!B1eO$Frmva#Aq z-Qa^~e9LTYe?}$v?mB<9Nnjb!{$LRqTmp@!@HZEV#rLInT5afL=N?=_HG1WJ!|Z&U z`i-jT+f~swn!#_B|Gw2v8gF4)(l?S1VPgg&@$7tD9#dWFbNqt!xuny8W^4Qnv{!T> ztJfoipQBw;Tpd<(T>_RD6u;rW680^Z3Pmbl cA $31C}c_Z>GUA?u?TDY1v3 zcXYIVdaO@+(U0_!rt}wl-|^3)u-3oudVK-demrvx#oqBVo%79k3yYe2;RVK1EY85J z_N=}24Eqk`=zppI0W^waV4o%R?Pb<{ClxI5qIeePbVFFoYoER5 O{1?CajbbU zv`N zuRa*A zDV5N(?m29OAFmsK;-kYUqTcsbnPThfs+S6Hvqo=S4PaRN6zyM&XI(22Tl;pnc4DVi z;J#K=6d|sRkTFDn{Siv95Gt=~-)A6HIcnAL5!wz2&3lBhVVy>4-A9f(lh`^v wknrRR)(=QpUW7pXrND)}9!nPbCE#eEsc-1k*CYbcrLdONtx6 ztoZm7<3?5Ne!q$qDAyn)sfui0BTU=N$^X};IrJmTJ61*rj;#WJmf3;R((%$7j!B;$ zyNxd#Q|d14<%Sd0-=tsT8=9lzKBUy_#Po$*A@lbTp17qu(QkdnU3?MtAM#)FaYVat zgW(i$ZIr}VG}VBiA{O~+Y^T1fyEkF2JN^mphY=rq`CIc}f>=A$%ozB3PpYs?Tri9~ zfEf~?LCS3Fx=kRGoQUno4cU{4#Q3EzI^q{r--L*etbsEmPEG;2x* %1}szMEwsSH<_4c2iEH^mJ% zpaxr@!_y67eTF&)%!2F}?0d4D2YudL1K#t 94DJ)6eeJuJ%X=rLdpfa=;_ilw }^NQ@P|_K2|LT*(1@2vANo zS4K@yo=ag*+#|)o9AB5~(AbyF7w=$#)>Ovn#lqNr!m@@H+>6B~&| k3(oL%dz+tIA2>a2Ixtgq^v`|_;M@|??ar2o;J9~Uyxaqi2*TvRJE zW*HeVicB~{20Win$WW7Nb>qix@{4D<$D2=5Mbzo2v)q$o*K$7LeL^lYHYghAF6X)v zP=qwJG0`x**&^>G_u=AyqOE~lI5BRzhGo)$Nj_Pjte7q {?t<2_PYl6QQw~Zv16fo6F$7=i9^1mjmWR8U*(uSIE(P_`|$Q_TPZO zzwXC>{a@_*N$h@>K!%#^Mx$wVBinYP)pox;?#6xn3tQQZ;@ jmNxv%b!l3trwL*tjnWb@lg@s_UI!Zf3!d!qqjy&1T~FVdR(Xz=_l# z5YgL`Gdb)DJnYLpB=p(>c`Vac1KO} %)jB53ivhs`?efk=GMoV|zNf7Wx^6b^gkSX4p z&$@M4+rCBmLIL&$F8b}kXkEycLLj*ci!Gn%X$Q{NHJmSI1d(qp`!qI(0xt)$FTw4X zN<1 @HP(ySaXYW6bN|I_##2S9OVsUgO zeM9>9i2U6}t_wQC)cVhZfz4N0DNLK})l}ED1 %pN8+#R$CZ!ggy<7G^d P^><*iH}2It8%!7=9S-1P zs+egpZ7Zd4X}>Thl9R^3qDq=pfo(B<$P)D4$4u9@)5w#Jr;zv4`J`2(oFy1>r^7yl zqf<^>9&^P$S!UGm;t21WW1>oPR88Jr*U_NfVYxoyUf0R!xBJm-ufLwNNt^$}H5N+G z#jGprIi*5?zN UeiJM}amS?qj{bhAtsKAB;6F=AW)reYvkM`QxRqU7JK1)F$@ZJ$I^9+u7v)_x0gO zuJesk>;3u4mLjQ8P>a~fMPF>?hjEk7{ pAd(;NIxTmPPF5Y_f&N~V?w~Xp9^H3$~ JRiGan;~gVW4v`ql1-JKmE6GH$|2tBR-)iD?F(uKQJe> zLJ|?8@%gYW5SM@ekL-oYyFXU$szQt57pfwg1@3C12R#>R;ul-)>XP@Em+I0_nLIRx zO#D^R#d5Z?Z+ZFY9G_3kfF4R%Za9yg|537BoL2g&R-4Q+D|3Vp){>Mz(#e&gse|a6 zs?N;lo0F%^YB^-R(=+mJt<%%-eVCbpc#`WvEUmG;kX8wG@APd`xG3iBG9s=&+C (#cEjmRQ>$M(6xc-X34GTU4yaLs_NXb&-zvBit9m^kZHh8YlErBzlXV1 z&nt3$ fj>j5>KH&UI&3m^5qDoFO?b;xX}ovejcs zT}a$>T2HUlbJo;b+zV;@EJkaQvG;SG{AVQ(%UnNGvfEYnb7ReoFuGYE<&;&AoAtDx z&;9=X_$&TzH=`l&?w~YH!vCcC8QuM96J>kA`FPL@>T $p0 8k{(=TE7$V&c>jQP%65 zN<}1FbGiB|8(;IMwQn);dW)!-V*mNxLsrBSov(ZnKKa8Uz~*hPi0UWZr1Uv7!bY&V zN!8J-mRAu52=`K}xqbbUxh?lsWafvO7p-O%M3F^olx^H?N;~tKfJI`NdffXu=_fj~ zSn?^}gdZLv2eY+Unlxr2fE|%bu>4nw$!{W>8<9uYYA46`TQk;;ET4A9?t}c@ 9DD<2D#a#ziZ?)I?^&3*^MqX+%W3ShHH&Y#%^8dip!1K3mF}$uEYQ3w_ zBBJLsn^NIj=U{U7Td(yxr84M> xSirynfPY1)5 z+1UnGl7wGfB1E{D6jlB2oZP-O8*K}wHH~{ZdE_39bSjw(M5-Q|*JT(VTg){_Jsf*= zFB+ew>b2}Jo%nuc4mqo*Y(0iJ`)%W|{%f0SJ1cY!JTWvy9qav GN*&gYT5VN9qsTv22fagj?TkC8cnvwk-XHs2SH0L~C_XO9-lDW zgw4yqpWB_)V$ zgP#2uQmc1MDJ-*QmHaoPdF+;2-LlR1<;RFw+u?LUP6VlQZl80uYv#I`t;pPuG4Fc! z?6ajb(x128jH%yyF^u_S1mes>i@xVl_N~ZL`c1@S>*v$Q+bK#eOhvbO6!NuxQuX#T z|MB>?SoUZSoUkxmsPL{(y?kFs)L^ D|2PXyX@VxN=j`&@`Xr>>+A5>KJ)li$&{#4kcV#!}@UBNlxqX`hLEf zaE`C1l ehy;nVX@;w;`abCd4IXMj!O{A<$dEoMsJK}g_vN^#~kkGJoLro=_+ zpVvErX}+U+5>PUprN6k(?#3f%J@N>bcjXhVqum28a1QR5Z|jBH9c3Mh$3^$`D&J4n zj-7nAY+cn|{XN%A>s1qEd|>nU?$4hWUWi!ZBPUz`&yS84LUhZ=;CBC&vo`P6o2-+d z4@y5(Gu_W0)8`srT(3Wubm;jTKG|R*wiU8`J8+VImZFZ@W=ZfJa$dQJLAUHkOZrWw znVc6$w(fEL^qZ|*x%%NOerUStJ3XF#(LgD<9DU@y@)W&t)B5c3B!Vtr!(DqpnFV#! zw{l&>6XdiU=zozv9 )n?7x?MeAV&zRO%_H<0)qcmQDw@O2;#~4jd~f zoJ=WP4=MbD4*ar?=hIRcn@#smJMTz4i9nsiZ#zlkq;rHN;FhoX=U*Krww) Eejv>rBEJnIuyhP8R8ET}W!>FA$#*kd2e=7Kjr^3nE%49J=|8WJTg+g#%>yJ-Xi_ zWW{@A-?wy&EOm>K$w_X>N*#7ffqJCndgR4=^zJ)2!{xZ*dK8m;lnQ#3L0RNmnIoOB zg!vwIXu^e(42xV>Lzo03sF&$=FXXih1lp?;F0U&m{}C! uw$DngZ)l*M`*rG^6uBLONBNtAJtsM&vje)-LGYIM-E`lJtv+Xh zen+x?w@j(s|JZ6vpC{%AcjyPV@P6;)e%H(o-Ua>si2i`&st-mA)|dT(m;*s%1Hm8# z)uqfZQ2IUiCC5kR!X|msL;2U4zrPd=7>5s_W6QvLaRZn*p_r_=v>*SIp(N>#^d>HW z<9oodBj7|a#Z(o=WGFu?Xdt9u@CRZry=O3^N0i%xfoWfn nQfasnGlP;2AJr4ip7&5WSvloem0?Mp z;d-m#z&)@BX4=t0{MQi@uwqY(RnLD!q2X}2U8kqkL%CyGx$| qGkER66~~I(yfqLPHOz*@ z cMjU+jBymsV=e zOBOCQWA8NMHZ;lOSo=AqXymo%RkdClYx(kPvDB5Ykh8Ecm9f@o#pP)+L}+ogPBCsz z@i1vI*3oLvD+k1V5Gd~#nCVBqo#BOIro)JEh`GX)PSxLEsfa#|yr0ol=Y6WoI>`e} zaBGBaXa#>W(tayHEep|kXRRZsI<4?o=Yz4%q5a4REB*#`EcMLv%bB7q>X< $5@lx6QW)c%4CMGzCEp4H)9|lGcz)3T&HT1HEMdKYPPLv`h0ee zKx;#6mTq*^Tz=NVc-F*m)>c*5Hh$I~qU-Qn?Ni~b!}ct+SJx&>7c`X~?V&+Xr*S1V z=ccMh7_FYLl{|Nw7^e}+MWyk+JXEYz&%bw0>`49nk@`4Fj|T@CEI!HgpD>HH0*Kc0 za8z`6M0%D_d`Us#N9d!!6zY?GQ#5LwiN6vxFb+nwX!D$E>(ER>-p%XEe 3jO;(Tvg2S z^(al{#aUdU2Horjb^i z;p0Ivwt?{g@`;w-MgP{h$HT>zBfSu;C9x|E^d*LXFhrp04}VlBP8H5PEFLRmu_0@z z@tw-B@!}9fWvF#&w0Eg~#;EbiNT^KbJ-xbElaBXP%*++ucTeLVOfiFHp`#-sqXar) zkeMabnPux4y(?ohq&yVMWxg?Bc_U((dIn;LrE6hrvfVqMQ#ZQpY2p%LP*AwCld^L7 z+2m+O_i%aT k8b;f) z-sh{;mIu=o8vVel@nCTyz<7R4&WL@0WU%-3zj%$ 5BH zn^^0cy$o32L&py>-eZl5^%}2;e_U0ar}Q#sCkiDhGAC{ue6>8kO=FO`yl#ACzKFSy zOBTg7fywnI3W-{GDm2+V)Gdl%VGP`0$~O5M9}22i$=o*2qEX`Nv!L6t$gZ2`q1fbP zw&da7 OlB?t2@V>QZV_Od=yGUI- z$}afkEVuR490NEBDrlD=OUl+Rj4aM}qkJH#KuI-Ss5Fy%orevCSvSYYfxJ-S60+ z?(*jaR_6Jbb#bLaK^?m`v VS3>Qu_j w5fbLIuj5*r =Kz%p=t(Oty~QIo$>4mAwp4 zi=V0(W-9wROsBId7;^tkTpo9xd7t9wIlC5}wwNSbXW4xjbBQw9^~ipeAcbs}hxRhN z_N{CJ$E*H=X5CkRd4wlNTX3`N(x2bBJU==8QsMd{ZTD5N>&>=Ve^lt>3#YpmHYHJ^ z3{FPgZbz(UZaHRdKO>xXpP#=;3uU%FVHr2SW#(sAPo8a|y}))?2Cb78Iq^SJMIY2V zCC~mz?%O`~azB%pxWv5>kvs|SUT>`bNHgm`d+1!HYs^X&!SL0=;dq9X3X9u$G-TIm z&dHux(qrz$rL4Ed!Yn3(lZR{q27{9-xZwz6E?gn#=z0Z1M$*11@Ss`ZN=N7l(%=Ab z_SE%u(5Lgrq*ZiAY$+9O8O~i9p#|m}Es5zg+Gt!!dCn|WH#@kN`ma@FB-T>IpJEDX zC@@nR^=}zhdYQCeLyNB+8@!x~lc&dGE8bW f*FnfyagnCrmwO z_!`a?g_&*QCN1g46@|ft#114pzp02}dbW*`aFbhjquF>fqZZ6c^>nr#AHA&Lw65zE zZF?MBd>bv~6t{XCSLyzK4xgykX`l9=AJ@gfnBJk_x__au`1ARrM<)u3lhdMLYV3ar z{k|c}CwOTq^Dj2|POTJ?n5tlpxIl~Z6bvo9b8q#~8;NtfY{#!JJig9i`mKgDOP*^I z;iwLT<}lx7@9gF#_<^YIKA=4cQeCoty5N}JBW(TYzNWj+x_a%L{a$sAJ_fJpV~Eju zS@O90uPl=G+kU1n3g$8k3_R1Z4jov2*<5_z9E2KZa2@y=F!
OMz?O5UEhjlJkFU zce(F87RqcgBWG1l*JyT}HP_r2bZ_6JUH+{9Twb{WhoNm=?Au^Rf%6mPq_ucsq*T-M z>?Yr`D AxgVdjX2FLfyt)AoHjP5Hd_jo4$3CP~t4{ZGjAyA{g+^^8m$D}( zvevX2PTowxWmw}lI#ix9>$KGDcX1wZaKmNR5W08#AnL +mwEyPlf=ND-^|Ip2Pff5UN+kz_ z$OAzU%uf~QqsbJZHG_dPPFk8|>947JnYHBjH>5M-WX#A6?HGF1NzQLJ!zkr%SHom? zYztuW?1OZP5;BcjNh&h)|0%w)eG5}QS~L}=8oT`~OhcQ8iWGgfPV_DM@hPvVDBZE< zUr~lRb~V71 &-PxJXUXwSXWn%vCLc=w6qP-j4y~YHu*)x3jM*(n^s1K2 zbg@roE6(s+U@Q3<^OF5ne!2lWycnL&URwHlfxWEqH~W*%S`+NKVNDyq9X_;>Ac#rc zq<+UFAtawBswM{UPe`}z!>1H*A$Dcbo%S_~3U9tzFn&%nd!;G-2n=7VFaiksKIW zlP^7IGtCi8C4SG{da-c8+19#m=-h@n_CINVz(A2=;G!_e 8blO~p)57qYniGV|IzMaY*F28vF46vUTO3Z>!-?; z_=S99%v`A{NuKh{N!JFh%SESQarb49)#o=$awm@7tG@R%x2t}nfx;^hgxSIy0RoSW zo8O+k__vk#O6}ivDo;hzS{BE#?`FycX9Pu^J@G+2 Dmh^D-(%oayr zoidqxIPvMRRe0I(OOCVdSEgd;{Tx5VE`~){#V+sIa#^mDjy{TC`{=r{+${R@l-xvT z3%2D)zBgF>mkc-EyF1V$6Gx2?(@8#DESgF_qHhj DWKp$^Z0D2@f7;f1^b5 z9g~d;jQ2E;;%OZb7B!y(^J~7GB%kCmkW1A^F^n{@#P@GeyT_p Cr{a%?iL zF`6xT vz6bdkYris9Bf{OO$wGz~=` zDxxFbCR1nFccrrOOhmpj^% t~w%#6PVm247|GFrA+ zL~)hW6Wx-F$e7q=e+_9BC8m^$ZF7)naG>wOxsbNSF6O=}T%#H_lExk;YC-8j*3X~5 zYrSVa&A|j&K34vC@Gla`#~uBoRGU6(2$0vLu}D4q$_O~$$zlD2E91DMv7 j-YU zh46&GBAFQ}Ih6us`edvi;VnZ0s}j9{r5Rw?n7z3I)=eXI6(6}{2tmR8fDN`nQxTqO5`(&>l6LtH zS+UTvy>9pZOxD-BBJ1say=J`G+8DHFxf6uL=nuPIO`B(hO*w}#>4)DR&)t6p9&wnV z*^wP2UR9CeF(f4}tzza0)v?P(*^T|h$C{}Dsq!o~zZS+u;gzI#E(_+ehRDg7dPISE z`6q2dq`?e36K2aAfoXFoImKlzZZFQW)rL}%q0~t37V{@xFuK Z(6GsrYdi@9tauo-C|zuPj~058UFBqbBs3yrBIDvlZXua`xW{Te*mwYuR^n_8Y`E zy^ax*h*gn#eUw~0q!QWgg>t5OnmPUCU@}2X{M6p&A|2V-N1&wvOsC(j+zq959b{Gc zb7ZdLI|#SEemo7}J6tF7{@#Xu#mpDQ6}LfN+StqDbrxj~-MAb%m*{gK5lHg|ZLjOs zNhol^f;hL{Jf+6PD@nR~ld;8gzn7urRP*VsS==@8k48BB{5?(KN3MoSEn^~#Z(lff zc$0ibY`6u|pC61H`cCH&ESF?lL`X#mUgizOyLYg&^9Wxwjef@7`+26KVUY_hz>Re< zIf|K;6S%90@ *3yPQhyi0H>mslIz>uZhcPFD`iHfJ0%WqkWW)i^Bxq zx)_i!(R`|(dRdv$_O8f5{L@Fn|KQ-YXN4opq49y=Y!|j*P3*FR^+}3Ev8Vvz59g7c zw*SJc7c&X-#3yxk!@&g=^!ZKKa;vnlV8E{IYAWN*Hn;ZC!f}OQ%PQB2&!6UzCuK8k zH)V#~{FICj72Jw;EcDAqqLSXJM2g{ZNvq6Dida0{Jq`GYVcKG=sM&^2u8Omb>-+V` zKA(PpF;`d;YJ-wa3*rY#Iq8~8;dT}oF{HlGpF(Z(xBHITI$dPG;>6Ihl*tZdryjoa zZui0DolSnfKS4zWvoqvP>;FWozZvjXcTQxsG}|-#|A{c#Z?56^sw(XBp$( `% z&0J&Z 6paO<%L&!5ZJi$@1%#)GPlqC)+})JNYI-{~uOPuG??U4N8$;uVBi zrsw%LpdEN_YTzD?zAW?Iun^nenV#uv8upcR@VFqJbI)dk`%P2^Hk6}V4nFeSBmdA| z*VBo&a@!HNe<~{&l&G%>qCuIz%0PBVww)!J1~l7??k c&Hcns-f@?+uGbr*Ooprb&gTQ`p$qhPJ;*H@HmFT%Xus<>0({ zgZniHH#JARn&R^%_@pYQvnj`gX;7nMt)HIqxmQ~E@|)+`FoH-q!t*z$hdD1E*NAq^ z2sd(`)8-Pfqv?tHbBVFdNoCea>vKp$M|9)}%&L}R9nIrh*W*6tMunJ1N6=G$&805- zPMJ#ol35;r8ju6amcX(V4h;>(^0Zha+ftY4QWwWAJ>5#EW3U445k39mx@e1x183H? zh_OQ^Hp^ioRfRdIM*n3tJ(Cwbvszx 7zWm_8!TQHtl11~3i69t zIUIRw9DNL&T^Ya|GYmh&RY(X2s+$KD#&f;F^VrRmjB%^qnFlcP+*$D7<#EWZiTqH1 zU-+t-Ere5dlhc4v&?H~b4|j*0pgSNR9FZ>+W10JnQTQw4`&7&K+4=A58AaRjMfx`1 z59Nzap&7--7$s&cC06n!t{ElIEwx_1L_K8xhqI+$Y@O0rJ+Ofu`9K3W0A&ZghHAlU zwXN5I239(%l*ys|UREDgx+TAd=6GO(LkoEB!al4#eM3wBi;Dp+PD4(Gbx&<2GrOho z9;CKlCB3tyx(|}M25B4@sB>>=2yW>gt=3xSYdJA$a~En45ehEn>2UwZ{_o}KF;sjh zR4Ltx=Y^$}V*<;Yd^)FX$YU5sK@zt8T56rPieRCk1d~x)p^?dA>*N;=RJev5fr;0M z&Y`twQG_YGyx9tq83nT;0rSA?B6Arm3&9 vZ|4JAK zDvcT$#{ZR+(&GtBau;{rmiYG&hWE?%9x~)*%%1f&_9iS27Pg-D#hy0B-cEnLy;yv{ z7W<^ylGJS&71 !(Ku8*9EO%2=O0|8_T; za;Y1VDw8K>c?aG!NXPb9DDhV-3D+$_du)ysSeo4Bi+k-#__2NoEQyL_jecZ|O5csj zvy0BQ`{Jf@LT#<_SfJ6zsyW3PH^%yvVpScWNob>&SF;LuZ>nIA{oyVTtc6|t99_&) zVP#8H%+rQ_-5Sb+!E*EQr(N<(xTka(Ig{#wUD}RaeCS^M5bKY~Pd~o?`ccG|Ua^;! z%{FkjN}*qpsl}Q#_6bm9%6>n~eYe4(5z42AP3eKbyYRG0aV_WN%5~fyQ6p=Pf!L;@Lyf~ z81Zjm4>0`i&f7_KW}TyK8a2=7V8CDC|xaq-%^=+e=NlP@f#)heJlTE|LT z`48B4O4*M~YXmvk&N&b(rR^`u+O8csu@BpKu>2SjhOF6(B+9xKpv5YnY~;qu`i7N0 zlM4g2n_EcIN+_F-Iwe5~PoiPY&R<@<7#5=+Dbo2Hu5Wt!%6i7iMkJUbopyT)SVf#l z JP$k7Dr3V<@;{NscC8lux}Zk5q_|f`7`8;Zl$JG+nbd{d;dlOC_PJC_%|e z@G}<-?-wN*TZ05P%lA+&l&oT^wB7eok=9T}w^9a+)oZ39h~uv`oAMdAUn{!htJhp> z=jCfVM{8P+Yb4z94A$r14rZ9NC=!DM783XtIyzOht$Umq>6pD@!E}iJ#h Xy eY&^;oR;t`*{JN8^q<`Rcs0ymAI5CL5?)0V#7j)*YHp5Z{ZqfG4epdg%4R+e zP`o{(c*8}`Q!aLHM$W<)qX3LCms9xjQ8lwF9&v5FbXvDKqE>c%nZ##wWQV+FeT` +>|+2rPNbV%W10kGEvHu{LcU~4 z>;nEa-(E7P)_};Nm6@}PgtLR ?&k5j8gPx6jBoef+5Y?+^#Vf+hEXK+~gZ4{W2pXmMm4^hN08BwRy z9p>B5n>7>~6xUe_30nE%k%XOzag%5_XJI0`crMXpn5c?z1wQKJ{V&X&lDALUV4*z7 zF!2G -kcRk;-$RZY{f;qij(__ltGaZY zujMZ-QZ mFBmKh&)49a?ytOL_A5>>Iy8mg?;6!#vx z#N~cmw|MKZmoy&T?iXzr!h~UIJ}^Sxz-e^FmDY)_ez?s^Hm7mjXP5J1`Hsz@2+OH@ z@zXU&ZrFdx`QE+Jc|(wcl`#e+&2`KDe*l(1X}>F2#P9kpRwuxhH#Jbyw#MA%79asB z*hB9&u@rDPO4>u|{KB4-L9jeHagqY?HnCDGqf_5GhQBXyCPD9B#2A<>MR0hS`yvJt zZ}eum_HO$1YI>)8Cif;V1dDnEle(!l@Tq&J5Xf;wQ)~KCbT-{)d3Qk*oVR=9?>{7B zNc-ZHd4bt#rP|)Y+$vQUFhBsOda0wjvXA<*Cp)u0yR%0-vQK-ndmT}m3h?d+AY(Xw zVDnV}gGDg$Kah1(cQ&{uwKlT>6Sso|kb>l<|7|eAdlK|wD{MmAmI&l-0ddw6w~O^Z zponieall8wZIXh5_+l{mVnz6(EeJ1hwn7w3aap5zD`-L5(n{LmQUYvn5=5~rXu)l6 zc2e8ICfsIK6FJHYx&0JiTbHoQzje3CwR_ifE~af)N@rxK>y-L+f03+Nazd1S&ERRq z1o|+ff?&!gy~->7>`pdxe~fP;Oad^qoxiU)ABCNFaoZq3UN {mGN|YX7c9L@|m4MQ=-PZ6A!B13;J`2)P4*Z^mg9x57O$@df*XEhx;zJGxgV zK~j$a5J*5hyLr@4M1uQfe%$65_+~9x|9LqIc;dWhe)sq12YBdnKIj8@`~5@!OaXXz zE$fH(M3eU~nD^Iq0T;}0uwzC^{)5(N_LQRZuvh66 (JYr+HN;wcacKNp`R{9|bS6{Y8Mb;s n-IKqP4OFG+$;|27%4^^YN$Bm)x^Bt>vxM1%iGk@+X3 zpuJxOL0SwsQe;VzCrzeAxl(0ImM>k#ggH}YO`11t=ES*EXHT9#eFg #+YDevCA5|9QqI#_UF!iNnfM!Z;YW5$miM}|CEa%IYwEoYV~g>z>h2@oXsT<~+~ z(V{`4CY}29Xp9kUwMzg%b!@<`>~Tb$K=tn40RGwQE#);x2@|ELjzC=aKU<`OC$RTi z0`ZLYT5 &I=KQ;x4XaCn~v@L(L2S!Lj#vYmWq&WL$ z6oClht(Jchm bmtt+nqiw2(p!H`H)74}Ht9w+dC0fJ6~d>~KU5 zKU@*S6ID#HMHxek(Z(5X|Ev+m9d+yxMjn6kkwqb295TowjZCu0C0%TiMkJYhQb{Ls zgpx`irz9~51(>L!%ci;vGb%B^^zx~usOTb1r_F4f7J(AEP z<+$fG(oI+?BAD)>V>emIp$H>tj|^6bmB1rX5|}Tfi4uA+32-OUBqD~kIOw11ij(dm zf%ZLUlYs#9cE4lM|80jL;%t$EypJ>jOkd3)#!TXfDW2HkiZQ-e 7|u! zn(3#VjvDI7s^hG>(2z(iYpk{In(MC<$eOn#q(E zb{GyV!J&9|-J1}!??vL+in zhR}U5fi3Rd2sVbW>&TX@iQ7a9e;Bf_+4*+EZ3}^N3k^L4_ xVzIo%F|Bw6m;;EnBdg-y}{d(=Q2Y!3+yHB3`@xdow{PNL1U;XIKXFq-S*N0yI z>cfZM{`tR;pZ@mouYdjk6tDy;fXPf`D&PUdgr+LAsZ9!0pi|bwC$7xNPlOuO1udAt zKMfF3`pe(__V>R2@h^lP^j`@<_`wm15QQr=AqiF3LK()8h9|5c3~iW09PW^XH|(Jf zf5^iZ29bzEG-3*YctjT>QHV?|q7%<21ub+&3lnS4FCKT2_8^2Z4hu=$BH~4hBnKwN znwl7m^F@n9K|fM+ x(=j&-DC5*84$uI!PIQqf}{0V$QS*d;B4+*w@^X_vmx zMG1Cv|KuGX8A(V^Qj(RV RNtU~b0E~o}gb2{4AYc^REfdws*;qtu#ET`1B*4pIF0YmaNkB47q9FwAk~b14 zW{O^Uq19}2l-<;(H#f8+69p5O!Yt=G$(hb Js<%SXeI(qG%9QfnH56zCOP$qf>!9$ohleo z4Q5bi2~a>S59&{q4s@jkZD~qb8dI0b6s9w^X-#qZQk~Ltr#J0sPI($sp9&SILp5qq z|B?Drr4n_im*dQ@$S5%&9OoDRh!E}=(gsX!Rg+!i>Q}uQRlC5=R zDI-}RW7d_K*^I6@t1Dgdq)1PoQLKF>>tFpESilZeu!SY;NUByWDS!=bjrCge94k%L zkbxAoXhkawH@0Cm5qfSb<`O|0%+EfScdrbs4`-P~D6aOjaid#uSUW@2wwAN9tu1O} zi(A@0akomeEpLD8TipgXx5VR35F}tg lfZ23Q@P6 zEpdBWTJ@K!+Y4X!hL^tJwQqXmo8R@$SB6sbm0 f%9AXfUSj3v_OeZI_ zniQjE#cmT(K| {+HBKP&m{&f=RgrUyWFqhQ$4YK8 zlaCDLAwSv3Q;st6P9uZ?GMAzb?edtw{ACE siiw_H&;Bz2rX&I?z-ubesvDXhSO+(TgULuYg5jNtbxim8SHiEe%I0 zc#Od+bF0Zd&DOWVwZb|xb -RKp7783 zmortowXGrkaEV8p;*y?#gr|aW2uByx6ZUw`U 8)44pK4}IrF2l~-}o^+xked$U!y3=_Y%1~;#OHT2! zxUZh|Fk_v}UAHI&K^pdtj-60cSU^D%%Jio dD_Xm$X?ty=M;j7-U%Z2E; z!~NxRKM>v2b-ubsIu?_r9W~tz{_lssd*5qc;n(MW?t9<;?1vxx+b6&G&p&?i$B^Mt z$l~bXAA0%6pZ>E}fP~T1V8?HK%p&{v|3l7Y3W*C|t^N#f{t)m06)*ue>BOYK#WtkH zdPl`pL;~%M&lv3j2hGtMtphbs=sXb5HZTM+kOMz314Z!A|4z^ZQxFA9@XEGp3L;AD zl#lCbu*|$pO>XAQ)-BCIstVq1OOikVSnvf`kOW8Y2$iq}i!ce95D8WA3760arLYRA z@Cuy}3!_jAQ84fp@Cz9b48<@EmnM%WApayU4MR;0{g2c@uGDgd3#MQU>5vTT@DA-T z(@HP(dX4yat!rG*_0~`Pu&)rm5B-{_*$D9v)o&5g&k!Gx5g~C9%TKjFgEoX<3XadY zkk9yRFe=Wi|I}?1MQRF&@H-O9`r=6vSuqk_krENn5n-_rE3p=1(H3d(7IiTfdGYt! z&*AVe81qmViE$WLV#}bbk0R{T77PGCZjfN67^Tq||EIAUsqtuD?g2$9=D2Yiy)jkv zE*xDe@9qvq#4)Ep@Ere+9Q#fk-H{#Fu^r*@9m`3U0%+^BZU*sjADM3%zmB8)1ndNb z3DWKq=`kJ=@*ov*9vM;|9Wo&s5+WaRAty2-DN-VX$qTR18aZ+!J@N~cV1Uk$DIl*T z_wOV}O#r6?4(Fl^D1q}jGA2KACS|fFPht=KkPrXR*LtxPKL{i^f+N(1Y>09wgK~L@ z@+gh6D3g*Yk5VX`5-Oh(DFJa3zsvTl5*M>_7q_w}Ur`ppQY&{4fV513$gLB(jO(n9 z |=@5)Ua)6St)7a7 IC50%*%Pkp|P!q1N&_%|sN< zY);~Y0=UZ{t#CMhb2p1qHM#RUgOfPHGdsmIJh#(4yHh*UvpmW3Je|t@A}uuKQ#9wZ zJ~ac3l3)rbK`qsa4IfPMDDMr`Vt|ImJ`I#U5%fS?4k!DtL3c7I3-d3Br#5@%dz2{< zjVnWc=R!3U*gABU+DI@_ND%`wLI=|;|3x%KO>{3&l)WM=0fb-)mJ=<{(i5w$8KbLC zmOuegF#&pX*j7|UOLRyHlSo_CNF`KAi*!kklu45`NKxY#6*OY-b4sl=K|OK;rT|CN zs__6x<0edJI)Mt7;7ZLDOV2b-Cn+1dk>+IXO}p_T57HckX%t9-6j;G |MVDUfES%-8EkAbzbkaUNtKuCS-anL<*$k63HMTq+n1TLJEYH z6zYW(5&{UeU=#*cKS%+_^n(?oC}9ycPY2dRTTe7#>qJ2aD?xT-S@cPflw_5(Nt+aG z+~!9WiUODb+-kHrlkXGDWC<1kQ5;k!by8(b)=5zoN>8?AgLY_B_Gf*zXn~e!FK3FL zN&=z)YNa-6sdj3uwra8VYOS_ds&;v}R%*T0YQwf`t3zzdmTbQ^YR49A&z5b|7BJdY zZOis+cY;?FKoUx4SPf!||4Ij7*JD_ZBLbp;3^d_5O5$t^b`z?@Aq*E>9oJhAPysfL zGD#9lzZ9;}WC{xKaXA-qJNI)5j5HyT0x#q=OSe7OlhA+(ppHWVo{2q1p wbwO~MWDR#}MDm#{Jjuv`IbZN7gX}kD~g_euM z*o68}OL_-UhEM<&K!Cb;X3L~0mVg3C)ua%mdFGOa@feJac8rm>k8jwIy_k>xc#s2m zj|~}pr1XVHB7-wRS$lO**G3{DVhrRZVaEU@9E7sa=7RSlcNJEVV>pyQOewS!8A0)s z$BZ)NP$@*Yl|lKHU3oJU3+BGj=HRrJKcnWbcUE~$Hy#C=K!i{GwKqWGd?Uh`j}t?- z;Bk;(45~;(|9t6~c{%8ocbZ| b`U5|ORx>#fjS&R?4qV?FMRT`z^O| 4}h2nx#(~kZT&J1-YbcdZl&xrV05lLvw(eCToDzp&L4>k$S0>x~ZAkt3-DKSu8ap zkgD kNy0bz1vOOEKcW<3W`?Nz_vq^ikQCqZAyQg70vtxUO5*e~>+p%%`wskwV zd3(2Qf=zK5%Ys{%g`1oDd7qKno*DI@kGr{<`?>u&x|18ar(3$6+q$Xyx~qG;wY$5s z`@50uuzP#FeVe?^yS&l+yw%$zW|(Iyn Ti61#iNEJi>)M$ccQ& zjXdJo`@NMs!4EvZF?)*(+{qEVzX!a^qnyB-9Lt$}%c=aztvt)WoXe-&zH9r)&AiCb z{LIxn&Ds2tfZI*m)RyBsm%$0U?VP*)Zn^K=yZ0Qt@x0Fg{m%uR&j;Pl3H{IwJ<$Ul z(HH&c#JkNQea$63(kXq?EgdnEoU%1N%)1=Sy|TWgJk+(k)5ToWIepAc-OE+o(^ Iw zofYns6k1{4>zxcfx?}mBWBnaN`yJr_{X+>}rcXUWp?ub1{orH0;TitnSKZYiUg2e3 z;v=5aF@E7MKH$n6GVJ4YKtAL{UN+Rd %kV}xt!X;7RG(Z zOjXbteNIDs=L_BE8U5#lKIn;F(TCpXiyr8ae(9CI>5o33${jIqhqCUJktyrmufDQK zz9_IIGSKEHzJBFZe(c4*?8!dm-QB%w*kD9nc239bonznqJv4}eArOa|{|7$cA!{O< z#dQmwH}n>AI!EsbKjT*v)E$1~E8g%EpW++e;vIkDA%F52U-Bzo@gM*4iD$tt!(U{g zJ+|PeVPX@0!5{8@Ao4{pNZ+7gf^-T(5`2O6&3^XJp7w3O_7nTpt@^@+{X@2(K|&&N zlLMNF1GZLIQdXxtwx;fl`^YFZ=YwQ*6qiPzf7`L$(3HK~uiyH?o%_YT3d_3tZ$5t4 z>DtAA`^W$M)&Kj~-~8GC{oOzQYdq=$BLWTr811F1cop=)UR?kpK@x#v{ 7wv74|MJgcl2#Z0u^MR4 zmc4~H1^OHa^rz6EM28wJiu9<`q)eAOZ3^|N)TmUaTCIxps@AMrw|eag_N&;iWXGB< zi}tMAv~1V9Z439U+_-e-+O3QCuHL+S_xkM%_^;r=gwINlg7`3k1V|DrZv5CWW66*w zN4_j@%fBrHVYYi|%ik6N31CW@oB*}z#;F@y^q3mxKZ^EHwvy7y9vLYSIr}2Dr8eT) zq{#UDmn1kDBq+CR%9xwXCX`Yvwjvc}i$5|69s>8C#I|O8r&mh`lG<_t^sUdQugqS3 zeE9F(w_iNpzWn<5`LFk%Uw`-g7n=kE?l)k71R}^FeF*{x|KWoYHmIM26dq_{h81pz zA%_cU*kOntdZ=KD5nec=h$c=5Vu~)V$lySW4b&cKjgf{PX*B+)qCgTPAw`cYl6Yc^ zCeG*+dp{C6q>%p&RAL0Fq35KLMKXyZj8-=J;+0imxn-7KcFCodV4nG9nq-Pu=9p%x z`R1Bo&WWa+b;gOOn|ij%C!2oK3Fn@F-YKY+QfPtLp?+x*lR&Kavm|e g3I5v`3D2JB$M z221R)#ukh0vBpZlhCQu#l&epYT(=}qWY|;7X;2k(|EjWWZBk24&bA_5wSJ9s&`?{n zGtorXz2t4Y$<8Zpz4YE|Z@&2Mt8c&j{wq*oiJ}MPWCZ`$*um%}oTR~-i8c_ssgc%- zEu@)NU%^v0oZ57#9;_LvIROv>5}M6sQv?89TN5c#IGdV9v2w? QC2 C)@(vLVnSX2o!LH5+tDsONhb~sxXBtT;abCBQVTV zW`>lhp$sLH9MLqUVmS(x#rSs`)|jU~L>xnHTEPmM*vx&lU=6qI@tcZ34`-WzNh{Dp zlbOv#3lfOmt)@2~{Iz3N+93r1bV3R(|9A%g`2#?3P&LFs1*%VgveO(_Q=U5JiH?Ng z;~n)_s6NWkj)dIfAPosfKN9j~g4@_AYJ$M@=&Df&C|T89bCHbf2S*+fB9$g%qdEz3 zl=Vq~aSS4Xo0-IL*Yin@y2Q!;a54d!Yegy(z{%<41Snfj;%2(k9}$rfNulh}EJ10W zKMFFDhYX}LpIJy}MpKc9T&6XlSxsz8Gn> ^yzJwx9E+QR+p2UIo z Qau1)uUt`t69s6*0ZX0DTx}GdkWScxIT$TbH!p!j+2v(#jiFxv&GdeHxT$pfpJMt zSt?P9o}4sBs5kl#0K6vCl3|KqqVtK4ye5 i z=pt9T$|acQT%se*wWJ}p|Fj6UzS;_Q0jG1B6k>8J){5IiAU;xHMLldmiZK+HU}PA@ zOVVqLE&QlDwzv*e50)HKxJ#%=V_f7iIk IzTefnSvHWE%FE`9tE;E_W zJmxf0*UW0>a+;NA)4W8kICPedPv%U9I$zW-h6@e!(hBIc3Odk)9&}+$vQnQcn3X_z z$VPnR%bHY x* af Z-WaQ>;xyf*!ykvfTMlvY+t+E z!>)F?7d-A|Z@b)ybf`ovo!flZw%_{>_`h5GiGw{^KvNCURWU?c5-{9gAt(?fD!Vl0 zqM%His&ECSYa|sn8lw-`Sw#D7f&;DMb0n>;W54>+@1%*d0~ZsXeeirhx3x-}qlqmD zm?S@nfD&8Tz+g+dr>j
A7ku@vZ~g3JpDO}G4AK}@ zFz_QRwwANx#txJpG`|l0$UEMa-EX}37cXsHn}7S|e}DVKU;p^ufBygPf5)>JQlK*s z=3TQQ{{^3dK&@~b=i_Gyr6Z>#5>JIQE`eGq2OGF_U5LRFA{Q_;p&P~~I3Vb3=%Gtv z069-oYok{htdt`XkZSGGH5!xzA=X(yAZ)ksG@esyG8cIlu}%bY66*vL_tP;0)iorz z7ywX#FHu2XHxtK!7!9;R{AYy#*ne4gg#oCASh$5<$c0}hhF(a9VOWM>h=yaxI&c yg(TBaJaUIczlNUH4 zp=b~Vd*Y%K6$Dg5!Gn t4w<0V l7O&v2;baKbD4s1gRTTLXfg@R8R*x!_ge-XpTFn zlRcS^KPiso=#xQ-jzoEmN6C{wNsdLilt|egd8basSd3FCl~qZVgJy_O_j>ts{}Qxk zIAov&TObK9@e)4*d8tMejO2(v7!!@ySxHa}trCf{B6^#!1$UWyb{Q3j$8tV_mY;?a zT2N0ObP=q8d98#lNby8wDUw0)d$Z<;hF2|;iGixtDzQkGxhDniB6@9jl~xIwpDCK5 zNt#g6R^Ink@YXPKrJ9yQIAGRhMTR mi-ZkpwL9XFvdx z*W++%$r IDS11_|CZ~ND?`XX zM!292;d>~7g6ol &j zqzWd9KQ( e)KV74Fi`YN;8BoCo6x@;#Md~X^6{anbRhO1&T{MU@^?7*p6DLDY z$97S4dYDCFX^!TZJ<6v$>Zg4QsAh$Xis6ifx{QZfL(>>X(wJ^}VvPsKlwXpKPN|ea z86yS~shLWtMwyhHI+RV>si2B()1fnP#2VunkqIC|*Ht+hHhK%D|5+UI3tAvT*Wx!c zS6G*3bxBYg$>$hOWe@U|8V b10wlF&Y+_=S7_?Sup4dlUw(zOG>W6>Qm10ht2V*mg=dMs;QxBucC^t zo64{E3b6kwu=`4|`TD8-0hNmKrwbdX4a=|#+lPlp6l~C#98_y2#~F~ DtECPbf&YBYZl}YHm8x5BBztd zdzCq|GV!sv7C4^huuJ=}OzX5wODx@YW8?RIu_b;B^O^;w|DtJlhV;j^W(c;yQ-57c zwqdJ=UyHV9tF~n;whV|$(ejQh0bx2KLhlMmoB@Njh5!jiaUtj^3As5y(Sd){gsnlW zGkCE*>kIGmA)|O2mgEpUw_|)uIm@ Yt|QA=2EiHZxwdA@wzHeIwTrv7tGl DnS#JFp?kX#r}g_2 z)iJ QsPRg(L*n%A3pr3I0A8wwIm1Pa*|X-oWw~Y=x%Z3!|0YD4QXycK_8)X zevai^J7QjmdP}mTni%qpR}&dl+^9Be#x6X=X?(^hjK*smur=Jqam>bZ{KhYwut}G} zdAz}UtjBpAElKgmQ-P35i>LJx$Z>JVW&vP*%*Tz)$d3%Qr&(F7>BDk`G?aX29$KTD z%$zUE$(r2BGWyA5OQWG&%AkzOCu+*0ytS+B|H`S{%CPLoo@8!H@?og~xdft}$dxO; z*)a9QJhX+$OT5Eyi^LjJVo&0pmTXxW<629STT4bCr$bje;>oY9%CaoV*c{8*?9JT_ z&eyEXr~J+0T+Z7(&a7 vi$j66)xgHq8M&BEvA#2eir!<4U> z(XEh5%O(w}5e?A^J<$mL&@e604eio29n&w3(>6_a39G&P?9=%S)ITlMK~2;{ZPZ1L z)TRkms2P4%>(o_i%&sZUy$ig _ z)oP8_Yn|3_?bdPK)^p9)bse_veAIcJ)O)Shea+W@?bm?~*xJ_50d1%N&5Q%B*o!LD zEq&8EO(!ip(=6TCm7UX+ec3gAcZ*%ZoGsFy?b)84*^iCckZswfJ=&A4*{e<3tgYIu z4co6hD0e*Af^FNijoY`a+quo#yY1UwA<328n!_#J2NTum+|Fc;+-1Ga&0S@_e9p|B z+|DiC)xF%;&CS$}-RYd&)9u~X-QD2L-QykI+g;w_ZQja_-s?@?>fPSj&EDtz-rt?x z@J(EJ-P`&7+xxBG{mtM1?cV_o|FIqH&xZZMhYb`fhFLlS+GQNujxE~|ZXpX@+7<5F z5`Nki{@@wj;GNCbq5a_@?%^ez+8AEq9KPWvuHvZ8;u;>|DE{Ir?&9>p)5B67733^? z3g9~~;62XcKknl}4&*}~FiSnPSX;G8-Y|^;w-LZ@M>GZr*AApmoN!IoR&Lj#<;z&k z<#L_nSMKFq4%YHb=Fl1DXAb6R{^e^f=4_7UZm#BSF6VE)yZDXBrO_-}7gb0AbSGg; z#Ucs2Oyq+u SJj_6`l*oST4&1ig^$lxavIyYRx08l~4(GK6(A*m6No$|y8 z;=nR~;gv1fCf?$uPU $M*1s*dZh&g-*|;j|4HeGU ^lLo;QSM9ZNS9tjoS?p@~g4Oq}E@Appc_)g#Pp6~s>@AEC*^ZxGwAMpBK@cw@A z18?y4t?&rX@Cgs`4=?fj-tZMqqjvrl5iklTvFY`c6IQ1QlDCOjQ5z!IMbXwNHisz+ zR}U2=6H^C$?50obgS6Ie^Vp8_H?Q+K&+|py=m!q;iAoR(s9uc)?m0th`uN!hkU#WO z8{I)11*IE_vttGk|0 q;WC7!j;q<=XBnMSsnbv59h}}=f $S?fL-~7z){Lv5n)4%-H|NPc3 z{audna50m +4~4-g5G{|F>F&|pD?2Nfn{xX@uk2~s3RM34YUf{GV2VzkInW5 YqJ- zq@(~yz%ofIdna2-NdRPI$B`Fv-qd-L=SW-sI3_tsX45}^Taf%~C85 6Ji$dm~ zEh%K|Ng>*bOq5oe5}4e=(dN#IXF=BdnYJxkv~bs|{YcmBTf1)K=9OC)@87+E=l;w| zb8uk9hZXxx%y{wL#*iQDo!nQlW6YN|Q_jqJvt`erL67EJT5xC5r$3vHESh!Y*QjH! zR_(fW>ejen-=1wdcW>RYc@O_he0Oo=$CV3D&U`uT=Fp$}o*rDfbL`i(Q_s$QyLIp3 z!H)-C|K50a^5?(LmZC+Xl(G-yH>7WnOuK(fw`{?GRqViv=6lGVUlxi9zyzfD#h?7h z80e~j`t#|f{FoXjrho4HCBJs+^H9JKLj-X|5lbZTL=#g)aYYqdWbs88V}x-=8Ed5R zMjLa)aYr3{ Dy#Oh7)dhVu>rJ_+pDQ#&~0mJLdRfk3$A|WRXiI`DBw*MtNnGTW0xX zLEobYPmgL2iRPO>s*9@#0L6)*or3;ZC%Jqk+USw)BSlO<(~C|#^PYCPx~P>)LISAO z%UbHH(d&9Wt*7=n?60?`nryVWPWx=N+h+UivE7avZm{L9n{Kn`*8A?g^XB_+|Gxtl z8}PveFS~HW4_AEcz7uEsuJ+#3!ez=~w!Cu8FV{SC&NuhGbI?B*J#^AXH@$S!Pggy4 zCnwSp(u*989rjgc50o;W5gqtZcUkgMcT58nK6v7RH=g(6kw1R;<&$S#dFY>)-g!<% zjh_1Ev%g;Z>AA;#d+@st|9kPvC;xo!(;r`b^Vvs#efZmt|9$!Er~iKU^PgXT`}xOz ze*pF`fd3O<0SS0O|0QsM3N#=C5x77IHZXz@lwbuZctHnx&tM2!T?bj`K@fgWgdrs1 z2u)Z*6rNCpDP-XaUD!exS}7u~%bCq^c0--jEHXmN4i5?Qv&GrXaE}|J{}8QH7$XJ| zZ;neM5t+C|B{nXKgqva!q3FaaK2eHT 9`4M>!IJ|JofT z?PW=V0c>9ayQH_QS4mE05|sVgBq=djN==?pm7zrCC{xMGRhkl(vy^2mUujEM=CYHx z+~qBOsY_Az5}2(NW-)_#OkyH4mcKM+GM%~1VM4Q+(hTMXX<|rhB2t^# =Qzz-&KJ#43Ny=L4c&=D8)i|SWpra4?Wsk{T DZogh7_G5CFw{_T2hprRHZ3p z=}KJ+NY^crcCxEoO%X+z3{Eho7ThTYb^23EebT2q1?o_Z+Eb(!HK{~p>QR;Y)TS=g zsZoXMRIMsitX4IvRORYbwffbrZq=({1?yPN+EZ(`RIM*%>ssB~R=B=Zu5qR7T |YqaSjI7? z@r-R;V;p-frnsGHkHIv%AKSF7VkPpBjZD_76`8C{KI@U2%w#1$S;|qSvXiR}Wh-YH z%UhnZmb=X5D}PzcVJ5Se(OO3i=2*=)X7ife+-5kx|5?s){;z-!+*dsR6~!h_@t#Zk zLnIhR#UA!EhX;M=LKFJLi|#X{`TXcV8#>X5c66i_-DpfhTGEw{&S~fTX*z>i)S)Kz zs7+mJREO@ixn*^jblXU|utb3Ih3|OT`(9l83c2o0Z?Ad%Yg*?T*tV|qd4(NpUn6_i z#!fb|kL~PcGke*$jyAQYU2JPBTiejS_Op#W-&2P>)#Da-xygNQbEg~KSCiR*^K9T7 zdg*9n*n$LD!V*1m`qG--w_qI1Z%Sv{(g6qfqz$fbf)D)Q0^c;l``z$@BYfczcX+}f z?oszhq{UK_0x33hk~UmZ-6LN&$xU8zl%HJX|0$o?j%oUGAG75mL<2$uHerjHv| ~|vzLACC$4ab=f2{%Up?)4?|a=-T==-(eej7t{K$CvNo^0xFGwMGG^L#k zc~8;9>|qO1XyqTHkkK#x^P!*=WDHCp|HV`O@qGcY!X9!T5lmc|cEQJ=@bi~{{po-I z5w6