Quantcast

re-commit

ckaotik [08-05-10 - 23:05]
re-commit
Filename
Broker_Garbage.toc
category_test.lua
constants.lua
core.lua
helper.lua
libs/CallbackHandler-1.0.lua
libs/LibDataBroker-1.1.lua
libs/LibPeriodicTable-3.1-Consumable/LibPeriodicTable-3.1-Consumable.lua
libs/LibPeriodicTable-3.1-Consumable/LibPeriodicTable-3.1-Consumable.toc
libs/LibPeriodicTable-3.1-Misc/LibPeriodicTable-3.1-Misc.lua
libs/LibPeriodicTable-3.1-Misc/LibPeriodicTable-3.1-Misc.toc
libs/LibPeriodicTable-3.1-Tradeskill/LibPeriodicTable-3.1-Tradeskill.lua
libs/LibPeriodicTable-3.1-Tradeskill/LibPeriodicTable-3.1-Tradeskill.toc
libs/LibPeriodicTable-3.1-TradeskillResultMats/LibPeriodicTable-3.1-TradeskillResultMats.lua
libs/LibPeriodicTable-3.1-TradeskillResultMats/LibPeriodicTable-3.1-TradeskillResultMats.toc
libs/LibPeriodicTable-3.1.lua
libs/LibQTip-1.0.lua
libs/LibStub.lua
libs/tekKonfig/tekKonfig.xml
libs/tekKonfig/tekKonfigAboutPanel.lua
libs/tekKonfig/tekKonfigButton.lua
libs/tekKonfig/tekKonfigCheckbox.lua
libs/tekKonfig/tekKonfigDropdown.lua
libs/tekKonfig/tekKonfigGroup.lua
libs/tekKonfig/tekKonfigHeading.lua
libs/tekKonfig/tekKonfigScroll.lua
libs/tekKonfig/tekKonfigSlider.lua
libs/tekKonfig/tekKonfigTopTab.lua
locale/deDE.lua
locale/enUS.lua
options.lua
readme.txt
diff --git a/Broker_Garbage.toc b/Broker_Garbage.toc
new file mode 100644
index 0000000..2826168
--- /dev/null
+++ b/Broker_Garbage.toc
@@ -0,0 +1,42 @@
+## Interface: 30300
+## Dependencies:
+## OptionalDeps: LibPeriodicTable-3.1, Auctionator, AuctionLite, Auc-Advanced, Enchantrix, WOWEcon_PriceMod
+## SavedVariables: BG_GlobalDB
+## SavedVariablesPerCharacter: BG_LocalDB
+
+## Title: Broker_Garbage
+## Notes: Full bags no more! Find your least valuable item .. and destroy it!
+## Notes-deDE: Endlich wieder Platz! Finde dein billigstes Item ... und zerstöre es.
+## Author: ckaotik
+## Version: 3.3v29
+## X-Website: http://www.wowinterface.com/downloads/info15531-Broker_Garbage.html
+## X-RelSite-WoWI: 15531
+## X-Category: Inventory
+## X-Embeds: LibPeriodicTable-3.1
+## X-Localizations: enUS, deDE. Works in any language. You can help!
+## X-Credits: GarbageFu, tekKonfig, Mirroar (<3)
+## X-License: BSD
+
+# libraries
+libs\LibStub.lua
+libs\CallbackHandler-1.0.lua
+libs\LibDataBroker-1.1.lua
+libs\LibQTip-1.0.lua
+libs\tekKonfig\tekKonfig.xml
+
+libs\LibPeriodicTable-3.1.lua
+libs\LibPeriodicTable-3.1-Consumable\LibPeriodicTable-3.1-Consumable.lua
+libs\LibPeriodicTable-3.1-Misc\LibPeriodicTable-3.1-Misc.lua
+libs\LibPeriodicTable-3.1-Tradeskill\LibPeriodicTable-3.1-Tradeskill.lua
+libs\LibPeriodicTable-3.1-TradeskillResultMats\LibPeriodicTable-3.1-TradeskillResultMats.lua
+
+# localization files
+locale\enUS.lua
+locale\deDE.lua
+
+# main files
+constants.lua
+helper.lua
+core.lua
+options.lua
+category_test.lua
\ No newline at end of file
diff --git a/category_test.lua b/category_test.lua
new file mode 100644
index 0000000..feb5249
--- /dev/null
+++ b/category_test.lua
@@ -0,0 +1,232 @@
+_, BrokerGarbage = ...
+
+-- options panel
+if BrokerGarbage.PT then
+	BrokerGarbage.categoryTest = CreateFrame("Frame", "BrokerGarbageCategoryTestFrame", InterfaceOptionsFramePanelContainer)
+	BrokerGarbage.categoryTest.name = BrokerGarbage.locale.PTCategoryTest
+	BrokerGarbage.categoryTest.parent = "Broker_Garbage"
+	BrokerGarbage.categoryTest:Hide()
+
+	-- button tooltip infos
+	local function ShowTooltip(self)
+		GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
+		if self.tiptext then
+			GameTooltip:SetText(self.tiptext, nil, nil, nil, nil, true)
+		elseif self.itemLink then
+			GameTooltip:SetHyperlink(self.itemLink)
+		end
+		GameTooltip:Show()
+	end
+	local function HideTooltip() GameTooltip:Hide() end
+
+	local category
+	local boxHeight = 200
+	local boxWidth = 330
+	local numCols = 8
+
+	local backdrop = {
+		bgFile = "Interface\\ChatFrame\\ChatFrameBackground", insets = {left = 4, right = 4, top = 4, bottom = 4},
+		edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", edgeSize = 16
+	}
+
+	function BrokerGarbage:UpdatePreviewBox(finish)
+		if category == nil or category == "" then return end
+		if not BrokerGarbage.listButtons.preview then BrokerGarbage.listButtons.preview = {} end
+		local buttonList = BrokerGarbage.listButtons.preview
+		local itemList = {}
+
+		local index = 1
+		for itemID, value, set in BrokerGarbage.PT:IterateSet(category) do
+			if buttonList[index] then
+				-- use available button
+				local button = buttonList[index]
+				local itemLink, texture
+				_, itemLink, _, _, _, _, _, _, _, texture, _ = GetItemInfo(itemID)
+				button.itemID = itemID
+				button.itemLink = itemLink
+				button:SetNormalTexture(texture)
+				button:SetChecked(false)
+				button:Show()
+
+			else
+				-- create another button
+				local iconbutton = CreateFrame("CheckButton", "BG_PreviewIconButton"..index, _G["BG_PreviewBoxContent"])
+				iconbutton:Hide()
+				iconbutton:SetWidth(36)
+				iconbutton:SetHeight(36)
+
+				iconbutton:SetNormalTexture("Interface\\Icons\\Inv_misc_questionmark")
+				iconbutton:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square")
+				iconbutton:SetCheckedTexture("Interface\\Buttons\\UI-Button-Outline")
+				iconbutton:SetChecked(false)
+				local tex = iconbutton:GetCheckedTexture()
+				tex:ClearAllPoints()
+				tex:SetPoint("CENTER")
+				tex:SetWidth(36/37*66) tex:SetHeight(36/37*66)
+
+				iconbutton:SetScript("OnClick", function(self)
+					local check = self:GetChecked()
+					BrokerGarbage:Debug("OnClick", check)
+
+					if IsModifiedClick("CHATLINK") and ChatFrameEditBox:IsVisible() then
+						-- post item link
+						ChatFrameEditBox:Insert(self.itemLink)
+						self:SetChecked(not check)
+					else
+						self:SetChecked(not check)
+					end
+				end)
+				iconbutton:SetScript("OnEnter", ShowTooltip)
+				iconbutton:SetScript("OnLeave", HideTooltip)
+
+				if index == 1 then
+					-- place first icon
+					iconbutton:SetPoint("TOPLEFT", "BG_PreviewBoxContent", "TOPLEFT", 6, -6)
+				elseif mod(index, numCols) == 1 then
+					-- new row
+					iconbutton:SetPoint("TOPLEFT", buttonList[index-numCols], "BOTTOMLEFT", 0, -6)
+				else
+					-- new button next to the old one
+					iconbutton:SetPoint("LEFT", buttonList[index-1], "RIGHT", 4, 0)
+				end
+				buttonList[index] = iconbutton
+			end
+
+			if GetItemCount(itemID) ~= 0 and not itemList[itemID] then
+				itemList[itemID] = true
+				index = index + 1
+			end
+		end
+
+		-- hide unnessessary buttons
+		while buttonList[index] do
+			buttonList[index]:Hide()
+			index = index + 1
+		end
+
+		if not finish then
+			BrokerGarbage:UpdatePreviewBox(true)
+		end
+	end
+
+	local function ShowOptions()
+		local title, subtitle = LibStub("tekKonfig-Heading").new(BrokerGarbage.categoryTest, BrokerGarbage.locale.PTCategoryTestTitle, BrokerGarbage.locale.PTCategoryTestSubTitle)
+
+		local explainText = BrokerGarbage.categoryTest:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+		explainText:SetPoint("TOPLEFT", subtitle, "BOTTOMLEFT", 0, 0)
+		explainText:SetPoint("RIGHT", BrokerGarbage.categoryTest, -32, 0)
+		explainText:SetHeight(40)
+		explainText:SetNonSpaceWrap(true)
+		explainText:SetJustifyH("LEFT")
+		explainText:SetJustifyV("TOP")
+		explainText:SetText(BrokerGarbage.locale.PTCategoryTestExplanation)
+
+		-- dropdown menu for choosing the LPT string to view
+		local categoryString, categoryText, categoryContainer = LibStub("tekKonfig-Dropdown").new(BrokerGarbage.categoryTest, BrokerGarbage.locale.PTCategoryTestDropdownTitle, "TOPLEFT", explainText, "BOTTOMLEFT", 0, -10)
+		categoryText:SetText(BrokerGarbage.locale.PTCategoryTestDropdownText)
+		categoryString:SetWidth(400)
+
+		local function OnClick()
+			UIDropDownMenu_SetSelectedValue(categoryString, this.category)
+			category = this.category
+			categoryText:SetText(category)
+			BrokerGarbage:UpdatePreviewBox()
+		end
+
+		UIDropDownMenu_Initialize(categoryString, function(self,level)
+			local selected = UIDropDownMenu_GetSelectedValue(categoryString)
+			level = level or 1
+			if level == 1 then
+				for key, subarray in pairs(BrokerGarbage.PTSets) do
+					-- submenus
+					local info = UIDropDownMenu_CreateInfo()
+					info.hasArrow = true
+					info.text = key
+					info.category = key
+					info.checked = key == selected
+					info.value = {
+						[1] = key
+					}
+					info.func = function()
+						category = key
+						UIDropDownMenu_SetSelectedValue(categoryString, category)
+						categoryText:SetText(category)
+						BrokerGarbage:UpdatePreviewBox()
+					end
+					UIDropDownMenu_AddButton(info, level)
+				end
+
+			else
+				-- getting values of first menu
+				local parentValue = UIDROPDOWNMENU_MENU_VALUE
+				local PTSets = BrokerGarbage.PTSets
+				for i = 1, level - 1 do
+					PTSets = PTSets[ parentValue[i] ]
+				end
+
+				for key, value in pairs(PTSets) do
+					local newValue = {}
+					for i = 1, level - 1 do
+						newValue[i] = parentValue[i]
+					end
+					newValue[level] = key
+					-- calculate category string
+					local valueString = newValue[1]
+					for i = 2, level do
+						valueString = valueString.."."..newValue[i]
+					end
+
+					local info = UIDropDownMenu_CreateInfo();
+					if type(value) == "table" then
+						-- submenu
+						info.hasArrow = true
+						info.category = valueString
+						info.value = newValue
+						info.func = function()
+							category = valueString
+							UIDropDownMenu_SetSelectedValue(categoryString, category)
+							categoryText:SetText(category)
+							BrokerGarbage:UpdatePreviewBox()
+						end
+					else
+						-- end node
+						info.hasArrow = false
+						info.func = function()
+							category = valueString
+							UIDropDownMenu_SetSelectedValue(categoryString, category)
+							categoryText:SetText(category)
+							BrokerGarbage:UpdatePreviewBox()
+						end
+					end
+					info.checked = valueString == selected
+					info.text = key
+
+					UIDropDownMenu_AddButton(info, level);
+				end
+			end
+		end)
+
+		-- create the container
+		local previewBox = CreateFrame("ScrollFrame", "BG_PreviewBox", BrokerGarbage.categoryTest, "UIPanelScrollFrameTemplate")
+		previewBox:SetPoint("TOPLEFT", categoryContainer, "BOTTOMLEFT", 8, 4)
+		previewBox:SetHeight(boxHeight)
+		previewBox:SetWidth(boxWidth)
+		previewBox:SetBackdrop(backdrop)
+		previewBox:SetBackdropBorderColor(0.4, 0.4, 0.4)
+		previewBox:SetBackdropColor(0.1, 0.1, 0.1)
+
+		local group_preview = CreateFrame("Frame", "BG_PreviewBoxContent", previewBox)
+		group_preview:SetAllPoints()
+		group_preview:SetHeight(boxHeight)
+		group_preview:SetWidth(boxWidth)
+		previewBox:SetScrollChild(group_preview)
+
+		-- now do the update & reset functions
+		BrokerGarbage:UpdatePreviewBox()
+		BrokerGarbage.categoryTest:SetScript("OnShow", BrokerGarbage.UpdatePreviewBox)
+	end
+
+	--BrokerGarbage.categoryTest:SetScript("OnShow", ShowOptions)
+	table.insert(BrokerGarbage.optionsModules, BrokerGarbage.categoryTest)
+	BrokerGarbage.optionsModules[#BrokerGarbage.optionsModules].OnShow = ShowOptions
+end
\ No newline at end of file
diff --git a/constants.lua b/constants.lua
new file mode 100644
index 0000000..071eaad
--- /dev/null
+++ b/constants.lua
@@ -0,0 +1,306 @@
+_, BrokerGarbage = ...
+
+-- default saved variables
+BrokerGarbage.defaultGlobalSettings = {
+	-- lists :: key is either the itemID -or- the PeriodicTable category string, value is true -or- limit number
+	exclude = {},
+	include = {},
+	autoSellList = {},
+	forceVendorPrice = {},		-- only global
+
+	-- behavior
+	autoSellToVendor = true,
+	autoRepairAtVendor = true,
+	disableKey = "SHIFT",
+	hideZeroValue = true,		-- TODO: provide interface options. disable this to have zero value items (quest items, event items etc.) show up in BG tooltip, enable it to hide them
+	sellNotWearable = false,
+	sellNWQualityTreshold = 4,
+	autoSellIncludeItems = false,
+
+	-- default values
+	tooltipMaxHeight = 220,
+	tooltipNumItems = 9,
+	dropQuality = 0,
+	showMoney = 2,
+	hasEnchanter = true,
+
+	-- statistic values
+	moneyLostByDeleting = 0,
+	moneyEarned = 0,
+	itemsSold = 0,
+	itemsDropped = 0,
+
+	-- display options
+	showAutoSellIcon = true,
+	reportNothingToSell = true,
+	showLost = true,
+	showEarned = true,
+	LDBformat = "[itemname]x[itemcount] ([itemvalue])",
+	LDBNoJunk = BrokerGarbage.locale.label,
+	showSource = false,
+}
+
+BrokerGarbage.defaultLocalSettings = {
+	-- lists
+	exclude = {},
+	include = {},
+	autoSellList = {},
+
+	-- behavior
+	neverRepairGuildBank = false,
+
+	-- default values
+	moneyLostByDeleting = 0,
+	moneyEarned = 0,
+}
+
+BrokerGarbage.toSellValue = {}	-- value to show on sell icon
+
+-- item classification
+BrokerGarbage.EXCLUDE = 0		-- item is excluded. Nothing happened...
+BrokerGarbage.INCLUDE = 1		-- item is on include list
+BrokerGarbage.LIMITED = 2		-- item is on include list, but has a limit value
+BrokerGarbage.UNUSABLE = 3		-- item is gear but not usable
+
+BrokerGarbage.AUCTION = 4		-- auction price is highest value
+BrokerGarbage.VENDOR = 5		-- vendor price is highest value
+BrokerGarbage.VENDORLIST = 6	-- item is on sell list
+BrokerGarbage.DISENCHANT = 7	-- disenchant price is highest value
+
+-- corresponding tags to be used in the LDB tooltip
+BrokerGarbage.tag = {
+	-- exclude doesn't show up on tooltip, so it's not needed here
+	[BrokerGarbage.INCLUDE] 	= "|cFFffffffI",	-- white
+	[BrokerGarbage.LIMITED] 	= "|cFFffffffL",	-- white
+	[BrokerGarbage.UNUSABLE] 	= "|cFF3c73abG",	-- blue
+	[BrokerGarbage.AUCTION] 	= "|cFF2bff58A",	-- green
+	[BrokerGarbage.VENDOR] 		= "|cFFff9c5aV",	-- orange
+	[BrokerGarbage.VENDORLIST] 	= "|cFFff592dV",	-- dark orange
+	[BrokerGarbage.DISENCHANT] 	= "|cFFe052ffD",	-- purple
+}
+-- |cffffd200 Blizzard Orange; textures: Spell_Holy_HolyGuidance, achievement_bg_returnxflags_def_wsg
+
+BrokerGarbage.clams = {15874, 5523, 5524, 7973, 24476, 36781, 45909}
+BrokerGarbage.playerClass = select(2,UnitClass("player"))
+BrokerGarbage.enchanting = select(1,GetSpellInfo(7411))
+
+BrokerGarbage.disableKey = {
+	["None"] 	= function() return false end,
+	["SHIFT"] 	= IsShiftKeyDown,
+	["ALT"] 	= IsAltKeyDown,
+	["CTRL"] 	= IsControlKeyDown,
+}
+
+-- rarity strings (no need to localize)
+BrokerGarbage.quality = {
+	[0] = select(4,GetItemQualityColor(0))..ITEM_QUALITY0_DESC.."|r",	-- gray (junk)
+	[1] = select(4,GetItemQualityColor(1))..ITEM_QUALITY1_DESC.."|r",	-- white
+	[2] = select(4,GetItemQualityColor(2))..ITEM_QUALITY2_DESC.."|r",	-- green
+	[3] = select(4,GetItemQualityColor(3))..ITEM_QUALITY3_DESC.."|r",	-- blue
+	[4] = select(4,GetItemQualityColor(4))..ITEM_QUALITY4_DESC.."|r",	-- purple
+	[5] = select(4,GetItemQualityColor(5))..ITEM_QUALITY5_DESC.."|r",	-- legendary
+	[6] = select(4,GetItemQualityColor(6))..ITEM_QUALITY6_DESC.."|r",	-- heirloom
+	[7] = select(4,GetItemQualityColor(7))..ITEM_QUALITY7_DESC.."|r",	-- artifact
+}
+
+BrokerGarbage.tradeSkills = {
+	[2] = "Leatherworking",
+	[3] = "Tailoring",
+	[4] = "Engineering",
+	[5] = "Blacksmithing",
+	[6] = "Cooking",
+	[7] = "Alchemy",
+	[8] = "First Aid",
+	[9] = "Enchanting",
+	[10] = "Fishing",
+	[11] = "Jewelcrafting",
+	[12] = "Inscription",
+}
+
+local armorTypes = { GetAuctionItemSubClasses(2) }
+local weaponTypes = { GetAuctionItemSubClasses(1) }
+local ammoTypes = { GetAuctionItemSubClasses(7) }
+BrokerGarbage.usableByClass = {
+-- ------------- TODO ---------------------------
+	["DEATHKNIGHT"] = {
+		[armorTypes[1]] = true,		-- misc, e.g. tabards
+		[armorTypes[2]] = true,		-- cloth
+		[armorTypes[3]] = true,		-- leather
+		[armorTypes[4]] = true,		-- mail
+		[armorTypes[5]] = true,		-- plate
+		[armorTypes[10]] = true,	-- seal
+
+		[weaponTypes[1]] = true,	-- 1H axes
+		[weaponTypes[2]] = true,	-- 2H axes
+		[weaponTypes[5]] = true,	-- 1H maces
+		[weaponTypes[6]] = true,	-- 2H maces
+		[weaponTypes[7]] = true,	-- polearms
+		[weaponTypes[8]] = true,	-- 1H swords
+		[weaponTypes[9]] = true,	-- 2H swords
+		--[weaponTypes[12]] = true,	-- misc
+		[weaponTypes[17]] = true,	-- fishing rod
+	},
+	["DRUID"] = {
+		[armorTypes[1]] = true,		-- misc, e.g. tabards
+		[armorTypes[2]] = true,		-- cloth
+		[armorTypes[3]] = true,		-- leather
+		[armorTypes[8]] = true,		-- relic
+
+		[weaponTypes[5]] = true,	-- 1H maces
+		[weaponTypes[6]] = true,	-- 2H maces
+		[weaponTypes[7]] = true,	-- polearms
+		[weaponTypes[10]] = true,	-- staves
+		[weaponTypes[11]] = true,	-- fist weapons
+		--[weaponTypes[12]] = true,	-- misc
+		[weaponTypes[13]] = true,	-- daggers
+		[weaponTypes[17]] = true,	-- fishing rod
+	},
+	["HUNTER"] = {
+		[armorTypes[1]] = true,		-- misc, e.g. tabards
+		[armorTypes[2]] = true,		-- cloth
+		[armorTypes[3]] = true,		-- leather
+		[armorTypes[4]] = true,		-- mail
+
+		[weaponTypes[1]] = true,	-- 1H axes
+		[weaponTypes[2]] = true,	-- 2H axes
+		[weaponTypes[3]] = true,	-- bows
+		[weaponTypes[4]] = true,	-- guns
+		[weaponTypes[7]] = true,	-- polearms
+		[weaponTypes[8]] = true,	-- 1H swords
+		[weaponTypes[9]] = true,	-- 2H swords
+		[weaponTypes[10]] = true,	-- staves
+		[weaponTypes[11]] = true,	-- fist weapons
+		--[weaponTypes[12]] = true,	-- misc
+		[weaponTypes[13]] = true,	-- daggers
+		[weaponTypes[15]] = true,	-- crossbows
+		[weaponTypes[17]] = true,	-- fishing rod
+
+		[ammoTypes[1]] = true,		-- arrow
+		[ammoTypes[2]] = true,		-- bullet
+	},
+	["MAGE"] = {
+		[armorTypes[1]] = true,		-- misc, e.g. tabards
+		[armorTypes[2]] = true,		-- cloth
+
+		[weaponTypes[8]] = true,	-- 1H swords
+		[weaponTypes[10]] = true,	-- staves
+		--[weaponTypes[12]] = true,	-- misc
+		[weaponTypes[13]] = true,	-- daggers
+		[weaponTypes[16]] = true,	-- wands
+		[weaponTypes[17]] = true,	-- fishing rod
+	},
+	["PALADIN"] = {
+		[armorTypes[1]] = true,		-- misc, e.g. tabards
+		[armorTypes[2]] = true,		-- cloth
+		[armorTypes[3]] = true,		-- leather
+		[armorTypes[4]] = true,		-- mail
+		[armorTypes[5]] = true,		-- plate
+		[armorTypes[6]] = true,		-- shields
+		[armorTypes[7]] = true,		-- librams
+
+		[weaponTypes[1]] = true,	-- 1H axes
+		[weaponTypes[2]] = true,	-- 2H axes
+		[weaponTypes[5]] = true,	-- 1H maces
+		[weaponTypes[6]] = true,	-- 2H maces
+		[weaponTypes[7]] = true,	-- polearms
+		[weaponTypes[8]] = true,	-- 1H swords
+		[weaponTypes[9]] = true,	-- 2H swords
+		--[weaponTypes[12]] = true,	-- misc
+		[weaponTypes[17]] = true,	-- fishing rod
+	},
+	["PRIEST"] = {
+		[armorTypes[1]] = true,		-- misc, e.g. tabards
+		[armorTypes[2]] = true,		-- cloth
+
+		[weaponTypes[5]] = true,	-- 1H maces
+		[weaponTypes[10]] = true,	-- staves
+		--[weaponTypes[12]] = true,	-- misc
+		[weaponTypes[13]] = true,	-- daggers
+		[weaponTypes[16]] = true,	-- wands
+		[weaponTypes[17]] = true,	-- fishing rod
+	},
+	["ROGUE"] = {
+		[armorTypes[1]] = true,		-- misc, e.g. tabards
+		[armorTypes[2]] = true,		-- cloth
+		[armorTypes[3]] = true,		-- leather
+
+		[weaponTypes[1]] = true,	-- 1H axes
+		[weaponTypes[3]] = true,	-- bows
+		[weaponTypes[4]] = true,	-- guns
+		[weaponTypes[5]] = true,	-- 1H maces
+		[weaponTypes[8]] = true,	-- 1H swords
+		[weaponTypes[11]] = true,	-- fist weapons
+		--[weaponTypes[12]] = true,	-- misc
+		[weaponTypes[13]] = true,	-- daggers
+		[weaponTypes[14]] = true,	-- thrown weapons
+		[weaponTypes[15]] = true,	-- crossbows
+		[weaponTypes[17]] = true,	-- fishing rod
+
+		[ammoTypes[1]] = true,		-- arrow
+		[ammoTypes[2]] = true,		-- bullet
+	},
+	["SHAMAN"] = {
+		[armorTypes[1]] = true,		-- misc, e.g. tabards
+		[armorTypes[2]] = true,		-- cloth
+		[armorTypes[3]] = true,		-- leather
+		[armorTypes[4]] = true,		-- mail
+		[armorTypes[6]] = true,		-- shields
+		[armorTypes[9]] = true,		-- totems
+
+		[weaponTypes[1]] = true,	-- 1H axes
+		[weaponTypes[2]] = true,	-- 2H axes
+		[weaponTypes[5]] = true,	-- 1H maces
+		[weaponTypes[6]] = true,	-- 2H maces
+		[weaponTypes[10]] = true,	-- staves
+		[weaponTypes[11]] = true,	-- fist weapons
+		--[weaponTypes[12]] = true,	-- misc
+		[weaponTypes[13]] = true,	-- daggers
+		[weaponTypes[17]] = true,	-- fishing rod
+	},
+	["WARLOCK"] = {
+		[armorTypes[1]] = true,		-- misc, e.g. tabards
+		[armorTypes[2]] = true,		-- cloth
+
+		[weaponTypes[8]] = true,	-- 1H swords
+		[weaponTypes[10]] = true,	-- staves
+		--[weaponTypes[12]] = true,	-- misc
+		[weaponTypes[13]] = true,	-- daggers
+		[weaponTypes[16]] = true,	-- wands
+		[weaponTypes[17]] = true,	-- fishing rod
+	},
+	["WARRIOR"] = {
+		[armorTypes[1]] = true,		-- misc, e.g. tabards
+		[armorTypes[2]] = true,		-- cloth
+		[armorTypes[3]] = true,		-- leather
+		[armorTypes[4]] = true,		-- mail
+		[armorTypes[5]] = true,		-- plate
+		[armorTypes[6]] = true,		-- shields
+
+		[weaponTypes[1]] = true,	-- 1H axes
+		[weaponTypes[2]] = true,	-- 2H axes
+		[weaponTypes[3]] = true,	-- bows
+		[weaponTypes[4]] = true,	-- guns
+		[weaponTypes[5]] = true,	-- 1H maces
+		[weaponTypes[6]] = true,	-- 2H maces
+		[weaponTypes[7]] = true,	-- polearms
+		[weaponTypes[8]] = true,	-- 1H swords
+		[weaponTypes[9]] = true,	-- 2H swords
+		[weaponTypes[10]] = true,	-- staves
+		[weaponTypes[11]] = true,	-- fist weapons
+		--[weaponTypes[12]] = true,	-- misc
+		[weaponTypes[13]] = true,	-- daggers
+		[weaponTypes[14]] = true,	-- thrown weapons
+		[weaponTypes[15]] = true,	-- crossbows
+		[weaponTypes[17]] = true,	-- fishing rod
+
+		[ammoTypes[1]] = true,		-- arrow
+		[ammoTypes[2]] = true,		-- bullet
+	},
+}
+
+BrokerGarbage.usableByAll = {
+	["INVTYPE_NECK"] = true,
+	["INVTYPE_FINGER"] = true,
+	["INVTYPE_TRINKET"] = true,
+	["INVTYPE_HOLDABLE"] = true,
+}
\ No newline at end of file
diff --git a/core.lua b/core.lua
new file mode 100644
index 0000000..72dba8a
--- /dev/null
+++ b/core.lua
@@ -0,0 +1,904 @@
+--[[ Copyright (c) 2010, ckaotik
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+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.
+Neither the name of ckaotik nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+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 OWNER 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. ]]--
+_, BrokerGarbage = ...
+
+-- Libraries & setting up the LDB
+-- ---------------------------------------------------------
+BrokerGarbage.PT = LibStub("LibPeriodicTable-3.1", true)	-- don't scream if LPT isn't present
+
+-- notation mix-up for Broker2FuBar to work
+local LDB = LibStub("LibDataBroker-1.1"):NewDataObject("Broker_Garbage", {
+    type	= "data source",
+    icon	= "Interface\\Icons\\achievement_bg_returnxflags_def_wsg",
+    label	= "Garbage",
+    text 	= "",
+
+    OnClick = function(...) BrokerGarbage:OnClick(...) end,
+    OnEnter = function(...) BrokerGarbage:Tooltip(...) end,
+})
+
+local function UpdateLDB()
+    BrokerGarbage.totalBagSpace, BrokerGarbage.totalFreeSlots = BrokerGarbage:GetBagSlots()
+
+    if BrokerGarbage.cheapestItems[1] then
+        LDB.text = BrokerGarbage:FormatString(BG_GlobalDB.LDBformat)
+    else
+        BrokerGarbage.cheapestItems[1] = nil
+        LDB.text = BrokerGarbage:FormatString(BG_GlobalDB.LDBNoJunk)
+    end
+end
+
+-- internal variables
+BrokerGarbage.optionsModules = {}	-- used for ordering/showing entries in the options panel
+local locked = false				-- set to true while selling stuff
+local sellValue = 0					-- represents the actual value that we sold stuff for
+local cost = 0						-- the amount of money that we repaired for
+
+-- Event Handler
+-- ---------------------------------------------------------
+local frame = CreateFrame("frame")
+local function eventHandler(self, event, ...)
+    if event == "PLAYER_ENTERING_WORLD" then
+        BrokerGarbage:CheckSettings()
+
+        -- some default values initialization
+        BrokerGarbage.isAtVendor = false
+        BrokerGarbage.totalBagSpace = 0
+        BrokerGarbage.totalFreeSlots = 0
+
+        -- inventory database
+        BrokerGarbage.itemsCache = {}
+        BrokerGarbage.clamInInventory = false
+        BrokerGarbage.containerInInventory = false
+
+        -- full inventory scan to start with
+        BrokerGarbage:ScanInventory()
+        frame:UnregisterEvent("PLAYER_ENTERING_WORLD")
+
+    elseif event == "BAG_UPDATE" then
+        -- whatever these weird arguments mean
+        if arg1 < 0 or arg1 > 4 then return end
+
+        BrokerGarbage:ScanInventoryContainer(arg1)	-- partial inventory scan on the relevant container
+
+    elseif event == "MERCHANT_SHOW" then
+        BrokerGarbage.isAtVendor = true
+
+        BrokerGarbage:UpdateRepairButton()
+        local disable = BrokerGarbage.disableKey[BG_GlobalDB.disableKey]
+        if not (disable and disable()) then
+            BrokerGarbage:AutoRepair()
+            BrokerGarbage:AutoSell()
+        end
+
+    elseif event == "MERCHANT_CLOSED" then
+        BrokerGarbage.isAtVendor = false
+
+        -- fallback unlock
+        if locked then
+            BrokerGarbage.isAtVendor = false
+            locked = false
+            BrokerGarbage:Debug("Fallback Unlock: Merchant window closed, scan lock released.")
+        end
+
+    elseif event == "AUCTION_HOUSE_CLOSED" then
+        -- Update cache auction values if needed
+        BrokerGarbage.itemsCache = {}
+
+    elseif (locked or cost ~=0) and event == "PLAYER_MONEY" then
+        -- regular unlock
+        -- wrong player_money event (resulting from repair, not sell)
+        if sellValue ~= 0 and cost ~= 0 and ((-1)*sellValue <= cost+2 and (-1)*sellValue >= cost-2) then
+            BrokerGarbage:Debug("Not yet ... Waiting for actual money change.")
+            return
+        end
+
+        if sellValue ~= 0 and cost ~= 0 and BG_GlobalDB.autoRepairAtVendor and BG_GlobalDB.autoSellToVendor then
+            -- repair & auto-sell
+            BrokerGarbage:Print(format(BrokerGarbage.locale.sellAndRepair,
+                    BrokerGarbage:FormatMoney(sellValue),
+                    BrokerGarbage:FormatMoney(cost),
+                    BrokerGarbage:FormatMoney(sellValue - cost)
+            ))
+            sellValue = 0
+            cost = 0
+
+        elseif cost ~= 0 and BG_GlobalDB.autoRepairAtVendor then
+            -- repair only
+            BrokerGarbage:Print(format(BrokerGarbage.locale.repair, BrokerGarbage:FormatMoney(cost)))
+            cost = 0
+
+        elseif sellValue ~= 0 and BG_GlobalDB.autoSellToVendor then
+            -- autosell only
+            BrokerGarbage:Print(format(BrokerGarbage.locale.sell, BrokerGarbage:FormatMoney(sellValue)))
+            sellValue = 0
+
+        end
+
+        locked = false
+        BrokerGarbage:Debug("Regular Unlock: Money received, scan lock released.")
+    end
+end
+
+-- register events
+frame:RegisterEvent("PLAYER_ENTERING_WORLD")
+-- frame:RegisterEvent("ADDON_LOADED")
+frame:RegisterEvent("BAG_UPDATE")
+frame:RegisterEvent("MERCHANT_SHOW")
+frame:RegisterEvent("MERCHANT_CLOSED")
+frame:RegisterEvent("AUCTION_HOUSE_CLOSED")
+frame:RegisterEvent("PLAYER_MONEY")
+
+frame:SetScript("OnEvent", eventHandler)
+
+-- Sell Icon
+-- ---------------------------------------------------------
+function BrokerGarbage:UpdateRepairButton(...)
+    if not BG_GlobalDB.showAutoSellIcon then
+        -- resets guild repair icon
+        MerchantGuildBankRepairButton:ClearAllPoints()
+        MerchantGuildBankRepairButton:SetPoint("LEFT", MerchantRepairAllButton, "RIGHT", 4, 0)
+
+        if _G["BrokerGarbage_SellIcon"] then
+            BrokerGarbage_SellIcon:Hide()
+        end
+        return
+    end
+
+    local junkValue = 0
+    for i = 0, 4 do
+        junkValue = junkValue + (BrokerGarbage.toSellValue[i] or 0)
+    end
+    local iconbutton
+    -- show auto-sell icon on vendor frame
+    if not _G["BrokerGarbage_SellIcon"] then
+        iconbutton = CreateFrame("Button", "BrokerGarbage_SellIcon", MerchantFrame)
+        -- iconbutton:Raise() -- iconbutton:SetFrameStrata("Dialog")
+        iconbutton:SetWidth(36); iconbutton:SetHeight(36)
+        iconbutton:SetNormalTexture("Interface\\Icons\\achievement_bg_returnxflags_def_wsg")
+        iconbutton:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square")
+        iconbutton:SetScript("OnClick", BrokerGarbage.AutoSell)
+        iconbutton:SetScript("OnEnter", function(self)
+            GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
+            local tiptext
+            local junkValue = 0
+            for i = 0, 4 do
+                junkValue = junkValue + (BrokerGarbage.toSellValue[i] or 0)
+            end
+            if junkValue ~= 0 then
+                tiptext = format(BrokerGarbage.locale.autoSellTooltip, BrokerGarbage:FormatMoney(junkValue))
+            else
+                tiptext = BrokerGarbage.locale.reportNothingToSell
+            end
+            GameTooltip:SetText(tiptext, nil, nil, nil, nil, true)
+        end)
+        iconbutton:SetScript("OnLeave", function() GameTooltip:Hide() end)
+    else
+        iconbutton = _G["BrokerGarbage_SellIcon"]
+    end
+
+    if CanMerchantRepair() then
+        if CanGuildBankRepair() then
+            MerchantGuildBankRepairButton:ClearAllPoints()
+            MerchantGuildBankRepairButton:SetPoint("BOTTOMRIGHT", MerchantBuyBackItemItemButton, "BOTTOMLEFT", -22, 4)
+            MerchantRepairAllButton:SetPoint("BOTTOMRIGHT", MerchantGuildBankRepairButton, "BOTTOMLEFT", -4, 0)
+            iconbutton:SetPoint("BOTTOMRIGHT", MerchantRepairItemButton, "BOTTOMLEFT", -4, 1)
+            iconbutton:SetWidth(30); iconbutton:SetHeight(30)
+        else
+            iconbutton:SetWidth(36); iconbutton:SetHeight(36)
+            iconbutton:SetPoint("BOTTOMRIGHT", MerchantRepairItemButton, "BOTTOMLEFT", -2, 0)
+        end
+
+        iconbutton:Show()
+    else
+        iconbutton:SetPoint("BOTTOMRIGHT", MerchantBuyBackItemItemButton, "BOTTOMLEFT", -18, 0)
+        iconbutton:Show()
+    end
+    MerchantRepairText:Hide()
+
+    if junkValue ~= 0 then
+        _G["BrokerGarbage_SellIcon"]:GetNormalTexture():SetDesaturated(false)
+    else
+        _G["BrokerGarbage_SellIcon"]:GetNormalTexture():SetDesaturated(true)
+    end
+end
+hooksecurefunc("MerchantFrame_UpdateRepairButtons", BrokerGarbage.UpdateRepairButton)
+
+-- Tooltip
+-- ---------------------------------------------------------
+function BrokerGarbage:Tooltip(self)
+    local colNum, lineNum
+    if BG_GlobalDB.showSource then
+        BrokerGarbage.tt = LibStub("LibQTip-1.0"):Acquire("BrokerGarbage_TT", 4, "LEFT", "RIGHT", "RIGHT", "CENTER")
+        colNum = 4
+    else
+        BrokerGarbage.tt = LibStub("LibQTip-1.0"):Acquire("BrokerGarbage_TT", 3, "LEFT", "RIGHT", "RIGHT")
+        colNum = 3
+    end
+    BrokerGarbage.tt:Clear()
+
+    -- font settings
+    local tooltipHFont = CreateFont("TooltipHeaderFont")
+    tooltipHFont:SetFont(GameTooltipText:GetFont(), 14)
+    tooltipHFont:SetTextColor(1,1,1)
+
+    local tooltipFont = CreateFont("TooltipFont")
+    tooltipFont:SetFont(GameTooltipText:GetFont(), 11)
+    tooltipFont:SetTextColor(255/255,176/255,25/255)
+
+    -- add header lines
+    BrokerGarbage.tt:SetHeaderFont(tooltipHFont)
+    BrokerGarbage.tt:AddHeader('Broker_Garbage', '', BrokerGarbage.locale.headerRightClick)
+
+    -- add info lines
+    BrokerGarbage.tt:SetFont(tooltipFont)
+    BrokerGarbage.tt:AddLine(BrokerGarbage.locale.headerShiftClick, '', BrokerGarbage.locale.headerCtrlClick)
+    BrokerGarbage.tt:AddSeparator(2)
+
+    -- add clam information
+    if IsAddOnLoaded("Broker_Garbage-LootManager") and (
+        (BGLM_GlobalDB.openContainers and BrokerGarbage.containerInInventory) or
+        (BGLM_GlobalDB.openClams and BrokerGarbage.clamInInventory)) then
+
+        if BGLM_GlobalDB.openContainers and BrokerGarbage.containerInInventory then
+            lineNum = BrokerGarbage.tt:AddLine()
+            BrokerGarbage.tt:SetCell(lineNum, 1, BrokerGarbage_LootManager.locale.openPlease, tooltipFont, "CENTER", colNum)
+        end
+        if BGLM_GlobalDB.openClams and BrokerGarbage.clamInInventory then
+            lineNum = BrokerGarbage.tt:AddLine()
+            BrokerGarbage.tt:SetCell(lineNum, 1, BrokerGarbage_LootManager.locale.openClams, tooltipFont, "CENTER", colNum)
+        end
+        BrokerGarbage.tt:AddSeparator(2)
+    end
+
+    -- shows up to n lines of deletable items
+    local cheapList = BrokerGarbage.cheapestItems or {}
+    for i = 1, #cheapList do
+        -- adds lines: itemLink, count, itemPrice, source
+        lineNum = BrokerGarbage.tt:AddLine(
+            select(2,GetItemInfo(cheapList[i].itemID)),
+            cheapList[i].count,
+            BrokerGarbage:FormatMoney(cheapList[i].value),
+            (BG_GlobalDB.showSource and BrokerGarbage.tag[cheapList[i].source] or nil))
+        BrokerGarbage.tt:SetLineScript(lineNum, "OnMouseDown", BrokerGarbage.OnClick, cheapList[i])
+    end
+    if lineNum == nil then
+        BrokerGarbage.tt:AddLine(BrokerGarbage.locale.noItems, '', BrokerGarbage.locale.increaseTreshold)
+    end
+
+    -- add statistics information
+    if (BG_GlobalDB.showLost and BG_LocalDB.moneyLostByDeleting ~= 0)
+        or (BG_GlobalDB.showEarned and BG_LocalDB.moneyEarned ~= 0) then
+        BrokerGarbage.tt:AddSeparator(2)
+
+        if BG_LocalDB.moneyLostByDeleting ~= 0 then
+            BrokerGarbage.tt:AddLine(BrokerGarbage.locale.moneyLost, '', BrokerGarbage:FormatMoney(BG_LocalDB.moneyLostByDeleting))
+        end
+        if BG_LocalDB.moneyEarned ~= 0 then
+            BrokerGarbage.tt:AddLine(BrokerGarbage.locale.moneyEarned, '', BrokerGarbage:FormatMoney(BG_LocalDB.moneyEarned))
+        end
+    end
+
+    -- Use smart anchoring code to anchor the tooltip to our frame
+    BrokerGarbage.tt:SmartAnchorTo(self)
+    BrokerGarbage.tt:SetAutoHideDelay(0.25, self)
+
+    -- Show it, et voilà !
+    BrokerGarbage.tt:Show()
+    BrokerGarbage.tt:UpdateScrolling(BG_GlobalDB.tooltipMaxHeight)
+end
+
+-- onClick function - works for both, the LDB plugin -and- tooltip lines
+function BrokerGarbage:OnClick(itemTable, button)
+    -- handle LDB clicks seperately
+    local LDBclick = false
+    if not itemTable.itemID or type(itemTable.itemID) ~= "number" then
+        BrokerGarbage:Debug("Click on LDB")
+        itemTable = BrokerGarbage.cheapestItems[1]
+        LDBclick = true
+    end
+
+    -- handle different clicks
+    if itemTable and IsShiftKeyDown() then
+        -- delete or sell item, depending on if we're at a vendor or not
+        if BrokerGarbage.isAtVendor and itemTable.value > 0 then
+            BrokerGarbage:Debug("At vendor, selling "..itemTable.itemID)
+            BG_GlobalDB.moneyEarned	= BG_GlobalDB.moneyEarned + itemTable.value
+            BG_LocalDB.moneyEarned 	= BG_LocalDB.moneyEarned + itemTable.value
+            BG_GlobalDB.itemsSold 	= BG_GlobalDB.itemsSold + itemTable.count
+
+            ClearCursor()
+            UseContainerItem(itemTable.bag, itemTable.slot)
+        else
+            BrokerGarbage:Debug("Not at vendor", "Deleting")
+            BrokerGarbage:Delete(itemTable)
+        end
+
+    --[[elseif itemTable and IsAltKeyDown() and IsControlKeyDown() then
+        -- disenchant
+        local itemLink = select(2, GetItemInfo(itemTable.itemID))
+        if BrokerGarbage:CanDisenchant(itemLink, true) then
+            -- Disenchant: 13262
+        end]]--
+
+    elseif itemTable and IsControlKeyDown() then
+        -- add to exclude list
+        if not BG_LocalDB.exclude[itemTable.itemID] then
+            BG_LocalDB.exclude[itemTable.itemID] = true
+        end
+        BrokerGarbage:Print(format(BrokerGarbage.locale.addedTo_exclude, select(2,GetItemInfo(itemTable.itemID))))
+        BrokerGarbage.itemsCache = {}
+
+        if BrokerGarbage.optionsLoaded then
+            BrokerGarbage:ListOptionsUpdate("exclude")
+        end
+        BrokerGarbage:ScanInventory()
+
+    elseif itemTable and IsAltKeyDown() then
+        -- add to force vendor price list
+        BG_GlobalDB.forceVendorPrice[itemTable.itemID] = true
+        BrokerGarbage:Print(format(BrokerGarbage.locale.addedTo_forceVendorPrice, select(2,GetItemInfo(itemTable.itemID))))
+        BrokerGarbage.itemsCache = {}
+
+        if BrokerGarbage.optionsLoaded then
+            BrokerGarbage:ListOptionsUpdate("forceprice")
+        end
+        BrokerGarbage:ScanInventory()
+
+    elseif button == "RightButton" then
+        -- open config
+        BrokerGarbage:OptionsFirstLoad()
+        InterfaceOptionsFrame_OpenToCategory(BrokerGarbage.options)
+
+    elseif LDBclick then
+        -- click on the LDB to rescan
+        BrokerGarbage:ScanInventory()
+    end
+
+    UpdateLDB()
+end
+
+-- Item Value Calculation
+-- ---------------------------------------------------------
+-- calculates the value of a stack/partial stack of an item
+function BrokerGarbage:GetItemValue(item, count)
+    local itemID
+    if item and type(item) == "number" then
+        itemID = item
+
+    elseif item and type(item) == "string" then
+        itemID = BrokerGarbage:GetItemID(item)
+
+    else
+        -- invalid argument
+        BrokerGarbage:Debug("GetItemValue: Invalid argument "..(item or "<none>").."supplied.")
+        return nil
+    end
+
+    if BrokerGarbage:GetCached(itemID) then
+        return BrokerGarbage:GetCached(itemID).value * (count or 1)
+    else
+        local value = BrokerGarbage:GetSingleItemValue(item)
+        return value and value * (count or 1) or nil
+    end
+end
+
+-- returns which of the items values is the highest (value, type)
+function BrokerGarbage:GetSingleItemValue(item)
+    local itemID, itemLink
+    if item and type(item) == "number" then
+        itemID = item
+        itemLink = select(2, GetItemInfo(itemID))
+
+    elseif item and type(item) == "string" then
+        itemID = BrokerGarbage:GetItemID(item)
+        itemLink = item
+    end
+
+    if not itemID or not itemLink then
+        -- invalid argument
+        BrokerGarbage:Print("Error! GetSingleItemValue: Invalid argument "..(item or "<none>").." supplied.")
+        return nil
+    end
+
+    local canDE = BrokerGarbage:CanDisenchant(itemLink)
+    local _, _, itemQuality, _, _, _, _, _, _, _, vendorPrice = GetItemInfo(itemID)
+    local auctionPrice, disenchantPrice, source
+
+    -- gray items on the AH?
+    if itemQuality == 0 then
+        return vendorPrice, BrokerGarbage.VENDOR
+    end
+
+    -- calculate auction value
+    if IsAddOnLoaded("Auctionator") then
+        BrokerGarbage.auctionAddon = "Auctionator"
+        auctionPrice = Atr_GetAuctionBuyout(itemLink)
+        disenchantPrice = canDE and Atr_GetDisenchantValue(itemLink)
+
+    elseif IsAddOnLoaded("AuctionLite") then
+        BrokerGarbage.auctionAddon = "AuctionLite"
+        auctionPrice = AuctionLite:GetAuctionValue(itemLink)
+        disenchantPrice = canDE and AuctionLite:GetDisenchantValue(itemLink)
+
+    elseif IsAddOnLoaded("WOWEcon_PriceMod") then
+        BrokerGarbage.auctionAddon = "WoWecon"
+        auctionPrice = Wowecon.API.GetAuctionPrice_ByLink(itemLink)
+
+        if canDE then
+            disenchantPrice = 0
+            local DEData = Wowecon.API.GetDisenchant_ByLink(itemLink)
+            for i,data in pairs(DEData) do
+                -- data[1] = itemLink, data[2] = quantity, data[3] = chance
+                disenchantPrice = disenchantPrice + (Wowecon.API.GetAuctionPrice_ByLink(data[1]) * data[2] * data[3])
+            end
+            disenchantPrice = canDE and math.floor(disenchantPrice)
+        end
+
+    elseif IsAddOnLoaded("Auc-Advanced") then
+        BrokerGarbage.auctionAddon = "Auc-Advanced"
+        auctionPrice = AucAdvanced.API.GetMarketValue(itemLink)
+
+        if canDE and IsAddOnLoaded("Enchantrix") then
+            disenchantPrice = 0
+            local itemType
+            local weaponString, armorString = GetAuctionItemClasses()
+            if select(6, GetItemInfo(itemID)) == weaponString then
+                itemType = 2
+            else
+                itemType = 4
+            end
+
+            local itemLevel = select(4, GetItemInfo(itemID))
+            local enchItemQuality = Enchantrix.Constants.baseDisenchantTable[itemQuality]
+            if enchItemQuality then
+                while not enchItemQuality[itemType][itemLevel] and itemLevel < 500 do
+                    itemLevel = itemLevel + 1
+                end
+                DEMats = Enchantrix.Constants.baseDisenchantTable[itemQuality][itemType][itemLevel]
+
+                if DEMats then
+                    local item, chance, amount, itemVal
+                    for i = 1, #DEMats do
+                        item = DEMats[i][1]
+                        chance = DEMats[i][2]
+                        amount = DEMats[i][3]
+
+                        itemVal = select(2, GetItemInfo(item))
+                        itemVal = AucAdvanced.API.GetMarketValue(itemLink) or 0
+
+                        disenchantPrice = disenchantPrice + (itemVal * chance * amount)
+                    end
+                    disenchantPrice = math.floor(disenchantPrice)
+                else
+                    BrokerGarbage:Debug("Tried to get Enchantrix value of " .. itemLink .. " but failed.")
+                    disenchantPrice = nil
+                end
+            else
+                BrokerGarbage:Debug("Invalid item quality for Enchantrix values of " .. itemLink .. ".")
+                disenchantPrice = nil
+            end
+        end
+
+    else
+        if GetAuctionBuyout then
+            BrokerGarbage.auctionAddon = BrokerGarbage.locale.unknown
+            auctionPrice = GetAuctionBuyout(itemLink)
+        else
+            BrokerGarbage.auctionAddon = BrokerGarbage.locale.na
+        end
+        disenchantPrice = canDE and GetDisenchantValue and GetDisenchantValue(itemLink) or nil
+    end
+
+    -- simply return the highest value price
+    local maximum = math.max((disenchantPrice or 0), (auctionPrice or 0), (vendorPrice or 0))
+    if vendorPrice and maximum == vendorPrice then
+        return vendorPrice, BrokerGarbage.VENDOR
+    elseif auctionPrice and maximum == auctionPrice then
+        return auctionPrice, BrokerGarbage.AUCTION
+    elseif disenchantPrice and maximum == disenchantPrice then
+        return disenchantPrice, BrokerGarbage.DISENCHANT
+    else
+        return nil, nil
+    end
+end
+
+-- finds all occurences of the given item and returns the least important location
+function BrokerGarbage:FindSlotToDelete(itemID, ignoreFullStack)
+    local locations = {}
+    local _, _, _, _, _, _, _, maxStack = GetItemInfo(itemID)
+
+    local numSlots, freeSlots, ratio, bagType
+    for container = 0,4 do
+        numSlots = GetContainerNumSlots(container)
+        freeSlots, bagType = GetContainerFreeSlots(container)
+        freeSlots = freeSlots and #freeSlots or 0
+
+        if numSlots then
+            ratio = freeSlots/numSlots
+
+            for slot = 1, numSlots do
+                local _,count,_,_,_,_,link = GetContainerItemInfo(container, slot)
+
+                if link and BrokerGarbage:GetItemID(link) == itemID then
+                    if not ignoreFullStack or (ignoreFullStack and count < maxStack) then
+                        -- found one
+                        table.insert(locations, {
+                            slot = slot,
+                            bag = container,
+                            count = count,
+                            ratio = ratio,
+                            bagType = (bagType or 0)
+                        })
+                    end
+                end
+            end
+        end
+    end
+
+    -- recommend the location with the largest count or ratio that is NOT a specialty bag
+    table.sort(locations, function(a,b)
+        if a.bagType ~= b.bagType then
+            return a.bagType == 0
+        else
+            if a.count == b.count then
+                return a.ratio > b.ratio
+            else
+                return a.count < b.count
+            end
+        end
+    end)
+    return locations
+end
+
+-- deletes the item in a given location of your bags
+function BrokerGarbage:Delete(item, position)
+    local itemID, itemCount, cursorType
+
+    if type(item) == "string" and item == "cursor" then
+        -- item on the cursor
+        cursorType, itemID = GetCursorInfo()
+        if cursorType ~= "item" then
+            BrokerGarbage:Print("Error! Trying to delete an item from the cursor, but there is none.")
+            return
+        end
+        itemCount = position	-- second argument is the item count
+
+    elseif type(item) == "table" then
+        -- item given as an itemTable
+        itemID = item.itemID
+        position = {item.bag, item.slot}
+
+    elseif type(item) == "number" then
+        -- item given via its itemID
+        itemID = item
+
+    elseif item then
+        -- item given via its itemLink
+        itemID = BrokerGarbage:GetItemID(item)
+    else
+        BrokerGarbage:Print("Error! BrokerGarbage:Delete() no argument supplied.")
+        return
+    end
+
+    -- security check
+    if not cursorType and GetContainerItemID(position[1] or item.bag, position[2] or item.slot) ~= itemID then
+        BrokerGarbage:Print("Error! Item to be deleted is not the expected item.")
+        return
+    end
+
+    -- make sure there is nothing unwanted on the cursor
+    if not cursorType then
+        ClearCursor()
+    end
+
+    if not cursorType and (not position or type(position) ~= "table") then
+        BrokerGarbage:Print("Error! No position given to delete from.")
+        return
+
+    else
+        _, itemCount = GetContainerItemInfo(position[1], position[2])
+    end
+
+    -- actual deleting happening after this
+    securecall(PickupContainerItem, position[1], position[2])
+    securecall(DeleteCursorItem)					-- comment this line to prevent item deletion
+
+    local itemValue = (BrokerGarbage:GetCached(itemID).value or 0) * itemCount	-- if an item is unknown to the cache, statistics will not change
+    -- statistics
+    BG_GlobalDB.itemsDropped 		= BG_GlobalDB.itemsDropped + itemCount
+    BG_GlobalDB.moneyLostByDeleting	= BG_GlobalDB.moneyLostByDeleting + itemValue
+    BG_LocalDB.moneyLostByDeleting 	= BG_LocalDB.moneyLostByDeleting + itemValue
+
+    local _, itemLink = GetItemInfo(itemID)
+    BrokerGarbage:Print(format(BrokerGarbage.locale.itemDeleted, itemLink, itemCount))
+end
+
+-- Inventory Scanning
+-- ---------------------------------------------------------
+-- only used as a shortcut to cache any unknown item in the whole inventory
+function BrokerGarbage:ScanInventory()
+    for container = 0,4 do
+        BrokerGarbage:ScanInventoryContainer(container)
+    end
+end
+
+-- scans your inventory bags for possible junk items and updates LDB display
+function BrokerGarbage:ScanInventoryContainer(container)
+    -- container doesn't exist or cannot be scanned
+    if not GetContainerNumSlots(container) then return end
+
+    local numSlots = GetContainerNumSlots(container)
+    BrokerGarbage.toSellValue[container] = 0
+
+    for slot = 1, numSlots do
+        local itemID = GetContainerItemID(container,slot)
+        local item = BrokerGarbage:GetCached(itemID)
+
+        if itemID and item then
+            -- update toSellValue
+            if item.classification == BrokerGarbage.VENDORLIST or
+                (item.classification == BrokerGarbage.UNUSABLE and BG_GlobalDB.sellNotWearable and item.quality <= BG_GlobalDB.sellNWQualityTreshold) or
+                (BG_GlobalDB.autoSellIncludeItems and item.classification == BrokerGarbage.INCLUDE) or
+                (item.classification ~= BrokerGarbage.EXCLUDE and item.quality == 0) then
+
+                local itemCount = select(2, GetContainerItemInfo(container, slot))
+                BrokerGarbage.toSellValue[container] = BrokerGarbage.toSellValue[container] + item.value * itemCount
+            end
+        end
+    end
+
+    BrokerGarbage:GetCheapest()
+    UpdateLDB()
+end
+
+-- Find Cheap Items
+-- ---------------------------------------------------------
+local function TableSort(a, b)
+    -- put included items even prior to forced vendor price items
+    if (a.source == b.source) or (a.source ~= BrokerGarbage.INCLUDE and b.source ~= BrokerGarbage.INCLUDE) then
+        if a.value == b.value then
+            if a.itemID == b.itemID then
+                return a.count < b.count
+            else
+                return a.itemID < b.itemID
+            end
+        else
+            return a.value < b.value
+        end
+    else
+        return a.source == BrokerGarbage.INCLUDE
+    end
+end
+
+-- returns the n cheapest items in your bags  in a table
+function BrokerGarbage:GetCheapest(number)
+    if not number then number = BG_GlobalDB.tooltipNumItems end
+    local cheapestItems = {}
+    local numSlots, count, quality, canOpen, itemLink, itemID, stackSize
+    local item, maxValue, insert
+
+    BrokerGarbage.clamInInventory = false
+    BrokerGarbage.containerInInventory = false
+
+    for container = 0, 4 do
+        numSlots = GetContainerNumSlots(container)
+        if numSlots then
+            for slot = 1, numSlots do
+                -- "Gather Information"
+                _, count, _, _, _, canOpen, itemLink = GetContainerItemInfo(container, slot)
+                itemID = BrokerGarbage:GetItemID(itemLink)
+
+                if itemLink and BrokerGarbage:GetCached(itemID) then
+                    item = BrokerGarbage:GetCached(itemID)
+
+                    insert = true
+                    local value = count * item.value
+                    local classification = item.classification
+
+                    -- remember lootable items
+                    if canOpen or (item and item.isClam) then
+                        if item.isClam then
+                            BrokerGarbage.clamInInventory = true
+                        else
+                            BrokerGarbage.containerInInventory = true
+                        end
+                    end
+
+                    -- handle different types of items
+                    if not item or item.classification == BrokerGarbage.EXCLUDE then
+                        insert = false
+
+                    elseif item.classification == BrokerGarbage.LIMITED then
+                        local saveStacks = ceil(item.limit/(item.stackSize or 1))
+                        local locations = BrokerGarbage:FindSlotToDelete(itemID)
+
+                        if #locations > saveStacks then
+                            local itemCount = 0
+
+                            for i = #locations, 1, -1 do
+                                if itemCount < item.limit then
+                                    -- keep this amount
+                                    itemCount = itemCount + locations[i].count
+                                    if locations[i].bag == container and locations[i].slot == slot then
+                                        insert = false
+                                    end
+                                else
+                                    break;
+                                end
+                            end
+                        else
+                            insert = false
+                        end
+                        if insert then
+                            -- treat like a regular include item
+                            value = 0
+                        end
+
+                    elseif item.classification == BrokerGarbage.DISENCHANT or item.classification == BrokerGarbage.AUCTION then
+                        -- check if item is really soulbound
+                        if BrokerGarbage:IsItemSoulbound(itemID, container, slot) then
+                            -- use vendor price instead
+                            value = select(11, GetItemInfo(itemID))
+                            classification = BrokerGarbage.VENDOR
+                        end
+
+                    elseif item.classification == BrokerGarbage.UNUSABLE then
+                        if not BG_GlobalDB.sellNotWearable or item.quality > BG_GlobalDB.sellNWQualityTreshold then
+                            insert = false
+                        end
+
+                    elseif item.classification == BrokerGarbage.INCLUDE then
+                        value = 0
+
+                    elseif item.classification == BrokerGarbage.VENDORLIST or item.classification == BrokerGarbage.VENDOR then
+                        value = select(11, GetItemInfo(itemID))
+                    end
+
+                    if item.quality > BG_GlobalDB.dropQuality and
+                        not (classification == BrokerGarbage.INCLUDE or classification == BrokerGarbage.VENDORLIST) then
+                        -- include and vendor list items should always be displayed
+                        insert = false
+
+                    elseif value == 0 and BG_GlobalDB.hideZeroValue and classification == BrokerGarbage.VENDOR then
+                        insert = false
+                    end
+
+                    -- insert data
+                    if insert then
+                        maxValue = cheapestItems[number] and cheapestItems[number].value or nil
+                        if not maxValue then
+                            tinsert(cheapestItems, {
+                                itemID = itemID,
+                                bag = container,
+                                slot = slot,
+                                count = count,
+                                value = value,
+                                source = classification,
+                            })
+                        elseif value < maxValue then
+                            -- update last item
+                            cheapestItems[number].itemID = itemID
+                            cheapestItems[number].bag = container
+                            cheapestItems[number].slot = slot
+                            cheapestItems[number].count = count
+                            cheapestItems[number].value = value
+                            cheapestItems[number].source = classification
+                        end
+                        table.sort(cheapestItems, TableSort)
+                    end
+                end
+            end
+        end
+    end
+
+    BrokerGarbage.cheapestItems = cheapestItems
+    return cheapestItems
+end
+
+
+-- special functionality
+-- ---------------------------------------------------------
+-- when at a merchant this will clear your bags of junk (gray quality) and items on your autoSellList
+function BrokerGarbage:AutoSell()
+    if not BrokerGarbage.isAtVendor then return end
+
+    if self == _G["BrokerGarbage_SellIcon"] then
+        BrokerGarbage:Debug("AutoSell was triggered by a click on Sell Icon.")
+
+    elseif not BG_GlobalDB.autoSellToVendor then
+        -- we're not supposed to sell. jump out
+        return
+    end
+    local sell, classification
+    local item, itemID, value, count, numSlots
+    sellValue = 0
+
+    for container = 0, 4 do
+        numSlots = GetContainerNumSlots(container)
+        if numSlots then
+            for slot = 1, numSlots do
+                _, count, _, _, _, _, itemLink = GetContainerItemInfo(container, slot)
+                itemID 	= BrokerGarbage:GetItemID(itemLink)
+
+                if itemLink and BrokerGarbage:GetCached(itemID) then
+                    item 	= BrokerGarbage:GetCached(itemID)
+                    value 	= item.value
+
+                    sell = false
+                    -- various cases that have us sell this item
+                    if item.classification == BrokerGarbage.UNUSABLE then
+                        if BG_GlobalDB.sellNotWearable and item.quality <= BG_GlobalDB.sellNWQualityTreshold then
+                            sell = true
+                        end
+
+                    elseif item.classification == BrokerGarbage.INCLUDE and BG_GlobalDB.autoSellIncludeItems then
+                        sell = true
+
+                    elseif item.classification == BrokerGarbage.VENDORLIST then
+                        sell = true
+
+                    elseif item.classification ~= BrokerGarbage.EXCLUDE and item.quality == 0 then
+                        sell = true
+                    end
+
+                    -- Actual Selling
+                    if value ~= 0 and sell then
+                        if not locked then
+                            BrokerGarbage:Debug("Inventory scans locked")
+                            locked = true
+                        end
+
+                        BrokerGarbage:Debug("Selling", itemID)
+                        ClearCursor()
+                        UseContainerItem(container, slot)
+
+                        sellValue = sellValue + (count * value)
+                        -- update statistics
+                        BG_GlobalDB.moneyEarned = BG_GlobalDB.moneyEarned + (count * value)
+                        BG_LocalDB.moneyEarned = BG_LocalDB.moneyEarned + (count * value)
+                        BG_GlobalDB.itemsSold = BG_GlobalDB.itemsSold + count
+                    end
+                end
+            end
+        end
+    end
+
+    -- create output if needed
+    if self == _G["BrokerGarbage_SellIcon"] then
+        if sellValue == 0 and BG_GlobalDB.reportNothingToSell then
+            BrokerGarbage:Print(BrokerGarbage.locale.reportNothingToSell)
+        elseif sellValue ~= 0 and not BG_GlobalDB.autoSellToVendor then
+            BrokerGarbage:Print(format(BrokerGarbage.locale.sell, BrokerGarbage:FormatMoney(sellValue)))
+        end
+        _G["BrokerGarbage_SellIcon"]:GetNormalTexture():SetDesaturated(true)
+    end
+end
+
+-- automatically repair at a vendor
+function BrokerGarbage:AutoRepair()
+    if BG_GlobalDB.autoRepairAtVendor and CanMerchantRepair() then
+        cost = GetRepairAllCost()
+        local money = GetMoney()
+
+        if cost > 0 and CanGuildBankRepair() and GetGuildBankWithdrawMoney() >= cost and not BG_LocalDB.neverRepairGuildBank then
+            -- guild repair if we're allowed to and the user wants it
+            RepairAllItems(1)
+        elseif cost > 0 and money >= cost then
+            -- not enough allowance to guild bank repair, pay ourselves
+            RepairAllItems(0)
+        elseif cost > 0 then
+            -- oops. give us your moneys!
+            BrokerGarbage:Print(format(BrokerGarbage.locale.couldNotRepair, BrokerGarbage:FormatMoney(cost)))
+        end
+    else
+        cost = 0
+    end
+end
\ No newline at end of file
diff --git a/helper.lua b/helper.lua
new file mode 100644
index 0000000..0ddc471
--- /dev/null
+++ b/helper.lua
@@ -0,0 +1,628 @@
+-- to enable debug mode, run: /run BG_GlobalDB.debug = true
+-- to disable debug mode (disabled by default) run: /run BG_GlobalDB.debug = false
+_, BrokerGarbage = ...
+
+-- Addon Basics
+-- ---------------------------------------------------------
+-- output functions
+function BrokerGarbage:Print(text)
+	DEFAULT_CHAT_FRAME:AddMessage("|cffee6622Broker_Garbage|r "..text)
+end
+
+-- prints debug messages only when debug mode is active
+function BrokerGarbage:Debug(...)
+  if BG_GlobalDB.debug then
+	BrokerGarbage:Print("! "..string.join(", ", tostringall(...)))
+  end
+end
+
+-- warn the player by displaying a warning message
+function BrokerGarbage:Warning(text)
+	if BG_GlobalDB.showWarnings and time() - lastReminder >= 5 then
+		BrokerGarbage:Print("|cfff0000"..BrokerGarbage.locale.warningMessagePrefix.."!|r ", text)
+		lastReminder = time()
+	end
+end
+
+-- check if a given value can be found in a table
+function BrokerGarbage:Find(table, value)
+	for k, v in pairs(table) do
+		if (v == value) then return true end
+	end
+	return false
+end
+
+-- joins any number of non-basic index tables together, one after the other. elements within the input-tables will get mixed, though
+function BrokerGarbage:JoinTables(...)
+	local result = {}
+	local tab
+
+	for i=1,select("#", ...) do
+		tab = select(i, ...)
+		if tab then
+			for index, value in pairs(tab) do
+				result[index] = value
+			end
+		end
+	end
+
+	return result
+end
+
+-- joins numerically indexed tables
+function BrokerGarbage:JoinSimpleTables(...)
+	local result = {}
+	local tab, i, j
+
+	for i=1,select("#", ...) do
+		tab = select(i, ...)
+		if tab then
+			for _, value in pairs(tab) do
+				tinsert(result, value)
+			end
+		end
+	end
+
+	return result
+end
+
+-- counts table entries. for numerically indexed tables, use #table
+function BrokerGarbage:Count(table)
+  local i = 0
+  for _, _ in pairs(table) do i = i + 1 end
+  return i
+end
+
+-- Saved Variables Management / API
+-- ---------------------------------------------------------
+function BrokerGarbage:CheckSettings()
+	-- check for settings
+	local first
+	if not BG_GlobalDB then BG_GlobalDB = {}; first = true end
+	for key, value in pairs(BrokerGarbage.defaultGlobalSettings) do
+		if BG_GlobalDB[key] == nil then
+			BG_GlobalDB[key] = value
+		end
+	end
+
+	if not BG_LocalDB then
+		BG_LocalDB = {}
+		if not first then first = false end
+	end
+	for key, value in pairs(BrokerGarbage.defaultLocalSettings) do
+		if BG_LocalDB[key] == nil then
+			BG_LocalDB[key] = value
+		end
+	end
+
+	if first ~= nil then
+		BrokerGarbage:CreateDefaultLists(first)
+	end
+
+	-- update LDB string for older versions
+	if BG_GlobalDB.LDBformat == "%1$sx%2$d (%3$s)" or string.find(BG_GlobalDB.LDBformat, "%%%d%$[sd]") then
+		BG_GlobalDB.LDBformat = BrokerGarbage.defaultGlobalSettings.LDBformat
+		BrokerGarbage:Print(BrokerGarbage.locale.resetLDB)
+	end
+end
+
+-- inserts some basic list settings
+function BrokerGarbage:CreateDefaultLists(global)
+	if global then
+		BG_GlobalDB.include[46069] = true											-- argentum lance
+		if BG_GlobalDB.include[6265] == nil then BG_GlobalDB.include[6265] = 20 end	-- soulshards
+		BG_GlobalDB.include["Consumable.Water.Conjured"] = true
+		BG_GlobalDB.forceVendorPrice["Consumable.Food.Edible.Basic"] = true
+		BG_GlobalDB.forceVendorPrice["Consumable.Water.Basic"] = true
+	end
+
+	-- tradeskills
+	local tradeSkills = BrokerGarbage:CheckSkills() or {}
+	local numSkills = #tradeSkills
+	for i = 1, numSkills do
+		local englishSkill = BrokerGarbage:UnLocalize(tradeSkills[i][1])
+		if englishSkill then
+			if tradeSkills[i][2] then
+				BG_LocalDB.exclude["Tradeskill.Gather."..englishSkill] = true
+				if englishSkill ~= "Herbalism" then
+					BG_LocalDB.exclude["Tradeskill.Tool."..englishSkill] = true
+				end
+			else
+				BG_LocalDB.exclude["Tradeskill.Mat.ByProfession."..englishSkill] = true
+				BG_LocalDB.exclude["Tradeskill.Tool."..englishSkill] = true
+			end
+		end
+	end
+
+	-- class specific
+	if BrokerGarbage.playerClass == "HUNTER" then
+		BG_LocalDB.exclude["Misc.Reagent.Ammo"] = true
+
+	elseif BrokerGarbage.playerClass == "WARRIOR" or BrokerGarbage.playerClass == "ROGUE" or BrokerGarbage.playerClass == "DEATHKNIGHT" then
+		BG_LocalDB.autoSellList["Consumable.Water"] = true
+
+	elseif BrokerGarbage.playerClass == "SHAMAN" then
+		if not BG_LocalDB.include[17058] then BG_LocalDB.include[17058] = 20 end	-- fish oil
+		if not BG_LocalDB.include[17057] then BG_LocalDB.include[17057] = 20 end	-- scales
+	end
+	BG_LocalDB.exclude["Misc.Reagent.Class."..string.gsub(string.lower(BrokerGarbage.playerClass), "^.", string.upper)] = true
+
+	BrokerGarbage:Print(BrokerGarbage.locale.listsUpdatedPleaseCheck)
+	BrokerGarbage.itemsCache = {}
+	BrokerGarbage:ScanInventory()
+end
+
+-- returns options for plugin use
+function BrokerGarbage:GetOption(optionName, global)
+	if global == nil then
+		return BG_LocalDB[optionName], BG_GlobalDB[optionName]
+	elseif global == false then
+		return BG_LocalDB[optionName]
+	else
+		return BG_GlobalDB[optionName]
+	end
+end
+
+-- Helpers
+-- ---------------------------------------------------------
+-- returns an item's itemID
+function BrokerGarbage:GetItemID(itemLink)
+	if not itemLink then return end
+	local itemID = string.gsub(itemLink, ".-Hitem:([0-9]*):.*", "%1")
+	return tonumber(itemID)
+end
+
+-- returns original English names for non-English locales
+function BrokerGarbage:UnLocalize(skillName)
+	if not skillName then return nil end
+	if string.find(GetLocale(), "en") then return skillName end
+
+	-- crafting skills
+	local searchString = ""
+	for i=2,12 do
+		searchString = select(i, GetAuctionItemSubClasses(9))
+		if string.find(skillName, searchString) then
+			return BrokerGarbage.tradeSkills[i]
+		end
+	end
+
+	-- gathering skills
+	local skill
+	if skillName == GetSpellInfo(8613) then
+		skill = "Skinning"
+	elseif skillName == GetSpellInfo(2575) then
+		skill = "Mining"
+	else
+		-- herbalism sucks
+		searchString = select(6, GetAuctionItemSubClasses(6))
+		if string.find(skillName, searchString) then
+			skill = "Herbalism"
+		end
+	end
+
+	return skill
+end
+
+-- easier syntax for LDB display strings
+function BrokerGarbage:FormatString(text)
+	local item
+	if not BrokerGarbage.cheapestItems or not BrokerGarbage.cheapestItems[1] then
+		item = {
+			itemID = 0,
+			count = 0,
+			value = 0,
+		}
+	else
+		item = BrokerGarbage.cheapestItems[1]
+	end
+
+	-- [junkvalue]
+	local junkValue = 0
+	for i = 0, 4 do
+		junkValue = junkValue + (BrokerGarbage.toSellValue[i] or 0)
+	end
+	text = string.gsub(text, "%[junkvalue%]", BrokerGarbage:FormatMoney(junkValue))
+
+	-- [itemname][itemcount][itemvalue]
+	text = string.gsub(text, "%[itemname%]", (select(2,GetItemInfo(item.itemID)) or ""))
+	text = string.gsub(text, "%[itemcount%]", item.count)
+	text = string.gsub(text, "%[itemvalue%]", BrokerGarbage:FormatMoney(item.value))
+
+	-- [freeslots][totalslots]
+	text = string.gsub(text, "%[freeslots%]", BrokerGarbage.totalFreeSlots)
+	text = string.gsub(text, "%[totalslots%]", BrokerGarbage.totalBagSpace)
+
+	-- [bagspacecolor][endcolor]
+	text = string.gsub(text, "%[bagspacecolor%]",
+		BrokerGarbage:Colorize(BrokerGarbage.totalFreeSlots, BrokerGarbage.totalBagSpace))
+	text = string.gsub(text, "%[endcolor%]", "|r")
+
+	return text
+end
+
+-- returns a red-to-green color depending on the given percentage
+function BrokerGarbage:Colorize(top, bottom)
+	if not bottom and (top >= 1 or top < 0) then return "" end
+	local percentage = top/(bottom ~= 0 and bottom or 1)
+	local color
+	if percentage <= 0.5 then
+		color =  {255, percentage*510, 0}
+	else
+		color =  {510 - percentage*510, 255, 0}
+	end
+
+	color = string.format("|cff%02x%02x%02x", color[1], color[2], color[3])
+
+	return color
+end
+
+function BrokerGarbage:ResetMoney(which, global)
+	if not global then
+		if which == "lost" then
+			BG_LocalDB.moneyLostByDeleting = 0
+		elseif which == "earned" then
+			BG_LocalDB.moneyEarned = 0
+		end
+	else
+		if which == "lost" then
+			BG_GlobalDB.moneyLostByDeleting = 0
+		elseif which == "earned" then
+			BG_GlobalDB.moneyEarned = 0
+		end
+	end
+end
+
+function BrokerGarbage:ResetList(which)
+	if which == "exclude" then
+		BG_GlobalDB.exclude = {}
+	elseif which == "include" then
+		BG_GlobalDB.include = {}
+	elseif which == "autosell" then
+		-- TODO: add to options
+		BG_GlobalDB.autoSellList = {}
+	end
+end
+
+-- resets statistics. global = true -> global, otherwise local
+function BrokerGarbage:ResetAll(global)
+	if global then
+		BG_GlobalDB.moneyEarned = 0
+		BG_GlobalDB.moneyLostByDeleting = 0
+		BG_GlobalDB.itemsDropped = 0
+		BG_GlobalDB.itemsSold = 0
+	else
+		BG_LocalDB.moneyEarned = 0
+		BG_LocalDB.moneyLostByDeleting = 0
+	end
+end
+
+-- returns the skill rank of a given tradeskill, or nil
+function BrokerGarbage:GetTradeSkill(skillName)
+	for i=1, GetNumSkillLines() do
+		local name, _, _, skillRank, _, _, _, _, _, _, _, _, _ = GetSkillLineInfo(i)
+		if name == skillName then
+			return skillRank
+		end
+	end
+	return nil
+end
+
+-- returns all tradeskills found
+function BrokerGarbage:CheckSkills()
+	local result = {}
+	for i=1, GetNumSkillLines() do
+		local name, _, _, skillRank, _, _, _, tradeSkill = GetSkillLineInfo(i)
+		if tradeSkill then
+			local isGather = true
+			if name == GetSpellInfo(2259) or name == GetSpellInfo(2018) or name == GetSpellInfo(7411) or name == GetSpellInfo(4036) or name == GetSpellInfo(45357) or name == GetSpellInfo(25229) or name == GetSpellInfo(2108) or name == GetSpellInfo(3908) then
+				-- crafting skill
+				isGather = false
+			end
+			tinsert(result, {name, isGather, skillRank})
+		end
+	end
+	if result == {} then return nil else return result end
+end
+
+local scanTooltip = CreateFrame('GameTooltip', 'BGItemScanTooltip', UIParent, 'GameTooltipTemplate')
+-- misc: either "true" to check only for the current character, or a table {container, slot} for reference
+function BrokerGarbage:CanDisenchant(itemLink, misc)
+	if (itemLink) then
+		local _, _, quality, level, _, _, _, count, bagSlot = GetItemInfo(itemLink)
+
+		-- stackables are not DE-able, legendary/heirlooms are not DE-able
+		if quality and quality >= 2 and quality < 5 and
+			string.find(bagSlot, "INVTYPE") and not string.find(bagSlot, "BAG")
+			and (not count or count == 1) then
+
+			-- can we DE ourself?
+			if IsUsableSpell(BrokerGarbage.enchanting) then
+				local skill = BrokerGarbage:GetTradeSkill(BrokerGarbage.enchanting) or 0
+
+				local requiredSkill = 0
+				if level <= 20 then
+					requiredSkill = 1
+				elseif level <= 60 then
+					requiredSkill = 5*5*math.ceil(level/5)-100
+				elseif level < 100 then		-- BC starts here
+					requiredSkill = 225
+				elseif level <= 115 then
+					requiredSkill = 275
+				elseif level <= 130 then
+					requiredSkill = 300
+				elseif level <= 200 and quality <= 3 then	-- WotLK starts here
+					requiredSkill = 325
+				else
+					requiredSkill = 375
+				end
+
+				if skill >= requiredSkill then
+					return true
+				end
+				-- if skill is too low, still check if we can send it
+			end
+			-- misc = "true" => we only care if we ourselves can DE. no twink mail etc.
+			if misc and type(misc) == "boolean" then return false end
+
+			-- so we can't DE, but can we send it to someone who may? i.e. is the item not soulbound?
+			if not BG_GlobalDB.hasEnchanter then return false end
+			if misc and type(misc) == "table" then
+				return not BrokerGarbage:IsItemSoulbound(itemLink, misc.bag, misc.slot)
+			else
+				return not BrokerGarbage:IsItemSoulbound(itemLink)
+			end
+		end
+	end
+	return false
+end
+
+-- returns true if the given item is soulbound
+function BrokerGarbage:IsItemSoulbound(itemLink, bag, slot)
+	scanTooltip:SetOwner(UIParent, 'ANCHOR_NONE')
+	local searchString
+
+	if not (bag and slot) then
+		-- check if item is BOP
+		scanTooltip:SetHyperlink(itemLink)
+		searchString = ITEM_BIND_ON_PICKUP
+	else
+		-- check if item is soulbound
+		scanTooltip:SetBagItem(bag, slot)
+		searchString = ITEM_SOULBOUND
+	end
+
+	local numLines = scanTooltip:NumLines()
+	for i = 1, numLines do
+		local leftLine = getglobal("BGItemScanTooltip".."TextLeft"..i)
+		local leftLineText = leftLine:GetText()
+
+		if string.find(leftLineText, searchString) then
+			return true
+		end
+	end
+	return false
+end
+
+-- gets an item's classification and saves it to the item cache
+function BrokerGarbage:UpdateCache(itemID)
+	if not itemID then return nil end
+	local class, temp, limit
+
+	local _, itemLink, quality, _, _, _, subClass, stackSize, invType, _, value = GetItemInfo(itemID)
+
+	-- weird ...
+	if not quality then
+		BrokerGarbage:Debug("Could not retrieve quality information for "..(itemID or "<none>").." ("..(itemLink or "")..")")
+		return nil
+	end
+
+	-- check if item is excluded by itemID
+	if BG_GlobalDB.exclude[itemID] or BG_LocalDB.exclude[itemID] then
+		BrokerGarbage:Debug("Item "..itemID.." is excluded via its itemID.")
+		class = BrokerGarbage.EXCLUDE
+	end
+
+	-- check if the item is classified by its itemID
+	if not class or class ~= BrokerGarbage.EXCLUDE then
+		if BG_GlobalDB.include[itemID] or BG_LocalDB.include[itemID] then
+
+			if BG_LocalDB.include[itemID] and type(BG_LocalDB.include[itemID]) ~= "boolean" then
+				-- limited item, local rule
+				BrokerGarbage:Debug("Item "..itemID.." is locally limited via its itemID.")
+				class = BrokerGarbage.LIMITED
+				limit = BG_LocalDB.include[itemID]
+
+			elseif BG_GlobalDB.include[itemID] and type(BG_GlobalDB.include[itemID]) ~= "boolean" then
+				-- limited item, global rule
+				BrokerGarbage:Debug("Item "..itemID.." is globally limited via its itemID.")
+				class = BrokerGarbage.LIMITED
+				limit = BG_GlobalDB.include[itemID]
+
+			else
+				BrokerGarbage:Debug("Item "..itemID.." is included via its itemID.")
+				class = BrokerGarbage.INCLUDE
+			end
+
+		elseif BG_GlobalDB.forceVendorPrice[itemID] then
+			BrokerGarbage:Debug("Item "..itemID.." has a forced vendor price via its itemID.")
+			class = BrokerGarbage.VENDOR
+
+		elseif BG_GlobalDB.autoSellList[itemID] or BG_LocalDB.autoSellList[itemID] then
+			BrokerGarbage:Debug("Item "..itemID.." is to be auto-sold via its itemID.")
+			class = BrokerGarbage.VENDORLIST
+
+		elseif quality
+			and not IsUsableSpell(BrokerGarbage.enchanting)	and BrokerGarbage:IsItemSoulbound(itemLink)
+			and string.find(invType, "INVTYPE") and not string.find(invType, "BAG")
+			and not BrokerGarbage.usableByClass[BrokerGarbage.playerClass][subClass]
+			and not BrokerGarbage.usableByAll[invType] then
+
+			BrokerGarbage:Debug("Item "..itemID.." should be sold as we can't ever wear it.")
+			class = BrokerGarbage.UNUSABLE
+
+		-- check if the item is classified by its category
+		elseif BrokerGarbage.PT then
+			-- check if item is excluded by its category
+			for setName,_ in pairs(BrokerGarbage:JoinTables(BG_GlobalDB.exclude, BG_LocalDB.exclude)) do
+				if type(setName) == "string" then
+					_, temp = BrokerGarbage.PT:ItemInSet(itemID, setName)
+				end
+				if temp then
+					BrokerGarbage:Debug("Item "..itemID.." is excluded via its category.")
+					class = BrokerGarbage.EXCLUDE
+					break
+				end
+			end
+
+			-- Include List
+			if not class then
+				for setName,_ in pairs(BrokerGarbage:JoinTables(BG_LocalDB.include, BG_GlobalDB.include)) do
+					if type(setName) == "string" then
+						_, temp = BrokerGarbage.PT:ItemInSet(itemID, setName)
+					end
+					if temp then
+						BrokerGarbage:Debug("Item "..itemID.." in included via its item category.")
+						class = BrokerGarbage.INCLUDE
+						break
+					end
+				end
+			end
+
+			-- Sell List
+			if not class then
+				for setName,_ in pairs(BrokerGarbage:JoinTables(BG_GlobalDB.autoSellList, BG_LocalDB.autoSellList)) do
+					if type(setName) == "string" then
+						_, temp = BrokerGarbage.PT:ItemInSet(itemID, setName)
+					end
+					if temp then
+						BrokerGarbage:Debug("Item "..itemID.." is on the sell list via its item category.")
+						class = BrokerGarbage.VENDORLIST
+						break
+					end
+				end
+			end
+
+			-- Force Vendor Price List
+			if not class then
+				for setName,_ in pairs(BG_GlobalDB.forceVendorPrice) do
+					if type(setName) == "string" then
+						_, temp = BrokerGarbage.PT:ItemInSet(itemID, setName)
+					end
+					if temp then
+						BrokerGarbage:Debug("Item "..itemID.." has a forced vendor price via its item category.")
+						class = BrokerGarbage.VENDOR
+						break
+					end
+				end
+			end
+		end
+	end
+
+	local tvalue, tclass = BrokerGarbage:GetSingleItemValue(itemID)
+	if not class then class = tclass end
+	if not (class == BrokerGarbage.VENDOR or class == BrokerGarbage.VENDORLIST) then value = tvalue end
+
+	-- save to items cache
+	if not class or not quality then
+		BrokerGarbage:Print("Error! Caching item "..itemID.." failed!")
+		return
+	end
+	if not BrokerGarbage.itemsCache[itemID] then
+		BrokerGarbage.itemsCache[itemID] = {
+			classification = class,
+			quality = quality,
+			value = value or 0,
+			limit = limit,
+			stackSize = stackSize,
+			isClam = BrokerGarbage:Find(BrokerGarbage.clams, itemID),
+		}
+	else
+		BrokerGarbage.itemsCache[itemID].classification = class
+		BrokerGarbage.itemsCache[itemID].quality = quality
+		BrokerGarbage.itemsCache[itemID].value = value or 0
+		BrokerGarbage.itemsCache[itemID].limit = limit
+		BrokerGarbage.itemsCache[itemID].stackSize = stackSize
+		BrokerGarbage.itemsCache[itemID].isClam = BrokerGarbage:Find(BrokerGarbage.clams, itemID)
+	end
+end
+
+-- fetch an item from the item cache, or insert if it doesn't exist yet
+function BrokerGarbage:GetCached(itemID)
+	if not BrokerGarbage.itemsCache[itemID] then
+		BrokerGarbage:UpdateCache(itemID)
+	end
+	return BrokerGarbage.itemsCache[itemID]
+end
+
+-- returns total bag slots and free bag slots of your whole inventory
+function BrokerGarbage:GetBagSlots()
+	local total, free = 0, 0
+	local num
+
+	for i = 0, 4 do
+		num = GetContainerNumSlots(i)
+		if num then
+			total = total + num
+			free = free + (GetContainerFreeSlots(i) and #GetContainerFreeSlots(i) or 0)
+		end
+	end
+
+	return total, free
+end
+
+-- formats money int values, depending on settings
+function BrokerGarbage:FormatMoney(amount)
+	if not amount then return "" end
+
+	local signum
+	if amount < 0 then
+		signum = "-"
+		amount = -amount
+	else
+		signum = ""
+	end
+
+	local gold   = floor(amount / (100 * 100))
+	local silver = math.fmod(floor(amount / 100), 100)
+	local copper = math.fmod(floor(amount), 100)
+
+	if BG_GlobalDB.showMoney == 0 then
+		return format(signum.."%i.%i.%i", gold, silver,copper)
+
+	elseif BG_GlobalDB.showMoney == 1 then
+		return format(signum.."|cffffd700%i|r.|cffc7c7cf%.2i|r.|cffeda55f%.2i|r", gold, silver, copper)
+
+	-- copied from Ara Broker Money
+	elseif BG_GlobalDB.showMoney == 2 then
+		if amount>9999 then
+			return format(signum.."|cffeeeeee%i|r|cffffd700g|r |cffeeeeee%.2i|r|cffc7c7cfs|r |cffeeeeee%.2i|r|cffeda55fc|r", floor(amount*.0001), floor(amount*.01)%100, amount%100 )
+
+		elseif amount > 99 then
+			return format(signum.."|cffeeeeee%i|r|cffc7c7cfs|r |cffeeeeee%.2i|r|cffeda55fc|r", floor(amount*.01), amount%100 )
+
+		else
+			return format(signum.."|cffeeeeee%i|r|cffeda55fc|r", amount)
+		end
+
+	-- copied from Haggler
+	elseif BG_GlobalDB.showMoney == 3 then
+		gold         = gold   > 0 and gold  .."|TInterface\\MoneyFrame\\UI-GoldIcon:12:12:4:0|t" or ""
+		silver       = silver > 0 and silver.."|TInterface\\MoneyFrame\\UI-SilverIcon:12:12:4:0|t" or ""
+		copper       = copper > 0 and copper.."|TInterface\\MoneyFrame\\UI-CopperIcon:12:12:4:0|t" or ""
+		-- add spaces if needed
+		copper       = (silver ~= "" and copper ~= "") and " "..copper or copper
+		silver       = (gold   ~= "" and silver ~= "") and " "..silver or silver
+
+		return signum..gold..silver..copper
+
+	elseif BG_GlobalDB.showMoney == 4 then
+		gold         = gold   > 0 and "|cffeeeeee"..gold  .."|r|cffffd700g|r" or ""
+		silver       = silver > 0 and "|cffeeeeee"..silver.."|r|cffc7c7cfs|r" or ""
+		copper       = copper > 0 and "|cffeeeeee"..copper.."|r|cffeda55fc|r" or ""
+		-- add spaces if needed
+		copper       = (silver ~= "" and copper ~= "") and " "..copper or copper
+		silver       = (gold   ~= "" and silver ~= "") and " "..silver or silver
+
+		return signum..gold..silver..copper
+	end
+end
\ No newline at end of file
diff --git a/libs/CallbackHandler-1.0.lua b/libs/CallbackHandler-1.0.lua
new file mode 100644
index 0000000..fbf93cf
--- /dev/null
+++ b/libs/CallbackHandler-1.0.lua
@@ -0,0 +1,239 @@
+--[[ $Id: CallbackHandler-1.0.lua 60548 2008-02-07 11:04:06Z nevcairiel $ ]]
+local MAJOR, MINOR = "CallbackHandler-1.0", 3
+local CallbackHandler = LibStub:NewLibrary(MAJOR, MINOR)
+
+if not CallbackHandler then return end -- No upgrade needed
+
+local meta = {__index = function(tbl, key) tbl[key] = {} return tbl[key] end}
+
+local type = type
+local pcall = pcall
+local pairs = pairs
+local assert = assert
+local concat = table.concat
+local loadstring = loadstring
+local next = next
+local select = select
+local type = type
+local xpcall = xpcall
+
+local function errorhandler(err)
+	return geterrorhandler()(err)
+end
+
+local function CreateDispatcher(argCount)
+	local code = [[
+	local next, xpcall, eh = ...
+
+	local method, ARGS
+	local function call() method(ARGS) end
+
+	local function dispatch(handlers, ...)
+		local index
+		index, method = next(handlers)
+		if not method then return end
+		local OLD_ARGS = ARGS
+		ARGS = ...
+		repeat
+			xpcall(call, eh)
+			index, method = next(handlers, index)
+		until not method
+		ARGS = OLD_ARGS
+	end
+
+	return dispatch
+	]]
+
+	local ARGS, OLD_ARGS = {}, {}
+	for i = 1, argCount do ARGS[i], OLD_ARGS[i] = "arg"..i, "old_arg"..i end
+	code = code:gsub("OLD_ARGS", concat(OLD_ARGS, ", ")):gsub("ARGS", concat(ARGS, ", "))
+	return assert(loadstring(code, "safecall Dispatcher["..argCount.."]"))(next, xpcall, errorhandler)
+end
+
+local Dispatchers = setmetatable({}, {__index=function(self, argCount)
+	local dispatcher = CreateDispatcher(argCount)
+	rawset(self, argCount, dispatcher)
+	return dispatcher
+end})
+
+--------------------------------------------------------------------------
+-- CallbackHandler:New
+--
+--   target            - target object to embed public APIs in
+--   RegisterName      - name of the callback registration API, default "RegisterCallback"
+--   UnregisterName    - name of the callback unregistration API, default "UnregisterCallback"
+--   UnregisterAllName - name of the API to unregister all callbacks, default "UnregisterAllCallbacks". false == don't publish this API.
+
+function CallbackHandler:New(target, RegisterName, UnregisterName, UnregisterAllName, OnUsed, OnUnused)
+	-- TODO: Remove this after beta has gone out
+	assert(not OnUsed and not OnUnused, "ACE-80: OnUsed/OnUnused are deprecated. Callbacks are now done to registry.OnUsed and registry.OnUnused")
+
+	RegisterName = RegisterName or "RegisterCallback"
+	UnregisterName = UnregisterName or "UnregisterCallback"
+	if UnregisterAllName==nil then	-- false is used to indicate "don't want this method"
+		UnregisterAllName = "UnregisterAllCallbacks"
+	end
+
+	-- we declare all objects and exported APIs inside this closure to quickly gain access
+	-- to e.g. function names, the "target" parameter, etc
+
+
+	-- Create the registry object
+	local events = setmetatable({}, meta)
+	local registry = { recurse=0, events=events }
+
+	-- registry:Fire() - fires the given event/message into the registry
+	function registry:Fire(eventname, ...)
+		if not rawget(events, eventname) or not next(events[eventname]) then return end
+		local oldrecurse = registry.recurse
+		registry.recurse = oldrecurse + 1
+
+		Dispatchers[select('#', ...) + 1](events[eventname], eventname, ...)
+
+		registry.recurse = oldrecurse
+
+		if registry.insertQueue and oldrecurse==0 then
+			-- Something in one of our callbacks wanted to register more callbacks; they got queued
+			for eventname,callbacks in pairs(registry.insertQueue) do
+				local first = not rawget(events, eventname) or not next(events[eventname])	-- test for empty before. not test for one member after. that one member may have been overwritten.
+				for self,func in pairs(callbacks) do
+					events[eventname][self] = func
+					-- fire OnUsed callback?
+					if first and registry.OnUsed then
+						registry.OnUsed(registry, target, eventname)
+						first = nil
+					end
+				end
+			end
+			registry.insertQueue = nil
+		end
+	end
+
+	-- Registration of a callback, handles:
+	--   self["method"], leads to self["method"](self, ...)
+	--   self with function ref, leads to functionref(...)
+	--   "addonId" (instead of self) with function ref, leads to functionref(...)
+	-- all with an optional arg, which, if present, gets passed as first argument (after self if present)
+	target[RegisterName] = function(self, eventname, method, ... --[[actually just a single arg]])
+		if type(eventname) ~= "string" then
+			error("Usage: "..RegisterName.."(eventname, method[, arg]): 'eventname' - string expected.", 2)
+		end
+
+		method = method or eventname
+
+		local first = not rawget(events, eventname) or not next(events[eventname])	-- test for empty before. not test for one member after. that one member may have been overwritten.
+
+		if type(method) ~= "string" and type(method) ~= "function" then
+			error("Usage: "..RegisterName.."(\"eventname\", \"methodname\"): 'methodname' - string or function expected.", 2)
+		end
+
+		local regfunc
+
+		if type(method) == "string" then
+			-- self["method"] calling style
+			if type(self) ~= "table" then
+				error("Usage: "..RegisterName.."(\"eventname\", \"methodname\"): self was not a table?", 2)
+			elseif self==target then
+				error("Usage: "..RegisterName.."(\"eventname\", \"methodname\"): do not use Library:"..RegisterName.."(), use your own 'self'", 2)
+			elseif type(self[method]) ~= "function" then
+				error("Usage: "..RegisterName.."(\"eventname\", \"methodname\"): 'methodname' - method '"..tostring(method).."' not found on self.", 2)
+			end
+
+			if select("#",...)>=1 then	-- this is not the same as testing for arg==nil!
+				local arg=select(1,...)
+				regfunc = function(...) self[method](self,arg,...) end
+			else
+				regfunc = function(...) self[method](self,...) end
+			end
+		else
+			-- function ref with self=object or self="addonId"
+			if type(self)~="table" and type(self)~="string" then
+				error("Usage: "..RegisterName.."(self or \"addonId\", eventname, method): 'self or addonId': table or string expected.", 2)
+			end
+
+			if select("#",...)>=1 then	-- this is not the same as testing for arg==nil!
+				local arg=select(1,...)
+				regfunc = function(...) method(arg,...) end
+			else
+				regfunc = method
+			end
+		end
+
+
+		if events[eventname][self] or registry.recurse<1 then
+		-- if registry.recurse<1 then
+			-- we're overwriting an existing entry, or not currently recursing. just set it.
+			events[eventname][self] = regfunc
+			-- fire OnUsed callback?
+			if registry.OnUsed and first then
+				registry.OnUsed(registry, target, eventname)
+			end
+		else
+			-- we're currently processing a callback in this registry, so delay the registration of this new entry!
+			-- yes, we're a bit wasteful on garbage, but this is a fringe case, so we're picking low implementation overhead over garbage efficiency
+			registry.insertQueue = registry.insertQueue or setmetatable({},meta)
+			registry.insertQueue[eventname][self] = regfunc
+		end
+	end
+
+	-- Unregister a callback
+	target[UnregisterName] = function(self, eventname)
+		if not self or self==target then
+			error("Usage: "..UnregisterName.."(eventname): bad 'self'", 2)
+		end
+		if type(eventname) ~= "string" then
+			error("Usage: "..UnregisterName.."(eventname): 'eventname' - string expected.", 2)
+		end
+		if rawget(events, eventname) and events[eventname][self] then
+			events[eventname][self] = nil
+			-- Fire OnUnused callback?
+			if registry.OnUnused and not next(events[eventname]) then
+				registry.OnUnused(registry, target, eventname)
+			end
+		end
+		if registry.insertQueue and rawget(registry.insertQueue, eventname) and registry.insertQueue[eventname][self] then
+			registry.insertQueue[eventname][self] = nil
+		end
+	end
+
+	-- OPTIONAL: Unregister all callbacks for given selfs/addonIds
+	if UnregisterAllName then
+		target[UnregisterAllName] = function(...)
+			if select("#",...)<1 then
+				error("Usage: "..UnregisterAllName.."([whatFor]): missing 'self' or \"addonId\" to unregister events for.", 2)
+			end
+			if select("#",...)==1 and ...==target then
+				error("Usage: "..UnregisterAllName.."([whatFor]): supply a meaningful 'self' or \"addonId\"", 2)
+			end
+
+
+			for i=1,select("#",...) do
+				local self = select(i,...)
+				if registry.insertQueue then
+					for eventname, callbacks in pairs(registry.insertQueue) do
+						if callbacks[self] then
+							callbacks[self] = nil
+						end
+					end
+				end
+				for eventname, callbacks in pairs(events) do
+					if callbacks[self] then
+						callbacks[self] = nil
+						-- Fire OnUnused callback?
+						if registry.OnUnused and not next(callbacks) then
+							registry.OnUnused(registry, target, eventname)
+						end
+					end
+				end
+			end
+		end
+	end
+
+	return registry
+end
+
+
+-- CallbackHandler purposefully does NOT do explicit embedding. Nor does it
+-- try to upgrade old implicit embeds since the system is selfcontained and
+-- relies on closures to work.
+
diff --git a/libs/LibDataBroker-1.1.lua b/libs/LibDataBroker-1.1.lua
new file mode 100644
index 0000000..f47c0cd
--- /dev/null
+++ b/libs/LibDataBroker-1.1.lua
@@ -0,0 +1,90 @@
+
+assert(LibStub, "LibDataBroker-1.1 requires LibStub")
+assert(LibStub:GetLibrary("CallbackHandler-1.0", true), "LibDataBroker-1.1 requires CallbackHandler-1.0")
+
+local lib, oldminor = LibStub:NewLibrary("LibDataBroker-1.1", 4)
+if not lib then return end
+oldminor = oldminor or 0
+
+
+lib.callbacks = lib.callbacks or LibStub:GetLibrary("CallbackHandler-1.0"):New(lib)
+lib.attributestorage, lib.namestorage, lib.proxystorage = lib.attributestorage or {}, lib.namestorage or {}, lib.proxystorage or {}
+local attributestorage, namestorage, callbacks = lib.attributestorage, lib.namestorage, lib.callbacks
+
+if oldminor < 2 then
+	lib.domt = {
+		__metatable = "access denied",
+		__index = function(self, key) return attributestorage[self] and attributestorage[self][key] end,
+	}
+end
+
+if oldminor < 3 then
+	lib.domt.__newindex = function(self, key, value)
+		if not attributestorage[self] then attributestorage[self] = {} end
+		if attributestorage[self][key] == value then return end
+		attributestorage[self][key] = value
+		local name = namestorage[self]
+		if not name then return end
+		callbacks:Fire("LibDataBroker_AttributeChanged", name, key, value, self)
+		callbacks:Fire("LibDataBroker_AttributeChanged_"..name, name, key, value, self)
+		callbacks:Fire("LibDataBroker_AttributeChanged_"..name.."_"..key, name, key, value, self)
+		callbacks:Fire("LibDataBroker_AttributeChanged__"..key, name, key, value, self)
+	end
+end
+
+if oldminor < 2 then
+	function lib:NewDataObject(name, dataobj)
+		if self.proxystorage[name] then return end
+
+		if dataobj then
+			assert(type(dataobj) == "table", "Invalid dataobj, must be nil or a table")
+			self.attributestorage[dataobj] = {}
+			for i,v in pairs(dataobj) do
+				self.attributestorage[dataobj][i] = v
+				dataobj[i] = nil
+			end
+		end
+		dataobj = setmetatable(dataobj or {}, self.domt)
+		self.proxystorage[name], self.namestorage[dataobj] = dataobj, name
+		self.callbacks:Fire("LibDataBroker_DataObjectCreated", name, dataobj)
+		return dataobj
+	end
+end
+
+if oldminor < 1 then
+	function lib:DataObjectIterator()
+		return pairs(self.proxystorage)
+	end
+
+	function lib:GetDataObjectByName(dataobjectname)
+		return self.proxystorage[dataobjectname]
+	end
+
+	function lib:GetNameByDataObject(dataobject)
+		return self.namestorage[dataobject]
+	end
+end
+
+if oldminor < 4 then
+	local next = pairs(attributestorage)
+	function lib:pairs(dataobject_or_name)
+		local t = type(dataobject_or_name)
+		assert(t == "string" or t == "table", "Usage: ldb:pairs('dataobjectname') or ldb:pairs(dataobject)")
+
+		local dataobj = self.proxystorage[dataobject_or_name] or dataobject_or_name
+		assert(attributestorage[dataobj], "Data object not found")
+
+		return next, attributestorage[dataobj], nil
+	end
+
+	local ipairs_iter = ipairs(attributestorage)
+	function lib:ipairs(dataobject_or_name)
+		local t = type(dataobject_or_name)
+		assert(t == "string" or t == "table", "Usage: ldb:ipairs('dataobjectname') or ldb:ipairs(dataobject)")
+
+		local dataobj = self.proxystorage[dataobject_or_name] or dataobject_or_name
+		assert(attributestorage[dataobj], "Data object not found")
+
+		return ipairs_iter, attributestorage[dataobj], 0
+	end
+end
diff --git a/libs/LibPeriodicTable-3.1-Consumable/LibPeriodicTable-3.1-Consumable.lua b/libs/LibPeriodicTable-3.1-Consumable/LibPeriodicTable-3.1-Consumable.lua
new file mode 100644
index 0000000..fff3d7c
--- /dev/null
+++ b/libs/LibPeriodicTable-3.1-Consumable/LibPeriodicTable-3.1-Consumable.lua
@@ -0,0 +1,270 @@
+-- (c) 2007 Nymbia.  see LGPLv2.1.txt for full details.
+--DO NOT MAKE CHANGES TO THIS FILE BEFORE READING THE WIKI PAGE REGARDING CHANGING THESE FILES
+if not LibStub("LibPeriodicTable-3.1", true) then error("PT3 must be loaded before data") end
+LibStub("LibPeriodicTable-3.1"):AddData("Consumable", gsub("$Rev: 292 $", "(%d+)", function(n) return n+90000 end), {
+	["Consumable.Anti-Venom"]="6452:25,6453:35,13462:60,2633:60,19440:60,12586:60,9030:60,3386:60,31437:70,25550:70",
+	["Consumable.Bandage.Basic"]="1251:66,2581:114,3530:161,3531:301,6450:400,6451:640,8544:800,8545:1104,14529:1360,14530:2000,21990:2800,21991:3400,38643:3400,38640:4100,34721:4800,34722:5800",
+	["Consumable.Bandage.Battleground.Alterac Valley"]="19307:2000",
+	["Consumable.Bandage.Battleground.Arathi Basin"]="20232:1104,20234:2000,20235:640,20237:1104,20243:2000,20244:640",
+	["Consumable.Bandage.Battleground.Warsong Gulch"]="19067:1104,19066:2000,19068:640",
+
+	--NOT AUTOGENNED Self buffs are on caster only, target buffs are on target
+	--Under no circumstances do you add food buffs here, nor weapon buffs for now.  These are applied differently / noncombat
+	["Consumable.Buff.Agility.Flask"]="33208:18,32598:20,32599:20",
+	["Consumable.Buff.Agility.Self"]="2457:4,3390:8,8949:15,28104:15,8412:25,9187:25,13452:25,22831:35",
+	["Consumable.Buff.Agility.Target"]="3012:3,1477:5,4425:8,10309:10,27498:15,33457:20,43463:25,43464:30",
+	["Consumable.Buff.Intellect.Flask"]="33208:18,32596:20,32600:20,32601:20,13511:65",
+	["Consumable.Buff.Intellect.Self"]="3383:6,28104:15,13447:18,8423:25,9179:25,32067:30",
+	["Consumable.Buff.Intellect.Target"]="955:3,2290:5,4419:12,10308:17,27499:21,33458:24,12458:30,37091:32,37092:48",
+	["Consumable.Buff.Spirit.Flask"]="33208:18",
+	["Consumable.Buff.Spirit.Self"]="28104:15,13447:18,32067:30",
+	["Consumable.Buff.Spirit.Target"]="21519:20,1181:3,1712:7,4424:11,10306:15,27501:26,33460:32,37097:40,37098:64",
+	["Consumable.Buff.Stamina.Flask"]="33208:18,32596:30,32597:30,32598:30,32599:30,32600:30,32601:30",
+	["Consumable.Buff.Stamina.Self"]="20709:5,17048:10,21114:10,21151:15,28104:15,13453:18,30615:20",
+	["Consumable.Buff.Stamina.Target"]="1180:4,1711:8,4422:12,10307:16,27502:20,33461:42,37093:63,37094:132",
+	["Consumable.Buff.Strength.Flask"]="33208:18,32597:20,32598:20,47499:40",
+	["Consumable.Buff.Strength.Self"]="2454:4,6662:8,3391:8,28104:15,13453:18,8410:25,9206:25,22824:35,22837:75,22828:120",
+	["Consumable.Buff.Strength.Target"]="954:3,2289:5,4426:8,10310:10,27503:15,33462:20,43465:25,12451:30,43466:30",
+
+	["Consumable.Buff.Absorb.Self.Arcane"]="13461:2600,22845:3400",
+	["Consumable.Buff.Absorb.Self.Damage"]="32063:20,22795:1000",
+	["Consumable.Buff.Absorb.Self.Fire"]="6049:1300,13457:2600,22841:3400",
+	["Consumable.Buff.Absorb.Self.Frost"]="6050:1800,13456:2600,22842:3400",
+	["Consumable.Buff.Absorb.Self.Holy"]="6051:400,22847:3400",
+	["Consumable.Buff.Absorb.Self.Nature"]="6052:1800,13458:2600,22844:3400",
+	["Consumable.Buff.Absorb.Self.Shadow"]="6048:900,13459:2600,22846:3400",
+	["Consumable.Buff.Armor.Self"]="5997:50,3389:150,8951:250,13445:450,22834:550,4623:1000,13455:2000,22849:2500,40093:3500",
+	["Consumable.Buff.Armor.Target"]="3013:65,1478:105,4421:150,10305:195,27500:240,33459:285,43467:340",
+	["Consumable.Buff.Attack Crit.Flask"]="32597:20,40212:200",
+	["Consumable.Buff.Attack Damage"]="23501:10,22788:40",
+	["Consumable.Buff.Attack Power.Self"]="23989:10,22779:30,12820:35,29528:60,28102:60,49856:75,49859:75,40068:90,31679:120,9224:265",
+	["Consumable.Buff.Attack Power.Flask"]="32599:20,47499:80,22854:120,32901:120,46377:120",
+	["Consumable.Buff.Attack Power.Target"]="12460:40",
+	["Consumable.Buff.Attack Speed.Self"]="29529:80,22838:400",
+	["Consumable.Buff.Attack Speed.Target"]="12450:3",
+	["Consumable.Buff.Hit Rating.Self"]="22237:20,23327:20",
+	["Consumable.Buff.Casting Speed.Self"]="29529:80",
+	["Consumable.Buff.Chest"]="23559:200,25521:400",
+	["Consumable.Buff.Defense.Self"]="22236:20,23435:20,49858:20,49860:20",
+	["Consumable.Buff.Defense.Flask"]="22851:10,32898:10",
+	["Consumable.Buff.Dodge.Target"]="12459:60",
+	["Consumable.Buff.Energy.Self"]="31451:20,7676:40,27553:55",
+	["Consumable.Buff.Fear"]="29532",
+	["Consumable.Buff.Fire Power"]="6373:10,21546:40,22833:65",
+	["Consumable.Buff.Free Action"]="20008,5634",
+	["Consumable.Buff.Frost Power"]="17708:15,22827:55",
+	["Consumable.Buff.Haste"]="40211:500",
+	["Consumable.Buff.Healing.Flask"]="32601:23,32600:44",
+	["Consumable.Buff.Healing.Self"]="23501:10,28103:24,22825:50,23211:44,22239:44",
+	["Consumable.Buff.Health.Flask"]="13510:400,22851:500,32898:500,46379:1300",
+	["Consumable.Buff.Health.Self"]="2458:27,23444:70,3825:120,32062:250,22837:700,22797:2000",
+	["Consumable.Buff.Other.Flask"]="13506",
+	["Consumable.Buff.Other.Self"]="3387,3823,3828,5996,5634,6372,8529,8956,9233,9154,9172,9197,10592,13506,22823,43090,43094,43134,43141,43462,43470,43472,43473",
+	["Consumable.Buff.Rage.Self"]="31451:10,5631:30,5633:45,13442:45",
+	["Consumable.Buff.Regen Health.Self"]="3382:2,3388:6,32062:10,3826:12,20004:20",
+	["Consumable.Buff.Regen Mana.Flask"]="32596:8,22853:25,32899:25",
+	["Consumable.Buff.Regen Mana.Self"]="20007:12,22840:16,32899:25,46378:38",
+	["Consumable.Buff.Resilience.Self"]="32068:30",
+	["Consumable.Buff.Resistance.Flask"]="13513:25,33208:35,40079:50",
+	["Consumable.Buff.Resistance.Self"]="9088:10,3384:25,9036:50",
+	["Consumable.Buff.Resistance.Target"]="12455:15,12457:15",
+	["Consumable.Buff.Shadow Power"]="9264:40,22835:65",
+	["Consumable.Buff.Shield"]="23575:1000,23576:4000",
+	["Consumable.Buff.Speed.Self"]="29530:15,20081:20,2459:50,33226:14,43135:15",
+	["Consumable.Buff.Spell Crit.Self"]="22839:2,28103:24,40212:200",
+	["Consumable.Buff.Spell Damage.Flask"]="32601:23,47499:47,13512:70,32900:70,22861:80,22866:80,46376:125",
+	["Consumable.Buff.Spell Damage.Self"]="6373:10,22710:10,17708:15,22778:15,9155:20,22238:23,23326:23,28103:24,29528:30,13454:35,9264:40,49857:45,49860:45,22833:55,40070:58,22835:65,22788:80,22839:120,40212:200",
+	["Consumable.Buff.Spell Reflect.Self"]="20080:3",
+	["Consumable.Buff.Water Breathing"]="34076:3,37265:10,23871:30,24421:30,25539:60",
+
+	["Consumable.Buff Type.Battle"]="2454,2457,3390,3391,6373,6662,8410,8412,8949,9155,9187,9206,9224,9264,12450,12451,12460,12820,13452,13453,13454,17708,21546,22824,22825,22827,22831,22833,22835,28102,28103,28104,31679,34537,37878,39666,40068,40070,40073,40076,44325,44327,44329,44330,44331,45621",
+	["Consumable.Buff Type.Guardian"]="1177,2458,3382,3383,3388,3389,3825,3826,5997,8411,8423,8424,8827,8951,9088,9179,11563,11564,12455,12457,12458,12459,13445,13447,20004,20007,20079,20080,20081,22834,22840,22848,32062,32063,32067,32068,40072,40078,40097,40109,44328,44332",
+	["Consumable.Buff Type.Flask"]="13510,35716,13512,32766,32601,32599,13506,32900,33208,32598,22854,32600,32765,32597,32767,32898,35717,32899,22861,22851,32596,32764,13511,22853,22866,13513,32901,40079,40082,40083,40084,40404,46376,46377,46378,46379,47499",
+
+	-- NOT AUTOGENNED. These are used by AutoBar.  Please check with the AutoBar author before making major changes
+	["Consumable.Buff Group.General.Self"]="m,Consumable.Buff.Absorb.Self.Damage,Consumable.Buff.Haste,Consumable.Buff.Health.Self,Consumable.Buff.Regen Health.Self,Consumable.Buff.Resilience.Self,Consumable.Buff.Spirit.Self,Consumable.Buff.Stamina.Self,Consumable.Buff.Dodge.Self,Consumable.Buff.Resistance.Self,Consumable.Buff.Speed.Self,Consumable.Buff.Absorb.Self,Consumable.Buff.Spell Reflect.Self,Consumable.Buff.Free Action,Consumable.Buff.Water Breathing",
+	["Consumable.Buff Group.General.Target"]="m,Consumable.Buff.Health.Target,Consumable.Buff.Regen Health.Target,Consumable.Buff.Spirit.Target,Consumable.Buff.Stamina.Target,Consumable.Buff.Dodge.Target,Consumable.Buff.Resistance.Target,Consumable.Buff.Absorb.Target",
+	["Consumable.Buff Group.Caster.Self"]="m,Consumable.Buff.Casting Speed.Self,Consumable.Buff.Healing.Self,Consumable.Buff.Intellect.Self,Consumable.Buff.Regen Mana.Self,Consumable.Buff.Shadow Power,Consumable.Buff.Spell Crit.Self,Consumable.Buff.Spell Damage.Self",
+	["Consumable.Buff Group.Caster.Target"]="m,Consumable.Buff.Intellect.Target",
+	["Consumable.Buff Group.Melee.Self"]="m,Consumable.Buff.Armor.Self,Consumable.Buff.Attack Damage,Consumable.Buff.Agility.Self,Consumable.Buff.Attack Power.Self,Consumable.Buff.Attack Speed.Self,Consumable.Buff.Strength.Self,Consumable.Buff.Hit Rating.Self",
+	["Consumable.Buff Group.Melee.Target"]="m,Consumable.Buff.Armor.Target,Consumable.Buff.Agility.Target,Consumable.Buff.Attack Power.Target,Consumable.Buff.Attack Speed.Target,Consumable.Buff.Strength.Target",
+
+	["Consumable.Buff Pet"]="27656,33874,43005",
+
+	-- Items on Health Stone vs Potion cooldown, each with Health, Mana & Rejuvenation subsets.
+	["Consumable.Cooldown.Potion.Combat.Battle"]="13442,22828,22837,22838,22839,40211,40212",
+	["Consumable.Cooldown.Potion.Combat.Guardian"]="4623,13455,22849,40093",
+	["Consumable.Cooldown.Potion.Health.Anywhere"]="43569:1920",
+	["Consumable.Cooldown.Potion.Health.Basic"]="118:80,858:160,4596:160,929:320,1710:520,11562:670,3928:800,18839:800,13446:1400,31838:1400,31839:1400,31852:1400,31853:1400,28100:1400,33092:2000,23822:2000,22829:2000,32947:2000,33934:2000,39327:2000,39671:2000,33447:3600,41166:3600",
+	["Consumable.Cooldown.Potion.Health.Blades Edge"]="32784:1400,32910:1400",
+	["Consumable.Cooldown.Potion.Health.Coilfang"]="32904:2000",
+	["Consumable.Cooldown.Potion.Health.Tempest Keep"]="32905:2000",
+	["Consumable.Cooldown.Potion.Health.PvP"]="17349:640,17348:1120",
+	["Consumable.Cooldown.Potion.Mana.Anywhere"]="43570:500",
+	["Consumable.Cooldown.Potion.Mana.Basic"]="2455:160,3385:320,35287:470,3827:520,6149:800,13443:1200,18841:1200,13444:1800,31840:1800,31841:1800,31854:1800,31855:1800,28101:1800,40067:1800,33093:2400,23823:2400,22832:2400,32948:2400,33935:2400,31677:3200,42545:4300,33448:4300",
+	["Consumable.Cooldown.Potion.Mana.Blades Edge"]="32909:2400,32783:2400",
+	["Consumable.Cooldown.Potion.Mana.Coilfang"]="32903:2400",
+	["Consumable.Cooldown.Potion.Mana.Pvp"]="17351:1120,17352:640",
+	["Consumable.Cooldown.Potion.Mana.Tempest Keep"]="32902:2400",
+	["Consumable.Cooldown.Potion.Rejuvenation.Regular"]="2456:120,11952:425,9144:750,29531:750,18253:1600,22850:2200,34440:2200,40087:3300,40077:3800",
+	["Consumable.Cooldown.Potion.Rejuvenation.Dreamless Sleep"]="12190:1200,20002:2100,22836:3600,40081:5400",
+	["Consumable.Cooldown.Potion.Rune"]="39327:50",
+	["Consumable.Cooldown.Stone.Combat.Battle"]="22788",
+	["Consumable.Cooldown.Stone.Combat.Guardian"]="22795,22797",
+	["Consumable.Cooldown.Stone.Health.Other"]="11951:800,32578:2000,",
+	["Consumable.Cooldown.Stone.Health.Statue"]="25498:8,25880:16,25881:24,25882:36,25883:50",
+	["Consumable.Cooldown.Stone.Health.Warlock"]="m,Consumable.Warlock.Healthstone,",
+	["Consumable.Cooldown.Stone.Mana.Other"]="23354:60,23386:100,31451:300,20520:1200,12662:1200",
+	["Consumable.Cooldown.Stone.Mana.Mana Stone"]="5513:600,5514:400,8007:850,8008:1100,22044:1250,33312:3415",
+	["Consumable.Cooldown.Drums.Bombs"]="m,Misc.Explosives",
+	["Consumable.Cooldown.Drums.Drums"]="29528:1,29530:2,29531:3,29529:4,29532:5,49633:6,49634:7",
+	["Consumable.Cooldown.Drums.Nets"]="24268:70,24269:80,41509:83",
+	["Consumable.Cooldown.Drums.Other"]="1127,1178,1191,1399,1434,2091,3456,4384,4388,4391,4395,4852,4941,5332,10646,10719,10830,11565,11566,13509,13514,15778,21325,23379,23841",
+
+	--NOT AUTOGENNED (All food.  I'd like to get this mined, but the filters for these items on allakhazam and wowhead are nonexistant.)
+	-- Basic foods regenerate health only.
+	-- Combo Foods regenerate hp & mana.  Please add Combo foods to the Combo Health and Combo Mana categories below as well.
+	-- Bonus foods provide some kind of buff which is listed by buff under Consumable.Food.Buff.*  Please add items to both lists.
+	["Consumable.Food.Bread"]="m,Consumable.Food.Edible.Bread.Basic,Consumable.Food.Edible.Bread.Bonus,Consumable.Food.Edible.Bread.Conjured,Consumable.Food.Edible.Bread.Combo.Conjured,Consumable.Food.Edible.Bread.Combo.Non-Conjured",
+	["Consumable.Food.Cheese"]="m,Consumable.Food.Edible.Cheese.Basic,Consumable.Food.Edible.Cheese.Bonus",
+	["Consumable.Food.Fish"]="m,Consumable.Food.Edible.Fish.Basic,Consumable.Food.Edible.Fish.Bonus,Consumable.Food.Inedible.Fish,Consumable.Food.Edible.Fish.Combo",
+	["Consumable.Food.Fruit"]="m,Consumable.Food.Edible.Fruit.Basic,Consumable.Food.Edible.Fruit.Bonus,Consumable.Food.Edible.Fruit.Combo",
+	["Consumable.Food.Fungus"]="m,Consumable.Food.Edible.Fungus.Basic,Consumable.Food.Edible.Fungus.Bonus,Consumable.Food.Edible.Fungus.Combo,Consumable.Food.Inedible.Fungus",
+	["Consumable.Food.Meat"]="m,Consumable.Food.Edible.Meat.Basic,Consumable.Food.Edible.Meat.Bonus,Consumable.Food.Inedible.Meat",
+	["Consumable.Food.Misc"]="m,Consumable.Food.Edible.Misc.Basic,Consumable.Food.Edible.Misc.Bonus",
+	["Consumable.Food.Edible.Basic.Conjured"]="m,Consumable.Food.Edible.Bread.Conjured,Consumable.Food.Edible.Bread.Combo.Conjured",
+	["Consumable.Food.Edible.Basic.Non-Conjured"]="m,Consumable.Food.Edible.Bread.Basic,Consumable.Food.Edible.Cheese.Basic,Consumable.Food.Edible.Fish.Basic,Consumable.Food.Edible.Fruit.Basic,Consumable.Food.Edible.Fungus.Basic,Consumable.Food.Edible.Meat.Basic,Consumable.Food.Edible.Misc.Basic",
+	["Consumable.Food.Edible.Bonus"]="m,Consumable.Food.Edible.Bread.Bonus,Consumable.Food.Edible.Cheese.Bonus,Consumable.Food.Edible.Fish.Bonus,Consumable.Food.Edible.Fruit.Bonus,Consumable.Food.Edible.Fungus.Bonus,Consumable.Food.Edible.Meat.Bonus,Consumable.Food.Edible.Misc.Bonus",
+	["Consumable.Food.Edible.Combo.Conjured"]="m,Consumable.Food.Edible.Bread.Combo.Conjured",
+	["Consumable.Food.Edible.Combo.Non-Conjured"]="m,Consumable.Food.Edible.Misc.Combo,Consumable.Food.Edible.Fungus.Combo,Consumable.Food.Edible.Fruit.Combo,Consumable.Food.Edible.Fish.Combo,Consumable.Food.Edible.Bread.Combo.Non-Conjured",
+	["Consumable.Food.Edible.Battleground.Alterac Valley.Combo"]="19301:4410",
+	["Consumable.Food.Edible.Battleground.Arathi Basin.Basic"]="20063:1074,20064:1608,20062:2148,20223:1074,20224:1608,20222:2148,20226:1074,20227:1608,20225:2148",
+	["Consumable.Food.Edible.Battleground.Warsong Gulch.Basic"]="19062:1074,19061:1608,19060:2148",
+	["Consumable.Food.Edible.Bread.Basic"]="19696:50,20857:61,4540:61,4541:243,4542:552,4544:874,16169:874,4601:1392,8950:2148,23160:2148,29394:7500,27855:4320,28486:4320,24072:243,30816:61,29449:7500,42432:13200,42428:13200,42433:13200,42778:15000,33449:13200,42431:15000,42430:13200,44609:13200,42434:15000,42429:15000,35950:15000",
+	["Consumable.Food.Edible.Bread.Combo.Conjured"]="34062:7500,43518:13200,43523:15000",
+	["Consumable.Food.Edible.Bread.Combo.Non-Conjured"]="13724:2148,19301:4410,34780:7500",
+	["Consumable.Food.Edible.Bread.Bonus"]="2683:243,3666:552,17197:61,43490:0,33924:0",
+	["Consumable.Food.Edible.Bread.Conjured"]="1113:243,1114:552,1487:874,5349:61,8075:1392,8076:2148,22895:4320,22019:7500",
+	["Consumable.Food.Edible.Cheese.Basic"]="2070:61,414:243,17406:243,422:552,1707:874,3927:1392,8932:2148,27857:4320,29448:7500,30458:4320,44607:15000,35952:15000,44608:13200,44749:13200,33443:13200",
+	["Consumable.Food.Edible.Cheese.Bonus"]="3665:552,12218:1392",
+	["Consumable.Food.Edible.Fish.Basic"]="19996:50,1326:243,6316:243,21552:1392,16766:1392,2682:294,4592:243,4593:552,4594:874,5095:243,6290:61,6887:1392,787:61,8364:874,8957:2148,8959:1392,13546:1392,13930:1392,13935:2148,27661:4320,27858:4320,12238:243,13933:2148,29452:7500,33048:7500,35285:7500,43646:7500,33451:13200,43571:13200,44049:15000,35951:15000,44071:15000",
+	["Consumable.Food.Edible.Fish.Combo"]="21071:155,2682:294,21153:567,33004:2148,33053:7500,34760:15000,34761:15000,34759:15000,45932:15000",
+	["Consumable.Food.Edible.Fish.Bonus"]="43491:0,43492:0,27666:7500,27665:7500,27663:4320,21072:378,21217:840,13932:874,13929:874,13934:1933,13927:1392,27664:7500,13928:874,5476:243,6038:874,12216:1392,5527:552,16971:1392,27662:4320,30155:4320,33867:4320,27667:7500,33052:7500,37452:13200,43572:13200,43652:13200,42942:15000,42999:15000,43000:15000,34767:15000,34762:15000,34769:15000,34765:15000,34764:15000,34766:15000,34763:15000,42996:15000,34768:15000,42993:15000,42998:15000,43268:15000,39691:15000",
+	["Consumable.Food.Edible.Fruit.Basic"]="29450:7500,19994:50,22324:2148,4536:61,4537:243,4538:552,4539:874,4602:1392,8953:2148,16168:1392,21033:2148,21031:2148,21030:1392,29393:4320,27856:4320,43087:15000,37252:13200,40356:13200,35948:15000,35949:13200",
+	["Consumable.Food.Edible.Fruit.Combo"]="28112:4410,20031:2550",
+	["Consumable.Food.Edible.Fruit.Bonus"]="32721:6000,20516:48,24009:4320,11950:1933,13810:1933",
+	["Consumable.Food.Edible.Fungus.Basic"]="4604:61,4605:243,4606:552,4607:874,4608:1392,8948:2148,27859:4320,30355:7500,29453:7500,41751:4320,33452:13200,35947:15000",
+	["Consumable.Food.Edible.Fungus.Combo"]="3448:294",
+	["Consumable.Food.Edible.Fungus.Bonus"]="24539:4320,24008:4320",
+	["Consumable.Food.Edible.Meat.Basic"]="7097:61,21235:50,19995:50,2679:61,17407:874,6807:874,19224:874,19223:61,117:61,2287:243,19304:243,2681:61,2685:552,3770:552,3771:874,19305:552,4599:1392,5478:552,6890:243,19306:1392,9681:1392,9681:61,8952:2148,11444:2148,30610:4320,27854:4320,38427:4320,23495:61,17119:243,11444:2148,29451:7500,32685:7500,32686:7500,33254:7500,38428:7500,40359:13200,35953:15000,40358:13200,44072:15000,33454:13200,40202:15000,38706:15000,34747:15000,41729:15000",
+	["Consumable.Food.Edible.Meat.Bonus"]="12224:61,24105:61,27635:61,27636:243,35563:1933,35565:1933,27655:4320,27657:7500,31673:7500,27660:7500,31672:7500,27651:4320,21023:2550,27658:7500,29292:2148,1017:552,2680:61,2684:243,2687:243,2888:61,3220:243,3662:243,3726:552,3727:552,3728:874,3729:874,4457:874,5472:61,5474:61,5477:243,5479:552,5480:552,12209:552,12210:874,12213:874,13851:874,20074:874,17222:1392,18045:1392,27659:7500,33872:7500,34410:7500,42997:15000,42995:15000,34748:15000,34754:15000,34758:15000,34752:15000,42994:15000,34751:15000,34756:15000,34755:15000,34757:15000,34750:15000,34749:15000,43001:15000,43488:0,34125:15000,42779:13200",
+	["Consumable.Food.Edible.Misc.Basic"]="961:61,4656:61,17344:61,5066:243,3448:294,5473:294,17407:874,19225:2148,733:552,5526:552,7228:552,6316:243,13933:2148,16166:61,16167:243,16170:552,16171:2148,18255:1392,29412:4320,24338:2148,24408:4320,33048:7500",
+	["Consumable.Food.Edible.Misc.Combo"]="21215:100,20390:75,20389:75,20388:75,21537:100",
+	["Consumable.Food.Edible.Misc.Bonus"]="21254:48,30357:7500,30361:7500,13931:874,18254:1933,24540:2148,22645:243,28501:4320,30358:7500,30359:7500,20452:2148,724:243,1082:552,3663:552,3664:552,5525:243,6888:61,11584:61,12212:874,12214:874,12215:1392,17198:61,23756:61",
+	["Consumable.Food.Inedible.Fish"]="2675,4603:874,4655,5468,5503,5504,6289:61,6291:30,6303:30,6308:243,6317:61,6361:61,6362:552,7974,8365:552,12206,13754:874,13755:874,13756:874,13758:874,13759:874,13760:874,13889:1392,13893:1392,15924,13890,13888:1392,27422,27435,27437,27438,27439,27429,27425,24477,2674,27515,27516,33823,33824,41812,41808,41805,41800,41807,41810,41809,41814,41802,41801,41806,41813,41803,43647,36782,12207,43501,3685,6889",
+	["Consumable.Food.Inedible.Meat"]="729,20424,769,1015,1081,2672,2673,2677,2924,3173,3404,3667,3712,3730,3731,4739,5051,5465,5467,5469,5470,5471,12037,12184,12202,12203,12204,12205,12208,12223,27669,27671,27677,27678,22644,27668,23676,31670,27674,31671,27682,27681,35562,1080,21024,2886,723,43011,43010,43009,33120,35794,43012,43013,34736",
+	["Consumable.Food.Inedible.Fungus"]="27676",
+	["Consumable.Food.Feast"]="43015,43478,34753,43480",
+
+
+	-- Consumable.Food.Buff lists the *.Bonus foods from above by effect, not amount healed.  Multiple buffs are listed under each individual buff.
+	["Consumable.Food.Bonus"]="m,Consumable.Food.Edible.Bread.Bonus,Consumable.Food.Edible.Cheese.Bonus,Consumable.Food.Edible.Fish.Bonus,Consumable.Food.Edible.Fruit.Bonus,Consumable.Food.Edible.Fungus.Bonus,Consumable.Food.Edible.Meat.Bonus,Consumable.Food.Edible.Misc.Bonus",
+
+	["Consumable.Food.Buff.Agility"]="13928:10,27664:20,30358:20,27659:20,42999:40",
+	["Consumable.Food.Buff.Attack Power"]="35563:24,27655:40,34748:60,34754:80,34766:80,34762:60,43268:60",
+	["Consumable.Food.Buff.Critical Rating"]="34756:40,34750:30,39691:30,34764:30,34768:40",
+	["Consumable.Food.Buff.Dodge"]="43652:30",
+	["Consumable.Food.Buff.Expertise"]="42994:40",
+	["Consumable.Food.Buff.Haste Rating"]="34751:30,34757:40,34125:30,42942:30",
+	["Consumable.Food.Buff.Healing"]="35565:14,27666:44,30357:44",
+	["Consumable.Food.Buff.Hit Rating"]="33872:20,42996:40,44953:40",
+	["Consumable.Food.Buff.HP Regen"]="13932:6",
+	["Consumable.Food.Buff.Intellect"]="18254:10",
+	["Consumable.Food.Buff.Mana Regen"]="21072:3,21217:6,13931:8,27663:8,34758:16,34752:12,34765:12,42993:16",
+	["Consumable.Food.Buff.Spell Damage"]="35565:14,31673:23,27657:23,30361:23,27665:23,34755:46,34767:46,34763:35,34749:35,43268:35",
+	["Consumable.Food.Buff.Spirit"]="2680:2,2888:2,5472:2,5474:2,6888:2,11584:2,12224:2,17197:2,17198:2,24105:2,27635:2,23756:2,724:4,2683:4,2684:4,2687:4,3220:4,3662:4,5476:4,5477:4,5525:4,22645:4,27636:4,1017:6,1082:6,3663:6,3664:6,3665:6,3666:6,3726:6,3727:6,5479:6,5480:6,5527:6,12209:6,3728:8,3729:8,4457:8,6038:8,12210:8,12212:8,12213:8,12214:8,13851:8,20074:8,13929:10,24539:10,12215:12,12216:12,16971:12,17222:12,18045:12,12218:12,24540:14,27651:20,27655:20,27657:20,27658:20,27659:20,27660:20,27662:20,27664:20,27665:20,27666:20,27667:20,30155:20,30357:20,30358:20,30359:20,30361:20,31672:20,31673:20,20516:20,21254:20,32721:20,33052:20,33867:20,33872:20,34410:20,42779:25,42998:40",
+	["Consumable.Food.Buff.Stamina"]="2680:2,2888:2,5472:2,5474:2,6888:2,11584:2,12224:2,17197:2,17198:2,24105:2,27635:2,23756:2,724:4,2683:4,2684:4,2687:4,3220:4,3662:4,5476:4,5477:4,5525:4,22645:4,27636:4,1017:6,1082:6,3663:6,3664:6,3665:6,3666:6,3726:6,3727:6,5479:6,5480:6,5527:6,12209:6,3728:8,3729:8,4457:8,6038:8,12210:8,12212:8,12213:8,12214:8,13851:8,20074:8,13927:10,13934:10,11950:10,24009:10,28501:10,24008:10,12215:12,12216:12,16971:12,17222:12,18045:12,12218:12,24540:14,30155:20,27651:20,27660:20,27662:20,31672:20,20516:20,21254:20,21023:25,27663:20,32721:20,33867:20,34410:20,42779:25,27667:30,33052:30,42995:40,34748:30,34754:40,34758:40,34752:30,42994:40,34751:30,34756:40,34755:40,34757:40,34750:30,39691:30,34125:30,34749:30,43268:30,42942:40,42999:40,43000:40,34767:40,34762:40,34769:40,34765:40,34764:40,34766:40,34763:40,42996:40,34768:40,42993:40,42998:40,44953:40",
+	["Consumable.Food.Buff.Strength"]="13810:10,20452:20,29292:20,30359:20,27658:20,43000:40",
+
+	["Consumable.Food.Buff.Other"]="6657,12217,33866,42997,43001,43491,43492,43488,43490,33924,37452,43572",
+
+	["Consumable.Food.Combo Health"]="21071:155,21153:567,2682:294,3448:294,13724:2148,33004:2148,20031:2550,19301:4410,28112:4410,32722:2148,33053:7500,34062:7500,34780:7500,43518:13200,43523:15000,34760:15000,34761:15000,34759:15000,45932:18000",
+	["Consumable.Food.Combo Mana"]="21071:315,21153:882,2682:294,3448:294,33004:2934,13724:4410,20031:4410,19301:4410,28112:4410,32722:4410,33053:7200,34062:7200,34780:7200,43518:9180,43523:12960,34760:12960,34761:12960,34759:12960,45932:15000",
+	["Consumable.Food.Combo Percent"]="21537:100,20388:75,20389:75,20390:75,21215:100",
+	["Consumable.Food.Percent.Basic"]="19696:50,19994:50,19995:50,21235:50,19996:50",
+	["Consumable.Food.Percent.Bonus"]="20516:48,21254:48,44791:50",
+
+	-- Deprecated: Consumable.Potion.Buff.Armor - Consumable.Potion.Other.Rage
+	-- See Consumable.Buff.*
+	["Consumable.Potion.Buff.Armor"]="5997:50,8951:250,3389:150,13445:450,4623:1000,13455:2000",
+	["Consumable.Potion.Buff.Attack Power"]="9224:265,12820:35",
+	["Consumable.Potion.Buff.Elemental Protection"]="6048:900,6049:1300,6050:1800,6051:400,6052:1800,13457:2600,13459:2600,13456:2600,13458:2600,13461:2600",
+	["Consumable.Potion.Buff.Health"]="2458:27,3825:120,13510:1200",
+	["Consumable.Potion.Buff.Mana"]="13511:2000",
+	["Consumable.Potion.Buff.Other"]="3387,10592,3823,2459,5996,3828,9233,9154,9172,5634,9197,6372,13506,8529",
+	["Consumable.Potion.Buff.Regen"]="3382:2,3388:6,3826:12",
+	["Consumable.Potion.Buff.Resistance"]="9088:10,3384:25,9036:50,13513:25",
+	["Consumable.Potion.Buff.Spell Damage"]="6373:10,17708:15,13454:35,9155:20,9264:40,13512:70,32900:70",
+	["Consumable.Potion.Buff.Stat.Agility"]="2457:4,3390:8,8949:15,9187:25,13452:25,22831:35",
+	["Consumable.Potion.Buff.Stat.Intellect"]="3383:6,13447:18,9179:25",
+	["Consumable.Potion.Buff.Stat.Spirit"]="13447:18",
+	["Consumable.Potion.Buff.Stat.Stamina"]="13453:18",
+	["Consumable.Potion.Buff.Stat.Strength"]="2454:4,6662:8,3391:8,13453:18,9206:25",
+	["Consumable.Potion.Other.Energy"]="7676,27553",
+	["Consumable.Potion.Other.Rage"]="5631:30,5633:45,13442:45",
+
+	--NOT AUTOGENNED (All potions.  I'd like to get this mined, but the filters for these items on allakhazam and wowhead are nonexistant.)
+	["Consumable.Potion.Other.Cure"]="3386,13462,9030,2633",
+	["Consumable.Potion.Recovery.Dreamless Sleep"]="12190:1200,20002:2100,22836:3600",
+	["Consumable.Potion.Recovery.Health.Anywhere"]="43569:1920",
+	["Consumable.Potion.Recovery.Healing.Basic"]="118:80,858:160,4596:160,929:320,1710:520,11562:670,3928:800,18839:800,13446:1400,31838:1400,31839:1400,31852:1400,31853:1400,28100:1400,33092:2000,23822:2000,22829:2000,32947:2000,33934:2000,33447:3600,41166:3600",
+	["Consumable.Potion.Recovery.Healing.Blades Edge"]="32784:1400,32910:1400",
+	["Consumable.Potion.Recovery.Healing.Coilfang"]="32904:2000",
+	["Consumable.Potion.Recovery.Healing.Tempest Keep"]="32905:2000",
+	["Consumable.Potion.Recovery.Healing.PvP"]="17349:640,17348:1120",
+	["Consumable.Potion.Recovery.Mana.Anywhere"]="43570:500",
+	["Consumable.Potion.Recovery.Mana.Basic"]="2455:160,3385:320,35287:470,3827:520,6149:800,13443:1200,18841:1200,13444:1800,31840:1800,31841:1800,31854:1800,31855:1800,28101:1800,33093:2400,23823:2400,22832:2400,32948:2400,33935:2400,31677:3200,42545:4300,33448:4300",
+	["Consumable.Potion.Recovery.Mana.Blades Edge"]="32909:2400,32783:2400",
+	["Consumable.Potion.Recovery.Mana.Coilfang"]="32903:2400",
+	["Consumable.Potion.Recovery.Mana.Pvp"]="17351:1120,17352:640",
+	["Consumable.Potion.Recovery.Mana.Tempest Keep"]="32902:2400",
+	["Consumable.Potion.Recovery.Rejuvenation"]="2456:120,11952:425,9144:750,29531:750,18253:1600,22850:2200,34440:2200",
+
+	["Consumable.Scroll"]="954,955,1180,1181,1477,1478,1711,1712,2289,2290,3012,3013,4419,4421,4422,4424,4425,4426,10305,10306,10307,10308,10309,10310,27498,27499,27500,27501,27502,27503,33457,33458,33459,33460,33461,33462,37091,37092,37093,37094,37097,37098,37118,43463,43464,43465,43466,43467,44314,44315,49632,49768",
+
+	["Consumable.Leatherworking.Drums"]="m,Consumable.Cooldown.Drums.Drums",
+	["Consumable.Tailor.Net"]="m,Consumable.Cooldown.Drums.Nets",
+
+	--NOT AUTOGENNED These are items you need to (right) click to use.  If it makes no sense in a button, it does not belong here.  Permanent: Vargoth's Staff, Pony Keg, etc. Quest: removed by Blizzard on quest completion. Replenished: dailies like booterang or others you can replenish like Halaa bombs.
+	["Consumable.Warlock.Firestone"]="13700:75,22128:141",
+	["Consumable.Warlock.Healthstone"]="5509:500,5510:800,5511:250,5512:100,9421:1200,19004:110,19005:120,19006:275,19007:300,19008:550,19009:600,19010:880,19011:960,19012:1320,19013:1440,22103:2080,22104:2288,22105:2496,36889:3500,36890:3850,36891:4200,36892:4280,36893:4708,36894:5136",
+	["Consumable.Warlock.Soulstone"]="5232:18,16892:30,16893:40,16895:50,16896:60,22116:70,36895:76",
+	["Consumable.Warlock.Spellstone"]="13602:11,36896:20,36897:20",
+
+	--NOT AUTOGENNED (All water.  I'd like to get this mined, but the filters for these items on allakhazam and wowhead are nonexistant.)
+	["Consumable.Water.Basic"]="1401:60,159:151,1179:436,17404:436,1205:835,9451:835,19299:835,1708:1344,4791:1344,10841:1344,17405:1344,1645:1992,19300:1992,8766:2934,23161:2934,23585:2934,24006:2934,38429:2934,32455:4200,18300:4200,24007:4200,28399:5100,29454:5100,38430:5100,27860:7200,29395:7200,30457:7200,29401:7200,33042:7200,32668:7200,32453:7200,35954:7200,37253:7200,38431:7200,44750:7200,38698:9180,42777:12960,43086:9180,40357:7200,33445:12960,33444:9180,43236:12960,41731:12960,39520:12960",
+	["Consumable.Water.Battleground.Arathi Basin"]="20063:2202,20064:3306,20062:4410,20223:2202,20224:3306,20222:4410,20226:2202,20227:3306,20225:4410",
+	["Consumable.Water.Battleground.Warsong Gulch"]="19062:2202,19061:3306,19060:4410",
+	["Consumable.Water.Bonus"]="34017:151,34018:436,34019:835,34020:1344,34021:1992,34022:2934,33034:4200,13813:4410,19318:4410,33035:7200,33036:7200,33825:7200",
+	["Consumable.Water.Buff.Spell Crit Rating"]="33825:20",
+	["Consumable.Water.Buff.Spirit"]="34017:2,34018:4,34019:6,34020:8,13813:10,19318:10,34021:12,34022:14,33034:20,33035:20,33036:20,33825:20",
+	["Consumable.Water.Buff.Stamina"]="34017:2,34018:4,34019:6,34020:8,34021:12,34022:14,33034:20,33035:20",
+	["Consumable.Water.Buff.Strength"]="33036:20",
+	["Consumable.Water.Conjured"]="5350:151,2288:436,2136:835,3772:1344,8077:1992,8078:2934,8079:4200,30703:5100,22018:7200",
+	["Consumable.Water.Percentage"]="19997:60,21241:60",
+
+	--!!Add to miner
+	["Consumable.Weapon Buff.Firestone"]="41170:7,41169:14,41171:21,41172:28,40773:35,41173:42,41174:49",
+	["Consumable.Weapon Buff.Misc"]="3824,3829,31535,23123,34538,34539,44065",
+	["Consumable.Weapon Buff.Oil.Mana"]="20745:4,20747:8,20748:12,22521:14",
+	["Consumable.Weapon Buff.Oil.Wizard"]="20744:8,20746:16,20750:24,20749:36,22522:42",
+	["Consumable.Weapon Buff.Poison.Anesthetic"]="21835:153,43237:231",
+	["Consumable.Weapon Buff.Poison.Crippling"]="3775:50",
+	["Consumable.Weapon Buff.Poison.Deadly"]="2892:36,2893:52,8984:80,8985:108,20844:136,22053:144,22054:180,43232:244,43233:296",
+	["Consumable.Weapon Buff.Poison.Instant"]="6947:22,6949:34,6950:50,8926:76,8927:105,8928:130,21927:170,43230:245,43231:300",
+	["Consumable.Weapon Buff.Poison.Mind Numbing"]="5237:60",
+	["Consumable.Weapon Buff.Poison.Wound"]="10918:17,10920:25,10921:38,10922:53,22055:112,43234:188,43235:231",
+	["Consumable.Weapon Buff.Spellstone"]="41191:10,41192:20,41193:30,41194:40,41195:50,41196:60",
+	["Consumable.Weapon Buff.Stone.Sharpening Stone"]="23122,2862:2,2863:3,2871:4,7964:6,12404:8,18262,23528:12,23529:14",
+	["Consumable.Weapon Buff.Stone.Weight Stone"]="3239:2,3240:3,3241:4,7965:6,12643:8,28420:12,28421",
+})
diff --git a/libs/LibPeriodicTable-3.1-Consumable/LibPeriodicTable-3.1-Consumable.toc b/libs/LibPeriodicTable-3.1-Consumable/LibPeriodicTable-3.1-Consumable.toc
new file mode 100644
index 0000000..c365665
--- /dev/null
+++ b/libs/LibPeriodicTable-3.1-Consumable/LibPeriodicTable-3.1-Consumable.toc
@@ -0,0 +1,16 @@
+## Interface: 30200
+## LoadOnDemand: 1
+## Title: Lib: PeriodicTable-3.1 [|cffeda55fConsumable|r]
+## Notes: PeriodicTable data module.
+## Author: Nymbia
+## Version: 3.1
+## Dependencies: LibPeriodicTable-3.1
+## X-Category: Library
+## X-License: LGPL v2.1
+## X-PeriodicTable-3.1-Module: Consumable
+## X-Curse-Packaged-Version: r293
+## X-Curse-Project-Name: LibPeriodicTable-3.1
+## X-Curse-Project-ID: libperiodictable-3-1
+## X-Curse-Repository-ID: wow/libperiodictable-3-1/mainline
+
+LibPeriodicTable-3.1-Consumable.lua
diff --git a/libs/LibPeriodicTable-3.1-Misc/LibPeriodicTable-3.1-Misc.lua b/libs/LibPeriodicTable-3.1-Misc/LibPeriodicTable-3.1-Misc.lua
new file mode 100644
index 0000000..9df148a
--- /dev/null
+++ b/libs/LibPeriodicTable-3.1-Misc/LibPeriodicTable-3.1-Misc.lua
@@ -0,0 +1,152 @@
+-- (c) 2007 Nymbia.  see LGPLv2.1.txt for full details.
+--DO NOT MAKE CHANGES TO THIS FILE BEFORE READING THE WIKI PAGE REGARDING CHANGING THESE FILES
+if not LibStub("LibPeriodicTable-3.1", true) then error("PT3 must be loaded before data") end
+LibStub("LibPeriodicTable-3.1"):AddData("Misc", gsub("$Rev: 293 $", "(%d+)", function(n) return n+90000 end), {
+	["Misc.Bag.Basic"]="37606:1,20474:4,22976:4,23389:4,805:6,828:6,2082:6,4238:6,4496:6,4957:6,5081:6,5571:6,5572:6,5762:6,6756:6,22571:6,856:8,1537:8,2657:8,3233:8,3343:8,4240:8,4241:8,4498:8,5573:8,5574:8,5763:8,11845:8,23852:8,804:10,857:10,918:10,932:10,933:10,1470:10,1729:10,3352:10,4245:10,4497:10,5575:10,5576:10,5764:10,5765:10,6446:10,1652:12,1725:12,4499:12,10050:12,10051:12,38145:12,1685:14,3914:14,9587:14,11324:14,14046:14,19291:14,30744:14,4500:16,10959:16,11742:16,14155:16,20400:16,21841:16,14156:18,17966:18,19914:18,21843:18,22679:18,27680:18,33117:18,21876:20,34067:20,34845:20,35516:20,41599:20,50317:20,38082:22,41600:22,43345:22,49295:22,50316:22,51809:24,23162:36",
+	["Misc.Bag.Special.Ammo"]="2102:6,5441:8,7279:8,3574:10,11363:10,3604:12,7372:14,2663:16,8218:16,19320:16,29118:18,34099:20,34106:24,44447:28",
+	["Misc.Bag.Special.Enchanting"]="22246:16,22248:20,30748:20,22249:24,21858:28,41598:32",
+	["Misc.Bag.Special.Engineering"]="30745:20,23774:24,23775:32",
+	["Misc.Bag.Special.Herb"]="22250:12,22251:20,22252:24,38225:28,45773:32",
+	["Misc.Bag.Special.Inscription"]="39489:10,44446:32",
+	["Misc.Bag.Special.Jewelcrafting"]="30747:20,24270:24",
+	["Misc.Bag.Special.Leatherworking"]="34482:20,34490:24,38399:28",
+	["Misc.Bag.Special.Mining"]="30746:20,29540:28,38347:32",
+	["Misc.Bag.Special.Quiver"]="2101:6,5439:8,7278:8,3573:10,11362:10,3605:12,7371:14,2662:16,8217:16,19319:16,18714:18,29143:18,29144:18,34100:20,34105:24,44448:28",
+	["Misc.Bag.Special.Soul Shard"]="22243:12,22244:16,21340:20,21341:24,21342:28,21872:28,41597:32",
+
+	["Misc.Container.ItemsInType.Soul Shard"]="6265",
+	["Misc.Container.ItemsInType.Herb"]="765,785,1401,2263,2447,2449,2450,2452,2453,3355,3356,3357,3358,3369,3818,3819,3820,3821,4625,5056,5168,8153,8831,8836,8838,8839,8845,8846,10286,11018,11020,11022,11024,11040,11514,11951,11952,13463,13464,13465,13466,13467,13468,16205,16208,17034,17035,17036,17037,17038,17760,18297,19726,19727,21886,22094,22147,22575,22710,22785,22786,22787,22788,22789,22790,22791,22792,22793,22794,22795,22797,23329,23501,23788,24245,24246,24401,31300,32468,35625,36901,36902,36903,36904,36905,36906,36907,36908,37704,37921,39969,39970,44614",
+	["Misc.Container.ItemsInType.Enchanting"]="6217,6218,6338,6339,6342,6344,6346,6347,6348,6349,6375,6377,7067,7068,7075,7076,7077,7078,7080,7081,7082,7972,10938,10939,10940,10978,10998,11038,11039,11081,11082,11083,11084,11098,11101,11128,11130,11134,11135,11137,11138,11139,11144,11145,11150,11151,11152,11163,11164,11165,11166,11167,11168,11174,11175,11176,11177,11178,11202,11203,11204,11205,11206,11207,11208,11223,11224,11225,11226,11813,12803,12808,12810,14343,14344,16202,16203,16204,16206,16207,16214,16215,16216,16217,16218,16219,16220,16221,16222,16223,16224,16242,16243,16244,16245,16246,16247,16248,16249,16250,16251,16252,16253,16254,16255,17725,18259,18260,19444,19445,19446,19447,19448,19449,20725,20726,20727,20728,20729,20730,20731,20732,20733,20734,20735,20736,20752,20753,20754,20755,20756,20757,20758,21884,21885,21886,22392,22445,22446,22447,22448,22449,22450,22451,22452,22456,22457,22461,22462,22463,22530,22531,22532,22533,22534,22535,22536,22537,22538,22539,22540,22541,22542,22543,22544,22545,22547,22548,22551,22552,22553,22554,22555,22556,22557,22558,22559,22560,22561,22562,22563,22565,22572,22573,22574,22575,22576,22577,22578,23571,23572,24000,24003,25843,25844,25845,25848,25849,28270,28271,28272,28273,28274,28276,28277,28279,28280,28281,28282,33148,33149,33150,33151,33152,33153,33165,33307,34052,34053,34054,34055,34056,34057,34872,35297,35298,35299,35498,35500,35622,35623,35624,35625,35627,35756,36860,37330,37331,37332,37333,37334,37335,37339,37340,37344,37345,37346,37347,37348,37349,37602,37700,37701,37702,37703,37704,37705,38682,39349,39350,40248,41741,41745,43145,43146,44452,44471,44472,44473,44483,44484,44485,44486,44487,44488,44489,44490,44491,44492,44494,44495,44496,44498,44944,45050,45059,46027,46348,50406",
+	["Misc.Container.ItemsInType.Engineering"]="814,4357,4358,4359,4360,4361,4363,4364,4365,4366,4367,4368,4370,4371,4373,4374,4375,4376,4377,4378,4380,4381,4382,4384,4385,4386,4387,4388,4389,4390,4391,4392,4393,4394,4395,4396,4397,4398,4399,4400,4401,4403,4404,4405,4406,4407,4408,4409,4410,4411,4412,4413,4414,4415,4416,4417,4852,5507,5956,6219,6672,6712,6714,6716,7067,7068,7069,7075,7076,7077,7078,7080,7082,7148,7189,7190,7191,7506,7560,7561,7742,7972,8151,9060,9061,9312,9313,9318,10286,10498,10499,10500,10501,10502,10503,10504,10505,10506,10507,10514,10518,10542,10543,10545,10546,10548,10558,10559,10560,10561,10562,10576,10577,10580,10585,10586,10587,10588,10601,10602,10603,10604,10605,10606,10607,10608,10609,10645,10646,10647,10648,10716,10720,10721,10723,10724,10725,10726,10727,10790,10791,11590,11825,11826,11827,11828,12803,12804,12808,13308,13309,13310,13311,14639,15846,15992,15993,15994,15996,15999,16000,16005,16006,16008,16009,16022,16023,16040,16041,16042,16043,16044,16045,16046,16047,16048,16049,16050,16051,16052,16053,16054,16055,16056,17716,17720,18168,18232,18283,18290,18291,18292,18587,18588,18594,18631,18634,18636,18637,18638,18639,18641,18645,18647,18648,18649,18650,18651,18652,18653,18654,18655,18656,18657,18658,18660,18661,18984,18986,19026,19027,19726,19998,19999,20000,20001,20475,20816,20834,21277,21557,21558,21559,21571,21574,21576,21589,21590,21592,21714,21716,21718,21724,21725,21726,21727,21728,21729,21730,21731,21732,21733,21734,21735,21737,21738,21884,21885,21886,22451,22452,22456,22457,22572,22573,22574,22575,22576,22577,22578,22728,22729,23571,23572,23736,23737,23758,23761,23762,23763,23764,23765,23766,23767,23768,23769,23770,23771,23781,23782,23783,23784,23785,23786,23787,23799,23800,23802,23803,23804,23805,23806,23807,23808,23809,23810,23811,23814,23815,23816,23817,23819,23820,23821,23822,23823,23824,23825,23826,23827,23828,23829,23831,23832,23835,23836,23838,23839,23840,23841,23874,23883,23884,23887,23888,25886,25887,30542,30544,31666,32381,32413,32423,32461,32472,32473,32474,32475,32476,32478,32479,32480,32494,32495,33092,33093,33804,34060,34061,34113,34114,34353,34354,34355,34356,34357,34504,34627,34847,35181,35182,35183,35184,35185,35186,35187,35189,35190,35191,35192,35193,35194,35195,35196,35197,35310,35311,35581,35582,35622,35623,35624,35625,35627,36860,37567,37700,37701,37702,37703,37704,37705,39213,39501,39502,39681,39682,39683,39684,39685,39686,39690,40248,40533,40536,40767,40768,40769,40771,40772,40865,40892,40893,40895,41112,41119,41121,41146,41166,41167,41508,42545,42546,42549,42550,42551,42552,42553,42554,42555,42641,42986,43002,44413,44499,44500,44501,44502,44503,44506,44507,44739,44740,44741,44742,44918,44919,44949,44951,45631,47828,48933,48945,49040,49050,52022,52023",
+	["Misc.Container.ItemsInType.Gem"]="774,818,1206,1210,1529,1705,3864,5498,5500,7909,7910,7971,11382,11754,12361,12363,12364,12799,12800,13926,18335,19774,20815,20824,21929,22459,22460,23077,23079,23094,23095,23096,23097,23098,23099,23100,23101,23103,23104,23105,23106,23107,23108,23109,23110,23111,23112,23113,23114,23115,23116,23117,23118,23119,23120,23121,23436,23437,23438,23439,23440,23441,24027,24028,24029,24030,24031,24032,24033,24035,24036,24037,24039,24047,24048,24050,24051,24052,24053,24054,24055,24056,24057,24058,24059,24060,24061,24062,24065,24066,24067,24186,24188,24190,24234,24235,24242,24243,24478,24479,25867,25868,25890,25893,25894,25895,25896,25897,25898,25899,25901,27679,27777,27785,27786,27809,27812,27820,28118,28119,28120,28123,28290,28360,28361,28362,28363,28458,28459,28460,28461,28462,28463,28464,28465,28466,28467,28468,28469,28470,28556,28557,28595,30546,30547,30548,30549,30550,30551,30552,30553,30554,30555,30556,30558,30559,30560,30563,30564,30565,30566,30571,30572,30573,30574,30575,30581,30582,30583,30584,30585,30586,30587,30588,30589,30590,30591,30592,30593,30594,30598,30600,30601,30602,30603,30604,30605,30606,30607,30608,31079,31080,31116,31117,31118,31860,31861,31862,31863,31864,31865,31866,31867,31868,31869,32193,32194,32195,32196,32197,32198,32199,32200,32201,32202,32203,32204,32205,32206,32207,32208,32209,32210,32211,32212,32213,32214,32215,32216,32217,32218,32219,32220,32221,32222,32223,32224,32225,32226,32227,32228,32229,32230,32231,32249,32409,32410,32634,32635,32636,32637,32638,32639,32640,32641,32735,32833,32836,33131,33132,33133,33134,33135,33137,33138,33139,33140,33141,33142,33143,33144,33782,34142,34143,34220,34256,34831,35315,35316,35318,35487,35488,35489,35501,35503,35707,35758,35759,35760,35761,36766,36767,36783,36784,36917,36918,36919,36920,36921,36922,36923,36924,36925,36926,36927,36928,36929,36930,36931,36932,36933,36934,37503,38545,38546,38547,38548,38549,38550,39900,39905,39906,39907,39908,39909,39910,39911,39912,39914,39915,39916,39917,39918,39919,39920,39927,39932,39933,39934,39935,39936,39937,39938,39939,39940,39941,39942,39943,39944,39945,39946,39947,39948,39949,39950,39951,39952,39953,39954,39955,39956,39957,39958,39959,39960,39961,39962,39963,39964,39965,39966,39967,39968,39974,39975,39976,39977,39978,39979,39980,39981,39982,39983,39984,39985,39986,39988,39989,39990,39991,39992,39996,39997,39998,39999,40000,40001,40002,40003,40008,40009,40010,40011,40012,40013,40014,40015,40016,40017,40022,40023,40024,40025,40026,40027,40028,40029,40030,40031,40032,40033,40034,40037,40038,40039,40040,40041,40043,40044,40045,40046,40047,40048,40049,40050,40051,40052,40053,40054,40055,40056,40057,40058,40059,40085,40086,40088,40089,40090,40091,40092,40094,40095,40096,40098,40099,40100,40101,40102,40103,40104,40105,40106,40111,40112,40113,40114,40115,40116,40117,40118,40119,40120,40121,40122,40123,40124,40125,40126,40127,40128,40129,40130,40131,40132,40133,40134,40135,40136,40137,40138,40139,40140,40141,40142,40143,40144,40145,40146,40147,40148,40149,40150,40151,40152,40153,40154,40155,40156,40157,40158,40159,40160,40161,40162,40163,40164,40165,40166,40167,40168,40169,40170,40171,40172,40173,40174,40175,40176,40177,40178,40179,40180,40181,40182,40392,41266,41285,41307,41333,41334,41335,41339,41367,41375,41376,41377,41378,41379,41380,41381,41382,41385,41389,41395,41396,41397,41398,41400,41401,41429,41432,41433,41434,41435,41436,41437,41438,41439,41440,41441,41442,41443,41444,41445,41446,41447,41448,41449,41450,41451,41452,41453,41454,41455,41456,41457,41458,41459,41460,41461,41462,41463,41464,41465,41466,41467,41468,41469,41470,41471,41472,41473,41474,41475,41476,41477,41478,41479,41480,41481,41482,41483,41484,41485,41486,41487,41488,41489,41490,41491,41492,41493,41494,41495,41496,41497,41498,41499,41500,41501,41502,42142,42143,42144,42145,42146,42148,42149,42150,42151,42152,42153,42154,42155,42156,42157,42158,42225,42420,42421,42701,42702,44066,44076,44078,44081,44082,44084,44087,44088,44089,45054,45862,45879,45880,45881,45882,45883,45987,46849,49110",
+	["Misc.Container.ItemsInType.Inscription"]="954,955,1180,1181,1477,1711,1712,2289,2290,3012,3371,3372,4419,4422,4424,4425,4426,8925,10306,10307,10308,10309,10310,10648,18256,19227,19228,19230,19231,19232,19233,19234,19235,19236,19257,19258,19259,19260,19261,19262,19263,19264,19265,19267,19268,19269,19270,19271,19272,19273,19274,19275,19276,19277,19278,19279,19280,19281,19282,19283,19284,27498,27499,27501,27502,27503,31882,31883,31884,31885,31886,31887,31888,31889,31890,31891,31892,31893,31894,31895,31896,31898,31899,31900,31901,31902,31903,31904,31905,31906,31907,31908,31909,31910,31911,31912,31913,31914,31915,31916,31917,31918,33457,33458,33460,33461,33462,34645,34647,37091,37092,37093,37094,37097,37098,37100,37101,37118,37140,37143,37145,37147,37156,37159,37160,37163,37164,37602,38682,39151,39334,39338,39339,39340,39341,39342,39343,39349,39350,39354,39469,39501,39502,39505,39774,40411,40896,40897,40899,40900,40901,40902,40903,40906,40908,40909,40912,40913,40914,40915,40916,40919,40920,40921,40922,40923,40924,41092,41094,41095,41096,41097,41098,41099,41100,41101,41102,41103,41104,41105,41106,41107,41108,41109,41110,41517,41518,41524,41526,41527,41529,41530,41531,41532,41533,41534,41535,41536,41537,41538,41539,41540,41541,41542,41547,41552,42396,42397,42398,42399,42400,42401,42402,42403,42404,42405,42406,42407,42408,42409,42410,42411,42412,42414,42415,42416,42417,42453,42454,42455,42456,42457,42458,42459,42460,42461,42462,42463,42464,42465,42466,42467,42468,42469,42470,42471,42472,42473,42734,42735,42736,42737,42738,42739,42740,42741,42742,42743,42744,42745,42746,42747,42748,42749,42750,42751,42752,42753,42754,42897,42898,42899,42900,42901,42902,42903,42904,42905,42906,42907,42908,42909,42910,42911,42912,42913,42914,42915,42916,42917,42922,42954,42955,42956,42957,42958,42959,42960,42961,42962,42963,42964,42965,42966,42967,42968,42969,42970,42971,42972,42973,42974,42975,42977,42978,42979,42980,42981,42982,42983,43039,43103,43104,43105,43106,43107,43108,43109,43115,43116,43117,43118,43119,43120,43121,43122,43123,43124,43125,43126,43127,43145,43146,43316,43331,43332,43334,43335,43338,43339,43340,43342,43343,43344,43350,43351,43354,43355,43356,43357,43359,43360,43361,43364,43365,43366,43367,43368,43369,43370,43371,43372,43373,43374,43376,43377,43378,43379,43380,43381,43385,43386,43388,43389,43390,43391,43392,43393,43394,43395,43396,43397,43398,43399,43400,43412,43413,43414,43415,43416,43417,43418,43419,43420,43421,43422,43423,43424,43425,43426,43427,43428,43429,43430,43431,43432,43463,43464,43465,43466,43533,43534,43535,43536,43537,43538,43539,43541,43542,43543,43544,43545,43546,43547,43548,43549,43550,43551,43552,43553,43554,43671,43672,43673,43674,43725,43825,43826,43827,43850,43867,43868,43869,44143,44144,44145,44146,44147,44148,44154,44155,44156,44157,44158,44165,44184,44185,44259,44260,44261,44262,44263,44264,44265,44266,44267,44268,44269,44270,44271,44272,44273,44274,44275,44276,44277,44278,44279,44280,44281,44282,44284,44285,44286,44287,44288,44289,44290,44291,44292,44293,44294,44314,44315,44326,44684,44920,44922,44923,44928,44955,45601,45602,45603,45604,45622,45623,45625,45731,45732,45733,45734,45735,45736,45737,45738,45739,45740,45741,45742,45743,45744,45745,45746,45747,45753,45755,45756,45757,45758,45760,45761,45762,45764,45766,45767,45768,45769,45770,45771,45772,45775,45776,45777,45778,45779,45780,45781,45782,45783,45785,45789,45790,45792,45793,45794,45795,45797,45799,45800,45803,45804,45805,45806,45912,46108,46372,48720,49084,49632,49768,50045,50077,50125,50166,50167,50168",
+	["Misc.Container.ItemsInType.Leatherworking"]="783,2304,2313,2318,2319,2320,2321,2324,2325,2406,2407,2408,2409,2604,2605,2934,3182,3824,4096,4231,4232,4233,4234,4235,4236,4265,4289,4291,4293,4294,4296,4297,4298,4299,4300,4301,4304,4337,4340,4341,4342,4461,5082,5083,5373,5637,5784,5785,5786,5787,5788,5789,5972,5973,5974,6260,6261,6470,6471,6474,6475,6476,6710,6715,7005,7067,7070,7071,7075,7076,7077,7078,7080,7081,7082,7286,7287,7288,7289,7290,7360,7361,7362,7363,7364,7392,7449,7450,7451,7452,7453,7613,8150,8151,8152,8153,8154,8165,8167,8169,8170,8171,8172,8173,8343,8384,8385,8386,8387,8389,8390,8395,8397,8398,8399,8400,8401,8402,8403,8404,8405,8406,8407,8408,8409,10290,11512,12607,12709,12731,12753,12803,12804,12810,13287,13288,14341,14635,15407,15408,15409,15410,15412,15414,15415,15416,15417,15419,15564,15725,15726,15727,15728,15729,15730,15731,15732,15733,15734,15735,15737,15738,15739,15740,15741,15742,15743,15744,15745,15746,15747,15748,15749,15751,15752,15753,15754,15755,15756,15757,15758,15759,15760,15761,15762,15763,15764,15765,15768,15770,15771,15772,15773,15774,15775,15776,15777,15779,15781,15846,17012,17022,17023,17025,17056,17722,18239,18240,18251,18252,18512,18514,18515,18516,18517,18518,18519,18662,18731,18949,19326,19327,19328,19329,19330,19331,19332,19333,19726,19767,19768,19769,19770,19771,19772,19773,19901,20253,20254,20381,20382,20498,20499,20500,20501,20506,20507,20508,20509,20510,20511,20576,21548,21884,21885,21886,21887,22451,22452,22456,22457,22572,22573,22574,22575,22576,22577,22578,22769,22770,22771,23571,23572,23793,25649,25650,25651,25652,25699,25700,25707,25708,25720,25721,25722,25725,25726,25728,25729,25730,25731,25732,25733,25734,25735,25736,25737,25738,25739,25740,25741,25742,25743,29213,29214,29215,29217,29218,29219,29483,29485,29486,29487,29488,29528,29529,29530,29531,29532,29533,29534,29535,29536,29539,29547,29548,29664,29669,29672,29673,29674,29675,29677,29682,29684,29689,29691,29693,29698,29700,29701,29702,29703,29704,29713,29714,29717,29718,29719,29720,29721,29722,29723,29724,29725,29726,29727,29728,29729,29730,29731,29732,29733,29734,30183,30301,30302,30303,30304,30305,30306,30307,30308,30444,31361,31362,32428,32429,32430,32431,32432,32433,32434,32435,32436,32470,32744,32745,32746,32747,32748,32749,32750,32751,33124,33205,33567,33568,34172,34173,34174,34175,34200,34201,34207,34218,34262,34330,34491,34664,35212,35213,35214,35215,35216,35217,35218,35219,35300,35301,35302,35303,35622,35623,35624,35625,35627,36860,37700,37701,37702,37703,37704,37705,38371,38372,38373,38374,38375,38376,38425,38426,38557,38558,38561,40248,44128,44509,44510,44511,44512,44513,44514,44515,44516,44517,44518,44519,44520,44521,44522,44523,44524,44525,44526,44527,44528,44530,44531,44532,44533,44534,44535,44536,44537,44538,44539,44540,44541,44542,44543,44544,44545,44546,44547,44548,44549,44550,44551,44552,44553,44559,44560,44561,44562,44563,44584,44585,44586,44587,44588,44589,44932,44933,44963,45094,45095,45096,45097,45098,45099,45100,45101,47628,47629,47630,47631,47632,47633,47634,47635,47646,47647,47648,47649,47650,47651,47652,47653,49633,49634,49957,49958,49959,49961,49962,49963,49965,49966",
+	["Misc.Container.ItemsInType.Mining"]="756,778,1819,1893,1959,2770,2771,2772,2775,2776,2798,2835,2836,2838,2840,2841,2842,2901,3340,3575,3576,3577,3858,3859,3860,4278,5833,5956,6037,7911,7912,10620,11370,11371,12359,12360,12365,12655,17771,18562,20723,21884,22202,22203,22452,22573,22574,23424,23425,23426,23427,23445,23446,23447,23448,23449,23573,24186,24188,24190,24234,24235,24242,24243,32464,35128,35622,35623,35624,35627,36860,36909,36910,36912,36913,36914,36915,36916,37663,37700,37701,37702,37703,37705,37706,40772,40892,40893,41163,45201,46849",
+
+	["Misc.Argent Dawn Commission"]="12846:1,13209:2,19812:2,23206:3,23207:3",
+	["Misc.Battleground Tokens"]="20558,20559,20560,29024",
+	["Misc.Battle Standard.Battleground"]="18606,18607",
+	["Misc.Battle Standard.Alterac Valley"]="19045,19046",
+	["Misc.Booze"]="21171:3,21721:5,2593:10,2594:20,2595:20,2596:10,2686:5,2723:5,2894:5,3703:10,4595:20,4600:20,744:20,9260:20,9360:20,9361:50,11846:10,12003:50,1262:20,17048:20,17196:5,17198:10,17402:20,17403:10,18269:20,18284:20,18287:10,18288:20,19221:50,19222:5,21151:20,21114:10,20709:10,30615:20,32667:20,28284:20,33036:20,33929:20",
+
+	["Misc.Currency.Tier Sets.Tier 4"]="29753,29754,29755,29756,29757,29758,29759,29760,29761,29762,29763,29764,29765,29766,29767",
+	["Misc.Currency.Tier Sets.Tier 5"]="30236,30237,30238,30239,30240,30241,30242,30243,30244,30245,30246,30247,30248,30249,30250",
+	["Misc.Currency.Tier Sets.Tier 6"]="31089,31090,31091,31092,31093,31094,31095,31096,31097,31098,31099,31100,31101,31102,31103",
+	["Misc.Currency.Tier Sets.Tier 7.10"]="40610,40611,40612,40613,40614,40615,40616,40617,40618,40619,40620,40621,40622,40623,40624",
+	["Misc.Currency.Tier Sets.Tier 7.25"]="40625,40626,40627,40628,40629,40630,40631,40632,40633,40634,40635,40636,40637,40638,40639",
+	["Misc.Currency.Tier Sets.Tier 8.10"]="45635,45636,45637,45644,45645,45646,45647,45648,45649,45650,45651,45652,45659,45660,45661",
+	["Misc.Currency.Tier Sets.Tier 8.25"]="45632,45633,45634,45638,45639,45640,45641,45642,45643,45653,45654,45655,45656,45657,45658",
+	["Misc.Currency.Tier Sets.Tier 9.25"]="47242",
+    ["Misc.Currency.Tier Sets.Tier 9.25H"]="47557,47558,47559", -- 9.25 (hard mode) drops vanq/prot/conq tokens that can be used for any slot
+
+	["Misc.Currency.Tier Sets.Class.Deathknight"]="40612,40615,40618,40621,40624,40627,40630,40633,40636,40639,45634,45637,45640,45643,45646,45649,45652,45655,45658,45661,47242,47559",
+	["Misc.Currency.Tier Sets.Class.Druid"]="29753,29758,29761,29764,29767,30237,30240,30243,30246,30249,31090,31093,31096,31099,31102,34852,34855,34858,40612,40615,40618,40621,40624,40627,40630,40633,40636,40639,45634,45637,45640,45643,45646,45649,45652,45655,45658,45661,47242,47559",
+	["Misc.Currency.Tier Sets.Class.Hunter"]="29755,29756,29759,29762,29765,30238,30241,30244,30247,30250,31091,31094,31095,31100,31103,34851,34854,34857,40611,40614,40617,40620,40623,40626,40629,40632,40635,40638,45633,45636,45639,45642,45645,45648,45651,45654,45657,45660,47242,47558",
+	["Misc.Currency.Tier Sets.Class.Paladin"]="29754,29757,29760,29763,29766,30236,30239,30242,30245,30248,31089,31092,31097,31098,31101,34848,34853,34856,40610,40613,40616,40619,40622,40625,40628,40631,40634,40637,45632,45635,45638,45641,45644,45647,45650,45653,45656,45659,47242,47557",
+	["Misc.Currency.Tier Sets.Class.Priest"]="29753,29758,29761,29764,29767,30237,30240,30243,30246,30249,31089,31092,31097,31098,31101,34848,34853,34856,40610,40613,40616,40619,40622,40625,40628,40631,40634,40637,45632,45635,45638,45641,45644,45647,45650,45653,45656,45659,47242,47557",
+	["Misc.Currency.Tier Sets.Class.Mage"]="29755,29756,29759,29762,29765,30238,30241,30244,30247,30250,31090,31093,31096,31099,31102,34852,34855,34858,40612,40615,40618,40621,40624,40627,40630,40633,40636,40639,45634,45637,45640,45643,45646,45649,45652,45655,45658,45661,47242,47559",
+	["Misc.Currency.Tier Sets.Class.Rogue"]="29754,29757,29760,29763,29766,30236,30239,30242,30245,30248,31090,31093,31096,31099,31102,34852,34855,34858,40612,40615,40618,40621,40624,40627,40630,40633,40636,40639,45634,45637,45640,45643,45646,45649,45652,45655,45658,45661,47242,47559",
+	["Misc.Currency.Tier Sets.Class.Shaman"]="29754,29757,29760,29763,29766,30236,30239,30242,30245,30248,31091,31094,31095,31100,31103,34851,34854,34857,40611,40614,40617,40620,40623,40626,40629,40632,40635,40638,45633,45636,45639,45642,45645,45648,45651,45654,45657,45660,47242,47558",
+	["Misc.Currency.Tier Sets.Class.Warlock"]="29755,29756,29759,29762,29765,30238,30241,30244,30247,30250,31089,31092,31097,31098,31101,34848,34853,34856,40610,40613,40616,40619,40622,40625,40628,40631,40634,40637,45632,45635,45638,45641,45644,45647,45650,45653,45656,45659,47242,47557",
+	["Misc.Currency.Tier Sets.Class.Warrior"]="29753,29758,29761,29764,29767,30237,30240,30243,30246,30249,31091,31094,31095,31100,31103,34851,34854,34857,40611,40614,40617,40620,40623,40626,40629,40632,40635,40638,45633,45636,45639,45642,45645,45648,45651,45654,45657,45660,47242,47558",
+
+	["Misc.Currency.Instances"]="28558,29434,32897,24368",
+	["Misc.Currency.World"]="26045,26044,24579,29736,29735,24245,32569,32572",
+	["Misc.Currency.Battlegrounds"]="20560,20559,29024,20558",
+	["Misc.Darkmoon Faire.Card"]="19287,19288,19289,19290,31856,31857,31858,31859,42987,42988,42989,42990,44253,44254,44255,",
+	["Misc.Engineering.Explosives"]="m,Misc.Explosives.Engineering",
+	["Misc.Explosives.Engineering"]="4358,4360,4365,4370,6714,4374,4378,4380,10507,4390,4403,4394,18588,10514,10586,10562,18641,15993,16005,16040,23736,23737,23826,23827,32413,40536,40771,41119",
+	["Misc.Explosives.Other"]="4598,11566,23841",
+	["Misc.Engineering.Fireworks"]="9315,9317,9314,9318,19026,9313,9312,21569,5740,21570,21557,21558,21559,21561,21595,21593,21589,21562,21592,21590,21571,21574,21576,21744,21716,21714,21718,34258",
+	["Misc.Hallowed Wands"]="20397,20398,20399,20409,20410,20411,20413,20414",
+	["Misc.Hearth"]="18984,18986,22589,22630,22631,22632,28585,30542,30544,32757,35230,37118,37863,40585,40586,44314,44315,44934,44935,45688,45689,45690,45691,46874,48933,48954,48955,48956,48957,50287,51557,51558,51559,51560,6948:100",
+	["Misc.Key"]="2629,2719,3467,3499,3704,3930,4103,4483,4484,4485,4882,5020,5050,5089,5396,5475,5517,5518,5521,5687,5689,5690,5691,5851,6783,6893,7146,7208,7923,8072,8147,8148,8444,9249,9275,9472,11000,11078,11106,11140,11197,11602,12301,12382,12738,12739,12942,13140,13194,13195,13196,13197,13302,13303,13304,13305,13306,13307,13704,13873,15328,15767,15869,15870,15871,15872,15878,15881,17242,17262,18249,18250,18266,18268,19064,20022,21761,21762,23801,23925,24099,24489,24490,25490,25509,25604,25648,27808,27991,28395,29460,29501,29742,29750,30426,30438,30442,30622,30623,30633,30634,30635,30637,30688,30712,30794,31084,31316,31536,31655,31664,31704,31705,31755,31956,31994,32069,32079,32092,32449,32773,33061,33284,33290,33308,34078,34117,34477,34600,34688,34908,34948,34961,34962,35705,36760,37013,37500,38555,39227,39264,39318,39434,40641,40652,40732,41428,41843,42422,42482,43650,43853,43854,44153,44581,44582,45796,45798,46895",
+	--["Misc.Key.Instance.Normal"]="o,5ii:Scarlet Monastery,9iw:UBRS,iwa:Karazhan,llj:Shadow Labyrinth,lwr:Shattered Halls,nzg:Arcatraz",
+	--["Misc.Key.Instance.Heroic"]="o,nmm:Hellfire Citadel (Alliance),nmn:Coilfang Reservoir,nmy:Tempest Keep,nn1:Hellfire Citadel (Horde),nmz:Caverns of Time,nmx:Auchindoun",
+	["Misc.Lockboxes"]="4632:1,6354:1,6712:1,7209:1,16882:1,4633:25,4634:70,6355:70,16883:70,4636:125,4637:175,13875:175,16884:175,4638:225,5758:225,5759:225,5760:225,13918:250,16885:250,12033:275,29569:300,31952:325,43575:350,43622:375,43624:400,45986:400",
+	["Misc.Minipet.Normal"]="4401,8485,8486,8487,8488,8489,8490,8491,8492,8494,8495,8496,8497,8498,8499,8500,8501,10360,10361,10392,10393,10394,10398,10822,11023,11026,11027,11110,11474,11825,11826,12264,12529,13582,13583,13584,15996,18964,19054,19055,19450,19462,20371,20769,21168,21277,21301,21305,21308,21309,22114,22200,22235,22781,23002,23007,23015,23083,23712,23713,25535,27445,29363,29364,29901,29902,29903,29904,29953,29956,29957,29958,29960,30360,31760,32233,32498,32588,32616,32617,32622,33154,33816,33818,33993,34425,34478,34492,34493,34518,34519,34535,34955,35227,35349,35350,35504,37297,37298,37460,38050,38628,38658,39286,39656,39896,39898,39899,39973,40653,41133,43698,44721,44723,44738,44794,44810,44819,44820,44822,44841,44965,44970,44971,44973,44974,44980,44982,44983,44984,44998,45002,45022,45057,45180,45606,45942,46396,46397,46398,46544,46545,46707,46767,46802,46820,46821,46831,48112,48114,48116,48118,48120,48122,48124,48126,49287,49343,49362,49646,49662,49663,49665,49693,49912,50446,53641,54436,54847",
+	["Misc.Minipet.Snowball"]="21301,21305,21308,21309",
+	["Misc.Mount.Ahn'Qiraj"]="21218:100,21321:100,21323:100,21324:100,21176:100",
+	["Misc.Mount.Flying"]="25471:60,25470:60,25472:60,25475:60,25476:60,25474:60,33176:60,34060:60,35225:60,25473:280,25528:280,25529:280,25527:280,25531:280,25533:280,25477:280,25532:280,32857:280,32858:280,32859:280,32860:280,32861:280,32862:280,32314:280,32316:280,32317:280,32318:280,32319:280,33182:280,33999:280,34061:280,35226:280,32458:310,30609:310,37676:310",
+	["Misc.Mount.Normal"]="33189:10,1132:60,2411:60,2414:60,5655:60,5656:60,5665:60,5668:60,5864:60,5872:60,5873:60,8588:60,8563:60,8591:60,8592:60,8595:60,8629:60,8631:60,8632:60,8653:60,13321:60,13322:60,13331:60,13332:60,13333:60,15277:60,15290:60,15292:60,28481:60,29743:60,29744:60,29220:60,29221:60,29222:60,28927:60,33183:60,33976:60,19902:100,8586:100,12302:100,12303:100,12330:100,12351:100,12353:100,12354:100,13086:100,13317:100,13326:100,13327:100,13328:100,13329:100,13334:100,13335:100,15293:100,18241:100,18242:100,18243:100,18244:100,18245:100,18246:100,18247:100,18248:100,18766:100,18767:100,18772:100,18773:100,18774:100,18776:100,18777:100,18778:100,18785:100,18786:100,18787:100,18788:100,18789:100,18790:100,18791:100,18793:100,18794:100,18795:100,18796:100,18797:100,18798:100,18902:100,19029:100,19030:100,19872:100,21176:100,29465:100,29466:100,29467:100,29468:100,29469:100,29470:100,29471:100,29472:100,29745:100,29746:100,29747:100,29223:100,29224:100,28936:100,29102:100,29103:100,29104:100,29105:100,29227:100,29228:100,29229:100,29230:100,28915:100,29231:100,30480:100,31830:100,31832:100,31834:100,31836:100,31829:100,31831:100,31833:100,31835:100,32768:100,33184:100,33225:100,33977:100,33809:100,34129:100,35513:100,35906:100,37719:100,37828:100",
+	["Misc.Openable"]="4632,4633,4634,4636,4637,4638,5335,5523,5524,5738,5758,5759,5760,6307,6351,6352,6353,6354,6355,6356,6357,6643,6645,6647,6715,6755,6827,7190,7209,7870,7973,8049,8366,8484,8647,9265,9276,9363,9539,9540,9541,10456,10479,10569,10695,10752,10773,10834,11024,11107,11422,11423,11568,11617,11883,11887,11912,11937,11938,11955,11966,12033,12122,12339,12849,13874,13875,13881,13891,13918,15102,15103,15699,15874,15876,15902,16783,16882,16883,16884,16885,17685,17726,17727,17962,17963,17964,17965,17969,18636,18804,19035,19150,19151,19152,19153,19154,19155,19296,19297,19298,19422,19425,20228,20229,20230,20231,20233,20236,20393,20469,20601,20602,20603,20708,20766,20767,20768,20805,20808,20809,21042,21113,21131,21132,21133,21150,21156,21162,21164,21191,21216,21228,21266,21270,21271,21310,21315,21327,21363,21386,21509,21510,21511,21512,21513,21528,21640,21740,21741,21742,21743,21746,21812,21975,21979,21980,21981,22137,22154,22155,22156,22157,22158,22159,22160,22161,22162,22163,22164,22165,22166,22167,22168,22169,22170,22171,22172,22178,22320,22568,22648,22649,22650,22746,23022,23846,23921,24336,24402,24476,25419,25422,25423,25424,27446,27481,27511,27513,29569,30260,30320,30650,31408,31522,31800,31952,31955,32064,32462,32624,32625,32626,32627,32628,32629,32630,32631,32724,32777,32835,33045,33844,33857,33926,33928,34077,34119,34426,34583,34584,34585,34587,34592,34593,34594,34595,34846,34863,34871,35232,35286,35313,35348,35512,35792,35945,36781,37168,37586,39418,39883,39903,39904,41426,41888,43346,43347,43504,43556,43575,43622,43624,44113,44142,44161,44163,44475,44663,44700,44718,44751,44943,44951,45072,45328,45724,45875,45878,45909,45986,46007,46110,46740,46809,46810,46812,49294,49631,49909,49926,50160,50161,50301,51316,51999,52000,52001,52002,52003,52004,52005,52006,52676,54218,54535,54536,54537",
+	["Misc.Unlock.Seaforium Charges"]="4367:150,4398:250,18594:300,23819:350",
+	["Misc.Unlock.Skeleton Keys"]="15869:25,15870:125,15871:200,15872:300",
+	["Misc.Usable.BossItem"]="24494:17968,31088:21212,32408:22887,37815,37859,37860,49278",
+	["Misc.Usable.Fun"]="1973,5507,5740,9312,9313,9314,9315,9317,9318,17712,18662,20397,20398,20399,20409,20410,20411,20413,20414,20557,21328,21519,21536,21557,21558,21559,21561,21562,21569,21571,21574,21576,21589,21590,21592,21593,21595,21713,21714,21716,21718,21744,21745,21747,21813,22200,22206,22218,22261,22728,23767,23768,23769,23770,23771,25886,28455,31666,32542,33079,33081,33226,33808,33927,34068,34191,34258,34480,34494,34497,34498,34499,34686,36862,36863,37431,37460,37710,37750,37816,37925,38506,39477,39769,41427,43352,43626,44114,44228,44430,44481,44482,44606,44731,44800,44812,44844,45011,45013,45014,45015,45016,45017,45018,45019,45020,45021,45037,45047,45061,45063,45073,45176,45177,45178,45179,45850,45851,45852,45853,45854,45984,46718,46725,46779,46780,46783,46831,46843,46861,46887,46888,49126,49040,50163",
+	["Misc.Usable.Permanent"]="7148,10684,11590,15846,18232,18587,18645,18660,19697,23821,24140,28111,34008,37829,40768,40769,40772,42546,46735",
+	["Misc.Usable.Quest"]="4823,5021,5251,5411,5415,5416,5456,5462,5638,5692,5693,5694,5695,5867,6196,6635,6636,6637,7207,7247,7308,7667,7733,7866,8584,9189,9241,9263,9319,9328,9437,9439,9442,9466,9530,9606,9618,9619,9620,9621,9978,10327,10687,10688,10689,10690,10699,11132,11141,11169,11231,11243,11412,11445,11522,11569,11570,11682,11804,11833,11914,11948,11953,12284,12284,12288,12472,12565,12566,12627,12807,12815,12891,12906,12922,12928,13536,13892,14644,15002,15454,15766,15908,15911,15913,15914,15915,15916,15917,15919,15920,15921,15922,15923,16114,16974,16991,17310,18597,18598,18752,18904,19036,19183,20387,21711,21829,21833,22259,22473,22693,23268,23337,23358,23361,23394,23417,23480,23485,23645,23654,23669,23680,23691,23693,23697,23702,23703,23749,23751,23788,23792,23818,23875,23876,23877,23995,24084,24278,24289,24318,24355,24428,24467,24470,24474,24498,24501,24502,24560,25458,25465,25552,25555,25658,25770,25771,25853,25889,26002,27317,27479,28038,28106,28132,28292,28336,28351,28352,28353,28369,28452,28547,28550,28607,28634,28651,28725,28962,29018,29027,29101,29207,29226,29324,29429,29443,29445,29447,29473,29478,29482,29513,29618,29737,29778,29795,29803,29817,29818,29912,30094,30175,30353,30462,30479,30481,30527,30561,30614,30616,30618,30638,30639,30651,30652,30653,30654,30656,30657,30672,30704,30719,30721,30742,30756,30803,30811,30818,30847,30850,30852,30853,30854,31088,31108,31121,31122,31128,31129,31141,31146,31300,31310,31344,31346,31347,31350,31360,31372,31373,31386,31403,31463,31495,31517,31518,31606,31610,31652,31663,31668,31678,31702,31736,31739,31754,31763,31769,31772,31807,31808,31809,31810,31815,31825,31828,31880,31881,31946,32315,32321,32406,32446,32456,32467,32503,32576,32602,32657,32680,32696,32698,32741,32825,32834,32912,32915,32917,32918,32919,32920,32960,33072,33088,33091,33095,33098,33101,33108,33113,33119,33129,33418,33164,33190,33221,33238,33278,33282,33306,33310,33311,33321,33323,33335,33336,33339,33340,33341,33342,33343,33344,33346,33349,33441,33450,33472,33477,33486,33554,33563,33581,33606,33607,33613,33614,33615,33618,33621,33627,33634,33637,33774,33778,33779,33780,33796,33806,33819,33865,33960,34013,34023,34024,34026,34027,34032,34051,34076,34082,34083,34111,34121,34124,34127,34420,34598,34599,34624,34669,34691,34692,34710,34711,34715,34772,34779,34781,34782,34806,34811,34812,34830,34833,34844,34862,34869,34870,34871,34897,34913,34915,34920,34954,34968,34971,34973,34975,34978,34979,34981,35116,35121,35125,35127,35224,35230,35237,35272,35278,35281,35288,35293,35352,35401,35479,35491,35671,35688,35690,35704,35718,35734,35736,35739,35792,35797,35813,35828,35837,35838,35850,35907,35908,35943,35944,36732,36734,36738,36747,36751,36764,36771,36774,36775,36777,36779,36786,36787,36796,36815,36818,36827,36834,36835,36847,36859,36864,36865,36873,36935,36936,36956,37006,37045,37063,37071,37125,37129,37173,37187,37198,37202,37259,37287,37300,37304,37306,37307,37314,37381,37438,37445,37459,37465,37539,37542,37568,37570,37577,37581,37604,37621,37661,37665,37708,37716,37727,37877,37881,37887,37888,37923,37932,37933,38083,38149,38302,38323,38324,38330,38332,38380,38467,38510,38512,38515,38519,38544,38564,38573,38607,38619,38621,38622,38623,38624,38627,38657,38659,38676,38684,38689,38696,38697,38699,38701,38709,38731,39041,39154,39157,39158,39164,39165,39187,39206,39238,39268,39305,39313,39314,39315,39316,39566,39571,39572,39574,39615,39645,39651,39664,39695,39696,39697,39700,39737,39739,39747,40390,40397,40551,40587,40600,40676,40686,40730,40731,40917,40946,40970,40971,41058,41130,41131,41161,41179,41265,41340,41366,41372,41390,41430,41431,41505,41612,41615,41776,41988,42164,42246,42419,42424,42441,42442,42479,42480,42481,42499,42624,42679,42732,42733,42769,42781,42797,42837,42840,42894,42918,42928,42986,43059,43153,43159,43166,43206,43214,43229,43243,43315,43524,43564,43289,43494,43608,43670,43968,44010,44048,44127,44186,44212,44222,44246,44251,44301,44304,44307,44433,44450,44459,44460,44461,44476,44477,44478,44479,44480,44576,44653,44704,44784,44802,44818,44950,45000,45067,45080,45083,46069,46070,46106,46362,46396,46397,46693,46893,46954,49655",
+	["Misc.Usable.Replenished"]="17202,44698,32907,33837,33851,33852,4384,11020,21212,21213,24429,24538,28452,32971,33096,33098,33929,33930,33931,33932,33933,34248,34253,34255,34257,34338,34368,34414,34475,34483,34489,34533,35233,34500,35228,35506,37576,38556,38566,38574,39213,39266,39577,39598,39599,39689,39693,39694,39748,41989,42104,42105,42106,42107,42108,42479,42769,42774,43101,43142,43147,43139,44986,45005,45046,45281,45902,46367,46380,46382,46870,46885,47006,47009,47029,47033,47036,49351,49352,49668,49669,49670,50130,50131,50851",
+	["Misc.Usable.StartsQuest"]="1307,1357,1962,1972,2794,2839,2874,3317,3668,3706,3985,4056,4098,4433,4613,4614,4854,4881,4903,4926,5099,5102,5103,5138,5179,5352,5791,5877,6172,6196,6776,7666,8524,8623,8704,8705,9250,9254,9326,9370,10000,10441,10454,10589,10621,11116,11463,11668,11818,12558,12563,12564,12771,12780,12842,13140,13250,13920,14646,14647,14648,14649,14650,14651,16303,16304,16305,16408,16782,16790,17126,18356,18357,18358,18359,18360,18361,18362,18363,18364,18628,18703,18706,18769,18770,18771,18969,18972,18987,19002,19003,19016,19018,19228,19257,19267,19277,19423,19424,19443,19452,19802,20310,20461,20483,20644,20741,20742,20765,20806,20807,20938,20939,20940,20941,20942,20943,20944,20945,20947,20948,20949,21165,21166,21167,21220,21221,21230,21245,21248,21249,21250,21251,21252,21253,21255,21256,21257,21258,21259,21260,21261,21262,21263,21264,21265,21379,21380,21381,21382,21384,21385,21514,21749,21750,21751,21776,22520,22597,22600,22601,22602,22603,22604,22605,22606,22607,22608,22609,22610,22611,22612,22613,22614,22615,22616,22617,22618,22620,22621,22622,22623,22624,22719,22723,22727,22888,22970,22972,22973,22974,22975,22977,23179,23180,23181,23182,23183,23184,23228,23249,23338,23580,23678,23759,23777,23797,23837,23850,23870,23890,23892,23900,23910,24132,24330,24367,24407,24414,24483,24484,24504,24558,24559,25459,28552,29233,29234,29235,29236,29476,29588,29590,29738,30431,30579,30756,31120,31239,31241,31345,31363,31384,31489,31707,31890,31891,31907,31914,32385,32386,32405,32523,32621,32726,33102,33114,33115,33289,33314,33345,33347,33961,33962,33978,34028,34091,34469,34777,34815,34984,35568,35569,35648,35723,36742,36744,36746,36756,36780,36855,36856,36940,36958,37163,37164,37432,37599,37736,37737,37830,37833,38280,38281,38321,38660,38673,39713,40666,41267,41556,42203,42772,43242,43297,43512,44148,44158,44259,44276,44294,44326,44569,44577,44725,45039,45506,45857,46004,46052,46053,46875,46876,46877,46878,46879,46880,46881,46882,46883,46884,46955,47246,48679,49205,49641,49643,49644,49676,50320,50379,50380,51315",
+
+	["Misc.QuestMats.Ahn'Qiraj.Idol.20"]="20866,20867,20868,20869,20870,20871,20872,20873",
+	["Misc.QuestMats.Ahn'Qiraj.Idol.40"]="20874,20875,20876,20877,20878,20879,20881,20882",
+	["Misc.QuestMats.Ahn'Qiraj.Scarab"]="20858,20859,20860,20861,20862,20863,20864,20865",
+	["Misc.QuestMats.Ahn'Qiraj.Token.20"]="20884,20885,20886,20888,20889,20890",
+	["Misc.QuestMats.Ahn'Qiraj.Token.40"]="20926,20927,20928,20929,20930,20931,20932,20933",
+
+	["Misc.QuestMats.Arcanum.Constitution"]="11754,8411,11733,11952",
+	["Misc.QuestMats.Arcanum.Focus"]="18333,18335,14344,12753",
+	["Misc.QuestMats.Arcanum.Protection"]="18334,18335,14344,12735",
+	["Misc.QuestMats.Arcanum.Rapidity"]="18332,18335,14344,12938",
+	["Misc.QuestMats.Arcanum.Resilience"]="11754,11567,11751,11736",
+	["Misc.QuestMats.Arcanum.Rumination"]="11754,11752,8424,11732",
+	["Misc.QuestMats.Arcanum.Tenacity"]="11754,11734,11564,11753",
+	["Misc.QuestMats.Arcanum.Voracity"]="11754,11737,11951,11563",
+
+	["Misc.QuestMats.Darkmoon Faire.Deck.All"]=" 19228,19257,19267,19277,31890,31907,31914,31891,37163,37164,44148,44158,44259,44276,44294,44326",
+
+	["Misc.QuestMats.Darkmoon Faire.Deck.Rogues"]="37140,37143,37156",
+	["Misc.QuestMats.Darkmoon Faire.Deck.Swords"]="37145,37147,37159,37160,37161",
+	["Misc.QuestMats.Darkmoon Faire.Deck.Mages"]="44165,44144,44145,44146,44147",
+	["Misc.QuestMats.Darkmoon Faire.Deck.Demons"]="44143,44154,44155,44156,44157",
+
+	["Misc.QuestMats.Darkmoon Faire.Deck.Beasts"]="19227,19230,19231,19232,19233,19234,19235,19236",
+	["Misc.QuestMats.Darkmoon Faire.Deck.Elementals"]="19268,19269,19270,19271,19272,19273,19274,19275",
+	["Misc.QuestMats.Darkmoon Faire.Deck.Portals"]="19276,19278,19279,19280,19281,19282,19283,19284",
+	["Misc.QuestMats.Darkmoon Faire.Deck.Warlords"]="19258,19259,19260,19261,19262,19263,19264,19265",
+
+	["Misc.QuestMats.Darkmoon Faire.Deck.Blessings"]="31882,31889,31888,31885,31884,31887,31886,31883",
+	["Misc.QuestMats.Darkmoon Faire.Deck.Furies"]="31901,31909,31908,31904,31903,31906,31905,31902",
+	["Misc.QuestMats.Darkmoon Faire.Deck.Lunacy"]="31910,31918,31917,31913,31912,31916,31915,31911",
+	["Misc.QuestMats.Darkmoon Faire.Deck.Storms"]="31892,31900,31899,31895,31894,31898,31896,31893",
+
+	["Misc.QuestMats.Darkmoon Faire.Deck.Chaos"]="44277,44278,44279,44280,44281,44282,44284,44285",
+	["Misc.QuestMats.Darkmoon Faire.Deck.Nobles"]="44268,44269,44270,44271,44272,44273,44274,44275",
+	["Misc.QuestMats.Darkmoon Faire.Deck.Prisms"]="44260,44261,44262,44263,44264,44265,44266,44267",
+	["Misc.QuestMats.Darkmoon Faire.Deck.Undeath"]="44286,44287,44288,44289,44290,44291,44292,44293",
+
+	["Misc.QuestMats.Darkmoon Faire.Turnin.Blacksmithing"]="3240:1,3486:4,3835:8,7945:12,12644:20",
+	["Misc.QuestMats.Darkmoon Faire.Turnin.Engineering"]="4363:1,4375:4,9313:8,11590:12,15994:20",
+	["Misc.QuestMats.Darkmoon Faire.Turnin.Greys"]="4582:5,5117:12,5134:1,11404:20,11407:4,19933:20",
+	["Misc.QuestMats.Darkmoon Faire.Turnin.Leather"]="2309:1,2314:4,5739:8,8185:12,15564:20",
+
+	["Misc.QuestMats.Libram.Burning Steppes"]="11732,11733,11734,11736,11737",
+	["Misc.QuestMats.Libram.Dire Maul"]="18332,18333,18334",
+
+	["Misc.QuestMats.Zul'Gurub.Bijou"]="19707,19708,19709,19710,19711,19712,19713,19714,19715",
+	["Misc.QuestMats.Zul'Gurub.Coin.Set1"]="19698,19699,19700",
+	["Misc.QuestMats.Zul'Gurub.Coin.Set2"]="19701,19702,19703",
+	["Misc.QuestMats.Zul'Gurub.Coin.Set3"]="19704,19705,19706",
+	["Misc.QuestMats.Zul'Gurub.Primal"]="19716,19717,19718,19719,19720,19721,19722,19723,19724",
+
+	["Misc.Reagent.Ammo.Arrow"]="37309:10,2512:15,2515:35,3030:75,3464:95,9399:115,11285:130,10579:145,19316:165,18042:175,12654:200,28053:220,24417:260,28056:320,30611:340,31949:370,33803:430,34581:465,41586:465,31737:530,32760:530,30319:635,41165:675,52021:915",
+	["Misc.Reagent.Ammo.Bullet"]="2516:15,4960:20,8067:20,2519:35,5568:40,8068:45,3033:75,8069:85,3465:95,10512:125,11284:130,10513:150,19317:165,15997:175,11630:180,13377:205,28060:220,23772:260,28061:320,30612:340,32882:370,32883:370,23773:430,34582:465,41584:465,31735:530,32761:530,41164:675,52020:915",
+	["Misc.Reagent.Ammo.Thrown"]="28979:13,25861:17,29007:42,25872:44,25873:95,29008:95,25874:120,29584:125,29201:132,29009:167,25875:168,28408:257,32378:257,25876:267,29010:267,29202:289,29013:408,29014:408,25878:425,34419:435,29203:464,28972:514,39995:537,40007:537,44644:554,28531:579,28532:591,28533:609,28534:624,28535:635,29212:636,28536:650,28537:674,28538:700,27928:719,27929:719,28539:726,27631:736,28540:750,30227:750,30568:750,30599:750,28541:776,28542:800,29211:814,28543:826,28544:844,32832:873,29204:884,27916:903,28258:931,34783:932,34622:1055,36711:1062,36712:1079,35845:1100,37028:1100,36713:1103,36714:1121,28659:1139,34603:1140,36716:1168,41241:1168,42444:1171,28319:1184,36717:1191,28826:1200,36718:1215,36719:1241,30025:1254,38357:1263,32054:1269,36720:1271,42449:1292,36721:1297,32326:1304,36722:1324,42863:1325,43900:1325,39138:1326,33765:1339,39490:1348,36723:1356,36724:1388,34349:1403,35108:1403,41245:1418,43188:1443,43187:1445,36981:1559,44118:1560,37410:1690,40716:1864,43612:1866,42450:2034,40190:2036,45296:2324,42451:2326,45086:2328,50169:2328,42483:2555,47659:2556,47660:2556,50999:2669,50474:2947,51535:2947,51880:2947",
+	["Misc.Reagent.Class.Death Knight"]="37201",
+	["Misc.Reagent.Class.Druid"]="17021,17026,17034,17035,17036,17037,17038,22147,22148,44605,44614",
+	["Misc.Reagent.Class.Hunter"]="",
+	["Misc.Reagent.Class.Mage"]="17020,17031,17032,17056",
+	["Misc.Reagent.Class.Paladin"]="21177,17033",
+	["Misc.Reagent.Class.Priest"]="17028,17029,17056,44615",
+	["Misc.Reagent.Class.Rogue"]="5140,5530",
+	["Misc.Reagent.Class.Shaman"]="17030,17057,17058,5175,5176,5177,5178",
+	["Misc.Reagent.Class.Warlock"]="5565,6265,16583",
+	["Misc.Reagent.Class.Warrior"]="",
+
+	["Misc.Spell.Mount.Ahn'Qiraj"]="-25953:100,-26056:100,-26054:100,-26055:100",
+	["Misc.Spell.Mount.Flying.Fast"]="-41514",
+	["Misc.Spell.Mount.Flying.Slow"]="-32239",
+	["Misc.Spell.Mount.Ground.Fast"]="-16081,-22718,-22721,-23509,-43688,-51412",
+	["Misc.Spell.Mount.Ground.Slow"]="-32420",
+})
diff --git a/libs/LibPeriodicTable-3.1-Misc/LibPeriodicTable-3.1-Misc.toc b/libs/LibPeriodicTable-3.1-Misc/LibPeriodicTable-3.1-Misc.toc
new file mode 100644
index 0000000..2bba51e
--- /dev/null
+++ b/libs/LibPeriodicTable-3.1-Misc/LibPeriodicTable-3.1-Misc.toc
@@ -0,0 +1,16 @@
+## Interface: 30200
+## LoadOnDemand: 1
+## Title: Lib: PeriodicTable-3.1 [|cffeda55fMisc|r]
+## Notes: PeriodicTable data module.
+## Author: Nymbia
+## Version: 3.1
+## Dependencies: LibPeriodicTable-3.1
+## X-Category: Library
+## X-License: LGPL v2.1
+## X-PeriodicTable-3.1-Module: Misc
+## X-Curse-Packaged-Version: r293
+## X-Curse-Project-Name: LibPeriodicTable-3.1
+## X-Curse-Project-ID: libperiodictable-3-1
+## X-Curse-Repository-ID: wow/libperiodictable-3-1/mainline
+
+LibPeriodicTable-3.1-Misc.lua
diff --git a/libs/LibPeriodicTable-3.1-Tradeskill/LibPeriodicTable-3.1-Tradeskill.lua b/libs/LibPeriodicTable-3.1-Tradeskill/LibPeriodicTable-3.1-Tradeskill.lua
new file mode 100644
index 0000000..a310971
--- /dev/null
+++ b/libs/LibPeriodicTable-3.1-Tradeskill/LibPeriodicTable-3.1-Tradeskill.lua
@@ -0,0 +1,239 @@
+-- (c) 2007 Nymbia.  see LGPLv2.1.txt for full details.
+--DO NOT MAKE CHANGES TO THIS FILE BEFORE READING THE WIKI PAGE REGARDING CHANGING THESE FILES
+if not LibStub("LibPeriodicTable-3.1", true) then error("PT3 must be loaded before data") end
+LibStub("LibPeriodicTable-3.1"):AddData("Tradeskill", gsub("$Rev: 293 $", "(%d+)", function(n) return n+90000 end), {
+	["Tradeskill.Crafted.Alchemy"]="118:1,2454:1,5997:1,3382:15,2455:25,2456:40,2457:50,2458:50,4596:50,858:55,2459:60,5631:60,6370:80,3383:90,5996:90,6662:90,6051:100,6372:100,929:110,3384:110,3385:120,3386:120,3388:125,3389:130,6371:130,6048:135,45621:135,3390:140,6373:140,3391:150,5634:150,1710:155,3827:160,3823:165,3824:165,6049:165,3825:175,5633:175,3826:180,8949:185,6050:190,6052:190,17708:190,3828:195,8951:195,3829:200,10592:200,6149:205,8956:205,9030:210,9036:210,9061:210,3928:215,4623:215,18294:215,3577:225,6037:225,9144:225,9149:225,9154:230,12190:230,9155:235,9172:235,9179:235,9088:240,9187:240,9197:240,9206:245,9210:245,3387:250,9224:250,9233:250,9264:250,13423:250,21546:250,13442:255,13443:260,13445:265,13447:270,7076:275,7076:275,7078:275,7080:275,7080:275,7082:275,12360:275,12803:275,12808:275,13446:275,13453:275,20002:275,20007:275,13452:280,13455:280,13454:285,13462:285,20008:285,13456:290,13457:290,13458:290,13459:290,13461:290,20004:290,13444:295,7068:300,13506:300,13510:300,13511:300,13512:300,13513:300,18253:300,19931:300,28100:300,28102:300,28103:300,22823:305,22824:305,22825:310,28101:310,32062:310,22826:315,28104:315,22827:320,22828:320,32063:320,32067:320,22829:325,22830:325,31080:325,34440:325,22831:330,32068:330,22871:335,31679:335,22832:340,22833:345,22834:345,31676:345,13503:350,21884:350,21885:350,22451:350,22452:350,22835:350,22836:350,22837:350,22838:350,22839:350,23571:350,25867:350,25868:350,39671:350,22840:355,40068:355,22841:360,22842:360,22844:360,22845:360,22846:360,22847:360,31677:360,40067:360,22848:365,22849:365,40070:365,33208:375,35748:375,35749:375,35750:375,35751:375,40076:375,40079:375,40195:375,44958:375,40081:380,40072:385,40073:385,44939:385,40078:390,39666:395,40093:395,41163:395,44332:395,-60893:400,8827:400,40077:400,40087:400,40097:400,40109:400,40211:400,40212:400,40213:400,40214:400,40215:400,40216:400,40217:400,44322:400,44323:400,44324:400,44325:400,44327:400,44328:400,44329:400,44330:400,44331:400,33447:405,33448:410,43569:410,43570:410,41334:425,47499:425,41266:430,46376:435,46377:435,46378:435,46379:435,36922:450,36925:450,36928:450,36931:450,36934:450,21884:9999,21885:9999,21886:9999,22452:9999,22456:9999,22457:9999,22850:9999,22851:9999,22853:9999,22854:9999,22861:9999,22866:9999,32839:9999,32849:9999,32850:9999,32851:9999,32852:9999,35622:9999,35622:9999,35623:9999,35623:9999,35624:9999,35624:9999,35625:9999,35625:9999,35627:9999,35627:9999,36860:9999,36860:9999,36919:9999",
+	["Tradeskill.Crafted.Blacksmithing.Armorsmith"]="30069:260,30070:260,30074:330,30076:330,23563:350,28483:350,23564:375,23565:375,28484:375,28485:375,41189:415,41190:415",
+	["Tradeskill.Crafted.Blacksmithing.Basic"]="2852:1,2853:1,2862:1,3239:1,10421:1,2844:15,2845:20,3469:20,2847:25,3470:25,7166:30,7955:30,2851:35,3471:35,3488:35,33791:35,3472:40,3473:45,3474:60,2863:65,3240:65,6214:65,2857:70,3489:70,3478:75,2864:80,2854:90,3487:95,6350:95,6338:100,6731:100,15869:100,29201:100,2865:105,2866:105,3848:105,2848:110,3480:110,5540:110,2849:115,2850:120,2868:120,2871:125,3241:125,3481:125,3486:125,3490:125,7956:125,2869:130,3482:130,3491:130,7957:130,3483:135,7958:135,5541:140,2870:145,3484:145,3492:145,3485:150,6042:150,7071:150,11128:150,15870:150,3842:155,3851:155,10423:155,3840:160,3849:160,7913:160,7914:160,3835:165,6043:165,3836:170,3843:170,3852:170,3841:175,3850:175,7915:175,3844:180,3853:180,7916:180,12259:180,3846:185,3855:185,6040:185,7917:185,3837:190,6041:190,12260:190,17704:190,3845:195,3847:200,3854:200,3856:200,7963:200,7964:200,7965:200,7966:200,9060:200,11144:200,15871:200,29202:200,7918:205,7919:205,9366:205,7920:210,7921:210,7941:210,7922:215,7924:215,7967:215,7926:220,7927:220,7942:220,7928:225,7943:225,7930:230,7931:230,7945:230,7932:235,7933:235,7969:235,7944:240,7934:245,7946:245,12404:250,12405:250,12406:250,12643:250,12644:250,7947:255,12408:255,12416:260,11608:265,12424:265,12428:265,11606:270,12415:270,12425:270,12624:270,11607:275,12645:275,12773:275,12774:275,15872:275,16206:275,11605:280,12409:280,12410:280,12775:280,12776:280,12777:280,11604:285,12418:285,12628:285,12781:285,12419:290,12625:290,12631:290,12782:290,12792:290,19043:290,19051:290,12417:295,12426:295,12427:295,12632:295,16989:295,17014:295,12414:300,12420:300,12422:300,12429:300,12610:300,12611:300,12612:300,12613:300,12614:300,12618:300,12619:300,12620:300,12633:300,12636:300,12639:300,12640:300,12641:300,12783:300,12784:300,12790:300,12794:300,12796:300,12797:300,12798:300,16988:300,17013:300,17015:300,17016:300,17193:300,18262:300,19048:300,19057:300,19148:300,19164:300,19166:300,19167:300,19168:300,19169:300,19170:300,19690:300,19691:300,19692:300,19693:300,19694:300,19695:300,20039:300,20549:300,20550:300,20551:300,22191:300,22194:300,22195:300,22196:300,22197:300,22198:300,22383:300,22384:300,22385:300,22669:300,22670:300,22671:300,22762:300,22763:300,22764:300,23482:300,23493:300,23528:300,25843:300,28420:300,29203:300,23484:305,23491:310,23497:310,23487:315,23488:315,23494:315,23498:315,23490:320,23499:320,23489:325,23502:325,23559:325,23503:330,23504:330,23505:335,23506:335,23508:335,33185:335,23507:340,23575:340,23515:350,23529:350,25521:350,25844:350,28421:350,29204:350,39087:350,39088:350,43854:350,23510:355,23511:355,23516:355,23509:360,23514:360,23517:360,23518:360,23523:360,23524:360,23530:360,25845:360,39083:360,40668:360,41974:360,23512:365,23513:365,23519:365,23520:365,23521:365,23525:365,23531:365,23532:365,23533:365,23534:365,23535:365,23536:365,23537:365,23538:365,23539:365,23540:365,23541:365,23542:365,23543:365,23544:365,23546:365,23554:365,23555:365,23556:365,32854:365,33173:365,34377:365,34378:365,34379:365,34380:365,23522:370,23526:370,23527:370,39084:370,39086:370,41975:370,23576:375,30031:375,30032:375,30033:375,30034:375,31364:375,31367:375,31368:375,31369:375,31370:375,31371:375,32401:375,32402:375,32403:375,32404:375,32568:375,32570:375,32571:375,32573:375,39085:375,40942:375,40956:375,40957:375,40958:375,40959:375,40949:380,41239:380,41240:380,40950:385,40951:385,41241:385,41242:385,40670:390,40952:390,41117:390,41181:390,41243:390,40669:395,40674:395,40943:395,40953:395,41126:395,41182:395,43860:395,-55641:400,-55628:400,40671:400,40672:400,40954:400,40955:400,41127:400,41183:400,43864:400,40673:405,41128:405,41184:405,41245:405,43865:405,41113:410,41116:410,41185:410,42443:410,43871:410,41114:415,41129:415,41611:415,43870:415,41348:420,41349:420,41351:420,41352:420,41354:420,41355:420,41356:420,41357:420,41745:420,41976:420,42500:420,42723:420,42724:420,42727:420,42729:420,42730:420,43587:420,43588:420,41344:425,41345:425,41346:425,41347:425,41350:425,41353:425,42725:425,42726:425,42728:425,43586:425,43853:430,41257:440,41383:440,41384:440,41386:440,41387:440,41388:440,41391:440,41392:440,41394:440,42435:440,42508:440,45085:440,44936:450,45550:450,45551:450,45552:450,45559:450,45560:450,45561:450,47570:450,47571:450,47572:450,47573:450,47574:450,47575:450,47589:450,47590:450,47591:450,47592:450,47593:450,47594:450,49902:450,49903:450,49904:450,49905:450,49906:450,49907:450,7929:9999,7935:9999,7936:9999,7937:9999,7938:9999,7939:9999,7954:9999,7959:9999,7960:9999,7961:9999",
+	["Tradeskill.Crafted.Blacksmithing.Weaponsmith.Axesmith"]="30087:330,30088:330,28431:350,28434:350,28432:375,28433:375,28435:375,28436:375",
+	["Tradeskill.Crafted.Blacksmithing.Weaponsmith.Basic"]="30071:260,30072:260,30073:260,41186:415,41187:415,41188:415",
+	["Tradeskill.Crafted.Blacksmithing.Weaponsmith.Hammersmith"]="30089:330,30093:330,28437:350,28440:350,28438:375,28439:375,28441:375,28442:375",
+	["Tradeskill.Crafted.Blacksmithing.Weaponsmith.Swordsmith"]="30077:330,30086:330,28425:350,28428:350,28426:375,28427:375,28429:375,28430:375",
+	["Tradeskill.Crafted.Cooking"]="787:1,2679:1,2681:1,6290:1,6888:1,12224:1,17197:1,24105:1,27635:1,30816:1,33924:1,44837:1,44837:1,46691:1,2680:10,2888:10,5472:10,5473:20,5474:35,17198:35,6890:40,724:50,733:50,2684:50,4592:50,5095:50,5476:50,5477:50,5525:50,6316:50,27636:50,3220:60,7676:60,22645:60,2683:75,2687:80,3662:80,21072:80,2682:85,6657:85,3663:90,5478:90,5526:90,1017:100,1082:100,4593:100,5479:100,34832:100,44836:100,44836:100,2685:110,3666:110,3726:110,5480:110,3664:120,3727:125,5527:125,12209:125,3665:130,3728:150,20074:150,44840:160,44840:160,3729:175,4457:175,4594:175,6038:175,8364:175,10841:175,12210:175,12212:175,12213:175,12214:175,13851:175,21217:175,12215:200,12217:200,17222:200,44839:220,44839:220,6887:225,12216:225,12218:225,13927:225,13930:225,16766:225,18045:225,13928:240,13929:240,13931:250,13932:250,35563:250,35565:250,13933:275,13934:275,13935:275,18254:275,44838:280,44838:280,20452:285,21023:300,27651:300,27655:300,27661:300,27662:300,30155:300,33866:300,33867:300,33874:300,27656:310,27663:310,27657:315,27664:320,27665:320,33048:320,27658:325,27659:325,27660:325,27666:325,33825:325,33872:325,34411:325,31672:335,31673:335,27667:350,33052:350,33053:350,34748:350,34749:350,34750:350,34751:350,34752:350,34759:350,34760:350,34761:350,34762:350,34763:350,34764:350,34765:350,42942:350,43268:350,43488:350,43490:350,43491:350,43492:350,34753:375,39520:375,34754:400,34755:400,34756:400,34757:400,34758:400,34766:400,34767:400,34768:400,34769:400,42993:400,42994:400,42995:400,42996:400,42997:400,42998:400,42999:400,43000:400,43001:400,43004:400,43005:400,44953:400,45932:400,43478:425,43480:425,43015:450,33004:9999,34747:9999",
+	["Tradeskill.Crafted.Enchanting"]="-7428:1,-7418:1,6218:1,11287:10,-7420:15,-7443:20,-7426:40,-7454:45,20744:45,-7457:50,-7766:60,-7748:60,11288:70,-7782:80,-7779:80,-7776:80,-7788:90,-7786:90,-7771:90,-7793:100,-7745:100,6339:100,-13378:105,-13419:110,-13380:110,-13464:115,-13421:115,-7859:120,-7857:120,-7867:125,-7863:125,-7861:125,-13501:130,-13485:130,-13522:135,-13538:140,-13536:140,-13503:140,-13620:145,-13617:145,-13612:145,-13607:145,-13529:145,-13626:150,-13622:150,11130:150,20745:150,-13635:155,-13631:155,11289:155,-13640:160,-13637:160,-13642:165,-13648:170,-13646:170,-13644:170,-13657:175,-13655:175,-13653:175,11290:175,-13661:180,-13659:180,-13663:185,-21931:190,-13687:190,-13693:195,-13689:195,-13700:200,-13698:200,-13695:200,11145:200,20746:200,-13794:205,-13746:205,-13822:210,-13817:210,-13815:210,-13841:215,-13836:215,-13858:220,-13846:220,-63746:225,-13890:225,-13887:225,-13882:225,-13868:225,-13917:230,-13915:230,-13905:230,-13935:235,-13933:235,-13931:235,-13939:240,-13937:240,-13945:245,-13943:245,-13941:245,-13948:250,-13947:250,12655:250,12810:250,20747:250,-20008:255,-20020:260,-20017:265,-20014:265,-13898:265,11811:265,-20012:270,-20009:270,-20026:275,-20024:275,20750:275,-20016:280,-20029:285,-20015:285,-27837:290,-23801:290,-23800:290,-23799:290,-20028:290,16207:290,-20033:295,-20030:295,-20023:295,-20013:295,-20010:295,-34002:300,-33991:300,-25086:300,-25084:300,-25083:300,-25082:300,-25081:300,-25080:300,-25079:300,-25078:300,-25074:300,-25073:300,-25072:300,-23804:300,-23803:300,-23802:300,-22750:300,-22749:300,-20036:300,-20035:300,-20034:300,-20032:300,-20031:300,-20025:300,-20011:300,20748:300,20749:300,22448:300,22461:300,-34001:305,-33993:305,-27948:305,-27899:305,-34004:310,-33996:310,-27961:310,-27944:310,22521:310,-27957:315,-27905:315,-33990:320,-27950:320,-27906:320,-34009:325,-34003:325,-27945:325,-27911:325,22460:325,-44383:330,-27962:330,-27913:335,22448:335,22449:335,-33995:340,-27968:340,-27967:340,-27951:340,-27946:340,22522:340,-33992:345,-27960:345,-60609:350,-46578:350,-42620:350,-34010:350,-34006:350,-34005:350,-33999:350,-27975:350,-27972:350,-27971:350,-27958:350,-27914:350,22459:350,22462:350,-60616:360,-46594:360,-44592:360,-34008:360,-34007:360,-33997:360,-33994:360,-28004:360,-28003:360,-27977:360,-27947:360,-27924:360,-27920:360,-27917:360,-44623:370,-27954:370,-27926:370,-71692:375,-60606:375,-47051:375,-44555:375,-44506:375,-42974:375,-27984:375,-27982:375,-27981:375,-27927:375,22449:375,22463:375,-60621:380,-62959:385,-60623:385,-44528:385,-60653:395,-44635:395,-44629:395,-44582:395,-44492:395,-59636:400,-47766:400,-44645:400,-44636:400,-44616:400,-44596:400,-44590:400,-44556:400,-44500:400,-44494:400,-44483:400,-44584:405,-44484:405,-44633:410,-44630:410,-44588:410,-44510:410,-44508:410,-44488:410,-44589:415,-44529:415,-60663:420,-44598:420,-44593:420,-44513:420,-44509:420,-44489:420,-60668:425,-47900:425,-44576:425,-44524:425,44452:425,-60691:430,-47898:430,-47672:430,-44621:430,-44595:430,-44575:430,-60714:435,-60707:435,-44625:435,-44591:435,-60767:440,-60763:440,-60692:440,-59625:440,-59621:440,-59619:440,-47901:440,-47899:440,-44631:440,-69412:445,-64579:450,-64441:450,-62948:450,-62256:450",
+	["Tradeskill.Crafted.Engineering.Basic"]="4357:1,4358:1,8067:1,4359:30,4360:30,4361:50,4362:50,6219:50,4405:60,4363:65,4364:75,4365:75,4401:75,8068:75,4366:85,4404:90,4367:100,4368:100,6712:100,6714:100,4369:105,4370:105,4371:105,4406:110,4372:120,4373:120,4374:120,4375:125,4376:125,4377:125,4378:125,7506:125,8069:125,21557:125,21558:125,21559:125,4379:130,5507:135,4380:140,4381:140,4382:145,4383:145,4384:150,4385:150,6533:150,9312:150,9313:150,9318:150,10558:150,4386:155,4387:160,4388:160,4403:165,7148:165,4389:170,4390:175,4391:175,10498:175,10499:175,10505:175,10507:175,21589:175,21590:175,21592:175,4407:180,4392:185,4393:185,4852:185,4394:190,17716:190,4395:195,10559:195,4396:200,4397:200,4398:200,10560:200,11590:200,18588:200,10500:205,10508:205,10512:210,10546:210,10514:215,10561:215,10501:220,10510:220,10502:225,10518:225,21569:225,21571:225,21574:225,21576:225,10503:230,10506:230,10562:235,10548:240,10504:245,10513:245,10576:250,15846:250,15992:250,18641:250,19026:250,21277:250,45631:250,15993:260,15994:260,15995:260,18631:260,18634:260,15996:265,15999:270,7191:275,16000:275,16004:275,16023:275,18594:275,18637:275,21570:275,21714:275,21716:275,21718:275,22728:275,15997:285,16005:285,16006:285,16008:290,16009:290,18638:290,16007:300,16022:300,16040:300,18168:300,18232:300,18282:300,18283:300,18639:300,19998:300,19999:300,23736:300,23781:300,23782:300,23783:300,23821:305,23772:310,23742:320,23737:325,23767:325,23774:325,23784:325,33092:330,20475:335,23764:335,23768:335,23771:335,25886:335,32413:335,32423:335,34504:335,23758:340,23761:340,23785:340,23786:340,23787:340,33093:345,23746:350,23762:350,23819:350,32461:350,32472:350,32473:350,32474:350,32475:350,32476:350,32478:350,32479:350,32480:350,32494:350,32495:350,39681:350,39690:350,40771:350,23824:355,35581:355,23747:360,23763:360,23765:360,34113:360,23748:375,23766:375,32756:375,34353:375,34354:375,34355:375,34356:375,34357:375,34847:375,35181:375,35182:375,35183:375,35184:375,35185:375,39682:375,40536:375,40892:375,40893:375,-63765:380,-55002:380,-54793:380,-54736:390,39683:390,44739:390,-63770:400,-54999:400,-54998:400,39688:400,-55016:405,23775:405,44951:405,-67839:410,37567:410,41164:410,47828:410,41165:415,42546:415,40767:420,40865:420,41112:420,44740:420,44741:420,44742:420,40768:425,41121:425,41146:425,41167:430,40772:435,48933:435,42549:440,42550:440,42551:440,42552:440,42553:440,42554:440,42555:440,44949:440,41168:450,41508:450,44413:450,44504:450,49040:450,34060:9999,34061:9999,40769:9999",
+	["Tradeskill.Crafted.Engineering.Gnomish"]="10713:205,10716:205,11826:205,10545:210,10720:210,10721:215,10724:225,10725:230,10726:235,10645:240,18660:260,18986:260,18645:265,23841:325,23835:340,23825:350,30544:350,23828:375,23829:375,40895:425,52021:450",
+	["Tradeskill.Crafted.Engineering.Goblin"]="10542:205,10543:205,10577:205,10644:205,10646:205,11825:205,7189:225,10587:230,10586:235,10727:240,10588:245,18984:260,18587:265,23826:325,23827:340,23836:350,30542:350,23838:375,23839:375,42641:425,52020:450,10577:9999",
+	["Tradeskill.Crafted.First Aid"]="1251:1,2581:40,3530:80,6452:80,3531:115,6453:130,6450:150,6451:180,8544:210,8545:240,14529:260,14530:290,19440:300,21990:300,21991:330,34721:350,34722:400",
+	["Tradeskill.Crafted.Inscription"]="955:1,1180:1,1181:1,37101:1,954:15,3012:15,37118:35,38682:35,39469:35,-61288:75,1711:75,1712:75,2290:75,39349:75,39774:75,43316:75,43331:75,43332:75,43334:75,43335:75,43338:75,43339:75,43340:75,43342:75,43343:75,43344:75,43350:75,43351:75,43354:75,43355:75,43356:75,43357:75,43359:75,43360:75,43361:75,43364:75,43365:75,43366:75,43367:75,43368:75,43369:75,43370:75,43371:75,43372:75,43373:75,43374:75,43376:75,43377:75,43378:75,43379:75,43380:75,43381:75,43385:75,43386:75,43388:75,43389:75,43390:75,43391:75,43392:75,43393:75,43394:75,43395:75,43396:75,43397:75,43398:75,43399:75,43400:75,43535:75,43539:75,43544:75,43671:75,43672:75,43673:75,43674:75,43725:75,44920:75,44922:75,44923:75,49084:75,2289:80,40913:80,41096:80,42408:80,42741:80,42907:80,42956:80,1477:85,40922:85,41531:85,42455:85,43115:85,43413:85,40897:90,41095:90,42743:90,42912:90,41537:95,42410:95,42462:95,42960:95,43418:95,40924:100,42734:100,42898:100,43116:100,48720:100,41106:105,42398:105,42961:105,37168:110,41530:110,42461:110,43423:110,43515:110,40914:115,42735:115,42900:115,41092:120,42400:120,42962:120,41532:125,42458:125,43117:125,43417:125,43654:125,43655:125,44142:125,40923:130,42737:130,42908:130,41108:135,42402:135,42964:135,41536:140,42465:140,43427:140,40919:150,42910:150,43118:150,4422:155,41100:155,42738:155,4424:160,42411:160,42966:160,4419:165,41540:165,42467:165,4426:170,40909:170,43422:170,4425:175,42746:175,42897:175,43119:175,43656:175,43657:175,44161:175,41104:180,42415:180,41547:185,42970:185,42473:190,43424:190,37602:200,40902:200,42903:200,43120:200,43850:200,44314:200,10307:205,41099:205,42747:205,10306:210,42416:210,42972:210,10308:215,41533:215,42466:215,10310:220,40916:220,43420:220,10309:225,42744:225,42904:225,43121:225,43660:225,43661:225,44163:225,41098:230,42397:230,39350:235,41535:235,42973:235,42470:240,43414:240,27502:250,43122:250,45622:250,45775:250,50045:250,27501:255,45760:255,45768:255,45776:255,27499:260,40901:260,42905:260,27503:265,41103:265,43536:265,27498:270,42399:270,43543:270,41541:275,42468:275,43123:275,43663:275,43664:275,44316:275,45804:275,42750:280,43546:280,45805:280,42974:285,43416:285,43541:285,33461:290,43124:290,33460:295,33457:300,41105:300,41527:300,43548:300,33462:305,42963:305,43553:305,33458:310,40903:310,43825:310,42401:315,42911:315,44955:315,43428:320,43826:320,42471:325,42749:325,43125:325,43666:325,43667:325,44317:325,41542:330,43551:330,41094:335,42736:335,42955:340,43827:340,43432:345,43554:345,37093:350,40896:350,42406:350,42453:350,42906:350,43126:350,43145:350,43549:350,44315:350,45849:350,45854:350,37097:355,37091:360,43465:365,43463:370,41102:375,41539:375,42412:375,42745:375,42909:375,43127:375,43552:375,44928:375,50077:375,50125:375,-61177:385,40899:385,40900:385,40906:385,40908:385,40912:385,40915:385,40920:385,40921:385,41097:385,41101:385,41107:385,41109:385,41110:385,41517:385,41518:385,41524:385,41526:385,41529:385,41534:385,41538:385,41552:385,42396:385,42403:385,42404:385,42405:385,42407:385,42409:385,42414:385,42417:385,42454:385,42456:385,42457:385,42459:385,42460:385,42463:385,42464:385,42469:385,42472:385,42739:385,42740:385,42742:385,42748:385,42751:385,42753:385,42754:385,42899:385,42901:385,42902:385,42913:385,42914:385,42915:385,42916:385,42917:385,42954:385,42957:385,42958:385,42959:385,42965:385,42967:385,42968:385,42969:385,42971:385,43412:385,43415:385,43419:385,43421:385,43425:385,43426:385,43429:385,43430:385,43431:385,43533:385,43534:385,43537:385,43538:385,43542:385,43545:385,43547:385,43550:385,43867:385,43868:385,43869:385,44684:385,-61120:400,-61119:400,-61118:400,-61117:400,37094:400,38322:400,42752:400,43146:400,44210:400,44318:400,37098:405,37092:410,43466:415,43464:420,45601:425,45623:425,49632:440,45602:9999,45603:9999,45604:9999,45625:9999,45731:9999,45732:9999,45733:9999,45734:9999,45735:9999,45736:9999,45737:9999,45738:9999,45739:9999,45740:9999,45741:9999,45742:9999,45743:9999,45744:9999,45745:9999,45746:9999,45747:9999,45753:9999,45755:9999,45756:9999,45757:9999,45758:9999,45761:9999,45762:9999,45764:9999,45766:9999,45767:9999,45769:9999,45770:9999,45771:9999,45772:9999,45777:9999,45778:9999,45779:9999,45780:9999,45781:9999,45782:9999,45783:9999,45785:9999,45789:9999,45790:9999,45792:9999,45793:9999,45794:9999,45795:9999,45797:9999,45799:9999,45800:9999,45803:9999,45806:9999,46372:9999",
+	["Tradeskill.Crafted.Jewelcrafting"]="20816:1,20906:1,21931:1,25498:1,21932:5,25438:20,25439:20,20821:30,21934:30,20817:50,20818:50,20907:50,21933:50,25880:50,20820:60,30804:65,20823:70,30419:75,20827:80,31154:80,20826:90,20828:100,30420:105,20830:110,20909:110,25881:110,20832:120,20950:120,20833:125,20954:125,20955:135,20831:150,20958:150,20963:150,20966:160,20959:170,20960:170,25882:175,20961:180,29157:180,20967:190,21748:200,21756:200,29158:200,45627:200,20964:210,21758:215,21755:220,20969:225,21752:225,21760:225,25883:225,30421:230,21763:235,21764:235,21765:240,21754:245,21753:250,21766:250,21767:260,21769:260,30422:265,21768:275,21774:275,21775:280,21790:280,29159:280,21777:285,21778:285,21791:290,29160:290,21784:300,21789:300,23094:300,23098:300,23103:300,23108:300,23113:300,23118:300,45054:300,21792:305,23095:305,23099:305,23104:305,23109:305,23114:305,23119:305,28595:305,21779:310,24074:310,24075:310,23096:315,23100:315,23105:315,23110:315,23115:315,23120:315,24076:320,23097:325,23101:325,23106:325,23111:325,23116:325,23121:325,28290:325,31079:325,31860:325,31862:325,31864:325,31866:325,31869:325,32772:325,32833:325,32774:330,24077:335,24078:335,32508:340,24087:345,24027:350,24028:350,24029:350,24030:350,24031:350,24032:350,24033:350,24035:350,24036:350,24037:350,24039:350,24047:350,24048:350,24050:350,24051:350,24052:350,24053:350,24054:350,24055:350,24056:350,24057:350,24058:350,24059:350,24060:350,24061:350,24062:350,24065:350,24066:350,24067:350,24079:350,31861:350,31863:350,31865:350,31867:350,31868:350,32836:350,33782:350,35315:350,35316:350,35318:350,35707:350,35945:350,39900:350,39905:350,39906:350,39908:350,39909:350,39910:350,39911:350,39912:350,39914:350,39915:350,39916:350,39917:350,39918:350,39919:350,39920:350,39927:350,39932:350,39933:350,39934:350,39935:350,39936:350,39937:350,39939:350,39940:350,39941:350,39942:350,39943:350,39944:350,39945:350,39946:350,39947:350,39948:350,39949:350,39950:350,39951:350,39952:350,39953:350,39954:350,39955:350,39956:350,39957:350,39958:350,39959:350,39960:350,39961:350,39962:350,39963:350,39964:350,39966:350,39967:350,39968:350,39974:350,39975:350,39976:350,39977:350,39978:350,39979:350,39980:350,39981:350,39982:350,39983:350,39984:350,39985:350,39986:350,39988:350,39989:350,39990:350,39991:350,39992:350,41367:350,42336:350,42337:350,43244:350,43245:350,24080:355,24082:355,24088:355,24106:355,24110:355,24085:360,24092:360,24093:360,24095:360,24097:360,24098:360,24114:360,24116:360,30825:360,33131:360,33133:360,33134:360,33135:360,33140:360,33143:360,33144:360,39907:360,39938:360,39965:360,42420:360,42701:360,24086:365,24089:365,24117:365,24121:365,25890:365,25893:365,25894:365,25895:365,25896:365,25897:365,25898:365,25899:365,25901:365,32409:365,32410:365,32776:365,34220:365,34358:365,34359:365,34360:365,34361:365,34362:365,34363:365,24122:370,24123:370,24124:370,24125:370,24126:370,24127:370,24128:370,35501:370,35503:370,36766:370,36767:370,42142:370,42143:370,42144:370,42145:370,42146:370,42148:370,42149:370,42150:370,42151:370,42152:370,42153:370,42154:370,42155:370,42156:370,42157:370,42158:370,42421:370,43246:370,43247:370,31398:375,31399:375,32193:375,32194:375,32195:375,32196:375,32197:375,32198:375,32199:375,32200:375,32201:375,32202:375,32203:375,32204:375,32205:375,32206:375,32207:375,32208:375,32209:375,32210:375,32211:375,32212:375,32213:375,32214:375,32215:375,32216:375,32217:375,32218:375,32219:375,32220:375,32221:375,32222:375,32223:375,32224:375,32225:375,32226:375,35693:375,35694:375,35700:375,35702:375,35703:375,35758:375,35759:375,35760:375,35761:375,37503:375,42338:380,42339:380,39996:390,39997:390,39998:390,39999:390,40000:390,40001:390,40002:390,40003:390,40008:390,40009:390,40010:390,40011:390,40012:390,40013:390,40014:390,40015:390,40016:390,40017:390,40022:390,40023:390,40024:390,40025:390,40026:390,40027:390,40028:390,40029:390,40030:390,40031:390,40032:390,40033:390,40034:390,40037:390,40038:390,40039:390,40040:390,40041:390,40043:390,40044:390,40045:390,40046:390,40047:390,40048:390,40049:390,40050:390,40051:390,40052:390,40053:390,40054:390,40055:390,40056:390,40057:390,40058:390,40059:390,40085:390,40086:390,40088:390,40089:390,40090:390,40091:390,40092:390,40094:390,40095:390,40096:390,40098:390,40099:390,40100:390,40101:390,40102:390,40103:390,40104:390,40105:390,40106:390,42702:390,43248:390,43249:390,42341:400,42395:400,42413:400,42418:400,44063:400,41285:420,41307:420,41333:420,41335:420,41339:420,41375:420,41376:420,41377:420,41378:420,41379:420,41380:420,41381:420,41382:420,41385:420,41389:420,41395:420,41396:420,41397:420,41398:420,41400:420,41401:420,42340:420,43250:420,43251:420,43252:420,43253:420,43482:420,43498:420,43582:420,45808:420,45809:420,45812:420,45813:420,44943:425,42642:430,42643:430,42644:430,42645:440,42646:440,42647:440,40111:450,40112:450,40113:450,40114:450,40115:450,40116:450,40117:450,40118:450,40119:450,40120:450,40121:450,40122:450,40123:450,40124:450,40125:450,40126:450,40127:450,40128:450,40129:450,40130:450,40131:450,40132:450,40133:450,40134:450,40135:450,40136:450,40137:450,40138:450,40139:450,40140:450,40141:450,40142:450,40143:450,40144:450,40145:450,40146:450,40147:450,40148:450,40149:450,40150:450,40151:450,40152:450,40153:450,40154:450,40155:450,40156:450,40157:450,40158:450,40159:450,40160:450,40161:450,40162:450,40163:450,40164:450,40165:450,40166:450,40167:450,40168:450,40169:450,40170:450,40171:450,40172:450,40173:450,40174:450,40175:450,40176:450,40177:450,40178:450,40179:450,40180:450,40181:450,40182:450,49110:450,21780:9999,21793:9999",
+	["Tradeskill.Crafted.Leatherworking.Basic"]="2302:1,2304:1,2318:1,5957:1,7276:1,7277:1,2303:15,4237:25,7278:30,7279:30,4231:35,7280:35,2300:40,5081:40,2309:55,4239:55,2310:60,2311:60,7281:70,2312:75,4242:75,4246:80,2308:85,4243:85,2307:90,5780:90,6466:90,6709:90,5781:95,7282:95,2313:100,2315:100,2317:100,2319:100,4233:100,4244:100,7283:100,20575:100,5958:105,6467:105,2316:110,5961:115,6468:115,2314:120,4248:120,4250:120,7284:120,7285:120,4249:125,7348:125,4251:130,4253:135,7349:135,7352:135,4252:140,7358:140,4247:145,7359:145,3719:150,4234:150,4236:150,4254:150,4265:150,7371:150,7372:150,18662:150,4255:155,18948:155,4257:160,5962:160,4455:165,4456:165,7373:165,4258:170,5782:170,5963:170,4256:175,5964:175,7374:175,7375:175,4259:180,7377:180,4262:185,5965:185,7378:185,5739:190,5783:190,5966:190,7386:190,17721:190,4260:195,7387:195,4264:200,4304:200,7390:200,7391:200,8172:200,8173:200,8174:200,18238:200,8175:205,8176:205,8187:205,8189:210,8192:210,8198:210,8200:215,8201:220,8203:220,8205:220,8210:220,8204:225,8211:225,8214:225,8217:225,8218:225,8191:230,8193:230,8185:235,8197:235,8209:235,8202:240,8207:240,8216:240,8206:245,8213:245,8170:250,8208:250,8212:250,8215:250,15407:250,15564:250,15077:255,15045:260,15083:260,15074:265,15076:265,15084:265,15046:270,15054:270,15061:270,15067:270,15091:270,15057:275,15064:275,15071:275,15073:275,15078:275,15092:275,18258:275,15072:280,15082:280,15086:280,15093:280,15048:285,15053:285,15056:285,15060:285,15065:285,15069:285,15079:285,34086:285,15050:290,15063:290,15066:290,15075:290,15087:290,15094:290,19044:290,19052:290,15049:295,15058:295,15070:295,15080:295,16982:295,15047:300,15051:300,15052:300,15055:300,15059:300,15062:300,15068:300,15081:300,15085:300,15088:300,15090:300,15095:300,15096:300,15138:300,16983:300,16984:300,18251:300,18504:300,18506:300,18508:300,18509:300,18510:300,18511:300,19049:300,19058:300,19149:300,19157:300,19162:300,19163:300,19685:300,19686:300,19687:300,19688:300,19689:300,20380:300,20476:300,20477:300,20478:300,20479:300,20480:300,20481:300,21278:300,21887:300,22661:300,22662:300,22663:300,22664:300,22665:300,22666:300,22759:300,22760:300,22761:300,25650:300,25654:300,25662:300,25669:300,25673:300,25679:300,34482:300,25655:310,25661:310,25674:310,25670:315,34099:315,34100:315,25656:320,25668:320,25675:320,23793:325,25651:325,25652:325,25660:325,29540:325,25671:330,25676:330,25657:335,25659:335,29533:335,29534:335,25685:340,25692:340,25694:340,29483:340,29485:340,29486:340,29487:340,29488:340,29528:340,29530:345,25653:350,25680:350,25681:350,25682:350,25683:350,25686:350,25687:350,25693:350,25695:350,29489:350,29490:350,29491:350,29492:350,29493:350,29494:350,29495:350,29496:350,29497:350,29498:350,29499:350,29500:350,29531:350,33568:350,34105:350,34106:350,34207:350,34330:350,38375:350,25690:355,25691:355,25689:360,25696:360,25697:360,33122:360,34490:360,29502:365,29503:365,29504:365,29505:365,29506:365,29507:365,29508:365,29509:365,29510:365,29511:365,29512:365,29514:365,29529:365,29535:365,29536:365,33204:365,34369:365,34370:365,34371:365,34372:365,34373:365,34374:365,34375:365,34376:365,29532:370,38400:370,38404:370,38409:370,38410:370,38412:370,38416:370,38421:370,38422:370,30039:375,30040:375,30041:375,30042:375,30043:375,30044:375,30045:375,30046:375,32393:375,32394:375,32395:375,32396:375,32397:375,32398:375,32399:375,32400:375,32574:375,32575:375,32577:375,32579:375,32580:375,32581:375,32582:375,32583:375,38401:375,38403:375,38407:375,38408:375,38414:375,38418:375,38420:375,38424:375,38402:380,38405:380,38406:380,38411:380,38413:380,38415:380,38417:380,38419:380,38441:380,38433:385,38434:385,38435:385,38436:385,38437:385,38438:385,38439:385,38440:385,38425:390,38376:395,38591:395,38592:395,41238:395,44436:395,44437:395,44440:395,44441:395,44443:395,44444:395,-60584:400,-57701:400,-57699:400,-57696:400,-57694:400,-57692:400,-57691:400,-57690:400,-57683:400,38372:400,38590:400,44438:400,44442:400,44445:400,-60583:405,38371:405,38347:415,38399:415,44446:415,44447:415,44448:415,43130:420,43131:420,43133:420,43255:420,43256:420,43258:420,43260:420,43261:420,43262:420,43263:420,43264:420,43433:420,43434:420,43435:420,43444:420,43445:420,43447:420,43449:420,43452:420,43453:420,43455:420,43457:420,43591:420,43592:420,43594:420,43595:420,38373:425,38374:425,42731:425,43129:425,43132:425,43257:425,43265:425,43266:425,43271:425,43273:425,43436:425,43437:425,43438:425,43439:425,43442:425,43443:425,43446:425,43448:425,43450:425,43451:425,43454:425,43456:425,43590:425,43593:425,44963:425,43458:440,43459:440,43461:440,43469:440,43481:440,43484:440,43495:440,43502:440,43565:440,43566:440,44930:440,44931:440,45553:450,45554:450,45555:450,45556:450,45562:450,45563:450,45564:450,45565:450,47576:450,47577:450,47579:450,47580:450,47581:450,47582:450,47583:450,47584:450,47595:450,47596:450,47597:450,47598:450,47599:450,47600:450,47601:450,47602:450,49633:450,49634:450,49894:450,49895:450,49896:450,49897:450,49898:450,49899:450,49900:450,49901:450,8345:9999,8346:9999,8347:9999,8348:9999,8349:9999,8367:9999,20295:9999,20296:9999,41264:9999",
+	["Tradeskill.Crafted.Leatherworking.Dragonscale"]="29971:260,29975:330,29515:375,29516:375,29517:375,29519:375,29520:375,29521:375",
+	["Tradeskill.Crafted.Leatherworking.Elemental"]="29964:260,29973:330,29525:375,29526:375,29527:375",
+	["Tradeskill.Crafted.Leatherworking.Tribal"]="29970:260,29974:330,29522:375,29523:375,29524:375",
+	["Tradeskill.Crafted.Smelting"]="2840:1,2841:65,3576:65,2842:75,3575:125,3577:155,3859:165,3860:175,6037:230,11371:230,12359:230,12655:250,23445:275,17771:300,22573:300,22574:300,23446:325,23447:350,23448:350,36916:350,23449:375,23573:375,35128:375,36913:400,37663:450,41163:450",
+	["Tradeskill.Crafted.Specialization"]="m,Tradeskill.Crafted.Blacksmithing.Armorsmith,Tradeskill.Crafted.Blacksmithing.Weaponsmith.Axesmith,Tradeskill.Crafted.Blacksmithing.Weaponsmith.Basic,Tradeskill.Crafted.Blacksmithing.Weaponsmith.Hammersmith,Tradeskill.Crafted.Blacksmithing.Weaponsmith.Swordsmith,Tradeskill.Crafted.Engineering.Gnomish,Tradeskill.Crafted.Engineering.Goblin,Tradeskill.Crafted.Leatherworking.Dragonscale,Tradeskill.Crafted.Leatherworking.Elemental,Tradeskill.Crafted.Leatherworking.Tribal,Tradeskill.Crafted.Tailoring.Mooncloth,Tradeskill.Crafted.Tailoring.Shadoweave,Tradeskill.Crafted.Tailoring.Spellfire",
+	["Tradeskill.Crafted.Tailoring.Basic"]="2570:1,2576:1,2996:1,4344:1,10045:1,2568:10,7026:15,10046:20,4343:30,6238:30,6241:30,4307:35,2572:40,2575:40,2577:40,6786:40,4238:45,6239:55,6240:55,2580:60,4308:60,2569:65,2578:70,2579:70,4309:70,5762:70,6242:70,2584:75,2997:75,10047:75,4240:80,4312:80,2582:85,4310:85,5542:90,2583:95,4241:95,4313:95,2587:100,4311:100,6263:100,2585:105,4314:110,4316:110,4330:110,6787:110,5763:115,6264:115,4315:120,6384:120,6385:120,10048:120,4305:125,4317:125,4320:125,4331:125,45626:125,4318:130,4332:135,5766:135,4321:140,7046:140,4319:145,7047:145,7048:145,4245:150,4324:150,5770:150,7049:150,4333:155,6795:160,7050:160,4322:165,7065:165,4323:170,4334:170,7051:170,4325:175,4339:175,5764:175,6796:175,7052:175,7053:175,7055:175,4328:180,7056:180,7057:180,4326:185,4335:185,5765:185,7058:185,7054:190,7059:190,7060:190,17723:190,7061:195,7062:195,4327:200,4329:200,4336:200,7063:205,9998:205,9999:205,7064:210,10001:210,10002:210,10003:215,10004:215,10007:215,10008:215,10009:215,10056:215,10052:220,10018:225,10019:225,10021:225,10023:225,10042:225,10050:225,22246:225,10024:230,10026:230,10027:230,10054:230,10028:235,10029:235,10051:235,10053:235,10055:235,10030:240,10031:240,10033:240,10034:240,10025:245,10035:245,10044:245,38278:245,6836:250,10036:250,10040:250,10041:250,14048:250,14342:250,21154:250,21542:250,34085:250,34087:250,38277:250,13856:255,13868:255,13869:255,13857:260,13858:260,14042:260,14046:260,21340:260,13860:265,13870:265,14143:265,14043:270,14100:270,14101:270,14142:270,13863:275,14044:275,14103:275,14107:275,14132:275,14134:275,14141:275,18258:275,22248:275,22251:275,13864:280,13871:280,14045:280,21341:280,13865:285,14108:285,14136:285,14104:290,14111:290,14137:290,14144:290,15802:290,19047:290,19056:290,13866:295,13867:300,14106:300,14112:300,14128:300,14130:300,14138:300,14139:300,14140:300,14146:300,14152:300,14153:300,14154:300,14155:300,14156:300,16979:300,16980:300,18263:300,18405:300,18407:300,18408:300,18409:300,18413:300,18486:300,19050:300,19059:300,19156:300,19165:300,19682:300,19683:300,19684:300,20537:300,20538:300,20539:300,21342:300,21840:300,22249:300,22252:300,22652:300,22654:300,22655:300,22658:300,22660:300,22756:300,22757:300,22758:300,24268:300,21849:310,21850:310,21841:315,21851:320,21842:325,21852:325,21853:335,24273:335,24275:335,21843:340,21854:340,21859:340,24270:340,21844:345,21855:345,21845:350,21860:350,21866:350,24249:350,24250:350,24251:350,24252:350,24253:350,24254:350,24271:350,24272:350,30831:350,30837:350,41510:350,41512:350,41513:350,21863:355,21861:360,21862:360,21867:360,30838:360,41509:360,41515:360,44211:360,21864:365,24255:365,24256:365,24257:365,24258:365,24259:365,24260:365,34364:365,34365:365,34366:365,34367:365,21868:370,30839:370,41522:370,21858:375,21865:375,21872:375,21876:375,24261:375,24262:375,24263:375,24264:375,24266:375,24267:375,24274:375,24276:375,30035:375,30036:375,30037:375,30038:375,32389:375,32390:375,32391:375,32392:375,32420:375,32584:375,32585:375,32586:375,32587:375,38225:375,41520:375,41519:380,41521:380,41523:385,41528:385,41525:390,41607:390,41543:395,41546:395,41548:395,41608:395,41248:400,41249:400,41250:400,41251:400,41252:400,41253:400,41254:400,41255:400,41511:400,41551:400,41601:400,41603:400,45811:400,-56039:405,-56034:405,41545:405,41549:405,45810:405,41544:410,41550:410,41599:410,41553:415,41555:415,41593:415,41594:415,41595:415,43969:415,43974:415,-55777:420,-55769:420,-55642:420,41516:420,41554:420,41985:420,41986:420,42095:420,42096:420,43584:420,43585:420,43970:420,43971:420,43972:420,43973:420,43975:420,41984:425,42093:425,43583:425,41602:430,41604:430,41597:435,42103:435,42111:435,42113:435,45773:435,41598:440,42100:440,42101:440,42102:440,41600:445,45557:450,45558:450,45566:450,45567:450,47585:450,47586:450,47587:450,47588:450,47603:450,47604:450,47605:450,47606:450,49890:450,49891:450,49892:450,49893:450,30459:9999,30460:9999,30461:9999,41609:9999,41610:9999,44554:9999,44558:9999",
+	["Tradeskill.Crafted.Tailoring.Mooncloth"]="21873:355,21874:365,21875:375",
+	["Tradeskill.Crafted.Tailoring.Shadoweave"]="21869:355,21870:365,21871:375",
+	["Tradeskill.Crafted.Tailoring.Spellfire"]="21846:355,21847:365,21848:375",
+
+	["Tradeskill.Gather.Disenchant"]="10938,10939,10940,10978,10998,11082,11083,11084,11134,11135,11137,11138,11139,11174,11175,11176,11177,11178,14343,14344,16202,16203,16204,20725,22445,22446,22447,22448,22449,22450,34052,34053,34054,34056,34057",
+	["Tradeskill.Gather.Fishing"]="118,858,929,1467,1710,2455,3371,3372,3385,3820,3827,3857,3928,4603,6149,6289,6291,6292,6294,6299,6303,6307,6308,6309,6310,6311,6317,6351,6352,6353,6354,6355,6356,6357,6358,6359,6361,6362,6458,6470,6522,6717,6718,7070,7078,7079,7080,7973,8365,10156,12238,13422,13443,13446,13754,13755,13756,13757,13758,13759,13760,13874,13875,13876,13877,13883,13885,13886,13888,13889,13890,13893,13901,13905,13918,16967,16968,16969,16970,19807,19975,20708,20709,21071,21113,21114,21150,21151,21153,21228,22578,24476,27422,27425,27429,27435,27437,27438,27439,27481,27511,27513,27515,27516,33823,33824,34486,34864,34865,34867,34868,35285,35286,35287,35313,36781,37705,40199,41802,41803,41805,41806,41807,41808,41809,41810,41812,41813,41814,43571,43572,43643,43644,43645,43646,43647,43652,43653,43658,43675,43676,43677,43678,43679,43680,43681,43682,43683,43684,43685,43686,43687,43694,43695,43696,43701,43702,43703,43704,43705,43706,43707,43708,43709,43710,43711,43712,43713,43714,43715,43716,43717,43718,43719,43720,43721,43722,43723,44475,44756,45188,45189,45190,45191,45194,45195,45196,45197,45198,45199,45200,45201,45202,45328,45902,45903,45904,45905,45907,45909",
+	["Tradeskill.Gather.Herbalism"]="765,785,2447,2449,2450,2452,2453,3355,3356,3357,3358,3369,3818,3819,3820,3821,4625,5056,8153,8831,8836,8838,8839,8845,8846,11514,11979,11980,11992,12005,12016,12017,12027,12036,12048,12058,13463,13464,13465,13466,13467,13468,22575,22576,22710,22785,22786,22787,22788,22789,22790,22791,22792,22793,22794,22795,22797,24401,25813,27859,29453,32468,32506,33452,35229,35947,36901,36902,36903,36904,36905,36906,36907,36908,37704,37921,39516,39969,39970",
+	["Tradeskill.Gather.Milling"]="4604,4605,39151,39334,39338,39339,39340,39341,39342,39343,43103,43104,43105,43106,43107,43108,43109",
+	["Tradeskill.Gather.Mining"]="774,818,1206,1210,1529,1705,2770,2771,2772,2775,2776,2798,2835,2836,2838,3340,3858,3864,4278,5075,5833,7076,7909,7910,7911,7912,9262,10620,11370,11382,11513,11754,12361,12363,12364,12365,12799,12800,19774,21929,22202,22203,22573,22574,23077,23079,23107,23112,23117,23424,23425,23426,23427,23436,23437,23438,23439,23440,23441,24189,32227,32228,32229,32230,32231,32249,32464,32506,34907,35229,35624,35627,36725,36728,36909,36910,36912,36917,36918,36920,36921,36923,36924,36926,36927,36929,36930,36932,36933,37359,37700,37701,37702,37703,37705,39220,41614",
+	["Tradeskill.Gather.Pickpocketing"]="117,118,414,422,730,774,818,858,929,1179,1205,1206,1210,1468,1529,1645,1705,1707,1708,1710,1711,1712,2070,2287,2406,2407,2408,2409,2553,2555,2589,2592,2598,2676,2881,3419,3421,3609,3610,3770,3771,3864,3927,3928,4292,4293,4306,4338,4345,4346,4408,4409,4422,4536,4537,4538,4539,4540,4541,4542,4544,4599,4601,4602,4603,4604,4605,4606,4607,4608,5368,5369,5370,5371,5373,5374,5375,5376,5377,5427,5428,5429,5430,5431,5432,5433,5435,5498,5500,5523,5524,5784,6150,6271,6289,6303,6308,6342,6344,6348,6362,6580,6716,7208,7288,7675,7682,7684,7737,7909,7910,8072,8152,8179,8932,8948,8950,8952,8953,8959,9241,10457,10760,11602,12841,13446,14047,14148,14540,16882,16883,16884,16885,17057,17124,18945,19775,20023,20030,21877,21929,22829,23077,23079,23107,23112,23117,23436,23437,23438,23439,23440,23441,23686,24231,27854,27855,27856,27858,27859,29448,29450,29569,29570,29571,29572,29575,29576,30458,30610,33447,33449,33452,33454,33470,35188,35947,35948,35950,35952,35953,36862,36863,37350,37452,37467,38260,38261,38263,38264,38266,38268,38269,38273,38274,40202,43089,43575,43576,43577",
+	["Tradeskill.Gather.Prospecting"]="774,818,1206,1210,1529,1705,3864,7909,7910,12361,12364,12799,12800,21929,23077,23079,23107,23112,23117,23436,23437,23438,23439,23440,23441,24243,36917,36918,36919,36920,36921,36922,36923,36924,36925,36926,36927,36928,36929,36930,36931,36932,36933,36934",
+	["Tradeskill.Gather.Skinning"]="783,2318,2319,2592,2934,4232,4234,4235,4304,6470,6471,7286,7287,7392,7428,8154,8165,8167,8169,8170,8171,8368,8973,11512,12366,12607,12731,15408,15410,15412,15414,15415,15416,15417,15419,15422,15423,17012,17057,18947,19767,19768,20381,20498,20499,20500,20501,21887,22573,22575,22785,22786,22787,22789,23677,24189,24401,25649,25699,25700,25707,25708,25813,29453,29539,29547,29548,32470,33447,33452,33567,33568,35229,35947,36729,36901,36902,36903,36904,36905,36906,36907,37701,37704,38269,38557,38558,38561,39220,39516,39681,39682,39684,39685,39690,41337,41338,42510,42542,44128,44687",
+
+	["Tradeskill.Gather.GemsInNodes.Adamantite Deposit"]="21929,23077,23079,23107,23112,23117",
+	["Tradeskill.Gather.GemsInNodes.Copper Vein"]="774,818,1210",
+	["Tradeskill.Gather.GemsInNodes.Dark Iron Deposit"]="11382",
+	["Tradeskill.Gather.GemsInNodes.Fel Iron Deposit"]="21929,23077,23079,23107,23112,23117",
+	["Tradeskill.Gather.GemsInNodes.Gold Vein"]="1529,1705,3864",
+	["Tradeskill.Gather.GemsInNodes.Hakkari Thorium Vein"]="7910,12361,12363,12364,12799,12800,19774",
+	["Tradeskill.Gather.GemsInNodes.Iron Deposit"]="1529,1705,3864,7909",
+	["Tradeskill.Gather.GemsInNodes.Khorium Vein"]="12363,21929,23077,23079,23107,23112,23117,23436,23437,23438,23439,23440,23441",
+	["Tradeskill.Gather.GemsInNodes.Mithril Deposit"]="3864,7909,7910",
+	["Tradeskill.Gather.GemsInNodes.Rich Adamantite Deposit"]="21929,23077,23079,23107,23112,23117",
+	["Tradeskill.Gather.GemsInNodes.Rich Thorium Vein"]="7910,12361,12363,12364,12799,12800",
+	["Tradeskill.Gather.GemsInNodes.Silver Vein"]="1206,1210,1705",
+	["Tradeskill.Gather.GemsInNodes.Small Thorium Vein"]="7910,12361,12363,12364,12799,12800",
+	["Tradeskill.Gather.GemsInNodes.Tin Vein"]="1206,1210,1529,1705",
+	["Tradeskill.Gather.GemsInNodes.Truesilver Deposit"]="3864,7909,7910",
+	["Tradeskill.Gather.GemsInNodes.Cobalt Deposit"]="36917,36920,36926,36929,36932",
+	["Tradeskill.Gather.GemsInNodes.Rich Cobalt Deposit"]="36917,36920,36923,36926,36929,36932",
+	["Tradeskill.Gather.GemsInNodes.Saronite Deposit"]="36917,36920,36923,36926,36929,36932",
+	["Tradeskill.Gather.GemsInNodes.Rich Saronite Deposit"]="36917,36920,36923,36926,36929,36930,36932",
+	["Tradeskill.Gather.GemsInNodes.Titanium Vein"]="36917,36918,36920,36921,36923,36924,36926,36927,36929,36930,36932,36933",
+
+	["Tradeskill.Gem.Red"]="23077,23094,23095,23096,23097,23436,24027,24028,24029,24030,24031,24032,24036,27777,27812,28118,28360,28361,28362,28458,28459,28460,28461,28462,28595,30571,30598,32193,32194,32195,32196,32197,32198,32199,32227,33131,33132,33133,33134,35487,35488,35489,36766,36917,36918,36919,38545,38549,39900,39905,39906,39907,39908,39909,39910,39911,39996,39997,39998,39999,40000,40001,40002,40003,40111,40112,40113,40114,40115,40116,40117,40118,41432,41433,41434,41435,41436,41437,41438,41439,42142,42143,42144,42151,42152,42153,42154,45862,45879,45883",
+	["Tradeskill.Gem.Blue"]="23117,23118,23119,23120,23121,23438,24033,24035,24037,24039,28463,28464,28465,32200,32201,32202,32203,32228,33135,33137,34256,34831,36767,36923,36924,36925,39919,39920,39927,39932,40008,40009,40010,40011,40119,40120,40121,40122,41440,41441,41442,41443,42145,42146,42155,45880,45881",
+	["Tradeskill.Gem.Yellow"]="23112,23113,23114,23115,23116,23440,24047,24048,24050,24051,24052,24053,27679,28119,28120,28290,28466,28467,28468,28469,28470,31860,31861,32204,32205,32206,32207,32208,32209,32210,32229,33138,33139,33140,33141,33142,33143,33144,34627,35315,35761,36920,36921,36922,38546,38550,39912,39914,39915,39916,39917,39918,40012,40013,40014,40015,40016,40017,40123,40124,40125,40126,40127,40128,41444,41445,41446,41447,41448,41449,42148,42149,42150,42156,42157,42158,44066,45882,45987",
+	["Tradeskill.Gem.Green"]="23079,23103,23104,23105,23106,23437,24062,24065,24066,24067,27785,27786,27809,27820,30548,30550,30560,30583,30586,30589,30590,30592,30594,30602,30605,30606,30608,32223,32224,32225,32226,32249,32635,32639,32735,33782,35318,35758,35759,36932,36933,36934,39968,39974,39975,39976,39977,39978,39979,39980,39981,39982,39983,39984,39985,39986,39988,39989,39990,39991,39992,40085,40086,40088,40089,40090,40091,40092,40094,40095,40096,40098,40099,40100,40101,40102,40103,40104,40105,40106,40164,40165,40166,40167,40168,40169,40170,40171,40172,40173,40174,40175,40176,40177,40178,40179,40180,40181,40182,41463,41464,41465,41466,41467,41468,41469,41470,41471,41472,41473,41474,41475,41476,41477,41478,41479,41480,41481",
+	["Tradeskill.Gem.Purple"]="23107,23108,23109,23110,23111,23441,24054,24055,24056,24057,30546,30549,30552,30555,30563,30566,30572,30574,30600,30603,31116,31117,31118,31862,31863,31864,31865,32211,32212,32213,32214,32215,32216,32230,32634,32636,32833,32836,35707,36926,36927,36928,37503,39933,39934,39935,39936,39937,39938,39939,39940,39941,39942,39943,39944,39945,40022,40023,40024,40025,40026,40027,40028,40029,40030,40031,40032,40033,40034,40129,40130,40131,40132,40133,40134,40135,40136,40137,40138,40139,40140,40141,41450,41451,41452,41453,41454,41455,41456,41457,41458,41459,41460,41461,41462",
+	["Tradeskill.Gem.Orange"]="21929,23098,23099,23100,23101,23439,24058,24059,24060,24061,28123,28363,30547,30551,30553,30554,30556,30558,30559,30564,30565,30573,30575,30581,30582,30584,30585,30587,30588,30591,30593,30601,30604,30607,31866,31867,31868,31869,32217,32218,32219,32220,32221,32222,32231,32637,32638,35316,35760,36929,36930,36931,38547,38548,39946,39947,39948,39949,39950,39951,39952,39953,39954,39955,39956,39957,39958,39959,39960,39961,39962,39963,39964,39965,39966,39967,40037,40038,40039,40040,40041,40043,40044,40045,40046,40047,40048,40049,40050,40051,40052,40053,40054,40055,40056,40057,40058,40059,40142,40143,40144,40145,40146,40147,40148,40149,40150,40151,40152,40153,40154,40155,40156,40157,40158,40159,40160,40161,40162,40163,41429,41482,41483,41484,41485,41486,41487,41488,41489,41490,41491,41492,41493,41494,41495,41496,41497,41498,41499,41500,41501,41502",
+	["Tradeskill.Gem.Meta"]="25867,25868,25890,25893,25894,25895,25896,25897,25898,25899,25901,28556,28557,32409,32410,32640,32641,34220,35501,35503,41266,41285,41307,41333,41334,41335,41339,41375,41376,41377,41378,41379,41380,41381,41382,41385,41389,41395,41396,41397,41398,41400,41401,44076,44078,44081,44082,44084,44087,44088,44089",
+	["Tradeskill.Gem.Prismatic"]="22459,22460,34142,34143,42225,42701,42702,45054,49110",
+
+	["Tradeskill.Gem.Cut"]="21929:23098;23099;23100;23101;31866;31869,22449:22460,22450:22459,23077:23094;23095;23096;23097;28595,23079:23103;23104;23105;23106,23107:23108;23109;23110;23111;31862;31864,23112:23113;23113;23114;23115;23116;28290;31860,23117:23118;23119;23120;23121,23436:24027;24028;24029;24030;24031;24032;24036;33131;33133;33134,23437:24062;24065;24066;24067;33782;35318,23438:24033;24035;24037;24039;33135,23439:24058;24059;24060;24061;31867;31868;35316,23440:24047;24048;24050;24051;24052;24053;31861;33140;33143;33144;35315,23441:24054;24055;24056;24057;31863;31865;35707,24478:32833,24479:32836,25867:25896;25897;25898;25899;25901;32409;35501,25868:25890;25893;25894;25895;32410;34220;35503,32227:32193;32194;32195;32196;32197;32198;32199,32228:32200;32201;32202;32203,32229:32204;32205;32206;32207;32208;32209;32210;35761,32230:32211;32212;32213;32214;32215;32216;37503,32231:32217;32218;32219;32220;32221;32222;35760,32249:32223;32224;32225;32226;35758;35759,34054:42701;42702;49110,36783:42701,36784:42702,36917:39900;39905;39906;39907;39908;39909;39910;39911,36918:39996;39997;39998;39999;40000;40001;40002;40003,36919:40111;40112;40113;40114;40115;40116;40117;40118,36920:39912;39914;39915;39916;39917;39918,36921:40012;40013;40014;40015;40016;40017,36922:40123;40124;40125;40126;40127;40128,36923:39919;39920;39927;39932,36924:40008;40009;40010;40011,36925:40119;40120;40121;40122,36926:39933;39934;39935;39936;39937;39938;39939;39940;39941;39942;39943;39944;39945,36927:40022;40023;40024;40025;40026;40027;40028;40029;40030;40031;40032;40033;40034,36928:40129;40130;40131;40132;40133;40134;40135;40136;40137;40138;40139;40140;40141,36929:39946;39947;39948;39949;39950;39951;39952;39953;39954;39955;39956;39957;39958;39959;39960;39961;39962;39963;39964;39965;39966;39967,36930:40037;40038;40039;40040;40041;40043;40044;40045;40046;40047;40048;40049;40050;40051;40052;40053;40054;40055;40056;40057;40058;40059,36931:40142;40143;40144;40145;40146;40147;40148;40149;40150;40151;40152;40153;40154;40155;40156;40157;40158;40159;40160;40161;40162;40163,36932:39968;39974;39975;39976;39977;39978;39979;39980;39981;39982;39983;39984;39985;39986;39988;39989;39990;39991;39992,36933:40085;40086;40088;40089;40090;40091;40092;40094;40095;40096;40098;40099;40100;40101;40102;40103;40104;40105;40106,36934:40164;40165;40166;40167;40168;40169;40170;40171;40172;40173;40174;40175;40176;40177;40178;40179;40180;40181;40182,41266:41285;41307;41333;41335;41339;41375;41376;41377;41378;41379;41400,41334:41380;41381;41382;41385;41389;41395;41396;41397;41398;41401,42225:36766;36767;42142;42143;42144;42145;42146;42148;42149;42150;42151;42152;42153;42154;42155;42156;42157;42158;49110",
+
+	["Tradeskill.Mat.ByProfession.Alchemy"]="118,765,785,1288,2447,2449,2450,2452,2453,3164,3355,3356,3357,3358,3369,3371,3372,3575,3818,3819,3820,3821,3824,3858,3860,4342,4402,4625,5635,5637,6358,6359,6370,6371,6522,7067,7068,7070,7076,7077,7078,7080,7082,7972,8153,8831,8836,8838,8839,8845,8846,8925,9149,9260,9262,10286,10620,11176,12359,12363,12803,12804,12808,12938,13422,13423,13463,13464,13465,13466,13467,13468,13503,18256,19943,21884,21885,21886,21929,22451,22452,22456,22457,22573,22574,22578,22785,22786,22787,22789,22790,22791,22792,22793,22794,23077,23079,23107,23112,23117,23571,23782,25867,25868,30183,33447,33448,35622,35623,35624,35625,35627,36860,36901,36903,36904,36905,36906,36907,36908,36913,36917,36918,36921,36923,36924,36927,36929,36930,36932,36933,37701,37702,37703,37704,37705,37921,39970,40195,40199,40411,41814,44958",
+	["Tradeskill.Mat.ByProfession.Blacksmithing.Armorsmith"]="3860,7075,7081,21885,22451,22452,22456,22457,23446,23447,23448,23449,23563,23564,23571,23572,23573,28483,28484,30183,36913,37701",
+	["Tradeskill.Mat.ByProfession.Blacksmithing.Basic"]="774,818,1206,1210,1529,1705,2318,2319,2321,2459,2589,2592,2605,2835,2836,2838,2840,2841,2842,2880,3391,3466,3470,3478,3486,3575,3577,3823,3824,3829,3859,3860,3864,4234,4255,4304,4306,4338,5498,5500,5635,5637,5966,6037,7067,7068,7069,7070,7075,7076,7077,7078,7080,7081,7909,7910,7912,7966,7971,7972,8153,8170,11371,11382,11754,12359,12360,12361,12364,12365,12644,12655,12662,12753,12799,12800,12803,12804,12808,12809,12810,12811,13510,13512,14047,15417,17010,17011,17012,17203,19726,19774,20520,20725,21877,21884,21885,21886,21887,22202,22203,22445,22449,22450,22451,22452,22456,22457,22573,22682,22824,22831,23445,23446,23447,23448,23449,23571,23572,23573,23793,27503,30183,32428,34054,34664,35128,35622,35623,35624,35625,35627,36860,36913,36916,36925,37663,37700,37701,37702,37703,37705,41163,41245,41355,43102,45087,47556,49908",
+	["Tradeskill.Mat.ByProfession.Blacksmithing.Weaponsmith.Axesmith"]="21885,22451,22452,22456,22457,23446,23447,23448,23571,23572,23573,28431,28432,28434,28435,30183",
+	["Tradeskill.Mat.ByProfession.Blacksmithing.Weaponsmith.Basic"]="3860,7075,7077,7081,36913,37702",
+	["Tradeskill.Mat.ByProfession.Blacksmithing.Weaponsmith.Hammersmith"]="21884,21885,22451,22452,22457,23446,23447,23449,23571,23572,23573,28437,28438,28440,28441,30183",
+	["Tradeskill.Mat.ByProfession.Blacksmithing.Weaponsmith.Swordsmith"]="22451,22452,22456,22457,23446,23448,23449,23571,23572,23573,28425,28426,28428,28429,30183",
+	["Tradeskill.Mat.ByProfession.Cooking"]="159,723,729,730,731,769,785,1015,1080,1081,1179,1468,2251,2452,2593,2594,2596,2672,2673,2674,2675,2677,2678,2886,2924,3172,3173,3174,3404,3667,3685,3712,3730,3731,3821,4402,4603,4655,5051,5465,5466,5467,5468,5469,5470,5471,5503,5504,6289,6291,6303,6308,6317,6361,6362,6522,6889,7974,8150,8365,9061,12037,12184,12202,12203,12204,12205,12206,12207,12208,12223,12808,13754,13755,13756,13757,13758,13759,13760,13888,13889,13893,17194,17196,18255,20424,21024,21071,21153,22577,22644,23676,24477,27422,27425,27429,27435,27437,27438,27439,27515,27516,27668,27669,27671,27674,27676,27677,27678,27681,27682,30816,30817,31670,31671,33823,33824,34412,34736,35562,35948,35949,36782,41800,41801,41802,41803,41805,41806,41807,41808,41809,41810,41812,41813,43007,43009,43010,43011,43012,43013,43501,44834,44835,44853,44854,44855,46784,46793,46796,46797",
+	["Tradeskill.Mat.ByProfession.Enchanting"]="2772,3356,3371,3372,3819,3829,4470,4625,5500,5637,6037,6048,6217,6218,6338,6339,6370,6371,7067,7068,7075,7076,7077,7078,7079,7080,7081,7082,7392,7909,7971,7972,8153,8170,8831,8838,8925,9224,10938,10939,10940,10978,10998,11082,11083,11084,11128,11130,11134,11135,11137,11138,11139,11144,11145,11174,11175,11176,11177,11178,11291,12359,12803,12808,12811,13444,13446,13467,13926,14343,14344,16202,16203,16204,16206,16207,17034,17035,18256,20725,21884,21885,21886,22445,22446,22447,22448,22449,22450,22451,22452,22456,22457,22461,22462,22463,22572,22573,22574,22578,22791,22792,22794,22824,23427,23571,25843,25844,25845,34052,34054,34055,34056,34057,35622,35623,35624,35625,35627,36860,36918,37663,37705,41163,41745,44958",
+	["Tradeskill.Mat.ByProfession.Engineering.Basic"]="159,774,814,818,1206,1210,1529,1705,2318,2319,2589,2592,2605,2835,2836,2838,2840,2841,2842,2880,2901,3575,3577,3829,3859,3860,3864,4234,4304,4306,4338,4339,4342,4357,4359,4361,4363,4364,4368,4371,4375,4377,4382,4385,4387,4389,4399,4400,4402,4404,4470,4611,5956,6037,6530,7005,7067,7068,7069,7076,7077,7078,7079,7080,7082,7191,7909,7910,7912,8150,8153,8170,9060,9061,10285,10286,10500,10502,10505,10546,10558,10559,10560,10561,10576,10592,11291,11371,12359,12360,12361,12364,12365,12799,12800,12803,12804,12808,12810,13467,14047,14227,15407,15992,15994,16000,16006,17010,17011,17202,18232,18631,19726,20816,21840,21877,21884,21885,21886,21887,21929,22445,22448,22449,22451,22452,22456,22457,22573,22574,22829,22832,23077,23079,23112,23436,23437,23438,23439,23440,23441,23445,23446,23448,23449,23571,23572,23573,23781,23782,23783,23784,23785,23786,23787,23793,32423,32461,32472,32473,32474,32475,32476,32478,32479,32480,32494,32495,33470,33568,34113,34249,35128,35622,35623,35624,35625,35627,36860,36913,36916,36918,36920,36921,36922,36924,36927,36930,36933,37663,37700,37701,37702,37705,38425,39681,39682,39683,39684,39690,40533,40769,41146,41163,43102,44128,44499,44500,44501",
+	["Tradeskill.Mat.ByProfession.Engineering.Gnomish"]="1529,3860,3864,4234,4337,4338,4389,6037,7075,7079,7191,7387,7909,7910,7972,8151,9060,10026,10285,10500,10505,10558,10559,10560,10561,10647,10648,12359,12808,15994,16006,18631,21884,21885,21886,22445,22449,22451,22452,22456,23436,23437,23781,23782,23783,23784,23785,23786,23787,23793,24271,34052,37703,39681,41163",
+	["Tradeskill.Mat.ByProfession.Engineering.Goblin"]="3860,3864,4234,4338,4394,4407,6037,7067,7068,7077,7191,7910,9061,10026,10505,10507,10543,10558,10559,10560,10561,10577,10586,10647,10648,14227,15994,16006,17020,18631,21877,21884,22451,22452,22457,23573,23781,23782,23783,23784,23785,23786,23787,23826,24272,36913,37701,39690",
+	["Tradeskill.Mat.ByProfession.First Aid"]="1288,1475,2589,2592,4306,4338,14047,19441,21877,33470",
+	["Tradeskill.Mat.ByProfession.Inscription"]="10648,21886,35625,35627,37101,39151,39334,39338,39339,39340,39341,39342,39343,39354,39469,39501,39502,39774,43102,43103,43104,43105,43106,43107,43108,43109,43115,43116,43117,43118,43119,43120,43121,43122,43123,43124,43125,43126,43127",
+	["Tradeskill.Mat.ByProfession.Jewelcrafting"]="774,818,1206,1210,1529,1705,2835,2836,2838,2840,2841,2842,3391,3575,3577,3824,3827,3860,3864,5498,5637,6037,6149,7067,7070,7075,7076,7077,7078,7079,7081,7082,7909,7910,7912,7971,8151,8152,10286,11083,11137,11178,11371,11382,11754,12359,12360,12361,12363,12364,12365,12662,12799,12800,12803,12804,12808,12938,18335,20816,20817,20963,21752,21884,21885,21886,21929,22451,22452,22456,22457,22578,23077,23079,23107,23112,23117,23436,23437,23438,23439,23440,23441,23445,23446,23447,23448,23449,23571,23572,23573,24243,24478,24479,25867,25868,27860,31079,32227,32228,32229,32230,32231,32249,34052,34054,34664,35128,35622,35623,35624,35625,35627,36783,36784,36860,36917,36918,36919,36920,36921,36922,36923,36924,36925,36926,36927,36928,36929,36930,36931,36932,36933,36934,37701,41163,41266,41334,42225,43102",
+	["Tradeskill.Mat.ByProfession.Leatherworking.Basic"]="783,1206,1529,2318,2319,2320,2321,2324,2325,2457,2459,2604,2605,2840,2934,2997,3182,3356,3383,3389,3390,3824,3864,4096,4231,4232,4233,4234,4235,4236,4243,4246,4289,4291,4304,4305,4337,4338,4340,4342,4461,5082,5373,5498,5500,5633,5637,5784,5785,6470,6471,7067,7070,7071,7075,7076,7077,7078,7079,7080,7082,7286,7287,7392,7971,8150,8151,8152,8153,8154,8165,8167,8169,8170,8171,8172,8343,8949,8951,10285,11754,12607,12753,12803,12804,12809,12810,14044,14047,14048,14227,14256,14341,14342,15407,15408,15409,15410,15412,15414,15415,15416,15417,15419,17010,17011,17012,17056,18240,18512,19726,19767,19768,20381,20498,20500,20501,21844,21884,21885,21886,21887,22445,22448,22450,22451,22452,22456,22457,22682,23571,23572,23793,25649,25699,25700,25707,25708,25719,29539,29547,29548,30183,32428,33567,33568,34055,34057,34664,35622,35623,35624,35625,35627,36860,37700,37703,37705,38425,38557,38558,38561,43102,44128,45087,47556,49908",
+	["Tradeskill.Mat.ByProfession.Leatherworking.Dragonscale"]="8165,8170,8172,14341,15416,21884,22451,22456,22457,23572,23793,29548",
+	["Tradeskill.Mat.ByProfession.Leatherworking.Elemental"]="7081,8170,8172,14341,22451,22452,23571,23572,23793",
+	["Tradeskill.Mat.ByProfession.Leatherworking.Tribal"]="8153,8170,8172,14341,17056,21886,22451,23571,23572,23793,25699,29547",
+	["Tradeskill.Mat.ByProfession.Smelting"]="2770,2771,2772,2775,2776,2840,3575,3576,3857,3858,7911,10620,11176,11370,12359,12360,17010,18562,18567,21884,22452,23424,23425,23426,23427,23445,23446,23447,23449,23573,35624,35627,36860,36909,36910,36912,41163",
+	["Tradeskill.Mat.ByProfession.Tailoring.Basic"]="929,1529,2318,2319,2320,2321,2324,2325,2589,2592,2604,2605,2996,2997,3182,3383,3577,3824,3827,3829,3864,4234,4291,4304,4305,4306,4337,4338,4339,4340,4341,4342,4589,4625,5498,5500,6037,6048,6260,6261,6371,7067,7068,7069,7070,7071,7072,7076,7077,7078,7079,7080,7082,7910,7971,7972,8153,8170,8343,8831,9210,10285,10286,10290,11040,11137,11176,12360,12364,12662,12800,12803,12804,12808,12809,12810,12811,13468,13926,14047,14048,14227,14256,14341,14342,14344,16203,17010,17011,17012,18240,19726,20520,21840,21842,21844,21845,21877,21881,21882,21884,21885,21886,21887,22445,22446,22450,22451,22452,22456,22457,22682,22794,23112,23571,23572,24271,24272,30183,32428,33470,34052,34054,34664,35622,35624,35625,35627,36783,36784,36860,36908,36919,36922,36925,36930,36934,37701,37702,37704,38425,38426,41510,41511,41593,41594,41595,42253,43102,45087,47556,49908",
+	["Tradeskill.Mat.ByProfession.Tailoring.Mooncloth"]="21845,21881,21886,22457",
+	["Tradeskill.Mat.ByProfession.Tailoring.Shadoweave"]="21881,21885,24272",
+	["Tradeskill.Mat.ByProfession.Tailoring.Spellfire"]="21881,21884,24271",
+
+	--!!Add to miner
+	["Tradeskill.Mat.BySource.Drop"]="15420,1475,17011,3730,3667,3731,5465,1080,5466,5784,5467,5785,5468,5469,1081,5470,13926,5471,3164,1288,12662,4589,12037,8146,4337,4655,12804,4402,12809,8151,7072,18512,2251,3172,3712,12184,729,3173,17010,1015,3174,6889,4096,1468,14227,7971,19441,5051,5373,730,7974,5498,12204,12205,12206,4611,12208,8168,769,9260,12203,5503,2672,5504,723,731,2673,2675,19943,17203,3182,5635,8152,18240,12607,5637,12202,3685,12223,19726,2924,2886,2677,15410,5116,10285,12753,2674,3404,5500,6470,12207,814,12811,42253,14277",
+	["Tradeskill.Mat.BySource.Gather"]="m,Tradeskill.Gather",
+	["Tradeskill.Mat.BySource.Vendor"]="8923,4289,8924,8925,4291,8150,11291,1179,6261,4340,2320,4341,2596,2604,4342,159,2880,2321,3857,18567,4470,2692,18256,8343,5173,2894,2665,2928,2605,4536,6530,10647,2930,10648,3713,17020,17194,2324,3466,6260,2678,14341,3372,15409,17196,2325,4400,10290,3371,40411,38426,39502,39501,30817,17034,17035,39354",
+
+	--!!Add to miner
+	["Tradeskill.Mat.ByType.Bar"]="2840,2841,2842,3575,3576,3577,3859,3860,6037,11371,12359,12360,12655,17771,23445,23446,23447,23448,23449,23573,36913,36916,37663,41163",
+	["Tradeskill.Mat.ByType.Bolt"]="4305,2997,14048,4339,2996,21840,21842,21844,41510,41511",
+	["Tradeskill.Mat.ByType.Cloth"]="2589,2592,4306,4338,14047,14256,14342,21845,21877,24271,24272,33470,41593,41594,41595",
+	["Tradeskill.Mat.ByType.Crystal"]="30183,23572,22450,20725,34057,43102",
+	["Tradeskill.Mat.ByType.Crystallized"]="37700,37701,37702,37703,37704,37705",
+	["Tradeskill.Mat.ByType.Dust"]="22445,11083,16204,11137,11176,10940,34054",
+	["Tradeskill.Mat.ByType.Dye"]="2325,2604,6260,6261,4342,10290,4340,2605,2324,4341,9210",
+	["Tradeskill.Mat.ByType.Elemental"]="7070,12808,7078,7082,7067,7075,7079,12803,7068,7076,7080,10286,7069,7972,7077,7081",
+	["Tradeskill.Mat.ByType.Essence"]="22447,22446,11174,10938,11135,11175,16202,11134,16203,10998,11082,10939,34055,34056",
+	["Tradeskill.Mat.ByType.Eternal"]="35622,35623,35624,35625,35627,36860",
+	["Tradeskill.Mat.ByType.Flux"]="2880,3466,18567",
+	["Tradeskill.Mat.ByType.Gem"]="12799,818,12800,11382,1206,774,1705,1210,12361,9262,1529,12363,11754,12364,7910,3864,19774,7909,32227,32228,32229,32230,32231,32249,36784,36917,36918,36920,36921,36923,36924,36926,36927,36929,36930,36932,36933,41266,41334,42225",
+	["Tradeskill.Mat.ByType.Grinding Stone"]="3470,3478,7966,12644,3486",
+	["Tradeskill.Mat.ByType.Herb"]="3819,8153,3355,22789,2452,8838,3820,765,22787,8831,13466,2447,22792,22791,13465,22793,785,3357,3356,3358,13467,8846,3369,13464,3821,8845,22788,4625,22785,22794,3818,2449,22786,13463,2453,2450,8839,8836,22790,19726,13468,36901,36902,36903,36904,36905,36906,36907,36908,37921",
+	["Tradeskill.Mat.ByType.Hide"]="783,4231,4232,4233,4235,4236,4461,7428,8169,8171,8172,8368,15407,25707",
+	["Tradeskill.Mat.ByType.Ink"]="10647,37101,39469,39774,43115,43116,43117,43118,43119,43120,43121,43122,43123,43124,43125,43126,43127",
+	["Tradeskill.Mat.ByType.Leather"]="2318,2319,2934,4234,4304,5082,8170,12810,15417,15419,15422,15423,17012,19767,19768,21887,23793,25649,25699,25708,33568,38425,44128",
+	["Tradeskill.Mat.ByType.Mote"]="22572,22573,22574,22575,22576,22577,22578",
+	["Tradeskill.Mat.ByType.Oil"]="6371,6370,3829,9061,3824,13423,8956",
+	["Tradeskill.Mat.ByType.Ore"]="23426,23427,23424,23425,2775,2776,18562,2770,3858,2771,11370,2772,7911,10620,36909,36910,36912",
+	["Tradeskill.Mat.ByType.Parchment"]="10648,39354,39501,39502",
+	["Tradeskill.Mat.ByType.Part"]="4361,10560,4404,10576,10561,15994,10546,10647,7191,4363,4394,10648,18631,4359,9060,4400,4371,4375,10507,16000,4387,4399,16006,10558,4382,4407,4389,10559,10586,39681,39682,39683,39684,39690,40533,44499,44500,44501,39354,39502,39501",
+	["Tradeskill.Mat.ByType.Pearl"]="24479,24478,5498,4611,13926,5500,7971,36783",
+	["Tradeskill.Mat.ByType.Pigment"]="39151,39334,39338,39339,39340,39341,39342,39343,43103,43104,43105,43106,43107,43108,43109",
+	["Tradeskill.Mat.ByType.Poison"]="8924,3818,2928,8923,8925,18256,2930,5173,3372,3371,2931",
+	["Tradeskill.Mat.ByType.Powder"]="10505,4377,4357,15992,4364",
+	["Tradeskill.Mat.ByType.Primal"]="23571,23572,22451,22452,21884,21886,22457,22456,21885",
+	["Tradeskill.Mat.ByType.Rod"]="16206,6338,11144,11128,6217,41745",
+	["Tradeskill.Mat.ByType.Salt"]="15409,4289,8150",
+	["Tradeskill.Mat.ByType.Scale"]="5784,5785,6470,6471,7286,7287,7392,8154,8165,8167,12607,15408,15410,15412,15414,15415,15416,20381,20498,25700,29539,29547,29548,38557,38558,38561",
+	["Tradeskill.Mat.ByType.Shard"]="22449,22448,11084,14343,11139,10978,11177,14344,11138,11178,34052,34053",
+	["Tradeskill.Mat.ByType.Spice"]="2665,2678,2692,3713,17194,43007",
+	["Tradeskill.Mat.ByType.Spider Silk"]="4337,3182,10285,21881,14227,42253",
+	["Tradeskill.Mat.ByType.Stone"]="2835,7912,2836,2838,12365",
+	["Tradeskill.Mat.ByType.Thread"]="2320,2321,4291,8343,14341,38426",
+	["Tradeskill.Mat.ByType.Vial"]="3371,18256,8925,3372,40411",
+
+	["Tradeskill.Tool.Alchemy"]="9149,13503,31080,35748,35749,35750,35751,44322,44323,44324",
+	["Tradeskill.Tool.Blacksmithing"]="5956,40772,40892",
+	["Tradeskill.Tool.Cooking"]="4471,40772",
+	["Tradeskill.Tool.Enchanting"]="6218,6339,11130,11145,16207,22461,22462,22463",
+	["Tradeskill.Tool.Engineering"]="5956,6219,10498,40772",
+	["Tradeskill.Tool.Fishing.Gear"]="19969:5,7996:5,19972:5,33820:5,50287:5",
+	["Tradeskill.Tool.Fishing.Lure"]="6529:25,6530:50,6811:50,6532:75,7307:75,33820:75,6533:100,34861:100,46006:100",
+	["Tradeskill.Tool.Fishing.Other"]="34832:10",
+	["Tradeskill.Tool.Fishing.Tool"]="6256:0,12225:3,6367:20,6365:5,25978:20,19022:25,45858:25,44050:30,45991:30,45992:30,19970:35",
+	["Tradeskill.Tool.Inscription"]="39505",
+	["Tradeskill.Tool.Jewelcrafting"]="20815,31080",
+	["Tradeskill.Tool.Mining"]="756,778,1819,1893,1959,2901,9465,20723,30855,40772,40892,40893",
+	["Tradeskill.Tool.Skinning"]="7005,12709,19901,40772,40893",
+
+	["Tradeskill.Recipe.Crafted"]="m,Tradeskill.Recipe.Alchemy.Crafted,Tradeskill.Recipe.Blacksmithing.Crafted,Tradeskill.Recipe.Cooking.Crafted,Tradeskill.Recipe.Enchanting.Crafted,Tradeskill.Recipe.Engineering.Crafted,Tradeskill.Recipe.First Aid.Crafted,Tradeskill.Recipe.Fishing.Crafted,Tradeskill.Recipe.Jewelcrafting.Crafted,Tradeskill.Recipe.Leatherworking.Crafted,Tradeskill.Recipe.Tailoring.Crafted",
+	["Tradeskill.Recipe.Drop"]="m,Tradeskill.Recipe.Alchemy.Drop,Tradeskill.Recipe.Blacksmithing.Drop,Tradeskill.Recipe.Cooking.Drop,Tradeskill.Recipe.Enchanting.Drop,Tradeskill.Recipe.Engineering.Drop,Tradeskill.Recipe.First Aid.Drop,Tradeskill.Recipe.Fishing.Drop,Tradeskill.Recipe.Jewelcrafting.Drop,Tradeskill.Recipe.Leatherworking.Drop,Tradeskill.Recipe.Tailoring.Drop",
+	["Tradeskill.Recipe.Other"]="m,Tradeskill.Recipe.Alchemy.Other,Tradeskill.Recipe.Blacksmithing.Other,Tradeskill.Recipe.Cooking.Other,Tradeskill.Recipe.Enchanting.Other,Tradeskill.Recipe.Engineering.Other,Tradeskill.Recipe.First Aid.Other,Tradeskill.Recipe.Fishing.Other,Tradeskill.Recipe.Jewelcrafting.Other,Tradeskill.Recipe.Leatherworking.Other,Tradeskill.Recipe.Tailoring.Other",
+	["Tradeskill.Recipe.Quest"]="m,Tradeskill.Recipe.Alchemy.Quest,Tradeskill.Recipe.Blacksmithing.Quest,Tradeskill.Recipe.Cooking.Quest,Tradeskill.Recipe.Enchanting.Quest,Tradeskill.Recipe.Engineering.Quest,Tradeskill.Recipe.First Aid.Quest,Tradeskill.Recipe.Fishing.Quest,Tradeskill.Recipe.Jewelcrafting.Quest,Tradeskill.Recipe.Leatherworking.Quest,Tradeskill.Recipe.Tailoring.Quest",
+	["Tradeskill.Recipe.Vendor"]="m,Tradeskill.Recipe.Alchemy.Vendor,Tradeskill.Recipe.Blacksmithing.Vendor,Tradeskill.Recipe.Cooking.Vendor,Tradeskill.Recipe.Enchanting.Vendor,Tradeskill.Recipe.Engineering.Vendor,Tradeskill.Recipe.First Aid.Vendor,Tradeskill.Recipe.Fishing.Vendor,Tradeskill.Recipe.Jewelcrafting.Vendor,Tradeskill.Recipe.Leatherworking.Vendor,Tradeskill.Recipe.Tailoring.Vendor",
+
+	["Tradeskill.Recipe.Alchemy.Crafted"]="10644:210",
+	["Tradeskill.Recipe.Alchemy.Drop"]="2553:50,2555:60,6663:90,3393:110,3394:120,3396:140,6211:150,3830:175,3831:180,3832:195,9293:210,9294:225,9295:235,9296:240,9297:240,9298:245,3395:250,21547:250,13476:255,13479:270,13486:275,13487:275,13488:275,13489:275,13490:280,13491:280,13492:285,13493:285,13494:290,13495:290,13496:290,13497:290,13499:290,13501:295,13518:300,13519:300,13520:300,13521:300,13522:300,18257:300,22903:320,22904:325,31680:335,31681:345,22912:350,22913:350,22914:350,35295:350,22919:355,22920:360,22921:360,22923:360,22924:360,22925:360,31682:360,22926:365,22927:365,35294:365,44564:400,44565:400,44566:400,44567:400,44568:400",
+	["Tradeskill.Recipe.Alchemy.Other"]="44508:0,17709:190,13477:260,13480:275,13481:275",
+	["Tradeskill.Recipe.Alchemy.Quest"]="4597:50,4624:215",
+	["Tradeskill.Recipe.Alchemy.Vendor"]="5640:60,6053:100,6054:135,5642:150,6055:165,6068:165,5643:175,6056:190,6057:190,14634:200,9303:225,9304:225,9305:225,9302:245,9300:250,9301:250,13478:265,12958:275,13482:275,13483:275,13484:275,13485:275,20011:275,20012:275,20013:285,20014:290,13501:295,20761:300,31354:300,31355:300,31356:300,31357:300,22900:305,22901:315,22902:320,32070:320,22905:330,24001:330,32071:330,22906:335,22907:340,22908:345,22909:345,13517:350,22910:350,22911:350,22915:350,22916:350,22917:350,22918:350,23574:350,25869:350,25870:350,29232:350,30443:350,22922:360,33209:375,35752:375,35753:375,35754:375,35755:375",
+	["Tradeskill.Recipe.Blacksmithing.Crafted"]="10713:200",
+	["Tradeskill.Recipe.Blacksmithing.Drop"]="3609:35,3610:60,2881:80,2882:125,2883:125,5578:130,5543:140,3608:145,3611:145,3612:150,6044:150,10424:155,3870:160,6045:165,3867:170,3872:170,3866:175,3871:175,3874:185,6046:190,12261:190,3873:195,3868:200,3869:200,3875:200,7975:210,7976:215,7992:220,8029:225,7989:235,7991:235,7993:240,7990:245,8028:245,12682:250,12683:250,12684:255,12685:260,11610:265,11614:270,12689:270,12691:270,11611:275,12692:275,12693:280,12694:280,11612:285,12695:285,12697:290,12698:290,12828:290,12830:290,12702:295,12703:295,12704:300,12706:300,12707:300,12711:300,12713:300,12714:300,12716:300,12717:300,12718:300,12719:300,12720:300,12728:300,12833:300,12834:300,12835:300,12836:300,12837:300,12838:300,12839:300,18264:300,22220:300,22222:300,22388:300,22389:300,22390:300,33186:335,35296:335,23605:360,23606:360,23608:360,23609:360,23607:365,23610:365,23611:365,23612:365,23620:365,23621:365,23622:365,23623:365,23624:365,23625:365,23626:365,23627:365,23628:365,23629:365,23630:365,23631:365,23632:365,23633:365,23634:365,23635:365,23636:365,23637:365,33174:365,33954:365,35208:365,35209:365,35210:365,35211:365,23613:370,23615:370,23617:370,23639:375,30321:375,30322:375,30323:375,30324:375,32736:375,32737:375,32738:375,32739:375,41120:375,41122:375,41123:375,41124:375,45088:450,45089:450,45090:450,45091:450,45092:450,45093:450,47622:450,47623:450,47624:450,47625:450,47626:450,47627:450,47640:450,47641:450,47642:450,47643:450,47644:450,47645:450",
+	["Tradeskill.Recipe.Blacksmithing.Other"]="17706:190,11615:280,12827:285,20553:300,20554:300,20555:300",
+	["Tradeskill.Recipe.Blacksmithing.Quest"]="33792:35,6735:100,7978:160,7979:160,7980:175,7981:180,7982:185,9367:205,7983:220,7984:220,7985:225,12687:265,12688:265,12690:270,12821:275,12824:280,12825:280,12696:285,12699:290,12700:295,12701:295,12705:300,12715:300,12725:300,12726:300,12727:300,18592:300",
+	["Tradeskill.Recipe.Blacksmithing.Vendor"]="10858:155,12162:160,12163:180,12164:185,6047:190,7995:215,8030:255,12819:275,12823:280,19202:290,19203:290,12703:295,17049:295,17051:295,17052:300,17053:300,17059:300,17060:300,19204:300,19205:300,19206:300,19207:300,19208:300,19209:300,19210:300,19211:300,19212:300,19776:300,19777:300,19778:300,19779:300,19780:300,19781:300,20040:300,22209:300,22214:300,22219:300,22221:300,22766:300,22767:300,22768:300,23590:325,23591:330,23592:330,23593:335,23594:335,23595:335,23596:340,23638:340,23601:350,23618:350,25526:350,25846:350,28632:350,23597:355,23598:355,23602:355,23599:360,23603:360,23619:360,24002:360,25847:360,23600:365,23604:365,31390:375,31391:375,31392:375,31393:375,31394:375,31395:375,32441:375,32442:375,32443:375,32444:375,44937:450,44938:450,49969:450,49970:450,49971:450,49972:450,49973:450,49974:450",
+	["Tradeskill.Recipe.Cooking.Crafted"]="",
+	["Tradeskill.Recipe.Cooking.Drop"]="6325:1,6328:50,2698:85,6661:85,6330:100,2700:110,18267:275,43507:350,43508:350,43509:350,43510:350",
+	["Tradeskill.Recipe.Cooking.Other"]="33925:1,44860:1,46803:1,7678:60,34834:100,44862:100,46804:100,16072:125,44858:160,46805:160,44859:220,46806:220,44861:280,46807:280,27736:300,33869:300,33871:300,33875:300,33870:325,33873:325,34126:350,39692:350,39644:375",
+	["Tradeskill.Recipe.Cooking.Quest"]="27686:1,2889:10,5482:10,728:50,2697:50,5486:50,3679:60,18160:60,22647:60,3678:80,3680:90,5487:90,2699:100,2701:100,3683:110,3734:110,3681:120,3735:125,3682:130,3736:150,3737:175,4609:175,21025:300,27684:300,31674:335,31675:335",
+	["Tradeskill.Recipe.Cooking.Vendor"]="6325:1,6326:1,12226:1,17200:1,27685:1,46710:1,2889:10,5483:20,5484:35,17201:35,6892:40,728:50,2697:50,5485:50,5486:50,6328:50,6329:50,6368:50,27687:50,3679:60,18160:60,22647:60,3678:80,21099:80,2698:85,3680:90,5528:90,44977:90,2699:100,2701:100,5488:100,6330:100,2700:110,3683:110,3734:110,5489:110,3681:120,3735:125,12227:125,3682:130,20075:150,4609:175,6039:175,6369:175,12228:175,12229:175,12231:175,12232:175,12233:175,17062:175,21219:175,12239:200,12240:200,13939:225,13940:225,13941:225,16110:225,16111:225,16767:225,18046:225,13942:240,13943:240,13945:250,13946:250,35564:250,35566:250,13947:275,13948:275,13949:275,27688:300,27694:300,27695:300,30156:300,27689:310,27696:310,27690:315,27697:320,27698:320,27691:325,27692:325,27693:325,27699:325,34413:325,31674:335,31675:335,27700:350,43018:400,43019:400,43020:400,43021:400,43022:400,43023:400,43024:400,43025:400,43026:400,43027:400,43028:400,43029:400,43030:400,43031:400,43032:400,43033:400,43034:400,43035:400,43036:400,43037:400,44954:400,43505:425,43506:425,43017:450",
+	["Tradeskill.Recipe.Enchanting.Crafted"]="",
+	["Tradeskill.Recipe.Enchanting.Drop"]="6342:20,6344:60,6347:80,6348:90,11038:110,11039:110,11081:115,6375:120,11098:135,11150:145,11151:145,11152:145,11164:175,11165:175,11167:190,11168:195,11166:200,11202:210,11203:215,11204:220,11205:225,11206:225,11208:230,11224:235,11225:245,11226:250,16214:255,16215:260,11207:265,11813:265,16216:265,45050:265,16218:270,16219:270,16220:275,16222:280,16223:285,16242:290,16244:295,16245:295,16246:295,16247:295,16248:295,16249:300,16250:300,16251:300,16252:300,16253:300,16254:300,16255:300,18259:300,18260:300,20726:300,20727:300,20728:300,20729:300,20730:300,20731:300,20734:300,20735:300,20736:300,22542:305,35298:305,22530:320,22543:320,22548:330,22532:335,22540:340,22544:340,22551:340,28270:345,22533:350,22553:350,22554:350,22555:350,28276:350,28277:350,22534:360,22541:360,22556:360,22557:360,22558:360,28279:360,28280:360,35297:360,35299:360,22545:370,22559:375,22560:375,22561:375,33307:375,35756:375,50406:375,37330:400,37331:400,37332:400,37333:400,37334:400,46027:450,46348:450",
+	["Tradeskill.Recipe.Enchanting.Other"]="17725:190,35498:350,37335:400,37338:410,37348:425",
+	["Tradeskill.Recipe.Enchanting.Quest"]="",
+	["Tradeskill.Recipe.Enchanting.Vendor"]="20758:45,6346:80,6349:100,11039:110,6377:125,11101:140,20752:150,11163:170,20753:200,11223:235,20754:250,16217:265,16221:275,20755:275,16224:285,16243:290,19444:290,19445:290,19446:290,22392:290,19447:300,19448:300,19449:300,20732:300,20733:300,20756:300,20757:300,33148:300,33149:300,33150:300,33151:300,33152:300,33153:300,22562:310,22531:325,22539:325,24000:325,28274:325,28282:325,22565:335,22552:340,22563:340,22547:345,24003:345,25848:350,28273:350,28281:350,33165:350,22535:360,22536:360,28271:360,28272:360,35500:360,22537:370,22538:375,25849:375,34872:375,37340:410,37344:425,44494:425,37339:430,44471:430,44472:430,44473:430,44483:430,44484:430,37347:435,44485:435,44486:435,44487:435,37349:440,44488:440,44489:440,44490:440,44491:440,44492:440,44495:440,44496:440,44498:440,44944:450,45059:450",
+	["Tradeskill.Recipe.Engineering.Drop"]="4408:75,4409:100,6716:100,4410:120,4411:125,7560:125,4412:145,4413:160,4414:165,7561:165,10601:175,4415:185,6672:185,4416:195,4417:200,7742:200,11827:205,11828:205,10603:220,10604:220,10605:225,10606:225,10608:240,16043:260,18661:260,16044:265,18653:265,18654:265,16045:270,16048:275,16049:285,16051:285,16052:290,16053:290,18657:290,16054:300,16055:300,16056:300,18290:300,18291:300,18292:300,18658:300,23810:325,23883:330,35310:330,25887:335,33804:335,23804:340,23884:345,35311:345,23887:355,35582:355,23800:360,23806:360,23808:360,34114:360,23802:375,23809:375,35186:375,35187:375,35189:375,35190:375,35191:375,35192:375,35193:375,35194:375,35195:375,35196:375,35197:375,49050:450",
+	["Tradeskill.Recipe.Engineering.Other"]="21724:125,21725:125,21726:125,21727:175,21728:175,21729:175,17720:190,21730:225,21731:225,21732:225,21738:225,16041:260,16042:260,18651:260,16047:275,18655:275,21733:275,21734:275,21735:275,21737:275,23885:335",
+	["Tradeskill.Recipe.Engineering.Quest"]="6672:185,22729:275,23888:305",
+	["Tradeskill.Recipe.Engineering.Vendor"]="13309:120,7560:125,14639:140,18647:150,18648:150,18649:150,13308:155,7561:165,13310:180,7742:200,13311:200,18650:200,10602:210,44919:225,10607:230,10609:250,19027:250,18652:260,16046:275,18656:275,22729:275,32381:275,44918:275,16050:285,16054:300,20000:300,20001:300,23816:325,23807:335,23811:335,23814:335,23815:335,23803:340,23799:350,23805:350,23874:350,23817:405,44502:450,44503:450,52022:450,52023:450",
+	["Tradeskill.Recipe.First Aid.Crafted"]="",
+	["Tradeskill.Recipe.First Aid.Drop"]="39153:0,6454:130,39152:400",
+	["Tradeskill.Recipe.First Aid.Other"]="16084:125,16112:180,16085:200,16113:210",
+	["Tradeskill.Recipe.First Aid.Quest"]="",
+	["Tradeskill.Recipe.First Aid.Vendor"]="19442:300,22012:300,21992:330,21993:360",
+	["Tradeskill.Recipe.Fishing.Crafted"]="",
+	["Tradeskill.Recipe.Fishing.Drop"]="",
+	["Tradeskill.Recipe.Fishing.Other"]="16083:125",
+	["Tradeskill.Recipe.Fishing.Quest"]="",
+	["Tradeskill.Recipe.Fishing.Vendor"]="27532:275",
+	["Tradeskill.Recipe.Inscription.Crafted"]="",
+	["Tradeskill.Recipe.Inscription.Drop"]="",
+	["Tradeskill.Recipe.Inscription.Other"]="",
+	["Tradeskill.Recipe.Inscription.Quest"]="",
+	["Tradeskill.Recipe.Inscription.Vendor"]="",
+	["Tradeskill.Recipe.Jewelcrafting.Crafted"]="",
+	["Tradeskill.Recipe.Jewelcrafting.Drop"]="20974:160,20976:190,21940:200,21944:235,21945:245,21947:250,21949:260,21953:285,21955:300,21956:300,23154:315,31870:325,31871:325,31872:325,31873:325,31874:325,24163:345,24158:350,24192:350,24193:350,24194:350,24195:350,24196:350,24197:350,24198:350,24199:350,24200:350,24201:350,24202:350,24203:350,24204:350,24205:350,24206:350,24207:350,24209:350,24210:350,24211:350,24212:350,24213:350,24214:350,24215:350,24216:350,24217:350,24218:350,24219:350,24220:350,31875:350,31876:350,31877:350,31878:350,31879:350,35304:350,35305:350,35306:350,35307:350,24159:355,24160:355,24164:355,24166:355,24167:355,24161:360,24168:360,24169:360,24162:365,24165:365,24170:365,24171:365,25905:365,25906:365,25907:365,25909:365,32411:365,34221:365,34689:365,35198:365,35199:365,35200:365,35201:365,35202:365,35203:365,24172:370,24173:370,32285:375,32289:375,32295:375,32296:375,32297:375,32298:375,32303:375,32307:375,41777:390,41778:390,41779:390,41780:390,41781:390,41782:390,41783:390,41784:390,41785:390,41789:390,41790:390,41791:390,41792:390,41793:390,41794:390,41795:390,41796:390,41817:390,41818:390,41819:390,41820:390,41786:420,41787:420,41788:420,41797:420,41799:420",
+	["Tradeskill.Recipe.Jewelcrafting.Other"]="23130:300,23135:300,23140:300,23144:300,23148:300,23152:300,23131:305,23141:305,23153:305,28596:305,23137:315,23147:325,23151:325,28291:325,32412:365,41798:420",
+	["Tradeskill.Recipe.Jewelcrafting.Quest"]="",
+	["Tradeskill.Recipe.Jewelcrafting.Vendor"]="20854:110,20970:120,20855:125,20971:125,20856:150,20973:150,20975:170,21941:215,21942:225,21943:225,21948:250,21952:275,21954:285,21957:305,23136:305,23145:305,23149:305,23133:315,23142:315,23146:315,23150:315,31359:315,23134:325,23138:325,23143:325,23155:325,24208:350,33783:350,35322:350,35323:350,35325:350,35708:350,41559:350,41560:350,41561:350,41562:350,41563:350,41564:350,41565:350,41566:350,41567:350,41568:350,41569:350,41570:350,41571:350,41572:350,41573:350,41574:350,41575:350,24174:360,24175:360,24176:360,24177:360,24178:360,30826:360,33155:360,33156:360,33157:360,33158:360,33159:360,33160:360,33305:360,25902:365,25903:365,25904:365,25908:365,25910:365,33622:365,24179:370,24180:370,24181:370,24182:370,24183:370,31358:370,35502:370,35505:370,42298:370,42299:370,42300:370,42301:370,42302:370,42303:370,42304:370,42305:370,42306:370,42307:370,42308:370,42309:370,42310:370,42311:370,42312:370,42313:370,42314:370,42315:370,31401:375,31402:375,32274:375,32277:375,32281:375,32282:375,32283:375,32284:375,32286:375,32287:375,32288:375,32290:375,32291:375,32292:375,32293:375,32294:375,32299:375,32300:375,32301:375,32302:375,32304:375,32305:375,32306:375,32308:375,32309:375,32310:375,32311:375,32312:375,35238:375,35239:375,35240:375,35241:375,35242:375,35243:375,35244:375,35245:375,35246:375,35247:375,35248:375,35249:375,35250:375,35251:375,35252:375,35253:375,35254:375,35255:375,35256:375,35257:375,35258:375,35259:375,35260:375,35261:375,35262:375,35263:375,35264:375,35265:375,35266:375,35267:375,35268:375,35269:375,35270:375,35271:375,35695:375,35696:375,35697:375,35698:375,35699:375,35762:375,35763:375,35764:375,35765:375,35766:375,35767:375,35768:375,35769:375,37504:375,41576:390,41577:390,41578:390,41579:390,41580:390,41581:390,41582:390,41686:390,41687:390,41688:390,41689:390,41690:390,41692:390,41693:390,41694:390,41696:390,41697:390,41698:390,41699:390,41701:390,41702:390,41703:390,41718:390,41719:390,41720:390,41721:390,41722:390,41723:390,41724:390,41725:390,41726:390,41727:390,41728:390,41730:390,41732:390,41733:390,41734:390,41735:390,41736:390,41737:390,41738:390,41739:390,41740:390,41747:390,42138:390,41704:420,41705:420,41706:420,41707:420,41708:420,41709:420,41710:420,41711:420,41742:420,41743:420,41744:420,43317:420,43318:420,43319:420,43320:420,43485:420,43497:420,43597:420,42648:430,42649:430,42650:430,42651:440,42652:440,42653:440,46897:450,46898:450,46899:450,46900:450,46901:450,46902:450,46903:450,46904:450,46905:450,46906:450,46907:450,46908:450,46909:450,46910:450,46911:450,46912:450,46913:450,46914:450,46915:450,46916:450,46917:450,46918:450,46919:450,46920:450,46921:450,46922:450,46923:450,46924:450,46925:450,46926:450,46927:450,46928:450,46929:450,46930:450,46931:450,46932:450,46933:450,46934:450,46935:450,46936:450,46937:450,46938:450,46939:450,46940:450,46941:450,46942:450,46943:450,46944:450,46945:450,46946:450,46947:450,46948:450,46949:450,46950:450,46951:450,46952:450,46953:450,46956:450,47007:450,47008:450,47010:450,47011:450,47012:450,47015:450,47016:450,47017:450,47018:450,47019:450,47020:450,47021:450,47022:450,47023:450,49112:450",
+	["Tradeskill.Recipe.Leatherworking.Crafted"]="",
+	["Tradeskill.Recipe.Leatherworking.Drop"]="7288:35,2407:60,2408:75,2406:90,5786:90,5787:95,2409:100,4293:100,5972:105,4294:120,7360:120,4296:140,7363:140,7364:145,4297:150,7449:165,4298:170,5788:170,4299:175,7450:175,5974:185,5789:190,4300:195,4301:200,7452:200,7453:200,8384:200,8385:205,8386:215,8387:220,8395:220,8397:220,8398:225,8399:235,8389:240,8390:240,8400:240,8401:245,8402:250,15727:265,15728:265,15731:270,15732:270,15733:270,15737:275,15738:275,15739:275,15742:275,15743:280,15744:280,15745:280,15746:280,15747:285,15748:285,15749:285,15752:285,15753:285,15754:285,15755:290,15757:290,15760:290,15761:295,15763:295,15764:295,15730:300,15765:300,15768:300,15770:300,15771:300,15772:300,15773:300,15774:300,15775:300,15776:300,15777:300,15779:300,15781:300,18252:300,18515:300,21548:300,29669:340,29672:340,29673:340,29674:340,29675:340,29718:345,25728:350,25729:350,25730:350,25731:350,29714:350,34491:360,29723:365,29724:365,29725:365,29726:365,29727:365,29728:365,29729:365,29730:365,29731:365,29732:365,29733:365,29734:365,35212:365,35213:365,35214:365,35215:365,35216:365,35217:365,35218:365,35219:365,35300:365,35301:365,35302:365,35303:365,30301:375,30302:375,30303:375,30304:375,30305:375,30306:375,30307:375,30308:375,32744:375,32745:375,32746:375,32747:375,32748:375,32749:375,32750:375,32751:375,45094:450,45095:450,45096:450,45097:450,45098:450,45099:450,45100:450,45101:450,47628:450,47629:450,47630:450,47631:450,47632:450,47633:450,47634:450,47635:450,47646:450,47647:450,47648:450,47649:450,47650:450,47651:450,47652:450,47653:450",
+	["Tradeskill.Recipe.Leatherworking.Other"]="17722:190,15756:290,18514:300,18516:300,18517:300,18518:300,18519:300,25720:325",
+	["Tradeskill.Recipe.Leatherworking.Quest"]="5083:40,6710:90,6476:115,8403:220,8404:225,8405:225,8406:245,8407:250,8408:250",
+	["Tradeskill.Recipe.Leatherworking.Vendor"]="5786:90,6474:90,5787:95,7289:100,20576:100,6475:105,7290:120,7361:135,7362:135,18731:150,7613:155,18949:155,13287:165,13288:165,5788:170,5973:170,14635:185,5789:190,7451:190,18239:200,8385:205,8409:210,15724:255,15725:260,15726:260,15729:265,15734:270,15735:270,15740:275,15741:275,20253:275,15751:285,20254:285,34262:285,15758:290,15759:290,19326:290,19328:290,15762:295,17022:295,17023:300,17025:300,19327:300,19329:300,19330:300,19331:300,19332:300,19333:300,19769:300,19770:300,19771:300,19772:300,19773:300,20382:300,20506:300,20507:300,20508:300,20509:300,20510:300,20511:300,22769:300,22770:300,22771:300,25726:300,25721:325,25722:325,29664:325,30444:325,29719:335,29720:335,31361:335,25732:340,25741:340,25742:340,29217:340,29219:340,34172:345,34173:345,25725:350,25733:350,25734:350,25738:350,25743:350,29213:350,29218:350,29677:350,29682:350,29684:350,29689:350,29691:350,29693:350,29698:350,29700:350,29701:350,29702:350,29703:350,29704:350,34174:350,34175:350,34200:350,34201:350,34218:350,25736:355,25737:355,25735:360,25739:360,25740:360,29214:360,29215:360,33124:360,29717:365,29721:365,29722:365,31362:365,33205:365,29713:370,32429:375,32430:375,32431:375,32432:375,32433:375,32434:375,32435:375,32436:375,44509:415,44510:415,44511:415,44512:415,44513:420,44514:420,44515:420,44516:420,44521:420,44522:420,44523:420,44524:420,44530:420,44531:420,44532:420,44533:420,44538:420,44539:420,44540:420,44541:420,44585:420,44586:420,44588:420,44589:420,44517:425,44518:425,44519:425,44520:425,44525:425,44526:425,44527:425,44528:425,44534:425,44535:425,44536:425,44537:425,44542:425,44543:425,44544:425,44545:425,44584:425,44587:425,44546:440,44547:440,44548:440,44549:440,44550:440,44551:440,44552:440,44553:440,44932:440,44933:440,49957:450,49958:450,49959:450,49961:450,49962:450,49963:450,49965:450,49966:450",
+	["Tradeskill.Recipe.Tailoring.Crafted"]="",
+	["Tradeskill.Recipe.Tailoring.Drop"]="2598:40,6270:55,6271:55,5771:70,4292:95,4345:95,4346:100,2601:105,5772:115,4347:120,6390:120,6391:120,10316:120,4348:125,4349:125,4350:140,7092:145,5773:150,7091:150,7090:165,4351:170,4352:175,5774:175,4353:180,4354:185,5775:185,7084:190,7085:190,7086:195,4356:200,10300:215,10301:215,10302:215,10312:225,10315:235,10320:240,14466:255,14467:255,14470:260,14471:260,14473:265,14474:265,14476:270,14477:270,14478:270,14479:270,14480:275,14482:275,14484:275,14485:275,14486:275,14489:280,14490:280,14491:285,14492:285,14493:285,14494:290,14495:290,14496:290,14497:290,14498:295,14499:300,14500:300,14501:300,14504:300,14505:300,14506:300,14507:300,14508:300,14509:300,14510:300,14511:300,14512:300,14513:300,14514:300,18265:300,21371:300,22309:300,43876:325,21905:350,24296:350,24297:350,24298:350,24299:350,24300:350,24301:350,35308:350,21906:360,21903:365,24302:365,24303:365,24304:365,24305:365,24306:365,24307:365,35204:365,35205:365,35206:365,35207:365,35309:365,21907:370,21904:375,21911:375,21915:375,21919:375,24308:375,24309:375,24310:375,24311:375,24312:375,24313:375,30280:375,30281:375,30282:375,30283:375,32752:375,32753:375,32754:375,32755:375,42172:400,42173:400,42175:400,42176:400,42177:400,42178:400,45102:450,45103:450,45104:450,45105:450,47636:450,47637:450,47638:450,47639:450,47654:450,47655:450,47656:450,47657:450",
+	["Tradeskill.Recipe.Tailoring.Other"]="17724:190,21722:250,21723:250,14481:275,14488:280,18414:300,18415:300,18416:300,18417:300,18418:300,20546:300,20547:300,20548:300",
+	["Tradeskill.Recipe.Tailoring.Quest"]="10463:245",
+	["Tradeskill.Recipe.Tailoring.Vendor"]="6270:55,5771:70,6272:70,6274:100,5772:115,6275:115,14627:135,7114:145,6401:155,14630:165,7089:175,7087:180,4355:200,10728:200,7088:205,10311:220,22307:225,10314:230,10317:235,10318:240,10321:240,10323:245,38328:245,10325:250,10326:250,14526:250,34261:250,34319:250,37915:250,38327:250,44916:250,44917:250,14468:260,14469:260,21358:260,14472:265,14483:275,22308:275,22310:275,19215:290,19216:290,17017:300,17018:300,18487:300,19217:300,19218:300,19219:300,19220:300,19764:300,19765:300,19766:300,22312:300,22683:300,22772:300,22773:300,22774:300,21892:325,24292:335,24293:335,21893:340,21896:340,21898:340,24314:340,21894:345,21897:345,21895:350,21899:350,24316:350,30483:350,30833:350,30842:350,21902:355,21908:355,21912:355,21916:355,21900:360,21901:360,30843:360,21909:365,21914:365,21918:365,30844:370,21910:375,21911:375,21913:375,21915:375,21917:375,21919:375,24294:375,24295:375,32437:375,32438:375,32439:375,32440:375,32447:375,38229:375,54798:425,42187:430,42188:430,42183:435,45774:435,42185:440,42184:445,49953:450,49954:450,49955:450,49956:450",
+
+	["Tradeskill.RecipeLinks.Alchemy"]="-60893:-60893,-2330:118,-2337:858,-3447:929,-7181:1710,-2329:2454,-2331:2455,-2332:2456,-3230:2457,-2334:2458,-2335:2459,-3170:3382,-3171:3383,-3172:3384,-3173:3385,-3174:3386,-3175:3387,-3176:3388,-3177:3389,-2333:3390,-3188:3391,-11479:3577,-3448:3823,-3449:3824,-3450:3825,-3451:3826,-3452:3827,-3453:3828,-3454:3829,-11457:3928,-4508:4596,-4942:4623,-6617:5631,-6618:5633,-6624:5634,-7179:5996,-7183:5997,-11480:6037,-7256:6048,-7257:6049,-7258:6050,-7255:6051,-7259:6052,-11448:6149,-7836:6370,-7837:6371,-7841:6372,-7845:6373,-8240:6662,-25146:7068,-17565:7076,-17560:7076,-17559:7078,-17563:7080,-17561:7080,-17562:7082,-62410:8827,-11449:8949,-11450:8951,-11451:8956,-11452:9030,-11453:9036,-11456:9061,-11466:9088,-11458:9144,-11459:9149,-11460:9154,-11461:9155,-11464:9172,-11465:9179,-11467:9187,-11468:9197,-11472:9206,-11473:9210,-11477:9224,-11478:9233,-11476:9264,-12609:10592,-15833:12190,-17187:12360,-17566:12803,-17564:12808,-17551:13423,-17552:13442,-17553:13443,-17580:13444,-17554:13445,-17556:13446,-17555:13447,-17571:13452,-17557:13453,-17573:13454,-17570:13455,-17575:13456,-17574:13457,-17576:13458,-17578:13459,-17577:13461,-17572:13462,-17632:13503,-17634:13506,-17635:13510,-17636:13511,-17637:13512,-17638:13513,-21923:17708,-22732:18253,-22808:18294,-24266:19931,-24366:20002,-24368:20004,-24365:20007,-24367:20008,-26277:21546,-28582:21884,-28566:21884,-28580:21885,-28567:21885,-28585:21886,-28569:22451,-28584:22452,-28568:22452,-28581:22456,-28583:22457,-28543:22823,-28544:22824,-28545:22825,-28546:22826,-28549:22827,-28550:22828,-28551:22829,-28552:22830,-28553:22831,-28555:22832,-28556:22833,-28557:22834,-28558:22835,-28562:22836,-28563:22837,-28564:22838,-28565:22839,-28570:22840,-28571:22841,-28572:22842,-28573:22844,-28575:22845,-28576:22846,-28577:22847,-28578:22848,-28579:22849,-28586:22850,-28587:22851,-28588:22853,-28589:22854,-28590:22861,-28591:22866,-28554:22871,-29688:23571,-32765:25867,-32766:25868,-33732:28100,-33733:28101,-33738:28102,-33740:28103,-33741:28104,-38070:31080,-38962:31676,-38961:31677,-38960:31679,-39636:32062,-39637:32063,-39638:32067,-39639:32068,-41458:32839,-41500:32849,-41501:32850,-41502:32851,-41503:32852,-42736:33208,-53836:33447,-53837:33448,-45061:34440,-53776:35622,-53774:35622,-53783:35623,-53781:35623,-53779:35624,-53777:35624,-53780:35625,-53775:35625,-53782:35627,-53771:35627,-47046:35748,-47048:35749,-47049:35750,-47050:35751,-53784:36860,-53773:36860,-66659:36919,-66660:36922,-66663:36925,-66662:36928,-66658:36931,-66664:36934,-53840:39666,-53838:39671,-53839:40067,-53841:40068,-53842:40070,-53847:40072,-54218:40073,-53848:40076,-53895:40077,-53898:40078,-53899:40079,-53900:40081,-53904:40087,-53905:40093,-54220:40097,-56519:40109,-53812:40195,-54221:40211,-54222:40212,-53936:40213,-53939:40214,-53937:40215,-53942:40216,-53938:40217,-60350:41163,-57425:41266,-57427:41334,-58871:43569,-58868:43570,-60396:44322,-60403:44323,-60405:44324,-60354:44325,-60355:44327,-60356:44328,-60357:44329,-60365:44330,-60366:44331,-60367:44332,-62213:44939,-62409:44958,-63732:45621,-53901:46376,-53903:46377,-54213:46378,-53902:46379,-67025:47499",
+	["Tradeskill.RecipeLinks.Blacksmithing.Armorsmith"]="-34529:23563,-34530:23564,-36256:23565,-34533:28483,-34534:28484,-36257:28485,-36122:30069,-36124:30070,-36129:30074,-36130:30076,-55186:41189,-55187:41190",
+	["Tradeskill.RecipeLinks.Blacksmithing.Basic"]="-55641:-55641,-55628:-55628,-2737:2844,-2738:2845,-2739:2847,-2740:2848,-2741:2849,-2742:2850,-2661:2851,-2662:2852,-2663:2853,-2664:2854,-2666:2857,-2660:2862,-2665:2863,-2667:2864,-2668:2865,-2670:2866,-2672:2868,-2673:2869,-2675:2870,-2674:2871,-3115:3239,-3116:3240,-3117:3241,-3319:3469,-3320:3470,-3321:3471,-3323:3472,-3324:3473,-3325:3474,-3326:3478,-3328:3480,-3330:3481,-3331:3482,-3333:3483,-3334:3484,-3336:3485,-3337:3486,-3292:3487,-3293:3488,-3294:3489,-3295:3490,-3296:3491,-3297:3492,-3501:3835,-3502:3836,-3503:3837,-3504:3840,-3505:3841,-3506:3842,-3507:3843,-3508:3844,-3511:3845,-3513:3846,-3515:3847,-3491:3848,-3492:3849,-3493:3850,-3494:3851,-3495:3852,-3496:3853,-3497:3854,-3498:3855,-3500:3856,-6517:5540,-6518:5541,-7223:6040,-7224:6041,-7221:6042,-7222:6043,-7408:6214,-7818:6338,-7817:6350,-8367:6731,-8768:7071,-8880:7166,-9811:7913,-9813:7914,-9814:7915,-9818:7916,-9820:7917,-9926:7918,-9928:7919,-9931:7920,-9933:7921,-9935:7922,-9937:7924,-9945:7926,-9950:7927,-9952:7928,-9957:7929,-9959:7930,-9961:7931,-9966:7932,-9968:7933,-9970:7934,-9972:7935,-9979:7936,-9980:7937,-9954:7938,-9974:7939,-9993:7941,-9995:7942,-9997:7943,-10005:7944,-10001:7945,-10009:7946,-10013:7947,-10003:7954,-9983:7955,-9985:7956,-9986:7957,-9987:7958,-10011:7959,-10015:7960,-10007:7961,-9916:7963,-9918:7964,-9921:7965,-9920:7966,-9939:7967,-9964:7969,-11454:9060,-11643:9366,-12260:10421,-12259:10423,-14379:11128,-14380:11144,-15296:11604,-15295:11605,-15293:11606,-15294:11607,-15292:11608,-15972:12259,-15973:12260,-16641:12404,-16642:12405,-16643:12406,-16644:12408,-16652:12409,-16653:12410,-16662:12414,-16648:12415,-16645:12416,-16659:12417,-16654:12418,-16656:12419,-16725:12420,-16663:12422,-16647:12424,-16649:12425,-16657:12426,-16658:12427,-16646:12428,-16730:12429,-16664:12610,-16665:12611,-16726:12612,-16731:12613,-16732:12614,-16745:12618,-16744:12619,-16742:12620,-16650:12624,-16660:12625,-16667:12628,-16655:12631,-16661:12632,-16724:12633,-16728:12636,-16741:12639,-16729:12640,-16746:12641,-16640:12643,-16639:12644,-16651:12645,-16969:12773,-16970:12774,-16971:12775,-16973:12776,-16978:12777,-16983:12781,-16985:12782,-16995:12783,-16994:12784,-16990:12790,-16984:12792,-16993:12794,-16988:12796,-16992:12797,-16991:12798,-19666:15869,-19667:15870,-19668:15871,-19669:15872,-20201:16206,-20873:16988,-20872:16989,-20876:17013,-20874:17014,-20890:17015,-20897:17016,-21161:17193,-21913:17704,-22757:18262,-23628:19043,-23629:19048,-23632:19051,-23633:19057,-23636:19148,-23637:19164,-23638:19166,-23639:19167,-23652:19168,-23653:19169,-23650:19170,-24136:19690,-24137:19691,-24138:19692,-24139:19693,-24140:19694,-24141:19695,-24399:20039,-24912:20549,-24914:20550,-24913:20551,-27590:22191,-27589:22194,-27588:22195,-27587:22196,-27585:22197,-27586:22198,-27832:22383,-27830:22384,-27829:22385,-28242:22669,-28243:22670,-28244:22671,-28461:22762,-28462:22763,-28463:22764,-29545:23482,-29547:23484,-29548:23487,-29549:23488,-29550:23489,-29556:23490,-29552:23491,-29551:23493,-29553:23494,-29557:23497,-29558:23498,-29565:23499,-29566:23502,-29568:23503,-29569:23504,-29571:23505,-29603:23506,-29606:23507,-29605:23508,-29610:23509,-29608:23510,-29611:23511,-29613:23512,-29617:23513,-29616:23514,-29614:23515,-29615:23516,-29619:23517,-29620:23518,-29621:23519,-29642:23520,-29643:23521,-29645:23522,-29629:23523,-29628:23524,-29630:23525,-29648:23526,-29649:23527,-29654:23528,-29656:23529,-29657:23530,-29658:23531,-29622:23532,-29662:23533,-29663:23534,-29664:23535,-29668:23536,-29669:23537,-29671:23538,-29672:23539,-29692:23540,-29693:23541,-29694:23542,-29695:23543,-29696:23544,-29697:23546,-29698:23554,-29699:23555,-29700:23556,-32284:23559,-29728:23575,-29729:23576,-32285:25521,-32655:25843,-32656:25844,-32657:25845,-34607:28420,-34608:28421,-34979:29201,-34981:29202,-34982:29203,-34983:29204,-36392:30031,-36390:30032,-36391:30033,-36389:30034,-38473:31364,-38475:31367,-38476:31368,-38477:31369,-38478:31370,-38479:31371,-40036:32401,-40033:32402,-40034:32403,-40035:32404,-41132:32568,-41133:32570,-41134:32571,-41135:32573,-43846:32854,-42662:33173,-42688:33185,-43549:33791,-46144:34377,-46141:34378,-46142:34379,-46140:34380,-52572:39083,-52571:39084,-52570:39085,-52567:39086,-52568:39087,-52569:39088,-54550:40668,-54551:40669,-54557:40670,-54552:40671,-54553:40672,-54555:40673,-54554:40674,-54917:40942,-54947:40943,-54918:40949,-54941:40950,-54944:40951,-54945:40952,-54946:40953,-54948:40954,-54949:40955,-54978:40956,-54979:40957,-54980:40958,-54981:40959,-55014:41113,-55015:41114,-55017:41116,-55013:41117,-55055:41126,-55056:41127,-55057:41128,-55058:41129,-55174:41181,-55177:41182,-55179:41183,-55181:41184,-55182:41185,-55200:41239,-55201:41240,-55202:41241,-55203:41242,-55204:41243,-55206:41245,-55369:41257,-55302:41344,-55303:41345,-55304:41346,-55310:41347,-55308:41348,-55309:41349,-55312:41350,-55306:41351,-55307:41352,-55311:41353,-55305:41354,-55298:41355,-55300:41356,-55301:41357,-55370:41383,-55371:41384,-55372:41386,-55373:41387,-55374:41388,-55375:41391,-55376:41392,-55377:41394,-55656:41611,-55732:41745,-55834:41974,-55835:41975,-55839:41976,-56234:42435,-56280:42443,-56357:42500,-56400:42508,-56549:42723,-56553:42724,-56555:42725,-56554:42726,-56550:42727,-56556:42728,-56551:42729,-56552:42730,-61008:43586,-61009:43587,-61010:43588,-59406:43853,-59405:43854,-59436:43860,-59438:43864,-59440:43865,-59441:43870,-59442:43871,-62202:44936,-63182:45085,-63187:45550,-63191:45551,-63189:45552,-63188:45559,-63192:45560,-63190:45561,-67092:47570,-67131:47571,-67094:47572,-67133:47573,-67096:47574,-67135:47575,-67093:47589,-67132:47590,-67091:47591,-67130:47592,-67095:47593,-67134:47594,-70562:49902,-70565:49903,-70567:49904,-70563:49905,-70566:49906,-70568:49907",
+	["Tradeskill.RecipeLinks.Blacksmithing.Weaponsmith.Axesmith"]="-34541:28431,-34542:28432,-36260:28433,-34543:28434,-34544:28435,-36261:28436,-36134:30087,-36135:30088",
+	["Tradeskill.RecipeLinks.Blacksmithing.Weaponsmith.Basic"]="-36125:30071,-36126:30072,-36128:30073,-55183:41186,-55184:41187,-55185:41188",
+	["Tradeskill.RecipeLinks.Blacksmithing.Weaponsmith.Hammersmith"]="-34545:28437,-34546:28438,-36262:28439,-34547:28440,-34548:28441,-36263:28442,-36136:30089,-36137:30093",
+	["Tradeskill.RecipeLinks.Blacksmithing.Weaponsmith.Swordsmith"]="-34535:28425,-34537:28426,-36258:28427,-34538:28428,-34540:28429,-36259:28430,-36131:30077,-36133:30086",
+	["Tradeskill.RecipeLinks.Cooking"]="-2542:724,-2543:733,-7752:787,-2549:1017,-2547:1082,-2538:2679,-2539:2680,-2540:2681,-2545:2682,-2544:2683,-2541:2684,-2548:2685,-2546:2687,-2795:2888,-3371:3220,-3370:3662,-3372:3663,-3373:3664,-3376:3665,-3377:3666,-3397:3726,-3398:3727,-3399:3728,-3400:3729,-4094:4457,-7753:4592,-7755:4593,-7828:4594,-7827:5095,-6412:5472,-6413:5473,-6414:5474,-6415:5476,-6416:5477,-6417:5478,-6418:5479,-6419:5480,-6499:5525,-6501:5526,-6500:5527,-7213:6038,-7751:6290,-7754:6316,-8238:6657,-18238:6887,-8604:6888,-8607:6890,-9513:7676,-20916:8364,-13028:10841,-15853:12209,-15855:12210,-15861:12212,-15863:12213,-15865:12214,-15910:12215,-15915:12216,-15906:12217,-15933:12218,-15935:12224,-15856:13851,-18239:13927,-18240:13928,-18242:13929,-18241:13930,-18243:13931,-18244:13932,-18245:13933,-18246:13934,-18247:13935,-20626:16766,-21143:17197,-21144:17198,-21175:17222,-22480:18045,-22761:18254,-24418:20074,-24801:20452,-25659:21023,-25704:21072,-25954:21217,-28267:22645,-33277:24105,-33276:27635,-33278:27636,-33279:27651,-33284:27655,-33285:27656,-33286:27657,-33287:27658,-33288:27659,-33289:27660,-33290:27661,-33291:27662,-33292:27663,-33293:27664,-33294:27665,-33295:27666,-33296:27667,-36210:30155,-37836:30816,-38867:31672,-38868:31673,-64054:33004,-42296:33048,-42302:33052,-42305:33053,-43707:33825,-43758:33866,-43761:33867,-43765:33872,-43772:33874,-43779:33924,-45022:34411,-57421:34747,-45549:34748,-45550:34749,-45551:34750,-45552:34751,-45553:34752,-45554:34753,-45555:34754,-45556:34755,-45557:34756,-45558:34757,-45559:34758,-45560:34759,-45561:34760,-45562:34761,-45563:34762,-45564:34763,-45565:34764,-45566:34765,-45567:34766,-45568:34767,-45571:34768,-45570:34769,-45695:34832,-46684:35563,-46688:35565,-53056:39520,-45569:42942,-57433:42993,-57434:42994,-57436:42995,-57437:42996,-57438:42997,-57439:42998,-57441:42999,-57442:43000,-57443:43001,-57435:43004,-57440:43005,-57423:43015,-58065:43268,-58527:43478,-58528:43480,-58521:43488,-58512:43490,-58523:43491,-58525:43492,-66036:44836,-62044:44836,-66038:44837,-62050:44837,-66037:44838,-62045:44838,-66034:44839,-62051:44839,-66035:44840,-62049:44840,-62350:44953,-64358:45932,-65454:46691",
+	["Tradeskill.RecipeLinks.Enchanting"]="-71692:-71692,-69412:-69412,-64579:-64579,-64441:-64441,-63746:-63746,-62959:-62959,-62948:-62948,-62256:-62256,-60767:-60767,-60763:-60763,-60714:-60714,-60707:-60707,-60692:-60692,-60691:-60691,-60668:-60668,-60663:-60663,-60653:-60653,-60623:-60623,-60621:-60621,-60616:-60616,-60609:-60609,-60606:-60606,-59636:-59636,-59625:-59625,-59621:-59621,-59619:-59619,-47901:-47901,-47900:-47900,-47899:-47899,-47898:-47898,-47766:-47766,-47672:-47672,-47051:-47051,-46594:-46594,-46578:-46578,-44645:-44645,-44636:-44636,-44635:-44635,-44633:-44633,-44631:-44631,-44630:-44630,-44629:-44629,-44625:-44625,-44623:-44623,-44621:-44621,-44616:-44616,-44598:-44598,-44596:-44596,-44595:-44595,-44593:-44593,-44592:-44592,-44591:-44591,-44590:-44590,-44589:-44589,-44588:-44588,-44584:-44584,-44582:-44582,-44576:-44576,-44575:-44575,-44556:-44556,-44555:-44555,-44529:-44529,-44528:-44528,-44524:-44524,-44513:-44513,-44510:-44510,-44509:-44509,-44508:-44508,-44506:-44506,-44500:-44500,-44494:-44494,-44492:-44492,-44489:-44489,-44488:-44488,-44484:-44484,-44483:-44483,-44383:-44383,-42974:-42974,-42620:-42620,-34010:-34010,-34009:-34009,-34008:-34008,-34007:-34007,-34006:-34006,-34005:-34005,-34004:-34004,-34003:-34003,-34002:-34002,-34001:-34001,-33999:-33999,-33997:-33997,-33996:-33996,-33995:-33995,-33994:-33994,-33993:-33993,-33992:-33992,-33991:-33991,-33990:-33990,-28004:-28004,-28003:-28003,-27984:-27984,-27982:-27982,-27981:-27981,-27977:-27977,-27975:-27975,-27972:-27972,-27971:-27971,-27968:-27968,-27967:-27967,-27962:-27962,-27961:-27961,-27960:-27960,-27958:-27958,-27957:-27957,-27954:-27954,-27951:-27951,-27950:-27950,-27948:-27948,-27947:-27947,-27946:-27946,-27945:-27945,-27944:-27944,-27927:-27927,-27926:-27926,-27924:-27924,-27920:-27920,-27917:-27917,-27914:-27914,-27913:-27913,-27911:-27911,-27906:-27906,-27905:-27905,-27899:-27899,-27837:-27837,-25086:-25086,-25084:-25084,-25083:-25083,-25082:-25082,-25081:-25081,-25080:-25080,-25079:-25079,-25078:-25078,-25074:-25074,-25073:-25073,-25072:-25072,-23804:-23804,-23803:-23803,-23802:-23802,-23801:-23801,-23800:-23800,-23799:-23799,-22750:-22750,-22749:-22749,-21931:-21931,-20036:-20036,-20035:-20035,-20034:-20034,-20033:-20033,-20032:-20032,-20031:-20031,-20030:-20030,-20029:-20029,-20028:-20028,-20026:-20026,-20025:-20025,-20024:-20024,-20023:-20023,-20020:-20020,-20017:-20017,-20016:-20016,-20015:-20015,-20014:-20014,-20013:-20013,-20012:-20012,-20011:-20011,-20010:-20010,-20009:-20009,-20008:-20008,-13948:-13948,-13947:-13947,-13945:-13945,-13943:-13943,-13941:-13941,-13939:-13939,-13937:-13937,-13935:-13935,-13933:-13933,-13931:-13931,-13917:-13917,-13915:-13915,-13905:-13905,-13898:-13898,-13890:-13890,-13887:-13887,-13882:-13882,-13868:-13868,-13858:-13858,-13846:-13846,-13841:-13841,-13836:-13836,-13822:-13822,-13817:-13817,-13815:-13815,-13794:-13794,-13746:-13746,-13700:-13700,-13698:-13698,-13695:-13695,-13693:-13693,-13689:-13689,-13687:-13687,-13663:-13663,-13661:-13661,-13659:-13659,-13657:-13657,-13655:-13655,-13653:-13653,-13648:-13648,-13646:-13646,-13644:-13644,-13642:-13642,-13640:-13640,-13637:-13637,-13635:-13635,-13631:-13631,-13626:-13626,-13622:-13622,-13620:-13620,-13617:-13617,-13612:-13612,-13607:-13607,-13538:-13538,-13536:-13536,-13529:-13529,-13522:-13522,-13503:-13503,-13501:-13501,-13485:-13485,-13464:-13464,-13421:-13421,-13419:-13419,-13380:-13380,-13378:-13378,-7867:-7867,-7863:-7863,-7861:-7861,-7859:-7859,-7857:-7857,-7793:-7793,-7788:-7788,-7786:-7786,-7782:-7782,-7779:-7779,-7776:-7776,-7771:-7771,-7766:-7766,-7748:-7748,-7745:-7745,-7457:-7457,-7454:-7454,-7443:-7443,-7428:-7428,-7426:-7426,-7420:-7420,-7418:-7418,-7421:6218,-7795:6339,-13628:11130,-13702:11145,-14293:11287,-14807:11288,-14809:11289,-14810:11290,-15596:11811,-17180:12655,-17181:12810,-20051:16207,-25124:20744,-25125:20745,-25126:20746,-25127:20747,-25130:20748,-25129:20749,-25128:20750,-42615:22448,-42613:22448,-45765:22449,-28022:22449,-28028:22459,-28027:22460,-32664:22461,-32665:22462,-32667:22463,-28016:22521,-28019:22522,-60619:44452",
+	["Tradeskill.RecipeLinks.Engineering.Basic"]="-67839:-67839,-63770:-63770,-63765:-63765,-55016:-55016,-55002:-55002,-54999:-54999,-54998:-54998,-54793:-54793,-54736:-54736,-3918:4357,-3919:4358,-3922:4359,-3923:4360,-3924:4361,-3925:4362,-3926:4363,-3929:4364,-3931:4365,-3932:4366,-3933:4367,-3934:4368,-3936:4369,-3937:4370,-3938:4371,-3939:4372,-3940:4373,-3941:4374,-3942:4375,-3944:4376,-3945:4377,-3946:4378,-3949:4379,-3950:4380,-3952:4381,-3953:4382,-3954:4383,-3955:4384,-3956:4385,-3957:4386,-3958:4387,-3959:4388,-3961:4389,-3962:4390,-3963:4391,-3965:4392,-3966:4393,-3967:4394,-3968:4395,-3969:4396,-3971:4397,-3972:4398,-3928:4401,-3960:4403,-3973:4404,-3977:4405,-3978:4406,-3979:4407,-8243:4852,-6458:5507,-7430:6219,-9271:6533,-8334:6712,-8339:6714,-9273:7148,-39895:7191,-9269:7506,-3920:8067,-3930:8068,-3947:8069,-23067:9312,-23068:9313,-23066:9318,-12590:10498,-12587:10499,-12594:10500,-12607:10501,-12615:10502,-12618:10503,-12622:10504,-12585:10505,-12617:10506,-12586:10507,-12595:10508,-12614:10510,-12596:10512,-12621:10513,-12603:10514,-12616:10518,-12597:10546,-12620:10548,-12584:10558,-12589:10559,-12591:10560,-12599:10561,-12619:10562,-12624:10576,-15255:11590,-19567:15846,-19788:15992,-19790:15993,-19791:15994,-19792:15995,-19793:15996,-19800:15997,-19794:15999,-19795:16000,-19796:16004,-19799:16005,-19815:16006,-19833:16007,-19825:16008,-19819:16009,-19830:16022,-19814:16023,-19831:16040,-21940:17716,-22797:18168,-22704:18232,-22795:18282,-22793:18283,-23069:18588,-23080:18594,-23071:18631,-23077:18634,-23079:18637,-23081:18638,-23082:18639,-23070:18641,-23507:19026,-24357:19998,-24356:19999,-43676:20475,-26011:21277,-26418:21557,-26416:21558,-26417:21559,-26442:21569,-26443:21570,-26423:21571,-26424:21574,-26425:21576,-26420:21589,-26421:21590,-26422:21592,-26426:21714,-26427:21716,-26428:21718,-28327:22728,-30310:23736,-30311:23737,-30312:23742,-30313:23746,-30314:23747,-30315:23748,-30316:23758,-30317:23761,-30318:23762,-30325:23763,-30329:23764,-30332:23765,-30334:23766,-30337:23767,-30341:23768,-30344:23771,-30346:23772,-30348:23774,-30349:23775,-30303:23781,-30304:23782,-30305:23783,-30306:23784,-30307:23785,-30308:23786,-30309:23787,-30547:23819,-30548:23821,-30556:23824,-32814:25886,-39973:32413,-39971:32423,-40274:32461,-41311:32472,-41312:32473,-41314:32474,-41316:32475,-41315:32476,-41317:32478,-41318:32479,-41319:32480,-41320:32494,-41321:32495,-41307:32756,-30551:33092,-30552:33093,-44155:34060,-44157:34061,-44391:34113,-46116:34353,-46114:34354,-46112:34355,-46113:34356,-46115:34357,-30347:34504,-46111:34847,-46108:35181,-46109:35182,-46106:35183,-46110:35184,-46107:35185,-46697:35581,-56476:37567,-56349:39681,-56464:39682,-56471:39683,-54353:39688,-53281:39690,-56463:40536,-56466:40767,-56472:40768,-55252:40769,-56460:40771,-56462:40772,-56467:40865,-56459:40892,-56461:40893,-56465:41112,-56469:41121,-56470:41146,-56474:41164,-56475:41165,-56478:41167,-56479:41168,-60866:41508,-56477:42546,-56480:42549,-56481:42550,-56574:42551,-56483:42552,-56484:42553,-56486:42554,-56487:42555,-60867:44413,-60874:44504,-61471:44739,-61481:44740,-61482:44741,-61483:44742,-62271:44949,-56468:44951,-63750:45631,-67326:47828,-67920:48933,-68067:49040",
+	["Tradeskill.RecipeLinks.Engineering.Gnomish"]="-12897:10545,-12759:10645,-12895:10713,-12899:10716,-12902:10720,-12903:10721,-12905:10724,-12906:10725,-12907:10726,-15633:11826,-23096:18645,-23129:18660,-23489:18986,-30570:23825,-30574:23828,-30575:23829,-30569:23835,-30568:23841,-36955:30544,-56473:40895,-72953:52021",
+	["Tradeskill.RecipeLinks.Engineering.Goblin"]="-8895:7189,-12717:10542,-12718:10543,-13240:10577,-12716:10577,-12754:10586,-12755:10587,-12758:10588,-12715:10644,-12760:10646,-12908:10727,-15628:11825,-23078:18587,-23486:18984,-30558:23826,-30560:23827,-30563:23836,-30565:23838,-30566:23839,-36954:30542,-56514:42641,-72952:52020",
+	["Tradeskill.RecipeLinks.First Aid"]="-3275:1251,-3276:2581,-3277:3530,-3278:3531,-7928:6450,-7929:6451,-7934:6452,-7935:6453,-10840:8544,-10841:8545,-18629:14529,-18630:14530,-23787:19440,-27032:21990,-27033:21991,-45545:34721,-45546:34722",
+	["Tradeskill.RecipeLinks.Inscription"]="-61288:-61288,-61177:-61177,-61120:-61120,-61119:-61119,-61118:-61118,-61117:-61117,-58484:954,-48114:955,-45382:1180,-48116:1181,-58473:1477,-50612:1711,-50605:1712,-58485:2289,-50598:2290,-58472:3012,-50599:4419,-50614:4422,-50606:4424,-58476:4425,-58486:4426,-50607:10306,-50616:10307,-50600:10308,-58478:10309,-58487:10310,-58480:27498,-50601:27499,-50608:27501,-50617:27502,-58488:27503,-58481:33457,-50602:33458,-50609:33460,-50618:33461,-58489:33462,-50603:37091,-50604:37092,-50619:37093,-50620:37094,-50610:37097,-50611:37098,-52738:37101,-48248:37118,-48247:37168,-59499:37602,-59497:38322,-52739:38682,-52840:39349,-59488:39350,-52843:39469,-53462:39774,-56943:40896,-56961:40897,-56944:40899,-56950:40900,-56957:40901,-56956:40902,-56952:40903,-56960:40906,-56947:40908,-56953:40909,-56954:40912,-56955:40913,-56945:40914,-56949:40915,-56959:40916,-56948:40919,-56946:40920,-56958:40921,-56963:40922,-56951:40923,-48121:40924,-57030:41092,-57033:41094,-57027:41095,-57022:41096,-57028:41097,-57024:41098,-57023:41099,-57032:41100,-57019:41101,-57036:41102,-57025:41103,-57020:41104,-57026:41105,-57029:41106,-57021:41107,-57031:41108,-57035:41109,-57034:41110,-57232:41517,-57233:41518,-57234:41524,-57235:41526,-57236:41527,-57237:41529,-57238:41530,-57239:41531,-57240:41532,-57242:41533,-57243:41534,-57244:41535,-57245:41536,-57246:41537,-57247:41538,-57248:41539,-57249:41540,-57251:41541,-57252:41542,-57241:41547,-57250:41552,-57181:42396,-57183:42397,-57184:42398,-57185:42399,-57186:42400,-57187:42401,-57188:42402,-57189:42403,-57190:42404,-57191:42405,-57192:42406,-57193:42407,-57194:42408,-57195:42409,-57196:42410,-57197:42411,-57198:42412,-57199:42414,-57200:42415,-57201:42416,-57202:42417,-57257:42453,-57258:42454,-57259:42455,-57260:42456,-57261:42457,-57262:42458,-57263:42459,-57264:42460,-57265:42461,-57266:42462,-57267:42463,-57268:42464,-57269:42465,-57270:42466,-57271:42467,-57272:42468,-57273:42469,-57274:42470,-57275:42471,-57276:42472,-57277:42473,-56968:42734,-56971:42735,-56972:42736,-56973:42737,-56974:42738,-56975:42739,-57719:42740,-56976:42741,-56977:42742,-56978:42743,-56979:42744,-56980:42745,-56981:42746,-56982:42747,-56983:42748,-56984:42749,-56985:42750,-56986:42751,-56987:42752,-56988:42753,-56989:42754,-56994:42897,-56995:42898,-56996:42899,-56997:42900,-56998:42901,-56999:42902,-57000:42903,-57001:42904,-57002:42905,-57003:42906,-57004:42907,-57005:42908,-57006:42909,-57007:42910,-57008:42911,-57009:42912,-57010:42913,-57011:42914,-57012:42915,-57013:42916,-57014:42917,-57112:42954,-57113:42955,-57114:42956,-57115:42957,-57116:42958,-57117:42959,-57119:42960,-57120:42961,-57121:42962,-57122:42963,-57123:42964,-57124:42965,-57125:42966,-57126:42967,-57127:42968,-57128:42969,-57129:42970,-57130:42971,-57131:42972,-57132:42973,-57133:42974,-57703:43115,-57704:43116,-57706:43117,-57707:43118,-57708:43119,-57709:43120,-57710:43121,-57711:43122,-57712:43123,-57713:43124,-57714:43125,-57715:43126,-57716:43127,-59500:43145,-59501:43146,-58286:43316,-58288:43331,-58289:43332,-58287:43334,-58296:43335,-58299:43338,-58303:43339,-58314:43340,-58317:43342,-58326:43343,-58331:43344,-58301:43350,-58302:43351,-58300:43354,-58297:43355,-58298:43356,-58305:43357,-58306:43359,-58307:43360,-58310:43361,-58308:43364,-58311:43365,-58312:43366,-58313:43367,-58315:43368,-58316:43369,-58319:43370,-58318:43371,-58321:43372,-58320:43373,-58322:43374,-58324:43376,-58325:43377,-58327:43378,-58323:43379,-58328:43380,-58329:43381,-58330:43385,-58332:43386,-58333:43388,-58336:43389,-58337:43390,-58340:43391,-58338:43392,-58339:43393,-58341:43394,-58342:43395,-58343:43396,-58344:43397,-58345:43398,-58346:43399,-58347:43400,-57153:43412,-57162:43413,-57154:43414,-57155:43415,-57156:43416,-57157:43417,-57158:43418,-57159:43419,-57151:43420,-57160:43421,-57161:43422,-57163:43423,-57165:43424,-57152:43425,-57166:43426,-57167:43427,-57168:43428,-57169:43429,-57164:43430,-57170:43431,-57172:43432,-58482:43463,-58483:43464,-58490:43465,-58491:43466,-58565:43515,-57207:43533,-57208:43534,-57209:43535,-57210:43536,-57211:43537,-57212:43538,-57215:43539,-57213:43541,-57214:43542,-57216:43543,-57217:43544,-57218:43545,-57219:43546,-57220:43547,-57221:43548,-57222:43549,-57223:43550,-57224:43551,-57225:43552,-57226:43553,-57227:43554,-59475:43654,-59478:43655,-59484:43656,-59486:43657,-59489:43660,-59490:43661,-59493:43663,-59494:43664,-59495:43666,-59496:43667,-57229:43671,-57230:43672,-57228:43673,-59315:43674,-59326:43725,-59338:43825,-59339:43826,-59340:43827,-59387:43850,-59559:43867,-59560:43868,-59561:43869,-59480:44142,-59487:44161,-59491:44163,-59498:44210,-60336:44314,-60337:44315,-59502:44316,-59503:44317,-59504:44318,-61677:44684,-56990:44920,-56965:44922,-57253:44923,-62162:44928,-56991:44955,-64268:45601,-64270:45602,-64313:45603,-64307:45604,-64258:45622,-64256:45623,-64271:45625,-64273:45731,-64304:45732,-64253:45733,-64249:45734,-64246:45735,-64274:45736,-64275:45737,-64276:45738,-64314:45739,-64257:45740,-64277:45741,-64278:45742,-64279:45743,-64308:45744,-64305:45745,-64254:45746,-64251:45747,-64280:45753,-64281:45755,-64282:45756,-64309:45757,-64283:45758,-64259:45760,-64284:45761,-64285:45762,-64286:45764,-64315:45766,-64310:45767,-64260:45768,-64303:45769,-64287:45770,-64288:45771,-64289:45772,-64261:45775,-64262:45776,-64316:45777,-64247:45778,-64291:45779,-64318:45780,-64294:45781,-64317:45782,-64311:45783,-64248:45785,-64250:45789,-64295:45790,-64296:45792,-64255:45793,-64312:45794,-64302:45795,-64252:45797,-64297:45799,-64298:45800,-64299:45803,-64266:45804,-64267:45805,-64300:45806,-64053:45849,-64051:45854,-65245:46372,-67600:48720,-68166:49084,-69385:49632,-71101:50045,-71102:50077,-71015:50125",
+	["Tradeskill.RecipeLinks.Jewelcrafting"]="-25255:20816,-25278:20817,-25280:20818,-25284:20820,-25283:20821,-25287:20823,-25305:20826,-25317:20827,-25318:20828,-25339:20830,-25320:20831,-25321:20832,-25323:20833,-25493:20906,-25490:20907,-25498:20909,-25610:20950,-25612:20954,-25613:20955,-25617:20958,-25619:20959,-25620:20960,-25621:20961,-25615:20963,-26874:20964,-25618:20966,-25622:20967,-26878:20969,-26872:21748,-26880:21752,-26896:21753,-26887:21754,-26876:21755,-26873:21756,-26875:21758,-26881:21760,-26882:21763,-26883:21764,-26885:21765,-26897:21766,-26902:21767,-26903:21768,-26900:21769,-26906:21774,-26907:21775,-26909:21777,-26910:21778,-26916:21779,-26920:21780,-26912:21784,-26914:21789,-26908:21790,-26911:21791,-26915:21792,-26918:21793,-26925:21931,-26926:21932,-26927:21933,-26928:21934,-28903:23094,-28905:23095,-28906:23096,-28907:23097,-28910:23098,-28912:23099,-28914:23100,-28915:23101,-28916:23103,-28917:23104,-28918:23105,-28924:23106,-28925:23108,-28927:23109,-28933:23110,-28936:23111,-28938:23113,-28944:23114,-28947:23115,-28948:23116,-28950:23118,-28953:23119,-28955:23120,-28957:23121,-31084:24027,-31085:24028,-31087:24029,-31088:24030,-31089:24031,-31090:24032,-31092:24033,-31149:24035,-31091:24036,-31094:24037,-31095:24039,-31096:24047,-31097:24048,-31099:24050,-31098:24051,-31100:24052,-31101:24053,-31102:24054,-31103:24055,-31104:24056,-31105:24057,-31106:24058,-31107:24059,-31108:24060,-31109:24061,-31110:24062,-31112:24065,-31111:24066,-31113:24067,-31048:24074,-31049:24075,-31050:24076,-31051:24077,-31052:24078,-31053:24079,-31054:24080,-31055:24082,-31056:24085,-31057:24086,-31058:24087,-31060:24088,-31061:24089,-31062:24092,-31063:24093,-31064:24095,-31065:24097,-31066:24098,-31067:24106,-31068:24110,-31070:24114,-31071:24116,-31072:24117,-31076:24121,-31077:24122,-31078:24123,-31079:24124,-31080:24125,-31081:24126,-31082:24127,-31083:24128,-32178:25438,-32179:25439,-32259:25498,-32801:25880,-32807:25881,-32808:25882,-32809:25883,-32871:25890,-32872:25893,-32873:25894,-32874:25895,-32866:25896,-32867:25897,-32868:25898,-32869:25899,-32870:25901,-34069:28290,-34590:28595,-34955:29157,-34959:29158,-34960:29159,-34961:29160,-36523:30419,-36524:30420,-36525:30421,-36526:30422,-37818:30804,-37855:30825,-38068:31079,-38175:31154,-38503:31398,-38504:31399,-39451:31860,-39452:31861,-39455:31862,-39463:31863,-39458:31864,-39462:31865,-39466:31866,-39470:31867,-39471:31868,-39467:31869,-39705:32193,-39706:32194,-39710:32195,-39711:32196,-39712:32197,-39713:32198,-39714:32199,-39715:32200,-39716:32201,-39717:32202,-39718:32203,-39719:32204,-39720:32205,-39721:32206,-39722:32207,-39723:32208,-39724:32209,-39725:32210,-39727:32211,-39728:32212,-39729:32213,-39730:32214,-39731:32215,-39732:32216,-39733:32217,-39734:32218,-39735:32219,-39736:32220,-39737:32221,-39738:32222,-39739:32223,-39740:32224,-39741:32225,-39742:32226,-39961:32409,-39963:32410,-40514:32508,-41414:32772,-41415:32774,-41418:32776,-41420:32833,-41429:32836,-42589:33131,-42558:33133,-42588:33134,-42590:33135,-42592:33140,-42591:33143,-42593:33144,-43493:33782,-44794:34220,-46127:34358,-46125:34359,-46126:34360,-46124:34361,-46122:34362,-46123:34363,-46403:35315,-46404:35316,-46405:35318,-46597:35501,-46601:35503,-46775:35693,-46776:35694,-46777:35700,-46778:35702,-46779:35703,-46803:35707,-47054:35758,-47053:35759,-47055:35760,-47056:35761,-47280:35945,-56054:36766,-56086:36767,-48789:37503,-53831:39900,-53832:39905,-53835:39906,-53843:39907,-53844:39908,-53845:39909,-54017:39910,-53834:39911,-53852:39912,-53853:39914,-53854:39915,-53855:39916,-53857:39917,-53856:39918,-53934:39919,-53940:39920,-53941:39927,-53943:39932,-53870:39933,-53859:39934,-53860:39935,-53862:39936,-53866:39937,-53868:39938,-53869:39939,-53871:39940,-53863:39941,-53861:39942,-53864:39943,-53867:39944,-53865:39945,-53881:39946,-53872:39947,-53873:39948,-53874:39949,-53875:39950,-53876:39951,-53877:39952,-53878:39953,-53879:39954,-53880:39955,-53882:39956,-53883:39957,-53884:39958,-53885:39959,-53886:39960,-53887:39961,-53888:39962,-53889:39963,-53890:39964,-53891:39965,-53892:39966,-53893:39967,-53894:39968,-53916:39974,-53917:39975,-53918:39976,-53919:39977,-53920:39978,-53921:39979,-53922:39980,-53923:39981,-53924:39982,-53925:39983,-53926:39984,-53927:39985,-53928:39986,-53929:39988,-53930:39989,-53931:39990,-53932:39991,-53933:39992,-53830:39996,-53945:39997,-53946:39998,-53947:39999,-53948:40000,-53949:40001,-53950:40002,-53951:40003,-53952:40008,-53953:40009,-53954:40010,-53955:40011,-53956:40012,-53957:40013,-53958:40014,-53959:40015,-53960:40016,-53961:40017,-53962:40022,-53963:40023,-53964:40024,-53965:40025,-53966:40026,-53967:40027,-53968:40028,-53969:40029,-53970:40030,-53971:40031,-53972:40032,-53973:40033,-53974:40034,-53975:40037,-53976:40038,-53977:40039,-53978:40040,-54019:40041,-53979:40043,-53980:40044,-53981:40045,-53982:40046,-53983:40047,-53984:40048,-53985:40049,-53986:40050,-53987:40051,-53988:40052,-53989:40053,-53990:40054,-53991:40055,-53992:40056,-53993:40057,-53994:40058,-54023:40059,-53995:40085,-53996:40086,-53997:40088,-53998:40089,-54000:40090,-54001:40091,-54002:40092,-54007:40094,-54003:40095,-54008:40096,-54012:40098,-54004:40099,-54009:40100,-54013:40101,-54005:40102,-54010:40103,-54006:40104,-54011:40105,-54014:40106,-66447:40111,-66448:40112,-66446:40113,-66449:40114,-66452:40115,-66453:40116,-66451:40117,-66450:40118,-66497:40119,-66498:40120,-66500:40121,-66499:40122,-66503:40123,-66502:40124,-66501:40125,-66504:40126,-66505:40127,-66506:40128,-66554:40129,-66557:40130,-66565:40131,-66555:40132,-66556:40133,-66558:40134,-66562:40135,-66553:40136,-66564:40137,-66559:40138,-66560:40139,-66563:40140,-66561:40141,-66567:40142,-66572:40143,-66579:40144,-66582:40145,-66583:40146,-66568:40147,-66575:40148,-66585:40149,-66584:40150,-66566:40151,-66569:40152,-66570:40153,-66571:40154,-66574:40155,-66577:40156,-66573:40157,-66580:40158,-66587:40159,-66581:40160,-66578:40161,-66576:40162,-66586:40163,-66432:40164,-66431:40165,-66429:40166,-66338:40167,-66428:40168,-66434:40169,-66433:40170,-66435:40171,-66437:40172,-66445:40173,-66440:40174,-66430:40175,-66436:40176,-66439:40177,-66444:40178,-66442:40179,-66441:40180,-66438:40181,-66443:40182,-55389:41285,-55390:41307,-55392:41333,-55393:41335,-55394:41339,-56205:41367,-55386:41375,-55407:41376,-55384:41377,-55387:41378,-55388:41379,-55401:41380,-55402:41381,-55403:41382,-55404:41385,-55405:41389,-55397:41395,-55398:41396,-55399:41397,-55400:41398,-55395:41400,-55396:41401,-56049:42142,-56052:42143,-56053:42144,-56087:42145,-56077:42146,-56074:42148,-56085:42149,-56083:42150,-56055:42151,-56056:42152,-56076:42153,-56081:42154,-56088:42155,-56084:42156,-56089:42157,-56079:42158,-56193:42336,-56194:42337,-56195:42338,-56196:42339,-56197:42340,-56199:42341,-56201:42395,-56202:42413,-56203:42418,-56206:42420,-56208:42421,-56496:42642,-56497:42643,-56498:42644,-56499:42645,-56500:42646,-56501:42647,-56530:42701,-56531:42702,-58141:43244,-58142:43245,-58143:43246,-58144:43247,-58145:43248,-58146:43249,-58147:43250,-58148:43251,-58149:43252,-58150:43253,-58492:43482,-58507:43498,-58954:43582,-59759:44063,-62242:44943,-62941:45054,-63743:45627,-64727:45808,-64728:45809,-64725:45812,-64726:45813,-68253:49110",
+	["Tradeskill.RecipeLinks.Leatherworking.Basic"]="-60584:-60584,-60583:-60583,-57701:-57701,-57699:-57699,-57696:-57696,-57694:-57694,-57692:-57692,-57691:-57691,-57690:-57690,-57683:-57683,-2160:2300,-2149:2302,-2153:2303,-2152:2304,-2158:2307,-2159:2308,-2161:2309,-2162:2310,-2163:2311,-2164:2312,-2165:2313,-2166:2314,-2167:2315,-2168:2316,-2169:2317,-2881:2318,-20648:2319,-3760:3719,-3816:4231,-3817:4233,-20649:4234,-3818:4236,-3753:4237,-3756:4239,-3759:4242,-3761:4243,-3762:4244,-3763:4246,-3764:4247,-3765:4248,-3766:4249,-3767:4250,-3768:4251,-3769:4252,-3770:4253,-3771:4254,-3772:4255,-3773:4256,-3774:4257,-3775:4258,-3776:4259,-3777:4260,-3778:4262,-3779:4264,-3780:4265,-20650:4304,-4096:4455,-4097:4456,-5244:5081,-6661:5739,-6702:5780,-6703:5781,-6704:5782,-6705:5783,-7126:5957,-7133:5958,-7135:5961,-7147:5962,-7149:5963,-7151:5964,-7153:5965,-7156:5966,-7953:6466,-7954:6467,-7955:6468,-8322:6709,-9058:7276,-9059:7277,-9060:7278,-9062:7279,-9064:7280,-9065:7281,-9068:7282,-9070:7283,-9072:7284,-9074:7285,-9145:7348,-9146:7349,-9147:7352,-9148:7358,-9149:7359,-9193:7371,-9194:7372,-9195:7373,-9196:7374,-9197:7375,-9198:7377,-9201:7378,-9202:7386,-9206:7387,-9207:7390,-9208:7391,-22331:8170,-10482:8172,-10487:8173,-10490:8174,-10499:8175,-10507:8176,-10556:8185,-10509:8187,-10511:8189,-10552:8191,-10516:8192,-10548:8193,-10558:8197,-10518:8198,-10520:8200,-10531:8201,-10560:8202,-10525:8203,-10542:8204,-10533:8205,-10568:8206,-10564:8207,-10570:8208,-10554:8209,-10529:8210,-10544:8211,-10572:8212,-10566:8213,-10546:8214,-10574:8215,-10562:8216,-14930:8217,-14932:8218,-10621:8345,-10630:8346,-10619:8347,-10632:8348,-10647:8349,-10650:8367,-19050:15045,-19060:15046,-19054:15047,-19077:15048,-19089:15049,-19085:15050,-19094:15051,-19107:15052,-19076:15053,-19059:15054,-19101:15055,-19079:15056,-19067:15057,-19090:15058,-19095:15059,-19078:15060,-19061:15061,-19097:15062,-19084:15063,-19068:15064,-19080:15065,-19086:15066,-19062:15067,-19104:15068,-19074:15069,-19087:15070,-19066:15071,-19073:15072,-19063:15073,-19053:15074,-19081:15075,-19051:15076,-19048:15077,-19064:15078,-19075:15079,-19088:15080,-19100:15081,-19070:15082,-19049:15083,-19052:15084,-19098:15085,-19071:15086,-19083:15087,-19092:15088,-19102:15090,-19055:15091,-19065:15092,-19072:15093,-19082:15094,-19091:15095,-19103:15096,-19093:15138,-19047:15407,-19058:15564,-20853:16982,-20854:16983,-20855:16984,-21943:17721,-22711:18238,-22727:18251,-22815:18258,-22921:18504,-22922:18506,-22923:18508,-22926:18509,-22927:18510,-22928:18511,-23190:18662,-23399:18948,-23703:19044,-23704:19049,-23705:19052,-23706:19058,-23707:19149,-23708:19157,-23709:19162,-23710:19163,-24121:19685,-24122:19686,-24123:19687,-24124:19688,-24125:19689,-24654:20295,-24655:20296,-24703:20380,-24849:20476,-24850:20477,-24851:20478,-24848:20479,-24847:20480,-24846:20481,-24940:20575,-26279:21278,-32454:21887,-28219:22661,-28220:22662,-28221:22663,-28222:22664,-28224:22665,-28223:22666,-28472:22759,-28473:22760,-28474:22761,-32455:23793,-32456:25650,-32457:25651,-32458:25652,-32461:25653,-32462:25654,-32463:25655,-32464:25656,-32465:25657,-32469:25659,-32468:25660,-32467:25661,-32466:25662,-32472:25668,-32470:25669,-32471:25670,-32473:25671,-32478:25673,-32479:25674,-32480:25675,-32481:25676,-32482:25679,-32485:25680,-32487:25681,-32489:25682,-32488:25683,-32490:25685,-32493:25686,-32494:25687,-32495:25689,-32496:25690,-32497:25691,-32502:25692,-32503:25693,-32501:25694,-32498:25695,-32500:25696,-32499:25697,-35520:29483,-35521:29485,-35522:29486,-35523:29487,-35524:29488,-35525:29489,-35526:29490,-35527:29491,-35529:29492,-35528:29493,-35531:29494,-35532:29495,-35533:29496,-35534:29497,-35535:29498,-35536:29499,-35537:29500,-35558:29502,-35559:29503,-35560:29504,-35561:29505,-35562:29506,-35563:29507,-35564:29508,-35568:29509,-35572:29510,-35573:29511,-35567:29512,-35574:29514,-35540:29528,-35543:29529,-35544:29530,-35539:29531,-35538:29532,-35549:29533,-35555:29534,-35554:29535,-35557:29536,-35530:29540,-36357:30039,-36351:30040,-36355:30041,-36349:30042,-36359:30043,-36353:30044,-36358:30045,-36352:30046,-40006:32393,-40003:32394,-40004:32395,-40005:32396,-40002:32397,-39997:32398,-52733:32399,-40001:32400,-41161:32574,-41162:32575,-41163:32577,-41164:32579,-41158:32580,-41160:32581,-41156:32582,-41157:32583,-42546:33122,-42731:33204,-64661:33568,-44953:34086,-44343:34099,-44344:34100,-44359:34105,-44768:34106,-44770:34207,-44970:34330,-46138:34369,-46134:34370,-46136:34371,-46132:34372,-46137:34373,-46133:34374,-46139:34375,-46135:34376,-45100:34482,-45117:34490,-50971:38347,-50964:38371,-50966:38372,-50965:38373,-50967:38374,-50962:38375,-50963:38376,-50970:38399,-50944:38400,-50945:38401,-50946:38402,-50947:38403,-50948:38404,-50949:38405,-50943:38406,-50942:38407,-50938:38408,-50941:38409,-50939:38410,-50940:38411,-50955:38412,-50954:38413,-50950:38414,-50953:38415,-50951:38416,-50958:38417,-50961:38418,-50960:38419,-50956:38420,-50959:38421,-50957:38422,-50952:38424,-50936:38425,-51571:38433,-60607:38434,-60622:38435,-60599:38436,-51572:38437,-60608:38438,-60624:38439,-60600:38440,-60631:38441,-51568:38590,-51569:38591,-51570:38592,-55199:41238,-55243:41264,-60660:42731,-60649:43129,-60651:43130,-60652:43131,-60655:43132,-60658:43133,-60665:43255,-60666:43256,-60669:43257,-60671:43258,-60697:43260,-60715:43261,-60716:43262,-60718:43263,-60720:43264,-60721:43265,-60723:43266,-60725:43271,-60727:43273,-60702:43433,-60703:43434,-60704:43435,-60705:43436,-60706:43437,-60711:43438,-60712:43439,-60734:43442,-60737:43443,-60731:43444,-60730:43445,-60732:43446,-60728:43447,-60735:43448,-60729:43449,-60750:43450,-60752:43451,-60748:43452,-60747:43453,-60749:43454,-60743:43455,-60751:43456,-60746:43457,-60754:43458,-60755:43459,-60756:43461,-60757:43469,-60758:43481,-60759:43484,-60760:43495,-60761:43502,-60640:43565,-60637:43566,-60996:43590,-60997:43591,-60998:43592,-60999:43593,-61000:43594,-61002:43595,-60601:44436,-60604:44437,-60605:44438,-60611:44440,-60613:44441,-60620:44442,-60627:44443,-60629:44444,-60630:44445,-60643:44446,-60645:44447,-60647:44448,-62176:44930,-62177:44931,-62448:44963,-63194:45553,-63196:45554,-63198:45555,-63200:45556,-63195:45562,-63197:45563,-63199:45564,-63201:45565,-67083:47576,-67143:47577,-67081:47579,-67137:47580,-67087:47581,-67139:47582,-67085:47583,-67141:47584,-67082:47595,-67138:47596,-67080:47597,-67136:47598,-67086:47599,-67142:47600,-67140:47601,-67084:47602,-69386:49633,-69388:49634,-70555:49894,-70557:49895,-70559:49896,-70561:49897,-70554:49898,-70556:49899,-70558:49900,-70560:49901",
+	["Tradeskill.RecipeLinks.Leatherworking.Dragonscale"]="-35575:29515,-35576:29516,-35577:29517,-35580:29519,-35582:29520,-35584:29521,-36076:29971,-36079:29975",
+	["Tradeskill.RecipeLinks.Leatherworking.Elemental"]="-35589:29525,-35590:29526,-35591:29527,-36074:29964,-36077:29973",
+	["Tradeskill.RecipeLinks.Leatherworking.Tribal"]="-35585:29522,-35588:29523,-35587:29524,-36075:29970,-36078:29974",
+	["Tradeskill.RecipeLinks.Smelting"]="-2657:2840,-2659:2841,-2658:2842,-3307:3575,-3304:3576,-3308:3577,-3569:3859,-10097:3860,-10098:6037,-14891:11371,-16153:12359,-70524:12655,-22967:17771,-35750:22573,-35751:22574,-29356:23445,-29358:23446,-29359:23447,-29360:23448,-29361:23449,-29686:23573,-46353:35128,-49258:36913,-49252:36916,-55208:37663,-55211:41163",
+	["Tradeskill.RecipeLinks.Tailoring.Basic"]="-56039:-56039,-56034:-56034,-55777:-55777,-55769:-55769,-55642:-55642,-2385:2568,-2386:2569,-2387:2570,-2389:2572,-2392:2575,-2393:2576,-2394:2577,-2395:2578,-2396:2579,-2397:2580,-2399:2582,-2401:2583,-2402:2584,-2403:2585,-2406:2587,-2963:2996,-2964:2997,-3755:4238,-3757:4240,-3758:4241,-3813:4245,-3839:4305,-3840:4307,-3841:4308,-3842:4309,-3843:4310,-3844:4311,-3845:4312,-3847:4313,-3848:4314,-3849:4315,-3850:4316,-3851:4317,-3852:4318,-3854:4319,-3855:4320,-3856:4321,-3857:4322,-3858:4323,-3859:4324,-3860:4325,-3861:4326,-3862:4327,-3863:4328,-3864:4329,-3866:4330,-3868:4331,-3869:4332,-3870:4333,-3871:4334,-3872:4335,-3873:4336,-3865:4339,-3914:4343,-3915:4344,-6521:5542,-6686:5762,-6688:5763,-6693:5764,-6695:5765,-6690:5766,-6692:5770,-7623:6238,-7629:6239,-7630:6240,-7624:6241,-7633:6242,-7639:6263,-7643:6264,-7892:6384,-7893:6385,-8465:6786,-8467:6787,-8483:6795,-8489:6796,-49677:6836,-8776:7026,-8758:7046,-8780:7047,-8760:7048,-8782:7049,-8762:7050,-8764:7051,-8766:7052,-8786:7053,-8770:7054,-8772:7055,-8789:7056,-8774:7057,-8791:7058,-8793:7059,-8795:7060,-8797:7061,-8799:7062,-8802:7063,-8804:7064,-8784:7065,-12048:9998,-12049:9999,-12050:10001,-12052:10002,-12053:10003,-12055:10004,-12056:10007,-12059:10008,-12060:10009,-12066:10018,-12067:10019,-12070:10021,-12071:10023,-12072:10024,-12086:10025,-12073:10026,-12074:10027,-12076:10028,-12078:10029,-12081:10030,-12082:10031,-12084:10033,-12085:10034,-12089:10035,-12093:10036,-12091:10040,-12092:10041,-12069:10042,-12088:10044,-12044:10045,-12045:10046,-12046:10047,-12047:10048,-12065:10050,-12079:10051,-12064:10052,-12077:10053,-12075:10054,-12080:10055,-12061:10056,-18402:13856,-18407:13857,-18406:13858,-18409:13860,-18417:13863,-18423:13864,-18438:13865,-18444:13866,-18449:13867,-18404:13868,-18403:13869,-18411:13870,-18424:13871,-18408:14042,-18412:14043,-18418:14044,-18434:14045,-18405:14046,-18401:14048,-18414:14100,-18415:14101,-18420:14103,-18439:14104,-18451:14106,-18419:14107,-18437:14108,-18442:14111,-18453:14112,-18446:14128,-18450:14130,-18421:14132,-18422:14134,-18436:14136,-18440:14137,-18447:14138,-18448:14139,-18452:14140,-18416:14141,-18413:14142,-18410:14143,-18441:14144,-18454:14146,-18457:14152,-18458:14153,-18456:14154,-18445:14155,-18455:14156,-18560:14342,-19435:15802,-20849:16979,-20848:16980,-21945:17723,-22813:18258,-22759:18263,-22866:18405,-22867:18407,-22868:18408,-22869:18409,-22870:18413,-22902:18486,-23662:19047,-23663:19050,-23664:19056,-23665:19059,-23666:19156,-23667:19165,-24091:19682,-24092:19683,-24093:19684,-24903:20537,-24901:20538,-24902:20539,-26403:21154,-26085:21340,-26086:21341,-26087:21342,-26407:21542,-26745:21840,-26746:21841,-26747:21842,-26749:21843,-26750:21844,-26751:21845,-26764:21849,-26765:21850,-26770:21851,-26771:21852,-26772:21853,-26773:21854,-26774:21855,-26755:21858,-26775:21859,-26776:21860,-26777:21861,-26778:21862,-26779:21863,-26780:21864,-26781:21865,-26782:21866,-26783:21867,-26784:21868,-26759:21872,-26763:21876,-27658:22246,-27659:22248,-27660:22249,-27724:22251,-27725:22252,-28207:22652,-28205:22654,-28209:22655,-28208:22658,-28210:22660,-28480:22756,-28481:22757,-28482:22758,-31434:24249,-31435:24250,-31437:24251,-31438:24252,-31440:24253,-31441:24254,-31442:24255,-31443:24256,-31444:24257,-31448:24258,-31449:24259,-31450:24260,-31451:24261,-31452:24262,-31453:24263,-31454:24264,-31455:24266,-31456:24267,-31460:24268,-31459:24270,-31373:24271,-36686:24272,-31430:24273,-31432:24274,-31431:24275,-31433:24276,-36318:30035,-36316:30036,-36317:30037,-36315:30038,-36665:30459,-36667:30460,-36668:30461,-37873:30831,-37882:30837,-37883:30838,-37884:30839,-40023:32389,-40024:32390,-40020:32391,-40021:32392,-40060:32420,-41207:32584,-41208:32585,-41205:32586,-41206:32587,-44958:34085,-44950:34087,-46130:34364,-46131:34365,-46128:34366,-46129:34367,-50194:38225,-50644:38277,-50647:38278,-55993:41248,-55994:41249,-55996:41250,-55995:41251,-55997:41252,-55998:41253,-55999:41254,-56000:41255,-55898:41509,-55899:41510,-55900:41511,-56031:41512,-55902:41513,-55903:41515,-59586:41516,-56030:41519,-55906:41520,-55907:41521,-55908:41522,-55910:41523,-55911:41525,-55913:41528,-55914:41543,-55924:41544,-55922:41545,-55919:41546,-55901:41548,-55921:41549,-55923:41550,-55920:41551,-55925:41553,-55941:41554,-55943:41555,-56002:41593,-56001:41594,-56003:41595,-56004:41597,-56006:41598,-56007:41599,-56005:41600,-56008:41601,-56009:41602,-56010:41603,-56011:41604,-56014:41607,-56015:41608,-56016:41609,-56017:41610,-56018:41984,-56019:41985,-56020:41986,-56021:42093,-56022:42095,-56023:42096,-56024:42100,-56026:42101,-56028:42102,-56025:42103,-56027:42111,-56029:42113,-60993:43583,-60990:43584,-60994:43585,-59582:43969,-59585:43970,-59589:43971,-59587:43972,-59584:43973,-59583:43974,-59588:43975,-55904:44211,-60969:44554,-60971:44558,-63203:45557,-63205:45558,-63204:45566,-63206:45567,-63742:45626,-63924:45773,-64730:45810,-64729:45811,-67079:47585,-67145:47586,-67065:47587,-67147:47588,-67066:47603,-67146:47604,-67064:47605,-67144:47606,-70551:49890,-70550:49891,-70552:49892,-70553:49893",
+	["Tradeskill.RecipeLinks.Tailoring.Mooncloth"]="-26760:21873,-26761:21874,-26762:21875",
+	["Tradeskill.RecipeLinks.Tailoring.Shadoweave"]="-26756:21869,-26757:21870,-26758:21871",
+	["Tradeskill.RecipeLinks.Tailoring.Spellfire"]="-26752:21846,-26753:21847,-26754:21848",
+},m)
diff --git a/libs/LibPeriodicTable-3.1-Tradeskill/LibPeriodicTable-3.1-Tradeskill.toc b/libs/LibPeriodicTable-3.1-Tradeskill/LibPeriodicTable-3.1-Tradeskill.toc
new file mode 100644
index 0000000..cac0829
--- /dev/null
+++ b/libs/LibPeriodicTable-3.1-Tradeskill/LibPeriodicTable-3.1-Tradeskill.toc
@@ -0,0 +1,16 @@
+## Interface: 30200
+## LoadOnDemand: 1
+## Title: Lib: PeriodicTable-3.1 [|cffeda55fTradeskill|r]
+## Notes: PeriodicTable data module.
+## Author: Nymbia
+## Version: 3.1
+## Dependencies: LibPeriodicTable-3.1
+## X-Category: Library
+## X-License: LGPL v2.1
+## X-PeriodicTable-3.1-Module: Tradeskill
+## X-Curse-Packaged-Version: r293
+## X-Curse-Project-Name: LibPeriodicTable-3.1
+## X-Curse-Project-ID: libperiodictable-3-1
+## X-Curse-Repository-ID: wow/libperiodictable-3-1/mainline
+
+LibPeriodicTable-3.1-Tradeskill.lua
diff --git a/libs/LibPeriodicTable-3.1-TradeskillResultMats/LibPeriodicTable-3.1-TradeskillResultMats.lua b/libs/LibPeriodicTable-3.1-TradeskillResultMats/LibPeriodicTable-3.1-TradeskillResultMats.lua
new file mode 100644
index 0000000..626569f
--- /dev/null
+++ b/libs/LibPeriodicTable-3.1-TradeskillResultMats/LibPeriodicTable-3.1-TradeskillResultMats.lua
@@ -0,0 +1,54 @@
+-- (c) 2007 Nymbia.  see LGPLv2.1.txt for full details.
+--DO NOT MAKE CHANGES TO THIS FILE BEFORE READING THE WIKI PAGE REGARDING CHANGING THESE FILES
+if not LibStub("LibPeriodicTable-3.1", true) then error("PT3 must be loaded before data") end
+LibStub("LibPeriodicTable-3.1"):AddData("TradeskillResultMats", gsub("$Rev: 293 $", "(%d+)", function(n) return n+90000 end), {
+	["TradeskillResultMats.Forward.Alchemy"]="-60893:36901x10;36903x10;36907x4;40411x4,118:2447x1;765x1;3371x1,858:118x1;2450x1,929:2453x1;2450x1;3372x1,1710:3357x1;3356x1;3372x1,2454:2449x1;765x1;3371x1,2455:785x1;765x1;3371x1,2456:785x2;2447x1;3371x1,2457:2452x1;765x1;3371x1,2458:2449x2;2447x1;3371x1,2459:2452x1;2450x1;3371x1,3382:2447x1;2449x2;3371x1,3383:785x1;2450x2;3371x1,3384:785x3;3355x1;3371x1,3385:785x1;3820x1;3371x1,3386:1288x1;2453x1;3372x1,3387:8839x2;8845x1;8925x1,3388:2453x2;2450x2;3372x1,3389:3355x1;3820x1;3372x1,3390:3355x1;2452x1;3372x1,3391:2449x1;3356x1;3372x1,3577:3575x1,3823:3818x1;3355x1;3372x1,3824:3818x4;3369x4;3372x1,3825:3355x1;3821x1;3372x1,3826:3357x1;2453x1;3372x1,3827:3820x1;3356x1;3372x1,3828:3358x1;3818x1;3372x1,3829:3358x4;3819x2;3372x1,3928:8838x1;3358x1;8925x1,4596:3164x1;2447x1;3371x1,4623:3858x1;3821x1;3372x1,5631:5635x2;3371x1,5633:5637x1;3356x1;3372x1,5634:6370x2;3820x1;3372x1,5996:3820x1;6370x2;3371x1,5997:765x2;3371x1,6037:3860x1,6048:3369x1;3356x1;3372x1,6049:4402x1;6371x1;3372x1,6050:3819x1;3821x1;3372x1,6051:2453x1;2452x1;3371x1,6052:3357x1;3820x1;3372x1,6149:3358x1;3821x1;3372x1,6370:6358x2,6371:6359x2,6372:2452x1;6370x1;3371x1,6373:6371x2;3356x1;3372x1,6662:6522x1;2449x1;3371x1,7068:7077x1,7076:7078x1,7076:12803x1,7078:7082x1,7080:12808x1,7080:7076x1,7082:7080x1,8827:44958x3;18256x1,8949:3820x1;3821x1;3372x1,8951:3355x1;3821x1;3372x1,8956:4625x1;3821x1;8925x1,9030:7067x1;3821x1;8925x1,9036:3358x1;8831x1;8925x1,9061:4625x1;9260x1;3372x1,9088:8836x1;8839x1;8925x1,9144:8153x1;8831x1;8925x1,9149:3575x4;9262x1;8831x4;4625x4,9154:8836x1;8925x1,9155:8839x1;3821x1;8925x1,9172:8845x1;8838x1;8925x1,9179:8839x1;3358x1;8925x1,9187:8838x1;3821x1;8925x1,9197:8831x3;8925x1,9206:8838x1;8846x1;8925x1,9210:8845x2;4342x1;8925x1,9224:8846x1;8845x1;8925x1,9233:8846x2;8925x1,9264:8845x3;8925x1,10592:3821x1;3818x1;3372x1,12190:8831x3;8925x1,12360:12359x1;12363x1,12803:7076x1,12808:7080x1,13423:13422x1,13442:8846x3;8925x1,13443:8838x2;8839x2;8925x1,13444:13463x3;13467x2;8925x1,13445:13423x2;8838x1;8925x1,13446:13464x2;13465x1;8925x1,13447:13463x1;13466x2;8925x1,13452:13465x2;13466x2;8925x1,13453:8846x2;13466x2;8925x1,13454:13463x3;13465x1;8925x1,13455:13423x2;10620x1;8925x1,13456:7070x1;13463x1;8925x1,13457:7068x1;13463x1;8925x1,13458:7067x1;13463x1;8925x1,13459:3824x1;13463x1;8925x1,13461:11176x1;13463x1;8925x1,13462:13467x2;13466x2;8925x1,13503:9149x1;25867x1;25868x1;22794x2;23571x5,13506:13423x7;8925x1,13510:8846x7;13423x3;13468x1;8925x1,13511:13463x7;13467x3;13468x1;8925x1,13512:13463x7;13465x3;13468x1;8925x1,13513:13467x7;13465x3;13468x1;8925x1,17708:3819x2;3358x1;3372x1,18253:10286x1;13464x4;13463x4;18256x1,18294:7972x1;8831x2;8925x1,19931:12938x1;19943x1;12804x6;13468x1,20002:13463x2;13464x1;8925x1,20004:8846x1;13466x2;8925x1,20007:13463x1;13466x2;8925x1,20008:13467x2;13465x2;10286x2;8925x1,21546:6371x3;4625x3;8925x1,21884:22451x1,21884:22457x1,21885:22456x1,21885:22452x1,21886:22452x1,22451:21885x1,22452:21884x1,22452:21886x1,22456:21885x1,22457:21884x1,22823:22787x1;22785x1;18256x1,22824:13465x1;22785x1;18256x1,22825:13464x1;22786x1;18256x1,22826:22787x2;22785x1;18256x1,22827:22578x2;22790x1;18256x1,22828:22789x3;18256x1,22829:22791x2;22785x1;18256x1,22830:22787x2;22789x1;18256x1,22831:22789x1;22785x2;18256x1,22832:22786x2;22785x1;18256x1,22833:22574x2;22790x1;18256x1,22834:22790x3;22789x1;18256x1,22835:22790x1;22792x1;18256x1,22836:22786x1;22792x1;18256x1,22837:22789x2;22790x1;18256x1,22838:22789x2;22791x1;18256x1,22839:22792x2;22791x1;18256x1,22840:22790x1;22791x1;18256x1,22841:21884x1;22793x3;18256x5,22842:21885x1;22793x3;18256x5,22844:21886x1;22793x3;18256x5,22845:22457x1;22793x3;18256x5,22846:22456x1;22793x3;18256x5,22847:21886x1;22793x3;18256x5,22848:22791x1;22793x1;18256x1,22849:22790x2;22573x3;18256x1,22850:22793x2;22786x1;22791x1;18256x1,22851:22794x1;22793x3;22790x7;18256x1,22853:22794x1;22793x3;22786x7;18256x1,22854:22794x1;22793x3;22789x7;18256x1,22861:22794x1;22793x3;22791x7;18256x1,22866:22794x1;22793x3;22792x7;18256x1,22871:22787x3;22791x1;18256x1,23571:22452x1;21885x1;22451x1;21884x1;22457x1,25867:23079x3;23107x3;23112x3;22452x2;21885x2,25868:23077x3;21929x3;23117x3;21884x2;22451x2,28100:13464x1;22785x1;18256x1,28101:22787x2;22785x1;18256x1,28102:13465x1;22785x1;18256x1,28103:13463x1;22785x1;18256x1,28104:22789x1;22785x1;18256x1,31080:22452x1;21886x1;22457x1,31676:22785x2;22792x3;18256x1,31677:22793x1;22792x2;18256x1,31679:22789x1;22792x2;18256x1,32062:22787x2;22785x1;18256x1,32063:22786x1;22787x2;18256x1,32067:22785x1;22789x1;18256x1,32068:22790x1;22787x1;18256x1,32839:22457x2;22793x7;23782x1,32849:21884x2;22793x7;23782x1,32850:21885x2;22793x7;23782x1,32851:21886x2;22793x7;23782x1,32852:22456x2;22793x7;23782x1,33208:22786x7;22791x3;22794x1;18256x1,33447:36901x1;36906x2;18256x1,33448:36905x2;36901x1;18256x1,34440:8925x1;22787x2,35622:36860x1,35622:35623x1,35623:35622x1,35623:35624x1,35624:35627x1,35624:35623x1,35625:35627x1,35625:36860x1,35627:35625x1,35627:35624x1,35748:13503x1;22451x6;30183x2,35749:13503x1;21884x6;30183x2,35750:13503x1;21886x6;30183x2,35751:13503x1;22456x6;30183x2,36860:35622x1,36860:35625x1,36919:36860x1;36918x1,36922:36921x1;35625x1,36925:35623x1;36924x1,36928:35627x1;36927x1,36931:36930x1;35627x1,36934:36933x3,39666:36901x2;36903x2;18256x1,39671:36901x2;18256x1,40067:36907x2;18256x1,40068:36901x1;37921x2;18256x1,40070:36901x1;36904x1;18256x1,40072:36907x3;18256x1,40073:36904x2;18256x1,40076:40195x3;18256x1,40077:36901x2;18256x1,40078:36901x4;18256x1,40079:37921x4;36901x1;18256x1,40081:36901x1;36907x2;18256x1,40087:36907x2;36905x2;18256x1,40093:36906x2;18256x1,40097:36906x2;37701x1;18256x1,40109:36901x1;36905x2;18256x1,40195:40199x1,40211:36903x2;40195x1;18256x1,40212:36905x2;40195x1;18256x1,40213:37701x2;18256x1,40214:37705x2;18256x1,40215:37702x2;18256x1,40216:37703x2;18256x1,40217:37704x2;18256x1,41163:36913x8,41266:36917x1;36923x1;35623x1,41334:36932x1;36929x1;36860x1,43569:33447x10;40411x1,43570:33448x10;40411x1,44322:36901x20;35625x2;36908x1,44323:37921x20;40195x12;36908x1,44324:36903x15;36904x15;36908x1,44325:36904x2;36907x1;18256x1,44327:36901x1;36903x2;18256x1,44328:36906x2;37704x1;18256x1,44329:36901x1;36903x2;18256x1,44330:36904x2;18256x1,44331:37921x1;37704x1;18256x1,44332:37921x2;36907x1;18256x1,44939:39970x4;18256x1,44958:41814x2,45621:6371x1;2453x1;3371x1,46376:36906x5;36905x5;36908x1;40411x1,46377:36905x7;36901x3;36908x1;40411x1,46378:36906x7;40195x3;36908x1;40411x1,46379:36905x7;37704x3;36908x1;40411x1,47499:36908x4;40411x1",
+	["TradeskillResultMats.Forward.Blacksmithing.Armorsmith"]="23563:22456x20;22451x20;23573x6;23448x4;23449x8,23564:23563x1;23572x10;22457x10,23565:23564x1;30183x2,28483:23571x8;23573x6;23447x6;23449x8,28484:28483x1;23572x10;22457x10,28485:28484x1;30183x2,30069:3860x16;7075x2,30070:3860x16;7081x2,30074:23446x8;22452x4,30076:23446x8;21885x2;22451x2,41189:36913x14;37701x2,41190:36913x13;37701x2",
+	["TradeskillResultMats.Forward.Blacksmithing.Basic"]="-55641:36913x4;35627x1,-55628:36913x4;35624x1,2844:2840x6;2880x1;2589x2,2845:2840x6;2880x1;2589x2,2847:2840x6;2880x1;2589x2,2848:2841x6;2880x4;2319x1,2849:2841x7;2880x4;2319x1,2850:2841x5;2880x4;2319x2,2851:2840x6,2852:2840x4,2853:2840x2,2854:2840x10;3470x3,2857:2840x10,2862:2835x1,2863:2836x1,2864:2840x12;1210x1;3470x2,2865:2841x6,2866:2841x7,2868:2841x5;3478x2,2869:2841x10;2842x2;3478x2,2870:2841x20;1206x2;1705x2;5500x2;2842x4,2871:2838x1,3239:2835x1;2589x1,3240:2836x1;2592x1,3241:2838x1;2592x1,3469:2840x8,3470:2835x2,3471:2840x8;3470x2,3472:2840x8;3470x2,3473:2840x8;2321x2;3470x3,3474:2840x8;818x1;774x1,3478:2836x2,3480:2841x5;3478x1,3481:2841x8;2842x2;3478x2,3482:2841x6;2842x1;3478x2,3483:2841x8;2842x1;3478x2,3484:3575x6;3478x2;2605x1,3485:3575x4;5498x2;3478x2;2605x1,3486:2838x3,3487:2840x14;2880x2;818x2;2319x2,3488:2840x12;2880x2;774x2;3470x2;2318x2,3489:2840x10;2880x2;2842x2;3470x2;2318x2,3490:2841x4;3466x1;2459x1;1210x2;3478x2;2319x2,3491:2841x8;3466x1;1206x1;1210x1;3478x2;2319x2,3492:3575x6;3466x2;3391x1;1705x2;3478x2;2319x2,3835:3575x6;2605x1,3836:3575x12;3864x1;2605x1,3837:3859x8;3577x2;3486x2,3840:3575x7;3486x1;2605x1,3841:3859x6;3577x2;3486x1,3842:3575x8;3486x1;2605x1,3843:3575x10;3577x2;3486x1,3844:3575x20;3486x4;1529x2;1206x2;4255x1,3845:3859x12;3577x2;3486x4,3846:3859x8;3864x1;1705x1;3486x2,3847:3859x10;3577x4;3486x4,3848:2841x6;2880x4;3470x2;818x1;2319x1,3849:3575x6;3466x2;3486x1;1705x2;4234x3,3850:3575x8;3466x2;3486x2;1529x2;4234x3,3851:3575x8;3466x2;3486x1;2842x4;4234x2,3852:3575x10;3577x4;1705x2;3466x2;4234x2;3486x2,3853:3859x8;3466x2;3486x2;1705x3;4234x3,3854:3859x12;1529x2;3829x2,3855:3575x14;3466x2;3486x2;3577x4;4234x2,3856:3859x10;3864x2;3824x2,5540:2841x6;3466x1;5498x2;3478x2,5541:2841x10;3466x1;5500x1;3478x2;2319x2,6040:3859x5;3486x2,6041:3859x8;3486x2;4234x4,6042:3575x6;3478x4,6043:3575x4;3478x2;1705x1,6214:2840x12;2880x2;2318x2,6338:2842x1;3470x2,6350:2841x6;3470x6,6731:2840x16;818x2;3470x3,7071:3575x1,7166:2840x6;2880x1;3470x1;2318x1,7913:3575x8;5635x4;3486x2,7914:3575x20;3486x4,7915:3575x10;5637x2;5635x2,7916:3575x12;5637x4;3486x2,7917:3575x14;3486x3;5637x2,7918:3860x8;4234x6,7919:3860x6;4338x4,7920:3860x12,7921:3860x10,7922:3859x14;3864x1;7966x1,7924:3860x8,7926:3860x12;6037x1;7966x1,7927:3860x10;4338x6;6037x1;7966x1,7928:3860x12;6037x1;4304x6,7929:3860x12;7067x1,7930:3860x16,7931:3860x10;4338x6,7932:3860x14;4304x4,7933:3860x14;4304x4,7934:3860x14;7909x1,7935:3860x16;6037x6;7077x1;7966x1,7936:3860x14;6037x2;4304x4;7966x1;7909x1,7937:3860x16;6037x2;7966x1,7938:3860x10;6037x8;7909x3;3864x3;5966x1;7966x2,7939:3860x12;6037x12;7910x2;7971x2;7966x2,7941:3860x12;3864x2;7966x1;4234x4,7942:3860x16;7909x2;7966x1;4304x4,7943:3860x14;6037x4;7966x1;4304x2,7944:3860x14;7909x1;1705x2;1206x2;7966x1;4338x2,7945:3860x16;7971x1;1210x4;7966x1;4304x2,7946:3860x18;7075x2;7966x1;4304x4,7947:3860x12;6037x6;7910x2;7966x1;4304x2,7954:3860x24;7075x4;6037x6;3864x5;1529x5;7966x4;4304x4,7955:2840x10;2880x2;3470x1;2318x1,7956:2841x8;3466x1;2319x1,7957:2841x12;3466x2;2319x2,7958:2841x14;3466x1;2319x2,7959:3860x28;7972x10;6037x10;7966x6;4304x6,7960:3860x30;6037x16;7910x6;7081x4;7966x8;4304x6,7961:3860x28;7081x6;6037x8;3823x2;7909x6;7966x4;4304x2,7963:3859x16;3486x3,7964:7912x1,7965:7912x1;4306x1,7966:7912x4,7967:3860x4;6037x2;7966x4,7969:3860x4;7966x3,9060:3860x5;3577x1;6037x1,9366:3859x10;3577x4;3486x4,10421:2840x4,10423:2841x12;2842x4;3478x2,11128:3577x1;3478x2,11144:6037x1;3486x1,11604:11371x20;7077x8,11605:11371x6;7077x1,11606:11371x10;7077x2,11607:11371x26;7077x4,11608:11371x18;7077x4,12259:3859x10;3466x2;1206x1;7067x1;4234x1,12260:3859x10;3577x4;7068x2;4234x2,12404:12365x1,12405:12359x16;12361x1,12406:12359x8,12408:12359x8,12409:12359x12;8170x8,12410:12359x12;7910x1,12414:12359x12,12415:12359x18;7077x2;7910x1,12416:12359x10;7077x2,12417:12359x18;7077x4,12418:12359x18;7077x4,12419:12359x14;7077x4,12420:12359x20;7077x4,12422:12359x20,12424:12359x10;8170x6,12425:12359x12,12426:12359x18,12427:12359x18;7910x1,12428:12359x12;8170x6,12429:12359x24,12610:12359x20;12360x2;3577x6,12611:12359x20;12360x2;2842x10,12612:12359x30;12360x2;6037x2;12364x1,12613:12359x40;12360x2;7910x1,12614:12359x40;12360x2;7910x1,12618:12360x8;12655x24;7076x4;7080x4;12364x2;12800x2,12619:12360x10;12655x20;7080x6;12361x2;12364x1,12620:12360x6;12655x16;7076x6;12799x2;12800x1,12624:12359x40;12655x2;12803x4;8153x4;12364x1,12625:12359x20;12360x4;12364x2;7080x2,12628:12359x40;12662x10;12361x4;7910x4,12631:12359x20;12655x6;7078x2;7910x4,12632:12359x20;12655x4;7080x4;12361x4,12633:12359x20;12655x4;6037x6;3577x6;12800x2,12636:12359x40;12655x4;12799x6;12364x2,12639:12360x15;12655x20;7076x10;12361x4;12799x4,12640:12359x80;12360x12;12361x10;12800x4,12641:12360x30;12655x30;12364x6;12800x6,12643:12365x1;14047x1,12644:12365x4,12645:12359x4;12644x4;7076x2,12773:12359x10;12799x2;12644x2;8170x4,12774:12359x30;12655x4;7910x4;12361x4;12644x2;8170x4,12775:12359x12;12644x6;8170x6,12776:12359x20;12655x6;12364x2;12804x4;8170x4,12777:12655x10;7078x4;7077x4;12800x2;12644x2,12781:12655x6;12360x2;12804x4;12799x2;12361x2;12364x1,12782:12359x40;12360x2;12662x16;12808x8;12361x2;12644x2;8170x4,12783:12360x10;12655x10;12810x2;7910x6;12800x6;12799x6;12644x4,12784:12360x20;12810x6;12644x2,12790:12360x15;12800x8;12811x1;12799x4;12810x8;12644x2,12792:12359x30;7077x4;7910x4;8170x4,12794:12655x20;12364x8;12799x8;7076x6;12810x4,12796:12359x50;12360x15;12809x4;12810x6;7076x10,12797:12360x18;12361x8;12800x8;7080x4;12644x2;12810x4,12798:12359x40;12360x12;12808x10;12364x8;12644x2;12810x4,15869:2842x1;3470x1,15870:3577x1;3486x1,15871:6037x1;7966x1,15872:12360x1;12644x1,16206:12360x3;12644x1,16988:11371x16;17010x4;17011x5,16989:11371x6;17010x3;17011x3,17013:11371x16;17010x4;17011x6,17014:11371x4;17010x2;17011x2,17015:11371x16;17010x12;11382x2;12810x2,17016:11371x18;17011x12;11382x2;12810x2,17193:17203x8;11371x20;12360x50;7078x25;11382x10;17011x10;17010x10,17704:3859x10;3829x1;7070x2;7069x2;4234x2,18262:7067x2;12365x3,19043:12359x12;7076x3;12803x3,19048:12360x4;7076x6;12803x6,19051:12359x8;6037x6;12811x1,19057:12360x2;6037x10;12811x1,19148:17011x4;17010x2;11371x4,19164:17011x3;17010x5;17012x4;11371x4;11382x2,19166:17011x3;17010x6;12360x12;11382x1;11371x4,19167:17011x5;17010x2;12360x16;11371x6,19168:17011x6;17010x6;12360x10;11371x6;12809x12,19169:17011x8;17010x5;12360x10;11371x12;12364x4,19170:17011x4;17010x7;12360x12;11371x8;12800x4,19690:12359x20;19774x10;7910x2,19691:12359x16;19774x8;7910x1,19692:12359x12;19774x6;12810x4,19693:12359x20;19774x14;12799x2,19694:12359x18;19774x12;12799x2,19695:12359x16;19774x10;12799x1,20039:17011x3;17010x3;17012x4;11371x6,20549:12359x12;20520x6;6037x6;12810x2,20550:12359x20;20520x10;6037x10,20551:12359x16;20520x8;6037x8;11754x1,22191:22203x15;22202x36;12810x12;12809x10;12800x4,22194:22203x8;22202x24;12810x8;13512x1,22195:22202x14;12810x4,22196:22203x18;22202x40;12655x12;7076x10;12364x4,22197:22202x14;12655x4;7076x2,22198:22203x8;22202x24;12655x8;7076x4,22383:12360x12;20725x2;13512x2;12810x4,22384:12360x15;11371x10;12808x20;20520x20;15417x10;12753x2,22385:12360x12;12655x20;7076x10;13510x2,22669:22682x7;12359x16;12360x2;7080x4,22670:22682x5;12359x12;12360x2;7080x2,22671:22682x4;12359x12;12360x2;7080x2,22762:12655x6;19726x2;12360x2;12803x2,22763:12655x8;19726x1;12803x2,22764:12655x6;12803x2,23482:23445x4,23484:23445x4,23487:23445x6,23488:23445x8,23489:23445x10,23490:23445x9,23491:23445x5,23493:23445x4,23494:23445x6,23497:23445x9,23498:23445x10,23499:23445x12,23502:23446x8,23503:23446x8,23504:23446x7;21887x2,23505:23446x12,23506:23446x6;22452x2;21884x2,23507:23446x12;22452x4;21884x2,23508:23446x8;21887x2;22452x3;21884x2,23509:23573x4;22445x20;22449x4,23510:23573x2;22445x8;22449x2,23511:23573x3;22445x12;22449x2,23512:23573x4;22445x24;22449x4,23513:23445x16;21885x6;21884x4,23514:23445x8;21885x4;21884x4,23515:23445x6;21885x3;21884x2,23516:23445x12;21885x5;21884x3,23517:23448x6,23518:23448x8,23519:23448x8,23520:23445x8;21884x6;23449x3;22824x2,23521:23445x10;21884x10;23449x4;22824x4,23522:23445x12;21884x10;23449x6;22824x4,23523:23449x6;21885x4;22457x4,23524:23449x3;21885x2;22457x2,23525:23449x4;21885x3;22457x3,23526:23448x6;22449x2;22831x4;22451x4,23527:23573x4;21886x6;22452x4,23528:23445x1;22573x1,23529:23446x1;22573x2,23530:23448x4;21884x4;22452x4,23531:23448x10;23571x3;23572x1,23532:23573x10;23571x2;22452x15;23572x1,23533:23448x10;23571x5;23572x1,23534:23573x8;22451x16;21885x16;23572x1,23535:23573x8;22452x22;22457x12;23572x1,23536:23573x8;23571x3;21886x18;23572x1,23537:23448x6;22456x15;23572x1,23538:23573x6;21886x20;23572x1,23539:23573x6;23571x2;21885x15;23572x1,23540:23449x10;23448x10;23571x6;23572x2,23541:23449x20;23573x2;23571x6;23572x2,23542:23449x10;23448x10;23571x8;23572x2,23543:23449x10;23448x10;23571x8;23572x2,23544:23449x10;23448x10;23571x8;23572x2,23546:23449x10;23448x10;23571x8;23572x2,23554:23449x10;23573x4;23447x10;23571x8;23572x2,23555:23449x10;23448x10;23571x8;23572x2,23556:23449x10;23573x4;23447x10;23571x8;23572x4,23559:23446x1,23575:23446x1,23576:23447x1,25521:23449x1,25843:23445x6,25844:23446x10,25845:23447x4,28420:23445x1;21877x1,28421:23446x1;21877x2,29201:2841x6;3470x2;2319x1,29202:3859x5;7069x2;3486x2;4234x1,29203:12655x2;12359x6;8170x1,29204:23448x6;22451x2;21884x2;23793x1,30031:23572x2;23573x4;21884x12,30032:30183x2;23573x5;21884x10,30033:23572x2;23573x4;21885x12,30034:30183x2;23573x5;21885x10;22452x5,31364:23448x8;21886x12;22456x12;23572x1,31367:23448x8;21886x12;22456x12;23572x1,31368:23448x8;21886x12;22456x12;23572x1,31369:23449x8;21885x12;21884x12;23572x1,31370:23449x8;21885x12;21884x12;23572x1,31371:23449x8;21885x12;21884x12;23572x1,32401:32428x2;22450x1;21886x3;22456x4;23446x8,32402:32428x2;22450x1;21886x2;22456x4;23446x4,32403:32428x1;22450x1;21886x2;22456x2;23446x4,32404:32428x3;22450x1;21886x4;22456x6;23446x12,32568:23448x14;23573x2;22451x6;32428x4,32570:23448x18;23573x2;22451x8;32428x2,32571:23449x14;23573x2;21884x6;32428x4,32573:23449x18;23573x2;21884x8;32428x2,32854:23449x16;23448x12;23571x6;23572x2,33173:23445x12;21884x2;23449x8;27503x2,33185:23573x2;23449x1,33791:2840x10;818x1;3470x2,34377:23449x20;23573x4;21884x10;22456x10;23572x6,34378:35128x10;21884x12;22456x12;22451x12;34664x6,34379:23449x20;23573x4;21886x15;21885x15;23572x6,34380:35128x8;21886x20;23571x6;34664x6,39083:36916x4,39084:36916x5,39085:36916x6,39086:36916x5,39087:36916x4,39088:36916x4,40668:36916x4,40669:36916x6;36913x5,40670:36916x6;36913x4,40671:36916x3;36913x8,40672:36916x6;36913x5;37701x1,40673:36913x12;37701x1,40674:36916x5;36913x5;37701x1,40942:36916x7,40943:36916x12,40949:36916x7,40950:36916x7,40951:36916x8,40952:36916x12,40953:36916x12,40954:36916x12,40955:36916x8,40956:36916x8;37705x2,40957:36916x8;37705x2,40958:36916x8;37705x2,40959:36916x8;37705x2,41113:36913x14,41114:36913x14,41116:36913x13,41117:36916x6;36913x4,41126:36916x5;36913x5;37705x1,41127:36916x3;36913x8,41128:36913x12,41129:36913x14;37705x1,41181:36916x12;36913x4;37702x2,41182:36916x8;36913x6;37702x2,41183:36916x12;36913x4;37703x1,41184:36913x12;37703x2,41185:36913x15;37701x2,41239:36916x8,41240:36916x8,41241:36916x7,41242:36916x10,41243:36916x10,41245:36913x7;37700x2,41257:36913x8;37663x8;43102x2,41344:36913x14;36860x1,41345:36913x14;35624x1,41346:36913x14;35622x1,41347:36913x14;35623x1,41348:36913x12;35627x1,41349:36913x12;36860x1,41350:36913x14;35627x1,41351:36913x12;35622x1,41352:36913x12;35622x1,41353:36913x14;35624x1,41354:36913x12;35623x1,41355:36913x12;36860x1,41356:36913x12;35622x1,41357:36913x12;35624x1,41383:36913x6;37663x6;43102x2,41384:36913x6;37663x6;43102x2,41386:36913x4;37663x4;43102x1,41387:36913x4;37663x4;43102x1,41388:36913x4;37663x4;43102x1,41391:36913x4;37663x3;43102x1,41392:36913x4;37663x3;43102x1,41394:36913x4;37663x3;43102x1,41611:36913x4;35624x1;35622x1;35627x1,41745:36913x2;41163x1,41974:36916x4,41975:36916x5,41976:36913x2;41163x1,42435:36913x6;37663x6;43102x2,42443:36913x15;37705x2,42500:36913x2;41163x1,42508:36913x4;37663x3;43102x1,42723:36913x12;35623x1,42724:36913x12;36860x1,42725:36913x14;35624x1,42726:36913x14;35623x1,42727:36913x12;35622x1,42728:36913x14;35627x1,42729:36913x12;35622x1,42730:36913x12;35627x1,43586:36913x16;36860x3;35622x3;43102x1,43587:36913x12;36860x2;35622x2;43102x1,43588:36913x12;36860x2;35622x2;43102x1,43853:36913x4;41163x1,43854:36916x4,43860:36916x6;36913x5,43864:36916x3;36913x8,43865:36913x12,43870:36913x14;37705x1,43871:36913x15;37702x2,44936:41163x4;35627x4,45085:37663x6;34054x6;43102x2,45550:37663x5;45087x6,45551:37663x5;45087x6,45552:37663x5;45087x6,45559:37663x5;45087x6,45560:37663x5;45087x6,45561:37663x5;45087x6,47570:37663x8;36913x20;47556x4,47571:37663x8;36913x20;47556x4,47572:37663x8;41355x1;47556x4,47573:37663x8;41355x1;47556x4,47574:37663x8;35625x12;47556x4,47575:37663x8;35625x12;47556x4,47589:37663x10;41245x4;47556x8,47590:37663x10;41245x4;47556x8,47591:37663x12;35625x8;36925x2;47556x8,47592:37663x12;35625x8;36925x2;47556x8,47593:37663x10;35625x20;47556x8,47594:37663x10;35625x20;47556x8,49902:37663x12;35623x20;49908x8,49903:37663x12;35627x20;49908x8,49904:37663x12;35624x20;49908x8,49905:37663x8;35624x12;49908x5,49906:37663x8;35622x6;36860x6;49908x5,49907:37663x8;35624x12;49908x5",
+	["TradeskillResultMats.Forward.Blacksmithing.Weaponsmith.Axesmith"]="28431:23571x5;22456x20;23573x2;23448x12,28432:28431x1;23572x8;23448x6,28433:28432x1;30183x5,28434:22451x12;22452x12;23571x4;23447x22,28435:28434x1;23572x8;22457x10,28436:28435x1;30183x5,30087:23446x8;21885x3;22451x3,30088:23446x10;22451x6",
+	["TradeskillResultMats.Forward.Blacksmithing.Weaponsmith.Basic"]="30071:3860x12;7075x4,30072:3860x12;7081x4,30073:3860x12;7077x4,41186:36913x16;37702x1,41187:36913x14;37702x1,41188:36913x20;37702x2",
+	["TradeskillResultMats.Forward.Blacksmithing.Weaponsmith.Hammersmith"]="28437:21884x20;22452x20;23447x12;23449x8,28438:28437x1;23572x8;23571x2,28439:28438x1;30183x5,28440:22451x20;21885x20;23573x6;23449x12,28441:28440x1;23572x8;22457x10,28442:28441x1;30183x5,30089:23446x8;21884x6,30093:23446x12;22452x6",
+	["TradeskillResultMats.Forward.Blacksmithing.Weaponsmith.Swordsmith"]="28425:22456x20;22457x20;23448x14,28426:28425x1;23572x8;22451x10,28427:28426x1;30183x5,28428:23571x10;23449x14;23573x6,28429:28428x1;23572x8;23571x2,28430:28429x1;30183x5,30077:23446x6;22451x6,30086:23446x10;22452x6",
+	["TradeskillResultMats.Forward.Cooking"]="724:723x1,733:729x1;730x1;731x1,787:6303x1,1017:1015x2,1082:1081x1;1080x1,2679:2672x1,2680:2672x1,2681:769x1,2682:2675x1,2683:2674x1,2684:2673x1,2685:2677x2,2687:2677x1,2888:2886x1,3220:3173x1;3172x1;3174x1,3662:2924x1,3663:1468x2,3664:3667x1,3665:3685x1,3666:2251x2,3726:3730x1,3727:3731x1,3728:3731x2,3729:3712x1,4457:3404x1,4592:6289x1,4593:6308x1,4594:6362x1,5095:6361x1,5472:5465x1,5473:5466x1,5474:5467x1,5476:5468x1,5477:5469x1,5478:5051x1,5479:5470x1,5480:5471x1,5525:5503x1;159x1,5526:5503x1;1179x1,5527:5504x1,6038:4655x1,6290:6291x1,6316:6317x1,6657:6522x1,6887:4603x1,6888:6889x1,6890:3173x1,7676:2452x1;159x1,8364:8365x1,10841:3821x1;159x1,12209:1015x1,12210:12184x1,12212:12202x1;159x1,12213:12037x1,12214:12037x1;2596x1,12215:12204x2,12216:12206x1,12217:12037x1;4402x1,12218:12207x1,12224:12223x1,13851:12203x1,13927:13754x1,13928:13755x1,13929:13756x1,13930:13758x1,13931:13759x1;159x1,13932:13760x1,13933:13888x1;159x1,13934:13893x1,13935:13889x1,16766:7974x2,17197:6889x1;17194x1,17198:6889x1;1179x1;17196x1;17194x1,17222:12205x2,18045:12208x1,18254:18255x1,20074:3667x2,20452:20424x1,21023:9061x1;8150x1;21024x1,21072:21071x1,21217:21153x1,22645:22644x1,24105:23676x1,27635:27668x1,27636:27669x1,27651:27671x1,27655:27674x1,27656:27676x1,27657:27677x1,27658:27678x1,27659:27681x1,27660:27682x1,27661:27422x1,27662:27425x1,27663:27429x1,27664:27435x1,27665:27437x1,27666:27438x1,27667:27439x1,30155:24477x2,30816:30817x1;2678x1,31672:31670x1,31673:31671x1,33004:7974x1,33048:27422x1,33052:27515x1,33053:27516x1,33825:33824x1,33866:27678x1;13757x1,33867:33823x1,33872:27682x1,33874:27671x1,33924:30817x8;1179x4;2678x4;6889x8;2593x1;785x3,34411:34412x1;17196x1;17194x1,34747:43013x1,34748:34736x1,34749:43009x1,34750:43010x1,34751:43011x1,34752:43012x1,34753:34736x1;43009x1;43010x1;43013x2,34754:34736x2;43007x1,34755:43009x2;43007x1,34756:43010x2;43007x1,34757:43011x1;43007x1,34758:43012x2;43007x1,34759:41803x1,34760:41808x1,34761:41812x1,34762:41806x1,34763:41809x1,34764:41813x1,34765:41810x1,34766:41806x1;43007x1,34767:41809x1;43007x1,34768:41813x1;43007x1,34769:41802x1;43007x1,34832:2596x1;2594x1,35563:35562x1,35565:35562x1,39520:35949x2;35948x1,42942:41802x1,42993:41810x1;43007x1,42994:43010x1;43012x1;43007x1,42995:43012x1;43007x1,42996:41808x3;43007x1,42997:43011x1;43007x1,42998:41801x1;43007x1,42999:41807x1;43007x1,43000:41807x1;43007x1,43001:43009x1;43007x1,43004:43013x2;43007x1,43005:34736x1;43007x1,43015:41806x2;41809x2;41813x2;43007x1,43268:36782x2,43478:41800x2;34736x2;41803x2;43007x1,43480:41813x2;43012x2;41809x2;43007x1,43488:34736x1,43490:30817x2;43501x1,43491:36782x1;22577x1,43492:41810x1;12808x1,44836:46796x1;44853x1,44836:46784x1;44853x1,44837:30816x1;44835x1,44837:30816x1;44835x1,44838:44834x1;44853x2;44835x1,44838:44834x1;44853x2;44835x1,44839:44855x1;44853x1;44835x1,44839:46797x1;44853x1;44835x1,44840:44854x1;44853x1,44840:46793x1;44853x1,44953:43011x2;43007x1,45932:41805x3,46691:30817x1;1179x1",
+	["TradeskillResultMats.Forward.Enchanting"]="-71692:34054x1;44958x3,-69412:34057x1,-64579:34057x4;34054x40;36918x1,-64441:34057x4;34055x8;37663x1,-63746:11137x4;11174x1,-62959:34054x12;34055x2,-62948:34054x40;34052x6;34057x6,-62256:34055x4;34057x1,-60767:34054x6;34055x6;34052x1,-60763:34055x4;34052x4,-60714:34054x30;34052x6;34057x6,-60707:34054x10;34055x2;34052x2;34057x4,-60692:34052x4;34057x4,-60691:34054x40;34055x6;34057x6,-60668:34054x20;34055x4;34052x1,-60663:34054x8;34055x2;34052x2,-60653:34054x12,-60623:34054x8;37705x1,-60621:34054x2;34056x4,-60616:34054x6,-60609:34054x6,-60606:34054x4;34056x4,-59636:34054x8;34055x1,-59625:34055x6;34052x6;34057x6,-59621:34054x12;34055x4;34052x4;34057x10,-59619:34054x20;34055x4;34052x4;34057x6,-47901:34054x10;34055x2;34052x2,-47900:34054x20;34055x4,-47899:34055x6;34057x1,-47898:34054x16;34055x4,-47766:34054x10;35624x1,-47672:34054x15;34055x2,-47051:22446x8;22452x8,-46594:22446x4;22445x8;23427x4,-46578:22456x2;21885x2,-44645:34054x8;34055x1,-44636:34054x8;34055x1,-44635:34054x8;34056x4,-44633:34052x4;35623x4,-44631:34054x12;34057x1,-44630:34054x6;34055x2,-44629:34054x10;34055x2,-44625:34052x2;35624x8,-44623:34054x4;34056x2,-44621:34055x2;34052x6,-44616:34054x16;34055x3,-44598:34054x14;34055x3,-44596:34054x20;35624x1,-44595:34054x6;34052x6,-44593:34054x16;34055x4,-44592:34054x4;34056x1,-44591:34054x8;41163x2;34052x2,-44590:34054x8;34056x2;35625x1,-44589:34054x16;34055x4,-44588:34055x2;34052x2,-44584:34054x8;34055x2,-44582:34054x15,-44576:34052x1;35625x4,-44575:34054x24;34055x6,-44556:34055x4;35622x1,-44555:34054x10,-44529:34055x4;34052x1,-44528:34056x3;34054x3,-44524:34052x4;36860x4,-44513:34054x6;34055x1,-44510:34054x16;34052x4,-44509:34054x4;34055x4,-44508:34054x10;34055x1,-44506:34055x1,-44500:34054x9,-44494:34054x15;34055x1;35627x1,-44492:34055x3,-44489:34054x6;35624x6,-44488:34055x4,-44484:34054x12,-44483:34054x6;34055x3;36860x1,-44383:22449x1;22447x4,-42974:22450x6;22449x10;22446x6;22445x30;22824x3,-42620:22445x8;22446x4;22449x6;22451x2,-34010:22449x8;21885x8;21886x8,-34009:22445x15,-34008:22449x8;22452x8,-34007:22449x8;22451x8,-34006:22449x4;22456x8,-34005:22449x4;22457x8,-34004:22446x1;22445x4;22451x1,-34003:22446x2;22445x6;22457x2,-34002:22445x6,-34001:22447x3,-33999:22446x6;22449x6;21886x6,-33997:22446x6;22449x6;22457x6,-33996:22445x8,-33995:22445x12;22446x1,-33994:22446x8;22445x2;22449x2,-33993:22447x1;22445x4,-33992:22446x4;22445x10,-33991:22447x2;22445x2,-33990:22446x2,-28004:22450x8;22449x8;21885x2,-28003:22449x12;22446x10;22445x20,-27984:22450x6;22449x10;22446x8;22445x40,-27982:22450x12;22449x10;22446x8;21885x6;22456x6,-27981:22450x12;22449x10;22446x8;21884x6;23571x1,-27977:22449x8;22446x6;22445x20,-27975:22449x8;22446x8,-27972:22449x4;22446x5;22445x20,-27971:22449x4;22445x40,-27968:22449x2;22446x10,-27967:22449x2;22446x6;22445x6,-27962:22446x4;21884x4;22451x4;22452x4;21885x4,-27961:22445x8,-27960:22449x4;22445x4;22446x4,-27958:34054x6,-27957:22445x8;13446x4;14344x2,-27954:22450x2;22449x4,-27951:22446x8;22445x8,-27950:22445x12,-27948:22445x6;13446x4;13444x4,-27947:22449x2;22573x1;22574x1;22572x1;22578x1,-27946:22445x12;22446x4;22452x10,-27945:22446x4,-27944:22445x6;22452x10,-27927:22450x2;22449x2,-27926:22449x2;22446x3;22445x5,-27924:22449x2;22446x2,-27920:22449x2;22445x6,-27917:22449x6;21884x6;21885x6,-27914:22449x1;22446x10;22445x20,-27913:22446x8,-27911:22446x4;21886x4,-27906:22448x2;22445x10,-27905:22445x6;22447x6,-27899:22445x6,-27837:14344x8;7082x4,-25086:22448x3;22446x3;22452x8,-25084:22448x4;22446x2;22456x8,-25083:22448x3;22446x3;22794x2,-25082:22448x2;22446x3;12803x4,-25081:22448x3;22446x3;7078x4,-25080:22448x3;22446x3;22451x2,-25079:22448x3;14344x8;12811x1,-25078:22448x2;14344x10;7078x4,-25074:22448x3;14344x10;7080x4,-25073:22448x3;14344x10;12808x6,-25072:22448x4;22446x2;21886x8,-23804:14344x6;16203x5;16204x20,-23803:14344x6;16203x4;16204x12,-23802:14344x2;16204x4;16202x4,-23801:16204x4;16202x4;7080x2,-23800:14344x4;7082x4,-23799:14344x4;7076x4,-22750:14344x4;16203x4;7080x4,-22749:14344x4;16203x6;13926x2,-21931:11135x3;11137x3;11139x1;3819x2,-20036:16203x4;14344x2,-20035:16203x4;14344x2,-20034:14344x4;12811x2,-20033:14344x4;12808x4,-20032:14344x4;12808x4;12803x4,-20031:14344x2;16203x4,-20030:14344x4;16204x10,-20029:14343x4;7080x1;7082x1;13467x1,-20028:16204x8,-20026:14343x2,-20025:14344x2;16204x6,-20024:16203x2,-20023:16202x2;8153x2,-20020:11176x5,-20017:11176x5,-20016:16203x1;16204x4,-20015:16204x8,-20014:7077x1;7075x1;7079x1;7081x1;7972x1,-20013:16202x4;16204x4,-20012:16202x2;16204x3,-20011:16204x10,-20010:16204x6;16203x2,-20009:16202x3;11176x4,-20008:16202x3,-13948:11178x2;8153x2,-13947:11178x2;11176x3,-13945:11176x5,-13943:11178x2;11175x2,-13941:11178x1;11176x3;11175x2,-13939:11176x2;11175x1,-13937:11178x2;11176x2,-13935:11175x2,-13933:11178x1;3829x1,-13931:11175x1;11176x2,-13917:11175x1;11174x2,-13915:11177x1;11176x2;9224x1,-13905:11175x1;11176x2,-13898:11177x4;7078x1,-13890:11177x1;7909x1;11174x1,-13887:11174x2;11137x3,-13882:11174x2,-13868:11137x3;8838x3,-13858:11137x6,-13846:11174x3;11137x1,-13841:11137x3;6037x3,-13836:11137x5,-13822:11174x2,-13817:11137x5,-13815:11174x1;11137x1,-13794:11174x1,-13746:11137x3,-13700:11135x2;11137x2;11139x1,-13698:11137x1;7392x3,-13695:11137x4;11139x1,-13693:11135x2;11139x1,-13689:11135x2;11137x2;11139x1,-13687:11135x1;11134x2,-13663:11135x1,-13661:11137x1,-13659:11135x1;11137x1,-13657:11134x1;7068x1,-13655:11134x1;7067x1;11138x1,-13653:11134x1;5637x2;11138x1,-13648:11083x6,-13646:11134x1;11083x2,-13644:11083x4,-13642:11134x1,-13640:11083x3,-13637:11083x1;11134x1,-13635:11138x1;11083x3,-13631:11134x1;11083x1,-13626:11082x1;11083x1;11084x1,-13622:11082x2,-13620:11083x1;6370x3,-13617:11083x1;3356x3,-13612:11083x1;2772x3,-13607:11082x1;10998x2,-13538:10940x2;11082x1;11084x1,-13536:11083x2,-13529:11083x3;11084x1,-13522:11082x1;6048x1,-13503:11083x2;11084x1,-13501:11083x2,-13485:10998x2;10940x4,-13464:10998x1;10940x1;10978x1,-13421:10940x6;10978x1,-13419:10998x1,-13380:10998x1;10940x6,-13378:10998x1;10940x2,-7867:10940x6;10998x2,-7863:10940x8,-7861:6371x1;10998x1,-7859:10998x2,-7857:10940x4;10998x1,-7793:10939x3,-7788:10940x2;10939x1;10978x1,-7786:10940x4;10939x2,-7782:10940x5,-7779:10940x2;10939x1,-7776:10939x1;10938x1,-7771:10940x3;10939x1,-7766:10938x2,-7748:10940x2;10938x2,-7745:10940x4;10978x1,-7457:10940x3,-7454:10940x1;10938x2,-7443:10938x1,-7428:10938x1;10940x1,-7426:10940x2;10938x1,-7420:10940x1,-7418:10940x1,6218:6217x1;10940x1;10938x1,6339:6338x1;10940x6;10939x3;6218x1,11130:11128x1;5500x1;11082x2;11083x2;6339x1,11145:11144x1;7971x1;11135x2;11137x2;11130x1,11287:4470x1;10938x1,11288:4470x1;10939x1,11289:11291x1;11134x1;11083x1,11290:11291x1;11135x1;11137x1,11811:7078x3;14343x3,12655:12359x1;11176x3,12810:8170x1;16202x1,16207:16206x1;13926x1;16204x10;16203x4;11145x1;14344x2,20744:10940x2;17034x1;3371x1,20745:11083x3;17034x2;3372x1,20746:11137x3;17035x2;3372x1,20747:11176x3;8831x2;8925x1,20748:14344x2;8831x3;18256x1,20749:14344x2;4625x3;18256x1,20750:16204x3;4625x2;8925x1,22448:22449x1,22448:20725x1,22449:22450x1,22449:22448x3,22459:22450x2,22460:22449x4,22461:25843x1;16203x4;14344x6;16207x1,22462:25844x1;22446x8;22449x8;23571x1;22461x1,22463:25845x1;22446x6;22445x6;22462x1,22521:22445x3;22791x1;18256x1,22522:22445x3;22792x1;18256x1,44452:41745x1;34054x40;34055x12;34052x8;22463x1",
+	["TradeskillResultMats.Forward.Engineering.Basic"]="-67839:36913x8;39683x1,-63770:36913x4;35624x2,-63765:33470x12;39682x1,-55016:39690x6;39681x6,-55002:33470x12;39682x1,-54999:36913x6;37700x4,-54998:36913x6;37702x4,-54793:36916x8;39690x8,-54736:39682x4,4357:2835x1,4358:4357x2;2589x1,4359:2840x1,4360:2840x1;4359x1;4357x2;2589x1,4361:2840x2;2880x1,4362:4361x1;4359x1;4399x1,4363:4359x2;2840x1;2589x2,4364:2836x1,4365:4364x3;2589x1,4366:4363x1;4359x2;2841x1;2592x1,4367:4364x2;4363x1;2318x1;159x1,4368:2318x6;818x2,4369:4361x2;4359x4;4399x1;2319x2,4370:2840x3;4364x4;4404x1,4371:2841x2;2880x1,4372:4371x2;4359x2;4400x1;1206x3,4373:2319x4;1210x2,4374:4364x4;2841x2;4404x1;2592x1,4375:2841x2;2592x1,4376:4375x1;4402x1,4377:2838x1,4378:4377x2;2592x1,4379:4371x2;4375x2;4400x1;2842x3,4380:4377x2;2841x3;4404x1,4381:4371x1;4375x2;2319x2;1206x1,4382:2841x2;2319x1;2592x1,4383:4371x3;4375x3;4400x1;1705x2,4384:4382x1;4375x1;4377x2;2592x2,4385:2319x4;1206x2;4368x1,4386:4375x1;3829x1,4387:3575x2,4388:4375x3;4306x2;1529x1;4371x1,4389:3575x1;10558x1,4390:3575x1;4377x1;4306x1,4391:4387x2;4382x1;4389x2;4234x4,4392:4387x1;4382x1;4389x1;4234x4,4393:4234x6;3864x2,4394:3575x3;4377x3;4404x1,4395:4377x3;3575x2;4389x1,4396:4382x1;4387x2;4389x2;3864x1,4397:4389x4;1529x2;1705x2;3864x2;7191x1,4398:10505x2;4234x2;159x1,4401:4363x1;4359x1;2840x1;774x2,4403:4371x4;4387x1;4377x4;2319x4,4404:2842x1,4405:4361x1;774x1;4359x1,4406:4371x1;1206x1,4407:4371x1;1529x1;3864x1,4852:4611x1;4377x1;4306x1,5507:4371x2;4375x2;4363x1;1206x1,6219:2840x6,6533:2841x2;6530x1;4364x1,6712:2841x1;4359x2;2880x1,6714:4364x4;2592x1,7148:3575x6;4375x2;814x2;4306x2;1210x2;7191x1,7191:20816x3;7078x2,7506:2841x6;4375x1;814x2;818x1;774x1,8067:4357x1;2840x1,8068:4364x1;2840x1,8069:4377x1;2841x1,9312:4377x1;4234x1,9313:4377x1;4234x1,9318:4377x1;4234x1,10498:3859x4,10499:4234x6;3864x2,10500:4385x1;3864x2;7068x2;4234x4,10501:4304x4;7909x2;10592x1,10502:4304x4;7910x2,10503:4304x6;7910x2,10504:4304x8;1529x3;7909x3;10286x2;8153x2,10505:7912x2,10506:3860x8;10561x1;6037x1;818x4;774x4,10507:10505x1;4306x1,10508:10559x1;10560x1;4400x1;3860x4;7068x2,10510:10559x2;10560x1;4400x1;3860x6;3864x2,10512:3860x1;10505x1,10513:3860x2;10505x2,10514:10561x1;10560x1;10505x1,10518:4339x4;10285x2;10560x1;10505x4,10546:10559x1;7909x2;4304x2,10548:10559x1;7910x1;6037x2,10558:3577x1,10559:3860x3,10560:3860x1;4338x1;10505x1,10561:3860x3,10562:10561x2;10560x1;10505x2,10576:3860x4;7077x2;6037x4;7910x1,11590:3860x1;4338x1;10505x1,15846:10561x1;12359x6;10558x3,15992:12365x2,15993:15994x1;12359x3;15992x3;14047x3,15994:12359x3;14047x1,15995:10559x2;10561x2;15994x2;12359x4;10546x1,15996:12803x1;15994x4;10558x1;8170x1,15997:12359x2;15992x1,15999:10502x1;7910x4;12810x2;14047x8,16000:12359x6,16004:16000x2;11371x6;10546x2;12361x2;12799x2;8170x4,16005:15994x2;11371x1;15992x3;14047x3,16006:12360x1;14227x1,16007:12360x10;16000x2;7078x2;7076x2;12800x2;12810x2,16008:10500x1;12364x2;12810x4,16009:16006x2;10558x1;15994x1;12799x1,16022:10576x1;16006x4,16023:10561x1;16000x1;15994x2;6037x1;8170x2;14047x4,16040:16006x1;12359x3;14047x1,17716:3860x8;4389x4;17202x4;3829x1,18168:12360x6;16006x2;7082x8;12803x12;7076x8,18232:12359x16;7191x2,18282:17010x4;17011x2;12360x6;16006x2;16000x2,18283:17011x2;7076x2;16006x4;11371x6;16000x1,18588:10505x1;4338x2,18594:15994x2;15992x3;8170x2;159x1,18631:6037x2;7067x2;7069x1,18634:15994x6;18631x2;12361x2;7078x4;3829x2;13467x4,18637:16000x2;18631x1;14047x2,18638:11371x4;18631x3;7080x6;7910x4;12800x2,18639:11371x8;18631x4;12803x6;12808x4;12800x2;12799x2,18641:15992x2;14047x3,19026:15992x2;14047x2;8150x1,19998:19726x6;12800x1;12804x6,19999:19726x4;7910x2;12804x6;12810x4,20475:23446x1;4470x4;23783x2,21277:15407x1;15994x4;7079x2;18631x2;10558x1,21557:4364x1;2319x1,21558:4364x1;2319x1,21559:4364x1;2319x1,21569:9060x1;9061x1;10560x1;10561x1,21570:10561x1;9061x1,21571:10505x1;4304x1,21574:10505x1;4304x1,21576:10505x1;4304x1,21589:4377x1;4234x1,21590:4377x1;4234x1,21592:4377x1;4234x1,21714:15992x1;8170x1,21716:15992x1;8170x1,21718:15992x1;8170x1,22728:3860x3;10558x1,23736:23782x1;23783x2;23781x1,23737:23446x4;23783x2;23781x1,23742:4400x1;23782x3;23783x6,23746:23782x3;23784x2;23783x4,23747:23785x1;23787x4;23783x4,23748:23785x2;23449x12;23783x4;23439x2,23758:23793x4;23077x2;22445x8,23761:23793x4;21929x2;22445x8,23762:23793x4;23449x2;23079x2;22448x2,23763:23793x4;23449x2;23441x2;22449x2,23764:23446x8;23112x2,23765:23785x1;23449x4;23440x2,23766:23785x2;23787x6;23438x2,23767:23784x1;23782x2;10558x1;23783x2,23768:23781x1;21877x1,23771:23781x1;21877x1;2605x1,23772:23445x2;23781x1,23774:23782x1;23445x5;23783x2,23775:36913x8;41163x8;39681x4,23781:22574x1;22573x2,23782:23445x3,23783:23445x1,23784:23446x4;22452x1,23785:23573x3,23786:23449x3;21884x1,23787:23448x2,23819:23781x2;23782x1;23783x1,23821:23782x2;23783x2;21886x4;16006x1,23824:23793x8;23786x2;23785x2;23787x4,25886:23781x1;21877x1;4342x1,32413:32423x1;23782x1;23783x1,32423:21885x1;23781x2;21877x2,32461:23793x6;23786x1;23785x2;23787x4;23572x1;23436x2,32472:23793x6;23786x1;23785x2;23787x4;23572x1;23440x2,32473:23793x6;23786x1;23785x2;23787x4;23572x1;23437x2,32474:23793x6;23786x1;23785x2;23787x4;23572x1;23441x2,32475:23793x6;23786x1;23785x2;23787x4;23572x1;23439x2,32476:23793x6;23786x1;23785x2;23787x4;23572x1;23436x2,32478:23793x6;23786x1;23785x2;23787x4;23572x1;23436x2,32479:23793x6;23786x1;23785x2;23787x4;23572x1;23440x2,32480:23793x6;23786x1;23785x2;23787x4;23572x1;23437x2,32494:23793x6;23786x1;23785x2;23787x4;23572x1;23438x2,32495:23793x6;23786x1;23785x2;23787x4;23572x1;23439x2,32756:23785x1;23449x20;23787x4;21884x12;22451x12;23572x1,33092:23782x1;23783x1;21887x2;22829x20,33093:23782x1;23783x1;21887x2;22832x20,34060:23782x2;23781x20;23783x20;11291x8,34061:23784x4;23786x8;23787x8;34249x1,34113:23446x8;23783x8;23786x1,34353:32478x1;22456x12;23572x4,34354:32461x1;21884x10;23572x4,34355:32476x1;23571x2;22451x2;23572x4,34356:32474x1;22451x12;23572x4,34357:32473x1;35128x2;23571x1;23572x4,34504:23446x1;23781x2;4470x4,34847:32494x1;22456x4;21884x4;22457x4;23572x4,35181:32495x1;21886x8;22457x8;23572x4,35182:32480x1;21885x6;21886x12;23572x4,35183:32479x1;21885x4;22457x8;23572x4,35184:32475x1;21886x5;22457x5;21885x5;23572x4,35185:32472x1;21886x8;22457x8;22452x8;23572x4,35581:21840x8;23786x2;23785x2;23787x4,37567:36913x12;39681x2,39681:36916x2,39682:36916x4;37701x1,39683:36916x8;37705x1,39688:36913x10;39683x2;39684x1;40533x1,39690:36916x3;37705x1,40536:33470x1;39690x3,40767:39683x2;39682x4;39681x2,40768:36913x8;35623x8,40769:36913x10,40771:39681x2;39690x1,40772:36913x10;7005x1;2901x1;5956x1,40865:39683x2;39682x2;39681x8,40892:36916x5,40893:36916x5,41112:36913x8;33568x2;35627x1,41121:41163x2;36913x8;35622x2;35623x2,41146:39683x1;36920x1;36921x1,41164:36913x1;39690x1,41165:36913x2,41167:36913x10;36927x2,41168:41163x10;36913x20;35623x15;35622x15;43102x1;40533x1,41508:37663x12;39681x40;44128x2;44499x1;44501x8;44500x1,42546:36913x12;37705x2,42549:41163x8;38425x4;36924x2;35624x4;43102x1,42550:41163x8;38425x4;36918x2;35623x4;43102x1,42551:41163x8;38425x4;36927x2;35622x4;43102x1,42552:41163x8;38425x4;36930x2;36860x4;43102x1,42553:41163x8;38425x4;36918x2;35627x4;43102x1,42554:41163x8;38425x4;36933x2;35625x4;43102x1,42555:41163x8;38425x4;36921x2;35623x4;43102x1,44413:37663x12;39681x40;44128x2;44499x1;44501x8;44500x1,44504:41163x10;43102x1;36860x12;35627x12;41146x3;40533x1,44739:39683x1;39681x2,44740:36913x8;33568x2;35627x1,44741:36913x8;33568x2;35627x1,44742:36913x8;33568x2;35627x1,44949:41163x8;38425x4;36933x2;35624x4;43102x1,44951:36913x5;39690x1,45631:15994x4;6037x6;7078x6,47828:36913x6;37702x3;37705x3,48933:41163x8;35627x2;35622x2;36860x2;35623x2,49040:18232x2;34113x10;40769x20;37663x8;36922x2;39681x30",
+	["TradeskillResultMats.Forward.Engineering.Gnomish"]="10545:10500x1;10559x1;10558x2;8151x2;4234x2,10645:10559x2;10560x1;12808x1;7972x4;9060x1,10713:10648x1;10647x1,10716:10559x1;10560x1;3860x4;8151x4;1529x2,10720:10559x1;10285x2;4337x4;10505x2;3860x4,10721:7387x1;3860x4;6037x2;10560x1;7909x2,10724:10026x1;10559x2;4234x4;10505x8;4389x4,10725:10561x1;6037x6;3860x6;9060x2;10558x1;1529x2,10726:3860x10;6037x4;10558x1;7910x2;4338x4,11826:7075x1;4389x2;7191x1;3860x2;6037x1,18645:12359x4;7191x1,18660:10561x1;15994x2;10558x1;10560x1;3864x1,18986:3860x12;18631x2;7075x4;7079x2;7909x4;9060x1,23825:23793x8;23786x4;21886x10;22456x10;16006x2,23828:24271x4;21884x8;22451x8;22452x8;21885x8;23437x2,23829:23793x8;22456x12;22452x12;21884x12;23436x2,23835:23785x2;23786x2;22445x10;22449x2,23841:23784x1;23783x2;23781x3;23782x1,30544:23784x1;22451x2;23787x2;23783x4;23786x1,40895:41163x6;34052x2;39681x2,52021:37703x2",
+	["TradeskillResultMats.Forward.Engineering.Goblin"]="7189:10026x1;10559x2;4234x4;9061x2;10560x1,10542:3860x8;3864x1;7067x4,10543:3860x8;3864x1;7068x4,10577:10577x1;3860x1;10505x3,10577:10559x2;3860x4;10505x5;10558x1;7068x1,10586:10561x1;9061x1;10507x6;10560x1,10587:10561x2;10505x4;6037x6;10560x1;4407x2,10588:10543x1;9061x4;3860x4;10560x1,10644:10648x1;10647x1,10646:4338x1;10505x3;10560x1,10727:10559x2;9061x4;3860x6;6037x6;10560x1,11825:4394x1;7077x1;7191x1;3860x6,18587:15994x2;18631x2;7191x2;14227x2;7910x2,18984:3860x10;18631x1;7077x4;7910x2;10586x1,23826:23782x3;23781x6;17020x3;23783x2,23827:21877x4;23781x4;22457x1,23836:23785x2;23786x1;23787x2;21884x6;22452x6;16006x2,23838:24272x4;22457x12;22451x12,23839:23573x8;22452x12;21884x12,30542:23784x1;21884x2;23826x2;23783x4;23786x1,42641:36913x1;39690x1,52020:37701x2",
+	["TradeskillResultMats.Forward.First Aid"]="1251:2589x1,2581:2589x2,3530:2592x1,3531:2592x2,6450:4306x1,6451:4306x2,6452:1475x1,6453:1288x1,8544:4338x1,8545:4338x2,14529:14047x1,14530:14047x2,19440:19441x1,21990:21877x1,21991:21877x2,34721:33470x1,34722:33470x2",
+	["TradeskillResultMats.Forward.Inscription"]="-61288:39469x1;39354x2,-61177:43126x3;43127x1;39502x5,-61120:43127x1,-61119:43127x1,-61118:43127x1,-61117:43127x1,954:37101x2;39354x1,955:37101x1;39354x1,1180:37101x1;39354x1,1181:37101x1;39354x1,1477:39774x1;39354x1,1711:39774x1;39354x1,1712:39774x1;39354x1,2289:39774x1;39354x1,2290:39774x1;39354x1,3012:37101x2;39354x1,4419:43118x1;10648x2,4422:43118x1;10648x2,4424:43118x1;10648x2,4425:43118x1;10648x2,4426:43118x1;10648x2,10306:43120x1;39501x2,10307:43120x1;39501x2,10308:43120x1;39501x2,10309:43120x1;39501x2,10310:43120x1;39501x2,27498:43122x1;39501x2,27499:43122x1;39501x2,27501:43122x1;39501x2,27502:43122x1;39501x2,27503:43122x1;39501x2,33457:43124x1;39501x2,33458:43124x1;39501x2,33460:43122x1;39501x2,33461:43122x1;39501x2,33462:43124x1;39501x2,37091:43126x1;39502x2,37092:43126x1;39502x2,37093:43126x1;39502x2,37094:43126x1;39502x2,37097:43126x1;39502x2,37098:43126x1;39502x2,37101:39151x1,37118:39354x1;39469x1,37168:39354x1;43115x1;39774x1,37602:43120x1;10648x2,38322:43127x5;39502x10;43102x1;43126x2,38682:39469x1;39354x2,39349:39774x3;39354x2,39350:43121x1;39501x2;43120x1,39469:39151x2,39774:39334x2,40896:43124x1;39502x1,40897:39774x1;39354x1,40899:43126x1;39502x1,40900:43126x1;39502x1,40901:43122x1;39501x1,40902:43120x1;10648x1,40903:43124x1;39502x1,40906:43126x1;39502x1,40908:43126x1;39502x1,40909:43118x1;10648x1,40912:43126x1;39502x1,40913:39774x1;39354x1,40914:43116x1;10648x1,40915:43126x1;39502x1,40916:43120x1;39501x1,40919:43118x1;10648x1,40920:43126x1;39502x1,40921:43126x1;39502x1,40922:39774x1;39354x1,40923:43116x1;10648x1,40924:43116x1;39354x1,41092:43116x1;10648x1,41094:43124x1;39502x1,41095:39774x1;39354x1,41096:39774x1;39354x1,41097:43126x1;39502x1,41098:43120x1;39501x1,41099:43120x1;39501x1,41100:43118x1;10648x1,41101:43126x1;39502x1,41102:43126x1;39502x1,41103:43122x1;39501x1,41104:43118x1;10648x1,41105:43124x1;39501x1,41106:43116x1;10648x1,41107:43126x1;39502x1,41108:43116x1;10648x1,41109:43126x1;39502x1,41110:43126x1;39502x1,41517:43126x1;39502x1,41518:43126x1;39502x1,41524:43126x1;39502x1,41526:43126x1;39502x1,41527:43124x1;39501x1,41529:43126x1;39502x1,41530:43116x1;10648x1,41531:39774x1;39354x1,41532:43116x1;10648x1,41533:43120x1;39501x1,41534:43126x1;39502x1,41535:43120x1;39501x1,41536:43116x1;10648x1,41537:39774x1;39354x1,41538:43126x1;39502x1,41539:43126x1;39502x1,41540:43118x1;10648x1,41541:43122x1;39501x1,41542:43124x1;39502x1,41547:43118x1;10648x1,41552:43126x1;39502x1,42396:43126x1;39502x1,42397:43120x1;39501x1,42398:43116x1;10648x1,42399:43122x1;39501x1,42400:43116x1;10648x1,42401:43124x1;39502x1,42402:43116x1;10648x1,42403:43126x1;39502x1,42404:43126x1;39502x1,42405:43126x1;39502x1,42406:43124x1;39502x1,42407:43126x1;39502x1,42408:39774x1;39354x1,42409:43126x1;39502x1,42410:39774x1;39354x1,42411:43118x1;10648x1,42412:43126x1;39502x1,42414:43126x1;39502x1,42415:43118x1;10648x1,42416:43120x1;39501x1,42417:43126x1;39502x1,42453:43124x1;39502x1,42454:43126x1;39502x1,42455:39774x1;39354x1,42456:43126x1;39502x1,42457:43126x1;39502x1,42458:43116x1;10648x1,42459:43126x1;39502x1,42460:43126x1;39502x1,42461:43116x1;10648x1,42462:39774x1;39354x1,42463:43126x1;39502x1,42464:43126x1;39502x1,42465:43116x1;10648x1,42466:43120x1;39501x1,42467:43118x1;10648x1,42468:43122x1;39501x1,42469:43126x1;39502x1,42470:43120x1;39501x1,42471:43124x1;39502x1,42472:43126x1;39502x1,42473:43118x1;10648x1,42734:43116x1;39354x1,42735:43116x1;10648x1,42736:43124x1;39502x1,42737:43116x1;10648x1,42738:43118x1;10648x1,42739:43126x1;39502x1,42740:43126x1;39502x1,42741:39774x1;39354x1,42742:43126x1;39502x1,42743:39774x1;39354x1,42744:43120x1;39501x1,42745:43126x1;39502x1,42746:43118x1;10648x1,42747:43120x1;39501x1,42748:43126x1;39502x1,42749:43124x1;39502x1,42750:43122x1;39501x1,42751:43126x1;39502x1,42752:43126x1;39502x1,42753:43126x1;39502x1,42754:43126x1;39502x1,42897:43118x1;10648x1,42898:43116x1;39354x1,42899:43126x1;39502x1,42900:43116x1;10648x1,42901:43126x1;39502x1,42902:43126x1;39502x1,42903:43120x1;10648x1,42904:43120x1;39501x1,42905:43122x1;39501x1,42906:43124x1;39502x1,42907:39774x1;39354x1,42908:43116x1;10648x1,42909:43126x1;39502x1,42910:43118x1;10648x1,42911:43124x1;39502x1,42912:39774x1;39354x1,42913:43126x1;39502x1,42914:43126x1;39502x1,42915:43126x1;39502x1,42916:43126x1;39502x1,42917:43126x1;39502x1,42954:43126x1;39502x1,42955:43124x1;39502x1,42956:39774x1;39354x1,42957:43126x1;39502x1,42958:43126x1;39502x1,42959:43126x1;39502x1,42960:39774x1;39354x1,42961:43116x1;10648x1,42962:43116x1;10648x1,42963:43124x1;39501x1,42964:43116x1;10648x1,42965:43126x1;39502x1,42966:43118x1;10648x1,42967:43126x1;39502x1,42968:43126x1;39502x1,42969:43126x1;39502x1,42970:43118x1;10648x1,42971:43126x1;39502x1,42972:43120x1;39501x1,42973:43120x1;39501x1,42974:43122x1;39501x1,43115:43103x1,43116:39338x2,43117:43104x1,43118:39339x2,43119:43105x1,43120:39340x2,43121:43106x1,43122:39341x2,43123:43107x1,43124:39342x2,43125:43108x1,43126:39343x2,43127:43109x2,43145:43126x1;39502x2,43146:43126x3;39502x2,43316:43116x1;39354x1,43331:43116x1;39354x1,43332:39774x1;39354x1,43334:43118x1;10648x1,43335:39774x1;39354x1,43338:39774x1;39354x1,43339:39774x1;39354x1,43340:39774x1;39354x1,43342:39774x1;39354x1,43343:39774x1;39354x1,43344:43116x1;10648x1,43350:39774x1;39354x1,43351:43118x1;10648x1,43354:39774x1;39354x1,43355:43120x1;10648x1,43356:39774x1;39354x1,43357:43116x1;39354x1,43359:39774x1;39354x1,43360:43116x1;10648x1,43361:39774x1;39354x1,43364:39774x1;39354x1,43365:43116x1;39354x1,43366:39774x1;39354x1,43367:39774x1;39354x1,43368:43116x1;39354x1,43369:43118x1;10648x1,43370:43118x1;10648x1,43371:39774x1;39354x1,43372:43118x1;10648x1,43373:43116x1;39354x1,43374:43126x1;39502x1,43376:43116x1;10648x1,43377:43116x1;39354x1,43378:43120x1;10648x1,43379:39774x1;39354x1,43380:43116x1;10648x1,43381:43118x1;10648x1,43385:43118x1;10648x1,43386:43116x1;39354x1,43388:43118x1;10648x1,43389:43116x1;39354x1,43390:39774x1;39354x1,43391:43116x1;10648x1,43392:43118x1;10648x1,43393:43118x1;10648x1,43394:43126x1;39502x1,43395:39774x1;39354x1,43396:39774x1;39354x1,43397:39774x1;39354x1,43398:43116x1;39354x1,43399:39774x1;39354x1,43400:43124x1;39502x1,43412:43126x1;39502x1,43413:39774x1;39354x1,43414:43120x1;39501x1,43415:43126x1;39502x1,43416:43122x1;39501x1,43417:43116x1;10648x1,43418:39774x1;39354x1,43419:43126x1;39502x1,43420:43120x1;39501x1,43421:43126x1;39502x1,43422:43118x1;10648x1,43423:43116x1;10648x1,43424:43118x1;10648x1,43425:43126x1;39502x1,43426:43126x1;39502x1,43427:43116x1;10648x1,43428:43124x1;39502x1,43429:43126x1;39502x1,43430:43126x1;39502x1,43431:43126x1;39502x1,43432:43124x1;39502x1,43463:43126x1;39502x2,43464:43126x1;39502x2,43465:43126x1;39502x2,43466:43126x1;39502x2,43515:39354x10;43115x5;39774x2,43533:43126x1;39502x1,43534:43126x1;39502x1,43535:43124x1;39502x1,43536:43122x1;39501x1,43537:43126x1;39502x1,43538:43126x1;39502x1,43539:43124x1;39501x1,43541:43122x1;39501x1,43542:43126x1;39502x1,43543:43122x1;39501x1,43544:43124x1;39502x1,43545:43126x1;39502x1,43546:43122x1;39501x1,43547:43126x1;39502x1,43548:43124x1;39501x1,43549:43124x1;39502x1,43550:43126x1;39502x1,43551:43124x1;39502x1,43552:43126x1;39502x1,43553:43124x1;39502x1,43554:43124x1;39502x1,43654:43117x5;10648x10;43116x2,43655:43117x5;10648x10;43116x2,43656:43119x5;10648x10;43118x2,43657:43119x5;10648x10;43118x2,43660:43121x5;39501x10;43120x2,43661:43121x5;43120x2;39501x10,43663:43123x8;39501x1;43122x4,43664:43123x8;39501x10;43122x4,43666:43125x6;39502x10;43124x3,43667:43125x6;39502x10;43124x3,43671:43124x1;39501x1,43672:43124x1;39501x1,43673:43124x1;39501x1,43674:43118x1;10648x1,43725:43116x1;39354x1,43825:43124x1;39502x1,43826:43124x1;39502x1,43827:43124x1;39502x1,43850:43120x2;10648x1,43867:43126x1;39502x1,43868:43126x1;39502x1,43869:43126x1;39502x1,44142:43117x2;10648x1;43116x1,44161:43119x2;10648x1;43118x1,44163:43121x2;39501x1;43120x1,44210:43127x5;39502x10;43102x1;43126x2,44314:10648x1;43120x1,44315:43126x1;39502x1,44316:43123x5;39501x1;43122x2,44317:43125x3;39502x1;21886x3;43124x1,44318:39502x1;43127x6;35625x3;43126x3,44684:43126x1;39502x1,44920:39502x1;43126x1,44922:39502x1;43126x1,44923:39502x1;43126x1,44928:43126x1;39502x1,44955:43124x1;39502x1,45601:43124x1;39502x1,45602:43124x1;39502x1,45603:43126x1;39502x1,45604:43126x1;39502x1,45622:43122x1;39501x1,45623:43120x1;39501x1,45625:43124x1;39502x1,45731:43124x1;39502x1,45732:43126x1;39502x1,45733:43118x1;10648x1,45734:43116x1;39354x1,45735:39774x1;39354x1,45736:43124x1;39502x1,45737:43124x1;39502x1,45738:43124x1;39502x1,45739:43126x1;39502x1,45740:43120x1;39501x1,45741:43124x1;39502x1,45742:43124x1;39502x1,45743:43124x1;39502x1,45744:43126x1;39502x1,45745:43126x1;39502x1,45746:43120x1;10648x1,45747:43116x1;10648x1,45753:43124x1;39502x1,45755:43124x1;39502x1,45756:43124x1;39502x1,45757:43126x1;39502x1,45758:43124x1;39502x1,45760:43122x1;39501x1,45761:43124x1;39502x1,45762:43124x1;39502x1,45764:43124x1;39502x1,45766:43126x1;39502x1,45767:43126x1;39502x1,45768:43122x1;39501x1,45769:43124x1;39502x1,45770:43124x1;39502x1,45771:43124x1;39502x1,45772:43124x1;39502x1,45775:43122x1;39501x1,45776:43122x1;39501x1,45777:43126x1;39502x1,45778:39774x1;39354x1,45779:43124x1;39502x1,45780:43124x1;39502x1,45781:43124x1;39502x1,45782:43126x1;39502x1,45783:43126x1;39502x1,45785:39774x1;39354x1,45789:43116x1;39354x1,45790:43124x1;39502x1,45792:43124x1;39502x1,45793:43120x1;10648x1,45794:43126x1;39502x1,45795:43124x1;39502x1,45797:43116x1;10648x1,45799:43124x1;39502x1,45800:43124x1;39502x1,45803:43124x1;39502x1,45804:43122x1;39501x1,45805:43122x1;39501x1,45806:43124x1;39502x1,45849:43126x5;39502x10;35625x2,45854:43126x5;39502x10;35627x3,46372:43126x1;39354x1,48720:39774x1;39354x1,49084:43126x1;39502x1,49632:43127x1;39502x5,50045:43124x1;39502x1,50077:43126x1;39502x1,50125:43126x1;39502x1",
+	["TradeskillResultMats.Forward.Jewelcrafting"]="20816:2840x2,20817:2841x2,20818:2842x1,20820:5498x1;20817x1;2840x2,20821:774x2;2840x2,20823:1210x2;20817x1;20816x2,20826:2842x2;20817x1;1206x1;1705x1,20827:2842x2,20828:1210x2;2841x2,20830:1705x2;20817x1,20831:3577x1;1206x2;3391x1,20832:1705x3;5498x3;11083x4;2842x4;3827x2,20833:1705x1;3824x1;3575x4,20906:20816x2,20907:2841x4,20909:3575x8;5637x2;20817x2,20950:1206x1;20817x1,20954:3575x8;3391x2,20955:1529x1;3577x2;20816x2,20958:3864x1;20963x1,20959:1529x1;7067x2,20960:6037x1;20963x2,20961:3864x1;3860x2,20963:3860x2,20964:7909x3;8151x4,20966:1529x1;20963x2,20967:3864x1;7070x2;3577x2;20817x1,20969:7910x2;7971x2;6037x4;21752x4;6149x4,21748:1529x4;6037x2;11137x4;20963x4,21752:12359x1,21753:7909x2;3864x2;21752x4;6037x2,21754:7909x1;21752x1,21755:7909x1;20963x3,21756:3577x6;3864x2,21758:7971x4;8151x4,21760:7909x2;6037x4;7075x2;7079x2;8151x4,21763:7910x2;6037x4;7077x2;7081x2;8151x4,21764:7910x1;21752x1,21765:6037x2;10286x2,21766:12799x2;21752x2;6037x4;11178x2;20963x2,21767:12799x1;21752x1,21768:12361x4;6037x2;21752x1,21769:7910x2;7078x2;8152x4;6037x2,21774:12364x2;12799x2;12361x2;12360x2;12359x2,21775:21752x1;12804x1;7076x1,21777:12364x2;12360x2;12359x2;12804x4,21778:12363x1;12808x2;12662x1,21779:21929x1;7078x4;12803x4,21780:12359x8;11382x2;7910x4;12938x2,21784:18335x4;11754x4;12800x2;12360x2;12359x4,21789:11371x4;12360x2;7910x2,21790:12361x1;12808x1;21752x1,21791:12364x2;12803x4;12804x4,21792:12800x2;21752x2;12360x2,21793:12360x4;7076x4;7082x4,21931:20816x2;2840x1,21932:2840x4;20816x2,21933:2841x2;1210x1;20816x1,21934:818x2;2840x2;20816x1,23094:23077x1,23095:23077x1,23096:23077x1,23097:23077x1,23098:21929x1,23099:21929x1,23100:21929x1,23101:21929x1,23103:23079x1,23104:23079x1,23105:23079x1,23106:23079x1,23108:23107x1,23109:23107x1,23110:23107x1,23111:23107x1,23113:23112x1,23114:23112x1,23115:23112x1,23116:23112x1,23118:23117x1,23119:23117x1,23120:23117x1,23121:23117x1,24027:23436x1,24028:23436x1,24029:23436x1,24030:23436x1,24031:23436x1,24032:23436x1,24033:23438x1,24035:23438x1,24036:23436x1,24037:23438x1,24039:23438x1,24047:23440x1,24048:23440x1,24050:23440x1,24051:23440x1,24052:23440x1,24053:23440x1,24054:23441x1,24055:23441x1,24056:23441x1,24057:23441x1,24058:23439x1,24059:23439x1,24060:23439x1,24061:23439x1,24062:23437x1,24065:23437x1,24066:23437x1,24067:23437x1,24074:23445x1;23077x2,24075:23445x1;23112x2,24076:23445x1;23117x2;23079x1,24077:23446x2;31079x1,24078:23446x1;31079x1,24079:23449x2;31079x3;22456x3,24080:23449x2;31079x4;21885x3,24082:23449x2;31079x4;21884x3,24085:23449x2;31079x4;21886x3,24086:23449x2;31079x4;22457x3,24087:23448x2;31079x4,24088:23447x1;31079x5,24089:23447x2;31079x4;21884x4,24092:23448x2;21885x6;21884x4;31079x1,24093:23448x2;21884x6;21885x4;31079x1,24095:23448x2;22456x6;21886x4;31079x1,24097:23448x2;21886x6;22456x4;31079x1,24098:23448x2;22457x8;31079x1,24106:23448x2;31079x3,24110:23449x4;31079x1;23436x1,24114:23447x2;31079x3,24116:23573x2;31079x2;23441x1,24117:23447x2;31079x4;23112x2,24121:23449x2;31079x4;23117x2,24122:23449x20;21886x20;23437x2;31079x5,24123:23448x20;22457x20;23438x2;31079x5,24124:23448x8;23077x2;22452x4,24125:23449x4;23440x2;23112x4,24126:23448x2;23436x2;21884x4,24127:23447x2;23437x2;22457x4,24128:23573x6;23441x2;22456x2,25438:774x1;20816x1,25439:818x1;20816x1,25498:2835x8,25880:2836x8,25881:2838x8,25882:7912x10,25883:12365x10,25890:25868x1,25893:25868x1,25894:25868x1,25895:25868x1,25896:25867x1,25897:25867x1,25898:25867x1,25899:25867x1,25901:25867x1,28290:23112x1,28595:23077x1,29157:3577x4;1705x1;1529x1;3864x1,29158:6037x3;7910x2;3864x2,29159:12800x2;21752x1,29160:12364x2;21752x1,30419:2841x4;20817x1;1206x1,30420:1529x1;20817x1;3575x2,30421:7910x1;21752x1,30422:12800x1;21752x1,30804:2841x2;20817x1;774x3;818x3;1210x2,30825:23447x2;22457x8,31079:24243x4;22452x1,31154:2841x6;20817x1;1705x1,31398:31079x4;23449x2;21885x6;21884x6,31399:31079x4;23448x2;21886x6;22456x6,31860:23112x1,31861:23440x1,31862:23107x1,31863:23441x1,31864:23107x1,31865:23441x1,31866:21929x1,31867:23439x1,31868:23439x1,31869:21929x1,32193:32227x1,32194:32227x1,32195:32227x1,32196:32227x1,32197:32227x1,32198:32227x1,32199:32227x1,32200:32228x1,32201:32228x1,32202:32228x1,32203:32228x1,32204:32229x1,32205:32229x1,32206:32229x1,32207:32229x1,32208:32229x1,32209:32229x1,32210:32229x1,32211:32230x1,32212:32230x1,32213:32230x1,32214:32230x1,32215:32230x1,32216:32230x1,32217:32231x1,32218:32231x1,32219:32231x1,32220:32231x1,32221:32231x1,32222:32231x1,32223:32249x1,32224:32249x1,32225:32249x1,32226:32249x1,32409:25867x1,32410:25868x1,32508:22578x3;24478x10;24479x1,32772:24478x8;23447x2,32774:24479x1;31079x4,32776:23449x12;31079x4;24478x20;24479x3,32833:24478x1;27860x1,32836:24479x1;27860x1,33131:23436x1,33133:23436x1,33134:23436x1,33135:23438x1,33140:23440x1,33143:23440x1,33144:23440x1,33782:23437x1,34220:25868x1,34358:35128x6;23572x9,34359:31079x12;32227x3;32228x3,34360:31079x6;32249x6,34361:35128x4;22451x20;31079x12;34664x5,34362:35128x4;23571x4;31079x12;34664x5,34363:35128x4;21886x20;31079x12;34664x5,35315:23440x1,35316:23439x1,35318:23437x1,35501:25867x1,35503:25868x1,35693:23449x8;32228x2;23440x6,35694:23449x8;32231x2;22452x8,35700:23447x8;32227x2;21884x8,35702:23573x4;32230x2;22456x8,35703:23447x8;32249x2;22457x8,35707:23441x1,35758:32249x1,35759:32249x1,35760:32231x1,35761:32229x1,35945:23117x3;23077x3;23079x3;21929x3;23112x3;23107x3,36766:42225x1,36767:42225x1,37503:32230x1,39900:36917x1,39905:36917x1,39906:36917x1,39907:36917x1,39908:36917x1,39909:36917x1,39910:36917x1,39911:36917x1,39912:36920x1,39914:36920x1,39915:36920x1,39916:36920x1,39917:36920x1,39918:36920x1,39919:36923x1,39920:36923x1,39927:36923x1,39932:36923x1,39933:36926x1,39934:36926x1,39935:36926x1,39936:36926x1,39937:36926x1,39938:36926x1,39939:36926x1,39940:36926x1,39941:36926x1,39942:36926x1,39943:36926x1,39944:36926x1,39945:36926x1,39946:36929x1,39947:36929x1,39948:36929x1,39949:36929x1,39950:36929x1,39951:36929x1,39952:36929x1,39953:36929x1,39954:36929x1,39955:36929x1,39956:36929x1,39957:36929x1,39958:36929x1,39959:36929x1,39960:36929x1,39961:36929x1,39962:36929x1,39963:36929x1,39964:36929x1,39965:36929x1,39966:36929x1,39967:36929x1,39968:36932x1,39974:36932x1,39975:36932x1,39976:36932x1,39977:36932x1,39978:36932x1,39979:36932x1,39980:36932x1,39981:36932x1,39982:36932x1,39983:36932x1,39984:36932x1,39985:36932x1,39986:36932x1,39988:36932x1,39989:36932x1,39990:36932x1,39991:36932x1,39992:36932x1,39996:36918x1,39997:36918x1,39998:36918x1,39999:36918x1,40000:36918x1,40001:36918x1,40002:36918x1,40003:36918x1,40008:36924x1,40009:36924x1,40010:36924x1,40011:36924x1,40012:36921x1,40013:36921x1,40014:36921x1,40015:36921x1,40016:36921x1,40017:36921x1,40022:36927x1,40023:36927x1,40024:36927x1,40025:36927x1,40026:36927x1,40027:36927x1,40028:36927x1,40029:36927x1,40030:36927x1,40031:36927x1,40032:36927x1,40033:36927x1,40034:36927x1,40037:36930x1,40038:36930x1,40039:36930x1,40040:36930x1,40041:36930x1,40043:36930x1,40044:36930x1,40045:36930x1,40046:36930x1,40047:36930x1,40048:36930x1,40049:36930x1,40050:36930x1,40051:36930x1,40052:36930x1,40053:36930x1,40054:36930x1,40055:36930x1,40056:36930x1,40057:36930x1,40058:36930x1,40059:36930x1,40085:36933x1,40086:36933x1,40088:36933x1,40089:36933x1,40090:36933x1,40091:36933x1,40092:36933x1,40094:36933x1,40095:36933x1,40096:36933x1,40098:36933x1,40099:36933x1,40100:36933x1,40101:36933x1,40102:36933x1,40103:36933x1,40104:36933x1,40105:36933x1,40106:36933x1,40111:36919x1,40112:36919x1,40113:36919x1,40114:36919x1,40115:36919x1,40116:36919x1,40117:36919x1,40118:36919x1,40119:36925x1,40120:36925x1,40121:36925x1,40122:36925x1,40123:36922x1,40124:36922x1,40125:36922x1,40126:36922x1,40127:36922x1,40128:36922x1,40129:36928x1,40130:36928x1,40131:36928x1,40132:36928x1,40133:36928x1,40134:36928x1,40135:36928x1,40136:36928x1,40137:36928x1,40138:36928x1,40139:36928x1,40140:36928x1,40141:36928x1,40142:36931x1,40143:36931x1,40144:36931x1,40145:36931x1,40146:36931x1,40147:36931x1,40148:36931x1,40149:36931x1,40150:36931x1,40151:36931x1,40152:36931x1,40153:36931x1,40154:36931x1,40155:36931x1,40156:36931x1,40157:36931x1,40158:36931x1,40159:36931x1,40160:36931x1,40161:36931x1,40162:36931x1,40163:36931x1,40164:36934x1,40165:36934x1,40166:36934x1,40167:36934x1,40168:36934x1,40169:36934x1,40170:36934x1,40171:36934x1,40172:36934x1,40173:36934x1,40174:36934x1,40175:36934x1,40176:36934x1,40177:36934x1,40178:36934x1,40179:36934x1,40180:36934x1,40181:36934x1,40182:36934x1,41285:41266x1,41307:41266x1,41333:41266x1,41335:41266x1,41339:41266x1,41367:36932x1,41375:41266x1,41376:41266x1,41377:41266x1,41378:41266x1,41379:41266x1,41380:41334x1,41381:41334x1,41382:41334x1,41385:41334x1,41389:41334x1,41395:41334x1,41396:41334x1,41397:41334x1,41398:41334x1,41400:41266x1,41401:41334x1,42142:42225x1,42143:42225x1,42144:42225x1,42145:42225x1,42146:42225x1,42148:42225x1,42149:42225x1,42150:42225x1,42151:42225x1,42152:42225x1,42153:42225x1,42154:42225x1,42155:42225x1,42156:42225x1,42157:42225x1,42158:42225x1,42336:37701x2;36917x1,42337:37701x2;36920x1,42338:35624x1;36929x2;36932x2,42339:35624x1;36917x1;36920x2;36923x1,42340:41163x1;36933x1;34052x1,42341:41163x2;36918x2;36921x1,42395:41163x2;36927x2;36930x1,42413:41163x2;36924x2;36933x1,42418:41163x2;36933x2;36918x1,42420:36926x1,42421:36926x1;36932x1,42642:41163x2;42225x4;36860x4;35627x4;43102x1,42643:41163x2;42225x4;35624x4;35625x4;43102x1,42644:41163x2;42225x4;35622x4;35623x4;43102x1,42645:41163x2;42225x4;35623x6;36860x6;43102x1,42646:41163x2;42225x4;35625x6;35624x6;43102x1,42647:41163x2;42225x4;35627x6;35622x6;43102x1,42701:36783x1;34054x1,42702:36784x1;34054x4,43244:37701x2;36929x1,43245:37701x2;36923x1,43246:35624x1;36926x2,43247:35624x1;36932x2,43248:35624x2,43249:35624x1;35627x1,43250:41163x2;35624x2,43251:41163x2;35627x3;36918x1,43252:41163x2;35623x1;36860x2,43253:41163x2;35622x1;36783x4,43482:41163x4;36860x4,43498:41163x4;36860x4,43582:41163x2;35622x3;36860x3;43102x1,44063:41163x2;36930x2;36933x1,44943:43102x1;36923x1;36926x1;36932x1,45054:11754x1,45627:6037x8,45808:41163x2;36927x2,45809:41163x2;36918x1,45812:41163x1;36933x3,45813:41163x2;36924x2,49110:42225x1;34054x5",
+	["TradeskillResultMats.Forward.Leatherworking.Basic"]="-60584:38558x2,-60583:38561x2,-57701:44128x1,-57699:44128x1,-57696:44128x1,-57694:44128x1,-57692:44128x1,-57691:44128x1,-57690:44128x1,-57683:44128x1,2300:2318x8;2320x4,2302:2318x2;2320x1,2303:2318x4;2320x1,2304:2318x1,2307:2318x7;2320x2,2308:2318x10;2321x2,2309:2318x8;2320x5,2310:2318x5;2320x2,2311:2318x8;2320x2;2324x1,2312:4231x1;2318x4;2320x2,2313:2319x4;2320x1,2314:2319x10;4231x6;2321x2,2315:2319x4;2321x2;4340x1,2316:2319x8;2321x1;4340x1,2317:2319x6;2321x1;4340x1,2318:2934x3,2319:2318x4,3719:4234x5;2321x2,4231:783x1;4289x1,4233:4232x1;4289x1,4234:2319x5,4236:4235x1;4289x3,4237:2318x6;2320x1,4239:2318x3;2320x2,4242:4231x1;2318x6;2320x2,4243:4231x3;2318x6;2320x4,4244:4243x1;4231x2;2320x2,4246:2318x6;2320x2,4247:2319x14;2321x4,4248:2319x8;5373x2;2321x1;4340x1,4249:4246x1;4233x1;2321x2;4340x1,4250:2319x8;3383x1;2321x2,4251:4233x1;2319x4;2321x1,4252:2319x12;3390x1;4340x1;2321x2,4253:2319x4;4233x2;3389x2;3182x2;2321x2,4254:4234x6;5637x2;2321x1,4255:4234x9;2605x2;2321x4,4256:4236x2;4234x12;3824x1;2321x2,4257:4236x1;4234x5;2321x1;2605x1;7071x1,4258:4236x2;4234x4;2321x1;7071x1,4259:4236x2;4234x6;2605x1;2321x1,4260:4234x6;4236x2;4291x1,4262:4236x4;5500x1;1529x1;3864x1;2321x1,4264:4234x6;4236x2;4096x2;5633x1;4291x1;7071x1,4265:4234x5;2321x1,4304:4234x6,4455:4461x6;4234x4;2321x2,4456:4461x4;4234x4;2321x2,5081:5082x3;2318x4;2320x1,5739:4234x14;2321x2;7071x1,5780:5784x8;2318x6;2321x1,5781:5784x12;4231x1;2318x8;2321x1,5782:5785x12;4236x1;4234x10;2321x3,5783:5785x16;4236x1;4234x14;4291x1,5957:2318x3;2320x1,5958:2319x8;2997x1;2321x1,5961:2319x12;4340x1;2321x1,5962:4234x12;4305x2;2321x2,5963:4234x10;2321x2;1206x1,5964:4234x8;4236x1;2321x2,5965:4234x14;4305x2;4291x2,5966:4234x4;4236x1;4291x1,6466:6470x4;4231x1;2321x1,6467:6470x5;2321x2,6468:6471x6;6470x4;2321x2,6709:2318x6;4231x1;2320x4;5498x1,7276:2318x2;2320x1,7277:2318x2;2320x3,7278:2318x4;2320x2,7279:2318x3;2320x4,7280:2318x5;2320x5,7281:2318x6;2320x4,7282:2318x10;4231x1;2321x1,7283:7286x12;2319x4;2321x1,7284:7287x6;2319x4;2321x1,7285:2457x1;2319x6;2321x1,7348:2319x8;4233x4;2321x2,7349:2319x8;3356x4;2321x2,7352:2319x6;7067x1;2321x2,7358:2319x10;5373x2;2321x2,7359:2319x12;7067x2;2997x2;2321x2,7371:4234x8;2321x2,7372:4234x8;2321x2,7373:4234x10;2325x1;2321x2,7374:4234x10;3824x1;2321x2,7375:7392x4;4234x10;2321x2,7377:4234x6;7067x2;7070x2;2321x2,7378:4234x16;2325x1;4291x2,7386:7392x6;4234x8;4291x2,7387:4234x10;4305x2;2325x2;7071x1,7390:4234x8;10285x2;4291x2,7391:4234x10;2459x2;4337x2;4291x1,8170:4304x6,8172:8169x1;8150x1,8173:4304x5;4291x1,8174:4234x12;4236x2;4291x2,8175:4304x7;4291x2,8176:4304x5;4291x2,8185:4304x14;8167x28;8343x1,8187:4304x6;8167x8;8343x1,8189:4304x6;8167x12;8343x1,8191:4304x14;8167x24;8343x1,8192:4304x8;4338x6;4291x3,8193:4304x14;4291x4,8197:4304x16;8343x2,8198:4304x8;8167x12;8343x1,8200:4304x10;8151x4;8343x1,8201:4304x8;8151x6;8343x1,8202:4304x10;8152x6;8343x2,8203:4304x12;8154x12;4291x4,8204:4304x6;8154x8;4291x2,8205:4304x10;8154x4;4291x2,8206:4304x14;8154x8;8343x2,8207:4304x12;8154x16;8343x2,8208:4304x10;8154x20;8343x2,8209:4304x12;8154x12;4291x6,8210:4304x10;8153x1;8172x1,8211:4304x12;8153x2;8172x1,8212:4304x16;8153x6;8172x2,8213:4304x14;8153x4;8172x2,8214:4304x10;8153x2;8172x1,8215:4304x16;8153x6;8172x2,8216:4304x14;8152x4;8343x2,8217:4304x12;8172x1;8949x1;4291x4,8218:4304x10;8172x1;8951x1;4291x6,8345:4304x18;8153x12;8172x4;8343x1,8346:4304x20;7079x4;8172x1;8343x4,8347:4304x24;8165x12;8343x4;8172x2,8348:4304x30;7077x8;8172x2;8343x4,8349:4304x25;17056x20;7971x2;8172x4;8343x4,8367:4304x40;8165x30;8343x4;8172x4,15045:8170x20;15412x25;14341x2,15046:8170x20;15412x25;14341x1,15047:8170x40;15414x30;14341x1,15048:8170x28;15415x30;15407x1;14341x1,15049:8170x28;15415x30;12810x2;15407x1;14341x1,15050:8170x25;15416x25;15407x1;14341x2,15051:8170x20;15416x15;15407x1;14341x1,15052:8170x25;15416x25;15407x1;14341x2,15053:8170x8;7078x1;7076x1;14341x1,15054:8170x6;7078x1;7075x1;14341x1,15055:8170x10;7078x1;7076x1;14341x2,15056:8170x16;7082x3;15407x1;14341x1,15057:8170x16;7082x2;14341x1,15058:8170x12;7082x3;14227x2,15059:8170x16;12803x8;14342x2;15407x1;14341x2,15060:8170x16;12803x6;15407x1;14341x1,15061:8170x12;12803x4;14341x1,15062:8170x30;15417x14;15407x1;14341x1,15063:8170x30;15417x8;14341x1,15064:8170x28;15419x12;14341x1,15065:8170x24;15419x14;14341x1,15066:8170x35;17056x40;1529x1;15407x1;14341x1,15067:8170x24;17056x40;1529x2;14341x1,15068:8170x12;7080x1;15407x1;14341x2,15069:8170x6;7080x1;14341x1,15070:8170x6;7080x1;14341x1,15071:8170x4;7080x1;14341x1,15072:8170x8;12803x1;14341x1,15073:8170x4;12803x1;14341x1,15074:8170x6;12803x1;14341x1,15075:8170x10;12803x1;14341x1,15076:8170x6;15408x6;14341x1,15077:8170x4;15408x4;14341x1,15078:8170x6;15408x8;14341x1,15079:8170x8;15408x12;14341x1,15080:8170x8;15408x12;15407x1;14341x1,15081:8170x14;15408x14;15407x1;14341x2,15082:8170x6;15408x8;14341x1,15083:8170x8;2325x1;14341x1,15084:8170x8;2325x1;14341x1,15085:8170x20;15407x2;14256x2;2325x4;14341x2,15086:8170x12;2325x1;14341x1,15087:8170x12;15407x1;2325x3;14341x1,15088:8170x14;2325x2;14341x2,15090:8170x22;12810x4;14047x16;15407x1;14341x2,15091:8170x10;14047x6;14341x1,15092:8170x6;7971x1;14341x1,15093:8170x10;14047x10;14341x1,15094:8170x14;14047x10;14341x1,15095:8170x18;14047x12;12810x2;14341x1,15096:8170x16;12810x4;14047x18;15407x1;14341x2,15138:15410x1;14044x1;14341x1,15407:8171x1;15409x1,15564:8170x5,16982:17012x20;17010x6;17011x2;14341x2,16983:17012x12;17010x3;17011x3;14341x2,16984:15416x18;17010x3;17011x3;14341x2,17721:4234x8;7067x4;4291x1,18238:4304x6;10285x8;4236x4;8343x1,18251:17012x3;14341x2,18258:8170x4;14048x2;18240x1;14341x1,18504:8170x12;12804x12;15407x2;14341x4,18506:8170x12;7082x6;11754x4;15407x2;14341x4,18508:8170x12;18512x8;15407x4;14341x4,18509:8170x25;12607x4;15416x12;15414x12;14341x2,18510:8170x30;18512x5;15407x2;14341x2,18511:12810x10;12753x2;14341x1,18662:4234x2;2321x1,18948:4234x8;4236x2;5498x4;4461x1;5637x4,19044:8170x30;12803x4;15407x2;14341x2,19049:12810x8;12804x6;12803x6;15407x2;14227x2,19052:8170x30;12809x2;7080x4;15407x2;14341x2,19058:12810x8;12803x4;12809x4;15407x2;14341x2,19149:17011x2;17012x2;14227x4,19157:17010x3;17011x2;17012x8;14227x4,19162:17010x4;17012x12;8170x12;14227x4,19163:17010x2;17011x2;17012x2;14227x4,19685:19767x14;15407x5;12803x4;14341x4,19686:19767x10;15407x4;12803x4;14341x3,19687:19767x8;15407x3;12803x4;14341x3,19688:19768x25;15407x3;14341x3,19689:19768x25;15407x3;14341x3,20295:8170x28;15415x36;15407x2;14341x2,20296:8170x20;15412x30;15407x1;14341x2,20380:8170x20;20381x3;12803x3;14341x2,20476:20501x1;20498x20;18512x2,20477:20501x2;20498x30;18512x2;15407x1,20478:20501x3;20498x40;18512x2;15407x2,20479:20500x3;20498x40;7078x2;15407x2,20480:20500x2;20498x30;7078x2;15407x1,20481:20500x1;20498x20;7078x2,20575:2319x8;7286x8;4231x1;2321x2,21278:12810x6;7082x4;14227x2,21887:25649x5,22661:22682x7;12810x16;7080x2;15407x4;14227x4,22662:22682x5;12810x12;7080x2;15407x3;14227x4,22663:22682x4;12810x12;7080x2;15407x2;14227x4,22664:22682x7;15408x24;7080x2;15407x4;14227x4,22665:22682x4;15408x16;7080x2;15407x2;14227x4,22666:22682x5;15408x16;7080x2;15407x3;14227x4,22759:8170x12;19726x2;12803x2;15407x2,22760:12810x6;18512x2;12803x2;15407x2,22761:12810x4;12803x2;15407x1,23793:21887x5,25650:21887x4,25651:23793x3;22452x1,25652:23793x3;22457x1,25653:23793x4;23571x1;22445x6;22448x1,25654:21887x5;25700x1;14341x2,25655:21887x8;25700x1;14341x2,25656:21887x10;25700x3;14341x3,25657:23793x2;25700x3;14341x3,25659:23793x2;25700x2;14341x3,25660:23793x2;25700x3;14341x3,25661:21887x8;25700x1;14341x2,25662:21887x6;25700x3;14341x2,25668:21887x10;14341x3,25669:21887x6;14341x2,25670:21887x10;14341x2,25671:23793x3;14341x3,25673:21887x6;14341x3,25674:21887x9;14341x3,25675:21887x13;14341x3,25676:23793x3;14341x3,25679:21887x2,25680:23793x6;29539x2;22456x8;4342x4;14341x3,25681:23793x6;29539x2;21886x8;2325x4;14341x3,25682:23793x6;29539x2;22452x8;14341x3,25683:23793x6;29539x2;21884x8;2604x4;14341x3,25685:23793x6;25707x6;22456x6;14341x3,25686:23793x10;25707x8;22456x8;14341x3,25687:23793x10;25707x10;22456x10;14341x3,25689:23793x6;25708x40;22452x4;14341x2,25690:23793x6;25708x34;22452x4;14341x2,25691:23793x4;25708x20;22452x4;14341x2,25692:23793x8;25699x12;21885x5;22457x5;14341x2,25693:23793x6;25699x10;21885x4;22457x4;14341x2,25694:23793x4;25699x8;21885x3;22457x3;14341x2,25695:23793x6;25707x4;25699x8;22451x6;14341x2,25696:23793x10;25707x4;25699x8;22451x8;14341x2,25697:23793x6;25707x6;25699x6;22451x4;14341x2,29483:23793x4;21886x4,29485:23793x4;21885x4,29486:23793x4;21884x4,29487:23793x4;22456x4,29488:23793x4;22457x4,29489:23793x6;25700x12;22457x8,29490:23793x4;25700x10;22457x6,29491:23793x4;25700x10;22457x6,29492:23793x6;25699x12;21884x4;21885x4,29493:23793x4;25699x8;21884x3;21885x3,29494:23793x4;25699x8;21884x3;21885x3,29495:23793x6;25708x24;22457x8,29496:23793x4;25708x16;22457x6,29497:23793x4;25708x16;22457x6,29498:23793x6;25707x10;21884x4;21885x4,29499:23793x4;25707x8;21884x3;21885x3,29500:23793x4;25707x6;21884x3;21885x3,29502:23793x6;29539x10;22451x15;22456x15;23572x1,29503:23793x4;29539x8;22451x12;22456x12;23572x1,29504:23793x6;29547x20;22451x18;22457x10;23572x1,29505:23793x6;21886x20;21885x8;23572x1,29506:23793x4;21886x16;22452x12;23572x1,29507:23793x4;29547x12;22452x18;22451x8;23572x1,29508:23793x6;29548x28;21886x12;22457x12;23572x1,29509:23793x4;29547x14;22451x14;21884x10;23572x1,29510:23793x6;29548x28;21884x18;22457x12;23572x1,29511:23793x4;29548x24;21884x14;22457x10;23572x1,29512:23793x4;29548x24;22452x22;22457x4;23572x1,29514:23793x8;29548x32;22452x20;22451x8;23572x1,29528:23793x3;25700x3,29529:23793x6;25708x4,29530:23793x6;29547x4,29531:23793x6;29548x4,29532:23793x6;25707x4,29533:23793x4;29539x2;22451x4,29534:23793x4;25708x8;22452x4,29535:23793x4;29539x4;22451x8;23572x1,29536:23793x4;25708x16;22452x8;23572x1,29540:23793x6;22452x4,30039:23572x2;23793x4;22456x12;14341x2,30040:30183x2;23793x4;22456x10;14341x2;22451x10,30041:23572x2;23793x4;21886x12;14341x2,30042:30183x2;23793x4;21886x10;14341x2;22451x10,30043:23572x2;23793x4;21885x10;29547x6;14341x2,30044:30183x2;23793x4;21885x10;29547x6;14341x2,30045:23572x2;23793x4;22451x10;29547x6;14341x2,30046:30183x2;23793x4;22451x10;29547x10;14341x2,32393:32428x2;22450x1;21886x3;22456x4;25707x2,32394:32428x2;22450x1;21886x2;22456x4;25707x4,32395:32428x1;22450x1;21886x2;22456x2;25707x2,32396:32428x3;22450x1;21886x4;22456x6;25707x3,32397:32428x2;22450x1;21886x3;22456x4;25700x2,32398:32428x2;22450x1;21886x2;22456x4;25700x4,32399:32428x1;22450x1;21886x2;22456x2;25700x2,32400:32428x3;22450x1;21886x4;22456x6;25700x3,32574:23793x4;22451x4;21885x4;29547x12;32428x4,32575:23793x6;22451x6;21885x6;29547x16;32428x2,32577:23793x4;22451x4;22452x4;29547x12;32428x4,32579:23793x6;22451x6;22452x6;29547x16;32428x2,32580:23793x4;22451x10;32428x4,32581:23793x6;22451x12;32428x2,32582:23793x4;22451x6;21886x6;32428x4,32583:23793x6;22451x8;21886x8;32428x2,33122:23793x8;21844x12;22456x12;23572x4,33204:23793x10;21844x16;22452x12;22456x12;23572x2,33568:33567x5,34086:2840x1;2997x1;8170x4;14341x1,34099:21887x24;14341x4;22451x1,34100:21887x20;25719x30;14341x2,34105:23793x8;17056x99;22451x2;23572x1,34106:23793x12;29548x12;22452x4;23572x1,34207:23793x4;22452x3,34330:23793x3,34369:23793x40;25707x24;23571x6;23572x6,34370:23793x30;25707x16;22456x18;23571x8;34664x6,34371:23793x40;25708x24;23571x6;23572x6,34372:23793x30;25708x16;21886x18;23571x8;34664x6,34373:23793x40;29547x24;23571x6;23572x6,34374:23793x30;29547x16;22451x18;23571x8;34664x6,34375:23793x40;29548x24;23571x6;23572x6,34376:23793x30;29548x16;21886x18;23571x8;34664x6,34482:21887x20;25700x4;25707x4;14341x3,34490:23793x15;29547x5;25707x5;29548x5;25708x5;14341x3,38347:38425x8,38371:38425x3;38561x12,38372:38425x4;38558x1,38373:44128x2;38558x2;43102x1,38374:44128x2;38557x2;43102x1,38375:33568x4,38376:38425x4,38399:38425x8,38400:33568x12,38401:33568x12,38402:33568x10,38403:33568x10,38404:33568x8,38405:33568x10,38406:33568x10,38407:33568x10,38408:33568x12,38409:33568x8,38410:33568x12,38411:33568x10,38412:33568x8,38413:33568x10,38414:33568x12,38415:33568x10,38416:33568x12,38417:33568x10,38418:33568x10,38419:33568x10,38420:33568x12,38421:33568x12,38422:33568x8,38424:33568x10,38425:33568x6,38433:33568x12,38434:33568x12,38435:33568x12,38436:33568x12,38437:33568x14,38438:33568x14,38439:33568x14,38440:33568x14,38441:33568x16;37700x4,38590:38558x25;37705x6,38591:38425x6;37703x4,38592:38425x5;37703x5,41238:38425x6;37700x5;37705x5,41264:38425x8;35623x6,42731:38425x12;35623x2,43129:38425x15;35623x1,43130:38425x12;36860x2,43131:38557x40,43132:38425x14;35627x2,43133:38425x10;35627x2,43255:38425x10;35622x2,43256:38561x40,43257:38425x25,43258:38558x30,43260:38425x12;35623x1,43261:38425x12;35622x1,43262:38425x10;35622x1,43263:38425x12;35622x1,43264:38425x8;35622x1,43265:38425x10;35622x1,43266:38425x10;35622x1,43271:38425x12;35622x1,43273:38425x10;35622x1,43433:38425x10;35623x1,43434:38425x12;35623x1,43435:38425x8;35623x1,43436:38425x10;35623x1,43437:38425x10;35623x1,43438:38425x12;35623x1,43439:38425x10;35623x1,43442:38425x10;35623x1,43443:38425x10;35623x1,43444:38425x8;35623x1,43445:38425x12;35623x1,43446:38425x10;35623x1,43447:38425x12;35623x1,43448:38425x12;35623x1,43449:38425x10;35623x1,43450:38425x10;35622x1,43451:38425x10;35622x1,43452:38425x8;35622x1,43453:38425x12;35622x1,43454:38425x10;35622x1,43455:38425x12;35622x1,43456:38425x12;35622x1,43457:38425x10;35622x1,43458:38425x12;35622x6;35623x6;43102x1,43459:38425x10;35622x5;35623x5;43102x1,43461:38425x12;35622x12;43102x1,43469:38425x10;35622x10;43102x1,43481:38425x10;36860x6;35627x6;43102x1,43484:38425x10;36860x5;35627x5;43102x1,43495:38425x12;35625x6;35622x6;43102x1,43502:38425x10;35625x5;35622x5;43102x1,43565:44128x2;38558x40;43102x1,43566:44128x2;36860x6;35627x4;43102x1,43590:38425x10;36860x3;35622x3;38558x8;43102x1,43591:38425x8;36860x2;35622x2;38558x4;43102x1,43592:38425x8;36860x2;35622x2;38558x4;43102x1,43593:38425x10;36860x3;35622x3;38557x8;43102x1,43594:38425x8;36860x2;35622x2;38557x4;43102x1,43595:38425x8;36860x2;35622x2;38557x4;43102x1,44436:38425x4;37705x5,44437:38425x6;37705x4,44438:38557x35,44440:38425x4;37703x5,44441:38425x6;37703x4,44442:38558x35,44443:38425x4;37705x5,44444:38425x6;37705x4,44445:38557x30;37703x2,44446:38425x8,44447:38557x20;38425x2,44448:38558x20;38425x2,44930:38425x10;35623x5;35622x5;43102x1,44931:38425x12;35623x6;35622x6;43102x1,44963:44128x2;35624x4;43102x1,45553:44128x3;38557x20;45087x6,45554:44128x3;38558x20;45087x6,45555:44128x3;35627x4;45087x6,45556:38425x4;44128x3;45087x6,45562:44128x3;38561x20;45087x6,45563:44128x3;38557x20;45087x6,45564:44128x3;35627x2;45087x6,45565:44128x3;38557x20;45087x6,47576:38557x40;35622x8;44128x6;47556x4,47577:38557x40;35622x8;44128x6;47556x4,47579:38558x40;34057x4;44128x6;47556x4,47580:38558x40;34057x4;44128x6;47556x4,47581:38425x20;35627x12;44128x6;47556x4,47582:38425x20;35627x12;44128x6;47556x4,47583:38425x20;35625x12;44128x6;47556x4,47584:38425x20;35625x12;44128x6;47556x4,47595:38557x40;35622x8;35625x8;44128x8;47556x8,47596:38557x40;35622x8;35625x8;44128x8;47556x8,47597:38558x40;35623x8;34055x8;44128x8;47556x8,47598:38558x40;35623x8;34055x8;44128x8;47556x8,47599:38425x24;35627x20;44128x8;47556x8,47600:38425x24;35627x20;44128x8;47556x8,47601:38425x24;35625x20;44128x8;47556x8,47602:38425x24;35625x20;44128x8;47556x8,49633:38425x8;38557x8,49634:38425x8;38561x8,49894:38561x12;44128x5;35625x10;49908x5,49895:38558x12;44128x8;35627x10;49908x5,49896:38557x12;44128x5;35623x10;49908x5,49897:38557x12;44128x8;35624x10;49908x5,49898:38561x20;44128x8;35625x16;49908x8,49899:38558x20;44128x8;35627x16;49908x8,49900:38557x20;44128x8;35623x16;49908x8,49901:38557x20;44128x8;35624x16;49908x8",
+	["TradeskillResultMats.Forward.Leatherworking.Dragonscale"]="29515:23793x8;29548x30;21884x16;22456x16;23572x2,29516:23793x6;29548x24;21884x12;22456x12;23572x1,29517:23793x4;29548x18;21884x8;22456x8,29519:23793x8;29548x30;22457x16;22451x16;23572x2,29520:23793x6;29548x24;22457x12;22451x12;23572x1,29521:23793x4;29548x18;22457x8;22451x8,29971:8170x10;8165x10;8172x2;14341x1,29975:23793x4;15416x8;21884x3;14341x2",
+	["TradeskillResultMats.Forward.Leatherworking.Elemental"]="29525:23793x8;23571x6;23572x2,29526:23793x6;23571x5;23572x1,29527:23793x4;23571x3,29964:8170x10;7081x8;8172x2;14341x1,29973:23793x4;22451x2;22452x2;14341x2",
+	["TradeskillResultMats.Forward.Leatherworking.Tribal"]="29522:23793x8;29547x20;22451x16;23571x3;23572x2,29523:23793x4;29547x12;22451x8;23571x1,29524:23793x6;29547x16;22451x12;23571x2;23572x1,29970:8170x10;17056x5;8153x4;8172x2;14341x1,29974:23793x4;25699x12;21886x3;14341x2",
+	["TradeskillResultMats.Forward.Smelting"]="2840:2770x1,2841:2840x1;3576x1,2842:2775x1,3575:2772x1,3576:2771x1,3577:2776x1,3859:3575x1;3857x1,3860:3858x1,6037:7911x1,11371:11370x8,12359:10620x1,12655:12359x1;11176x3,17771:18562x1;12360x10;17010x1;18567x3,22573:22452x1,22574:21884x1,23445:23424x2,23446:23425x2,23447:23427x2,23448:23445x3;23447x2,23449:23426x2,23573:23446x10,35128:23449x3;23573x1,36913:36912x2,36916:36909x1,37663:41163x3;36860x1;35624x1;35627x1,41163:36910x2",
+	["TradeskillResultMats.Forward.Tailoring.Basic"]="-56039:38426x1,-56034:38426x1,-55777:41595x1;38426x1,-55769:41593x1;38426x1,-55642:41594x1;38426x1,2568:2996x1;2320x1,2569:2996x3;2320x1;2318x1,2570:2996x1;2320x1,2572:2996x3;2320x2;2604x2,2575:2996x2;2320x1;2604x1,2576:2996x1;2320x1;2324x1,2577:2996x2;2320x1;6260x1,2578:2996x4;2318x1;2321x1,2579:2996x3;2321x1;2605x1,2580:2996x2;2320x3,2582:2997x2;2321x2;2605x1,2583:2997x4;2321x2;2318x2,2584:2997x1;2321x1,2585:2997x4;2321x3;4340x1,2587:2997x2;2321x1;4340x1,2996:2589x2,2997:2592x3,4238:2996x3;2320x3,4240:2997x3;2321x1,4241:2997x4;2605x1;2321x1,4245:4305x3;4234x2;2321x3,4305:4306x4,4307:2996x2;2320x1,4308:2996x3;2320x2;2605x1,4309:2996x4;2321x2,4310:2997x3;2321x1,4311:2997x3;2321x2;5498x2,4312:2996x5;2318x2;2321x1,4313:2997x4;2318x2;2321x1;2604x2,4314:2997x3;2321x2,4315:2997x6;2319x2;2321x2,4316:2997x5;2321x4,4317:2997x6;5500x1;2321x3,4318:2997x4;2321x3;3383x1,4319:4305x3;4234x2;6260x2;2321x2,4320:4305x2;2319x4;3182x4;5500x2,4321:4305x3;3182x1;2321x2,4322:4305x3;2321x2;4337x2,4323:4305x4;4291x1;3824x1,4324:4305x5;6260x4,4325:4305x4;4291x1;4337x2,4326:4305x4;3827x1;4291x1,4327:4339x3;4291x2;3829x1;4337x2,4328:4305x4;4337x2;7071x1,4329:4339x4;4234x4;3864x1;7071x1;4291x1,4330:2997x3;2604x2;2321x1,4331:2997x4;5500x1;2321x4;2324x2,4332:4305x1;4341x1;2321x1,4333:4305x2;4340x2;2321x1,4334:4305x3;2324x2;2321x1,4335:4305x4;4342x1;4291x1,4336:4305x5;2325x1;4291x1,4339:4338x4,4343:2996x2;2320x1,4344:2996x1;2320x1,5542:2997x3;2321x2;5498x1,5762:2996x4;2321x1;2604x1,5763:2997x4;2604x1;2321x1,5764:4305x4;4234x3;2321x3;2605x1,5765:4305x5;2325x1;2321x4,5766:4305x2;2321x2;3182x2,5770:4305x4;2321x2;3182x2,6238:2996x3;2320x1,6239:2996x3;2320x1;2604x1,6240:2996x3;2320x1;6260x1,6241:2996x3;2320x1;2324x1,6242:2996x4;2320x2;6260x2,6263:2997x4;2321x2;6260x2,6264:2997x5;2321x3;2604x3,6384:2997x4;6260x2;4340x1;2321x1,6385:2997x4;2605x2;4340x1;2321x1,6786:2996x2;2320x1;6260x1;2324x1,6787:2997x3;2324x4;2321x1,6795:4305x3;2324x2;4291x1,6796:4305x3;2604x2;4291x1,6836:4339x4;4304x2,7026:2996x1;2320x1,7046:4305x4;6260x2;2321x3,7047:4305x3;4234x2;6048x2;2321x2,7048:4305x2;6260x2;2321x1,7049:4305x3;4234x2;929x4;2321x1,7050:4305x3;2321x2,7051:4305x3;7067x1;2321x2,7052:4305x4;7070x1;6260x2;2321x2;7071x1,7053:4305x3;6260x2;2321x2,7054:4339x2;7067x2;7070x2;7068x2;7069x2;4291x2,7055:4305x4;7071x1;2604x2;4291x1,7056:4305x5;2604x2;6371x2;4291x1,7057:4305x5;4291x2,7058:4305x4;2604x2;2321x2,7059:4305x5;6371x2;2604x2;4291x2,7060:4305x6;7072x2;6260x2;4291x2,7061:4305x5;7067x4;4234x4;7071x1;4291x2,7062:4305x4;2604x2;4291x2,7063:4305x8;7068x4;3827x2;2604x4;4291x1,7064:4305x6;7068x2;6371x2;4304x2;2604x4;4291x2,7065:4305x5;2605x2;4291x1,9998:4339x2;4291x3,9999:4339x2;4291x3,10001:4339x3;8343x1,10002:4339x3;10285x2;8343x1,10003:4339x2;8343x2,10004:4339x3;10285x2;8343x1,10007:4339x3;2604x2;8343x1,10008:4339x1;2324x1;8343x1,10009:4339x3;2604x2;8343x1,10018:4339x3;2604x2;8343x2,10019:4339x4;8153x4;10286x2;8343x2,10021:4339x6;8153x6;10286x2;8343x2,10023:4339x5;10285x5;8343x2,10024:4339x3;8343x2,10025:4339x2;10285x8;8343x2,10026:4339x3;8343x2;4304x2,10027:4339x3;8343x2,10028:4339x5;10285x4;8343x2,10029:4339x4;2604x2;8343x3,10030:4339x3;4589x6;8343x2,10031:4339x6;10285x6;8343x3;4304x2,10033:4339x4;2604x2;8343x2,10034:4339x4;8343x2,10035:4339x4;8343x3,10036:4339x5;8343x3,10040:4339x5;8343x3;2324x1,10041:4339x8;8153x4;10286x2;8343x3;6037x1;1529x1,10042:4339x5;7077x2;8343x2,10044:4339x5;8343x3,10045:2996x1;2320x1,10046:2996x2;2318x1;2320x1,10047:2996x4;2321x1,10048:2997x5;2604x3;2321x1,10050:4339x4;4291x2,10051:4339x4;2604x2;8343x2,10052:4339x2;6261x2;8343x1,10053:4339x3;2325x1;8343x1;2324x1,10054:4339x2;4342x2;8343x2,10055:4339x3;10290x1;8343x1,10056:4339x1;6261x1;8343x1,13856:14048x3;14341x1,13857:14048x5;14227x1;14341x1,13858:14048x5;14227x1;14341x1,13860:14048x4;14227x1,13863:14048x5;14341x2,13864:14048x4;8170x2;14341x1,13865:14048x5;14227x2;14341x1,13866:14048x6;14341x2,13867:14048x7;14227x2;8170x4;14341x1,13868:14048x5;7079x2;14341x1,13869:14048x5;6260x2;14341x1,13870:14048x5;6260x2;14341x1,13871:14048x6;6260x2;14341x1,14042:14048x5;7077x2;14341x1,14043:14048x4;7077x2;14341x1,14044:14048x5;7078x1;14341x1,14045:14048x6;7078x1;14341x1,14046:14048x5;8170x2;14341x1,14048:14047x4,14100:14048x4;3577x2,14101:14048x4;3577x2,14103:14048x4;3577x2,14104:14048x6;3577x4,14106:14048x8;14256x3;12662x2;14341x2,14107:14048x5;14256x2;14341x1,14108:14048x2;14256x2;8170x2;14341x1,14111:14048x2;14256x2;14341x1,14112:14048x7;14256x3;12662x2;8170x4;14341x2,14128:14048x8;11176x2;14341x1,14130:14048x6;11176x4;7910x1;14341x1,14132:14048x4;11176x1;14341x1,14134:14048x6;7078x4;7077x4;7068x4;14341x1,14136:14048x10;14256x12;12808x4;7080x4;14341x1,14137:14048x6;14342x4;14341x1,14138:14048x6;14342x4;14341x1,14139:14048x5;14342x5;14341x1,14140:14048x4;14342x6;12800x1;12810x2;14341x2,14141:14048x2;9210x3,14142:14048x2;9210x2,14143:14048x2;9210x2,14144:14048x3;9210x4,14146:14048x10;14342x10;9210x10;13926x6;12364x6;12810x8;14341x2,14152:14048x12;7078x10;7082x10;7076x10;7080x10;14341x2,14153:14048x12;12662x20;14256x40;7078x12;12808x12;14341x2,14154:14048x12;14342x10;12811x4;13926x4;9210x10;14341x2,14155:14048x4;14342x1;14341x1,14156:14048x8;14342x12;14344x2;17012x2;14341x2,14342:14256x2,15802:14048x6;14342x4;7971x2;14341x1,16979:14048x8;17010x6;7078x4;12810x2;14341x2,16980:14048x12;17010x4;17011x4;12810x6;14341x2,17723:4305x5;2605x4;4291x1,18258:14048x2;8170x4;18240x1;14341x1,18263:14342x6;17010x8;7078x2;12810x6;14341x4,18405:14048x16;9210x10;14342x10;7080x12;7078x12;14344x6;14341x6,18407:14048x12;14256x20;12662x6;12808x8;14341x2,18408:14048x12;7078x10;7910x2;14341x2,18409:14048x12;14342x6;13926x2;14341x2,18413:14048x12;12809x4;12360x1;14341x2,18486:14048x6;14342x4;13926x2;14341x2,19047:14048x8;7076x3;12803x3;14227x2,19050:14342x5;7076x5;12803x5;14227x2,19056:14048x6;12810x4;13926x2;12809x2;14227x2,19059:14342x5;12809x2;14227x2,19156:14342x10;17010x2;17011x3;7078x6;14227x4,19165:14342x8;17010x5;17011x3;7078x10;14227x4,19682:14342x3;19726x3;12804x3;14227x2,19683:14342x4;19726x4;12804x4;14227x2,19684:14342x4;19726x4;14227x2,20537:14048x4;20520x6;14256x4;12810x2;14227x2,20538:14048x6;20520x8;14256x6;14227x2,20539:14048x2;20520x6;14256x2;12810x2;14227x2,21154:14048x4;4625x2;2604x2;14341x1,21340:14048x6;8170x4;7972x2;14341x1,21341:14256x12;12810x6;20520x2;14227x4,21342:14256x20;17012x16;7078x4;14227x4,21542:14048x4;4625x2;2604x2;14341x1,21840:21877x5,21841:21840x4;14341x1,21842:21840x3;22445x2,21843:21842x4;21881x2;22446x1,21844:21840x1;21882x8,21845:21842x1;21886x1;21885x1,21849:21840x3;14341x1,21850:21840x3;14341x1,21851:21840x4;21887x2;14341x1,21852:21840x6;14341x1,21853:21840x6;21887x2;14341x1,21854:21840x8;14341x2,21855:21840x8;14341x2,21858:24271x6;22446x4;21881x4,21859:21842x5;21881x2;14341x1,21860:21842x4;21887x6;21881x2;14341x1,21861:21842x6;21881x2;14341x1,21862:21842x6;21881x2;14341x1,21863:21844x5;21887x6;14341x4,21864:21844x6;14341x4,21865:21844x8;14341x4,21866:21840x6;22445x12;14341x2,21867:21840x8;22445x16;14341x2,21868:21840x12;22445x20;14341x2,21872:24272x6;21881x4,21876:21845x8;21881x4,22246:4339x4;11137x4;8343x2,22248:14048x5;16203x2;14341x2,22249:14048x6;14344x4;12810x4;14227x4,22251:14048x5;8831x10;11040x8;14341x2,22252:14048x6;14342x2;13468x1;14227x4,22652:22682x7;14048x8;7080x6;14227x8,22654:22682x5;14048x4;7080x4;14227x4,22655:22682x4;14048x2;7080x2;14227x4,22658:22682x5;14048x4;7080x2;14227x4,22660:19726x1;14048x2;12803x4;14227x4,22756:14048x4;19726x2;12803x2;14227x2,22757:14048x4;14342x2;12803x2;14227x2,22758:14048x2;12803x4;14227x2,24249:21842x4;22452x8,24250:21842x4;22452x4;22456x4,24251:21842x4;21884x8,24252:21842x6;22457x3;22456x3,24253:21842x6;22452x6,24254:21842x6;21886x6,24255:21845x8;22452x16;23572x1,24256:24272x10;21884x16;23572x1,24257:21842x6;22457x14;23572x1,24258:21845x10;22452x12;23572x1,24259:24272x10;22451x14;23572x1,24260:24271x10;22457x12;23572x1,24261:21845x10;23571x5;23572x1,24262:24271x10;23571x5;23572x1,24263:21842x12;23571x8;23572x1,24264:21845x10;23571x5;23572x1,24266:24271x10;23571x5;23572x1,24267:21842x12;23571x8;23572x1,24268:21877x3,24270:21842x6;21887x4,24271:21842x1;22457x1;21884x1,24272:21842x1;22456x1;21884x1,24273:14341x1;22457x5,24274:14341x1;22457x10;23572x1,24275:14341x1;21886x5,24276:14341x1;21886x10;23572x1,30035:23572x2;21845x4;24271x4;14341x2,30036:30183x2;21842x4;21886x10;14341x2;21885x10,30037:23572x2;24272x4;24271x4;14341x2,30038:30183x2;21842x4;21884x15;14341x2,30459:21840x10;21884x5;22456x6;21881x2,30460:21840x6;21887x4;21884x3;22456x4;21881x2,30461:21840x6;21887x4;21884x2;22456x6;21881x2,30831:21842x4;22457x3;21886x3;21881x2,30837:21840x5;21884x5;14341x2,30838:21840x7;21884x7;14341x2,30839:21840x9;21884x9;14341x2,32389:32428x3;22450x1;21886x4;22456x6;21842x2,32390:32428x2;22450x1;21886x3;22456x4;21842x1,32391:32428x2;22450x1;21886x2;22456x4;21842x1,32392:32428x1;22450x1;21886x2;22456x2;21842x1,32420:32428x1;22450x1;21886x2;22456x2;21842x1,32584:21842x3;21845x4;21886x8;32428x4,32585:21842x4;21845x2;21886x6;32428x2,32586:21842x3;24271x4;22457x8;32428x4,32587:21842x4;24271x2;22457x6;32428x2,34085:14048x4;2997x1;2604x2;14341x1,34087:14048x4;2997x1;2605x2;14341x1,34364:24271x12;24272x12;23572x2,34365:21845x20;23572x2,34366:24271x10;24272x10;34664x6,34367:21845x18;21886x12;21885x12;34664x6,38225:21845x4;22794x2,38277:4339x5;2325x2;2604x1;8343x3,38278:4339x4;8343x3;2325x3,41248:41510x4;2604x1,41249:41510x4;6260x1,41250:41510x4;2605x1,41251:41510x4;4341x1,41252:41510x4;2604x1,41253:41510x4;6260x1,41254:41510x4;4341x1,41255:41510x4;2605x1,41509:33470x6,41510:33470x5,41511:41510x2;34054x2,41512:41510x3;38426x1,41513:41510x3;38426x1,41515:41510x4;38426x1,41516:41511x3;37702x4;37701x4;38426x2,41519:41510x5;38426x1,41520:41510x4;38426x1,41521:41510x5;38426x1,41522:41510x3;38426x1,41523:41510x7;38426x4;36783x1,41525:41510x8;38426x4;36783x1,41528:41510x5;38426x4;36783x2,41543:41510x7;38426x1,41544:41510x10;38426x1,41545:41510x9;38426x1,41546:41510x8;38426x1,41548:41510x8;38426x1,41549:41510x10;38426x1,41550:41510x10;38426x1,41551:41510x8;38426x1,41553:41511x5;42253x2;38426x2,41554:41511x5;42253x2;38426x2,41555:41511x4;42253x2;38426x2,41593:41511x1;35627x2,41594:41511x1;35625x2,41595:41511x1;36860x2,41597:41593x4;41595x2;38426x1,41598:41595x4;41594x2;38426x1,41599:41511x6;38426x2,41600:41594x4;41593x4;38426x1,41601:37704x2;42253x2,41602:35625x4;42253x4;43102x1,41603:37702x2;42253x2,41604:36860x4;42253x4;43102x1,41607:41510x7;36783x1,41608:41510x8;36783x1,41609:41511x5;35625x6;35622x4;36784x1;43102x1,41610:41511x5;36860x6;35627x4;36784x1;43102x1,41984:41593x1;41511x6;42253x4;38426x1,41985:41595x1;41511x5;38425x2;42253x4;38426x1,41986:41595x1;41511x4;42253x4;38426x1,42093:41594x1;41511x6;42253x4;38426x1,42095:41594x1;41511x4;42253x4;38426x1,42096:41594x1;41511x4;38425x2;42253x4;38426x1,42100:41594x8;41511x6;38426x1;43102x1,42101:41593x8;41511x6;38426x1;43102x1,42102:41595x8;41511x6;38426x1;43102x1,42103:41594x4;41511x4;38426x1;43102x1,42111:41593x4;41511x4;38426x1;43102x1,42113:41595x4;41511x4;38426x1;43102x1,43583:41511x6;36860x3;35622x3;38426x3;43102x1,43584:41511x4;36860x2;35622x2;38426x2;43102x1,43585:41511x4;36860x2;35622x2;38426x2;43102x1,43969:41511x3;37702x3;37701x3;38426x2,43970:41511x3;37702x4;37701x4;38426x2,43971:41511x4;37702x5;37701x5;38426x2,43972:41511x4;37702x5;37701x5;38426x2,43973:41511x3;37702x4;37701x4;38426x2,43974:41511x3;37702x3;37701x3;38426x2,43975:41511x4;37702x5;37701x5;38426x2,44211:41510x3;38426x1,44554:21840x6;23112x4;22445x4;8343x5,44558:41511x12;36930x4;2604x4;4341x2;42253x4,45557:41595x4;41593x4;45087x6,45558:41594x8;45087x6,45566:41595x4;41593x4;45087x6,45567:41594x8;45087x6,45626:4305x3;3182x6;2321x2,45773:41594x4;36908x6,45810:41511x4;42253x4;35627x4,45811:41511x4;42253x4;35624x4,47585:41595x8;36934x1;36919x1;36925x1;47556x4,47586:41595x8;36934x1;36919x1;36925x1;47556x4,47587:41594x12;47556x4,47588:41594x12;47556x4,47603:41593x8;41595x8;34052x8;47556x8,47604:41593x8;41595x8;34052x8;47556x8,47605:41594x20;36922x2;47556x8,47606:41594x20;36922x2;47556x8,49890:41595x6;41593x6;49908x5,49891:41595x10;41593x10;49908x8,49892:41594x20;49908x8,49893:41594x10;49908x5",
+	["TradeskillResultMats.Forward.Tailoring.Mooncloth"]="21873:21845x4;21881x2;21886x8,21874:21845x8;21881x2;21886x8,21875:21845x14;22457x12;21881x4",
+	["TradeskillResultMats.Forward.Tailoring.Shadoweave"]="21869:24272x4;21885x10;21881x2,21870:24272x8;21885x12;21881x2,21871:24272x14;21885x16;21881x4",
+	["TradeskillResultMats.Forward.Tailoring.Spellfire"]="21846:24271x4;21884x10;21881x2,21847:24271x8;21884x12;21881x4,21848:24271x14;21884x16;21881x4",
+
+	["TradeskillResultMats.Reverse.Alchemy"]="118:858x1,765:2454x1;5997x2;118x1;2455x1;2457x1,785:2455x1;2456x2;3383x1;3384x3;3385x1,1288:3386x1,2447:118x1;3382x1;2456x1;4596x1;2458x1,2449:2454x1;3382x2;2458x2;6662x1;3391x1,2450:858x1;2459x1;3383x2;929x1;3388x2,2452:2457x1;2459x1;6051x1;6372x1;3390x1,2453:6051x1;929x1;3386x1;3388x2;45621x1;3826x1,3164:4596x1,3355:3384x1;3389x1;3390x1;3823x1;3825x1;8951x1,3356:6048x1;6373x1;3391x1;1710x1;3827x1;5633x1,3357:1710x1;3826x1;6052x1,3358:17708x1;3828x1;3829x4;6149x1;9036x1;3928x1;9179x1,3369:6048x1;3824x4,3371:2454x1;5997x1;118x1;3382x1;2455x1;2456x1;4596x1;2457x1;2458x1;5631x1;2459x1;6662x1;5996x1;3383x1;6051x1;6372x1;3384x1;3385x1;45621x1,3372:929x1;3386x1;3388x1;3389x1;6048x1;6373x1;3390x1;3391x1;5634x1;1710x1;3827x1;3823x1;3824x1;6049x1;3825x1;5633x1;3826x1;8949x1;6050x1;17708x1;6052x1;3828x1;8951x1;10592x1;3829x1;6149x1;9061x1;4623x1,3575:9149x4;3577x1,3818:3823x1;3824x4;3828x1;10592x1,3819:6050x1;17708x2;3829x2,3820:5996x1;3385x1;3389x1;5634x1;3827x1;8949x1;6052x1,3821:3825x1;8949x1;6050x1;8951x1;10592x1;6149x1;8956x1;9030x1;4623x1;9155x1;9187x1,3824:13459x1,3858:4623x1,3860:6037x1,4342:9210x1,4402:6049x1,4625:8956x1;9061x1;9149x4;21546x3,5635:5631x2,5637:5633x1,6358:6370x2,6359:6371x2,6370:5996x2;6372x1;5634x2,6371:45621x1;6373x2;6049x1;21546x3,6522:6662x1,7067:9030x1;13458x1,7068:13457x1,7070:13456x1,7076:12803x1;7080x1,7077:7068x1,7078:7076x1,7080:7082x1;12808x1,7082:7078x1,7972:18294x1,8153:9144x1,8831:9036x1;18294x2;9149x4;9144x1;12190x3;9197x3,8836:9154x1;9088x1,8838:3928x1;9172x1;9187x1;9206x1;13443x2;13445x1,8839:9155x1;9179x1;9088x1;3387x2;13443x2,8845:9172x1;9210x2;9224x1;9264x3;3387x1,8846:9206x1;9224x1;9233x2;13442x3;13453x2;20004x1;13510x7,8925:8956x1;9036x1;9030x1;18294x1;3928x1;9144x1;12190x1;9154x1;9155x1;9179x1;9172x1;9197x1;9187x1;9088x1;9206x1;9210x1;9224x1;9233x1;21546x1;9264x1;3387x1;13442x1;13443x1;13445x1;13447x1;13453x1;20002x1;20007x1;13446x1;13452x1;13455x1;13454x1;20008x1;13462x1;13461x1;13457x1;13456x1;13458x1;13459x1;20004x1;13444x1;13513x1;13511x1;13512x1;13510x1;13506x1;34440x1,9149:13503x1,9260:9061x1,9262:9149x1,10286:20008x2;18253x1,10620:13455x1,11176:13461x1,12359:12360x1,12363:12360x1,12803:7076x1,12804:19931x6,12808:7080x1,12938:19931x1,13422:13423x1,13423:13445x2;13455x2;13510x3;13506x7,13463:13447x1;20002x2;20007x1;13454x3;13461x1;13457x1;13456x1;13458x1;13459x1;13444x3;18253x4;28103x1;13511x7;13512x7,13464:20002x1;13446x2;18253x4;28100x1;22825x1,13465:13446x1;13452x2;13454x1;20008x2;13513x3;13512x3;28102x1;22824x1,13466:13447x2;13453x2;20007x2;13452x2;13462x2;20004x2,13467:20008x2;13462x2;13444x2;13513x7;13511x3,13468:19931x1;13513x1;13511x1;13512x1;13510x1,13503:35751x1;35748x1;35750x1;35749x1,18256:18253x1;28103x1;28102x1;28100x1;22823x1;22824x1;22825x1;32062x1;28101x1;28104x1;22826x1;32063x1;32067x1;22827x1;22828x1;22830x1;22829x1;32068x1;22831x1;31679x1;22871x1;22832x1;22834x1;22833x1;31676x1;39671x1;22839x1;22835x1;22838x1;22837x1;22836x1;40068x1;22840x1;40067x1;31677x1;22845x5;22841x5;22842x5;22847x5;22844x5;22846x5;22848x1;22849x1;40070x1;40076x1;40079x1;33208x1;40081x1;40073x1;40072x1;44939x1;40078x1;39666x1;44332x1;40093x1;40213x1;40214x1;40215x1;40216x1;40217x1;40077x1;44325x1;44330x1;44327x1;44329x1;44331x1;44328x1;40109x1;40097x1;8827x1;40211x1;40212x1;40087x1;33447x1;33448x1;22861x1;22851x1;22853x1;22866x1;22854x1;22850x1,19943:19931x1,21884:23571x1;25868x2;22452x1;22841x1;35749x6;32849x2;22457x1,21885:25867x2;23571x1;22451x1;22842x1;32850x2;22456x1,21886:31080x1;22847x1;22844x1;35750x6;32851x2;22452x1,21929:25868x3,22451:23571x1;25868x2;21884x1;35748x6,22452:31080x1;25867x2;23571x1;21885x1;21886x1,22456:22846x1;35751x6;32852x2;21885x1,22457:31080x1;23571x1;22845x1;32839x2;21884x1,22573:22849x3,22574:22833x2,22578:22827x2,22785:28103x1;28102x1;28100x1;22823x1;22824x1;32062x1;28101x1;28104x1;22826x1;32067x1;22829x1;22831x2;22832x1;31676x2,22786:22825x1;32063x1;22832x2;22836x1;33208x7;22853x7;22850x1,22787:22823x1;32062x2;28101x2;22826x2;32063x2;34440x2;22830x2;32068x1;22871x3,22789:28104x1;32067x1;22828x3;22830x1;22831x1;31679x1;22834x1;22838x2;22837x2;22854x7,22790:22827x1;32068x1;22834x3;22833x1;22835x1;22837x1;22840x1;22849x2;22851x7,22791:22829x2;22871x1;22839x1;22838x1;22840x1;22848x1;33208x3;22861x7;22850x1,22792:31679x2;31676x3;22839x2;22835x1;22836x1;31677x2;22866x7,22793:31677x1;22845x3;22841x3;22842x3;22847x3;22844x3;22846x3;22848x1;32839x7;32849x7;32850x7;32851x7;32852x7;22861x3;22851x3;22853x3;22866x3;22854x3;22850x2,22794:13503x2;33208x1;22861x1;22851x1;22853x1;22866x1;22854x1,23077:25868x3,23079:25867x3,23107:25867x3,23112:25867x3,23117:25868x3,23571:13503x5,23782:32839x1;32849x1;32850x1;32851x1;32852x1,25867:13503x1,25868:13503x1,30183:35751x2;35748x2;35750x2;35749x2,33447:43569x10,33448:43570x10,35622:35623x1;36860x1,35623:41266x1;36925x1;35624x1;35622x1,35624:35623x1;35627x1,35625:44322x2;36922x1;36860x1;35627x1,35627:36931x1;36928x1;35624x1;35625x1,36860:41334x1;35625x1;35622x1;36919x1,36901:39671x2;40068x1;40070x1;40079x1;40081x1;40078x4;39666x2;40077x2;44327x1;44329x1;40109x1;-60893x10;44322x20;33447x1;33448x1;46377x3,36903:39666x2;44327x2;44329x2;40211x2;-60893x10;44324x15,36904:40070x1;40073x2;44325x2;44330x2;44324x15,36905:40109x2;40212x2;40087x2;33448x2;46377x7;46379x7;46376x5,36906:40093x2;44328x2;40097x2;33447x2;46378x7;46376x5,36907:40067x2;40081x2;40072x3;44332x1;44325x1;40087x2;-60893x4,36908:44323x1;44322x1;44324x1;47499x4;46377x1;46378x1;46379x1;46376x1,36913:41163x8,36917:41266x1,36918:36919x1,36921:36922x1,36923:41266x1,36924:36925x1,36927:36928x1,36929:41334x1,36930:36931x1,36932:41334x1,36933:36934x3,37701:40213x2;40097x1,37702:40215x2,37703:40216x2,37704:40217x2;44331x1;44328x1;46379x3,37705:40214x2,37921:40068x2;40079x4;44332x2;44331x1;44323x20,39970:44939x4,40195:40076x3;40211x1;40212x1;44323x12;46378x3,40199:40195x1,40411:-60893x4;43569x1;43570x1;47499x1;46377x1;46378x1;46379x1;46376x1,41814:44958x2,44958:8827x3",
+	["TradeskillResultMats.Reverse.Blacksmithing.Armorsmith"]="3860:30069x16;30070x16,7075:30069x2,7081:30070x2,21885:30076x2,22451:30076x2;23563x20,22452:30074x4,22456:23563x20,22457:28484x10;23564x10,23446:30074x8;30076x8,23447:28483x6,23448:23563x4,23449:28483x8;23563x8,23563:23564x1,23564:23565x1,23571:28483x8,23572:28484x10;23564x10,23573:28483x6;23563x6,28483:28484x1,28484:28485x1,30183:28485x2;23565x2,36913:41189x14;41190x13,37701:41189x2;41190x2",
+	["TradeskillResultMats.Reverse.Blacksmithing.Basic"]="774:3488x2;3474x1,818:33791x1;3474x1;3487x2;6731x2;3848x1,1206:3491x1;2870x2;3844x2;12259x1;7944x2,1210:2864x1;3490x2;3491x1;7945x4,1529:3850x2;3844x2;3854x2;7954x5,1705:2870x2;3492x2;3849x2;6043x1;3852x2;3853x3;3846x1;7944x2,2318:7955x1;7166x1;3488x2;6214x2;3489x2,2319:3487x2;29201x1;3848x1;2848x1;2849x1;2850x2;7956x1;3490x2;7957x2;3491x2;7958x2;5541x2;3492x2,2321:3473x2,2459:3490x1,2589:3239x1;2844x2;2845x2;2847x2,2592:3240x1;3241x1,2605:3484x1;3485x1;3842x1;3840x1;3835x1;3836x1,2835:2862x1;3239x1;3470x2,2836:2863x1;3240x1;3478x2,2838:2871x1;3241x1;3486x3,2840:10421x4;2853x2;2852x4;2844x6;2845x6;3469x8;2847x6;7955x10;7166x6;3488x12;3471x8;33791x10;2851x6;3472x8;3473x8;3474x8;6214x12;2857x10;3489x10;2864x12;2854x10;3487x14;6731x16,2841:6350x6;29201x6;3848x6;2866x7;2865x6;2848x6;5540x6;3480x5;2849x7;2850x5;2868x5;7956x8;3490x4;3481x8;7957x12;3491x8;3482x6;2869x10;7958x14;3483x8;5541x10;2870x20;10423x12,2842:3489x2;15869x1;6338x1;3481x2;3482x1;2869x2;3483x1;2870x4;10423x4;3851x4;12611x10,2880:2844x1;2845x1;2847x1;7955x2;7166x1;3488x2;6214x2;3489x2;3487x2;3848x4;2848x4;2849x4;2850x4,3391:3492x1,3466:5540x1;7956x1;3490x1;7957x2;3491x1;7958x1;5541x1;3492x2;3851x2;3849x2;3852x2;3850x2;12259x2;3853x2;3855x2,3470:7955x1;7166x1;3488x2;3471x2;33791x2;3472x2;3473x3;3489x2;2864x2;2854x3;6350x6;15869x1;6338x2;29201x2;6731x3;3848x2,3478:5540x2;3480x1;2868x2;3490x2;3481x2;3491x2;3482x2;2869x2;3483x2;5541x2;3484x2;3492x2;11128x2;3485x2;6042x4;10423x2;6043x2,3486:15870x1;3842x1;3851x1;7914x4;7913x2;3840x1;3849x1;3852x2;3843x1;3841x1;3850x2;3844x4;7916x2;3853x2;7917x3;6040x2;3855x2;3846x2;3837x2;6041x2;3845x4;11144x1;29202x2;3847x4;7963x3;9366x4,3575:3484x6;3492x6;7071x1;3485x4;6042x6;3842x8;3851x8;7914x20;7913x8;3840x7;3849x6;3835x6;6043x4;3852x10;3843x10;3836x12;7915x10;3850x8;3844x20;7916x12;7917x14;3855x14,3577:15870x1;11128x1;3852x4;3843x2;3841x2;3855x4;3837x2;12260x4;3845x2;3847x4;9060x1;9366x4;12633x6;12610x6,3823:7961x2,3824:3856x2,3829:17704x1;3854x2,3859:3841x6;12259x10;3853x8;6040x5;3846x8;17704x10;3837x8;12260x10;6041x8;3845x12;29202x5;3854x12;3847x10;3856x10;7963x16;9366x10;7922x14,3860:9060x5;7919x6;7918x8;7921x10;7920x12;7941x12;7924x8;7967x4;7927x10;7926x12;7942x16;7928x12;7943x14;7930x16;7931x10;7945x16;7933x14;7932x14;7969x4;7944x14;7934x14;7946x18;7947x12;7938x10;7929x12;7935x16;7954x24;7939x12;7936x14;7937x16;7961x28;7959x28;7960x30,3864:3836x1;3846x1;3856x2;7941x2;7922x1;7938x3;7954x5,4234:3851x2;3849x3;3852x2;3850x3;12259x1;3853x3;3855x2;17704x2;12260x2;6041x4;29202x1;7918x6;7941x4,4255:3844x1,4304:7942x4;7928x6;7943x2;7945x2;7933x4;7932x4;7946x4;7947x2;7954x4;7936x4;7961x2;7959x6;7960x6,4306:7965x1,4338:7919x4;7927x6;7931x6;7944x2,5498:5540x2;3485x2,5500:5541x1;2870x2,5635:7913x4;7915x2,5637:7915x2;7916x4;7917x2,5966:7938x1,6037:15871x1;11144x1;9060x1;7967x2;7927x1;7926x1;7928x1;7943x4;7947x6;19051x6;20550x10;20549x6;20551x8;19057x10;12633x6;12612x2;7938x8;7935x6;7954x6;7939x12;7936x2;7937x2;7961x8;7959x10;7960x16,7067:12259x1;18262x2;7929x1,7068:12260x2,7069:17704x2;29202x2,7070:17704x2,7075:7946x2;7954x4,7076:12645x2;19043x3;22198x4;12639x10;22196x10;22385x10;12618x4;12620x6;12796x10;22197x2;19048x6;12794x6,7077:12416x2;11608x4;11606x2;12415x2;11607x4;11605x1;12777x4;11604x8;12418x4;12419x4;12792x4;12417x4;12420x4;7935x1,7078:12777x4;12631x2;17193x25,7080:12625x2;12632x4;22671x2;22669x4;22670x2;12618x4;12619x6;12797x4,7081:7961x6;7960x4,7909:7942x2;7944x1;7934x1;7938x3;7936x1;7961x6,7910:7947x2;12415x1;12774x4;12410x1;12628x4;12631x4;12792x4;12427x1;19690x2;19691x1;12783x6;12613x1;12614x1;7939x2;7960x6,7912:7966x4;7964x1;7965x1,7966:15871x1;7941x1;7922x1;7967x4;7927x1;7926x1;7942x1;7943x1;7945x1;7969x3;7944x1;7946x1;7947x1;7938x2;7935x1;7954x4;7939x2;7936x1;7937x1;7961x4;7959x6;7960x8,7971:7945x1;7939x2,7972:7959x10,8153:12624x4,8170:12424x6;12428x6;12774x4;12773x4;12409x8;12776x4;12775x6;12782x4;12792x4;29203x1,11371:11608x18;11606x10;11607x26;11605x6;11604x20;17014x4;16989x6;19166x4;19167x6;19168x6;20039x6;19164x4;19148x4;17013x16;19170x8;16988x16;19169x12;22384x10;17016x18;17015x16;17193x20,11382:19166x1;19164x2;17016x2;17015x2;17193x10,11754:20551x1,12359:12405x16;12406x8;12408x8;12416x10;12424x10;12428x12;12624x40;12425x12;12415x18;12645x4;12774x30;12773x10;12409x12;12410x12;12776x20;12775x12;12628x40;12418x18;12625x20;12631x20;19051x8;19043x12;12419x14;12782x40;12792x30;12632x20;12426x18;12427x18;12417x18;22671x12;22669x16;22670x12;12640x80;12798x40;19690x20;19692x12;19691x16;20550x20;20549x12;20551x16;19693x20;19694x18;19695x16;12796x50;12636x40;12633x20;29203x6;12422x20;12429x24;12420x20;12613x40;12611x20;12612x30;12614x40;12610x20;12414x12,12360:15872x1;16206x3;12781x2;12625x4;12782x2;19166x12;19167x16;19168x10;19170x12;22671x2;22669x2;22670x2;12641x30;12640x12;19169x10;22384x15;22383x12;12639x15;22385x12;12798x12;12790x15;12784x20;12618x8;12620x6;12619x10;12797x18;19057x2;12796x15;12783x10;19048x4;22762x2;12613x2;12611x2;12612x2;12614x2;12610x2;17193x50,12361:12405x1;12774x4;12628x4;12781x2;12782x2;12632x4;12640x10;12639x4;12619x2;12797x8,12364:12624x1;12776x2;12781x1;12625x2;12641x6;19169x4;22196x4;12798x8;12618x2;12619x1;12636x2;12794x8;12612x1,12365:12644x4;12404x1;12643x1;18262x3,12644:15872x1;16206x1;12645x4;12774x2;12773x2;12777x2;12775x6;12782x2;12798x2;12790x2;12784x2;12797x2;12783x4,12655:12624x2;12774x4;12777x10;12776x6;12781x6;12631x6;12632x4;12641x30;22198x8;12639x20;22196x12;22385x20;12618x24;12620x16;12619x20;12783x10;22197x4;12636x4;22764x6;22762x6;22763x8;12794x20;12633x4;29203x2,12662:12628x10;12782x16,12753:22384x2,12799:12773x2;12781x2;12639x4;12790x4;19693x2;19694x2;19695x1;12620x2;12783x6;12636x6;12794x8,12800:12777x2;19170x4;12641x6;12640x4;22191x4;12790x8;12618x2;12620x1;12797x8;12783x6;12633x2,12803:12624x4;19043x3;19048x6;22764x2;22762x2;22763x2,12804:12776x4;12781x4,12808:12782x8;22384x20;12798x10,12809:19168x12;22191x10;12796x4,12810:22194x8;22191x12;22383x4;12798x4;12790x8;12784x6;19692x4;17016x2;17015x2;20549x2;12797x4;12796x6;12783x2;22195x4;12794x4,12811:19051x1;12790x1;19057x1,13510:22385x2,13512:22194x1;22383x2,14047:12643x1,15417:22384x10,17010:17014x2;16989x3;19166x6;19167x2;19168x6;20039x3;19164x5;19148x2;17013x4;19170x7;16988x4;19169x5;17015x12;17193x10,17011:17014x2;16989x3;19166x3;19167x5;19168x6;20039x3;19164x3;19148x4;17013x6;19170x4;16988x5;19169x8;17016x12;17193x10,17012:20039x4;19164x4,17203:17193x8,19726:22762x2;22763x1,19774:19690x10;19692x6;19691x8;19693x14;19694x12;19695x10,20520:22384x20;20550x10;20549x6;20551x8,20725:22383x2,21877:28420x1;28421x2,21884:23506x2;23508x2;23507x2;29204x2;23515x2;23516x3;23514x4;23530x4;23513x4;23520x6;23521x10;33173x2;34378x12;34377x10;23522x10;32571x6;32573x8;31369x12;31371x12;31370x12;30032x10;30031x12,21885:23515x3;23516x5;23514x4;23524x2;23523x4;23539x15;23534x16;23513x6;23525x3;34379x15;30034x10;30033x12;31369x12;31371x12;31370x12,21886:23538x20;23536x18;34379x15;34380x20;23527x6;32403x2;32401x3;32404x4;32402x2;31364x12;31368x12;31367x12,21887:23504x2;23508x2,22202:22194x24;22198x24;22191x36;22196x40;22197x14;22195x14,22203:22194x8;22198x8;22191x15;22196x18,22445:23510x8;23511x12;23509x20;23512x24,22449:23510x2;23511x2;23509x4;23512x4;23526x2,22450:32403x1;32401x1;32404x1;32402x1,22451:29204x2;23534x16;34378x12;23526x4;32568x6;32570x8,22452:23506x2;23508x3;23507x4;23530x4;23532x15;23535x22;23527x4;30034x5,22456:23537x15;34378x12;34377x10;32403x2;32401x4;32404x6;32402x4;31364x12;31368x12;31367x12,22457:23524x2;23523x4;23535x12;23525x3,22573:23528x1;23529x2,22682:22671x4;22669x7;22670x5,22824:23520x2;23521x4;23522x4,22831:23526x4,23445:25843x6;23528x1;28420x1;23493x4;23482x4;23484x4;23491x5;23497x9;23494x6;23498x10;23487x6;23488x8;23490x9;23499x12;23489x10;23515x6;23516x12;23514x8;23513x16;23520x8;23521x10;33173x12;23522x12,23446:23559x1;23502x8;23503x8;23504x7;23506x6;23508x8;23505x12;23575x1;23507x12;23529x1;28421x1;25844x10;32403x4;32401x8;32404x12;32402x4,23447:25845x4;23554x10;23556x10;23576x1,23448:29204x6;23517x6;23518x8;23530x4;23537x6;23555x10;23542x10;23546x10;23531x10;23540x10;23543x10;32854x12;23544x10;23533x10;23519x8;23526x6;32568x14;32570x18;31364x8;31368x8;31367x8,23449:33185x1;25521x1;23524x3;23523x6;23555x10;23554x10;23542x10;23546x10;23540x10;23543x10;32854x16;23556x10;23541x20;23544x10;23525x4;23520x3;23521x4;33173x8;34377x20;34379x20;23522x6;32571x14;32573x18;31369x8;31371x8;31370x8,23571:23539x2;23555x8;23554x8;23542x8;23546x8;23531x3;23540x6;23543x8;23532x2;32854x6;23556x8;23541x6;23536x3;23544x8;23533x5;34380x6,23572:23537x1;23539x1;23538x1;23555x2;23554x2;23542x2;23546x2;23531x1;23540x2;23543x2;23532x1;32854x2;23556x4;23535x1;23541x2;23536x1;23544x2;23533x1;23534x1;34377x6;34379x6;30033x2;31369x1;31371x1;31370x1;30031x2;31364x1;31368x1;31367x1,23573:33185x2;23510x2;23511x3;23509x4;23539x6;23538x6;23554x4;23532x10;23556x4;23535x8;23541x2;23536x8;23534x8;23512x4;34377x4;34379x4;23527x4;30034x5;30033x4;32571x2;32573x2;30032x5;30031x4;32568x2;32570x2,23793:29204x1,27503:33173x2,30183:30034x2;30032x2,32428:32571x4;32573x2;32403x1;32401x2;32404x3;32402x2;32568x4;32570x2,34054:45085x6,34664:34378x6;34380x6,35128:34378x10;34380x8,35622:41611x1;43587x2;43588x2;42727x1;42729x1;41356x1;41351x1;41352x1;43586x3;41346x1;49906x6,35623:42723x1;41354x1;42726x1;41347x1;49902x20,35624:-55628x1;41611x1;41357x1;41345x1;42725x1;41353x1;49907x12;49904x20;49905x12,35625:47591x8;47592x8;47574x12;47575x12;47593x20;47594x20,35627:-55641x1;41611x1;42730x1;41348x1;42728x1;41350x1;44936x4;49903x20,36860:41355x1;43587x2;43588x2;42724x1;41349x1;43586x3;41344x1;49906x6,36913:41181x4;40670x4;41117x4;43860x5;41126x5;41182x6;40669x5;40674x5;-55628x4;-55641x4;43864x8;41127x8;41183x4;40671x8;40672x5;41128x12;43865x12;41184x12;40673x12;41245x7;42443x15;41185x15;41113x14;43871x15;41116x13;41129x14;43870x14;41611x4;41114x14;42723x12;41354x12;41355x12;42500x2;41976x2;41745x2;43587x12;43588x12;41357x12;42724x12;42727x12;42729x12;42730x12;41356x12;41349x12;41351x12;41352x12;41348x12;43586x16;41345x14;41344x14;42725x14;42726x14;42728x14;41346x14;41353x14;41347x14;41350x14;43853x4;41388x4;41394x4;41386x4;41391x4;41387x4;41392x4;41383x6;41257x8;41384x6;42435x6;42508x4;47570x20;47571x20,36916:43854x4;39087x4;39088x4;41974x4;39083x4;40668x4;39084x5;39086x5;41975x5;39085x6;40942x7;40956x8;40957x8;40958x8;40959x8;41240x8;40949x7;41239x8;41242x10;40951x8;40950x7;41241x7;41181x12;40670x6;41117x6;41243x10;40952x12;43860x6;41126x5;41182x8;40669x6;40674x5;40953x12;40943x12;43864x3;41127x3;41183x12;40671x3;40672x6;40955x8;40954x12,36925:47591x2;47592x2,37663:41388x4;41394x3;41386x4;41391x3;41387x4;41392x3;41383x6;41257x8;41384x6;42435x6;42508x3;45085x6;45559x5;45550x5;45551x5;45552x5;45560x5;45561x5;47591x12;47592x12;47570x8;47571x8;47574x8;47575x8;47593x10;47594x10;47589x10;47590x10;47572x8;47573x8;49907x8;49906x8;49903x12;49904x12;49905x8;49902x12,37700:41245x2,37701:40674x1;40672x1;40673x1;41185x2,37702:41181x2;41182x2;43871x2,37703:41183x1;41184x2,37705:40956x2;40957x2;40958x2;40959x2;41126x1;42443x2;41129x1;43870x1,41163:42500x1;41976x1;41745x1;43853x1;44936x4,41245:47589x4;47590x4,41355:47572x1;47573x1,43102:43587x1;43588x1;43586x1;41388x1;41394x1;41386x1;41391x1;41387x1;41392x1;41383x2;41257x2;41384x2;42435x2;42508x1;45085x2,45087:45559x6;45550x6;45551x6;45552x6;45560x6;45561x6,47556:47591x8;47592x8;47570x4;47571x4;47574x4;47575x4;47593x8;47594x8;47589x8;47590x8;47572x4;47573x4,49908:49907x5;49906x5;49903x8;49904x8;49905x5;49902x8",
+	["TradeskillResultMats.Reverse.Blacksmithing.Weaponsmith.Axesmith"]="21885:30087x3,22451:30088x6;30087x3;28434x12,22452:28434x12,22456:28431x20,22457:28435x10,23446:30088x10;30087x8,23447:28434x22,23448:28431x12;28432x6,23571:28434x4;28431x5,23572:28432x8;28435x8,23573:28431x2,28431:28432x1,28432:28433x1,28434:28435x1,28435:28436x1,30183:28436x5;28433x5",
+	["TradeskillResultMats.Reverse.Blacksmithing.Weaponsmith.Basic"]="3860:30071x12;30073x12;30072x12,7075:30071x4,7077:30073x4,7081:30072x4,36913:41186x16;41187x14;41188x20,37702:41186x1;41187x1;41188x2",
+	["TradeskillResultMats.Reverse.Blacksmithing.Weaponsmith.Hammersmith"]="21884:30089x6;28437x20,21885:28440x20,22451:28440x20,22452:30093x6;28437x20,22457:28441x10,23446:30093x12;30089x8,23447:28437x12,23449:28437x8;28440x12,23571:28438x2,23572:28441x8;28438x8,23573:28440x6,28437:28438x1,28438:28439x1,28440:28441x1,28441:28442x1,30183:28439x5;28442x5",
+	["TradeskillResultMats.Reverse.Blacksmithing.Weaponsmith.Swordsmith"]="22451:30077x6;28426x10,22452:30086x6,22456:28425x20,22457:28425x20,23446:30086x10;30077x6,23448:28425x14,23449:28428x14,23571:28428x10;28429x2,23572:28426x8;28429x8,23573:28428x6,28425:28426x1,28426:28427x1,28428:28429x1,28429:28430x1,30183:28427x5;28430x5",
+	["TradeskillResultMats.Reverse.Cooking"]="159:5525x1;7676x1;10841x1;12212x1;13931x1;13933x1,723:724x1,729:733x1,730:733x1,731:733x1,769:2681x1,785:33924x3,1015:1017x2;12209x1,1080:1082x1,1081:1082x1,1179:46691x1;33924x4;17198x1;5526x1,1468:3663x2,2251:3666x2,2452:7676x1,2593:33924x1,2594:34832x1,2596:34832x1;12214x1,2672:2679x1;2680x1,2673:2684x1,2674:2683x1,2675:2682x1,2677:2687x1;2685x2,2678:30816x1;33924x4,2886:2888x1,2924:3662x1,3172:3220x1,3173:6890x1;3220x1,3174:3220x1,3404:4457x1,3667:3664x1;20074x2,3685:3665x1,3712:3729x1,3730:3726x1,3731:3727x1;3728x2,3821:10841x1,4402:12217x1,4603:6887x1,4655:6038x1,5051:5478x1,5465:5472x1,5466:5473x1,5467:5474x1,5468:5476x1,5469:5477x1,5470:5479x1,5471:5480x1,5503:5525x1;5526x1,5504:5527x1,6289:4592x1,6291:6290x1,6303:787x1,6308:4593x1,6317:6316x1,6361:5095x1,6362:4594x1,6522:6657x1,6889:17197x1;6888x1;33924x8;17198x1,7974:16766x2;33004x1,8150:21023x1,8365:8364x1,9061:21023x1,12037:12213x1;12214x1;12217x1,12184:12210x1,12202:12212x1,12203:13851x1,12204:12215x2,12205:17222x2,12206:12216x1,12207:12218x1,12208:18045x1,12223:12224x1,12808:43492x1,13754:13927x1,13755:13928x1,13756:13929x1,13757:33866x1,13758:13930x1,13759:13931x1,13760:13932x1,13888:13933x1,13889:13935x1,13893:13934x1,17194:17197x1;17198x1;34411x1,17196:17198x1;34411x1,18255:18254x1,20424:20452x1,21024:21023x1,21071:21072x1,21153:21217x1,22577:43491x1,22644:22645x1,23676:24105x1,24477:30155x2,27422:27661x1;33048x1,27425:27662x1,27429:27663x1,27435:27664x1,27437:27665x1,27438:27666x1,27439:27667x1,27515:33052x1,27516:33053x1,27668:27635x1,27669:27636x1,27671:27651x1;33874x1,27674:27655x1,27676:27656x1,27677:27657x1,27678:33866x1;27658x1,27681:27659x1,27682:33872x1;27660x1,30816:44837x1;44837x1,30817:46691x1;30816x1;33924x8;43490x2,31670:31672x1,31671:31673x1,33823:33867x1,33824:33825x1,34412:34411x1,34736:43488x1;34748x1;34753x1;34754x2;43005x1;43478x2,35562:35563x1;35565x1,35948:39520x1,35949:39520x2,36782:43491x1;43268x2,41800:43478x2,41801:42998x1,41802:42942x1;34769x1,41803:34759x1;43478x2,41805:45932x3,41806:34762x1;34766x1;43015x2,41807:42999x1;43000x1,41808:34760x1;42996x3,41809:34763x1;34767x1;43480x2;43015x2,41810:43492x1;34765x1;42993x1,41812:34761x1,41813:34764x1;34768x1;43480x2;43015x2,43007:44953x1;42999x1;42997x1;43004x1;42998x1;43000x1;34767x1;42995x1;34769x1;34754x1;34758x1;34766x1;42994x1;42996x1;43005x1;34756x1;34768x1;42993x1;34755x1;43001x1;34757x1;43478x1;43480x1;43015x1,43009:34749x1;34753x1;34755x2;43001x1,43010:34750x1;34753x1;42994x1;34756x2,43011:34751x1;44953x2;42997x1;34757x1,43012:34752x1;42995x1;34758x2;42994x1;43480x2,43013:34753x2;43004x2;34747x1,43501:43490x1,44834:44838x1;44838x1,44835:44837x1;44837x1;44839x1;44839x1;44838x1;44838x1,44853:44836x1;44836x1;44840x1;44840x1;44839x1;44839x1;44838x2;44838x2,44854:44840x1,44855:44839x1,46784:44836x1,46793:44840x1,46796:44836x1,46797:44839x1",
+	["TradeskillResultMats.Reverse.Enchanting"]="2772:-13612x3,3356:-13617x3,3371:20744x1,3372:20745x1;20746x1,3819:-21931x2,3829:-13933x1,4470:11287x1;11288x1,4625:20750x2;20749x3,5500:11130x1,5637:-13653x2,6037:-13841x3,6048:-13522x1,6217:6218x1,6218:6339x1,6338:6339x1,6339:11130x1,6370:-13620x3,6371:-7861x1,7067:-13655x1,7068:-13657x1,7075:-20014x1,7076:-23799x4,7077:-20014x1,7078:11811x3;-13898x1;-25081x4;-25078x4,7079:-20014x1,7080:-20029x1;-23801x2;-25074x4;-22750x4,7081:-20014x1,7082:-20029x1;-27837x4;-23800x4,7392:-13698x3,7909:-13890x1,7971:11145x1,7972:-20014x1,8153:-13948x2;-20023x2,8170:12810x1,8831:20747x2;20748x3,8838:-13868x3,8925:20747x1;20750x1,9224:-13915x1,10938:6218x1;-7428x1;11287x1;-7443x1;-7426x1;-7454x2;-7766x2;-7748x2;-7776x1,10939:11288x1;-7779x1;-7776x1;-7771x1;-7786x2;-7788x1;6339x3;-7793x3,10940:6218x1;-7418x1;-7428x1;-7420x1;-7426x2;20744x2;-7454x1;-7457x3;-7748x2;-7779x2;-7782x5;-7771x3;-7786x4;-7788x2;6339x6;-7745x4;-13378x2;-13380x6;-13421x6;-13464x1;-7857x4;-7867x6;-7863x8;-13485x4;-13538x2,10978:-7788x1;-7745x1;-13421x1;-13464x1,10998:-13378x1;-13380x1;-13419x1;-13464x1;-7859x2;-7857x1;-7867x2;-7861x1;-13485x2;-13607x2,11082:-13522x1;-13538x1;-13607x1;11130x2;-13622x2;-13626x1,11083:-13501x2;-13536x2;-13503x2;-13529x3;-13620x1;-13617x1;-13612x1;20745x3;11130x2;-13626x1;11289x1;-13635x3;-13631x1;-13637x1;-13640x3;-13644x4;-13646x2;-13648x6,11084:-13538x1;-13503x1;-13529x1;-13626x1,11128:11130x1,11130:11145x1,11134:11289x1;-13631x1;-13637x1;-13642x1;-13646x1;-13657x1;-13653x1;-13655x1;-13687x2,11135:11290x1;-13659x1;-13663x1;-13687x1;-21931x3;-13689x2;-13693x2;11145x2;-13700x2,11137:11290x1;-13661x1;-13659x1;-21931x3;-13689x2;20746x3;11145x2;-13695x4;-13700x2;-13698x1;-13746x3;-13815x1;-13817x5;-13836x5;-13841x3;-13846x1;-13858x6;-63746x4;-13868x3;-13887x3,11138:-13635x1;-13653x1;-13655x1,11139:-21931x1;-13689x1;-13693x1;-13695x1;-13700x1,11144:11145x1,11145:16207x1,11174:-13794x1;-13822x2;-13815x1;-13846x3;-63746x1;-13890x1;-13882x2;-13887x2;-13917x2,11175:-13917x1;-13905x1;-13935x2;-13931x1;-13939x1;-13941x2;-13943x2,11176:-13905x2;-13915x2;-13931x2;-13937x2;-13939x2;-13945x5;-13941x3;12655x3;20747x3;-13947x3;-20020x5;-20017x5;-20009x4,11177:-13890x1;-13915x1;-13898x4,11178:-13933x1;-13937x2;-13941x1;-13943x2;-13948x2;-13947x2,11291:11289x1;11290x1,12359:12655x1,12803:-25082x4;-20032x4,12808:-20033x4;-25073x6;-20032x4,12811:-25079x1;-20034x2,13444:-27948x4,13446:-27948x4;-27957x4,13467:-20029x1,13926:16207x1;-22749x2,14343:11811x3;-20026x2;-20029x4,14344:16207x2;-27837x8;-23800x4;-23799x4;-20030x4;-20033x4;20748x2;20749x2;22461x6;-20036x2;-20035x2;-23802x2;-20025x2;-25078x10;-25074x10;-25079x8;-25073x10;-20034x4;-22750x4;-20032x4;-23804x6;-23803x6;-22749x4;-20031x2;-27957x2,16202:12810x1;-20008x3;-20009x3;-20012x2;-23801x4;-20023x2;-20013x4;-23802x4,16203:-20024x2;-20016x1;16207x4;-20010x2;22461x4;-20036x4;-20035x4;-22750x4;-23804x5;-23803x4;-22749x6;-20031x4,16204:-20012x3;20750x3;-20016x4;-20015x8;16207x10;-23801x4;-20028x8;-20030x10;-20010x6;-20013x4;-23802x4;-20011x10;-20025x6;-23804x20;-23803x12,16206:16207x1,16207:22461x1,17034:20744x1;20745x2,17035:20746x2,18256:20748x1;20749x1;22521x1;22522x1,20725:22448x1,21884:-27962x4;-27917x6;-27981x6,21885:-27962x4;-46578x2;-34010x8;-28004x2;-27917x6;-27982x6,21886:-25072x8;-27911x4;-33999x6;-34010x8,22445:-34002x6;-33991x2;-27948x6;-27899x6;-33993x4;22521x3;-34004x4;-27961x8;-33996x8;-27944x6;-27905x6;-27957x8;-27950x12;-27906x10;-34003x6;-34009x15;22522x3;-27951x8;-33995x12;-27946x12;-27967x6;-27960x4;-33992x10;-42620x8;-27971x40;-27914x20;-27972x20;-27977x20;-33994x2;-27920x6;-28003x20;-46594x8;-27926x5;22463x6;-42974x30;-27984x40,22446:-25086x3;-25081x3;-25082x3;-25083x3;-25084x2;-25080x3;-25072x2;-34004x1;-33990x2;-27911x4;-34003x2;-27945x4;-27962x4;-27913x8;-27951x8;-33995x1;-27946x4;-27968x10;-27967x6;-27960x4;-33992x4;-42620x4;22462x8;-27914x10;-33999x6;-27975x8;-27972x5;-27977x6;-33997x6;-33994x8;-27924x2;-28003x10;-46594x4;-27926x3;-27981x8;22463x6;-47051x8;-42974x6;-27984x8;-27982x8,22447:-33991x2;-34001x3;-33993x1;-27905x6;-44383x4,22448:-25086x3;-25081x3;-25082x2;-25083x3;-25084x4;-25078x2;-25074x3;-25079x3;-25073x3;-25080x3;-25072x4;-27906x2;22449x3,22449:22460x4;-44383x1;22448x1;-27968x2;-27967x2;-27960x4;-42620x6;22462x8;-27971x4;-27914x1;-34005x4;-34006x4;-33999x6;-34010x8;-27975x8;-27972x4;-27977x8;-34008x8;-34007x8;-33997x6;-33994x2;-27924x2;-27920x2;-27947x2;-28004x8;-28003x12;-27917x6;-27954x4;-27926x2;-27981x10;-27927x2;-42974x10;-27984x10;-27982x10,22450:22459x2;-28004x8;-27954x2;22449x1;-27981x12;-27927x2;-42974x6;-27984x6;-27982x12,22451:-25080x2;-34004x1;-27962x4;-42620x2;-34007x8,22452:-25086x8;-27944x10;-27962x4;-27946x10;-34008x8;-47051x8,22456:-25084x8;-46578x2;-34006x8;-27982x6,22457:-34003x2;-34005x8;-33997x6,22461:22462x1,22462:22463x1,22463:44452x1,22572:-27947x1,22573:-27947x1,22574:-27947x1,22578:-27947x1,22791:22521x1,22792:22522x1,22794:-25083x2,22824:-42974x3,23427:-46594x4,23571:22462x1;-27981x1,25843:22461x1,25844:22462x1,25845:22463x1,34052:-44633x4;-44510x4;-44588x2;-44529x1;-60663x2;44452x8;-60668x1;-44524x4;-44576x1;-44595x6;-44621x6;-44591x2;-44625x2;-60714x6;-60707x2;-60763x4;-47901x2;-60767x1;-60692x4;-59619x4;-59621x4;-59625x6;-62948x6,34054:-27958x6;-60609x6;-60616x6;-44592x4;-44623x4;-44555x10;-71692x1;-60606x4;-60621x2;-44528x3;-60623x8;-62959x12;-44582x15;-44635x8;-60653x12;-44629x10;-44645x8;-44636x8;-59636x8;-44500x9;-44616x16;-47766x10;-44596x20;-44483x6;-44494x15;-44590x8;-44584x8;-44484x12;-44630x6;-44508x10;-44510x16;-44589x16;-44513x6;-44598x14;-44593x16;-44509x4;-60663x8;-44489x6;44452x40;-47900x20;-60668x20;-60691x40;-44595x6;-44575x24;-47898x16;-47672x15;-44591x8;-60714x30;-60707x10;-47901x10;-60767x6;-44631x12;-59619x20;-59621x12;-62948x40;-64579x40,34055:-44506x1;-62959x2;-44492x3;-44629x2;-44645x1;-44636x1;-59636x1;-44616x3;-44556x4;-44483x3;-44494x1;-44584x2;-44630x2;-44508x1;-44488x4;-44588x2;-44589x4;-44529x4;-44513x1;-44598x3;-44593x4;-44509x4;-60663x2;44452x12;-47900x4;-60668x4;-60691x6;-44575x6;-47898x4;-47672x2;-44621x2;-60707x2;-60763x4;-47901x2;-60767x6;-47899x6;-59619x4;-59621x4;-59625x6;-64441x8;-62256x4,34056:-44592x1;-44623x2;-60606x4;-60621x4;-44528x3;-44635x4;-44590x2,34057:-60691x6;-60714x6;-60707x4;-60692x4;-44631x1;-47899x1;-59619x6;-59621x10;-59625x6;-69412x1;-62948x6;-64441x4;-64579x4;-62256x1,35622:-44556x1,35623:-44633x4,35624:-47766x1;-44596x1;-44489x6;-44625x8,35625:-44590x1;-44576x4,35627:-44494x1,36860:-44483x1;-44524x4,36918:-64579x1,37663:-64441x1,37705:-60623x1,41163:-44591x2,41745:44452x1,44958:-71692x3",
+	["TradeskillResultMats.Reverse.Engineering.Basic"]="159:4367x1;4398x1;18594x1,774:4405x1;4401x2;7506x1;10506x4,814:7506x2;7148x2,818:4368x2;7506x1;10506x4,1206:4406x1;4372x3;5507x1;4381x1;4385x2,1210:4373x2;7148x2,1529:4388x1;4407x1;4397x2;10504x3,1705:4383x2;4397x2,2318:4368x6;4367x1,2319:4369x2;4373x4;21558x1;21559x1;21557x1;4381x2;4382x1;4385x4;4403x4,2589:4358x1;4360x1;4363x2;4365x1,2592:4366x1;6714x1;4374x1;4378x1;4375x1;4382x1;4384x2,2605:23771x1,2835:4357x1,2836:4364x1,2838:4377x1,2840:8067x1;4359x1;4360x1;6219x6;4361x2;4363x1;8068x1;4401x1;4370x3,2841:4366x1;6712x1;4371x2;4374x2;8069x1;4375x2;7506x6;4380x3;4382x2;6533x2,2842:4404x1;4379x3,2880:4361x1;6712x1;4371x1,2901:40772x1,3575:4387x2;7148x6;4389x1;4390x1;4394x3;4395x2,3577:10558x1,3829:4386x1;17716x1;18634x2,3859:10498x4,3860:17716x8;10559x3;11590x1;10560x1;10508x4;10512x1;10561x3;10510x6;10506x8;10513x2;10576x4;22728x3,3864:10499x2;4407x1;4393x2;4397x2;4396x1;10500x2;10510x2,4234:9312x1;9313x1;9318x1;21589x1;21590x1;21592x1;4391x4;10499x6;4392x4;4393x6;4398x2;10500x4,4304:10546x2;10501x4;21571x1;21574x1;21576x1;10502x4;10503x6;10504x8,4306:4388x2;7148x2;10507x1;4390x1;4852x1,4338:18588x2;11590x1;10560x1,4339:10518x4,4342:25886x1,4357:8067x1;4358x2;4360x2,4359:4360x1;4362x1;4405x1;4363x2;4401x1;4366x2;6712x2;4369x4;4372x2,4361:4362x1;4405x1;4369x2,4363:4401x1;4366x1;4367x1;5507x1,4364:8068x1;4365x3;6714x4;4367x2;4370x4;4374x4;21558x1;21559x1;21557x1;6533x1,4368:4385x1,4371:4406x1;4372x2;4379x2;5507x2;4381x1;4383x3;4388x1;4403x4;4407x1,4375:4376x1;7506x1;4379x2;5507x2;4381x2;4383x3;4384x1;4386x1;4388x3;7148x2,4377:8069x1;4378x2;4380x2;9312x1;9313x1;9318x1;4384x2;4403x4;21589x1;21590x1;21592x1;4390x1;4852x1;4394x3;4395x3,4382:4384x1;4391x1;4392x1;4396x1,4385:10500x1,4387:4403x1;4391x2;4392x1;4396x2,4389:4391x2;4392x1;17716x4;4395x1;4397x4;4396x2,4399:4362x1;4369x1,4400:4372x1;4379x1;4383x1;10508x1;10510x1;23742x1,4402:4376x1,4404:4370x1;4374x1;4380x1;4394x1,4470:20475x4;34504x4,4611:4852x1,5956:40772x1,6037:10506x1;10548x2;45631x6;10576x4;18631x2;16023x1,6530:6533x1,7005:40772x1,7067:18631x2,7068:10500x2;10508x2,7069:18631x1,7076:18168x8;18283x2;16007x2,7077:10576x2,7078:45631x6;18634x4;7191x2;16007x2,7079:21277x2,7080:18638x6,7082:18168x8,7191:7148x1;4397x1;18232x2,7909:10546x2;10501x2;10504x3,7910:10502x2;10503x2;10548x1;10576x1;15999x4;18638x4;19999x2,7912:10505x2,8150:19026x1,8153:10504x2,8170:15996x1;21714x1;21716x1;21718x1;18594x2;16004x4;16023x2,9060:21569x1,9061:21569x1;21570x1,10285:10518x2,10286:10504x2,10500:16008x1,10502:15999x1,10505:10507x1;18588x1;4398x2;11590x1;10560x1;10512x1;10514x1;21571x1;21574x1;21576x1;10518x4;10562x2;10513x2,10546:15995x1;16004x2,10558:4389x1;15846x3;21277x1;15996x1;22728x1;16009x1;23767x1,10559:10508x1;10546x1;10510x2;10548x1;15995x2,10560:10508x1;10514x1;10510x1;10518x1;21569x1;10562x1,10561:10514x1;21569x1;10506x1;10562x2;15846x1;15995x2;21570x1;16023x1,10576:16022x1,10592:10501x1,11291:34060x8,11371:16004x6;16005x1;18638x4;18283x6;18639x8,12359:15846x6;15995x4;15993x3;15994x3;16000x6;15997x2;16040x3;18232x16,12360:16006x1;18282x6;18168x6;16007x10,12361:18634x2;16004x2,12364:16008x2,12365:15992x2,12799:16004x2;16009x1;18639x2,12800:18638x2;19998x1;16007x2;18639x2,12803:15996x1;18168x12;18639x6,12804:19999x6;19998x6,12808:18639x4,12810:15999x2;16008x4;19999x4;16007x2,13467:18634x4,14047:18641x3;19026x2;15993x3;15994x1;15999x8;18637x2;16023x4;16005x3;16040x1,14227:16006x1,15407:21277x1,15992:18641x2;19026x2;15993x3;21714x1;21716x1;21718x1;18594x3;15997x1;16005x3,15994:45631x4;21277x4;18634x6;15995x2;15993x1;15996x4;18594x2;16023x2;16005x2;16009x1,16000:18637x2;16004x2;16023x1;18282x2;18283x1;16007x2,16006:16009x2;18282x2;18168x2;16022x4;18283x4;16040x1;23821x1,17010:18282x4,17011:18282x2;18283x2,17202:17716x4,18232:49040x2,18631:21277x2;18634x2;18637x1;18638x3;18639x4,19726:19999x4;19998x6,20816:7191x3,21840:35581x8,21877:32423x2;23771x1;25886x1;23768x1,21884:23786x1;32756x12;34847x4;34354x10,21885:32423x1;35182x6;35184x5;35183x4,21886:23821x4;35182x12;35185x8;35181x8;35184x5,21887:33092x2;33093x2,21929:23761x2,22445:23758x8;23761x8,22448:23762x2,22449:23763x2,22451:32756x12;34355x2;34356x12,22452:23784x1;35185x8,22456:34847x4;34353x12,22457:34847x4;35185x8;35181x8;35184x5;35183x8,22573:23781x2,22574:23781x1,22829:33092x20,22832:33093x20,23077:23758x2,23079:23762x2,23112:23764x2,23436:32478x2;32461x2;32476x2,23437:32480x2;32473x2,23438:32494x2;23766x2,23439:32475x2;32495x2;23748x2,23440:32472x2;32479x2;23765x2,23441:32474x2;23763x2,23445:23783x1;23782x3;23772x2;23774x5,23446:23784x4;23737x4;20475x1;34504x1;23764x8;34113x8,23448:23787x2,23449:23786x3;23762x2;23763x2;23765x4;32756x20;23748x12,23571:34357x1;34355x2,23572:32478x1;32494x1;32461x1;32476x1;32472x1;32475x1;32480x1;32495x1;32474x1;32473x1;32479x1;32756x1;34847x4;34357x4;35182x4;35185x4;34355x4;34354x4;35181x4;35184x4;34353x4;34356x4;35183x4,23573:23785x3,23781:23736x1;23772x1;23737x1;32423x2;34504x2;23771x1;25886x1;23768x1;23819x2;34060x20,23782:23736x1;23821x2;23742x3;23774x1;23767x2;33092x1;32413x1;33093x1;23819x1;23746x3;34060x2,23783:23736x2;23821x2;23742x6;23774x2;23767x2;23737x2;33092x1;20475x2;32413x1;33093x1;23819x1;23746x4;23747x4;34113x8;23748x4;34060x20,23784:23767x1;23746x2;34061x4,23785:32478x2;32494x2;32461x2;32476x2;32472x2;32475x2;32480x2;32495x2;32474x2;32473x2;32479x2;23824x2;35581x2;23747x1;23765x1;32756x1;23748x2;23766x2,23786:32478x1;32494x1;32461x1;32476x1;32472x1;32475x1;32480x1;32495x1;32474x1;32473x1;32479x1;23824x2;35581x2;34113x1;34061x8,23787:32478x4;32494x4;32461x4;32476x4;32472x4;32475x4;32480x4;32495x4;32474x4;32473x4;32479x4;23824x4;35581x4;23747x4;32756x4;23766x6;34061x8,23793:23758x4;23761x4;23762x4;32478x6;32494x6;32461x6;32476x6;32472x6;32475x6;32480x6;32495x6;32474x6;32473x6;32479x6;23824x8;23763x4,32423:32413x1,32461:34354x1,32472:35185x1,32473:34357x1,32474:34356x1,32475:35184x1,32476:34355x1,32478:34353x1,32479:35183x1,32480:35182x1,32494:34847x1,32495:35181x1,33470:40536x1;-55002x12;-63765x12,33568:41112x2;44740x2;44741x2;44742x2,34113:49040x10,34249:34061x1,35128:34357x2,35622:41121x2;48933x2;42551x4;41168x15,35623:40768x8;41121x2;48933x2;42555x4;42550x4;41168x15,35624:-63770x2;42549x4;44949x4,35625:42554x4,35627:41112x1;44740x1;44741x1;44742x1;48933x2;42553x4;44504x12,36860:48933x2;42552x4;44504x12,36913:-54998x6;-54999x6;-63770x4;39688x10;44951x5;23775x8;41164x1;-67839x8;47828x6;37567x12;41165x2;42546x12;41112x8;44740x8;44741x8;44742x8;40768x8;41121x8;41167x10;40772x10;41168x20;40769x10,36916:39681x2;39690x3;40893x5;40892x5;39682x4;-54793x8;39683x8,36918:42553x2;42550x2,36920:41146x1,36921:41146x1;42555x2,36922:49040x2,36924:42549x2,36927:41167x2;42551x2,36930:42552x2,36933:42554x2;44949x2,37663:49040x8;41508x12;44413x12,37700:-54999x4,37701:39682x1,37702:-54998x4;47828x3,37705:39690x1;39683x1;47828x3;42546x2,38425:42549x4;42552x4;42555x4;42554x4;42551x4;44949x4;42553x4;42550x4,39681:40771x2;44739x2;-55016x6;23775x4;37567x2;40865x8;40767x2;49040x30;41508x40;44413x40,39682:-55002x1;-63765x1;-54736x4;40865x2;40767x4,39683:44739x1;39688x2;-67839x1;40865x2;40767x2;41146x1,39684:39688x1,39690:40771x1;40536x3;-54793x8;-55016x6;44951x1;41164x1,40533:39688x1;41168x1;44504x1,40769:49040x20,41146:44504x3,41163:23775x8;41121x2;48933x8;42549x8;42552x8;42555x8;42554x8;42551x8;44949x8;42553x8;42550x8;41168x10;44504x10,43102:42549x1;42552x1;42555x1;42554x1;42551x1;44949x1;42553x1;42550x1;41168x1;44504x1,44128:41508x2;44413x2,44499:41508x1;44413x1,44500:41508x1;44413x1,44501:41508x8;44413x8",
+	["TradeskillResultMats.Reverse.Engineering.Gnomish"]="1529:10716x2;10725x2,3860:11826x2;10716x4;10720x4;10721x4;10725x6;10726x10;18986x12,3864:18660x1,4234:10545x2;10724x4,4337:10720x4,4338:10726x4,4389:11826x2;10724x4,6037:11826x1;10721x2;10725x6;10726x4,7075:11826x1;18986x4,7079:18986x2,7191:11826x1;18645x1,7387:10721x1,7909:10721x2;18986x4,7910:10726x2,7972:10645x4,8151:10716x4;10545x2,9060:10725x2;10645x1;18986x1,10026:10724x1,10285:10720x2,10500:10545x1,10505:10720x2;10724x8,10558:10545x2;10725x1;10726x1;18660x1,10559:10716x1;10545x1;10720x1;10724x2;10645x2,10560:10716x1;10721x1;10645x1;18660x1,10561:10725x1;18660x1,10647:10713x1,10648:10713x1,12359:18645x4,12808:10645x1,15994:18660x2,16006:23825x2,18631:18986x2,21884:23829x12;23828x8,21885:23828x8,21886:23825x10,22445:23835x10,22449:23835x2,22451:30544x2;23828x8,22452:23829x12;23828x8,22456:23825x10;23829x12,23436:23829x2,23437:23828x2,23781:23841x3,23782:23841x1,23783:23841x2;30544x4,23784:23841x1;30544x1,23785:23835x2,23786:23835x2;30544x1;23825x4,23787:30544x2,23793:23825x8;23829x8,24271:23828x4,34052:40895x2,37703:52021x2,39681:40895x2,41163:40895x6",
+	["TradeskillResultMats.Reverse.Engineering.Goblin"]="3860:10577x1;11825x6;10543x8;10542x8;10727x6;10588x4;18984x10;10577x4,3864:10543x1;10542x1,4234:7189x4,4338:10646x1,4394:11825x1,4407:10587x2,6037:10587x6;10727x6,7067:10542x4,7068:10543x4;10577x1,7077:11825x1;18984x4,7191:11825x1;18587x2,7910:18984x2;18587x2,9061:7189x2;10586x1;10727x4;10588x4,10026:7189x1,10505:10577x3;10646x3;10587x4;10577x5,10507:10586x6,10543:10588x1,10558:10577x1,10559:7189x2;10727x2;10577x2,10560:10646x1;7189x1;10587x1;10586x1;10727x1;10588x1,10561:10587x2;10586x1,10577:10577x1,10586:18984x1,10647:10644x1,10648:10644x1,14227:18587x2,15994:18587x2,16006:23836x2,17020:23826x3,18631:18984x1;18587x2,21877:23827x4,21884:30542x2;23836x6;23839x12,22451:23838x12,22452:23836x6;23839x12,22457:23827x1;23838x12,23573:23839x8,23781:23826x6;23827x4,23782:23826x3,23783:23826x2;30542x4,23784:30542x1,23785:23836x2,23786:30542x1;23836x1,23787:23836x2,23826:30542x2,24272:23838x4,36913:42641x1,37701:52020x2,39690:42641x1",
+	["TradeskillResultMats.Reverse.First Aid"]="1288:6453x1,1475:6452x1,2589:1251x1;2581x2,2592:3530x1;3531x2,4306:6450x1;6451x2,4338:8544x1;8545x2,14047:14529x1;14530x2,19441:19440x1,21877:21990x1;21991x2,33470:34721x1;34722x2",
+	["TradeskillResultMats.Reverse.Inscription"]="10648:43376x1;43360x1;43391x1;43380x1;43344x1;43381x1;43334x1;43392x1;43674x1;43393x1;43351x1;43385x1;43372x1;43369x1;43388x1;43370x1;43378x1;43355x1;42961x1;42398x1;41106x1;41530x1;42461x1;43423x1;42735x1;40914x1;42900x1;42962x1;42400x1;41092x1;42458x1;41532x1;43417x1;43655x10;43654x10;44142x1;42737x1;42908x1;40923x1;41108x1;42964x1;42402x1;42465x1;41536x1;43427x1;40919x1;42910x1;42738x1;41100x1;4422x2;42966x1;42411x1;4424x2;41540x1;42467x1;4419x2;43422x1;40909x1;4426x2;42897x1;42746x1;4425x2;43657x10;43656x10;44161x1;41104x1;42415x1;41547x1;42970x1;43424x1;42473x1;43850x1;42903x1;40902x1;37602x2;44314x1;45733x1;45746x1;45747x1;45797x1;45793x1,21886:44317x3,35625:45849x2;44318x3,35627:45854x3,37101:955x1;1181x1;1180x1;3012x2;954x2,39151:37101x1;39469x2,39334:39774x2,39338:43116x2,39339:43118x2,39340:43120x2,39341:43122x2,39342:43124x2,39343:43126x2,39354:955x1;1181x1;1180x1;3012x1;954x1;37118x1;38682x2;2290x1;1712x1;1711x1;43339x1;43395x1;43340x1;43366x1;43396x1;43379x1;43397x1;43390x1;43342x1;43371x1;43359x1;43367x1;43350x1;43343x1;43354x1;43338x1;43356x1;43364x1;43361x1;43335x1;43332x1;43399x1;39349x2;43316x1;43365x1;43357x1;43725x1;43398x1;43377x1;43368x1;43373x1;43331x1;43389x1;43386x1;-61288x2;2289x1;42956x1;42741x1;42907x1;42408x1;40913x1;41096x1;1477x1;42455x1;41531x1;43413x1;40922x1;41095x1;42743x1;40897x1;42912x1;42960x1;42462x1;43418x1;41537x1;42410x1;42734x1;42898x1;48720x1;40924x1;43515x10;37168x1;45785x1;45735x1;45734x1;45789x1;45778x1;46372x1,39469:37118x1;38682x1;-61288x1,39501:43671x1;43539x1;43672x1;43673x1;41099x1;42747x1;10307x2;42972x1;42416x1;10306x2;41533x1;42466x1;10308x2;43420x1;40916x1;10310x2;42904x1;42744x1;10309x2;43661x10;43660x10;44163x1;41098x1;42397x1;41535x1;42973x1;39350x2;43414x1;42470x1;27502x2;45775x1;45622x1;45768x1;45760x1;45776x1;27501x2;42905x1;40901x1;27499x2;43536x1;41103x1;27503x2;42399x1;43543x1;27498x2;42468x1;41541x1;45804x1;44316x1;43664x10;43663x1;45805x1;43546x1;42750x1;43541x1;43416x1;42974x1;33461x2;33460x2;41527x1;41105x1;43548x1;33457x2;42963x1;33462x2;33458x2;45623x1;45740x1,39502:43535x1;43400x1;43544x1;44920x1;49084x1;43374x1;43394x1;44923x1;44922x1;50045x1;43553x1;40903x1;43825x1;44955x1;42401x1;42911x1;43826x1;43428x1;42749x1;42471x1;43667x10;43666x10;44317x1;43551x1;41542x1;42736x1;41094x1;42955x1;43827x1;43554x1;43432x1;44315x1;40896x1;42906x1;42453x1;42406x1;43549x1;37093x2;43145x2;45854x10;45849x10;37097x2;37091x2;43465x2;43463x2;50077x1;50125x1;44928x1;42745x1;42412x1;41539x1;43552x1;42909x1;41102x1;41524x1;42954x1;43533x1;42901x1;41101x1;41107x1;42902x1;42957x1;43425x1;43412x1;41517x1;41518x1;43537x1;42396x1;42454x1;42958x1;42456x1;43538x1;42959x1;43542x1;42457x1;43415x1;41552x1;42459x1;42460x1;42740x1;41529x1;42739x1;42742x1;44684x1;42965x1;40899x1;41097x1;41534x1;43534x1;42967x1;43867x1;42463x1;40920x1;43545x1;42464x1;40908x1;43419x1;42748x1;43426x1;40915x1;42403x1;41538x1;40900x1;42404x1;42405x1;42751x1;43421x1;43547x1;42409x1;42968x1;40912x1;42753x1;43430x1;43550x1;42969x1;41110x1;43868x1;43869x1;41109x1;42407x1;42414x1;41526x1;42469x1;42913x1;42417x1;40921x1;42914x1;40906x1;43429x1;42899x1;42915x1;42472x1;43431x1;42971x1;42916x1;42754x1;42917x1;-61177x5;42752x1;37094x2;43146x2;44210x10;38322x10;44318x1;37098x2;37092x2;43466x2;43464x2;45601x1;49632x5;45738x1;45741x1;45790x1;45781x1;45625x1;45769x1;45799x1;45736x1;45782x1;45753x1;45745x1;45743x1;45794x1;45731x1;45766x1;45771x1;45755x1;45742x1;45779x1;45777x1;45806x1;45761x1;45800x1;45758x1;45732x1;45762x1;45737x1;45780x1;45757x1;45739x1;45603x1;45756x1;45772x1;45604x1;45764x1;45783x1;45744x1;45792x1;45795x1;45770x1;45767x1;45803x1;45602x1,39774:2290x1;1712x1;1711x1;43339x1;43395x1;43340x1;43366x1;43396x1;43379x1;43397x1;43390x1;43342x1;43371x1;43359x1;43367x1;43350x1;43343x1;43354x1;43338x1;43356x1;43364x1;43361x1;43335x1;43332x1;43399x1;39349x3;2289x1;42956x1;42741x1;42907x1;42408x1;40913x1;41096x1;1477x1;42455x1;41531x1;43413x1;40922x1;41095x1;42743x1;40897x1;42912x1;42960x1;42462x1;43418x1;41537x1;42410x1;48720x1;43515x2;37168x1;45785x1;45735x1;45778x1,43102:44210x1;38322x1,43103:43115x1,43104:43117x1,43105:43119x1,43106:43121x1,43107:43123x1,43108:43125x1,43109:43127x2,43115:43515x5;37168x1,43116:43316x1;43365x1;43357x1;43725x1;43398x1;43377x1;43368x1;43373x1;43331x1;43389x1;43386x1;43376x1;43360x1;43391x1;43380x1;43344x1;42734x1;42898x1;40924x1;42961x1;42398x1;41106x1;41530x1;42461x1;43423x1;42735x1;40914x1;42900x1;42962x1;42400x1;41092x1;42458x1;41532x1;43417x1;43655x2;43654x2;44142x1;42737x1;42908x1;40923x1;41108x1;42964x1;42402x1;42465x1;41536x1;43427x1;45747x1;45734x1;45797x1;45789x1,43117:43655x5;43654x5;44142x2,43118:43381x1;43334x1;43392x1;43674x1;43393x1;43351x1;43385x1;43372x1;43369x1;43388x1;43370x1;40919x1;42910x1;42738x1;41100x1;4422x1;42966x1;42411x1;4424x1;41540x1;42467x1;4419x1;43422x1;40909x1;4426x1;42897x1;42746x1;4425x1;43657x2;43656x2;44161x1;41104x1;42415x1;41547x1;42970x1;43424x1;42473x1;45733x1,43119:43657x5;43656x5;44161x2,43120:43378x1;43355x1;43850x2;42903x1;40902x1;37602x1;44314x1;41099x1;42747x1;10307x1;42972x1;42416x1;10306x1;41533x1;42466x1;10308x1;43420x1;40916x1;10310x1;42904x1;42744x1;10309x1;43661x2;43660x2;44163x1;41098x1;42397x1;41535x1;42973x1;39350x1;43414x1;42470x1;45623x1;45746x1;45740x1;45793x1,43121:43661x5;43660x5;44163x2;39350x1,43122:27502x1;45775x1;45622x1;45768x1;45760x1;45776x1;27501x1;42905x1;40901x1;27499x1;43536x1;41103x1;27503x1;42399x1;43543x1;27498x1;42468x1;41541x1;45804x1;44316x2;43664x4;43663x4;45805x1;43546x1;42750x1;43541x1;43416x1;42974x1;33461x1;33460x1,43123:44316x5;43664x8;43663x8,43124:43671x1;43539x1;43672x1;43673x1;43535x1;43400x1;43544x1;50045x1;41527x1;41105x1;43548x1;33457x1;42963x1;43553x1;33462x1;33458x1;40903x1;43825x1;44955x1;42401x1;42911x1;43826x1;43428x1;42749x1;42471x1;43667x3;43666x3;44317x1;43551x1;41542x1;42736x1;41094x1;42955x1;43827x1;43554x1;43432x1;40896x1;42906x1;42453x1;42406x1;43549x1;45601x1;45738x1;45741x1;45790x1;45781x1;45625x1;45769x1;45799x1;45736x1;45753x1;45743x1;45731x1;45771x1;45755x1;45742x1;45779x1;45806x1;45761x1;45800x1;45758x1;45762x1;45737x1;45780x1;45756x1;45772x1;45764x1;45792x1;45795x1;45770x1;45803x1;45602x1,43125:43667x6;43666x6;44317x3,43126:44920x1;49084x1;43374x1;43394x1;44923x1;44922x1;44315x1;37093x1;43145x1;45854x5;45849x5;37097x1;37091x1;43465x1;43463x1;50077x1;50125x1;44928x1;42745x1;42412x1;41539x1;43552x1;42909x1;41102x1;41524x1;42954x1;43533x1;42901x1;41101x1;41107x1;42902x1;42957x1;43425x1;43412x1;41517x1;41518x1;43537x1;42396x1;42454x1;42958x1;42456x1;43538x1;42959x1;43542x1;42457x1;43415x1;41552x1;42459x1;42460x1;42740x1;41529x1;42739x1;42742x1;44684x1;42965x1;40899x1;41097x1;41534x1;43534x1;42967x1;43867x1;42463x1;40920x1;43545x1;42464x1;40908x1;43419x1;42748x1;43426x1;40915x1;42403x1;41538x1;40900x1;42404x1;42405x1;42751x1;43421x1;43547x1;42409x1;42968x1;40912x1;42753x1;43430x1;43550x1;42969x1;41110x1;43868x1;43869x1;41109x1;42407x1;42414x1;41526x1;42469x1;42913x1;42417x1;40921x1;42914x1;40906x1;43429x1;42899x1;42915x1;42472x1;43431x1;42971x1;42916x1;42754x1;42917x1;-61177x3;42752x1;37094x1;43146x3;44210x2;38322x2;44318x3;37098x1;37092x1;43466x1;43464x1;45782x1;45745x1;45794x1;45766x1;45777x1;45732x1;45757x1;45739x1;45603x1;45604x1;45783x1;45744x1;46372x1;45767x1,43127:-61177x1;-61117x1;-61118x1;-61119x1;-61120x1;44210x5;38322x5;44318x6;49632x1",
+	["TradeskillResultMats.Reverse.Jewelcrafting"]="774:25438x1;20821x2;30804x3,818:25439x1;21934x2;30804x3,1206:30419x1;20826x1;20950x1;20831x2,1210:21933x1;30804x2;20823x2;20828x2,1529:30420x1;20955x1;20966x1;20959x1;29157x1;21748x4,1705:31154x1;20826x1;20830x2;20832x3;20833x1;29157x1,2835:25498x8,2836:25880x8,2838:25881x8,2840:20816x2;21931x1;21932x4;20821x2;21934x2;20820x2,2841:20817x2;20907x4;21933x2;30804x2;30419x4;31154x6;20828x2,2842:20818x1;20827x2;20826x2;20832x4,3391:20954x2;20831x1,3575:30420x2;20909x8;20954x8;20833x4,3577:20955x2;20831x1;29157x4;20967x2;21756x6,3824:20833x1,3827:20832x2,3860:20963x2;20961x2,3864:20958x1;29157x1;20961x1;20967x1;29158x2;21756x2;21753x2,5498:20820x1;20832x3,5637:20909x2,6037:20960x1;45627x8;29158x3;21748x2;20969x4;21760x4;21763x4;21765x2;21753x2;21766x4;21769x2;21768x2,6149:20969x4,7067:20959x2,7070:20967x2,7075:21760x2,7076:21775x1;21793x4,7077:21763x2,7078:21769x2;21779x4,7079:21760x2,7081:21763x2,7082:21793x4,7909:20964x3;21755x1;21760x2;21754x1;21753x2,7910:29158x2;20969x2;30421x1;21763x2;21764x1;21769x2;21789x2;21780x4,7912:25882x10,7971:21758x4;20969x2,8151:20964x4;21758x4;21760x4;21763x4,8152:21769x4,10286:21765x2,11083:20832x4,11137:21748x4,11178:21766x2,11371:21789x4,11382:21780x2,11754:45054x1;21784x4,12359:21752x1;21774x2;21777x2;21784x4;21780x8,12360:21774x2;21777x2;21784x2;21789x2;21792x2;21793x4,12361:21774x2;21768x4;21790x1,12363:21778x1,12364:21774x2;21777x2;21791x2;29160x2,12365:25883x10,12662:21778x1,12799:21766x2;21767x1;21774x2,12800:30422x1;29159x2;21784x2;21792x2,12803:21791x4;21779x4,12804:21775x1;21777x4;21791x4,12808:21790x1;21778x2,12938:21780x2,18335:21784x4,20816:20906x2;21931x2;21932x2;25438x1;25439x1;21934x1;21933x1;20823x2;20955x2,20817:20820x1;30804x1;20823x1;30419x1;31154x1;20826x1;30420x1;20830x1;20909x2;20950x1;20967x1,20963:20958x1;20966x2;20960x2;21748x4;21755x3;21766x2,21752:20969x4;30421x1;21764x1;21754x1;21753x4;21766x2;21767x1;30422x1;21768x1;29159x1;21775x1;21790x1;29160x1;21792x2,21884:24082x3;24092x4;24093x6;24089x4;24126x4;35700x8;31398x6,21885:24080x3;24092x6;24093x4;31398x6,21886:24085x3;24097x6;24095x4;34363x20;24122x20;31399x6,21929:23098x1;23099x1;21779x1;23100x1;23101x1;31866x1;31869x1;35945x3,22451:34361x20,22452:31079x1;24124x4;35694x8,22456:24079x3;24097x4;24095x6;24128x2;35702x8;31399x6,22457:24098x8;30825x8;24086x3;24123x20;24127x4;35703x8,22578:32508x3,23077:23094x1;23095x1;28595x1;24074x2;23096x1;23097x1;35945x3;24124x2,23079:23103x1;23104x1;23105x1;24076x1;23106x1;35945x3,23107:23108x1;23109x1;23110x1;31862x1;31864x1;23111x1;35945x3,23112:23113x1;23114x1;24075x2;23115x1;31860x1;23116x1;28290x1;35945x3;24117x2;24125x4,23117:23118x1;23119x1;23120x1;24076x2;23121x1;35945x3;24121x2,23436:24027x1;24031x1;24028x1;24036x1;24030x1;24032x1;24029x1;24110x1;33131x1;33133x1;33134x1;24126x2,23437:24065x1;24062x1;35318x1;24067x1;24066x1;33782x1;24122x2;24127x2,23438:24037x1;24033x1;24035x1;24039x1;33135x1;24123x2,23439:24061x1;24058x1;24060x1;24059x1;35316x1;31867x1;31868x1,23440:24047x1;24050x1;31861x1;24053x1;35315x1;24051x1;24048x1;24052x1;33140x1;33144x1;33143x1;24125x2;35693x6,23441:31863x1;24056x1;31865x1;35707x1;24057x1;24055x1;24054x1;24116x1;24128x2,23445:24074x1;24075x1;24076x1,23446:24078x1;24077x2,23447:32772x2;24088x1;30825x2;24114x2;24089x2;24117x2;24127x2;35700x8;35703x8,23448:24087x2;24106x2;24092x2;24097x2;24093x2;24098x2;24095x2;24123x20;24124x8;24126x2;31399x2,23449:24079x2;24080x2;24082x2;24110x4;24085x2;24086x2;24121x2;32776x12;24122x20;24125x4;35693x8;35694x8;31398x2,23571:34362x4,23572:34358x9,23573:24116x2;24128x6;35702x4,24243:31079x4,24478:32833x1;32772x8;32508x10;32776x20,24479:32774x1;32508x1;32836x1;32776x3,25867:25897x1;25899x1;25901x1;25896x1;32409x1;25898x1;35501x1,25868:34220x1;25890x1;25895x1;25893x1;25894x1;32410x1;35503x1,27860:32833x1;32836x1,31079:32774x4;24078x1;24077x1;24087x4;24079x3;24080x4;24082x4;24088x5;24110x1;24106x3;24116x2;24085x4;24092x1;24097x1;24093x1;24098x1;24095x1;24114x3;24086x4;24089x4;34360x6;34361x12;34362x12;34359x12;34363x12;24121x4;32776x4;24117x4;24123x5;24122x5;31398x4;31399x4,32227:34359x3;32193x1;32197x1;32194x1;35700x2;32199x1;32196x1;32198x1;32195x1,32228:34359x3;35693x2;32202x1;32200x1;32201x1;32203x1,32229:32204x1;32207x1;32210x1;32209x1;35761x1;32206x1;32205x1;32208x1,32230:32213x1;35702x2;32215x1;32214x1;37503x1;32216x1;32212x1;32211x1,32231:35694x2;32220x1;32217x1;32219x1;32218x1;35760x1;32221x1;32222x1,32249:34360x6;32225x1;32223x1;35703x2;35759x1;32226x1;32224x1;35758x1,34052:42340x1,34054:42701x1;42702x4;49110x5,34664:34361x5;34362x5;34363x5,35128:34361x4;34358x6;34362x4;34363x4,35622:43582x3;43253x1;42644x4;42647x6,35623:43252x1;42644x4;42645x6,35624:43246x1;43247x1;42339x1;42338x1;43249x1;43248x2;43250x2;42643x4;42646x6,35625:42643x4;42646x6,35627:43249x1;43251x3;42642x4;42647x6,36783:42701x1;43253x4,36784:42702x1,36860:43582x3;43498x4;43482x4;43252x2;42642x4;42645x6,36917:39900x1;39906x1;39905x1;39908x1;39909x1;39910x1;39911x1;42336x1;39907x1;42339x1,36918:39996x1;39999x1;39997x1;40001x1;40002x1;40003x1;39998x1;40000x1;42418x1;42341x2;43251x1;45809x1,36919:40111x1;40114x1;40112x1;40116x1;40117x1;40118x1;40113x1;40115x1,36920:39912x1;39917x1;39918x1;39915x1;39914x1;39916x1;42337x1;42339x2,36921:40012x1;40016x1;40017x1;40014x1;40013x1;40015x1;42341x1,36922:40123x1;40127x1;40128x1;40125x1;40124x1;40126x1,36923:39927x1;39919x1;39920x1;39932x1;43245x1;42339x1;44943x1,36924:40010x1;40008x1;40009x1;40011x1;42413x2;45813x2,36925:40121x1;40119x1;40120x1;40122x1,36926:39937x1;39939x1;39936x1;39940x1;39944x1;39945x1;39933x1;39941x1;39943x1;39935x1;39934x1;39942x1;42420x1;39938x1;42421x1;43246x2;44943x1,36927:40029x1;40032x1;40025x1;40034x1;40030x1;40028x1;40033x1;40026x1;40031x1;40027x1;40023x1;40022x1;40024x1;42395x2;45808x2,36928:40136x1;40139x1;40132x1;40141x1;40137x1;40135x1;40140x1;40133x1;40138x1;40134x1;40130x1;40129x1;40131x1,36929:39966x1;39949x1;39952x1;39955x1;39958x1;39962x1;39948x1;39951x1;39953x1;39947x1;39954x1;39946x1;39956x1;39961x1;39959x1;39967x1;39950x1;39964x1;39963x1;39957x1;39960x1;43244x1;39965x1;42338x2,36930:40058x1;40039x1;40043x1;40046x1;40050x1;40054x1;40038x1;40041x1;40057x1;40044x1;40037x1;40045x1;40047x1;40048x1;40053x1;40051x1;40059x1;40040x1;40056x1;40055x1;40049x1;40052x1;44063x2;42395x1,36931:40162x1;40144x1;40147x1;40150x1;40154x1;40158x1;40143x1;40146x1;40161x1;40148x1;40142x1;40149x1;40151x1;40152x1;40157x1;40155x1;40163x1;40145x1;40160x1;40159x1;40153x1;40156x1,36932:41367x1;39984x1;39976x1;39989x1;39978x1;39983x1;39974x1;39986x1;39980x1;39988x1;39990x1;39979x1;39992x1;39981x1;39977x1;39985x1;39991x1;39968x1;39982x1;39975x1;42421x1;43247x2;42338x2;44943x1,36933:40094x1;40089x1;40105x1;40091x1;40104x1;40086x1;40100x1;40095x1;40103x1;40098x1;40092x1;40106x1;40099x1;40090x1;40096x1;40101x1;40085x1;40102x1;40088x1;42418x2;44063x1;42413x1;42340x1;45812x3,36934:40175x1;40167x1;40179x1;40169x1;40174x1;40165x1;40177x1;40171x1;40178x1;40180x1;40170x1;40182x1;40172x1;40168x1;40176x1;40181x1;40164x1;40173x1;40166x1,37701:42336x2;43245x2;43244x2;42337x2,41163:42418x2;44063x2;42341x2;42413x2;42395x2;43582x2;42340x1;45812x1;43250x2;43253x2;43251x2;45808x2;43498x4;43482x4;45809x2;45813x2;43252x2;42643x2;42642x2;42644x2;42646x2;42645x2;42647x2,41266:41285x1;41307x1;41377x1;41333x1;41335x1;41378x1;41379x1;41376x1;41339x1;41400x1;41375x1,41334:41380x1;41389x1;41395x1;41396x1;41401x1;41385x1;41381x1;41397x1;41398x1;41382x1,42225:42142x1;36766x1;42148x1;42143x1;42152x1;42153x1;42146x1;42158x1;42154x1;42150x1;42156x1;42144x1;42149x1;36767x1;42145x1;42155x1;42151x1;42157x1;42643x4;42642x4;42644x4;42646x4;42645x4;42647x4;49110x1,43102:43582x1;44943x1;42643x1;42642x1;42644x1;42646x1;42645x1;42647x1",
+	["TradeskillResultMats.Reverse.Leatherworking.Basic"]="783:4231x1,1206:5963x1,1529:4262x1;15067x2;15066x1,2318:2304x1;2302x2;7277x2;7276x2;5957x3;2303x4;4237x6;7278x4;7279x3;7280x5;2300x8;5081x4;2309x8;4239x3;2310x5;2311x8;7281x6;4242x6;2312x4;4246x6;2308x10;4243x6;6709x6;2307x7;5780x6;7282x10;5781x8;2319x4,2319:2313x4;7283x4;20575x8;2315x4;2317x6;5958x8;2316x8;5961x12;2314x10;4250x8;7285x6;7284x4;4248x8;7348x8;4251x4;4253x4;7352x6;7349x8;4252x12;7358x10;7359x12;4247x14;4234x5,2320:2302x1;7277x3;7276x1;5957x1;2303x1;4237x1;7278x2;7279x4;7280x5;2300x4;5081x1;2309x5;4239x2;2310x2;2311x2;7281x4;4242x2;2312x2;4246x2;4243x4;6709x4;2307x2;2313x1;4244x2,2321:2308x2;6466x1;5780x1;7282x1;5781x1;7283x1;20575x2;2315x2;2317x1;6467x2;5958x1;2316x1;6468x2;5961x1;2314x2;4250x2;7285x1;7284x1;4248x1;7348x2;4249x2;4251x1;4253x2;7352x2;7349x2;4252x2;7358x2;7359x2;4247x4;18662x1;4254x1;7372x2;7371x2;3719x2;4265x1;4255x4;4257x1;5962x2;7373x2;4456x2;4455x2;5963x2;4258x1;5782x3;5964x2;7374x2;7375x2;4256x2;7377x2;4259x1;4262x1;5739x2,2324:2311x1,2325:7373x1;7378x1;7387x2;15083x1;15084x1;15086x1;15087x3;15085x4;15088x2;25681x4,2457:7285x1,2459:7391x2,2604:25683x4,2605:4255x2;4257x1;4259x1,2840:34086x1,2934:2318x3,2997:5958x1;7359x2;34086x1,3182:4253x2,3356:7349x4,3383:4250x1,3389:4253x2,3390:4252x1,3824:7374x1;4256x1,3864:4262x1,4096:4264x2,4231:4242x1;2312x1;4243x3;6709x1;6466x1;7282x1;5781x1;20575x1;4244x2;2314x6,4232:4233x1,4233:7348x4;4249x1;4251x1;4253x2,4234:18662x2;4254x6;7372x8;7371x8;3719x5;4265x5;18948x8;4255x9;4257x5;5962x12;7373x10;4456x4;4455x4;5963x10;4258x4;5782x10;5964x8;7374x10;7375x10;4256x12;7377x6;4259x6;7378x16;5965x14;5739x14;17721x8;7386x8;5966x4;5783x14;7387x10;4260x6;4304x6;8174x12;4264x6;7390x8;7391x10,4235:4236x1,4236:18948x2;4257x1;4258x2;5782x1;5964x1;4256x2;4259x2;4262x4;5966x1;5783x1;4260x2;18238x4;8174x2;4264x2,4243:4244x1,4246:4249x1,4289:4231x1;4233x1;4236x3,4291:7378x2;5965x2;17721x1;7386x2;5966x1;5783x1;4260x1;8174x2;4264x1;7390x2;7391x1;8173x1;8176x2;8175x2;8192x3;8205x2;8203x4;8217x4;8218x6;8204x2;8193x4;8209x6,4304:18238x6;8173x5;8176x5;8175x7;8187x6;8192x8;8198x8;8189x6;8200x10;8201x8;8205x10;8203x12;8210x10;8217x12;8218x10;8204x6;8214x10;8211x12;8193x14;8191x14;8197x16;8209x12;8185x14;8216x14;8202x10;8207x12;8206x14;8213x14;8170x6;8208x10;8215x16;8212x16;8347x24;8345x18;8346x20;8349x25;8348x30;8367x40,4305:5962x2;5965x2;7387x2,4337:7391x2,4338:8192x6,4340:2315x1;2317x1;2316x1;5961x1;4248x1;4249x1;4252x1,4342:25680x4,4461:18948x1;4456x4;4455x6,5082:5081x3,5373:4248x2;7358x2,5498:6709x1;18948x4,5500:4262x1,5633:4264x1,5637:4254x2;18948x4,5784:5780x8;5781x12,5785:5782x12;5783x16,6470:6466x4;6467x5;6468x4,6471:6468x6,7067:7352x1;7359x2;7377x2;17721x4,7070:7377x2,7071:4257x1;4258x1;5739x1;7387x1;4264x1,7075:15054x1,7076:15053x1;15055x1,7077:8348x8,7078:15054x1;15053x1;20481x2;20479x2;20480x2;15055x1,7079:8346x4,7080:15071x1;15069x1;19052x4;15070x1;22665x2;22664x2;22666x2;22663x2;22662x2;22661x2;15068x1,7082:15057x2;15056x3;15058x3;18506x6;21278x4,7286:7283x12;20575x8,7287:7284x6,7392:7375x4;7386x6,7971:15092x1;8349x2,8150:8172x1,8151:8200x4;8201x6,8152:8216x4;8202x6,8153:8210x1;8214x2;8211x2;8213x4;8215x6;8212x6;8345x12,8154:8205x4;8203x12;8204x8;8209x12;8207x16;8206x8;8208x20,8165:8347x12;8367x30,8167:8187x8;8198x12;8189x12;8191x24;8185x28,8169:8172x1,8170:15564x5;15077x4;15045x20;15083x8;15074x6;15076x6;15084x8;15046x20;15067x24;15061x12;15091x10;15054x6;18258x4;15057x16;15064x28;15073x4;15071x4;15078x6;15092x6;15072x8;15082x6;15093x10;15086x12;34086x4;15048x28;15060x16;15056x16;15065x24;15069x6;15079x8;15053x8;15050x25;19052x30;15063x30;15066x35;19044x30;15075x10;15094x14;15087x12;15049x28;15058x12;15070x6;15080x8;18509x25;19162x12;20380x20;18510x30;15052x25;15051x20;22759x12;15062x30;18504x12;15059x16;18506x12;15047x40;18508x12;15068x12;15081x14;15090x22;15095x18;15096x16;15055x10;15085x20;15088x14;20296x20;20295x28,8171:15407x1,8172:8210x1;8217x1;8218x1;8214x1;8211x1;8213x2;8215x2;8212x2;8347x2;8345x4;8346x1;8349x4;8348x2;8367x4,8343:18238x1;8187x1;8198x1;8189x1;8200x1;8201x1;8191x1;8197x2;8185x1;8216x2;8202x2;8207x2;8206x2;8208x2;8347x4;8345x1;8346x4;8349x4;8348x4;8367x4,8949:8217x1,8951:8218x1,10285:18238x8;7390x2,11754:18506x4,12607:18509x4,12753:18511x2,12803:15074x1;15061x4;15073x1;15072x1;15060x6;19044x4;15075x1;20380x3;22761x2;22760x2;22759x2;19058x4;15059x8;19687x4;19686x4;19685x4;19049x6,12804:18504x12;19049x6,12809:19052x2;19058x4,12810:15049x2;22663x12;22662x12;22661x16;18511x10;22761x4;22760x6;19058x8;21278x6;19049x8;15090x4;15095x2;15096x4,14044:15138x1,14047:15091x6;15093x10;15094x10;15090x16;15095x12;15096x18,14048:18258x2,14227:15058x2;19157x4;19162x4;22665x4;22664x4;22666x4;19149x4;19163x4;22663x4;22662x4;22661x4;21278x2;19049x2,14256:15085x2,14341:15077x1;15045x2;15083x1;15074x1;15076x1;15084x1;15046x1;15067x1;15061x1;15091x1;15054x1;18258x1;15057x1;15064x1;15073x1;15071x1;15078x1;15092x1;15072x1;15082x1;15093x1;15086x1;34086x1;15048x1;15060x1;15056x1;15065x1;15069x1;15079x1;15053x1;15050x2;19052x2;15063x1;15066x1;19044x2;15075x1;15094x1;15087x1;16982x2;15049x1;15070x1;15080x1;25654x2;34482x3;25662x2;25669x2;25673x3;16984x2;18509x2;20380x2;18510x2;16983x2;18511x1;15052x2;15051x1;19688x3;19689x3;18251x2;15062x1;18504x4;19058x2;15059x2;18506x4;15138x1;19687x3;19686x3;19685x4;15047x1;18508x4;15068x2;15081x2;15090x2;15095x1;15096x2;15055x2;15085x2;15088x2;25655x2;25661x2;25674x3;34099x4;34100x2;25670x2;25656x3;25668x3;25675x3;25660x3;25671x3;25676x3;25657x3;25659x3;25685x3;25694x2;25692x2;25686x3;25687x3;25695x2;25693x2;25681x3;25683x3;25682x3;25680x3;25691x2;25690x2;34490x3;25697x2;25696x2;25689x2;30040x2;30042x2;30046x2;30041x2;30045x2;30039x2;30043x2;30044x2;20296x2;20295x2,14342:15059x2,15407:15048x1;15060x1;15056x1;15050x1;19052x2;15066x1;19044x2;15087x1;15049x1;15080x1;18510x2;22665x2;22664x4;22666x3;22663x2;22662x3;22661x4;15052x1;15051x1;19688x3;19689x3;22761x1;22760x2;22759x2;15062x1;18504x2;19058x2;15059x1;18506x2;19687x3;19686x4;19685x5;20478x2;20477x1;20479x2;20480x1;18508x4;19049x2;15068x1;15081x1;15090x1;15096x1;15085x2;20296x1;20295x2,15408:15077x4;15076x6;15078x8;15082x8;15079x12;15080x12;22665x16;22664x24;22666x16;15081x14,15409:15407x1,15410:15138x1,15412:15045x25;15046x25;20296x30,15414:18509x12;15047x30,15415:15048x30;15049x30;20295x36,15416:15050x25;16984x18;18509x12;15052x25;15051x15,15417:15063x8;15062x14,15419:15064x12;15065x14,17010:16982x6;16984x3;19157x3;19162x4;19163x2;16983x3,17011:16982x2;16984x3;19157x2;19149x2;19163x2;16983x3,17012:16982x20;19157x8;19162x12;19149x2;19163x2;16983x12;18251x3,17056:15067x40;15066x40;34105x99;8349x20,18240:18258x1,18512:18510x5;22760x2;20476x2;20478x2;20477x2;18508x8,19726:22759x2,19767:19687x8;19686x10;19685x14,19768:19688x25;19689x25,20381:20380x3,20498:20476x20;20478x40;20477x30;20481x20;20479x40;20480x30,20500:20481x1;20479x3;20480x2,20501:20476x1;20478x3;20477x2,21844:33122x12;33204x16,21884:29486x4;29500x3;29499x3;29498x4;29494x3;29493x3;29492x4;25683x8;29511x14;29510x18;29509x10,21885:29485x4;25694x3;25692x5;29500x3;29499x3;29498x4;29494x3;29493x3;29492x4;25693x4;29505x8;32574x4;30043x10;30044x10;32575x6,21886:29483x4;25681x8;29506x16;29505x20;29508x12;34372x18;34376x18;30042x10;30041x12;32398x2;32582x6;32399x2;32400x4;32393x3;32396x4;32394x2;32395x2;32583x8;32397x3,21887:25679x2;25654x5;34482x20;25662x6;25669x6;25673x6;25650x4;25655x8;25661x8;25674x9;34099x24;34100x20;25670x10;25656x10;25668x10;25675x13;23793x5,22445:25653x6,22448:25653x1,22450:32398x1;32399x1;32400x1;32393x1;32396x1;32394x1;32395x1;32397x1,22451:34099x1;29533x4;25695x6;34105x2;25697x4;25696x8;29535x8;29503x12;29502x15;29514x8;29504x18;29507x8;29509x14;34374x18;30040x10;30042x10;30046x10;32574x4;30045x10;32582x6;32577x4;32579x6;32583x8;32575x6;32580x10;32581x12,22452:29540x4;25651x1;29534x4;34207x3;34106x4;25682x8;25691x4;25690x4;25689x4;29536x8;29512x22;29506x12;33204x12;29514x20;29507x18;32577x4;32579x6,22456:29487x4;25685x6;25686x8;25687x10;25680x8;33122x12;29503x12;29502x15;33204x12;34370x18;30040x10;32398x4;30039x12;32399x2;32400x6;32393x4;32396x6;32394x4;32395x2;32397x4,22457:25652x1;29488x4;25694x3;25692x5;29497x6;29496x6;29495x8;29491x6;29490x6;29489x8;25693x4;29512x4;29508x12;29511x10;29510x12;29504x10,22682:22665x4;22664x7;22666x5;22663x4;22662x5;22661x7,23571:25653x1;34369x6;34373x6;34374x8;34370x8;34371x6;34372x8;34375x6;34376x8,23572:34106x1;34105x1;33122x4;29536x1;29535x1;29503x1;29502x1;29512x1;29506x1;29505x1;29508x1;29511x1;29510x1;33204x2;29514x1;29504x1;29507x1;29509x1;34369x6;34373x6;34371x6;34375x6;30041x2;30045x2;30039x2;30043x2,23793:29540x6;25652x3;25651x3;25660x2;25671x3;25676x3;29534x4;29533x4;25657x2;25659x2;29528x3;29488x4;29485x4;29486x4;29487x4;29483x4;25685x6;25694x4;25692x8;29530x6;29531x6;34207x4;34330x3;29500x4;29499x4;29498x6;29497x4;29496x4;29495x6;29491x4;29490x4;29489x6;25686x10;25687x10;25695x6;29494x4;29493x4;29492x6;25693x6;34106x12;34105x8;25653x4;25681x6;25683x6;25682x6;25680x6;25691x4;25690x6;33122x8;34490x15;25697x6;25696x10;25689x6;29529x6;29536x4;29535x4;29503x4;29502x6;29512x4;29506x4;29505x6;29508x6;29511x4;29510x6;33204x10;29514x8;29504x6;29507x4;29509x4;34369x40;34373x40;34374x30;34370x30;34371x40;34372x30;34375x40;34376x30;29532x6;30040x4;30042x4;30046x4;32574x4;30041x4;30045x4;30039x4;32582x4;30043x4;32577x4;32579x6;30044x4;32583x6;32575x6;32580x4;32581x6,25649:21887x5,25699:25694x8;25692x12;25695x8;29494x8;29493x8;29492x12;25693x10;25697x6;25696x8,25700:25654x1;34482x4;25662x3;25655x1;25661x1;25656x3;25660x3;25657x3;25659x2;29528x3;29491x10;29490x10;29489x12;32398x4;32399x2;32400x3;32397x2,25707:34482x4;25685x6;29500x6;29499x8;29498x10;25686x8;25687x10;25695x4;34490x5;25697x6;25696x4;34369x24;34370x16;29532x4;32393x2;32396x3;32394x4;32395x2,25708:29534x8;29497x16;29496x16;29495x24;25691x20;25690x34;34490x5;25689x40;29529x4;29536x16;34371x24;34372x16,25719:34100x30,29539:29533x2;25681x2;25683x2;25682x2;25680x2;29535x4;29503x8;29502x10,29547:29530x4;34490x5;29504x20;29507x12;29509x14;34373x24;34374x16;30046x10;32574x12;30045x6;30043x6;32577x12;32579x16;30044x6;32575x16,29548:29531x4;34106x12;34490x5;29512x24;29508x28;29511x24;29510x28;29514x32;34375x24;34376x16,30183:30040x2;30042x2;30046x2;30044x2,32428:32574x4;32398x2;32582x4;32399x1;32400x3;32577x4;32579x2;32393x2;32396x3;32394x2;32395x1;32583x2;32575x2;32580x4;32581x2;32397x2,33567:33568x5,33568:38375x4;38404x8;38400x12;38412x8;38416x12;38409x8;38410x12;38421x12;38422x8;38403x10;38401x12;38414x12;38424x10;38407x10;38408x12;38418x10;38420x12;38406x10;38441x16;38405x10;38402x10;38413x10;38415x10;38411x10;38419x10;38417x10;38437x14;38433x12;38436x12;38440x14;38438x14;38434x12;38435x12;38439x14;38425x6,34055:47597x8;47598x8,34057:47579x4;47580x4,34664:34374x6;34370x6;34372x6;34376x6,35622:43264x1;43263x1;43261x1;43262x1;43255x2;43455x1;43453x1;43457x1;43452x1;43594x2;43595x2;43592x2;43591x2;43266x1;43273x1;43265x1;43271x1;43450x1;43454x1;43456x1;43451x1;43593x3;43590x3;43502x5;43495x6;43459x5;43458x6;43461x12;43469x10;44930x5;44931x6;47576x8;47577x8;47595x8;47596x8,35623:43435x1;43434x1;43260x1;43433x1;43444x1;43445x1;43447x1;43449x1;43436x1;43438x1;43439x1;43437x1;42731x2;43129x1;43442x1;43443x1;43446x1;43448x1;43459x5;43458x6;44930x5;44931x6;47597x8;47598x8;49896x10;49900x16;41264x6,35624:44963x4;49901x16;49897x10,35625:43502x5;43495x6;47595x8;47596x8;47602x20;47601x20;47583x12;47584x12;49894x10;49898x16,35627:43133x2;43132x2;43566x4;43484x5;43481x6;45555x4;45564x2;47581x12;47582x12;47599x20;47600x20;49899x16;49895x10,36860:43130x2;43594x2;43595x2;43592x2;43591x2;43593x3;43590x3;43566x6;43484x5;43481x6,37700:38441x4;41238x5,37703:38592x5;38591x4;44441x4;44440x5;44445x2,37705:41238x5;44437x4;44436x5;44444x4;44443x5;38590x6,38425:38376x4;41238x6;38592x5;38591x6;44437x6;44436x4;44441x6;44440x4;44444x6;44443x4;38372x4;38371x3;44447x2;38347x8;44448x2;44446x8;38399x8;43435x8;43434x12;43260x12;43433x10;43133x10;43264x8;43263x12;43261x12;43262x10;43255x10;43455x12;43453x12;43457x10;43452x8;43444x8;43445x12;43447x12;43449x10;43130x12;43594x8;43595x8;43592x8;43591x8;43436x10;43438x12;43439x10;43437x10;42731x12;43132x14;43266x10;43273x10;43265x10;43271x12;43129x15;43450x10;43454x10;43456x12;43451x10;43442x10;43443x10;43446x10;43448x12;43257x25;43593x10;43590x10;43502x10;43495x12;43459x10;43458x12;43461x12;43469x10;43484x10;43481x10;44930x10;44931x12;49633x8;49634x8;45556x4;47581x20;47582x20;47599x24;47600x24;47602x24;47601x24;47583x20;47584x20;41264x8,38557:44438x35;44445x30;44447x20;43131x40;43594x4;43595x4;38374x2;43593x8;49633x8;45553x20;45565x20;45563x20;47576x40;47577x40;47595x40;47596x40;49901x20;49896x12;49900x20;49897x12,38558:-60584x2;38372x1;38590x25;44442x35;44448x20;43258x30;43592x4;43591x4;38373x2;43590x8;43565x40;45554x20;47579x40;47580x40;47597x40;47598x40;49899x20;49895x12,38561:-60583x2;38371x12;43256x40;49634x8;45562x20;49894x12;49898x20,43102:43594x1;43595x1;43592x1;43591x1;44963x1;38373x1;38374x1;43593x1;43590x1;43565x1;43502x1;43495x1;43459x1;43458x1;43566x1;43461x1;43469x1;43484x1;43481x1;44930x1;44931x1,44128:-57701x1;-57683x1;-57692x1;-57694x1;-57699x1;-57696x1;-57691x1;-57690x1;44963x2;38373x2;38374x2;43565x2;43566x2;45556x3;45553x3;45554x3;45562x3;45565x3;45555x3;45564x3;45563x3;47579x6;47580x6;47581x6;47582x6;47576x6;47577x6;47595x8;47596x8;47597x8;47598x8;47599x8;47600x8;47602x8;47601x8;47583x6;47584x6;49899x8;49894x5;49901x8;49896x5;49895x8;49898x8;49900x8;49897x8,45087:45556x6;45553x6;45554x6;45562x6;45565x6;45555x6;45564x6;45563x6,47556:47579x4;47580x4;47581x4;47582x4;47576x4;47577x4;47595x8;47596x8;47597x8;47598x8;47599x8;47600x8;47602x8;47601x8;47583x4;47584x4,49908:49899x8;49894x5;49901x8;49896x5;49895x5;49898x8;49900x8;49897x5",
+	["TradeskillResultMats.Reverse.Leatherworking.Dragonscale"]="8165:29971x10,8170:29971x10,8172:29971x2,14341:29971x1;29975x2,15416:29975x8,21884:29975x3;29516x12;29517x8;29515x16,22451:29520x12;29521x8;29519x16,22456:29516x12;29517x8;29515x16,22457:29520x12;29521x8;29519x16,23572:29516x1;29515x2;29520x1;29519x2,23793:29975x4;29516x6;29517x4;29515x8;29520x6;29521x4;29519x8,29548:29516x24;29517x18;29515x30;29520x24;29521x18;29519x30",
+	["TradeskillResultMats.Reverse.Leatherworking.Elemental"]="7081:29964x8,8170:29964x10,8172:29964x2,14341:29964x1;29973x2,22451:29973x2,22452:29973x2,23571:29526x5;29527x3;29525x6,23572:29526x1;29525x2,23793:29973x4;29526x6;29527x4;29525x8",
+	["TradeskillResultMats.Reverse.Leatherworking.Tribal"]="8153:29970x4,8170:29970x10,8172:29970x2,14341:29970x1;29974x2,17056:29970x5,21886:29974x3,22451:29524x12;29523x8;29522x16,23571:29524x2;29523x1;29522x3,23572:29524x1;29522x2,23793:29974x4;29524x6;29523x4;29522x8,25699:29974x12,29547:29524x16;29523x12;29522x20",
+	["TradeskillResultMats.Reverse.Smelting"]="2770:2840x1,2771:3576x1,2772:3575x1,2775:2842x1,2776:3577x1,2840:2841x1,3575:3859x1,3576:2841x1,3857:3859x1,3858:3860x1,7911:6037x1,10620:12359x1,11176:12655x3,11370:11371x8,12359:12655x1,12360:17771x10,17010:17771x1,18562:17771x1,18567:17771x3,21884:22574x1,22452:22573x1,23424:23445x2,23425:23446x2,23426:23449x2,23427:23447x2,23445:23448x3,23446:23573x10,23447:23448x2,23449:35128x3,23573:35128x1,35624:37663x1,35627:37663x1,36860:37663x1,36909:36916x1,36910:41163x2,36912:36913x2,41163:37663x3",
+	["TradeskillResultMats.Reverse.Tailoring.Basic"]="929:7049x4,1529:10041x1,2318:10046x1;2569x1;2578x1;4312x2;4313x2;2583x2,2319:4315x2;4320x4,2320:4344x1;2570x1;10045x1;2576x1;2568x1;7026x1;10046x1;4343x1;6238x1;6241x1;4307x1;2572x2;2577x1;2575x1;6786x1;4238x3;6240x1;6239x1;4308x2;2580x3;2569x1;6242x2,2321:2578x1;4309x2;2579x1;5762x1;10047x1;2584x1;4312x1;4240x1;2582x2;4310x1;5542x2;4313x1;2583x2;4241x1;2587x1;6263x2;4311x2;2585x3;4314x2;4316x4;4330x1;6787x1;6264x3;5763x1;10048x1;4315x2;6384x1;6385x1;45626x2;4331x4;4317x3;4318x3;4332x1;5766x2;7046x3;4321x2;7048x1;4319x2;7047x2;5770x2;7049x1;4245x3;4333x1;7050x2;4322x2;4334x1;7051x2;7052x2;7053x2;5764x3;7058x2;5765x4,2324:2576x1;6241x1;6786x1;6787x4;4331x2;6795x2;4334x2;10008x1;10053x1;10040x1,2325:5765x1;4336x1;10053x1;38278x3;38277x2,2589:2996x2,2592:2997x3,2604:2572x2;2575x1;6239x1;5762x1;4313x2;4330x2;6264x3;5763x1;10048x3;6796x2;7055x2;7056x2;7058x2;7059x2;7062x2;7063x4;7064x4;10009x2;10007x2;10018x2;10029x2;10051x2;10033x2;34085x2;21154x2;21542x2;38277x1;41248x1;41252x1;44558x4,2605:4308x1;2579x1;2582x1;4241x1;6385x2;7065x2;5764x1;17723x4;34087x2;41250x1;41255x1,2996:4344x1;2570x1;10045x1;2576x1;2568x1;7026x1;10046x2;4343x2;6238x3;6241x3;4307x2;2572x3;2577x2;2575x2;6786x2;4238x3;6240x3;6239x3;4308x3;2580x2;2569x3;2578x4;6242x4;4309x4;2579x3;5762x4;10047x4;4312x5,2997:2584x1;4240x3;2582x2;4310x3;5542x3;4313x4;2583x4;4241x4;2587x2;6263x4;4311x3;2585x4;4314x3;4316x5;4330x3;6787x3;6264x5;5763x4;10048x5;4315x6;6384x4;6385x4;4331x4;4317x6;4318x4;34087x1;34085x1,3182:4320x4;45626x6;5766x2;4321x1;5770x2,3383:4318x1,3577:14101x2;14100x2;14103x2;14104x4,3824:4323x1,3827:4326x1;7063x2,3829:4327x1,3864:4329x1,4234:4319x2;7047x2;7049x2;4245x2;5764x3;7061x4;4329x4,4291:6795x1;7065x1;4323x1;6796x1;4325x1;7055x1;7056x1;7057x2;4335x1;4326x1;17723x1;7054x2;7060x2;7059x2;7062x2;7061x2;4336x1;4327x2;4329x1;9999x3;9998x3;7063x1;7064x2;10050x2,4304:7064x2;10026x2;10031x2;6836x2,4305:4320x2;45626x3;4332x1;5766x2;7046x4;4321x3;7048x2;4319x3;7047x3;4324x5;5770x4;7049x3;4245x3;4333x2;7050x3;6795x3;4322x3;7065x5;4334x3;7051x3;4323x4;6796x3;7052x4;7053x3;4325x4;7055x4;5764x4;7056x5;7057x5;4328x4;4335x4;7058x4;4326x4;5765x5;17723x5;7060x6;7059x5;7062x4;7061x5;4336x5;7063x8;7064x6,4306:4305x4,4337:4322x2;4325x2;4328x2;4327x2,4338:4339x4,4339:7054x2;4327x3;4329x4;9999x2;9998x2;10001x3;10002x3;10008x1;10056x1;10003x2;10009x3;10007x3;10004x3;10052x2;10019x4;10021x6;10042x5;22246x4;10018x3;10023x5;10050x4;10054x2;10026x3;10024x3;10027x3;10055x3;10053x3;10029x4;10028x5;10051x4;10034x4;10030x3;10033x4;10031x6;38278x4;10035x4;10044x5;10025x2;10040x5;6836x4;10041x8;38277x5;10036x5,4340:2587x1;2585x1;6384x1;6385x1;4333x2,4341:4332x1;41254x1;41251x1;44558x2,4342:4335x1;10054x2,4589:10030x6,4625:21154x2;21542x2,5498:5542x1;4311x2,5500:4320x2;4331x1;4317x1,6037:10041x1,6048:7047x2,6260:2577x1;6786x1;6240x1;6242x2;6263x2;6384x2;7046x2;7048x2;4319x2;4324x4;7052x2;7053x2;7060x2;13869x2;13870x2;13871x2;41249x1;41253x1,6261:10056x1;10052x2,6371:7056x2;7059x2;7064x2,7067:7051x1;7054x2;7061x4,7068:7054x2;7063x4;7064x2;14134x4,7069:7054x2,7070:7052x1;7054x2,7071:7052x1;7055x1;4328x1;7061x1;4329x1,7072:7060x2,7076:19047x3;14152x10;19050x5,7077:10042x2;14042x2;14043x2;14134x4,7078:14134x4;14044x1;14045x1;18405x12;21342x4;16979x4;19165x10;19156x6;14152x10;14153x12;18408x10;18263x2,7079:13868x2,7080:14136x4;18405x12;22658x2;22654x4;22652x6;22655x2;14152x10,7082:14152x10,7910:18408x2;14130x1,7971:15802x2,7972:21340x2,8153:10019x4;10021x6;10041x4,8170:21340x4;14046x2;18258x4;13864x2;14108x2;14112x4;13867x4,8343:10001x1;10002x1;10008x1;10056x1;10003x2;10009x1;10007x1;10004x1;10052x1;10019x2;10021x2;10042x2;22246x2;10018x2;10023x2;10054x2;10026x2;10024x2;10027x2;10055x1;10053x1;10029x3;10028x2;10051x2;10034x2;10030x2;10033x2;10031x3;38278x3;10035x3;10044x3;10025x2;10040x3;10041x3;38277x3;10036x3;44554x5,8831:22251x10,9210:14143x2;14142x2;14141x3;14144x4;18405x10;14146x10;14154x10,10285:10002x2;10004x2;10023x5;10028x4;10031x6;10025x8,10286:10019x2;10021x2;10041x2,10290:10055x1,11040:22251x8,11137:22246x4,11176:14132x1;14128x2;14130x4,12360:18413x1,12364:14146x6,12662:14153x20;18407x6;14106x2;14112x2,12800:14140x1,12803:19047x3;22660x4;19050x5;22757x2;22758x4;22756x2,12804:19683x4;19682x3,12808:14136x4;14153x12;18407x8,12809:19056x2;19059x2;18413x4,12810:21341x6;19056x4;16979x2;16980x6;14146x8;14140x2;20539x2;20537x2;22249x4;18263x6,12811:14154x4,13468:22252x1,13926:19056x2;14146x6;14154x4;18409x2;18486x2,14047:14048x4,14048:34087x4;34085x4;21154x4;21542x4;13868x5;13869x5;13856x3;14042x5;13858x5;13857x5;21340x6;14046x5;13870x5;14143x2;13860x4;14101x4;14100x4;14043x4;14142x2;18258x2;14134x6;14103x4;22251x5;14044x5;22248x5;14107x5;14141x2;13863x5;14132x4;14045x6;13871x6;13864x4;14136x10;14108x2;13865x5;15802x6;19056x6;14137x6;19047x8;14104x6;14111x2;14144x3;13866x6;18405x16;16979x8;16980x12;22658x4;22654x4;22652x8;22655x2;14146x10;14152x12;14153x12;14154x12;14156x8;18413x12;18407x12;22660x2;18408x12;14140x4;18409x12;18486x6;14139x5;14138x6;20539x2;20537x4;20538x6;22757x4;22758x2;22756x4;22249x6;14106x8;14112x7;14155x4;13867x7;22252x6;14128x8;14130x6,14227:13858x1;13857x1;13860x1;21341x4;13865x2;19056x2;19047x2;21342x4;19165x4;19156x4;22658x4;22654x4;22652x8;22655x4;19059x2;19684x2;19683x2;19682x2;22660x4;19050x2;20539x2;20537x2;20538x2;22757x2;22758x2;22756x2;22249x4;13867x2;22252x4,14256:14342x2;14107x2;21341x12;14136x12;14108x2;14111x2;21342x20;14153x40;18407x20;20539x2;20537x4;20538x6;14106x3;14112x3,14341:34087x1;34085x1;21154x1;21542x1;13868x1;13869x1;13856x1;14042x1;13858x1;13857x1;21340x1;14046x1;13870x1;14043x1;18258x1;14134x1;22251x2;14044x1;22248x2;14107x1;13863x2;14132x1;14045x1;13871x1;13864x1;14136x1;14108x1;13865x1;15802x1;14137x1;14111x1;13866x2;18405x6;16979x2;16980x2;14146x2;14152x2;14153x2;14154x2;14156x2;18413x2;18407x2;18408x2;14140x2;18409x2;18486x2;14139x1;14138x1;14106x2;14112x2;14155x1;13867x1;14128x1;14130x1;18263x4;21850x1;21849x1;21841x1;21851x1;21852x1;24273x1;24275x1;21853x1;21859x1;21854x2;21855x2;21866x2;30837x2;21860x1;21863x4;21867x2;30838x2;21861x1;21862x1;21864x4;21868x2;30839x2;21865x4;30038x2;30036x2;30037x2;30035x2;24276x1;24274x1,14342:15802x4;14137x4;18405x10;19165x8;19156x10;14146x10;14154x10;19059x5;19684x4;19683x4;19682x3;14156x12;19050x5;14140x6;18409x6;18486x4;14139x5;14138x4;22757x2;14155x1;22252x2;18263x6,14344:18405x6;14156x2;22249x4,16203:22248x2,17010:16979x6;19165x5;16980x4;19156x2;18263x8,17011:19165x3;16980x4;19156x3,17012:21342x16;14156x2,18240:18258x1,19726:19684x4;19683x4;19682x3;22660x1;22756x2,20520:21341x2;20539x6;20537x6;20538x8,21840:21850x3;21849x3;21841x4;21851x4;21842x3;21852x6;21853x6;21854x8;21844x1;21855x8;21866x6;30837x5;21867x8;30838x7;21868x12;30839x9;44554x6;30460x6;30461x6;30459x10,21842:21843x4;21859x5;24270x6;21845x1;24272x1;24271x1;24251x4;24250x4;30831x4;24253x6;24252x6;21860x4;24249x4;24254x6;21861x6;21862x6;24257x6;24267x12;24263x12;30038x4;30036x4;32586x3;32587x4;32420x1;32392x1;32390x1;32389x2;32391x1;32585x4;32584x3,21844:21863x5;21864x6;21865x8,21845:24258x10;24255x8;34367x18;34365x20;30035x4;32585x2;32584x4;24264x10;24261x10;38225x4;21876x8,21877:24268x3;21840x5,21881:21843x2;21859x2;30831x2;21860x2;21861x2;21862x2;21872x4;21876x4;21858x4;30460x2;30461x2;30459x2,21882:21844x8,21884:24272x1;24271x1;24251x8;30837x5;30838x7;24256x16;30839x9;30038x15;30460x3;30461x2;30459x5,21885:21845x1;34367x12;30036x10,21886:24275x5;21845x1;30831x3;24254x6;34367x12;30036x10;24276x10;32420x2;32392x2;32390x3;32389x4;32391x2;32585x6;32584x8,21887:21851x2;21853x2;24270x4;21860x6;21863x6;30460x4;30461x4,22445:21842x2;21866x12;21867x16;21868x20;44554x4,22446:21843x1;21858x4,22450:32420x1;32392x1;32390x1;32389x1;32391x1,22451:24259x14,22452:24250x4;24253x6;24249x8;24258x12;24255x16,22456:24272x1;24250x4;24252x3;32420x2;32392x2;32390x4;32389x6;32391x4;30460x4;30461x6;30459x6,22457:24273x5;24271x1;30831x3;24252x3;24257x14;24260x12;32586x8;32587x6;24274x10,22682:22658x5;22654x5;22652x7;22655x4,22794:38225x2,23112:44554x4,23571:24267x8;24263x8;24266x5;24262x5;24264x5;24261x5,23572:24257x1;24256x1;24260x1;24258x1;24255x1;24259x1;34365x2;34364x2;24267x1;24263x1;30037x2;30035x2;24276x1;24274x1;24266x1;24262x1;24264x1;24261x1,24271:24260x10;34366x10;34364x12;30037x4;30035x4;32586x4;32587x2;24266x10;24262x10;21858x6,24272:24256x10;24259x10;34366x10;34364x12;30037x4;21872x6,30183:30038x2;30036x2,32428:32586x4;32587x2;32420x1;32392x1;32390x2;32389x3;32391x2;32585x2;32584x4,33470:41510x5;41509x6,34052:47603x8;47604x8,34054:41511x2,34664:34367x6;34366x6,35622:43585x2;43584x2;43583x3;41609x4,35624:45811x4,35625:41594x2;41602x4;41609x6,35627:45810x4;41593x2;41610x4,36783:41523x1;41528x2;41607x1;41525x1;41608x1,36784:41610x1;41609x1,36860:41595x2;43585x2;43584x2;43583x3;41604x4;41610x6,36908:45773x6,36919:47585x1;47586x1,36922:47605x2;47606x2,36925:47585x1;47586x1,36930:44558x4,36934:47585x1;47586x1,37701:43969x3;43974x3;43970x4;43971x5;41516x4;43975x5;43972x5;43973x4,37702:41603x2;43969x3;43974x3;43970x4;43971x5;41516x4;43975x5;43972x5;43973x4,37704:41601x2,38425:42096x2;41985x2,38426:41513x1;41512x1;44211x1;41515x1;41522x1;41520x1;41521x1;41519x1;41523x4;41528x4;41525x4;41543x1;41546x1;41548x1;41551x1;-56034x1;-56039x1;41545x1;41549x1;41544x1;41550x1;41599x2;41553x2;41555x2;43969x2;43974x2;-55769x1;-55642x1;-55777x1;41554x2;43585x2;43584x2;42096x1;41986x1;43970x2;43971x2;41516x2;43975x2;43972x2;43973x2;42095x1;41985x1;42093x1;41984x1;43583x3;41597x1;42111x1;42103x1;42113x1;41598x1;42101x1;42100x1;42102x1;41600x1,41510:41513x3;41512x3;44211x3;41515x4;41522x3;41520x4;41521x5;41519x5;41523x7;41528x5;41607x7;41525x8;41608x8;41543x7;41546x8;41548x8;41511x2;41249x4;41253x4;41250x4;41255x4;41248x4;41252x4;41254x4;41251x4;41551x8;41545x9;41549x10;41544x10;41550x10,41511:45811x4;45810x4;41599x6;41553x5;41555x4;41593x1;41594x1;41595x1;43969x3;43974x3;41554x5;43585x4;43584x4;42096x4;41986x4;43970x3;43971x4;41516x3;43975x4;43972x4;43973x3;42095x4;41985x5;42093x6;41984x6;43583x6;42111x4;42103x4;42113x4;42101x6;42100x6;42102x6;41610x5;44558x12;41609x5,41593:-55769x1;41984x1;41597x4;42111x4;42101x8;41600x4;45557x4;45566x4;47603x8;47604x8;49890x6;49891x10,41594:-55642x1;42096x1;42095x1;42093x1;45773x4;42103x4;41598x2;42100x8;41600x4;45558x8;45567x8;47587x12;47588x12;47605x20;47606x20;49892x20;49893x10,41595:-55777x1;41986x1;41985x1;41597x2;42113x4;41598x4;42102x8;45557x4;45566x4;47585x8;47586x8;47603x8;47604x8;49890x6;49891x10,42253:41603x2;41601x2;45811x4;45810x4;41553x2;41555x2;41554x2;42096x4;41986x4;42095x4;41985x4;42093x4;41984x4;41602x4;41604x4;44558x4,43102:43585x1;43584x1;43583x1;41602x1;41604x1;42111x1;42103x1;42113x1;42101x1;42100x1;42102x1;41610x1;41609x1,45087:45558x6;45557x6;45567x6;45566x6,47556:47585x4;47586x4;47603x8;47604x8;47587x4;47588x4;47605x8;47606x8,49908:49890x5;49891x8;49892x8;49893x5",
+	["TradeskillResultMats.Reverse.Tailoring.Mooncloth"]="21845:21873x4;21874x8;21875x14,21881:21873x2;21874x2;21875x4,21886:21873x8;21874x8,22457:21875x12",
+	["TradeskillResultMats.Reverse.Tailoring.Shadoweave"]="21881:21869x2;21870x2;21871x4,21885:21869x10;21870x12;21871x16,24272:21869x4;21870x8;21871x14",
+	["TradeskillResultMats.Reverse.Tailoring.Spellfire"]="21881:21846x2;21847x4;21848x4,21884:21846x10;21847x12;21848x16,24271:21846x4;21847x8;21848x14",
+})
diff --git a/libs/LibPeriodicTable-3.1-TradeskillResultMats/LibPeriodicTable-3.1-TradeskillResultMats.toc b/libs/LibPeriodicTable-3.1-TradeskillResultMats/LibPeriodicTable-3.1-TradeskillResultMats.toc
new file mode 100644
index 0000000..e074f36
--- /dev/null
+++ b/libs/LibPeriodicTable-3.1-TradeskillResultMats/LibPeriodicTable-3.1-TradeskillResultMats.toc
@@ -0,0 +1,16 @@
+## Interface: 30200
+## LoadOnDemand: 1
+## Title: Lib: PeriodicTable-3.1 [|cffeda55fTradeskillResultMats|r]
+## Notes: PeriodicTable data module.
+## Author: Nymbia
+## Version: 3.1
+## Dependencies: LibPeriodicTable-3.1
+## X-Category: Library
+## X-License: LGPL v2.1
+## X-PeriodicTable-3.1-Module: TradeskillResultMats
+## X-Curse-Packaged-Version: r293
+## X-Curse-Project-Name: LibPeriodicTable-3.1
+## X-Curse-Project-ID: libperiodictable-3-1
+## X-Curse-Repository-ID: wow/libperiodictable-3-1/mainline
+
+LibPeriodicTable-3.1-TradeskillResultMats.lua
diff --git a/libs/LibPeriodicTable-3.1.lua b/libs/LibPeriodicTable-3.1.lua
new file mode 100644
index 0000000..4d33125
--- /dev/null
+++ b/libs/LibPeriodicTable-3.1.lua
@@ -0,0 +1,371 @@
+--[[
+Name: PeriodicTable-3.1
+Revision: $Rev: 6 $
+Author: Nymbia (nymbia@gmail.com)
+Many thanks to Tekkub for writing PeriodicTable 1 and 2, and for permission to use the name PeriodicTable!
+Website: http://www.wowace.com/wiki/PeriodicTable-3.1
+Documentation: http://www.wowace.com/wiki/PeriodicTable-3.1/API
+SVN: http://svn.wowace.com/wowace/trunk/PeriodicTable-3.1/PeriodicTable-3.1/
+Description: Library of compressed itemid sets.
+Dependencies: AceLibrary
+License: LGPL v2.1
+Copyright (C) 2007 Nymbia
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library 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
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+]]
+
+local PT3, oldminor = LibStub:NewLibrary("LibPeriodicTable-3.1", tonumber(("$Revision: 6 $"):match("(%d+)")) + 90000)
+if not PT3 then
+	return
+end
+
+-- local references to oft-used global functions.
+local type = type
+local rawget = rawget
+local tonumber = tonumber
+local pairs = pairs
+local ipairs = ipairs
+local next = next
+local assert = assert
+local table_concat = table.concat
+
+local iternum, iterpos, cache, sets, embedversions
+---------------------------------------------
+--       Internal / Local Functions        --
+---------------------------------------------
+local getItemID, makeNonPresentMultiSet, shredCache, setiter, multisetiter
+
+function getItemID(item)
+	-- accepts either an item string ie "item:12345:0:0:0:2342:123324:12:1", hyperlink, or an itemid.
+	-- returns a number'ified itemid.
+	return tonumber(item) or tonumber(item:match("item:(%d+)")) or (-1 * ((item:match("enchant:(%d+)") or item:match("spell:(%d+)")) or 0))
+end
+
+do
+	local tables = setmetatable({},{__mode = 'k'})
+	function makeNonPresentMultiSet(parentname)
+		-- makes an implied multiset, ie if you define only the set "a.b.c",
+		-- a request to "a.b" will come through here for a.b to be built.
+		-- an expensive function because it needs to iterate all active sets,
+		-- moreso for invalid sets.
+
+		-- store some temp tables with weak keys to reduce garbage churn
+		local temp = next(tables)
+		if temp then
+			tables[temp] = nil
+		else
+			temp = {}
+		end
+		-- Escape characters that will screw up the name matching.
+		local escapedparentname = parentname:gsub("([%.%(%)%%%+%-%*%?%[%]%^%$])", "%%%1")
+		-- Check all the sets to see if they start with this name.
+		for k in pairs(sets) do
+			if k:match("^"..escapedparentname.."%.") then
+				temp[#temp+1] = k
+			end
+		end
+		if #temp == 0 then
+			sets[parentname] = false
+		else
+			sets[parentname] = "m,"..table_concat(temp, ',')
+		end
+		-- clear the temp table then feed it back into the recycler
+		for k in pairs(temp) do
+			temp[k] = nil
+		end
+		tables[temp] = true
+	end
+end
+
+function shredCache(setname)
+	-- If there's a cache for this set, delete it, since we just added a new copy.
+	if rawget(cache, setname) then
+		cache[setname] = nil
+	end
+	local parentname = setname:match("^(.+)%.[^%.]+$")
+	if parentname then
+		-- Recurse and do the same for the parent set if we find one.
+		shredCache(parentname)
+	end
+end
+
+function setiter(t)
+	local k,v
+	if iterpos then
+		-- We already have a position that we're at in the iteration, grab the next value up.
+		k,v = next(t,iterpos)
+	else
+		-- We havent yet touched this set, grab the first value.
+		k,v = next(t)
+	end
+	if k == "set" then
+		k,v = next(t, k)
+	end
+	if k then
+		iterpos = k
+		return k,v,t.set
+	end
+end
+
+function multisetiter(t)
+	local k,v
+	if iterpos then
+		-- We already have a position that we're at in the iteration, grab the next value up.
+		k,v = next(t[iternum],iterpos)
+	else
+		-- We havent yet touched this set, grab the first value.
+		k,v = next(t[iternum])
+	end
+	if k == "set" then
+		k,v = next(t[iternum], k)
+	end
+	if k then
+		-- There's an entry here, no need to move on to the next table yet.
+		iterpos = k
+		return k,v,t[iternum].set
+	else
+		-- No entry, time to check for a new table.
+		iternum = iternum + 1
+		if not t[iternum] then
+			return
+		end
+		k,v = next(t[iternum])
+		if k == "set" then
+			k,v = next(t[iternum],k)
+		end
+		iterpos = k
+		return k,v,t[iternum].set
+	end
+end
+
+do
+	-- Handle the initial scan of LoD data modules, storing in this local table so the sets metatable can find em
+	local lodmodules = {}
+	for i = 1, GetNumAddOns() do
+		local metadata = GetAddOnMetadata(i, "X-PeriodicTable-3.1-Module")
+		if metadata then
+			local name, _, _, enabled = GetAddOnInfo(i)
+			if enabled then
+				lodmodules[metadata] = name
+			end
+		end
+	end
+
+	PT3.sets = setmetatable(PT3.sets or {}, {
+		__index = function(self, key)
+			local base = key:match("^([^%.]+)%.") or key
+			if lodmodules[base] then
+				LoadAddOn(lodmodules[base])
+				lodmodules[base] = nil -- don't try to load again
+				-- still may need to generate multiset or something like that, so re-call the metamethod if need be
+				return self[key]
+			end
+			makeNonPresentMultiSet(key) -- this will store it as empty if this is an invalid set.
+			return self[key]
+		end
+	})
+end
+PT3.embedversions = PT3.embedversions or {}
+
+sets = PT3.sets
+embedversions = PT3.embedversions
+
+cache = setmetatable({}, {
+	__mode = 'v', -- weaken this table's values.
+	__index = function(self, key)
+		-- Get the setstring in question.  This call does most of the hairy stuff
+		-- like putting together implied but absent multisets and finding child sets
+		local setstring = sets[key]
+		if not setstring then
+			return
+		end
+		if setstring:sub(1,2) == "m," then
+			-- This table is a list of references to the members of this set.
+			self[key] = {}
+			local working = self[key]
+			for childset in setstring:sub(3):gmatch("([^,]+)") do
+				if childset ~= key then -- infinite loops is bad
+					local pointer = cache[childset]
+					if pointer then
+						local _, firstv = next(pointer)
+						if type(firstv) == "table" then
+							-- This is a multiset, copy its references
+							for _,v in ipairs(pointer) do
+								working[#working+1] = v
+							end
+						elseif firstv then
+							-- This is not a multiset, just stick a reference in.
+							working[#working+1] = pointer
+						end
+					end
+				end
+			end
+			return working
+		else
+			-- normal ol' set.  Well, maybe not, but close enough.
+			self[key] = {}
+			local working = self[key]
+			for itemstring in setstring:gmatch("([^,]+)") do
+				-- for each item (comma seperated)..
+				-- ...check to see if we have a value set (ie "14543:1121")
+				local id, value = itemstring:match("^([^:]+):(.+)$")
+				-- if we don't, (ie "14421,12312"), then set the value to true.
+				id, value = tonumber(id) or tonumber(itemstring), value or true
+				assert(id, 'malformed set? '..key)
+				working[id] = value
+			end
+			-- stick the set name in there so that we can find out which set an item originally came from.
+			working.set = key
+			return working
+		end
+	end
+})
+---------------------------------------------
+--                  API                    --
+---------------------------------------------
+-- These three are pretty simple.  Note that non-present chunks will be generated by the metamethods.
+function PT3:GetSetTable(set)
+	assert(type(set) == "string", "Invalid arg1: set must be a string")
+	return cache[set]
+end
+
+function PT3:GetSetString(set)
+	assert(type(set) == "string", "Invalid arg1: set must be a string")
+	return sets[set]
+end
+
+function PT3:IsSetMulti(set)
+	assert(type(set) == "string", "Invalid arg1: set must be a string")
+	-- Check if this set's a multiset by checking if its table contains tables instead of strings/booleans
+	local pointer = cache[set]
+	if not pointer then
+		return
+	end
+	local _, firstv = next(pointer)
+	if type(firstv) == "table" then
+		return true
+	else
+		return false
+	end
+end
+
+function PT3:IterateSet(set)
+	-- most of the work here is handled by the local functions above.
+	--!! this could maybe use some improvement...
+	local t = cache[set]
+	assert(t, "Invalid set: "..set)
+	if self:IsSetMulti(set) then
+		iternum, iterpos = 1, nil
+		return multisetiter, t
+	else
+		iterpos = nil
+		return setiter, t
+	end
+end
+
+-- Check if the item's contained in this set or any of it's child sets.  If it is, return the value
+-- (which is true for items with no value set) and the set where the item is contained in data.
+function PT3:ItemInSet(item, set)
+	assert(type(item) == "number" or type(item) == "string", "Invalid arg1: item must be a number or item link")
+	assert(type(set) == "string", "Invalid arg2: set must be a string")
+	-- Type the passed item out to an itemid.
+	item = getItemID(item)
+	assert(item ~= 0,"Invalid arg1: invalid item.")
+	local pointer = cache[set]
+	if not pointer then
+		return
+	end
+	local _, firstv = next(pointer)
+	if type(firstv) == "table" then
+		-- The requested set is a multiset, iterate its children.  Return the first matching item.
+		for _,v in ipairs(pointer) do
+			if v[item] then
+				return v[item], v.set
+			end
+		end
+	elseif pointer[item] then
+		-- Not a multiset, just return the value and set name.
+		return pointer[item], pointer.set
+	end
+end
+
+function PT3:AddData(arg1, arg2, arg3)
+	assert(type(arg1) == "string", "Invalid arg1: name must be a string")
+	assert(type(arg2) == "string" or type(arg2) == "table", "Invalid arg2: must be set contents string or table, or revision string")
+	assert((arg3 and type(arg3) == "table") or not arg3, "Invalid arg3: must be a table")
+	if not arg3 and type(arg2) == "string" then
+		-- Just a string.
+		local replacing
+		if rawget(sets, arg1) then
+			replacing = true
+		end
+		sets[arg1] = arg2
+		-- Clear the cache of this set's data if it exists, avoiding invoking the metamethod.
+		-- No sense generating data if we're just gonna nuke it anyway ;)
+		if replacing then
+			shredCache(arg1)
+		end
+	else
+		-- Table of sets passed.
+		if arg3 then
+			-- Woot, version numbers and everything.
+			assert(type(arg2) == "string", "Invalid arg2: must be revision string")
+			local version = tonumber(arg2:match("(%d+)"))
+			if embedversions[arg1] and embedversions[arg1] >= version then
+				-- The loaded version is newer than this one.
+				return
+			end
+			embedversions[arg1] = version
+			for k,v in pairs(arg3) do
+				-- Looks good, throw 'em in there one by one
+				self:AddData(k,v)
+			end
+		else
+			-- Boo, no version numbers.  Just overwrite all these sets.
+			for k,v in pairs(arg2) do
+				self:AddData(k,v)
+			end
+		end
+	end
+end
+
+function PT3:ItemSearch(item)
+	assert(type(item) == "number" or type(item) == "string", "Invalid arg1: item must be a number or item link")
+	item = tonumber(item) or tonumber(item:match("item:(%d+)"))
+	if item == 0 then
+		self:error("Invalid arg1: invalid item.")
+	end
+	local matches = {}
+	for k,v in pairs(self.sets) do
+		local _, set = self:ItemInSet(item, k)
+		if set then
+			local have
+			for _,v in ipairs(matches) do
+				if v == set then
+					have = true
+				end
+			end
+			if not have then
+				table.insert(matches, set)
+			end
+		end
+	end
+	if #matches > 0 then
+		return matches
+	end
+end
+
+-- ie, LibStub('PeriodicTable-3.1')('InstanceLoot') == LibStub('LibPeriodicTable-3.1'):GetSetTable('InstanceLoot')
+setmetatable(PT3, { __call = PT3.GetSetTable })
\ No newline at end of file
diff --git a/libs/LibQTip-1.0.lua b/libs/LibQTip-1.0.lua
new file mode 100644
index 0000000..e929fae
--- /dev/null
+++ b/libs/LibQTip-1.0.lua
@@ -0,0 +1,1208 @@
+local MAJOR = "LibQTip-1.0"
+local MINOR = 34 -- Should be manually increased
+assert(LibStub, MAJOR.." requires LibStub")
+
+local lib, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
+if not lib then return end -- No upgrade needed
+
+------------------------------------------------------------------------------
+-- Upvalued globals
+------------------------------------------------------------------------------
+local type = type
+local select = select
+local error = error
+local pairs, ipairs = pairs, ipairs
+local tonumber, tostring = tonumber, tostring
+local strfind = string.find
+local math = math
+local min, max = math.min, math.max
+local setmetatable = setmetatable
+local tinsert, tremove = tinsert, tremove
+local wipe = wipe
+
+local CreateFrame = CreateFrame
+local UIParent = UIParent
+
+------------------------------------------------------------------------------
+-- Tables and locals
+------------------------------------------------------------------------------
+lib.frameMetatable = lib.frameMetatable or {__index = CreateFrame("Frame")}
+
+lib.tipPrototype = lib.tipPrototype or setmetatable({}, lib.frameMetatable)
+lib.tipMetatable = lib.tipMetatable or {__index = lib.tipPrototype}
+
+lib.providerPrototype = lib.providerPrototype or {}
+lib.providerMetatable = lib.providerMetatable or {__index = lib.providerPrototype}
+
+lib.cellPrototype = lib.cellPrototype or setmetatable({}, lib.frameMetatable)
+lib.cellMetatable = lib.cellMetatable or { __index = lib.cellPrototype }
+
+lib.activeTooltips = lib.activeTooltips or {}
+
+lib.tooltipHeap = lib.tooltipHeap or {}
+lib.frameHeap = lib.frameHeap or {}
+lib.tableHeap = lib.tableHeap or {}
+
+local tipPrototype = lib.tipPrototype
+local tipMetatable = lib.tipMetatable
+
+local providerPrototype = lib.providerPrototype
+local providerMetatable = lib.providerMetatable
+
+local cellPrototype = lib.cellPrototype
+local cellMetatable = lib.cellMetatable
+
+local activeTooltips = lib.activeTooltips
+
+------------------------------------------------------------------------------
+-- Private methods for Caches and Tooltip
+------------------------------------------------------------------------------
+local AcquireTooltip, ReleaseTooltip
+local AcquireCell, ReleaseCell
+local AcquireTable, ReleaseTable
+
+local InitializeTooltip, SetTooltipSize, ResetTooltipSize, LayoutColspans
+local ClearTooltipScripts
+local SetFrameScript, ClearFrameScripts
+
+------------------------------------------------------------------------------
+-- Cache debugging.
+------------------------------------------------------------------------------
+--[===[@debug@
+local usedTables, usedFrames, usedTooltips = 0, 0, 0
+--@end-debug@]===]
+
+------------------------------------------------------------------------------
+-- Internal constants to tweak the layout
+------------------------------------------------------------------------------
+local TOOLTIP_PADDING = 10
+local CELL_MARGIN_H = 6
+local CELL_MARGIN_V = 3
+
+------------------------------------------------------------------------------
+-- Public library API
+------------------------------------------------------------------------------
+--- Create or retrieve the tooltip with the given key.
+-- If additional arguments are passed, they are passed to :SetColumnLayout for the acquired tooltip.
+-- @name LibQTip:Acquire(key[, numColumns, column1Justification, column2justification, ...])
+-- @param key string or table - the tooltip key. Any value that can be used as a table key is accepted though you should try to provide unique keys to avoid conflicts.
+-- Numbers and booleans should be avoided and strings should be carefully chosen to avoid namespace clashes - no "MyTooltip" - you have been warned!
+-- @return tooltip Frame object - the acquired tooltip.
+-- @usage Acquire a tooltip with at least 5 columns, justification : left, center, left, left, left
+-- <pre>local tip = LibStub('LibQTip-1.0'):Acquire('MyFooBarTooltip', 5, "LEFT", "CENTER")</pre>
+function lib:Acquire(key, ...)
+	if key == nil then
+		error("attempt to use a nil key", 2)
+	end
+	local tooltip = activeTooltips[key]
+
+	if not tooltip then
+		tooltip = AcquireTooltip()
+		InitializeTooltip(tooltip, key)
+		activeTooltips[key] = tooltip
+	end
+
+	if select('#', ...) > 0 then
+		-- Here we catch any error to properly report it for the calling code
+		local ok, msg = pcall(tooltip.SetColumnLayout, tooltip, ...)
+
+		if not ok then
+			error(msg, 2)
+		end
+	end
+	return tooltip
+end
+
+function lib:Release(tooltip)
+	local key = tooltip and tooltip.key
+
+	if not key or activeTooltips[key] ~= tooltip then
+		return
+	end
+	ReleaseTooltip(tooltip)
+	activeTooltips[key] = nil
+end
+
+function lib:IsAcquired(key)
+	if key == nil then
+		error("attempt to use a nil key", 2)
+	end
+	return not not activeTooltips[key]
+end
+
+function lib:IterateTooltips()
+	return pairs(activeTooltips)
+end
+
+------------------------------------------------------------------------------
+-- Frame cache
+------------------------------------------------------------------------------
+local frameHeap = lib.frameHeap
+
+local function AcquireFrame(parent)
+	local frame = tremove(frameHeap) or CreateFrame("Frame")
+	frame:SetParent(parent)
+	--[===[@debug@
+	usedFrames = usedFrames + 1
+	--@end-debug@]===]
+	return frame
+end
+
+local function ReleaseFrame(frame)
+	frame:Hide()
+	frame:SetParent(nil)
+	frame:ClearAllPoints()
+	frame:SetBackdrop(nil)
+	ClearFrameScripts(frame)
+	tinsert(frameHeap, frame)
+	--[===[@debug@
+	usedFrames = usedFrames - 1
+	--@end-debug@]===]
+end
+
+------------------------------------------------------------------------------
+-- Dirty layout handler
+------------------------------------------------------------------------------
+lib.layoutCleaner = lib.layoutCleaner or CreateFrame('Frame')
+
+local layoutCleaner = lib.layoutCleaner
+layoutCleaner.registry = layoutCleaner.registry or {}
+
+function layoutCleaner:RegisterForCleanup(tooltip)
+	self.registry[tooltip] = true
+	self:Show()
+end
+
+function layoutCleaner:CleanupLayouts()
+	self:Hide()
+	for tooltip in pairs(self.registry) do
+		LayoutColspans(tooltip)
+	end
+	wipe(self.registry)
+end
+layoutCleaner:SetScript('OnUpdate', layoutCleaner.CleanupLayouts)
+
+------------------------------------------------------------------------------
+-- CellProvider and Cell
+------------------------------------------------------------------------------
+function providerPrototype:AcquireCell()
+	local cell = tremove(self.heap)
+	if not cell then
+		cell = setmetatable(CreateFrame("Frame", nil, UIParent), self.cellMetatable)
+		if type(cell.InitializeCell) == 'function' then
+			cell:InitializeCell()
+		end
+	end
+	self.cells[cell] = true
+	return cell
+end
+
+function providerPrototype:ReleaseCell(cell)
+	if not self.cells[cell] then return end
+	if type(cell.ReleaseCell) == 'function' then
+		cell:ReleaseCell()
+	end
+	self.cells[cell] = nil
+	tinsert(self.heap, cell)
+end
+
+function providerPrototype:GetCellPrototype()
+	return self.cellPrototype, self.cellMetatable
+end
+
+function providerPrototype:IterateCells()
+	return pairs(self.cells)
+end
+
+function lib:CreateCellProvider(baseProvider)
+	local cellBaseMetatable, cellBasePrototype
+	if baseProvider and baseProvider.GetCellPrototype then
+		cellBasePrototype, cellBaseMetatable = baseProvider:GetCellPrototype()
+	else
+		cellBaseMetatable = cellMetatable
+	end
+	local cellPrototype = setmetatable({}, cellBaseMetatable)
+	local cellProvider = setmetatable({}, providerMetatable)
+	cellProvider.heap = {}
+	cellProvider.cells = {}
+	cellProvider.cellPrototype = cellPrototype
+	cellProvider.cellMetatable = { __index = cellPrototype }
+	return cellProvider, cellPrototype, cellBasePrototype
+end
+
+------------------------------------------------------------------------------
+-- Basic label provider
+------------------------------------------------------------------------------
+if not lib.LabelProvider then
+	lib.LabelProvider, lib.LabelPrototype = lib:CreateCellProvider()
+end
+
+local labelProvider = lib.LabelProvider
+local labelPrototype = lib.LabelPrototype
+
+function labelPrototype:InitializeCell()
+	self.fontString = self:CreateFontString()
+	self.fontString:SetFontObject(GameTooltipText)
+end
+
+function labelPrototype:SetupCell(tooltip, value, justification, font, l_pad, r_pad, max_width, min_width, ...)
+	local fs = self.fontString
+	fs:SetFontObject(font or tooltip:GetFont())
+	fs:SetJustifyH(justification)
+	fs:SetText(tostring(value))
+
+	l_pad = l_pad or 0
+	r_pad = r_pad or 0
+
+	local width = fs:GetStringWidth() + l_pad + r_pad
+
+	fs:SetPoint("TOPLEFT", self, "TOPLEFT", l_pad, 0)
+	fs:SetPoint("BOTTOMRIGHT", self, "BOTTOMRIGHT", -r_pad, 0)
+
+	if max_width and min_width and (max_width < min_width) then
+		error("maximum width cannot be lower than minimum width: "..tostring(max_width).." < "..tostring(min_width), 2)
+	end
+
+	if min_width and width < min_width then
+		width = min_width
+	end
+
+	if max_width and max_width < width then
+		width = max_width
+	end
+	fs:SetWidth(width)
+	fs:Show()
+
+	-- Use GetHeight() instead of GetStringHeight() so lines which are longer than width will wrap.
+	return width, fs:GetHeight()
+end
+
+function labelPrototype:GetPosition() return self._line, self._column end
+
+------------------------------------------------------------------------------
+-- Tooltip cache
+------------------------------------------------------------------------------
+local tooltipHeap = lib.tooltipHeap
+
+-- Returns a tooltip
+function AcquireTooltip()
+	local tooltip = tremove(tooltipHeap)
+
+	if not tooltip then
+		tooltip = CreateFrame("Frame", nil, UIParent)
+
+		local scrollFrame = CreateFrame("ScrollFrame", nil, tooltip)
+		scrollFrame:SetPoint("TOP", tooltip, "TOP", 0, -TOOLTIP_PADDING)
+		scrollFrame:SetPoint("BOTTOM", tooltip, "BOTTOM", 0, TOOLTIP_PADDING)
+		scrollFrame:SetPoint("LEFT", tooltip, "LEFT", TOOLTIP_PADDING, 0)
+		scrollFrame:SetPoint("RIGHT", tooltip, "RIGHT", -TOOLTIP_PADDING, 0)
+		tooltip.scrollFrame = scrollFrame
+
+		local scrollChild = CreateFrame("Frame", nil, tooltip.scrollFrame)
+		scrollFrame:SetScrollChild(scrollChild)
+		tooltip.scrollChild = scrollChild
+		setmetatable(tooltip, tipMetatable)
+	end
+	--[===[@debug@
+	usedTooltips = usedTooltips + 1
+	--@end-debug@]===]
+	return tooltip
+end
+
+-- Cleans the tooltip and stores it in the cache
+function ReleaseTooltip(tooltip)
+	if tooltip.releasing then
+		return
+	end
+	tooltip.releasing = true
+
+	tooltip:Hide()
+
+	if tooltip.OnRelease then
+		local success, errorMessage = pcall(tooltip.OnRelease, tooltip)
+		if not success then
+			geterrorhandler()(errorMessage)
+		end
+		tooltip.OnRelease = nil
+	end
+
+	tooltip.releasing = nil
+	tooltip.key = nil
+
+	ClearTooltipScripts(tooltip)
+
+	tooltip:SetAutoHideDelay(nil)
+	tooltip:ClearAllPoints()
+	tooltip:Clear()
+
+	if tooltip.slider then
+		tooltip.slider:SetValue(0)
+		tooltip.slider:Hide()
+		tooltip.scrollFrame:SetPoint("RIGHT", tooltip, "RIGHT", -TOOLTIP_PADDING, 0)
+		tooltip:EnableMouseWheel(false)
+	end
+
+	for i, column in ipairs(tooltip.columns) do
+		tooltip.columns[i] = ReleaseFrame(column)
+	end
+	tooltip.columns = ReleaseTable(tooltip.columns)
+	tooltip.lines = ReleaseTable(tooltip.lines)
+	tooltip.colspans = ReleaseTable(tooltip.colspans)
+
+	layoutCleaner.registry[tooltip] = nil
+	tinsert(tooltipHeap, tooltip)
+	--[===[@debug@
+	usedTooltips = usedTooltips - 1
+	--@end-debug@]===]
+end
+
+------------------------------------------------------------------------------
+-- Cell 'cache' (just a wrapper to the provider's cache)
+------------------------------------------------------------------------------
+-- Returns a cell for the given tooltip from the given provider
+function AcquireCell(tooltip, provider)
+	local cell = provider:AcquireCell(tooltip)
+
+	cell:SetParent(tooltip.scrollChild)
+	cell:SetFrameLevel(tooltip.scrollChild:GetFrameLevel() + 3)
+	cell._provider = provider
+	return cell
+end
+
+-- Cleans the cell hands it to its provider for storing
+function ReleaseCell(cell)
+	cell:Hide()
+	cell:ClearAllPoints()
+	cell:SetParent(nil)
+	cell:SetBackdrop(nil)
+	ClearFrameScripts(cell)
+	cell._font, cell._justification, cell._colSpan,	cell._line, cell._column = nil
+
+	cell._provider:ReleaseCell(cell)
+	cell._provider = nil
+end
+
+------------------------------------------------------------------------------
+-- Table cache
+------------------------------------------------------------------------------
+local tableHeap = lib.tableHeap
+
+-- Returns a table
+function AcquireTable()
+	local tbl = tremove(tableHeap) or {}
+	--[===[@debug@
+	usedTables = usedTables + 1
+	--@end-debug@]===]
+	return tbl
+end
+
+-- Cleans the table and stores it in the cache
+function ReleaseTable(table)
+	wipe(table)
+	tinsert(tableHeap, table)
+	--[===[@debug@
+	usedTables = usedTables - 1
+	--@end-debug@]===]
+end
+
+------------------------------------------------------------------------------
+-- Tooltip prototype
+------------------------------------------------------------------------------
+function InitializeTooltip(tooltip, key)
+	----------------------------------------------------------------------
+	-- (Re)set frame settings
+	----------------------------------------------------------------------
+	tooltip:SetBackdrop(GameTooltip:GetBackdrop())
+	tooltip:SetBackdropColor(GameTooltip:GetBackdropColor())
+	tooltip:SetBackdropBorderColor(GameTooltip:GetBackdropBorderColor())
+	tooltip:SetScale(GameTooltip:GetScale())
+	tooltip:SetAlpha(1)
+	tooltip:SetFrameStrata("TOOLTIP")
+	tooltip:SetClampedToScreen(false)
+
+	----------------------------------------------------------------------
+	-- Internal data. Since it's possible to Acquire twice without calling
+	-- release, check for pre-existence.
+	----------------------------------------------------------------------
+	tooltip.key = key
+	tooltip.columns = tooltip.columns or AcquireTable()
+	tooltip.lines = tooltip.lines or AcquireTable()
+	tooltip.colspans = tooltip.colspans or AcquireTable()
+	tooltip.regularFont = GameTooltipText
+	tooltip.headerFont = GameTooltipHeaderText
+	tooltip.labelProvider = labelProvider
+	tooltip.cell_margin_h = tooltip.cell_margin_h or CELL_MARGIN_H
+	tooltip.cell_margin_v = tooltip.cell_margin_v or CELL_MARGIN_V
+
+	----------------------------------------------------------------------
+	-- Finishing procedures
+	----------------------------------------------------------------------
+	tooltip:SetAutoHideDelay(nil)
+	tooltip:Hide()
+	ResetTooltipSize(tooltip)
+end
+
+function tipPrototype:SetDefaultProvider(myProvider)
+	if not myProvider then
+		return
+	end
+	self.labelProvider = myProvider
+end
+
+function tipPrototype:GetDefaultProvider() return self.labelProvider end
+
+local function checkJustification(justification, level, silent)
+	if justification ~= "LEFT" and justification ~= "CENTER" and justification ~= "RIGHT" then
+		if silent then
+			return false
+		end
+		error("invalid justification, must one of LEFT, CENTER or RIGHT, not: "..tostring(justification), level+1)
+	end
+	return true
+end
+
+function tipPrototype:SetColumnLayout(numColumns, ...)
+	if type(numColumns) ~= "number" or numColumns < 1  then
+		error("number of columns must be a positive number, not: "..tostring(numColumns), 2)
+	end
+
+	for i = 1, numColumns do
+		local justification = select(i, ...) or "LEFT"
+
+		checkJustification(justification, 2)
+
+		if self.columns[i] then
+			self.columns[i].justification = justification
+		else
+			self:AddColumn(justification)
+		end
+	end
+end
+
+function tipPrototype:AddColumn(justification)
+	justification = justification or "LEFT"
+	checkJustification(justification, 2)
+
+	local colNum = #self.columns + 1
+	local column = self.columns[colNum] or AcquireFrame(self.scrollChild)
+	column:SetFrameLevel(self.scrollChild:GetFrameLevel() + 1)
+	column.justification = justification
+	column.width = 0
+	column:SetWidth(1)
+	column:SetPoint("TOP", self.scrollChild)
+	column:SetPoint("BOTTOM", self.scrollChild)
+
+	if colNum > 1 then
+		local h_margin = self.cell_margin_h or CELL_MARGIN_H
+
+		column:SetPoint("LEFT", self.columns[colNum - 1], "RIGHT", h_margin, 0)
+		SetTooltipSize(self, self.width + h_margin, self.height)
+	else
+		column:SetPoint("LEFT", self.scrollChild)
+	end
+	column:Show()
+	self.columns[colNum] = column
+	return colNum
+end
+
+------------------------------------------------------------------------------
+-- Convenient methods
+------------------------------------------------------------------------------
+
+function tipPrototype:Release()
+	lib:Release(self)
+end
+
+function tipPrototype:IsAcquiredBy(key)
+	return key ~= nil and self.key == key
+end
+
+------------------------------------------------------------------------------
+-- Script hooks
+------------------------------------------------------------------------------
+
+local RawSetScript = lib.frameMetatable.__index.SetScript
+
+function ClearTooltipScripts(tooltip)
+	if tooltip.scripts then
+		for scriptType in pairs(tooltip.scripts) do
+			RawSetScript(tooltip, scriptType, nil)
+		end
+		tooltip.scripts = ReleaseTable(tooltip.scripts)
+	end
+end
+
+function tipPrototype:SetScript(scriptType, handler)
+	RawSetScript(self, scriptType, handler)
+	if handler then
+		if not self.scripts then
+			self.scripts = AcquireTable()
+		end
+		self.scripts[scriptType] = true
+	elseif self.scripts then
+		self.scripts[scriptType] = nil
+	end
+end
+
+-- That might break some addons ; those addons were breaking other
+-- addons' tooltip though.
+function tipPrototype:HookScript()
+	geterrorhandler()(":HookScript is not allowed on LibQTip tooltips")
+end
+
+------------------------------------------------------------------------------
+-- Scrollbar data and functions
+------------------------------------------------------------------------------
+local sliderBackdrop = {
+	["bgFile"] = [[Interface\Buttons\UI-SliderBar-Background]],
+	["edgeFile"] = [[Interface\Buttons\UI-SliderBar-Border]],
+	["tile"] = true,
+	["edgeSize"] = 8,
+	["tileSize"] = 8,
+	["insets"] = {
+		["left"] = 3,
+		["right"] = 3,
+		["top"] = 3,
+		["bottom"] = 3,
+	},
+}
+
+local function slider_OnValueChanged(self)
+	self.scrollFrame:SetVerticalScroll(self:GetValue())
+end
+
+local function tooltip_OnMouseWheel(self, delta)
+	local slider = self.slider
+	local currentValue = slider:GetValue()
+	local minValue, maxValue = slider:GetMinMaxValues()
+
+	if delta < 0 and currentValue < maxValue then
+		slider:SetValue(min(maxValue, currentValue + 10))
+	elseif delta > 0 and currentValue > minValue then
+		slider:SetValue(max(minValue, currentValue - 10))
+	end
+end
+
+-- will resize the tooltip to fit the screen and show a scrollbar if needed
+function tipPrototype:UpdateScrolling(maxheight)
+	self:SetClampedToScreen(false)
+
+	-- all data is in the tooltip; fix colspan width and prevent the layout cleaner from messing up the tooltip later
+	LayoutColspans(self)
+	layoutCleaner.registry[self] = nil
+
+	local scale = self:GetScale()
+	local topside = self:GetTop()
+	local bottomside = self:GetBottom()
+	local screensize = UIParent:GetHeight() / scale
+	local tipsize = (topside - bottomside) / scale
+
+	-- if the tooltip would be too high, limit its height and show the slider
+	if bottomside < 0 or topside > screensize or (maxheight and tipsize > maxheight) then
+		local shrink = (bottomside < 0 and (5 - bottomside) or 0) + (topside > screensize and (topside - screensize + 5) or 0)
+
+		if maxheight and tipsize - shrink > maxheight then
+			shrink = tipsize - maxheight
+		end
+		self:SetHeight(2 * TOOLTIP_PADDING + self.height - shrink)
+		self:SetWidth(2 * TOOLTIP_PADDING + self.width + 20)
+		self.scrollFrame:SetPoint("RIGHT", self, "RIGHT", -(TOOLTIP_PADDING + 20), 0)
+
+		if not self.slider then
+			local slider = CreateFrame("Slider", nil, self)
+
+			self.slider = slider
+
+			slider:SetOrientation("VERTICAL")
+			slider:SetPoint("TOPRIGHT", self, "TOPRIGHT", -TOOLTIP_PADDING, -TOOLTIP_PADDING)
+			slider:SetPoint("BOTTOMRIGHT", self, "BOTTOMRIGHT", -TOOLTIP_PADDING, TOOLTIP_PADDING)
+			slider:SetBackdrop(sliderBackdrop)
+			slider:SetThumbTexture([[Interface\Buttons\UI-SliderBar-Button-Vertical]])
+			slider:SetMinMaxValues(0, 1)
+			slider:SetValueStep(1)
+			slider:SetWidth(12)
+			slider.scrollFrame = self.scrollFrame
+			slider:SetScript("OnValueChanged", slider_OnValueChanged)
+			slider:SetValue(0)
+		end
+		self.slider:SetMinMaxValues(0, shrink)
+		self.slider:Show()
+		self:EnableMouseWheel(true)
+		self:SetScript("OnMouseWheel", tooltip_OnMouseWheel)
+	else
+		self:SetHeight(2 * TOOLTIP_PADDING + self.height)
+		self:SetWidth(2 * TOOLTIP_PADDING + self.width)
+		self.scrollFrame:SetPoint("RIGHT", self, "RIGHT", -TOOLTIP_PADDING, 0)
+
+		if self.slider then
+			self.slider:SetValue(0)
+			self.slider:Hide()
+			self:EnableMouseWheel(false)
+			self:SetScript("OnMouseWheel", nil)
+		end
+	end
+end
+
+------------------------------------------------------------------------------
+-- Tooltip methods for changing its contents.
+------------------------------------------------------------------------------
+function tipPrototype:Clear()
+	for i, line in ipairs(self.lines) do
+		for j, cell in pairs(line.cells) do
+			if cell then
+				ReleaseCell(cell)
+			end
+		end
+		ReleaseTable(line.cells)
+		line.cells = nil
+		ReleaseFrame(line)
+		self.lines[i] = nil
+	end
+
+	for i, column in ipairs(self.columns) do
+		column.width = 0
+		column:SetWidth(1)
+	end
+	wipe(self.colspans)
+	self.cell_margin_h = nil
+	self.cell_margin_v = nil
+	ResetTooltipSize(self)
+end
+
+function tipPrototype:SetCellMarginH(size)
+	if #self.lines > 0 then
+		error("Unable to set horizontal margin while the tooltip has lines.", 2)
+	end
+
+	if not size or type(size) ~= "number" or size < 0 then
+		error("Margin size must be a positive number or zero.", 2)
+	end
+	self.cell_margin_h = size
+end
+
+function tipPrototype:SetCellMarginV(size)
+	if #self.lines > 0 then
+		error("Unable to set vertical margin while the tooltip has lines.", 2)
+	end
+
+	if not size or type(size) ~= "number" or size < 0 then
+		error("Margin size must be a positive number or zero.", 2)
+	end
+	self.cell_margin_v = size
+end
+
+local function checkFont(font, level, silent)
+	if not font or type(font) ~= 'table' or type(font.IsObjectType) ~= 'function' or not font:IsObjectType("Font") then
+		if silent then
+			return false
+		end
+		error("font must be Font instance, not: "..tostring(font), level + 1)
+	end
+	return true
+end
+
+function tipPrototype:SetFont(font)
+	checkFont(font, 2)
+	self.regularFont = font
+end
+
+function tipPrototype:GetFont() return self.regularFont end
+
+function tipPrototype:SetHeaderFont(font)
+	checkFont(font, 2)
+	self.headerFont = font
+end
+
+function tipPrototype:GetHeaderFont() return self.headerFont end
+
+function SetTooltipSize(tooltip, width, height)
+	tooltip:SetHeight(2 * TOOLTIP_PADDING + height)
+	tooltip.scrollChild:SetHeight(height)
+	tooltip.height = height
+
+	tooltip:SetWidth(2 * TOOLTIP_PADDING + width)
+	tooltip.scrollChild:SetWidth(width)
+	tooltip.width = width
+end
+
+-- Add 2 pixels to height so dangling letters (g, y, p, j, etc) are not clipped.
+function ResetTooltipSize(tooltip)
+	local h_margin = tooltip.cell_margin_h or CELL_MARGIN_H
+
+	SetTooltipSize(tooltip, max(0, (h_margin * (#tooltip.columns - 1)) + (h_margin / 2)), 2)
+end
+
+local function EnlargeColumn(tooltip, column, width)
+	if width > column.width then
+		SetTooltipSize(tooltip, tooltip.width + width - column.width, tooltip.height)
+
+		column.width = width
+		column:SetWidth(width)
+	end
+end
+
+function LayoutColspans(tooltip)
+	local columns = tooltip.columns
+
+	for colRange, width in pairs(tooltip.colspans) do
+		local h_margin = tooltip.cell_margin_h or CELL_MARGIN_H
+		local left, right = colRange:match("^(%d+)%-(%d+)$")
+		left, right = tonumber(left), tonumber(right)
+
+		for col = left, right-1 do
+			width = width - columns[col].width - h_margin
+		end
+		EnlargeColumn(tooltip, columns[right], width)
+	end
+	wipe(tooltip.colspans)
+end
+
+local function _SetCell(tooltip, lineNum, colNum, value, font, justification, colSpan, provider, ...)
+	local line = tooltip.lines[lineNum]
+	local cells = line.cells
+
+	-- Unset: be quick
+	if value == nil then
+		local cell = cells[colNum]
+
+		if cell then
+			for i = colNum, colNum + cell._colSpan - 1 do
+				cells[i] = nil
+			end
+			ReleaseCell(cell)
+		end
+		return lineNum, colNum
+	end
+
+	-- Check previous cell
+	local cell
+	local prevCell = cells[colNum]
+
+	if prevCell then
+		-- There is a cell here
+		font = font or prevCell._font
+		justification = justification or prevCell._justification
+		colSpan = colSpan or prevCell._colSpan
+
+		-- Clear the currently marked colspan
+		for i = colNum + 1, colNum + prevCell._colSpan - 1 do
+			cells[i] = nil
+		end
+
+		if provider == nil or prevCell._provider == provider then
+			-- Reuse existing cell
+			cell = prevCell
+			provider = cell._provider
+		else
+			-- A new cell is required
+			cells[colNum] = ReleaseCell(prevCell)
+		end
+	elseif prevCell == nil then
+		-- Creating a new cell, using meaningful defaults.
+		provider = provider or tooltip.labelProvider
+		font = font or tooltip.regularFont
+		justification = justification or tooltip.columns[colNum].justification or "LEFT"
+		colSpan = colSpan or 1
+	else
+		error("overlapping cells at column "..colNum, 3)
+	end
+	local tooltipWidth = #tooltip.columns
+	local rightColNum
+
+	if colSpan > 0 then
+		rightColNum = colNum + colSpan - 1
+
+		if rightColNum > tooltipWidth then
+			error("ColSpan too big, cell extends beyond right-most column", 3)
+		end
+	else
+		-- Zero or negative: count back from right-most columns
+		rightColNum = max(colNum, tooltipWidth + colSpan)
+		-- Update colspan to its effective value
+		colSpan = 1 + rightColNum - colNum
+	end
+
+	-- Cleanup colspans
+	for i = colNum + 1, rightColNum do
+		local cell = cells[i]
+
+		if cell then
+			ReleaseCell(cell)
+		elseif cell == false then
+			error("overlapping cells at column "..i, 3)
+		end
+		cells[i] = false
+	end
+
+	-- Create the cell
+	if not cell then
+		cell = AcquireCell(tooltip, provider)
+		cells[colNum] = cell
+	end
+
+	-- Anchor the cell
+	cell:SetPoint("LEFT", tooltip.columns[colNum])
+	cell:SetPoint("RIGHT", tooltip.columns[rightColNum])
+	cell:SetPoint("TOP", line)
+	cell:SetPoint("BOTTOM", line)
+
+	-- Store the cell settings directly into the cell
+	-- That's a bit risky but is really cheap compared to other ways to do it
+	cell._font, cell._justification, cell._colSpan,	cell._line, cell._column = font, justification, colSpan, lineNum, colNum
+
+	-- Setup the cell content
+	local width, height = cell:SetupCell(tooltip, value, justification, font, ...)
+	cell:Show()
+
+	if colSpan > 1 then
+		-- Postpone width changes until the tooltip is shown
+		local colRange = colNum.."-"..rightColNum
+
+		tooltip.colspans[colRange] = max(tooltip.colspans[colRange] or 0, width)
+		layoutCleaner:RegisterForCleanup(tooltip)
+	else
+		-- Enlarge the column and tooltip if need be
+		EnlargeColumn(tooltip, tooltip.columns[colNum], width)
+	end
+
+	-- Enlarge the line and tooltip if need be
+	if height > line.height then
+		SetTooltipSize(tooltip, tooltip.width, tooltip.height + height - line.height)
+
+		line.height = height
+		line:SetHeight(height)
+	end
+
+	if rightColNum < tooltipWidth then
+		return lineNum, rightColNum + 1
+	else
+		return lineNum, nil
+	end
+end
+
+local function CreateLine(tooltip, font, ...)
+	if #tooltip.columns == 0 then
+		error("column layout should be defined before adding line", 3)
+	end
+	local lineNum = #tooltip.lines + 1
+	local line = tooltip.lines[lineNum] or AcquireFrame(tooltip.scrollChild)
+
+	line:SetFrameLevel(tooltip.scrollChild:GetFrameLevel() + 2)
+	line:SetPoint('LEFT', tooltip.scrollChild)
+	line:SetPoint('RIGHT', tooltip.scrollChild)
+
+	if lineNum > 1 then
+		local v_margin = tooltip.cell_margin_v or CELL_MARGIN_V
+
+		line:SetPoint('TOP', tooltip.lines[lineNum-1], 'BOTTOM', 0, -v_margin)
+		SetTooltipSize(tooltip, tooltip.width, tooltip.height + v_margin)
+	else
+		line:SetPoint('TOP', tooltip.scrollChild)
+	end
+	tooltip.lines[lineNum] = line
+	line.cells = line.cells or AcquireTable()
+	line.height = 0
+	line:SetHeight(1)
+	line:Show()
+
+	local colNum = 1
+
+	for i = 1, #tooltip.columns do
+		local value = select(i, ...)
+
+		if value ~= nil then
+			lineNum, colNum = _SetCell(tooltip, lineNum, i, value, font, nil, 1, tooltip.labelProvider)
+		end
+	end
+	return lineNum, colNum
+end
+
+function tipPrototype:AddLine(...)
+	return CreateLine(self, self.regularFont, ...)
+end
+
+function tipPrototype:AddHeader(...)
+	return CreateLine(self, self.headerFont, ...)
+end
+
+local GenericBackdrop = {
+	bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
+}
+
+function tipPrototype:AddSeparator(height, r, g, b, a)
+	local lineNum, colNum = self:AddLine()
+	local line = self.lines[lineNum]
+	local color = NORMAL_FONT_COLOR
+
+	height = height or 1
+	SetTooltipSize(self, self.width, self.height + height)
+	line.height = height
+	line:SetHeight(height)
+	line:SetBackdrop(GenericBackdrop)
+	line:SetBackdropColor(r or color.r, g or color.g, b or color.b, a or 1)
+	return lineNum, colNum
+end
+
+function tipPrototype:SetCellColor(lineNum, colNum, r, g, b, a)
+	local cell = self.lines[lineNum].cells[colNum]
+
+	if cell then
+		local sr, sg, sb, sa = self:GetBackdropColor()
+		cell:SetBackdrop(GenericBackdrop)
+		cell:SetBackdropColor(r or sr, g or sg, b or sb, a or sa)
+	end
+end
+
+function tipPrototype:SetColumnColor(colNum, r, g, b, a)
+	local column = self.columns[colNum]
+
+	if column then
+		local sr, sg, sb, sa = self:GetBackdropColor()
+		column:SetBackdrop(GenericBackdrop)
+		column:SetBackdropColor(r or sr, g or sg, b or sb, a or sa)
+	end
+end
+
+function tipPrototype:SetLineColor(lineNum, r, g, b, a)
+	local line = self.lines[lineNum]
+
+	if line then
+		local sr, sg, sb, sa = self:GetBackdropColor()
+		line:SetBackdrop(GenericBackdrop)
+		line:SetBackdropColor(r or sr, g or sg, b or sb, a or sa)
+	end
+end
+
+-- TODO: fixed argument positions / remove checks for performance?
+function tipPrototype:SetCell(lineNum, colNum, value, ...)
+	-- Mandatory argument checking
+	if type(lineNum) ~= "number" then
+		error("line number must be a number, not: "..tostring(lineNum), 2)
+	elseif lineNum < 1 or lineNum > #self.lines then
+		error("line number out of range: "..tostring(lineNum), 2)
+	elseif type(colNum) ~= "number" then
+		error("column number must be a number, not: "..tostring(colNum), 2)
+	elseif colNum < 1 or colNum > #self.columns then
+		error("column number out of range: "..tostring(colNum), 2)
+	end
+
+	-- Variable argument checking
+	local font, justification, colSpan, provider
+	local i, arg = 1, ...
+
+	if arg == nil or checkFont(arg, 2, true) then
+		i, font, arg = 2, ...
+	end
+
+	if arg == nil or checkJustification(arg, 2, true) then
+		i, justification, arg = i + 1, select(i, ...)
+	end
+
+	if arg == nil or type(arg) == 'number' then
+		i, colSpan, arg = i + 1, select(i, ...)
+	end
+
+	if arg == nil or type(arg) == 'table' and type(arg.AcquireCell) == 'function' then
+		i, provider = i + 1, arg
+	end
+
+	return _SetCell(self, lineNum, colNum, value, font, justification, colSpan, provider, select(i, ...))
+end
+
+function tipPrototype:GetLineCount() return #self.lines end
+
+function tipPrototype:GetColumnCount() return #self.columns end
+
+
+------------------------------------------------------------------------------
+-- Frame Scripts
+------------------------------------------------------------------------------
+local highlight = CreateFrame("Frame", nil, UIParent)
+highlight:SetFrameStrata("TOOLTIP")
+highlight:Hide()
+
+highlight._texture = highlight:CreateTexture(nil, "OVERLAY")
+highlight._texture:SetTexture("Interface\\QuestFrame\\UI-QuestTitleHighlight")
+highlight._texture:SetBlendMode("ADD")
+highlight._texture:SetAllPoints(highlight)
+
+local scripts = {
+	OnEnter = function(frame, ...)
+		highlight:SetParent(frame)
+		highlight:SetAllPoints(frame)
+		highlight:Show()
+		if frame._OnEnter_func then
+			frame:_OnEnter_func(frame._OnEnter_arg, ...)
+		end
+	end,
+	OnLeave = function(frame, ...)
+		highlight:Hide()
+		highlight:ClearAllPoints()
+		highlight:SetParent(nil)
+		if frame._OnLeave_func then
+			frame:_OnLeave_func(frame._OnLeave_arg, ...)
+		end
+	end,
+	OnMouseDown = function(frame, ...)
+		frame:_OnMouseDown_func(frame._OnMouseDown_arg, ...)
+	end,
+	OnMouseUp = function(frame, ...)
+		frame:_OnMouseUp_func(frame._OnMouseUp_arg, ...)
+	end,
+}
+
+function SetFrameScript(frame, script, func, arg)
+	if not scripts[script] then
+		return
+	end
+	frame["_"..script.."_func"] = func
+	frame["_"..script.."_arg"] = arg
+
+	if script == "OnMouseDown" or script == "OnMouseUp" then
+		if func then
+			frame:SetScript(script, scripts[script])
+		else
+			frame:SetScript(script, nil)
+		end
+	end
+
+	-- if at least one script is set, set the OnEnter/OnLeave scripts for the highlight
+	if frame._OnEnter_func or frame._OnLeave_func or frame._OnMouseDown_func or frame._OnMouseUp_func then
+		frame:EnableMouse(true)
+		frame:SetScript("OnEnter", scripts.OnEnter)
+		frame:SetScript("OnLeave", scripts.OnLeave)
+	else
+		frame:EnableMouse(false)
+		frame:SetScript("OnEnter", nil)
+		frame:SetScript("OnLeave", nil)
+	end
+end
+
+function ClearFrameScripts(frame)
+	if frame._OnEnter_func or frame._OnLeave_func or frame._OnMouseDown_func or frame._OnMouseUp_func then
+		frame:EnableMouse(false)
+		frame:SetScript("OnEnter", nil)
+		frame._OnEnter_func = nil
+		frame._OnEnter_arg = nil
+		frame:SetScript("OnLeave", nil)
+		frame._OnLeave_func = nil
+		frame._OnLeave_arg = nil
+		frame:SetScript("OnMouseDown", nil)
+		frame._OnMouseDown_func = nil
+		frame._OnMouseDown_arg = nil
+		frame:SetScript("OnMouseUp", nil)
+		frame._OnMouseUp_func = nil
+		frame._OnMouseUp_arg = nil
+	end
+end
+
+function tipPrototype:SetLineScript(lineNum, script, func, arg)
+	SetFrameScript(self.lines[lineNum], script, func, arg)
+end
+
+function tipPrototype:SetColumnScript(colNum, script, func, arg)
+	SetFrameScript(self.columns[colNum], script, func, arg)
+end
+
+function tipPrototype:SetCellScript(lineNum, colNum, script, func, arg)
+	local cell = self.lines[lineNum].cells[colNum]
+	if cell then
+		SetFrameScript(cell, script, func, arg)
+	end
+end
+
+------------------------------------------------------------------------------
+-- Auto-hiding feature
+------------------------------------------------------------------------------
+
+-- Script of the auto-hiding child frame
+local function AutoHideTimerFrame_OnUpdate(self, elapsed)
+	self.checkElapsed = self.checkElapsed + elapsed
+	if self.checkElapsed > 0.1 then
+		if self.parent:IsMouseOver() or (self.alternateFrame and self.alternateFrame:IsMouseOver()) then
+			self.elapsed = 0
+		else
+			self.elapsed = self.elapsed + self.checkElapsed
+			if self.elapsed >= self.delay then
+				lib:Release(self.parent)
+			end
+		end
+		self.checkElapsed = 0
+	end
+end
+
+-- Usage:
+-- :SetAutoHideDelay(0.25) => hides after 0.25sec outside of the tooltip
+-- :SetAutoHideDelay(0.25, someFrame) => hides after 0.25sec outside of both the tooltip and someFrame
+-- :SetAutoHideDelay() => disable auto-hiding (default)
+function tipPrototype:SetAutoHideDelay(delay, alternateFrame)
+	local timerFrame = self.autoHideTimerFrame
+	delay = tonumber(delay) or 0
+
+	if delay > 0 then
+		if not timerFrame then
+			timerFrame = AcquireFrame(self)
+			timerFrame:SetScript("OnUpdate", AutoHideTimerFrame_OnUpdate)
+			self.autoHideTimerFrame = timerFrame
+		end
+		timerFrame.parent = self
+		timerFrame.checkElapsed = 0
+		timerFrame.elapsed = 0
+		timerFrame.delay = delay
+		timerFrame.alternateFrame = alternateFrame
+		timerFrame:Show()
+	elseif timerFrame then
+		self.autoHideTimerFrame = nil
+		timerFrame.alternateFrame = nil
+		timerFrame:SetScript("OnUpdate", nil)
+		ReleaseFrame(timerFrame)
+	end
+end
+
+------------------------------------------------------------------------------
+-- "Smart" Anchoring
+------------------------------------------------------------------------------
+local function GetTipAnchor(frame)
+	local x,y = frame:GetCenter()
+	if not x or not y then return "TOPLEFT", "BOTTOMLEFT" end
+	local hhalf = (x > UIParent:GetWidth() * 2/3) and "RIGHT" or (x < UIParent:GetWidth() / 3) and "LEFT" or ""
+	local vhalf = (y > UIParent:GetHeight() / 2) and "TOP" or "BOTTOM"
+	return vhalf..hhalf, frame, (vhalf == "TOP" and "BOTTOM" or "TOP")..hhalf
+end
+
+function tipPrototype:SmartAnchorTo(frame)
+	if not frame then
+		error("Invalid frame provided.", 2)
+	end
+	self:ClearAllPoints()
+	self:SetClampedToScreen(true)
+	self:SetPoint(GetTipAnchor(frame))
+end
+
+------------------------------------------------------------------------------
+-- Debug slashcmds
+------------------------------------------------------------------------------
+--[===[@debug@
+local print = print
+local function PrintStats()
+	local tipCache = tostring(#tooltipHeap)
+	local frameCache = tostring(#frameHeap)
+	local tableCache = tostring(#tableHeap)
+	local header = false
+
+	print("Tooltips used: "..usedTooltips..", Cached: "..tipCache..", Total: "..tipCache + usedTooltips)
+	print("Frames used: "..usedFrames..", Cached: "..frameCache..", Total: "..frameCache + usedFrames)
+	print("Tables used: "..usedTables..", Cached: "..tableCache..", Total: "..tableCache + usedTables)
+
+	for k, v in pairs(activeTooltips) do
+		if not header then
+			print("Active tooltips:")
+			header = true
+		end
+		print("- "..k)
+	end
+end
+
+SLASH_LibQTip1 = "/qtip"
+SlashCmdList["LibQTip"] = PrintStats
+--@end-debug@]===]
diff --git a/libs/LibStub.lua b/libs/LibStub.lua
new file mode 100644
index 0000000..3c48e5e
--- /dev/null
+++ b/libs/LibStub.lua
@@ -0,0 +1,30 @@
+-- LibStub is a simple versioning stub meant for use in Libraries.  http://www.wowace.com/wiki/LibStub for more info
+-- LibStub is hereby placed in the Public Domain Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke
+local LIBSTUB_MAJOR, LIBSTUB_MINOR = "LibStub", 2  -- NEVER MAKE THIS AN SVN REVISION! IT NEEDS TO BE USABLE IN ALL REPOS!
+local LibStub = _G[LIBSTUB_MAJOR]
+
+if not LibStub or LibStub.minor < LIBSTUB_MINOR then
+	LibStub = LibStub or {libs = {}, minors = {} }
+	_G[LIBSTUB_MAJOR] = LibStub
+	LibStub.minor = LIBSTUB_MINOR
+
+	function LibStub:NewLibrary(major, minor)
+		assert(type(major) == "string", "Bad argument #2 to `NewLibrary' (string expected)")
+		minor = assert(tonumber(strmatch(minor, "%d+")), "Minor version must either be a number or contain a number.")
+
+		local oldminor = self.minors[major]
+		if oldminor and oldminor >= minor then return nil end
+		self.minors[major], self.libs[major] = minor, self.libs[major] or {}
+		return self.libs[major], oldminor
+	end
+
+	function LibStub:GetLibrary(major, silent)
+		if not self.libs[major] and not silent then
+			error(("Cannot find a library instance of %q."):format(tostring(major)), 2)
+		end
+		return self.libs[major], self.minors[major]
+	end
+
+	function LibStub:IterateLibraries() return pairs(self.libs) end
+	setmetatable(LibStub, { __call = LibStub.GetLibrary })
+end
diff --git a/libs/tekKonfig/tekKonfig.xml b/libs/tekKonfig/tekKonfig.xml
new file mode 100644
index 0000000..2c07157
--- /dev/null
+++ b/libs/tekKonfig/tekKonfig.xml
@@ -0,0 +1,12 @@
+<Ui xmlns="http://www.blizzard.com/wow/ui/">
+<Script file="LibStub.lua"/>
+<Script file="tekKonfigAboutPanel.lua"/>
+<Script file="tekKonfigButton.lua"/>
+<Script file="tekKonfigCheckbox.lua"/>
+<Script file="tekKonfigDropdown.lua" />
+<Script file="tekKonfigGroup.lua"/>
+<Script file="tekKonfigHeading.lua"/>
+<Script file="tekKonfigScroll.lua"/>
+<Script file="tekKonfigSlider.lua"/>
+<Script file="tekKonfigTopTab.lua"/>
+</Ui>
\ No newline at end of file
diff --git a/libs/tekKonfig/tekKonfigAboutPanel.lua b/libs/tekKonfig/tekKonfigAboutPanel.lua
new file mode 100644
index 0000000..2547979
--- /dev/null
+++ b/libs/tekKonfig/tekKonfigAboutPanel.lua
@@ -0,0 +1,115 @@
+
+local lib, oldminor = LibStub:NewLibrary("tekKonfig-AboutPanel", 5)
+if not lib then return end
+
+
+function lib.new(parent, addonname)
+	local frame = CreateFrame("Frame", nil, InterfaceOptionsFramePanelContainer)
+	frame.name, frame.parent, frame.addonname = parent and "About" or addonname, parent, addonname
+	frame:Hide()
+	frame:SetScript("OnShow", lib.OnShow)
+	InterfaceOptions_AddCategory(frame)
+	return frame
+end
+
+
+local editbox = CreateFrame('EditBox', nil, UIParent)
+editbox:Hide()
+editbox:SetAutoFocus(true)
+editbox:SetHeight(32)
+editbox:SetFontObject('GameFontHighlightSmall')
+lib.editbox = editbox
+
+local left = editbox:CreateTexture(nil, "BACKGROUND")
+left:SetWidth(8) left:SetHeight(20)
+left:SetPoint("LEFT", -5, 0)
+left:SetTexture("Interface\\Common\\Common-Input-Border")
+left:SetTexCoord(0, 0.0625, 0, 0.625)
+
+local right = editbox:CreateTexture(nil, "BACKGROUND")
+right:SetWidth(8) right:SetHeight(20)
+right:SetPoint("RIGHT", 0, 0)
+right:SetTexture("Interface\\Common\\Common-Input-Border")
+right:SetTexCoord(0.9375, 1, 0, 0.625)
+
+local center = editbox:CreateTexture(nil, "BACKGROUND")
+center:SetHeight(20)
+center:SetPoint("RIGHT", right, "LEFT", 0, 0)
+center:SetPoint("LEFT", left, "RIGHT", 0, 0)
+center:SetTexture("Interface\\Common\\Common-Input-Border")
+center:SetTexCoord(0.0625, 0.9375, 0, 0.625)
+
+editbox:SetScript("OnEscapePressed", editbox.ClearFocus)
+editbox:SetScript("OnEnterPressed", editbox.ClearFocus)
+editbox:SetScript("OnEditFocusLost", editbox.Hide)
+editbox:SetScript("OnEditFocusGained", editbox.HighlightText)
+editbox:SetScript("OnTextChanged", function(self)
+	self:SetText(self:GetParent().val)
+	self:HighlightText()
+end)
+
+
+function lib.OpenEditbox(self)
+	editbox:SetText(self.val)
+	editbox:SetParent(self)
+	editbox:SetPoint("LEFT", self)
+	editbox:SetPoint("RIGHT", self)
+	editbox:Show()
+end
+
+
+local fields = {"Version", "Author", "X-Category", "X-License", "X-Email", "X-Website", "X-Credits"}
+local haseditbox = {["Version"] = true, ["X-Website"] = true, ["X-Email"] = true}
+local function HideTooltip() GameTooltip:Hide() end
+local function ShowTooltip(self)
+	GameTooltip:SetOwner(self, "ANCHOR_TOPRIGHT")
+	GameTooltip:SetText("Click and press Ctrl-C to copy")
+end
+function lib.OnShow(frame)
+	local notes = GetAddOnMetadata(frame.addonname, "Notes")
+
+	local title = frame:CreateFontString(nil, "ARTWORK", "GameFontNormalLarge")
+	title:SetPoint("TOPLEFT", 16, -16)
+	title:SetText((frame.parent or frame.addonname).." - About")
+
+	local subtitle = frame:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	subtitle:SetHeight(32)
+	subtitle:SetPoint("TOPLEFT", title, "BOTTOMLEFT", 0, -8)
+	subtitle:SetPoint("RIGHT", parent, -32, 0)
+	subtitle:SetNonSpaceWrap(true)
+	subtitle:SetJustifyH("LEFT")
+	subtitle:SetJustifyV("TOP")
+	subtitle:SetText(notes)
+
+	local anchor
+	for _,field in pairs(fields) do
+		local val = GetAddOnMetadata(frame.addonname, field)
+		if val then
+			local title = frame:CreateFontString(nil, "ARTWORK", "GameFontNormalSmall")
+			title:SetWidth(75)
+			if not anchor then title:SetPoint("TOPLEFT", subtitle, "BOTTOMLEFT", -2, -8)
+			else title:SetPoint("TOPLEFT", anchor, "BOTTOMLEFT", 0, -6) end
+			title:SetJustifyH("RIGHT")
+			title:SetText(field:gsub("X%-", ""))
+
+			local detail = frame:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+			detail:SetPoint("LEFT", title, "RIGHT", 4, 0)
+			detail:SetPoint("RIGHT", -16, 0)
+			detail:SetJustifyH("LEFT")
+			detail:SetText((haseditbox[field] and "|cff9999ff" or "").. val)
+
+			if haseditbox[field] then
+				local button = CreateFrame("Button", nil, frame)
+				button:SetAllPoints(detail)
+				button.val = val
+				button:SetScript("OnClick", lib.OpenEditbox)
+				button:SetScript("OnEnter", ShowTooltip)
+				button:SetScript("OnLeave", HideTooltip)
+			end
+
+			anchor = title
+		end
+	end
+
+	frame:SetScript("OnShow", nil)
+end
diff --git a/libs/tekKonfig/tekKonfigButton.lua b/libs/tekKonfig/tekKonfigButton.lua
new file mode 100644
index 0000000..4456258
--- /dev/null
+++ b/libs/tekKonfig/tekKonfigButton.lua
@@ -0,0 +1,55 @@
+
+local lib, oldminor = LibStub:NewLibrary("tekKonfig-Button", 5)
+if not lib then return end
+oldminor = oldminor or 0
+
+
+if oldminor < 5 then
+	local GameTooltip = GameTooltip
+	local function HideTooltip() GameTooltip:Hide() end
+	local function ShowTooltip(self)
+		if self.tiptext then
+			GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
+			GameTooltip:SetText(self.tiptext, nil, nil, nil, nil, true)
+		end
+	end
+
+
+	-- Create a button.
+	-- All args optional, parent recommended
+	function lib.new(parent, ...)
+		local butt = CreateFrame("Button", nil, parent)
+		if select("#", ...) > 0 then butt:SetPoint(...) end
+		butt:SetWidth(80) butt:SetHeight(22)
+
+		-- Fonts --
+		butt:SetDisabledFontObject(GameFontDisable)
+		butt:SetHighlightFontObject(GameFontHighlight)
+		butt:SetNormalFontObject(GameFontNormal)
+
+		-- Textures --
+		butt:SetNormalTexture("Interface\\Buttons\\UI-Panel-Button-Up")
+		butt:SetPushedTexture("Interface\\Buttons\\UI-Panel-Button-Down")
+		butt:SetHighlightTexture("Interface\\Buttons\\UI-Panel-Button-Highlight")
+		butt:SetDisabledTexture("Interface\\Buttons\\UI-Panel-Button-Disabled")
+		butt:GetNormalTexture():SetTexCoord(0, 0.625, 0, 0.6875)
+		butt:GetPushedTexture():SetTexCoord(0, 0.625, 0, 0.6875)
+		butt:GetHighlightTexture():SetTexCoord(0, 0.625, 0, 0.6875)
+		butt:GetDisabledTexture():SetTexCoord(0, 0.625, 0, 0.6875)
+		butt:GetHighlightTexture():SetBlendMode("ADD")
+
+		-- Tooltip bits
+		butt:SetScript("OnEnter", ShowTooltip)
+		butt:SetScript("OnLeave", HideTooltip)
+
+		return butt
+	end
+
+
+	function lib.new_small(parent, ...)
+		local butt = lib.new(parent, ...)
+		butt:SetHighlightFontObject(GameFontHighlightSmall)
+		butt:SetNormalFontObject(GameFontNormalSmall)
+		return butt
+	end
+end
diff --git a/libs/tekKonfig/tekKonfigCheckbox.lua b/libs/tekKonfig/tekKonfigCheckbox.lua
new file mode 100644
index 0000000..180c9f0
--- /dev/null
+++ b/libs/tekKonfig/tekKonfigCheckbox.lua
@@ -0,0 +1,46 @@
+
+local lib, oldminor = LibStub:NewLibrary("tekKonfig-Checkbox", 1)
+if not lib then return end
+
+
+local GameTooltip = GameTooltip
+local function HideTooltip() GameTooltip:Hide() end
+local function ShowTooltip(self)
+	if self.tiptext then
+		GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
+		GameTooltip:SetText(self.tiptext, nil, nil, nil, nil, true)
+	end
+end
+local function OnClick(self) PlaySound(self:GetChecked() and "igMainMenuOptionCheckBoxOn" or "igMainMenuOptionCheckBoxOff") end
+
+
+-- Creates a checkbox.
+-- All args optional but parent is highly recommended
+function lib.new(parent, size, label, ...)
+	local check = CreateFrame("CheckButton", nil, parent)
+	check:SetWidth(size or 26)
+	check:SetHeight(size or 26)
+	if select(1, ...) then check:SetPoint(...) end
+
+	check:SetHitRectInsets(0, -100, 0, 0)
+
+	check:SetNormalTexture("Interface\\Buttons\\UI-CheckBox-Up")
+	check:SetPushedTexture("Interface\\Buttons\\UI-CheckBox-Down")
+	check:SetHighlightTexture("Interface\\Buttons\\UI-CheckBox-Highlight")
+	check:SetDisabledCheckedTexture("Interface\\Buttons\\UI-CheckBox-Check-Disabled")
+	check:SetCheckedTexture("Interface\\Buttons\\UI-CheckBox-Check")
+
+	-- Tooltip bits
+	check:SetScript("OnEnter", ShowTooltip)
+	check:SetScript("OnLeave", HideTooltip)
+
+	-- Sound
+	check:SetScript("OnClick", OnClick)
+
+	-- Label
+	local fs = check:CreateFontString(nil, "ARTWORK", "GameFontHighlight")
+	fs:SetPoint("LEFT", check, "RIGHT", 0, 1)
+	fs:SetText(label)
+
+	return check, fs
+end
diff --git a/libs/tekKonfig/tekKonfigDropdown.lua b/libs/tekKonfig/tekKonfigDropdown.lua
new file mode 100644
index 0000000..42a9b16
--- /dev/null
+++ b/libs/tekKonfig/tekKonfigDropdown.lua
@@ -0,0 +1,85 @@
+local lib, oldminor = LibStub:NewLibrary("tekKonfig-Dropdown", 3)
+if not lib then return end
+oldminor = oldminor or 0
+
+
+local GameTooltip = GameTooltip
+local function HideTooltip() GameTooltip:Hide() end
+local function ShowTooltip(self)
+	if self.frame.tiptext then
+		GameTooltip:SetOwner(self, "ANCHOR_TOPRIGHT")
+		GameTooltip:SetText(self.frame.tiptext, nil, nil, nil, nil, true)
+	end
+end
+local function ShowTooltip2(self) ShowTooltip(self.container) end
+
+
+local function OnClick(self)
+	ToggleDropDownMenu(nil, nil, self:GetParent())
+	PlaySound("igMainMenuOptionCheckBoxOn")
+end
+
+local function OnHide() CloseDropDownMenus() end
+
+
+-- Create a dropdown.
+-- All args optional, parent recommended
+function lib.new(parent, label, ...)
+	local container = CreateFrame("Button", nil, parent)
+	container:SetWidth(149+13) container:SetHeight(32+24)
+	container:SetScript("OnEnter", ShowTooltip)
+	container:SetScript("OnLeave", HideTooltip)
+	if select("#", ...) > 0 then container:SetPoint(...) end
+
+	local name = "tekKonfigDropdown"..GetTime()  -- Sadly, some of these frames must be named
+	local f = CreateFrame("Frame", name, parent)
+	f:SetWidth(149) f:SetHeight(32)
+	f:SetPoint("TOPLEFT", container, -13, -24)
+	f:EnableMouse(true)
+	f:SetScript("OnHide", OnHide)
+	container.frame = f
+
+	local ltex = f:CreateTexture(name.."Left", "ARTWORK")
+	ltex:SetWidth(25) ltex:SetHeight(64)
+	ltex:SetPoint("TOPLEFT", 0, 17)
+	ltex:SetTexture("Interface\\Glues\\CharacterCreate\\CharacterCreate-LabelFrame")
+	ltex:SetTexCoord(0, 0.1953125, 0, 1)
+
+	local rtex = f:CreateTexture(nil, "ARTWORK")
+	rtex:SetWidth(25) rtex:SetHeight(64)
+	rtex:SetPoint("RIGHT")
+	rtex:SetTexture("Interface\\Glues\\CharacterCreate\\CharacterCreate-LabelFrame")
+	rtex:SetTexCoord(0.8046875, 1, 0, 1)
+
+	local mtex = f:CreateTexture(nil, "ARTWORK")
+	mtex:SetWidth(115) mtex:SetHeight(64)
+	mtex:SetPoint("LEFT", ltex, "RIGHT")
+	mtex:SetPoint("RIGHT", rtex, "LEFT")
+	mtex:SetTexture("Interface\\Glues\\CharacterCreate\\CharacterCreate-LabelFrame")
+	mtex:SetTexCoord(0.1953125, 0.8046875, 0, 1)
+
+	local text = f:CreateFontString(name.."Text", "ARTWORK", "GameFontHighlightSmall")
+	text:SetWidth(0) text:SetHeight(10)
+	text:SetPoint("RIGHT", rtex, -43, 2)
+	text:SetJustifyH("RIGHT")
+
+	local button = CreateFrame("Button", nil, f)
+	button:SetWidth(24) button:SetHeight(24)
+	button:SetPoint("TOPRIGHT", rtex, -16, -18)
+	button:SetScript("OnClick", OnClick)
+	button:SetScript("OnEnter", ShowTooltip2)
+	button.container = container
+
+	button:SetNormalTexture("Interface\\ChatFrame\\UI-ChatIcon-ScrollDown-Up")
+	button:SetPushedTexture("Interface\\ChatFrame\\UI-ChatIcon-ScrollDown-Down")
+	button:SetHighlightTexture("Interface\\Buttons\\UI-Common-MouseHilight")
+	button:SetDisabledTexture("Interface\\ChatFrame\\UI-ChatIcon-ScrollDown-Disabled")
+	button:GetHighlightTexture():SetBlendMode("ADD")
+
+	local labeltext = f:CreateFontString(nil, "BACKGROUND", "GameFontNormal")--GameFontHighlight
+	labeltext:SetPoint("BOTTOMLEFT", container, "TOPLEFT", 16-13, 3-24)
+	labeltext:SetText(label)
+
+	return f, text, container, labeltext
+end
+
diff --git a/libs/tekKonfig/tekKonfigGroup.lua b/libs/tekKonfig/tekKonfigGroup.lua
new file mode 100644
index 0000000..d406c54
--- /dev/null
+++ b/libs/tekKonfig/tekKonfigGroup.lua
@@ -0,0 +1,31 @@
+
+local lib, oldminor = LibStub:NewLibrary("tekKonfig-Group", 2)
+if not lib then return end
+
+lib.bg = {
+	bgFile = "Interface\\ChatFrame\\ChatFrameBackground",
+	edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
+	tile = true,
+	tileSize = 16,
+	edgeSize = 16,
+	insets = { left = 5, right = 5, top = 5, bottom = 5 }
+}
+
+
+-- Creates a background box to place behind widgets for visual grouping.
+-- All args optional, parent highly recommended
+function lib.new(parent, label, ...)
+	local box = CreateFrame('Frame', nil, parent)
+	box:SetBackdrop(lib.bg)
+	box:SetBackdropBorderColor(0.4, 0.4, 0.4)
+	box:SetBackdropColor(0.1, 0.1, 0.1)
+	if select('#',...) > 0 then box:SetPoint(...) end
+
+	if label then
+		local fs = box:CreateFontString(nil, "OVERLAY", "GameFontNormalSmall")
+		fs:SetPoint("BOTTOMLEFT", box, "TOPLEFT", 16, 0)
+		fs:SetText(label)
+	end
+
+	return box
+end
diff --git a/libs/tekKonfig/tekKonfigHeading.lua b/libs/tekKonfig/tekKonfigHeading.lua
new file mode 100644
index 0000000..774bf80
--- /dev/null
+++ b/libs/tekKonfig/tekKonfigHeading.lua
@@ -0,0 +1,24 @@
+
+local lib, oldminor = LibStub:NewLibrary("tekKonfig-Heading", 1)
+if not lib then return end
+
+
+-- Creates a heading and subheading
+-- parent is required, texts are optional
+function lib.new(parent, text, subtext)
+	local title = parent:CreateFontString(nil, "ARTWORK", "GameFontNormalLarge")
+	title:SetPoint("TOPLEFT", 16, -16)
+	title:SetText(text)
+
+	local subtitle = parent:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	subtitle:SetHeight(32)
+	subtitle:SetPoint("TOPLEFT", title, "BOTTOMLEFT", 0, -8)
+	subtitle:SetPoint("RIGHT", parent, -32, 0)
+--~ 	nonSpaceWrap="true" maxLines="3"
+	subtitle:SetNonSpaceWrap(true)
+	subtitle:SetJustifyH("LEFT")
+	subtitle:SetJustifyV("TOP")
+	subtitle:SetText(subtext)
+
+	return title, subtitle
+end
diff --git a/libs/tekKonfig/tekKonfigScroll.lua b/libs/tekKonfig/tekKonfigScroll.lua
new file mode 100644
index 0000000..ff69b13
--- /dev/null
+++ b/libs/tekKonfig/tekKonfigScroll.lua
@@ -0,0 +1,80 @@
+
+local lib, oldminor = LibStub:NewLibrary("tekKonfig-Scroll", 2)
+if not lib then return end
+
+lib.bg = {
+	edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
+	tile = true,
+	tileSize = 16,
+	edgeSize = 12,
+	insets = { left = 0, right = 0, top = 5, bottom = 5 }
+}
+
+-- Creates a scrollbar
+-- Parent is required, offset and step are optional
+function lib.new(parent, offset, step)
+	local f = CreateFrame("Slider", nil, parent)
+	f:SetWidth(16)
+
+	f:SetPoint("TOPRIGHT", 0 - (offset or 0), -16 - (offset or 0))
+	f:SetPoint("BOTTOMRIGHT", 0 - (offset or 0), 16 + (offset or 0))
+
+	local up = CreateFrame("Button", nil, f)
+	up:SetPoint("BOTTOM", f, "TOP")
+	up:SetWidth(16) up:SetHeight(16)
+	up:SetNormalTexture("Interface\\Buttons\\UI-ScrollBar-ScrollUpButton-Up")
+	up:SetPushedTexture("Interface\\Buttons\\UI-ScrollBar-ScrollUpButton-Down")
+	up:SetDisabledTexture("Interface\\Buttons\\UI-ScrollBar-ScrollUpButton-Disabled")
+	up:SetHighlightTexture("Interface\\Buttons\\UI-ScrollBar-ScrollUpButton-Highlight")
+
+	up:GetNormalTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
+	up:GetPushedTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
+	up:GetDisabledTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
+	up:GetHighlightTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
+	up:GetHighlightTexture():SetBlendMode("ADD")
+
+	up:SetScript("OnClick", function(self)
+		local parent = self:GetParent()
+		parent:SetValue(parent:GetValue() - (step or parent:GetHeight()/2))
+		PlaySound("UChatScrollButton")
+	end)
+
+	local down = CreateFrame("Button", nil, f)
+	down:SetPoint("TOP", f, "BOTTOM")
+	down:SetWidth(16) down:SetHeight(16)
+	down:SetNormalTexture("Interface\\Buttons\\UI-ScrollBar-ScrollDownButton-Up")
+	down:SetPushedTexture("Interface\\Buttons\\UI-ScrollBar-ScrollDownButton-Down")
+	down:SetDisabledTexture("Interface\\Buttons\\UI-ScrollBar-ScrollDownButton-Disabled")
+	down:SetHighlightTexture("Interface\\Buttons\\UI-ScrollBar-ScrollDownButton-Highlight")
+
+	down:GetNormalTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
+	down:GetPushedTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
+	down:GetDisabledTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
+	down:GetHighlightTexture():SetTexCoord(1/4, 3/4, 1/4, 3/4)
+	down:GetHighlightTexture():SetBlendMode("ADD")
+
+	down:SetScript("OnClick", function(self)
+		local parent = self:GetParent()
+		parent:SetValue(parent:GetValue() + (step or parent:GetHeight()/2))
+		PlaySound("UChatScrollButton")
+	end)
+
+	f:SetThumbTexture("Interface\\Buttons\\UI-ScrollBar-Knob")
+	local thumb = f:GetThumbTexture()
+	thumb:SetWidth(16) thumb:SetHeight(24)
+	thumb:SetTexCoord(1/4, 3/4, 1/8, 7/8)
+
+	f:SetScript("OnValueChanged", function(self, value)
+		local min, max = self:GetMinMaxValues()
+		if value == min then up:Disable() else up:Enable() end
+		if value == max then down:Disable() else down:Enable() end
+	end)
+
+	local border = CreateFrame("Frame", nil, f)
+	border:SetPoint("TOPLEFT", up, -5, 5)
+	border:SetPoint("BOTTOMRIGHT", down, 5, -3)
+	border:SetBackdrop(lib.bg)
+	border:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 0.5)
+
+	return f, up, down, border
+end
diff --git a/libs/tekKonfig/tekKonfigSlider.lua b/libs/tekKonfig/tekKonfigSlider.lua
new file mode 100644
index 0000000..98ec4cc
--- /dev/null
+++ b/libs/tekKonfig/tekKonfigSlider.lua
@@ -0,0 +1,86 @@
+
+local lib, oldminor = LibStub:NewLibrary("tekKonfig-Slider", 3)
+if not lib then return end
+oldminor = oldminor or 0
+
+
+local GameTooltip = GameTooltip
+local function HideTooltip() GameTooltip:Hide() end
+local function ShowTooltip(self)
+	if self.tiptext then
+		GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
+		GameTooltip:SetText(self.tiptext, nil, nil, nil, nil, true)
+	end
+end
+
+
+local HorizontalSliderBG = {
+	bgFile = "Interface\\Buttons\\UI-SliderBar-Background",
+	edgeFile = "Interface\\Buttons\\UI-SliderBar-Border",
+	edgeSize = 8, tile = true, tileSize = 8,
+	insets = {left = 3, right = 3, top = 6, bottom = 6}
+}
+
+
+if oldminor < 2 then
+	-- Create a slider.
+	-- All args optional, parent recommended
+	-- If lowvalue and highvalue are strings it is assumed they are % values
+	-- and the % is parsed and set as decimal values for min/max
+	function lib.new(parent, label, lowvalue, highvalue, ...)
+		local container = CreateFrame("Frame", nil, parent)
+		container:SetWidth(144)
+		container:SetHeight(17+12+10)
+		if select(1, ...) then container:SetPoint(...) end
+
+		local slider = CreateFrame("Slider", nil, container)
+		slider:SetPoint("LEFT")
+		slider:SetPoint("RIGHT")
+		slider:SetHeight(17)
+		slider:SetHitRectInsets(0, 0, -10, -10)
+		slider:SetOrientation("HORIZONTAL")
+		slider:EnableMouseWheel(1)
+		slider:SetThumbTexture("Interface\\Buttons\\UI-SliderBar-Button-Horizontal") -- Dim: 32x32... can't find API to set this?
+		slider:SetBackdrop(HorizontalSliderBG)
+
+		local text = slider:CreateFontString(nil, "ARTWORK", "GameFontNormal")
+		text:SetPoint("BOTTOM", slider, "TOP")
+		text:SetText(label)
+
+		local low = slider:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+		low:SetPoint("TOPLEFT", slider, "BOTTOMLEFT", -4, 3)
+		low:SetText(lowvalue)
+
+		local high = slider:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+		high:SetPoint("TOPRIGHT", slider, "BOTTOMRIGHT", 4, 3)
+		high:SetText(highvalue)
+
+		if type(lowvalue) == "string" then slider:SetMinMaxValues(tonumber((lowvalue:gsub("%%", "")))/100, tonumber((highvalue:gsub("%%", "")))/100)
+		else slider:SetMinMaxValues(lowvalue, highvalue) end
+
+		-- Tooltip bits
+		slider:SetScript("OnEnter", ShowTooltip)
+		slider:SetScript("OnLeave", HideTooltip)
+
+		return slider, text, container, low, high
+	end
+end
+
+
+-- Create a slider without labels.
+-- All args optional, parent recommended
+function lib.newbare(parent, ...)
+	local slider = CreateFrame("Slider", nil, parent)
+	slider:SetHeight(17)
+	slider:SetWidth(144)
+	if select(1, ...) then slider:SetPoint(...) end
+	slider:SetOrientation("HORIZONTAL")
+	slider:SetThumbTexture("Interface\\Buttons\\UI-SliderBar-Button-Horizontal") -- Dim: 32x32... can't find API to set this?
+	slider:SetBackdrop(HorizontalSliderBG)
+
+	-- Tooltip bits
+	slider:SetScript("OnEnter", ShowTooltip)
+	slider:SetScript("OnLeave", HideTooltip)
+
+	return slider
+end
diff --git a/libs/tekKonfig/tekKonfigTopTab.lua b/libs/tekKonfig/tekKonfigTopTab.lua
new file mode 100644
index 0000000..d7c588c
--- /dev/null
+++ b/libs/tekKonfig/tekKonfigTopTab.lua
@@ -0,0 +1,68 @@
+
+local lib, oldminor = LibStub:NewLibrary("tekKonfig-TopTab", 1)
+if not lib then return end
+oldminor = oldminor or 0
+
+
+function lib:activatetab()
+	self.left:ClearAllPoints()
+	self.left:SetPoint("TOPLEFT")
+	self.left:SetTexture("Interface\\OptionsFrame\\UI-OptionsFrame-ActiveTab")
+	self.middle:SetTexture("Interface\\OptionsFrame\\UI-OptionsFrame-ActiveTab")
+	self.right:SetTexture("Interface\\OptionsFrame\\UI-OptionsFrame-ActiveTab")
+	self:Disable()
+end
+
+function lib:deactivatetab()
+	self.left:ClearAllPoints()
+	self.left:SetPoint("BOTTOMLEFT", 0, 2)
+	self.left:SetTexture("Interface\\OptionsFrame\\UI-OptionsFrame-InActiveTab")
+	self.middle:SetTexture("Interface\\OptionsFrame\\UI-OptionsFrame-InActiveTab")
+	self.right:SetTexture("Interface\\OptionsFrame\\UI-OptionsFrame-InActiveTab")
+	self:Enable()
+end
+
+function lib:SetTextHelper(...) self:SetWidth(40 + self:GetFontString():GetStringWidth()); return ... end
+function lib:NewSetText(...) return lib.SetTextHelper(self, self.OrigSetText(self, ...)) end
+
+function lib.new(parent, text, ...)
+	local tab = CreateFrame("Button", nil, parent)
+	tab:SetHeight(24)
+	tab:SetPoint(...)
+	tab:SetFrameLevel(tab:GetFrameLevel() + 4)
+
+	tab.left = tab:CreateTexture(nil, "BORDER")
+	tab.left:SetWidth(20) tab.left:SetHeight(24)
+	tab.left:SetTexCoord(0, 0.15625, 0, 1)
+
+	tab.right = tab:CreateTexture(nil, "BORDER")
+	tab.right:SetWidth(20) tab.right:SetHeight(24)
+	tab.right:SetPoint("TOP", tab.left)
+	tab.right:SetPoint("RIGHT", tab)
+	tab.right:SetTexCoord(0.84375, 1, 0, 1)
+
+	tab.middle = tab:CreateTexture(nil, "BORDER")
+	tab.middle:SetHeight(24)
+	tab.middle:SetPoint("LEFT", tab.left, "RIGHT")
+	tab.middle:SetPoint("RIGHT", tab.right, "Left")
+	tab.middle:SetTexCoord(0.15625, 0.84375, 0, 1)
+
+	tab:SetHighlightTexture("Interface\\PaperDollInfoFrame\\UI-Character-Tab-Highlight", "ADD")
+	local hilite = tab:GetHighlightTexture()
+	hilite:ClearAllPoints()
+	hilite:SetPoint("LEFT", 10, -4)
+	hilite:SetPoint("RIGHT", -10, -4)
+
+	tab:SetDisabledFontObject(GameFontHighlightSmall)
+	tab:SetHighlightFontObject(GameFontHighlightSmall)
+	tab:SetNormalFontObject(GameFontNormalSmall)
+	tab.OrigSetText = tab.SetText
+	tab.SetText = lib.NewSetText
+	tab:SetText(text)
+
+	tab.Activate, tab.Deactivate = lib.activatetab, lib.deactivatetab
+	tab:Activate()
+
+	return tab
+end
+
diff --git a/locale/deDE.lua b/locale/deDE.lua
new file mode 100644
index 0000000..0215235
--- /dev/null
+++ b/locale/deDE.lua
@@ -0,0 +1,218 @@
+-- German localisation file
+_, BrokerGarbage = ...
+
+if GetLocale() == "deDE" then
+	BrokerGarbage.locale.label = "Kein Müll"
+
+	-- Chat Messages
+	BrokerGarbage.locale.sellAndRepair = "Müll für %1$s verkauft, repariert für %2$s. Änderung: %3$s."
+	BrokerGarbage.locale.repair = "Repariert für %s."
+	BrokerGarbage.locale.sell = "Müll verkauft für %s."
+
+	BrokerGarbage.locale.addedTo_exclude = "%s zur Behalten-Liste hinzugefügt."
+	BrokerGarbage.locale.addedTo_forceVendorPrice = "Für %s wird nun nur der Händlerpreis genutzt."
+	BrokerGarbage.locale.addedTo_include = "%s zur Müll-Liste hinzugefügt."
+	BrokerGarbage.locale.addedTo_autoSellList = "%s wird bei Händlern automatisch verkauft."
+	BrokerGarbage.locale.itemAlreadyOnList = "%s ist bereits auf dieser Liste!"
+	BrokerGarbage.locale.limitSet = "Für %s wurde das Limit auf %d gesetzt."
+	BrokerGarbage.locale.itemDeleted = "%1$sx%2$d wurde gelöscht."
+	BrokerGarbage.locale.couldNotRepair = "Konnte nicht reparieren, da du nicht genug Geld hast. Du brauchst %s."
+
+	BrokerGarbage.locale.listsUpdatedPleaseCheck = "Die Listeneinstellungen wurden geändert. Bitte sieh in den Einstellungen nach, ob sie für dich passend sind."
+	BrokerGarbage.locale.slashCommandHelp = [[Folgende Kommandos werden unterstützt:
+/garbage |cffc0c0c0config|r öffnet die Optionen.
+/garbage |cffc0c0c0format |cffc0c0ffformatstring|r lässt dich das Format der LDB Anzeige anpassen, |cffc0c0c0 format reset|r setzt es zurück.
+/garbage |cffc0c0c0limit |cffc0c0ffitemLink/ID Anzahl|r setzt ein Limit für das gewählte Item für den aktuellen Charakter.
+/garbage |cffc0c0c0globallimit |cffc0c0ffitemLink/ID Anzahl|r setzt ein Limit für alle Charaktere.
+/garbage |cffc0c0c0value |cffc0c0ffWertInKupfer|r setzt den Itemwert, ab dem Items gelootet werden (benötigt den Loot Manager).]]
+	BrokerGarbage.locale.minValueSet = "Mindestwert für items wurde auf %s gesetzt."
+
+	BrokerGarbage.locale.warningMessagePrefit = "Warnung"
+
+	-- Tooltip
+	BrokerGarbage.locale.headerRightClick = "Rechts-Klick: Optionen"
+	BrokerGarbage.locale.headerShiftClick = "SHIFT-Klick: Zerstören"
+	BrokerGarbage.locale.headerCtrlClick = "STRG-Klick: Behalten"
+	BrokerGarbage.locale.moneyLost = "Gold verloren:"
+	BrokerGarbage.locale.moneyEarned = "Gold verdient:"
+	BrokerGarbage.locale.noItems = "Keine Items zum Löschen."
+	BrokerGarbage.locale.increaseTreshold = "Erhöhe die Item Qualität"
+
+	BrokerGarbage.locale.categoriesHeading = "Kategorien"
+	BrokerGarbage.locale.LPTNotLoaded = "LibPeriodicTable nicht aktiv"
+
+	BrokerGarbage.locale.autoSellTooltip = "Müll für %s verkaufen"
+	BrokerGarbage.locale.reportNothingToSell = "Nichts zu verkaufen!"
+
+	-- Statistics Frame
+	BrokerGarbage.locale.StatisticsHeading = "Statistiken, jeder braucht sie!\n"..
+		"Um Teile davon zu löschen, klicke auf das jeweilige 'x'."
+
+	BrokerGarbage.locale.LPTNoticeText = "|cffFF6600Es scheint, als hättest du kein LibPeriodicTable aktiv. Du wirst keine Kategorien nutzen können, aber sonst sollte das Addon einwandfrei funktionieren - mit ein paar Features weniger.|r"
+	BrokerGarbage.locale.MemoryUsageTitle = "Speicherverbrauch (kB)"
+	BrokerGarbage.locale.CollectMemoryUsageTooltip = "Klicke um den Garbage Collector (Blizzard Funktion) manuell zu starten."
+
+	BrokerGarbage.locale.GlobalStatisticsHeading = "Globale Geldstatistiken:"
+	BrokerGarbage.locale.AverageSellValueTitle = "Durchschnittl. Verkaufswert"
+	BrokerGarbage.locale.AverageDropValueTitle = "Durchschnittl. weggeworfen"
+
+	BrokerGarbage.locale.GlobalMoneyEarnedTitle = "Gesamtverdienst"
+	BrokerGarbage.locale.ResetGlobalMoneyEarnedTooltip = "Klicke um deinen Gesamtverdienst zurückzusetzen."
+	BrokerGarbage.locale.GlobalMoneyLostTitle = "Gesamtverlust"
+	BrokerGarbage.locale.ResetGlobalMoneyLostTooltip = "Klicke um deinen Gesamtverlust zurückzusetzen."
+
+	BrokerGarbage.locale.GlobalItemsSoldTitle = "Items verkauft"
+	BrokerGarbage.locale.ResetGlobalItemsSoldTooltip = "Klicke um die Anzahl an verkauften Items zurückzusetzen."
+	BrokerGarbage.locale.ItemsDroppedTitle = "Items weggeworfen"
+	BrokerGarbage.locale.ResetGlobalItemsDroppedTooltip = "Klicke um die Anzahl der weggeworfenen Items zurückzusetzen."
+
+	BrokerGarbage.locale.LocalStatisticsHeading = "Statistiken von %s:"
+	BrokerGarbage.locale.StatisticsLocalAmountEarned = "Verdienst"
+	BrokerGarbage.locale.ResetLocalMoneyEarnedTooltip = "Klicke um deinen (lokalen) Verdienst zurückzusetzen."
+	BrokerGarbage.locale.StatisticsLocalAmountLost = "Verlust"
+	BrokerGarbage.locale.ResetLocalMoneyLostTooltip = "Klicke um deinen (lokalen) Verlust zurückzusetzen."
+
+	BrokerGarbage.locale.ResetGlobalDataText = "Reset: Global"
+	BrokerGarbage.locale.ResetGlobalDataTooltip = "Klicke hier um alle globalen Statistikdaten zurückzusetzen."
+	BrokerGarbage.locale.ResetLocalDataText = "Reset: Lokal"
+	BrokerGarbage.locale.ResetLocalDataTooltip = "Klicke um alle charakterspezifischen Statistiken zurückzusetzen."
+
+	BrokerGarbage.locale.AuctionAddon = "Auktionsaddon"
+	BrokerGarbage.locale.unknown = "Unbekannt"	-- refers to auction addon
+	BrokerGarbage.locale.na = "Nicht vorhanden"
+
+	-- Basic Options Frame
+	BrokerGarbage.locale.BasicOptionsTitle = "Allgemein"
+	BrokerGarbage.locale.BasicOptionsText = "Möchtest du einmal nicht automatisch verkaufen/reparieren? Halte SHIFT (je nach Einstellung) gedrückt, wenn du den Händler ansprichst!"
+	BrokerGarbage.locale.autoSellTitle = "Automatisch Verkaufen"
+	BrokerGarbage.locale.autoSellText = "Wenn ausgewählt, werden graue Gegenstände automatisch beim Händler verkauft."
+
+	BrokerGarbage.locale.showAutoSellIconTitle = "Icon anzeigen"
+	BrokerGarbage.locale.showAutoSellIconText = "Wenn ausgewählt, wird bei Händlern ein Icon zum automatischen Verkaufen angezeigt."
+
+	BrokerGarbage.locale.showNothingToSellTitle = "'Nichts zu verkaufen'"
+	BrokerGarbage.locale.showNothingToSellText = "Wenn ausgewählt, wird bei Besuch eines Händlers eine Nachricht ausgegeben, falls es nichts zu verkaufen gibt."
+
+	BrokerGarbage.locale.autoRepairTitle = "Automatisch Reparieren"
+	BrokerGarbage.locale.autoRepairText = "Wenn ausgewählt, wird deine Ausrüstung automatisch repariert wenn möglich."
+
+	BrokerGarbage.locale.autoRepairGuildTitle = "Reparatur selbst zahlen"
+	BrokerGarbage.locale.autoRepairGuildText = "Wenn ausgewählt, wird Broker_Garbage nicht auf Gildenkosten reparieren."
+
+	BrokerGarbage.locale.showLostTitle = "'Verlorenes Gold' zeigen"
+	BrokerGarbage.locale.showLostText = "Wenn ausgewählt, wird im Tooltip die Zeile 'Verlorenes Gold' gezeigt."
+
+	BrokerGarbage.locale.showSourceTitle = "Quelle anzeigen"
+	BrokerGarbage.locale.showSourceText = "Wenn ausgewählt, wird im Tooltip als letzte Spalte die Preisquelle gezeigt."
+
+	BrokerGarbage.locale.showEarnedTitle = "'Verdientes Gold' zeigen"
+	BrokerGarbage.locale.showEarnedText = "Wenn ausgewählt, wird im Tooltip die Zeile 'Verdientes Gold' gezeigt."
+
+	BrokerGarbage.locale.dropQualityTitle = "Item Qualität"
+	BrokerGarbage.locale.dropQualityText = "Wähle, bis zu welcher Qualität Items zum Löschen vorgeschlagen werden. Standard: Schlecht (0)"
+
+	BrokerGarbage.locale.moneyFormatTitle = "Geldformat"
+	BrokerGarbage.locale.moneyFormatText = "Ändere die Art, wie Geldbeträge angezeigt werden. Standard: 2"
+
+	BrokerGarbage.locale.maxItemsTitle = "Max. Items"
+	BrokerGarbage.locale.maxItemsText = "Lege fest, wie viele Zeilen im Tooltip angezeigt werden. Standard: 9"
+
+	BrokerGarbage.locale.maxHeightTitle = "Max. Höhe"
+	BrokerGarbage.locale.maxHeightText = "Lege fest, wie hoch der Tooltip sein darf. Standard: 220"
+
+	BrokerGarbage.locale.sellNotUsableTitle = "Verkaufe Ausrüstung"
+	BrokerGarbage.locale.sellNotUsableText = "Wenn ausgewählt, wird Broker_Garbage seelengebundene Ausrüstung, die du niemals tragen kannst, automatisch verkaufen.\n(inaktiv bei Verzauberern)"
+
+	BrokerGarbage.locale.SNUMaxQualityTitle = "Max. Qualität"
+	BrokerGarbage.locale.SNUMaxQualityText = "Wähle die maximale Itemqualität, bei der von 'Verkaufe Ausrüstung' verkauft werden soll."
+
+	BrokerGarbage.locale.enchanterTitle = "Verzauberer"
+	BrokerGarbage.locale.enchanterTooltip = "Setze das Häkchen, wenn du einen Verzauberer besitzt/kennst. Wenn aktiviert, wird Broker_Garbage Entzauberpreise verwenden, welche in der Regel höher sind als Händlerpreise."
+
+	BrokerGarbage.locale.rescanInventory = "Inventar neu scannen"
+	BrokerGarbage.locale.rescanInventoryText = "Klicke um dein Inventar neu zu scannen. Dies sollte normalerweise nicht nötig sein!"
+
+	BrokerGarbage.locale.DKTitle = "Temp. deaktivieren mit"
+	BrokerGarbage.locale.DKTooltip = "Wähle die Taste, die die Aktionen von BrokerGarbage temporär deaktiviert."
+	BrokerGarbage.locale.disableKeys = {
+		["None"] = "Kein",
+		["SHIFT"] = "SHIFT",
+		["ALT"] = "ALT",
+		["CTRL"] = "STRG",
+	}
+
+	BrokerGarbage.locale.LDBDisplayTextTitle = "LDB Anzeigetexte"
+	BrokerGarbage.locale.LDBDisplayTextTooltip = "Nutze diese Einstellung, um den Text zu ändern, den du in deinem LDB Display siehst."
+	BrokerGarbage.locale.LDBDisplayTextResetTooltip = "Setze den LDB Anzeigetext auf den Standardwert zurück."
+	BrokerGarbage.locale.LDBNoJunkTextTooltip = "Nutze diese Einstellung, um den Text zu ändern, der angezeigt wird, wenn du keinen Müll hast."
+	BrokerGarbage.locale.LDBNoJunkTextResetTooltip = "Setze den 'Kein Müll' Text auf den Standardwert zurück."
+	BrokerGarbage.locale.LDBDisplayTextHelpTooltip = [[Schnellhilfe:
+[itemname] - Itemlink
+[itemcount] - Item Anzahl
+[itemvalue] - Itemwert
+[freeslots] - freier Taschenplatz
+[totalslots] - Gesamttaschenplatz
+[junkvalue] - Verkaufswert
+[bagspacecolor]...[endcolor] zum färben]]
+
+	-- List Options Panel
+	BrokerGarbage.locale.LOTitle = "Listen"
+	BrokerGarbage.locale.LOSubTitle = [[Wenn du Hilfe brauchst, klicke das "?"-Tab an.
+
+|cffffd200Müll|r: Diese Liste beinhaltet Items, die  weggeworfen werden können.
+|cffffd200Behalten|r: Items auf dieser Liste werden nie weggeworfen.
+|cffffd200Händlerpreis|r: Items nutzen keine Auktionspreise. (immer global!)
+|cffffd200Verkaufen|r: Diese Items werden bei Händlern automatisch verkauft.]]
+
+	BrokerGarbage.locale.defaultListsText = "Standardlisten"
+	BrokerGarbage.locale.defaultListsTooltip = "|cffffffffKlicke|r, um manuell die lokalen Standardeinträge für Listen einzufügen.\n|cffffffffRechtsklick|r um auch die globalen Einträge zu erstellen."
+
+	BrokerGarbage.locale.LOTabTitleInclude = "Müll"
+	BrokerGarbage.locale.LOTabTitleExclude = "Behalten"
+	BrokerGarbage.locale.LOTabTitleVendorPrice = "Händlerpreis"
+	BrokerGarbage.locale.LOTabTitleAutoSell = "Verkaufen"
+
+	BrokerGarbage.locale.LOIncludeAutoSellText = "Müll-Items verkaufen"
+	BrokerGarbage.locale.LOIncludeAutoSellTooltip = "Aktivieren, um Items von deiner Müll-Liste automatisch beim Händler zu verkaufen. Items ohne Wert werden ignoriert."
+
+	BrokerGarbage.locale.listsBestUse = [[|cffffd200Listen-Beispiele|r
+Die Standardlisten geben eine Hilfestellung, was auf welcher Liste nützlich sein könnte.
+Setze erst alle Items, die du auf jeden Fall behalten möchtest, auf die |cffffd200Behalten-Liste|r. Denke auch daran, dass es Kategorien (s.u.) gibt! Ist der LootManager aktiv, wird er Items von dieser Liste immer plündern.
+|cffAAAAAAz.B. Klassenreagenzien, Fläschchen|r
+Dinge, von denen du weißt, dass sie sorglos weggeworfen werden können, gehören auf die |cffffd200Müll-Liste|r.
+|cffAAAAAAz.B. Herbeigezauberter Manakeks, Argentumlanze|r
+Sollte ein Item einen ungewollt hohen Wert zugewiesen bekommen, setze das Item auf die |cffffd200Händlerpreis-Liste|r. Diese Items werden nur den Händlerpreis nutzen.
+|cffAAAAAAz.B. Fischöl|r
+Auf die |cffffd200Verkaufen-Liste|r kannst du alles setzen, was Broker_Garbage verkaufen soll.
+|cffAAAAAAz.B. Wasser (als Krieger), Alterachochkäse|r]]
+
+	BrokerGarbage.locale.iconButtonsUse = [[|cffffd200Item-Buttons|r
+Angezeigt wird entweder das Icon des Items, ein Zahnrad, wenn es sich um eine Kategorie handelt, oder ein Fragezeichen, wenn der Server das Item nicht finden kann.
+Oben links jedes Buttons kann ein "G" stehen. Ist dies der Fall, ist das entsprechende Item auf der |cffffd200globalen Liste|r, d.h. diese Regel gilt für alle Charaktere.
+Items auf der Müll-Liste können ein |cffffd200Limit|r haben. Dies wird als kleine Zahl in der unteren rechten Ecke angezeigt. Zum Ändern nutze das |cffffd200Mausrad|r über dem Button. Diese Items werden erst gelöscht, sollte das Limit überschritten werden.]]
+
+	BrokerGarbage.locale.actionButtonsUse = [[|cffffd200Aktions-Buttons|r
+Unterhalb dieses Fensters siehst du 5 Buttons und eine Suchleiste.
+|TInterface\Icons\Spell_ChargePositive:18|t |cffffd200Plus|r: Hier kannst du Items zu der angezeigten Liste hinzufügen. Ziehe dazu einfach ein Item auf das Plus. Um eine |cffffd200Kategorie|r hinzuzufügen, rechtsklicke das Plus und wähle dann in dem neuen Menü eine Kategorie aus.
+|cffAAAAAAz.B. "Tradeskill > Recipe", "Misc > Key"|r
+|TInterface\Icons\Spell_ChargeNegative:18|t |cffffd200Minus|r: Markiere Items aus der Liste (anklicken). Beim Klick auf das Minus werden diese Items von der Liste entfernt.
+|TInterface\Icons\INV_Misc_GroupLooking:18|t |cffffd200Lokal|r: Markierte Items werden auf die lokale Liste gesetzt, gelten also nur für diesen Charakter.
+|TInterface\Icons\INV_Misc_GroupNeedMore:18|t |cffffd200Global|r: Analog zu Lokal, nur werden hierbei die Items auf die globale Liste gesetzt, die Regeln gelten damit für alle Charaktere.
+|TInterface\Buttons\UI-GroupLoot-Pass-UP:18|t |cffffd200Leeren|r: Ein Klick auf diesen Button leert die charakterspezifischen Regeln dieser Liste. Shift-Klick leert die accountweiten Regeln. |cffff0000Mit Vorsicht benutzen!|r]]
+
+	BrokerGarbage.locale.LOPlus = "Füge Items zu dieser Liste hinzu, indem du sie hierher |cffffffffziehst|r/hier |cffffffffablegst|r.\n|cffffffffRechtsklick|r, um Kategorien hinzuzufügen!"
+	BrokerGarbage.locale.LOMinus = "Wähle oben die Items, die du von dieser Liste entfernen willst. Dann |cffffffffklicke|r hier."
+	BrokerGarbage.locale.LODemote = "|cffffffffKlicke|r um alle markierten Items als charakterspezifische Regel zu nutzen."
+	BrokerGarbage.locale.LOPromote = "|cffffffffKlicke|r um alle markierten Items als globale Regel zu nutzen."
+	BrokerGarbage.locale.LOEmptyList = "|cffff0000Achtung!|r\n|cffffffffKlicke|r, um die lokalen Einträge dieser Liste zu löschen.\n"..
+		"|cffffffffShift-Klicke|r, um die globalen Einträge zu löschen."
+	BrokerGarbage.locale.search = "Suchen..."
+
+	-- LibPeriodicTable category testing
+	BrokerGarbage.locale.PTCategoryTest = "Kategorientest"
+	BrokerGarbage.locale.PTCategoryTestTitle = "LibPeriodicTable Kategorietest"
+	BrokerGarbage.locale.PTCategoryTestSubTitle = "Wenn du unsicher bist, warum ein Item irgendwo auftaucht oder welche Items zu welcher Kategorie zählen, kannst du das hier testen."
+	BrokerGarbage.locale.PTCategoryTestExplanation = "Wähle einfach unten eine Kategorie aus und es wird dir alle Gegenstände aus deinem Inventar anzeigen, die dazuzählen.\nKategoriedaten kommen von LPT und nicht Broker_Garbage."
+	BrokerGarbage.locale.PTCategoryTestDropdownTitle = "Kategorie, die getestet werden soll"
+	BrokerGarbage.locale.PTCategoryTestDropdownText = "Wähle eine Kategorie"
+end
diff --git a/locale/enUS.lua b/locale/enUS.lua
new file mode 100644
index 0000000..51966d0
--- /dev/null
+++ b/locale/enUS.lua
@@ -0,0 +1,219 @@
+-- enUS / enGB / default localization file
+_, BrokerGarbage = ...
+
+BrokerGarbage.locale = {
+	label = "Junk, be gone!",
+
+	-- Chat Messages
+	sellAndRepair = "Sold trash for %1$s, repaired for %2$s. Change: %3$s.",
+	repair = "Repaired for %s.",
+	sell = "Sold trash for %s.",
+
+	addedTo_exclude = "%s has been added to the Keep List.",
+	addedTo_forceVendorPrice = "%s will only have its vendor price considered.",
+	addedTo_include = "%s has been added to the Junk List.",
+	addedTo_autoSellList = "%s will be automatically sold when at a merchant.",
+	itemAlreadyOnList = "%s is already on this list!",
+	limitSet = "%s has been assigned a limit of %d.",
+	itemDeleted = "%1$sx%2$d has been deleted.",
+	couldNotRepair = "Could not repair because you don't have enough money. You need %s.",
+
+	listsUpdatedPleaseCheck = "Your lists have been updated. Please have a look at your settings and check if they fit your needs.",
+	slashCommandHelp = [[The following commands are available:
+/garbage |cffc0c0c0config|r opens the options panel.
+/garbage |cffc0c0c0format |cffc0c0ffformatstring|r lets you customize the LDB display text, |cffc0c0c0 format reset|r resets it.
+/garbage |cffc0c0c0limit |cffc0c0ffitemLink/ID count|r sets a limit for the given item on the current character.
+/garbage |cffc0c0c0globallimit |cffc0c0ffitemLink/ID count|r sets a limit for all characters.
+/garbage |cffc0c0c0value |cffc0c0ffvalueInCopper|r sets the minimum value for items to be looted (Loot Manager needed).]],
+	minValueSet = "Items with a value less than %s will not be looted anymore.",
+
+	warningMessagePrefit = "Warning",
+
+	-- Tooltip
+	headerRightClick = "Right-Click for options",
+	headerShiftClick = "SHIFT-Click: Destroy",
+	headerCtrlClick = "CTRL-Click: Keep",
+	moneyLost = "Money Lost:",
+	moneyEarned = "Money Earned:",
+	noItems = "No items to delete.",
+	increaseTreshold = "Increase quality treshold",
+
+	categoriesHeading = "Categories",
+	unknownAuctionAddon = "Unknown/None",
+	LPTNotLoaded = "LibPeriodicTable not loaded",
+
+	autoSellTooltip = "Sell Items for %s",
+	reportNothingToSell = "Nothing to sell!",
+
+	-- Statistics Frame
+	StatisticsHeading = "Statistics, everone needs them!\n"..
+		"To delete any part of them, click the red x.",
+
+	LPTNoticeText = "|cffFF6600You don't seem to have LibPeriodicTable loaded. You will not be able to use category strings, but the addon should work just fine - with a few features less.|r",
+	MemoryUsageTitle = "Memory Usage (kB)",
+	CollectMemoryUsageTooltip = "Click to start the garbage collection (Blizzard function).",
+
+	GlobalStatisticsHeading = "Global Money statistics:",
+	AverageSellValueTitle = "Average sell value",
+	AverageDropValueTitle = "Average drop value",
+
+	GlobalMoneyEarnedTitle = "Total amount earned",
+	ResetGlobalMoneyEarnedTooltip = "Click to reset your (global) money earned data.",
+	GlobalMoneyLostTitle = "Total amount lost",
+	ResetGlobalMoneyLostTooltip = "Click to reset your (global) money lost data.",
+
+	GlobalItemsSoldTitle = "Items sold",
+	ResetGlobalItemsSoldTooltip = "Click to reset the number of items you sold so far.",
+	ItemsDroppedTitle = "Items dropped",
+	ResetGlobalItemsDroppedTooltip = "Click to reset the number of items you dropped so far.",
+
+	LocalStatisticsHeading = "%s's statistics:",
+	StatisticsLocalAmountEarned = "Amount earned",
+	ResetLocalMoneyEarnedTooltip = "Click to reset your (local) money earned data.",
+	StatisticsLocalAmountLost = "Amount lost",
+	ResetLocalMoneyLostTooltip = "Click to reset your (local) money lost data.",
+
+	ResetGlobalDataText = "Reset Global Statistics",
+	ResetGlobalDataTooltip = "Click here to reset alls global statistics.",
+	ResetLocalDataText = "Reset Local Statistics",
+	ResetLocalDataTooltip = "Click here to reset all local statistics.",
+
+	AuctionAddon = "Auction addon",
+	AuctionAddonUnknown = "Unknown/None",
+
+	-- Basic Options Frame
+	BasicOptionsTitle = "Basic Options",
+	BasicOptionsText = "Don't want to auto-sell/repair? "..
+		"Hold Shift (depending on your settings) when adressing the merchant!",
+	autoSellTitle = "Auto Sell",
+	autoSellText = "Toggles whether to automatically sell your gray items when at a vendor.",
+
+	showAutoSellIconTitle = "Show Icon",
+	showAutoSellIconText = "Toggles whether to show an icon to manually auto-sell when at a vendor.",
+
+	showNothingToSellTitle = "'Nothing to sell'",
+	showNothingToSellText = "Toggles whether to show a notice when at a vendor and there is nothing to sell.",
+
+	autoRepairTitle = "Auto Repair",
+	autoRepairText = "Toggles whether to automatically repair your gear when at a vendor.",
+
+	autoRepairGuildTitle = "No Guild Repair",
+	autoRepairGuildText = "If selected, Broker_Garbage will never try to repair using the guild bank's money",
+
+	showLostTitle = "Show Money Lost",
+	showLostText = "Toggles whether to show the tooltip line 'Money Lost'.",
+
+	showSourceTitle = "Show Source",
+	showSourceText = "Toggles whether to show the last column in the tooltip, displaying the item value source.",
+
+	showEarnedTitle = "Show Money Earned",
+	showEarnedText = "Toggles whether to show the tooltip line 'Money Earned'.",
+
+	dropQualityTitle = "Quality Treshold",
+	dropQualityText = "Select up to which treshold items may be listed as deletable. Default: Poor (0)",
+
+	moneyFormatTitle = "Money Format",
+	moneyFormatText = "Change the way money (i.e. gold/silver/copper) is being displayed. Default: 2",
+
+	maxItemsTitle = "Max. Items",
+	maxItemsText = "Set how many lines you would like to have displayed in the tooltip. Default: 9",
+
+	maxHeightTitle = "Max. Height",
+	maxHeightText = "Set the height of the tooltip. Default: 220",
+
+	sellNotUsableTitle = "Sell gear",
+	sellNotUsableText = "Check this to have Broker_Garbage sell all soulbound gear that you cannot wear.\n(Only applies if not an enchanter)",
+
+	SNUMaxQualityTitle = "Max. Quality",
+	SNUMaxQualityText = "Select the maximum quality to sell when 'Sell gear' is checked.",
+
+	enchanterTitle = "Enchanter",
+	enchanterTooltip = "Check this if you have/know an enchanter. When checked, Broker_Garbage will use disenchant values for disenchantable items, which are usually higher than vendor prices.",
+
+	rescanInventory = "Rescan Inventory",
+	rescanInventoryText = "Click to manually rescan you inventory. Should generally not be needed.",
+
+	DKTitle = "Temp. disable key",
+	DKTooltip = "Set a key to temporarily disable BrokerGarbage.",
+	disableKeys = {
+		["None"] = "None",
+		["SHIFT"] = "SHIFT",
+		["ALT"] = "ALT",
+		["CTRL"] = "CTRL",
+	},
+
+	LDBDisplayTextTitle = "LDB Display texts",
+	LDBDisplayTextTooltip = "Use this to change the text you see in your LDB display.",
+	LDBDisplayTextResetTooltip = "Reset LDB string to default value.",
+	LDBNoJunkTextTooltip = "Use this to change the text you see when there is no junk to be displayed.",
+	LDBNoJunkTextResetTooltip = "Reset 'No Junk' text to default value.",
+	LDBDisplayTextHelpTooltip = [[Format string help:
+[itemname] - item link
+[itemcount] - item count
+[itemvalue] - item value
+[freeslots] - free bag slots
+[totalslots] - total bag slots
+[junkvalue] - total autosell value
+[bagspacecolor]...[endcolor] to colorize]],
+
+	-- List Options Panel
+	LOTitle = "Lists",
+	LOSubTitle = [[If you need help click the "?"-tab.
+
+|cffffd200Junk|r: Items on this list can be thrown away if needed.
+|cffffd200Keep|r: Items on this list will never be deleted.
+|cffffd200Vendor Price|r: Items only use vendor values. (always global)
+|cffffd200Sell|r: Items on this list will be sold when at a merchant.]],
+
+	defaultListsText = "Default Lists",
+	defaultListsTooltip = "|cffffffffClick|r to manually create default local list entries.\n |cffffffffRight-Click|r to also create default global lists.",
+
+	LOTabTitleInclude = "Junk",
+	LOTabTitleExclude = "Keep",
+	LOTabTitleVendorPrice = "Vendor Price",
+	LOTabTitleAutoSell = "Sell",
+
+	LOIncludeAutoSellText = "Sell Junk List items",
+	LOIncludeAutoSellTooltip = "Check this to automatically sell items on your include list when at a merchant. Items without a value will be ignored.",
+
+	listsBestUse = [[|cffffd200List Examples|r
+Don't forget to use the standard lists! They provide a great example.
+First, put any items you don't want to lose on your |cffffd200Keep List|r. Make good use of categories (see below)! If the LootManager is active it will alwas try to loot these items.
+|cffAAAAAAe.g. class reagents, flasks|r
+Items which may be thrown away any time belong on the |cffffd200Junk List|r.
+|cffAAAAAAe.g. summoned food & drink, argent lance|r
+In case you encounter highly overrated items, put them on your |cffffd200Vendor Price List|r. They will only have their vendor value used instead of auction or disenchant values.
+|cffAAAAAAe.g. fish oil|r
+Put items on your |cffffd200Sell List|r that should be sold when visiting a merchant.
+|cffAAAAAAe.g. water as a warrior, cheese|r]],
+
+	iconButtonsUse = [[|cffffd200Item Buttons|r
+For any item you'll either see its icon, a gear if it's a category or a question mark in case the server doesn't know this item.
+In the top left of each button you'll see a "G" (or not). If it's there, the item is on your |cffffd200global list|r meaning this rule is effective for every character.
+Items on your Junk List may also have a |cffffd200limit|r. This will be shown as a small number in the lower right corner. By using the |cffffd200mousewheel|r on this button you can change this number. Limited items will only be dropped/destroyed if you have more than their limit indicates.]],
+
+	actionButtonsUse = [[|cffffd200Action Buttons|r
+Below this window you'll see five buttons and a search bar.
+|TInterface\Icons\Spell_ChargePositive:18|t |cffffd200Plus|r: Use this to add items to the currently shown list. Simply drag/drop them onto the plus. To add a |cffffd200category|r, right-click the plus and then choose a category.
+|cffAAAAAAe.g. "Tradeskill > Recipe", "Misc > Key"|r
+|TInterface\Icons\Spell_ChargeNegative:18|t |cffffd200Minus|r: Mark items on the list (by clicking them). When you click the minus, they will be removed from this list.
+|TInterface\Icons\INV_Misc_GroupLooking:18|t |cffffd200Local|r: Marked items will be put on your local list, meaning the rule is only active for the current character.
+|TInterface\Icons\INV_Misc_GroupNeedMore:18|t |cffffd200Global|r: Same as local, only this time items will be put on your global list. Those rules are active for all your characters.
+|TInterface\Buttons\UI-GroupLoot-Pass-UP:18|t |cffffd200Empty|r: Click this button to remove any character specific (local) items from it. Shift-click empties any account wide (global) rules. |cffff0000Use with caution!|r]],
+
+	LOPlus = "Add items to this list by |cffffffffdragging|r/ |cffffffffdropping|r them onto this button.\n|cffffffffRight-click|r to add categories!",
+	LOMinus = "Choose items to be removed from the list, then |cffffffffclick|r here.",
+	LODemote = "|cffffffffClick|r to have any marked items used as character specific rules.",
+	LOPromote = "|cffffffffClick|r to use any marked item as account wide rule.",
+	LOEmptyList = "|cffff0000Caution!|r\n|cffffffffClick|r to empty any local entries on this list.\n"..
+		"|cffffffffShift-Click|r to empty any global entries.",
+	search = "Search...",
+
+	-- LibPeriodicTable category testing
+	PTCategoryTest = "Category Test",
+	PTCategoryTestTitle = "LibPeriodicTable Category String Test",
+	PTCategoryTestSubTitle = "If you're unsure why an item shows up as it does or which items are included in which category, you can test that here.",
+	PTCategoryTestExplanation = "Simply select a category below and it will display all items in your inventory that match this category.\nCategory information comes from LPT and not Broker_Garbage.",
+	PTCategoryTestDropdownTitle = "Category to check",
+	PTCategoryTestDropdownText = "Choose a category string",
+}
\ No newline at end of file
diff --git a/options.lua b/options.lua
new file mode 100644
index 0000000..b2df7cb
--- /dev/null
+++ b/options.lua
@@ -0,0 +1,1396 @@
+_, BrokerGarbage = ...
+
+-- create drop down menu table for PT sets
+local interestingPTSets = {"Consumable", "Misc", "Tradeskill"}
+
+BrokerGarbage.PTSets = {}
+local sets
+if not BrokerGarbage.PT then
+	sets = {}
+else
+	sets = BrokerGarbage.PT.sets
+end
+for set, _ in pairs(sets) do
+	local interesting = false
+	local partials = { strsplit(".", set) }
+	local maxParts = #partials
+
+	for i = 1, #interestingPTSets do
+		if strfind(partials[1], interestingPTSets[i]) then
+			interesting = true
+			break
+		end
+	end
+
+	if interesting then
+		local pre = BrokerGarbage.PTSets
+
+		for i = 1, maxParts do
+			if i == maxParts then
+				-- actual clickable entries
+				pre[ partials[i] ] = set
+			else
+				-- all parts before that
+				if not pre[ partials[i] ] or type(pre[ partials[i] ]) == "string" then
+					pre[ partials[i] ] = {}
+				end
+				pre = pre[ partials[i] ]
+			end
+		end
+	end
+end
+
+-- options panel / statistics
+BrokerGarbage.options = CreateFrame("Frame", "BG_Statistics", InterfaceOptionsFramePanelContainer)
+BrokerGarbage.options.name = "Broker_Garbage"
+BrokerGarbage.options:Hide()
+
+-- default / main options
+BrokerGarbage.basicOptions = CreateFrame("Frame", "BG_BasicOptions", InterfaceOptionsFramePanelContainer)
+BrokerGarbage.basicOptions.name = BrokerGarbage.locale.BasicOptionsTitle
+BrokerGarbage.basicOptions.parent = "Broker_Garbage"
+BrokerGarbage.basicOptions:Hide()
+
+-- list options
+BrokerGarbage.listOptions = CreateFrame("Frame", "BG_ListOptions", InterfaceOptionsFramePanelContainer)
+BrokerGarbage.listOptions.name = BrokerGarbage.locale.LOTitle
+BrokerGarbage.listOptions.parent = "Broker_Garbage"
+BrokerGarbage.listOptions:Hide()
+
+-- lists that hold our buttons
+BrokerGarbage.listButtons = {}
+
+-- button tooltip infos
+local function ShowTooltip(self)
+	GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
+	if self.tiptext and self.itemID and self.tiptext ~= "ID: "..self.itemID then
+		local text = string.gsub(self.tiptext, "%.", " |cffffd200>|r ")
+
+		GameTooltip:ClearLines()
+		GameTooltip:AddLine("LibPeriodicTable")
+		GameTooltip:AddLine(text, 1, 1, 1, true)
+	elseif self.tiptext then
+		GameTooltip:SetText(self.tiptext, nil, nil, nil, nil, true)
+	elseif self.itemLink then
+		GameTooltip:SetHyperlink(self.itemLink)
+	end
+	GameTooltip:Show()
+end
+local function HideTooltip() GameTooltip:Hide() end
+
+local function ShowOptions()
+	-- ----------------------------------
+	-- Statistics / Introductory frame
+	-- ----------------------------------
+	local title, subtitle = LibStub("tekKonfig-Heading").new(BrokerGarbage.options, "Broker_Garbage", BrokerGarbage.locale.StatisticsHeading)
+
+	local noticetext = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	noticetext:SetPoint("TOPLEFT", subtitle, "BOTTOMLEFT", 0, 0)
+	noticetext:SetPoint("RIGHT", BrokerGarbage.options, -32, 0)
+	noticetext:SetHeight(40)
+	noticetext:SetNonSpaceWrap(true)
+	noticetext:SetJustifyH("LEFT")
+	noticetext:SetJustifyV("TOP")
+	noticetext:SetText(BrokerGarbage.PT and "" or BrokerGarbage.locale.LPTNoticeText)
+
+	UpdateAddOnMemoryUsage()
+	local memoryusage = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontNormalSmall")
+	memoryusage:SetWidth(150)
+	memoryusage:SetPoint("TOPLEFT", noticetext, "BOTTOMLEFT", -2, 0)
+	memoryusage:SetJustifyH("RIGHT")
+	memoryusage:SetText(BrokerGarbage.locale.MemoryUsageTitle)
+	local mutext = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	mutext:SetWidth(120)
+	mutext:SetPoint("LEFT", memoryusage, "RIGHT", 4, 0)
+	mutext:SetJustifyH("LEFT")
+	mutext:SetText(math.floor(GetAddOnMemoryUsage("Broker_Garbage")))
+	local muaction = CreateFrame("Button", nil, BrokerGarbage.options)
+	muaction:SetPoint("LEFT", mutext, "RIGHT", 4, 0)
+	muaction:SetWidth(16); muaction:SetHeight(16)
+	muaction:SetNormalTexture("Interface\\RAIDFRAME\\ReadyCheck-Waiting")
+	muaction.tiptext = BrokerGarbage.locale.CollectMemoryUsageTooltip
+	muaction:SetScript("OnEnter", ShowTooltip)
+	muaction:SetScript("OnLeave", HideTooltip)
+
+	local auctionaddon = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontNormalSmall")
+	auctionaddon:SetWidth(150)
+	auctionaddon:SetPoint("TOPLEFT", memoryusage, "BOTTOMLEFT", 0, -6)
+	auctionaddon:SetJustifyH("RIGHT")
+	auctionaddon:SetText(BrokerGarbage.locale.AuctionAddon)
+	local aatext = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	aatext:SetWidth(120)
+	aatext:SetPoint("LEFT", auctionaddon, "RIGHT", 4, 0)
+	aatext:SetJustifyH("LEFT")
+	aatext:SetText(BrokerGarbage.auctionAddon)
+
+	-- ----------------------------------------------------------------------------
+	local globalmoneyinfo = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	globalmoneyinfo:SetPoint("TOPLEFT", auctionaddon, "BOTTOMLEFT", 0, -12)
+	globalmoneyinfo:SetPoint("RIGHT", BrokerGarbage.options, -32, 0)
+	globalmoneyinfo:SetNonSpaceWrap(true)
+	globalmoneyinfo:SetJustifyH("LEFT")
+	globalmoneyinfo:SetJustifyV("TOP")
+	globalmoneyinfo:SetText(BrokerGarbage.locale.GlobalStatisticsHeading)
+
+	local globalearned = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontNormalSmall")
+	globalearned:SetWidth(150)
+	globalearned:SetPoint("TOPLEFT", globalmoneyinfo, "BOTTOMLEFT", 0, -15)
+	globalearned:SetJustifyH("RIGHT")
+	globalearned:SetText(BrokerGarbage.locale.GlobalMoneyEarnedTitle)
+	local getext = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	getext:SetWidth(120)
+	getext:SetPoint("LEFT", globalearned, "RIGHT", 4, 0)
+	getext:SetJustifyH("LEFT")
+	getext:SetText(BrokerGarbage:FormatMoney(BG_GlobalDB.moneyEarned))
+	local geaction = CreateFrame("Button", nil, BrokerGarbage.options)
+	geaction:SetPoint("LEFT", getext, "RIGHT", 4, 0)
+	geaction:SetWidth(16); geaction:SetHeight(16)
+	geaction:SetNormalTexture("Interface\\RAIDFRAME\\ReadyCheck-NotReady")
+	geaction.tiptext = BrokerGarbage.locale.ResetGlobalMoneyEarnedTooltip
+	geaction:SetScript("OnEnter", ShowTooltip)
+	geaction:SetScript("OnLeave", HideTooltip)
+
+	local itemssold = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontNormalSmall")
+	itemssold:SetWidth(150)
+	itemssold:SetPoint("TOPLEFT", globalearned, "BOTTOMLEFT", 0, -6)
+	itemssold:SetJustifyH("RIGHT")
+	itemssold:SetText(BrokerGarbage.locale.GlobalItemsSoldTitle)
+	local istext = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	istext:SetWidth(120)
+	istext:SetPoint("LEFT", itemssold, "RIGHT", 4, 0)
+	istext:SetJustifyH("LEFT")
+	istext:SetText(BG_GlobalDB.itemsSold)
+	local isaction = CreateFrame("Button", nil, BrokerGarbage.options)
+	isaction:SetPoint("LEFT", istext, "RIGHT", 4, 0)
+	isaction:SetWidth(16); isaction:SetHeight(16)
+	isaction:SetNormalTexture("Interface\\RAIDFRAME\\ReadyCheck-NotReady")
+	isaction.tiptext = BrokerGarbage.locale.ResetGlobalItemsSoldTooltip
+	isaction:SetScript("OnEnter", ShowTooltip)
+	isaction:SetScript("OnLeave", HideTooltip)
+
+	local avgsold = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontNormalSmall")
+	avgsold:SetWidth(150)
+	avgsold:SetPoint("TOPLEFT", itemssold, "BOTTOMLEFT", 0, -6)
+	avgsold:SetJustifyH("RIGHT")
+	avgsold:SetText(BrokerGarbage.locale.AverageSellValueTitle)
+	local astext = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	astext:SetWidth(120)
+	astext:SetPoint("LEFT", avgsold, "RIGHT", 4, 0)
+	astext:SetJustifyH("LEFT")
+	astext:SetText(BrokerGarbage:FormatMoney(math.floor(BG_GlobalDB.moneyEarned / (BG_GlobalDB.itemsSold ~= 0 and BG_GlobalDB.itemsSold or 1))))
+
+	-- ----------------------------------------------------------------------------
+	local globallost = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontNormalSmall")
+	globallost:SetWidth(150)
+	globallost:SetPoint("TOPLEFT", avgsold, "BOTTOMLEFT", 0, -15)
+	globallost:SetJustifyH("RIGHT")
+	globallost:SetText(BrokerGarbage.locale.GlobalMoneyLostTitle)
+	local gltext = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	gltext:SetWidth(120)
+	gltext:SetPoint("LEFT", globallost, "RIGHT", 4, 0)
+	gltext:SetJustifyH("LEFT")
+	gltext:SetText(BrokerGarbage:FormatMoney(BG_GlobalDB.moneyLostByDeleting))
+	local glaction = CreateFrame("Button", nil, BrokerGarbage.options)
+	glaction:SetPoint("LEFT", gltext, "RIGHT", 4, 0)
+	glaction:SetWidth(16); glaction:SetHeight(16)
+	glaction:SetNormalTexture("Interface\\RAIDFRAME\\ReadyCheck-NotReady")
+	glaction.tiptext = BrokerGarbage.locale.ResetGlobalMoneyLostTooltip
+	glaction:SetScript("OnEnter", ShowTooltip)
+	glaction:SetScript("OnLeave", HideTooltip)
+
+	local itemsdropped = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontNormalSmall")
+	itemsdropped:SetWidth(150)
+	itemsdropped:SetPoint("TOPLEFT", globallost, "BOTTOMLEFT", 0, -6)
+	itemsdropped:SetJustifyH("RIGHT")
+	itemsdropped:SetText(BrokerGarbage.locale.ItemsDroppedTitle)
+	local idtext = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	idtext:SetWidth(120)
+	idtext:SetPoint("LEFT", itemsdropped, "RIGHT", 4, 0)
+	idtext:SetJustifyH("LEFT")
+	idtext:SetText(BG_GlobalDB.itemsDropped)
+	local idaction = CreateFrame("Button", nil, BrokerGarbage.options)
+	idaction:SetPoint("LEFT", idtext, "RIGHT", 4, 0)
+	idaction:SetWidth(16); idaction:SetHeight(16)
+	idaction:SetNormalTexture("Interface\\RAIDFRAME\\ReadyCheck-NotReady")
+	idaction.tiptext = BrokerGarbage.locale.ResetGlobalItemsDroppedTooltip
+	idaction:SetScript("OnEnter", ShowTooltip)
+	idaction:SetScript("OnLeave", HideTooltip)
+
+	local avglost = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontNormalSmall")
+	avglost:SetWidth(150)
+	avglost:SetPoint("TOPLEFT", itemsdropped, "BOTTOMLEFT", 0, -6)
+	avglost:SetJustifyH("RIGHT")
+	avglost:SetText(BrokerGarbage.locale.AverageDropValueTitle)
+	local altext = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	altext:SetWidth(120)
+	altext:SetPoint("LEFT", avglost, "RIGHT", 4, 0)
+	altext:SetJustifyH("LEFT")
+	altext:SetText(BrokerGarbage:FormatMoney(math.floor(BG_GlobalDB.moneyLostByDeleting / (BG_GlobalDB.itemsDropped ~= 0 and BG_GlobalDB.itemsDropped or 1))))
+
+	-- ----------------------------------------------------------------------------
+	local localmoneyinfo = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	localmoneyinfo:SetPoint("TOPLEFT", avglost, "BOTTOMLEFT", 0, -12)
+	localmoneyinfo:SetPoint("RIGHT", BrokerGarbage.options, -32, 0)
+	localmoneyinfo:SetNonSpaceWrap(true)
+	localmoneyinfo:SetJustifyH("LEFT")
+	localmoneyinfo:SetJustifyV("TOP")
+	localmoneyinfo:SetText(format(BrokerGarbage.locale.LocalStatisticsHeading, UnitName("player")))
+
+	local localearned = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontNormalSmall")
+	localearned:SetWidth(150)
+	localearned:SetPoint("TOPLEFT", localmoneyinfo, "BOTTOMLEFT", 0, -15)
+	localearned:SetJustifyH("RIGHT")
+	localearned:SetText(BrokerGarbage.locale.StatisticsLocalAmountEarned)
+	local letext = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	letext:SetWidth(120)
+	letext:SetPoint("LEFT", localearned, "RIGHT", 4, 0)
+	letext:SetJustifyH("LEFT")
+	letext:SetText(BrokerGarbage:FormatMoney(BG_LocalDB.moneyEarned))
+	local leaction = CreateFrame("Button", nil, BrokerGarbage.options)
+	leaction:SetPoint("LEFT", letext, "RIGHT", 4, 0)
+	leaction:SetWidth(16); leaction:SetHeight(16)
+	leaction:SetNormalTexture("Interface\\RAIDFRAME\\ReadyCheck-NotReady")
+	leaction.tiptext = BrokerGarbage.locale.ResetLocalMoneyEarnedTooltip
+	leaction:SetScript("OnEnter", ShowTooltip)
+	leaction:SetScript("OnLeave", HideTooltip)
+
+	local locallost = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontNormalSmall")
+	locallost:SetWidth(150)
+	locallost:SetPoint("TOPLEFT", localearned, "BOTTOMLEFT", 0, -15)
+	locallost:SetJustifyH("RIGHT")
+	locallost:SetText(BrokerGarbage.locale.StatisticsLocalAmountLost)
+	local lltext = BrokerGarbage.options:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	lltext:SetWidth(120)
+	lltext:SetPoint("LEFT", locallost, "RIGHT", 4, 0)
+	lltext:SetJustifyH("LEFT")
+	lltext:SetText(BrokerGarbage:FormatMoney(BG_LocalDB.moneyLostByDeleting))
+	local llaction = CreateFrame("Button", nil, BrokerGarbage.options)
+	llaction:SetPoint("LEFT", lltext, "RIGHT", 4, 0)
+	llaction:SetWidth(16); llaction:SetHeight(16)
+	llaction:SetNormalTexture("Interface\\RAIDFRAME\\ReadyCheck-NotReady")
+	llaction.tiptext = BrokerGarbage.locale.ResetLocalMoneyLostTooltip
+	llaction:SetScript("OnEnter", ShowTooltip)
+	llaction:SetScript("OnLeave", HideTooltip)
+
+	-- ----------------------------------------------------------------------------
+	-- when panel is shown this will update the statistics data
+	local function UpdateStats()
+		UpdateAddOnMemoryUsage()
+		mutext:SetText(math.floor(GetAddOnMemoryUsage("Broker_Garbage")))
+
+		getext:SetText(BrokerGarbage:FormatMoney(BG_GlobalDB.moneyEarned))
+		istext:SetText(BG_GlobalDB.itemsSold)
+		gltext:SetText(BrokerGarbage:FormatMoney(BG_GlobalDB.moneyLostByDeleting))
+		idtext:SetText(BG_GlobalDB.itemsDropped)
+
+		astext:SetText(BrokerGarbage:FormatMoney(math.floor(BG_GlobalDB.moneyEarned / (BG_GlobalDB.itemsSold ~= 0 and BG_GlobalDB.itemsSold or 1))))
+		altext:SetText(BrokerGarbage:FormatMoney(math.floor(BG_GlobalDB.moneyLostByDeleting / (BG_GlobalDB.itemsDropped ~= 0 and BG_GlobalDB.itemsDropped or 1))))
+
+		letext:SetText(BrokerGarbage:FormatMoney(BG_LocalDB.moneyEarned))
+		lltext:SetText(BrokerGarbage:FormatMoney(BG_LocalDB.moneyLostByDeleting))
+	end
+
+	-- omg-i-reset-everything!!!!!! buttons
+	local globalreset = LibStub("tekKonfig-Button").new(BrokerGarbage.options, "TOPLEFT", locallost, "BOTTOMLEFT", 0, -30)
+	globalreset:SetText(BrokerGarbage.locale.ResetGlobalDataText)
+	globalreset.tiptext = BrokerGarbage.locale.ResetGlobalDataTooltip
+	globalreset:SetWidth(150)
+	globalreset:SetScript("OnClick", function()
+		BrokerGarbage:ResetAll(true)
+		UpdateStats()
+	end)
+
+	local localreset = LibStub("tekKonfig-Button").new(BrokerGarbage.options, "TOPLEFT", globalreset, "TOPRIGHT", 20, 0)
+	localreset:SetText(BrokerGarbage.locale.ResetLocalDataText)
+	localreset.tiptext = BrokerGarbage.locale.ResetLocalDataTooltip
+	localreset:SetWidth(150)
+	localreset:SetScript("OnClick", function()
+		BrokerGarbage:ResetAll(false)
+		UpdateStats()
+	end)
+
+	local function OnClick(self)
+		if self == muaction then
+			collectgarbage("collect")
+		elseif self == geaction then
+			BrokerGarbage:ResetMoney("earned", true)
+		elseif self == glaction then
+			BrokerGarbage:ResetMoney("lost", true)
+		elseif self == idaction then
+			BG_GlobalDB.itemsDropped = 0
+		elseif self == isaction then
+			BG_GlobalDB.itemsSold = 0
+		elseif self == leaction then
+			BG_LocalDB.moneyEarned = 0
+		elseif self == llaction then
+			BG_LocalDB.moneyLostByDeleting = 0
+		end
+
+		UpdateStats()
+	end
+	muaction:SetScript("OnClick", OnClick)
+	geaction:SetScript("OnClick", OnClick)
+	isaction:SetScript("OnClick", OnClick)
+	glaction:SetScript("OnClick", OnClick)
+	idaction:SetScript("OnClick", OnClick)
+	leaction:SetScript("OnClick", OnClick)
+	llaction:SetScript("OnClick", OnClick)
+
+	BrokerGarbage.options:SetScript("OnShow", UpdateStats)
+end
+
+local function ShowBasicOptions()
+	-- ----------------------------------
+	-- Basic Options
+	-- ----------------------------------
+	local title0, subtitle0 = LibStub("tekKonfig-Heading").new(BrokerGarbage.basicOptions, "Broker_Garbage - "..BrokerGarbage.locale.BasicOptionsTitle, BrokerGarbage.locale.BasicOptionsText)
+
+	local autosell = LibStub("tekKonfig-Checkbox").new(BrokerGarbage.basicOptions, nil, BrokerGarbage.locale.autoSellTitle, "TOPLEFT", subtitle0, "BOTTOMLEFT", -2, -4)
+	autosell.tiptext = BrokerGarbage.locale.autoSellText
+	autosell:SetChecked(BG_GlobalDB.autoSellToVendor)
+	local checksound = autosell:GetScript("OnClick")
+	autosell:SetScript("OnClick", function(autosell)
+		checksound(autosell)
+		BG_GlobalDB.autoSellToVendor = not BG_GlobalDB.autoSellToVendor
+	end)
+
+	local autosellicon = LibStub("tekKonfig-Checkbox").new(BrokerGarbage.basicOptions, nil, BrokerGarbage.locale.showAutoSellIconTitle, "TOPLEFT", autosell, "BOTTOMLEFT", 14, 0)
+	autosellicon.tiptext = BrokerGarbage.locale.showAutoSellIconText
+	autosellicon:SetChecked(BG_GlobalDB.showAutoSellIcon)
+	local checksound = autosellicon:GetScript("OnClick")
+	autosellicon:SetScript("OnClick", function(autosellicon)
+		checksound(autosellicon)
+		BG_GlobalDB.showAutoSellIcon = not BG_GlobalDB.showAutoSellIcon
+	end)
+
+	local nothingtext = LibStub("tekKonfig-Checkbox").new(BrokerGarbage.basicOptions, nil, BrokerGarbage.locale.showNothingToSellTitle, "TOPLEFT", autosellicon, "BOTTOMLEFT", 0, 0)
+	nothingtext.tiptext = BrokerGarbage.locale.showNothingToSellText
+	nothingtext:SetChecked(BG_GlobalDB.reportNothingToSell)
+	local checksound = nothingtext:GetScript("OnClick")
+	nothingtext:SetScript("OnClick", function(nothingtext)
+		checksound(nothingtext)
+		BG_GlobalDB.reportNothingToSell = not BG_GlobalDB.reportNothingToSell
+	end)
+
+	local autorepair = LibStub("tekKonfig-Checkbox").new(BrokerGarbage.basicOptions, nil, BrokerGarbage.locale.autoRepairTitle, "LEFT", autosell, "LEFT", 200, 0)
+	autorepair.tiptext = BrokerGarbage.locale.autoRepairText
+	autorepair:SetChecked(BG_GlobalDB.autoRepairAtVendor)
+	local checksound = autorepair:GetScript("OnClick")
+	autorepair:SetScript("OnClick", function(autorepair)
+		checksound(autorepair)
+		BG_GlobalDB.autoRepairAtVendor = not BG_GlobalDB.autoRepairAtVendor
+	end)
+
+	local guildrepair = LibStub("tekKonfig-Checkbox").new(BrokerGarbage.basicOptions, nil, BrokerGarbage.locale.autoRepairGuildTitle, "TOPLEFT", autorepair, "BOTTOMLEFT", 14, 0)
+	guildrepair.tiptext = BrokerGarbage.locale.autoRepairGuildText
+	guildrepair:SetChecked(BG_LocalDB.neverRepairGuildBank)
+	local checksound = guildrepair:GetScript("OnClick")
+	guildrepair:SetScript("OnClick", function(guildrepair)
+		checksound(guildrepair)
+		BG_LocalDB.neverRepairGuildBank = not BG_LocalDB.neverRepairGuildBank
+	end)
+
+	local showsource = LibStub("tekKonfig-Checkbox").new(BrokerGarbage.basicOptions, nil, BrokerGarbage.locale.showSourceTitle, "TOPLEFT", guildrepair, "BOTTOMLEFT", -14, 0)
+	showsource.tiptext = BrokerGarbage.locale.showSourceText
+	showsource:SetChecked(BG_GlobalDB.showSource)
+	local checksound = showsource:GetScript("OnClick")
+	showsource:SetScript("OnClick", function(showsource)
+		checksound(showsource)
+		BG_GlobalDB.showSource = not BG_GlobalDB.showSource
+	end)
+
+	local showlost = LibStub("tekKonfig-Checkbox").new(BrokerGarbage.basicOptions, nil, BrokerGarbage.locale.showLostTitle, "TOPLEFT", nothingtext, "BOTTOMLEFT", -14, 0)
+	showlost.tiptext = BrokerGarbage.locale.showLostText
+	showlost:SetChecked(BG_GlobalDB.showLost)
+	local checksound = showlost:GetScript("OnClick")
+	showlost:SetScript("OnClick", function(showlost)
+		checksound(showlost)
+		BG_GlobalDB.showLost = not BG_GlobalDB.showLost
+	end)
+
+	local showearned = LibStub("tekKonfig-Checkbox").new(BrokerGarbage.basicOptions, nil, BrokerGarbage.locale.showEarnedTitle, "LEFT", showlost, "LEFT", 200, 0)
+	showearned.tiptext = BrokerGarbage.locale.showEarnedText
+	showearned:SetChecked(BG_GlobalDB.showEarned)
+	local checksound = showearned:GetScript("OnClick")
+	showearned:SetScript("OnClick", function(showearned)
+		checksound(showearned)
+		BG_GlobalDB.showEarned = not BG_GlobalDB.showEarned
+	end)
+
+	local quality = LibStub("tekKonfig-Slider").new(BrokerGarbage.basicOptions, BrokerGarbage.locale.dropQualityTitle, 0, 7, "TOPLEFT", showlost, "BOTTOMLEFT", 5, -10)
+	quality.tiptext = BrokerGarbage.locale.dropQualityText
+	quality:SetWidth(200)
+	quality:SetValueStep(1)
+	quality:SetValue(BG_GlobalDB.dropQuality)
+	quality.text = quality:CreateFontString("$parentCenterText", "ARTWORK", "GameFontHighlightSmall")
+	quality.text:SetPoint("TOP", quality, "BOTTOM", 0, 3)
+	quality.text:SetText(BrokerGarbage.quality[BG_GlobalDB.dropQuality])
+	quality:SetScript("OnValueChanged", function(quality)
+		BG_GlobalDB.dropQuality = quality:GetValue()
+		quality.text:SetText(BrokerGarbage.quality[quality:GetValue()])
+		BrokerGarbage:ScanInventory()
+	end)
+
+	local testValue = 130007
+	local moneyFormat = LibStub("tekKonfig-Slider").new(BrokerGarbage.basicOptions, BrokerGarbage.locale.moneyFormatTitle, 0, 4, "LEFT", quality, "LEFT", 200, 0)
+	moneyFormat.tiptext = BrokerGarbage.locale.moneyFormatText
+	moneyFormat:SetWidth(200)
+	moneyFormat:SetValueStep(1);
+	moneyFormat:SetValue(BG_GlobalDB.showMoney)
+	moneyFormat.text = moneyFormat:CreateFontString("$parentCenterText", "ARTWORK", "GameFontHighlightSmall")
+	moneyFormat.text:SetPoint("TOP", moneyFormat, "BOTTOM", 0, 3)
+	moneyFormat.text:SetText(BrokerGarbage:FormatMoney(testValue))
+	moneyFormat:SetScript("OnValueChanged", function(moneyFormat)
+		BG_GlobalDB.showMoney = moneyFormat:GetValue()
+		moneyFormat.text:SetText(BrokerGarbage:FormatMoney(testValue))
+	end)
+
+	local ttMaxItems = LibStub("tekKonfig-Slider").new(BrokerGarbage.basicOptions, BrokerGarbage.locale.maxItemsTitle, 0, 50, "TOPLEFT", quality, "BOTTOMLEFT", 0, -15)
+	ttMaxItems.tiptext = BrokerGarbage.locale.maxItemsText
+	ttMaxItems:SetWidth(200)
+	ttMaxItems:SetValueStep(1);
+	ttMaxItems:SetValue(BG_GlobalDB.tooltipNumItems)
+	ttMaxItems.text = ttMaxItems:CreateFontString("$parentCenterText", "ARTWORK", "GameFontHighlightSmall")
+	ttMaxItems.text:SetPoint("TOP", ttMaxItems, "BOTTOM", 0, 3)
+	ttMaxItems.text:SetText(ttMaxItems:GetValue())
+	ttMaxItems:SetScript("OnValueChanged", function(ttMaxItems)
+		BG_GlobalDB.tooltipNumItems = ttMaxItems:GetValue()
+		ttMaxItems.text:SetText(ttMaxItems:GetValue())
+	end)
+
+	local ttMaxHeight = LibStub("tekKonfig-Slider").new(BrokerGarbage.basicOptions, BrokerGarbage.locale.maxHeightTitle, 0, 400, "LEFT", ttMaxItems, "LEFT", 200, 0)
+	ttMaxHeight.tiptext = BrokerGarbage.locale.maxHeightText
+	ttMaxHeight:SetWidth(200)
+	ttMaxHeight:SetValueStep(10);
+	ttMaxHeight:SetValue(BG_GlobalDB.tooltipMaxHeight)
+	ttMaxHeight.text = ttMaxHeight:CreateFontString("$parentCenterText", "ARTWORK", "GameFontHighlightSmall")
+	ttMaxHeight.text:SetPoint("TOP", ttMaxHeight, "BOTTOM", 0, 3)
+	ttMaxHeight.text:SetText(ttMaxHeight:GetValue())
+	ttMaxHeight:SetScript("OnValueChanged", function(ttMaxHeight)
+		BG_GlobalDB.tooltipMaxHeight = ttMaxHeight:GetValue()
+		ttMaxHeight.text:SetText(ttMaxHeight:GetValue())
+	end)
+
+	local sellNotUsable = LibStub("tekKonfig-Checkbox").new(BrokerGarbage.basicOptions, nil, BrokerGarbage.locale.sellNotUsableTitle, "TOPLEFT", ttMaxItems, "BOTTOMLEFT", 0, -10)
+	sellNotUsable.tiptext = BrokerGarbage.locale.sellNotUsableText
+	sellNotUsable:SetChecked(BG_GlobalDB.sellNotWearable)
+	local checksound = sellNotUsable:GetScript("OnClick")
+	sellNotUsable:SetScript("OnClick", function(sellNotUsable)
+		checksound(sellNotUsable)
+		BG_GlobalDB.sellNotWearable = not BG_GlobalDB.sellNotWearable
+		BrokerGarbage:ScanInventory()
+	end)
+	local sellNUQuality = LibStub("tekKonfig-Slider").new(BrokerGarbage.basicOptions, BrokerGarbage.locale.SNUMaxQualityTitle, 0, 6, "TOPLEFT", sellNotUsable, "BOTTOMLEFT", 25, -4)
+	sellNUQuality.tiptext = BrokerGarbage.locale.SNUMaxQualityText
+	sellNUQuality:SetWidth(200)
+	sellNUQuality:SetValueStep(1);
+	sellNUQuality:SetValue(BG_GlobalDB.sellNWQualityTreshold)
+	sellNUQuality.text = sellNUQuality:CreateFontString("$parentCenterText", "ARTWORK", "GameFontHighlightSmall")
+	sellNUQuality.text:SetPoint("TOP", sellNUQuality, "BOTTOM", 0, 3)
+	sellNUQuality.text:SetText(BrokerGarbage.quality[sellNUQuality:GetValue()])
+	sellNUQuality:SetScript("OnValueChanged", function(sellNUQuality)
+		BG_GlobalDB.sellNWQualityTreshold = sellNUQuality:GetValue()
+		sellNUQuality.text:SetText(BrokerGarbage.quality[sellNUQuality:GetValue()])
+		BrokerGarbage:ScanInventory()
+	end)
+
+	local disableKey, disableKeytext, disableKeycontainer = LibStub("tekKonfig-Dropdown").new(BrokerGarbage.basicOptions, BrokerGarbage.locale.DKTitle, "TOPLEFT", sellNUQuality, "BOTTOMLEFT", -25, -16)
+	disableKeytext:SetText(BrokerGarbage.locale.disableKeys[BG_GlobalDB.disableKey])
+	disableKey.tiptext = BrokerGarbage.locale.DKTooltip
+
+	local function OnClick()
+		UIDropDownMenu_SetSelectedValue(disableKey, this.value)
+		disableKeytext:SetText(BrokerGarbage.locale.disableKeys[this.value])
+		BG_GlobalDB.disableKey = this.value
+	end
+	UIDropDownMenu_Initialize(disableKey, function()
+		local selected, info = UIDropDownMenu_GetSelectedValue(disableKey), UIDropDownMenu_CreateInfo()
+
+		for name in pairs(BrokerGarbage.disableKey) do
+			info.text = BrokerGarbage.locale.disableKeys[name]
+			info.value = name
+			info.func = OnClick
+			info.checked = name == selected
+			UIDropDownMenu_AddButton(info)
+		end
+	end)
+
+	local enchanter = LibStub("tekKonfig-Checkbox").new(BrokerGarbage.basicOptions, nil, BrokerGarbage.locale.enchanterTitle, "LEFT", sellNotUsable, "LEFT", 200, 0)
+	enchanter.tiptext = BrokerGarbage.locale.enchanterTooltip
+	enchanter:SetChecked(BG_GlobalDB.hasEnchanter)
+	local checksound = enchanter:GetScript("OnClick")
+	enchanter:SetScript("OnClick", function(enchanter)
+		checksound(enchanter)
+		BG_GlobalDB.hasEnchanter = not BG_GlobalDB.hasEnchanter
+	end)
+
+	-- LDB format string for "Junk"
+	local editbox = CreateFrame("EditBox", nil, BrokerGarbage.basicOptions)
+	editbox:SetAutoFocus(false)
+	editbox:SetWidth(150); editbox:SetHeight(32)
+	editbox:SetFontObject("GameFontHighlightSmall")
+	editbox:SetText(BG_GlobalDB.LDBformat)
+	editbox.tiptext = BrokerGarbage.locale.LDBDisplayTextTooltip
+
+	local left = editbox:CreateTexture(nil, "BACKGROUND")
+	left:SetWidth(8) left:SetHeight(20)
+	left:SetPoint("LEFT", -5, 0)
+	left:SetTexture("Interface\\Common\\Common-Input-Border")
+	left:SetTexCoord(0, 0.0625, 0, 0.625)
+	local right = editbox:CreateTexture(nil, "BACKGROUND")
+	right:SetWidth(8) right:SetHeight(20)
+	right:SetPoint("RIGHT", 0, 0)
+	right:SetTexture("Interface\\Common\\Common-Input-Border")
+	right:SetTexCoord(0.9375, 1, 0, 0.625)
+	local center = editbox:CreateTexture(nil, "BACKGROUND")
+	center:SetHeight(20)
+	center:SetPoint("RIGHT", right, "LEFT", 0, 0)
+	center:SetPoint("LEFT", left, "RIGHT", 0, 0)
+	center:SetTexture("Interface\\Common\\Common-Input-Border")
+	center:SetTexCoord(0.0625, 0.9375, 0, 0.625)
+
+	local LDBtitle = editbox:CreateFontString(nil, "ARTWORK", "GameFontNormal")
+	LDBtitle:SetPoint("TOPLEFT", enchanter, "BOTTOMLEFT", 0, -10)
+	LDBtitle:SetText(BrokerGarbage.locale.LDBDisplayTextTitle)
+
+	editbox:SetPoint("TOPLEFT", LDBtitle, "BOTTOMLEFT", 14, 0)
+	local function ResetEditBox(self)
+		self:SetText(BG_GlobalDB.LDBformat)
+		self:ClearFocus()
+		BrokerGarbage:ScanInventory()
+	end
+	local function SubmitEditBox()
+		BG_GlobalDB.LDBformat = editbox:GetText()
+		editbox:SetText(BG_GlobalDB.LDBformat)
+		editbox:ClearFocus()
+		BrokerGarbage:ScanInventory()
+	end
+	local function ResetEditBoxDefault()
+		BG_GlobalDB.LDBformat = BrokerGarbage.defaultGlobalSettings.LDBformat
+		editbox:SetText(BG_GlobalDB.LDBformat)
+		editbox:ClearFocus()
+		BrokerGarbage:ScanInventory()
+	end
+	editbox:SetScript("OnEscapePressed", ResetEditBox)
+	editbox:SetScript("OnEnterPressed", SubmitEditBox)
+	editbox:SetScript("OnEnter", ShowTooltip)
+
+	local editReset = CreateFrame("Button", nil, BrokerGarbage.basicOptions)
+	editReset:SetPoint("LEFT", editbox, "RIGHT", 4, 0)
+	editReset:SetWidth(16); editReset:SetHeight(16)
+	editReset:SetNormalTexture("Interface\\RAIDFRAME\\ReadyCheck-NotReady")
+	editReset.tiptext = BrokerGarbage.locale.LDBDisplayTextResetTooltip
+	editReset:SetScript("OnEnter", ShowTooltip)
+	editReset:SetScript("OnLeave", HideTooltip)
+	editReset:SetScript("OnClick", ResetEditBoxDefault)
+	local editHelp = CreateFrame("Button", nil, BrokerGarbage.basicOptions)
+	editHelp:SetPoint("LEFT", LDBtitle, "RIGHT", 2, 0)
+	editHelp:SetWidth(16); editHelp:SetHeight(16)
+	editHelp:SetNormalTexture("Interface\\RAIDFRAME\\ReadyCheck-Waiting")
+	editHelp.tiptext = BrokerGarbage.locale.LDBDisplayTextHelpTooltip
+	editHelp:SetScript("OnEnter", ShowTooltip)
+	editHelp:SetScript("OnLeave", HideTooltip)
+
+	-- LDB format string for "No Junk"
+	local editbox2 = CreateFrame("EditBox", nil, BrokerGarbage.basicOptions)
+	editbox2:SetAutoFocus(false)
+	editbox2:SetWidth(150); editbox2:SetHeight(32)
+	editbox2:SetFontObject("GameFontHighlightSmall")
+	editbox2:SetText(BG_GlobalDB.LDBNoJunk)
+	editbox2.tiptext = BrokerGarbage.locale.LDBNoJunkTextTooltip
+
+	local left2 = editbox2:CreateTexture(nil, "BACKGROUND")
+	left2:SetWidth(8) left2:SetHeight(20)
+	left2:SetPoint("LEFT", -5, 0)
+	left2:SetTexture("Interface\\Common\\Common-Input-Border")
+	left2:SetTexCoord(0, 0.0625, 0, 0.625)
+	local right2 = editbox2:CreateTexture(nil, "BACKGROUND")
+	right2:SetWidth(8) right2:SetHeight(20)
+	right2:SetPoint("RIGHT", 0, 0)
+	right2:SetTexture("Interface\\Common\\Common-Input-Border")
+	right2:SetTexCoord(0.9375, 1, 0, 0.625)
+	local center2 = editbox2:CreateTexture(nil, "BACKGROUND")
+	center2:SetHeight(20)
+	center2:SetPoint("RIGHT", right2, "LEFT", 0, 0)
+	center2:SetPoint("LEFT", left2, "RIGHT", 0, 0)
+	center2:SetTexture("Interface\\Common\\Common-Input-Border")
+	center2:SetTexCoord(0.0625, 0.9375, 0, 0.625)
+
+	editbox2:SetPoint("TOPLEFT", editbox, "BOTTOMLEFT", 0, 12)
+	local function ResetEditBox(self)
+		self:SetText(BG_GlobalDB.LDBNoJunk)
+		self:ClearFocus()
+		BrokerGarbage:ScanInventory()
+	end
+	local function SubmitEditBox()
+		BG_GlobalDB.LDBNoJunk = editbox2:GetText()
+		editbox2:SetText(BG_GlobalDB.LDBNoJunk)
+		editbox2:ClearFocus()
+		BrokerGarbage:ScanInventory()
+	end
+	local function ResetEditBoxDefault()
+		BG_GlobalDB.LDBNoJunk = BrokerGarbage.locale.label
+		editbox2:SetText(BG_GlobalDB.LDBNoJunk)
+		editbox2:ClearFocus()
+		BrokerGarbage:ScanInventory()
+	end
+	editbox2:SetScript("OnEscapePressed", ResetEditBox)
+	editbox2:SetScript("OnEnterPressed", SubmitEditBox)
+	editbox2:SetScript("OnEnter", ShowTooltip)
+	editbox2:SetScript("OnLeave", HideTooltip)
+
+	local editReset2 = CreateFrame("Button", nil, BrokerGarbage.basicOptions)
+	editReset2:SetPoint("LEFT", editbox2, "RIGHT", 4, 0)
+	editReset2:SetWidth(16); editReset2:SetHeight(16)
+	editReset2:SetNormalTexture("Interface\\RAIDFRAME\\ReadyCheck-NotReady")
+	editReset2.tiptext = BrokerGarbage.locale.LDBNoJunkTextResetTooltip
+	editReset2:SetScript("OnEnter", ShowTooltip)
+	editReset2:SetScript("OnLeave", HideTooltip)
+	editReset2:SetScript("OnClick", ResetEditBoxDefault)
+
+	local rescan = LibStub("tekKonfig-Button").new(BrokerGarbage.basicOptions, "TOP", editbox2, "BOTTOM", 0, -4)
+	rescan:SetText(BrokerGarbage.locale.rescanInventory)
+	rescan.tiptext = BrokerGarbage.locale.rescanInventoryText
+	rescan:SetWidth(150)
+	rescan:SetScript("OnClick", function()
+		BrokerGarbage:ScanInventory()
+	end)
+
+	BrokerGarbage.basicOptions:SetScript("OnShow", nil)
+end
+
+local function ShowListOptions(frame)
+	-- ----------------------------------
+	-- List Options
+	-- ----------------------------------
+	local title = LibStub("tekKonfig-Heading").new(frame, "Broker_Garbage - " .. BrokerGarbage.locale.LOTitle)
+
+	local explanation = frame:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+	explanation:SetHeight(70)
+	explanation:SetPoint("TOPLEFT", title, "TOPLEFT", 0, -20)
+	explanation:SetPoint("RIGHT", frame, -4, 0)
+	explanation:SetNonSpaceWrap(true)
+	explanation:SetJustifyH("LEFT")
+	explanation:SetJustifyV("TOP")
+	explanation:SetText(BrokerGarbage.locale.LOSubTitle)
+
+	local default = LibStub("tekKonfig-Button").new(frame, "TOPLEFT", explanation, "BOTTOMLEFT", 0, -4)
+	default:SetText(BrokerGarbage.locale.defaultListsText)
+	default.tiptext = BrokerGarbage.locale.defaultListsTooltip
+	default:SetWidth(150)
+	default:RegisterForClicks("RightButtonUp", "LeftButtonUp")
+	default:SetScript("OnClick", function(self, button)
+		BrokerGarbage:CreateDefaultLists(button == "RightButton")
+	end)
+
+	local autoSellIncludeItems = LibStub("tekKonfig-Checkbox").new(frame, nil, BrokerGarbage.locale.LOIncludeAutoSellText, "LEFT", default, "RIGHT", 10, 0)
+	autoSellIncludeItems.tiptext = BrokerGarbage.locale.LOIncludeAutoSellTooltip
+	autoSellIncludeItems:SetChecked(BG_GlobalDB.autoSellIncludeItems)
+	local checksound = autoSellIncludeItems:GetScript("OnClick")
+	autoSellIncludeItems:SetScript("OnClick", function(autoSellIncludeItems)
+		checksound(autoSellIncludeItems)
+		BG_GlobalDB.autoSellIncludeItems = not BG_GlobalDB.autoSellIncludeItems
+	end)
+
+	local topTab = LibStub("tekKonfig-TopTab")
+	local panel = LibStub("tekKonfig-Group").new(frame, nil, "TOP", default, "BOTTOM", 0, -24)
+	panel:SetPoint("LEFT", 8 + 3, 0)
+	panel:SetPoint("BOTTOMRIGHT", -8 -4, 34)
+
+	local include = topTab.new(frame, BrokerGarbage.locale.LOTabTitleInclude, "BOTTOMLEFT", panel, "TOPLEFT", 0, -4)
+	frame.current = "include"
+	local exclude = topTab.new(frame, BrokerGarbage.locale.LOTabTitleExclude, "LEFT", include, "RIGHT", -15, 0)
+	exclude:Deactivate()
+	local vendorPrice = topTab.new(frame, BrokerGarbage.locale.LOTabTitleVendorPrice, "LEFT", exclude, "RIGHT", -15, 0)
+	vendorPrice:Deactivate()
+	local autoSell = topTab.new(frame, BrokerGarbage.locale.LOTabTitleAutoSell, "LEFT", vendorPrice, "RIGHT", -15, 0)
+	autoSell:Deactivate()
+	local help = topTab.new(frame, "?", "LEFT", autoSell, "RIGHT", -15, 0)
+	help:Deactivate()
+
+	local scrollFrame = CreateFrame("ScrollFrame", frame:GetName().."ScrollFrame", panel, "UIPanelScrollFrameTemplate")
+	scrollFrame:SetPoint("TOPLEFT", panel, "TOPLEFT", 0, -4)
+	scrollFrame:SetPoint("BOTTOMRIGHT", panel, "BOTTOMRIGHT", -26, 3)
+	local scrollContent = CreateFrame("Frame", scrollFrame:GetName().."Content", scrollFrame)
+	scrollFrame:SetScrollChild(scrollContent)
+	scrollContent:SetHeight(300); scrollContent:SetWidth(400)	-- will be replaced when used
+	scrollContent:SetAllPoints()
+
+	-- action buttons
+	local plus = CreateFrame("Button", "BrokerGarbage_AddButton", frame)
+	plus:SetPoint("TOPLEFT", panel, "BOTTOMLEFT", 4, -2)
+	plus:SetWidth(25); plus:SetHeight(25)
+	plus:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square")
+	plus:SetNormalTexture("Interface\\Icons\\Spell_chargepositive")
+	plus.tiptext = BrokerGarbage.locale.LOPlus
+	plus:RegisterForClicks("LeftButtonUp", "RightButtonUp")
+	local minus = CreateFrame("Button", "BrokerGarbage_RemoveButton", frame)
+	minus:SetPoint("LEFT", plus, "RIGHT", 4, 0)
+	minus:SetWidth(25);	minus:SetHeight(25)
+	minus:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square")
+	minus:SetNormalTexture("Interface\\Icons\\Spell_chargenegative")
+	minus.tiptext = BrokerGarbage.locale.LOMinus
+	local demote = CreateFrame("Button", "BrokerGarbage_DemoteButton", frame)
+	demote:SetPoint("LEFT", minus, "RIGHT", 14, 0)
+	demote:SetWidth(25) demote:SetHeight(25)
+	demote:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square")
+	demote:SetNormalTexture("Interface\\Icons\\INV_Misc_GroupLooking")
+	demote.tiptext = BrokerGarbage.locale.LODemote
+	local promote = CreateFrame("Button", "BrokerGarbage_PromoteButton", frame)
+	promote:SetPoint("LEFT", demote, "RIGHT", 4, 0)
+	promote:SetWidth(25) promote:SetHeight(25)
+	promote:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square")
+	promote:SetNormalTexture("Interface\\Icons\\INV_Misc_GroupNeedMore")
+	promote.tiptext = BrokerGarbage.locale.LOPromote
+	local emptyList = CreateFrame("Button", "BrokerGarbage_EmptyListButton", frame)
+	emptyList:SetPoint("LEFT", promote, "RIGHT", 14, 0)
+	emptyList:SetWidth(25); emptyList:SetHeight(25)
+	emptyList:SetNormalTexture("Interface\\Buttons\\Ui-grouploot-pass-up")
+	emptyList.tiptext = BrokerGarbage.locale.LOEmptyList
+
+	-- editbox curtesy of Tekkub
+	local searchbox = CreateFrame("EditBox", nil, frame)
+	searchbox:SetAutoFocus(false)
+	searchbox:SetPoint("TOPRIGHT", panel, "BOTTOMRIGHT", -4, 2)
+	searchbox:SetWidth(160)
+	searchbox:SetHeight(32)
+	searchbox:SetFontObject("GameFontHighlightSmall")
+
+	local left = searchbox:CreateTexture(nil, "BACKGROUND")
+	left:SetWidth(8) left:SetHeight(20)
+	left:SetPoint("LEFT", -5, 0)
+	left:SetTexture("Interface\\Common\\Common-Input-Border")
+	left:SetTexCoord(0, 0.0625, 0, 0.625)
+	local right = searchbox:CreateTexture(nil, "BACKGROUND")
+	right:SetWidth(8) right:SetHeight(20)
+	right:SetPoint("RIGHT", 0, 0)
+	right:SetTexture("Interface\\Common\\Common-Input-Border")
+	right:SetTexCoord(0.9375, 1, 0, 0.625)
+	local center = searchbox:CreateTexture(nil, "BACKGROUND")
+	center:SetHeight(20)
+	center:SetPoint("RIGHT", right, "LEFT", 0, 0)
+	center:SetPoint("LEFT", left, "RIGHT", 0, 0)
+	center:SetTexture("Interface\\Common\\Common-Input-Border")
+	center:SetTexCoord(0.0625, 0.9375, 0, 0.625)
+
+	searchbox:SetScript("OnEscapePressed", searchbox.ClearFocus)
+	searchbox:SetScript("OnEnterPressed", searchbox.ClearFocus)
+	searchbox:SetScript("OnEditFocusGained", function(self)
+		if not self.searchString then
+			self:SetText("")
+			self:SetTextColor(1,1,1,1)
+		end
+	end)
+	searchbox:SetScript("OnEditFocusLost", function(self)
+		if self:GetText() == "" then
+			self:SetText(BrokerGarbage.locale.search)
+			self:SetTextColor(0.75, 0.75, 0.75, 1)
+		end
+	end)
+	searchbox:SetScript("OnTextChanged", function(self)
+		local t = self:GetText()
+		self.searchString = t ~= "" and t ~= BrokerGarbage.locale.search and t:lower() or nil
+		BrokerGarbage:UpdateSearch(self.searchString)
+	end)
+	searchbox:SetText(BrokerGarbage.locale.search)
+	searchbox:SetTextColor(0.75, 0.75, 0.75, 1)
+
+	-- tab changing actions
+	include:SetScript("OnClick", function(self)
+		self:Activate()
+		exclude:Deactivate()
+		vendorPrice:Deactivate()
+		autoSell:Deactivate()
+		help:Deactivate()
+		promote:Enable(); promote:GetNormalTexture():SetDesaturated(false)
+		demote:Enable(); demote:GetNormalTexture():SetDesaturated(false)
+		frame.current = "include"
+		scrollFrame:SetVerticalScroll(0)
+		BrokerGarbage:ListOptionsUpdate()
+	end)
+	exclude:SetScript("OnClick", function(self)
+		self:Activate()
+		include:Deactivate()
+		vendorPrice:Deactivate()
+		autoSell:Deactivate()
+		help:Deactivate()
+		promote:Enable(); promote:GetNormalTexture():SetDesaturated(false)
+		demote:Enable(); demote:GetNormalTexture():SetDesaturated(false)
+		frame.current = "exclude"
+		scrollFrame:SetVerticalScroll(0)
+		BrokerGarbage:ListOptionsUpdate()
+	end)
+	vendorPrice:SetScript("OnClick", function(self)
+		self:Activate()
+		include:Deactivate()
+		exclude:Deactivate()
+		autoSell:Deactivate()
+		help:Deactivate()
+		promote:Disable(); promote:GetNormalTexture():SetDesaturated(true)
+		demote:Disable(); demote:GetNormalTexture():SetDesaturated(true)
+		frame.current = "forceVendorPrice"
+		scrollFrame:SetVerticalScroll(0)
+		BrokerGarbage:ListOptionsUpdate()
+	end)
+	autoSell:SetScript("OnClick", function(self)
+		self:Activate()
+		include:Deactivate()
+		exclude:Deactivate()
+		vendorPrice:Deactivate()
+		help:Deactivate()
+		promote:Enable(); promote:GetNormalTexture():SetDesaturated(false)
+		demote:Enable(); demote:GetNormalTexture():SetDesaturated(false)
+		frame.current = "autoSellList"
+		scrollFrame:SetVerticalScroll(0)
+		BrokerGarbage:ListOptionsUpdate()
+	end)
+	help:SetScript("OnClick", function(self)
+		self:Activate()
+		include:Deactivate()
+		exclude:Deactivate()
+		autoSell:Deactivate()
+		vendorPrice:Deactivate()
+		promote:Enable(); promote:GetNormalTexture():SetDesaturated(false)
+		demote:Enable(); demote:GetNormalTexture():SetDesaturated(false)
+		frame.current = nil
+		scrollFrame:SetVerticalScroll(0)
+		BrokerGarbage:ShowHelp()
+	end)
+
+	-- function to set the drop treshold (limit) via the mousewheel
+	local function OnMouseWheel(self, dir)
+		if type(self.itemID) ~= "number" then return end
+		BrokerGarbage.itemsCache[self.itemID] = nil		-- clear item from cache
+
+		local text, limit = self.limit:GetText()
+		if self.isGlobal then
+			list = BG_GlobalDB[frame.current]
+		else
+			list = BG_LocalDB[frame.current]
+		end
+
+		if dir == 1 then	-- up
+			if list[self.itemID] == true then
+				list[self.itemID] = 1
+			else
+				list[self.itemID] = list[self.itemID] + 1
+			end
+			text = list[self.itemID]
+		else				-- down
+			if list[self.itemID] == true then
+				text = ""
+			elseif list[self.itemID] == 1 then
+				list[self.itemID] = true
+				text = ""
+			else
+				list[self.itemID] = list[self.itemID] - 1
+				text = list[self.itemID]
+			end
+		end
+		self.limit:SetText(text)
+	end
+
+	-- function that updates & shows items from various lists
+	local numCols
+	function BrokerGarbage:ListOptionsUpdate()
+		-- update scrollframe content to full width
+		scrollContent:SetWidth(scrollFrame:GetWidth())
+		if frame.current == nil then
+			BrokerGarbage:ShowHelp()
+		elseif _G["BrokerGarbageHelpFrame"] then
+			_G["BrokerGarbageHelpFrame"]:Hide()
+		end
+		local globalList = BG_GlobalDB[frame.current]
+		local localList = BG_LocalDB[frame.current] or {}
+		local dataList = BrokerGarbage:JoinTables(globalList, localList)
+
+		-- make this table sortable
+		data = {}
+		for key, value in pairs(dataList) do
+			table.insert(data, key)
+		end
+		table.sort(data, function(a,b)
+			if type(a) == "string" and type(b) == "string" then
+				return a < b
+			elseif type(a) == "number" and type(b) == "number" then
+				return (GetItemInfo(a) or "z") < (GetItemInfo(b) or "z")
+			else
+				return type(a) == "string"
+			end
+		end)
+
+		if not BrokerGarbage.listButtons then BrokerGarbage.listButtons = {} end
+		for index, itemID in ipairs(data) do
+			if BrokerGarbage.listButtons[index] then
+				-- use available button
+				local button = BrokerGarbage.listButtons[index]
+				local itemLink, texture
+				if type(itemID) ~= "number" then	-- this is an item category
+					itemLink = nil
+					button.tiptext = itemID			-- category description string
+					texture = "Interface\\Icons\\Trade_engineering"
+				else	-- this is an explicit item
+					_, itemLink, _, _, _, _, _, _, _, texture, _ = GetItemInfo(itemID)
+					button.tiptext = nil
+				end
+
+				if texture then	-- everything's fine
+					button.itemID = itemID
+					button.itemLink = itemLink
+					button:SetNormalTexture(texture)
+
+					if globalList[itemID] then
+						button.global:SetText("G")
+						button.isGlobal = true
+					else
+						button.global:SetText("")
+						button.isGlobal = false
+					end
+					if button.isGlobal and globalList[itemID] ~= true then
+						button.limit:SetText(globalList[itemID])
+					elseif localList[itemID] ~= true then
+						button.limit:SetText(localList[itemID])
+					else
+						button.limit:SetText("")
+					end
+
+					if not itemLink and not BrokerGarbage.PT then
+						button:SetAlpha(0.2)
+						button.tiptext = button.tiptext .. "\n|cffff0000"..BrokerGarbage.locale.LPTNotLoaded
+					end
+				else	-- an item the server has not seen
+					button.itemID = itemID
+					button.tiptext = "ID: "..itemID
+					button:SetNormalTexture("Interface\\Icons\\Inv_misc_questionmark")
+				end
+				if BrokerGarbage.listOptions.current == "include" then
+					button:EnableMouseWheel(true)
+					button:SetScript("OnMouseWheel", OnMouseWheel)
+				else
+					button:EnableMouseWheel(false)
+				end
+				button:SetChecked(false)
+				button:Show()
+			else
+				-- create another button
+				local button = CreateFrame("CheckButton", scrollContent:GetName().."Item"..index, scrollContent)
+				button:Hide()
+				button:SetWidth(36)
+				button:SetHeight(36)
+
+				local limit = button:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+				limit:SetPoint("BOTTOMLEFT", button, "BOTTOMLEFT", 2, 1)
+				limit:SetPoint("BOTTOMLEFT", button, "BOTTOMLEFT", 2, 1)
+				limit:SetPoint("BOTTOMRIGHT", button, "BOTTOMRIGHT", -3, 1)
+				limit:SetHeight(20)
+				limit:SetJustifyH("RIGHT")
+				limit:SetJustifyV("BOTTOM")
+				limit:SetText("")
+				button.limit = limit
+
+				local global = button:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+				global:SetPoint("TOPLEFT", button, "TOPLEFT", 2, -2)
+				global:SetPoint("BOTTOMRIGHT", button, "BOTTOMRIGHT", -3, 1)
+				global:SetJustifyH("LEFT")
+				global:SetJustifyV("TOP")
+				global:SetText("")
+				button.global = global
+
+				button:SetNormalTexture("Interface\\Icons\\Inv_misc_questionmark")
+				button:SetHighlightTexture("Interface\\Buttons\\ButtonHilight-Square")
+				button:SetCheckedTexture("Interface\\Buttons\\UI-Button-Outline")
+				button:SetChecked(false)
+				local tex = button:GetCheckedTexture()
+				tex:ClearAllPoints()
+				tex:SetPoint("CENTER")
+				tex:SetWidth(36/37*66) tex:SetHeight(36/37*66)
+
+				button:SetScript("OnClick", function(self)
+					local check = self:GetChecked()
+					BrokerGarbage:Debug("OnClick", check)
+
+					if IsModifiedClick() then
+						-- this handles chat linking as well as dress-up
+						local linkText = type(self.itemID) == "string" and self.itemID or BrokerGarbage.locale.AuctionAddonUnknown
+						HandleModifiedItemClick(self.itemLink or linkText)
+						self:SetChecked(not check)
+					elseif not IsModifierKeyDown() then
+						self:SetChecked(check)
+					else
+						self:SetChecked(not check)
+					end
+				end)
+				button:SetScript("OnEnter", ShowTooltip)
+				button:SetScript("OnLeave", HideTooltip)
+
+				if not numCols and panel:GetWidth() - (index+1)*button:GetWidth() < 2 then
+					-- we found the width limit, set the column count
+					numCols = index - 1
+				end
+				if index == 1 then		-- place first icon
+					button:SetPoint("TOPLEFT", scrollContent, "TOPLEFT", 6, -6)
+				elseif numCols and mod(index, numCols) == 1 then	-- new row
+					button:SetPoint("TOPLEFT", BrokerGarbage.listButtons[index-numCols], "BOTTOMLEFT", 0, -6)
+				else					-- new button next to the old one
+					button:SetPoint("LEFT", BrokerGarbage.listButtons[index-1], "RIGHT", 4, 0)
+				end
+
+				BrokerGarbage.listButtons[index] = button
+				BrokerGarbage:ListOptionsUpdate(listName)	-- update, so we get item data & texture
+			end
+		end
+		-- hide unnessessary buttons
+		local index = #data + 1
+		while BrokerGarbage.listButtons[index] do
+			BrokerGarbage.listButtons[index]:Hide()
+			index = index + 1
+		end
+	end
+
+	-- shows some help strings for setting up the lists
+	function BrokerGarbage:ShowHelp()
+		for i, button in ipairs(BrokerGarbage.listButtons) do
+			button:Hide()
+		end
+		if not _G["BrokerGarbageHelpFrame"] then
+			local helpFrame = CreateFrame("Frame", "BrokerGarbageHelpFrame", scrollContent)
+			helpFrame:SetAllPoints()
+
+			local bestUse = helpFrame:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+			bestUse:SetHeight(190)
+			bestUse:SetPoint("TOPLEFT", helpFrame, "TOPLEFT", 8, -4)
+			bestUse:SetPoint("RIGHT", helpFrame, -4, 0)
+			bestUse:SetNonSpaceWrap(true)
+			bestUse:SetJustifyH("LEFT"); bestUse:SetJustifyV("TOP")
+			bestUse:SetText(BrokerGarbage.locale.listsBestUse)
+
+			local iconButtons = helpFrame:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+			iconButtons:SetHeight(124)
+			iconButtons:SetPoint("TOPLEFT", bestUse, "BOTTOMLEFT", 0, -10)
+			iconButtons:SetPoint("RIGHT", helpFrame, -4, 0)
+			iconButtons:SetNonSpaceWrap(true)
+			iconButtons:SetJustifyH("LEFT"); iconButtons:SetJustifyV("TOP")
+			iconButtons:SetText(BrokerGarbage.locale.iconButtonsUse)
+
+			local actionButtons = helpFrame:CreateFontString(nil, "ARTWORK", "GameFontHighlightSmall")
+			actionButtons:SetHeight(180)
+			actionButtons:SetPoint("TOPLEFT", iconButtons, "BOTTOMLEFT", 0, -10)
+			actionButtons:SetPoint("RIGHT", helpFrame, -4, 0)
+			actionButtons:SetNonSpaceWrap(true)
+			actionButtons:SetJustifyH("LEFT"); actionButtons:SetJustifyV("TOP")
+			actionButtons:SetText(BrokerGarbage.locale.actionButtonsUse)
+		else
+			_G["BrokerGarbageHelpFrame"]:Show()
+		end
+	end
+
+	-- when a search string is passed, suitable items will be shown while the rest is grayed out
+	function BrokerGarbage:UpdateSearch(searchString)
+		for i, button in ipairs(BrokerGarbage.listButtons) do
+			if button:IsVisible() then
+				local itemName = button.itemID and GetItemInfo(button.itemID) or button.tiptext
+				local name = (button.itemID or "") .. " " .. (itemName or "")
+				name = name:lower()
+
+				if not searchString or string.match(name, searchString) then
+					button:SetAlpha(1)
+				else
+					button:SetAlpha(0.3)
+				end
+			end
+		end
+	end
+
+	local function AddItem(item)
+		BrokerGarbage:Debug("Add Item", item)
+		local cursorType, itemID, link = GetCursorInfo()
+		if not item and not (cursorType and itemID and link) then
+			return
+		end
+
+		-- find the item we want to add
+		if itemID then	-- real items
+			itemID = itemID
+			BrokerGarbage.itemsCache[itemID] = nil
+		else			-- category strings
+			itemID = item
+			BrokerGarbage.itemsCache = {}
+		end
+
+		-- create "link" for output
+		if type(itemID) == "number" then
+			link = select(2, GetItemInfo(itemID))
+		else
+			link = itemID
+		end
+
+		if BG_LocalDB[frame.current] and BG_LocalDB[frame.current][itemID] == nil then
+			BG_LocalDB[frame.current][itemID] = true
+			BrokerGarbage:Print(format(BrokerGarbage.locale["addedTo_" .. frame.current], link))
+			BrokerGarbage:ListOptionsUpdate()
+			ClearCursor()
+		elseif BG_LocalDB[frame.current] == nil and
+			BG_GlobalDB[frame.current] and BG_GlobalDB[frame.current][itemID] == nil then
+			BG_GlobalDB[frame.current][itemID] = true
+			BrokerGarbage:Print(format(BrokerGarbage.locale["addedTo_" .. frame.current], link))
+			BrokerGarbage:ListOptionsUpdate()
+			ClearCursor()
+		else
+			BrokerGarbage:Print(string.format(BrokerGarbage.locale.itemAlreadyOnList, link))
+		end
+
+		BrokerGarbage:ScanInventory()
+		BrokerGarbage:UpdateRepairButton()
+	end
+
+	if not _G["BrokerGarbagePTMenuFrame"] then
+		--initialize dropdown menu for adding setstrings
+		BrokerGarbage.menuFrame = CreateFrame("Frame", "BrokerGarbagePTMenuFrame", UIParent, "UIDropDownMenuTemplate")
+
+		-- menu create function
+		function DropDown_Initialize(self,level)
+			level = level or 1
+			if (level == 1) then
+				local info = UIDropDownMenu_CreateInfo()
+				info.hasArrow = false -- no submenu
+				info.notCheckable = true
+				info.text = BrokerGarbage.locale.categoriesHeading
+				info.isTitle = true
+				UIDropDownMenu_AddButton(info, level)
+
+				if not BrokerGarbage.PT then
+					local info = UIDropDownMenu_CreateInfo()
+					info.hasArrow = false
+					info.notCheckable = true
+					info.text = BrokerGarbage.locale.LPTNotLoaded
+					info.isTitle = true
+					UIDropDownMenu_AddButton(info, level)
+				end
+				for key, subarray in pairs(BrokerGarbage.PTSets) do
+					-- submenus
+					local info = UIDropDownMenu_CreateInfo()
+					info.hasArrow = true
+					info.notCheckable = true
+					info.text = key
+					info.value = {
+						[1] = key
+					}
+					info.func = function(...)
+						AddItem(BrokerGarbage.menuFrame.clickTarget, key)
+						BrokerGarbage:ListOptionsUpdate()
+					end
+					UIDropDownMenu_AddButton(info, level)
+				end
+			end
+
+			if (level > 1) then
+				-- getting values of first menu
+				local parentValue = UIDROPDOWNMENU_MENU_VALUE
+				local PTSets = BrokerGarbage.PTSets
+				for i = 1, level - 1 do
+					PTSets = PTSets[ parentValue[i] ]
+				end
+
+				for key, value in pairs(PTSets) do
+					local newValue = {}
+					for i = 1, level - 1 do
+						newValue[i] = parentValue[i]
+					end
+					newValue[level] = key
+
+					local info = UIDropDownMenu_CreateInfo();
+					if type(value) == "table" then
+						-- submenu
+						local valueString = newValue[1]
+						for i = 2, level do
+							valueString = valueString.."."..newValue[i]
+						end
+
+						info.hasArrow = true;
+						info.notCheckable = true;
+						info.text = key
+						info.value = newValue
+						info.func = function(...)
+							AddItem(valueString)
+							BrokerGarbage:ListOptionsUpdate()
+						end
+					else
+						-- end node
+						info.hasArrow = false; -- no submenues this time
+						info.notCheckable = true;
+						info.text = key
+						info.func = function(...)
+							AddItem(value)
+							BrokerGarbage:ListOptionsUpdate()
+						end
+					end
+					UIDropDownMenu_AddButton(info, level);
+				end
+			end
+		end
+		UIDropDownMenu_Initialize(BrokerGarbage.menuFrame, DropDown_Initialize, "MENU")
+	end
+
+	local function OnClick(self, button)
+		if frame.current == nil then return end
+		if button == "RightButton" then
+			-- toggle LibPeriodicTable menu
+			BrokerGarbage.menuFrame.clickTarget = self
+			ToggleDropDownMenu(1, nil, BrokerGarbage.menuFrame, self, -20, 0)
+			BrokerGarbage:Debug("LPT menu opened", self, button)
+			return
+		end
+
+		-- add action
+		if self == plus then
+			AddItem(self)
+		-- remove action
+		elseif self == minus then
+			for i, button in ipairs(BrokerGarbage.listButtons) do
+				if button:IsVisible() and button:GetChecked() then
+					if type(button.itemID) == "number" then
+						BrokerGarbage.itemsCache[button.itemID] = nil
+					else
+						BrokerGarbage.itemsCache = {}
+					end
+					if BG_LocalDB[frame.current] then
+						BG_LocalDB[frame.current][button.itemID] = nil
+					end
+					if BG_GlobalDB[frame.current] then
+						BG_GlobalDB[frame.current][button.itemID] = nil
+					end
+				end
+			end
+		-- demote action
+		elseif self == demote then
+			for i, button in ipairs(BrokerGarbage.listButtons) do
+				if button:IsVisible() and button:GetChecked() then
+					if BG_GlobalDB[frame.current][button.itemID] and BG_LocalDB[frame.current] then
+						BG_LocalDB[frame.current][button.itemID] = BG_GlobalDB[frame.current][button.itemID]
+						BG_GlobalDB[frame.current][button.itemID] = nil
+					end
+				end
+			end
+		-- promote action
+		elseif self == promote then
+			for i, button in ipairs(BrokerGarbage.listButtons) do
+				if button:IsVisible() and button:GetChecked() then
+					if not BG_GlobalDB[frame.current][button.itemID] then
+						BG_GlobalDB[frame.current][button.itemID] = BG_LocalDB[frame.current][button.itemID]
+						BG_LocalDB[frame.current][button.itemID] = nil
+					end
+				end
+			end
+		-- empty action
+		elseif self == emptyList then
+			BrokerGarbage.itemsCache = {}
+			if IsShiftKeyDown() then
+				BG_GlobalDB[frame.current] = {}
+			elseif BG_LocalDB[frame.current] then
+				BG_LocalDB[frame.current] = {}
+			end
+		end
+
+		BrokerGarbage:ScanInventory()
+		BrokerGarbage:ListOptionsUpdate()
+		BrokerGarbage:UpdateRepairButton()
+	end
+
+	plus:SetScript("OnClick", OnClick)
+	plus:SetScript("OnEnter", ShowTooltip)
+	plus:SetScript("OnLeave", HideTooltip)
+	minus:SetScript("OnClick", OnClick)
+	minus:SetScript("OnEnter", ShowTooltip)
+	minus:SetScript("OnLeave", HideTooltip)
+	demote:SetScript("OnClick", OnClick)
+	demote:SetScript("OnEnter", ShowTooltip)
+	demote:SetScript("OnLeave", HideTooltip)
+	promote:SetScript("OnClick", OnClick)
+	promote:SetScript("OnEnter", ShowTooltip)
+	promote:SetScript("OnLeave", HideTooltip)
+	emptyList:SetScript("OnClick", OnClick)
+	emptyList:SetScript("OnEnter", ShowTooltip)
+	emptyList:SetScript("OnLeave", HideTooltip)
+
+	-- support for add-mechanism
+	plus:RegisterForDrag("LeftButton")
+	plus:SetScript("OnReceiveDrag", ItemDrop)
+	plus:SetScript("OnMouseDown", ItemDrop)
+
+	BrokerGarbage:ListOptionsUpdate()
+	BrokerGarbage.listOptions:SetScript("OnShow", BrokerGarbage.ListOptionsUpdate)
+end
+
+local index = #BrokerGarbage.optionsModules
+table.insert(BrokerGarbage.optionsModules, BrokerGarbage.options)
+BrokerGarbage.optionsModules[index+1].OnShow = ShowOptions
+table.insert(BrokerGarbage.optionsModules, BrokerGarbage.basicOptions)
+BrokerGarbage.optionsModules[index+2].OnShow = ShowBasicOptions
+table.insert(BrokerGarbage.optionsModules, BrokerGarbage.listOptions)
+BrokerGarbage.optionsModules[index+3].OnShow = ShowListOptions
+
+local firstLoad = true
+function BrokerGarbage:OptionsFirstLoad()
+	if not firstLoad then return end
+
+	for i, options in ipairs(BrokerGarbage.optionsModules) do
+		BrokerGarbage:Debug("Loading options: ", options.name)
+		InterfaceOptions_AddCategory(options)
+		options:SetScript("OnShow", options.OnShow)
+	end
+	LibStub("tekKonfig-AboutPanel").new("Broker_Garbage", "Broker_Garbage")
+
+	collectgarbage()
+	firstLoad = false
+end
+
+-- show me!
+InterfaceOptionsFrame:HookScript("OnShow", BrokerGarbage.OptionsFirstLoad)
+
+-- register slash commands
+SLASH_BROKERGARBAGE1 = "/garbage"
+SLASH_BROKERGARBAGE2 = "/garb"
+function SlashCmdList.BROKERGARBAGE(msg, editbox)
+	local command, rest = msg:match("^(%S*)%s*(.-)$")
+	local command = strlower(command)
+	local LootManager = IsAddOnLoaded("Broker_Garbage-LootManager")
+
+	if command == "format" then
+		if strlower(rest) ~= "reset" then
+			BG_GlobalDB.LDBformat = rest
+		else
+			BG_GlobalDB.LDBformat = BrokerGarbage.defaultGlobalSettings.LDBformat
+		end
+		BrokerGarbage:ScanInventory()
+
+	elseif command == "options" or command == "config" or command == "option" or command == "menu" then
+		BrokerGarbage:OptionsFirstLoad()
+		InterfaceOptionsFrame_OpenToCategory(BrokerGarbage.options)
+
+	elseif command == "limit" or command == "glimit" or command == "globallimit" then
+		local itemID, count = rest:match("^[^0-9]-([0-9]+).-([0-9]+)$")
+		itemID = tonumber(itemID)
+		count = tonumber(count)
+
+		BrokerGarbage.itemsCache[itemID] = nil
+
+		if string.find(command, "g") then
+			BG_GlobalDB.include[itemID] = count
+		else
+			BG_LocalDB.include[itemID] = count
+		end
+		local itemLink = select(2,GetItemInfo(itemID))
+		BrokerGarbage:Print(format(BrokerGarbage.locale.limitSet, itemLink, count))
+		BrokerGarbage:ListOptionsUpdate("include")
+
+	elseif command == "value" or command == "minvalue" and LootManager then
+		rest = tonumber(rest)
+		if not rest then return end
+
+		BrokerGarbage_LootManager:SetMinValue(rest)
+		BrokerGarbage:Print(format(BrokerGarbage.locale.minValueSet, BrokerGarbage:FormatMoney(BG_LocalDB.itemMinValue)))
+
+	else
+		BrokerGarbage:Print(BrokerGarbage.locale.slashCommandHelp)
+	end
+end
\ No newline at end of file
diff --git a/readme.txt b/readme.txt
new file mode 100644
index 0000000..c32f99c
--- /dev/null
+++ b/readme.txt
@@ -0,0 +1,139 @@
+Broker_Garbage
+==============
+Author: ckaotik
+Version: 3.3v29
+WoW Version: 3.3.5 (TOC 30300)
+
+WoWInterface: http://www.wowinterface.com/downloads/info15531-Broker_Garbage.html
+Curse:        http://wow.curse.com/downloads/wow-addons/details/broker_garbage.aspx
+
+
+1. What it does
+-----------------
+Broker_Garbage is a LDB plugin that will show your least valuable items, their value and their amount in a tooltip. Then it enables you to drop them with just one click, making life for those tight-bagged people among us easier.
+As you probably don't want to drop everything just by it's vendor price, Broker_Garbage takes into account auction prices (you would need to have an auction price addon active) and different lists for managing exclusions and other "special" behaviour.
+
+2. First Start
+-----------------
+Depending on your LDB display addon you may or may not already see the Broker_Garbage plugin on it. If you don't, please check if you need to enable it in oder to be displayed (e.g. for DockingStation). It will be listed as either "Garbage" or "Broker_Garbage".
+If you still can't find it, have a look at your options panel (ESC - Interface - AddOns tab - look for Broker_Garbage). Should you not find it there it might be because it caused an error (you can turn on Lua error messages in the Interface menu) or it's not activated in the Login screen.
+
+If you get past that point (and really, you should) it's about time to set up your lists. For more information on lists, have at look at 5. List Management.
+1) Set up items you never want to delete, on any character, in your Keep List. Then, select them and push "Promote" to put them on your global Keep List.
+2) Now, go ahead and add character specific items to your Keep List (same as above, just no "Promote")
+3) With that taken care of you might want to think of items that always fill your inventory even though you don't need them or they can be easily gotten back. These items belong on your Junk List. Examples for this list are Argentum Lance, Light Feather (if you have a Mage/Priest that needs them, by default they will be put on their (local) Keep List) and the likes.
+
+
+3. I got an error!!!11!1!
+-----------------
+Well, that's not good, but it's good ;) If you report an error I can have a look to fix it. Of course, there shouldn't be any errors in the first place but you know ... I'm only human, too.
+To report a bug just log on to WoWInterface.com or curse.com and leave me a message or a comment (the full links can be found at the top of this file) giving as much information as you can. On curse it even offers a bug tracker and I wouldn't mind you using it. Some info you should always include:
+
+* When did it happen? (on login, on /reload, when selling, ...)
+* What happened? ("The tooltip went blank.", "The tooltip sticks to the cursor.", ...)
+* Comment ("Could be because addon XY does weird things.", "Didn't happen on my pally char".)
+
+
+4. Feature Suggestions
+-----------------
+Got a feature idea? Then tell me! Send me a message on curse/wowinterface or comment my addon on any of those sites. I'll make sure to read it!
+
+Still, do not feel bad if it doesn't make it into the addon. In that case I will most likely try to get you an individual solution - or include it at a later time.
+
+
+5. List Management
+-----------------
+There are several lists for you to use. Please be aware that itemIDs are prioritized above LibPeriodicTable (LPT) category strings, so if for example you had "Misc.Reagent.Class.Priest" on your Keep List but 17056 (Light Feather) on your Junk List, the feathers would be considered as junk items.
+
+* Whitelist: Keep List
+Items on here will be "saved" from any actions - they will not be sold, dropped or anything else.
+
+* Blacklist: Junk List
+Items on this list will be always be shown in the drop Tooltip, no matter what Quality Treshold you might have set. If you have too many, you won't see any other items in the tooltip. Caution!
+
+Junk List items can have a set limit. Use this if for example you only want to keep 5 Soulshards. Excess items will be listed in the Tooltip!
+
+* Vendor Price List
+Items on this list will never have their auction value used. This is useful for food, drinks and other things people tend to put on the AH at unbelievable prices.
+
+* Sell List
+Items on this list will be sold whenever you talk to a vendor. Items of higher quality than your Quality Treshold WILL be sold, just keep that in mind.
+
+Each of these lists except for 'Vendor Price' have a global (affects all your characters) and local (only affects the current character) component. You can promote/demote items between the two by selecting them and then clicking on the Promote/Demote icon below the list.
+Global items will have a "G" shown in their top left corner.
+
+6. 'Source' information on the tooltip
+-----------------
+If you check 'Show Source' in the options panel, the tooltip will display an additional column with color coded letters. These are to show you which item price Broker_Garbage decided on using. Possible codes are:
+	orange V		This item has its vendor price set as the highest value.
+	dark orange V 	This item is on your Sell List or Vendor Price List. It uses the item's vendor price
+	green A			This item has its auction value used
+	blue G			You have 'Sell Gear' checked and this item will be sold when at a merchant. It uses the vendor price.
+	white I			This item is on your Junk List and therefore is displayed first.
+
+7. Periodic Table -or- How to put entire categories onto those stupid lists
+-----------------
+Starting in version 3.3v11 you can add category strings to make your life easier. To do so, go to your settings panel for the list you wish to add it to and right-click on the 'plus' icon. You will see a list of all categories LibPeriodicTable has to offer (or at least the parts of it that I chose to include).
+Navigate your way through the menu and add any category you like simply by clicking on it.
+To remove a category simply do as you would with any other item on your list: Select it and then hit the 'Minus' icon.
+If you want to test which items are on what lists, just use the 'Category Test' panel in the options.
+
+Why are these categories only in English? There's a simple answer to that: Because that's what LPT does and I do not want to localize the complete LPT. Sorry for that, but it's kind of not my job to do that ;)
+
+8. How to adjust the LDB display text
+-----------------
+In 3.3v15 I added the possibility to adjust the LDB display text to your liking. To do so, simply change the text on the General Options panel or type "/garbage format 'formatstring'" (without any quotation marks) where formatstring is your desired output format. The LDB display format supports several parameters:
+
+	[itemname]		item name/link
+	[itemcount]		item count
+	[itemvalue]		item value
+
+	[freeslots]		number of free slots
+	[totalslots]	number of maximum bag capacity
+
+	[bagspacecolor]	colors the following text corresponding to your bag situation
+	[endcolor]		resets the coloring
+
+	[junkvalue]		the amount a vendor would give you for your junk/auto sell items
+
+Some examples:
+
+[Hearthstone]x1 (0c) - 8/32					can be achieved with
+	[itemname]x[itemcount] ([itemvalue]) - [bagspacecolor][freeslots]/[totalslots][endcolor]
+
+[Hearthstone] - (18/48) - 0c				can be achieved with
+	[itemname] - ([freeslots]/[totalslots]) - [itemvalue]
+
+18 / 3g14s8c - [Hearthstone]						can be achieved with
+	[freeslots] / [junkvalue] - [itemname]
+
+9. The Loot Manager
+-----------------
+The Loot Manager has several settings for you to play around with. It is a seperate addon that can be (de)activated in the addons panel and ingame in the options panel.
+For more information on the Loot Manager, see its own readme.txt .
+
+Items on your Junk List will never be looted, while the Loot Manager will always try its best to loot those items that are on your Keep List.
+
+10. Slash Commands
+-----------------
+Broker_Garbage supports a hand full of slash commands. These are /garbage or short, /garb. Parameters supported:
+
+	/garb format <formatstring>
+See information on this one above, in part 7.
+
+	/garb option -or- /garb options -or- /garb menu -or- /garb config
+All of these just open up the config window ;)
+
+	/garb limit <itemLink or itemID> <amount>
+This will add the corresponding item to the character's include list and add a limit to it.
+
+	/garb glimit -or- /garb globallimit
+Same as the above, just adds the item to the global include list.
+
+	/garb value <value in copper> -or- /garb minvalue <value in copper>
+Sets the minimum item value in order for the item to be looted. '0' means every item may be looted. This only works if the Loot Manager is active.
+
+10. How you can help
+-----------------
+I still need a few translations to get done. If you would like to help me with that, please do so on http://wow.curseforge.com/addons/broker_garbage/localization/  .
+Likewise, I need people to test the addon with different auction addons. If you have one that isn't yet supported, make a Feature Suggestion (see 4.).