From 853386d78b6eb1e30fc283a6e7d9640ba2a95e11 Mon Sep 17 00:00:00 2001 From: "R. Tyler Croy" Date: Tue, 20 Oct 2020 20:31:00 -0700 Subject: [PATCH] Add a blog post about dot dot vote I don't like the structure of the blog post or lack of narrative, but I just need to get this published to move on to what's next :) --- _posts/2020-10-21-dotdotvote.md | 122 ++++++++++++++++++ .../post-images/2020-dotdotvote/ddv-poll.png | Bin 0 -> 42265 bytes tag/dotdotvote.md | 6 + 3 files changed, 128 insertions(+) create mode 100644 _posts/2020-10-21-dotdotvote.md create mode 100644 images/post-images/2020-dotdotvote/ddv-poll.png create mode 100644 tag/dotdotvote.md diff --git a/_posts/2020-10-21-dotdotvote.md b/_posts/2020-10-21-dotdotvote.md new file mode 100644 index 0000000..3215fcd --- /dev/null +++ b/_posts/2020-10-21-dotdotvote.md @@ -0,0 +1,122 @@ +--- +layout: post +title: Quick and simple dot-voting with Dot dot vote +tags: +- rust +- dotdotvote +--- + + +I recently launched [Dot dot vote](https://www.dotdotvote.com), a simple web +application for running anonymous dot-voting polls. Dot-voting is a quick and +simple method for prioritizing a long list of options. I find them to be quite +useful in when planning software development projects. Every team I have ever +worked with has had far too many potential projects than they have people or +time, [dot voting](https://en.wikipedia.org/wiki/Dot-voting) can help customers +and stakeholders weigh in on which of the projects are most valuable to them. +[Dot dot vote](https://www.dotdotvote.com) makes it trivial to create +short-lived polls which don't require any user registrations, logins, or +overhead. + + +![Dot dot vote](/images/post-images/2020-dotdotvote/ddv-poll.png) + + +The desire for the application came out of some of my own roadmap planning +exercises for [Scribd](https://tech.scrib.domc). Unfortunately I didn't finish +the application in time and had to hack together something unpleasant with +Google forms. Next time around, the tool will be ready! + + +Give it a try and let me know what you think! + + +## Technologies + +Dot dot vote is [free and open source +software](https://github.com/rtyler/dotdotvote/), and is quite simple. The +backend is built with [Rust](https://rust-lang.org/) using the minimalistic +[Tide](https://github.com/http-rs/tide) web application framework and +[sqlx](https://github.com/launchbadge/sqlx) for database (PostgreSQL) access. The "frontend" is plain old HTML and some basic JavaScript being rendered via [handlebars-rust](https://github.com/sunng87/handlebars-rust). +The application is currently deployed on Digital Ocean's new "App Platform", +which I won't discuss in this blog post except to say that it is _interesting_ +in both good and bad ways. + + +> "this might be the most complete/functioning oss tide app in existence" +> +> -- Co-maintainer of Tide + +This isn't my first Rust application which has reached "production" status, +[hotdog](https://github.com/reiseburo/hotdog) deserves that honor. It is +however the first non-trivial web application I have built from top to bottom +in years. Much of the time spent on implementation was just getting familiar +with the tools. With that experience under my belt, I actually built another +(non-public) web application of similar scope in about a day of frenzied +coding; Rust is web-ready as far as I am concerned! + +There are a couple tips I would like to share for anybody wishing to explore +using these tools for their own projects. + +### cargo sqlx prepare + +I made heavy use of the `query!` and `query_as!` macros in sqlx, which both do +compile-time SQL query syntax validation against your live database schema. +It's *incredibly useful*, but it has the downside of requiring a live database +connection for in CI and other builds. + +The experimental +[sqlx-cli](https://github.com/launchbadge/sqlx/tree/master/sqlx-cli) has an +integration with cargo that allows you to generate a `sqlx-data.json` file +which the macros can use instead of a live connection. + +Despite being experimental and arguably a bit bleeding edge, I had no issues +with using the latest `master` branch from sqlx. + + +### handlebars-rust template reload in dev + +Dot dot vote uses the `register_templates` call in handlebars-rust to load the +templates in the `views/` directory. For obvious performance reasons this reads +everything once, compiles, and stores the templates in memory. In development +this is *not* very useful, since you have to restart the web server any time +you make a minor view change. + +The approach that I took was to provide a `render()` function on the `AppState` +struct which would abstract Handlebars template rendering for the routes. Then, in order to allow for "reloading" of templates in development/debug builds, I used the following snippet: + + + +```rust + pub async fn register_templates(&self) -> Result<(), handlebars::TemplateFileError> { + let mut hb = self.hb.write().await; + hb.clear_templates(); + hb.register_templates_directory(".hbs", "views") + } + + pub async fn render( + &self, + name: &str, + data: &serde_json::Value, + ) -> Result { + + // Reload all the templates in debug builds on each render call + #[cfg(debug_assertions)] + { + self.register_templates().await; + } + + // etc + } +``` + +--- + +Overall the project was fun exploration into the web world of Rust. I would +strongly recommend the Tide/sqlx/handlebars-rust stack for building small and +fast API and web services. The stripped release binary is ~4MB and only takes +up 30MB at runtime in production. The most basic tier in Digital Ocean is +**way** over-provisioned! + + +With this little side project "complete", it's back to other fun Rust hacking! diff --git a/images/post-images/2020-dotdotvote/ddv-poll.png b/images/post-images/2020-dotdotvote/ddv-poll.png new file mode 100644 index 0000000000000000000000000000000000000000..35b53bea2a6519705cbe22b60530942b907659a4 GIT binary patch literal 42265 zcmeEuWmHz-_vK4>NjHenjf8Y4sFX-|Nq09$D; zty%MBTuVjn^}hF>d!BRl*?T|y_$()dfl7i3fj}@met7o<0)h1fzh59Dg6~vi;wyu{ z;2p$2Dj|bkp2%OnLm*U;kMG2kTvPU!T+|e2NRf_hW)*9xtZg&;v9V$7Ry)I|TWmFJ zrZrTj%q_HQBFsyi* z3r^G{1h=;5TIlo-tiz@RwI-K+CeFyrj8N!8>X`2=US=JH`K$td*$_T|Z2zyWhee}n zL_~jy@$~MvO!Uj8Vh*?c4?lE6yVgFtus`4Qtk5Y&2Be(AuHDy0kDcNM@$cZp|GMd- z1z{`(NU;f-t?j~&ev4M1Ll9Cp-<1q`ut4|BYKICAAfY0 zN&F`!M4Mamz8@rF;^N}2x&NDBI9u7~m!v%scd*X43%e&`b*nL*Scz%TMc;a-kLjGFE4!Yq``IR}ooP$E#ARg#szBtnBRYM}l5Z zkTw+;GxG@uWM8*=x|)on_*PVK7`AP0enlte$AgSzy+_k(^=!~NipBnDh9{=yghxo| zKe**Lxb>2sAMuJ(u=`NRBeSR|^bc-dm(##kQ!_K3b1U%r%{Hx9T8GgfFzu6*xFYw* z5^&4WuIn2cb`Q5s5K-uK35V%e24XACY3{9g(#XWb#PQ6^Q@dF^Rf?m?Fu%GlNTh<* zfB*hmT_y9{Ob;?*)Wk(aeUk{rTpP=jI6gf!-(8^AEia=*E{;k~4cGNq_||aNirW<0 zz>&c1LJ`LAXnbF1ag`R-T2qEPRrU3AOAMQ=r6sdYt0xL%)s_!3K#F^Re@}8+i(H_p ztL0K&?|Hb?*ZpVGc72w5*VKad`~X}0L-y&-nMr+9)5b`u!1u_=;IJ_C`D!!&Oo?EF zp#+YoqUx`+{n0cyl$2Nq2nb~Sj>t$@6z@z;=~2myNRg;dR!fLbalZ+M@Q4s(|_~zg}FWd=by-BBCf67qNC%prP5wu z*tfnvR|WZIF;ki;6-l8?;c%OhK9kDo;ZhUiTdIIdmdR)u1j70YjgF2E@+~L`(bLnD-St>6 zCok_b!t4H;!_v}{-FaW_{(MrtCO`VNW6gGKDUWI2vN0=BOcC5Dl|XW6zsq>N!x7Gx z$qCY1g4|Epn6Q13r2cbUd1rB3gm_deEEtp`wCm%sbguW;4EFX8>XAP9IKJu*+iT|q zxM10q1`E&zMD?=K(IKsP-?6-;p}85LdHE6>2M0z(L}Y)q!oR}VOkbbccsQwtH-eRu z^TpsVw&2W6YGKdocBaT5KRV)BG>^gCkxAu`Q*AXFr63dWPC06}v$NxKJAFkV8BCMZ`y#LeTXaNNz#bV~7^3>aLLI{WT6q#*GIdZf<-E3JTY= zZ468@zIHTMAt9lY1)H`L4B1c8(*D1G5k9}d=kRIPS;u%phetIx3vSCKf0rYlr>5h@ zDqCrmP*C7NKflmh8Aesv)-HdVWoQnKu-espPbuY*PtUZLclA)_?y3%A#m)Uj&(iXh z<6Sq(MpSHaXv-bu>TU%tJu{=hKJMj9G7Ik;41rp!=*^NB;vf7!e)!OSbGAdgQlL9}2jN<@fOy{#`H{O!%n39P8Lwl;_)J_!j)y~7S>nxLEC?5r9Y zpDkoCo~0<%9EXvL3c|p^0Qm;8NJ3kiTux5z`1n{^2lsWFhlu(zB-Q$qt)KtKSU z(DSEB{Lg{o`btZkir^K0*wkyXZLif0ki{VklpZ9)O% zYnN6nHHbQcpzp4f!5o4P_KFGQmS*kutBmB>*e)n)9Qbp&Wor%}k^z=ng0L4qq`j-l zpBq`L!Thzdt0M&1o`1Mke5l{`&Q6P#~l}enk0dWb|Bkm)&@5 zmeHA*m>}&LV*cRdFtGexJv^iZk&74c7t3@-mY;+K1zi^c5q$ai`Dbe^2+NwZWMwfH z>THlcr^WmR5vzASc^UF(@so(xnk=487ZYM@X9x3ZuxIkOJSZ8y;7r5K{^+Sj7Zw(l zR+Uen1}(Sg8s_~j!nm_m=^q;C{V}=YcA-ekw~4?!ETeBWP0SO&?Yd6c?M{Ii42K!) z4>ISr{-A7`kP=>{yrQ=AhhZ?gb0^;PoOat&1-YD;`&qaH=sIR+w-**VE~Nzp47!l< zTxr5LR`Ylu8=9Yzc&r9oJhx7~%+1Z4MVJ^FPam0?n9z)jj5hDDKI^EdA%icQT~GY# zMqO6C`dpSnGM;M#xKq!aBI$;PhI*eT;Ui&C2QeV!<>lWZA}}W=Cvhk!B0&08n@tAU zHCI-0t{ip6Ms$R*&s(DxV6tTbvwV`=vQ2wA^aaH-!qgCwfYLB0)JsETSo zJRL#XYK!3@#mnXRT8B@hiN!3#V}0Y8L5R2X3@kl&SSZJ*4Uzc?S57J>7i&c!-pB77=F3~fX zsHm-5F$JxjdjCD&vd{ImpFfp;#>I=P$`jI(^Jgg1;r`IkOxkN`eJ|BV#mGSi;#KN4vB4sM-37U$;n@JUKbht4P`rKS!e!&+oz39v9Rg{smrV?ze~B|jqgE-x>G z^@{}A{rB%AS8aT9Qo`N+rW;;fUY=R2zI@<}+iW7>Y6p}`$kv65n5LeA!4`j6^U6%A zk%I(8bpMVo^Ddy(HE@iujA#oHQI^B*9Qj>qXzxP4>DRCEGn$G*fP2!>Ba*KnI15}fzGy)DI6P*VzsD*x5Lz1=R_#^CN)=bNi;Vma49 zs6MBq)oMqIdU{GEoG+rJ^waJ#hHhYBAnNIDx=ZOe4Ptg=w$PVJ;SRRlw;-hY({u1E zqp1--n5pdxlI(d3TDr>E$dDBuUdqGYqsLxzO12^g3I|l|uioJG$)|MsOGT=Ws*B0X z6Uw!C7>*PZzwG0H-QxPS|0h=AjRKcV$*F1%Gvxn z?Uh7Kq}S`HS}&KX^;@iKMrBm2W0c)`9dFudrc4V@Ai?{3mm_a9X|VBNT*&6l(^05$ zLU+z9GJa2V;j2SxR#u%|Z$?H&+w!`upC56@ihgJJJ4~y##K*_4uWvE&c^tx~31Q*P zKV;|R1RT~bu{$&}x$}plO?_;iiAzXK{4=YA0}pc#Bd7gYK|$=$2ls|mw>6A_MdR(P(}hnSwPr3B5(@HvMyliS zL@VOGRaYnD+m1L!e&i^fqzeyBN@Bbu7y9wN-vu(DS!mKE_pQNqLYgp5-KvcQ{Ke%GV7 z5*^#Da-qVKWH@)_z+t@k`TlW7WXd}nW2OnTWa^1?K(3fzrArGTzZQsPYw92=Ct(c!n+I)~tyX|y4w%r$TRWpSk|3t!1uCweJ z!^wV!h`)ZT0iEleM`h8hd}?1hX<)i^YxX*J`&xAg0og>edq?VrieBd=p>VHg~n<&H5? z%3JqvpD^RVveMVskRS}=FkI{3L|eJJxyNY8?Rq=DFC!zpo+wJWjA?|0Gv{Ym85la+ zC`_$5tNz>^U)^+dSe5S4&7Rrk`FKx!)~XpG6`B6s2}A7pBInmX_}ooJK>0OyjF_+Y zydY62)le+CG7Jokq%iE(bg zh~|$haaJp>sWyJ!Q&Y)TF2TZCyE|&@1F#?}DJcY(?r~*HjpNVPzxfKbE-q4bb{uR^ z89#oYz{0_uY<|4i`J$+Z3x^c{L;$eA>uNg;9v)r>SkO+rypUGA6n%YtKCjz18nu=v zQc~k3*BAva)k^-<-+zgpYbbg0=vPts(#>x2_%R*7ApHE|{CXgKp;mH52h()2@b%v* zr5ispV)c{xZjCz2h|0>!(~r#B{AX5*H#R}F-iq35Sr!hMAHOS zA^MiRd>M6oLX$)qayZ}xCINup!|dO_eT$A$sbZ?HfTLwHBzeqrq9G9QXK1K1r+~}$ zcGFHxEn#L)YszkW5uy0j&8lPs2ltL*(s;;sCl2k4h|1@Lo>0P#t-)Wecb6;%1_neM zCjwn6jdb#;A<4Gwn4dN=h}Y;0_;9B!wlr(@BpaN1i`V{>zfPU*gINT+`7 z0DGL!)+v2fRh81yqXI#{831s~O-wJ8fTi4git!mkKZ6+2a=)ysmps;s{ZL^Fen)z_ z6h2?j*IvDTePZkmkdL^EO8ofzOrbK<^N@#vg3>=c+!H}Au)4cDoA2MAvUqwDqme}7 zWZz2rB)e>C@)z+SY`*+Z@#gGkYzYxpDpK^5IX@eN6Bv3lYT3K<_18;Un8A3I`=nu& zdUyGvapl)}%b7Bw@25|nOie5Ucx_fVYJ0j-(;F1Ew8DC%Rgf`cz&l#iTOp?<7Z8__ zfCC@^`vpl*)Y#|g2g8-NzJc@^gQFFnlejwTsTWlyayv{-PJPKWgQZ2e2*o9hr*Vmn z`&8%LN>b|T#NLlajalph$wX_J%NI@n|5;|GF8S&2C@ z3P69>>%mpGt(Sk9hGFBBT7p`T`^uoxXe};=hBW8pb^d8-6kveB!Nm;)|D`-H(47!J zaLMD+U@oRde3WkZ@87?+oBcS;A=Dt&V4`ovm*|ZkXR44vb=VmRY-o5ZC@6>xfaLQu zY-ZL0rs2svS&1g+gID%Tpn%d)XEx7>DJVp9Sk(D}vy-?jg1WokfyLFnut0iwdD(mb zW}MyW64D3?p^*A|J}^?Bs-PDLdXM$=Ae3m<1tlkwc6N3~#m2&6U|`J7&g%7s5qp+R zwzosToZgcr2%}{T5Gr-yZ2-G>nW%6~oYJa;;W(3>v9>pA-WDL&IX720xp& z{9V&&%JH-ap>kJ+DXzcf>$eze@bHy81`}gr?c3pP`eW@dVXxD5T0`39i>6nV-@OYj zWs>2GWS=LvHk*a(e?KBfX<-_d!rz zYtCA7K~KC=McQmLMWNo>vJNm^7VYyKth9;v`OS)K0DzRhWrDdql&H8>0|3sDhOqtS zhfD@J#z-&RuO=payT)+MUZ}C?n-}uB zVDy3x;~LM;hJXF!+!szJ7aam^ZCdoR>*@7y56#lt{WyIc$r|Y^8L7 z>a(^iK0x6gWaQQW7Y63#dzB_I(Rj*yl0@q=21OXbK;*BtmZ!ws9&M0Pe#*{o&W^kX zRKN@Jd7kq@d8Ed8f3I#RWo?Z_S5y7=o?85b`+J(}od%UHVYtxOhgfwIQuy-9^A zfb|vro9GQx$fuXQcFD5POV+GtXRRx!QrPSk2|h#yD>@~`@A%h{5(!cx>GF41V}ALM2 z-k0|X)09T)>gxNmwYdY1^!)Slv(@_K(AtCqwZ+yAn%f}gTyQ;KX300M-%XvJi(yWh z2w)-ZFILpdOXGjk6oT&UW(4~SWjE*Kz`GoYV7sS`3SE{0&;pn7>Npo3Ql=}leuAqz zZKzVFMeUepj{pc6%caUhCzK+v{>bG3T3OU@^! zaT+V6)H&8EO`ha7*#>$RRzIAWe7gUhtmv)p;#}KxSPmufpxoRb@Y$b+sTuy2{`ARq z=z;9?42|7tf`~a`3-uQ@9Ea0AuUeBQ&OC9AWRGLa`ntiQ&n6mpW@c?ZLWexr?)yZ= z3gerX%Qk9T-8+zD>Qc|$_AEE9RerlSpzp&#43oKmuT|FsPx;X#%r z9O>vDr^(1FzV8{DMQmNC`m846V@B*DJszH1r#2W2fLyJWMyS*9a*KObsF}&Ml}j_J zs_iho;%{R=-!CtBD)u0gVyQJWHC2-8>|dDA z786T0gypYe4*oN>Fq{amD_%JKz+NBm!)tWDhYbWv9o7&lumWm5IDbG&NGQ)>h-~%> z@TwI%V<;&tn?H*8E!76AbY&FpuG1>>ncwa zPH~^lHuNwIka}kT)xA3@{W7s##Cz1f(W#tc@-;&-*qPljFA_=qzWk!h>l!;9LhP$k zR;07+dU4C*=u|zvoX?^wV>k4`ET>x^GE~ewJFk`{@dQnrNJJBheuE5{xdK;Vud=|XRxVo1rNkK0z{T?oyt19AW`F~ER zjY3uhGeoB8nKsULMm@K%D1^j8`!}Rj2SY^K?JdVhc2Ny40JXxUn(VpgGoBEqwQ4wY#~i5{XjNbShEVqvTRlyv|uP`6+^h($Nm{VBzi& z5XG;gp%Eh03gfyt_}EZZTwad7Qg;1*Q`qcZ`l|P3jM|Jh;Ds7#PimKth>WzXF~Qu% zaIPi);D4;tf7`1YQ^te5xoxXH822+l8Yi&L^R**N_FjZXRb7=4i~Prr?+w0u$^N5F zKztKa(_C0uHy_pOjyQm{inYIjrCREC8n?3@kK_RerN|zS^J@m1ZA~MZAPjwsT|lnl zkPHY1^^U~1qy=ysETZh~?RiRvDkGzy#eTphdbzpmU~hlYS4(b?PRE+&73FMT@Fn~( z6kEL2S=S0XA+ASwSEqc151}ciV^fFm`GfK#g7AZjU*A>y-Nc~H-FcWovQlF{-E&Ka^taun{+oRPrA1sqH^}QH9N&LK7QQzL<&Tv@E(8^f&v0iQi%-orvnx8@(KqU%ktyiy!$g~ zh*kdg?`+v5cEH2f%sF?c1PQc(Qy==UT<}I(O-=Rq`zH^5#4H`R!l~QS@*`uhLTzLmIiY9mpz_Lw z6F0kJzpH|k)!Iw}hQ9PFixxYUGyz*oKQ|CDJp);M=jP^)zp9I)(#!i~WtR-o6UGO< zWEF0mXJI&6eve`m_;)I9v2%CowPi7pW@~NZ%kT^4?fc_n;DUOflS2Or$C_|* zq2tk?(xh>K0ned>OAU9iKb5=U0Jq7k1t!?-iJb_c8$ciw7X7 zu8+qJ@1b@6a~>^$wet{Px`1;syYR@1chB;!L}s zT?%5M7>PW!!@P{#LS|N16#Ftb$~U`E!CImU1{g!S#cuw-(8?y2Ti>0PElqto`SRt9 zUoMkM=gg??z9A5~HM~y5^Z?;GZ8aM(x56qaCI$l)?h3}}pfVX3F~IGO4CEi&?*q+~ zS-YZg0HK77tE$|cQCjf=CWWwuQOq*n z^O#)$il{hXUcTp7#p~h9ndF3%9beOgc}Tlji4Ru6nuj*VVau%J1N5Wzs^fui>W;R)*76w{A;F z#Em~Jw;r&ZH`j1m?cq(Ic6N%(qza?y)E$=BZeHKs7;f&KxIXY#&d>bpbtlNl&Hb?~ zL|(LLqxaB^H8lYnx9swX=M_F$_dws7oO41)iNA9u`uedC+G+(m~iUQ2-det7L;|8v0uV^ z(1=7=yBE4(eyhCQM>RCmH$p3oa-^)$pQwOaj35sxEp@FT2@MHhcVB!L(B|3GnA)|L z(PYKz$jRXwB#G-e&@ZZ{#wRX5*F+1`ULem#_O`xlz=G06;Kv22kI51(7`ZKqO2?)r z#6Oucy7OPQX9c2lyUQxyICor$``p8{m#cHBX(T-Bum92~aBy&bTu}-uxh<0~)av~l zM4q;KUR0$k^*@dX+3*`i$0hEFr3aLamV#t$1^%%*dIVn{j1Bi9Ha7D24-R%U<niTjnKPGz!c(kHJ8ogimr}+hPxYAsZ-2f51GH2FN*Vy( z+a4Dq#y99Hw@U#Y^-uSK+~31>^Xr~%2hBDbRjJ*fl9FNlbcqA=!s+931Mc0>a+2EB z;3zUW>WieJBSV9i!nCy0a~F_*#U^48cNc+4g@t2N!qqj^@0N?$i&U5;K77a@Q>g;n z1d1#S%?GgDnjRNbj3CH=Wm_(x&;XDa`lC8)9rqwv4eCSz&enSpX<~r9${|3!Jos_; z%jR>ao);q=;$@KzoT#jq(@F%8B-PriSuiPQRZAe{;tRD_wujXMNfpH$TI2^|;dUck z+Qo^f_;*)Os8W%|^g94O$wcgt3k%m>1XRXmY(l){yv!Y!YOQjM(hwLJ8BtS*U?5#V zoP8J}9?Oc>eR?)CEj)EdU}@Bo3!pDp^B5fHs$MjHJ$YHIQ6aPY4%e>6YLdi6F8%qV z&AsFUK2$9W?dzFXAiS{*&OE1w+qWzkn@sZxbJ2b-gvN-7YL%`yhaMjK135oxZgDtx zcsc_eesidGM^>|wVImo}5(ifOmhTYNZPVy`Jh_wnk-LW71FRcz6e2I}l~KjOL#?eH zB9f9qNpw}`_tdc$nAcEQUrwWzh9ng-Mvx1Cb8|3}5EILs?^^&VC!W*?5|!l4-|30YIJBMPozkUaJ`cHFMiTBD{j!kUKm?H6y^sFE zc8{H}Gqu}6b?y86CzgH533YR8Yg|dbOl2mn7Bv0RCKjNeNB>M2QeCbzLd$d`>&eZ? z_=Z0iuQ#yyjC15cH5d)~V^$E82rQ!RNVkBl=i--$j=V2t5KniIht@`GB}4~%Wi$XHV1 zol-eI1CU>X?_+6YGqSV8<5@H^Ld|ygF~l7l&am(IiL0EiAf*{wl3& zYk@wC?12-JFsqi6mjg?N>FDI7H<1a)|Is#uj7s}LYb7fy>x7k&Bwg4`T+)~p;DL;i z5)2U3=Q^SgEi^1G``4*uduNB{%|1d*Ozg9`o06hM&%hw2DUH_KE4ll1LSbD@0H7IJ zKC=JiLZY4s>RR&@GW?HI>-+V8V>tSMVB-4!ck_SUC-=V(ag>(Cim2hn4&}Fxioeg| zE*$rLaiy@hhcLYKfiY_PuF0=iP^S&uDx=9vaD4*^hewdsN?;&cZyhb+f9s>9^ac@~ zqE~ggRa;=O(XOUu{gOt~1jp@#Lg!#VO(=2@S;|JLf>kqQXneqQI1{VC)6I+cj z66wg7Fll{qe!Qqt>vKs!2H`I9iLraPXqx}cL=b6bv-oIJuBVqE>~N8w!6r}K957HwR(?rO2O|8NLZ1p z4G?wo*>t`;73)GYv5B5*X{aFU%XRJ}=|XV_2??TIXsDAm7`$X)#5%%`rh!h|?DIr% z07$@$rrT38K1ZU&M0HOi2jk%!s;Cb#;D%jHS1|X?%{`5Xi4&h0v(tJot>xt8a1QvV z3mJN%prE4p{GqR^ti;=}1``RgVaCc&h2AyWjH2uXh>HX=j;cR`FDEBwdG%N4l^~UI zl3nQ0s76|Haxh@)sLCn{nU{twSz>_uuY0EGH_a{o#Ws^>vnh3T^&8UN2xRJY(=j{_ zo@o`=^J^4cbpURH(CrD_!^$YDnCks}M5FrceAzk^#WKR3R5=cRf{E<84FzNEOXz)O ze-RrqRw04pxIfmKX%mY5B@htQ=~(+S8fE=DKA46b+rus-VX zU+mZ!0s;~cqv3(l6lTSy`#z((`e#`&kRPC}S=Tp6s}oyA0BT5nvF8M8Lq^#O9^f(A z%{pBZoH$CRZ@^`3pE@L5S6YI1MkS)+<0CAeT@p!Slaql~yrkz2_I`#~cjl>ejT9m$ zJs50k0RaIo8Qu~DHUlX8nYp=v0FHz41%@UFD=;MFQ+V04xKOpjw%XAp_2D|N&TbdrHHx&U*c_O$dK1p}k2L}2;&;!FzMm$28sH_%WV9jo)qnkgEr8D zM&Z0*Ab@mWCFe(SCmv795{jR-(Q>Ee96SB`1W=0`Chf^T~S)SVZMiX`U7U{XZ+8MkFm6- zbCn3ijT)Us-L{S#2h68}H6Md?D35GJo*;|ojR;TQL|^^RS$EK(sIIQj)6;`UA$gz^ zZ-&XG%DhW6oH-PlZ82ffoqLPr0@$qgKpHI7IqNRbbUEff#Q;($aH)LT9>!SHvxzh- zjU6vElJ0%$^I!!h*O*S=rd?Ia(=4KR>h)y?WTO&rHPFRIc;4gy10s0UXf)ZiVGj@Y z*L`rcTs*yi0mdUBfW5ZS(z^yEMgmuak%j(OiywHjz`;~BeGglv=|Z#sbj9Z^;W8OD z+}r%2R^|SBvnOGA3)I#X9!v2}Qsem~unxftL=9?)Tz#rvjk4-}-(OtOt6){(K7(5N0HSpKhfVSUg_Q zzFq?p4^Ynhg?t`Rw3iBzV*7e}47;{jJVjRV!TN~;B0MNFS`FJM&r-_XZzCf9ueLRZ zO_})k`1;UG5xetxQs8sBuI=fgqY@T|`Bkdb15&y|Z+X$ZiER|hdveAGZQruL8DM&3 zNx!|-KYE0ly}hG7cig9*ep^*lb>792dji zzB>UB%eK;$@4s8U!>s=NVfY{?CuV9&^f>1NSqZc6n4en z^5&)%p8%iwbXXJcCuntwhiVs-_CqO$8rd^q-*etvhfu39`>G{GvFdkxq?VIwA@)tt z6{Uh!u<5YVg?}f7H#RXbtc1!;Lq3mvyqcUXHp$F^Jh^#Y~zu{KD50+w;M)S zn!YeYa1BoxneMC5Um>Ys%^dW=s~Rb-y4qiX8%Fs-tnSEl1B45@)e1mwAC`1H2P}~o zcywTJ76uir;H|S)0ioPRP95wOxhNTaYKu}SU(K}zw z{QDp)i+i_dv(nP#0({mQKAg-gFJkhOCnmlyt6$>Q9?bqBfmFHyzma4ZnLkLZip#Q3 zUd?SFG1ihRaMj>Mc?j9GJO2Kw0(NVbOK$7M=D>nU6AoBWF`%5x*1MsNq_t69HlP$> zVNk%&mv5n=8zR02!1$OD`IwA+AFS6t)!z6IBzlPPpd~mtb0&|K6HeWByuCOwi@x&! zHaL7H9|EX!OC_kno=tkxz`9g0ZD(1p#k$R^_B~}$tCz=#o4cBeM-o7DwMZf7P7ITg zG(spps7ic3Co!{E_>ZUfat}~yM-NX=SX$ZCh_Eo3ic$5oBcIE))is(a;Zo}TxhCCW z(HwE*g1Ehbru=+HpK2!HXnzj#d(5?dpep7ROrBgWHJL9-0V36SRJ;B5v82RBK|%TG zJROiE_vK#`XYblP@nNjxFrhre#EW$(x`igEmZVyMh+g;YJ8aE~-I+3)n;28Z{=w|zaBiT2mmBWrHrvGuOMgpFj0ZCbsJB4mkfRDHl0C z#gPjg_L_E>E-zwh@>q#t1wTc0xPjI&W#Mg9P4HOZg(Mknk0bD-pfQPrRzB&QaEphS zrY736BRt|t`h_A zB;vWc;L%{7hnek8P2xP?_$Rqu^7N)-K8I2{ z?}VZ*FjVKsr3HY9JQIK8;~Zcp#l)f%+Fpnp+%lNa^-vQ*gOnRgk#zU;oW%idzyKKd zh&cO+-DNML5~F`e$*1X!irk$r(D>Ksg697Ss0I z+aLcOrF^y$34VJ9GSgNzd|3Os2T=O{K?w;(ICb^8sI_B}Sm`WlAlE({mwLVGE*yX5W=TPVz3Vn6ST~g9$00!pW*;XN-sh%8a<6V;T zb-QMO3=f()5Fpy(goUi~J8^3LmfNko~?NP1eQq>g<19d*1ZP}r2k8^eDCo~2?0%T1)6P?U+Z{`I2vg6)Y zzm5^Oli~Uwp1$&63ClI4m)Zy7DIB_THGO$nuJMmH`0empj?euXf`~!vTYc`R<7RA3 zkS2WbK7F~RuvrDbcOaJg0e$jpV4j#X8#E9{sBt)$5Y7%L@$tilhL}ywPa}sLocc(8 z#qKW{0oPY&7_2|D6t9{G_OJjcO>cLsBVnE2pY0n9BV%VRxq#h0@|jeA1>o*Rc3-F} zD)#^`=SD@Bozol*5G0;l6S?zCYBd~ooqWYlPAn@sRT6j3M4N&TQXZ?03S4W?yYwbo z9Hw|SeL+XyNZhz2w`t`BY;TI7H#|>Vy#3$t>7a@Voacxo44Sq!zV+HB^H!@aSHXJc zr=+B0dwPxIh`-BFUd|po_+6if+gNY|W^Wdy&K$vaqc^N~hFimss1Z4Vj@ z(z5mJa_`@Fr?%p?ws=2Sf}!M4z-{!hhmi8NnB&8Lx_$6k&k@MpDpwwi=i6Ds6l!^j zFdUXH5p9-z6_R~m&)LZ{U5u2oUCI4h! z9hnXJRZb?is|$O(CB_i2^DNZeYg4tt#)>m)6afume5sang~!L&Xlu5&xuQlC6=<2E zO9C#)UL=~wEDmF*P5GvhtADoa?H<>SdRu+&Tcg<^#Y3~R$QC|2f9OTr7fS{>oU=S- zHlJcZB=C|96#yCXaC@o$Q>w2!#HmEv$9e+|!bHkpNuR{a`}Jp4$%*IrEQ;h@b3@e) zZ2JJHRTa=ttFY1%ur4>8Hc9QQTb4mBTRn}l2s_0e{DrLTJqR33-r7wX6Lp9Xc8-7F zSG?6}9916Vnc_KVu>d;kgic%awgPd(=qJm)wXklKqB?NJ^ycJ%Kra?c)@AX5)iCk|A-AcEz#sTLHHIIPQe{>VuOQC6o6%Cr>rvy=r9^cF%=+g%}N!CwiL$4 zmD7Gj-A?fNiN>omjD7Oe1O^pYSpVx zNn9Fl!J;KHw5JeuA96+Ig&GXZJPa5Ewt5$hc@UtmUf0fIOl9BrSkQZ0)#v@ZwePt6 z?$eJSc+EQN8OyS%*mSqxQ{-re{-XQIKLCh^?0uP1CIeLJDq|U3w?m#1O~d01-!OYS zy12h}bv7#}PEeSwj{Vv3AhQB+T7lu*-*iz~4W;YJa#4WbDhyc1TPKX~(D# z1Rg;I*If>fXz+I;TX%~qSNe$O>oMndcWxi(H|_}twgGsi+5CQbvX(8$31y}K;M$@D zoYJ_7wEY3Ev8+^tYG!d?M)cyqR|+nv=&T=r(X;jNGk_Qg%C}#zQ^;Q6;W0;fMEMw( zr=?lfOz?mAXQ9*3VfAUJn~g((_`ffX`0}i^!rfgN{zOZLr@^dk_qeP(vl~7`gzjrS z`?@U5P9A>e3jIq^{8)I__nWZWD`DR1ocFHUC zq|wg4=w&H=FeTdXGB%p38Cdiq=dU)o-&Lv6`l`KQ%eTAJz0c@*^XXbb34z6`gwY}P zQ>FE6CC4?;3$~b4(Nfn6b94V(HIxm1u?6`BIAwSU9Y;{HBj>+_Fk?)3NRV(Tb%csRfz()x)E4kwBSd z9dQe?pS_wf&P>l;$U&3r;@m~R-(X1`crZA1PIUU-NWc>#?a02apm{ahcM3a}NF zS3x6y@$7Wq{sB(UdK!VPQ~eYUl~|R=EHQDYns%L5cgke0j7RrNs(@1`Fxi#g|5gsu z(g*OYnb=E?Tc=O`#^s&_&kXTTtq0LU>c*LKwHHYa4)1p4@P6e$x36TO(U1Rd z4ZmZ2Ze^SVtjjZy0NY|_)imSegY1Z5jEuI-b#nQnBgsT zK)CE2fcyBRj#L)#7ju;6B1xCNLh|hx_I{GZ)Q2)w9-6B!ER;lR#alyO8=W*NDJv!D zw)<_M6n(0LGoON0SG0UP`ZKQkP9Y{X*06Z> zi<(+L@7Iiq>y)QNg}nUpEk^{^&!0c9-gy98f2B)O`A=R^HVDa_v6*1dX$^IekRIFF*~>k(^b*=#MS-u|(K>_7&Jub^uo?R6DdYet z$ckCpiI|jhZOpf&-eD5=YcdC|`6cCJl+^cFMMQLq4MRgiiA91y z!c6J#HVT&`)ULNmk>GatkOD7OYf4Ob#bJ^EK}+9dh6?V50xv*{3ETV#k(AeZI}s(o zh4=BRv@QTK-hjer)orex|9Hq0dw!?+H|MoDvSRj4x0;3qdv8@hi>t4eF9B7DUYR&l zrQ~_YK%pG$OHm3#!%HEy)VHRcZfuQd=gHuI`#N`^9Ss7Q5@MsIByP$KmVVGu!5+Ad z5F_a*-~a@$TJYk`KXO#4^&Z&xk~%}ZwNP!!NH5~Me;(A({?7UCWQi)hWHzP0G?hy$ zo8bS10Bx&~mXQ!Mw~I$03oO2ot}68*7!{ii>lC0k}uJ#)>{X{HtS8zJ4VEV5<=OWkr1Z zke;1WmHu{Nqtl&STwffZJAee9t)+Cx1VHVb-ioh;=M#zt$**6(`oIPr4wp-rULFNE z1ZYx8ICu6wuuN1;Bepmtr}cO#{+AbkxVUnPe4!B6k7Yc@*m@-8#V&G1ytu(viW z%WP-F)5oOfX@@$~;PtK*`r(pKJ3Z9ET!U^WUTFz%s+_`CI&}d)Pt`!u48A-vLN~m@ zCRE+1Z~@JtYASW-B01dto{c(OEE^RTLG=U>5?iDmlRyW^WU_#K^C$NKeyOI=gFm&c z=Z=ngo6{bbf;j^xPHCVTHa0Nr?(KDc=`Tc7cDvtXc%~GtR?c>)Uqk|BaVMA9!$=Yho?>~I|c@G#ma zH*p{hwK_pMWOV87rB68!_icfWDA|xo{&Xj$Div&FCY9m&vh&Et5*I4Ws@)pWbd}(% zrv3d#IDW&@&azi;(qF)sl~)ubBguT6k|iD>O22EnI>dEjWnqzZG#!<>p-Jdd)B-WM zvbEKd`E-j-7z`XHfn+B>fWerpI4eW+!p5PSBBFLGutV@wF5Y3X6x0jMlf6)*3s++2 z;d#+;8k}QhYN~ghA02jTBvK-t6!r6U#nFo4(rtK{{R~6wHR8N#@G7SV#CGxEXFtpe zb*6q8CmftViFR9_v7C$1&x0G2^f4-aHa0A<9tRTe*7a$^^YE3dez3vyg!RZ4hcgoJ@(2&l;DT~07{)dOigD@pp zP@0PWjO>(Gv#vBAgj)$XqqcYhhd=VI&r#>x!b$ zw*Ll{(J9}O07ni`j^94p<1a{g*Z2(yBAPg6tWx>BnW2#jz*Ssq=y*lW7x276Etg3Z zhn(Dha}%!_`0_zdTRR->S)Ibi&Vo z{Cv}t+p9N0ktF_+KZY(`c7_ZPt!k(X8WXn%wA`&P>(I)N+Npc(EjmWi48iWSu+o*n zc+BDuP|kqwr_XhkjhV4?@dmA8w=cKe<%t>ygJAf_0TwJhK*|&GnG&(y&yXa>#Dt*4 zYLn)?FDD-KzX*u~`?izlfQ!U->dd`F(I4lFdUhhYR!5_S>Y|=HwhoBvl6vDSgtxN` z8#z&VPeGqvXeYLMD_Sm>W1{)2V!fM~n5=LcoMw#t6&KfYS<=Qe%~*;FnzE(Z6`JvI z>L~Bs=*%c3c*9_iqAxJN1JjIz{U=nYE6I-U!+1|MSGHCRm^LfGUIKI%;^ALB`9KVm zib!pbHl!;Q?892|p>xc|X*#S0%haG6w)yE822islOT(&Qg9&Rqi~0~UCy@4^DVgbS z&8;nNcbFDF+PYib8X8Gz)wVED9^>&s?u+_ag*E(!P=v&qI~53mWncRr*d z-r<>oxBG{>ypk^1Jb3&0{Ri1Mh4G@_-m;ea1vU^v+r7k`mzq#gx73wg9K47DndZGx zojG5nfWNtQGJ2Tmbm~9(+l8(8&Iki41gsZp+Ddr9(gO_r0OOY%;Z{i(3s+lDq5fWs zn9A4mIowxQtJg~#I{@VdFn#$dOu>4g=Gu0t{E0Q1(h1Wg8b2;>@>zZhE0=X?hyjl6 z?&&6Z{8T#;xS8ad()ETY2&A4#nRLO3c$P#iISYwJWlu;3ph#vb)j87H8_tVbk4VAn6zP(p>2;p7uA}>p)>kxes0RNShYa00q&kD>A{{z z5#~;SNs9glac>=0<+t^VE>y%IB%}pJLZm@bLZw6y6s1eLyK{j-hlF$}2&i;-C@m%3 ziw5afbl$Ok`+Yy3^T*luzUQ9z+`IqT+r8F$c%J#pIp+Ar7}FvELk_gy(>~&lR-1S` zT4wGCF8enf{ArEaX>N`AU&@^h-wvmwEDvvval~?ZS$sO)1qLUwCG3e-jn($W!f=TR zz>?E5f?;M!eUR6TPlOhPE@m-9PJSwo(n zZe!gGmk-H(SZ>cm42BXe?(HBds0Y&e^>#@%n^K15jUoP?6DD_G7jwC?QMJE$;(7&2 zLF?xiJ_l3^fjp_JZy9oSnuw_`me?M~+?hK{yWF#dihxE`3XrN|pW@H?1q{Io4D8=O zUqmdbMleRWaDBd&SCFgP{H@o1@9R4~c*|ONcUK%}RQS&q5P`LBSvoBDUp-Acs&{>J zZswS>1J}k8E!)a#Q5&yuKCg=or~a0e^+m17$R>X!v}ZE-txOAk_VvM`o0u{OwdyMv zBWDGg4E#v?^o)#O^1odHSKVJTQy;Fr;P5|eu#_ka*QYfW)Q zi?*P3H8!=}Wnv;59aV?KlJs37j$VH&;ec61&p^-5LAHeaH)ood;`|ncqN$0&Wb`!w>4Fit zpx!0W?4yT8UNZ(%zEo2B=kl9XuH_!{lo#H;B?M*?su@Ub-hBN0`Ay$WTwNohYl~Q? zJuu?KSZU?Uv!|9&e<`0LRcHcNfyPndZK?n2DMfA85x@$CLa*%TNmsPyK}rDTMcB`Lsg}I z?p-*&sHOGuZEEZ)TCinyy<;M7l67^{W+UmbgoH%nHRel!{{H@|cRoA-&DLp0-qKm}@kue4lls5E-2c|S{5SnrM{lF{k?7h;P%1-> zExJ{<_O0aMS6iM8`D4)HID<;HMAv+R5^&h9Xby5FZ!DI03}*4uxL*HLq2UZ8FynDd zw;`UE!Pb!ysaOV689@r#xhht_Rughw=~`gZ zn5~i{biL@brB&}|cFa=RQUPxZKpL~(t+g~2$2cc5<1%1b*b&JTQGrdAGwf89w{`LU>WKE2lV!E8ngiy)TL;*r278N>l3vFG@X<%c? z{ZIFG&CRdZuZ=km7dh(`^LecdCeSW+&HEJD52|h~%3Pu5(<4cf3iE6*n|Fo!Z;$=w zw6(_>1S$Kg^3zYSJ6D>Y$4b1JI&;aEm(Y_H@#(&bcYStW3@0{a|9GB>(o1pjr219M z-s^0|q^YSJ$~oHYJ^C$e(+fvkE0mkkVwX>PHj*}^=d_+d2|9x;iScYk=cCtCEPs{i zQ$r>z@fKQmf2g>p%(t=7Kb?A%pv>0MUFEnWaq9cLL)WVzqtnH0AtY~Gfy%i!+NyPL921;kvA@_rvx@FEgBt?z$ZB-Wn;s6emu{Ajf_Qd-2?l3-{+UX=u6^H zo{)=fbKF0lw=;Wg5x z&bu5a(VK@QleFVC?);;oDtTM!wnfn{r1#{yG?SyUUVQL6#koO3vNO67-a6*uzdCpwd~{Z0zqqu2WL)DmyRh}ZAJf)} zjGy4XQjTds&d@0YT)*M+)$T9bm+lf&zBu@A6y>UKL)9!9=qes$pwvi`PI*e&axy^fKhU@9>} z7(_KrW5%`!2KS{i36yeE;Jod@nKaaQ3wq65TI|-jZNKo18NVAJn~eSSM|gn-UZ}-{ zjW{0b+NM(Zlz^i%tr9mpdm}j}&m)ICC2pGsNx6q`l#U}2n2UkOHiTynJ5Tq(# zT`HM0xB&lip{1)!O(vfH>b&Rg0=@bBh{5dLG|#a?MD}EUcx&rZL?9W#&r%SK-yb$S4m3%*^_lKv>?dbq z-E-)jOH=T2f~k2gd$Vbrc8cxvW;|~w(?K?+)SXLFZ1f@$g&gDWG)UDtAn9!H$jmfG zvAr5S8Mi*|n=%$8IVoECxh;TM}Q z`t|qY~`I8PUn(;jO4Lzb6QJ7bb z_1FbZ ziqhP6f5;{6@x$hptx@OG|6LJ1_46X)e)RsGm#Gq4nkD`w0tbTMUuANO)w-@21zSRg zJBb%BZUE@&VefUJXyEkz*4C%6Pv$8gsPrR~S9omCb$@+=N6c%R>VQ~YE!B-Jd0b(0 zFDa9FSiIpE>zN1(U(4O?3?llcZ))rBv$6(1hw@%r>>-bZA5+Ks8wu{!kqolF@7}#@ zDpgE>X6i+~6VcsHTyV%rFB=^UWjim5pXwsyQ$!o0zV|Klmpp8e{q*JB`|*2`{mSz~ z%m6G8i!C6r68K+y*Lxj?iq65prGC&jUMk;7xzJ)hcw~A{b?)NV&# zhYRlL&V)Kxn_5DS{sW>BOh~t_rnRxMw46Fyv{bMqY@i`ObQ~S6XCwm3X{mARFV_ti zv?U&vtlV@Z`=OF$w*C{1*63cyIYS5t2)y|6tB++fl3wO*NC+Mb>v$b91!VNqwYAQb zl%$q~Rfd!pCcR^|R#@B=eT?=;I~0S~;}VbR`S>hHp27Q1YYAn7v3FSMUD_o$5u=Cr z>9Ew_BV1gkJ8Og%Qs}N0cxXJov&3UDvaAr%7=ZOOk`a#~kSxg0Omfb3`KpKfcVpi# z@<~FSzX!}&2X(3)+Gegb&ol)#y3tnHxyCM1txu4dYz+}!*r(+bgRU?W*ZtmN1qI2M zZVbbCQ&K(~+5W_=`~x@Tfz{0o?KJ|=g0iyA=UJq|R6K!K^`#TWEOrU}=fls-5(Vw|KCCSF2QF{9@BAg? zx1PB0*=YAiUiFHPe>E*UXee|XtPx%LSthoF{n@=+yFdFS9+|N*BxlXA{dU$|fi#6* zCyAU2=KmM%B=wHuhbfzzHt{7E;zb!Dkf-UNG|DVEu_f@kFFA>tz6g_fl|e{B(dPd$ zEx_M@YE~`|vc!Tzl%`?3%f&yr&&^9MLXLEKU6&s~^Fhh)5e(&?i}*aooeR*1;QfaW zJ*lpJs0?MOl>UJ#O+E$bcV;-!QOM7-NWctnevhM4WBJ=Xd2Y2 z=qxERbfU2=EiF6A7y+(sx1?NbTb`3>P*`qRF529jzH5K4+HU@uj^`mZ^Q*6Kbf)@V zzBOLlIU5pjBl$haV~q7u$dEArp-ZIFI z7v6P0_X)lwHvM76esTNF@5ZgKa&Z^D*;Dr348R6Jx_=S(+BG_zpQ(@fJ>o?krg|NW zS2>6IKG%R=Cq3k4I+d?wn!_jz*SR|8mkg6%dmhwlqnoI>CYUy_X0ocqJ~S6H?Um4? z5Og?r>Wd$C$j6Dlw}(r)iKCSD+H0CCsIkP`a?ErzwdBwhX6#6XrED-6ljq1H6;OM%@z^bURqijAA9|>_Ic3_Qc|gQzO|83Pw8Mw5G8*n#`R6M z>)-`)NQd3xpPZgDI>tK5 z>5tAlz~vYR=$zFn0uF+47k| zxN+)x)1Tc(1bV#bCkBXXdtX4{z3}1n_>{4ckpdf(g`I18i@p-wHfv@ z#UOjE#SV&@s`q98jMV>t@XzcUewr%M2W${wV7aKv^40$e#Q*>BLH-Rhu{u-bP4E)4 zs>sSG_2QsCm}%eFpIMK*)XU5s?^&>Ky`FfrGH5+j#8I2-RU_na{ygP?U3xA=tK25s z4KD%0k~l;I$uDoUx3nUJ#TOe@t`iWnWIYW~DNT6bg^Rtt=uU7mpgR7^lx!4>hVSd| ziWe}yf!0+`g*RE$W>;E<>!d!4r5FpV+}obql&za|J=oOsh`E#Z*?uN#WO#T}=CqPS zGlkDGeqS}DwVnA=t;9-nXIlbOSyQ1cF(a2=zlm?yNl?J7RLd(vy7ODI(d7;osj$kn6$I=i=c{^>R;bD* z@1NqW^V6ZuOA%XIq19MP#OF!JL|D6*n$=ZZ1Q5`asb>)S-zIU*GUc11N!Q0~#i3#H zch#SMdzKorfB%|T4VA0Oo(X!qHw;?jaa(n{aG}&*On^L-HO_Rfn5)F>by(>d(0|%#1sd|qdBmJ0iZOf$c8hoANU>PJ`SHxJ&O31jF#{m3ZtdQ_UcX(59Su@zfFsSy^k8=P8tl4 zu*Z(SE1Il#wlBBXbl?~GFV86(hPQ~9hHKd{=~16sqY(3@=C``!a77^t4Gcl**3!)l2DTRNK~QHaj9|Q^X;=_ z!64eBvtV8F{#><&ajU7RFHq|J&Y&&gWxAatH8u6{%tm*FVY_}dI!p|QOMlRU8+n2m z$-DRd(tyV?LwwOHm`0Fw^y{(fby8hxYlSwVCYi*0g!o*E9g;Jn8J!wxHAZY~8V~Lo zhf-tSs!zEv6OEu-RM&*tiz*|$`zk+LAuz`Yn&YoMbkgnWSc0sIx9pT7iP+uajA5jx z;zgSJO}qJROd1f&kGuowO#tbI(?LtbXZ3;m8`(4k?ALraxad$(W(Cy~H zBi5b3#BVw3tOq@(7H+uA{e77spYj+`Z5*%u{iVM2i&H&m(mSgIROjB7q+{biNAVbS zX1sXJfw}nGOIHyBHk&s(HA?39&o0J_8D}(^1Da?I{vO#D#XLJ!Ye<(j5168E@A#cu z9CvSpconQ??Y=5urpwT|)}!_IvlutG50cg^dtPze=5snRH&_RTkot7t! zJVE%*=m*};1ipa5T%%nxTq-V57YAb-Hq`4J5wG(U4?~uT0s%2 zLqKGv-TH~^<-PM;-tYX*uu|RlrGg8qh1hqtBqsZeyQ=MwkOM(~HfW7*rtNfca20Wl z?EZl|FRd^MZ%niGgd0HNHwEifFFsa~8ZTxq%=7V8iatf9c={a2i8zZY-BAj?!H^%Fzge^x)HdC70PziR8>1 z2k{n`mTeJ&fWyx5jtQt6hpa_ffR^v%eaLT(y6^@7@G7c^zj;XPitDD-F&;ktWzNZj z6+;ZVv$5%C<7-w(Jo)8xhX9pL8eVpjlC=5U>n!A}Oyss!1tA^+4)PxSX3BZZa0@_MVj?rvH)Tn(_fN+auXtQ6vzoYE z&!zhWVYgs&@y*!YEnBZ&?Et-U&ahU8D_BM?iEtYVa{#L4=8g!u?U3W((**MEOVHO= zlneCLTCR`}$3UOv&E8pTIz{|HC7sV`|*YC#h|0(FotI&O!~gK2RIh`hrg9b*R03OWnvWE3+;#2 z`A2n1etd#Vvm;(4CTl1+E(Qn3Z*#vxt!I?~n+lG%7xJX-w55Sjp(CO0W14gr z>KnY6Pv=`~;d)1l3(MCYC5`ef4W{?uY?YbJ4`9Xwg6Ox`UxcBz9FxsC*6$b=>0d2( zH0X1I31Z0Tjx|hfr6ME*9c%H*aOp*FV9Oo{lC=4JyDsE)zGhtMu=10C^0c*Zp2gO& zv#T?Kf27=&XPS_(XMKOCvaq83PpP9UOcJ>oh4>dgBy24#EQjHVzkKQ0VArX$y5+Pw z-Wgv~+y7(CyAXw5CD8ZImuAX1qresMh4=5-oB5!bjlwM{QiV8M?AoNN0=t1&mH&eRaSGB z&h72X52#t`=(aB~$tN~4%NkW8N9Su+Hx@b*0O2Lxl@62Iy)>Bfd@x&n!*Ej1^Iu;k z0thsCZZUTi_onL)MMDhI(x4sG4?;y3^1y1<7&Y?U^N| z_oO*v1%_Ejj~GTc>Es(TsA@fD^PM{WZYd9pMkjfI*l@|@1&XCUQ%~t^zuh`GfipnR zezC6aG(h#@?xnz1cSp!smXW>hix#`W#Zs8&+dpB>A<0%RiiT@%9b1cK`7K^lN>`NZ z{VId!ty}*gh-?IEXT{Doj4|6er1o!&_pQ9LPyXyP!MPWY&L@%SZjdq=(9#V`f$E9M zx+5-avo|g%?;+Y%owdqsmy&I) zSRa^Rxwt)kOO3K%^yy`6Y}=y_HBHUL?>c4jiPk!e>ZSs!aOqnQouTGWVT><_HQKm4 zIt20rLK2cjs2Q9|=L@LWS?cS_+$Te@sumxlTQ>aqg)*Ui{CFSnH2%R7Rn3_=83l!m zi;D|D5fErO@yE+uBO&_Ae7HZb)vDo5$MCGLR-bGSyIFW~{g0R*hJeHlimC^hDgAf! z;*b~8Moi$~)A2P>Ws*;@+al|3!{!^@H+uyiU-!>P-GkTJPe4JM<9HohdP}GP&WRzb zU9kG2b#!*ZA}Q-Oo6IDpWZrLtdi$ZLbY*7YF{qxy1@>fY>SYYpP*e@7)vOU4jJ0*~ zns&8Afas)080N*J=Q1r0e|w-$!!&E$)^e7;xMQ})579fz6Mny%p4H@Ax$-OLss0KV z_kr+re^jV}6JcYMkDN4Y)7ad;kEn-}Upm{9JqGzKQBRUChqQ*bM~aw=GaKJXl`YfYTu&no4CqF)J+D-Sqy3o{T*7H|`Rh7#e`)344CEBrHn4i50@k zv#$cgaPSx4xSt-gi6UoO$Zk`g2K3Ht@1#E4RS%{ViH4rl>cu>`?<8fT6*C{-6|M<< z@!5uJ*|Rrxo<+I&fTntVOIVOrIZr7}5WVoK)WcA70-dirn=#~?B{>t-tbyun3X1vG z_n8nj`P6C!!TT!N^>F5jYNZDQ_~i9w%6lLY=^giiUBB3@kLKbx)i1)3OB;5h9)aM4 z$ypY<;vdg62I!3sg{QTcjFeuSo+gxw69}z#wQCu%9j`*BNC5?Qut~V>>ZXXwqy`RB z5BM^R@nZ0f9>1(I3NgtupD4Y{SITz~#nL`e^*CE?MRr4UQjh#H-ts_+iTmFaq{&Ez z2>c^mYS%1Lz&3*URc2qYE0kubJuS6hf7IVrY&3EC5;peBg0}>p?nfjV~*7ukE z5Fc;*h!;DqJ#=h>bkEUzh~63{jGz|vc+beDPE0}~@nKt3K+tfy|9f9YQXOK_aV3_^ z@|xhdCf46wR|3GNt)K5S930HbIao}RdiQ@%TVPBEi3>9j5E$-9?cWji4I3^p=0Ju} zwD`QkiQ~2vW{kY*&1>$tG@gSKK+KS8_USkMvnYSav2e*ByoVMZT=qvKkda~?fD$X0 zDEz4-PAo${hw}Xgzaq0;N{lxEiBCJ-uALGW#>LlyZiG$!V4;eZSv&ilWDqH1!>oOL z>#f)qv5Ip;m8N6^C+;kah18c+20Z?->So`N z1k|zsC7&tgavJ@co%>>xm|rT??G%}~Z_hE`Rj7R{)ir(?EE~g-5Hs{mtJ}uOkzdH^ zupa~)UJjjFy>!eyJ}~L;uU>5{z}%GA3ZJS467JWxD65LgX7dHQaMEkT8uJm1qH)h2 zz&2dCpIHbY)s7RVXXI~sypBVYdX}S|ts!to)rnmuza`|%Q#jvh_&P_erQBsn5iAAW z-zW2BitU?=GUSr}d3u0=yd3V^YVLbzGjdJx z)zPw8WmTgKe}ja?z@R<6{hsRA_uy~xv>(e-$)iZtmJD7Mw5M|3KzXLky6$=WT`6O4 z-hVaciNM9fsY_pW&uo~vPq-g7g`}5}=Oji6=CgM+#G=GpIJ9}5L2`UQc z3@-D%ag)5$voX=(F|k{fEE>&J-u8>#(&j6xiJ$BYYuKW1wx)3WIOW;sdx!I~fjfYh zsnlewR*OmsmrCvvqDorOtSL3xEI`93p7o++^19C25OnaaP-= z#BG57A?!9y68`IT_6wArR>-mv^G7jS=};Pd z2uXR_y3ntR`e>08q!ZOdGD{1KzvBhB5G=~Md>mm*<9f!%(sepWy~g~X21sGbt$Pom zKm~`aJ|DSoA>CoAmwPXd5cifaA~K{?1zA}TV z7Y@{g`Zx!R@XV6IB;EoU9i= zKM_||C2tD4$zU2m-!mAq#oqa?NB`|n}!=6Eta{fO}Xlb^Xp z<)xScHBejVywl+lcYetBUwyT?!)?_1#`eVemGjPQewfk(5x+dO;8PP-aySvp@Z^0P zfY^ArFD}!Q*aPa zLWq1#fuydcA_}5o`|Fd&z#);YJfYQjZ@1mgjE2TS30o5c=d+Q`o!_;xE`t`7`B4R{ z(70V{&tjxwt@o?^b9f<`gHBFf|>SYU#$=pei}|E2#f21^}t~2TFvo3*3)R#5p(NvP<1t{oNh(7HI5%% zHyJ1tG^OeO5Wup(E~(`j!)`fBK9s2tgYRGYbL049dqdJddkm-3i3GsbhF-&$(*n-y z1n>r)&Odt@*(g?AIo}C=DrZ5CLGB!XfNZS5w$Eq}`*K8gA9{czdjALTP+y-%UPb`3 z2b)-`+d;cagiB4DJzg3fmzGs*lOnD*b` zS5W~3*O6F(j^lO|DlIJqcqNmUEMnu_ZEE$<ojdsM5DvIlE43e=a$!Haa~&K)^w{&+yeX(gV6 zk*FU`Od&(N12Hu&2b*`q{leyov}<7V&@3KJb`%qcov7OX$f{Oo($LjCxMy%-CvuEk zv&u`Pc}=Ur?WVt$i>C%HGBF_K$gBI@>m*daMPZ8eMt%8K(as1c&Hb!`1yHnUxXc))QxM;=2N859GXX8Rb zjF+ZX@@j)^?+Gzt*Iaw?CkydKR~N%#In@;53UF6X8FJ13n>O*{e zzQ4m?8_A?_AvVv=osOQKesl#r*M(ibKG9}*MeI{>IPNCAUg4f3#_zHOejfjTdH%N>kHMdmsC(MMccnwOyT#5M5C3ECFe{ed zKw$K4%vR*l(xsKXtK|oxE<@l=9u9?lmsZ<>W!?otm`EO51N;by_hL!3sxT7VhQC__ zm9o+%#BG4wmOFN51Xin9)r!sx&(plLsjXhp=x4EmE!-mjc5JUMFKK zP~|rozXV)*NR_+1=(7|W@5TV)mu2#7aK>CqKH*)q(G+l;K$8 z+%BLLSS9t9yHsq0IjSY`NmWj>3-L**lGp0&G*GDYwkWQ(AolJ6QRvC?$@1Io6gS!Qwe=zJc8sk$!!orEiVVS$bV#x%zV!&2WYYJu! z5qAguc4eedcU%kj95KESI7q3`wOtu=*x^}%C~1T0t+6sg$Syqg8_rb=?0BL0MHdGD zz266YIF}%)${9dn{oo)eoT_(ra>}n>Vye)<$oB1Z0VaFa*O~GH0X4|4>Y7;HDO!oe; z#8EF>@rQk1z}Ru7cb+ACceeo!0@E8_6#t>2-R%sfEI3=`(0=L-pT)Sux@HCDOu?+7 zBO)TACzBg>A-3OC&!}L}A{R12K$@5;zL@*^o=zwP9h-#?HIIKdB0FE)lRgjYx)|I1 zGULBfSO6T7F^~20SJPZa+&dV`sg#&N^cG;+|mF2-r;B z1{W2xa`C+&vM!*uuFZ8!8_`HzzNh|`6TQ&!HQ3n{6EzG+Cn1z3~-2nJX2PkT^YU*?N4`5b-^Y5hF7a7Tj3yF$b25x@wM8FKoN0=~|k zYM42+XU*+8{gSfkObv9eu>g4*sHpfc*W!B?_05+Hwb;$n9N}hF;~WyM zy!fZYURnzG*82o=C&+!<`Ud<#P`Z70XdF#<(`k%aI5cbL8Z*O{qSSzeQV z5;FdO{b@@${ogU4(&H~kk00}AT7 zU?ii$JZK*f=wOYVK3BMpI+7+7Y2{Efc-*erdy61 z{3r~=w#=eAp!>94@##A3Y9KPc{3>B;=jw*RFH#{i?G1heotCf-5`+5|gY&jPvsr<` z_&iCARA(i)e*JDtCK#T2Py?%BgS}0!mfM`F3heS z=oXS7tqtEP_d4}$;-d?BilM#_e-E_AwG+d$oe0|GH`&(6%0{zgTD@xqisM(&BVF}k zt9CGt>se5dm#6F{RYugk;1b>@{VcWS2G*dBlKuHIuZx}PrC)#*ahYR#l>UR4g4d0e zfJWFqt0COj1o$k8nc&GIJcsqsTP^Reepjp@f~;m5I(J|Q0-#$8J=&i1W-1tO#iw{J zNyqnphp*7l8viyZu-filg5*ys1?~ULy~~N@Dz(yB2Pgw z1&T|!0IcUX=H{{^g{W-J8ea%yB&{jk)hWE@ryb|W(}9?Ud7!oC zfZ6H)uGCk(3NEDwrakdst_ODDXB+eNO!*|E^%LxaT#c4s(^sw23ud;|aBAUH!iLvZ zmx5FhHuYFs3hqBZ#KBo~-dOK^?e^ET&h}^bhlgWx%hOd>A~2emI7z~$I6Usu^jis| zm|{lmb-@LvJtvFN;tzRs$38#~{mGHdj9JeD=U_0+!{jirE{WYAN-`hoeSlKoe)H!B z^iA*RSbFt9^9-LHRz8Pfoi1_1$iM_x?kcOSr zCva;RQUh0IU$_~TmHzlb5Rf;Gm@mUhJN{j2?sYDa93k?(VHw$ zW#6)-c7MPU2m{5X!15SB$WbjRag$kvuUX&Yla-cGIEbKVGI7M92vszCjPBRn)EZPXN!6J@lMmN}2mRIAO6^9Nr0?LXt-aaMkH_FjV4hR* z28BLcM1wDAD28pe6H?0&;G9wEvITA-92oH(%!^R8@*czQ4W<)AyF;DM(8~Yx0$|XF zo@5Z5Hg~1Iw*C|W81kmRCE)%dko&=5`gwSE>dKo!uBK)3lwE_?V>Ouw`hY!}#*+He zV^BP^)oXkQ%m>x8tEfmW)x&_bf-X|uve7<$SDIYF<(uRfNa<1~BCbd2$3g!7Z$PFy z5z!|FEqe-8;~u@De}D=vOT!dg<;^=<5%Pc?qxSR*N0(X>=G10*O;4j*!+~3ntolpG z&inradNoRe`2m?QYj;}BUqG=~xB#s0pDFJygT)98jyz94ai_a# z9k~B(V*ab-4cXEayzBbsXBRQXZEzzL+Ams>vc(43D>L2xvB(Y3%VLXQ3RH>;mo1_c z$8!?@z|JBOQ&_I%@P#fJ)eSBa_%2Qpz_8$~dATL5ueBvZrBpFS|TFr^mg zZ6F5G;E+YUmu~b7`wS2i!%wuFpZ+Q_j}~!o-jKp;7ZuCPwHWz!2L-3eE0(`_toZe* zm9|QSA~yJ@+hFQ1I4JQpMo5tvgW;P}cbjLOO#e`nFl5IJ(m{;{{8 zn$hTM#=|<;LWWB<+;w8y#<_6M(YHs1FgWL@$QXuSDy)H%U|hEY+7nt})^DFc!9 zeD;4T4qet&HJ?F=2t+)6pvqqVP$o{XGlWUS;1@;>iXnnR^vGYR#9X~P18NT7Xi+#0 zTRwd;cRNS(JDq;>bC6))+8MHne+Gmtj)V7E2CeMycl^_}`Sx%ISyIT!gYqVYBA67q zKKdYQ?GAR-TIec|;Pk6f+z=|Sx5#=Y#2i(S=EE#^~lSs{XK4Q2FG%%-rrJ5 zbcR89atQb)3v~O8XhdD=rJ>#~VUTTU^!qzkQA0U7M&d}OQ2hh{mmueM+Jv=Noi zf|LG;fczk@Zg@f5fNt5S=U<9@^%s!qwhzg4dTKPt(5Lv4+RX;srkHi#S~u}aQWlCz zg7{Y1wz>b2#?STk-@U7F+r6)|cZ3VM8hD2e$$D(^G2hmdkhlb_Aw>yYVxyD}HNa<_AnM3I8EvQTzK$TF2EDDDxnseERChx2(L{l7fI ztvCw*av}V?!ruQMZv5XsR4orOSj*c&x!P5}DU)tc>=;;Nue{v%3Vuu+HaTXmy6S=A~Nd24Gg;rJn5WSfM${ZW9YN4WLdBz&U(~AsZ*keb8@y?(l@0v zxBtOvU?3COTcPi+%&OMd&=7<%hF;OqxV2+tcTW2%cSRaJ+n)@D&P#|V0v zh`A8$^DjZc!SrxOY;F4u7N|oK0BRQeM}}u_KO_n}QUaCFM@B~3pNIZ6seU))DY!r} zWs>C%TSQB}nQ4k2wjE4{d?EF{aD$rq2@r-D&J4rrSpAZ~rxth*J}GH@ekjq4gB^1A z#0BGSj{4p=Qf$Z)!=ZCWCZci9&N7n{DbBrUwtAFpsE_$rmE} zJ*>?D%F2wolUl6n&Sk(6E=T?l^pS{*HcQ)v&7ldcT@zImUZK1pwc??Nh0R%-j^7P3QX=w<38I~)`bKQ%kJ*5C0z5n{Kq1g;D}KO4OR~V z4y?zT*T$Tme!9;9&?;U3xYVE{_Gfj{{Q+}(xK%JE3ct@(=`Z$SxV|_O#c=(`0F|K8 z$t7?){7QnKrHG2$WH|uM&Yb$zEjBYem`;$N+kyS|?K|-Ufmc#s6MkC67}Bw*?Jtza zp;HkEHg3DURY402IWW6EfscR|eNwzX>4BKSQ%IHmfFot0BQX@pzy%&g%f_(x zWh-e|P1Zh#KOM!P5)H{%p;-t=LfH|I-rw8LNH~nF#6Z&U#ix}4!{2w+0%4%5El@}2 zd+WlY8ChGi2gZeg4AG55L$J7Cy9D=9_Dl;44;Pc&jUJ|)8w=N+ z*u7T}J=*-zqF%Ag)a-GFO|!n<5i2x8jp$B#h^b}fqzu7~p%mV-J)~yQUUiAj6ZnWJ z2tzdr^bq9MDEe>G9HG>L&q{tML2VW(IqLNNCky-1a?1wIt<=*trd zdtxZ26EB-e)~s;~@x@zyRcu1Iw>H+@F=8*^aKH)O1|A^EC(4-vA8+6>fS0hk|0@@q z_1xIJX3!gDYB5oo6!)bM3SzO}oT%s!6IR@C-Y0_4MDhyS4)I&eo$AuU#N;~KU$Yc# zVG>M{W0Fsv>+8|~K06yy=FAod4Ob(@h{9V^ZyfOFXct9;hek2SOzD@A92YWTb+U|q z;;nljC{-RS2b+qsQlwC{Gg4sDMt6 zS=7@P!ocjh_FI3!qI;^J5r_>&raqCc{Ou~)bGt*@>4QPMMbyU793c3_fJ8Eg9uQqM+FdH+1%%$)&JuzK0;Cw2R*jp^6GSpe#s~(7$5ZqEL2f4Gc#Y> z{VVD5OS{x+^6_asB3SBf_;s>Z-`+eXmF&7}oh*#l!CjZn;#<3#LiIRC{+5lClh+Ko z&44>DRzO#HcLn<_L`8dUqbISxj@fRS4uN?xTb4V{>*Kh8hj6^Huag;%bEg-JE z81D>$0E|@la*~Sd7xNo5y#r1 zQLD%B{rmSzj!PE!-UyhCmv9`L`ikhmKGAL$y!KEJwBJiWv@^l$3DRIdz#qou)^5OY zT<`bcXbzc9XAJQPwmE4CRGMo~h|v~#$2J;$e_p1l)Y=vpy;_|;@o3Q#*KN0wDFWcYfwN4#);!Hlxs*Bi-_m-q{v$y z5O7-+c<8+5Wk9>v$YgU6bGM%WmlNj^f{KdjZKaWiw`Q4FT7|ISA^saz%Yve!*)&4h z&8Bj$DE9fQ^&*i0&{ggq%fyuF;;#={hez$_n}@M4$t^6-1`nflHeVp37Ul2yAjQ?y zp`7m)qe`ykNT}1m)>bpr)N{OuH*1MIB+9 zPj{j%PrQ~QnvQgsza!v5N7?YLL3E;Pu)hktOZ?{N#6P4HW+Yo8SOAdRU&&l z|4^~%7&rZ(J)CL3O20ZG>s?1%qMaQ8;jP+34DqDd(k`;?eVDW5wjqzMaQ$RhzS=ak zfXm@4@eC zj`!@LSBXcp`MDvIdvXk8UISW~)Dg~cd~XNU8}=h(Yh#>l9Rih?K5UwyGx~RP#GmIa zM=@)~bEnHDj8%}_mnh2Mz(5?7**<=<>M(q#+>A>kxcx_$qZL__V0q1 zF|33jt>=pHiD$y$)KCbOOxU=J-i#8$X(PaRKl#97%%Dr{uwp?p3TaFORZ0_Y6PZ@aSl%WZ?=^R53H0e)IXo&$ohJ zqIBI*`Igey*c=`a@fP!Hrs>gyURB4$e)bOqp%$k76HCCzItv?H2unZ!sJy~42p3>v zh=}%PR#y`ZEjbQmJ!pixDJHw-VE>RiTVT0x@uaBO^Tk4I`c_8I%;27mt%HL>?~o3+ z{T{WR-s}~;1j%liiK1ebm#G4@xSnCUz$ij(^NiEF0dTq}$ERPQx;j21ui8MH9ooaO zjL@urX9*$j@S&LUq{LjFqf3=m=}-hyIEPNNU$bAWHHTrXHSOs%w@PmCL%MgUHHF2{ z4dKBpbJ$dk@Hp1v9I_ znPH(SeX_{;+-spbDdb&^XJ~R*Yf*-v4|2PQDQ&3_`KHvqK|V$BqIdhLAFN7?Zy<6& zl({3SYaP7@>mI=6%N(;$nPW?S{psoHaWVETob^dUj@P_@AeYfl z(Oa~d26+*Jo_@7m(fRKtNARtEY*1ZG?pg2sZtvgPGFttsU}I~m>t;e;VEeFh7czqP zzMXnq<5zC$7k}}nD6H8w=c`7ch2;F=YKo4l%(fA@TLiacv}F+kNyY zIWbj?cLm`u zx<$jta~59oe7khbBV@DJ9&@duhXB-^NQY9lZJ`NW2T3lR)7#g!tO}x^%F6P@Y@mp{ zGrpNX{My_-)VCdTvYfmyl>iB$`+hEjJi$0%{fvrD`;OEcM6T}>G1#yu2TyWn=?#Qs zu`Oft|B{uV?=PmY14)_n*f}%>W(S*&@Q`vDwVua(cSUKiADR88MPJmYJ);B|-hrFa z0N?MNht?@@-G9okznNxqX#8YnXNTEy?cLA%{OP-$Y2Pou^WhcCo6WLjRC_PpdN7DM z&=)m?Mc|qvX%8D5Pc0t!Bo~Hs)bee(@bU4BPhyhyZXRZC=FEzJS4@UwL0Ds$AUOdi zNevUHJOY+)GgoUR{CInRKdn50YRtKDb9R}R)KMjuzPD2(D;02APdT@-vzwNP-C@8iiprl_65^i%IxCZ?d&C|O=#>!Atz@+J;`zG zbMU_Ab(Z>v#>T8w{{RM9dHa`Z%nK6RvO41n?=nVz%JNE8O4z$}`5-bmS>9nsnO(EG z_5W(_I-{COw`foX8HN!eq7l?6sE7h0Y9t0k1%}>+5m7=BkPZno1QAd`KnZ1VA{Yb< z2#$25_bw7Zib(HGn9#eFcdqZPx7J&;X5M=Kdi-T2_vYU7eP{3Q?6Z&HmdDe_u`SC) z0d9`_#akqfod?Tj!m*hy9Zsqq?qn$5@7yor2X>^w7cr*k8j!w0^2YNL=Ielo5ZI9f z^xPg)(NL*^9ymc2mAF^0OyN)yp1{Iq{_@INUFuMM_F0=&)a~21VE{xKH1N9*8K=s* zWSsS(ux>2;(e(6ni#!5Hz$vS|t&RSCdW+G!(HpO|b$8{<$0}HEB^zEr8afQ{Psqt- zow2$k2Mq9CG<9C3y&zP;=p#bVpo#>0i1|-7lWD;wO+YqP+ZTTX{a3N3>Xde6+d`^*Z)+W%{&^UWKaDdjv znpvK&GBJ}Uc1s`~uO-HYC$1)ieSKr1?3+O#DtRb0hQ`_AnhbJgTP9*_N5+*8#CEz& zwIA*}m4{uNRkrb<&Th#C34PK@hH)EZ84HS2%gECZ_gCD>sRyzxs_C$ zt*SDa7gB(D=MIh)KAhPJ-Gl(A@eem8F^Q7~0mVh~ky7H1GA$dO)|mU=(`)smjwRY! zc7wZB*^6oDJQ5c@#&@fZJ}?wsK}B9phIiRz!yqkX6D9TiE%FuPEhpKr)1AzyMRCA= zL7`eEli94@Zm#h<6>A8lnziR!of|P*Vrp9iG~Qz6|EM5AR8Jx1B@T=zYJY0zxR@m_ z)OZa^alGh;V3H*gii!0G$Mw@tsaaN<%FBnkd(>o>iVJ_gCM+cs4L|^iUWYLWuHEmn zOnl^I^C_A7>T=SFCu5Gv>Zgqpa1Ia3%~i{i^>r?|x-%r65}rKH&qz-n09()~0_h@5 z%VI9qd6k0S4YW#2n$H}%QL<;HDB79~ZC#!Wq$Ct(ANs zUAgB=c0O4RXQa{q3L6?$Vc&ZQM5kXbDY6Ria+j7>yOOmQ0>i`9#)L%1}2 zTXsz)nbqma#eX6&Hucouvdg%89G^uH|OL$FL;Or zT}yq^)%N=kPwD+w@A8iytB5i5nCk98Wl#___|NY>{_|VT)WTN3gFOXNjcUUs&yngI z-eR7f%q<|poW73r5AwH}uqqNcZ1BAD9V%0nh=8lfkbEe5oZtGw#O6VCus^G0JW08>m29 zm-UpAjm-(h%bb4DEJ7-gc3bz$n|35n*myCKr&S-rtd+03;4`4Al!q+TKb%jFmm&W7S(x5XGwZ1W7(Uk+AfPXZ?=VxY9>?O{( zV>0Zwq%#B$FhNF4|8!|s1@ZZKXGV=aYDyO~tWG=~J9NF-7nBJ)%@x~45{UaRtb_ZW z?Ck4BR`PiRofNz4uzhB%2mB_cpNoMdw7%i_x$BJx|A|5q2SH4K)sQhN4j@_D3oTmw!1YKtnD$_Sx zO^Zu#OA*2=B840$1qe^R1of)g+8}&p1te#mJc*+WbZN9+=Ka0rY~39j%?H6lL4nkv zsxW+IaA;Y|+ejL+noqEQvLTTe7}QleU>rgQnC%g;fO@9#GME>`&tDISm5sAdE|m9> zaj_?gSnPDP>mo7VWgp6N%u|acqv-Tt6dsLoNG>!Ho_9E+(_LQ=hayKr`n+svipT>( z0Lt}2H-v&C(AK1ZDj%;qoI58T%#Lcn*{it&NfN_3^QJCbSn2xO#$0g1{prx9qM0jH zneLvBw|GRytNY5u8gg`GPO@GWSJ>(Ek_3XOsd#75dIa)HltajF4TzxG(re>4P^`ng z97Cw_BOTiw_JmF!s&NI|f8Zi!HMFt0TXpFCxVYf1j3~8Q^Y@;el+PI>tsd#ez5^?e zPv@+=!wd_Sk(h8UP=}4-_|^9jk?qnia_lk_4GO%r-yY;Uel453cNu$xx*s~FWtgUg z)cN!rbnW-~2cU%*kHi}!6EnRP;ssZh<^e1T-k?%2i=f%5K;m!}Ugcp%qqrWX+pV{SPpIh^$LzfGKDhs$+&S>7GA*8(y}^av(=Ousq~uodKXAI4oSzI zhlK|toY-=6b7ef_!%IL~2*IMhRa_)$)J=m8H0_QO_v$>MrI=;#mh|a<*))$Zp!bD^ z1raWlP~pEpJ{EbhPfwAIjFPVV<~}X3YX2a`t_KVNP%wt}la2e;MyDiI{*!5kgrb3G zn=7dU`pwZ!Ghs8bZHf+?y1XYR6srWck@sulyD8b(BS-hCsN7kb7g0oUU-IzqSeu_x z3aRyUQUjngZ2jI-dwfgSx9r(JYnT7OjmUq2;5ZJ+%F1p~m*v0WJ~aH0a8OC0(YD_P w-u|NQ_&@m|f7_L}hiw)T4kKFK#0#pK>U0B>wsLI3~& literal 0 HcmV?d00001 diff --git a/tag/dotdotvote.md b/tag/dotdotvote.md new file mode 100644 index 0000000..081364e --- /dev/null +++ b/tag/dotdotvote.md @@ -0,0 +1,6 @@ +--- +layout: tag_page +title: "Tag: dotdotvote" +tag: dotdotvote +robots: noindex +---