From 7ac51cb6e53da8653e9b0e70d35ff3d82c1ff1f4 Mon Sep 17 00:00:00 2001 From: Ryan Ward Date: Mon, 17 Feb 2020 20:33:58 -0500 Subject: [PATCH] more work --- GuiManager/Core/canPress.int | 4 +- GuiManager/Image-Animation/SetImage.int | 6 +- GuiManager/Misc/isVisible.int | 11 ++ GuiManager/Misc/newScrollMenu.int | 7 + GuiManager/init.lua | 6 + app.lua | 27 +-- images/bg.jpg | Bin 0 -> 43646 bytes images/star.png | Bin 0 -> 12524 bytes images/unstar.png | Bin 0 -> 12005 bytes manga/init.lua | 1 + multi/integration/loveManager/extensions.lua | 3 +- pages/search.lua | 174 +++++++++++++++++-- 12 files changed, 207 insertions(+), 32 deletions(-) create mode 100644 GuiManager/Misc/isVisible.int create mode 100644 images/bg.jpg create mode 100644 images/star.png create mode 100644 images/unstar.png diff --git a/GuiManager/Core/canPress.int b/GuiManager/Core/canPress.int index 0e33f11..05db3f9 100644 --- a/GuiManager/Core/canPress.int +++ b/GuiManager/Core/canPress.int @@ -59,9 +59,9 @@ end function gui:canPress() local ref = self if self.ClipReference then ref = self.ClipReference end - if self.Visible==true and self:parentVisible() and not(self:isBeingCovering()) then + if self:isVisible() and not(self:isBeingCovering()) then local x,y = love.mouse.getX(),love.mouse.getY() - if (x > ref.x and x < ref.x+ref.width and y > ref.y and y < ref.y+ref.height) and (x > self.x and x < self.x+self.width and y > self.y and y < self.y+self.height and self:Clickable() and (self:eventable() or self:touchable())) then + if (x > ref.x and x < ref.x+ref.width and y > ref.y and y < ref.y+ref.height) and (self:eventable() or self:touchable()) then return true else return false diff --git a/GuiManager/Image-Animation/SetImage.int b/GuiManager/Image-Animation/SetImage.int index cf6b37e..6525bc2 100644 --- a/GuiManager/Image-Animation/SetImage.int +++ b/GuiManager/Image-Animation/SetImage.int @@ -34,6 +34,11 @@ end) local cache = {} function gui:SetImage(i,inthread,backup) if not i then return end + if self.scale.size.x~=0 or self.scale.size.y~=0 then + gui.OnScreenSizeChanged(function() + multi:newAlarm(.01):OnRing(function() self.Quad=love.graphics.newQuad(0,0,self.width,self.height,self.ImageWidth,self.ImageHeigth) end) + end) + end if type(i) == "userdata" and i:type() == "Image" then self.Image=i self.ImageHeigth=self.Image:getHeight() @@ -51,7 +56,6 @@ function gui:SetImage(i,inthread,backup) end DownloadImage(i,hash).connect(function(img) if img == "noimage" then - print("Need backup") if backup then return self:SetImage(backup) else diff --git a/GuiManager/Misc/isVisible.int b/GuiManager/Misc/isVisible.int new file mode 100644 index 0000000..f816121 --- /dev/null +++ b/GuiManager/Misc/isVisible.int @@ -0,0 +1,11 @@ +function gui:isVisible() + if self.Visible == false then return false end + local parent = self.Parent + while parent~=_GuiPro do + if parent.Visible == false then + return false + end + parent = parent.Parent + end + return true +end \ No newline at end of file diff --git a/GuiManager/Misc/newScrollMenu.int b/GuiManager/Misc/newScrollMenu.int index f7ee5ac..ecf0996 100644 --- a/GuiManager/Misc/newScrollMenu.int +++ b/GuiManager/Misc/newScrollMenu.int @@ -60,6 +60,13 @@ function gui:newScrollMenu(name) self.ref = ref end temp.max = 40 + function temp:reset() + temp.max = 40 + for i,v in pairs(temp.list) do + v:Destroy() + end + temp.list = {} + end function temp:addItem(text, height, padding, obj) local padding = padding or 10 local height = height or 30 diff --git a/GuiManager/init.lua b/GuiManager/init.lua index f8da029..43fd29a 100644 --- a/GuiManager/init.lua +++ b/GuiManager/init.lua @@ -67,10 +67,16 @@ gui.LoadAll("GuiManager/Drawing") -- End of Load gui:respectHierarchy() _GuiPro.width,_GuiPro.height=love.graphics.getDimensions() +gui.OnScreenSizeChanged = multi:newConnection() multi:newThread("GuiManager",function() + local x,y while true do + x,y = love.graphics.getDimensions() thread.sleep(.01) _GuiPro.width,_GuiPro.height=love.graphics.getDimensions() + if x~=_GuiPro.width or y~=_GuiPro.height then + gui.OnScreenSizeChanged:Fire(x,y,_GuiPro.width,_GuiPro.height) + end end end) multi:onDraw(function() diff --git a/app.lua b/app.lua index 1c43253..3ee80a9 100644 --- a/app.lua +++ b/app.lua @@ -16,8 +16,16 @@ local spd = 7 -- keep at top local head function app.createPage(name,path) - local page = require("pages/"..path).init(app.workspace:newFullFrame(name),app.workspace) - page.Color = theme.menu + local page = app.workspace:newFullFrame(name) + local bg = page:newImageLabel("images/bg.jpg",0,0,0,0,0,0,1,1) + multi:newThread(function() + thread.hold(function() + return bg.Image + end) + bg:repeatImage("repeat","repeat") + end) + bg.Color = theme.menu + require("pages/"..path).init(page,app.workspace) table.insert(app.pages,page) page.Visible = false function page:Goto() @@ -28,27 +36,25 @@ function app.createPage(name,path) end local button if head == app.header then - button = head:newTextButton(name,name,5,0,100,60) + button = head:newTextLabel(name,name,5,0,100,60) else - button = head:newTextButton(name,name,5,0,100,60,1) + button = head:newTextLabel(name,name,5,0,100,60,1) end button:centerY() head = button button:fitFont() button.Color = theme.menuitem button:OnReleased(function() - page:Goto() end) - print("done") - return page + return page, button end local function init(a) love.filesystem.setIdentity("MangaPro") + app.workspace = a:newFrame(0,headersize,0,-headersize,0,0,1,1) app.header = a:newFrame(0,0,0,headersize,0,0,1) head = app.header app.header.Color = theme.header - app.workspace = a:newFrame(0,headersize,0,-headersize,0,0,1,1) app.menu = a:newFrame(0,headersize,menusize,-headersize,0,0,0,1) app.menu.Color = theme.menu app.menu:OnReleasedOuter(function(b,self) @@ -59,8 +65,9 @@ local function init(a) app.workspace.Color = Color.Black app.menu.Visible = false local search = app.createPage("Search","search") - app.createPage("Favorites","favs") - --search:Goto() + local favs = app.createPage("Favorites","favs") + search:Goto() + --app.createPage("Favorites","favs") end return { init = init diff --git a/images/bg.jpg b/images/bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..32445ad0d051470ee8f1dd8ac587414757044096 GIT binary patch literal 43646 zcmZ6y2UJr}^e%eR3!wx;Z-E4e2uK%@k|B8G zlqO9|gxKgHQhx|2f>>Yv_q}!ByKg5e$(c-MvS!xVdw<{l=HG{ZGk}n-rHv&3fdYUR z?*aT92Mz(y|7|edCm5Xf3WFoy|6>Rw;(r+ui9(@KC?p1h#bPkH|I_|w5C{wgL%>t% z1OoiO27$r=IEMEXRS1AWU{E-M_vB3u=kcpeu@!z(ka7+ zE8mGWFE%N!*a9i+ep={)tWh-G3#(Qr(&g5l!Z!T<@UsV!Eu&&&170kr2N68Gr1!;a zi4HwdL>siN_^8P2GtKm%uJ}MH+z;Ow`qCDJce8dmzA!SLlbUV*K-)J3XW*74Gl*z| zSD!ery-dKe#Q#t?HVByfv8x>Vy_^)S_p-UQ!89X*SfgZZ zIh~cjvDgwA4Huv0f8-b4DKosiDN`kR{T@?dvwC)@4w9y@N&N}zhmeE5dJaX=`B9yL z`u_ZR+v~JiXAz|WTOl28G=~nVwrP`gV+=!>E-)p(iezur-^*9Y#H+y{ldUa|{oT>KOxv`cUv*?O=pz zh(J$M6v90$;)!rH|XE)(TY0Q4K{%PCt1)o`wW;SkTnRGW@r zg(;@H?R}kuz00X5#IfkeO$-(c`u6TgKSRSd5GWC(aDR1gu-KW}BYMA3ij-*^He(q;c`ELKdaWQG4mWK%3HBi)Go ztfH?_?w*+~;^fh)m8g@JRwU|5uh=XOEy($*D}0^rq!T)e5%rtyq+YA&&dgy6Hq9}y z&f-Kx`Rbo?T$nA*=y+eO*<5T8!13QbCG~XwEBJ@f`j0dLj^1Tiw%X4yT_5cc>wv5= zCV;3FthxyRR<=lH0?f#8M;CG-=#>AkjjrH#zDMu>E-LKEZDA|!TtuX4Tyu!Rl@4Wr z3-eIq57{N<{wax>mSr7e?2!`W_(fs!IkWE~YhYRHqx*XLdT4o*T-GfRX>5*bNBR5! zErk66`N78g&opXmjv^d(q(;g*G#%@%g1jyYI)y2 zOodJ{Of8!^l+|TVklzDp_s~b?)BjHW0|=~p)T>F#*`DHbYogulmmY8s}BTl z^|3Z23bp+M{4gsmJy>(oPaD6buora#haw_b)0;20Fmim@&l37L`!p zQ2fg_u%@B?vMxqe2g!s@7}+xnnleo$`5~b}u~=kh$hFBOfyQ?oKySKU*zXhQ(+O0s z$hwliPir)DeoerbG!ir2%+V=5832*Wwmw(9g?pEZ(?F}-_y-ig^(~XL^MpveDICp( zz3}&wHdoK*Z+XGP`HABP+gn0&gc$EJ#{8cV0Qd=@Vi(PSyOB(9A;$Y zI>*czSLuwnu$sR%Xb-%%E(5A!KPU{k%)F)9$s&r%9+8Ips=UsVn#=zb}JcUSeyJ zOs-vQ(N7CR${UKFA*(s@FIQMVSANdMM+V7Q(Sno=WwiAa{He!!Ck5#1MxhHc*1!l; z(KZdq*;t&JE#Md{r;wGl-ysRr_;BvN&$pc&%raG-uR`ILoA1%jDi5Qeu*VZ*=M?Wz zo#HK#=Gs>`a()5J)Rp`A3JncfSCnThRQQl(r93_FX6m&iWxkX{U3Rg3QI~Zg4@@%; zC#st4eZRm84BmQtCyuYF;%by1_+-MPD($37|Fg|MTy*k0h;9Eu`NY3-|Fep}X{zW(VFxZ=}>{xDA1RZ?*t}iGed86nC zU8pf>>}!3-(tj#N(AsA)Qh?CL#MTx+mm}@NxUcl6BGJgoAqff5{gVIdKx&wdbE54s&xnDv0mqXA&RPn?vU3kQLQ!p>UicZmMdfnNk z0kBLe{$@+WM?g};`QKNsQ5^$TQZ79*j}+XOgs^DYKU8L!Wnf=b3yd5b&rOx{d;SkF z+(CGwJx)S{kb71_BqXZ zmFARlTpBn3eHYA4#|giw`3Gc&gKjX-({SI#={oR`KUL7&~yxIb22u3KxX*w5eQfJ;oCr0JIPss zus3ur#cs^o%@Dpe#<-RHsW`pM5-`x(HZH2|(q$Qon; zA;Z{;Fq0*|$GO_okk(tqKN}!$q-SMx-!km>90;#Y6=gnf`22&7z8ZN`=tO{>x5FgO z+w0wLiMQIAdFL;nb1Fc-si}DW>5eYmn+vkE?&|bA9H(Ur1~FUCBh3+OM*T%x(Q{O>&Tf zDkQMK$~9bYd+}iuu=_6BuJ#oaA3tn_9lzlH6jrR{+w*OLgUXt#zHDfqX($i|xKp`Z zG?j#~AE05OxCC7xZq9TJF?m+M%o-O_W-#oBg_f#Q4-Dt=JoII^vzY>67aY!YQY)NC zFgsf%BaA=Va@hXIb`Ou4j?$!W9&8fEi~`_J3>IZ{&;UWhsw{u|dqOg&(gU~EXi}bk z23p#{IeyeUIrghU0f*1#t?)K1v()BJd_u-c zTWHvPkq2KmC=~x{)`RMEpy(zvPYXNF-?l&@zfmU{<+Z~Kdd~2Psr%Z8TUo46F_BPV z9pZn_*;)$DFp0H4Y{}C!s5DN|45N#)jmWA<-4L)^q~3hb;PYY*Fu#~AL9;co{I4ep z9W42K0voM!iPg9%m$UqXO<@}&OlA9ot}u$$=+d|Dy;+m_Oolg!SNMUQke@ zaB70O%(2j2y3vy2$TFUU_<3(w6;8*paWz}h-oFo3!cG?h0qwY8QY9=R)A2}$n=Ccs z1x2O$!eMVqw;exzznM6x0_*Ga5BE9R6aE%C$v$xJLJs*wp?)WOl^Shzr!eZqko1@0 zY>4FdvqWn_6*FJ3th$&C?>kV^&nSDHR@EY{bs#1Tom+Bbd*joMFRjB-u#nLQ4EiqQ z>y960S%Iqhq4#HW-4rvYegz@l>*bTo5eYU2G=@O^)q4!*XKIX#?PKT#AI;E8rl3O9 z4tUB_49uuVfIFz-7R8ZuiaP%QG4Qh1HM`_GgWsW47-N3*dpBv*=#})sPQVf+f2&aU8Y($S|bPmL8Rspcv9?UwtGdYOtcPYM7T4d&8y&Jd%bS8%V88xsvL ziMI~wP?-`Rjsk6Dt5*oD!DTXJ^R+wy%XYtDeBY)x=>T0gBizPk&L?5v7=t2*&ovDQ z=3=3Ar~xBA@=pgVSunZE^%ZS6m^K94*!<~WR?j&$<2GRIb9pWkmn z(G*O$3`eJ_hwG8s(Hz%4m{C(S8*y2DPWX@I=0SxQD@h2)54M>QX4L`uS!5^V$0VeGF;?~^`pfjKQwQA6+)*J(2mXFW z*R75aOSO1ROsz-vSBft!p0pvREQuTxZQ05`^6Kv~O2v6bp`t+1OHrZ0`=}XZM>_|z zMHa0&x2T)ojOE*aeT zu##{W5W>$DNh$i9@G9}E-||*>$AuB$ZhhIMXJnj z6uK(^d>%ANm)XzA$Wrq@`u7hTzDMk_eeN;RDLsPJ*n^xtRHyqhfeXx9(L0faYegVO z)Gfd**|X&6SS%EmG3d4a#pD?W-j+|ax*j+SI=hnVfQ$-AvGdkC^|Z#P0j1F2OA<;m zLm2mVm2bLm5?RDjBl|7 z>YJ`0w!fVA4bcC*%dugJhN#y!j++BlIbj4BAB($&A1u3m?|{cZp((z|_bP$=2H|h5 z1BnUwzQ#+GW{OrLCo+qsy?7kM2hfPW*b;_&gEI4o|3yV}ggY+K(x0bMeUulMO0gt+ zyK7v5Gtj*VmVV+^1M;ck4Hj)rV@Uz>q|{t68>-tw;&S*8iUnx0LaV+IFyZA+0`thX zpN%WRKo>8)7y67l%i3m@@CK$YwYi7CcPlkp7CCpPq-()*a7~sino^5B(swi3yC4Y( z9X;Ei9vf}MOSoB-9ycaiwxKh-5l&E+2k-p_XE*O<{>6* z%51|#9OL1zY55p4ftNGXDPGU}<%6xLw_TG9eAW!oE52B&C(Ox;u~NZhAsejSZ#}3g zi@Y~jYXbJZ73wP?yT^j?}#a1XnhoPU*5v2#a86YEMTNE4418Mvq zU#4T)?TP(n1d$_WY8h37O@v(wn6y{zC|G2qlP3v{ReFqQ)%Uv5$Gyrql2aO!A;V|v zG6=b7{v%T=d|(CU7R6D26n&~K0pIn!4fMcxO0*ZkT834j3AB*P2aoq5@wBu*J*@{=iMd| z5&K8`*gDy{18sOAL%N)>%{R9z+nl|$!|BWlnV5sjY(H_2fy8G`YDv(0Q>25MMNuzv zV26S-{2O_YGZAz=#Qr0eDDzU4f3`^MZ@!e3Eg-C?k#10d&eWl3rg1%V1EE>`LpN94Cw?$__KZ0Jo+2Xf{DH$-NE z`Szp@hhZ~Gl31f1@J{+@A=5~c_|2vqy6AZ`pKKobU%g~r0s>r>jf#=t_xl8Zh8?>rh9gZ z8D$}6InV>VbI z`rRB+h(GtsM_Jcb2+V`UEUtkU?`1v`zd@O90Z$$^kmM*z7bfvn>S+#dZ1!-|lAyV5 zm#pJY!*|xH?AT)>{a5zBpW%oft-O)7x0k*Afo{rz3O&}7{K_#;me(*mIBc3tAm+M? zey~&f8E=atL)yv{0?Nm~(JH^QA?EBY9@@t}ykcWyZZpJAmOFvp)ZjONFe5()S&@zL z*;Cs;d6T@tLzS}p5UGZJ7`byhx5p^>BP{J}USF2?hv3H6no^X_uPcnPE`KaDriWPeJanfH zyvL5;x_4fXl)MA7HQuWWO73@QPhk_w*5fM9)<-!1+V6*Lx^-`B;)&Fad4FZr4K0=9 zA9wS|zk*`#oc|PcU!OPn%{ijpE73H60RJY2f_79nKX}*R_c>i$5-w%0QL@_(n8{ZE zJla*{v&T<|LCQc?FA_umk@OT6eD&9hF|0G@!8G=~gXyr{*amCr?xe?FciS%J z3e}$|8)rH|(`gLrRVqR2)K8M<;ME;aEt%6jpiw7tag6CtqRPnx=Y1+U ze1!lRaph{vqKP}kOA_}pz3#gOr`}}_Wt@*GOAk?M|3e{IR&(>*9Podh(d~s4p)1PQ ztR^PeqB#=7Nrl#t+dsg^p=&N?pUOY)e1XNdPjB%_b~2Fu(d*y$qNhQG3XS1>G~~}O5U#}ZS6Z%dp|3O zrF`0?yS@7^t?vC(6S`JF*EnA?*+v%|G$~;>W54_Z zhUy_1uU?!6BGYIzM@tHgEZm`F(|v#=Bp}eLVz}{3U<+^Ie^?CzlQCvX+vN5S<)^4T z90ZyTJ|LYokG~mTY(SnC3X4VWj`(2Xa2?R!Rfaq^Tjs3K9#$wQP{gLxTsf}#*o#uM z_kApdx%12kHBk0qqK%U(XkG;{C<#( zG%YiF7%%dl92dQi-er^5tS_GfPych!wouq>qUfb6KvZ-~#>Ebs`NJkT;ruF4!~gg$ zgZYPD6;lqd3yaH`W0Tc72DChtU$5XDV{n;;nfdEc7{#&uj$Z9*`ev<&fU%~$0}tMC z9nK)d))r&L(th`W4*U@_jgUo?s~p4n%IEi~D9;^%Eo?OwtQ-)s5_hL^^gbf?30X$| z$Hg(-|K6ET$l%H@Fx|tnI8;v6=oeHal5uQP>>Vuh==%nUD&IaRI+bzBkd8!k(8}IO zIsF4jMQm&zNB6YQeG`|Tbni5N(UcsrfS2rFilnu;fkk$fkho{ z!g8k)WK#e5AZubfN1QhBibir<=#FK$n5HHqae9F@7~tx5-Z^5M<8}|Hnap3FN8oRN z@Wz9BUP#GmnMU4dI}Yztm%;yG3slO9saVToJ$wbL(P%Kj09&-zb4_3siYsY|Y)6+nTiDeM!g$$!tZ-Pp6JkZ&cXr*I`WW4l%~xupJVG z%@18qf(4CnpPOTnOP3CCY@$WOVG4Gi1!+^PB%!h3I)-*R4^LMbYre8dhjj387e4S< zim)T; zd$V{%Kvu^41txurs}*qis@w^|K+8rm>qyJaQm_OWeWR@qGO!KGh+OisZflcm$pOm{ zKjSV~qDKc}u(&p4fUuQdQ`0!@i7LQsL!P>S)dyDx@1r|qki$)cnYUc@+wf1m^lbAs z?Pc>Gh1Q;`SFna>?RME)-;DnOstD)@z_*PO-4)`>h1j;yTMAjuW!oT@?wccRx%Pf8 zR)X6FNrb8Q?hp`d0>3;~x-oy}m>3D6D&~{BhIB{hkK1TRV*A%m!8Co2@iBs@4>T6^ z5kKog-1zhjJZ+bL+70J$9<-nY$ZoszuG1b^#%bTfD$mm$2hKKpe`ovLD_oYXT*(O0 zcmO)*Nym<{m>+b~L_MUr-oNO?W<4$SnheODZSdsP>vlew)V>Qte<-5G!;%~A8DAnM zw!uKL>6BZ3$eTUl0bInFD)G^?_gRNyxPb9vhWh9E`LC&EET6G_>l5Gei$|&Nft$le z>XrziE<_ilWMr3>Dgu|e>rNS=5)gU9_EjIt{{hcW$4LNvcsxz)_$Kx|*~3A3o*VXqfhmTrtU zl}>UB?-v*;3(BGiM)8NHm_w|Z_MFk-YEYGKEbYH&`j{e_uh93%tvOYvHwk_Ae5SDh zJZr(ko+6unh$!}6DZ9wO-$(k`W)OoMm1e|eO+Hkzr_FN>9NSSy)t!+$O1t&i>2-c% z987>$3DNbZQls}w#-BlO4-@r=KIN@bPucKQqo=uo3S-Q*dvLxEg_a)8KWtcS>nY5| zU%() zT#==a@!>_P63d>kW6X~yWg?Cf1+`Xez(cdOrD8YQhRTP0B$l#`h(6~|(Ke|=^oWYR zFwhD=Cb&k!F9eYOerW$?fe=kRF3=%bZYH~=p~n{xeFzb}%fr)O@m2{PXgq0xf)#~E zpA2M23i<=;mvS-(#ok3mr9cPE3|V?qf&i(r^FfD}-1-=^P20Tc{t#~yo%n5y&GAIs zH)W=iWQnLXMzn^Rv!jZI-RYv*qD+>+n|fv z9;4ujWtAt_lMtSAl4yt9=|dFl7wIv%)b2@&WD$)-{pew}M%B}(oTcRyULio~WtjxK ze}JJbVMhNpiE9R~Q<cga#sDk9pT?#GoyRk3lu}<45aC|Sp}F(rw+A7O=eh#K6EY1VW5Ps&HZLu?W2=m; zj8I0UKb-q}$RWzH(6K&pDq-OOU2jw&?&bEPIsr|Sx-esGRnilMW)E-b??-<6_>GpQ z=6t8H+u#~6EtCP8N^cL?NabFZUD9UUZ@;7Y0Z#Wg@$|J!&4QIOh&Av}pP5a_9am{U zgj4HZz4rj}7pV_}tzUJKvkb?1o;vqVfQb=se51?WW8?=HRb9}fsUK%=rLAxy;I@>Y1b zNCgAwWcl~ObzW)AwZ=;^L(Tf{7N9;-n;i5H2&In6Cfz<}nKiIwf&kDMKq2v{Vk8Ds zAQ(Z@6vxtr4M4}Hz|Ld-rXLxhL(EstV$=}LAry3D-cLJ^kl=c{K_e(wVV*JYr?V1f zQuzsDotONZv*&Rb_=ctJ6%M-lhYKmtpq55bnDIxt_iD(rbhnUQaF6eK$SCwjTXExAOBal z=Q~08U0b7E*h70;3i@eSvr#-I(Rh>kSE>9`u5qLK7?Z#2rUKITLKL3n9zsYV4Smew zaQ1kSp@b5COO;7lMS57Zfty(l$V6+DY-57n3lDfX4K=4KGrVBav>`^I)J>Y48 zs2=x5^UZ&2)SGRYHYz33fv^S$*Pz*J;4?4!d9;0UD7~>7@R9&YX+2$Eu_CFqSn`>M zY07IXA6_w?&Z5q|b{zp_kJPDD1yk>Lp>E_Ot;F~77;+b-2SFm~@Rc3;r?Gn_gc*@R zF!{hJ{=mYA`+VmeqF_M^blo(?LS6yuGr@%jcS3Qlwe5iU=`so51r^3+*?Wr)3wf0s z!hZ&xZO01Z5|96#Y^QdeRnWG^8lIIFF`>w>9G*=?FIWe1IeYdW62^Rl&wK82_-e1B zPJg}n?1~@cyL}oP^7h;EuC567XMx6p0OLz0Dy`6*AklE;Podinqp(l&UYO>mo{6_b z7&QnXp2tbF$WO%zJJx32v*PyL;<+)X-k21R$k-GZ@zJjsDKvGl)GNNr>~o>=LdloK zN~D~mlYZMQRVi_Ogb{m51DdJleQKhJEz|u|j3@$^3&W4*0_;AXmpPiV5WWYIhjue8 z02&K($jfu96H9Tc<=<^JK~dT*$mk(AC~pJGLs-&=AZCVw~6 zb(9FsXjlB$UALy3kjd`4qZl)H<@7uS3RGIR_#LFh1%`%$D^s5i`l9e|~Q*Xki& z1BJf6%02?@rd+wB&on{AjeXgDPEx~1r&zK3xeTETW{9n`+kT3Y~ z1W`6o+A7C~6tHbG0~aXV4e3ZR#Up+qp(b zP^a`Ko*sogkEHf6JW8YS{K)J33W%X;9lVbss3QWyGobg>;s%V7WzHdQt85Q zV+I(MbQEyU>`DJaA@?n$NRFGt(`e(B(Sep{B{H}ivc@yO*%$k~$Ksa{?51?->45Sk zKZN2mF{I6U&uA->a?>&CkxZv%sWb(E#ZEuVf7rtdW4h7)XL8qkRGT|MGIKn;Sl`NgccsAoKVgLc{4lP;x# zi1^7dmMPKMbJa|1q4>Hk!TWr;>E1&5-&3*9mv74LySt5_|w@J*^cEv8s{5^t@vWBB?U$^~Az#lx1L#tfddw|35<>G1?#cck)B$<~F z3`_m@smTw6^xxa1mGNo^^O+i;rKXL8y>x43OS+8<2lWf+7Pndu&PUKZlZScLdmMU% zSfa@yWxl~V2nRRM%9Zv?0Yh_RjP-#?259s}Si9TwvuX7LMOo@g9(+?I-9Oy5EUD_9 z>LZCZxtgAM;&No}QdyopC+BJd9ljuP<;3#8o$cG^VIE9t4w?M+BG$k|n=N zZtZ~XGHUo6%tyb{9KmS6tOw>j|A1x?V6_dl;|H$BAEl8NGy}{9k9}Vw;2yH{@EunI zD$__~tnQhj0n{bE#h6JK&VUwPfb4%YQ3{8aoa3QZVF0I<-NVt!G0nd{uw^KF8W}1$|U2?F6U3uk$avC!znWU=!C>Rjm%{5-q+(aaN`hjTT`e6A|W@l&6 zhGq>=lg7PLHu*yjxMG~S#f@I0#*%kD%HqhdsBWAA)KoEP>1TmsQU=1_;m4Y}-JL8qy%r*j2WP79llhX1BZ=PLM~q3IJ9RP|AAw-EY;ntaA)M&T}EaBcvjhT^o1015IL@rUZD})inQNR%yb`$u$ ze|^+O4qnsJ3ED-#)q6QFd!6wH zsMxiGr;~>=ZA6T&(na@`eaIxciK$%p0bY2o%Gc(0ZPLn5ARMXPwV8fJj;Tv%x$k~1 zJ-NhpjYgXDbyYGx+b5F(v1m~Z+q2I84ziu|W{=TKYrnR#wcdAby;G!Rad<-4L$RMp zL7|$&?;taMnK&zwx8#Esp7+gcyFTJ0JT|)@RWI)_9EBow$WqjzZePBi=6bo+!N0- z_m1=&ODgO0)OQ{jmm;Y?dRpP+UsAG8#R|zqb8-%3W14~i_(#pBQ47Xq{sD6OtP zf_~`RQka{^Y!)WC+hFNa{@3|38RY9(Xhu4 zSDSD2nDFU79r(}DOKYyJkWSw(G}9tX%>y$pBHu{;o`dkzGl!YaE#T=yE1?fkd=pM0 z?CyF+G)N`ljF+@te62^nu2GW6Ih6Px1qXn9M>+)Azt|K#G1}}SZL2#k2jOkk4jyH0 zq8Za}VEOGF1^YKf@s?n6-H90$WpZr&HWsib_MxJ%!Y`y` z^%qW^ml;G^^rGTzjLIxCXgc+I?ekV=FcW+gne)M6GE2buxu403*GTEQ0`JBD0Y~Sk z3f>c-QzKj?5P`5{;H|_2& zL~%~*Su5F}037}S_YiJ}1@Br?Gfa2|H5rOUS;(eJ=?}1I{F2s8l;u}5TijB=CIb>) zXY!75)_bJWE-@m{_)aUNdA|0ET;&0QTU61{aUB765GwP|a^8VQ$|%ha)&q&$w$3$^A9-Obo;k?I!MRlBB4wnJ6f_lWd?7?&;!^|k01G}bIv9dlrd8;i{rOBt zg}xH`3VM&Bet1U2aCw&wsX+KgC?&+c;PL@}KxVYo`vy^GKRsC59%b*WqY`s-oytyg zJVcq<_c={4GT<)Ld@w`NYZ$*1P1n!e7{h4mpm>4$Kq8y3~55 zF@ghn;Cm7dqB?by96nD$znycQJx(gj$OFsmW6^hBgigik=qeurF3}dmSTy(c><*cd zxK)}5fYvJ&4(+%$$rcidHr?|Hc0-_qzz5W5MYFydL`BodPY6nJuM>|CKLY7hF4e(O z^fjJehEWmcxrb%j=apFr;Dn6LlPHP6T{^VI!*(En(diL0wFQHY@vFMuh>Ta*<~VXi z-I*QUiBF5UA_{sFb3!L1xPMG3gdeVwpF}E?S7I`TC|EvoXE{pWkb_~W2kY>xpZgpP z=pAlaVCB~T$O~3~KJ<-tg8QyQ$V;MqnjkpaY(XLtr1#r*vuu3lCKAUdP+6Pw6K8zg z{D<*6U1qx+`R`(rJY_S{aIyuqLnofvs9@@}s9ZA{Z$(7B*19>7oVU%x==&S~i#w5* zLH)AB{9I3U=QS1ew9W>+xbR&t9H#erHly@PKTJ(6Lp(X5yu-1#8O14)?bgXIaOK@+Os2QQhVB-*f}~ zByF8Giz4N}0`1YL(RqM(v!elR0(jp}f_zjL|7_Oj_1zl1TrlmmHU z-|QL{rUofnfTd(jZqkk-;wntb)x@{Kq}s}L(U7ufMyJy3Nn zgIe(5j$bsbe%I>R21l>$vmp1lfVr;-5KXt!Iwu^!yggx6`HU_od+K zf5E<-yayK3&4ktM&3NrLZMuS$Jr>eJoOL+&iW++^5z(KCTkrj=3LPt(-S1?dRrhB} z4cniF-)aA`3#L}geo`T68>QC6BfKABAw2e7nk_0$Xtskv%j6+lhpv*p9-YVudrfye8%kh z;9r%I!y;YJQ($|~&G0|a(>;9I1ObgmE48_RR~d->2Xr&UV}txWbaBID2k1tRlq{QX zDtdi0i(_4ydD{746M6MJlo6Dk-d0B|{H{_7|8e1sf|j9C>oh@h?;{At{YCCPsS?13 zmySGR3Qae_&K9--`SX*eh8(X8&W}%|D(zV1g%QxTu)VBKnQMZ6$b%N+XKz@BhnOtM zpF)QH16s^@+?|y%-`;?jn72Fy_Q}7Ym<; z$hLv!U-ZzGy&CnZG<^uJM$952K+gX2i*7W9SbL3w&$l|*LOwy&U+SZ_ z%pux8u)BT+`-5epbfpIt9nNEf-~HBwlUG&t@@m{L{6)8;Hnbw1V8%^ET*&rX8AD4! zN^WA={pnvWd=>cymadK6UZMzz>kzYAP#a9@(%J)Ett?{lw_Wh{!w!eL^P2e7dWqq< z4-DG?l~J1LK1`cd#U;aPf@sL+5BR+8RPQ;)bey-VTFp-@TR3w@Sg$L8R&J_ZlyPGn z$Xb@0uIC&nw9Twa#PqqA#4#V7g*2N(QCj0`;2js`iD2_g&&}aRR!YoK+I|7&hgzFd zi>^^(JtIAI#H3y_KtO0D!tx(b;)m1dcw#w#&f*Ag1$JU8%RAEq4dy!^@s^Kx0Z?l; zLoy}%g3uD`L?GrfC+>0NgWbBy!tp%{WO(&(l99UHz#b2C^)^lSnbetNlT((`-ZEqtRa@+-c~9 ztHH<;IBOW!5tCwXGBLhlhC;_kAc_%8?=y5dbI1`SZF6j34bLya$mxmiA9K7fz!RT! z0V>wp(R8C{T6Pn$Z?B&RZ9@8T^Rs}|m;TU*%CO`-Dlv7C%3g^!#S29R-eV=TrQ8-t z7RijHD_j;Rc9Ny8Q+N2R^LhJ$aR6&0$7EVm;+X^lhI&XY=(B)dPOQ!drP6ZmAVFR;c6C!KJX+3<@dKc(P^M5-fr0P}7VHObRY z$9+iK|117eEi$CbPR-^Y5dJK*0QZ$ps3!Ig2rCIkV6x(^M|AG$LoFPHnxJZdM&vD(ZadtD+~hCL zQQF1_z7E*Fia7u*U|ng=IS+%&rum_+x$gOyzpBnVHz@U`>}+8M+d&Ljl7twE#yw3` zwu}M)VMbt(rtPyis zL?%rY>0IcB5{6|IcQ8mI!Io$x`^AYTf0mT)S6fe?I==ai`7u#l#X(5OX5L5VkaOgG z%+eIY(B+i2W?hl%3`HV`Qz!A3>^IL3$KJh@X+3gI@{bMpT;W1ouV?ZW0Xo=fc}Py( zOUOZyf{I)0R9@6e=FxwH{=dnel!a#}{&Gd@Q?2rQ&^%&)UlK+$<=A^-X>!(2`d)25 zKZgYSOkCE7m~2G8>HTQ%cSGiV|Oc9f9og8E>xqXy@{IbA)-q zY47i21}6$d>cA%v!IvKXj9r8UOzX;Qus;5rzsx%T!#Ult8a%i1v*-Yw!esXvUqYGL ztWjeRM?B5Ja5XJ|ag0<~k3q>3(Um8Q|q_P~0uzWtAtPgWdX}lnGvPs-r zm3kC@)KOKp2|ARW2@fSu6%LUOeojv2Sk%KVi5^q(z%2Pd`GPNb!oO)63`g+}kY=&n z%`bR43?hId)=#?wcyWzD+n62jg$DnkAKiFzf4+V`hAYA~&EK!nWgmsb%@f?&`TPmR z*DkPn?5f1Nz8bg7`iO@43Uz1$a|4)Fs)R4j@veCEaP}4O{62OkV!SZ0sujs?%Xupl z|Ld;?mv2sMv)4Vhr8hKn3qE-bdR8LT>@`or{B(>&_u;2XeR|^dU`{)d@(PjpX|S%^ z-tyN4ilS_vlh|g>&+u2G+B?Wx2=T!u<1{}7*tDDw!yKLZA8*xKF2gHkE*aehi=REY z#MmeYSFX~Jt=8YIb<1FOj?N`r^l#3UIcVG*yJ-$DvgwK*eO)SZ6XDN@7Mat;Rd|@$ zVmGXcp470xeCIRNO#uw-IuFmEZyY-%F;aF&&^HP3^qFmae*Sq-Rnc}x9(F8kgpqEq z=V_qPN_jy!ghZ@QEgXa7?cK6_);R0A-@kspfqW6R7KU&g2vJ91w@opUhUDO|bDOjVO|>^g zPII!)=+MEf&k3DTJpo+Fu1PhgOxs?rQ2`j+JRWLef zz>q}c0LYo<=cc74yJ~dHGwR_wzc*q!f4J$5KA0Di?BPkXE~{t2oZZg|lya|tj*eKyGyhAw z@c~=Nb^cO*p(d+4kHCwU+JtOAqfP~63kS`+%^(-wUFG--R?-5F{Nxy(IvF(B(9rW8 zEExU=(BsclmN8Zkc8y=DW^v4E>-S7VK)}@k+QAuD@)4jCm*X;N8ni0n}6?qqLDwoefnO4(ZW%D9kZgv%}=Dn-7(&+kvT51;qv z^?tn`&&SK6hspNtAQxa$h}#t9P^)(GRn_Ydh!L34C=3)v-4? zOwvR+Wwrm1dw`5ZQKUkHIC1z0+9rpqH{}-{e8lnoCwrd*9y)FhxH9=Z9^P3b7_o9e5zhu+TLS?V*Z9izc}50PJfkp z`^Gl0U{zYBLU#;9JyelXD`!}67iMDks<;4+t42p}h>~L9^Ak8!tz;sycAwNWSkPgd zYW;Nh#su&^ug8cH(VSjOQCXG?%b2&yidL#am_JCvC(5Zrch@1OF1sX$S0@%>ALgUS zx-X72)cjVZ)ReiSn%lE^RlQLt7)VxNEY=!_%fD<*EmE&IXr#ZooCa z<5WhA>W{6xT`FGNr%n-AspPrnkLpolD^2MT9=G#22B^e+%CbH1rd)iVBv|zj?n`w_ zBlQAmg=G--3dY{SQ;RW0ZOduwd8w8^pr%W>4zh|dsu|1{bC+^74P92 zVg2BX>Wn`^#cO65mFRwI>GB$w@=TtMVy_`qg|ZMEkg?NH3=4&$p|vF4Im&sK6DtI&=aC$TR?OX{2EQBVS};*EX@g^cvAb4+d!Ol@?Z(k7DhrbbAR56s*H^tMHI)nm4r*~<(pR8XN0Umz%f&NJE%w?)_;6H8LCyHgo#eSw@ zIjg7L(r3?!cy^$Mj&=MY6$G935@xQcSZ{1D2m;xU)^ptKmeXzvddRLUR%Fbiv*>yv z>{GrS*ClTwGFHU-<#xYJf`{*i9eZXww6sIz^S5niv#dsYf0-Z&spZulDOy|4Bs;LL z@Ehoer*OdVv;_$}@4NPg;^hdqCN#W+8`KTRNxY!X$)CK-ghVf1VL302Z{Jsto}%lcJAUaPnS4|lne*z0k!mRTm8nHr&FZf`iaSsFtWkpT z`Iq642ZH_9e)OTM5UwUfl9-)$WfQD?HdoD=VUr;mx$ne27uzvw%lbq&vKk?SN=}n! zhZ{eL$4B8-**?hNgPi++3{8`tJaMV@44G*%3&Y6VSqs9k=gvDX(hlgO<5^?7xH+q< zkjEE|w<7HPx<yXKJIj(!sYhjF(c)pK^xXL?#%9B~Z93sSw(anowDePhv*Ix3Bvik>JxJ9_6Q2TZb z43#!@2;I=Tn8Xvt%L7Vvn{&)i}4U(=}))ml_4&Z_XxvRCj-}XQc zDim40OJZp!KGS>^Zg1osn-_S#Tgl$pIVaWOj;62eR?4<+Lo!(YTveraJIkuyCd@ua zoa$IfNt=mAt{P4z;^HRc`aBGmfkw-tmHX#4S0T_3xaMQiXvm zqAenSluR&4kaSLuLB^{}iKOJb8=iC4FhP3eo=e6QQlqBPI2C{?q_RO9abQVe+3-dp zO+==J@5&z2o;67m{%mzK9wzS}*%cwkDmUX`xd)ItA?AYP>xbcu(;CWwo6J ziN?!pZ}I2Re5+kgW1d4eQI2$5ZKVm4azu96JxlV>;G8rk%%|Y=_GaMf`Z&eCv(^aKK89EmI3zF;Fl&Hxn*oncvCh1IX6lR1IxdShABOI?fyU}mQR4u`bf6|*W z+(6I5_%{b%PGv3mrY{s5_h^%4zM#|q1$?Un#}1@N$e5pU56csW;{g{&xX}y;e0Dqh zrD@TNEAxM1GrJi78p$2?cEnnEQn0(=J7n(Sd_l@ik}tu;lPTPI+2IV=M(oi^H{Xw(bh#kBRywmWSl7afA7l}(`X~ZK94Tm@|$8L8%=eW zPa%}(g@7423I7aG>oqpy@D&_hc1{ZurhxBbFRAPRJ|C}eH=_6j8=D%%DOFrd+a`v& zb7eF~rj-cth|ZZS&JI6IJ-SN~!JYdw`sGxxb-*a1-L)6EwWx~@hcc{$zmuoY91>!$ zk%kidGHH2JAyBEGA^Gf&Z>Jm1VRKSnQ^6hh6a}BC>)dOTgbxBp*X#63HT@f$g^)2H z%$qgP-Sz%JmH>u0XX%nsDx3m-?H>1TVBjH2qJ1qlzdoZ+@Wm0U?egua@8m7Mc?NNys=x#-mRQoNQ?@hGmI45+r&|xmX5YS!lp0Z(R$ySXYS_oHi;D#8pogtC%Evu&B)d-bozwi^=a| z)T1Fd=nT)zl7n3$$-Rl1|CZ62{=i9ngHf|{ocK2HBQfc=i)K-{p6fCdZAAucTO|{8 zwwf~j%E&J^|47=-7X`cSu&Aj@nQL$YA@;anRwMim;>&R`?&JgM!9ArQ6O!tLeCVcN zO7Q;&-cuX1w(@tx;~kQKW6zBMCkdGR&Ok2MJ)bv%%Omy(iiEW1!P?)@welHWPP;s5 zo)R6-d>qKf;t$m9ixE02D~A?WUeG~9BWTGR8N7zLRRtbUrKZhbKa}Gh;?zf)-A3AN z+^P;yenWyLhWJdYQA%XA%X{*a(>^t3%D1k-?WK6f;PI1rBO`*i5f+DybZY!i6rzJT zn1~`5{y@D(B&ROnzxQvv_x7hq z{E)QqHu8AevlG$& zFxqIW>zRIlePld1AL*Qs*i{yTsx+aBH)qW^X|Xiq`l*-)u{rt+sEJy_i$J;Y^$)zb)Pdzf=e%LGU!}-@%bb|IKXAN%;aOgU>Dyl|W7)amqHGo+ z$9XI6Ok#gR_r^{dH>zlg9Yb1hUADj(eG$)Lv|hOQ0l)_hQ~8Eh!lkbD$iu&;S=}$8 zSfY+&2|gdsG!AFVgPB{yv@GtbQkwf!c+x}X$@mmf%U)bs2k@Yr5tBZHGZXZQIg)+7 zF)wj_6Fl0tkSL?8_Ir=QPgqs)KwkQ*u?DgS&iaWpJi4|G9o~e`jYHDKr*2*uKuHN0%ln?hJ8%4kMnX<}*Y{QoD*m?&jOwI^*Yt z$cOpG60R`AB$oL;ykbjL;?ht3c@;v~7dEG>>qmBCM!MbyMHXtMIdPY!9g0b4rxT$3 zmK$-pBdiW2@Zx&(N8}ChMrBX=q8?&_T7QZ>`Lj8iLyX;56ry&o$F;N+OAUh zVz|oL+te3h9vqv&14&kOKZ9eWhGX*8sm8L%C-b|N%Axr9cvDib+>i-L>lybTAyu=( z%$M!(T!38vrDnNsh_mc`&GR`;#mMZD*8t-bPf_xkna_40Ky~%kJZcl{7wFI+9DVw}Ckb<08hM7_O8#2<8pxpp9-p#MJUvnK z8YSUY)j8I3!B?+%8}TlK{Bl`e)#M$>;V-;X=NeU^MHSl6nq({dd2tJLlG#KlR;la_ zMRAzBtBOmf?oV)P@D*S=-b68V<^F;H0V_4C7>9Kb|EA%XGg$011u@I}rK4PBH-Z zp|`x&!LKoOh1SAGdtFo;rhxFCYA}GqCtc#R`D0i1|jS2el%2+ zXu$4KR7(9^MLf0BW^@p0Q#|r38qw0*635tdni|Tc{sS(9h)AU2FX*FCOlwn_x8_u+ zBE$EVNxg`r)#hh9GuwY3(h}2%f@5{-3OVNf57H}{MjT#oV(fD;qikVpe4`!^x-vnp z)xBf5bj#AAF&t`D_tCh@1qY`|ME|LnJKEAnYuIn4R`^P}Th@RN&csXO6cxh$-hI{y zIQxmn+ZJ1f-fXBt2?=Pt*TZ>aN>rj$xu667ssG*z3hIs@dVa6R71x@2dmFOxY1%H> z@qV`UIR-cyDSE>pU=$07+V7<*8Ex%Aen&8k=2~xm9-IUv$Aw!zUCp5pISYVq_IHlI$KEY%=tS4jUt||CenH;CgZJjLJjpE!`y|Cyc89VWZ1{{I z(VC0yJF{W(j~lhp`Fw72s(yCgnQ3r}2C3xyo1m+gVjZh2uSzT{_;Aq9nw(Js|JsJL zKo5NPB!+%o)P>)8t+pf#fvZX%2pw z{XNAQhK;c<$D?vMmJ!-+K;M2DYSk`uLN)q90R#re4G6vZ~Wd# z0^!5&a6!RWgO1}DYkIZ5GK-%nqoXbV)bXDjL}P5)wYc>#HN?5=Bw(j=&mMqfz8#+h6c zL^A@2LsADbCumS|Vml%)@c$WY{KJBfGEdyT(C#$~KfU5zdj(3#V%39_jEPIxXD5r)JAMIpW>THH7)uEGIJhOQ4-1{VLt|XfbY#iEG z!a52oJGVL4&^Us7`x=P^DFHq`nR1tzr|kF-3bZ#K=%XqU(~5PoY)mhPQg|cvcr*|v z;cGC`oxq`F5W7ev@E~=*i$$A`e5Pe&M4ax^mdixaQc;0CH~&!3x=Fq?`=A54e=v0C z_R;E?oyaW1a6wLFucYY0==#Tf9io%(nL6SLt?2k~5FaNGO-o5>atDU9C}I5a(hS0l zhoCSk!k@?KD@MU=O%Tx+anV$z*;3D=M z`eg;#Fl8lD$?giMzH^iE^~^%sYm(Hl`6J81ffAVCv6HC@|I7+sg^AVDQ|it>nl!oGuVAx(=WDyyXvEvC zBpmnKO8uL$1oB5#(piUcIkZ9BL32Y#kxR#|bE9n%#EW9l#as#5S#lCKE1(eK0Ak_j zARKsqU~hAjaV-q{h^g#cEZ12ttvO{i2ao%dr^Rd(c<(|B{{fQQ!g4ncA}hSr1EjC^~G(RYUi+9_f_`G?@kJ2>6?-c+D*gW$jV8NlucQJmp~xiaSt< zzkQ{blwH7g_zDd~&=1CgR?y1|GawpU^Q-N!sQ8)omU{k=42rh`@;I z3*1{JX`X#~+1IRH>`|Kc8iWA3R5eC2GP9_N6HjME1D@~c?{Bj?QI(G8VJ92ruQ3hr z4K4}#9X_krW=7OPz`<^Xb@-hCj(deR$c$`3T~?LyeEu=6*W!H$xv=vWR5{0fGZ9L9X`8Ncv z9w`Zwf0{JyihJUf5)4dkPyL(hfj1=aW#sG~Y^VP&VUZ-jIN?JDc>e>OM2vO6>vY}e z>0TrEbNNzZI@1qc*cQCY!pEl|WQ<_Zn?1>_?Z;4A$c_%iR&1hw>*5uVL^_JOJSiaF z-3T{jVt-yqpmFY|`vS@PrJ$A-p{OZ)f{}lv=ANoGI`cn(K^Hkg)gv&z!m7>#K@SXa z1*G8`qht*f{_=>f-PM@=CYyZdWgz2fhh08W@_SAKzJo{Zu*l}C1EpvAt-`W6>}bSl`NldoQkbJARHaIDXf75&5@t)QD-EHB|0p z%@+WtjCtfT-UpUwu7Kv;INPsZO&1_XAKW~5%R9-}l`3k^G#k5@o~w%<50G3S$9cH{ zd579?NJ0E-Uq{Mj*j}aN^vif-Bh4WLGm~ZEg_mugSKoFBJia}2jyppCG_E6tk9+(# z6li6%S}&P??7 z?n}zy+80lHMMW+dmwtz;IVn;0wPNC)aHPStZdlAUT5S*}y4?N0UFwo)mP{odpe3i% z-{GeUHYu9C94%Vm>w5#pN4jNaDAJ2cRmfY~fg6R^w{MIhobJ4^cXO7phH2b9_v;m_ zUr_%6Cs+)-CsJa*rk|@ou#s0)c*fxf@??y3EKz)fYEsEJ#zjPW_?w8;A(|fBi-&Ii zS_9P&M8qfQ3+vzBzs=*goz3b|_-6rQSJ+dVf?|(6_#VHVgYMaj(Vvp$w2LFx$a-gW zdm1^4o)1tJ1y{_R+&)%lg9|v#P3w)W4wwod-d)wuQ%bBbyV{A2y&F_ktZuzj2dLy1 zpG-RrbE;7Q{c!I_0q)J)>fcZRFAwYXNL%?KSe1&s!rLBrGNrXBTAt~(v5l-B=LY`l zN{(_igVf_%<73x&rl}mLj(Vm?>+y)eKM-4<$5HU}A!4h^GRNz{x=dDxK$8*tJ$Gq> zvRoss@Ef%4F%7QWpA#i#qFWX~flfKwdV&xp;^sM=#clMY%}E0V5`wDgJ`)(~ekN20 zomu{IWAF9bD4e?boy^M_;~M1dRvpgtSS3q-1HG4vj8a>9ZjCdA*cH(61kKGY2Ubgv z@d9^RcsOWLhY^877gtqtknAQT;l=7tp_*LT;>*O;q39ZPhk)cMNRK#ICTA|s{adb( zDX7#H=;-cDP3?gY9}hE6x*PC~asnT7T((Ggqpzt_XJvZ5fvI4(?sG_~G$yV?Ama?h z>G{SKrm6VEXND!oHSBp7hkS7@Mi383bz;IO2M|!kBjD`TRn0zH3PZ*&#den}_315}b`pgXSGXn;-V#K}xm{c99kU=!GsOL48#VGC`GrtlPU zOL^X?<-TI){SSQiCFa|IfDY$fOwQlZOs!g+I8~n5yGmmFs36Wds%&87PCv>oNg-mS zOJ2|$T#c0#J(M0GrCBHLAG&HnlAKhXkn!fRhpmB68WpT!&Ftu~A3W^fem?h~FL!-8 zYNE~58b|1we<_}$k4;5ewd5A5Y%TYvN9NM)h!WPm2;n_z`3^+8i7lKH&^ll+hfSWI zWYG$a&NXd}Mbte0QimQJJ4fNse~0RYHRH*iFoI#7*k_o}z9RdX!f`MWZr@F)_`?RznsBi``Y2O& zOZGc(_v@j~IM&Gm3FkaKg2>$ore!@PVd!&9grcCzj)x`=Dr}pGVAt8&4OkEPJ)^hc zc%I|JH!4Rs)$mgyuwXg{4R+oqHkiUtO+(^Sw{&)?&-8={v~*(R*E`~iG5Ez5NxY&V z)A1ZETPbH}i8nKC^slh{pxnb@)>g0HUFpn9!w-lrMl?9PVG?vs{Bnf;u;xGD;1+oN z(`c7SUOq=`T#@u8-6TLWs2mivNkH{bRfH{$;+)U-Kz`L~4I&kh%cdm4^NrgW;z^>( z8XgIap+AAIQGgW{V)eD z=$|a{r4AK$?BapK1`l#}`)^BU%ppJ46W-PYxjvJQAAcYb zPQE}kf-KLqtB_y*;npUWc>2LXdR!PICAhuM;a;WCJIx#Xm^*3w@XtLI?=I;11^WO8WQmb^kfHO%vdln#zGf!+^hU~y^l}59S~kH9{R(l$E>!_tY49Uk!|<63*IRr< z+8cLWr8lvV4+=c+c`$jEB=Hda-w25X>WG`pLT{dznT(IJqOYdeLy?5|G(Xpk;>WWH| z$uZ3pos7`lBI|e-$YcBJyB}icRRq5v7S75P&TxexAKxtuFq8h~^0 ziM(QuGN#%GHQ(Q;Kg|hK;m~k3#z5R+)HnA0A zC@`~5(oc)ug+p4)%q?G`+Jan-*A7t}y^a_!7gRgk1`IOKIyR_=CQH0o#abU9c--mp z+4(=<=Vw|@ec$_MDlPA9;7{+-&qO!2y{Vy#gEWRhgfpTdWF_r3&w0=l0c@q$8HGbx zE~5Uu21-HiVXySuBJ;;W*KGfl9*T&c*SDMta+&C09RW$HSO$Wfrz7}$rTW*)wm33x zhEnA^S!npw%2-RUoYE5tvgOc&O;=y>-gy{_o%3Qf>z<$g`-a4sY&j_@%g55m(lDO+ zKjio`h9v`N{y_a@8cteqcQk1x`)!TU&y90Y5A-9=U`}}8J_o~imzw7B8oj5QrtY1w z4qg~F>50$?cBf6%cdq#ue=NT$$jMi$$`Y~~SqX@#Lw}w$KPZUoGOvdF>G;%V;Q-Gq zJCqLA0XI|$3u!qx12p;FF}zVocCKr&F9r(3V5&Qt z>=X?kh6uN&t*+JnTqB2_KWvrk4g77ovko%GNA`?D#vHCR)2|;Ao^Z5M`VV+F&qR14 zWrqs|=t}RlK=lbz@nlPoNS~=f`uLyTXs1q6b=a4N6w=Bs6uo2~UrZMm)!*=v`^!9W zODtn)Fi7oNKpfpI%=0-un{77?vb`XCXm+*Dx535!Tq)CG}q~zKs^yBz*PY zF;Qyp#Tk(rLGF%O;*bA;OztxgX0(tiQ5EZw zeoOLCz8#sz<)NRgfsYNVTEz&WEmKLj%DG{=ySp(BzF5a#es?*u;|y-r2D=i`R32s? z-FmX1jGDzAh_`a0k^QGfecZDJRni8LWJq06M7rg!d6Evignd3;; zD{a=&H-C~2)wy5qXmM+}(nS?sPlyPs|D$p9JLGpm@kY&THr7A>6x8|DVxS#m{2H#I zFFEJ?XSJ|XjRJtLpp!v;X(u?*H6IL{uG$Mq6K!I9bnqMFlL4gU=pltQvN!inAZ&}U z?@@K~8qZyZ*V7 zn!8NFM#gyD;FIi79*c+2i6BH>hevrGoFjFbKB?uQ-Z=Wa$cU*}*8&9Sj%k z>DuzO)<>|Ts)Wh(s>dc+AhLU#WZ+=rokm2EG3vuEQ|8o2$N`L&_p<@?dzVAK$_v!& z-F#GKSJpd2D-;j8QgWT&U~a2^&A6Z9TDoF;Q8fnsGJs1qp2Qxxa9CS{K@c=q`uq`p zGvQZ^{=MzFOj+jR+wdJOiRyOmR>IUSJi#cn6~lXe@9_V_R6=Jz7SMds1?mXS6pfqh zM(-OjPri$w7+ay$ubU>2P)2l5Hf^Jwn}S?bZKXo8>YAy1BX#Jkxs56QHlaVf)HU$e z_-fX=Oh?Bx!%mD98zJH@Mz0w59})2Wm76Y`?zWRUSOUxARn|-(WP40COvBJ~y&vXJ z+Lc2U<~cI4&pf~{?c9Fp9+{oBdrZXwQ(5A4Wc=qS_$pbc3j%|A#@BlwSM-q_JZ7Sq zX@|MPx^c~(N!7Z`72mX{owp(=7&xJ>{9$R;Fs-5v-KYBmGd$f5lPI?W9&1C z>WlR6DmxAOG}gHE{QXF#rxPxO=5P-dBu=SZRDYR$=j;?uEiNgZzbq^0p7jy7(Igk3 zj99fi~IPbGYS*Q4a4O%>~;e~9nyG1(5zHObFuXEJ$eMdy2s zPZ($!@O`E^(^)n?IdE5a9kh(AMO@eD=EkU=n!77^WQ!AyeyF`nkxSq{h{uNpYy+PI zX*~oVL(8poa3y-1N1@$YN@AIq2ZxEs`gp^iPzZmX$IsgWCf!jSDg7^bWO_ugt`(hM z+r0MJmjR{2wh$LXj*kS*X@aRkxu_nKpntOFDZ;qX&b zzZ<7a4^Ik;*=booai$r%H`~Ee9y>{!=9ynP zuI~F6v`Y^|o&N!ixmnt!xzoi15l;havaET|8Ff#w2005xUAw7EzWuziM{h~V`R0@@>FYl3mFalMFxUr(GBML9rZVq#h6E2`-6JZkBi=dzL70;}Qp*iSr+(~g_BUMHu%wEDC~INQIC zDnj^?F7(7?*QSLM#wo?;p9FwrN!8wvf<4gig%e0*_<{sa*bJxkLt>5 znlh~kusZP2B#?4h3s@Z$JNYWh>7N-Dz6{QOLXh8Qy$DTjW{{u6Ix1&y%%MJz(-`B* zi)k(_`u5XeE5f|x6;OxWW?rDeVuD`$Nsm}tm;;w-)jYRxNei<K2Q8mS9G5dnd&H@tsAhBG$E5x~Ws%C&l_VS7+;OU~zCrM9oALTI|6Yj)27 z(t=E@W*>~&WBQ}x<&F`Yf z*uxJ_1hC6#jx#k}PunNRUFPd!M2(#IQ$MtSBNPsglwl3)%(H(BfM=AwHD)t3;h!OU z=q0BGxi~)1h$+R*^<1}~%k!J}-6*UxSoemY)qSP0xE5D`t1HhCOf`8!Ra8T+w4u4T zf0-=HkIiPW=Sg!*hb3`o&?-6|+hl>?Y6$N;z#9G$&$s=BRv8_G}Px;6NoPe(}74QE-| zN`3`vXK~9&yXRf$jlUrPDG*z6)PWb)i1Ah4k{^N#Dmb3=shYr_$1q@?;w%{1FAA;* zGX38D0J!eJbkNiicnfb`Xr^t5e2_l41GSK(+JFp85GLp<EkNQv5A&~O&;f^C@otl7S}}TfMZ%g zy=A@d=tPubRR&+xGwLAMvoDI23=Y8EorkAApdhEhNS|J2KP6NOH*x$R$=f92GMhNstumzRYwy#1J`B_#_J)X98!RvdLHxdgKTYtuGtc z=w*qa_DP272-cLS)o#ibTn*qgoHi}XHKOvdOwJ}%rFKn~t9%nQ74D-vc?Wu%yWy=q zD$DK4G+n8yov3QAhh=k#9nqz^5c+9hjcVo^e4j(GCEcaYW$65n666ki`efQwI}NcS zh#7GnZGJ{W3n)b8qt(1E_(J)LPYf+G%#}ykBGvHw|yKpEG@U5Rk&crdy?EF|K*-qyz9>x^FJ0jEp!%Zni z=uua)rP<48j^fKYog>^U1Wx;oAwx{8oP6F$D)!+zSvI%cT;RYrgLhXU#o;arO*|O5 zOwx;&0g6n;q#P{32^pI z-K+|MT^NTJwR9R$L`Jmb4?)hsQxnlPN|u4Yb#UkBS1*}xP~cUJ_O_}Vj%h`rByD)E zD@}yChq1AvWJ2o4=a9`so{r`i15t+n2K@}lulmG}Ke{wjP>9Z&Jg?H81|HY_FhRd9 z9XU77KID*utSpudWbhPAi|WcfKx1;}1P+Sn!68@9=WM4CQ;4?c_BwzyiNr-lc|QOe zHG-o}bN`V@{?GM5?@84DML~9DLP{kGyPQt%EP*IE|Ok#Ye7DE=db%K@!r5 zCQ1(wbEy6|Cx60g#Mu9~`0Qjw7LW2gihWfhP-Ibu6l}PUn^m5Yyh1*FSPXY}LktlQ0GNFlg-IS~L$kN7%4;7Wy>fqrIvsioEsPxxu$CQV3$uy_umB+&|STD|PP z5Ez-}#dxEb#q5^uADWq))gPRF-oMoes=~VYgGIC(Um&3$8l$0kA4YG(~xdvyF{%A+jT;EU}b`ww3$+T+v%GkNELeA}!lu{0rg zTIecxUS8(M^XdPm4&lD`6Mf#QYrpQlRQKI<;1ZC%^ww9F?I|0Q5Qtk%d#i&x_r?E} zMi$xlCDZ@3Q#p=NE)8>E@}e7EbkU&L?roiu;uo)oESC+Dd(uX&(tjETC!;IM{NWkf z9rc|i=WE|j!;uQUI}`HI%#|9+RE{ZQIs7T1D(=8N^e^l{ZLp)a-c0rF9*bdKb4gK+VD z8kfb1%YoTx`8QT^_@jeb@^{i5*U7E|N9^NVJuWTYprU*>&msRrvaORZC4gjsvdGgx zCNC*AD~jXjxnQ~PFxVO_B+13yB(+P`&`RQJOy(wNE@=1B40-W@OFCWv-s`BtxPP=& zu2}mA9OP_b*f2XhuR^CAk}Z+pk|q8qAq_O&!OOD;Pr!IIsmq2X`G1!+A#gm-H3ES^ zf4@P+6&({%cQ>2N>wzD|RA_gI6qYNPnCu9MaId0GndP*d;8PhYSlx;T_kPECF)$PPrwyQ3eMG_(yc)6jkR^AC zVLE(|JTIK~kdr+|v^jH%X{T0owU#EIVEE?C1S2J9wsp!z+ZgWenJ+h9WdZ)X6d`Gs z6WmRN^a&c~uf?FoWM>u>D=?bcOcvoaS7gdc>+AoBHraWqS>{2>lzxOE8yJe z4mz3<$z4N^-x!abF6~o#M|O4KL)3nJfvo-Ps6|b1>kPbypspv+n7&`m2ykBMm{(_C(GhN7;j89OaE%hIrADxmu_3wfF5xrKVxDMWFq>B_Jm5dmPZEEvPAYZft&{UFlex4)?F633}16 z16OKGH#|=Ae}M><5|HmADJ9sPO6R7-{r%%#{?Mo~wTby0E(s0Ya&|?{EP6#syPedK z8+guwG#YXHvR?N93VGytuOW!x)qzE*2Kz>?Khoh0ilRqlrq+ot$S*UaXh^|$Vf)L3_4g`~S?8>BN29JSqwp5C0&j1Jp2La= zv?uhsn5R<(5uYbr_QhfzhM=m@#Hs>29RW4W=_csX#tvwXIE)c_!BiF~7fb*$0axBF z(ERX+R=lEgm=0_QRprP+$Qn_cZB^y9if%q!0UN;Kh^JPC2(vI`H}_|w45G)4P=YjF z@w+HG`#W@#J4`XaT3G&@^J0ua`#&ghr6W`A9+a4n3=X%krJ&9|>Z?{!no!W`u7} zxDg6mfA;nW_e1&Y@J|J_Rl~nYzynL=CO_55>~A_q%6Yl-^_eL!K7Fe8NJ3rAzwRjP z6;224tkAsmb}+S6>KG33e8>>X2Dl38@pbSXLCKxkq-n79;K|`zz_7s8QUf+x98BPN zyQtK8kpg+DabEgO%-d%A#j>XSv`)h^pX@*lc}?k?ONJcNB5kOLw=ncnc-6fd>u!J? zW2AaKiESjL{kWYwuSgKtslH!52xnbc9JxSFZRp8%?niTB(|1za{g?seS4~KYRdy~vUN|u}62<*#xmiTCqNBx;a!va}k%riq* z%O=eUca$&KKc?)-+7@{FVuEQ(wB^Edvnc1eQOLL95xa4>HaxBOKdNir6UciG^-R&f zx(CRZ<~_n*_vw-R!gEvGUl*LA2 zz3vjvyfCxZFcJb>nYN53C^^xpuR zMg4=UV!wiJ{dIEI%9z85*4oJ9tI%g<_4t#o4CGLSzoD}}QpcHwiR19{#A643sx3f3 z>C`cV0`xAXJ&k?7mg@?v@l03O9OvZX-1sxvq@2|~SdsRpg@>ZOP{a;1r z9SG$g$MNU3J7=Fw&c28ovgwY@j1!fj65>*1XVx9EvPVkj5gAEI5*gVmav=%HUPUr0 zq<+uu@B8!adG7o9e%|lbtJVx~G3W*QcB9AZDrH)szkQg@%~Bb~WPUaAn>r{=JW^$L zflGli-qzP2sKxATg32^l$KTPUofQI(qbi#zFT?j1vbR`_4H5HBv?m!|-T{5Rzr;P1 zIgUt!aPeYKy1ri1JK;YV!t!#1Wy~iA-1$x^ds5vaq}?)4Z7R-f=w+K0OG2dXt|pn5 ziExDi83m7G5AI$Kr8$v-2;;Y2)8E_aQi-!poeOM6ES7$Gg#g#FFXl&|c>+&%X^|1Z zxVD^M;8>hu`}k9>*cB4G&M(kYUR(a}3bLjhuvhNVDclDA1}n;JL9PqFlaWz_;WFD- zCpIaSQhnoyThDc;f@*>nItu$Rh0>9r#eDe_Qim-*5C_Kn}5;1T}Fc3~HJT^KcM z-1dID)=%*c^vD=ZscV4JXlhHX$UZ>UlpvnMZB`m zIV-UJ__5^J`vFkamwlVKtfn{)5oII{&r`*B!&%7MB3{2>SMic8)G*U;?!m7ZXvuPx zNycaaWTAwEOrF1m5g&7BcWeoU#k1x_4DyF&D9%vZ;1YF?fcU`O=_$K}X zdZPrcl?!yjI^R@Bd|nbh$GlJs#3CSp5#^AsGe57G|ItRo6<;asN-_C8E8xz04|D$L z>VpVWVC_ed@X59bKQR4e&z#I9!!!b$)n^`6z^O-61ZOqmt)70dFIL|)6u+<#n?(mg zd*2c zr0mk!RbzzBa=k+X39wJHW_sDrF0?_%u(zR@13#ydj$Z44edt`Y)kaR!B_FGb|5=wk zr3o%`I`gisNF(lvFCh$4t!o(j1~*nXDvli&<^m}Crf2cz5HeUjeW=^YcZl;YEO>wn z5gPGA5+`=_yB_WjqnzlGrz|AwIPTMJs&x$Ks_)|Yb@($irqbk* ze^#;@B&q5~_VQuV&%6mmTpc@?9W12uj;>K|j9=b_(o&6dl2v;6TkX5~`$@oUQTYIsy-iB1*^`Q(G9X%hW-Iw$jOh{(wVD68(`R}lz1^TKo7rPXU7Tx?c>#+TGVhg-Ra?$-D1Lf0ly z(x0Wi2&+cBy|RE+Y=6oimuN4GljN`2a-R*318ii)OLgvyRVqnYeJ+Bi+Q%Nf9CR}i znt^iRNibY&`wZ_`MDY9=)42XpymDb&i>8hh!V#xOo{>aRH#yxPXQe$^BsC84KNV5b z{ZqW#CdX`XgdvmgY>4OTiZ*xSz-#7lnTAKTi6Nmu>Lg=Z*-}Er?mw=Yh#V zdo1I(L?@dl?CyDkAaSQ=c33M=-|AR)+r_h?i@$=%{gD z4#$&j@`V7beDGEp101Q(^+p5KgEJ2lWg3rq$PfJ!|yR6 zecyVFA>Fch)}q)_LKgQZ!`?ry8*CQihTU=E+oS}Kd}wQ1;OW{3WjVZ<^Fd%l_VTy5 zgM0|RcTb>0{{|pmcnS+q_0Ek$cHV$WlI6oq-Bdcy5QZ_8+(;5WrYnJmdL`-ro^P73 ztEPAkIw=N^d8NrdWEb!9rMl196_4|kq(NaXo=7;;i^0^s48gtLKgsZFbPa-7Gm0eF zEGbpD{0eH8S6Tg2lh)&!S8+I~qhNjJQQ{Ribfg@{FaOOg8BQa;bQxKX%8BKXzPJy7kl0ra=u6b0CF~;x;qwq`RgULuE`=V!(AMd3E zLf@rWv`mZ<5o+-CGLp{TzZI>P_Qqtd6vqx>L7!Z7wz;fNKQu{pZT3Un)Irv~x)|aM z+|ljmts_@IXXmQ--UFqQu8Ekr>@Tq{DPP^#?6UtAp-_I zkXO$;{oWb1I!w-h0yc8xlkWmI#wiHo?6WqLw-f7va&_sZY?0%xkoMEpr_y#la)aL+b)zs#6DYM80rT_-njK&W%fg8Z&>?W)Br){OAiJ z2(GX0lLp;5-6KN1pmdnt&w?pW+|U=7XvMKVU0B6LAxCQ8r^N z0K|b%)GP0w_dRUbsQ&;f^aU~CI3LkpooBbf_wI)ksO;bIlq8`a#yJdoY51;8`PhIj zMP2t$s!3@SU!DnbtKra|fTcuowdkN~p{>_8r)wj^T0)~oz%AYJ5ke2${Yr=Ph|0DI z&_UfOP-Tm8eHVF!yQ(y}1#JWA9BogZUAAxgwMXaZ5P53&G+;p&2XwdRk+h!o1%hU^ z0u#jPGmCqy6HcCK%))y=|FGP*cywiwZ2L0aF`h)Ll?Crct$;GnRL396H zZg$DxS+VA>hl>9rFa!NdDlsXq}=CsqQsTR(0{;L9EX~lp>=Mm?jIJ>UZ9gt zcIqF{N7F^Ir{Im0+crUmR3Gg6M`!t)IY`!%f`ruYWA_;N2RU$CtMXj=zI2M%@c){# zit^0J)o_47$o(b8$L`#Ek* zRUH~2B%tJTPs(+Q=A{Vsw_5wYDy2#C_`mZTZ&{=oTB?gi1M-+GJ>(dYvqRQy)J5CjA`9_psgkuPI=z!fMQvlWK z0ePT%cEG}$0x)u+xZdY}q#X?-dIy+I9b-nLwbeRS_E2c~cNf8fTGDq3!g0fz+Yd+l%!Yn=PxNjq%-u8;E14~E`nv1ArNS(XRb{L-^^V&ANfYe!S96t%uCWI^ zk>u%GB-L&Htv&~WILOu9`^Wuq4?@FO(a@bd4E_Y)L1uy3y-a}4^F7Gd4Yc(cXM4#Q* zg1z`XvzSc~)>Tdr@U@Hr7 zGOx8v#RyutK7!#cNlnGe91pAK-K^r_2`*juX}0uBZodK@X-c)=IC zL~{4X+#*)?r9eLKJSJ9$(sHy8%*~T#I_ta>EfXi<#8_>24>fgn^Az${8hzkHSme zHNdv4Pe-T>OU8Bg!3H1>U7WEd@v9hfL5F5XlZl{Ey=F8i&`Rz}uT@J$km$gL9FEuH z2Xs6{pO3N>&BZiR*B1vMS)1omC2Xz0nYflkcw~+_?Rd|~%`&?|My0|xBWecb#P)Xz zqrq{;U!){Hj7C#S2Ry_)@v33{Z~?km!xYL^q+;W@I#Q4*!PC%%G5v*w4I-ezRc}Yhc7fXu^S?v~`Uu=|{i7ij z7pCYH9j&DR2#iBDQ`Are5hi)PCR7AhWK@cCGrxuoVHqcCSa6ag%#sZmu_E>sa0js` zq1m;dfh0pQ}JSE^=iOZO1kW&9!V#B@9>QT!2lrj9pAy2gz9-BEh zvmerJ%~WE{sY$35$D>x`c#lD-OH3`4C?9hiP=nuAv}b`)y)!~V} zbLL_uqjSUje)m_Vhl|6>)rUP%7r5GM0haUB(-rd*OwXE_*ZeuD?$GO=r`)(5uP)Jc=`2eoJ%EccssmnsH2gbibbWrmQ zW+!OGD}3{3G&yDblNTbd{){5x0KVrClg~Y1CQ8h0=Q))|(_1mPq_0 zvMFZrTpxInp{fnd#Mbg%a__8=nW$m5t!HYi>!4EM3Epy%#CK0G$T5W+;|Ggith|4~ zJoT8sAJrQVcpsPxXZ)fGDn4Zm-X*`849x+a2}(%G26;z|vFsakn~A*jP6@Em%!`7+ z4`}<(8^R)89e3}QeQ4FqQPPeq4;dhuLdz9&fxypv%8hC^ z*Jib=-6tSsdnza@LFDa9&HZZehLX$Ju&ba=jTb3NI z-vBk$vn~{a?w0wU6EA53_PWHrE}owm5XC^L&}pMg=AfR@=if^_1fYlwmhJxiQxc+e zMGhOcAm1Bx56mdI!*H=7kC1pJueP>i9Q{pFS)qCh&3~L>rmLgY=Qeu(0pnDf2_qmh zMkWCB2(8rq#ki{78~rT|hja;+>gWMdG&>L+c7NETj!&(~yQ|~Iwo(dxE{5bkrx2b` z@Z3o&g=*golrou?i^vB*sD{B1s%$`Qfcl+6ZJV}4|A3=C8#U_V6I9gP~ z@+Mno`~n0fK7GDOQUi)lAos-AhS8NU%`1eqM(ay=YI)tg3 zX}LsPNMQ1vXb`Lpc68k_u|kZ=1jnAe*vyNO{0 zQB~~s)B406d!a}uqSXF?T-TQg8pg-Ssy~yd%w>T-1j3$7``%j|Whqq3BXjkb`t><* zR`XPkEyBo}__rG8qRdvu-3r${izC_aTi=gfZW)AbTVX|K@A}}v95Vypj6BIx0&~_} zg0_@*f<}gV*EvQ=k3?(oP5`M!kPI@e^ZkqnR?<{@H;wYzta=DoQEQzX=%Abdkh~e? zLTUqR;7F@QdfDQ=s4r`vLaE4zJ>FXMjX$NYT(>Ou+eGyS_}0hs)U>du&5amF_K9F{ zJ-1~|hjqyDMOpJC8^WrU{aIU~Vpq<5Q zDnu$#)LOggiBxJ+k@?;>EP}c7zLI-i`W|RkuEM#TxbbI6HTae}8%3r?w$Ai3W%=1k z_r@ou^Ln&Y< zML_*98()VQ%Vvs_R8b-5g^WNWlPt92RiuNzQ_bYfM>NlIDK`CpbL(v1bYs^9 z9m_L)P=*S{h?0kes5&+c|A5o_rJT1zsY5EKR5;~lm=y{P>(n5F3s9(wyT1vL?ZoA0 za<)48l<9Oyuc`y=89w|Xlo$~k>;DreQwnPk+mCxa{c%9aq0n3C+v%c~RPA}F>K*Qb z5Q)buK&57H zrRa$}@gETWiZ#${F4(FVU5eH?|Av55swt0hvVc<&An1~Ogu^-F$X5P72{&#a-o}?b z_h}l+sUEzOg^{-AvZKV6MDufV?jZ7qx!9i$myS!Tvz-h)M!GD$TM`P>XqVts&qavu z(GW#%esDhEc&N*jfL2j{GaP(N3nCVn8R>~8%kb=5p`64?f#jI{2o%~Fb8Ny}Ds)@C z6n{`-zDMM>jr15(3CZpin2yy-fiQMRP5a-sT*1A+B;mBcN<7gC%4{g0;;31@8M%I- z)jsOr zqP{^RO$Ryv->aV~*UXeTyC(Nb<(du@qgqtS`Os5Z7!2?|_9vIdcc9Uq>`KgM<&M1i zPR%R`bD-%_zv_!HGuqa@(nJy}<A9$)C~7iRHrW?!ADfLpw6qI^QZEGSTV4!i;#A zPH*OW+&v3KCCT5Q#N|B6zmK{ zK<5=e)nIa1i0qin{K$>b?oB}Y`_!sV`MNX2-9i$hwbVwK*|zd4TsE&6B>$r)DFd&= zzYvfIZ|(L%9M@A@bc!#To@Fns5mC=zYsw#nHIV5Xi4ud1*TuJ; zxy|hKYCt;!KCk5HO?BL(KZa@|K#P8ym4Wy9*;GYdg(1X7{GjLu zieG6_g`yw!6Py&Us|id5zv?XsAS>H#EZ3?z!;Q+3k=DT>Eug|HtR2VwYq|jhVHTz? zc5Csp|0I*2plZ?7b#ETJRH^!AP}IA<*a#SVosw~49{BFFSBgE2FMpt=t9c`ddgO$K zA}<>6d%&X+STD%z>WMLE>SR`vJeuD|rOsy1RH``|N>w;1kTDhIbt{KkEypEqz;F|N3Xf=y?U@m=Pn(Z*Hga7s}03pT1ziJoYomo>xs3c zxQxrT6l@10=U-n@7h-oK!55#oe)5MPCTehd*mZoU#7LBYoYsZk5V9a+lBraaK9})_ zswbVH8H)LtM>!s;WvZgfl3Lk>tCgr|AK1cPzn~QPz-*OzLOFiU=$*5_C-VM7bL9HZ zaqmnZIJ#7_X3jO2b!JX?MJcZd1XB-|#rPHK#MaS8&t|>K$o6*LfXv2jxw@3V48A^y zpZK!TAflTO-2M$BqkIGE`4qLf^8Stix84c|31zf>ZW_ZlH*=Lz<;S>6)>$Y!PCeI# zWc~qzOs?VpPya!_f?rc`N~b3?_(0nE_l-Hx+85IJO_loQUv>D@xt*nkl;Sf zxZzN=LCk0cqG}vQ8PbvOcJ;(yui0Hbxv^TbM$-PqAfyXk-q=#-cZ`M=9UM%OKDJ6g zz7V}G8xlVqCFLH44$+cMn3jf<$hBj3wi!$$OTTJIM1~EG_d_#bvNoLRht+!6CTNOT zhvtg$mKjj6Jcr|p++x}iMwKp?V?6F$DWOVM4`46pd0QY#Y|&r z1fFqKev!3IIpTZxy>mDvLLTabf4`kQt&Eb5Xc`6YqYgD_YUnPnkT|nY$%!0><`Rzx z<+B|^6IfDoiOg+q2ZNJ>$$?UfYX zta2JcP~wIB&fRqhBBw)c*P+Mn2iUr>df6{g9?@y#*&u}42Y)|TqRTolE?gtCAitcJm|xB9 zPGcI~VQQWFN_F#p($=ti-fCzeO1HnBQh)uPSQANj4M+$S>%Qj=En?v>_H~=+(}@pm zb|7t8m!gtl79pa{!fO6u%}j5bRfv0TCL;j-@7Z)9Yt1Rbnd^RgO(cZ^a|hiOUdnzc znyJ_!;+5<=7RnMQBHGRLKR#x;{sV?D*XzUtp=K|AqpRMolD5_HwiI0b$x=W6(O=VK zTyVv8hyp|$m)mNI|JW3o0B`w$A1ZSR^%SS`p!$QfQc_JOAq3s1#v|mtVVS#77{nYl zQhECQDi1{PaYxc)9)q}b0_LUQETxz9^zb;P~INL|h?Ugy^mN^hNyR-nu-@bv}h z6v>;c(DAN#`J%(8c0deG8OWFK#*Q}v5uw&@p0D&28&X~~CJ%EEcTyz3UwF-QTdo5T zQ?F#lL>pnUjg(_eDCKLxdXBtHoZcY9mG}dMeFf`h;{sA@2kEdgv!vfal#OUHE zn5#c8AqlfXS*G;%aq^fAddLKVbJe3A&*#-JZ(J!GEUgG7(Hq4HF8#%8MbbB~-6)RB z$&T%kOO#(4MqaJ!ED#bmpmUUFK7PJXdA(@ zs=^1G(9G9fLr8iczfR*%I<;t~gFN;f9m%0{nqz)z=6Sw9RYp!l z$d&v%Oav>gT6tE|-So@Od;3>QQTd0&ZF}SH zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3;el3cm2W&b&f8Un$d!(nSyGkC+VwdtXdl;4b_)l$4mxwg`I$A77(9tLlk|NPhAZ}aK>e*eYw^_~6x zx%>Vi@KMx}pTE}eb^PG-{PTn#_ptf<=dOKy6WZ5>zP|Wz!Kgb2-t1o=lF!5Eb4ygV&O^j3d;)EPdn>+8VxC|`eKeV6{ei2m+={UB9lX=jd#A)IK@zu)Qe1o87{yw}0! zh2t!C-shMdFDd>QD--hD@P52{|LX+(HpxHUxj)YS_q#t#ei&b$$3M(v`I;l%{N)#x z|9bM@6#tqI-%k{N|6&$fe;Ur$pL=(^_k2b-Qej5RS4MgFV|H{72TrCuzS9anl|PyH z_5E~ynjd}GF=e;glJYotbR9-_^A->OAtf7Y$6{n;hyP*=X z9UC!R;kX$2ID9{gz5Diezh#X(Z{yHlT+BG-Z-3lBefi(~xO+9XX1;yT70(rvxjcp< zr{5e!KJT~`1!fS%=R<4;)`?SxXkOPD$LdWbpfV` zduJZTA`$S#Vzy$whEUCz$3}n#Paa|llL%POVe^n7MXJTs(1PyGIn~~=A%_z5G1#Q? zi6vHILroE^lrs5KQzM54C6;o|CD+_s?s=40Qpu&1S_E>V#+qubrPkVNucO75T5hG) z)>?0)haSPe+)J;$_1?z_Zg8W)wFbuzKAB<0nP#44*4bvCW05{9t-Q*rtF6Aq4m)mO zVwYWa+kKB??tm00oqWovr=5PrCD(4e>E>H*z3uipzN7XP)j$3G7g4jXsD&3P9aq1j z#;2~*{GL=oJqHQWd(NHffEXYoKW((Wdf>!WdJG`btYMdR zcBMS|6G5IGVUc~?hA9Kp)VX-$Y^Dz)Byj_n2+)#{F%7p@=g}y$-rEH_ zL5sZm09ZVkPC56}sDRZ7b_aXIYBike$$8~$NF0{?SZ)C<%#%MIsJBLz`_(9z838}m$Zd``l_T}p{tvXx{RrR~(#aDC-{?m)f`-VVeZjP;Ua<1WT~>;L}sA%%*` zUFOZ_qNMr%LhoPjDEm1W-vS&PFiDlF3TtAzHY9f@Ggu%!^5g6l$^sy~qFCT6yhvLY zFr9gO(Coru-7^CqxF4%dNbS}$=7jPLyf_n$n|HdE2oS=HHQA8*b>t7~x$qQmj{$8^ zpMz9gDN)sDz@kGyrRm_w!J07r1(;*a^GSwKC~9*TO-3vxSLqw=+^27u(H(N>#<2ho z>H*zNcsq5|VGkg&fqJu-Rbu3XW!Dkf(_`v=_nWOH;n?06DyX(&J}TT&^IC(sza8wb zw8|lY^^GV6;sLc>zmrF!_^H$aJU+OGqZ-A=JxM+)XLNw2ZXy~B5}@u~xE0w~AKw@c z>jXgQ+J6o_e}g;j3wZuh*!k@hz9_`gZmHcJu2{|ir)y)5CqV~X2YE{TAm7L!2>+(Q z$)w8Dqu42M67PX~I#u^Bju~iFdxi-D;w_EE<6l@fUx5+hh}Nih#jw;F0pvZ1UqpeC z1LQ4yLd>1Agb@)^sFO#No%75f>@oY-#}Q4sr8!82KsrNP`Q*Krlv3kF5U%3jL`2s` z(;>754@1->WgFFjY%m5*YD!$~02NUxtq|gt543s7Po9S=0obl|m#T}wjl+GZ=C;W$ z^cwuDYfJlAK^{^kzYBh(MfgQpxWBLIf0q;_F-5U&htpgxo=Rzq>JA&sd-vxsk4!rG zGr)KtckaTNS53_P%m`JmAU^gCh?6it3CA5_`#Vvq9sPh(2@He+h1f4#usG5~#Vho- zDU;r~>Y+Y@O=+!!9NDltP>XhG2*I3zj*PGVkT84Hv*1+bcnl`T-AaiQktU+z*)MJ*GU(u80!mV-yw>2gq^Bh&;AcbP+#PAmd3_ zt`&ZH#0;c^OW@-|yC)v4ozJjHa7;m@u&&!+=iL&>6_}`qR#=I!hc|Tcv3IUFEMO~0 z;8mshQaqJugkJpY5%jzl%w~E)s1vL(i}(YpA-8^eC0lNQ$fUqPB)=FJLD7vW$(D9Y zWqGi5U=G}bqT&0D^1+#1lr^Crb`t6gGRxLgBv`6DRVo$99lKFRpW=B3;dZ72mMKP( z7us&`qXw`Q9!j&X`7dy~VVXt=*9unr5Iw3A=>T+4^afKVhuB<*&SoHGsuTviEF+|Y z2nND0k|0z)cu@czN`!HxS*Tnb8H9ouPwTog>;UkiQ%2`Uw2RU3H%~_j+<~Fti#eAoV z_JHXVE*bD;MqtL5=hsJDq)VMghA%{ z{M@Ra8kUj-B4I_`Qgq|t0AnvmWQ5eGJdmV|{Ck*$$|G0cJPP@0#!-}WHSD;O9->Zz zBzF}AB697 zC=4W`ktn^(ot%vT0?eDcPgU@2WcFa*fC-XQlFFD_DlY@CX+1jud-4!a9%hZu;>HMI z%20}rjtB|Xfo5bmcJ92)z-eB!c|Otw?STUw`4J`gRZ}1`0a3BmqTHfv7K)-Ps^A`3 z$n!Fen;EA``@AzTdx)N#5I#`F@HH;*G9}G1Vw-~-iVeIC=xbSBgtl&LU4zN+eF5V( zxCXZQvykc=U^|;&z>_GWM$Rl*2c(xH3h$m1)QJ&UyI<#LHx#TWRu!{@P>f7?N42P~ zkVdEPL4$p|pAM_|kqVr667mb%K&lgT(1?hFTLE&)3j;=7^C@2Hc-Yi7E}5Lr10j!# z2d9FeEo`rl{V5rSr^r?&k;_h9?UH2k71)?dlB9PqzACos;mev6U_(%VwpbeYyazBO zqixFc({QeM+<}N!wxFxS;_kWVIdtdfp&zj(QgsQe^2TnODQ!JaDNtDS)}64G-OiwT>0 z*5!bu#vjTOVUT$!)D<2Gbf&T~l;is?ZuxBxM)!k8=t$#h?p<4#>t^ z;osnXMBxO1nGB=4Q+tJ1OfxVs$pBA?NK?xsHfWI}H91KYa;-BG>}&DhJhJAr88Fw# zU5auvVZ8hY1w7{k?5`+V4zykc_PZf7vH&L349ruty=^2oNI)_I8rW25_sBL`B~lQ^ zlsSDy1`VVB?0ISg2|&$bsW;G00S=G8SNE8yg=VPwgBNYg0~CkkUhAW-KdXWU+%=q3>X;+7-zgg8-Mvp%CF=8wAh{Aw|6WpCpEQ}8EUU$|#>@PM z0n?uS%r!^_Bu_x8!l6_WM2UKVt}I4C;9W_Lo-h6QMfE6;H(+<=Ekw`jo1WDOz-Yq3 zq}2CY6fA52PGNwcky|mwGl6m?l|4yFpzAhuY_TDb2Py{{iE)c#fV6572zlVL_as0t zj|Q@<0eWx@hnl8vh6BRxW+YfdI613f9OQ5T=?FwfV`Tty0ObLLGqPHe=%z)eC^eEx zcK#kWA53gS+pvnX;Zof<=q(1XvVrl`I^b~y5804=S*tGt(bkzilRse&oXmeKFq0wF z8M<0hhz}eR^sAchufWp|uRVad5y5^_7y~fkhQ}&B~ASb5r zAeb|>DWIZu8{&*9YFFMDuBb4{*_1qd4y(Hk;2`uly&n|?A_D109hYqrxsq`mI{gHc zCN>ybZSn*eWr6O(Z+J@md0N~E8i-^#a}3a!l=JBUG8Xdu=D4_jr*+Js3-o1Ud*qpUEgHmrFGR=^HWVD zmopCCV4QJYPIUn#^hpD92nnBzh< z5DnxdVbscQm`jEfKEzy)gSb%tp6N!}k@*`|7#-D5A+H%D#8cL4LP&sOAZk${uSGXe z5n+IP;HFxCG44fy`YNm1Uss_71dU%-8ny~Kj{0^9a%AEte@1~i1Z9h0;K6xLbbLz7u8MJD0oYUGWG#Y`0;Fu%o7shjZMh!Wrustsz3Q+wQ;OYm9fRqMtV+^>-R;VE)dGViCETlum=)TTcJ0T?_ zvn?lFR=jKQCy^|6K!3kFk*>&bWYfQ@~iq!84VqE3j~&2Zs_H^~erJ3Tp-T7pKa z45*g3B=t#=*lUalln&7*B5-SsHy|6ZE*K*+1WN;ga&B`-A6#>@j~rc?Fmw{0YYEDa zaujWfv~M4!iS{fIUT&TT^e|ZR$aYh=M%$@0r9Xa4(4!yVQ*dl*lNnYSz#@i1ko@Ba zWQ#TPB#+6=x~-ib6duER3fR;|!EeTA%77iqC}Ev|sKo^ZxC-+hT`S~4=hO`3yLfNF6o#M>wVPKgUYqz-2v7JA3&Ovw2miK-;7=>U?k|>vr5O+nRKr_T$qTbV0w5T+h;-bHMr}dz>Y%2& zTB6M*u%*9s1Y*Xi@OrzcN?jR6l%6I%<%!a1;W-K>5%C0^2(k{4v!zC~1P_o-t>;Gw z1ZlX{<^umDowW-pO-y=MZ>!31k{RuxkWeSVEKqNN*U*~<$A=NhYLEk~F`!j=$33dS z0)F7~)xsHbL1L#NaY<-&EK)#T0~BzKNluq9Jw6Q$)4@qVRSoxL;Sm%Cj3NwFj~Y|j zQKTkI%-Ur37KB>`MlNte=`5*Q5FmD;miq1Lic(HfyNQw{eMdKF;|+XEuA~bbZB$U> z+*X`agA@ih-ayorEt9TcKokH1MV@X`?;UCO99t5Jt1td;3!8%^Qbq2Fnz4Nqm5)A` zZD=h#Eg}WVFwpsw`_XC@MkRr*q-}p!K=uZ0=9$PE-*-#URHTAo7{e6e+GE$Q8M!M^ zADog)Av!!12LdGAifCjCOQS=5Pp4Lv2HH*iF4=(s0Wzmpy{bMfpAN;t&>SoGNE~%` zKa_0?YAzqD9C-|VGSU~FF~Ho6UJmM|FQ!>r%+%IGNxar9kz&ACZLc?D>Ta*3Np`!} z)OF*?qXL7_^RwSc&I`aD_ai$YpB>L-xYe)p*7R>%QPPP(db~(9Q@3fOx|!Ih;0^mM zqyUR*m&5G`MA~H`=XX<+U%QUMtE>6PHg#K0i>Bmymv?3&#{Ce`M#m`^zLw=548-x) z{G0zPedGSogM4101t65%msU+dn=6Rl799ccu#omzXn}xbfno0j{2z z3FHNqPm9{KNh<*gS8=G?-h*)5i#e+fSdAdO`X>`eQ6q^w(H0Z!`#7UNTS1aSs-QCX z$>=e6t00lH%tQ2viE|X++X#iWo2h#$oC@T@!FCVN6S=3|5@!KJ3*)RUDM0Ynf-H6= z453JJ%p0Z?%iLoQSZHlx%M-DkrWT&8y@k~(c|cusEuj@yj~uVs7VNVhav`Gzz{;Y47BEub z15k`AOQxoS*0Z>XkswRDZbqufQ?zrUa{P7}IRN3j6a@61yusPMl4;sYPI_0Z0EPIN z@timUYJa_py|$3wZ?BkKz!SkuFbqk?&(i$QizclF`IQ}Y ze6f@PVaF91ywwQ1L}p*xSk;XxT3pcnp|=)lB@noZ7FxrnDdYj@h^%Pw6HwZ)t) zKfuhT{j^|G$gN?9fnSd&<*H?Fq10z1%lZ}|?k_j2{FhR>jj~;b6p1LJIBO9C+S;6^ zhu&(pb$PVcKss-tuuD|g?9!bD6hrGVxcfvz)e7I$BAH+Pm z+V(hUuPsEBzgD160<2Lt*mYq0_?6< zVzdG}DfH`dov6&$JmAxYb^;9%dD*m+*dMHp-Pa)TM2PF!P#n0 zbq$pdX{iOWU|Q#iz>!b_z1FlBM2eRI2GEl93Q612I|}5;7j#DfZ3AsFAwhhzqhAPS z9G^NWm+N3%Fr#q5kw!r&Ba{*16#9g<2xrrVb{8UOS}vs`C#Bm6=~ctJdgLsoCTppQ zGJ$uWzVIJ-C6V9e@)gmzpetoUQ5|h)D9nJiz{ZXlNldv%H#<=SiAw^5;zR;fv_|Wb zn1I#ud6Se@q*(LujPV)o4ExW{=@%?~!wFMIm%=NUT!@nmg8Tq`mQxP`S z3a*i*vkdLXiZ%CkC|SJLa%z8c!mmxh&@ojDS_3QVETudS2v8&Ox4IdS>(q8&{l<+0 zw%F~ce{o?>|6VFd5|R}+$)6PI*4nfaN2=4b)e4N%*pph7>Mv%(zPCE(@EjP|YK#1q@VG$m`pZ8b#oM z_59$OcG5*9)ex?)?hqJTet_5{(^h|3VU5T_l|X( zw$KXrw$?1XKica!wZ!rL0aS4ii0}eC+TfHzeGN^{Q&&duXIcSdlYBec z09Yi*nortL1fFGi@bp#$slA8$_g;HFNPLdE!>C2=umxkuxK^Tev~+%NR9GQ97SibA1)25M zwL4iT)x1+%5X0aHkM5)PD zUe-;>m6a+)-PAPH(l&Z|rGB)77taX$W5|*7rtI2`nrD*OMRmImA|~y|dp-!3sM@7e zJc6qX5{GADo~a7`vxB^|1hr33dK1;*MIW zE&W#YS{8MLMEX>4Tx0C=2zkv&MmKpe$iQ>8^JB6bjQ$WWauh>AK&6^me@v=v%) zFuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0Yam~ zRI_UwP&La)#baVNw<-o+A)p_?41y9f^+b9x1JChw4J|`YC=z_$LT$f#b<6LxD;F)0~lbR*5p0lat9cE(j`N3BtK1|PypV~=$mrDz%9_T=JwXw$LRx* zp{|y1fP+I|v`E?O9`6oz_V(|YR)0TN9&(&|(u`UF000JJOGiWi{{a60|De66lK=n! z32;bRa{vGf6951U69E94oEQKA00(qQO+^Rf0ucZ=Ee5=7?*IS~nn^@KRA}DaT4|6S z)pFq7^W}lHp(#U9uSY#m~5L+m0Fq?oGTtJ0D$}uE%D!+maF_ol>1Uq(YmmSBZ zQg&kbnVOAO;Dvv1tKq%#3C<+uN7!d%v3>-S5pC4GLnE8A|G^Tm8CU zzkc`hIrn_ucW<-d;bFA5w`10~{9C}t_oC0g>KHpH&JxX^eE}dO*L)qqYnk;f1VI3f zx!zhOpbA&}rTnd#L%*Bzzn63OR}5erX3r17xYetbUMslaV4MIpXT6wPhM5Gjx;?`d ze1Q@2Y3vy5?7FWX~LaiCZ(T#*Azz~Q6cpYcMP|$mL!`Y`F;Imd;0kA}`(E$u8KnHM}=7EXM zO90t?+5t9&ku&{?gUf^+19SjrA3|8Lo7Xv{(pQ}pfGM{Vl7 z=n?VOP|j1phR05_8Q@E9IAh6DHru)NECVj$@b2g0fgiilauc8kps52++6O2HyXC6I z#j+pi{a9hp*>0+;Iu~Qdtarik{@y^~@+d>#! zfuR7Trc0W%4?EciW1QaMy&F$mz;3)*+70Kdx4h(3MyIq&#PU(tt)E{7(85y|uwl5= z>$7UgR@3ENJ(e~B z6!aYYdBf~wT1{+gH!7V;;}kU?(4{nVIRjOifG$lymByee6DBB)7*)=IOAg^A zA?*|iCkf#+K)4BT%TvNlfx8Xx=C6j%4)nl8v6mExs)d7sp|F7zNC$vXVEzz9^192~ zF1+K9Q0yyFB?~I2L8UZPrE%!u7*oYj1jP}k;xPQe0Z@<;(vC6VbwD~zTsVyoUW!R4 z#e|yz_nN@nCJ3jA6|)sBC${~{wwliPh0`=|mD92WkQ~f$!O#HCT3|#G!YToN8OAAr z1qwnKaGOI&0WLYXZG&45xb1*h4w&TuJPy&^1^>wQNXk{P8bkp=RnU{wlghq{)Qamp zueE!(E*C(45vEdx_AAhVf>r>L1t1B-0d6-!I0nLz5Vi|$x!_I=-15L=3=nY`<{>+j zLH~QZ2afE2|5j!O{~m*{Z1IdP{lJ-b(_M`#uLd{6QHL~)(O{$_HgtH7!aNwHLD6Sp zqU-e}bA|#Km5)G$_b^%k6o5!Y>E$G7LkeIHU@+wzMfo>$^*#U*g*i7Pu=>U+oIhh6 zR%#6<27J8x>aU;8RpjmSoB0Ua`_x~ftvQDB#3AV7(L1@f^ufkecX*al1gIPW(+V)v z4r`zaj?}bPFV`A-q(EAQzpK{6(RVerP4)U98Uj9uLSq9JU?>+|4^*>H#v*LhJr@A; zz(f;dVl4*WI7t2bcYLj^#RDA+l&+|{YRPTt#>S_f_|I#vVB5xD{o01)@;_hVwWh#S z3C8GJ$3s?Cog}N^qmFAejkOx%x(-xy4NU#Dk@R&1L=_k+!{{79MGzU7D%d)poCAzA zfLQ>KLD*d|Y!UWv+B7ygK6XdX7ryb#VRH_Q0sKIr#&8r!(70G&sPDB#hRQ>B`=@(j z3s!CpiTv0$Rb^Vp$ZHYVRSBf2mnQe)Ko?R#yG%T zFy=wTx=|jtaCqmdTQWsX-<9^hs z=^&>AQ*|l`&lwX;%DG;?6x5g{T@G2L0-*CSM3WL`Q-N|8O$;&*On4B^d}Q{gapd5E zf6w{sOKtN_WzF3q@ETjE06y*nfNWf9)bQqSGj-rq)!+ZPXt}ZzP8`sFO~N%+>kX*R zv})s1N5D+I+^b5cGFyhBQaDz1c?zqjNw*4`)mUX#65J#)vTI*qbTt13s|AmCSO&+N zG~tu1nn{vj00YE2*CBQ3Wq%MNSj{s}{+{LD25A+ggY}6+cuZ5y9+=et+g*sBmL*I(q z9)>Z|pq#QN2-}&i+?l=sV0PW?GA17MmAET6UIh8(_^gs2jpN9eboT!aHw<9B8g5)b zIB-&D!HktKws-Th*&_b*qVJf|kJ{&xdjp{9hB8e0FDy58XXCs@C95GG#nq}Q)ftm2 zfph_+GcbB0GPMtou$XR4%x*%gc^%ZjVH(}D`Kwu9UVGuUg3%dQOD9$Dx@Uuwd5BAI zTe7|B32VaTr|y zX;WjinndtuyfVSVxGIuhB6MOV9B}S{2^);tP{k3L`092|xDfvjbM!L@tTZUdgMvJi zU+m>}8&vU7XiRDXq=V3y^wd(0S2HGV0W1k75@5mukAQOS09BT`1%?1*HG>E}&dQGw zFk=jyag@gPf`RvfOBkJjQ8|#NkX5P!De6i&;eqian2cEEPEF3>7MQTWxdkR97`H$o z24mvAV_Qys^OvJ%N#Hff^ z6?GDhfTDJ6!KfUV+r)@)1CLM4Enq_mRLKBPP!$1gHT05^Vcm*jjEMtG2!O}IcoJNA z;KGC3eH)y`e-auMk60Df6jp0ZSm442lMJ?@e zNACQ-4L{wuYiABJ-aQ2@gbgMnIG5m&TMI7%(&#xn5Z1giF)%)(a3n2QZiAF=YJHF$ zjM!y>aHDV&55dYN*sWJ!`^)dqz?R1zNO-tr;UaU?Z6Hke3fWU@e#jZYOS1g)|HePKFy9CJ|0@1x81bc;|n9`HDk>tGhe#OxwKU z-?FWpuyzG)63DK3^LM{_{_ysF;7UhKhX%%ZD091^3x?3MaOKQi_K`CItV(Bq+kS6( z{9Q1S3QIa}fpZsjY$*=z8bEGn$G^o~{OzhgzS|!v0D=G=%{LhUcHOLEe&7WR7IvU} z5r#*GaP`ohtq+t(kKDKPqVt$+>xz6K1a7A~U<|)u|2ASB*L-x2<&0d~a#tAbFRx^F zfe8?fjpSXSw01H0fDE~Y^vmJKeVC3z+CCcr;tE~lhHngF5V9yNP)0prj zyvTV?6l32$42U?&$wqw9_`&D$TYpjXUw;WA*#-%3g^&%)W_b+13sCtweRQAHV_D>e z4!vu0b93K6Vdrh-!sNmQ0B*Y{eAjbte*mC=oaPnv+mGG&&u{()w$q`fH-TrwZcMoH?!+LX#@LD9TG}q8 z8=KOEGqwGdF=)MS;teUVHdfxTu_3)5+=}&#zVq!_lr*K2g?C=P6a)YDrG`e_5^F^! zpXtQhZH)*P-klXTZi&?@YbtrS+WQWwHUS0j~6k z|Ndk*#-OxDTER5i_^!hbZZSx$R7$;YB0pD3;eP=y5h8j zaB^>EX>4U6ba`-PAZ2)IW&i+q+O3;umK>>)h5xgPUIO#59Khh5-a#+Fze}Ws(o;>R zyRwuK^6+rSF|#`u$esWB@9X}H|5_~7<@kl7GMRX9Vf~YA z2<7*a|EBoobof4^_{R@oB(T3e&exxNt>1e-Pd9UAM(bBbdG~F0^c_y*B00UURel9`2Kya7*|y0 zG7Lpdzd4J5g!>h@@+SD(&sX^UPx(Wt62bDOx$}V2ug@h`2|scxy*MY%E4+THBDiK> z7hsCGcVRFg5dmLADxn77Vr(HWkDUNbMjlg+iwJ~LqA|#r6V>8c>{0jTJ1x9(V~I8D zFxW&ON~)<58)}MRnL z+)J;$_1;IHBaQ?HmQhC=eT*?@bdwuRt~EJ-a%9DoR$gV*)mC3)%}x63yvwe;?Y_sJ z7A+YtVbz*-8#YgH2c$Uplv7VT{fsj&xpvddx7>Q$?RVVyJ!)T3{g0o25w-9YwfG{X z^V;{Qan!Z;?Giz7QWP^H7IPrtO%WiWqhjWJ$T=!MY`3>t z=4#~pUiXyQPPkU5nHZ+<|KGm?Y$b9(bMeItv99H+FGrq+gCWN*t)%xyZ5qq`>v;_)GrfS*Cti+PQ#3W%PU@j51<8VtJ~%jEC;B@jiy;z>Ty zaxYxeOL^1(4_*`b&)3Vl2t%ID$Y#P{s$DYQhr^S_Zu$6Ctwd0e>`rlCkr|(_Tn~aQ zrERs^s$=iVeEQxAqdDf;O0h^JXQo>0Oaf*3`g+GnOz^IDb_zY_eh6bLq(Avw+F@?n zY;EpZg3Ct5j9n?AW9g7iweC3MIc688O|!-|%k`Pdl|+tqz`7?&>T+pFuXFb7j-W;Z zcC4?x@+Rv}8~3(4)=?6cyLvun)xAB$-$S%mNV0i)qjH<=awja{;*a;5f`3{O;S)?H z_pQWuI;#YMO1}P*fc4B-M!O8|?sTV>^}EdY&8vHF0KIi#JgTL>u$FNEk$orAJy8O^ z&qjVue~HOV4PdEbaDpnL43O9@VsUCNmsAHmW~Y#@_;P?cgM0ulPRfhurcE=NgOAvId0f>K2p7zkHYqa@pPEUpI@aMr1^DP_v$T)x<=sgmX3Lq2<$h}* zHR}K~bLE>UEQF1N&q**Sdw+0h6(V z4_F;QHjc zUp=h_)GxpvHi&sW*xVG{unS2EOW>b+jNwiI^niG?A-K;4r`m;*!bXH8dniqaq~iOB#hdJB3W*$HbBssvuY`BdSJWs0-`jFC2nuBZcNT3-jRW zV%!T6URJP-;PT=L#1;rz2@^nu`dJ4&N2dd61?|n{vknVXnN{#+ILQpK21T~X!a)Wa z$%v4;GR9~sh-%hL=2R+xqVKz1()}Q^7$8KFV;zWyJ(+u$fxK=svDrIKnZ?C7|h*!|-NJ z6cN>epeiFh#bk+^@r9hBch+LaQ4TwkMke7V2JW`Dz;Fu;a6@2c4 z(xH~lTA(xqjlTPQSvi0RKU6xi{qSf`DJ^KaHx%-=PKwS!CKbC% zq%2fefY;J)cn-BbAj1p)lN*3joje|JJu)!PUq&N(q%+2)!S`)1bh2)Xa*Pz615-h5 zplrjKYBJgQ;2Me#^#?JooK|b7N=`xT*@2EH)eHfk$~CaLjyaxSMv|DLnz}&F1vr#^ zD)LP|0Rgxsu?Z6=%a}3Z_LQ?P4P{k$Y%C%w z0IV$dR7&n7&j6ln`6(gEYBGz$@VEtI3g6T>zO>bY`H|Tpv<(-8brPef?HzaTUY`@v z7&zRO5|)G6{mNrqw6&p&rSwW^C|fLHlwc3C7u;*ty$t7ppb;^EewRkd$%Qm^uilgA zAx1@Xi-GpXdcAM*Xgp|I2gUXd-VQ=k;qwJ75Nr4#GR+LUE!ZaFBGn{v#$MMDz)0ja zGK*jhp3tGX3f6O0z6@qHsBo-EDNN}q{sYz!MU0p;DPk~7rkY7bd%^`6d(r`y9j9%a zIAo2JpgQ}4c7jqCOFl2&Z-G9DTEyr;Xmo^s;+(Scu#!7V65R#uGA`7 zqnyVoQfev_W|Zs#6o4=uo4mtl`-9qGlG_UvR7b=PZm7qsw zrwh`d9(2q1$TnD-{ zeHt6ZSrMN}he>aD$)R?njxKhDCm`Vvp#keS$5nEYs*&O$4IUv(WSdBmvR~)%iz=qO zg8#iuJ&dgh>idA0XaT|3%l@OHq@b7zPmu7M5Gu5Zc|q+E1ctKAyAqD{wV&iGrHfM` zzj54(AVJ>Th>2mI)e+fN5FdyivKgVhf}UTgvoSSbnB|Cw736+~T9!Zz6+e3!0ppEr z8q5>6=>aHaMT%#xj1$7}?$*6aShsk9G6WD3yf748!5WCw)kh_ns31*EhKdpT4JK{a zaYL?wrFb0FSM1jjFR1DuBSiyKlWRQ>a86Qf@<^QX!RDBa?T7qEyLgCBNCNUSLrxe5OUWm1CoiEXeneW=p*{Y);1!^QM!(j_XHB;@gcvB^~kME!?0nnwcyYQitC2saN>HJaUAU~w0}pDDOyHq;wfT$&a+673 z7;JIKGVD8ni(qz@`u$#oNeVcNR7v)SUilkTq4$IvXf_g+&m<#sDgZr;`|(Y*`t&4U z0tmks@cbN?)PCQl)^%lY;PavITF{BH$aNV z)Gq?9^_Z^SMi=sA1_>3L>a1aUP*S5+=xE;%F^y{3AgORGSZ8<@DM)-T!$F*{6A&~| z9@bJEDhla-fENZ&=1ZoKkUZKT2d+O3zng+zr#LV`J+?jj{pp%5PGrYMc+ZGr1~?i00vaJ) z=+`b~%w)*oAWUK7;vh=AIVWFeWRpTD(;L*U;9=FKe~;8cL+(rn0h3oTZ8b;_^y@(_ z5N{4jBzj)erFi1G3UA;abeX0d3BLs&SABCJ8#E?iA(uuvAu~)1fqNc|pY^vsh$t>w zUG0XOL4q!IijWAe)d;?PO0s?mNU8yo`^0}y0orjQbrnb);p26aiWcaDK5?=8>&sN^ zd}VGb_va5@fq%a`Vzdp2W|_3_AO{MTg0#O(aKYq~)@wa~K{g_ECKteY5dsMg5|6sj z(>hr+1afRLig?vg^@~*2%Cjlo@e|C}Y$*MphD}o5^rH^GI1jr*yHCio&!}y>T6-+`5D4xQxmziLmHld=&419lCOr>V3g*QP4b~g z5v+`!#GL@pRn5KE#X{7p?Mzbfa1JdQ4mbvBv~#hL3C(z(TtKU%jHwc)_>~E;`&2hH z*pZCtLZTV~IDp@g^OVf{CKAuyD<&Jdr;1Pn_oGX>(m_Liik5PxpiS#1OgDmWm*f)B z(=r9+qLr?|e6*&vYXKHhK#827(@F%3c7h)WvD%`3i%U+3Y=hxic}hYqcZCbhG~ zS63@ZA9W`Fk`7087xm)tLr6abBnGfbHfD$tsW03mKwM%EuWT}T;HTX7fSI=X_n30P zi6O-anS|)}CU5Xya32sP#i7ud&sps$uE}g8g_+6mG&NkDJxCLX5wnOTqQDFd36HBA zkL8zqJ%tAat?&e0<%BY0#0QHegTrIJut7Z7TKrC!_!5$y^PGXNH^P~q;DtgFut)7c zi%2c4pBEcacc|Z>rSxHOJ@dtcl6y$XDg<3eKR6uN@6+*k~;PtHpu(p`Z&&NUK=4R#!>oO%=f|>fi;q z=Bg`uANEkNxM`eMzTrx@*VYOqdv?lSRw#Jpru|5GlEqot! zc0C!KC+XQ=&4gMJe>hmCjKc|G>LlmtD*|n!%C}Iz@PJ$hQd-E+UhzFuch$$8T4q)a zkU8^JWNxGeYr0c-I0i+2@&U;`vRFbq~^0nBCa;^D=eBs#ppDru9 z|I?}wu5+47#kP}6@%4rGv!G03GZ_+GHl=f|h0n*m=dKkb(rx71P_HCW*9sb_QC)(* zhxQ#vdF6%PLsz3Fwe{kp$O8>xi1Fp2#~n+$adpL!=#dFbr3BO!)E@E^xPy&Li;NZi z^5bQ6Ob7Zw$0lU+Y@iB?^biGR5h}$RFE6!3_PWv}X_=OStLP}X4y9pJ$yam`MGl>S zC5a1@7l`Z_foXM{2!B&cgPK<(YAfPY&JJ1|S5xHa9u!MxBD@!7ZB1zEa1m@~{Z5La zwd9$-B$R`F-Q2zO?wOF*r3)Ujx2F9OJSro{H{x&9h(vttC#<*~SiMEoAVd&XnOi1$ z?*VLDeycKS8zf1VH{tEZc^37ygBtRDk%?3vCv>oebHGdOHi!;=!z}G6`N>?PH^_Q* zD9cf!4YfQd>LllWxRiQ8JE3zFf4V=@BImN(lcUwsuYd zSiJ$!V%_4tn((Bs*ara)4@0K#Ab|w^3g-_nf0MO_W57D;BCrt7cnlsEd3v;RY&en# zN|6ws>H;?&Ee~m@7lciYA`Wk=o(IChQ@_O!2YPGvMaeNvBpgX?7lUB+9Wh6 zpu{6+y_|ZWu5bP9_5hhf6H@^Y<$4fK+}7 zfZQrYojDIq<6sBRiQ&fZGGB;?hBEMB!t>@oi&Rlwzfi3(B~$%P5Rhk~Q(we?064e7V<*t1bb zT0n42!|sN*=qIZwoGMAn_|W@7+kpae(Wk*plxluElG7M!ECBgjL?gmao2zOFJ{1)4 zyjt{_A*hkz-{$5qv}KcY#RcOcI>FVR6if(c*uAO`cjwD>MS1893w%xV%H%lCJggdK-wBA7!zcdc=34wZjdT^OOem?{Jf*!uXhf(Z-SAa|CMBnaq9RUM z2<_ClnEV>J3ZXB#pRF-b1^f6IPH^H|vau;n%G0($i~ZqUkLxnQm#j#_N5L z2($KxQ_((H5S2s}{o%tm%%VMIoXOt?Vzxaf#6~uYh>;OoXb?Gkj+#d(94*Vj(c0h( z2mmGcSF5p#0-~HR*&7h3DF_xQ6*Z=Wp^oto6jBhayhsm7D=?O=dl}3})U_xHWIv-l zebK%oB96itF=!=Cn+~$;YTlPmYqb|`i6Nq3_R#8ZMU=KQt9IRCF^{;E>CRfU>i$`h zd7CGFjswAA`CAvrf}FwJ4iZ(X_)Rvn9&8^qgkT!v4B7uYMGwiGNfr83gio*T8ix_VS=Cxtg2rmOI1S#34bvW1!!L0ccl{R@HC z2POc6cwy?_VK99Kz)6p_V1roo1-rwmGuk5&yjrgV{=z%w5m5K{Z5feT`k+=qC}I16 z9I6P>95*C}B$5{~De?qDmku(>i)e${nm(yXR|<|cgRW896X$i+#n#5pcPq67$5ibm z$CQj0!C*_v&mX`okVvoEJgJ^2RP?rkkdYaGfP$jjnL7C_tg8MVoYumv4J&(3Z6%>H zmNwx~|I9Gc5OyHIS}BT6&zE}40kJ~yBLXvwfik$jNP7=Y4Qj~v71I`D+$kQnV60MT zRJnHOG&RLRFQ|{0G5PXurK85R6~nDH`QpN-Xwy58Os$gHL)%4U%K|B+68i>aKPQp0|+z9(w6?Or3P~J_ez#+A(U{0P-Xx zlSP$a7OMKwL5rr1%tjyitR4qO9k9XMHnJybx5FDvMz^24PwUHASK04kO!7j04cY({C? z3W-47ATENG6?ZI_PO|nCnje^vISJM6p-5rRbRFh`0Yo>52pY7AL!$edz zwT-fY5;k0cIGwi4rFahFyg^|Q{o5NBJQ$i*xUU5QdSYO;dHC&ihd2U+w9r{_Wxv`m zLCOr*GW@MxJK5j~tVd$b{+6Ft)@nhA48GR1^l!&LD4wb4)iZ;tk^IO-tvzPaI|?Ng+Nb9y92I#E)E; zU4G+SbXee-VIz~8Ck_*f#SWG`n3W8bc#1fps2b%9S(g>gTb$KOjkWH{Ul_`3D`~FN z97Y^VNFWIjGHNKJ0t-=EHBwBZXg}uRA9DOja>?W>gOOtaRj800KlmT~?$#_!PPj>- z7|{J<+aDu9U>9iCZTtJ!wwot_{~5T_+Wu+-nEfQZ-qs>VK;JfSaoyJBJ>YT&7<|$t zLvkcPO`%W#-p}Zpa=^eX(6i?D*4oGE1CXJvmT!QALtwN>+3Ozf4tDnT@0nJAKUW@d zoO;rXS^xk524YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2jl_~05>rby)d8v01tslL_t(&-rZYykQ~*0{$BTcuX}oqot?dRwbG&siJ%A+al~MZ zK{nysg#fA8PEi4qR6-@LGLA#JoW#blU5+WG>`-=sUB+d{4iv&JgF%$VjW||;)dAQ# z&`M~vxAvTwo<81@Ke}gTS4cuyc{e4!s;AzW-k$Ame&6r=eZTiwWO#TOjg5_%?=d{o zhj({w1pxH!+tF0Wd*_{d-uf4`*7(?ln~_YV=lveSFob~x9@&}{gb1(kJn#0syLT=0 zp9fvYKSl^a_v_C?YuzQKTu(p@LWo+(dswgt6A&1N0XvaQP-cCiCfm^NdBqDBI>HMF z*dU;cgK_)nmeysdj%BM61b&xo@v{@KX;M7$@xud81?95@) zH1W58c^k=3P27}BWnfu0Y};8Qh3Eiq@T`n5Kt95FqA}s5V44)otsTVo-5U*qoPCsj z<(21=PS@VVxD99xDFqfSUJ9jD*Y`Jm`RoIH(fW(PnAN4Egp?9WDb&?BfN}dW4V^pd z0K3J)>WT5u6_#Z~DG4bAC}U`8?XbL(`^mEc@W^l<2Ksw(%MF*JSjgX0a*G52q!ds} zLP?3X_6|rXIv@Dj-{ZBHHlus%7APgpOqDJcrV;oa{_(!AVtQ(#lUp`aOlPH{V>VX@ z%XU6V48s~3I_xvXq4gOWVc+xMm0T3_(=CPk^u>&ENGakOz9-#iJe)tL*}^E?#ulb9GA=}e|F zF;EF11w;&1N`abeEhw{YT)yI5GS2~?=Lq{Ac5dI6EP4KhgyTTQV57*&3bn()M|;Pr z4!4+Jqt9f(VHluToW5q!lI3>b`;j`&1S_H$_$9Qov_php7h~p`3;1B~Zlu%MuGZG} zs#whgE2E!<5XjVI0ibK=_BYO4z^P1z);G3Z?<7+d`ic*L4I!mKsZ>D6vNdb9((RbX zM4n%#rS;`YSNuV)ke`4Q5<hszRLfw?=Q!t(GVJ`;SMHfVry8;o&bCmdLI0?lnpke{09)LO^Qf~=Sg ztt6yUvFnnR+U%7IsBc_+#bsAsbMDaK!IJNl;FVl>C6~Cx0^DMrxWzmQ`DqmLQy3c? zM&NrUw=9xM)ga-dj6}kL?KmWnaENU?upI}9L=v`>B5u)@bXQL|uc@v3?`*DaZ9`)V zpb3a!f>I8~Y*@Af$4SHUJUFQW!XSWQ5OB)^=N2fXV4Q<779Tkn=iuB%bL$ce^&hGT zmWn}Ez)A@jdupX5#*YkP-NheGG`B9=9rzvs-$xh(2*WVGUIQ>-QU=CtWNPXG0G4IJ zPB`G)f@N9YmL1(2w?HY!_}ByvZQt2HaJc_=vU|si=}HI`+N_TB+!LC8M9qGrr;S>nMuRF$lcsxe7oP}L-lo6TVC$T-~M#GT1h z&4cSNy)pr!Aw@VF>L}XIq_3Qj$5m4jA`C->VSq63VhW!is)WF#43sjYGqnf< ziTC#G+2(n{?H68h#ruErxi8Lee&GlE;lBP6v@BXOIWazR%i!VOFHBD!`NqWJJ6_vb=t{0UrsiNMZO5q5ok1!0NwK^_XLZV!yCIe+0$y5g8qhlBv9Qs}m zgr841)c@2Scb|M6uFW-SspPjyZvN`uz1=;OpPq{7e3TC^i;9ea$r)Xc6k)|#MYT7K zO-Fo9OxrM~uJ3#BJr_aX#|+Z5z*c}7ky3MJ!Lp;WbNJx<#leBWPa6jANo5lLag9ec zD|9S))nogT<+%K#m%mJa3;PcK_N9@bzGM2}G9ATHUqbnH^>?a5Bt=wif*?Q;c<{Xv ze9wgt;Vc!7fL6hprUA-0IJe-WGN2~I`}+^Cga1eMA&=U$1foYnc zjDu2&bS8)V@*F@>B*Y1w>e_ts?Y4 zwA>hGHZ^v0il=C3N(S5h*5!8kv?2+tf(|MG{nVVDmp zrSB>fiWO&dG<{X2B@7|Lup&@WhR2U82n>V3G#MykFeyb{eKWkGi@pQBTS|WLsf`ak zcI4C-Bu?WAfJGgvydVrdn{bkMHa0bvtVE)sz!lnt)iM+KK0Ln!&vQ=*ww$YsSzz3P zWhKzs+JT9YQFZ9R{;&CdaP0%%f8@xVyQR}&`Lc_nbp(O-1eAhm@7tx2aZze znT~0;0?(u_KtK!v)1;uWkuXdXEv<{OfA_m%`F#E_f$4McKMX5~X5BI@wxuFauWiaDT$23hCh6%%_x%$>d zrPQUrkEO0TM_3AhAc!1X7zAC(WE$f~h9e4x0hCg4sn91VH!~@0!Z0aJ!-QcNQFKiM zT5CAT43tLa%4LgQ{eN83ilQ|#JOBV)hH1j{t3J3aP6V^9Au$LjW#G&PV^$S3WuP(e zsMU)oZJNrAx3NsxdqN6*F?>7 zWNAd@nPN3-Qiw1_I+G<@>l@Pvy|93llJH6{01c%8+e&n)<8(J51cqsV(P&YRF%C*O zR;<1NE6%$xa#6iWi4?_F5Ynj9a)%g_A+0D+xwlEfh!#>S2u zciClTxk)%Fw4bvIuf4K0D7htd)h9OC6JvuAp$}r1Fo+QgmJzX{Qko11Ay8Y}bkW4b zNK<}lau@&-P7;){`He6kh{^|J;M}@0lg*_E4)-2aZpu&HS)e>>=jt0T=y8loVBAG9qE(+=_ZvlVQ=~<(QuKvH6K#JS#=8t|pV*x~Q#Tms0Yg z-#qo}$9wl5LQOVTSze_yIvR!nGtPh0Fp)}Spp@zy8!vzmb769rAo9C*B1!E;^7`>3 zBNbtyG%^v4N9D${Y_xZ*#IBw1sO@jQen02zPqNwMh)E3;To*N2XNpqe_P2NR-23uN zTLtF{Fvco0F6VYslcVxvSHdvN@b3Q)>A%a+etxBU_SKkEBlX&&T=U-PcxUeplc_x)k9DiFiX<>1D z(<@5Jb#H9l`ux7#d!V(RC0b>xnXRpd*63WlyaRK2+=tF3hm~Q2anUt8Gyu*Mpp;gu zVlLN!{qOZ+WN6?!oY5~{eA&l>qU%=-iG~I=AXW8d5B2WGhs zSxM~b*`5yq@6O`%;HDpKI=S8aAAWBm-r4ag!cZWQV4@VLFBPVzUVF3qji0VuwK}_G z*>X^W!7vRtsWg(wRCBSIzXZS=^G@k>O%9Cn&Z&uUC?(^yrZmDp;hh~lyOa#qPvoaJ zZT!L0b2bM_o5BtJUu&(_y|??fJ-goQhU*q0yGa=un%clE`=-SmOXfd^hXxOVaqH&6 z{`aF5|702?gTv@Mxc_0s*dJfG_T0Vgtxc!h#?{uOvHYC2112>un;ai|sOPnpFx1}% z!!Xd;)CMP+?)>h*eQ7~Nt5t;IAB~L;f}0G7dV5R7{N!CJ$GOw8O?UUc1M#zxC!b!? zmaMGKc(3YU-vB_gXFKL!E2-|-v+FH)&#oS1vbEsMT4h^_74w?IC3g~1i0ej&`e~_H z#MtQQdxVf%zy95y@AQ3d1_B&&iS&5mj=TR3THiCH(tmJRw*8ZD-uKzB{rxC&K-Q4SDB2ll*sJpp-D8yZUK z%5v;N0hUU^3p|~)t&OGP!pU4Mguwp+GcmXE$B$Rn00000NkvXXu0mjf D%%tSh literal 0 HcmV?d00001 diff --git a/manga/init.lua b/manga/init.lua index bd16567..d229e8c 100644 --- a/manga/init.lua +++ b/manga/init.lua @@ -35,6 +35,7 @@ m.getManga = queue:newFunction("queue",function(title) local http = require("socket.http") local manga = http.request(title.Link) local tab = {} + tab.Link = title.Link tab.Cover = manga:match([[
%s*([^<]*)]]) tab.AltTitle = manga:match([[Alternate Name:.-([^<]*)]]) diff --git a/multi/integration/loveManager/extensions.lua b/multi/integration/loveManager/extensions.lua index 9c53733..db99a10 100644 --- a/multi/integration/loveManager/extensions.lua +++ b/multi/integration/loveManager/extensions.lua @@ -135,14 +135,13 @@ function multi:newSystemThreadedJobQueue(n) end end end) - print("Cores: ",c.cores) for i=1,c.cores do multi:newSystemThread("JobQueue_"..jqc.."_worker_"..i,function(jqc) local multi, thread = require("multi"):init() + require("love.timer") local function atomic(channel) return channel:pop() end - require("love.timer") local clock = os.clock local funcs = THREAD.createStaticTable("__JobQueue_"..jqc.."_table") local queue = love.thread.getChannel("__JobQueue_"..jqc.."_queue") diff --git a/pages/search.lua b/pages/search.lua index 7a2a985..5dddfbe 100644 --- a/pages/search.lua +++ b/pages/search.lua @@ -50,23 +50,140 @@ local chars = {"#"} for i=65,90 do table.insert(chars,string.char(i)) end +local onNav = false +function saveFavs(favs) + local f = bin.new() + f:addBlock(favs or {}) + f:tofile("favs.dat") +end +function getFavs() + if bin.fileExists("favs.dat") then + return bin.load("favs.dat"):getBlock("t") + else + return {} + end +end local function init(page,workspace) + local favs = getFavs() local holder = page:newFrame("",15,80,-30,-95,0,0,1,1) + local nav = page:newFrame(10,10,-20,40,0,0,1) + local SBL = page:newFrame(0,55,0,40,0,0,1) + local mangaViewer = page:newFrame(0,0,0,0,.1,.1,.8,.8) + mangaViewer.Visible = false + local cover = mangaViewer:newImageLabel(nil,10,10,mangaSize.x,mangaSize.y) + local desc = mangaViewer:newTextLabel("","",15+mangaSize.x,10,-25-mangaSize.x,-13,0,0,1,.5) + local chaps = mangaViewer:newTextLabel("","",15+mangaSize.x,3,-25-mangaSize.x,-13,0,.5,1,.5) + local dets = mangaViewer:newTextLabel("","",10,15+mangaSize.y,mangaSize.x,-25-mangaSize.y,0,0,0,1) + local menu = chaps:newScrollMenu("Chapters") + local goback = mangaViewer:newTextLabel("Back","Back",0,5,80,40,0,1) + goback:fitFont() + goback:OnUpdate(function() + goback:centerX() + end) + goback:OnReleased(function() + multi:newThread(function() + thread.sleep(.1) + mangaViewer.Visible = false + end) + end) + goback.Color = theme.button + function setViewer(manga) + menu:reset() + mangaViewer.Visible = true + + mangaViewer:setRoundness(10,10,60) + mangaViewer.BorderSize = 2 + mangaViewer.Color = theme.menu + + cover:SetImage(manga.Cover,nil,"images/notfound.png") + + desc.text = manga.Desc + desc.TextFormat = "left" + desc.XTween = 2 + + dets.text = "Title: " .. manga.Title .. "\n" .. + "Author: " .. manga.Author .. "\n" .. + "Artist: " .. manga.Artist .. "\n" .. + "ReadingDir: " .. manga.ReadingDir .. "\n" .. + "Chapters: " .. #manga.Chapters .. "\n" .. + "Status: " .. manga.Status + dets.XTween = 2 + dets.TextFormat = "left" + + gui.massMutate({ + Visibility = 0, + BorderSize = 0, + },desc,chaps,dets) + + menu.BorderSize = 0 + menu.scrollM = 4 + menu.scroll.Color = theme.header + menu.scroll.Mover.Color = theme.menuitem + menu.first:SetDualDim(nil,13) + menu:SetDualDim(nil,0) + menu.header.Color = theme.header + menu.ref = { + [[setRoundness(5,5,30)]], + Color = theme.menuitem + } + for i,v in ipairs(manga.Chapters) do + menu:addItem(v.Lead, 20, 3) + end + end function addManga(manga,v) - local temp = holder:newImageButton(nil,0,0,mangaSize.x,mangaSize.y) + local temp = holder:newImageLabel(nil,0,0,mangaSize.x,mangaSize.y) + temp.Visible = false local text = temp:newTextLabel(v.Title,v.Title,0,-30,0,30,0,1,1) + local onStar = false + local fav = false + local star + if favs[v.Title] then + star = temp:newImageLabel("images/star.png",-40,0,40,40,1) + else + star = temp:newImageLabel("images/unstar.png",-40,0,40,40,1) + end + star:OnMouseEnter(function() + onStar = true + end) + star:OnMouseMoved(function() + onStar = true + end) + star:OnReleasedOuter(function() + onStar = false + end) + star:OnReleased(function() + fav = not fav + if fav then + star:SetImage("images/star.png") + favs[v.Title] = v + saveFavs(favs) + else + star:SetImage("images/unstar.png") + favs[v.Title] = nil + saveFavs(favs) + end + end) + star.BorderSize = 0 text.Visibility = .6 text.Color = Color.Black text.TextColor = Color.White text.TextFormat = "center" text:fitFont() temp.BorderSize = 2 - temp:SetImage(manga.Cover,nil,"Images/notfound.png") + temp:SetImage(manga.Cover,nil,"images/notfound.png") + multi:newThread(function() + thread.hold(function() + return temp.Image + end) + temp.Visible = true + end) temp:OnReleased(function(b,self) - print("Manga",v.Title) + if onNav or onStar or mangaViewer:isVisible() then return end + setViewer(manga) end) end page:OnMouseWheelMoved(function(self,x,y) + if mangaViewer:isVisible() then return end holder:Move(0,y*60) if holder.offset.pos.y>85 then holder:SetDualDim(nil,85) @@ -74,7 +191,6 @@ local function init(page,workspace) end) holder.Visibility = 0 holder.BorderSize = 0 - page.ClipDescendants = true holder:OnUpdate(function() local c = holder:getChildren() for i=1,#c do @@ -84,16 +200,33 @@ local function init(page,workspace) local size = math.floor(holder.width/(mangaSize.x+5))*(mangaSize.x+5) holder:SetDualDim((page.width-size)/2) end) - local nav = page:newFrame(10,10,-20,40,0,0,1) - local SBL = page:newFrame(0,55,0,40,0,0,1) SBL.BorderSize = 0 + local FAV = SBL:newTextLabel("*","*",0,0,0,0,0/28,0,1/28,1) + FAV.Color = theme.button + FAV:OnReleased(thread:newFunction(function() + if mangaViewer:isVisible() then return end + holder:SetDualDim(nil,85) + local c = holder:getChildren() + for i=#c,1,-1 do + c[i]:Destroy() + end + for i,v in pairs(favs) do + thread.yield() + print(v.Title,v.Link) + mangaReader.getManga(v).connect(function(manga) + print(manga.Title) + addManga(manga,{Title=manga.Title,Link=manga.Link}) + end) + end + end)) for i,v in pairs(chars) do - local temp = SBL:newTextLabel(v,v,0,0,0,0,(i-1)/27,0,1/27,1) + local temp = SBL:newTextLabel(v,v,0,0,0,0,(i)/28,0,1/28,1) temp.Color = theme.button multi.setTimeout(function() temp:fitFont() end,.1) temp:OnReleased(thread:newFunction(function() + if mangaViewer:isVisible() then return end holder:SetDualDim(nil,85) thread.hold(function() return titles end) local list = searchBy(temp.text) @@ -103,34 +236,41 @@ local function init(page,workspace) end for i,v in pairs(list) do thread.yield() + print(v) mangaReader.getManga(v).connect(function(manga) - addManga(manga,v) + addManga(manga,{Title=manga.Title,Link=manga.Link}) end) end end)) end - --[[ - local temp = holder:newImageLabel("images/test.jpg",0,0,mangaSize.x,mangaSize.y) - temp.BorderSize = 2 - ]] + nav:OnMouseEnter(function() + onNav = true + end) + local function exiter() + onNav = false + end + nav:OnMouseExit(exiter) + nav:OnReleasedOuter(exiter) nav.Color = theme.header nav:setRoundness(5,5,60) - local search = nav:newTextButton("Search","Search",5,5,60,-10,0,0,0,1) + local search = nav:newTextLabel("Search","Search",5,5,60,-10,0,0,0,1) search.Color = theme.button search:fitFont() local bar = nav:newTextBox("","",70,5,-75,-10,0,0,1,1) search:OnReleased(thread:newFunction(function() + if mangaViewer:isVisible() then return end + local c = holder:getChildren() + for i=#c,1,-1 do + c[i]:Destroy() + end holder:SetDualDim(nil,85) thread.hold(function() return titles end) local list = searchFor(bar.text) for i,v in pairs(list) do mangaReader.getManga(v).connect(function(manga) - addManga(manga,v) + addManga(manga,{Title=manga.Title,Link=manga.Link}) end) - -- local manga = mangaReader.getManga(title) - -- local page = mangaReader.getPages(manga,1) end - print(page) end)) bar:fitFont() bar.Color = theme.input