From 01f907f71c031d62ef35812d60b2782be593f208 Mon Sep 17 00:00:00 2001 From: Sumsebrum Date: Sat, 18 Sep 2021 13:15:27 +0200 Subject: [PATCH 1/6] fix import for TW and general issue with BuffsDebuffs --- Libs/LibClassAuras-1.0/LibClassAuras-1.0.lua | 39 +++++++++++++++----- Modules/BuffsDebuffs.lua | 18 +++++++-- 2 files changed, 45 insertions(+), 12 deletions(-) diff --git a/Libs/LibClassAuras-1.0/LibClassAuras-1.0.lua b/Libs/LibClassAuras-1.0/LibClassAuras-1.0.lua index 396f988..1a67d4c 100644 --- a/Libs/LibClassAuras-1.0/LibClassAuras-1.0.lua +++ b/Libs/LibClassAuras-1.0/LibClassAuras-1.0.lua @@ -7,6 +7,7 @@ LibClassAuras.debuffs = {} LibClassAuras.debuffToId = {} LibClassAuras.buffs = {} LibClassAuras.buffToId = {} +LibClassAuras.altNames = {} local function Spell(id, opts, class, spellTable, idTable) if not opts or not class then @@ -26,9 +27,20 @@ local function Spell(id, opts, class, spellTable, idTable) return end if opts.altName then - idTable[opts.altName] = {id = id , class = class} + for _,v in ipairs(id) do + LibClassAuras.altNames[v] = opts.altName + end + if idTable[opts.altName] then + tinsert(idTable[opts.altName], {id = id , class = class}) + else + idTable[opts.altName] = {[1] = {id = id , class = class}} + end else - idTable[spellName] = {id = id , class = class} + if idTable[spellName] then + tinsert(idTable[spellName], {id = id , class = class}) + else + idTable[spellName] = {[1] = {id = id , class = class}} + end end if type(id) == "table" then @@ -54,9 +66,11 @@ LibClassAuras.Buff = Buff local function getClassDebuffs(class) local classSpells = {} - for k,v in pairs(LibClassAuras.debuffToId) do - if v.class == class then - tinsert(classSpells, {name = k, id = v.id}) + for name, spells in pairs(LibClassAuras.debuffToId) do + for _, spellInfo in ipairs(spells) do + if spellInfo.class == class then + tinsert(classSpells, {name = name, id = spellInfo.id}) + end end end return classSpells @@ -65,9 +79,11 @@ LibClassAuras.GetClassDebuffs = getClassDebuffs local function getClassBuffs(class) local classSpells = {} - for k,v in pairs(LibClassAuras.buffToId) do - if v.class == class then - tinsert(classSpells, {name = k, id = v.id}) + for name, spells in pairs(LibClassAuras.buffToId) do + for _, spellInfo in ipairs(spells) do + if spellInfo.class == class then + tinsert(classSpells, {name = name, id = spellInfo.id}) + end end end return classSpells @@ -82,4 +98,9 @@ local function getSpellNameToId(auraType) end end -LibClassAuras.GetSpellNameToId = getSpellNameToId \ No newline at end of file +LibClassAuras.GetSpellNameToId = getSpellNameToId + +local function getAltName(spellID) + return LibClassAuras.altNames[spellID] +end +LibClassAuras.GetAltName = getAltName \ No newline at end of file diff --git a/Modules/BuffsDebuffs.lua b/Modules/BuffsDebuffs.lua index 7940fd6..61eed84 100644 --- a/Modules/BuffsDebuffs.lua +++ b/Modules/BuffsDebuffs.lua @@ -138,7 +138,8 @@ function BuffsDebuffs:Test(unit) BuffsDebuffs:AURA_FADE(unit, AURA_TYPE_DEBUFF) BuffsDebuffs:AURA_FADE(unit, AURA_TYPE_BUFF) - + --BuffsDebuffs:AURA_GAIN(unit, AURA_TYPE_BUFF, 1243, select(1, GetSpellInfo(1243)), select(3, GetSpellInfo(1243)), 10, GetTime() + 10, 1, "physical") + --self:AURA_GAIN(unit, AURA_TYPE_DEBUFF, 31117, select(1, GetSpellInfo(31117)), select(3, GetSpellInfo(31117)), 10, GetTime() + 10, 1, "physical") local i = 1 for spellID, enabled in pairs(Gladdy.db.trackedDebuffs) do if i > 4 then @@ -197,13 +198,24 @@ function BuffsDebuffs:AURA_GAIN(unit, auraType, spellID, spellName, texture, dur return end local auraFrame = self.frames[unit] + spellName = LibClassAuras.GetAltName(spellID) or spellName local aura = Gladdy:GetImportantAuras()[spellName] and Gladdy.db.auraListDefault[tostring(Gladdy:GetImportantAuras()[spellName].spellID)].enabled if aura and Gladdy.db.buffsShowAuraDebuffs then aura = false end local auraNames = LibClassAuras.GetSpellNameToId(auraType) - local spellId = auraNames[spellName] and auraNames[spellName].id[1] - if not aura and spellID and spellId and expirationTime and (Gladdy.db.trackedBuffs[tostring(spellId)] or Gladdy.db.trackedDebuffs[tostring(spellId)]) then + local spellId + local isTracked = false + if auraNames[spellName] then + for _, spellInfo in ipairs(auraNames[spellName]) do + spellId = spellInfo.id[1] + if (Gladdy.db.trackedBuffs[tostring(spellId)] or Gladdy.db.trackedDebuffs[tostring(spellId)]) then + isTracked = true + break + end + end + end + if not aura and spellID and expirationTime and isTracked then local index if auraType == AURA_TYPE_DEBUFF then auraFrame.numDebuffs = auraFrame.numDebuffs + 1 From df2721f1cf1e822fb75052da573d1234197e58cd Mon Sep 17 00:00:00 2001 From: Sumsebrum Date: Sat, 18 Sep 2021 15:00:00 +0200 Subject: [PATCH 2/6] cleanup --- Modules/ExportImport.lua | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Modules/ExportImport.lua b/Modules/ExportImport.lua index 1bafaaa..a1c709e 100644 --- a/Modules/ExportImport.lua +++ b/Modules/ExportImport.lua @@ -14,12 +14,6 @@ local function table_copy(t, str) end for k,v in pairs(t) do if type(v) == "table" then - if k == "drCategories" then - for key,val in pairs(v) do - --Gladdy:Print("TableCopy", str .. "." .. key) - end - end - t2[k] = table_copy(v, str .. "." .. k); else @@ -94,7 +88,7 @@ end) import:AddChild(importClearButton) import.clearButton = importClearButton -local deletedOptions = { --TODO backward compatibility Imports on deleted options +local deletedOptions = { -- backwards compatibility growUp = true, freezetrap = true, repentance = true From 548234aaaa078ac16eda86e0357e4b9892c7c689 Mon Sep 17 00:00:00 2001 From: Sumsebrum Date: Sat, 18 Sep 2021 15:00:16 +0200 Subject: [PATCH 3/6] grounding totem effect fix --- Constants.lua | 2 +- Modules/Auras.lua | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Constants.lua b/Constants.lua index cbffad3..5595fe2 100644 --- a/Constants.lua +++ b/Constants.lua @@ -649,7 +649,7 @@ local importantAuras = { -- Grounding Totem Effect [GetSpellInfo(8178)] = { track = AURA_TYPE_BUFF, - duration = 4, + duration = 0, priority = 20, spellID = 8178 }, diff --git a/Modules/Auras.lua b/Modules/Auras.lua index abf93c8..b1f0900 100644 --- a/Modules/Auras.lua +++ b/Modules/Auras.lua @@ -106,8 +106,12 @@ function Auras:CreateFrame(unit) if (self.timeLeft <= 0) then Auras:AURA_FADE(self.unit, self.track) else + if self.spellID == 8178 then + self.text:SetText("") + else + Gladdy:FormatTimer(self.text, self.timeLeft, self.timeLeft < 10) + end self.timeLeft = self.timeLeft - elapsed - Gladdy:FormatTimer(self.text, self.timeLeft, self.timeLeft < 10) end else self:SetAlpha(0.01) @@ -359,7 +363,8 @@ function Auras:AURA_GAIN(unit, auraType, spellID, spellName, icon, duration, exp auraFrame.startTime = expirationTime - duration auraFrame.endTime = expirationTime auraFrame.name = spellName - auraFrame.timeLeft = expirationTime - GetTime() + auraFrame.spellID = spellID + auraFrame.timeLeft = spellID == 8178 and 45 or expirationTime - GetTime() auraFrame.priority = Gladdy.db.auraListDefault[tostring(self.auras[spellName].spellID)].priority auraFrame.icon:SetTexture(Gladdy:GetImportantAuras()[GetSpellInfo(self.auras[spellName].spellID)] and Gladdy:GetImportantAuras()[GetSpellInfo(self.auras[spellName].spellID)].texture or icon) auraFrame.track = auraType @@ -373,9 +378,11 @@ function Auras:AURA_GAIN(unit, auraType, spellID, spellName, icon, duration, exp else auraFrame.icon.overlay:SetVertexColor(Gladdy.db.frameBorderColor.r, Gladdy.db.frameBorderColor.g, Gladdy.db.frameBorderColor.b, Gladdy.db.frameBorderColor.a) end - if not Gladdy.db.auraDisableCircle then + if not Gladdy.db.auraDisableCircle and spellID ~= 8178 then auraFrame.cooldown:Show() auraFrame.cooldown:SetCooldown(auraFrame.startTime, duration) + else + auraFrame.cooldown:Hide() end end From ff4799ceef3e8c6bc0246b1865ffa6ab1ec98c09 Mon Sep 17 00:00:00 2001 From: Sumsebrum Date: Sat, 18 Sep 2021 15:00:34 +0200 Subject: [PATCH 4/6] add option cooldown number alpha --- Modules/Auras.lua | 16 ++++++++++++++++ Modules/BuffsDebuffs.lua | 28 ++++++++++++++++++++++------ Modules/Cooldowns.lua | 16 ++++++++++++++++ Modules/Diminishings.lua | 16 ++++++++++++++++ Modules/Racial.lua | 20 +++++++++++++++----- Modules/Trinket.lua | 20 +++++++++++++++----- 6 files changed, 100 insertions(+), 16 deletions(-) diff --git a/Modules/Auras.lua b/Modules/Auras.lua index b1f0900..63c2b4f 100644 --- a/Modules/Auras.lua +++ b/Modules/Auras.lua @@ -557,6 +557,22 @@ function Auras:GetOptions() order = 4, width = "full", }), + auraCooldownNumberAlpha = { + type = "range", + name = L["Cooldown number alpha"], + min = 0, + max = 1, + step = 0.1, + order = 5, + width = "full", + set = function(info, value) + Gladdy.db.auraFontColor.a = value + Gladdy:UpdateFrame() + end, + get = function(info) + return Gladdy.db.auraFontColor.a + end, + }, } }, font = { diff --git a/Modules/BuffsDebuffs.lua b/Modules/BuffsDebuffs.lua index 61eed84..0a4faeb 100644 --- a/Modules/BuffsDebuffs.lua +++ b/Modules/BuffsDebuffs.lua @@ -279,7 +279,7 @@ local function styleIcon(aura, auraType) aura.cooldown:SetFont(Gladdy:SMFetch("font", "buffsFont"), (Gladdy.db.buffsIconSize/2 - 1) * Gladdy.db.buffsFontScale, "OUTLINE") aura.cooldown:SetTextColor(Gladdy.db.buffsFontColor.r, Gladdy.db.buffsFontColor.g, Gladdy.db.buffsFontColor.b, Gladdy.db.buffsFontColor.a) aura.stacks:SetFont(Gladdy:SMFetch("font", "buffsFont"), (Gladdy.db.buffsIconSize/3 - 1) * Gladdy.db.buffsFontScale, "OUTLINE") - aura.stacks:SetTextColor(Gladdy.db.buffsFontColor.r, Gladdy.db.buffsFontColor.g, Gladdy.db.buffsFontColor.b, Gladdy.db.buffsFontColor.a) + aura.stacks:SetTextColor(Gladdy.db.buffsFontColor.r, Gladdy.db.buffsFontColor.g, Gladdy.db.buffsFontColor.b, 1) end function BuffsDebuffs:UpdateFrame(unit) @@ -486,15 +486,15 @@ local function iconTimer(auraFrame, elapsed) auraFrame.timeLeft = timeLeftMilliSec if Gladdy.db.buffsDynamicColor then if timeLeftSec >= 60 then - auraFrame.cooldown:SetTextColor(0.7, 1, 0) + auraFrame.cooldown:SetTextColor(0.7, 1, 0, Gladdy.db.buffsFontColor.a) elseif timeLeftSec < 60 and timeLeftSec >= 11 then - auraFrame.cooldown:SetTextColor(0.7, 1, 0) + auraFrame.cooldown:SetTextColor(0.7, 1, 0, Gladdy.db.buffsFontColor.a) elseif timeLeftSec <= 10 and timeLeftSec >= 5 then - auraFrame.cooldown:SetTextColor(1, 0.7, 0) + auraFrame.cooldown:SetTextColor(1, 0.7, 0, Gladdy.db.buffsFontColor.a) elseif timeLeftSec <= 4 and timeLeftSec >= 3 then - auraFrame.cooldown:SetTextColor(1, 0, 0) + auraFrame.cooldown:SetTextColor(1, 0, 0, Gladdy.db.buffsFontColor.a) elseif timeLeftMilliSec <= 3 and timeLeftMilliSec > 0 then - auraFrame.cooldown:SetTextColor(1, 0, 0) + auraFrame.cooldown:SetTextColor(1, 0, 0, Gladdy.db.buffsFontColor.a) end end if timeLeftMilliSec < 0 then @@ -911,6 +911,22 @@ function BuffsDebuffs:GetOptions() order = 10, width = "full", }), + buffsCooldownNumberAlpha = { + type = "range", + name = L["Cooldown number alpha"], + min = 0, + max = 1, + step = 0.1, + order = 11, + width = "full", + set = function(info, value) + Gladdy.db.buffsFontColor.a = value + Gladdy:UpdateFrame() + end, + get = function(info) + return Gladdy.db.buffsFontColor.a + end, + }, }, }, font = { diff --git a/Modules/Cooldowns.lua b/Modules/Cooldowns.lua index 97c0a15..c2ed7b9 100644 --- a/Modules/Cooldowns.lua +++ b/Modules/Cooldowns.lua @@ -663,6 +663,22 @@ function Cooldowns:GetOptions() order = 9, width = "full", }), + cooldownCooldownNumberAlpha = { + type = "range", + name = L["Cooldown number alpha"], + min = 0, + max = 1, + step = 0.1, + order = 10, + width = "full", + set = function(info, value) + Gladdy.db.cooldownFontColor.a = value + Gladdy:UpdateFrame() + end, + get = function(info) + return Gladdy.db.cooldownFontColor.a + end, + }, }, }, font = { diff --git a/Modules/Diminishings.lua b/Modules/Diminishings.lua index 780c188..e999943 100644 --- a/Modules/Diminishings.lua +++ b/Modules/Diminishings.lua @@ -456,6 +456,22 @@ function Diminishings:GetOptions() order = 9, width = "full", }), + drCooldownNumberAlpha = { + type = "range", + name = L["Cooldown number alpha"], + min = 0, + max = 1, + step = 0.1, + order = 10, + width = "full", + set = function(info, value) + Gladdy.db.drFontColor.a = value + Gladdy:UpdateFrame() + end, + get = function(info) + return Gladdy.db.drFontColor.a + end, + }, }, }, font = { diff --git a/Modules/Racial.lua b/Modules/Racial.lua index 94fb049..aaf3731 100644 --- a/Modules/Racial.lua +++ b/Modules/Racial.lua @@ -19,6 +19,7 @@ local Racial = Gladdy:NewModule("Racial", nil, { racialBorderColor = { r = 0, g = 0, b = 0, a = 1 }, racialDisableCircle = false, racialCooldownAlpha = 1, + racialCooldownNumberAlpha = 1, }) local ANCHORS = { ["LEFT"] = "RIGHT", ["RIGHT"] = "LEFT", ["BOTTOM"] = "TOP", ["TOP"] = "BOTTOM"} @@ -43,19 +44,19 @@ local function iconTimer(self,elapsed) local timeLeft = ceil(self.timeLeft) if timeLeft >= 60 then - self.cooldownFont:SetTextColor(1, 1, 0) + self.cooldownFont:SetTextColor(1, 1, 0, Gladdy.db.racialCooldownNumberAlpha) self.cooldownFont:SetFont(Gladdy:SMFetch("font", "racialFont"), (self:GetWidth()/2 - 0.15* self:GetWidth()) * Gladdy.db.racialFontScale, "OUTLINE") elseif timeLeft < 60 and timeLeft >= 30 then - self.cooldownFont:SetTextColor(1, 1, 0) + self.cooldownFont:SetTextColor(1, 1, 0, Gladdy.db.racialCooldownNumberAlpha) self.cooldownFont:SetFont(Gladdy:SMFetch("font", "racialFont"), (self:GetWidth()/2 - 1) * Gladdy.db.racialFontScale, "OUTLINE") elseif timeLeft < 30 and timeLeft >= 11 then - self.cooldownFont:SetTextColor(1, 0.7, 0) + self.cooldownFont:SetTextColor(1, 0.7, 0, Gladdy.db.racialCooldownNumberAlpha) self.cooldownFont:SetFont(Gladdy:SMFetch("font", "racialFont"), (self:GetWidth()/2 - 1) * Gladdy.db.racialFontScale, "OUTLINE") elseif timeLeft < 10 and timeLeft >= 5 then - self.cooldownFont:SetTextColor(1, 0.7, 0) + self.cooldownFont:SetTextColor(1, 0.7, 0, Gladdy.db.racialCooldownNumberAlpha) self.cooldownFont:SetFont(Gladdy:SMFetch("font", "racialFont"), (self:GetWidth()/2 - 1) * Gladdy.db.racialFontScale, "OUTLINE") elseif timeLeft < 5 and timeLeft > 0 then - self.cooldownFont:SetTextColor(1, 0, 0) + self.cooldownFont:SetTextColor(1, 0, 0, Gladdy.db.racialCooldownNumberAlpha) self.cooldownFont:SetFont(Gladdy:SMFetch("font", "racialFont"), (self:GetWidth()/2 - 1) * Gladdy.db.racialFontScale, "OUTLINE") end Gladdy:FormatTimer(self.cooldownFont, self.timeLeft, self.timeLeft < 10, true) @@ -270,6 +271,15 @@ function Racial:GetOptions() order = 8, width = "full", }), + racialCooldownNumberAlpha = Gladdy:option({ + type = "range", + name = L["Cooldown number alpha"], + min = 0, + max = 1, + step = 0.1, + order = 9, + width = "full", + }), }, }, font = { diff --git a/Modules/Trinket.lua b/Modules/Trinket.lua index 3a71c6a..53126e4 100644 --- a/Modules/Trinket.lua +++ b/Modules/Trinket.lua @@ -17,6 +17,7 @@ local Trinket = Gladdy:NewModule("Trinket", nil, { trinketBorderColor = { r = 0, g = 0, b = 0, a = 1 }, trinketDisableCircle = false, trinketCooldownAlpha = 1, + trinketCooldownNumberAlpha = 1, }) LibStub("AceComm-3.0"):Embed(Trinket) @@ -39,19 +40,19 @@ local function iconTimer(self, elapsed) local timeLeft = ceil(self.timeLeft) if timeLeft >= 60 then - self.cooldownFont:SetTextColor(1, 1, 0) + self.cooldownFont:SetTextColor(1, 1, 0, Gladdy.db.trinketCooldownNumberAlpha) self.cooldownFont:SetFont(Gladdy:SMFetch("font", "trinketFont"), (self:GetWidth()/2 - 0.15*self:GetWidth()) * Gladdy.db.trinketFontScale, "OUTLINE") elseif timeLeft < 60 and timeLeft >= 30 then - self.cooldownFont:SetTextColor(1, 1, 0) + self.cooldownFont:SetTextColor(1, 1, 0, Gladdy.db.trinketCooldownNumberAlpha) self.cooldownFont:SetFont(Gladdy:SMFetch("font", "trinketFont"), (self:GetWidth()/2 - 1) * Gladdy.db.trinketFontScale, "OUTLINE") elseif timeLeft < 30 and timeLeft >= 11 then - self.cooldownFont:SetTextColor(1, 0.7, 0) + self.cooldownFont:SetTextColor(1, 0.7, 0, Gladdy.db.trinketCooldownNumberAlpha) self.cooldownFont:SetFont(Gladdy:SMFetch("font", "trinketFont"), (self:GetWidth()/2 - 1) * Gladdy.db.trinketFontScale, "OUTLINE") elseif timeLeft <= 10 and timeLeft >= 5 then - self.cooldownFont:SetTextColor(1, 0.7, 0) + self.cooldownFont:SetTextColor(1, 0.7, 0, Gladdy.db.trinketCooldownNumberAlpha) self.cooldownFont:SetFont(Gladdy:SMFetch("font", "trinketFont"), (self:GetWidth()/2 - 1) * Gladdy.db.trinketFontScale, "OUTLINE") elseif timeLeft < 5 and timeLeft > 0 then - self.cooldownFont:SetTextColor(1, 0, 0) + self.cooldownFont:SetTextColor(1, 0, 0, Gladdy.db.trinketCooldownNumberAlpha) self.cooldownFont:SetFont(Gladdy:SMFetch("font", "trinketFont"), (self:GetWidth()/2 - 1) * Gladdy.db.trinketFontScale, "OUTLINE") end Gladdy:FormatTimer(self.cooldownFont, self.timeLeft, self.timeLeft < 10, true) @@ -276,6 +277,15 @@ function Trinket:GetOptions() order = 8, width = "full", }), + trinketCooldownNumberAlpha = Gladdy:option({ + type = "range", + name = L["Cooldown number alpha"], + min = 0, + max = 1, + step = 0.1, + order = 9, + width = "full", + }), }, }, font = { From 4925195de63342d374c3a149f3cc6b5fdf2a407a Mon Sep 17 00:00:00 2001 From: Sumsebrum Date: Sun, 19 Sep 2021 12:42:35 +0200 Subject: [PATCH 5/6] update klimp profile --- ImportStrings.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ImportStrings.lua b/ImportStrings.lua index 80e7914..b2c8dba 100644 --- a/ImportStrings.lua +++ b/ImportStrings.lua @@ -1,7 +1,7 @@ local Gladdy = LibStub("Gladdy") function Gladdy:GetKlimpProfile() - return "4XzTCTTCBJZK(HzVoUiaibbV0kjoX1M44FlNAMPQP0ekjAlUrh8ssTZ45I8SV9jEMurmX5IzmdjqJgnA0N(A7fQf3Vy(6SzhYwNK96dBpKHViEXnQfZxs))hP)Fg()lGFgV)XKxVjz1xV9WFNKnlo7(K)PyXSfZxfNxa)ZXOKhrjpIsEiLwdd6W21h(79xU9Pn84wN9M084LBtEDA2QTjlwwt2hBssVl8hMOfzP7)AsrpQ8usX7tI3wSbi17tsFCtXIBSW82)09hks2D724IKCIpUC7Fh)C(9XzpMuKSgNBw8Q04T3EiFX87U(DV)(gu72KSvj7lIFmbLaYI3tcCvqGZ33AcCEoxe8FlE4vbMH3a1Y3k(fj9YJp8q(m8)vk0Ex2H)(nPzjRkspSFX8p82RG16)ljlh(N)1U4)Ndz)1(J74tW2dD2NU)(p9rAVNLS7q2vh2dl8BoKLMF7T0M7p(eSqjfaJ775BurbbAyd488egp(yw8hsZlEtYdXh3wG7sByOh(ZK9OGFnYZpLLc0S45f347HcN4vFfwM3o7ZxDfUt1HATzAtrPnbbtBkg)qVOrNIkOAkvRHNXZnT1iiWmX9UrzTQPnfTXg5pTPyukv45S3BkHDNqCn8HsGVBIRIoqho19IVACbMYR3XOXZpy8JXbo3DrUX1gndES77M4MWhUonUOAWfr55p(ImW(2P06PXuHQjQ8c6HTMXYwSKU)nkNV9SUc2yxhzC2PXvbA)XNXWlInAQYkTVoyQBfNzQw5CWQmXfX3m5RTo7jUGmI9eTECLrDFLrDeyNBkAVGRgVPkTSrHJV1h8oL2g5M6u8c8NQaomCIQWkZj8JmSHuVP6tauUIol7In9jOJg)EYaMs1EEN4yFeZ7bt1me4QspXvr5PdpXMFiVi6t4vy41ikiCCB8J4bvFcdKJe8egg50uHDHtv9Y47hnXPOaJeJpLbzm0v9edGWaEugxLCilrHENq)Ay5LoyQH0AmHt1TLXO9MKjsTj6ec4G(tiW7egTh42R1BIHyhoz3OgJjA8fzWtd)aFZ4k8dCIB9NKccMD202erEtvq5S(t0yItDc7vdPMBTNkuRbuocDt7SROkJCoTXRYs)3V9L)ZX41zXfXF7l3deRzY2y1boMLSy(8DhouSz8mURZ0Um7tmT4vBJZZVE1H9)ujvVsYzUkVwxaC457RJa5LYbQVp8kW9(84cif(LhbgdwJBO8nYFkz72fZb(oEhSl46cSa2mRtFinjd)cmHcmVAit7yjf7cEyWEqparU6WQJ5dtdDnnEGgfqcZaK4sAqF7l)xMHPtnzwZLcznsj)trj)PqPGtrPGPqj7POKDkuk8uukCkuYDkk5McLIofLIMcLy3xJrk8Q9ztRcSqB4LQBJxVoDpxGpUct13YU8ywmFtBOc4DHdPYtsjalROgiA2mqDXkhgAXyE6)MqdSPrIZUMH5BIH7X54QDF6UKS7s2E7H09fW1M7)0T93e5VT2UgBC53sxxS5kqOCG2grCXSUEFrsw2XNk4zvD7N5KINFcK13U5580vXBLAHk1fDjZz898Md)9h2(CJHclLNm8lc8uv3gBoLRsrdLnMsGxJvW2B8xMTkE)WZqvPg3Cc3eZ2IPToeBBZnb9VrRn92jZjHUmlAb6TuZpU)R7bdSDN6NLxZhGYHz5gsz7jaYoKx0zHQxe0qE6L7xTbo6e9mS6OGUCJt56cL26KwjEYsw)MeAi4s78GWLwIPfegfIpaj6aP3JVb9jSSSOBWdHy9iGFI1FCj620sZuhbE0XXl)Kkj0sm2adnoLrRC08jYrfNbNMs5OXtHoHZtzOHjFNl)bUCLRhwCJLuOY865hPOfs7fYmINIFW4ZecR6Wsk1cMs2qNJPGXNhawKHLLH5sRLlKNRnqPOpv(cG9OFY7fojDCgAHnTgMTm(EK4ZfPjcqPatKo0Nwmx5Qtz8W7upltBrI6B95dLGGqMlcIIOX6RewMdZgEiWrFW6eAzdPVh6jsr48KEWacEEtRT0iOy3OvdYxH(IMxuDPahlP7ssUYlfNt7swmrpe5yXgvKvAUoE3hO5FYfgDjf3xO8cp6bltbTJfO4IWIfG94hII4TcwXqMbnIoQLL9ARju2sA(frH0uHZowGck18aT8dH8e5QXHK2ZX8seRQAfDrfSnQuQjsAvg5msXkcbIkdiU4f3fWZa0L4tKq(iro44VccDMLvwAlzSEcv8LlzE0pGKdig3tlufo2vcdPyzoKmhRkAmIYIoqeLrIKmmsUi4ZpWLUdFtOlu4ddFKQ47k6qnRgd)qOsOILnHgRCDt5ef5arKOLRDyMYepgwEtMPbfHnU5erMmUs7kQs7iSK2WBdRNSU8jI1fqCSrjA8GCMVCekJqoZdbRcZqMqytylkI4q6gzdF2)W(CBySf8HF7HmWWAQa6fyhFlyhNCN(q8QK)8Y1R)0(8)8DBHinE(pVEherq(FYJ9VYoCC)6K1)1YTpvLwq(8nh(BiNIK9Rb3NlzSR(8t4t1iJ96YKcA)6sajroBt7qle(IzdijfiFGI0N(2xiwOo)aKE1ZSjIJxbx78DG7GaLNNhKZ(PY2GZpI8)asv48UbwNemImyDKFOEiv2neMxFmlpP1jKQvGywCjRfcF6qwLpVlc4OBoVm1WrDgaa3e1WFVrMApdzv5c04vfm3kWisaMvfKvX)aFHUoyTEUqVqNpk98n93RvHy9DI7C5bi62DFesYkDpe6fb5ab96470gdaoGarniEmLjQ9DUlalA12hLNy4fNZ1hAcKiMdpgcTcIGPPqR80zm60qUV87c(B1n7h7rURCwSE)G)zWwm4nIswoaxIX(s2yFPOtO7NhU88TQBWKwMHxhEF82hoJnTCvcVR)tBAPrfh47nLuFa(4cD)t(g8Ypyzi6PUFin)W(b14SlA0Netrd5npdzgMUIh(m002X9fKTTz125A34fTr5piYkBHnDBycSEqd0FcLnaICfRP)buJeTOdQmRiZYaH2IeRLz55)VhJZs(2xU642TF7l)2M0Iez3uDA5kZFR5TNYTt3i95rEo3q70YfLS(YAA)7nmy3srQ7IwvPkCVw6CQTZwo3xp0SmCfQ0)G2vVA0iUcckWznrEqmEyGYg0AzLaOmbirA3qME9EuWSSzoq1DwtxV4)o6sZd8MbMJTEqcjq8bWXEL0RFV50uQ(JFzCjKe2J0BAz3y4tgs8D5QIJGlHLLCqJdPbsDVBQGO2hwkJY0(w2qR8oGZBfSqvXk)y6(0DXBtZBkFP52W03PVs2WShDfcFOUaiim5Lkhn2qIgwvviMxG)ttyVsFh30m2XCWBiDlCoQk99u4leYQWt)Fb01P6ba2Ki7frLwFrRqDiUbs4TlEjtI6JY09q66fHSotxqcEjiR1Vh(jVeKv5f8lHUbMEWu)sqwi13FkfTriRUFF9mjYErqP6ReZAqt9xiNZUGanjQpQ(7phtp2jhwsLxEYcPI3Rj7EjORt1dHTjr2luYrxuvyvvK2lSBdOnjspMaUpO8VeK1fO6IR3Ki7fGNHMPDfzBQdhe1fKXjr8X9B8lruOC)ko4m6OEqN(sqxL9N0t0fkBlLy8S01wr(xXvAx)w96LGSQGxyhOWaXWghRpZRaF(vyBiuhjnfzpf6w97RtW46D7oUpPZ5aCjHphqGweRjCqFTHhBvA3CjwNvLMZRu9xTRoKTB8DjxIKvPDIt(hiW9CkVmjW9YE(UkEBk(ulK0yNJNwnxsbwms9PAHvAmAL5KTvjsMWt1kHYk13Bv3X48orFHWdj87naJo8eTXRsC33e1Z(56OAKQqzD1Qka6B3NS7zsvF)EivPvj7aTfoFaoRV7sIxtLhnxsSoHMXYQb85CMT4eqWpSobtM5P4ScewYK8Jzs5JYXXTgNwE9mUFdmKnqkGuBMatKZ9QZVQapKfVlPSCAnht97iD3MD0r3kZs3PcK2DGFhYgDZx9dhqW7AKJeNfopDSWeY9xAW4fK4IY02rn3(PZ29sfyqijUtLwL7vyrTYydofvlu7YG)(PvV56oO5mQ466S)dCpSy0AzCLVZZ4mrqA8bAxGosQFtdnRQk2kzFwlVAuEJYIq8X4)bT2LdwP(q6Eu8ksRU5w3rByt66KzBt)3)nod2JGLJ9X1eTN921z3CC72ZOaQvl1zucmbJ3zLi8AG0ffO2e0o90mIiODlcyeb5sTIHPr5XOGznmIRQiFgNViBjyyLGe5ce4sf8h1AbMrJYkW0ADcUr(MA4OyeYI8fuxdTc0Xmz9umeLALNtOMlIznFhdmNvW10xgzKJrpoWiWi6hkRVrOa2324)oWpK)GhpdDGlQecsMtvEEwbGkz)lWDIL2NEb1nW0ummgLwRquRIXttRcSchhYi3fwcaRVGbNsXBbdmcAD5(7JEaeJmvazvjtkW(XOiBajtLWsoEfildfmgPFDreoGw5OqbHmA4w503ZxW5JbHge1SeuOQ1jySY9jGo0YSgSA8a8J4Lt7fjqMd8kZJIepkK1JSckXWEqu0CkgbxJUebxpPzbm(c9H1JwofJPiOG5ZhOgxKaBTrZ9xaVbWLVsMXmadMAju0bsxaqDDk(VTmQYbLqL7BfSFJyqsdzuLfmJrwSucYmqGMhNG(mkIy1zPbgqWYycWKZWyZRJeiXlXN0xaYmYxWYpuUFOCEc4VE8wvBCUk9EM3zwa0BKdzFTacBKw2oEEsByisfyiSad0Hz0XDLAubvhCch5yzgqtg9BDjKUwzewfpchJjRLHXwXhEGME5fPibc26coFh5Xe)Crt)wfG7(n5Dd)Sx3AvhtQUgnd0f)xhSHyA6fUmAdkidbekKu1oUlnC)Zg3yxigB4WO0L9qvDTQC6DJngOxzWXxzbTSaLVFqGNgUYqWkgwZ6)rZFNnBcLelZ8kXwzyed7gbsdrdtQQy01MgYRQ3g0iwhe4R2f)Tlsi8hASVBJ7qLd8wnhlZhLWZOhiXKpg)y6QbcVOcHPlWM(A(wiEYKVtlbOQsIQEF9DXBT7PxLZCrAsi7SoR9WqGzFQfqsRZEneT3JGId1AUZZ3MK8uZiWxIbqcjvvc8sk(ZBuGoreJjFr228IJ7pN5eaU6PRP7xF2tXz5LztmNA23Bcw0(lUghou0jtIHhpybdh)xZphQdgZ5KaFE12dCEPdUaZAkO0KMq(Q4c4o(5TmqY5uaQP54jZ(ZBNG1rdM0X4ZzjcW(GIIbo(riK0LzjXq6mNXe9fEdoe7kJh)q0NebRxDoJgIdK4S0DpbV5SMsPwYdjXzN1zc2LGs762oRQ1z)aMLF32d55ykGIBepji9xxcrSyxmWUOD3g0WuuhanpR0C6KONyzOFgzfygQZktJSxcdSrhi5e8FSkTrHAqZMPNnCVnSRFPKEnvfMk8BRsPKecv2ZXBGvRZKe8TaaDvAT7NAFZnH1M3)sJsxAZSLfsDT7Mw2sT0Fbfa35uBHCJY19m4SoVOiioJ8sBPJ0eP(UEo)Jfx9ki(tNZdsmjc7XsNPcS5YqHUxWZEzlNytso3REvmOVNTBTgPLx7OEvkP(tTxEJyig4oXGXXmqTbkViSLlPXSk6(UJj55j5sjfk7SUwUbBSxA3B7LIr5pjdZXFpbiJ4V)Z3C)BVdFAh1SuHEkY3WVD5D3D9NA8bS6b4hU9YpC5BU(MQpW)bra(WhV8DVT(TmvU9URF787RERbINosO(h(0R)VR(afYmg73DF(63upCQrEHxF3NE3NRPTXgabHdVE(7V8Jx2Kt8v(Sbr2yqDRbm2VyaQYtUoD(cjA4)cumBH0a4ZWSnImb8d4FGgMvMRjogQ9EXhOCPWhGKx4bJjBoJBRx89ubbMj)jfGMk2224d0VBO4dupOsRSVptcSzyNvMck(fJmeJZekZgB3AEmGNQzsBHtubZqMwAL8quGHPRVHNm8ghV0yZIIp4c9O3qLevyt6bQASZkRBa(c63JBIPI45W9aoro(lgniwyEblGWmjfXzl4wYLMByaZB0VfU0cILsGOgMNg9jdtFidxdl)vwwAZDy7Sfszw4nBjxjhngsbbFJVHpsGu45Zcojn6tyVXsCEKwydm5t(tYPcvEIzL5jpRS8e0GXisWhCyroMXzbsBtprsqAVZKFD)OrI18Hyg83opIi4oPOxXqpdVxKXgXjyDt1D)Hlrp5xtXESoRzscI72b)ZxtpJDTQT6pGf42E6ALbz)EseePrwFkVElQ2JUe8PcAoYxYg7lOZO2nCB5A3nV5MfLF4exAMkuhNrNHpXMULhjXOgDCkQlSUrkPgBR6GFgfhT1FYH(5pQoZYSUSxjjQv06e(0SrcKSZVyN)4S(Mj2)Y5fXfhZxwELR8McwaL0QyrlwS4)FtekbA" + return "4XzT8K1CBB0K)y2NJkmZGzWGhfTTSvTXY6tuUssvPymijSiwZdTaGBIYd(3(2xaeN0eooVydbmt390Dp9T0c1IhxmF5Xp)5Iz4)C7Qd7Vpz96S9pT4oL8f8LZZ(70f3PDlMVkPOCws(Sd5RtZF1HThYrqKWlFXDblM)e9V54)wwV(F9daKslbyyGfUo)1zfjl3M(QS8vBtxS8eCFQjmdUkCyOwMNT)lPL9GYZPLVlnzB5gauVln7PnagDW(2)8Jhkt3D)2KY0IR3(8MKR3(NjVu8ys(tPLPRX9MNSklz79hkwm)HBF77ESb0UpnFv6(YKNsxmdPE(0pV8faRZVDFzA(NtwL(7xVE9h2x87VDlWcF53VDhS(IFNx7F82Thkkeo6RoCy76d)5Ecx)8BUPLmO6JVn)WF(6S80vLzh2xTS)V08c4h)JDj)phY)J9h3r89NAV0zF4Xh)W7PdDE6Ud53CypWYE9H8SI7VNov)MinUXggeAuXwR2hg6dcw85FYAaw)X8KFoRO81PFo542suA4IIcW)pDpYXxJ8HNZZayw(YI7cdqrsYQVaO5nZ(4n3GYiDKwBM2wuAJ1oTTycJcIhDlkB9wQXrGjWpnCyTMjE2nkNtnTTOnU4WPTfJsPIUKZEtoS)mSRHfk2q)eXI2QJM6zjunodtf0tmAccTJlghqU7J9JRnAguSh6N4HieUonoRAqKOcchhjdCU9kTEAevKAIkVGEyRDSSfjP7FJYh6UORGno1XgVBAuLvho(oggjU4PYR0HA7upkEZuTY5bSmrKeAM81wV7mxqgXEIwpUYOUVYOogSZnfTxWvtWu5wU4OXp6dENs7I9tDlb2WPYGJIMOkSYCg)idBinyQ(eaLR4lYUytFc64XVNmGPuDqWze7JyE3ovZqGRk9eXIkqhDMd)qEr0NXRWW4i2gnUn(r8GQpJbYrcEkWp(jzyvyF0uvVmHHXtClkWiX4BzqcdDvpXaimGhLXvjhYsuuWz0VgMFPTtnKwJjAQUTmgDWKmrQnXNHbB7VbBWzmApWTxxWedXoAYUrngt84izqPrOn0mUc)asCx4KuqCMP6nmoyQmkVlCIgt8QZyVAi1CN7CHAnGYrKFAYoypRY(oYVn)WX9Rtx)hl3(SKnBDk)kiVsaOsneWNLuCXetHe)bKaz6J1wyBsbvUHEvx4gRfsqfLHGzXy00iNO6q1gipz)tPVAt6QV8ixLama2KYY8SLhHS)baEhLPrXZPB3UyoKNCYo4yYLcyX8DhwN95S0C8lWgkXmQHCStKKRl5LHvYyaGCZHvhlggg6tW4Z0Qaqygaextl6RF6)YmmCobM1C1pwJqk8CqkCkqYEoizNcKCNdsUPaPOZbPOPaj)5GKFkqk(CqkEkqIDCngOWl1xmSkXQtnyv8ACL66J5j81QHkA3vEekpF4ptZBuenG1SzGsHvTm6MmD)gwyZIWDX1jSytcysOaX2Jz7sZFiD79hY2xcxBE8d33)qu8Mtw0YPk39lzRl3CdWuoqhJyUmwK1R8JpxY7Q(2ptjLV8mWRVFZlfzGDiIAueLvrLv3ZBU83Dy7lnwkGQaz5xzHNQUn2Cl3KLN2Al2GgyW1B9xNVkz)W7qvRg3Cd3LuEuqrWvquTnpe0pJwB6DsMtmDzxec6HQ5h3)L9GT6UB9JYRzbOimRoqkxpgq(HIYoi6esiNoxVF1gq0j6zGUdQl3qkFQePTK0kXhw66xNslbrTpacuAjMqquCe(aKIdKyp(gpemZYQYTbpeHvIa(FSYJlrhMoAN6yWxoUE5)PIbTeJkWqRtz0kpTFcCuzzOTffqRNcAc3NYqlt(ox4deDv4dlRXskizgFHXkcr6GiMqcu8dMqgqy9gwsjvWqYf59memH8cWYlSSkaxcx(iEVoRsrFQ6fa5r)pFw40ZXDOfY0zyYYegqSpFSMaaL8lb6Oqcz(kSt56WN0ahdBHJg6czHI1gXuHnoMwBOsizoaB4bRN(GZlWYfrFpkq4IG8KEWamE(qRD0kOO2iSbzQqFrZivxXWXI5UK4RmQ4SzxYSj6HypZ2OYRs71ZNERM)FUKOlPi(IKxeqp4yiO9mdfrcZwaYJFioMpkyTczc0i6OoM3RDMi5iP5xehrBfKDmdfuQ5f64hevoUoCiOd8mTeZQQorxubhJALAcKoLrKrkwrWkQma7IrU3Y7a0Lyjselsebh)vGPZKSYjAhkwC6ccycuycH8DoQqi4jiqlGhK)kHYumZhYNJVFXxWa9kRWsfyOJILleH8dCX7i07JIe8WKLHLWAqpNzPHggkuAb0wmo5ANYlk0wH1OLRFyUYejgvDJMHbfJnrP03f7kkz5rQk7jm8J08nkhRNQKJNZBzdv2i(YHrj3bePoKsfVEW8WmKke6eoCIelIUA2W593TZ3EwDhbq12XZfNfsF2kMV5WFEtEw6(1GRYLChQ(4Z4tNIo)vvr73(13lepIC2vaek0rW58YtjoGpx7MOvldVbUef6bJ7wiRJai37ZKOqZ0qgJj14SToFG(2T9a65zig1RoMxKoa3Qkmlx7Cv(WH8ApAxz5yx4g3b8X)(RF6)CmzDEszYx)0Jp2oeRHj)Hen1DdSo1mGyEzXnEVvJxaatNHGjclWZaL15)f8fsj35c8rbr(qKBgA6FwRdG6Bev5YdqSR7EpKcv2EiWkQvcukAJFsBSajvr1vMQ0W(gk4asRp(i)edE4sUtqBGyXCWVqGtq8jnzAvsNlqTz53SPU1xxFQh4UX7W64dEFblTGVgkVxlIIX(s(yFPStG5xwJ25Bz3HPKmdVc8UKTF(co0s38Prh47Ukc9BA)cPobm0hGoUs3xY3Gw(oROqp19dzfh2pOgN70U2MMaBG3gAWIGYRFbsVlBftiZqBqh3xsM0MDYGuL2cFMB3KEBStO0nDh0bSCoNmOulPFm9VkPC16LwgNXMv0arB2WIwrgEbiUfHARkbn))9ysE6x)0nh3U9RF6x2KvMkhRAPJVkBSM3wQoxDJBNx5LCJStHDQ8p1WLWV2WOClfNUiTUit4zTY9tBpMmFjanddmncaWw1(tyJwXnGRDVZeharSHH9AqRJ1mGQ0zedy9TzV40izCk1gHrQ67t(xrFBbGBnWoSlaIKb82dkcnprnybnzTF)3axc5v9e9Mwglgw8q8Wt(QzkOHKAGSX7gNbQcIvNOktULnunFaO8tXei61uoVVpBF2UKTzycM1kU0EBWXpVrRg26Olu4dNQPb2Z7knKghirnRUWcZlXF0e1Ro2jnTDDSaCbs3jNJ6tFlT(sbSkuY)VaC9QEDZAsG9Q4ktUOnPoa3a5W2T5htc6Js09AB1peW6nDR4)pcW6c71mKFeGvfy)xbUwtVEo)JaSq2S)Ju0gbS6(dPZKa7v2k1xjqvBt9xiVXUD0zsqFu93)ze9ysoSkj)4blKvDVjM7hbC9QETlBsG9kLi6IRd2Rg0brDNMSjb6XyW97W(pcW6TQUnPBsG9kWZqZCTIDn1HTXD7y4Ka(4(n(xHvO8)Bi4m64E9b9hbCvU)HEIUs5APeJYsFBf5)nUs77p3w)iaRY(d2bkSqmSXXMw8Q5y(UFcNPG2ZX(PrwVB6B3UB3X9PDKdWLewoG9orSMiXWkn2sjqQvcfAmP46CD(jvFSDZH8DJFk56ISkRtCYFhbUxqjNjbUxna31XBtXN6Gui7iEAnPiLyzf1NBEuP1OvMZoJKiyIo3CbkyQV3QURXhCMH8Gxs03AbgD0zMjxL4UVzJm7NRJQrQc9QZ5B2NU7fsvF)EivPvP7s3Z8Bj1VhstwtvbTqYUoL2XY6f8XcMS4eqWpSoftM55K8sStJPfhZLAgvGRBnUTIt74XnWs2azMsJxrTEBNKm5xwvBH7oUBjKUwD6MFopzxAvf2AcHtVJ0S)Tg51VzKYjqZ3Gu4Jz9ZK9N5AMUStI682XIyi3UPfJxFskRsRf1RBxDK7g4khyUinPtXxLBDyDUYzZrL1iQrAOduKe(siFN7RF6ra7Lzp)1prPfdGojVQabGNaq08FGRHLJwpJBc9bgVjgYG3Q9wDSumNgkw1vPvs(8edPr(9vfI49j)fASR4EGTMTh5Fc7OBQ1Dug2KToD22S)(VtYHdby4yFYjG2ZC7687oUD7fu00AuDb1iu6A7SQE2AGSfLMNj9VmqZT2anBrD4q6fPwXnCrfW91YzcD4b1y8XuVtIDvT3kuA3JxAZJt6OOwlno0OCsJxDEPdqHMtnwI75vCO0h1iN0mygSbkUPJAvGxGMpMB7R0GsT1ZTdkuwzSN7hS1ingmc7VZmSFrrcHyeqHdJn(Z2Wi(db8wryw1DrHK1(qMteZ9Skw6KjwxF6f0i(sBXWTF05eG6uv9gZ6yUAye3lUOQERgkTvtP4dLbwbFOOH2JEa4NmuaMwfrknYJBqSbyr1CnrolDJmsAFi97aIqbeMJ5tbFg0orniiu4CC)LbEoZkfO68s7t5raqh5ysdWgVGWygD6GyPB4aTY0OWXJJ4MY7KgadNbw(IRKzb6QMZgiZbGoMBfmGocBkUlHEPv3WpZNfTrZAxbbCFXTC77LtJku4kvTywX99JNJu89Uy58PK(eh6KM6gZD9mI7XP0myKaR4Fm31Q51jTvgzqmg5(HhXV2GTpJHdJM4qUT419BmuADzSiXnEUJKGajqAMBGCwbujDbvqLqcrM6g67QAeCKmwfsBuH3iD9M7hSguGz1rNYxDnWwl3eW5Lpb6WC3wL7JUqrok9S1ekAfoPf1S0d00RUiflnvD9inABa7AKt9EdPc6sN9WC)HCW4xwzdB0RhTzT9I9qCgGrh8LbhpMFBGsVpc0VbUah7cjbLdViHUJcjhvJ8L8X(IeQELJRtHn0Me((JPLcrR94NvfOWqvcUUQ49Nwis(08x0Zks83A9Yg9WQE0vxN)nBvzRbtRx3yWx3SZqxqDPp145tH80TbnCOclA1xuMcAg03P9x32KkDfB7ypAPdXmIQ2mPBg533KBCkQU6ydQh5xEwbRiHBCGbiRkm0Ad0WTsQzZr0sAWsRXm2tY2LOFSriujJqyzZ4jlbTOnfym2YGssc326kyJMbMpeC6tqCt0OdpVyBA6ZntNyjgVlOuw1kPm8)Vtb0FmpLbL5BlkpU)s2JfcCHIFF)6lElEhJMnjCEMFRn4q)iiooCOStArdVEC8TH1)LIlb6GzwoJ2xwT9aNK9GiywtgLghpX5fRskbJcxgAuwIrToRaLm7VStcwuqythtUeuyX50IU9L8eeG9Y80eik)lyJHcTbcXU84XfIHely9Qlz1quTeLLT7z4nx0wQ0s(CAs(fjtW5KQvIXxuYqT(JdqD6GILG(gHyJPDt6Sx2hY(7zVCkTWxOSMPQTzIdqdVEiHlKMo1f52236r8nmkDTuFG2EgQM3P620J)SGLtR6bI1GVR)FPaAMwiFmh3QCJfCbh52YZZl7BM5CTd557GBaBg)V)cD4qKz7FBXn)ee7R3hazefJZTP3iD6Mvqgk(M6)Igar9hydd1XoNJM1xWjsmQQ1Axz9MkGmIls(jA44VjRnRr1gjL3xdH7qZXZDqga1LeQwgowGjfLjLhlwwXwRaQRJI(KcuQvx7pP1i)9Byo(Rwazx9DF8UhFZd4t7OjWkkqrMR)LRF4HB)qJpGLNa)W9x)Zx)6BVR(d8F9eGp8(RF7Bo9wgk3)WTVz(J1V1aHQhlq)N)WR(VR)af8n8(x)WhV91Nwon7VWRF4dV9JNGTXz5OlN)URF)1nPKqviBJQHs9POboDpPoadBmMzIY4TOrAilsq3W2Q8rtIP3k60nt(34HMXXFb3fRJ4729f8VttDhxiscZ)v3aRNan67yvruXgl)a(hLIzvPIJRHgSz8bkBt6nOBVzsU4Z4bAgFpv4KzYFgfOfIdSo(a97dl(an1TeMddzqGJ)l(cQqk4dgzjgVjs2noO5eXH(aNjdepbfSaceQvYdXwdd3qdVz4nEg1vfrXhfqVHQCSqM0durRNvvwf8f0V76erfZ7HN(DcC8xmAGTW0cMR(mjh6zl4HqM2BKLPn638ycHyLwO3yeWsjkZNEMBBGJpliuoMTZLJIObmry(ulebn3XZOIqiJ(lKbULPgplu4uHjkpw7zcmG3ovZF8lHkr6qvXzwvff4p5zzoDvdFJhRf0moD5zv15HwQHvlOFvhNvv8fIwWFZePJlsTLsJBOb55IZ0P7isD62ClhiFh3vBzGSrk4)tb1P5J8XdxJvr92wtLw3FvSA2MHHDq3QqanRIB1VvMxGLLU1L)Be0wJXGEmA6uKogxR67Fb1eUR)9gvgGTa(2JPffPKJZLvDV7(gPL1AcABoPHDR7)7tEkB1awrRhlZRi3oD(1m97x43jW2UTuHQQ(RQgWtPgcwSpOz1lQCXI))Jf(1Ge" end function Gladdy:GetClassicProfile() From 033aa260f44e0185945df27cf4f1fedca2b8ee81 Mon Sep 17 00:00:00 2001 From: Sumsebrum Date: Sun, 19 Sep 2021 12:43:20 +0200 Subject: [PATCH 6/6] bump version --- Gladdy.lua | 2 +- Gladdy.toc | 2 +- README.md | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Gladdy.lua b/Gladdy.lua index 35a68b1..6923c67 100644 --- a/Gladdy.lua +++ b/Gladdy.lua @@ -26,7 +26,7 @@ local MAJOR, MINOR = "Gladdy", 4 local Gladdy = LibStub:NewLibrary(MAJOR, MINOR) local L Gladdy.version_major_num = 1 -Gladdy.version_minor_num = 0.21 +Gladdy.version_minor_num = 0.22 Gladdy.version_num = Gladdy.version_major_num + Gladdy.version_minor_num Gladdy.version_releaseType = RELEASE_TYPES.release Gladdy.version = PREFIX .. Gladdy.version_num .. "-" .. Gladdy.version_releaseType diff --git a/Gladdy.toc b/Gladdy.toc index e011806..cfb91f4 100644 --- a/Gladdy.toc +++ b/Gladdy.toc @@ -1,6 +1,6 @@ ## Interface: 20502 ## Title: Gladdy - TBC -## Version: 1.21-Release +## Version: 1.22-Release ## Notes: The most powerful arena AddOn for WoW 2.5.1 ## Author: XiconQoo, DnB_Junkee, Knall ## X-Email: contact me on discord Knall#1751 diff --git a/README.md b/README.md index eaa9f30..7408ec7 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Gladdy - TBC ### The most powerful arena addon for WoW TBC 2.5.1 -## [v1.21-Release Download Here](https://github.com/XiconQoo/Gladdy-TBC/releases/download/v1.21-Release/Gladdy_TBC-Classic_v1.21-Release.zip) +## [v1.22-Release Download Here](https://github.com/XiconQoo/Gladdy-TBC/releases/download/v1.22-Release/Gladdy_TBC-Classic_v1.22-Release.zip) ###### Please consider donating if you like my work @@ -62,6 +62,12 @@ The goal is to make Gladdy highly configurable in it's appearance. Everything ca ### Changes +### v1.22-Release +- fixed import for some localizations not working +- added cooldown number alpha configurations for Auras, BuffsDebuffs, Cooldowns, Diminishings, Racial & Trinket +- grounding totem effect fix +- fixed some buffs/debuffs not being present in BuffsDebuffs + ### v1.21-Release - fixed error when hiding blizzard frames ArenaEnemyFrames related to ElvUI - added Pummel cooldown