From 23db1603748215f7c078531e00dec5788cefc54a Mon Sep 17 00:00:00 2001 From: Yanir Seroussi Date: Mon, 19 Feb 2024 11:25:54 +1000 Subject: [PATCH] New post: Building your startup's minimum viable data stack --- .../index.md | 2 +- ...niberg-minimum-viable-product-drawing.webp | Bin 0 -> 57908 bytes .../index.md | 60 ++++++++++++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 content/posts/2024-02-19-building-your-startups-minimum-viable-data-stack/henrik-kniberg-minimum-viable-product-drawing.webp create mode 100644 content/posts/2024-02-19-building-your-startups-minimum-viable-data-stack/index.md diff --git a/content/posts/2024-02-05-substance-over-titles-your-first-data-hire-may-be-a-data-scientist/index.md b/content/posts/2024-02-05-substance-over-titles-your-first-data-hire-may-be-a-data-scientist/index.md index 1a2894a38..d22ef1bc0 100644 --- a/content/posts/2024-02-05-substance-over-titles-your-first-data-hire-may-be-a-data-scientist/index.md +++ b/content/posts/2024-02-05-substance-over-titles-your-first-data-hire-may-be-a-data-scientist/index.md @@ -39,7 +39,7 @@ That said, **there is value in retaining a long-term owner of your data and anal If you do decide to hire for a permanent role, there are three other articles worth reading: * [Andrew Bartholomew](https://www.abartholomew.com/writing/your-first-data-hire) covers assumptions (similar to the above), responsibilities, skills, management, and the thorny question of _titles_. He says that the person's title is _"the least important question \[...\] you're hiring a Senior Analytics Engineer or a Senior Data Analyst, but in practice this person might prefer a Senior Data Scientist title, or Analytics Lead, or something else."_ I agree with this and pretty much everything else in Andrew's article, though it is important to align on the expectations implied by titles (more on this below). -* [Colleen Tartow](https://thesequel.substack.com/p/your-first-data-hire) advocates for hiring a senior data engineer. While Colleen's advice is sensible, I'd be careful with following it blindly due to the messiness of titles and experiences. For example, you probably don't want a data engineer who's only worked with big companies, as there's a risk that they'd over-engineer your data stack (initially, you're aiming for a _minimum viable data stack_). Also, if they've only ever worn the data engineer hat, they may find it hard to uncover and communicate the insights you're after. +* [Colleen Tartow](https://thesequel.substack.com/p/your-first-data-hire) advocates for hiring a senior data engineer. While Colleen's advice is sensible, I'd be careful with following it blindly due to the messiness of titles and experiences. For example, you probably don't want a data engineer who's only worked with big companies, as there's a risk that they'd over-engineer your data stack (initially, you're aiming for a [minimum viable data stack](https://yanirseroussi.com/2024/02/19/building-your-startups-minimum-viable-data-stack/)). Also, if they've only ever worn the data engineer hat, they may find it hard to uncover and communicate the insights you're after. * [Sebastian Hewing](https://www.linkedin.com/pulse/when-how-hire-your-startups-first-data-person-sebastian-hewing/) goes deep into the question of timing the hire as a function of product-market fit. I agree with most points, but disagree with this phrasing: _"The last person you want is a Data Scientist. \[...\] What you need, in my opinion, is a Head of Data & Analytics."_ I believe that someone who has _full-stack_ data science experience may make a great Head of Data & Analytics – it all comes down to skills and experiences rather than past titles, which can only ever tell a part of the story. That said, Sebastian does list a bunch of other data titles that the startup _shouldn't_ hire, so we probably agree on the essence of the role and the person. I especially like Sebastian's emphasis on seeking a hands-on data person who can _turn data into insights_ AND _insights into action_. As you can see, the three articles disagree on the question of titles, with Andrew's being the most pragmatic. If you want to get even more confused, ask ChatGPT to summarise the collective wisdom of the internet: When I asked it _"what should a startup's first data hire be?"_, ChatGPT suggested seven(!) roles with an "it depends" reason for each one. Personally, **I'd go for a senior data generalist with an engineering background, who is also attentive to the business side**. It's highly doubtful you'd find someone who goes by this title, so you'll need to figure out how to find and attract them. This is hard if you're not familiar with the data space. It's worth seeking help from data folks in your network, or starting with a contractor to bootstrap the process. diff --git a/content/posts/2024-02-19-building-your-startups-minimum-viable-data-stack/henrik-kniberg-minimum-viable-product-drawing.webp b/content/posts/2024-02-19-building-your-startups-minimum-viable-data-stack/henrik-kniberg-minimum-viable-product-drawing.webp new file mode 100644 index 0000000000000000000000000000000000000000..071c0fe9975fbb752819e25240276901f9527559 GIT binary patch literal 57908 zcmce-b97}*(>Hu#+Y?VFwl%SBO>EnCW|E0*+qP{_Y}?lPa$WcH+<4b}e}BHc);{}J z)m7cQtGlaf*Iq|aLR6Gy2LMnL5tLVz=TL_Q001hW^PXGW|Df@Nd}A%)$CohUHV{n~}B6XZxV)|G-9nVXwci zwUzVdv;AHE8X>%~jf&Fe{oCh-2M_~D0Av9203v_^z!_i;umU&%Xg}{ZpBzVk;%B|! zf6@Q)x4!(Rmcgf%Il%B!Ll|HSumvXu{0&Hwy$_5CDMK00M7G z0RX5t0N_0u2z<=}0^f510I)RxpxfqO`nK5s0LT3&Kl)$1Z&?5UQV;;p*#9q{K@tGa z^b-KUUbfSB(Eqz1u+Lvm6B7X7rU(E)&;S6?rU3w0&41YKv+l2YK;9w%p!{ho=?MTJ zB^3Z5GyQB^>%WW}`cvVbcKiR8`5*gzu3VzERsaCm7BmBdsv6t{l$Q}ZO!zBt4oYZv zHxU?kU6T*5G;j;a<_A)_&Yf@6+o2O)-J$I&(D!}oK^qKQ){CEfI-W+cE-bP*f z*6>~WkO60bJ3#G=%Xh+8zST`X-z&Z&KH$rRCzj6<@a_@%!}9$S*i^6f5w$TD!gr?o zz~}T{&G!Kue*^#z&n@4;fJGWWwXOgs@Q{5fDDPQ0BychVFs8_;0FLX!XL)MM&$Sdf};vLcr z-)7f@Z`a51>*l%A=kT)zZ9_f=eG7p2A0!X#XK*iK_nWtb8(ky5BS0`9@S|wk_X;@u zROli1!FQhp_-wiX*b4;vhywn6*(|W#?>YrW165uXE|6}KuDkAlBfyIHJRtB1<1OhW z>IHb2wGX@kCIW%Ls7pEEW;@ba)_dkjR|Da*FW;bvYXUI~y1wI@JAtl6ze+)DhWrKKQ!uj|(D;Jx3=)8*Jm9$OcX~d6PHTCg3G(KtYnXKf4M{ zcsyDoE`ky;!R*D#lfE9g7nv86@U7;8mIA3FB!1@ofr=}l{=gh918n$hJl7kkO|LW)E||J2A_F8~1*HU+6+;~;zgjm5P{r45JuYul zBIE6HU{h7eEkLGkEx$hUG8n~cBy3GKie)lhALNwh63O(^@DDg_&k4vhl+Ntio-((4 zl&&}aAPRq#G?Ys#&+Z<>{E-wFe~9GwQO7w%ng}T%Ri5dxwZ5`y56Si%hZyKquusch zVpj3*Gmi|%GGsX!D-1oE^kxPB9cr?7&Ct-HX_;-A5X*A~+1i}-n+Cr~ieximscOcR zyKIPjsQypf<*a+z*@!*zLZJ>{(ff~Ri>g7$<~G+lMAS2?9+b}o7W?pOS$f%h5I_73 z7hkJ(GUT_APo)X6-i(E^Q>8YsgQR@9LkH{HWtj*tI4nfV!VU^GU=JTR8`r{?SL;+_6u$28`eof{HaMpir#YOLbttC6uU&JXg95{9gn z55-jKF~GO?_(HF?5qww9eIhu4);M5`Sn`^^$7h#d4AH2k`ROs*8l{iB4spZ*Z^x4^ zG?Ds!{|0S#Lq$3%Wgb5cw?RrqHgL1f?fvrO`WG3Gv*)eGGuc+k>u}li@8Kb&U2DFE z6y$J{J{}f`WRDT7)updf3VYfJVPbx&)GR_5{1RrGROMhVwY~g4!CpIBy5FU}%xg^_`gEHW;OGB7zMIdh7u3Q)A0I@rM=$d4=Ag+O z_~Rdy`06++s`G(3+kBI(t&zHmzNM0?t(t z3RV@I?_aJ`@&KTA337L1?M?_Tf1To3D|6~0zv7GyeiEtK07t)b1ofqgY2S@5YjBT(TbM z3+t~)S>&HdZ{_C@Z#f1HVhcJ&Z^w8%$=r-11zFCaQBp@GV}rvU3t0CItJatE#$_ZJW+Z+`(vq{|lck@2 zlwj%K`pz0Zw&jY+w>)yf!}0Qc$<C>5Z6R@P(FKVOaeE!Gps_6aghM|K) zZGZ~pdtg#IP+0BWa&B5qj#BH=OmRSUSKg{s*2Tqbeg>c^@lBoc-Z&dQQ>!Xv5&k>g z1s2XK{|I-_iYCniYRC~B2p*?yH>zyVAFFEB<&hug;59{Vrh?qI48dAr?jjOZG}sUL zo(f73IXuk;9upSoYUfComy-lJH7&tuQ-h|<;)74%jkTTD&qo;9bORSaLjArx3=_s?lJG0bEYi5v{?c&so0-Zd0>q*RB?i})cJq}JJ^uo^ z?~{39RDafD*(^Y*nG%8YxvboWmO=(Q!a2>EAb*fiVDh+erDui+xQji~nEEflR>5 zcHuikr0N$6=0|T=3PE*0!oS-X?fX|7ry*%~xt!|OMt^x+TDZR)usYWOp3OAuHy}^d z5W1&FN1B$T{Gn*WN73oTbCx50#P2d%98q0`Nr8s@(%?-N8lgzb zZ*F6L>0kc#|8T$mAhA`w#1*V6lO3rTei|KIq_wQjAB(VW@%%9n0!7XJvw-&YZ+4u# z`46-HCyBdATlX1hNTk>|k9>w20(ypHx40btvdHI=MDaz{QLZnua)sgt_eB6EU6}7u zqUwlMTNCSMRi^316cy?(eyHYapV%N+s25>QEW=^oJCG(_?YyXB3YZ>oi{JCT){#E@K@rI=@frT~MzWD`2`&Iaiywiv5GMn#H*5PuhL^Vn2mktIx_`A(a;34D~9 zY3vZZ&{i_6F1+5uY#ldf-o_tfe!yxi7W=<%{(JaK?PcQrWXVij?7TVw{*!lGX4iRd zZ~Y7(r`4imNB$3?kM#TqF=xMvkdYUHOb-M$tm?LtCDRW`4GYNtQ*j+uWm|FwOS!UnGznO`Vzcx;$w^1*gmhSTFrDh! zJ37yqM4qc86AUgJ*nf)~KO$FJ3IpTltP3l8?s3I-Y;Xo?rnhZh5)j=@7BvYeWv12R z?;kl@F24Fe>e_HSUH@tA7FJ4w0nq%R#JdO~B$^Tpz~r^^j3QzF^2N}Tq8)^(L#Qk* zc8IW`)%BcWHCN?ftcg9{nY>qgl>_aCMB;MsYXzf?XQ@Lc*0Qfk5Ke?>s39z z@_%;m4==)~D`loUir1KB=SnG*^Q~dl;UV|?Bhl;*1vAgpA+ow+wPFab9L_M>Rv?*l zmEtc2+d|bf+`Qf44v_E4a>~B_1*#O5DIiI3kzgK)gHwMnm=6&Sg`7L_em52LjXlPV zn(hk2_ImD~AFSqliv>CCpWweir-b^CsQxblWiQp2>{hgUwj188pL9cum7_bqqMi5a zcFxdbU#2{;vm+)Uv(bRyp#{+sV=#;46gD^!a>Sb`6KyG=l;3TKx=G&A8LBGVeyx3V z_3OM~l<-T>n6nh_B2x%(!)1-`vQ3ff|B+3d0nV;mxl&re5NJBHVcD{`VSZ)+H;O;M z@4>&v#rMis^?TJLrl4*uY~+vQgaD#s{_A9EUNY!W*L2)b`A91H)dHGFQWX9i-Wg=P z3htPafUO`I{y$E^PoIsllBdRskZW~WJ=XuF!4^{6LOdJ7kbPS{kc1(Y4OUqM19yED z>%#rVGX*NrM;6}u7i{JieGhP3mVB3yrgcVItarP-GdHA`CZd__p>n%Mzwnq zDnWiX7{&Ux1Qn2 z6H8(tn_7|A6O{0a2^nswd~$?A@mCFgE!tSyEA1D?0SEgUgmC3^{%z*7y{vr-x z<%>Mr=*7HoE3IkU=mCd+zHWMu*mV%qnar~o#BSWC2Jx-JV)zi$S-|T_r|Lmbl2E39 zYfCa$M`!8&aTp!6k=IqvYJcuQ7K$0xN6qR#CTF@=8Ds-0K!Zz5LIg6+&n#+Z+&cdcL{86I?JYf)NVy|w9Pc?7{>8Lje_8G%jF_(XZ+&HNjp+slWjD3g_Xo3neSQZ!$~IHkfuI|VrOU$-|UA~`9Z5tWZZ`DuGk;508+iU z>Iw@=Y({$jb)r_aW9jbVc!C~Rta;Xcn`n&hcyL4$+Mt}C>YgLEEb9<8SBtm61rJK| z5(M5nu%yiiDnXD2IXuoK_w{}{HAJ(;I1!BZMdz-gA(Y4oawT#{<51L7ZGqWu7SSMh zbn%y!kW*T{p}Q#MgABir@OFRw2$xc1%GDER z-cXIbX!;>%AIAT!RM!LO^R`DZFv=U|P+^ai&6}Et8j6bi1jpF6cs)UfwCf@q*g;-B zV@U)r9Z)t#jDY|)(w;C4yh851wM1|LW!`Ioidnh%L7*mAM5@)Ip6eW?ExXJzI5nME zPLEv}zBu9h)c%wgK8B?~Qvl;>^a~2d#}5IE1F}BM?vF=VYArfwxCwT4YGYB_QZ%#+ z)du?1iWC&~*@7?;YLg4rq<53PO~#Nr(H!CHtkK1n3jAVU?(Vbp@7g?zlF@4ymK=W| zE9=ntt-<|HtZoVcIyLj#wW*?kn3fOLuLrAiE}|2g&WI99jVYVU8liIFuP54yIW86L zt~tOPzMk9gj5 zJmtHvS#L^s@$j5wjmyjv1#@y`exy{mMiJ7(d%kc?!kcP9JWl9q9_wbSUoJiKI=40) zjN(R3doC{MB{2aTla#t(#Any=^vzwX60MpYt}93S%M-JuUx7x*B@AkCK{(}|dRrRD zMl~|y4P}yTg87FtW8tM?RK%Dcn6ryc=`9?<&m1*}NW&jy00pjmG|(`E|3KYMYiaaI zq(uS(zc&DxpLoLAD&S&n!rbj0J4dx2qZaR{R7VS$I`ew)M{CDPGaost_fCET7qYED zfM=vS#DqNXmHp?$L5xulxS6%`L}M;VC>+GVgXU$9{62?*kFAQEL+s^Y?`BG3m27Rj z{7_oIWpO7~UwXA&{{ZP8h>S@mQdLx64Jw4yt*&oL`H@MTX>{<*p$vpgj3LsXu4*o0 zPa6_)9OF0x`315gq*(%VPI(0u(MajoEHyiGyQYc$3>yTKx#H$RS_cKt)P_kPq9bk!ZP#iz+5K`M@PXAFFS}udzB(Yxs?wiZV0s z(?h0}UIyMi&Q~iuIAfhgg#m8vsI>_?A32onX4s1GV!s1J2@RAtu?_^3DQt+ZBx^c0 zfnUz12xafyyj-pc6cI{|E7V;ArPQ@{O9Ic@l7IfF5a)tg3LBR4twawwd*Y0kBcZIv z$Tfu!a+C)&=6=ZohxDvrdI1M;yr0VTbKI`Jf6HmC{~EaVYT)SKjmE?C_0rw(NL> z9|hF&>NPIoM@EcpAU$6v`YvTCK@mm=DqDSaKGVc(-w+)zBEQ&Tc#3a)H4L-XItpCc1aVT00YQNRcvkH{38pT@j`8F7>IvQ(5x~;ou&|NT#w_=XrRZ2I#wc z;=nX(xa~8d-GN@ojEH3IZbya4H!Q~ui13PRh3^g4>%Y&+dc54YB0EAZ^j5S$QWNIt zw(p~MkiZjqUDP8LFQCw(`#86URjK#KrY`PbqjrTnwte+sL^nDgSgjU3G;Hrzh=11K zS2{Fsn}au^3YR9}sh&Mt$xhN>-#L;51q(C|u?s$&|3BLTm_E1fx$ z%46kGWZ>L2@4DJms=nlY-R)*$WHi)toM1Oa_gOl6v$5|%3eh&L$Eo`LwD&-K|E|Dd z6=;%?rXcdt*1^h9EBx+UiX5`=mzvve@LsvfBv0ip)#jB1vg9VWlWOli2w!-U^@qc! zJUP|c87Qh^xJg^be@+9rM+ZfYlZdU3EURJn!8T>SmEX93Dcc<{issd$v13C3nFot} zurT)(6N$RS8L4@OTO19W4B*7*Hw;jwb~7?!vAJkn@eR?d9Bstkp(&Qqw7QZ!%JTA| zC;$K;cUmYgHj|TIKowoIbl2)@n`;EVR<*eq_qyo(S|YX)hZqdSLf71b-W9k3Y}vOU5W}U_u=L% z;;8w|;iI5dQI!LE*nF!$0s$EesrG%WZ)%j4>Q6<uCok^ zx7_hXi0o5rq)PL;bzc<=(zpN^ya_@`|y;Mkk7wuN~VJnZ{f?gHx+*_6+ z9z#!HYSw%CV$7mJn&uRYE5gbwG$vkyG~E;M05y&BMpn-M+~H^cHd`w7wtUFdL)=~x zFkh&<0)+z4GG@c>+GOg?btJv4!_pU~F_r|4sD2ys$`;ILgCW!{*zc_zS;BNN8bc3p zN0D6jaa{c1lf*V1WHMNyd%CmVq7z&LDKX)IPva4M3!j@hiFZzGSei?XrX&q&r9G*E z+z5b3alwWPvl1Oy%f@NZ;>-G;Hd;OMQe!N_`V&Z8m=OBlmma!X-tB!3%EmlEn0qo) z_7X!QoqQx1Q65!ld0D!=b{AnDZ_`+fpIHWF$~(~w*_QO;w0ag+kJ>JG-cqWBbyksi zjC=OMg=~zjUvMDJp`;LbuZZg)tf>};Knk`ORuDdc?anH8`XT_C}aoRjjPeQ{@ubB(E;;JkUvC)!2(J30af z`uHJGQa6h7WdZ3}$oQ9|!;ioLNO@l|O4@1aM_Ob*bry}B-vah6r@UeWl?y71*gMNR z=&^D&zlspN)YM7SQF7O^W3AK^3DqocDb3xH$v3cFkg7qnO4+c&H5>^v_sm|eu@|d} zS$`kaUkTP(Zd=;BRLe>{1W}TuD6&G1(>vW-ud_M+*_$z`l-`EGM>}Rrxfir9-i*Om z+LM8hU&W3_<7`$KuZ=Xw?V|#j#wxV9%h00RX2xV}AbN1?M;{_M9U?NS6@lLi^<`de z7xq8zpCySSf*mTi8~^S?kE%FfExHeVW%iD^S(J@B^FeU2_ex2sXUx%DP~z9OC35l{ zsGEVOOJnE`4<%qqd6Y!MAzv>2E0M;!fAh@jjscL;5yv9-O-)l5=^>*{V>`HNERR1L znPR0|ZBLiNHtH$tUS|z)H+eVT0}SV}W)W)>^f8O)lk&(3)pX&7?Eow7(GpKUC6YRX=;(W}EfH zBfFuOT4%a5aQG2Nk*g(Z^zCc~ZxW7`YZDW~c-&-zs&N~mWs?-)qrU`%4TTyS_8zi!^a6&qGXsqH6{`NNJv@QpxrCl z9Vfb?IMUXsMK$1bU1sn*ITzP9Q*VhL?Jyz981iD5g!YN=}XiJVpm>#$5S0N z9OdV((!{Pc9gNU-6!)nciVw`Cg91Lgce+L-6j!EhoHd<|AMW$4v_*cgywA+ocq8jKh+Hiocx()*o$?edJ^>g@( zLO%q{eA8~e$aZ|ZWm zmWubcAXQ|7QB3;*JS37l#Azh-))M!INJWj#%)e#4qH3~u&zqjRno3ZxJ9S8WD*JFH z2vCm%1hGyG--;Ec5rI)^GhtY$PAzwyD2f$$WphS{;?005ur|7a`*}I(C!|#Sg7Ib> z^VJ~`j~;7kRJ?NC=4Wi=9MUGr%Z!lk*h6_qz%B)U2`zz56}w+Btt2|gQIss%<_V_- z=iH;r6f2tX0Ayg+W3<{WPS4@EV6EanU#v(;-mnDu+n^uhP0FY0?iqo96RLVwxqF)@9!%FN_D5Q>W9WkbqF{K`L+O=X=hk}f)7JfmP;nCHj}I@ ztemmJT{Ps2aJzFf-K6~9(2hL;yfK5r!N6rZqL?WKNy)}r0M(z$t)mAJ*ti{~9$Mo+ zOWH>fdJI{pE!VVkDuxqK1aa}m`n$}<)ExZ+3eBj|y~^26;F?!sMFTrrtlyKWhs=CV z4u4_16qa>+a_<)$Cy^uTk7KSTwjaI*oZzY?N%7O?(8p6u{%nn!Fp*JR{4R^ScO=^n zDP6D%R)#OY-;a;=0-E${HRBX&5}`+GwG3xz(!|1imnQc`5y~UqYb_`}7=F@mE=K&$j&!k$n0mACMP}f5Vd&J}+xebWE-vC; z-JSX@UZLo947{LQRdXTF3_?CA2s_QPVaTOsY?og>0^K$arVddl1M00~O*%2}#S+Ai ze=CxR?9V6`RnL#uoRP-#^TFNK&XB^*T1uTLNNlotx|mMZi))j4F>0N(tPb)e70AaD z&qTZ;SSH(g@H}|LSX~S#mnqV54=<>FU1@Ck$N6;OlidT1xtg7CH)IuRFljk#%6W&p z_)Nwczr)%^HkB*SYSd=3bO!dXTTJ+C9`Y?JPOdT)D0pJs5JM8V9o|AhfAr7t1|slK zb0=4OwY{pZ&66&UiHkWB@+^NpARTvlQ6A>EBTvA4e2cj1lMBZ8Y5hZE(y}?_1yzGK z=SD7KP9b>OpIo1f@|~l|nrW}9e6y6jM0h*o$`Stea(to1M#r-qE7j!WXEe~=_jY?k zqxj2!MA~j1q-U0>+wk?t05@3*&Li#F=FvlpUBCafxq#`m(#%EHfAh7JQ`nau!ZwFq zF|JRS<^6YPc6UneyjpHovTmT>4ly_BAg!SL3i+jYY1eVP-4J?Hk@uWH1;fE|~ ze%WJ3B5DMvQSEUNF8NXRJk2WxArU3FC$hf$TLc(YjG8m?fCJX#dwZDcu30aBXvtNa zEjnenUbgN%UAFlJ6GKB)kJ9HCwy?nQMV~(uRIP}u^hM>_#e8TuJ%fnzHAi@d+gw$8 zvuc{Hb@A|hKMll1t7kAV?5-J}LbswTv~K6T7OGCUrs4ehZ8QejYb0ljbApoFe)2Ao zr4Z3ow;<453f7(5n-n++b=mq0hFe9*PkbZe4zP~2d2B1Ya>P;q@OaGyOYT=;?S2_f zWJ}zMQ55o*ybn>AoaFUhdVSmIucv?c7I9Co{Z(8+Wg%{S+`aD&Dtqvn#M5=O*N6-` zLG9Ja3WK~0D;^#2XHq2b#ZBpwG#qk{BJn`shw5g9rp}YQ`4wE%KJG_th4!!h4|C(1 zOpK*YDoLC<5R}usg@np*c+txCow~47 z@s6!-H{yi=HSsC<93+9-QA_FxvqX4Ax7Z^XWOufq!bGy+xP|)1rDR&N(YLFwicA}@ zIvkgx$7C>6wJAs;%t5a)*Tk!`2Kt6>UdgHCQfSI}kp?=VRH9d5avdY=Lts>jnQr&R z$*_o_Mv}IW%ko-bjz52i&U9g)xpmvF)z`=WrkU-`OywX9T5w9W}5~Xk*=cS z%ZCoo(^q)+q|dc}$gOB*)37Q0qVfkrGeY zwfZnuP)9%($z$Yrq(aq^IBprt?+Vt#T=VX%v3`&@0LWZ-Ym^Njr3OD;WP=o&$MMGtwVg>jKD#T83qY zd5$t75pcGh(AwATD^5JYl@Be`$tp^1QgZj$LYH=0-@v+8*cvlJ4)r+O&-qXe+&#C8 zCsby+%Ve!(C}4$?^UOS9@vGTf>|tCatP0WR#p0So97G2saX_Vt3AS*Kdji*{BQ{f< z_A*-Yd5tI2b=AelGf1dzJRV}VRv+pecS2bfX`ZDCz3g0b?z$O}pq51 zVjKl&)R$_zhVTislbL*-4<%A*rLNe_SmGGDn%e;T-pd9#&RWCzkQ2nWSw0AHDl}a@ z&!M*!C)2Lg)i~G-$^RI64FN4;K&3uoYN>~+&xMOp zJzKqC6>SE&QqvItiJoffPp1U5?=I%Pj0@xGq;RaYK0Aw`Ph}zgO%vB|ZW{G-DV=cF z3-U<&*L63Qn-Ap~T$L>zx8tjO7hJ(?PxYR49b6sCXiRe6%@`I{K|4ne5<87Og^Qj> zFGCD@(R6j`EY`1YEMingzV)UWGjO_EjoQGW^LnI{3d!Rqmht1EXBKH6m4&e?mE1MoYKr8yurgQ zl^ai1s9|~C3RdYR_z>N0gW5_Zp=zn{WlUYthJ{ivKKW@+>+bSe7OZ7)rR9=xO*yd@ z0pvUPA-~7jJ&K+8Pr7BV4&s>}5i<*w{wn3n70SI!q5}|+So=~;r{c2B&CCt^(z19o zP}K<{o>kY=$J9$3D&4NUtSs*bMN!f%>D}T7<5(hO_nr%#?GWN-Jf#6S*G=7&oS!#tUsP$VaR4TCCZzxS0DRAsk1wTWO3z+mUNdk^2*^iECou%2il8c z%SmMb^#y7cv)1kw3Lt2#k^m4#ih{;UI1IpBsZEJ;XOq;#v-YM=mj;g1>JLVTXt7K(u%A~ zq<%u4#oZcg-o>{}VVy304k;}Tng?0VZ+)#ddnu-NV1mDHM`hgZ_IQ)Q!K#GwDIU_K z2=#bee{(==LD}JWTN?n;3P|rvycLEfiMVzlwNgw}ZoF2H z+WI-L#)-ds_-*W@#^$GJG{JAG5xjMPdDeL@I>0!dC{@1Z@P=Z`#E?d*f6xds`KMKA z+>xT(zIA$&(<>gMoR8GdQ&gzx{4E-M)MqmKcG0RJox8@LHyaMBx`TAQX)B#s9VH=O zgc^RgX{r}COwG_&b-GLdwq4KNfoAl@N(v=4x>5bxSDO|t!Vpc)KsPyT<*C_x8mp)s zN;cb#nvR39jf7he*HdKkCgk~x$Q6IO{uLvyTaL6LdUK)5^<1+_Xs2Y1F&JA636p^u@pjSRj495~>G4X)Iz@A|%Bby2(d^piuLK z;p4TWj>c}%DYaK@v4{)~7K=^d$0a0BIux6lrs^=B?kT`Oz+@NTzOWz#KT#urCAOJ@ zDrrVvjNyvTWGWbW^&sna)!wrhjXBUs`WfGh80S6Iv0P{ISThM@s)@CS2x4LQ*hU6& z*?Xjp?%!IuRV#1y3#ghTv3h4;4`4RyB{(LxBBGdT7DLlXo~A8_D~O6LL&y?JlfW5Q zX=*U5md)&g`GAWISzGO3B*tv2i{i9OcEfU{fkB1C7$TQI87HP|xy9P}SpSl!PI@vR z7;b_+I@+csWm<+A%j<5;L0L^=v0*7TqZ5m4PrT!L!Tv?T^(Ja4lvQp@z3zHSWRa|lb z%lDIe=%iQkSLX5CAH1+*kFO!+U29)8jtk-3KuZ z#3o^F8kndLx{K&#bTepC)@L4w8A(U!XNXpv@o%i*dD#|$OWh)HK6H7PW|P<8ZBCFp zW@L|IT!IHTsDQ@(xj33jRS(?hG?aRR;~u&=sP=Ph6+a*yiz)S6^%Tq9m#!R9LuJ${ zt6^tZP+ys5SlXKjt6ZrY)Pv8=X9rUixjy0 zo9u$8+9&HpLlf1tG{V;za#Yc$nvFXauf?v_D?Jr*JS$y^h(_>7^@-h33aec-EmJDb z3biQq@@yObuOj>nUqArplB`#11rK2u_NHSsdkv$}M4u<6=$J2`Um5g<+uK1$F+wg$ z0Z7)*Xs(EatullYw1!X}9ga=T7z?I{%`GuKM;#Waoihxko^+anLM%MLT-+)dh$jgF zlP)EgaIsL`KI$7y8n}U*h+W}jGC%D}*i_2pxa|c*3d6%pOx>k;1j2%TF^b>}9eB|| zp01GMX{$Gs`_{4tWBA`KqkgYWBY4O@k7!q(h5mtt(*OwG9_-(SxGr~WzuAqQX7q>J z1_O2kM!hD(r4e~$yea$|LD9-;|DDS z*x~=;ZpN)97C6G&SWNZY-R@;VXs=YyCb7?-;(~3n)|kE9vd46 zS(LJ{r$Qln{N1Rd9+t1#V_;a6wLPkM#1&>@vf?GH;kS5}y@v)seNb0RY#GvU!{q*jl)o zd+9>J?)(+Ugk60thxLAZtd(d)l_RNI0S^Sr1sqUwEsmiTpPytwg>QD|4sWjq8I41n ze6Bo3VE@YqY?!7j+I^!q!;5EE(Q1G6^_{0(DOC2aN+@3yhp4tHCQ?LBLC+Y5#UIkw@10-t$maYGv(g3#AW0df*3zuUGRDEHy~QX1xL;^s+>IB zBd~rzLgQCtrQ-~9Y)-_)&~a{sL`ZYJzDd%hZd3T60JLaL?}j@U8|RYPi11orB|W%| zURS=A_#fAJznz=J6$M7g#>a~CH{g(-WHrf{4z12%~EYJRqpL_?cno%wY9v&khP;Qfj1{PPY z&;k!(F=DST&yNcedfS3URQ7{u{zB)EhW>8QRoaNg;eECiv|b6ERcQEJalp;&sT2Ds+}Ip+QOV76rsu{^Sa(YZdprVC!Azqdh|1m*5uR4IP5=ZLJv z)<;?Bv}1oj@Qx-gxQI3)l%Pm7*`~ft2F;hZ#aOr89Ei0>$qYe#l{9f!&``QkhW_cc z8^YtP!p>-ELo%5TYc7#VZJoqN8z<_}mZ+l{ccryVhczp?3U2=hQaomw-qW_@)$D{Y zn8y_9Vfo50r@jdb@x>=bmZmbuiu;SR?>dMh2r2&`j^idW4b^u-xznpiy}|_%|er{WSwcoqLL?S?Ju|Uk`+)mk@@wJEhf3M{v9drSL(# z`s51W+?HJqU1Zj4?`lE7aSvzg0O)fqJR5B?6OsA$Nh?;qI^YIXzw~r^?*S}anL+|s z-yaBiHwjhN+2H`r2Cb;Yu8{=Sh5`$7a6_hTm8p3iRpmrMc8t7o=UmHutNbNWpn#tO zXmuAt`VH4ug_HM+_Jbl}{B|PbYi_aEh670ngc4?q^C&2)cLq;|H`1n8wQtW!$1TQtqU`5U5Vs@Xv(n3(7w zEwUmJev6zBHdLVg>u<&&k<}b(1-?6K9X#T?hd3LG#kF^Jh?Bh??mMZu|K@V|1ln#vLEcRnN`(B!m`=`)4Ob|{Q`=mkt}4;ze%9r)nuNBw#uV)Ex7T7)kx4xG6d z1P8~ypYED4q!Bo+HeR9~cTC7_?=($ns2(6pH0XI2FE4HX?|`R^6m+X3G<{=@l*3(kD+g8fM&Yrx^}3St5zHfAha( zrw%IBP}Y|%^Sxxve(&jRAQ&!=K`$=wYkm|>xdT==sQ275$QG{K5_WMd3sZ61jhk-D z;w=`_ujV*>FSSQ+zpDz+#fV%TX0(NAIcTdVLVzni!-p4{{ax7ecsFt~H=U3cp(K{f zPIf9p-h%!-zJHla%HG*tKM3u^UFfsS3yND~U*abifXw}Lbw3{D`3+he5&ZS7o)ZC& zB<}3{OenmL=)>>#&-a9*QIO)uECa9n;6xUY7;~D)KJr{~L;vwBuy)sha z1A9&<^ME!(m0|X*f5=OIO1GClDv5&Lw=gG&B=rYZ*+#Pi}2s*Uu)d~@Wi`i ziJAGh66DrV)GDq(T(lVggn=P^0#=y9eDhQngC8>1K+%qG zxldWSF0DjuKa_^;IE`J>wg!|`Co(AjNdke(snHy^WM@?JheVKWsA$1D7RZr-lDCkK z;jWt5xF|01mGvH9+pWskv^*Q5_m&`{3RZwjt%`hlrUm@X^$n@z^leZ|Q6F`K*J>Zr zOL6D?z4|U^l)@kAI>!|UqYIk78)j(vQmB-xKK1z~303elsdvRPw?Jl|eLt=Dr*EF& zGh0apmq*utBVPY+lLoRK-Kpc(A`)kQg zIKII0(hO0; zC)Bm?FylF}D$!wk8GBC49;YaZUPZOhl*HZoJTE3yhmmjc5Yi zLA>h++ip|k47B4PDUdqi;@~@3WnNIoezsbF^|-}~uUYpxR8Pxkhva6(su%r_G5NGT zsHPgPd>jDCQFU8k_0x==DWdsmPGt?{tg!HDPIw39K9v*bC3?GWyU87itw!q>?m0bw zI-9iWZOkg=WuoyrE9N%>?3h~@9bE?A4Y>Io{m;+X#W1Z(`RLf?xaroosg+L2gr=Oq zOimuupgqx2_sGq#)q7LUj#raWp~ z5U9$bxT;|(-34Dt)NoIGvFh9#V)B|CwAyF&DdBc?R_Dn)yB)Jcw)1sV$3+c1iknkA zlRdSyZ;7F)aTxvgApD9cejTbIx&Z?_PI)+&ic=J&(CAG>a zBX7b3_v`Pm(jz)QmbqOtAG%q>R-h=pF{kT`;*-KMVW;|4HOvB6G*oMR7337JddDj( zOA3G7;8p(x{}H!I4uoMzM==m(f03JwVY9-Jo6s<14+&=U($H-aua>;bO=U#G0=TzeiRZV@@M1=$#MdK zx_VX(>tG%wZ3v9+?Uh>3Q(zvdcx#oRE&gcu984?yqpv;|(T=wBSWD*u7&9_^WX{Ku z0g^;ksKI_YMPmg(JG|g?A$@=Ze{U#SEbCiUQDWoEF{_(7WrBEA+Q0h?n2EoNR%O-`*Y9ENGho!Xni?9cy-S z?8?XTZK`sHSJ$xwCVg^u*L~n;PHWJ`Z)pdTf4%RX??M8RZ?0K#I@~f=PKaP=^E&kWnne{(|Ses@h9sAo)c@Q2nyguwDme+1AU&hdHT%r z1-0{wPw|&?tk^-llMS(MPy{d0Dft0V8Z#p`y~$HJWR$$uA7 z{G`VEOaKeU!2t2R=v{(R5XPhV(VR#as!+-1%%lHV;xfm*Q2AAy{#KxBXi8@rk)s*` zZ{Q7EWFV_~%qL^6R=bE&?4i$TXIurP-7^5ItH4X<1)?ym4mnKzH01msw$zkVmyu&? z&1Lsa%fntAPMlT~?Q=E3U$!$v<8wV39RMFG5Hu{NbyWDd1Oa-RP3xDhSR<}U3$=8@ zdBM$ivGb`zNFeo7PD;?!FWinFw&U3--qWcsRod+xweZ;a*}Xcbd3nYnM|@Tcr=BNc zN0Ub`v&6uujvA{n9ncl+T|TW%3vilQJK#VV`L6pBhrlP3Nar_fna|v?+A%j{I-?-;2EHH zpJL3;ObNj-q$-JdC62j@Yx_U0qw<;~?g4Q5!>h0uEU>^Qp<%op%A6_lgcK4C5d&=c z$NjBSbW{l=kVjkR~|N%4m`_HYIb;^zpaZ zHrQ4l@s3kV9`isRlWQ8OAKtZQm;>U8>OA%o1Fs?83Sx_UKOORuh!IjcHiIumJ5W`V zT{*H8uLTSMS=+xe;!WjGM*@5mG6K-?aXJjLaM>|#3Y%(Fp-`gjgo+axXrH--I2l~* zb91CXB&9P&kiN(5aq!aWZMB|r5;cRM@oef3Ki+P|Hi}|v*z`0%*9&+Iu{A-ptVwPlQZWL>p9PC;mtiSFSumB#u_83S_>-{VKA3r9-7ouJ1siJB$!KQylwXN){fCxka~Z-E)ZdjAqlxx8^2j-^=*eVdP0Y%)(3xv zWt+m&e0L^JmoO8yqE5N8QO#>Rpe&7Z5(xr`i%R=0=&%Ias&7;!OHDl=gSUKu z_bLm6=(TP_B|aX0K&J79C$13w72jbU*|Vuce>7k|oQE(97tgM>c5C>O>S8 z1~J;<1t}Z1Ks|oTuDwJ5VU(S|LNzQ8e}AJOj^v+S-$3~_16iZ6wj z<@Jo|Yl97)ARY9xe0E&I`r--+8LtV06@=z=p);oeCxdG^O$2)OUIX;cBFxz9Lrd#C zYVyUu4hOiP%X^8y_U8VKQ4h*9g2jTKF=)%FJQy!?vqVULEkyHi2T(lM`gXFZF1Yp}%*0 zhMY2TkQQFV!wggg^@06Y+)*N3`A3MZ?v~=u9YC?LEC17arBSuY5js z&A;7n`@)YVFF17Eei)}>Cb=6bzVx3QnPKfGE6Jp{(IF~gSS_Q*OC@X zzup!~lh^<=G0*c4JB1=i!I_0kV7-CRTg~89?Z`dKA>qc5a=#W|W zM!@RheL`Qt;ZPgQ>G|$^ys52EWJXZ(3wL*>%CZS-G;oWPukW*3{E~@@;fYGe!N_rQ zX!sH-w!QO%&REoTZHTL2&%-npK~qsUlDXD4{MaPXdU4PIq7v}Y78If~a(5D?-$P2= z3Tv2gi|iyxyM%5&VBsLr%1=};4S@h|Ed3*lg*IL4C}o*ljl=NAu><&O36qL6da!n= zZ2&w8ir;Swq94{q1ynk^hCm$d4`_B9F50^N|Uat992@(}#69xemwNUdH@=rtSPkLQu z!OdN=H70d9L%~4X#N?z3U%EV3ItfaqF>4^W4A* z2TGQ1jBvF@qpf@fkh;bxy7bAf{kkc~ z+aKHWShBsgqGBz@ggTZU2Arai(~IHbtEZm@SZ&~tcU;Y8zLD$Z5XZ$D9ZsG$qpC>H zr~A_x5^<%0dQjm(v}EL#{>5s$|36H+Hj;2^@dC)yHKZYhSR&-O7)`n@vKS55i4Q}w zbclV)Kpzblz)R@Lk$4vuObfE(;5u-$x65Y?)1!3<8=^<@rq60axLl5ixT-i`3QQJa zitS~I{fn`XxatLd%2<7|8qU2}CLun>>7L%s?b&7F4`eTr5ttU2pLnN*dd~KypIvH) zsq_j~#hKUzx=Wqc_)(q-e_9x1eMbYU6pH!(tBs2b1$2-?@e$@6N@ImkAPWO7IZzcw z$Ff}pEbjV23{P6Jk8GEh=lFUB7PF9>raU$D`aJ-BwH;7M`~<=sXi(YF=u>%R1*RAe z8`xAqde2}KE}~uU2t9Wf zZRz8Jt7~5pxVjY#)hx^n1IXj>x49zw6d_v>4vqno)@H#f6^NpN&~qreWGq@s=7Ls6 z3SzM^p7rXo9?|>Dn|U-bC8X`i>UXYv|E|7tX>>cu8+6YS>Sxt3n4P@#3)adp9a;iuMX5eO6d+{v5{S9vzJ4CAJb~m^Jz!aG@c+2}5)HzB+L|1{SRE%ESKpAZ~F9C~9@Cs;viRh=?c-*^JMi z%p8x7%D)Y~hS78`Z_#QzQ85+lJ3F=CWk}T;B*@136u!o^cxszg6k%t4KZ(l8{i1e({tw|E=0!!39+2#Zctr7PxlRf>VGfJ zp%)|GVYDqElixTn;^}wITM2^YFTb?d!>)LXzrM}D5xc!Ix<}qCV2~NpG z!)v+N-z-_%#%?%=Em@l>1-)uDaWK4Cr!_hENBx0F)YW}1p*V19y}tI5`h!W20xt*C z;^%g{2b;aBL%iCwAXmm{lV`n-gO|HL0fXta8&4X*q_L(0wKeY9+a0#MJVS57OHMdu z_=W7mdgMG%)CWWt&7^}cNJC2V)<42U7GCep&0hpG%GN|A$2|o@a35K)xtgcQEbC-l z303)!4L`Sh$?~D+k4X8>pRT&thCNZ}9u@~qGIBl&#$0(Hk7-am!yXCe0M}T*|EXGZ z@}{gGrj0qBjeM~3VC5hDn5`8LwSF;H6S5}uJB?xF;&9or-Vc`}98x}w0Bnv@au#+` zq%(`#sOzHpQ!0$Jzr-OA3+%1hCc9K&4*w1`TqDBglhL*M;IJ zQ?;cx`m>Z;b$IAS9K~B4$s2O-Bo!^p+TZMsD?>4ktsuVRyk74w@_UPDC;Z&Iwv&bF zgN1LhiD=}-p@ji6a^Q9oDe>ll*o{iJOC`T~9wf~eJZSzbL1j4k2x*cemJz>|xO*Uw zjX;Q&H_IW9htM={1j9Rd^`qt;prao{WbgNjrfcYO6~OZlE&YkZ;891k!qCc9oPqb5 zxg+X|*08)xEIv5Mkuy6x)9f5^ zdkd`8Ix)#iix>}6NYQ~H4}~MRoW_DFtkO<@f2Yl8*wVNG%1+WRfFlvX%x!v_7@ z*)K@nyyuzNO(~P4yfA2|ItaE|79@3H_Z>QaG36)nyGG%Ns9l@q#4SQcqC6tFJ0~pm z)v`tHQ8-ABoVEtAcm!@>+$SwQv5bbSJwD(B?G)sJ0~#|_D!Sh7m2i=Bt-TsJVE!Cr z(V}{20c{LiOTHZzn2G?-EcN|=6k(3 z6Ne`Sz1AZo0t#Pz>L8a1x_d5+d&o^8tvhZ*3XU*3X$R^om~_oT8`KA#(@0inoW`kM zgT4Iz^gkQwC0Ueu#>n?&_zEj8(pWDEIeRjly#0``Ns0^3TwqPvIhj6`UfWouh6x~^ zbtdumk!6s`t`JY&we0NF&7H=7nSkAMg&=oRRID!W`KLD3Bh>Ka<1U5K{)LF74N~!U zt2Rya=7bt4tVl163~se9EJCw_j^{a2n|7QLlYj=$c#Fgl#0UBn2E%QKWU)vNaLxi?S*m+k`;06dM^sp@OIFjg_hmnJglZ9+3Pz{5MR)Bj!5N_5C0)4~3GIqbVUq4|eS3Yud%Q zp;KN19VBj1_akg_q0yN}42wdFgNRK)VQ}%o_EG3$6WceMexn{DMsSa~LS@Cp8dN-?>m|GzJHv46=1JgArw^gZotvWP`!AUF*SWuh_ch&*aq;IlJfttL zhlpwu`mlFZ@8>Z87SY4@Ps>)UbZfzj5LesUd<=lu%hF-70i?5jx04D%f1i~pmJ-{z zXBw{WrIv()p-rsTm+C<}As|;;Hd6PQ#Fzeu{xS><7;`9%EHV@~(9X*?*(X-a;UXd6 zqAj?s+V+7BB2n;Z`&{o5K*V49z@nP0Spo(t1S)sw@LRSGoEef8l#&Yo0STzrM?SK@ z^*);4WLl=#1GXveCguO1ZGe7&v^kWQm{(*^R&CTzf>6m@u&(4$_NV#L698kb&QHcD z6*hpFm;ghg8bVPqa4Gv-NzxG_{54-CD07c3TvJ1b3_d;sc9MQF`gq4L3iar34vBuT zo><`e%0Xhy_+Y_V#vi4Y+$@SL>_^W<;)?+Fj7K4!bTk%uFV8wX z8eh>IlnUPMnpzqr#~Y9|BH1gGV|VOTMFRuMoiE}-;hF|kuk(aaUmpz_)Y+st@IoaF zmAZt4-VPDc=5Ib>31q~ZOmOQ?yRXPes*GL!*#%#*K>w*c0%Z71280zS0py=hm1qd* z)l@%gD;?{xSlm|IQhin;Nsr)G4vr~*YEo%_C@?qJ#Y%DjDR9&MX;LM>r=Ti)^wHvB zEa%I%vZZ5@Sd1?ft}G#+IBhIzVvu7#>X{9YcCcb`(!#e=t@31{_=KS&uEtr+40Ozb zce?kJW-2tKf*$=Ni^b@1FZyl(RU3&ePN3R26qFk3YNBJSz#skH6=&gmA~v}{!wm8u zB4|aP*LVN`HYY9+wohxlaJVIE56lR3QKuRM^++n=Jjv8bDJ$bBBO!=?Z`b?9|ul3R}u*j>=7`uQp)ye2|_WPr+4wp|eRV3f5=SB5mj zT9*hKnh6M0o!G*9)rv)NT|&w7z0-R+R(n4m1eiXdXGm53NMJiJOxk<`62GPd)cM^b(?{?+%5XyIjh^# z%qnAT)^R%0VWN)zwGABc008T}n3m<_4j}E0T_>3}9?0k&k%b)GM5gVZD(OwA|GvIT zoMZDrlCv_)FcQ|Hq#>-rfk$oOp89Ntc|#?gp_al|SCfC2UFwt55x;)I;#q+-0jx?M zhuEpRh&6)t{P{gsv5tB*t}wOu!21-__&6$^WBi6q;=*>)k1F#g_@&Bvl}AH#Cx&4^ z`f)9&{xyJ)cvo2m`0R&3YV!sTU88>G-fi3Mq$RrA2Vt@SvW)|*F{*iuDk;Te*8hAzyBRQn|5=rk z4{p`e?t%R&@xZM+7K-D-VAmVuf1s#zp_z+S^xZMFRA2Q(i_NfvMnY2_O2Lu_cB=p| z)*9MR2#v8@c5W9$8~Pz@YAea{NmQ;X2bGZCX`>1a8*|-J4)5Cqnq@B zIc*>^jZp(faO z&*0NeSJlB`t4|})?qKu|QIEp=<3%IX=Gn#%vh<)p<7=_M|{x%HhZr7oAw}HV*qYbA|&7s^*MN{31P@;7P(CvKF z@DV_Ew1O^h8f3yY`=kf+5S16UV5jAW2|Yza7=% zhSk=~mL^E|9Te^y>WkcZ@?Tg7tWB|t@?P|EbeFB~d|oIgVxfa0#|L#I4igCxv>9yI z^ygJ74gix(T5t-000PJOCp9z{-pzIO9;t5J?gXpEybKdIOU$Dm)L9j5Jw>v%-LeT} zT;qW?u@}PHplZ;YD+lEf*>d}2w^g(frlLub_0hAaU8izR=zzZOe4$nYvG;V}&mJq% z?1Z=_43%W_it<9Tnt@>x*eLW@R-JYNSa61rE8+APl{@n8#;XD4 zMGVr7BF78lH>IFS1xH~jX!5o|v-9NFVcqAf1=BG_alerHSW(fo6U=xaJ4_y?*c!aH zIyn*n-C}}ZbMh(OkFj4h*`d8}FH%GMH_*Y`_(|7D>%E3^v8D^@AfosCzu-(TxzUdc z_FDS5qXB?N_W5*u8^|B5nL|#U2kC?v;V~aHF{k_7dw>k$=8vENkjJ9F@s`G7k?~fY z4;Thy12@-*Y_G6-g26Jx0^+G-r1DvxfHNsBIJO_<6yDpCBQxlsp-@;8t&L&IUzb_Gb41cNfbHaTAGde`atF)3aXJU7#S}W-Dz+}~h*qJg&s-9oitjf)<92E$+2tAH`6LdqxH*UY! z{;YQnLv5GrWC3QH_n8@HNRKZc+s*paSHkK0BJGu-Opv|ZXK-Yl<)eP2IEMgTd6s~s zVa}+@w45f@77x{&{^Acq7t&Ou851F22~8{(5<>CGs6DSl>3|J)h|t5g&d^2TFvo*g zw&~UpYdxI|oJqmgC?uGsvAg^Thsid94ZH!GNzOU+YsETF{c3-Y^RJrXuH1!kS!Bm3 z_!*#vpdlm&iZbllv`iXXN^*EE-_i=XLIKJ*T~E)?y=S>7T?-Yz!| zx)%>KPS_IG1@;b5KFm1zFW{L_dH2s5pzrzm$@}21vu2vh_?=UcY}<8I2fT3xK=?3_ z@pqx5fT830bU7}2{y@NxZUFcstrc#>CV4y?_2@n&nGCU|M~Ez!-Gh|6 zr~%5sdNI{A8M_{1F9&PSOeCWD@j~COqGDeZy>>7H4_5h`y_LBElS~Qf*;mn91KQMX(Xlt~9hGoMLj%fAanRU9vl5B5Wxg3xu-10# zBaHzq05Gj_O0|9TsbK0bDYx&Qw)pAH>toCgHJ3~ZDdvsANo&f#@dc;25&8WsvT*HT zAax@)p;Vl<@H>nZ9;lD;?)rTqDv6fsDzxzD8|+|eDH4TkW0C)+sZIa%jNpNZdc|>1 zQ_wj5eD}o6uqIPCysrz}ZrV1VPHgqa(c{H|$Zn}G3Tfbcq$HX^LGC@fww*qt>~;9) zWGIb7V_SxzojCwRAXPq8uGf}}DxPI?dv`w)&HP!4Q}^Zhn^3HUZi z001piKOBWwWmJ~_f}K7L0Z;;LX}(Vx_?mBs2A-fR?AL9vE)|-(*{RVum8r7+jq9fL zZ{oTMQ-3rB5JrfC^}34MEd;8pZ~?nUu_x-r0*-8ZcGMs2N;uY0*F!oe z4rQDCYPJ3PHdPd{#z0*b@$$D}j7xWKz>-GF84Gaw0*bHOvXI`w(#$3d^g0Aqc($Bs zM5eM>nQ|9P19MyY`vS!_9((vEaLv?RP19PdAqO@8gy1Wt_u9ljONhdGIV3lHfCsrA zhKKXHDrNQ*q=G+d_g;GfP7LnFM1K)>A#|?a9Fj`ckk%2G*b@%91DX~e-HNLifHY%g zi6ib}5$;rY04=M1NrA9kF4I#~?QvqvN0eIq%;~nxI)0m!Yoh$M*EsDouRqeYi=I0| z4~R%k-IB?MKESAsT=r99{0U1^c?u}uWVlWC2aWlD`Gqk$rPq`{judYp+;T?_Y22|{$`RngE09z#qr=!{Dm>wz6!u7Ih2!}x(LkjtR5Rw}&S(dB@UczZB zH>aeAoaqxs4RbD`?i060a0(JR_IOGq%^U>VUN~3cdemzW?0^&8u<4#qVjEhqc?`OU2-+ z;gz(Pj=%h=K&7TbFVth4MW*F(gjqujYD@CQaCa+o3Qf2_dDWW~7sZ+5cN=MMz^N0t7Llr;b@`ov&te1}JlvF55~YD#rc4Ry{V$YJe4 zt`3z7o1{!JPy5J$D{ZG(GwBHe^>h>n^WghFg4q(EHH$Z?pTK5--!lrkJ>K35U)|To z1$}dc$64%wLy}Zy{V^0w%s=>t+rgbgkD>G*Zg9} zweb-kRG`6&m9H=Hb5pMHG3B2X?sPrp|L8cO-COx!fWWS}Lh`C`q zhSp?L4q>h}_xoE5aYhu{wA6d#8~$=8(cS$u8dZ>P9 zHtky`HGl~`5L|1=4UCZ|#2s#@P-dq~gAfrI@{Qq_(_C^K8TN^7*anxMs-J6Sr9GTM zy;z)Nc{<9!gea~SyD@=8!s*=f_+%tR;+#0{}7xH z)Ov-*gh%$%3JiPAxaz$c4SpF=CvO3ArOmf&R)3)iO^u)z2YD?L;0x9td8OY|w7%gdrwteT=!H{dv z!%TcML-=AT`K4Zz|8a~r-4h4mD_>jV8;^fc zz-b>)Y@>LLkUgK8?l#543kxwx=h8)rs7vlHbQx%nsE`zN;hA$Yi|tF@OU*l#ZV7e@ zB8}te-&jtbVaZvIdNKzE>~jtC9@#>PYDI^>J9#rF*u|8SH9~jJ8DDFt2tvbKST+BC zng1W56vcSfnxCVRO$7;vS9VU$0)ELcd}oA)Lb7TWu<5nK(d`CrJJJ1S2yhqN*@D3# z!K)93K+|W7fDVztiuMQHUK$>(283w6U$|n=I9$_K!ZFUI_9~=G=HE+A(B-@^#H~Da zxdQ2;&G_RV9YRTO6J%mO$}<+D#bLy#=wTSfo8|=-k1LLbdKf#KQC#|q@7pzD9tx1D z3mG0^76ZDse;Wz01d=g^7=l-n!CWA<8RC9vSbf<}Y-;7}t~u9yq(xL2pduG5=^)rX z&ucqb9e$qQB^Uo#3aMK7!FUnp2e*ta%8vx@tT{-^U;?mvuJzyP`q@2ej+Dn?CznkI z5%ej(Tve&g8!Y+-u=+i}z5O-bK-e#t5$!C1Jg8P~V>jH*gJC-T;&w1$YgM#o4qSJw zARw?2#?^wv(#zfIYne{m?C@y@X2kUci_;s6;Ba0^#OAkCp;M|u6gsPYq&kKVt#II0 z?=e7)e?Q~-{aD(?*ZfqZpm!XBQlxj~UQRyObe}DpujRi4#?|V5m1aEG94Fan*7%lv z4aQ9WKkesW(ou5En?BMM$S`Sr$YB5g0BRWcYjo-u*!s&hUqJ8$}*qM=G&@a2M(v1C{yR96!S*3LHM-X^QO%fx3Xwb>%o;yUG zM;z`$33bTUq22Ny*PE)_c4ZhR!-WzCS;pLpY`*eZb1V5Xe|y#5%q9P5VuhD<=9^Bx7rl$>@T50sR8u<%@A zRl*Ky96qg!Z0yh?NHt=*2_FGjTT5U70000FVvx^9Z*Fa$Q$99(-)JB0m2B(y*Dd5{ zl8otWLQDMgK-Tg>`}Y~@1ct-|!ymot@?EMON)UaUWl9Afpin|9yv{m8cdbH(G4m6W z6MrkM$N=6CWsjy1L_w7yPI;cy@Zzmy*NA0wP$+JX3Egxe+ z0Uk``547rl2Gy>JMGRrKewG_x%PVWtQ|sX$^Nt<#@7Fa!!WUsH`fR08b(6xLMFV`s2_1?F~^Q@6pP#I8L)!#HmDH5eCyR{s>!GW@p8 zo~a}W;7xuDA50SLP{!D(<-fWkFaz!|>S+zTBt>`26C@;8Ez4G!7_5=wY}U!cdlrYK`z`Itkz$OgEvmF$e*J?I#o#*m8k|LXoxRH-HKK?U~OiDkS;#8S8B<)p{xP! zLhNAoCK1%TC)07&4oU`EV`}Jbac%CEk|S0aX69yWL%r&v4+k52L$_db*JCO;x1l(E z)X=(Kr!C(=af``9qjWmosLjrmmL~idr53s9v?n$4PgZKLpjde=^+r%D`w{F|`At|zj{YEKc zKs<{fUK(A#Nw3wWL2L}L@6*HhRQbmMU90g*%D-h5-Su!2W;hlqB1MsBvQ_`SerE0g zW2`fJ?HbT-s@L&@0FxA$T|T2^5i8ioDpX1L%4TjnNIF7pmIR za7G3UD2(Qh7zdl0ivAMl)0-44`Q9*oYQ%PNv#;fyZDw0vS|JW^k4-9ffp6YxNM1e{ zTs(BiG!p2C>^Cik0gCBE|KF8mdB&qx#6)@c#0Xc#fV&yD9TK4@0f}QEBftAw%N~qj{2$k0` zYBs#}_ZTeV8D~M4UnPV}AC_E571!KmpRbfJyT;sxkFpiG4m%~NP0=cWKR4qWu49Df zs8{dY&`JBkl@RsCP40Cq9*M0e1TJ1hRVVQI-40qKL%`1VUHaVJzR2@5#mS)h*P;QH zE4p<-n9C(_Y*|>|HS!DnufLlYAEEl21~9{i>}-CZe$Qpd zI4;4p^;9TeWcw3c^-g);AhN(nAOEI4B9dUr{Z=aE!qrG|W3E47bmIHi=G$@RvG7a4 zI$`b2CGq^Zsn-Ouv1ZZ{NfItPr-kRBH$Bdz_LbGpMmN-UdL)c`a#a&;ib|Fpd)uJ# z9B`g(u&(VSMp{1GzifKfHh!+}uL1_RpSXrbr@6E+E=klQ?O{ z{hY5y@(LpYonhv#zM1loJDtk?%&n8Wa@SAMHgRXXkTd%_XDv1P+N|2SFm21*F)k2J zrQ_kUj>OD({1}!Z;vC;RyuD(Fg-p|2h3tQPT*3B%m1Kx1{FO$Q8T#Jq^w|?+`q%@+ zZ)NdmCWZ+~Ak%sqvOm?%0?YsN9FwsF-5gi4c-8Dw~JkyH?vGWxg|CCM1Je1A0@%?$9 z)D#|+h=-1$<^CM|TDFM<;^Z~LDJ5f-l>2f_Q7|gPVtfH!H|Q8`*AtT)HK{Laz8q&J z)wxu$ZlAH7-?~4SMkWKN1}jywu}fFA4Aq=LoWW?15jzQ*|Y}&=d3HPUWE0{ ze%|#z%O-Dh$Q|(@Fu8Z`=X$-^ArOo(l`vskCS z%WU)8Wi1AnH@A9<=VsA)q20Oc)5lQFL5sh=w6XF#Z~PDD)ptHOS1`wdwK5%mK=HK$ zjvtgRG*Wt0`RMBy<}?0;yY&7hnS;nmZK0>oW#}j@s!43YDe!jefm3aKY7$#th^f71 zN@LidlZQjW%Q)rq7zB?*iCygFCEy-VSX8ZCpBh+4;L&{(Nhwfyw(D&NWe9qragriC zZl=<*gHe~K%^+Q;k(Pe{rppy=w@NA!(egXe;3xAchj3>zkB&|&ok3*U_F!cSkLTIF z>a~R@n&PLILDQj84sXqpKV^S$H;>D)o(y+-f{7i}B&|qu<(C>`4=)K4T+ff|-*tTHS`dk1OO1C>ZU|^@c?Pn!eUq(PSA$l6sTPQlw?E?bxY2vg z9VH{vx##J1%QO-Gsn>S{_q}Nqu#Qk>njNV�LF78n3H!ygXBTJjWO)26tA(52iha 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 z zgxl(A>)UOk4Wh3MsR>25m{W`s-ZBMwE+<;_!DiHay)mPz8Gw`IpHdD*V)YN_NsL-l zehrpl$PruBL?VnK`jl$+vf+&pLly|ZbaPDukjmP*+kS7Rdma=_xRK>y4HPuGm7-0^ zCP2lH(I7H*Qgq*!-%|ULGRaV}+2@DWOf!0hSFzO#z^1^fmpL9`$2r^}tRmXuh|m!A z(M%*!xoi+2#XqXpcrIt7X&VBLP|@l{O#s7+xhGNP$ov<0qYYqp=M=<+P}UEyQe&88 zYd9F!4N7SE85&Qu%>b5U>+d}ZBuU|<+}*$0E043+VOGNHSMP{6#@`{1t3qQoc>zY9 zel8c~L&KYPiq9IpA1rf{@kL!+fm)^ci9MdsM%c;z0M(5fmE3#o zNurwrj4*x@fU?S*Dg63?5h7?V3NUAaX_lT8l-u{>zIJDEdG-PPW^qV8Z zZQd>;BaXxRRZ^YnOKU`lwU4}`OOt^$0!<#yQU`hnJ^x5!U6t^v*HRoz*-;}#uPD3P zOLPL;7$s~fBf&;v?%B}HBAd9rNr;EU0zw;nL3%C@2fAI3fgO8{4_l3$?;!sjT3t|g(I*V70F|MSJ*%VWr=ohD{GqzO;hMF{poA0>{;D;>;nP@1#O4Xsv$VP`t^ zX@WhlD(wq5jWGVw<|vB5W|hh9Xr)rp+tg@K?AO_wH=2*WvVwa^m|hOh`>bY*mMc`n ze(03kBbJ(N`(>VaQ%KPJUdD)vO#_2)BDtf=NslpQ*zGsV-$E-#=AU8Dvo_*|Y9|oQ zme~-J);RNp3<%H#UckRLjsP3#lTEs9=u-@uyT^tbw0X0@FXapE8N?~*GK1mD{;AKP5QF zAlxR1?io9j*dheyAd+Ii7VXsVL289}<^wgV`wz3-v64Xg?LLf+r(U7gb7%SvJc1&uYa9xP2@bY{LZt83`l=y@YPkm0c!@TTRX*Tpm|_MV?61*Z zHOU4)B<3G;(ILQlg>HAexXS`l3%NQF&l_pjcVdpMVApP~t*cEty+D3?76&zUS`ktd zrAcYg63LjV5bhso|JcM!nd#!IqyK)0qFE~^O_IR5eU;?MaERIn>I{YrQQ z7T4>AgBUBWVYgJ{&}DDYlM>XxP#8DgSG=S4#Tvk36Qf=DPSaj?1VakON1yQ*b{=22 z>E~d8d601^@5x1UK$tdV2VPU$pGAef$mA+7z(5>oDe(Xd06p9c0tEnlt2)qc`5)~D3;+NFfdD|h$3wpj z`CI=p=O4oc0{d4V^{sLKqm#Zh<$vaUp9)|C0tUc+_gUY@{H;;H`-*R~4Ey)B{(S41 zZ-e~TL-JewtlW&u+)P}AOpM&DY}~Az-?M@8{`ZQ$ zPX#~$J^}ys{g0>rGX3NBzfAvd{Fh1idmQ9H>jnQF2mk+RwEyUT*nxom?Njo5KJb4u z2m1Gc@AmJtf31A&01&0crNqB4^bf}O)7Lsc1ON#R4gn4Z2>}5C1qBHWiwXw|0|SeN zjDmoQhfRQwhmDI%NJ>vZNK8wDi%ZEtMa#&<%F0SW!NteP%uCP0%KVQLASfs(SQuDL zI5{63NdpaB&u+H{_kEW5*FoaG$W^3XmnE6U9y{h(EdgCe+Cxx|3vox zf&Fi;H2^FK(D$1Mf&>r%JiSsD1VI1Gsy6+VQ>A80Izx$Q%SI}~+RW8H8-a?&48``W z?Fq-3NLfY?!WXiLv)ha>ty0SOMrrRyYK=n>6^xc46G4&;aRfL|!ME+J0j{d*a;f1} z40eT0683!icc`c&4nt1-d1ehNLr5uYmUOE~L>j+zB{$qT37Zj~gm4uhl*Cl#n`nHM z!82BViy5_k6?qB>~?f?2_mf^n6P??Llip;@ixKf3o!z{6enla|YtGyIhNeq_Ri}EM!z0S6$J&8Lb{Z8b6}w zI3@@ZEI^c#mr*-UwzF(KL3dX;<0**Ar*J{mx^~jel|=@t1_MX5ZFYp^qXvild56S< zKry4ZADc5P-5kW4&*zX5_c%c$~zTU=!M<@ePd}Ca2b=#ge&Jn|?o7-D4 zDrqTQB1$1X6BoKFJ!;ZXyru~omV>@801MEvorgfNjn0ojPiwRZxOOU3<}Bl%KVZG0 z&%Xf2?c|BXQaSkQ!X%iu^mBp`cvAaZy(hXu=@v`aHt18kn;1t1j4=4}eD!j2927Sw ztnKK>1rZAY1rd~h|6w3F+KD2elKxGw)-*p4;^5!mTWO}a(CEYXV;wD~3mfSWZ3I#n z-Tl97k3ZDt3_fDao=uh&p-kJ-)eG0cnkkSar)8BL!L>R;T;HuV@}iaM3NN=jq2KC| z4K2n{fn$bDPe|AtMa*CO+OwRh#=P`+P(Dxs1}k}am8ti#NhVJw3%mdY;s(rg%Fm>FA= zN=m-S5XxSbvbGs(DP_r$vZRb9Az4DmlEnLr*6;iN-hbYI-{!iWYwqVc_xYT2KIh!e z-1pqqJVSkj5vfU1VL7GMKMeJQKGiFnQKDYkw?%cN(m{)7Ou%;bW82kG{tWmx_rp$H zG8SbI3udihQ>VcW#iyUUznGRdzegv;z-mS)rn5SpJ9c&Q=&jb!zTwnwvWfZ0$VHp7 zy?5#_2>8U-mrEC<`>3b7p<4R89eeB>Ax%6R^x}IiNZyzq`dUlqVbn>rSS-lMxv$Kt zH@g5o(Ve59wg?|3$i%(*+-%iI87MmV?p?*h`%3lxk63P8*k(MdFDmIA5;xn$&B@_>fo%1 z=e#<`OkU9slDW1J7o6eDw3fSnGy77mgMCg3_FVlJ$MCPcXB(V9S7hj^a8%2P<#+~A zg1wUj;_EaNn;Lgtu>1_ky^VP}b+^#LiOeW53bdKrd9~ZTMm#uIWry=OxtICz6{%TG zANkF(2%Sjj%#FVeULW7a{8iH1m9GYCpwQ6ePSC_9=lx=JT=cUh!JGPX|0N4b3Z0u2 z|MqPSG-1Z+nl<=P>L}wzB6armW(gs1mwI5;vCh*@;s&u{?RJMGmUncOr5J}#Rktr2 zrW z5BTgamX+=VAJ7@#%`mx<8`s`Xwy--MJ#1R}F*9LV_%>xXOAk`oG5IcvZrCfma;~%g zHvzBo4@Am7x)!ho(rjA;y?wjN6#Fgg+yIXjgh^+^p89s(NvdHX91Hu8=Ikmf+%6}0 zcAuupSUYp2`O%k!%d4wvp!qzF=Bzc4!Vegb@{@0h?G|@6Tvgs2tKV@nY`N1wx1F^( z8I9Xe-Z~A-Yz;YGvLq4Lz4Z`|!WSPW5t5lvxMDLEY z&dO}Cv5DIFc>aay2Ri}HeLZ=#Nejzo%X+ugRM>08q{Q^q?$BwNDV}JlS_5UcuYsng zfplH|!xd|he`SPC7=F~%PK(Q?W>H_ww^-K6hfScPJx2&W(wZlDYc6T&T0>WKZ@nE| zZn>kK?w3ss;^jZP-|4B3=qLXvvDzIcN9*2SODn3Y6{F5ap?kHqrpn%W4BCOy7Bzc~ z3RWkZ5AYerUD{JWWp)1?_ZsNT<<`=YBVU-Ri6bsae)(}>VDJ9NX*U@!Py3af9hC<0 zhVg?+j&1QPLI_-QUgoK}jOOBKNKd)D7%I&4qHTU(>F8iA`m(&KQH0Z4tk#U9#N6O8 zNV;%(vJaD}f5E!kww%V{1?ECafT{Q?q{rIu?@tX|nVo?CSymzW~H{82Oa?gS1;y<=R|k+aF)FBBQ4li?bvT~I|WKgNm_ zJaxvcBdUEYQ+(H3r0%W=3BIB0@lx|Wms^0R9;Xer-^s8ngOypw)XKkIY{OS9_Bbqu zlN5#O;!N zskB*sGOSAKCGj-BoySh6z?iOWM)rg5$-2n#M^cGYf46Ghx6NHl?-iLGXG5pK1O(Mu z)y`&iRBLM$A(yL{m-L)3w0&N`qh0eNS zfwB3+ii1Hba^9Jh_s=be%MQXOQe$ex&4Pt3Y^;S<4N>64 z=~Q_>NYowgD8NLLEN#bWilg zeCBP)GB-SvFPkW@T|?-v$k@GfW9aGJjiTfSP@zy%ndtGkCt)2i5wp* zUw=0))d#c&65Gu^o!2%doD?bi#BN$YWA+x~eB4T#g3{b(QD2i!n`b&dUt=Cg@jo~9 zzJ`%@dD_b7au~2K9;`@lXI4Ghc_h1!_4KBlN0y2-{Mug81l2}YQSqZ+ttzF{C#*}( z*vpsB$vEW1hP_X)WNM>FspUhrnFsP{))@VJ%+OurWO+W!tKR)D&*0~*G)?bnrgqSU zM2kK;T${XJ-tGO7dibM-e(<}0c04H$jo7K{cKblD6il zS=iRzQNvWW>4IuP?8XOCVK30=x&X~RpZFk+LB%?^k&JBoo~B#o@z16kF(>Ehq^L=< z0k}_Vpt^+)_jreK7BiLBW6~y-A{}*a(`>9D@CP2waHr4I1|;4v%}FG-iMnIR+2!`A zMbA>v?dW8XPoxgq;GY=Y{-HYy&;3?+Gda-YW=Zkl^;8D9r;DD{>v9*Pi8*1kS79WI&CRB@)VFD4p! zIot8!Vq$x*ae^$d-so#LSnLdMSY&hJLSTYe)3}l2y?p(TLf(Q4`wUmqtooANq0JdP zPq}yo=N2dB^akaU6yCsSW~Yw zmYhj{yK|Zc87v^SIJ|2qD733$Qpf2~aZY&u;I_H|s|$Qat=eXsu*Wg9)k8ts^F51R z=(YPz7(3;J3m7U~Z%CmaCjGds@4Fg&4(nkflry^A;~}uuru3yY{{3*w5N#mFs<`*~ zH_!XI5phPNz_`veG{^FTejb*@=mXJN3|$Ex1S1x!775DoqEK?1_Z6j;_+k}4cvWYK zeg&pr`J-4KTWOw?sZ_Fi=EnTKu`Zic7uF;`qgmAyeyFCv%51a4k-NU~Gu)-z4sK>N zYn^aGGtfe=0S7D*juqakiqGd98uvI1D!4`Ns?5o<@5hel^?o{>fQgWZ4XGpa1ge;x zoAH(`e^|kN$Ts&1KL`C8$a{t6w1}yTu+DZxalWAEm=kpX!Y324g zrd&LmXst@)e<2vUcrI3C=DB+iJg7h5O1d}vk$d0eqaC9g7+BF=^5&3i4_JN{Xe;S? z8gm%0UJ!Uwn<}8kqqNl7X|~Cn56K<5NBi+H!Hs#gPJO+-jzx6^+7SkcB6<71aB<#l z)85Q)uD#hUTEe)rJZ^cr<|~D!_>n>h-xclW?&jM3B~}0YlVb52KFM$_*5T)Y@oH-f zrJmkH^O))@aeK{Q^83U8&xyeQvCXyC4YCEk;{L(|0%>Rk`rrtjBsv&RawB_VAk$Tk zAYd{P1F=CF!;F1&N$zCBlT?!BNfRr=Nl$_*5u&9D)(BJ!^z!i{(Q)8FuM^%hwLlC6 zN2K6MYCxNPSrGzW??U&)K-i{qDO3^|sen{~L9u~ke*^@;pb}lxEcEn$AOL3=h&!F` zqo$}B5D=gcprk;dx+%g{RaF&X2t@<}3iN=|g1qUtK&UrO;wOS0iAJE3eduJ0H<*ox z!&Cg|7zkkhyJKEH#>T&Zy=e;TZYmHcUW$P@A4RwVOwr4W?d^JR8XfBoDF1NdKlY|s z1^JK^El4zAzl%V^`jfor56iEIZ@V_jv zCF_p;gk|qX`~qfk<3{%KSqBG_@C%SmcKu%f*^++&0&2hT{$=_nC2Y$8Z)$oJf*;#; zBRvd+ZB&g&A&`k`>rJFG+!cYwBcUW$92$yLMkqn?u1IC55=j}Y1V^DzL|5WZ93yWU z9p_CTv2g%o1u_6az@b&qFdPC3havG$Bpi;10;jG}oC+F2R8>+z5b?O5`leJeP@K3E zfBM75Ap$r`s%TYLJW2(s0w*G&NEiVH#lulJD4L+G1jiv%lt^e52$)Dv)2C3qa6op+ zUN|?BVgL#60|B$SRx=|9l1|v_k%35QKp9~mXaxFCk=-96WjG*WCq(U#nGptpP=Nh7 zH9LW$y8;$4kfUT^mht1N6#!~U$Fcc_tH97oFeMZUhJwKnsGl&_B)1{JdbPCmqLOFqf{Mw{q4}|a8G9=RganO&UWl8e=(K*sHE>#$p0Z*c!CNXhgU*Fm0eLpC=#iRhT>I;FsQOJ zfe0s};V5M`XW#W{6jyoxj!HV@27~~33KY)zb{bfEof?^+{Q}%cKyd8+H7E=y168Z< z`)eqe9MFKlAc}zhitI7{Jru?N9_701kMaMrJ8)BBH-FuuG{Jvge;N48z+VRbGVqsy XzYP5UW8n8HhvW^+bOL}i4CucA^`w~J literal 0 HcmV?d00001 diff --git a/content/posts/2024-02-19-building-your-startups-minimum-viable-data-stack/index.md b/content/posts/2024-02-19-building-your-startups-minimum-viable-data-stack/index.md new file mode 100644 index 000000000..112059895 --- /dev/null +++ b/content/posts/2024-02-19-building-your-startups-minimum-viable-data-stack/index.md @@ -0,0 +1,60 @@ +--- +title: Building your startup's minimum viable data stack +author: Yanir Seroussi +type: post +date: 2024-02-19T00:00:00+00:00 +url: /2024/02/19/building-your-startups-minimum-viable-data-stack/ +cover: + relative: true + image: henrik-kniberg-minimum-viable-product-drawing.webp + alt: Henrik Kniberg's drawing of a minimum viable product, showing the wrong way of doing it (non-functional iterations) and the right way of doing it (functional iterations). + caption: 'Minimum viability is about rapidly delivering incremental value. Source: [Henrik Kniberg](https://blog.crisp.se/2016/01/25/henrikkniberg/making-sense-of-mvp).' +summary: 'First post in a series on building a minimum viable data stack for startups, introducing key definitions, components, and considerations.' +tags: + - data engineering + - data strategy + - startups +--- +In my post on [your startup's first data hire](https://yanirseroussi.com/2024/02/05/substance-over-titles-your-first-data-hire-may-be-a-data-scientist/), I noted in passing that the hire's initial role would be setting up the company's _minimum viable data stack_. But what exactly is that? + +Conceptually, a minimum viable data stack follows the same principles as a minimum viable product. Breaking it up, it is: + +* **Minimal:** You don't want to over-build beyond your resources. Instead, set up the simplest stack that satisfies the startup's near-term needs. Then iterate based on feedback and new requirements. +* **Viable:** While this is sometimes forgotten in favour of an over-emphasis on minimality, your data stack _has_ to be viable. That is, it has to satisfy stakeholder needs through every iteration, as shown by the classic drawing above. +* **Data Stack:** This is the product that's getting shipped and built iteratively, consisting of the components listed below. As in my previous post, I'm assuming a startup where the data stack initially serves internal stakeholders. The main difference between a consumer-facing product and an internal-facing data stack is that the latter has users you can easily talk to and fewer unknowns. This makes the task of satisfying user needs easier. + +This post is the first in a series that will serve as a quick reference for those embarking on the journey of setting up a minimum viable data stack. Future posts will go deeper into each of the key components. However, I can only cover limited ground – readers are encouraged to consult books such as [Fundamentals of Data Engineering](https://www.oreilly.com/library/view/fundamentals-of-data/9781098108298/) for a more thorough treatment of the topics covered in the series. + +## Components of a minimum viable data stack + +As we're talking about a _minimum_ viable data stack, this list of components isn't exhaustive. The components I consider to be the bare minimum are: + +1. **Storage:** Where the data lives. +2. **Ingestion:** How the data makes it into storage. +3. **Transformation:** The layer that joins and changes raw data into more useful form. +4. **Analytics:** Presentation layer, which can be consumed by non-technical stakeholders. + +Components that are perhaps conspicuous in their absence are: machine learning / AI (higher on [data's hierarchy of needs](https://yanirseroussi.com/2014/08/17/datas-hierarchy-of-needs/) – I assume this will come later), data serving / querying (implicitly included in other layers), and orchestration (also implicit – I assume dependencies are initially simple enough so that any orchestration approach would work). + +## Considerations beyond stack components + +There are at least two critical items to think of early on. I consider a data stack to be nonviable if no thought is given to: + +* **Security.** Ignore data security at your own peril. Examples abound of serious data breaches, which are often the result of trivial mistakes or poor design decisions. Starting off by implementing [security checklists](https://security-list.js.org/#/README) and following best practices like [the principle of least privilege](https://en.wikipedia.org/wiki/Principle_of_least_privilege) is _way_ easier than trying to enforce them later on. A good technical read on the topic is [Building Secure and Reliable Systems](https://www.google.com/books/edition/Building_Secure_and_Reliable_Systems/Kn7UxwEACAAJ), though you'd need to cherry-pick principles to match your needs (it's a book by Google, and your startup is not Google). +* **Privacy.** You should be aware of compliance requirements for the data you store, especially when it comes to private and sensitive data. As with security, it's _much_ easier to start by complying with privacy requirements than retrofitting a stack once stakeholders have come to depend on data that shouldn't be collected or retained. In the spirit of minimality, it's best to err on the side of _not_ storing sensitive data when it isn't required. This also helps minimise the potential effect of breaches. + +Other key considerations include: + +* **Data generation.** I assume that the business is generating data from multiple sources, which need to be ingested into a single storage system to ultimately drive decisions. If there's only one source system, it may be too early for a data hire, or for a more sophisticated data stack. When considering data sources, it's important to keep in mind the three Vs of data: Volume, Velocity, and Variety. +* **Quality assurance.** It's important to have some automated checks in place to avoid breaking pipelines and maintain high data quality _before_ making changes to production systems (e.g., changing transformation or ingestion code). Again, it's easier to start with high standards for quality than enforce them retrospectively. Low quality is likely to result in low trust of any data or insights, making the stack nonviable. +* **Observability/monitoring/incident response.** Inevitably, things will break in production. With good observability and incident response practices, the data team will proactively address such issues – ideally before any stakeholders notice. This goes hand in hand with setting high quality standards – the sort of culture that is easier to set early on than change down the track. +* **Data management.** There are many items that fall under data management (e.g., see [the list on Wikipedia](https://en.wikipedia.org/wiki/Data_management)). Many of them are addressed implicitly or not addressed at the early stages of a data stack. For example, data discovery isn't a major issue when the data team consists of a single person. Still, it's worth being aware of management considerations that arise as the data stack matures. +* **Timely automation.** As a broad generalisation, engineers like automation. Erring on the side of automation is often a good idea, as it lets computers do what they do best and frees up human time to deal with things that have to be done manually. Done right, automation increases overall quality. However, [creating automations takes time](https://xkcd.com/1205/), e.g., if a monthly report takes five minutes to generate, and it'd take a day of coding to automate, it's probably enough to write up the procedure to generate it. You have bigger fish to fry. +* **The need to be boring.** Another trap that you can easily fall into is trying shiny new tools. Despite what vendors might say, it's rare for new tools to be truly transformative. You should strive to be boring in your choice of components. Use proven tools and services for the minimum viable data stack, keeping the shiny experimental stuff to your hobby side projects ([I learnt this the hard way](https://yanirseroussi.com/2023/10/25/lessons-from-reluctant-data-engineering/)). +* **Speed of iteration.** Some people believe that high quality always comes at the cost of iteration speed. I disagree, for the same reasons Martin Fowler pointed out in [an essay on how increasing the _internal_ quality of software increases iteration speed within _weeks_ of the start of a project](https://martinfowler.com/articles/is-quality-worth-cost.html). In short, if you don't invest in quality, you're committing yourself to spending much of your time firefighting as the complexity of the data stack increases. However, overthinking reversible decisions or spending too much time on non-critical issues is also a real possibility. Above all, you must remember that **the goal of the data stack is to support business decisions, which may require some compromises to deliver value as rapidly as possible.** + +## Next: Choosing components + +As noted, I'm aiming for this to be the first in a series of posts on setting up a minimum viable data stack. Each future post will be dedicated to each of the key components, going deeper into currently-available tools for storage, ingestion, transformation, and analytics. The focus will be on tools that are sensible to use by startups. + +Stay tuned for future posts! In the meantime, [feedback is always welcome](https://yanirseroussi.com/contact/).