From ffaa196002589010f7f3985dabc701433db9b20a Mon Sep 17 00:00:00 2001 From: ennvina Date: Fri, 1 Dec 2023 21:37:43 +0100 Subject: [PATCH 01/14] Starting development for Season of Discovery runes --- SpellActivationOverlay.toc | 4 ++-- changelog.md | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/SpellActivationOverlay.toc b/SpellActivationOverlay.toc index 416fc26..4cecfb5 100644 --- a/SpellActivationOverlay.toc +++ b/SpellActivationOverlay.toc @@ -1,8 +1,8 @@ ## Interface: 30403 -## Title: |TInterface/Icons/Spell_Frost_Stun:16:16:0:0:512:512:64:448:64:448|t SpellActivationOverlay |cffa2f3ff1.0.0|r +## Title: |TInterface/Icons/Spell_Frost_Stun:16:16:0:0:512:512:64:448:64:448|t SpellActivationOverlay |cffa2f3ff1.1.0-beta|r ## Notes: Mimic Spell Activation Overlays from Retail ## Author: Vinny -## Version: 1.0.0 +## Version: 1.1.0-beta ## SavedVariables: SpellActivationOverlayDB # SpellActivationOverlay.lua, SpellActivationOverlay.xml and all textures diff --git a/changelog.md b/changelog.md index 5433ea1..137380d 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,9 @@ ## SpellActivationOverlay Changelog +#### v1.1.0-beta (2023-12-xx) + +This release focuses on supporting runes introduced in Season of Discovery + #### v1.0.0 (2023-12-01) Spell Alerts have a shrinking effect to know when the alert is about to fade From 9f7231144a9903ec307271a847a8bc1ca79635c0 Mon Sep 17 00:00:00 2001 From: ennvina Date: Fri, 1 Dec 2023 21:38:13 +0100 Subject: [PATCH 02/14] Minor cleanup of previous code --- classes/druid.lua | 4 ++-- components/overlay.lua | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/classes/druid.lua b/classes/druid.lua index cdf7981..5b9e5f9 100644 --- a/classes/druid.lua +++ b/classes/druid.lua @@ -110,8 +110,8 @@ local function updateSAOs(self) updateLeftSAO (self, omenTexture, omenSpellID); updateRightSAO(self, omenTexture, omenSpellID); else - updateLeftSAO (self, '', 0); - updateRightSAO(self, '', 0); + updateLeftSAO (self, '', nil); + updateRightSAO(self, '', nil); end end end diff --git a/components/overlay.lua b/components/overlay.lua index e5f3c2c..3f7195f 100644 --- a/components/overlay.lua +++ b/components/overlay.lua @@ -64,7 +64,6 @@ function SAO.ActivateOverlay(self, stacks, spellID, texture, positions, scale, r end -- Find when the effect ends, if it will end - -- @todo do not fetch endTime if option is disabled, because this fetch may have a significant CPU cost endTime = self:GetSpellEndTime(spellID, endTime); -- Actually show the overlay(s) From 9048dc8c408d803af7281abcdce87766dcf024ba Mon Sep 17 00:00:00 2001 From: ennvina Date: Fri, 1 Dec 2023 21:41:27 +0100 Subject: [PATCH 03/14] Support for Mage's Fingers of Frost and Ice Lance --- changelog.md | 3 +++ classes/mage.lua | 16 ++++++++++++++++ options/defaults.lua | 7 +++++++ 3 files changed, 26 insertions(+) diff --git a/changelog.md b/changelog.md index 137380d..e2de759 100644 --- a/changelog.md +++ b/changelog.md @@ -3,6 +3,9 @@ #### v1.1.0-beta (2023-12-xx) This release focuses on supporting runes introduced in Season of Discovery +- New SAO: Mage's Fingers of Frost +- New GAB: Mage's Ice Lance, during Fingers of Frost +- New GAB: Mage's Ice Lance, when the enemy target is Frozen #### v1.0.0 (2023-12-01) diff --git a/classes/mage.lua b/classes/mage.lua index d2fec8f..67d86ff 100644 --- a/classes/mage.lua +++ b/classes/mage.lua @@ -216,6 +216,7 @@ local FrozenHandler = { freeze = { 33395 }, -- from Frost Elemental shattered_barrier = { 55080 }, ice_lance = { 30455, 42913, 42914 }, + ice_lance_sod = { 400640 }, -- Season of Discovery deep_freeze = { 44572 }, -- Deep Freeze is both a debuff for 'Frozen' Spell Alert and its own Glowing Button freezeID = 5276, -- Not really a 'Frozen' spell ID, but the name should help players identify the intent @@ -386,6 +387,11 @@ local FrozenHandler = { if (hasIceLanceGAB) then SAO:AddGlow(iceLance, self.ice_lance); -- First arg is option ID, second arg is spell ID list end + local iceLanceSoD = self.ice_lance_sod[1]; + local hasIceLanceSoDGAB = not gabOption or type(gabOption[iceLanceSoD]) == "nil" or gabOption[iceLanceSoD]; + if (hasIceLanceSoDGAB) then + SAO:AddGlow(iceLanceSoD, self.ice_lance_sod); -- First arg is option ID, second arg is spell ID list + end local deepFreeze = self.deep_freeze[1]; local hasDeepFreezeGAB = not gabOption or type(gabOption[deepFreeze]) == "nil" or gabOption[deepFreeze]; if (hasDeepFreezeGAB) then @@ -399,6 +405,7 @@ local FrozenHandler = { -- GAB SAO:RemoveGlow(self.ice_lance[1]); + SAO:RemoveGlow(self.ice_lance_sod[1]); SAO:RemoveGlow(self.deep_freeze[1]); end, @@ -485,6 +492,9 @@ local function registerClass(self) local iceLanceAndDeepFreeze = { (GetSpellInfo(FrozenHandler.ice_lance[1])), (GetSpellInfo(FrozenHandler.deep_freeze[1])) }; self:RegisterAura("fingers_of_frost_1", 1, 74396, "frozen_fingers", "Left", 1, 255, 255, 255, true, iceLanceAndDeepFreeze); self:RegisterAura("fingers_of_frost_2", 2, 74396, "frozen_fingers", "Left + Right (Flipped)", 1, 255, 255, 255, true, iceLanceAndDeepFreeze); + local iceLanceSoD = { (GetSpellInfo(FrozenHandler.ice_lance_sod[1])) }; + self:RegisterAura("fingers_of_frost_1_sod", 1, 400670, "frozen_fingers", "Left", 1, 255, 255, 255, true, iceLanceSoD); + self:RegisterAura("fingers_of_frost_2_sod", 2, 400670, "frozen_fingers", "Left + Right (Flipped)", 1, 255, 255, 255, true, iceLanceSoD); self:RegisterAura("freeze", 0, FrozenHandler.fakeSpellID, FrozenHandler.saoTexture, "Top (CW)", FrozenHandler.saoScaleFactor, 255, 255, 255, false); self:RegisterAura("brain_freeze", 0, 57761, "brain_freeze", "Top", 1, 255, 255, 255, true, { (GetSpellInfo(133)), (GetSpellInfo(44614)) }); @@ -523,6 +533,8 @@ local function loadOptions(self) local fingersOfFrostBuff = 74396; local fingersOfFrostTalent = 44543; + local fingersOfFrostSoDBuff = 400670; + local fingersOfFrostSoDTalent = fingersOfFrostSoDBuff; -- Not really a talent local arcaneMissiles = 5143; local pyroblast = 11366; @@ -531,6 +543,7 @@ local function loadOptions(self) local fireball = 133; local frostfireBolt = 44614; local iceLance = FrozenHandler.ice_lance[1]; + local iceLanceSoD = FrozenHandler.ice_lance_sod[1]; local deepFreeze = FrozenHandler.deep_freeze[1]; local heatingUpDetails; @@ -573,6 +586,7 @@ local function loadOptions(self) self:AddOverlayOption(firestarterTalent, firestarterBuff); self:AddOverlayOption(impactTalent, impactBuff); self:AddOverlayOption(fingersOfFrostTalent, fingersOfFrostBuff, 0, nil, nil, 2); -- setup any stacks, test with 2 stacks + self:AddOverlayOption(fingersOfFrostSoDTalent, fingersOfFrostSoDBuff, 0, nil, nil, 2); -- setup any stacks, test with 2 stacks self:AddOverlayOption(FrozenHandler.freezeTalent, FrozenHandler.freezeID, 0, nil, nil, nil, FrozenHandler.fakeSpellID); self:AddOverlayOption(brainFreezeTalent, brainFreezeBuff); @@ -587,7 +601,9 @@ local function loadOptions(self) self:AddGlowingOption(fingersOfFrostTalent, fingersOfFrostBuff, iceLance); self:AddGlowingOption(fingersOfFrostTalent, fingersOfFrostBuff, deepFreeze); -- self:AddGlowingOption(fingersOfFrostTalent, fingersOfFrostBuff, ...); -- Maybe add more spell options for Fingers of Frost + self:AddGlowingOption(fingersOfFrostSoDTalent, fingersOfFrostSoDBuff, iceLanceSoD); self:AddGlowingOption(FrozenHandler.freezeTalent, FrozenHandler.freezeID, iceLance); + self:AddGlowingOption(FrozenHandler.freezeTalent, FrozenHandler.freezeID, iceLanceSoD); self:AddGlowingOption(FrozenHandler.freezeTalent, FrozenHandler.freezeID, deepFreeze); end diff --git a/options/defaults.lua b/options/defaults.lua index 754c818..66a63c8 100644 --- a/options/defaults.lua +++ b/options/defaults.lua @@ -130,6 +130,9 @@ SAO.defaults = { [74396] = { -- Fingers of Frost [0] = true, -- any stacks }, + [400670]= { -- Fingers of Frost (Season of Discovery) + [0] = true, -- any stacks + }, [57761] = { -- Brain Freeze [0] = true, }, @@ -161,9 +164,13 @@ SAO.defaults = { [30455] = true, -- Ice Lance [44572] = true, -- Deep Freeze }, + [400670]= { -- Fingers of Frost (Season of Discovery) + [400640]= true, -- Ice Lance (Season of Discovery) + }, [5276] = { -- Representative of spells triggering Frozen effect [30455] = true, -- Ice Lance [44572] = true, -- Deep Freeze + [400640]= true, -- Ice Lance (Season of Discovery) }, }, }, From d9a713095121c60c3a4fbeccc56d1b782268514a Mon Sep 17 00:00:00 2001 From: ennvina Date: Fri, 1 Dec 2023 21:42:06 +0100 Subject: [PATCH 04/14] Support for Druid's Fury of Stormrage --- changelog.md | 2 ++ classes/druid.lua | 8 ++++++++ options/defaults.lua | 6 ++++++ 3 files changed, 16 insertions(+) diff --git a/changelog.md b/changelog.md index e2de759..d943959 100644 --- a/changelog.md +++ b/changelog.md @@ -3,7 +3,9 @@ #### v1.1.0-beta (2023-12-xx) This release focuses on supporting runes introduced in Season of Discovery +- New SAO: Druid's Fury of Stormrage - New SAO: Mage's Fingers of Frost +- New GAB: Druid's Healing Touch, during Fury of Stormrage - New GAB: Mage's Ice Lance, during Fingers of Frost - New GAB: Mage's Ice Lance, when the enemy target is Frozen diff --git a/classes/druid.lua b/classes/druid.lua index 5b9e5f9..1fc1842 100644 --- a/classes/druid.lua +++ b/classes/druid.lua @@ -299,6 +299,9 @@ local function registerClass(self) self:RegisterAura("wrath_of_elune", 0, 46833, "shooting_stars", "Top", 1, 255, 255, 255, true, { starfire }); -- PvP season 5-6-7-8 self:RegisterAura("elunes_wrath", 0, 64823, "shooting_stars", "Top", 1, 255, 255, 255, true, { starfire }); -- PvE tier 8 + -- Fury of Stormrage (Season of Discovery) + self:RegisterAura("fury_of_stormrage", 0, 414800, "fury_of_stormrage", "Top", 1, 255, 255, 255, true, { healingTouch }); + -- Healing Trance / Soul Preserver self:RegisterAuraSoulPreserver("soul_preserver_druid", 60512); -- 60512 = Druid buff @@ -345,6 +348,9 @@ local function loadOptions(self) local wrathOfEluneTalent = wrathOfEluneBuff; -- Not really a talent local elunesWrathTalent = elunesWrathBuff; -- Not really a talent + local furyOfStormrageBuff = 414800; + local furyOfStormrageTalent = furyOfStormrageBuff; -- Not really a talent + local predatoryStrikesTalent = 16972; local predatoryStrikesBuff = 69369; @@ -359,6 +365,7 @@ local function loadOptions(self) self:AddOverlayOption(solarEclipseTalent, solarSpellID, 0, nil, nil, nil, solarSpellID+1000000); -- Spell ID not used by ActivateOverlay like typical overlays self:AddOverlayOption(wrathOfEluneTalent, wrathOfEluneBuff); self:AddOverlayOption(elunesWrathTalent, elunesWrathBuff); + self:AddOverlayOption(furyOfStormrageTalent, furyOfStormrageBuff); self:AddOverlayOption(naturesGraceTalent, naturesGraceBuff, 0, nil, naturesGraceVariants); self:AddOverlayOption(predatoryStrikesTalent, predatoryStrikesBuff); self:AddSoulPreserverOverlayOption(60512); -- 60512 = Druid buff @@ -367,6 +374,7 @@ local function loadOptions(self) self:AddGlowingOption(solarEclipseTalent, wrath, wrath); self:AddGlowingOption(wrathOfEluneTalent, wrathOfEluneBuff, starfire); self:AddGlowingOption(elunesWrathTalent, elunesWrathBuff, starfire); + self:AddGlowingOption(furyOfStormrageTalent, furyOfStormrageBuff, healingTouch); if WOW_PROJECT_ID ~= WOW_PROJECT_CLASSIC then -- Must exclude this option specifically for Classic Era, because the talent exists in Era but it has no proc self:AddGlowingOption(predatoryStrikesTalent, predatoryStrikesBuff, regrowth); self:AddGlowingOption(predatoryStrikesTalent, predatoryStrikesBuff, healingTouch); diff --git a/options/defaults.lua b/options/defaults.lua index 66a63c8..fcad0f6 100644 --- a/options/defaults.lua +++ b/options/defaults.lua @@ -51,6 +51,9 @@ SAO.defaults = { [60512] = { -- Healing Trance / Soul Preserver [0] = false, }, + [414800]= { -- Fury of Stormrage (Season of Discovery) + [0] = true, + }, }, glow = { [2912] = { -- Starfire @@ -75,6 +78,9 @@ SAO.defaults = { [33786] = true, -- Cyclone [2637] = false, -- Hibernate }, + [414800]= { -- Fury of Stormrage (Season of Discovery) + [5185] = true, -- Healing Touch + }, } }, ["HUNTER"] = { From feda0f3973a2bc0deed7788b6acdf73f5f843cea Mon Sep 17 00:00:00 2001 From: ennvina Date: Fri, 1 Dec 2023 22:42:04 +0100 Subject: [PATCH 05/14] Support for Hunter's Flanking and Cobra Strikes --- _script/package.sh | 11 +++++++++++ changelog.md | 3 +++ classes/hunter.lua | 18 +++++++++++++++++- options/defaults.lua | 9 +++++++++ textures/monk_serpent.blp | Bin 0 -> 44900 bytes textures/tooth_and_claw.blp | Bin 0 -> 44900 bytes 6 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 textures/monk_serpent.blp create mode 100644 textures/tooth_and_claw.blp diff --git a/_script/package.sh b/_script/package.sh index f360120..55caa6e 100644 --- a/_script/package.sh +++ b/_script/package.sh @@ -33,6 +33,17 @@ rm -rf ./_release/wrath || bye "Cannot clean wrath directory" mkdir -p ./_release/wrath/SpellActivationOverlay || bye "Cannot create wrath directory" cp -R changelog.md LICENSE SpellActivationOverlay.* classes components options textures ./_release/wrath/SpellActivationOverlay/ || bye "Cannot copy wrath files" cd ./_release/wrath || bye "Cannot cd to wrath directory" +echo -n "Cleaning up wrath directory... " +# Remove unused textures to reduce the archive size. +# The list below, SOD_ONLY_TEXTURES, is a list of textures added exclusively for Season of Discovery. +SOD_ONLY_TEXTURES=(tooth_and_claw +monk_serpent +) +for texname in ${SOD_ONLY_TEXTURES[@]} +do + rm -f SpellActivationOverlay/textures/"$texname".* || bye "Cannot cleanup textures from wrath installation" +done +echo echo -n "Zipping wrath directory... " "$CWD"/zip -9 -r -q SpellActivationOverlay-"$VERSION_TOC_VERSION"-wrath.zip SpellActivationOverlay || bye "Cannot zip wrath directory" echo diff --git a/changelog.md b/changelog.md index d943959..6e4f434 100644 --- a/changelog.md +++ b/changelog.md @@ -4,8 +4,11 @@ This release focuses on supporting runes introduced in Season of Discovery - New SAO: Druid's Fury of Stormrage +- New SAO: Hunter's Flanking Strike +- New SAO: Hunter's Cobra Strikes - New SAO: Mage's Fingers of Frost - New GAB: Druid's Healing Touch, during Fury of Stormrage +- New GAB: Hunter's Flanking Strike, when the action is usable - New GAB: Mage's Ice Lance, during Fingers of Frost - New GAB: Mage's Ice Lance, when the enemy target is Frozen diff --git a/classes/hunter.lua b/classes/hunter.lua index cf28723..13ce7a8 100644 --- a/classes/hunter.lua +++ b/classes/hunter.lua @@ -31,10 +31,19 @@ local function registerClass(self) local mongooseBite = 1495; self:RegisterAura("mongoose_bite", 0, mongooseBite, nil, "", 0, 0, 0, 0, false, { (GetSpellInfo(mongooseBite)) }); self:RegisterCounter("mongoose_bite"); + + local flankingStrike = 415320; + self:RegisterAura("flanking_strike", 0, flankingStrike, "tooth_and_claw", "Left + Right (Flipped)", 1, 255, 255, 255, true, { flankingStrike }); + self:RegisterCounter("flanking_strike"); + + local cobraStrikes = 425714; + self:RegisterAura("cobra_strikes_1", 1, cobraStrikes, "monk_serpent", "Left", 0.7, 255, 255, 255, true); + self:RegisterAura("cobra_strikes_2", 2, cobraStrikes, "monk_serpent", "Left + Right (Flipped)", 0.7, 255, 255, 255, true); end end local function loadOptions(self) + local mongooseBite = 1495; local killShot = 53351; local counterattack = 19306; local aimedShot = 19434; @@ -48,14 +57,21 @@ local function loadOptions(self) local lockAndLoadBuff = 56453; local lockAndLoadTalent = 56342; + local flankingStrike = 415320; + local cobraStrikes = 425714; + self:AddOverlayOption(improvedSteadyShotTalent, improvedSteadyShotBuff); self:AddOverlayOption(lockAndLoadTalent, lockAndLoadBuff, 0, nil, nil, 2); -- setup any stacks, test with 2 stacks + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC then + self:AddOverlayOption(flankingStrike, flankingStrike); + self:AddOverlayOption(cobraStrikes, cobraStrikes, 0, nil, nil, 2); -- setup any stacks, test with 2 stacks + end self:AddGlowingOption(nil, killShot, killShot); self:AddGlowingOption(nil, counterattack, counterattack); if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC then - local mongooseBite = 1495; self:AddGlowingOption(nil, mongooseBite, mongooseBite); + self:AddGlowingOption(nil, flankingStrike, flankingStrike); end self:AddGlowingOption(improvedSteadyShotTalent, improvedSteadyShotBuff, aimedShot); self:AddGlowingOption(improvedSteadyShotTalent, improvedSteadyShotBuff, arcaneShot); diff --git a/options/defaults.lua b/options/defaults.lua index fcad0f6..edbcfb0 100644 --- a/options/defaults.lua +++ b/options/defaults.lua @@ -91,6 +91,12 @@ SAO.defaults = { [56453] = { -- Lock and Load [0] = true, -- any stacks }, + [415320]= { -- Flanking Strike (Season of Discovery) + [0] = true, + }, + [425714]= { -- Cobra Strikes (Season of Discovery) + [0] = true, -- any stacks + }, }, glow = { [53351] = { -- Kill Shot @@ -111,6 +117,9 @@ SAO.defaults = { [1495] = { -- Mongoose Bite [1495] = true, -- Mongoose Bite }, + [415320]= { -- Flanking Strike (Season of Discovery) + [415320]= true, -- Flanking Strike (Season of Discovery) + }, } }, ["MAGE"] = { diff --git a/textures/monk_serpent.blp b/textures/monk_serpent.blp new file mode 100644 index 0000000000000000000000000000000000000000..d6bf91be3df0128df45ecad1c7025a05f39bb8c1 GIT binary patch literal 44900 zcmeFac~n#9`Y)cncLF3KBut_r)(QauLqrV-3RtI#3ZgQk6hlN*CIz*XfC>nC-M{WSdy(aN`euAT z&+vJMcb^#xf+k`l5(zgk#xmev5(spN=710hQ};;1jFNhdu71t z7d{r>s;{waTKKmWP^|F`A;y}hnA z3Nn&NBpL&rNk)r|(z-(<4e}x*_&p}#5`(PM1sR0|FA6ruXuUiwEzBTKFfupF5SOU` zl37OE71|Ad$(qw5%n$z&LwugAm1W$5#fJZ3D7_HXMF3H}dRUsFIx|B2_2{IPhYf4=hF z5FU#L^YoTA)qzb|Y<=y0a6dCA`GJR0aBcC&p zQ9?qjtqE*xl+y;>!P;0xiHhO}kukuZdVm!MGL=E45~RQxjprDRJY!>`q(rev|9#*C zWfZ_itVQ~j2_+hmlCa0b%IEO?;PXL#gGXaRi7vz-n-E*EEomWxvOn%X!JA2>(&Iz> zX9O}~?^JHszm>Q>)>$8S&>$myV5sVc^y^Rj$_(pB-tiB8z;VgYexh{}Niy_#|CB$5 zKeG48$iMK?=@uD&RZgy$tT3 zf8L+=s@wqfiQv`CxTH*m@FPzjl#3J^ErDgPZuBsPbs2iSmcU{E!QSgYmW#p#1hyfe z@jRnZMoFZIOEhT|%wLn9-bD;E&ZQLacx(!`G1Ez1UH!<&i4cnwB06^QP@zW)t-|OA zj?;HaO)%|4T^W7d1Iltt9U%xc!gPO}cgSAt2zX^Q)Q1?s=jm2YB}HSkBzanR7zImz zp#5^E)E+A$(YUG*0`re@I?s4I6V_=iD%GI=;SO6d0&^*gMEZauec6iHV=gWS>h<~p z|EUGmX|^uahW&8_eQ@_0IkaDkj3_vX!T5K7Ad&o=K9oo#E{50tsW1PAKlt+@`D6GG z;%)u6_&>oY7z;AM1NDFjpbx=A{t@9X5d5VtdV6lxrWwA^pZ+-v{a&&jZyBXTsni(W zP;al}t~`eQ%0sUiv|lqF;L9RWS%1ozsYZnV?x!BH7HD0e4h=CTVEaDn6V@+?3>j^lefUCh zisd58DxATP94&V!!x$%>Uyk$@>BEizwvS#PrsEFV@U58aYc|iYe?brr7!0PFLH=Li>+&~z z|6Kn!fAD{TKeF#jN@c3y^AO(TS;0g4fbiz?Lx=pm9&d?8V0gYh{wm@I<1;|6$1~%X zKERuW{_at7DJ2r^3xj`_QPxnvT_L>l$kaUWw;&fubVfwBUE}Fki(E=Oa=Rfk@#mbt!k;ed3Nu{$`v+uh}W18ucF?^>g!r<5#w|`u?6twi<~TU zFB=@_F$iDZBTqsc%|RaJJber4Gm=EDO#8$%ZE@dn#%Uz`^mJ@y7=1X~FqWQE3(v=~ z(qmLI=u`a89HbAU@G_YZz8U-l{T#xdE~~x``hZV8MLazU_J8_v>uRJAQ_mAmx54-0 z@$9M$`?(1C1chfk#3vBGE|RjVhV}oIK9oR!{!i;4vwwuY1_HX_^$2fyYIvMM*8B64 z5~V@b^P>`l$RH!UYfAVLpwEBdDOP9<@jI6iNFkL-(r^rn8}wlfl1Yk43Z89u=(M@z z8p<8OdtRI|`Sb`&kLh?Ijux)&S#EyfY6@Xk}6f=R<;k4X3Ng{I`|m{7QGo$H8&YZ`5x!T%DNTfe$#@h3MA z9I9Sn>4eY1I92H(@sl?^&@_1qU5I6*Bw=&r0;javOAT8CjPYfpkSbggG`{!R>P+(V zn|LiKqa?)NT2-vdki@!Enn@wbOsbt}`eNNN=KB(S3kl+7FwM)M)S@y^J|_)ES=Q7AP-@g2ou z1pr`JNA@d*01Wn?2X;$Bc$X+r!wvSHNa0YFn#eFRb~^TuN33Nag#q?2L-s!6koz*6 zLy0GoYU+X+MmG-?CZ<@PB<~MmT{*rayPdpO}4M zed!16IyMVi`b^Z65q*4O`|#3D4DvCo{TPF@f5yFm%J!eBE(GA6rYK4KETKxZKg;)X z{3R)*zQQet7kFSn?^juCDX+mlGw4oM@9q0y7-#MfnWW&*(6A9^x+PCu8IchF>Ps4L z(_t)efJ0#(@&{h?8xENneVExjl71S+2O77cf{Lpi`j&CKuY*2RFmoyf;{`F*5ub^j zx?I=>_5}F}?y$({4bEgRt{e6n=|ivSxmkf4yE_>S-|iHRGE z2gu&VY6ai$`N*Fu6l%a5#cvki9RU1Gk!rB_HGsD|H9Z9EJr7(Zi39#y3<^NTv(0T! zFSBJJdoPjbs1*O*ulx@&85A11U#Ht_X_At%q~jIUl{}6}5(%D-9IV{}&!tR21>=9op#GV&+0PU|e2({pq#u&fi^3 z_>|EduzmYRdvEwGX{_H_ZlkHG5&pRU%J`Ms^0&WR*-tsch{kr_j#@WsG{mC~U*d7V zA3{P@RNqlI)BBwGqKwpewF(8aEdXNPCkmca-<)AV+v-$Q5yj zzuS5U8{5ez$r&XIHSoFb_h*l=yhEmuNkKtz7L<#JE+>C&=}I;sGHPN(Hq6*Ji(g06 zVhI!CY84e5H!LM(Pj|GLKiK=aaK30d`=U*l=kK%=xDg&B5=Hp)(lqI5EzDK;bu2wy z6SZ|#_Mt2O`>Ysb*iUZti&}x#im0vQAGHF%4i1hG?Tr#We^GJKVixw2r0Qr+s{P7+ z)jX>yCDGKEq=VH}-1Fe&+M| zFL(W6ZIAJrx_dIFxyQyiK3>LRQ0Y`UBYT3sIm`d|eY*q5z$b!3!~Di>uJ!(sc^~l! znp9df)*SdkR89r*2kkkxZ(AFeP3jJ3+@A^Y!KbRCl18YO_?_f7Ab#j?x~Y;Nogx~= zj0RWG=PHg$HRumA!5@qxAgCDVG)W&Hsw@939=L!481&_TfS*)RDPe1VAGQPVKdIFvP9B|-vYy*wW&-gY;!o-v zcX#!SXS3#R1ApISRoT66`pqM{-W1DKz@IzSqVO9NliyfK>pr`VHIw!~k9_iLituCu zZ)0v8eJi$c{j!^PH|3_Re_cZ*s9P~Eha>%Ee?yjI>hl*03xcXrRryuMjhg9BFr;~$ zUo8H0Et9k(r2SX-JSQ&-%sr-c4@7gx4I} zENa-}4_AIV;eW8O0MOpwU|&L`&U(Z@}{vjPt+CV{)X`HO4$yIjo|pnA+0K!QOzNtOd4q~NDx z_c$&iog~MD9Fs~X_Z}$h2sVo+ONg49q$F!vO7E`G*R7R=GtsY2i!&cNymDRaf%DFQ zcW`%y($yx#W<3|h_s?+!Ul5w$cG32bdot~F;OiL~YQfG$DQ{?29*>Q{pNj-x((34z z;N8`QR$IZ|BagU{t`{z!c%qMI83q1Sy=hb0vn$E3Y(47NIMRwp)&=!GE$8LM-o;ZF zm5;wpjeJp!w_QG+xceb_?p}eT1&5B46xD2d4!_t*wX!Z?XN_=E{b?r~eBaNh3#Mg~ z#*k`6_w)A``)+*DzhHbOi60gc^5|Rt!obn9geV`>Xf;>QuaOt~ww=`=nVY*qlK2_m zzn}0%_{;n}xpUp#Ueg?6su129jZQadM45f}aK=frPP(-&ZnRn3Bu!L~ULVG0W@od= zZIgV%vsBUWd)R(@HvGjH5JD|86bs2@g3;DfQ+9;@tr{N9m;V66LQKS z{F5NkcjWnGu~@FOHo0h9nf%6VKJa-p=z}e*ca`O_y3Zuw-$m<^_@ix9ZHE@xF#U-V zyiJ)J;cwU5x6!XF@E5?lM42i`^l$xeu&a8(V%U=(#X_;k)_#BvNM7!yooL-j6?gZel3aHe-5f`Y+;&z0F4UUPdE} zOoGG0LYnsZe}5&r(6Yz`_`O=8`R&-&@po8EUXjT%Qu@0x<&gw_jw))B_ZCtVsZ2t{ z<7e%+*DSBr+dr4^`PPCy zWas2m8CxFPm=rG*@S5$QSkfiwS@~h7p7Tf0WPT_+R~k zkKvE(y#(s5$loLWhU^{qnnv&6{qrDSXHe9l)HE{Y9=pe58G+)v8We^~_Wz+UrFR&L z?;^P9WXIpuHk}WMC*J~pFOIRHdlsx|O){gCvkAFYs~SD5boh({50V7zziF?N@xY}*je{jj@G1K2$o0`_M=^5{SCdeh>GhaWj+hGgg z;z{$ZJ)#WCS$42Txq~ZpOIgE@`zQHTE$y@LZL=4O1cHXW&aI1&2So*df4CJFm-@@T z7(Y*G$G(>)MJDO#%90n~cXiINo3p*vB$K4Qbjju6fgqXJ%d@^n)}<Pa5qx%K*Z0sXH@!<5B? z&tFDD{A4&a+`cP_Xh-$tf_jy;5#D!J_cT|#65^k;^D!ww`f7&LSGe~Cqi78BLq7xl zC?3#gE-nW7WB3p8dF1TjLiw9qE{xIVZ=eqx%3JW~O05x|Qn;q0+w3jk^I~}?&FE%f zaz{5q@9*VFA{O=L;r$m|Z03W%2Ywhc+RVLY@#{LOgzzVJ$>zndKUw%zw7G@31Mp{V z$;w*cc=G`3bSD-^%)*385rW9A^Ut`m%G~X-OwwbmTKzOLW%rxvH)g+BK>i(4&r|Jg zeH74m3Ny2d#wx&|yBh-i*E}$iKCl~a3dPur)`u+S&wXD!d|>QARV@T-is2yk$*RLF(GmLsDh#?Q#=b+L6Y z7Yc<*FMe1%V)tksgP_)$Y|?7AEwu%*ff%7pJI; zxq0~eiv>1uVDA|!H=I^eK#RC>cyJ?E1IQ9q!!E1HeWkl zaou94?KkFpenjw_2Md?Qzq+HDY5vkAGVBYr;c-XfQ`KS%q1Hr*jZE=*EAwjgEHUG)kWA7}aa z%}%_fF6q}p=?B)F@tNmZU%{ofH1@8rR84FBV|KZNQX>+z-1+0-Prm*_Q-^z_qQV8w zUtJ4q`m((S%N`kEH84=+_xxvj(vMLybvH*IGY<}pO#kgC`vPX^;~!st8cnV5k-65T z){XBvILY_er}kK?NW@PK+;4xi>|gWjAwEfOPfyy!&&o+%klcoY{+?+4V@gUu+wCK} z3T$z(-}tsDp*Z2EtE#q#PRQObWROTJJc4q2#l^nJ-s`^}@R>YPSnT`9OuaryrOvnw zD~|9!ILUh!=wDS;MKy!`hrQn!q7T`BS!uR28P6c5knl06{z0KwTciBIDarIkkdXq1 z@dnDr@ke|P#dpN-Hlchj5B2Nx`MbPR1bp7y*4^9^**oyPFuIXfPcq<->|GQdF0eHP z|K8CFc*m2o>CT)dn_Bx<_a)nLix9n7klU}rk2b$L=y=aW{g`y=M1JK!&bNlE<1J71r1j59mo zH1fK+NO57pGua;RJ2;cK-R1fS)j(VA*#syC|FQJRb@MDNLYok=dFc;hy@XRNmqY&1 zbTTd})xX}&C+61|GqE2@9$Y$}Hs5RQ{2%7z%*2pCP-{2Lu5&DX=*B~MM?Tm3EpZb1 zbe~+}_Y&;AprDHBXd|rlZky?6Pkm|fENADAVN9{TcM;duo?1)d2L%buC}#-25_|Cf z%_L{w2V{Z-^?*$1CvU}EB&DS|Dao`ER3ZraM+_g{P<`M(`+szBghWFAUab~Eeh2yh ze<+_r_K)Iya!R2M!dsyf2$;rT|L$uocLKjxYjiKhu-w01*df&0KbylX_5AeoUfPKy z9Pz)-r~HTj59iJ0pM-vf^1o_NC#MkKn|+%$+&6Q9`fgfGj9j`bCEv33)mjt!QEGas z`oc5Wr`8rPSZ41g->@ikc6I50XTD*}zVMsofo?uqvTAF)UIqR>&yp;BAJQ@TNhO={ zUcMkaEc&`d@Jja($miU8Iz9ij*j~!pCkXOUHVc#fcq@Fvs+{oId(OS_73`h0UCo`J z&L8RbVgh@ftr`;0PWjwKkD1I* zZn{utQNpCoA2viVeI=X+6#OU_wmM3lwse$rFk6~i%pn&!fib-3e6e(llaAYY5( zKNrO=zccIRu(8M=C{vTv8>T>T`s1M=isz~-Nv78)e6FVKp6@KcSL!Os_{1tk*4^gk z7Y!Av!hm~4xqZJnV`L$eHs|rnAX5+?5aIhKX;nDZ*C*R40 zPu|49JfG!lZCO3<+^*f)Gfy0{Cdh}wVAA{AQdTWIHhsF)8kCj@2{beNN6Z8kipB8H*GyURRSJKi%YPoF7$+Oy%Q-$Bse!|j}LeYWP zuV+-+(oY|yj>Y;#5n54vE%Bmd!m^owzpPDtLFAul+ErBTi~K{FPDcCOmBrLFpY=uh z@}k;h%qW*uE85{2>Q?GZYDKTyWCUw?&Tny2->p;vixUc`o6~}F>KpBSQGAgU(dN;} z`-{DmXMK+j;?E}I&>Yy%>@WxXKZ8L)x(>qz`hLMy%$dt|{TTizzeDqoZjjH5M5+3E z4$A-UApZ{Wz=&`M|G#Vx!W-y4-^{p`wXo}}g*24kDYa>~X2&~eGAkwx_#O%7q5Q_Q zvY1^gW+|}^S2smO#Lsg-RDPm+84dhDxTA`L{ELO_D?iNGVR_e-$3E6_bxV5T`YtQ_ zcUI%*^+zs@>9~=r3Qk{UnaF>i$&j}aRxx&x*OpdcJm54JQpV_=P zd6ZGfZTpot{C?4`1B-Kg+Rpl}q`krfKmhh^6muWcedqNPwj2u;2uf1Etl4q@=@s{* z*jVg|P9u);0Q>&1#E*h6$5a(%bnmglt5n4cy(wU?ky@pgZ9SaRy}a7H1vDU1qgFF) zet#6u^b_@{9{-veGh-ILKC0S#Ce%MxvpLQtIA5kI13LkkS5X1|!c(ga_@n$E%0KuR z2nnv_Z8(o@_i_LKr~MDs??fUpc7DVj_hn$6;NL+ZpdW932wL*4z~?%l-@-8Nv0|=O zB`b+o0{U+PJ1}-L@CVrh)Spb;D#iw}=%-n9cZ5Hm&rkY#v2)7qBd>t}ZNs5_S#fCP zryo8mm^?Sox{ZF7%VFI8w(BeAJ0a~9`y}~EHP>w5v478!cdw{>JrddVx-xt~746$S zma*oG^d*5+Qdhd}!{#2V@-f)uBRy%ypkSx#A7fG{CJtUMOi2t44t~_vw%^_(oH*^d z%EA}urn>95CDp2tIr&y=0wzOwI;lf$^Y(uEGfm*M+mlosaY9AoX@%sP(b4e^akg%5 zp1jxhN4eI43f!A!I(}n(bMq5vkktFbOuyTsn-8w9=rH0x9hzo-Ebz9JeGu{_fdmp3D#5Qf(B%)LJQq9>&KZHNq*`m!jFY>&Eb0>m76|TwNzpY!;pf zrk-$w-me*X#y`1={yZen!eezoV9*4OX!zw}rx=R`TZ{jmmtepDc=^fL;fq=C& zM$GIbs0-X@n@$!)M2Omdi;^6uz3`do_#L)98&AL2w^+Fa*RqUquN$=4c(anri2mWn=~T-J*m2N@ueEALq@S3pIcV?uEj}Cn zv6##BbrnN0KMCq}v+-fxZac;efBId0I9G%4=RkTl+>FJzAMWQtp;e-e@K_JT1!{Bp(eg%B_7u|t+)r=cc}mEc0m0wKR-Vo z1KuYAe{i=I2KhhnKZF0*;}7~xVD2me>bdbSZ-eyRgy0sgt=qwad@S2?B`pH@(f+LAGu_5to4As818>r5l*tj`-<9^>$MF@oU{i#e z@B1{%XMYy&IN;qOV^X~xqPQ9{*Bjxl{A%we2TQ)RK8owjhI~g2`J*-M>36CqKW_@~ z3GbzmDjK=QRCN&I0r2_9t1h`vFn)D++Y7&=STy#0(6tw3!|cQxe|bFMh_q#RbjH#Y+KvFZe_F)9Eyt z$5?)DFRXtH^C}|wc6^Kl`2V6}-#LI+TAEtTG8xY3E;si=5=-_{7@SKbKX-9Y((qVvR8V||0TCC4GYr-upDXLB~6 z@r8NOS5!8>A&noNyR7W2riiKe8DEJPz1-5eblM>P5bbc9n-kk(3?Jf2me&nf?`w_| zj$#7-Vte0}Q2zpY1@o&yu11gdQOwhc>uQ8Q&4T`+pChcV6W1tFJ!k6qiY=)h)qf9EF({I zW=9fJLc|fjUOIkqjJbQ4MTZ>hJ&y46bdycCcZdAF(+tIjORikT(kYM+0wr`cMfrqC zbS>81dpY}~oInpqQ zzv{ub(mK5EQsInmX2KCIgbDPILt{b-+`R}pSVWIa{L%*&lSB2_VnQfax z5`A9UdxtYsCjcLAbw$1R=puV>P>CD3BQBTgz8+x;{s8{dN{H8jR81|N4ERfs{a?pC z%TFoDn0Ti5xtUG~|65UUa2^HCdt^E|!uu~QJLYV#ca-ltJ9`cJe}q54KZO51$_?BH zHrVid!#@2}HuQJef$!JV38PWIXZfi)@O|KWF$qEwa~9!Vho46N9>zhdtv}%xyARI- z`;Q|eeWhg{4&cn43l<~%sTe_D>IKTc?Haw=GsaH(O=*AS2^Q@~7VVrH z(+<8~nQp*CNHSuPE_@#51auhUJ&JH7(!t!{2Ju&u7(5m|_CRh!dgjiK5MAGIos4Iv z%q}KZdh#P8{)WG1;rjLKUqbvRneun~G!-_40sK^LKadHJJW|uPl*mmYg#!G8o*!RY zrJ5rM6DYL3q^#35W+#U&wD5>ajT36*FYOyfQe(KB@m5g(k9hxV&BYv6j(dXX30#mS zlE1$FbbI}hYj?i|eA6IbyPKUybUiqE`W3|EHmykX-RH&jn(*BFEx^~f)dlr)MuQxc z3-cRWv2mL8kWut9-~)vBN{ILP&eAF>u|HQUk@-5(TCk*~@Nfc4g7Zqv;NP!fnYYqH z40s{gcs1{sL3V`C=eTyn2<>s~YWe89hy*g{aHUrcMw3v9Jo z?`nFNEYheixiG(hV=kAUso17SW_Dkv zF30Fq1Dk2YACvrIa9;{78WT(UHV@Wsh^g0s|D7B+wcday;)AX(x1|Od;m`Ht49x@U z@n<^?&HLn1-r&57kI(-Y?EgE!UoM0)ld8V-A!LCIPkBnME!p9wPfJFXK8^=k?5t>7<~zm&8QrU&w<;18og zfAC9!5PiIdkdO3b2OKan;EkS7+&+86AUlFTsVcoYg!eYEf1ZzzwPF1`$p3tvJsWzx z!A=b82HAi=RAb4V{kn9pf5_kRZIJ!*H>EY0Qvq*hYd!uQapKxBmZeEdPwOQJe>&Zz zWc;V^I)_2Lhi)(7J?)YrXcE-_+^yFyFf9fArP7k1+&u< z)oJIV@Icb0_j^8m{HO`p`$TXN&twhBy}$ps1^A))q4NQ|pH(+(13C%ygQSE;NNJu` zHWdm4o7BJuGvVb9O}U2>!JmuzJ2Ol&GHBxuM6UNu5(0oVq-vr46=gqZ2QU)GE2JIYI!p6l_4`96E7@A{3t z5NE(E8e~^)Wraa*f%oTveHr9!C>}8WiuV$zxB2<_3>el8c>h!Wv)>2NUrA&nBsL)Y zKk3a+c7^&bKQ;9v%LMG%*_?^^z3|i-wH*|LmUvnxBm6HYV}y3@Bg@=JX7O%;tgEi# z_`A0zS#n!8&`l)-m0j^eQBZciD7#P;FzV(=D5nT(x79)7)9O$cTw+0oCp7MSbu^$o z?~wayiS5-3SDy^rwwjJvvuMMT>!Kmu;~@Jc83}(nn5$i-RwpIt`f9#CHodxCo7=cB zID+2^@qu*k+vQW5P8?W;VURxzkP?W~`A?tUfP4}5Lpv~-4?Mr|?1(5yF4y*Zm^KYFR_EH75BG|$Jx7Rm*R>I21-G~qe-W9*$Q z>#I22Lz}^W@6YYZwtr1ajgyNvM-I=a4`+J(Omo1~1QGlw|GFLZMb(aMzys)_aGpz0 zF7Kc{*te$lQI1~j}yXQl-^Sh^BI|F zz7Ng+a5$br^BhOv{m{U<0Z(*(&__Bjqz@<`B>pxZ{vYutonK~q-W>9MIyo{@uouOD z)bB(3@GeFX#WHDS0pyl+(1(zaIK^m-#Gb{@=9WspJ5{4B@%Yr;W=T({e!fd8b)n7n ziY+udkp$;;ZV}z)k546{wmf?2tn(*zL{YO#v8_@79Lo&E-LDpwx{lV!127e%Y_#c!rzHT9fQzIvn?ae2}tMHP9`|^%duKd9GR#2<6V0?kDdF-ymlDd!K~y5u#4{Z$AKE+izc=Fn*lt z3jx3LU*A+LnYe`TU9jL7t)p!nKV1OLm?Eb4Yp4f`MCmgA?7Unr;P>K*2Vj@!Oc`NPzt6^|2L@ z?^_`LkK#$Gt7Hgn|=KL-3)fxb!0-G=m`6!0%C{rLPBPJ;eE{LKfv%%r;8#yB^B zy;mXh_vqx8xzZ|@3D~=Hmj%*?^modP(H5Sl9?Wb5f3UBigyg|)%`4tcCcVqX*?xhkrziA(wj^!8T0-5|W@};ze2P=P7Zxve z*(NwB>HFbQ*ADu};5AGih~EsIdh24&UZsD^5s%1gSzEGo8fxEHK0RiajwC0?-pr;# zJum}}EH=s-aw$+C8t6OK{&d%t;g_o~$za~TU_gCsig-BPx2gKz3864XG@xeYTcxjE zcc3sVSp@S*1M1;fUA9xtTu9s-iu`%^YgU$Oc-H-ia{@V{m>9*IV*87wHD)|BpHllv z(C<5yqIjXxKJ>dabrv2G78bTixZmCz{JRtJ4PGJT(!cP9;x4Gv&ycTy{mUI^v<8{A z1eqaw)hT0=?5&i=-jFXse-~4hy%?}G;>&vBB?$lEE0-ij7!(6uGP`HO`ILbUd67Q< zo0~ai7OcN`{$i{FZ#4fS{ae1LfY0;sb8|DSqx=v0V@!kmpX}c--@O3vKE^&N)c1S! z@xP6j;OFUNZsPv+5}*L6AFxi_SL|SwVzZ>nii!NiQs~c2VMDx!dcbN}9~jVHm^HO4 zDeT?ebqfH0ZIei}WsZOT@a+7E9k#B3zb9|Up#%Gt{kVUZzom<55)^PG-}~p;Ru-=N zZWPt@X{WsT!+-hFRk@YL7D4*|Z?ZhY^!Y0}NbT}Vf zrt1wlHfNpW`2m?I7s_`P+P?2{o}MBcFUby^z%N&Y^t~PK+#O!5I#@a72=psbTQva_ zJy`VbM1}P$<#3>>?=8t8C*hfsN2Gh8912$5@~200ieJ3xn*A$V4h7&>C1U9RavB2c zexYxI1H!URn`@okGaG)Pe}jjGHmNg&WyRjYEU(XrpK%U-=gv@Xah4Z9i)Tzgy$}3} zC!57kHJ^1Ps1zK=HKYzUCHCGx`DX(DI+&NUp+R%0EQ^QiJEN$YXN<$Vw~+9i1^SYr zEWe7A;C!f_587irT-QkkJm(<%rQD%;Um0Z^9#ZgEy|%u*LpjH%~B4)bDdTZv5~ zQD;$}bxU+l#X^r<(zp_VwkPx6^@xC*q7%cmxjB0F45&zykUa+~E*`PTb#be#&~_}BsaTxt z7f*lO31X_8h&MR3b#oYh>LC6% zp#BH_=d{UoFb@v=KN|37v#Y8;vCa$du9%7DJFs+-P;5gBI?F4r))0Wdr`x4dCiubP zUOuxP*}vqyE`%VRo7n*8zmUHlXy?)m^Zw2R1+Q;!8LIaNQcmE!D(TR9A9Q|`!*Qk> z^yNR>|6u(O@i%*%>P*3@`7HN*)_BkdFLvcc6AMVkAm2y$N=vEqVfK8;|Fhf?{&1dJ zKGoSB`h5kKNPeQN<^=k}JOi}w(D|RQ2ikVTF3QeN@9H^HNfq-ZdP* zYTdhj|J`SP4F6GdWc>y;oc9{|ur=YP`O(ij3oABAn%8ga>o9-3Z2X0VJ-fn^fzK-k zx-EaEa;&Q_7KSEg?vz#xeE7;`QJw>J|F#XQfZvG*I{&cO)X`!#tomaP@Gp7KtCLll z;w;sBU#=T0C%w5%B1(3T%kJQew-#n>FL|>2%VHIaaW}v&hAsdF*t2T+r0yu@V`T3o z>eSR|k7BNO5uvZ|*2qPvquqbcqaF@|>dsN9@9?8+&5Icgzz>d6qp7J+FO0FEvZM`d zFTA(H`9pzPoB{QqY7|e*Aob}bcW?qp~?#A3$Md}?>vl9ghKtU~*?Xxo7x<^-Gcb1SoQ zj;VUuh^?{lp5KNhuNUBSZbe&v!r9Y%rhK*``NK+*L@OBRAsJ0C*qgXvl~tHRsSDAx zLh}yl^_B}KApAv*ubjZ4G-PPSgc`)y>mD>DX6UL$zpY=YN)%zM`>P-g6gxm)6|5*b@@P2->V<#v$ z>MEb#yE6Op~2EtXBUGlzNrw`W}fc|2KMA{R}x>q@fp zDo952LeRhA&7N%6Ige{|8O;yknab4pQxDboZ|LnWBhMp~GMhK1_>C6QdiE}%l8@s+ zr}#y&3%jgxRh!SjZ(B0@I;r#V%`t_Bap+PL%*Txl{XfqDD!o1`kxH5ydwfG8;`gKyjX)G2DfTWQ zywN-u?%Mjb?`ZG`VA3s6?^QRX4vb_K$uwda_84MEQbv z%-aN4n|Db|k_!)^c@Zvy+cU*+Po2NxfyXBSZ+S`F#;Gn(gV&W0IK`81!n}|mZN>QR zBAMg%>d>`=LDOIVa*@>aw%hVi&`Od5yU^BLdf#0$M!TL!}m%iW4 zqzRcG@l5S&^O@ME)ShZ8MUmAVU#(gNjG@xznTkT3Uk>O|n`1)&C2i!B3{PiUlaw`#0R8#x8YqI&Fn}=Vu5}y-uYiicah)XzoK8k++ zHSU1>UVZ%JNc7fd{}Wd9c2grFGb@|%YPX$`)?u|Ikr8hS_*Ol?UPN>YW%co+0<9Sw zcEz1*nHr8w`=NK^U9Gshih{mcKgc%=k0x^BMkNWOYIUt*`ngQ*IOkEft)2+NMV*gi z<96^FUO^rKcGT?F)~4#bal7JgzhQc;Vb?(Xzj9!>*zA65P ze8C@}d=IBd%0`<@xZeAj8dU#TvinRXizX@d>XiAS{*La%%^WJFG1r&R{DAs7s){O} z5rO!?Oz*oeKU+{>T>uVWKhIzW{OX0O_agEEfd3d2@Be<@2itZ^m#TU+qs?_T+5FWdCRT zcAGKi;gwKlFp-Yr@I3H=E||!vTL# zH(}V=59t04T6BKH#kH(-jHO&34`9BN%3zjWMELub22k{U1AY%%|e`NpTYLt(W{eueV?~m&2Os5;-J;L7w=H(3Xf3*L< z;}5rcg7e(ww*KEw350pjkYKUcgxryr*jiYP>OUFc_g~VC+B?@IqWXZ6i0Id9&8d#B z7IR0Obpbi~OFDg+>8rYRm4|N7$l1gtZNG2~s|oV^1D9K&KU5=B>YRsjR#>JNgvAiX z#3{{Hk1yO%eYqgH1nMXJ@YE>bVq6@X(C&-sDc8z&O27ZoiN(BF*mRO?4E=(*s@nX==pE?llWS(b0z{Cl~2eIh)6 z{%tDbTyj_55^7InyTcAkRZH%6aVqp{mcR5+SRAFo{hoqFD`CDT9OgA)UN=k-AzBqy zXY%&J8TVQfd(5wTKovetLHHgl<{|v0$9PWmR^U9u#r0dw;rAXk z7^L6MG~;tw4nX-8&JI;atw)3cde_5PlF-Sjt4)pVg4S>g_4pGsI^ERd=_&1i?iIqHuTU$jjIHJVT${q1FdweahK4y= zc&+E;ZgWxF1sTsEP2G`?I16|rMwq1Gjq=NeZ$L*0e_~Gr)SK(cbyPl3z5I5 zU~_n~W$!w}dJi?xKp*JUg4FZd^2jlJ_XW1mkKZ58DQGA68hTji86Duzy%szP4u z^H>&^URapRDYb<86848X87|uo@7pBY0Is0!#SB03lQCX7l?OO6w7PXSGh}JnZdRUrCmCG~n-7R`w;$ z>ezHz%ici59~sOmQkqd)t_M&6eLt_Ns>+Bs3jB{~K=-?X@!kOfAI$&nLVwrUnM&3B z|LN#{$O&*13>)JAgZO{^{x5Le2mZf<2Jg>^=2_r=9u^Lt;SRZQ9uW0M$v8BJU_Ofh z@rDmKJb-!dWwxgegZ|OTLDOL}gWMFfF1_%3Bo`FqWl$-$4N|yc>wLf;ZWp!5%!s=- z%x}b=Qoy%CDao{>mka68KSuaJKj?Ih`^o4eS_f-M4Cu!)?Njgh6RbNwlUXesM;yni z&p!?hnbRU)oLpFl^n(la?$wKdZ>1l&a1+Ikn%b!7BM^Y=Ok$2hzBH{#Bs#va?w6eN zeGb|5S6BwYQC-UHNm}S(v&W4y*OJYaN`F6KCpYse*zd-1b*QP$p*$^m%JdputYYw7 z92n?;!Z%`0Z}1YgHN3ausSL;AXIK7z?R|MzQ&-pT$vH_N34t&PiUUe83^G^^RxE?s zK^zbVh9U(-tAL7t0|-h|r~^(Q6)93Gb*LCbiWYG!RPF0fsn{0e71X>IYXm7^MKD0} z{dO?u+xPZ<-~H=8&wVbBe{?s=IcJ}>_S$Q&^;^Gn>75Q{!uUk*Ht|E?3*+a@&%{j1 zZ=O9o#ynZx9=v+~0;0P};FkJqDN5<1q$KF0J z|2N zb@K1;ujwC%2P~Pg67okpl$-%{{=bOZ!Z0QV2Kx0*>c6{k|0nowvU|vN{JMZQhe5wc z{U_w_&%u6{%w|YEXpWei=hI*xpk#u3X9M(eD0HuO4+l=*O?hiYfEzSP(!SDSzf_0jDu6v8RM*e$N9l3FB483`QkhEO(BXM<8~CNT*O(@o8#2~$`l@6dikxkyRJ{?d$ftCUAnwu z@|>8T%X8nQZV0aOk3W6-e1XT9@6WYqB{Ak(@jNYMVbbikPo5an8*BcEMZ4Vze)p{+ z;q5kc(@eoqR!B81c+0ARU)vj zKYH{cmmN<_@NX>eUxaXw_Vtw+7E*|7d{67KwKh7ZjgUG+4w6sL84}ZV^ z173wc!tVzEH6GW;AK~-!=R_-&MGQ;}QUs_67vl3C74`%0vzqGo`w%XdbJ&ERFkMXQ zgCA%V#e@&!+v|CUZ*zET83@=6ITOJbVrnkr9AiETS{N!aK>PspV=YW3vuc%#z|QPz z;6>y8Z@@p;6!)}PD)#AIsLiX&gnScmKJ*=LUhVhCzRDS>A0hZ$-wD-YD-L}mnF0Ht zj8sO>nDALZPGzBZ8Sod%==kK1-aZl;tj%u*I+K;07>$u|q3wm;)by{7dpw zyYiIhv##ENd>qa+G*ren2P7^pcrjPXA08j|+izuChGn!_f0$6_GE402SX%mJ+~sL5 zkG$`gdiamnu4q{?(`n85#v56ZQX>_O?SJ9h4%KIFpJ?|n6da|U($dsZ#3Py$wf)V- z{39&*kMfCQK0ll=<|EH*^bz1QO0_OlBA5E7?LNgc1OB3*U~AwcGz})2rSKPdE{-k& zu8M*E_r8MopNT{w8IV7z??io{iHQl~!DPLI4-ge#1_qK>>z^Y0^FE_SY4!3Z@<;r~ zNk9Hu`IGgGKb`zl$|BuJNohF=Zh=%Em&>8bNEr8318(cj}@qk zrhA!=H6HQf4!6@`BcGXQRX*OUEs6Yt7CMZQ7nhG~yK2Z>qnm;rn}~;`7wuYmPvR)p zO1C<-d}Kd_4ywFWAT9>N3vkugVdmM2u97)E ze=C0$);BL(EaKkcq^Z?v`jtKqzP}W#cinja>z&wx9+ir$_iR#MM)W}zo}%Iqus!wz zq7P}QEh${~Zq%c#f_-?(PD%?=f-eAk5&Lv}F=5HEDl>lEhQufF@Zb6Dz&^QrxY;q$ zT*MCvzTmE68)auh`_5UOubqYXR%%*UxRdP{0kLBX8x^qs8rY}NPJaKK-)PHnz&Ir_ zs@L8|J~4A`tIrmKr{0*{V{cP?=In`0jRYSBxToC5=4-^O@+)Hnk60U?T;DaKsvH zap1xFU+0gAJ=By}yo{HW|S5{SS zwlFe#Kc}WwvK8w;t|z+M!sycPyEf%tSZ=ly_^_}z;IlL^`f1Q3fFg(V|i9d)B(6NDG zL)PoV-^+hseG~rAu(Y&3{dy<-e`zT_N;W+{67mGU{%%fCNTia(Mn4V6pYVl{&tHvo z`-3b6$r;p(4)D9Sp`HK;UV|sut8cwnP3%KjT8q+D0C^)mK`DOgOKEoYFn$%s>@49^xiA=T98{V)yFQ#y^a%@iQ|^N}{}pzU1ZIwp?XI;)5$a?fx8C^iG9UAbDna-9;FZ9}ue$@2#Dnp$wRis;(7U9~I*Nn>KE2 zL4Cij{>u>h+tu&pjQGEtWh828L&jv2qBRDA|get5*TuQ%{_(|=*|;RFahtIU1HR;lKS)T@U$Ld z1M`5m)laUH^JHH~wXZS%a(zX60rs~RCOJi|7V#~Wb54(df8fW2gmhG!@kJlxyg2Yq z4E)2CtbD| zko{=mvapTTyyAOm&7WdYe_hwr?!f2zZhf)h7wpf==rR`{69YEZuh?(OP3V`lOJ>ex zs5w6ut(pRMR9YrWbs+o=4b($1InVWX1b@PoY5r_qD{9-fLrMU>7S zOwC4o;TA`uX*s9Y2OU2w*1Ik~gqAvFe^A3-aM=hJoE~wN*oWQ@r5y3&sX6$Z=z~VB zQu4Us#h;xXTA)=Wb9tcii&X_)WrjcK0sg87*pi^6MfKX)X)cj zamx!E$bJ#L=$VoWf1uHSxP<5f)TPLP&GyB9@EOqubqn@8wwQN!ZB*mH`BEuoGrp7< zmn8N8`$-X(!Qt`r;)0uaf75(@DMJoBCTHx>yEQmJ$h6u%LoP47!T$@aj~FI2G=$=D zCobNmeL#usCvESSeOWtV7AF(VB{=zQ!BQD2;920}+GH*2~USYqR`ud(4 za%}xP53iaM1ACBbeVPA7>vE+#SfB4~Y zhc2EAlTPY2fKQFZ2A)G&V2R+rTLc6I>hRwXG2wHg-pKC}e%E_l-Rt!7CF7UO)amuPw>pJOxcG~zcq@q5qS-UtCF z`}evNqqMGAk7?5`WeC^>wf?e~4e^|9Ohs9ln-LS@RlhRACmZ!u;3rga8C&6$)1Qf* zA@9_TtWVhVmL;TqZx-a~s#YUjiYVR5&5gC<5)fs)(e{zM-l5I@m>Ul(ss>*7y3`{NJ)Au#xUF`M?t zw$3cPLiD3stKhS7J<3CL*&qF&g4-2_90tXny3dU{rEYu*`a(6HZi7DUByGjWSlIx5 z^M`)O+)-LWhcup+J(I+7X0iKGOTwi`yf~pfARdo+dY6LlMD)+V?+bA!KF_^V|0|cS z{;sR-Pi;B$L#d1;^V9ibWPNKdPX~V%ZbD^?6^L(DR9sZRU!#fr+zI&;fAw z-aZ$6qlvt2sdVTMkw1Q_`#nr5;^BdTo9gsqa-N6y2lXL=JDQ@rUVs0u^8V}i@7BNm z`b7Td|JDwBqqFZs{w<2)gLoV{8zEsb4ws?-19{*0Bl@5$l2dPvVIQx?Kal!Q{9ZTS&6&%=@8tvaNdxE2JK8_+KFQq& z;?sfMYP|n}>l6R8tIdf|^ovm7WI>+-tG2@)QRzg#$T+x{kL#1)%XRwJRfPtMy77Si zm6a%*bYpzql)IZ_DecF62A=O0_9I{X68b$H@ow>Rt}7?vnE;I8gnwt%6cIO*2}W(9 z?sE8vh>2`#SlLdd=_nS9$++{6CSuEL1(%pODDgq1YC;W9jsjj5QDl=BJa7P9Gv7 z9_YtJA9~Idk;l{dk7WE&P|za1e(3B&PtjmMM`9l$u)*j*C;mcc&o#O3{lVYW#TzsZ z1JlKpLhOT9p)k~c|J7KhA4I=M{<7?Z6HT)WU+Gg8rwpO(*YeBaXsd{P2hLCAeu10x z;c*)FsEkv0k<1r=_zD?2<3IKDBj=xr(y|iW{Gf8ba@#pP9_;rkz9mZovOmHB(OqC* zeV|`Z#hYWKX9xRr68l~o@2k53xn&23@PV`pj>&q5`S;cTp2TzD?+=bicUXk~-mnMc zD){!R`~RQH|G(3Z|Npt}{SM0K|F!pVzZ?BS6|e2h{dV;GRjm71uTR=;GJgHJRy*F9 z(!Me7Zbv__{~TjKf&EAqYrAjhJ|7rolm5%blwQ|^beiR zx^%s2(7upmUDh{p$Rg z$dEAo{K7uLi-MStL6K7Dp*-lWH7{v1B=&^>7* z4bE<=)bXJ^GD=ly#Ji%*g1kwO_$3UN{>lG?$D4=w^;K0ZxB4CVUbpVGk_}?04t9%jyRJdJHdZn)cwXJzN_7#ex?GvCV0BUi02WNT2d@ z>8j&W;IIEPOFe^G%5te#H@F@GxJTg$;V}PdKX~;%2KC{u^Y2dU;4DP{ngRXFVYfrR zC|?PuDfHt+K4&-lZA>5asV@sIZ0NQU!XKuJVpE22GV_zVpM&om{%d?l{S-6w*F`@y zKg?GNJoR!%zn4kt9}juTJYrQ?S_YR-ewloOvt!RT=yT}8pzzWUJAeP`Q~pkq5vXtK zs<2-O@x^Lrl`cXjWi3ihe*Gi#lX|K3C);I z(|lSO^{03r0>tZS3cRNsB%8QzYKUZ{rIo)C+9Iz??~{#HoybN;k=D;h#~Fw z<%6^9(4P-{uvia6*=IL==K3+}dmRZMXtKBE_5L$e`Bo}=GYkD7l4TRdC(N{8?oayj zL~1I!ZmxQ?Kkkn2jGF>G(yv3>dd_Xh$rF)Nf0kaNx{e6w;zvvK*E$AI`!&4PnU}6i zuGyC{X7Wexd|)*3pkZWKVBp<#;S(nBH}U)g_Mqy7f{LEdlHnO^=W!77-%&E;B&N#tpb=j}H8;Cc??{Cz|MqDp2FH;H~nM+i1NLYCL>J6F$ zJ|FWH=BVGQlM0_*_77e23xCfZOYrju(v?rHiq8Id@xa8j9wp{ZM@!opzn-mH)D`;h znUrhRla`j&@KsIcT#3hG(r+X<^o-%9m=MM@_V`xP58y$QW?AYxrzSMUI+~I9VOyk( zjIcUB0rkW$$=KP)&20!1MSBBc%7MK=J%v5i1MDMN5B4-m`1-u?dj1I3z@C%!4e^Ka zSR3+_#&?-LMg4{x3s}s1S$IAn$$SOo5Bz`iv|%r8BEa9RKzw~03g%DEElslXvzNq8-Gybv%cC1gRB<(p> z)&l7xf%lM-hnR0lXlQcOu+Me;`40`JqCbL{+YmPDG4b!9;Sa2M02tZSrjw|r@N(xq zBKw2%ukzR7-_eiKU$?${l7%|H^F8QKNc24-c%ljFozdTb%)h$2I&!XS`HJ-)e;{;b zKc<7y9;W}Y%+GS}u@3(1ap=b-wKwR!|H;g6GaUDH&MBR^c+E-ouKJt*TyUg%>cpV3 zccqfu>0S54SuW<2%lEiEwdsqCivOdg`H<)S9SJw>B;X$px^s6;K*r01Zt7yE!@P*l zkd4Xn9-ffa3WJtlzq^0oxGHJ#W{+b(yP{qg`(^n36CYS9PkBFIAbFSf6@`8%+buZg z7ZPIU@dLg;$to|GO*Nd7HdOV;VZTK>D)&F;kN7Xi=aKb|cn0PV{P&~;$h(EXb{6hw zj(UGUHfFJ}(sE@=O3r)G2k>_vH!@^OvTAnyzRjm=Zs%U(Kg3u09H9xnxAUe?W64o7 z>#W=F)#YAv>uVc5YmOOL`F7GXuN5sy->!Q_=Tn-mCYyVgID@_|{8mRy!@?)N#zy0c zhu!(kkgDCTICZzcsCK&@^7+YO8+U)aHtTFi*5t#iF|6<)O>x3l@NKp(@M#8KGO&LK z?O+W4w35rf-`eqHanUNqjaVg8w@zlfan&6EG*8hDCVi0OP!ak@kY6G(aQ(BYI+q+{l2)T z6TnB4{G_%?QKK{-w|nAtn=GMl*H5{Tr#wq8dTcibpF~ezede^Ejk=0Xd2T^I^Ui4} zhiSt?TwWX^e9`aG-g&vX!wo}R)aXC-2>8>Kl;{o~E5yh1>2wL1e_@rA1L6(3{6H(# zYsLRU|1p2W(@bqhegft^*@}I(AZdf8Ik9gcAx-tOEYPoG(qdF^`!VY(q?775Cls7? zvoc$486&{uB-)0d@hrAG)tmIIG16UXPhwJk{q(2H{*H%FmbyzF?b=)7W* zC_4{8gb2TC{Sa&S36^NKQ^bH@_X;Z|Hd$%T5PbljGV3raG^QeWPDZvaP|{Jn$JW*pB%R@wT4P521E{BoqXwr7}K>Ca~0r-r(ucncEJAk>p#`~xl=mwQfv;Sn&mpr2# zm}XYsouIID?{zyzpUWEHd%21E6TbK1;CnKG3D}PO$##P+#X%DAJEH#cIOY#N zl_M`hKnB?@GMVUIW8~vjdaPTs;Y;mJlSg+~uXW{v&_}DDRhihpH9NPpVG_)F2;px- zJ%haIXz%j8yh%P9wRHgX&--0ID>*4W6~du0e`L?3;mP345@=|n$|4L|5H}6MiZ!?FTsC! zPMI=7KX!rrL;s|U`tcj{2jAHq^ruu{{>dpL_@w^D6ns~i%!AMeJpp2$J*ZbpS_wW| z?57o7vnw(Gy@_uHu5cdn*02KY&t|q1oy`xHnFgYq&|cdcvSnR07kqg*2HaQ-d}$Cr8?&b@SNG^x$9e<-Jl@a9{JeJVP`k(&uWU;xbo&U z@Gr`(<*OR*Rh`@Fh(ArQEiZfQ(5?5b?g#%)aIKAJFGC;Pu}Jf08FC6_;Rsny1@l8nZyA(ZYD!Vg9Oyo_hWK z4zs|Q?Eh@&L#Vo#de@Qg+wAq9 zjs38-_hDr22cs>fjowSEh6#+Wx2;ZT&UrZWL#pYHon%@sVl^K4HBJFS zR;_ya`HL$XJI+^ro;TY0Sbtw@HN|t59z9<*Nd|Qb@BOXT=;qJYJcE~)N%1n_zU&#=e7I?>ixzce^IP(D;)#*L;u0&Fq>WBQu^a;XYf10 zB-CIW++8Nf_aARD>+JJcG3XGmV+T+8XnQy6^+hJ;aZVPbK1uW3bZNAupJ)DoHF2y@ zT37cyxBYt0k{O>SAE-~GOSIj6t+6}L$~{>52ZB~({;9q9k5529^wPlKc9(GAqki89 z=N`A)JwgJ0kjUyxZ_Iyx#^lGeJzb3gQdje$EDc(0+VLK-csSs&&A$rZ>-PJHR99fV z1N>bbJ~D>jWhyQX+B*^OvEYj_`Rn}I6c#`J%|?Ev^q8aLC_`fZEK%<|o4up7y=Cqg z;FZzxLdaRk-Ua;i7QadH0`1;~U-N%tA30)guUzkDYMx*koMmr-dJIR$o+i0rcBu2$ z->!F+QnsG^`~Q{hAs@1jRlokNAj-Kvu;;fN_Z+X6%Y#;n{OKKK6@B;RPQ|}8jh`5N zOR7}HrZwke^J~o9q;d9JXgT(eoM}ajM~F!m+3%9WBLc^ZpbRJp+{|lcY5NOZjM)SF zLH7TKhZ8!lqXYx%oM zksnp3B!^71DeLebpI3Pk{*hou>7%vdTo(sx^A7J|ZwCH0y5(xDqv?XldD%kCkCEyT z3ZGpIId=97?POEeS>kUxl2iI_ja3Tf?qNR*yeZzMZrt?ZPU~h_N9N{)_iu`wKnTh6% z)KB)Lq{@srsJ8`w-codsL%B&Zhn0HLyEVhR2KX))$P4GYSMi}X;Nyk=asGq+!C%vv zMEK7y_G`e$^|&KZmJhti4b&?qCp!wiMtws5c~akIP*Hbp%1D=ac~ym4KKldY|KgKB zmzFBcR_E^9$^Mw;*h{%@d3?85`ULj7B#!<^ZI`M zd`G9*baxZinczP@^0+S7_gLME=~Hf@J|!Ln1ZR?HJ9j#wLxK9zsKms?bsyTCyx}A` zy#(=%CisifEdIp)m*IUFd?Br6E=P>f4@h0K>m}j;l6u+Ob66-I2Y)~f{B=y9*aLF@ zL%w!3@)iHd2ZH|Wdm2!}QHJwRxJsqsG51lwnR})U_?w7`un=>@dmZ~K5BNA?eW;@% zqwM)jsK?1oBK0@Pcfp`LZdCltC;Qe!GykBUUugLG%)Bq-QLp!47V5JO?Yg+>S|L?a zetd+_EDJ-15=i>BUv2J*DI2n8j{S8TIi2yz)%@pWj~h(x)=F=RyK<}S6-)ooQht2L z?^!M!{-V&3`1P}_OUjpA^uB_6D$<{4juqsu%%TcG&+s$I{bTfa~ez zkN%08osd6|BbCDcrAd8)h}(wr33TXHJWQ|uz%#&KCGkvuPAKG!`sdEmvfe6!ABZj{ z^^ceLop^bmndEmT;3RNGUF`}LDUlfq~l+cjG$Ys<2h)+5T zyf^BVc4R(TwSTTfWL#1~Q?%d;%Oo#2xNh;ifcdNQt7^pW@tHBB9c%YQXL$a$+A|CF zM~J&EIo<{_HR0RJoZcBHTD zS~kLG2HwZ@IjiCpN}40{st$Lb`jYec{hB;Lm0G&H3T$59#-(xmqrA zwQsQ*=j6o8b*Odo0$<`c_J&MAe0;ogXs!Fc(p8dc^dnYeHAPvv`33tIP}DWdcS&kc zxFxqZgY1U{KacV-XATRKZ#?CNKD4wnS8Dls{)UW+iKODM@<)HmLK5HWK>Q2-w;Xt9 zc>9q|8RENXz%z5%>yhuxX6x{)7>l?Fj<|Kse+qjTqADsHBa(E)ZOCsT@d40zMLP_| z{MQ#WD}XOtzc3_Z%n)i~PG75dD?N>sf_4Lb)+1lUCgh$c{@AUO(Y$r<+!w7c&%Y3l zekj;JTrzAwFPr?uf+?MrSLs;TUt3}5t{2DKy$QbjGLneozp-Sl*En0rsE?!I;^=4E_a`|`y7M+<5eMbGh}SuKe_aQw*c## zT;G6|efRW>cArelH&}ME2>9qI(jNuvD0J6{^8@trRUsPgl#)C+*3bVH|0&i-2m0R; zya~ZK5xg78Pp7E3bbANzLKjGU6#R#<2aO%;HxyjhP4q(rd?VBF_KT;#X#EinPf-ES z$e1_BbiSxO4*yXm>p}g)$G7*rEO@6C=gGjj=fym;m50XX7@{AV1JiYmrmY2Z^_~+4 z-uVgZDRIr36*h(eKI$WDeB6L9N=!{nHDs!{moK@6BM+(nc5x$kGBQ6BkCfAPLf{XC zlK7~rA};VpCc((h==1aM(}6|I;C`3Dok~Td$p0gMsWXSbCy;v4Xk}3mc^_i@Bkv;( z_%5A(oG!dV-bb)Z4g0{2Y|Q)&_>JAV_k;eEiwPbg4)H_i57rOxT)@kaeqzD!pSiS6 z?W(ps;HjM1!QWB9H&eCifUhC=n|_Uo;?ZVTa!{`+;?82P>#B0%(RB1r>$SjFMKc>( zcWg)hlLs2DRzmRK{fk1wV8Lly+>h+fR#vzD@cgjvIXe7I80@89-U(bkMj*U6=*cQ>ClGvtS`9u81jBHB@;(T^sqXz?Nw_254|wcf@Czv_-RBf#OYjJ3Jw-U| z58$85u%85K74X6_#`Va!AN|Mi{L}zmA&yg5LgV{*U%)33{gPHW8-m{l@AC`sDQ+BR zxtp60zAh)01ActAK`<- zw_iQ*U+4dSdt7i8`RBUV`QOwk5tjg1k^jsQXO3V}t2#Jj%qC;)gCVI^Z*hGwX2{r| zmfw|4V^NB5lAqM&N6+PDu&9>T*L%7A2bwB5R{DDW30(dg{ZZe}5^)ng9Jt?=%tC9h z=OO>23AaLivr)Feq>Q6LC^02GjDvhg*$Oig&QjJlcOxQJ3Xs2a7HoUUEJl5=xA$v#Lj^P9U6!&g zKKa+7PXsScsY6U^g+`xH5n&4hM<72a`IGUU$F*Zg>+0%W&wrlo{&>DG`>q!ZF9ZIX z^!u`9t``)@)|ng!o;DH$SM_7A7o16WX{>@K_cZ-#^*F0@nek`rRSEXfS#>Uq!=1ym z>7IYwnK!}zl3^s`xj(!Ez7s{&-Gj)-NXt~wvuTo#$$)?M2?aXV+=2NLJU}t2Uly|X zTb31XiFJtMkbaYC;qMC2|F?Z9y@P!X{94Jyor^j}0*R6p@AZg><16pa+s_VlA9*|a z=l4p?AGbYJ{=U6nY)u0_eud4urYOf~+3LUOcIet4-?C#ZrerD6$`1`yc0SL40pB8? z$Hf^!oSiNP9$TwL1PyytBuBit~s*fvw%al=a+Tup16!JOG!-pWOOa!wTHYvhCdqE zt&rQ2_#FDVKEin=0tIR4&-zdd{Gk>*Ho3nweZ62~W-j=)Vi@oTg*8hi=Pj6=YhF7- z!Q>WtxoA`@cNhu7dqaNWBgC)_G&aevN&3As@s(Oqcg<&gSl{-Pu+5zJVZY zV@TMAp{k6@1(y+@qgie!s5YQdPfAkK5s$TFQBD=Puk~-BKk+b%#Mg6m=kK(X7XDW* zxH&GlUEHzz6|H%-|_xY4is-pZ9FMSq$NKfK9ZOFIv$`!MG&Sh96oUV58j3S#7*cT z$aYCEwMwu|oq_&EWs|I|dbW+~V2$28tt*XhgyU_gS|#VRL@`&Av*riM`BilXFfdRC%L_wRFhJ9}t#!_It)^!~njK^rO3GV&wg@5=R+1&up!e)5fKY56^H?AmEh_Aclcv6vr@bT(Mw^2p#0mzd0qt{PRPT3l2>_jQY~__R2gX7RUy`KUaf#VZ`g- zus^qS_cvrs-jjN^0OvnvHsXt_ksQLWk$=G%_lG&?DYbP?$SW^sd;)*gzOu5rWx*j| zv$(wTLVNT#0^ip6zQZ!h8;*~UbFrtReA6$jvI#gOjau;H8Xx(Y;1FMysIZoY76$_M zbe4;k7tUh?_&cq(Om}}aEAxpp;!U@R|9}@LWM}4vKm~=I7G^%`J3LLtcHsQf$Va{n z^y!gN*7i%+ROMeW6lAa@lO(PO-nul+#dXb;TKi09=ByPfTm;nH^CcB;J`3H@YevT(fJ!;h=;SOHu#$d`b5B=rnJDH zq8fo$*EVO7^BDXKF3YC&r1mp$7UC6wfD0N>)UWtH>OWSp0~-}iY%2PJb}sQ32w!`U zT>rj--k~Lv?nJy^e*^aa_1N8*0-#H`-};%^Xtkz57{1zn{a`O2U%{g)0$+dsmXM-+ zKse}^)9kl@xH}@mMF32c3jA`K&RUrmV}Dd8r$roM$u4C5#Fqg2PMguB-(E5X8=T>C%vO9kuf9-FgysR^)m(%is6&G(coWgzlBw>ADf zY;P(?g@5qY zSw_sU{<@bEl8m0)IJ8^hNYL3oeFS|$5IE) zonnU4L>>YBRLa`jTTZXyp(jRi@DDUr71VBr*?rV+5QvH}Xx&9yENGRB3IX;a zx>USSuxgE1Ed}vfuxc$4?6z#zYPG19RwG(P&y`S$nnewXUc>*Cs3S0?2{1*Y(%!9u_z~B4uw-^5QA>_Fqq4Dtd68uHM z-~aK_!zc}Z0{9~l(!+mf_>=efga7;M_3I4$Is?DXz(39aHb`)BT+e^8O~Ti&xMv=I zosXV*_*EW$l?VF_{AwTU)9|Z4{HhQCFX;o5NbAbra`?Od>zG9f4P1`Tha^V9!Syd= zNO-hbtv#o*^YSm^0YvyldEWNBNP*C7A)geX@Eo5R_kA%&$ji&|`3yWCA1){UiTNT> z_(mV1fajP$0tw~#HN7~T^g*OgFAmG`2_tC-{<-)6|J%6z`-X4q^L^p_!xaAF@AL2S z4}3*o${zbC%pXX@{~3e0iHP)#H|lmggA?YNUemmW6XExLB6582>j#W}KZ?YB;_t^I zIiGJfyP)vx2|%`hYJxtYeGYA zumh85#ry`nWRL^He3CT!AI#rR$fILE9Pj_1#+ZK;Uf|^0E)QWFo%mn=Jj{Pol-66eqIG&siL@kvC;o$^E= z2JFTEV1EBg@`2^ocLk~LeO|C{FeMJ`nE!vkcKu;``J(^1y|>E~(T{#w9`O7EoiiQp z|Ma+>FKv|5pTIm~`n7~S5qbXUcT@3r=pRQEsz`X)x&`y?_ut-)+=#6EJ~MLiF`lc{ z3fzhCr5yRnO7;?xYwHU~ETHO&c2uW&vmXPF&oEgBY#P@@jb^a@SRWkR9m@mfaUx_F ztwQp__4Qf>uao=EntvIdS1B6f=O-mrU*YD96CLv*gwKDmYIu+X^N8^IzOVJpCyA== zo~l}4bc|#B;1l{U%Bb>ygqg6 z)a_q)?&mtra7c{=G0{;`ErX?JF1D_}Nh^?m<0>SBMcG5UCX717XlOcc@))tZxFFYd z*!L>KvKlm6mM5Z?4)aX}|M8eFKEXZUxN6RUNu;NI4lL+n58z?{C;s(6Bo72OMnqqK zj}TATR~}&co``S4``PUQiyb4Q>EYMzUxhfH0{^;=m$zNr%Qt*Eq91Z#5(!yfEJBHh zHk-|GKNvrZf&b`e7X+{G*B~sogfZ~-5Ax9Sd41zC1~fItDW5zvJzX%tg$9kT7ppNRQ~cO`hl`=@36!RJByiN5)zo&O$r*ysZ(lH>XD=kdZeIx+Tt zm#P*}z#ju&R71h|r3qo@d$7u#LMz^A*h38h3>t@~AQ|F?pPMiNuw35_@gCL5H7q|a zp~HZ}uB`S=Zh3`+j<$Kj-SUk2OXvT#+p}P4*8LFd??op9$1rC3xSMr5y5XD9u#+F{oe{!-KdA8c_n+!v z8W&;)eb+H+KZ#g0Kyv5Ih2ry%FyBU_NF?PIAGVF3bPi(>GbAAH9=?1%Xs=^FDD+n2 zsgER2+JA<0&X04xe?njX-ErWf0J~tv^Zexd0pCntfBcwl5(Uhs4&3!|@DK4Td`r82 z3W0tvEYG}9@C=WipG0|gPrbcC(Zesp@QJ!j+!^i}jO9@?XSxtG&V^*jNSb9-#N_K; z3Nrk?Px5~6jdY=kwCK3FSV?ErksmJ**XdA&wLAw!4+vk<@Va<9t<0gtLWyK||J0P2 zvDyf*28zXto14#cXVv(Gm2@MB*D5Pt@aMV-{D27jxxA(|Ev?ncaUop02ZH!MGd?De z`@U(~EB%91s0qmfPlwLBr)NVR?FtD(Y^Vany?$wcfwCC(Ti7s~uJjut8ZUjY>+ z<&UO1`KM4-QiID>qhr2c{=gah_v`_ILVNu8&&iiv-(lVy_6V?6s{wx>D#s;|KK$!Z zxE$Map%>VDh<7*oL+#fa}Wi#zs@c!WrjmgM`8oB~qq! zbaZgZN7Ezsoh6WwR%+|b)4A?v;SJ$RM)W)&(5deBG<~U87N0a)PWR*BTg^l z{wnu-R9+j5T0<4FFHo#|FR8 zg)D>Uj?DOr=JDaS)GMPOq5?$M2cDRdB1=0IVvYqOD-sGWolcijMX8zt$USrBnAGs`gH?gO9XCjg)?V{(cvi0sl9@5%MPHD03Q{ zGi*n~GmqaLPXJ#usAnMeH37`Rbr#Vnao=2Y@|}znE0-pxaW)uZ;I9=4>b*wf-?L`5 zdYoyEK&`YQEjBvl{{Dd#fpcVR4)_m|XmtH2uaxXE4_ud@prVz6(x&v2uZCwH`QfiZ zkWYolk{QyOTGuY+3H}cLf%eK@5ZgM=Fr&-PH&W=p0IG$C{Xq|>hJdy!_E-3cT}WNE z`TO%wPol#>`4L5czE@FBeFuL?HT-FTGame<{QTVg5MOPii6{Lr*cYe$x68*<{u=n@ zIph=U_X72V`4G<{LZ_qUIKKCp@CJog1DY56T{qaT0X5_EPQmw68lQWRLW<9d0yNYJ zT1V5-X&KEOgKl*YZ3St-ui#3YF40=tMiYp(=hq#O7`3iys`lx=+E5Gj+gw3VCl;LP zTIu(hutXKA^z+|$taJCM-$!hJ2{2L_I>2AIxwDWYAkbgs57U=voP4Jty0Y@bIwuBu z9v@%yf)j(j*Dg(q<+@n`yc&W1M_?YbT-W#b-R!ttYpprfal6$Q*Qr^A%vx?F`c9%`vf;o}@xXsDAH@1=kG~(=2hiV*kncM`A4lju zPsIB;pT_x^K?SqIkmzlX&$E**(X0`j{l?8c^$h_g9<5^qmVR;H@lg8xYU`Z6*q+A} z?i}MrOl%wag5AC=yW8VqGCb=Fx7BSKgyXYSX=xd@lP(I@^(BPsE7jGuYTM?ot~Lx3 zCSC{rDe;N=hlbSKOK*IH?K@rC)SSWHyk;UiY0S6Ei!ULZe6}J6$D>YcK=Lm+uE!5-BY1_pB7NC=4p0{bn`iqU#;7Ic;vpfbScsrf{0GWQ5( z0m&)QcR_4SjMh3A$Y-c8Af7;!a75t@PeZlk;Ta3ayGkVTs~9L`oR>zF@w33u7#3E(Be-F`aYjI|cQCkrBQ2ALy`O4*hdtu)i?itbbyA{4-dA3uKS& zzdhf2oUcJX2k`~uOMEXcFFxwr#NF%a=lDEV#92S*=FP?YGYn%C5Sf|n^)8DTRN9J;iW6!PkJXdU(F{#@q|Hg=hT(k6 z7!Ldk(xPKxxDHo%Y!EHb!r+jQkgmU-4LY7bDHZfvQTbu+hqmhz&7#370(F2tFAU^! zw#O3!`fE(q#X9+9kU+`J>*c={$-PEMvYq3=SK6xhcqfL>gXu6kF$?~{T<_(?Sigle zt-v?ggm?(Y|7r2@G2Grk2a@Jcf5-kQ*5Y5u?M5QT3(O#3ulndT>j>Mp;Iq_7uxN<% zudLt=zwP<*Hlq;uR+FMJcLjtlu(g2PCq*m*C&v|%Ws6%1+^D=rxzY^@J|Rg&-#$$4FbNIvwDPt zl;QxHm;5Hiwn15u|Bt~?j47+?sHiGmg9W8>oMQJ zXZCdyxCjszd_g|`g#I=GpP<0b@eaf$^p%e=u-+OfyDWxW zY!7Hz#feHD@_)2{_0=074@z`ar2>CB{qi3cj06l%W$dyx|4J^sEm0%z zr=p;_@euz(Jh&a^7ZI8$ZG8`>eDzS3h53uJ=L3D>?VsmA`HhCW?LH2^vA_3$lC1-S zJjkhlH`E|~3NJ6MmL#yhFL37Tu4Go*#);`mK|Vo)5Kqdl8{Ck(&>Qpr@I}3Ghvj1{eWapbf86E6Iw0Qe8fYHj-4!hoYG4Sp?epG;>NFY~l%UoFn-)Xi8Z zyOtiRjDpK{o?wKY4A^(D2las?ob%s-5?M`bloRW~-$q4iofz)7`|Do*Sf;PO>%czu z_3s_nK7fDky}y*w8+zsK64>{&xL$o%WBso8vgII`FN{(Z@QI271N}C?SZsXf&edS@ zYozfzVYY4@Y8r1bKk$A3Ym^up8?T+`)^RyIXUuW(1@S`R zi2M(o81&aq(#Jl4e^`~7)yp5)2bivJ`rJ?RCBk0&(1di|eeZu-UKsG_fg^tCd`+{y zvzQ9Z4ukrUpWp5UBNhIS7Muv$naqTpv6}0ZqQ?Cro2o5zGSvIptyYPk_I@(^Z8p}I z{)U_!H~yWe6{PxW8vLcGX>q12$(=u(xGos9iD1(#WqdN_)q)AdKA8XS&1OB+JE!=D z%^wHRHq=*Koc$<0SmUg}^kDmf7fc>PKZmh@$KvCV4~)Uw1H|<|InL)5@RbosghTxX z)>E)QA`o&V>xw)lwmIWLsUUsuoA+)?Y0yrK#nR<3Nnh@9&om3-J*K70!Y&*ie*Y@O z`z%wVGNr}E{N{*JaB$9~k`9bArmkO4k)MB=fDgK@iWV$BYsRhY05QeO*Jg zf_~^q%KUCi`SV|?PWf#p%%3J_O3OYmPrg6sL2ecBug*9&n&cC&-@mas#|HLO>1u@e zMk;pFL0JET`G|(-9Htzce~IM zx3VE_;qM&}NEI=f1SQ(XX=gnXZo5@^9BRWQO1xh3hrmTe%cr@{%*m-y&6_z(*YM}I z{;!OBNKOgQp=ZFwUEbMBcrmy>r>Lw9oa~(cR+N~mN&do#VZLKyqk8Rs6Zlh{pY_`B z#N@vA9{B&$=hNPFjzc^c7$}kS!EpOCz4FzH=v5HVTi-!E1A-I|;?cNIM))0FtoYV9 zvvHCEzOS~rdT-S{pMsBs5B#$aF=3UvKbtmtjA2~Rf{KH{KO-a&IYIU)GGtEvLCk;5 z-OR2bVyGwYr5@sV*z#URqtta-izSLOV@$aTEv{5r&P{8zvp*KGk|}!#$+%= z^}qK}`oe}7MqNUu>0)Cy#2&RS-IFZh1(eVg{$laY71NK++DM0a?*0JQ&VMUXOosJRCqLltKfct*-!n)MwPHm~pK(E8;N;%>TcO^Y zwyHP21AR?MncG|c0e>J7Q&gYVC+eauF1%;s9{f40%>#jbF@5*2y={YGxMfbo!IKP9 zR_^v2^U-SVyk)NVRVp-_(Z+D2_a!cg>}2!5ZcNW+l4iz5FPT(6Jg6A@e{>0Ik$*)+ z;IPHg;O1RHpwF7MB`sHmxtk7Gm(M+faoJdZ*#Mrk+EQG58OKAV2U@=q@=jm%olAlL zWSCi*{_9)_E7!d`2iA+B9thfw*MlboZ0qF*RV|owfO6)G|33c^Uk0$w_Y)FOe+@B9 z9ehiv+rMGwet*k>#XQ5Qx$6rzgTH4C$*pID#6bShE!&u|Y&tG8BQ1aGo>u8?d8E&% z658L-@5G)B^FGU{a+mE6eJS7tbEWn{ZNNg=Z4E4gKdVSvm9dJm43HyN2K#%>h!K7C z(}Fz4bhZ57J`et~kfnKt1uDBYo?8$vH-reH>5Fu%4r6 zv8;;an)IT*y5YguDkQ(Ct@LX)wj91ZoZm{VEm3LBe%CL2SlRHEEb3!tZw~UB1~+4fa2QsSt~)7lyLyCtqK{f&bH3F1{ljCTSTyvUq(J zwg+7+Z;M49^3U_Hy%P%Z5N2y`WTnFCIc<}^oq*$`n&vLEEAdK>Z|R8(SicAg3<|ct zee{t)P>h3ra`5p>`N#HyCxm_&XT1-aS3%Gm82Z>oNU@VOpuild34KnY?wijoMu89&-|DinO=09VQQ4xn9Q`&)NMxTxSgKEH}L|r z&@j_cQ^``JlF3sENCEL#7SwMbk_ErkiddnL5IXrwL#mFnv|fJ?`S$9;1GYQI!9JV} z4NY)ju=mewzVVt9gFOixF`}=3NK4klLVXtrj7XwFrAPtGyD^qaioCn;?g}PDpH)CO zx&QlW-C-M;5i0z;`kvLg`s9u|`Crc&elREDI^=iS$=fu#3QNoIkomL09zgyT`J7>R z(B7#bz;~E%^60YB{YQ*kq?iQy%jhcBpQw-z8L?&a?T?_|!{|gJk;PM}E8kE7^*x7mC=Z)7}0}7`&u%I6@3a>>)VEa{OV$Tj1Pn5HpYK7e{|E zsr70Iv<&8yFdCe%44ZT4g0kJcM$;pq4YhCmU8) zwm8O(A3G_p_E;dRGpN$$WZJ}}W?WF^^&q|4NEe345&x5eUl%eQ`lE}UabRzkQ4bUP&&kH}YXqAt zalK^uD5Wrp)#%lxj?9loN>c`;rf<-JJgCL%zI^?~k-wY#t!|$+JItUg@|ApcZNkhg zDIXTdN@}y!GgEHw=4yAEgzsxeTA!dOEPBE|7cw@Mw&!b%9dUBk?%GHFBnM%>7WZi~m>e{^>{0|o0?EVl+dXV42ev#%fZ3BI-`tO!e^T+sKrgS)Uz+&!tg%1LBIo4L z6;MFq&JIW>JdFf0F^WLA`tY^p%a<9(i6Q?^)9HHo2Yns^{e#YN$oE10pV0s9+qVzy zGoCDwJQ457ySrEQ+6SoTTnYZH6V`JmEdL1N%TIQ|ieT&QR*kG^>9E;I&Q%6VPA)kU z()r+I|B{kym0yW>;Kh)%8sCodA>>0n6B`#5!zl0UI(T+XJ*#2E*2b^C{ruph!#g*Q zJ`Mg*)uHRK40B&zVk?tbu)f@_D8K6=e*IIMT$~T%YVOLh7OCr<+;7>6iC7-KD_t|% zm1;R`W!72o{kQgu_VLISq%SjHjr}d(RVD%ZK&thWbA1Tnft-KZpY;>@VUM==>N}5s zdQE`)CI{bq>R?jC!NG$Z*mbau%7^t1uwNRzo?)I5v1cruJHEsGn=F=$q4J|`E01n1 z0{)eW%?88FL0+vJ>$Z0rn4L6KbN=@2b7Pl#rx&ekOvt9e+}D3@d41naR(ccq<(}pr z-hIl;PW~VsPg@1~L2rI1;6G{4(G&bXu2=QBzZCi@WKL{?{4TRkJjoz*{=zry-*>?x zbJjyQG91@K>b=UY3B5$yjl!ISDfG228~5HDI-#X`T*#E!JJnv`@Iw->6-aMyUdl4r zYCpf~7R^}Og04a9zQ%kaQzjQUXkf)eNFlKPb{yG{`VASNA~tCvFwU{qEdAWJRtGod zR$*LrcYnFWW!H?5aw;F==F}mup7Lk`v=Ku!MX&y0w~TfnxvRE@^^@)V%VbiDNQVB< zMrZs7^;@X_|LgG}tk-W>wG`GpI0aM7j!cW1sQaLLf81F4urX zcfLLm>Q~#hfA7Q{sFd$Fs@Gm5Lq8t`6wYz5|3^Oh=p*h-fy6AQo*On3*7tUsEC0IT z?AkU36?83ZC&YXAg4Zq7`90b-&ey=`Rn?!Cef+yubbc1-|FP@uiT%|PlJ`1)bjojF-2RHM@(3 ziw`Pf6ELnWvt1GMV6dec;z2zlP)oM+31+>uiV?)_VAzMl!vG7{nHru z-|!^=dBA^yQ{P>vXA^TqCXx>Q7rNvP=qnE%!hn=W|K-r%rf05Pxe}-J;=d+>6c9h} z+LCf>xKFsPVeIdvCI}cpto7!?QR(KG30mnj4NJ$zuCjDheIOU@OcrG;k$l^#%#5CV zOpe!6b?eJN%y;qw_B}Sf&-xD3_a%}(_Wvx5$42+&`@rY@VI{rwybhEmk$m=p^ZgRR zp0oo0xZfuXLLN1eKYUnq#QImG6b!z3C-f7I2=w#&^e@F!kRdmaWp=8q&@hs-h?TXr zRF5EAt$(8@|6>gz+)B+(jkBC$Q_ySbnb9y3>Tb>r}8w_6X1C+xe2gJi6t{WGZn6>h`E;=>9{GBtn=-ImL;m9!!j`}b}hgLuII0VEfX5%hAo%lS7V>+Czc_$&d3pI2P7L|P6Y(U--$>uxdn|u1$en1C*`U8biS5hjwR3iv z<&yjwb+$S#)7G>lc5ii13DsuMWHXZeK*=Nx?jVmIV1sg?f@f6)X)IYLDL$>CDf5j_;?(p+DQ5dX{z8 z@A*`fd&3j_PjL4LNO1D+=E@a$WVJ)S&uWYelk6oORn%{kyElH`_iy}ob434?4KeBF zRICqBKj-H7+)GY9y7fDV2UOawW_=m+gK1W3(N$OcUa!LX_D?Q!1^y}!uh?G z0H);>`WPW7|Mk}M(lGyNz4p2T)@z}k*U2aJ`#}EITMuLq0{VOTzl4+(ety08+wDbM zrt|gi`D5YpY-fsPDx*{n{e%jCSfBr@Lcagt0{@^!rbM-N45!_n^{!ptYnW_Rb4R>3 zJK|lLS>qo>%+xb8=f=nS{|1zKr$&VNy;o6QHs+c6{y}W6U7u~XGUdR2azBfKdLGXg zm&IB7i4E1kumu3)bxA9d#ICyBkt+{P!1GsDUQy=4(^C-NO~QEKz=8cK0`>#JKVkl5 zvZ0uN65{{=Ise2#cWMGlIrN=R2&^ycRk!sM%ztunYpVy;dm|?fD8hW3EXOVkao=+z zqTN#l_Fs+kdPBm%qgzs6fcOyf$J7)TcXW0@d&JEs>8aT@5Kq+yeqRRh!wcG&Kg=#s z#>Z!^vi&fmRR|#gY6?|&71q~-f7U}T#>4&gnpJ()-?<&y2b*oF}E!`dUGUmHNC>A$;W*8paxW4l`lc4qk{6%q( z{lBi>sm{!3YBIdGYRcz}^Xsl{^2{!c+amO&Nc4gMcmF8@9L-@c~k6YudTs0a4h&*#De z<51=9j0Z&g@OJO;4R2xoTOr|+iEgz@>k4GRKNCG?Ui|a!N4IWG2YmOkUGk7Ef{yKTq{AEslFChf$gT3_v7SRtMK6>aJ*C6%lufN{n#5#n0VZOL7 zBz?{(rQ!V)I-Mr@(QVE8z~c3t+3HZ*&rc|9t}7mH*5!9jotdrPFO*bVIJ&p?vV7vX z1+$^v+iobUN%5e}ii)puW`o7j#l@#iDzCOchzIeZs=B(;Z=x^6i)G{N{v6Crx$odz zA(nUd2V(whHja}IyjBo#d-E*dH*8l+<1o2sX-RNXu3cVWz5I%h-%@SU-vf)`pRu=gCPEv!sw7fd7wers=?DwYMAsNk2vOVky9LdmgHx8LycDQ{mK>;Xyjt*Q~l$HAXzfFKqPcDIw*!zQZ!*>qb=!8M93jF{)@O;IQ&CR7QK= z8F%i|TB!fAVQb)^hyD`tu6nuHUJtZ284OaFz2old^6farR+iyPS*wFv*4r@u(F)yM zitNenF~!Nd*T6V01&y(cp>?Lb`rd#$rlw=}TI5<1S-QMzv2Ce4x+Tf1u@-Wvh=)3#Zp zF??)M5yVew1Od)pH;+w84Jecjn_0s^J;mJi<#xHWtu;yV(PJAZU?#&{v0@%Mn ztEWwyw%o~Q7!r8*_wKFlCENM$&Hr^sy&o1Fo%cgM57LV?&Wa$}b2B0q$rmJqhFY5z zOGh>yw$(uYad|~u-kp>0<_1Fk_gZ*@%Fi#b@`qzt_kHgSSH4#EQm9rNKc%E{RN>N5 zF(Mz3-;B)6xE*tV{IjBp8dbI`4f37e`9C~tD_LL9LVO@Dw`$)X1?Pzzi8rteQoxRt zn9*K)LoSqnzK1a?M2^|rUu;}+upHuju=j?hV_7m6-HFTQ1rYxmREDO^OjlkqIr6nB zzIw)}wAi?IvZp$U3~GZ4+zCg*egOOaVDJa9Ki1wLf<2sruc!Hb8dJms@c+H}{?q#J z0-NO<0-)aG;GZwtB8QRz?(dm1XYpdWaH3iIL4g#WUfuEcraM0F5bvjN*=k@|RZLe| zS>TYdUfvViy!GmA6_=RIX1~-1^)mS~@TaN@zY6PLv-hy%*#1Q|DPUh0PP5)DgJ$R- z<&oFb*|2_}7H7Ky@xaak5`7%1Ty8dh=By8BU_Z^|A9~~WL_~K#ynNZoH`sp&_j}_* z=-+_-1Rd~t;2$mxLMQ9$>bSPkvS8!b(VuL+c@jf?)AGF%3mUFp@Ssr@6U*lOB}`wnq4KUzBa@)CWoE@j-6ef0=70JL z1NnqLE$)Kt4ZetZw>1j0|4Dt8X_$#*h-X{f@Hi>U-rPO8>8$3D-qA=eXX=%yabVS|JyM2M>VKO8*0g~mu2>BDA3~Tgxiv)WB@n6);NH`Ax_6Pi1{11lw z&&e<7e^0;PV|{n!2?uyg=*|CyF5!*E6T+SK0(ar<#2#U>E5Z{MN@KiGFq>C?d^(G zFQ_-fz(B7+&RUhwK(II;gnDzl*16v!4fgXbTA0*_ zZ_IzM{fGX6IB-zTaSc)oiHq-D9|ZYmJho*XcjYWu3hRN;e@Tm8{3hmn=Jj0jVF~1S z396MPeuZ1KUo{qev@Zue3z#40}Hj+!mrqNdOfEyfxUtD zhW5_T@Iu+BR)V1+e$~as>8vx%QCVg=0xg5>EdBv*rRyzaGeTgo1L99VKe=#VzIj0; zU|26ObX*nkn{oqRhkR45S1p_!{X0I%V!ng0Jd}U%K@ryfN$|h_x&A|N-$%dyk$)JR zu%Xzg|E^W;R6xNg2X+?@X6KLcJ_7MT*p*|YrJj=Ku1WX2vlZKiihW~cLp|=@SbDcr zig6qiKnJ~Wc2E9-<0Dzh1>Gfye(T9%}#YpoXK=8^LlIewf>uG7uBdg zI(c&WH`X~&Ufg$+P7GCqRPVUhWB>626rzoZCXG&l=zHv`io?w z(KYVZI>+HWhq+5${mO~qerx#DDNalydH=#fEw^eZ8LW~0eJ99EMP*?9miTYZoA|3%#Lya-#|?=NG@ak zf46wg9zF%io=mD)wO;w)!Gkk!Uewe{A5pM>T956&+3DX|gg@8W56=7qwjVAPP~eOg zfd78@2o49oE)*z#)qt%I?8?_~zm&H@?Z9GcvoW;0(_Rl~Dot*cx%h3kboBKu%y)jE zIcul@$Pe%?!nmZgbWF&A?XW)J1^t3-*p-e_`mK=E)R@!_&>vpHG&i%!cl0T#kx(zL zfp|=BWRtISf4SoW*>6KbAwPd7(2ue;7cdd`JUtQ^q@K5uO$2^>`h|f1&o5rQ>f|pG zsT$7Lo1OLn;=z`dWe?zfJ+OiM%hcH3IPV94F=d^(7sKaqf3vi6r}d;B#0^1xxbR}! zC2P*xrz7Cy#B8Ma;&oWj+#5a$YA}d~`0|y7_4TJaJAvf~uGqfEXzL$#1tOQfmz?)y z!Tv)$A&T^DjSR_b^ko@FQQ!!q&5S?s9?EZx0}oI zbC&bcdXNv5;qO;6T_^*rM?k&_^719bFFZ8&uzBu!Goz*zFT(}>AohF^*jIqM*${p> zeD&Zb&QpYOh#$e9_F4ap{ha(me2CO=9-4!1J~8-F71!Gj=1NZ7u+Mi>h+|w# z__XXeny?Yu1J0;t6r#2Q&~F6;{Vk-(SEA~_r=Tdky_$jb16#)8#1+rCCwruL#W1>B zbq54|-xPc(FG?BIa9y3Co&%5l{rm4S5lg&Nsfh_{tHorp)bD|YJ9%UdgP6sMCL`qY zD#Qon0{=aC?t|fd_*U-x;~%9^KZJMD!(sq}c&>1LAHEe45uYlY7~+Ab=$W&f80>X$ z^^qez_JhRluhi}sp2wYqw<{0?;C`Vjqkg~b4TKUG%m_(nHo$!Uq{bJ zS}}EMB-8^T8H7i~e1jl9!S_GI_VaxDGHR&>wv2;|qwl4i5^v+V5}>7&gvsPGcigX0yF`=3ESVT$)Vxr<7m-)>&y zZJYH>_bbu~p{1~YX5P$sPX3CKn!EeQzz4P&_czPhG|*oVHe+gX9OQopO(=lF7?3gs z77U#C>yZ36FI}GK#2`|tf^*f}kBC=_pk4&=9C^IDkW14mOBck4ghD>|g4g8H3lH8l z&Qb{35n#LGTO^gMhnc5_l*uj+`51ibkh>5E6Ujk?C7LcHA!_wyE-}tS^GTYw)&d z3Gqf7^nU>VtV(y*Xq+j&2l+x#1EbENqiv=7-}#aUQmVFmlAwlu+cy^*56;?Wn)T!6 z2%pdzl|(2WbE9gg*USMMmglCFs3XsBI^TZjkL;_Tzmt-4G>3upw|QI}3H71^g4Q7< z-S^dEuFFW-=Yd5E!{{-i?D~x7#E2B}ktOJs%0yoD54)=7(Io_{UecmK(3;1hd6E8A#{q|NKf~aQ&^~?i=5-Yd$tm zm9xAaP$5vi-&M!L{;${=4@u>&5s5h~u)Q~}%3AE@wxsP7+w`rBT2I4qG>y-==Po`h zT-^?Sy_->U0ASRS-cA9{j+F!(=(9eg>)9T>|8lz^Q4+RvY<8tgou3ib=k{~TIU9rsgc zLc*r10Z#dW^D7q6f7;aN^*rX?KJi39{#f^|ojX7t7)E;!p>Z2}ZH8mh2Ec3qK z9`>5^@F+ox5F;2sc#w{qE9oZ$#U!R z=M}{vk1Eaw=@a#;rpy?vLNYL~^7Zd;v9La3%2~SUPqR0hVx3iMAZ1j zN#Fa>N;ICR=(gZYE?ab#$Y7E%Rk>))*o2K^W4OUoAXiNxy3chB39iV@UU z%x1_3b9|s52xB_PeiWHi5}VYckGu8ElG3-Ey2akyV#= zaoVzRW8aEQFC0YWl&BUiFZAm8@XwDHZ7E)x+gQsaELt?Z^UA`6SxW{TseyQ4eq&kL zkG8CHKCh5_z#c%o*n3Bh{)1_Re$YSe-rZXtViD5mSR;2Af_1$}3HpO(uRi_f&O-*- zWIc6|I)hpy%2^*^m77K>q5a{aByBCtzyByx2^)?1_$g+J%{8b z!RRp|S&sfMu>Np9KyUp2bJ#KePxJpvvAqD*XZ?sr@RBw{ONrzCDPjeLV+(rw72O(2 z0|&ZJcZ|Ecj#$)?kn|TE9~zB}aftBdOOoA%+n`>cUdpm*Tc3TQZC0xHvQsm6ssbym zpS5oFe`j6irS;bvsnBT)m#?_<#RwMa1-g@Lg8BnrSRZH{D<@$~Q7G`)aY=W{86RFk z$p3^D@&lL|d>ugQrBL6&{lE-B$PonlMtfiEJ~?Z6{aMm*4bGDr0r|r5#96yem#$e- zd-SA!S@<9Le~DePWO?oc^YxQ@ef+`Pm9>jg>V@~-nLq75qxUEGYybM3M$&mbGUNjb zTWUBPuN^9C$_>6B!m$Qcou-S67V|%y*L6SlGVrf71n=l_rNYknB%QCKp*~Cy%je?$ z%SlxW2Epz+1>}!&V1M9M?yiic)h5(@-;xE9DM`b5FmNm)$Tuzkg0jMqh`|1n=k5Ir zcFg}T<@@RTvHth%KLmM1ygujEQi!*Rg#G4@&vQlXOhnc8s}AhRFT5d2-*N+tzeaB` zFoRrv`0JwG_WpS$EiLioV`4Ve66HrSk=41UHQCMi>E+bkvrv8%zi0`9g zyPF?zcs(R%B=C=7-kYQ2I#5si0P(@>)eHI7qHftpqm*episZt|dhMfycduU=`x!C3 z2B}RM@mlMjcD}4fA|suM)Sq0uTR!g@!!FqWHIiAwFeW%}V4&NBaThiU^bGj_rm~C- z4}tCKQg|d5>b(Zj(zJfO%wZNy1*{(!lw^f@xq$rCG{1f?^cxuE$sM1rcO}`}VC$xC zgUTci^j8{4I3J(^Ost+p#GIb>APCm~_xOKW9)1pke@O7igML#M+bemLE5U7+9Vz+_ z*R#M-ob{kQnH8LODyuUnjBL}|49}F5nChbMs9e||QRr3w)o(sP273WpJJ+Qi%KmD`!5F_`EM{31$)*wN4kO9V9c3-aF__0PwGh zi?am@+(&u8y!|EI51``itt*rA3;aS_;-NlZP~OYQxy&aINInk>`?CSo2k!s)`kN3> zN#MNrNqQBYF98Gj7lro&!E6a}yk|eJ4?=+dE&cyVzA?XWK%`^b@q9S{#Q$?(_pa((Ilw0wzWyAwgPfrE3BUyAwDu?j1eD9ooLP=Nh@P3ffL-Dhqw3{vb8Q^e=*Y-1yjZs)R-X=WY7>*ifK zL3!`>kHqru!6zN2%SQ&coXcPDo518KVgKT??ov;d1V5WiBSCa*vdMY|9@Xgb9O$<^ z>5scBVao=`b*|^Id@P6kU$1nYX^qJ;$AJ7HXdkN&9AwH3HtY(5?4A~X=vOg7I%j>L z4)=q>{_t{3yo9gYHF03>2FM3gg14*V1!Q@o?`82NSpQeHTNlCs$tlk?ps6DbDn|A9 z?m!u=|0hj?elW~8V#1;c5IyVy9PJ@YD1CQ`ljD9pnFT4EzK8&U_T>J7g#D zagY7QV+{33$j|ZqQ1N-f3 zji~NA1>S;=Ps^}ari^68!VS9Y3@|29u{vvBBh*_zT}1;Qu)bg3xvn$o_%-Y_wvgx>=w z>smQb?DOrRH>hC9-{>Yw^IeIHDXhrv%L%NCg?i^F^#bbkysD(D-7I5L=yS^B_@qiQ z>HP&@50HCfb@dLCKz4pH|Df)m?+A=N319A)`TM8u|Bv(ixL)vc^7M4RfcGC_k#IbZ z3z@#P`|1vFhSf6Z0o#wnpQ!J zk;%~1ovC+0g9}oDPdPQp-`|q=kV?YJ4fR_Z0+3F9ok|K~jPFl|c+u9ydvz1!+eiSx zHe8##!VBMr5CY?n`sL>Kku$#X&B*bE>Wa6Bjj{P(lRi-7U@a^TPK`9{1R|Bo0Eab)>i*iVM}|L6}N9dH-<-ZuMg1$kgK zKYqGzjaz@Wxh?!%SGpqG_LXj2!Y%nzErfdoA>PX=X07 z#(s7B*3w~nu{|Kg;v-yo?RSCKmec{JWA=4ld3#1+LeV2D)KB0%S^u$RU(fMik8nFU zEH7~#27TL0m`B~>d^2RhZvfbGi7n{ zu2kY7Thsaqy^@vhvstzHyxda`XYqWWuyD$ZGGuz+t$#HjBdA=SD_z0@xULt z(rwwlRkbd@0&&bTZ(A##~B|A#gP-)^7;o;eL?*o zKi9P`3>y4e#0!N-@c5T`BLe4+H>{tip;}QGt&ERL>zJghIdsr(?tKRC53Dy^_q%7A zKZol7j{TgVtN)<9O)x zLzCyOuhN6PnFZ$$LOrgZZ`FcJ*#7jb_dm_|)7Zhsf1iJBy?X0Ipzqr+31PpfJ>Hl1 zoNs{bza2Ah{^hmgC8O|qk)HXa`yrC?edU`vx5IiP^wU+mSlv&sJYnSvTj2GK?g;;( zW`Nu9Yg-@f@Wt}c^kZ|`2q}I0M*4f)vuhbmY}~wgBgI?UBURRJM#rdaY00+99zP_f z9@*M}^X)Mws*i;#jmN%TxNH&)=W}H&olwTLX%?Znt2a!P8SCe)(0Z+#>!2A+?;8I?3ux5(qL)$X%2WR3jW~441p0*>{)j+=92kOB0py|m@%f&R zAN=p}FMOh&4C@C;u;r+SZ;f0|5~1MF@cB{(6^~#T9x?K+JYdnEF@Evj!_QpFGiRlD zH>6^D*y;b5k6g)?&t2KNN-PgXBlW7(kFzr*&RqpUk>l#FDAw>*~t|LVq^b@{#n-Zva9 zI}?nsJ&1{)6Fgvda%AkS6t18vM(_XY|hf`b*4 z4%ApS+Ur_J+a5R$eel$&g)Om{qeZP>=+$0)0aCn7Yz+nC*ej(Mv z+~wuZBY^tBevXsz zx3di^x;c!mKyE4Jo&DQ}C7qXO(BGK$RZ#*sFX$#55$@m*`a$OV!cW9FFhxS~2U0)> zCJ6@N-(Tv*J^7&n|JV3@V!g08p8v_ugZK~sej7fIRFNWgh5V3!10HsRe~?gXh)Xyh zBp#fX@rZ+q236e#`7qL}va%lV$OHM8s**m3-RJOoYt%iE{~YLF_QCx#-7m^GKFLdH zfRG9DMOEHnZ6TkenX^@!?DB#1WxJujWxA2KXcE|mupP(dXNh@B+Lo-?a*BcT+hVfj zw|KaEXcpfrZlK|O+UwV{#Zs4ImkmDQzBJ_XB7w4_pUVx+RvQ-rd@Duo#I5w?>rR*} zu6JSnHLdL51Oy$P|Jrn@&(ZSB&}%LrYc72IXgi1fd&e9L^z$LMpHGr64Z%*?w$cTB zN(KBk`r!N#&Iefx`kgQdLL>)YaQ~urtF}8aj|AoKgGqcN`f0u$`Ge#Aev*&>l0C4; zd&1uJBs(U0uW5Fz-12y7qtT5Tvv;rW1nQ5%(I@4Q@7oFMd*=@xQ~xbBxr#;;(Rgzz5u-5jvf49%+|7|Z^!rj#TeE*@OjOS*CYC={xfXPVEx-UZpVxDgxkJPF6;GtZ12d8`)}jl z_X2&8gZ+o!dm~okc)%yz4f_Kc7?Hs5M{Eqq;u;;#XZIfv@;b2N{r^+A=lyg3@%>qv zf#+cypGQM~Fy8;^z(|G9kI^o4V)%Zgu^Lv0>NXj|3s2$iyB2srYa;C{k+C-1q0|9`!G3s_TE*7iOp0TUt+ZjySbM+FlvlvqXM4URf~ zgPp2ajiHJdu>Fc{Z6nqSq9nl7skK&65h+>&j5CNAtQL_`D{B2LwH;B5QZF^4egf7C zVz>mz`QIH(aN4i`%s>D0e0h8x-Jax}v-Vnh?X}ik>s^9M{F@%P6uGgKf4)JO54ll5_3cyrg6l|5fH?S`CpGKh60qMAqwdD>T4sG-4q7@O ze~wFIHk|K#@pOo~f;Hp*l9sL8`n=HV%Xfu+=#K@we3a+PB+TQCuITGFY`?f8W`v+V zg4RR)oA!(2eWlOZC*ArL?+Z*?eRMZ{zCj#Eq_khKlRjMM7Fp=?LGSYTes~`qq~2vb zjx0N)7LUYrc?_{cC!pT$t4eD>4)Gz&>Qtkh0Y27SZm?(2Pps5xwNDwyQ920X)nBLT zbbPb1MOW$XK}@v2+z;Q6?Ul$z9GcyM`>R4^GFHYs8FH(r1o*Np`q_!I(0}LOq#sl| zKEL`s=#QB{A2c!P9L*1gy$-m3m_M|C0HeV3HKf9PZwbYxtlSky*MsWAPTj|B<<7i_ zdmeXGoN6}?U~F7v$FY^a_aX^6PXWG?aNiG-kB^2(Hk@Cxxa%8O z4Zu_k^PZVHzZ7E*FlJ{$eFUybKLe{pKyJzku8NojadN$1}qWMl~P;U89w^}OtS zfAHt&e)~W7x9{fPX7MxMhrIUWH$J@%^A7#(czp#O!&4z#lm-1@-S>U#27EkeRtz5r zd?Ex41>g3TxHBG^1vo#}YD6{PL%Two8xOv{rcKhzo+NP z9Hqa4a90EWG{asl_ulUqb8@OrI%8+X9)lf9syGhwefD0z?|WN;H%iQ?cZtz;jX-=@ z`J@ndQ0RZ4~m2UY}l8&VC$pstEm@Vg;c$ zYq)g(PDwi#RiUs{@NFX655Y7I*%F}er9~5+^qFyfhUHWQDR6u$a2@-zD<78fJ3E5v z@Ab%UA3*hY487PG=XId4@&_0*|}X~3^|eR}JE(E9c$cxh?K z|9b|H6#N7JbhL|}M#Am>;B2L9jO)7UodM5`)dv0BNeh1#1my+)m!MB1E42qi4~Nx= zH23bd43y9JRrYYCUs=kF;2MgL@WigcJvHrlHo^qLv{QfPcP;;*5; zZYgX>%!ng&eWq@+#h_!$<-0S}9sP1xIE&!_Kh^(Yrsq7u5Bt|$if{K+e?BKp&dRg@ z9{e|{*3=aj?Hck|xvVlXO7v!d8tqD^3x5YVL7)Nn1aT^~pY(LmtEctmH*UDbji^6e z@JxO&)< zR5wpMRB~E%sTBQXK|eeEfzek~^KHwrxj1jC;10IM+C{`X?fMt!7pymH2s!~4*1H?;`KL@s3l95#NW4vHp&wKO$Z%O# z-tqEWZ_uxaPPHE>7_thG_Ss1lQTbfggb}BPXS*_( z&%cxh_)|IWwr_LcyGzB%xvR$K`a1a^BrBH(E?*f)=i6)Fn$-Nz8QW7vHF@RpX>b8b zO6=!-Ape;RIm#)JUf;9+8sbT<^w9 ztF3K#EMba8w&D^>KR=-BL^b2U$4PhjGry+4zR~MZm8WxlWa8xks7FFS3(UC5#N#}m za1`(x>HH@kA$>#NM+RMajt+P)Dtm)I$zI&Yz&t1SAm%9?j+?U``GHjDwh{Tbz`$)T zdOv)MZ|+H8J^%%Heu@!h22rCHk^TX0=i~Lq&8O9n*MQOv zfYroo8T;DhIN-a-M8n=O5$eoV5V`-hD>*Luab7y>+`0p_{;Gno95E2dlo>O=vwag? z7}mF>X~>*GsuL$dCSQ7^wy^qA@BLHf6lk&oFX&$%`Q$M0Q7ImlMzXhbx6%*zOu*;n zfu93==8?Pio+|0iOp33ksk8r_>c$|yn&M^gz|%c>^5j3$|6)r2*dBbtUgFPv{xl== zk5qmtK>sXBc}^g<02AarDK&P@o^XJ{-rJfNG`>JB1-?hCd26Gz$$#$MYXzEDl94~& zAws+o^lvAUU3r(UyXe;wb<2^mBi;6G?+OBc@9eqzt*z%EUy6)}LBJcCJUMLVwfuc& zTK0L{?k0=IYjwKlPt_|5!p+DRmdi=6V&3*i3!K1aPT_7}dwL}UZxqW!=( zfi6@h6@4gqZ}9jmzw+GU`pA6sV%=hon+vx_d4&edDp-o~!dI97WItbWH}b$xE|XI) zdUg4`F8YyQJ#x&Lu~;80RtKsUh~mhO{u=u?*VymmqPo-hoT@9VT6 zgVqBtkg0)XnR(@TIDghhc0ID$zUKi})s#7R>YOzG^ANXS!O|y_@qztcG)OaZE#$#Y zl>t7WKYaY*6At}A*N2{PscY&Agr7~Uo?hqipA8G59>%ShB^(mj@|Sbmggp;Se|o#@ z*xwH{`!nerHwOp&c5Yy_Dcx%f<^GK;Wnn?my3mNVwMrB6mC!Dlm9RyH6N*dP&AB5aA*2Qc^UIu`oe=fV@cf8v5V6C zzI)8KYxRrk6P`?>zDr>#PEOfc+ z$vPiOKew@T+yucsg>ZCz7>H(|Zt+5we1QH&TTJZ!&d?`8g79Y!{`3c{K4JxpAK|P1 z7M=!sc(Jy0xUFx^8RhKFLHbBef^sa<-^04(#h`1x&{nFVqcuq~5y05vHvx}{=gdWI zsbZ3HNZFAgKwcD$hN$^Y`U(6U~7$G0$d`L+|j$e5;%{Ou29n0Be zw^u#H`Ji5}$%yAo+vR_4oE4gTJx+Z`74u_}>8@d?-lKl&tZC3+x@DE;YdhO7bS^ny zO#}W!S)Uu|H!#@TTY+p01CdumzI5J2KjhgEl{~#8jkrHCiK^4!-<>QC-k&>k`?RKq zFXd!Z>h-Z_JcGx3ADJy6zBRa99|?UM+s|vq6uy01o?c^8)Y)TJ`?*6|HjM5-eHiK; z_Y{gr+u?}14B9VUF@HhgLKpoCDug}tfKGZT9`v*I{TSc=3L$}>>-4;gxZ-QWMF9J) z+==;#hBnoB&%zUe(MW{Synb2BDu)(qq92-R~=xlCO#4 zyAaq5Es%X8=AaKH)~oYxB(x3-eCM{m*KNZfg|(|A%{aomY4U^1+f3W@)hDX0p?Yuo z9c3yTeyT#R(P9aZ7KFKqHo&Q4mN z)h}ap8c+Sft`C2FE%7h@fp?d4>gH<;76?BfIKYZOB_<*nmvd{eK%2+1nKI5q!m zMI7n{hL?P)qy6K?x*b;PH5KxP)Ef;B`|rpdjS0I_)ckoadY%6NFX{c4$B2iaVs4%r zd6c!QJ?|t><13$(?tYauX63c#-8wzTqzMSnYFkFUe%q@L`aPs`idSOhujHoB+qft~Mx3nH zPVhMx8Ue^f%(tpj=(2jVH6t$_I@|(#NYzoB_?ehFICBC@B2ZmR@ed5p|EweaA?Fy> zPxaJ8{vu!UxA^~?^8xzj;Z?CdvTC~PSD4)<96w~N^2r-?%!MBLvMv2&qhhZc;WdQVroI#V zW#{>e;u+f<=fU4!)oOEnQfr6Oeo!jlM|tht(_6H8vi*?g@2DSBcnHQ0)Q4SC&Q4dF zRYYo75WT=@|NN5Qza0Oo^wW3&;)66E%J3C5yg>80Xug(3BHd^r-b~3>uh#c;R9|+L z{IzVjm(kk4J#TwH@-goL(DPc5TS|K6uAuxh>JO#bt0rw9(IsqABHp2@Znf2(3*Vv_ zTDKsd0`XLfIsIOL-zPd_C%rDwE^HW{>$B!kkUoA4-T(I#p3U)+E*#yGup*r2I0-5K zS?9s5oZ3;~y$8`+$)8%Q*E-IVUS=m!X*EabbWVPPRgQk{&hfuaKc%-vAHtx(%0m2r z+E?GAQK_u&kd2!qOR2puTotk3S3Dr<6KQ)5osZh0eXILR3M_w{ZI6gc?(P>eQR091 z&2hQMIOLO^zu+}=_HzU7CZ24+i+m#Wce}%`j`Ha{;!05=^f%(&-y}t+%SN@Wq0dLW z72%cG1(F%*%7DOdeQ7z#bK;N01W(NX?_^N z_Ywbc>4Sfj{$I`))sK(|%76J$()qoJS?|*e^`11}>f_dwwQlT~xN|uFrsIPh?Kj<7 zvTZ-?3u><)WxTC{;?S(^SRXv{t;&uYOwUUcWmgXDQqp{@*qCdtaJ~5NtgCiS;=tg> z_^F@tW)c{6;#yjg`e5UWSTC&@VZY-uYf{HhR&eBZ8972ht~yFUEOZ`|~na zeiY06&*$a;AM|(EM?2Po1r`y`2N-z}ya(>BlH!k0uj8kD-&cw3MDE1?l5iG$sG<1; zz(d(x8mbbJAmA+{-vIieh+$cG;`bi%&F^z2PL=ZDqhc{CQ;#6uoCjY1$y;r9G3gNQ z!~QWx@e-r()&=Az$dTXV$QRNY7SMczx9ON}Ym~qAZ|)z*|Bzqc^z1eJ%U%{A%_y@0vX(+C1^BTW($|!?O zZvg(q)gSu`mweO?0?dSK+TwrC<8e0 zUavsGh0#er&O4<=4*7KMAL!Q+CL_JxFu5m~Bq3ZhJKkJmN$ULluuP^8k5!;ojXOJi zrb{l1h+^jQIa|`&u&E2pfy6=-%NNA__=9KB5T#)%@E3^U)SmrC9^^^r#O4ee)*Jc( zntSFS`xUew)L`Y#z{;Hio&3mwGv_^np6C5;81RTJ|JC{R${RiADO1s$F5GWpL2_Xioux|$BpuNZnEq7MMORQjr%Kw zRhgnNxo21!{0k}Y_+Rf+Tw<#m9dQczl!#x<3uG;Y;RxZ-c-6=+a~fff(Dmf9pDBLS ziezdpp~4dZm%m8Lv;CUnEAGXmsnHD@B{qH3jDIHc+GgZq&I6tr;s+f4gZM%5i}FKF zY0;vKiVdGHnFBobJ@p$uk^_IIc@ylxG&K=1C*J-%{bqgr_(*hJ^}vAv5f6%?Y z9sW3tN9=JU_cOmt?wOAeVr)ujM|}$X?Y&3q_{U=g8oY*O>qJvfuhLNLZKw6f>2e0^ zN8PpTqm}}ju}x`g=|%0w9q!u#tk09ep=;xnQ!jD~t<`oX(Cxu!4VjJj5w9@+WWORJ zFP{#28PA75+&O=KEZ*lI>>1?a@6cb%o8?L^d4z?!8AAv{nlFpul^XgHa=p}=tFyK8c)2*@7N>%()(V_+yb1y#?oQm08Ct^JqSAEYBKje$Mpe4k%E|LOXq z{)NKfUm%}()x3FbOi0zq3tNJyd>%Nlb8;Z_{CkICPviG$V`>B2m*{WWjgTjvm!ll^ zD4gCJ;I##Dcz$fGZoY_^XI@9XD_sWEK5#x?fW*=Naqd5u8M?!2#V?~C?;wM7N>GGx zcYZ)RLNwjqcmAH*ei-c{RNOqYQezZme77nAelsUAZU`N-;?@G+FvI< zji`jC`YvyRW(_GU_Cpho>?uzp`WNr0%vSLFd^PZ_qrMkjJ{0ta^q|@V!r!_%Z=P)k zz`$z@$De|KvS)okt;jcRW(}TC?KSjYQi>;;*bm8nis(2B3#980;waKb&erlcpN@%5 zwDwm>6HQ*@I4h)z#Dq0*jk++B6Zi= zw*+y~oP6=>HyauMtvgTo>aSCId~=abEBct$TgCw=7aj%Vp&9l@&@y%?_|4OC2P@5z zjmi`eL%#a614G?gL{Y3Vu|Ub`E9CFg4Ik0&HeN0&&y;h~`5N&T$1|lZ0Wqh7cbrNC zeItf{(at@+ER7P4S3eT6HGI3k`=3Tv0ZrH=!=Q;yiwu*WpTk{aWB7+ z`puK{`YH0i+1iq1sdE2yaYaixoWE Date: Fri, 1 Dec 2023 23:17:41 +0100 Subject: [PATCH 06/14] Support for Priest's Serendipity --- changelog.md | 5 +++ classes/priest.lua | 90 +++++++++++++++++++++++++++++--------------- options/defaults.lua | 10 +++++ 3 files changed, 75 insertions(+), 30 deletions(-) diff --git a/changelog.md b/changelog.md index 6e4f434..0c8965f 100644 --- a/changelog.md +++ b/changelog.md @@ -7,10 +7,15 @@ This release focuses on supporting runes introduced in Season of Discovery - New SAO: Hunter's Flanking Strike - New SAO: Hunter's Cobra Strikes - New SAO: Mage's Fingers of Frost +- New SAO: Priest's Serendipity - New GAB: Druid's Healing Touch, during Fury of Stormrage - New GAB: Hunter's Flanking Strike, when the action is usable - New GAB: Mage's Ice Lance, during Fingers of Frost - New GAB: Mage's Ice Lance, when the enemy target is Frozen +- New GAB: Priest's Lesser Heal, during Serendipity +- New GAB: Priest's Heal, during Serendipity +- New GAB: Priest's Greater Heal, during Serendipity +- New GAB: Priest's Prayer of Healing, during Serendipity #### v1.0.0 (2023-12-01) diff --git a/classes/priest.lua b/classes/priest.lua index df6ef06..2b731b6 100644 --- a/classes/priest.lua +++ b/classes/priest.lua @@ -1,42 +1,61 @@ local AddonName, SAO = ... local function registerClass(self) - local smite = GetSpellInfo(585); - local flashHeal = GetSpellInfo(2061); + if WOW_PROJECT_ID ~= WOW_PROJECT_CLASSIC then + local smite = GetSpellInfo(585); + local flashHeal = GetSpellInfo(2061); - local serendipityBuff1 = 63731; - local serendipityBuff2 = 63735; - local serendipityBuff3 = 63734; - local ghAndPoh = { (GetSpellInfo(2060)), (GetSpellInfo(596)) }; + local serendipityBuff1 = 63731; + local serendipityBuff2 = 63735; + local serendipityBuff3 = 63734; + local ghAndPoh = { (GetSpellInfo(2060)), (GetSpellInfo(596)) }; + + -- Add option links during registerClass(), not because loadOptions() which would be loaded only when the options panel is opened + -- Add option links before RegisterAura() calls, so that options they are used by initial triggers, if any + self:AddOverlayLink(serendipityBuff3, serendipityBuff1); + self:AddOverlayLink(serendipityBuff3, serendipityBuff2); + self:AddGlowingLink(serendipityBuff3, serendipityBuff1); + self:AddGlowingLink(serendipityBuff3, serendipityBuff2); - -- Add option links during registerClass(), not because loadOptions() which would be loaded only when the options panel is opened - -- Add option links before RegisterAura() calls, so that options they are used by initial triggers, if any - self:AddOverlayLink(serendipityBuff3, serendipityBuff1); - self:AddOverlayLink(serendipityBuff3, serendipityBuff2); - self:AddGlowingLink(serendipityBuff3, serendipityBuff1); - self:AddGlowingLink(serendipityBuff3, serendipityBuff2); + -- Surge of Light + self:RegisterAura("surge_of_light", 0, 33151, "surge_of_light", "Left + Right (Flipped)", 1, 255, 255, 255, true, { smite, flashHeal }); + + for talentPoints=1,3 do + local auraName = ({ "serendipity_low", "serendipity_medium", "serendipity_high" })[talentPoints]; + local auraBuff = ({ serendipityBuff1, serendipityBuff2, serendipityBuff3 })[talentPoints]; + for nbStacks=1,3 do + local scale = 0.4 + 0.2 * nbStacks; -- 60%, 80%, 100% + local pulse = nbStacks == 3; + local glowIDs = nbStacks == 3 and ghAndPoh or nil; + self:RegisterAura(auraName, nbStacks, auraBuff, "serendipity", "Top", scale, 255, 255, 255, pulse, glowIDs); + end + end - -- Surge of Light - self:RegisterAura("surge_of_light", 0, 33151, "surge_of_light", "Left + Right (Flipped)", 1, 255, 255, 255, true, { smite, flashHeal }); + -- Healing Trance / Soul Preserver + self:RegisterAuraSoulPreserver("soul_preserver_priest", 60514); -- 60514 = Priest buff + end - for talentPoints=1,3 do - local auraName = ({ "serendipity_low", "serendipity_medium", "serendipity_high" })[talentPoints]; - local auraBuff = ({ serendipityBuff1, serendipityBuff2, serendipityBuff3 })[talentPoints]; + local serendipityBuff = 413247; + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(serendipityBuff) then + local lesserHeal = 2050; + local heal = 2054; + local greaterHeal = 2060; + local prayerOfHealing = 596; + local serendipityImprovedSpells = { (GetSpellInfo(lesserHeal)), (GetSpellInfo(heal)), (GetSpellInfo(greaterHeal)), (GetSpellInfo(prayerOfHealing)) }; for nbStacks=1,3 do local scale = 0.4 + 0.2 * nbStacks; -- 60%, 80%, 100% local pulse = nbStacks == 3; - local glowIDs = nbStacks == 3 and ghAndPoh or nil; - self:RegisterAura(auraName, nbStacks, auraBuff, "serendipity", "Top", scale, 255, 255, 255, pulse, glowIDs); + local glowIDs = nbStacks == 3 and serendipityImprovedSpells or nil; + self:RegisterAura("serendipity_sod", nbStacks, serendipityBuff, "serendipity", "Top", scale, 255, 255, 255, pulse, glowIDs); end end - - -- Healing Trance / Soul Preserver - self:RegisterAuraSoulPreserver("soul_preserver_priest", 60514); -- 60514 = Priest buff end local function loadOptions(self) local smite = 585; local flashHeal = 2061; + local lesserHeal = 2050; + local heal = 2054; local greaterHeal = 2060; local prayerOfHealing = 596; @@ -45,19 +64,30 @@ local function loadOptions(self) local serendipityBuff3 = 63734; local serendipityTalent = 63730; + local serendipitySoDBuff = 413247; local oneOrTwoStacks = string.format(CALENDAR_TOOLTIP_DATE_RANGE, "1", string.format(STACKS, 2)); local threeStacks = string.format(STACKS, 3); - self:AddOverlayOption(surgeOfLightTalent, surgeOfLightBuff); - self:AddOverlayOption(serendipityTalent, serendipityBuff3, 0, oneOrTwoStacks, nil, 2); -- setup any stacks, test with 2 stacks - self:AddOverlayOption(serendipityTalent, serendipityBuff3, 3); -- setup 3 stacks - self:AddSoulPreserverOverlayOption(60514); -- 60514 = Priest buff + if WOW_PROJECT_ID ~= WOW_PROJECT_CLASSIC then + self:AddOverlayOption(surgeOfLightTalent, surgeOfLightBuff); + self:AddOverlayOption(serendipityTalent, serendipityBuff3, 0, oneOrTwoStacks, nil, 2); -- setup any stacks, test with 2 stacks + self:AddOverlayOption(serendipityTalent, serendipityBuff3, 3); -- setup 3 stacks + self:AddSoulPreserverOverlayOption(60514); -- 60514 = Priest buff - self:AddGlowingOption(surgeOfLightTalent, surgeOfLightBuff, smite); - self:AddGlowingOption(surgeOfLightTalent, surgeOfLightBuff, flashHeal); - self:AddGlowingOption(serendipityTalent, serendipityBuff3, greaterHeal, threeStacks); - self:AddGlowingOption(serendipityTalent, serendipityBuff3, prayerOfHealing, threeStacks); + self:AddGlowingOption(surgeOfLightTalent, surgeOfLightBuff, smite); + self:AddGlowingOption(surgeOfLightTalent, surgeOfLightBuff, flashHeal); + self:AddGlowingOption(serendipityTalent, serendipityBuff3, greaterHeal, threeStacks); + self:AddGlowingOption(serendipityTalent, serendipityBuff3, prayerOfHealing, threeStacks); + elseif GetSpellInfo(serendipitySoDBuff) then + self:AddOverlayOption(serendipitySoDBuff, serendipitySoDBuff, 0, oneOrTwoStacks, nil, 2); -- setup any stacks, test with 2 stacks + self:AddOverlayOption(serendipitySoDBuff, serendipitySoDBuff, 3); -- setup 3 stacks + + self:AddGlowingOption(serendipitySoDBuff, serendipitySoDBuff, lesserHeal, threeStacks); + self:AddGlowingOption(serendipitySoDBuff, serendipitySoDBuff, heal, threeStacks); + self:AddGlowingOption(serendipitySoDBuff, serendipitySoDBuff, greaterHeal, threeStacks); + self:AddGlowingOption(serendipitySoDBuff, serendipitySoDBuff, prayerOfHealing, threeStacks); + end end SAO.Class["PRIEST"] = { diff --git a/options/defaults.lua b/options/defaults.lua index edbcfb0..ed8eec5 100644 --- a/options/defaults.lua +++ b/options/defaults.lua @@ -227,6 +227,10 @@ SAO.defaults = { [60514] = { -- Healing Trance / Soul Preserver [0] = false, }, + [413247]= { -- Serendipity (Season of Discovery) + [3] = true, -- 3 stacks + [0] = false, -- any stacks but 3 + }, }, glow = { [33151] = { -- Surge of Light @@ -237,6 +241,12 @@ SAO.defaults = { [2060] = true, -- Greater Heal [596] = true, -- Prayer of Healing }, + [413247]= { -- Serendipity 3/3 (Season of Discovery) + [2050] = true, -- Lesser Heal + [2054] = true, -- Heal + [2060] = true, -- Greater Heal + [596] = true, -- Prayer of Healing + }, }, }, ["ROGUE"] = { From c2772a0a50f0f6f2a1748a92502d0b440c0e2d12 Mon Sep 17 00:00:00 2001 From: ennvina Date: Fri, 1 Dec 2023 23:32:06 +0100 Subject: [PATCH 07/14] Support for Shaman's Molten Blast --- _script/package.sh | 1 - changelog.md | 2 ++ classes/shaman.lua | 10 ++++++++++ options/defaults.lua | 6 ++++++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/_script/package.sh b/_script/package.sh index 55caa6e..02c71b7 100644 --- a/_script/package.sh +++ b/_script/package.sh @@ -87,7 +87,6 @@ maelstrom_weapon_4 backlash predatory_swiftness sword_and_board -impact arcane_missiles hot_streak killing_machine diff --git a/changelog.md b/changelog.md index 0c8965f..44c965e 100644 --- a/changelog.md +++ b/changelog.md @@ -8,6 +8,7 @@ This release focuses on supporting runes introduced in Season of Discovery - New SAO: Hunter's Cobra Strikes - New SAO: Mage's Fingers of Frost - New SAO: Priest's Serendipity +- New SAO: Shaman's Molten Blast - New GAB: Druid's Healing Touch, during Fury of Stormrage - New GAB: Hunter's Flanking Strike, when the action is usable - New GAB: Mage's Ice Lance, during Fingers of Frost @@ -16,6 +17,7 @@ This release focuses on supporting runes introduced in Season of Discovery - New GAB: Priest's Heal, during Serendipity - New GAB: Priest's Greater Heal, during Serendipity - New GAB: Priest's Prayer of Healing, during Serendipity +- New GAB: Shaman's Molten Blast, when the action is usable #### v1.0.0 (2023-12-01) diff --git a/classes/shaman.lua b/classes/shaman.lua index e622020..dd9fdb0 100644 --- a/classes/shaman.lua +++ b/classes/shaman.lua @@ -37,6 +37,12 @@ local function registerClass(self) -- Healing Trance / Soul Preserver self:RegisterAuraSoulPreserver("soul_preserver_shaman", 60515); -- 60515 = Shaman buff + + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC then + local moltenBlast = 425339; + self:RegisterAura("molten_blast", 0, moltenBlast, "impact", "Top", 0.8, 255, 255, 255, true, { moltenBlast }); + self:RegisterCounter("molten_blast"); + end end local function loadOptions(self) @@ -56,6 +62,8 @@ local function loadOptions(self) local tidalWavesBuff = 53390; local tidalWavesTalent = 51562; + local moltenBlast = 425339; + local oneToFourStacks = string.format(CALENDAR_TOOLTIP_DATE_RANGE, "1", string.format(STACKS, 4)); local fiveStacks = string.format(STACKS, 5); @@ -63,6 +71,7 @@ local function loadOptions(self) self:AddOverlayOption(maelstromWeaponTalent, maelstromWeaponBuff, 0, oneToFourStacks, nil, 4); -- setup any stacks, test with 4 stacks self:AddOverlayOption(maelstromWeaponTalent, maelstromWeaponBuff, 5); -- setup 5 stacks self:AddOverlayOption(tidalWavesTalent, tidalWavesBuff, 0, nil, nil, 2); -- setup any stacks, test with 2 stacks + self:AddOverlayOption(moltenBlast, moltenBlast); self:AddSoulPreserverOverlayOption(60515); -- 60515 = Shaman buff self:AddGlowingOption(maelstromWeaponTalent, maelstromWeaponBuff, lightningBolt, fiveStacks); @@ -73,6 +82,7 @@ local function loadOptions(self) self:AddGlowingOption(maelstromWeaponTalent, maelstromWeaponBuff, hex, fiveStacks); self:AddGlowingOption(tidalWavesTalent, tidalWavesBuff, lesserHealingWave); self:AddGlowingOption(tidalWavesTalent, tidalWavesBuff, healingWave); + self:AddGlowingOption(nil, moltenBlast, moltenBlast); end SAO.Class["SHAMAN"] = { diff --git a/options/defaults.lua b/options/defaults.lua index ed8eec5..e293266 100644 --- a/options/defaults.lua +++ b/options/defaults.lua @@ -276,6 +276,9 @@ SAO.defaults = { [60515] = { -- Healing Trance / Soul Preserver [0] = false, }, + [425339]= { -- Molten Blast (Season of Discovery) + [0] = true, + }, }, glow = { [53817] = { -- Maelstorm Weapon @@ -290,6 +293,9 @@ SAO.defaults = { [8004] = false, -- lesser Healing Wave [331] = false, -- Healing Wave }, + [425339]= { -- Molten Blast (Season of Discovery) + [425339] = true, -- Molten Blast (Season of Discovery) + }, }, }, ["WARLOCK"] = { From d4b3a10193aa90b55c09a5dd3b40fb1424a6a115 Mon Sep 17 00:00:00 2001 From: ennvina Date: Sat, 2 Dec 2023 00:00:31 +0100 Subject: [PATCH 08/14] Support for Warrior's Victory Rush and Raging Blow --- _script/package.sh | 1 + changelog.md | 3 +++ classes/warrior.lua | 16 ++++++++++++++++ options/defaults.lua | 9 +++++++++ textures/raging_blow.blp | Bin 0 -> 44900 bytes 5 files changed, 29 insertions(+) create mode 100644 textures/raging_blow.blp diff --git a/_script/package.sh b/_script/package.sh index 02c71b7..2709fae 100644 --- a/_script/package.sh +++ b/_script/package.sh @@ -38,6 +38,7 @@ echo -n "Cleaning up wrath directory... " # The list below, SOD_ONLY_TEXTURES, is a list of textures added exclusively for Season of Discovery. SOD_ONLY_TEXTURES=(tooth_and_claw monk_serpent +raging_blow ) for texname in ${SOD_ONLY_TEXTURES[@]} do diff --git a/changelog.md b/changelog.md index 44c965e..2d0a36c 100644 --- a/changelog.md +++ b/changelog.md @@ -9,6 +9,7 @@ This release focuses on supporting runes introduced in Season of Discovery - New SAO: Mage's Fingers of Frost - New SAO: Priest's Serendipity - New SAO: Shaman's Molten Blast +- New SAO: Warrior's Raging Blow - New GAB: Druid's Healing Touch, during Fury of Stormrage - New GAB: Hunter's Flanking Strike, when the action is usable - New GAB: Mage's Ice Lance, during Fingers of Frost @@ -18,6 +19,8 @@ This release focuses on supporting runes introduced in Season of Discovery - New GAB: Priest's Greater Heal, during Serendipity - New GAB: Priest's Prayer of Healing, during Serendipity - New GAB: Shaman's Molten Blast, when the action is usable +- New GAB: Warrior's Raging Blow, when the action is usable +- New GAB: Warrior's Victory Rush, when the action is usable #### v1.0.0 (2023-12-01) diff --git a/classes/warrior.lua b/classes/warrior.lua index bd5e119..3d7a3a1 100644 --- a/classes/warrior.lua +++ b/classes/warrior.lua @@ -362,6 +362,8 @@ local function registerClass(self) local victoryRush = 34428; local slam = 1464; local shieldSlam = 23922; + local victoryRushSoD = 402927; + local ragingBlowSoD = 402911; for stacks = 1, 2 do -- Bloodsurge and Sudden Death may have several charges, due to T10 4pc self:RegisterAura("bloodsurge_"..stacks, stacks, 46916, "blood_surge", "Top", 1, 255, 255, 255, true, { (GetSpellInfo(slam)) }); @@ -384,6 +386,14 @@ local function registerClass(self) -- Victory Rush self:RegisterAura("victory_rush", 0, victoryRush, nil, "", 0, 0, 0, 0, false, { (GetSpellInfo(victoryRush)) }); self:RegisterCounter("victory_rush"); -- Must match name from above call + + -- Victory Rush (Season of Discovery) + self:RegisterAura("victory_rush_sod", 0, victoryRushSoD, nil, "", 0, 0, 0, 0, false, { (GetSpellInfo(victoryRushSoD)) }); + self:RegisterCounter("victory_rush_sod"); -- Must match name from above call + + -- Raging Blow (Season of Discovery), with a spell alert, unlike other Warrior 'counters' + self:RegisterAura("raging_blow", 0, ragingBlowSoD, "raging_blow", "Left + Right (Flipped)", 1, 255, 255, 255, true, { (GetSpellInfo(ragingBlowSoD)) }); + self:RegisterCounter("raging_blow"); -- Must match name from above call end local function loadOptions(self) @@ -404,9 +414,13 @@ local function loadOptions(self) local tasteforBloodBuff = 60503; local tasteforBloodTalent = 56636; + local victoryRushSoD = 402927; + local ragingBlowSoD = 402911; + self:AddOverlayOption(suddenDeathTalent, suddenDeathBuff); self:AddOverlayOption(bloodsurgeTalent, bloodsurgeBuff); self:AddOverlayOption(swordAndBoardTalent, swordAndBoardBuff); + self:AddOverlayOption(ragingBlowSoD, ragingBlowSoD); if OverpowerHandler.initialized then self:AddGlowingOption(nil, OverpowerHandler.optionID, OverpowerHandler.spellID, nil, nil, OverpowerHandler.variants); @@ -418,6 +432,8 @@ local function loadOptions(self) self:AddGlowingOption(nil, ExecuteHandler.optionID, ExecuteHandler.spellID, nil, nil, ExecuteHandler.variants); end self:AddGlowingOption(nil, victoryRush, victoryRush); + self:AddGlowingOption(nil, victoryRushSoD, victoryRushSoD); + self:AddGlowingOption(nil, ragingBlowSoD, ragingBlowSoD); self:AddGlowingOption(suddenDeathTalent, suddenDeathBuff, execute); self:AddGlowingOption(bloodsurgeTalent, bloodsurgeBuff, slam); self:AddGlowingOption(swordAndBoardTalent, swordAndBoardBuff, shieldSlam); diff --git a/options/defaults.lua b/options/defaults.lua index e293266..53752b6 100644 --- a/options/defaults.lua +++ b/options/defaults.lua @@ -347,6 +347,9 @@ SAO.defaults = { [50227] = { -- Sword and Board [0] = true, }, + [402911]= { -- Raging Blow (Season of Discovery) + [0] = true, + }, }, glow = { [7384] = { -- Overpower @@ -361,6 +364,12 @@ SAO.defaults = { [34428] = { -- Victory Rush [34428] = true, -- Victory Rush }, + [402927]= { -- Victory Rush (Season of Discovery) + [402927]= true, -- Victory Rush (Season of Discovery) + }, + [402911]= { -- Raging Blow (Season of Discovery) + [402911]= true, -- Raging Blow (Season of Discovery) + }, [52437] = { -- Sudden Death [5308] = true, -- Execute }, diff --git a/textures/raging_blow.blp b/textures/raging_blow.blp new file mode 100644 index 0000000000000000000000000000000000000000..d2a550c71a29250964ee9166272d0aef19463953 GIT binary patch literal 44900 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 G{Qm(!>pyb< literal 0 HcmV?d00001 From 25a117e26a79418f8fd9af999446564c7906ab12 Mon Sep 17 00:00:00 2001 From: ennvina Date: Sat, 2 Dec 2023 03:01:51 +0100 Subject: [PATCH 09/14] Fix rare issue with glowing buttons never glowing --- changelog.md | 4 ++++ components/glow.lua | 2 ++ 2 files changed, 6 insertions(+) diff --git a/changelog.md b/changelog.md index 2d0a36c..fc0788e 100644 --- a/changelog.md +++ b/changelog.md @@ -22,6 +22,10 @@ This release focuses on supporting runes introduced in Season of Discovery - New GAB: Warrior's Raging Blow, when the action is usable - New GAB: Warrior's Victory Rush, when the action is usable +Bug Fixes +- In rare circumstances, glowing buttons would never glow +- Reloading the UI would always fix the issue, until next log out + #### v1.0.0 (2023-12-01) Spell Alerts have a shrinking effect to know when the alert is about to fade diff --git a/components/glow.lua b/components/glow.lua index bc64005..204733e 100644 --- a/components/glow.lua +++ b/components/glow.lua @@ -36,12 +36,14 @@ function SAO.RegisterGlowIDs(self, glowIDs) for _, glowID in ipairs(glowIDs or {}) do if (type(glowID) == "number") then self.RegisteredGlowSpellIDs[glowID] = true; + self:AwakeButtonsBySpellID(glowID); elseif (type(glowID) == "string") then if (not SAO.RegisteredGlowSpellNames[glowID]) then SAO.RegisteredGlowSpellNames[glowID] = true; local glowSpellIDs = self:GetSpellIDsByName(glowID); for _, glowSpellID in ipairs(glowSpellIDs) do self.RegisteredGlowSpellIDs[glowSpellID] = true; + self:AwakeButtonsBySpellID(glowSpellID); end end end From 91576e253ec7396aa23ce168c962447cf8850089 Mon Sep 17 00:00:00 2001 From: ennvina Date: Mon, 4 Dec 2023 12:22:00 +0100 Subject: [PATCH 10/14] Support for Mage's Arcane Blast --- SpellActivationOverlay.toc | 4 ++-- _script/package.sh | 4 +++- changelog.md | 8 +++++++- classes/mage.lua | 29 +++++++++++++++++++++++++++++ options/defaults.lua | 8 ++++++++ textures/arcane_missiles_1.blp | Bin 0 -> 44900 bytes textures/arcane_missiles_2.blp | Bin 0 -> 44900 bytes textures/arcane_missiles_3.blp | Bin 0 -> 44900 bytes 8 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 textures/arcane_missiles_1.blp create mode 100644 textures/arcane_missiles_2.blp create mode 100644 textures/arcane_missiles_3.blp diff --git a/SpellActivationOverlay.toc b/SpellActivationOverlay.toc index 4cecfb5..952361c 100644 --- a/SpellActivationOverlay.toc +++ b/SpellActivationOverlay.toc @@ -1,8 +1,8 @@ ## Interface: 30403 -## Title: |TInterface/Icons/Spell_Frost_Stun:16:16:0:0:512:512:64:448:64:448|t SpellActivationOverlay |cffa2f3ff1.1.0-beta|r +## Title: |TInterface/Icons/Spell_Frost_Stun:16:16:0:0:512:512:64:448:64:448|t SpellActivationOverlay |cffa2f3ff1.1.1-beta|r ## Notes: Mimic Spell Activation Overlays from Retail ## Author: Vinny -## Version: 1.1.0-beta +## Version: 1.1.1-beta ## SavedVariables: SpellActivationOverlayDB # SpellActivationOverlay.lua, SpellActivationOverlay.xml and all textures diff --git a/_script/package.sh b/_script/package.sh index 2709fae..666842e 100644 --- a/_script/package.sh +++ b/_script/package.sh @@ -39,6 +39,9 @@ echo -n "Cleaning up wrath directory... " SOD_ONLY_TEXTURES=(tooth_and_claw monk_serpent raging_blow +arcane_missiles_1 +arcane_missiles_2 +arcane_missiles_3 ) for texname in ${SOD_ONLY_TEXTURES[@]} do @@ -88,7 +91,6 @@ maelstrom_weapon_4 backlash predatory_swiftness sword_and_board -arcane_missiles hot_streak killing_machine maelstrom_weapon_3 diff --git a/changelog.md b/changelog.md index fc0788e..ebf8deb 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,12 @@ ## SpellActivationOverlay Changelog -#### v1.1.0-beta (2023-12-xx) +#### v1.1.1-beta (2023-12-xx) + +- New SAO: Mage's Arcane Blast +- New GAB: Mage's Arcane Missiles, during Arcane Blast +- New GAB: Mage's Arcane Explosion, during Arcane Blast + +#### v1.1.0-beta (2023-12-01) This release focuses on supporting runes introduced in Season of Discovery - New SAO: Druid's Fury of Stormrage diff --git a/classes/mage.lua b/classes/mage.lua index 67d86ff..c25466c 100644 --- a/classes/mage.lua +++ b/classes/mage.lua @@ -507,6 +507,21 @@ local function registerClass(self) clearcastingScaleFactor = 1; -- No need to scale up Clearcasting on Classic Era, because they are no other spell alerts that share this spot end self:RegisterAura("clearcasting", 0, 12536, clearcastingVariants.textureFunc, "Left + Right (Flipped)", clearcastingScaleFactor, 192, 192, 192, false); + + local arcaneBlastSoDBuff = 400573; + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(arcaneBlastSoDBuff) then + local arcaneMissiles = 5143; + local arcaneExplosion = 1449; + -- local arcaneHealingSpellTBD = ...; -- @todo add healing spell that resets stacks, which might exist, according to the in-game tooltip + local resettingSpells = { (GetSpellInfo(arcaneMissiles)), (GetSpellInfo(arcaneExplosion)) }; + for nbStacks=1,4 do + local scale = nbStacks == 4 and 1.2 or 0.6; -- 60%, 60%, 60%, 120% + local pulse = nbStacks == 4; + local glowIDs = nbStacks == 4 and resettingSpells or nil; + local texture = ({ "arcane_missiles_1", "arcane_missiles_2", "arcane_missiles_3", "arcane_missiles" })[nbStacks]; + self:RegisterAura("serendipity_sod", nbStacks, arcaneBlastSoDBuff, texture, "Left + Right (Flipped)", scale, 255, 255, 255, pulse, glowIDs); + end + end end local function loadOptions(self) @@ -536,7 +551,10 @@ local function loadOptions(self) local fingersOfFrostSoDBuff = 400670; local fingersOfFrostSoDTalent = fingersOfFrostSoDBuff; -- Not really a talent + local arcaneBlastSoDBuff = 400573; + local arcaneMissiles = 5143; + local arcaneExplosion = 1449; local pyroblast = 11366; local flamestrike = 2120; local fireBlast = 2136; @@ -575,11 +593,18 @@ local function loadOptions(self) -- local hotStreakHeatingUpDetails = string.format("%s+%s", heatingUpDetails, hotStreakDetails); local hotStreakHeatingUpDetails = string.format("%s %s", STATUS_TEXT_BOTH, ACTION_SPELL_AURA_APPLIED_DOSE); + local oneToThreeStacks = string.format(CALENDAR_TOOLTIP_DATE_RANGE, "1", string.format(STACKS, 3)); + local fourStacks = string.format(STACKS, 4); + -- Clearcasting variants lazyCreateClearcastingVariants(self); self:AddOverlayOption(clearcastingTalent, clearcastingBuff, 0, nil, clearcastingVariants); self:AddOverlayOption(missileBarrageTalent, missileBarrageBuff); + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(arcaneBlastSoDBuff) then + self:AddOverlayOption(arcaneBlastSoDBuff, arcaneBlastSoDBuff, 0, oneToThreeStacks, nil, 3); -- setup any stacks, test with 3 stacks + self:AddOverlayOption(arcaneBlastSoDBuff, arcaneBlastSoDBuff, 4); -- setup 4 stacks + end self:AddOverlayOption(hotStreakTalent, heatingUpBuff, 0, heatingUpDetails); self:AddOverlayOption(hotStreakTalent, hotStreakBuff, 0, hotStreakDetails); self:AddOverlayOption(hotStreakTalent, hotStreakHeatingUpBuff, 0, hotStreakHeatingUpDetails); @@ -591,6 +616,10 @@ local function loadOptions(self) self:AddOverlayOption(brainFreezeTalent, brainFreezeBuff); self:AddGlowingOption(missileBarrageTalent, missileBarrageBuff, arcaneMissiles); + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(arcaneBlastSoDBuff) then + self:AddGlowingOption(arcaneBlastSoDBuff, arcaneBlastSoDBuff, arcaneMissiles, fourStacks); + self:AddGlowingOption(arcaneBlastSoDBuff, arcaneBlastSoDBuff, arcaneExplosion, fourStacks); + end self:AddGlowingOption(hotStreakTalent, hotStreakBuff, pyroblast); self:AddGlowingOption(firestarterTalent, firestarterBuff, flamestrike); if WOW_PROJECT_ID ~= WOW_PROJECT_CLASSIC then -- Must exclude this option specifically for Classic Era, because the talent exists in Era but the proc is passive diff --git a/options/defaults.lua b/options/defaults.lua index 53752b6..43a80a2 100644 --- a/options/defaults.lua +++ b/options/defaults.lua @@ -130,6 +130,10 @@ SAO.defaults = { [44401] = { -- Missile Barrage [0] = true, }, + [400573]= { -- Arcane Blast (Season of Discovery) + [4] = true, -- 4 stacks + [0] = true, -- any stacks but 4 + }, [48107] = { -- Heating Up (not an actual buff) [0] = true, }, @@ -162,6 +166,10 @@ SAO.defaults = { [44401] = { -- Missile Barrage [5143] = true, -- Arcane Missiles }, + [400573]= { -- Arcane Blast 4/4 (Season of Discovery) + [5143] = true, -- Arcane Missiles + [1449] = false, -- Arcane Explosion + }, [48108] = { -- Hot Streak [11366] = true, -- Pyroblast }, diff --git a/textures/arcane_missiles_1.blp b/textures/arcane_missiles_1.blp new file mode 100644 index 0000000000000000000000000000000000000000..f61bfe73c3b7ab71ba7a83749e8df580e4ae6ebf GIT binary patch literal 44900 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 VZxtiOh^y=3462!|X~XuT{|||L@m&A_ literal 0 HcmV?d00001 diff --git a/textures/arcane_missiles_2.blp b/textures/arcane_missiles_2.blp new file mode 100644 index 0000000000000000000000000000000000000000..efdbda0ecea47bc4be91ed221737b9099f74d171 GIT binary patch literal 44900 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 literal 0 HcmV?d00001 diff --git a/textures/arcane_missiles_3.blp b/textures/arcane_missiles_3.blp new file mode 100644 index 0000000000000000000000000000000000000000..873abb90c54bd7b84dee03b612cbd234b293102a GIT binary patch literal 44900 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 U6?-@6mm(669op8kVe$I^0lQJOcmMzZ literal 0 HcmV?d00001 From 95aaf2a50f9e08d8130d1e8956e8a33e73f1d660 Mon Sep 17 00:00:00 2001 From: ennvina Date: Mon, 4 Dec 2023 12:32:03 +0100 Subject: [PATCH 11/14] Clearcasting scale of 150% in all flavors Previously, Clearcasting scale was 100% in Classic Era A bit a history: - on Wrath Classic, Clearcasting is scaled to 150% to avoid overlap - when Classic Era was supported, there were much less spell alerts - for Mages, there was no spell alert overlapping with Clearcasting - because there was no overlap, the 150% scale wasn't really needed - but now with Season of Discovery, there are spell alerts here too - the simple answer is to scale Clearcasting to 150% in all flavors --- changelog.md | 1 + classes/mage.lua | 6 +----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/changelog.md b/changelog.md index ebf8deb..e8e243b 100644 --- a/changelog.md +++ b/changelog.md @@ -5,6 +5,7 @@ - New SAO: Mage's Arcane Blast - New GAB: Mage's Arcane Missiles, during Arcane Blast - New GAB: Mage's Arcane Explosion, during Arcane Blast +- Updated SAO: Mage's Clearcasting is back to 150% size, to avoid overlap #### v1.1.0-beta (2023-12-01) diff --git a/classes/mage.lua b/classes/mage.lua index c25466c..44cf04f 100644 --- a/classes/mage.lua +++ b/classes/mage.lua @@ -502,11 +502,7 @@ local function registerClass(self) self:RegisterAura("missile_barrage", 0, 44401, "arcane_missiles", "Left + Right (Flipped)", 1, 255, 255, 255, true, { (GetSpellInfo(5143)) }); lazyCreateClearcastingVariants(self); - local clearcastingScaleFactor = 1.5; - if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC then - clearcastingScaleFactor = 1; -- No need to scale up Clearcasting on Classic Era, because they are no other spell alerts that share this spot - end - self:RegisterAura("clearcasting", 0, 12536, clearcastingVariants.textureFunc, "Left + Right (Flipped)", clearcastingScaleFactor, 192, 192, 192, false); + self:RegisterAura("clearcasting", 0, 12536, clearcastingVariants.textureFunc, "Left + Right (Flipped)", 1.5, 192, 192, 192, false); local arcaneBlastSoDBuff = 400573; if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(arcaneBlastSoDBuff) then From 334b6209c1afa49d0980786756488973254bb5bf Mon Sep 17 00:00:00 2001 From: ennvina Date: Tue, 5 Dec 2023 23:52:17 +0100 Subject: [PATCH 12/14] Fix SoD side effects with Wrath Classic --- classes/druid.lua | 13 ++++++++++--- classes/mage.lua | 39 ++++++++++++++++++++++++--------------- classes/shaman.lua | 12 ++++++++---- classes/warrior.lua | 24 +++++++++++++++++------- 4 files changed, 59 insertions(+), 29 deletions(-) diff --git a/classes/druid.lua b/classes/druid.lua index 1fc1842..df5384e 100644 --- a/classes/druid.lua +++ b/classes/druid.lua @@ -300,7 +300,10 @@ local function registerClass(self) self:RegisterAura("elunes_wrath", 0, 64823, "shooting_stars", "Top", 1, 255, 255, 255, true, { starfire }); -- PvE tier 8 -- Fury of Stormrage (Season of Discovery) - self:RegisterAura("fury_of_stormrage", 0, 414800, "fury_of_stormrage", "Top", 1, 255, 255, 255, true, { healingTouch }); + local furyOfStormrage = 414800; + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(furyOfStormrage) then + self:RegisterAura("fury_of_stormrage", 0, furyOfStormrage, "fury_of_stormrage", "Top", 1, 255, 255, 255, true, { healingTouch }); + end -- Healing Trance / Soul Preserver self:RegisterAuraSoulPreserver("soul_preserver_druid", 60512); -- 60512 = Druid buff @@ -365,7 +368,9 @@ local function loadOptions(self) self:AddOverlayOption(solarEclipseTalent, solarSpellID, 0, nil, nil, nil, solarSpellID+1000000); -- Spell ID not used by ActivateOverlay like typical overlays self:AddOverlayOption(wrathOfEluneTalent, wrathOfEluneBuff); self:AddOverlayOption(elunesWrathTalent, elunesWrathBuff); - self:AddOverlayOption(furyOfStormrageTalent, furyOfStormrageBuff); + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(furyOfStormrageBuff) then + self:AddOverlayOption(furyOfStormrageTalent, furyOfStormrageBuff); + end self:AddOverlayOption(naturesGraceTalent, naturesGraceBuff, 0, nil, naturesGraceVariants); self:AddOverlayOption(predatoryStrikesTalent, predatoryStrikesBuff); self:AddSoulPreserverOverlayOption(60512); -- 60512 = Druid buff @@ -374,7 +379,9 @@ local function loadOptions(self) self:AddGlowingOption(solarEclipseTalent, wrath, wrath); self:AddGlowingOption(wrathOfEluneTalent, wrathOfEluneBuff, starfire); self:AddGlowingOption(elunesWrathTalent, elunesWrathBuff, starfire); - self:AddGlowingOption(furyOfStormrageTalent, furyOfStormrageBuff, healingTouch); + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(furyOfStormrageBuff) then + self:AddGlowingOption(furyOfStormrageTalent, furyOfStormrageBuff, healingTouch); + end if WOW_PROJECT_ID ~= WOW_PROJECT_CLASSIC then -- Must exclude this option specifically for Classic Era, because the talent exists in Era but it has no proc self:AddGlowingOption(predatoryStrikesTalent, predatoryStrikesBuff, regrowth); self:AddGlowingOption(predatoryStrikesTalent, predatoryStrikesBuff, healingTouch); diff --git a/classes/mage.lua b/classes/mage.lua index 44cf04f..39d3da5 100644 --- a/classes/mage.lua +++ b/classes/mage.lua @@ -489,12 +489,15 @@ local function registerClass(self) -- Please look at HotStreakHandler and customCLEU for more information -- Frost Procs - local iceLanceAndDeepFreeze = { (GetSpellInfo(FrozenHandler.ice_lance[1])), (GetSpellInfo(FrozenHandler.deep_freeze[1])) }; - self:RegisterAura("fingers_of_frost_1", 1, 74396, "frozen_fingers", "Left", 1, 255, 255, 255, true, iceLanceAndDeepFreeze); - self:RegisterAura("fingers_of_frost_2", 2, 74396, "frozen_fingers", "Left + Right (Flipped)", 1, 255, 255, 255, true, iceLanceAndDeepFreeze); - local iceLanceSoD = { (GetSpellInfo(FrozenHandler.ice_lance_sod[1])) }; - self:RegisterAura("fingers_of_frost_1_sod", 1, 400670, "frozen_fingers", "Left", 1, 255, 255, 255, true, iceLanceSoD); - self:RegisterAura("fingers_of_frost_2_sod", 2, 400670, "frozen_fingers", "Left + Right (Flipped)", 1, 255, 255, 255, true, iceLanceSoD); + if WOW_PROJECT_ID == WOW_PROJECT_WRATH_CLASSIC then + local iceLanceAndDeepFreeze = { (GetSpellInfo(FrozenHandler.ice_lance[1])), (GetSpellInfo(FrozenHandler.deep_freeze[1])) }; + self:RegisterAura("fingers_of_frost_1", 1, 74396, "frozen_fingers", "Left", 1, 255, 255, 255, true, iceLanceAndDeepFreeze); + self:RegisterAura("fingers_of_frost_2", 2, 74396, "frozen_fingers", "Left + Right (Flipped)", 1, 255, 255, 255, true, iceLanceAndDeepFreeze); + elseif GetSpellInfo(FrozenHandler.ice_lance_sod[1]) then + local iceLanceSoD = { (GetSpellInfo(FrozenHandler.ice_lance_sod[1])) }; + self:RegisterAura("fingers_of_frost_1_sod", 1, 400670, "frozen_fingers", "Left", 1, 255, 255, 255, true, iceLanceSoD); + self:RegisterAura("fingers_of_frost_2_sod", 2, 400670, "frozen_fingers", "Left + Right (Flipped)", 1, 255, 255, 255, true, iceLanceSoD); + end self:RegisterAura("freeze", 0, FrozenHandler.fakeSpellID, FrozenHandler.saoTexture, "Top (CW)", FrozenHandler.saoScaleFactor, 255, 255, 255, false); self:RegisterAura("brain_freeze", 0, 57761, "brain_freeze", "Top", 1, 255, 255, 255, true, { (GetSpellInfo(133)), (GetSpellInfo(44614)) }); @@ -606,8 +609,11 @@ local function loadOptions(self) self:AddOverlayOption(hotStreakTalent, hotStreakHeatingUpBuff, 0, hotStreakHeatingUpDetails); self:AddOverlayOption(firestarterTalent, firestarterBuff); self:AddOverlayOption(impactTalent, impactBuff); - self:AddOverlayOption(fingersOfFrostTalent, fingersOfFrostBuff, 0, nil, nil, 2); -- setup any stacks, test with 2 stacks - self:AddOverlayOption(fingersOfFrostSoDTalent, fingersOfFrostSoDBuff, 0, nil, nil, 2); -- setup any stacks, test with 2 stacks + if WOW_PROJECT_ID == WOW_PROJECT_WRATH_CLASSIC then + self:AddOverlayOption(fingersOfFrostTalent, fingersOfFrostBuff, 0, nil, nil, 2); -- setup any stacks, test with 2 stacks + elseif GetSpellInfo(fingersOfFrostSoDBuff) then + self:AddOverlayOption(fingersOfFrostSoDTalent, fingersOfFrostSoDBuff, 0, nil, nil, 2); -- setup any stacks, test with 2 stacks + end self:AddOverlayOption(FrozenHandler.freezeTalent, FrozenHandler.freezeID, 0, nil, nil, nil, FrozenHandler.fakeSpellID); self:AddOverlayOption(brainFreezeTalent, brainFreezeBuff); @@ -623,13 +629,16 @@ local function loadOptions(self) end self:AddGlowingOption(brainFreezeTalent, brainFreezeBuff, fireball); self:AddGlowingOption(brainFreezeTalent, brainFreezeBuff, frostfireBolt); - self:AddGlowingOption(fingersOfFrostTalent, fingersOfFrostBuff, iceLance); - self:AddGlowingOption(fingersOfFrostTalent, fingersOfFrostBuff, deepFreeze); - -- self:AddGlowingOption(fingersOfFrostTalent, fingersOfFrostBuff, ...); -- Maybe add more spell options for Fingers of Frost - self:AddGlowingOption(fingersOfFrostSoDTalent, fingersOfFrostSoDBuff, iceLanceSoD); - self:AddGlowingOption(FrozenHandler.freezeTalent, FrozenHandler.freezeID, iceLance); - self:AddGlowingOption(FrozenHandler.freezeTalent, FrozenHandler.freezeID, iceLanceSoD); - self:AddGlowingOption(FrozenHandler.freezeTalent, FrozenHandler.freezeID, deepFreeze); + if WOW_PROJECT_ID == WOW_PROJECT_WRATH_CLASSIC then + self:AddGlowingOption(fingersOfFrostTalent, fingersOfFrostBuff, iceLance); + self:AddGlowingOption(fingersOfFrostTalent, fingersOfFrostBuff, deepFreeze); + -- self:AddGlowingOption(fingersOfFrostTalent, fingersOfFrostBuff, ...); -- Maybe add more spell options for Fingers of Frost + self:AddGlowingOption(FrozenHandler.freezeTalent, FrozenHandler.freezeID, iceLance); + self:AddGlowingOption(FrozenHandler.freezeTalent, FrozenHandler.freezeID, deepFreeze); + elseif GetSpellInfo(fingersOfFrostSoDBuff) and GetSpellInfo(iceLanceSoD) then + self:AddGlowingOption(fingersOfFrostSoDTalent, fingersOfFrostSoDBuff, iceLanceSoD); + self:AddGlowingOption(FrozenHandler.freezeTalent, FrozenHandler.freezeID, iceLanceSoD); + end end SAO.Class["MAGE"] = { diff --git a/classes/shaman.lua b/classes/shaman.lua index dd9fdb0..2132ba6 100644 --- a/classes/shaman.lua +++ b/classes/shaman.lua @@ -38,8 +38,8 @@ local function registerClass(self) -- Healing Trance / Soul Preserver self:RegisterAuraSoulPreserver("soul_preserver_shaman", 60515); -- 60515 = Shaman buff - if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC then - local moltenBlast = 425339; + local moltenBlast = 425339; + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(moltenBlast) then self:RegisterAura("molten_blast", 0, moltenBlast, "impact", "Top", 0.8, 255, 255, 255, true, { moltenBlast }); self:RegisterCounter("molten_blast"); end @@ -71,7 +71,9 @@ local function loadOptions(self) self:AddOverlayOption(maelstromWeaponTalent, maelstromWeaponBuff, 0, oneToFourStacks, nil, 4); -- setup any stacks, test with 4 stacks self:AddOverlayOption(maelstromWeaponTalent, maelstromWeaponBuff, 5); -- setup 5 stacks self:AddOverlayOption(tidalWavesTalent, tidalWavesBuff, 0, nil, nil, 2); -- setup any stacks, test with 2 stacks - self:AddOverlayOption(moltenBlast, moltenBlast); + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(moltenBlast) then + self:AddOverlayOption(moltenBlast, moltenBlast); + end self:AddSoulPreserverOverlayOption(60515); -- 60515 = Shaman buff self:AddGlowingOption(maelstromWeaponTalent, maelstromWeaponBuff, lightningBolt, fiveStacks); @@ -82,7 +84,9 @@ local function loadOptions(self) self:AddGlowingOption(maelstromWeaponTalent, maelstromWeaponBuff, hex, fiveStacks); self:AddGlowingOption(tidalWavesTalent, tidalWavesBuff, lesserHealingWave); self:AddGlowingOption(tidalWavesTalent, tidalWavesBuff, healingWave); - self:AddGlowingOption(nil, moltenBlast, moltenBlast); + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(moltenBlast) then + self:AddGlowingOption(nil, moltenBlast, moltenBlast); + end end SAO.Class["SHAMAN"] = { diff --git a/classes/warrior.lua b/classes/warrior.lua index 3d7a3a1..e246fbe 100644 --- a/classes/warrior.lua +++ b/classes/warrior.lua @@ -388,12 +388,16 @@ local function registerClass(self) self:RegisterCounter("victory_rush"); -- Must match name from above call -- Victory Rush (Season of Discovery) - self:RegisterAura("victory_rush_sod", 0, victoryRushSoD, nil, "", 0, 0, 0, 0, false, { (GetSpellInfo(victoryRushSoD)) }); - self:RegisterCounter("victory_rush_sod"); -- Must match name from above call + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(victoryRushSoD) then + self:RegisterAura("victory_rush_sod", 0, victoryRushSoD, nil, "", 0, 0, 0, 0, false, { (GetSpellInfo(victoryRushSoD)) }); + self:RegisterCounter("victory_rush_sod"); -- Must match name from above call + end -- Raging Blow (Season of Discovery), with a spell alert, unlike other Warrior 'counters' - self:RegisterAura("raging_blow", 0, ragingBlowSoD, "raging_blow", "Left + Right (Flipped)", 1, 255, 255, 255, true, { (GetSpellInfo(ragingBlowSoD)) }); - self:RegisterCounter("raging_blow"); -- Must match name from above call + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(ragingBlowSoD) then + self:RegisterAura("raging_blow", 0, ragingBlowSoD, "raging_blow", "Left + Right (Flipped)", 1, 255, 255, 255, true, { (GetSpellInfo(ragingBlowSoD)) }); + self:RegisterCounter("raging_blow"); -- Must match name from above call + end end local function loadOptions(self) @@ -420,7 +424,9 @@ local function loadOptions(self) self:AddOverlayOption(suddenDeathTalent, suddenDeathBuff); self:AddOverlayOption(bloodsurgeTalent, bloodsurgeBuff); self:AddOverlayOption(swordAndBoardTalent, swordAndBoardBuff); - self:AddOverlayOption(ragingBlowSoD, ragingBlowSoD); + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(ragingBlowSoD) then + self:AddOverlayOption(ragingBlowSoD, ragingBlowSoD); + end if OverpowerHandler.initialized then self:AddGlowingOption(nil, OverpowerHandler.optionID, OverpowerHandler.spellID, nil, nil, OverpowerHandler.variants); @@ -432,8 +438,12 @@ local function loadOptions(self) self:AddGlowingOption(nil, ExecuteHandler.optionID, ExecuteHandler.spellID, nil, nil, ExecuteHandler.variants); end self:AddGlowingOption(nil, victoryRush, victoryRush); - self:AddGlowingOption(nil, victoryRushSoD, victoryRushSoD); - self:AddGlowingOption(nil, ragingBlowSoD, ragingBlowSoD); + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(victoryRushSoD) then + self:AddGlowingOption(nil, victoryRushSoD, victoryRushSoD); + end + if WOW_PROJECT_ID == WOW_PROJECT_CLASSIC and GetSpellInfo(ragingBlowSoD) then + self:AddGlowingOption(nil, ragingBlowSoD, ragingBlowSoD); + end self:AddGlowingOption(suddenDeathTalent, suddenDeathBuff, execute); self:AddGlowingOption(bloodsurgeTalent, bloodsurgeBuff, slam); self:AddGlowingOption(swordAndBoardTalent, swordAndBoardBuff, shieldSlam); From 603c7af656a825aec22363c712765fe9ed6f5675 Mon Sep 17 00:00:00 2001 From: ennvina Date: Wed, 6 Dec 2023 00:34:00 +0100 Subject: [PATCH 13/14] Some unusable spells were sometimes deemed usable --- .vscode/settings.json | 3 ++- changelog.md | 2 ++ components/counter.lua | 5 +++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 38ee7c6..029ca87 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -187,7 +187,8 @@ "GetItemInfo", "SAO_DEBUG", "DISABLE", - "ENABLE" + "ENABLE", + "IsPlayerSpell" ], "workbench.colorCustomizations": { "activityBar.activeBackground": "#4f71dc", diff --git a/changelog.md b/changelog.md index e8e243b..c86c8e9 100644 --- a/changelog.md +++ b/changelog.md @@ -6,6 +6,8 @@ - New GAB: Mage's Arcane Missiles, during Arcane Blast - New GAB: Mage's Arcane Explosion, during Arcane Blast - Updated SAO: Mage's Clearcasting is back to 150% size, to avoid overlap +- Hunter's Flanking Strike Spell Alert is no longer always displayed upon login +- Shaman's Molten Blast Spell Alert is no longer always displayed upon login #### v1.1.0-beta (2023-12-01) diff --git a/components/counter.lua b/components/counter.lua index a96c6d5..b1f9b84 100644 --- a/components/counter.lua +++ b/components/counter.lua @@ -56,6 +56,11 @@ function SAO.CheckCounterAction(self, spellID, auraID, talent) end end + if (not IsPlayerSpell(spellID)) then + -- Spell not learned + return; + end + local start, duration, enabled, modRate = GetSpellCooldown(spellID); if (type(start) ~= "number") then -- Spell not available From 437417f44c419e702a1f014e5682bff405ed9d1e Mon Sep 17 00:00:00 2001 From: ennvina Date: Wed, 6 Dec 2023 00:59:03 +0100 Subject: [PATCH 14/14] Release date of v1.1.1 --- SpellActivationOverlay.toc | 4 ++-- changelog.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SpellActivationOverlay.toc b/SpellActivationOverlay.toc index 952361c..651a788 100644 --- a/SpellActivationOverlay.toc +++ b/SpellActivationOverlay.toc @@ -1,8 +1,8 @@ ## Interface: 30403 -## Title: |TInterface/Icons/Spell_Frost_Stun:16:16:0:0:512:512:64:448:64:448|t SpellActivationOverlay |cffa2f3ff1.1.1-beta|r +## Title: |TInterface/Icons/Spell_Frost_Stun:16:16:0:0:512:512:64:448:64:448|t SpellActivationOverlay |cffa2f3ff1.1.1|r ## Notes: Mimic Spell Activation Overlays from Retail ## Author: Vinny -## Version: 1.1.1-beta +## Version: 1.1.1 ## SavedVariables: SpellActivationOverlayDB # SpellActivationOverlay.lua, SpellActivationOverlay.xml and all textures diff --git a/changelog.md b/changelog.md index c86c8e9..c9c91ff 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,6 @@ ## SpellActivationOverlay Changelog -#### v1.1.1-beta (2023-12-xx) +#### v1.1.1 (2023-12-05) - New SAO: Mage's Arcane Blast - New GAB: Mage's Arcane Missiles, during Arcane Blast