Quantcast

Reorg some of the code in the miner to make it a bit easier, and update my sort function using the Spaceship! sort stuffz. Word.

ackis [12-16-08 - 17:10]
Reorg some of the code in the miner to make it a bit easier, and update my sort function using the Spaceship! sort stuffz.  Word.
Filename
ARLDataminer.rb
RecipeStats.txt
diff --git a/ARLDataminer.rb b/ARLDataminer.rb
index 51ed0dc..469908f 100644
--- a/ARLDataminer.rb
+++ b/ARLDataminer.rb
@@ -1855,7 +1855,7 @@ def create_stats_list()
 	stats_lua.puts("\n\nNo acquire information:")

 	# Sort the output
-	sorted_keys = $missingdataacquire.keys.sort_by do |k| k end
+	sorted_keys = $missingdataacquire.sort { |a,b| a[:sprof] <=> b[:sprof] || a[:id] <=> b[:id] }

 	sorted_keys.each do |k|
 		v = $missingdataacquire[k]
@@ -2490,359 +2490,47 @@ $bosslist = [

 # Manual mapping of mobs to their zones
 $bosszonemap = {
-	"Amal'thazad" => "Eastern Plaguelands",
-	"Crystalline Keeper" => "The Nexus",
-	"Durnholde Sentry" => "Old Hillsbrad Foothills",
-	"Enslaved Proto-Drake" => "Utgarde Keep",
-	"Krystallus" => "Halls of Stone",
-	"Lady Alistra" => "Eastern Plaguelands",
-	"Lord Thorval" => "Eastern Plaguelands",
-	"Mage Slayer" => "The Nexus",
-	"Nightmare Scalebane" => "Sunken Temple",
-	"Overlord Wyrmthalak" => "Blackrock Spire",
-	"Portal Guardian" => "The Violet Hold",
-	"Portal Keeper" => "The Violet Hold",
-	"Primordial Behemoth" => "Maraudon",
-	"Risen Drakkari Death Knight" => "Drak'Tharon Keep",
-	"Scarlet Myrmidon" => "Scarlet Monastery",
-	"Shattered Hand Champion" => "The Shattered Halls",
-	"Stormforged Giant" => "Halls of Lightning",
-	"Subterranean Diemetradon" => "Maraudon",
-	"Anub'ar Guardian" => "Azjol-Nerub",
-	"Anub'ar Prime Guard" => "Azjol-Nerub",
-	"Anub'ar Venomancer" => "Azjol-Nerub",
-	"Azure Magus" => "The Nexus",
-	"Azure Raider" => "The Nexus",
-	"Azure Sorceror" => "The Nexus",
-	"Azure Stalker" => "The Nexus",
-	"Azure Warder" => "The Nexus",
-	"Crystalline Protector" => "The Nexus",
-	"Ormorok the Tree-Shaper" => "The Nexus",
-	"Savage Worg" => "Utgarde Keep",
-	"Sjonnir The Ironshaper" => "Halls of Stone",
-	"40 Tickets - Schematic: Steam Tonk Controller" => "Darkmoon Faire",
-	"Master Craftsman Omarion" => "Naxxramas",
-	"Azure Ley-Whelp" => "The Oculus",
-	"Bloodaxe Raider" => "Blackrock Spire",
-	"Forgotten One" => "Ahn'kahet: The Old Kingdom",
-	"Gorgolon the All-seeing" => "",
-	"Great-father Winter" => "Orgrimmar",
-	"Illidari Defiler" => "Black Temple",
-	"Lightning Construct" => "Halls of Stone",
-	"Ravaged Cadaver" => "Stratholme",
-	"Sjonnir the Ironshaper" => "Halls of Stone",
-	"Skeletal Fiend (Enraged Form)" => "Duskwood",
-	"Storm Fury" => "Black Temple",
-	"Gorgolon the All-seeing" => "Blade's Edge Mountains",
-	"A Binding Contract" => "Blackrock Depths",
-	"Aged Dalaran Wizard" => "Old Hillsbrad Foothills",
-	"Amani'shi Flame Caster" => "Zul'Aman",
-	"Annora" => "Uldaman",
-	"Anub'arak" => "Azjol-Nerub",
-	"Cluster Launcher" => "Moonglade",
-	"Cyanigosa" => "The Violet Hold",
-	"Drakkari Bat" => "Drak'Tharon Keep",
-	"Drakkari Earthshaker" => "Gundrak",
-	"Enchanted Thorium Platemail: Volume I" => "Dire Maul",
-	"Enchanted Thorium Platemail: Volume II" => "Dire Maul",
-	"Enchanted Thorium Platemail: Volume III" => "Dire Maul",
-	"Festive Recipes" => "Moonglade",
-	"Firework Launcher" => "Moonglade",
-	"Flash Bomb Recipe" => "Badlands",
-	"Flesheating Ghoul" => "Drak'Tharon Keep",
-	"Gyth" => "Blackrock Spire",
-	"Herald Volazj" => "Ahn'kahet: The Old Kingdom",
-	"Imperial Plate Belt" => "Tanaris",
-	"Imperial Plate Boots" => "Tanaris",
-	"Imperial Plate Bracer" => "Tanaris",
-	"Imperial Plate Chest" => "Tanaris",
-	"Imperial Plate Helm" => "Tanaris",
-	"Imperial Plate Leggings" => "Tanaris",
-	"Imperial Plate Shoulders" => "Tanaris",
-	"Indormi" => "Hyjal Summit",
-	"Ingvar the Plunderer" => "Howling Fjord",
-	"Keristrasza" => "Borean Tundra",
-	"King Ymiron" => "Howling Fjord",
-	"Koren" => "Karazhan",
-	"Lieutenant General Andorov" => "Ruins of Ahn'Qiraj",
-	"Loken" => "The Storm Peaks",
-	"Lokhtos Darkbargainer" => "Blackrock Depths",
-	"Okuno" => "Black Temple",
-	"Ras Frostwhisper" => "Scholomance",
-	"Risen Drakkari Soulmage" => "Drak'Tharon Keep",
-	"Risen Drakkari Warrior" => "Drak'Tharon Keep",
-	"Shen'dralar Provisioner" => "Dire Maul",
-	"Sister of Torment" => "Magisters' Terrace",
-	"The Prophet Tharon'ja" => "Grizzly Hills",
-	"Thomas Yance" => "Old Hillsbrad Foothills",
-	"Twilight Worshipper" => "Ahn'kahet: The Old Kingdom",
-	"Ythyar" => "Karazhan",
-	"Abomination" => "Hyjal Summit",
-	"Akil'zon" => "Zul'Aman",
-	"Amani Dragonhawk" => "Zul'Aman",
-	"Amani Elder Lynx" => "Zul'Aman",
-	"Amani'shi Axe Thrower" => "Zul'Aman",
-	"Amani'shi Beast Tamer" => "Zul'Aman",
-	"Amani'shi Guardian" => "Zul'Aman",
-	"Amani'shi Handler" => "Zul'Aman",
-	"Amani'shi Scout" => "Zul'Aman",
-	"Amani'shi Tribesman" => "Zul'Aman",
-	"Amani'shi Warbringer" => "Zul'Aman",
-	"Amani'shi Wind Walker" => "Zul'Aman",
-	"Anetheron" => "Hyjal Summit",
-	"Anguished Dead" => "Scarlet Monastery",
-	"Anvilrage Captain" => "Blackrock Depths",
-	"Anvilrage Marshal" => "Blackrock Depths",
-	"Anvilrage Overseer" => "Blackrock Depths",
-	"Anvilrage Soldier" => "Blackrock Depths",
+	"Amani'shi Protector" => "Zul'Aman",
 	"Apocalypse Guard" => "Sunwell Plateau",
-	"Arcane Anomaly" => "Karazhan",
-	"Arcane Protector" => "Karazhan",
-	"Arcatraz Sentinel" => "The Arcatraz",
-	"Archimonde" => "Hyjal Summit",
-	"Atal'ai Deathwalker" => "Sunken Temple",
-	"Atal'ai Warrior" => "Sunken Temple",
-	"Atal'ai Witch Doctor" => "Sunken Temple",
-	"Attumen the Huntsman" => "Karazhan",
-	"Auchenai Monk" => "Auchenai Crypts",
 	"Ayamiss the Hunter" => "Ruins of Ahn'Qiraj",
-	"Azgalor" => "Hyjal Summit",
-	"Bannok Grimaxe" => "Blackrock Spire",
-	"Banshee" => "Hyjal Summit",
-	"Baron Geddon" => "Molten Core",
-	"Battleguard Sartura" => "Temple of Ahn'Qiraj",
-	"Blackhand Elite" => "Blackrock Spire",
-	"Blackheart the Inciter" => "Shadow Labyrinth",
-	"Bleeding Hollow Darkcaster" => "Hellfire Ramparts",
-	"Bloodhound" => "Blackrock Depths",
-	"Bloodwarder Legionnaire" => "The Eye",
-	"Bloodwarder Vindicator" => "The Eye",
-	"Bog Giant" => "The Underbog",
-	"Bonechewer Destroyer" => "Hellfire Ramparts",
-	"Burrowing Thundersnout" => "Blackrock Depths",
 	"Buru the Gorger" => "Ruins of Ahn'Qiraj",
-	"Cabal Acolyte" => "Shadow Labyrinth",
-	"Cabal Cultist" => "Shadow Labyrinth",
-	"Cabal Fanatic" => "Shadow Labyrinth",
-	"Cabal Spellbinder" => "Shadow Labyrinth",
 	"Cannon Master Willey" => "Stratholme",
-	"Captain Skarloc" => "Old Hillsbrad Foothills",
 	"Cataclysm Hound" => "Sunwell Plateau",
-	"Chrono Lord Deja" => "The Black Morass",
-	"Cobalt Serpent" => "Sethekk Halls",
-	"Coilfang Champion" => "The Slave Pens",
-	"Coilfang Hate-Screamer" => "Serpentshrine Cavern",
-	"Coilfang Myrmidon" => "The Steamvault",
-	"Coilfang Oracle" => "The Steamvault",
-	"Coilfang Serpentguard" => "Serpentshrine Cavern",
-	"Coilfang Shatterer" => "Serpentshrine Cavern",
-	"Coilfang Siren" => "The Steamvault",
-	"Coilfang Sorceress" => "The Steamvault",
-	"Coilfang Technician" => "The Slave Pens",
-	"Coilfang Warrior" => "The Steamvault",
-	"Coilskar Sea-Caller" => "Black Temple",
-	"Commander Sarannis" => "The Botanica",
 	"Crimson Inquisitor" => "Stratholme",
 	"Crimson Sorcerer" => "Stratholme",
-	"Crypt Fiend" => "Hyjal Summit",
-	"Crystalcore Mechanic" => "The Eye",
-	"Dalliah the Doomsayer" => "The Arcatraz",
-	"Dark Screecher" => "Blackrock Depths",
-	"Darkmaster Gandling" => "Scholomance",
-	"Darkwater Crocolisk" => "Tanaris",
-	"Darkweaver Syth" => "Sethekk Halls",
-	"Deep Stinger" => "Blackrock Depths",
-	"Defias Pirate" => "The Deadmines",
-	"Defias Squallshaper" => "The Deadmines",
-	"Don Carlos" => "Old Hillsbrad Foothills",
 	"Doomfire Destroyer" => "Sunwell Plateau",
-	"Doomforge Craftsman" => "Blackrock Depths",
-	"Doomforge Dragoon" => "Blackrock Depths",
-	"Dragonmaw Wind Reaver" => "Black Temple",
-	"Durnholde Lookout" => "Old Hillsbrad Foothills",
-	"Durnholde Rifleman" => "Old Hillsbrad Foothills",
-	"Durnholde Tracking Hound" => "Old Hillsbrad Foothills",
-	"Emperor Vek'lor" => "Temple of Ahn'Qiraj",
-	"Emperor Vek'nilash" => "Temple of Ahn'Qiraj",
-	"Epoch Hunter" => "Old Hillsbrad Foothills",
-	"Eredar Deathbringer" => "The Arcatraz",
-	"Ethereal Priest" => "Mana-Tombs",
-	"Ethereal Scavenger" => "Mana-Tombs",
-	"Ethereal Spellbinder" => "Mana-Tombs",
-	"Ethereal Thief" => "Karazhan",
-	"Ethereum Smuggler" => "Magisters' Terrace",
-	"Exarch Maladaar" => "Auchenai Crypts",
-	"Fankriss the Unyielding" => "Temple of Ahn'Qiraj",
-	"Fel Orc Convert" => "The Shattered Halls",
 	"Fel Rager" => "Blade's Edge Mountains",
-	"Fel Stalker" => "Hyjal Summit",
-	"Felguard Annihilator" => "The Blood Furnace",
-	"Firebrand Grunt" => "Blackrock Spire",
-	"Firebrand Invoker" => "Blackrock Spire",
-	"Firebrand Legionnaire" => "Blackrock Spire",
-	"Firebrand Pyromancer" => "Blackrock Spire",
-	"Fleshbeast" => "Karazhan",
-	"Frost Wyrm" => "Hyjal Summit",
-	"Gargantuan Abyssal" => "The Arcatraz",
-	"Gargoyle" => "Hyjal Summit",
-	"Garr" => "Molten Core",
-	"Gehennas" => "Molten Core",
-	"General Drakkisath" => "Blackrock Spire",
 	"General Rajaxx" => "Ruins of Ahn'Qiraj",
-	"Ghaz'an" => "The Underbog",
-	"Ghostly Philanthropist" => "Karazhan",
-	"Ghostly Steward" => "Karazhan",
-	"Ghoul" => "Hyjal Summit",
-	"Giant Infernal" => "Hyjal Summit",
-	"Golem Lord Argelmach" => "Blackrock Depths",
-	"Golemagg the Incinerator" => "Molten Core",
-	"Goraluk Anvilcrack" => "Blackrock Spire",
-	"Grand Warlock Nethekurse" => "The Shattered Halls",
-	"Greater Bogstrok" => "The Slave Pens",
-	"Greater Fleshbeast" => "Karazhan",
-	"Grizzle" => "Blackrock Depths",
-	"Gronn-Priest" => "Gruul's Lair",
-	"Halazzi" => "Zul'Aman",
-	"Hammered Patron" => "Blackrock Depths",
-	"Hex Lord Malacrass" => "Zul'Aman",
-	"High Botanist Freywinn" => "The Botanica",
-	"Homunculus" => "Karazhan",
-	"Hydromancer Thespia" => "The Steamvault",
+	"Illidari Heartseeker" => "Black Temple",
 	"Ironbark Protector" => "Dire Maul",
-	"Jan'alai" => "Zul'Aman",
-	"Kaz'rogal" => "Hyjal Summit",
 	"Kurinnaxx" => "Ruins of Ahn'Qiraj",
 	"Lord Kazzak" => "Blasted Lands",
-	"Lord Kri" => "Temple of Ahn'Qiraj",
-	"Lord Roccor" => "Blackrock Depths",
-	"Loro" => "Sunken Temple",
-	"Lucifron" => "Molten Core",
-	"Magical Horror" => "Karazhan",
 	"Magister Kalendris" => "Dire Maul",
-	"Magmadar" => "Molten Core",
 	"Maleki the Pallid" => "Stratholme",
-	"Mana Warp" => "Karazhan",
-	"Mechano-Lord Capacitus" => "The Mechanar",
-	"Mekgineer Steamrigger" => "The Steamvault",
-	"Mekgineer Thermaplugg" => "Gnomeregan",
-	"Mennu the Betrayer" => "The Slave Pens",
-	"Midnight" => "Karazhan",
-	"Mijan" => "Sunken Temple",
 	"Moam" => "Ruins of Ahn'Qiraj",
-	"Moroes" => "Karazhan",
-	"Murk Worm" => "Sunken Temple",
-	"Murmur" => "Shadow Labyrinth",
-	"Nalorakk" => "Zul'Aman",
-	"Nethermancer Sepethrea" => "The Mechanar",
-	"Nethervine Inciter" => "The Botanica",
-	"Nexus Stalker" => "Mana-Tombs",
-	"Nexus-Prince Shaffar" => "Mana-Tombs",
-	"Nightbane" => "Karazhan",
 	"Oblivion Mage" => "Sunwell Plateau",
-	"Onyxia" => "Onyxia's Lair",
 	"Ossirian the Unscarred" => "Ruins of Ahn'Qiraj",
-	"Ouro" => "Temple of Ahn'Qiraj",
 	"Painbringer" => "Sunwell Plateau",
-	"Pathaleon the Calculator" => "The Mechanar",
-	"Phantom Attendant" => "Karazhan",
-	"Phantom Guardsman" => "Karazhan",
-	"Phantom Guest" => "Karazhan",
-	"Phantom Stagehand" => "Karazhan",
-	"Phantom Valet" => "Karazhan",
-	"Phoenix-Hawk" => "The Eye",
-	"Phoenix-Hawk Hatchling" => "The Eye",
-	"Plugger Spazzring" => "Blackrock Depths",
 	"Priestess Delrissa" => "Magisters' Terrace",
 	"Priestess of Torment" => "Sunwell Plateau",
-	"Princess Huhuran" => "Temple of Ahn'Qiraj",
-	"Princess Yauj" => "Temple of Ahn'Qiraj",
 	"Pusillin" => "Dire Maul",
-	"Pyromancer Loregrain" => "Blackrock Depths",
-	"Quartermaster Zigris" => "Blackrock Spire",
-	"Rabid Warhound" => "The Shattered Halls",
-	"Rage Talon Dragon Guard" => "Blackrock Spire",
-	"Rage Winterchill" => "Hyjal Summit",
-	"Raging Skeleton" => "Auchenai Crypts",
-	"Ribbly Screwspigot" => "Blackrock Depths",
-	"Ribbly's Crony" => "Blackrock Depths",
-	"Rift Keeper" => "The Black Morass",
-	"Rift Lord" => "The Black Morass",
-	"Risen Bonewarder" => "Scholomance",
-	"Risen Construct" => "Scholomance",
-	"Sable Jaguar" => "The Black Morass",
-	"Sandfury Blood Drinker" => "Zul'Farrak",
-	"Sandfury Shadowcaster" => "Zul'Farrak",
-	"Scarlet Adept" => "Scarlet Monastery",
-	"Scarlet Centurion" => "Scarlet Monastery",
-	"Scarlet Gallant" => "Scarlet Monastery",
-	"Scarlet Monk" => "Scarlet Monastery",
-	"Scarlet Protector" => "Scarlet Monastery",
-	"Scholomance Adept" => "Scholomance",
-	"Scholomance Necromancer" => "Scholomance",
-	"Serpentshrine Sporebat" => "Serpentshrine Cavern",
-	"Sethekk Initiate" => "Sethekk Halls",
-	"Sethekk Prophet" => "Sethekk Halls",
-	"Sethekk Ravenguard" => "Sethekk Halls",
-	"Shade of Aran" => "Karazhan",
-	"Shadow Pillager" => "Karazhan",
-	"Shadowforge Peasant" => "Blackrock Depths",
-	"Shadowmoon Reaver" => "Black Temple",
 	"Shadowsword Assassin" => "Sunwell Plateau",
 	"Shadowsword Guardian" => "Sunwell Plateau",
 	"Shadowsword Vanquisher" => "Sunwell Plateau",
-	"Shadowy Necromancer" => "Hyjal Summit",
-	"Shattered Hand Centurion" => "The Shattered Halls",
-	"Shattered Hand Reaver" => "The Shattered Halls",
-	"Shazzrah" => "Molten Core",
 	"Shrike Bat" => "Uldaman",
-	"Skeletal Usher" => "Karazhan",
-	"Solakar Flamewreath" => "Blackrock Spire",
-	"Sorcerous Shade" => "Karazhan",
-	"Spawn of Hakkar" => "Sunken Temple",
-	"Spectral Charger" => "Karazhan",
-	"Spectral Performer" => "Karazhan",
-	"Spectral Researcher" => "Scholomance",
-	"Spectral Servant" => "Karazhan",
-	"Spectral Stable Hand" => "Karazhan",
-	"Spectral Stallion" => "Karazhan",
-	"Spell Shade" => "Karazhan",
-	"Spirestone Warlord" => "Blackrock Spire",
+	"Sister of Torment" => "Magisters' Terrace",
 	"Splinterbone Centurion" => "Razorfen Downs",
 	"Stonevault Oracle" => "Uldaman",
 	"Stonevault Pillager" => "Uldaman",
+	"Stormforged Giant" => "Halls of Lightning",
 	"Sunblade Arch Mage" => "Sunwell Plateau",
-	"Sunblade Blood Knight" => "Magisters' Terrace",
 	"Sunblade Cabalist" => "Sunwell Plateau",
 	"Sunblade Dawn Priest" => "Sunwell Plateau",
 	"Sunblade Dusk Priest" => "Sunwell Plateau",
-	"Sunblade Mage Guard" => "Magisters' Terrace",
-	"Sunblade Protector" => "Sunwell Plateau",
 	"Sunblade Slayer" => "Sunwell Plateau",
 	"Sunblade Vindicator" => "Sunwell Plateau",
-	"Sunseeker Astromage" => "The Mechanar",
-	"Sunseeker Botanist" => "The Botanica",
-	"Sunseeker Harvester" => "The Botanica",
-	"Syphoner" => "Karazhan",
-	"Terestian Illhoof" => "Karazhan",
-	"The Crone" => "Karazhan",
-	"The Prophet Skeram" => "Temple of Ahn'Qiraj",
-	"Thorngrin the Tender" => "The Botanica",
+	"The Journey Has Just Begun" => "Onyxia's Lair",
 	"Thuzadin Shadowcaster" => "Stratholme",
-	"Time-Lost Shadowmage" => "Sethekk Halls",
-	"Twilight Darkcaster" => "Ahn'kahet: The Old Kingdom",
-	"Twilight Emissary" => "Blackrock Depths",
-	"Unchained Doombringer" => "The Arcatraz",
-	"Underbat" => "The Underbog",
-	"Unliving Atal'ai" => "Sunken Temple",
-	"Vashj'ir Honor Guard" => "Serpentshrine Cavern",
-	"Vem" => "Temple of Ahn'Qiraj",
-	"Viscidus" => "Temple of Ahn'Qiraj",
-	"Warlord Kalithresh" => "The Steamvault",
-	"Warp Splinter" => "The Botanica",
-	"Weapon Technician" => "Blackrock Depths",
-	"Wrath Hammer Construct" => "Blackrock Depths",
-	"Zul'jin" => "Zul'Aman",
-	"Zulian Tiger" => "Zul'Gurub",
 }

 # Manual mapping of npc/quests to their factions
@@ -3118,231 +2806,201 @@ $globalignore = [

 $debug = false

-if $debug
-
-	create_custom_db()
-	create_faction_db()
-
-	create_stats_list()
-
-	#create_lookup_db("./RecipeDB/ARL-Trainer.lua","Trainer","TrainerDB","InitTrainer",$trainers,maps,[])
-
-	#create_lookup_db("./RecipeDB/ARL-Vendor.lua","Vendor","VendorDB","InitVendor",$vendors,maps,[])
-
-	#create_lookup_db("./RecipeDB/ARL-Mob.lua","Monster","MobDB","InitMob",$monsters,maps,[])
-
-	#create_lookup_db("./RecipeDB/ARL-Quest.lua","Quest","QuestDB","InitQuest",$quests,maps,[])
-
-else
-
-	create_custom_db()
-	create_faction_db()
-
-	alchemy = recipes.get_alchemy_list
-	alchspeciallist = {
-		2329 => {:id => "StartingSkill"},
-		2330 => {:id => "StartingSkill"},
-		2333 => {:id => "StartingSkill"},
-		28580 => {:id => 12, :type => [3]},
-		28581 => {:id => 12, :type => [3]},
-		28582 => {:id => 12, :type => [3]},
-		28583 => {:id => 12, :type => [3]},
-		28584 => {:id => 12, :type => [3]},
-		28585 => {:id => 12, :type => [3]},
-		28586 => {:id => 12, :type => [2]},
-		28587 => {:id => 12, :type => [1]},
-		28588 => {:id => 12, :type => [1]},
-		28589 => {:id => 12, :type => [1]},
-		28590 => {:id => 12, :type => [1]},
-		28591 => {:id => 12, :type => [1]},
-		41458 => {:id => 12, :type => [4]},
-		41500 => {:id => 12, :type => [4]},
-		41501 => {:id => 12, :type => [4]},
-		41502 => {:id => 12, :type => [4]},
-		41503 => {:id => 12, :type => [4]},
-		53771 => {:id => 12, :type => [12]},
-		53773 => {:id => 12, :type => [12]},
-		53774 => {:id => 12, :type => [12]},
-		53775 => {:id => 12, :type => [12]},
-		53776 => {:id => 12, :type => [12]},
-		53777 => {:id => 12, :type => [12]},
-		53779 => {:id => 12, :type => [12]},
-		53780 => {:id => 12, :type => [12]},
-		53781 => {:id => 12, :type => [12]},
-		53782 => {:id => 12, :type => [12]},
-		53783 => {:id => 12, :type => [12]},
-		53784 => {:id => 12, :type => [12]},
-		21923 => {:id => 7, :type => 1},
-		47050 => {:id => "meleedps"},
-		11456 => {:id => "CustomNeutral", :type => 9},
-		24266 => {:id => "Edge of Madness"},
-		45061 => {:id => "MasterAlchTrainer"},
-		53812 => {:id => "GrandMasterAlchTrainer"},
-		53836 => {:id => "GrandMasterAlchTrainer"},
-		53837 => {:id => "GrandMasterAlchTrainer"},
-		53838 => {:id => "GrandMasterAlchTrainer"},
-		53839 => {:id => "GrandMasterAlchTrainer"},
-		53840 => {:id => "GrandMasterAlchTrainer"},
-		53841 => {:id => "GrandMasterAlchTrainer"},
-		53842 => {:id => "GrandMasterAlchTrainer"},
-		53847 => {:id => "GrandMasterAlchTrainer"},
-		53848 => {:id => "GrandMasterAlchTrainer"},
-		53895 => {:id => "GrandMasterAlchTrainer"},
-		53898 => {:id => "GrandMasterAlchTrainer"},
-		53899 => {:id => "GrandMasterAlchTrainer"},
-		53900 => {:id => "GrandMasterAlchTrainer"},
-		53901 => {:id => "GrandMasterAlchTrainer"},
-		53902 => {:id => "GrandMasterAlchTrainer"},
-		53903 => {:id => "GrandMasterAlchTrainer"},
-		53904 => {:id => "GrandMasterAlchTrainer"},
-		53905 => {:id => "GrandMasterAlchTrainer"},
-		54020 => {:id => "GrandMasterAlchTrainer"},
-		54213 => {:id => "GrandMasterAlchTrainer"},
-		54218 => {:id => "GrandMasterAlchTrainer"},
-		54220 => {:id => "GrandMasterAlchTrainer"},
-		54221 => {:id => "GrandMasterAlchTrainer"},
-		54222 => {:id => "GrandMasterAlchTrainer"},
-		56519 => {:id => "GrandMasterAlchTrainer"},
-		57425 => {:id => "GrandMasterAlchTrainer"},
-		57427 => {:id => "GrandMasterAlchTrainer"},
-		58868 => {:id => "GrandMasterAlchTrainer"},
-		58871 => {:id => "GrandMasterAlchTrainer"},
-		60350 => {:id => "GrandMasterAlchTrainer"},
-		60354 => {:id => "GrandMasterAlchTrainer"},
-		60355 => {:id => "GrandMasterAlchTrainer"},
-		60356 => {:id => "GrandMasterAlchTrainer"},
-		60357 => {:id => "GrandMasterAlchTrainer"},
-		60365 => {:id => "GrandMasterAlchTrainer"},
-		60366 => {:id => "GrandMasterAlchTrainer"},
-		60367 => {:id => "GrandMasterAlchTrainer"},
-		60396 => {:id => "GrandMasterAlchTrainer"},
-		60403 => {:id => "GrandMasterAlchTrainer"},
-		60405 => {:id => "GrandMasterAlchTrainer"},
-		60893 => {:id => "GrandMasterAlchTrainer"},
-		11452 => {:id => "Quest", :type => [2203,2501]},
-		}
-	alchmanual=<<EOF
+alchspeciallist = {
+	2329 => {:id => "StartingSkill"},
+	2330 => {:id => "StartingSkill"},
+	2333 => {:id => "StartingSkill"},
+	28580 => {:id => 12, :type => [3]},
+	28581 => {:id => 12, :type => [3]},
+	28582 => {:id => 12, :type => [3]},
+	28583 => {:id => 12, :type => [3]},
+	28584 => {:id => 12, :type => [3]},
+	28585 => {:id => 12, :type => [3]},
+	28586 => {:id => 12, :type => [2]},
+	28587 => {:id => 12, :type => [1]},
+	28588 => {:id => 12, :type => [1]},
+	28589 => {:id => 12, :type => [1]},
+	28590 => {:id => 12, :type => [1]},
+	28591 => {:id => 12, :type => [1]},
+	41458 => {:id => 12, :type => [4]},
+	41500 => {:id => 12, :type => [4]},
+	41501 => {:id => 12, :type => [4]},
+	41502 => {:id => 12, :type => [4]},
+	41503 => {:id => 12, :type => [4]},
+	53771 => {:id => 12, :type => [12]},
+	53773 => {:id => 12, :type => [12]},
+	53774 => {:id => 12, :type => [12]},
+	53775 => {:id => 12, :type => [12]},
+	53776 => {:id => 12, :type => [12]},
+	53777 => {:id => 12, :type => [12]},
+	53779 => {:id => 12, :type => [12]},
+	53780 => {:id => 12, :type => [12]},
+	53781 => {:id => 12, :type => [12]},
+	53782 => {:id => 12, :type => [12]},
+	53783 => {:id => 12, :type => [12]},
+	53784 => {:id => 12, :type => [12]},
+	21923 => {:id => 7, :type => 1},
+	47050 => {:id => "meleedps"},
+	11456 => {:id => "CustomNeutral", :type => 9},
+	24266 => {:id => "Edge of Madness"},
+	45061 => {:id => "MasterAlchTrainer"},
+	53812 => {:id => "GrandMasterAlchTrainer"},
+	53836 => {:id => "GrandMasterAlchTrainer"},
+	53837 => {:id => "GrandMasterAlchTrainer"},
+	53838 => {:id => "GrandMasterAlchTrainer"},
+	53839 => {:id => "GrandMasterAlchTrainer"},
+	53840 => {:id => "GrandMasterAlchTrainer"},
+	53841 => {:id => "GrandMasterAlchTrainer"},
+	53842 => {:id => "GrandMasterAlchTrainer"},
+	53847 => {:id => "GrandMasterAlchTrainer"},
+	53848 => {:id => "GrandMasterAlchTrainer"},
+	53895 => {:id => "GrandMasterAlchTrainer"},
+	53898 => {:id => "GrandMasterAlchTrainer"},
+	53899 => {:id => "GrandMasterAlchTrainer"},
+	53900 => {:id => "GrandMasterAlchTrainer"},
+	53901 => {:id => "GrandMasterAlchTrainer"},
+	53902 => {:id => "GrandMasterAlchTrainer"},
+	53903 => {:id => "GrandMasterAlchTrainer"},
+	53904 => {:id => "GrandMasterAlchTrainer"},
+	53905 => {:id => "GrandMasterAlchTrainer"},
+	54020 => {:id => "GrandMasterAlchTrainer"},
+	54213 => {:id => "GrandMasterAlchTrainer"},
+	54218 => {:id => "GrandMasterAlchTrainer"},
+	54220 => {:id => "GrandMasterAlchTrainer"},
+	54221 => {:id => "GrandMasterAlchTrainer"},
+	54222 => {:id => "GrandMasterAlchTrainer"},
+	56519 => {:id => "GrandMasterAlchTrainer"},
+	57425 => {:id => "GrandMasterAlchTrainer"},
+	57427 => {:id => "GrandMasterAlchTrainer"},
+	58868 => {:id => "GrandMasterAlchTrainer"},
+	58871 => {:id => "GrandMasterAlchTrainer"},
+	60350 => {:id => "GrandMasterAlchTrainer"},
+	60354 => {:id => "GrandMasterAlchTrainer"},
+	60355 => {:id => "GrandMasterAlchTrainer"},
+	60356 => {:id => "GrandMasterAlchTrainer"},
+	60357 => {:id => "GrandMasterAlchTrainer"},
+	60365 => {:id => "GrandMasterAlchTrainer"},
+	60366 => {:id => "GrandMasterAlchTrainer"},
+	60367 => {:id => "GrandMasterAlchTrainer"},
+	60396 => {:id => "GrandMasterAlchTrainer"},
+	60403 => {:id => "GrandMasterAlchTrainer"},
+	60405 => {:id => "GrandMasterAlchTrainer"},
+	60893 => {:id => "GrandMasterAlchTrainer"},
+	11452 => {:id => "Quest", :type => [2203,2501]},
+	}
+alchmanual=<<EOF
 EOF

-	# Add the restoration potion quests
-	$quests[2203] = {:name => "Badlands Reagent Run II"}
-	$quests[2203][:faction] = 2
-	$quests[2501] = {:name => "Badlands Reagent Run II"}
-	$quests[2501][:faction] = 1
-
-	create_profession_db("./RecipeDB/ARL-Alchemy.lua","Alchemy",recipes,maps,"InitAlchemy",alchemy,[2336,6619,11447,17579,22430],alchspeciallist,alchmanual)
-
-	blacksmithing = recipes.get_blacksmithing_list
-	bsspeciallist = {
-		2660 => {:id => "StartingSkill"},
-		2663 => {:id => "StartingSkill"},
-		2671 => {:id => "StartingSkill"},
-		3115 => {:id => "StartingSkill"},
-		21913 => {:id => 7, :type => 1},
-		28242 => {:id => "ADNaxx40E"},
-		28243 => {:id => "ADNaxx40R"},
-		28244 => {:id => "ADNaxx40R"},
-		52567 => {:id => "GrandMasterBSTrainer"},
-		52568 => {:id => "GrandMasterBSTrainer"},
-		52569 => {:id => "GrandMasterBSTrainer"},
-		52570 => {:id => "GrandMasterBSTrainer"},
-		52571 => {:id => "GrandMasterBSTrainer"},
-		52572 => {:id => "GrandMasterBSTrainer"},
-		54550 => {:id => "GrandMasterBSTrainer"},
-		54551 => {:id => "GrandMasterBSTrainer"},
-		54552 => {:id => "GrandMasterBSTrainer"},
-		54553 => {:id => "GrandMasterBSTrainer"},
-		54554 => {:id => "GrandMasterBSTrainer"},
-		54555 => {:id => "GrandMasterBSTrainer"},
-		54556 => {:id => "GrandMasterBSTrainer"},
-		54557 => {:id => "GrandMasterBSTrainer"},
-		54917 => {:id => "GrandMasterBSTrainer"},
-		54918 => {:id => "GrandMasterBSTrainer"},
-		54941 => {:id => "GrandMasterBSTrainer"},
-		54944 => {:id => "GrandMasterBSTrainer"},
-		54945 => {:id => "GrandMasterBSTrainer"},
-		54946 => {:id => "GrandMasterBSTrainer"},
-		54947 => {:id => "GrandMasterBSTrainer"},
-		54948 => {:id => "GrandMasterBSTrainer"},
-		54949 => {:id => "GrandMasterBSTrainer"},
-		55013 => {:id => "GrandMasterBSTrainer"},
-		55014 => {:id => "GrandMasterBSTrainer"},
-		55015 => {:id => "GrandMasterBSTrainer"},
-		55017 => {:id => "GrandMasterBSTrainer"},
-		55055 => {:id => "GrandMasterBSTrainer"},
-		55056 => {:id => "GrandMasterBSTrainer"},
-		55057 => {:id => "GrandMasterBSTrainer"},
-		55058 => {:id => "GrandMasterBSTrainer"},
-		55174 => {:id => "GrandMasterBSTrainer"},
-		55177 => {:id => "GrandMasterBSTrainer"},
-		55179 => {:id => "GrandMasterBSTrainer"},
-		55181 => {:id => "GrandMasterBSTrainer"},
-		55182 => {:id => "GrandMasterBSTrainer"},
-		55183 => {:id => "GrandMasterBSTrainer"},
-		55184 => {:id => "GrandMasterBSTrainer"},
-		55185 => {:id => "GrandMasterBSTrainer"},
-		55186 => {:id => "GrandMasterBSTrainer"},
-		55187 => {:id => "GrandMasterBSTrainer"},
-		55200 => {:id => "GrandMasterBSTrainer"},
-		55201 => {:id => "GrandMasterBSTrainer"},
-		55202 => {:id => "GrandMasterBSTrainer"},
-		55203 => {:id => "GrandMasterBSTrainer"},
-		55204 => {:id => "GrandMasterBSTrainer"},
-		55206 => {:id => "GrandMasterBSTrainer"},
-		55298 => {:id => "GrandMasterBSTrainer"},
-		55300 => {:id => "GrandMasterBSTrainer"},
-		55301 => {:id => "GrandMasterBSTrainer"},
-		55302 => {:id => "GrandMasterBSTrainer"},
-		55303 => {:id => "GrandMasterBSTrainer"},
-		55304 => {:id => "GrandMasterBSTrainer"},
-		55305 => {:id => "GrandMasterBSTrainer"},
-		55306 => {:id => "GrandMasterBSTrainer"},
-		55307 => {:id => "GrandMasterBSTrainer"},
-		55308 => {:id => "GrandMasterBSTrainer"},
-		55309 => {:id => "GrandMasterBSTrainer"},
-		55310 => {:id => "GrandMasterBSTrainer"},
-		55311 => {:id => "GrandMasterBSTrainer"},
-		55312 => {:id => "GrandMasterBSTrainer"},
-		55369 => {:id => "GrandMasterBSTrainer"},
-		55370 => {:id => "GrandMasterBSTrainer"},
-		55371 => {:id => "GrandMasterBSTrainer"},
-		55372 => {:id => "GrandMasterBSTrainer"},
-		55373 => {:id => "GrandMasterBSTrainer"},
-		55374 => {:id => "GrandMasterBSTrainer"},
-		55375 => {:id => "GrandMasterBSTrainer"},
-		55376 => {:id => "GrandMasterBSTrainer"},
-		55377 => {:id => "GrandMasterBSTrainer"},
-		55628 => {:id => "GrandMasterBSTrainer"},
-		55641 => {:id => "GrandMasterBSTrainer"},
-		55656 => {:id => "GrandMasterBSTrainer"},
-		55732 => {:id => "GrandMasterBSTrainer"},
-		55834 => {:id => "GrandMasterBSTrainer"},
-		55835 => {:id => "GrandMasterBSTrainer"},
-		55839 => {:id => "GrandMasterBSTrainer"},
-		56234 => {:id => "GrandMasterBSTrainer"},
-		56280 => {:id => "GrandMasterBSTrainer"},
-		56357 => {:id => "GrandMasterBSTrainer"},
-		56400 => {:id => "GrandMasterBSTrainer"},
-		56549 => {:id => "GrandMasterBSTrainer"},
-		56550 => {:id => "GrandMasterBSTrainer"},
-		56551 => {:id => "GrandMasterBSTrainer"},
-		56552 => {:id => "GrandMasterBSTrainer"},
-		56553 => {:id => "GrandMasterBSTrainer"},
-		56554 => {:id => "GrandMasterBSTrainer"},
-		56555 => {:id => "GrandMasterBSTrainer"},
-		56556 => {:id => "GrandMasterBSTrainer"},
-		59405 => {:id => "GrandMasterBSTrainer"},
-		59406 => {:id => "GrandMasterBSTrainer"},
-		59436 => {:id => "GrandMasterBSTrainer"},
-		59438 => {:id => "GrandMasterBSTrainer"},
-		59440 => {:id => "GrandMasterBSTrainer"},
-		59441 => {:id => "GrandMasterBSTrainer"},
-		59442 => {:id => "GrandMasterBSTrainer"},
-		61008 => {:id => "GrandMasterBSTrainer"},
-		61009 => {:id => "GrandMasterBSTrainer"},
-		61010 => {:id => "GrandMasterBSTrainer"},
-		}
-	bsmanual=<<EOF
+bsspeciallist = {
+	2660 => {:id => "StartingSkill"},
+	2663 => {:id => "StartingSkill"},
+	2671 => {:id => "StartingSkill"},
+	3115 => {:id => "StartingSkill"},
+	21913 => {:id => 7, :type => 1},
+	28242 => {:id => "ADNaxx40E"},
+	28243 => {:id => "ADNaxx40R"},
+	28244 => {:id => "ADNaxx40R"},
+	52567 => {:id => "GrandMasterBSTrainer"},
+	52568 => {:id => "GrandMasterBSTrainer"},
+	52569 => {:id => "GrandMasterBSTrainer"},
+	52570 => {:id => "GrandMasterBSTrainer"},
+	52571 => {:id => "GrandMasterBSTrainer"},
+	52572 => {:id => "GrandMasterBSTrainer"},
+	54550 => {:id => "GrandMasterBSTrainer"},
+	54551 => {:id => "GrandMasterBSTrainer"},
+	54552 => {:id => "GrandMasterBSTrainer"},
+	54553 => {:id => "GrandMasterBSTrainer"},
+	54554 => {:id => "GrandMasterBSTrainer"},
+	54555 => {:id => "GrandMasterBSTrainer"},
+	54556 => {:id => "GrandMasterBSTrainer"},
+	54557 => {:id => "GrandMasterBSTrainer"},
+	54917 => {:id => "GrandMasterBSTrainer"},
+	54918 => {:id => "GrandMasterBSTrainer"},
+	54941 => {:id => "GrandMasterBSTrainer"},
+	54944 => {:id => "GrandMasterBSTrainer"},
+	54945 => {:id => "GrandMasterBSTrainer"},
+	54946 => {:id => "GrandMasterBSTrainer"},
+	54947 => {:id => "GrandMasterBSTrainer"},
+	54948 => {:id => "GrandMasterBSTrainer"},
+	54949 => {:id => "GrandMasterBSTrainer"},
+	55013 => {:id => "GrandMasterBSTrainer"},
+	55014 => {:id => "GrandMasterBSTrainer"},
+	55015 => {:id => "GrandMasterBSTrainer"},
+	55017 => {:id => "GrandMasterBSTrainer"},
+	55055 => {:id => "GrandMasterBSTrainer"},
+	55056 => {:id => "GrandMasterBSTrainer"},
+	55057 => {:id => "GrandMasterBSTrainer"},
+	55058 => {:id => "GrandMasterBSTrainer"},
+	55174 => {:id => "GrandMasterBSTrainer"},
+	55177 => {:id => "GrandMasterBSTrainer"},
+	55179 => {:id => "GrandMasterBSTrainer"},
+	55181 => {:id => "GrandMasterBSTrainer"},
+	55182 => {:id => "GrandMasterBSTrainer"},
+	55183 => {:id => "GrandMasterBSTrainer"},
+	55184 => {:id => "GrandMasterBSTrainer"},
+	55185 => {:id => "GrandMasterBSTrainer"},
+	55186 => {:id => "GrandMasterBSTrainer"},
+	55187 => {:id => "GrandMasterBSTrainer"},
+	55200 => {:id => "GrandMasterBSTrainer"},
+	55201 => {:id => "GrandMasterBSTrainer"},
+	55202 => {:id => "GrandMasterBSTrainer"},
+	55203 => {:id => "GrandMasterBSTrainer"},
+	55204 => {:id => "GrandMasterBSTrainer"},
+	55206 => {:id => "GrandMasterBSTrainer"},
+	55298 => {:id => "GrandMasterBSTrainer"},
+	55300 => {:id => "GrandMasterBSTrainer"},
+	55301 => {:id => "GrandMasterBSTrainer"},
+	55302 => {:id => "GrandMasterBSTrainer"},
+	55303 => {:id => "GrandMasterBSTrainer"},
+	55304 => {:id => "GrandMasterBSTrainer"},
+	55305 => {:id => "GrandMasterBSTrainer"},
+	55306 => {:id => "GrandMasterBSTrainer"},
+	55307 => {:id => "GrandMasterBSTrainer"},
+	55308 => {:id => "GrandMasterBSTrainer"},
+	55309 => {:id => "GrandMasterBSTrainer"},
+	55310 => {:id => "GrandMasterBSTrainer"},
+	55311 => {:id => "GrandMasterBSTrainer"},
+	55312 => {:id => "GrandMasterBSTrainer"},
+	55369 => {:id => "GrandMasterBSTrainer"},
+	55370 => {:id => "GrandMasterBSTrainer"},
+	55371 => {:id => "GrandMasterBSTrainer"},
+	55372 => {:id => "GrandMasterBSTrainer"},
+	55373 => {:id => "GrandMasterBSTrainer"},
+	55374 => {:id => "GrandMasterBSTrainer"},
+	55375 => {:id => "GrandMasterBSTrainer"},
+	55376 => {:id => "GrandMasterBSTrainer"},
+	55377 => {:id => "GrandMasterBSTrainer"},
+	55628 => {:id => "GrandMasterBSTrainer"},
+	55641 => {:id => "GrandMasterBSTrainer"},
+	55656 => {:id => "GrandMasterBSTrainer"},
+	55732 => {:id => "GrandMasterBSTrainer"},
+	55834 => {:id => "GrandMasterBSTrainer"},
+	55835 => {:id => "GrandMasterBSTrainer"},
+	55839 => {:id => "GrandMasterBSTrainer"},
+	56234 => {:id => "GrandMasterBSTrainer"},
+	56280 => {:id => "GrandMasterBSTrainer"},
+	56357 => {:id => "GrandMasterBSTrainer"},
+	56400 => {:id => "GrandMasterBSTrainer"},
+	56549 => {:id => "GrandMasterBSTrainer"},
+	56550 => {:id => "GrandMasterBSTrainer"},
+	56551 => {:id => "GrandMasterBSTrainer"},
+	56552 => {:id => "GrandMasterBSTrainer"},
+	56553 => {:id => "GrandMasterBSTrainer"},
+	56554 => {:id => "GrandMasterBSTrainer"},
+	56555 => {:id => "GrandMasterBSTrainer"},
+	56556 => {:id => "GrandMasterBSTrainer"},
+	59405 => {:id => "GrandMasterBSTrainer"},
+	59406 => {:id => "GrandMasterBSTrainer"},
+	59436 => {:id => "GrandMasterBSTrainer"},
+	59438 => {:id => "GrandMasterBSTrainer"},
+	59440 => {:id => "GrandMasterBSTrainer"},
+	59441 => {:id => "GrandMasterBSTrainer"},
+	59442 => {:id => "GrandMasterBSTrainer"},
+	61008 => {:id => "GrandMasterBSTrainer"},
+	61009 => {:id => "GrandMasterBSTrainer"},
+	61010 => {:id => "GrandMasterBSTrainer"},
+	}
+bsmanual=<<EOF
 	-- Orcish War Leggings -- 9957
 	-- Quest
 	-- Flags: All classes, Item BoE, Recipe BoP, Armor, Mail,
@@ -3354,642 +3012,604 @@ EOF
 	self:addTradeAcquire(RecipeDB, 9957,4,2756)
 EOF

-	# Add the Orcish War Leggings quest
-	$quests[2756] = {:name => "The Old Ways"}
-	$quests[2756][:faction] = 2
-
-	create_profession_db("./RecipeDB/ARL-Blacksmith.lua","Blacksmithing",recipes,maps,"InitBlacksmithing",blacksmithing,[2671,8366,8368,9942,9957,16960,16965,16967,16980,16986,16987],bsspeciallist,bsmanual)
-
-	cooking = recipes.get_cooking_list
-	cookingspeciallist = {
-		2538 => {:id => "StartingSkill"},
-		2540 => {:id => "StartingSkill"},
-		8604 => {:id => "StartingSkill"},
-		21143 => {:id => 7, :type => 1},
-		21144 => {:id => 7, :type => 1},
-		45022 => {:id => 7, :type => 1},
-		43772 => {:id => "Daily", :type => [5]},
-		43765 => {:id => "Daily", :type => [5]},
-		43761 => {:id => "Daily", :type => [6]},
-		43707 => {:id => "Daily", :type => [6]},
-		43758 => {:id => "Daily", :type => [5,6]},
-		43779 => {:id => "Daily", :type => [5,6]},
-		45695 => {:id => "Daily", :type => [7]},
-		9513 => {:id => "ThistleTea"},
-		13028 => {:id => "CustomNeutral", :type => 13},
-		24801 => {:id => "Quest", :type => [8313]},
-		45549 => {:id => "GrandMasterCookTrainer"},
-		45550 => {:id => "GrandMasterCookTrainer"},
-		45551 => {:id => "GrandMasterCookTrainer"},
-		45552 => {:id => "GrandMasterCookTrainer"},
-		45553 => {:id => "GrandMasterCookTrainer"},
-		45554 => {:id => "GrandMasterCookTrainer"},
-		45560 => {:id => "GrandMasterCookTrainer"},
-		45561 => {:id => "GrandMasterCookTrainer"},
-		45562 => {:id => "GrandMasterCookTrainer"},
-		45563 => {:id => "GrandMasterCookTrainer"},
-		45564 => {:id => "GrandMasterCookTrainer"},
-		45565 => {:id => "GrandMasterCookTrainer"},
-		45566 => {:id => "GrandMasterCookTrainer"},
-		45569 => {:id => "GrandMasterCookTrainer"},
-		#53056 => {:id => "GrandMasterCookTrainer"},
-		57421 => {:id => "GrandMasterCookTrainer"},
-		#57423 => {:id => "GrandMasterCookTrainer"},
-		58065 => {:id => "GrandMasterCookTrainer"},
-		}
-	cookmanual=<<EOF
+cookingspeciallist = {
+	2538 => {:id => "StartingSkill"},
+	2540 => {:id => "StartingSkill"},
+	8604 => {:id => "StartingSkill"},
+	21143 => {:id => 7, :type => 1},
+	21144 => {:id => 7, :type => 1},
+	45022 => {:id => 7, :type => 1},
+	43772 => {:id => "Daily", :type => [5]},
+	43765 => {:id => "Daily", :type => [5]},
+	43761 => {:id => "Daily", :type => [6]},
+	43707 => {:id => "Daily", :type => [6]},
+	43758 => {:id => "Daily", :type => [5,6]},
+	43779 => {:id => "Daily", :type => [5,6]},
+	45695 => {:id => "Daily", :type => [7]},
+	9513 => {:id => "ThistleTea"},
+	13028 => {:id => "CustomNeutral", :type => 13},
+	24801 => {:id => "Quest", :type => [8313]},
+	45549 => {:id => "GrandMasterCookTrainer"},
+	45550 => {:id => "GrandMasterCookTrainer"},
+	45551 => {:id => "GrandMasterCookTrainer"},
+	45552 => {:id => "GrandMasterCookTrainer"},
+	45553 => {:id => "GrandMasterCookTrainer"},
+	45554 => {:id => "GrandMasterCookTrainer"},
+	45560 => {:id => "GrandMasterCookTrainer"},
+	45561 => {:id => "GrandMasterCookTrainer"},
+	45562 => {:id => "GrandMasterCookTrainer"},
+	45563 => {:id => "GrandMasterCookTrainer"},
+	45564 => {:id => "GrandMasterCookTrainer"},
+	45565 => {:id => "GrandMasterCookTrainer"},
+	45566 => {:id => "GrandMasterCookTrainer"},
+	45569 => {:id => "GrandMasterCookTrainer"},
+	#53056 => {:id => "GrandMasterCookTrainer"},
+	57421 => {:id => "GrandMasterCookTrainer"},
+	#57423 => {:id => "GrandMasterCookTrainer"},
+	58065 => {:id => "GrandMasterCookTrainer"},
+	}
+cookmanual=<<EOF
 EOF

-	$quests[8313] = {:name => "Sharing the Knowledge"}
-	$quests[8313][:faction] = 0
-
-	create_profession_db("./RecipeDB/ARL-Cook.lua","Cooking",recipes,maps,"InitCooking",cooking,[30047,57423,44438,45547,53056],cookingspeciallist,cookmanual)
-
-	enchanting = recipes.get_enchanting_list
-	enchantingspeciallist = {
-		7418 => {:id => "StartingSkill"},
-		7421 => {:id => "StartingSkill"},
-		7428 => {:id => "StartingSkill"},
-		21931 => {:id => 7, :type => 1},
-		46578 => {:id => 7, :type => 4},
-		60619 => {:id => "GrandMasterEnchTrainer"},
-		44630 => {:id => "GrandMasterEnchTrainer"},
-		60606 => {:id => "GrandMasterEnchTrainer"},
-		44528 => {:id => "GrandMasterEnchTrainer"},
-		44508 => {:id => "GrandMasterEnchTrainer"},
-		44584 => {:id => "GrandMasterEnchTrainer"},
-		60623 => {:id => "GrandMasterEnchTrainer"},
-		44589 => {:id => "GrandMasterEnchTrainer"},
-		44555 => {:id => "GrandMasterEnchTrainer"},
-		44598 => {:id => "GrandMasterEnchTrainer"},
-		44635 => {:id => "GrandMasterEnchTrainer"},
-		44616 => {:id => "GrandMasterEnchTrainer"},
-		44593 => {:id => "GrandMasterEnchTrainer"},
-		60616 => {:id => "GrandMasterEnchTrainer"},
-		60767 => {:id => "GrandMasterEnchTrainer"},
-		47766 => {:id => "GrandMasterEnchTrainer"},
-		44509 => {:id => "GrandMasterEnchTrainer"},
-		44492 => {:id => "GrandMasterEnchTrainer"},
-		47900 => {:id => "GrandMasterEnchTrainer"},
-		44623 => {:id => "GrandMasterEnchTrainer"},
-		60663 => {:id => "GrandMasterEnchTrainer"},
-		60609 => {:id => "GrandMasterEnchTrainer"},
-		44582 => {:id => "GrandMasterEnchTrainer"},
-		44500 => {:id => "GrandMasterEnchTrainer"},
-		60668 => {:id => "GrandMasterEnchTrainer"},
-		44592 => {:id => "GrandMasterEnchTrainer"},
-		44484 => {:id => "GrandMasterEnchTrainer"},
-		44506 => {:id => "GrandMasterEnchTrainer"},
-		44513 => {:id => "GrandMasterEnchTrainer"},
-		44529 => {:id => "GrandMasterEnchTrainer"},
-		44488 => {:id => "GrandMasterEnchTrainer"},
-		44645 => {:id => "GrandMasterEnchTrainer"},
-		44636 => {:id => "GrandMasterEnchTrainer"},
-		59636 => {:id => "GrandMasterEnchTrainer"},
-		44489 => {:id => "GrandMasterEnchTrainer"},
-		60653 => {:id => "GrandMasterEnchTrainer"},
-		44633 => {:id => "GrandMasterEnchTrainer"},
-		44629 => {:id => "GrandMasterEnchTrainer"},
-		44510 => {:id => "GrandMasterEnchTrainer"},
-		60621 => {:id => "GrandMasterEnchTrainer"},
-		}
+enchantingspeciallist = {
+	7418 => {:id => "StartingSkill"},
+	7421 => {:id => "StartingSkill"},
+	7428 => {:id => "StartingSkill"},
+	21931 => {:id => 7, :type => 1},
+	46578 => {:id => 7, :type => 4},
+	60619 => {:id => "GrandMasterEnchTrainer"},
+	44630 => {:id => "GrandMasterEnchTrainer"},
+	60606 => {:id => "GrandMasterEnchTrainer"},
+	44528 => {:id => "GrandMasterEnchTrainer"},
+	44508 => {:id => "GrandMasterEnchTrainer"},
+	44584 => {:id => "GrandMasterEnchTrainer"},
+	60623 => {:id => "GrandMasterEnchTrainer"},
+	44589 => {:id => "GrandMasterEnchTrainer"},
+	44555 => {:id => "GrandMasterEnchTrainer"},
+	44598 => {:id => "GrandMasterEnchTrainer"},
+	44635 => {:id => "GrandMasterEnchTrainer"},
+	44616 => {:id => "GrandMasterEnchTrainer"},
+	44593 => {:id => "GrandMasterEnchTrainer"},
+	60616 => {:id => "GrandMasterEnchTrainer"},
+	60767 => {:id => "GrandMasterEnchTrainer"},
+	47766 => {:id => "GrandMasterEnchTrainer"},
+	44509 => {:id => "GrandMasterEnchTrainer"},
+	44492 => {:id => "GrandMasterEnchTrainer"},
+	47900 => {:id => "GrandMasterEnchTrainer"},
+	44623 => {:id => "GrandMasterEnchTrainer"},
+	60663 => {:id => "GrandMasterEnchTrainer"},
+	60609 => {:id => "GrandMasterEnchTrainer"},
+	44582 => {:id => "GrandMasterEnchTrainer"},
+	44500 => {:id => "GrandMasterEnchTrainer"},
+	60668 => {:id => "GrandMasterEnchTrainer"},
+	44592 => {:id => "GrandMasterEnchTrainer"},
+	44484 => {:id => "GrandMasterEnchTrainer"},
+	44506 => {:id => "GrandMasterEnchTrainer"},
+	44513 => {:id => "GrandMasterEnchTrainer"},
+	44529 => {:id => "GrandMasterEnchTrainer"},
+	44488 => {:id => "GrandMasterEnchTrainer"},
+	44645 => {:id => "GrandMasterEnchTrainer"},
+	44636 => {:id => "GrandMasterEnchTrainer"},
+	59636 => {:id => "GrandMasterEnchTrainer"},
+	44489 => {:id => "GrandMasterEnchTrainer"},
+	60653 => {:id => "GrandMasterEnchTrainer"},
+	44633 => {:id => "GrandMasterEnchTrainer"},
+	44629 => {:id => "GrandMasterEnchTrainer"},
+	44510 => {:id => "GrandMasterEnchTrainer"},
+	60621 => {:id => "GrandMasterEnchTrainer"},
+}
 	enchantmanual=<<EOF
 EOF
-	create_profession_db("./RecipeDB/ARL-Enchant.lua","Enchanting",recipes,maps,"InitEnchanting",enchanting,[22434,28021],enchantingspeciallist,enchantmanual)

-	eng = recipes.get_engineering_list
-	engspecaillist = {
-		3918 => {:id => "StartingSkill"},
-		3919 => {:id => "StartingSkill"},
-		21940 => {:id => 7, :type => 1},
-		26416 => {:id => 7, :type => 2},
-		26417 => {:id => 7, :type => 2},
-		26418 => {:id => 7, :type => 2},
-		26420 => {:id => 7, :type => 2},
-		26421 => {:id => 7, :type => 2},
-		26422 => {:id => 7, :type => 2},
-		26423 => {:id => 7, :type => 2},
-		26424 => {:id => 7, :type => 2},
-		26425 => {:id => 7, :type => 2},
-		26426 => {:id => 7, :type => 2},
-		26427 => {:id => 7, :type => 2},
-		26428 => {:id => 7, :type => 2},
-		26442 => {:id => 7, :type => 2},
-		26443 => {:id => 7, :type => 2},
-		40274 => {:id => "class", :type => [25, 30]},
-		41311 => {:id => "class", :type => [25]},
-		41312 => {:id => "class", :type => [25, 30]},
-		41314 => {:id => "class", :type => [23, 27]},
-		41315 => {:id => "class", :type => [27]},
-		41316 => {:id => "class", :type => [27]},
-		41317 => {:id => "class", :type => [22, 28]},
-		41318 => {:id => "class", :type => [22]},
-		41319 => {:id => "class", :type => [22]},
-		41320 => {:id => "class", :type => [24, 26, 29]},
-		41321 => {:id => "class", :type => [26]},
-		56465 => {:id => "class", :type => [24, 26, 29]},
-		56480 => {:id => "class", :type => [21, 25, 30]},
-		56481 => {:id => "class", :type => [22]},
-		56483 => {:id => "class", :type => [21, 25, 30]},
-		56484 => {:id => "class", :type => [24, 26, 29]},
-		56486 => {:id => "class", :type => [22]},
-		56487 => {:id => "class", :type => [27]},
-		56574 => {:id => "class", :type => [23, 27]},
-		61481 => {:id => "class", :type => [22, 28]},
-		61482 => {:id => "class", :type => [23, 27]},
-		61483 => {:id => "class", :type => [21, 25, 30]},
-		8895 => {:id => "specialty", :type => 20222},
-		12715 => {:id => "specialty", :type => 20222},
-		12716 => {:id => "specialty", :type => 20222},
-		12717 => {:id => "specialty", :type => 20222},
-		12718 => {:id => "specialty", :type => 20222},
-		12754 => {:id => "specialty", :type => 20222},
-		12755 => {:id => "specialty", :type => 20222},
-		12758 => {:id => "specialty", :type => 20222},
-		12759 => {:id => "specialty", :type => 20219},
-		12760 => {:id => "specialty", :type => 20222},
-		12895 => {:id => "specialty", :type => 20219},
-		12897 => {:id => "specialty", :type => 20219},
-		12899 => {:id => "specialty", :type => 20219},
-		12902 => {:id => "specialty", :type => 20219},
-		12903 => {:id => "specialty", :type => 20219},
-		12905 => {:id => "specialty", :type => 20219},
-		12906 => {:id => "specialty", :type => 20219},
-		12907 => {:id => "specialty", :type => 20219},
-		12908 => {:id => "specialty", :type => 20222},
-		13240 => {:id => "specialty", :type => 20222},
-		15633 => {:id => "specialty", :type => 20219},
-		15628 => {:id => "specialty", :type => 20222},
-		30558 => {:id => "specialty", :type => 20222},
-		30560 => {:id => "specialty", :type => 20222},
-		30568 => {:id => "specialty", :type => 20219},
-		30570 => {:id => "specialty", :type => 20219},
-		}
-	engmanual=<<EOF
+engspecaillist = {
+	3918 => {:id => "StartingSkill"},
+	3919 => {:id => "StartingSkill"},
+	21940 => {:id => 7, :type => 1},
+	26416 => {:id => 7, :type => 2},
+	26417 => {:id => 7, :type => 2},
+	26418 => {:id => 7, :type => 2},
+	26420 => {:id => 7, :type => 2},
+	26421 => {:id => 7, :type => 2},
+	26422 => {:id => 7, :type => 2},
+	26423 => {:id => 7, :type => 2},
+	26424 => {:id => 7, :type => 2},
+	26425 => {:id => 7, :type => 2},
+	26426 => {:id => 7, :type => 2},
+	26427 => {:id => 7, :type => 2},
+	26428 => {:id => 7, :type => 2},
+	26442 => {:id => 7, :type => 2},
+	26443 => {:id => 7, :type => 2},
+	40274 => {:id => "class", :type => [25, 30]},
+	41311 => {:id => "class", :type => [25]},
+	41312 => {:id => "class", :type => [25, 30]},
+	41314 => {:id => "class", :type => [23, 27]},
+	41315 => {:id => "class", :type => [27]},
+	41316 => {:id => "class", :type => [27]},
+	41317 => {:id => "class", :type => [22, 28]},
+	41318 => {:id => "class", :type => [22]},
+	41319 => {:id => "class", :type => [22]},
+	41320 => {:id => "class", :type => [24, 26, 29]},
+	41321 => {:id => "class", :type => [26]},
+	56465 => {:id => "class", :type => [24, 26, 29]},
+	56480 => {:id => "class", :type => [21, 25, 30]},
+	56481 => {:id => "class", :type => [22]},
+	56483 => {:id => "class", :type => [21, 25, 30]},
+	56484 => {:id => "class", :type => [24, 26, 29]},
+	56486 => {:id => "class", :type => [22]},
+	56487 => {:id => "class", :type => [27]},
+	56574 => {:id => "class", :type => [23, 27]},
+	61481 => {:id => "class", :type => [22, 28]},
+	61482 => {:id => "class", :type => [23, 27]},
+	61483 => {:id => "class", :type => [21, 25, 30]},
+	8895 => {:id => "specialty", :type => 20222},
+	12715 => {:id => "specialty", :type => 20222},
+	12716 => {:id => "specialty", :type => 20222},
+	12717 => {:id => "specialty", :type => 20222},
+	12718 => {:id => "specialty", :type => 20222},
+	12754 => {:id => "specialty", :type => 20222},
+	12755 => {:id => "specialty", :type => 20222},
+	12758 => {:id => "specialty", :type => 20222},
+	12759 => {:id => "specialty", :type => 20219},
+	12760 => {:id => "specialty", :type => 20222},
+	12895 => {:id => "specialty", :type => 20219},
+	12897 => {:id => "specialty", :type => 20219},
+	12899 => {:id => "specialty", :type => 20219},
+	12902 => {:id => "specialty", :type => 20219},
+	12903 => {:id => "specialty", :type => 20219},
+	12905 => {:id => "specialty", :type => 20219},
+	12906 => {:id => "specialty", :type => 20219},
+	12907 => {:id => "specialty", :type => 20219},
+	12908 => {:id => "specialty", :type => 20222},
+	13240 => {:id => "specialty", :type => 20222},
+	15633 => {:id => "specialty", :type => 20219},
+	15628 => {:id => "specialty", :type => 20222},
+	30558 => {:id => "specialty", :type => 20222},
+	30560 => {:id => "specialty", :type => 20222},
+	30568 => {:id => "specialty", :type => 20219},
+	30570 => {:id => "specialty", :type => 20219},
+}
+engmanual=<<EOF
 	-- Mechanized Snow Goggles (Cloth) -- 56465
 	recipecount = recipecount + 1
 	self:addTradeSkill(RecipeDB,56465,400,41112,3,4036)
 	self:addTradeFlags(RecipeDB,56465,1,2,3,24,26,29,36,41,56)
-	self:addTradeAcquire(RecipeDB,56465,1,26907,1,26955,1,26991,1,28697)
+	self:addTradeAcquire(RecipeDB,56465,1,25277,1,26907,1,26955,1,26991,1,28697)

 	-- Mechanized Snow Goggles (Leather) -- 61481
 	recipecount = recipecount + 1
 	self:addTradeSkill(RecipeDB,61481,400,44742,3,4036)
 	self:addTradeFlags(RecipeDB,61481,1,2,3,22,28,36,41,57)
-	self:addTradeAcquire(RecipeDB,61481,1,26907,1,26955,1,26991,1,28697)
+	self:addTradeAcquire(RecipeDB,61481,1,25277,1,26907,1,26955,1,26991,1,28697)

 	-- Mechanized Snow Goggles (Mail) -- 61482
 	recipecount = recipecount + 1
 	self:addTradeSkill(RecipeDB,61482,400,44742,3,4036)
 	self:addTradeFlags(RecipeDB,61482,1,2,3,23,27,36,41,58)
-	self:addTradeAcquire(RecipeDB,61482,1,26907,1,26955,1,26991,1,28697)
+	self:addTradeAcquire(RecipeDB,61482,1,25277,1,26907,1,26955,1,26991,1,28697)

 	-- Mechanized Snow Goggles (Plate) -- 61483
 	recipecount = recipecount + 1
 	self:addTradeSkill(RecipeDB,61483,400,44742,3,4036)
 	self:addTradeFlags(RecipeDB,61483,1,2,3,21,25,30,36,41,59)
-	self:addTradeAcquire(RecipeDB,61483,1,26907,1,26955,1,26991,1,28697)
-
+	self:addTradeAcquire(RecipeDB,61483,1,25277,1,26907,1,26955,1,26991,1,28697)
 EOF
-	$trainers[26907] = {:name => "Tisha Longbridge"}
-	$trainers[26907][:faction] = 1
-	$trainers[26955] = {:name => "Jamesina Watterly"}
-	$trainers[26955][:faction] = 2
-	$trainers[26991] = {:name => "Sock Brightbolt"}
-	$trainers[26991][:faction] = 1
-	$trainers[28697] = {:name => "Justin Oshenko"}
-	$trainers[28697][:faction] = 0
-	create_profession_db("./RecipeDB/ARL-Engineer.lua","Engineering",recipes,maps,"InitEngineering",eng,[61483,30573,30343,30342,30349,30561,30549,12722,12720,12900,12719,12904],engspecaillist,engmanual)

-	firstaid = recipes.get_firstaid_list
-	faspecaillist = {
-		3275 => {:id => "StartingSkill"},
-		}
-	famanual=<<EOF
+faspecaillist = {
+	3275 => {:id => "StartingSkill"},
+}
+famanual=<<EOF
 EOF
-	create_profession_db("./RecipeDB/ARL-FirstAid.lua","First Aid",recipes,maps,"InitFirstAid",firstaid,[30021],faspecaillist,famanual)

-	inscription = recipes.get_inscription_list
-	insspecaillist = {
-		45382 => {:id => "StartingSkill"},
-		48114 => {:id => "StartingSkill"},
-		48116 => {:id => "StartingSkill"},
-		52738 => {:id => "StartingSkill"},
-		48121 => {:id => "InscTrainer"},
-		48247 => {:id => "InscTrainer"},
-		48248 => {:id => "InscTrainer"},
-		50598 => {:id => "InscTrainer"},
-		50599 => {:id => "InscTrainer"},
-		50600 => {:id => "InscTrainer"},
-		50601 => {:id => "InscTrainer"},
-		50602 => {:id => "InscTrainer"},
-		50603 => {:id => "GrandMasterInscTrainer"},
-		50604 => {:id => "GrandMasterInscTrainer"},
-		50605 => {:id => "InscTrainer"},
-		50606 => {:id => "InscTrainer"},
-		50607 => {:id => "InscTrainer"},
-		50608 => {:id => "InscTrainer"},
-		50609 => {:id => "InscTrainer"},
-		50610 => {:id => "GrandMasterInscTrainer"},
-		50611 => {:id => "GrandMasterInscTrainer"},
-		50612 => {:id => "InscTrainer"},
-		50614 => {:id => "InscTrainer"},
-		50616 => {:id => "InscTrainer"},
-		50617 => {:id => "InscTrainer"},
-		50618 => {:id => "InscTrainer"},
-		50619 => {:id => "GrandMasterInscTrainer"},
-		50620 => {:id => "GrandMasterInscTrainer"},
-		52739 => {:id => "InscTrainer"},
-		52840 => {:id => "InscTrainer"},
-		52843 => {:id => "InscTrainer"},
-		53462 => {:id => "InscTrainer"},
-		56943 => {:id => "MasterInscTrainer"},
-		56944 => {:id => "NorthrendInscriptionResearch"},
-		56945 => {:id => "InscTrainer"},
-		56946 => {:id => "NorthrendInscriptionResearch"},
-		56947 => {:id => "NorthrendInscriptionResearch"},
-		56948 => {:id => "InscTrainer"},
-		56949 => {:id => "NorthrendInscriptionResearch"},
-		56950 => {:id => "NorthrendInscriptionResearch"},
-		56951 => {:id => "InscTrainer"},
-		56952 => {:id => "MasterInscTrainer"},
-		56953 => {:id => "InscTrainer"},
-		56954 => {:id => "NorthrendInscriptionResearch"},
-		56955 => {:id => "InscTrainer"},
-		56956 => {:id => "InscTrainer"},
-		56957 => {:id => "InscTrainer"},
-		56958 => {:id => "NorthrendInscriptionResearch"},
-		56959 => {:id => "InscTrainer"},
-		56960 => {:id => "NorthrendInscriptionResearch"},
-		56961 => {:id => "InscTrainer"},
-		56963 => {:id => "InscTrainer"},
-		56968 => {:id => "InscTrainer"},
-		56971 => {:id => "InscTrainer"},
-		56972 => {:id => "MasterInscTrainer"},
-		56973 => {:id => "InscTrainer"},
-		56974 => {:id => "InscTrainer"},
-		56975 => {:id => "NorthrendInscriptionResearch"},
-		56976 => {:id => "InscTrainer"},
-		56977 => {:id => "NorthrendInscriptionResearch"},
-		56978 => {:id => "InscTrainer"},
-		56979 => {:id => "MasterInscTrainer"},
-		56980 => {:id => "GrandMasterInscTrainer"},
-		56981 => {:id => "InscTrainer"},
-		56982 => {:id => "InscTrainer"},
-		56983 => {:id => "NorthrendInscriptionResearch"},
-		56984 => {:id => "MasterInscTrainer"},
-		56985 => {:id => "InscTrainer"},
-		56986 => {:id => "NorthrendInscriptionResearch"},
-		56987 => {:id => "GrandMasterInscTrainer"},
-		56988 => {:id => "NorthrendInscriptionResearch"},
-		56989 => {:id => "NorthrendInscriptionResearch"},
-		56994 => {:id => "InscTrainer"},
-		56995 => {:id => "InscTrainer"},
-		56996 => {:id => "NorthrendInscriptionResearch"},
-		56997 => {:id => "InscTrainer"},
-		56998 => {:id => "NorthrendInscriptionResearch"},
-		56999 => {:id => "NorthrendInscriptionResearch"},
-		57000 => {:id => "InscTrainer"},
-		57001 => {:id => "InscTrainer"},
-		57002 => {:id => "InscTrainer"},
-		57003 => {:id => "MasterInscTrainer"},
-		57004 => {:id => "InscTrainer"},
-		57005 => {:id => "InscTrainer"},
-		57006 => {:id => "GrandMasterInscTrainer"},
-		57007 => {:id => "MasterInscTrainer"},
-		57008 => {:id => "MasterInscTrainer"},
-		57009 => {:id => "InscTrainer"},
-		57010 => {:id => "NorthrendInscriptionResearch"},
-		57011 => {:id => "NorthrendInscriptionResearch"},
-		57012 => {:id => "NorthrendInscriptionResearch"},
-		57013 => {:id => "NorthrendInscriptionResearch"},
-		57014 => {:id => "NorthrendInscriptionResearch"},
-		57019 => {:id => "NorthrendInscriptionResearch"},
-		57020 => {:id => "InscTrainer"},
-		57021 => {:id => "NorthrendInscriptionResearch"},
-		57022 => {:id => "InscTrainer"},
-		57023 => {:id => "InscTrainer"},
-		57024 => {:id => "InscTrainer"},
-		57025 => {:id => "InscTrainer"},
-		57026 => {:id => "MasterInscTrainer"},
-		57027 => {:id => "InscTrainer"},
-		57028 => {:id => "NorthrendInscriptionResearch"},
-		57029 => {:id => "InscTrainer"},
-		57030 => {:id => "InscTrainer"},
-		57031 => {:id => "InscTrainer"},
-		57032 => {:id => "InscTrainer"},
-		57033 => {:id => "MasterInscTrainer"},
-		57034 => {:id => "NorthrendInscriptionResearch"},
-		57035 => {:id => "NorthrendInscriptionResearch"},
-		57036 => {:id => "GrandMasterInscTrainer"},
-		57112 => {:id => "NorthrendInscriptionResearch"},
-		57113 => {:id => "MasterInscTrainer"},
-		57114 => {:id => "InscTrainer"},
-		57115 => {:id => "NorthrendInscriptionResearch"},
-		57116 => {:id => "NorthrendInscriptionResearch"},
-		57117 => {:id => "NorthrendInscriptionResearch"},
-		57119 => {:id => "InscTrainer"},
-		57120 => {:id => "InscTrainer"},
-		57121 => {:id => "InscTrainer"},
-		57122 => {:id => "MasterInscTrainer"},
-		57123 => {:id => "InscTrainer"},
-		57124 => {:id => "NorthrendInscriptionResearch"},
-		57125 => {:id => "InscTrainer"},
-		57126 => {:id => "NorthrendInscriptionResearch"},
-		57127 => {:id => "NorthrendInscriptionResearch"},
-		57128 => {:id => "NorthrendInscriptionResearch"},
-		57129 => {:id => "InscTrainer"},
-		57130 => {:id => "NorthrendInscriptionResearch"},
-		57131 => {:id => "InscTrainer"},
-		57132 => {:id => "InscTrainer"},
-		57133 => {:id => "InscTrainer"},
-		57151 => {:id => "InscTrainer"},
-		57152 => {:id => "NorthrendInscriptionResearch"},
-		57153 => {:id => "NorthrendInscriptionResearch"},
-		57154 => {:id => "InscTrainer"},
-		57155 => {:id => "NorthrendInscriptionResearch"},
-		57156 => {:id => "InscTrainer"},
-		57157 => {:id => "InscTrainer"},
-		57158 => {:id => "InscTrainer"},
-		57159 => {:id => "NorthrendInscriptionResearch"},
-		57160 => {:id => "NorthrendInscriptionResearch"},
-		57161 => {:id => "InscTrainer"},
-		57162 => {:id => "InscTrainer"},
-		57163 => {:id => "InscTrainer"},
-		57164 => {:id => "NorthrendInscriptionResearch"},
-		57165 => {:id => "InscTrainer"},
-		57166 => {:id => "NorthrendInscriptionResearch"},
-		57167 => {:id => "InscTrainer"},
-		57168 => {:id => "MasterInscTrainer"},
-		57169 => {:id => "NorthrendInscriptionResearch"},
-		57170 => {:id => "NorthrendInscriptionResearch"},
-		57172 => {:id => "MasterInscTrainer"},
-		57181 => {:id => "NorthrendInscriptionResearch"},
-		57183 => {:id => "InscTrainer"},
-		57184 => {:id => "InscTrainer"},
-		57185 => {:id => "InscTrainer"},
-		57186 => {:id => "InscTrainer"},
-		57187 => {:id => "MasterInscTrainer"},
-		57188 => {:id => "InscTrainer"},
-		57189 => {:id => "NorthrendInscriptionResearch"},
-		57190 => {:id => "NorthrendInscriptionResearch"},
-		57191 => {:id => "NorthrendInscriptionResearch"},
-		57192 => {:id => "MasterInscTrainer"},
-		57194 => {:id => "InscTrainer"},
-		57195 => {:id => "NorthrendInscriptionResearch"},
-		57196 => {:id => "MasterInscTrainer"},
-		57197 => {:id => "InscTrainer"},
-		57198 => {:id => "GrandMasterInscTrainer"},
-		57199 => {:id => "NorthrendInscriptionResearch"},
-		57200 => {:id => "InscTrainer"},
-		57201 => {:id => "InscTrainer"},
-		57202 => {:id => "NorthrendInscriptionResearch"},
-		57207 => {:id => "NorthrendInscriptionResearch"},
-		57208 => {:id => "NorthrendInscriptionResearch"},
-		57209 => {:id => "MinorInscriptionResearch"},
-		57210 => {:id => "InscTrainer"},
-		57211 => {:id => "NorthrendInscriptionResearch"},
-		57212 => {:id => "NorthrendInscriptionResearch"},
-		57213 => {:id => "InscTrainer"},
-		57214 => {:id => "NorthrendInscriptionResearch"},
-		57215 => {:id => "MinorInscriptionResearch"},
-		57216 => {:id => "InscTrainer"},
-		57217 => {:id => "MinorInscriptionResearch"},
-		57218 => {:id => "NorthrendInscriptionResearch"},
-		57219 => {:id => "MasterInscTrainer"},
-		57220 => {:id => "NorthrendInscriptionResearch"},
-		57221 => {:id => "MasterInscTrainer"},
-		57222 => {:id => "MasterInscTrainer"},
-		57223 => {:id => "NorthrendInscriptionResearch"},
-		57224 => {:id => "MasterInscTrainer"},
-		57225 => {:id => "GrandMasterInscTrainer"},
-		57226 => {:id => "MasterInscTrainer"},
-		57227 => {:id => "MasterInscTrainer"},
-		57229 => {:id => "MinorInscriptionResearch"},
-		57230 => {:id => "MinorInscriptionResearch"},
-		57232 => {:id => "NorthrendInscriptionResearch"},
-		57233 => {:id => "NorthrendInscriptionResearch"},
-		57234 => {:id => "NorthrendInscriptionResearch"},
-		57235 => {:id => "NorthrendInscriptionResearch"},
-		57236 => {:id => "MasterInscTrainer"},
-		57237 => {:id => "NorthrendInscriptionResearch"},
-		57238 => {:id => "InscTrainer"},
-		57239 => {:id => "InscTrainer"},
-		57240 => {:id => "InscTrainer"},
-		57241 => {:id => "InscTrainer"},
-		57242 => {:id => "InscTrainer"},
-		57243 => {:id => "NorthrendInscriptionResearch"},
-		57244 => {:id => "InscTrainer"},
-		57245 => {:id => "InscTrainer"},
-		57246 => {:id => "InscTrainer"},
-		57247 => {:id => "NorthrendInscriptionResearch"},
-		57248 => {:id => "GrandMasterInscTrainer"},
-		57249 => {:id => "InscTrainer"},
-		57250 => {:id => "NorthrendInscriptionResearch"},
-		57251 => {:id => "InscTrainer"},
-		57252 => {:id => "MasterInscTrainer"},
-		57257 => {:id => "MasterInscTrainer"},
-		57258 => {:id => "NorthrendInscriptionResearch"},
-		57259 => {:id => "InscTrainer"},
-		57260 => {:id => "NorthrendInscriptionResearch"},
-		57261 => {:id => "NorthrendInscriptionResearch"},
-		57262 => {:id => "InscTrainer"},
-		57263 => {:id => "NorthrendInscriptionResearch"},
-		57264 => {:id => "NorthrendInscriptionResearch"},
-		57265 => {:id => "InscTrainer"},
-		57266 => {:id => "InscTrainer"},
-		57267 => {:id => "NorthrendInscriptionResearch"},
-		57268 => {:id => "NorthrendInscriptionResearch"},
-		57269 => {:id => "MasterInscTrainer"},
-		57270 => {:id => "MasterInscTrainer"},
-		57271 => {:id => "InscTrainer"},
-		57272 => {:id => "InscTrainer"},
-		57273 => {:id => "NorthrendInscriptionResearch"},
-		57274 => {:id => "InscTrainer"},
-		57275 => {:id => "MasterInscTrainer"},
-		57276 => {:id => "NorthrendInscriptionResearch"},
-		57277 => {:id => "InscTrainer"},
-		57703 => {:id => "InscTrainer"},
-		57704 => {:id => "InscTrainer"},
-		57706 => {:id => "InscTrainer"},
-		57707 => {:id => "InscTrainer"},
-		57708 => {:id => "InscTrainer"},
-		57709 => {:id => "MasterInscTrainer"},
-		57710 => {:id => "InscTrainer"},
-		57711 => {:id => "InscTrainer"},
-		57712 => {:id => "InscTrainer"},
-		57713 => {:id => "InscTrainer"},
-		57714 => {:id => "GrandMasterInscTrainer"},
-		57715 => {:id => "GrandMasterInscTrainer"},
-		57716 => {:id => "GrandMasterInscTrainer"},
-		57719 => {:id => "MinorInscriptionResearch"},
-		58286 => {:id => "MinorInscriptionResearch"},
-		58287 => {:id => "MinorInscriptionResearch"},
-		58288 => {:id => "MinorInscriptionResearch"},
-		58289 => {:id => "MinorInscriptionResearch"},
-		58296 => {:id => "MinorInscriptionResearch"},
-		58297 => {:id => "MinorInscriptionResearch"},
-		58298 => {:id => "MinorInscriptionResearch"},
-		58299 => {:id => "MinorInscriptionResearch"},
-		58300 => {:id => "MinorInscriptionResearch"},
-		58301 => {:id => "MinorInscriptionResearch"},
-		58302 => {:id => "MinorInscriptionResearch"},
-		58303 => {:id => "MinorInscriptionResearch"},
-		58305 => {:id => "MinorInscriptionResearch"},
-		58306 => {:id => "MinorInscriptionResearch"},
-		58307 => {:id => "MinorInscriptionResearch"},
-		58308 => {:id => "MinorInscriptionResearch"},
-		58310 => {:id => "MinorInscriptionResearch"},
-		58311 => {:id => "MinorInscriptionResearch"},
-		58312 => {:id => "MinorInscriptionResearch"},
-		58313  => {:id => "InscTrainer"},
-		58314 => {:id => "MinorInscriptionResearch"},
-		58315 => {:id => "MinorInscriptionResearch"},
-		58316 => {:id => "MinorInscriptionResearch"},
-		58317 => {:id => "MinorInscriptionResearch"},
-		58318 => {:id => "MinorInscriptionResearch"},
-		58319 => {:id => "MinorInscriptionResearch"},
-		58320 => {:id => "MinorInscriptionResearch"},
-		58321 => {:id => "MinorInscriptionResearch"},
-		58322 => {:id => "MinorInscriptionResearch"},
-		58323 => {:id => "MinorInscriptionResearch"},
-		58324 => {:id => "MinorInscriptionResearch"},
-		58325 => {:id => "MinorInscriptionResearch"},
-		58326 => {:id => "MinorInscriptionResearch"},
-		58327 => {:id => "MinorInscriptionResearch"},
-		58328 => {:id => "MinorInscriptionResearch"},
-		58329 => {:id => "MinorInscriptionResearch"},
-		58330 => {:id => "MinorInscriptionResearch"},
-		58331 => {:id => "MinorInscriptionResearch"},
-		58332 => {:id => "MinorInscriptionResearch"},
-		58333 => {:id => "MinorInscriptionResearch"},
-		58336 => {:id => "MinorInscriptionResearch"},
-		58337 => {:id => "MinorInscriptionResearch"},
-		58338 => {:id => "MinorInscriptionResearch"},
-		58339 => {:id => "MinorInscriptionResearch"},
-		58340 => {:id => "MinorInscriptionResearch"},
-		58341 => {:id => "MinorInscriptionResearch"},
-		58342 => {:id => "MinorInscriptionResearch"},
-		58343 => {:id => "MinorInscriptionResearch"},
-		58344 => {:id => "MinorInscriptionResearch"},
-		58345 => {:id => "MinorInscriptionResearch"},
-		58346 => {:id => "MinorInscriptionResearch"},
-		58347 => {:id => "MinorInscriptionResearch"},
-		58472 => {:id => "InscTrainer"},
-		58473 => {:id => "InscTrainer"},
-		58476 => {:id => "InscTrainer"},
-		58478 => {:id => "InscTrainer"},
-		58480 => {:id => "InscTrainer"},
-		58481 => {:id => "InscTrainer"},
-		58482 => {:id => "GrandMasterInscTrainer"},
-		58483 => {:id => "GrandMasterInscTrainer"},
-		58484 => {:id => "InscTrainer"},
-		58485 => {:id => "InscTrainer"},
-		58486 => {:id => "InscTrainer"},
-		58487 => {:id => "InscTrainer"},
-		58488 => {:id => "InscTrainer"},
-		58489 => {:id => "InscTrainer"},
-		58490 => {:id => "GrandMasterInscTrainer"},
-		58491 => {:id => "GrandMasterInscTrainer"},
-		58565 => {:id => "InscTrainer"},
-		59315 => {:id => "MinorInscriptionResearch"},
-		59326 => {:id => "MinorInscriptionResearch"},
-		59338 => {:id => "MinorInscriptionResearch"},
-		59339 => {:id => "MinorInscriptionResearch"},
-		59340 => {:id => "MinorInscriptionResearch"},
-		59387 => {:id => "MasterInscTrainer"},
-		59475 => {:id => "InscTrainer"},
-		59478 => {:id => "InscTrainer"},
-		59480 => {:id => "InscTrainer"},
-		59484 => {:id => "InscTrainer"},
-		59486 => {:id => "InscTrainer"},
-		59487 => {:id => "InscTrainer"},
-		59488 => {:id => "InscTrainer"},
-		59489 => {:id => "InscTrainer"},
-		59490 => {:id => "InscTrainer"},
-		59491 => {:id => "InscTrainer"},
-		59493 => {:id => "InscTrainer"},
-		59494 => {:id => "InscTrainer"},
-		59495 => {:id => "MasterInscTrainer"},
-		59496 => {:id => "GrandMasterInscTrainer"},
-		59497 => {:id => "MasterInscTrainer"},
-		59498 => {:id => "GrandMasterInscTrainer"},
-		59499 => {:id => "InscTrainer"},
-		59500 => {:id => "InscTrainer"},
-		59501 => {:id => "GrandMasterInscTrainer"},
-		59502 => {:id => "InscTrainer"},
-		59503 => {:id => "MasterInscTrainer"},
-		59504 => {:id => "GrandMasterInscTrainer"},
-		59559 => {:id => "NorthrendInscriptionResearch"},
-		59560 => {:id => "NorthrendInscriptionResearch"},
-		59561 => {:id => "NorthrendInscriptionResearch"},
-		60336 => {:id => "InscTrainer"},
-		60337 => {:id => "GrandMasterInscTrainer"},
-		61117 => {:id => "GrandMasterInscTrainer"},
-		61118 => {:id => "GrandMasterInscTrainer"},
-		61119 => {:id => "GrandMasterInscTrainer"},
-		61120 => {:id => "GrandMasterInscTrainer"},
-		61177 => {:id => "GrandMasterInscTrainer"},
-		61288 => {:id => "InscTrainer"},
-		61677 => {:id => "NorthrendInscriptionResearch"},
-		}
-	inscriptionmanual=<<EOF
+insspecaillist = {
+	45382 => {:id => "StartingSkill"},
+	48114 => {:id => "StartingSkill"},
+	48116 => {:id => "StartingSkill"},
+	52738 => {:id => "StartingSkill"},
+	48121 => {:id => "InscTrainer"},
+	48247 => {:id => "InscTrainer"},
+	48248 => {:id => "InscTrainer"},
+	50598 => {:id => "InscTrainer"},
+	50599 => {:id => "InscTrainer"},
+	50600 => {:id => "InscTrainer"},
+	50601 => {:id => "InscTrainer"},
+	50602 => {:id => "InscTrainer"},
+	50603 => {:id => "GrandMasterInscTrainer"},
+	50604 => {:id => "GrandMasterInscTrainer"},
+	50605 => {:id => "InscTrainer"},
+	50606 => {:id => "InscTrainer"},
+	50607 => {:id => "InscTrainer"},
+	50608 => {:id => "InscTrainer"},
+	50609 => {:id => "InscTrainer"},
+	50610 => {:id => "GrandMasterInscTrainer"},
+	50611 => {:id => "GrandMasterInscTrainer"},
+	50612 => {:id => "InscTrainer"},
+	50614 => {:id => "InscTrainer"},
+	50616 => {:id => "InscTrainer"},
+	50617 => {:id => "InscTrainer"},
+	50618 => {:id => "InscTrainer"},
+	50619 => {:id => "GrandMasterInscTrainer"},
+	50620 => {:id => "GrandMasterInscTrainer"},
+	52739 => {:id => "InscTrainer"},
+	52840 => {:id => "InscTrainer"},
+	52843 => {:id => "InscTrainer"},
+	53462 => {:id => "InscTrainer"},
+	56943 => {:id => "MasterInscTrainer"},
+	56944 => {:id => "NorthrendInscriptionResearch"},
+	56945 => {:id => "InscTrainer"},
+	56946 => {:id => "NorthrendInscriptionResearch"},
+	56947 => {:id => "NorthrendInscriptionResearch"},
+	56948 => {:id => "InscTrainer"},
+	56949 => {:id => "NorthrendInscriptionResearch"},
+	56950 => {:id => "NorthrendInscriptionResearch"},
+	56951 => {:id => "InscTrainer"},
+	56952 => {:id => "MasterInscTrainer"},
+	56953 => {:id => "InscTrainer"},
+	56954 => {:id => "NorthrendInscriptionResearch"},
+	56955 => {:id => "InscTrainer"},
+	56956 => {:id => "InscTrainer"},
+	56957 => {:id => "InscTrainer"},
+	56958 => {:id => "NorthrendInscriptionResearch"},
+	56959 => {:id => "InscTrainer"},
+	56960 => {:id => "NorthrendInscriptionResearch"},
+	56961 => {:id => "InscTrainer"},
+	56963 => {:id => "InscTrainer"},
+	56968 => {:id => "InscTrainer"},
+	56971 => {:id => "InscTrainer"},
+	56972 => {:id => "MasterInscTrainer"},
+	56973 => {:id => "InscTrainer"},
+	56974 => {:id => "InscTrainer"},
+	56975 => {:id => "NorthrendInscriptionResearch"},
+	56976 => {:id => "InscTrainer"},
+	56977 => {:id => "NorthrendInscriptionResearch"},
+	56978 => {:id => "InscTrainer"},
+	56979 => {:id => "MasterInscTrainer"},
+	56980 => {:id => "GrandMasterInscTrainer"},
+	56981 => {:id => "InscTrainer"},
+	56982 => {:id => "InscTrainer"},
+	56983 => {:id => "NorthrendInscriptionResearch"},
+	56984 => {:id => "MasterInscTrainer"},
+	56985 => {:id => "InscTrainer"},
+	56986 => {:id => "NorthrendInscriptionResearch"},
+	56987 => {:id => "GrandMasterInscTrainer"},
+	56988 => {:id => "NorthrendInscriptionResearch"},
+	56989 => {:id => "NorthrendInscriptionResearch"},
+	56994 => {:id => "InscTrainer"},
+	56995 => {:id => "InscTrainer"},
+	56996 => {:id => "NorthrendInscriptionResearch"},
+	56997 => {:id => "InscTrainer"},
+	56998 => {:id => "NorthrendInscriptionResearch"},
+	56999 => {:id => "NorthrendInscriptionResearch"},
+	57000 => {:id => "InscTrainer"},
+	57001 => {:id => "InscTrainer"},
+	57002 => {:id => "InscTrainer"},
+	57003 => {:id => "MasterInscTrainer"},
+	57004 => {:id => "InscTrainer"},
+	57005 => {:id => "InscTrainer"},
+	57006 => {:id => "GrandMasterInscTrainer"},
+	57007 => {:id => "MasterInscTrainer"},
+	57008 => {:id => "MasterInscTrainer"},
+	57009 => {:id => "InscTrainer"},
+	57010 => {:id => "NorthrendInscriptionResearch"},
+	57011 => {:id => "NorthrendInscriptionResearch"},
+	57012 => {:id => "NorthrendInscriptionResearch"},
+	57013 => {:id => "NorthrendInscriptionResearch"},
+	57014 => {:id => "NorthrendInscriptionResearch"},
+	57019 => {:id => "NorthrendInscriptionResearch"},
+	57020 => {:id => "InscTrainer"},
+	57021 => {:id => "NorthrendInscriptionResearch"},
+	57022 => {:id => "InscTrainer"},
+	57023 => {:id => "InscTrainer"},
+	57024 => {:id => "InscTrainer"},
+	57025 => {:id => "InscTrainer"},
+	57026 => {:id => "MasterInscTrainer"},
+	57027 => {:id => "InscTrainer"},
+	57028 => {:id => "NorthrendInscriptionResearch"},
+	57029 => {:id => "InscTrainer"},
+	57030 => {:id => "InscTrainer"},
+	57031 => {:id => "InscTrainer"},
+	57032 => {:id => "InscTrainer"},
+	57033 => {:id => "MasterInscTrainer"},
+	57034 => {:id => "NorthrendInscriptionResearch"},
+	57035 => {:id => "NorthrendInscriptionResearch"},
+	57036 => {:id => "GrandMasterInscTrainer"},
+	57112 => {:id => "NorthrendInscriptionResearch"},
+	57113 => {:id => "MasterInscTrainer"},
+	57114 => {:id => "InscTrainer"},
+	57115 => {:id => "NorthrendInscriptionResearch"},
+	57116 => {:id => "NorthrendInscriptionResearch"},
+	57117 => {:id => "NorthrendInscriptionResearch"},
+	57119 => {:id => "InscTrainer"},
+	57120 => {:id => "InscTrainer"},
+	57121 => {:id => "InscTrainer"},
+	57122 => {:id => "MasterInscTrainer"},
+	57123 => {:id => "InscTrainer"},
+	57124 => {:id => "NorthrendInscriptionResearch"},
+	57125 => {:id => "InscTrainer"},
+	57126 => {:id => "NorthrendInscriptionResearch"},
+	57127 => {:id => "NorthrendInscriptionResearch"},
+	57128 => {:id => "NorthrendInscriptionResearch"},
+	57129 => {:id => "InscTrainer"},
+	57130 => {:id => "NorthrendInscriptionResearch"},
+	57131 => {:id => "InscTrainer"},
+	57132 => {:id => "InscTrainer"},
+	57133 => {:id => "InscTrainer"},
+	57151 => {:id => "InscTrainer"},
+	57152 => {:id => "NorthrendInscriptionResearch"},
+	57153 => {:id => "NorthrendInscriptionResearch"},
+	57154 => {:id => "InscTrainer"},
+	57155 => {:id => "NorthrendInscriptionResearch"},
+	57156 => {:id => "InscTrainer"},
+	57157 => {:id => "InscTrainer"},
+	57158 => {:id => "InscTrainer"},
+	57159 => {:id => "NorthrendInscriptionResearch"},
+	57160 => {:id => "NorthrendInscriptionResearch"},
+	57161 => {:id => "InscTrainer"},
+	57162 => {:id => "InscTrainer"},
+	57163 => {:id => "InscTrainer"},
+	57164 => {:id => "NorthrendInscriptionResearch"},
+	57165 => {:id => "InscTrainer"},
+	57166 => {:id => "NorthrendInscriptionResearch"},
+	57167 => {:id => "InscTrainer"},
+	57168 => {:id => "MasterInscTrainer"},
+	57169 => {:id => "NorthrendInscriptionResearch"},
+	57170 => {:id => "NorthrendInscriptionResearch"},
+	57172 => {:id => "MasterInscTrainer"},
+	57181 => {:id => "NorthrendInscriptionResearch"},
+	57183 => {:id => "InscTrainer"},
+	57184 => {:id => "InscTrainer"},
+	57185 => {:id => "InscTrainer"},
+	57186 => {:id => "InscTrainer"},
+	57187 => {:id => "MasterInscTrainer"},
+	57188 => {:id => "InscTrainer"},
+	57189 => {:id => "NorthrendInscriptionResearch"},
+	57190 => {:id => "NorthrendInscriptionResearch"},
+	57191 => {:id => "NorthrendInscriptionResearch"},
+	57192 => {:id => "MasterInscTrainer"},
+	57194 => {:id => "InscTrainer"},
+	57195 => {:id => "NorthrendInscriptionResearch"},
+	57196 => {:id => "MasterInscTrainer"},
+	57197 => {:id => "InscTrainer"},
+	57198 => {:id => "GrandMasterInscTrainer"},
+	57199 => {:id => "NorthrendInscriptionResearch"},
+	57200 => {:id => "InscTrainer"},
+	57201 => {:id => "InscTrainer"},
+	57202 => {:id => "NorthrendInscriptionResearch"},
+	57207 => {:id => "NorthrendInscriptionResearch"},
+	57208 => {:id => "NorthrendInscriptionResearch"},
+	57209 => {:id => "MinorInscriptionResearch"},
+	57210 => {:id => "InscTrainer"},
+	57211 => {:id => "NorthrendInscriptionResearch"},
+	57212 => {:id => "NorthrendInscriptionResearch"},
+	57213 => {:id => "InscTrainer"},
+	57214 => {:id => "NorthrendInscriptionResearch"},
+	57215 => {:id => "MinorInscriptionResearch"},
+	57216 => {:id => "InscTrainer"},
+	57217 => {:id => "MinorInscriptionResearch"},
+	57218 => {:id => "NorthrendInscriptionResearch"},
+	57219 => {:id => "MasterInscTrainer"},
+	57220 => {:id => "NorthrendInscriptionResearch"},
+	57221 => {:id => "MasterInscTrainer"},
+	57222 => {:id => "MasterInscTrainer"},
+	57223 => {:id => "NorthrendInscriptionResearch"},
+	57224 => {:id => "MasterInscTrainer"},
+	57225 => {:id => "GrandMasterInscTrainer"},
+	57226 => {:id => "MasterInscTrainer"},
+	57227 => {:id => "MasterInscTrainer"},
+	57229 => {:id => "MinorInscriptionResearch"},
+	57230 => {:id => "MinorInscriptionResearch"},
+	57232 => {:id => "NorthrendInscriptionResearch"},
+	57233 => {:id => "NorthrendInscriptionResearch"},
+	57234 => {:id => "NorthrendInscriptionResearch"},
+	57235 => {:id => "NorthrendInscriptionResearch"},
+	57236 => {:id => "MasterInscTrainer"},
+	57237 => {:id => "NorthrendInscriptionResearch"},
+	57238 => {:id => "InscTrainer"},
+	57239 => {:id => "InscTrainer"},
+	57240 => {:id => "InscTrainer"},
+	57241 => {:id => "InscTrainer"},
+	57242 => {:id => "InscTrainer"},
+	57243 => {:id => "NorthrendInscriptionResearch"},
+	57244 => {:id => "InscTrainer"},
+	57245 => {:id => "InscTrainer"},
+	57246 => {:id => "InscTrainer"},
+	57247 => {:id => "NorthrendInscriptionResearch"},
+	57248 => {:id => "GrandMasterInscTrainer"},
+	57249 => {:id => "InscTrainer"},
+	57250 => {:id => "NorthrendInscriptionResearch"},
+	57251 => {:id => "InscTrainer"},
+	57252 => {:id => "MasterInscTrainer"},
+	57257 => {:id => "MasterInscTrainer"},
+	57258 => {:id => "NorthrendInscriptionResearch"},
+	57259 => {:id => "InscTrainer"},
+	57260 => {:id => "NorthrendInscriptionResearch"},
+	57261 => {:id => "NorthrendInscriptionResearch"},
+	57262 => {:id => "InscTrainer"},
+	57263 => {:id => "NorthrendInscriptionResearch"},
+	57264 => {:id => "NorthrendInscriptionResearch"},
+	57265 => {:id => "InscTrainer"},
+	57266 => {:id => "InscTrainer"},
+	57267 => {:id => "NorthrendInscriptionResearch"},
+	57268 => {:id => "NorthrendInscriptionResearch"},
+	57269 => {:id => "MasterInscTrainer"},
+	57270 => {:id => "MasterInscTrainer"},
+	57271 => {:id => "InscTrainer"},
+	57272 => {:id => "InscTrainer"},
+	57273 => {:id => "NorthrendInscriptionResearch"},
+	57274 => {:id => "InscTrainer"},
+	57275 => {:id => "MasterInscTrainer"},
+	57276 => {:id => "NorthrendInscriptionResearch"},
+	57277 => {:id => "InscTrainer"},
+	57703 => {:id => "InscTrainer"},
+	57704 => {:id => "InscTrainer"},
+	57706 => {:id => "InscTrainer"},
+	57707 => {:id => "InscTrainer"},
+	57708 => {:id => "InscTrainer"},
+	57709 => {:id => "MasterInscTrainer"},
+	57710 => {:id => "InscTrainer"},
+	57711 => {:id => "InscTrainer"},
+	57712 => {:id => "InscTrainer"},
+	57713 => {:id => "InscTrainer"},
+	57714 => {:id => "GrandMasterInscTrainer"},
+	57715 => {:id => "GrandMasterInscTrainer"},
+	57716 => {:id => "GrandMasterInscTrainer"},
+	57719 => {:id => "MinorInscriptionResearch"},
+	58286 => {:id => "MinorInscriptionResearch"},
+	58287 => {:id => "MinorInscriptionResearch"},
+	58288 => {:id => "MinorInscriptionResearch"},
+	58289 => {:id => "MinorInscriptionResearch"},
+	58296 => {:id => "MinorInscriptionResearch"},
+	58297 => {:id => "MinorInscriptionResearch"},
+	58298 => {:id => "MinorInscriptionResearch"},
+	58299 => {:id => "MinorInscriptionResearch"},
+	58300 => {:id => "MinorInscriptionResearch"},
+	58301 => {:id => "MinorInscriptionResearch"},
+	58302 => {:id => "MinorInscriptionResearch"},
+	58303 => {:id => "MinorInscriptionResearch"},
+	58305 => {:id => "MinorInscriptionResearch"},
+	58306 => {:id => "MinorInscriptionResearch"},
+	58307 => {:id => "MinorInscriptionResearch"},
+	58308 => {:id => "MinorInscriptionResearch"},
+	58310 => {:id => "MinorInscriptionResearch"},
+	58311 => {:id => "MinorInscriptionResearch"},
+	58312 => {:id => "MinorInscriptionResearch"},
+	58313  => {:id => "InscTrainer"},
+	58314 => {:id => "MinorInscriptionResearch"},
+	58315 => {:id => "MinorInscriptionResearch"},
+	58316 => {:id => "MinorInscriptionResearch"},
+	58317 => {:id => "MinorInscriptionResearch"},
+	58318 => {:id => "MinorInscriptionResearch"},
+	58319 => {:id => "MinorInscriptionResearch"},
+	58320 => {:id => "MinorInscriptionResearch"},
+	58321 => {:id => "MinorInscriptionResearch"},
+	58322 => {:id => "MinorInscriptionResearch"},
+	58323 => {:id => "MinorInscriptionResearch"},
+	58324 => {:id => "MinorInscriptionResearch"},
+	58325 => {:id => "MinorInscriptionResearch"},
+	58326 => {:id => "MinorInscriptionResearch"},
+	58327 => {:id => "MinorInscriptionResearch"},
+	58328 => {:id => "MinorInscriptionResearch"},
+	58329 => {:id => "MinorInscriptionResearch"},
+	58330 => {:id => "MinorInscriptionResearch"},
+	58331 => {:id => "MinorInscriptionResearch"},
+	58332 => {:id => "MinorInscriptionResearch"},
+	58333 => {:id => "MinorInscriptionResearch"},
+	58336 => {:id => "MinorInscriptionResearch"},
+	58337 => {:id => "MinorInscriptionResearch"},
+	58338 => {:id => "MinorInscriptionResearch"},
+	58339 => {:id => "MinorInscriptionResearch"},
+	58340 => {:id => "MinorInscriptionResearch"},
+	58341 => {:id => "MinorInscriptionResearch"},
+	58342 => {:id => "MinorInscriptionResearch"},
+	58343 => {:id => "MinorInscriptionResearch"},
+	58344 => {:id => "MinorInscriptionResearch"},
+	58345 => {:id => "MinorInscriptionResearch"},
+	58346 => {:id => "MinorInscriptionResearch"},
+	58347 => {:id => "MinorInscriptionResearch"},
+	58472 => {:id => "InscTrainer"},
+	58473 => {:id => "InscTrainer"},
+	58476 => {:id => "InscTrainer"},
+	58478 => {:id => "InscTrainer"},
+	58480 => {:id => "InscTrainer"},
+	58481 => {:id => "InscTrainer"},
+	58482 => {:id => "GrandMasterInscTrainer"},
+	58483 => {:id => "GrandMasterInscTrainer"},
+	58484 => {:id => "InscTrainer"},
+	58485 => {:id => "InscTrainer"},
+	58486 => {:id => "InscTrainer"},
+	58487 => {:id => "InscTrainer"},
+	58488 => {:id => "InscTrainer"},
+	58489 => {:id => "InscTrainer"},
+	58490 => {:id => "GrandMasterInscTrainer"},
+	58491 => {:id => "GrandMasterInscTrainer"},
+	58565 => {:id => "InscTrainer"},
+	59315 => {:id => "MinorInscriptionResearch"},
+	59326 => {:id => "MinorInscriptionResearch"},
+	59338 => {:id => "MinorInscriptionResearch"},
+	59339 => {:id => "MinorInscriptionResearch"},
+	59340 => {:id => "MinorInscriptionResearch"},
+	59387 => {:id => "MasterInscTrainer"},
+	59475 => {:id => "InscTrainer"},
+	59478 => {:id => "InscTrainer"},
+	59480 => {:id => "InscTrainer"},
+	59484 => {:id => "InscTrainer"},
+	59486 => {:id => "InscTrainer"},
+	59487 => {:id => "InscTrainer"},
+	59488 => {:id => "InscTrainer"},
+	59489 => {:id => "InscTrainer"},
+	59490 => {:id => "InscTrainer"},
+	59491 => {:id => "InscTrainer"},
+	59493 => {:id => "InscTrainer"},
+	59494 => {:id => "InscTrainer"},
+	59495 => {:id => "MasterInscTrainer"},
+	59496 => {:id => "GrandMasterInscTrainer"},
+	59497 => {:id => "MasterInscTrainer"},
+	59498 => {:id => "GrandMasterInscTrainer"},
+	59499 => {:id => "InscTrainer"},
+	59500 => {:id => "InscTrainer"},
+	59501 => {:id => "GrandMasterInscTrainer"},
+	59502 => {:id => "InscTrainer"},
+	59503 => {:id => "MasterInscTrainer"},
+	59504 => {:id => "GrandMasterInscTrainer"},
+	59559 => {:id => "NorthrendInscriptionResearch"},
+	59560 => {:id => "NorthrendInscriptionResearch"},
+	59561 => {:id => "NorthrendInscriptionResearch"},
+	60336 => {:id => "InscTrainer"},
+	60337 => {:id => "GrandMasterInscTrainer"},
+	61117 => {:id => "GrandMasterInscTrainer"},
+	61118 => {:id => "GrandMasterInscTrainer"},
+	61119 => {:id => "GrandMasterInscTrainer"},
+	61120 => {:id => "GrandMasterInscTrainer"},
+	61177 => {:id => "GrandMasterInscTrainer"},
+	61288 => {:id => "InscTrainer"},
+	61677 => {:id => "NorthrendInscriptionResearch"},
+}
+inscriptionmanual=<<EOF
 EOF
-	create_profession_db("./RecipeDB/ARL-Inscription.lua","Inscription",recipes,maps,"InitInscription",inscription,[571933],insspecaillist,inscriptionmanual)

-	jewelcrafting = recipes.get_jewelcrafting_list
-	jcspecaillist = {
-		31101 => {:id => 9},
-		43493 => {:id => 9}
-		}
-	jcmanual=<<EOF
+jcspecaillist = {
+	31101 => {:id => 9},
+	43493 => {:id => 9}
+	}
+jcmanual=<<EOF
 EOF
-	create_profession_db("./RecipeDB/ARL-Jewelcraft.lua","Jewelcrafting",recipes,maps,"InitJewelcrafting",jewelcrafting,[25614,26918,26920,32810],jcspecaillist,jcmanual)

-	leatherworking = recipes.get_leatherworking_list
-	lwspecaillist = {
-		2149 => {:id => "StartingSkill"},
-		2152 => {:id => "StartingSkill"},
-		2881 => {:id => "StartingSkill"},
-		21943 => {:id => 7, :type => 1},
-		44953 => {:id => 7, :type => 1},
-		28219 => {:id => "ADNaxx40E"},
-		28220 => {:id => "ADNaxx40R"},
-		28221 => {:id => "ADNaxx40R"},
-		28222 => {:id => "ADNaxx40E"},
-		28223 => {:id => "ADNaxx40R"},
-		28224 => {:id => "ADNaxx40R"},
-		19093 => {:id => "Onyxia"},
-		}
-	lwmanual=<<EOF
+lwspecaillist = {
+	2149 => {:id => "StartingSkill"},
+	2152 => {:id => "StartingSkill"},
+	2881 => {:id => "StartingSkill"},
+	21943 => {:id => 7, :type => 1},
+	44953 => {:id => 7, :type => 1},
+	28219 => {:id => "ADNaxx40E"},
+	28220 => {:id => "ADNaxx40R"},
+	28221 => {:id => "ADNaxx40R"},
+	28222 => {:id => "ADNaxx40E"},
+	28223 => {:id => "ADNaxx40R"},
+	28224 => {:id => "ADNaxx40R"},
+	19093 => {:id => "Onyxia"},
+}
+lwmanual=<<EOF
 EOF
-	create_profession_db("./RecipeDB/ARL-Leatherwork.lua","Leatherworking",recipes,maps,"InitLeatherworking",leatherworking,[8195,15141,10550,19106,40000],lwspecaillist,lwmanual)

-	smelting = recipes.get_mining_list
-	smeltingspecaillist = {
-		2657 => {:id => "StartingSkill"},
-		}
-	smeltmanual=<<EOF
+smeltingspecaillist = {
+	2657 => {:id => "StartingSkill"},
+	}
+smeltmanual=<<EOF
 EOF
-	create_profession_db("./RecipeDB/ARL-Smelt.lua","Smelting",recipes,maps,"InitSmelting",smelting,[],smeltingspecaillist,smeltmanual)

-	tailoring = recipes.get_tailoring_list
-	tailoringspecaillist = {
-		2385 => {:id => "StartingSkill"},
-		2387 => {:id => "StartingSkill"},
-		2963 => {:id => "StartingSkill"},
-		28207 => {:id => "ADNaxx40E"},
-		28209 => {:id => "ADNaxx40R"},
-		28205 => {:id => "ADNaxx40R"},
-		28208 => {:id => "ADNaxx40H"},
-		}
-	tailoringmanual=<<EOF
+tailoringspecaillist = {
+	2385 => {:id => "StartingSkill"},
+	2387 => {:id => "StartingSkill"},
+	2963 => {:id => "StartingSkill"},
+	28207 => {:id => "ADNaxx40E"},
+	28209 => {:id => "ADNaxx40R"},
+	28205 => {:id => "ADNaxx40R"},
+	28208 => {:id => "ADNaxx40H"},
+}
+tailoringmanual=<<EOF
 EOF
-	create_profession_db("./RecipeDB/ARL-Tailor.lua","Tailoring",recipes,maps,"InitTailoring",tailoring,[7636,8778,12062,12063,12068,12083,12087,12090],tailoringspecaillist,tailoringmanual)

-	runeforging = recipes.get_runeforging_list
-	runeforgingspecaillist = {
-		}
+runeforgingspecaillist = {
+}
 	runeforgingmanual=<<EOF
 	-- Rune of the Fallen Crusader - 53344
 	recipecount = recipecount + 1
@@ -4039,20 +3659,89 @@ EOF
 	self:addTradeFlags(RecipeDB,53341,1,2,3,21)
 	self:addTradeAcquire(RecipeDB,53341,1,28471,1,28472,1,28474,1,29194,1,29196,1,29195,1,31084)
 EOF
-	$trainers[28471] = {:name => "Lady Alistra"}
-	$trainers[28471][:faction] = 1
-	$trainers[28474] = {:name => "Amal'thazad"}
-	$trainers[28474][:faction] = 0
-	$trainers[29194] = {:name => "Amal'thazad"}
-	$trainers[29194][:faction] = 1
-	$trainers[29195] = {:name => "Lady Alistra"}
-	$trainers[29195][:faction] = 1
-	$trainers[31084] = {:name => "Highlord Darion Mograine"}
-	$trainers[31084][:faction] = 1
-	$trainers[28472] = {:name => "Lord Thorval"}
-	$trainers[28472][:faction] = 1
-	$trainers[29196] = {:name => "Lord Thorval"}
-	$trainers[29196][:faction] = 1
+
+if $debug
+
+	create_custom_db()
+	create_faction_db()
+
+	create_stats_list()
+
+	#create_lookup_db("./RecipeDB/ARL-Trainer.lua","Trainer","TrainerDB","InitTrainer",$trainers,maps,[])
+
+	#create_lookup_db("./RecipeDB/ARL-Vendor.lua","Vendor","VendorDB","InitVendor",$vendors,maps,[])
+
+	#create_lookup_db("./RecipeDB/ARL-Mob.lua","Monster","MobDB","InitMob",$monsters,maps,[])
+
+	#create_lookup_db("./RecipeDB/ARL-Quest.lua","Quest","QuestDB","InitQuest",$quests,maps,[])
+
+else
+
+	create_custom_db()
+	create_faction_db()
+
+	alchemy = recipes.get_alchemy_list
+
+	# Add the restoration potion quests
+	$quests[2203] = {:name => "Badlands Reagent Run II", :faction => 2}
+	$quests[2501] = {:name => "Badlands Reagent Run II", :faction => 1}
+
+	create_profession_db("./RecipeDB/ARL-Alchemy.lua","Alchemy",recipes,maps,"InitAlchemy",alchemy,[2336,6619,11447,17579,22430],alchspeciallist,alchmanual)
+
+	blacksmithing = recipes.get_blacksmithing_list
+
+	# Add the Orcish War Leggings quest
+	$quests[2756] = {:name => "The Old Ways", :faction => 2}
+
+	create_profession_db("./RecipeDB/ARL-Blacksmith.lua","Blacksmithing",recipes,maps,"InitBlacksmithing",blacksmithing,[2671,8366,8368,9942,9957,16960,16965,16967,16980,16986,16987],bsspeciallist,bsmanual)
+
+	cooking = recipes.get_cooking_list
+
+	$quests[8313] = {:name => "Sharing the Knowledge", :faction => 0}
+
+	create_profession_db("./RecipeDB/ARL-Cook.lua","Cooking",recipes,maps,"InitCooking",cooking,[30047,57423,44438,45547,53056],cookingspeciallist,cookmanual)
+
+	enchanting = recipes.get_enchanting_list
+
+	create_profession_db("./RecipeDB/ARL-Enchant.lua","Enchanting",recipes,maps,"InitEnchanting",enchanting,[22434,28021],enchantingspeciallist,enchantmanual)
+
+	eng = recipes.get_engineering_list
+
+	create_profession_db("./RecipeDB/ARL-Engineer.lua","Engineering",recipes,maps,"InitEngineering",eng,[61483,30573,30343,30342,30349,30561,30549,12722,12720,12900,12719,12904],engspecaillist,engmanual)
+
+	firstaid = recipes.get_firstaid_list
+
+	create_profession_db("./RecipeDB/ARL-FirstAid.lua","First Aid",recipes,maps,"InitFirstAid",firstaid,[30021],faspecaillist,famanual)
+
+	inscription = recipes.get_inscription_list
+
+	create_profession_db("./RecipeDB/ARL-Inscription.lua","Inscription",recipes,maps,"InitInscription",inscription,[571933],insspecaillist,inscriptionmanual)
+
+	jewelcrafting = recipes.get_jewelcrafting_list
+
+	create_profession_db("./RecipeDB/ARL-Jewelcraft.lua","Jewelcrafting",recipes,maps,"InitJewelcrafting",jewelcrafting,[25614,26918,26920,32810],jcspecaillist,jcmanual)
+
+	leatherworking = recipes.get_leatherworking_list
+
+	create_profession_db("./RecipeDB/ARL-Leatherwork.lua","Leatherworking",recipes,maps,"InitLeatherworking",leatherworking,[8195,15141,10550,19106,40000],lwspecaillist,lwmanual)
+
+	smelting = recipes.get_mining_list
+
+	create_profession_db("./RecipeDB/ARL-Smelt.lua","Smelting",recipes,maps,"InitSmelting",smelting,[],smeltingspecaillist,smeltmanual)
+
+	tailoring = recipes.get_tailoring_list
+
+	create_profession_db("./RecipeDB/ARL-Tailor.lua","Tailoring",recipes,maps,"InitTailoring",tailoring,[7636,8778,12062,12063,12068,12083,12087,12090],tailoringspecaillist,tailoringmanual)
+
+	runeforging = recipes.get_runeforging_list
+
+	$trainers[28471] = {:name => "Lady Alistra", :faction => 0}
+	$trainers[28474] = {:name => "Amal'thazad", :faction => 0}
+	$trainers[29194] = {:name => "Amal'thazad", :faction => 0}
+	$trainers[29195] = {:name => "Lady Alistra", :faction => 0}
+	$trainers[31084] = {:name => "Highlord Darion Mograine", :faction => 0}
+	$trainers[28472] = {:name => "Lord Thorval", :faction => 0}
+	$trainers[29196] = {:name => "Lord Thorval", :faction => 0}

 	create_profession_db("./RecipeDB/ARL-Runeforge.lua","Runeforging",recipes,maps,"InitRuneforging",runeforging,[],runeforgingspecaillist,runeforgingmanual)

diff --git a/RecipeStats.txt b/RecipeStats.txt
index b3b45e3..9cb84c7 100644
--- a/RecipeStats.txt
+++ b/RecipeStats.txt
@@ -1,5 +1,5 @@
 Unknown zones:
-	#"Amani'shi Protector" => "Unknown Zone",
+	#"Amani'shi Protector" => "Zul'Aman",
 	#"Apocalypse Guard" => "Sunwell Plateau",
 	#"Ayamiss the Hunter" => "Ruins of Ahn'Qiraj",
 	#"Buru the Gorger" => "Ruins of Ahn'Qiraj",
@@ -10,7 +10,7 @@ Unknown zones:
 	#"Doomfire Destroyer" => "Sunwell Plateau",
 	#"Fel Rager" => "Blade's Edge Mountains",
 	#"General Rajaxx" => "Ruins of Ahn'Qiraj",
-	#"Illidari Heartseeker" => "Unknown Zone",
+	#"Illidari Heartseeker" => "Black Temple",
 	#"Ironbark Protector" => "Dire Maul",
 	#"Kurinnaxx" => "Ruins of Ahn'Qiraj",
 	#"Lord Kazzak" => "Blasted Lands",
@@ -38,7 +38,7 @@ Unknown zones:
 	#"Sunblade Dusk Priest" => "Sunwell Plateau",
 	#"Sunblade Slayer" => "Sunwell Plateau",
 	#"Sunblade Vindicator" => "Sunwell Plateau",
-	#"The Journey Has Just Begun" => "Unknown Zone",
+	#"The Journey Has Just Begun" => "Onyxia's Lair",
 	#"Thuzadin Shadowcaster" => "Stratholme",