From 1aebca62e5eceba568b9be98528f6e545fc458d0 Mon Sep 17 00:00:00 2001 From: zygzagZ Date: Mon, 13 Mar 2017 19:45:23 +0100 Subject: [PATCH] Added PvP Friend Healer (only spell currently) Some small bugfixes to walker and settings loading --- candybot.lua | 2 +- classes/lootprocedure.lua | 2 - classes/moveprocedure.lua | 13 ++++ classes/node.lua | 4 +- modules/03-pvp/events/healer.lua | 50 ++++++++++++++ modules/03-pvp/pvp.lua | 17 +++-- modules/03-pvp/pvp.otui | 110 ++++++++++++++++++++++++++++++- modules/03-pvp/pvp_handler.lua | 16 ++++- modules/05-paths/paths.lua | 2 +- modules/05-paths/paths.otui | 3 +- screenshots/3.png | Bin 23565 -> 21786 bytes 11 files changed, 205 insertions(+), 14 deletions(-) create mode 100644 modules/03-pvp/events/healer.lua diff --git a/candybot.lua b/candybot.lua index f831ae1..df32897 100644 --- a/candybot.lua +++ b/candybot.lua @@ -166,7 +166,7 @@ function CandyBot.getWriteDir() end function CandyBot.getOptions() - local char = g_game.getCharacterName() + local char = g_game.getCharacterName() .. '@' .. tostring(G.host) .. ':' .. tostring(G.port) return CandyBot.options and CandyBot.options[char] or CandyBot.defaultOptions end diff --git a/classes/lootprocedure.lua b/classes/lootprocedure.lua index c13d99a..c4ec905 100644 --- a/classes/lootprocedure.lua +++ b/classes/lootprocedure.lua @@ -179,11 +179,9 @@ function LootProcedure:loot(container) -- it is most probably this container self:useContainer(cid) end if item:isContainer() then - print('opening bp... from container ' .. tostring(cid)) local proc = OpenProcedure.create(item, 10000) self:useContainer(cid) connect(proc, { onFinished = function(container) - print('opening bp... success! from container ' .. tostring(cid)) table.removevalue(self.openProc, proc) self:freeContainer(cid) self:loot(container) diff --git a/classes/moveprocedure.lua b/classes/moveprocedure.lua index 68f34bf..cc585a2 100644 --- a/classes/moveprocedure.lua +++ b/classes/moveprocedure.lua @@ -99,9 +99,20 @@ end function MoveProcedure:tryMove() self.count = math.min(self.thing:getCount(), self.count) + self:highlightItem(self.thing, true) g_game.move(self.thing, self.position, self.count) end +function MoveProcedure:highlightItem(item, enabled) + local pos = item:getPosition() + local container = g_game.getContainers()[pos.y-64] + if not container or not container.itemsPanel then return false end + local itemWidget = container.itemsPanel:getChildById('item' .. pos.z) + if itemWidget then + itemWidget:setBorderWidth(enabled and 1 or 0) + end +end + function MoveProcedure:onUpdateItem(container, slot, item, oldItem) if container:getId() == self.container:getId() and Position.equals(item:getPosition(), self.thing:getPosition()) then local countChange = oldItem:getCount() - item:getCount() @@ -188,6 +199,8 @@ function MoveProcedure:clean() self:stopTryMove() + self:highlightItem(self.thing, false) + if self.hooks then disconnect(Container, self.hooks) end diff --git a/classes/node.lua b/classes/node.lua index 55b3c18..8888fc3 100644 --- a/classes/node.lua +++ b/classes/node.lua @@ -153,8 +153,10 @@ end function Node:toString() if self:hasPosition() then return tostring(self.type) .. ':' .. tostring(self.pos.x) .. ':' .. tostring(self.pos.y) .. ':' .. tostring(self.pos.z) - else + elseif self.type == Node.SCRIPT then return tostring(self.type) .. ':' .. tostring(self.script) + elseif self.type == Node.LABEL then + return tostring(self.type) .. ':' .. tostring(self.text) end end diff --git a/modules/03-pvp/events/healer.lua b/modules/03-pvp/events/healer.lua new file mode 100644 index 0000000..12cabfe --- /dev/null +++ b/modules/03-pvp/events/healer.lua @@ -0,0 +1,50 @@ +--[[ + @Authors: zygzagZ + @Details: Friend healer event logic +]] + +PvpModule.Healer = {} +Healer = PvpModule.Healer + +-- Variables + +Healer.lastTarget = 0 + +-- Methods + +function Healer.init() + +end + +function Healer.terminate() + +end + +function Healer.connect() + connect(Player, { onHealthPercentChange = Healer.onHealthChange }) + addEvent(function() + local spec = g_map.getSpectators(g_game.getLocalPlayer():getPosition(), true) + for k, v in pairs(spec) do + if v:isPlayer() then + Healer.onHealthChange(v, v:getHealthPercent()) + end + end + end) +end + +function Healer.disconnect() + disconnect(Player, { onHealthPercentChange = Healer.onHealthChange }) +end + +function Healer.onHealthChange(friend, health) + local player = g_game.getLocalPlayer() + if table.contains(PvpModule.Friends, friend:getName()) then + if health <= CandyBot.getOption('HealerTreshold') then + if player:getHealthPercent() >= CandyBot.getOption('HealerSelfHealth') and player:getManaPercent() >= CandyBot.getOption('HealerSelfMana') then + if g_map.isSightClear(player:getPosition(), friend:getPosition()) then + g_game.talk(CandyBot.getOption('HealerSpell'):gsub("friend", friend:getName())) + end + end + end + end +end \ No newline at end of file diff --git a/modules/03-pvp/pvp.lua b/modules/03-pvp/pvp.lua index 29c0b42..33ff25a 100644 --- a/modules/03-pvp/pvp.lua +++ b/modules/03-pvp/pvp.lua @@ -8,21 +8,22 @@ PvpModule = {} -- load module events dofiles('events') -local Panel = { - -- -} +local Panel = nil +local UI = {} +PvpModule.Friends = {} function PvpModule.getPanel() return Panel end function PvpModule.setPanel(panel) Panel = panel end function PvpModule.init() - -- create tab local botTabBar = CandyBot.window:getChildById('botTabBar') local tab = botTabBar:addTab(tr('PvP')) local tabPanel = botTabBar:getTabPanel(tab) local tabBuffer = tabPanel:getChildById('tabBuffer') Panel = g_ui.loadUI('pvp.otui', tabBuffer) + + PvpModule.loadUI(Panel) PvpModule.parentUI = CandyBot.window @@ -32,7 +33,6 @@ function PvpModule.init() end function PvpModule.terminate() - --CreatureList.terminate() PvpModule.stop() Panel:destroy() @@ -43,9 +43,16 @@ end function PvpModule.loadUI(panel) UI = { KeepTarget = panel:recursiveGetChildById('KeepTarget'), + FriendsList = panel:recursiveGetChildById('FriendsListEdit') } end +function PvpModule.onNotify(key, state) + if key == 'FriendsList' then + UI.FriendsList:setText(state:gsub(';', '\n')) + PvpModule.Friends = string.split(state, ';') + end +end function PvpModule.onStopEvent(eventId) end diff --git a/modules/03-pvp/pvp.otui b/modules/03-pvp/pvp.otui index 2642685..94063fc 100644 --- a/modules/03-pvp/pvp.otui +++ b/modules/03-pvp/pvp.otui @@ -12,4 +12,112 @@ Panel !text: tr('Keep Target') !tooltip: tr('Automatically attack creature previously attacked.') anchors.left: parent.left - anchors.top: parent.top \ No newline at end of file + anchors.top: parent.top + + + HorizontalSeparator + anchors.left: parent.left + anchors.right: parent.right + anchors.top: prev.bottom + margin-top: 10 + + BotOptionCheckBox + id: Healer + width: 90 + !text: tr('Heal Friends') + anchors.left: parent.left + anchors.top: prev.bottom + margin-top: 10 + + Label + id: HealerTresholdLabel + !text: tr('On friend health lower than:') + anchors.right: parent.right + anchors.top: Healer.top + margin-left: 18 + + BotOptionHorizontalScrollBar + id: HealerTreshold + width: 150 + anchors.right: parent.right + anchors.top: HealerTresholdLabel.bottom + margin-top: 8 + mouse-scroll: false + show-value: true + symbol: % + minimum: 1 + maximum: 100 + + Label + id: HealerSelfHealthLabel + !text: tr('On self health higher than:') + anchors.right: parent.right + anchors.top: prev.bottom + margin-top: 10 + margin-left: 18 + + BotOptionHorizontalScrollBar + id: HealerSelfHealth + width: 150 + anchors.right: parent.right + anchors.top: HealerSelfHealthLabel.bottom + margin-top: 8 + mouse-scroll: false + show-value: true + symbol: % + minimum: 1 + maximum: 100 + + + Label + id: HealerSelfManaLabel + !text: tr('On self mana higher than:') + anchors.right: parent.right + anchors.top: prev.bottom + margin-top: 10 + margin-left: 18 + + BotOptionHorizontalScrollBar + id: HealerSelfMana + width: 150 + anchors.right: parent.right + anchors.top: HealerSelfManaLabel.bottom + margin-top: 8 + mouse-scroll: false + show-value: true + symbol: % + minimum: 1 + maximum: 100 + + Label + id: HealerSpellLabel + !text: tr('Healer spell:') + anchors.right: parent.right + anchors.top: prev.bottom + margin-top: 10 + margin-left: 18 + + BotOptionLineEdit + id: HealerSpell + anchors.top: prev.bottom + anchors.right: parent.right + margin-top: 8 + width: 150 + + Label + id: FriendsList + anchors.left: parent.left + anchors.top: Healer.bottom + margin-top: 15 + !text: tr('Friends List:') + + MultilineTextEdit + id: FriendsListEdit + anchors.left: parent.left + anchors.top: prev.bottom + height: 150 + width: 150 + margin-top: 10 + multiline: true + @onTextChange: | + CandyBot.changeOption('FriendsList', self:getText():gsub('\n', ';')) \ No newline at end of file diff --git a/modules/03-pvp/pvp_handler.lua b/modules/03-pvp/pvp_handler.lua index 50f84cc..2927356 100644 --- a/modules/03-pvp/pvp_handler.lua +++ b/modules/03-pvp/pvp_handler.lua @@ -17,7 +17,13 @@ PvpModule.dependencies = { --[[ Default Options ]] PvpModule.options = { - ['KeepTarget'] = false + ['KeepTarget'] = false, + ['Healer'] = false, + ['FriendsList'] = '', + ['HealerTreshold'] = 40, + ['HealerSelfHealth'] = 70, + ['HealerSelfMana'] = 40, + ['HealerSpell'] = 'exura sio "friend"' } --[[ Register Events ]] @@ -32,7 +38,8 @@ PvpModule.events = { --[[ Register Listeners ]] table.merge(PvpModule, { - keepTargetListener = 1 + keepTargetListener = 1, + healerListener = 2 -- }) @@ -42,6 +49,11 @@ PvpModule.listeners = { connect = PvpModule.KeepTarget.connect, disconnect = PvpModule.KeepTarget.disconnect }, + [PvpModule.healerListener] = { + option = "Healer", + connect = PvpModule.Healer.connect, + disconnect = PvpModule.Healer.disconnect + }, } --[[ Functions ]] diff --git a/modules/05-paths/paths.lua b/modules/05-paths/paths.lua index 568b9c9..d9f29bd 100644 --- a/modules/05-paths/paths.lua +++ b/modules/05-paths/paths.lua @@ -568,7 +568,7 @@ end -- local functions function writePath(path) local nodes = PathsModule.getNodes() - local content = ''..UI.RopeItem:getItemId()..':'..UI.ShovelItem:getItemId()..':'..UI.MacheteItem:getItemId()..';;' + local content = ''..UI.RopeItem:getItemId()..':'..UI.ShovelItem:getItemId()..':'..UI.MacheteItem:getItemId() for k,v in ipairs(nodes) do content = content .. ';;' .. v:toString() diff --git a/modules/05-paths/paths.otui b/modules/05-paths/paths.otui index 12bad0b..b5adf50 100644 --- a/modules/05-paths/paths.otui +++ b/modules/05-paths/paths.otui @@ -48,7 +48,8 @@ Panel anchors.left: prev.right anchors.top: AutoPath.bottom anchors.right: parent.right - margin-left: 6 + margin-top:8 + margin-left: 9 TextList id: PathList diff --git a/screenshots/3.png b/screenshots/3.png index 5ad92c5033c844c75d706cd76a3891fe6193edec..71692baca3666edc77a940a6702c86d34884dbe3 100644 GIT binary patch literal 21786 zcmZ^L2Rzk%-~Wk1g)Q5C{aibMnN?1j2>{0)ax0ngTyz zf4aUM|JiawUdx_9psytVvmum^o|Qn@M>t13q3YZ<(d(kC+PW_L<0t#(dmB2%w3wAo zY_DRh7bxhVZT?JbZjmuIGkw7FAR^9i=yKax*{!I~f*rRb1w z@@og-*5VEyB4C>mx)R^<>38P~gQE6#uvBkw*m6aPS zE)j0g^9c%y9X-mhJxFff>tO<+_kdi>202MzDN71dW1W1<&TM1ae9Byz9>0y|wl{82 zZ`~?<^r)?!9iv|r)waE*H@{!5+r;U1Nk>OVQ}b7yV1;gx-RY_)(-rG7j@x71sp^NT zb{fntF0PGdRJ?urR@AcN%k*@AON_YJ+Hb*%-!1RoU+>B_>sY%r%bvT}#>R$IK~d3d zaiTNFq_KQ;QAgB$vMcZX`}aguW#t>AO>sH})>+5ezrORPqT5qxtE;N|InSc~{Q2|O zKR)^T{rl2r^M28*Kc{+k9@f>=*50#sufC2>$@Tg@LP9wgB1IDt6W99-vgG85T3TAf zYnGN$#4hKGldvED zn3;J*^mlD2Ux7`(e)hEwI44gW--lqHpJT0j5)u-B{dM)-13F?zM8xusucu5*Mr1se zRn^pYR)@8@M+# zYH4MRpQMruW#e3 zdM$REw3uJl!@W7;G}VJek@)guEqz9M`hobjZ%F{l}XQ=)2FH=HpAjj=pzqqa~fGnN;I*8Ct91 z*`c~{L4)^>x7t!JU)ez*%+eFEatOCdDG5#UrQ=O;l=+(oqoPawCOJ7d&9>VJqnjxy zDS3Djy$0E^dCo!>YJUluc9=C~ay}iAMhK8!E*Js-eM&{?|LoPaeZ{cne3%#tauAZWi!Qw*{ zv+29mTSqx6+G?`#c}B+c^mL$AYnY3MT287L#$jQs&j`vtu)Gv2`nXHg)ShbUqYSDGAG&Mf{?d#Wa-}|^ZZ_7Oj4^R9x z_3F}dY$hMmf%pEXm-U7D$DGbhbG`ab#s-yy(iC60AqhS+0!qGA!PdU+P%3 zC|l=<{a)*<@4UB3OGz=c>#AD}hs=Mnu&}_6S;qF{IdC9O+g^x_##Y zKVV%>OibLR+9u=qyO8^Ff{*w7^1`^EuW$Lv6prVzXyvC*_Sln(Vf@YWvr$CO-J<+g zMw`L~1SHFshUf3xscz5c50y7x{k_buUn<4JATT}U_344N^d`<50Gf%qmYh_oq zw~L93J1@_FH}G0@c)s&g)zjAb;D(l#*(j$zGzLW%mm(}SWo6~@a5dIor^XnKCr@sM z$a9H^h-}(qjEmj=d30!4=ID{8@o&S!U%$SYQ`OR1sM^U#N4KEn73sfMx~siCoP?YI zI4Vlox<{PT^~aYJSkuA5Dz>&+a?0!MLKBfA9a%=JD?dlX4~vS59y;VhLSMGFv^-DT zv}u#~HjZ-p5qegyxA(SSQ3&wyb(c70ST39}Fz}k_$SQMPICktRTE=C^;3JNJ{X`h4K+}wu`ALitwNRTqsUAlPsRn|dO*E2t)yjB*iIJ2{|g7!Ke zJ$jUqias|hORM;1Qj1Z^DR26W^5x`$f&zIi-ou9j9zG1&n}rV{|M2(Q(wYX3vlgz_YDYP_TNM@SHWjOm%kySMc0>5akM;FpmL0LX z4*F94USIoJLB4p{Q(A>L;{5#Tyg57zjqAexI`!byldt&Vv4Mdd92{OtvqP;Z8e*ec ztr|*G(!;3lv-|qirly|H&|gi-JTl(=e2i*aOLc&r{nxiK8X5XNfq}e-4z+w57^9Kw zY$;JbDCIi;3QM>>T~DjeroVjk`=`W-7E3)h4YL3yCZ@~`8FCLkCMJefmg?u{my~pf zA*Z|GOM zw#hVZIkiRT8{koDQqsAL7qR8S=yl6n9n8!QMaE%G;m{_=4Q5VtKEl;BxpwWDq|?R4 zh*)1r{VBE(l}ndq1_EUt+`IQo$|d{NEBS@3TDH?@K} zS+vl}i3t>VRrkoG!#{-PhU;_k^8Y zK$3*x#6dUy9lI8B!W zi&gzlbA6p6LpwV+_wL=haRvKMv(DYxDk`4}g>nzmc}9PH`&NpZJL?qHYD9!KI&V#l z%>#P&pPeQK9o;&iVZLbhHa+r}?bR)(v+K)%S!j12uB@!Yf$iG0>xWc7R$Y~XA0XF6 z8;jQF&6`mbxZ^*6R_*+nY7w~8!2QxeCT$&^#z?V@^rtz3F#xfd)7+e6&CjXEM@XwH z6P>_Z;j)B1u4fLmh6tVfo>iZ2`g6M9U?$>AoHDodPlv|AW$ zzN^=6KDxWhazTqTJI9{UkB^2{Q9Pg^FVB54ul?T1vN7{>Cr(_wHaHs*VJ9tpN+hG9 zmY%%uP$_(Td?t3@Uv8fstbG5ze6h;{z$t6qgyws@ys7D{q$D#11qFBa(g~f3livaM zfMx9L>^e4GNr=(Mg&1jIS9c=$`R$KyH}HxgrR$f~uK5QBa)?>?yuD8gh%vT&l2X~@ z%s~MOk;Bs=d%Lr;vhwosfKge+taZ26|e9sPI~pA>#L%HihC^YY?O%kx1#JMJ19{nXZclA;sDLY;0< zp+7C&akc5Oa+B>f>{t5djKEaCR!Gi}86}71bJh$bV`W6Ek z*d8q}FE7ZbXVAK6=;=wj&YN0kJ$-&Q(7d@tw4L|oc)JoG%R)wFCeyt2I95G}p(duh&_ zp4~hz4W&xh^S5(b^D>$&%AL+6mGgJsg4uxn5+^~oOIlhk*u3nLj)Q}P!gVzQSsqMz zl`Ix19&v_gSYg>YIosI8_jOaIUO#N_)>wi%cwAh3d(hpxrxGtl4NCB86njfJO-X@0 zg@lB>baMT?54>f5b{0!d!_F?-&rcD(prPl6>a_35%8K{Bd!;}7+!hv}x5WlU`pt`* zdGjouCtq1u9=+JaA*1ij{&w zZQLpEO2eb9LJ|@HB5$yCTc$L+#;y&!$Q(Ty!Y5Cjym;|K)PRAm`PZ83Se30VE`xJ)e}&gN6^DCMqEbx1=gNgeZ-&lk zzVDvLjvT?aogEjGi3klH`ug>#O<(CqV+;=u565x47rD8rRlh3MmdE{B#je*!h}eFs z1bO6TM?L-ZmR9ih{3j)f+gAVzi1W}Za*k?gMA|Vgi5{oeNO8NOLRN7QM*{wISg#mL zg)Liqk^Knh(u)^d3HvQ-7)s4sc>@M;;yVSjg{``B8)a6`Ths1nesL}s2yEcnH~b#g zq@e=<+}+J|%RejD1z7w}ojTR;JV00FF*6)#6A>AiVNf9>CRUKPcrio2j5LZ{tk7PN zKEQMI=nNncI>1(HYIy|(^Eu|`)n!Ytb$)*SDe}cwTLnTaE-btW;vyuZ;^3ifV9?*) zz0xSVZaI{ei6sNtS%nSU(^G0t;kmfD*zZ2)?>htht+@}s_gUmo=){XM53HGU)elLe zgNF{84IN9pjAoXeo?dP@R2#r93DM=`$+ut|%ZrnBeHY~AuXuFv1*C4NPQQP@s?e5v z^7S7-j>brz`C$DuU9W@@JR+Qzm-of~Otz=8UNS4;dd@-b4tUMgi+%d^sWDnwr=2-B z?47G)h0EM9u$O8^#}R6!d6k^3u<*L8OS|d=R!s6=C0_3z z?#^D1mUIdjVlSz*o$5KxyuY9bU)gt-z)01PO1au4Fw{`1Q?WNatPEI>%?z2nW+!vplE6izlUj)mu)0!t?NLf9{ zC|o0i{#s}`)SAo(+}El@7XI|({UA>+54PmpF`vMMZf`_eo!naqJ9D#Vyj- z)=nj*oX#+P1BO1m$nb9Vt%wa zO45nNuWF~D{_ll$1D}I3GM?WmeaIO1O-(I!G>FW|kf;uPnI^Au zW-mkiv*S6Lnaay_g56DOhKAopo1f<;crdm7zUX&2t)=dr)j}kt&JY-d+3A&osnW0V zCBno5=4NMIL1J(>6J(Emf4!m8obTJnNTNS&%s(4Ah%oIIx%SgU;;!Ah)igAq)totd z*641oPEE;!OWLG&y_0*af!8~zU(dNqH#RERkXmWF@^UAwLbIGQIjt%<ce_#X-I-so6dA9G4__a%+&<#@31E{QD=Y8cU>4evvVe*YfbN;Du=AdYz_;}*#Ndf zj6O6pG-$wn9-9dlww4q>$i2K2K-x%gLSH}nTgme?{)X&+mOX{dot?W&=m=fvLW5B) z`G(8b;Mg#n%WEssTI)I4)7E{ZPe~_Fp2Rnam^3^?Armp;>$V*B#m^!<=FVwsJj-}1 zV1(UbA!Nj*sK(yOi9`IxK87f1H__wApALv8l)Z+SV~na^VBPEM<74(-?eWWPZ>i-{ zMBI2>PMV)w&uN+M#mWG(@)^acfjC1)*&h$UOgw!WYm9m4PQLmQr#=@RSy``o-5wQp&#`Nyw6w|i(|#bTX!l>IrlP~cN4|Y~YpW|SPx|)Q9Y~d0{Z^O}*i}Y` zL3>GSYpY?F=4w%Ezt?>U7oH&bZvz8@dc{N{wB=b;-mP?WxQ!s*S4~Z8B#x_ht(Bqk z=3901^6_<6Y}l{?-Mbt83VgPwr$^IfQGx0h4rpa@a{P1BC&;v|2E!2gydONk_3nK0 z<|?$1mai&_7xM}VOzM`F$H`!VUB=xRd#&Y#x-O&H>-+ca?VBLnES0ItzBS?!r|djG zdPz~S4rM>P<$3=i3yM7OEwRW)o5uqa^+oxXko*tU3lZKm2iir={NVOfX--Z zD-h9R%nxUxi`?6?12Qza2#K_6te&o`b@}pJg^1o_hyC&Q?%g9x!qmKB8wp*Cedo9s zqem7N7J$mOv#~*1a))^V{sW~8+rWo-S)&j1%?6bTxCpng#rEW>Qz$rtGAFHLL!zVi zGMrN+Eof(6x$W;?54!XC@#D5M9iEl8Pl-wi8Cr(|1&SgRDF_it${M?p0?{+53;!1h z%ix@Loa)h1QJHJgvDv+A*Y;*W3(_kPY#?IvC6vNf7O}a`9Ti?)oW&k1`4N8RWI+dH zBQ;DfeC6l#jv(kOpei?GTeuH_b#S5?u$?392^c6GuHYELx`YII;J|?igT?fgQa)bZ zE;Rc{oATohW1pqn7C{JM)&#O0w`+NE4krmIoA~19z8uIKZf+|;vW11>B0I$)*&jJ_ zL`q86fw))7`3SVG;g3(hfB#NYRZ&rCe+)`?@yU_f%*$bi^?Xm!$UWa5IA+nWY?dNOqd;<5eI@H3B?%bYxy#T3V{lYf77QJ6LTCFKD`S?xMDKms7uox6!6p zk%WYVBq42~f)RZs56yjr@EghoOndXu6@`x-O9r06HeOp@vHh_jx17bSv8?%LKST4Q zzfQf_IXyW1?t^JxS`&?!7dpUKQ_3c8FrOs%_J?Y!gj-<`7G*a4OMm`PqLLQwRPX7< zM!5Czt2jMmWH}EOf?R>{_azz;j?qm7W#7EC?qrwt(Ge3grt20K{P`Eg?_6npARKq} z5MtAy^!C7`Nlr-_-}9!n)_h^Cl{07*paQk<&G6=1q75Z4bG^v?$gq++PWhZQ&HcBK zB+z>A+_?i6$WZ6h{&MA#o8Jx1%(PThZ=$`62ntJzi*MYt>9~Z10@q{cxz`Pn(cFVi z^3*6$iP}bwea!cX>1K>P8N4m=W!N-He&6=Np`k^+b`{z_hbrG-X*$_e z-BnjpW7=2h0tFBF23x}m$R8^nBHMV>4VWhQ3t(w0SJ&dU$rE(4#ks3rY#x-Rq@}63 zrvPALwQwsx z17Pd_sL>7m9UWwymwftQRldf1p?6KFDvT%*0o*u)NF+2Z)K=_Zfr1})1|RHl09ZJK zOlJo_fY|PfhcQ=GSqThegpPvU)?Hw;jgAgFuwIs7mE?5kz`#Hb7B`S&vZhC8eL|tt zxSmuMvud%LPQ_re)KE$D^RpnP*$W>U8up4=voS!h-N(yY`{6@UVWDPysm16_oM&7H zH@%aFMmy*l$^j>8xK5rq^U37hS$=;R8ygc1ZSy)(FoWK&mzOtQXzTv%{)Q>hl z>(LT+7*nkZq^73cCFT4>tlyn1t3jcHPcZ;J@v_7^-U@O6l%-edJmV)={>tL%(92|t zH5ff3;tf?*L!f>UQ1YR?sR_F4@$p&U>>)3$e)Z-M4{#e#Dkg%sii#>u z`5>c@uCA_gG@!0p*|LII__CiyJ56#9XGF9UqYsyij6OdLlz{1>a0Acf`J}kGt1d1} zpcH6a@NZvmzi~~8p_7&wOKVkdIvk+kbI zlF=jgPkzPy6A%ypFsh|7#Lf4@$wWm(O+0aE;@`pOExA&316~G7EEuZi z{3ye>q}|LcEN~%l^gCHtvdex9e%R5;@L7uWDc;fMKtStNS5rGw&L`>RNJT+w(0VP= zlfFCnUs(X$woSAw@Ej+)3j~3}(GkrLS48mfIoTc(5ov91w#9D7*MV|?q%bn{7TG8E zwQ3X>eb$v~*2MNpIWl~`8~*z9 zn&^6SXA>=Go*QmGF14uZB{GXDj0^RAw(Jeq(7nDqE*PgQe&zKoP^iD+BHAH%`P4Kv zDlOOFgm^x@O6_Qy`QMH3qubA^tdqfcc@8^9Z2r{-$M$=-_II9sy!k4(Bz$p4V+J5>dyjNkY&yT9)f&t znOni#yYE2w?#Q@D_Rb7c_xAL>_h%h}p9U_36UGV?o<943^jimi7hL*+K35C$RJyU} z3g3St<^X^W)i+fCL4d!1)RC(ceD(r*#j2}~64>qx@aX+Xpi~)8p6qgLL#BfI{@eNa zn~PC;dU^t@L)xpYHcj7>^xue9&Pkmmo;Y!$;t_lz;vnnrLv#@YO$%f1u zlpqsnq^72ZGz3I@)|M=zYCetht?UxHv9WSfjFI0~4?-M9d7hb@6A}?Imiz)XD_H)^ z@XD1~AD<7C-34W3Woo)&YWA^Xfx+ws%Ux}4i)jUY@Py7ODjIe3aB*D&nMsWfjf`a7 zvE!XDq3Pj^pR8EJhI9F1W@cs(GcHRvfWH~fDO`fkg}1p`UA@}8)ukQqi#dT6dL>j1 z%Z?-S6O;t2NT&;vG3WPf&m8AZu71-%c}ukY^N5M}*4=OCq)I$_oY)@)-=?D@SfwO2 zHpctX5VSXnTp*A;{iuFl+&T@R$wjJ>HjA0?nae517LY#kLN4try-Xi-;d;`oEM-wkqox7$=k4!iH)|NMZbuO`1bTgQCo*pV#F)Q0pEOZ2f%zmJa> z5c@9+G+AgY@9vU9b!_D2?A5HSUhj02?zkHMO#ugiubZdH? zdA%_jhRNY7g~M+zvKOw?D`#1;ViORV(Bl~x-aPoVvO-oLVAiJwHW_#>86#Jb9bAZ4 zQBjnHgRh$1ySHy&gz8Q(^?r~{V4oqpQu^+Yl^-QAZhqPJ0lro<%kX~7Irx06yLQ#+ z8U{NnNh*oF0lT+vKjQr3i%t2`%lPA%dKmYKm9ZR@ApS##lG4&b**nOT&rnvD zAqZu0J`MU_n@UOAqk#^-V>cvKJX*Nu_l2@)wbUYR zjjvFmQ@Um^Bhc}-AKY9#Bft3zhBfb^4S z29qoPHa&$Wh}gxg?d=6{w==Jt&@<{IJ9}vO2#F<7!eIuzDYNPpHFp;K>ia1yG?am% zB)&Siz*km`k}#Iz&$MHQioU*#-C)hR-~&jgaq;l9iwq-l)9*T-_EgBEcI|M!`;wh{ zw+DRv^XDJ7YzfsruPR|>X*mH#t9jKP;8=VQ;U?=@A_|A#;ltP0O|D-@*{BKgd5D+4 ze^vq^R^*W5qZgwnV%aVU2ag}`tgrVk6BQHNDI9M|O^EflFBx#kZ3Cf6AGw&=GP#w5 zu~n_XWHnk_n}wMfkT%1`CgpLT-_(~c+nJaKM@J6^$%FHT27IavRJM0kktw)uoz`9~ zxftXW8;UOlIf3TzI3l783kY(DWp8mF^zBYr)Bj`xuC!^2IWNwzihj5~%Pv>9N9g)_ z=+21i-Nd`V1(cqN+kSj<6vABn+KJTfUp{_3PuIWCS%TVyO2V)A{%dOkB?W~DaohNe z3>#hDXD#_W*LYMd?M|ApvSe57=0qw^Mepe`#|h2O#$*d??9Wu8PEev>znt6XOD4|N zFh>nu*O?ws;1LrMi8^ZZ046IGBtJjeYFmeTmD2<4+5R3i%u}DWRI5VOiVd_Ya!LJs za(r6a+AaM`HJK%61^D@2OzXphhCK&+CnP`M5R@b~$m}5N@UpTO9S{OQ1Wpcc6 z3?4y>EPMZFhjd<1*0^FiT8A3Xu$CeL&CJ&b9`=`eoI7_8HO``v{JEQabx*O53GzPA z&DtgsPF$!>ej4|xk>Ym@ETd2TdUBa|wQ$c`pDJf{QZIC8DtosSW$_$CO@ER0vG%b= zLA(zf2PGOht5+4Tl9O^?C2Odwj~6sGzkoB&l77O^)P^z)<;cn29t7@LNl8g!;s{^{ zbID;I@`a6iHXe-cx@I)HXq|p9t*Y7xnM51Pe5Su zlalOdbJHZWGE;}UWi2cIw6wHZ<5%~U*kU91yNpET=H^b9uUur+h~w^}eZ3&rq%PHn zZDzg}Wt%2=>{v@p&8y<#W%NM^FV&mPqL=vzrm@I6T5e4E;kM~d-0YDPT{hVpvS_<< zic&7pqG8;rMHj{=R2sO=x@As;4Fpr$r70YX$3m+Hhm89!4vxS{T0*f_dGJ_Q9v=g4 zOf6l1sY{L~{{c=2V%Q?%-@i}xmb7J4tA>RpET!b^HAsZfZn$i^w?)O?} zuReN9;wq0*#S}nXx67c2S6`Z5iTXh%$LT%~WQ(%jK}%4Ik^su6-uuSL3m1=rm30MZ z1wlK;=GV6=J8SrlqJY+~)i*YVH;mvUM?13iFRM}}oZi(`T;CeO(DU0xqkYG95C8#Q z-aWFO?(i|-;nr++b#WngToIC~k!mJQf}V*h@KoChTadY1U;*+ zw$^iHQmpem^@cqPGk!T9!+I9hR0*`P77Lxl5BG?SL08X7KYPf;qLb#@kKAWPxFJ7)n(>`vi(Pjg<<)a>~3=C02u zP$2dhqQ*aGW|jtnm7rykm&oqjAW0W)%l*K$7Zes2=HsK4Ot6~0Xm&we0(sH1S=^M- zBRd!wNv|NZWQPyVFD$^$lX3rb!@<0kpuN+Pzqi8=%=0Xfm^u8U&*Nt={*a+p5=Mf3 z5*8esW7VAxyy)WWT)Mj0jr;2b0D~fmq89e_Y0~Md)r<0fFs(D|RD`H!^aMCoRaF(z z4+xIE^`V*MnOK|N%0%5!MkVPuu`eDn4r4P`CFFZW;sjqzZ|>`eV58Lp^2R`$)-G`B z@VvSrUp=0qa7bW&gE03*ZXIkv_}}jMYhd7D64==2bjeOqO+!Nf30;M3E0mU!MzI~% z*4E(t!C>jmF$uKf)+kw2jdbUUDd?+R(ARQ{VglgD4N{UO zyJ4s<=VNs{2FEeEmG`%Nt-5zXM?%O5@kY(}N6EjNmnSm5V-adcXR$-d1Q!%D_=iXe z7>4$s;+S#ol-%S(^<(`|+2OW)LnHEwIo!U=ml^0%S>gklIRIDZI7sk?r^ilHOmLFg@1i+eFY?KJbW7KW{E`z-2FF zP$tiA+MYlP!rwGaa(dUatn`$D0U>ryJmAz4J)w)X$7ZXTSiz87!)}1L z4rxJjh3Wz#V^Eb)^)4tWwdeXbNi;uq*pSFI{o^;kX&wM4OzR|6l?*|G4a;jh)B)UZ z521+F*gl)LM{bbF$-scDE|Q1np(W|us%$E@X@C)YlA*bS#^&Y{M(?*eIsGgxmD;&; zXTZP>qsWa$OnJ38QNz~uD1(-!rhGqk z;TXg)a?;G|kcxT3v*TDS=$=r=^q~APzz*HYDr!ka$f8#8nj(RN3^(v{alJ@anFj|$ z75BhlfuwmLIFDlR!E*}L3F!jlmM6Y^If57nv!Z7Elk73=3>5C(y1MZnU*BQuA*f{G zq%|WmpCm*>#FlT%#pY5UD%kYdz>|3;eqk(!AR)&Yw4Finw6V?%s=EngeSJMMpEyw% zaZd#40A|r}UZMCCD+@}*00uK4y6n+99d{!W+j?!+YM|)wecKB3&W7G9eVE{10~Eud}PO@p0L)@+)sBSXm>1`;mRc zTD(}Lnp~agRHhl5Ij5G&bLhl!q9;O4@eNQYU}Dis*jtsympO)zyfq~{w7fzo!v*(X1 z-d|*If>cV!K0wRS)W3r)!oMn#oX)%H9D?>C0f7sP22n+!jF>H$1sD+|gAoRo8c9=w zDmF`+v`-O7{Yxp+68`}PigRmWhuX%zOv5~px=A|*aGE}%X*$SE3tO>=9=_JixP3W; z5VZr+$=6m)Y%Q}TO~QQ%Utsw2#x^u?BBm%Q9ux#b=&jU_u<2jH8mZ@4i>;;*RBl$?7$9M(aO1w zF&CST%r_rC_^7#MC8`dPEx4vPHJ^O%V6KdTq4o1;-E#M*BugtRpI5Q5w@6sBS_S&p zY{Z+$;GzwmxC_N+6W)ismu}&W+svz)Hq4gV5PUpXw!7>Z3zS{k7k}ybnT5&jaB}=p zfrv3Ru6VRpmzqa^5npsLRO4uzCc91(C#q@G4_(h9Wv1+$s-RT0?0yf>WfQ0TtIutE z%l)@#=$-)X#QAsIWHohka%8T0Ee(a^4%J@#hS%`0H4EyEQC$n zjvFU85#-!z;YUV!FJAh`cno_(3ApzaObpf{7Wp52z3U@N4a$AbgP3l0T6FlPsa*4S z6LRS7a`s=BvOAO|zrCyym#B zD7~1Nc)ZH=zq}|`*`r6ZAk$#rPIh%3(ulqu?Q>0aZZc2^fjSYboo0DKbl<)!u!<$o zD$rpO41Bm-sN=`qV+PqmNfwNp5wMscM9b}q*#_&!*51Aw627VFXtG+$i+3>9eol6` zL$LzQO^Fu5nKvD2ITj>5`^WrA{mYrt?&eJ{PN-2^b{r@yF3#@r>M%Hz5Pal+bf^{G zw)`6GeZWo#x2xm{y3)+dM-KbGkBud}HYl`Hpz_eYc2%Q;BbA)|m|pj9$$-QLu8(MU zp`NvWQ=F7KHxDh$&yz?Z&yx%rtY{Z-sc#Itr{f&!F312rLA(H73aO@};|U2v8rYVf zpAqx^-Cg|GI&JdG%RNyneMov7s`d?O>jTGdipA&$FEJJP;KyAyQA z98y(^??RhLOZFLs7KH(hmap(BatjKSkiGZwv*>xIlf-nMh-lU#*1e{dF!I8n8=?*V z4@Qxt20lKc5`v=U6`ZYrro8#m~Gnlw}cuI)&m@TOM839 zc<Ja2guw(@ihV_2MW@*p;#WBckDlPT-RT0JOS~AGtUI7*WZp)qgt_I|WBb!w*^6>_uNn^8qOE663E>|>xN3=R)tT#Jdu zn~qg|+FjC?6ab+Xyw;HbSEFo|{wCoaeU{mAVnERVL{gy6(xl5Otf6WZw zI+oiGoT&-|Va0jUt9#PhdcHuwZF{;_ z&St6?4Q%&-2gl}RQ#`%8LF|C*{>*VAD|0LVgfYulBe_8mBmxJ-$sM5V_3FXcg{F@@ z`=(>{nr`cu$F`CO3?>nxK?NXprT;6&^B?_;ocjNdKmK3ub{Jt_j@g9fNRH>A?Ec9- zvW#Hvv|~G}(Lac-GT!m05?SJlccz%ZhE;74hEghc0z8_|1khz z73JjY$wIifHyR)F*<{0?VFc}G|NJ2^=D&aVw_|OhaPeM2;BtigrQ|dc`2=FCT)Y>_ zKa5-bpC6LRIQam{)$Y&C#iRe@E0v?oga`ztT=H`P{{8iTJ0>_?I8cC||KBnF?VJAg z$G>0g*kjX8UYPBbnm5=$z}^0HfVtv`g}!@$`T6&@Y-m!qprQUNDfOS97a>Vz_xNRm zCOT*cu}`6HYVupZ-_42BKLu}3et{ave487%GO^O+)BopSag+I5OiQuf!9`(zSbD~r z{p(LHLemWdYUsCZ3->Pq@_O!$Wyb1qVVfjkTBa(4BHRWrSFs0moYh-l$u(Z zznNgA;nfGb2(PP(8|3&bMh6Tp)Jr0+VtJEb>LI`&^WPIDr+Y{Etb2p4NHr{|9bGjarz{?SRD{E{@xBcm&3Ta{ctbp5yEW{sD#*X#g7|Y1fhW% z*^Qq^3QZ%KhS1s%)=dP{5S$!TFSPODkCL2>)HfPw2&T`@5O-v6C3IaN8vYscjy?M4 zp$K&>mQ+nmrI3?YDd1l<&J{+oY2W?FP$#A|P7qO&Brs%$5!t6t$&$9W_gQP}bT}E+ zw&bTH>>n*$U; z-Z~%p9?v2~j4N-?wv&m8NQ7(U8xU|H9+CEsV0yStsAuy|e&@09oAxMp8IeZ_z>2xV ze&C=C+-Ejb+oF5oMdz`|8hg|waXIm5PZX8F2-+-@4-xC?(4j*(rFWY*EQkn4{3$nG zE$BO0(CX2k{}o&KN`p*x>1J73@{}ieQEdUDLO?WifGYtb6%G!0k&!yjWlyG&$LUXD z7;BM=kb4jduGQryy7J496<3E!AXKV)Zje)Kjd99$8kv!@xpL)J8rFC^gVop<@)l7h z>luB2_Lu#;beH`ZYo+ftNfJ!oJ=POCvlm-6*5|6zq>aOA{r$d%C{|74{KHHJ|JX~8 z^{g&q!+J;$WU>E2wmiyO+H?`=C zJ5BggTFIaH?^+=;ttv(tnBqo=rTm{-Y-;1;9i6{H&S{ojW0W8_E-YMlW1aoa^jU1M z3+$Q)QwX+~2+t>O!jRUVRzqe`iAf*(!t$ z`r<^C|Eu3L^^~ggvWg)KZ(6BDI~wzkM-cq8MI=o{Q{?Fpn&kX{nQb7S=T34B#E{%S z%AB12cp}}NitKE%PBD33Il{ez<^Nj)|D%KbtF{*hIhnrM^>1`c{;{yw^q%JWZG>Bn zC%mNbSrf9S7$Ub2gfmOqev?~<TJiZsM$7SsbZ;BVmuGzQr0@#}&k3 z64-B{*${?GydH3h?jV?6aiRNXKm6A>|3`b0%bBBZY^1og`R!cJpB^jMca^;5r`F%$ z2eG%wg_~TCA31ew{GWSl*7tR%ChqYcbRV;7a?ns{!>!F>?Gdv0;+u)?-YmGx|KFo* zikfBjyiM-aIL_FpQ2b68Q(?2m(b0WKS^;F)a!Nq$eEM`Z12hy5j4^qwE%8Ktz|8iqv6Kv$@E!>6BeIr^ z@lNYtEQ2YOluUK+Tx3kX1IjF4bZTUDIQ7ysTBE9n-2@OvdpGK*G)+ZHD)U>2?_d6c{jIFN4rLCj%MP5NIbrn3hp6RT zu4kM~2-iwL9Mmtq%_?!L&et%MUbd%ht%opQxV&5MPALd2a4}y;#3) z_O)~7=78QN!>@A;VYy^bS!YVVG|yBxCCy>QlS*iVRL}AVetM z?V>d$&TXJ8S+}kvF?4VfViU+%8kp;rbrNQfqDLS+Beo*172(7iv3onseGCGbk2F3) zGsSqxu4M0egl8&d3;1M#?HV4|K_7X;&J;F}wOM2Z4OOvU#bq?9pV&8qZK zLPkc$a`BGk7%MI$loI+kN;UEwfFk^!h0^M;?bJX#NCv%;c-71T!Un;RiF#vp+9t7m z(;W`d?0o&GI@rcV#l?tV3cqqs97XG1@T3|WAIE_102774+l%h-Y_Zo^R%3Bv8Jm%Y ziZr&)mX^*vUOj0uXT!Xz7p?lm)nZ(B)JW%LbLD{+U;z02!idTLa8G@_5 z`c9|%)nun5xZl257q!V1as7&6tv2o|@>u#QFtnF9Kep?;)i*cKkhRL|*I&Nh%jaJs zsV>EWBc41eUqOkfw6Tas3u5<5EgG3mVR_{aKhl%bq>SHye2S)TIB)J%HkCZ$CFNVabW1 zUhIg+-R+RRm5&y|gTZV5eoJ(k_Q97)MXbxcxn?^UJbr!khTDwdhD9AY@eA1N>}d~q);1H%a-a*zn)V}$n4 zL=cj*kb=~99PX|Qo%Z$f!&3wFUB4&5ZAN|sW>TE8si9#u_7o1(ao{gj6|*Iz)|rD6 zzmc@EulXR5bmPVkSO6Grw5Vd(uG#hW^XFW=-7rgBS~`k^XO@^>yLJ=893D@jp3Ns9 zU~Cle^y!D8UMvR91(ieCR-C9?N8sp-iD{HZyniWh_^_ym2=qgcfXCP4u?J!GRoh}R z2Y8)`;f$(?Fw7vq;lbENN`XShXpPbLm(H9&q&T*3Z$i;W!W-kG={f}gbnYktc>LG= zWI?~Wswy5+bB#QdWq3lU&1BrgQ+?m|S28h(wgp8;uR+@O=a7|w7Ips$o)6*Xge!zT z2?v*%dLu+j9x~`P?RsNwZM}ErPBcUV=dbtU;}M{P-IR^Dp^f4(Z70%YQgYoBzdccw zh`ad-mS^Nzc~RhGFT@c9#=AN?ptq@NpEnYOzR?C8A20yt`tIGktlA;)R54|i`n(Xs z@0dBt(zJv-3QrL!EA)5x0|4QB_Kbb|Hj74ypgtq!?RR%4#!{@j#7GciMNA$bp7ZkM zgM=+^#VX4polPr?T7AYQCa_Ho)=Lhf17fNOeE|i#Me!Wu6zpA?JNP62G}1F2L0^yo z92~4%Q@d2IQemTZnmiLAh(`yp7L{W6aAJOJqnYrWRDX(wAm{RzyX)}qE6$`#-D-ZO%pJ+6PjAd4#mnx~4r%5j#fqNvi}h&Y)VUV7ep2##KquZ1ABJuB^{JNI-zkOtrwm177-9Pk9NTo*Q9qlDvalX&b@e*c1BN;MT0IXxqsR__;!6*7|We~rTQ7-M>d{~dGe&N zw6v$cKipryutok;i98p@eInld_}toBW!qC*OB0s!@Q0KjHN_JRT#17hS7&E0YiM|f1#aZg zsB>n(-J1UGDN8y~ZOdN=mZ=aU<{OWmRdxF$cgoo0TJXS#g@i;cy_sWNvOw%i%p94?z&{cF3cn zBiJlZhehc=X03NQ^7i(o*XtV_8#PXC_WS)E9UWGy6;1|XH+Oe;t*xzAt5w{{)68!7>pP8A#BWbh~iA0P>qu98EfKO>@DU4fqetuR;I6y(HfK^phB_$<1&x1)Q2*St5 zhfb%fs;ZKTn#p9MX*w2*se~XN9v&JR8aR$qNmHmhb{au3xU@}F2nK_YrVt|tg4^wO zyWP3}PIL8V!M?NG?cyr&CMu_W=KcNM>2&6&czr7ttDdjO_{E=44Ufmu*Vi{aJspq7 z7Zw(z9}uUvW@l&NNg5s=CJ5s2@DMiLZujWu=;-Ju#1O&Io1dQt%i`|tu5i1k|DRAO z6bgl;55WEXJ#yRtv92jud9he5tqPLAvfmO{DYYMsM%BFsF<=9}zP=XL!bl+HG)=2$ zx|-fW+##1VP2L)7*^M`rR(*YaiG#$_TB+X2da}};XpguGm5+{&lwL(F+dj|p(!M7c z46d!MktAucSS%LH&CLx#5YoOE^9!LU>h$!q5KlX&@ptO+_(CL^OxD!YeCy4XN@f~G zQ70!ST3my?WocTslg8BP?d>hT+m(6z9f8+_QjXu*Y&K*q zO1ld9o97|0#l=Oe8kjV~;c&5D8eR_yKNA?tZ$VSOLa*2V=6m#WX;usdlSlSlB9S;a zIKa0F>m3GD8H2%K@&s|3F_}!J+jmV(P52&RFqq<$KYR-?7!1}s3|1mZ42PU?}S$JpBB3vXhr6Y(vV?&L~QQ5w9cyV6n*@2TOD3~Nd0 zqFFs)x*hW^kMg~_fva>P`b6Q^kSeySTfyo?s+yWdIYj9At~C8L*9hcgtIw6s&z;;i z`KRe8kUUYHOXoM(xn68cBrJ7{9CmglEcLDy)_*)RdHM1sqsm9D>u-OWzDFR+eA(hU z7MwFOGY|d_u?R(ebm*;{FD)&Nj*b?k!d;?x{gzK=fJXx3;F$t5J3IS> z2M?H-@R&EmS2kbYpbG3R_Sl}Cn3xEs6!w=$a}>z4ODtH$peW;vqQ{pgdTtOr>F`2; zLOH9nsK{}3IG=yYgN{Z@UPNqF+8dt$wjt=XZH= z8GWItweKNPF^PtFrprOP=OL1tOCWKyls*P4V{5&;*pu zt6EMsuJt@Wnu|~o*>0MsbUEE$9T`kL`tugIZmR*)&d!d1(v@%)H*Dc(dv3y^oZO#A z`8C>;dmrzNmD)s1ZyuhW7uM_q$BWqyvzCu5VKB3?UBHX&?(9f~JRQo_x_SfWOAMQF zjRzbvRm9S;!SnUL&#lE4txe=Tf=kKUbFE&rQ#l%0Wd58ki=9X$vi@Sf(Ccs`%s2b! zB^wjdU1Y`NhT3PD{k73(yr{Uia?7?TL6^l(*ce$X6gVzPUH+|JX&X&fCHv-y_vfQk z)a8ZU{_ZV*j+k;Ee+FAZ#@AVOd@%7lcWaMf=AUqE9L_f=tiL$HWUDY;>Cc$a4OR&hoQzWzFe#zrq^a7DIW+0sn84k-B@cbGI0?Ck8^FPB04 z8+j3*o11Azd;W-$n1qB-LdbPl_2q1Z)7;7a>fw-%iRk{I#?Z7msm$JGdhf$n#*pt0 zlluDlp2K=JaAu|1*|x3Wlv*F|o-FHh!|P}pv;J5y59O?%rVf(Y`b0h$S#g+{l(f3- z(cjFFK4`LwYT5g?H!OK)C2j*pWaf=$j>Wy5Iu-bXCh=&ZW_7vEs8#9%4@SW(@s8W zZ_K{%d_~1i$oq(6_Da{Ku*kEqGT0ri*wLTr%{s}4pX98ptj_1CFFpR|WO+zPyveki zEho`>^(VAqIXy&OUA@M5^KjZP!uFv?2!l`oQ*fqT?DIx6o>G(}PSxCTdS%^GYs{XZ z8FP6ZQKU@%o>JUbgy`1jQ$FNXMBZEV_Kx;;QVWko5(Mju9de9oTZ11etzPKorGXx_V{C zXxHt({@8;seWzgxKA{Z8={zc3!GjXq*_ z5}@Gi-rV+39LSrR?&VREw~Jj#Q^lCRQ}#@NHj($7n25*~92J}d<-}J>Y!a6b(FSM)po;jt^%kkFPgK=%8`OatMEN(Hex|t9SqTOMG&A<>BN>Tl@)j}^gt{&k+`$FT% zy34whf>qv3ai@XfV3q>B&n7xQ1*t_miaHkVL$I3(px%1-nmCc3GaTd5KpC(7uqK=8 zm3>pv>k%OlAt50yzbUbQc?R1i;F5AEiinoj_IV}o`+a3P8Bh@yH~oSB`V~6`&WNsx ziTAtE;?IvGwEf(Ey{DN?pI2b79sFiLA~UfA@eWUdLFJ?2s?;lMWj}Zjji_kK+4PCx z?Y@e~*>;H{EZkou18}Iyt9?VZJkP;HUfjhyT1+Y&D_800VRsd(-rMlGSnQf^X|CjZ zrti1iyd=8UTU+gZ?zuDHr{Oc|Z>H&&1G#D`8+;2*kp2hsoR<=_QMb27N00 zSfBIq)~d7Y8{4tDC7qgM3_%Hia~ z2aB__bK;jZCL>|V$rC|@srOk$xNLhDh>2gDbZIF>?EfP9l)fot~Z!IWFa|qEue& zvcQUSrA#=*=;z0{62H1rgmvc|Zu~B$qiI^&)$+|b z!J)qOPT37h`@8)}0hOrdgwNsR?oto6fTQVN&^Q^%vU~O8FfzA;QJYi&r*x{vwhtKV ziHV7uo16EUUi>{grS{%x!(>}FD{X^_;<1!cJ~u}QQ07j^auo&j=IA&3xK=`vAfzPC zb8~a^PmhPwkZhw@nY5FQvZCw#CuyBziG4XG#rl$ejJm%W^3}rbVf}09d4OC0s`tm zy7QGPs?)qx&Bxa)6nW?lHm9jmJSN>nny1Pks*e_$)c1&;t|dLM%jy4HbAB*RNJzNU zonjzbuQ@#<4sc6@@@?z`!wSc9Uo|gx*=qOtNil0q{(gn+)H*M;L)Phu z=bS4G?;SJngPif@%NME@6)m^!^^A||djEzSyqulJ@^E7^HY-F;4GI9- z?w3!V`~~NIk^3$rH4_3?kjVoH*`AN0&3J0FD)rMU82E9@2<5}TY&FU7K(fPUPP{dc zEQSgh!RuZ7(xt%z3on9rH@2|V=B_mV94fU@al&77jp)@^_BHxf&ke5*Klb#rW+Gx^ z&iOR>bcF2~9COA{U8}aD!t!7(i{}B8T)2?&a=wVu{@)?+WvYm*ogUfA!gH-+@8cc& zg386>R;rMx?ZAs)iXTM;#l(EUdsuV|^3I|v7ClF;;=&*S6&0x(DimxF@G6Z%^bqLN zEjCA|nfE7mxQjg78&H|;fdGO-&i532EI2*+?-I`41AH}$#$4Z(!WJK|HOhK4ownV7PD=6Ly+ieor%!{9>vyrazjoV|F(A z^~0@|EJg-K#-Xa~fU-?|kF6k9nR~}&+Fby!mh{Jhda7jx?HPG^AVUdcIKVxDmp0bc zb;pZIfO6(y)XT?>>Vw(ARfS(%$TClstyF`x`d*$_J+C`H!}Y7MI^H>qiXvG3_!jce zlK#@q!yC6>)1~JGtv;A?g4w0rbT>_#WUcA}5G zn~8M-zvcKYXq_R{<+nZPbZ>+QS}VM%`Sj_osA%nu(t@X9KAsQjyMcBe+uEyt0tM&< zmO58lox6#p9|<6S+@g)dplO|1C!{l_sb=q3a3T=TjJ36IkMQJYXJbevU450o6x?9QrXxUc8+RBD zp(|x)#|)KK+33@XT};FWbz|f1f&PAgZcyHrX_|$(ul??OKgQLi_+df2?0Zpqt`^^wh?hm`evFF>GJjtUhdG>VY@6gxr{=WW?O@f5a?( zauuOq7RssjVcp%U7Sk9FQ6`h@(jxexdNN&p$PUNt8lpFm{8d|98`P%)$LO{S#-1w~ zamJoEow75~erG7eL9ECuIOKo1Ganin3b>&CEuq$>Cxdb_6Z{d_2Ais%3l|;x2gi9^vz4hlOL@B0VBrT-vpJd-|6^tW=2NPBc;a?RFiO*;Owrwuq_=esQQ}=q{WW~ zXX4wp*$lq33YkCQ>9Mx4iJ%Zv#~NPSJ?R<}B0&vC89331sY*Kx+kEs+E zOiGtWtV>51ds3&*v@pOzCSYMuzHyUcZA?_|0!$3P{U*N;+yEFKnFuOT@1w2qDbKGh zL3A>q%L7?Grj?VMi)FseFF3grpY0q|hPP;8o&Ge7BFi;f$2! zVoRH6W89iznE8#2;w>RNMe}IRZhLm__^P zSQ)cW%z7X`-E|y_qr>`3QKDN)A4Oj7E%(J1{s?^85>A;EA1?qU3AhCJ{<@*#Pjuw_ z^V7qTirS$OJ*a8M3yi8;BB;dy+CdOr2z@RaVt)@InT zu(n>zVF-4g{wV4tHFpBW9@Kq28^Z2cJ7w)KGi>|w4SH^_!)S@s#o2LH0Z>zikO5Z4 z%L_gB;T%WYYFiQv8kCb`VtAhZF3QWxLn5#3_}v&!6!YW=DpEsIQXYVT!&#r?lfdOwqo%AC2>vJVI3Bkn7X8<68i775G4+iEWkPvfQcjV6W z``gkZZfqSTUDozhdoO0*kp$bn?9-llM`Elics|4=F75|>%MDzrr;DjMrW_Sdz#qP9 zyKPJy1M~p=R5%fuUu^N-qoks}_VZstrGdPUi~7p3qu`?7c2dC$2v=0TthucYH^(1` z0%kmgDpBlgs}VvbAluLFn;Hwx-{Ym*>Bp85O8lCO5T}~kn1;Y}1Dk9RY)^r$@(cLK zK$gn$MeMwOslejetoF$VmXi8JT3QLL9euYb!lpJ=qUg6*g?vu-f(RMAKZ+WhO%3aZ zn$9%5OU#_~JzejbpgskfczL3dd&zLnk9dg;;Aj~pB#y7;>e9Z`r8Ye|3>#Cm20SO- zqKAeOzrZ@4oGm}R>zF(Icvsl*&yT*(k5Tj`uvOH8&hr2RAG{R5t@9Iw`cKJ}A3Z{& z`C`-a5p1R}2v`>q@wVjM!NEbe#8kZ5!_%8Ivt)N@=9l|ELpk@+_V0Hjn!EkP)csY% z&mX?i*aZJ}*V3v)v3`7NPBDP7DhvzWyt%SXX9yp`_4?ZbaW=c<1J=?FF5y^Dc{ z!^H^k3lA^_AX%l>>?5iD&bEO#K$XpFfH23f42#XBnTW`EYcSW60(4P-=Jesd98688yj!zd(O?y zVmvh9hpIViASd@PT=M6`>7R*D`N(y&wA5nmkGxIO=H=V&)+{H^{+#vE^VTDTQ}o-Q zq*(ylo&$7a?B(B*hYYqPu4@w~g<=cVc12nxs6Y8uOoI3^%aqZ%?%q*iXx}sbp_jLO zLw{sU|5^0*x~ZhT{0U$gSD}<6W&}ckQz<%V_a)2W>uU)6lb-yDb`{qvh_aV4>dF{u zTHl5Zs8?22fXQ(A`a2hVJ0mMABp@M=PE=G>T)cjv(8kx-mt`!D%qigM)g)HFFUMb- zV?KNsw)*ZFTHj4L!PouLNZI!pUy=vGZNw+Rf$1NwuUhnI)Ia8~OnMiThF5t|O&vu~ zbB^|K+%%D4Zo$iLs{;L$7V#=}rK;O>DFiQlce$V7~8Ah3IUvJ##3nM1~(@r^R@ zJARW=w+N*KE=qGZP;KD-1>)1YKkmZi!el~;iLy_Mg>i#*zJ95%KVN^2d=KVl1Ze_A z)5D|5imz4bdbrKCgxT*2$namQCVKewA@c&U6>*wr#cRx9?Xd7jwB`qqWCnha8S0?E zhkPh@viw!r_YTP@;LoqZU$j_I!+EUe4jiwXMft-!IHr(^`g8x3a{~SDJzd zH*0po<6Esuv8lyG7#Uj^oGAsJEw^WzrKP2Lm5E-0-9HocI$(Y9;C!V1f_QGNI(TIu ztJ;uFLe|M?yFHc#Md}onHHVOx04xO0PU0|=@b*5-FP{SP9+fKrE@;TNhLP*|C{g*H zInC?6%AAA7#c|BYvZfaHI|( z_DSaEb;>TDDEdK$J8PuAfLQ;!p`l?}B$`o0n<%6Gv1WqqO9c#?z5|PVD$nJ#va&Mi zklW`#;z2w$T!?FLZ@+IsnLU*oR?C3sz5lDEvt;b0(3g9eU%t~}Z^Y8}Pv0~ItOF{`>fDb|ix#Q~$NK{})bd?`;TTop%)QPbua6uZ$eqb5x35R_=}b_&8&*17EeP5tGj%3#GadwM)l(J&j|mxT zP-q-hvecO%$-F)URF!cp4uybYE-xx`L7I8IrjAgeA-a_^TstZBG2gkNBKKYGh3wV1 zX40>2Ja2~uq|Tu8m7<)Ln+xRW$yOt7G2IoO`b;KwKQK1u^6_V-_`_W5Uf&aM8?M2R5-TSm49y_djG1*zqAYD|HDmd zhCPEoteS=v&+eE?@e+eLn9Dyqi+c#Mv) zC0-Y!^%qo835(bjFqqpVMIiPWAl#}b|KS^B>N$gykhyCjQJH&R)(>G?xo1;4%Jdok zo)p24tO{ArZ8px%fGFSJwi-&Q&Ax-sKG2|OF z|8Vmg2-6sRM(Y2x0D=$*N(iVqa~RpsVCnYXF2bqUb%^Q2aNxnOn)|2g&Y~U~AmXP#mni`?|O4c=s-YKam=Aj_6Dx}PT*FB-YHOUF}EEH?Y8AE6;u|0I_J zt#{Nke{`US0Uf(r(ey!bQIiXgV5{m`Kk}fCfbW0#g8Y+Uf+%`rn{FYNS_oupSs4-P z*L&Skj?aBjt$g!j_Ehb|M5c_>idG!zI^W>zt=skv?Fm%Z`*--bC`bfGQ=hlX(Q z<_co?5wjJF*-1%G4n^76a#eSGM@QpK5xp7e<-kfvh={&qWd$^vp}LH7;<&Y=>+aHO zcwkXD)sx*!8C3-V5;Umq(E*ECIKtv7Mh6e3L`O$gR3lOvaNGg9r2m_}P9~H5T|9x8 zJM@suhx_V$yr8+ErWVO+5$^)amR5^zodc)_B@gNl9?QwyR8dqMiHLwPmi@IZ8gF3UOk+eba&u?9;l#J+ zb)x78Pp=~E7sOiPSv%aTDOYe2tnXa91(qDjg=uL185}PH*c<{vLg`A4(0ve3e3W$! zPA>uq4Dj1yTKsG1h`h$7-C|%m=I1S2NKspejF12IlrM>1&fn}VYQs)WPI+)GH8qA> zS`ru;a5=BOE71!@wC<+Xu`eHiSIoLsL)lQmYJuu~>XW~3E9oSaEcSvvC`5cNX*ICx zw_OyB`nVN};+>$?osjKXxGIEN!N02;;Axh0L^XZKL?V}6 zjck%#qYQYgEUS5UY^gH#XB@tqkQ`Akw?CdxzW8nLkpl&!^mcF6VE;y+kbtkP*;l%r0*7deUdn{ukSToYo-%uW{ zMW^Q*Y@=Gu!Rbsj8iw@Vf2PO9q<^v?ir&LneO#k&WeEpF_-|u5IXRsqcbRdVjm_~; zAu2E;!p4|dji|v&WbZoSHV7ITJLnW|-5CtCMZ9|Fx;h+29la39pDvAu4KD}WB9*MN zwQ(WQt$!yz;~4)nCr3=8Qx-|;u>mWJxqu5ci(9pPavya*PJ7F0A3uE1RtzLrP)7S9 z51W1o`Nqu%H{hR<1&pj(!L1opxe7x23>728Ve{RBD!^yU%S)jAxnYK5z%2#E*#)A! zLseeS&@egE4v3w9?w+j7Xc20cxVU@#@3i*zTyFU%V)-9+HZq6J@NGw8%g_7*R zT^~FZYgu=%HX}`^!}`xGtJ2S{MA+DrwY0#MiD2VzuCU|2lSs@=8{)mPSYYT3@Z#i#otT4Gj`8 zB9N5?0Vq|p&e@F=Kw}?bO&|tB7dgFY{xGv+dFbOmXZcbM7qh6)h zZB={GSZerYm9m8{C)CYL($^A1rFg{qNG?*qtLDW;!w6$Bj#Y}*<*VFswwx9k9xl)!7 z)}SYq?RE?CfdJzg2)?9h#Sum3C(vLHkBE3&Zi6Tyl2+68^z@XM50>>?KD_ZSvVq^I z$pdfg?97GA0FkMwJ@CjYuMvMC)n#0J`$$_;Q`69p;?_G18eo4bFfb6$3?wA3&>(}n z>L7liwvhoT#hTPVHy5OIe}>`K{OuAu4^2?_N575lw63B?)W|_3{YVw;)Y;h?6f@9J z23^;`;BIZr@Q-NEcK*pyJxLWLg-407Z4_97WMw>1M)x@Uzkn*j%-qJKWHf^EO&qx> z4`?Do@`5mbxIP{b2v-awG>6i_Q$7Ru^1qZ+Ki%^N#gNZ3;~@|s7}u__;$dXx-tXW- zouj-T60cjZA0R_8tQN?|b@zZql+?t{HWAzq(t(&573!XUm)hVesHi|7XuyjDf2t}d zh5j}pBje|J=mp5b!FBxlC9A9~^DlbG#1M6phKTL?J7*z!ujHH5*Y(A%05+DB3u>JM zD&bKeC{&zun0YKL1kS$Y=U!CKkXS}1W!}LFP+PwP8=7%+OzM(hZq5h%M+8REFjHign7+u3c=fG670hG!#tCo^ zNsJE894J(f4X&ZhZQJ|lGDcXs9u`I<7gcfa&zv6v#n#i)1JThI+(SAriNc{gNjUmy zB763=29)`FcMuU4#^eMNuY>1W`ng$*DA?r8MU* zvW|(kEg@*emldWyTV(NtAE3`D+jd1Kt4$O?=@u;ji8L3Jq^7f|MputO}(%6uHx zMPvBen^BQglBl$bCu+H4N%s9tro%tS3sj{4xR9RfKz5DN1o1Ar&)#rgQiS)gI7^!9w76^ke@b~ zV9-s|8x4V}CWo~1wz=)q5%tp~6qvpnWW5P3-T77D7M(I91~Rgj1^ zEjVsP&3>X!aIZ#HE|@7-G}%0Yqij`&}-q)L1Jvsss>t5Rz-T>tyhu@1!n9(nA9xg4+{ynwDh_!=1m zP8{JV^UF?bca6?QUL&5^MMq$A2DV^5NsQsRIr$OohXj}~@<}rO=sO!yag=>x=X zUq;bO&`w3E|3i`1S&H1W^7Irp|0&=G+X@?0C|K04GH?pgEFWVbv}bm;iXQ%mv9!?- z;CX|3jVn^=y8@GnA1E9mxWz`pP&=n@X58%zwbbLo!2A~}*9U~0yHgUWhB1`AUz_BmoL?W8wvM$GC3fV=yN+SWfIgwe;;GzJ*8WGx9ej^b`@8 zqbJgWaROP%zm#vH9?!&#>ui(!xPa2(AAC!L>G|PRs}9+&I}s{}o#If!X49+;pG^ovpjcq*Mj_hA7{q-r-rHcm}ofsFazEe55l0q(2z!e)6 z3naWVe+q9f}$} z={cF1|GbSaDaDC_P@`W<{^FF00`ZWXfq=49&0*<)qfe6Bn#8GHLrgwCw3Dh_!%gR z=)LWj)E1OUD8Da6DX3k zCeb?4Ka<>c7$}wa!Fgh1qbTOsUI?PBO;#>WM%;?&8U+6=C|j_CwxzWv5iWgFrXW%Re#Sm_h*7qhLnXH%i-bvhzYQYVt~{H1xM$$ z9mBcwdWUTjWiWo$O*Q~tiu>^4HW86G5S^g7C}<@hYM$rI`jQ)EJ?Oi>IsUx9_GmUl z*nN%k);qu~ckz1NLUC_A3!|4q;;oH8NS<_1k&^@dla-bA>|p%4-(mH1$^l6isf$30 z;&(ft!u@1^Vc}{}H9;izS%Ki`215zz1Ed|bA`E+k|#Zt`g z2S;GzO0eiEaInxf-8eigwn04XIL_ZWJ%>i>biLo@O5Mm^By+HYBJHmJ$73z6p}Flp z?l%x+Og~L~=eD!|uIR8@#W=OaFr~SXE{Abq1zbZsP(D{DjK$#BOebt0MfvEvY_YI} z>%7=c%;Qaf*SVlmH0O$DN+U~03$q789L7B)DFCH<8BSP2%CC~gpkW|;jp!W?k|N>b z?S7^>h;9A28c58u zURjt{tf}*+b;cY@+Aj0|O*I&l+4ccV>;c`v2r}MaJZE6(LCoi}&>jmD9=9@n6Q>C} zR)=ZGFmVP34O8>n*nZ_%7EyP!3vFx~0L@z6Dp%%=y$=Qs@T{>iJCKAU-=pRRKsAV(8-R}bFFyrkG#+Ln zeh+#I2LBc3PgQq#O2{^+u3vfWcfM+(#Xto{bi9z%ki zcPpxHAa36!Fmg7()zc}vSn}xiN~{w~xrZl(u)PH`vJ%!1&a5Y2R;zMzfd{esl~tzF zF`p=pt&y&tLgfkdK_rHd?A3<@PoROnw)Xj?NwxGOLj6JPMe};J3#w!=jkD@!}XYoPQ^)je`Oxx*VkX& zjz9f=F_Ob&daiHnKH81dMPFrh7m$1hU5WAjC4chM=!Ag{%cjixTvxCW5BLswJ+Jdv zr7)W*4Jbwr?ROVXI<%HwLFA_}uT1FRYr9HEIT-)|mD12ESRuRDWZl}vjwmAna|t=` zHK0q@^HXc7WaU<_AVh&kiTi^bFIryG3)4|pC|rH0(1&#om%xR2L`ex-1Irl)2tE~# zN{8iK>t$jlxXTpk<_k{r3Gy*`?G5-m^YncERs_zzcqH zA$oVzNUR*H2NoRVzn@GWcXf49a$75EYY$sQi2BDv9DZ-=;gQV!h~_#!?H4p@Y=I@@ zd!uT1dR$WS()Y5Dm?1JatvoE$A>k|6TNmbsoCsl^_UKP*6biLVQjS znvFfo&1Yep0JUfsOu!RHdo>g&#VAJ*;gW%;tSEPHe&pnVf{4F4X$$nZF=#Y074N{X z6OcR7V+6-+Ep3~iSp;QGX7xr@$L66Q$bdlPR=x1Sph*F`FHX*o|voAtWZ=PB3M4IOX+x?VSq9&0x)`An$?}(MY~QKrPyj zH{MQS%2?bK;Y`-qQwpGC198hHN`8#$>wqHk4u>g%#uD_G>DN|KJ?VNM5TqgBgX}Cs z93`J#RyaOB4&{`P_4E{?`2vr`72Q*X_7G@DFlbN%dEI)ty1IsjiWn=FWGhm*J2ZkY7N(l||~W)~aC_`G>7?KFU$R@La3$XxfYG zdCj(ryZb?z-N424<*DDa_pVZ`pp_m2k||hywV^pVH<*?mF?>%)HS-R>ByLjV-JE<& z-%wYEf<06-5cwVu1vKwK(`D>FYSkwW*L9NyI?ve`Q_zYfknqQ)b|@V!DJemNazy;b=mFONNmKjcv;t{EORAmQMC9H zfBncRo{jTKtAV6X+@b|b;#abu3sVL#@b{43Co5SnQ%8fWfgTqeRByvOOv$uf=){h< zKTqYh2_IPnMfO?@vxfWT6s5(r8Bl4P^?#A;h+{8|n!{>@h-)V=-wxgHMG&g5Hh=`a z88l@MCwnX67e{pN=m`7S(Eb}XIP8ZX;=CdXJ)cd3qJ`!D{U&=58!tnMbsdI&-XtiC zVZf6f2@*n>jxmMu+V&PaxU;=IcR#IsnPUmI2V&JlfCsH^QQ<)`e5z8H@_VeD!qi? zUhmy>YNy;Fkotfl2U*vWEk#fjE0slsebiGP!YzjE3)!CTB_EMrBflm^+ZGxBB631YE0lGzohoTpud6pK(FgFV0dp}^<#T%5#C=mmQ z;#n3?6+1-VP{>8Gw(A!FQ zHq3m$NS3c|jYqMEMVOh2l9CUcD+~}+nEreN;}LS+wqf?520VhLJo{Z_2JLV+yKf1Z z38|^#Hr*6@A2uP@wR58+Lnz$@#J-j=a`EH&XtMIE@YPNCY7nTLfT_Z5z65BLrGNZ4 ztP93%Q7iMi*i9|0JNdgDkon~c43hji8WDU02QPS;zux`3j5ETtTObFYzRASW7e>z;f+;l)?r~K)|TX=}K0r z*ibTzSpI&6b`=)!0xs_Hcmr=iesC@6?RWY2wflTc$s zE%^m=Cn||ND<`XkexP?dIo$N?;vH$iaa%Cyf@}*puK=c0;VNb&pYe@@G1ht?JAVn{ z`*=-QZel_9rZkb#^W-r`-+I3WODUHuBwVF529(gqc>?kubEJ4Qt$gk zpE$W{q$B6s{sVa(&B`iThVBIJCCEwMuv1(L0o4T~HmNq;EUfim zSR4sUoLi82C``t#frUK@eo%NS51BM8c3?Uy)tAgjRJ~k+H#ScD@I|w#s;VQ*Pr-bd z^k7_A@%!Jr&i8wmwe#8|l<0;#@YluE?l3)pX$Fvh0XC_#Q9|2 z8$uWIJxgH?7Z@)$_in6?vEYz|`QWdd?fEi!;$)eeI7#NN?rsq1mZUR5jq~-aA50kP zVj$zE&rQZfJM^PBIicRvJcfB>F zc^oKI$08G!jMAitW;ns1C%NA^;U%B8OGh9 zK)U++2mB2hPs;OcJncMP8fBvwYroYjtUe9s`x%W~9<_>xlk*qA2p^zxx10MQpFM)% z_sN$_DTTEMWc{y)NL!VJPU>80BOkt-o!&BD5j~usd&2OTHu5jA32K1kejT2KRCAp5 z#y;73g^(|s(85QymfwJiPy%I`1Jj}62JK#oLvtJ`OVKfJ57y3xWaC-X2W|)Es45%g zT?~Cqr0E#+FejdKQL8AU8ZIy*r>3UH34maEs#j`FbGNre#h37=j?#eDZ-Pd5iSU$- z)1-Vet%bKw&JD|s{+jiEdW3OBH=rOsIeRdFH2NwI5LT@8vK~7(^|+LxKcjd|S#OG^ z?-<L|~64BmUAvW}L?q8_J zZMqV_0q|qMc3o(SjEX9OH+p~}gXP`JEd3r37ll!ai!n3jfItc21=MasU!%&dq2~Tk zi4LBoJ+cpIyAC{sRPvU-m~=+xCgySN&yuK?mrYBdL>iU5-NFFGM}EG&fx7e`uh3A! zS)-}gq$FVwphLr>X_)=7FDn@m$%TjoNz*O3y_Ek2XE>WJaqJ!!@Q<68YZ7ZA^Ou-Dgs{+vvQ zir%YXnI&SJOR*piIVO7pA!(2%Uf^ zy}-~Qt)=u&2wT-J4y+dF<|5z2xzF^z(SCo??kdCc4nOSuSn5f(!g?vU`nL4ESj%tl zwd$)6IA9%mCWpje!TpQk`5?&P#Vm=y*+sE3VaE; z`5P4ay*ox8(!#fKl7h{Hec6jU&UohsJwS>7RXaZsCIF*V#PnK&*-_<_0EO>f-(!2D ziZ1AfJ}tHG3J%ZLX#F+@v=hK}P-I9ul>=G_^`R?Ft;Ig)8eE0|^Q)sH2@XiN*48Hm z;+PlAB25GM1`>$x`IOK62jyK5+0P-kn&+u}Em}}jq9e={PbB&yV;8>x15N6u8@IGC75NFN=Dlm;Qpw|qJYWKNN)37Bx%{j zgX-J5+wXXM`r-z1Bl^>WQ9p~Ip(oI+a3IT+Bh67cu`ebzNi>`Mt4p1Memm=t6$t{w zJOl$la?CSWa|uv~yH=IoYf{1q>QLlmwunj@2POrSP+cun^30rW8imOus~E&4WK^`! zK@;F+tmm5HlgAoRCF|Y1Lu~SwiuMgqtqGTHndH^&$cyY2 zw?=woe3ZFFLjPg?IS8?Yt^mCX6n39+L_J*4>Ue(=!kKR-{KRhX2NV%6AgUT{`Q5!#1gZ%UeZ7@bZK zbg>4pIL(a*w_H@8*fvpf$@<(-%*7%$d14hA%nom%@&l&gdBN8!U6x?bb1htW=Y?{7v&>V8s=fZa^&#@Mbn&zhd$&>iFWTKlNT&Uf$xa zJ2EPZrxt8=LcK4?lP5yX^ML|RIEtE}JUHB(-gFdbYKenak(`2K6m<5}<$Obri>0R4 zKuByg_~bsfrT_IXc3W?>Im}-qPx;3G{JBfhWXm&q?%%|lq!B#QSQ;9QvwsvWJOEkj>df{ioQz!LMp4{Zeqgo(gk6Mxv6SoQ^qi&@J*ql;|Y~#zc@GSN5 zM4;wKuo@o<`zy|M05XEPh+UKxX|&|tUJF?mFmN_KRA$${b}piG)Pd?5WKO7$%*;$E zKhn}@)@t=NG)m!33?S}5nhW})R6P0=K$^alRmRYhb0CoJO|$UTA;r2u5vZKNl>t!~ zX4gO~B!%fF5`G57)CE9ID20jLr_zCXd7xYLskpdr#g&hTXKflre*RA%R~ipx`?d>l z3mN;8>`5gfPj-)GFoR^vUKm11O=ubGl*S-Lk||0dDJo-sB>P%ODop9IWQ#0=3SqqG zJn!#)f6xER|Nh|1%-pW~x~}^=&+|CW;|PHo9E!4_zhB-)d241JQxX~?n4c`u$+y+; z%_eQgQ5XlBvH)aiv4%+_*GKwC8mDTj>9$cxTPZkKkqL?H)5Ifn%IwK#BrVrSAx`yp zb0G7!J~r*o+{L}Wn~lbJViY;3-Q9)A&AY2P{G7(AkGdz*n}`w_M2T#Me&aiethr>) zz-ijEjLQ+kr$fY11)^r?FS{nBXGyJD0+v zg3`JCBe`L@P>K>G`%R)ezAma~i+6`6wEgcATX4TJ;QvYNh)>i$S@KCi((~PFOq-aZ zMw85fZ=Acn7f~en*r*t5(-@EOqzS6==D59~nPw~-`3?B9_DC%JLy0~kQHx(~5n+Mv z)O9tTN~dfu#&9H~cfv1XTKI?B%K{Hw6nZcqFnq4ZKT-gP^4iWCyYfd#N?5?#W>x-$ z3(EzA^AEwJfi-tT6k&`fXp2yMy6jhkzMb703VM@sw@Vyrz_RA@i6sKbpT#eIITiQH z;OlaU!0o8sRl!X!)^iJD9y|5SXz1sd=6f?jWRWxjarO3+6d$3&Tt(vH-Nq=N*+yT( zhC;_@DO0$6b;!_z@;0hNZ!L;-C#*?(&FLX5OVTrcVrVF9g@r$v_y-&7r_tq+Fe0WsOnt4&=f^-jZ6j@Msg~nD+ zfwmr^!#f{!sNrAttlGP}R^uDl=$yYlVcxK^B;e1A910=HX|mnUGOmE|UE!hvM@xvh zirJs$G1DF+SM>Dspo)F>@uOlG83G8vCDC?vy?{{i@bK)<2aFK*DghERP@$HUmOgX( z4r~g%43jH4kS}f5yJq!AGJQ2;fNK1h8I(h+hR>uFIs&;@ngTiC_)ZDu`U|9r*t#W(~oznZ#@b^C(^q z7A~KYj0Tj>l0-6mWyL*qwD6k;0^8k`Y(Lfs?Qwu36n?sU;JAs^NH|6!@jN1 z<7O)u*y*x)H&EZ`{=d@xwGqDJ2L}fi55V?0S6)?Bh6$qwR(usPhWF>&^fb5oir6M@ zd~y=&xM~Kk;Q$wFE7O_?KWdD|61%?Na%vN+^{9t53G&kn)DpNRv1G?YqWFTAsS-Bt za8M`V$Aes>cKHH#@np1|`N6SHh>a|D#^-;oiB2jo1=|S$iq@vj3a5`Zmke^y9 z3AG1Dw^3(i0$EYV1*k1<_Ct825s;)FfQ=zN27%@E%Nk(1mDtMmXa2-#m!)FrqebXE zgNtPVr)KWDgoK8KSScM34P6E(6M%mtAh6Aj{LU~ib07Qrck%I= z;r|_V^#3F3T>kG-M`Q~j^`@+uu_8soD%;YItZq$hZNyjN)u&WNW8^|m&-YJ)Wl@yd=OGZaKM%zhx;v-0~ps6~)t5hXD z1urs?H2r*hevXCfsPlgR$ONVuYx^W%j8~U;`|&-xSLC|-s~9iCr{`yjW$7I z9vu-zZ;z1`XQDWa-y=IVnZ)ck=_dH<>uc{bJX=Gfp7aIYJtYF4V()fv-s$8cK{e5I zG)cDO&Y=xTLtsUlMO|7*JXfCDdd7Bp+?Y~&_H|Ud8vMjGQjV-dUvvhlll+v#ZF0+Zl8JkZX3g5nc+b$hp zWpA`cew}9=B;MTXWQU?Y*-Tuj!}fELmI2V-dD74yXiYMTW`a#2md0@iM<-)Xg@sl3 z`u_;8O}oWZw6Soqv!Z@U^SVQ`F(*oy8Qv0(iNC9HMznfi!s(?`^lGAosgOsT=6ka+ z#?Gb(J#Z9x1jR>yH-}=?$%?=}z?lIq{Wvs~U2b?EX_6U#pKf2`g&|^w>Z0`MyS*~y zcuCVIuiw)TQ|HZ;l#-gApZ|4`TB4FgrM8y_(fr}WE%-1E&Iv#<;dIs$AJeB+u-Q{4 z9fPMF{}P`0c1nmzF4`u?FOR3uamZDPedmT=>9j?+G?p3)`cx{_|24f5g|v~Vop4Ay zdU~RDWKcm$*^&;EpWhKou|j#h9lzB_iL#xcDn_(MGp#--dG44Rl^W40vVm z8mdL-?*wN+NQ*9NOF@dIKnCv=1qFq?yu4<=GUFkTEa5w6XM^e)m)Dkjm5VH!f~DkI zrZ3D~(7iFncIN9yEjv3q+yJbo%F2!-H^HEQ0Vk0JWqN*|qCkk=4 zL0#zlBR}S%pqhp}uy(O+H;X!PbQEc6DJ(qTQsdov9TIc!nM=2Sd1=lK6Mrv28YgjM ztjq6@&Qfrzm|Iv_39se6HVU;G==Q6eihds4fN7D7mQN!H*Cjwodh5%A1LFDX^{ssm z!Y1#s(!t?6ck{3KQQ#Z03`qvfYJ7ZrppQSE`EB~=Z(s(25fH?a|J zfVo6Oc(^p^_b6U~=W2r089bDA=8*&xs8B}r%rM*d-$Hj!gr1;&0=Fe!|Q?022ZEJ3b*<{ z(s)TZQDrozrC`(jvA7k;QDR9MR4UhCAGj#_Rk&$E8Wh-fKu+mR4+<6-n8|ezqN?+< z_b!9rG#ao(fQdiR=|tdlAkfi6AXArW@9XcUJo#X{5p4$#3K@{vf-+fp^t5PjH^I;E zF*Z-4F2$p`r>jf2=TG!VNcBUm7>{BxrjEKgn+%_v%X6pQ$yhLXe3kC{T_p73({~GP zS8c$4AqlHg{E#sit`Yg2Y`X)cvazU-zK6xH3SmNMjuwKRouWv6XZEw#}!3@ocxg0~FP!G|SRBE3D zvt`YV_LBPL%gN_XgMED(+S;q&%!*50F+ESU5RE2$`O6OY1s4~@F_+N;*bW-X7SOx_ zRVmdD?2~THetTa^eSgv1GdYtzmE|gT+2hIOMQ6uNuwy z-b(DD4REqR?Guq-zh(7>lasS)@|Rt94RPOjeDtQw_n8^dLvBZ4{eaGg3xqhk^G>)> z;^J^vtn3=J;$!x#jEsz!@c*g!O+Cj{rQp=gW;GNO-T*nuHM zIjeJaRs(dhuV9;Mfh*d3=KDV;J;0wie#wY}qjPk06xsqnF*83u4`NeO+7vC;QyXnU zaXa_-0~8tze#zy&Py>ey4bkc5$W>QuP`h%VkC$H%nk~gjF>}Wu>*Bn|V#L+sPE}P_ zg4m#nMnmo5oQcxa(}P~Iojg3Pdes2OunZZ(#&3ciY_?S40kjrLCS!wVxGGFkIx#8n zOePb5R*WXQD;}uC<4+x$o10VBZX_jXOTnKc;1_qa{RISKK!saYw`gu%ZcR-D80)|* zBj=`%5nK0>|2Vu>D=Zow5s}ks($&!s59Xp--MzyFhrh4Nzhxdcc(Apo1s&^Ke-@59 z@HEJ{S7K#XaqipW6dEB3hYAP^Itd{GcsqC10r;3r3#E0BWuXx50?@X++&CB#GTsMi z76T{HovC5Fg#?U1(;Z(J?)2%?GX^Et2X+5k4KhZ~&Q#ks>@8lZF1x^yX2Z$2taQAl zr6^{OgvZNX_=Ms0iHEAV!oddhslx3n9fdx)VSL~02%nKf)*G|_Ii2&j+s6b3w76dI z@siS7hZ;ybw*-m>Ghp6@gE;+PZ}Ri=a~WKR2Zd^-LCwnep9_cMl2c^7PI@Gl{+`u$ zAi}SgvB|_Z&lSjnO$>AiK(m=YP4R~PZ?M