From 42013a9bf401b24d4b362e4a8990c7094fb25832 Mon Sep 17 00:00:00 2001 From: Daniel Krupp Date: Wed, 16 May 2018 11:20:55 +0200 Subject: [PATCH] Adding static HTML output generation to the HOWTO. --- docs/images/static_html.png | Bin 0 -> 56334 bytes docs/usage.md | 44 +++++++++++++++++++++++++++++++----- 2 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 docs/images/static_html.png diff --git a/docs/images/static_html.png b/docs/images/static_html.png new file mode 100644 index 0000000000000000000000000000000000000000..9a0e49dd817098d030596071aa59f456df546af6 GIT binary patch literal 56334 zcmeFZXINA1wl*3BMNmP-h9X!K!9r1rbOlAEHxVg8X;MNDJpn;QR6wM6kPbqmOAQK& z5PAy`AV>=&)PxX82z(PFC{T)Z&joB5v1 znB6a*J-&BY1HpS@xHps&aY$~A%xah#m_Ui$4xeR zw@BclwKtTNn-G`0Y(F2^Eqvh6p_M*PvymSo z9(_?$QU=bk1Lv@LX9I#>y|O`#XZ@5ovNM$4WiQ)Tz=x0qoRb!3b3S-zWgfW8$jiXk zm# zYG+y#c{>wUZgK-IcTPUJO9~ir4fx7YX=hrp(FysIH@cS|K{fJ3+tDhH8)shDCm7|hHP&odV+`0pO zoPDdQ1=5H z?`h|@3P-IRFrB&gE^92CR8N5jjTQ#6xvGOyP%^p-f3vp0pceu%Sb4!u#n{v=nGrb; z>9Y4fDc8jma(=oofYyi%Qn52S`cM#)WnygoaP9jNLTz^nIHe(^sn!5j=ks@lEwhyl z=$+Ut60_Sm<{AZt>C)QDJ@XbJK74Q4N(ZDu%-p3xo{D(zH%phUamx3_Bc|nRu9rzd z0h8=DnVT?>3OjV~xYYI_nWakb?C*ZYf3$&j!0nY5CWwT4aVaG2b|7xtSpVW6>%g#;7vXKqM&k z`hPSV%7&I_2i^9r>Sf3KTA8g6Y>tKfZCHBTgLh><3pINn2FfFJ>ira}CUW=nz)O%QjeS_u~-;$}hZPl>>+$ zneBk~#D@s1a}M9K`+SgZ;B?HPhFg4k%RP?yezg2IFE)#D3u9^CllR2>neLOXfV{%r z6ybRVSN2oK^JvpeFAyYGU=k7#dVV+5AGj-Q&FK*}U)5EJ(fK)a7}NJLO@=8$|I~pRHDCEFsloP+zA2AZ?>b#TdjZ&n-Ru zfo@f6wRakSDb}y?=nNscGScsO_<0RvBfYqu!LJ4cluIg+BO1FC9rwQuJgpuGsN`xkj%f}TD z#W%Ga*XqAx<}%l0FMiX?8LATK)qJ$J%=C19P{L1{>Ul=)_dwU6BNVvPnyj^BeVJNw zgqh7bYP-F{k|~ggn-Gr>kpAb*wH-9fzH$9X>6nc=N_}vsbn3&-Rd2e?@TVsZ%MQ&i zBmC&qGi$RhE)IO8SYgwOG$_OMAU9BNoSpE_g<55!AY^exSrz&m-Q=NZ@CjFWpRhCL zMFvFQ@U`kREiGIg#lyd7wPX4^hA*EYb1o(HUyEV}g8cGba2i*x;}CF~fOj_?oZtl> zQj#KE?KEhfn{0AL(pU{0PWAcua?aQKeScz?!>VJwU2NF-AiJd3-Y-2QmWIZ*OP9}D z!Apwc4J=7#?-|!THTh)m+MHCIQ~ag$^r;!L&fJT9O<&IOx75oMXMZPz0{jOZLcY7a zB=!g0M=5omlg9yVl(8v>ZGZqK}}!?FoaLj>I7w7V%aGrEXm`RThcVDCfR zc{|pAxZ8R4rl>h8BG?UqxMt$#q}_hBjNpYRDn!|2nu+?Gs`$3+5%2>xcE-xG+ttfX z!T8yho2Q}sxZ7mp%~yns@vPCdjZrunDz@?vd?MCgz{c_Y>eTcs+s9UmaF!&ykJ4RD z+jmw(jy`;MO!WnDF8jQT#pMQ4x?bGz? zGr1jxYbTAM_Oot3=fxGJP&HcQRqU>OE~a>ZTZ$&BptHZ~`Za-?MFBp0)^jPSe>p=i z$N1anQ`qUR`*vb7-h$;om1+;3FpY2CWH>m2?$E$OW1p!cMr6SwCq70(Lf0+(Ct*0oEYhaCkhf(Tt) zf|yR5OX#;}%@7~<1&LR0t*%jk*p&MH9N>VAB1!?p6kcCpd!4ptdP5lZ<7PSC0i{Hz zq_xUiJtb^^1R?MNbtj*)>3ksY6(Q@7@>|jtam!FtjHBDc@*8y(x^ZE3cUJvF%xC|f zL0)^dcdY$*l&jk$QnHS!Rx*whXg`pclX5~sUsBJ?NDC2p(*WDeVJJEPv-BI@u35aK znmd|30>2wA`Jxh*$~PCwBF|I2AKVHlQNL%~?v3Z3xbWcZffO?)+JX|H%CCo7GAZB? z$jdOKkzQc>E_C|=8^+!34WkC;wy1L}EGoOBYQg({7oi};H^{mDbZSF4!4ZLf7kE$l z)02)M>dh?!DO5f^$|npfsyCXWZ)KIeXaE!l+eQ1I(8=*fj^NQUxj$F=PKgTwo|jhj zfKvPZzgPQG*|MkKZRIb8lIX!kwBLy1H?FDG$Q}=6SR(2-Q7HiQ&AT5MLDNQMm+r|Y>>*X9X@NOeE{`VCJM04AMj>n?GjI9N2aZh>97P??~qF(FwDtd z!<&xgZ7$97N1M(DG`n79NRUgq1B1Oqwz5AZbs>qWd6eg+miw6X|1ko|}{ zC}%5Kc$ZYztR#doV`aRc9QSG`^&q^8~j<>>ApJsN;o{|cHGx`-V- zkA61!`Py;@QULNe=mwkfvER`3ukpij&%o?%&9MzLqa$5fEl*?FohQf=<`x$NO11xf zUUwy(KkT|7eS$JWdkK%(9Gwm_>~I}#vXI$ueIE&BU!eCBHI|Mm^Dm={}N*jPN# zZ(12)!Lecvq{$d+pqTwCc_cqD*5f`3wfI6*+T{F2;r8_pCJL(b9#XDNEEtv4Syw>X z+)|2vU>w}IzWPPmu_zJEzfD<{*}la=M3dFjd};FG>75uWBe%t|O3iqH7C5E1yz6id zRc+J>vG##6-RW!F-RX%oDLS>eStopRuG!E{XA>?X$0)0j9emMQ8yK67ppT!3oWDG3 zsXce?VW5cP_(k^H)SxToB76@YfC-xns=Hw`?sX0Ae7zkFzNp~> zv4*ju23^U|eLboiCvxMbj4848V#V%D0faXud;Bv4Ur7Ob6)@?H_?c_93b})c_8l0= zDzm^j)wW0#VD`9k$9G@Qoar1TA=k~iIL4>O+ij}x^eUhAV|^x3{-c^$N9ll!RChsC zk~H&z=V|@wUjE|FNxe((o5bj+dFV;Pi8zie`N6LR-7{C3ReOW0Old{(IwT*=K^K8- z&*}dXH=kH_R)K!EZX+Ysd%gV8vEPnVv0D!WdHZvndc*qgVlGRP`MUjNqlVcu`UHUf z|26H7Z#DuAE=0gpyv%{1bvcRdV-9GIkT&yc&lPfxZ;aF}E(Kc|`;zbeG2fd3lvN?E zz8uK03FZ1Yvtk4AugMGE-mnKZOl$M;$0Jl%&W4Lsp$0-CMGbhtokZIZ8$1f^GWbNRp95xnl--q1V_c<-4QKqn1Y@H`Ox^gZ^3!X}~GF-Q` zVO+k-y&eOJdg*fj#g$K=?k(l(b z%34`@4U?WaB(QBJ>1@ZsG7t+zvZlRzoXNeCXX|QjU#-qE51aY0LGq}UNbaKUo{l(D zTQ*$53VuhV)7>w)Ug z5SH|eDAD<)yz28iwYZv?`d>@lS9!Rp`*)lV?|W?lfNE74RXp4N?7-8T65bz>=K?Y+R)Rp_+`fXq%ZPOt zbGXH~ro$w0pu$K_LwAl{Fo8bge(D~tI6;p}dTyZICfK-G*(m=^Zy+x$G#>eJKV$a( z0_6@1-_pZdJ9>ukz#dC-qy!5y|Ax0vbNz#>v(r@uyM?c61im%R@Zu5bR}M{H*2c72 zeosqj%PZU^r6VWGv#Icw0P}7af1pQz^W0%JX|}o*U0q-c@2l%p=M;yPkkohu(bY?< zmJt$Ii|p_x$Vf&_d*v7!V4VTp^8H(!?}&|DN5UZ*oK^}CTw+0L0E08e@^M0 zy=u+8^m=KL(x_u%ib5qKnKac8kee=rfyduTRrq@e*Gp^2Ggy+OAD+K;x^8stA8F>n zadQ=*1nGHR!Ay<>4}Ow})9F!x%&|}B#n5kGcEs0*qh0{pb@s4?=HPxvP^ZitnOyDoJL|JL2hGD*h1y1H#nd)S1zm5MDLWVFA+Q9 z{YNS-WEFFIUXVG+N%?oMSRP1N6)a?t*Lp8R;0LlZ031kodwTQ!IcxEFZq-`hB`O2vWoY>7i6-%koHl zn(j}<(XHG>6v5QGkc}0ILRjg6gS?6I$=u_wdK6%c57(z3yp*7_B#p?ALUc8u!P+@3 zetOAFkmgp+jaxXUs-!tkN6Fd=m9XM`d=mVii^BHivu&}M2XTg3h*dG+&Dl^N@89Lq z@KmPi{nE&DK8G`t-CZHp)~mau5Mu`Gy^$uiM!hNGJa=@n)qC2?vywpxiO=&H!qR$o zTRY?T^3@e3&1K}#+Xqe`S`pzid-UGLmwVE~Q3cWA$SP5JG2nWin`({2X|j!J@H!}L zto~1?d8C45ZDzCIT!wtDT7}5t{pGU~-jGqaxnXxv5uYy}0Hx5*bnz2!NrqOHOT={} z2ecxatXvq~Ysb;P8K)(9gWE42nVbR7Y zhHjTBaL7e+w=fLzfF-`zFe?k2AD`p;`ghhF2??j6zOGAYKKju#C?cq%b-O%Lv*pGi zJuP<=sA(R>pirQJL)zcK7^)Xttx^zjP0nSiuRHnDNpe2;DH!(z;`Je`mRP-H>uCjk zHXKqAA(pVF%tUxZS2*E}m#+Kc?EJ(3WKZEq53U=zJ~v{0D7v8~~KPTY>&LO_0sp=$li z%<+)#We#-C!8LPs_8y-K69;M-G>Y#wpjjo(3Iy`TcD5?}uk%6BR)KPi65mH)^0$!+ zpBhZTV^>qB)Pbu!OC|H6(39LkEz+?F#aS!bn`~rBDA!3_Ms0ztQhc$QwAXptH@K0Q z_-p)$aDz{m;#iHUJKaXF!B6WqG#+sFnvS^vJNl`Y`kI-oKx%lvvn;}#yflqNG7=V4 zYM>YoHJqLiIYHJVq2kO$J+LQUHQsGGWnkMMDM5ZDPSMxw-l_T@4Va;3RbPp9pR;9V zh8Yz>o&@@Q1rKYz*N-&IHi-=W2ue^Y(N^| z3KPRQU%k>`Y{+YTd50V_cmyF#o5-kBjYP3GO}KOYV52b=q_KW%f;5TVD%vlshXwch ze0j+3?+?h*MTXmD0HCw66&M!6AYMHEJ9`a25Wo?hr}t^Tn5G9Wb!rNqxn6`kdh*-^ zK-W}Q)upwatdp$-)SW+s?I;izEe9w7V~^Gbuoda;Kmx=*PO}7L>(8PSxagD(XET=U zRK=BwI#M>$YptZfpZkZT{O93J^Xl3T#q0Ar5P{fYh9R&DH1N?Wr z?gR+YH8ph9`lG|2rP%ARpQtg0dE()%=g(;ZwUY6`zSfVwR|L@Hcf@a5C+|DFfM)*Y zKMd07<}p?2@GJR*a_zIfezt#z_S<0cpSA%e_L&=C82?`fo&UEPtg`U^sjmSvxQ7ks z`uNvJV$Z*QKbVYB8!_1Z@8?c$191I=4J`lqS-|MZHjw>ax-bCOir$yAV#@Z98xBIu z6nA0s9*X!SojdtoCt~9GBX$<;C-nh8={>$j{|1rQHKRon`%{q7q3!>&#UE zFQ47U%dsi`$1^%HFJ?ySoRY)&#&zD$ZTjc`9$#YV_X)!XF-a@ zoom*96nusY^t3jutsri>gjAmugCL!5(!v59VyAW%d6BmgsK-}o;Nxfd0& zO5MzL+Y+c1{aBiHChUpN+RSM4=p=XR7SHsPZ;44#f&fq!KrjmuFv6GP!@R}#5hym>-6|4=s=|Q3`&OcW&;+B(r*5SYS)-Pp} zrawuV$$Iz6aaBh;FUdcWbm>zk-}Hx*G}-Q2KAEepdWnNny=|9|J^=c3=R{@rT~6)O z?j29sz1N@nEr0g4M5zMK67~!*dGyvSk~S;A1_Ke^C|K>1u+W-Iy7!GZl(;%b9oQvB zSB+h5&AY1ZioKO3(|(AtfrA!L=Nf*<+6+szFb8iiqOaDTgoU{#-9W_QsBfUytIIJg z4MrKjlqD%-0Yrw`W;dpGhm3tv9fJR!y-n13_j?2EYOG?Se zj`>cjL$5!hPZ<3j>^HDPZ~{Lgdte~1TQ7Sj$f^zXdw7pBwD<`y`ncYx4PwYZerRa( zK1Qj2nj{-!F51P(`SdPA@IO_ib8}IYAP)PIjKCyaQpuIuico#WKm`&Kszs!I zdHL(sZoWQcUjg-q7Wnme1@)fe^HV+?uQNgSI9}c0S-6-RC9>cmFH)`+#ad)D`Xo^&sOyBr-ntPy|Rn_z9;Y{^2!Zre$dmS z*-U=Kne3=;f6W+}2IDTH`@91VE8cHP;{o#Y!vL=D%F_n6*JjG?x@Cgm?+Hc7q*Bu5cUjE6b+^L#VnkJt@cVq?X0k#PK6%Q;w4 zv%0{y4KU3!(W%a#1*8d@^w>mO^?!!p4%uQ-5HB9}%117l_z1eKdmGVFngW3)YQt98 zmQ?s@q6cnuqiTU<0zn~xL?-!t-#xw|!j>ZY6QIqj=W?H;8wirpMcViJ>aq?)2BPul zF-#;QGhDNW`-k3D3GJVCVpmX!lw1rAGEIWdTW)USesA!*p4GfOtw{M*4c9B6o>8GT#13IfSk|pWIg6edEd{4H-)LI{^in5*W^mbc*ebF2~ar>VL z)<-259I}7&`SX;%rx2v&Py#6h9KdsrN6=;0rOY8!0aG)*E$hQir@}L-C}146$qFc1e6j+en=Qh2yN}Ray(eKUeluQ8 zc)`@qj4M-KWDbG8Vi#MefsE(75TS~2I_F=jVUKfQ zReqVRMPQY>y(oY}M8vyZzMV)1X*#AZMw*1>E9LfD*5`E~0qxKq(dKMW9z&B zeDlM8rw(b5^Nc=Ayd(xNP+7Ry%r}8L9pUh?quF2$-Gt;L-H~S&G9zU~uLm7(n4=W6 zrlw5Yzp-F+UFU*T>xK3m>$GgD&u+eHi;5t-fp@7u=B?>Z^O2=+c97Jew>Tv8K`5^3 zH1(#;6>*kC+~EdZVpS#p+NCydAXjqQdL=rfbM!?O ze0hYG+g?0ZP<8Pe5ok7y99fSxwh!W6ApEp_Uwg$-;iT-|XzeC#BHSY}vOwq99JH`Wc-P@xoDM`F$>DI%?iL^KAXu98% z_3A=?jYP4EB5J+80xqr9QbF@ExuproACpyoa!v&#rROeUJ#Sz;S8g|x$G6fkuI{(J zRY!rZT0U`zi^_$h53A-VC%npoNCP{+taP!c4{U0~0G41rhY^N{Kj1O-nfQ^HA)|9+ z%0Qz_z2ckZvhscJe&tchVsSj19i-@P>(gPL7242b83H%vle&(3!0;_w1c4xdF1~-p zrgT|SSD7#t)#3K*iWS#%#R8S#U|uvvStwzA8qI-&AXw2X^rZL0s0>M+Z&UN3_1bw!)hDD+TJSKHL?+u6uJJGrkNg6vPYw^G z?aI>j98?}->0LLP2o(ThgBLK>wiAelG=F;QLv7W8_4dVf)II*K*u^bNB4q!q^MwiH zDDr-*?>=+mp_x}5-Hfd{yKa#3&2>cBOWad~!_ys|vIAa!v|&Ayf10JzBv{Bihjf&o z;Xm-K5Ip{v-mKGF$z0niV?JH0bEqtnJ1U5(h90hdn|&4Jyf$n8wpOUnr{}I&fptpj zp`{~MuDOO2p}d1ib!bvC=ix%$Hj@|L6izM; zq!ymXK1CW6t4XS9-J2hYIWg=b05=d7ecnKUO>Y#3&?Q`+)>v4|y8#NYu=p;1dD6pt z^s^}ezvt%58%GZwN?2P*Bm|yimNeTYC&jugi1gdMFd;b0rIE|w#=}5sFS0VPv96FHW|iJ@}iQ%{>ITJtf5 zfV;|s9FH>9clMVcOa7Z6-t^$uM9JqFoDHst!@u z%wLx~lltq(TiNxAZRk0<)eN2b&eGsLx!Y<0DA+(CcA%>e1WG!(gFejHtRsK@17_9& zFf+<9@2U@s7t{c21~BHK?d!QXQI}YO`!?>}w{5K9s?~2u36g>U75m9Q0MuH@HhvX~ ztNY^w@Z0}gM72G;olijMEfA1I|M@YuSY=7lQee9OZEFN_bssuFCjal+9(G^&FS^OM z5#0ZW27nDM;$QUs;_}&1=Kvk#&z2cl40MMHq1Q7R zp-$2mEg}FbR|@>6t~A&EI*!INBLx`ci{-8Uqf7?cd0>HwukqiyQ`&yqAH`7f95t6J zGGi1&Mg_cWeZ~1Mn~lOx-HbWNo&8(#EWIn-SqMm$IjeM{nSZFei_4H)VGpXNfYB)4 z_l;SwSbbk$WhkrVGQn+$SiQBSo!t*$PcoB0!KPcXuYOY{ z>NKH>DJv{O?J8qHQkPL}==6Z}+p@So#2LbuUJ2&VG?^n7`Bk;3@?{8mJ>j7xGLl@F>mY|7f{gC5vwCVyHwWJZSX%K)={nz^;e;`!;-w1Vc z+Hi~NzC8a_Yv78=9(w)B)UrI>QJglrLrnSULs+1b#rOfcMTyh%%UOf(m-;ZMM#2x3 zv!+*RJJNc^ZWQWTO+lIr2W{SUv`OcBOXZ9(!s^M~JFI=xTMLEg&{v0}tns{wNoC8=B7JwjYDrOd>>U~N0byFTj;Yk%v-4;yc*8Nu~srv}z zPIolb&2EU}HxcLb*1yiRYhU_s5U;3g3EyH3f>H$wf%Q|vZRlGHZ>_HUnLKU4AuDc5mlU^npQhX4*5X7p91dG^(Z$rqmA_& zjAe7n_ag>kO{XK17f@xgQ^qOUCy53`BR=pktJLT6y50jk;c#a5nq;KmE3f^47w^Vq%+fLe#3UPC)cr=QLBCh}!(AW#W$B@Kz|4lz--S8Jhm!qwodr zwfkH^>#x;TE`#Qyi{_SS>J%DJ0}nIIU#k}-wro6pUq59F!K!Ir*sXY9F*E+D@ISR( zW2~0eSYm^+pvB(LajWA8pMLgEge&H7ABn1X055}Sl5*+ItNDDR6~pOcD{dUGb3OV= z1JBaZ1u!MqX7GcBJ!SY(?xrX)dS^>Xp)LNYLQH4$V_bbv-ePqs&?3mM_YZfCGR&%q z!{+b)O*M=22wIUZYPk-o9*h4Ng1v4xaaY4})jPN4jr-M1$iQ1A5aj9Bd+8}F2m(xT z1V3{)RSPex4*f}aYP_l(dsT}TtYE9JaV0c5f@svLJ$IAaz?xY4FnbKrC^3i1W5|m! zby`oX(ey`wmJ6V{_9Aa3P0SJJW=(e(NcG#LQrXESOPB4D)`N>J%vJukQ0_LpzSD71 zyiuW1Oh3Rk`Qc3Gq2F;`*&4!(gTR648djx)%|(vRFITqkP=Oa`kf+2Wptgbc>x4e{ z#Nr1~$+eZFwsKooVt?<2Xym&Od8rze&!TiJ<=7l z;rJe@onlw~jB_davG-__ifO%qAQWW*p%Atyg6q$svb8i239IQ&?=4t@BaqYsFkP1L zD72$i@656{H~N_c<0>L$|M(RLEg>j1LZbX^We&1ExpM!Z?dC_=kn|bK-Ou-57mA?n zN9MTB|Fg#+U-g`DVf-IzZUIC$8@5a8%Z-S`kbv6>+nj+o6`;71NT|G!4@8c%s){lm zMZu-wkP6GO?-jOXZ>`ULEUO~AEw~E+mGkB+q+3iDC(XYt5oU|(pw3o$s>Mz8d}*a zH+kn--6yHcf0uR@j<>}nW(o|1@XUFe>ZNe-4U&nSFlNckd*>qQW6GOe0DUmD=ha({ z)DCv%rV$0Re^+&@_zeEDs+$Mu==qKd$PW#6HkR}mo@c&#RRi>N7*}xqcv~lQ zweCT?Y_#6*_Ny69zvuQbm>afdc`O<;mE}14HKi~1Dyz$NyCC4=qN0<#odY|d{n;Eb z^&7ghr{djNkgz1_YMwhvX8mmKmd5jJT4hm&rWCn_qP7d#GA`n}cY9NE(Vay-YcO9D zV#djMVX6C1?q@a9@obO5l6y)a=~1f9>BO~ZdcQYUYF1nNNJSko^*~3zZ@sC9Kn0_W zYkW#Nd)4N#!V5oF-fYxY`EX`b?@n{KT-?M|B= z=8ox7-<_^!M~2IaLpIOGt(?MN*}>8M3PL>dCG)B@m4D)BCqH38V?t%)6YqKYS!WABIIAII8wOV39FJ4LZ?Fxg5k< zxO)}Cbn6!?od%IN7-kj5!zry%hNHrbBH|nPzbxUrf z2DD-aV74`jrijA-45@*_(`UQ+!^FZlTb|JW<n&l_Z#>C8ri?2rAsV)f#?6*V(+gR9*VDG{fgiTZ}K+`se-YwwU(US{>sbk zuSdVP^X~DjFWX@HcP^_0>XcDaCf4sNhe=Yt}H6=M11R{hxFI2=wXt4%>0|-(H880VKg4c>lk0VPzBw$#7b@@Q=Y8de-9KETt zUTbyxl>a>THq)N4_Du!4rBT}M%GWNC#ib|&$P$+ zff9;^{ezE(m-^;Tj&&6Jo^FmU4kZQpj1+bZokWDmt?{+r3ZIU!sHpDn>SHcOGJNf6 zZ{o1C#WN-{1|K)VY{Pus;>S-qdnhb*c_@vsm-ws6DXoXQkGVB(2%>pFT|nt1F)6UA zfAaF?n1HnHDc#a@0eX&RlF|o}jLXuXl0z|U(YnjvJzNqGw|MKB(ZxOl#b$fd)~#Ro zBR7A!^(Y!}jIA4B!&PpD67*8xq{uzWcTQ!hZAKaD=CBgWpc5YSXvP({8gMB7!%j>LODKD7IEe>-zl@S z@5#?YBkgf1Z4(@4rHpG`tW^fW`fc0r;sHE26^-rYKUeOa7?e?{&!%)8A|dBRsq0F; z>?;pNu*b%z-!)opB^6s-O`&jk^YOp2!Uh}_eC0MsVGfEvxv&`Phq!U9FVf0w4&=-U zRD~WJPiVBSCtPT|q<%iTNcTQU85H%)1y zi;oJqJzw3C9NOn-?U^h>Ax4nh9Y0D+x>US91?Bcd7}IC^SomaqCO}HTVL7f&pH#y{ zezJWs@;KdiRr1GD1)KBQgHA*Vpt{+OYKdeIr=@$2jS@!mQjii87u zoOL(#u!^pQv;A`HFfz>?SZhr{^dAiK6braMV!lMVP^DGRr1IT(iZr~qo2Qjj`vjDs zK0xDHBUWlnsYU?(-U8fH|*pXb=-a*ZkHWE4mfNe5qfv$feyS=8#6@Ovw5PdIx)iSDCX!3S1hrWVxo9~$oU zI-!^+#`Nlt_gdH2`^UzK_B9)Z?^^vgI`88?G#>Cnr}*lPtQ9QQq-a;B^DFt5 zAxIUHOrw4S`Zc}+K_;XIyITE4W$C_5t>O?%AZOkT;>9OX8kU(w=wMrKsk>Cq+y3|ju~u5qBNhMSK?_xa zPWZPW8Te3o%~d#GE~bF=EO zXuBjeAMbKF`d2)*o!%&ofNJsC%h>||X9(Gjcma2V0oH~soi@BaT@yE{1dAnFlRr@l z!^IQj`xJy@JFCMrPMMPFN=79J2d7_Kv$Skjqc*oea0$Y|bLe}DFr(AD?s=h&G1Br9 zWNO{94K=keQHhxIygg9N$g}$4nZ|c2&wr+eW&8+0f-QKlvr5rX0<|ogs~bi%hK7i8 zN`ns1M)zT_Pg-vVLASW9b5;Er`dS=ZnP=2FmIqZ4970yakgX(iyH+cP^nD{(c2W!_ z&$B>cJt@?1{dT?<8Y$@Sz|=Mz9mqztt|0=1`lvJ&R(?48b5#8zW>!H(O<)*t5UWE) z;RvFu7L?Y?ceF%i$!_XykkmP)Wib5#=g7t^Dz#v{50$y>&9N8-w268KdqrkD9h`ot zi~mJheZ1~m8XHSZ#V9LR=e?C|a%J{v-EQKpHgTgog-G5<3f66)^9`%!`0GLnTSM=i z!l)#U#im09h%kDhJscJrI|oxoE8jLPP>fEmH+zdyAo6FamYszn5Jp;SdB{GdWsjA2 zk>OCP$NP-F^sS^T(+QjTI8*Yes+mF@WDqIjJzL+m0Bnl`BC;lp1&sm%8R1yfC zVfo}lUqWy4Pg$T8%rM?(uJz)V?2<0exz^5rUP#yL)sqn?>nR@U?>g6Iv@0s%`={I~ z%#U60{Y@NrJK2!wyamR}733$}44F~=044|%Cj^!iE@I^6#$otygDiza7p?xBsK<<= z(^^)i5_7DC(6{>)Ci@VF?!o$Tc_r>!KcuH0QW(``N<=HlB1Ml;J}j?2V7u1&aQ%Ab zq&7{j;hLL5ff#YMhnB@nsm|IguFwAH@^VtKHG~1)@~3;fqpKP*37PqC78!j``Kjlb z>teB30knnywmJ2xg3dzoJA9+_W?|UnP#9zRX7!ZJS@;Q}l;-t;XmV!VcE0!9&iA$U zEJ-4>T4;(d>mWq7hYigcCdKmB`ZnI7m+c}wKy{t3_}Pos(z#LO#Jy=#wZms#v2nU0 zE<6>D3p(JokhpKWsYD$I{xwVT7vcXHGPtQQ%Of@I7TtO9ZC>(Iiyy)jx9CQdHbMv4 zLC$vWB6rQA*N7J0hY5w``{loCBoB}9B9B9SY;wWuQFAX{=4ZM`W;I7Yg=^lp(pICb z!9SEpcFnly!y{9PjO4$ESq()RzpSgkNcMWTrghk?nf@{`y&Yfd-yYEYuFm0V#JC)>MX26Ga@bs`le=>2h%h%Jn#W;_w+VE=Sj_mYKKs@8=< z7`iUZmR!}<%C*4 z*AI7fOnJm3!SBJ6qYDQdGOI@`biv767{4lv{xu095k*DmK+QB9% zmFhoitN5u%7o0&q!~(L{8fOK$(?%HLV0Zi2Ml)`h53db{85_wDH^XpNM)SS;PQHAx zEgjYht7Z5IzuHQ;eJ+{5iyF7UxHo?)&-0$ZX26vJ&su&*G|u8KVPSkpCVlHJ);F=hd4ux}W&VF|7QeQ|Xk64pBD-JKavp z!d6tRxaa#5D3P6$7Aaj(*FAw{OoU%G!#`kTF9hF%&$snE?OA%57c+#svWk%JMO76& z9-aENvS=}^OMFi`DSZ72&VXvvRNy(U*6+w<$0CO220tN2*47;ae5MV5SzTdjPECH0 z^N2BLbcg|K7~H(GhU=%KSQAgNDfFQ#h4=&mc(A-F!y?o1X}WqTR;nNycgAT}smrNC z-7HC9k?7%cGI>qwoAS_E6tZeTpcGvT(xmElv6Drq_zGRhPpG}muTd@2-Lf7y~v+Zqb zukrJsr$hP4e1#de!5aKH!>o9#vjiW7!A`T9`!d;JVBx0K?`O*P$hT4XTv5f|5M8;2 zP0E@M&Lc54(O(PaF&ZU43ldhe3BBR?p(f&b0gLs*z6W7NIAz$0-k14LevoT0)HMPb;V5aiOk`Kn?h@GVHGG9{3k<_}h zJNbHy{9fu>&)8VRli69Cm)O$y!8LD_oiV5nkb+kaxbiXo_n9ubv@7h z+}DfexP8-cbSQ$0#rm($|MUI+2C1K7U%vJ!K(*XQTvje;wtSkvArqX$6F4@4sUv0l z*X3mx=bngjWJ&!~*U7|kE4IzPEXH!yZPtaC0sY5dNQ?5!PK;`g;1@bd*oqyNf{_z5 z$yg3!Vf>sv8~dnVvckNN5$l-klg)E#7QpaJ@XT6x9Zr7Kg0eLp>4ce<3k=)QA~v$6 zU*namG>hw}Bb79F$q2L4tv%2PZrr|O3wEl_pRuFuXBQjV!_zGo%-gV;#CVPKv3qZ% zc^GKA3wB&2eq4A2HSO`{4|@~t1q_u59O;!e4GMdX_${r!P!r)?uL8~H)(ogs8W!wr zOIc}w<&rRbjIgl!WuT>89qt?&2I*buiZ_nbwj{fBPZ)u%XV1~g4#gJZl_og7!4-U1 zN{E0a1=VNMcH%eZ#bj+heGQ`vNeM{=R?fa;HG8L-y<|6b=}wfJ{aL>#`_>ZsS=71q zHnljtSS5YYrP=_vRJ$%e>tt20>p1t{QocgZ^;8zo#6 z!!&3SH#=7adw1uJ&t<(+(;i;b(x!|nzk{gs=3Y=@oon0va<_KX!0W;)!jGPyM*>*vWM>Wz1{VttI;6#nP z5#GK+MKUorQswH-+6FoFvm*T(i*aa(Q@&GC6ZO$Jf05QzQc~koM89eqpq9%ZRW@Wo z%{Gk;*}xP%(MJM5SN#60+jTIz>B*`Ll}(L=A&q|`eC`jff`-~RmCl~Y814$eU!C$c z`s2=i`|=W!Z+D_^op4HKn2mkqY7G*+6Q~ieT$gNOvWHMX%n~w6=I4ycS)VVSH`dEvM zI)*$$5{?TGS8N82ToFYj)~eEixsyefJ7bpjdpdYSXs{5VFEdqrHCr+g03axU7N*zV zLtS#xpTJob)LwwHDqL3K;zieJP|u{zwMiShAw#;&lV7yCJ7YN3fUTxBIj3_DSXF{R zT2ZU{o{b~*mi^Su^R2Ud;3=M(1Bwm)ArbOFNhyEONf79tszWD%JvRhz>OWS2E^})B z|7TEm|JT>no)f&aY0=CF9_@{~s=N!JM$HE;y9S5{w5QgjW z!F0Bk`|Z(>gx4z-e*CYzyx|Et961c83K2Rh%H7->gW`y~{A!925eV&$lP2%|$`MsB zFaT-qdq5f5=azUQ3U`GzAlt*^N`_LBk2waW6)#7Jz+vjsGB86A|E~9*T)|CDL&e}l z4$y>grO&BIO!BJR83SOOGyzXyC%L347{?fB8Nj#DVU2u*tW8f4JU13JS?uB7xyrfOy?d?#8(}x4S2}_2 zg9Q=qhHw-6@cTnOMJ>#&b60o z%v9;v?$oxxkUlw(6}+t_-KXb_^N^2rdV#&$A#nWu_nB!Ju|7r2<9D)vZxXY$Va!=y zR+jMc$gt^xGd)5%U3@-xSD%m9X`7}o=QQaU4$9M`CbmCNZb@-?In?(Z zb^-RaT70hafJoJ}zppLqz<)+p$~Arlob3r| z&7jT?D)+Xd#EzF~%UXYH&=fy|^)35K++RN5x?nHyu7W^H7`!jq*DgPzzwY)Kx`> zZ=hbW23LKV>Q2M7G#GM;Yi9NaESa>A8s95xGLQsEbEi`8$cX8D-fNI+ucSXOs4G)R z57dj=|E=Wp?B@==Or)n74lxS6#-i2N$oDalX+m|uATx>ZT>dQb!g_zLELW}Y9w9qA z@NLMt_3DM(Q1EcOHK9FbRnT&Ifm`aAyh6Z6AJtM&faOxFRR zps(lr@}i2;doyXY)A*}X^EHPKCS7!*{VKL&eCo;V>N)kexw$ffgU7}$t(Edf3%YkD z{syby{=P1pk6I3E9lpTcFu8l(o!aXs>jclVJ{y%;)Hy{NN>9EUM{$>pTFA? zZ&WxXUP!VuB^zg^*~}(l33@0}iZ$Qm(jBkg9KGyX9sy@B@UgjCoYGQBVO;h!e>K50 z?t(5abW#6kPI)?k!rw`|T%f#W`pg;Qx#ueTy0v(&T7^nIZ5??Q>e8|%!G79lY+ggv zY2`CT7ebPw=9GuW^vp3f-D9!PnoK1+6|KOFRe2jyASc(APSnM(qvIOc< z#$^N9K5tUS*Q91B=tu!Q)-I4oaao%qnx(gS+&8|qR*K`kRc=@F`%NdNe9+YgTmb%g zz6`$SROWJ3`cUHa^J(apiKOT$lXTx?8}t(n`_zVCN1ijIbBzSN%;gfci6hJ&g*!y% zuF1Pdnj@|06@0zMt5$z2OtpaD=ALpeCE~rQNk7xKMZp=EGOy4xLs_D|de~8Az3n+I z_@_NEB}ADMbv2WnA~5Uaojsc5eZ0+W_N;?9YfQNUl09bE?Ggpn{vz1Syd#}#Z0}s1 z_f*^NQ!mk88Qs=VG89HAznqvi?A+GIF@cY}>SvL(DW!0a*~t!E3#J#ylHRc@#HvrR zEh^EJgkRHe+v5%LS!R^#+C#!CuJBRF?C9+Sl|1?5abmDEddNg6d#?Oj(B>FLpG?dP ztoP#}f6-|i)9~ADjSoTH&45v<;cTagjY^OG>ZYF%SsrARw8Q?UfUe~b2u8PXoS`kw zw$`&_#kERiDm-Ufd=cKsxB?F`M)t7_30Ilt99yfQcn>qfD>!Szo9H%Sn&8AWe4hGg zS*Z`z9^|toNE^REg9ED`%E3C9*qKcFqd59Lc0hwB*60%Fk2Q ziddyyEtb&B&a{(JO|66HR$5OL-gS_K#|;{C>KG&&e#k=5PF5c~2d|QaHsPzywsCap z`g*g=HA#-~w1i)K*cx_9(k6A0$6Hip@!b=)uGaWcZ#3zfZVJPL-y#pT*55MsNpy*n zn;>O<^!+kxu>2wpr*Pu1n2yUGrg&2WAd;TvKQv7qQA()z8^!bjnL@3^)f@i=F`Ms{ zJ{>Qg*wx~|pIEC?Rgedjc7nk1xo-U9&s%3-fk&G4^pvD~FI!gno^t%^d$cFk;g?+$ zOVOt;{knOtRB!X_*Ra7lZh{j+8}d5AC+aOHVi-}RVw8d+9IC@fFyrL}BX{N5x=xySfd0>k($NOFwF)JE8<7NTN=j37;ap!F@rSCAvJ=%YT!^ z6@K!z55yQ$VlJa|TyCUI!C!Gb54yc)v)+taFT`kLW*!G^1KtW+v1QJ*XoP$WHBcX6 z5$)zWR64a(7Nz?jSJ78Bw`rK;@M%X|54l!Y9y%EHo0I+7PWanV{s)6Rzhow+7Uvz< zC+kV%!5z29RzUIA?4vOG)I3OM*`O=d2&-p)eOf^P~1uj zwENstp+yC~3D3MO7zC|YZu~-UNJt+2um(5TFx@mZyVu*1vOM?bF<(?2hWbVgQ(N!- zwMW}Gb@1*M(=xsAxDBp>7Y(C;MVB%|DM{sUN{c`YkeOKfV(UOPxDdNS)L(#QE?U)t zcQDHaENtw8g)qOY)hP?s>Ll*ZU^r*_-mu@|3xpU}Ypmu@b^wQS-S?&GZ}T0Hs;V;W z#u+!iy}2a!Zh;&jtS80iHo^NRtGcro)LHKX`Mkl>!tn^bzUM0zRurQ`6nOr-%03w*}RkCP&CnIHuSpt?A6RInM5f%~U>T*ZSQ?N*2Y=HvLAUa)Lflkr)eD9W5q%%3oa= z!XL~nAE<6z*+CAN2Z)~;T6-SN_W9~% z))AdvFKhTj;pBU>r|%=p1Pi7MKmhukWf*H8# zk4H?;1B7z??}U;bb~iLX`~G%aqLfBg?#V0uj>dbwVnsz7Kzo`Ah}JNpP`8Xa7}isJ z^$2~naR~Zuz-hh;_uSL_biO})RA(rNcAQ@oz;o?KJLE9*)9_lu1$s-?ZB~?k({G^E z#as72a|$)6FG*9ptPr(2BBfDkqL$7fSBH)V6HF?W2dv+ve}?bmH@lb7f3~0L51B{1 z#c1cg1rD5|BXHo@1Xy5g3cr9Lsd?VLhshaK#*8f3rZVR@xiCns-_-=IV%oV`|nLda%JDt|8q_ByQwi#OmcT|vqDh&En<$|pV zQ_Nwlon*aW*rzEMND>Y+NKZA1^cRK>)=Vyw6{Uzc%iw-NQFj_MpVyTM#`@Uyk(D$p z2j7%7VTn)=i=_;xnXH9in!}vyjz;)M&%SJ)7ygcC@_8! zwQgSod!Ba4b{nf*rez-3kvt;Ms;GkNo!rVQ2W$PxKHQs^4ZSJnJd)vKS}t4IJ~p9hrdU!+HenLgXp7nFx;H~Q^oUFKUz{! z>P~gU9i}UHQ|hz2cuieHI|kX=-dSy%zbEr$%AQkT{t=>6XC3h7tyD8ydyKdi(YD(+B1>qop(q$KsX0sdSpU zc$GLuYZvt;%-iPBjw*ImxQq?CC8)PJ=h&085lG@_=H^?QQuHEly=;Zf+z{06!d$oG zYEK0o3|k{GQ5~%kQNEI@t-C@iRae>sCTAR*p=u&ue&P`OOPu-FCuh4mal=}})98uC z)~SQYdH-ig44pv3*MnOun4j2c@IAq*<|L9l=>|IE*yX`1LQ|%%Jug$}(9QJKt42)G zZeMfdRSZyOWNP3P*W!%)<(tN|QJ10uY@vp6ur#Bpg6>mZfu@;*-G8wgYp;3 zBoF7dxMMf2_q4Mt4#9O~EQlB*V~EqoV-p0yOLUQE zo_$>!*#<86wHk`N!k(VTkUV3aB#-8I`HdyDu@^8hO`O2)Fj^iwz58sD_){3AVeY6Z ziY&#fAl|Ar#GZ}K)}l_qlM}58Z}SIY527ErRFNfvLkWQ>a2jD;Gjti=5ypuzwW3n0 zjeznYz#}b@Fxz4}1PKi$|ZC_qW7*lL3=iC1u9WR95KZn7?Y76QvWuI zXJq7FHgYg-@z(FFkxdeO@y>Ft(wU)z?;*55x`+xB69(CMhcR85lBZqH4iPxAyl3qhebVf%hpOuu9#nt7nfW^x;~Mv`G^m6GWAY ztCh4v=lNva^Gk50GmZ8?>P`R1`T^E{_TPu;tV*u`Y1WUZP3b?i0{_oEK#%xe+Jmmk z{iPKM)W72|?LybxRx0z&R?B_=Mo&SYe%T*|zJE@?rmX^KpauB<#5ac9w=ytzT-+az z&2L=&Yvr%iQBNP5RZ~;DA6rdx8E_5aT5~6dMT)6Ack)a2xKR3GHN>IzGMx8dX3kS7 zkc(b^6-GJsI$B04l1J)fK9vDGr9hnmVvP?xNsuy{ngM6dJ}8%34zYp3nQ=3}*`=R@ z^)L^p4a|Z-`dV%xX7`a$CU!eo` zh!Lf;#u7H-uM6rNo+=h}g6^p$^7o!_KORlUX69v$~Mzi}D_TRZEe#cw9ODTq^ zFa9d!x~YleN~+$)OtIq~D?jnwav%~{a|7yvSm%3I`qe{|fxf7u_dmDR#%;&}*KjG_ zZPXcxneX^2qI5fD?2i4mGYf(SwQ9AHGB^e(<(;F5nz>uUdY6OqR3+4yVJnc(+O_qC zyZ($OjenrYTi!Rr{s5B~exfvTlo)z0qL;hQ;3gG17V1Ag`|-eLMf^ z;~1!8+T!f5%io&UJckYy1i>VjVK;e4nE7AaU&$!-b3TT7Lyk&LPCxH!^YbAJ7`j!|}okLH7q0^e{^R+=NTX=RFURgNe z%UuL<&vYqK!c=uvq;))-N5Az3p*tl4H2^F0LtHhxM3YL@mmXZ0>|Fo&!icj8^(_ji zE=fuV6Ewl3>K%dHd1|M6fX~DEB$@gpCVC}zrm~~7FeiEQ$QT|suy~zU^n*(_{*_A} z4!FO^I9k&njkSD(BHnYVpiumd{6q}qoq8~QCrJLu?vs0Y_fkms+5 z9Pvt;16dkZ6?3X#>@&6pX&0p*0B8S`^G(R(yFj!!Wo#%_PqbGcYGb$7J4~cKQHB4`LsT@AKUYgE~EPujD zhSHfHbR0^eItldKPn2fQk477(cx-nIA+pX#!ki-M%k8?eV0F5esHHc$V7E zS(AFV%%jJ|vH^CKoEcAUU%81+U z^T|57ho%*W##JR^GmP-3LQH1LN_b;hQUYg{L$_Xxl*p@N1h-af!kB27G3H;;NDo$S zcX##cI`Arv6ax|V$0k$ycaLIo2-PKX(^ZOlTNmBuWt)g02DyZ8J@m^+eMNrof=f*A zjRS{$sHyzcyN=mQ2I=|pV7Pa=;Md$HO3U0`z;@NOzDWDfEe;RvK(sOXvyHRq+8K`m zZ~%$^9Gu~7o`&HW@Lj4D+)*!F`39B0@%X8TH+lc!W&ic^Td)jUBdHtM?sbE zSjcXYSsHb}MWwMVe0HKpd@qsX*@bU75kF%CcVIJ)yQu1>M=Zk(P3NV^hBo{`LT~o$ zXuQk%e4ON@vlTaUx@Or<$&_8n;T!uJXc4UY`XoS-qLVsp6g+Z^I=Mo?D-fPAmsc#V zXe!hn6q^_5e9B&bY*)TCsb%SS>TxJwV?Mk1Pc~-nZ$E6zUX`MYXGK2d$jMIXgv$6h z%z5Q6JW_TyF&lz^X^chWMe*tqbGPX0>QThR*#E)N$VT$cs(+e|5@(PJR+N@B`6 zpK@H=vu0-*8fb)w0@|4fYfmf%`c}_0`1CQTvOKwO%O$w2n=%;5EW2TUPTQC=*!wac zb|HPgW0TNdnnL{~sr}qY!;$zArFxrAKN8n9e$Ct)=X@>Kj5t#=?!teK;|&(!<`S4z zp{70@3j`n%Vj@r;74Y*IpK5`>Qm8a!Z}8Re#9COe^-69#uL(~fJiqA8*1fJQPS+!{ z+g%u=?qBA1?l7cWfb543gRVF9`@S22bD4|dQEmb)S5?oZgyV>uE~4!%0_)lKE^%pR zvjWI)gv{`KpbNhQJEl>P7kJZ_5}PS4&?tbAAQhGPZv!IZvxoDtX%`QqOr$e#a3CxgJ+K;XkUO+h~TMJsN;Z6;-+eP_I6+Z)OCeT^(1qhtd96%~4 zgu0sv`0MTM>+UQ((J!ue-(~dWx$>g*okof4$EA6$DCGk;#B{dG+2-T``&jrVpbMS( zo9}N@sj*d(xVGsJ{8*yegOvchj4rkpTKV#l!h%F9tE!c-t|Ejs`0kb3oK6xs)(V)h z8G2US`3>ULS%eI&XQr-lfmO5gQ$?7we1-Nj$Io!?^N_(+04(2*9hwx6M9rq8VtU<= zVtl-hKFY%_W%(~GkCpG&s2Xx0#|MlZo3^;)-q7EHX!r5oQ@`MOiu$c9vodP>>1m44 zqy{=%#~Q+2fWJw21k2*yqhK=SiIL8#dQR(SgXZayAUPEgcHDd(?EK(6t@0iKMCPW{ z_g7+d60VGThpOFvJU#_A3ZfYLH0{A0*-OKf)+%_)Ok7H9yAayJs~)y0Rh@aAN=KZpZJ}W_wz58 zUxhAzGO+t>KBIIXT>6yuRK9B z7E&74-|16A`@tlpcuBsG1tmBKP&f)G1suJX@|^lng0i0lP)4H?lKQ`-j6g3!+p8^OQy`*@!yZ;idXJ+xliS*?2W~g+d*eEkf z#>|k;_PgfHXLGjclUtg|$L`J?ZeuUv)M7*U0fH0GnT1cI=Inf^F0KE>8Q=VS&iLj# zXUzQ08Dp+6f@z;t#nRC0^Zr0Um5!vbb=~+E>%M7MxR`*2f1%U>Z***uv zBUzS%E04#FWH}#)=586OFXBM;E5Ncp+s_@Og1f-f+Hfc3-m&7$_p=Yc)xhwv*yiVJ zb$rtn$Id&EUb@}CU=f_Ke@*IVX5glg_6=$tt9UUpAg8ugV5M;>pgAAn%_mG_^w2{T zdhV;=%-JUGeuuXFYF8==sz-c&pR_xC{suS3X{F;AoV!#0_Bzc4ZStev&bZ~?Q>Gv8lF8*%0OAG;5~v{$(HBJnQ~~=qy4xOV4rL;CL?_Ci}A(sd~rG1wVU@r`BQVFk>D5u>DG zD4XnGQURSj-of)YQd>yqwqU@E{E z47dbSuO_ZIY@@$inY^wu<5k?jWYB|dGd`uaS-|u3EPZCNpFj1rp7d1+{0y4~Ph%DH9W(XGHf*#R+6!%hY!6aB=;>uYoR#nrJcxY>^yqn071cX} z;$!f|1v*!?K=P8nje?$y!D?N^_8l8~%r%duZvjx^=|50n@js))J;Yo%(H6N)R^r?y z2Cd7wc;8sE`U@JFBz}zt^|;IT|F(O~9qn~!(k90mOm5V|ZRcf*Sfazp25i|gp68zH zn%xi>vhRHokLV-mqEw;6>Bm6>175FT-N56K&U(nVr9^c>_*1g-u)929q(!07f7D=r63R}1sMHqh9mLwvM&TW}1 zc}O~HDOqk|10KHZTQkfCZf`N!o?V#)w{GSS_3nK(uMH&<&Yp?40|OV>__+ji9kmZe z=h<5PKweN<3u$aUsPbMwYIN_Ym7QsHUD;@|f^pB{mL3x)_qE8cVON^A>-PnXdRXYj zJ_?~%WQk5h&9=lbjow106&_EY>)vo|gSmnUgwB(s^(Gw8B8QwEE$zo(W5(yN2w1^4 z&oR1!<3^Ec{Lc+v+)-DWJh>f8`^(`c0;c#2w&vEF zbKG3s;3zYn<8-RfJtCpeq>xzT; z{)k=HS0Nc!9`Yn*Eb=ThX7ggUh0k%V9Kog%5&bJmX+JpP?*K>K1#m=9zRHBgpc~NO z_2KUfk)qJL*=_D~Ls&zacLCCL1!6?-gH%l+7LHPmPL!`G7Y`LkF-XA#HY?iIjx+dn z=2G>NWR_<}DXwaXsdA`WYc8UqL;Lefw2X~Q3VW8Ilo5Zt%2&}o{h5Rq$~7TUt9QH! zbwjwpu`)CH@kX>#u4hZgo?GWbX2i+j6($e~>@iIVVIK|7=2Zngkad@4`FD6i>_NBbvQPQbDUuz^I$C@FwsHAQ~*J@|^T zJ;At0`3xaf#q#I3PzjQf;I82sMyj+5Z*Ss+msRm7zPBiaw2{a4vBbsEu9#TQvT77d z5$DW|_h7nVUC|_f92$pgYfDn%S|O^7a=qCB-ViqQF#{{OL@evVJ7IK{U1KmtUC*7> zNIiI`9b~G+d|Eyy_<~%OqH1rj6rrKm%iFk|boGStu%bP1(M8QJ00D@+(a#^J2`{@o zlnz0~Ye#E3vO7mV*Kij3j`IWhiWcxt1`kw!L-e8l&3Jj*jZrd^jqlI?7#?j&1~RF6 zcE8lG*|Fp2)TMXe^J_r$PTv6K&%nNQvpy}mA?s_$HVNx-PDKmG^!clr-Q@=yQwzxR#*JOP~t z>dZzXs?Uq?>{ii)pnowV9M8wEtewgEPjkqAsGR?HPWT_M?%$3v{~vw;tP2DwV5fbr z-uR<;ek(9q5TM8+2&*YqAIuwhQ}eEv!YHC}Nz}^wiC34VT>_Wd?GTqCutX^*-L~l0 zGcq#jHQ9nvaCJT(AcsXpxg>JN-^n2Z$TWO*rVC~Rxml}DqaRywkUop5rD6l+_k2zL zE79)YO&^OIPNW;?J6{t9k@TWxA&=%M5^dBRk`4C*Vy?)nY-TBtiGxhTbZAm8)S7Bb z7v}iRk?XLtjV3?`+ES=vtX<#0+-S42Ns4&Tw_XeVs9*<+(Ogs!eCJGCmWUqmZH6o2 zv}XSwNR2o+hOf?JV7g%ViNdn2Co}=2aX4OK-{{8=(drNT05tw5v$6h^LVcA2P+50% zR=)Y&JE0(Xbf5ScONE^7_ZcOE{XlE5b>BeS*ycToqG4I3P8TQAWODZphx$y7`vlHr zx+41P-uAIq%h$Br0eE<)JAV}(cEp|IIFN#1l&rLm&lx0jiIpInrK^uAD=|{hB1# zMuZU6!n*gBd+O=LiRqBv*~wy_u5(q6&E?{$j!x@;SbTr?{&@N~&U=l74wF5qzVAKQ zkyeOzuc1MmT0lzeQu4ZYEigKpIR3l9@N(pxq3Q9R*O_y_KSluq+lw$oy@7*Eo-8h= zI$vza!~lM0zGQ3>JW`+$+h8>c*Han#2(nz*2&VTDI>V5&UblP3x6+bhoF&4%CV%kK z7Z~chnNzigSG!wQ24&Q$gcZcO zHm1nygvX`79B>AyY&br>?l;6v72EXcC+Ja8hJ5%w$Wk{wOY9Qb-$v?YO=Yj*83&+N z3p((3s2DK(6wp@J-8l;kgSHGS(vDdCiJumuu9uXa`Yl7<*o9GV9V|6o?y#N5U0|rye z{A7yTxUKg1+?2KC&Pkgao8LcV>0x%%PeN?2Dg*Dluw_;01rx>n-(K}SkvaDx9zM+n zs3Lf#t=jtJD~XYyd*LDc-Ox91S5!#NVD+r)eKqABFYjx!s>``1)d={t9;s`Xv=}V% zf{;L2oO}U89OkG)gQG10N1=b<*9Wj;kpfo*-h%?$`8kyoOO+{^h z`5n$#+5ye)j?hcIy$nM02#=2;2E!tJD-^->lJZWK@h>q1gd#k7FKkC^D_I)=1`Z^5 zqu6ZvvK3kmie$I#!~cOAulx(tXe1{!GHKAQk=1DfPZyL9#gtnB-e5X;j{xpSdV9zi z)8j)TA#K$NVX%V9d1SYb4boe_%Bh)snHG4yhbeWHT2sY%@5-;BQNN^I;N}|@rFiDx zqV^Mdp5cpVw^we|WP3oQ7`H9pJR>K&tHpH2DNZrl>#d`Uev!_Vvh8np7`)`G85vSH2@cFY^P-#7NPX4ITY>SL7U-9GYC#8?2gey4w!7KjgU6x? zo7jSXK#kw$4$67g&(r?3^%(ZQZ$0`7sur*XIdxAk|JQo_e_=g-?VX_3R!y#ug?0%` zr_z8As;%`UVk}?4hRT3{cxzrP)iww^tNGdo>wbS5ygnoBD!KRl&n1$FGMAOt9?->T zZ9JAbeN(qk_wi8@t_ozS<~fC^!|@PSUGyivkcHy#wWfWamtJxry85QHLSQYy*37tN zGoj^r`W9fs^7o3+e4t*_mK~&M7-gY-tYoM%4)QTFO zCM=&-S!<5p&fY9^s8*GeACUQ2D~t>f$yZhIc;1;KKQqi{#p)ntx_MFr2mjjNDRUD< zg{@#Z_Iw;J97HZJDr0=P+W8X7**2j z+16a;;~xe|GKHy?3F1j4W~ZKW;Wa#_?Q02^S(&Gp74yJ~-4=Y6+}=mvxU@hl?m%*J z`TRV?fLlOW>D00{tBkCYFXASd_GCRG>1Sxjj5aEp(!?O_R)P&#C$MD{q?vOUD^84G zs?0Sy>l%|?weXS@gl;LN*rH3yt4c51pRPVps6;lP*mTpTrgHNzjYDpnAVtIU%Qdjz zd4kNI88C1M;q`u@F*@qfM}3Z*&W%rU3hkn4ubC|i3*@~XcA8bx4M#cK>Lps^3^;4O zf-)1X`H(~wogdS)=dkIZR+gmgaltP=`QLNe93ZDXU?7*c;m#Fd0`4iyy%+c`-oW}p zRP3s$m?OL7nEGQrku8pRJxS={4;b%+u<%l#XQ7DA@UVN z+6XcLzn16-Hm{fnQ8jSNj?u0J6xN?aHgi~Py!-S4s(ava%FeF#j7$qK+O%oE&*eaG z`M7}QAXTvcIbM*+TR1QMry!@Sp}Y#uFTxOed&0ti zuGCZjW4T921iV$s4{sG#m)KiHJ=-_m`C6d+&Il(blZGUZorZqCFufr<$XWFZYU)+19+0t~Ro9ytGSXEpHr) zY+qrm)zO+fhJnanW(i_<8N6*U$cQOziE z$jvYy>HGzhcO^+HczrhEs~6hsfIVJ|oM4Sq)a54siB1Nt(#e3o&`HvNK_~nF1)Zd< z(#aeSthHe#Fn-1hLPV;;OW_Trl$9jk?(Oj>u!Y`Mo~t*J z{9(DRTnyj{VaI7TLaivN21YM7+tn9Dn|e?c*K^~~$|D>^KqRO@Z`lnwiEq4&D8=6v22VU4TjH?SL?TdwLq-ZGe+nK{LH*AA)x%x?pbA!F zgC#GZQIBC@2-Sa@i&tK&wO8Q6w?bzyZ1B1X@ZR)(3x&22lYwhiQfF#Uh)iUlaFz3` z$KF$EZ&p|H$3q{asMz#cWQY_-b~L(5qnrUAHcymmoI4*`TUeLdP8;QHIPTusrHy67 zY=vU2HylI7P)4yw5_$P6xjqwa-k;YwG(c^5OyxfEAt930F?4odj(;4FyuxvhRVlEY&DY5)y{*tWywC!kg ze#N-KcDimlem z>1Vp67x%xrWJK5%vCh5}xMO!Ig|w@TtPT|Hc3K@M$P*0|ynFw`rN8B^EABl&443~m zJ;z-xfAJg-?MOHdpPixZ1MX_bz~DTno!ql07q(;*f?+A&^NSYVW8ItGzp+l?zF2Da z`LqbzXgU#zsF^nLxd@GHw)VYoSGX;{Q@<$D=XhHwKk>`X+-2ioodkAAhmY~4=h!Et zEB~ZAdj4nCQF^yox1VvpQH}yHk8-tJy#|xq)etSXD4dX2{Ilv<#W&0%{-1Om1$-?P zYKvc9NnYTRqm-R-MyAqpo2iB>U@{7OX^C|xLBn_^d)eR7YM9O(!qLfFNKpRUJU2A5 z&dJZbT^<5Y-%D^P%0|{5#p2^8^lg~)FSYI(+7`?!#zfv27((2}6e{;HOHPCsR4iG} zw$&EsDLQr_%$HPE+lB+0$@(~Q7~Mb(Juo`!IZ+m9kiz5iu}?KNh;n~c`pYXF0T5Ic zv0!m?Y7ek_3i^q#)(tmfb$N9*`d^$uVuD;iCpc1@niNYt+LehOx>K+y9rpNf#r?#H z$2Gyv80(9~X8|qBOnZxt!PbY5fzbjYW3U4VU|#`Sj9fB@E1}PofOB=4RP0w1*flc^ zkpQ^d_1%>JQ`og)s933k46v1%F}5N?Z_igCWxM;U_qO`?nOQ1#Q-PtYyc=f>a=s5c z3|cGhlQpleSvMZua%SkoUqMshvEhQYw>?AUO5Fwnd*H*AFGj93nS4{Pt*LjjU3|Ee$)a2|nC1wRTVA3T2S z2IR%QXo>91GmTavl@j=(z4{&>7flBZ;`~eM_&@UiDMo+kzyy)Q|AJuu5t!=FPY>*0 zMWKIUvj5+6+W+bi>yM1HNf4@N8lLDY9KH&jMR8-AlzR2kr(YXrE>lha#&o1dqzg`Q z7b{|GfD(d>Mn1`(nx4j*tk!5gRZ;KIQm-K>y*$$s_ur2tmD6C|(wh zmi0J{v}T2_`5OWM%)V(p@<&PLg^^d1BSVtu#`5`rk|#UFHSd0-_1-(A z5MIJ(e2fF9a6Sfb8IJ_oz4&!y8@~djf52|VY{r_&?lPhZDD>gcGzr-2RmO-iQ`Lz_DX72lZo>LNfqf zxkNxM8Ej!_YrQ_~%qr=WFx|i2=O#ZEmUfIv9l5ktv1C?@Wmvt${dxyF#b^X1z%-Er z_<_2T*_Ghi1SIf33%bEh{>Ce2KARZc2OhsomKf1_J`?0zRrT|0U=$)?utINkyZBzr z4PNU;RSnyATSNDxW@y}{_1Xq^>z(Da4Jjmdm$*PTtt~ z=`rHf1e-*aFk6epk?IN)(3{JUb{^*#()9z%2$0I2IFNSo^$?(c;%~e%#g#et69`57 z7)PM%Gl!g!z&xn1@X$9jDIcQ*FSeAnX0Uwv&e@f|xTxk?A!4GvijZ#!N zCXBndR!NTcBX&N<&@KuE&FmDpgcI3bDIm+RW7$9TkA=qwGdkypsy~fPt}&7<5;ydv zJ`5zrsS$#P`}SO2XCWzHe;(XA4Jegp+Y;$tmfTanOvTZp=2!bJjl+AkaEVtS-V=*r z;eOYDyhNX@%o`x2X`va&?H3?v?P?I-1F0-Z6A{WjC#Bh6ftu97RD%fl<@69j$wN?Q z1dzhc)(wzUsMqZd{5tuPv3{*i9AHYnLjl*3o+w$R08H!aSm$UC+PmIotm1~!Lw^CUJWJ`g zlfHtNFr&*C`4UKDlSv6vtI}hE8j;asaI*@l2JD%h7I%K(Qzvt_EPRzp1`n;Qrm?9a z#pRvT!K-ngfIV-}i$KEHT@DThl<-y{hb^VcChwoM4o^N-CR8>mgW9BV@Po3-tW z70sW5Ns|kNHv_zaCktOYo>w{I#LYdH-4&~B4EIxqK4-L4Ol|%vktE!$t>wfmLFOuu zeS%t^>i7a7aV(SP8ulTVG8kC1L;qm1#vGC2#gfI8G!W>z-)>MmG#aQnGM5D1g;8F920XwZA z_Q`9?^Sfa$!&obap)oF3*@qdN;LYf_RYh2I``ncZF;L7Skv;3Swf@P28}jBZudb-n zAGwbHc20Wvkj~e2M^hx=Wfsyei`S$+-mH41_f+Of>KV{}8gav^h&acB*mXxX_&vK- z1ovB$YMbCrUdN8*(L%6b>D*;W-a5-AhjHio*XsPB4i^(`XL=D)gqACMp!#$`!OBs} z0bIGI^3}c)Z`|o4)Ey{By#J`HF-cmfqr*8q9dj?m@8N%8JGT8_+wtGqjx3O6$fH5% zrjf>b#j-n0#o5mDKz7As{?>1rRmfK$%aiG2B{J95(`)nkEEpCR(`3*i31xHf@PJJt zQRUE0f?Jn*!1s7l=*22ajIIO7O{*(nsk)I9lO4%qYpe&|SqF@CG`OhAs?m90bLL<0 zMNA~??|f1A2VZ>ocfLqE(Y=Zn%`<TI|yq6XC@M;n`RKFoKGq?OfaEO);#rfK^0ner<4JA^4U9Yi5qtRPxN( zBQlD>Ium(Rl&gl=6%n|w;9hbi10#DF>Ub-vD}=9R)rZoFoY4A}&sL_>*27aI=-car z-T8wHo}>>#HWnK*RpzJI&Fovs7Unaht?RNYx!p&gKy`z9u3yHrF8xRjZG^YzZR@`R zjTN`s&KR%AE#eN%9Z#DXhxkA=;{i359$Nx+iy=95JqzsSnC|1Y6su3fsLThy=dK5F zVnwH3AaKo}J}LX8t@adqUD&tt+;hf)t-6;%Dn-(0gBC^#%lu;Q!LHJMKgv4S-}^Zl zh*I3k?UjsAtVAACZj}sXw?TzT0&7|v+1~Ki^2b$($4fEm-)40K(s`t0(g1GV{t_G{~EoZ?RJT1}2$$3n*)AYhwA2U66^f261>6^_HW zxt6sLnD!>PgP0z+1=}IyX&^MEC78&pgmGKvVlxT7Fb^>gg-vzse{DGxD;Y7`xq&={D~gH4N;0d4db9IJ z7dYN>o1tm7dXo#K>gH4%D6I3fNwv_BX}5Z0+&u?L2c>GL*41TjYhl$w3rBZ>5Jhc0TD;n_V>BL;jMW0!QStljJxQ6!}kv{QVdWR0-7U&V3Tq5c;@QSO?U z@XZ^Ox>y;}s!z!b(5Y5%ANT(DTuWwt6ECj$+{v4^#>k@k`*(MRJvX4@j6QYySjCaE z#kTAQ^KV(5!k;b-8C1s3ReVy1>)%YH-QS5#d(;b&UW0nRlE*KTZ0f}z{0{JMFElFl zz=Yh!6%y>pL*6^aTF|tN+%tE`Yprd)2Pv}cn?2GUE@?mKY|w)DX(J|@J{3VSQF8rv zALtlOJ*%wHj$aBJqJ%4(FD*4;acgFgCv^)veXjS=O2#iEiN@@X<@U`X52!{GL1WeV zxI$(Bi5~lQ+@UeJH+^gK5(+ygvBBEaFqg=&ZnFQU{4{82!=SI$<^RkRPl$M8E-A$u z*sSSNg}fkKti*x^D|rMnx#k^5VVmH&4E~i5(FEr3ffRML?uWFCka~X(CMs z5DP_Wr1u0aNEISA5K531NC*g+#3Ur_33!Y5eczqko!`#x?D7X^CNlAq=bYsEJl}FP zI4b2hzGo4CL1{Z|6Ih`9qVF5XX4|vRch6srTiW1?mjudNi_Jz?P7NUv!hZzR=on5+ z1sjL}bvB9NFbf(%Lj7!Jm<3WW==8K8C5GC-@5|gw-VUdBTuG*Tih1pOY+?a8sCWGv z2Q>(AQ2QoQk~-0RyJb_VRU48j4TizqL%44CCeWa?vZPRgq(RII@$}NdHCNS$81WgA z1ut8c#-GON_o4reC}PFEW2V$)e<6xSE~xOV)!NFVz4b(>V>` zL?bs9-`X4GFD=8ETJ7V$I6;s|#(~NA502+H?|?=>XhGU*Do*Mj=wR4A2-+u>#9i%r zhd%k>oL6eVMCl1!qC2bmFW0nVm-1!}wjO!;(DEA?W@gq$8*T)uDgJq->#&5W7IT$ENwK{<^Mkk|sy6dbi$!`?#7aAXuX=#UE{!EM zoJ*s*YwqZnp`H(PF}3aa2T1(<2S}{n;E3XNPBCb_5~6OhyRV|6P!J@#7Z^R;jIUja z+1yF$UN%;dbvfSv|6mVPvYt`gtGeQWc*PA0sT=1wMa$#Y2_pCpf|$Ba5CNj&eq3O~ zZ9MHyYvtz=Fy!H?|N3Wqqo1Mn_#OQwu*=?BspHyZQido$|50z)v{^HP!37%RU1u}f zRpxajeR$oiy_N$6fwxo@<8i+&I~Ohr4(UY)?*sirdH^kSeGbqTa4uJL#Q%F?jveUL&Fi*i zpf)xT&_`APJ#j$EU;0gekp3+JacBM63r!_v-+J6d0FDWCFXjBkL7f+xJg@y>5dXjB z4O}`5xR@#2k$5ozl+|u*u)DG>r!UdQpgAo@{r+)zFx8(5w2H^Ti)Pstu0K5&Y7m&Y= z!mr@FbLBZgIMR2c@k!WaW*guT&CE7JRY*#YXFx@LN z#k$NS^k`jD3LWsR+{CU&nBg*58AHG8B7>paM}|+^MBrB3*IF+9J=1ZMs#A>Fg%KcA zX>Uu|SMln!$Vl7vuE`d0a!Vh-zNX;J%9(upVC~b$wib1;X#bwta57}TyFCc@-ht1r z2{qhGo1MW&G?rx|g|J#-zLz-ig*Jt?2u#Kj!Ig&ts`g)wSxticGt;qCNR?T>fEexM zN;%w+GZ%76;C1SP{o&Hd_V0RpAKI2YS*QY7zGofskYD2ki3zePpjevU`DPdEOef&Y z7fNi}vW^fpL`!gQa+%&QvPYiYzsnv|W?Hehuu2J_u8cvvvhJQ1q>Y;KR)PZ<<1@Cp ztkBe3ivLmen6`aqLVe3~l#a@pwP>Lnoe@P6Z>o6*EITMq*3hcg7&bhORb=2`Yeia@ zg(X^2yo7-;4+o-d(k8U4Q`ND@GQ0xg8DKl=zWQ*k?KNvFy{e79$Cf-tIL>Kfz&TBb zMpPobY!WH{%UhOwI8i1(f00Bh+Qf!~ns3~Ba0%4)P59k0FxL&krwI=QluiO&LrXUR z#cmnLMZK`@qW<`ci+YsfqCN^V@@kfHqWGTM5ZPbXmaJ*h=+#xL?c=YvKLJW|(tn9` z1dn#~{?=^*7^h`UaX~f$9R~$D3daX`*M?}Fn@t67v{v^&g#iSSTjVc-Shh|Oy)>T4 z`bi_j0wEbBY_<~X4FxxMpP5~{LS%6Ya40y%x~`zWNDmEoQV&X7jyBw}aD^h#0IY5T zA{UOlK^H}_PP%E!t>m`m?>dd{=!J9AG^wf5*~@A+PYF-4^3oCYF_ z*WF8eZl5tBPa6|#;i`kn${5ndxWuwig{12V2<%)1i3B;GWQ$V2@tqEttH^_>L|ZCM z1>~&MWXw@{^A<-(D7Q;kxRphB{Y<8*gjuJOiOt`UqH!5A)VnlG8!CZ3e$1TWeN6&h ztzd_r#xPWKlgjXG;gdybg~jCtVU;jWn#*SNssd2C+UPsEwrB*>*f%Qdp#Db6X@xV%X#OHgZl+Q@UEiYI3AAKJmD?`+~37yzx7yrfx@ar5sWNt(N zPxGHmI*6(KoQJuP#I-`v&z%E2_a?N*Z6G@?Bp=|X~v@=xDD zJh6ZHrqI|5V_B}9zE>RC&^=l3-Lz+be^*Q)pc}$@RL=hDu00NX*rQm~|KDh)8wRih|_xnenb78PVOmz>b{id>y}Pdd5;eTig7 zxp-vqtht%X@O_2>E(2q1hJ!{0HbRcn>TgA>sZgMlAFVTu?s)5FRMUd;WicMu#E2W7AFCFp(3-w`-p5Zv zhqSY?DgR=yroEJ*PqEB!q8<4}vjOtT0c{;mD;G%eWX=O#De;@@iBsQ+r3wic-=iTy z@p0yv+Q||?nYkVgtl7@P_?XZCH-Gg5xVqoLfnT}f@oXhtz8Rc~aDAJdsSErg`#MZ0 zKODDSPg5M-m0hY5RNhs7a)D6AGRY(q6L0Iw!tT^>-NpHC#(4~dGaelPv~e3zB#Sf0 z`j(@Ls&442xc=Q~jjXi89J=s6|yZ?8#%yzGL=XZd_S~bT%#C>o%UiMr4NzgOvN}P zs{kNbq-V-nGxIWk9=AE#{tuTRz4d zXK9fmcW^XiAjU;}@z~tT_wOeCW_K4912uu6kuzFdOP}1ni^fT7G9ZhrNukvBwee*j z13U537`1PF);Cj*!*0v8!`oQOAw@|bgKO&u5^JWA=iM9N`RGyAFJi~w;tzA#udTIM zLJ;g+S?Koh&oe{&mS6J$5ORP%Q#{|R?7b#E;Q}}wID+R$-Uonr9=su(kxOx7w|A!1 z9rS^~MRe;7;ui3#Gw^{qr}ribH2c%)56@flV-sEERQigvO|97vt8^EbQaPlPo=;p; zuaJ860cmNKmxZ!wzeLZ>K?pp_EFFlwWbI_Hoxy^GP{qtr`I_|C4>~F4ezgW-ZmxiE zZVyK|2UxIs|APfvX2XE}^7~SGWGXXt32G%yp^_O+%~x&-@1HCgL*@MojJ)xmVPxC} zjO1KG4va)cr7nnM z*+UmczG|S@gH_5ktD-51p+U>l#uT_)o)b)-&-)6@>x8JU^56{B+gr2L`#xqmOPh1Q z`3~QACQbF9%}#>eVW1x5c?yX2uofK`->tX-LyM_CeTP!fuK+le%e`Y%#+4)Ddp07HCWCq&g z^-`2Gs)tv1dXWCJ;87{!e?;)e@Ao&sqi^BdhAsQjueR(IsOe{pE&DZK%Pzx~C&%u@V-fI;i`g5ZVGhE3bWty=sB;|mgS?J+4?V!Sh(etkz?pl)bJsd1-4F;K4%j2Z}J?g zyv`q}{d=HeboX=?bNOuTozIReZ-Xiei2>wFG-+C-vv{6u=bP+`dNS8sl<(#m%nW}~ zs$YA@Wrfm#@i*ZZvOoQ4$d3QFhHQo2sKD~{troA+nGMvljt_K&GL%>wG9f zg}|tUd`De;X=;FzOG1mpZ0^Hk}3WcCM<_o0~yJGSH-`fq_Ad{$z{jc9* zu9JWCM>^Qo>e^bMuSN;JpESCLl{=2k1&rARV1tPFF7&&!XTeqJw(ecwLabQk=b@~4 zw-(skq-MD0EFP~$H%JG{=IS~Y16mmeZ`T4Q2rO_E$Ie|9>$6b6 z?0soNR-boOg|vKhvnx)}G2MAT%;l3MBS+NwQ^V4uunrELtF8L!+IHG-Z8uGB05HJf zypX{nr)I381f?eAfNybs%ZU8HQojiFdjIzolyjT@Ui=OE$p4G)9OS&?AI0Enje-gu zI!gbDcw9F{b6TYS`tfQ0nMV27OQ72h|5bnJDr>`{;&J~}I0DLU;n7K~Jf|@{bgit` z?;*OTa_bz>SDW~(Wd;y`9}A2(tkDsK$gLqHff|7cAdMnuzFOibn_XG6HpM%=lE~*$ z`$M%44MZUTi9kKhE5(7UXMxV}Z@Rv)qflWZU=nn(44+$#qK2=CU4xEiZ32mI;f$<7 zWd@_YW(!=87Zg%czv7O(j(5mjvWa0zXbR9y(*!-yd#;3ga?ubYT_sn0&D^)&kMReA zDy;yL*!d$AlCbc0?PpcDWJsK0`un&|i`v^9W3GJr>IKFT1igWBnB#m$GspE)SMj%5 z4t{L+^?DeI&#jMQjJM=kYtl1vV9sV}{O|1jL^EzB(;DLKTid8Ro47)xyLs%igT`1N zGFY=nwC3@(A2oK4*gA%vxkR~Ms`~+%j%7+hy5`SacUO?7fuY~n_s@ol)>jq8&E=rQ z$I3Oxo>^KmT%d6(kdjqCj#(SV%#c2ei)|mjw~Ds(ke|7GhA<2JY6O{Eo@mS4#G-Vo z@8wNM0lNcTmynvcCwohTO@N9QX~6F7e}_7;=@!}?JS6-!&G0HZ6PlU6weA5;k6!0mlE70j6nlWPqPcY?3ECNW)N?3aEbHe=5C}PMx@E|GcWLq|vYt$c1nm zJO|PltMu5H4yjcgkvLe(3_DX_@B~l}*SoCuJ9=&(H$fT-MZ=1r>_fc#DR@)ebtAIs z+jQ>3YI6O+;;1fVTYhQ&hR_eXF7zt}gno*#ub%w&htTiunC_?0&s}Qs@hRDO!E*um zF+r}3vy)}L4OByhC{4#PFyE81=jxfoq~98f1{2#DO+n1!hjgm!`@W=dAcKPU4EM<) z1z!o4zWI;FMIYHnV{TRY9Q@;PHd6&t12G*Qk!xS1Jac+^PidD)_K;cZC#U3=Is8jD z&X7u)#`Fr^^AB_w^@`f_b$=>Cl4Kl?T{qIR=WOxIqNVQLzQFpybkZUa%52>i3$U~3-))cFVhj(c^bA3Yc88rsTVc#dLQJU#&#J4q_PVJ=? z5hMf{IUM4x!>#%#IgUIA#0L&K|NHpB^)lyh=I-$#a>5&D2Rw%B9rr(0>8>yupV5J_EH}F^ z7cYcj^xU&G6O3y$rr<>OOvT6^!jgK{C-`do?tO*E-=|&%PL8-u3RPf-Gj(?=4s{cZ zT_-|4FXxBKPCg-g-GW|)oK%Y4nXFgQhrM6LS|Rg*LadTi4JmQmYO*n%4DlNA8tMKz ze^{67@NqTXGrV1KG+ha7h(EWKKamU9tn{`qFpKOCG$0w^CBJ_`f<5u^joh0eA5e=fM zubuEf%3q=#PWdeB{hExqP!S9E1?=8VIEv^Q>(P0#9k*{K4QIHd`k{vfG7vihL`{jR z?~_Je38WNhhOgZ4&%C)hD#Ew0105k$r`SZ=6&NKoD{{xBO12PuZyTV81!99-S4H%! z^~EVoXPOMI)%nrrtySmSPf_NR^)MObr}hI&xItN6#xH_j)gHjGR&)|<)CnJ4?7Pmg zsh)(otGSa?YQ7(ID5rnFzyI*Ywy+A9D6-43s_@oHSKm1L z&IAP7%C*-d#r1p!&JY;=)4smu}Tu2UdUd#n2%GWis`og@Jc&Td@G^E80E9+3G+zTo@WHfe=4*i;o-=$55z7Tu>d zaOWM`NZbzI7I4`n%iCGw^opahvGdGn7 z#$LV`c)2xm%~mZAd-)_9KEG%ps2jJKjUB6E0a7_8XP&+^!mT>ply8`yC(rho<^Magjkevl^%7@G3YySSs?7Q#gUz(vus4+t} z)}R*c-xLi;T#pZ)j@?T#BE!8|e4vlp)%V3A%IU7YVr&FZ-zoG&xiL=FS24tRwDeY1 z4|hL*$;a7dfAZAh3igSHrHQu5ZgrW7Lydiue#?OI57_%4(20*Tn*I61>5!DAkxpBN zXgmhy^U$AP%`gx(kI8#0U`x21{H-f)P}%$=iC)I99T`{AA2(+!L^n-?L#KLaMYn`+ zE#~;ZLoQ!*M5>|9T3U(PPRuWmnL~!RAS?dGtL6D~sI8~z$&9E>xSd)^T#^#GH)GXj z5Wo9_o_{>G5N87dRR{vh4`Pe%Ah6X(KX9qv!?`3(>U~-y05;zK0X7B!u#w9Bn{apS zaaZIf9$AP5e*4V~^)loE64UXJly#Gt_8i?Kk4 z*cc1k>+so6Y`{71wVq)--_r-&N8%whVnCErYmD6_n>A{cz7ZC+WMFC3_Cy_TS z(ngw9{@!BMG@!P7xy^s<9<0Ts&-e5+toM&$3|~@M@LluY=euYQ%1)gP7#3=q=c7tS zZWKj~|16478_QrJFgWZrJlE~s(`yZccq}q+{ao+b=!W)@a9@F}pfFdbeZ|Yel1j(J_PP3E$ztD)00j!v$ECi8qLV zRHe?JkXdWiUmb=2P=k0#qy3F}eV@B506NOMNHbiU0z3<8(>#EvDQpvRdE&@=Xqz5| z)%T|NPo0s?lh3}o=Yz{Yrr|Z2BMcWZj|d1P8dkJoQn%WDUM=(oA!cU84x@%H85g~W z+59dgOk8@4`$C@QHK;*Hle%)pd96is7O}7k0)@{{Rp*OX`UFF*5fZ|s+3kw)YvzVT z!#;m6*mD##qavqJ;X$tQbCx_ENYl=t)mb2kBHmUXt1-b9bB#l`@||(B!P{J7HG_c~ zT>9YBzAsRZHQm|9Z;P{K`bXD-e-!Spqe8#-xzx`q1_oWVmM$2@f4wOeY}Ti28n|~6 zSu6?~PyF+nd9H`@4@2~9VZ~;p2t++sYa~#|Fp`}C0^L@az5Q7qC{PVioEnYIR=`7R zlL9M*4aGeKw}!swaaU~yfyy_uI0PP_UH38YiJPe4f7dP%I=$%xH<0ih(g{Sb{;Yugy4rQs&_4k;;?x1`gv!sjv+*4# zk#6nLXrhxi>jB1Und|i>(3$aao$(fLvd7xyWy2HT$7rmhy;+2J|{ESMY%`@?f3sylRR&|RRX~|eKiBQ{a zzcnV?V_1Y5H)?+utpz=i26Vk!;cNrst@fjYR$O$NK5!QG{-Qd8ORPM1`8wYcPsb{O zc55HQI`0>T60HHkK%uOYuNaxqujR?2oKEEx@a%jR7N%l$zqh^43zmLj66P(S*7*ZP z9q~#ZU@l2AWyQAlVs}NU3|)d3!ZNHhrb?Qu3d?q`H?9H&r}S~pIZc|UU~1_YkczeH zhAHs0RNBt1>iu!GpU4XHyF6RMClqKak?IX@Y@$_&0wD&!U5-dtm=(Gf^ z;yAh5OhS;fp^q7U-q_SNOV2_avQYN#wy^~qpN&dG4M>HZyF3yAbE3Zb&3c(IaRE!;+^nNzK7!>945j58BBzfUNZ5k)zXpc5?2s0H( z95->lG*I)2E7iIBwMgA%wGo>q0Nx+Z10*n{yd-$#5!IX5=0*_p7T+`4z+bcO2f#8y zT4gthFT(D&cb$D5jPA-jHd*BBO{7YWNpY;eRIUTpHv^Hq1V*Uc9a=7Pw($;hWAqGv ztF8%fAF?vgEJ~Gu{jTmL(}E)*8?8JKN=7GRr*tNCK6Rl$ZUmdZA{t?B+(PBu@EwoZGaiDp~1z?TzaB^unNiK0uw* zGz=^|A6D64|24JvGWgre^xpwbpu@CMp8ybP_UFEufCze{5Ht)Ks4P6C_9#VT zSG|8g0yt;oSZ2KAvbwhaF17@?x+AYNH=MO>VO^&*bv=FH8mVb}6sP%sQgeh;$$E9U zcX#o^w_Kz*MaWyL@SH^lw`%6`I;-53Ybvr}R+pY-*6=;tOBzjnI9hGMte~^^MkeOa zTJ~GSbIe2t~Sr&#lwgJa@)tJ?4aWMVkEC%JZKjubnE8B zho{E2xZfLzjvM{DX8PuhcrR(?k!hNATy7Aw@K}KVwC95ng9JG7{c^h6;tu-E^pa*D zBG2xeO@GUPt$Brh62q!Z9m1MytcKP-XZ&E90&$6Pa?FW|mKtWiLxMwpb~*CA2J%Wk zug#Fj4c!v#7TX4?I{ljiHYHD&8`l&@JyBZnk7WgiAa`m?Eg#EK7*zFlMCso0gK|@p zNRWWkgcWBsF56R6b!FZGf@Q7PAgl={4;IdV2&R=gjf5ubc5B(}=@TOCzBapQ$Em8c z^5h>bvAg%oDxBuTgN^a*xWIRG8lxt8kaYRmG?4}GN3uniw~{ct?hnPDkDujx_5JK# zxHa*5W(=iGe)y)RwTsOV*MO+QZpoH>)+t5n!(s6Ew(RcD=ypQ;2pVr7x3@Rl4=8QzoD) zsT%Wd&9k*OT<)N}Qs1m6LiWe7EZci2d0pKGXiFQb=yYaJRRwXfYIQ!CuQ~WSf*C+# z*$t>rT^w=hKA-)Dn*#coc0^nz(w31=i;*`bsO4uPk9qAkwYkv})JiyO?)%;E;)SLf zPNIMT;j+6-ojO^smy~*~lPow6SUGY*2BlYvX$?;Y_bL{-l(z{@DRPAtN2xT3gXg@j z$xdgtBduFPyJSep=*giUItNXWiF^(vKkK?5v8Po@G4qc45m` zv9(at9NgTi{bl@1cZPIsDci<@QRr4kO|uVM$+^ZSIP@wB1@GlU?7;r<+9s{s z(%!JtRrAq`oJ*5sNVT4QKF{D2b)^%iSM|E_hc2owwvcT|c0z~Kqu5F|R}szVl&fvi z$Gk;9@d|&g2)2rSxlDAxk=ky7_h_O)D!k#4(Y!hKKUuwUy&JR=~*>0g-Y0*Ds z4Gy9`JyI;TKP{5Jf=BmmeOP>Hw<yJ>i&aTcU3Jsg_bJAm>_eqeN#@OOaXK`A5{oKr(&b$YDXzSy5M=DTRWuyN2$FNAtn(5%A)|JZd zYY*B`j`CdMqSx zUnreq&9_C%Dt#|wDL7w@sbyBgydAdf<#!6Okf62mV)^fq`%ez_9Z>2Wc$E~C73!3< zHiiNQT%qCv==|evW&CmV`x*B;?Dq<(o(fh`sWu?sn`)^L*o*mdaw^QJ7@^VEER@uT z_p;dE3;MZ&7n*J1`@4K=@QFm4H56a+a|q~_@!AUnt#3mrk`khZR-658Keza1dzR%w=lr{mD} zyC~|^w#1$R6QClcjD($+iJb_paJ(SiYs78;X>3#nbmGFEq3F-4k&cF=Q`s&(OY!w5 zTa>Ci5qznu76mj}x$!tzLeQJTuuIi%o(UFC*@~Umw&_mFNGQL1UwuU0B%`Pyc_w?g z1E;7h+0&d$e0|$|_&xphXFs4u?b~kP=z6p#p(ixAK7hb_TIinE(ZdcXYlIQ&TcGI| zyeU_pPKAIsTVNpbOA87;%@Zw}SJp?tBja9_`zS=YrDSJ%m!$PN5vD34Bd-jK}zW!w9cx89GAf&t!xiMv0Ze0f%vc| z06cBN-aTz{EzNdW(0tUZd|Sw;s9<|}F)0csB1v??SA(sN%2`}{OqcT;i}rk3w`K0x znmk5MO{%YGC?MNYU*I0R(5Ah-=}{_^QX!cW?=k)0HjB(6G5RaZw;f%&J>P~d(fxMl z_mj2duBjvYskR?!AqMxRqe`^Xcb{m(Xx~@DD@wofUpq*t3t;_Dy<>dJHM$4(;6Gk8d|AWuXMdG6Ib28|kq}$otR;`E0|9;ko4`n&R?##&tqX z-Rn8&JC9EQ*JW>*6x?3m?sn)24X}H9U&^k-LRpLm#GEU++inzRw~3zMTIU5tpmwZZ zm;B@ilbNbpG%3goow({W?Xdg<8@D+tO)$IErvm01_}m%kshVcyN$g0Ze+!I!r0~@| z%RiDt@$T_ksZ&fV;mb_EZ@7%T9TV%p+@XSHr>8SZS*czAnk4Kd5Xe>ddi=}5Ckhg< z(@uSY62W{Oqkxb<@ZbyQZ|d_xsw!7rzudn>d00(Z;;yfe-1rExKG!#Meb+^0fF#rb zo56_GFXmU=fil1PTb!r*NB#o1!T9U!UAKjLdk@LI-IY+axp+}+R~g$(lP>$3-j?*C zAdo;ZgMdMjVN%1f;jd2J3d3n0eb>4L1p24~Y&4dhnLXzQfr1Qy`?I$5sLESZC zdF4pKmu5vjD|2W9ZoJG61mfddy6Z;v+poiQF76ou5CQelo}qD#cQ$xxGtw7Wk`A%k zc#DhNybHW*!)p9&;x^C#@br-uI&4?Iv&`S*LM%UkCEV6Gpz&QhFY@sXKHtj++(3SQ zz>Cq3juZojHXpUV0cmo-J93a~_>0sd;N%I$94T%%x%1C60sQ|VI%j|<@@ Step 3: Store analysis results in a CodeChecker DB and visualize results +## Step 3: View analysis results in command line or generate static HTML files +You can print detailed results (including the control flow) in command line by running: +``` +CodeChecker parse --print-steps ./reports +... +Found no defects while analyzing grid-view.c +[MEDIUM] /home/ednikru/work/codechecker/play/tmux/log.c:89:1: Opened File never closed. Potential Resource leak [alpha.unix.Stream] +} +^ + Report hash: 88d734fc6eeb71dd292863f2674c370a + Steps: + 1, log.c:80:6: Assuming 'log_level' is equal to 0 + 2, log.c:89:1: Opened File never closed. Potential Resource leak + +Found 1 defect(s) while analyzing log.c +... +``` + +It is possible to generate reports as plain `HTML` files using the `CodeChecker parse` command. +``` +CodeChecker parse ./reports -e html -o ./reports_html +... +To view the results in a browser run: +> firefox ./reports_html/index.html +``` + +`./reports_html` directory will contain an `index.html` with a link to all findings that are stored in separate `HTML` files (one per +analyzed build action). + +![Analysis results in static HTML files](/docs/images/static_html.png) + +## Step 4: Store analysis results in a CodeChecker DB and visualize results You can store the analysis results in a central database and view the results in a web viewer 1. Start the CodeChecker server locally on port 8555 (using SQLite DB, which is not recommended for multi-user central deployment) create a workspace directory, where the database will be stored. @@ -177,7 +209,7 @@ See [user guide](/docs/user_guide.md#product_url-format) for detailed descriptio 3. View the results in your web browser http://localhost:8555/Default -## Step 4: Fine tune Analysis configuration +## Step 5: Fine tune Analysis configuration ### Ignore modules from your analysis You can ignore analysis results for certain files for example 3rd party modules. @@ -221,7 +253,7 @@ directory. This means that analysis of these files failed and there is no Clang Static Analyzer output for these compilation commands. -## Step 5: Integrate CodeChecker into your CI loop +## Step 6: Integrate CodeChecker into your CI loop This section describes a recommended way on how CodeChecker is designed to be used in a CI environment to