From 10d37df8991277e89796b254a69a502b3692e90c Mon Sep 17 00:00:00 2001 From: Quildra Date: Tue, 15 Nov 2022 21:36:59 +0000 Subject: [PATCH] Regular auto-commit at 21:36:59 on 15/11/2022 --- .../AddOns/ElvUI/Core/Defaults/Profile.lua | 64 ++-- .../AddOns/ElvUI/Core/Modules/Bags/Bags.lua | 12 +- .../AddOns/ElvUI/Core/Modules/Bags/Sort.lua | 4 +- .../ElvUI/Core/Modules/Blizzard/Blizzard.lua | 18 +- .../Core/Modules/DataBars/Experience.lua | 18 - .../Core/Modules/DataBars/Reputation.lua | 4 +- .../ElvUI/Core/Modules/DataTexts/Bags.lua | 8 +- .../ElvUI/Core/Modules/DataTexts/Friends.lua | 6 +- .../ElvUI/Core/Modules/Maps/Minimap.lua | 15 +- .../Nameplates/Elements/ClassPower.lua | 3 +- .../ElvUI/Core/Modules/Tooltip/Tooltip.lua | 179 +++++---- .../Modules/UnitFrames/Elements/AuraBars.lua | 2 +- .../Modules/UnitFrames/Elements/CastBar.lua | 90 ++++- .../Modules/UnitFrames/Elements/ClassBars.lua | 2 +- .../UnitFrames/Elements/EnergyManaRegen.lua | 3 +- .../Core/Modules/UnitFrames/UnitFrames.lua | 162 ++++---- Interface/AddOns/ElvUI/ElvUI_Classic.toc | 2 +- Interface/AddOns/ElvUI/ElvUI_Mainline.toc | 6 +- Interface/AddOns/ElvUI/ElvUI_Wrath.toc | 2 +- .../Mainline/Modules/DataTexts/Mastery.lua | 18 +- .../ElvUI/Mainline/Modules/Skins/Bags.lua | 23 +- .../Mainline/Modules/Skins/Communities.lua | 16 +- .../ElvUI/Mainline/Modules/Skins/Loot.lua | 4 +- .../Core/CallbackHandler-1.0/LICENSE.txt | 23 ++ .../LibRangeCheck-2.0/LibRangeCheck-2.0.lua | 21 +- .../Core/oUF/elements/castbar.lua | 59 ++- .../Core/oUF_Plugins/oUF_AuraBars.lua | 2 +- .../ElvUI_Libraries_Classic.toc | 1 - .../ElvUI_Libraries_Mainline.toc | 3 +- .../ElvUI_Libraries/ElvUI_Libraries_Wrath.toc | 1 - Interface/AddOns/ElvUI_Options/Core/Maps.lua | 4 +- .../AddOns/ElvUI_Options/Core/UnitFrames.lua | 12 +- .../ElvUI_Options/ElvUI_Options_Mainline.toc | 2 +- .../AddOns/ElvUI_Options/Locales/deDE.lua | 1 + .../AddOns/ElvUI_Options/Locales/enUS.lua | 1 + .../AddOns/ElvUI_Options/Locales/esMX.lua | 29 +- .../AddOns/ElvUI_Options/Locales/frFR.lua | 1 + .../AddOns/ElvUI_Options/Locales/itIT.lua | 1 + .../AddOns/ElvUI_Options/Locales/koKR.lua | 1 + .../AddOns/ElvUI_Options/Locales/ptBR.lua | 1 + .../AddOns/ElvUI_Options/Locales/ruRU.lua | 1 + .../AddOns/ElvUI_Options/Locales/trTR.lua | 1 + .../AddOns/ElvUI_Options/Locales/zhCN.lua | 1 + .../AddOns/ElvUI_Options/Locales/zhTW.lua | 1 + Interface/AddOns/Rematch/Cards/PetCard.lua | 1 + Interface/AddOns/Rematch/Menus/PetMenus.lua | 19 +- Interface/AddOns/Rematch/Process/PetInfo.lua | 3 +- Interface/AddOns/Rematch/Rematch.toc | 4 +- Interface/AddOns/Rematch/Widgets/Toolbar.lua | 33 +- Interface/AddOns/Rematch/Widgets/Toolbar.xml | 26 +- Interface/AddOns/Rematch/changelog.txt | 6 + Interface/AddOns/WIM/CHANGELOG.md | 12 +- Interface/AddOns/WIM/Modules/Emoticons.lua | 5 + Interface/AddOns/WIM/Modules/URLHandler.lua | 57 +-- Interface/AddOns/WIM/WIM.lua | 2 +- Interface/AddOns/WIM/WIM.toc | 4 +- Interface/AddOns/WIM/WIM_TBC.toc | 2 +- Interface/AddOns/WIM/WIM_Vanilla.toc | 2 +- Interface/AddOns/WIM/WIM_Wrath.toc | 2 +- Interface/AddOns/WeakAuras/CHANGELOG.md | 40 +- Interface/AddOns/WeakAuras/Conditions.lua | 32 +- Interface/AddOns/WeakAuras/Init.lua | 6 +- .../Libs/LibCustomGlow-1.0/LICENSE.md | 339 +++++++++++++++++ .../LibCustomGlow-1.0/LibCustomGlow-1.0.toc | 2 +- .../Libs/LibDBIcon-1.0/LibDBIcon-1.0.lua | 54 ++- .../LibRangeCheck-2.0/LibRangeCheck-2.0.lua | 17 +- .../LibRangeCheck-2.0/LibRangeCheck-2.0.toc | 2 +- Interface/AddOns/WeakAuras/Locales/koKR.lua | 5 +- .../WeakAuras/Media/Textures/spinboxleft.tga | Bin 0 -> 980 bytes .../WeakAuras/Media/Textures/spinboxlefth.tga | Bin 0 -> 980 bytes .../WeakAuras/Media/Textures/spinboxleftp.tga | Bin 0 -> 980 bytes .../Media/Textures/spinboxoverlay.tga | Bin 0 -> 576 bytes .../WeakAuras/Media/Textures/spinboxright.tga | Bin 0 -> 980 bytes .../Media/Textures/spinboxrighth.tga | Bin 0 -> 980 bytes .../Media/Textures/spinboxrightp.tga | Bin 0 -> 980 bytes Interface/AddOns/WeakAuras/Prototypes.lua | 49 ++- .../AddOns/WeakAuras/RegionTypes/Model.lua | 2 +- .../WeakAuras/RegionTypes/RegionPrototype.lua | 6 +- .../AddOns/WeakAuras/RegionTypes/Texture.lua | 4 +- Interface/AddOns/WeakAuras/Types.lua | 233 ++++++------ Interface/AddOns/WeakAuras/Types_Retail.lua | 2 + Interface/AddOns/WeakAuras/Types_Vanilla.lua | 2 + Interface/AddOns/WeakAuras/Types_Wrath.lua | 2 + Interface/AddOns/WeakAuras/WeakAuras.lua | 34 +- Interface/AddOns/WeakAuras/WeakAuras.toc | 4 +- Interface/AddOns/WeakAuras/WeakAuras_TBC.toc | 2 +- .../AddOns/WeakAuras/WeakAuras_Vanilla.toc | 2 +- .../AddOns/WeakAuras/WeakAuras_Wrath.toc | 2 +- .../WeakAurasArchive/WeakAurasArchive.toc | 4 +- .../WeakAurasArchive/WeakAurasArchive_TBC.toc | 2 +- .../WeakAurasArchive_Vanilla.toc | 2 +- .../WeakAurasArchive_Wrath.toc | 2 +- .../WeakAurasModelPaths.toc | 4 +- .../WeakAurasModelPaths_TBC.toc | 2 +- .../WeakAurasModelPaths_Vanilla.toc | 2 +- .../WeakAurasModelPaths_Wrath.toc | 2 +- .../AceGUIWidget-WeakAurasScrollArea.lua | 210 ++++++++++ .../AceGUIWidget-WeakAurasSpinBox.lua | 359 ++++++++++++++++++ .../AceGUIWidget-WeakAurasTextureButton.lua | 75 ++-- .../AddOns/WeakAurasOptions/ActionOptions.lua | 15 + .../WeakAurasOptions/AnimationOptions.lua | 21 + .../AddOns/WeakAurasOptions/AuthorOptions.lua | 5 + .../AddOns/WeakAurasOptions/CommonOptions.lua | 7 + .../WeakAurasOptions/ConditionOptions.lua | 9 + .../WeakAurasOptions/DisplayOptions.lua | 6 + .../AddOns/WeakAurasOptions/Locales/koKR.lua | 8 +- .../OptionsFrames/FrameChooser.lua | 2 +- .../OptionsFrames/MoverSizer.lua | 2 +- .../OptionsFrames/OptionsFrame.lua | 73 ++-- .../OptionsFrames/TexturePicker.lua | 154 ++++++-- .../WeakAurasOptions/OptionsFrames/Update.lua | 18 +- .../RegionOptions/AuraBar.lua | 7 + .../RegionOptions/DynamicGroup.lua | 10 + .../WeakAurasOptions/RegionOptions/Group.lua | 5 + .../WeakAurasOptions/RegionOptions/Icon.lua | 3 + .../WeakAurasOptions/RegionOptions/Model.lua | 12 + .../RegionOptions/ProgressTexture.lua | 10 + .../RegionOptions/StopMotion.lua | 10 +- .../WeakAurasOptions/RegionOptions/Text.lua | 4 + .../RegionOptions/Texture.lua | 24 +- .../SubRegionOptions/Border.lua | 2 + .../SubRegionOptions/Glow.lua | 7 + .../SubRegionOptions/Model.lua | 14 + .../SubRegionOptions/SubText.lua | 6 + .../SubRegionOptions/Tick.lua | 5 + .../WeakAurasOptions/WeakAurasOptions.lua | 2 +- .../WeakAurasOptions/WeakAurasOptions.toc | 6 +- .../WeakAurasOptions/WeakAurasOptions_TBC.toc | 5 +- .../WeakAurasOptions_Vanilla.toc | 5 +- .../WeakAurasOptions_Wrath.toc | 4 +- .../WeakAurasTemplates/Locales/koKR.lua | 8 +- .../WeakAurasTemplates/WeakAurasTemplates.toc | 4 +- .../WeakAurasTemplates_TBC.toc | 2 +- .../WeakAurasTemplates_Vanilla.toc | 2 +- .../WeakAurasTemplates_Wrath.toc | 2 +- 135 files changed, 2244 insertions(+), 746 deletions(-) create mode 100644 Interface/AddOns/ElvUI_Libraries/Core/CallbackHandler-1.0/LICENSE.txt create mode 100644 Interface/AddOns/WeakAuras/Libs/LibCustomGlow-1.0/LICENSE.md create mode 100644 Interface/AddOns/WeakAuras/Media/Textures/spinboxleft.tga create mode 100644 Interface/AddOns/WeakAuras/Media/Textures/spinboxlefth.tga create mode 100644 Interface/AddOns/WeakAuras/Media/Textures/spinboxleftp.tga create mode 100644 Interface/AddOns/WeakAuras/Media/Textures/spinboxoverlay.tga create mode 100644 Interface/AddOns/WeakAuras/Media/Textures/spinboxright.tga create mode 100644 Interface/AddOns/WeakAuras/Media/Textures/spinboxrighth.tga create mode 100644 Interface/AddOns/WeakAuras/Media/Textures/spinboxrightp.tga create mode 100644 Interface/AddOns/WeakAurasOptions/AceGUI-Widgets/AceGUIWidget-WeakAurasScrollArea.lua create mode 100644 Interface/AddOns/WeakAurasOptions/AceGUI-Widgets/AceGUIWidget-WeakAurasSpinBox.lua diff --git a/Interface/AddOns/ElvUI/Core/Defaults/Profile.lua b/Interface/AddOns/ElvUI/Core/Defaults/Profile.lua index e81739954..6cb40e565 100644 --- a/Interface/AddOns/ElvUI/Core/Defaults/Profile.lua +++ b/Interface/AddOns/ElvUI/Core/Defaults/Profile.lua @@ -714,6 +714,12 @@ P.nameplates = { [ 9] = {r = 0.60, g = 0.60, b = 0.60}, -- DEAD [13] = {r = 0.10, g = 0.58, b = 0.28}, -- BATTLEGROUND_FRIENDLY_PVP }, + empoweredCast = { + {r = 1.00, g = 0.26, b = 0.20, a = 0.3}, -- red + {r = 1.00, g = 0.80, b = 0.26, a = 0.3}, -- orange + {r = 1.00, g = 1.00, b = 0.26, a = 0.3}, -- yellow + {r = 0.66, g = 1.00, b = 0.40, a = 0.3}, -- green + }, classResources = { chargedComboPoint = { r = 0.16, g = 0.64, b = 1.0 }, comboPoints = { @@ -733,8 +739,16 @@ P.nameplates = { {r = 0.25, g = 1, b = 0.25}, {r = 0.8, g = 0.4, b = 1} }, - PALADIN = { r = 0.89, g = 0.88, b = 0.06}, - MAGE = { r = 0, g = 0.62, b = 1}, + PALADIN = {r = 0.89, g = 0.88, b = 0.06}, + MAGE = {r = 0, g = 0.62, b = 1.00}, + EVOKER = { + {r = 0.10, g = 0.92, b = 1.00}, + {r = 0.17, g = 0.94, b = 0.84}, + {r = 0.24, g = 0.96, b = 0.69}, + {r = 0.31, g = 0.98, b = 0.53}, + {r = 0.34, g = 0.99, b = 0.45}, + {r = 0.38, g = 1.00, b = 0.38}, + }, MONK = { {r = 0.71, g = 0.76, b = 0.32}, {r = 0.58, g = 0.73, b = 0.36}, @@ -743,6 +757,12 @@ P.nameplates = { {r = 0.27, g = 0.66, b = 0.46}, {r = 0.14, g = 0.63, b = 0.50} }, + SHAMAN = { + {r = .23, g = .45, b = .13}, -- earth + {r = .58, g = .23, b = .10}, -- fire + {r = .19, g = .48, b = .60}, -- water + {r = .42, g = .18, b = .74}, -- air + }, WARLOCK = {r = 0.58, g = 0.51, b = 0.79} }, }, @@ -1694,43 +1714,6 @@ P.unitframe = { additional = {r = 1, g = 1, b = 1, a = 1}, color = {r = 1, g = 1, b = 1, a = 1}, }, - classResources = { - chargedComboPoint = { r = 0.16, g = 0.64, b = 1.0 }, - comboPoints = { - {r = 0.75, g = 0.31, b = 0.31}, - {r = 0.78, g = 0.56, b = 0.31}, - {r = 0.81, g = 0.81, b = 0.31}, - {r = 0.56, g = 0.78, b = 0.31}, - {r = 0.43, g = 0.76, b = 0.31}, - {r = 0.31, g = 0.75, b = 0.31}, - {r = 0.36, g = 0.81, b = 0.54}, - }, - DEATHKNIGHT = { - [-1] = {r = 0.5, g = 0.5, b = 0.5}, - [0] = {r = 0.8, g = 0.1, b = 0.28}, - {r = 1, g = 0.25, b = 0.25}, - {r = 0.25, g = 1, b = 1}, - {r = 0.25, g = 1, b = 0.25}, - {r = 0.8, g = 0.4, b = 1} - }, - PALADIN = {r = 0.89, g = 0.88, b = 0.06}, - MAGE = {r = 0, g = 0.62, b = 1.00}, - MONK = { - {r = 0.71, g = 0.76, b = 0.32}, - {r = 0.58, g = 0.73, b = 0.36}, - {r = 0.49, g = 0.71, b = 0.39}, - {r = 0.39, g = 0.69, b = 0.42}, - {r = 0.27, g = 0.66, b = 0.46}, - {r = 0.14, g = 0.63, b = 0.50} - }, - SHAMAN = { - {r = .23, g = .45, b = .13}, -- earth - {r = .58, g = .23, b = .10}, -- fire - {r = .19, g = .48, b = .60}, -- water - {r = .42, g = .18, b = .74}, -- air - }, - WARLOCK = {r = 0.58, g = 0.51, b = 0.79} - }, frameGlow = { mainGlow = { enable = false, @@ -2066,6 +2049,9 @@ P.unitframe = { }, } +P.unitframe.colors.classResources = CopyTable(P.nameplates.colors.classResources) +P.unitframe.colors.empoweredCast = CopyTable(P.nameplates.colors.empoweredCast) + P.unitframe.units.player.aurabar.enemyAuraType = 'HARMFUL' P.unitframe.units.player.aurabar.friendlyAuraType = 'HELPFUL' P.unitframe.units.player.aurabar.maxDuration = 120 diff --git a/Interface/AddOns/ElvUI/Core/Modules/Bags/Bags.lua b/Interface/AddOns/ElvUI/Core/Modules/Bags/Bags.lua index 5863274da..b6501ed66 100644 --- a/Interface/AddOns/ElvUI/Core/Modules/Bags/Bags.lua +++ b/Interface/AddOns/ElvUI/Core/Modules/Bags/Bags.lua @@ -14,7 +14,6 @@ local BreakUpLargeNumbers = BreakUpLargeNumbers local CreateFrame = CreateFrame local CursorHasItem = CursorHasItem local DepositReagentBank = DepositReagentBank -local SetItemSearch = SetItemSearch local GameTooltip = GameTooltip local GameTooltip_Hide = GameTooltip_Hide local GetBindingKey = GetBindingKey @@ -50,7 +49,6 @@ local SplitContainerItem = SplitContainerItem local StaticPopup_Show = StaticPopup_Show local ToggleFrame = ToggleFrame local UnitAffectingCombat = UnitAffectingCombat -local UseContainerItem = UseContainerItem local IsBagOpen, IsOptionFrameOpen = IsBagOpen, IsOptionFrameOpen local IsShiftKeyDown, IsControlKeyDown = IsShiftKeyDown, IsControlKeyDown @@ -67,6 +65,7 @@ local C_NewItems_IsNewItem = C_NewItems.IsNewItem local C_NewItems_RemoveNewItem = C_NewItems.RemoveNewItem local C_Item_IsBound = C_Item.IsBound +local SetItemSearch = SetItemSearch or (C_Container and C_Container.SetItemSearch) local GetBagSlotFlag = GetBagSlotFlag or (C_Container and C_Container.GetBagSlotFlag) local SetBagSlotFlag = SetBagSlotFlag or (C_Container and C_Container.SetBagSlotFlag) local GetBankBagSlotFlag = GetBankBagSlotFlag or (C_Container and C_Container.GetBankBagSlotFlag) @@ -79,6 +78,7 @@ local GetContainerNumFreeSlots = GetContainerNumFreeSlots or (C_Container and C_ local GetContainerNumSlots = GetContainerNumSlots or (C_Container and C_Container.GetContainerNumSlots) local SetBackpackAutosortDisabled = SetBackpackAutosortDisabled or (C_Container and C_Container.SetBackpackAutosortDisabled) local SetInsertItemsLeftToRight = SetInsertItemsLeftToRight or (C_Container and C_Container.SetInsertItemsLeftToRight) +local UseContainerItem = UseContainerItem or (C_Container and C_Container.UseContainerItem) local CONTAINER_OFFSET_X, CONTAINER_OFFSET_Y = CONTAINER_OFFSET_X, CONTAINER_OFFSET_Y local IG_BACKPACK_CLOSE = SOUNDKIT.IG_BACKPACK_CLOSE @@ -143,7 +143,7 @@ do info.iconFileID, info.stackCount, info.isLocked, info.quality, info.isReadable, info.hasLoot, info.hyperlink, info.isFiltered, info.hasNoValue, info.itemID, info.isBound = GetContainerItemInfo(containerIndex, slotIndex) return info else - return GetContainerItemInfo(containerIndex, slotIndex) + return GetContainerItemInfo(containerIndex, slotIndex) or {} end end @@ -581,7 +581,7 @@ function B:UpdateSlot(frame, bagID, slotID) if not slot then return end local keyring = not E.Retail and (bagID == KEYRING_CONTAINER) - local info = B:GetContainerItemInfo(bagID, slotID) or {} + local info = B:GetContainerItemInfo(bagID, slotID) slot.name, slot.spellID, slot.itemID, slot.rarity, slot.locked, slot.readable, slot.itemLink, slot.isBound = nil, nil, info.itemID, info.quality, info.isLocked, info.isReadable, info.hyperlink, info.isBound slot.isJunk = (slot.rarity and slot.rarity == ITEMQUALITY_POOR) and not info.hasNoValue @@ -702,7 +702,7 @@ function B:Slot_OnEvent(event) elseif event == 'INVENTORY_SEARCH_UPDATE' then if self.BagID and self.SlotID then local info = B:GetContainerItemInfo(self.BagID, self.SlotID) - self.searchOverlay:SetShown(info and info.isFiltered) + self.searchOverlay:SetShown(info.isFiltered) end end end @@ -1337,7 +1337,7 @@ function B:GetGrays(vendor) for bagID = 0, 4 do for slotID = 1, B:GetContainerNumSlots(bagID) do local info = B:GetContainerItemInfo(bagID, slotID) - local itemLink = info and info.hyperlink + local itemLink = info.hyperlink if itemLink and not info.hasNoValue and not B.ExcludeGrays[info.itemID] then local _, _, rarity, _, _, _, _, _, _, _, itemPrice, classID, _, bindType = GetItemInfo(itemLink) diff --git a/Interface/AddOns/ElvUI/Core/Modules/Bags/Sort.lua b/Interface/AddOns/ElvUI/Core/Modules/Bags/Sort.lua index 0e64f5131..ea9ebd5cb 100644 --- a/Interface/AddOns/ElvUI/Core/Modules/Bags/Sort.lua +++ b/Interface/AddOns/ElvUI/Core/Modules/Bags/Sort.lua @@ -421,9 +421,7 @@ function B:GetItemInfo(bag, slot) return GetGuildBankItemInfo(bag - 50, slot) else local info = B:GetContainerItemInfo(bag, slot) - if info then - return info.iconFileID, info.stackCount, info.isLocked - end + return info.iconFileID, info.stackCount, info.isLocked end end diff --git a/Interface/AddOns/ElvUI/Core/Modules/Blizzard/Blizzard.lua b/Interface/AddOns/ElvUI/Core/Modules/Blizzard/Blizzard.lua index d5d929d3c..5deebc317 100644 --- a/Interface/AddOns/ElvUI/Core/Modules/Blizzard/Blizzard.lua +++ b/Interface/AddOns/ElvUI/Core/Modules/Blizzard/Blizzard.lua @@ -67,10 +67,6 @@ function B:Initialize() B:HandleWidgets() B:PositionCaptureBar() - if not E.Classic then - B:PositionVehicleFrame() - end - if E.Retail then B:DisableHelpTip() B:DisableNPE() @@ -86,13 +82,17 @@ function B:Initialize() B:PositionAltPowerBar() B:SkinAltPowerBar() end - elseif E.Classic and E.db.general.objectiveTracker then - B:QuestWatch_MoveFrames() - hooksecurefunc('QuestWatch_Update', B.QuestWatch_AddQuestClick) end - if not (E:IsAddOnEnabled('DugisGuideViewerZ') or E:IsAddOnEnabled('!KalielsTracker')) then - B:MoveObjectiveFrame() + if not E.Classic then + B:PositionVehicleFrame() + + if not (E:IsAddOnEnabled('DugisGuideViewerZ') or E:IsAddOnEnabled('!KalielsTracker')) then + B:MoveObjectiveFrame() + end + elseif E.db.general.objectiveTracker then -- classic check + B:QuestWatch_MoveFrames() + hooksecurefunc('QuestWatch_Update', B.QuestWatch_AddQuestClick) end -- Battle.Net Frame diff --git a/Interface/AddOns/ElvUI/Core/Modules/DataBars/Experience.lua b/Interface/AddOns/ElvUI/Core/Modules/DataBars/Experience.lua index c23bcc736..a1b7ab725 100644 --- a/Interface/AddOns/ElvUI/Core/Modules/DataBars/Experience.lua +++ b/Interface/AddOns/ElvUI/Core/Modules/DataBars/Experience.lua @@ -2,8 +2,6 @@ local E, L, V, P, G = unpack(ElvUI) local DB = E:GetModule('DataBars') local LSM = E.Libs.LSM -local error = error -local type, pairs = type, pairs local min, format = min, format local CreateFrame = CreateFrame local GetXPExhaustion = GetXPExhaustion @@ -158,12 +156,6 @@ function DB:ExperienceBar_QuestXP() else bar.Quest:Hide() end - - if DB.CustomQuestXPWatchers then - for _, func in pairs(DB.CustomQuestXPWatchers) do - func(QuestLogXP) - end - end end function DB:ExperienceBar_OnEnter() @@ -271,13 +263,3 @@ function DB:ExperienceBar() DB:RegisterEvent('ENABLE_XP_GAIN', 'ExperienceBar_Toggle') DB:ExperienceBar_Toggle() end - -function DB:RegisterCustomQuestXPWatcher(name, func) - if not name or not func or type(name) ~= "string" or type(func) ~= "function" then - error("Usage: DB:RegisterCustomQuestXPWatcher(name [string], func [function])") - return - end - - DB.CustomQuestXPWatchers = DB.CustomQuestXPWatchers or {} - DB.CustomQuestXPWatchers[name] = func -end diff --git a/Interface/AddOns/ElvUI/Core/Modules/DataBars/Reputation.lua b/Interface/AddOns/ElvUI/Core/Modules/DataBars/Reputation.lua index 6ec8e168a..7e84330a5 100644 --- a/Interface/AddOns/ElvUI/Core/Modules/DataBars/Reputation.lua +++ b/Interface/AddOns/ElvUI/Core/Modules/DataBars/Reputation.lua @@ -74,9 +74,9 @@ function DB:ReputationBar_Update() local customColors = DB.db.colors.useCustomFactionColors local customReaction = reaction == 9 or reaction == 10 -- 9 is paragon, 10 is renown local color = (customColors or customReaction) and DB.db.colors.factionColors[reaction] or _G.FACTION_BAR_COLORS[reaction] - local alpha = not customColors and DB.db.colors.reputationAlpha + local alpha = (customColors and color.a) or DB.db.colors.reputationAlpha - bar:SetStatusBarColor(color.r, color.g, color.b, alpha or color.a or 1) + bar:SetStatusBarColor(color.r or 1, color.g or 1, color.b or 1, alpha or 1) bar:SetMinMaxValues(minValue, maxValue) bar:SetValue(curValue) diff --git a/Interface/AddOns/ElvUI/Core/Modules/DataTexts/Bags.lua b/Interface/AddOns/ElvUI/Core/Modules/DataTexts/Bags.lua index b32b93364..6930f13fe 100644 --- a/Interface/AddOns/ElvUI/Core/Modules/DataTexts/Bags.lua +++ b/Interface/AddOns/ElvUI/Core/Modules/DataTexts/Bags.lua @@ -3,13 +3,15 @@ local DT = E:GetModule('DataTexts') local format = format local strjoin = strjoin -local GetBagName = GetBagName local ToggleAllBags = ToggleAllBags -local GetContainerNumFreeSlots = GetContainerNumFreeSlots -local GetContainerNumSlots = GetContainerNumSlots local GetInventoryItemQuality = GetInventoryItemQuality local GetInventoryItemTexture = GetInventoryItemTexture local GetItemQualityColor = GetItemQualityColor + +local GetBagName = GetBagName or (C_Container and C_Container.GetBagName) +local GetContainerNumFreeSlots = GetContainerNumFreeSlots or (C_Container and C_Container.GetContainerNumFreeSlots) +local GetContainerNumSlots = GetContainerNumSlots or (C_Container and C_Container.GetContainerNumSlots) + local MAX_WATCHED_TOKENS = MAX_WATCHED_TOKENS or 3 local NUM_BAG_SLOTS = NUM_BAG_SLOTS local CURRENCY = CURRENCY diff --git a/Interface/AddOns/ElvUI/Core/Modules/DataTexts/Friends.lua b/Interface/AddOns/ElvUI/Core/Modules/DataTexts/Friends.lua index d6b77886d..b50eae6b9 100644 --- a/Interface/AddOns/ElvUI/Core/Modules/DataTexts/Friends.lua +++ b/Interface/AddOns/ElvUI/Core/Modules/DataTexts/Friends.lua @@ -144,9 +144,9 @@ local clientList = { RTRO = { index = 11, tag = 'AC', name = 'Arcade Collection'}, WLBY = { index = 12, tag = 'CB4', name = 'Crash Bandicoot 4'}, VIPR = { index = 13, tag = 'BO4', name = 'COD: Black Ops 4'}, - ODIN = { index = 14, tag = 'MW', name = 'COD: Modern Warfare'}, - LAZR = { index = 15, tag = 'MW2', name = 'COD: Modern Warfare 2'}, - AUKS = { index = 16, tag = 'MWII', name = 'COD: Modern Warfare II'}, + ODIN = { index = 14, tag = 'WZ', name = 'COD: Warzone'}, + AUKS = { index = 15, tag = 'WZ2', name = 'COD: Warzone 2'}, + LAZR = { index = 16, tag = 'MW2', name = 'COD: Modern Warfare 2'}, ZEUS = { index = 17, tag = 'CW', name = 'COD: Cold War'}, FORE = { index = 18, tag = 'VG', name = 'COD: Vanguard'}, GRY = { index = 19, tag = 'AR', name = 'Warcraft Arclight Rumble'}, diff --git a/Interface/AddOns/ElvUI/Core/Modules/Maps/Minimap.lua b/Interface/AddOns/ElvUI/Core/Modules/Maps/Minimap.lua index dedf47834..0d2cd9121 100644 --- a/Interface/AddOns/ElvUI/Core/Modules/Maps/Minimap.lua +++ b/Interface/AddOns/ElvUI/Core/Modules/Maps/Minimap.lua @@ -343,6 +343,7 @@ end function M:UpdateSettings() if not M.Initialized then return end + local noCluster = not E.Retail or E.db.general.minimap.clusterDisable E.MinimapSize = E.db.general.minimap.size or Minimap:GetWidth() local panel, holder = _G.MinimapPanel, M.holder @@ -361,7 +362,7 @@ function M:UpdateSettings() MinimapCluster:SetScale(mmScale) MinimapCluster:ClearAllPoints() - if E.db.general.minimap.clusterDisable then + if noCluster then MinimapCluster:Point('TOPRIGHT', _G.UIParent) else MinimapCluster:Point('TOPRIGHT', M.ClusterHolder, 0, offset) @@ -374,7 +375,7 @@ function M:UpdateSettings() M.ClusterBackdrop:SetSize(width, height) M.ClusterHolder:SetSize(width, height) - M.ClusterBackdrop:SetShown(E.db.general.minimap.clusterBackdrop and not E.db.general.minimap.clusterDisable) + M.ClusterBackdrop:SetShown(E.db.general.minimap.clusterBackdrop and not noCluster) else Minimap:SetScale(mmScale) end @@ -389,7 +390,7 @@ function M:UpdateSettings() if Minimap.location then Minimap.location:Width(E.MinimapSize) Minimap.location:FontTemplate(locationFont, locaitonSize, locationOutline) - Minimap.location:SetShown(E.db.general.minimap.locationText == 'SHOW' and E.db.general.minimap.clusterDisable) + Minimap.location:SetShown(E.db.general.minimap.locationText == 'SHOW' and noCluster) end _G.MiniMapMailIcon:SetTexture(E.Media.MailIcons[E.db.general.minimap.icons.mail.texture] or E.Media.MailIcons.Mail3) @@ -399,7 +400,7 @@ function M:UpdateSettings() _G.MinimapZoneText:FontTemplate(locationFont, locaitonSize, locationOutline) _G.TimeManagerClockTicker:FontTemplate(LSM:Fetch('font', E.db.general.minimap.timeFont), E.db.general.minimap.timeFontSize, E.db.general.minimap.timeFontOutline) - if E.db.general.minimap.clusterDisable then + if noCluster then MinimapCluster.ZoneTextButton:Kill() _G.TimeManagerClockButton:Kill() else @@ -420,7 +421,7 @@ function M:UpdateSettings() local instance = difficulty and difficulty.Instance or _G.MiniMapInstanceDifficulty local guild = difficulty and difficulty.Guild or _G.GuildInstanceDifficulty local challenge = difficulty and difficulty.ChallengeMode or _G.MiniMapChallengeMode - if not E.db.general.minimap.clusterDisable then + if not noCluster then if M.ClusterHolder then E:EnableMover(M.ClusterHolder.mover.name) end @@ -655,8 +656,8 @@ function M:Initialize() M.ClusterBackdrop = clusterBackdrop end - Minimap:HookScript('OnEnter', function(mm) if E.db.general.minimap.locationText == 'MOUSEOVER' and E.db.general.minimap.clusterDisable then mm.location:Show() end end) - Minimap:HookScript('OnLeave', function(mm) if E.db.general.minimap.locationText == 'MOUSEOVER' and E.db.general.minimap.clusterDisable then mm.location:Hide() end end) + Minimap:HookScript('OnEnter', function(mm) if E.db.general.minimap.locationText == 'MOUSEOVER' and (not E.Retail or E.db.general.minimap.clusterDisable) then mm.location:Show() end end) + Minimap:HookScript('OnLeave', function(mm) if E.db.general.minimap.locationText == 'MOUSEOVER' and (not E.Retail or E.db.general.minimap.clusterDisable) then mm.location:Hide() end end) Minimap.location = Minimap:CreateFontString(nil, 'OVERLAY') Minimap.location:Point('TOP', Minimap, 'TOP', 0, -2) diff --git a/Interface/AddOns/ElvUI/Core/Modules/Nameplates/Elements/ClassPower.lua b/Interface/AddOns/ElvUI/Core/Modules/Nameplates/Elements/ClassPower.lua index fa62795d6..b15ec5f62 100644 --- a/Interface/AddOns/ElvUI/Core/Modules/Nameplates/Elements/ClassPower.lua +++ b/Interface/AddOns/ElvUI/Core/Modules/Nameplates/Elements/ClassPower.lua @@ -17,6 +17,7 @@ local MAX_POINTS = { -- match to UF.classMaxResourceBar MONK = max(6, MAX_COMBO_POINTS), MAGE = max(4, MAX_COMBO_POINTS), ROGUE = max(7, MAX_COMBO_POINTS), + EVOKER = max(6, MAX_COMBO_POINTS), DRUID = max(5, MAX_COMBO_POINTS) } @@ -41,7 +42,7 @@ function NP:ClassPower_UpdateColor(powerType, rune) local color = colors.DEATHKNIGHT[rune.runeType or 0] NP:ClassPower_SetBarColor(rune, color.r, color.g, color.b) else - local classColor = not classPower and ((isRunes and colors.DEATHKNIGHT) or (powerType == 'COMBO_POINTS' and colors.comboPoints) or (powerType == 'CHI' and colors.MONK)) + local classColor = not classPower and ((isRunes and colors.DEATHKNIGHT) or (powerType == 'COMBO_POINTS' and colors.comboPoints) or (powerType == 'ESSENCE' and colors.EVOKER) or (powerType == 'CHI' and colors.MONK)) for i, bar in ipairs(self) do local color = classPower or (isRunes and classColor[bar.runeType or 0]) or (classColor and classColor[i]) or colors[E.myclass] or fallback NP:ClassPower_SetBarColor(bar, color.r, color.g, color.b) diff --git a/Interface/AddOns/ElvUI/Core/Modules/Tooltip/Tooltip.lua b/Interface/AddOns/ElvUI/Core/Modules/Tooltip/Tooltip.lua index ec4a520f5..2dd31532e 100644 --- a/Interface/AddOns/ElvUI/Core/Modules/Tooltip/Tooltip.lua +++ b/Interface/AddOns/ElvUI/Core/Modules/Tooltip/Tooltip.lua @@ -71,6 +71,9 @@ local UnitReaction = UnitReaction local UnitRealmRelationship = UnitRealmRelationship local UnitSex = UnitSex +local TooltipDataType = Enum.TooltipDataType +local AddTooltipPostCall = TooltipDataProcessor and TooltipDataProcessor.AddTooltipPostCall + local GameTooltip, GameTooltipStatusBar = GameTooltip, GameTooltipStatusBar local C_QuestLog_GetQuestIDForLogIndex = C_QuestLog.GetQuestIDForLogIndex local C_ChallengeMode_GetDungeonScoreRarityColor = C_ChallengeMode and C_ChallengeMode.GetDungeonScoreRarityColor @@ -123,14 +126,20 @@ function TT:GameTooltip_SetDefaultAnchor(tt, parent) statusBar:ClearAllPoints() statusBar:Point('TOPLEFT', tt, 'BOTTOMLEFT', E.Border, -spacing) statusBar:Point('TOPRIGHT', tt, 'BOTTOMRIGHT', -E.Border, -spacing) - statusBar.text:Point('CENTER', statusBar, 0, 0) statusBar.anchoredToTop = nil + + if statusBar.text then + statusBar.text:Point('CENTER', statusBar, 0, 0) + end elseif position == 'TOP' and not statusBar.anchoredToTop then statusBar:ClearAllPoints() statusBar:Point('BOTTOMLEFT', tt, 'TOPLEFT', E.Border, spacing) statusBar:Point('BOTTOMRIGHT', tt, 'TOPRIGHT', -E.Border, spacing) - statusBar.text:Point('CENTER', statusBar, 0, 0) statusBar.anchoredToTop = true + + if statusBar.text then + statusBar.text:Point('CENTER', statusBar, 0, 0) + end end end @@ -178,9 +187,11 @@ function TT:RemoveTrashLines(tt) for i = 3, tt:NumLines() do local tiptext = _G['GameTooltipTextLeft'..i] - local linetext = tiptext:GetText() + local linetext = tiptext and tiptext:GetText() - if linetext == _G.PVP or linetext == _G.FACTION_ALLIANCE or linetext == _G.FACTION_HORDE then + if not linetext then + break + elseif linetext == _G.PVP or linetext == _G.FACTION_ALLIANCE or linetext == _G.FACTION_HORDE then tiptext:SetText('') tiptext:Hide() end @@ -523,13 +534,13 @@ function TT:AddMythicInfo(tt, unit) end end -function TT:GameTooltip_OnTooltipSetUnit(tt) - if tt:IsForbidden() or not TT.db.visibility then return end +function TT:GameTooltip_OnTooltipSetUnit(data) + if self ~= GameTooltip or self:IsForbidden() or not TT.db.visibility then return end - local _, unit = tt:GetUnit() + local _, unit = self:GetUnit() local isPlayerUnit = UnitIsPlayer(unit) - if tt:GetOwner() ~= _G.UIParent and not TT:IsModKeyDown(TT.db.visibility.unitFrames) then - tt:Hide() + if self:GetOwner() ~= _G.UIParent and not TT:IsModKeyDown(TT.db.visibility.unitFrames) then + self:Hide() return end @@ -542,53 +553,56 @@ function TT:GameTooltip_OnTooltipSetUnit(tt) end end - TT:RemoveTrashLines(tt) --keep an eye on this may be buggy + TT:RemoveTrashLines(self) --keep an eye on this may be buggy local isShiftKeyDown = IsShiftKeyDown() local isControlKeyDown = IsControlKeyDown() - local color = TT:SetUnitText(tt, unit, isPlayerUnit) + local color = TT:SetUnitText(self, unit, isPlayerUnit) if TT.db.targetInfo and not isShiftKeyDown and not isControlKeyDown then - TT:AddTargetInfo(tt, unit) + TT:AddTargetInfo(self, unit) end if E.Retail then if TT.db.role then - TT:AddRoleInfo(tt, unit) + TT:AddRoleInfo(self, unit) end if not InCombatLockdown() then if not isShiftKeyDown and (isPlayerUnit and unit ~= 'player') and TT.db.showMount and E.Retail then - TT:AddMountInfo(tt, unit) + TT:AddMountInfo(self, unit) end if TT.db.mythicDataEnable then - TT:AddMythicInfo(tt, unit) + TT:AddMythicInfo(self, unit) end if isShiftKeyDown and color and TT.db.inspectDataEnable then - TT:AddInspectInfo(tt, unit, 0, color.r, color.g, color.b) + TT:AddInspectInfo(self, unit, 0, color.r, color.g, color.b) end end end if unit and not isPlayerUnit and TT:IsModKeyDown() and not (E.Retail and C_PetBattles_IsInBattle()) then - local guid = UnitGUID(unit) or '' + local guid = (data and data.guid) or UnitGUID(unit) or '' local id = tonumber(strmatch(guid, '%-(%d-)%-%x-$'), 10) if id then -- NPC ID's - tt:AddLine(format(IDLine, _G.ID, id)) + self:AddLine(format(IDLine, _G.ID, id)) end end + local statusBar = self.StatusBar if color then - tt.StatusBar:SetStatusBarColor(color.r, color.g, color.b) + statusBar:SetStatusBarColor(color.r, color.g, color.b) else - tt.StatusBar:SetStatusBarColor(0.6, 0.6, 0.6) + statusBar:SetStatusBarColor(0.6, 0.6, 0.6) end - local textWidth = tt.StatusBar.text:GetStringWidth() - if textWidth then - tt:SetMinimumWidth(textWidth) + if statusBar.text then + local textWidth = statusBar.text:GetStringWidth() + if textWidth then + self:SetMinimumWidth(textWidth) + end end end @@ -659,61 +673,69 @@ function TT:EmbeddedItemTooltip_QuestReward(tt) end end -function TT:GameTooltip_OnTooltipSetItem(tt) - if tt:IsForbidden() or not TT.db.visibility then return end +function TT:GameTooltip_OnTooltipSetItem(data) + if self ~= GameTooltip or self:IsForbidden() or not TT.db.visibility then return end - local owner = tt:GetOwner() + local owner = self:GetOwner() local ownerName = owner and owner.GetName and owner:GetName() if ownerName and (strfind(ownerName, 'ElvUI_Container') or strfind(ownerName, 'ElvUI_BankContainer')) and not TT:IsModKeyDown(TT.db.visibility.bags) then - tt:Hide() + self:Hide() return end - local name, link = tt:GetItem() + local itemID, bagCount, bankCount + local modKey = TT:IsModKeyDown() - if not E.Retail and name == '' and _G.CraftFrame and _G.CraftFrame:IsShown() then - local reagentIndex = ownerName and tonumber(strmatch(ownerName, 'Reagent(%d+)')) - if reagentIndex then link = GetCraftReagentItemLink(GetCraftSelectionIndex(), reagentIndex) end - end + if self.GetItem then -- Some tooltips don't have this func. Example - compare tooltip + local name, link = self:GetItem() - if not link then return end + if not E.Retail and name == '' and _G.CraftFrame and _G.CraftFrame:IsShown() then + local reagentIndex = ownerName and tonumber(strmatch(ownerName, 'Reagent(%d+)')) + if reagentIndex then link = GetCraftReagentItemLink(GetCraftSelectionIndex(), reagentIndex) end + end - local modKey = TT:IsModKeyDown() - local itemID, bagCount, bankCount - if TT.db.itemQuality then - local _, _, quality = GetItemInfo(link) - if quality and quality > 1 then - local r, g, b = GetItemQualityColor(quality) - if tt.NineSlice then - tt.NineSlice:SetBorderColor(r, g, b) - else - tt:SetBackdropBorderColor(r, g, b) - end + if not link then return end - tt.qualityChanged = true + if TT.db.itemQuality then + local _, _, quality = GetItemInfo(link) + if quality and quality > 1 then + local r, g, b = GetItemQualityColor(quality) + if self.NineSlice then + self.NineSlice:SetBorderColor(r, g, b) + else + self:SetBackdropBorderColor(r, g, b) + end + + self.qualityChanged = true + end end - end - if modKey then - itemID = format('|cFFCA3C3C%s|r %s', _G.ID, strmatch(link, ':(%w+)')) - end + if modKey then + itemID = format('|cFFCA3C3C%s|r %s', _G.ID, (data and data.id) or strmatch(link, ':(%w+)')) + end - if TT.db.itemCount ~= 'NONE' and (not TT.db.modifierCount or modKey) then - local count = GetItemCount(link) - local total = GetItemCount(link, true) - if TT.db.itemCount == 'BAGS_ONLY' then - bagCount = format(IDLine, L["Count"], count) - elseif TT.db.itemCount == 'BANK_ONLY' then - bankCount = format(IDLine, L["Bank"], total - count) - elseif TT.db.itemCount == 'BOTH' then - bagCount = format(IDLine, L["Count"], count) - bankCount = format(IDLine, L["Bank"], total - count) + if TT.db.itemCount ~= 'NONE' and (not TT.db.modifierCount or modKey) then + local count = GetItemCount(link) + local total = GetItemCount(link, true) + if TT.db.itemCount == 'BAGS_ONLY' then + bagCount = format(IDLine, L["Count"], count) + elseif TT.db.itemCount == 'BANK_ONLY' then + bankCount = format(IDLine, L["Bank"], total - count) + elseif TT.db.itemCount == 'BOTH' then + bagCount = format(IDLine, L["Count"], count) + bankCount = format(IDLine, L["Bank"], total - count) + end + end + elseif modKey then + local id = data and data.id + if id then + itemID = format('|cFFCA3C3C%s|r %s', _G.ID, id) end end - if itemID or bagCount or bankCount then tt:AddLine(' ') end - if itemID or bagCount then tt:AddDoubleLine(itemID or ' ', bagCount or ' ') end - if bankCount then tt:AddDoubleLine(' ', bankCount) end + if itemID or bagCount or bankCount then self:AddLine(' ') end + if itemID or bagCount then self:AddDoubleLine(itemID or ' ', bagCount or ' ') end + if bankCount then self:AddDoubleLine(' ', bankCount) end end function TT:GameTooltip_AddQuestRewardsToTooltip(tt, questID) @@ -812,14 +834,14 @@ function TT:SetUnitAura(tt, unit, index, filter) tt:Show() end -function TT:GameTooltip_OnTooltipSetSpell(tt) - if tt:IsForbidden() or not TT:IsModKeyDown() then return end +function TT:GameTooltip_OnTooltipSetSpell(data) + if (self ~= GameTooltip and self ~= _G.ElvUISpellBookTooltip) or self:IsForbidden() or not TT:IsModKeyDown() then return end - local _, id = tt:GetSpell() + local id = (data and data.id) or select(2, self:GetSpell()) if not id then return end local ID = format(IDLine, _G.ID, id) - for i = 3, tt:NumLines() do + for i = 3, self:NumLines() do local line = _G[format('GameTooltipTextLeft%d', i)] local text = line and line:GetText() if text and strfind(text, ID) then @@ -827,8 +849,8 @@ function TT:GameTooltip_OnTooltipSetSpell(tt) end end - tt:AddLine(ID) - tt:Show() + self:AddLine(ID) + self:Show() end function TT:SetItemRef(link) @@ -972,19 +994,30 @@ function TT:Initialize() TT:SecureHook(GameTooltip, 'SetUnitAura') TT:SecureHook(GameTooltip, 'SetUnitBuff', 'SetUnitAura') TT:SecureHook(GameTooltip, 'SetUnitDebuff', 'SetUnitAura') - TT:SecureHookScript(GameTooltip, 'OnTooltipSetSpell', 'GameTooltip_OnTooltipSetSpell') TT:SecureHookScript(GameTooltip, 'OnTooltipCleared', 'GameTooltip_OnTooltipCleared') - TT:SecureHookScript(GameTooltip, 'OnTooltipSetItem', 'GameTooltip_OnTooltipSetItem') - TT:SecureHookScript(GameTooltip, 'OnTooltipSetUnit', 'GameTooltip_OnTooltipSetUnit') TT:SecureHookScript(GameTooltip.StatusBar, 'OnValueChanged', 'GameTooltipStatusBar_OnValueChanged') - TT:SecureHookScript(_G.ElvUISpellBookTooltip, 'OnTooltipSetSpell', 'GameTooltip_OnTooltipSetSpell') + + if AddTooltipPostCall then + AddTooltipPostCall(TooltipDataType.Spell, TT.GameTooltip_OnTooltipSetSpell) + AddTooltipPostCall(TooltipDataType.Item, TT.GameTooltip_OnTooltipSetItem) + AddTooltipPostCall(TooltipDataType.Unit, TT.GameTooltip_OnTooltipSetUnit) + else + TT:SecureHookScript(GameTooltip, 'OnTooltipSetSpell', TT.GameTooltip_OnTooltipSetSpell) + TT:SecureHookScript(GameTooltip, 'OnTooltipSetItem', TT.GameTooltip_OnTooltipSetItem) + TT:SecureHookScript(GameTooltip, 'OnTooltipSetUnit', TT.GameTooltip_OnTooltipSetUnit) + TT:SecureHookScript(_G.ElvUISpellBookTooltip, 'OnTooltipSetSpell', TT.GameTooltip_OnTooltipSetSpell) + + if not E.Classic then -- what's the replacement in DF + TT:SecureHook(GameTooltip, 'SetCurrencyTokenByID') + end + end + TT:RegisterEvent('MODIFIER_STATE_CHANGED') if E.Retail then TT:SecureHook('EmbeddedItemTooltip_SetSpellWithTextureByID', 'EmbeddedItemTooltip_ID') TT:SecureHook(GameTooltip, 'SetToyByItemID') TT:SecureHook(GameTooltip, 'SetCurrencyToken') - --TT:SecureHook(GameTooltip, 'SetCurrencyTokenByID') -- DF TT:SecureHook(GameTooltip, 'SetBackpackToken') TT:SecureHook('BattlePetToolTip_Show', 'AddBattlePetID') TT:SecureHook('QuestMapLogTitleButton_OnEnter', 'AddQuestID') diff --git a/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/AuraBars.lua b/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/AuraBars.lua index 8024ef2c3..0e6bd0035 100644 --- a/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/AuraBars.lua +++ b/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/AuraBars.lua @@ -16,7 +16,7 @@ function UF:Construct_AuraBars(bar) bar:Point('RIGHT') bar.spark:SetTexture(E.media.blankTex) - bar.spark:SetVertexColor(1, 1, 1, 0.4) + bar.spark:SetVertexColor(0.9, 0.9, 0.9, 0.6) bar.spark:Width(2) bar.icon:CreateBackdrop(nil, nil, nil, nil, true) diff --git a/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/CastBar.lua b/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/CastBar.lua index dcc8c72f1..82480c935 100644 --- a/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/CastBar.lua +++ b/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/CastBar.lua @@ -3,7 +3,8 @@ local UF = E:GetModule('UnitFrames') local LSM = E.Libs.LSM local ElvUF = E.oUF -local unpack, tonumber, abs = unpack, tonumber, abs +local abs, next = abs, next +local unpack, tonumber = unpack, tonumber local CreateFrame = CreateFrame local GetTalentInfo = GetTalentInfo @@ -16,6 +17,76 @@ local UnitSpellHaste = UnitSpellHaste local ticks = {} +do + local pipMapColor = {4, 1, 2, 3} + function UF:CastBar_UpdatePip(pip, stage, texture) + local color = UF.db.colors.empoweredCast[pipMapColor[stage]] + pip.texture:SetVertexColor(color.r, color.g, color.b, pip.pipAlpha) + pip.texture:SetTexture(texture) + end + + local pipMapAlpha = {2, 3, 4, 1} + function UF:UpdatePipStep(stage) -- self is element + local pip = self.Pips[pipMapAlpha[stage]] + if not pip then return end + + pip.texture:SetAlpha(1) + E:UIFrameFadeOut(pip.texture, pip.pipTimer, pip.pipStart, pip.pipFaded) + end +end + +function UF:PostUpdatePip(pip, stage) -- self is element + pip.texture:SetAlpha(pip.pipAlpha or 1) + + local pips = self.Pips + local numStages = self.numStages + local reverse = self:GetReverseFill() + + if stage == numStages then + local firstPip = pips[1] + local anchor = pips[numStages] + if reverse then + firstPip.texture:Point('RIGHT', self, 'LEFT', 0, 0) + firstPip.texture:Point('LEFT', anchor, 3, 0) + else + firstPip.texture:Point('LEFT', self, 'RIGHT', 0, 0) + firstPip.texture:Point('RIGHT', anchor, -3, 0) + end + end + + if stage ~= 1 then + local anchor = pips[stage - 1] + if reverse then + pip.texture:Point('RIGHT', -3, 0) + pip.texture:Point('LEFT', anchor, 3, 0) + else + pip.texture:Point('LEFT', 3, 0) + pip.texture:Point('RIGHT', anchor, -3, 0) + end + end +end + +function UF:CreatePip(stage) + local pip = CreateFrame('Frame', nil, self, 'CastingBarFrameStagePipTemplate') + + pip.BasePip:SetAlpha(0) + + pip.texture = pip:CreateTexture(nil, 'ARTWORK', nil, 2) + pip.texture:Point('BOTTOM') + pip.texture:Point('TOP') + + pip.pipStart = 1.0 -- alpha on hit + pip.pipAlpha = 0.3 -- alpha on init + pip.pipFaded = 0.6 -- alpha when passed + pip.pipTimer = 0.4 -- fading time to passed + + UF.statusbars[pip.texture] = true + + UF:CastBar_UpdatePip(pip, stage, LSM:Fetch('statusbar', UF.db.statusbar)) + + return pip +end + function UF:Construct_Castbar(frame, moverName) local castbar = CreateFrame('StatusBar', '$parent_CastBar', frame) castbar:SetFrameLevel(frame.RaisedElementParent.CastBarLevel) @@ -27,6 +98,10 @@ function UF:Construct_Castbar(frame, moverName) castbar.PostCastStop = UF.PostCastStop castbar.PostCastInterruptible = UF.PostCastInterruptible castbar.PostCastFail = UF.PostCastFail + castbar.UpdatePipStep = UF.UpdatePipStep + castbar.PostUpdatePip = UF.PostUpdatePip + castbar.CreatePip = UF.CreatePip + castbar:SetClampedToScreen(true) castbar:CreateBackdrop(nil, nil, nil, nil, true) @@ -44,13 +119,14 @@ function UF:Construct_Castbar(frame, moverName) castbar.Text:SetWordWrap(false) castbar.Text:FontTemplate() - castbar.Spark_ = castbar:CreateTexture(nil, 'OVERLAY') + castbar.Spark_ = castbar:CreateTexture(nil, 'OVERLAY', nil, 3) castbar.Spark_:SetTexture(E.media.blankTex) - castbar.Spark_:SetVertexColor(1, 1, 1, 0.4) + castbar.Spark_:SetVertexColor(0.9, 0.9, 0.9, 0.6) + castbar.Spark_:SetBlendMode('ADD') castbar.Spark_:Width(2) --Set to castbar.SafeZone - castbar.LatencyTexture = castbar:CreateTexture(nil, 'OVERLAY') + castbar.LatencyTexture = castbar:CreateTexture(nil, 'OVERLAY', nil, 2) castbar.LatencyTexture:SetTexture(E.media.blankTex) castbar.LatencyTexture:SetVertexColor(0.69, 0.31, 0.31, 0.75) @@ -108,6 +184,12 @@ function UF:Configure_Castbar(frame) castbar:SetFrameLevel(db.strataAndLevel.frameLevel) end + --Empowered + local pipTexture = LSM:Fetch('statusbar', UF.db.statusbar) + for stage, pip in next, castbar.Pips do + UF:CastBar_UpdatePip(pip, stage, pipTexture) + end + --Latency if frame.unit == 'player' and db.latency then castbar.SafeZone = castbar.LatencyTexture diff --git a/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/ClassBars.lua b/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/ClassBars.lua index 4ca0f2fa2..ad03dbf9c 100644 --- a/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/ClassBars.lua +++ b/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/ClassBars.lua @@ -71,7 +71,7 @@ function UF:ClassPower_UpdateColor(powerType, rune) local color = colors.DEATHKNIGHT[rune.runeType or 0] UF:ClassPower_SetBarColor(rune, color.r, color.g, color.b, custom_backdrop) else - local classColor = (isRunes and colors.DEATHKNIGHT) or (powerType == 'COMBO_POINTS' and colors.comboPoints) or (powerType == 'CHI' and colors.MONK) or (powerType == 'Totems' and colors.SHAMAN) + local classColor = (isRunes and colors.DEATHKNIGHT) or (powerType == 'COMBO_POINTS' and colors.comboPoints) or (powerType == 'ESSENCE' and colors.EVOKER) or (powerType == 'CHI' and colors.MONK) or (powerType == 'Totems' and colors.SHAMAN) for i, bar in ipairs(self) do local color = (isRunes and classColor[bar.runeType or 0]) or (classColor and classColor[i]) or colors[E.myclass] or fallback UF:ClassPower_SetBarColor(bar, color.r, color.g, color.b, custom_backdrop) diff --git a/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/EnergyManaRegen.lua b/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/EnergyManaRegen.lua index 1c12f2e40..985d42a9b 100644 --- a/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/EnergyManaRegen.lua +++ b/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/Elements/EnergyManaRegen.lua @@ -15,7 +15,8 @@ function UF:Construct_EnergyManaRegen(frame) element.Spark = element:CreateTexture(nil, 'OVERLAY') element.Spark:SetTexture(E.media.blankTex) - element.Spark:SetVertexColor(1, 1, 1, .8) + element.Spark:SetVertexColor(0.9, 0.9, 0.9, 0.6) + element.Spark:SetBlendMode('ADD') element.Spark:Point('RIGHT', barTexture) element.Spark:Point('BOTTOM') element.Spark:Point('TOP') diff --git a/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/UnitFrames.lua b/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/UnitFrames.lua index e14c393be..b9da0a8cd 100644 --- a/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/UnitFrames.lua +++ b/Interface/AddOns/ElvUI/Core/Modules/UnitFrames/UnitFrames.lua @@ -34,7 +34,6 @@ local SELECT_NPC = SOUNDKIT.IG_CHARACTER_NPC_SELECT local SELECT_NEUTRAL = SOUNDKIT.IG_CREATURE_NEUTRAL_SELECT local SELECT_LOST = SOUNDKIT.INTERFACE_SOUND_LOST_TARGET_UNIT local POWERTYPE_ALTERNATE = Enum.PowerType.Alternate or 10 -local MAX_BOSS_FRAMES = 8 -- GLOBALS: Arena_LoadUI @@ -63,6 +62,7 @@ UF.classMaxResourceBar = { -- match to NP ClassPower MAX_POINTS DEATHKNIGHT = 6, PALADIN = 5, WARLOCK = 5, + EVOKER = 6, MONK = 6, MAGE = 4, ROGUE = 7, @@ -414,14 +414,24 @@ function UF:UpdateColors() ElvUF.colors.ComboPoints[i] = E:SetColorTable(ElvUF.colors.ComboPoints[i], db.classResources.comboPoints[i]) end - --Monk, Mage, Paladin and Warlock, Death Knight + if not ElvUF.colors.empoweredCast then + ElvUF.colors.empoweredCast = {} + end + + for i = 1, 4 do + ElvUF.colors.empoweredCast[i] = E:SetColorTable(ElvUF.colors.empoweredCast[i], db.empoweredCast[i]) + end + + --Evoker, Monk, Mage, Paladin and Warlock, Death Knight if not ElvUF.colors.ClassBars then ElvUF.colors.ClassBars = {} end ElvUF.colors.ClassBars.PALADIN = E:SetColorTable(ElvUF.colors.ClassBars.PALADIN, db.classResources.PALADIN) ElvUF.colors.ClassBars.MAGE = E:SetColorTable(ElvUF.colors.ClassBars.MAGE, db.classResources.MAGE) ElvUF.colors.ClassBars.WARLOCK = E:SetColorTable(ElvUF.colors.ClassBars.WARLOCK, db.classResources.WARLOCK) + if not ElvUF.colors.ClassBars.EVOKER then ElvUF.colors.ClassBars.EVOKER = {} end if not ElvUF.colors.ClassBars.MONK then ElvUF.colors.ClassBars.MONK = {} end for i=1, 6 do + ElvUF.colors.ClassBars.EVOKER[i] = E:SetColorTable(ElvUF.colors.ClassBars.EVOKER[i], db.classResources.EVOKER[i]) ElvUF.colors.ClassBars.MONK[i] = E:SetColorTable(ElvUF.colors.ClassBars.MONK[i], db.classResources.MONK[i]) end @@ -1215,60 +1225,50 @@ do end do - local disabledPlates = {} - - local function HandleFrame(baseName, doNotReparent) - local frame - if type(baseName) == 'string' then - frame = _G[baseName] - else - frame = baseName - end + local MAX_PARTY = _G.MEMBERS_PER_RAID_GROUP or _G.MAX_PARTY_MEMBERS or 5 + local MAX_ARENA_ENEMIES = _G.MAX_ARENA_ENEMIES or 5 + local MAX_BOSS_FRAMES = 8 - if not frame then return end - - frame:UnregisterAllEvents() - frame:Hide() + local disabledPlates = {} + local lockedFrames = {} - if not doNotReparent then + -- lock Boss, Party, and Arena + local function LockParent(frame, parent) + if parent ~= E.HiddenFrame then frame:SetParent(E.HiddenFrame) end + end - local petFrame = frame.petFrame or frame.PetFrame - if petFrame then - petFrame:UnregisterAllEvents() - petFrame:SetParent(E.HiddenFrame) - end - - local totFrame = frame.totFrame - if totFrame then - totFrame:UnregisterAllEvents() - totFrame:SetParent(E.HiddenFrame) + local function HandleFrame(frame, doNotReparent) + if type(frame) == 'string' then + frame = _G[frame] end - local health = frame.healthBar or frame.healthbar or frame.HealthBar - if health then - health:UnregisterAllEvents() - end + if not frame then return end - local power = frame.manabar or frame.ManaBar - if power then - power:UnregisterAllEvents() - end + local lockParent = doNotReparent == 1 + if lockParent or not doNotReparent then + frame:SetParent(E.HiddenFrame) - local spell = frame.castBar or frame.spellbar - if spell then - spell:UnregisterAllEvents() + if lockParent and not lockedFrames[frame] then + hooksecurefunc(frame, 'SetParent', LockParent) + lockedFrames[frame] = true + end end - local altpowerbar = frame.powerBarAlt or frame.PowerBarAlt - if altpowerbar then - altpowerbar:UnregisterAllEvents() - end + frame:UnregisterAllEvents() + frame:Hide() - local buffFrame = frame.BuffFrame - if buffFrame then - buffFrame:UnregisterAllEvents() + for _, child in next, { + frame.petFrame or frame.PetFrame, + frame.healthBar or frame.healthbar or frame.HealthBar, + frame.manabar or frame.ManaBar, + frame.castBar or frame.spellbar, + frame.powerBarAlt or frame.PowerBarAlt, + frame.totFrame, + frame.BuffFrame + } do + child:UnregisterAllEvents() end end @@ -1279,20 +1279,20 @@ do local disable = E.private.unitframe.disabledBlizzardFrames if unit == 'player' then if disable.player then - local PlayerFrame = _G.PlayerFrame - HandleFrame(PlayerFrame) + local frame = _G.PlayerFrame + HandleFrame(frame) -- For the damn vehicle support: - PlayerFrame:RegisterEvent('PLAYER_ENTERING_WORLD') - PlayerFrame:RegisterEvent('UNIT_ENTERING_VEHICLE') - PlayerFrame:RegisterEvent('UNIT_ENTERED_VEHICLE') - PlayerFrame:RegisterEvent('UNIT_EXITING_VEHICLE') - PlayerFrame:RegisterEvent('UNIT_EXITED_VEHICLE') + frame:RegisterEvent('PLAYER_ENTERING_WORLD') + frame:RegisterEvent('UNIT_ENTERING_VEHICLE') + frame:RegisterEvent('UNIT_ENTERED_VEHICLE') + frame:RegisterEvent('UNIT_EXITING_VEHICLE') + frame:RegisterEvent('UNIT_EXITED_VEHICLE') -- User placed frames don't animate - PlayerFrame:SetMovable(true) - PlayerFrame:SetUserPlaced(true) - PlayerFrame:SetDontSavePosition(true) + frame:SetMovable(true) + frame:SetUserPlaced(true) + frame:SetDontSavePosition(true) end if E.Retail then @@ -1318,43 +1318,43 @@ do elseif disable.target and unit == 'targettarget' then HandleFrame(_G.TargetFrameToT) elseif disable.boss and strmatch(unit, 'boss%d?$') then + HandleFrame(_G.BossTargetFrameContainer, 1) + local id = strmatch(unit, 'boss(%d)') if id then - HandleFrame('Boss'..id..'TargetFrame') + HandleFrame('Boss'..id..'TargetFrame', true) else for i = 1, MAX_BOSS_FRAMES do - HandleFrame('Boss'..i..'TargetFrame') + HandleFrame('Boss'..i..'TargetFrame', true) end end elseif disable.party and strmatch(unit, 'party%d?$') then - if _G.PartyFrame then -- Retail - _G.PartyFrame:UnregisterAllEvents() - _G.PartyFrame:SetScript('OnShow', nil) + local frame = _G.PartyFrame + if frame then -- Retail + HandleFrame(frame, 1) - for frame in _G.PartyFrame.PartyMemberFramePool:EnumerateActive() do - HandleFrame(frame) + for child in frame.PartyMemberFramePool:EnumerateActive() do + HandleFrame(child, true) end + else + HandleFrame(_G.PartyMemberBackground) + end - HandleFrame(_G.PartyFrame.Background) + local id = strmatch(unit, 'party(%d)') + if id then + HandleFrame('PartyMemberFrame'..id) + HandleFrame('CompactPartyFrameMember'..id) else - local id = strmatch(unit, 'party(%d)') - if id then - HandleFrame('PartyMemberFrame'..id) - HandleFrame('CompactPartyMemberFrame'..id) - else - for i = 1, _G.MAX_PARTY_MEMBERS do - HandleFrame('PartyMemberFrame'..i) - HandleFrame('CompactPartyMemberFrame'..i) - end + for i = 1, MAX_PARTY do + HandleFrame('PartyMemberFrame'..i) + HandleFrame('CompactPartyFrameMember'..i) end - - HandleFrame(_G.PartyMemberBackground) end elseif disable.arena and strmatch(unit, 'arena%d?$') then if _G.ArenaEnemyFramesContainer then -- Retail - _G.ArenaEnemyFramesContainer:UnregisterAllEvents() - _G.ArenaEnemyPrepFramesContainer:UnregisterAllEvents() - _G.ArenaEnemyMatchFramesContainer:UnregisterAllEvents() + HandleFrame(_G.ArenaEnemyFramesContainer, 1) + HandleFrame(_G.ArenaEnemyPrepFramesContainer, 1) + HandleFrame(_G.ArenaEnemyMatchFramesContainer, 1) elseif _G.ArenaEnemyFrames then _G.ArenaEnemyFrames:UnregisterAllEvents() _G.ArenaPrepFrames:UnregisterAllEvents() @@ -1371,12 +1371,12 @@ do -- actually handle the sub frames now local id = strmatch(unit, 'arena(%d)') if id then - HandleFrame('ArenaEnemyMatchFrame'..id) - HandleFrame('ArenaEnemyPrepFrame'..id) + HandleFrame('ArenaEnemyMatchFrame'..id, true) + HandleFrame('ArenaEnemyPrepFrame'..id, true) else - for i = 1, _G.MAX_ARENA_ENEMIES do - HandleFrame('ArenaEnemyMatchFrame'..i) - HandleFrame('ArenaEnemyPrepFrame'..i) + for i = 1, MAX_ARENA_ENEMIES do + HandleFrame('ArenaEnemyMatchFrame'..i, true) + HandleFrame('ArenaEnemyPrepFrame'..i, true) end end end diff --git a/Interface/AddOns/ElvUI/ElvUI_Classic.toc b/Interface/AddOns/ElvUI/ElvUI_Classic.toc index 61efa5a4a..5e50195bb 100644 --- a/Interface/AddOns/ElvUI/ElvUI_Classic.toc +++ b/Interface/AddOns/ElvUI/ElvUI_Classic.toc @@ -1,7 +1,7 @@ ## Title: |cff1784d1ElvUI|r |cfd9b9b9bClassic|r ## Notes: User Interface Replacement ## Author: Elv, Simpy -## Version: 13.01 +## Version: 13.02 ## SavedVariables: ElvDB, ElvPrivateDB ## SavedVariablesPerCharacter: ElvCharacterDB ## OptionalDeps: SharedMedia, Tukui, Masque diff --git a/Interface/AddOns/ElvUI/ElvUI_Mainline.toc b/Interface/AddOns/ElvUI/ElvUI_Mainline.toc index 3f9faba0d..8df64cddb 100644 --- a/Interface/AddOns/ElvUI/ElvUI_Mainline.toc +++ b/Interface/AddOns/ElvUI/ElvUI_Mainline.toc @@ -1,13 +1,13 @@ ## Title: |cff1784d1ElvUI|r ## Notes: User Interface Replacement ## Author: Elv, Simpy -## Version: 13.01 +## Version: 13.02 ## SavedVariables: ElvDB, ElvPrivateDB ## SavedVariablesPerCharacter: ElvCharacterDB ## OptionalDeps: SharedMedia, Tukui, Masque, Blizzard_PetJournal ## RequiredDeps: ElvUI_Libraries -## Interface: 100000 -## X-Interface: 100000 +## Interface: 100002 +## X-Interface: 100002 Core\Load.xml diff --git a/Interface/AddOns/ElvUI/ElvUI_Wrath.toc b/Interface/AddOns/ElvUI/ElvUI_Wrath.toc index e2a3ac9cb..3b0eb7782 100644 --- a/Interface/AddOns/ElvUI/ElvUI_Wrath.toc +++ b/Interface/AddOns/ElvUI/ElvUI_Wrath.toc @@ -1,7 +1,7 @@ ## Title: |cff1784d1ElvUI|r |cfd9b9b9bWrath|r ## Notes: User Interface Replacement ## Author: Elv, Simpy -## Version: 13.01 +## Version: 13.02 ## SavedVariables: ElvDB, ElvPrivateDB ## SavedVariablesPerCharacter: ElvCharacterDB ## OptionalDeps: SharedMedia, Tukui, Masque diff --git a/Interface/AddOns/ElvUI/Mainline/Modules/DataTexts/Mastery.lua b/Interface/AddOns/ElvUI/Mainline/Modules/DataTexts/Mastery.lua index 54a32cc5c..58a0a672c 100644 --- a/Interface/AddOns/ElvUI/Mainline/Modules/DataTexts/Mastery.lua +++ b/Interface/AddOns/ElvUI/Mainline/Modules/DataTexts/Mastery.lua @@ -7,6 +7,7 @@ local GetSpecialization = GetSpecialization local GetSpecializationMasterySpells = GetSpecializationMasterySpells local STAT_CATEGORY_ENHANCEMENTS = STAT_CATEGORY_ENHANCEMENTS local STAT_MASTERY = STAT_MASTERY +local CreateBaseTooltipInfo = CreateBaseTooltipInfo local displayString, lastPanel = '' @@ -17,11 +18,24 @@ local function OnEnter() if primaryTalentTree then local masterySpell, masterySpell2 = GetSpecializationMasterySpells(primaryTalentTree) if masterySpell then - DT.tooltip:AddSpellByID(masterySpell) + if CreateBaseTooltipInfo then + local tooltipInfo = CreateBaseTooltipInfo('GetSpellByID', masterySpell) + tooltipInfo.append = true + DT.tooltip:ProcessInfo(tooltipInfo) + else + DT.tooltip:AddSpellByID(masterySpell) + end end if masterySpell2 then DT.tooltip:AddLine(' ') - DT.tooltip:AddSpellByID(masterySpell2) + + if CreateBaseTooltipInfo then + local tooltipInfo = CreateBaseTooltipInfo('GetSpellByID', masterySpell2) + tooltipInfo.append = true + DT.tooltip:ProcessInfo(tooltipInfo) + else + DT.tooltip:AddSpellByID(masterySpell2) + end end DT.tooltip:Show() diff --git a/Interface/AddOns/ElvUI/Mainline/Modules/Skins/Bags.lua b/Interface/AddOns/ElvUI/Mainline/Modules/Skins/Bags.lua index 4cfe48800..f967a05f2 100644 --- a/Interface/AddOns/ElvUI/Mainline/Modules/Skins/Bags.lua +++ b/Interface/AddOns/ElvUI/Mainline/Modules/Skins/Bags.lua @@ -12,13 +12,12 @@ local CreateFrame = CreateFrame local GetItemInfo = GetItemInfo local GetCVarBool = GetCVarBool local GetItemQualityColor = GetItemQualityColor -local GetContainerItemInfo = GetContainerItemInfo -local GetContainerItemCooldown = GetContainerItemCooldown -local GetContainerItemQuestInfo = GetContainerItemQuestInfo local GetInventoryItemTexture = GetInventoryItemTexture local GetInventorySlotInfo = GetInventorySlotInfo local hooksecurefunc = hooksecurefunc +local GetContainerItemCooldown = GetContainerItemCooldown or (C_Container and C_Container.GetContainerItemCooldown) + local NUM_CONTAINER_FRAMES = NUM_CONTAINER_FRAMES local BACKPACK_TOOLTIP = BACKPACK_TOOLTIP local QUESTS_LABEL = QUESTS_LABEL @@ -283,20 +282,18 @@ local function UpdateBankItem(button) if not button.isBag then local container = button:GetParent():GetID() - local _, _, _, rarity, _, _, itemLink, _, _, itemID = GetContainerItemInfo(container, slotID) - local isQuestItem, questId = GetContainerItemQuestInfo(container, slotID) - button.itemID, button.itemLink = itemID, itemLink - - if itemLink then - button.name, _, button.quality, _, _, button.type = GetItemInfo(itemLink) - if not button.quality then - button.quality = rarity - end + local info = B:GetContainerItemInfo(container, slotID) + local questInfo = B:GetContainerItemQuestInfo(container, slotID) + button.itemID, button.itemLink = info.itemID, info.hyperlink + + if info.hyperlink then + local _ + button.name, _, button.quality, _, _, button.type = GetItemInfo(info.hyperlink) else button.name, button.quality, button.type = nil, nil, nil end - if isQuestItem or questId then + if questInfo.isQuestItem or questInfo.questID then button.type = QUESTS_LABEL end diff --git a/Interface/AddOns/ElvUI/Mainline/Modules/Skins/Communities.lua b/Interface/AddOns/ElvUI/Mainline/Modules/Skins/Communities.lua index e4f34a73e..434b80a1b 100644 --- a/Interface/AddOns/ElvUI/Mainline/Modules/Skins/Communities.lua +++ b/Interface/AddOns/ElvUI/Mainline/Modules/Skins/Communities.lua @@ -529,10 +529,10 @@ function S:Blizzard_Communities() S:HandleButton(RecruitmentDialog.Cancel) S:HandleScrollBar(RecruitmentDialog.RecruitmentMessageFrame.RecruitmentMessageInput.ScrollBar) - -- Notification Settings Dialog - local NotificationSettings = _G.CommunitiesFrame.NotificationSettingsDialog - NotificationSettings:StripTextures() - NotificationSettings:SetTemplate('Transparent') + -- Notification Settings Dialog -- ToDo: Check this if it goes live O.o + --local NotificationSettings = _G.CommunitiesFrame.NotificationSettingsDialog + --NotificationSettings:StripTextures() + --NotificationSettings:SetTemplate('Transparent') S:HandleDropDownBox(CommunitiesFrame.NotificationSettingsDialog.CommunitiesListDropDownMenu) S:HandleCheckBox(CommunitiesFrame.NotificationSettingsDialog.ScrollFrame.Child.QuickJoinButton) @@ -540,6 +540,7 @@ function S:Blizzard_Communities() S:HandleButton(CommunitiesFrame.NotificationSettingsDialog.ScrollFrame.Child.NoneButton) S:HandleButton(CommunitiesFrame.NotificationSettingsDialog.OkayButton) S:HandleButton(CommunitiesFrame.NotificationSettingsDialog.CancelButton) + S:HandleScrollBar(CommunitiesFrame.NotificationSettingsDialog.ScrollFrame.ScrollBar) -- Create Channel Dialog local EditStreamDialog = CommunitiesFrame.EditStreamDialog @@ -573,11 +574,12 @@ function S:Blizzard_Communities() -- Avatar Picker local Avatar = _G.CommunitiesAvatarPickerDialog - Avatar:StripTextures() + Avatar.Selector:StripTextures() Avatar:SetTemplate('Transparent') - S:HandleButton(Avatar.OkayButton) - S:HandleButton(Avatar.CancelButton) + S:HandleTrimScrollBar(Avatar.ScrollBar) + S:HandleButton(Avatar.Selector.OkayButton) + S:HandleButton(Avatar.Selector.CancelButton) -- Invite Frame local TicketManager = _G.CommunitiesTicketManagerDialog diff --git a/Interface/AddOns/ElvUI/Mainline/Modules/Skins/Loot.lua b/Interface/AddOns/ElvUI/Mainline/Modules/Skins/Loot.lua index 794022cc2..69eb37cdb 100644 --- a/Interface/AddOns/ElvUI/Mainline/Modules/Skins/Loot.lua +++ b/Interface/AddOns/ElvUI/Mainline/Modules/Skins/Loot.lua @@ -42,13 +42,15 @@ function S:LootFrame() for _, button in next, { frame.ScrollTarget:GetChildren() } do local item = button.Item if item and not item.backdrop then - item:StripTextures() + --item:StripTextures() -- this will also kill the icon S:HandleIcon(item.icon, true) S:HandleIconBorder(item.IconBorder, item.icon.backdrop) end button.IconQuestTexture:SetAlpha(0) button.BorderFrame:SetAlpha(0) + button.HighlightNameFrame:SetAlpha(0) + button.PushedNameFrame:SetAlpha(0) end end) diff --git a/Interface/AddOns/ElvUI_Libraries/Core/CallbackHandler-1.0/LICENSE.txt b/Interface/AddOns/ElvUI_Libraries/Core/CallbackHandler-1.0/LICENSE.txt new file mode 100644 index 000000000..2908590ff --- /dev/null +++ b/Interface/AddOns/ElvUI_Libraries/Core/CallbackHandler-1.0/LICENSE.txt @@ -0,0 +1,23 @@ +Copyright (c) 2008, Hendrik "nevcairiel" Leppkes + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Interface/AddOns/ElvUI_Libraries/Core/LibRangeCheck-2.0/LibRangeCheck-2.0.lua b/Interface/AddOns/ElvUI_Libraries/Core/LibRangeCheck-2.0/LibRangeCheck-2.0.lua index d8f04f843..7252e83d5 100644 --- a/Interface/AddOns/ElvUI_Libraries/Core/LibRangeCheck-2.0/LibRangeCheck-2.0.lua +++ b/Interface/AddOns/ElvUI_Libraries/Core/LibRangeCheck-2.0/LibRangeCheck-2.0.lua @@ -41,22 +41,16 @@ License: Public Domain -- @class file -- @name LibRangeCheck-2.0 local MAJOR_VERSION = "LibRangeCheck-2.0" -local MINOR_VERSION = tonumber(("$Revision: 214 $"):match("%d+")) + 100000 +local MINOR_VERSION = tonumber(("$Revision: 216 $"):match("%d+")) + 100000 local lib, oldminor = LibStub:NewLibrary(MAJOR_VERSION, MINOR_VERSION) if not lib then return end -local _, _, _, toc = GetBuildInfo() - local isRetail = WOW_PROJECT_ID == WOW_PROJECT_MAINLINE -local isClassic = WOW_PROJECT_ID == WOW_PROJECT_CLASSIC -local isTBC = toc >= 20500 and toc < 30000 -- TODO: Wrath -local isWrath = toc >= 30400 and toc < 40000 -- TODO: Wrath +local isWrath = WOW_PROJECT_ID == WOW_PROJECT_WRATH_CLASSIC -- GLOBALS: LibStub, CreateFrame, C_Map, FriendColor (??), HarmColor (??) -local _G = _G local next = next -local sort = sort local type = type local wipe = wipe local print = print @@ -119,10 +113,18 @@ local InteractLists = { local MeleeRange = 2 local FriendSpells, HarmSpells, ResSpells, PetSpells = {}, {}, {}, {} -for _, n in ipairs({ 'DEATHKNIGHT', 'DEMONHUNTER', 'DRUID', 'HUNTER', 'SHAMAN', 'MAGE', 'PALADIN', 'PRIEST', 'WARLOCK', 'WARRIOR', 'MONK', 'ROGUE' }) do +for _, n in ipairs({ 'EVOKER', 'DEATHKNIGHT', 'DEMONHUNTER', 'DRUID', 'HUNTER', 'SHAMAN', 'MAGE', 'PALADIN', 'PRIEST', 'WARLOCK', 'WARRIOR', 'MONK', 'ROGUE' }) do FriendSpells[n], HarmSpells[n], ResSpells[n], PetSpells[n] = {}, {}, {}, {} end +-- Evoker +tinsert(HarmSpells.EVOKER, 369819) -- Disintegrate (25 yards) + +tinsert(FriendSpells.EVOKER, 361469) -- Living Flame (25 yards) +tinsert(FriendSpells.EVOKER, 360823) -- Naturalize (Preservation) (30 yards) + +tinsert(ResSpells.EVOKER, 361227) -- Return (40 yards) + -- Death Knights tinsert(HarmSpells.DEATHKNIGHT, 49576) -- Death Grip (30 yards) tinsert(HarmSpells.DEATHKNIGHT, 47541) -- Death Coil (Unholy) (40 yards) @@ -292,6 +294,7 @@ if not isRetail then tinsert(HarmSpells.WARLOCK, 172) -- Corruption (30 yards, level 4, rank 1) tinsert(HarmSpells.WARLOCK, 348) -- Immolate (30 yards, level 1, rank 1) tinsert(HarmSpells.WARLOCK, 17877) -- Shadowburn (Destruction) (20 yards) + tinsert(HarmSpells.WARLOCK, 18223) -- Curse of Exhaustion (Affliction) (30/33/36/35/38/42 yards) end tinsert(ResSpells.WARLOCK, 20707) -- Soulstone (40 yards) diff --git a/Interface/AddOns/ElvUI_Libraries/Core/oUF/elements/castbar.lua b/Interface/AddOns/ElvUI_Libraries/Core/oUF/elements/castbar.lua index 73f78faf5..31a538d98 100644 --- a/Interface/AddOns/ElvUI_Libraries/Core/oUF/elements/castbar.lua +++ b/Interface/AddOns/ElvUI_Libraries/Core/oUF/elements/castbar.lua @@ -96,6 +96,7 @@ local INTERRUPTED = _G.INTERRUPTED or 'Interrupted' local CASTBAR_STAGE_DURATION_INVALID = -1 -- defined in FrameXML/CastingBarFrame.lua -- ElvUI block +local wipe = wipe local next = next local select = select local CreateFrame = CreateFrame @@ -130,6 +131,8 @@ local function resetAttributes(self) self.spellID = nil self.spellName = nil -- ElvUI + wipe(self.stagePoints) + for _, pip in next, self.Pips do pip:Hide() end @@ -144,6 +147,8 @@ local function UpdatePips(element, numStages) local stageMaxValue = element.max * 1000 local isHoriz = element:GetOrientation() == 'HORIZONTAL' local elementSize = isHoriz and element:GetWidth() or element:GetHeight() + element.numStages = numStages + element.curStage = -1 -- dummy for stage = 1, numStages do local duration @@ -155,6 +160,7 @@ local function UpdatePips(element, numStages) if(duration > CASTBAR_STAGE_DURATION_INVALID) then stageTotalDuration = stageTotalDuration + duration + element.stagePoints[stage] = stageTotalDuration local portion = stageTotalDuration / stageMaxValue local offset = elementSize * portion @@ -198,6 +204,10 @@ local function UpdatePips(element, numStages) pip:SetPoint('RIGHT', element, 'BOTTOMRIGHT', 0, offset) end end + + if element.PostUpdatePip then -- ElvUI + element:PostUpdatePip(pip, stage) + end end end end @@ -224,6 +234,14 @@ local function CastStart(self, real, unit, castGUID) return end + element.casting = event == 'UNIT_SPELLCAST_START' + element.channeling = event == 'UNIT_SPELLCAST_CHANNEL_START' + element.empowering = event == 'UNIT_SPELLCAST_EMPOWER_START' + + if element.empowering then + endTime = endTime + GetUnitEmpowerHoldAtMaxTime(unit) + end + endTime = endTime / 1000 startTime = startTime / 1000 @@ -231,20 +249,12 @@ local function CastStart(self, real, unit, castGUID) element.startTime = startTime element.delay = 0 - element.casting = event == 'UNIT_SPELLCAST_START' - element.channeling = event == 'UNIT_SPELLCAST_CHANNEL_START' - element.empowering = event == 'UNIT_SPELLCAST_EMPOWER_START' - element.notInterruptible = notInterruptible element.holdTime = 0 element.castID = castID element.spellID = spellID element.spellName = name -- ElvUI - if element.empowering then - endTime = endTime + GetUnitEmpowerHoldAtMaxTime(unit) - end - if element.channeling then element.duration = endTime - GetTime() else @@ -463,6 +473,27 @@ local function CastInterruptible(self, event, unit) end end +local function OnUpdateStage(element) + if element.UpdatePipStep then + local maxStage = 0 + local stageValue = element.duration * 1000 + for i = 1, element.numStages do + local step = element.stagePoints[i] + if not step or stageValue < step then + break + else + maxStage = i + end + end + + if maxStage ~= element.curStage then + element:UpdatePipStep(maxStage) + + element.curStage = maxStage + end + end +end + local function onUpdate(self, elapsed) self.elapsed = (self.elapsed or 0) + elapsed @@ -513,6 +544,10 @@ local function onUpdate(self, elapsed) end end + if(self.empowering) then + OnUpdateStage(self) + end + self.elapsed = 0 end @@ -578,7 +613,13 @@ local function Enable(self, unit) -- end block element.holdTime = 0 - element.Pips = {} + + if not element.Pips then + element.Pips = {} + end + if not element.stagePoints then + element.stagePoints = {} + end element:SetScript('OnUpdate', element.OnUpdate or onUpdate) diff --git a/Interface/AddOns/ElvUI_Libraries/Core/oUF_Plugins/oUF_AuraBars.lua b/Interface/AddOns/ElvUI_Libraries/Core/oUF_Plugins/oUF_AuraBars.lua index 7fce79936..f9c0a8b04 100644 --- a/Interface/AddOns/ElvUI_Libraries/Core/oUF_Plugins/oUF_AuraBars.lua +++ b/Interface/AddOns/ElvUI_Libraries/Core/oUF_Plugins/oUF_AuraBars.lua @@ -74,7 +74,7 @@ local function createAuraBar(element, index) local spark = bar:CreateTexture(nil, "OVERLAY", nil); spark:SetTexture([[Interface\CastingBar\UI-CastingBar-Spark]]) spark:SetWidth(12) - spark:SetBlendMode("ADD") + spark:SetBlendMode('ADD') spark:SetPoint('CENTER', bar:GetStatusBarTexture(), 'RIGHT') local icon = bar:CreateTexture(nil, 'ARTWORK') diff --git a/Interface/AddOns/ElvUI_Libraries/ElvUI_Libraries_Classic.toc b/Interface/AddOns/ElvUI_Libraries/ElvUI_Libraries_Classic.toc index 2a3fd0ea8..eb6d7ea7d 100644 --- a/Interface/AddOns/ElvUI_Libraries/ElvUI_Libraries_Classic.toc +++ b/Interface/AddOns/ElvUI_Libraries/ElvUI_Libraries_Classic.toc @@ -3,7 +3,6 @@ ## Author: Elv, Simpy ## Version: 1.00 ## Interface: 11403 -## X-Interface: 11403 ## X-oUF: ElvUF Classic\Libs.xml diff --git a/Interface/AddOns/ElvUI_Libraries/ElvUI_Libraries_Mainline.toc b/Interface/AddOns/ElvUI_Libraries/ElvUI_Libraries_Mainline.toc index fae869feb..754e3c11b 100644 --- a/Interface/AddOns/ElvUI_Libraries/ElvUI_Libraries_Mainline.toc +++ b/Interface/AddOns/ElvUI_Libraries/ElvUI_Libraries_Mainline.toc @@ -2,8 +2,7 @@ ## Notes: Libraries that power ElvUI ## Author: Elv, Simpy ## Version: 1.00 -## Interface: 100000 -## X-Interface: 100000 +## Interface: 100002 ## X-oUF: ElvUF Mainline\Libs.xml diff --git a/Interface/AddOns/ElvUI_Libraries/ElvUI_Libraries_Wrath.toc b/Interface/AddOns/ElvUI_Libraries/ElvUI_Libraries_Wrath.toc index c0611e4f2..6b8e20007 100644 --- a/Interface/AddOns/ElvUI_Libraries/ElvUI_Libraries_Wrath.toc +++ b/Interface/AddOns/ElvUI_Libraries/ElvUI_Libraries_Wrath.toc @@ -3,7 +3,6 @@ ## Author: Elv, Simpy ## Version: 1.00 ## Interface: 30400 -## X-Interface: 30400 ## X-oUF: ElvUF Wrath\Libs.xml diff --git a/Interface/AddOns/ElvUI_Options/Core/Maps.lua b/Interface/AddOns/ElvUI_Options/Core/Maps.lua index a0bda3c9a..d6d5e300a 100644 --- a/Interface/AddOns/ElvUI_Options/Core/Maps.lua +++ b/Interface/AddOns/ElvUI_Options/Core/Maps.lua @@ -49,8 +49,8 @@ Maps.args.worldMap.args.coordinatesGroup.args.yOffset = ACH:Range(L["Y-Offset"], Maps.args.minimap = ACH:Group(L["Minimap"], nil, 2, 'tab', function(info) return E.db.general.minimap[info[#info]] end, function(info, value) E.db.general.minimap[info[#info]] = value; MM:UpdateSettings() end) Maps.args.minimap.args.enable = ACH:Toggle(L["Enable"], L["Enable/Disable the minimap. |cffFF3333Warning: This will prevent you from seeing the minimap datatexts.|r"], 1, nil, nil, nil, function(info) return E.private.general.minimap[info[#info]] end, function(info, value) E.private.general.minimap[info[#info]] = value; E.ShowPopup = true end) -Maps.args.minimap.args.clusterDisable = ACH:Toggle(L["Disable Cluster"], nil, 2, nil, nil, nil, function(info) return E.db.general.minimap[info[#info]] end, function(info, value) E.db.general.minimap[info[#info]] = value; MM:UpdateSettings(); E.ShowPopup = true end) -Maps.args.minimap.args.clusterBackdrop = ACH:Toggle(L["Cluster Backdrop"], nil, 3, nil, nil, nil, function(info) return E.db.general.minimap[info[#info]] end, function(info, value) E.db.general.minimap[info[#info]] = value; MM:UpdateSettings() end, function() return E.db.general.minimap.clusterDisable end) +Maps.args.minimap.args.clusterDisable = ACH:Toggle(L["Disable Cluster"], nil, 2, nil, nil, nil, function(info) return E.db.general.minimap[info[#info]] end, function(info, value) E.db.general.minimap[info[#info]] = value; MM:UpdateSettings(); E.ShowPopup = true end, nil, not E.Retail) +Maps.args.minimap.args.clusterBackdrop = ACH:Toggle(L["Cluster Backdrop"], nil, 3, nil, nil, nil, function(info) return E.db.general.minimap[info[#info]] end, function(info, value) E.db.general.minimap[info[#info]] = value; MM:UpdateSettings() end, function() return E.db.general.minimap.clusterDisable end, not E.Retail) Maps.args.minimap.args.spacer1 = ACH:Spacer(5) Maps.args.minimap.args.size = ACH:Range(L["Size"], L["Adjust the size of the minimap."], 6, { min = 24, max = 500, step = 1 }, nil, nil, nil, function() return not E.private.general.minimap.enable end) Maps.args.minimap.args.scale = ACH:Range(L["Scale"], L["Adjust the scale of the minimap and also the pins. Eg: Quests, Resource nodes, Group members"], 7, { min = .5, max = 2, step = .01, isPercent = true }, nil, nil, nil, function() return not E.private.general.minimap.enable end) diff --git a/Interface/AddOns/ElvUI_Options/Core/UnitFrames.lua b/Interface/AddOns/ElvUI_Options/Core/UnitFrames.lua index d89854810..1c40f2ea1 100644 --- a/Interface/AddOns/ElvUI_Options/Core/UnitFrames.lua +++ b/Interface/AddOns/ElvUI_Options/Core/UnitFrames.lua @@ -70,6 +70,7 @@ for i = 1, GetNumClasses() do end local roles = { TANK = L["Tank"] , HEALER = L["Healer"], DAMAGER = L["DPS"] } +local roman = { 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX' } -- 1 to 20 ----------------------------------------------------------------------- -- OPTIONS TABLES @@ -1070,6 +1071,13 @@ Colors.castBars.args.castColor = ACH:Color(function() return (E.Retail or E.Wrat Colors.castBars.args.castNoInterrupt = ACH:Color(L["Non-Interruptible"], nil, 10, nil, nil, nil, nil, nil, not (E.Retail or E.Wrath)) Colors.castBars.args.castInterruptedColor = ACH:Color(L["Interrupted"], nil, 11, nil, nil, nil, nil, nil, not (E.Retail or E.Wrath)) +Colors.castBars.args.empowerStage = ACH:Group(L["Empower Stages"], nil, 20, nil, function(info) local i = tonumber(info[#info]); local t, d = E.db.unitframe.colors.empoweredCast[i], P.unitframe.colors.empoweredCast[i] return t.r, t.g, t.b, 1, d.r, d.g, d.b, 1 end, function(info, r, g, b) local t = E.db.unitframe.colors.empoweredCast[tonumber(info[#info])] t.r, t.g, t.b = r, g, b UF:Update_AllFrames() end, nil, not E.Retail) +Colors.castBars.args.empowerStage.inline = true + +for i = 1, 4 do + Colors.castBars.args.empowerStage.args[''..i] = ACH:Color(roman[i]) +end + Colors.auras = ACH:Group(L["Auras"], nil, nil) Colors.auras.args.auraByDispels = ACH:Toggle(L["Borders By Dispel"], nil, 1) Colors.auras.args.auraByType = ACH:Toggle(L["Borders By Type"], nil, 2) @@ -1177,10 +1185,10 @@ Colors.classResourceGroup.args.CHI_POWER.inline = true for i = 1, 7 do if i ~= 7 then - Colors.classResourceGroup.args.CHI_POWER.args[''..i] = ACH:Color(L["CHI_POWER"]..' #'..i) + Colors.classResourceGroup.args.CHI_POWER.args[''..i] = ACH:Color(roman[i]) end - Colors.classResourceGroup.args.COMBO_POINTS.args[''..i] = ACH:Color(L["COMBO_POINTS"]..' #'..i) + Colors.classResourceGroup.args.COMBO_POINTS.args[''..i] = ACH:Color(roman[i]) end Colors.classResourceGroup.args.RUNES = ACH:Group(L["RUNES"], nil, 4, nil, function(info) local i = tonumber(info[#info]); local t, d = E.db.unitframe.colors.classResources.DEATHKNIGHT[i], P.unitframe.colors.classResources.DEATHKNIGHT[i] return t.r, t.g, t.b, t.a, d.r, d.g, d.b end, function(info, r, g, b) local t = E.db.unitframe.colors.classResources.DEATHKNIGHT[tonumber(info[#info])] t.r, t.g, t.b = r, g, b UF:Update_AllFrames() end, nil, not (E.Retail or E.Wrath)) diff --git a/Interface/AddOns/ElvUI_Options/ElvUI_Options_Mainline.toc b/Interface/AddOns/ElvUI_Options/ElvUI_Options_Mainline.toc index b576e8e88..948c44a4d 100644 --- a/Interface/AddOns/ElvUI_Options/ElvUI_Options_Mainline.toc +++ b/Interface/AddOns/ElvUI_Options/ElvUI_Options_Mainline.toc @@ -2,7 +2,7 @@ ## Notes: Powers the configuration window.|n|cffff3333Does not store any profile data.|r ## Author: Elv, Simpy ## Version: 1.09 -## Interface: 100000 +## Interface: 100002 ## RequiredDeps: ElvUI ## LoadOnDemand: 1 diff --git a/Interface/AddOns/ElvUI_Options/Locales/deDE.lua b/Interface/AddOns/ElvUI_Options/Locales/deDE.lua index 2d383ced8..3ce8e4c22 100644 --- a/Interface/AddOns/ElvUI_Options/Locales/deDE.lua +++ b/Interface/AddOns/ElvUI_Options/Locales/deDE.lua @@ -1,6 +1,7 @@ -- German localization file for deDE. local L = ElvUI[1].Libs.ACL:NewLocale("ElvUI", "deDE") +L["Empower Stages"] = true L["Faded Charging Rune"] = true L["Abbreviate Name"] = "Name abkürzen" L["Max Allowed Groups"] = "Max. zulässige Gruppen" diff --git a/Interface/AddOns/ElvUI_Options/Locales/enUS.lua b/Interface/AddOns/ElvUI_Options/Locales/enUS.lua index 25f133905..d08a3e4c6 100644 --- a/Interface/AddOns/ElvUI_Options/Locales/enUS.lua +++ b/Interface/AddOns/ElvUI_Options/Locales/enUS.lua @@ -1,6 +1,7 @@ -- English localization file for enUS and enGB. local L = ElvUI[1].Libs.ACL:NewLocale("ElvUI", "enUS", true, true) +L["Empower Stages"] = true L["%s and then %s"] = true L["|cffFF3333This does not work in Instances or Garrisons!|r"] = true L["|cffFF3333This is for information. This will not change the tags in the UI.|r"] = true diff --git a/Interface/AddOns/ElvUI_Options/Locales/esMX.lua b/Interface/AddOns/ElvUI_Options/Locales/esMX.lua index d7575dba1..70e1dc5a3 100644 --- a/Interface/AddOns/ElvUI_Options/Locales/esMX.lua +++ b/Interface/AddOns/ElvUI_Options/Locales/esMX.lua @@ -1,6 +1,7 @@ -- Spanish localization file for esES and esMX. local L = ElvUI[1].Libs.ACL:NewLocale("ElvUI", "esMX") +L["Empower Stages"] = "Potenciar Etapas" L["%s and then %s"] = "%s y entonces %s" L["|cffFF3333This does not work in Instances or Garrisons!|r"] = true L["|cffFF3333This is for information. This will not change the tags in the UI.|r"] = true @@ -11,27 +12,27 @@ L["24-Hour Time"] = "Tiempo de 24 horas" L["2D"] = "2D" L["3D"] = "3D" L["Abbreviate Name"] = "Abreviar el Nombre" -L["Above Chat (Inside)"] = true -L["Above Chat"] = "Arriba del Chat" +L["Above Chat (Inside)"] = "Arriba Chat (Interior)" +L["Above Chat"] = "Arriba Chat" L["Above"] = "Encima" -L["Absorb Style"] = true +L["Absorb Style"] = "Absorber el Estilo" L["Absorbs"] = "Absorciones" L["Accept Invites"] = "Aceptar Invitaciones" L["ACHIEVEMENTS"] = "Logros" -L["Action Button Glow"] = true +L["Action Button Glow"] = "Brillo del boton de accion" L["Action Paging"] = "Paginación" L["ActionBars"] = "Barras de Acción" L["Actions"] = "Acciones" L["Add / Remove"] = "Añadir / Quitar" -L["Add a Item Name or ID to the list."] = true +L["Add a Item Name or ID to the list."] = "Añadir un nombre o ID de objetos a la lista." L["Add a Name or NPC ID to the list."] = "Agregue un nombre o ID de NPC a la lista." L["Add a spell to the filter."] = "Añade un hechizo al filtro." L["Add an item or search syntax to the ignored list. Items matching the search syntax will be ignored."] = "Agregue un objetos o una sintaxis de búsqueda a la lista ignorada. Los objetos que coincidan con la sintaxis de búsqueda serán ignorados." L["Add Currency by ID"] = "Agregar ID de moneda" -L["Add Currency"] = true -L["Add Current"] = "Agregar corriente" +L["Add Currency"] = "Añadir Moneda" +L["Add Current"] = "Agregar Corriente" L["Add Instance ID"] = "Agregar ID de instancia" -L["Add Item Name or ID"] = true +L["Add Item Name or ID"] = "Anadir un nombre o ID de objetos." L["Add Item or Search Syntax"] = "Agregar objetos o sintaxis de búsqueda" L["Add Map ID"] = "Agregar ID de mapa" L["Add Name or NPC ID"] = "Agregar nombre o ID de NPC" @@ -41,23 +42,23 @@ L["Add Spell ID or Name"] = "Agregar nombre o ID de hechizo" L["Add SpellID"] = "Añadir ID de Hechizo" L["Add Subzone Name"] = "Agregar nombre de subzona" L["Add Zone Name"] = "Agregar nombre de zona" -L["Add"] = true +L["Add"] = "Añadir" L["Added Instance ID: %s"] = "ID de instancia agregado: %s" L["Added Map ID: %s"] = "ID de mapa agregado: %s" L["Added Subzone Name: %s"] = "Nombre de subzona agregado: %s" L["Added Zone Name: %s"] = "Nombre de zona agregado: %s" L["Additional Power Prediction Color"] = "Color de predicción de poder adicional" -L["Additional Power"] = true +L["Additional Power"] = "Espaciado Energía." L["Additional spacing between each individual group."] = "Espaciado adicional entre cada grupo individual." L["Additive Blend"] = "Mezcla Aditiva" L["AddOn Manager"] = "Gestor de Complementos" L["Adds an arrow infront of the chat lines to copy the entire line."] = "Agrega una flecha frente a las líneas de chat para copiar toda la línea." -L["Adjust the height of your left chat panel."] = true +L["Adjust the height of your left chat panel."] = "Ajuste la altura del panel de chat izquierda." L["Adjust the height of your right chat panel."] = "Ajuste la altura del panel de chat derecho." L["Adjust the size of the minimap."] = "Ajusta el tamaño del minimapa." L["Adjust the width of the bag frame."] = "Ajustar el ancho del marco de las bolsas." L["Adjust the width of the bank frame."] = "Ajustar el ancho del marco del banco." -L["Adjust the width of your left chat panel."] = true +L["Adjust the width of your left chat panel."] = "Ajusta el ancho del panel de chat izquierda." L["Adjust the width of your right chat panel."] = "Ajusta el ancho del panel de chat derecho." L["ADVENTURE_MAP_TITLE"] = "Mapa de exploración" L["Alert Frames"] = "Alertas" @@ -177,8 +178,8 @@ L["BATTLEFIELDS"] = "Campos de batalla" L["Battleground Friendly"] = "Campo de Batalla Amistoso" L["Battleground Texts"] = "Textos de los Campos de Batalla" L["Begin a new row or column after this many auras."] = "Empieza una nueva fila o columna después de estas auras." -L["Below Chat (Inside)"] = true -L["Below Chat"] = "Debajo del Chat" +L["Below Chat (Inside)"] = "Debajo Chat (Interior)" +L["Below Chat"] = "Debajo Chat" L["Below"] = "Debajo" L["BG Map"] = "Mapa de CB" L["BG Score"] = "Puntuación de CB" diff --git a/Interface/AddOns/ElvUI_Options/Locales/frFR.lua b/Interface/AddOns/ElvUI_Options/Locales/frFR.lua index f5b178933..0fc0635c4 100644 --- a/Interface/AddOns/ElvUI_Options/Locales/frFR.lua +++ b/Interface/AddOns/ElvUI_Options/Locales/frFR.lua @@ -1,6 +1,7 @@ -- French localization file for frFR. local L = ElvUI[1].Libs.ACL:NewLocale("ElvUI", "frFR") +L["Empower Stages"] = true L["%s and then %s"] = "%s et alors %s" L["|cffFF3333This does not work in Instances or Garrisons!|r"] = true L["|cffFF3333This is for information. This will not change the tags in the UI.|r"] = true diff --git a/Interface/AddOns/ElvUI_Options/Locales/itIT.lua b/Interface/AddOns/ElvUI_Options/Locales/itIT.lua index 8367d0358..2c7b8d735 100644 --- a/Interface/AddOns/ElvUI_Options/Locales/itIT.lua +++ b/Interface/AddOns/ElvUI_Options/Locales/itIT.lua @@ -1,6 +1,7 @@ -- Italian localization file for enUS and enGB. local L = ElvUI[1].Libs.ACL:NewLocale("ElvUI", "itIT") +L["Empower Stages"] = true L["%s and then %s"] = true L["|cffFF3333This does not work in Instances or Garrisons!|r"] = true L["|cffFF3333This is for information. This will not change the tags in the UI.|r"] = true diff --git a/Interface/AddOns/ElvUI_Options/Locales/koKR.lua b/Interface/AddOns/ElvUI_Options/Locales/koKR.lua index 8efe59dd0..7cde567a7 100644 --- a/Interface/AddOns/ElvUI_Options/Locales/koKR.lua +++ b/Interface/AddOns/ElvUI_Options/Locales/koKR.lua @@ -1,6 +1,7 @@ -- Korean localization file for koKR. local L = ElvUI[1].Libs.ACL:NewLocale("ElvUI", "koKR") +L["Empower Stages"] = true L["%s and then %s"] = "%s 이후 %s" L["|cffFF3333This does not work in Instances or Garrisons!|r"] = true L["|cffFF3333This is for information. This will not change the tags in the UI.|r"] = true diff --git a/Interface/AddOns/ElvUI_Options/Locales/ptBR.lua b/Interface/AddOns/ElvUI_Options/Locales/ptBR.lua index 613ecac6f..b76fe4163 100644 --- a/Interface/AddOns/ElvUI_Options/Locales/ptBR.lua +++ b/Interface/AddOns/ElvUI_Options/Locales/ptBR.lua @@ -1,6 +1,7 @@ -- Portuguese localization file for ptBR. local L = ElvUI[1].Libs.ACL:NewLocale("ElvUI", "ptBR") +L["Empower Stages"] = true L["%s and then %s"] = "%s e depois %s" L["|cffFF3333This does not work in Instances or Garrisons!|r"] = true L["|cffFF3333This is for information. This will not change the tags in the UI.|r"] = true diff --git a/Interface/AddOns/ElvUI_Options/Locales/ruRU.lua b/Interface/AddOns/ElvUI_Options/Locales/ruRU.lua index 63c542282..bd8a9bd3d 100644 --- a/Interface/AddOns/ElvUI_Options/Locales/ruRU.lua +++ b/Interface/AddOns/ElvUI_Options/Locales/ruRU.lua @@ -1,6 +1,7 @@ -- Russian localization file for ruRU. local L = ElvUI[1].Libs.ACL:NewLocale("ElvUI", "ruRU") +L["Empower Stages"] = true L["%s and then %s"] = "%s, а затем %s" L["|cffFF3333This does not work in Instances or Garrisons!|r"] = "|cffFF3333 Это не работает в подземельях и гарнизонах!" L["|cffFF3333This is for information. This will not change the tags in the UI.|r"] = true diff --git a/Interface/AddOns/ElvUI_Options/Locales/trTR.lua b/Interface/AddOns/ElvUI_Options/Locales/trTR.lua index 4e52da0f1..f1c2ca275 100644 --- a/Interface/AddOns/ElvUI_Options/Locales/trTR.lua +++ b/Interface/AddOns/ElvUI_Options/Locales/trTR.lua @@ -1,6 +1,7 @@ -- Turkish localization file for trTR. local L = ElvUI[1].Libs.ACL:NewLocale("ElvUI", "trTR") +L["Empower Stages"] = true L["%s and then %s"] = "%s ve ardından %s" L["|cffFF3333This does not work in Instances or Garrisons!|r"] = "|cffFF3333Bu, orneklerde veya Garnizonlarda calismaz!|r" L["|cffFF3333This is for information. This will not change the tags in the UI.|r"] = "|cffFF3333Bu bilgi amaclidir. Bu, kullanici arayuzundeki etiketleri degistirmez.|r" diff --git a/Interface/AddOns/ElvUI_Options/Locales/zhCN.lua b/Interface/AddOns/ElvUI_Options/Locales/zhCN.lua index 69135df8d..f9caf4070 100644 --- a/Interface/AddOns/ElvUI_Options/Locales/zhCN.lua +++ b/Interface/AddOns/ElvUI_Options/Locales/zhCN.lua @@ -1,6 +1,7 @@ -- Simplified Chinese localization file for zhCN. local L = ElvUI[1].Libs.ACL:NewLocale("ElvUI", "zhCN") +L["Empower Stages"] = true L["%s and then %s"] = "%s 于 %s" L["|cffFF3333This does not work in Instances or Garrisons!|r"] = "|cffFF3333这在副本或要塞中不起作用!|r" L["|cffFF3333This is for information. This will not change the tags in the UI.|r"] = "|cffFF3333这是为了提供信息。 这不会更改 UI 中的标签。|r" diff --git a/Interface/AddOns/ElvUI_Options/Locales/zhTW.lua b/Interface/AddOns/ElvUI_Options/Locales/zhTW.lua index a4613e681..264952077 100644 --- a/Interface/AddOns/ElvUI_Options/Locales/zhTW.lua +++ b/Interface/AddOns/ElvUI_Options/Locales/zhTW.lua @@ -1,6 +1,7 @@ -- Traditional Chinese localization file for zhTW. local L = ElvUI[1].Libs.ACL:NewLocale("ElvUI", "zhTW") +L["Empower Stages"] = true L["%s and then %s"] = "%s 與 %s" L["|cffFF3333This does not work in Instances or Garrisons!|r"] = "|cffFF3333這個功能在副本或要塞中無法正常使用!|r" L["|cffFF3333This is for information. This will not change the tags in the UI.|r"] = "|cffFF3333注意: 這不會改變在介面上的標籤.|r" diff --git a/Interface/AddOns/Rematch/Cards/PetCard.lua b/Interface/AddOns/Rematch/Cards/PetCard.lua index 5631df99f..39ee8d985 100644 --- a/Interface/AddOns/Rematch/Cards/PetCard.lua +++ b/Interface/AddOns/Rematch/Cards/PetCard.lua @@ -16,6 +16,7 @@ local expansionCoords = { [6] = {0.3955078125,0.5908203125,0.53125,0.921875}, -- legion [7] = {0.3955078125,0.5908203125,0,0.390625}, -- battle for azeroth [8] = {0.5927734375,0.7880859375,0,0.390625}, -- shadowlands + [9] = {0.791015625,0.986328125,0,0.390625}, -- dragonflight } rematch:InitModule(function() diff --git a/Interface/AddOns/Rematch/Menus/PetMenus.lua b/Interface/AddOns/Rematch/Menus/PetMenus.lua index a7c8fb3a0..c14d35514 100644 --- a/Interface/AddOns/Rematch/Menus/PetMenus.lua +++ b/Interface/AddOns/Rematch/Menus/PetMenus.lua @@ -360,15 +360,16 @@ rematch:InitModule(function() },rematch.UpdateRoster) rematch:RegisterMenu("PetExpansion", { - { text=EXPANSION_NAME0, check=true, group="Expansion", size=9, var=0, value=rmf.GetValue, func=rmf.ToggleValue }, - { text=EXPANSION_NAME1, check=true, group="Expansion", size=9, var=1, value=rmf.GetValue, func=rmf.ToggleValue }, - { text=EXPANSION_NAME2, check=true, group="Expansion", size=9, var=2, value=rmf.GetValue, func=rmf.ToggleValue }, - { text=EXPANSION_NAME3, check=true, group="Expansion", size=9, var=3, value=rmf.GetValue, func=rmf.ToggleValue }, - { text=EXPANSION_NAME4, check=true, group="Expansion", size=9, var=4, value=rmf.GetValue, func=rmf.ToggleValue }, - { text=EXPANSION_NAME5, check=true, group="Expansion", size=9, var=5, value=rmf.GetValue, func=rmf.ToggleValue }, - { text=EXPANSION_NAME6, check=true, group="Expansion", size=9, var=6, value=rmf.GetValue, func=rmf.ToggleValue }, - { text=EXPANSION_NAME7, check=true, group="Expansion", size=9, var=7, value=rmf.GetValue, func=rmf.ToggleValue }, - { text=EXPANSION_NAME8, check=true, group="Expansion", size=9, var=8, value=rmf.GetValue, func=rmf.ToggleValue }, + { text=EXPANSION_NAME0, check=true, group="Expansion", size=10, var=0, value=rmf.GetValue, func=rmf.ToggleValue }, + { text=EXPANSION_NAME1, check=true, group="Expansion", size=10, var=1, value=rmf.GetValue, func=rmf.ToggleValue }, + { text=EXPANSION_NAME2, check=true, group="Expansion", size=10, var=2, value=rmf.GetValue, func=rmf.ToggleValue }, + { text=EXPANSION_NAME3, check=true, group="Expansion", size=10, var=3, value=rmf.GetValue, func=rmf.ToggleValue }, + { text=EXPANSION_NAME4, check=true, group="Expansion", size=10, var=4, value=rmf.GetValue, func=rmf.ToggleValue }, + { text=EXPANSION_NAME5, check=true, group="Expansion", size=10, var=5, value=rmf.GetValue, func=rmf.ToggleValue }, + { text=EXPANSION_NAME6, check=true, group="Expansion", size=10, var=6, value=rmf.GetValue, func=rmf.ToggleValue }, + { text=EXPANSION_NAME7, check=true, group="Expansion", size=10, var=7, value=rmf.GetValue, func=rmf.ToggleValue }, + { text=EXPANSION_NAME8, check=true, group="Expansion", size=10, var=8, value=rmf.GetValue, func=rmf.ToggleValue }, + { text=EXPANSION_NAME9, check=true, group="Expansion", size=10, var=9, value=rmf.GetValue, func=rmf.ToggleValue }, { text=L["Help"], stay=true, hidden=rmf.HideMenuHelp, icon="Interface\\Common\\help-i", iconCoords={0.15,0.85,0.15,0.85}, tooltipTitle=L["Checkbox Groups"], tooltipBody=format(L["In filter menus, checkbox groups assume if nothing is checked you want to view all choices.\n\nYou can also:\n\n%s[Shift]+Click\124r to check all except the box clicked.\n\n%s[Alt]+Click\124r to uncheck all except the box clicked."],rematch.hexWhite,rematch.hexWhite) }, { text=RESET, group="Expansion", stay=true, func=rmf.ResetGroup }, },rematch.UpdateRoster) diff --git a/Interface/AddOns/Rematch/Process/PetInfo.lua b/Interface/AddOns/Rematch/Process/PetInfo.lua index aa357dda5..655fcc109 100644 --- a/Interface/AddOns/Rematch/Process/PetInfo.lua +++ b/Interface/AddOns/Rematch/Process/PetInfo.lua @@ -171,7 +171,8 @@ local expansionRanges = { [5] = {1384,1693}, -- Warlords of Draenor [6] = {1699,2163}, -- Legion [7] = {2165,2872}, -- Battle for Azeroth - [8] = {2878,9999}, -- Shadowlands (next expansion, get max speciesID for Shadowlands and change 9999 to that) + [8] = {2878,3255}, -- Shadowlands + [9] = {3256,9999}, -- Dragonflight } -- the majority of pets fall into a range for each expansion above, except for some outliers. these are the diff --git a/Interface/AddOns/Rematch/Rematch.toc b/Interface/AddOns/Rematch/Rematch.toc index bcc6a2dac..ffc6a586b 100644 --- a/Interface/AddOns/Rematch/Rematch.toc +++ b/Interface/AddOns/Rematch/Rematch.toc @@ -1,8 +1,8 @@ -## Interface: 100000 +## Interface: 100002 ## Title: Rematch ## Notes: A pet journal alternative for managing pets and teams. ## Author: Gello -## Version: 4.14.4 +## Version: 4.14.5 ## X-WoWI-ID: 22190 ## X-Wago-ID: e56nOpK9 ## X-Curse-Project-ID: 66047 diff --git a/Interface/AddOns/Rematch/Widgets/Toolbar.lua b/Interface/AddOns/Rematch/Widgets/Toolbar.lua index 7fddc4a86..f50e3091c 100644 --- a/Interface/AddOns/Rematch/Widgets/Toolbar.lua +++ b/Interface/AddOns/Rematch/Widgets/Toolbar.lua @@ -277,7 +277,8 @@ function toolbar:ButtonOnLeave() end -- all toolbar buttons use this PreClick, but only heals and treats do anything for now -function toolbar:ButtonPreClick() +function toolbar:ButtonPreClick(button,down) + if GetCVarBool("ActionButtonUseKeyDown")~=down then return end if InCombatLockdown() then return end -- for heal/bandage button, check if all pets are fully healed and prevent use if so if self==toolbar.Heal or self==toolbar.Bandage then @@ -324,7 +325,8 @@ function toolbar:ButtonPreClick() end -- all toolbar buttons use this PostClick -function toolbar:ButtonPostClick(button) +function toolbar:ButtonPostClick(button,down) + if GetCVarBool("ActionButtonUseKeyDown")~=down then return end -- for heal, bandage and treat buttons that are turned off in their pre-click if self.backupAttribute then self:SetAttribute("type",self.backupAttribute) @@ -344,7 +346,8 @@ end -- for the latter three which have a redirect keyvalue, it passes its click to the -- BottomPanel[redirect] version of those buttons. -- for SummonRandom it just does the summon/dismiss business. -function toolbar:ButtonOnClick(button) +function toolbar:ButtonOnClick(button,down) + if GetCVarBool("ActionButtonUseKeyDown")~=down then return end if self.redirect then rematch.BottomPanel[self.redirect]:Click() elseif self==toolbar.SummonRandom then @@ -445,3 +448,27 @@ function toolbar:PetCountOnEnter() end rematch.ShowTooltip(self.PetCount,BATTLE_PETS_TOTAL_PETS,format(L["%s\n\nPets At Max Level: %s%d\124r\nPets Not Collected: %s%d\124r\n\n%s Click to display more about your collection."],format(BATTLE_PETS_TOTAL_PETS_TOOLTIP,C_PetJournal.GetNumMaxPets and C_PetJournal.GetNumMaxPets() or ""),rematch.hexWhite,at25,rematch.hexWhite,missing,rematch.LMB)) end + +function rematch:ToggleAchievementFrame() + ToggleAchievementFrame() + if AchievementFrame:IsVisible() then + -- some of this is lifted out of AchievementFrameCategories_SelectDefaultElementData() in Blizzard_AchievementUI.lua + if not AchievementFrameCategories.ScrollBox:HasDataProvider() then + AchievementFrameCategories_UpdateDataProvider() + end + -- find the Pet Battles index in the data provider + local categoryIndex + for index,info in AchievementFrameCategories.ScrollBox:GetDataProvider():Enumerate() do + if info.id==15117 then + categoryIndex = index + end + end + -- go to that category if it exists + if categoryIndex then + local elementData = AchievementFrameCategories.ScrollBox:ScrollToElementDataIndex(categoryIndex, ScrollBoxConstants.AlignCenter, ScrollBoxConstants.NoScrollInterpolation); + if elementData then + AchievementFrameCategories_SelectElementData(elementData) + end + end + end +end \ No newline at end of file diff --git a/Interface/AddOns/Rematch/Widgets/Toolbar.xml b/Interface/AddOns/Rematch/Widgets/Toolbar.xml index 847867399..ee59c8c3c 100644 --- a/Interface/AddOns/Rematch/Widgets/Toolbar.xml +++ b/Interface/AddOns/Rematch/Widgets/Toolbar.xml @@ -35,10 +35,10 @@ RematchToolbar.ButtonOnLeave(self) - RematchToolbar.ButtonPreClick(self,button) + RematchToolbar.ButtonPreClick(self,button,down) - RematchToolbar.ButtonPostClick(self,button) + RematchToolbar.ButtonPostClick(self,button,down) RematchToolbar.ButtonOnDragStart(self) @@ -172,17 +172,7 @@ - ToggleAchievementFrame() - local i = 1 - local button = _G["AchievementFrameCategoriesContainerButton"..i] - while button do - if button.element.id == 15117 then - button:Click() - return - end - i = i + 1 - button = _G["AchievementFrameCategoriesContainerButton"..i] - end + Rematch:ToggleAchievementFrame() self:GetParent().Highlight:Show() @@ -304,7 +294,7 @@ - RematchToolbar.ButtonOnClick(self,button) + RematchToolbar.ButtonOnClick(self,button,down) @@ -314,7 +304,7 @@ - RematchToolbar.ButtonOnClick(self,button) + RematchToolbar.ButtonOnClick(self,button,down) @@ -325,7 +315,7 @@ - RematchToolbar.ButtonOnClick(self,button) + RematchToolbar.ButtonOnClick(self,button,down) @@ -336,7 +326,7 @@ - RematchToolbar.ButtonOnClick(self,button) + RematchToolbar.ButtonOnClick(self,button,down) @@ -357,7 +347,7 @@ - RematchToolbar.ButtonOnClick(self,button) + RematchToolbar.ButtonOnClick(self,button,down) diff --git a/Interface/AddOns/Rematch/changelog.txt b/Interface/AddOns/Rematch/changelog.txt index bcabd2a7f..c908374b4 100644 --- a/Interface/AddOns/Rematch/changelog.txt +++ b/Interface/AddOns/Rematch/changelog.txt @@ -1,3 +1,9 @@ +11/15/2022 version 4.14.5 +- Added Dragonflight to Expansion pet filter. +- Clicking a toolbar button and holding it down won't click it again on release. +- Clicking the achievement total at the top of the dialog will jump to the Pet Battles achievement category. +- toc update for 10.0.2 + 10/30/2022 version 4.14.4 - Updated appearance of option list and target list headers. - Updated appearance of frame titlebar/borders for main window, pet card, notes, win record and dialogs. diff --git a/Interface/AddOns/WIM/CHANGELOG.md b/Interface/AddOns/WIM/CHANGELOG.md index 02474260c..ea7d09a62 100644 --- a/Interface/AddOns/WIM/CHANGELOG.md +++ b/Interface/AddOns/WIM/CHANGELOG.md @@ -1,7 +1,11 @@ # WIM -## [3.9.10](https://github.com/Legacy-of-Sylvanaar/wow-instant-messenger/tree/3.9.10) (2022-11-07) -[Full Changelog](https://github.com/Legacy-of-Sylvanaar/wow-instant-messenger/compare/3.9.9...3.9.10) [Previous Releases](https://github.com/Legacy-of-Sylvanaar/wow-instant-messenger/releases) +## [3.9.11](https://github.com/Legacy-of-Sylvanaar/wow-instant-messenger/tree/3.9.11) (2022-11-15) +[Full Changelog](https://github.com/Legacy-of-Sylvanaar/wow-instant-messenger/compare/3.9.10...3.9.11) [Previous Releases](https://github.com/Legacy-of-Sylvanaar/wow-instant-messenger/releases) -- fix(History): reference correct table in OnDisable -- fix(ClickControl): refactor behavior so module doesn't need to be unregistered if WIM is disabled. +- Merge branch 'master' of https://github.com/Legacy-of-Sylvanaar/wow-instant-messenger +- Bump TOC +- Fix Emoticons and URLHandler bug introducted by ElvUI string encoding which broke gsub. #21 +- Merge branch 'master' of https://github.com/Legacy-of-Sylvanaar/wow-instant-messenger +- Fix Emoticons and URLHandler bug introducted by ElvUI string encoding which broke gsub. +- Bump TOC file diff --git a/Interface/AddOns/WIM/Modules/Emoticons.lua b/Interface/AddOns/WIM/Modules/Emoticons.lua index 2ea7b8cc4..eab34dfc6 100644 --- a/Interface/AddOns/WIM/Modules/Emoticons.lua +++ b/Interface/AddOns/WIM/Modules/Emoticons.lua @@ -69,6 +69,8 @@ local function decodeColors(theMsg) end local function filterEmoticons(theMsg, smf) + -- sanitize string of any % characters + theMsg = string.gsub(theMsg, "%%", "%%%%"); --safety check... if(not theMsg or theMsg == "") then @@ -152,6 +154,9 @@ local function filterEmoticons(theMsg, smf) LinkRepository[key] = nil; end + -- desanitize string of any % characters + theMsg = string.gsub(theMsg, "%%%%", "%%"); + return decodeColors((playerLink or "")..theMsg); end diff --git a/Interface/AddOns/WIM/Modules/URLHandler.lua b/Interface/AddOns/WIM/Modules/URLHandler.lua index 27da42113..8aa3b10b4 100644 --- a/Interface/AddOns/WIM/Modules/URLHandler.lua +++ b/Interface/AddOns/WIM/Modules/URLHandler.lua @@ -133,32 +133,41 @@ local function decodeColors(theMsg) end local function convertURLtoLinks(text) - -- clean text first - local theMsg = text; - local results; - theMsg = decodeURI(theMsg) - theMsg = encodeColors(theMsg); - repeat - theMsg, results = string.gsub(theMsg, "(|H[^|]+|h[^|]+|h)", function(theLink) - table.insert(LinkRepository, theLink); - return "\001\004"..#LinkRepository; - end, 1); - until results == 0; - - -- create urls - for i=1, table.getn(patterns) do - theMsg = string.gsub(theMsg, patterns[i], formatRawURL); - end + _G.test = text - --restore links - for i=1, #LinkRepository do - theMsg = string.gsub(theMsg, "\001\004"..i.."", LinkRepository[i]); - end + -- clean text first + local theMsg = text; + local results; - -- clear table to be recycled by next process - for key, _ in pairs(LinkRepository) do - LinkRepository[key] = nil; - end + -- sanitize string of any % characters + theMsg = string.gsub(theMsg, "%%", "%%%%"); + + theMsg = decodeURI(theMsg) + theMsg = encodeColors(theMsg); + repeat + theMsg, results = string.gsub(theMsg, "(|H[^|]+|h[^|]+|h)", function(theLink) + table.insert(LinkRepository, theLink); + return "\001\004"..#LinkRepository; + end, 1); + until results == 0; + + -- create urls + for i=1, table.getn(patterns) do + theMsg = string.gsub(theMsg, patterns[i], formatRawURL); + end + + --restore links + for i=1, #LinkRepository do + theMsg = string.gsub(theMsg, "\001\004"..i.."", LinkRepository[i]); + end + + -- clear table to be recycled by next process + for key, _ in pairs(LinkRepository) do + LinkRepository[key] = nil; + end + + -- desanitize string of any % characters + theMsg = string.gsub(theMsg, "%%%%", "%%"); return decodeColors(theMsg); end diff --git a/Interface/AddOns/WIM/WIM.lua b/Interface/AddOns/WIM/WIM.lua index e6bc1d95f..c83edbd79 100644 --- a/Interface/AddOns/WIM/WIM.lua +++ b/Interface/AddOns/WIM/WIM.lua @@ -15,7 +15,7 @@ setfenv(1, WIM); -- Core information addonTocName = "WIM"; -version = "3.9.10"; +version = "3.9.11"; beta = false; -- flags current version as beta. debug = false; -- turn debugging on and off. useProtocol2 = true; -- test switch for new W2W Protocol. (Dev use only) diff --git a/Interface/AddOns/WIM/WIM.toc b/Interface/AddOns/WIM/WIM.toc index a582670ab..03d8dafdf 100644 --- a/Interface/AddOns/WIM/WIM.toc +++ b/Interface/AddOns/WIM/WIM.toc @@ -1,11 +1,11 @@ -## Interface: 100000 +## Interface: 100002 ## X-Curse-Project-ID: 7474 ## X-WoWI-ID: 5342 ## Title: WIM ## Author: Pazza (Bronzebeard), (Updated by Sylvanaar/MysticalOS/Humfras) -## Version: 3.9.10 +## Version: 3.9.11 ## Notes: Give whispers an instant messenger feel. ## Notes-esES: Dale a los susurros una sensación de mensajería instantánea. ## Notes-esMX: Dale a los susurros una sensación de mensajería instantánea. diff --git a/Interface/AddOns/WIM/WIM_TBC.toc b/Interface/AddOns/WIM/WIM_TBC.toc index 3259881ac..4b2cf4317 100644 --- a/Interface/AddOns/WIM/WIM_TBC.toc +++ b/Interface/AddOns/WIM/WIM_TBC.toc @@ -5,7 +5,7 @@ ## Title: WIM ## Author: Pazza (Bronzebeard), (Updated by Sylvanaar/MysticalOS/Humfras) -## Version: 3.9.10 +## Version: 3.9.11 ## Notes: Give whispers an instant messenger feel. ## Notes-esES: Dale a los susurros una sensación de mensajería instantánea. ## Notes-esMX: Dale a los susurros una sensación de mensajería instantánea. diff --git a/Interface/AddOns/WIM/WIM_Vanilla.toc b/Interface/AddOns/WIM/WIM_Vanilla.toc index f62c357a8..aa8bdd5ca 100644 --- a/Interface/AddOns/WIM/WIM_Vanilla.toc +++ b/Interface/AddOns/WIM/WIM_Vanilla.toc @@ -5,7 +5,7 @@ ## Title: WIM ## Author: Pazza (Bronzebeard), (Updated by Sylvanaar/MysticalOS/Humfras) -## Version: 3.9.10 +## Version: 3.9.11 ## Notes: Give whispers an instant messenger feel. ## Notes-esES: Dale a los susurros una sensación de mensajería instantánea. ## Notes-esMX: Dale a los susurros una sensación de mensajería instantánea. diff --git a/Interface/AddOns/WIM/WIM_Wrath.toc b/Interface/AddOns/WIM/WIM_Wrath.toc index 8ddef7ede..0f7267320 100644 --- a/Interface/AddOns/WIM/WIM_Wrath.toc +++ b/Interface/AddOns/WIM/WIM_Wrath.toc @@ -5,7 +5,7 @@ ## Title: WIM ## Author: Pazza (Bronzebeard), (Updated by Sylvanaar/MysticalOS/Humfras) -## Version: 3.9.10 +## Version: 3.9.11 ## Notes: Give whispers an instant messenger feel. ## Notes-esES: Dale a los susurros una sensación de mensajería instantánea. ## Notes-esMX: Dale a los susurros una sensación de mensajería instantánea. diff --git a/Interface/AddOns/WeakAuras/CHANGELOG.md b/Interface/AddOns/WeakAuras/CHANGELOG.md index 29df2d235..70ccee4f2 100644 --- a/Interface/AddOns/WeakAuras/CHANGELOG.md +++ b/Interface/AddOns/WeakAuras/CHANGELOG.md @@ -1,21 +1,41 @@ -# [5.1.1](https://github.com/WeakAuras/WeakAuras2/tree/5.1.1) (2022-11-08) +# [5.2.0](https://github.com/WeakAuras/WeakAuras2/tree/5.2.0) (2022-11-15) -[Full Changelog](https://github.com/WeakAuras/WeakAuras2/compare/5.1.0...5.1.1) +[Full Changelog](https://github.com/WeakAuras/WeakAuras2/compare/5.1.1...5.2.0) ## Highlights - - Bug Fixes + - Replace Sliders in options with new SpinBox widget +- Add Blizzard Atlas textures to the picker +- Bug Fixes ## Commits -InfusOnWoW (3): +InfusOnWoW (5): -- MoverSizer: Skip regions that are anchoring restricted -- Remove useless debug prints -- Change how z-scale is interpreted +- Add some nil check for Private.regions[id].region +- Fix diff algorithm to correctly allow for ignoring nested values +- Options: Make dragEnd run the trigger functions again +- Fix Conditions with paused states +- Make IsSpellKnown* checks check the base spell more correctly -mrbuds (2): +Jesse Manelius (1): -- Fix talent trigger active when wrong choice node is selected -- Fix error with dynamic group background/border positioning +- Use SetClampedToScreen on title instead of using complicated code + +Stanzilla (1): + +- Bump retail TOC for Patch 10.0.2 + +Tharre (2): + +- Crowd Controlled: enable for classic era +- Spell Cooldown: enable LOC option for classic + +mrbuds (5): + +- Texture picker: keep aspect ratio for atlas in preview +- fix broken zoom on icons +- Texture Picker: add "Blizzard Atlas" category with all atlas (#3966) +- Add "blizzard alert" textures for evoker +- SpinBox Widget (#3981) diff --git a/Interface/AddOns/WeakAuras/Conditions.lua b/Interface/AddOns/WeakAuras/Conditions.lua index 0070d110e..51b5a095b 100644 --- a/Interface/AddOns/WeakAuras/Conditions.lua +++ b/Interface/AddOns/WeakAuras/Conditions.lua @@ -130,6 +130,12 @@ local function formatValueForCall(type, property) end +function Private.ExecEnv.CancelConditionCheck(uid, cloneId) + if conditionChecksTimers.recheckHandle[uid] and conditionChecksTimers.recheckHandle[uid][cloneId] then + timer:CancelTimer(conditionChecksTimers.recheckHandle[uid][cloneId]) + conditionChecksTimers.recheckHandle[uid][cloneId] = nil + end +end function Private.ExecEnv.ScheduleConditionCheck(time, uid, cloneId) conditionChecksTimers.recheckTime[uid] = conditionChecksTimers.recheckTime[uid] or {} @@ -258,21 +264,22 @@ local function CreateTestForCondition(uid, input, allConditionsTemplate, usedSta end end elseif (cType == "timer" and value and op) then + local triggerState = "state[" .. trigger .. "]" + local varString = triggerState .. string.format("[%q]", variable) + local remaingTime = "(" .. triggerState .. ".paused and (" .. triggerState .. ".remaining or 0) or (" .. varString .. " - now)" .. ")" if useModRate then + local modRateString = "(state[" .. trigger .. "].modRate or 1.0)" + if (op == "==") then - check = stateCheck .. stateVariableCheck .. "abs(((state[" .. trigger .. "]" .. string.format("[%q]", variable) - .. "- now) " .. "/ (state[" .. trigger .. "].modRate or 1.0))" .. " -" .. value .. ") < 0.05" + check = stateCheck .. stateVariableCheck .. "abs((" .. remaingTime .. "-" .. value .. ")/" .. modRateString .. ") < 0.05" else - check = stateCheck .. stateVariableCheck .. "((state[" .. trigger .. "]" .. string.format("[%q]", variable) - .. "- now) / (state[" .. trigger .. "].modRate or 1.0))" .. op .. value; + check = stateCheck .. stateVariableCheck .. remaingTime .. "/" .. modRateString .. op .. value end else if (op == "==") then - check = stateCheck .. stateVariableCheck .. "abs(state[" .. trigger .. "]" .. string.format("[%q]", variable) - .. "- now -" .. value .. ") < 0.05"; + check = stateCheck .. stateVariableCheck .. "abs(" .. remaingTime .. "-" .. value .. ") < 0.05" else - check = stateCheck .. stateVariableCheck .. "state[" .. trigger .. "]" .. string.format("[%q]", variable) - .. "- now" .. op .. value; + check = stateCheck .. stateVariableCheck .. remaingTime .. op .. value end end elseif (cType == "elapsedTimer" and value and op) then @@ -357,9 +364,9 @@ local function CreateTestForCondition(uid, input, allConditionsTemplate, usedSta -- If adding a new condition type, don't forget to adjust the validator in the options code if (cType == "timer" and value) then - recheckCode = " nextTime = state[" .. trigger .. "] and state[" .. trigger .. "]" - .. string.format("[%q]", variable) .. " and (state[" .. trigger .. "]" - .. string.format("[%q]", variable) .. " - " .. value .. ")\n" + recheckCode = " nextTime = state[" .. trigger .. "] and not state[" .. trigger .. "].paused" + .. " and state[" .. trigger .. "]" .. string.format("[%q]", variable) + .. " and (state[" .. trigger .. "]" .. string.format("[%q]", variable) .. " - " .. value .. ")\n" recheckCode = recheckCode .. " if (nextTime and (not recheckTime or nextTime < recheckTime) and nextTime >= now) then\n" recheckCode = recheckCode .. " recheckTime = nextTime\n"; recheckCode = recheckCode .. " end\n" @@ -613,6 +620,7 @@ local globalConditions = ["rangecheck"] = { display = WeakAuras.newFeatureString .. L["Range Check"], type = "range", + control = "WeakAurasSpinBox", events = {"WA_SPELL_RANGECHECK"} }, ["attackabletarget"] = { @@ -682,6 +690,8 @@ local function ConstructConditionFunction(data) ret = ret .. " if (recheckTime) then\n" ret = ret .. " Private.ExecEnv.ScheduleConditionCheck(recheckTime, uid, cloneId);\n" + ret = ret .. " else\n" + ret = ret .. " Private.ExecEnv.CancelConditionCheck(uid, cloneId)" ret = ret .. " end\n" local properties = Private.GetProperties(data); diff --git a/Interface/AddOns/WeakAuras/Init.lua b/Interface/AddOns/WeakAuras/Init.lua index 27e9e6b06..5d1b01639 100644 --- a/Interface/AddOns/WeakAuras/Init.lua +++ b/Interface/AddOns/WeakAuras/Init.lua @@ -239,8 +239,8 @@ WeakAuras.halfWidth = WeakAuras.normalWidth / 2 WeakAuras.doubleWidth = WeakAuras.normalWidth * 2 local versionStringFromToc = GetAddOnMetadata("WeakAuras", "Version") -local versionString = "5.1.1" -local buildTime = "20221108192300" +local versionString = "5.2.0" +local buildTime = "20221115183018" local flavorFromToc = GetAddOnMetadata("WeakAuras", "X-Flavor") local flavorFromTocToNumber = { @@ -252,7 +252,7 @@ local flavorFromTocToNumber = { local flavor = flavorFromTocToNumber[flavorFromToc] --[==[@debug@ -if versionStringFromToc == "5.1.1" then +if versionStringFromToc == "5.2.0" then versionStringFromToc = "Dev" buildTime = "Dev" end diff --git a/Interface/AddOns/WeakAuras/Libs/LibCustomGlow-1.0/LICENSE.md b/Interface/AddOns/WeakAuras/Libs/LibCustomGlow-1.0/LICENSE.md new file mode 100644 index 000000000..89e08fb00 --- /dev/null +++ b/Interface/AddOns/WeakAuras/Libs/LibCustomGlow-1.0/LICENSE.md @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/Interface/AddOns/WeakAuras/Libs/LibCustomGlow-1.0/LibCustomGlow-1.0.toc b/Interface/AddOns/WeakAuras/Libs/LibCustomGlow-1.0/LibCustomGlow-1.0.toc index 936ba6528..5bbe40eb7 100644 --- a/Interface/AddOns/WeakAuras/Libs/LibCustomGlow-1.0/LibCustomGlow-1.0.toc +++ b/Interface/AddOns/WeakAuras/Libs/LibCustomGlow-1.0/LibCustomGlow-1.0.toc @@ -4,7 +4,7 @@ ## Author: deezo ## X-Category: Library ## X-License: BSD -## Version: 357b944 +## Version: e685cd9 ## OptionalDeps: Masque LibStub\LibStub.lua diff --git a/Interface/AddOns/WeakAuras/Libs/LibDBIcon-1.0/LibDBIcon-1.0.lua b/Interface/AddOns/WeakAuras/Libs/LibDBIcon-1.0/LibDBIcon-1.0.lua index 9d57b8d57..32e7da370 100644 --- a/Interface/AddOns/WeakAuras/Libs/LibDBIcon-1.0/LibDBIcon-1.0.lua +++ b/Interface/AddOns/WeakAuras/Libs/LibDBIcon-1.0/LibDBIcon-1.0.lua @@ -6,7 +6,7 @@ -- local DBICON10 = "LibDBIcon-1.0" -local DBICON10_MINOR = 44 -- Bump on changes +local DBICON10_MINOR = 45 -- Bump on changes if not LibStub then error(DBICON10 .. " requires LibStub.") end local ldb = LibStub("LibDataBroker-1.1", true) if not ldb then error(DBICON10 .. " requires LibDataBroker-1.1.") end @@ -225,26 +225,42 @@ local function createButton(name, object, db) button:RegisterForClicks("anyUp") button:RegisterForDrag("LeftButton") button:SetHighlightTexture(136477) --"Interface\\Minimap\\UI-Minimap-ZoomButton-Highlight" - local overlay = button:CreateTexture(nil, "OVERLAY") - overlay:SetSize(53, 53) - overlay:SetTexture(136430) --"Interface\\Minimap\\MiniMap-TrackingBorder" - overlay:SetPoint("TOPLEFT") - local background = button:CreateTexture(nil, "BACKGROUND") - background:SetSize(20, 20) - background:SetTexture(136467) --"Interface\\Minimap\\UI-Minimap-Background" - background:SetPoint("TOPLEFT", 7, -5) - local icon = button:CreateTexture(nil, "ARTWORK") - icon:SetSize(17, 17) - icon:SetTexture(object.icon) - icon:SetPoint("TOPLEFT", 7, -6) - button.icon = icon - button.isMouseDown = false + if WOW_PROJECT_ID == WOW_PROJECT_MAINLINE then + local overlay = button:CreateTexture(nil, "OVERLAY") + overlay:SetSize(50, 50) + overlay:SetTexture(136430) --"Interface\\Minimap\\MiniMap-TrackingBorder" + overlay:SetPoint("TOPLEFT", button, "TOPLEFT", 0, 0) + local background = button:CreateTexture(nil, "BACKGROUND") + background:SetSize(24, 24) + background:SetTexture(136467) --"Interface\\Minimap\\UI-Minimap-Background" + background:SetPoint("CENTER", button, "CENTER", 0, 1) + local icon = button:CreateTexture(nil, "ARTWORK") + icon:SetSize(18, 18) + icon:SetTexture(object.icon) + icon:SetPoint("CENTER", button, "CENTER", 0, 1) + button.icon = icon + else + local overlay = button:CreateTexture(nil, "OVERLAY") + overlay:SetSize(53, 53) + overlay:SetTexture(136430) --"Interface\\Minimap\\MiniMap-TrackingBorder" + overlay:SetPoint("TOPLEFT") + local background = button:CreateTexture(nil, "BACKGROUND") + background:SetSize(20, 20) + background:SetTexture(136467) --"Interface\\Minimap\\UI-Minimap-Background" + background:SetPoint("TOPLEFT", 7, -5) + local icon = button:CreateTexture(nil, "ARTWORK") + icon:SetSize(17, 17) + icon:SetTexture(object.icon) + icon:SetPoint("TOPLEFT", 7, -6) + button.icon = icon + end - local r, g, b = icon:GetVertexColor() - icon:SetVertexColor(object.iconR or r, object.iconG or g, object.iconB or b) + button.isMouseDown = false + local r, g, b = button.icon:GetVertexColor() + button.icon:SetVertexColor(object.iconR or r, object.iconG or g, object.iconB or b) - icon.UpdateCoord = updateCoord - icon:UpdateCoord() + button.icon.UpdateCoord = updateCoord + button.icon:UpdateCoord() button:SetScript("OnEnter", onEnter) button:SetScript("OnLeave", onLeave) diff --git a/Interface/AddOns/WeakAuras/Libs/LibRangeCheck-2.0/LibRangeCheck-2.0.lua b/Interface/AddOns/WeakAuras/Libs/LibRangeCheck-2.0/LibRangeCheck-2.0.lua index d69d21870..3e1aa4099 100644 --- a/Interface/AddOns/WeakAuras/Libs/LibRangeCheck-2.0/LibRangeCheck-2.0.lua +++ b/Interface/AddOns/WeakAuras/Libs/LibRangeCheck-2.0/LibRangeCheck-2.0.lua @@ -41,14 +41,13 @@ License: Public Domain -- @class file -- @name LibRangeCheck-2.0 local MAJOR_VERSION = "LibRangeCheck-2.0" -local MINOR_VERSION = tonumber(("$Revision: 215 $"):match("%d+")) + 100000 +local MINOR_VERSION = tonumber(("$Revision: 216 $"):match("%d+")) + 100000 local lib, oldminor = LibStub:NewLibrary(MAJOR_VERSION, MINOR_VERSION) if not lib then return end local isRetail = WOW_PROJECT_ID == WOW_PROJECT_MAINLINE -local isClassic = WOW_PROJECT_ID == WOW_PROJECT_CLASSIC -local isTBC = WOW_PROJECT_ID == WOW_PROJECT_BURNING_CRUSADE_CLASSIC +local isWrath = WOW_PROJECT_ID == WOW_PROJECT_WRATH_CLASSIC -- GLOBALS: LibStub, CreateFrame, C_Map, FriendColor (??), HarmColor (??) local _G = _G @@ -116,10 +115,18 @@ local InteractLists = { local MeleeRange = 2 local FriendSpells, HarmSpells, ResSpells, PetSpells = {}, {}, {}, {} -for _, n in ipairs({ 'DEATHKNIGHT', 'DEMONHUNTER', 'DRUID', 'HUNTER', 'SHAMAN', 'MAGE', 'PALADIN', 'PRIEST', 'WARLOCK', 'WARRIOR', 'MONK', 'ROGUE' }) do +for _, n in ipairs({ 'EVOKER', 'DEATHKNIGHT', 'DEMONHUNTER', 'DRUID', 'HUNTER', 'SHAMAN', 'MAGE', 'PALADIN', 'PRIEST', 'WARLOCK', 'WARRIOR', 'MONK', 'ROGUE' }) do FriendSpells[n], HarmSpells[n], ResSpells[n], PetSpells[n] = {}, {}, {}, {} end +-- Evoker +tinsert(HarmSpells.EVOKER, 369819) -- Disintegrate (25 yards) + +tinsert(FriendSpells.EVOKER, 361469) -- Living Flame (25 yards) +tinsert(FriendSpells.EVOKER, 360823) -- Naturalize (Preservation) (30 yards) + +tinsert(ResSpells.EVOKER, 361227) -- Return (40 yards) + -- Death Knights tinsert(HarmSpells.DEATHKNIGHT, 49576) -- Death Grip (30 yards) tinsert(HarmSpells.DEATHKNIGHT, 47541) -- Death Coil (Unholy) (40 yards) @@ -1179,7 +1186,7 @@ function lib:activate() frame:RegisterEvent("CHARACTER_POINTS_CHANGED") frame:RegisterEvent("SPELLS_CHANGED") - if isRetail then + if isRetail or isWrath then frame:RegisterEvent("PLAYER_TALENT_UPDATE") end diff --git a/Interface/AddOns/WeakAuras/Libs/LibRangeCheck-2.0/LibRangeCheck-2.0.toc b/Interface/AddOns/WeakAuras/Libs/LibRangeCheck-2.0/LibRangeCheck-2.0.toc index 107ce803e..c4a1b8ab0 100644 --- a/Interface/AddOns/WeakAuras/Libs/LibRangeCheck-2.0/LibRangeCheck-2.0.toc +++ b/Interface/AddOns/WeakAuras/Libs/LibRangeCheck-2.0/LibRangeCheck-2.0.toc @@ -2,7 +2,7 @@ ## Title: Lib: RangeCheck-2.0 ## Notes: A library to determine estimated range. ## Author: mitch0 -## Version: ed1715d +## Version: 4697c61 ## LoadOnDemand: 1 ## X-Category: Library ## X-AceLibrary-LibRangeCheck-2.0: true diff --git a/Interface/AddOns/WeakAuras/Locales/koKR.lua b/Interface/AddOns/WeakAuras/Locales/koKR.lua index e1f1455a9..7b2149b8c 100644 --- a/Interface/AddOns/WeakAuras/Locales/koKR.lua +++ b/Interface/AddOns/WeakAuras/Locales/koKR.lua @@ -318,8 +318,7 @@ L["Conditions"] = "조건" L["Contains"] = "포함" L["Continuously update Movement Speed"] = "이동 속도 계속 업데이트" L["Cooldown"] = "재사용 대기시간" ---[[Translation missing --]] -L["Cooldown bars show time before an ability is ready to be use, BigWigs prefix them with '~'"] = "Cooldown bars show time before an ability is ready to be use, BigWigs prefix them with '~'" +L["Cooldown bars show time before an ability is ready to be use, BigWigs prefix them with '~'"] = "재사용 대기시간 바는 능력을 사용할 준비가 되기까지의 시간을 표시하며 BigWigs는 '~'를 접두사로 붙입니다." L["Cooldown Progress (Item)"] = "재사용 대기시간 진행 (아이템)" L["Cooldown Progress (Slot)"] = "재사용 대기시간 진행 상황 (아이템 칸)" L["Cooldown Ready Event"] = "재사용 준비 이벤트" @@ -1160,7 +1159,7 @@ L["Seconds"] = "초" L[ [=[Secure frame detected. Find more information: https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=] ] = [=[Secure frame detected. Find more information: https://github.com/WeakAuras/WeakAuras2/wiki/Protected-Frames]=] -L["Select Frame"] = "프레임 선택" +L["Select Frame"] = "선택 프레임" --[[Translation missing --]] L["Separator"] = "Separator" L["Set IDs can be found on websites such as classic.wowhead.com/item-sets"] = "세트 ID는 classic.wowhead.com/item-sets와 같은 웹사이트에서 찾을 수 있습니다." diff --git a/Interface/AddOns/WeakAuras/Media/Textures/spinboxleft.tga b/Interface/AddOns/WeakAuras/Media/Textures/spinboxleft.tga new file mode 100644 index 0000000000000000000000000000000000000000..e3f124f6c383160beeacf70cfcb7151f92f8d8db GIT binary patch literal 980 zcmajeOA5j;5C-4~E~Fc;;05#sx~mWn1z&ib`mXP{?gT;bSbCB;|9~5D{8MHid^Amy z8RsJR83iX#?uzLJDH}q_OWY+eo)VP=ayGdSIhj0w98DfV4knKvdy~hIoyil(*5oN< zV{!^vn>>T8OrArQCNChGexA9$s7rkFORl7>pVbXyWEx345=p^H+;q!-kt|HMMShAL u2{}-59po}eDUd=UWk`ycv;b)!(tg^aC>e})vlDlH%Qx!9Ue(v)l6wRC>o(#5 literal 0 HcmV?d00001 diff --git a/Interface/AddOns/WeakAuras/Media/Textures/spinboxlefth.tga b/Interface/AddOns/WeakAuras/Media/Textures/spinboxlefth.tga new file mode 100644 index 0000000000000000000000000000000000000000..a24894923b1d927481ece85d1c6b7811276f01b8 GIT binary patch literal 980 zcmajeNeTin5CzZ(E~GbJ!3*dObk{;a6rAun?L5!ZP7nl-Wlqx8FK{E4KTQ>cN2k+C zm2;8%jDnLVcf<6Glno)|B_0x~#7m-*KrSZtA!m~Zkdw(n$kF5x@(8jwc?{W^Jb`RY zo<_0;1{Xnd^(X#5cd>O3M0K-9SdBfy5)0lsZW_-SS@~3zKb; xpCU&>4wPI6xlB?Dq>xA%k|HK8KpKd&pSCDU2BY2Vgx#nWHR{D)HL8Ur_XhZG)As-X literal 0 HcmV?d00001 diff --git a/Interface/AddOns/WeakAuras/Media/Textures/spinboxoverlay.tga b/Interface/AddOns/WeakAuras/Media/Textures/spinboxoverlay.tga new file mode 100644 index 0000000000000000000000000000000000000000..3b1f3f7772a828145229baa9258d3f5fef569fe9 GIT binary patch literal 576 zcmZQz;9`ISMg;~14yFkcCNTW}{~v^9fcXFapCEz>h(TNikTlcZzkfmUAi<+RjHCv{ z1xqvi`}Yr|rW}ZW12K{s5Vss8%?M;@0`V&#hN=Pyfw-C=y%4ki0$E_^K)4{@Fa+5A ki!XeL316b(iHP`yrI3)IP}eZeU{8NP-3T{NA6GpF0OV`l#sB~S literal 0 HcmV?d00001 diff --git a/Interface/AddOns/WeakAuras/Media/Textures/spinboxright.tga b/Interface/AddOns/WeakAuras/Media/Textures/spinboxright.tga new file mode 100644 index 0000000000000000000000000000000000000000..cb99db84015c09ac633b15849d1a18f37e95aa59 GIT binary patch literal 980 zcmajeNeaS15CzZ@Tu3%v!3*dObQd8Y3Ql;PIM4I669mCy=}Fr91@0_=g=$D1>2$iQ zL?Zb{LG;SqaGPSth7c;6FHOWlGk=BjUA{mDE}tPomrsz9%SXuA&h4 umXHl4$3YI0lmaOvQii06Nehq$BJF1_ijqOJo1M6uw30@>*sCVBxFjEL0yg3R literal 0 HcmV?d00001 diff --git a/Interface/AddOns/WeakAuras/Media/Textures/spinboxrighth.tga b/Interface/AddOns/WeakAuras/Media/Textures/spinboxrighth.tga new file mode 100644 index 0000000000000000000000000000000000000000..9b86298337ecd598c24ac0add7153d190158e00b GIT binary patch literal 980 zcmajeOA5j;5C-4~E~Fc;;05#sx~mWn1z&ib`mXP{?gT;bSmq=;|A4L>|CAYMKboe= zjB}CujDnLZcg1ajlno(NB%Ts4iMvGp0_mH4h73$TL53zDAtRFykg>^o$i(CwWNPvj zlA64M%uHTG<|eNo3zL@+O+WWsU(_kUWeJS$k?3c20Zty@5?DskLn6{8|3xw}Sr+*z vvL$3g$#IawB&9$KiIgEJV$uSnfk^vli=t#O+RaYf^)2717kgD-i%aee=T`#S literal 0 HcmV?d00001 diff --git a/Interface/AddOns/WeakAuras/Media/Textures/spinboxrightp.tga b/Interface/AddOns/WeakAuras/Media/Textures/spinboxrightp.tga new file mode 100644 index 0000000000000000000000000000000000000000..f570b458307ed219dda5598c74308a1e2c7f9158 GIT binary patch literal 980 zcmajeNeaS15CzZ{Tu3%v!3*dObQhsP6rAunah~UCCkTQk>2v5ww0?oEEPsb8NFM2Q zx~rUv+-KyRT$u}Q6Qpzqp(OE;cuCwOvS&!ww*KdTFH^7xv-Qj+cxkuLc!l8MQ( x$WM_iAsb4LgB&I)1yV?)3`r4_79b5o+D}^)C4!XaBprg)As-X literal 0 HcmV?d00001 diff --git a/Interface/AddOns/WeakAuras/Prototypes.lua b/Interface/AddOns/WeakAuras/Prototypes.lua index d3fcff4f3..4b97fcb47 100644 --- a/Interface/AddOns/WeakAuras/Prototypes.lua +++ b/Interface/AddOns/WeakAuras/Prototypes.lua @@ -879,26 +879,40 @@ function Private.ExecEnv.CheckRaidFlags(flags, flagToCheck) end end +local function IsSpellKnownOrOverridesAndBaseIsKnown(spell, pet) + if IsSpellKnown(spell, pet) then + return true + end + local baseSpell = FindBaseSpellByID(spell) + if baseSpell and baseSpell ~= spell then + if FindSpellOverrideByID(baseSpell) == spell then + return IsSpellKnown(baseSpell, pet) + end + end +end + function WeakAuras.IsSpellKnownForLoad(spell, exact) - local result = IsPlayerSpell(spell) or IsSpellKnownOrOverridesKnown(spell, true) + local result = IsPlayerSpell(spell) + or IsSpellKnownOrOverridesAndBaseIsKnown(spell, false) + or IsSpellKnownOrOverridesAndBaseIsKnown(spell, true) if exact or result then return result end -- Dance through the spellname to the current spell id - spell = GetSpellInfo(spell) - if (spell) then - spell = select(7, GetSpellInfo(spell)) - end - if spell then - return WeakAuras.IsSpellKnown(spell) + local spellName = GetSpellInfo(spell) + if (spellName) then + local otherSpell = select(7, GetSpellInfo(spellName)) + if otherSpell and otherSpell ~= spell then + return WeakAuras.IsSpellKnownForLoad(otherSpell) + end end end function WeakAuras.IsSpellKnown(spell, pet) if (pet) then - return IsSpellKnownOrOverridesKnown(spell, pet); + return IsSpellKnownOrOverridesAndBaseIsKnown(spell, true) end - return IsPlayerSpell(spell) or IsSpellKnownOrOverridesKnown(spell); + return IsPlayerSpell(spell) or IsSpellKnownOrOverridesAndBaseIsKnown(spell, false) end function WeakAuras.IsSpellKnownIncludingPet(spell) @@ -908,19 +922,7 @@ function WeakAuras.IsSpellKnownIncludingPet(spell) if (not spell) then return false; end - if (WeakAuras.IsSpellKnown(spell) or WeakAuras.IsSpellKnown(spell, true)) then - return true; - end - -- WORKAROUND brain damage around void eruption - -- In shadow form void eruption is overridden by void bolt, yet IsSpellKnown for void bolt - -- returns false, whereas it returns true for void eruption - local baseSpell = FindBaseSpellByID(spell); - if (not baseSpell) then - return false; - end - if (baseSpell ~= spell) then - return WeakAuras.IsSpellKnown(baseSpell) or WeakAuras.IsSpellKnown(baseSpell, true); - end + return WeakAuras.IsSpellKnown(spell, false) or WeakAuras.IsSpellKnown(spell, true) end function Private.ExecEnv.CompareSpellIds(a, b, exactCheck) @@ -4334,8 +4336,6 @@ Private.event_prototypes = { type = "toggle", test = "true", collapse = "extra Cooldown Progress (Spell)", - enable = WeakAuras.IsRetail(), - hidden = not WeakAuras.IsRetail() }, { name = "matchedRune", @@ -9473,7 +9473,6 @@ if WeakAuras.IsClassicOrBCCOrWrath() then end if not WeakAuras.IsWrathClassic() then Private.event_prototypes["Death Knight Rune"] = nil - Private.event_prototypes["Crowd Controlled"] = nil end Private.event_prototypes["Alternate Power"] = nil Private.event_prototypes["Equipment Set"] = nil diff --git a/Interface/AddOns/WeakAuras/RegionTypes/Model.lua b/Interface/AddOns/WeakAuras/RegionTypes/Model.lua index fe29a4aac..833c68f97 100644 --- a/Interface/AddOns/WeakAuras/RegionTypes/Model.lua +++ b/Interface/AddOns/WeakAuras/RegionTypes/Model.lua @@ -326,7 +326,7 @@ do Private.StartProfileSystem("model"); for id, data in pairs(Private.regions) do Private.StartProfileAura(id); - if data.region.toShow then + if data.region and data.region.toShow then if (data.regionType == "model") then data.region:PreShow(); end diff --git a/Interface/AddOns/WeakAuras/RegionTypes/RegionPrototype.lua b/Interface/AddOns/WeakAuras/RegionTypes/RegionPrototype.lua index 14731f08f..df9c3d901 100644 --- a/Interface/AddOns/WeakAuras/RegionTypes/RegionPrototype.lua +++ b/Interface/AddOns/WeakAuras/RegionTypes/RegionPrototype.lua @@ -4,7 +4,7 @@ local AddonName, Private = ... local WeakAuras = WeakAuras; local L = WeakAuras.L; -local GetAtlasInfo = WeakAuras.IsClassic() and GetAtlasInfo or C_Texture.GetAtlasInfo +local GetAtlasInfo = C_Texture and C_Texture.GetAtlasInfo or GetAtlasInfo WeakAuras.regionPrototype = {}; @@ -975,7 +975,9 @@ function WeakAuras.regionPrototype.AddExpandFunction(data, region, cloneId, pare end function WeakAuras.SetTextureOrAtlas(texture, path, wrapModeH, wrapModeV) - if type(path) == "string" and GetAtlasInfo(path) then + texture.IsAtlas = type(path) == "string" and GetAtlasInfo(path) ~= nil + if texture.IsAtlas then + texture:SetTexCoord(0, 1, 0, 1) return texture:SetAtlas(path); else if (texture.wrapModeH and texture.wrapModeH ~= wrapModeH) or (texture.wrapModeV and texture.wrapModeV ~= wrapModeV) then diff --git a/Interface/AddOns/WeakAuras/RegionTypes/Texture.lua b/Interface/AddOns/WeakAuras/RegionTypes/Texture.lua index 8192ab76c..b38b5c1e6 100644 --- a/Interface/AddOns/WeakAuras/RegionTypes/Texture.lua +++ b/Interface/AddOns/WeakAuras/RegionTypes/Texture.lua @@ -3,6 +3,7 @@ if not WeakAuras.IsLibsOK() then return end local AddonName, Private = ... local L = WeakAuras.L; +local GetAtlasInfo = C_Texture and C_Texture.GetAtlasInfo or GetAtlasInfo local default = { texture = "Interface\\Addons\\WeakAuras\\PowerAurasMedia\\Auras\\Aura3", @@ -112,6 +113,7 @@ local function modify(parent, region, data) region.mirror = data.mirror local function DoTexCoord() + if region.texture.IsAtlas then return end local mirror_h, mirror_v = region.mirror_h, region.mirror_v; if(region.mirror) then mirror_h = not mirror_h; @@ -223,7 +225,7 @@ local function modify(parent, region, data) region.texture:SetDesaturated(b); end - if(data.rotate) then + if data.rotate then function region:Rotate(degrees) region.rotation = degrees; DoTexCoord(); diff --git a/Interface/AddOns/WeakAuras/Types.lua b/Interface/AddOns/WeakAuras/Types.lua index 47556e365..0ab5167de 100644 --- a/Interface/AddOns/WeakAuras/Types.lua +++ b/Interface/AddOns/WeakAuras/Types.lua @@ -229,6 +229,7 @@ Private.format_types = { }) addOption(symbol .. "_abbreviate_max", { type = "range", + control = "WeakAurasSpinBox", name = L["Max Char "], width = WeakAuras.normalWidth, min = 1, @@ -264,6 +265,7 @@ Private.format_types = { addOption(symbol .. "_time_dynamic_threshold", { type = "range", + control = "WeakAurasSpinBox", min = 0, max = 60, step = 1, @@ -452,6 +454,7 @@ Private.format_types = { }) addOption(symbol .. "_abbreviate_max", { type = "range", + control = "WeakAurasSpinBox", name = L["Max Char "], width = WeakAuras.normalWidth, min = 1, @@ -579,6 +582,7 @@ Private.format_types = { }) addOption(symbol .. "_abbreviate_max", { type = "range", + control = "WeakAurasSpinBox", name = L["Max Char "], width = WeakAuras.normalWidth, min = 1, @@ -1445,30 +1449,20 @@ Private.main_spell_schools = { Private.texture_types = { ["Blizzard Alerts"] = { - ["1027131"] = "Arcane Missiles 1", - ["1027132"] = "Arcane Missiles 2", - ["1027133"] = "Arcane Missiles 3", - ["450913"] = "Art of War", - ["801266"] = "Backlash_Green", - ["460830"] = "Backslash", - ["1030393"] = "Bandits Guile", - ["510822"] = "Berserk", - ["511104"] = "Blood Boil", + ["424570"] = "Spell Activation Overlay 0", + ["449486"] = "Arcane Missiles", ["449487"] = "Blood Surge", ["449488"] = "Brain Freeze", - ["603338"] = "Dark Tiger", - ["461878"] = "Dark Transformation", - ["459313"] = "Daybreak", - ["511469"] = "Denounce", - ["2851787"] = "Demonic Core", - ["2888300"] = "Demonic Core Vertical", - ["1057288"] = "Echo of the Elements", + ["449489"] = "Frozen Fingers", + ["449490"] = "Hot Streak", + ["449491"] = "Imp Empowerment", + ["449492"] = "Nightfall", + ["449493"] = "Sudden Death", + ["449494"] = "Sword and Board", + ["450913"] = "Art of War", ["450914"] = "Eclipse Moon", ["450915"] = "Eclipse Sun", ["450916"] = "Focus Fire", - ["449489"] = "Frozen Fingers", - ["467696"] = "Fulmination", - ["460831"] = "Fury of Stormrage", ["450917"] = "Generic Arc 1", ["450918"] = "Generic Arc 2", ["450919"] = "Generic Arc 3", @@ -1478,83 +1472,97 @@ Private.texture_types = { ["450923"] = "Generic Top 1", ["450924"] = "Generic Top 2", ["450925"] = "Grand Crusader", - ["459314"] = "Hand of Light", - ["2851788"] = "High Tide", - ["449490"] = "Hot Streak", - ["801267"] = "Imp Empowerment Green", - ["449491"] = "Imp Empowerment", - ["457658"] = "Impact", - ["458740"] = "Killing Machine", ["450926"] = "Lock and Load", - ["1028136"] = "Maelstrom Weapon 1", - ["1028137"] = "Maelstrom Weapon 2", - ["1028138"] = "Maelstrom Weapon 3", - ["1028139"] = "Maelstrom Weapon 4", ["450927"] = "Maelstrom Weapon", ["450928"] = "Master Marksman", - ["801268"] = "Molten Core Green", + ["450929"] = "Nature's Grace", + ["450930"] = "Rime", + ["450931"] = "Slice and Dice", + ["450932"] = "Sudden Doom", + ["450933"] = "Surge of Light", + ["457658"] = "Impact", + ["458740"] = "Killing Machine", ["458741"] = "Molten Core", - ["1001511"] = "Monk Blackout Kick", - ["1028091"] = "Monk Ox 2", - ["1028092"] = "Monk Ox 3", + ["459313"] = "Daybreak", + ["459314"] = "Hand of Light", + ["460830"] = "Backslash", + ["460831"] = "Fury of Stormrage", + ["461878"] = "Dark Transformation", + ["463452"] = "Shooting Stars", + ["467696"] = "Fulmination", + ["469752"] = "Serendipity", + ["510822"] = "Berserk", + ["510823"] = "Omen of Clarity (Feral)", + ["511104"] = "Blood Boil", + ["511105"] = "Necropolis", + ["511469"] = "Denounce", + ["592058"] = "Surge of Darkness", + ["603338"] = "Dark Tiger", + ["603339"] = "White Tiger", ["623950"] = "Monk Ox", ["623951"] = "Monk Serpent", - ["1001512"] = "Monk Tiger Palm", ["623952"] = "Monk Tiger", - ["450929"] = "Nature's Grace", - ["511105"] = "Necropolis", - ["449492"] = "Nightfall", - ["510823"] = "Omen of Clarity (Feral)", + ["627609"] = "Shadow of Death", + ["627610"] = "Ultimatum", + ["656728"] = "Shadow Word Insanity", + ["774420"] = "Tooth and Claw", + ["801266"] = "Backlash_Green", + ["801267"] = "Imp Empowerment Green", + ["801268"] = "Molten Core Green", ["898423"] = "Predatory Swiftness", ["962497"] = "Raging Blow", - ["450930"] = "Rime", - ["469752"] = "Serendipity", - ["656728"] = "Shadow Word Insanity", - ["627609"] = "Shadow of Death", - ["463452"] = "Shooting Stars", - ["450931"] = "Slice and Dice", - ["424570"] = "Spell Activation Overlay 0", - ["449493"] = "Sudden Death", - ["450932"] = "Sudden Doom", - ["592058"] = "Surge of Darkness", - ["450933"] = "Surge of Light", - ["449494"] = "Sword and Board", + ["1001511"] = "Monk Blackout Kick", + ["1001512"] = "Monk Tiger Palm", + ["1027131"] = "Arcane Missiles 1", + ["1027132"] = "Arcane Missiles 2", + ["1027133"] = "Arcane Missiles 3", + ["1028091"] = "Monk Ox 2", + ["1028092"] = "Monk Ox 3", + ["1028136"] = "Maelstrom Weapon 1", + ["1028137"] = "Maelstrom Weapon 2", + ["1028138"] = "Maelstrom Weapon 3", + ["1028139"] = "Maelstrom Weapon 4", ["1029138"] = "Thrill of the Hunt 1", ["1029139"] = "Thrill of the Hunt 2", ["1029140"] = "Thrill of the Hunt 3", - ["774420"] = "Tooth and Claw", - ["627610"] = "Ultimatum", - ["603339"] = "White Tiger", + ["1030393"] = "Bandits Guile", + ["1057288"] = "Echo of the Elements", + ["1518303"] = "Predatory Swiftness Green", + ["2851787"] = "Demonic Core", + ["2851788"] = "High Tide", + ["2888300"] = "Demonic Core Vertical", + ["4699056"] = "Essence Burst", + ["4699057"] = "Snapfire", }, ["Icons"] = { - ["166662"] = "Shield", ["165558"] = "Paw", - ["166989"] = "Stun Whirl", - ["166036"] = "Rage", - ["165610"] = "Monkey", + ["165605"] = "Feathers", ["165607"] = "Lion", - ["240925"] = "Holy Ruin", - ["166058"] = "Eyes", - ["166606"] = "Leaf", - ["166706"] = "Reticle", - ["166984"] = "Crossed Swords", - ["166418"] = "Inner Fire", ["165608"] = "Cheetah", - ["240972"] = "Poison Skull", - ["166680"] = "Rampage", - ["165605"] = "Feathers", - ["166423"] = "Intellect", ["165609"] = "Hawk", - ["240961"] = "Crescent", - ["166056"] = "Eye", + ["165610"] = "Monkey", ["165611"] = "Snake", - ["241049"] = "Star", - ["166386"] = "Snowflake", ["165612"] = "Wolf", + ["166036"] = "Rage", + ["166056"] = "Eye", + ["166058"] = "Eyes", + ["166125"] = "Fire", + ["166386"] = "Snowflake", + ["166418"] = "Inner Fire", + ["166423"] = "Intellect", + ["166606"] = "Leaf", + ["166662"] = "Shield", + ["166680"] = "Rampage", + ["166683"] = "Rapid Fire", + ["166706"] = "Reticle", ["166948"] = "Spirit", ["166954"] = "Bull", - ["166683"] = "Rapid Fire", - ["166125"] = "Fire", + ["166984"] = "Crossed Swords", + ["166989"] = "Stun Whirl", + ["240925"] = "Holy Ruin", + ["240961"] = "Crescent", + ["240972"] = "Poison Skull", + ["241049"] = "Star", ["Interface\\AddOns\\WeakAuras\\Media\\Textures\\cancel-icon.tga"] = "Cancel Icon", ["Interface\\AddOns\\WeakAuras\\Media\\Textures\\cancel-mark.tga"] = "Cancel Mark", ["Interface\\AddOns\\WeakAuras\\Media\\Textures\\emoji.tga"] = "Emoji", @@ -1566,31 +1574,31 @@ Private.texture_types = { }, ["Runes"] = { ["165630"] = "Ringed Aura Rune", - ["166341"] = "Holy Cross Rune", - ["166757"] = "Circular Frost Rune", - ["241005"] = "Dense Circular Rune", - ["165927"] = "Demon Rune", - ["241004"] = "Octagonal Skulls", - ["166753"] = "Heavy BC Rune", + ["165631"] = "Square Aura Rune", + ["165633"] = "Tri-Circle Aura Rune", + ["165634"] = "Tri-Circle Ringed Aura Rune", + ["165635"] = "Spike-Ringed Aura Rune", ["165638"] = "Small Tri-Circle Aura Rune", ["165639"] = "Sliced Aura Rune", + ["165640"] = "Oblong Aura Rune", + ["165881"] = "Dark Summon", ["165885"] = "Death Rune", - ["166749"] = "Ringed Circular Rune", ["165922"] = "Demonic Summon", + ["165927"] = "Demon Rune", ["165928"] = "Demon Rune", - ["165633"] = "Tri-Circle Aura Rune", ["165929"] = "Demon Rune", - ["165634"] = "Tri-Circle Ringed Aura Rune", - ["165635"] = "Spike-Ringed Aura Rune", - ["166750"] = "Sparse Circular Rune", - ["241003"] = "Dual Blades", - ["165631"] = "Square Aura Rune", - ["165881"] = "Dark Summon", ["166340"] = "Holy Rune", - ["165640"] = "Oblong Aura Rune", + ["166341"] = "Holy Cross Rune", ["166748"] = "Filled Circular Rune", + ["166749"] = "Ringed Circular Rune", + ["166750"] = "Sparse Circular Rune", + ["166753"] = "Heavy BC Rune", ["166754"] = "Light BC Rune", + ["166757"] = "Circular Frost Rune", ["166979"] = "Star Rune", + ["241003"] = "Dual Blades", + ["241004"] = "Octagonal Skulls", + ["241005"] = "Dense Circular Rune", }, ["PvP Emblems"] = { ["Interface\\PVPFrame\\PVP-Banner-Emblem-1"] = "Wheelchair", @@ -1702,35 +1710,35 @@ Private.texture_types = { ["Interface\\PVPFrame\\Icons\\PVP-Banner-Emblem-101"] = "Eagle Face" }, ["Beams"] = { - ["186198"] = "Lightning", - ["186187"] = "Red Drops Beam", ["167096"] = "Gold Chain", - ["186205"] = "Mana Burn Beam", - ["186208"] = "Rope", - ["186185"] = "Purple Beam", + ["167097"] = "Iron Chain", + ["167098"] = "Green Fire Beam", ["167099"] = "Red Fire Beam", - ["186214"] = "Soul Beam", - ["186189"] = "Drain Mana Lightning", + ["167100"] = "Brown Smoke Beam", + ["167101"] = "Grey Smoke Beam", + ["167102"] = "Green Vine", ["167103"] = "Red Vine", - ["186192"] = "Ethereal Ribbon", - ["186201"] = "Red Lightning", - ["241099"] = "Summon Gargoyle Beam", ["167104"] = "Blue Water Beam", - ["167098"] = "Green Fire Beam", + ["167105"] = "Green Water Beam", + ["186185"] = "Purple Beam", ["186186"] = "Red Beam", - ["167101"] = "Grey Smoke Beam", + ["186187"] = "Red Drops Beam", + ["186189"] = "Drain Mana Lightning", + ["186192"] = "Ethereal Ribbon", + ["186193"] = "Ghost Chain", ["186194"] = "Purple Ghost Chain", - ["167102"] = "Green Vine", - ["369750"] = "Shadow Beam", ["186195"] = "Heal Beam", - ["167100"] = "Brown Smoke Beam", + ["186198"] = "Lightning", + ["186201"] = "Red Lightning", ["186202"] = "Mana Beam", - ["369749"] = "Straight Purple Beam", - ["241098"] = "Spirit Link Beam", - ["167105"] = "Green Water Beam", - ["167097"] = "Iron Chain", - ["186193"] = "Ghost Chain", + ["186205"] = "Mana Burn Beam", + ["186208"] = "Rope", ["186211"] = "Shock Lightning", + ["186214"] = "Soul Beam", + ["241098"] = "Spirit Link Beam", + ["241099"] = "Summon Gargoyle Beam", + ["369749"] = "Straight Purple Beam", + ["369750"] = "Shadow Beam", ["Interface\\AddOns\\WeakAuras\\Media\\Textures\\rainbowbar"] = "Rainbow Bar", ["Interface\\AddOns\\WeakAuras\\Media\\Textures\\StripedTexture"] = "Striped Bar", ["Interface\\AddOns\\WeakAuras\\Media\\Textures\\stripe-bar.tga"] = "Striped Bar 2", @@ -1799,6 +1807,13 @@ Private.texture_types = { ["Interface\\AddOns\\WeakAuras\\Media\\Textures\\logo_256.tga"] = "WeakAuras logo 256px" } } + +if Private.AtlasList then + Private.texture_types["Blizzard Atlas"] = {} + for _, atlas in ipairs(Private.AtlasList) do + Private.texture_types["Blizzard Atlas"][atlas] = atlas + end +end local BuildInfo = select(4, GetBuildInfo()) if BuildInfo <= 80100 then -- 8.1.5 Private.texture_types.Sparks["worldstate-capturebar-spark-green"] = "Capture Bar Green Spark" diff --git a/Interface/AddOns/WeakAuras/Types_Retail.lua b/Interface/AddOns/WeakAuras/Types_Retail.lua index 7846f79b2..af092a0b0 100644 --- a/Interface/AddOns/WeakAuras/Types_Retail.lua +++ b/Interface/AddOns/WeakAuras/Types_Retail.lua @@ -48776,3 +48776,5 @@ updateTalentFrame:SetScript("OnEvent", function() end end) end) + +Private.AtlasList = {'CommittedName','MainPet-PetFamilyFrame','Timer-Frame','MainPet-HealthBarBG','Timer-BG','BackupPet-DeadFrame','MainPet-HealthBarFrame','Start-VersusSplash','BackupPet-Frame','BattleHUD-Top','BattleBar-ButtonBG-EndCap','BattleBar-SwapPetFrame-DeadIcon','MainPet-HealthBarFill','BattleBar-EndCap','BattleBar-Button-Highlight','BattleBar-SwapPetFrame','Timer-Fill','BattleBar-SwapPetIcon','MainPet-Frame','BattleBar-Countdown-Shadow','BattleBar-ButtonBG-Divider','BattleBar-SwapPetShadow','BattleBar-SwapPetFrame-Highlight','MainPet-PetFamilyActivate','MainPet-LevelBubble','BattleHUD-Versus','_BattleBar-ButtonBGMid','_BattleBar-Mid','backarrow-brown','mapcornershadow-left','mapcornershadow-right','noquestsbackground','optionsicon-brown','questcollapse-hide-down','questcollapse-hide-up','questcollapse-show-down','questcollapse-show-up','questdetails-rewardsbottomoverlay','questdetails-rewardsoverlay','questdetails-topoverlay','questdetailsbackgrounds','questionmarkcontinent-icon','questionmarkcontinent-iconhighlight','questlogbackground','storyheader-bg','storyheader-cheevoicon','storyheader-shadow','taskpoi-icon','taskpoi-iconhighlight','taskpoi-iconselect','ui-outerborderbuttonpatch','ui-squarebuttonbrown-down','ui-squarebuttonbrown-up','questitemborder-small','questitemborder','Talent-Separator','Talent-BottomLeftCurlies','Talent-Highlight','Talent-TopRightCurlies','Talent-TopLeftCurlies','Talent-Background','Talent-Selection','Talent-RingWithDot','Talent-BottomRightCurlies','PetJournal-BattleSlot-Active','PetJournal-BattleSlot-Locked','PetJournal-PetCard-BG','PetJournal-BattleSlotFrame-Corner','PetJournal-ExpBar-Left','PetJournal-BattleSlotTitle-Right','PetJournal-ExpBar-Background','PetJournal-PetBattleAchievementGlow','PetJournal-HealthBar-Left','PetJournal-PetCard-Abilities','PetJournal-BattleSlot-AbilityBorder','PetJournal-ExpBar-Divider','PetJournal-ExpBar-Right','PetJournal-BattleSlot-IconBorder','PetJournal-LevelBubble','PetJournal-ExpBar-Mid','PetJournal-PetBattleAchievementBG','PetJournal-BattleSlot-Shadow','PetJournal-BattleSlotTitle-Left','PetJournal-HealthBar-Mid','PetJournal-HealthBar-Right','PetJournal-HealthBar-Background','_BattleSlotTitle-BG','_BattleSlotFrame-Top','_BattleSlotFrame-Divider','_BattleSlotTitle-Mid','MountJournalIcons-Alliance','MountJournalIcons-Horde','_Talent-blue-glow','_Talent-Bottom-Tile','_Talent-Top-Tile','bluemenu-Ring','petlist-buttonbackground','petlist-buttonhighlight','petlist-buttonselect','PetJournal-FavoritesIcon','NewCharacter-Alliance','NewCharacter-Horde','Garr_InfoBox-Corner','Garr_InfoBoxBorder-BigBottomCorner','Garr_InfoBoxBorder-Corner','Garr_InfoBoxBorder-FiligreeCorner','Garr_WoodFrameCorner','_Garr_InfoBox-Top','_Garr_InfoBoxBorder-BigBottom','_Garr_InfoBoxBorder-Top','_Garr_WoodFrameTile-Bottom','_Garr_WoodFrameTile-Top','_Garr_XPBar_Mid','!Garr_InfoBox-Left','!Garr_InfoBoxBorder-Left','!Garr_WoodFrameTile-Left','Garr_BuildingIconRing_','Garr_BuildingPlacementExplosion','Garr_CostBar','Garr_FollowerPortrait_Bg','Garr_FollowerPortrait_Ring','Garr_FollowerPortrait_TimerBG','Garr_FollowerPortrait_TimerFill','Garr_LevelBadge_1','Garr_LevelBadge_2','Garr_LevelBadge_3','Garr_LevelUpgradeArrow','Garr_LevelUpgradeLocked','Garr_ListButton-Highlight','Garr_ListButton-Selection','Garr_ListButton','Garr_ListTab-Highlight','Garr_ListTab-Select','Garr_ListTab','Garr_MaterialIcon','Garr_MonumentLocked','Garr_MonumentOpen','Garr_PlanIcon-List','Garr_PlansRequiredIcon','Garr_Plot_Glow_3','Garr_Plot_Glow_2','Garr_Plot_Glow_1','Garr_Plot_Glow_4','Garr_Specialization_FrameLeft','Garr_Specialization_FrameMid','Garr_Specialization_IconBorder','Garr_Specialization_IconSelected','Garr_TownHallBanner_Left','Garr_TownHallBanner_LevelFiligree','Garr_TownHallBanner_Mid','Garr_TownHallBanner_Right','Garr_TreasureIcon','Garr_XPBar_Left','Garr_XPBar_Nub','Garr_Map_Shadowmoon1_A','Garr_Map_Shadowmoon2_A','Garr_Map_Shadowmoon3_A','Garr_Plot_Shadowmoon_A_4','Garr_Plot_Shadowmoon_A_1','Garr_Plot_Shadowmoon_A_2','Garr_Plot_Shadowmoon_A_3','Garr_InfoBox-BackgroundTile','Garr_WoodFrame-BackgroundTile','Garr_InfoBox-CornerShadow','GarrBuilding_Default_Info','GarrBuilding_Default_Map','GarrBuilding_EmptyPlot_1_A_Info','GarrBuilding_Armory_1_A_Info','GarrBuilding_Armory_2_A_Info','GarrBuilding_Armory_3_A_Info','GarrBuilding_Armory_1_A_Map','GarrBuilding_Armory_2_A_Map','GarrBuilding_Armory_3_A_Map','GarrBuilding_Alchemy_1_A_Info','GarrBuilding_Alchemy_2_A_Info','GarrBuilding_Alchemy_3_A_Info','GarrBuilding_Alchemy_1_A_Map','GarrBuilding_Alchemy_2_A_Map','GarrBuilding_Alchemy_3_A_Map','DruidEclipse-LunarCover','DruidEclipse-SolarCover','DruidEclipse-Arrow','DruidEclipse-BaseBar','DruidEclipse-BaseMoon','DruidEclipse-BaseSun','DruidEclipse-Diamond','DruidEclipse-Line','DruidEclipse-LunarBar','DruidEclipse-LunarMoon','DruidEclipse-LunarSun','DruidEclipse-SolarBar','DruidEclipse-SolarMoon','DruidEclipse-SolarSun','Garr_BuildIcon','Garr_BuildingConfirmation','Garr_BuildingIconTimerBG','Garr_BuildingIconTimerFill','Garr_BuildingTimerBG','Garr_BuildingTimerFill','Garr_BuildingTimerGlow','Garr_BuildingUpgradeExplosion','Garr_LevelBadgeGlow','Garr_NotificationGlow','Garr_UpgradeBanner','Garr_UpgradeIcon','Garr_UpgradeIconTimerBG','Garr_UpgradeIconTimerFill','Garr_UpgradeTimerBG','Garr_UpgradeTimerFill','Garr_UpgradeTimerGlow','Garr_Toast','Garr_BuildingShadowOverlay','GarrMission_Bg-DarkEdgeCorner','GarrMission_CounterCheck','GarrMission_EncounterAbilityBorder','GarrMission_EncounterBar-BG','GarrMission_EncounterBar-End','GarrMission_EncounterBar-Fill','GarrMission_EncounterBar-PortraitRing','GarrMission_EncounterBar-Spark','GarrMission_EncounterBar-Xbg','GarrMission_EncounterBar-Xleft','GarrMission_FollowerAbilityRollout','GarrMission_FollowerPartyBox_Lg','GarrMission_FollowerPartyBox_Sm','GarrMission_ItemFrame','GarrMission_LevelUpBanner','GarrMission_LocationCover-Side','GarrMission_ParchmentHeader-End','GarrMission_PartyBuffsBG','GarrMission_PortraitRing','GarrMission_PortraitRing_Empty','GarrMission_PortraitRing_Enemy','GarrMission_PortraitRing_LevelBorder','GarrMission_RareGlowBG','GarrMission_RewardsBanner-Desaturate','GarrMission_RewardsBanner','GarrMission_RewardsBG-Desaturate','GarrMission_RewardsBG','GarrMission_RewardsBorder-Corner-Desaturate','GarrMission_RewardsBorder-Corner','GarrMission_Silhouettes-1Alliance','GarrMission_Silhouettes-1Horde','GarrMission_SingleModelBG','GarrMission_StartMissionFrame','_GarrMission_Bg-BottomEdge','_GarrMission_Bg-BottomEdgeSmall','_GarrMission_LocationCover-Bottom','_GarrMission_ParchmentHeader-Mid','_GarrMission_RewardsBorder-Top-Desaturate','_GarrMission_RewardsBorder-Top','_GarrMission_TopBorder-Highlight','_GarrMission_TopBorder-Select','_GarrMission_TopBorder','_GarrMission_XPBar-BG','_GarrMission_XPBar-Fill','_Garr_InfoBoxBorderMission-Top','!GarrMission_Bg-Edge','!GarrMission_RewardsBorder-Left-Desaturate','!GarrMission_RewardsBorder-Left','!Garr_InfoBoxBorderMission-Left','Garr_InfoBoxMission-BackgroundTile','GarrMission_FollowerListButton','GarrMission_FollowerListButton-Highlight','GarrMission_FollowerListButton-Select','GarrMission_FollowerPageHeaderBG','GarrMission_IconLevelBG','GarrMission_ListGlow-Highlight','GarrMission_ListGlow-Select','GarrMission_PlayerLootFrame','GarrMission_RareOverlay','GarrMission_TopBorderCorner','GarrMission_TopBorderCorner-Highlight','GarrMission_TopBorderCorner-Select','GarrMission_UsefulAbilityIcon','GarrMission_XPBarBig-End','GarrMission_XPBarBig-LevelBorder','GarrMission_XPBarBig-Mid','Garr_InfoBoxBorderMission-Corner','PartySizeIcon','GarrMission_CurrencyIcon-Material','GarrMission_CurrencyIcon-Salvage','GarrMission_CurrencyIcon-Xp','_GarrMissionLocation-TannanJungle-Back','_GarrMissionLocation-TannanJungle-Fore','_GarrMissionLocation-TannanJungle-Mid','GarrMission_MissionParchment','GarrBuilding_MageTower_1_A_Info','GarrBuilding_MageTower_2_A_Info','GarrBuilding_MageTower_3_A_Info','GarrBuilding_TownHall_1_A_Info','GarrBuilding_TownHall_2_A_Info','GarrBuilding_TownHall_3_A_Info','GarrBuilding_TownHall_3_A_Map','GarrBuilding_TownHall_2_A_Map','GarrBuilding_TownHall_1_A_Map','GarrBuilding_MageTower_1_A_Map','GarrBuilding_MageTower_2_A_Map','GarrBuilding_MageTower_3_A_Map','GarrBuilding_Inn_1_A_Info','GarrBuilding_Inn_1_A_Map','GarrBuilding_Inn_2_A_Info','GarrBuilding_Inn_3_A_Info','GarrBuilding_Inn_2_A_Map','GarrBuilding_Inn_3_A_Map','GarrBuilding_Mine_1_A_Info','GarrBuilding_Mine_2_A_Info','GarrBuilding_Mine_3_A_Info','GarrBuilding_Mine_1_A_Map','GarrBuilding_Mine_2_A_Map','GarrBuilding_Mine_3_A_Map','GarrBuilding_Barracks_1_A_Map','GarrBuilding_Barracks_2_A_Map','GarrBuilding_Barracks_3_A_Map','GarrBuilding_Barracks_1_A_Info','GarrBuilding_Barracks_2_A_Info','GarrBuilding_Barracks_3_A_Info','GarrBuilding_Engineering_1_A_Info','GarrBuilding_Engineering_2_A_Info','GarrBuilding_Engineering_3_A_Info','GarrBuilding_Engineering_1_A_Map','GarrBuilding_Engineering_2_A_Map','GarrBuilding_Engineering_3_A_Map','Rewards-Shadow','OBJFX_LineBurst','OBJBonusBar-Top','OBJFX_LineGlow','Objective-Header','Rewards-Top','OBJFX_StarBurst','Objective-Nub','OBJFX_Glow','shadoworbs-small-Orb-Bg','shadoworbs-small-Orb','shadoworbs-small-Frame-OrbHighlight','shadoworbs-large-Orb','shadoworbs-large-Frame','shadoworbs-large-Orb-Bg','shadoworbs-large-Frame-OrbHighlight','shadoworbs-small-Frame','achievementcompare-GreenCheckmark','achievementcompare-YellowCheckmark','MonkUI-background-shadow','MonkUI-OrbOff','MonkUI-OrbOff-small','MonkUI-LightOrb-small','MonkUI-background','MonkUI-LightOrb','Garr_InfoBoxMission-Corner','_Garr_InfoBoxMission-Top','!Garr_InfoBoxMission-Left','bags-newitem','Tracker-Check','_GarrMission_MissionListTopHighlight','GarrMission_PartyBuffAbilityBorder','collections-icon-favorites','collections-itemborder-collected','collections-itemborder-uncollected-innerglow','collections-itemborder-uncollected','collections-levelplate-black','collections-levelplate-gold','collections-newglow','collections-slotheader','collections-background-filagree','collections-background-corner','collections-background-tile','_collections-background-line','collections-background-shadow-small','collections-background-shadow-large','bags-junkcoin','bags-innerglow','Capacitance-Blacksmithing-BG','Capacitance-Blacksmithing-IconBG','Capacitance-Blacksmithing-IconBorder','Capacitance-Blacksmithing-TimerBG','Capacitance-Blacksmithing-TimerFill','Capacitance-Blacksmithing-TimerFrame','Capacitance-General-EmptyFollower','Capacitance-General-ItemBorder','Capacitance-General-LockIcon','Capacitance-General-WorkOrderActive','Capacitance-General-WorkOrderArrow','Capacitance-General-WorkOrderBorder','Capacitance-General-WorkOrderCheckmark','Capacitance-General-WorkOrderEmpty','Capacitance-General-LevelBorder','Capacitance-General-PortraitRing','minortalents-icon-book','minortalents-iconcover','_minortalents-iconspinner','Objective-Fail','minortalents-backplate','minortalents-descriptionshadow','characterundelete-RestoreButton','bank-slots-shadow','bank-slots','Garr_MissionToast','Garr_FollowerToast-Epic','Garr_FollowerToast-Rare','Garr_FollowerToast-Uncommon','Garr_MissionToast-IconBG','Garr_Map_Frostfire1_H','Garr_Map_Frostfire2_H','Garr_Map_Frostfire3_H','ZoneAbility-Generic-AbilityBar-Glow','ZoneAbility-Generic-AbilityBar','ZoneAbility-Generic-IconBorder','ZoneAbility-Generic-SpellBox','groupfinder-icon-voice','groupfinder-icon-friend','GarrBuilding_Barn_1_A_Info','GarrBuilding_Barn_2_A_Info','GarrBuilding_Barn_3_A_Info','GarrBuilding_Barn_1_A_Map','GarrBuilding_Barn_2_A_Map','GarrBuilding_Barn_3_A_Map','garlanding-bottom','garlanding-left','garlanding-right','garrlanding-invasionbadge-glow','garrlanding-invasionbadge','garrlanding-missionlistbg','garrlanding-top','garrlanding-tradeskilltimer-bg','garrlanding_watermark-tradeskill','garrlanding-followerscrollframe','garrlanding-lowerleft','garrlanding-lowerright','garrlanding-upperleft','garrlanding-upperright','garrlanding-headerbar','GarrLanding-MiddleTile','garrlanding-mission-complete','garrlanding-mission-inprogress','garrlanding-building-complete','garrlanding-building-inprogress','Garr_BuildingInfoShadow','GarrBuilding_Farm_1_A_Info','GarrBuilding_Farm_2_A_Info','GarrBuilding_Farm_3_A_Info','GarrBuilding_Farm_1_A_Map','GarrBuilding_Farm_2_A_Map','GarrBuilding_Farm_3_A_Map','GarrBuilding_LumberMill_1_A_Info','GarrBuilding_LumberMill_2_A_Info','GarrBuilding_LumberMill_3_A_Info','GarrBuilding_LumberMill_1_A_Map','GarrBuilding_LumberMill_2_A_Map','GarrBuilding_LumberMill_3_A_Map','GarrBuilding_SalvageYard_1_A_Info','GarrBuilding_SalvageYard_1_A_Map','GarrBuilding_SparringArena_1_A_Info','GarrBuilding_SparringArena_2_A_Info','GarrBuilding_SparringArena_3_A_Info','GarrBuilding_SparringArena_1_A_Map','GarrBuilding_SparringArena_2_A_Map','GarrBuilding_SparringArena_3_A_Map','GarrBuilding_Stables_1_A_Info','GarrBuilding_Stables_2_A_Info','GarrBuilding_Stables_3_A_Info','GarrBuilding_Stables_1_A_Map','GarrBuilding_Stables_2_A_Map','GarrBuilding_Stables_3_A_Map','GarrBuilding_Storehouse_1_A_Info','GarrBuilding_Storehouse_1_A_Map','GarrBuilding_TradingPost_1_A_Info','GarrBuilding_TradingPost_2_A_Info','GarrBuilding_TradingPost_3_A_Info','GarrBuilding_TradingPost_1_A_Map','GarrBuilding_TradingPost_2_A_Map','GarrBuilding_TradingPost_3_A_Map','Objective-ItemBorder','Garr_Building-AddFollowerPlus','Monuments-Frame','Monuments-LeftButton-Down','Monuments-LeftButton-Up','Monuments-RightButton-Down','Monuments-RightButton-Up','Monuments-LockedOverlay','Monuments-Lock','BonusChest-KeyholeBurst','BonusChest-KeyholeGlow','BonusChest-Lock','BonusChest-CircleGlow','guild-levelring','Calendar_Quest','groupfinder-highlightbar-green','groupfinder-highlightbar-yellow','groupfinder-icon-greencheckmark','groupfinder-icon-redx','groupfinder-background','groupfinder-button-arenas','groupfinder-button-battlegrounds','groupfinder-button-cover','groupfinder-button-custom-pve','groupfinder-button-custom-pvp','groupfinder-button-dungeons','groupfinder-button-questing','groupfinder-button-ratedbgs','groupfinder-button-scenarios','groupfinder-button-skirmishes','groupfinder-highlightbar-blue','Garr_SwapIcon','Garr_BuildFX-Glow','Garr_BuildFX-Lines','Garr_LockedBuilding','Garr_UpgradeFX-Glow','BonusChest-ItemBorder-Uncommon','BonusChest-Burst-Uncommon','bags-glow-purple','bags-glow-blue','bags-glow-orange','bags-glow-green','bags-glow-heirloom','bags-glow-white','bags-glow-flash','LFG-lock','Garr_Building_MaterialFrame','Garr_Mission_MaterialFrame','GarrMission_RewardsListBG','GarrMission_RewardsShadow','Garr_MissionList-CostBG','Garr_MissionList-IconBG','GarrMission_ParchmentHeaderSelect-End','_GarrMission_ParchmentHeaderSelect-Mid','GarrMission_MissionCostStartButtonBg','GarMission_ChestPercentageShadow','GarrMission_ChestOpenTextGlow','GarrMission_PortraitRing_Glow','GarrMission_PortraitRing_Highlight','splash-bigbutton','BonusChest-Smoke-Uncommon','splash-botleft','splash-boost-botleft','splash-boost-right','splash-boost-topleft','splash-601-botleft','splash-601-right','splash-601-topleft','splash-600-botleft','splash-600-right','splash-600-topleft','GarrMission_CheckGlow','GarrMission_MissionIcon-Blacksmithing','GarrMission_MissionIcon-Combat','GarrMission_MissionIcon-Exploration','GarrMission_ClassIcon-Hunter','GarrMission_ClassIcon-Warrior','GarrMission_ClassIcon-Priest','GarrMission_ClassIcon-Monk','GarrMission_ClassIcon-Rogue','GarrMission_ClassIcon-Mage','GarrMission_ClassIcon-Warlock','GarrMission_ClassIcon-Shaman','GarrMission_ClassIcon-Druid','GarrMission_ClassIcon-Paladin','GarrMission_ClassIcon-DeathKnight','GarrMission_EncounterBar-Xright','Garr_MissionFX-Glow','Garr_MissionFX-Lines','groupfinder-icon-leader','Garr_Map_Frostfire4_H','Garr_Map_Shadowmoon4_A','GarrMission-FollowerItemBg','bags-button-autosort-down','bags-button-autosort-up','bags-roundhighlight','garrlanding-minimapicon-alliance-down','garrlanding-minimapicon-alliance-up','garrlanding-minimapicon-horde-up','garrlanding-minimapicon-horde-down','garrlanding-circleglow','garrlanding-minimapalertbg','garrlanding-sidetoast-glow','garrlanding-toptabhighlight','garrlanding-toptabselected','garrlanding-toptabunselected','Alliance_Tier1_Barracks','Alliance_Tier1_Professions','Alliance_Tier1_TownHall','GarrMission_MissionStart','loottoast-arrow-blue','loottoast-arrow-green','loottoast-arrow-orange','loottoast-arrow-purple','loottoast-bg-questrewardupgrade','loottoast-glow','loottoast-itemborder-blue','loottoast-itemborder-glow','loottoast-itemborder-green','loottoast-itemborder-orange','loottoast-itemborder-purple','loottoast-sheen','Headhunter_AbilityBorderGlow','Headhunter_BG','Headhunter_LineHeader','_GarrMissionLocation-FrostfireRidge-Back','_GarrMissionLocation-FrostfireRidge-Fore','_GarrMissionLocation-FrostfireRidge-Mid','garrlanding_rewardsshadow','garrlanding_rewardslistbg','garrlandinglist-costbg','GarrMission_MissionIcon-Enchanting','GarrMission_MissionIcon-Salvage','GarrMission_MissionIcon-Provision','GarrMission_MissionIcon-Generic','GarrMission_MissionIcon-Siege','GarrMission_MissionIcon-Alchemy','GarrMission_MissionIcon-Wildlife','GarrMission_MissionIcon-Tailoring','GarrMission_MissionIcon-Training','GarrMission_MissionIcon-Trading','GarrMission_MissionIcon-Jewelcrafting','GarrMission_MissionIcon-Defense','GarrMission_MissionIcon-Construction','GarrMission_MissionIcon-Inscription','GarrMission_MissionIcon-Logistics','GarrMission_MissionIcon-Engineering','GarrMission_MissionIcon-Patrol','GarrMission_MissionIcon-Recruit','GarrMission_MissionIcon-Leatherworking','GarrBuilding_Jewelcrafting_1_A_Info','GarrBuilding_Jewelcrafting_2_A_Info','GarrBuilding_Jewelcrafting_3_A_Info','GarrBuilding_Jewelcrafting_1_A_Map','GarrBuilding_Jewelcrafting_2_A_Map','GarrBuilding_Jewelcrafting_3_A_Map','GarrBuilding_Enchanting_1_A_Info','GarrBuilding_Enchanting_2_A_Info','GarrBuilding_Enchanting_3_A_Info','GarrBuilding_Enchanting_1_A_Map','GarrBuilding_Enchanting_2_A_Map','GarrBuilding_Enchanting_3_A_Map','GarrBuilding_Blacksmith_1_A_Info','GarrBuilding_Blacksmith_2_A_Info','GarrBuilding_Blacksmith_3_A_Info','GarrBuilding_Blacksmith_1_A_Map','GarrBuilding_Blacksmith_2_A_Map','GarrBuilding_Blacksmith_3_A_Map','GarrBuilding_Fishing_1_A_Info','GarrBuilding_Fishing_2_A_Info','GarrBuilding_Fishing_3_A_Info','GarrBuilding_Fishing_1_A_Map','GarrBuilding_Fishing_2_A_Map','GarrBuilding_Fishing_3_A_Map','GarrBuilding_Workshop_1_A_Info','GarrBuilding_Workshop_2_A_Info','GarrBuilding_Workshop_3_A_Info','GarrBuilding_Workshop_1_A_Map','GarrBuilding_Workshop_2_A_Map','GarrBuilding_Workshop_3_A_Map','groupfinder-eye-highlight','GarrBuilding_Tailoring_1_A_Info','GarrBuilding_Tailoring_2_A_Info','GarrBuilding_Tailoring_3_A_Info','GarrBuilding_Tailoring_1_A_Map','GarrBuilding_Tailoring_2_A_Map','GarrBuilding_Tailoring_3_A_Map','GarrBuilding_Inscription_1_A_Info','GarrBuilding_Inscription_2_A_Info','GarrBuilding_Inscription_3_A_Info','GarrBuilding_Inscription_1_A_Map','GarrBuilding_Inscription_2_A_Map','GarrBuilding_Inscription_3_A_Map','GarrBuilding_Leatherworking_1_A_Info','GarrBuilding_Leatherworking_2_A_Info','GarrBuilding_Leatherworking_3_A_Info','GarrBuilding_Leatherworking_1_A_Map','GarrBuilding_Leatherworking_2_A_Map','GarrBuilding_Leatherworking_3_A_Map','garrlanding-tradeskilltimer-parchmentbg','GarrBuilding_EmptyPlot_A_1','GarrBuilding_EmptyPlot_A_2','GarrBuilding_EmptyPlot_A_3','garrlanding-shipmentcompleteglow','GarrBuilding_PetStable_1_A_Info','GarrBuilding_PetStable_1_A_Map','_GarrMissionLocation-Gorgrond-Back','_GarrMissionLocation-Gorgrond-Fore','_GarrMissionLocation-Nagrand-Back','_GarrMissionLocation-Nagrand-Fore','_GarrMissionLocation-Nagrand-Mid','_GarrMissionLocation-Talador-Back','_GarrMissionLocation-Talador-Fore','_GarrMissionLocation-Talador-Mid','_GarrMissionLocation-ShadowmoonValley-Back','_GarrMissionLocation-ShadowmoonValley-Fore','_GarrMissionLocation-ShadowmoonValley-Mid','_GarrMissionLocation-SpiresofArak-Back','_GarrMissionLocation-SpiresofArak-Fore','_GarrMissionLocation-SpiresofArak-Mid','_GarrMissionLocation-Underground-Back','_GarrMissionLocation-Underground-Fore','_GarrMissionLocation-Underground-Mid','_GarrMissionLocation-TownHorde-Back','_GarrMissionLocation-TownHorde-Fore','_GarrMissionLocation-TownHorde-Mid','_GarrMissionLocation-TownAlliance-Back','_GarrMissionLocation-TownAlliance-Fore','_GarrMissionLocation-TownAlliance-Mid','GarrBuilding_Tailoring_1_H_Info','GarrBuilding_Tailoring_1_H_Map','GarrBuilding_Tailoring_2_H_Info','GarrBuilding_Tailoring_3_H_Info','GarrBuilding_Tailoring_2_H_Map','GarrBuilding_Tailoring_3_H_Map','GarrBuilding_Leatherworking_1_H_Info','GarrBuilding_Leatherworking_2_H_Info','GarrBuilding_Leatherworking_3_H_Info','GarrBuilding_Leatherworking_1_H_Map','GarrBuilding_Leatherworking_2_H_Map','GarrBuilding_Leatherworking_3_H_Map','GarrBuilding_Jewelcrafting_1_H_Info','GarrBuilding_Jewelcrafting_2_H_Info','GarrBuilding_Jewelcrafting_3_H_Info','GarrBuilding_Jewelcrafting_1_H_Map','GarrBuilding_Jewelcrafting_2_H_Map','GarrBuilding_Jewelcrafting_3_H_Map','GarrBuilding_Inscription_1_H_Info','GarrBuilding_Inscription_2_H_Info','GarrBuilding_Inscription_3_H_Info','GarrBuilding_Inscription_1_H_Map','GarrBuilding_Inscription_2_H_Map','GarrBuilding_Inscription_3_H_Map','GarrBuilding_Engineering_1_H_Info','GarrBuilding_Engineering_2_H_Info','GarrBuilding_Engineering_3_H_Info','GarrBuilding_Engineering_1_H_Map','GarrBuilding_Engineering_2_H_Map','GarrBuilding_Engineering_3_H_Map','GarrBuilding_Enchanting_1_H_Info','GarrBuilding_Enchanting_2_H_Info','GarrBuilding_Enchanting_3_H_Info','GarrBuilding_Enchanting_1_H_Map','GarrBuilding_Enchanting_2_H_Map','GarrBuilding_Enchanting_3_H_Map','GarrBuilding_Blacksmith_1_H_Info','GarrBuilding_Blacksmith_2_H_Info','GarrBuilding_Blacksmith_3_H_Info','GarrBuilding_Blacksmith_1_H_Map','GarrBuilding_Blacksmith_2_H_Map','GarrBuilding_Blacksmith_3_H_Map','GarrBuilding_Alchemy_1_H_Info','GarrBuilding_Alchemy_2_H_Info','GarrBuilding_Alchemy_3_H_Info','GarrBuilding_Alchemy_1_H_Map','GarrBuilding_Alchemy_2_H_Map','GarrBuilding_Alchemy_3_H_Map','GarrBuilding_Barn_1_H_Info','GarrBuilding_Barn_2_H_Info','GarrBuilding_Barn_3_H_Info','GarrBuilding_Barn_1_H_Map','GarrBuilding_Barn_2_H_Map','GarrBuilding_Barn_3_H_Map','GarrBuilding_Fishing_1_H_Info','GarrBuilding_Fishing_2_H_Info','GarrBuilding_Fishing_3_H_Info','GarrBuilding_Fishing_1_H_Map','GarrBuilding_Fishing_2_H_Map','GarrBuilding_Fishing_3_H_Map','GarrBuilding_Farm_1_H_Info','GarrBuilding_Farm_1_H_Map','GarrBuilding_EmptyPlot_H_3','GarrBuilding_EmptyPlot_H_2','GarrBuilding_EmptyPlot_H_1','GarrBuilding_Inn_1_H_Info','GarrBuilding_Inn_2_H_Info','GarrBuilding_Inn_3_H_Info','GarrBuilding_Inn_1_H_Map','GarrBuilding_Inn_2_H_Map','GarrBuilding_Inn_3_H_Map','GarrBuilding_TownHall_1_H_Info','GarrBuilding_TownHall_2_H_Info','GarrBuilding_TownHall_3_H_Info','GarrBuilding_TownHall_1_H_Map','GarrBuilding_TownHall_2_H_Map','GarrBuilding_TownHall_3_H_Map','GarrBuilding_Storehouse_1_H_Info','GarrBuilding_Storehouse_1_H_Map','GarrBuilding_SalvageYard_1_H_Info','GarrBuilding_SalvageYard_1_H_Map','GarrBuilding_Barracks_1_H_Info','GarrBuilding_Barracks_2_H_Info','GarrBuilding_Barracks_3_H_Info','GarrBuilding_Barracks_1_H_Map','GarrBuilding_Barracks_2_H_Map','GarrBuilding_Barracks_3_H_Map','GarrBuilding_SparringArena_1_H_Info','GarrBuilding_SparringArena_2_H_Info','GarrBuilding_SparringArena_3_H_Info','GarrBuilding_SparringArena_1_H_Map','GarrBuilding_SparringArena_2_H_Map','GarrBuilding_SparringArena_3_H_Map','GarrBuilding_Armory_1_H_Info','GarrBuilding_Armory_2_H_Info','GarrBuilding_Armory_3_H_Info','GarrBuilding_Armory_1_H_Map','GarrBuilding_Armory_2_H_Map','GarrBuilding_Armory_3_H_Map','GarrBuilding_MageTower_1_H_Info','GarrBuilding_MageTower_2_H_Info','GarrBuilding_MageTower_3_H_Info','GarrFollower-Shadow','GarrBuilding_MageTower_1_H_Map','GarrBuilding_MageTower_2_H_Map','GarrBuilding_MageTower_3_H_Map','GarrBuilding_Stables_2_H_Info','GarrBuilding_Stables_3_H_Info','GarrBuilding_Stables_1_H_Info','GarrBuilding_Stables_1_H_Map','GarrBuilding_Stables_2_H_Map','GarrBuilding_Stables_3_H_Map','GarrBuilding_TradingPost_1_H_Info','GarrBuilding_TradingPost_2_H_Info','GarrBuilding_TradingPost_3_H_Info','GarrBuilding_TradingPost_1_H_Map','GarrBuilding_TradingPost_2_H_Map','GarrBuilding_TradingPost_3_H_Map','GarrBuilding_Workshop_1_H_Info','GarrBuilding_Workshop_2_H_Info','GarrBuilding_Workshop_3_H_Info','GarrBuilding_Workshop_1_H_Map','GarrBuilding_Workshop_2_H_Map','GarrBuilding_Workshop_3_H_Map','GarrBuilding_Mine_1_H_Info','GarrBuilding_Mine_1_H_Map','GarrBuilding_LumberMill_1_H_Info','GarrBuilding_LumberMill_2_H_Info','GarrBuilding_LumberMill_3_H_Info','GarrBuilding_LumberMill_1_H_Map','GarrBuilding_LumberMill_2_H_Map','GarrBuilding_LumberMill_3_H_Map','GarrBuilding_PetStable_1_H_Info','GarrBuilding_PetStable_1_H_Map','GarrMission-AllianceChest','GarrMission-HordeChest','DungeonTargetIndicator','GarrMission_PortraitRing_Darkener','GarrMission_PortraitRing_Quality','BonusChest-OrangeSmoke-Wide','BonusChest-OrangeGlow-Wide','loottoast-bg-alliance','loottoast-bg-horde','groupfinder-button-highlight','groupfinder-button-select','groupfinder-button-cover-down','GarrMission_EncounterBar-CheckMark-Left','GarrMission_EncounterBar-CheckMark-Right','GarrMission_EncounterBar-CheckMark','GarrMission_EncounterBar-CheckMarkCircleSwipe','Alliance_Tier1_Mine','Alliance_Tier1_Trading1','Alliance_Tier1_Armory1','Alliance_Tier1_Mage1','Alliance_Tier1_Mage2','Alliance_Tier1_Armory2','Alliance_Tier1_Stables1','Alliance_Tier1_Barracks1','Alliance_Tier1_Stables2','Alliance_Tier1_Lumber1','Alliance_Tier1_Barn2','Alliance_Tier1_Professions2','Alliance_Tier1_Inn1','Alliance_Tier1_Farm','Menagery1','Alliance_Tier1_Arena2','Alliance_Tier1_Lumber2','Alliance_Tier1_Trading2','Alliance_Tier1_Fishing','Alliance_Tier1_Barn1','Alliance_Tier1_Inn2','Alliance_Tier1_Arena1','Alliance_Tier2_Arena1','Alliance_Tier2_Arena2','Alliance_Tier2_Armory1','Alliance_Tier2_Armory2','Alliance_Tier2_Barn1','Alliance_Tier2_Barn2','Alliance_Tier2_Barracks1','Alliance_Tier2_Inn1','Alliance_Tier2_Inn2','Alliance_Tier2_Lumber1','Alliance_Tier2_Lumber2','Alliance_Tier2_Mage1','Alliance_Tier2_Mage2','Alliance_Tier2_Stables1','Alliance_Tier2_Stables2','Alliance_Tier2_Trading1','Alliance_Tier2_Trading2','Alliance_Tier3_Barn1','Alliance_Tier3_Lumber1','Alliance_Tier3_Mage2','Alliance_Tier3_Inn1','Alliance_Tier3_Barracks1','Alliance_Tier3_Armory2','Alliance_Tier3_Mage1','Alliance_Tier3_Lumber2','Alliance_Tier3_Inn2','Alliance_Tier3_Stables1','Alliance_Tier3_Trading2','Alliance_Tier3_Arena1','Alliance_Tier3_Trading1','Alliance_Tier3_Stables2','Alliance_Tier3_Barn2','Alliance_Tier3_Armory1','Alliance_Tier3_Arena2','Alliance_Tier1_Barracks2','Alliance_Tier2_Barracks2','Alliance_Tier3_Barracks2','Alliance_Tier1_Workshop1','Alliance_Tier1_Workshop2','Alliance_Tier2_Workshop1','Alliance_Tier2_Workshop2','Alliance_Tier3_Workshop1','Alliance_Tier3_Workshop2','streamcinematic-lk-down','streamcinematic-lk-up','streamcinematic-wod-down','streamcinematic-wod-up','streamcinematic-bc-down','streamcinematic-bc-up','streamcinematic-cc-down','streamcinematic-cc-up','streamcinematic-classic-down','streamcinematic-classic-up','streamcinematic-downloadicon','streamcinematic-highlight','streamcinematic-playbutton','streamcinematic-progressbarbg','streamcinematic-mop-down','streamcinematic-mop-up','accountupgradebanner-bc','accountupgradebanner-cataclysm','accountupgradebanner-classic','accountupgradebanner-mop','accountupgradebanner-wod','accountupgradebanner-wotlk','MissionFX-Smoke','MissionFX-SparkLines','Horde_Tier1_Arena1','Horde_Tier1_Arena2','Horde_Tier1_Armory1','Horde_Tier1_Armory2','Horde_Tier1_Barn1','Horde_Tier1_Barn2','Horde_Tier1_Barracks1','Horde_Tier1_Barracks2','Horde_Tier1_Farm1','Horde_Tier1_Fishing1','Horde_Tier1_Inn1','Horde_Tier1_Inn2','Horde_Tier1_Lumber1','Horde_Tier1_Lumber2','Horde_Tier1_Mage1','Horde_Tier1_Mage2','Horde_Tier1_Mine1','Horde_Tier1_Profession1','Horde_Tier1_Profession2','Horde_Tier1_Profession3','Horde_Tier1_Stables1','Horde_Tier1_Stables2','Horde_Tier1_Trading1','Horde_Tier1_Trading2','Horde_Tier1_Workshop1','Horde_Tier1_Workshop2','Horde_Tier2_Arena1','Horde_Tier2_Arena2','Horde_Tier2_Armory1','Horde_Tier2_Armory2','Horde_Tier2_Barn1','Horde_Tier2_Barn2','Horde_Tier2_Barracks1','Horde_Tier2_Barracks2','Horde_Tier2_Inn1','Horde_Tier2_Inn2','Horde_Tier2_Lumber1','Horde_Tier2_Lumber2','Horde_Tier2_Mage1','Horde_Tier2_Mage2','Horde_Tier2_Stables1','Horde_Tier2_Stables2','Horde_Tier2_Trading1','Horde_Tier2_Trading2','Horde_Tier2_Workshop1','Horde_Tier2_Workshop2','Horde_Tier3_Arena1','Horde_Tier3_Arena2','Horde_Tier3_Armory1','Horde_Tier3_Armory2','Horde_Tier3_Barn1','Horde_Tier3_Barn2','Horde_Tier3_Barracks1','Horde_Tier3_Barracks2','Horde_Tier3_Inn1','Horde_Tier3_Inn2','Horde_Tier3_Lumber1','Horde_Tier3_Lumber2','Horde_Tier3_Mage1','Horde_Tier3_Mage2','Horde_Tier3_Stables1','Horde_Tier3_Stables2','Horde_Tier3_Trading1','Horde_Tier3_Trading2','Horde_Tier3_Workshop1','Horde_Tier3_Workshop2','GarrMission_TabGlow','Garr_Plot_Frostfire_H_3','Garr_Plot_Frostfire_H_2','Garr_Plot_Frostfire_H_1','Garr_Plot_Frostfire_H_4','BonusChest-GreenGlow-Wide','GarrMission_PortraitRing_iLvlBorder','bags-icon-consumables','bags-icon-equipment','bags-icon-tradegoods','search-highlight','search-select','_search-rowbg','GarrMission_EncounterAbilityBorder-Lg','GarrMission_EncounterBar-Elite','GarrMission_RewardsBox_Shadow','GarrMission_MissionCompleteChanceBg','GarrMission_CurrentEncounter-Glow','GarrMission_CurrentEncounter-SpikeyGlow','_GarrMissionLocation-Gorgrond-Mid','GarrMissionLocation-FrostfireRidge-List','GarrMissionLocation-Gorgrond-List','GarrMissionLocation-Nagrand-List','GarrMissionLocation-ShadowmoonValley-List','GarrMissionLocation-SpiresofArak-List','GarrMissionLocation-Talador-List','GarrMissionLocation-TannanJungle-List','groupfinder-icon-class-deathknight','groupfinder-icon-class-druid','groupfinder-icon-class-hunter','groupfinder-icon-class-mage','groupfinder-icon-class-monk','groupfinder-icon-class-paladin','groupfinder-icon-class-priest','groupfinder-icon-class-rogue','groupfinder-icon-class-shaman','groupfinder-icon-class-warlock','groupfinder-icon-class-warrior','groupfinder-icon-emptyslot','groupfinder-icon-quest','groupfinder-icon-role-large-dps','groupfinder-icon-role-large-heal','groupfinder-icon-role-large-tank','_GarrMissionLocation-BlackrockMountain-Back','_GarrMissionLocation-BlackrockMountain-Fore','_GarrMissionLocation-BlackrockMountain-Mid','_GarrMissionLocation-BlackrockMountain-List','garrlanding-tab-bottom-selected','garrlanding-tab-bottom-unselected','garrlanding-tab-bottom-highlight','challenges-timerborder','challenges-blackfade','challenges-timerbg','challenges-bannershine','challenges-toast','Banner-BgFiligree','Banner-FiligreeShadow','Banner-SmallFiligree','ScenariosIcon','ScenarioTrackerToast-FinalFiligree','ScenarioTrackerToast','Toast-Flash','Toast-Frame','Toast-IconBG','challenges-nomedal','Bonus-ToastBanner','groupfinder-button-ashran','groupfinder-background-arenas','groupfinder-background-ashran','groupfinder-background-battlegrounds','groupfinder-background-custom-pve','groupfinder-background-custom-pvp','groupfinder-background-dungeons','groupfinder-background-questing','groupfinder-background-ratedbgs','groupfinder-background-scenarios','groupfinder-background-skirmishes','groupfinder-background-raids-warlords','groupfinder-button-raids-warlords','garrlanding-tab-bottom-selected-right','garrlanding-tab-bottom-unselected-left','garrlanding-tab-bottom-selected-left','garrlanding-tab-bottom-highlight-right','garrlanding-tab-bottom-highlight-left','garrlanding-tab-bottom-unselected-right','collections-watermark-toy','CacheToast-Glow','CacheToast','npe_exclamationpoint','npe_icon','npe_leftclick','npe_rightclick','npe_turnin','npe_arrowdownglow','npe_arrowupglow','npe_arrowup','npe_arrowdown','npe_arrowrightglow','npe_keyboard','npe_arrowright','npe_arrowleftglow','npe_arrowleft','UI-Minimap-Clock','garrlanding-tradeskilltimer-border','barbershop-background','groupfinder-waitdot','OBJFX-BarGlow','deathrecap-icon-tombstone','collections-watermark-heirloom','Crop-Corner','Crop-Side','Crop-Top','WoWShare-AchievementIcon','WoWShare-AddButton-Down','WoWShare-AddButton-Up','WoWShare-ChatIcon','WoWShare-Highlight','WoWShare-ItemQualityBorder','WoWShare-Plus','WoWShare-Selection','WoWShare-ItemIcon','WoWShare-ScreenshotIcon','token-button-category','token-itemslot','token-choice-bnet','token-choice-wow','WoWShare-EdgeArt','UI-DialogBox-goldbutton-down-right-blue','UI-DialogBox-goldbutton-down-left-blue','UI-DialogBox-goldbutton-up-middle-blue','UI-DialogBox-goldbutton-up-right-blue','UI-DialogBox-goldbutton-up-left-blue','UI-DialogBox-goldbutton-down-middle-blue','BossBanner-BottomFillagree','BossBanner-SkullCircle','BossBanner-TopFillagree','BossBanner-RedFlash','BossBanner-LeftFillagree','BossBanner-RightFillagree','BossBanner-SkullSpikes','deathrecap-iconborder','deathrecap-background-innerglow','!GeneralFrame-InsetFrame-Left','!GeneralFrame-InsetFrame-Right','GeneralFrame-HorizontalBar-Left','GeneralFrame-HorizontalBar-Right','GeneralFrame-InsetFrame-BottomLeft','GeneralFrame-InsetFrame-BottomRight','GeneralFrame-InsetFrame-TopLeft','GeneralFrame-InsetFrame-TopRight','_GeneralFrame-HorizontalBar','_GeneralFrame-InsetFrame-Bottom','_GeneralFrame-InsetFrame-Top','collections-upgradeglow','XPBarAnim-OrangeGain','XPBarAnim-OrangeSpark','XPBarAnim-OrangeTrail','XPBarAnim-OrangeGlow','XPBarAnim-GlowLines','collections-upgradeglow-blue','splash-610-botleft','splash-610-right','splash-610-topleft','Garr_MissionToast-Blank','colorblind-bar-green','colorblind-bar-red','colorblind-bar-yellow','colorblind-colorwheel','GarrMission_MissionTooltipAway','GarrMission_MissionTooltipWorking','GarrMission_CounterHalfCheck','TalkingHeads-Glow-TopSpike','TalkingHeads-PortraitBg','TalkingHeads-TextBackground','TalkingHeads-Alliance-PortraitFrame','TalkingHeads-Glow-TopBarGlow','TalkingHeads-Glow-SideBarGlow','TalkingHeads-Glow-Sheen','TalkingHeads-Glow-TextSheen','GarrMission-AbilityHighlight','token-info-background','WoWShare-TwitterLogo','token-info-arrow','adventureguide-pane-large','adventureguide-ring','BossBanner-BgBanner-Bottom','BossBanner-BgBanner-Top','LootBanner-IconGlow','LootBanner-ItemBg','LootBanner-LootBagCircle','BossBanner-BgBanner-Mid','loottoast-lessawesome','transmog-frame-pink','transmog-frame-red','transmog-frame-selected','transmog-frame','transmog-icon-chat','transmog-icon-checkmark','transmog-icon-remove','transmog-icon-revert-small-disabled','transmog-icon-revert-small','transmog-icon-revert','transmog-wardrobe-border-collected','transmog-wardrobe-border-highlighted','transmog-wardrobe-border-selected','transmog-wardrobe-border-uncollected','adventureguide-pane-small','NavalMap01','!ShipMission_Bg-Edge','!ShipMission_RewardsBorder-Left-Desaturate','!GarrMission_Bg-DarkEdge','!ShipMission_Bg-DarkEdge','_ShipMission_Bg-BottomEdge','_ShipMission_Bg-BottomEdgeSmall','_ShipMission_LocationCover-Bottom','_ShipMission_RewardsBorder-Top-Desaturate','_ShipMission_TopBorder','ShipMission_FollowerListButton-Highlight','ShipMission_FollowerListButton-Select','ShipMission_FollowerListButton','ShipMission_IconLevelBG','ShipMission_TopBorderCorner','ShipMission_Bg-DarkEdgeCorner','ShipMission_BoatRarity-Epic','ShipMission_BoatRarity-Rare','ShipMission_BoatRarity-Uncommon','ShipMission_DangerousSkull','ShipMission_EncounterAbilityBorder-Lg','ShipMission_EncounterAbilityBorder','ShipMission_LocationCover-Side','ShipMission_MissionCostStartButtonBg','ShipMission_RewardsBG-Desaturate','ShipMission_RewardsBorder-Corner-Desaturate','ShipMission_StartMissionFrame','ShipMissionParchment-Tile','_GarrMissionLocation-TannanSea-Back','_GarrMissionLocation-TannanSea-Fore','_GarrMissionLocation-TannanSea-Mid','ShipMission_CurrencyIcon-Oil','NavalMap-Horde-Fog','NavalMap-Horde-Highlight','NavalMap-Alliance-Fog','NavalMap-IronHorde-Fog','NavalMap-OpenWaters-Fog','NavalMap-Alliance-Highlight','NavalMap-IronHorde-Highlight','NavalMap-OpenWaters-Highlight','ShipMission_FollowerBG','ShipMission_FollowerBG-Glow','Ships_GalleonH-List','Ships_GalleonH-Portrait','Ships_GalleonH-Map','ShipMissionIcon-Combat-Map','ShipMissionIcon-Combat-MapBadge','ShipMissionIcon-Oil-Map','ShipMissionIcon-Oil-MapBadge','ShipMissionIcon-SiegeA-Map','ShipMissionIcon-SiegeA-MapBadge','ShipMissionIcon-SiegeH-Map','ShipMissionIcon-SiegeH-MapBadge','ShipMissionIcon-Training-Map','ShipMissionIcon-Training-MapBadge','ShipMissionIcon-Treasure-Map','ShipMissionIcon-Treasure-MapBadge','Ships_TroopTransport-List','Ships_TroopTransport-Portrait','Ships_TroopTransport-Map','Ships_EnemyTroopTransport-Portrait','Ships_Dreadnaught-List','Ships_Dreadnaught-Portrait','Ships_Dreadnaught-Map','Ships_EnemyDreadnaught-Portrait','Ships_SubmarineH-List','Ships_SubmarineH-Portrait','Ships_SubmarineH-Map','Ships_EnemySubmarineH-Portrait','Ships_SubmarineA-List','Ships_SubmarineA-Portrait','Ships_SubmarineA-Map','Ships_EnemySubmarineA-Portrait','ShipMissionIcon-Combat-Mission','ShipMissionIcon-Oil-Mission','ShipMissionIcon-SiegeA-Mission','ShipMissionIcon-SiegeH-Mission','ShipMissionIcon-Training-Mission','ShipMissionIcon-Treasure-Mission','Ships_EnemyGalleonH-Portrait','Ships_GalleonA-List','Ships_GalleonA-Portrait','Ships_GalleonA-Map','Ships_EnemyGalleonA-Portrait','Ships_CargoShip-List','Ships_CargoShip-Portrait','Ships_CargoShip-Map','Ships_EnemyCargoShip-Portrait','Ships_Carrier-List','Ships_Carrier-Portrait','Ships_Carrier-Map','Ships_EnemyCarrier-Portrait','ShipMission_ShipFollower-EquipmentBG','ShipMission_ShipFollower-EquipmentFrame','ShipMission_ShipFollower-Lock-Epic','ShipMission_ShipFollower-Lock-Rare','ShipMission_ShipFollower-TypeFrame','transmog-frame-small-pink','transmog-frame-small','transmog-frame-small-selected','transmog-frame-small-red','ShipMission-RedGlowRing','adventureguide-rewardring','wildbattlepet','stablemaster','archblob','banker','focus','battlemaster','ammunition','class','profession','target','food','reagents','innkeeper','auctioneer','repair','mailbox','flightmaster','none','questblob','trivialquests','poisons','playerfriend','questrepeatableturnin','mantidtowerdestroyed','portalred','questturnin','object','gear','monsterfriend','monsterenemy','portalpurple','dungeonskull','playerneutral','monsterneutral','portalblue','questlegendaryturnin','questdaily','playercontrolled','vignetteloot','vignetteevent','playerenemy','partymember','xmarksthespot','questobjective','questlegendary','artifactquest','questnormal','vignettelootelite','flightpath','vignetteeventelite','chatballon','mantidtower','raidmember','vignettekill','questbonusobjective','artifactquestturnin','smallquestbang','vignettekillelite','greencross','playerdeadblip','playerpartyblip','playerraidblip','vehicle-air-alliance','vehicle-air-horde','vehicle-air-occupied','vehicle-air-unoccupied','vehicle-alliancecart','vehicle-carriage','vehicle-ground-occupied','vehicle-ground-unoccupied','vehicle-grummleconvoy','vehicle-hammergold-1','vehicle-hammergold-2','vehicle-hammergold-3','vehicle-hammergold','vehicle-hordecart','vehicle-mogu','vehicle-silvershardmines-arrow','vehicle-silvershardmines-minecart','vehicle-silvershardmines-minecartblue','vehicle-silvershardmines-minecartred','vehicle-templeofkotmogu-cyanball','vehicle-templeofkotmogu-greenball','vehicle-templeofkotmogu-orangeball','vehicle-templeofkotmogu-purpleball','vehicle-trap-gold','vehicle-trap-grey','vehicle-trap-red','questskull','focus-tracker','mageportalalliance','mageportalhorde','questartifact','questartifactturnin','target-tracker','warlockportalalliance','warlockportalhorde','wildbattlepet-tracker','wildbattlepetcapturable','crossedflags','crossedflagswithtimer','minimap-deadarrow','minimap-positionarrows','minimap-questarrow','minimap-vignettearrow','minimaparrow','rotating-minimaparrow','rotating-minimapgrouparrow','rotating-minimapguidearrow','minimap-positionarrowdown','minimap-positionarrowup','movierecordingicon','BossBanner-RedLightning','Artifacts-PerkRing-GoldMedal','Artifacts-PerkRing-MainProc-Glow','Artifacts-PerkRing-MainProc','Artifacts-PerkRing-Small','Artifacts-PointsBox','Artifacts-PerkRing-Highlight','ArtifactsFX-SpinningGlowys','ArtifactsFX-StarBurst','ArtifactsFX-Whirls','ArtifactsFX-YellowRing','Artifacts-DemonHunter-BG','Artifacts-Paladin-BG','Artifacts-PointsBoxGreen','ArtifactsFX-PointSideBurstLeft','ArtifactsFX-PointSideBurstRight','vas-receipt-selectedcharbg','Ships_CarrierA-List','Ships_CarrierA-Portrait','Ships_CarrierA-Map','Ships_CarrierH-Map','Ships_CarrierH-List','Ships_CarrierH-Portrait','garrlanding-shipmission-complete','garrlanding-shipmission-inprogress','_GarrMissionLocation-FrostfireSea-Back','_GarrMissionLocation-FrostfireSea-Fore','_GarrMissionLocation-FrostfireSea-Mid','_GarrMissionLocation-ShadowmoonSea-Back','_GarrMissionLocation-ShadowmoonSea-Fore','_GarrMissionLocation-ShadowmoonSea-Mid','_GarrMissionLocation-NagrandSea-Back','_GarrMissionLocation-NagrandSea-Fore','_GarrMissionLocation-NagrandSea-Mid','ShipMission_Toast','adventureguide-redx','Artifacts-MageArcane-BG','GarrisonFX_BlueFlare','GarrMission_WeakEncounterAbilityBorder-Lg','bonusobjectives-bar-bg','bonusobjectives-bar-fill','bonusobjectives-bar-frame','bonusobjectives-bar-glow-ring','bonusobjectives-bar-glow','bonusobjectives-bar-ring','bonusobjectives-bar-sheen','bonusobjectives-bar-spark','bonusobjectives-bar-starburst','bonusobjectives-title-bg','bonusobjectives-title-icon','ShipMission_NameBG','ShipMission_PartyBuffsBG','Ships_DreadnaughtA-List','Ships_DreadnaughtA-Portrait','Ships_DreadnaughtA-Map','Ships_DreadnaughtH-List','Ships_DreadnaughtH-Portrait','Ships_DreadnaughtH-Map','Ships_EnemyDreadnaughtH-Portrait','Ships_EnemyDreadnaughtA-Portrait','FontStyle_Parchment','FontStyle_BlueGradient','FontStyle_Garrisons','FontStyle_IronHordeMetal','FontStyle_Legion','FontStyle_Metal','splash-620-botleft','splash-620-right','splash-620-topleft','Artifacts-DeathKnightFrost-BG','shop-card-darkcover','Artifacts-Warrior-BG','Artifacts-Rogue-BG','Artifacts-Druid-BG','ShipMissionIcon-Bonus-Mission','ShipMissionIcon-Bonus-Map','ShipMissionIcon-Bonus-MapBadge','NavalMap-CircleGlowTrails','NavalMap-LargeBonusCircle','NavalMap-SmallBonusCircle','GarrisonFX-StarBurst','GarrMission_WeakEncounterAbilityBorder','ShipMission-TimerBG','services-icon-warning','ShipMissionIcon-Legendary-Map','ShipMissionIcon-Legendary-MapBadge','ShipMissionIcon-Legendary-Mission','_ForgeBorder-Top','!ForgeBorder-Right','_DemonHunter-DemonicFuryBar','services-icon-goldborder','vas-receipt-brownarrow','vas-receipt-greenbg','Ships_EnemyCarrierA-Portrait','Ships_EnemyCarrierH-Portrait','loottoast-moreawesome','legioninvasion-map-icon-portal-large','legioninvasion-map-icon-portal','legioninvasion-scenario-rewardring','legioninvasion-ScenarioTrackerToast','legioninvasion-Toast-Frame','legioninvasion-map-cover','ShipMissionIcon-SiegeIHA-Map','ShipMissionIcon-SiegeIHA-MapBadge','ShipMissionIcon-SiegeIHH-Map','ShipMissionIcon-SiegeIHH-MapBadge','ShipMissionIcon-SiegeIHA-Mission','ShipMissionIcon-SiegeIHH-Mission','tournamentarena-flag-large-blue-flash','tournamentarena-flag-large-blue','tournamentarena-flag-large-red-flash','tournamentarena-flag-large-red','tournamentarena-frame-bg-side-blue','tournamentarena-frame-bg-side-red','tournamentarena-frame-bot','tournamentarena-frame-botleft','tournamentarena-frame-botright','tournamentarena-frame-left','tournamentarena-frame-right','tournamentarena-frame-top','tournamentarena-frame-topleft','tournamentarena-frame-topright','tournamentarena-titlebackplate','honorsystem-bar-background','honorsystem-bar-frame','honorsystem-bar-spark','honorsystem-bar-rewardborder-prestige-flash','honorsystem-bar-rewardborder-prestige','honorsystem-bar-rewardborder','honorsystem-prestige-laurel-bg-alliance','honorsystem-prestige-laurel-bg-horde','honorsystem-prestige-laurel','honorsystem-talents-bg','_honorsystem-bar-fill','honorsystem-icon-prestige-1','honorsystem-icon-prestige-10','honorsystem-icon-prestige-11','honorsystem-icon-prestige-2','honorsystem-icon-prestige-3','honorsystem-icon-prestige-4','honorsystem-icon-prestige-5','honorsystem-icon-prestige-6','honorsystem-icon-prestige-7','honorsystem-icon-prestige-8','honorsystem-icon-prestige-9','bonusobjectives-title-icon-honor','honorsystem-bar-frame-small','honorsystem-bar-rewardborder-circle','honorsystem-icon-bonus','honorsystem-portrait-alliance','honorsystem-portrait-horde','demoninvasion1','demoninvasion2','demoninvasion3','demoninvasion4','_Shaman-MaelstromBar','_Druid-LunarBar','titleprestige-glowcover','titleprestige-prestigeicon','titleprestige-starglow','titleprestige-title','titleprestige-title2','titleprestige-wreath','titleprestige-title-bg','titleprestige-ember','services-popup-bot','services-popup-botleft','services-popup-botright','services-popup-top','services-popup-topleft','services-popup-topright','services-popup-bg','services-popup-left','services-popup-right','titleprestige-wings','titleprestige-wings2','titleprestige-wings-white','titleprestige-wings2-white','titleprestige-starcrown','adventuremaplabel-large','adventuremaplabel-small','adventuremapicon-dailyquest','adventuremapicon-missioncombat','adventuremapicon-quest','adventuremapicon-sandboxquest','questportraiticon-sandboxquest','Mage-ArcaneCharge','Mage-ArcaneChargeBar','Priest-InsanityOverlay','_Priest-InsanityBar','Legion-boostpopup-bottom','Legion-boostpopup-middle','Legion-boostpopup-top','adventuremapicon-lock','adventuremaplabel-missiontimer','adventuremaplabel-questdiscovered','fxam-questbang','fxam-smallspikeyglow','mission-followerportraitframe','mission-lootbackgroundglow','fogofwar','adventuremapquest-questpane','adventuremapquest-rewardspanel','adventuremapquest-itemnamebg','charactercreate-banner-bottom','charactercreate-banner-middle','charactercreate-banner-top','Artifacts-Shaman-BG','Artifacts-Hunter-BG','Artifacts-Priest-BG','Artifacts-Monk-BG','Artifacts-Warlock-BG','services-checkmark','services-cover-ring','services-cover','services-icon-bonus-large','services-icon-bonus-red','services-icon-bonus','services-icon-processing','services-number-1','services-number-2','services-number-3','services-number-4','services-number-5','services-number-6','services-number-7','services-number-8','services-number-9','services-ring-countcircle','services-ring-large-glow','services-ring-large-glowpulse','services-ring-large-glowspin','services-ring-large','services-ring-wod','services-ring','services-yellowarrow','transmog-nav-slot-back','transmog-nav-slot-chest','transmog-nav-slot-feet','transmog-nav-slot-hands','transmog-nav-slot-head','transmog-nav-slot-legs','transmog-nav-slot-mainhand','transmog-nav-slot-selected','transmog-nav-slot-shirt','transmog-nav-slot-shoulder','transmog-nav-slot-tabard','transmog-nav-slot-waist','transmog-nav-slot-wrist','boostpopup-wod-bottom','boostpopup-wod-middle','boostpopup-wod-top','Relic-Arcane-Slot','Relic-Arcane-TraitBG','Relic-Arcane-TraitGlow','Relic-Arcane-TraitGlowRing','Relic-Blood-Slot','Relic-Blood-TraitBG','Relic-Blood-TraitGlow','Relic-Blood-TraitGlowRing','Relic-Fel-Slot','Relic-Fel-TraitBG','Relic-Fel-TraitGlow','Relic-Fel-TraitGlowRing','Relic-Fire-Slot','Relic-Fire-TraitBG','Relic-Fire-TraitGlow','Relic-Fire-TraitGlowRing','Relic-Frost-Slot','Relic-Frost-TraitBG','Relic-Frost-TraitGlow','Relic-Frost-TraitGlowRing','Relic-Holy-Slot','Relic-Holy-TraitBG','Relic-Holy-TraitGlow','Relic-Holy-TraitGlowRing','Relic-Iron-Slot','Relic-Iron-TraitBG','Relic-Iron-TraitGlow','Relic-Iron-TraitGlowRing','Relic-Life-Slot','Relic-Life-TraitBG','Relic-Life-TraitGlow','Relic-Life-TraitGlowRing','Relic-Shadow-Slot','Relic-Shadow-TraitBG','Relic-Shadow-TraitGlow','Relic-Shadow-TraitGlowRing','Relic-SlotBG','Relic-Water-Slot','Relic-Water-TraitBG','Relic-Water-TraitGlow','Relic-Water-TraitGlowRing','Relic-Wind-Slot','Relic-Wind-TraitBG','Relic-Wind-TraitGlow','Relic-Wind-TraitGlowRing','transmog-toast-bg','FullAlert-BigSpike','FullAlert-SoftCurveGlow','FullAlert-YellowCurveGlow','FullAlert-FrameGlow','accountupgradebanner-legion','Glues-WoW-LegionLogo','Glues-WoW-LegionLogo_cn','Glues-WoW-LegionLogo_tw','shop-games-legion','shop-games-legiondeluxe-card','shop-games-magnifyingglass','shop-games-legiondeluxe','Barbershop-Bottom','Barbershop-Top','!Barbershop-MiddleTile','AftLevelup-CloudyLineLeft','AftLevelup-CloudyLineRight','AftLevelup-Dots1','AftLevelup-Dots2','AftLevelup-GlowLine','AftLevelup-IconFrame','AftLevelup-IconGlow','AftLevelup-Lines1','AftLevelup-Lines2','AftLevelup-SoftCloud','AftLevelup-ToastBG','AftLevelup-FiligreeLeft','AftLevelup-FiligreeRight','transmog-nav-slot-secondaryhand','AftLevelup-WhiteIconGlow','AftLevelup-WhiteStarBurst','_transmog-preview-QuestPortrait-Divider_noname','_transmog-preview-QuestPortrait-StoneSwirls-Top','transmog-icon-downarrow','Forge-ColorSwatch','Forge-ColorSwatchBorder','Forge-ColorSwatchSelection','Forge-Lock','ForgeBorder-CornerBottomLeft','ForgeBorder-CornerBottomRight','ForgeBorder-CornerTopRight','Forge-Background','Artifacts-HeaderBG','Artifacts-Paladin-Header','Artifacts-DeathKnightFrost-Header','Artifacts-DemonHunter-Header','Artifacts-Druid-Header','search-iconframe-large','search-highlight-large','Artifacts-Hunter-Header','Artifacts-MageArcane-Header','Artifacts-Monk-Header','Artifacts-Priest-Header','Artifacts-Rogue-Header','Artifacts-Shaman-Header','Artifacts-Warlock-Header','Artifacts-Warrior-Header','titleprestige-prestigeiconplate-alliance','titleprestige-prestigeiconplate-horde','Artifacts-PerkRing-WhiteGlow','adventuremapquest-portraitbg','Rune-01-dark','Rune-01-light','Rune-02-dark','Rune-02-light','Rune-03-dark','Rune-03-light','Rune-04-dark','Rune-04-light','Rune-05-dark','Rune-05-light','Rune-06-dark','Rune-06-light','Rune-07-dark','Rune-07-light','Rune-08-dark','Rune-08-light','Rune-09-dark','Rune-09-light','Rune-10-dark ','Rune-10-light','Rune-11-dark','Rune-11-light','Mage-ArcaneCharge-CircleGlow','Mage-ArcaneCharge-Rune','Mage-ArcaneCharge-SmallSpark','Mage-ArcaneCharge-Spark','Forge-AppearanceStrip','Forge-ColorSwatchBackground','Forge-ColorSwatchHighlight','AdventureMap_TopBorder','AdventureMap_TileBg','Artifacts-PriestShadow-BG','Artifacts-PriestShadow-Header','bags-glow-artifact','adventuremap-insetmapborder','Artifacts-Paladin-KnowledgeRank','ClassOverlay-HolyPower1off','ClassOverlay-HolyPower1on','ClassOverlay-HolyPower2off','ClassOverlay-HolyPower2on','ClassOverlay-HolyPower3off','ClassOverlay-HolyPower3on','ClassOverlay-HolyPower4off','ClassOverlay-HolyPower4on','ClassOverlay-HolyPower5off','ClassOverlay-HolyPower5on','ClassOverlay-HolyPowerBG','Artifacts-DeathKnightFrost-KnowledgeRank','Artifacts-DemonHunter-KnowledgeRank','Artifacts-Druid-KnowledgeRank','Artifacts-Hunter-KnowledgeRank','Artifacts-MageArcane-KnowledgeRank','Artifacts-Monk-KnowledgeRank','Artifacts-Priest-KnowledgeRank','Artifacts-PriestShadow-KnowledgeRank','Artifacts-Rogue-KnowledgeRank','Artifacts-Shaman-KnowledgeRank','Artifacts-Warlock-KnowledgeRank','Artifacts-Warrior-KnowledgeRank','ClassOverlay-Fury','ClassOverlay-FuryBG','ClassOverlay-Rune','ClassOverlay-RunicPower','ClassOverlay-RunicPowerBg','ClassOverlay-ComboPoint','LegionSplash-NewCharacter','LegionSplash-DemonHunterButton','LegionSplash-Logo','LegionSplash-NewCharacterButton','LegionSplash-DemonHunter','legioninvasion-title-bg','transmog-nav-slot-enchant','transmog-nav-slot-selected-small','honorsystem-portrait-neutral','nameplates-holypower1-off','nameplates-holypower1-on','nameplates-holypower2-off','nameplates-holypower2-on','nameplates-holypower3-off','nameplates-holypower3-on','nameplates-holypower4-off','nameplates-holypower4-on','nameplates-playerhealth-background','nameplates-InterruptShield','nameplate-WarlockShard-Off','nameplate-WarlockShard-On','nameplate-WarlockShard-Glow','ClassOverlay-ComboPoint-Off','Insanity-DrippyPurple1','Insanity-DrippyPurple2','Insanity-PortraitOverlay','Insanity-PurpleBurstOn','Insanity-ShadowBurstOn','Insanity-Tentacles','Insanity-TopPurpleShadow','Insanity-Spark','tradeskills-star-off','tradeskills-star','tradeskill-background-recipe','tradeskill-background-recipe-unlearned','loottoast-itemborder-heirloom','ComboPoints-AllPointsBG','ComboPoints-PointBg','ComboPoints-ComboPointDash','ComboPoints-ComboPointDash-Bg','ComboPoints-ComboPoint','ComboPoints-FX-Circle','ComboPoints-FX-Dash','ComboPoints-FX-Star','obliterumforge-background','obliterumforge-slotted-corners-glow','obliterumforge-slotted-corners','ChallengeMode-AffixRing-Lg','ChallengeMode-AffixRing-Sm','ChallengeMode-DungeonIconFrame','ChallengeMode-KeystoneFrame','ChallengeMode-KeystoneSlotBG','ChallengeMode-KeystoneSlotFrame','ChallengeMode-KeystoneSlotFrameGlow','ChallengeMode-MainTabBg','ChallengeMode-ThinDivider','_DemonHunter-DemonicPainBar','GlyphIcon-Spellbook','ChallengeMode-Runes-GlowLarge','ChallengeMode-Runes-Large','ChallengeMode-Runes-LineGlow','BossBanner-PortraitBorder','ChallengeMode-SoftYellowGlow','ChallengeMode-SpikeyStar','ChallengeMode-Timer','ChallengeMode-TimerBG','ChallengeMode-TimerFill','ChallengeMode-WhiteSpikeyGlow','ChallengeMode-Runes-BackgroundCoverGlow','ChallengeMode-Runes-GlowBurstLarge','ChallengeMode-Runes-GlowSmall','ChallengeMode-RuneBG','ChallengeMode-Runes-BackgroundBurst','ChallengeMode-Runes-BL-Glow','ChallengeMode-Runes-BR-Glow','ChallengeMode-Runes-InnerCircleGlow','ChallengeMode-Runes-L-Glow','ChallengeMode-Runes-R-Glow','ChallengeMode-Runes-Small','ChallengeMode-Runes-T-Glow','ChallengeMode-Runes-CircleGlow','recipetoast-bg','recipetoast-icon-star','transmog-wardrobe-border-unusable','worldquest-icon-clock','worldquest-questmarker-dragon-glow','worldquest-questmarker-dragon','worldquest-questmarker-epic-down','worldquest-questmarker-epic','worldquest-questmarker-glow','worldquest-questmarker-questbang','worldquest-tracker-checkmark','worldquest-tracker-questmarker-gray','worldquest-tracker-questmarker','worldquest-tracker','ChallengeMode-Runes-SmallCircleGlow','worldquest-questmarker-questionmark','ChallengeMode-Runes-Shockwave','ChallengeMode-Chest','worldquest-icon-pvp-ffa','worldquest-tracker-ring-selected','worldquest-tracker-ring','ChallengeMode-icon-chest','ChallengeMode-icon-redline','ChallengeMode-TimerBG-back','LegionMissionIcon-ZoneSupportAlliance-Map','orderhalltalents-background-mage','orderhalltalents-background-deathknight','orderhalltalents-background-demonhunter','orderhalltalents-background-druid','orderhalltalents-background-hunter','orderhalltalents-background-monk','orderhalltalents-background-paladin','orderhalltalents-background-priest','orderhalltalents-background-rogue','orderhalltalents-background-shaman','orderhalltalents-background-warlock','orderhalltalents-background-warrior','orderhalltalents-choice-background','orderhalltalents-spellborder-green','orderhalltalents-spellborder-yellow','orderhalltalents-spellborder','LegionMissionIcon-ZoneSupportAlliance-MapBadge','LegionMissionIcon-ZoneSupportHorde-Map','LegionMissionIcon-ZoneSupportHorde-MapBadge','LegionMissionIcon-ZoneSupportAlliance-Mission','LegionMissionIcon-ZoneSupportHorde-Mission','orderhalltalents-timer-bg','legionmission-map-orderhall-deathknight','legionmission-map-orderhall-demonhunter','legionmission-map-orderhall-druid','legionmission-map-orderhall-glow','legionmission-map-orderhall-hunter','legionmission-map-orderhall-mage','legionmission-map-orderhall-monk','legionmission-map-orderhall-paladin','legionmission-map-orderhall-priest','legionmission-map-orderhall-rogue','legionmission-map-orderhall-shaman','legionmission-map-orderhall-warlock','legionmission-map-orderhall-warrior','legionmission-map-orderhall-textglow','worldquest-icon-alchemy','worldquest-icon-archaeology','worldquest-icon-blacksmithing','worldquest-icon-cooking','worldquest-icon-enchanting','worldquest-icon-engineering','worldquest-icon-firstaid','worldquest-icon-fishing','worldquest-icon-herbalism','worldquest-icon-inscription','worldquest-icon-jewelcrafting','worldquest-icon-leatherworking','worldquest-icon-mining','worldquest-icon-skinning','worldquest-icon-tailoring','worldquest-icon-petbattle','demoninvasion5','book-bg','book-line','_orderhall-commandbar-bg','worldquest-icon-boss','transmog-icon-hidden','orderhalltalents-choice-arrow-large','orderhalltalents-choice-background-on','LegendaryToast-particles3','LegendaryToast-particles2','LegendaryToast-background','LegendaryToast-ring1','LegendaryToast-particles1','tradeskills-iconborder','LegendaryToast-OrangeStarglow','loottoast-itemborder-artifact','adventureguide-icon-whatsnew','adventureguide-microbutton-alert','transmog-frame-blackcover','transmog-frame-highlighted','transmog-background-race-bloodelf','transmog-background-race-human','transmog-background-race-draenei','transmog-background-race-dwarf','transmog-background-race-gnome','transmog-background-race-goblin','transmog-background-race-nightelf','transmog-background-race-orc','transmog-background-race-pandaren','transmog-background-race-tauren','transmog-background-race-troll','transmog-background-race-worgen','adventuremap-combatally-clouds','adventuremap-combatally-empty','adventuremap-combatally-ring','adventuremap-textlabelglow','legionmission-EncounterAbilityBorder-Lg','legionmission-EncounterAbilityBorder','worldquest-followerabilityframe','worldquest-questmarker-abilityhighlight','transmog-frame-highlighted-small','nameplates-bar-background-white','_honorsystem-bar-fill-rested','honorsystem-bar-frame-exhaustiontick-highlight','honorsystem-bar-frame-exhaustiontick','legionmission-complete-background-deathknight','legionmission-complete-background-demonhunter','legionmission-complete-background-druid','legionmission-complete-background-hunter','legionmission-complete-background-mage','legionmission-complete-background-monk','legionmission-complete-background-paladin','legionmission-complete-background-priest','legionmission-complete-background-rogue','legionmission-complete-background-shaman','legionmission-complete-background-warlock','legionmission-complete-background-warrior','legionmission-landingpage-background-deathknight','legionmission-landingpage-background-demonhunter','legionmission-landingpage-background-druid','legionmission-landingpage-background-hunter','legionmission-landingpage-background-mage','legionmission-landingpage-background-monk','legionmission-landingpage-background-paladin','legionmission-landingpage-background-priest','legionmission-landingpage-background-rogue','legionmission-landingpage-background-shaman','legionmission-landingpage-background-warlock','legionmission-landingpage-background-warrior','legionmission-landingbutton-deathknight-down','legionmission-landingbutton-deathknight-up','legionmission-landingbutton-demonhunter-down','legionmission-landingbutton-demonhunter-up','legionmission-landingbutton-druid-down','legionmission-landingbutton-druid-up','legionmission-landingbutton-hunter-down','legionmission-landingbutton-hunter-up','legionmission-landingbutton-mage-down','legionmission-landingbutton-mage-up','legionmission-landingbutton-monk-down','legionmission-landingbutton-monk-up','legionmission-landingbutton-paladin-down','legionmission-landingbutton-paladin-up','legionmission-landingbutton-priest-down','legionmission-landingbutton-priest-up','legionmission-landingbutton-rogue-down','legionmission-landingbutton-rogue-up','legionmission-landingbutton-shaman-down','legionmission-landingbutton-shaman-up','legionmission-landingbutton-warlock-down','legionmission-landingbutton-warlock-up','legionmission-landingbutton-warrior-down','legionmission-landingbutton-warrior-up','transmog-wardrobe-border-current','transmog-wardrobe-border-selected-wisp','transmog-wardrobe-border-current-transmogged','glueannouncementpopup-arrow','glueannouncementpopup-background','glueannouncementpopup-icon-info','glueannouncementpopup-inset','loottab-set-itemborder-green','loottab-set-itemborder-purple','loottab-set-itemborder-blue','poi-alliance','poi-horde','GarrisonTroops-Health-Consume','GarrisonTroops-Health','BonusChest-BonusTextGlow','GarrMission_ClassIcon-DeathKnight-Blood','GarrMission_ClassIcon-DeathKnight-Frost','GarrMission_ClassIcon-DeathKnight-Unholy','GarrMission_ClassIcon-DemonHunter-Havoc','GarrMission_ClassIcon-DemonHunter-Vengeance','GarrMission_ClassIcon-Druid-Balance','GarrMission_ClassIcon-Druid-Feral','GarrMission_ClassIcon-Druid-Guardian','GarrMission_ClassIcon-Druid-Restoration','GarrMission_ClassIcon-Hunter-BeastMastery','GarrMission_ClassIcon-Hunter-Marksmanship','GarrMission_ClassIcon-Hunter-Survival','GarrMission_ClassIcon-Mage-Arcane','GarrMission_ClassIcon-Mage-Fire','GarrMission_ClassIcon-Mage-Frost','GarrMission_ClassIcon-Monk-Brewmaster','GarrMission_ClassIcon-Monk-Mistweaver','GarrMission_ClassIcon-Monk-Windwalker','GarrMission_ClassIcon-Paladin-Holy','GarrMission_ClassIcon-Paladin-Protection','GarrMission_ClassIcon-Paladin-Retribution','GarrMission_ClassIcon-Priest-Discipline','GarrMission_ClassIcon-Priest-Holy','GarrMission_ClassIcon-Priest-Shadow','GarrMission_ClassIcon-Rogue-Assassination','GarrMission_ClassIcon-Rogue-Outlaw','GarrMission_ClassIcon-Rogue-Subtlety','GarrMission_ClassIcon-Shaman-Elemental','GarrMission_ClassIcon-Shaman-Enhancement','GarrMission_ClassIcon-Shaman-Restoration','GarrMission_ClassIcon-Warlock-Affliction','GarrMission_ClassIcon-Warlock-Demonology','GarrMission_ClassIcon-Warlock-Destruction','GarrMission_ClassIcon-Warrior-Arms','GarrMission_ClassIcon-Warrior-Fury','GarrMission_ClassIcon-Warrior-Protection','legionmission-background-combatally','_GarrMissionLocation-Legion-Mid','_GarrMissionLocation-Highmountain-Mid','_GarrMissionLocation-Dalaran-Mid','_GarrMissionLocation-Azsuna-Mid','_GarrMissionLocation-Stormheim-Mid','_GarrMissionLocation-Suramar-Mid','_GarrMissionLocation-Valsharah-Mid','legionmission-hearts-background','GarrMissionLocation-Azsuna-List','GarrMissionLocation-Dalaran-List','GarrMissionLocation-Highmountain-List','GarrMissionLocation-Legion-List','GarrMissionLocation-Stormheim-List','GarrMissionLocation-Suramar-List','GarrMissionLocation-Valsharah-List','poi-workorders','groupfinder-background-raids-legion','groupfinder-button-raids-legion','orderhall-commandbar-iconmask','GarrMission-NeutralChest','worldquest-tracker-lock','ClassTrial-End-Frame','ClassTrial-Hunter-Ring','ClassTrial-Priest-Ring','ClassTrial-DeathKnight-Ring','ClassTrial-Warrior-Ring','ClassTrial-Paladin-Ring','ClassTrial-Warlock-Ring','ClassTrial-Druid-Ring','ClassTrial-Monk-Ring','ClassTrial-Mage-Ring','ClassTrial-Rogue-Ring','Legion-boostpopup-exit-frame','transmog-wardrobe-border-selected-smoke','legionmission-icon-currency','UI-CharacterCreate-MetalFrame-Horizontal','UI-CharacterCreate-MetalFrame-Vertical','ClassTrial-Timer-Mid','ClassTrial-Timer-RightCorner','ClassTrial-Timer','UI-CharacterCreate-LargeButton-Blue-Highlight','UI-CharacterCreate-LargeButton-Yellow-Highlight','UI-CharacterCreate-LargeButton','UI-CharacterCreate-Metal-Finery-Corner','UI-CharacterCreate-Metal-Small-Finery','UI-CharacterCreate-PadLock','UI-Character-Info-Paladin-BG','UI-Character-Info-Priest-BG','UI-Character-Info-Warlock-BG','UI-Character-Info-Line-Bounce','UI-Character-Info-Shaman-BG','UI-Character-Info-ItemLevel-Bounce','UI-Character-Info-Warrior-BG','UI-Character-Info-Title','UI-Character-Info-Mage-BG','UI-Character-Info-Rogue-BG','UI-Character-Info-Monk-BG','UI-Character-Info-DeathKnight-BG','UI-Character-Info-DemonHunter-BG','UI-Character-Info-Druid-BG','UI-Character-Info-Hunter-BG','Relic-SlotBG-Glass','loottab-set-itemborder-artifact','loottab-set-itemborder-white','loottab-set-itemborder-orange','Artifacts-BG-Shadow','worldquest-questmarker-rare-down','worldquest-questmarker-rare','poi-majorcity','poi-town','pvpqueue-bg-alliance','pvpqueue-bg-horde','honorsystem-prestige-smallwreath','orderhall-commandbar-mapbutton-down','orderhall-commandbar-mapbutton-up','worldquest-tracker-bg-noemissary','Quest-Alliance-WaxSeal','Quest-Horde-WaxSeal','QuestBG-Alliance','QuestBG-Horde','insetshadow','ChallengeMode-guild-background','ChallengeMode-RankLineDivider','_Talent-green-glow','legionmission-lock','honorsystem-prestige-rewardline','orderhalltalents-done-checkmark','orderhalltalents-done-glow','map-icon-ignored-blueexclaimation','map-icon-ignored-bluequestion','map-icon-deathknightclasshall','dungeon','raid','map-icon-suramardoor.tga','ClassTrial-Shaman-Ring','Mobile-BonusIcon','Mobile-CombatBadgeIcon','Mobile-CombatIcon','Mobile-LegendaryQuestIcon','Mobile-QuestIcon','Mobile-TreasureIcon','ClassHall_StoneFrame-BackgroundTile','ClassHall_InfoBoxMission-BackgroundTile','StoneFrameCorner-TopLeft','ClassHall-Circle-Mage','_StoneFrameTile-Bottom','_StoneFrameTile-Top','ClassHall-Circle-DeathKnight','ClassHall-Circle-Hunter','ClassHall-Circle-Warrior','ClassHall-Circle-Druid','ClassHall-Circle-Warlock','ClassHall-Circle-Shaman','ClassHall-Circle-Rogue','ClassHall-Circle-Monk','ClassHall-Circle-DemonHunter','ClassHall-Circle-Priest','ClassHall-Circle-Paladin','!StoneFrameTile-Left','ClassHall_ParchmentHeaderSelect-End','_ClassHall_ParchmentHeaderSelect-Mid','_ClassHall_ParchmentHeader-Mid','ClassHall_ParchmentHeader-End','Mobile-CombatIcon-Desaturated','Mobile-BonusIcon-Desaturated','Mobile-TreasureIcon-Desaturated','Mobile-QuestIcon-Desaturated','Mobile-LegendaryQuestIcon-Desaturated','ClassHall-TreasureIcon-Desaturated','ClassHall-LegendaryIcon-Desaturated','ClassHall-QuestIcon-Desaturated','ClassHall-BonusIcon-Desaturated','ClassHall-CombatIcon-Desaturated','worldquest-icon-dungeon','honorsystem-bar-lock','Mobile-Alchemy','Mobile-Archeology','Mobile-Blacksmithing','Mobile-Cooking','Mobile-Enchanting','Mobile-Enginnering','Mobile-FirstAid','Mobile-Fishing','Mobile-Herbalism','Mobile-Inscription','Mobile-Jewelcrafting','Mobile-Leatherworking','Mobile-MechanicIcon-Curse','Mobile-MechanicIcon-Disorienting','Mobile-MechanicIcon-Lethal','Mobile-MechanicIcon-Slowing','Mobile-Mining','Mobile-Pets','Mobile-Skinning','Mobile-Tailoring','Taxi_Frame_Gray','Taxi_Frame_Green','UI-Taxi-Icon-Nub','!UI-Taxi-Line','_UI-Taxi-Line-horizontal','Mobile-MechanicIcon-Powerful','GarrMission_ClassIcon-DemonHunter-Outcast','splash-703-botleft','splash-703-right','splash-703-topleft','splash-704-botleft','splash-704-right','splash-704-topleft','splash-705-botleft','splash-705-right','splash-705-topleft','inspect-talent-selected','loottab-background','loottab-set-background','autoquest-badgeborder','ClassHall_Follower-EquipmentBG','ClassHall_Follower-EquipmentFrame','ClassHall_InfoBoxMission-Corner','_ClassHall_InfoBoxMission-Top','!ClassHall_InfoBoxMission-Left','ClassHall_ParchmentHeader-End-2','ClassHall_ParchmentHeaderSelect-End-2','ClassHall-CombatAlly','nameplates-icon-elite-gold','nameplates-icon-elite-silver','streamcinematic-legion-down','streamcinematic-legion-up','GarrMission_ClassIcon-Karazhan','WhiteCircle-RaidBlips','WhiteDotCircle-RaidBlips','friendslist-categorybutton-arrow-down','friendslist-categorybutton-arrow-right','friendslist-categorybutton','Taxi_Frame_Yellow','pvprated-loottoast-bg-alliance','pvprated-loottoast-bg-horde','128-redbutton-highlight','bags-greenarrow','socialqueuing-icon-clock','socialqueuing-icon-eye','socialqueuing-icon-group','quickjoin-button-friendslist-down','quickjoin-button-friendslist-up','quickjoin-button-quickjoin-down','quickjoin-button-quickjoin-up','quickjoin-toast-background','quickjoin-toast-lines','macropopup-bottomleft','macropopup-bottomright','macropopup-topleft','macropopup-topright','_macropopup-bottom','_macropopup-top','!macropopup-left','!macropopup-right','macropopup-scrollbar-bottom','macropopup-scrollbar-top','!macropopup-scrollbar-middle','socialqueuing-row-highlight','socialqueuing-row-select','splash-710-botleft','splash-710-right','splash-710-topleft','groupfinder-icon-class-demonhunter','ancientmana','quickjoin-button-group-down','quickjoin-button-group-up','socialqueuing-friendlist-summonbutton-disabled','socialqueuing-friendlist-summonbutton-down','socialqueuing-friendlist-summonbutton-up','worldquest-icon-burninglegion','worldquest-icon-raid','GarrMission-AbilityHighlight-Error','transmog-set-border-collected','transmog-set-border-current-transmogged','transmog-set-border-current','transmog-set-border-highlighted','transmog-set-border-selected','transmog-set-border-unusable','transmog-set-iconrow-background','ParagonReputation_Bag','ParagonReputation_Checkmark','ParagonReputation_Glow','Legionfall_Background','Legionfall_Banner','Legionfall_BarBackground','Legionfall_BarFrame','Legionfall_BarSpark','Legionfall_BuildingInfoBackground','Legionfall_GrayFrame','Legionfall_Padlock','_Legionfall_BarFill_Active','_Legionfall_BarFill_UnderAttack','_Legionfall_BarFill_UnderConstruction','legionmission-portraitring-epicplus','legionmission-portraitring_levelborder_epicplus','Legionfall_CommandCenter_Completed','Legionfall_CommandCenter_Destroyed','Legionfall_CommandCenter_UnderAttack','Legionfall_CommandCenter_UnderConstruction','Legionfall_MageTower_Completed','Legionfall_MageTower_Destroyed','Legionfall_MageTower_UnderAttack','Legionfall_MageTower_UnderConstruction','Legionfall_NetherDisruptor_Completed','Legionfall_NetherDisruptor_Destroyed','Legionfall_NetherDisruptor_UnderAttack','Legionfall_NetherDisruptor_UnderConstruction','Artifacts-DeathKnightFrost-BG-Rune','Artifacts-ItemIconBorder','Artifacts-PerkRing-Final','Artifacts-DeathKnightFrost-FinalIcon','Legionfall_GrayBanner','Legionfall_GreenFrame','Legionfall_RedFrame','Legionfall_YellowFrame','Legionfall_ExitFrame','equipmentmanager-spec-border','Artifacts-DemonHunter-BG-rune','Artifacts-Druid-BG-rune','Artifacts-Hunter-BG-rune','Artifacts-MageArcane-BG-rune','Artifacts-Monk-BG-rune','Artifacts-Paladin-BG-rune','Artifacts-Priest-BG-rune','Artifacts-PriestShadow-BG-rune','Artifacts-Rogue-BG-rune','Artifacts-Shaman-BG-rune','Artifacts-Warlock-BG-rune','Artifacts-Warrior-BG-rune','Artifacts-PerkRing-Final-Shine','Talent-Selection-Legendary','Artifacts-DemonHunter-FinalIcon','Artifacts-Druid-FinalIcon','Artifacts-Hunter-FinalIcon','Artifacts-MageArcane-FinalIcon','Artifacts-Monk-FinalIcon','Artifacts-Paladin-FinalIcon','Artifacts-Priest-FinalIcon','Artifacts-PriestShadow-FinalIcon','Artifacts-Rogue-FinalIcon','Artifacts-Shaman-FinalIcon','Artifacts-Warlock-FinalIcon','Artifacts-Warrior-FinalIcon','Artifacts-CrestRune-Gold','legionfallmapbanner','QuestBG-Legionfall','Quest-Legionfall-WaxSeal','poi-transmogrifier','Artifacts-Anim-Sparks','worldquest-emissary-ring','worldquest-emissary-tracker-checkmark','splash-720-botleft','splash-720-right','splash-720-topleft','demonship','Artifacts-Anim-Orb','Artifacts-Anim-Glowies','Legionfall_BarFrame-Glow','transmog-set-model-cutoff-fade','MountToast-Background','PetToast-background','honorsystem-icon-enlistmentbonus','artifacts-anim-crackedground','Legionfall_GrayFrame_Buffs','demonship_east','DK-Blood-Rune-CDFill','DK-BloodUnholy-Rune-CDSpark','DK-Frost-Rune-CDFill','DK-Frost-Rune-CDSpark','DK-Unholy-Rune-CDFill','Warlock-Bar-EmptyShards','Warlock-EmptyShard','Warlock-FillShard','Warlock-ReadyShard-Glow','Warlock-ReadyShard','Warlock-Shard-Spark','CastBar','CurrentPlayer-Glow','DarkTutorialFrameBackground','DeathIcon','HealerBadge','HealingDampening','InterruptOverlay','RedCCIconGlow','ScoreDivider','ScoreTeam','TankBadge','TargetCrosshairs','tournamentarena-frame-bg-corner-blue','tournamentarena-frame-bg-corner-red','UI-Feedback-Border','UnitFrame-NoMana','UnitFrame-NoTrinket','UnitFrame','UnitFrame_CCOverlay-NoMana','UnitFrame_CCOverlay','UnitFrame_DeathOverlay-NoMana','UnitFrame_DeathOverlay','UnitFrame_FocusFireOverlay-NoMana','UnitFrame_FocusFireOverlay','UnitFrame_CurrentPlayer_CCOverlay','UnitFrame_CurrentPlayer_DeathOverlay','UnitFrame_CurrentPlayer-NoMana','UnitFrame_CurrentPlayer-NoTrinket','UnitFrame_CurrentPlayer','UnitFrame_CurrentPlayerGlow','UnitFrame_CurrentPlayer_FocusFireOverlay-NoMana','UnitFrame_CurrentPlayer_FocusFireOverlay','UnitFrame_CurrentPlayer_CCOverlay-NoMana','UnitFrame_CurrentPlayer_DeathOverlay-NoMana','UnitFrame_CurrentPlayerGlow-NoMana','DK-Blood-Rune-Ready','DK-Rune-CD','DK-Rune-Glow','DK-Unholy-Rune-Ready','DK-Frost-Rune-Ready','raceicon-bloodelf-male','raceicon-draenei-female','raceicon-draenei-male','raceicon-dwarf-female','raceicon-dwarf-male','raceicon-gnome-female','raceicon-gnome-male','raceicon-goblin-male','raceicon-human-female','raceicon-human-male','raceicon-nightelf-female','raceicon-nightelf-male','raceicon-orc-female','raceicon-orc-male','raceicon-pandaren-female','raceicon-pandaren-male','raceicon-tauren-female','raceicon-tauren-male','raceicon-troll-female','raceicon-troll-male','raceicon-undead-female','raceicon-undead-male','raceicon-worgen-female','raceicon-worgen-male','poi-graveyard-neutral','poi-door-arrow-down','poi-door-arrow-up','poi-door','tournamentarena-winnerline','ui-moneyframe-large','talenttree-chromie-background','splash-725-botleft','splash-725-right','splash-725-topleft','taxinode_alliance','taxinode_horde','taxinode_neutral','flightmaster_argus-taxinode_neutral','FlightMaster_Argus-Taxi_Frame_Gray','FlightMaster_Argus-Taxi_Frame_Yellow','Darklink-ball','Darklink-glow','Darklink','Darkstone1','Darkstone2','Darkstone3','Darkstone4','Darkstone5','Darkstone6','Darkstone7','Darktrait-border','Lightlink-ball','Lightlink-glow','Lightlink','Lightstone1','Lightstone2','Lightstone3','Lightstone4','Lightstone5','Lightstone6','Lightstone7','Lighttrait-border','simplecheckout-close-hover-1x','simplecheckout-close-hover-2x','simplecheckout-close-normal-1x','simplecheckout-close-normal-2x','simplecheckout-close-pressed-1x','simplecheckout-close-pressed-2x','Darktrait-Glow','Lighttrait-glow','Mixedtrait-border','Relic-Rankframe-glow','Relic-Rankframe','Relic-Rankselected-circle','Relic-Rankselected-UpperGlow','Relicforge-background','Relicforge-Bottomframe','Relicforge-Bottomleft-corner','Relicforge-Bottomright-corner','Relicforge-Leftframe','Relicforge-Relicsbackground','Relicforge-Rightframe','Relicforge-Slot-background','Relicforge-Slot-frame','Relicforge-Topdecoration','Relicforge-Topframe','Relicforge-Topleft-corner','Relicforge-Topright-corner','Darklink-active','Disablelink','Lightlink-active','Darktrait-backglow','Lighttrait-backglow','dressingroom-background-deathknight','dressingroom-background-demonhunter','dressingroom-background-druid','dressingroom-background-hunter','dressingroom-background-mage','dressingroom-background-monk','dressingroom-background-paladin','dressingroom-background-priest','dressingroom-background-rogue','dressingroom-background-shaman','dressingroom-background-warlock','dressingroom-background-warrior','Darklink-blackinside','Lightlink-blackinside','worldstate-capturebar-frame-factions','worldstate-capturebar-arrow','worldstate-capturebar-frame-separater','poi-rift1','poi-rift2','countdown-swords','countdown-swords-glow','alliedrace-traitsborder','alliedrace-unlockingframe-background','alliedrace-unlockingframe-bottombuttonsmouseoverglow','alliedrace-unlockingframe-bottombuttonsselectionglow','alliedrace-unlockingframe-female','alliedrace-unlockingframe-gendermouseoverglow','alliedrace-unlockingframe-genderselectionglow','alliedrace-unlockingframe-leftrotation','alliedrace-unlockingframe-male','alliedrace-unlockingframe-rightrotation','alliedrace-unlockingframe-zoomin','alliedrace-unlockingframe-zoomout','AlliedRace-UnlockingFrame-ModelBackground-Highmountain','AlliedRace-UnlockingFrame-ModelBackground-Nightborne','AlliedRace-UnlockingFrame-ModelBackground-Voidelf','AlliedRace-Crest-Highmountain','AlliedRace-Crest-Lightforge','AlliedRace-Crest-Nightborne','AlliedRace-Crest-Voidelf','FlightMaster_VindicaarArgus-Taxi_Frame_Gray','FlightMaster_VindicaarArgus-Taxi_Frame_Green','FlightMaster_VindicaarArgus-Taxi_Frame_Yellow','FlightMaster_VindicaarMacAree-Taxi_Frame_Gray','FlightMaster_VindicaarMacAree-Taxi_Frame_Green','FlightMaster_VindicaarMacAree-Taxi_Frame_Yellow','FlightMaster_VindicaarStygianWake-Taxi_Frame_Gray','FlightMaster_VindicaarStygianWake-Taxi_Frame_Green','FlightMaster_VindicaarStygianWake-Taxi_Frame_Yellow','Relic-Rankdisable-DarkGlow','flightmasterargus','ArtifactsFX-PointSideBurstLeft-Purple','ArtifactsFX-PointSideBurstRight-Purple','ArtifactsFX-SpinningGlowys-Purple','ArtifactsFX-StarBurst-Purple','ArtifactsFX-Whirls-Purple','ArtifactsFX-YellowRing-Purple','AdventureMap_TileBg_Parchment','_GarrMissionLocation-Argus-Mid','GarrMissionLocation-Argus-List','Darktrait-border-selected','Lighttrait-border-selected','Neutralstone1','Neutralstone2','Neutralstone3','Neutralstone4','Neutralstone5','Neutralstone6','Neutralstone7','Neutraltrait-border-selected','Neutraltrait-border','poi-door-down','poi-door-left','poi-door-right','poi-door-up','QuestBG-TheHandofFate','splash-730-botleft','splash-730-right','splash-730-topleft','Neutraltrait-backglow','Neutraltrait-Glow','AftLevelup-NeutralStarBurst','AftLevelup-PurpleStarBurst','Artifacts-PerkRing-NeutralGlow','Artifacts-PerkRing-PurpleGlow','ArtifactsFX-Whirls-Neutral','ArtifactsFX-YellowRing-Neutral','Rune-01-neutral','Rune-01-purple','Rune-02-neutral','Rune-02-purple','Rune-03-neutral','Rune-03-purple','Rune-04-neutral','Rune-04-purple','Rune-05-neutral','Rune-05-purple','Rune-06-neutral','Rune-06-purple','GarrMission_ClassIcon-Voidscarred','GarrMission_ClassIcon-ArgussianReach','GarrMission_ClassIcon-ArmyoftheLight','AntoranWastes_Highlight','Relicforge-Relicsbackground-Previewtraits','Relicforge-Slot-frame-Active','Krokuun_Highlight','MacAree_Highlight','FlightMaster_Argus-Taxi_Frame_Green','voicechat-channellist-row-background','voicechat-channellist-row-highlight','voicechat-channellist-row-selected','voicechat-icon-headphone-off','voicechat-icon-headphone-on','voicechat-icon-headphone-pending','voicechat-icon-headphone-pendingdot-1','voicechat-icon-headphone-pendingdot-2','voicechat-icon-headphone-pendingdot-3','voicechat-icon-headphone-switch','voicechat-icon-loudnessbar-1','voicechat-icon-loudnessbar-2','voicechat-icon-loudnessbar-3','voicechat-icon-mic-mute','voicechat-icon-mic-silenced','voicechat-icon-mic','voicechat-icon-speaker-mute','voicechat-icon-speaker-silenced','voicechat-icon-speaker','hud-mainmenubar-arrowdown-disabled','hud-mainmenubar-arrowdown-down','hud-mainmenubar-arrowdown-highlight','hud-mainmenubar-arrowdown-up','hud-mainmenubar-arrowup-disabled','hud-mainmenubar-arrowup-down','hud-mainmenubar-arrowup-highlight','hud-mainmenubar-arrowup-up','hud-mainmenubar-gryphon','AlliedRace-UnlockingFrame-ModelFrame','AlliedRace-UnlockingFrame-RaceBanner','AlliedRace-UnlockingFrame-ModelBackground-Lightforge','voicechat-channellist-category-background','voicechat-channellist-category-minus','voicechat-channellist-category-plus','Front-Gold-Icon','Front-Tree-Icon','shop-card-half-brownbox','shop-card-half-brownboxlegionbundle','shop-card-half-legion','shop-card-half-legiondeluxe','shop-card-full-legiondeluxe','hud-mainmenubar-experiencebar-large-double','hud-mainmenubar-experiencebar-large-single','hud-mainmenubar-experiencebar-small-double','hud-mainmenubar-experiencebar-small-single','hud-mainmenubar-large','hud-mainmenubar-small','chatframe-button-down','chatframe-button-up','chatframe-button-icon-voicechat','chatframe-button-highlight','shop-card-half-hover','hud-microbutton-lfg-up','hud-microbutton-achievement-disabled','hud-microbutton-lfg-down','hud-microbutton-bstore-down','hud-microbutton-socials-disabled','hud-microbutton-mainmenu-up','hud-microbutton-quest-disabled','hud-microbutton-achievement-down','hud-microbutton-bstore-up','hud-microbutton-quest-up','hud-microbutton-quest-down','hud-microbutton-spellbook-down','hud-microbutton-ej-down','hud-microbutton-socials-up','hud-microbutton-lfg-disabled','hud-microbutton-streamdl-up','hud-microbutton-character-down','hud-microbutton-streamdl-down','hud-microbutton-mainmenu-down','hud-microbutton-mainmenu-disabled','hud-microbutton-talents-disabled','hud-microbutton-bstore-disabled','hud-microbutton-mounts-disabled','hud-microbutton-mounts-up','hud-microbutton-character-up','hud-microbutton-socials-down','hud-microbutton-spellbook-up','hud-microbutton-talents-down','hud-microbutton-mounts-down','hud-microbutton-ej-disabled','hud-microbutton-ej-up','hud-microbutton-spellbook-disabled','hud-microbutton-talents-up','hud-microbagbar','hud-microbutton-achievement-up','AlliedRaces-AllianceHordeBanner','loottoast-itemborder-gold','hud-microbutton-highlight','UI-Frame-InnerTopLeft','UI-Frame-Portrait','UI-Frame-InnerBotLeftCorner','UI-Frame-BtnDivRight','UI-Frame-TopCornerRight','UI-Frame-BtnDivMiddle','UI-Frame-BotCornerRight','UI-Frame-BotCornerLeft','UI-Frame-TopCornerRightSimple','UI-Frame-InnerBotRight','UI-Frame-InnerTopRight','UI-Frame-InnerSplitRight','UI-Frame-BtnDivLeft','UI-Frame-InnerSplitLeft','UI-Frame-BtnCornerLeft','UI-Frame-BtnCornerRight','!UI-Frame-InnerLeftTile','!UI-Frame-InnerRightTile','!UI-Frame-RightTile','!UI-Frame-LeftTile','_UI-Frame-InnerTopTile','_UI-Frame-TitleTile','_UI-Frame-InnerBotTile','_UI-Frame-Bot','_UI-Frame-TitleTileBg','_UI-Frame-BtnBotTile','UI-Frame-TopLeftCorner','_UI-Frame-TopTileStreaks','UI-Frame-TopCornerRight-HiRes','UI-Frame-Portrait-HiRes','UI-Frame-BotCornerLeft-HiRes','UI-Frame-BotCornerRight-HiRes','!UI-Frame-LeftTile-HiRes','!UI-Frame-RightTile-HiRes','_UI-Frame-Bot-HiRes','_UI-Frame-TittleTile-HiRes','BlizzCon2017Splash-button-newplayer','BlizzCon2017Splash-button-playexpansion','BlizzCon2017Splash-label-newtowow','BlizzCon2017Splash-logo','hud-PlayerFrame-portraitring-large','hud-PlayerFrame-levelring','hud-TargetingFrame','hud-TargetingFrame-rare-elite','hud-TargetingFrame-rare','hud-TargetingFrame-elite','hud-UnitFrame-Boss','nameplates-bar-fill','shop-card-bundle-hover','shop-card-bundle-legion','shop-card-bundle','shop-card-bundle-selected','raceicon-voidelf-male','raceicon-goblin-female','raceicon-nightborne-male','raceicon-lightforged-male','raceicon-nightborne-female','raceicon-highmountain-female','raceicon-voidelf-female','raceicon-lightforged-female','raceicon-bloodelf-female','raceicon-highmountain-male','bags-icon-addslots','bags-static','category-icon-ring','vas-receipt-icon-characterborder','warboard-header-alliance','warboard-header-horde','warboard-parchment-answerborder','warboard-parchment','warboard-title-alliance-left','warboard-title-alliance-right','warboard-title-horde-left','warboard-title-horde-right','warboard-title-neutral-left','warboard-title-neutral-right','_warboard-title-alliance-middle','_warboard-title-horde-middle','_warboard-title-neutral-middle','warboard-background','accountupgradebanner-bfa','azeriteready','azeritespawning','splash-735-botleft','splash-735-right','splash-735-topleft','Warfronts-BaseMapIcons-Alliance-Armory','Warfronts-BaseMapIcons-Alliance-Barracks','Warfronts-BaseMapIcons-Alliance-Heroes','Warfronts-BaseMapIcons-Alliance-MainHall','Warfronts-BaseMapIcons-Alliance-Tower','Warfronts-BaseMapIcons-Alliance-Workshop','Warfronts-BaseMapIcons-Empty-Armory','Warfronts-BaseMapIcons-Empty-Barracks','Warfronts-BaseMapIcons-Empty-Heroes','Warfronts-BaseMapIcons-Empty-Tower','Warfronts-BaseMapIcons-Empty-Workshop','Warfronts-BaseMapIcons-Horde-Armory','Warfronts-BaseMapIcons-Horde-Barracks','Warfronts-BaseMapIcons-Horde-Heroes','Warfronts-BaseMapIcons-Horde-MainHall','Warfronts-BaseMapIcons-Horde-Tower','Warfronts-BaseMapIcons-Horde-Workshop','shop-card-full-bfadeluxe','accountupgradebanner-bfa','shop-card-half-brownboxbfabundle','shop-card-half-bfadeluxe','shop-card-half-bfa','AzeriteArmor-CharacterInfo-Border','Bfa-boostpopup-bottom','Bfa-boostpopup-exit-frame','Bfa-boostpopup-middle','Bfa-boostpopup-top','warboard','FlightMaster_VindicaarArgus-TaxiNode_Neutral','FlightMaster_VindicaarArgus-TaxiNode_Special','FlightMaster_VindicaarMacAree-TaxiNode_Neutral','FlightMaster_VindicaarMacAree-TaxiNode_Special','FlightMaster_VindicaarStygianWake-TaxiNode_Neutral','FlightMaster_VindicaarStygianWake-TaxiNode_Special','warboard-parchment-nail','shop-card-bundle-battleforazeroth','shop-card-half-legionbfabundle','warfront-alliancedot','warfront-hordedot','Warfronts-FieldMapIcons-Empty-Banner','Warfronts-FieldMapIcons-Alliance-LumberMill','Warfronts-FieldMapIcons-Empty-Mine','Warfronts-FieldMapIcons-Empty-LumberMill','Warfronts-FieldMapIcons-Horde-Banner','Warfronts-FieldMapIcons-Alliance-Mine','Warfronts-FieldMapIcons-Horde-LumberMill','Warfronts-FieldMapIcons-Alliance-Banner','Warfronts-FieldMapIcons-Horde-Mine','warfront-alliancehero','warfront-hordehero','hud-microbutton-highlightalert','warfronts-basemapicons-alliance-armory-minimap','warfronts-basemapicons-alliance-barracks-minimap','warfronts-basemapicons-alliance-heroes-minimap','warfronts-basemapicons-alliance-mainhall-minimap','warfronts-basemapicons-alliance-workshop-minimap','warfronts-basemapicons-empty-armory-minimap','warfronts-basemapicons-empty-barracks-minimap','warfronts-basemapicons-empty-heroes-minimap','warfronts-basemapicons-empty-mainhall-minimap','warfronts-basemapicons-empty-workshop-minimap','warfronts-basemapicons-horde-armory-minimap','warfronts-basemapicons-horde-barracks-minimap','warfronts-basemapicons-horde-heroes-minimap','warfronts-basemapicons-horde-mainhall-minimap','warfronts-basemapicons-horde-workshop-minimap','Warfronts-BaseMapIcons-Empty-MainHall','Warfronts-FieldMapIcons-Neutral-Banner','Warfronts-FieldMapIcons-Neutral-Mine','pvptalents-background','pvptalents-list-background-mouseover','pvptalents-list-background-selected','pvptalents-list-background','pvptalents-list-checkmark','pvptalents-selectedarrow','pvptalents-talentborder-locked','pvptalents-talentborder','pvptalents-warmode-orb','pvptalents-warmode-ring-disabled','pvptalents-warmode-ring','pvptalents-warmode-swords-disabled','pvptalents-warmode-swords','transmog-background-race-voidelf','transmog-background-race-nightborne','transmog-background-race-highmountaintauren','transmog-background-race-lightforgeddraenei','warfronts-fieldmapicons-alliance-banner-minimap','warfronts-fieldmapicons-alliance-lumbermill-minimap','warfronts-fieldmapicons-alliance-mine-minimap','warfronts-fieldmapicons-empty-banner-minimap','warfronts-fieldmapicons-empty-lumbermill-minimap','warfronts-fieldmapicons-empty-mine-minimap','warfronts-fieldmapicons-horde-banner-minimap','warfronts-fieldmapicons-horde-lumbermill-minimap','warfronts-fieldmapicons-horde-mine-minimap','warfronts-fieldmapicons-neutral-banner-minimap','warfronts-fieldmapicons-neutral-mine-minimap','warfront-neutralhero','Azerite-CenterTrait-Ring','Azerite-Trait-Ring','Azerite-TitanBG-Rank4','Azerite-TitanBG-Rank3','Azerite-TitanBG-Rank2','Azerite-GoldRing-Rank2','Azerite-CenterBG-4Ranks','Azerite-CenterBG-3Ranks','Azerite-TitanBG-Glow-Rank2','Azerite-TitanBG-Glow-Rank3','Azerite-TitanBG-Glow-Rank4','warfronts-basemapicons-alliance-constructionarmory-minimap','warfronts-basemapicons-alliance-constructionbarracks-minimap','warfronts-basemapicons-alliance-constructionheroes-minimap','warfronts-basemapicons-alliance-constructionmainhall-minimap','warfronts-basemapicons-alliance-constructionworkshop-minimap','warfronts-basemapicons-horde-constructionarmory-minimap','warfronts-basemapicons-horde-constructionbarracks-minimap','warfronts-basemapicons-horde-constructionheroes-minimap','warfronts-basemapicons-horde-constructionmainhall-minimap','warfronts-basemapicons-horde-constructionworkshop-minimap','Azerite-Trait-RingGlow','Azerite-Background','Azerite-Trait-Ring-Open','Azerite-PointingArrow','AzeriteArmor-CharacterInfo-Neck','AzeriteArmor-CharacterInfo-NeckLevelBorder','pvptalents-talentborder-glow','pvptalents-warmode-glow','communities-chat-icon-minus','communities-chat-body-remove','communities-chat-addtab','communities-chat-icon-plus','communities-chat-body-add','AzeriteIconFrame','AzeriteArmor-CharacterInfo-NeckHighlight','AzeriteArmor-CharacterInfo-Border-Glow','Azerite-TopShadow','Azerite-Trait-Padlock','warfront-alliancehero-gold','warfront-alliancehero-silver','warfront-hordehero-gold','warfront-hordehero-silver','warfront-neutralhero-gold','warfront-neutralhero-silver','AzeriteArmor-Notification-Neck','AzeriteArmor-CharacterInfo-Border-ItemGlow','AzeriteArmor-CharacterInfo-Border-Smoke','AzeriteArmor-CharacterInfo-Border-TitanStar','UI-Frame-TopLeftCornerNoPortrait','scoreboard-footer-lootbackground','scoreboard-frameborder-bottom','scoreboard-frameborder-bottomleft','scoreboard-frameborder-bottomright','scoreboard-frameborder-left','scoreboard-frameborder-right','scoreboard-frameborder-top','scoreboard-frameborder-topleft','scoreboard-frameborder-topright','scoreboard-header-alliance','scoreboard-header-horde','communities-chat-icon-plus-tab','communities-icon-notification','scoreboard-background-islands-alliance','scoreboard-background-islands-horde','scoreboard-charactermodels-shadow','scoreboard-footer-alliance-glow','scoreboard-footer-alliance-icon','scoreboard-footer-horde-glow','scoreboard-footer-horde-icon','communities-create-button-bnet-down','communities-create-button-bnet-up','communities-create-button-highlight','communities-create-button-wow-down','communities-create-button-wow-up','communities-create-avatar-border-hover','communities-create-avatar-border-selected','communities-ring-blue','communities-ring-gold','warfront-alliancecommander-muradin','warfront-alliancecommander-trollbane','warfront-alliancecommander-turalyon','warfront-alliancewave1','warfront-alliancewave2','warfront-alliancewave3','Fog','alliancesymbol','hordesymbol','islands-allianceboat','islands-azeriteboss','islands-azeritechest','islands-hordeboat','islands-markedarea','warfront-hordewave1','warfront-hordewave2','warfront-hordewave3','chatframe-scrollbar-knob','FogMaskHardEdge','FogMaskSoftEdge','campaign_alliance','campaign_horde','questlog_bottomdetail','questlog_divider','questlog_topdetail','zonestory_divider','Objective-Header-CampaignAlliance','Objective-Header-CampaignHorde','Objective-Header-CampaignMouseOver-Highlight','chatframe-button-icon-headset','chatframe-button-icon-mic-off','chatframe-button-icon-mic-on','chatframe-button-icon-mic-silenced','chatframe-button-icon-speaker-off','chatframe-button-icon-speaker-on','chatframe-button-icon-speaker-silenced','voicechat-channellist-category-highlight','voicechat-portrait-drag','voicechat-portrait-ring','voicechat-channellist-icon-headphone-off','voicechat-channellist-icon-headphone-on','alliance_icon_and_flag-dynamicicon','alliance_icon_and_flag-flash','alliance_icon_and_flag-icon','alliance_icon_horde_flag-dynamicicon','alliance_icon_horde_flag-flash','alliance_icon_horde_flag-icon','alliance_tower-icon','coin-icon','combat_swords-dynamicicon','combat_swords-flash','combat_swords-icon','dreadlord-icon','horde_icon_alliance_flag-dynamicicon','horde_icon_alliance_flag-flash','horde_icon_alliance_flag-icon','horde_icon_and_flag-dynamicicon','horde_icon_and_flag-flash','horde_icon_and_flag-icon','horde_tower-icon','neutral_tower-icon','placeholder-icon','pvp_ffa-icon','skull_bones-icon','sniper_shot-icon','iron_and_wood-leftIcon','iron_and_wood-rightIcon','objectivewidget-bar-background','objectivewidget-bar-border-left','objectivewidget-bar-border-middle','objectivewidget-bar-border-right','objectivewidget-bar-fill-left','objectivewidget-bar-fill-neutral','objectivewidget-bar-fill-right','objectivewidget-bar-spark-left','objectivewidget-bar-spark-neutral','objectivewidget-bar-spark-right','objectivewidget-icon-left','objectivewidget-icon-right','Objective-Tracker-Collapse','Objective-TrackerTab-ExpandPressed','Objective-Tracker-Expand','Objective-TrackerTab-Collapse','Objective-Tracker-ExpandPressed','Objective-TrackerTab-Expand','Objective-Tracker-CollapsePressed','Objective-TrackerTab-CollapsePressed','Objective-Header-Collapse','voicechat-channellist-row-background2','communities-create-button-wow-alliance','communities-create-button-wow-horde','GarrMission_ClassIcon-Alliance','GarrMission_ClassIcon-Horde','raceicon-darkirondwarf-female','raceicon-darkirondwarf-male','raceicon-magharorc-female','raceicon-magharorc-male','warfronts-basemapicons-alliance-tower-minimap','warfronts-basemapicons-empty-tower-minimap','warfronts-basemapicons-horde-tower-minimap','communities-icon-addgroupplus','communities-icon-lock','Forge-UnobtainableCover','islands-queue-card1','islands-queue-card2','islands-queue-card3','islands-queue-card-namescroll','AlliedRace-UnlockingFrame-ModelBackground-DarkIronDwarf','AlliedRace-Crest-DarkIronDwarf','AlliedRace-Crest-Magharorc','transmog-background-race-darkirondwarf','islands-queue-difficultyselector-1','islands-queue-difficultyselector-2','islands-queue-difficultyselector-3','islands-queue-difficultyselector-4','islands-queue-difficultyselector-backboard','islands-queue-difficultyselector-ring','islands-queue-prop-coins','islands-queue-prop-compass','islands-queue-background','AlliedRace-UnlockingFrame-ModelBackground-Magharorc','communities-icon-invitemail','communities-widebackground','transmog-background-race-magharorc','BfAMission-Icon-HUB','BfAMission-Icon-Normal','BfAMission-Icon-QuickStrike','BfAMission-Icon-Stealth','TalkingHeads-Horde-PortraitFrame','TalkingHeads-Alliance-TextBackground','TalkingHeads-Horde-TextBackground','warfront_asset_horde_axe_thrower','warfront_asset_horde_bristling_power','warfront_asset_horde_call_of_the_storm','warfront_asset_horde_demolisher','warfront_asset_horde_elemental_spirit','warfront_asset_horde_flight_master','warfront_asset_horde_fortress','warfront_asset_horde_great_hall','warfront_asset_horde_grunt','warfront_asset_horde_kodo_rider','warfront_asset_horde_shaman','warfront_asset_horde_stronghold','warfront_asset_horde_wolf_raider','TalkingHeads-Neutral-PortraitFrame','TalkingHeads-Neutral-TextBackground','poi-bountyplayer-alliance','poi-bountyplayer-horde','Azerite-CenterBG-ChannelGlowBar-Shinny','Azerite-CenterBG-ChannelGlowBar-Filling','Azerite-SmallChannel-BaseSpark','Azerite-SmallChannel-Reflection1','Azerite-SmallChannel-Reflection2','Azerite-SmallChannel-Smoke','Azerite-SmallChannel-Spark','Azerite-Center-TraitBG','Azerite-Center-TraitPlug-Rune2','Azerite-Center-TraitPlug-Rune3','Azerite-Center-TraitPlug-Rune1','scrappingmachine-background-gnomish','scrappingmachine-background-goblin','scrappingmachine-background-slots','battlefieldminimap-border-bottomleft','battlefieldminimap-border-bottomright','battlefieldminimap-border-top','battlefieldminimap-border-topleft','battlefieldminimap-border-topright','battlefieldminimap-border-bottom','battlefieldminimap-border-left','battlefieldminimap-border-right','macropopup-bottomright-nobuttons','macropopup-intersect-left','macropopup-intersect-right','macropopup-topleft2','macropopup-topright2','_macropopup-top2','pvpqueue-background-rated','pvpqueue-button-down','pvpqueue-button-highlight','pvpqueue-button-selected','pvpqueue-button-up','pvpqueue-conquestbar-background','pvpqueue-conquestbar-frame','_pvpqueue-conquestbar-fill-red','_pvpqueue-conquestbar-fill-yellow','pvpqueue-background-casual-alliance','pvpqueue-background-casual-horde','pvpqueue-button-casual-down','pvpqueue-button-casual-highlight','pvpqueue-button-casual-selected','pvpqueue-button-casual-up','pvpqueue-sidebar-background','pvpqueue-sidebar-honorbar-background','pvpqueue-rewardring-black','pvpqueue-rewardring-large','pvpqueue-rewardring','pvpqueue-rewardring-small','pvpqueue-sidebar-nextarrow','pvpqueue-sidebar-honorbar-background-alliance','pvpqueue-sidebar-honorbar-background-horde','pvpqueue-rankglow','warfront-hordecommander-eitrigg','warfront-hordecommander-ladyliadrin','warfront-hordecommander-rokhan','Azerite-TitanBG-GearRank4','Azerite-TitanBG-GearRank3','Azerite-TitanBG-GearRank2','Azerite-TitanBG-GearRank2-Front','Azerite-TitanBG-GearRank3-Front','Azerite-TitanBG-GearRank4-Front','Azerite-Background-3Ranks','talenttree-horde-background','azeritereforger-background','azeritereforger-glow','Azerite-TitanBG-LightsRank2','Azerite-TitanBG-LightsRank3','Azerite-TitanBG-LightsRank4','warfront_asset_alliance_castle','warfront_asset_alliance_elek_rider','warfront_asset_alliance_elemental_spirit','warfront_asset_alliance_footmen','warfront_asset_alliance_keep','warfront_asset_alliance_knights','warfront_asset_alliance_priests','warfront_asset_alliance_riflemen','warfront_asset_alliance_siege_engine','warfront_asset_alliance_town_hall','warfront_asset_alliance_flight_master','alliancewarfrontmapbanner','hordewarfrontmapbanner','scoreboard-background-warfronts-horde','scoreboard-background-warfronts-alliance','islands-questbang','islands-questbangdisable','islands-questdisable','islands-questturnin','bfa-landingbutton-alliance-down','bfa-landingbutton-alliance-up','bfa-landingbutton-horde-down','bfa-landingbutton-horde-up','mythicplus-chest-collect','mythicplus-chest-gold','mythicplus-chest-silver','mythicplus-chest-collect-sparkles','roleicon-tiny-dps','roleicon-tiny-healer','roleicon-tiny-tank','Artifacts-Retiring-Gradient','pvpqueue-sidebar-honorbar-badge-alliance','pvpqueue-sidebar-honorbar-badge-horde','BfAMission-Icon-LongCampaign','UI-Frame-Horde-CardParchment','_UI-Frame-Horde-TileBottom','UI-Frame-Horde-PortraitDisable','UI-Frame-Horde-Ribbon','UI-Frame-Horde-CardParchmentWider','_UI-Frame-Horde-TitleMiddle','_UI-Frame-Horde-TileTop','UI-Frame-Horde-Portrait','UI-Frame-Horde-ExitButtonBorder','UI-Frame-Horde-Header','UI-Frame-Horde-PortraitWiderDisable','UI-Frame-Horde-PortraitWider','UI-Frame-Horde-TitleLeft','UI-Frame-Horde-TitleRight','UI-Frame-Horde-Corner','!UI-Frame-Horde-TileLeft','!UI-Frame-Horde-TileRight','UI-Frame-Horde-BackgroundTile','ui-frame-bar-bgcenter','ui-frame-bar-bgleft','ui-frame-bar-bgright','ui-frame-bar-bordercenter','ui-frame-bar-borderleft','ui-frame-bar-borderright','ui-frame-bar-glowcenter','ui-frame-bar-glowleft','ui-frame-bar-glowright','ui-frame-bar-spark','ui-frame-bar-fill-green','ui-frame-bar-fill-red','ui-frame-bar-fill-yellow','UI-Frame-Alliance-Portrait','_UI-Frame-Alliance-TitleMiddle','UI-Frame-Alliance-ExitButtonBorder','UI-Frame-Alliance-Ribbon','UI-Frame-Alliance-PortraitWiderDisable','UI-Frame-Alliance-Corner','UI-Frame-Alliance-PortraitWider','_UI-Frame-Alliance-TileBottom','UI-Frame-Alliance-Header','_UI-Frame-Alliance-TileTop','UI-Frame-Alliance-CardParchment','UI-Frame-Alliance-TitleLeft','UI-Frame-Alliance-CardParchmentWider','UI-Frame-Alliance-PortraitDisable','UI-Frame-Alliance-TitleRight','UI-Frame-Neutral-CardParchment','UI-Frame-Neutral-CardParchmentWider','UI-Frame-Neutral-Corner','UI-Frame-Neutral-ExitButtonBorder','UI-Frame-Neutral-Portrait','UI-Frame-Neutral-PortraitDisable','UI-Frame-Neutral-PortraitWider','UI-Frame-Neutral-PortraitWiderDisable','UI-Frame-Neutral-Ribbon','UI-Frame-Neutral-TitleLeft','UI-Frame-Neutral-TitleRight','_UI-Frame-Neutral-TileBottom','_UI-Frame-Neutral-TileTop','_UI-Frame-Neutral-TitleMiddle','UI-Frame-Alliance-BackgroundTile','!UI-Frame-Alliance-TileLeft','!UI-Frame-Alliance-TileRight','UI-Frame-Neutral-BackgroundTile','!UI-Frame-Neutral-TileLeft','!UI-Frame-Neutral-TileRight','AllianceScenario-TitleBG','AllianceScenario-TrackerHeader','HordeScenario-TitleBG','HordeScenario-TrackerHeader','islands-queue-progressbar-checkmark','islands-queue-progressbar-frame','islands-queue-progressbar-spark','_islands-queue-progressbar-background','_islands-queue-progressbar-fill','warfront-alliance-siegeengine','warfront-horde-demolisher','islands-queue-card-dreadchain-icetroll','islands-queue-card-dreadchain-kvaldir','islands-queue-card-dreadchain-mogu','islands-queue-card-dreadchain','islands-queue-card-moltencay-jungletroll','islands-queue-card-moltencay-ogre','islands-queue-card-moltencay-sandtroll','islands-queue-card-moltencay-yaungol','islands-queue-card-moltencay','azeritetooltip-bottom','azeritetooltip-topper','islands-queue-card-rottingmire-jinyu','islands-queue-card-rottingmire-saurok','islands-queue-card-rottingmire-strandedpirates','islands-queue-card-rottingmire','islands-queue-card-skitteringhollow-kobolds','islands-queue-card-skitteringhollow-nerubians','islands-queue-card-skitteringhollow-troggs','islands-queue-card-skitteringhollow','islands-queue-card-ungolruins-hozen','islands-queue-card-ungolruins-pygmy','islands-queue-card-ungolruins-quilboar','islands-queue-card-ungolruins','islands-queue-card-verdantwilds-druids','islands-queue-card-verdantwilds-furbolgs','islands-queue-card-verdantwilds-keepers','islands-queue-card-verdantwilds','islands-queue-card-whisperingreef-makrura','islands-queue-card-whisperingreef-murlocs','islands-queue-card-whisperingreef-naga','islands-queue-card-whisperingreef','Azerite-CenterBG-ChannelGlowBar-Mask','Azerite-CenterBG-ChannelGlowBar-Effect','HordeFrame-Corner-TopLeft','HordeFrame-Header','_HordeFrameTile-Bottom','_HordeFrameTile-Top','!HordeFrameTile-Left','AllianceFrame-Header','AllianceFrameCorner-TopLeft','_AllianceFrameTile-Bottom','_AllianceFrameTile-Top','!AllianceFrameTile-Left','Azerite-CenterBG-ChannelGlowBar-Particles','Azerite-CenterBG-ChannelGlowBar-Gold','Azerite-CenterBG-ChannelGlowBar-FillingMask','Azerite-CenterTrait-RingDisable','FlightMaster_Ferry-Taxi_Frame_Gray','FlightMaster_Ferry-Taxi_Frame_Green','FlightMaster_Ferry-Taxi_Frame_Yellow','flightmasterferry','flightmaster_ferry-taxinode_alliance','pvpqueue-conquestbar-checkmark','communities-chat-date-line-orange','communities-chat-date-line','streamcinematic-bfa-down','streamcinematic-bfa-up','groupfinder-background-raids-battleforazeroth','groupfinder-button-raids-battleforazeroth','BFA-mission-complete-background-Alliance','BFA-mission-complete-background-Horde','voicechat-icon-mic-mutesilenced','voicechat-icon-textchat-silenced','chatframe-button-icon-mic-silenced-off','voicechat-icon-speaker-mutesilenced','AzeriteFX-BlueRing','AzeriteFX-Whirls','_GarrMissionLocation-SilverpineForest-Mid','_GarrMissionLocation-HillsbradFoothills-Mid','_GarrMissionLocation-ArathiHighlands-Mid','_GarrMissionLocation-Azshara-Mid','_GarrMissionLocation-Ashenvale-Mid','_GarrMissionLocation-Darkshore-Mid','_GarrMissionLocation-Durotar-Mid','_GarrMissionLocation-NorthernBarrens-Mid','_GarrMissionLocation-SouthernBarrens-Mid','_GarrMissionLocation-Nazmir-Mid','_GarrMissionLocation-Zuldazar-Mid','_GarrMissionLocation-Voldun-Mid','_GarrMissionLocation-Stormsong-Mid','_GarrMissionLocation-Drustvar-Mid','_GarrMissionLocation-TiragardeSound-Mid','GarrMissionLocation-ArathiHighlands-List','GarrMissionLocation-Ashenvale-List','GarrMissionLocation-Azshara-List','GarrMissionLocation-Darkshore-List','GarrMissionLocation-Drustvar-List','GarrMissionLocation-Durotar-List','GarrMissionLocation-HillsbradFoothills-List','GarrMissionLocation-Nazmir-List','GarrMissionLocation-NorthernBarrens-List','GarrMissionLocation-SilverpineForest-List','GarrMissionLocation-SouthernBarrens-List','GarrMissionLocation-Stormsong-List','GarrMissionLocation-TiragardeSound-List','GarrMissionLocation-Voldun-List','GarrMissionLocation-Zuldazar-List','splash-801-botleft','splash-801-right','splash-801-topleft','splash-801A-botleft','splash-801A-right','splash-801A-topleft','splash-801H-botleft','splash-801H-right','splash-801H-topleft','Azerite-CenterTrait-Off','Azerite-CenterTrait-On','HordeFrame_ParchmentHeader-End-2','HordeFrame_ParchmentHeader-End','HordeFrame_ParchmentHeaderSelect-End-2','HordeFrame_ParchmentHeaderSelect-End','_HordeFrame_ParchmentHeader-Mid','_HordeFrame_ParchmentHeaderSelect-Mid','HordeFrame_ExitBorder','HordeFrame_Title-End-2','HordeFrame_Title-End','_HordeFrame_Title-Tile','loottoast-azerite','taxinode_continent_alliance','taxinode_continent_horde','taxinode_continent_neutral','AllianceFrame_Title-End','AllianceFrame_Title-End-2','AllianceFrame_ParchmentHeaderSelect-End','AllianceFrame_ParchmentHeader-End-2','AllianceFrame_ExitBorder','AllianceFrame_ParchmentHeaderSelect-End-2','_AllianceFrame_ParchmentHeader-Mid','_AllianceFrame_ParchmentHeaderSelect-Mid','_AllianceFrame_Title-Tile','pvptalents-warmode-firecover','pvptalents-talentborder-empty','loottoast-azerite-border','questportraiticon-alliance','questportraiticon-horde','AllianceFrame_ParchmentHeader-End','communities-guildbanner-background','communities-guildbanner-border','BfAMissionsLandingPage-Background-Horde','BfAMissionsLandingPage-Background-Alliance','communities-nav-button-green-normal','communities-nav-button-green-pressed','UI-EJ-BurningCrusade','UI-EJ-Classic','UI-EJ-Cataclysm','UI-EJ-WrathoftheLichKing','UI-EJ-MistsofPandaria','UI-EJ-WarlordsofDraenor','ui-ej-battleforazeroth','ui-ej-legion','Bfa-expansionTrialPopup-middle','Bfa-expansionTrialPopup-top','Bfa-expansionTrialPopup-bottom','Bfa-expansionTrialPopup-exit-frame','questportraiticon-alliance-small','questportraiticon-horde-small','bfa-landingbutton-alliance-shieldglow','bfa-landingbutton-alliance-shieldhighlight','bfa-landingbutton-horde-diamondglow','bfa-landingbutton-horde-diamondhighlight','talenttree-horde-corner','talenttree-horde-cornerlogo','talenttree-horde-currencybg','talenttree-horde-exit','_talenttree-horde-tilebottom','_talenttree-horde-tiletop','talenttree-alliance-background','talenttree-alliance-corner','talenttree-alliance-cornerlogo','talenttree-alliance-currencybg','talenttree-alliance-exit','_talenttree-alliance-tilebottom','_talenttree-alliance-tiletop','!talenttree-horde-tileleft','!talenttree-horde-tileright','!talentree-alliance-tileleft','!talentree-alliance-tileright','scoreboard-alliance-corner','scoreboard-horde-corner','scoreboard-alliance-header','_scoreboard-horde-tilebottom','scoreboard-horde-header','_scoreboard-alliance-tilebottom','_scoreboard-horde-tiletop','_scoreboard-alliance-tiletop','!scoreboard-alliance-tileleft','!scoreboard-alliance-tileright','!scoreboard-horde-tileleft','!scoreboard-horde-tileright','ui-frame-bar-fill-blue','GarrMission_ClassIcon-Technician','worldmap-highlight-cosmic-azeroth','worldmap-highlight-cosmic-outland','worldmap-highlight-cosmic-draenor','chatframe-button-highlightalert','DarkWoodFrameCorner','!DarkWoodFrameTile-Left','_DarkWoodFrameTile-Bottom','_DarkWoodFrameTile-Top','islands-queue-titlesign','groupfinder-background-islands','groupfinder-button-islands','islands-queue-popup','hud-microbutton-guild-banner','BrokenIslesHighlight','ClassTrial-DemonHunter-Ring','communities-icon-chat','UI-Frame-DpsIcon','UI-Frame-HealerIcon','UI-Frame-TankIcon','shop-card-full-gametimebundle','communities-icon-addchannelplus','communities-create-button-bnet-highlight','communities-icon-redx','hud-microbutton-communities-icon-notification','alliedrace-unlockingframe-box','alliedrace-unlockingframe-checkmark','raceicon-kultiran-female','raceicon-kultiran-male','raceicon-zandalari-female','raceicon-zandalari-male','UI-Frame-SimpleMetal-CornerTopLeft','_UI-Frame-SimpleMetal-EdgeTop','!UI-Frame-SimpleMetal-EdgeLeft','map-markeddefeated','UI-Frame-SimpleMetal-CornerTopRightButton','darkshore_warfront_alliance_archer','darkshore_warfront_alliance_arch_druid','darkshore_warfront_alliance_call_of_nature','darkshore_warfront_alliance_chimaera','darkshore_warfront_alliance_druid','darkshore_warfront_alliance_dryad','darkshore_warfront_alliance_faerie_dragon','darkshore_warfront_alliance_glaive_thrower','darkshore_warfront_alliance_huntress','darkshore_warfront_alliance_keeper_of_the_grove','darkshore_warfront_alliance_sentinel','darkshore_warfront_alliance_tree_of_ages','darkshore_warfront_alliance_tree_of_eternity','darkshore_warfront_alliance_tree_of_life','Azerite-GoldRing-Rank3','Azerite-GoldRing-Rank4','shop-card-half-subscription','shop-card-half-completecollection','ui-frame-metal-cornerbottomleft-2x','ui-frame-metal-cornerbottomright-2x','ui-frame-metal-cornertopleft-2x','ui-frame-metal-cornertopright-2x','ui-frame-portraitmetal-cornertopleft-2x','ui-frame-metal-cornertoprightdouble-2x','!AlliedRace-UnlockingFrame-BoxTile','!ui-frame-metal-edgeleft-2x','!ui-frame-metal-edgeright-2x','_ui-frame-metal-edgebottom-2x','_ui-frame-metal-edgetop-2x','alliedrace-unlockingframe-boxtopper','CharacterCreate-NewLabel','warfront_alliance_double-frame','warfront_horde_double-frame','warfront_alliance_left-frame','warfront_alliance_right-frame','warfront_horde_left-frame','warfront_horde_right-frame','bags-icon-scrappable','Azerite-Center-TraitPlug-Rune4','Azerite-CenterBG-5Ranks','Azerite-CenterBG-ChannelGlowBar-MaskRank5','Azerite-GoldRing-Rank5','Azerite-TitanBG-GearRank5-Front','Azerite-TitanBG-Glow-Rank5','Azerite-TitanBG-GearRank5','Azerite-TitanBG-Rank5','Azerite-CenterBG-ChannelGlowBar-Filling-Rank5','Azerite-CenterBG-ChannelGlowBar-Shinny-Rank5','UI-Frame-IconBorder','UI-Frame-IconMask','warfronts-basemapicons-alliance-armory-minimap-small','warfronts-basemapicons-alliance-barracks-minimap-small','warfronts-basemapicons-alliance-constructionarmory-minimap-small','warfronts-basemapicons-alliance-constructionbarracks-minimap-small','warfronts-basemapicons-alliance-constructionheroes-minimap-small','warfronts-basemapicons-alliance-constructionmainhall-minimap-small','warfronts-basemapicons-alliance-constructionworkshop-minimap-small','warfronts-basemapicons-alliance-heroes-minimap-small','warfronts-basemapicons-alliance-mainhall-minimap-small','warfronts-basemapicons-alliance-tower-minimap-small','warfronts-basemapicons-alliance-workshop-minimap-small','warfronts-basemapicons-empty-armory-minimap-small','warfronts-basemapicons-empty-barracks-minimap-small','warfronts-basemapicons-empty-heroes-minimap-small','warfronts-basemapicons-empty-mainhall-minimap-small','warfronts-basemapicons-empty-tower-minimap-small','warfronts-basemapicons-empty-workshop-minimap-small','warfronts-basemapicons-horde-armory-minimap-small','warfronts-basemapicons-horde-barracks-minimap-small','warfronts-basemapicons-horde-constructionarmory-minimap-small','warfronts-basemapicons-horde-constructionbarracks-minimap-small','warfronts-basemapicons-horde-constructionheroes-minimap-small','warfronts-basemapicons-horde-constructionmainhall-minimap-small','warfronts-basemapicons-horde-constructionworkshop-minimap-small','warfronts-basemapicons-horde-heroes-minimap-small','warfronts-basemapicons-horde-mainhall-minimap-small','warfronts-basemapicons-horde-tower-minimap-small','warfronts-basemapicons-horde-workshop-minimap-small','warfronts-fieldmapicons-alliance-banner-minimap-small','warfronts-fieldmapicons-alliance-lumbermill-minimap-small','warfronts-fieldmapicons-alliance-mine-minimap-small','warfronts-fieldmapicons-empty-banner-minimap-small','warfronts-fieldmapicons-empty-lumbermill-minimap-small','warfronts-fieldmapicons-empty-mine-minimap-small','warfronts-fieldmapicons-horde-banner-minimap-small','warfronts-fieldmapicons-horde-lumbermill-minimap-small','warfronts-fieldmapicons-horde-mine-minimap-small','warfronts-fieldmapicons-neutral-banner-minimap-small','warfronts-fieldmapicons-neutral-mine-minimap-small','UI-Frame-Horde-DisableSubtitle','UI-Frame-Horde-Subtitle','UI-Frame-Alliance-Subtitle','UI-Frame-Alliance-DisableSubtitle','Azerite-TitanBG-Rank5-1Gear','Azerite-TitanBG-LightsRank5','parchmentpopup-background','parchmentpopup-bottom','parchmentpopup-bottomleft','parchmentpopup-bottomright','parchmentpopup-hide-bottom','parchmentpopup-hide-left','parchmentpopup-hide-right','parchmentpopup-hide-top','parchmentpopup-left','parchmentpopup-right','parchmentpopup-top','parchmentpopup-topleft','parchmentpopup-topright','worldquest-icon-alliance','worldquest-icon-horde','pvpqueue-rewardring-popup','mythicplus-popup-ring','parchmentpopup-filigree','scoreboard-background-warfronts-darkshore-horde','scoreboard-background-warfronts-darkshore-alliance','Raid-Icon-SummonAccepted','Raid-Icon-SummonDeclined','Raid-Icon-SummonPending','darkshore_warfront_horde_alchemist','darkshore_warfront_horde_deadshot','darkshore_warfront_horde_deathguard','darkshore_warfront_horde_lancer','warfront_asset_armor_upgrade_1','warfront_asset_armor_upgrade_2','warfront_asset_armor_upgrade_3','warfront_asset_weapon_upgrade_1','warfront_asset_weapon_upgrade_2','warfront_asset_weapon_upgrade_3','darkshore_warfront_horde_catapult','darkshore_warfront_horde_town_hall_1','darkshore_warfront_horde_town_hall_2','darkshore_warfront_horde_town_hall_3','darkshore_warfront_horde_abomination','darkshore_warfront_horde_azermek','darkshore_warfront_horde_banshee','HordeEmblem','AllianceEmblem','pvpqueue-chest-alliance-collect','pvpqueue-chest-alliance-complete','pvpqueue-chest-alliance-incomplete','pvpqueue-chest-horde-collect','pvpqueue-chest-horde-complete','pvpqueue-chest-horde-incomplete','poi-scrapper','poi-islands-table','pvpqueue-chest-background','darkshore_warfront_horde_putrid_abomination','darkshore_warfront_horde_vile_screecher','_GarrMissionLocation-Islands-Mid','splash-810-botleft','splash-810-right','splash-810-topleft','splash-8102-botleft','splash-8102-right','splash-8102-topleft','pvptalents-warmode-incentive-ring','BfAMission-Icon-Treasure','guildfinder-card-guildbanner-background','guildfinder-card-guildbanner-border','guildfinder-card-guildbanner-shadow','guildfinder-card','common-checkbox-partial','shop-card-bundle-battleforazeroth','shop-card-bundle-lastchance2018','islands-queue-card-jorundall-taunka','islands-queue-card-jorundall-vargul','islands-queue-card-jorundall-vrykul','islands-queue-card-jorundall','islands-queue-card-havenswood','islands-queue-card-havenswood-cultist','islands-queue-card-havenswood-faceless','islands-queue-card-havenswood-worgen','shop-card-bundle-lastchance2018-featured','shop-card-full-gametimebundle2','shop-card-full-gametimebundle3','AlliedRace-UnlockingFrame-ModelBackground-Kultiran','AlliedRace-Crest-Kultiran','transmog-background-race-kultiran','allianceassaultsmapbanner','hordeassaultsmapbanner','AlliedRace-UnlockingFrame-ModelBackground-Zandalari','AlliedRace-Crest-Zandalari','communities-icon-searchmagnifyingglass','communitiesfinder-card','transmog-background-race-ZandalariTroll','ctf_flags-leftIcon1-state1','ctf_flags-leftIcon2-state1','ctf_flags-leftIcon3-state1','ctf_flags-leftIcon4-state1','ctf_flags-leftIcon5-state1','ctf_flags-rightIcon1-state1','ctf_flags-rightIcon2-state1','ctf_flags-rightIcon3-state1','ctf_flags-rightIcon4-state1','ctf_flags-rightIcon5-state1','ab_capPts-leftIcon1-state1','ab_capPts-leftIcon1-state2','ab_capPts-leftIcon2-state1','ab_capPts-leftIcon2-state2','ab_capPts-leftIcon3-state1','ab_capPts-leftIcon3-state2','ab_capPts-leftIcon4-state1','ab_capPts-leftIcon4-state2','ab_capPts-leftIcon5-state1','ab_capPts-leftIcon5-state2','ab_capPts-rightIcon1-state1','ab_capPts-rightIcon1-state2','ab_capPts-rightIcon2-state1','ab_capPts-rightIcon2-state2','ab_capPts-rightIcon3-state1','ab_capPts-rightIcon3-state2','ab_capPts-rightIcon4-state1','ab_capPts-rightIcon4-state2','ab_capPts-rightIcon5-state1','ab_capPts-rightIcon5-state2','poi-traveldirections-arrow','poi-traveldirections-arrow2','orbs-leftIcon1-state1','orbs-leftIcon2-state1','orbs-leftIcon3-state1','orbs-leftIcon4-state1','orbs-rightIcon1-state1','orbs-rightIcon2-state1','orbs-rightIcon3-state1','orbs-rightIcon4-state1','dg_capPts-leftIcon1-state1','dg_capPts-leftIcon2-state1','dg_capPts-leftIcon2-state2','dg_capPts-leftIcon3-state1','dg_capPts-leftIcon3-state2','dg_capPts-leftIcon4-state1','dg_capPts-rightIcon1-state1','dg_capPts-rightIcon2-state1','dg_capPts-rightIcon2-state2','dg_capPts-rightIcon3-state1','dg_capPts-rightIcon3-state2','dg_capPts-rightIcon4-state1','dg_capPts-leftIcon4-state2','dg_capPts-rightIcon4-state2','eots_capPts-leftIcon1-state1','eots_capPts-leftIcon2-state1','eots_capPts-leftIcon2-state2','eots_capPts-leftIcon3-state1','eots_capPts-leftIcon3-state2','eots_capPts-leftIcon4-state1','eots_capPts-leftIcon4-state2','eots_capPts-rightIcon1-state1','eots_capPts-rightIcon2-state1','eots_capPts-rightIcon2-state2','eots_capPts-rightIcon3-state1','eots_capPts-rightIcon3-state2','eots_capPts-rightIcon4-state1','eots_capPts-rightIcon4-state2','eots_capPts-leftIcon5-state1','eots_capPts-leftIcon5-state2','eots_capPts-rightIcon5-state1','eots_capPts-rightIcon5-state2','bfg_capPts-leftIcon1-state1','bfg_capPts-leftIcon1-state2','bfg_capPts-leftIcon2-state1','bfg_capPts-leftIcon2-state2','bfg_capPts-leftIcon3-state1','bfg_capPts-leftIcon3-state2','bfg_capPts-rightIcon1-state1','bfg_capPts-rightIcon1-state2','bfg_capPts-rightIcon2-state1','bfg_capPts-rightIcon2-state2','bfg_capPts-rightIcon3-state1','bfg_capPts-rightIcon3-state2','sm_carts-leftIcon1-state1','sm_carts-leftIcon2-state1','sm_carts-leftIcon3-state1','sm_carts-rightIcon1-state1','sm_carts-rightIcon2-state1','sm_carts-rightIcon3-state1','nameplates-icon-bounty-alliance','nameplates-icon-bounty-horde','nameplates-icon-flag-alliance','nameplates-icon-flag-horde','nameplates-icon-orb-blue','nameplates-icon-orb-green','nameplates-icon-orb-orange','nameplates-icon-orb-purple','nameplates-icon-cart-alliance','nameplates-icon-cart-horde','nameplates-icon-flag-neutral','dg_capPts-neutralIcon1-state1','dg_capPts-neutralIcon2-state1','dg_capPts-neutralIcon3-state1','eots_capPts-neutralIcon1-state1','eots_capPts-neutralIcon2-state1','eots_capPts-neutralIcon3-state1','eots_capPts-neutralIcon4-state1','splash-815-botleft','splash-815-right','splash-815-topleft','pvpscoreboard-background-color','pvpscoreboard-background-reward-shadow','pvpscoreboard-background-reward','pvpscoreboard-background','pvpscoreboard-header-glow','heartofazeroth-list-item-uncollected','heartofazeroth-list-item','heartofazeroth-list-selected-major','heartofazeroth-list-selected-minor','heartofazeroth-slot-major-background','heartofazeroth-slot-major-glass','heartofazeroth-slot-major-glow','heartofazeroth-slot-major-glowrings','heartofazeroth-slot-major-ring','heartofazeroth-slot-minor-background','heartofazeroth-slot-minor-glass','heartofazeroth-slot-minor-glow','heartofazeroth-slot-minor-ring','heartofazeroth-orb-glass','heartofazeroth-orb-shadow','heartofazeroth-slot-minor-unlearned-bottomleft','heartofazeroth-slot-minor-unlearned-topright','heartofazeroth-orb-activated','heartofazeroth-list-item-glow','loottoast-itemborder-shadow','heartofazeroth-list-item-highlight','heartofazeroth-orb-ring','mountequipment-background','mountequipment-slot-background','mountequipment-slot-corners','mountequipment-slot-iconborder','mountequipment-insetshadow','UI-Frame-Marine-Corner','UI-Frame-Marine-CardParchmentWider','UI-Frame-Marine-Portrait','UI-Frame-Marine-PortraitDisable','UI-Frame-Marine-CornerBottomLeft','UI-Frame-Marine-Ribbon','UI-Frame-Marine-PortraitWiderDisable','UI-Frame-Marine-PortraitWider','UI-Frame-Marine-CornerBottomRight','_UI-Frame-Marine-TileBottom','UI-Frame-Marine-TitleLeft','UI-Frame-Marine-CardParchment','UI-Frame-Marine-TitleRight','_UI-Frame-Marine-TitleMiddle','_UI-Frame-Marine-TileTop','UI-Frame-Marine-CornerTopRight','UI-Frame-Marine-ExitButtonBorder','UI-Frame-Marine-BackgroundTile','!UI-Frame-Marine-TileLeft','!UI-Frame-Marine-TileRight','mountequipment-slot-corners-open','UI-Frame-Marine-DisableSubtitle','UI-Frame-Marine-Subtitle','heartofazeroth-animation-ring-constellation','heartofazeroth-animation-stars','common-iconmask','friendslist-favorite','heartofazeroth-animation-ring','heartofazeroth-animation-rune4','store-card-splash1-nobanner','brewfest-chowdown_1','brewfest-chowdown_2','brewfest-chowdown_3','brewfest-chowdown_4','heartofazeroth-animation-lensflareline','heartofazeroth-animation-glowies','socket-blue-background','socket-blue-closed','socket-blue-open','socket-cogwheel-background','socket-cogwheel-closed','socket-cogwheel-open','socket-hydraulic-background','socket-hydraulic-closed','socket-hydraulic-open','socket-meta-background','socket-meta-closed','socket-meta-open','socket-prismatic-background','socket-prismatic-closed','socket-prismatic-open','socket-punchcard-blue-background','socket-punchcard-blue-closed','socket-punchcard-blue-open','socket-punchcard-red-background','socket-punchcard-red-closed','socket-punchcard-red-open','socket-punchcard-yellow-background','socket-punchcard-yellow-closed','socket-punchcard-yellow-open','socket-red-background','socket-red-closed','socket-red-open','socket-yellow-background','socket-yellow-closed','socket-yellow-open','heartofazeroth-slot-yellowglow','worldstate-capturebar-frame-lfd','worldstate-capturebar-leftfill-factions','worldstate-capturebar-leftfill-lfd','worldstate-capturebar-rightfill-factions','worldstate-capturebar-rightfill-lfd','worldstate-capturebar-spark-factions','worldstate-capturebar-spark-lfd','worldstate-capturebar-leftfill-boss','worldstate-capturebar-rightfill-boss','worldstate-capturebar-spark-boss','worldstate-capturebar-frame-boss','worldstate-capturebar-leftglow-boss','worldstate-capturebar-leftglow-factions','worldstate-capturebar-leftglow-lfd','worldstate-capturebar-rightglow-factions','worldstate-capturebar-rightglow-lfd','worldstate-capturebar-neutralfill-boss','worldstate-capturebar-neutralfill-factions','worldstate-capturebar-neutralfill-lfd','BfAMission-Icon-DeepSea','common-roundhighlight','heartofazeroth-node-glow','heartofazeroth-node-off','heartofazeroth-node-on','heartofazeroth-node-shadow','heartofazeroth-list-item-selected','heartofazeroth-animation-rune1','heartofazeroth-animation-rune2','heartofazeroth-animation-rune3','UI-Frame-GenericMetal-Corner','UI-Frame-GenericMetal-ExitButtonBorder','_UI-Frame-GenericMetal-TileBottom','_UI-Frame-GenericMetal-TileTop','!UI-Frame-GenericMetal-TileLeft','!UI-Frame-GenericMetal-TileRight','heartofazeroth-slot-minor-unactivated','heartofazeroth-slot-minor-unactivated-rune','tooltip-heartofazerothessence-major','tooltip-heartofazerothessence-minor','shop-card-full-gametimebundle4','ColumnIcon-FlagCapture0','ColumnIcon-FlagCapture1','ColumnIcon-FlagCapture2','ColumnIcon-FlagReturn0','ColumnIcon-FlagReturn1','ColumnIcon-GraveyardCapture0','ColumnIcon-GraveyardCapture1','ColumnIcon-GraveyardDefend0','ColumnIcon-GraveyardDefend1','ColumnIcon-MineCapture0','ColumnIcon-MineCapture1','ColumnIcon-TowerCapture0','ColumnIcon-TowerCapture1','ColumnIcon-TowerDefend0','ColumnIcon-TowerDefend1','azsharawards-state1-fill','azsharawards-state1-zone1-cap','azsharawards-state1-zone1','azsharawards-state1-zone2-cap','azsharawards-state1-zone2','azsharawards-state1-zone3-cap','azsharawards-state1-zone3','azsharawards-state1-zone4-cap','azsharawards-state1-zone4','azsharawards-state2-fill','azsharawards-state2-zone1-cap','azsharawards-state2-zone1','azsharawards-state2-zone2-cap','azsharawards-state2-zone2','azsharawards-state2-zone3-cap','azsharawards-state2-zone3','azsharawards-state2-zone4-cap','azsharawards-state2-zone4','azsharawards-fullglow','azsharawards-state1-fillingglow','azsharawards-state2-fillingglow','azsharawards-fallingglow','LoadingScreen-LeftBookend','LoadingScreen-Gradient','LoadingScreen-BottomFill','LoadingScreen-BottomInner','LoadingScreen-BottomLeftInner','LoadingScreen-BottomOuter','LoadingScreen-leftBackground','LoadingScreen-RightBackground','LoadingScreen-SideFill','LoadingScreen-LeftInner','heartofazeroth-tooltip-dash-major','heartofazeroth-tooltip-dash-minor','_GarrMissionLocation-Mechagon-Mid','_GarrMissionLocation-Nazjatar-Mid','splash-820-botleft','splash-820-right','splash-820-topleft','splash-8202-botleft','splash-8202-topleft','splash-8202-right','mechagon-projects','azsharawards-fallingglow-bg','azsharawards-lines','azsharawards-starglow','heartofazeroth-tooltip-dash-gray','minimaptrident','questdaily-mainmap','questrepeatableturnin-mainmap','UI-Frame-Mechagon-Corner','UI-Frame-Mechagon-PortraitWiderDisable','UI-Frame-Mechagon-CardParchment','UI-Frame-Mechagon-ExitButtonBorder','UI-Frame-Mechagon-TitleRight','_UI-Frame-Mechagon-TitleMiddle','UI-Frame-Mechagon-TitleLeft','UI-Frame-Mechagon-PortraitWider','_UI-Frame-Mechagon-TileBottom','_UI-Frame-Mechagon-TileTop','UI-Frame-Mechagon-PortraitDisable','UI-Frame-Mechagon-Portrait','UI-Frame-Mechagon-CardParchmentWider','UI-Frame-Mechagon-BackgroundTile','!UI-Frame-Mechagon-TileLeft','!UI-Frame-Mechagon-TileRight','UI-Frame-Mechagon-DisableSubtitle','UI-Frame-Mechagon-Subtitle','UI-Frame-Mechagon-Ribbon','Healing_Backing','Healing_Red','Frame_Timer','powerswirlanimation-bluering','powerswirlanimation-spinningglowys','powerswirlanimation-starburst','powerswirlanimation-whirls','powerswirlanimation-whitestarburst','powerswirlanimation-yellowring','heartofazeroth-animation-sunburst','heartofazeroth-animation-rune10','heartofazeroth-animation-rune11','heartofazeroth-animation-rune8','heartofazeroth-animation-rune5','heartofazeroth-animation-rune9','heartofazeroth-animation-rune6','heartofazeroth-animation-rune7','heartofazeroth-animation-rune13','heartofazeroth-animation-rune12','heartofazeroth-animation-rune14','heartofazeroth-animation-rune15','heartofazeroth-tooltip-dash-white','heartofazeroth-tooltip-dash-yellow','heartofazeroth-animation-rune16','shop-card-full-15thAnniversary','Upgrade-Bottom-Tile','Upgrade-Top-Tile','Upgrade-Bottom-Right-Corner','Upgrade-Frame-Metal','Upgrade-Right-Tile','Upgrade-Top-Right-Corner','Upgrade-Highlight','islands-queue-card-crestfall-dragon','islands-queue-card-crestfall-orc','islands-queue-card-crestfall','islands-queue-card-snowblossom-mantid','islands-queue-card-snowblossom','islands-queue-card-crestfall-pirates','islands-queue-card-snowblossom-mogu','islands-queue-card-snowblossom-vermin','heartofazeroth-slot-major-shadow','heartofazeroth-animation-titans','heartofazeroth-list-background','GarrMissionLocation-Mechagon-List','GarrMissionLocation-Nazjatar-List','nazjatar-nagaevent','brewfest-shield_1','brewfest-shield_2','brewfest-shield_3','brewfest-shield_4','azsharawards-red-fill','auctionhouse-itemicon-border-account','auctionhouse-itemicon-border-artifact','auctionhouse-itemicon-border-blue','auctionhouse-itemicon-border-gray','auctionhouse-itemicon-border-green','auctionhouse-itemicon-border-orange','auctionhouse-itemicon-border-purple','auctionhouse-itemicon-border-white','auctionhouse-itemicon-cover','auctionhouse-icon-checkmark','auctionhouse-itemheaderframe','auctionhouse-ui-inputfield-left','auctionhouse-ui-inputfield-middle','auctionhouse-ui-inputfield-right','auctionhouse-ui-dropdown-arrow-disabled','auctionhouse-ui-dropdown-arrow-down','auctionhouse-ui-dropdown-arrow-up','auctionhouse-ui-dropdown-left','auctionhouse-ui-dropdown-middle','auctionhouse-ui-dropdown-right','auctionhouse-icon-socket','auctionhouse-icon-favorite','auctionhouse-nav-button-highlight','auctionhouse-nav-button-select','auctionhouse-nav-button','auctionhouse-itemicon-small-border','auctionhouse-rowstripe-1','auctionhouse-rowstripe-2','auctionhouse-icon-coin-copper','auctionhouse-icon-coin-gold','auctionhouse-icon-coin-silver','auctionhouse-nav-button-secondary-highlight','auctionhouse-nav-button-secondary-select','auctionhouse-nav-button-secondary','auctionhouse-nav-button-tertiary-filterline','auctionhouse-ui-loadingspinner','auctionhouse-itemicon-empty','auctionhouse-ui-row-highlight','auctionhouse-ui-row-select','auctionhouse-background-auctions','auctionhouse-background-buy-commodities-market','auctionhouse-background-buy-commodities','auctionhouse-background-buy-noncommodities-header','auctionhouse-background-buy-noncommodities-market','auctionhouse-background-categories','auctionhouse-background-index','auctionhouse-background-sell-left','auctionhouse-background-sell-right','auctionhouse-icon-favorite-off','helptip-arrow','helptip-arrow-mask','ui-frame-diamondmetal-cornerbottomleft-2x','ui-frame-diamondmetal-cornerbottomright-2x','ui-frame-diamondmetal-cornertopleft-2x','ui-frame-diamondmetal-cornertopright-2x','_ui-frame-diamondmetal-edgebottom-2x','_ui-frame-diamondmetal-edgetop-2x','!ui-frame-diamondmetal-edgeleft-2x','!ui-frame-diamondmetal-edgeright-2x','ui-frame-diamondmetal-header-cornerleft-2x','ui-frame-diamondmetal-header-cornerright-2x','_ui-frame-diamondmetal-header-tile-2x','CharacterSelection_Alliance_Icon','CharacterSelection_Horde_Icon','QuestSharing-QuestPane-ModifiersBG','QuestSharing-QuestLog-Replay','QuestSharing-QuestPane-ModifiersReplayIconOff','QuestSharing-QuestLog-Details-ModifiersBG','QuestSharing-QuestLog-Loot','QuestSharing-QuestLog-Details-ModifiersReplayIconOff','QuestSharing-Dialog-Portrait','_QuestSharing-Dialog-Line','QuestSharing-QuestPane-ModifiersLootIconOff','QuestSharing-ReplayIconOn','QuestSharing-QuestLog-Details-ModifiersLootIconOff','QuestSharing-QuestLog-Padlock','questlog-waypoint-finaldestination-questionmark','worldquest-icon-nzoth','QuestSharing-ReplayIcon','QuestSharing-QuestLog-Background','QuestSharing-QuestLog-ButtonHighlight','QuestSharing-QuestLog-Button','QuestSharing-QuestLog-ButtonPressed','shop-card-full-blizzconvirtualticket','store-card-horizontalfull','store-card-quarter','bfa-threats-mapborder','GM_BehaviorMessage_CornerBottomRight_Glow','GM_BehaviorMessage_CornerTopRight_Glow','GM_BehaviorMessage_CornerTopRight_Frame','GM_BehaviorMessage_CornerTopRight_InnerShadow','GM_BehaviorMessage_CornerTopLeft_InnerShadow','GM_BehaviorMessage_Circle_Frame','GM_BehaviorMessage_CornerTopLeft_Frame','GM_BehaviorMessage_CornerBottomLeft_Frame','GM_BehaviorMessage_CornerBottomLeft_InnerShadow','GM_BehaviorMessage_CornerBottomRight_Frame','GM_BehaviorMessage_LeftRoundFrame_OuterShadow','GM_BehaviorMessage_CornerBottomRight_InnerShadow','GM_BehaviorMessage_LeftRoundFrame_Glow','GM_BehaviorMessage_CornerBottomRight_OuterShadow','GM_BehaviorMessage_CornerTopRight_OuterShadow','_GM_BehaviorMessage_Background','_GM_BehaviorMessage_Bottom_Frame','_GM_BehaviorMessage_Bottom_Glow','_GM_BehaviorMessage_Bottom_InnerShadow','_GM_BehaviorMessage_Bottom_OuterShadow','_GM_BehaviorMessage_Top_Frame','_GM_BehaviorMessage_Top_Glow','_GM_BehaviorMessage_Top_InnerShadow','_GM_BehaviorMessage_Top_OuterShadow','!GM_BehaviorMessage_Left_Frame','!GM_BehaviorMessage_Left_InnerShadow','!GM_BehaviorMessage_Right_Frame','!GM_BehaviorMessage_Right_Glow','!GM_BehaviorMessage_Right_InnerShadow','!GM_BehaviorMessage_Right_OuterShadow','communitiesfinder_card_highlight','shop-button-large-down-left','shop-button-large-down-middle','shop-button-large-down-right','shop-button-large-up-left','shop-button-large-up-middle','shop-button-large-up-right','shop-button-large-disabled-left','shop-button-large-disabled-middle','shop-button-large-disabled-right','auctionhouse-ui-filter-redx','RecruitAFriend_Toast_Fancy','RecruitAFriend_ClaimPane_SepiaRing','RecruitAFriend_RewardPane_CornerBracket_LeftTop','RecruitAFriend_RewardPane_CornerBracket_LeftBottom','RecruitAFriend_RewardPane_IconBackground','RecruitAFriend_RewardPane_Checkmark','RecruitAFriend_ClaimPane_CornerBracket_RightBottom','RecruitAFriend_RecruitedFriends_OpenChest','RecruitAFriend_RewardPane_CornerBracket_RightBottom','RecruitAFriend_ClaimPane_CornerBracket_LeftTop','RecruitAFriend_RewardPane_IconBorder','RecruitAFriend_RecruitedFriends_ActiveChest','RecruitAFriend_ClaimPane_Parchment','RecruitAFriend_RewardPane_IconMask','RecruitAFriend_RewardPane_CornerBracket_RightTop','RecruitAFriend_RecruitedFriends_LockedChest','RecruitAFriend_ClaimPane_CornerBracket_LeftBottom','RecruitAFriend_Toast_Standard','RecruitAFriend_RewardPane_Parchment','RecruitAFriend_RecruitedFriends_ClaimedChest','RecruitAFriend_ClaimPane_CornerBracket_RightTop','QuestSharing-Padlock','QuestSharing-QuestLog-ButtonPressedStop','QuestSharing-QuestLog-ButtonStop','QuestSharing-DialogIcon','QuestSharing-Stop-DialogIcon','RecruitAFriend_ClaimPane_GoldRing','RecruitAFriend_Frame_StoneDivider','RecruitAFriend_Splash_CornerBracket_RightBottom','RecruitAFriend_Splash_PictureFrame','RecruitAFriend_Splash_CornerBracket_LeftBottom','RecruitAFriend_Splash_CornerBracket_RightTop','RecruitAFriend_Splash_Picture','RecruitAFriend_Splash_CornerBracket_LeftTop','RecruitAFriend_Splash_Parchment','poi-nzothpylon','QuestSharing-DialogIconShadow','QuestSharing-QuestLog-Active','shop-icon-purchasedcheckmark','QuestSharing-QuestLog-BottomDetail','splash-825-botleft','splash-825-right','splash-825-topleft','shop-825-1','shop-825-10','shop-825-2','shop-825-3','shop-825-4','shop-825-5','shop-825-6','shop-825-7','shop-825-8','shop-825-9','QuestSharing-QuestDetails-Padlock','UI_Editor_Eye_Icon','UI-Panel-HideButton-Disabled','UI-Panel-HideButton-Down','UI-Panel-HideButton-Up','UI-Panel-MinimizeButton-Highlight','bfa-threats-cornereye','heartofazeroth-infinite-numberbox','heartofazeroth-infinite-unlearned','heartofazeroth-infinite','raceicon-mechagnome-female','raceicon-mechagnome-male','raceicon-vulpera-female','raceicon-vulpera-male','worldstate-capturebar-frame-target','worldstate-capturebar-leftfill-target','worldstate-capturebar-neutralfill-target','worldstate-capturebar-rightfill-target','worldstate-capturebar-spark-target','worldstate-capturebar-neutralglow-target','bfa-threats-cornereye-background','RecruitAFriend_RecruitedFriends_CursorOver','auctionhouse-selltab-left','auctionhouse-selltab-middle','auctionhouse-selltab-right','RecruitAFriend_RecruitedFriends_CursorOverChecked','talenttree-mother-background','auctionhouse-ui-sortarrow','heartofazeroth-slot-minor-unlearned-3','auctionhouse-background-summarylist','Cleanse-reforger-background','Cleanse-reforger-glow','Cleanse-reforger-portrait','Nzoth-charactersheet-icon-glow','Nzoth-charactersheet-icon','Nzoth-charactersheet-item-glow','Nzoth-inventory-icon','nzoth-tooltip-topper','BlizzCon2019Splash-BG','BlizzCon2019Splash-button-playexpansion','poi-nzothvision','orderhalltalents-prerequisite-arrow','orderhalltalents-spellborder-green-large','orderhalltalents-spellborder-large','orderhalltalents-spellborder-yellow-large','orderhalltalents-rankborder-green','orderhalltalents-rankborder-yellow','orderhalltalents-rankborder','NzothScenario-TitleBG','NzothScenario-Tracker-frame','NzothScenario-TrackerHeader','AlliedRace-Crest-Mechagnome','AlliedRace-Crest-Vulpera','dg_capPts-leftIcon1-state2','dg_capPts-leftIcon5-state1','dg_capPts-leftIcon5-state2','dg_capPts-rightIcon1-state2','dg_capPts-rightIcon5-state1','dg_capPts-rightIcon5-state2','AlliedRace-UnlockingFrame-ModelBackground-Mechagnome','AlliedRace-UnlockingFrame-ModelBackground-Vulpera','transmog-background-race-vulpera','transmog-background-race-mechagnome','UI-RefreshButton','splash-830-botleft','splash-830-topleft','splash-830-right','splash-8302-botleft','splash-8302-right','splash-8302-topleft','transmog-background-race-scourge','charcreatetest-logo-alliance','charcreatetest-logo-horde','charcreatetest-tutorialbox-class','charcreatetest-tutorialbox-race','loottoast-nzoth','common-search-clearbutton','common-search-magnifyingglass','common-search-border-left','common-search-border-middle','common-search-border-right','shop-card-full-blizzconvirtualticket2020','CGuy_AOI','CGuy_AOIAsset','CGuy_Arrow','CGuy_BottomArrow','CGuy_BottomArrowHighlight','CGuy_ConfigReplace','CGuy_Control','CGuy_ControlDefaults','CGuy_Export','CGuy_GafferPushed','CGuy_GafferUp','CGuy_Import','CGuy_New','CGuy_NewConfig','CGuy_Path','CGuy_Pause','CGuy_Play','CGuy_Point','CGuy_Record','CGuy_Rename','CGuy_Replace','CGuy_Stop','CGuy_TopArrow','CGuy_TopArrowHighlight','CGuy_AOIFollowsCamera','CGuy_FixedTimeStep','CGuy_ReorientToUnit','Navigation-Tracked-Arrow','Navigation-Tracked-Icon','ui-frame-jailerstower-portrait-qualityepic','ui-frame-jailerstower-portrait-qualityrare','ui-frame-jailerstower-portrait-qualityuncommon','ui-frame-jailerstower-portrait','ui-frame-jailerstower-cardparchment-style2','ui-frame-jailerstower-cardparchment-style3','ui-frame-jailerstower-cardparchment-style1','ui-frame-jailerstower-rankborder','jailerstower-animapowerbutton-normal','jailerstower-animapowerbutton-pressed','jailerstower-animapowerlist-defense','jailerstower-animapowerlist-dropdown-closed','jailerstower-animapowerlist-dropdown-closedbg','jailerstower-animapowerlist-dropdown-open','jailerstower-animapowerlist-dropdown-openbg','jailerstower-animapowerlist-offense','jailerstower-animapowerlist-rank','jailerstower-animapowerlist-utility','jailerstower-scenario-death','jailerstower-scenario-frame','jailerstower-animapowerbutton-normalpressed','jailerstower-animapowerlist-bottombg','jailerstower-animapowerlist-topbg','questlog_divider_normalquests','campaign_ardenweald','campaign_bastion','campaign_fey','campaign_kyrian','campaign_maldraxxus','campaign_maw','campaign_necrolord','campaign_revendreth','campaign_venthyr','jailerstower-scenario-fantasma','campaignheader_selectedglow','campaign_headericon_closed','campaign_headericon_closedpressed','campaign_headericon_open','campaign_headericon_openpressed','jailerstower-animapowerbutton-highlight','jailerstower-animapowerbutton-pressed-highlight','UI-QuestPoiCampaign-InnerGlow','UI-QuestPoiCampaign-OuterGlow','UI-QuestPoiCampaign-QuestNumber-Pressed-SuperTracked','UI-QuestPoiCampaign-QuestNumber-Pressed','UI-QuestPoiCampaign-QuestNumber-SuperTracked','UI-QuestPoiCampaign-QuestNumber','UI-QuestPoiCampaign-QuestBang','UI-QuestPoiCampaign-QuestBangTurnIn','CGuy_AOIFollowsCameraActive','CGuy_FixedTimeStepActive','CGuy_PlayActive','CGuy_RecordActive','CGuy_ReorientToUnitActive','CGuy_StopActive','CGuy_CalcOrientation','ui-frame-jailerstower-hidebutton','ui-frame-jailerstower-pendingbutton','jailerstower-animapowerlist-medium','jailerstower-animapowerlist-small','!jailerstower-animapowerlist-tile','adventure-mission-gold-dragon','adventure-mission-silver-dragon','adventure-mission-silver-ring','adventure-missionend-burst','adventure-missionend-line','adventurers-followers-epic-gem','adventurers-followers-frame','adventurers-followers-legendary-gem','adventurers-followers-rare-gem','adventurers-followers-uncommon-base','adventurers-followers-uncommon-gem','adventurers-followers-xp','adventures-checkmark','adventures-mission-enemy-socket-01','adventures-mission-enemy-socket-02','adventures-mission-enemy-socket-03','adventures-mission-enemy-socket-04','adventures-mission-follower-socket-01','adventures-mission-follower-socket-02','adventures-mission-follower-socket-03','adventures-mission-follower-socket-04','adventures-mission-highlight-left','adventures-mission-highlight-right','adventures-mission-maw-left','adventures-mission-maw-right','adventures-parchment-tile-left','adventures-parchment-tile-right','adventures-ring-gold-dragon','adventures-ring-gold','adventures-scroll-arrow-down','adventures-scroll-arrow-up','adventures-scroll-knob','adventures-scrollbar-bottom','adventures-scrollbar-top','adventuresframe-corner-small-topleft','_adventures-mission-highlight-mid','_adventures-mission-maw-bg','_adventures-mission-maw-mid','_adventures-parchment-tile-mid','!adventuresframe-left','!adventuresframe-right','!adventuresframetile-left','!adventuresframetile-right','adventures-missions-bg-01','adventures-missions-bg-02','_adventuresframe-small-top','_adventuresframetile-bottom','_adventuresframetile-median','_adventuresframetile-top','ui-frame-jailerstower-hidebuttonhighlight','ui-frame-jailerstower-pendingbuttonhighlight','quest-campaign-available','quest-campaign-turnin','128-redbutton-left-disabled','128-redbutton-left-pressed','128-redbutton-left','128-redbutton-right-disabled','128-redbutton-right-pressed','128-redbutton-right','_128-redbutton-center-disabled','_128-redbutton-center-pressed','_128-redbutton-center','jailerstower-scenario-titlebg','jailerstower-scenario-trackerheader','ui-frame-jailerstower-portrait-border','ui-frame-jailerstower-portrait-qualityepic-border','ui-frame-jailerstower-portrait-qualityrare-border','ui-frame-jailerstower-portrait-qualityuncommon-border','common-icon-backarrow','common-icon-checkmark','common-icon-redx','common-icon-rotateleft','common-icon-rotateright','common-icon-undo','common-icon-zoomin','common-icon-zoomout','128-redbutton-refresh-pressed','128-redbutton-refresh','128-redbutton-refresh-highlight','128-redbutton-refresh-disabled','common-input-left','common-input-middle','common-radiobutton-circle','common-radiobutton-dot','common-slider-thumb','common-slider-track','charactercreate-icon-alliance','charactercreate-icon-customize-accessories-selected','charactercreate-icon-customize-accessories','charactercreate-icon-customize-body-selected','charactercreate-icon-customize-body','charactercreate-icon-customize-hair-selected','charactercreate-icon-customize-hair','charactercreate-icon-customize-head-selected','charactercreate-icon-customize-head','charactercreate-icon-customize-torso-selected','charactercreate-icon-customize-torso','charactercreate-icon-dice','charactercreate-icon-horde','charactercreate-ring-alliance','charactercreate-ring-customizebackground','charactercreate-ring-horde','charactercreate-ring-metaldark','charactercreate-ring-metallight','charactercreate-ring-select','common-icon-forwardarrow','chromietime-button-background','chromietime-button-frame','chromietime-button-highlight','chromietime-parchment','chromietime-portrait-chrome','chromietime-portrait-frame','charactercreate-vignette-bottom','charactercreate-vignette-sides','charactercreate-vignette-top','raceicon128-bloodelf-female','raceicon128-bloodelf-male','raceicon128-darkirondwarf-female','raceicon128-darkirondwarf-male','raceicon128-draenei-female','raceicon128-draenei-male','raceicon128-dwarf-female','raceicon128-dwarf-male','raceicon128-gnome-female','raceicon128-gnome-male','raceicon128-goblin-female','raceicon128-goblin-male','raceicon128-highmountain-female','raceicon128-highmountain-male','raceicon128-human-female','raceicon128-human-male','raceicon128-kultiran-female','raceicon128-kultiran-male','raceicon128-lightforged-female','raceicon128-lightforged-male','raceicon128-magharorc-female','raceicon128-magharorc-male','raceicon128-mechagnome-female','raceicon128-mechagnome-male','raceicon128-nightborne-female','raceicon128-nightborne-male','raceicon128-nightelf-female','raceicon128-nightelf-male','raceicon128-orc-female','raceicon128-orc-male','raceicon128-pandaren-female','raceicon128-pandaren-male','raceicon128-tauren-female','raceicon128-tauren-male','raceicon128-troll-female','raceicon128-troll-male','raceicon128-undead-female','raceicon128-undead-male','raceicon128-voidelf-female','raceicon128-voidelf-male','raceicon128-vulpera-female','raceicon128-vulpera-male','raceicon128-worgen-female','raceicon128-worgen-male','raceicon128-zandalari-female','raceicon128-zandalari-male','classicon-deathknight','classicon-demonhunter','classicon-druid','classicon-hunter','classicon-mage','classicon-monk','classicon-paladin','classicon-priest','classicon-rogue','classicon-shaman','classicon-warlock','classicon-warrior','chromietime-button-selection','charactercreate-gendericon-male','charactercreate-gendericon-female','Campaign-QuestLog-LoreBook-Highlight','Campaign-QuestLog-LoreBook-Back','Campaign-QuestLog-LoreBackground','Campaign-QuestLog-LoreDivider','Campaign-QuestLog-LoreBook-Back-Glow','Campaign-QuestLog-LoreBook','Campaign-QuestLog-LoreBook-Glow','Campaign-QuestLog-LoreBottomShadow','charactercreate-ring-alliance-disabled','charactercreate-ring-metaldark-disabled','charactercreate-ring-horde-disabled','Waypoint-MapPin-Tracked','Waypoint-MapPin-Untracked','charactercreate-tooltip-background','charactercreate-tooltip-corner','charactercreate-tooltip-side','charactercreate-tooltip-top','Waypoint-MapPin-Highlight','Soulbind_Shot_Fey_Dreamweaver','Soulbind_Shot_Fey_Niya','Soulbind_Shot_Venthyr_Draven','Soulbind_Shot_Necrolords_Emeni','Soulbind_Shot_Necrolords_Marileth','UI-Frame-Oribos-CornerBottomLeft','UI-Frame-Oribos-CornerBottomRight','UI-Frame-Oribos-CornerTopLeft','UI-Frame-Oribos-CornerTopRight','UI-Frame-Oribos-ExitButtonBorder','_UI-Frame-Oribos-TileBottom','_UI-Frame-Oribos-TileTop','UI-Frame-Oribos-BackgroundTile','!UI-Frame-Oribos-TileLeft','!UI-Frame-Oribos-TileRight','UI-Frame-Oribos-TitleLeft','UI-Frame-Oribos-TitleRight','_UI-Frame-Oribos-TitleMiddle','Waypoint-MapPin-ChatIcon','UI-QuestIcon-TurnIn-Daily','UI-QuestIcon-TurnIn-Legendary','UI-QuestIcon-TurnIn-Normal','charactercreate-ring-racialtrait','campaign_shadowlands','_adventuresframe-inner-top','!adventuresframe-inner-left','Waypoint-MapPin-ButtonToggle','soulbinds_portrait_background','soulbinds_portrait_border','soulbinds_portrait_selected','Soulbinds_Background_Venthyr','soulbinds_portrait_active','waypoint-mappin-minimap-tracked','waypoint-mappin-minimap-untracked','soulbinds_portrait_highlight','common-icon-backarrow-disable','common-icon-forwardarrow-disable','Soulbind_Shot_Fey_Korayn','!Soulbinds_ShadowVertical','_Soulbinds_ShadowHorizontal','soulbinds_tree_conduit_background','soulbinds_tree_conduit_icon_attack','soulbinds_tree_conduit_icon_protect','soulbinds_tree_conduit_icon_utility','soulbinds_tree_conduit_ring','soulbinds_tree_ring','CircleMask','soulbinds_tree_conduit_background_disabled','soulbinds_tree_conduit_ring_disabled','soulbinds_tree_conduit_ring_glow','soulbinds_tree_ring_disabled','soulbinds_tree_ring_glow','ardenweald-zone-ability-2','ardenweald-zone-ability','bastion-zone-ability-2','bastion-zone-ability','maldraxxus-zone-ability-2','maldraxxus-zone-ability','revendreth-zone-ability-2','revendreth-zone-ability','garrzoneability-armory','garrzoneability-barracksalliance','garrzoneability-barrackshorde','garrzoneability-inn','garrzoneability-lumbermill','garrzoneability-magetower','garrzoneability-stables','garrzoneability-tradingpost','garrzoneability-trainingpit','garrzoneability-workshop','soulbinds_tree_activatearrow','Soulbind_Shot_Necrolords_Heirmir','common-button-square-gray-down','common-button-square-gray-up','UI-QuestTrackerButton-Collapse-All-Pressed','UI-QuestTrackerButton-Collapse-All','UI-QuestTrackerButton-Collapse-Section-Pressed','UI-QuestTrackerButton-Collapse-Section','UI-QuestTrackerButton-Expand-All-Pressed','UI-QuestTrackerButton-Expand-All','UI-QuestTrackerButton-Expand-Section-Pressed','UI-QuestTrackerButton-Expand-Section','UI-QuestTrackerButton-Highlight','soulbinds_tree_connector_vertical_mask','soulbinds_tree_connector_diagonal_close_mask','soulbinds_tree_connector_diagonal_far_mask','soulbinds_tree_connector_diagonal_close','soulbinds_tree_connector_diagonal_far','soulbinds_tree_connector_vertical','newplayertutorial-icon-key','newplayertutorial-icon-mouse-rightbutton','newplayertutorial-icon-mouse-turn','shadowlands-landingbutton-NightFae-down','shadowlands-landingbutton-NightFae-glow','shadowlands-landingbutton-NightFae-highlight','shadowlands-landingbutton-NightFae-up','shadowlands-landingbutton-kyrian-down','shadowlands-landingbutton-kyrian-glow','shadowlands-landingbutton-kyrian-highlight','shadowlands-landingbutton-kyrian-up','shadowlands-landingbutton-necrolord-down','shadowlands-landingbutton-necrolord-glow','shadowlands-landingbutton-necrolord-highlight','shadowlands-landingbutton-necrolord-up','shadowlands-landingbutton-venthyr-down','shadowlands-landingbutton-venthyr-glow','shadowlands-landingbutton-venthyr-up','covenantchoice-offering-ability-frame-kyrian','covenantchoice-offering-ability-ring-kyrian','covenantchoice-offering-parchment-kyrian','covenantchoice-offering-preview-frame-kyrian','covenantchoice-offering-sigil-kyrian','covenantchoice-offering-ability-frame-venthyr','covenantchoice-offering-ability-ring-venthyr','covenantchoice-offering-parchment-venthyr','covenantchoice-offering-preview-frame-venthyr','covenantchoice-offering-sigil-venthyr','covenantchoice-panel-sigil-kyrian','covenantchoice-panel-sigil-necrolords','covenantchoice-panel-sigil-nightfae','covenantchoice-panel-sigil-venthyr','ui-frame-oribos-cardshadowlarge','ui-frame-oribos-cardshadowsmall','ui-frame-oribos-extrabutton','covenantsanctum-background-kyrian','covenantsanctum-divider-kyrian','covenantsanctum-icon-border-kyrian','covenantsanctum-upgrade-border-kyrian','covenantsanctum-icon-hover','covenantsanctum-icon-rankborder','covenantsanctum-icon-select','covenantsanctum-reservoir-hover','covenantsanctum-reservoir-select','covenantsanctum-upgrade-background','covenantsanctum-upgrade-border-available','covenantsanctum-upgrade-hover','covenantsanctum-upgrade-icon-available','UI-Frame-Kyrian-ExitButtonBorder','UI-Frame-Kyrian-TitleLeft','UI-Frame-Kyrian-TitleRight','_UI-Frame-Kyrian-TitleMiddle','!UI-Frame-Kyrian-TileLeft','!UI-Frame-Kyrian-TileRight','ui-frame-newplayertutorial-cornertopleft','ui-frame-newplayertutorial-cornerbottomleft','ui-frame-newplayertutorial-cornerbottomright','ui-frame-newplayertutorial-cornertopright','ui-frame-newplayertutorial-center','charactercreate-startingzone-draenei','charactercreate-startingzone-darkirondwarf','charactercreate-startingzone-demonhunter','charactercreate-startingzone-deathknight','charactercreate-startingzone-deathknight-alliedraces','charactercreate-startingzone-bloodelf','charactercreate-startingzone-dwarf','charactercreate-startingzone-gnome','charactercreate-startingzone-goblin','charactercreate-startingzone-highmountaintauren','charactercreate-startingzone-human','charactercreate-startingzone-kultiran','charactercreate-startingzone-lightforgeddraenei','charactercreate-startingzone-magharorc','charactercreate-startingzone-mechagnome','charactercreate-startingzone-nightborne','charactercreate-startingzone-nightelf','charactercreate-startingzone-orc','charactercreate-startingzone-pandaren','charactercreate-startingzone-tauren','charactercreate-startingzone-troll','charactercreate-startingzone-undead','charactercreate-startingzone-voidelf','charactercreate-startingzone-vulpera','adventure-healthbar','adventures-dps','adventures-enemy-frame','adventures-healer','adventures-tank','adventure_ability_frame','adventurers-followers-frame-base','charactercreate-startingzone-worgen','charactercreate-startingzone-zandalaritroll','charactercreate-startingzone-exilesreach','AlphaMask2','newplayertutorial-keyboard','newplayertutorial-icon-mouse-leftbutton','newplayertutorial-icon-mouse-middlebutton','!ui-frame-newplayertutorial-edgeleft','!ui-frame-newplayertutorial-edgeright','_ui-frame-newplayertutorial-edgebottom','_ui-frame-newplayertutorial-edgetop','newplayertutorial-greenglow-redbutton-left','newplayertutorial-greenglow-redbutton-middle','newplayertutorial-greenglow-redbutton-right','adventure-healthbar-enemy','adventurers-frame-soulbind-fae','adventurers-frame-soulbind-kyrian','adventurers-frame-soulbind-necrolord','adventurers-frame-soulbind-revendrath','adventures-ffw','adventures-rewatch','adventure_ability_frame_enemy','adventure_ability_frame_filled','adventure_ability_frame_filled_enemy','newplayertutorial-drag-cursor','newplayertutorial-drag-slotblue','newplayertutorial-drag-slotgreen','UI-Frame-Oribos-CardShadowMask','animachannel-bar-background','animachannel-bar-kyrian-gem','animachannel-bar-necrolord-gem','animachannel-bar-nightfae-gem','animachannel-bar-venthyr-gem','animachannel-currencyborder','animachannel-icon-device-kyrian-border','animachannel-icon-device-necrolord-border','animachannel-icon-device-nightfae-border','animachannel-icon-device-venthyr-border','animachannel-icon-device','animachannel-icon-kyrian-normal','animachannel-icon-kyrian-ready','animachannel-icon-kyrian-reinforce','animachannel-icon-kyrian-select','animachannel-icon-necrolord-normal','animachannel-icon-necrolord-ready','animachannel-icon-necrolord-reinforce','animachannel-icon-necrolord-select','animachannel-icon-nightfae-normal','animachannel-icon-nightfae-ready','animachannel-icon-nightfae-reinforce','animachannel-icon-nightfae-select','animachannel-icon-venthyr-normal','animachannel-icon-venthyr-ready','animachannel-icon-venthyr-reinforce','animachannel-icon-venthyr-select','animachannel-reinforce-textshadow','animachannel-menu-corner','_animachannel-menu-edgebottom','_animachannel-menu-edgetop','!animachannel-menu-edgeleft','!animachannel-menu-edgeright','_GarrMissionLocation-Ardenweald-Mid','_GarrMissionLocation-Bastion-Mid','_GarrMissionLocation-Maldraxxus-Mid','_GarrMissionLocation-Revendreth-Mid','Callings-Available','Callings-Turnin','UI-Frame-CharacterCreateDropdown-CornerBottomLeft','UI-Frame-CharacterCreateDropdown-CornerBottomRight','UI-Frame-CharacterCreateDropdown-CornerTopLeft','UI-Frame-CharacterCreateDropdown-CornerTopRight','_UI-Frame-CharacterCreateDropdown-EdgeBottom','_UI-Frame-CharacterCreateDropdown-EdgeTop','!UI-Frame-CharacterCreateDropdown-EdgeLeft','!UI-Frame-CharacterCreateDropdown-EdgeRight','UI-Frame-CharacterCreateDropdown-Center','charactercreate-customize-dropdownbox','charactercreate-customize-palette','charactercreate-customize-dropdown-linemouseover-middle','charactercreate-customize-dropdown-linemouseover-side','adventures-endcombat-fae','adventures-endcombat-fail','adventures-endcombat-kyrian','adventures-endcombat-necrolord','adventures-endcombat-venthyr','_animachannel-channel-line-horizontal','_animachannel-reinforce-line-horizontal','Callings-Glow','charactercreate-customize-dropdownbox-hover','charactercreate-customize-dropdownbox-open','shadowlands-landingpage-callingsdecor-kyrian','shadowlands-landingpage-callingsdecor-necrolord','shadowlands-landingpage-callingsdecor-nightfae','shadowlands-landingpage-callingsdecor-venthyr','shadowlands-landingpage-divider','Bar-End','Cast-Bar-End','Health-Bar-End','Health_End','Metal-Bar','Portrait-Frame-Nameplate','Portrait-Frame','Trinket-Frame','_Bar-mid','_Cast-Bar-mid','_Health-Bar-mid','worldstate-capturebar-arrow-bastionarmor','worldstate-capturebar-frame-separater-bastionarmor','worldstate-capturebar-neutralfill-bastionarmor','worldstate-capturebar-neutralglow-bastionarmor','worldstate-capturebar-spark-bastionarmor','worldstate-capturebar-spark-neutral-bastionarmor','mixingpool-lefticon-amount','mixingpool-lefticon-frame','mixingpool-midicon-amount','mixingpool-midicon-frame','mixingpool-righticon-amount','mixingpool-righticon-frame','mixingpool-shadow-text','covenantsanctum-divider-venthyr','covenantsanctum-upgrade-border-venthyr','covenantsanctum-icon-border-venthyr','covenantsanctum-background-venthyr','covenantsanctum-upgrade-border-nightfae','covenantsanctum-icon-border-nightfae','covenantsanctum-background-nightfae','covenantsanctum-divider-nightfae','Cast-Bar-Fill-End','Portrait-frame-color','_Cast-Bar-Fill-mid','CircleMaskScalable','charactercreate-customize-palette-selected','Armor-Fill-End','Flag-1','Flag-2','Icon-Healer','Icon-Tank','_Armor-Fill-mid','_Health_mid','CommentatorSpellBorder','UI-DailyQuestPoiCampaign-QuestBang','UI-DailyQuestPoiCampaign-QuestBangTurnIn','quest-dailycampaign-available','quest-dailycampaign-turnin','campaignactivedailyquesticon','campaignactivequesticon','campaignavailabledailyquesticon','campaignavailablequesticon','campaignincompletequesticon','Frame-Timer','Healing-BG','Score-Team','_Score-Team-mid','Portrait-Frame-Nameplate-scaledup','Flag-outline','Navigation-Tombstone-Icon','DK-Rune-Ready','ClassOverlay-ComboPoint-Kyrian','ClassOverlay-ComboPoint-Off-Kyrian','ComboPoints-ComboPoint-Kyrian','ComboPoints-PointBg-Kyrian','auctionhouse-icon-clock','DK-Base-Rune-CDFill','Icon-Death','tradeskills-icon-add','shadowlands-landingpage-soulbindsbutton-down','shadowlands-landingpage-soulbindsbutton-draven','shadowlands-landingpage-soulbindsbutton-dreamweaver','shadowlands-landingpage-soulbindsbutton-emeni','shadowlands-landingpage-soulbindsbutton-heirmir','shadowlands-landingpage-soulbindsbutton-highlight','shadowlands-landingpage-soulbindsbutton-kleia','shadowlands-landingpage-soulbindsbutton-korayn','shadowlands-landingpage-soulbindsbutton-marileth','shadowlands-landingpage-soulbindsbutton-mikanikos','shadowlands-landingpage-soulbindsbutton-nadjia','shadowlands-landingpage-soulbindsbutton-niya','shadowlands-landingpage-soulbindsbutton-pelagos','shadowlands-landingpage-soulbindsbutton-theotar','Soulbind_Shot_Venthyr_Nadjia','Soulbind_Shot_Venthyr_Theotar','Soulbind_Shot_Kyrian_Kleia','Soulbind_Shot_Kyrian_Mikanikos','Soulbind_Shot_Kyrian_Pelagos','Icon-WoW','charactercreate-druidform-aquatic','charactercreate-druidform-bear','charactercreate-druidform-cat','charactercreate-druidform-flight','charactercreate-druidform-moonkin','charactercreate-druidform-travel','weeklyrewards-background-mythic','weeklyrewards-background-raid','weeklyrewards-background-pvp','oribos-weeklyrewards-frame-button','oribos-weeklyrewards-orb-unlocked','weeklyrewards-frame-item-epic','weeklyrewards-icon-unlocked','weeklyrewards-background-reward-locked','weeklyrewards-icon-incomplete','weeklyrewards-orb-locked','weeklyrewards-frame-reward-selected','weeklyrewards-shadow-reward-unselected','weeklyrewards-frame-reward-locked','weeklyrewards-glow-redeem-epic','oribos-weeklyrewards-divider','oribos-weeklyrewards-frame-mode','weeklyrewards-frame-reward-unlocked','weeklyrewards-background-reward-unlocked','Soulbinds_Background_Necrolord','jailerstower-animapowerlist-highlight','jailerstower-animapowerlist-powerborder','Metal-Bar-Small','Portrait-Frame-Small','tradeskills-iconborder-glow','newplayerchat-chaticon-guide','newplayerchat-chaticon-newcomer','chromietime-portrait-small-burningcrusade','chromietime-portrait-small-cataclysm','chromietime-portrait-small-legion','chromietime-portrait-small-mistsofpandaria','chromietime-portrait-small-warlordsofdraenor','chromietime-portrait-small-wrathofthelichking','chromietime-portrait-large-burningcrusade','chromietime-portrait-large-cataclysm','chromietime-portrait-large-legion','chromietime-portrait-large-mistsofpandaria','chromietime-portrait-large-warlordsofdraenor','chromietime-portrait-large-wrathofthelichking','NightFae-NineSlice-CornerBottomLeft','NightFae-NineSlice-CornerBottomRight','NightFae-NineSlice-CornerTopLeft','NightFae-NineSlice-CornerTopRight','UI-Frame-NightFae-ExitButtonBorder','UI-Frame-NightFae-TitleLeft','UI-Frame-NightFae-TitleRight','_NightFae-NineSlice-EdgeBottom','_NightFae-NineSlice-EdgeTop','_UI-Frame-NightFae-TitleMiddle','!NightFae-NineSlice-EdgeLeft','!NightFae-NineSlice-EdgeRight','NightFae-NineSlice-Center','UI-Frame-Venthyr-TitleLeft','UI-Frame-Venthyr-TitleRight','Venthyr-NineSlice-CornerBottomLeft','Venthyr-NineSlice-CornerBottomRight','Venthyr-NineSlice-CornerTopLeft','Venthyr-NineSlice-CornerTopRight','_UI-Frame-Venthyr-TitleMiddle','_Venthyr-NineSlice-EdgeBottom','_Venthyr-NineSlice-EdgeTop','!Venthyr-NineSlice-EdgeLeft','!Venthyr-NineSlice-EdgeRight','Venthyr-NineSlice-Center','UI-Frame-Venthyr-ExitButtonBorder','Kyrian-NineSlice-CornerBottomLeft','Kyrian-NineSlice-CornerBottomRight','Kyrian-NineSlice-CornerTopLeft','Kyrian-NineSlice-CornerTopRight','_Kyrian-NineSlice-EdgeBottom','_Kyrian-NineSlice-EdgeTop','Kyrian-NineSlice-Center','necrolord-nineslice-cornerbottomleft','necrolord-nineslice-cornerbottomright','necrolord-nineslice-cornertopleft','necrolord-nineslice-cornertopright','ui-frame-necrolord-exitbuttonborder','ui-frame-necrolord-titleleft','ui-frame-necrolord-titleright','_necrolord-nineslice-edgebottom','_necrolord-nineslice-edgetop','_ui-frame-necrolord-titlemiddle','!Necrolord-NineSlice-EdgeLeft','!Necrolord-NineSlice-EdgeRight','Necrolord-NineSlice-Center','runecarving-background-smoke','runecarving-frame-glow','runecarving-frame-runes','runecarving-frame','runecarving-icon-arrow-open','runecarving-icon-bag-item-glow','runecarving-icon-center-empty','runecarving-icon-center-pressed','runecarving-icon-center-selected','runecarving-icon-power-empty','runecarving-icon-power-pressed','runecarving-icon-power-selected','runecarving-icon-reagent-empty','runecarving-icon-reagent-pressed','runecarving-icon-reagent-selected','runecarving-menu-power-background','runecarving-menu-power-border','runecarving-menu-power-selected','runecarving-menu-reagent-background','maw-tooltip-topper','unitframeicon-chromietime','weeklyrewards-background-currency-unlocked','oribos-weeklyrewards-divider-currency','weeklyrewards-frame-currency-selected','weeklyrewards-frame-currency-unlocked','weeklyrewards-shadow-currency-unselected','newplayerchat-signup-background','covenantsanctum-background-necrolord','covenantsanctum-divider-necrolord','covenantsanctum-icon-border-necrolord','covenantsanctum-upgrade-border-necrolord','covenantchoice-offering-ability-frame-nightfae','covenantchoice-offering-ability-ring-nightfae','covenantchoice-offering-parchment-nightfae','covenantchoice-offering-preview-frame-nightfae','covenantchoice-offering-sigil-nightfae','covenantchoice-offering-ability-frame-necrolord','covenantchoice-offering-ability-ring-necrolord','covenantchoice-offering-parchment-necrolord','covenantchoice-offering-preview-frame-necrolord','covenantchoice-offering-sigil-necrolord','covenantsanctum-level-border-kyrian','covenantsanctum-level-border-necrolord','covenantsanctum-level-border-nightfae','covenantsanctum-level-border-venthyr','bonusloot-chest','embercourt-guest-alexandrosmograine','embercourt-guest-baronessvashj','embercourt-guest-choofa','embercourt-guest-countess','embercourt-guest-cryptkeeperkassir','embercourt-guest-dromanaliothe','embercourt-guest-grandmastervole','embercourt-guest-huntcaptainkorayn','embercourt-guest-kleia','embercourt-guest-ladymoonberry','embercourt-guest-mikanikos','embercourt-guest-plaguedevisermarileth','embercourt-guest-polemarchadrestes','embercourt-guest-princerenathal','embercourt-guest-rendle','embercourt-guest-sika','embercourt-guest-stonehead','adventure-buff-indicator','adventure-heal-indicator','adventures-target-indicator-desat','adventures-target-indicator','runecarving-icon-reagent-border','runecarving-icon-reagent-selectedother','runecarving-menu-reagent-selected','worldstate-capturebar-leftfill-white','worldstate-capturebar-neutralfill-white','worldstate-capturebar-rightfill-white','worldstate-capturebar-spark-white','UI-Frame-Venthyr-CardParchment','UI-Frame-Venthyr-CardParchmentWider','UI-Frame-Venthyr-DisableSubtitle','UI-Frame-Venthyr-Portrait','UI-Frame-Venthyr-PortraitDisable','UI-Frame-Venthyr-PortraitWider','UI-Frame-Venthyr-PortraitWiderDisable','UI-Frame-Venthyr-Ribbon','UI-Frame-Venthyr-Subtitle','covenantchoice-offering-preview-frame-background-kyrian','covenantchoice-offering-preview-frame-background-necrolord','covenantchoice-offering-preview-frame-background-nightfae','covenantchoice-offering-preview-frame-background-venthyr','UI-Frame-Kyrian-CardParchment','UI-Frame-Kyrian-CardParchmentWider','UI-Frame-Kyrian-DisableSubtitle','UI-Frame-Kyrian-Portrait','UI-Frame-Kyrian-PortraitDisable','UI-Frame-Kyrian-PortraitWider','UI-Frame-Kyrian-PortraitWiderDisable','UI-Frame-Kyrian-Ribbon','UI-Frame-Kyrian-Subtitle','ui-frame-necrolord-cardparchment','ui-frame-necrolord-cardparchmentwider','ui-frame-necrolord-disablesubtitle','ui-frame-necrolord-portraitdisable','ui-frame-necrolord-portraitwider','ui-frame-necrolord-portraitwiderdisable','ui-frame-necrolord-ribbon','ui-frame-necrolord-subtitle','ui-frame-necrolords-portrait','UI-Frame-NightFae-CardParchment','UI-Frame-NightFae-CardParchmentWider','UI-Frame-NightFae-DisableSubtitle','UI-Frame-NightFae-Portrait','UI-Frame-NightFae-PortraitDisable','UI-Frame-NightFae-PortraitWider','UI-Frame-NightFae-PortraitWiderDisable','UI-Frame-NightFae-Ribbon','UI-Frame-NightFae-Subtitle','worldstate-capturebar-arrow-embercourt','worldstate-capturebar-frame-casualformal-embercourt','worldstate-capturebar-frame-humbledecadent-embercourt','worldstate-capturebar-frame-messyclean-embercourt','worldstate-capturebar-frame-relaxingexciting-embercourt','worldstate-capturebar-frame-safedangerous-embercourt','worldstate-capturebar-leftfill-casualformal-embercourt','worldstate-capturebar-leftfill-humbledecadent-embercourt','worldstate-capturebar-leftfill-messyclean-embercourt','worldstate-capturebar-leftfill-relaxingexciting-embercourt','worldstate-capturebar-leftfill-safedangerous-embercourt','worldstate-capturebar-leftfill-shadow-casualformal-embercourt','worldstate-capturebar-leftfill-shadow-humbledecadent-embercourt','worldstate-capturebar-leftfill-shadow-messyclean-embercourt','worldstate-capturebar-leftfill-shadow-relaxingexciting-embercourt','worldstate-capturebar-leftfill-shadow-safedangerous-embercourt','worldstate-capturebar-leftglow-casualformal-embercourt','worldstate-capturebar-leftglow-humbledecadent-embercourt','worldstate-capturebar-leftglow-messyclean-embercourt','worldstate-capturebar-leftglow-relaxingexciting-embercourt','worldstate-capturebar-leftglow-safedangerous-embercourt','worldstate-capturebar-rightfill-casualformal-embercourt','worldstate-capturebar-rightfill-humbledecadent-embercourt','worldstate-capturebar-rightfill-messyclean-embercourt','worldstate-capturebar-rightfill-relaxingexciting-embercourt','worldstate-capturebar-rightfill-safedangerous-embercourt','worldstate-capturebar-rightfill-shadow-casualformal-embercourt','worldstate-capturebar-rightfill-shadow-humbledecadent-embercourt','worldstate-capturebar-rightfill-shadow-messyclean-embercourt','worldstate-capturebar-rightfill-shadow-relaxingexciting-embercourt','worldstate-capturebar-rightfill-shadow-safedangerous-embercourt','worldstate-capturebar-rightglow-casualformal-embercourt','worldstate-capturebar-rightglow-humbledecadent-embercourt','worldstate-capturebar-rightglow-messyclean-embercourt','worldstate-capturebar-rightglow-relaxingexciting-embercourt','worldstate-capturebar-rightglow-safedangerous-embercourt','eyeofthejailer-state0-background','eyeofthejailer-state0-backgroundglow','eyeofthejailer-state0-border','eyeofthejailer-state0-transitionglow','eyeofthejailer-state1-background','eyeofthejailer-state1-backgroundglow','eyeofthejailer-state1-border','eyeofthejailer-state1-transitionglow','eyeofthejailer-state2-background','eyeofthejailer-state2-backgroundglow','eyeofthejailer-state2-border','eyeofthejailer-state2-transitionglow','eyeofthejailer-state3-background','eyeofthejailer-state3-backgroundglow','eyeofthejailer-state3-border','eyeofthejailer-state3-transitionglow','eyeofthejailer-state4-background','eyeofthejailer-state4-backgroundglow','eyeofthejailer-state4-border','eyeofthejailer-state4-transitionglow','eyeofthejailer-state5-background','eyeofthejailer-state5-backgroundglow','eyeofthejailer-state5-border','eyeofthejailer-state5-transitionglow','eyeofthejailer-state4-borderglow1','eyeofthejailer-state5-borderglow2','worldstate-capturebar-spark-casualformal-embercourt','worldstate-capturebar-spark-humbledecadent-embercourt','worldstate-capturebar-spark-messyclean-embercourt','worldstate-capturebar-spark-relaxingexciting-embercourt','worldstate-capturebar-spark-safedangerous-embercourt','worldstate-capturebar-divider-casualformal-embercourt','worldstate-capturebar-divider-humbledecadent-embercourt','worldstate-capturebar-divider-messyclean-embercourt','worldstate-capturebar-divider-relaxingexciting-embercourt','worldstate-capturebar-divider-safedangerous-embercourt','eyeofthejailer-state5-borderglow3','eyeofthejailer-state5-borderglow4','eyeofthejailer-state1-centereffect1','eyeofthejailer-state2-centereffect1','eyeofthejailer-state2-centereffect2','eyeofthejailer-state3-centereffect1','eyeofthejailer-state3-centereffect3','eyeofthejailer-state3-centereffect5','eyeofthejailer-state4-centereffect1','eyeofthejailer-state4-centereffect2','eyeofthejailer-state4-centereffect3','eyeofthejailer-state4-centereffect4','eyeofthejailer-state5-centereffect1','eyeofthejailer-state5-centereffect2','eyeofthejailer-state5-centereffect3','eyeofthejailer-state5-centereffect4','eyeofthejailer-state0-transitionglow2','eyeofthejailer-state0-transitionglow3','eyeofthejailer-state1-transitionglow2','eyeofthejailer-state1-transitionglow3','eyeofthejailer-state2-transitionglow2','eyeofthejailer-state2-transitionglow3','eyeofthejailer-state3-transitionglow2','eyeofthejailer-state3-transitionglow3','eyeofthejailer-state4-transitionglow2','eyeofthejailer-state4-transitionglow3','eyeofthejailer-state5-transitionglow2','eyeofthejailer-state5-transitionglow3','worldstate-capturebar-framebar-bastionarmor','eyeofthejailer-step1-disable','eyeofthejailer-step1-enable','eyeofthejailer-step2-disable','eyeofthejailer-step2-enable','eyeofthejailer-step3-disable','eyeofthejailer-step3-enable','eyeofthejailer-step4-disable','eyeofthejailer-step4-enable','eyeofthejailer-step5-disable','eyeofthejailer-step5-enable','ui-frame-kyrianchoice-cardparchment','ui-frame-necrolordschoice-cardparchment','ui-frame-nightfaechoice-cardparchment','ui-frame-venthyrchoice-cardparchment','adventure-debuff-indicator','adventures_missioncoststartbuttonbg','UI-Frame-KyrianChoice-ScrollingBG','ui-frame-nightfaechoice-scrollingbg','UI-Frame-VenthyrChoice-ScrollingBG','soulbinds_tree_undo','ui-frame-necrolordschoice-scrollingbg','soulbinds_tree_conduit_arrows','_pvpqueue-conquestbar-fill-blue','pvpqueue-chest-greatvault-collect','pvpqueue-chest-greatvault-complete','pvpqueue-chest-greatvault-incomplete','_pvpqueue-conquestbar-fill-disabled','Adventures-Missions-Shadow','adventures-divider','adventures-infinite','soulbinds_tree_conduit_arrows_socketed','Soulbinds_Link_Spirits','EmberCourtScenario-TrackerHeader','runecarving-upgrade-icon-center-empty','runecarving-upgrade-icon-center-pressed','runecarving-upgrade-icon-slot-empty','runecarving-upgrade-icon-slot-pressed','runecarving-upgrade-slot-background','ui-frame-bar-bordertick','jailerstower-wayfinder-background','jailerstower-wayfinder-exitborder','jailerstower-wayfinder-rewardbackground-disable','jailerstower-wayfinder-rewardbackground-mouseover','jailerstower-wayfinder-rewardbackground-selected','jailerstower-wayfinder-rewardbackground','jailerstower-wayfinder-rewardcheckmark','jailerstower-wayfinder-rewardcircle','jailerstower-wayfinder-rewardglow','jailerstower-wayfinder-rewardpadlock','jailerstower-wayfinder-tierbackground-mouseover','jailerstower-wayfinder-tierbackground-selected','jailerstower-wayfinder-tierbackground-skoldushall','soulbinds_tree_activatefx','mythicplus-greatvault-collect','mythicplus-greatvault-complete','mythicplus-greatvault-incomplete','charactercreate-customize-palette-glow','jailerstower-skull-1','jailerstower-skull-2','jailerstower-skull-3','poi-soulspiritghost','poi-torghast','soulbinds_portrait_lock','conduiticonframe-corners','conduiticonframe','jailerstower-scenario-skull1','jailerstower-scenario-skull2','jailerstower-scenario-skull3','Adventure_MissionParchment','jailerstower-wayfinder-tierbackground-coldheartinterstitia','jailerstower-wayfinder-tierbackground-fracturechambers','jailerstower-wayfinder-tierbackground-mortregar','jailerstower-wayfinder-tierbackground-soulforges','jailerstower-wayfinder-tierbackground-theupperreaches','jailerstower-wayfinder-tierbackground-twistingcorridors','soulbinds_tree_activatefx_runes1','soulbinds_tree_activatefx_runes2','soulbinds_tree_activatefx_lensflare','EmberCourtScenario-TitleBG','EmberCourtScenario-Tracker-frame','EmberCourtScenario-Tracker-barfill','covenantchoice-celebration-background','covenantchoice-celebration-kyriancloudyline','covenantchoice-celebration-kyriansigil','covenantchoice-celebration-necrolordsigil','covenantchoice-celebration-nightfaecloudyline','covenantchoice-celebration-nightfaesigil','covenantchoice-celebration-venthyrsigil','ShadowlandsMissionsLandingPage-Background-Kyrian','ShadowlandsMissionsLandingPage-Background-Venthyr','ShadowlandsMissionsLandingPage-Background-NightFae','runecarving-frame-item-legendary','charactercreate-customize-palette-half','covenantsanctum-bag-glow-kyrian','covenantsanctum-icon-glow-kyrian','covenantsanctum-bag-glow-necrolord','covenantsanctum-icon-glow-necrolord','covenantsanctum-bag-glow-nightfae','covenantsanctum-icon-glow-nightfae','covenantsanctum-bag-glow-venthyr','covenantsanctum-icon-glow-venthyr','groupfinder-background-torghast','groupfinder-button-torghast','groupfinder-background-raids-shadowlands','groupfinder-button-raids-shadowlands','shop-card-full-npe-gametime','shop-card-full-npe-subscription','interstitial-newplayerexperience-subscribe','interstitial-newplayerexperience-upgrade','interstitial-newplayerexperience-upgrade-bullet','ShadowlandsMissionsLandingPage-Background-Necrolord','soulbinds_background','soulbinds_collection_conduit_border','soulbinds_collection_conduit_border_glass','soulbinds_collection_conduit_shadow','Soulbinds_Collection_Conduit_Mask','soulbinds_collection_categoryheader','soulbinds_collection_categoryheader_collapse','soulbinds_collection_categoryheader_expand','soulbinds_collection_scrollbar_background','soulbinds_collection_scrollbar_thumb','soulbinds_collection_scrollbar_backplate','adventures-buff-heal-burst','adventures-buff-heal-ring','runecarving-exitborder','kyrian-scenario-TitleBG','kyrian-scenario-TrackerHeader','soulbinds_tree_conduit_ring_pendinganimation_glow','soulbinds_tree_conduit_ring_pendinganimation_dot','soulbinds_collection_conduit_pendinganimation_mask','soulbinds_tree_conduit_ring_pendinganimation_stick','charactercreate-vignette-sides-widescreen','soulbinds_collection_conduit_pending','worldmap-highlight-cosmic-Shadowlands','soulbinds_collection_scrollbar_arrow_down','soulbinds_collection_scrollbar_arrow_up','adventures-dps-ranged','soulbinds_collection_shadow','shadowlands-landingbutton-venthyr-highlight','loottoast-oribos','covenantsanctum-currency-shadow','runecarving-frame-center-lit','runecarving-frame-runes-lit','runecarving-frame-upgrade-center-lit','GenericMetal2-NineSlice-CornerBottomLeft','GenericMetal2-NineSlice-CornerBottomRight','GenericMetal2-NineSlice-CornerTopLeft','GenericMetal2-NineSlice-CornerTopRight','_GenericMetal2-NineSlice-EdgeBottom','_GenericMetal2-NineSlice-EdgeTop','!GenericMetal2-NineSlice-EdgeLeft','!GenericMetal2-NineSlice-EdgeRight','Glues-AnnouncementPopup-Line','Glues-AnnouncementPopup-Parchment-Bottom','Glues-AnnouncementPopup-Parchment-Middle','Glues-AnnouncementPopup-Parchment-Top','quickkeybind_bagmicro_glow','quickkeybind_bottombarextended_glow','quickkeybind_bottombar_glow','quickkeybind_sidebar_glow','quickkeybind_topleftbar_glow','quickkeybind_toprightbar_glow','_quickkeybind_bottom_shadow','!quickkeybind_side_shadow','accountupgradebanner-shadowlands','covenantchoice-celebration-kyrian-detailline','covenantchoice-celebration-necrolord-detailline','covenantchoice-celebration-nightfae-detailline','covenantchoice-celebration-venthyr-detailline-zhcn','covenantchoice-celebration-venthyr-detailline','ui-ej-memoryframe','ui-ej-shadowlands','Glues-AnnouncementPopup-Background','adventures-spell-border','adventures-rewards-banner','adventures_mission_materialframe','adventurers-frame-shadow','streamcinematic-shadowlands-down','streamcinematic-shadowlands-up','warmode-broker-32x32','adventures-mission-follower-tutorial-ring','_creditsscreen-gradient-tile','creditsscreen-background-1','creditsscreen-background-6','creditsscreen-background-8','creditsscreen-keyart-1','creditsscreen-keyart-6','creditsscreen-keyart-8','adventures-combatlog-bg','adventures-combatlog-frame','adventures-followers-bg','adventures-followers-frame','animachannel-line-mask','mixingpool-frame-fill-white','animachannel-line-reinforce-mask','tradeskills-icon-locked','covenantchoice-celebration-kyrianglowline','covenantchoice-celebration-necrolordglowline','covenantchoice-celebration-nightfaeglowline','covenantchoice-celebration-toastbg','covenantchoice-celebration-venthyrglowline','covenantchoice-celebration-venthyrglowline-zhcn','covenantchoice-celebration-content-soulbind','covenantchoice-celebration-content-ring','creditsscreen-keyart-0','creditsscreen-background-0','creditsscreen-keyart-2','creditsscreen-background-2','creditsscreen-keyart-3','creditsscreen-background-3','creditsscreen-keyart-4','creditsscreen-background-4','creditsscreen-keyart-5','creditsscreen-background-5','creditsscreen-background-7','creditsscreen-keyart-7','chromietime-32x32','_adventures-frame-shadow','ui-frame-necrolordschoice-cardparchment-zhcn','ui-frame-necrolordschoice-scrollingbg-zhcn','covenantsanctum-background-necrolord-zhcn','adventures-endcombat-venthyr-zhcn','teleportationnetwork-32x32','creditsscreen-highlight','creditsscreen-selected','questbg-parchment','_animachannel-channel-line-horizontal-kyrian','_animachannel-channel-line-horizontal-necrolord','_animachannel-channel-line-horizontal-nightfae','_animachannel-channel-line-horizontal-venthyr','animachannel-link-anima-black','animachannel-link-anima-kyrian','animachannel-link-anima-necrolord','animachannel-link-anima-nightfae','animachannel-link-anima-venthyr','animachannel-link-anima-venthyr-zhcn','_animachannel-channel-line-horizontal-venthyr-zhcn','callings-header-kyrian','callings-header-necrolord','callings-header-nightfae','callings-header-venthyr','callingsheader_selectedglow','splash-901-botleft','splash-901-right','splash-901-topleft','splash-902-botleft','splash-902-right','splash-902-topleft','adventures_missionlist','adventures_missionlist_highlight','adventures_missionlist_inprogress','questbg-bastion','questbg-maldraxxus','questbg-revendreth','questbg-kyrian','questbg-necrolord','questbg-venthyr','jailerstower-animapowerlist-powerborder-white','queensconservatory-seedborder','queensconservatory-seedborder-highlight','adventurers-followers-frame-troops','jailerstower-animapowerlist-powerborder-blue','jailerstower-animapowerlist-powerborder-green','jailerstower-animapowerlist-powerborder-purple','queensconservatory-bg','campaign_oribos','callings-backhighlight','callings-tophighlight','questbg-shadowlands','questbg-ardenweald','questbg-fey','questbg-oribos','covenantsanctum-upgrade-icon-border-nightfae','covenantsanctum-upgrade-icon-border-disabled','covenantsanctum-upgrade-icon-border-kyrian','covenantsanctum-upgrade-icon-border-necrolord','covenantsanctum-upgrade-icon-border-venthyr','covenantsanctum-reservoir-empty-kyrian','covenantsanctum-reservoir-full-kyrian','covenantsanctum-reservoir-glow-kyrian','covenantsanctum-reservoir-spark-glow-kyrian','covenantsanctum-reservoir-spark-kyrian','covenantsanctum-reservoir-empty-necrolord','covenantsanctum-reservoir-full-necrolord','covenantsanctum-reservoir-glow-necrolord','covenantsanctum-reservoir-spark-glow-necrolord','covenantsanctum-reservoir-spark-necrolord','covenantsanctum-reservoir-empty-nightfae','covenantsanctum-reservoir-full-nightfae','covenantsanctum-reservoir-glow-nightfae','covenantsanctum-reservoir-spark-glow-nightfae','covenantsanctum-reservoir-spark-nightfae','covenantsanctum-reservoir-empty-venthyr','covenantsanctum-reservoir-full-venthyr-zhcn2','covenantsanctum-reservoir-full-venthyr','covenantsanctum-reservoir-glow-venthyr','covenantsanctum-reservoir-spark-glow-venthyr','covenantsanctum-reservoir-spark-venthyr','soulbinds_background_noconduits','powerswirlanimation-spinningglowys-soulbinds','powerswirlanimation-starburst-soulbinds','powerswirlanimation-yellowring-soulbinds','powerswirlanimation-whirls-soulbinds','barbershop-32x32','mixingpool-frame-bordercenter','mixingpool-frame-borderleft','mixingpool-frame-borderright','mixingpool-bgcenter','mixingpool-bgleft','mixingpool-bgright','torghastdoor-32x32','torghastdoor-arrowdown-32x32','torghastdoor-arrowleft-32x32','torghastdoor-arrowright-32x32','torghastdoor-arrowup-32x32','_garrmissionlocation-maw-mid','covenantsanctum-text-border-kyrian','covenantsanctum-text-border-necrolord','covenantsanctum-text-border-nightfae','128-goldredbutton-left-disabled','128-goldredbutton-left-pressed','128-goldredbutton-left','128-goldredbutton-right-disabled','128-goldredbutton-right-pressed','128-goldredbutton-right','128-store-main','_128-goldredbutton-center-disabled','_128-goldredbutton-center-pressed','_128-goldredbutton-center','128-redbutton-exit-pressed','128-redbutton-exit-disabled','128-redbutton-exit','128-goldredbutton-highlight','16-store-main','weeklyrewards-frame-burst','weeklyrewards-frame-sheen','soulbinds_collection_entry_highlight','soulbinds_collection_entry_selected','soulbinds_collection_entry_glow','embercourt-guest-cudgelface','embercourt-guest-pelagos','soulbinds_portrait_newlabel_shadow','covenantsanctum-text-border-venthyr','soulbinds_collection_specborder_primary','soulbinds_collection_specborder_secondary','soulbinds_collection_specborder_tertiary','soulbinds_collection_scrollbar_thumb_wide','ui_adv_atk','ui_adv_health','soulbinds_collection_charge_active','soulbinds_collection_charge_inactive','soulbinds_collection_charge_pending','soulbinds_collection_charge_slot','soulbinds_collection_charge_shadow','soulbinds_collection_charge_dialog','ui-lfg-dungeontoast','covenantchoice-offering-portrait-kyrian-kleia','covenantchoice-offering-portrait-kyrian-mikanikos','covenantchoice-offering-portrait-kyrian-pelagos','covenantchoice-offering-portrait-necrolord-emeni','covenantchoice-offering-portrait-necrolord-heirmir','covenantchoice-offering-portrait-necrolord-marileth','covenantchoice-offering-portrait-nightfae-korayn','covenantchoice-offering-portrait-nightfae-niya','covenantchoice-offering-portrait-venthyr-draven','covenantchoice-offering-portrait-venthyr-nadjia','covenantchoice-offering-portrait-venthyr-theotar','covenantchoice-offering-soulbinds-background','covenantchoice-offering-soulbinds-frame','bonusobjectives-bar-frame-5','covenantchoice-offering-portrait-nightfae-dreamweaver','animachannel-icon-kyrian-map','animachannel-icon-necrolord-map','animachannel-icon-nightfae-map','animachannel-icon-venthyr-map','flightmaster_bastion-taxi_frame_gray','flightmaster_bastion-taxi_frame_green','flightmaster_bastion-taxi_frame_yellow','flightmaster_bastion-taxinode_neutral','chatbubble-nineslice-center','chatbubble-nineslice-cornerbottomleft','chatbubble-nineslice-cornerbottomright','chatbubble-nineslice-cornertopleft','chatbubble-nineslice-cornertopright','_chatbubble-nineslice-edgebottom','_chatbubble-nineslice-edgetop','chatbubble-tail','!chatbubble-nineslice-edgeleft','!chatbubble-nineslice-edgeright','cosmeticiconframe','teleportationnetwork-ardenweald-32x32','teleportationnetwork-maldraxxus-32x32','teleportationnetwork-revendreth-32x32','sanctumupgrades-kyrian-32x32','sanctumupgrades-necrolord-32x32','sanctumupgrades-nightfae-32x32','sanctumupgrades-venthyr-32x32','covenantsanctum-renown-arrow','covenantsanctum-renown-background-shadow','covenantsanctum-renown-checkmark','covenantsanctum-renown-icon-border-disabled','covenantsanctum-renown-toast-hover','covenantsanctum-renown-anima-venthyr-zhcn','covenantsanctum-renown-anima-venthyr','covenantsanctum-renown-background-venthyr','covenantsanctum-renown-divider-venthyr','covenantsanctum-renown-finaltoast-venthyr','covenantsanctum-renown-icon-border-venthyr','covenantsanctum-renown-next-border-venthyr','covenantsanctum-renown-special-border-venthyr','covenantsanctum-renown-special-disabled-border-venthyr','covenantsanctum-renown-title-divider-venthyr','covenantsanctum-renown-toast-venthyr','covenantsanctum-renown-anima-nightfae','covenantsanctum-renown-background-nightfae','covenantsanctum-renown-divider-nightfae','covenantsanctum-renown-finaltoast-nightfae','covenantsanctum-renown-icon-border-nightfae','covenantsanctum-renown-next-border-nightfae','covenantsanctum-renown-special-border-nightfae','covenantsanctum-renown-special-disabled-border-nightfae','covenantsanctum-renown-title-divider-nightfae','covenantsanctum-renown-toast-nightfae','covenantsanctum-renownlevel-border-nightfae','covenantsanctum-renown-icon-border-necrolord','covenantsanctum-renown-toast-necrolord','covenantsanctum-renown-finaltoast-necrolord','covenantsanctum-renown-special-border-necrolord','covenantsanctum-renown-background-necrolord-zhcn','covenantsanctum-renown-anima-necrolord','covenantsanctum-renownlevel-border-necrolord','covenantsanctum-renown-next-border-necrolord','covenantsanctum-renown-divider-necrolord','covenantsanctum-renown-background-necrolord','covenantsanctum-renown-title-divider-necrolord','covenantsanctum-renown-special-disabled-border-necrolord','covenantsanctum-renown-anima-kyrian','covenantsanctum-renown-background-kyrian','covenantsanctum-renown-divider-kyrian','covenantsanctum-renown-finaltoast-kyrian','covenantsanctum-renown-icon-border-kyrian','covenantsanctum-renown-next-border-kyrian','covenantsanctum-renown-special-border-kyrian','covenantsanctum-renown-special-disabled-border-kyrian','covenantsanctum-renown-title-divider-kyrian','covenantsanctum-renown-toast-kyrian','covenantsanctum-renownlevel-border-kyrian','covenantsanctum-renown-arrow-depressed','covenantsanctum-renown-arrow-hover','covenantsanctum-renown-hexagon-border-disabled','covenantsanctum-renown-hexagon-border-venthyr','covenantsanctum-renown-hexagon-next-border-venthyr','covenantsanctum-renown-hexagon-border-nightfae','covenantsanctum-renown-hexagon-next-border-nightfae','covenantsanctum-renown-hexagon-next-border-necrolord','covenantsanctum-renown-hexagon-border-necrolord','covenantsanctum-renown-hexagon-border-kyrian','covenantsanctum-renown-hexagon-next-border-kyrian','covenantsanctum-renown-hexagon-mask','eyeofthejailer-bar','eyeofthejailer-runebg','covenantsanctum-renown-special-next-border-kyrian','covenantsanctum-renown-special-next-border-necrolord','covenantsanctum-renown-special-next-border-nightfae','covenantsanctum-renown-special-next-border-venthyr','covenantsanctum-renown-scroll-mask','covenantsanctum-renown-hexagon-hover','covenantsanctum-renown-icon-hover','covenantsanctum-renown-arrow-disabled','covenantsanctum-renown-checkmark-large','poi-lighthouse-neutral','soulbinds_backgroundfx_mask','soulbinds_backgroundfx_sheen','teleportationnetwork-flightpathminimap','shadowlands-landingpage-topbackground','shadowlands-landingpage-renownbutton-venthyr-down','shadowlands-landingpage-renownbutton-nightfae','shadowlands-landingpage-renownbutton-kyrian','shadowlands-landingpage-renownbutton-nightfae-down','shadowlands-landingpage-renownbutton-kyrian-down','shadowlands-landingpage-renownbutton-venthyr','shadowlands-landingpage-renownbutton-necrolord','shadowlands-landingpage-renownbutton-necrolord-down','buildanabomination-32x32','embercourt-32x32-zhcn','embercourt-32x32','pathofascension-32x32','queensconservatory-32x32','soulbind-32x32','animadiversion-icon','soulbinds_backgroundfx_gridburst','adventures-32x32','soulbinds_backgroundfx_chargesheen','covenantsanctum-renown-next-glow-kyrian','covenantsanctum-renown-next-glow-necrolord','covenantsanctum-renown-next-glow-nightfae','covenantsanctum-renown-next-glow-venthyr','covenantsanctum-renownlevel-border-venthyr-zhcn','covenantsanctum-renownlevel-border-venthyr','covenantsanctum-reservoir-shadow','soulbinds_tree_activatefx_diamond','soulbinds_tree_activatefx_diamondarrows','soulbinds_tree_activatefx_stars','soulbinds_background_activate','soulbinds_tree_activatefx_ring','ui-frame-bar-fill-white','runecarving-icon-center-empty-error','runecarving-icon-center-selected-error','runecarving-icon-power-empty-error','runecarving-icon-reagent-empty-error','covenantsanctum-reservoir-idle-kyrian-glass','covenantsanctum-reservoir-idle-kyrian-glow','covenantsanctum-reservoir-idle-kyrian-speck','covenantsanctum-reservoir-idle-kyrian-speck2','garrlanding-followerframe','covenantsanctum-reservoir-idle-venthyr-glass','covenantsanctum-reservoir-idle-venthyr-glow','covenantsanctum-renown-icon-available-kyrian','covenantsanctum-renown-icon-available-necrolord','covenantsanctum-renown-icon-available-venthyr','shop-card-celebrationcollection-epic1','shop-card-celebrationcollection-epic2','shop-card-celebrationcollection-essentials','shop-card-celebrationcollection-heroic','_covenantsanctum-reservoir-idle-venthyr-strands2','!covenantsanctum-reservoir-idle-kyrian-strands','!covenantsanctum-reservoir-idle-venthyr-strands','autoquest-badge-campaign','covenantsanctum-reservoir-idle-nightfae-glass','covenantsanctum-reservoir-idle-nightfae-glow','covenantsanctum-reservoir-idle-nightfae-speck','covenantsanctum-reservoir-idle-nightfae-speck2','covenantsanctum-reservoir-idle-nightfae-spiral1','covenantsanctum-reservoir-idle-nightfae-spiral2','covenantsanctum-reservoir-idle-nightfae-spiral3','covenantsanctum-reservoir-idle-necrolord-glass','covenantsanctum-reservoir-idle-necrolord-pulse','covenantsanctum-reservoir-idle-necrolord-speck','greatvault-32x32','oribos-weeklyrewards-orb-dialog','garrmissionlocation-maw-buttonbg','garrmissionlocation-maw-buttonhighlight','timewalkingvendor-32x32','covenantsanctum-reservoir-idle-necrolord-speck2','covenantsanctum-reservoir-idle-necrolord-veins','levelup-bar-gold','levelup-bar-green','levelup-bar-white','levelup-dot-gold','levelup-dot-green','levelup-glow-gold','levelup-glow-green','levelup-icon-arrow','levelup-icon-bag','levelup-icon-book','levelup-icon-lock','levelup-shadow-lower','levelup-shadow-upper','upgradeitem-32x32','garrmissionlocation-maw-bg-01','garrmissionlocation-maw-bg-02','garrmissionlocation-maw-enemy-socket-01','garrmissionlocation-maw-enemy-socket-02','garrmissionlocation-maw-enemy-socket-03','garrmissionlocation-maw-enemy-socket-04','garrmissionlocation-maw-follower-socket-01','garrmissionlocation-maw-follower-socket-02','garrmissionlocation-maw-follower-socket-03','garrmissionlocation-maw-follower-socket-04','!ui-scrollbar-center','ui-scrollbar-button-overlay','ui-scrollbar-endcap-bottom','ui-scrollbar-endcap-top','ui-scrollbar-knob-endcap-bottom-disabled','ui-scrollbar-knob-endcap-bottom','ui-scrollbar-knob-endcap-top-disabled','ui-scrollbar-knob-endcap-top','ui-scrollbar-knob-mouseover-endcap-bottom','ui-scrollbar-knob-mouseover-endcap-top','ui-scrollbar-scrolldownbutton-disabled','ui-scrollbar-scrolldownbutton-down','ui-scrollbar-scrolldownbutton-highlight','ui-scrollbar-scrolldownbutton-up','ui-scrollbar-scrollupbutton-disabled','ui-scrollbar-scrollupbutton-down','ui-scrollbar-scrollupbutton-highlight','ui-scrollbar-scrollupbutton-up','ui-scrollbar-button-overlay-horizontal','ui-scrollbar-endcap-left','ui-scrollbar-endcap-right','ui-scrollbar-knob-endcap-left-disabled','ui-scrollbar-knob-endcap-left','ui-scrollbar-knob-endcap-right-disabled','ui-scrollbar-knob-endcap-right','ui-scrollbar-knob-mouseover-endcap-left','ui-scrollbar-knob-mouseover-endcap-right','ui-scrollbar-scrollleftbutton-disabled','ui-scrollbar-scrollleftbutton-down','ui-scrollbar-scrollleftbutton-highlight','ui-scrollbar-scrollleftbutton-up','ui-scrollbar-scrollrightbutton-disabled','ui-scrollbar-scrollrightbutton-down','ui-scrollbar-scrollrightbutton-highlight','ui-scrollbar-scrollrightbutton-up','_ui-scrollbar-center','ui-scrollbar-knob-center-disabled','ui-scrollbar-knob-center','ui-scrollbar-knob-mouseover-center','ui-scrollbar-knob-center-disabled-horizontal','ui-scrollbar-knob-center-horizontal','ui-scrollbar-knob-mouseover-center-horizontal','ui-achievement-alert-background-mini','ui-achievement-alert-background','ui-achievement-alert-glow-glow','ui-achievement-alert-glow-shine','ui-achievement-guild-background','ui-achievement-guild-glow','ui-achievement-guild-shine','ui-achievement-bling','ui-achievement-border-1','ui-achievement-border-2','ui-achievement-border-3','ui-achievement-border-4','ui-achievement-border-5','ui-achievement-border-6','ui-achievement-border-7','ui-achievement-border-8','ui-achievement-guild-badge','ui-achievement-guild-filigree-left','ui-achievement-guild-filigree-right','ui-achievement-guild-flag-outline','ui-achievement-guild-flag-short-outline','ui-achievement-guild-flag-short','ui-achievement-guild-flag','ui-achievement-guild-iconframe-small','ui-achievement-guild-iconframe','ui-achievement-iconframe','ui-achievement-shield-1','ui-achievement-shield-2-desaturated','ui-achievement-shield-2','ui-achievement-shield-desaturated','common-icon-zoomin-disable','common-icon-zoomout-disable','charactercreate-customize-backbutton-disabled','charactercreate-customize-backbutton','charactercreate-customize-nextbutton-disabled','charactercreate-customize-nextbutton','charactercreate-gendericon-female-selected','charactercreate-gendericon-male-selected','soulbinds_tree_conduit_ring_enhanced','soulbinds_collection_conduit_enhanced_mask','charactercreate-customize-backbutton-down','charactercreate-customize-nextbutton-down','creditsscreen-assets-buttons-fastforward','creditsscreen-assets-buttons-pause','creditsscreen-assets-buttons-play','creditsscreen-assets-buttons-rewind','chatframe-button-icon-tts','voicechat-channellist-icon-stt-off','voicechat-channellist-icon-stt-on','voicechat-icon-stt-mute','voicechat-icon-stt-mutesilenced','voicechat-icon-stt-off','voicechat-icon-stt-on','voicechat-icon-stt-silenced','voicechat-icon-stt','common-gray-button-entrybox-center','common-gray-button-entrybox-left','common-gray-button-entrybox-right','ui-achievement-alert-background-mini-glow-shine','ui-achievement-alert-background-mini-glow','ui-achievement-shield-1-desaturated','kyrianassaults-64x64','kyrianassaultsquest-32x32','necrolordassaults-64x64','necrolordassaultsquest-32x32','nightfaeassaults-64x64','nightfaeassaultsquest-32x32','venthyrassaults-64x64','venthyrassaultsquest-32x32','animcreate_icon_3d','animcreate_icon_folder','animcreate_icon_mask','animcreate_icon_template','animcreate_icon_text','animcreate_icon_texture','adventure-buff-indicator-small','adventure-heal-indicator-small','ui-ej-memory-darkring','ui-ej-memory-disabledring','runecarving-venthyr-32x32-mask','runecarving-kyrian-32x32-mask','runecarving-necrolord-32x32-mask','runecarving-nightfae-32x32-mask','adventure-debuff-indicator-small','adventures-mission-frame-elite','adventures-mission-frame-medium','adventures-mission-frame-normal','jailerstower-score-background','jailerstower-score-footer','jailerstower-score-topper','questbg-parchment-accessibility','questdetailsbackgrounds-accessibility','jailerstower-score-gem-mask','ui-frame-jailerstower-rerollbutton','ui-frame-jailerstower-rerollbuttonhighlight','jailerstower-score-disabled-gem-icon','jailerstower-score-gem-glow','jailerstower-score-gem-icon','jailerstower-score-gem-anim-flash','animcreate_icon_add','jailerstower-scorebar-filling-cap-pause','jailerstower-scorebar-filling-cap','jailerstower-scorebar-filling-pause','jailerstower-scorebar-filling','jailerstower-scorebar-backgroundglowz','jailerstower-scorebar-full-fill-filling','jailerstower-scenario-nodeaths-frame','jailerstower-score-gem-tooltipicon','coin-copper-20x20','coin-gold-20x20','coin-silver-20x20','talenttree-torghast-background','talenttree-torghast-logo','socket-domination-background','socket-domination-closed','socket-domination-open','jailerstower-scorebar-bordercenter','jailerstower-scorebar-borderleft','jailerstower-scorebar-borderright','jailerstower-scorebar-bgcenter','jailerstower-scorebar-bgleft','jailerstower-scorebar-bgright','jailerstower-scorebar-full-bordercenter','jailerstower-scorebar-full-borderleft','jailerstower-scorebar-full-borderright','jailerstower-scorebar-full-glow-bordercenter','jailerstower-scorebar-full-glow-borderleft','jailerstower-scorebar-full-glow-borderright','jailerstower-scorebar-pause-bordercenter','jailerstower-scorebar-pause-borderleft','jailerstower-scorebar-pause-borderright','jailerstower-scorebar-full-tick','jailerstower-scorebar-pause-tick','jailerstower-scorebar-tick','jailerstower-scorebar-full-backgroundglow','jailerstower-scorebar-pause-bgcenter','jailerstower-scorebar-pause-bgleft','jailerstower-scorebar-pause-bgright','covenantsanctum-renown-icon-available-nightfae','jailerstower-score-hide-button','jailerstower-score-hide-buttonhighlight','jailerstower-highlight-row-left','jailerstower-highlight-row-right','_jailerstower-highlight-row-center','tooltip-nineslice-cornerbottomleft','tooltip-nineslice-cornerbottomright','tooltip-nineslice-cornertopleft','tooltip-nineslice-cornertopright','_tooltip-nineslice-edgebottom','_tooltip-nineslice-edgetop','!tooltip-nineslice-edgeleft','!tooltip-nineslice-edgeright','tooltip-glues-nineslice-cornerbottomleft','tooltip-glues-nineslice-cornerbottomright','tooltip-glues-nineslice-cornertopleft','tooltip-glues-nineslice-cornertopright','_tooltip-glues-nineslice-edgebottom','_tooltip-glues-nineslice-edgetop','!tooltip-glues-nineslice-edgeleft','!tooltip-glues-nineslice-edgeright','tooltip-glues-nineslice-center','textpanel-nineslice-cornerbottomleft','textpanel-nineslice-cornerbottomright','textpanel-nineslice-cornertopleft','textpanel-nineslice-cornertopright','_textpanel-nineslice-edgebottom','_textpanel-nineslice-edgetop','!textpanel-nineslice-edgeleft','!textpanel-nineslice-edgeright','splash-910-botleft','splash-910-right','splash-910-topleft','party-nineslice-cornerbottomleft','party-nineslice-cornerbottomright','party-nineslice-cornertopleft','party-nineslice-cornertopright','_party-nineslice-edgebottom','_party-nineslice-edgetop','ui-frame-party-backgroundtile','!party-nineslice-edgeleft','!party-nineslice-edgeright','sliderbar-nineslice-cornerbottomleft','sliderbar-nineslice-cornerbottomright','sliderbar-nineslice-cornertopleft','sliderbar-nineslice-cornertopright','_sliderbar-nineslice-edgebottom','_sliderbar-nineslice-edgetop','!sliderbar-nineslice-edgeleft','!sliderbar-nineslice-edgeright','ui-frame-sliderbar-backgroundtile','toast-nineslice-cornerbottomleft','toast-nineslice-cornerbottomright','toast-nineslice-cornertopleft','toast-nineslice-cornertopright','_toast-nineslice-edgebottom','_toast-nineslice-edgetop','!toast-nineslice-edgeleft','!toast-nineslice-edgeright','ui-frame-toast-backgroundtile','calloutglow-nineslice-cornerbottomleft','calloutglow-nineslice-cornerbottomright','calloutglow-nineslice-cornertopleft','calloutglow-nineslice-cornertopright','_calloutglow-nineslice-edgebottom','_calloutglow-nineslice-edgetop','!calloutglow-nineslice-edgeleft','!calloutglow-nineslice-edgeright','dialogbox-nineslice-cornerbottomleft','dialogbox-nineslice-cornerbottomright','dialogbox-nineslice-cornertopleft','dialogbox-nineslice-cornertopright','_dialogbox-nineslice-edgebottom','_dialogbox-nineslice-edgetop','!dialogbox-nineslice-edgeleft','!dialogbox-nineslice-edgeright','ui-frame-dialogbox-backgroundtile','achievement-wood-nineslice-cornerbottomleft','achievement-wood-nineslice-cornerbottomright','achievement-wood-nineslice-cornertopleft','achievement-wood-nineslice-cornertopright','_achievement-wood-nineslice-edgebottom','_achievement-wood-nineslice-edgetop','!achievement-wood-nineslice-edgeleft','!achievement-wood-nineslice-edgeright','arena-nineslice-cornerbottomleft','arena-nineslice-cornerbottomright','arena-nineslice-cornertopleft','arena-nineslice-cornertopright','_arena-nineslice-edgebottom','_arena-nineslice-edgetop','!arena-nineslice-edgeleft','!arena-nineslice-edgeright','splash-9102-botleft','splash-9102-right','splash-9102-topleft','torghast-empowered','jailerstower-scorebar-onfire-backgroundglow','jailerstower-scorebar-onfire-bgcenter','jailerstower-scorebar-onfire-bgleft','jailerstower-scorebar-onfire-bgright','jailerstower-scorebar-onfire-bordercenter','jailerstower-scorebar-onfire-borderleft','jailerstower-scorebar-onfire-borderright','jailerstower-scorebar-onfire-spark','jailerstower-scorebar-onfire-fill-filling','jailerstower-scorebar-onfire-bordertick','tormentors-boss','tormentors-event','spellbook-skilllinetab','128-redbutton-exit-highlight','tooltip-nineslice-center','tooltip-azerite-nineslice-cornerbottomleft','tooltip-azerite-nineslice-cornerbottomright','tooltip-azerite-nineslice-cornertopleft','tooltip-azerite-nineslice-cornertopright','_tooltip-azerite-nineslice-edgebottom','_tooltip-azerite-nineslice-edgetop','!tooltip-azerite-nineslice-edgeleft','!tooltip-azerite-nineslice-edgeright','tooltip-azerite-nineslice-center','tooltip-corrupted-nineslice-cornerbottomleft','tooltip-corrupted-nineslice-cornerbottomright','tooltip-corrupted-nineslice-cornertopleft','tooltip-corrupted-nineslice-cornertopright','_tooltip-corrupted-nineslice-edgebottom','_tooltip-corrupted-nineslice-edgetop','!tooltip-corrupted-nineslice-edgeleft','!tooltip-corrupted-nineslice-edgeright','tooltip-corrupted-nineslice-center','tooltip-maw-nineslice-cornerbottomleft','tooltip-maw-nineslice-cornerbottomright','tooltip-maw-nineslice-cornertopleft','tooltip-maw-nineslice-cornertopright','_tooltip-maw-nineslice-edgebottom','_tooltip-maw-nineslice-edgetop','!tooltip-maw-nineslice-edgeleft','!tooltip-maw-nineslice-edgeright','tooltip-maw-nineslice-center','friendship-parts-background','friendship-parts-bar','friendship-parts-circle','friendship-parts-divider','campaign_secretsofthefirstones','questbg-secretsofthefirstones','proglan-11','proglan-30','proglan-34','proglan-2','proglan-19','proglan-36','proglan-5','proglan-6','proglan-10','proglan-29','proglan-33','proglan-23','proglan-18','proglan-15','proglan-32','proglan-24','proglan-25','proglan-20','proglan-26','proglan-28','proglan-14','proglan-12','proglan-13','proglan-7','proglan-17','proglan-27','proglan-31','proglan-1','proglan-21','proglan-8','proglan-22','proglan-35','proglan-3','proglan-16','proglan-9','proglan-4','proglan-w-1','proglan-w-10','proglan-w-11','proglan-w-12','proglan-w-13','proglan-w-14','proglan-w-15','proglan-w-16','proglan-w-17','proglan-w-18','proglan-w-19','proglan-w-2','proglan-w-20','proglan-w-21','proglan-w-22','proglan-w-23','proglan-w-24','proglan-w-25','proglan-w-26','proglan-w-27','proglan-w-28','proglan-w-29','proglan-w-3','proglan-w-30','proglan-w-31','proglan-w-32','proglan-w-33','proglan-w-34','proglan-w-35','proglan-w-36','proglan-w-4','proglan-w-5','proglan-w-6','proglan-w-7','proglan-w-8','proglan-w-9','proglan-b-1','proglan-b-10','proglan-b-11','proglan-b-12','proglan-b-13','proglan-b-14','proglan-b-15','proglan-b-16','proglan-b-17','proglan-b-18','proglan-b-19','proglan-b-2','proglan-b-20','proglan-b-21','proglan-b-22','proglan-b-23','proglan-b-24','proglan-b-25','proglan-b-26','proglan-b-27','proglan-b-28','proglan-b-29','proglan-b-3','proglan-b-30','proglan-b-31','proglan-b-32','proglan-b-33','proglan-b-34','proglan-b-35','proglan-b-36','proglan-b-4','proglan-b-5','proglan-b-6','proglan-b-7','proglan-b-8','proglan-b-9','proglan-y-1','proglan-y-10','proglan-y-11','proglan-y-12','proglan-y-13','proglan-y-14','proglan-y-15','proglan-y-16','proglan-y-17','proglan-y-18','proglan-y-19','proglan-y-2','proglan-y-20','proglan-y-21','proglan-y-22','proglan-y-23','proglan-y-24','proglan-y-25','proglan-y-26','proglan-y-27','proglan-y-28','proglan-y-29','proglan-y-3','proglan-y-30','proglan-y-31','proglan-y-32','proglan-y-33','proglan-y-34','proglan-y-35','proglan-y-36','proglan-y-4','proglan-y-5','proglan-y-6','proglan-y-7','proglan-y-8','proglan-y-9','proglan-d-1','proglan-d-10','proglan-d-11','proglan-d-12','proglan-d-13','proglan-d-14','proglan-d-15','proglan-d-16','proglan-d-17','proglan-d-18','proglan-d-19','proglan-d-2','proglan-d-20','proglan-d-21','proglan-d-22','proglan-d-23','proglan-d-24','proglan-d-25','proglan-d-26','proglan-d-27','proglan-d-28','proglan-d-29','proglan-d-3','proglan-d-30','proglan-d-31','proglan-d-32','proglan-d-33','proglan-d-34','proglan-d-35','proglan-d-4','proglan-d-5','proglan-d-6','proglan-d-7','proglan-d-8','proglan-d-9','hud-backpack','charactercreate-customize-dropdown-newtagglow','groupfinder-icon-lock','gmchat-nineslice-cornerbottomleft','gmchat-nineslice-cornerbottomright','gmchat-nineslice-cornertopleft','gmchat-nineslice-cornertopright','_gmchat-nineslice-edgebottom','_gmchat-nineslice-edgetop','!gmchat-nineslice-edgeleft','!gmchat-nineslice-edgeright','cosmetictoast-background','gmchat-icon-alert','gmchat-icon-blizz','gmchat-icon-wow','gmglow-nineslice-cornerbottomleft','gmglow-nineslice-cornerbottomright','gmglow-nineslice-cornertopleft','gmglow-nineslice-cornertopright','_gmglow-nineslice-edgebottom','_gmglow-nineslice-edgetop','!gmglow-nineslice-edgeleft','!gmglow-nineslice-edgeright','dressingroom-button-appearancelist-down','dressingroom-button-appearancelist-up','dressingroom-itemborder-account','dressingroom-itemborder-artifact','dressingroom-itemborder-blue','dressingroom-itemborder-error','dressingroom-itemborder-gray','dressingroom-itemborder-green','dressingroom-itemborder-orange','dressingroom-itemborder-purple','dressingroom-itemborder-small-account','dressingroom-itemborder-small-artifact','dressingroom-itemborder-small-blue','dressingroom-itemborder-small-error','dressingroom-itemborder-small-gray','dressingroom-itemborder-small-green','dressingroom-itemborder-small-orange','dressingroom-itemborder-small-purple','dressingroom-itemborder-small-white','dressingroom-itemborder-white','dressingroom-sideframe','dressingroom-itemborder-small-uncollected','dressingroom-itemborder-uncollected','shop-card-full-915dragonbundle','itemupgrade_bottompanel-shadow','itemupgrade_bottompanel','itemupgrade_slotborder','itemupgrade_toppanel','store-card-transmog','itemupgrade_fx_framedecor_micafleckssheen','itemupgrade_fx_tooltip_goldflake','itemupgrade_fx_tooltip_overlay','itemupgrade_fx_framedecor_linemask','itemupgrade_fx_framedecor_micaflecksmask','legendaryscrapper-background','legendaryscrapper-glow','itemupgrade_totalcostbar','itemupgrade_fx_slotinnerglow','itemupgrade_greenplusicon','itemupgrade_greenplusicon_pressed','!itemupgrade_fx_framedecor_idleglow','shop-image-bundle-mbp1','shop-image-bundle-mbp2','clickcastlist-buttonbackground','clickcastlist-buttonhighlight','clickcastlist-buttonnew','clickcast-highlight-spellbook','clickcast-icon-mouse','sliderbar-button','shop-card-full-lunar180gametime','shop-card-full-lunar6subscription','tooltip_innerglow_mask_corner','item_upgrade_tooltip_fullmask','itemupgradetooltip-nineslice-corner','_itemupgradetooltip-nineslice-edgebottom','_itemupgradetooltip-nineslice-edgetop','!itemupgradetooltip-nineslice-edgeleft','!itemupgradetooltip-nineslice-edgeright','itemupgrade_helptiparrow','itemupgrade_fx_framedecor_ring','itemupgrade_fx_buttonglow','itemupgrade_fx_tooltip_confirmsheen','flightmaster_progenitor-taxi_frame_gray','flightmaster_progenitor-taxi_frame_green','flightmaster_progenitor-taxi_frame_yellow','flightmaster_progenitor-taxinode_neutral','progenitorflightmaster-32x32','clickcast-background-tutorial','dressingroom-itemborder-illusion','dressingroom-itemborder-small-illusion','shop-card-half-915celestialbundle','clickcast-icon-add','clickcast-highlight-binding','shop-count-ring','classicon-candlemancer','raceicon-dracthyr-female','raceicon-dracthyr-male','raceicon128-dracthyr-female','raceicon128-dracthyr-male','cyphertalents-background','shop-bundles-915-ate','shop-bundles-915-ath','shop-bundles-915-athe','shop-bundles-915-brb','shop-bundles-915-bre','shop-bundles-915-brh','shop-bundles-915-brn','shop-bundles-915-cba','shop-bundles-915-cbh','shop-bundles-915-cbi','shop-bundles-915-cbo','shop-bundles-915-nh','shop-bundles-915-tb','shop-bundles-915-tbe','shop-bundles-915-tbh','shop-bundles-915-te','shop-bundles-915-tecc','shop-bundles-915-th','shop-bundles-915-thcc','shop-bundles-915-the','splash-915-botleft','splash-915-right','splash-915-topleft','orderhalltalents-choice-talent-middle','orderhalltalents-choice-talent-side','orderhalltalents-choice-track-on','orderhalltalents-choice-track','cypher-customization-background','bastionanima-horizontal-bg','bastionanima-horizontal-fill','bastionanima-horizontal-flash','bastionanima-horizontal-spark','orderhalltalents-choice-prereq-highlight-glow','ui-frame-cypherchoice-cardparchment-style1','ui-frame-cypherchoice-cardparchment-style2','ui-frame-cypherchoice-cardparchment-style3','ui-frame-cypherchoice-fx-wisps','flightmaster_bastion-taxi_frame_special','ui-frame-cypherchoice-portrait-border','ui-frame-cypherchoice-portrait-qualityepic-border','ui-frame-cypherchoice-portrait-qualityrare-border','ui-frame-cypherchoice-portrait-qualityuncommon-border','ui-frame-cypherchoice-fx-bottomglow','ui-frame-cypherchoice-fx-pixels01','ui-frame-cypherchoice-fx-pixels02','ui-frame-cypherchoice-fx-glowmask','ui-frame-cypherchoice-fx-linemask','ui-frame-cypherchoice-hidebuttonhighlight','ui-frame-cypherchoice-hidebutton','ui-frame-cypherchoice-pendingbutton','ui-frame-cypherchoice-pendingbuttonhighlight','ui-frame-cypherchoice-countdownshadow','cypher-zone-ability-2','cypher-zone-ability','progenitor-extrabutton','ui-frame-cypherchoice-fx-lineglow','ui-frame-cypherchoice-pendingbuttonfxglow','ui-frame-cypherchoice-portrait-fx-goldglow','ui-frame-cypherchoice-pendingbuttonfxmask','warlockportal-yellow-32x32','perks-backbutton-disabled','perks-backbutton-down','perks-backbutton','perks-button-down','perks-button-up','perks-clock','perks-divider-short','perks-divider','perks-dropdown-clear','perks-dropdown-mouseover-side','perks-dropdownbox-hover','perks-dropdownbox-open','perks-dropdownbox','perks-hold-background','perks-hold-corner-bottom','perks-hold-corner-top','perks-hold-slot-corner','perks-hold-slot','perks-icon-rotate-left','perks-icon-rotate-right','perks-list-background','perks-list-corner','perks-nextbutton-disabled','perks-nextbutton-down','perks-nextbutton','perks-owned-large','perks-owned-small','perks-radio-background','perks-radio-dot','perks-tooltip-background','perks-tooltip-corner','perks-warning-large','perks-warning-small','perks-checkbox','perks-icon-checkmark','perks-forwardarrow','ui-frame-cypherchoice-portrait-fx-mask','minimal-scrollbar-arrow-bottom','minimal-scrollbar-arrow-top','minimal-scrollbar-thumb-bottom','minimal-scrollbar-thumb-top','minimal-scrollbar-track-bottom','minimal-scrollbar-track-top','!minimal-scrollbar-track-middle','!perks-hold-side-vertical','!perks-list-side-vertical','!perks-tooltip-side-vertical','_perks-dropdown-mouseover-middle','_perks-hold-side-horizontal','_perks-list-side-horizontal','_perks-tooltip-side-horizontal','minimal-scrollbar-arrow-bottom-down','minimal-scrollbar-arrow-bottom-over','minimal-scrollbar-arrow-top-down','minimal-scrollbar-arrow-top-over','minimal-scrollbar-thumb-bottom-down','minimal-scrollbar-thumb-bottom-over','minimal-scrollbar-thumb-top-down','minimal-scrollbar-thumb-top-over','dropdown-hover-arrow','dropdown-hover-left-cap','dropdown-hover-right-cap','dropdown-left-cap','dropdown-open-left-cap','dropdown-open-right-cap','dropdown-right-cap','_dropdown-hover-middle','_dropdown-middle','_dropdown-open-middle','cosmic-bar-runes-bg','widgetstatusbar-bgcenter','widgetstatusbar-bgleft','widgetstatusbar-bgright','widgetstatusbar-bordercenter','widgetstatusbar-borderleft','widgetstatusbar-borderright','widgetstatusbar-bordertick','widgetstatusbar-fill-blue','widgetstatusbar-fill-green','widgetstatusbar-fill-red','widgetstatusbar-fill-white','widgetstatusbar-fill-yellow','widgetstatusbar-glowcenter','widgetstatusbar-glowleft','widgetstatusbar-glowright','widgetstatusbar-spark','perks-gradient-orgrimmar-left','perks-gradient-orgrimmar-right','perks-gradient-stormwind-left','perks-gradient-stormwind-right','cyphersetupgrade-arrow-empty','cyphersetupgrade-arrow-full','cyphersetupgrade-background','cyphersetupgrade-leftitem-border-empty','cyphersetupgrade-leftitem-border-full','cyphersetupgrade-rightitem-border-empty','cyphersetupgrade-rightitem-border-full','flightmaster_progenitorobelisk-taxi_frame_gray','flightmaster_progenitorobelisk-taxi_frame_green','flightmaster_progenitorobelisk-taxi_frame_yellow','creationcatalyst-32x32','flightmaster_progenitorobelisk-taxinode_neutral','flightmaster_progenitorobelisk-taxi_frame_special','cosmic-bar-bgcenter','cosmic-bar-bgleft','cosmic-bar-bgright','cosmic-bar-bordercenter','cosmic-bar-borderleft','cosmic-bar-borderright','cosmic-bar-bordertick-flash','cosmic-bar-bordertick-full','cosmic-bar-bordertick','cosmic-bar-fill-white','cosmic-bar-spark','generic-extrabutton','cyphersetupgrade-leftitem-slotinnerglow','friendslist-invitebutton-alliance-disabled','friendslist-invitebutton-alliance-normal','friendslist-invitebutton-alliance-pressed','friendslist-invitebutton-default-disabled','friendslist-invitebutton-default-normal','friendslist-invitebutton-default-pressed','friendslist-invitebutton-highlight','friendslist-invitebutton-horde-disabled','friendslist-invitebutton-horde-normal','friendslist-invitebutton-horde-pressed','professions-icon-quality-tier2','professions-icon-quality-tier3','professions-icon-quality-tier1','professions-icon-quality-tier1-small','professions-icon-quality-tier2-small','professions-icon-quality-tier3-small','raceicon-visage-female','raceicon-visage-male','raceicon128-visage-female','raceicon128-visage-male','splash-920-botleft','splash-920-right','splash-920-topleft','splash-9202-botleft','splash-9202-topleft','professions-icon-quality-mixed','professions-icon-quality-tier4','professions-icon-quality-tier5','cyphersetupgrade-portrait','perks-list-active','perks-list-hover','splash-9202-right','perks-mount-shadow','perks-char-shadow','cosmic-bar-spark-mask','common-button-dropdown-closed','common-button-dropdown-closedpressed','common-button-dropdown-open','common-button-dropdown-openpressed','cursor_point_128','cursor_point_32','cursor_point_48','cursor_point_64','cursor_point_96','cursor_unablepoint_128','cursor_unablepoint_32','cursor_unablepoint_48','cursor_unablepoint_64','cursor_unablepoint_96','reportlist-buttonselect','communities-icon-faction-alliance','communities-icon-faction-horde','ui-castingbar-background','ui-castingbar-filling-applyingcrafting','ui-castingbar-filling-channel','ui-castingbar-filling-standard','ui-castingbar-frame','ui-castingbar-full-applyingcrafting','ui-castingbar-full-channel','ui-castingbar-full-glow-applyingcrafting','ui-castingbar-full-glow-channel','ui-castingbar-full-glow-standard','ui-castingbar-full-standard','ui-castingbar-interrupted','ui-castingbar-pip','ui-castingbar-shield','ui-castingbar-uninterruptable','ui-castingbar-background-2x','ui-castingbar-filling-applyingcrafting-2x','ui-castingbar-filling-channel-2x','ui-castingbar-filling-standard-2x','ui-castingbar-frame-2x','ui-castingbar-full-applyingcrafting-2x','ui-castingbar-full-channel-2x','ui-castingbar-full-glow-applyingcrafting-2x','ui-castingbar-full-glow-channel-2x','ui-castingbar-full-glow-standard-2x','ui-castingbar-full-standard-2x','ui-castingbar-interrupted-2x','ui-castingbar-pip-2x','ui-castingbar-shield-2x','ui-castingbar-uninterruptable-2x','ui-castingbar-textbox-2x','ui-castingbar-textbox','professions-icon-quality-tier5_small','professions-icon-quality-tier4-small','ui-ej-icon-empoweredraid-large','ui-ej-icon-empoweredraid-small','shop-card-full-m64','shop-card-full-m68','charactercreate-icon-customize-mirror-selected','charactercreate-icon-customize-mirror','gmchat-watermark-blizzard','raceicon128-dracthyrvisage-female','raceicon128-dracthyrvisage-male','raceicon-dracthyrvisage-female','raceicon-dracthyrvisage-male','creditsscreen-keyart-9','creditsscreen-background-9','worldquest-icon-empoweredraid','cast_crafting_linetexturemask','splash-925-topleft','splash-925-right','splash-9252-topleft','splash-9252-botleft','splash-925-botleft','editmode-actionbar-highlight-nineslice-corner','_editmode-actionbar-highlight-nineslice-edgebottom','_editmode-actionbar-highlight-nineslice-edgetop','!editmode-actionbar-highlight-nineslice-edgeleft','!editmode-actionbar-highlight-nineslice-edgeright','cast_channel_pipshadow','cast_channel_sparkles_01','cast_channel_sparkles_02','cast_channel_wispglow','cast_crafting_pipglow','cast_crafting_shinewipe','cast_empowered_flakess01','cast_empowered_flakess02','cast_empowered_flakess03','cast_empowered_outerglow','cast_interrupt_outerglow','cast_standard_flakes01','cast_standard_flakes02','cast_standard_flakes03','cast_standard_glowline','cast_standard_pipglow','channel_wispglow2','cast_standard_flipbook02','cast_standard_linetexturemask','cast_standard_barmask','cast_channel_wispmask','splash-9252-right','minimal-scrollbar-thumb-middle-down','minimal-scrollbar-thumb-middle-over','minimal-scrollbar-thumb-middle','professions-icon-quality-mixed-small','editmode-actionbar-highlight-nineslice-center','editmode-actionbar-selected-nineslice-center','ui-chaticon-app','ui-chaticon-rtro','ui-chaticon-vipr','ui-chaticon-zeus','ui-chaticon-lazr','ui-chaticon-callofdutymwicon','ui-chaticon-fore','ui-chaticon-wlby','ui-chaticon-d3','ui-chaticon-dst2','ui-chaticon-osi','ui-chaticon-diabloimmortal','ui-chaticon-hero','ui-chaticon-s1','ui-chaticon-s2','ui-chaticon-warcraft3reforged','ui-chaticon-gry','ui-chaticon-wow','ui-chaticon-wtcg','battlenet-clienticon-app','battlenet-clienticon-rtro','battlenet-clienticon-vipr','battlenet-clienticon-zeus','battlenet-clienticon-lazr','battlenet-callofdutymwicon','battlenet-callofdutyvanguardicon','battlenet-clienticon-wlby','battlenet-clienticon-d3','battlenet-clienticon-dst2','battlenet-clienticon-osi','battlenet-diabloimmortalicon','battlenet-clienticon-hero','battlenet-clienticon-s2','battlenet-clienticon-s1','battlenet-warcraft3reforged','battlenet-clienticon-gry','battlenet-clienticon-wow','battlenet-clienticon-wtcg','cast_standard_lineglow','options_categoryheader_1','options_categoryheader_2','options_categoryheader_3','options_horizontaldivider','options_list_active','options_list_hover','options_innerframe','minimal_sliderbar_button','minimal_sliderbar_button_left','minimal_sliderbar_button_right','minimal_sliderbar_left','minimal_sliderbar_right','_minimal_sliderbar_middle','options_listexpand_left','options_listexpand_right','options_listexpand_right_expanded','_options_listexpand_middle','minimap_mail_flipbook','options_tab_active_left','options_tab_active_right','options_tab_left','options_tab_right','options_tab_active_middle','options_tab_middle','common-icon-checkmark-yellow','ui-hud-actionbar-frame-divider-borderbottom','ui-hud-actionbar-frame-divider-bordertop','ui-hud-actionbar-frame-nineslice-cornerbottomleft','ui-hud-actionbar-frame-nineslice-cornerbottomright','ui-hud-actionbar-frame-nineslice-cornertopleft','ui-hud-actionbar-frame-nineslice-cornertopright','_ui-hud-actionbar-frame-nineslice-edgebottom','_ui-hud-actionbar-frame-nineslice-edgetop','!ui-hud-actionbar-frame-divider-bordercenter','!ui-hud-actionbar-frame-nineslice-edgeleft','!ui-hud-actionbar-frame-nineslice-edgeright','checkbox-minimal','checkmark-minimal-disabled','checkmark-minimal','ui-hud-actionbar-frame-background-nineslice-center','ui-hud-actionbar-frame-background-nineslice-cornerbottomleft','ui-hud-actionbar-frame-background-nineslice-cornerbottomright','ui-hud-actionbar-frame-background-nineslice-cornertopleft','ui-hud-actionbar-frame-background-nineslice-cornertopright','ui-hud-actionbar-gryphon-left','ui-hud-actionbar-gryphon-right','ui-hud-actionbar-wyvern-left','ui-hud-actionbar-wyvern-right','_ui-hud-actionbar-frame-background-nineslice-edgebottom','_ui-hud-actionbar-frame-background-nineslice-edgetop','!ui-hud-actionbar-frame-background-nineslice-edgeleft','!ui-hud-actionbar-frame-background-nineslice-edgeright','ui-hud-actionbar-frame-divider-borderbottom-2x','ui-hud-actionbar-frame-divider-bordertop-2x','ui-hud-actionbar-frame-nineslice-cornerbottomleft-2x','ui-hud-actionbar-frame-nineslice-cornerbottomright-2x','ui-hud-actionbar-frame-nineslice-cornertopleft-2x','ui-hud-actionbar-frame-nineslice-cornertopright-2x','ui-hud-actionbar-gryphon-left-2x','ui-hud-actionbar-gryphon-right-2x','ui-hud-actionbar-wyvern-left-2x','ui-hud-actionbar-wyvern-right-2x','_ui-hud-actionbar-frame-nineslice-edgebottom-2x','_ui-hud-actionbar-frame-nineslice-edgetop-2x','!ui-hud-actionbar-frame-divider-bordercenter-2x','!ui-hud-actionbar-frame-nineslice-edgeleft-2x','!ui-hud-actionbar-frame-nineslice-edgeright-2x','groupfinder-eye-flipbook-searching','ui-hud-minimap-button-down-nineslice-cornerbottomleft','ui-hud-minimap-button-down-nineslice-cornerbottomright','ui-hud-minimap-button-down-nineslice-cornertopleft','ui-hud-minimap-button-down-nineslice-cornertopright','ui-hud-minimap-button-down','ui-hud-minimap-button-nineslice-cornerbottomleft','ui-hud-minimap-button-nineslice-cornerbottomright','ui-hud-minimap-button-nineslice-cornertopleft','ui-hud-minimap-button-nineslice-cornertopright','ui-hud-minimap-button','ui-hud-minimap-frame','ui-hud-minimap-mail-down','ui-hud-minimap-mail-mouseover','ui-hud-minimap-mail-up','ui-hud-minimap-tracking-down','ui-hud-minimap-tracking-mouseover','ui-hud-minimap-tracking-up','_ui-hud-minimap-button-down-nineslice-edgebottom','_ui-hud-minimap-button-down-nineslice-edgetop','_ui-hud-minimap-button-nineslice-edgebottom','_ui-hud-minimap-button-nineslice-edgetop','!ui-hud-minimap-button-down-nineslice-edgeleft','!ui-hud-minimap-button-down-nineslice-edgeright','!ui-hud-minimap-button-nineslice-edgeleft','!ui-hud-minimap-button-nineslice-edgeright','ui-hud-minimap-button-nineslice-center','ui-hud-minimap-button-down-nineslice-center','ui-hud-calendar-1-down','ui-hud-calendar-1-mouseover','ui-hud-calendar-1-up','ui-hud-calendar-10-down','ui-hud-calendar-10-mouseover','ui-hud-calendar-10-up','ui-hud-calendar-11-down','ui-hud-calendar-11-mouseover','ui-hud-calendar-11-up','ui-hud-calendar-12-down','ui-hud-calendar-12-mouseover','ui-hud-calendar-12-up','ui-hud-calendar-13-down','ui-hud-calendar-13-mouseover','ui-hud-calendar-13-up','ui-hud-calendar-14-down','ui-hud-calendar-14-mouseover','ui-hud-calendar-14-up','ui-hud-calendar-15-down','ui-hud-calendar-15-mouseover','ui-hud-calendar-15-up','ui-hud-calendar-16-down','ui-hud-calendar-16-mouseover','ui-hud-calendar-16-up','ui-hud-calendar-17-down','ui-hud-calendar-17-mouseover','ui-hud-calendar-17-up','ui-hud-calendar-18-down','ui-hud-calendar-18-mouseover','ui-hud-calendar-18-up','ui-hud-calendar-19-down','ui-hud-calendar-19-mouseover','ui-hud-calendar-19-up','ui-hud-calendar-2-down','ui-hud-calendar-2-mouseover','ui-hud-calendar-2-up','ui-hud-calendar-20-down','ui-hud-calendar-20-mouseover','ui-hud-calendar-20-up','ui-hud-calendar-21-down','ui-hud-calendar-21-mouseover','ui-hud-calendar-21-up','ui-hud-calendar-22-down','ui-hud-calendar-22-mouseover','ui-hud-calendar-22-up','ui-hud-calendar-23-down','ui-hud-calendar-23-mouseover','ui-hud-calendar-23-up','ui-hud-calendar-24-down','ui-hud-calendar-24-mouseover','ui-hud-calendar-24-up','ui-hud-calendar-25-down','ui-hud-calendar-25-mouseover','ui-hud-calendar-25-up','ui-hud-calendar-26-down','ui-hud-calendar-26-mouseover','ui-hud-calendar-26-up','ui-hud-calendar-27-down','ui-hud-calendar-27-mouseover','ui-hud-calendar-27-up','ui-hud-calendar-28-down','ui-hud-calendar-28-mouseover','ui-hud-calendar-28-up','ui-hud-calendar-29-down','ui-hud-calendar-29-mouseover','ui-hud-calendar-29-up','ui-hud-calendar-3-down','ui-hud-calendar-3-mouseover','ui-hud-calendar-3-up','ui-hud-calendar-30-down','ui-hud-calendar-30-mouseover','ui-hud-calendar-30-up','ui-hud-calendar-31-down','ui-hud-calendar-31-mouseover','ui-hud-calendar-31-up','ui-hud-calendar-4-down','ui-hud-calendar-4-mouseover','ui-hud-calendar-4-up','ui-hud-calendar-5-down','ui-hud-calendar-5-mouseover','ui-hud-calendar-5-up','ui-hud-calendar-6-down','ui-hud-calendar-6-mouseover','ui-hud-calendar-6-up','ui-hud-calendar-7-down','ui-hud-calendar-7-mouseover','ui-hud-calendar-7-up','ui-hud-calendar-8-down','ui-hud-calendar-8-mouseover','ui-hud-calendar-8-up','ui-hud-calendar-9-down','ui-hud-calendar-9-mouseover','ui-hud-calendar-9-up','ui-hud-minimap-button-2x','ui-hud-minimap-button-down-2x','ui-hud-minimap-button-down-nineslice-cornerbottomleft-2x','ui-hud-minimap-button-down-nineslice-cornerbottomright-2x','ui-hud-minimap-button-down-nineslice-cornertopleft-2x','ui-hud-minimap-button-down-nineslice-cornertopright-2x','ui-hud-minimap-button-nineslice-cornerbottomleft-2x','ui-hud-minimap-button-nineslice-cornerbottomright-2x','ui-hud-minimap-button-nineslice-cornertopleft-2x','ui-hud-minimap-button-nineslice-cornertopright-2x','ui-hud-minimap-frame-2x','ui-hud-minimap-mail-down-2x','ui-hud-minimap-mail-mouseover-2x','ui-hud-minimap-mail-up-2x','ui-hud-minimap-tracking-down-2x','ui-hud-minimap-tracking-mouseover-2x','ui-hud-minimap-tracking-up-2x','_ui-hud-minimap-button-down-nineslice-edgebottom-2x','_ui-hud-minimap-button-down-nineslice-edgetop-2x','_ui-hud-minimap-button-nineslice-edgebottom-2x','_ui-hud-minimap-button-nineslice-edgetop-2x','ui-hud-minimap-button-nineslice-center-2x','ui-hud-minimap-button-down-nineslice-center-2x','!ui-hud-minimap-button-down-nineslice-edgeleft-2x','!ui-hud-minimap-button-down-nineslice-edgeright-2x','!ui-hud-minimap-button-nineslice-edgeleft-2x','!ui-hud-minimap-button-nineslice-edgeright-2x','ui-hud-actionbar-flyout-down','ui-hud-actionbar-flyout-mouseover','ui-hud-actionbar-flyout','ui-hud-actionbar-pagedownarrow-down','ui-hud-actionbar-pagedownarrow-mouseover','ui-hud-actionbar-pagedownarrow-up','ui-hud-actionbar-pageuparrow-down','ui-hud-actionbar-pageuparrow-mouseover','ui-hud-actionbar-pageuparrow-up','ui-hud-actionbar-pagedownarrow-down-2x','ui-hud-actionbar-pagedownarrow-mouseover-2x','ui-hud-actionbar-pagedownarrow-up-2x','ui-hud-actionbar-pageuparrow-down-2x','ui-hud-actionbar-pageuparrow-mouseover-2x','ui-hud-actionbar-pageuparrow-up-2x','groupfinder-eye-flipbook-mouseover','groupfinder-eye-flipbook-initial','groupfinder-eye-flipbook-poke-initial','groupfinder-eye-flipbook-poke-loop','groupfinder-eye-flipbook-poke-end','ui-hud-minimap-frame-mask','ui-hud-minimap-frame-mask-2x','ui-hud-minimap-zoom-in','ui-hud-minimap-zoom-out','ui-hud-minimap-zoom-in-2x','ui-hud-minimap-zoom-out-2x','questbg-skinning','questbg-tailoring','ui-hud-minimap-arrow-guard','ui-hud-minimap-arrow-player','ui-hud-minimap-arrow-questtracking','ui-hud-minimap-arrow-vignettes','ui-hud-minimap-arrow-guard-2x','ui-hud-minimap-arrow-player-2x','ui-hud-minimap-arrow-questtracking-2x','ui-hud-minimap-arrow-vignettes-2x','questbg-alchemy','questbg-blacksmithing','questbg-cooking','questbg-enchanting','questbg-engineering','questbg-fishing','questbg-herbalism','questbg-inscription','questbg-jewelcrafting','questbg-leatherworking','questbg-mining','groupfinder-eye-flipbook-foundfx','groupfinder-eye-flipbook-found-initial','groupfinder-eye-flipbook-found-loop','ui-hud-actionbar-pagedownarrow-disabled','ui-hud-actionbar-pageuparrow-disabled','ui-hud-actionbar-pagedownarrow-disabled-2x','ui-hud-actionbar-pageuparrow-disabled-2x','ui-hud-actionbar-iconframe-slot','ui-hud-actionbar-iconframe-slot-2x','groupfinder-eye-backglow','groupfinder-eye-circshine','groupfinder-eye-frontglow','charactercreate-icon-customize-speechbubble-selected','charactercreate-icon-customize-speechbubble','charactercreate-customize-playbutton-down','charactercreate-customize-playbutton','charactercreate-customize-speakeroffbutton-down','charactercreate-customize-speakeroffbutton','charactercreate-customize-speakeronbutton-down','charactercreate-customize-speakeronbutton','charactercreate-customize-button-redglow','cursor_campaignquestturnin_128','cursor_campaignquestturnin_32','cursor_campaignquestturnin_48','cursor_campaignquestturnin_64','cursor_campaignquestturnin_96','cursor_campaignquest_128','cursor_campaignquest_32','cursor_campaignquest_48','cursor_campaignquest_64','cursor_campaignquest_96','cursor_unablecampaignquestturnin_128','cursor_unablecampaignquestturnin_32','cursor_unablecampaignquestturnin_48','cursor_unablecampaignquestturnin_64','cursor_unablecampaignquestturnin_96','cursor_unablecampaignquest_128','cursor_unablecampaignquest_32','cursor_unablecampaignquest_48','cursor_unablecampaignquest_64','cursor_unablecampaignquest_96','professions-qualitybar-bg','professions-qualitybar-frame','professions-qualitybar-marker','professions-slot-bg','professions-slot-frame','professions-slot-plus-over','professions-qualitypane-bg-bottom','professions-qualitypane-divider','professions-slot-plus','actionbar_proc_internalmask','professions-background-summarylist','casting_mask','casting_complete_mask','professions-recipe-background-blacksmithing','professions-recipe-background-alchemy','spec-dividerline','spec-role-dps','spec-role-heal','spec-role-tank','spec-sampleabilityring','spec-selected-background1','spec-selected-background2','spec-selected-background3','spec-selected-background4','spec-selected-background5','spec-thumbnailborder-off','spec-thumbnailborder-on','spec-thumbnail-deathknight-blood','spec-thumbnail-deathknight-frost','spec-thumbnail-deathknight-unholy','spec-thumbnail-demonhunter-havoc','spec-thumbnail-demonhunter-vengeance','spec-thumbnail-druid-balance','spec-thumbnail-druid-feral','spec-thumbnail-druid-guardian','spec-thumbnail-druid-restoration','spec-thumbnail-evoker-devastation','spec-thumbnail-hunter-beastmastery','spec-thumbnail-hunter-marksmanship','spec-thumbnail-hunter-survival','spec-thumbnail-mage-arcane','spec-thumbnail-mage-fire','spec-thumbnail-mage-frost','spec-thumbnail-monk-brewmaster','spec-thumbnail-monk-mistweaver','spec-thumbnail-monk-windwalker','spec-thumbnail-paladin-holy','spec-thumbnail-paladin-protection','spec-thumbnail-paladin-retribution','spec-thumbnail-priest-discipline','spec-thumbnail-priest-holy','spec-thumbnail-priest-shadow','spec-thumbnail-rogue-assassination','spec-thumbnail-rogue-outlaw','spec-thumbnail-rogue-subtlety','spec-thumbnail-shaman-elemental','spec-thumbnail-shaman-enhancement','spec-thumbnail-shaman-restoration','spec-thumbnail-warlock-affliction','spec-thumbnail-warlock-demonology','spec-thumbnail-warlock-destruction','spec-thumbnail-warrior-arms','spec-thumbnail-warrior-fury','spec-thumbnail-warrior-protection','spec-columndivider','professions-qualitypane-bg-middle','professions-skillbar-bg','professions-skillbar-frame','professions-skillbar-mask','professionsshadow-threeslice-center','professionsshadow-threeslice-edgeleft','professionsshadow-threeslice-edgeright','professions_qualitybar_outerglow','ui-hud-actionbar-iconframe-addrow','ui-hud-actionbar-iconframe-down','ui-hud-actionbar-iconframe-flash','ui-hud-actionbar-iconframe-flyoutbordershadow','ui-hud-actionbar-iconframe-mouseover','ui-hud-actionbar-iconframe','ui-hud-actionbar-iconframe-2x','ui-hud-actionbar-iconframe-addrow-2x','ui-hud-actionbar-iconframe-down-2x','ui-hud-actionbar-iconframe-flash-2x','ui-hud-actionbar-iconframe-flyoutbordershadow-2x','ui-hud-actionbar-iconframe-mouseover-2x','cursor_item_128','cursor_item_32','cursor_item_48','cursor_item_64','cursor_item_96','professions-recipe-background-tailoring','vignetteloot-locked','vignettelootelite-locked','ui-hud-actionbar-iconframe-mask','ui-hud-actionbar-iconframe-border','ui-hud-actionbar-iconframe-border-2x','ui-hud-actionbar-iconframe-flyoutbutton','ui-hud-actionbar-iconframe-flyoutbutton-2x','_ui-hud-actionbar-iconframe-flyoutmidleft-2x','!ui-hud-actionbar-iconframe-flyoutmid-2x','groupfinder-eye-frame','professions-recipe-divider','groupfinder-eye-single','talents-background-deathknight-blood','talents-background-deathknight-frost','talents-background-deathknight-unholy','talents-background-demonhunter-havoc','talents-background-demonhunter-vengeance','talents-background-druid-balance','talents-background-druid-feral','talents-background-druid-guardian','talents-background-druid-restoration','talents-background-evoker-devastation','talents-background-evoker-preservation','talents-background-hunter-beastmastery','talents-background-hunter-marksmanship','talents-background-hunter-survival','talents-background-mage-arcane','talents-background-mage-fire','talents-background-mage-frost','talents-background-monk-brewmaster','talents-background-monk-mistweaver','talents-background-monk-windwalker','talents-background-paladin-holy','talents-background-paladin-protection','talents-background-paladin-retribution','talents-background-priest-discipline','talents-background-priest-holy','talents-background-priest-shadow','talents-background-rogue-assassination','talents-background-rogue-outlaw','talents-background-rogue-subtlety','talents-background-shaman-elemental','talents-background-shaman-enhancement','talents-background-shaman-restoration','talents-background-warlock-affliction','talents-background-warlock-demonology','talents-background-warlock-destruction','talents-background-warrior-arms','talents-background-warrior-fury','talents-background-warrior-protection','talents-background-bottombar','talents-button-reset','talents-button-undo','talents-gate','talents-node-choice-gray','talents-node-choice-green','talents-node-choice-locked','talents-node-choice-shadow','talents-node-choice-yellow','talents-node-circle-gray','talents-node-circle-green','talents-node-circle-locked','talents-node-circle-shadow','talents-node-circle-yellow','talents-node-pvp-filled','talents-node-pvp-green','talents-node-pvp-locked','talents-node-pvp-shadow','talents-node-square-gray','talents-node-square-green','talents-node-square-locked','talents-node-square-shadow','talents-node-square-yellow','talents-warmode-indent','talents-warmode-ring-disabled','talents-warmode-ring','professions-slot-frame-blue','professions-slot-frame-epic','professions-slot-frame-green','professions-slot-frame-legendary','ui-hud-unitframe-player-portraitoff-bar-health','ui-hud-unitframe-player-portraitoff-bar-mana','ui-hud-unitframe-player-portraitoff','ui-hud-unitframe-player-portraiton-bar-health','ui-hud-unitframe-player-portraiton-bar-mana','ui-hud-unitframe-player-portraiton','ui-hud-unitframe-target-portraiton-bar-health','ui-hud-unitframe-target-portraiton-bar-mana','ui-hud-unitframe-target-portraiton','ui-hud-unitframe-targetoftarget-portraiton-bar-health','ui-hud-unitframe-targetoftarget-portraiton-bar-mana','ui-hud-unitframe-targetoftarget-portraiton','talents-arrow-head-gray','talents-arrow-head-locked','talents-arrow-head-yellow','talents-node-circle-mask','talents-node-choice-mask','spec-thumbnail-evoker-preservation','campaign_azurespan','campaign_dracthyrawaken','campaign_dragonflight','campaign_ohnplains','campaign_thaldraszus','campaign_walkingshore','talents-node-choice-greenglow','talents-node-circle-greenglow','talents-node-square-greenglow','questbg-walkingshore','questbg-ohnplains','questbg-azurespan','questbg-dracthyrawaken','questbg-thaldraszus','questbg-dragonflight','dragonriding-barbershop-icon-drake','dragonriding-barbershop-icon-protodrake','dragonriding-barbershop-icon-pterrodax','dragonriding-barbershop-icon-wyvernspirit','talents-arrow-line-gray','talents-arrow-line-locked','talents-arrow-line-yellow','uf-essence-bg-active','uf-essence-bg','uf-essence-flipbook-deplete','uf-essence-flipbook-fill-a','uf-essence-flipbook-fx-circ','uf-essence-fx-burst','uf-essence-fx-depletedbg','uf-essence-fx-depsmoke','uf-essence-fx-rimglw','uf-essence-fx-rimglwdep','uf-essence-fx-rimshine','uf-essence-icon-active','uf-essence-icon-dep','uf-essence-icon-glw','uf-essence-icon-prog','uf-essence-icon-progb','uf-essence-icon-progc','uf-essence-icon-progd','uf-essence-icon','uf-essence-spin-outbg','uf-essence-spin-star1','uf-essence-spin-star2','uf-essence-spin-stars','uf-essence-spinner','uf-essence-spinnerin','uf-essence-spinnerout','uf-essence-timerspin-trail','uf-essence-timerspin','uf-essence-bg-2x','uf-essence-bg-active-2x','uf-essence-flipbook-deplete-2x','uf-essence-flipbook-fill-a-2x','uf-essence-flipbook-fx-circ-2x','uf-essence-fx-burst-2x','uf-essence-fx-depletedbg-2x','uf-essence-fx-depsmoke-2x','uf-essence-fx-rimglw-2x','uf-essence-fx-rimglwdep-2x','uf-essence-fx-rimshine-2x','uf-essence-icon-2x','uf-essence-icon-active-2x','uf-essence-icon-dep-2x','uf-essence-icon-glw-2x','uf-essence-icon-prog-2x','uf-essence-icon-progb-2x','uf-essence-icon-progc-2x','uf-essence-icon-progd-2x','uf-essence-spin-outbg-2x','uf-essence-spin-star1-2x','uf-essence-spin-star2-2x','uf-essence-spin-stars-2x','uf-essence-spinner-2x','uf-essence-spinnerout-2x','uf-essence-timerspin-2x','uf-essence-timerspin-trail-2x','talents-node-choiceflyout-mask','talents-pvpflyout-background-bottom','talents-pvpflyout-background-middle','talents-pvpflyout-background-top','talents-pvpflyout-rowhighlight','talents-node-pvpflyout-green','talents-node-pvpflyout-yellow','talents-node-pvpflyout-yellow-dimmed','ui-hud-minimap-arrow-corpse','ui-hud-minimap-arrow-genericdistantpoi','ui-hud-minimap-arrow-group','ui-hud-minimap-arrow-corpse-2x','ui-hud-minimap-arrow-genericdistantpoi-2x','ui-hud-minimap-arrow-group-2x','ui-hud-minimap-zoom-in-down-2x','ui-hud-minimap-zoom-out-down-2x','ui-hud-minimap-zoom-in-mouseover-2x','ui-hud-minimap-zoom-out-mouseover-2x','ui-hud-minimap-zoom-in-down','ui-hud-minimap-zoom-in-mouseover','ui-hud-minimap-zoom-out-down','ui-hud-minimap-zoom-out-mouseover','talents-node-choice-mask-half','ui-hud-unitframe-target-minusmob-portraiton-bar-health','ui-hud-unitframe-target-minusmob-portraiton','ui-hud-actionbar-iconframe-flyoutbottom','ui-hud-actionbar-iconframe-flyoutbottom-2x','ui-hud-actionbar-frame-divider-threeslice-edgeleft','ui-hud-actionbar-frame-divider-threeslice-edgeright','_ui-hud-actionbar-frame-divider-threeslice-center','_ui-hud-actionbar-iconframe-flyoutmidleft','!ui-hud-actionbar-iconframe-flyoutmid','talents-node-choiceflyout-circle-gray','talents-node-choiceflyout-circle-green','talents-node-choiceflyout-circle-locked','talents-node-choiceflyout-circle-yellow','talents-node-choiceflyout-square-gray','talents-node-choiceflyout-square-green','talents-node-choiceflyout-square-locked','talents-node-choiceflyout-square-yellow','talents-node-choiceflyout-circle-shadow','talents-node-choiceflyout-square-shadow','ui-hud-unitframe-player-rest-flipbook','professions-recipe-background','charactercreate-icon-requiredarrow','editmode-actionbar-selected-nineslice-corner','_editmode-actionbar-selected-nineslice-edgebottom','_editmode-actionbar-selected-nineslice-edgetop','!editmode-actionbar-selected-nineslice-edgeleft','!editmode-actionbar-selected-nineslice-edgeright','professions-recipe-background-cooking','editmode-down-arrow','editmode-up-arrow','majorfactions_icons_centaur512','majorfactions_icons_expedition512','majorfactions_icons_tuskarr512','majorfactions_icons_valdrakken512','majorfactions_mapicons_centaur64','majorfactions_mapicons_expedition64','majorfactions_mapicons_tuskarr64','majorfactions_mapicons_valdrakken64','quickkeybind-actionbar-iconframe-glow','quickkeybind-actionbar-pagearrow-glow','quickkeybind-microbar-iconframe-glow','dragonriding-barbershop-icon-category-body1','dragonriding-barbershop-icon-category-body1selected','dragonriding-barbershop-icon-category-body2','dragonriding-barbershop-icon-category-body2selected','dragonriding-barbershop-icon-category-head','dragonriding-barbershop-icon-category-headselected','talents-node-choice-ghost','talents-node-circle-ghost','talents-node-square-ghost','talents-arrow-line-ghost','ui-hud-actionbar-iconframe-flyoutbottomleft','ui-hud-actionbar-iconframe-flyoutbuttonleft','ui-hud-actionbar-iconframe-flyoutbottomleft-2x','ui-hud-actionbar-iconframe-flyoutbuttonleft-2x','professions-qualitypane-bg-top','professions-recipe-header-collapse','professions-recipe-header-expand','professions-recipe-header-left','professions-recipe-header-middle','professions-recipe-header-right','professions-icon-skill-high','professions-icon-skill-low','professions-icon-skill-medium','dial_edgeshinemask','ui-hud-actionbar-flyout-2x','ui-hud-actionbar-flyout-down-2x','ui-hud-actionbar-flyout-mouseover-2x','ui-hud-actionbar-frame-divider-threeslice-edgeleft-2x','ui-hud-actionbar-frame-divider-threeslice-edgeright-2x','_ui-hud-actionbar-frame-divider-threeslice-center-2x','professions_recipe_active','professions_recipe_hover','ui-hud-actionbar-iconframe-addrow-down','ui-hud-actionbar-iconframe-addrow-down-2x','ui-hud-unitframe-target-portraiton-bar-health-mask','ui-hud-unitframe-target-portraiton-bar-mana-mask','specdial_center_innerring','specdial_center_outerring','specdial_center_outerringtitanline','specdial_center_shadow','specdial_divider','specdial_edgeshine','specdial_firstpip_empty','specdial_lastpip_borderglow','specdial_lastpip_empty','specdial_outer_base','specdial_outer_titanlinering','specdial_outer_titanlines','specdial_outer_top','specdial_pip_borderglow','specdial_pip_empty','specdial_titanlineglow','ui-hud-unitframe-player-portrait-mask','specdial_endpip_flipbook_blacksmithing','specdial_pip_flipbook_blacksmithing','specdial_titanlinemask','ui-hud-actionbar-iconframe-background','qualitybar_mockup_flare','editmode-new-layout-plus-disabled','editmode-new-layout-plus','ui-hud-unitframe-player-group-guideicon','ui-hud-unitframe-player-group-leadericon','specdial_dividerglow_blacksmithing','ui-hud-unitframe-target-portraiton-type','specdial_fillmask','specdial_fill_flipbook_blacksmithing','skillbar_fill_flipbook_blacksmithing','talents-search-exactmatch','talents-search-match','talents-search-relatedmatch','talents-search-suggestion-itemborder','talents-search-suggestion-magnifyingglass','talents-node-pvp-inspect-empty','talents-node-pvp-inspect','quest-campaign-available-trivial','bag-arrow-2x','bag-border-2x','bag-border-empty-2x','bag-main-2x','bag-reagent-border-2x','bag-reagent-border-empty-2x','looting_itemcard_bg','looting_itemcard_highlightstate','looting_itemcard_stroke_clickstate','looting_itemcard_stroke_normal','looting_raritytag_frame','ui-hud-unitframe-player-portraiton-cornerembellishment','ui-hud-unitframe-player-portraiton-status','skillbar_fill_flipbook_enchanting','specdial_dividerglow_enchanting','specdial_endpip_flipbook_enchanting','specdial_pip_flipbook_enchanting','specdial_fill_flipbook_enchanting','skillbar_fill_flipbook_tailoring','specdial_dividerglow_tailoring','specdial_endpip_flipbook_tailoring','specdial_pip_flipbook_tailoring','specdial_fill_flipbook_tailoring','skillbar_fill_flipbook_jewelcrafting','specdial_dividerglow_jewelcrafting','specdial_endpip_flipbook_jewelcrafting','specdial_pip_flipbook_jewelcrafting','specdial_fill_flipbook_jewelcrafting','ui-hud-unitframe-player-combaticon','ui-hud-unitframe-player-group-friendonlineicon','ui-hud-unitframe-target-highleveltarget_icon','ui-hud-unitframe-player-combaticon-2x','ui-hud-unitframe-player-group-friendonlineicon-2x','ui-hud-unitframe-player-group-guideicon-2x','ui-hud-unitframe-player-group-leadericon-2x','ui-hud-unitframe-player-pvp-allianceicon','ui-hud-unitframe-player-pvp-ffaicon','ui-hud-unitframe-player-pvp-hordeicon','dragonflight-scenario-titlebg','dragonflight-scenario-trackerheader','racing','professions-crafting-orders-icon','dragonflight-score-background','dragonflight-score-footer','dragonflight-score-topper','accountupgradebanner-dragonflight','dragonflight-scenario-frame','ui-castingbar-disabled-tier1-empower','ui-castingbar-disabled-tier2-empower','ui-castingbar-disabled-tier3-empower','ui-castingbar-disabled-tier4-empower','ui-castingbar-empower-cursor','ui-castingbar-empower-pip','ui-castingbar-glow-tier1-empower','ui-castingbar-glow-tier2-empower','ui-castingbar-glow-tier3-empower','ui-castingbar-glow-tier4-empower','ui-castingbar-tier1-empower','ui-castingbar-tier2-empower','ui-castingbar-tier3-empower','ui-castingbar-tier4-empower','ui-castingbar-disabled-tier1-empower-2x','ui-castingbar-disabled-tier2-empower-2x','ui-castingbar-disabled-tier3-empower-2x','ui-castingbar-disabled-tier4-empower-2x','ui-castingbar-empower-cursor-2x','ui-castingbar-empower-pip-2x','ui-castingbar-glow-tier1-empower-2x','ui-castingbar-glow-tier2-empower-2x','ui-castingbar-glow-tier3-empower-2x','ui-castingbar-glow-tier4-empower-2x','ui-castingbar-tier1-empower-2x','ui-castingbar-tier2-empower-2x','ui-castingbar-tier3-empower-2x','ui-castingbar-tier4-empower-2x','ui-castingbar-pressandhold-background-2x','ui-castingbar-pressandhold-frame-2x','ui-castingbar-pressandhold-frame-pip1-2x','ui-castingbar-pressandhold-frame-pip2-2x','ui-castingbar-pressandhold-full-glow-2x','ui-castingbar-pressandhold-full-glow-frame-pip-2x','ui-castingbar-pressandhold-background','ui-castingbar-pressandhold-frame-pip1','ui-castingbar-pressandhold-frame-pip2','ui-castingbar-pressandhold-frame','ui-castingbar-pressandhold-full-glow-frame-pip','ui-castingbar-pressandhold-full-glow','dragonriding-winds','ui-ej-dragonflight','quickkeybind-bag-iconframe-glow','quickkeybind-mainbag-iconframe-glow','flightmaster_ancientwaygate-taxinode_neutral','skillbar_fill_flipbook_alchemy','specdial_dividerglow_alchemy','specdial_endpip_flipbook_alchemy','specdial_pip_flipbook_alchemy','specdial_fill_flipbook_alchemy','skillbar_fill_flipbook_leatherworking','specdial_dividerglow_leatherworking','specdial_endpip_flipbook_leatherworking','specdial_pip_flipbook_leatherworking','specdial_fill_flipbook_leatherworking','dragonriding-widget-raceposition','dragonriding-widget-reticle','ui-hud-unitframe-player-groupindicator','ui-hud-unitframe-player-playtimetired','ui-hud-unitframe-player-playtimeunhealthy','ui-hud-unitframe-player-portraitoff-bar-energy','ui-hud-unitframe-player-portraitoff-bar-focus','ui-hud-unitframe-player-portraitoff-bar-rage','ui-hud-unitframe-player-portraitoff-bar-runicpower','ui-hud-unitframe-player-portraiton-bar-energy','ui-hud-unitframe-player-portraiton-bar-focus','ui-hud-unitframe-player-portraiton-bar-rage','ui-hud-unitframe-player-portraiton-bar-runicpower','ui-hud-unitframe-target-minusmob-portraiton-bar-energy','ui-hud-unitframe-target-minusmob-portraiton-bar-focus','ui-hud-unitframe-target-minusmob-portraiton-bar-mana','ui-hud-unitframe-target-minusmob-portraiton-bar-rage','ui-hud-unitframe-target-minusmob-portraiton-bar-runicpower','ui-hud-unitframe-target-portraiton-bar-energy','ui-hud-unitframe-target-portraiton-bar-focus','ui-hud-unitframe-target-portraiton-bar-rage','ui-hud-unitframe-target-portraiton-bar-runicpower','ui-hud-unitframe-targetoftarget-portraiton-bar-energy','ui-hud-unitframe-targetoftarget-portraiton-bar-focus','ui-hud-unitframe-targetoftarget-portraiton-bar-rage','ui-hud-unitframe-targetoftarget-portraiton-bar-runicpower','ui-hud-unitframe-player-portraiton-bar-health-mask','ui-hud-unitframe-player-portraiton-bar-mana-mask','redbutton-condense-2x','redbutton-condense-disabled-2x','redbutton-condense-pressed-2x','redbutton-exit-2x','redbutton-exit-disabled-2x','redbutton-exit-pressed-2x','redbutton-expand-2x','redbutton-expand-disabled-2x','redbutton-expand-pressed-2x','redbutton-minicondense-2x','redbutton-minicondense-disabled-2x','redbutton-minicondense-pressed-2x','redbutton-highlight-2x','ui-hud-unitframe-player-portraitoff-bar-health-status','ui-hud-unitframe-player-portraiton-bar-health-status','ui-hud-unitframe-target-minusmob-portraiton-bar-health-status','ui-hud-unitframe-target-portraiton-bar-health-status','ui-hud-unitframe-targetoftarget-portraiton-bar-health-status','ui-hud-unitframe-player-absorb-edge','ui-hud-unitframe-player-portraiton-incombat','ui-frame-dragonflight-titleleft','_ui-frame-dragonflight-titlemiddle','ui-frame-dragonflight-backgroundtile','ui-frame-dragonflight-titleright','!ui-frame-dragonflight-tileleft','!ui-frame-dragonflight-tileright','bag-border-highlight-2x','bag-main-highlight-2x','dragonflight-golddetailtop','dragonflight-nineslice-cornerbottomright','dragonflight-dragonheadright','dragonflight-nineslice-cornertopright','dragonflight-nineslice-cornerbottomleft','dragonflight-dragonheadleft','dragonflight-golddetailbottom','dragonflight-nineslice-cornertopleft','_dragonflight-nineslice-edgetop','_dragonflight-nineslice-edgebottom','uiframebackground-nineslice-cornerbottomleft','uiframebackground-nineslice-cornerbottomright','_looting_itemcard_shadow-cornerbottomleft','_looting_itemcard_shadow-cornerbottomright','quickkeybind-actionbar-iconframe-glow-2x','quickkeybind-actionbar-pagearrow-glow-2x','quickkeybind-bag-iconframe-glow-2x','quickkeybind-mainbag-iconframe-glow-2x','professions-chaticon-quality-tier1','professions-chaticon-quality-tier2','professions-chaticon-quality-tier3','professions-chaticon-quality-tier4','professions-chaticon-quality-tier5','professions-icon-quality-mixed-inv','professions-icon-quality-tier1-inv','professions-icon-quality-tier2-inv','professions-icon-quality-tier3-inv','professions-icon-quality-tier4-inv','professions-icon-quality-tier5-inv','bags-item-slot64-2x','bags-icon-junk','bags-icon-questitem','common-coinbox-left','common-coinbox-right','_common-coinbox-center','common-currencybox-left','common-currencybox-right','_common-currencybox-center','_looting_itemcard_shadow-center','_common-search-border-center','newplayertutorial-yellowglow-redbutton-left','newplayertutorial-yellowglow-redbutton-middle','newplayertutorial-yellowglow-redbutton-right','talents-node-choiceflyout-circle-ghost','talents-node-choiceflyout-square-ghost','talents-node-choiceflyout-circle-greenglow','talents-node-choiceflyout-square-greenglow','bags-icon-addauthenticator','bags-padlock-authenticator','ui-hud-experiencebar-background','ui-hud-experiencebar-fill-prediction','ui-hud-experiencebar-frame-pip-mouseover','ui-hud-experiencebar-frame-pip','ui-hud-experiencebar-frame','ui-hud-unitframe-target-portraiton-boss-gold-winged','ui-hud-unitframe-target-portraiton-boss-gold','ui-hud-unitframe-target-portraiton-boss-quest','ui-hud-unitframe-target-portraiton-boss-rare-star','ui-hud-unitframe-target-portraiton-boss-gold','ui-hud-unitframe-target-portraiton-boss-gold-winged-2x','ui-hud-unitframe-target-portraiton-boss-quest-2x','ui-hud-unitframe-target-portraiton-boss-rare-star-2x','ui-hud-unitframe-player-combaticon-glow','ui-frame-portraitmetal-cornertopleftsmall-2x','centaur-customization-background','centaurtalents-background','ui-hud-experiencebar-fill-artifactpower','ui-hud-experiencebar-fill-experience','ui-hud-experiencebar-fill-honor','ui-hud-experiencebar-fill-reputation','ui-hud-experiencebar-fill-rested','ui-hud-experiencebar-fill-reputation-faction-green','ui-hud-experiencebar-fill-reputation-faction-orange','ui-hud-experiencebar-fill-reputation-faction-red','ui-hud-experiencebar-fill-reputation-faction-yellow','uiframe-activetab-left','uiframe-activetab-right','uiframe-tab-left','uiframe-tab-right','_uiframe-activetab-center','_uiframe-tab-center','spec-hover-background','spec-background','ui-hud-micromenu-achievements-disabled-2x','ui-hud-micromenu-achievements-down-2x','ui-hud-micromenu-achievements-mouseover-2x','ui-hud-micromenu-achievements-up-2x','ui-hud-micromenu-adventureguide-disabled-2x','ui-hud-micromenu-adventureguide-down-2x','ui-hud-micromenu-adventureguide-mouseover-2x','ui-hud-micromenu-adventureguide-up-2x','ui-hud-micromenu-characterinfo-disabled-2x','ui-hud-micromenu-characterinfo-down-2x','ui-hud-micromenu-characterinfo-mouseover-2x','ui-hud-micromenu-characterinfo-up-2x','ui-hud-micromenu-collections-disabled-2x','ui-hud-micromenu-collections-down-2x','ui-hud-micromenu-collections-mouseover-2x','ui-hud-micromenu-collections-up-2x','ui-hud-micromenu-communities-icon-notification-2x','ui-hud-micromenu-gamemenu-disabled-2x','ui-hud-micromenu-gamemenu-down-2x','ui-hud-micromenu-gamemenu-mouseover-2x','ui-hud-micromenu-gamemenu-up-2x','ui-hud-micromenu-groupfinder-disabled-2x','ui-hud-micromenu-groupfinder-down-2x','ui-hud-micromenu-groupfinder-mouseover-2x','ui-hud-micromenu-groupfinder-up-2x','ui-hud-micromenu-guildcommunities-disabled-2x','ui-hud-micromenu-guildcommunities-down-2x','ui-hud-micromenu-guildcommunities-mouseover-2x','ui-hud-micromenu-guildcommunities-up-2x','ui-hud-micromenu-highlightalert-2x','ui-hud-micromenu-questlog-disabled-2x','ui-hud-micromenu-questlog-down-2x','ui-hud-micromenu-questlog-mouseover-2x','ui-hud-micromenu-questlog-up-2x','ui-hud-micromenu-shop-disabled-2x','ui-hud-micromenu-shop-mouseover-2x','ui-hud-micromenu-shop-down-2x','ui-hud-micromenu-shop-up-2x','ui-hud-micromenu-spectalents-disabled-2x','ui-hud-micromenu-spectalents-down-2x','ui-hud-micromenu-spectalents-mouseover-2x','ui-hud-micromenu-spectalents-up-2x','ui-hud-micromenu-spellbookabilities-disabled-2x','ui-hud-micromenu-spellbookabilities-down-2x','ui-hud-micromenu-spellbookabilities-mouseover-2x','ui-hud-micromenu-spellbookabilities-up-2x','dragonflight-weeklyrewards-divider','dragonflight-weeklyrewards-frame-button','dragonflight-weeklyrewards-frame-mode','ui-hud-experiencebar-fill-reputation-faction-blue','ui-hud-micromenu-streamdlgreen-down-2x','ui-hud-micromenu-streamdlgreen-up-2x','ui-hud-micromenu-streamdlred-down-2x','ui-hud-micromenu-streamdlred-up-2x','ui-hud-micromenu-streamdlyellow-down-2x','ui-hud-micromenu-streamdlyellow-up-2x','bag-border-search-2x','bag-main-search-2x','dressingroom-background-evoker','uf-soulshard-fx-frameglow','uf-soulshard-fx-holderglow','uf-soulshard-fx-smoke','uf-soulshard-fx1','uf-soulshard-fx2','uf-soulshard-fx3','uf-soulshard-holder','uf-soulshard-icon','uf-soulshard-iconglow','uf-soulshard-refill','uf-soulshard-refillbg','uf-soulshard-fx-frameglow-2x','uf-soulshard-fx-holderglow-2x','uf-soulshard-fx-smoke-2x','uf-soulshard-fx1-2x','uf-soulshard-fx2-2x','uf-soulshard-fx3-2x','uf-soulshard-holder-2x','uf-soulshard-icon-2x','uf-soulshard-iconglow-2x','uf-soulshard-refill-2x','uf-soulshard-refillbg-2x','uf-soulshards-flipbook-soul-2x','uf-soulshards-flipbook-depletea-2x','uf-soulshards-flipbook-depleteb-2x','uf-soulshards-flipbook-depletec-2x','uf-soulshards-flipbook-depletea','uf-soulshards-flipbook-depleteb','uf-soulshards-flipbook-depletec','uf-soulshards-flipbook-soul','uf-soulshard-inc1-2x','uf-soulshard-inc1glow-2x','uf-soulshard-inc2-2x','uf-soulshard-inc2glow-2x','uf-soulshard-inc3-2x','uf-soulshard-inc3glow-2x','uf-soulshard-inc4-2x','uf-soulshard-inc4glow-2x','uf-soulshard-inc5-2x','uf-soulshard-inc5glow-2x','uf-soulshard-inc6-2x','uf-soulshard-inc6glow-2x','uf-soulshard-inc7-2x','uf-soulshard-inc7glow-2x','uf-soulshard-inc8-2x','uf-soulshard-inc8glow-2x','uf-soulshard-inc9-2x','uf-soulshard-inc9glow-2x','uf-soulshard-refillfx-2x','uf-soulshard-inc1','uf-soulshard-inc1glow','uf-soulshard-inc2','uf-soulshard-inc2glow','uf-soulshard-inc3','uf-soulshard-inc3glow','uf-soulshard-inc4','uf-soulshard-inc4glow','uf-soulshard-inc5','uf-soulshard-inc5glow','uf-soulshard-inc6','uf-soulshard-inc6glow','uf-soulshard-inc7','uf-soulshard-inc7glow','uf-soulshard-inc8','uf-soulshard-inc8glow','uf-soulshard-inc9','uf-soulshard-inc9glow','uf-soulshard-refillfx','dragonflight-scenario-barfill','uf-holypower-depleterune1_2x','uf-holypower-depleterune2_2x','uf-holypower-depleterune3_2x','uf-holypower-depleterune4_2x','uf-holypower-depleterune5_2x','uf-holypower-fx-smoke-2x','uf-holypower-rune1-2x','uf-holypower-rune1-active-2x','uf-holypower-rune1-blur-2x','uf-holypower-rune1-fx-2x','uf-holypower-rune1-glow-2x','uf-holypower-rune1-ready-2x','uf-holypower-rune2-2x','uf-holypower-rune2-active-2x','uf-holypower-rune2-blur-2x','uf-holypower-rune2-fx-2x','uf-holypower-rune2-glow-2x','uf-holypower-rune2-ready-2x','uf-holypower-rune3-2x','uf-holypower-rune3-active-2x','uf-holypower-rune3-blur-2x','uf-holypower-rune3-fx-2x','uf-holypower-rune3-glow-2x','uf-holypower-rune3-ready-2x','uf-holypower-rune4-2x','uf-holypower-rune4-active-2x','uf-holypower-rune4-blur-2x','uf-holypower-rune4-fx-2x','uf-holypower-rune4-glow-2x','uf-holypower-rune4-ready-2x','uf-holypower-rune5-2x','uf-holypower-rune5-active-2x','uf-holypower-rune5-blur-2x','uf-holypower-rune5-fx-2x','uf-holypower-rune5-glow-2x','uf-holypower-rune5-ready-2x','uf-holypower-runeholder-2x','uf-holypower-runeholder-active-2x','uf-holypower-runeholder-glow-2x','uf-holypower-runeholder-ready-2x','uf-holypower-runeholder-thinglow-2x','uf-holypower-depleterune1','uf-holypower-depleterune2','uf-holypower-depleterune3','uf-holypower-depleterune4','uf-holypower-depleterune5','uf-holypower-fx-smoke','uf-holypower-rune1-active','uf-holypower-rune1-blur','uf-holypower-rune1-fx','uf-holypower-rune1-glow','uf-holypower-rune1-ready','uf-holypower-rune1','uf-holypower-rune2-active','uf-holypower-rune2-blur','uf-holypower-rune2-fx','uf-holypower-rune2-glow','uf-holypower-rune2-ready','uf-holypower-rune2','uf-holypower-rune3-active','uf-holypower-rune3-blur','uf-holypower-rune3-fx','uf-holypower-rune3-glow','uf-holypower-rune3-ready','uf-holypower-rune3','uf-holypower-rune4-active','uf-holypower-rune4-blur','uf-holypower-rune4-fx','uf-holypower-rune4-glow','uf-holypower-rune4-ready','uf-holypower-rune4','uf-holypower-rune5-active','uf-holypower-rune5-blur','uf-holypower-rune5-fx','uf-holypower-rune5-glow','uf-holypower-rune5-ready','uf-holypower-rune5','uf-holypower-runeholder-active','uf-holypower-runeholder-glow','uf-holypower-runeholder-ready','uf-holypower-runeholder-thinglow','uf-holypower-runeholder','transmog-background-race-dracthyr','ui-hud-unitframe-player-portraiton-vehicle','ui-hud-unitframe-target-portraiton-vehicle','professions-recipe-background-engineering','elementalstorm-boss-air','elementalstorm-boss-earth','elementalstorm-boss-fire','elementalstorm-boss-water','elementalstorm-lesser-air','elementalstorm-lesser-earth','elementalstorm-lesser-fire','elementalstorm-lesser-water','talents-animations-mask-full','talents-animations-sheen','professions-recipe-background-jewelcrafting','professions-recipe-background-inscription','professions-recipe-background-leatherworking','professions-recipe-background-herbalism','professions-recipe-background-mining','professions-recipe-background-skinning','professions-recipe-background-fishing','professions-recipe-background-enchanting','professions-specializations-background-blacksmithing','professions-specializations-background-alchemy','professions-specializations-background-cooking','professions-specializations-background-enchanting','professions-specializations-background-engineering','professions-specializations-background-fishing','professions-specializations-background-herbalism','professions-specializations-background-inscription','professions-specializations-background-jewelcrafting','professions-specializations-background-leatherworking','professions-specializations-background-skinning','professions-specializations-background-tailoring','professions-specializations-background-mining','professions-qualitybar-barbgx2-tier1','professions-qualitybar-barbgx2-tier2','professions-qualitybar-barbgx2-tier3','professions-qualitybar-barbgx2-tier4','professions-qualitybar-dividerglow','quality-barfill-flipbook-t1-x2','gemappear_t1_flipbook','gemdissolve_t1_flipbook','gemappear_t2_flipbook','gemdissolve_t2_flipbook','quality-barfill-flipbook-t2-x2','gemappear_t3_flipbook','gemdissolve_t3_flipbook','quality-barfill-flipbook-t3-x2','gemappear_t4_flipbook','gemdissolve_t4_flipbook','quality-barfill-flipbook-t4-x2','quality-barfill-flipbook-t5-x2','dragonflight-landingpage-background','dragonflight-landingpage-renownbutton-centaur-hover','dragonflight-landingpage-renownbutton-centaur','dragonflight-landingpage-renownbutton-expedition-hover','dragonflight-landingpage-renownbutton-expedition','dragonflight-landingpage-renownbutton-tuskarr-hover','dragonflight-landingpage-renownbutton-tuskarr','dragonflight-landingpage-renownbutton-valdrakken-hover','dragonflight-landingpage-renownbutton-valdrakken','dragonflight-landingpage-talentbutton-hover','dragonflight-landingpage-talentbutton','header-horizontal-rule','professions-qualitybar-dividershadow','professions-qualitybar-flare','professions-qualitywindow-background','expeditiontalents-background','professions-specializations-background-footer','professions-specializations-divider','ui-hud-unitframe-target-portraiton-boss-rare','ui-hud-unitframe-target-portraiton-boss-rare-2x','talents-animations-clouds','professions-qualitybar-highlight-t1','professions-qualitybar-highlight-t2','professions-qualitybar-highlight-t3','professions-qualitybar-highlight-t4','professions-qualitybar-highlight-t5','chromietime-portrait-large-shadowlands','chromietime-portrait-small-shadowlands','talents-animations-mask-filigree','talents-animations-mask-specart','dragonflight-majorfactions-centaur-background','dragonflight-majorfactions-valdrakken-background','dragonflight-majorfactions-expedition-background','dragonflight-majorfactions-tuskarr-background','ui-centaur-headerorb-level0','ui-centaur-headerorb','ui-centaur-highlight-bottom','ui-centaur-highlight-middle','ui-centaur-highlight-top','ui-centaur-reward-slate','ui-valdrakken-headerorb-level0','ui-valdrakken-headerorb','ui-valdrakken-highlight-bottom','ui-valdrakken-highlight-middle','ui-valdrakken-highlight-top','ui-valdrakken-reward-slate','ui-tuskarr-headerorb-level0','ui-tuskarr-headerorb','ui-tuskarr-highlight-bottom','ui-tuskarr-highlight-middle','ui-tuskarr-highlight-top','ui-tuskarr-reward-slate','ui-expedition-headerorb-level0','ui-expedition-headerorb','ui-expedition-highlight-bottom','ui-expedition-highlight-middle','ui-expedition-highlight-top','ui-expedition-reward-slate','ui-hud-unitframe-target-portraiton-incombat','covenantsanctum-renown-doublearrow-depressed','covenantsanctum-renown-doublearrow-disabled','covenantsanctum-renown-doublearrow-hover','covenantsanctum-renown-doublearrow','professions-results-bracket','talents-search-notonactionbar','dragonriding_vigor_background-2x','dragonriding_vigor_decor-2x','dragonriding_vigor_fill-2x','dragonriding_vigor_flash-2x','dragonriding_vigor_frame-2x','dragonriding_vigor_spark-2x','greatvault-dragonflight-32x32','professions-recrafting-panel','professions-recrafting-frame-empty','professions-recrafting-frame-item','professions_specialization_arrowhead','talents-node-square-sheenmask','talents-node-circle-sheenmask','talents-node-choice-sheenmask','talents-node-choiceflyout-circle-sheenmask','talents-node-choiceflyout-square-sheenmask','bags-item-bankslot64-2x','professions_tracking_fish','professions_tracking_herb','professions_tracking_ore','talents-animations-mask-specart-mid','talents-animations-particles','talents-animations-activationgrid','squaremask','splash-1002-botleft','splash-1002-right','splash-1002-topleft','splash-1003-botleft','splash-1003-right','splash-1003-topleft','dragonriding_vigor_mask-2x','professions-specialization-node-emptypath','professions-specialization-node-selectedglow','professions-currency-shadow','tab-divider-top','dragon-rostrum','talents-animations-mask-filigree-activate','talents-animations-gridburst','professions-qualitybar-marker-left','professions-qualitybar-marker-right','talents-animations-class-druid','talents-animations-class-deathknight','talents-animations-class-demonhunter','talents-animations-class-hunter','talents-animations-class-mage','talents-animations-class-monk','talents-animations-class-paladin','talents-animations-class-priest','talents-animations-class-rogue','talents-animations-class-shaman','talents-animations-class-warlock','talents-animations-class-warrior','ui-hud-unitframe-target-minusmob-portraiton-incombat','ui-hud-unitframe-target-minusmob-portraiton-status','ui-hud-unitframe-targetoftarget-portraiton-incombat','ui-hud-unitframe-targetoftarget-portraiton-status','talents-animations-class-evoker','battlenet-clienticon-pro','battlenet-clienticon-pro-zhcn','ui-chaticon-pro','ui-chaticon-pro-zhcn','ui-hud-unitframe-party-portraiton-bar-energy','ui-hud-unitframe-party-portraiton-bar-focus','ui-hud-unitframe-party-portraiton-bar-health-status','ui-hud-unitframe-party-portraiton-bar-health','ui-hud-unitframe-party-portraiton-bar-mana','ui-hud-unitframe-party-portraiton-bar-rage','ui-hud-unitframe-party-portraiton-bar-runicpower','ui-hud-unitframe-party-portraiton-incombat','ui-hud-unitframe-party-portraiton-status','ui-hud-unitframe-party-portraiton-vehicle-bar-energy','ui-hud-unitframe-party-portraiton-vehicle-bar-focus','ui-hud-unitframe-party-portraiton-vehicle-bar-health','ui-hud-unitframe-party-portraiton-vehicle-bar-mana','ui-hud-unitframe-party-portraiton-vehicle-bar-rage','ui-hud-unitframe-party-portraiton-vehicle-bar-runicpower','ui-hud-unitframe-party-portraiton-vehicle-bar-status','ui-hud-unitframe-party-portraiton-vehicle-incombat','ui-hud-unitframe-party-portraiton-vehicle','ui-hud-unitframe-party-portraiton','ui-hud-unitframe-party-portraiton-bar-mana-mask','ui-hud-unitframe-party-portraiton-bar-health-mask','talents-animations-titans','talents-arrow-head-ghost','charactercreate-customize-dropdown-icon-lock','gemappear_t5_flipbook','ui-tuskarr-rewardframe','ui-expedition-rewardframe','ui-centaur-rewardframe','ui-valdrakken-rewardframe','majorfaction-celebration-toastbg','majorfaction-celebration-centaur','majorfaction-celebration-valdrakken','majorfaction-celebration-bottomglowline','majorfaction-celebration-expedition','majorfaction-celebration-content-ring','majorfaction-celebration-tuskarr','ui-hud-unitframe-player-portraiton-vehicle-incombat','ui-hud-unitframe-player-portraiton-vehicle-status','ui-hud-unitframe-target-portraiton-boss-iconring','dragonflight-landingbutton-circleglow','dragonflight-landingbutton-circlehighlight','dragonflight-landingbutton-down','dragonflight-landingbutton-up','ui-hud-unitframe-target-boss-small-portraitoff-bar-energy','ui-hud-unitframe-target-boss-small-portraitoff-bar-focus','ui-hud-unitframe-target-boss-small-portraitoff-bar-health-status','ui-hud-unitframe-target-boss-small-portraitoff-bar-health','ui-hud-unitframe-target-boss-small-portraitoff-bar-mana-status','ui-hud-unitframe-target-boss-small-portraitoff-bar-mana','ui-hud-unitframe-target-boss-small-portraitoff-bar-rage','ui-hud-unitframe-target-boss-small-portraitoff-bar-runicpower','ui-hud-unitframe-target-boss-small-portraitoff-type','ui-hud-unitframe-target-boss-small-portraitoff','professions-results-inspiredcreation','dragonflight-landingpage-radial-expeditionm','dragonflight-landingpage-radial-frame','dragonflight-landingpage-radial-maruuk','dragonflight-landingpage-radial-tuskarr','dragonflight-landingpage-radial-valdrakken','ui-hud-unitframe-target-boss-small-portraitoff-incombat','ui-centaur-headerfill','ui-expedition-headerfill','ui-tuskarr-headerfill','ui-valdrakken-headerfill','ui-hud-unitframe-party-portraitoff-bar-mana-mask','ui-hud-unitframe-party-portraitoff-bar-health-mask','ui-hud-unitframe-party-portraiton-vehicle-status','dragonriding_vigor_fillfull-2x','loottoast-itemborder-gray','loottoast-dragonriding','dragonflight-landingpage-renownbutton-locked','gamepad_gen_1_64','gamepad_gen_2_64','gamepad_gen_3_64','gamepad_gen_4_64','gamepad_gen_5_64','gamepad_gen_6_64','gamepad_gen_back_64','gamepad_gen_down_64','gamepad_gen_forward_64','gamepad_gen_left_64','gamepad_gen_lshoulder_64','gamepad_gen_lstickdown_64','gamepad_gen_lstickin_64','gamepad_gen_lstickleft_64','gamepad_gen_lstickright_64','gamepad_gen_lstickup_64','gamepad_gen_ltrigger_64','gamepad_gen_paddle1_64','gamepad_gen_paddle2_64','gamepad_gen_paddle3_64','gamepad_gen_paddle4_64','gamepad_gen_right_64','gamepad_gen_rshoulder_64','gamepad_gen_rstickdown_64','gamepad_gen_rstickin_64','gamepad_gen_rstickleft_64','gamepad_gen_rstickright_64','gamepad_gen_rstickup_64','gamepad_gen_rtrigger_64','gamepad_gen_share_64','gamepad_gen_system_64','gamepad_gen_up_64','professions-specialization-node-tailoring','professions-specialization-node-skinning','professions-specialization-node-mining','professions-specialization-node-leatherworking','professions-specialization-node-jewelcrafting','professions-specialization-node-inscription','professions-specialization-node-herbalism','professions-specialization-node-enchanting','professions-specialization-node-blacksmithing','professions-specialization-node-alchemy','gamepad_ltr_a_64','gamepad_ltr_b_64','gamepad_ltr_down_64','gamepad_ltr_left_64','gamepad_ltr_lshoulder_64','gamepad_ltr_ltrigger_64','gamepad_ltr_menu_64','gamepad_ltr_right_64','gamepad_ltr_rshoulder_64','gamepad_ltr_rtrigger_64','gamepad_ltr_share_64','gamepad_ltr_system_64','gamepad_ltr_up_64','gamepad_ltr_view_64','gamepad_ltr_x_64','gamepad_ltr_y_64','gamepad_rev_a_64','gamepad_rev_b_64','gamepad_rev_capture_64','gamepad_rev_home_64','gamepad_rev_lshoulder_64','gamepad_rev_ltrigger_64','gamepad_rev_minus_64','gamepad_rev_plus_64','gamepad_rev_rshoulder_64','gamepad_rev_rtrigger_64','gamepad_rev_x_64','gamepad_rev_y_64','gamepad_shp_circle_64','gamepad_shp_cross_64','gamepad_shp_down_64','gamepad_shp_left_64','gamepad_shp_lshoulder_64','gamepad_shp_lstickin_64','gamepad_shp_ltrigger_64','gamepad_shp_menu_64','gamepad_shp_micmute_64','gamepad_shp_right_64','gamepad_shp_rshoulder_64','gamepad_shp_rstickin_64','gamepad_shp_rtrigger_64','gamepad_shp_share_64','gamepad_shp_square_64','gamepad_shp_system_64','gamepad_shp_touchpadl_64','gamepad_shp_touchpadr_64','gamepad_shp_triangle_64','gamepad_shp_up_64','professions_specialization_lock','professions_specialization_lock_glow','professions-specializations-background-dial','professions-specialization-node-engineering','professions_specialization_arrowline','ui-hud-experiencebar-background-2x','ui-hud-experiencebar-fill-artifactpower-2x','ui-hud-experiencebar-fill-experience-2x','ui-hud-experiencebar-fill-honor-2x','ui-hud-experiencebar-fill-prediction-2x','ui-hud-experiencebar-fill-reputation-2x','ui-hud-experiencebar-fill-reputation-faction-blue-2x','ui-hud-experiencebar-fill-reputation-faction-green-2x','ui-hud-experiencebar-fill-reputation-faction-orange-2x','ui-hud-experiencebar-fill-reputation-faction-red-2x','ui-hud-experiencebar-fill-reputation-faction-yellow-2x','ui-hud-experiencebar-fill-rested-2x','ui-hud-experiencebar-frame-2x','ui-hud-experiencebar-frame-pip-2x','ui-hud-experiencebar-frame-pip-mouseover-2x','flightmaster_ancientwaygate-taxi_frame_gray','flightmaster_ancientwaygate-taxi_frame_green','flightmaster_ancientwaygate-taxi_frame_yellow','skillbar_fill_flipbook_defaultblue','specdial_fill_flipbook_defaultblue','dragonriding-talents-background','dragonriding-talents-line','dragonriding-talents-currencybg','ui-hud-unitframe-player-portraiton-bar-mana-status','ui-hud-unitframe-target-minusmob-portraiton-bar-mana-status','ui-hud-unitframe-targetoftarget-portraiton-bar-mana-status','ui-hud-unitframe-target-portraiton-bar-mana-status','ui-hud-unitframe-party-portraiton-bar-mana-status','ui-hud-unitframe-party-portraiton-vehicle-bar-mana-status','ui-hud-minimap-guildbanner-background-bottom','ui-hud-minimap-guildbanner-background-top','ui-hud-minimap-guildbanner-border-bottom','ui-hud-minimap-guildbanner-border-top','ui-hud-minimap-guildbanner-background-bottom-2x','ui-hud-minimap-guildbanner-background-top-2x','ui-hud-minimap-guildbanner-border-bottom-2x','ui-hud-minimap-guildbanner-border-top-2x','ui-hud-unitframe-target-portraiton-boss-iconring-2x','ui-hud-unitframe-target-boss-small-portraitoff-2x','ui-hud-unitframe-target-boss-small-portraitoff-bar-energy-2x','ui-hud-unitframe-target-boss-small-portraitoff-bar-focus-2x','ui-hud-unitframe-target-boss-small-portraitoff-bar-health-2x','ui-hud-unitframe-target-boss-small-portraitoff-bar-health-status-2x','ui-hud-unitframe-target-boss-small-portraitoff-bar-mana-2x','ui-hud-unitframe-target-boss-small-portraitoff-bar-mana-status-2x','ui-hud-unitframe-target-boss-small-portraitoff-bar-rage-2x','ui-hud-unitframe-target-boss-small-portraitoff-bar-runicpower-2x','ui-hud-unitframe-target-boss-small-portraitoff-incombat-2x','ui-hud-unitframe-target-boss-small-portraitoff-type-2x','streamcinematic-dragonflight-down','streamcinematic-dragonflight-up','minimap-genericevent-hornicon','ui-hud-minimap-guildbanner-heroic-large','ui-hud-minimap-guildbanner-heroic-mini','ui-hud-minimap-guildbanner-mythic-large','ui-hud-minimap-guildbanner-mythic-mini','ui-hud-minimap-guildbanner-heroic-large-2x','ui-hud-minimap-guildbanner-mythic-large-2x','pvpqueue-chest-dragonflight-greatvault-collect','pvpqueue-chest-dragonflight-greatvault-complete','pvpqueue-chest-dragonflight-greatvault-incomplete','mythicplus-dragonflight-greatvault-collect','mythicplus-dragonflight-greatvault-complete','mythicplus-dragonflight-greatvault-incomplete','ui-frame-genericplayerchoice-cardparchment','ui-frame-genericplayerchoice-portrait-border','ui-frame-genericplayerchoice-portrait-qualityepic','ui-frame-genericplayerchoice-portrait-qualityrare','ui-frame-genericplayerchoice-portrait-qualityuncommon','ui-frame-genericplayerchoice-portrait','ui-frame-genericplayerchoice-qualityepic-border','ui-frame-genericplayerchoice-qualityrare-border','ui-frame-genericplayerchoice-qualityuncommon-border','covenantsanctum-renown-hexagon-border-standard','covenantsanctum-renown-hexagon-next-border-standard','covenantsanctum-renown-icon-border-standard','ui-hud-unitframe-party-portraiton-vehicle-bar-mana-mask','covenantsanctum-renown-next-border-standard','cast-empowered-pipflare-1x','cast-empowered-pipflare-2x','ui-castingbar-pip-1x_red','ui-castingbar-pip-2x_red','splash-1001-botleft','splash-1001-right','splash-1001-topleft','craftingorders-innerframe','craftingorders-noteframewide','craftingorders-noteframenarrow','professions-equipment-divider','map_faction_ring','ui-frame-dragonflight-cardparchmentwider','ui-frame-dragonflight-portraitdisable','ui-frame-dragonflight-portrait','ui-frame-dragonflight-portraitwiderdisable','ui-frame-dragonflight-cardparchment','ui-frame-dragonflight-disablesubtitle','ui-frame-dragonflight-portraitwider','ui-frame-dragonflight-subtitle','ui-frame-dragonflight-ribbon','callings-backhighlight-full','stormblue-extrabutton','stormpurple-extrabutton','stormwhite-extrabutto','stormyellow-extrabutton','common-loadingspinnercircle','splash-1004-botleft','splash-1004-right','splash-1004-topleft'} diff --git a/Interface/AddOns/WeakAuras/Types_Vanilla.lua b/Interface/AddOns/WeakAuras/Types_Vanilla.lua index a54cd6f67..a11e13088 100644 --- a/Interface/AddOns/WeakAuras/Types_Vanilla.lua +++ b/Interface/AddOns/WeakAuras/Types_Vanilla.lua @@ -125,3 +125,5 @@ end function Private.get_encounters_list() return encounter_list end + +Private.AtlasList = {'CommittedName','MainPet-PetFamilyFrame','Timer-Frame','MainPet-HealthBarBG','Timer-BG','BackupPet-DeadFrame','MainPet-HealthBarFrame','Start-VersusSplash','BackupPet-Frame','BattleHUD-Top','BattleBar-ButtonBG-EndCap','BattleBar-SwapPetFrame-DeadIcon','MainPet-HealthBarFill','BattleBar-EndCap','BattleBar-Button-Highlight','BattleBar-SwapPetFrame','Timer-Fill','BattleBar-SwapPetIcon','MainPet-Frame','BattleBar-Countdown-Shadow','BattleBar-ButtonBG-Divider','BattleBar-SwapPetShadow','BattleBar-SwapPetFrame-Highlight','MainPet-PetFamilyActivate','MainPet-LevelBubble','BattleHUD-Versus','_BattleBar-ButtonBGMid','_BattleBar-Mid','BackArrow-Brown','MapCornerShadow-Left','MapCornerShadow-Right','NoQuestsBackground','OptionsIcon-Brown','QuestCollapse-Hide-Down','QuestCollapse-Hide-Up','QuestCollapse-Show-Down','QuestCollapse-Show-Up','QuestDetails-RewardsBottomOverlay','QuestDetails-RewardsOverlay','QuestDetails-TopOverlay','QuestDetailsBackgrounds','QuestionMarkContinent-Icon','QuestionMarkContinent-IconHighlight','QuestLogBackground','StoryHeader-BG','StoryHeader-CheevoIcon','StoryHeader-Shadow','TaskPOI-Icon','TaskPOI-IconHighlight','TaskPOI-IconSelect','UI-OuterBorderButtonPatch','UI-SquareButtonBrown-Down','UI-SquareButtonBrown-Up','QuestItemBorder-Small','QuestItemBorder','Talent-Separator','Talent-BottomLeftCurlies','Talent-Highlight','Talent-TopRightCurlies','Talent-TopLeftCurlies','Talent-Background','Talent-Selection','Talent-RingWithDot','Talent-BottomRightCurlies','PetJournal-BattleSlot-Active','PetJournal-BattleSlot-Locked','PetJournal-PetCard-BG','PetJournal-BattleSlotFrame-Corner','PetJournal-ExpBar-Left','PetJournal-BattleSlotTitle-Right','PetJournal-ExpBar-Background','PetJournal-PetBattleAchievementGlow','PetJournal-HealthBar-Left','PetJournal-PetCard-Abilities','PetJournal-BattleSlot-AbilityBorder','PetJournal-ExpBar-Divider','PetJournal-ExpBar-Right','PetJournal-BattleSlot-IconBorder','PetJournal-LevelBubble','PetJournal-ExpBar-Mid','PetJournal-PetBattleAchievementBG','PetJournal-BattleSlot-Shadow','PetJournal-BattleSlotTitle-Left','PetJournal-HealthBar-Mid','PetJournal-HealthBar-Right','PetJournal-HealthBar-Background','_BattleSlotTitle-BG','_BattleSlotFrame-Top','_BattleSlotFrame-Divider','_BattleSlotTitle-Mid','MountJournalIcons-Alliance','MountJournalIcons-Horde','_Talent-blue-glow','_Talent-Bottom-Tile','_Talent-Top-Tile','bluemenu-Ring','PetJournal-FavoritesIcon','NewCharacter-Alliance','NewCharacter-Horde','Garr_InfoBox-Corner','Garr_InfoBoxBorder-BigBottomCorner','Garr_InfoBoxBorder-Corner','Garr_InfoBoxBorder-FiligreeCorner','Garr_WoodFrameCorner','_Garr_InfoBox-Top','_Garr_InfoBoxBorder-BigBottom','_Garr_InfoBoxBorder-Top','_Garr_WoodFrameTile-Bottom','_Garr_WoodFrameTile-Top','_Garr_XPBar_Mid','!Garr_InfoBox-Left','!Garr_InfoBoxBorder-Left','!Garr_WoodFrameTile-Left','Garr_BuildingIconRing_','Garr_BuildingPlacementExplosion','Garr_CostBar','Garr_FollowerPortrait_Bg','Garr_FollowerPortrait_Ring','Garr_FollowerPortrait_TimerBG','Garr_FollowerPortrait_TimerFill','Garr_LevelBadge_1','Garr_LevelBadge_2','Garr_LevelBadge_3','Garr_LevelUpgradeArrow','Garr_LevelUpgradeLocked','Garr_ListButton-Highlight','Garr_ListButton-Selection','Garr_ListButton','Garr_ListTab-Highlight','Garr_ListTab-Select','Garr_ListTab','Garr_MaterialIcon','Garr_MonumentLocked','Garr_MonumentOpen','Garr_PlanIcon-List','Garr_PlansRequiredIcon','Garr_Plot_Glow_3','Garr_Plot_Glow_2','Garr_Plot_Glow_1','Garr_Plot_Glow_4','Garr_Specialization_FrameLeft','Garr_Specialization_FrameMid','Garr_Specialization_IconBorder','Garr_Specialization_IconSelected','Garr_TownHallBanner_Left','Garr_TownHallBanner_LevelFiligree','Garr_TownHallBanner_Mid','Garr_TownHallBanner_Right','Garr_TreasureIcon','Garr_XPBar_Left','Garr_XPBar_Nub','Garr_Map_Shadowmoon1_A','Garr_Map_Shadowmoon2_A','Garr_Map_Shadowmoon3_A','Garr_Plot_Shadowmoon_A_4','Garr_Plot_Shadowmoon_A_1','Garr_Plot_Shadowmoon_A_2','Garr_Plot_Shadowmoon_A_3','Garr_InfoBox-BackgroundTile','Garr_WoodFrame-BackgroundTile','Garr_InfoBox-CornerShadow','GarrBuilding_Default_Info','GarrBuilding_Default_Map','GarrBuilding_EmptyPlot_1_A_Info','GarrBuilding_Armory_1_A_Info','GarrBuilding_Armory_2_A_Info','GarrBuilding_Armory_3_A_Info','GarrBuilding_Armory_1_A_Map','GarrBuilding_Armory_2_A_Map','GarrBuilding_Armory_3_A_Map','GarrBuilding_Alchemy_1_A_Info','GarrBuilding_Alchemy_2_A_Info','GarrBuilding_Alchemy_3_A_Info','GarrBuilding_Alchemy_1_A_Map','GarrBuilding_Alchemy_2_A_Map','GarrBuilding_Alchemy_3_A_Map','DruidEclipse-LunarCover','DruidEclipse-SolarCover','DruidEclipse-Arrow','DruidEclipse-BaseBar','DruidEclipse-BaseMoon','DruidEclipse-BaseSun','DruidEclipse-Diamond','DruidEclipse-Line','DruidEclipse-LunarBar','DruidEclipse-LunarMoon','DruidEclipse-LunarSun','DruidEclipse-SolarBar','DruidEclipse-SolarMoon','DruidEclipse-SolarSun','Garr_BuildIcon','Garr_BuildingConfirmation','Garr_BuildingIconTimerBG','Garr_BuildingIconTimerFill','Garr_BuildingTimerBG','Garr_BuildingTimerFill','Garr_BuildingTimerGlow','Garr_BuildingUpgradeExplosion','Garr_LevelBadgeGlow','Garr_NotificationGlow','Garr_UpgradeBanner','Garr_UpgradeIcon','Garr_UpgradeIconTimerBG','Garr_UpgradeIconTimerFill','Garr_UpgradeTimerBG','Garr_UpgradeTimerFill','Garr_UpgradeTimerGlow','Garr_Toast','Garr_BuildingShadowOverlay','GarrMission_Bg-DarkEdgeCorner','GarrMission_CounterCheck','GarrMission_EncounterAbilityBorder','GarrMission_EncounterBar-BG','GarrMission_EncounterBar-End','GarrMission_EncounterBar-Fill','GarrMission_EncounterBar-PortraitRing','GarrMission_EncounterBar-Spark','GarrMission_EncounterBar-Xbg','GarrMission_EncounterBar-Xleft','GarrMission_FollowerAbilityRollout','GarrMission_FollowerPartyBox_Lg','GarrMission_FollowerPartyBox_Sm','GarrMission_ItemFrame','GarrMission_LevelUpBanner','GarrMission_LocationCover-Side','GarrMission_ParchmentHeader-End','GarrMission_PartyBuffsBG','GarrMission_PortraitRing','GarrMission_PortraitRing_Empty','GarrMission_PortraitRing_Enemy','GarrMission_PortraitRing_LevelBorder','GarrMission_RareGlowBG','GarrMission_RewardsBanner-Desaturate','GarrMission_RewardsBanner','GarrMission_RewardsBG-Desaturate','GarrMission_RewardsBG','GarrMission_RewardsBorder-Corner-Desaturate','GarrMission_RewardsBorder-Corner','GarrMission_Silhouettes-1Alliance','GarrMission_Silhouettes-1Horde','GarrMission_SingleModelBG','GarrMission_StartMissionFrame','_GarrMission_Bg-BottomEdge','_GarrMission_Bg-BottomEdgeSmall','_GarrMission_LocationCover-Bottom','_GarrMission_ParchmentHeader-Mid','_GarrMission_RewardsBorder-Top-Desaturate','_GarrMission_RewardsBorder-Top','_GarrMission_TopBorder-Highlight','_GarrMission_TopBorder-Select','_GarrMission_TopBorder','_GarrMission_XPBar-BG','_GarrMission_XPBar-Fill','_Garr_InfoBoxBorderMission-Top','!GarrMission_Bg-Edge','!GarrMission_RewardsBorder-Left-Desaturate','!GarrMission_RewardsBorder-Left','!Garr_InfoBoxBorderMission-Left','Garr_InfoBoxMission-BackgroundTile','GarrMission_FollowerListButton','GarrMission_FollowerListButton-Highlight','GarrMission_FollowerListButton-Select','GarrMission_FollowerPageHeaderBG','GarrMission_IconLevelBG','GarrMission_ListGlow-Highlight','GarrMission_ListGlow-Select','GarrMission_PlayerLootFrame','GarrMission_RareOverlay','GarrMission_TopBorderCorner','GarrMission_TopBorderCorner-Highlight','GarrMission_TopBorderCorner-Select','GarrMission_UsefulAbilityIcon','GarrMission_XPBarBig-End','GarrMission_XPBarBig-LevelBorder','GarrMission_XPBarBig-Mid','Garr_InfoBoxBorderMission-Corner','PartySizeIcon','GarrMission_CurrencyIcon-Material','GarrMission_CurrencyIcon-Salvage','GarrMission_CurrencyIcon-Xp','_GarrMissionLocation-TannanJungle-Back','_GarrMissionLocation-TannanJungle-Fore','_GarrMissionLocation-TannanJungle-Mid','GarrMission_MissionParchment','GarrBuilding_MageTower_1_A_Info','GarrBuilding_MageTower_2_A_Info','GarrBuilding_MageTower_3_A_Info','GarrBuilding_TownHall_1_A_Info','GarrBuilding_TownHall_2_A_Info','GarrBuilding_TownHall_3_A_Info','GarrBuilding_TownHall_3_A_Map','GarrBuilding_TownHall_2_A_Map','GarrBuilding_TownHall_1_A_Map','GarrBuilding_MageTower_1_A_Map','GarrBuilding_MageTower_2_A_Map','GarrBuilding_MageTower_3_A_Map','GarrBuilding_Inn_1_A_Info','GarrBuilding_Inn_1_A_Map','GarrBuilding_Inn_2_A_Info','GarrBuilding_Inn_3_A_Info','GarrBuilding_Inn_2_A_Map','GarrBuilding_Inn_3_A_Map','GarrBuilding_Mine_1_A_Info','GarrBuilding_Mine_2_A_Info','GarrBuilding_Mine_3_A_Info','GarrBuilding_Mine_1_A_Map','GarrBuilding_Mine_2_A_Map','GarrBuilding_Mine_3_A_Map','GarrBuilding_Barracks_1_A_Map','GarrBuilding_Barracks_2_A_Map','GarrBuilding_Barracks_3_A_Map','GarrBuilding_Barracks_1_A_Info','GarrBuilding_Barracks_2_A_Info','GarrBuilding_Barracks_3_A_Info','GarrBuilding_Engineering_1_A_Info','GarrBuilding_Engineering_2_A_Info','GarrBuilding_Engineering_3_A_Info','GarrBuilding_Engineering_1_A_Map','GarrBuilding_Engineering_2_A_Map','GarrBuilding_Engineering_3_A_Map','Rewards-Shadow','OBJFX_LineBurst','OBJBonusBar-Top','OBJFX_LineGlow','Objective-Header','Rewards-Top','OBJFX_StarBurst','Objective-Nub','OBJFX_Glow','shadoworbs-small-Orb-Bg','shadoworbs-small-Orb','shadoworbs-small-Frame-OrbHighlight','shadoworbs-large-Orb','shadoworbs-large-Frame','shadoworbs-large-Orb-Bg','shadoworbs-large-Frame-OrbHighlight','shadoworbs-small-Frame','achievementcompare-GreenCheckmark','achievementcompare-YellowCheckmark','MonkUI-background-shadow','MonkUI-OrbOff','MonkUI-OrbOff-small','MonkUI-LightOrb-small','MonkUI-background','MonkUI-LightOrb','Garr_InfoBoxMission-Corner','_Garr_InfoBoxMission-Top','!Garr_InfoBoxMission-Left','bags-newitem','Tracker-Check','_GarrMission_MissionListTopHighlight','GarrMission_PartyBuffAbilityBorder','collections-icon-favorites','collections-itemborder-collected','collections-itemborder-uncollected-innerglow','collections-itemborder-uncollected','collections-levelplate-black','collections-levelplate-gold','collections-newglow','collections-slotheader','collections-background-filagree','collections-background-corner','collections-background-tile','_collections-background-line','collections-background-shadow-small','collections-background-shadow-large','bags-junkcoin','bags-innerglow','Capacitance-Blacksmithing-BG','Capacitance-Blacksmithing-IconBG','Capacitance-Blacksmithing-IconBorder','Capacitance-Blacksmithing-TimerBG','Capacitance-Blacksmithing-TimerFill','Capacitance-Blacksmithing-TimerFrame','Capacitance-General-EmptyFollower','Capacitance-General-ItemBorder','Capacitance-General-LockIcon','Capacitance-General-WorkOrderActive','Capacitance-General-WorkOrderArrow','Capacitance-General-WorkOrderBorder','Capacitance-General-WorkOrderCheckmark','Capacitance-General-WorkOrderEmpty','Capacitance-General-LevelBorder','Capacitance-General-PortraitRing','minortalents-icon-book','minortalents-iconcover','_minortalents-iconspinner','Objective-Fail','minortalents-backplate','minortalents-descriptionshadow','characterundelete-RestoreButton','bank-slots-shadow','bank-slots','Garr_MissionToast','Garr_FollowerToast-Epic','Garr_FollowerToast-Rare','Garr_FollowerToast-Uncommon','Garr_MissionToast-IconBG','Garr_Map_Frostfire1_H','Garr_Map_Frostfire2_H','Garr_Map_Frostfire3_H','ZoneAbility-Generic-AbilityBar-Glow','ZoneAbility-Generic-AbilityBar','ZoneAbility-Generic-IconBorder','ZoneAbility-Generic-SpellBox','groupfinder-icon-voice','groupfinder-icon-friend','GarrBuilding_Barn_1_A_Info','GarrBuilding_Barn_2_A_Info','GarrBuilding_Barn_3_A_Info','GarrBuilding_Barn_1_A_Map','GarrBuilding_Barn_2_A_Map','GarrBuilding_Barn_3_A_Map','GarLanding-Bottom','GarLanding-Left','GarLanding-Right','GarrLanding-InvasionBadge-Glow','GarrLanding-InvasionBadge','GarrLanding-MissionListBG','GarrLanding-Top','GarrLanding-TradeskillTimer-BG','GarrLanding_Watermark-Tradeskill','GarrLanding-FollowerScrollFrame','GarrLanding-lowerleft','GarrLanding-lowerright','GarrLanding-upperleft','GarrLanding-upperright','GarrLanding-HeaderBar','GarrLanding-MiddleTile','GarrLanding-Mission-Complete','GarrLanding-Mission-InProgress','GarrLanding-Building-Complete','GarrLanding-Building-InProgress','Garr_BuildingInfoShadow','GarrBuilding_Farm_1_A_Info','GarrBuilding_Farm_2_A_Info','GarrBuilding_Farm_3_A_Info','GarrBuilding_Farm_1_A_Map','GarrBuilding_Farm_2_A_Map','GarrBuilding_Farm_3_A_Map','GarrBuilding_LumberMill_1_A_Info','GarrBuilding_LumberMill_2_A_Info','GarrBuilding_LumberMill_3_A_Info','GarrBuilding_LumberMill_1_A_Map','GarrBuilding_LumberMill_2_A_Map','GarrBuilding_LumberMill_3_A_Map','GarrBuilding_SalvageYard_1_A_Info','GarrBuilding_SalvageYard_1_A_Map','GarrBuilding_SparringArena_1_A_Info','GarrBuilding_SparringArena_2_A_Info','GarrBuilding_SparringArena_3_A_Info','GarrBuilding_SparringArena_1_A_Map','GarrBuilding_SparringArena_2_A_Map','GarrBuilding_SparringArena_3_A_Map','GarrBuilding_Stables_1_A_Info','GarrBuilding_Stables_2_A_Info','GarrBuilding_Stables_3_A_Info','GarrBuilding_Stables_1_A_Map','GarrBuilding_Stables_2_A_Map','GarrBuilding_Stables_3_A_Map','GarrBuilding_Storehouse_1_A_Info','GarrBuilding_Storehouse_1_A_Map','GarrBuilding_TradingPost_1_A_Info','GarrBuilding_TradingPost_2_A_Info','GarrBuilding_TradingPost_3_A_Info','GarrBuilding_TradingPost_1_A_Map','GarrBuilding_TradingPost_2_A_Map','GarrBuilding_TradingPost_3_A_Map','Objective-ItemBorder','Garr_Building-AddFollowerPlus','Monuments-Frame','Monuments-LeftButton-Down','Monuments-LeftButton-Up','Monuments-RightButton-Down','Monuments-RightButton-Up','Monuments-LockedOverlay','Monuments-Lock','BonusChest-KeyholeBurst','BonusChest-KeyholeGlow','BonusChest-Lock','BonusChest-CircleGlow','guild-levelring','Calendar_Quest','groupfinder-highlightbar-green','groupfinder-highlightbar-yellow','groupfinder-icon-greencheckmark','groupfinder-icon-redx','groupfinder-button-arenas','groupfinder-button-battlegrounds','groupfinder-button-cover','groupfinder-button-custom-pve','groupfinder-button-custom-pvp','groupfinder-button-dungeons','groupfinder-button-questing','groupfinder-button-raids-bc','groupfinder-button-raids-cataclysm','groupfinder-button-raids-classic','groupfinder-button-raids-mists','groupfinder-button-raids-wrath','groupfinder-button-ratedbgs','groupfinder-button-scenarios','groupfinder-button-skirmishes','groupfinder-highlightbar-blue','Garr_SwapIcon','Garr_BuildFX-Glow','Garr_BuildFX-Lines','Garr_LockedBuilding','Garr_UpgradeFX-Glow','BonusChest-ItemBorder-Uncommon','BonusChest-Burst-Uncommon','bags-glow-purple','bags-glow-blue','bags-glow-orange','bags-glow-green','bags-glow-heirloom','bags-glow-white','bags-glow-flash','LFG-lock','Garr_Building_MaterialFrame','Garr_Mission_MaterialFrame','GarrMission_RewardsListBG','GarrMission_RewardsShadow','Garr_MissionList-CostBG','Garr_MissionList-IconBG','GarrMission_ParchmentHeaderSelect-End','_GarrMission_ParchmentHeaderSelect-Mid','GarrMission_MissionCostStartButtonBg','GarMission_ChestPercentageShadow','GarrMission_ChestOpenTextGlow','GarrMission_PortraitRing_Glow','GarrMission_PortraitRing_Highlight','splash-bigbutton','BonusChest-Smoke-Uncommon','splash-botleft','splash-boost-botleft','splash-boost-right','splash-boost-topleft','splash-601-botleft','splash-601-right','splash-601-topleft','splash-600-botleft','splash-600-right','splash-600-topleft','GarrMission_CheckGlow','GarrMission_MissionIcon-Blacksmithing','GarrMission_MissionIcon-Combat','GarrMission_MissionIcon-Exploration','GarrMission_ClassIcon-Hunter','GarrMission_ClassIcon-Warrior','GarrMission_ClassIcon-Priest','GarrMission_ClassIcon-Monk','GarrMission_ClassIcon-Rogue','GarrMission_ClassIcon-Mage','GarrMission_ClassIcon-Warlock','GarrMission_ClassIcon-Shaman','GarrMission_ClassIcon-Druid','GarrMission_ClassIcon-Paladin','GarrMission_ClassIcon-DeathKnight','GarrMission_EncounterBar-Xright','Garr_MissionFX-Glow','Garr_MissionFX-Lines','groupfinder-icon-leader','Garr_Map_Frostfire4_H','Garr_Map_Shadowmoon4_A','GarrMission-FollowerItemBg','bags-button-autosort-down','bags-button-autosort-up','bags-roundhighlight','GarrLanding-MinimapIcon-Alliance-Down','GarrLanding-MinimapIcon-Alliance-Up','GarrLanding-MinimapIcon-Horde-Up','GarrLanding-MinimapIcon-Horde-Down','GarrLanding-CircleGlow','GarrLanding-MinimapAlertBG','GarrLanding-SideToast-Glow','GarrLanding-TopTabHighlight','GarrLanding-TopTabSelected','GarrLanding-TopTabUnselected','Alliance_Tier1_Barracks','Alliance_Tier1_Professions','Alliance_Tier1_TownHall','GarrMission_MissionStart','loottoast-arrow-blue','loottoast-arrow-green','loottoast-arrow-orange','loottoast-arrow-purple','loottoast-bg-questrewardupgrade','loottoast-glow','loottoast-itemborder-blue','loottoast-itemborder-glow','loottoast-itemborder-green','loottoast-itemborder-orange','loottoast-itemborder-purple','loottoast-sheen','Headhunter_AbilityBorderGlow','Headhunter_BG','Headhunter_LineHeader','_GarrMissionLocation-FrostfireRidge-Back','_GarrMissionLocation-FrostfireRidge-Fore','_GarrMissionLocation-FrostfireRidge-Mid','GarrLanding_RewardsShadow','GarrLanding_RewardsListBG','GarrLandingList-CostBG','GarrMission_MissionIcon-Enchanting','GarrMission_MissionIcon-Salvage','GarrMission_MissionIcon-Provision','GarrMission_MissionIcon-Generic','GarrMission_MissionIcon-Siege','GarrMission_MissionIcon-Alchemy','GarrMission_MissionIcon-Wildlife','GarrMission_MissionIcon-Tailoring','GarrMission_MissionIcon-Training','GarrMission_MissionIcon-Trading','GarrMission_MissionIcon-Jewelcrafting','GarrMission_MissionIcon-Defense','GarrMission_MissionIcon-Construction','GarrMission_MissionIcon-Inscription','GarrMission_MissionIcon-Logistics','GarrMission_MissionIcon-Engineering','GarrMission_MissionIcon-Patrol','GarrMission_MissionIcon-Recruit','GarrMission_MissionIcon-Leatherworking','GarrBuilding_Jewelcrafting_1_A_Info','GarrBuilding_Jewelcrafting_2_A_Info','GarrBuilding_Jewelcrafting_3_A_Info','GarrBuilding_Jewelcrafting_1_A_Map','GarrBuilding_Jewelcrafting_2_A_Map','GarrBuilding_Jewelcrafting_3_A_Map','GarrBuilding_Enchanting_1_A_Info','GarrBuilding_Enchanting_2_A_Info','GarrBuilding_Enchanting_3_A_Info','GarrBuilding_Enchanting_1_A_Map','GarrBuilding_Enchanting_2_A_Map','GarrBuilding_Enchanting_3_A_Map','GarrBuilding_Blacksmith_1_A_Info','GarrBuilding_Blacksmith_2_A_Info','GarrBuilding_Blacksmith_3_A_Info','GarrBuilding_Blacksmith_1_A_Map','GarrBuilding_Blacksmith_2_A_Map','GarrBuilding_Blacksmith_3_A_Map','GarrBuilding_Fishing_1_A_Info','GarrBuilding_Fishing_2_A_Info','GarrBuilding_Fishing_3_A_Info','GarrBuilding_Fishing_1_A_Map','GarrBuilding_Fishing_2_A_Map','GarrBuilding_Fishing_3_A_Map','GarrBuilding_Workshop_1_A_Info','GarrBuilding_Workshop_2_A_Info','GarrBuilding_Workshop_3_A_Info','GarrBuilding_Workshop_1_A_Map','GarrBuilding_Workshop_2_A_Map','GarrBuilding_Workshop_3_A_Map','groupfinder-eye-highlight','GarrBuilding_Tailoring_1_A_Info','GarrBuilding_Tailoring_2_A_Info','GarrBuilding_Tailoring_3_A_Info','GarrBuilding_Tailoring_1_A_Map','GarrBuilding_Tailoring_2_A_Map','GarrBuilding_Tailoring_3_A_Map','GarrBuilding_Inscription_1_A_Info','GarrBuilding_Inscription_2_A_Info','GarrBuilding_Inscription_3_A_Info','GarrBuilding_Inscription_1_A_Map','GarrBuilding_Inscription_2_A_Map','GarrBuilding_Inscription_3_A_Map','GarrBuilding_Leatherworking_1_A_Info','GarrBuilding_Leatherworking_2_A_Info','GarrBuilding_Leatherworking_3_A_Info','GarrBuilding_Leatherworking_1_A_Map','GarrBuilding_Leatherworking_2_A_Map','GarrBuilding_Leatherworking_3_A_Map','GarrLanding-TradeskillTimer-ParchmentBG','GarrBuilding_EmptyPlot_A_1','GarrBuilding_EmptyPlot_A_2','GarrBuilding_EmptyPlot_A_3','GarrLanding-ShipmentCompleteGlow','GarrBuilding_PetStable_1_A_Info','GarrBuilding_PetStable_1_A_Map','_GarrMissionLocation-Gorgrond-Back','_GarrMissionLocation-Gorgrond-Fore','_GarrMissionLocation-Nagrand-Back','_GarrMissionLocation-Nagrand-Fore','_GarrMissionLocation-Nagrand-Mid','_GarrMissionLocation-Talador-Back','_GarrMissionLocation-Talador-Fore','_GarrMissionLocation-Talador-Mid','_GarrMissionLocation-ShadowmoonValley-Back','_GarrMissionLocation-ShadowmoonValley-Fore','_GarrMissionLocation-ShadowmoonValley-Mid','_GarrMissionLocation-SpiresofArak-Back','_GarrMissionLocation-SpiresofArak-Fore','_GarrMissionLocation-SpiresofArak-Mid','_GarrMissionLocation-Underground-Back','_GarrMissionLocation-Underground-Fore','_GarrMissionLocation-Underground-Mid','_GarrMissionLocation-TownHorde-Back','_GarrMissionLocation-TownHorde-Fore','_GarrMissionLocation-TownHorde-Mid','_GarrMissionLocation-TownAlliance-Back','_GarrMissionLocation-TownAlliance-Fore','_GarrMissionLocation-TownAlliance-Mid','GarrBuilding_Tailoring_1_H_Info','GarrBuilding_Tailoring_1_H_Map','GarrBuilding_Tailoring_2_H_Info','GarrBuilding_Tailoring_3_H_Info','GarrBuilding_Tailoring_2_H_Map','GarrBuilding_Tailoring_3_H_Map','GarrBuilding_Leatherworking_1_H_Info','GarrBuilding_Leatherworking_2_H_Info','GarrBuilding_Leatherworking_3_H_Info','GarrBuilding_Leatherworking_1_H_Map','GarrBuilding_Leatherworking_2_H_Map','GarrBuilding_Leatherworking_3_H_Map','GarrBuilding_Jewelcrafting_1_H_Info','GarrBuilding_Jewelcrafting_2_H_Info','GarrBuilding_Jewelcrafting_3_H_Info','GarrBuilding_Jewelcrafting_1_H_Map','GarrBuilding_Jewelcrafting_2_H_Map','GarrBuilding_Jewelcrafting_3_H_Map','GarrBuilding_Inscription_1_H_Info','GarrBuilding_Inscription_2_H_Info','GarrBuilding_Inscription_3_H_Info','GarrBuilding_Inscription_1_H_Map','GarrBuilding_Inscription_2_H_Map','GarrBuilding_Inscription_3_H_Map','GarrBuilding_Engineering_1_H_Info','GarrBuilding_Engineering_2_H_Info','GarrBuilding_Engineering_3_H_Info','GarrBuilding_Engineering_1_H_Map','GarrBuilding_Engineering_2_H_Map','GarrBuilding_Engineering_3_H_Map','GarrBuilding_Enchanting_1_H_Info','GarrBuilding_Enchanting_2_H_Info','GarrBuilding_Enchanting_3_H_Info','GarrBuilding_Enchanting_1_H_Map','GarrBuilding_Enchanting_2_H_Map','GarrBuilding_Enchanting_3_H_Map','GarrBuilding_Blacksmith_1_H_Info','GarrBuilding_Blacksmith_2_H_Info','GarrBuilding_Blacksmith_3_H_Info','GarrBuilding_Blacksmith_1_H_Map','GarrBuilding_Blacksmith_2_H_Map','GarrBuilding_Blacksmith_3_H_Map','GarrBuilding_Alchemy_1_H_Info','GarrBuilding_Alchemy_2_H_Info','GarrBuilding_Alchemy_3_H_Info','GarrBuilding_Alchemy_1_H_Map','GarrBuilding_Alchemy_2_H_Map','GarrBuilding_Alchemy_3_H_Map','GarrBuilding_Barn_1_H_Info','GarrBuilding_Barn_2_H_Info','GarrBuilding_Barn_3_H_Info','GarrBuilding_Barn_1_H_Map','GarrBuilding_Barn_2_H_Map','GarrBuilding_Barn_3_H_Map','GarrBuilding_Fishing_1_H_Info','GarrBuilding_Fishing_2_H_Info','GarrBuilding_Fishing_3_H_Info','GarrBuilding_Fishing_1_H_Map','GarrBuilding_Fishing_2_H_Map','GarrBuilding_Fishing_3_H_Map','GarrBuilding_Farm_1_H_Info','GarrBuilding_Farm_1_H_Map','GarrBuilding_EmptyPlot_H_3','GarrBuilding_EmptyPlot_H_2','GarrBuilding_EmptyPlot_H_1','GarrBuilding_Inn_1_H_Info','GarrBuilding_Inn_2_H_Info','GarrBuilding_Inn_3_H_Info','GarrBuilding_Inn_1_H_Map','GarrBuilding_Inn_2_H_Map','GarrBuilding_Inn_3_H_Map','GarrBuilding_TownHall_1_H_Info','GarrBuilding_TownHall_2_H_Info','GarrBuilding_TownHall_3_H_Info','GarrBuilding_TownHall_1_H_Map','GarrBuilding_TownHall_2_H_Map','GarrBuilding_TownHall_3_H_Map','GarrBuilding_Storehouse_1_H_Info','GarrBuilding_Storehouse_1_H_Map','GarrBuilding_SalvageYard_1_H_Info','GarrBuilding_SalvageYard_1_H_Map','GarrBuilding_Barracks_1_H_Info','GarrBuilding_Barracks_2_H_Info','GarrBuilding_Barracks_3_H_Info','GarrBuilding_Barracks_1_H_Map','GarrBuilding_Barracks_2_H_Map','GarrBuilding_Barracks_3_H_Map','GarrBuilding_SparringArena_1_H_Info','GarrBuilding_SparringArena_2_H_Info','GarrBuilding_SparringArena_3_H_Info','GarrBuilding_SparringArena_1_H_Map','GarrBuilding_SparringArena_2_H_Map','GarrBuilding_SparringArena_3_H_Map','GarrBuilding_Armory_1_H_Info','GarrBuilding_Armory_2_H_Info','GarrBuilding_Armory_3_H_Info','GarrBuilding_Armory_1_H_Map','GarrBuilding_Armory_2_H_Map','GarrBuilding_Armory_3_H_Map','GarrBuilding_MageTower_1_H_Info','GarrBuilding_MageTower_2_H_Info','GarrBuilding_MageTower_3_H_Info','GarrFollower-Shadow','GarrBuilding_MageTower_1_H_Map','GarrBuilding_MageTower_2_H_Map','GarrBuilding_MageTower_3_H_Map','GarrBuilding_Stables_2_H_Info','GarrBuilding_Stables_3_H_Info','GarrBuilding_Stables_1_H_Info','GarrBuilding_Stables_1_H_Map','GarrBuilding_Stables_2_H_Map','GarrBuilding_Stables_3_H_Map','GarrBuilding_TradingPost_1_H_Info','GarrBuilding_TradingPost_2_H_Info','GarrBuilding_TradingPost_3_H_Info','GarrBuilding_TradingPost_1_H_Map','GarrBuilding_TradingPost_2_H_Map','GarrBuilding_TradingPost_3_H_Map','GarrBuilding_Workshop_1_H_Info','GarrBuilding_Workshop_2_H_Info','GarrBuilding_Workshop_3_H_Info','GarrBuilding_Workshop_1_H_Map','GarrBuilding_Workshop_2_H_Map','GarrBuilding_Workshop_3_H_Map','GarrBuilding_Mine_1_H_Info','GarrBuilding_Mine_1_H_Map','GarrBuilding_LumberMill_1_H_Info','GarrBuilding_LumberMill_2_H_Info','GarrBuilding_LumberMill_3_H_Info','GarrBuilding_LumberMill_1_H_Map','GarrBuilding_LumberMill_2_H_Map','GarrBuilding_LumberMill_3_H_Map','GarrBuilding_PetStable_1_H_Info','GarrBuilding_PetStable_1_H_Map','GarrMission-AllianceChest','GarrMission-HordeChest','DungeonTargetIndicator','GarrMission_PortraitRing_Darkener','GarrMission_PortraitRing_Quality','BonusChest-OrangeSmoke-Wide','BonusChest-OrangeGlow-Wide','loottoast-bg-alliance','loottoast-bg-horde','groupfinder-button-highlight','groupfinder-button-select','groupfinder-button-cover-down','GarrMission_EncounterBar-CheckMark-Left','GarrMission_EncounterBar-CheckMark-Right','GarrMission_EncounterBar-CheckMark','GarrMission_EncounterBar-CheckMarkCircleSwipe','Alliance_Tier1_Mine','Alliance_Tier1_Trading1','Alliance_Tier1_Armory1','Alliance_Tier1_Mage1','Alliance_Tier1_Mage2','Alliance_Tier1_Armory2','Alliance_Tier1_Stables1','Alliance_Tier1_Barracks1','Alliance_Tier1_Stables2','Alliance_Tier1_Lumber1','Alliance_Tier1_Barn2','Alliance_Tier1_Professions2','Alliance_Tier1_Inn1','Alliance_Tier1_Farm','Menagery1','Alliance_Tier1_Arena2','Alliance_Tier1_Lumber2','Alliance_Tier1_Trading2','Alliance_Tier1_Fishing','Alliance_Tier1_Barn1','Alliance_Tier1_Inn2','Alliance_Tier1_Arena1','Alliance_Tier2_Arena1','Alliance_Tier2_Arena2','Alliance_Tier2_Armory1','Alliance_Tier2_Armory2','Alliance_Tier2_Barn1','Alliance_Tier2_Barn2','Alliance_Tier2_Barracks1','Alliance_Tier2_Inn1','Alliance_Tier2_Inn2','Alliance_Tier2_Lumber1','Alliance_Tier2_Lumber2','Alliance_Tier2_Mage1','Alliance_Tier2_Mage2','Alliance_Tier2_Stables1','Alliance_Tier2_Stables2','Alliance_Tier2_Trading1','Alliance_Tier2_Trading2','Alliance_Tier3_Barn1','Alliance_Tier3_Lumber1','Alliance_Tier3_Mage2','Alliance_Tier3_Inn1','Alliance_Tier3_Barracks1','Alliance_Tier3_Armory2','Alliance_Tier3_Mage1','Alliance_Tier3_Lumber2','Alliance_Tier3_Inn2','Alliance_Tier3_Stables1','Alliance_Tier3_Trading2','Alliance_Tier3_Arena1','Alliance_Tier3_Trading1','Alliance_Tier3_Stables2','Alliance_Tier3_Barn2','Alliance_Tier3_Armory1','Alliance_Tier3_Arena2','Alliance_Tier1_Barracks2','Alliance_Tier2_Barracks2','Alliance_Tier3_Barracks2','Alliance_Tier1_Workshop1','Alliance_Tier1_Workshop2','Alliance_Tier2_Workshop1','Alliance_Tier2_Workshop2','Alliance_Tier3_Workshop1','Alliance_Tier3_Workshop2','StreamCinematic-LK-Down','StreamCinematic-LK-Up','StreamCinematic-WOD-Down','StreamCinematic-WOD-Up','StreamCinematic-BC-Down','StreamCinematic-BC-Up','StreamCinematic-CC-Down','StreamCinematic-CC-Up','StreamCinematic-Classic-Down','StreamCinematic-Classic-Up','StreamCinematic-DownloadIcon','StreamCinematic-Highlight','StreamCinematic-PlayButton','StreamCinematic-ProgressBarBG','StreamCinematic-MOP-Down','StreamCinematic-MOP-Up','accountupgradebanner-bc','accountupgradebanner-cataclysm','accountupgradebanner-classic','accountupgradebanner-mop','accountupgradebanner-wod','accountupgradebanner-wotlk','MissionFX-Smoke','MissionFX-SparkLines','Horde_Tier1_Arena1','Horde_Tier1_Arena2','Horde_Tier1_Armory1','Horde_Tier1_Armory2','Horde_Tier1_Barn1','Horde_Tier1_Barn2','Horde_Tier1_Barracks1','Horde_Tier1_Barracks2','Horde_Tier1_Farm1','Horde_Tier1_Fishing1','Horde_Tier1_Inn1','Horde_Tier1_Inn2','Horde_Tier1_Lumber1','Horde_Tier1_Lumber2','Horde_Tier1_Mage1','Horde_Tier1_Mage2','Horde_Tier1_Mine1','Horde_Tier1_Profession1','Horde_Tier1_Profession2','Horde_Tier1_Profession3','Horde_Tier1_Stables1','Horde_Tier1_Stables2','Horde_Tier1_Trading1','Horde_Tier1_Trading2','Horde_Tier1_Workshop1','Horde_Tier1_Workshop2','Horde_Tier2_Arena1','Horde_Tier2_Arena2','Horde_Tier2_Armory1','Horde_Tier2_Armory2','Horde_Tier2_Barn1','Horde_Tier2_Barn2','Horde_Tier2_Barracks1','Horde_Tier2_Barracks2','Horde_Tier2_Inn1','Horde_Tier2_Inn2','Horde_Tier2_Lumber1','Horde_Tier2_Lumber2','Horde_Tier2_Mage1','Horde_Tier2_Mage2','Horde_Tier2_Stables1','Horde_Tier2_Stables2','Horde_Tier2_Trading1','Horde_Tier2_Trading2','Horde_Tier2_Workshop1','Horde_Tier2_Workshop2','Horde_Tier3_Arena1','Horde_Tier3_Arena2','Horde_Tier3_Armory1','Horde_Tier3_Armory2','Horde_Tier3_Barn1','Horde_Tier3_Barn2','Horde_Tier3_Barracks1','Horde_Tier3_Barracks2','Horde_Tier3_Inn1','Horde_Tier3_Inn2','Horde_Tier3_Lumber1','Horde_Tier3_Lumber2','Horde_Tier3_Mage1','Horde_Tier3_Mage2','Horde_Tier3_Stables1','Horde_Tier3_Stables2','Horde_Tier3_Trading1','Horde_Tier3_Trading2','Horde_Tier3_Workshop1','Horde_Tier3_Workshop2','GarrMission_TabGlow','Garr_Plot_Frostfire_H_3','Garr_Plot_Frostfire_H_2','Garr_Plot_Frostfire_H_1','Garr_Plot_Frostfire_H_4','BonusChest-GreenGlow-Wide','GarrMission_PortraitRing_iLvlBorder','bags-icon-consumables','bags-icon-equipment','bags-icon-tradegoods','search-highlight','search-select','_search-rowbg','GarrMission_EncounterAbilityBorder-Lg','GarrMission_EncounterBar-Elite','GarrMission_RewardsBox_Shadow','GarrMission_MissionCompleteChanceBg','GarrMission_CurrentEncounter-Glow','GarrMission_CurrentEncounter-SpikeyGlow','_GarrMissionLocation-Gorgrond-Mid','GarrMissionLocation-FrostfireRidge-List','GarrMissionLocation-Gorgrond-List','GarrMissionLocation-Nagrand-List','GarrMissionLocation-ShadowmoonValley-List','GarrMissionLocation-SpiresofArak-List','GarrMissionLocation-Talador-List','GarrMissionLocation-TannanJungle-List','groupfinder-icon-class-deathknight','groupfinder-icon-class-druid','groupfinder-icon-class-hunter','groupfinder-icon-class-mage','groupfinder-icon-class-monk','groupfinder-icon-class-paladin','groupfinder-icon-class-priest','groupfinder-icon-class-rogue','groupfinder-icon-class-shaman','groupfinder-icon-class-warlock','groupfinder-icon-class-warrior','groupfinder-icon-emptyslot','groupfinder-icon-quest','groupfinder-icon-role-large-dps','groupfinder-icon-role-large-heal','groupfinder-icon-role-large-tank','_GarrMissionLocation-BlackrockMountain-Back','_GarrMissionLocation-BlackrockMountain-Fore','_GarrMissionLocation-BlackrockMountain-Mid','_GarrMissionLocation-BlackrockMountain-List','GarrLanding-Tab-Bottom-Selected','GarrLanding-Tab-Bottom-Unselected','GarrLanding-Tab-Bottom-Highlight','challenges-timerborder','challenges-blackfade','challenges-timerbg','challenges-bannershine','challenges-toast','Banner-BgFiligree','Banner-FiligreeShadow','Banner-SmallFiligree','ScenariosIcon','ScenarioTrackerToast-FinalFiligree','ScenarioTrackerToast','Toast-Flash','Toast-Frame','Toast-IconBG','challenges-nomedal','Bonus-ToastBanner','groupfinder-button-ashran','groupfinder-background-arenas','groupfinder-background-ashran','groupfinder-background-battlegrounds','groupfinder-background-custom-pve','groupfinder-background-custom-pvp','groupfinder-background-dungeons','groupfinder-background-questing','groupfinder-background-raids-bc','groupfinder-background-raids-cataclysm','groupfinder-background-raids-classic','groupfinder-background-raids-mists','groupfinder-background-raids-wrath','groupfinder-background-ratedbgs','groupfinder-background-scenarios','groupfinder-background-skirmishes','groupfinder-background-raids-warlords','groupfinder-button-raids-warlords','GarrLanding-Tab-Bottom-Selected-Right','GarrLanding-Tab-Bottom-Unselected-Left','GarrLanding-Tab-Bottom-Selected-Left','GarrLanding-Tab-Bottom-Highlight-Right','GarrLanding-Tab-Bottom-Highlight-Left','GarrLanding-Tab-Bottom-Unselected-Right','collections-watermark-toy','CacheToast-Glow','CacheToast','NPE_ExclamationPoint','NPE_Icon','NPE_LeftClick','NPE_RightClick','NPE_TurnIn','NPE_ArrowDownGlow','NPE_ArrowUpGlow','NPE_ArrowUp','NPE_ArrowDown','NPE_ArrowRightGlow','NPE_keyboard','NPE_ArrowRight','NPE_ArrowLeftGlow','NPE_ArrowLeft','UI-Minimap-Clock','GarrLanding-TradeskillTimer-Border','barbershop-background','groupfinder-waitdot','OBJFX-BarGlow','deathrecap-icon-tombstone','collections-watermark-heirloom','Crop-Corner','Crop-Side','Crop-Top','WoWShare-AchievementIcon','WoWShare-AddButton-Down','WoWShare-AddButton-Up','WoWShare-ChatIcon','WoWShare-Highlight','WoWShare-ItemQualityBorder','WoWShare-Plus','WoWShare-Selection','WoWShare-ItemIcon','WoWShare-ScreenshotIcon','token-button-category','token-itemslot','token-choice-bnet','token-choice-wow','WoWShare-EdgeArt','UI-DialogBox-goldbutton-down-right-blue','UI-DialogBox-goldbutton-down-left-blue','UI-DialogBox-goldbutton-up-middle-blue','UI-DialogBox-goldbutton-up-right-blue','UI-DialogBox-goldbutton-up-left-blue','UI-DialogBox-goldbutton-down-middle-blue','BossBanner-BottomFillagree','BossBanner-SkullCircle','BossBanner-TopFillagree','BossBanner-RedFlash','BossBanner-LeftFillagree','BossBanner-RightFillagree','BossBanner-SkullSpikes','deathrecap-iconborder','deathrecap-background-innerglow','!GeneralFrame-InsetFrame-Left','!GeneralFrame-InsetFrame-Right','GeneralFrame-HorizontalBar-Left','GeneralFrame-HorizontalBar-Right','GeneralFrame-InsetFrame-BottomLeft','GeneralFrame-InsetFrame-BottomRight','GeneralFrame-InsetFrame-TopLeft','GeneralFrame-InsetFrame-TopRight','_GeneralFrame-HorizontalBar','_GeneralFrame-InsetFrame-Bottom','_GeneralFrame-InsetFrame-Top','collections-upgradeglow','XPBarAnim-OrangeGain','XPBarAnim-OrangeSpark','XPBarAnim-OrangeTrail','XPBarAnim-OrangeGlow','XPBarAnim-GlowLines','collections-upgradeglow-blue','splash-610-botleft','splash-610-right','splash-610-topleft','Garr_MissionToast-Blank','colorblind-bar-green','colorblind-bar-red','colorblind-bar-yellow','colorblind-colorwheel','GarrMission_MissionTooltipAway','GarrMission_MissionTooltipWorking','GarrMission_CounterHalfCheck','TalkingHeads-Glow-TopSpike','TalkingHeads-PortraitBg','TalkingHeads-TextBackground','TalkingHeads-PortraitFrame','TalkingHeads-Glow-TopBarGlow','TalkingHeads-Glow-SideBarGlow','TalkingHeads-Glow-Sheen','TalkingHeads-Glow-TextSheen','GarrMission-AbilityHighlight','token-info-background','WoWShare-TwitterLogo','token-info-arrow','adventureguide-pane-large','adventureguide-ring','BossBanner-BgBanner-Bottom','BossBanner-BgBanner-Top','LootBanner-IconGlow','LootBanner-ItemBg','LootBanner-LootBagCircle','BossBanner-BgBanner-Mid','LootToast-LessAwesome','transmog-frame-pink','transmog-frame-red','transmog-frame-selected','transmog-frame','transmog-icon-chat','transmog-icon-checkmark','transmog-icon-remove','transmog-icon-revert-small-disabled','transmog-icon-revert-small','transmog-icon-revert','transmog-wardrobe-border-collected','transmog-wardrobe-border-highlighted','transmog-wardrobe-border-selected','transmog-wardrobe-border-uncollected','adventureguide-pane-small','NavalMap01','!ShipMission_Bg-Edge','!ShipMission_RewardsBorder-Left-Desaturate','!GarrMission_Bg-DarkEdge','!ShipMission_Bg-DarkEdge','_ShipMission_Bg-BottomEdge','_ShipMission_Bg-BottomEdgeSmall','_ShipMission_LocationCover-Bottom','_ShipMission_RewardsBorder-Top-Desaturate','_ShipMission_TopBorder','ShipMission_FollowerListButton-Highlight','ShipMission_FollowerListButton-Select','ShipMission_FollowerListButton','ShipMission_IconLevelBG','ShipMission_TopBorderCorner','ShipMission_Bg-DarkEdgeCorner','ShipMission_BoatRarity-Epic','ShipMission_BoatRarity-Rare','ShipMission_BoatRarity-Uncommon','ShipMission_DangerousSkull','ShipMission_EncounterAbilityBorder-Lg','ShipMission_EncounterAbilityBorder','ShipMission_LocationCover-Side','ShipMission_MissionCostStartButtonBg','ShipMission_RewardsBG-Desaturate','ShipMission_RewardsBorder-Corner-Desaturate','ShipMission_StartMissionFrame','ShipMissionParchment-Tile','_GarrMissionLocation-TannanSea-Back','_GarrMissionLocation-TannanSea-Fore','_GarrMissionLocation-TannanSea-Mid','ShipMission_CurrencyIcon-Oil','NavalMap-Horde-Fog','NavalMap-Horde-Highlight','NavalMap-Alliance-Fog','NavalMap-IronHorde-Fog','NavalMap-OpenWaters-Fog','NavalMap-Alliance-Highlight','NavalMap-IronHorde-Highlight','NavalMap-OpenWaters-Highlight','ShipMission_FollowerBG','ShipMission_FollowerBG-Glow','Ships_GalleonH-List','Ships_GalleonH-Portrait','Ships_GalleonH-Map','ShipMissionIcon-Combat-Map','ShipMissionIcon-Combat-MapBadge','ShipMissionIcon-Oil-Map','ShipMissionIcon-Oil-MapBadge','ShipMissionIcon-SiegeA-Map','ShipMissionIcon-SiegeA-MapBadge','ShipMissionIcon-SiegeH-Map','ShipMissionIcon-SiegeH-MapBadge','ShipMissionIcon-Training-Map','ShipMissionIcon-Training-MapBadge','ShipMissionIcon-Treasure-Map','ShipMissionIcon-Treasure-MapBadge','Ships_TroopTransport-List','Ships_TroopTransport-Portrait','Ships_TroopTransport-Map','Ships_EnemyTroopTransport-Portrait','Ships_Dreadnaught-List','Ships_Dreadnaught-Portrait','Ships_Dreadnaught-Map','Ships_EnemyDreadnaught-Portrait','Ships_SubmarineH-List','Ships_SubmarineH-Portrait','Ships_SubmarineH-Map','Ships_EnemySubmarineH-Portrait','Ships_SubmarineA-List','Ships_SubmarineA-Portrait','Ships_SubmarineA-Map','Ships_EnemySubmarineA-Portrait','ShipMissionIcon-Combat-Mission','ShipMissionIcon-Oil-Mission','ShipMissionIcon-SiegeA-Mission','ShipMissionIcon-SiegeH-Mission','ShipMissionIcon-Training-Mission','ShipMissionIcon-Treasure-Mission','Ships_EnemyGalleonH-Portrait','Ships_GalleonA-List','Ships_GalleonA-Portrait','Ships_GalleonA-Map','Ships_EnemyGalleonA-Portrait','Ships_CargoShip-List','Ships_CargoShip-Portrait','Ships_CargoShip-Map','Ships_EnemyCargoShip-Portrait','Ships_Carrier-List','Ships_Carrier-Portrait','Ships_Carrier-Map','Ships_EnemyCarrier-Portrait','ShipMission_ShipFollower-EquipmentBG','ShipMission_ShipFollower-EquipmentFrame','ShipMission_ShipFollower-Lock-Epic','ShipMission_ShipFollower-Lock-Rare','ShipMission_ShipFollower-TypeFrame','transmog-frame-small-pink','transmog-frame-small','transmog-frame-small-selected','transmog-frame-small-red','ShipMission-RedGlowRing','adventureguide-rewardring','WildBattlePet','StableMaster','ArchBlob','Banker','Focus','BattleMaster','Ammunition','Class','Profession','Target','Food','Reagents','Innkeeper','Auctioneer','Repair','Mailbox','FlightMaster','None','QuestBlob','TrivialQuests','Poisons','PlayerFriend','QuestRepeatableTurnin','MantidTowerDestroyed','PortalRed','QuestTurnin','Object','Gear','MonsterFriend','MonsterEnemy','PortalPurple','DungeonSkull','PlayerNeutral','MonsterNeutral','PortalBlue','QuestLegendaryTurnin','QuestDaily','PlayerControlled','VignetteLoot','VignetteEvent','PlayerEnemy','PartyMember','XMarksTheSpot','QuestObjective','QuestLegendary','ArtifactQuest','QuestNormal','VignetteLootElite','FlightPath','VignetteEventElite','ChatBallon','MantidTower','RaidMember','VignetteKill','QuestBonusObjective','ArtifactQuestTurnin','SmallQuestBang','VignetteKillElite','GreenCross','PlayerDeadBlip','PlayerPartyBlip','PlayerRaidBlip','Vehicle-Air-Alliance','Vehicle-Air-Horde','Vehicle-Air-Occupied','Vehicle-Air-Unoccupied','Vehicle-AllianceCart','Vehicle-Carriage','Vehicle-Ground-Occupied','Vehicle-Ground-Unoccupied','Vehicle-GrummleConvoy','Vehicle-HammerGold-1','Vehicle-HammerGold-2','Vehicle-HammerGold-3','Vehicle-HammerGold','Vehicle-HordeCart','Vehicle-Mogu','Vehicle-SilvershardMines-Arrow','Vehicle-SilvershardMines-MineCart','Vehicle-SilvershardMines-MineCartBlue','Vehicle-SilvershardMines-MineCartRed','Vehicle-TempleofKotmogu-CyanBall','Vehicle-TempleofKotmogu-GreenBall','Vehicle-TempleofKotmogu-OrangeBall','Vehicle-TempleofKotmogu-PurpleBall','Vehicle-Trap-Gold','Vehicle-Trap-Grey','Vehicle-Trap-Red','QuestSkull','Focus-Tracker','MagePortalAlliance','MagePortalHorde','QuestArtifact','QuestArtifactTurnin','Target-Tracker','WarlockPortalAlliance','WarlockPortalHorde','WildBattlePet-Tracker','WildBattlePetCapturable','CrossedFlags','CrossedFlagsWithTimer','MiniMap-DeadArrow','MiniMap-PositionArrows','MiniMap-QuestArrow','MiniMap-VignetteArrow','MinimapArrow','Rotating-MinimapArrow','Rotating-MinimapGroupArrow','Rotating-MinimapGuideArrow','MiniMap-PositionArrowDown','MiniMap-PositionArrowUp','MovieRecordingIcon','BossBanner-RedLightning','Artifacts-PerkRing-GoldMedal','Artifacts-PerkRing-MainProc-Glow','Artifacts-PerkRing-MainProc','Artifacts-PerkRing-Small','Artifacts-PointsBox','Artifacts-PerkRing-Highlight','ArtifactsFX-SpinningGlowys','ArtifactsFX-StarBurst','ArtifactsFX-Whirls','ArtifactsFX-YellowRing','Artifacts-DemonHunter-BG','Artifacts-Paladin-BG','Artifacts-PointsBoxGreen','ArtifactsFX-PointSideBurstLeft','ArtifactsFX-PointSideBurstRight','vas-receipt-selectedcharbg','Ships_CarrierA-List','Ships_CarrierA-Portrait','Ships_CarrierA-Map','Ships_CarrierH-Map','Ships_CarrierH-List','Ships_CarrierH-Portrait','GarrLanding-ShipMission-Complete','GarrLanding-ShipMission-InProgress','_GarrMissionLocation-FrostfireSea-Back','_GarrMissionLocation-FrostfireSea-Fore','_GarrMissionLocation-FrostfireSea-Mid','_GarrMissionLocation-ShadowmoonSea-Back','_GarrMissionLocation-ShadowmoonSea-Fore','_GarrMissionLocation-ShadowmoonSea-Mid','_GarrMissionLocation-NagrandSea-Back','_GarrMissionLocation-NagrandSea-Fore','_GarrMissionLocation-NagrandSea-Mid','ShipMission_Toast','adventureguide-redx','Artifacts-MageArcane-BG','GarrisonFX_BlueFlare','GarrMission_WeakEncounterAbilityBorder-Lg','bonusobjectives-bar-bg','bonusobjectives-bar-fill','bonusobjectives-bar-frame','bonusobjectives-bar-glow-ring','bonusobjectives-bar-glow','bonusobjectives-bar-ring','bonusobjectives-bar-sheen','bonusobjectives-bar-spark','bonusobjectives-bar-starburst','bonusobjectives-title-bg','bonusobjectives-title-icon','ShipMission_NameBG','ShipMission_PartyBuffsBG','Ships_DreadnaughtA-List','Ships_DreadnaughtA-Portrait','Ships_DreadnaughtA-Map','Ships_DreadnaughtH-List','Ships_DreadnaughtH-Portrait','Ships_DreadnaughtH-Map','Ships_EnemyDreadnaughtH-Portrait','Ships_EnemyDreadnaughtA-Portrait','FontStyle_Parchment','FontStyle_BlueGradient','FontStyle_Garrisons','FontStyle_IronHordeMetal','FontStyle_Legion','FontStyle_Metal','splash-620-botleft','splash-620-right','splash-620-topleft','Artifacts-DeathKnightFrost-BG','shop-card-darkcover','Artifacts-Warrior-BG','Artifacts-Rogue-BG','Artifacts-Druid-BG','ShipMissionIcon-Bonus-Mission','ShipMissionIcon-Bonus-Map','ShipMissionIcon-Bonus-MapBadge','NavalMap-CircleGlowTrails','NavalMap-LargeBonusCircle','NavalMap-SmallBonusCircle','GarrisonFX-StarBurst','GarrMission_WeakEncounterAbilityBorder','ShipMission-TimerBG','services-icon-warning','ShipMissionIcon-Legendary-Map','ShipMissionIcon-Legendary-MapBadge','ShipMissionIcon-Legendary-Mission','_ForgeBorder-Top','!ForgeBorder-Right','_DemonHunter-DemonicFuryBar','services-icon-goldborder','vas-receipt-brownarrow','vas-receipt-greenbg','Ships_EnemyCarrierA-Portrait','Ships_EnemyCarrierH-Portrait','LootToast-MoreAwesome','legioninvasion-map-icon-portal-large','legioninvasion-map-icon-portal','legioninvasion-scenario-rewardring','legioninvasion-ScenarioTrackerToast','legioninvasion-Toast-Frame','legioninvasion-map-cover','ShipMissionIcon-SiegeIHA-Map','ShipMissionIcon-SiegeIHA-MapBadge','ShipMissionIcon-SiegeIHH-Map','ShipMissionIcon-SiegeIHH-MapBadge','ShipMissionIcon-SiegeIHA-Mission','ShipMissionIcon-SiegeIHH-Mission','tournamentarena-flag-large-blue-flash','tournamentarena-flag-large-blue','tournamentarena-flag-large-red-flash','tournamentarena-flag-large-red','tournamentarena-frame-bg-side-blue','tournamentarena-frame-bg-side-red','tournamentarena-frame-bot','tournamentarena-frame-botleft','tournamentarena-frame-botright','tournamentarena-frame-left','tournamentarena-frame-right','tournamentarena-frame-top','tournamentarena-frame-topleft','tournamentarena-frame-topright','tournamentarena-titlebackplate','honorsystem-bar-background','honorsystem-bar-frame','honorsystem-bar-spark','honorsystem-bar-rewardborder-prestige-flash','honorsystem-bar-rewardborder-prestige','honorsystem-bar-rewardborder','honorsystem-prestige-laurel-bg-alliance','honorsystem-prestige-laurel-bg-horde','honorsystem-prestige-laurel','honorsystem-talents-bg','_honorsystem-bar-fill','honorsystem-icon-prestige-1','honorsystem-icon-prestige-10','honorsystem-icon-prestige-11','honorsystem-icon-prestige-2','honorsystem-icon-prestige-3','honorsystem-icon-prestige-4','honorsystem-icon-prestige-5','honorsystem-icon-prestige-6','honorsystem-icon-prestige-7','honorsystem-icon-prestige-8','honorsystem-icon-prestige-9','bonusobjectives-title-icon-honor','honorsystem-bar-frame-small','honorsystem-bar-rewardborder-circle','honorsystem-icon-bonus','honorsystem-portrait-alliance','honorsystem-portrait-horde','DemonInvasion1','DemonInvasion2','DemonInvasion3','DemonInvasion4','_Shaman-MaelstromBar','_Druid-LunarBar','titleprestige-glowcover','titleprestige-prestigeicon','titleprestige-starglow','titleprestige-title','titleprestige-title2','titleprestige-wreath','titleprestige-title-bg','titleprestige-ember','services-popup-bot','services-popup-botleft','services-popup-botright','services-popup-top','services-popup-topleft','services-popup-topright','services-popup-bg','services-popup-left','services-popup-right','titleprestige-wings','titleprestige-wings2','titleprestige-wings-white','titleprestige-wings2-white','titleprestige-starcrown','AdventureMapLabel-Large','AdventureMapLabel-Small','AdventureMapIcon-DailyQuest','AdventureMapIcon-MissionCombat','AdventureMapIcon-Quest','AdventureMapIcon-SandboxQuest','QuestPortraitIcon-SandboxQuest','Mage-ArcaneCharge','Mage-ArcaneChargeBar','Priest-InsanityOverlay','_Priest-InsanityBar','Legion-boostpopup-bottom','Legion-boostpopup-middle','Legion-boostpopup-top','AdventureMapIcon-Lock','AdventureMapLabel-MissionTimer','AdventureMapLabel-QuestDiscovered','FXAM-QuestBang','FXAM-SmallSpikeyGlow','Mission-FollowerPortraitFrame','Mission-LootBackgroundGlow','FogofWar','AdventureMapQuest-QuestPane','AdventureMapQuest-RewardsPanel','AdventureMapQuest-ItemNameBG','charactercreate-banner-bottom','charactercreate-banner-middle','charactercreate-banner-top','Artifacts-Shaman-BG','Artifacts-Hunter-BG','Artifacts-Priest-BG','Artifacts-Monk-BG','Artifacts-Warlock-BG','services-checkmark','services-cover-ring','services-cover','services-icon-bonus-large','services-icon-bonus-red','services-icon-bonus','services-icon-processing','services-number-1','services-number-2','services-number-3','services-number-4','services-number-5','services-number-6','services-number-7','services-number-8','services-number-9','services-ring-countcircle','services-ring-large-glow','services-ring-large-glowpulse','services-ring-large-glowspin','services-ring-large','services-ring-wod','services-ring','services-yellowarrow','transmog-nav-slot-back','transmog-nav-slot-chest','transmog-nav-slot-feet','transmog-nav-slot-hands','transmog-nav-slot-head','transmog-nav-slot-legs','transmog-nav-slot-mainhand','transmog-nav-slot-selected','transmog-nav-slot-shirt','transmog-nav-slot-shoulder','transmog-nav-slot-tabard','transmog-nav-slot-waist','transmog-nav-slot-wrist','boostpopup-wod-bottom','boostpopup-wod-middle','boostpopup-wod-top','Relic-Arcane-Slot','Relic-Arcane-TraitBG','Relic-Arcane-TraitGlow','Relic-Arcane-TraitGlowRing','Relic-Blood-Slot','Relic-Blood-TraitBG','Relic-Blood-TraitGlow','Relic-Blood-TraitGlowRing','Relic-Fel-Slot','Relic-Fel-TraitBG','Relic-Fel-TraitGlow','Relic-Fel-TraitGlowRing','Relic-Fire-Slot','Relic-Fire-TraitBG','Relic-Fire-TraitGlow','Relic-Fire-TraitGlowRing','Relic-Frost-Slot','Relic-Frost-TraitBG','Relic-Frost-TraitGlow','Relic-Frost-TraitGlowRing','Relic-Holy-Slot','Relic-Holy-TraitBG','Relic-Holy-TraitGlow','Relic-Holy-TraitGlowRing','Relic-Iron-Slot','Relic-Iron-TraitBG','Relic-Iron-TraitGlow','Relic-Iron-TraitGlowRing','Relic-Life-Slot','Relic-Life-TraitBG','Relic-Life-TraitGlow','Relic-Life-TraitGlowRing','Relic-Shadow-Slot','Relic-Shadow-TraitBG','Relic-Shadow-TraitGlow','Relic-Shadow-TraitGlowRing','Relic-SlotBG','Relic-Water-Slot','Relic-Water-TraitBG','Relic-Water-TraitGlow','Relic-Water-TraitGlowRing','Relic-Wind-Slot','Relic-Wind-TraitBG','Relic-Wind-TraitGlow','Relic-Wind-TraitGlowRing','transmog-toast-bg','FullAlert-BigSpike','FullAlert-SoftCurveGlow','FullAlert-YellowCurveGlow','FullAlert-FrameGlow','accountupgradebanner-legion','Glues-WoW-LegionLogo','Glues-WoW-LegionLogo_cn','Glues-WoW-LegionLogo_tw','shop-games-legion','shop-games-legiondeluxe-card','shop-games-magnifyingglass','shop-games-legiondeluxe','Barbershop-Bottom','Barbershop-Top','!Barbershop-MiddleTile','AftLevelup-CloudyLineLeft','AftLevelup-CloudyLineRight','AftLevelup-Dots1','AftLevelup-Dots2','AftLevelup-GlowLine','AftLevelup-IconFrame','AftLevelup-IconGlow','AftLevelup-Lines1','AftLevelup-Lines2','AftLevelup-SoftCloud','AftLevelup-ToastBG','AftLevelup-FiligreeLeft','AftLevelup-FiligreeRight','transmog-nav-slot-secondaryhand','AftLevelup-WhiteIconGlow','AftLevelup-WhiteStarBurst','_transmog-preview-QuestPortrait-Divider_noname','_transmog-preview-QuestPortrait-StoneSwirls-Top','transmog-icon-downarrow','Forge-ColorSwatch','Forge-ColorSwatchBorder','Forge-ColorSwatchSelection','Forge-Lock','ForgeBorder-CornerBottomLeft','ForgeBorder-CornerBottomRight','ForgeBorder-CornerTopRight','Forge-Background','Artifacts-HeaderBG','Artifacts-Paladin-Header','Artifacts-DeathKnightFrost-Header','Artifacts-DemonHunter-Header','Artifacts-Druid-Header','search-iconframe-large','search-highlight-large','Artifacts-Hunter-Header','Artifacts-MageArcane-Header','Artifacts-Monk-Header','Artifacts-Priest-Header','Artifacts-Rogue-Header','Artifacts-Shaman-Header','Artifacts-Warlock-Header','Artifacts-Warrior-Header','titleprestige-prestigeiconplate-alliance','titleprestige-prestigeiconplate-horde','Artifacts-PerkRing-WhiteGlow','AdventureMapQuest-PortraitBG','Rune-01-dark','Rune-01-light','Rune-02-dark','Rune-02-light','Rune-03-dark','Rune-03-light','Rune-04-dark','Rune-04-light','Rune-05-dark','Rune-05-light','Rune-06-dark','Rune-06-light','Rune-07-dark','Rune-07-light','Rune-08-dark','Rune-08-light','Rune-09-dark','Rune-09-light','Rune-10-dark ','Rune-10-light','Rune-11-dark','Rune-11-light','Mage-ArcaneCharge-CircleGlow','Mage-ArcaneCharge-Rune','Mage-ArcaneCharge-SmallSpark','Mage-ArcaneCharge-Spark','Forge-AppearanceStrip','Forge-ColorSwatchBackground','Forge-ColorSwatchHighlight','AdventureMap_TopBorder','AdventureMap_TileBg','Artifacts-PriestShadow-BG','Artifacts-PriestShadow-Header','bags-glow-artifact','AdventureMap-InsetMapBorder','Artifacts-Paladin-KnowledgeRank','ClassOverlay-HolyPower1off','ClassOverlay-HolyPower1on','ClassOverlay-HolyPower2off','ClassOverlay-HolyPower2on','ClassOverlay-HolyPower3off','ClassOverlay-HolyPower3on','ClassOverlay-HolyPower4off','ClassOverlay-HolyPower4on','ClassOverlay-HolyPower5off','ClassOverlay-HolyPower5on','ClassOverlay-HolyPowerBG','Artifacts-DeathKnightFrost-KnowledgeRank','Artifacts-DemonHunter-KnowledgeRank','Artifacts-Druid-KnowledgeRank','Artifacts-Hunter-KnowledgeRank','Artifacts-MageArcane-KnowledgeRank','Artifacts-Monk-KnowledgeRank','Artifacts-Priest-KnowledgeRank','Artifacts-PriestShadow-KnowledgeRank','Artifacts-Rogue-KnowledgeRank','Artifacts-Shaman-KnowledgeRank','Artifacts-Warlock-KnowledgeRank','Artifacts-Warrior-KnowledgeRank','ClassOverlay-Fury','ClassOverlay-FuryBG','ClassOverlay-Rune','ClassOverlay-RunicPower','ClassOverlay-RunicPowerBg','ClassOverlay-ComboPoint','LegionSplash-NewCharacter','LegionSplash-DemonHunterButton','LegionSplash-Logo','LegionSplash-NewCharacterButton','LegionSplash-DemonHunter','legioninvasion-title-bg','transmog-nav-slot-enchant','transmog-nav-slot-selected-small','nameplates-bar-background','honorsystem-portrait-neutral','nameplates-holypower1-off','nameplates-holypower1-on','nameplates-holypower2-off','nameplates-holypower2-on','nameplates-holypower3-off','nameplates-holypower3-on','nameplates-holypower4-off','nameplates-holypower4-on','nameplates-playerhealth-background','nameplates-InterruptShield','nameplate-WarlockShard-Off','nameplate-WarlockShard-On','nameplate-WarlockShard-Glow','ClassOverlay-ComboPoint-Off','Insanity-DrippyPurple1','Insanity-DrippyPurple2','Insanity-PortraitOverlay','Insanity-PurpleBurstOn','Insanity-ShadowBurstOn','Insanity-Tentacles','Insanity-TopPurpleShadow','options-notch','Insanity-Spark','tradeskills-star-off','tradeskills-star','tradeskill-background-recipe','tradeskill-background-recipe-unlearned','loottoast-itemborder-heirloom','ComboPoints-AllPointsBG','ComboPoints-PointBg','ComboPoints-ComboPointDash','ComboPoints-ComboPointDash-Bg','ComboPoints-ComboPoint','ComboPoints-FX-Circle','ComboPoints-FX-Dash','ComboPoints-FX-Star','obliterumforge-background','obliterumforge-slotted-corners-glow','obliterumforge-slotted-corners','ChallengeMode-AffixRing-Lg','ChallengeMode-AffixRing-Sm','ChallengeMode-DungeonIconFrame','ChallengeMode-KeystoneFrame','ChallengeMode-KeystoneSlotBG','ChallengeMode-KeystoneSlotFrame','ChallengeMode-KeystoneSlotFrameGlow','ChallengeMode-MainTabBg','ChallengeMode-ThinDivider','_DemonHunter-DemonicPainBar','GlyphIcon-Spellbook','ChallengeMode-Runes-GlowLarge','ChallengeMode-Runes-Large','ChallengeMode-Runes-LineGlow','BossBanner-PortraitBorder','ChallengeMode-SoftYellowGlow','ChallengeMode-SpikeyStar','ChallengeMode-Timer','ChallengeMode-TimerBG','ChallengeMode-TimerFill','ChallengeMode-WhiteSpikeyGlow','ChallengeMode-Runes-BackgroundCoverGlow','ChallengeMode-Runes-GlowBurstLarge','ChallengeMode-Runes-GlowSmall','ChallengeMode-RuneBG','ChallengeMode-Runes-BackgroundBurst','ChallengeMode-Runes-BL-Glow','ChallengeMode-Runes-BR-Glow','ChallengeMode-Runes-InnerCircleGlow','ChallengeMode-Runes-L-Glow','ChallengeMode-Runes-R-Glow','ChallengeMode-Runes-Small','ChallengeMode-Runes-T-Glow','ChallengeMode-Runes-CircleGlow','recipetoast-bg','recipetoast-icon-star','transmog-wardrobe-border-unusable','worldquest-icon-clock','worldquest-questmarker-dragon-glow','worldquest-questmarker-dragon','worldquest-questmarker-epic-down','worldquest-questmarker-epic','worldquest-questmarker-glow','worldquest-questmarker-questbang','worldquest-tracker-checkmark','worldquest-tracker-questmarker-gray','worldquest-tracker-questmarker','worldquest-tracker','ChallengeMode-Runes-SmallCircleGlow','worldquest-questmarker-questionmark','ChallengeMode-Runes-Shockwave','ChallengeMode-Chest','worldquest-icon-pvp-ffa','worldquest-tracker-ring-selected','worldquest-tracker-ring','ChallengeMode-icon-chest','ChallengeMode-icon-redline','ChallengeMode-TimerBG-back','LegionMissionIcon-ZoneSupportAlliance-Map','orderhalltalents-background-mage','orderhalltalents-background-deathknight','orderhalltalents-background-demonhunter','orderhalltalents-background-druid','orderhalltalents-background-hunter','orderhalltalents-background-monk','orderhalltalents-background-paladin','orderhalltalents-background-priest','orderhalltalents-background-rogue','orderhalltalents-background-shaman','orderhalltalents-background-warlock','orderhalltalents-background-warrior','orderhalltalents-choice-background','orderhalltalents-spellborder-green','orderhalltalents-spellborder-yellow','orderhalltalents-spellborder','LegionMissionIcon-ZoneSupportAlliance-MapBadge','LegionMissionIcon-ZoneSupportHorde-Map','LegionMissionIcon-ZoneSupportHorde-MapBadge','LegionMissionIcon-ZoneSupportAlliance-Mission','LegionMissionIcon-ZoneSupportHorde-Mission','orderhalltalents-timer-bg','legionmission-map-orderhall-deathknight','legionmission-map-orderhall-demonhunter','legionmission-map-orderhall-druid','legionmission-map-orderhall-glow','legionmission-map-orderhall-hunter','legionmission-map-orderhall-mage','legionmission-map-orderhall-monk','legionmission-map-orderhall-paladin','legionmission-map-orderhall-priest','legionmission-map-orderhall-rogue','legionmission-map-orderhall-shaman','legionmission-map-orderhall-warlock','legionmission-map-orderhall-warrior','legionmission-map-orderhall-textglow','worldquest-icon-alchemy','worldquest-icon-archaeology','worldquest-icon-blacksmithing','worldquest-icon-cooking','worldquest-icon-enchanting','worldquest-icon-engineering','worldquest-icon-firstaid','worldquest-icon-fishing','worldquest-icon-herbalism','worldquest-icon-inscription','worldquest-icon-jewelcrafting','worldquest-icon-leatherworking','worldquest-icon-mining','worldquest-icon-skinning','worldquest-icon-tailoring','worldquest-icon-petbattle','DemonInvasion5','book-bg','book-line','_orderhall-commandbar-bg','worldquest-icon-boss','transmog-icon-hidden','orderhalltalents-choice-arrow-large','orderhalltalents-choice-background-on','LegendaryToast-particles3','LegendaryToast-particles2','LegendaryToast-background','LegendaryToast-ring1','LegendaryToast-particles1','tradeskills-iconborder','LegendaryToast-OrangeStarglow','loottoast-itemborder-artifact','adventureguide-icon-whatsnew','adventureguide-microbutton-alert','transmog-frame-blackcover','transmog-frame-highlighted','transmog-background-race-bloodelf','transmog-background-race-human','transmog-background-race-draenei','transmog-background-race-dwarf','transmog-background-race-gnome','transmog-background-race-goblin','transmog-background-race-nightelf','transmog-background-race-orc','transmog-background-race-pandaren','transmog-background-race-tauren','transmog-background-race-troll','transmog-background-race-undead','transmog-background-race-worgen','AdventureMap-combatally-clouds','AdventureMap-combatally-empty','AdventureMap-combatally-ring','AdventureMap-textlabelglow','legionmission-EncounterAbilityBorder-Lg','legionmission-EncounterAbilityBorder','worldquest-followerabilityframe','worldquest-questmarker-abilityhighlight','transmog-frame-highlighted-small','nameplates-bar-background-white','_honorsystem-bar-fill-rested','honorsystem-bar-frame-exhaustiontick-highlight','honorsystem-bar-frame-exhaustiontick','legionmission-complete-background-deathknight','legionmission-complete-background-demonhunter','legionmission-complete-background-druid','legionmission-complete-background-hunter','legionmission-complete-background-mage','legionmission-complete-background-monk','legionmission-complete-background-paladin','legionmission-complete-background-priest','legionmission-complete-background-rogue','legionmission-complete-background-shaman','legionmission-complete-background-warlock','legionmission-complete-background-warrior','legionmission-landingpage-background-deathknight','legionmission-landingpage-background-demonhunter','legionmission-landingpage-background-druid','legionmission-landingpage-background-hunter','legionmission-landingpage-background-mage','legionmission-landingpage-background-monk','legionmission-landingpage-background-paladin','legionmission-landingpage-background-priest','legionmission-landingpage-background-rogue','legionmission-landingpage-background-shaman','legionmission-landingpage-background-warlock','legionmission-landingpage-background-warrior','legionmission-landingbutton-deathknight-down','legionmission-landingbutton-deathknight-up','legionmission-landingbutton-demonhunter-down','legionmission-landingbutton-demonhunter-up','legionmission-landingbutton-druid-down','legionmission-landingbutton-druid-up','legionmission-landingbutton-hunter-down','legionmission-landingbutton-hunter-up','legionmission-landingbutton-mage-down','legionmission-landingbutton-mage-up','legionmission-landingbutton-monk-down','legionmission-landingbutton-monk-up','legionmission-landingbutton-paladin-down','legionmission-landingbutton-paladin-up','legionmission-landingbutton-priest-down','legionmission-landingbutton-priest-up','legionmission-landingbutton-rogue-down','legionmission-landingbutton-rogue-up','legionmission-landingbutton-shaman-down','legionmission-landingbutton-shaman-up','legionmission-landingbutton-warlock-down','legionmission-landingbutton-warlock-up','legionmission-landingbutton-warrior-down','legionmission-landingbutton-warrior-up','transmog-wardrobe-border-current','transmog-wardrobe-border-selected-wisp','transmog-wardrobe-border-current-transmogged','glueannouncementpopup-arrow','glueannouncementpopup-background','glueannouncementpopup-icon-info','glueannouncementpopup-inset','loottab-set-itemborder-green','loottab-set-itemborder-purple','loottab-set-itemborder-blue','poi-alliance','poi-horde','GarrisonTroops-Health-Consume','GarrisonTroops-Health','BonusChest-BonusTextGlow','GarrMission_ClassIcon-DeathKnight-Blood','GarrMission_ClassIcon-DeathKnight-Frost','GarrMission_ClassIcon-DeathKnight-Unholy','GarrMission_ClassIcon-DemonHunter-Havoc','GarrMission_ClassIcon-DemonHunter-Vengeance','GarrMission_ClassIcon-Druid-Balance','GarrMission_ClassIcon-Druid-Feral','GarrMission_ClassIcon-Druid-Guardian','GarrMission_ClassIcon-Druid-Restoration','GarrMission_ClassIcon-Hunter-BeastMastery','GarrMission_ClassIcon-Hunter-Marksmanship','GarrMission_ClassIcon-Hunter-Survival','GarrMission_ClassIcon-Mage-Arcane','GarrMission_ClassIcon-Mage-Fire','GarrMission_ClassIcon-Mage-Frost','GarrMission_ClassIcon-Monk-Brewmaster','GarrMission_ClassIcon-Monk-Mistweaver','GarrMission_ClassIcon-Monk-Windwalker','GarrMission_ClassIcon-Paladin-Holy','GarrMission_ClassIcon-Paladin-Protection','GarrMission_ClassIcon-Paladin-Retribution','GarrMission_ClassIcon-Priest-Discipline','GarrMission_ClassIcon-Priest-Holy','GarrMission_ClassIcon-Priest-Shadow','GarrMission_ClassIcon-Rogue-Assassination','GarrMission_ClassIcon-Rogue-Outlaw','GarrMission_ClassIcon-Rogue-Subtlety','GarrMission_ClassIcon-Shaman-Elemental','GarrMission_ClassIcon-Shaman-Enhancement','GarrMission_ClassIcon-Shaman-Restoration','GarrMission_ClassIcon-Warlock-Affliction','GarrMission_ClassIcon-Warlock-Demonology','GarrMission_ClassIcon-Warlock-Destruction','GarrMission_ClassIcon-Warrior-Arms','GarrMission_ClassIcon-Warrior-Fury','GarrMission_ClassIcon-Warrior-Protection','legionmission-background-combatally','_GarrMissionLocation-Legion-Mid','_GarrMissionLocation-Highmountain-Mid','_GarrMissionLocation-Dalaran-Mid','_GarrMissionLocation-Azsuna-Mid','_GarrMissionLocation-Stormheim-Mid','_GarrMissionLocation-Suramar-Mid','_GarrMissionLocation-Valsharah-Mid','legionmission-hearts-background','GarrMissionLocation-Azsuna-List','GarrMissionLocation-Dalaran-List','GarrMissionLocation-Highmountain-List','GarrMissionLocation-Legion-List','GarrMissionLocation-Stormheim-List','GarrMissionLocation-Suramar-List','GarrMissionLocation-Valsharah-List','poi-workorders','groupfinder-background-raids-legion','groupfinder-button-raids-legion','orderhall-commandbar-iconmask','GarrMission-NeutralChest','worldquest-tracker-lock','ClassTrial-End-Frame','ClassTrial-Hunter-Ring','ClassTrial-Priest-Ring','ClassTrial-DeathKnight-Ring','ClassTrial-Warrior-Ring','ClassTrial-Paladin-Ring','ClassTrial-Warlock-Ring','ClassTrial-Druid-Ring','ClassTrial-Monk-Ring','ClassTrial-Mage-Ring','ClassTrial-Rogue-Ring','Legion-boostpopup-exit-frame','transmog-wardrobe-border-selected-smoke','legionmission-icon-currency','UI-CharacterCreate-MetalFrame-Horizontal','UI-CharacterCreate-MetalFrame-Vertical','ClassTrial-Timer-Mid','ClassTrial-Timer-RightCorner','ClassTrial-Timer','UI-CharacterCreate-LargeButton-Blue-Highlight','UI-CharacterCreate-LargeButton-Yellow-Highlight','UI-CharacterCreate-LargeButton','UI-CharacterCreate-Metal-Finery-Corner','UI-CharacterCreate-Metal-Small-Finery','UI-CharacterCreate-PadLock','UI-Character-Info-Paladin-BG','UI-Character-Info-Priest-BG','UI-Character-Info-Warlock-BG','UI-Character-Info-Line-Bounce','UI-Character-Info-Shaman-BG','UI-Character-Info-ItemLevel-Bounce','UI-Character-Info-Warrior-BG','UI-Character-Info-Title','UI-Character-Info-Mage-BG','UI-Character-Info-Rogue-BG','UI-Character-Info-Monk-BG','UI-Character-Info-DeathKnight-BG','UI-Character-Info-DemonHunter-BG','UI-Character-Info-Druid-BG','UI-Character-Info-Hunter-BG','Relic-SlotBG-Glass','loottab-set-itemborder-artifact','loottab-set-itemborder-white','loottab-set-itemborder-orange','Artifacts-BG-Shadow','worldquest-questmarker-rare-down','worldquest-questmarker-rare','poi-majorcity','poi-town','pvpqueue-bg-alliance','pvpqueue-bg-horde','honorsystem-prestige-smallwreath','orderhall-commandbar-mapbutton-down','orderhall-commandbar-mapbutton-up','worldquest-tracker-bg-noemissary','Quest-Alliance-WaxSeal','Quest-Horde-WaxSeal','QuestBG-Alliance','QuestBG-Horde','insetshadow','ChallengeMode-guild-background','ChallengeMode-RankLineDivider','_Talent-green-glow','legionmission-lock','honorsystem-prestige-rewardline','orderhalltalents-done-checkmark','orderhalltalents-done-glow','map-icon-ignored-blueexclaimation','map-icon-ignored-bluequestion','map-icon-deathknightclasshall','Dungeon','Raid','map-icon-SuramarDoor.tga','ClassTrial-Shaman-Ring','Mobile-BonusIcon','Mobile-CombatBadgeIcon','Mobile-CombatIcon','Mobile-LegendaryQuestIcon','Mobile-QuestIcon','Mobile-TreasureIcon','ClassHall_StoneFrame-BackgroundTile','ClassHall_InfoBoxMission-BackgroundTile','StoneFrameCorner-TopLeft','ClassHall-Circle-Mage','_StoneFrameTile-Bottom','_StoneFrameTile-Top','ClassHall-Circle-DeathKnight','ClassHall-Circle-Hunter','ClassHall-Circle-Warrior','ClassHall-Circle-Druid','ClassHall-Circle-Warlock','ClassHall-Circle-Shaman','ClassHall-Circle-Rogue','ClassHall-Circle-Monk','ClassHall-Circle-DemonHunter','ClassHall-Circle-Priest','ClassHall-Circle-Paladin','!StoneFrameTile-Left','ClassHall_ParchmentHeaderSelect-End','_ClassHall_ParchmentHeaderSelect-Mid','_ClassHall_ParchmentHeader-Mid','ClassHall_ParchmentHeader-End','Mobile-CombatIcon-Desaturated','Mobile-BonusIcon-Desaturated','Mobile-TreasureIcon-Desaturated','Mobile-QuestIcon-Desaturated','Mobile-LegendaryQuestIcon-Desaturated','ClassHall-TreasureIcon-Desaturated','ClassHall-LegendaryIcon-Desaturated','ClassHall-QuestIcon-Desaturated','ClassHall-BonusIcon-Desaturated','ClassHall-CombatIcon-Desaturated','worldquest-icon-dungeon','honorsystem-bar-lock','Mobile-Alchemy','Mobile-Archeology','Mobile-Blacksmithing','Mobile-Cooking','Mobile-Enchanting','Mobile-Enginnering','Mobile-FirstAid','Mobile-Fishing','Mobile-Herbalism','Mobile-Inscription','Mobile-Jewelcrafting','Mobile-Leatherworking','Mobile-MechanicIcon-Curse','Mobile-MechanicIcon-Disorienting','Mobile-MechanicIcon-Lethal','Mobile-MechanicIcon-Slowing','Mobile-Mining','Mobile-Pets','Mobile-Skinning','Mobile-Tailoring','Taxi_Frame_Gray','Taxi_Frame_Green','UI-Taxi-Icon-Nub','!UI-Taxi-Line','_UI-Taxi-Line-horizontal','Mobile-MechanicIcon-Powerful','GarrMission_ClassIcon-DemonHunter-Outcast','splash-703-botleft','splash-703-right','splash-703-topleft','splash-704-botleft','splash-704-right','splash-704-topleft','splash-705-botleft','splash-705-right','splash-705-topleft','inspect-talent-selected','loottab-background','loottab-set-background','AutoQuest-badgeborder','ClassHall_Follower-EquipmentBG','ClassHall_Follower-EquipmentFrame','ClassHall_InfoBoxMission-Corner','_ClassHall_InfoBoxMission-Top','!ClassHall_InfoBoxMission-Left','ClassHall_ParchmentHeader-End-2','ClassHall_ParchmentHeaderSelect-End-2','ClassHall-CombatAlly','nameplates-icon-elite-gold','nameplates-icon-elite-silver','StreamCinematic-Legion-Down','StreamCinematic-Legion-Up','GarrMission_ClassIcon-Karazhan','WhiteCircle-RaidBlips','WhiteDotCircle-RaidBlips','friendslist-categorybutton-arrow-down','friendslist-categorybutton-arrow-right','friendslist-categorybutton','Taxi_Frame_Yellow','pvprated-loottoast-bg-alliance','pvprated-loottoast-bg-horde','128-RedButton-Highlight','128-RedButton-LeftCorner-Disabled','128-RedButton-LeftCorner-Pressed','128-RedButton-LeftCorner','128-RedButton-RightCorner-Disabled','128-RedButton-RightCorner-Pressed','128-RedButton-RightCorner','_128-RedButton-Tile-Disabled','_128-RedButton-Tile-Pressed','_128-RedButton-Tile','bags-greenarrow','socialqueuing-icon-clock','socialqueuing-icon-eye','socialqueuing-icon-group','quickjoin-button-friendslist-down','quickjoin-button-friendslist-up','quickjoin-button-quickjoin-down','quickjoin-button-quickjoin-up','quickjoin-toast-background','quickjoin-toast-lines','macropopup-bottomleft','macropopup-bottomright','macropopup-topleft','macropopup-topright','_macropopup-bottom','_macropopup-top','!macropopup-left','!macropopup-right','macropopup-scrollbar-bottom','macropopup-scrollbar-top','!macropopup-scrollbar-middle','socialqueuing-row-highlight','socialqueuing-row-select','splash-710-botleft','splash-710-right','splash-710-topleft','groupfinder-icon-class-demonhunter','AncientMana','quickjoin-button-group-down','quickjoin-button-group-up','socialqueuing-friendlist-summonbutton-disabled','socialqueuing-friendlist-summonbutton-down','socialqueuing-friendlist-summonbutton-up','worldquest-icon-burninglegion','worldquest-icon-raid','GarrMission-AbilityHighlight-Error','transmog-set-border-collected','transmog-set-border-current-transmogged','transmog-set-border-current','transmog-set-border-highlighted','transmog-set-border-selected','transmog-set-border-unusable','transmog-set-iconrow-background','ParagonReputation_Bag','ParagonReputation_Checkmark','ParagonReputation_Glow','Legionfall_Background','Legionfall_Banner','Legionfall_BarBackground','Legionfall_BarFrame','Legionfall_BarSpark','Legionfall_BuildingInfoBackground','Legionfall_GrayFrame','Legionfall_Padlock','_Legionfall_BarFill_Active','_Legionfall_BarFill_UnderAttack','_Legionfall_BarFill_UnderConstruction','legionmission-portraitring-epicplus','legionmission-portraitring_levelborder_epicplus','Legionfall_CommandCenter_Completed','Legionfall_CommandCenter_Destroyed','Legionfall_CommandCenter_UnderAttack','Legionfall_CommandCenter_UnderConstruction','Legionfall_MageTower_Completed','Legionfall_MageTower_Destroyed','Legionfall_MageTower_UnderAttack','Legionfall_MageTower_UnderConstruction','Legionfall_NetherDisruptor_Completed','Legionfall_NetherDisruptor_Destroyed','Legionfall_NetherDisruptor_UnderAttack','Legionfall_NetherDisruptor_UnderConstruction','Artifacts-DeathKnightFrost-BG-Rune','Artifacts-ItemIconBorder','Artifacts-PerkRing-Final','Artifacts-DeathKnightFrost-FinalIcon','Legionfall_GrayBanner','Legionfall_GreenFrame','Legionfall_RedFrame','Legionfall_YellowFrame','Legionfall_ExitFrame','equipmentmanager-spec-border','Artifacts-DemonHunter-BG-rune','Artifacts-Druid-BG-rune','Artifacts-Hunter-BG-rune','Artifacts-MageArcane-BG-rune','Artifacts-Monk-BG-rune','Artifacts-Paladin-BG-rune','Artifacts-Priest-BG-rune','Artifacts-PriestShadow-BG-rune','Artifacts-Rogue-BG-rune','Artifacts-Shaman-BG-rune','Artifacts-Warlock-BG-rune','Artifacts-Warrior-BG-rune','Artifacts-PerkRing-Final-Shine','Talent-Selection-Legendary','Artifacts-DemonHunter-FinalIcon','Artifacts-Druid-FinalIcon','Artifacts-Hunter-FinalIcon','Artifacts-MageArcane-FinalIcon','Artifacts-Monk-FinalIcon','Artifacts-Paladin-FinalIcon','Artifacts-Priest-FinalIcon','Artifacts-PriestShadow-FinalIcon','Artifacts-Rogue-FinalIcon','Artifacts-Shaman-FinalIcon','Artifacts-Warlock-FinalIcon','Artifacts-Warrior-FinalIcon','Artifacts-CrestRune-Gold','LegionfallMapBanner','QuestBG-Legionfall','Quest-Legionfall-WaxSeal','poi-transmogrifier','Artifacts-Anim-Sparks','worldquest-emissary-ring','worldquest-emissary-tracker-checkmark','splash-720-botleft','splash-720-right','splash-720-topleft','DemonShip','Artifacts-Anim-Orb','Artifacts-Anim-Glowies','Legionfall_BarFrame-Glow','transmog-set-model-cutoff-fade','MountToast-Background','PetToast-background','honorsystem-icon-enlistmentbonus','Artifacts-Anim-CrackedGround','Legionfall_GrayFrame_Buffs','DemonShip_East','DK-Blood-Rune-CDFill','DK-BloodUnholy-Rune-CDSpark','DK-Frost-Rune-CDFill','DK-Frost-Rune-CDSpark','DK-Unholy-Rune-CDFill','Warlock-Bar-EmptyShards','Warlock-EmptyShard','Warlock-FillShard','Warlock-ReadyShard-Glow','Warlock-ReadyShard','Warlock-Shard-Spark','CastBar','CurrentPlayer-Glow','DarkTutorialFrameBackground','DeathIcon','HealerBadge','HealingDampening','InterruptOverlay','RedCCIconGlow','ScoreDivider','ScoreTeam','TankBadge','TargetCrosshairs','tournamentarena-frame-bg-corner-blue','tournamentarena-frame-bg-corner-red','UI-Feedback-Border','UnitFrame-NoMana','UnitFrame-NoTrinket','UnitFrame','UnitFrame_CCOverlay-NoMana','UnitFrame_CCOverlay','UnitFrame_DeathOverlay-NoMana','UnitFrame_DeathOverlay','UnitFrame_FocusFireOverlay-NoMana','UnitFrame_FocusFireOverlay','UnitFrame_CurrentPlayer_CCOverlay','UnitFrame_CurrentPlayer_DeathOverlay','UnitFrame_CurrentPlayer-NoMana','UnitFrame_CurrentPlayer-NoTrinket','UnitFrame_CurrentPlayer','UnitFrame_CurrentPlayerGlow','UnitFrame_CurrentPlayer_FocusFireOverlay-NoMana','UnitFrame_CurrentPlayer_FocusFireOverlay','UnitFrame_CurrentPlayer_CCOverlay-NoMana','UnitFrame_CurrentPlayer_DeathOverlay-NoMana','UnitFrame_CurrentPlayerGlow-NoMana','DK-Blood-Rune-Ready','DK-Rune-CD','DK-Rune-Glow','DK-Unholy-Rune-Ready','DK-Frost-Rune-Ready','raceicon-bloodelf-male','raceicon-draenei-female','raceicon-draenei-male','raceicon-dwarf-female','raceicon-dwarf-male','raceicon-gnome-female','raceicon-gnome-male','raceicon-goblin-male','raceicon-human-female','raceicon-human-male','raceicon-nightelf-female','raceicon-nightelf-male','raceicon-orc-female','raceicon-orc-male','raceicon-pandaren-female','raceicon-pandaren-male','raceicon-tauren-female','raceicon-tauren-male','raceicon-troll-female','raceicon-troll-male','raceicon-undead-female','raceicon-undead-male','raceicon-worgen-female','raceicon-worgen-male','poi-graveyard-neutral','poi-door-arrow-down','poi-door-arrow-up','poi-door','tournamentarena-winnerline','UI-MoneyFrame-Large','talenttree-chromie-background','worldstate-capturebar-blue','worldstate-capturebar-gray','worldstate-capturebar-green','worldstate-capturebar-purple','worldstate-capturebar-red','worldstate-capturebar-yellow','splash-725-botleft','splash-725-right','splash-725-topleft','TaxiNode_Alliance','TaxiNode_Horde','TaxiNode_Neutral','FlightMaster_Argus-Taxi_Frame_Gray','FlightMaster_Argus-Taxi_Frame_Yellow','Darklink-ball','Darklink-glow','Darklink','Darkstone1','Darkstone2','Darkstone3','Darkstone4','Darkstone5','Darkstone6','Darkstone7','Darktrait-border','Lightlink-ball','Lightlink-glow','Lightlink','Lightstone1','Lightstone2','Lightstone3','Lightstone4','Lightstone5','Lightstone6','Lightstone7','Lighttrait-border','simplecheckout-close-hover-1x','simplecheckout-close-hover-2x','simplecheckout-close-normal-1x','simplecheckout-close-normal-2x','simplecheckout-close-pressed-1x','simplecheckout-close-pressed-2x','Darktrait-Glow','Lighttrait-glow','Mixedtrait-border','Relic-Rankframe-glow','Relic-Rankframe','Relic-Rankselected-circle','Relic-Rankselected-UpperGlow','Relicforge-background','Relicforge-Bottomframe','Relicforge-Bottomleft-corner','Relicforge-Bottomright-corner','Relicforge-Leftframe','Relicforge-Relicsbackground','Relicforge-Rightframe','Relicforge-Slot-background','Relicforge-Slot-frame','Relicforge-Topdecoration','Relicforge-Topframe','Relicforge-Topleft-corner','Relicforge-Topright-corner','Darklink-active','Disablelink','Lightlink-active','Darktrait-backglow','Lighttrait-backglow','dressingroom-background-deathknight','dressingroom-background-demonhunter','dressingroom-background-druid','dressingroom-background-hunter','dressingroom-background-mage','dressingroom-background-monk','dressingroom-background-paladin','dressingroom-background-priest','dressingroom-background-rogue','dressingroom-background-shaman','dressingroom-background-warlock','dressingroom-background-warrior','Darklink-blackinside','Lightlink-blackinside','worldstate-capturebar-frame-factions','worldstate-capturebar-frame','worldstate-capturebar-spark-green','worldstate-capturebar-spark-yellow','worldstate-capturebar-glow','worldstate-capturebar-arrow','worldstate-capturebar-frame-separater','poi-rift1','poi-rift2','countdown-swords','countdown-swords-glow','AlliedRace-TraitsBorder','AlliedRace-UnlockingFrame-Background','AlliedRace-UnlockingFrame-BottomButtonsMouseOverGlow','AlliedRace-UnlockingFrame-BottomButtonsSelectionGlow','AlliedRace-UnlockingFrame-Female','AlliedRace-UnlockingFrame-GenderMouseOverGlow','AlliedRace-UnlockingFrame-GenderSelectionGlow','AlliedRace-UnlockingFrame-LeftRotation','AlliedRace-UnlockingFrame-Male','AlliedRace-UnlockingFrame-RightRotation','AlliedRace-UnlockingFrame-ZoomIn','AlliedRace-UnlockingFrame-ZoomOut','AlliedRace-UnlockingFrame-ModelBackground-Highmountain','AlliedRace-UnlockingFrame-ModelBackground-Nightborne','AlliedRace-UnlockingFrame-ModelBackground-Voidelf','AlliedRace-Crest-Highmountain','AlliedRace-Crest-Lightforge','AlliedRace-Crest-Nightborne','AlliedRace-Crest-Voidelf','FlightMaster_VindicaarArgus-Taxi_Frame_Gray','FlightMaster_VindicaarArgus-Taxi_Frame_Green','FlightMaster_VindicaarArgus-Taxi_Frame_Yellow','FlightMaster_VindicaarMacAree-Taxi_Frame_Gray','FlightMaster_VindicaarMacAree-Taxi_Frame_Green','FlightMaster_VindicaarMacAree-Taxi_Frame_Yellow','FlightMaster_VindicaarStygianWake-Taxi_Frame_Gray','FlightMaster_VindicaarStygianWake-Taxi_Frame_Green','FlightMaster_VindicaarStygianWake-Taxi_Frame_Yellow','Relic-Rankdisable-DarkGlow','ArtifactsFX-PointSideBurstLeft-Purple','ArtifactsFX-PointSideBurstRight-Purple','ArtifactsFX-SpinningGlowys-Purple','ArtifactsFX-StarBurst-Purple','ArtifactsFX-Whirls-Purple','ArtifactsFX-YellowRing-Purple','AdventureMap_TileBg_Parchment','_GarrMissionLocation-Argus-Mid','GarrMissionLocation-Argus-List','Darktrait-border-selected','Lighttrait-border-selected','Neutralstone1','Neutralstone2','Neutralstone3','Neutralstone4','Neutralstone5','Neutralstone6','Neutralstone7','Neutraltrait-border-selected','Neutraltrait-border','poi-door-down','poi-door-left','poi-door-right','poi-door-up','QuestBG-TheHandofFate','splash-730-botleft','splash-730-right','splash-730-topleft','Neutraltrait-backglow','Neutraltrait-Glow','AftLevelup-NeutralStarBurst','AftLevelup-PurpleStarBurst','Artifacts-PerkRing-NeutralGlow','Artifacts-PerkRing-PurpleGlow','ArtifactsFX-Whirls-Neutral','ArtifactsFX-YellowRing-Neutral','Rune-01-neutral','Rune-01-purple','Rune-02-neutral','Rune-02-purple','Rune-03-neutral','Rune-03-purple','Rune-04-neutral','Rune-04-purple','Rune-05-neutral','Rune-05-purple','Rune-06-neutral','Rune-06-purple','GarrMission_ClassIcon-Voidscarred','GarrMission_ClassIcon-ArgussianReach','GarrMission_ClassIcon-ArmyoftheLight','AntoranWastes_Highlight','Relicforge-Relicsbackground-Previewtraits','Relicforge-Slot-frame-Active','Krokuun_Highlight','MacAree_Highlight','FlightMaster_Argus-Taxi_Frame_Green','BrokenIslesHightlight','hud-MainMenuBar-arrowdown-disabled','hud-MainMenuBar-arrowdown-down','hud-MainMenuBar-arrowdown-highlight','hud-MainMenuBar-arrowdown-up','hud-MainMenuBar-arrowup-disabled','hud-MainMenuBar-arrowup-down','hud-MainMenuBar-arrowup-highlight','hud-MainMenuBar-arrowup-up','hud-MainMenuBar-gryphon','AlliedRace-UnlockingFrame-ModelFrame','AlliedRace-UnlockingFrame-RaceBanner','AlliedRace-UnlockingFrame-ModelBackground-Lightforge','shop-card-half-brownbox','shop-card-half-brownboxlegionbundle','shop-card-half-legion','shop-card-half-legiondeluxe','shop-card-full-legiondeluxe','hud-MainMenuBar-experiencebar-large-double','hud-MainMenuBar-experiencebar-large-single','hud-MainMenuBar-experiencebar-small-double','hud-MainMenuBar-experiencebar-small-single','hud-MainMenuBar-large','hud-MainMenuBar-small','shop-card-half-hover','hud-microbutton-LFG-Up','hud-microbutton-Achievement-Disabled','hud-microbutton-LFG-Down','hud-microbutton-BStore-Down','hud-microbutton-Socials-Disabled','hud-microbutton-MainMenu-Up','hud-microbutton-Quest-Disabled','hud-microbutton-Achievement-Down','hud-microbutton-BStore-Up','hud-microbutton-Quest-Up','hud-microbutton-Quest-Down','hud-microbutton-Spellbook-Down','hud-microbutton-EJ-Down','hud-microbutton-Socials-Up','hud-microbutton-LFG-Disabled','hud-microbutton-StreamDL-Up','hud-microbutton-Character-Down','hud-microbutton-StreamDL-Down','hud-microbutton-MainMenu-Down','hud-microbutton-MainMenu-Disabled','hud-microbutton-Talents-Disabled','hud-microbutton-BStore-Disabled','hud-microbutton-Mounts-Disabled','hud-microbutton-Mounts-Up','hud-microbutton-Character-Up','hud-microbutton-Socials-Down','hud-microbutton-Spellbook-Up','hud-microbutton-Talents-Down','hud-microbutton-Mounts-Down','hud-microbutton-EJ-Disabled','hud-microbutton-EJ-Up','hud-microbutton-Spellbook-Disabled','hud-microbutton-Talents-Up','hud-MicroBagBar','hud-microbutton-Achievement-Up','AlliedRaces-AllianceHordeBanner','loottoast-itemborder-gold','hud-microbutton-highlight','shop-card-bundle-hover','shop-card-bundle-legion','shop-card-bundle-reaver-argi','shop-card-bundle','shop-card-bundle-selected','raceicon-voidelf-male','raceicon-goblin-female','raceicon-nightborne-male','raceicon-lightforged-male','raceicon-nightborne-female','raceicon-highmountain-female','raceicon-voidelf-female','raceicon-lightforged-female','raceicon-bloodelf-female','raceicon-highmountain-male','bags-icon-addslots','shop-card-bundle-alteracpup-feydragon','shop-card-bundle-starseekers','bags-static','category-icon-ring','vas-receipt-icon-characterborder','warboard-header-alliance','warboard-header-horde','warboard-parchment-answerborder','warboard-parchment','warboard-title-alliance-left','warboard-title-alliance-right','warboard-title-horde-left','warboard-title-horde-right','warboard-title-neutral-left','warboard-title-neutral-right','_warboard-title-alliance-middle','_warboard-title-horde-middle','_warboard-title-neutral-middle','warboard-background','warboard-zone-classic-Ashenvale','warboard-zone-classic-Azshara','warboard-zone-classic-AzuremystIsle','warboard-zone-classic-BloodmystIsle','warboard-zone-classic-Darkshore','warboard-zone-classic-DunMorogh','warboard-zone-classic-Durotar','warboard-zone-classic-ElwynnForest','warboard-zone-classic-EversongWoods','warboard-zone-classic-Ghostlands','warboard-zone-classic-Gilneas','warboard-zone-classic-HillsbradFoothills','warboard-zone-classic-LochModan','warboard-zone-classic-LostIsles','warboard-zone-classic-Mulgore','warboard-zone-classic-NorthernBarrens','warboard-zone-classic-RedridgeMountains','warboard-zone-classic-SilverpineForest','warboard-zone-classic-SouthernBarrens','warboard-zone-classic-Teldrassil','warboard-zone-classic-TirisfalGlades','warboard-zone-classic-WanderingIsle','warboard-zone-classic-Westfall','warboard-zone-classic-ArathiHighlands','warboard-zone-classic-Badlands','warboard-zone-classic-BlastedLands','warboard-zone-classic-BurningSteppes','warboard-zone-classic-CapeofStranglethorn','warboard-zone-classic-Desolace','warboard-zone-classic-Duskwood','warboard-zone-classic-DustwallowMarsh','warboard-zone-classic-EasternPlaguelands','warboard-zone-classic-Felwood','warboard-zone-classic-Feralas','warboard-zone-classic-Hinterlands','warboard-zone-classic-NorthernStranglethorn','warboard-zone-classic-SearingGorge','warboard-zone-classic-Silithus','warboard-zone-classic-StonetalonMountains','warboard-zone-classic-SwampofSorrows','warboard-zone-classic-Tanaris','warboard-zone-classic-ThousandNeedles','warboard-zone-classic-UngoroCrater','warboard-zone-classic-WesternPlaguelands','warboard-zone-classic-Wetlands','warboard-zone-classic-Winterspring','warboard-zone-bc-BladesEdgeMountains','warboard-zone-bc-HellfirePeninsula','warboard-zone-bc-IsleofQuelDanas','warboard-zone-bc-Nagrand','warboard-zone-bc-Netherstorm','warboard-zone-bc-ShadowmoonValley','warboard-zone-bc-TerokkarForest','warboard-zone-bc-Zangarmarsh','warboard-zone-wotlk-BoreanTundra','warboard-zone-wotlk-CrystalsongForest','warboard-zone-wotlk-Dalaran','warboard-zone-wotlk-Dragonblight','warboard-zone-wotlk-GrizzlyHills','warboard-zone-wotlk-HowlingFjord','warboard-zone-wotlk-Icecrown','warboard-zone-wotlk-SholazarBasin','warboard-zone-wotlk-StormPeaks','warboard-zone-wotlk-ZulDrak','warboard-zone-cata-TwilightHighlands','warboard-zone-cata-Deepholm','warboard-zone-cata-MountHyjal','warboard-zone-cata-ElementalBonds','warboard-zone-cata-Vashjir','warboard-zone-cata-MoltenFront','warboard-zone-cata-Uldum','warboard-zone-mop-DreadWastes','warboard-zone-mop-IsleofGiants','warboard-zone-mop-IsleoftheThunderKing','warboard-zone-mop-JadeForest','warboard-zone-mop-KrasarangWilds','warboard-zone-mop-KunLaiSummit','warboard-zone-mop-TimelessIsle','warboard-zone-mop-TownlongSteppes','warboard-zone-mop-ValeofEternalBlossoms','warboard-zone-mop-ValleyoftheFourWinds','warboard-zone-wod-FrostfireRidge','warboard-zone-wod-Gorgrond','warboard-zone-wod-Nagrand','warboard-zone-wod-ShadowmoonValley','warboard-zone-wod-SpiresofArak','warboard-zone-wod-Talador','warboard-zone-wod-TanaanJungle','warboard-zone-wod-TanaanJungleIntro','AzeriteReady','AzeriteSpawning','splash-735-botleft','splash-735-right','splash-735-topleft','shop-card-full-bfadeluxe','accountupgradebanner-bfa','shop-card-half-brownboxbfabundle','shop-card-half-bfadeluxe','shop-card-half-bfa','hud-microbutton-highlightalert','communities-icon-notification','communities-create-button-bnet-down','communities-create-button-bnet-up','communities-create-button-highlight','communities-create-button-wow-down','communities-create-button-wow-up','communities-create-avatar-border-hover','communities-create-avatar-border-selected','communities-ring-blue','communities-ring-gold','alliance_icon_and_flag-dynamicIcon','alliance_icon_and_flag-flash','alliance_icon_and_flag-icon','alliance_icon_horde_flag-dynamicIcon','alliance_icon_horde_flag-flash','alliance_icon_horde_flag-icon','alliance_tower-icon','coin-icon','combat_swords-dynamicIcon','combat_swords-flash','combat_swords-icon','dreadlord-icon','horde_icon_alliance_flag-dynamicIcon','horde_icon_alliance_flag-flash','horde_icon_alliance_flag-icon','horde_icon_and_flag-dynamicIcon','horde_icon_and_flag-flash','horde_icon_and_flag-icon','horde_tower-icon','neutral_tower-icon','placeholder-icon','pvp_ffa-icon','skull_bones-icon','sniper_shot-icon','communities-create-button-wow-alliance','communities-create-button-wow-horde','communities-icon-addgroupplus','communities-icon-lock','communities-icon-invitemail','communities-widebackground','macropopup-bottomright-nobuttons','macropopup-intersect-left','macropopup-intersect-right','macropopup-topleft2','macropopup-topright2','_macropopup-top2','ui-frame-neutral-cardparchment','ui-frame-neutral-cardparchmentwider','ui-frame-neutral-corner','ui-frame-neutral-exitbuttonborder','ui-frame-neutral-portrait','ui-frame-neutral-portraitdisable','ui-frame-neutral-portraitwider','ui-frame-neutral-portraitwiderdisable','ui-frame-neutral-ribbon','ui-frame-neutral-titleleft','ui-frame-neutral-titleright','_ui-frame-neutral-tilebottom','_ui-frame-neutral-tiletop','_ui-frame-neutral-titlemiddle','communities-chat-date-line-orange','communities-chat-date-line','communities-guildbanner-background','communities-guildbanner-border','communities-nav-button-green-normal','communities-nav-button-green-pressed','hud-microbutton-Guild-Banner','communities-icon-chat','communities-icon-addchannelplus','communities-create-button-bnet-highlight','communities-icon-redx','hud-microbutton-communities-icon-notification','ui-frame-diamondmetal-cornerbottomleft','ui-frame-diamondmetal-cornerbottomright','ui-frame-diamondmetal-cornertopleft','ui-frame-diamondmetal-cornertopright','_ui-frame-diamondmetal-edgebottom','_ui-frame-diamondmetal-edgetop','!ui-frame-diamondmetal-edgeleft','!ui-frame-diamondmetal-edgeright','chatframe-button-down','chatframe-button-highlight','chatframe-button-highlightalert','chatframe-button-icon-headset','chatframe-button-icon-mic-off','chatframe-button-icon-mic-on','chatframe-button-icon-mic-silenced-off','chatframe-button-icon-mic-silenced','chatframe-button-icon-speaker-off','chatframe-button-icon-speaker-on','chatframe-button-icon-speaker-silenced','chatframe-button-icon-voicechat','chatframe-button-up','chatframe-scrollbar-knob','voicechat-channellist-category-background','voicechat-channellist-category-highlight','voicechat-channellist-category-minus','voicechat-channellist-category-plus','voicechat-channellist-icon-headphone-off','voicechat-channellist-icon-headphone-on','voicechat-channellist-row-background','voicechat-channellist-row-background2','voicechat-channellist-row-highlight','voicechat-channellist-row-selected','voicechat-icon-headphone-off','voicechat-icon-headphone-on','voicechat-icon-headphone-pending','voicechat-icon-headphone-pendingdot-1','voicechat-icon-headphone-pendingdot-2','voicechat-icon-headphone-pendingdot-3','voicechat-icon-headphone-switch','voicechat-icon-loudnessbar-1','voicechat-icon-loudnessbar-2','voicechat-icon-loudnessbar-3','voicechat-icon-mic-mute','voicechat-icon-mic-mutesilenced','voicechat-icon-mic-silenced','voicechat-icon-mic','voicechat-icon-speaker-mute','voicechat-icon-speaker-mutesilenced','voicechat-icon-speaker-silenced','voicechat-icon-speaker','voicechat-icon-textchat-silenced','voicechat-portrait-drag','voicechat-portrait-ring','battlefieldminimap-border-bottom','battlefieldminimap-border-bottomleft','battlefieldminimap-border-bottomright','battlefieldminimap-border-left','battlefieldminimap-border-right','battlefieldminimap-border-top','battlefieldminimap-border-topleft','battlefieldminimap-border-topright','CGuy_AOI','CGuy_AOIAsset','CGuy_Arrow','CGuy_BottomArrow','CGuy_BottomArrowHighlight','CGuy_ConfigReplace','CGuy_Control','CGuy_ControlDefaults','CGuy_Export','CGuy_GafferPushed','CGuy_GafferUp','CGuy_Import','CGuy_New','CGuy_NewConfig','CGuy_Path','CGuy_Pause','CGuy_Play','CGuy_Point','CGuy_Record','CGuy_Rename','CGuy_Replace','CGuy_Stop','CGuy_TopArrow','CGuy_TopArrowHighlight','CGuy_AOIFollowsCamera','CGuy_FixedTimeStep','CGuy_ReorientToUnit','CGuy_AOIFollowsCameraActive','CGuy_CalcOrientation','CGuy_FixedTimeStepActive','CGuy_PlayActive','CGuy_RecordActive','CGuy_ReorientToUnitActive','CGuy_StopActive','bar-end','cast-bar-end','health-bar-end','health_end','metal-bar','portrait-frame-nameplate','portrait-frame','trinket-frame','_bar-mid','_cast-bar-mid','_health-bar-mid','cast-bar-fill-end','portrait-frame-color','_cast-bar-fill-mid','armor-fill-end','flag-1','flag-2','icon-healer','icon-tank','_armor-fill-mid','_health_mid','commentatorspellborder','frame-timer','healing-bg','score-team','_score-team-mid','portrait-frame-nameplate-scaledup','flag-outline','icon-death','icon-wow','metal-bar-small','portrait-frame-small','chatbubble-nineslice-center','chatbubble-nineslice-cornerbottomleft','chatbubble-nineslice-cornerbottomright','chatbubble-nineslice-cornertopleft','chatbubble-nineslice-cornertopright','_chatbubble-nineslice-edgebottom','_chatbubble-nineslice-edgetop','chatbubble-tail','!chatbubble-nineslice-edgeleft','!chatbubble-nineslice-edgeright','ui_editor_eye_icon','classic-burningcrusadetransition-choice-frame','classic-burningcrusadetransition-choice-line-current','classic-burningcrusadetransition-choice-line-other','classic-burningcrusadetransition-choice-logo-current-zhcn','classic-burningcrusadetransition-choice-logo-current-zhtw','classic-burningcrusadetransition-choice-logo-current','classic-burningcrusadetransition-choice-logo-other-zhcn','classic-burningcrusadetransition-choice-logo-other-zhtw','classic-burningcrusadetransition-choice-logo-other','ui-paidcharactercustomization-button-activatecharacter','cosmic-azeroth-highlight','cosmic-outland-highlight','cosmic-outland-highlight_resize','cosmic-azeroth-highlight_resize','ui-frame-diamondmetal-header-cornerleft-2x','ui-frame-diamondmetal-header-cornerright-2x','_ui-frame-diamondmetal-header-tile-2x','creditsscreen-highlight','creditsscreen-selected','_creditsscreen-gradient-tile','auctionhouse-icon-checkmark','auctionhouse-icon-clock','auctionhouse-icon-coin-copper','auctionhouse-icon-coin-gold','auctionhouse-icon-coin-silver','auctionhouse-icon-favorite-off','auctionhouse-icon-favorite','auctionhouse-icon-socket','auctionhouse-itemheaderframe','auctionhouse-itemicon-border-account','auctionhouse-itemicon-border-artifact','auctionhouse-itemicon-border-blue','auctionhouse-itemicon-border-gray','auctionhouse-itemicon-border-green','auctionhouse-itemicon-border-orange','auctionhouse-itemicon-border-purple','auctionhouse-itemicon-border-white','auctionhouse-itemicon-cover','auctionhouse-itemicon-empty','auctionhouse-itemicon-small-border','auctionhouse-nav-button-highlight','auctionhouse-nav-button-secondary-highlight','auctionhouse-nav-button-secondary-select','auctionhouse-nav-button-secondary','auctionhouse-nav-button-select','auctionhouse-nav-button-tertiary-filterline','auctionhouse-nav-button','auctionhouse-rowstripe-1','auctionhouse-rowstripe-2','auctionhouse-selltab-left','auctionhouse-selltab-middle','auctionhouse-selltab-right','auctionhouse-ui-dropdown-arrow-disabled','auctionhouse-ui-dropdown-arrow-down','auctionhouse-ui-dropdown-arrow-up','auctionhouse-ui-dropdown-left','auctionhouse-ui-dropdown-middle','auctionhouse-ui-dropdown-right','auctionhouse-ui-filter-redx','auctionhouse-ui-inputfield-left','auctionhouse-ui-inputfield-middle','auctionhouse-ui-inputfield-right','auctionhouse-ui-loadingspinner','auctionhouse-ui-row-highlight','auctionhouse-ui-row-select','auctionhouse-ui-sortarrow','shop-card-full-bcc-darkportalpassupgrade','shop-card-half-bcc-darkportalpass','shop-card-half-bcc-darkportalpassdeluxe','classicon-druid','classicon-hunter','classicon-mage','classicon-paladin','classicon-priest','classicon-rogue','classicon-shaman','classicon-warlock','classicon-warrior','ui-scrollbar-button-overlay-horizontal','ui-scrollbar-button-overlay','ui-scrollbar-endcap-bottom','ui-scrollbar-endcap-left','ui-scrollbar-endcap-right','ui-scrollbar-endcap-top','ui-scrollbar-knob-endcap-bottom-disabled','ui-scrollbar-knob-endcap-bottom','ui-scrollbar-knob-endcap-left-disabled','ui-scrollbar-knob-endcap-left','ui-scrollbar-knob-endcap-right-disabled','ui-scrollbar-knob-endcap-right','ui-scrollbar-knob-endcap-top-disabled','ui-scrollbar-knob-endcap-top','ui-scrollbar-knob-mouseover-endcap-bottom','ui-scrollbar-knob-mouseover-endcap-left','ui-scrollbar-knob-mouseover-endcap-right','ui-scrollbar-knob-mouseover-endcap-top','ui-scrollbar-scrolldownbutton-disabled','ui-scrollbar-scrolldownbutton-down','ui-scrollbar-scrolldownbutton-highlight','ui-scrollbar-scrolldownbutton-up','ui-scrollbar-scrollleftbutton-disabled','ui-scrollbar-scrollleftbutton-down','ui-scrollbar-scrollleftbutton-highlight','ui-scrollbar-scrollleftbutton-up','ui-scrollbar-scrollrightbutton-disabled','ui-scrollbar-scrollrightbutton-down','ui-scrollbar-scrollrightbutton-highlight','ui-scrollbar-scrollrightbutton-up','ui-scrollbar-scrollupbutton-disabled','ui-scrollbar-scrollupbutton-down','ui-scrollbar-scrollupbutton-highlight','ui-scrollbar-scrollupbutton-up','ui-scrollbar-center','ui-scrollbar-knob-center-disabled','ui-scrollbar-knob-center','ui-scrollbar-knob-mouseover-center','ui-scrollbar-knob-center-disabled-horizontal','ui-scrollbar-knob-center-horizontal','ui-scrollbar-knob-mouseover-center-horizontal','_ui-scrollbar-center','circlemaskscalable','metal-bar-battlegrounds','tooltip-nineslice-cornerbottomleft','tooltip-nineslice-cornerbottomright','tooltip-nineslice-cornertopleft','tooltip-nineslice-cornertopright','_tooltip-nineslice-edgebottom','_tooltip-nineslice-edgetop','!tooltip-nineslice-edgeleft','!tooltip-nineslice-edgeright','tooltip-glues-nineslice-cornerbottomleft','tooltip-glues-nineslice-cornerbottomright','tooltip-glues-nineslice-cornertopleft','tooltip-glues-nineslice-cornertopright','_tooltip-glues-nineslice-edgebottom','_tooltip-glues-nineslice-edgetop','!tooltip-glues-nineslice-edgeleft','!tooltip-glues-nineslice-edgeright','tooltip-glues-nineslice-center','tooltip-nineslice-center','clickcastlist-buttonbackground','clickcastlist-buttonhighlight','clickcastlist-buttonnew','gmchat-icon-alert','gmchat-icon-blizz','gmchat-icon-wow','gmchat-nineslice-cornerbottomleft','gmchat-nineslice-cornerbottomright','gmchat-nineslice-cornertopleft','gmchat-nineslice-cornertopright','gmchat-watermark-blizzard','gmglow-nineslice-cornerbottomleft','gmglow-nineslice-cornerbottomright','gmglow-nineslice-cornertopleft','gmglow-nineslice-cornertopright','_gmchat-nineslice-edgebottom','_gmchat-nineslice-edgetop','_gmglow-nineslice-edgebottom','_gmglow-nineslice-edgetop','chatframe-button-icon-tts','common-search-border-left','common-search-border-middle','common-search-border-right','common-search-clearbutton','common-search-magnifyingglass','voicechat-channellist-icon-stt-off','voicechat-channellist-icon-stt-on','voicechat-icon-stt','reportlist-buttonselect','ui-scrollbar-classicscrolldownbutton-disabled','ui-scrollbar-classicscrolldownbutton-down','ui-scrollbar-classicscrolldownbutton-highlight','ui-scrollbar-classicscrolldownbutton-up','ui-scrollbar-classicscrollupbutton-disabled','ui-scrollbar-classicscrollupbutton-down','ui-scrollbar-classicscrollupbutton-highlight','ui-scrollbar-classicscrollupbutton-up','ui-classicscrollbar-endcap-bottom-rounded','ui-classicscrollbar-endcap-bottom','ui-classicscrollbar-endcap-top','ui-classicscrollbar-center','groupfinder-background-classic','newplayerchat-chaticon-guide','newplayerchat-chaticon-newcomer','shop-card-full-classicwotlk-goodies','shop-card-half-classicwotlk-goodiesepic','shop-card-half-classicwotlk-goodieshero','shop-card-full-classicwotlk-goodies-heroictoepic','classicon-deathknight'} diff --git a/Interface/AddOns/WeakAuras/Types_Wrath.lua b/Interface/AddOns/WeakAuras/Types_Wrath.lua index 293d198f9..5af3d5d5a 100644 --- a/Interface/AddOns/WeakAuras/Types_Wrath.lua +++ b/Interface/AddOns/WeakAuras/Types_Wrath.lua @@ -5442,3 +5442,5 @@ Private.talentInfo = { }, }, } + +Private.AtlasList = {'CommittedName','MainPet-PetFamilyFrame','Timer-Frame','MainPet-HealthBarBG','Timer-BG','BackupPet-DeadFrame','MainPet-HealthBarFrame','Start-VersusSplash','BackupPet-Frame','BattleHUD-Top','BattleBar-ButtonBG-EndCap','BattleBar-SwapPetFrame-DeadIcon','MainPet-HealthBarFill','BattleBar-EndCap','BattleBar-Button-Highlight','BattleBar-SwapPetFrame','Timer-Fill','BattleBar-SwapPetIcon','MainPet-Frame','BattleBar-Countdown-Shadow','BattleBar-ButtonBG-Divider','BattleBar-SwapPetShadow','BattleBar-SwapPetFrame-Highlight','MainPet-PetFamilyActivate','MainPet-LevelBubble','BattleHUD-Versus','_BattleBar-ButtonBGMid','_BattleBar-Mid','BackArrow-Brown','MapCornerShadow-Left','MapCornerShadow-Right','NoQuestsBackground','OptionsIcon-Brown','QuestCollapse-Hide-Down','QuestCollapse-Hide-Up','QuestCollapse-Show-Down','QuestCollapse-Show-Up','QuestDetails-RewardsBottomOverlay','QuestDetails-RewardsOverlay','QuestDetails-TopOverlay','QuestDetailsBackgrounds','QuestionMarkContinent-Icon','QuestionMarkContinent-IconHighlight','QuestLogBackground','StoryHeader-BG','StoryHeader-CheevoIcon','StoryHeader-Shadow','TaskPOI-Icon','TaskPOI-IconHighlight','TaskPOI-IconSelect','UI-OuterBorderButtonPatch','UI-SquareButtonBrown-Down','UI-SquareButtonBrown-Up','QuestItemBorder-Small','QuestItemBorder','Talent-Separator','Talent-BottomLeftCurlies','Talent-Highlight','Talent-TopRightCurlies','Talent-TopLeftCurlies','Talent-Background','Talent-Selection','Talent-RingWithDot','Talent-BottomRightCurlies','PetJournal-BattleSlot-Active','PetJournal-BattleSlot-Locked','PetJournal-PetCard-BG','PetJournal-BattleSlotFrame-Corner','PetJournal-ExpBar-Left','PetJournal-BattleSlotTitle-Right','PetJournal-ExpBar-Background','PetJournal-PetBattleAchievementGlow','PetJournal-HealthBar-Left','PetJournal-PetCard-Abilities','PetJournal-BattleSlot-AbilityBorder','PetJournal-ExpBar-Divider','PetJournal-ExpBar-Right','PetJournal-BattleSlot-IconBorder','PetJournal-LevelBubble','PetJournal-ExpBar-Mid','PetJournal-PetBattleAchievementBG','PetJournal-BattleSlot-Shadow','PetJournal-BattleSlotTitle-Left','PetJournal-HealthBar-Mid','PetJournal-HealthBar-Right','PetJournal-HealthBar-Background','_BattleSlotTitle-BG','_BattleSlotFrame-Top','_BattleSlotFrame-Divider','_BattleSlotTitle-Mid','MountJournalIcons-Alliance','MountJournalIcons-Horde','_Talent-blue-glow','_Talent-Bottom-Tile','_Talent-Top-Tile','bluemenu-Ring','PetJournal-FavoritesIcon','NewCharacter-Alliance','NewCharacter-Horde','Garr_InfoBox-Corner','Garr_InfoBoxBorder-BigBottomCorner','Garr_InfoBoxBorder-Corner','Garr_InfoBoxBorder-FiligreeCorner','Garr_WoodFrameCorner','_Garr_InfoBox-Top','_Garr_InfoBoxBorder-BigBottom','_Garr_InfoBoxBorder-Top','_Garr_WoodFrameTile-Bottom','_Garr_WoodFrameTile-Top','_Garr_XPBar_Mid','!Garr_InfoBox-Left','!Garr_InfoBoxBorder-Left','!Garr_WoodFrameTile-Left','Garr_BuildingIconRing_','Garr_BuildingPlacementExplosion','Garr_CostBar','Garr_FollowerPortrait_Bg','Garr_FollowerPortrait_Ring','Garr_FollowerPortrait_TimerBG','Garr_FollowerPortrait_TimerFill','Garr_LevelBadge_1','Garr_LevelBadge_2','Garr_LevelBadge_3','Garr_LevelUpgradeArrow','Garr_LevelUpgradeLocked','Garr_ListButton-Highlight','Garr_ListButton-Selection','Garr_ListButton','Garr_ListTab-Highlight','Garr_ListTab-Select','Garr_ListTab','Garr_MaterialIcon','Garr_MonumentLocked','Garr_MonumentOpen','Garr_PlanIcon-List','Garr_PlansRequiredIcon','Garr_Plot_Glow_3','Garr_Plot_Glow_2','Garr_Plot_Glow_1','Garr_Plot_Glow_4','Garr_Specialization_FrameLeft','Garr_Specialization_FrameMid','Garr_Specialization_IconBorder','Garr_Specialization_IconSelected','Garr_TownHallBanner_Left','Garr_TownHallBanner_LevelFiligree','Garr_TownHallBanner_Mid','Garr_TownHallBanner_Right','Garr_TreasureIcon','Garr_XPBar_Left','Garr_XPBar_Nub','Garr_Map_Shadowmoon1_A','Garr_Map_Shadowmoon2_A','Garr_Map_Shadowmoon3_A','Garr_Plot_Shadowmoon_A_4','Garr_Plot_Shadowmoon_A_1','Garr_Plot_Shadowmoon_A_2','Garr_Plot_Shadowmoon_A_3','Garr_InfoBox-BackgroundTile','Garr_WoodFrame-BackgroundTile','Garr_InfoBox-CornerShadow','GarrBuilding_Default_Info','GarrBuilding_Default_Map','GarrBuilding_EmptyPlot_1_A_Info','GarrBuilding_Armory_1_A_Info','GarrBuilding_Armory_2_A_Info','GarrBuilding_Armory_3_A_Info','GarrBuilding_Armory_1_A_Map','GarrBuilding_Armory_2_A_Map','GarrBuilding_Armory_3_A_Map','GarrBuilding_Alchemy_1_A_Info','GarrBuilding_Alchemy_2_A_Info','GarrBuilding_Alchemy_3_A_Info','GarrBuilding_Alchemy_1_A_Map','GarrBuilding_Alchemy_2_A_Map','GarrBuilding_Alchemy_3_A_Map','DruidEclipse-LunarCover','DruidEclipse-SolarCover','DruidEclipse-Arrow','DruidEclipse-BaseBar','DruidEclipse-BaseMoon','DruidEclipse-BaseSun','DruidEclipse-Diamond','DruidEclipse-Line','DruidEclipse-LunarBar','DruidEclipse-LunarMoon','DruidEclipse-LunarSun','DruidEclipse-SolarBar','DruidEclipse-SolarMoon','DruidEclipse-SolarSun','Garr_BuildIcon','Garr_BuildingConfirmation','Garr_BuildingIconTimerBG','Garr_BuildingIconTimerFill','Garr_BuildingTimerBG','Garr_BuildingTimerFill','Garr_BuildingTimerGlow','Garr_BuildingUpgradeExplosion','Garr_LevelBadgeGlow','Garr_NotificationGlow','Garr_UpgradeBanner','Garr_UpgradeIcon','Garr_UpgradeIconTimerBG','Garr_UpgradeIconTimerFill','Garr_UpgradeTimerBG','Garr_UpgradeTimerFill','Garr_UpgradeTimerGlow','Garr_Toast','Garr_BuildingShadowOverlay','GarrMission_Bg-DarkEdgeCorner','GarrMission_CounterCheck','GarrMission_EncounterAbilityBorder','GarrMission_EncounterBar-BG','GarrMission_EncounterBar-End','GarrMission_EncounterBar-Fill','GarrMission_EncounterBar-PortraitRing','GarrMission_EncounterBar-Spark','GarrMission_EncounterBar-Xbg','GarrMission_EncounterBar-Xleft','GarrMission_FollowerAbilityRollout','GarrMission_FollowerPartyBox_Lg','GarrMission_FollowerPartyBox_Sm','GarrMission_ItemFrame','GarrMission_LevelUpBanner','GarrMission_LocationCover-Side','GarrMission_ParchmentHeader-End','GarrMission_PartyBuffsBG','GarrMission_PortraitRing','GarrMission_PortraitRing_Empty','GarrMission_PortraitRing_Enemy','GarrMission_PortraitRing_LevelBorder','GarrMission_RareGlowBG','GarrMission_RewardsBanner-Desaturate','GarrMission_RewardsBanner','GarrMission_RewardsBG-Desaturate','GarrMission_RewardsBG','GarrMission_RewardsBorder-Corner-Desaturate','GarrMission_RewardsBorder-Corner','GarrMission_Silhouettes-1Alliance','GarrMission_Silhouettes-1Horde','GarrMission_SingleModelBG','GarrMission_StartMissionFrame','_GarrMission_Bg-BottomEdge','_GarrMission_Bg-BottomEdgeSmall','_GarrMission_LocationCover-Bottom','_GarrMission_ParchmentHeader-Mid','_GarrMission_RewardsBorder-Top-Desaturate','_GarrMission_RewardsBorder-Top','_GarrMission_TopBorder-Highlight','_GarrMission_TopBorder-Select','_GarrMission_TopBorder','_GarrMission_XPBar-BG','_GarrMission_XPBar-Fill','_Garr_InfoBoxBorderMission-Top','!GarrMission_Bg-Edge','!GarrMission_RewardsBorder-Left-Desaturate','!GarrMission_RewardsBorder-Left','!Garr_InfoBoxBorderMission-Left','Garr_InfoBoxMission-BackgroundTile','GarrMission_FollowerListButton','GarrMission_FollowerListButton-Highlight','GarrMission_FollowerListButton-Select','GarrMission_FollowerPageHeaderBG','GarrMission_IconLevelBG','GarrMission_ListGlow-Highlight','GarrMission_ListGlow-Select','GarrMission_PlayerLootFrame','GarrMission_RareOverlay','GarrMission_TopBorderCorner','GarrMission_TopBorderCorner-Highlight','GarrMission_TopBorderCorner-Select','GarrMission_UsefulAbilityIcon','GarrMission_XPBarBig-End','GarrMission_XPBarBig-LevelBorder','GarrMission_XPBarBig-Mid','Garr_InfoBoxBorderMission-Corner','PartySizeIcon','GarrMission_CurrencyIcon-Material','GarrMission_CurrencyIcon-Salvage','GarrMission_CurrencyIcon-Xp','_GarrMissionLocation-TannanJungle-Back','_GarrMissionLocation-TannanJungle-Fore','_GarrMissionLocation-TannanJungle-Mid','GarrMission_MissionParchment','GarrBuilding_MageTower_1_A_Info','GarrBuilding_MageTower_2_A_Info','GarrBuilding_MageTower_3_A_Info','GarrBuilding_TownHall_1_A_Info','GarrBuilding_TownHall_2_A_Info','GarrBuilding_TownHall_3_A_Info','GarrBuilding_TownHall_3_A_Map','GarrBuilding_TownHall_2_A_Map','GarrBuilding_TownHall_1_A_Map','GarrBuilding_MageTower_1_A_Map','GarrBuilding_MageTower_2_A_Map','GarrBuilding_MageTower_3_A_Map','GarrBuilding_Inn_1_A_Info','GarrBuilding_Inn_1_A_Map','GarrBuilding_Inn_2_A_Info','GarrBuilding_Inn_3_A_Info','GarrBuilding_Inn_2_A_Map','GarrBuilding_Inn_3_A_Map','GarrBuilding_Mine_1_A_Info','GarrBuilding_Mine_2_A_Info','GarrBuilding_Mine_3_A_Info','GarrBuilding_Mine_1_A_Map','GarrBuilding_Mine_2_A_Map','GarrBuilding_Mine_3_A_Map','GarrBuilding_Barracks_1_A_Map','GarrBuilding_Barracks_2_A_Map','GarrBuilding_Barracks_3_A_Map','GarrBuilding_Barracks_1_A_Info','GarrBuilding_Barracks_2_A_Info','GarrBuilding_Barracks_3_A_Info','GarrBuilding_Engineering_1_A_Info','GarrBuilding_Engineering_2_A_Info','GarrBuilding_Engineering_3_A_Info','GarrBuilding_Engineering_1_A_Map','GarrBuilding_Engineering_2_A_Map','GarrBuilding_Engineering_3_A_Map','Rewards-Shadow','OBJFX_LineBurst','OBJBonusBar-Top','OBJFX_LineGlow','Objective-Header','Rewards-Top','OBJFX_StarBurst','Objective-Nub','OBJFX_Glow','shadoworbs-small-Orb-Bg','shadoworbs-small-Orb','shadoworbs-small-Frame-OrbHighlight','shadoworbs-large-Orb','shadoworbs-large-Frame','shadoworbs-large-Orb-Bg','shadoworbs-large-Frame-OrbHighlight','shadoworbs-small-Frame','achievementcompare-GreenCheckmark','achievementcompare-YellowCheckmark','MonkUI-background-shadow','MonkUI-OrbOff','MonkUI-OrbOff-small','MonkUI-LightOrb-small','MonkUI-background','MonkUI-LightOrb','Garr_InfoBoxMission-Corner','_Garr_InfoBoxMission-Top','!Garr_InfoBoxMission-Left','bags-newitem','Tracker-Check','_GarrMission_MissionListTopHighlight','GarrMission_PartyBuffAbilityBorder','collections-icon-favorites','collections-itemborder-collected','collections-itemborder-uncollected-innerglow','collections-itemborder-uncollected','collections-levelplate-black','collections-levelplate-gold','collections-newglow','collections-slotheader','collections-background-filagree','collections-background-corner','collections-background-tile','_collections-background-line','collections-background-shadow-small','collections-background-shadow-large','bags-junkcoin','bags-innerglow','Capacitance-Blacksmithing-BG','Capacitance-Blacksmithing-IconBG','Capacitance-Blacksmithing-IconBorder','Capacitance-Blacksmithing-TimerBG','Capacitance-Blacksmithing-TimerFill','Capacitance-Blacksmithing-TimerFrame','Capacitance-General-EmptyFollower','Capacitance-General-ItemBorder','Capacitance-General-LockIcon','Capacitance-General-WorkOrderActive','Capacitance-General-WorkOrderArrow','Capacitance-General-WorkOrderBorder','Capacitance-General-WorkOrderCheckmark','Capacitance-General-WorkOrderEmpty','Capacitance-General-LevelBorder','Capacitance-General-PortraitRing','minortalents-icon-book','minortalents-iconcover','_minortalents-iconspinner','Objective-Fail','minortalents-backplate','minortalents-descriptionshadow','characterundelete-RestoreButton','bank-slots-shadow','bank-slots','Garr_MissionToast','Garr_FollowerToast-Epic','Garr_FollowerToast-Rare','Garr_FollowerToast-Uncommon','Garr_MissionToast-IconBG','Garr_Map_Frostfire1_H','Garr_Map_Frostfire2_H','Garr_Map_Frostfire3_H','ZoneAbility-Generic-AbilityBar-Glow','ZoneAbility-Generic-AbilityBar','ZoneAbility-Generic-IconBorder','ZoneAbility-Generic-SpellBox','groupfinder-icon-voice','groupfinder-icon-friend','GarrBuilding_Barn_1_A_Info','GarrBuilding_Barn_2_A_Info','GarrBuilding_Barn_3_A_Info','GarrBuilding_Barn_1_A_Map','GarrBuilding_Barn_2_A_Map','GarrBuilding_Barn_3_A_Map','GarLanding-Bottom','GarLanding-Left','GarLanding-Right','GarrLanding-InvasionBadge-Glow','GarrLanding-InvasionBadge','GarrLanding-MissionListBG','GarrLanding-Top','GarrLanding-TradeskillTimer-BG','GarrLanding_Watermark-Tradeskill','GarrLanding-FollowerScrollFrame','GarrLanding-lowerleft','GarrLanding-lowerright','GarrLanding-upperleft','GarrLanding-upperright','GarrLanding-HeaderBar','GarrLanding-MiddleTile','GarrLanding-Mission-Complete','GarrLanding-Mission-InProgress','GarrLanding-Building-Complete','GarrLanding-Building-InProgress','Garr_BuildingInfoShadow','GarrBuilding_Farm_1_A_Info','GarrBuilding_Farm_2_A_Info','GarrBuilding_Farm_3_A_Info','GarrBuilding_Farm_1_A_Map','GarrBuilding_Farm_2_A_Map','GarrBuilding_Farm_3_A_Map','GarrBuilding_LumberMill_1_A_Info','GarrBuilding_LumberMill_2_A_Info','GarrBuilding_LumberMill_3_A_Info','GarrBuilding_LumberMill_1_A_Map','GarrBuilding_LumberMill_2_A_Map','GarrBuilding_LumberMill_3_A_Map','GarrBuilding_SalvageYard_1_A_Info','GarrBuilding_SalvageYard_1_A_Map','GarrBuilding_SparringArena_1_A_Info','GarrBuilding_SparringArena_2_A_Info','GarrBuilding_SparringArena_3_A_Info','GarrBuilding_SparringArena_1_A_Map','GarrBuilding_SparringArena_2_A_Map','GarrBuilding_SparringArena_3_A_Map','GarrBuilding_Stables_1_A_Info','GarrBuilding_Stables_2_A_Info','GarrBuilding_Stables_3_A_Info','GarrBuilding_Stables_1_A_Map','GarrBuilding_Stables_2_A_Map','GarrBuilding_Stables_3_A_Map','GarrBuilding_Storehouse_1_A_Info','GarrBuilding_Storehouse_1_A_Map','GarrBuilding_TradingPost_1_A_Info','GarrBuilding_TradingPost_2_A_Info','GarrBuilding_TradingPost_3_A_Info','GarrBuilding_TradingPost_1_A_Map','GarrBuilding_TradingPost_2_A_Map','GarrBuilding_TradingPost_3_A_Map','Objective-ItemBorder','Garr_Building-AddFollowerPlus','Monuments-Frame','Monuments-LeftButton-Down','Monuments-LeftButton-Up','Monuments-RightButton-Down','Monuments-RightButton-Up','Monuments-LockedOverlay','Monuments-Lock','BonusChest-KeyholeBurst','BonusChest-KeyholeGlow','BonusChest-Lock','BonusChest-CircleGlow','guild-levelring','Calendar_Quest','groupfinder-highlightbar-green','groupfinder-highlightbar-yellow','groupfinder-icon-greencheckmark','groupfinder-icon-redx','groupfinder-button-arenas','groupfinder-button-battlegrounds','groupfinder-button-cover','groupfinder-button-custom-pve','groupfinder-button-custom-pvp','groupfinder-button-dungeons','groupfinder-button-questing','groupfinder-button-raids-bc','groupfinder-button-raids-cataclysm','groupfinder-button-raids-classic','groupfinder-button-raids-mists','groupfinder-button-raids-wrath','groupfinder-button-ratedbgs','groupfinder-button-scenarios','groupfinder-button-skirmishes','groupfinder-highlightbar-blue','Garr_SwapIcon','Garr_BuildFX-Glow','Garr_BuildFX-Lines','Garr_LockedBuilding','Garr_UpgradeFX-Glow','BonusChest-ItemBorder-Uncommon','BonusChest-Burst-Uncommon','bags-glow-purple','bags-glow-blue','bags-glow-orange','bags-glow-green','bags-glow-heirloom','bags-glow-white','bags-glow-flash','LFG-lock','Garr_Building_MaterialFrame','Garr_Mission_MaterialFrame','GarrMission_RewardsListBG','GarrMission_RewardsShadow','Garr_MissionList-CostBG','Garr_MissionList-IconBG','GarrMission_ParchmentHeaderSelect-End','_GarrMission_ParchmentHeaderSelect-Mid','GarrMission_MissionCostStartButtonBg','GarMission_ChestPercentageShadow','GarrMission_ChestOpenTextGlow','GarrMission_PortraitRing_Glow','GarrMission_PortraitRing_Highlight','splash-bigbutton','BonusChest-Smoke-Uncommon','splash-botleft','splash-boost-botleft','splash-boost-right','splash-boost-topleft','splash-601-botleft','splash-601-right','splash-601-topleft','splash-600-botleft','splash-600-right','splash-600-topleft','GarrMission_CheckGlow','GarrMission_MissionIcon-Blacksmithing','GarrMission_MissionIcon-Combat','GarrMission_MissionIcon-Exploration','GarrMission_ClassIcon-Hunter','GarrMission_ClassIcon-Warrior','GarrMission_ClassIcon-Priest','GarrMission_ClassIcon-Monk','GarrMission_ClassIcon-Rogue','GarrMission_ClassIcon-Mage','GarrMission_ClassIcon-Warlock','GarrMission_ClassIcon-Shaman','GarrMission_ClassIcon-Druid','GarrMission_ClassIcon-Paladin','GarrMission_ClassIcon-DeathKnight','GarrMission_EncounterBar-Xright','Garr_MissionFX-Glow','Garr_MissionFX-Lines','groupfinder-icon-leader','Garr_Map_Frostfire4_H','Garr_Map_Shadowmoon4_A','GarrMission-FollowerItemBg','bags-button-autosort-down','bags-button-autosort-up','bags-roundhighlight','GarrLanding-MinimapIcon-Alliance-Down','GarrLanding-MinimapIcon-Alliance-Up','GarrLanding-MinimapIcon-Horde-Up','GarrLanding-MinimapIcon-Horde-Down','GarrLanding-CircleGlow','GarrLanding-MinimapAlertBG','GarrLanding-SideToast-Glow','GarrLanding-TopTabHighlight','GarrLanding-TopTabSelected','GarrLanding-TopTabUnselected','Alliance_Tier1_Barracks','Alliance_Tier1_Professions','Alliance_Tier1_TownHall','GarrMission_MissionStart','loottoast-arrow-blue','loottoast-arrow-green','loottoast-arrow-orange','loottoast-arrow-purple','loottoast-bg-questrewardupgrade','loottoast-glow','loottoast-itemborder-blue','loottoast-itemborder-glow','loottoast-itemborder-green','loottoast-itemborder-orange','loottoast-itemborder-purple','loottoast-sheen','Headhunter_AbilityBorderGlow','Headhunter_BG','Headhunter_LineHeader','_GarrMissionLocation-FrostfireRidge-Back','_GarrMissionLocation-FrostfireRidge-Fore','_GarrMissionLocation-FrostfireRidge-Mid','GarrLanding_RewardsShadow','GarrLanding_RewardsListBG','GarrLandingList-CostBG','GarrMission_MissionIcon-Enchanting','GarrMission_MissionIcon-Salvage','GarrMission_MissionIcon-Provision','GarrMission_MissionIcon-Generic','GarrMission_MissionIcon-Siege','GarrMission_MissionIcon-Alchemy','GarrMission_MissionIcon-Wildlife','GarrMission_MissionIcon-Tailoring','GarrMission_MissionIcon-Training','GarrMission_MissionIcon-Trading','GarrMission_MissionIcon-Jewelcrafting','GarrMission_MissionIcon-Defense','GarrMission_MissionIcon-Construction','GarrMission_MissionIcon-Inscription','GarrMission_MissionIcon-Logistics','GarrMission_MissionIcon-Engineering','GarrMission_MissionIcon-Patrol','GarrMission_MissionIcon-Recruit','GarrMission_MissionIcon-Leatherworking','GarrBuilding_Jewelcrafting_1_A_Info','GarrBuilding_Jewelcrafting_2_A_Info','GarrBuilding_Jewelcrafting_3_A_Info','GarrBuilding_Jewelcrafting_1_A_Map','GarrBuilding_Jewelcrafting_2_A_Map','GarrBuilding_Jewelcrafting_3_A_Map','GarrBuilding_Enchanting_1_A_Info','GarrBuilding_Enchanting_2_A_Info','GarrBuilding_Enchanting_3_A_Info','GarrBuilding_Enchanting_1_A_Map','GarrBuilding_Enchanting_2_A_Map','GarrBuilding_Enchanting_3_A_Map','GarrBuilding_Blacksmith_1_A_Info','GarrBuilding_Blacksmith_2_A_Info','GarrBuilding_Blacksmith_3_A_Info','GarrBuilding_Blacksmith_1_A_Map','GarrBuilding_Blacksmith_2_A_Map','GarrBuilding_Blacksmith_3_A_Map','GarrBuilding_Fishing_1_A_Info','GarrBuilding_Fishing_2_A_Info','GarrBuilding_Fishing_3_A_Info','GarrBuilding_Fishing_1_A_Map','GarrBuilding_Fishing_2_A_Map','GarrBuilding_Fishing_3_A_Map','GarrBuilding_Workshop_1_A_Info','GarrBuilding_Workshop_2_A_Info','GarrBuilding_Workshop_3_A_Info','GarrBuilding_Workshop_1_A_Map','GarrBuilding_Workshop_2_A_Map','GarrBuilding_Workshop_3_A_Map','groupfinder-eye-highlight','GarrBuilding_Tailoring_1_A_Info','GarrBuilding_Tailoring_2_A_Info','GarrBuilding_Tailoring_3_A_Info','GarrBuilding_Tailoring_1_A_Map','GarrBuilding_Tailoring_2_A_Map','GarrBuilding_Tailoring_3_A_Map','GarrBuilding_Inscription_1_A_Info','GarrBuilding_Inscription_2_A_Info','GarrBuilding_Inscription_3_A_Info','GarrBuilding_Inscription_1_A_Map','GarrBuilding_Inscription_2_A_Map','GarrBuilding_Inscription_3_A_Map','GarrBuilding_Leatherworking_1_A_Info','GarrBuilding_Leatherworking_2_A_Info','GarrBuilding_Leatherworking_3_A_Info','GarrBuilding_Leatherworking_1_A_Map','GarrBuilding_Leatherworking_2_A_Map','GarrBuilding_Leatherworking_3_A_Map','GarrLanding-TradeskillTimer-ParchmentBG','GarrBuilding_EmptyPlot_A_1','GarrBuilding_EmptyPlot_A_2','GarrBuilding_EmptyPlot_A_3','GarrLanding-ShipmentCompleteGlow','GarrBuilding_PetStable_1_A_Info','GarrBuilding_PetStable_1_A_Map','_GarrMissionLocation-Gorgrond-Back','_GarrMissionLocation-Gorgrond-Fore','_GarrMissionLocation-Nagrand-Back','_GarrMissionLocation-Nagrand-Fore','_GarrMissionLocation-Nagrand-Mid','_GarrMissionLocation-Talador-Back','_GarrMissionLocation-Talador-Fore','_GarrMissionLocation-Talador-Mid','_GarrMissionLocation-ShadowmoonValley-Back','_GarrMissionLocation-ShadowmoonValley-Fore','_GarrMissionLocation-ShadowmoonValley-Mid','_GarrMissionLocation-SpiresofArak-Back','_GarrMissionLocation-SpiresofArak-Fore','_GarrMissionLocation-SpiresofArak-Mid','_GarrMissionLocation-Underground-Back','_GarrMissionLocation-Underground-Fore','_GarrMissionLocation-Underground-Mid','_GarrMissionLocation-TownHorde-Back','_GarrMissionLocation-TownHorde-Fore','_GarrMissionLocation-TownHorde-Mid','_GarrMissionLocation-TownAlliance-Back','_GarrMissionLocation-TownAlliance-Fore','_GarrMissionLocation-TownAlliance-Mid','GarrBuilding_Tailoring_1_H_Info','GarrBuilding_Tailoring_1_H_Map','GarrBuilding_Tailoring_2_H_Info','GarrBuilding_Tailoring_3_H_Info','GarrBuilding_Tailoring_2_H_Map','GarrBuilding_Tailoring_3_H_Map','GarrBuilding_Leatherworking_1_H_Info','GarrBuilding_Leatherworking_2_H_Info','GarrBuilding_Leatherworking_3_H_Info','GarrBuilding_Leatherworking_1_H_Map','GarrBuilding_Leatherworking_2_H_Map','GarrBuilding_Leatherworking_3_H_Map','GarrBuilding_Jewelcrafting_1_H_Info','GarrBuilding_Jewelcrafting_2_H_Info','GarrBuilding_Jewelcrafting_3_H_Info','GarrBuilding_Jewelcrafting_1_H_Map','GarrBuilding_Jewelcrafting_2_H_Map','GarrBuilding_Jewelcrafting_3_H_Map','GarrBuilding_Inscription_1_H_Info','GarrBuilding_Inscription_2_H_Info','GarrBuilding_Inscription_3_H_Info','GarrBuilding_Inscription_1_H_Map','GarrBuilding_Inscription_2_H_Map','GarrBuilding_Inscription_3_H_Map','GarrBuilding_Engineering_1_H_Info','GarrBuilding_Engineering_2_H_Info','GarrBuilding_Engineering_3_H_Info','GarrBuilding_Engineering_1_H_Map','GarrBuilding_Engineering_2_H_Map','GarrBuilding_Engineering_3_H_Map','GarrBuilding_Enchanting_1_H_Info','GarrBuilding_Enchanting_2_H_Info','GarrBuilding_Enchanting_3_H_Info','GarrBuilding_Enchanting_1_H_Map','GarrBuilding_Enchanting_2_H_Map','GarrBuilding_Enchanting_3_H_Map','GarrBuilding_Blacksmith_1_H_Info','GarrBuilding_Blacksmith_2_H_Info','GarrBuilding_Blacksmith_3_H_Info','GarrBuilding_Blacksmith_1_H_Map','GarrBuilding_Blacksmith_2_H_Map','GarrBuilding_Blacksmith_3_H_Map','GarrBuilding_Alchemy_1_H_Info','GarrBuilding_Alchemy_2_H_Info','GarrBuilding_Alchemy_3_H_Info','GarrBuilding_Alchemy_1_H_Map','GarrBuilding_Alchemy_2_H_Map','GarrBuilding_Alchemy_3_H_Map','GarrBuilding_Barn_1_H_Info','GarrBuilding_Barn_2_H_Info','GarrBuilding_Barn_3_H_Info','GarrBuilding_Barn_1_H_Map','GarrBuilding_Barn_2_H_Map','GarrBuilding_Barn_3_H_Map','GarrBuilding_Fishing_1_H_Info','GarrBuilding_Fishing_2_H_Info','GarrBuilding_Fishing_3_H_Info','GarrBuilding_Fishing_1_H_Map','GarrBuilding_Fishing_2_H_Map','GarrBuilding_Fishing_3_H_Map','GarrBuilding_Farm_1_H_Info','GarrBuilding_Farm_1_H_Map','GarrBuilding_EmptyPlot_H_3','GarrBuilding_EmptyPlot_H_2','GarrBuilding_EmptyPlot_H_1','GarrBuilding_Inn_1_H_Info','GarrBuilding_Inn_2_H_Info','GarrBuilding_Inn_3_H_Info','GarrBuilding_Inn_1_H_Map','GarrBuilding_Inn_2_H_Map','GarrBuilding_Inn_3_H_Map','GarrBuilding_TownHall_1_H_Info','GarrBuilding_TownHall_2_H_Info','GarrBuilding_TownHall_3_H_Info','GarrBuilding_TownHall_1_H_Map','GarrBuilding_TownHall_2_H_Map','GarrBuilding_TownHall_3_H_Map','GarrBuilding_Storehouse_1_H_Info','GarrBuilding_Storehouse_1_H_Map','GarrBuilding_SalvageYard_1_H_Info','GarrBuilding_SalvageYard_1_H_Map','GarrBuilding_Barracks_1_H_Info','GarrBuilding_Barracks_2_H_Info','GarrBuilding_Barracks_3_H_Info','GarrBuilding_Barracks_1_H_Map','GarrBuilding_Barracks_2_H_Map','GarrBuilding_Barracks_3_H_Map','GarrBuilding_SparringArena_1_H_Info','GarrBuilding_SparringArena_2_H_Info','GarrBuilding_SparringArena_3_H_Info','GarrBuilding_SparringArena_1_H_Map','GarrBuilding_SparringArena_2_H_Map','GarrBuilding_SparringArena_3_H_Map','GarrBuilding_Armory_1_H_Info','GarrBuilding_Armory_2_H_Info','GarrBuilding_Armory_3_H_Info','GarrBuilding_Armory_1_H_Map','GarrBuilding_Armory_2_H_Map','GarrBuilding_Armory_3_H_Map','GarrBuilding_MageTower_1_H_Info','GarrBuilding_MageTower_2_H_Info','GarrBuilding_MageTower_3_H_Info','GarrFollower-Shadow','GarrBuilding_MageTower_1_H_Map','GarrBuilding_MageTower_2_H_Map','GarrBuilding_MageTower_3_H_Map','GarrBuilding_Stables_2_H_Info','GarrBuilding_Stables_3_H_Info','GarrBuilding_Stables_1_H_Info','GarrBuilding_Stables_1_H_Map','GarrBuilding_Stables_2_H_Map','GarrBuilding_Stables_3_H_Map','GarrBuilding_TradingPost_1_H_Info','GarrBuilding_TradingPost_2_H_Info','GarrBuilding_TradingPost_3_H_Info','GarrBuilding_TradingPost_1_H_Map','GarrBuilding_TradingPost_2_H_Map','GarrBuilding_TradingPost_3_H_Map','GarrBuilding_Workshop_1_H_Info','GarrBuilding_Workshop_2_H_Info','GarrBuilding_Workshop_3_H_Info','GarrBuilding_Workshop_1_H_Map','GarrBuilding_Workshop_2_H_Map','GarrBuilding_Workshop_3_H_Map','GarrBuilding_Mine_1_H_Info','GarrBuilding_Mine_1_H_Map','GarrBuilding_LumberMill_1_H_Info','GarrBuilding_LumberMill_2_H_Info','GarrBuilding_LumberMill_3_H_Info','GarrBuilding_LumberMill_1_H_Map','GarrBuilding_LumberMill_2_H_Map','GarrBuilding_LumberMill_3_H_Map','GarrBuilding_PetStable_1_H_Info','GarrBuilding_PetStable_1_H_Map','GarrMission-AllianceChest','GarrMission-HordeChest','DungeonTargetIndicator','GarrMission_PortraitRing_Darkener','GarrMission_PortraitRing_Quality','BonusChest-OrangeSmoke-Wide','BonusChest-OrangeGlow-Wide','loottoast-bg-alliance','loottoast-bg-horde','groupfinder-button-highlight','groupfinder-button-select','groupfinder-button-cover-down','GarrMission_EncounterBar-CheckMark-Left','GarrMission_EncounterBar-CheckMark-Right','GarrMission_EncounterBar-CheckMark','GarrMission_EncounterBar-CheckMarkCircleSwipe','Alliance_Tier1_Mine','Alliance_Tier1_Trading1','Alliance_Tier1_Armory1','Alliance_Tier1_Mage1','Alliance_Tier1_Mage2','Alliance_Tier1_Armory2','Alliance_Tier1_Stables1','Alliance_Tier1_Barracks1','Alliance_Tier1_Stables2','Alliance_Tier1_Lumber1','Alliance_Tier1_Barn2','Alliance_Tier1_Professions2','Alliance_Tier1_Inn1','Alliance_Tier1_Farm','Menagery1','Alliance_Tier1_Arena2','Alliance_Tier1_Lumber2','Alliance_Tier1_Trading2','Alliance_Tier1_Fishing','Alliance_Tier1_Barn1','Alliance_Tier1_Inn2','Alliance_Tier1_Arena1','Alliance_Tier2_Arena1','Alliance_Tier2_Arena2','Alliance_Tier2_Armory1','Alliance_Tier2_Armory2','Alliance_Tier2_Barn1','Alliance_Tier2_Barn2','Alliance_Tier2_Barracks1','Alliance_Tier2_Inn1','Alliance_Tier2_Inn2','Alliance_Tier2_Lumber1','Alliance_Tier2_Lumber2','Alliance_Tier2_Mage1','Alliance_Tier2_Mage2','Alliance_Tier2_Stables1','Alliance_Tier2_Stables2','Alliance_Tier2_Trading1','Alliance_Tier2_Trading2','Alliance_Tier3_Barn1','Alliance_Tier3_Lumber1','Alliance_Tier3_Mage2','Alliance_Tier3_Inn1','Alliance_Tier3_Barracks1','Alliance_Tier3_Armory2','Alliance_Tier3_Mage1','Alliance_Tier3_Lumber2','Alliance_Tier3_Inn2','Alliance_Tier3_Stables1','Alliance_Tier3_Trading2','Alliance_Tier3_Arena1','Alliance_Tier3_Trading1','Alliance_Tier3_Stables2','Alliance_Tier3_Barn2','Alliance_Tier3_Armory1','Alliance_Tier3_Arena2','Alliance_Tier1_Barracks2','Alliance_Tier2_Barracks2','Alliance_Tier3_Barracks2','Alliance_Tier1_Workshop1','Alliance_Tier1_Workshop2','Alliance_Tier2_Workshop1','Alliance_Tier2_Workshop2','Alliance_Tier3_Workshop1','Alliance_Tier3_Workshop2','StreamCinematic-LK-Down','StreamCinematic-LK-Up','StreamCinematic-WOD-Down','StreamCinematic-WOD-Up','StreamCinematic-BC-Down','StreamCinematic-BC-Up','StreamCinematic-CC-Down','StreamCinematic-CC-Up','StreamCinematic-Classic-Down','StreamCinematic-Classic-Up','StreamCinematic-DownloadIcon','StreamCinematic-Highlight','StreamCinematic-PlayButton','StreamCinematic-ProgressBarBG','StreamCinematic-MOP-Down','StreamCinematic-MOP-Up','accountupgradebanner-bc','accountupgradebanner-cataclysm','accountupgradebanner-classic','accountupgradebanner-mop','accountupgradebanner-wod','accountupgradebanner-wotlk','MissionFX-Smoke','MissionFX-SparkLines','Horde_Tier1_Arena1','Horde_Tier1_Arena2','Horde_Tier1_Armory1','Horde_Tier1_Armory2','Horde_Tier1_Barn1','Horde_Tier1_Barn2','Horde_Tier1_Barracks1','Horde_Tier1_Barracks2','Horde_Tier1_Farm1','Horde_Tier1_Fishing1','Horde_Tier1_Inn1','Horde_Tier1_Inn2','Horde_Tier1_Lumber1','Horde_Tier1_Lumber2','Horde_Tier1_Mage1','Horde_Tier1_Mage2','Horde_Tier1_Mine1','Horde_Tier1_Profession1','Horde_Tier1_Profession2','Horde_Tier1_Profession3','Horde_Tier1_Stables1','Horde_Tier1_Stables2','Horde_Tier1_Trading1','Horde_Tier1_Trading2','Horde_Tier1_Workshop1','Horde_Tier1_Workshop2','Horde_Tier2_Arena1','Horde_Tier2_Arena2','Horde_Tier2_Armory1','Horde_Tier2_Armory2','Horde_Tier2_Barn1','Horde_Tier2_Barn2','Horde_Tier2_Barracks1','Horde_Tier2_Barracks2','Horde_Tier2_Inn1','Horde_Tier2_Inn2','Horde_Tier2_Lumber1','Horde_Tier2_Lumber2','Horde_Tier2_Mage1','Horde_Tier2_Mage2','Horde_Tier2_Stables1','Horde_Tier2_Stables2','Horde_Tier2_Trading1','Horde_Tier2_Trading2','Horde_Tier2_Workshop1','Horde_Tier2_Workshop2','Horde_Tier3_Arena1','Horde_Tier3_Arena2','Horde_Tier3_Armory1','Horde_Tier3_Armory2','Horde_Tier3_Barn1','Horde_Tier3_Barn2','Horde_Tier3_Barracks1','Horde_Tier3_Barracks2','Horde_Tier3_Inn1','Horde_Tier3_Inn2','Horde_Tier3_Lumber1','Horde_Tier3_Lumber2','Horde_Tier3_Mage1','Horde_Tier3_Mage2','Horde_Tier3_Stables1','Horde_Tier3_Stables2','Horde_Tier3_Trading1','Horde_Tier3_Trading2','Horde_Tier3_Workshop1','Horde_Tier3_Workshop2','GarrMission_TabGlow','Garr_Plot_Frostfire_H_3','Garr_Plot_Frostfire_H_2','Garr_Plot_Frostfire_H_1','Garr_Plot_Frostfire_H_4','BonusChest-GreenGlow-Wide','GarrMission_PortraitRing_iLvlBorder','bags-icon-consumables','bags-icon-equipment','bags-icon-tradegoods','search-highlight','search-select','_search-rowbg','GarrMission_EncounterAbilityBorder-Lg','GarrMission_EncounterBar-Elite','GarrMission_RewardsBox_Shadow','GarrMission_MissionCompleteChanceBg','GarrMission_CurrentEncounter-Glow','GarrMission_CurrentEncounter-SpikeyGlow','_GarrMissionLocation-Gorgrond-Mid','GarrMissionLocation-FrostfireRidge-List','GarrMissionLocation-Gorgrond-List','GarrMissionLocation-Nagrand-List','GarrMissionLocation-ShadowmoonValley-List','GarrMissionLocation-SpiresofArak-List','GarrMissionLocation-Talador-List','GarrMissionLocation-TannanJungle-List','groupfinder-icon-class-deathknight','groupfinder-icon-class-druid','groupfinder-icon-class-hunter','groupfinder-icon-class-mage','groupfinder-icon-class-monk','groupfinder-icon-class-paladin','groupfinder-icon-class-priest','groupfinder-icon-class-rogue','groupfinder-icon-class-shaman','groupfinder-icon-class-warlock','groupfinder-icon-class-warrior','groupfinder-icon-emptyslot','groupfinder-icon-quest','groupfinder-icon-role-large-dps','groupfinder-icon-role-large-heal','groupfinder-icon-role-large-tank','_GarrMissionLocation-BlackrockMountain-Back','_GarrMissionLocation-BlackrockMountain-Fore','_GarrMissionLocation-BlackrockMountain-Mid','_GarrMissionLocation-BlackrockMountain-List','GarrLanding-Tab-Bottom-Selected','GarrLanding-Tab-Bottom-Unselected','GarrLanding-Tab-Bottom-Highlight','challenges-timerborder','challenges-blackfade','challenges-timerbg','challenges-bannershine','challenges-toast','Banner-BgFiligree','Banner-FiligreeShadow','Banner-SmallFiligree','ScenariosIcon','ScenarioTrackerToast-FinalFiligree','ScenarioTrackerToast','Toast-Flash','Toast-Frame','Toast-IconBG','challenges-nomedal','Bonus-ToastBanner','groupfinder-button-ashran','groupfinder-background-arenas','groupfinder-background-ashran','groupfinder-background-battlegrounds','groupfinder-background-custom-pve','groupfinder-background-custom-pvp','groupfinder-background-dungeons','groupfinder-background-questing','groupfinder-background-raids-bc','groupfinder-background-raids-cataclysm','groupfinder-background-raids-classic','groupfinder-background-raids-mists','groupfinder-background-raids-wrath','groupfinder-background-ratedbgs','groupfinder-background-scenarios','groupfinder-background-skirmishes','groupfinder-background-raids-warlords','groupfinder-button-raids-warlords','GarrLanding-Tab-Bottom-Selected-Right','GarrLanding-Tab-Bottom-Unselected-Left','GarrLanding-Tab-Bottom-Selected-Left','GarrLanding-Tab-Bottom-Highlight-Right','GarrLanding-Tab-Bottom-Highlight-Left','GarrLanding-Tab-Bottom-Unselected-Right','collections-watermark-toy','CacheToast-Glow','CacheToast','NPE_ExclamationPoint','NPE_Icon','NPE_LeftClick','NPE_RightClick','NPE_TurnIn','NPE_ArrowDownGlow','NPE_ArrowUpGlow','NPE_ArrowUp','NPE_ArrowDown','NPE_ArrowRightGlow','NPE_keyboard','NPE_ArrowRight','NPE_ArrowLeftGlow','NPE_ArrowLeft','UI-Minimap-Clock','GarrLanding-TradeskillTimer-Border','barbershop-background','groupfinder-waitdot','OBJFX-BarGlow','deathrecap-icon-tombstone','collections-watermark-heirloom','Crop-Corner','Crop-Side','Crop-Top','WoWShare-AchievementIcon','WoWShare-AddButton-Down','WoWShare-AddButton-Up','WoWShare-ChatIcon','WoWShare-Highlight','WoWShare-ItemQualityBorder','WoWShare-Plus','WoWShare-Selection','WoWShare-ItemIcon','WoWShare-ScreenshotIcon','token-button-category','token-itemslot','token-choice-bnet','token-choice-wow','WoWShare-EdgeArt','UI-DialogBox-goldbutton-down-right-blue','UI-DialogBox-goldbutton-down-left-blue','UI-DialogBox-goldbutton-up-middle-blue','UI-DialogBox-goldbutton-up-right-blue','UI-DialogBox-goldbutton-up-left-blue','UI-DialogBox-goldbutton-down-middle-blue','BossBanner-BottomFillagree','BossBanner-SkullCircle','BossBanner-TopFillagree','BossBanner-RedFlash','BossBanner-LeftFillagree','BossBanner-RightFillagree','BossBanner-SkullSpikes','deathrecap-iconborder','deathrecap-background-innerglow','!GeneralFrame-InsetFrame-Left','!GeneralFrame-InsetFrame-Right','GeneralFrame-HorizontalBar-Left','GeneralFrame-HorizontalBar-Right','GeneralFrame-InsetFrame-BottomLeft','GeneralFrame-InsetFrame-BottomRight','GeneralFrame-InsetFrame-TopLeft','GeneralFrame-InsetFrame-TopRight','_GeneralFrame-HorizontalBar','_GeneralFrame-InsetFrame-Bottom','_GeneralFrame-InsetFrame-Top','collections-upgradeglow','XPBarAnim-OrangeGain','XPBarAnim-OrangeSpark','XPBarAnim-OrangeTrail','XPBarAnim-OrangeGlow','XPBarAnim-GlowLines','collections-upgradeglow-blue','splash-610-botleft','splash-610-right','splash-610-topleft','Garr_MissionToast-Blank','colorblind-bar-green','colorblind-bar-red','colorblind-bar-yellow','colorblind-colorwheel','GarrMission_MissionTooltipAway','GarrMission_MissionTooltipWorking','GarrMission_CounterHalfCheck','TalkingHeads-Glow-TopSpike','TalkingHeads-PortraitBg','TalkingHeads-TextBackground','TalkingHeads-PortraitFrame','TalkingHeads-Glow-TopBarGlow','TalkingHeads-Glow-SideBarGlow','TalkingHeads-Glow-Sheen','TalkingHeads-Glow-TextSheen','GarrMission-AbilityHighlight','token-info-background','WoWShare-TwitterLogo','token-info-arrow','adventureguide-pane-large','adventureguide-ring','BossBanner-BgBanner-Bottom','BossBanner-BgBanner-Top','LootBanner-IconGlow','LootBanner-ItemBg','LootBanner-LootBagCircle','BossBanner-BgBanner-Mid','LootToast-LessAwesome','transmog-frame-pink','transmog-frame-red','transmog-frame-selected','transmog-frame','transmog-icon-chat','transmog-icon-checkmark','transmog-icon-remove','transmog-icon-revert-small-disabled','transmog-icon-revert-small','transmog-icon-revert','transmog-wardrobe-border-collected','transmog-wardrobe-border-highlighted','transmog-wardrobe-border-selected','transmog-wardrobe-border-uncollected','adventureguide-pane-small','NavalMap01','!ShipMission_Bg-Edge','!ShipMission_RewardsBorder-Left-Desaturate','!GarrMission_Bg-DarkEdge','!ShipMission_Bg-DarkEdge','_ShipMission_Bg-BottomEdge','_ShipMission_Bg-BottomEdgeSmall','_ShipMission_LocationCover-Bottom','_ShipMission_RewardsBorder-Top-Desaturate','_ShipMission_TopBorder','ShipMission_FollowerListButton-Highlight','ShipMission_FollowerListButton-Select','ShipMission_FollowerListButton','ShipMission_IconLevelBG','ShipMission_TopBorderCorner','ShipMission_Bg-DarkEdgeCorner','ShipMission_BoatRarity-Epic','ShipMission_BoatRarity-Rare','ShipMission_BoatRarity-Uncommon','ShipMission_DangerousSkull','ShipMission_EncounterAbilityBorder-Lg','ShipMission_EncounterAbilityBorder','ShipMission_LocationCover-Side','ShipMission_MissionCostStartButtonBg','ShipMission_RewardsBG-Desaturate','ShipMission_RewardsBorder-Corner-Desaturate','ShipMission_StartMissionFrame','ShipMissionParchment-Tile','_GarrMissionLocation-TannanSea-Back','_GarrMissionLocation-TannanSea-Fore','_GarrMissionLocation-TannanSea-Mid','ShipMission_CurrencyIcon-Oil','NavalMap-Horde-Fog','NavalMap-Horde-Highlight','NavalMap-Alliance-Fog','NavalMap-IronHorde-Fog','NavalMap-OpenWaters-Fog','NavalMap-Alliance-Highlight','NavalMap-IronHorde-Highlight','NavalMap-OpenWaters-Highlight','ShipMission_FollowerBG','ShipMission_FollowerBG-Glow','Ships_GalleonH-List','Ships_GalleonH-Portrait','Ships_GalleonH-Map','ShipMissionIcon-Combat-Map','ShipMissionIcon-Combat-MapBadge','ShipMissionIcon-Oil-Map','ShipMissionIcon-Oil-MapBadge','ShipMissionIcon-SiegeA-Map','ShipMissionIcon-SiegeA-MapBadge','ShipMissionIcon-SiegeH-Map','ShipMissionIcon-SiegeH-MapBadge','ShipMissionIcon-Training-Map','ShipMissionIcon-Training-MapBadge','ShipMissionIcon-Treasure-Map','ShipMissionIcon-Treasure-MapBadge','Ships_TroopTransport-List','Ships_TroopTransport-Portrait','Ships_TroopTransport-Map','Ships_EnemyTroopTransport-Portrait','Ships_Dreadnaught-List','Ships_Dreadnaught-Portrait','Ships_Dreadnaught-Map','Ships_EnemyDreadnaught-Portrait','Ships_SubmarineH-List','Ships_SubmarineH-Portrait','Ships_SubmarineH-Map','Ships_EnemySubmarineH-Portrait','Ships_SubmarineA-List','Ships_SubmarineA-Portrait','Ships_SubmarineA-Map','Ships_EnemySubmarineA-Portrait','ShipMissionIcon-Combat-Mission','ShipMissionIcon-Oil-Mission','ShipMissionIcon-SiegeA-Mission','ShipMissionIcon-SiegeH-Mission','ShipMissionIcon-Training-Mission','ShipMissionIcon-Treasure-Mission','Ships_EnemyGalleonH-Portrait','Ships_GalleonA-List','Ships_GalleonA-Portrait','Ships_GalleonA-Map','Ships_EnemyGalleonA-Portrait','Ships_CargoShip-List','Ships_CargoShip-Portrait','Ships_CargoShip-Map','Ships_EnemyCargoShip-Portrait','Ships_Carrier-List','Ships_Carrier-Portrait','Ships_Carrier-Map','Ships_EnemyCarrier-Portrait','ShipMission_ShipFollower-EquipmentBG','ShipMission_ShipFollower-EquipmentFrame','ShipMission_ShipFollower-Lock-Epic','ShipMission_ShipFollower-Lock-Rare','ShipMission_ShipFollower-TypeFrame','transmog-frame-small-pink','transmog-frame-small','transmog-frame-small-selected','transmog-frame-small-red','ShipMission-RedGlowRing','adventureguide-rewardring','WildBattlePet','StableMaster','ArchBlob','Banker','Focus','BattleMaster','Ammunition','Class','Profession','Target','Food','Reagents','Innkeeper','Auctioneer','Repair','Mailbox','FlightMaster','None','QuestBlob','TrivialQuests','Poisons','PlayerFriend','QuestRepeatableTurnin','MantidTowerDestroyed','PortalRed','QuestTurnin','Object','Gear','MonsterFriend','MonsterEnemy','PortalPurple','DungeonSkull','PlayerNeutral','MonsterNeutral','PortalBlue','QuestLegendaryTurnin','QuestDaily','PlayerControlled','VignetteLoot','VignetteEvent','PlayerEnemy','PartyMember','XMarksTheSpot','QuestObjective','QuestLegendary','ArtifactQuest','QuestNormal','VignetteLootElite','FlightPath','VignetteEventElite','ChatBallon','MantidTower','RaidMember','VignetteKill','QuestBonusObjective','ArtifactQuestTurnin','SmallQuestBang','VignetteKillElite','GreenCross','PlayerDeadBlip','PlayerPartyBlip','PlayerRaidBlip','Vehicle-Air-Alliance','Vehicle-Air-Horde','Vehicle-Air-Occupied','Vehicle-Air-Unoccupied','Vehicle-AllianceCart','Vehicle-Carriage','Vehicle-Ground-Occupied','Vehicle-Ground-Unoccupied','Vehicle-GrummleConvoy','Vehicle-HammerGold-1','Vehicle-HammerGold-2','Vehicle-HammerGold-3','Vehicle-HammerGold','Vehicle-HordeCart','Vehicle-Mogu','Vehicle-SilvershardMines-Arrow','Vehicle-SilvershardMines-MineCart','Vehicle-SilvershardMines-MineCartBlue','Vehicle-SilvershardMines-MineCartRed','Vehicle-TempleofKotmogu-CyanBall','Vehicle-TempleofKotmogu-GreenBall','Vehicle-TempleofKotmogu-OrangeBall','Vehicle-TempleofKotmogu-PurpleBall','Vehicle-Trap-Gold','Vehicle-Trap-Grey','Vehicle-Trap-Red','QuestSkull','Focus-Tracker','MagePortalAlliance','MagePortalHorde','QuestArtifact','QuestArtifactTurnin','Target-Tracker','WarlockPortalAlliance','WarlockPortalHorde','WildBattlePet-Tracker','WildBattlePetCapturable','CrossedFlags','CrossedFlagsWithTimer','MiniMap-DeadArrow','MiniMap-PositionArrows','MiniMap-QuestArrow','MiniMap-VignetteArrow','MinimapArrow','Rotating-MinimapArrow','Rotating-MinimapGroupArrow','Rotating-MinimapGuideArrow','MiniMap-PositionArrowDown','MiniMap-PositionArrowUp','MovieRecordingIcon','BossBanner-RedLightning','Artifacts-PerkRing-GoldMedal','Artifacts-PerkRing-MainProc-Glow','Artifacts-PerkRing-MainProc','Artifacts-PerkRing-Small','Artifacts-PointsBox','Artifacts-PerkRing-Highlight','ArtifactsFX-SpinningGlowys','ArtifactsFX-StarBurst','ArtifactsFX-Whirls','ArtifactsFX-YellowRing','Artifacts-DemonHunter-BG','Artifacts-Paladin-BG','Artifacts-PointsBoxGreen','ArtifactsFX-PointSideBurstLeft','ArtifactsFX-PointSideBurstRight','vas-receipt-selectedcharbg','Ships_CarrierA-List','Ships_CarrierA-Portrait','Ships_CarrierA-Map','Ships_CarrierH-Map','Ships_CarrierH-List','Ships_CarrierH-Portrait','GarrLanding-ShipMission-Complete','GarrLanding-ShipMission-InProgress','_GarrMissionLocation-FrostfireSea-Back','_GarrMissionLocation-FrostfireSea-Fore','_GarrMissionLocation-FrostfireSea-Mid','_GarrMissionLocation-ShadowmoonSea-Back','_GarrMissionLocation-ShadowmoonSea-Fore','_GarrMissionLocation-ShadowmoonSea-Mid','_GarrMissionLocation-NagrandSea-Back','_GarrMissionLocation-NagrandSea-Fore','_GarrMissionLocation-NagrandSea-Mid','ShipMission_Toast','adventureguide-redx','Artifacts-MageArcane-BG','GarrisonFX_BlueFlare','GarrMission_WeakEncounterAbilityBorder-Lg','bonusobjectives-bar-bg','bonusobjectives-bar-fill','bonusobjectives-bar-frame','bonusobjectives-bar-glow-ring','bonusobjectives-bar-glow','bonusobjectives-bar-ring','bonusobjectives-bar-sheen','bonusobjectives-bar-spark','bonusobjectives-bar-starburst','bonusobjectives-title-bg','bonusobjectives-title-icon','ShipMission_NameBG','ShipMission_PartyBuffsBG','Ships_DreadnaughtA-List','Ships_DreadnaughtA-Portrait','Ships_DreadnaughtA-Map','Ships_DreadnaughtH-List','Ships_DreadnaughtH-Portrait','Ships_DreadnaughtH-Map','Ships_EnemyDreadnaughtH-Portrait','Ships_EnemyDreadnaughtA-Portrait','FontStyle_Parchment','FontStyle_BlueGradient','FontStyle_Garrisons','FontStyle_IronHordeMetal','FontStyle_Legion','FontStyle_Metal','splash-620-botleft','splash-620-right','splash-620-topleft','Artifacts-DeathKnightFrost-BG','shop-card-darkcover','Artifacts-Warrior-BG','Artifacts-Rogue-BG','Artifacts-Druid-BG','ShipMissionIcon-Bonus-Mission','ShipMissionIcon-Bonus-Map','ShipMissionIcon-Bonus-MapBadge','NavalMap-CircleGlowTrails','NavalMap-LargeBonusCircle','NavalMap-SmallBonusCircle','GarrisonFX-StarBurst','GarrMission_WeakEncounterAbilityBorder','ShipMission-TimerBG','services-icon-warning','ShipMissionIcon-Legendary-Map','ShipMissionIcon-Legendary-MapBadge','ShipMissionIcon-Legendary-Mission','_ForgeBorder-Top','!ForgeBorder-Right','_DemonHunter-DemonicFuryBar','services-icon-goldborder','vas-receipt-brownarrow','vas-receipt-greenbg','Ships_EnemyCarrierA-Portrait','Ships_EnemyCarrierH-Portrait','LootToast-MoreAwesome','legioninvasion-map-icon-portal-large','legioninvasion-map-icon-portal','legioninvasion-scenario-rewardring','legioninvasion-ScenarioTrackerToast','legioninvasion-Toast-Frame','legioninvasion-map-cover','ShipMissionIcon-SiegeIHA-Map','ShipMissionIcon-SiegeIHA-MapBadge','ShipMissionIcon-SiegeIHH-Map','ShipMissionIcon-SiegeIHH-MapBadge','ShipMissionIcon-SiegeIHA-Mission','ShipMissionIcon-SiegeIHH-Mission','tournamentarena-flag-large-blue-flash','tournamentarena-flag-large-blue','tournamentarena-flag-large-red-flash','tournamentarena-flag-large-red','tournamentarena-frame-bg-side-blue','tournamentarena-frame-bg-side-red','tournamentarena-frame-bot','tournamentarena-frame-botleft','tournamentarena-frame-botright','tournamentarena-frame-left','tournamentarena-frame-right','tournamentarena-frame-top','tournamentarena-frame-topleft','tournamentarena-frame-topright','tournamentarena-titlebackplate','honorsystem-bar-background','honorsystem-bar-frame','honorsystem-bar-spark','honorsystem-bar-rewardborder-prestige-flash','honorsystem-bar-rewardborder-prestige','honorsystem-bar-rewardborder','honorsystem-prestige-laurel-bg-alliance','honorsystem-prestige-laurel-bg-horde','honorsystem-prestige-laurel','honorsystem-talents-bg','_honorsystem-bar-fill','honorsystem-icon-prestige-1','honorsystem-icon-prestige-10','honorsystem-icon-prestige-11','honorsystem-icon-prestige-2','honorsystem-icon-prestige-3','honorsystem-icon-prestige-4','honorsystem-icon-prestige-5','honorsystem-icon-prestige-6','honorsystem-icon-prestige-7','honorsystem-icon-prestige-8','honorsystem-icon-prestige-9','bonusobjectives-title-icon-honor','honorsystem-bar-frame-small','honorsystem-bar-rewardborder-circle','honorsystem-icon-bonus','honorsystem-portrait-alliance','honorsystem-portrait-horde','DemonInvasion1','DemonInvasion2','DemonInvasion3','DemonInvasion4','_Shaman-MaelstromBar','_Druid-LunarBar','titleprestige-glowcover','titleprestige-prestigeicon','titleprestige-starglow','titleprestige-title','titleprestige-title2','titleprestige-wreath','titleprestige-title-bg','titleprestige-ember','services-popup-bot','services-popup-botleft','services-popup-botright','services-popup-top','services-popup-topleft','services-popup-topright','services-popup-bg','services-popup-left','services-popup-right','titleprestige-wings','titleprestige-wings2','titleprestige-wings-white','titleprestige-wings2-white','titleprestige-starcrown','AdventureMapLabel-Large','AdventureMapLabel-Small','AdventureMapIcon-DailyQuest','AdventureMapIcon-MissionCombat','AdventureMapIcon-Quest','AdventureMapIcon-SandboxQuest','QuestPortraitIcon-SandboxQuest','Mage-ArcaneCharge','Mage-ArcaneChargeBar','Priest-InsanityOverlay','_Priest-InsanityBar','Legion-boostpopup-bottom','Legion-boostpopup-middle','Legion-boostpopup-top','AdventureMapIcon-Lock','AdventureMapLabel-MissionTimer','AdventureMapLabel-QuestDiscovered','FXAM-QuestBang','FXAM-SmallSpikeyGlow','Mission-FollowerPortraitFrame','Mission-LootBackgroundGlow','FogofWar','AdventureMapQuest-QuestPane','AdventureMapQuest-RewardsPanel','AdventureMapQuest-ItemNameBG','charactercreate-banner-bottom','charactercreate-banner-middle','charactercreate-banner-top','Artifacts-Shaman-BG','Artifacts-Hunter-BG','Artifacts-Priest-BG','Artifacts-Monk-BG','Artifacts-Warlock-BG','services-checkmark','services-cover-ring','services-cover','services-icon-bonus-large','services-icon-bonus-red','services-icon-bonus','services-icon-processing','services-number-1','services-number-2','services-number-3','services-number-4','services-number-5','services-number-6','services-number-7','services-number-8','services-number-9','services-ring-countcircle','services-ring-large-glow','services-ring-large-glowpulse','services-ring-large-glowspin','services-ring-large','services-ring-wod','services-ring','services-yellowarrow','transmog-nav-slot-back','transmog-nav-slot-chest','transmog-nav-slot-feet','transmog-nav-slot-hands','transmog-nav-slot-head','transmog-nav-slot-legs','transmog-nav-slot-mainhand','transmog-nav-slot-selected','transmog-nav-slot-shirt','transmog-nav-slot-shoulder','transmog-nav-slot-tabard','transmog-nav-slot-waist','transmog-nav-slot-wrist','boostpopup-wod-bottom','boostpopup-wod-middle','boostpopup-wod-top','Relic-Arcane-Slot','Relic-Arcane-TraitBG','Relic-Arcane-TraitGlow','Relic-Arcane-TraitGlowRing','Relic-Blood-Slot','Relic-Blood-TraitBG','Relic-Blood-TraitGlow','Relic-Blood-TraitGlowRing','Relic-Fel-Slot','Relic-Fel-TraitBG','Relic-Fel-TraitGlow','Relic-Fel-TraitGlowRing','Relic-Fire-Slot','Relic-Fire-TraitBG','Relic-Fire-TraitGlow','Relic-Fire-TraitGlowRing','Relic-Frost-Slot','Relic-Frost-TraitBG','Relic-Frost-TraitGlow','Relic-Frost-TraitGlowRing','Relic-Holy-Slot','Relic-Holy-TraitBG','Relic-Holy-TraitGlow','Relic-Holy-TraitGlowRing','Relic-Iron-Slot','Relic-Iron-TraitBG','Relic-Iron-TraitGlow','Relic-Iron-TraitGlowRing','Relic-Life-Slot','Relic-Life-TraitBG','Relic-Life-TraitGlow','Relic-Life-TraitGlowRing','Relic-Shadow-Slot','Relic-Shadow-TraitBG','Relic-Shadow-TraitGlow','Relic-Shadow-TraitGlowRing','Relic-SlotBG','Relic-Water-Slot','Relic-Water-TraitBG','Relic-Water-TraitGlow','Relic-Water-TraitGlowRing','Relic-Wind-Slot','Relic-Wind-TraitBG','Relic-Wind-TraitGlow','Relic-Wind-TraitGlowRing','transmog-toast-bg','FullAlert-BigSpike','FullAlert-SoftCurveGlow','FullAlert-YellowCurveGlow','FullAlert-FrameGlow','accountupgradebanner-legion','Glues-WoW-LegionLogo','Glues-WoW-LegionLogo_cn','Glues-WoW-LegionLogo_tw','shop-games-legion','shop-games-legiondeluxe-card','shop-games-magnifyingglass','shop-games-legiondeluxe','Barbershop-Bottom','Barbershop-Top','!Barbershop-MiddleTile','AftLevelup-CloudyLineLeft','AftLevelup-CloudyLineRight','AftLevelup-Dots1','AftLevelup-Dots2','AftLevelup-GlowLine','AftLevelup-IconFrame','AftLevelup-IconGlow','AftLevelup-Lines1','AftLevelup-Lines2','AftLevelup-SoftCloud','AftLevelup-ToastBG','AftLevelup-FiligreeLeft','AftLevelup-FiligreeRight','transmog-nav-slot-secondaryhand','AftLevelup-WhiteIconGlow','AftLevelup-WhiteStarBurst','_transmog-preview-QuestPortrait-Divider_noname','_transmog-preview-QuestPortrait-StoneSwirls-Top','transmog-icon-downarrow','Forge-ColorSwatch','Forge-ColorSwatchBorder','Forge-ColorSwatchSelection','Forge-Lock','ForgeBorder-CornerBottomLeft','ForgeBorder-CornerBottomRight','ForgeBorder-CornerTopRight','Forge-Background','Artifacts-HeaderBG','Artifacts-Paladin-Header','Artifacts-DeathKnightFrost-Header','Artifacts-DemonHunter-Header','Artifacts-Druid-Header','search-iconframe-large','search-highlight-large','Artifacts-Hunter-Header','Artifacts-MageArcane-Header','Artifacts-Monk-Header','Artifacts-Priest-Header','Artifacts-Rogue-Header','Artifacts-Shaman-Header','Artifacts-Warlock-Header','Artifacts-Warrior-Header','titleprestige-prestigeiconplate-alliance','titleprestige-prestigeiconplate-horde','Artifacts-PerkRing-WhiteGlow','AdventureMapQuest-PortraitBG','Rune-01-dark','Rune-01-light','Rune-02-dark','Rune-02-light','Rune-03-dark','Rune-03-light','Rune-04-dark','Rune-04-light','Rune-05-dark','Rune-05-light','Rune-06-dark','Rune-06-light','Rune-07-dark','Rune-07-light','Rune-08-dark','Rune-08-light','Rune-09-dark','Rune-09-light','Rune-10-dark ','Rune-10-light','Rune-11-dark','Rune-11-light','Mage-ArcaneCharge-CircleGlow','Mage-ArcaneCharge-Rune','Mage-ArcaneCharge-SmallSpark','Mage-ArcaneCharge-Spark','Forge-AppearanceStrip','Forge-ColorSwatchBackground','Forge-ColorSwatchHighlight','AdventureMap_TopBorder','AdventureMap_TileBg','Artifacts-PriestShadow-BG','Artifacts-PriestShadow-Header','bags-glow-artifact','AdventureMap-InsetMapBorder','Artifacts-Paladin-KnowledgeRank','ClassOverlay-HolyPower1off','ClassOverlay-HolyPower1on','ClassOverlay-HolyPower2off','ClassOverlay-HolyPower2on','ClassOverlay-HolyPower3off','ClassOverlay-HolyPower3on','ClassOverlay-HolyPower4off','ClassOverlay-HolyPower4on','ClassOverlay-HolyPower5off','ClassOverlay-HolyPower5on','ClassOverlay-HolyPowerBG','Artifacts-DeathKnightFrost-KnowledgeRank','Artifacts-DemonHunter-KnowledgeRank','Artifacts-Druid-KnowledgeRank','Artifacts-Hunter-KnowledgeRank','Artifacts-MageArcane-KnowledgeRank','Artifacts-Monk-KnowledgeRank','Artifacts-Priest-KnowledgeRank','Artifacts-PriestShadow-KnowledgeRank','Artifacts-Rogue-KnowledgeRank','Artifacts-Shaman-KnowledgeRank','Artifacts-Warlock-KnowledgeRank','Artifacts-Warrior-KnowledgeRank','ClassOverlay-Fury','ClassOverlay-FuryBG','ClassOverlay-Rune','ClassOverlay-RunicPower','ClassOverlay-RunicPowerBg','ClassOverlay-ComboPoint','LegionSplash-NewCharacter','LegionSplash-DemonHunterButton','LegionSplash-Logo','LegionSplash-NewCharacterButton','LegionSplash-DemonHunter','legioninvasion-title-bg','transmog-nav-slot-enchant','transmog-nav-slot-selected-small','nameplates-bar-background','honorsystem-portrait-neutral','nameplates-holypower1-off','nameplates-holypower1-on','nameplates-holypower2-off','nameplates-holypower2-on','nameplates-holypower3-off','nameplates-holypower3-on','nameplates-holypower4-off','nameplates-holypower4-on','nameplates-playerhealth-background','nameplates-InterruptShield','nameplate-WarlockShard-Off','nameplate-WarlockShard-On','nameplate-WarlockShard-Glow','ClassOverlay-ComboPoint-Off','Insanity-DrippyPurple1','Insanity-DrippyPurple2','Insanity-PortraitOverlay','Insanity-PurpleBurstOn','Insanity-ShadowBurstOn','Insanity-Tentacles','Insanity-TopPurpleShadow','options-notch','Insanity-Spark','tradeskills-star-off','tradeskills-star','tradeskill-background-recipe','tradeskill-background-recipe-unlearned','loottoast-itemborder-heirloom','ComboPoints-AllPointsBG','ComboPoints-PointBg','ComboPoints-ComboPointDash','ComboPoints-ComboPointDash-Bg','ComboPoints-ComboPoint','ComboPoints-FX-Circle','ComboPoints-FX-Dash','ComboPoints-FX-Star','obliterumforge-background','obliterumforge-slotted-corners-glow','obliterumforge-slotted-corners','ChallengeMode-AffixRing-Lg','ChallengeMode-AffixRing-Sm','ChallengeMode-DungeonIconFrame','ChallengeMode-KeystoneFrame','ChallengeMode-KeystoneSlotBG','ChallengeMode-KeystoneSlotFrame','ChallengeMode-KeystoneSlotFrameGlow','ChallengeMode-MainTabBg','ChallengeMode-ThinDivider','_DemonHunter-DemonicPainBar','GlyphIcon-Spellbook','ChallengeMode-Runes-GlowLarge','ChallengeMode-Runes-Large','ChallengeMode-Runes-LineGlow','BossBanner-PortraitBorder','ChallengeMode-SoftYellowGlow','ChallengeMode-SpikeyStar','ChallengeMode-Timer','ChallengeMode-TimerBG','ChallengeMode-TimerFill','ChallengeMode-WhiteSpikeyGlow','ChallengeMode-Runes-BackgroundCoverGlow','ChallengeMode-Runes-GlowBurstLarge','ChallengeMode-Runes-GlowSmall','ChallengeMode-RuneBG','ChallengeMode-Runes-BackgroundBurst','ChallengeMode-Runes-BL-Glow','ChallengeMode-Runes-BR-Glow','ChallengeMode-Runes-InnerCircleGlow','ChallengeMode-Runes-L-Glow','ChallengeMode-Runes-R-Glow','ChallengeMode-Runes-Small','ChallengeMode-Runes-T-Glow','ChallengeMode-Runes-CircleGlow','recipetoast-bg','recipetoast-icon-star','transmog-wardrobe-border-unusable','worldquest-icon-clock','worldquest-questmarker-dragon-glow','worldquest-questmarker-dragon','worldquest-questmarker-epic-down','worldquest-questmarker-epic','worldquest-questmarker-glow','worldquest-questmarker-questbang','worldquest-tracker-checkmark','worldquest-tracker-questmarker-gray','worldquest-tracker-questmarker','worldquest-tracker','ChallengeMode-Runes-SmallCircleGlow','worldquest-questmarker-questionmark','ChallengeMode-Runes-Shockwave','ChallengeMode-Chest','worldquest-icon-pvp-ffa','worldquest-tracker-ring-selected','worldquest-tracker-ring','ChallengeMode-icon-chest','ChallengeMode-icon-redline','ChallengeMode-TimerBG-back','LegionMissionIcon-ZoneSupportAlliance-Map','orderhalltalents-background-mage','orderhalltalents-background-deathknight','orderhalltalents-background-demonhunter','orderhalltalents-background-druid','orderhalltalents-background-hunter','orderhalltalents-background-monk','orderhalltalents-background-paladin','orderhalltalents-background-priest','orderhalltalents-background-rogue','orderhalltalents-background-shaman','orderhalltalents-background-warlock','orderhalltalents-background-warrior','orderhalltalents-choice-background','orderhalltalents-spellborder-green','orderhalltalents-spellborder-yellow','orderhalltalents-spellborder','LegionMissionIcon-ZoneSupportAlliance-MapBadge','LegionMissionIcon-ZoneSupportHorde-Map','LegionMissionIcon-ZoneSupportHorde-MapBadge','LegionMissionIcon-ZoneSupportAlliance-Mission','LegionMissionIcon-ZoneSupportHorde-Mission','orderhalltalents-timer-bg','legionmission-map-orderhall-deathknight','legionmission-map-orderhall-demonhunter','legionmission-map-orderhall-druid','legionmission-map-orderhall-glow','legionmission-map-orderhall-hunter','legionmission-map-orderhall-mage','legionmission-map-orderhall-monk','legionmission-map-orderhall-paladin','legionmission-map-orderhall-priest','legionmission-map-orderhall-rogue','legionmission-map-orderhall-shaman','legionmission-map-orderhall-warlock','legionmission-map-orderhall-warrior','legionmission-map-orderhall-textglow','worldquest-icon-alchemy','worldquest-icon-archaeology','worldquest-icon-blacksmithing','worldquest-icon-cooking','worldquest-icon-enchanting','worldquest-icon-engineering','worldquest-icon-firstaid','worldquest-icon-fishing','worldquest-icon-herbalism','worldquest-icon-inscription','worldquest-icon-jewelcrafting','worldquest-icon-leatherworking','worldquest-icon-mining','worldquest-icon-skinning','worldquest-icon-tailoring','worldquest-icon-petbattle','DemonInvasion5','book-bg','book-line','_orderhall-commandbar-bg','worldquest-icon-boss','transmog-icon-hidden','orderhalltalents-choice-arrow-large','orderhalltalents-choice-background-on','LegendaryToast-particles3','LegendaryToast-particles2','LegendaryToast-background','LegendaryToast-ring1','LegendaryToast-particles1','tradeskills-iconborder','LegendaryToast-OrangeStarglow','loottoast-itemborder-artifact','adventureguide-icon-whatsnew','adventureguide-microbutton-alert','transmog-frame-blackcover','transmog-frame-highlighted','transmog-background-race-bloodelf','transmog-background-race-human','transmog-background-race-draenei','transmog-background-race-dwarf','transmog-background-race-gnome','transmog-background-race-goblin','transmog-background-race-nightelf','transmog-background-race-orc','transmog-background-race-pandaren','transmog-background-race-tauren','transmog-background-race-troll','transmog-background-race-undead','transmog-background-race-worgen','AdventureMap-combatally-clouds','AdventureMap-combatally-empty','AdventureMap-combatally-ring','AdventureMap-textlabelglow','legionmission-EncounterAbilityBorder-Lg','legionmission-EncounterAbilityBorder','worldquest-followerabilityframe','worldquest-questmarker-abilityhighlight','transmog-frame-highlighted-small','nameplates-bar-background-white','_honorsystem-bar-fill-rested','honorsystem-bar-frame-exhaustiontick-highlight','honorsystem-bar-frame-exhaustiontick','legionmission-complete-background-deathknight','legionmission-complete-background-demonhunter','legionmission-complete-background-druid','legionmission-complete-background-hunter','legionmission-complete-background-mage','legionmission-complete-background-monk','legionmission-complete-background-paladin','legionmission-complete-background-priest','legionmission-complete-background-rogue','legionmission-complete-background-shaman','legionmission-complete-background-warlock','legionmission-complete-background-warrior','legionmission-landingpage-background-deathknight','legionmission-landingpage-background-demonhunter','legionmission-landingpage-background-druid','legionmission-landingpage-background-hunter','legionmission-landingpage-background-mage','legionmission-landingpage-background-monk','legionmission-landingpage-background-paladin','legionmission-landingpage-background-priest','legionmission-landingpage-background-rogue','legionmission-landingpage-background-shaman','legionmission-landingpage-background-warlock','legionmission-landingpage-background-warrior','legionmission-landingbutton-deathknight-down','legionmission-landingbutton-deathknight-up','legionmission-landingbutton-demonhunter-down','legionmission-landingbutton-demonhunter-up','legionmission-landingbutton-druid-down','legionmission-landingbutton-druid-up','legionmission-landingbutton-hunter-down','legionmission-landingbutton-hunter-up','legionmission-landingbutton-mage-down','legionmission-landingbutton-mage-up','legionmission-landingbutton-monk-down','legionmission-landingbutton-monk-up','legionmission-landingbutton-paladin-down','legionmission-landingbutton-paladin-up','legionmission-landingbutton-priest-down','legionmission-landingbutton-priest-up','legionmission-landingbutton-rogue-down','legionmission-landingbutton-rogue-up','legionmission-landingbutton-shaman-down','legionmission-landingbutton-shaman-up','legionmission-landingbutton-warlock-down','legionmission-landingbutton-warlock-up','legionmission-landingbutton-warrior-down','legionmission-landingbutton-warrior-up','transmog-wardrobe-border-current','transmog-wardrobe-border-selected-wisp','transmog-wardrobe-border-current-transmogged','glueannouncementpopup-arrow','glueannouncementpopup-background','glueannouncementpopup-icon-info','glueannouncementpopup-inset','loottab-set-itemborder-green','loottab-set-itemborder-purple','loottab-set-itemborder-blue','poi-alliance','poi-horde','GarrisonTroops-Health-Consume','GarrisonTroops-Health','BonusChest-BonusTextGlow','GarrMission_ClassIcon-DeathKnight-Blood','GarrMission_ClassIcon-DeathKnight-Frost','GarrMission_ClassIcon-DeathKnight-Unholy','GarrMission_ClassIcon-DemonHunter-Havoc','GarrMission_ClassIcon-DemonHunter-Vengeance','GarrMission_ClassIcon-Druid-Balance','GarrMission_ClassIcon-Druid-Feral','GarrMission_ClassIcon-Druid-Guardian','GarrMission_ClassIcon-Druid-Restoration','GarrMission_ClassIcon-Hunter-BeastMastery','GarrMission_ClassIcon-Hunter-Marksmanship','GarrMission_ClassIcon-Hunter-Survival','GarrMission_ClassIcon-Mage-Arcane','GarrMission_ClassIcon-Mage-Fire','GarrMission_ClassIcon-Mage-Frost','GarrMission_ClassIcon-Monk-Brewmaster','GarrMission_ClassIcon-Monk-Mistweaver','GarrMission_ClassIcon-Monk-Windwalker','GarrMission_ClassIcon-Paladin-Holy','GarrMission_ClassIcon-Paladin-Protection','GarrMission_ClassIcon-Paladin-Retribution','GarrMission_ClassIcon-Priest-Discipline','GarrMission_ClassIcon-Priest-Holy','GarrMission_ClassIcon-Priest-Shadow','GarrMission_ClassIcon-Rogue-Assassination','GarrMission_ClassIcon-Rogue-Outlaw','GarrMission_ClassIcon-Rogue-Subtlety','GarrMission_ClassIcon-Shaman-Elemental','GarrMission_ClassIcon-Shaman-Enhancement','GarrMission_ClassIcon-Shaman-Restoration','GarrMission_ClassIcon-Warlock-Affliction','GarrMission_ClassIcon-Warlock-Demonology','GarrMission_ClassIcon-Warlock-Destruction','GarrMission_ClassIcon-Warrior-Arms','GarrMission_ClassIcon-Warrior-Fury','GarrMission_ClassIcon-Warrior-Protection','legionmission-background-combatally','_GarrMissionLocation-Legion-Mid','_GarrMissionLocation-Highmountain-Mid','_GarrMissionLocation-Dalaran-Mid','_GarrMissionLocation-Azsuna-Mid','_GarrMissionLocation-Stormheim-Mid','_GarrMissionLocation-Suramar-Mid','_GarrMissionLocation-Valsharah-Mid','legionmission-hearts-background','GarrMissionLocation-Azsuna-List','GarrMissionLocation-Dalaran-List','GarrMissionLocation-Highmountain-List','GarrMissionLocation-Legion-List','GarrMissionLocation-Stormheim-List','GarrMissionLocation-Suramar-List','GarrMissionLocation-Valsharah-List','poi-workorders','groupfinder-background-raids-legion','groupfinder-button-raids-legion','orderhall-commandbar-iconmask','GarrMission-NeutralChest','worldquest-tracker-lock','ClassTrial-End-Frame','ClassTrial-Hunter-Ring','ClassTrial-Priest-Ring','ClassTrial-DeathKnight-Ring','ClassTrial-Warrior-Ring','ClassTrial-Paladin-Ring','ClassTrial-Warlock-Ring','ClassTrial-Druid-Ring','ClassTrial-Monk-Ring','ClassTrial-Mage-Ring','ClassTrial-Rogue-Ring','Legion-boostpopup-exit-frame','transmog-wardrobe-border-selected-smoke','legionmission-icon-currency','UI-CharacterCreate-MetalFrame-Horizontal','UI-CharacterCreate-MetalFrame-Vertical','ClassTrial-Timer-Mid','ClassTrial-Timer-RightCorner','ClassTrial-Timer','UI-CharacterCreate-LargeButton-Blue-Highlight','UI-CharacterCreate-LargeButton-Yellow-Highlight','UI-CharacterCreate-LargeButton','UI-CharacterCreate-Metal-Finery-Corner','UI-CharacterCreate-Metal-Small-Finery','UI-CharacterCreate-PadLock','UI-Character-Info-Paladin-BG','UI-Character-Info-Priest-BG','UI-Character-Info-Warlock-BG','UI-Character-Info-Line-Bounce','UI-Character-Info-Shaman-BG','UI-Character-Info-ItemLevel-Bounce','UI-Character-Info-Warrior-BG','UI-Character-Info-Title','UI-Character-Info-Mage-BG','UI-Character-Info-Rogue-BG','UI-Character-Info-Monk-BG','UI-Character-Info-DeathKnight-BG','UI-Character-Info-DemonHunter-BG','UI-Character-Info-Druid-BG','UI-Character-Info-Hunter-BG','Relic-SlotBG-Glass','loottab-set-itemborder-artifact','loottab-set-itemborder-white','loottab-set-itemborder-orange','Artifacts-BG-Shadow','worldquest-questmarker-rare-down','worldquest-questmarker-rare','poi-majorcity','poi-town','pvpqueue-bg-alliance','pvpqueue-bg-horde','honorsystem-prestige-smallwreath','orderhall-commandbar-mapbutton-down','orderhall-commandbar-mapbutton-up','worldquest-tracker-bg-noemissary','Quest-Alliance-WaxSeal','Quest-Horde-WaxSeal','QuestBG-Alliance','QuestBG-Horde','insetshadow','ChallengeMode-guild-background','ChallengeMode-RankLineDivider','_Talent-green-glow','legionmission-lock','honorsystem-prestige-rewardline','orderhalltalents-done-checkmark','orderhalltalents-done-glow','map-icon-ignored-blueexclaimation','map-icon-ignored-bluequestion','map-icon-deathknightclasshall','Dungeon','Raid','map-icon-SuramarDoor.tga','ClassTrial-Shaman-Ring','Mobile-BonusIcon','Mobile-CombatBadgeIcon','Mobile-CombatIcon','Mobile-LegendaryQuestIcon','Mobile-QuestIcon','Mobile-TreasureIcon','ClassHall_StoneFrame-BackgroundTile','ClassHall_InfoBoxMission-BackgroundTile','StoneFrameCorner-TopLeft','ClassHall-Circle-Mage','_StoneFrameTile-Bottom','_StoneFrameTile-Top','ClassHall-Circle-DeathKnight','ClassHall-Circle-Hunter','ClassHall-Circle-Warrior','ClassHall-Circle-Druid','ClassHall-Circle-Warlock','ClassHall-Circle-Shaman','ClassHall-Circle-Rogue','ClassHall-Circle-Monk','ClassHall-Circle-DemonHunter','ClassHall-Circle-Priest','ClassHall-Circle-Paladin','!StoneFrameTile-Left','ClassHall_ParchmentHeaderSelect-End','_ClassHall_ParchmentHeaderSelect-Mid','_ClassHall_ParchmentHeader-Mid','ClassHall_ParchmentHeader-End','Mobile-CombatIcon-Desaturated','Mobile-BonusIcon-Desaturated','Mobile-TreasureIcon-Desaturated','Mobile-QuestIcon-Desaturated','Mobile-LegendaryQuestIcon-Desaturated','ClassHall-TreasureIcon-Desaturated','ClassHall-LegendaryIcon-Desaturated','ClassHall-QuestIcon-Desaturated','ClassHall-BonusIcon-Desaturated','ClassHall-CombatIcon-Desaturated','worldquest-icon-dungeon','honorsystem-bar-lock','Mobile-Alchemy','Mobile-Archeology','Mobile-Blacksmithing','Mobile-Cooking','Mobile-Enchanting','Mobile-Enginnering','Mobile-FirstAid','Mobile-Fishing','Mobile-Herbalism','Mobile-Inscription','Mobile-Jewelcrafting','Mobile-Leatherworking','Mobile-MechanicIcon-Curse','Mobile-MechanicIcon-Disorienting','Mobile-MechanicIcon-Lethal','Mobile-MechanicIcon-Slowing','Mobile-Mining','Mobile-Pets','Mobile-Skinning','Mobile-Tailoring','Taxi_Frame_Gray','Taxi_Frame_Green','UI-Taxi-Icon-Nub','!UI-Taxi-Line','_UI-Taxi-Line-horizontal','Mobile-MechanicIcon-Powerful','GarrMission_ClassIcon-DemonHunter-Outcast','splash-703-botleft','splash-703-right','splash-703-topleft','splash-704-botleft','splash-704-right','splash-704-topleft','splash-705-botleft','splash-705-right','splash-705-topleft','inspect-talent-selected','loottab-background','loottab-set-background','AutoQuest-badgeborder','ClassHall_Follower-EquipmentBG','ClassHall_Follower-EquipmentFrame','ClassHall_InfoBoxMission-Corner','_ClassHall_InfoBoxMission-Top','!ClassHall_InfoBoxMission-Left','ClassHall_ParchmentHeader-End-2','ClassHall_ParchmentHeaderSelect-End-2','ClassHall-CombatAlly','nameplates-icon-elite-gold','nameplates-icon-elite-silver','StreamCinematic-Legion-Down','StreamCinematic-Legion-Up','GarrMission_ClassIcon-Karazhan','WhiteCircle-RaidBlips','WhiteDotCircle-RaidBlips','friendslist-categorybutton-arrow-down','friendslist-categorybutton-arrow-right','friendslist-categorybutton','Taxi_Frame_Yellow','pvprated-loottoast-bg-alliance','pvprated-loottoast-bg-horde','128-RedButton-Highlight','128-RedButton-LeftCorner-Disabled','128-RedButton-LeftCorner-Pressed','128-RedButton-LeftCorner','128-RedButton-RightCorner-Disabled','128-RedButton-RightCorner-Pressed','128-RedButton-RightCorner','_128-RedButton-Tile-Disabled','_128-RedButton-Tile-Pressed','_128-RedButton-Tile','bags-greenarrow','socialqueuing-icon-clock','socialqueuing-icon-eye','socialqueuing-icon-group','quickjoin-button-friendslist-down','quickjoin-button-friendslist-up','quickjoin-button-quickjoin-down','quickjoin-button-quickjoin-up','quickjoin-toast-background','quickjoin-toast-lines','macropopup-bottomleft','macropopup-bottomright','macropopup-topleft','macropopup-topright','_macropopup-bottom','_macropopup-top','!macropopup-left','!macropopup-right','macropopup-scrollbar-bottom','macropopup-scrollbar-top','!macropopup-scrollbar-middle','socialqueuing-row-highlight','socialqueuing-row-select','splash-710-botleft','splash-710-right','splash-710-topleft','groupfinder-icon-class-demonhunter','AncientMana','quickjoin-button-group-down','quickjoin-button-group-up','socialqueuing-friendlist-summonbutton-disabled','socialqueuing-friendlist-summonbutton-down','socialqueuing-friendlist-summonbutton-up','worldquest-icon-burninglegion','worldquest-icon-raid','GarrMission-AbilityHighlight-Error','transmog-set-border-collected','transmog-set-border-current-transmogged','transmog-set-border-current','transmog-set-border-highlighted','transmog-set-border-selected','transmog-set-border-unusable','transmog-set-iconrow-background','ParagonReputation_Bag','ParagonReputation_Checkmark','ParagonReputation_Glow','Legionfall_Background','Legionfall_Banner','Legionfall_BarBackground','Legionfall_BarFrame','Legionfall_BarSpark','Legionfall_BuildingInfoBackground','Legionfall_GrayFrame','Legionfall_Padlock','_Legionfall_BarFill_Active','_Legionfall_BarFill_UnderAttack','_Legionfall_BarFill_UnderConstruction','legionmission-portraitring-epicplus','legionmission-portraitring_levelborder_epicplus','Legionfall_CommandCenter_Completed','Legionfall_CommandCenter_Destroyed','Legionfall_CommandCenter_UnderAttack','Legionfall_CommandCenter_UnderConstruction','Legionfall_MageTower_Completed','Legionfall_MageTower_Destroyed','Legionfall_MageTower_UnderAttack','Legionfall_MageTower_UnderConstruction','Legionfall_NetherDisruptor_Completed','Legionfall_NetherDisruptor_Destroyed','Legionfall_NetherDisruptor_UnderAttack','Legionfall_NetherDisruptor_UnderConstruction','Artifacts-DeathKnightFrost-BG-Rune','Artifacts-ItemIconBorder','Artifacts-PerkRing-Final','Artifacts-DeathKnightFrost-FinalIcon','Legionfall_GrayBanner','Legionfall_GreenFrame','Legionfall_RedFrame','Legionfall_YellowFrame','Legionfall_ExitFrame','equipmentmanager-spec-border','Artifacts-DemonHunter-BG-rune','Artifacts-Druid-BG-rune','Artifacts-Hunter-BG-rune','Artifacts-MageArcane-BG-rune','Artifacts-Monk-BG-rune','Artifacts-Paladin-BG-rune','Artifacts-Priest-BG-rune','Artifacts-PriestShadow-BG-rune','Artifacts-Rogue-BG-rune','Artifacts-Shaman-BG-rune','Artifacts-Warlock-BG-rune','Artifacts-Warrior-BG-rune','Artifacts-PerkRing-Final-Shine','Talent-Selection-Legendary','Artifacts-DemonHunter-FinalIcon','Artifacts-Druid-FinalIcon','Artifacts-Hunter-FinalIcon','Artifacts-MageArcane-FinalIcon','Artifacts-Monk-FinalIcon','Artifacts-Paladin-FinalIcon','Artifacts-Priest-FinalIcon','Artifacts-PriestShadow-FinalIcon','Artifacts-Rogue-FinalIcon','Artifacts-Shaman-FinalIcon','Artifacts-Warlock-FinalIcon','Artifacts-Warrior-FinalIcon','Artifacts-CrestRune-Gold','LegionfallMapBanner','QuestBG-Legionfall','Quest-Legionfall-WaxSeal','poi-transmogrifier','Artifacts-Anim-Sparks','worldquest-emissary-ring','worldquest-emissary-tracker-checkmark','splash-720-botleft','splash-720-right','splash-720-topleft','DemonShip','Artifacts-Anim-Orb','Artifacts-Anim-Glowies','Legionfall_BarFrame-Glow','transmog-set-model-cutoff-fade','MountToast-Background','PetToast-background','honorsystem-icon-enlistmentbonus','Artifacts-Anim-CrackedGround','Legionfall_GrayFrame_Buffs','DemonShip_East','DK-Blood-Rune-CDFill','DK-BloodUnholy-Rune-CDSpark','DK-Frost-Rune-CDFill','DK-Frost-Rune-CDSpark','DK-Unholy-Rune-CDFill','Warlock-Bar-EmptyShards','Warlock-EmptyShard','Warlock-FillShard','Warlock-ReadyShard-Glow','Warlock-ReadyShard','Warlock-Shard-Spark','CastBar','CurrentPlayer-Glow','DarkTutorialFrameBackground','DeathIcon','HealerBadge','HealingDampening','InterruptOverlay','RedCCIconGlow','ScoreDivider','ScoreTeam','TankBadge','TargetCrosshairs','tournamentarena-frame-bg-corner-blue','tournamentarena-frame-bg-corner-red','UI-Feedback-Border','UnitFrame-NoMana','UnitFrame-NoTrinket','UnitFrame','UnitFrame_CCOverlay-NoMana','UnitFrame_CCOverlay','UnitFrame_DeathOverlay-NoMana','UnitFrame_DeathOverlay','UnitFrame_FocusFireOverlay-NoMana','UnitFrame_FocusFireOverlay','UnitFrame_CurrentPlayer_CCOverlay','UnitFrame_CurrentPlayer_DeathOverlay','UnitFrame_CurrentPlayer-NoMana','UnitFrame_CurrentPlayer-NoTrinket','UnitFrame_CurrentPlayer','UnitFrame_CurrentPlayerGlow','UnitFrame_CurrentPlayer_FocusFireOverlay-NoMana','UnitFrame_CurrentPlayer_FocusFireOverlay','UnitFrame_CurrentPlayer_CCOverlay-NoMana','UnitFrame_CurrentPlayer_DeathOverlay-NoMana','UnitFrame_CurrentPlayerGlow-NoMana','DK-Blood-Rune-Ready','DK-Rune-CD','DK-Rune-Glow','DK-Unholy-Rune-Ready','DK-Frost-Rune-Ready','raceicon-bloodelf-male','raceicon-draenei-female','raceicon-draenei-male','raceicon-dwarf-female','raceicon-dwarf-male','raceicon-gnome-female','raceicon-gnome-male','raceicon-goblin-male','raceicon-human-female','raceicon-human-male','raceicon-nightelf-female','raceicon-nightelf-male','raceicon-orc-female','raceicon-orc-male','raceicon-pandaren-female','raceicon-pandaren-male','raceicon-tauren-female','raceicon-tauren-male','raceicon-troll-female','raceicon-troll-male','raceicon-undead-female','raceicon-undead-male','raceicon-worgen-female','raceicon-worgen-male','poi-graveyard-neutral','poi-door-arrow-down','poi-door-arrow-up','poi-door','tournamentarena-winnerline','UI-MoneyFrame-Large','talenttree-chromie-background','worldstate-capturebar-blue','worldstate-capturebar-gray','worldstate-capturebar-green','worldstate-capturebar-purple','worldstate-capturebar-red','worldstate-capturebar-yellow','splash-725-botleft','splash-725-right','splash-725-topleft','TaxiNode_Alliance','TaxiNode_Horde','TaxiNode_Neutral','FlightMaster_Argus-Taxi_Frame_Gray','FlightMaster_Argus-Taxi_Frame_Yellow','Darklink-ball','Darklink-glow','Darklink','Darkstone1','Darkstone2','Darkstone3','Darkstone4','Darkstone5','Darkstone6','Darkstone7','Darktrait-border','Lightlink-ball','Lightlink-glow','Lightlink','Lightstone1','Lightstone2','Lightstone3','Lightstone4','Lightstone5','Lightstone6','Lightstone7','Lighttrait-border','simplecheckout-close-hover-1x','simplecheckout-close-hover-2x','simplecheckout-close-normal-1x','simplecheckout-close-normal-2x','simplecheckout-close-pressed-1x','simplecheckout-close-pressed-2x','Darktrait-Glow','Lighttrait-glow','Mixedtrait-border','Relic-Rankframe-glow','Relic-Rankframe','Relic-Rankselected-circle','Relic-Rankselected-UpperGlow','Relicforge-background','Relicforge-Bottomframe','Relicforge-Bottomleft-corner','Relicforge-Bottomright-corner','Relicforge-Leftframe','Relicforge-Relicsbackground','Relicforge-Rightframe','Relicforge-Slot-background','Relicforge-Slot-frame','Relicforge-Topdecoration','Relicforge-Topframe','Relicforge-Topleft-corner','Relicforge-Topright-corner','Darklink-active','Disablelink','Lightlink-active','Darktrait-backglow','Lighttrait-backglow','dressingroom-background-deathknight','dressingroom-background-demonhunter','dressingroom-background-druid','dressingroom-background-hunter','dressingroom-background-mage','dressingroom-background-monk','dressingroom-background-paladin','dressingroom-background-priest','dressingroom-background-rogue','dressingroom-background-shaman','dressingroom-background-warlock','dressingroom-background-warrior','Darklink-blackinside','Lightlink-blackinside','worldstate-capturebar-frame-factions','worldstate-capturebar-frame','worldstate-capturebar-spark-green','worldstate-capturebar-spark-yellow','worldstate-capturebar-glow','worldstate-capturebar-arrow','worldstate-capturebar-frame-separater','poi-rift1','poi-rift2','countdown-swords','countdown-swords-glow','AlliedRace-TraitsBorder','AlliedRace-UnlockingFrame-Background','AlliedRace-UnlockingFrame-BottomButtonsMouseOverGlow','AlliedRace-UnlockingFrame-BottomButtonsSelectionGlow','AlliedRace-UnlockingFrame-Female','AlliedRace-UnlockingFrame-GenderMouseOverGlow','AlliedRace-UnlockingFrame-GenderSelectionGlow','AlliedRace-UnlockingFrame-LeftRotation','AlliedRace-UnlockingFrame-Male','AlliedRace-UnlockingFrame-RightRotation','AlliedRace-UnlockingFrame-ZoomIn','AlliedRace-UnlockingFrame-ZoomOut','AlliedRace-UnlockingFrame-ModelBackground-Highmountain','AlliedRace-UnlockingFrame-ModelBackground-Nightborne','AlliedRace-UnlockingFrame-ModelBackground-Voidelf','AlliedRace-Crest-Highmountain','AlliedRace-Crest-Lightforge','AlliedRace-Crest-Nightborne','AlliedRace-Crest-Voidelf','FlightMaster_VindicaarArgus-Taxi_Frame_Gray','FlightMaster_VindicaarArgus-Taxi_Frame_Green','FlightMaster_VindicaarArgus-Taxi_Frame_Yellow','FlightMaster_VindicaarMacAree-Taxi_Frame_Gray','FlightMaster_VindicaarMacAree-Taxi_Frame_Green','FlightMaster_VindicaarMacAree-Taxi_Frame_Yellow','FlightMaster_VindicaarStygianWake-Taxi_Frame_Gray','FlightMaster_VindicaarStygianWake-Taxi_Frame_Green','FlightMaster_VindicaarStygianWake-Taxi_Frame_Yellow','Relic-Rankdisable-DarkGlow','ArtifactsFX-PointSideBurstLeft-Purple','ArtifactsFX-PointSideBurstRight-Purple','ArtifactsFX-SpinningGlowys-Purple','ArtifactsFX-StarBurst-Purple','ArtifactsFX-Whirls-Purple','ArtifactsFX-YellowRing-Purple','AdventureMap_TileBg_Parchment','_GarrMissionLocation-Argus-Mid','GarrMissionLocation-Argus-List','Darktrait-border-selected','Lighttrait-border-selected','Neutralstone1','Neutralstone2','Neutralstone3','Neutralstone4','Neutralstone5','Neutralstone6','Neutralstone7','Neutraltrait-border-selected','Neutraltrait-border','poi-door-down','poi-door-left','poi-door-right','poi-door-up','QuestBG-TheHandofFate','splash-730-botleft','splash-730-right','splash-730-topleft','Neutraltrait-backglow','Neutraltrait-Glow','AftLevelup-NeutralStarBurst','AftLevelup-PurpleStarBurst','Artifacts-PerkRing-NeutralGlow','Artifacts-PerkRing-PurpleGlow','ArtifactsFX-Whirls-Neutral','ArtifactsFX-YellowRing-Neutral','Rune-01-neutral','Rune-01-purple','Rune-02-neutral','Rune-02-purple','Rune-03-neutral','Rune-03-purple','Rune-04-neutral','Rune-04-purple','Rune-05-neutral','Rune-05-purple','Rune-06-neutral','Rune-06-purple','GarrMission_ClassIcon-Voidscarred','GarrMission_ClassIcon-ArgussianReach','GarrMission_ClassIcon-ArmyoftheLight','AntoranWastes_Highlight','Relicforge-Relicsbackground-Previewtraits','Relicforge-Slot-frame-Active','Krokuun_Highlight','MacAree_Highlight','FlightMaster_Argus-Taxi_Frame_Green','BrokenIslesHightlight','hud-MainMenuBar-arrowdown-disabled','hud-MainMenuBar-arrowdown-down','hud-MainMenuBar-arrowdown-highlight','hud-MainMenuBar-arrowdown-up','hud-MainMenuBar-arrowup-disabled','hud-MainMenuBar-arrowup-down','hud-MainMenuBar-arrowup-highlight','hud-MainMenuBar-arrowup-up','hud-MainMenuBar-gryphon','AlliedRace-UnlockingFrame-ModelFrame','AlliedRace-UnlockingFrame-RaceBanner','AlliedRace-UnlockingFrame-ModelBackground-Lightforge','shop-card-half-brownbox','shop-card-half-brownboxlegionbundle','shop-card-half-legion','shop-card-half-legiondeluxe','shop-card-full-legiondeluxe','hud-MainMenuBar-experiencebar-large-double','hud-MainMenuBar-experiencebar-large-single','hud-MainMenuBar-experiencebar-small-double','hud-MainMenuBar-experiencebar-small-single','hud-MainMenuBar-large','hud-MainMenuBar-small','shop-card-half-hover','hud-microbutton-LFG-Up','hud-microbutton-Achievement-Disabled','hud-microbutton-LFG-Down','hud-microbutton-BStore-Down','hud-microbutton-Socials-Disabled','hud-microbutton-MainMenu-Up','hud-microbutton-Quest-Disabled','hud-microbutton-Achievement-Down','hud-microbutton-BStore-Up','hud-microbutton-Quest-Up','hud-microbutton-Quest-Down','hud-microbutton-Spellbook-Down','hud-microbutton-EJ-Down','hud-microbutton-Socials-Up','hud-microbutton-LFG-Disabled','hud-microbutton-StreamDL-Up','hud-microbutton-Character-Down','hud-microbutton-StreamDL-Down','hud-microbutton-MainMenu-Down','hud-microbutton-MainMenu-Disabled','hud-microbutton-Talents-Disabled','hud-microbutton-BStore-Disabled','hud-microbutton-Mounts-Disabled','hud-microbutton-Mounts-Up','hud-microbutton-Character-Up','hud-microbutton-Socials-Down','hud-microbutton-Spellbook-Up','hud-microbutton-Talents-Down','hud-microbutton-Mounts-Down','hud-microbutton-EJ-Disabled','hud-microbutton-EJ-Up','hud-microbutton-Spellbook-Disabled','hud-microbutton-Talents-Up','hud-MicroBagBar','hud-microbutton-Achievement-Up','AlliedRaces-AllianceHordeBanner','loottoast-itemborder-gold','hud-microbutton-highlight','shop-card-bundle-hover','shop-card-bundle-legion','shop-card-bundle-reaver-argi','shop-card-bundle','shop-card-bundle-selected','raceicon-voidelf-male','raceicon-goblin-female','raceicon-nightborne-male','raceicon-lightforged-male','raceicon-nightborne-female','raceicon-highmountain-female','raceicon-voidelf-female','raceicon-lightforged-female','raceicon-bloodelf-female','raceicon-highmountain-male','bags-icon-addslots','shop-card-bundle-alteracpup-feydragon','shop-card-bundle-starseekers','bags-static','category-icon-ring','vas-receipt-icon-characterborder','warboard-header-alliance','warboard-header-horde','warboard-parchment-answerborder','warboard-parchment','warboard-title-alliance-left','warboard-title-alliance-right','warboard-title-horde-left','warboard-title-horde-right','warboard-title-neutral-left','warboard-title-neutral-right','_warboard-title-alliance-middle','_warboard-title-horde-middle','_warboard-title-neutral-middle','warboard-background','warboard-zone-classic-Ashenvale','warboard-zone-classic-Azshara','warboard-zone-classic-AzuremystIsle','warboard-zone-classic-BloodmystIsle','warboard-zone-classic-Darkshore','warboard-zone-classic-DunMorogh','warboard-zone-classic-Durotar','warboard-zone-classic-ElwynnForest','warboard-zone-classic-EversongWoods','warboard-zone-classic-Ghostlands','warboard-zone-classic-Gilneas','warboard-zone-classic-HillsbradFoothills','warboard-zone-classic-LochModan','warboard-zone-classic-LostIsles','warboard-zone-classic-Mulgore','warboard-zone-classic-NorthernBarrens','warboard-zone-classic-RedridgeMountains','warboard-zone-classic-SilverpineForest','warboard-zone-classic-SouthernBarrens','warboard-zone-classic-Teldrassil','warboard-zone-classic-TirisfalGlades','warboard-zone-classic-WanderingIsle','warboard-zone-classic-Westfall','warboard-zone-classic-ArathiHighlands','warboard-zone-classic-Badlands','warboard-zone-classic-BlastedLands','warboard-zone-classic-BurningSteppes','warboard-zone-classic-CapeofStranglethorn','warboard-zone-classic-Desolace','warboard-zone-classic-Duskwood','warboard-zone-classic-DustwallowMarsh','warboard-zone-classic-EasternPlaguelands','warboard-zone-classic-Felwood','warboard-zone-classic-Feralas','warboard-zone-classic-Hinterlands','warboard-zone-classic-NorthernStranglethorn','warboard-zone-classic-SearingGorge','warboard-zone-classic-Silithus','warboard-zone-classic-StonetalonMountains','warboard-zone-classic-SwampofSorrows','warboard-zone-classic-Tanaris','warboard-zone-classic-ThousandNeedles','warboard-zone-classic-UngoroCrater','warboard-zone-classic-WesternPlaguelands','warboard-zone-classic-Wetlands','warboard-zone-classic-Winterspring','warboard-zone-bc-BladesEdgeMountains','warboard-zone-bc-HellfirePeninsula','warboard-zone-bc-IsleofQuelDanas','warboard-zone-bc-Nagrand','warboard-zone-bc-Netherstorm','warboard-zone-bc-ShadowmoonValley','warboard-zone-bc-TerokkarForest','warboard-zone-bc-Zangarmarsh','warboard-zone-wotlk-BoreanTundra','warboard-zone-wotlk-CrystalsongForest','warboard-zone-wotlk-Dalaran','warboard-zone-wotlk-Dragonblight','warboard-zone-wotlk-GrizzlyHills','warboard-zone-wotlk-HowlingFjord','warboard-zone-wotlk-Icecrown','warboard-zone-wotlk-SholazarBasin','warboard-zone-wotlk-StormPeaks','warboard-zone-wotlk-ZulDrak','warboard-zone-cata-TwilightHighlands','warboard-zone-cata-Deepholm','warboard-zone-cata-MountHyjal','warboard-zone-cata-ElementalBonds','warboard-zone-cata-Vashjir','warboard-zone-cata-MoltenFront','warboard-zone-cata-Uldum','warboard-zone-mop-DreadWastes','warboard-zone-mop-IsleofGiants','warboard-zone-mop-IsleoftheThunderKing','warboard-zone-mop-JadeForest','warboard-zone-mop-KrasarangWilds','warboard-zone-mop-KunLaiSummit','warboard-zone-mop-TimelessIsle','warboard-zone-mop-TownlongSteppes','warboard-zone-mop-ValeofEternalBlossoms','warboard-zone-mop-ValleyoftheFourWinds','warboard-zone-wod-FrostfireRidge','warboard-zone-wod-Gorgrond','warboard-zone-wod-Nagrand','warboard-zone-wod-ShadowmoonValley','warboard-zone-wod-SpiresofArak','warboard-zone-wod-Talador','warboard-zone-wod-TanaanJungle','warboard-zone-wod-TanaanJungleIntro','AzeriteReady','AzeriteSpawning','splash-735-botleft','splash-735-right','splash-735-topleft','shop-card-full-bfadeluxe','accountupgradebanner-bfa','shop-card-half-brownboxbfabundle','shop-card-half-bfadeluxe','shop-card-half-bfa','hud-microbutton-highlightalert','communities-icon-notification','communities-create-button-bnet-down','communities-create-button-bnet-up','communities-create-button-highlight','communities-create-button-wow-down','communities-create-button-wow-up','communities-create-avatar-border-hover','communities-create-avatar-border-selected','communities-ring-blue','communities-ring-gold','alliance_icon_and_flag-dynamicIcon','alliance_icon_and_flag-flash','alliance_icon_and_flag-icon','alliance_icon_horde_flag-dynamicIcon','alliance_icon_horde_flag-flash','alliance_icon_horde_flag-icon','alliance_tower-icon','coin-icon','combat_swords-dynamicIcon','combat_swords-flash','combat_swords-icon','dreadlord-icon','horde_icon_alliance_flag-dynamicIcon','horde_icon_alliance_flag-flash','horde_icon_alliance_flag-icon','horde_icon_and_flag-dynamicIcon','horde_icon_and_flag-flash','horde_icon_and_flag-icon','horde_tower-icon','neutral_tower-icon','placeholder-icon','pvp_ffa-icon','skull_bones-icon','sniper_shot-icon','communities-create-button-wow-alliance','communities-create-button-wow-horde','communities-icon-addgroupplus','communities-icon-lock','communities-icon-invitemail','communities-widebackground','macropopup-bottomright-nobuttons','macropopup-intersect-left','macropopup-intersect-right','macropopup-topleft2','macropopup-topright2','_macropopup-top2','ui-frame-neutral-cardparchment','ui-frame-neutral-cardparchmentwider','ui-frame-neutral-corner','ui-frame-neutral-exitbuttonborder','ui-frame-neutral-portrait','ui-frame-neutral-portraitdisable','ui-frame-neutral-portraitwider','ui-frame-neutral-portraitwiderdisable','ui-frame-neutral-ribbon','ui-frame-neutral-titleleft','ui-frame-neutral-titleright','_ui-frame-neutral-tilebottom','_ui-frame-neutral-tiletop','_ui-frame-neutral-titlemiddle','communities-chat-date-line-orange','communities-chat-date-line','communities-guildbanner-background','communities-guildbanner-border','communities-nav-button-green-normal','communities-nav-button-green-pressed','hud-microbutton-Guild-Banner','communities-icon-chat','communities-icon-addchannelplus','communities-create-button-bnet-highlight','communities-icon-redx','hud-microbutton-communities-icon-notification','ui-frame-diamondmetal-cornerbottomleft','ui-frame-diamondmetal-cornerbottomright','ui-frame-diamondmetal-cornertopleft','ui-frame-diamondmetal-cornertopright','_ui-frame-diamondmetal-edgebottom','_ui-frame-diamondmetal-edgetop','!ui-frame-diamondmetal-edgeleft','!ui-frame-diamondmetal-edgeright','chatframe-button-down','chatframe-button-highlight','chatframe-button-highlightalert','chatframe-button-icon-headset','chatframe-button-icon-mic-off','chatframe-button-icon-mic-on','chatframe-button-icon-mic-silenced-off','chatframe-button-icon-mic-silenced','chatframe-button-icon-speaker-off','chatframe-button-icon-speaker-on','chatframe-button-icon-speaker-silenced','chatframe-button-icon-voicechat','chatframe-button-up','chatframe-scrollbar-knob','voicechat-channellist-category-background','voicechat-channellist-category-highlight','voicechat-channellist-category-minus','voicechat-channellist-category-plus','voicechat-channellist-icon-headphone-off','voicechat-channellist-icon-headphone-on','voicechat-channellist-row-background','voicechat-channellist-row-background2','voicechat-channellist-row-highlight','voicechat-channellist-row-selected','voicechat-icon-headphone-off','voicechat-icon-headphone-on','voicechat-icon-headphone-pending','voicechat-icon-headphone-pendingdot-1','voicechat-icon-headphone-pendingdot-2','voicechat-icon-headphone-pendingdot-3','voicechat-icon-headphone-switch','voicechat-icon-loudnessbar-1','voicechat-icon-loudnessbar-2','voicechat-icon-loudnessbar-3','voicechat-icon-mic-mute','voicechat-icon-mic-mutesilenced','voicechat-icon-mic-silenced','voicechat-icon-mic','voicechat-icon-speaker-mute','voicechat-icon-speaker-mutesilenced','voicechat-icon-speaker-silenced','voicechat-icon-speaker','voicechat-icon-textchat-silenced','voicechat-portrait-drag','voicechat-portrait-ring','battlefieldminimap-border-bottom','battlefieldminimap-border-bottomleft','battlefieldminimap-border-bottomright','battlefieldminimap-border-left','battlefieldminimap-border-right','battlefieldminimap-border-top','battlefieldminimap-border-topleft','battlefieldminimap-border-topright','CGuy_AOI','CGuy_AOIAsset','CGuy_Arrow','CGuy_BottomArrow','CGuy_BottomArrowHighlight','CGuy_ConfigReplace','CGuy_Control','CGuy_ControlDefaults','CGuy_Export','CGuy_GafferPushed','CGuy_GafferUp','CGuy_Import','CGuy_New','CGuy_NewConfig','CGuy_Path','CGuy_Pause','CGuy_Play','CGuy_Point','CGuy_Record','CGuy_Rename','CGuy_Replace','CGuy_Stop','CGuy_TopArrow','CGuy_TopArrowHighlight','CGuy_AOIFollowsCamera','CGuy_FixedTimeStep','CGuy_ReorientToUnit','CGuy_AOIFollowsCameraActive','CGuy_CalcOrientation','CGuy_FixedTimeStepActive','CGuy_PlayActive','CGuy_RecordActive','CGuy_ReorientToUnitActive','CGuy_StopActive','bar-end','cast-bar-end','health-bar-end','health_end','metal-bar','portrait-frame-nameplate','portrait-frame','trinket-frame','_bar-mid','_cast-bar-mid','_health-bar-mid','cast-bar-fill-end','portrait-frame-color','_cast-bar-fill-mid','armor-fill-end','flag-1','flag-2','icon-healer','icon-tank','_armor-fill-mid','_health_mid','commentatorspellborder','frame-timer','healing-bg','score-team','_score-team-mid','portrait-frame-nameplate-scaledup','flag-outline','icon-death','icon-wow','metal-bar-small','portrait-frame-small','chatbubble-nineslice-center','chatbubble-nineslice-cornerbottomleft','chatbubble-nineslice-cornerbottomright','chatbubble-nineslice-cornertopleft','chatbubble-nineslice-cornertopright','_chatbubble-nineslice-edgebottom','_chatbubble-nineslice-edgetop','chatbubble-tail','!chatbubble-nineslice-edgeleft','!chatbubble-nineslice-edgeright','ui_editor_eye_icon','classic-burningcrusadetransition-choice-frame','classic-burningcrusadetransition-choice-line-current','classic-burningcrusadetransition-choice-line-other','classic-burningcrusadetransition-choice-logo-current-zhcn','classic-burningcrusadetransition-choice-logo-current-zhtw','classic-burningcrusadetransition-choice-logo-current','classic-burningcrusadetransition-choice-logo-other-zhcn','classic-burningcrusadetransition-choice-logo-other-zhtw','classic-burningcrusadetransition-choice-logo-other','ui-paidcharactercustomization-button-activatecharacter','cosmic-azeroth-highlight','cosmic-outland-highlight','cosmic-outland-highlight_resize','cosmic-azeroth-highlight_resize','ui-frame-diamondmetal-header-cornerleft-2x','ui-frame-diamondmetal-header-cornerright-2x','_ui-frame-diamondmetal-header-tile-2x','creditsscreen-highlight','creditsscreen-selected','_creditsscreen-gradient-tile','auctionhouse-icon-checkmark','auctionhouse-icon-clock','auctionhouse-icon-coin-copper','auctionhouse-icon-coin-gold','auctionhouse-icon-coin-silver','auctionhouse-icon-favorite-off','auctionhouse-icon-favorite','auctionhouse-icon-socket','auctionhouse-itemheaderframe','auctionhouse-itemicon-border-account','auctionhouse-itemicon-border-artifact','auctionhouse-itemicon-border-blue','auctionhouse-itemicon-border-gray','auctionhouse-itemicon-border-green','auctionhouse-itemicon-border-orange','auctionhouse-itemicon-border-purple','auctionhouse-itemicon-border-white','auctionhouse-itemicon-cover','auctionhouse-itemicon-empty','auctionhouse-itemicon-small-border','auctionhouse-nav-button-highlight','auctionhouse-nav-button-secondary-highlight','auctionhouse-nav-button-secondary-select','auctionhouse-nav-button-secondary','auctionhouse-nav-button-select','auctionhouse-nav-button-tertiary-filterline','auctionhouse-nav-button','auctionhouse-rowstripe-1','auctionhouse-rowstripe-2','auctionhouse-selltab-left','auctionhouse-selltab-middle','auctionhouse-selltab-right','auctionhouse-ui-dropdown-arrow-disabled','auctionhouse-ui-dropdown-arrow-down','auctionhouse-ui-dropdown-arrow-up','auctionhouse-ui-dropdown-left','auctionhouse-ui-dropdown-middle','auctionhouse-ui-dropdown-right','auctionhouse-ui-filter-redx','auctionhouse-ui-inputfield-left','auctionhouse-ui-inputfield-middle','auctionhouse-ui-inputfield-right','auctionhouse-ui-loadingspinner','auctionhouse-ui-row-highlight','auctionhouse-ui-row-select','auctionhouse-ui-sortarrow','shop-card-full-bcc-darkportalpassupgrade','shop-card-half-bcc-darkportalpass','shop-card-half-bcc-darkportalpassdeluxe','classicon-druid','classicon-hunter','classicon-mage','classicon-paladin','classicon-priest','classicon-rogue','classicon-shaman','classicon-warlock','classicon-warrior','ui-scrollbar-button-overlay-horizontal','ui-scrollbar-button-overlay','ui-scrollbar-endcap-bottom','ui-scrollbar-endcap-left','ui-scrollbar-endcap-right','ui-scrollbar-endcap-top','ui-scrollbar-knob-endcap-bottom-disabled','ui-scrollbar-knob-endcap-bottom','ui-scrollbar-knob-endcap-left-disabled','ui-scrollbar-knob-endcap-left','ui-scrollbar-knob-endcap-right-disabled','ui-scrollbar-knob-endcap-right','ui-scrollbar-knob-endcap-top-disabled','ui-scrollbar-knob-endcap-top','ui-scrollbar-knob-mouseover-endcap-bottom','ui-scrollbar-knob-mouseover-endcap-left','ui-scrollbar-knob-mouseover-endcap-right','ui-scrollbar-knob-mouseover-endcap-top','ui-scrollbar-scrolldownbutton-disabled','ui-scrollbar-scrolldownbutton-down','ui-scrollbar-scrolldownbutton-highlight','ui-scrollbar-scrolldownbutton-up','ui-scrollbar-scrollleftbutton-disabled','ui-scrollbar-scrollleftbutton-down','ui-scrollbar-scrollleftbutton-highlight','ui-scrollbar-scrollleftbutton-up','ui-scrollbar-scrollrightbutton-disabled','ui-scrollbar-scrollrightbutton-down','ui-scrollbar-scrollrightbutton-highlight','ui-scrollbar-scrollrightbutton-up','ui-scrollbar-scrollupbutton-disabled','ui-scrollbar-scrollupbutton-down','ui-scrollbar-scrollupbutton-highlight','ui-scrollbar-scrollupbutton-up','ui-scrollbar-center','ui-scrollbar-knob-center-disabled','ui-scrollbar-knob-center','ui-scrollbar-knob-mouseover-center','ui-scrollbar-knob-center-disabled-horizontal','ui-scrollbar-knob-center-horizontal','ui-scrollbar-knob-mouseover-center-horizontal','_ui-scrollbar-center','circlemaskscalable','metal-bar-battlegrounds','tooltip-nineslice-cornerbottomleft','tooltip-nineslice-cornerbottomright','tooltip-nineslice-cornertopleft','tooltip-nineslice-cornertopright','_tooltip-nineslice-edgebottom','_tooltip-nineslice-edgetop','!tooltip-nineslice-edgeleft','!tooltip-nineslice-edgeright','tooltip-glues-nineslice-cornerbottomleft','tooltip-glues-nineslice-cornerbottomright','tooltip-glues-nineslice-cornertopleft','tooltip-glues-nineslice-cornertopright','_tooltip-glues-nineslice-edgebottom','_tooltip-glues-nineslice-edgetop','!tooltip-glues-nineslice-edgeleft','!tooltip-glues-nineslice-edgeright','tooltip-glues-nineslice-center','tooltip-nineslice-center','clickcastlist-buttonbackground','clickcastlist-buttonhighlight','clickcastlist-buttonnew','gmchat-icon-alert','gmchat-icon-blizz','gmchat-icon-wow','gmchat-nineslice-cornerbottomleft','gmchat-nineslice-cornerbottomright','gmchat-nineslice-cornertopleft','gmchat-nineslice-cornertopright','gmchat-watermark-blizzard','gmglow-nineslice-cornerbottomleft','gmglow-nineslice-cornerbottomright','gmglow-nineslice-cornertopleft','gmglow-nineslice-cornertopright','_gmchat-nineslice-edgebottom','_gmchat-nineslice-edgetop','_gmglow-nineslice-edgebottom','_gmglow-nineslice-edgetop','chatframe-button-icon-tts','common-search-border-left','common-search-border-middle','common-search-border-right','common-search-clearbutton','common-search-magnifyingglass','voicechat-channellist-icon-stt-off','voicechat-channellist-icon-stt-on','voicechat-icon-stt','reportlist-buttonselect','ui-scrollbar-classicscrolldownbutton-disabled','ui-scrollbar-classicscrolldownbutton-down','ui-scrollbar-classicscrolldownbutton-highlight','ui-scrollbar-classicscrolldownbutton-up','ui-scrollbar-classicscrollupbutton-disabled','ui-scrollbar-classicscrollupbutton-down','ui-scrollbar-classicscrollupbutton-highlight','ui-scrollbar-classicscrollupbutton-up','ui-classicscrollbar-endcap-bottom-rounded','ui-classicscrollbar-endcap-bottom','ui-classicscrollbar-endcap-top','ui-classicscrollbar-center','groupfinder-background-classic','newplayerchat-chaticon-guide','newplayerchat-chaticon-newcomer','shop-card-full-classicwotlk-goodies','shop-card-half-classicwotlk-goodiesepic','shop-card-half-classicwotlk-goodieshero','shop-card-full-classicwotlk-goodies-heroictoepic','classicon-deathknight'} diff --git a/Interface/AddOns/WeakAuras/WeakAuras.lua b/Interface/AddOns/WeakAuras/WeakAuras.lua index fd2e84dbe..4260d1680 100644 --- a/Interface/AddOns/WeakAuras/WeakAuras.lua +++ b/Interface/AddOns/WeakAuras/WeakAuras.lua @@ -1174,7 +1174,7 @@ function Private.Login(initialTime, takeNewSnapshots) loginFinished = true -- Tell Dynamic Groups that we are done with login for _, region in pairs(Private.regions) do - if (region.region.RunDelayedActions) then + if (region.region and region.region.RunDelayedActions) then region.region:RunDelayedActions(); end end @@ -1365,7 +1365,7 @@ end function Private.PauseAllDynamicGroups() local suspended = {} for id, region in pairs(Private.regions) do - if (region.region.Suspend) then + if (region.region and region.region.Suspend) then region.region:Suspend(); tinsert(suspended, id) end @@ -1846,7 +1846,9 @@ function Private.Resume() local suspended = Private.PauseAllDynamicGroups() for id, region in pairs(Private.regions) do - region.region:Collapse(); + if region.region then + region.region:Collapse(); + end end for id, cloneList in pairs(clones) do @@ -1982,7 +1984,7 @@ function WeakAuras.Delete(data) end end - if Private.regions[id] then + if Private.regions[id] and Private.regions[id].region then Private.regions[id].region:Collapse() Private.CancelAnimation(Private.regions[id].region, true, true, true, true, true, true) @@ -2064,7 +2066,7 @@ function WeakAuras.Rename(data, newid) UIDtoID[data.uid] = newid Private.regions[newid] = Private.regions[oldid]; Private.regions[oldid] = nil; - if Private.regions[newid] then + if Private.regions[newid] and Private.regions[newid].region then Private.regions[newid].region.id = newid end @@ -2504,7 +2506,7 @@ function Private.AddMany(tbl, takeSnapshots) for data in pairs(groups) do if data.type == "dynamicgroup" then - if Private.regions[data.id] then + if Private.regions[data.id] and Private.regions[data.id].region then Private.regions[data.id].region:ReloadControlledChildren() end else @@ -3482,7 +3484,7 @@ function Private.HandleGlowAction(actions, region) if WeakAuras.GetData(frame_name) then Private.EnsureRegion(frame_name) end - if Private.regions[frame_name] then + if Private.regions[frame_name] and Private.regions[frame_name].region then glow_frame = Private.regions[frame_name].region should_glow_frame = true end @@ -3885,12 +3887,14 @@ local DisplayTimes = {}; function WeakAuras.ProfileDisplays(all) UpdateAddOnCPUUsage(); for id, regionData in pairs(Private.regions) do - local DisplayTime = GetFrameCPUUsage(regionData.region, true); - DisplayTimes[id] = DisplayTimes[id] or 0; - if(all or DisplayTime > DisplayTimes[id]) then - print("|cFFFF0000"..id.."|r -", DisplayTime, "-", DisplayTime - DisplayTimes[id]); + if regionData.region then + local DisplayTime = GetFrameCPUUsage(regionData.region, true); + DisplayTimes[id] = DisplayTimes[id] or 0; + if(all or DisplayTime > DisplayTimes[id]) then + print("|cFFFF0000"..id.."|r -", DisplayTime, "-", DisplayTime - DisplayTimes[id]); + end + DisplayTimes[id] = DisplayTime; end - DisplayTimes[id] = DisplayTime; end end @@ -4448,7 +4452,7 @@ function Private.UpdatedTriggerState(id) for _, clone in pairs(clones[id]) do clone:Collapse() end - if Private.regions[id] then + if Private.regions[id] and Private.regions[id].region then Private.regions[id].region:Collapse() end elseif (show and oldShow) then -- Already shown, update regions @@ -4459,7 +4463,7 @@ function Private.UpdatedTriggerState(id) end end if (not activeTriggerState[""] or not activeTriggerState[""].show) then - if Private.regions[id] then + if Private.regions[id] and Private.regions[id].region then Private.regions[id].region:Collapse() end end @@ -5383,7 +5387,7 @@ local function GetAnchorFrame(data, region, parent) end end - if(Private.regions[frame_name]) then + if Private.regions[frame_name] and Private.regions[frame_name].region then return Private.regions[frame_name].region; end postponeAnchor(id); diff --git a/Interface/AddOns/WeakAuras/WeakAuras.toc b/Interface/AddOns/WeakAuras/WeakAuras.toc index 839000cc2..8f59bcb46 100644 --- a/Interface/AddOns/WeakAuras/WeakAuras.toc +++ b/Interface/AddOns/WeakAuras/WeakAuras.toc @@ -1,7 +1,7 @@ -## Interface: 100000 +## Interface: 100002 ## Title: WeakAuras ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## X-Flavor: Mainline ## Notes: A powerful, comprehensive utility for displaying graphics and information based on buffs, debuffs, and other triggers. ## Notes-esES: Potente y completa aplicación que te permitirá mostrar por pantalla múltiples diseños, basados en beneficios, perjuicios y otros activadores. diff --git a/Interface/AddOns/WeakAuras/WeakAuras_TBC.toc b/Interface/AddOns/WeakAuras/WeakAuras_TBC.toc index 91f9f6e6a..3b84dd7fd 100644 --- a/Interface/AddOns/WeakAuras/WeakAuras_TBC.toc +++ b/Interface/AddOns/WeakAuras/WeakAuras_TBC.toc @@ -1,7 +1,7 @@ ## Interface: 20504 ## Title: WeakAuras ## Author: The WeakAuras Team -## Version: 5.1.1 tbc +## Version: 5.2.0 tbc ## X-Flavor: TBC ## Notes: A powerful, comprehensive utility for displaying graphics and information based on buffs, debuffs, and other triggers. ## Notes-esES: Potente y completa aplicación que te permitirá mostrar por pantalla múltiples diseños, basados en beneficios, perjuicios y otros activadores. diff --git a/Interface/AddOns/WeakAuras/WeakAuras_Vanilla.toc b/Interface/AddOns/WeakAuras/WeakAuras_Vanilla.toc index feda1d33f..29f4456a4 100644 --- a/Interface/AddOns/WeakAuras/WeakAuras_Vanilla.toc +++ b/Interface/AddOns/WeakAuras/WeakAuras_Vanilla.toc @@ -1,7 +1,7 @@ ## Interface: 11403 ## Title: WeakAuras ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## X-Flavor: Vanilla ## Notes: A powerful, comprehensive utility for displaying graphics and information based on buffs, debuffs, and other triggers. ## Notes-esES: Potente y completa aplicación que te permitirá mostrar por pantalla múltiples diseños, basados en beneficios, perjuicios y otros activadores. diff --git a/Interface/AddOns/WeakAuras/WeakAuras_Wrath.toc b/Interface/AddOns/WeakAuras/WeakAuras_Wrath.toc index 5f4403fa7..ebef26615 100644 --- a/Interface/AddOns/WeakAuras/WeakAuras_Wrath.toc +++ b/Interface/AddOns/WeakAuras/WeakAuras_Wrath.toc @@ -1,7 +1,7 @@ ## Interface: 30400 ## Title: WeakAuras ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## X-Flavor: Wrath ## Notes: A powerful, comprehensive utility for displaying graphics and information based on buffs, debuffs, and other triggers. ## Notes-esES: Potente y completa aplicación que te permitirá mostrar por pantalla múltiples diseños, basados en beneficios, perjuicios y otros activadores. diff --git a/Interface/AddOns/WeakAurasArchive/WeakAurasArchive.toc b/Interface/AddOns/WeakAurasArchive/WeakAurasArchive.toc index 8e132b6e0..7265430f7 100644 --- a/Interface/AddOns/WeakAurasArchive/WeakAurasArchive.toc +++ b/Interface/AddOns/WeakAurasArchive/WeakAurasArchive.toc @@ -1,7 +1,7 @@ -## Interface: 100000 +## Interface: 100002 ## Title: WeakAuras Archive ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## LoadOnDemand: 1 ## SavedVariables: WeakAurasArchive ## Dependencies: WeakAuras diff --git a/Interface/AddOns/WeakAurasArchive/WeakAurasArchive_TBC.toc b/Interface/AddOns/WeakAurasArchive/WeakAurasArchive_TBC.toc index 3d57da83b..1db4df9d3 100644 --- a/Interface/AddOns/WeakAurasArchive/WeakAurasArchive_TBC.toc +++ b/Interface/AddOns/WeakAurasArchive/WeakAurasArchive_TBC.toc @@ -1,7 +1,7 @@ ## Interface: 20504 ## Title: WeakAuras Archive ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## LoadOnDemand: 1 ## SavedVariables: WeakAurasArchive ## Dependencies: WeakAuras diff --git a/Interface/AddOns/WeakAurasArchive/WeakAurasArchive_Vanilla.toc b/Interface/AddOns/WeakAurasArchive/WeakAurasArchive_Vanilla.toc index 80961a294..1644d9187 100644 --- a/Interface/AddOns/WeakAurasArchive/WeakAurasArchive_Vanilla.toc +++ b/Interface/AddOns/WeakAurasArchive/WeakAurasArchive_Vanilla.toc @@ -1,7 +1,7 @@ ## Interface: 11403 ## Title: WeakAuras Archive ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## LoadOnDemand: 1 ## SavedVariables: WeakAurasArchive ## Dependencies: WeakAuras diff --git a/Interface/AddOns/WeakAurasArchive/WeakAurasArchive_Wrath.toc b/Interface/AddOns/WeakAurasArchive/WeakAurasArchive_Wrath.toc index 6cac2c1f6..fbe807966 100644 --- a/Interface/AddOns/WeakAurasArchive/WeakAurasArchive_Wrath.toc +++ b/Interface/AddOns/WeakAurasArchive/WeakAurasArchive_Wrath.toc @@ -1,7 +1,7 @@ ## Interface: 30400 ## Title: WeakAuras Archive ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## LoadOnDemand: 1 ## SavedVariables: WeakAurasArchive ## Dependencies: WeakAuras diff --git a/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths.toc b/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths.toc index db21a9639..b643a4179 100644 --- a/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths.toc +++ b/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths.toc @@ -1,7 +1,7 @@ -## Interface: 100000 +## Interface: 100002 ## Title: WeakAuras Model Paths ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## Notes: Model paths for WeakAuras ## Notes-esES: Las rutas de archivos de modelos en 3D para WeakAuras ## Notes-deDE: 3D-Model Pfade für WeakAuras diff --git a/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths_TBC.toc b/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths_TBC.toc index b0c5f0bb3..06cea6cce 100644 --- a/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths_TBC.toc +++ b/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths_TBC.toc @@ -1,7 +1,7 @@ ## Interface: 20504 ## Title: WeakAuras Model Paths ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## Notes: Model paths for WeakAuras ## Notes-esES: Las rutas de archivos de modelos en 3D para WeakAuras ## Notes-deDE: 3D-Model Pfade für WeakAuras diff --git a/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths_Vanilla.toc b/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths_Vanilla.toc index f550a83f3..1e6158a05 100644 --- a/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths_Vanilla.toc +++ b/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths_Vanilla.toc @@ -1,7 +1,7 @@ ## Interface: 11403 ## Title: WeakAuras Model Paths ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## Notes: Model paths for WeakAuras ## Notes-esES: Las rutas de archivos de modelos en 3D para WeakAuras ## Notes-deDE: 3D-Model Pfade für WeakAuras diff --git a/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths_Wrath.toc b/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths_Wrath.toc index b4928e591..e376f2207 100644 --- a/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths_Wrath.toc +++ b/Interface/AddOns/WeakAurasModelPaths/WeakAurasModelPaths_Wrath.toc @@ -1,7 +1,7 @@ ## Interface: 30400 ## Title: WeakAuras Model Paths ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## Notes: Model paths for WeakAuras ## Notes-esES: Las rutas de archivos de modelos en 3D para WeakAuras ## Notes-deDE: 3D-Model Pfade für WeakAuras diff --git a/Interface/AddOns/WeakAurasOptions/AceGUI-Widgets/AceGUIWidget-WeakAurasScrollArea.lua b/Interface/AddOns/WeakAurasOptions/AceGUI-Widgets/AceGUIWidget-WeakAurasScrollArea.lua new file mode 100644 index 000000000..0727b7e1c --- /dev/null +++ b/Interface/AddOns/WeakAurasOptions/AceGUI-Widgets/AceGUIWidget-WeakAurasScrollArea.lua @@ -0,0 +1,210 @@ +--[[----------------------------------------------------------------------------- +ScrollArea Widget +Plain widget that scrolls a content widget and doesn't grow in height. +Heavly based on AceGUIContainer-ScrollFrame +-------------------------------------------------------------------------------]] +local Type, Version = "WeakAurasScrollArea", 1 +local AceGUI = LibStub and LibStub("AceGUI-3.0", true) +if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end + +-- Lua APIs +local pairs, assert, type = pairs, assert, type +local min, max, floor = math.min, math.max, math.floor + +-- WoW APIs +local CreateFrame, UIParent = CreateFrame, UIParent + +--[[----------------------------------------------------------------------------- +Support functions +-------------------------------------------------------------------------------]] +local function FixScrollOnUpdate(frame) + frame:SetScript("OnUpdate", nil) + frame.obj:FixScroll() +end + +--[[----------------------------------------------------------------------------- +Scripts +-------------------------------------------------------------------------------]] +local function ScrollFrame_OnMouseWheel(frame, value) + frame.obj:MoveScroll(value) +end + +local function ScrollFrame_OnSizeChanged(frame) + frame:SetScript("OnUpdate", FixScrollOnUpdate) +end + +local function ScrollBar_OnScrollValueChanged(frame, value) + frame.obj:SetScroll(value) +end + +--[[----------------------------------------------------------------------------- +Methods +-------------------------------------------------------------------------------]] +local methods = { + ["OnAcquire"] = function(self) + self:SetScroll(0) + self.scrollframe:SetScript("OnUpdate", FixScrollOnUpdate) + end, + + ["OnRelease"] = function(self) + for k in pairs(self.localstatus) do + self.localstatus[k] = nil + end + self.scrollframe:SetPoint("BOTTOMRIGHT") + self.scrollbar:Hide() + self.scrollBarShown = nil + end, + + ["SetScroll"] = function(self, value) + local status = self.localstatus + local viewheight = self.scrollframe:GetHeight() + local height = self.content:GetHeight() + local offset + + if viewheight > height then + offset = 0 + else + offset = floor((height - viewheight) / 10000.0 * value) + end + self.content:ClearAllPoints() + self.content:SetPoint("TOPLEFT", 0, offset) + self.content:SetPoint("TOPRIGHT", 0, offset) + status.offset = offset + status.scrollvalue = value + self:Fire("ContentScrolled") + end, + + ["GetContentOffset"] = function(self) + local status = self.localstatus + return status.offset or 0 + end, + + ["GetViewportSize"] = function(self) + return self.scrollframe:GetSize() + end, + + ["MoveScroll"] = function(self, value) + local status = self.localstatus + local height, viewheight = self.scrollframe:GetHeight(), self.content:GetHeight() + + if self.scrollBarShown then + local diff = height - viewheight + local delta = 1 + if value < 0 then + delta = -1 + end + self.scrollbar:SetValue(min(max(status.scrollvalue + delta*(10000/(diff/45)),0), 10000)) + end + end, + + ["FixScroll"] = function(self) + if self.updateLock then return end + self.updateLock = true + local status = self.localstatus + local height, viewheight = self.scrollframe:GetHeight(), self.content:GetHeight() + local offset = status.offset or 0 + -- Give us a margin of error of 2 pixels to stop some conditions that i would blame on floating point inaccuracys + -- No-one is going to miss 2 pixels at the bottom of the frame, anyhow! + if viewheight < height + 2 then + if self.scrollBarShown then + self.scrollBarShown = nil + self.scrollbar:Hide() + self.scrollbar:SetValue(0) + self.scrollframe:SetPoint("BOTTOMRIGHT") + if self.content.original_width then + self.content.width = self.content.original_width + end + end + else + if not self.scrollBarShown then + self.scrollBarShown = true + self.scrollbar:Show() + self.scrollframe:SetPoint("BOTTOMRIGHT", -20, 0) + if self.content.original_width then + self.content.width = self.content.original_width - 20 + end + end + local value = (offset / (viewheight - height) * 10000) + if value > 10000 then value = 10000 end + self.scrollbar:SetValue(value) + self:SetScroll(value) + if value < 10000 then + self.content:ClearAllPoints() + self.content:SetPoint("TOPLEFT", 0, offset) + self.content:SetPoint("TOPRIGHT", 0, offset) + status.offset = offset + end + end + self.updateLock = nil + end, + + ["SetContentHeight"] = function(self, height) + self.content:SetHeight(height) + -- update the scrollframe + self:FixScroll() + + -- schedule another update when everything has "settled" + self.scrollframe:SetScript("OnUpdate", FixScrollOnUpdate) + end, + + ["OnWidthSet"] = function(self, width) + self:Fire("ContentScrolled") + end, + + ["OnHeightSet"] = function(self, height) + self:Fire("ContentScrolled") + end +} +--[[----------------------------------------------------------------------------- +Constructor +-------------------------------------------------------------------------------]] +local function Constructor() + local frame = CreateFrame("Frame", nil, UIParent) + local num = AceGUI:GetNextWidgetNum(Type) + + local scrollframe = CreateFrame("ScrollFrame", nil, frame) + scrollframe:SetPoint("TOPLEFT") + scrollframe:SetPoint("BOTTOMRIGHT") + scrollframe:EnableMouseWheel(true) + scrollframe:SetScript("OnMouseWheel", ScrollFrame_OnMouseWheel) + scrollframe:SetScript("OnSizeChanged", ScrollFrame_OnSizeChanged) + + local scrollbar = CreateFrame("Slider", ("AceConfigDialogScrollFrame%dScrollBar"):format(num), scrollframe, "UIPanelScrollBarTemplate") + scrollbar:SetPoint("TOPLEFT", scrollframe, "TOPRIGHT", 4, -16) + scrollbar:SetPoint("BOTTOMLEFT", scrollframe, "BOTTOMRIGHT", 4, 16) + scrollbar:SetMinMaxValues(0, 10000) + scrollbar:SetValueStep(1) + scrollbar:SetValue(0) + scrollbar:SetWidth(16) + scrollbar:Hide() + -- set the script as the last step, so it doesn't fire yet + scrollbar:SetScript("OnValueChanged", ScrollBar_OnScrollValueChanged) + + local scrollbg = scrollbar:CreateTexture(nil, "BACKGROUND") + scrollbg:SetAllPoints(scrollbar) + scrollbg:SetColorTexture(0, 0, 0, 0.4) + + --Container Support + local content = CreateFrame("Frame", nil, scrollframe) + content:SetPoint("TOPLEFT") + content:SetPoint("TOPRIGHT") + content:SetHeight(400) + scrollframe:SetScrollChild(content) + + local widget = { + localstatus = { scrollvalue = 0 }, + scrollframe = scrollframe, + scrollbar = scrollbar, + content = content, + frame = frame, + type = Type + } + for method, func in pairs(methods) do + widget[method] = func + end + scrollframe.obj, scrollbar.obj = widget, widget + + return AceGUI:RegisterAsWidget(widget) +end + +AceGUI:RegisterWidgetType(Type, Constructor, Version) diff --git a/Interface/AddOns/WeakAurasOptions/AceGUI-Widgets/AceGUIWidget-WeakAurasSpinBox.lua b/Interface/AddOns/WeakAurasOptions/AceGUI-Widgets/AceGUIWidget-WeakAurasSpinBox.lua new file mode 100644 index 000000000..8243ab062 --- /dev/null +++ b/Interface/AddOns/WeakAurasOptions/AceGUI-Widgets/AceGUIWidget-WeakAurasSpinBox.lua @@ -0,0 +1,359 @@ +--[[----------------------------------------------------------------------------- +Spin Box Widget +-------------------------------------------------------------------------------]] +local Type, Version = "WeakAurasSpinBox", 1 +local AceGUI = LibStub and LibStub("AceGUI-3.0", true) +if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then + return +end + +-- Lua APIs +local math_min, math_max, floor = math.min, math.max, math.floor +local tonumber, pairs = tonumber, pairs + +-- WoW APIs +local PlaySound = PlaySound +local CreateFrame, UIParent = CreateFrame, UIParent + +local progressLeftOffset = WeakAuras.IsClassicOrBCCOrWrath() and -2 or -3 +local progressExtraWidth = WeakAuras.IsClassicOrBCCOrWrath() and -2 or 0 +local progressTopOffset = WeakAuras.IsClassicOrBCCOrWrath() and -3 or -2 +local progressBottomOffset = WeakAuras.IsClassicOrBCCOrWrath() and 3 or 2 + +--[[----------------------------------------------------------------------------- +Support functions +-------------------------------------------------------------------------------]] +local function UpdateText(self) + local value = self:GetValue() or 0 + if self.ispercent then + self.editbox:SetText(("%s%%"):format(floor(value * 1000 + 0.5) / 10)) + else + self.editbox:SetText(floor(value * 100 + 0.5) / 100) + end +end + +local function UpdateButtons(self) + local value = self:GetValue() or 0 + self.leftbutton:SetEnabled(value > self.min) + self.rightbutton:SetEnabled(value < self.max) +end + +local function UpdateProgressBar(self) + local value = self:GetValue() or 0 + local p = 0 + if self.min and self.max then + if self.min < self.max then + p = (value - self.min) / (self.max - self.min) + end + end + p = Clamp(p, 0, 1) + local w = p * (self.frame:GetWidth() - 45 + progressExtraWidth) + self.progressBar:SetWidth(max(w, 1)) + self.progressBar:SetTexCoord(0, p , 0, 1) +end + +local function UpdateHandleColor(self) + if self.progressBarHandle.mouseDown then + self.progressBarHandleTexture:SetColorTexture(0.6, 0.6, 0, 1) + elseif MouseIsOver(self.progressBarHandle) then + self.progressBarHandleTexture:SetColorTexture(0.8, 0.8, 0, 1) + else + self.progressBarHandleTexture:SetColorTexture(0.4, 0.4, 0, 1) + end +end + +local function UpdateHandleVisibility(self) + if MouseIsOver(self.frame) then + self.progressBarHandle:Show() + UpdateHandleColor(self) + else + self.progressBarHandle:Hide() + end +end + +--[[----------------------------------------------------------------------------- +Scripts +-------------------------------------------------------------------------------]] +local function SpinBox_OnValueDown(frame) + local self = frame.obj + --self.editbox:SetFocus() + local value = self.value or 0 + local step = self.step or 1 + value = math_max(self.min, value - step) + PlaySound(856) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON + self:SetValue(value) +end + +local function SpinBox_OnValueUp(frame) + local self = frame.obj + --self.editbox:SetFocus() + local value = self.value or 0 + local step = self.step or 1 + value = math_min(self.max, value + step) + PlaySound(856) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON + self:SetValue(value) +end + +local function EditBox_OnEscapePressed(frame) + frame:ClearFocus() +end + +local function EditBox_OnEnterPressed(frame) + local self = frame.obj + local value = frame:GetText() + if self.ispercent then + value = value:gsub("%%", "") + value = tonumber(value) / 100 + else + value = tonumber(value) + end + + if value then + PlaySound(856) -- SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON + self:SetValue(value) + end +end + +local function EditBox_OnEnter(frame) + frame.onEntered = true + if not frame.obj.progressBarHandle.mouseDown then + frame.obj:Fire("OnEnter") + end +end + +local function EditBox_OnLeave(frame) + if frame.onEntered then + frame.obj:Fire("OnLeave") + end + frame.onEntered = false +end + +local function Frame_OnEnter(frame) + UpdateHandleVisibility(frame.obj) +end + +local function ProgressBarHandle_OnUpdate(frame, elapsed) + UpdateHandleColor(frame.obj) + if not IsMouseButtonDown("LeftButton") then + frame.mouseDown = false + end + if frame.mouseDown then + frame.timeElapsed = frame.timeElapsed + elapsed + if frame.timeElapsed > 0.1 then + local currentX = GetCursorPosition() + local deltaX = currentX - frame.startX + deltaX = deltaX / frame.obj.editbox:GetEffectiveScale() + + local p = deltaX / (frame.obj.frame:GetWidth() - 45 + progressExtraWidth) + local delta = p * (frame.obj.max - frame.obj.min) + local step = frame.obj.step + local v = frame.originalValue + delta + v = v - v % step + v = Clamp(v, frame.obj.min, frame.obj.max) + frame.obj:SetValue(v) + frame.timeElapsed = 0 + end + else + UpdateHandleVisibility(frame.obj) + end +end + +local function ProgressBarHandle_OnMouseDown(frame, button) + if button ~= "LeftButton" then + return + end + frame.startX = GetCursorPosition() + frame.originalValue = frame.obj:GetValue() + frame.timeElapsed = 0 + frame.mouseDown = true +end + +--[[----------------------------------------------------------------------------- +Methods +-------------------------------------------------------------------------------]] +local methods = { + ["OnAcquire"] = function(self) + self:SetWidth(200) + self:SetHeight(44) + self:SetDisabled(false) + self:SetIsPercent(nil) + self:SetSpinBoxValues(0, 100, 1) + self:SetValue(0) + self.progressOpacity = 0 + end, + + ["OnRelease"] = function(self) + self:ClearFocus() + end, + + ["OnWidthSet"] = function(self, width) + UpdateProgressBar(self) + end, + + ["SetDisabled"] = function(self, disabled) + self.disabled = disabled + if disabled then + self.label:SetTextColor(0.5, 0.5, 0.5) + self.editbox:SetTextColor(0.5, 0.5, 0.5) + self.editbox:EnableMouse(false) + self.editbox:ClearFocus() + self.leftbutton:SetEnabled(false) + self.rightbutton:SetEnabled(false) + else + self.label:SetTextColor(1, 0.82, 0) + self.editbox:SetTextColor(1, 1, 1) + self.editbox:EnableMouse(true) + end + end, + + ["SetValue"] = function(self, value) + local changed = value ~= self.value + self.value = value + UpdateText(self) + UpdateButtons(self) + UpdateProgressBar(self) + if changed then + self:Fire("OnValueChanged", value) + end + end, + + ["GetValue"] = function(self) + return self.value + end, + + ["SetLabel"] = function(self, text) + self.label:SetText(text) + end, + + ["SetSliderValues"] = function(self, ...) + self:SetSpinBoxValues(...) + end, + + ["SetSpinBoxValues"] = function(self, min, max, step) + self.min = min or 0 + self.max = max or 100 + self.step = step or 1 + UpdateButtons(self) + UpdateProgressBar(self) + end, + + ["SetIsPercent"] = function(self, value) + self.ispercent = value + UpdateText(self) + end, + + ["ClearFocus"] = function(self) + self.editbox:ClearFocus() + end, + + ["SetFocus"] = function(self) + self.editbox:SetFocus() + self.progressBarHandle:Hide() + end, +} + +--[[----------------------------------------------------------------------------- +Constructor +-------------------------------------------------------------------------------]] +local function Constructor() + local frame = CreateFrame("Frame", nil, UIParent) + frame:SetScript("OnEnter", Frame_OnEnter) + + local label = frame:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall") + label:SetPoint("TOPLEFT") + label:SetPoint("TOPRIGHT") + label:SetJustifyH("LEFT") + label:SetHeight(18) + + local leftbutton = CreateFrame("Button", nil, frame) + leftbutton:SetSize(16, 16) + leftbutton:SetNormalTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\spinboxleft") + leftbutton:SetHighlightTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\spinboxlefth") + leftbutton:SetPushedTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\spinboxleftp") + leftbutton:SetDisabledTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\spinboxleftp") + leftbutton:SetScript("OnClick", SpinBox_OnValueDown) + + local rightbutton = CreateFrame("Button", nil, frame) + rightbutton:SetSize(16, 16) + rightbutton:SetNormalTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\spinboxright") + rightbutton:SetHighlightTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\spinboxrighth") + rightbutton:SetPushedTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\spinboxrightp") + rightbutton:SetDisabledTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\spinboxrightp") + rightbutton:SetScript("OnClick", SpinBox_OnValueUp) + + local editbox = CreateFrame("EditBox", nil, frame, "InputBoxTemplate") + editbox:SetAutoFocus(false) + editbox:SetFontObject(ChatFontNormal) + editbox:SetHeight(19) + editbox:SetJustifyH("CENTER") + editbox:EnableMouse(true) + editbox:SetTextInsets(0, 0, 3, 3) + editbox:SetScript("OnEnter", EditBox_OnEnter) + editbox:SetScript("OnLeave", EditBox_OnLeave) + editbox:SetScript("OnEnterPressed", EditBox_OnEnterPressed) + editbox:SetScript("OnEscapePressed", EditBox_OnEscapePressed) + editbox:SetScript("OnEditFocusGained", function(frame) + AceGUI:SetFocus(frame.obj) + UpdateHandleVisibility(frame.obj) + end) + editbox:SetScript("OnEditFocusLost", function(frame) + UpdateHandleVisibility(frame.obj) + end) + editbox:SetScript("OnMouseWheel", function(self, delta) + if self:HasFocus() then + if delta == 1 then + SpinBox_OnValueUp(self) + else + SpinBox_OnValueDown(self) + end + end + end) + + leftbutton:SetPoint("TOPLEFT", 2, -18) + rightbutton:SetPoint("TOPRIGHT", -2, -18) + editbox:SetPoint("LEFT", leftbutton, "RIGHT", 8, 0) + editbox:SetPoint("RIGHT", rightbutton, "LEFT", -2, 0) + + local progressBar = editbox:CreateTexture(nil, "ARTWORK", nil) + progressBar:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\spinboxoverlay") + progressBar:SetVertexColor(0.50, 0.50, 0.50, 1) + progressBar:SetPoint("TOPLEFT", editbox, "TOPLEFT", progressLeftOffset, progressTopOffset) + progressBar:SetPoint("BOTTOMLEFT", editbox, "BOTTOMLEFT", progressLeftOffset, progressBottomOffset) + progressBar:SetWidth(0) + + local progressBarHandle = CreateFrame("Frame", nil, editbox) + progressBarHandle:SetPoint("TOP", progressBar, "TOP", 0, 2) + progressBarHandle:SetPoint("BOTTOM", progressBar, "BOTTOM", 0, -2) + progressBarHandle:SetPoint("LEFT", progressBar, "RIGHT", -4, 0) + progressBarHandle:SetPoint("RIGHT", progressBar, "RIGHT", 4, 0) + progressBarHandle:EnableMouse(true) + progressBarHandle:Hide() + progressBarHandle:SetScript("OnMouseDown", ProgressBarHandle_OnMouseDown) + progressBarHandle:SetScript("OnUpdate", ProgressBarHandle_OnUpdate) + + local progressBarHandleTexture = progressBarHandle:CreateTexture(nil, "ARTWORK") + progressBarHandleTexture:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\Square_White") + progressBarHandleTexture:SetColorTexture(0.8, 0.8, 0, 0.8) + progressBarHandleTexture:SetPoint("TOPLEFT", progressBarHandle, "TOPLEFT", 2, -2) + progressBarHandleTexture:SetPoint("BOTTOMRIGHT", progressBarHandle, "BOTTOMRIGHT", -2, 2) + + local widget = { + label = label, + editbox = editbox, + leftbutton = leftbutton, + rightbutton = rightbutton, + progressBar = progressBar, + progressBarHandle = progressBarHandle, + progressBarHandleTexture = progressBarHandleTexture, + frame = frame, + type = Type, + } + for method, func in pairs(methods) do + widget[method] = func + end + editbox.obj, leftbutton.obj, rightbutton.obj, frame.obj, progressBarHandle.obj = widget, widget, widget, widget, widget + + return AceGUI:RegisterAsWidget(widget) +end + +AceGUI:RegisterWidgetType(Type, Constructor, Version) diff --git a/Interface/AddOns/WeakAurasOptions/AceGUI-Widgets/AceGUIWidget-WeakAurasTextureButton.lua b/Interface/AddOns/WeakAurasOptions/AceGUI-Widgets/AceGUIWidget-WeakAurasTextureButton.lua index 1eba20cab..16ee522cf 100644 --- a/Interface/AddOns/WeakAurasOptions/AceGUI-Widgets/AceGUIWidget-WeakAurasTextureButton.lua +++ b/Interface/AddOns/WeakAurasOptions/AceGUI-Widgets/AceGUIWidget-WeakAurasTextureButton.lua @@ -3,7 +3,7 @@ if not WeakAuras.IsLibsOK() then return end local Type, Version = "WeakAurasTextureButton", 24 local AceGUI = LibStub and LibStub("AceGUI-3.0", true) if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then return end -local GetAtlasInfo = WeakAuras.IsClassic() and GetAtlasInfo or C_Texture.GetAtlasInfo +local GetAtlasInfo = C_Texture and C_Texture.GetAtlasInfo or GetAtlasInfo local function Hide_Tooltip() GameTooltip:Hide(); @@ -28,46 +28,67 @@ local methods = { end, ["OnRelease"] = function(self) self:ClearPick(); + self:SetOnUpdate(nil) self.texture:SetTexture(); end, - ["SetTexture"] = function(self, texturePath, name) - if (GetAtlasInfo(texturePath)) then - self.texture:SetAtlas(texturePath); + ["SetTexture"] = function(self, texturePath, name, IsStopMotion) + self.texture:SetTexCoord(0, 1, 0, 1) + local atlasInfo = GetAtlasInfo(texturePath) + if atlasInfo then + self.texture:SetAtlas(texturePath, false); + self.texture.IsAtlas = true + if atlasInfo.width > atlasInfo.height then + self.texture:SetSize(120, 120 * (atlasInfo.height / atlasInfo.width)) + elseif atlasInfo.height > atlasInfo.width then + self.texture:SetSize(120 * (atlasInfo.width / atlasInfo.height), 120) + else + self.texture:SetSize(120, 120) + end else + self.texture:SetSize(120, 120) self.texture:SetTexture(texturePath, "CLAMPTOBLACKADDITIVE", "CLAMPTOBLACKADDITIVE"); + self.texture.IsAtlas = nil end self.texture.path = texturePath; self.texture.name = name; + self.texture.IsStopMotion = IsStopMotion end, ["ChangeTexture"] = function(self, r, g, b, a, rotate, discrete_rotation, rotation, mirror, blendMode) - local ulx,uly , llx,lly , urx,ury , lrx,lry; - if(rotate) then - local angle = rad(135 - rotation); - local vx = math.cos(angle); - local vy = math.sin(angle); - - ulx,uly , llx,lly , urx,ury , lrx,lry = 0.5+vx,0.5-vy , 0.5-vy,0.5-vx , 0.5+vy,0.5+vx , 0.5-vx,0.5+vy; - else - if(discrete_rotation == 0 or discrete_rotation == 360) then - ulx,uly , llx,lly , urx,ury , lrx,lry = 0,0 , 0,1 , 1,0 , 1,1; - elseif(discrete_rotation == 90) then - ulx,uly , llx,lly , urx,ury , lrx,lry = 1,0 , 0,0 , 1,1 , 0,1; - elseif(discrete_rotation == 180) then - ulx,uly , llx,lly , urx,ury , lrx,lry = 1,1 , 1,0 , 0,1 , 0,0; - elseif(discrete_rotation == 270) then - ulx,uly , llx,lly , urx,ury , lrx,lry = 0,1 , 1,1 , 0,0 , 1,0; + if not self.texture.IsAtlas then + local ulx,uly , llx,lly , urx,ury , lrx,lry; + if(rotate) then + local angle = rad(135 - rotation); + local vx = math.cos(angle); + local vy = math.sin(angle); + ulx,uly , llx,lly , urx,ury , lrx,lry = 0.5+vx,0.5-vy , 0.5-vy,0.5-vx , 0.5+vy,0.5+vx , 0.5-vx,0.5+vy; + else + if(discrete_rotation == 0 or discrete_rotation == 360) then + ulx,uly , llx,lly , urx,ury , lrx,lry = 0,0 , 0,1 , 1,0 , 1,1; + elseif(discrete_rotation == 90) then + ulx,uly , llx,lly , urx,ury , lrx,lry = 1,0 , 0,0 , 1,1 , 0,1; + elseif(discrete_rotation == 180) then + ulx,uly , llx,lly , urx,ury , lrx,lry = 1,1 , 1,0 , 0,1 , 0,0; + elseif(discrete_rotation == 270) then + ulx,uly , llx,lly , urx,ury , lrx,lry = 0,1 , 1,1 , 0,0 , 1,0; + end + end + if(mirror) then + self.texture:SetTexCoord(urx,ury , lrx,lry , ulx,uly , llx,lly); + else + self.texture:SetTexCoord(ulx,uly , llx,lly , urx,ury , lrx,lry); end - end - if(mirror) then - self.texture:SetTexCoord(urx,ury , lrx,lry , ulx,uly , llx,lly); else - self.texture:SetTexCoord(ulx,uly , llx,lly , urx,ury , lrx,lry); + self.texture:SetAtlas(self.texture.path) end self.texture:SetVertexColor(r, g, b, a); self.texture:SetBlendMode(blendMode); end, ["SetTexCoord"] = function(self, left, right, top, bottom) - self.texture:SetTexCoord(left, right, top, bottom); + if self.texture.IsAtlas and not self.texture.IsStopMotion then + self.texture:SetAtlas(self.texture.path) + else + self.texture:SetTexCoord(left, right, top, bottom); + end end, ["SetOnUpdate"] = function(self, func) self.frame:SetScript("OnUpdate", func); @@ -115,8 +136,8 @@ local function Constructor() button:SetHighlightTexture(highlighttexture); local texture = button:CreateTexture(nil, "OVERLAY"); - texture:SetPoint("BOTTOMLEFT", button, 4, 4); - texture:SetPoint("TOPRIGHT", button, -4, -4); + texture:SetPoint("CENTER") + texture:SetSize(120, 120) button:SetScript("OnEnter", function() Show_Tooltip(button, texture.name, texture.path:gsub("\\", "\n")) end); button:SetScript("OnLeave", Hide_Tooltip); diff --git a/Interface/AddOns/WeakAurasOptions/ActionOptions.lua b/Interface/AddOns/WeakAurasOptions/ActionOptions.lua index ad1e5f928..8d4e88c3e 100644 --- a/Interface/AddOns/WeakAurasOptions/ActionOptions.lua +++ b/Interface/AddOns/WeakAurasOptions/ActionOptions.lua @@ -198,6 +198,7 @@ function OptionsPrivate.GetActionOptions(data) }, start_sound_repeat = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Repeat After"], order = 8.2, @@ -358,6 +359,7 @@ function OptionsPrivate.GetActionOptions(data) }, start_glow_lines = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Lines & Particles"], order = 10.81, @@ -377,6 +379,7 @@ function OptionsPrivate.GetActionOptions(data) }, start_glow_frequency = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Frequency"], order = 10.82, @@ -396,6 +399,7 @@ function OptionsPrivate.GetActionOptions(data) }, start_glow_length = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Length"], order = 10.83, @@ -414,6 +418,7 @@ function OptionsPrivate.GetActionOptions(data) }, start_glow_thickness = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Thickness"], order = 10.84, @@ -432,6 +437,7 @@ function OptionsPrivate.GetActionOptions(data) }, start_glow_XOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["X-Offset"], order = 10.85, @@ -448,6 +454,7 @@ function OptionsPrivate.GetActionOptions(data) }, start_glow_YOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y-Offset"], order = 10.86, @@ -464,6 +471,7 @@ function OptionsPrivate.GetActionOptions(data) }, start_glow_scale = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Scale"], order = 10.87, @@ -752,6 +760,7 @@ function OptionsPrivate.GetActionOptions(data) }, finish_glow_lines = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Lines & Particles"], order = 30.81, @@ -771,6 +780,7 @@ function OptionsPrivate.GetActionOptions(data) }, finish_glow_frequency = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Frequency"], order = 30.82, @@ -790,6 +800,7 @@ function OptionsPrivate.GetActionOptions(data) }, finish_glow_length = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Length"], order = 30.83, @@ -808,6 +819,7 @@ function OptionsPrivate.GetActionOptions(data) }, finish_glow_thickness = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Thickness"], order = 30.84, @@ -826,6 +838,7 @@ function OptionsPrivate.GetActionOptions(data) }, finish_glow_XOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["X-Offset"], order = 30.85, @@ -842,6 +855,7 @@ function OptionsPrivate.GetActionOptions(data) }, finish_glow_YOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y-Offset"], order = 30.86, @@ -858,6 +872,7 @@ function OptionsPrivate.GetActionOptions(data) }, finish_glow_scale = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Scale"], order = 30.87, diff --git a/Interface/AddOns/WeakAurasOptions/AnimationOptions.lua b/Interface/AddOns/WeakAurasOptions/AnimationOptions.lua index 32fae5b6e..1807f88b5 100644 --- a/Interface/AddOns/WeakAurasOptions/AnimationOptions.lua +++ b/Interface/AddOns/WeakAurasOptions/AnimationOptions.lua @@ -196,6 +196,7 @@ function OptionsPrivate.GetAnimationOptions(data) }, start_easeStrength = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Ease Strength"], order = 33.8, @@ -223,6 +224,7 @@ function OptionsPrivate.GetAnimationOptions(data) -- text editor added below start_alpha = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.doubleWidth, name = L["Alpha"], order = 36, @@ -250,6 +252,7 @@ function OptionsPrivate.GetAnimationOptions(data) -- texteditor added below start_x = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["X Offset"], order = 40, @@ -261,6 +264,7 @@ function OptionsPrivate.GetAnimationOptions(data) }, start_y = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y Offset"], order = 41, @@ -294,6 +298,7 @@ function OptionsPrivate.GetAnimationOptions(data) -- texteditor added below start_scalex = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["X Scale"], order = 44, @@ -307,6 +312,7 @@ function OptionsPrivate.GetAnimationOptions(data) }, start_scaley = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y Scale"], order = 45, @@ -340,6 +346,7 @@ function OptionsPrivate.GetAnimationOptions(data) -- texteditor added below start_rotate = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.doubleWidth, name = L["Angle"], order = 48, @@ -467,6 +474,7 @@ function OptionsPrivate.GetAnimationOptions(data) }, main_easeStrength = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Ease Strength"], order = 53.8, @@ -494,6 +502,7 @@ function OptionsPrivate.GetAnimationOptions(data) -- texteditor added below main_alpha = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.doubleWidth, name = L["Alpha"], order = 56, @@ -521,6 +530,7 @@ function OptionsPrivate.GetAnimationOptions(data) -- texteditor added below main_x = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["X Offset"], order = 60, @@ -532,6 +542,7 @@ function OptionsPrivate.GetAnimationOptions(data) }, main_y = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y Offset"], order = 61, @@ -563,6 +574,7 @@ function OptionsPrivate.GetAnimationOptions(data) -- texteditor added below main_scalex = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["X Scale"], order = 64, @@ -576,6 +588,7 @@ function OptionsPrivate.GetAnimationOptions(data) }, main_scaley = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y Scale"], order = 65, @@ -609,6 +622,7 @@ function OptionsPrivate.GetAnimationOptions(data) -- text editor added below main_rotate = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.doubleWidth, name = L["Angle"], order = 68, @@ -709,6 +723,7 @@ function OptionsPrivate.GetAnimationOptions(data) }, finish_easeStrength = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Ease Strength"], order = 73.8, @@ -736,6 +751,7 @@ function OptionsPrivate.GetAnimationOptions(data) -- texteditor added below finish_alpha = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.doubleWidth, name = L["Alpha"], order = 76, @@ -763,6 +779,7 @@ function OptionsPrivate.GetAnimationOptions(data) -- texteditor added below finish_x = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["X Offset"], order = 80, @@ -774,6 +791,7 @@ function OptionsPrivate.GetAnimationOptions(data) }, finish_y = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y Offset"], order = 81, @@ -805,6 +823,7 @@ function OptionsPrivate.GetAnimationOptions(data) -- texteditor added below finish_scalex = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["X Scale"], order = 84, @@ -818,6 +837,7 @@ function OptionsPrivate.GetAnimationOptions(data) }, finish_scaley = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y Scale"], order = 85, @@ -851,6 +871,7 @@ function OptionsPrivate.GetAnimationOptions(data) -- texteditor added below finish_rotate = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.doubleWidth, name = L["Angle"], order = 88, diff --git a/Interface/AddOns/WeakAurasOptions/AuthorOptions.lua b/Interface/AddOns/WeakAurasOptions/AuthorOptions.lua index 1848e3e4d..f10746766 100644 --- a/Interface/AddOns/WeakAurasOptions/AuthorOptions.lua +++ b/Interface/AddOns/WeakAurasOptions/AuthorOptions.lua @@ -606,6 +606,7 @@ typeControlAdders = { } args[prefix .. "length"] = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = name(option, "length", L["Length"]), desc = desc(option, "length"), @@ -692,6 +693,7 @@ typeControlAdders = { step = option.step args[prefix .. "default"] = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = name(option, "default", L["Default"]), desc = desc(option, "default"), @@ -958,6 +960,7 @@ typeControlAdders = { args[prefix .. "height"] = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, order = order(), name = name(option, "height", L["Height"]), @@ -1220,6 +1223,7 @@ typeControlAdders = { } args[prefix .. "size"] = { type = "range", + control = "WeakAurasSpinBox", name = name(option, "limitType", option.limitType == "max" and L["Entry limit"] or L["Number of Entries"]), desc = desc(option, "limitType"), order = order(), @@ -1864,6 +1868,7 @@ function addAuthorModeOption(options, args, data, order, prefix, i) args[prefix .. "width"] = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = name(option, "width", L["Width"]), desc = desc(option, "width"), diff --git a/Interface/AddOns/WeakAurasOptions/CommonOptions.lua b/Interface/AddOns/WeakAurasOptions/CommonOptions.lua index 0a4e165b8..d97f0a6e1 100644 --- a/Interface/AddOns/WeakAurasOptions/CommonOptions.lua +++ b/Interface/AddOns/WeakAurasOptions/CommonOptions.lua @@ -1038,6 +1038,7 @@ local function PositionOptions(id, data, _, hideWidthHeight, disableSelfPoint, g __order = metaOrder, width = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Width"], order = 60, @@ -1049,6 +1050,7 @@ local function PositionOptions(id, data, _, hideWidthHeight, disableSelfPoint, g }, height = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Height"], order = 61, @@ -1193,6 +1195,7 @@ local function PositionOptions(id, data, _, hideWidthHeight, disableSelfPoint, g }, xOffset = { type = "range", + control = "WeakAurasSpinBox", name = L["X Offset"], order = 79, width = WeakAuras.normalWidth, @@ -1212,6 +1215,7 @@ local function PositionOptions(id, data, _, hideWidthHeight, disableSelfPoint, g }, yOffset = { type = "range", + control = "WeakAurasSpinBox", name = L["Y Offset"], order = 80, width = WeakAuras.normalWidth, @@ -1288,6 +1292,7 @@ local function BorderOptions(id, data, showBackDropOptions, hiddenFunc, order) }, borderOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Border Offset"], order = order + 0.3, @@ -1298,6 +1303,7 @@ local function BorderOptions(id, data, showBackDropOptions, hiddenFunc, order) }, borderSize = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Border Size"], order = order + 0.4, @@ -1308,6 +1314,7 @@ local function BorderOptions(id, data, showBackDropOptions, hiddenFunc, order) }, borderInset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Border Inset"], order = order + 0.5, diff --git a/Interface/AddOns/WeakAurasOptions/ConditionOptions.lua b/Interface/AddOns/WeakAurasOptions/ConditionOptions.lua index 03fbba3e7..d9572eb04 100644 --- a/Interface/AddOns/WeakAurasOptions/ConditionOptions.lua +++ b/Interface/AddOns/WeakAurasOptions/ConditionOptions.lua @@ -444,6 +444,7 @@ local function addControlsForChange(args, order, data, conditionVariable, totalA local properties = allProperties.propertyMap[property]; if (properties.min or properties.softMin) and (properties.max or properties.softMax) then args["condition" .. i .. "value" .. j].type = "range"; + args["condition" .. i .. "value" .. j].control = "WeakAurasSpinBox" args["condition" .. i .. "value" .. j].min = properties.min; args["condition" .. i .. "value" .. j].softMin = properties.softMin; args["condition" .. i .. "value" .. j].max = properties.max; @@ -586,6 +587,7 @@ local function addControlsForChange(args, order, data, conditionVariable, totalA args["condition" .. i .. "value" .. j .. "sound_repeat"] = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, min = 0, softMax = 60, @@ -1157,6 +1159,7 @@ local function addControlsForChange(args, order, data, conditionVariable, totalA order = order + 1 args["condition" .. i .. "value" .. j .. "glow_lines"] = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = blueIfNoValue2(data, conditions[i].changes[j], "value", "glow_lines", L["Lines & Particles"], L["Lines & Particles"]), desc = descIfNoValue2(data, conditions[i].changes[j], "value", "glow_lines", propertyType), @@ -1175,6 +1178,7 @@ local function addControlsForChange(args, order, data, conditionVariable, totalA order = order + 1 args["condition" .. i .. "value" .. j .. "glow_frequency"] = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = blueIfNoValue2(data, conditions[i].changes[j], "value", "glow_frequency", L["Frequency"], L["Frequency"]), desc = descIfNoValue2(data, conditions[i].changes[j], "value", "glow_frequency", propertyType), @@ -1193,6 +1197,7 @@ local function addControlsForChange(args, order, data, conditionVariable, totalA order = order + 1 args["condition" .. i .. "value" .. j .. "glow_length"] = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = blueIfNoValue2(data, conditions[i].changes[j], "value", "glow_length", L["Length"], L["Length"]), desc = descIfNoValue2(data, conditions[i].changes[j], "value", "glow_length", propertyType), @@ -1211,6 +1216,7 @@ local function addControlsForChange(args, order, data, conditionVariable, totalA order = order + 1 args["condition" .. i .. "value" .. j .. "glow_thickness"] = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = blueIfNoValue2(data, conditions[i].changes[j], "value", "glow_thickness", L["Thickness"], L["Thickness"]), desc = descIfNoValue2(data, conditions[i].changes[j], "value", "glow_thickness", propertyType), @@ -1229,6 +1235,7 @@ local function addControlsForChange(args, order, data, conditionVariable, totalA order = order + 1 args["condition" .. i .. "value" .. j .. "glow_XOffset"] = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = blueIfNoValue2(data, conditions[i].changes[j], "value", "glow_XOffset", L["X-Offset"], L["X-Offset"]), desc = descIfNoValue2(data, conditions[i].changes[j], "value", "glow_XOffset", propertyType), @@ -1247,6 +1254,7 @@ local function addControlsForChange(args, order, data, conditionVariable, totalA order = order + 1 args["condition" .. i .. "value" .. j .. "glow_YOffset"] = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = blueIfNoValue2(data, conditions[i].changes[j], "value", "glow_YOffset", L["Y-Offset"], L["Y-Offset"]), desc = descIfNoValue2(data, conditions[i].changes[j], "value", "glow_YOffset", propertyType), @@ -1265,6 +1273,7 @@ local function addControlsForChange(args, order, data, conditionVariable, totalA order = order + 1 args["condition" .. i .. "value" .. j .. "glow_scale"] = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = blueIfNoValue2(data, conditions[i].changes[j], "value", "glow_scale", L["Scale"], L["Scale"]), desc = descIfNoValue2(data, conditions[i].changes[j], "value", "glow_scale", propertyType), diff --git a/Interface/AddOns/WeakAurasOptions/DisplayOptions.lua b/Interface/AddOns/WeakAurasOptions/DisplayOptions.lua index 6a2640ec3..67d270b70 100644 --- a/Interface/AddOns/WeakAurasOptions/DisplayOptions.lua +++ b/Interface/AddOns/WeakAurasOptions/DisplayOptions.lua @@ -149,6 +149,12 @@ function OptionsPrivate.GetDisplayOptions(data) local options = flattenRegionOptions(regionOption, true) + for _, option in pairs(options) do + if option.type == "range" then + option.control = "WeakAurasSpinBox" + end + end + local region = { type = "group", name = L["Display"], diff --git a/Interface/AddOns/WeakAurasOptions/Locales/koKR.lua b/Interface/AddOns/WeakAurasOptions/Locales/koKR.lua index e2ec66a27..bd16a9ad7 100644 --- a/Interface/AddOns/WeakAurasOptions/Locales/koKR.lua +++ b/Interface/AddOns/WeakAurasOptions/Locales/koKR.lua @@ -489,8 +489,7 @@ UNIT_POWER_UPDATE, UNIT_AURA PLAYER_TARGET_CHANGED]=] Supports multiple entries, separated by commas Can use \ to escape -.]=] ] = "필터 형식: '이름', '이름-서버', '-서버'. 쉼표로 구분된 여러 항목을 지원합니다. \\를 사용하여 - 이스케이프 가능." - --[[Translation missing --]] - L["Filter to only dispellable de/buffs of the given type(s)"] = "Filter to only dispellable de/buffs of the given type(s)" + L["Filter to only dispellable de/buffs of the given type(s)"] = "주어진 유형의 해제 가능한 약화 효과만 필터링" L["Find Auras"] = "Aura 찾기" L["Finish"] = "종료" L["Fire Orb"] = "화염 구슬" @@ -510,7 +509,7 @@ Can use \ to escape -.]=] ] = "필터 형식: '이름', '이름-서버', '-서 L["Frame Rate"] = "프레임률" --[[Translation missing --]] L["Frame Selector"] = "Frame Selector" - L["Frame Strata"] = "프레임 우선순위" + L["Frame Strata"] = "프레임 계층" --[[Translation missing --]] L["Frame Width"] = "Frame Width" L["Frequency"] = "빈도" @@ -815,8 +814,7 @@ Can use \ to escape -.]=] ] = "필터 형식: '이름', '이름-서버', '-서 L["Report bugs on our issue tracker."] = "이슈 트래커에 버그를 알립니다." L["Require unit from trigger"] = "활성 조건에서 유닛 필요" L["Required for Activation"] = "활성화에 필요" - --[[Translation missing --]] - L["Requires LibSpecialization, that is e.g. a up-to date WeakAuras version"] = "Requires LibSpecialization, that is e.g. a up-to date WeakAuras version" + L["Requires LibSpecialization, that is e.g. a up-to date WeakAuras version"] = "LibSpecialization (예를 들어 최신 WeakAuras 버전)이 필요" L["Requires syncing the specialization via LibSpecialization."] = "LibSpecialization을 통해 전문화를 동기화해야 합니다." L["Reset all options to their default values."] = "모든 옵션을 기본값으로 재설정하십시오." --[[Translation missing --]] diff --git a/Interface/AddOns/WeakAurasOptions/OptionsFrames/FrameChooser.lua b/Interface/AddOns/WeakAurasOptions/OptionsFrames/FrameChooser.lua index a21704465..0ca10224e 100644 --- a/Interface/AddOns/WeakAurasOptions/OptionsFrames/FrameChooser.lua +++ b/Interface/AddOns/WeakAurasOptions/OptionsFrames/FrameChooser.lua @@ -51,7 +51,7 @@ function OptionsPrivate.StartFrameChooser(data, path) focusName = nil; local focusIsGroup = false; for id, regionData in pairs(OptionsPrivate.Private.regions) do - if(regionData.region:IsVisible() and MouseIsOver(regionData.region)) then + if(regionData.region and regionData.region:IsVisible() and MouseIsOver(regionData.region)) then local isGroup = regionData.regionType == "group" or regionData.regionType == "dynamicgroup"; if (not focusName or (not isGroup and focusIsGroup)) then focus = regionData.region; diff --git a/Interface/AddOns/WeakAurasOptions/OptionsFrames/MoverSizer.lua b/Interface/AddOns/WeakAurasOptions/OptionsFrames/MoverSizer.lua index 1a7bdd534..805aac170 100644 --- a/Interface/AddOns/WeakAurasOptions/OptionsFrames/MoverSizer.lua +++ b/Interface/AddOns/WeakAurasOptions/OptionsFrames/MoverSizer.lua @@ -637,7 +637,7 @@ local function ConstructMoverSizer(parent) data.yOffset = dY / scale end region:ResetPosition() - WeakAuras.Add(data, nil, true) + WeakAuras.Add(data) WeakAuras.UpdateThumbnail(data) local xOff, yOff mover.selfPoint, mover.anchor, mover.anchorPoint, xOff, yOff = region:GetPoint(1) diff --git a/Interface/AddOns/WeakAurasOptions/OptionsFrames/OptionsFrame.lua b/Interface/AddOns/WeakAurasOptions/OptionsFrames/OptionsFrame.lua index d91de3119..82987cd20 100644 --- a/Interface/AddOns/WeakAurasOptions/OptionsFrames/OptionsFrame.lua +++ b/Interface/AddOns/WeakAurasOptions/OptionsFrames/OptionsFrame.lua @@ -161,16 +161,27 @@ function OptionsPrivate.CreateFrame() frame.window = "default" local xOffset, yOffset + if db.frame then - xOffset, yOffset = db.frame.xOffset, db.frame.yOffset + -- Convert from old settings to new + odb.frame = db.frame + if odb.frame.xOffset and odb.frame.yOffset then + odb.frame.xOffset = odb.frame.xOffset + GetScreenWidth() - (odb.frame.width or defaultWidth) / 2 + odb.frame.yOffset = odb.frame.yOffset + GetScreenHeight() + end + db.frame = nil + end + + if odb.frame then + xOffset, yOffset = odb.frame.xOffset, odb.frame.yOffset end if not (xOffset and yOffset) then - xOffset = (defaultWidth - GetScreenWidth()) / 2 - yOffset = (defaultHeight - GetScreenHeight()) / 2 + xOffset = GetScreenWidth() / 2 + yOffset = GetScreenHeight() - defaultHeight / 2 end - frame:SetPoint("TOPRIGHT", UIParent, "TOPRIGHT", xOffset, yOffset) + frame:SetPoint("TOP", UIParent, "BOTTOMLEFT", xOffset, yOffset) frame:Hide() frame:SetScript("OnHide", function() @@ -180,12 +191,14 @@ function OptionsPrivate.CreateFrame() for id, data in pairs(OptionsPrivate.Private.regions) do - data.region:Collapse() - data.region:OptionsClosed() - if OptionsPrivate.Private.clones[id] then - for _, cloneRegion in pairs(OptionsPrivate.Private.clones[id]) do - cloneRegion:Collapse() - cloneRegion:OptionsClosed() + if data.region then + data.region:Collapse() + data.region:OptionsClosed() + if OptionsPrivate.Private.clones[id] then + for _, cloneRegion in pairs(OptionsPrivate.Private.clones[id]) do + cloneRegion:Collapse() + cloneRegion:OptionsClosed() + end end end end @@ -204,8 +217,8 @@ function OptionsPrivate.CreateFrame() local width, height - if db.frame then - width, height = db.frame.width, db.frame.height + if odb.frame then + width, height = odb.frame.width, odb.frame.height end if not (width and height) then @@ -225,7 +238,7 @@ function OptionsPrivate.CreateFrame() closebutton:SetScript("OnClick", WeakAuras.HideOptions) local title = CreateFrame("Frame", nil, frame) - + title:SetClampedToScreen(true) local titleText = title:CreateFontString(nil, "OVERLAY", "GameFontNormal") titleText:SetText("WeakAuras " .. WeakAuras.versionString) @@ -236,27 +249,15 @@ function OptionsPrivate.CreateFrame() local function commitWindowChanges() - local xOffset = frame:GetRight() - GetScreenWidth() - local yOffset = frame:GetTop() - GetScreenHeight() - if title:GetRight() > GetScreenWidth() then - xOffset = xOffset + (GetScreenWidth() - title:GetRight()) - elseif title:GetLeft() < 0 then - xOffset = xOffset + (0 - title:GetLeft()) - end - if title:GetTop() > GetScreenHeight() then - yOffset = yOffset + (GetScreenHeight() - title:GetTop()) - elseif title:GetBottom() < 0 then - yOffset = yOffset + (0 - title:GetBottom()) - end - db.frame = db.frame or {} - db.frame.xOffset = xOffset - db.frame.yOffset = yOffset + local xOffset = frame:GetRight()-(frame:GetWidth()/2) + local yOffset = frame:GetTop() + odb.frame = odb.frame or {} + odb.frame.xOffset = xOffset + odb.frame.yOffset = yOffset if not frame.minimized then - db.frame.width = frame:GetWidth() - db.frame.height = frame:GetHeight() + odb.frame.width = frame:GetWidth() + odb.frame.height = frame:GetHeight() end - frame:ClearAllPoints() - frame:SetPoint("TOPRIGHT", UIParent, "TOPRIGHT", xOffset, yOffset) end title:EnableMouse(true) @@ -394,12 +395,12 @@ function OptionsPrivate.CreateFrame() minimizebutton:SetScript("OnClick", function() if frame.minimized then frame.minimized = nil - if db.frame then - if not db.frame.height or db.frame.height < 240 then - db.frame.height = 500 + if odb.frame then + if not odb.frame.height or odb.frame.height < 240 then + odb.frame.height = 500 end end - frame:SetHeight(db.frame and db.frame.height or 500) + frame:SetHeight(odb.frame and odb.frame.height or 500) minimizebutton:SetNormalTexture("Interface\\BUTTONS\\UI-Panel-CollapseButton-Up.blp") minimizebutton:SetPushedTexture("Interface\\BUTTONS\\UI-Panel-CollapseButton-Down.blp") diff --git a/Interface/AddOns/WeakAurasOptions/OptionsFrames/TexturePicker.lua b/Interface/AddOns/WeakAurasOptions/OptionsFrames/TexturePicker.lua index d6a10aab3..0d953f385 100644 --- a/Interface/AddOns/WeakAurasOptions/OptionsFrames/TexturePicker.lua +++ b/Interface/AddOns/WeakAurasOptions/OptionsFrames/TexturePicker.lua @@ -1,5 +1,6 @@ if not WeakAuras.IsLibsOK() then return end local AddonName, OptionsPrivate = ... +local GetAtlasInfo = C_Texture and C_Texture.GetAtlasInfo or GetAtlasInfo -- Lua APIs local wipe = wipe @@ -60,13 +61,18 @@ local function GetAll(baseObject, path, property, default) return result end -local function SetAll(baseObject, path, property, value) +local function SetAll(baseObject, path, property, value, width, height) local valueFromPath = OptionsPrivate.Private.ValueFromPath for child in OptionsPrivate.Private.TraverseLeafsOrAura(baseObject) do local object = valueFromPath(child, path) if object then object[property] = value + if width and height then + child.width = width + child.height = height + end WeakAuras.Add(child) + WeakAuras.ClearAndUpdateOptions(child.id) WeakAuras.UpdateThumbnail(child) end end @@ -82,6 +88,7 @@ local function ConstructTexturePicker(frame) group.frame:Hide(); group.children = {}; group.categories = {}; + group.textureWidgets = {} local dropdown = AceGUI:Create("DropdownGroup"); dropdown:SetLayout("fill"); @@ -92,46 +99,120 @@ local function ConstructTexturePicker(frame) dropdown.list = {}; dropdown:SetGroupList(dropdown.list); - local scroll = AceGUI:Create("ScrollFrame"); + local scroll = AceGUI:Create("WeakAurasScrollArea"); scroll:SetWidth(540); - scroll:SetLayout("flow"); - scroll.frame:SetClipsChildren(true); dropdown:AddChild(scroll); - local function texturePickerGroupSelected(widget, event, uniquevalue) - scroll:ReleaseChildren(); - for texturePath, textureName in pairs(group.textures[uniquevalue]) do - local textureWidget = AceGUI:Create("WeakAurasTextureButton"); - if (group.SetTextureFunc) then - group.SetTextureFunc(textureWidget, texturePath, textureName); - else - textureWidget:SetTexture(texturePath, textureName); - local d = group.textureData; - textureWidget:ChangeTexture(d.r, d.g, d.b, d.a, d.rotate, d.discrete_rotation, d.rotation, d.mirror, d.blendMode); + local function UpdateShownWidgets() + -- Acquires/Releases widgets based on the scroll position + for _, widget in ipairs(group.textureWidgets) do + widget.frame:Hide() + widget:Release() + end + wipe(group.textureWidgets) + local viewportWidth, viewportHeight = scroll:GetViewportSize() + + local texturesPerRow = floor(viewportWidth / 128) + local topRow = floor(scroll:GetContentOffset() / 128) + local bottomRow = topRow + ceil(viewportHeight / 128) + + local first = topRow * texturesPerRow + 1 + local last = first + (bottomRow - topRow + 1) * texturesPerRow - 1 + + for i = first, last do + local data = group.selectedGroupSorted[i] + if data then + local texturePath, textureName = data[1], data[2] + local textureWidget = AceGUI:Create("WeakAurasTextureButton"); + tinsert(group.textureWidgets, textureWidget) + if (group.SetTextureFunc) then + group.SetTextureFunc(textureWidget, texturePath, textureName); + else + textureWidget:SetTexture(texturePath, textureName); + local d = group.textureData; + textureWidget:ChangeTexture(d.r, d.g, d.b, d.a, d.rotate, d.discrete_rotation, d.rotation, d.mirror, d.blendMode); + end + if group.selectedTextures[texturePath] then + textureWidget:Pick() + end + textureWidget:SetClick(function() + group:Pick(texturePath); + end); + + local index = i - 1 -- Math is easier if we start counting at 0 + local textureY = floor(index / texturesPerRow) * -128 + local textureX = (index % texturesPerRow) * 128 + + textureWidget.frame:Show() + textureWidget.frame:SetParent(scroll.content) + textureWidget.frame:SetPoint("TOPLEFT", textureX, textureY) end + end + end + + scroll:SetCallback("ContentScrolled", function(self) + UpdateShownWidgets() + end) - if group.selectedTextures[texturePath] then - textureWidget:Pick() + local function texturePickerGroupSelected(widget, event, uniquevalue, filter) + group.selectedGroupSorted = {} + if filter then + filter = filter:lower() + end + for texturePath, textureName in pairs(group.textures[uniquevalue]) do + if filter == nil or filter == "" or textureName:lower():match(filter) then + tinsert(group.selectedGroupSorted, {texturePath, textureName}) end + end - textureWidget:SetClick(function() - group:Pick(texturePath); - end); - scroll:AddChild(textureWidget); - table.sort(scroll.children, function(a, b) - local aPath, bPath = a:GetTexturePath(), b:GetTexturePath(); - local aNum, bNum = tonumber(aPath:match("%d+")), tonumber(bPath:match("%d+")); - local aNonNumber, bNonNumber = aPath:match("[^%d]+"), bPath:match("[^%d]+") - if(aNum and bNum and aNonNumber == bNonNumber) then - return aNum < bNum; - else - return aPath < bPath; + table.sort(group.selectedGroupSorted, function(a, b) + local aPath, bPath = a[1], b[1] + local aNum, bNum = tonumber(aPath:match("%d+")), tonumber(bPath:match("%d+")); + local aNonNumber, bNonNumber = aPath:match("[^%d]+"), bPath:match("[^%d]+") + if(aNum and bNum and aNonNumber == bNonNumber) then + return aNum < bNum; + else + return aPath < bPath; end - end); + end) + + local viewportWidth = scroll:GetViewportSize() + local texturesPerRow = floor(viewportWidth / 128) + if texturesPerRow == 0 then + texturesPerRow = 1 end + local totalHeight = ceil(#group.selectedGroupSorted / texturesPerRow) * 128 + scroll:SetContentHeight(totalHeight) + + UpdateShownWidgets() end - dropdown:SetCallback("OnGroupSelected", texturePickerGroupSelected) + local input = CreateFrame("EditBox", nil, group.frame, "InputBoxTemplate"); + input:SetScript("OnTextChanged", function(...) + local status = dropdown.status or dropdown.localstatus + texturePickerGroupSelected(nil, nil, status.selected, input:GetText()) + end); + input:SetScript("OnEnterPressed", function(...) + local status = dropdown.status or dropdown.localstatus + texturePickerGroupSelected(nil, nil, status.selected, input:GetText()) + end); + input:SetScript("OnEscapePressed", function(...) + input:SetText(""); + local status = dropdown.status or dropdown.localstatus + texturePickerGroupSelected(nil, nil, status.selected, input:GetText()) + end); + input:SetWidth(170); + input:SetHeight(15); + input:SetPoint("BOTTOMRIGHT", dropdown.frame, "TOPRIGHT", -12, -25); + + local inputLabel = input:CreateFontString(nil, "OVERLAY", "GameFontNormal"); + inputLabel:SetText(L["Search"]); + inputLabel:SetJustifyH("RIGHT"); + inputLabel:SetPoint("BOTTOMLEFT", input, "TOPLEFT", 0, 5); + + dropdown:SetCallback("OnGroupSelected", function(widget, event, uniquevalue) + texturePickerGroupSelected(widget, event, uniquevalue, input:GetText()) + end) function group.UpdateList(self) dropdown.dropdown.pullout:Close() @@ -151,20 +232,28 @@ local function ConstructTexturePicker(frame) function group.Pick(self, texturePath) local pickedwidget; - for index, widget in ipairs(scroll.children) do + for index, widget in ipairs(group.textureWidgets) do widget:ClearPick(); if(widget:GetTexturePath() == texturePath) then pickedwidget = widget; end end + local width, height if(pickedwidget) then pickedwidget:Pick(); + if not pickedwidget.texture.IsStopMotion then + local atlasInfo = GetAtlasInfo(pickedwidget.texture.path) + if atlasInfo then + width = atlasInfo.width + height = atlasInfo.height + end + end end wipe(group.selectedTextures) group.selectedTextures[texturePath] = true - SetAll(self.baseObject, self.path, self.properties.texture, texturePath) + SetAll(self.baseObject, self.path, self.properties.texture, texturePath, width, height) group:UpdateList(); local status = dropdown.status or dropdown.localstatus @@ -224,6 +313,7 @@ local function ConstructTexturePicker(frame) dropdown:SetGroup(categoryName); end end + UpdateShownWidgets() end function group.Close() diff --git a/Interface/AddOns/WeakAurasOptions/OptionsFrames/Update.lua b/Interface/AddOns/WeakAurasOptions/OptionsFrames/Update.lua index 66a79813c..1de96ab06 100644 --- a/Interface/AddOns/WeakAurasOptions/OptionsFrames/Update.lua +++ b/Interface/AddOns/WeakAurasOptions/OptionsFrames/Update.lua @@ -182,15 +182,15 @@ local function recurseUpdate(data, chunk) end end -local ignoredForDiffChecking -- Needs to be created lazily -local function RecurseDiff(ours, theirs) +local function RecurseDiff(ours, theirs, ignoredForDiffChecking) local diff, seen, same = {}, {}, true for key, ourVal in pairs(ours) do - if not ignoredForDiffChecking[key] then + if type(ignoredForDiffChecking) ~= table or ignoredForDiffChecking[key] ~= true then seen[key] = true local theirVal = theirs[key] if type(ourVal) == "table" and type(theirVal) == "table" then - local diffVal = RecurseDiff(ourVal, theirVal) + local diffVal = RecurseDiff(ourVal, theirVal, + type(ignoredForDiffChecking) == table and ignoredForDiffChecking[key] or nil) if diffVal then diff[key] = diffVal same = false @@ -207,7 +207,7 @@ local function RecurseDiff(ours, theirs) end end for key, theirVal in pairs(theirs) do - if not seen[key] and not ignoredForDiffChecking[key] then + if not seen[key] and (type(ignoredForDiffChecking) ~= table or ignoredForDiffChecking[key] ~= true) then diff[key] = theirVal same = false end @@ -243,15 +243,13 @@ local function DebugPrintDiff(diff) end local function Diff(ours, theirs) - if not ignoredForDiffChecking then - ignoredForDiffChecking = CreateFromMixins(OptionsPrivate.Private.internal_fields, - OptionsPrivate.Private.non_transmissable_fields) - end + local ignoredForDiffChecking = CreateFromMixins(OptionsPrivate.Private.internal_fields, + OptionsPrivate.Private.non_transmissable_fields) -- generates a diff which WeakAuras.Update can use local debug = false if not ours or not theirs then return end - local diff = RecurseDiff(ours, theirs) + local diff = RecurseDiff(ours, theirs, ignoredForDiffChecking) if diff then if debug then DebugPrintDiff(diff, ours.id, theirs.id) diff --git a/Interface/AddOns/WeakAurasOptions/RegionOptions/AuraBar.lua b/Interface/AddOns/WeakAurasOptions/RegionOptions/AuraBar.lua index 5e195e2fd..fc989f019 100644 --- a/Interface/AddOns/WeakAurasOptions/RegionOptions/AuraBar.lua +++ b/Interface/AddOns/WeakAurasOptions/RegionOptions/AuraBar.lua @@ -108,6 +108,7 @@ local function createOptions(id, data) }, alpha = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Bar Alpha"], order = 39.3, @@ -212,6 +213,7 @@ local function createOptions(id, data) }, zoom = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Zoom"], order = 40.91, @@ -298,6 +300,7 @@ local function createOptions(id, data) }, sparkWidth = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Width"], order = 44.6, @@ -309,6 +312,7 @@ local function createOptions(id, data) }, sparkHeight = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Height"], order = 44.7, @@ -320,6 +324,7 @@ local function createOptions(id, data) }, sparkOffsetX = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["X Offset"], order = 44.8, @@ -331,6 +336,7 @@ local function createOptions(id, data) }, sparkOffsetY = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y Offset"], order = 44.9, @@ -351,6 +357,7 @@ local function createOptions(id, data) }, sparkRotation = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Rotation"], min = 0, diff --git a/Interface/AddOns/WeakAurasOptions/RegionOptions/DynamicGroup.lua b/Interface/AddOns/WeakAurasOptions/RegionOptions/DynamicGroup.lua index f3a8e3223..01e0e2c25 100644 --- a/Interface/AddOns/WeakAurasOptions/RegionOptions/DynamicGroup.lua +++ b/Interface/AddOns/WeakAurasOptions/RegionOptions/DynamicGroup.lua @@ -212,6 +212,7 @@ local function createOptions(id, data) }, rotation = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Start Angle"], order = 5, @@ -229,6 +230,7 @@ local function createOptions(id, data) }, arcLength = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Total Angle"], order = 8, @@ -240,6 +242,7 @@ local function createOptions(id, data) }, radius = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Radius"], order = 9, @@ -265,6 +268,7 @@ local function createOptions(id, data) }, gridWidth = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = function() if not data.gridType then return "" end @@ -282,6 +286,7 @@ local function createOptions(id, data) }, rowSpace = { type = "range", + control = "WeakAurasSpinBox", name = L["Row Space"], width = WeakAuras.normalWidth, order = 10, @@ -292,6 +297,7 @@ local function createOptions(id, data) }, columnSpace = { type = "range", + control = "WeakAurasSpinBox", name = L["Column Space"], width = WeakAuras.normalWidth, order = 11, @@ -303,6 +309,7 @@ local function createOptions(id, data) -- generic grow options space = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Space"], order = 7, @@ -317,6 +324,7 @@ local function createOptions(id, data) }, stagger = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Stagger"], order = 8, @@ -392,6 +400,7 @@ local function createOptions(id, data) }, limit = { type = "range", + control = "WeakAurasSpinBox", order = 26, width = WeakAuras.normalWidth, name = L["Limit"], @@ -409,6 +418,7 @@ local function createOptions(id, data) }, scale = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Group Scale"], order = 28, diff --git a/Interface/AddOns/WeakAurasOptions/RegionOptions/Group.lua b/Interface/AddOns/WeakAurasOptions/RegionOptions/Group.lua index 2023205c9..a9af965a2 100644 --- a/Interface/AddOns/WeakAurasOptions/RegionOptions/Group.lua +++ b/Interface/AddOns/WeakAurasOptions/RegionOptions/Group.lua @@ -190,6 +190,7 @@ local function createDistributeAlignOptions(id, data) }, distribute_h = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Distribute Horizontally"], order = 20, @@ -273,6 +274,7 @@ local function createDistributeAlignOptions(id, data) }, distribute_v = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Distribute Vertically"], order = 25, @@ -356,6 +358,7 @@ local function createDistributeAlignOptions(id, data) }, space_h = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Space Horizontally"], order = 30, @@ -439,6 +442,7 @@ local function createDistributeAlignOptions(id, data) }, space_v = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Space Vertically"], order = 35, @@ -560,6 +564,7 @@ local function createOptions(id, data) -- Alignment/Distribute options are added below scale = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Group Scale"], order = 45, diff --git a/Interface/AddOns/WeakAurasOptions/RegionOptions/Icon.lua b/Interface/AddOns/WeakAurasOptions/RegionOptions/Icon.lua index 54b600e21..2438d477c 100644 --- a/Interface/AddOns/WeakAurasOptions/RegionOptions/Icon.lua +++ b/Interface/AddOns/WeakAurasOptions/RegionOptions/Icon.lua @@ -124,6 +124,7 @@ local function createOptions(id, data) }, alpha = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth - indentWidth, name = L["Alpha"], order = 7.03, @@ -135,6 +136,7 @@ local function createOptions(id, data) }, zoom = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Zoom"], order = 7.04, @@ -153,6 +155,7 @@ local function createOptions(id, data) }, iconInset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth - indentWidth, name = L["Icon Inset"], order = 7.06, diff --git a/Interface/AddOns/WeakAurasOptions/RegionOptions/Model.lua b/Interface/AddOns/WeakAurasOptions/RegionOptions/Model.lua index b81449653..9568e62a4 100644 --- a/Interface/AddOns/WeakAurasOptions/RegionOptions/Model.lua +++ b/Interface/AddOns/WeakAurasOptions/RegionOptions/Model.lua @@ -39,6 +39,7 @@ local function createOptions(id, data) }, sequence = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Animation Sequence"], min = 0, @@ -63,6 +64,7 @@ local function createOptions(id, data) -- old settings model_z = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Z Offset"], softMin = -20, @@ -74,6 +76,7 @@ local function createOptions(id, data) }, model_x = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["X Offset"], softMin = -20, @@ -85,6 +88,7 @@ local function createOptions(id, data) }, model_y = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y Offset"], softMin = -20, @@ -96,6 +100,7 @@ local function createOptions(id, data) }, rotation = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Rotation"], min = 0, @@ -108,6 +113,7 @@ local function createOptions(id, data) -- New Settings model_st_tx = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["X Offset"], softMin = -1000, @@ -119,6 +125,7 @@ local function createOptions(id, data) }, model_st_ty = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y Offset"], softMin = -1000, @@ -130,6 +137,7 @@ local function createOptions(id, data) }, model_st_tz = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Z Offset"], softMin = -1000, @@ -141,6 +149,7 @@ local function createOptions(id, data) }, model_st_rx = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["X Rotation"], min = 0, @@ -152,6 +161,7 @@ local function createOptions(id, data) }, model_st_ry = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y Rotation"], min = 0, @@ -163,6 +173,7 @@ local function createOptions(id, data) }, model_st_rz = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Z Rotation"], min = 0, @@ -174,6 +185,7 @@ local function createOptions(id, data) }, model_st_us = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Scale"], min = 5, diff --git a/Interface/AddOns/WeakAurasOptions/RegionOptions/ProgressTexture.lua b/Interface/AddOns/WeakAurasOptions/RegionOptions/ProgressTexture.lua index 8d76fdd71..24c34be9e 100644 --- a/Interface/AddOns/WeakAurasOptions/RegionOptions/ProgressTexture.lua +++ b/Interface/AddOns/WeakAurasOptions/RegionOptions/ProgressTexture.lua @@ -94,6 +94,7 @@ local function createOptions(id, data) }, backgroundOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Background Offset"], min = 0, @@ -137,6 +138,7 @@ local function createOptions(id, data) }, user_x = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, order = 42, name = L["Re-center X"], @@ -147,6 +149,7 @@ local function createOptions(id, data) }, user_y = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, order = 44, name = L["Re-center Y"], @@ -157,6 +160,7 @@ local function createOptions(id, data) }, startAngle = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, order = 42, name = L["Start Angle"], @@ -167,6 +171,7 @@ local function createOptions(id, data) }, endAngle = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, order = 44, name = L["End Angle"], @@ -177,6 +182,7 @@ local function createOptions(id, data) }, crop_x = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Crop X"], order = 46, @@ -194,6 +200,7 @@ local function createOptions(id, data) }, crop_y = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Crop Y"], order = 47, @@ -211,6 +218,7 @@ local function createOptions(id, data) }, rotation = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Rotation"], order = 52, @@ -220,6 +228,7 @@ local function createOptions(id, data) }, alpha = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Alpha"], order = 48, @@ -251,6 +260,7 @@ local function createOptions(id, data) }, slant = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Slant Amount"], order = 55.4, diff --git a/Interface/AddOns/WeakAurasOptions/RegionOptions/StopMotion.lua b/Interface/AddOns/WeakAurasOptions/RegionOptions/StopMotion.lua index c2362a4a6..8a4d57586 100644 --- a/Interface/AddOns/WeakAurasOptions/RegionOptions/StopMotion.lua +++ b/Interface/AddOns/WeakAurasOptions/RegionOptions/StopMotion.lua @@ -45,7 +45,7 @@ local function setTextureFunc(textureWidget, texturePath, textureName) if (data) then if (data.rows and data.columns) then -- Texture Atlas - textureWidget:SetTexture(texturePath, textureName); + textureWidget:SetTexture(texturePath, textureName, true); setTile(textureWidget, data.count, data.rows, data.columns, data.frameScaleW or 1, data.frameScaleH or 1); @@ -63,7 +63,7 @@ local function setTextureFunc(textureWidget, texturePath, textureName) else -- Numbered Textures local texture = texturePath .. format("%03d", texture_data[texturePath].count) - textureWidget:SetTexture(texture, textureName) + textureWidget:SetTexture(texture, textureName, true) textureWidget:SetTexCoord(0, 1, 0, 1); textureWidget:SetOnUpdate(function(self, elapsed) @@ -81,7 +81,7 @@ local function setTextureFunc(textureWidget, texturePath, textureName) end else local texture = texturePath .. format("%03d", 1) - textureWidget:SetTexture(texture, textureName); + textureWidget:SetTexture(texture, textureName, true); end end @@ -296,6 +296,7 @@ local function createOptions(id, data) }, startPercent = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Animation Start"], min = 0, @@ -306,6 +307,7 @@ local function createOptions(id, data) }, endPercent = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Animation End"], min = 0, @@ -316,6 +318,7 @@ local function createOptions(id, data) }, frameRate = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Frame Rate"], min = 3, @@ -553,6 +556,7 @@ local function createOptions(id, data) }, backgroundPercent = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Selected Frame"], min = 0, diff --git a/Interface/AddOns/WeakAurasOptions/RegionOptions/Text.lua b/Interface/AddOns/WeakAurasOptions/RegionOptions/Text.lua index e09cf128c..83b68c125 100644 --- a/Interface/AddOns/WeakAurasOptions/RegionOptions/Text.lua +++ b/Interface/AddOns/WeakAurasOptions/RegionOptions/Text.lua @@ -55,6 +55,7 @@ local function createOptions(id, data) }, fontSize = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Size"], order = 46, @@ -153,6 +154,7 @@ local function createOptions(id, data) }, shadowXOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth - indentWidth, name = L["Shadow X Offset"], softMin = -15, @@ -163,6 +165,7 @@ local function createOptions(id, data) }, shadowYOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Shadow Y Offset"], softMin = -15, @@ -215,6 +218,7 @@ local function createOptions(id, data) width = WeakAuras.normalWidth, order = 49.1, type = "range", + control = "WeakAurasSpinBox", min = 1, softMax = screenWidth, bigStep = 1, diff --git a/Interface/AddOns/WeakAurasOptions/RegionOptions/Texture.lua b/Interface/AddOns/WeakAurasOptions/RegionOptions/Texture.lua index 1b68d345a..e5ddf33a7 100644 --- a/Interface/AddOns/WeakAurasOptions/RegionOptions/Texture.lua +++ b/Interface/AddOns/WeakAurasOptions/RegionOptions/Texture.lua @@ -2,6 +2,11 @@ if not WeakAuras.IsLibsOK() then return end local AddonName, OptionsPrivate = ... local L = WeakAuras.L +local GetAtlasInfo = C_Texture and C_Texture.GetAtlasInfo or GetAtlasInfo + +local function IsAtlas(input) + return type(input) == "string" and GetAtlasInfo(input) ~= nil +end local function createOptions(id, data) local options = { @@ -65,10 +70,12 @@ local function createOptions(id, data) type = "toggle", width = WeakAuras.normalWidth, name = L["Mirror"], - order = 20 + order = 20, + hidden = IsAtlas(data.texture) }, alpha = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Alpha"], order = 25, @@ -81,10 +88,12 @@ local function createOptions(id, data) type = "toggle", width = WeakAuras.normalWidth, name = L["Allow Full Rotation"], - order = 30 + order = 30, + hidden = IsAtlas(data.texture) }, rotation = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Rotation"], min = 0, @@ -92,24 +101,26 @@ local function createOptions(id, data) step = 1, bigStep = 3, order = 35, - hidden = function() return not data.rotate end + hidden = function() return not data.rotate or IsAtlas(data.texture) end, }, discrete_rotation = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Discrete Rotation"], min = 0, max = 360, step = 90, order = 35, - hidden = function() return data.rotate end + hidden = function() return data.rotate or IsAtlas(data.texture) end, }, textureWrapMode = { type = "select", width = WeakAuras.normalWidth, name = L["Texture Wrap"], order = 36, - values = OptionsPrivate.Private.texture_wrap_types + values = OptionsPrivate.Private.texture_wrap_types, + hidden = IsAtlas(data.texture) }, endHeader = { type = "header", @@ -158,6 +169,9 @@ local function modifyThumbnail(parent, region, data, fullModify, size) region.texture:SetVertexColor(data.color[1], data.color[2], data.color[3], data.color[4]); region.texture:SetBlendMode(data.blendMode); + if region.texture.IsAtlas then + return + end local ulx,uly , llx,lly , urx,ury , lrx,lry; if(data.rotate) then local angle = rad(135 - data.rotation); diff --git a/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Border.lua b/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Border.lua index b76ce1b34..b9f0a0c10 100644 --- a/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Border.lua +++ b/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Border.lua @@ -30,6 +30,7 @@ local function createOptions(parentData, data, index, subIndex) }, border_offset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Border Offset"], order = 5, @@ -39,6 +40,7 @@ local function createOptions(parentData, data, index, subIndex) }, border_size = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Border Size"], order = 6, diff --git a/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Glow.lua b/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Glow.lua index 41e14f12d..8e6b0656b 100644 --- a/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Glow.lua +++ b/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Glow.lua @@ -128,6 +128,7 @@ local function createOptions(parentData, data, index, subIndex) }, glowLines = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth - indentWidth, name = L["Lines & Particles"], order = 9, @@ -138,6 +139,7 @@ local function createOptions(parentData, data, index, subIndex) }, glowFrequency = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Frequency"], order = 10, @@ -155,6 +157,7 @@ local function createOptions(parentData, data, index, subIndex) }, glowLength = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth - indentWidth, name = L["Length"], order = 12, @@ -165,6 +168,7 @@ local function createOptions(parentData, data, index, subIndex) }, glowThickness = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Thickness"], order = 13, @@ -182,6 +186,7 @@ local function createOptions(parentData, data, index, subIndex) }, glowXOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth - indentWidth, name = L["X-Offset"], order = 15, @@ -192,6 +197,7 @@ local function createOptions(parentData, data, index, subIndex) }, glowYOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y-Offset"], order = 16, @@ -209,6 +215,7 @@ local function createOptions(parentData, data, index, subIndex) }, glowScale = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth - indentWidth, name = L["Scale"], order = 18, diff --git a/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Model.lua b/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Model.lua index ef3ef3804..17f364b9a 100644 --- a/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Model.lua +++ b/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Model.lua @@ -49,6 +49,7 @@ local function createOptions(parentData, data, index, subIndex) }, extra_width = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Extra Width"], order = 12.1, @@ -59,6 +60,7 @@ local function createOptions(parentData, data, index, subIndex) }, extra_height = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Extra Height"], order = 12.2, @@ -69,6 +71,7 @@ local function createOptions(parentData, data, index, subIndex) }, model_alpha = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Alpha"], order = 13, @@ -84,6 +87,7 @@ local function createOptions(parentData, data, index, subIndex) }, model_z = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Z Offset"], softMin = -20, @@ -95,6 +99,7 @@ local function createOptions(parentData, data, index, subIndex) }, model_x = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["X Offset"], softMin = -20, @@ -106,6 +111,7 @@ local function createOptions(parentData, data, index, subIndex) }, model_y = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y Offset"], softMin = -20, @@ -117,6 +123,7 @@ local function createOptions(parentData, data, index, subIndex) }, rotation = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Rotation"], min = 0, @@ -129,6 +136,7 @@ local function createOptions(parentData, data, index, subIndex) -- New Settings model_st_tx = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["X Offset"], softMin = -1000, @@ -140,6 +148,7 @@ local function createOptions(parentData, data, index, subIndex) }, model_st_ty = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y Offset"], softMin = -1000, @@ -151,6 +160,7 @@ local function createOptions(parentData, data, index, subIndex) }, model_st_tz = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Z Offset"], softMin = -1000, @@ -162,6 +172,7 @@ local function createOptions(parentData, data, index, subIndex) }, model_st_rx = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["X Rotation"], min = 0, @@ -173,6 +184,7 @@ local function createOptions(parentData, data, index, subIndex) }, model_st_ry = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y Rotation"], min = 0, @@ -184,6 +196,7 @@ local function createOptions(parentData, data, index, subIndex) }, model_st_rz = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Z Rotation"], min = 0, @@ -195,6 +208,7 @@ local function createOptions(parentData, data, index, subIndex) }, model_st_us = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Scale"], min = 5, diff --git a/Interface/AddOns/WeakAurasOptions/SubRegionOptions/SubText.lua b/Interface/AddOns/WeakAurasOptions/SubRegionOptions/SubText.lua index cbf9f1fb5..a4c1cbc1d 100644 --- a/Interface/AddOns/WeakAurasOptions/SubRegionOptions/SubText.lua +++ b/Interface/AddOns/WeakAurasOptions/SubRegionOptions/SubText.lua @@ -67,6 +67,7 @@ local function createOptions(parentData, data, index, subIndex) }, text_fontSize = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Size"], order = 14, @@ -168,6 +169,7 @@ local function createOptions(parentData, data, index, subIndex) }, text_shadowXOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth - indentWidth, name = L["Shadow X Offset"], softMin = -15, @@ -178,6 +180,7 @@ local function createOptions(parentData, data, index, subIndex) }, text_shadowYOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Shadow Y Offset"], softMin = -15, @@ -244,6 +247,7 @@ local function createOptions(parentData, data, index, subIndex) width = WeakAuras.normalWidth - indentWidth, order = 53, type = "range", + control = "WeakAurasSpinBox", min = 1, softMax = 200, bigStep = 1, @@ -373,6 +377,7 @@ local function createOptions(parentData, data, index, subIndex) options.text_anchorXOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth - indentWidth, name = L["X Offset"], order = 60.4, @@ -384,6 +389,7 @@ local function createOptions(parentData, data, index, subIndex) options.text_anchorYOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Y Offset"], order = 60.5, diff --git a/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Tick.lua b/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Tick.lua index 417f6542a..d7ebdb59c 100644 --- a/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Tick.lua +++ b/Interface/AddOns/WeakAurasOptions/SubRegionOptions/Tick.lua @@ -40,6 +40,7 @@ local function createOptions(parentData, data, index, subIndex) }, tick_thickness = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Thickness"], order = 5, @@ -104,6 +105,7 @@ local function createOptions(parentData, data, index, subIndex) }, tick_length = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Length"], order = 8, @@ -167,6 +169,7 @@ local function createOptions(parentData, data, index, subIndex) }, tick_rotation = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["Rotation"], min = 0, @@ -184,6 +187,7 @@ local function createOptions(parentData, data, index, subIndex) }, tick_xOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["x-Offset"], order = 16, @@ -193,6 +197,7 @@ local function createOptions(parentData, data, index, subIndex) }, tick_yOffset = { type = "range", + control = "WeakAurasSpinBox", width = WeakAuras.normalWidth, name = L["y-Offset"], order = 17, diff --git a/Interface/AddOns/WeakAurasOptions/WeakAurasOptions.lua b/Interface/AddOns/WeakAurasOptions/WeakAurasOptions.lua index 1dc248a57..52b91ce04 100644 --- a/Interface/AddOns/WeakAurasOptions/WeakAurasOptions.lua +++ b/Interface/AddOns/WeakAurasOptions/WeakAurasOptions.lua @@ -894,7 +894,7 @@ function OptionsPrivate.ConvertDisplay(data, newType) local visibility = displayButtons[id]:GetVisibility(); displayButtons[id]:PriorityHide(2); - if OptionsPrivate.Private.regions[id] then + if OptionsPrivate.Private.regions[id] and OptionsPrivate.Private.regions[id].region then OptionsPrivate.Private.regions[id].region:Collapse() end OptionsPrivate.Private.CollapseAllClones(id); diff --git a/Interface/AddOns/WeakAurasOptions/WeakAurasOptions.toc b/Interface/AddOns/WeakAurasOptions/WeakAurasOptions.toc index 35b2a1513..26d25c9d5 100644 --- a/Interface/AddOns/WeakAurasOptions/WeakAurasOptions.toc +++ b/Interface/AddOns/WeakAurasOptions/WeakAurasOptions.toc @@ -1,7 +1,7 @@ -## Interface: 100000 +## Interface: 100002 ## Title: WeakAuras Options ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## Notes: Options for WeakAuras ## Notes-esES: Opciones para WeakAuras ## Notes-deDE: Optionen für WeakAuras @@ -92,4 +92,6 @@ AceGUI-Widgets\AceGUIContainer-WeakAurasInlineGroup.lua AceGUI-Widgets\AceGUIWidget-WeakAurasExpandAnchor.lua AceGUI-Widgets\AceGUIWidget-WeakAurasSpacer.lua AceGUI-Widgets\AceGuiWidget-WeakAurasProgressBar.lua +AceGUI-Widgets\AceGUIWidget-WeakAurasSpinBox.lua AceGUI-Widgets\AceGUIWidget-WeakAurasMiniTalent_Dragonflight.lua +AceGUI-Widgets\AceGUIWidget-WeakAurasScrollArea.lua diff --git a/Interface/AddOns/WeakAurasOptions/WeakAurasOptions_TBC.toc b/Interface/AddOns/WeakAurasOptions/WeakAurasOptions_TBC.toc index 8fcabf98a..3fba3ffe9 100644 --- a/Interface/AddOns/WeakAurasOptions/WeakAurasOptions_TBC.toc +++ b/Interface/AddOns/WeakAurasOptions/WeakAurasOptions_TBC.toc @@ -1,7 +1,7 @@ ## Interface: 20504 ## Title: WeakAuras Options ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## Notes: Options for WeakAuras ## Notes-esES: Opciones para WeakAuras ## Notes-deDE: Optionen für WeakAuras @@ -92,3 +92,6 @@ AceGUI-Widgets\AceGUIContainer-WeakAurasInlineGroup.lua AceGUI-Widgets\AceGUIWidget-WeakAurasExpandAnchor.lua AceGUI-Widgets\AceGUIWidget-WeakAurasSpacer.lua AceGUI-Widgets\AceGuiWidget-WeakAurasProgressBar.lua +AceGUI-Widgets\AceGUIWidget-WeakAurasSpinBox.lua +AceGUI-Widgets\AceGUIWidget-WeakAurasScrollArea.lua + diff --git a/Interface/AddOns/WeakAurasOptions/WeakAurasOptions_Vanilla.toc b/Interface/AddOns/WeakAurasOptions/WeakAurasOptions_Vanilla.toc index 087d10a1b..8c4ae27b3 100644 --- a/Interface/AddOns/WeakAurasOptions/WeakAurasOptions_Vanilla.toc +++ b/Interface/AddOns/WeakAurasOptions/WeakAurasOptions_Vanilla.toc @@ -1,7 +1,7 @@ ## Interface: 11403 ## Title: WeakAuras Options ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## Notes: Options for WeakAuras ## Notes-esES: Opciones para WeakAuras ## Notes-deDE: Optionen für WeakAuras @@ -92,3 +92,6 @@ AceGUI-Widgets\AceGUIContainer-WeakAurasInlineGroup.lua AceGUI-Widgets\AceGUIWidget-WeakAurasExpandAnchor.lua AceGUI-Widgets\AceGUIWidget-WeakAurasSpacer.lua AceGUI-Widgets\AceGuiWidget-WeakAurasProgressBar.lua +AceGUI-Widgets\AceGUIWidget-WeakAurasSpinBox.lua +AceGUI-Widgets\AceGUIWidget-WeakAurasScrollArea.lua + diff --git a/Interface/AddOns/WeakAurasOptions/WeakAurasOptions_Wrath.toc b/Interface/AddOns/WeakAurasOptions/WeakAurasOptions_Wrath.toc index d7fe9a904..d77debf6b 100644 --- a/Interface/AddOns/WeakAurasOptions/WeakAurasOptions_Wrath.toc +++ b/Interface/AddOns/WeakAurasOptions/WeakAurasOptions_Wrath.toc @@ -1,7 +1,7 @@ ## Interface: 30400 ## Title: WeakAuras Options ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## Notes: Options for WeakAuras ## Notes-esES: Opciones para WeakAuras ## Notes-deDE: Optionen für WeakAuras @@ -92,4 +92,6 @@ AceGUI-Widgets\AceGUIContainer-WeakAurasInlineGroup.lua AceGUI-Widgets\AceGUIWidget-WeakAurasExpandAnchor.lua AceGUI-Widgets\AceGUIWidget-WeakAurasSpacer.lua AceGUI-Widgets\AceGuiWidget-WeakAurasProgressBar.lua +AceGUI-Widgets\AceGUIWidget-WeakAurasSpinBox.lua AceGUI-Widgets\AceGUIWidget-WeakAurasMiniTalent_Wrath.lua +AceGUI-Widgets\AceGUIWidget-WeakAurasScrollArea.lua diff --git a/Interface/AddOns/WeakAurasTemplates/Locales/koKR.lua b/Interface/AddOns/WeakAurasTemplates/Locales/koKR.lua index f6713dc18..a573e979c 100644 --- a/Interface/AddOns/WeakAurasTemplates/Locales/koKR.lua +++ b/Interface/AddOns/WeakAurasTemplates/Locales/koKR.lua @@ -32,7 +32,7 @@ local L = WeakAuras.L L["Always shows the aura."] = "효과를 항상 표시합니다." L["Back"] = "뒤로" L["Basic Show On Cooldown"] = "재사용 대기 중 표시" - L["Basic Show On Ready"] = "준비완료 시 표시" + L["Basic Show On Ready"] = "준비 완료 시 표시" L["Bloodlust/Heroism"] = "피의 욕망/영웅심" L["buff"] = "강화 효과" L["Buffs"] = "강화 효과" @@ -97,13 +97,11 @@ local L = WeakAuras.L L["Show Cooldown and Action Queued"] = "Show Cooldown and Action Queued" L["Show Cooldown and Buff"] = "재사용 대기시간 및 강화 효과 표시" L["Show Cooldown and Buff and Check for Target"] = "재사용 대기시간과 강화 효과 표시 및 대상 확인" - --[[Translation missing --]] - L["Show Cooldown and Buff and Check Usable"] = "Show Cooldown and Buff and Check Usable" + L["Show Cooldown and Buff and Check Usable"] = "재사용 대기시간과 강화 효과 표시 및 사용 가능 확인" L["Show Cooldown and Check for Target"] = "재사용 대기시간 표시 및 대상 확인" --[[Translation missing --]] L["Show Cooldown and Check for Target & Proc Tracking"] = "Show Cooldown and Check for Target & Proc Tracking" - --[[Translation missing --]] - L["Show Cooldown and Check Usable"] = "Show Cooldown and Check Usable" + L["Show Cooldown and Check Usable"] = "재사용 대기시간 표시 및 사용 가능 확인" --[[Translation missing --]] L["Show Cooldown and Check Usable & Target"] = "Show Cooldown and Check Usable & Target" --[[Translation missing --]] diff --git a/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates.toc b/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates.toc index 372984b8f..8e1e2541b 100644 --- a/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates.toc +++ b/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates.toc @@ -1,7 +1,7 @@ -## Interface: 100000 +## Interface: 100002 ## Title: WeakAuras Templates ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## Notes: Templates for WeakAuras ## X-Category: Interface Enhancements ## Globe-Main: WeakAuras diff --git a/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates_TBC.toc b/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates_TBC.toc index e95fe1081..ca64ad4fa 100644 --- a/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates_TBC.toc +++ b/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates_TBC.toc @@ -1,7 +1,7 @@ ## Interface: 20504 ## Title: WeakAuras Templates ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## Notes: Templates for WeakAuras ## X-Category: Interface Enhancements ## Globe-Main: WeakAuras diff --git a/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates_Vanilla.toc b/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates_Vanilla.toc index 8fc33b350..3957ad7db 100644 --- a/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates_Vanilla.toc +++ b/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates_Vanilla.toc @@ -1,7 +1,7 @@ ## Interface: 11403 ## Title: WeakAuras Templates ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## Notes: Templates for WeakAuras ## X-Category: Interface Enhancements ## Globe-Main: WeakAuras diff --git a/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates_Wrath.toc b/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates_Wrath.toc index c7cf25097..1a56b07ef 100644 --- a/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates_Wrath.toc +++ b/Interface/AddOns/WeakAurasTemplates/WeakAurasTemplates_Wrath.toc @@ -1,7 +1,7 @@ ## Interface: 30400 ## Title: WeakAuras Templates ## Author: The WeakAuras Team -## Version: 5.1.1 +## Version: 5.2.0 ## Notes: Templates for WeakAuras ## X-Category: Interface Enhancements ## Globe-Main: WeakAuras