From 66eb089b7271bf952d080e5a48b4f50c5ca49449 Mon Sep 17 00:00:00 2001 From: Cal Seagram <143629409+seagram@users.noreply.github.com> Date: Thu, 9 Oct 2025 15:33:17 -0400 Subject: [PATCH] feat: add astro node to programming provider --- diagrams/programming/framework.py | 4 ++++ resources/programming/framework/astro.png | Bin 0 -> 18238 bytes 2 files changed, 4 insertions(+) create mode 100644 resources/programming/framework/astro.png diff --git a/diagrams/programming/framework.py b/diagrams/programming/framework.py index 5b2cc3ea..ff2cdf3a 100644 --- a/diagrams/programming/framework.py +++ b/diagrams/programming/framework.py @@ -12,6 +12,10 @@ class Angular(_Framework): _icon = "angular.png" +class Astro(_Framework): + _icon = "astro.png" + + class Backbone(_Framework): _icon = "backbone.png" diff --git a/resources/programming/framework/astro.png b/resources/programming/framework/astro.png new file mode 100644 index 0000000000000000000000000000000000000000..3ef93387b8c9f6e9447f7ccdd2d727120a57684b GIT binary patch literal 18238 zcmXV11ymbd)863jQrx9Tf#Oiy9f}tyR@~hR30|B6#VOumE$$Y)I23n^ySwGf`=9^h zW1la=sFKz%hFarRQbO0cA&2G_p2S0#fp`suQ!2WyXwf{_pkD$9M8hQW# z3DbXXkkWg`Gx#8?r;?f+>OKZKAwGd8%Uu-!$fGOCO6mA69=H1?GA{Vd-#*rqCG0n! zKJMi>;JzV&T4(^h0R1n-0>|(ov|$nk)@O6%Z8X&VDq?yD%2l)vSi^LvuczGSi=2X) z<)WFTLip&u03@%DLgp6`=S`0ITSZ&NZUe`!Oups9?k=o4MurZ4f8Rf8S#>G&E~}|| zYihmwxa!k>iXNP*r3>2xTwmRht^b551Y=7UuN)t_*+UK2nbr@Xjln7}IP`x{1iZ0l zyan?pSUsQ63~)b#?%thoSK+==>cHgS#IM4+Lsy+Y=@09|4R(`USz|{FxkpDZ`{#)A z9rVI;#?&ol?3@i4puP)1-#`T+2VpHc`XIJOaa+{Kn-xAKL&4bZ)b^f^nY)oL(jd75 zNYY`?zYsX_kf85;4>|!;q!-@xDQKp5BPTG=+lJ{&a>r4XD+>^*HcFzKBRS-#rT3h= zAh0j4q)Xy}8q6}Ga_f}blPB_Ch*F5Qacc8u993RZP0Y$G z>%eHnzH>7HO4u%SeM2qiqHbP{$k!nJQb0^-&B&uOn_9tD^O;VV)(s;n=LhSaVi-V60 z!tIFOkxNta3iiHE2w>YA9^ZhN0HRo0$%Be*eik~UV?_Rjk0i@U^GlraoLMotRP4%EpSoMJKfg~weNo3M@Fe)Q_rPCyF%$k{BFZ= zlXqkbUu2AY*o?=kzL(!pXuenN0Bcx;07!!ohTB!FE7?wx^4B7at@N-ELJ94=^i)Nrmio(v+BqLr~G;Kjvv5OG<5f!~{l=S+*x+ z9kio*p#66630+h(#eg7)R`G8)G_=wMTlM^+N{m2yoWY$Kr*`Qo8*pa9#72GytxxZ1 zJSFu#w!zMeCXTry`X{v~IBTI~Iz~FtC=3c@0+f@$-@EMl;Tr+w2~)%I=euuofxY~9 z;CCR`>IQyrM?rLW5H10dlvw;=0;cZ0c-)Y8&QqW6RgLSD2QvY4U)-&?baz9(Re@`xR* zIgSYlu@UUf2IJoL)T4f|0JLGamL5nC2hDrsF?~N?L_iab)oYT7>{WwOxwJ|Nr)i01 z66g>#_Q$~V#3#Z(n@J%L&OGTs2T0DVu$!%x$Dvuw5v8zVB$^-Nls#gcfbz~WI6{*| zWI{2FDYBV3KN7Cj+ihn-=BQ^(4}8mnwo$(f_Rl&7araR{>lUy=gC-lNRtlm$0|CoE z^S@Y=AAOK+LV*&CvK4dbUEGmT`3iB_wF>M7E`)W$`Q_7~-w>koTo4EE8DPzJ^I0~J z1zD0Vg5AKEg#!iOHXNVhLtU=8f#`q3!QTub=5VCXPGLUy|lw+E-t-SzOnez7^bBjB98(fW%k;j3X!#^oO?~JlSYnVNo!NvHhcO&~mJyw!jg5HEoVBb#`u4s;X786u)ye3qXYMVWly-CKJkHkQE zRRIlZz#TcFibfbG-E6G`>XpUrtA3qE#PrKb(n_AHcd`cZ>*oG-j=o&p@i|aZw5cG( zTa7Sm=3Hpq;CCa*A{Hb`DJBoERhc6R*G@F+$J1Wb;O|*#i-d54B^h}+ZI;l>bE@dy zK`ELk^6$f)P(gt9z1*_EZagt;%nTPIbdwhsP9iu2+8Kee^pv14)L!#QixFA$ZK$sb zBCWr9*TdbxCltuQnY2JKl>Tj)UE1S*K3uw`g-z+l`P8kyC2chOKCA3+(6viedZvIl zPQfX7kGLGz_|_lAm2tmepDxC~*KA*QUlS8^W0=sRcXS?W*#$+@}&%({RMP=X~!ZEodveB>;Dcw0s)w_zWC&1|BRx(F&4jm$WR3GhUMN<@+#EU=`2X`8Ds+ULh zoGph)lEK93VmC_C{}RIUB(bKG^>4|mkEN^v`` zCPZW9kJ`u1nrZmvrCqp_+lU&1o!;d`2|l%$|G{kWL<1sV22PMEJT~( zjP&_)u%F2ti5HfA@l4p5j)Oap(vOkc=*wb00r#b#HKZWICP|0Y7Y}G-wQ8f(5eWCT zDf=2~v$rA4YJ!iWgD`3sD)*zsUTp|I5pn(xxC$OBxZ0<;h@)g% zyII_68?c`9nJ=ChV#4J*e7t|w;R4|1u@)~87!&W(@Ktq`wt z8d|D4kr}K#MUbW$;f~318CJP~D~4}OvB&gE{|JO4tSIl^AO`ybRj0ou3nm2QI0j>> zB3keA7A)xzj*FYnc3m5kuOm$+w`TE;H6`7tCz-NO&@s+C@sll%+#nrC=r{M>wDNLQJ z-CHFQ-}6NH%<`%ziGXTNWw;PCphp+O&OHPq#TDiuJMVU|D%RHi`DdaHV>~fZQQ{ow zfU3}2{kkqCB;GupF2BujAt6NgiO!BO8eabK8lY-(3>-j%gxJ?n+$kNQpzQP$!;Ig6 zfZ2PntRjYexSByb)alq+k&Fr+IUMz4fZ?%@j7YY~k9hD10m~lINc5D!kQ*LwS&MUt zSTq$TI*2=Aw>pU7-Q#V!pJKvOSQeMvJq_C)8*BX{hbUb=ac>wJUK5HkfzSiBsqQ0@ z-WXqIP0fV~Sfg;Tc-6EZN@1pF>CS&@h^!ug#t)&}wgRk5FMb4B4;1fU9t`tDE1Qh_ zohpgXf~16l&Eo{_2s;HKYBmyK+sK|NdQ0B$t;WNAc49$;+?QAqdiL9DKG5GoYsIC!R(9d>fP)@mNqJnl;o|HXS7~i+&m1GYO>%(>D`GJ#&xN z8L`srUz7Lyo(o*@b!v9JTQZ8Odrqq4wZBRTW`e2Q_!!`kaiY|hfI%nQ&CDy(Dn(fX zamS!p%k6FvW|llSKR_;j;EfgrTAhRY1YD78VJ;1uTgc`fB*Pe3!XUV$34zw76+8v_ zO-hXjh{&R9WbWY+4L^Alf>~7i-3)^p7grMBK$(z_yOh5)uJ|pIfHVmnVMNvxUOGv# zk?tX5Lp?scNE+UnSt8%i;N&BO38h|a;TItvWF}n)>+;3O607oN?JWz8kAV@nKAzq4 zQb{CFU9uG!N}I|Mm{_%A%HCTic>j}Z3T{H-+|lU49dp1elc1$ZtBWk@dJIvPT8-4>|l#Stxu#-!JFL~7)6n8mtitWeEJ`5^_@VbgG zZ_owoLELYTX8{}#mwR&Y?1im{=o;GsaY+y5(BJ*00!5(=NXChRHV|Jo7OL z{adcymtC7|>Frz`*B9dESX~wz1hXIkGwrphY>2lI!V(jJQk@A#-2+5RRGK1mx7ue< zBJPO7Cgh~`%*vZYKmpY+6C`%4Z$R8w?_x$151Py?dNeB#PL&+Pj>EQct+V?{@UVj* z_fb{T>xk)Gd7NGdscHa`MGi4M>bWaU770t>zV4h-m~AyEDk!W=!LbG|L6kq#roxu; zL1;TyODbQU8;1tc5v!7uz?p6oF=)mGwe-X}Lm)@c*M{`&V?1D~$`A~{ciAs*^0bq| znLNl(crhqQJM!FWcW#S(*g=L!|2g7;MXxTC2#eaIF~&-((x+NY4Dvy&+57Q^RudD5 z*-Mqvpu<8vWP27sqPV9S=!OJ0XY^A#>{d-I7F0erA~h*X*`ObyHVpYYYO1P4a;4Fj z2_s7~HBUsMFMxl!qt-ri)wR-Lnvuj9WCOqd=6_I$tR_?WB3if1@=+b6**6q)%pCjj z%bfzVJjabfWd44a(DK8uoAi54_KGfR)RPYR>$34K~RKr7$A5 zE0qvUW8gP|*Lgmfaj5OxR`0I+B zH4e|u7aC;0Ki%1J$Z)3zdTi2v!mW+H=7G;U0)40ReKBG}Ssk#4d3mrpk*i?%cfwH+ z!8qb5)WH9&Y+GnQ2^|u0P=iSb9Hwp-v{3f7!DuX~ewM@KU!2!i)dtA})%7!v=zL5i zCsX+aLbDz}Qh8JMYeu6bjI847)~@0NEXW8O@!}k)ZiA?Q@0(Yu=-2zBE)$}%k7{5K z;)X1|Jo2!Zu|A4PYJFWA# z89%)7cp;AB0iBVUuR!!lEM9j#a(kF5p^nPIV~s(HTqqwz(!scg(q_I_a6N&0HZ_Mesn6R_BiUEU| zUw6EjZKw8P-ehOVVEPOGNHF9&O97I@kxx>ULJsvFc`;25i=dXQE|WO@OZ5#*GQ>H8 zF9bJ1PyDQE!w?l~X|8aU|53r^r<30OJdds%N8J z0Rf*5!nEfP9QK3PCX7VrcHf8%X4a`VCO7C}=m89#A#+tHKiAjf%Z1DNw19svT&Y>+ z_U$QE>szHvx|J&u$5;$Qn66T#5e?$Pxp3gryL`ECdUN>L`OjNdP}UA*4T6zOb>ez5 zBZ3)EatMhLfMsSE8&D-;6Fj?D`~yri>3rR6w`0l*rKiew9COpQd^_!MAP<0 zKSvguA(Q9^q{vYllNuq;%Nkq+&|UdoXz-qxc~Jj`qv8iE;#7milF9l$0)W_z!TQmK zq2hjyEyNBuouI-5zah~!=+=fCq=y zl~&DF8zx8rb^Xc}3CC9WbJzwP*k-TFZ90xrD7<(G4L%$pS6tp|E2Q^H2U`YuuiOq} zs164~!p#!&ou1>N8qe80T;jovctu1&?v6uGr0r*Yu3S+F6S7zodg$XAx&ao5 z`-__4=k%(rTWMDWT9cb{Tt^r^DG#bGJO;_>nKx@?MfN6@0gj;Eg!vn%-FrXbKH0dN z4SB`cN2Ud-EBgr5pom}KLQ}p(NsI&=s0x@_L#Z48eS8LP82~ne{xw#T z7o*9O*1t@w4F>X!T#xkz%P8t*FAzL@+c-HDj20UB>PH{fRQ@~}p@sClto;lieKA)3 zkrdz-O$&UmLW)6I_9?AGMu#N%!E(DTlK$b&iTG4c=&wa|Vj#GX@FJ??eJ|82wJ3y% zo3Y=1edQ@Z4n;c?c1(T0hGUBP3E}c7x0lj%rR`+Rf+sFRW&r)xk`8V5R(v4PcKwzO zpjW-1G|SNAImS0Wf~mrjc~aBWntQJ+9DPmgZ+R82daMB!;(I)~!{V&c~#|WqFMcG1*W4pwFz|$%}tNmc+eYxRo2<6YDa8%_D zCRP+vzyp50@8i43F^E13LD>$s2OO$0VUJ6JGba6vB#*FkSpX?Egto%+_B9$LT&qtN zBEx9yS5CeojRYAM_m2&z6MRS^bDUi=l)f1MJYu065&{^!3i(BOHN`Q((}@SFqE->Z z;)jv;3*Bf&irigl_tX_7px*58I4p#|f(%7Vd^96j53qJS!AQjL|#^ca3Ck=&LGc zXzJJil;qHezowYGZv`fc*J8jUN>c1CA)|O$N>Z3T+eme7-jeJHW_a41%Ocw`ddY1A zS`|~dT^mc+a2^xmYS(2BnhfU&+1~&EiA)XayFFocotSj}jtiS%6Km4VQEFHi9?T^D z7#wtaS|5x>^K^g|M%X*`FVAb3G?rGCaN^nB9FHDc8#b{oZ4hM#;7&-F1+kMuML4?F zJBD$u$#@O)mQazf^O!IYY9fl&I~D$*8?ZX(#QPB1+LuTIa?cxD$8{Z@9~}&YFwq7jZY8NM5woF4 zUCbls#}auV*cM-J7o3v2Z%=g1&u4p&KFylp2lE=dCoWq&qZ}h;n~x%X*<%55$64jA zbP;I%wzMnNUcJfsgkbU3Z!}5Fb&ls0rf}SmPQC86u3ueT^_1bP+#nD>tWMSc?q45x z&Jx}6C#$0Ws+bqV6WdI4K7TZtUxlaQ3w*ekE8p|-9nT}rfSDSuCPF>O+rWbKa~PF& z6^LuS7w6;VQNqriohgp3(dZ$scN&C^>UTp|I)zl-T-aF$DVK6?su0;7d6U}KGCzBJ z9O^SK37Q2KC$*KWmTNx_a0@_a6o2odFb&#{%HI&DKe*?b(l@+y{!IOY4$Bv&mjo8HRIiUq=dwUG zG;CAPA?Hd50`R7gf+Ur!t$0CI_`}SLa=ZAJR8Qmr7N%++^^?Grew8YN9hh&r$+EqV ztzMsY{yY}p#NYWIL}{KAgl$dj*!}Q_L=~^1=QF1BW5lO5@A2%os<1o_i;fi0lf{*1 zPC|gaI=(aE=J!2ma@;h3&DRH!h4=4m1}%=Q?r+8lb6fW$!L^CIwENuZMnVdOc3NGk zsEvvzU0cuU74J{U-)ft4-}?v`;cxZz8j<<@nUh_y7)=ocUET6hkFeLf}wOY~26 zd=}58`Rmc}Uj{-jg7BI{Ic(Z)#+fOOsyfY>rXsR6kPoW%rUb3ZgX^%|9A+o>!RI_n z+Z!zZ5cB8}&pWr8Um@tB3RUWUXj4r-U&EOvHNJlrE;R)%Ww4d{qD7f_*$os&kPulpPPF7(1i@9^QZ2^O9`_ z!f5O~=C!qV;aq@xRU52_c@eHB1*a`aZ93O5mtO;d z_ROvMa4}6cQpi$6PQds_%5IdKXM?Z}k|=MJYw~)GJC2>cHvR0~AQXy0F7vW+ig`sC zNMLb1aeExKUVMTyMQjb(;~&uvs?RhO@Kl-AT_*&4ENk#Bjfus3_M9I{PdBa?{)AIC z9^_Ek+51zQRhWsR4p>Zh@bQzOj}K2i-j9A1gg7FWv=u15327BVsnH+iU9sdy{7tOALy*m3>%Fhcs+nUVcuQn9*X zG{1NHV+>_HkhaS6F4Ufix0(x4fyd^b3^c8Z`z4-vVE&6R;yBQl&G3(QyBfBzg~T%W z?pC6AI`ML_JcWA$6(OdF(mI3}f6P)zVIcYT)SSFaN|n2U`I5K-Q9RNPkf^XA_y_z@ zN6R1ulOz*JbTf`nq{p37`bo9pA}vDJ)-Vj)NFfr49Wj27ow3_Qu@=@H<=`{93JF+M zv@r6GSPAJOVPi|hY#OzulVvjC|oGUVk z{T)zym=kv@|Af+ALW5S9D_j@sR)L#f{`!W6C%4No9nS#yv$D?hni;{S&>7W;Ksud= zknOo_uw-8CYcxdt^1r&6LFB`a&Fp0lh8#)*#M9}oMa}SlV9DEwPjq;6?6D$1Z$X)E z=BM3jqn|VZ8>GsO2^|lI$Ic&UUB^f2rK^ZKj~dlaH_;&&lJ7)~5>QaT{;{??5xtRU zY>f(r7W~DN>pIPk8Kn2oD{+7eIBN%>|q4JOx`MTxd7 z*j}|UUOZ-(aMt|AiWpQ8t zs7k|UJ3`Xiw)uFVPW+t3_HbG7WMURW|8LccLwSVb@HfB~3bmfV&eJle;nCm*Q5Hac z%UTImu~DoOCxS*8?_N)MAsn*3husLDbaZBUu@05~1d~D92ZHKX^#A%S3vJjtutmR@ zO3!Q9ct|Zp#J^xA{}r)^w1-K19>*~BP}l{-mI6N6VsRt15Po8Ul&Qr2-4Zj>yeFul zDQXGj=Z*eI{7HJUg@EVg3Y$j{L+av zxrS1T2*#S^`64q(o&c|1W0_y$M_lleBjan<8{6Z{2ZQO)$kw@t0;#t`B1-IyToEL{ zL=sUG-<1<@*`-8EHAX37e`>V1k|SDqm9Xhuxv(G%-yjB&kRgEyd>e%MKWk=!IKh+% z4X+*XK2e;JyNX13=oZ+?-QDf)zW>VYf7I-4YBJ|>|7ZKEJx`~!Dn8D5`ylg+t*PoY zom4LJJ^h}!*~I0HbHu}rf8eIm*M*D#VK5f~5~N4u9z)hgh!C0rud~9dQI^u6s9@WA zT8VIC-Fu$1Ym5sMDRG@FGhI@~-?Z6&H~Q&Rzk@Lfxc#r-S9H^N-Tq^6F;-?ZS4!Wj z6<+e;r?~IeOLkN;f22FRb&2;vjC)n|#N1Nm`I3gXNBB`(e?Rp*NWgh-NLk2xIfD$- zw`zZ-diOz5Mvx*wTsFtxJ*8kO1dZSq$*-iAcXek(!m9Reu=KN zLK*pKiPCj2$R73E9$lhB@6dt^n@+w)LgFiTpd4x8o4pSR-kXuqJ4RFE%Olgwr7KA^ zInAoLqb8ic9*Jd$`40WUZauZY<@J*=Po=73hS2Nly*K2e^wUHK_ys?6?@3v|igmB@ zzVkoobh>piB*zkO7kQdALEo{BpeH9(2$dY9DQHp0^DSaHYI{-)efSJk zmHx=e0@hZ8eL&=CQJy#(2?)#j%Cg^PXPkjjFHx+D#+Qk1LEiOY-Mr#vqYxUUD9rPQ zmj>OPxK^pM)Lm4sy|&=3Z{zQw44WXTIQl8cX%3t?w&_Uuig0pX|0|k?$M5{x-Cxt% z0toT7r0OuvoixqU?N+J$Sr?5YYDui9^vdkZd#3^ zv{+1qj;xLZCF$a7FSmRI0z>1DHzjD-B_}QR$l43+d6P{QEa$Rwg)s$4KuTf%GH%fX8Tx4C-wH|uy@DQ>W?G|>+}w&= zSthhh4!KVj>gd*U;jlUq{Ns`8$9KkbH=IXfq;h`?OQLqU@fMkPS$uaRKF1I=qPySv9;sva?(|Kc$WkLRtE8-2I z^x@fYjxr3@t59|;}(8@**7fLgZvGjEf zlq`{*{;f%{L$3J4fIfe;v$@JU4RhTbo9b|*0WE8yUs^x)<`%DR*hOtBE8F9u-Ct@u zaieBCsbY?b)YA32onR3}(#qP5u2@INHbMLd)#GyU#EB4>9Nr5h>|F zGmiZh%EiV@(*P&90>w@9%+hKH(oT#&se?YLY`@kTX=oK*P>$@KC&I)HdW$(iAB$K^ z|30z=<*jy<6>|ojN2Fu%Pcqej^lqeBA5LNVFmp#84S63jc`ro^GJ;Q%iEMuo+g&S( zF&IMP0bN}irBa`0+2o5;r;myLNj#ltT%5Ic6+SpFr(3F1B_9XsiX`DZUU7;Yh=OE+ z?$2$@qz28H)D{p(DQFB-JlStm@nr41Pi>a8wpbNY!*5;ia@h2?YJ<(u~_q3 z6Hd0XmRh9MX_q{|I+dSa^)@;}oK%6VV{@Sjo9c&s+YOtg;_iaUtwA~2UP813DwbAd zrS=EpzCYsq>BLDcaZRB=Z~Hq@d~~kuMY!V*utU%j;U@LY%dGo4wI6k9KwE4jH1%+2 zR77sFXT>qVFw@P0UxcQab?N8G*M$SUlSI@Lta-|#C=@x{lT8Aw-qG;2bw=FyWP()?2O0&46adOrHb(`DV6E4D_!fOj@oq57yF!wUhNTt!y(o+N9S( z+p2fM8&?~D@soSDkU%d6E4>Su`kNjDHwA+NtO5fcR^mu?F0T1{Ct`m4X&wLTZgG681@ zYhIm?r-iIPB4=i48rrbXu-d&lVf-VPsAT6q_QH_TppJ*nnB;~pj2decxNsz~H0W1Z zn?_8aq-zn4`*A0Bs<(Qt?dYcRi(rXOSLkx(ivGR;Cm}gTLDY6$A5;E}lgm5nS)A4s z0@F~&+OO}v(Vu#Zch1#C&Ejw_nSyk6ESFdw?RIAVtVHhQ=)GRXg^|CN5+%#mXaA$) zyT{wz?mDk+B;!R{5*3iRoIJQpwL&n;=l7dJ)X1BtQzpeT)uNY8tkdV?U}KkrMUcH@ ziwWcHWyPD4mks`1xYpqcF?WKCpR*3_WvE)@m)0H;|gnorK9XH>$j~|`eIYQP&ai1^wKk5z! z#%Z;qxNFr1U6xY8QY7W^0Q5mK0i5iwtV(H|=d*(ITf(UMr_Ii*=EGE`FRBfn--!mE zir%-GDmcH>Z}ZG=TeowRIyc@LiO8Pf)WuW`mlWu0p8UEi9#fJ=v}GsLVNz*FFU>5I zgUKZtlxp$qGT2udx~)j`nK*U(4|28Pw-n657r2s!Z8ejjj+Gp&EZ;11bX4>R#;z(! zd}SVEUAuK!+mg{Ylq>Hav!h8~Em~z|Uv)E9m##@DN{-KDx!+>AirZ}9CHpJj|09Nx zF0sGb2on{bMO0N>Y1VYq8ABh-Q%>Su$lb#LBbA1ka?*ysO(L+B~eC?%GyMAGEV;eD_O&eAz)yD950(Yl9Zi{V$ zxK(lg6_7OZO69Mdd@z1VJhfN7of_#mWkUJahPmKU>x5QNV7OSz=yaR?{S86B9f;AL zZt8PN_uoSP^Y1@!hK#*a)$<;tbWdXCM*8v1t+;dH-L5>U@AAuBNoO#j#7ZPsBVr{< zw;QC?@=xFQd_LkA8~pmggFbL*HkN!6iQRju`uj5ZNAl34k;Tp z)h}8`N9c7}#&AkX_Mais1HU8-PpKrBqDF!Z!;0)3KK)Od zO-^3oAN2$TAP+bx!sEbiDwu-GO{hp3i}y{RZk>3%v^w%}oD?#h4uACc=M{vJGhv5> zy?gGCr#!CF;};mr%(N!>@zOYV_{6k!b7W53YW30Xc7uM;6oHgJgV7q24niQ40(^`1 z-*hvDV}4;z(bBno&ZZibUys0FrICtB_3angK9k83q_bJVu zSbgqB6}dBR)%JIFn!WJ^<=ZuzRM{d<@71mEcA?f=-c!qg{oTmT45YCY*~BT!oiRM; z!#wp4)uxw>iEt*=y+>i{7D%tRjpQn=dw8&vI{3v%bw^4?o-S=#8;^WcA;45Ng^Fu! z)nfNdBxK#kch^*rARv2PQPg~l=zMYAip_fA^G6m^Fu1b4l<(|KzAT`8E?x?zdEQJG zjeHnzrgtQ;6OQ?&9AMKT5=dwGHWI{x5 z<&^))XyMVbQ{*fdYDD~vo!vU}TgU*D8GO66qVfp}zYXq{#Gi~CB&^R=e`HHr@}MFv`TmSr>=1go%Y$3{WMx0zlP-abT&O(i4>M=#xhhC+?}+d zw~?pram%9mbA^sQK7>995c?$r`DbsT-1+=6rezaBerQ+RLWMKYy+<{41Smr^UG(I` zPKKfEo031R(6}RWh8Q%UFOqxsz3vlgz0f4{u+O->49vVyhGmI=K_V-R!B8OY9__Ez zY9nTidU6AQ6pt%fx=09*h%D&tb~(~{Vb&c@J4f)WW(2!o?#ei5PeCmUHP&L{77Td;rMj%KkuvT zVg_vg(!ZT)QQb>f7?GPY6Td{%$Ri$Gs*3A&8LDjF8=m-k=;+*?(olG{nk=f(?YF*^ z=Q6#K(dx0h3`hYf1S+Z=*X3;I!%(I)6r(z$z`FT;4C)&lLe^TRsma9%J^nz$m`vG| z&-<#MIAcegeWpm-@KdsxWyXe}ek)VYL)Lt7sLnvwY+^9%rQ?k)as;a_G2dHSlWUJT zvI@a45Y836CfCx5#VeG~p2igvk#AlFZn6WP@2T!`bv`yy`PG#Dt< zm_@21)DGh6h5iPSNqHHVQ~klwmCsZsad%2eaw^V!E`R-iIuz~vFu*FRp6qcyMVd)H z1;b`qOGA&%#_PbO)V&KL&S@eDY?a&SoXx{#>J|n`zj{`pX`fX zw2pwB4mBVi`e!$6PbraqA$KAu?ah(W#-!?!k)yU9g&RA46H~{^;|9+t<=L&HeF-rJ);jsSg8o;+K>v5&c;5nfohW8WW~63>w#YrVL=PzEy3&M6(1fG-lE|8To3}uaI_Ify zbjZ%Pptb7#IuyZ=LV{ea4HwYQE`6ubshpjvBC8rYw?U19^Cdjk8vR37^k<`uy_1PrAG!|) zp31VcdW_K;_8ef!xouN~wSH@^{ysF>>M8%O;HzZzk4f>rR=tE1+6e-}HQH^Z^Y?69 za(+DeVxP6$tsZsBrj|uP42+2w91_4Ja{L{?dQG(_B@)*AZ!+k9g=NE#;Z;w+ME|gY zUHto0Gz|dv8`cN(j<`6q&zM`~c>|1pwF!o?*rvI#p_14r_OaB@*MBeLJ06TrE=z5K zh}rPw%CG;;XwR`Y$F^~PyAusLlH9svWw>uhjKLuy;qKD8QbpUczG-5Ij3k?uy)ME> zt*&CosHF3{cPKk^*r_;+uiT$xl*tvTAA>XDwlaY~$LkqS2bL)}; z?{SMvPIzIkZiwS`b@I*8yH10Efg0kXq{S+wobqW2$Ozk{-MXo=3C!fWey!Co;J`*( z*ZXSTW!WR3|NC8TqH>O}b>h&(H0VnQht3Q75a>(6wBV%KTEJ3oV^_|pq;im@0Brds zlyx75yoSb<%P$HpJf)LQ2)nC!fyT-=`_WyJH`6a9 z;kAymH>blkpy1p$9YHU9-60<|uvZRC(H?(dJ3j(GkSXxBAUs$S;~*Nj*Y`bPbVq^d zNu$}PCpolFFR!sLmnd#;J@CkTg7*>1HjH3F6w$9c#yStYXV{^b(9Y1kN6ltV5p=~@ z_orX;KqEcy7^HevB=uF?o5Bl%Gcld<-D3mfVG1GSHs%jt-e{WvT}g&lf!AQ8I)UTB z{j`P0zg(>^VxS9#byer0E2?iVUyL)w52x<3n%8WWindxUsuO-_Cr~sj1zs=ukx&%)j^+dLQVXo+-s8yV5j*B5rAUI5KbQXs-zU|?t1Z`YJt9$M0fQha#q^)~R3CMn83n|!UrcqouX^x?xn4k8VOchi``*gG+ygDfxF z5t~as%!OVq<$o@rB=~;h#YtHDf_Q;)O#ZqlWRT|p5|=Hmx3%_(Uxx)ZOR*iCv0}%+ zBM8SF=n|JRtY`N(|ebbx2ldqVlUWcG^@dC7lib zn_A?R&X8`bvxc%D?XNDcA2t=)8aI7Oq~;&GEmfYP0(?@SQWcvS3i$Bnbdzb)v=3HhEWMoJo$xweY=a^ z50!hzr|%U#o9qbTDH|3Dnwus`udYP?v|_Aj&Pc>~-4rU8O}P>5tUYYlq+YGwV8R1AI@&$xY{oqOvS4c<99w+I^BKW8=wLwe)JgM>28hXI5b7&ZOnQe=G z({cDYF21=AL+he_>eXL4$tS!Ln#G^4@f!i>sf;tm>IK6{I!r<68*2zJ#Cx|Vjtgno-&?ANZMGti%8L z9IDnH$Rq0yfgdMrQmJ0z*;ZtT%M(u)j{@25~BzE_t9emr^os>c8T^|LNvF(xMt!J!1*b^>_BQA)i{lvdb zqfI|Cm=~GahX73qH#CnJG-CH2>d4=JuUPoo3KGW|>dEjMok{GvN8R-J14yKg9&D}8zsUy%+zg*reT><7iT^eh55pMv+s z8hGYe6A*bsJ07pxSI0Ww>8wY%otT2mj{c0}|AP4X-|Odk{b(!DCY}_HLKV9gKyNKh zu{pJ>1+vr#z4OH+mMTa7>3g0?>D90c=Gzho;a;$vkyh_rigw->^Ui%28~VW`XEFZ} z%Jt^<*O5vHu;*V9S}yN13d_6R7!g-+=JT%hKW{^9-UwKz{HyjcDS?q@3jMSC)C9-u z=??WLMJ$nEcjFt`U-UtVYm(wzYEnW=m>UDkW!FcVu``Vhm%1}z}t5-wpCEt@uL^#Q7 z?fg^Al}f*@a79dlo6!*R4tYSd(@DQcm`qlO`!5L~ZLdX2NfNDIUXRlEC@U$u@cxbN z1xCsayzp01JMw$SHL%n=>tP!&r5;&h4CfpO@1CA^mjW3clM+!UwC~0OUF@qGYg~E6 zb2&#cOv$lM6+aCO!bo6EOcGK*b%kPjP2>1pP8s4l3+P?sKV-aAzKm7!4{~5}ut*{9 zkquegS-~CPkdvFv?YUa$$WEjXJ087ZgsFdaT?pQs&KCc~F0mg^^x>)ThuZzI{&OQ) zw_fmlC@lShj^!<;#MBAJ+#LK7-CEn^@iC%A=EsyzJG&Pk4E*4YYPp|MW3L~gyG?uX z$6?(PL3<-EFO>re+(9|YSdSgB#-%`y|FUyeSfe%Pl&eSW%nY4B${*zyFk~}N_vrh+ zKqNvFGrwe`yl4cwl<6Mj-1SKae`}#b{Eugfb(708v!r)enMe z{gT2#nMBPlxa~qdnTFTFws-keo~DnR@U>$zf6uY`lHG2M`PC^STvPCw(@|7p;xEmc zuV1 zUKm^&xmJ0RaerBRT1y7GF#>y;u@W=?&f^k6KX=1_o_inlg0#JpBdE_VwQ`Elom;9P zbUoq$R$$O-TKr2pHo5hmP-^y;QvHhj&jxaAktE#IFQG%&5!6^(b>S*;Bh z<^3}sw%Oxk=i12m=2KggvUmupJL&gluM`b&GP=d>=Pe*5zz$gB{8!OVcaGW~T z3J|qRsM8c-^*VRtt{#`2Fs|-QV-v**z#j!U9r;c0GKzpGO^1Fy?~=Y0Ci1%&Vc5Q> zS*2?U=NWz{=7qwS4$qhH1-2la#${X|T#rhBu99kp zz5aZ2iOPr49(91LvmsHb-C6Z~sduYsIUn?2{q6w~6aKLI$F9#l{9z8zCa1by>dwt_ z5|PeNIVMAGF9*MYF-6E2M`-QMee?~X8o^=bB~5P4deKjG0k8##4JLI$enRF zjD`$RF*1`FnvpR?F1h8pGeqka$1OIgDOMP_T+-HVGdZ;)>wb-8h?>YH$z_+++LU4%ILaq?-{W^ZK`{GS=q`t(XOuK9VkWu z`cm&V-sRS=@#LAnn3$TLjdI&BE6|jEeJ85gUu@eFEN`rt@e22R&Mr9$(y{2LqdROO z%=yN3Ev_D68WKABhmjlN34H~4T*@`%{~7siGz+R~d9OW~IXED-XmAtu*)CNxb8%Oz z03Md{s>J>*Yrn^PU6?#iAE=!pvq zXSf{g0j;2sjNeO0<3e~xOq!;ACQv`rc;GMCjWJglrLxo@wh4N*qBFq%+}o|hx~IexL?sY}NgYB~>kvc>NgNcnBB}IO&`zX4@txq*Bi92ewJct%XZ3VOd5ML1US2_N>Oom$iJHlNe~%#j$@_} z6bqGiwR&2tta&F_Ma^T6?oH@8_NZ+q6MV{cRb*W=IKUB9iQK-&2_+!FtTomK{Fd%e z8EL@Ecq5o8qtc2WX)_l)h(#F1f24D$3CNysSj6LkXyIiu$}I>N2iDcW2XnFu z@BnH>Yyc;v~01 z`ieg%(A4N=R(KI*>|(Hik{3IrTC3!i7exYGb{Y=Z5Ycg+ppZ#K+r8&Ab1(KOJO7FE*@o)Uax?Zkt__A-qX zOe)w7=?iN-(hXV007c=LeJG)aAFjM_UrRmenBV-StPnqQhK@;YabfaQ8YQCqOsqsX zV|nl2Bxxn%RN)L8jd~QT3yKt|aml{pDT8UZ8MbMH%*!l~0I}D?jURz5DwH?a04}Om zL`pIR-rP`o&`LrHDwIo|hE74xNqdtjsu ztIrB26tY=ebk%kZ3SnXRK}FA1hT>9a8089Zwa9%)@O?XE%my>shp-qMQ&WrZ*0XQx zIWSH+R{a159?@-b4Qn7}jZRkb>lJ=pPg2hTofC1ipYxPf<