From f63072e40cfe2d01c53db74793f40cd65dae64bf Mon Sep 17 00:00:00 2001 From: iceroth Date: Mon, 16 Apr 2007 16:58:00 +0000 Subject: [PATCH] Version 0.9 - New round bar texture - Standalone druid mana bar - Lots of stuff I can't remember --- IceHUD.lua | 57 +++++---------- IceHUD.toc | 11 +-- modules/CastBar.lua | 13 ++-- modules/ComboPoints.lua | 2 +- modules/DruidMana.lua | 139 ++++++++++++++++++++++++++----------- modules/MirrorBar.lua | 4 +- modules/PetHealth.lua | 2 +- modules/PetMana.lua | 2 +- modules/PlayerHealth.lua | 2 +- modules/PlayerMana.lua | 9 +-- modules/TargetCast.lua | 2 +- modules/TargetHealth.lua | 2 +- modules/TargetInfo.lua | 2 +- modules/TargetMana.lua | 2 +- modules/TargetOfTarget.lua | 8 +-- textures/Bar.blp | Bin 44852 -> 44900 bytes textures/BarBG.blp | Bin 44852 -> 44900 bytes 17 files changed, 148 insertions(+), 109 deletions(-) diff --git a/IceHUD.lua b/IceHUD.lua index 5c172b9..8bfe209 100644 --- a/IceHUD.lua +++ b/IceHUD.lua @@ -1,6 +1,6 @@ IceHUD = AceLibrary("AceAddon-2.0"):new("AceConsole-2.0", "AceDebug-2.0") -IceHUD.dewdrop = AceLibrary("Dewdrop-2.0") +local waterfall = AceLibrary("Waterfall-1.0") IceHUD.Location = "Interface\\AddOns\\IceHUD" IceHUD.options = @@ -356,18 +356,10 @@ IceHUD.options = }, - - headerModulesBlank = { type = 'header', name = ' ', order = 40 }, - headerModules = { - type = 'header', - name = 'Module Settings', - order = 40 - }, - modules = { type='group', desc = 'Module configuration options', - name = 'Modules', + name = 'Module settings', args = {}, order = 41 }, @@ -403,17 +395,7 @@ IceHUD.options = end, order = 91 }, - - reset = { - type = 'execute', - name = '|cffff0000Reset|r', - desc = "Resets all IceHUD options - WARNING: Reloads UI", - func = function() - StaticPopup_Show("ICEHUD_RESET") - end, - order = 92 - }, - + debug = { type = "toggle", name = "Debugging", @@ -424,6 +406,16 @@ IceHUD.options = set = function(value) IceHUD.IceCore:SetDebug(value) end, + order = 92 + }, + + reset = { + type = 'execute', + name = '|cffff0000Reset|r', + desc = "Resets all IceHUD options - WARNING: Reloads UI", + func = function() + StaticPopup_Show("ICEHUD_RESET") + end, order = 93 }, @@ -436,31 +428,17 @@ IceHUD.options = end, order = 94 }, - - endSpace = { - type = 'header', - name = ' ', - order = 1000 - }, } } + IceHUD.slashMenu = { type = 'execute', func = function() - if not (IceHUD.dewdrop:IsRegistered(IceHUD.IceCore.IceHUDFrame)) then - IceHUD.dewdrop:Register(IceHUD.IceCore.IceHUDFrame, - 'children', IceHUD.options, - 'point', "BOTTOMLEFT", - 'relativePoint', "TOPLEFT", - 'dontHook', true - ) - end - if not (UnitAffectingCombat("player")) then - IceHUD.dewdrop:Open(IceHUD.IceCore.IceHUDFrame) + waterfall:Open("IceHUD") else DEFAULT_CHAT_FRAME:AddMessage("|cff8888ffIceHUD|r: Combat lockdown restriction." .. " Leave combat and try again.") @@ -468,6 +446,7 @@ IceHUD.slashMenu = end } + StaticPopupDialogs["ICEHUD_RESET"] = { text = "Are you sure you want to reset IceHUD settings?", @@ -482,7 +461,6 @@ StaticPopupDialogs["ICEHUD_RESET"] = } - function IceHUD:OnInitialize() self:SetDebugging(false) self:Debug("IceHUD:OnInitialize()") @@ -494,7 +472,6 @@ end function IceHUD:OnEnable() self:Debug("IceHUD:OnEnable()") - self.IceCore:Enable() self:SetDebugging(self.IceCore:GetDebug()) self.debugFrame = ChatFrame2 @@ -502,6 +479,8 @@ function IceHUD:OnEnable() self.options.args.modules.args = self.IceCore:GetModuleOptions() self.options.args.colors.args = self.IceCore:GetColorOptions() + waterfall:Register("IceHUD", 'aceOptions', IceHUD.options) + self:RegisterChatCommand({ "/icehud" }, IceHUD.slashMenu) end diff --git a/IceHUD.toc b/IceHUD.toc index 67c0373..5a6b796 100644 --- a/IceHUD.toc +++ b/IceHUD.toc @@ -1,12 +1,12 @@ -## Interface: 20000 +## Interface: 20003 ## Author: Iceroth ## Name: IceHUD ## Title: IceHUD |cff7fff7f -Ace2-|r ## Notes: Another HUD addon -## Version: 0.8.6 ($Revision$) +## Version: 0.9 ($Revision$) ## SavedVariables: IceCoreDB -## OptionalDeps: Ace2, DewdropLib, DruidBar, MobHealth -## X-Embeds: Ace2, DewdropLib +## OptionalDeps: Ace2, GratuityLib, WaterfallLib, MobHealth +## X-Embeds: Ace2, GratuityLib, WaterfallLib ## X-Category: UnitFrame ## X-Date: $Date$ ## X-eMail: iceroth@iceroth.net @@ -20,7 +20,8 @@ libs\AceEvent-2.0\AceEvent-2.0.lua libs\AceDebug-2.0\AceDebug-2.0.lua libs\AceConsole-2.0\AceConsole-2.0.lua libs\AceAddon-2.0\AceAddon-2.0.lua -libs\Dewdrop-2.0\Dewdrop-2.0.lua +libs\Gratuity-2.0\Gratuity-2.0.lua +libs\Waterfall-1.0\Waterfall-1.0.lua # IceHUD core functionality IceCore.lua diff --git a/modules/CastBar.lua b/modules/CastBar.lua index d8d2893..4c65ceb 100644 --- a/modules/CastBar.lua +++ b/modules/CastBar.lua @@ -144,12 +144,11 @@ function CastBar.prototype:CreateLagBar() self.lagBar:SetStatusBarTexture(self.lagBar.bar) - local r, g, b = self:GetColor("CastFail") - self.lagBar:SetStatusBarColor( - self.settings.backgroundColor.r, - self.settings.backgroundColor.g, - self.settings.backgroundColor.b, - self.moduleSettings.lagAlpha) + local r, g, b = self.settings.backgroundColor.r, self.settings.backgroundColor.g, self.settings.backgroundColor.b + if (self.settings.backgroundToggle) then + r, g, b = self:GetColor("CastCasting") + end + self.lagBar:SetStatusBarColor(r, g, b, self.moduleSettings.lagAlpha) if (self.moduleSettings.side == IceCore.Side.Left) then @@ -196,4 +195,4 @@ end ------------------------------------------------------------------------------- -- Load us up -PRKL = CastBar:new() +CastBar:new() diff --git a/modules/ComboPoints.lua b/modules/ComboPoints.lua index 2968e2f..bfbfde5 100644 --- a/modules/ComboPoints.lua +++ b/modules/ComboPoints.lua @@ -241,4 +241,4 @@ end -- Load us up -ComboPoints:new() +IceHUD.ComboPoints = ComboPoints:new() diff --git a/modules/DruidMana.lua b/modules/DruidMana.lua index 6a30306..c20baff 100644 --- a/modules/DruidMana.lua +++ b/modules/DruidMana.lua @@ -1,11 +1,14 @@ local AceOO = AceLibrary("AceOO-2.0") local DruidMana = AceOO.Class(IceUnitBar) +local gratuity = AceLibrary("Gratuity-2.0") -DruidMana.prototype.inForms = nil -DruidMana.prototype.mode = nil DruidMana.prototype.druidMana = nil -DruidMana.prototype.druidMaxMana = nil +DruidMana.prototype.druidManaMax = nil +DruidMana.prototype.lastCast = nil +DruidMana.prototype.baseMana = nil + +local intMod = 14 -- Constructor -- @@ -30,32 +33,16 @@ end function DruidMana.prototype:Enable(core) DruidMana.super.prototype.Enable(self, core) - if (IsAddOnLoaded("SoleManax")) then - self.mode = "SoleManax" - SoleManax:AddUser(self.UpdateSoleManax, TRUE, self) - self:UpdateSoleManax(SoleManax:GetPlayerMana()) - - elseif (IsAddOnLoaded("DruidBar")) then - self.mode = "DruidBar" - self:ScheduleRepeatingEvent("DruidBar", self.UpdateDruidBarMana, 0.2, self) - end + self:FormsChanged(self.unit) self:RegisterEvent("UNIT_DISPLAYPOWER", "FormsChanged") - - self:FormsChanged(self.unit) + self:RegisterEvent("UNIT_MANA", "UpdateMana") + self:RegisterEvent("UNIT_MAXMANA", "UpdateManaMax") end function DruidMana.prototype:Disable(core) DruidMana.super.prototype.Disable(self, core) - - if (IsAddOnLoaded("SoleManax")) then - SoleManax.DelUser(self.UpdateSoleManax) - end - - if (IsAddOnLoaded("DruidBar")) then - self:CancelScheduledEvent("DruidBar") - end end @@ -63,50 +50,124 @@ function DruidMana.prototype:FormsChanged(unit) if (unit ~= self.unit) then return end + + local forms = (UnitPowerType(self.unit) ~= 0) + + if (forms) then + self.lastCast = GetTime() + + if (not self.druidMana) then + return + end + + -- deduct the shapeshift cost from last known mana value + -- when we shift to forms + local uberTooltips = GetCVar("UberTooltips") + SetCVar("UberTooltips", 1) + + gratuity:SetShapeshift(1) -- 1 = bear form, rawr + local _, _, manaCost = gratuity:Find("(%d+)", 2, 2) -- 2 = mana cost line + + self.druidMana = self.druidMana - (manaCost or 0) + + SetCVar("UberTooltips", uberTooltips) + else + -- always update with actual mana values when shifting out + self:UpdateMana(self.unit) + self:UpdateManaMax(self.unit) + + local _, intellect, _, _ = UnitStat(self.unit, 4) + self.baseMana = UnitMana(self.unit) - (intellect * intMod) + end - self.inForms = (UnitPowerType(self.unit) ~= 0) self:Update() end -function DruidMana.prototype:UpdateSoleManax(mana, maxMana) +function DruidMana.prototype:UpdateMana(unit) + if (unit ~= self.unit) then + return + end + + local forms = (UnitPowerType(self.unit) ~= 0) + + if (forms) then + if (not self.druidMana or not self.lastCast) then + return + end + + local time = GetTime() + local normal, casting = GetManaRegen() + + if (time - self.lastCast > 5) then + self.druidMana = self.druidMana + (normal * 2) + else + self.druidMana = self.druidMana + (casting * 2) + end + + -- sanity check, the tick can be off a little sometimes + if (self.druidMana > self.druidManaMax) then + self.druidMana = self.druidManaMax + end + else + self.druidMana = UnitMana(self.unit) + end + self:Update() - self.druidMana = mana - self.druidMaxMana = maxMana end -function DruidMana.prototype:UpdateDruidBarMana() +function DruidMana.prototype:UpdateManaMax(unit) + if (unit ~= self.unit) then + return + end + + local forms = (UnitPowerType(self.unit) ~= 0) + + if (forms) then + if not (self.baseMana) then + return + end + + local _, intellect, _, _ = UnitStat(self.unit, 4) + + self.druidManaMax = self.baseMana + (intellect * intMod) + + if (self.druidMana > self.druidManaMax) then + self.druidMana = self.druidManaMax + end + else + self.druidManaMax = UnitManaMax(self.unit) + end + self:Update() - self.druidMana = DruidBarKey.keepthemana - self.druidMaxMana = DruidBarKey.maxmana end function DruidMana.prototype:Update() DruidMana.super.prototype.Update(self) - if ((not self.alive) or (not self.inForms)) then + + local forms = (UnitPowerType(self.unit) ~= 0) + + if (not self.alive or not forms or not self.druidMana or not self.druidManaMax) then self.frame:Hide() return else self.frame:Show() end - if (not self.druidMana or not self.druidMaxMana) then - return - end - - self:UpdateBar(self.druidMana / self.druidMaxMana, "DruidMana") + self:UpdateBar(self.druidMana / self.druidManaMax, "DruidMana") - local percentage = (self.druidMana / self.druidMaxMana) * 100 + local percentage = (self.druidMana / self.druidManaMax) * 100 self:SetBottomText1(math.floor(percentage)) - self:SetBottomText2(self:GetFormattedText(string.format("%.0f", self.druidMana), string.format("%.0f", self.druidMaxMana)), "DruidMana") + self:SetBottomText2(self:GetFormattedText(string.format("%.0f", self.druidMana), + string.format("%.0f", self.druidManaMax)), "DruidMana") end -- Load us up (if we are a druid) local _, unitClass = UnitClass("player") -if (unitClass == "DRUID" and (IsAddOnLoaded("SoleManax") or IsAddOnLoaded("DruidBar"))) then - DruidMana:new() +if (unitClass == "DRUID") then + IceHUD.DruidMana = DruidMana:new() end diff --git a/modules/MirrorBar.lua b/modules/MirrorBar.lua index d0a270c..d5bfe95 100644 --- a/modules/MirrorBar.lua +++ b/modules/MirrorBar.lua @@ -413,6 +413,4 @@ end -- Load us up -MirrorBarHandler:new() - - +IceHUD.MirrorBarHandler = MirrorBarHandler:new() diff --git a/modules/PetHealth.lua b/modules/PetHealth.lua index 47c47ae..4eb3712 100644 --- a/modules/PetHealth.lua +++ b/modules/PetHealth.lua @@ -106,4 +106,4 @@ end -- Load us up -PetHealth:new() +IceHUD.PetHealth = PetHealth:new() diff --git a/modules/PetMana.lua b/modules/PetMana.lua index 029a1aa..7e3b1c0 100644 --- a/modules/PetMana.lua +++ b/modules/PetMana.lua @@ -118,4 +118,4 @@ end -- Load us up -PetMana:new() +IceHUD.PetMana = PetMana:new() diff --git a/modules/PlayerHealth.lua b/modules/PlayerHealth.lua index 1a73063..3db685c 100644 --- a/modules/PlayerHealth.lua +++ b/modules/PlayerHealth.lua @@ -150,4 +150,4 @@ end -- Load us up -PlayerHealth:new() +IceHUD.PlayerHealth = PlayerHealth:new() diff --git a/modules/PlayerMana.lua b/modules/PlayerMana.lua index eba369e..08e3d14 100644 --- a/modules/PlayerMana.lua +++ b/modules/PlayerMana.lua @@ -195,9 +195,10 @@ function PlayerMana.prototype:UpdateEnergy(unit) end - if (not (self.previousEnergy) or (self.previousEnergy <= UnitMana(self.unit))) then - self.tickStart = GetTime() - self.tickerFrame:Show() + if ((not (self.previousEnergy) or (self.previousEnergy <= UnitMana(self.unit))) and + (self.moduleSettings.tickerEnabled)) then + self.tickStart = GetTime() + self.tickerFrame:Show() end self.previousEnergy = UnitMana(self.unit) @@ -259,4 +260,4 @@ end -- Load us up -PlayerMana:new() +IceHUD.PlayerMana = PlayerMana:new() diff --git a/modules/TargetCast.lua b/modules/TargetCast.lua index fc32e96..3d70a30 100644 --- a/modules/TargetCast.lua +++ b/modules/TargetCast.lua @@ -56,4 +56,4 @@ end -- Load us up -TargetCast:new() +IceHUD.TargetCast = TargetCast:new() diff --git a/modules/TargetHealth.lua b/modules/TargetHealth.lua index 379e7da..3594f9d 100644 --- a/modules/TargetHealth.lua +++ b/modules/TargetHealth.lua @@ -213,4 +213,4 @@ end -- Load us up -TargetHealth:new() +IceHUD.TargetHealth = TargetHealth:new() diff --git a/modules/TargetInfo.lua b/modules/TargetInfo.lua index f03d9e5..4b00f7b 100644 --- a/modules/TargetInfo.lua +++ b/modules/TargetInfo.lua @@ -801,4 +801,4 @@ end -- Load us up -IceHUD_Module_TargetInfo = TargetInfo:new() +IceHUD.TargetInfo = TargetInfo:new() diff --git a/modules/TargetMana.lua b/modules/TargetMana.lua index 71b7e29..511a746 100644 --- a/modules/TargetMana.lua +++ b/modules/TargetMana.lua @@ -78,4 +78,4 @@ end -- Load us up -TargetMana:new() +IceHUD.TargetMana = TargetMana:new() diff --git a/modules/TargetOfTarget.lua b/modules/TargetOfTarget.lua index 6df4cb1..39a0f4b 100644 --- a/modules/TargetOfTarget.lua +++ b/modules/TargetOfTarget.lua @@ -14,7 +14,7 @@ function TargetOfTarget.prototype:init() TargetOfTarget.super.prototype.init(self, "TargetOfTarget") self.buffSize = 12 - self.height = 12 + self.height = 15 self.stackedDebuffs = {} self.unit = "targettarget" self.hadTarget = false @@ -110,7 +110,7 @@ function TargetOfTarget.prototype:GetDefaultSettings() local defaults = TargetOfTarget.super.prototype.GetDefaultSettings(self) defaults["vpos"] = -130 defaults["showDebuffs"] = true - defaults["fontSize"] = 12 + defaults["fontSize"] = 15 defaults["mouse"] = true return defaults end @@ -243,7 +243,7 @@ function TargetOfTarget.prototype:CreateToTFrame() self.frame.totName:SetJustifyH("LEFT") self.frame.totName:SetJustifyV("TOP") - self.frame.totName:SetPoint("LEFT", self.frame, "LEFT", 0, 0) + self.frame.totName:SetPoint("LEFT", self.frame, "LEFT", 0, -1) self.frame.totName:Show() end @@ -413,4 +413,4 @@ end -- load us up -IceHUD_Module_TargetOfTarget = TargetOfTarget:new() +IceHUD.TargetOfTarget = TargetOfTarget:new() diff --git a/textures/Bar.blp b/textures/Bar.blp index 67c7ad95e0a8860d2f957a99c59b164aa29bd2a5..2411e86de769d51c14a70f3b8512f27d6e02ffc5 100644 GIT binary patch literal 44900 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 K+cnZ(8T%ig)Ido9 literal 44852 zcmeIbeOQ#&nLj=uH7Z2$>XPa=iQ?KCbtvHGt3ot_n|^n{n{=((hWe5yEa{6fRZ&V* zMi_#$kryFL3A$t=6oU@WI5UQXmw?Pr{H?9ps4W4k8fJ<$;!I$Oh=T*n^SeI-_j$(n zyRKcY-@iM#41BoH^K#C8pZoQkGcWz?+UFlrsZ>Ez9(ydCeyRwReuMty(!USr-%0vs zR;j`)ApSQ$+0{hLDnf>f$(`Z1UO{mXaCtkCKCmbyB^Q{*5!T}Ay_86U2^AOAM~^I`snRSyiTP32bm zE)MF|#~UIUmv@$w?%nU(t>8g@Ta~pt5Jyxc^)Q}wc30uTg-wF)X(=f+A2-iudVO6< zsloT^UB;f4)f%bbt+yD*o}H09C$3q`xV*DnzvR2Bml)%Er+L9r1@9{C_8JU~(@leV z{plu`f|pbedyO@WJuS7RThviL1+Ob?usS5hT`fzhr>tL3{22dqwG8T?Eo)LU#`A-v z)K~m?hAMUA#U<5=i6d)0@|d4t8)^J3*7{}4Jx@!5DI9}7; z?bBYyVb$vjbF=5=Gfp?HEBy4tca}4rb=Iw2xNzYs3Lex4+vX=1tD;rY$vKeab%k;9 z@hka#ALchx#(zRy2G*{<%zrKKT$~$n;T17{<(<0#vr!$aXFBjRE27PeW6#!>-kN-~ zpRijlmgCDi2lbj_Oa9{%FDT0;r7PoCtl;@c7hd zg`Qw?c11B%fxaqf;0pgC!L+L|GSbSB z(y7Mg428a~(7XKUCdOgai*tW{a9%!R=!;K}e`7i0S!c~@(2okPEe*CsCNqvD{b`U4 zixeDIZMEcl%oy_1)7;d+c;m$c)6GMnEdNOxFNRg$OIekAPagHNWERcGxfz+6%pcg# zoRN-n#$7G#`mFq%M8@D(NT@~NeHRz!j^2|;6#9(Z`I8njD0sEz?Skwi#!IOGEf%$^ zLKUwHRZXS&HK>nW*ren4mF0H*%9&3+rC|PT{O7~+(5}C{_Ojp)^h=NT+A+S$)8f`P zNL4~#V!n+@l>z*&Ee)#55c~qa&mRbRj<1J4Jay&D=|H?t6?BMkx@ku4yi=+^#?ar6 zs*z0!hJKt|q2SumozDCa1-I*GuZ%y=IQDEw>8-bK2FPn|DfA=LG2S&ds_rnZC;e;n zX8bebGSc@$J9W=8hCYbjynC(clxjdVq#7xs`Cn;ol9(Ux4=gb;F^nNUo_=QzW7zkR zJ83^;jQ;+xGCN4Y>k7;3e{W?RR((m^-1aLq5L^ zzBt=nO5*ng|DRg=)Jz5QZ{t57=6`MJ<;w%9+zRsPO_Y#j@PA<69fwRD>RXQWX$@JG3!Uh@Gk=OBi`roaD#>Eu>WV>?~3`3`C4{Z?O;0W z!={Yn%PM)Td`cc5Z>hGlrKQTD@TXmWH0#7yjJwF+&C#T!FowPV^Lxox87C0GGBbL1 zGG0<$QhHcw-4uws>~qPF8~=dbV6DuNL*-!k8?tIib!};WL4Ov%Uws|EAb!3f8iBFFt?gT^J#e9kJd8wv|Q50$H$2A!hHI9zr(?F z=-cpve9v|b)z4F1iZ6dj}B zas9~HuODq{hJOF!NUU!Q{{jA1gt;S~G3L)ghg0ZJ=x?p|&N~zIwHwL5%Sh?JJ~W}C zalO+T{T%ZL^ZyM^yqN#MS+>S6nU3~No07IOhW>Oo_Z(pif2qg0GoNvN9ohTL%+-vS zP&{BXMgF@*wTAS4F!BGAwyJ8LuxI6++chaY*+JYNS)P%*V#V?~3g+L&e?BY^>k0=3 zQU!mz$lnNE@k}0HRo-b%^Y-k1gK-zdYZhllEMxGivS;@IW9WzB?(5x*!C!SlSr_B5 zYPa_I!7s%81FovtC**^?FYS+9=WX0Ro$l9k?>_}zQf*GVPx_JR6Z+B282Zs-iX0Ba z&bH(v#+Z*eIW3HE7X?>>qjMmvYrGe4m38l;>o#vala zGviwl8OKt5bkMO|*#88I-z=saq0cd&w%i+S<@VsO+kJdKV~pp^1)&T4*d`|e-%cL5 zGHK!kF_h`*{%l{YKT zTdlF`^|J!8BT12;U4`2Bz+%N-L8N2mxteB{vaOg{OoiwW5nkUgF)zf_=iJQN!b6`vx{@B zadYh49`WdfpZ<&R=i2pd?G#Ofm+4{EMQQtc-YX=1A0khZRqgtsv~uT@Mt(nFgCkGK zKjLjy=9&FWNBsX3IRFag-^PDFJpTvvYf}eU-%&h4_W9hIR=#Rbzglx_+shv^23-|2 zP0VNDwO8tgm_A7T$y{Hyka2CPIn5{;Rxu8%Mm#X2XAFL4Nh-mAw3n(zW-uN6cjaso z{z!ct#ZQ^K)l47PkJJ90G5n{T2lV6W2lONC$H<-3>)amWzhFT=-+vY4Niw?T-<8K% z0(+a9tchp-Kzyvfn-Hf3R%d7GYjM4uMR>LaB(Enpr`2gcE z(rA<|0w?dYRx-qmHZ$0 z>A2b~@&}N|?M00~zCXsdtU)d05Bj~K(-6RKim$S?RouRv=x>~ROXvgiKgQ(x0n?$+ zGIsQHe5ER@+pe+O`v1Um@W<2dnZ_9J2mKg`p&uFJ{gT@X#Qos^1?oq{GkVXM&?kfX zlG5JZPOIu2()WX^`^Z<6^>}nCKAt+yDEw+1*!xULGGK{GZsf z6ki>g6VCmY<)XCs_?gQT%)gEQe0cuT^`|Zi{g3B;bH+Pkd{w$>wdR)l!%D`8zr6#S z`V>s_v2wT2Pqn3F&l`^jd4&91t#LxXBEI%kvee7Ie~GjeacnZ?XK2?4bN?N$Kl2w@$X^fdO{`#y{LBJh#tz1a_cq9`CdTj=bBy-;jKSZ=twq03@QhrC?yAuDWh4)E z(G{I?xcsF2g!~xt;noZ#-wb}V-slta4>&&V=xhA`e!NU2<`?Y$%$ZNkX8ObYX3F?a zv`?iE{}ujyb7r5I-|#O-hTJ_&AJm)EZc9=KW6a-br$fxgeHSljhumw-x#>e#sd8(;DZx7=vFeSGtA26IQ)lb5JT5@`e0QOUIr+a(n2< zr~K89 zd@(+rmKnKQ#>`@VClI~q#A?CsCDp4nW%^*@Ps{RZ&B~SWk6{0|YX&YW{@bjxMQJOm zmkWIg|IaaeMc7M!ygA$?@@05_l(a?UVOEDT*qJQDzcZKwh~H9?AaOjt-ofj71{!@w61BB_~_U`2B&erM)5a)e`tmcGq}g zY6ScI(*pNaZV&%&=F+7z70kbl|9n^HG;}jPI4pe-`=h+S1jU z>E|*;yaem_#fh15+#dR075Q#A<96cjhOI>(Fvk5>ZAblb{Db?|yj;ZQPDRm>_THv> z-)4F}<%dj>wt)GtT61)-SNJEmU+ayr0R2ezFRmg$KW^8=2k6Hxnos+)GG*1+TsfO6 zw$LAuradVNe<;6JGO(2~^4)Ru`5}x^e~UH+1ZhU9`vi z51&1IDYt)^-%J_*iT0HLOX9y`Jm0)$jtInQyLWG341Hj-)Qf!Hxs9%Jx7r9dq)M!e|t8pQMb{_pL7{G90trXuLa3dR%qF`hB} zjiy_x^BF^5)m!rmCh%O`PagSU{T+F{VvG6M7;C=A{DFSo<8z4m+eWHaEXvQ1V>?#r z=~a(!W{mMmUEA$pjQ)gI1m@dUYo2UP5%CxJ`P9-!i~lPt*NXX%=LKb_B=GZ~Z(na1 z(lPea&!r1}5B^yZrj`hLPLDUl_69_qs z$;A9Z{x;ZSQ!|GDH^*)h`T31hzsvu_mZMCcMe7xA^*6;bjy;=ha=Gsb`G7w#<-7OJ z`{`7%?IK)|w(cXU5&K^e`R5c@aVWnp{KZX@WMB;WDBh8g#dwhHY4@piTOi(2A0_6G zEHBP|wD|9mmdd}v|A)U;f8w*#e1BTKk(QmGypS>cvy11N&MSDe#<=Jik$;1|Kk0l< z&2;$hwiz9~4aoB4tmOZBI{ zj(nzAWcB1`^SmNKwUftMN z@_5A->w^*#tE!kk$Oo%ma!8C(&+iEe8IQ;5kBH}-!{&6RWBrS>w^!tQP#=o!+v#LF z-mknWD4H?+!(_+skKO)??Q|99zfs+^jr#+6$m+i&^d0ogjvZ1j(~*yI^;Lbw81^s2 zXAWiz`PjFu_#k7%bEN)PDwuy8|M{>#P*O_yKcWAjk4c_>%U6N_$xe;X&scwR_}!p0 zOb5T>jkg7cKiCry{XM3mz8AgVTbYdaUEHoYfAeBCW5`eJkybJP{rcB>SmYNFkL`K; zJ8Eu^c=@U{SIh_a>$h(GLi8W{McY#qq)Jk?Qby+<__Hx_?|8AEm;(MgQZodx?%V#QR|6!PRaYE>KgjQ;IL*R8M1CN1 zEKb-D#J4%OT|%DVAIUifgnVE=o_Ma{cYOZ@Q&_b+=w+VID&*f?XY%GV9k@TnF6<-x zvjd6bZ;XsrY@y#fZ<(K9{y?5WriD%k#L2yCGh@vEoB~>4Iq@kY{`6iQsZnrAsanbq z@&Ng3l=`}uo=)+c(|!A8dChpm7V-Ux&7ZXJ`vRYvX0tO!{8_QZE5;M`>k(757(e)z zS(d5ixjo|77hgOc!5H#!rFMnLzd-*}{Qn62zofk!p#Q=D;(YTLeE)h{e_)sQeH4fX z?o{1o4E{%%cUToXBR6W#)$uuypoGC))U6d9U>os{*SKODdwkt{m06ckCguj zwExKG9G?Ax&@b@U3l9BU=p)pBT?Kg}-;{2;q^+w{;?erLOWGQv;UvE=)@xKe_uO&D zv1I?vhl+C;dx+nr`>p`_r}g4F4>*e`=I>ivDB$WvbjE;vMjFPGhW3HL*em^L1Wx zt?=Kl{_n@?pwF2cZp{bD^X^11S@22r1hrT6Xb9KG5=7HaCg|N zm=0XqvGWba@Sl2|&X*WtJ;zL10HR?2ZT#oM_JHblsY?B)gyz5f+yyURg?fx*bBoLv z^_49_A40m z=H(;FySV?*2j#x=M#dPg-X!f##(4i6cb%B;cwTaHS_#wPPiZoGvKeFjXZY-JAx{tU zn_G_m#Cj20{wMr@_-lLaHGG>}VLp$^6-yXHepfkf9AON7(e!li6vm+I^+zAz=kNM1 z2z>|r{+Ernr*eD5$C9&O*e^ehj_(en`>rVdPFY=osY$Kw45T+Lmox+Nc*Pd?zvsSi zj`>qY`tstTmCcMHAJ($ddl^Gt#BJFTP|shSdtRdv`C82HfBLCg`1|SPkL2CiB;oCpuG<8EzGh)LvY5dY7a`P5Rr{=eowt^c3}K-?br9(7asJO#V8A7399{XxFX zkbPUkTj2K`W0}P5v0kEl_G}wt%(whMqzL(jy$>DzCov8ELSA5hH)Py5Gad6` zdA#{)#u$I|@k#eotHxL8VEppq%Glqg^?9`Z&S17H{B75}ZvN_H1yj5@+_-^pJ^9mz zilqnYape99`;bokyVrj`k=vucA<_n>+mP=MuSgsUQH`(AfxqGCRo3TW{ZOKFhdd0^0uaU%_5VlWf0839 ziLVF$AGdTjGsgHtjlCl55#rHCt1X7dAjIRGO=qUPkk;qR%Mw5!O3TpVZK)y04N^u|@w?tNtaQ`GfhRedEkq zjG=!G-CI{NhQ8e(xQ*RfC8h6_+nG$OCwCPVe|k>n572kN_MlD?;k zE%5f}^FsdN@3cA-1i$cp>es*fB=^TJ9|;`+^peudh*LtJB7Q17Xb}F_Amw9jKOUG5 zAb)Ck{9pKfs0WQ6lsXvu`M>m0@;~G+2dw|V`2TLFQlG*5A5ZzUh3}7iTbJD`^fktJ zePYI6nI1;%CCPY*G3HBfgylU2x9fxRCkguveJYbwzt$}GEn^J* zuzslSv_l@0?^DGV@{#W8Ze;#o{kbV-S%rdYOVfua@i+0o`USJO{-A;>KlRgp66-kz ziT}5^ZHr<$`2WcZpJXwHesQ%qH_MM*QthOQE#&3JWyQijK|M|-6^eQn#^Y}neHr}z z$dBpTTt^vWeL{q-OY{%*h6*ZhG9CVRKP>=ZjP)MgCWVfA?NKUlGJQP%_bBl{@jq43 z{|Tf|Gc{)p@crQL1yjJwcq7&K58YZ&!5Hs%;nN!3KiQy#QXKp!D7C{o_IIxJ;nUN`qj)& zqdsGd=l8sCkQjp>ve_W=^Mk~X7=xpN>Fvbt1vfvvpkR96w-1F*;7j25mewA}ldAEG zE&Sib8P1FRzNpXrq17$yIqF&8tT_|RbgXxK;+`xp^y?56IGGOqhFdel{J{8rBm0K1 z4_J>IPX$hHk9>GI6*&0=e{Lo%08udiHvaQrf8dgKz~M;ZR`B;ENfP#IBl(vZPUi)M z?$)kVtD6{OJ;#Yd9}4}4_@2T&;lDsW^MlpXxIN~pDMAwR1^a%|p!f&aPj|fShMU_X ze|F4N6r~zg`B1SfBmaMEQq@)F5AsLLukKD^41ej~t!%NL4)r3b+z^oO-Bq~P(Iesm z%=d~aT5mb=!TijRp08H0o8;eoLe|OQsMun@dPiKz{C>b5-L3;D1Eoo?OPr-yD{2|083ppI>3k68%Sg`t+ujgG^7Lc>9M2^CiZRj~tIr_*c;X zvsbR1&Gd))&6M$<$p0ldl=WZrb+mqFMV*FQVSU!81r8yf@OL{_Mz=B@{&BWSUBejj zaY^iMCu8vQT&qjSFZ?%6dhlIM_py~VO_ynJ^)T(RMgF|` z{(h!3DI zzCYru!rp2fRcyhJ&?h`PeqYq@ygnh;P9vHE^_#9>Q&1d6C6=RHF{%&UqW5`2P+@5U;9@N*UqlG*pKWK=X zBc6wPiOVk`!LPRSKfA}*L%-T+!6swO=dy04zB!B5FV)m+dq6)J zZMLP{9(1R{s%H%SA0PfG>;Gy?Po1hv;_J(Z|5LJa-eQb+ImKO&!x;Rm$}nDFjC|+3 zMKun_SYLDSV4<+ze*HVIMA$Qb{p`iqH@H3WFVV}C^_!^I=IG;LB?6=1A^X4^)`3m_QUi-t%+#dNNT74_#JJxqh@AMg&4tu@TAPM_`_2EHv zR*CjjN26lvmrv@(Z*lJw`gjTHizB1Pmzj?B(Xy-Zb;i*D@lCt; zF^0X5Ic!g44E}#i1mZy2ceRh=PlJ!(vPHfG z`(=txEC`tIt2O7(|Eur^Q9r%j^ofuAhx}@lDoQwP*e{csa#Y9{=o=Fwu5x>_iaLf*Hepz9&C^g>kxRyC%*XqVNqIM zjj@v3mykTnKmHR9WAH!9($d6u9ktJq6#cTU(46M6MNeb;jNH|l7Z(=fFSHX+=CnuSzd!z8%hyA`3rt5Wj1eCdt74yGjQw`zCz^%7QbzJ|_}!2lOh^3Y(|^mz z80(b}6@4J=0p#iDLt8d59q~+bsAZ4po@!J@XDVR7=%~*l*55*YZh5u}{|)*kb6>~; z=4S%U|6|&{CmBN?3JwkJVH`&GR_#rxU<~`4Z;AMEAnubZGvx|ep%W@kh5oMzJt6o9 z{=eScAoMdugJ~BQE)(_;{F|2TXyg81ze|qJDEt}lJH-@uKFMm$$b0WS&F!K8eLL3t zo-yPlV_3kZ)>eX2zH$?xjK1f=2A|QTTt+{$dE$j>Y9bf&Z%>9M`>@mx6*jtT? zE!OMFZr#(&AI#68^qZod2YHNkc8Yoq@)PEt7Ff7Fw!MM;K#$gYEOfB3}dj77=F> z`7vCd5%rOJf zU<~`e^pWEKU4?4{_J2UXAB|P=H;BLQ8_i<=q8{J8{FzVqd5FK0ckdo#41FGTwEO}8 z#g#lD#*3`0R{CyKIJNgzY_Xofmt~D(e&G5$Y5ykjIoN;V+BTBJbof)FuX~04hJCfU zq`xs8{?*hx$;!C4bY0;yE8cZ7#`t+GmZ^*ppSir=Z(wgVDz@N{(P&BH{wyK>dJ+?b zz6Jf{^pF61?bbf)trQscGx&Q$!oDH@6ZxL?MZRAb<;OC-4GzYGw4UA$-$CD}%h`gT$k%L>ci!OZv3^l@4GDQdyln59$z&P+ z+U;$w5Sh->zzQ9|zNttV<@W_YTuxUKWBB)Z7w%kRjQd}2sucPF`sZk)SJ(r{;})+} z$?YMpEfJF72ju;fb%D?q@TU{^c!s$>^og$_W+7vY$DuuDi8171QJh^Di02!!g}kBu zH}jGBUt79%K-vEV`>Hln33*36U7(2z;pZX#_TG>J^a1tfog=3ex;gEG4?cdDG0rz? zP1cHd1@VAUy>KKDImY#3{6R0Z z9th?Bp&sAm@Ctqa%ON_^U&xoucUZ^^#`o&T?qt3m`f0~M-F_fm%h3ig*C_tYEKGi@nvT*dm@U{s$$#MSk+N z-Np!hf7BL3J z*8fAlMw(Ba;Hz+cfjX!!AimjEXbS#;kYB9Nf6fp+#O*yTbpFH1zX^Sc`Fi8pT?5Y2 zzzQ8;N6sN30H_CD+da_C{DME}@r(xeca-0$8WHPrv3~zZgj(2l+|Oy5I4^^40)E#= z`NVp@bi&_z=_R#HXK9eW55ajgu8{R29>?<GX}EIb3S+!ausbG_G3<9`&kx1; zz@JI+n1sFPBK{8y{#D}kSWh&VmL$DH`W_Wq*gKC~qi24DA9j07Ks>iN_wK!q#e9ap zzsTmD#_hrHjP9{$#>h7|1f3WD0M;KoXR4`TI_9%ZQ!thGR;y64#d?IMi0;?<{Xm~P zi;i2E_@tYbRJS^^Is$P>-_BKx!Qc6=-NGM-yhtg@Vm{z{@A}RE#_b_55o1F_exNT# zb%&=j9rcKi3%w}{ru8Prr-=Fi#{c%_J5@|ae*JL60uf)}`d@t6EBpt4{eR`7?f;_f zpQrf#`)K{j)vH&<{0*b=9IN@Zu=mgpm6b2XaQlrHOG=YgrJ84}$;aUDbl$h)?EM_x-1GJwR0B1;tYOY)RTv9e!7S;+FPwH!rulz9ZfT@G9COh zM$Z@X4fDUh-*bfN;IGT2{WD|KCyW-`S;ojW7U#R}GY0=OZALL)U~f9jo^Yl^|JusS zD;eW{lR`rS^bgfPOG;)i-M{{q8~_FLZ{t57*8fFml@H{9cNKm%c3Zq3^l3waEcg%p zo;ZDUgzpM{T-|0B?;l3=n##m{I!l8pwu?z0Q$58Vy_ETb^)ChIIvLXX8(J?~^Lt^R zalfc2-_N-Lt{?T){gpBD!M1q2TfvvKG5L-$#+ct7Lx&E@mt<6Ip9DX8w66($3wqYk zXJ_&Iqh4U@i;icEe4+QSRrrIL-@c^oM5e>O=bu;VTaX8DQ|czB`}5_-rSCFEzWT&- zQ-prU`)t|o6ZQx4cDOD=_#3#tSKD)duSflD;Hq*SL>KuJlNUA13O%g4!rUh8uS^#9 z(fq%~6#psv|GQTGnxFxcCSUh#hLMy6Eg1A^bscaBYoU3>xb;mCKkGo<^|`Fo$P8{$7K zsUFn-Ve8gJ+FSh?Dz=~>J2v<AHg3^)_d(n9rDxZ7a*m6#Ah4 zl}qQv_&}djZ5`gvbnvfIZ4vqc*pL$#KZI2e8!YR&eFEJ-DsHPw!L(kn>NgFHkzcWU z9fIF@pD(3|0DH2e`g3_lF}Ih=qbB~(R51TG{`2AaPw^jpxE1)lY^HL)GuHcfJ$*e) zhyFj1zw`SF-c@+qH}WCjxwJy(GVFzRUQ+^3NazDsa6=;V2mHT%JL5&h&?igl5_OE> zkG-%42jP<51roK-D@#46+bnLC3Och&HTjC zdy4yAT{|Gg6F4f$vxnOQH$*A?g}$;^DC>EaREJehnmh@ii~j?Ca$&n^DdR`y|GGkA ze=1*(eAkXP_4ACe{vg@a-^>{GW~1?HFk|rN!)M~|(pef*v7JlON9)};Df^*;(-X{s z-{~}eO?^Yco|u7&{dN^LMJV|ntiQ@uWea}+_ZyQFo|5hUitRMy zr{%G+f8qCoJm&XqSi>0aTOwT)`F&hp>+KWz0Q{1>)+cd$=nKoGbH7t?SoK@~@rjTR z*o%?mW8!}G#E+N;pNHE+zIyvTVm?DY?YI}q|Mfh68aP>i>2sL#O|{OKAy@Hk`t{BCI2 z&zN?*lpekQx|T8QQ}D5pTE-sI7xSlm`YFEs02N#4kAwH$6Z$Wm^p*Kp+0F0o*FSlA z1%ddbms|p)e%+T-Aoz**4@r^hxIOSfty%a#=#RSUCBZMmH^DVValdquAM>xD_zqtW zJlg3I_8EQqE+XsYw#r$uoXuQI7%y+w9KbJAu7Z(2U7mTr@`O)k@t^avI z{}-jbu;OW9Z?GP<;rKzJuQ2{qu1_w|^XS_TRIQj#vi<7a(FultpGK>`m-z$iv@VNa zjQodVc*~C&!~WCnOBf^GT`zCmz!?1BbmhlFUqIfDg*+!Q9sHiQ;IJI;|Mr8&>3p=J zw7Ti7;{6eSEPGp7UySwCIoa7uc)aj_eVR7}KY&xSZaJ9_d+4@RL@-8v+_FGUU=05x zwmwei53Jue6=x?Ybjn|;3x)rWe0O7Wp5QO!Vauiw5idd>rq+an^7YU^-i%dh1rO@y z&OI!i2l^{N_<_hbJUahN9&IWRB_%0@~O)fUdUuR)_*K(FpGQ+*5`C2?%l$4@Vhg5;xI<~BdzZ6 zf9Tr}P_doPn8yeFt5anQ{zD)2?%f+OKdB;{7ZSwn5l`NhDWfy-Swh!WMBGegjQq@} z=^f&JxW5!+(l8zJKhS-6h%w@qS6*=j=m)oU^vw@GU^>=^g;sk4><8_yG%5S*kl%>5 zjJdcyl);JlU(?q&&lf_iUW!S*AfmXud33WK@s$ z9_IrO>bFP>84_;ScjV^?`GCKcxV}=z1L_0r{H@u10pwe1I4o`eeL37+CgMSyUuGOK ziu(auLL0jHdd&ZG=iK7{;QwPrDL@|GTDNCR*azsRL&d)m@__LuI=S^a-w*o#?8izz z6Z?NxK2rXN>i+@uAM%}$=zWpzk9rI3=ZP8r_5+pQzpr@u84;gh{!cL<7xo$c(Adz> z|7QL{f75<~zf&;T|1;-Aeh$w&kas&fkX|6!-eU~=s>?`*y!b1&@OKhAI#%=hVLa&m zTNy*&&|t1-4E{=zQ_LU4Pf|Q({VnMbfCt@81>;y*GDCcQ7_9r{jq^D^ks-z-p06|;*-wa zqL)ZJ|(HqI{xhkLw^2CQpYg!2mJMAcyk!T zA9H=bwSqC~TMfTH*u>aB|84ee1-I)R8CntWp+9zeQx((U?{2D{+dcm62NsIw*A?#6 z^osF;eC*um6#NH&66%!m#WCMaQl*3Y1O87lnT5gtUfcOnHq#+rW=mHwW9X-bhC~rh zKp%7s^^4~rf1PEoSkCR?-)_&=3xA$=tEO!mT6T}=SWkBA{!GCy@Y_3_@>8al(RiO3 z8?!KmzkR0pX%UY>-kZyxeU|Cy@3Sv1InMae?SH$TrvGKW9{%@mV)Xd)sbY)%^vKKd zx!{g`=iY1+L;rr9g!Su#nO~@H%?{qZRAHd%&!^5!(eNewyr>yUR{@3oy zIl*+yzl!*{3*)C@PojKYZRzR$6ydL7eRxJno6xTq54F@AFuw=&lBK1W`v-buWo0sB z#Iuq*NW&QV)>siC#vk$Ef*tqbnGX5RTJHmB05uZibjz3WZqfQRXj?`n&3el?!owSIl9LSLLKSw0Qu55-qE{{9oDKl=RlfB%E< zcaV?HJMehO__rUZ{O953IJb!T3jU}~lF--C_bO@2dgd4CUX@Y!|HzLfNYTPRU_N&^ zEZe!ge|>*qa0g?w&$1L?|AoI|3wwO1Ag6%)mrnE3dpmQOG5n#CWQ~a5(n(&%e0zmH zhyBkEt`YVa@>G+ToW$2do-(A65XNZV5vevPnB=RsvXU|MSNHYnLjKwbKNq!7w1+;Q zW|0Egmz2iXQnY+M{JZ(nJ%ZmjA1|r3?L5=5J}&-FS~FwJzieZAB4hYpy;9BXK>S|C zd(SX_^!iV`K6UNDTD~6jjv?95uu2|Zp@Z@4YKRg0VUgd`Wsbe1@T*;47j1b#!Grn` zU4~l0WPj@-lNcjk7Gko$#u)OjWmtZmG1lvw7c7&n)a4@7#MbgWnJPff}WA zV!UyESwp&m>5!k-ulwQ{<9#>FBSK#M?=Np!$aKh$GdWq%alb@a78v>>L+VZ9_Rzod zeQkRgga5;$ozoa&KVfC1x0`W0<+~H=l>9mLi`#Ta$Q$xe(=4}y{)Rp}Jiq!JUk`o{ z_a0us82Wjv&lRm;+P_#~7w`M%{3rXz{vTCrQSXdtkTdU3Fa&s6y^YyJ`*CPLrE_l( z{~?z2m+Q8&pA!6yidiTwKs{_rT$IG^p&txorSlp4`4{C9@&x_k&DgYICw=1@ zb;|w=(1U7BV!lIO%}XPNzQumP>y5S+Wqi_2TfB}W#*imDr&938FAr@w!v98phaJgc zz9PQfo2?Q47x=$nSowaWFv41$cpZvAD8G4Mo665a{p;vqqwxQrKVt3DT&5%5wN`i? zjG<3&S!0BMg6qqz2eX+D|AW3QAmDvVO0U>$Hl{y1|LOZbz<=6XO=l|j(BHP?oxdnM^5?l0s`GTOK~<$vk>DSM_0`;Gm7nPY8Y zJW=nx-k2d6hUYg`CX09)_56g+>z#am^k4RMiun$IvQARIFBbft(w`;hz^O)4nQ}el zM-MkdF~~5?K#CLY)I~k+itLuoVQ}C|B^!2?C#*nXU-4@Xv@n}m+jqpz%o&V$W ze=+T?#+eHK_(;kZ`Fr%=XS0a;nn3eIB_$*<{~pF+)jvyU7VEdc&ySv;HHX_ne=j?| zOxzFr@>qhS=`0PZ*j^(3QT-#MQqBFvdd=XV>?Fp>7q#{JguaEnSoBp-6Vq|Ml+&hR zjC>C5?+K8f1e168`s++bKDV+mMc5a-uQBh?7}L@JKknFalrj3dIc09Jf+@dm9^T40 zjO@kOTek!3HPsvESAU=Bh^K3EvL(jQCv?0*0H*WBHf?TWI{cHpc9)y6Ki?r*tNi(n zr&3n6GX0VGPZe9l3z+}o-+qAgb96p&K|u`j3-dWTGO|IzVbzp>`<;TRo+Zo4j4}SQ zP09BGM;EVgDsz0_m zkSFT_?Obl(Mf3d)m14g!zfIX*aXse0!P#fz_GQHHR4H1lr-D9_ojn_v4u5mG+PIW4 z{6{InAl?uBi+d_t@CW>_3{v7x=z})v(Ib34+D8Tj2@V3!HK>Jr!QaTXcv6)1wBIt{ zHlH!<2jx4$7~}plmRA_V|6jWFzp?)3GQRx)-y%-y|LFLSaee@kzn+i~fa&{fGXrs0 zb@~HzzdQuAUs9crE(c&*G50`wf$7^1@Vs%%4mx9{KctW8dj4R2%Y&Huzg|o?x?j6q z9uw-EaQfG-AAeuvew6Q0zAm2HkN01pQ$FE==YReBuhYMd>HZJA-`DSt=Lhz$q;#kw z5Yu{x#0T-$+dqi?`5%6L>W}!<|BL_o;agi*@n13HRkAK!!Swy~)$%O`lfIYNix%LZ|(cx?9x>UYx5sp%YKVc&ZZ81Fk21T(e%Mw5R8#f9?4lnG_!lP&FAJdVWGC z#rNY9iu$&yOP8o%dVV*~gJe2A?|s>>qO%%8sV3;}Z|LO7%Ja(VT34-F#Te%W9jkr* z?-Weu%R~mh!Wiq5V{GSajM4s?Zx?qfcyaE%_g9Mfi}R7)W22)Ao&5Ed$QKkmBe%Im zIo}=nsrqIz=65Q^+ygk@^!)eiaoiiM#~iNuu$?jTQO^973yk4UIIE8RFF$tU`@re@ zB8_wU*dfMvO$&V@l%J3K0I`1+W9&~zo^nU%M_j+k-6HfW@)@qJLfF)DJix~ei_xCh&|8YLaijbZEL2J81v4;=!w?p~L_lH0qOq-;vmw|p<)vDM_ z|M%N||BEbsKdeveYpDAbWAL+knNQF$9v==4%Yk%VrtWqXz$j3 zAS?A~59K#*6-k8y{{4@TR;ouE)WV-e{v%oTA|K-aAU@DZz4i%6vxCkvI@t6Z+5i2Z zp{jkf9#@vfCh_zA{hvH3K>i2yf%1?2IBk}1zrpR%zXEsB|HByPjT^qy34aLto2HZ) zg+B#<<`$I$xIOjMO|pV>3S9R`lq$}RjnoQM9zv{2zMVt-s~wj%%N@1K5i zMZ7=os=q4hMUdaGxOh^$e{Cu4*Dzf?#`i~kPcj}q#Tfe)W!t}>Q81l{6&k;pG3wv; z(Ys@`AA;n4G4ZdYwD^U=LGB;on-7~SKVs~m{BTB-LGT~*?Oy+>CcnJXns)4`kv$FJ ze1Gg;H_K;tGKRhmeL(+F|5vrPG9C4(`p;zH4^j3z%~147Fw>Erls#i&zGHm6sVTzW zfxO?p+@a(4IM4kTZ&&`B@e(@!$h>I!2xHWXq`!MS*x}y~;G_LtwWVi%-nWnYi~VJ5 zj=nAG3s_&iyFoX?bmYf}zo2>(t>q7;|L{Jc75(Dnbi}`^4dfxt-7QP;ITl{3Zf{W6AzFo%r zn@it7GJy5KHjiGce}F#SoW5PuzajtAG?9zAzo2jOWaLj^9rkC9_5bxJJfUOhyrB$h znWzUKKO>J6ui@vTzr_E5{*!#u1YkPe*XMlcY9Rhg_n$@oK=0f3vgi-SYe>G<%k6Q# zX+!)?uY!xxdV^9yz+s@;1j*@(j}F>k4mryaU`noOe||w@2tZtp7NeUGg)g z!{5JpTFUav`xKet1AHGrm74F5^Kbw7J>@(J;K?WUkUuc~!F-=IEi_cYGjhrNuVRe- zoK2%&e!;kw>an$1^S;R#`P|p#XmLHhpXZ0~`&>-NdLCEL|1D;W`B--P4{eOGzQwY0 zx*4k_zM}I?V4uE|7c9IL*uR~U;Rg2?-!F3ScXqpi=>&+{<2f>|ZG*hyJZ$fMQ#{`v z`J)Z;74qcAKiEGuX1B*No{;|l{nxG!a59A>1DN!2V}NpF_T-HCLSqy(n$> z9p(ExFn@R7l$)83^>6hDgRA`blxhIyD|rguaC3ih0PDr_|8JU`p9lZQJLX==81rkibns)l?R*ns|M^6td);K)Xn(WHf1Xsu z8h5DDzd`+|`ImbcV?KE0H%~Lh_+?ntF2B6f*B-`>er3~1=??b~_PeNDC+s`ye|M5itS3OdLAqM| zUF^<yZFj*tUkkBHzYqM0@5^@azVHX# z_TSr>j`*J3-+=xP>I3B;^7PjhyU2HAKi-i01q)vfd9>MX3I1b#IwRaQOvm_Z^&ul9 z?{p%sitIUkKf}KM^V~t$s}H9{WHUzovU#TcOU9^&ee{v^8#$aL{z>^U#1D4{bauW! z^2L%j^)HN}-=eh@V!lFOS>h)Pd4N56bIr&_Zjbn9(&WJSkL-VT_9~{sUmP)qA7YI9 z?8oI3`iuUE^A9TQ-#Vet+x30M6=J@_UVEE+-_Q2T`>_9fsT~&zYPf&+J`vs4jW)&@ z?=2Z#F(076?VFqL$SS)(V#WGvS#u_wpNIAMo~}fZU&MNfzNH>vpJ9KBnudh^g+I1H zcTLCxnfXs`03kG2&aN@yol6A;0%GzGR)iZp52eckk3sqrDpVVE)CwRxkLukJcYw zcKbwsaNfM5(Y3?hnEnTUyG;L!RSKqf)%|;RkI2pzrG-wK7NGy!+Ccvo=d1kvq6o3y z68=h%*ZBj!ANH3T3Y7Kx*#8jhT+~nU?t#3+U!OkW)pGy*?e{i`^^UNQ>WkG&nGXH@ zkvV^+jMIju%a6mqPg#Ck_}8eH#5e8H@$(T+^$c7V{ioF>8fS`8ie>$I<6ae2J>x(}8+egCR$M`2MO~!s6{|Do9R-Z}7aD z`ubI*;xF^2y;i435EN&iy-z!>t_ zWs4H>2LDo(J+PnY&=0Aq!zboyx#!&xhGb*z0GjbEsXW!)K;XIoDW6F6cI6v#pnX=HwIA3XpJS_MNe`U?3 zIf4#<=8NI~2XP&WA}ZiJPG1ol#KEGJ6rapFowLP7r$s`?6?2ZCI!rYihovRw=y02 zK4iH;tj{hZ{v3GTAnJG6&u-`)&0FP{_d)XC*A;F(rz_$9p+E0m@61y0;@soSawKE; z192A1BFOtr@@Fu=&UZ=T{mMu`-v9fn-OBqcss3WFD}YYt=O?R$yrch~F9X+q(|Jw4 zBM!bE`4&0hZ82Z{_MZY^ru*|Bs}%mjzr1_zp0Fp#2Tt#=(D~ahRyp90T=@RB4xYd` z&*jZ+gAD!or>5Wh!Os1KJR3*kw;98qYl*P9LaCOI5Bx*>|C$-&2lPMGUyA$wCibt? zQ~k$s|Bcm5NB*nHSCOY+s(`ic5&Xyd_NU|veSvzBMx(5cK>myLU%-5z_$NUBLH=b~ z`Myc?*XH}{W|DV*#ESar$TXYiFK~0=C;i+%_-}9jazw`%^_cTtS({{?U*0EUJ>m1i zlk52X;ZI5<-@nBe^ysaBlNqDlX1w5ep#4Fuxu5B%M-5BL{vpI8nKar8J*@h4#LD*> zBj5X={-^vWIRH#Y{a&_ZUSy2(mW~~-q63jHlf-{TSJ#%VcmLoV_Yd`|U47b57-Kw= z@A!nhhkR0bU?$`p5i8cO$z!M1^Zk+UI{VGB`;6gF+N_@l`-lF07;O{!9Q-f#-EZOc zkSCpPG@!qcZ-(!^De`s5SL|7z@H&qN=6ASGmP6^hV0_@8-=u7Z@_uxFu>79Lx5D4G zYU4)&=>=~0X2w__`rElqA>Z(a`fvaH=S+uw%?T=qWDI#)c)}LV81_r8yA{f+`n|PZ}$qM08I6&Av%7o!Y}W^ z`7t_-KV$5l|0DnkhWxKu#Tfc~NWOJRC7<$Zc*yhQ6V995U&O!i*pD2H5x>m+hXQf_ zH0;$__1mG4cMHio^u26T@~5ch%Fa5Wzx?YfBL7kF6Z6T~T)Bha2mb!nJN?3*;e3_M z%xj{a1b;_v$q(iBn7^m)Udv>R_xa+;&Mz4I`$jD<(1E{dkc`5g zg*_RHkRrJMhz~sX+yR)re?y)Vf%BB`@lZVc^GJD!pAUI-b&rYtuBe~)$K5YyI>xK{ zf=OcKvSd?bC?dxP&k-v7Y(H^JoRKjfVv zR>)(F0q__)~OdY>`!d%gEh+m!f|{4HOf z$S)&5-(De8!e9+)<4}73;@p+-@xneJA8=}5ZIW_7I-lx?YXv{BpKHbE_5k}r{*WY9 z``c5+68YxPE|2gBJrw`HB4x5Y*qKiC(ha>%0}C9+hnC~a=I0?FojUMNK)ukMCU;yK zW4gZ{yhtX z8XkBa6rJ~SN;&TX&wKY<9+}%C{u`@5E%XuU?Xs?Z@m#;Q_=>&{o8mvo9L(HCe&6wd zLCy6E6_-AIuD|j(|-+XGo_?y#qs;i=SyipJNPkFm|KKB1cT)N)k zA8+!qV4vs69uYsF{(i!IUf4_IL$rg-g+GbsKQ;U5rGd|cTaq$UFk3FznVQW zfdBM;PnYTW_>WFpM?Jo8x@6?%L7xp}{_=GmZ^R$A;tIh}#BWufUlJH}wNzr{=OI3j z43%|^5r2^W3wXYNzv*T6w-ImLl}B{^e8fYY#nuQOZ`l9D(?Or`{a_yt|DdUjG3r&Z zd#?o8!_^v7b#V{VVgKpz{QP$i52w<4S2p;tpI2Pw=lJ;;Px~7=P9AUQgZ9KPgZX~& z7q)D69%PJslcC(OkTLRu4e`o(Xwd&p%_RMg@g9be9A9tE&qIFv6FL1EfBhp=4(cNR zD$fvX*N`&h0Tj zRI&~B$1f9pdp{&oKFXh=4u$-xbRELKfc+f($>_&?J?g`AEGLbyO_)QNPv7opiNX20 zGM&GL?}J&(LZmFrHRyEI=XN(K`7YSc&qhBR z<@bgDQ&*+n{20GS4twEUHYCOe`NOKwzRbYqfB7-3&lB%U`6{VhOW*C~|IEDw4cV0=BNLCAum$UV{k?N zAH-*Sbi-mj0P+LXaaG5dj`33szl!mb2NDN}zqDR+i|&E(`D}D_lqgg21nA>k8NScQ zr9(wsURQYi)$9B1{{AA~rSJd9YRksURLZ!YIgPp} z)G}_#+k~)6%s|&>tp3qS-oqVj*kE6p2Tt3BCQAaOD45q~X8zgGtS=c9^`f+%{d~{4 z=iWOPDQX#I%sn^5%$GZJ?>*;petdtQ*WTFs_Zf__%)E>YKi(OLKsH|8czuG`f8lkJ zvEoaNRpRx}c-7+PxgQ!pA;&o~{d z=+4Z{qUBGNtHE!A^xKta>MtcI>b&*4^go9-+wNzz$ERQ!_Ode0H;+|R6!lTN%5prx z{E>)BZ61sJ8XFbu8FPo@$C?f(x;>oe^c{QueO}EE^GiH-vTd;LJFnNP@S6_iAI!>f zxfJc-zef1!4N5quwx##Sr`yAQeSK38_!7Uz@8aj9T1`#OmvkK}TjpkleJGORd|-GX zxQL?Y>0nW}_58)Qo;sp4SPodzjch2;Q@7DoP_CZQ!T;ytwbs8M3QVCa@SA*!p9icj z#V}oC9hc>7LL0H-dwIArp$VE=*rMg0K?rlf28-_L*l%P=kphN^^Su*b(;pZKn9Ry zI+*Cp%vzZrbnt&h_{Uj<^|9utHXSS|-?mNR%lT5YxjAm&duF0N34eEZA!zLnLxGEJ zpx*{Jc#co<#Jh)j>bzc$$HYJX;6~TV{GfyXGs3?@s1BKTZaRqhx{C1sk>AJPdH{elXME2ge&Qy=+tc!I}S`Hs1F8>GQu1NXG>5 zFX``J>hgerx8MiC5Gwp9B|qpZWLsG+>(cqbZ7cGF z&iJ?ElWIB{|AArXU;3}PBaj7%CnWsQgT7{k@8+?}kX8O8dBBSQzTP(_KbQmk;0B(568eGC4`*i;-ne@&$(xFH@PD@W z8|(31cAMQ~@fcqSV!bX`cys>wOfwilMUy@dcpLM*kO$%>zj!+EAH)y(APc<0n|K$= z16zXMS@^+|ZJ1sR{h)*YI>G-_k_K1};SX^@@PiWb-E)9HqVWHGW;J+*ni z&W{C~o{P$Hn>;}J;YJ9A@+{}e<$*zge*xryYSzStf`fJ2%1wE|!GE2Me;t1*5Ar4T}2+K4DIVZW|0Sry2l$p`nq5nxWZzL?8T&S&~N9Af3&b_3woz< zlv;X)`Cq>&$pcsL3>9P@_>ufY28LnIwa5bK;tBKkmLamzCiV$QlZO( zkOed0GXVR*An@6m_{BWG0f=6_JMDst*y-?>ypZI9($WtHO#Fuej{k>hjb}gp4gBZX6oX6<D{5%x;-9o{I|ke z2sVPKwh)9kXpskDAAo^C;rng0-zE=CC)tNi2Tn?TKo{&oSNP5s!(>{Cu|qf1eUgN8mJ3JwtC-N1KdnB)PIURdTY zDDmIG@>u~ZWHCiL!}h{uo|h8_GIhe_Hlazuw#VhbLVB z#q3Y(|ML0&iO0V)|ECZB;Qhb>#+UPdA5;E-8nwQEYn%V={GW;!#>!9JpTqy5;VkU` zQ|J#*IR59^JmkMy0{QA|9b%%fL!Q+9R4po#{X@21KwrYa{ce_xk!zv|2?xz|MzhHKYT&6 zp#Oy(+0p-`#r(g>?y>vi58Q8y58RUE57;qLpJe}AZvVNU>;Dt5|HQD~Irg9RjK8w~ z!ut0kB1Eyw&yGOgmDDf|Bwb_v$sQx5*?od2s2O$XiA`b&xs z5m3XM@w6Qi85tR{+o_Ul|E2g~E8fffe|m)fR~NEH)xrbBvH!1c{*U~>`uj^tS`iI& z9v)yc-T}XXe~fn^KG>QsD%t;MLFNZB^gr(&lKx+>ARep`9$-<&|7TtEe{aG6lkkrq zH^@990x5rJMwZlD$r&Ko|7&&x@t~Lh)a)=F)Z>Bme^5NI$K&zlvkmb6%yazz&@StF z{r@%!|3CO=-bQ{HP56Jy=T-Ppz7Xqtf0^<{TJYENLmB;n;y*md7n+OwKv_tPPV+x5 z@5F!Toq*akwf*6-^gm^16OG~T zFsFDI@_|&}Xy~b{uitOvgW-I~K_~vh9P!kyCY1{N&?Dj>fxh<^`TH#d%L}ajexq8% zqVHQ;Ro}1cd$;mJ==?Vj{-qz5ma00AY8N{l{8ekD0&jbN`f20lGQm+e_)`l|JL*j#-cnB|&;OMF8|;3GAGV#i z(C@z#13pRo9^h|Pc*}fWCjUqI9^)2%Q09B|cqd`qJ&YJ{%J&BSvBB?M{p1@b|FZ?~ z)Z=aMU&;87BEL^R7`{7v5&2yp?xWD-i4WpWvVNcJJ3b%w|I*9D_&txeaepCleda;O zPy0bZe`xS~Mm(|J2G0C%$0yaaj(-{Wy*?Hpe?G!T;mLUv`rXy|J&!T}C-Hlico(hr zUMP51;`bca!zb0}7ij;dDaq}TesA*_*u6}JH~Du&noWN1tqI}JWAOXr z&tuj9kUkgkzX!VAj7jMCXuk*W6Bd5&NUw=LV-EhQ#&@;rSB9ph`uZY5y9aTPpVert zHu3jNSjV>}{W&b_{mHg?+#LVHpTpbO*aYofK305M@4@aF`MvFU+i7S0Uk$G{JP#cY zjrYEyiVDT+QATep_xQgo#}j`QiZA*a73~gJbjQDc-`M|^;&%W)olii&(?#=r{r&^) zY}(`=WjZ+CK=wjG;Ex?|JMG}VhWMhr2{+aD^ls4S5xsSbVZ+xgb46to$0^Il$iM23 zFB*7Pg>N*Rzu)Cn=M$ZSb^bwa(4^1Be!yt5`XoixACaG>nfCIg zJ)NmNDF3^{J8kPvyPdYO8meJsWwFpfQk|ok$X{*fH!DNJU%9ynvdk6aryB}fXvoR= z<*R95{~}of>fwQ_SL>Z}q3$9`_=qC#n^PJ~)wK z*!#{*V1L&}*mq9J8Sx18_i8?*Ht3j`?5u{vo@x(jH}#p`*FP=sM=sMJ5zn|t`cF)6 zh(ngeJLe9I`s*~wGgSX9tOc}#)vmGehL>M1H{@ITT3Xis4psx~_eb+#j%B~M zt>Tba4}7#5Y=sZcuCd>|PWhiyozu4dwBH@}I3W8+RaHre4maMC^A}ZyME?5LT3EAA z!GrD0goszDO8ffj`#--FBYvj8pX&dB{{SXv7VCkT&$m4+^S4vBR*syVp0NvQp08aW z|2lv(BQn4BeXNBVVq7@)Of)yQv`~9c85q{%SF>pMBL0FlLi^X4{>$_o)feb}{nN?y zuS9$&w*Ph0Zf`fSBF6ZciI&&CGSm7KeK3 z{u)K~d1@o|IUW1I!oL;#P&1BEtulo8<_xMAmA5AJ{AEr2Fdffp{i*JBL~Zr&Q1$OZ z{0@%ix&G7#me*hJ{{ns9^t{%e;=B8B(D=9Zf6s(o|0az7YF=F&`pxUlT_DH|7ENO@?Rh6v#CA`Z<2qk`7GRFxqsmm zk*(%1^dITIUy;uLM_>A0+?6ozu_<7l&>L{YS0H*O3qWg+E{V%l~&( zd?WN91qFuw>n!wPsJ`LfM)69d|JeZTPY%muo5u$0%FADVS@rpJ?f>NKO+LSzyTdL^ zKA)v1{5#+CHi~HdbG(c6pGenX#Oss(59+__G_U_v@^vPkSF(Sd`07hzzQ=mky$HO) z?QBJcVi);0eHYxcN!2%P?H^QuGPak-`_(|8Sowd%p#P7+;Y-bb?cs}UB7R?b?~8c7 z(o)lZJ8kO^Uspu5FHrp}D}Q0w|6-W$tp02Zu=l~e(RT`a)l{i zd(zj9H*~?g4SNSXT8O^TU@>=t9tv1#;ukFDZ*d*fH|U+NyB_Jb-`>HD7st~L3^V`H zqkEvshDJAIl)rKC_jk2f^~^EUcLVbKDtfKzL%s)OZ#tV87;ZWEFO#q?=0Tn)B>T$l zEt~(-yx&j&w_o%7LwWrJMu2u4@vSF+_q$xN8+8}I)E@pz%k}Hh-cQd!c&Ft4x8Z#i zXAz38-M(|@Cgj2qJL2vdlkswN?@X4B`xkYmQegOyBpN^uOgM4ub9tWIHc0P^! z)4k~+|Nl0WE4Vl1mBUc&z{*85uY zKw1w{*8d=LcA)=V4HOrv*m`Pjup2&^4RIsxpQ8Rx(LSHDIL$wsHf`ET{gTS=IXVBh zAm3zT2IBl*+fq`05nard#Qe8CH&=KMpW{v12-(*?hJOX;M^ZEYg7+bbC#qc@{`bl8 ze-hEjh*v2NjW=8m1`Yl`Rr9~}w{QFHs5aU8W!&=v&q`pl?SVW!Sohgyp$%%jq4gK- zZ_tF1I!EtMO8?Qd_~M=FTk!9z=$`j9G^lIR_{Vn6(s}zQt{*=ane0onB0A(`+tH&f zE%Nu2zi%N(`eO5X4}abo^1p-6#qPPGz@fvnd$N%Yg8V7qM&9`-zZa|beRhxZReSb) z{q+X;r_m15G+#f`@9&BH)%S7#;MXVx_-#I}LF4a{e!oQdkBhL|-B4i9p4wWOy)yTa z?_UGkN?#&!h1&1+mX@Q+U!HTsLn8oZwf37owNR^V{miu#ee=-K*6V*Vzc1`ntN#8S z_6IhDkT1f2$M)^p&EHGBZe_-^r*a~>G4zL5AL8E=$&KVr<;-W%`G@7}x|Q+2?2qgn z;O`!CeHXC)TecJJCHIfr$$p9d5dQsP;x}^k%7g6hze4#Ny=SYZN z1w_-WCF+bpl1tNCLCZjql8l`~hgd+2P11U-N+&`&X#xzUBLNZ^5sN@U-TynM_CAM7 zqsA9Ls4Q0e*r%x4`~Ua1|NTGqj(%?b|M3t6!PDErBa8ko5Xc=tKbz@iKmEKzKL-V2 zY$+PA@Rdc+Y3RqBemn&si~gsfpW)Z=2n>(F@CaP#2soXBFrQw^^Z1SWHH_7xAqane zJp4ELAJ=?2wfm*Hf>5)2T!hovE;fi((QbZeZjA4!Vy9D-UIEpFJ+rk8+t8lv>CLe8 ze20!cMSeccLhYkRdomn}_Y>7KEd4#5&cJY)iQ3OMHWKa^optS<1#{-cq{PQZdd&2Q z^q44p`*9D98^`)IEdReRPc}Y-$y;jo7yMcKQ;z8VbUa5l=}1w3~OV zD=x`ylBFq%d8W>Sus!pO7`BFs}O_hC4)dYazv+&lxrsTQ00FEz;x3Qjg2Ikcvo z;r!Y|xf?cQKFP4%d?+`eW!dyLt7B*1y#D86jDpbJy*^{2a6g#|p0fPM4a@(E$@@xG!J7XHU8HT*S)pzL_wwsfUwwj1A z1;-e7e$!RTa6omQDY){D1T~(UnApp3Wc8ukL!Z7|PPk5N6CHN5VL@!+|K!4bV_`mYe@*iYAvjLK32nY0!0naOZ z-y7WrzJFzv%=cCo-v?ArSy4P$5SV;y<`;8pMOhk#?dGxi;D)`N@AGTh)8peCIZm~_ zn6q(Ta1eVQ?MX>%tJJvT^W6~)r&`KP&CSl3wg$)EzNP)ogMZX~@AmzN=l?)?y32QP ztP#SA@j2h0Zof!;-$$!6@%^kY&fhk3XF++>^5slEk=36S6qZ-Mq2Ouy(6{fom*M={ zWaGW2n#ByKT9S_>hwq2wKZrb;xG&8IobRXhME9+5?sHC|`K8zECs{>{Bogrb zD6gz6CLcS^|HncT`TPgpPd1bkv-W`M7-PF%1n2ii(g#!JgsrSS&XQ+(v@(d>`*D_O zdP7i90BZ-|_jjipC%!Lr5Z?z>Uz+cS<$sm(*N{7P0N;06dx-DtZhRj=_IH!hHkrxC zZvLzwI?R~NcMex z?enXqgj(l0XF4Bim{@xM^JIUh?R$55yJL*Tu>H>`KmB76{a66L*L1;tj@dnK98s+( z^ZlH;#P=RdKG@Ig+xYe83}gM)_w{kUFEg#l(Y5sQ^*_~eD7SUh(^~d?Wc8Yy{P6$H z?YaC~yZIMSX7K%Aeyz>y@yM3{Vtk)p`;x@>tG&SYj|o_hmMmPfSn1Iq{c$}oEdNW6 zkHYugMfWXmzV3uQWzy?I!1wUz1dzSu;icI3@YkHFtH@;X45%Kff3iO55W{xTkH>sk zA7wbdHqT_WH<%S{GyAsmjbj-6U({l#Wf=1Ru5{ZA#P^ks)&0+>S`@zbLf~gG{pAWV zu)o9dA2=R-{Jzik4d4A;z9;+Z*jz4e_+Om)<(#hrs>%MJ5*oN!h3{MAiSN1n274{6Wo{LdUz}x4&aq?8WQJ|#UAePf z+fkw5&H~+`gL;OsUW92&Ut<{jzWux22@GRDP&jkXyLIiv_nCb!z`pP3UcY{#Fjn&5 zyUX*3;$iu_$ouV_8{&5gD1=OKY4WGEC(rqq@4@CZ=Yx#3ncSB z^XLrF-@*BeQ{KSmhvn}Yk7zk!8$=#G*!TS|zE1_;lY!6V6-n`zjF0rQ7>={Fr?)o! zHJ;)8+RqBox@-CTkF4I6>sE`broE|G)e2D5u2t$_`8>nP#$CA;hJ7l3L1)1)QupnZ+KKON=7Z~syth2l{~SeZ zCt4>mzV{Ta58t!?vgP2em4CFq6tR`~zDDMIL~K(nLD7M)Z7*i>f`7JoX(G4p^Gu%= zG?h%}`*+OWogt=r_I#eHJ$>gROL`b4?{0eAMdN6O!3QPf4YISCeo5L@V4K~ z%GZJae&_v5J)fh9E%-im;i5%MUheX{R(!Y0KivLQFEVtrobTm`t<9`m;Nhk4J>oN& z5A5z@@(ZYLPd~i4KTE-Daw>~UGz=r(rqXQY{vI3Qv?DXQ{g3s2hkX&(55$9Kn~Yv{ zPB~%={^_8AZJ;1$=v=FOFZcetM*iUYaLUke?f2hvo|ZCnq`Oo>bb`#C`0?K#YGD}d_JceB%y1m-=hvAF<@KKUKC=4Y zI#0uvmHp4l5nF%C0Z$=+&W+-G)_=w)ca8j`g%$pP)SUK)eNPFQeHPh+Z#R2K2M)0B zlZ^?n@f(=Du>X#jm07|t=D)38r(+oMH19mxF-K`Ma#$M)I$F+mG7^`1_jjw3RNtUma&D z^atNRCfWC1LN(d=0fABprbX@lR>%{k66tR`^b5wkf`EBd#<$NDNxZ>SU z{+r1U@wSlCuYDCfP5)+oC11~>4|{Yv&iCMteeZ8&{4QcWNGSDX?PTAt$(ei1a~bjd z6K2la3sv2+PKUTJ-mHXo`-wnNeqnP|5@8y;H6KcHn-6MMx98lf+$tSTcT!;OgXK?V`z8B<( z?O44atk1|;3j5weB4Nxp^=oMHZ9D&?1&Y{ej-Q)B{v6_ahl}saOy_2(`5yVWt9ORY zX7WP(wXm=+k72}T+D{to48uPYVmi$CcaZ9<|lT(3v>? z*5doyR{p51R@wKPoQT+VTfwgb`Tnzlz2=Z!CNJ#gy3UmyWjN0?P5+C3KE&g<$wuVo z8=6>qK=q3`I^7Yze@Fg?A@Lc$|Boa7C^2sT#`Sz1@^`YmN>ck?K*Y9vBG#WvKAn@TEJJL>5}DxH-I_TOyN9cve<_5wAw$j@m>OiZ#)+V*B$+ zw>ID3M)H?E_%44AYO9fP*@Uz-){gqf{Kl@Q8J7I9 zJKo{;JL+}%_w4zYwPStns+`RK9{3}9aXsUQI@pVT@7HfeZ8ajc)3|-lJovZve7|kv zkFzw0?+=hiFD9mD9Mx7!d>?1|Xn=i>`nW@dGx&NBc?C^LSkB~$`kITOA>6+YeW*WD zRLI(4zpXBr%=dTrdksAqUP^nJ>0LvYx0>&pQ~ zbfyC1d(_&&qmxSUTC(rAG5J8=I*pF!V?my4D>rd@qh7v6^LYz<9`Y@o^f2f9{MyLs zxfK=1SUdJ}U$1M*QZQK zzXiVwg*`mJhx*INgWFz2Z8ajch#$-L{q4#3x2*h8TTN#wFuq4^HSGIT%YmsTm36sY&x=6Hr?XzK4D; zTzvELbKK>1z3~w4|6~uo%f4SA@qL#S^=)eV9`$f9rIl}I@{S|r^Y3fGgW+@ zYz#GgyIN^4GX*simoSX;Q&zsbvYBD*2TC9MeLcg-@2?N33`K1<&Qw7C7x*5v)wiPm z{#x~6$m9>cr-&`=CrWo4huUgHY~#qjnib;b$K(Njy!KHg{(}9zu5c2!@1PHL_Jd{Y zdH8GpoS4?aFzo%x?)bF~BR+pN&G3?flZ_8OFnyJp?+qzYiBwxHW$4KE{hh=2?)oxR z@|XCYBDNCWQ-Y3sI;us=#~kG`NyYas=459#^Zgv;`_{hy=JOfxneOIN7Jnmqq0AKO zqvP?~{Mxbl#>IQMJ%Ieob=?jJlRxrx3{Td_gYWC;OocMjM>CR=Vwa${8Xo*Rjqit0 z{%(9PXXqgR9(;ewC6N5uUAf!d>E`nl{+w3*HojlSd~WK9JAM4*opi?@1j; z{!M9*G4?jKyudK>GwTu-ar*)C?=FAv9BQi(vBi0L>(^&w-l=>)Wb&8!eiQtoGT+M) z+c?Y5C#m^9mHhAZM>lbMJeB76p(DHa`i%LXzRD2J-)hKk^KFz?@qiq zg1;a0|MxRy`AB?E5nG%29OHW_VvG0^9glj`^6%Z{akKFaT>s^Wt;@bgZ8ajcIDcBr z_sE}|RGuX$^0b+c9({BU!?4$vHTncGjQpKPB7(U*(Y{)%<@TZ?U?ATk|7v4)whxmJ zWElP#!AI~_u-)vp-Alz6HuJ^!6)HaHEI5;N%s_m< zlrnT?es`C*JHBr6M{PAlY?0p#zL#%5aMFA~8!(XXiJuq8^8Gse zw~K26Rq>k_bDqxJqha!eJ-@uEMYaEGwL`QJiSRFr%g z_R_na?{Ad+>Gp%uI8%Y~y?pzDmDYRM_X^)*zW4WaH7fG5nSGjL`FusZ{@Kh5j=|qs z94q+#9`=4#Y1UTue)xyek7af-jP-%U-{s=_2Gsk}aT>Am?FSPD)Q8;7e1Bc#504JB z@98w`KT^c@P%h3#HHM(J8ZYGM6bJcmdkynFDPi$qxfSQ9+Ra^IqxpP>exxmHF|&5~ zbCzX$^7S3|+*WPT5!Md-p*3+?7Q?XbNBQ{Z~{L~J9g3;pT(1Ma_vKlY2>PQE@venmRnzc6`8{&}bKpA>8}oAL^{ ze-8RkTX(dEwF58eZ_z4vnm#ymI_5tzGU>h>Vjwc`!S{&Rf{*4?f({AZ^%|Bx8wvdX zYUMBAelWF1;d?nl$DQx7K9_`*+L*i$zo~d=_X!1)Klii$Cbr zQfBhsJjx*WF!_|3$m65U=JOf%7gc3WFtB#y=RdRIkCh6}GmYMAe1&1uS9=E=A{YjL zga+A~7?%8diL3JIEDb4Qi~LZT@0kaGc)qLWySqMIvHa!R4;EUZx7(}^yM2`*z>p_$7|IpzTX2sBtQMZeAW&=IGJ9-^$GFX(y)@P(rMVwJD>S2G*_vg2}yxsAj^WVky?0KA}feamtx7xmkJl^=xk4l-mAit+ydXLL9mGH=*Q%ew1W!nEQqZ&@%;k$WRK6Q*#AorTb$1*WD(!fY1lYZ0p~Xk z^Sv_LnY@(WT;2R9zCTVGnbQ5myD4DH_#W}{k-iGwOZhW~mJ}wxGE<%@#$e!l;EoZ0 z|C#XZ-`Ml0zd7)m=bu&ZSbgi)XSu&8kLvYwJqc^&+Yjp6?dBlz=fuZKw;zxPKM4LD zO31v@{{GPMxznE?F#n0~fpPzLv?H2sKRDiQO=tGK%=b7iP0jb1&nYQM$C&&idtVT8 z8Adz#@24wxtX|ua(yzv8pFen*VbtFxtv$PeVbp6jH7)IvZ$EI|UrYg8`Sychf6le) zCzn6?p8jL4g2ArNZv*;0yKhG7jSJkD>c< z)$J-wr=vQZ63(iML2Wf6wm6?1d=JUXFMMP5YZ$9X<8u1J`M?Q~z-E30yT;<>Dp^nJGQpn&@^N#6%OpJ9mm z&-MM^t>;f&5Wl1Nn56GKo`U>`wr|gU#rltW#jtiKkC!1IcGLUcSf%XNN^u_Y9jdAt zN#DJ$sD5S0`mZ5<|99d192dW{^Bn@J=gghtF`nx?o3kLiVaO! z&v0b5|K`yXLK|GTEtSqU)J+IlUMcDOPXwGd8G8wRAL9OVecxzpB7L_@`aa9om+L$H z11C0AaDNfbXX$(6cRyqO&ok}H-T5`0zmIHgi#QMd38wF!(xMKDs$ZAJH%xJ>7AX^%wd-q2z6E1;-fwb^4x@F5HIuR1AXl znR?Hq#P1;j{F9gBclZ9fqAt6TAKO6PGxOaRA!#IC@hhai7 z!#JNdv^BFr()W6i&X514ch$$uDI+ESr+|cvYdTN(hV>t}Z_F1yg?}FLqi-aAw^0AR zN#8eedk*va(;dNleTV#gBDV1QjR3@tc6^me`X1uA$KiE3d&XV9m%}%#|D8e?^d0lF zh71}ePdm+Ttu}Z+!|<2R=~d3BK>lM{KoRSI9pYiZ6TDZ}d#)Ddk-kg(o-nvQbGiPy zx8JD#&zJPQOS0c1$beV+8)N+P7a27SBVRy__W6Gbwwu5Fit}O<*i!Zl8vLoN;%&n-))Pa zJs{4j3&oBVe36v2{)+7xclllpU$_2u3K#s_!e#qirSGuU4;xSNdQABDEBpVGpU(k% zu4v4U*m%(Sdj6XyzjdJL8&7%1iu3iBQ2v;*qT?H@U)P4OSO24|@{SeqGO6?(^{9Oz ztrbkak^ivz_Z=(M_^aNAXi4Au#J%~ozn;``qA4Z7rSCWTe6g$UzrUpK{~@2>5i_n= z(swJ>^L{jg!UbI4v3@m|ZQ=f6oX>Ok;AGDCz~|~qvPj><9RKJT0sB2A<;Ll|`+T_S z{zKn;!mW_En%{9=$=7ZF%fRG|{8q1RMS2BCR=-zTpRZubZw=kw@9@NqHB5m2^+xLZ z_3D3=^)2gp^3XtD5oEx#{-7SG>1-~q-+@2k{cXp1e~};PJk*~d>AOQLjjTQ}wJPeF zwGWcMW5+7hUz5S0%PB%bd{5$DM}R>(Vv4EUSX->dHbdD8dqG!5Wm==&*G2XP+alXE><+l(pL_e*AJqe3`>b-mzjoa5MG&YWp8$m3OSLKL_f&&HUA0M83Yk ze*1L%!C=;3)UWN`-`eidcbXmNW>9%T(vMyGF4dpjM18;F{>%ElX2f{ee(x6L9V_bj zd`Bz#j{Z$N65OWr*Jgh7Q3K~cpT2$ z>Ue0JWmoQ2&xg4^kNu3NAdF(;f&M=eY%n;yEYgk@d^wc*ex?17vL;CuJoqVs40zTb zxuQq&&`U8S{5S6J60)QYY6rI68(n-zl`U% z)8+#nc;vUM^&R|PR5ZfG`iuQb@~;;4GK_dkQOB-$ajCRp9SOb|N`80muRG@J-=~7K zV?}(dX7}z0i>pKMHx?U;RQ?!}Z$?Q5>o4LFh5O0}U`_CeR~=s1vCbBTn%~{~>yBCf z!>#g;74ZkPzT1M|05iSzTCL2Nyc;*p*cCM5n;@FPC(km8Z*dc>># ze5=1TN^F$kClL`Nx3ka3{U;R%#vUbmQyOpd_ZZzr#m3uRepmbX7;g)WIP4kUjr;bo z&&T}wU zpig2bjrT~3`6E7{9`CE}|0%&5E`Gwso7+RF^m&I3o3u3EFN>j~AN&DyywITIeYKz8 zA$~|hY^C~28t+k)RsM5YVGGAk67Q{}@y-$O`83{FY+nyL{^3Fu##`2JWxQekEPk=C z)g|vb=vzRUu04dt+ndH4`@@BcuRK3<(9b`K@z#+)3G1-EO#CyAH$LB2bslLP#oODP`qqj*qL)KBDvfs%5z1im%l-4*G4H=d z_%|BwPceSb?^CV;#&}OU+o)sn3!mS%&YAuMjrVBsn83dJA>%#h=YK3%HK&r~_!Ql@ zz&jcT3zJ~GU zpRb|lREN+ckN@dhw*KS3mr;hoLe_uSJKD!;D>2@_#NgLD-u(0bMB_~>CO$v+z4!S3 z5&rRad^B@uyxYLw(C_9GE7Pu4zxe0zKY&kEUR?k9uUzdNH2*&ktgvTl#*K@h^&Bh8 z7>Si6cb8A>jSX=P$Ty{@n+(y5NQR_g0BOEB6@T zK4Ns(rwfVDzxVl{(D$tpBz~mti~U)fxLzEC_X}i@v*+E%gMWWf5Z|Tmi|!kjUk=GyOlhVVDV$~S5@84gvlKnmY ZePsQT+E3@^{t9o$AH?&&`c-V~{|84j?x6qx