From da1fc87b2aae2eef1bbacd9eacb5e1e342628d1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cyndira-flowforge=E2=80=9D?= <“yndira@flowforge.com”> Date: Fri, 21 Jun 2024 18:19:56 +0200 Subject: [PATCH 1/6] Create dashboard landing page --- src/_data/dashboard.json | 37 ++++++ src/_includes/migration.njk | 125 ++++++++++++++++++ src/css/style.css | 46 +++++++ src/flowfuse-dashboard.njk | 120 +++++++++++++++++ src/images/dashboard/dashboard.svg | 125 ++++++++++++++++++ ...ed-dashboard-2-0-webinar-2024-february.jpg | Bin 66608 -> 236255 bytes 6 files changed, 453 insertions(+) create mode 100644 src/_data/dashboard.json create mode 100644 src/_includes/migration.njk create mode 100644 src/flowfuse-dashboard.njk create mode 100644 src/images/dashboard/dashboard.svg diff --git a/src/_data/dashboard.json b/src/_data/dashboard.json new file mode 100644 index 0000000000..e0742b26d9 --- /dev/null +++ b/src/_data/dashboard.json @@ -0,0 +1,37 @@ +{ + "section2": [ + { + "title": "Effortless Development", + "description": "FlowFuse Dashboard's intuitive interface allows you to drag-and-drop widgets, buttons, and other elements to create rich dashboards without writing a single line of code. This significantly reduces development time and empowers non-technical users to build powerful applications." + }, + { + "title": "Enhanced User Experience", + "description": "Go beyond simple data visualization. FlowFuse Dashboard lets you create interactive dashboards with features like buttons and user-specific views. This empowers users to explore data, filter results, and take actions directly within the dashboard." + }, + { + "title": "Extensible Ecosystem", + "description": "Node-RED actively fosters a growing community of developers. This means a constantly expanding library of widgets and nodes, ensuring you have the tools you need to build any dashboard you can imagine." + }, + { + "title": "Flexible deployment with FlowFuse", + "description": "With FlowFuse you can deploy FlowFuse Dashboard along with enterprise-grade features on the cloud or on-premises. This ensures a smooth and efficient development experience, for a high-performance and scalable solution." + } + ], + "resources": [ + { + "url": "/blog/2024/03/dashboard-getting-started/", + "title": "Getting Started with Node-RED Dashboard 2.0", + "image": "/blog/2024/03/images/getting-started-with-dashboard-2.png" + }, + { + "url": "/webinars/2024/node-red-dashboard-multi-user/", + "title": "Personalised Multi User Dashboards with Node-RED Dashboard 2.0", + "image": "/images/webinars/multi-user-dashboard-with-node-red-dashboard-2-0-webinar-2024-february.jpg" + }, + { + "url": "/ebooks/ultimate-guide-to-building-applications-with-flowfuse-dashboard-for-node-red/", + "title": "The Ultimate Guide to Building Applications with FlowFuse Dashboard for Node-RED", + "image": "/images/ebooks/ebook_dashboard.png" + } + ] +} \ No newline at end of file diff --git a/src/_includes/migration.njk b/src/_includes/migration.njk new file mode 100644 index 0000000000..b3b9c04932 --- /dev/null +++ b/src/_includes/migration.njk @@ -0,0 +1,125 @@ +
Drag a flow.json file containing Node-RED Dashboard 1.0 nodes here.
+ + ++ FlowFuse Dashboard is a revolutionary tool that allows you to create beautiful and functional dashboards + within Node-RED, the leading open-source low-code platform for wiring together a variety of data + endpoints. Whether you're a long-time user or just getting started with Node-RED, FlowFuse Dashboard + makes it easy to visualize and interact with your data like never before. + Much like the original Dashboard, FlowFuse Dashboard provides a set of easy-to-use, core nodes, but also + provides complete flexibility for customization and control over theming, layout and behavior. +
++ {{ item.description }} +
+
+ Get started quickly with your new FlowFuse Dashboard. This migration service will automatically convert
+ your original Node-RED Dashboard flows, and make them FlowFuse Dashboard-ready.
+
+ This service will improve over time. Currently, we support the automatic conversion of
+ ui_tab
, ui_link
and ui_group
nodes.
+
Looking for help with your project? Contact us; our experts will be happy to provide a solution for your needs.
+VUa_GU7PCy z@+P2wya|jN$A2Mz*ogirg>=CRYYNg|@-Y!_<`u~z%U|`A0D&!&4hw(>&Xr3{%7<6b zxCiE-3s*%(Qj2ND`S8Fh(gE}{;pAyGt&lgWv|ub5#n-F}>Hm=a#N+@D#6O&@SKyI~ zbcr;8aYL+7Q7X=n&Wr&z0Ib_<_C+MXdGG{MFvyiNr*ec_&=pH40F(ck=z#_!U!(6; z8|@9an^Ld=u{9kzT9lURzfeFS@AgygrS#?b%nnEFCEK4jCXK^VA08`DGU6bocc!%F z2riUNG@Dg8<`?ggpq)ZX(Li&e(BE}dS2P8WtC~Mx|A5okk6#E_m&$+Zu-piq^j;-f zcGdQ%zU5xUCs3@Nk-Q}usP%8kQyj(K?e!!2lM`ggk~Wxy9Q5$)<~~uhX7={x%`81M zDNFKD)G^MCdn@fqqhKXs1};YUr#Q(z+BSq?V!=Zcl?9nEc*pV|H*mJmOuZxxu4+SL z9nKh$&Cl%h9u83x);8=@`Sz<4fe?`3rjZ?qOYfueB&$eKNP9>vj}#(>RYXtKke>NO zMv}wrRjTaxJ;w0}?#XmlEOm7RwlM)kSh!OGF4|Cjwl@K*N~M8qcO=6S1Zq=?3_;8p zWw*taw|}q#N{cTO%}ROFKOPaAX-0y$*ZS={yw zI*Cj#WxffoA5IaPCA*Jj*S7m^VgW;%DR4Kffq9XrJ(joOI`{G?;mp{ERi@i!RK^!U z5(kHylH*lGVW9;&oKi=A%&Rqqzr3oCOT9X;t;l0^_#miYGZU{hp=Fq~98d7xr2lVB z#@Rv1^?P2rHMBObdWDfB9i%Xv?CoI5qrkxy^6)X6`A%Quwm2K!sJGUsy;e=*L*=~( zts^I4xpBEltFx@`z9?D~Cf2QN;loRCA}b3&*zq8a2}x?LaPoAE3~An5t1Q%-Cu6wy zAvF8YC<6M_e?eaZ{rB)3^gL@1&GfuSH+qL2lAKSA!VoM&scXlIP;I~|LhSF~Mx}*u z7vprO$Iy?$-!{jcb*5vl%S738!)d6m8Z~4uzb~Da^YX)460G?k_?01$$C1gnn-VrO zDN*;SG9oV2j4VS^_&WD;$W87>ALB)O0JU!5*T6%V#Z_kOOnd*VeB5vO iyVNY zZ*bYIeD;XOOi1%#|N1fW7%5JpAsXckgMn<#fYYO>@=$)=mP)JbNeS$6;)!>S>rWkg z+h^C50nRzd6VXDRjD591b>dN(ARx30*X6&oIcp1(``~4ZH{1^ot;06a?LSMyh+H0X zk)(ELd{3PuAYdwIvofE!Vz6EuY-DQhSZ5ko?`R#}t&L4}5wBtR^_rSrn8RLB?)@PK zHSdWDcNXW@K9jdUb1(WlhS10OR@}*<%@>na3ICW71)Zvp%x{1FaUb!ghP?V_5&69A zod=VZ%c%8&ddXze)iG{DL?X-A1wpUfe1u8Y=X(-64MRy;y*l+-@0B2<6zB52cgi#3 za`gnt;+SNQWSU15UXguJB0{>|-8(!;h*TIz?`8VCZYMspS^JOe-7SbbZPS_auCJ~f zazT#MzIkfyX_pZyI(u2O5<-$bL!G6Gfteh}8~-f!<`E}O7b<`H?GNTbZX{f@B{t)J zQ!TwRA)EJ|TCz&Nlsuz}wMzYWoMm|>8l r*J25> zwrJ3To25DtDNBbi>`oYGD^FA#Y8ZyS^mJaP!&$-0+sJQXguGjTAQE2uy(!WvR7s-m zsn!B&uBbOl(I>~6b)A2u!xi6-@N9yzW7V-faJ=xPjjXPQS@bDzmA3fM0#dD>HIRSW zU5~ZfUddho6Qd~zg~pWcKB?Xa9u+ISo3`+@U(9CYyQZpLJg%HxzP{wF(vxn^!@Ri7 z%^h;9=I_$|g$DOz^FIFl)CVV_6`Twmduzg%MDpTv8D ( zk|Ao +7L8a9Nm^ GmpE=ay?4Y-RS< zDO(PxjUmMa`lO!&=WVKA2IM3DA3EOu%Z@t8a5dj$`!2itbY)dz*Z}9~A$t;IMV)C= zZ$CxL78yvHmXs_|Xr(XT &Xt@bWaDiLBa26`Yw-tmz|KkH6=`vXHOu zqK5(9Jh7DvOE#2<9;se%dGdO-(#!(Z5)p&v!&6JeOoVcHm!%qv&NNj0afxV7AR|eM z7)eq9fTmHy4iICX34S(@Boja;!(nmA7gK%(+o}P;F8KOc0BBQMoCwH)7p2W#CCbq5 z@1_vL=auOG1z=4D%LBY*S~XC*cn ZNKY*YfU#~aS{Qb*(n(R7afse6sz=@|k9vuSQ7ts=`yU1diW_Uvb zMV{Ui7a4=?2e9>Ihpl0e4C3!)-ws)ELa>2Dc~SjdyY37VO^)c1V3gbXvMWE$AJi!O z-gAua+g})B)6m3dDF}Tv+={Q?>>@y$9ShI%Se6ojL?HwWaw5|KL OIR6Zh0-f_epFBBHLB+ zb%|@>w3DaNde)XT;rbnszqw3YLH=xGl-xW~i}Pdgl*Nt)mCbG!j^@f?;%?W@K65iT zBBy272`0qZiY#i@rwWp*)E4kH{}24O?dIyj#k~29I5Z``??$s-d6*%bYGTtOHgD=j zl#dZGxDoh)zY=b)+t`uD_exo%Pu#z8)xaB>trDN}HqgOA* ihT9V6nBa% z&v6VXGj*Q2+v>~l=43y_sX6o|QtXKTXtfehcj(~I|3fTVGWqE(*})E7Z%;D<#~Np4 zH~Os?%r!DqHL>0a{SlU(J9mxTRoKWa>|tD3t1U8qCxZ=YoBY6?eUtBk{}Fn;W5VvA zIkjp7$|?l4Ufk0En_iwRMF|^I6B{LQm>{yaQi8>jqR m_%mJ#k&-#Li z4v*`W#PILaU*2rlGGkbrcCkh4eD#V^mvJ=vSgql`^D*M-d{m!S>kBzwN@C)z zJTrxR*Ya+LBZ1%|)n+o1$2VIuyFUEj>$=3>mBjsO95d30xy{&<1lu}|xOx{$nsC>2 zd&+^G`b5@)$g)*VB;3vm;|sBk_a3W-ThB(dO>10@V04|MMXG=m8&{vGNY3TojBib0 zWMnqqGcoWE{6slwB=vY!S~X=#Zq#gdZM6at_9M4*2Hcv_VX|==nAF3Atp?$36~CP5 zc(D~3k15&DqZ87DIc=hxmZ*M15Tk_nM?*il?dzs>nQtyb15s`TLa00*DtNH*7ba zVb33iX^%>`TKY(F1l@!HQI#h-@Jjm(Sg3&38IBeo-9%T$Scgg?_v6HyPW=`ibDA|1 zF^Ndc83g(aSvThI 9SVKNg~!k&Y_3#<&@mj=oN#3q_NO`Ffp1|C~e0a z@C^9wXvnbX5#%7SSDa6AbKv6KIY)DZl 9i{{z z;eH)vMg~j0Nmxc#R&FNQzoU<8sB)yVi1y<%Mpl*<0^sj;pwbF>0G~Vr_enY4;m=7a zvho#}dvNq@zMk^%%gBg#35P;TjmOH1URMsp^h_g4S`JcoHq7gbyi-+_p^+%ngSkw; zoz17(<03s5PUZru&^=(3zDC<|?{?@$x< # zMLJQTvMDZysKb6Oa3f~PR{d5TCn0=`Q~hF`-pIV@iwTe3O})V^sh59|iv==F%=oZ^ zkx e1tp%Z7kz#@Jjpu&`=;skeeDm*x zrJC7K@uMm+ify{UgLbN2rW%IE~9YnTQ+N|)%sd~42t5lS_4T9^NOpkLWvkSK6t z%q0FhKp@BYFX$6-qibH9=8Y8m&TifJzaaZM>eKs|&SzZd+Fkmh!6$&fyCMIG)wu<= zM}9Lgdz-{ROyR+EQZKM78}{hq_s5IDm`It2$8Svk`Rcq@63FU9P0w55RalpOqyXOV zOZI+E8E x~RcdKvQ~c|8soBTl)8$ic=De%R{><8A})BY`_q zc8=qdh C7Z{ygJwZb9q8Mof|i-;Pe=1TfP{$aLo% zCu&E|4b5LrIB|N-zZ0hPJMvo!doCUlfGh$@z7>APj4>|-|IAn7N${!PcWK%8!fc7` zFG%HPOyHDC=((fw-Y1#X&zS!|$0_{(CYxs0c-bI}-|(}-d{w|4mOjh>bkbg7NRltJ zsWc$J>csqWN`ji2it+3KbLkRDtXbBGI4F96`DPMysDXHx@~v@Ie6~CBR~(K;^Nb8t z<{^sLFe$jA2*1QX(fNoXH}Ggs*E3_G^?->dpvh~Dqo4 7H{BDs=$pXv+I|U5)?(cM-Y54FRYx#jgSw(t|ZZz5MW@SCA;|i>|9?7#=eMc zvBa{FZZGdvP?NHB(bzhk;!~|BYae-af~trkT+gKz7Hz82xp_X#S%`VfU&Jub#%YnL z%&|rJQs62vW6f5VDLBG&lfm&mh|J1Jm-v!+JheO57b%^n!y~CmS3b${dbhJ#R2t@% za9tP4p;xB6lEZ|197)PjLHT<*U(HPwAZCkHoy^XzN0uX;7b!TR`_GjkV*=mFB$W~} zKbA6Lvq3RTyAna>*J(gUBddt Vc4K~=9S0*W;+0obS{m|$GlaUNu_}mwJZ-&1yaudF&aBi<03+}0286KG8`bZ z^GDL;K;v0d06h7^NEf(&fbO& ygfKN^sss08rt*?{j<4vc)rKW;{m2TG7h(=}mZI`GSla}d#^fJd~}(A9fJcr-kn z=iuY2J TcdYOY^jlHyR~1alQ7ZfHSrF*=SvNw2qr>kS+~7 qPLJOOhiu!Ce=0`i?%ebz1FRe9(6Vj!c@^-vGIbA$D2N3Wa@^N}y zumUS66xVMJJnW<;G@|(~F_4{kP J9wj^jl*DuZZrV8A;v8 zvF1sv! ^*t7 zV2~W*;bOD8u;em4c!viEe$pFJ2Q!WBIt6GG^o5xa1YuH$iMdY3&mG?Q#Jyd*LG*j$ zSW)D{V#-6GBfw7jFa??@=yumm@yIw5(BLHR;d#@j+hvTPJN%B5hrYO_fmu@`{98@J zWQA>7-wCQVWa*r04I=jKy+E2+aO28FGVq^aYB 3O;1C~mXEjaU13tOY@oQdJ`{t?t9VTMPR1tKQ-9keJ&) zSyhW7?(4bdXe;c0c#zGO8JjX5OqzY1Y(9KoU)-wS+#T6zw&fl1)H`b3->a@F^m&Ys zT8Z6G@!{rUr#jgxs`y~x!M-Lb+2NQUk*sEdQZQI7D&DdnMUk lUOIpU|y@e*3i?ZI3rz2_Qrk3=XP_6vF_o)Z vE!Ufb)I{k$zUudfjV;ykL_@JVhhznpshOZPyVlyMOK@uGZnLaus|e}#aYR;g z`8PgxkH)-U&q@QNiZ?Ni&8y8f8bc9nsD-vk39hlAekZE*msGJ9dwi>(eux(q85Ahk z=xM6NBE%a@C3ittt(d<$Y~4COHKX7!#x!otx`uSewi;8$fi|nR76QQn^!<%+)i!TQ z1!(Ryhns3Xp8f@qN^L*Y80&GBQ7qdjvmU!1MkX|#y@vp$nd%a(B`Ac{@V*%bsK?=_ zA27;eD=F?^q UJFLckE4oMPKzzAo|`uSa+U KT AEzUA4`g+x4qMK;R!eB`?a`B)U`u)gOjRj{=5vi2x1d7*Xn#X@&D>6?4A zJKx3?g=Yzh4zASIE9hk%QO)DZP8UpHH@!(Uv&5+P7-)xqzi<}vif0Gk#tV}!)zf!T zY65?7L`u(OcOsi$Df$}DWVZubHdvY9PouwG0Y@t|a9Hx@J~6wgITCOfLRnea?zen6 zN{d*S9qbgavXhq4@!q38p$W2LJbC`r6VG#GB}Gl~=a)!HQJ9sBnL^(Npm5GS+IuhW zcIWcQI3=;cBcQsC?0mrE3tEZ%&QUb-Dm#T+VR@UJ_qv`B5TR9q8ibU_kg6#`b$R&` zLsUwz$tirPa$06){4K+={yYXLYvq`K!ve5{g$=TBpMfm$;sz)M%(9wOMZC%;a=6cJ z4Fwc>B%bBa6 Tw}|_N<3M;xe8{6L6r}&>$z8@ ztetE#k&%yWAvGE438`yaJVgz$TY*3KYXtz pA!PEj)@|3*u}h(F)uu6N-!(GGvChS%Q3%$Q2~?yg8aF$M{M&XE(TFi z`eJl+@5y1@=Hkm|Qh-W8G$~ z1gYh(YSHm3DfM<$DM}C(0c|~9>MM9Ll@c*LPFEQyIhRaPrR6N6;fPLjQ6^eT^IC!+ z2W?hP+FT8cr2^D#18TLgrC0)9L>{cqdX_)|fmgb=AW)1+Oz>Z`2B?NaTk T7u$CE==Y0JII1x51(*%m%>QG-YT2aGUmjYTf`l0UbaH7C;|A zR4fe9D_F-;!lHY%%l^e=(gRtbQamZ1)1uc*^x3~X`fV|-nw7Q9z1*TB250Ft)pz?H z_IB0ZRJC)sS(z-#(+!3>kHz1#4h)eP(o=NKpul3!*J{yas1rpT`6+Sw#6GWjnOS{} z?_1=t-jKLqMi)<5-Y(xhIV7t(;7nm+AYjeAICw}Jr%1e+)0H7mCovCh!GLdGC#+Ua zv?Q|&U8N;WC~j~+5PO%G?MR9)M1Rb<>m9~JB0BT&`W9e#QbhFi7D!{HA@{Rf{UQ@s zN>vom%e>6Wack1W g6eEm;Ij2E?X|n{{rY1$ zIDeVzWj0EkE$Lw}f4qcz8jHh*$ciD3EwbHwG7^BFxx@FVB$}b$`RM;VlB)MH3L^q# zr-Uu)59vT+5z+R3+0QIa1xhElbCP)N<$Bfc=#_ao+b7@M_ACNsG@?C|_VMjP4_A$f zaqQM^?+G{ScE>!z`lylv;RD!5Tk#Y^dycp}=$ZM_CZDcv6uy7 L zb|y_Zf0_$Bj)3{7gZpkP_lsx3yzWx=Yz=SDm|XmvHUj&iSQy$ERNx4Uxi`(veN=NC z(I<_hwE^2GfwM)@&m;H|BO3BbZ8~=qjc)wE3qC;in|OZ>Z(vxUt%rcQgsUzCvYph& zoBHG_Fe9S*^qXuoR*LubUNmGroe!bx1q4atgK%5j!w|Q!-&)uX_gNd%uB=Fh57ys8 z$vF-k4bvZ9J91ByVwXVw;+d)jh|>RW%j4hgCF9yDjE{Ei&-SO3XNYVDgC(IG!+i6% z!Ad6j*qX-i!Ql6LsfMG8j0U-g8EmV`=<((%>Ek*i4%^^Gi}hQER6k<7cu0G5?Rpp| z`SF-5S`&gI&)1%ooCd
zp)6pg{l}MklnmdGG~&B1x_C#&kbpLob&XSdQUc?!yOrC4nU;5lEr#PuoGr##7N%~c zmBEaOvr(OwpbTS>P+0^rl`W&O15%TbhF`~-_|DBDIzx(UH^;V1lTEF9vN9h0`ytaT z%Qr$7E8Kc>k-U4{$U&xMBs4egx(@ZTA=Bmg@Sohz9%r8iZNIjx=$-=rVbn&b`)S3C zLtDNULEYh*8qQVT3>}GDr!S%XLoxW^b8vRtPyl^>%Ua(;bk@>)&H<-#6qpOwFQfQ= zLrR*Mn0mLi3_~|X4bnZEjmEj%@)DIQcM3&0f#M3wAGm*E>DD=l;WsHnP$qH1_7h>7 z_;@v}ahwfE^t$#2WlEB_c?t~$1q_88$vwt7yy*WJuKR i3vHDQ*^Wd{ zWX4PG21;isBFM)Vyva8pmJ`AfrUSI-xXT&3zKe?LJ?|S*gb@~!+7V@GEZL*WL?=+D zA5}9??B&xvF~;y*Ko3V1%PAP|gorxw#I$|hc=rWSAAjqe$qx>~Z2k2uKR8^=>2;%E zL{iHr=@;I}OmSR{1&V&~=lXA_bck9iX^_otU^>YYVC&bnaXQp-Es?Yz^*n8D*BK>J zT1IJ&b@k-}pDg6{HbQ@}RnSX2-gslDlt|rINjol>rXcKLmvFg0v1gRkN@=NtDU{aL zSCH3Q$P<3mv=Ta0_FBm9KfyD&2@bzY?A^OU)i9VRaCk#T6dQj%Gmd>i=W_3&l*pnE zQ=_koC0kLQ
*4D{(uT-O-jVL5_zMgDW4<_e30&1JS~)zy2vYJ=Ds0FV Hi+!G@tds~QUaZ{mO5m~j6f&m|bhD_;E>VKsgUs|t-oPU2% zidf=6Q>j)&GZ&x1MGjS5OrUh(?5sMArGm|VUSQk>JB61*GLJ4Hgc_JI{3ehD8>_OC zG9uX0U(6yA&r%h5VV1C|f%00??L5EaqoW^J3Rhw(XR1K~Wmu)$9HE#!Ez2V@f^+k{9uOxb)c;N;p28GGj*$)0G74#am%uJyzeue1(tFNZOf4m(4 z1i4#-@b%ZL5Ky@KH9(22_F5eA)f`B~Dl9-!0t|w3;bc`(X*#qLY((YAU|KQZ*M`Hw zN-LnYoF$tQPm1?zouQg&3k$%-acCiq_}aaaUV#*ra&X%I q8i*FJN!9FZMi=B5r- zNpekL=CGcEp^p@}Iq^F#=lEH>vOL&$k*^%AVv6s4KQ5XQf4B&oCQqMYLm)OIq-@Dn z$X&a;)L8oqVvb0e8FQQJ+S>aAx>@gDKy33LP}~YEbVVsP@~LoJOg>f^#eV8J#}N}D zUJ7V2{T&o=?w#klktYK=Y^+9yz@r>Rulg`jPs^r#YtfyW$h*p1<&D$2Yh5y-XwQvn z_K~Q^JA&`&T^`Ep5@SCmS031P*j@cc()k~g>A%ZnK-&`ahu^qu(_w+C*0wFdXH_Q3 zTt<8(AhGG}4JD!y&w$+rthLbsp*lgjkLAf2LS*Sj?~7^DSyxtcbjKJ@zZ_D#%9&H- z`TGhsw(ol_-JPvbop <#3F^c5V`x;LzUnj7C zfLZw@qY}vuM}HpHkG!EFkct{eVEsYMs@jK!E+vLkXZV?#R2Eusx7Hp-fgEP+qm36K zIsN4uJ&%q{HvpZGrv1aQDVuFpM?DQL_~C7Ok3=yNK{q+}mHzaPy^I%>3$x$D=DuJ} zfuaeyhiv_7b_;< &URr zzE3a1u-=wV^rOS46jPUXNVw@2xtcAfoaoE!>kLu3_?vBWNSSJ395c E_ATNDVgLG^rLal*8IBU4~@qqI=fLAF6(4n z2lrW4Qt&sr)STi@e#ku!FI5zNqFf4 zt(Otl`Fkqc0hT#C3G_Zjjf=+ZU(lM_mgndbyB1_U(yxKZ&*{gNmD%Ov(-aW6h%SBf z*ITukmf4;8PV`bKN=wQNUmA|^y|B1K8ZBML6}4Ac!V##;3c0W+)LK~hqF!1tTnWt{ zF;-{*9!7`p^sJJ+5Q_&`%+p{a6jfn#Y8OSnz7&L>WaDRjN@Eo12n6b#8+E~5HZ8R# z71CtIe%WA}^nGssVp5oI1I*!2(uCWZ85(E{fjW*b?C}1oI~~y4 &^-tx=N4!ct@AwWu{;sHMjxxS^=com_lH^1Xt|y^< zzvOzRb%wAZRO&g<{q=p+PLA1ZwkV!fpKLxKyaS_&tN|3KWCG2cV4%TlQTQ@SJGpkB z?q_pi+g6GP^0G;fnz3sJR!HVk`tPUPU4|H)W5@Rr-JuXkCB~qw61s}6H36 KnSIe-!nO1nUQKAtR>6p${AwZH33-{%IN~qJg8t#C4&Y#LIIM8q z^`5A{U^buG_4#I^k1l?>F2j78)xKU6*s-17cx_d>liqIbM1L?xU|1txNS1h1@>_J# zA9}93RPl@E?`P^!x#ipvkVD+{%J!TFI=5_k_E5MdZ-}eRdNO^E)DJfMr*Ei{G?MEA z%$Iqmhd)*K)QzbBX{P?4W=^zg2ynU;&$E}pJw3$N((WSbhUWIZHS2=7)Zfvji_fOe zZ~3fKZytpS5?7VAZTGX}{Ld}t-ZNX@pU+FZD(sPS2nr`Cy+zNhk{4M}*G}Fxk66zS zdV5bBr45vwyK$vpvMb^TnaRcZ=!;R(q}{uf8`{P{A|d#|?R3}sV|r}%Uf^jKXpZ|0 zm;cc0%kdm(c)HI4*?VTMVA!P~otfc0w-eA?Ag^6sL>Rq*oT%ZKy_j@z9+pwN2@o|p ztnp=|3h2%8nl?VI=HdJHYqYgRX90cBr5<|PHafi6AYNXd8uE%YJv8&b_Px2J1e^>O zV$?7_HtoHv0lKEPQGAz2eJ@~GHRxgv<7+po6}ZYM0j!vR9uS%3)zE)f`3m&C^Bh_8 zKAVRBwRxi2MxcJl8@RAKIb?tz{1*hY8mh>K@DrEjN|lKE9dUU2J? Y5o8ZBAtsa(Mym^AOK5!qO_ItllJ#B+tzUU#*6r@z6{U^KVNjT@uKjv zYEi!X^+d_=D=%{Wkd5QY!L#1~Iju(Bz r-B>g1$X5 z=V9sNSHENNjklePYW#1WRyv0tv4wgvP_wRPrFTkaAC({q*Ast1x~lKPA0U27z%u$A z2KZ#p&8fw~+Aki9$C+{OUMx0%xf$F-0b?+WPQPXsnKRQj85a*jt#rE=km8Bm1R7Y% z)58(!3ij_O{B)FO&c}K8d?>#_g##lf^Dp@e(ki;Y6{x1gX}tuXBGiW@@$e#hg)n5~ zKopexaLegoD}{(33|xi+$qng=wiwp)IfLXcD9hoYU5e=mz)?{j()Bh06O9t}J2vj* z-@f+D9KJ8Q k@M4E5TD cFf-)OP_yE_N(Qz5fZ=QAiTPy1Rc4+FSlxDQ3ho8k9lVb8FguRC)b zea)XHi*plJ! lz$-?7q$gci^^lFZhM|Vp7cn_&y zypp`J1P;WW{&ZHVx+l8jWn3lBVEqQN5DIWFM_vGEmfO>LaXNH5{qKY$*e-#+ C=;`7wNKCT*bsx3jJ9KC%glnk# z?U%?@$nDerBJM4N;_AQc&&DMQ-asHY1ZXtDAq0ou?iwJtyOZGV?k _4Y~oImrv$uf)s5uDg%Kj{N#4h?V!NO8!4Vk?(%)6OhIQ&M6|w1Ls#UyR7# zk)R%s!53_H{5MFn;O|VXND5~c$Z5gka|D`yAd@dkMEQ@bvFM*pUn44?K?GG^!Jk$s zTN#+60QL~TB2pw5;?IVPDF^5tbNspeIelA!L~7-I94fhjY(WUlA1-GcwOl^3svu6G zf V5>#UjCGlVTM_jC}rd)t#A>*J!OnjJANH>80!g&U0( gJdOO1>dkF(1i2Ol?@6Gx1%E`B_zWZrjI zymp+H+yzi>|4eiKZJGahLAOAba#eelvF|!O^4Ro+(TAnbQCtu3T@n+uG&bu4yp>A- zSf>H5Og!yem~VA15r@E(L*zP7qI6fT8KQ8p8&jYKhQ*SS9arwD-!NMAN={<{+Rq7o zF>|PU@mcI}qAG_>{>4EHO@a5hkVT^hZj|pKXRnlX6RF qv%RQtguYE2dTIa$THKbyOju=P7_Zf6i;oE za(K$t$mS1?*l(QWs-3nc55-DR$L~>pe(=ssSJ=`t;K<;svf|)Ts+*wGCyNA)C*YaR zF8Z*smlcuMA=rA~|GLu!!lktUqLUM4$0~Hno6cqJsNaj_GU4Va!)@;Q=va4y<1p?w zNXr|zW~;>C`?x#tVMgq{A^dqc@E4yr$-+*V_wnl1GlkcH>{Z`+$FoMG>hqzvcbn3` z_lo}i^;XWR=tht48kfLteEsZ{BNOQXpm0v_dbM$`)u*o>E37?_tij3jm6dS-{s8rG zIi3S0S}?dDq&MeM+g7todUm*JSosDriCkgA+t>O=Rr4H;t^YP)+bKiR*#2{KC6bH% zyNM3*^2GWqGgHz%cX3nF@t>{i?!6wBRo7G2?o3XcSTOn7!7TZU&*SZfGzq5F^@m#Z zd748JTrbOp@n zl4RyKWAlu=tprAsyLD#AD#oL=fo>P4#>~9eXy9{vX3h(}t;`Y2u`|!UWt}!j_eJk^ zr@@ZK4`a6ikq6cH`44Z$E@C{cD=_X}{s!sW$*!nm+NaxgG?zX61|8R&@qT$GDAQ~Z z;af~xYg)Kx`{)hGpdP)?;?`_lEPZ|DM(fdl7_tWuhReqh0E@!O393aZa7)BxBY$0i zB{oy)EfP8Uc2^Nmd5e0*puyNBw|7*^ S*Z8B)Jz7k%XMRC^}IXV)C&BB^mTxd$}fP~w3k$AkS~E* z<)-G)z5MEJcsm~N*NqEb!UNl`DFIdDPL-JL 1YGF0%`p;LN;g;gpt zMd-`U>&UXcMLrZdlY|Y|5hM5X15OWhgsN{ZdHH!~DxjT7$oOuT=n>I206%%Huu%TC z*c>@Wj}+!frX3(QPfZ39e*Fznz-bi*Mk)>tNIi-h)cLyKw$Z=RoMGn6!VQyv <8{zeHww!j5FEDWJfs=1pb*Hl&11g@iBlvdj vFx Z6p9F#{FF`&|hLFswh23#s&r=L4rhd>jUD6LP$ zt;~u_At#M3L+fz<0Hy{DwV9#nGA^b?XPADgP}R+?jxI3$ngTNqhKItiW*3SGh?ocJ z>nX)`Qd4%KO_2EHL3#VXvJu2Y$$%!aKTNo`m_mj?rL;KI2m<0z^9t22QSr3h@)%P; zv=v^rr;x Xf7TX87P zmz(f+$3Ow*bjkp_nifz10c >N*Ip1E8oI;vg zUYYg$&oT}OJYxg$z-e+EXyChcp*ar7j(-J4{%nAyKp9z44i#IF8r4Cp3^@sK4CGd! z X>hCdGNKXJYaB@urD%)(4^-YIvp?gDOve^FkT{Q0ai|19(V zt2l!9d4GvRX#a4o{~)~9L||#aXRmOObK3dX82;qry1Kq%peY8zzU6YDS9u}+G}7AK zaZF=1tM8ueS~AZBfYXeA=3I1hUnHCNu}izH?w7|HZ+ST{mj4e5wzI0mhi2!hR=<8= zt=r< H>)1X&TyKo7jkXI4`k&Q|e&9gn3o>)dyQ$z{1s4`fZsES{>KZ-s4N z&VSr!a`|bMX|}gAt_>!{l$@`H8k>I^Bpn(??Ra zO>)NAQ^qQE2xvJizWB&zU~1OeX9-TDH_)J&t*feK%W?vNK+cTpW!$U4bosx&8f|e8 zc`@e!_U-*}9S$x^7)zzin1O2BhO6?E$@#GjyBy3RCe2P0DYT__UtcSbCK1X>r8w oG2||-*(P Z?Rih90 zTV9~R&ue|z9Tyt`-T!zz$k`NF_&_BL^Bry+HIA ; z^J>64Ny{<@69Hc@(XXl1kC*|PZ6 1noLf-? zn*JNr+l(5%S1M&|Io?N-C(DOV1UlZ{|JFzs!uB>?!8;2vJMOp=5w}SdAg9((&pIH_ zuL^npFDS{Q^5fpY-dw-A-Hl_Y!c5Lh9ygF#K=e6g4dL_99)8RIE3uI!P3>+v9^J+E zFe7zQ7WK!_`om;)()6xGNIazijhD#|1{y`AfCNEsAU_Bb19kDK*S#s#+M-XK2guii z$Zj6-Ca2-r(@~gu__6uESJh-%`Of1+C#nw5^0tGEWwc55!O> (>_nl;I9T3$Eq?j=M8uO26c?*omyB8wf1 zhYFd}AV nZJ!q4Bz45e{i0g0f?piYKw zqxQ>M=aP}8O2SfB?U9Mc%6Oo7+@kQyeWrz?_tg1jpO(e$Q@RaNyCkN;#VxJv+`UF9 zd$M%zh{u@1=w7G2B}jSM{h@t)`t{Ug(#yV ~(J6`EJGpu&2TzuMYx6h% zv^FxaQ^u1gh036gaiN0uskFXCK?$iu*7sP2f;@|7HZLg1F>v8Zg_>6-=DkKv_V)R$ zPh~Q8VRs$8Y^Bg<>6gK;8b0~UBt}(u(0tsi;v0VhMk)B8vNAvayd?txh6vCXvH6OF znW?jE@NrM3Uu6f-V`9AWCS#&mWoI)K_I9pR-Ye$6lY+hWpxByFR6@;E_$ za$xa9H^i{MpCuVa` zQR?A@7`#*jK~N+=xPy@o#tHV;L}(+;Tq!`4(Nc7IDZCD->c!pnQJ3K#;z40>wVujU z90YXP24zav&T>d@gRqsvAtI7N2-=jif*5BGKqfpI9F9^Hu$oW7>Ry@Qcg{~iHBs=J z0RRWQ{lZ=ZdQ`zcn1r%$=YI~fKxTxr1n`}vNyi8R{CnIWK(Zp>YzH+n` vbO!s4r<@p!tPadZo%7xEWbiLY+SoeQ9n*Zx~+xFRxX4BKy>itaM zs?KQ^rJ=3a6!k}N7gLB6W-?o=U d-dxM7`QTq<82UV=6X1j=KQQ?+fHowYG@HB>nysx{Z(LDGZqSoC>y5MvcUXQZ`u z!hud15IDjb$=R4<=DuuCIei@;)S7;RWtZ6-Bl9_SSvW#8)+j4)>%-^p_uvr%RM0N* zkUe+9h9wv4$b7EYLE);|uZxRUK1il#q04;l=P=L4;ZDIzOS*}S<;T$|ql-%>Y0PIk z{t>ro#CwGM_5zpmD@fXQjuXCYw}*zE7z3~2fnQASrSR~q7#JB|u&{8Guy8t(O;6F( zJ1ZB1PpF4$hwie=6JFm+Ht0~7 O&P4N}^8dVafpQJNtBw6nHdmwvIM#aEd5VCLY(Uv4nUH!lVp z;zV4#2FI?-NRD4bruE#l6=YAyg%o_I1$0qCPRJfvylq#L$0qKQ+UFAY#xEx|2N%{^ z;|sDX>h*3T6*hJudE;Oy9;C{ixx%k2=_|@r%lx|}QuB6nwNBx)43leWS&i0%*3Nlu z=*CWxsZMtfPwVKt*KCh0{-p^dHQ7KSlJTz3)c^bXIJKhwKkMVK9Nqua$4I{4py6k} z+d=C_gri!-HvD!ixYZyei5MUya*tLRPFxPM2N6XqCKJc$21xymw{zHV6PUXkeOkri zZn$AwR+j0PfujfKcjl6m+6NR`neSXgG;Dif64dyWHs}y(l5(!a6};5KW0`lAut^R> z2`_8!>#&1AnN}|_-h^g4)>y%9wLT`m-Q})&<>zAWf*P?_L@dUz6f=Zs@7ptk=6ntq z<~&DMBfg1)1rU+(fArEeg}q!v^pTU}7gJ>%6}USfQAEo@Sbyt>HoeIC6wref`Wd?3 zwG{PO==QO$ZXg$JN>Rb(Xk>HFsx%<%HLD>X)6^xiF1_%u?e6}``9axo6mGKlr1dg! z`(pPV7;(l5g>8SDSGmBWZLmvaBURfi6ev_v+-6Rt-wHDPOQn+{(!qre>vH 2%OTTN49o#MZRzKoY* z<1BJ*Z6_^af)u4GA+-!m!^vrdP{V%wd<&I~2c;linUEOeHBt+20Fk^*$0FD;A3KYu zi(r$KTGw6)xH(9}KmPH`L)dZSq+c6e`dvby9nZ+d-Y*!XQm3X!(Sp91x`B#0w*! zjpr+SbK&ENjVNl+Ugd(Os`KJ5I_ai5DyC)xUG-RmVLrvdNJ-d$kfeb+_(7sP*8AL( z*Wt^7?1yL&NC8R%7*a$&PfRU|zb>8=)T0CCC6l$+IwX7;H?PRuDkv*Ef|yIovx+HH z87T+ti5tSuOP9$Zm%W#3a{wc-XDeVbBQQha-DA3i%{u=~aZ{!~rI2A3im*|EQfGh( zKmd@SR478VGFV(JNDd={orB2%g$9oUrk5NM;6*^X5r+xN<|f6yQAW%KeFc;sn952@ z@NxMiO{hvUsC6K~=t745C)XNqwnM++oG449{zC#%mNt>d26Q7pR8opEr0!xuxJtRm zc`6$)tdjyi>?-|ntjnw7rKDr$qyg)Lp#Qkj|LQ?-Q2)!Y?!F5+*3 ZFl{O8gp2f-V9cQMQckLO265tH~w88?l<+SYn`hpYQ196x1j)QgeG`x34gZ?X|!YXgrL z_^_bu{+PVUS6l9_={%{^`<&Ly^L$~^;n{O7;SH@xraphOd~zz_;@uYK{ni!zh%R$> z ZcpL z1=?rms9|Qmy?w`bg!SiZ`Tzby#V)rd)^1Y2JRCCtUOMHp0luj19dDl(T~CL(cP#zh zrdrSSCwY;3L%AI%>_a!px`vIi%!e0Fgr4CN)|^K*T>2*9cyeSdj%%jYvQS%NRQx;& zLn{ FL5Y(w%I=dL8i_Bq=|M*Us=FP_l_ zZwCY^8?7$Nug*z}=cl~fCe7=bZri{KGA2Wb=T+P`b}JnrI*+JGJES4R;#->WuVJTs z5d$^gztN$l*cR=#yse$LTdh3UfmlIBr=$FV($&p&j7-%$UMtBa=Er5%c@$N?)osVD zCRcMn`p`jzlHMMNY jv0caoM|EWJx%q+;To)`nP?V$9;pGgkdyN#VX>*N@+sr>+tC<2AQH%&SzS&Ni@f{ z@G9Fprz)0dg4xJ4P$yGJv`DL6`dOvehW1H||HwP;O!_H4Eb);scjylGqBvK@P-coT z%W~In$p=XtJe;t$Cf_4 k+4@XkfmwoKw0iEz^xyyDkzu5Pda8s{w=+pa>UZc+VKnK&@m^DMO zi(()S#;9B; kwYMmWH=Y zW4*#}P-8x0(~v5zPUG{(0YN+4iOsh}LLxf&(95V`fypm-0QCtey +Su%GiRbF{fk?-%n8M LA02b=YfB#Mf3&)3v)-$BMmTch3NUG*VV|_#SU=izpdg)a+tjEx>8YkII ?P0n+H*7JB*e zT^EKcnyb0i9kJFqVezPY@GFxt0@w@L6E*9ck*J0 t6cJT5usXQ8OPBHVzu1@Q9PPY_!zU9;>DCs zsLmBacTzu9tCqE|5T7Ex 4!43Z&u%-yg6YgNrQIMN7bj zfjf9v{N50|NOdWqEItO|s(KY%9;%Y+wv-?14a_7aMm)$zNE4T~+KEf4aVtAoZ>kN( zx!ei9h43Yi`CRx<7hDAPg6kK%cN_54PG;0k9|Y{RukVSv0**N_($Lmy swS(B3g`+Kgm)`(IR@R zu}E!TDv3^0c?ctd_*~|%a+lkL#W%GLL_dFwMv5#=Vs55R;!iLGv}him%P302mzjIv zIk8HtuQ-+L^swGifw+rz7Oy44k2iZz=xaYe7}ge%s15$yL%s??H=W_u*lle2QUaGA z7WnoFd- %N;TCkxgo8D+&=0N zp?3S6RXuKk#Y_LT HfaWBj<|=7^jAhkH4zZx@ ziDhCP=#nn^Fzo8M5ib!DTTYB)632$-kCzTp+XrPPhK=ePqgySMUH2;=S4=W(su5q# zZlt0gc=f4jo2J`UBNF$NQJ}4oFx6-{Yn5PT^gt=Stul12s<^jQd@|I|&_=&qsIb@- zF>j_|uFX!n55n gF>;yf~sVRGNOT>W3u~RkiLzKOL@++58o9GFH0uVRNAfUuIq~4 z!<&+E66`G$mNaY@p9y}>DuDAky@g6aYbTfq4;Hr0reDhoj|<6+B_1gyW4{tcc5P>> zW(^CTV8*y`^#Fkpg+Zz7rVAC$QA!6;2UJ*{&v`l_Z+$eB5}`Rv=rV&EG5K~XDEFe# zc3GIWZq7>kP_gYCShr`02GIQy{RV*6lf+_yUMZj?9zu=ZKe }e=>c{pmqh^4vPT3{#6v(L7*IE_0qrf`&d#4!R(k9<`=3_U^UJe4 z-``fYM(5MnE+B5^0mRM5k}KLNLG|^z%}XIaV+~MXU@}xvQj_BxLh<{Pf=U(5KgPsH zyZzj2FzNB7M1u~d^#Gd!0CEOXHdkP6=*~MGgE7nQ7GncKWR3BJas3S%1K0KJ$k)^H zh;mC7J5~0+%W4{PFV8pE7=OoTOA2~NIZnUrUHTi8NPWJun0R^=;oXk9ojEAO_uw>l z)$7T&ExW5&0&IDEA8z9N?%DWey@z7&?2jaGo%;CJ5J>*Lkkwl-9Z(TCajdnL^Gy^# z*F0-w4rQ9@cGYt|-_krQ05XoH`i^pzz1({o;7RyU)&8_)`y4KNm3hATto5MqOjI>? z^IhybHu8C;?#VV&nq<6C6;Ne{-<;4zUYh-%e?`8yH1F%9ii5CwlV^YKj^{(`4p%Mj zT oe=jw;N*fp`1KWoa zjElo~#lK18GO60?sP7@Q$~Sn+0hf>_s@+uW#VTjh%XRR!B;V>+BQ4fjWnKRHBi(X& zH7R}W7>A=D9<-2Xl-&r5KEl51BdqbYL7_YfvgJ;9Au~_I*m%6&wRc3uiKTD4wdRrf zdguvuOXv3iTBk2n*OCU?1#ZL37X}s {5SbrVT}Rd4O|Wz3$=qA8=sM)Z{FUs zEs80(a(<-D;OH5BM35;F!(z;xYBY=jFtrSlIQqdcHpOE4JDLOLnl+uaHfS;F3w0e& zxw})VEt-Rw(y1S+uPB_t_QFR4`Z OI^lo(fUvpLWt-4-TRMi^ypJPu&NcAp zz0n@(y^e2XU-HVw`ms%+RH5bWAogU~d-FpIexq~lRc&rS0A(mT&X%A+Xn?|}w>iO> z-xZV tavp%Z|;CThA(h))L?Mm|^xClqcpjO#<}KH|Ek$;eXQN(r<#E@eBX=btcczL=SRa zKnJ^$`#{+9e8zKv`S?zD&wIf8^uYjNu+T-`eVBM6=ef>$a{di!5xeFHecEtdrMT74 zocs-n`3+jX2HGGERg!bp+ jI zFT^f`P8NNy)}D_@=2w|+g4bLk*F(G|pCx~T0+&dhOtriRwj=j2*XocCI-VB!s# ~0mI{=;)Pnt{d|jDkXNE4yb0a4=GwH!d z%KQSVJY1W5AgVWCDrbn^9$4DGWey6r32ZxW9Ux @`sHxS7dYGP)|nH=h=Hqg=SWqh)Yh_6$7QOCDtxG6O Pr@v~40(YH71id>if6=S}zxx=!CcCQ;tkwseF%e||_7=a6Xgx{}u( z${&W!2_fW1%Yu#aBZc`S_!Yw+M9Yr~0x!N(Us}+to}BREap@tLh$0bA8{muqKo<2# zpYC)Fqhii&=^P9N+kTHwitru>&72Wt `YQACK5TMg-9@dKS1Q9+ O$B(XI12|0%;? zjd&a~0xf0cxC@33Q?9l;ENAT9FN8|Tl|Jq3TQ1>Wq80lJew&72zEWAQU$APKS#o+x zS=>0j>)eaLU!xC5o(My;EwqHy;0JRtj3P=P?gd6RGPov%#;he+p>6Dt8YW8#4b;60 zQ)r5eja2WVE*sWIhMD3DA%~lq&~R@&zJ5qtSnHw0i%#L@BG~3FY#OmaGrhz>&05^R zJ$>1_1~zS5C%~2%X5GJqyxg4<)|;x4i4^PmG@PXWS^ciH4UFh;SpX-?j8tUiVQ4D+ zs@bjhwKAeSNe$5c_ZOcjkZ#R~5$;VDCiY48$O3Av)S>nK4eGp?u*}vK#{H~eLD^zI zK@NMTU#D+_aw?E?#+c+3&uBu(;XT&COqkqsr?rRYR|>Q7bUqn)33299@H%)EL(K`b zqo|L3%nH+au!Vu!xeCqlY8dXdxeBo%?PzD9{9>GA Id(Bl@b>&1&btyDo^~C z$UNheIQjg!Ku1gM4EeRKy*Z&_6t~(&uGSH$FGUI(uTTDG_r+nY_6n L zX&rcsXmU7g<@~sd_)KKD(f~nSicw@aeMOXf`BL)Q6q1)-ed-e(fr?Z7&5u(`o_PMJ zC)PfR0(&sWD77gN53kDjZPekkTR7a%4zob4uG=&|AWM-zC9BjbIy&XUFOelp*t>@J zo`Hs&CA^E(xDkT2mMz<}UM*tuci>S7VRwUM_pKm5%;C+)=)rIOnq9UG-mc>xa$rRxU zU5v;iT6sxNh+LV3DYh^ wgzO2oP1LrvQ4g27& zk?m2JVQXT%ub}uNWnKHvNoHt4m=6UJ>qP8EJQWTIE*MlWmnB;JX2|ax4X&*v(#|Cn zZGV1&%v@&xF)^fe|FgYqfpU>_xw*e)kk*=(@`o7(#$&;F${A!~KxU^b2plRW!{p2; zq;Zs`*=WT71Y-J>ndU3hO9pH -u(TIO;YZlK OgYsNpE~+!@u2`$pb5xJF*h{y6&muDDc~CEu9{cL3Bp1`t+Su4>oy4& zQK==*m%#dCQUse3tqcBzia5}Y1A(LfTBH!ebvFli37r=QNGBE80Rlx8gFajW1d+e{ zB!8JdTPnHY?mtYCTVDXwCRbeKJRukYc8K{0@&JZh{aG{R3t!RA`t9Rnv)w(o_hgRB z+k4U2iXAH6pQEdHWK4Q(hwgx{bqA=gz({|O rb6P)4IFC@ME4=Q$-b)Ms%ty6rvWr}*gu+WPq1e(Q!%B`v zG%-RI0y?y-1WvkAR8dwp7(O1 zq|TDQ|Ow zgxU2;R<}31`qY!1ZAHhj7Mx7ZNp0J&mz4to#Cj{Xv&!*Q7B3n^8v0l)KT?LVOmEXK z3^} ?I9A6!Yw(+#?>WYnG3~^Dp2Nj!B~x-Vb32+?8yPfwvwbeNUt| zKd5ZYrgmG}Ym!=6XSw7CBokZ{L|msB(FiWpKh#=Q9m$YQGp;Zjadu1RDN4UKuJ^AW z$a~!Q6!aQai$h||-d+oVzh^pQ@yH8if3j-clE-R(a-gMRsb?V}YIt*b_A=3u8r>=(!;ujLJh2NyaD z{=!wz=yJtrnBX>N@1ML~{0(~9mgTdJwCCir9#F=ZZ!WT)>#TEd{bWtJ|1iv+vHwnI zmq~KbP2;GAs+vbL6jS#`>9QqXyG0xE3)O=$rm`|843>hnuM##$nv~p-46dXB?N##t z-7!T5*Oo11qH+W!pyl~!@?zzYZ-h_wu$1B2e5ByStjdSIkMJ{nV+cE|9IV$2b!pJ* zhAkUq{7$6(V=G5ljVc|U?Soza?J*Hm$Z}%w#$;1fSAHBPCXV`Ms=)A7$ogcCeh{fT zx(SHc76aa)oXoT4*xeMclKCH6Zx{d34?)&a+6a4^BfsC32>jBFuN&@G{V|iH$20sM zQ39z@gqN-WT+e9n|42Z2kyL;3Y=h5o))Ut8>NB09@dG2%z36igLu&MI5J$ytkge>NWb;U6{%QJ?-{ub}QN=PBszkUI}6%}v5FA&+>1o#E4D$e+fya*UH$AtM7 z8~*Qp0bVy=k2+CB1u_+{+Cjg#Y;X=Kfy8&H9$I@!3>F!f5?aN*E&bSX^WH9EnJ>z% zDvifwPYBX{KvKHH E+03Bf(2lwy P4XhqX*+Ix zDqyaz*#Y=x&}98M;xv|6Jaj)%#qoT`bYdFcKPaji_~u>Q@duIw+fm)x2&zWgo?mdz zz4^b0nq?zjkowkbq!%U2Sm$mNV2Vaa{?OxbjF5+c!61P?W=1a9mGijw-e5lGds lsq((q%RCS0q2K|to?41}S%{Oa$)yJlhS@_go4bu2y6sJ<-zGW^)Xn% faizV|8hYzgoJ@Prww!k3`-gR*^wd%QCi7H!RlOr7$ z&tC!0Xmd6udvloz=#RuY9cFF0n=#TJ4^AYvTz_t=Qy(3vJFb;~e9wMXPsZqVco*gS zv;L5zLCbqos+qfq(EHTgyIG5TqAqe>quk1)k0s)JIXwwx5QCJg9s593!*tyGxfFPf zxkaQbaJEYYKA5e_Q+-o_DmFz)1tFv{NkRsb6!fidC{Tp6P>sGpGeg|AvGV~%&%*17 zk{(`SL9*_)Qd)r()s*3=%qF)fdK`lQ0o|>ixQE4ZrRk|)z4XjWbjcRaN!ULnIwidJ z^&oToVg;eI7BdYlL)vinV+smUnuHN2{h2LT>N5;%5DvF>iI%R_Pi^59&WH)hbIVzU zs#1rZ^0+{uH-U;t{fp8%{JDhwJhoi=A1MWnhs)D0yyuNfR#zcCXPh#2s}k;SbQGpy zaKk6)x6v54zHnjrsgu-2OPBN-rZz+@d*CcbQ;shDiiY%Xg4tS_hKyBjJ0!VYJ@r9C z42(U^`j=Rxus%|Yo*z-=)h$w1)M|*M89*jc>}{9%_dpZ#P3G|lqt!aY?2S^&305>s zOFs-qwGt14Zt+Gpe;!`PR@EOGxN9&9EIH}#7H7bpEWf7w6vXRQiJ=5KQ~I^yy>Hbs z{p{h2L=^DJslRli0WCVaTFSs7;(b$AbNm^+C48bucwOND8oo9m&EbAE|I6CLTft_b zKK0u8p5&48Bw6N&Zxf+*$d9;bjdP?M_NwugnPCjihdqp@4AkSTvUVKQ!Nb;=iS4sP zB)A++i0%1z6;2t!R@BdDrVrax4H_ZCA4$^MmL8alGIS~{Vss$O{m@-8RtHX3PpisB z)2>jG=K)bw>q|t5tJp}ir|%uvZhb7KFCw#Dw{Gkd&p1TVgj!&re78c?B@3%g+J#?_ zsDFd-N!kiEc=!@LCFhISr)oAHgmhUwlp9S2X^@-~D>OccXqaS?Z37u;#N BXhR!{-nlz!2 %5%4E^ }atT80R0wUTw~@tiE3;t2eZEi9Q>mp_HU&m?*%5 z6$&o4t`?xQjPBjj&aW-Q70>5Fu}A3*n{6r8Tza8}N2y_?9%jTgh*yiSyt#*>0 V)!hn0037AkSR|%;sJ51ZmE6V@lO!;gqG5(WHR=ioWcG02X%u_hUk>I z2VpEi`)@y!CPa_kt`ulQ?+r73u3z~M #XRB0mAR*N!M6&?>aZ$%)uga zVKiU{6%AM;!t8^_KWa>&I&FuLtrPD<{fbHia DBH^FYH;*qbRR^oDM#lAD&6 z4TAO+hmrvG!t;dK>pa!^(NtU4M|`fq1DMcqJCF68dCr%y&BK%xx*d^_Rbp=4Sv|8> z8y}`}|NLm>UCz~kxA^QoutZX)I9bC9lke&mpNSolO`rz>aeSByt8j^ZysGlPXIRkf z9kr||)RF9fF8v1eT|8e_X}su|LfY{P*2x9-MPGOT?Wagvhd0h_ybB&6*qBYEdh~Ae zdPp{>cw*>CC*g7m6O)y;!GJ*9`a$qw^0yEuqPSZuL=hi?nN4o;6?l^wD__oW2BKWX z8k_?)qf;X1mKW}X!VuqQVRw?vrU=gf_A2vy6aWOR46_;rdl7qrf4Oei