homm3-parsers
Version:
Collection of binary parsers able to parse various file formats related to Heroes of Might and Magic III
2 lines • 71.1 kB
JavaScript
import{createAdapter as e,bytes as a,pascalString as r,uint32 as n,struct as l,uint8 as i,enums as s,byte as o,when as t,uint16 as m,int8 as d,int16 as c,array as u,int32 as p,ctx as g,flag as h,skip as b,branch as f,computed as S,pass as O,endian as I,Endian as T,cString as y,pointer as C,constant as M,seek as D,repeatWhile as k,string as w,greedyArray as R,parse as A}from"binary-markup";import{inflate as G}from"pako";const P=8;var B;!function(e){e.ROE="RoE",e.AB="AB",e.SOD="SoD",e.CHR="Chr",e.WOG="WoG"}(B||(B={}));const H={[B.ROE]:14,[B.AB]:21,[B.SOD]:28,[B.CHR]:29,[B.WOG]:51};var v;!function(e){e.Easy="Easy",e.Normal="Normal",e.Hard="Hard",e.Expert="Expert",e.Impossible="Impossible"}(v||(v={}));const L={[v.Easy]:0,[v.Normal]:1,[v.Hard]:2,[v.Expert]:3,[v.Impossible]:4};var E;!function(e){e.Random="Random",e.Warrior="Warrior",e.Builder="Builder",e.Explorer="Explorer"}(E||(E={}));const F={[E.Random]:0,[E.Warrior]:1,[E.Builder]:2,[E.Explorer]:3};var W;!function(e){e.Town="Town",e.City="City",e.Capitol="Capitol"}(W||(W={}));const V={[W.Town]:0,[W.City]:1,[W.Capitol]:2};var N;!function(e){e.Fort="Fort",e.Citadel="Citadel",e.Castle="Castle"}(N||(N={}));const x={[N.Fort]:0,[N.Citadel]:1,[N.Castle]:2};var z;!function(e){e.Default="Default",e.Male="Male",e.Female="Female"}(z||(z={}));const K={[z.Default]:255,[z.Male]:0,[z.Female]:1};var U;!function(e){e.Spellbook="Spellbook",e.SpellScroll="SpellScroll",e.Grail="Grail",e.Catapult="Catapult",e.Ballista="Ballista",e.AmmoCart="AmmoCart",e.FirstAidTent="FirstAidTent",e.CentaurAxe="CentaurAxe",e.BlackshardOfTheDeadKnight="BlackshardOfTheDeadKnight",e.GreaterGnollsFlail="GreaterGnollsFlail",e.OgresClubOfHavoc="OgresClubOfHavoc",e.SwordOfHellfire="SwordOfHellfire",e.TitansGladius="TitansGladius",e.ShieldOfTheDwarvenLords="ShieldOfTheDwarvenLords",e.ShieldOfTheYawningDead="ShieldOfTheYawningDead",e.BucklerOfTheGnollKing="BucklerOfTheGnollKing",e.TargOfTheRampagingOgre="TargOfTheRampagingOgre",e.ShieldOfTheDamned="ShieldOfTheDamned",e.SentinelsShield="SentinelsShield",e.HelmOfTheAlabasterUnicorn="HelmOfTheAlabasterUnicorn",e.SkullHelmet="SkullHelmet",e.HelmOfChaos="HelmOfChaos",e.CrownOfTheSupremeMagi="CrownOfTheSupremeMagi",e.HellstormHelmet="HellstormHelmet",e.ThunderHelmet="ThunderHelmet",e.BreastplateOfPetrifiedWood="BreastplateOfPetrifiedWood",e.RibCage="RibCage",e.ScalesOfTheGreaterBasilisk="ScalesOfTheGreaterBasilisk",e.TunicOfTheCyclopsKing="TunicOfTheCyclopsKing",e.BreastplateOfBrimstone="BreastplateOfBrimstone",e.TitansCuirass="TitansCuirass",e.ArmorOfWonder="ArmorOfWonder",e.SandalsOfTheSaint="SandalsOfTheSaint",e.CelestialNecklaceOfBliss="CelestialNecklaceOfBliss",e.LionsShieldOfCourage="LionsShieldOfCourage",e.SwordOfJudgement="SwordOfJudgement",e.HelmOfHeavenlyEnlightenment="HelmOfHeavenlyEnlightenment",e.QuietEyeOfTheDragon="QuietEyeOfTheDragon",e.RedDragonFlameTongue="RedDragonFlameTongue",e.DragonScaleShield="DragonScaleShield",e.DragonScaleArmor="DragonScaleArmor",e.DragonboneGreaves="DragonboneGreaves",e.DragonWingTabard="DragonWingTabard",e.NecklaceOfDragonteeth="NecklaceOfDragonteeth",e.CrownOfDragontooth="CrownOfDragontooth",e.StillEyeOfTheDragon="StillEyeOfTheDragon",e.CloverOfFortune="CloverOfFortune",e.CardsOfProphecy="CardsOfProphecy",e.LadybirdOfLuck="LadybirdOfLuck",e.BadgeOfCourage="BadgeOfCourage",e.CrestOfValor="CrestOfValor",e.GlyphOfGallantry="GlyphOfGallantry",e.Speculum="Speculum",e.Spyglass="Spyglass",e.AmuletOfTheUndertaker="AmuletOfTheUndertaker",e.VampiresCowl="VampiresCowl",e.DeadMansBoots="DeadMansBoots",e.GarnitureOfInterference="GarnitureOfInterference",e.SurcoatOfCounterpoise="SurcoatOfCounterpoise",e.BootsOfPolarity="BootsOfPolarity",e.BowOfElvenCherrywood="BowOfElvenCherrywood",e.BowstringOfTheUnicornsMane="BowstringOfTheUnicornsMane",e.AngelFeatherArrows="AngelFeatherArrows",e.BirdOfPerception="BirdOfPerception",e.StoicWatchman="StoicWatchman",e.EmblemOfCognizance="EmblemOfCognizance",e.StatesmansMedal="StatesmansMedal",e.DiplomatsRing="DiplomatsRing",e.AmbassadorsSash="AmbassadorsSash",e.RingOfTheWayfarer="RingOfTheWayfarer",e.EquestriansGloves="EquestriansGloves",e.NecklaceOfOceanGuidance="NecklaceOfOceanGuidance",e.AngelWings="AngelWings",e.CharmOfMana="CharmOfMana",e.TalismanOfMana="TalismanOfMana",e.MysticOrbOfMana="MysticOrbOfMana",e.CollarOfConjuring="CollarOfConjuring",e.RingOfConjuring="RingOfConjuring",e.CapeOfConjuring="CapeOfConjuring",e.OrbOfTheFirmament="OrbOfTheFirmament",e.OrbOfSilt="OrbOfSilt",e.OrbOfTempestuousFire="OrbOfTempestuousFire",e.OrbOfDrivingRain="OrbOfDrivingRain",e.RecantersCloak="RecantersCloak",e.SpiritOfOppression="SpiritOfOppression",e.HourglassOfTheEvilHour="HourglassOfTheEvilHour",e.TomeOfFireMagic="TomeOfFireMagic",e.TomeOfAirMagic="TomeOfAirMagic",e.TomeOfWaterMagic="TomeOfWaterMagic",e.TomeOfEarthMagic="TomeOfEarthMagic",e.BootsOfLevitation="BootsOfLevitation",e.GoldenBow="GoldenBow",e.SphereOfPermanence="SphereOfPermanence",e.OrbOfVulnerability="OrbOfVulnerability",e.RingOfVitality="RingOfVitality",e.RingOfLife="RingOfLife",e.VialOfLifeblood="VialOfLifeblood",e.NecklaceOfSwiftness="NecklaceOfSwiftness",e.BootsOfSpeed="BootsOfSpeed",e.CapeOfVelocity="CapeOfVelocity",e.PendantOfDispassion="PendantOfDispassion",e.PendantOfSecondSight="PendantOfSecondSight",e.PendantOfHoliness="PendantOfHoliness",e.PendantOfLife="PendantOfLife",e.PendantOfDeath="PendantOfDeath",e.PendantOfFreeWill="PendantOfFreeWill",e.PendantOfNegativity="PendantOfNegativity",e.PendantOfTotalRecall="PendantOfTotalRecall",e.PendantOfCourage="PendantOfCourage",e.EverflowingCrystalCloak="EverflowingCrystalCloak",e.RingOfInfiniteGems="RingOfInfiniteGems",e.EverpouringVialOfMercury="EverpouringVialOfMercury",e.InexhaustibleCartOfOre="InexhaustibleCartOfOre",e.EversmokingRingOfSulfur="EversmokingRingOfSulfur",e.InexhaustibleCartOfLumber="InexhaustibleCartOfLumber",e.EndlessSackOfGold="EndlessSackOfGold",e.EndlessBagOfGold="EndlessBagOfGold",e.EndlessPurseOfGold="EndlessPurseOfGold",e.LegsOfLegion="LegsOfLegion",e.LoinsOfLegion="LoinsOfLegion",e.TorsoOfLegion="TorsoOfLegion",e.ArmsOfLegion="ArmsOfLegion",e.HeadOfLegion="HeadOfLegion",e.SeaCaptainsHat="SeaCaptainsHat",e.SpellbindersHat="SpellbindersHat",e.ShacklesOfWar="ShacklesOfWar",e.OrbOfInhibition="OrbOfInhibition",e.VialOfDragonBlood="VialOfDragonBlood",e.ArmageddonsBlade="ArmageddonsBlade",e.AngelicAlliance="AngelicAlliance",e.CloakOfTheUndeadKing="CloakOfTheUndeadKing",e.ElixirOfLife="ElixirOfLife",e.ArmorOfTheDamned="ArmorOfTheDamned",e.StatueOfLegion="StatueOfLegion",e.PowerOfTheDragonFather="PowerOfTheDragonFather",e.TitansThunder="TitansThunder",e.AdmiralsHat="AdmiralsHat",e.BowOfTheSharpshooter="BowOfTheSharpshooter",e.WizardsWell="WizardsWell",e.RingOfTheMagi="RingOfTheMagi",e.Cornucopia="Cornucopia",e.MagicWand="MagicWand",e.GoldTowerArrow="GoldTowerArrow",e.MonstersPower="MonstersPower",e.HighlightedSlot="HighlightedSlot",e.ArtifactLock="ArtifactLock",e.AxeOfSmashing="AxeOfSmashing",e.MithrilMail="MithrilMail",e.SwordOfSharpness="SwordOfSharpness",e.HelmOfImmortality="HelmOfImmortality",e.PendantOfSorcery="PendantOfSorcery",e.BootsOfHaste="BootsOfHaste",e.BowOfSeeking="BowOfSeeking",e.DragonEyeRing="DragonEyeRing",e.HardenedShield="HardenedShield",e.SlavasRingOfPower="SlavasRingOfPower",e.WarlordsBanner="WarlordsBanner",e.CrimsonShieldOfRetribution="CrimsonShieldOfRetribution",e.BarbarianLordsAxeOfFerocity="BarbarianLordsAxeOfFerocity",e.Dragonheart="Dragonheart",e.GateKey="GateKey",e.BlankHelmet="BlankHelmet",e.BlankSword="BlankSword",e.BlankShield="BlankShield",e.BlankHornedRing="BlankHornedRing",e.BlankGemmedRing="BlankGemmedRing",e.BlankNeckBroach="BlankNeckBroach",e.BlankArmor="BlankArmor",e.BlankSurcoat="BlankSurcoat",e.BlankBoots="BlankBoots",e.BlankHorn="BlankHorn"}(U||(U={}));const q={[U.Spellbook]:0,[U.SpellScroll]:1,[U.Grail]:2,[U.Catapult]:3,[U.Ballista]:4,[U.AmmoCart]:5,[U.FirstAidTent]:6,[U.CentaurAxe]:7,[U.BlackshardOfTheDeadKnight]:8,[U.GreaterGnollsFlail]:9,[U.OgresClubOfHavoc]:10,[U.SwordOfHellfire]:11,[U.TitansGladius]:12,[U.ShieldOfTheDwarvenLords]:13,[U.ShieldOfTheYawningDead]:14,[U.BucklerOfTheGnollKing]:15,[U.TargOfTheRampagingOgre]:16,[U.ShieldOfTheDamned]:17,[U.SentinelsShield]:18,[U.HelmOfTheAlabasterUnicorn]:19,[U.SkullHelmet]:20,[U.HelmOfChaos]:21,[U.CrownOfTheSupremeMagi]:22,[U.HellstormHelmet]:23,[U.ThunderHelmet]:24,[U.BreastplateOfPetrifiedWood]:25,[U.RibCage]:26,[U.ScalesOfTheGreaterBasilisk]:27,[U.TunicOfTheCyclopsKing]:28,[U.BreastplateOfBrimstone]:29,[U.TitansCuirass]:30,[U.ArmorOfWonder]:31,[U.SandalsOfTheSaint]:32,[U.CelestialNecklaceOfBliss]:33,[U.LionsShieldOfCourage]:34,[U.SwordOfJudgement]:35,[U.HelmOfHeavenlyEnlightenment]:36,[U.QuietEyeOfTheDragon]:37,[U.RedDragonFlameTongue]:38,[U.DragonScaleShield]:39,[U.DragonScaleArmor]:40,[U.DragonboneGreaves]:41,[U.DragonWingTabard]:42,[U.NecklaceOfDragonteeth]:43,[U.CrownOfDragontooth]:44,[U.StillEyeOfTheDragon]:45,[U.CloverOfFortune]:46,[U.CardsOfProphecy]:47,[U.LadybirdOfLuck]:48,[U.BadgeOfCourage]:49,[U.CrestOfValor]:50,[U.GlyphOfGallantry]:51,[U.Speculum]:52,[U.Spyglass]:53,[U.AmuletOfTheUndertaker]:54,[U.VampiresCowl]:55,[U.DeadMansBoots]:56,[U.GarnitureOfInterference]:57,[U.SurcoatOfCounterpoise]:58,[U.BootsOfPolarity]:59,[U.BowOfElvenCherrywood]:60,[U.BowstringOfTheUnicornsMane]:61,[U.AngelFeatherArrows]:62,[U.BirdOfPerception]:63,[U.StoicWatchman]:64,[U.EmblemOfCognizance]:65,[U.StatesmansMedal]:66,[U.DiplomatsRing]:67,[U.AmbassadorsSash]:68,[U.RingOfTheWayfarer]:69,[U.EquestriansGloves]:70,[U.NecklaceOfOceanGuidance]:71,[U.AngelWings]:72,[U.CharmOfMana]:73,[U.TalismanOfMana]:74,[U.MysticOrbOfMana]:75,[U.CollarOfConjuring]:76,[U.RingOfConjuring]:77,[U.CapeOfConjuring]:78,[U.OrbOfTheFirmament]:79,[U.OrbOfSilt]:80,[U.OrbOfTempestuousFire]:81,[U.OrbOfDrivingRain]:82,[U.RecantersCloak]:83,[U.SpiritOfOppression]:84,[U.HourglassOfTheEvilHour]:85,[U.TomeOfFireMagic]:86,[U.TomeOfAirMagic]:87,[U.TomeOfWaterMagic]:88,[U.TomeOfEarthMagic]:89,[U.BootsOfLevitation]:90,[U.GoldenBow]:91,[U.SphereOfPermanence]:92,[U.OrbOfVulnerability]:93,[U.RingOfVitality]:94,[U.RingOfLife]:95,[U.VialOfLifeblood]:96,[U.NecklaceOfSwiftness]:97,[U.BootsOfSpeed]:98,[U.CapeOfVelocity]:99,[U.PendantOfDispassion]:100,[U.PendantOfSecondSight]:101,[U.PendantOfHoliness]:102,[U.PendantOfLife]:103,[U.PendantOfDeath]:104,[U.PendantOfFreeWill]:105,[U.PendantOfNegativity]:106,[U.PendantOfTotalRecall]:107,[U.PendantOfCourage]:108,[U.EverflowingCrystalCloak]:109,[U.RingOfInfiniteGems]:110,[U.EverpouringVialOfMercury]:111,[U.InexhaustibleCartOfOre]:112,[U.EversmokingRingOfSulfur]:113,[U.InexhaustibleCartOfLumber]:114,[U.EndlessSackOfGold]:115,[U.EndlessBagOfGold]:116,[U.EndlessPurseOfGold]:117,[U.LegsOfLegion]:118,[U.LoinsOfLegion]:119,[U.TorsoOfLegion]:120,[U.ArmsOfLegion]:121,[U.HeadOfLegion]:122,[U.SeaCaptainsHat]:123,[U.SpellbindersHat]:124,[U.ShacklesOfWar]:125,[U.OrbOfInhibition]:126,[U.VialOfDragonBlood]:127,[U.ArmageddonsBlade]:128,[U.AngelicAlliance]:129,[U.CloakOfTheUndeadKing]:130,[U.ElixirOfLife]:131,[U.ArmorOfTheDamned]:132,[U.StatueOfLegion]:133,[U.PowerOfTheDragonFather]:134,[U.TitansThunder]:135,[U.AdmiralsHat]:136,[U.BowOfTheSharpshooter]:137,[U.WizardsWell]:138,[U.RingOfTheMagi]:139,[U.Cornucopia]:140,[U.MagicWand]:141,[U.GoldTowerArrow]:142,[U.MonstersPower]:143,[U.HighlightedSlot]:144,[U.ArtifactLock]:145,[U.AxeOfSmashing]:146,[U.MithrilMail]:147,[U.SwordOfSharpness]:148,[U.HelmOfImmortality]:149,[U.PendantOfSorcery]:150,[U.BootsOfHaste]:151,[U.BowOfSeeking]:152,[U.DragonEyeRing]:153,[U.HardenedShield]:154,[U.SlavasRingOfPower]:155,[U.WarlordsBanner]:156,[U.CrimsonShieldOfRetribution]:157,[U.BarbarianLordsAxeOfFerocity]:158,[U.Dragonheart]:159,[U.GateKey]:160,[U.BlankHelmet]:161,[U.BlankSword]:162,[U.BlankShield]:163,[U.BlankHornedRing]:164,[U.BlankGemmedRing]:165,[U.BlankNeckBroach]:166,[U.BlankArmor]:167,[U.BlankSurcoat]:168,[U.BlankBoots]:169,[U.BlankHorn]:170};var j;!function(e){e.EMPTY="EMPTY",e.Pikeman="Pikeman",e.Halberdier="Halberdier",e.Archer="Archer",e.Marksman="Marksman",e.Griffin="Griffin",e.RoyalGriffin="RoyalGriffin",e.Swordsman="Swordsman",e.Crusader="Crusader",e.Monk="Monk",e.Zealot="Zealot",e.Cavalier="Cavalier",e.Champion="Champion",e.Angel="Angel",e.Archangel="Archangel",e.Centaur="Centaur",e.CentaurCaptain="CentaurCaptain",e.Dwarf="Dwarf",e.BattleDwarf="BattleDwarf",e.WoodElf="WoodElf",e.GrandElf="GrandElf",e.Pegasus="Pegasus",e.SilverPegasus="SilverPegasus",e.DendroidGuard="DendroidGuard",e.DendroidSoldier="DendroidSoldier",e.Unicorn="Unicorn",e.WarUnicorn="WarUnicorn",e.GreenDragon="GreenDragon",e.GoldDragon="GoldDragon",e.Gremlin="Gremlin",e.MasterGremlin="MasterGremlin",e.StoneGargoyle="StoneGargoyle",e.ObsidianGargoyle="ObsidianGargoyle",e.StoneGolem="StoneGolem",e.IronGolem="IronGolem",e.Mage="Mage",e.ArchMage="ArchMage",e.Genie="Genie",e.MasterGenie="MasterGenie",e.Naga="Naga",e.NagaQueen="NagaQueen",e.Giant="Giant",e.Titan="Titan",e.Imp="Imp",e.Familiar="Familiar",e.Gog="Gog",e.Magog="Magog",e.HellHound="HellHound",e.Cerberus="Cerberus",e.Demon="Demon",e.HornedDemon="HornedDemon",e.PitFiend="PitFiend",e.PitLord="PitLord",e.Efreeti="Efreeti",e.EfreetSultan="EfreetSultan",e.Devil="Devil",e.ArchDevil="ArchDevil",e.Skeleton="Skeleton",e.SkeletonWarrior="SkeletonWarrior",e.WalkingDead="WalkingDead",e.Zombie="Zombie",e.Wight="Wight",e.Wraith="Wraith",e.Vampire="Vampire",e.VampireLord="VampireLord",e.Lich="Lich",e.PowerLich="PowerLich",e.BlackKnight="BlackKnight",e.DreadKnight="DreadKnight",e.BoneDragon="BoneDragon",e.GhostDragon="GhostDragon",e.Troglodyte="Troglodyte",e.InfernalTroglodyte="InfernalTroglodyte",e.Harpy="Harpy",e.HarpyHag="HarpyHag",e.Beholder="Beholder",e.EvilEye="EvilEye",e.Medusa="Medusa",e.MedusaQueen="MedusaQueen",e.Minotaur="Minotaur",e.MinotaurKing="MinotaurKing",e.Manticore="Manticore",e.Scorpicore="Scorpicore",e.RedDragon="RedDragon",e.BlackDragon="BlackDragon",e.Goblin="Goblin",e.Hobgoblin="Hobgoblin",e.WolfRider="WolfRider",e.WolfRaider="WolfRaider",e.Orc="Orc",e.OrcChieftain="OrcChieftain",e.Ogre="Ogre",e.OgreMage="OgreMage",e.Roc="Roc",e.Thunderbird="Thunderbird",e.Cyclop="Cyclop",e.CyclopKing="CyclopKing",e.Behemoth="Behemoth",e.AncientBehemoth="AncientBehemoth",e.Gnoll="Gnoll",e.GnollMarauder="GnollMarauder",e.Lizardman="Lizardman",e.LizardWarrior="LizardWarrior",e.Gorgon="Gorgon",e.MightyGorgon="MightyGorgon",e.SerpentFly="SerpentFly",e.DragonFly="DragonFly",e.Basilisk="Basilisk",e.GreaterBasilisk="GreaterBasilisk",e.Wyvern="Wyvern",e.WyvernMonarch="WyvernMonarch",e.Hydra="Hydra",e.ChaosHydra="ChaosHydra",e.AirElemental="AirElemental",e.EarthElemental="EarthElemental",e.FireElemental="FireElemental",e.WaterElemental="WaterElemental",e.GoldGolem="GoldGolem",e.DiamondGolem="DiamondGolem",e.Pixie="Pixie",e.Sprite="Sprite",e.PsychicElemental="PsychicElemental",e.MagicElemental="MagicElemental",e.IceElemental="IceElemental",e.MagmaElemental="MagmaElemental",e.StormElemental="StormElemental",e.EnergyElemental="EnergyElemental",e.Firebird="Firebird",e.Phoenix="Phoenix",e.AzureDragon="AzureDragon",e.CrystalDragon="CrystalDragon",e.FaerieDragon="FaerieDragon",e.RustDragon="RustDragon",e.Enchanter="Enchanter",e.Sharpshooter="Sharpshooter",e.Halfling="Halfling",e.Peasant="Peasant",e.Boar="Boar",e.Mummy="Mummy",e.Nomad="Nomad",e.Rogue="Rogue",e.Troll="Troll"}(j||(j={}));const Q={[j.EMPTY]:-1,[j.Pikeman]:0,[j.Halberdier]:1,[j.Archer]:2,[j.Marksman]:3,[j.Griffin]:4,[j.RoyalGriffin]:5,[j.Swordsman]:6,[j.Crusader]:7,[j.Monk]:8,[j.Zealot]:9,[j.Cavalier]:10,[j.Champion]:11,[j.Angel]:12,[j.Archangel]:13,[j.Centaur]:14,[j.CentaurCaptain]:15,[j.Dwarf]:16,[j.BattleDwarf]:17,[j.WoodElf]:18,[j.GrandElf]:19,[j.Pegasus]:20,[j.SilverPegasus]:21,[j.DendroidGuard]:22,[j.DendroidSoldier]:23,[j.Unicorn]:24,[j.WarUnicorn]:25,[j.GreenDragon]:26,[j.GoldDragon]:27,[j.Gremlin]:28,[j.MasterGremlin]:29,[j.StoneGargoyle]:30,[j.ObsidianGargoyle]:31,[j.StoneGolem]:32,[j.IronGolem]:33,[j.Mage]:34,[j.ArchMage]:35,[j.Genie]:36,[j.MasterGenie]:37,[j.Naga]:38,[j.NagaQueen]:39,[j.Giant]:40,[j.Titan]:41,[j.Imp]:42,[j.Familiar]:43,[j.Gog]:44,[j.Magog]:45,[j.HellHound]:46,[j.Cerberus]:47,[j.Demon]:48,[j.HornedDemon]:49,[j.PitFiend]:50,[j.PitLord]:51,[j.Efreeti]:52,[j.EfreetSultan]:53,[j.Devil]:54,[j.ArchDevil]:55,[j.Skeleton]:56,[j.SkeletonWarrior]:57,[j.WalkingDead]:58,[j.Zombie]:59,[j.Wight]:60,[j.Wraith]:61,[j.Vampire]:62,[j.VampireLord]:63,[j.Lich]:64,[j.PowerLich]:65,[j.BlackKnight]:66,[j.DreadKnight]:67,[j.BoneDragon]:68,[j.GhostDragon]:69,[j.Troglodyte]:70,[j.InfernalTroglodyte]:71,[j.Harpy]:72,[j.HarpyHag]:73,[j.Beholder]:74,[j.EvilEye]:75,[j.Medusa]:76,[j.MedusaQueen]:77,[j.Minotaur]:78,[j.MinotaurKing]:79,[j.Manticore]:80,[j.Scorpicore]:81,[j.RedDragon]:82,[j.BlackDragon]:83,[j.Goblin]:84,[j.Hobgoblin]:85,[j.WolfRider]:86,[j.WolfRaider]:87,[j.Orc]:88,[j.OrcChieftain]:89,[j.Ogre]:90,[j.OgreMage]:91,[j.Roc]:92,[j.Thunderbird]:93,[j.Cyclop]:94,[j.CyclopKing]:95,[j.Behemoth]:96,[j.AncientBehemoth]:97,[j.Gnoll]:98,[j.GnollMarauder]:99,[j.Lizardman]:100,[j.LizardWarrior]:101,[j.Gorgon]:102,[j.MightyGorgon]:103,[j.SerpentFly]:104,[j.DragonFly]:105,[j.Basilisk]:106,[j.GreaterBasilisk]:107,[j.Wyvern]:108,[j.WyvernMonarch]:109,[j.Hydra]:110,[j.ChaosHydra]:111,[j.AirElemental]:112,[j.EarthElemental]:113,[j.FireElemental]:114,[j.WaterElemental]:115,[j.GoldGolem]:116,[j.DiamondGolem]:117,[j.Pixie]:118,[j.Sprite]:119,[j.PsychicElemental]:120,[j.MagicElemental]:121,[j.IceElemental]:123,[j.MagmaElemental]:125,[j.StormElemental]:127,[j.EnergyElemental]:129,[j.Firebird]:130,[j.Phoenix]:131,[j.AzureDragon]:132,[j.CrystalDragon]:133,[j.FaerieDragon]:134,[j.RustDragon]:135,[j.Enchanter]:136,[j.Sharpshooter]:137,[j.Halfling]:138,[j.Peasant]:139,[j.Boar]:140,[j.Mummy]:141,[j.Nomad]:142,[j.Rogue]:143,[j.Troll]:144};var Y,J;!function(e){e.NONE="NONE",e.Orrin="Orrin",e.Valeska="Valeska",e.Edric="Edric",e.Sylvia="Sylvia",e.LordHaart="LordHaart",e.Sorsha="Sorsha",e.Christian="Christian",e.Tyris="Tyris",e.Rion="Rion",e.Adela="Adela",e.Cuthbert="Cuthbert",e.Adelaide="Adelaide",e.Ingham="Ingham",e.Sanya="Sanya",e.Loynis="Loynis",e.Caitlin="Caitlin",e.Mephala="Mephala",e.Ufretin="Ufretin",e.Jenova="Jenova",e.Ryland="Ryland",e.Thorgrim="Thorgrim",e.Ivor="Ivor",e.Clancy="Clancy",e.Kyrre="Kyrre",e.Coronius="Coronius",e.Uland="Uland",e.Elleshar="Elleshar",e.Gem="Gem",e.Malcom="Malcom",e.Melodia="Melodia",e.Alagar="Alagar",e.Aeris="Aeris",e.Piquedram="Piquedram",e.Thane="Thane",e.Josephine="Josephine",e.Neela="Neela",e.Torosar="Torosar",e.Fafner="Fafner",e.Rissa="Rissa",e.Iona="Iona",e.Astral="Astral",e.Halon="Halon",e.Serena="Serena",e.Daremyth="Daremyth",e.Theodorus="Theodorus",e.Solmyr="Solmyr",e.Cyra="Cyra",e.Aine="Aine",e.Fiona="Fiona",e.Rashka="Rashka",e.Marius="Marius",e.Ignatius="Ignatius",e.Octavia="Octavia",e.Calh="Calh",e.Pyre="Pyre",e.Nymus="Nymus",e.Ayden="Ayden",e.Xyron="Xyron",e.Axsis="Axsis",e.Olema="Olema",e.Calid="Calid",e.Ash="Ash",e.Zydar="Zydar",e.Xarfax="Xarfax",e.Straker="Straker",e.Vokial="Vokial",e.Moandor="Moandor",e.Charna="Charna",e.Tamika="Tamika",e.Isra="Isra",e.Clavius="Clavius",e.Galthran="Galthran",e.Septienna="Septienna",e.Aislinn="Aislinn",e.Sandro="Sandro",e.Nimbus="Nimbus",e.Thant="Thant",e.Xsi="Xsi",e.Vidomina="Vidomina",e.Nagash="Nagash",e.Lorelei="Lorelei",e.Arlach="Arlach",e.Dace="Dace",e.Ajit="Ajit",e.Damacon="Damacon",e.Gunnar="Gunnar",e.Synca="Synca",e.Shakti="Shakti",e.Alamar="Alamar",e.Jaegar="Jaegar",e.Malekith="Malekith",e.Jeddite="Jeddite",e.Geon="Geon",e.Deemer="Deemer",e.Sephinroth="Sephinroth",e.Darkstorm="Darkstorm",e.Yog="Yog",e.Gurnisson="Gurnisson",e.Jabarkas="Jabarkas",e.Shiva="Shiva",e.Gretchin="Gretchin",e.Krellion="Krellion",e.CragHack="CragHack",e.Tyraxor="Tyraxor",e.Gird="Gird",e.Vey="Vey",e.Dessa="Dessa",e.Terek="Terek",e.Zubin="Zubin",e.Gundula="Gundula",e.Oris="Oris",e.Saurug="Saurug",e.Bron="Bron",e.Drakon="Drakon",e.Wystan="Wystan",e.Tazar="Tazar",e.Alkin="Alkin",e.Korbac="Korbac",e.Gerwulf="Gerwulf",e.Broghild="Broghild",e.Mirlanda="Mirlanda",e.Rosic="Rosic",e.Voy="Voy",e.Verdish="Verdish",e.Merist="Merist",e.Styg="Styg",e.Andra="Andra",e.Tiva="Tiva",e.Pasis="Pasis",e.Thunar="Thunar",e.Ignissa="Ignissa",e.Lacus="Lacus",e.Monere="Monere",e.Erdamon="Erdamon",e.Fiur="Fiur",e.Kalt="Kalt",e.Luna="Luna",e.Brissa="Brissa",e.Ciele="Ciele",e.Labetha="Labetha",e.Inteus="Inteus",e.Aenain="Aenain",e.Gelare="Gelare",e.Grindan="Grindan",e.SirMullich="SirMullich",e.Adrienne="Adrienne",e.Catherine="Catherine",e.Dracon="Dracon",e.Gelu="Gelu",e.Kilgor="Kilgor",e.UndeadLordHaart="UndeadLordHaart",e.Mutare="Mutare",e.Roland="Roland",e.MutareDrake="MutareDrake",e.Boragus="Boragus",e.Xeron="Xeron"}(Y||(Y={})),function(e){e.Knight="Knight",e.Cleric="Cleric",e.Ranger="Ranger",e.Druid="Druid",e.Alchemist="Alchemist",e.Wizard="Wizard",e.Demoniac="Demoniac",e.Heretic="Heretic",e.DeathKnignt="DeathKnignt",e.Necromancer="Necromancer",e.Overlord="Overlord",e.Warlock="Warlock",e.Barbarian="Barbarian",e.BattleMage="BattleMage",e.Beastmaster="Beastmaster",e.Witch="Witch",e.Planeswalker="Planeswalker",e.Elementalist="Elementalist"}(J||(J={}));const X={[Y.Orrin]:0,[Y.Valeska]:1,[Y.Edric]:2,[Y.Sylvia]:3,[Y.LordHaart]:4,[Y.Sorsha]:5,[Y.Christian]:6,[Y.Tyris]:7,[Y.Rion]:8,[Y.Adela]:9,[Y.Cuthbert]:10,[Y.Adelaide]:11,[Y.Ingham]:12,[Y.Sanya]:13,[Y.Loynis]:14,[Y.Caitlin]:15,[Y.Mephala]:16,[Y.Ufretin]:17,[Y.Jenova]:18,[Y.Ryland]:19,[Y.Thorgrim]:20,[Y.Ivor]:21,[Y.Clancy]:22,[Y.Kyrre]:23,[Y.Coronius]:24,[Y.Uland]:25,[Y.Elleshar]:26,[Y.Gem]:27,[Y.Malcom]:28,[Y.Melodia]:29,[Y.Alagar]:30,[Y.Aeris]:31,[Y.Piquedram]:32,[Y.Thane]:33,[Y.Josephine]:34,[Y.Neela]:35,[Y.Torosar]:36,[Y.Fafner]:37,[Y.Rissa]:38,[Y.Iona]:39,[Y.Astral]:40,[Y.Halon]:41,[Y.Serena]:42,[Y.Daremyth]:43,[Y.Theodorus]:44,[Y.Solmyr]:45,[Y.Cyra]:46,[Y.Aine]:47,[Y.Fiona]:48,[Y.Rashka]:49,[Y.Marius]:50,[Y.Ignatius]:51,[Y.Octavia]:52,[Y.Calh]:53,[Y.Pyre]:54,[Y.Nymus]:55,[Y.Ayden]:56,[Y.Xyron]:57,[Y.Axsis]:58,[Y.Olema]:59,[Y.Calid]:60,[Y.Ash]:61,[Y.Zydar]:62,[Y.Xarfax]:63,[Y.Straker]:64,[Y.Vokial]:65,[Y.Moandor]:66,[Y.Charna]:67,[Y.Tamika]:68,[Y.Isra]:69,[Y.Clavius]:70,[Y.Galthran]:71,[Y.Septienna]:72,[Y.Aislinn]:73,[Y.Sandro]:74,[Y.Nimbus]:75,[Y.Thant]:76,[Y.Xsi]:77,[Y.Vidomina]:78,[Y.Nagash]:79,[Y.Lorelei]:80,[Y.Arlach]:81,[Y.Dace]:82,[Y.Ajit]:83,[Y.Damacon]:84,[Y.Gunnar]:85,[Y.Synca]:86,[Y.Shakti]:87,[Y.Alamar]:88,[Y.Jaegar]:89,[Y.Malekith]:90,[Y.Jeddite]:91,[Y.Geon]:92,[Y.Deemer]:93,[Y.Sephinroth]:94,[Y.Darkstorm]:95,[Y.Yog]:96,[Y.Gurnisson]:97,[Y.Jabarkas]:98,[Y.Shiva]:99,[Y.Gretchin]:100,[Y.Krellion]:101,[Y.CragHack]:102,[Y.Tyraxor]:103,[Y.Gird]:104,[Y.Vey]:105,[Y.Dessa]:106,[Y.Terek]:107,[Y.Zubin]:108,[Y.Gundula]:109,[Y.Oris]:110,[Y.Saurug]:111,[Y.Bron]:112,[Y.Drakon]:113,[Y.Wystan]:114,[Y.Tazar]:115,[Y.Alkin]:116,[Y.Korbac]:117,[Y.Gerwulf]:118,[Y.Broghild]:119,[Y.Mirlanda]:120,[Y.Rosic]:121,[Y.Voy]:122,[Y.Verdish]:123,[Y.Merist]:124,[Y.Styg]:125,[Y.Andra]:126,[Y.Tiva]:127,[Y.Pasis]:128,[Y.Thunar]:129,[Y.Ignissa]:130,[Y.Lacus]:131,[Y.Monere]:132,[Y.Erdamon]:133,[Y.Fiur]:134,[Y.Kalt]:135,[Y.Luna]:136,[Y.Brissa]:137,[Y.Ciele]:138,[Y.Labetha]:139,[Y.Inteus]:140,[Y.Aenain]:141,[Y.Gelare]:142,[Y.Grindan]:143,[Y.SirMullich]:144,[Y.Adrienne]:145,[Y.Catherine]:146,[Y.Dracon]:147,[Y.Gelu]:148,[Y.Kilgor]:149,[Y.UndeadLordHaart]:150,[Y.Mutare]:151,[Y.Roland]:152,[Y.MutareDrake]:153,[Y.Boragus]:154,[Y.Xeron]:155,[Y.NONE]:255},Z={[J.Knight]:0,[J.Cleric]:1,[J.Ranger]:2,[J.Druid]:3,[J.Alchemist]:4,[J.Wizard]:5,[J.Demoniac]:6,[J.Heretic]:7,[J.DeathKnignt]:8,[J.Necromancer]:9,[J.Overlord]:10,[J.Warlock]:11,[J.Barbarian]:12,[J.BattleMage]:13,[J.Beastmaster]:14,[J.Witch]:15,[J.Planeswalker]:16,[J.Elementalist]:17};var _,$;!function(e){e.None="None",e.AbandonedMine="AbandonedMine",e.Artifact="Artifact",e.Dwelling="Dwelling",e.Event="Event",e.Garrison="Garrison",e.Boat="Boat",e.ImpassableTerrain="ImpassableTerrain",e.PassableTerrain="PassableTerrain",e.Treasure="Treasure",e.Visitable="Visitable",e.Grail="Grail",e.Hero="Hero",e.Lighthouse="Lighthouse",e.MonolithTwoWay="MonolithTwoWay",e.Creature="Creature",e.OceanBottle="OceanBottle",e.PandorasBox="PandorasBox",e.PlaceholderHero="PlaceholderHero",e.Prison="Prison",e.QuestGuard="QuestGuard",e.RandomDwelling="RandomDwelling",e.RandomDwellingAlignment="RandomDwellingAlignment",e.RandomDwellingLevel="RandomDwellingLevel",e.RandomHero="RandomHero",e.Resource="Resource",e.ResourceGenerator="ResourceGenerator",e.Scholar="Scholar",e.SeersHut="SeersHut",e.Shipyard="Shipyard",e.Shrine="Shrine",e.Sign="Sign",e.SpellScroll="SpellScroll",e.SubterraneanGate="SubterraneanGate",e.Town="Town",e.WitchHut="WitchHut"}(_||(_={})),function(e){e.NoObj="NoObj",e.None0="None0",e.DecorativeTown="DecorativeTown",e.AltarOfSacrifice="AltarOfSacrifice",e.AnchorPoint="AnchorPoint",e.Arena="Arena",e.Artifact="Artifact",e.PandorasBox="PandorasBox",e.BlackMarket="BlackMarket",e.Boat="Boat",e.Borderguard="Borderguard",e.Keymaster="Keymaster",e.Buoy="Buoy",e.Campfire="Campfire",e.Cartographer="Cartographer",e.SwanPond="SwanPond",e.CoverOfDarkness="CoverOfDarkness",e.CreatureBank="CreatureBank",e.CreatureGenerator1="CreatureGenerator1",e.CreatureGenerator2="CreatureGenerator2",e.CreatureGenerator3="CreatureGenerator3",e.CreatureGenerator4="CreatureGenerator4",e.CursedGround1="CursedGround1",e.Corpse="Corpse",e.MarlettoTower="MarlettoTower",e.DerelictShip="DerelictShip",e.DragonUtopia="DragonUtopia",e.Event="Event",e.EyeOfMagi="EyeOfMagi",e.FaerieRing="FaerieRing",e.Flotsam="Flotsam",e.FountainOfFortune="FountainOfFortune",e.FountainOfYouth="FountainOfYouth",e.GardenOfRevelation="GardenOfRevelation",e.Garrison="Garrison",e.Hero="Hero",e.HillFort="HillFort",e.Grail="Grail",e.HutOfMagi="HutOfMagi",e.IdolOfFortune="IdolOfFortune",e.LeanTo="LeanTo",e.Blank40="Blank40",e.LibraryOfEnlightenment="LibraryOfEnlightenment",e.Lighthouse="Lighthouse",e.MonolithOneWayEntrance="MonolithOneWayEntrance",e.MonolithOneWayExit="MonolithOneWayExit",e.MonolithTwoWay="MonolithTwoWay",e.MagicPlains1="MagicPlains1",e.SchoolOfMagic="SchoolOfMagic",e.MagicSpring="MagicSpring",e.MagicWell="MagicWell",e.MarketOfTime="MarketOfTime",e.MercenaryCamp="MercenaryCamp",e.Mermaid="Mermaid",e.Mine="Mine",e.Creature="Creature",e.MysticalGarden="MysticalGarden",e.Oasis="Oasis",e.Obelisk="Obelisk",e.RedwoodObservatory="RedwoodObservatory",e.OceanBottle="OceanBottle",e.PillarOfFire="PillarOfFire",e.StarAxis="StarAxis",e.Prison="Prison",e.Pyramid="Pyramid",e.WogObject="WogObject",e.RallyFlag="RallyFlag",e.RandomArt="RandomArt",e.RandomTreasureArt="RandomTreasureArt",e.RandomMinorArt="RandomMinorArt",e.RandomMajorArt="RandomMajorArt",e.RandomRelicArt="RandomRelicArt",e.RandomHero="RandomHero",e.RandomCreature="RandomCreature",e.RandomCreatureL1="RandomCreatureL1",e.RandomCreatureL2="RandomCreatureL2",e.RandomCreatureL3="RandomCreatureL3",e.RandomCreatureL4="RandomCreatureL4",e.RandomResource="RandomResource",e.RandomTown="RandomTown",e.RefugeeCamp="RefugeeCamp",e.Resource="Resource",e.Sanctuary="Sanctuary",e.Scholar="Scholar",e.SeaChest="SeaChest",e.SeerHut="SeerHut",e.Crypt="Crypt",e.Shipwreck="Shipwreck",e.ShipwreckSurvivor="ShipwreckSurvivor",e.Shipyard="Shipyard",e.ShrineOfMagicIncantation="ShrineOfMagicIncantation",e.ShrineOfMagicGesture="ShrineOfMagicGesture",e.ShrineOfMagicThought="ShrineOfMagicThought",e.Sign="Sign",e.Sirens="Sirens",e.SpellScroll="SpellScroll",e.Stables="Stables",e.Tavern="Tavern",e.Temple="Temple",e.DenOfThieves="DenOfThieves",e.Town="Town",e.TradingPost="TradingPost",e.LearningStone="LearningStone",e.TreasureChest="TreasureChest",e.TreeOfKnowledge="TreeOfKnowledge",e.SubterraneanGate="SubterraneanGate",e.University="University",e.Wagon="Wagon",e.WarMachineFactory="WarMachineFactory",e.SchoolOfWar="SchoolOfWar",e.WarriorsTomb="WarriorsTomb",e.WaterWheel="WaterWheel",e.WateringHole="WateringHole",e.Whirlpool="Whirlpool",e.Windmill="Windmill",e.WitchHut="WitchHut",e.ImpassableBrush="ImpassableBrush",e.ImpassableBush="ImpassableBush",e.ImpassableCactus="ImpassableCactus",e.ImpassableCanyon="ImpassableCanyon",e.ImpassableCrater="ImpassableCrater",e.ImpassableDeadvegetation="ImpassableDeadvegetation",e.ImpassableFlowers="ImpassableFlowers",e.ImpassableFrozenlike="ImpassableFrozenlike",e.ImpassableHedge="ImpassableHedge",e.ImpassableHill="ImpassableHill",e.Hole="Hole",e.PassableKelp="PassableKelp",e.ImpassableLake="ImpassableLake",e.ImpassableLavaflow="ImpassableLavaflow",e.ImpassableLavalake="ImpassableLavalake",e.ImpassableMushrooms="ImpassableMushrooms",e.ImpassableLog="ImpassableLog",e.ImpassableMandrake="ImpassableMandrake",e.ImpassableMoss="ImpassableMoss",e.ImpassableMound="ImpassableMound",e.ImpassableMountain="ImpassableMountain",e.ImpassableOaktrees="ImpassableOaktrees",e.ImpassableOutcropping="ImpassableOutcropping",e.ImpassablePinetrees="ImpassablePinetrees",e.ImpassablePlant="ImpassablePlant",e.Passable139="Passable139",e.Passable140="Passable140",e.Passable141="Passable141",e.Passable142="Passable142",e.ImpassableRiverdelta="ImpassableRiverdelta",e.Passable144="Passable144",e.Passable145="Passable145",e.Passable146="Passable146",e.ImpassableRock="ImpassableRock",e.ImpassableSanddune="ImpassableSanddune",e.ImpassableSandpit="ImpassableSandpit",e.ImpassableShrub="ImpassableShrub",e.ImpassableSkull="ImpassableSkull",e.ImpassableStalagmite="ImpassableStalagmite",e.ImpassableStump="ImpassableStump",e.ImpassableTarpit="ImpassableTarpit",e.ImpassableTrees="ImpassableTrees",e.ImpassableVine="ImpassableVine",e.ImpassableVolcanicvent="ImpassableVolcanicvent",e.ImpassableVolcano="ImpassableVolcano",e.ImpassableWillowtrees="ImpassableWillowtrees",e.ImpassableYuccatrees="ImpassableYuccatrees",e.ImpassableReef="ImpassableReef",e.RandomCreatureL5="RandomCreatureL5",e.RandomCreatureL6="RandomCreatureL6",e.RandomCreatureL7="RandomCreatureL7",e.ImpassableBrush2="ImpassableBrush2",e.ImpassableBush2="ImpassableBush2",e.ImpassableCactus2="ImpassableCactus2",e.ImpassableCanyon2="ImpassableCanyon2",e.ImpassableCrater2="ImpassableCrater2",e.ImpassableDeadvegetation2="ImpassableDeadvegetation2",e.ImpassableFlowers2="ImpassableFlowers2",e.ImpassableFrozenlike2="ImpassableFrozenlike2",e.ImpassableHedge2="ImpassableHedge2",e.ImpassableHill2="ImpassableHill2",e.PassableHole2="PassableHole2",e.PassableKelp2="PassableKelp2",e.ImpassableLake2="ImpassableLake2",e.ImpassableLavaflow2="ImpassableLavaflow2",e.ImpassableLavalake2="ImpassableLavalake2",e.ImpassableMushrooms2="ImpassableMushrooms2",e.ImpassableLog2="ImpassableLog2",e.ImpassableMandrake2="ImpassableMandrake2",e.ImpassableMoss2="ImpassableMoss2",e.ImpassableMound2="ImpassableMound2",e.ImpassableMountain2="ImpassableMountain2",e.ImpassableOaktrees2="ImpassableOaktrees2",e.ImpassableOutcropping2="ImpassableOutcropping2",e.ImpassablePinetrees2="ImpassablePinetrees2",e.ImpassablePlant2="ImpassablePlant2",e.ImpassableRiverdelta2="ImpassableRiverdelta2",e.ImpassableRock2="ImpassableRock2",e.ImpassableSanddune2="ImpassableSanddune2",e.ImpassableSandpit2="ImpassableSandpit2",e.ImpassableShrub2="ImpassableShrub2",e.ImpassableSkull2="ImpassableSkull2",e.ImpassableStalagmite2="ImpassableStalagmite2",e.ImpassableStump2="ImpassableStump2",e.ImpassableTarpit2="ImpassableTarpit2",e.ImpassableTrees2="ImpassableTrees2",e.ImpassableVine2="ImpassableVine2",e.ImpassableVolcanicvent2="ImpassableVolcanicvent2",e.ImpassableVolcano2="ImpassableVolcano2",e.ImpassableWillowtrees2="ImpassableWillowtrees2",e.ImpassableYuccatrees2="ImpassableYuccatrees2",e.ImpassableReef2="ImpassableReef2",e.ImpassableDeserthills="ImpassableDeserthills",e.ImpassableDirthills="ImpassableDirthills",e.ImpassableGrasshills="ImpassableGrasshills",e.ImpassableRoughhills="ImpassableRoughhills",e.ImpassableSubterraneanrocks="ImpassableSubterraneanrocks",e.ImpassableSwampFoliage="ImpassableSwampFoliage",e.BorderGate="BorderGate",e.FreelancersGuild="FreelancersGuild",e.HeroPlaceholder="HeroPlaceholder",e.QuestGuard="QuestGuard",e.RandomDwelling="RandomDwelling",e.RandomDwellingLevel="RandomDwellingLevel",e.RandomDwellingAlignment="RandomDwellingAlignment",e.Garrison2="Garrison2",e.AbandonedMine="AbandonedMine",e.TradingPostSnow="TradingPostSnow",e.CloverField="CloverField",e.CursedGround2="CursedGround2",e.EvilFog="EvilFog",e.FavorableWinds="FavorableWinds",e.FieryFields="FieryFields",e.HolyGrounds="HolyGrounds",e.LucidPools="LucidPools",e.MagicClouds="MagicClouds",e.MagicPlains2="MagicPlains2",e.Rocklands="Rocklands"}($||($={}));const ee={[$.NoObj]:-1,[$.None0]:0,[$.DecorativeTown]:1,[$.AltarOfSacrifice]:2,[$.AnchorPoint]:3,[$.Arena]:4,[$.Artifact]:5,[$.PandorasBox]:6,[$.BlackMarket]:7,[$.Boat]:8,[$.Borderguard]:9,[$.Keymaster]:10,[$.Buoy]:11,[$.Campfire]:12,[$.Cartographer]:13,[$.SwanPond]:14,[$.CoverOfDarkness]:15,[$.CreatureBank]:16,[$.CreatureGenerator1]:17,[$.CreatureGenerator2]:18,[$.CreatureGenerator3]:19,[$.CreatureGenerator4]:20,[$.CursedGround1]:21,[$.Corpse]:22,[$.MarlettoTower]:23,[$.DerelictShip]:24,[$.DragonUtopia]:25,[$.Event]:26,[$.EyeOfMagi]:27,[$.FaerieRing]:28,[$.Flotsam]:29,[$.FountainOfFortune]:30,[$.FountainOfYouth]:31,[$.GardenOfRevelation]:32,[$.Garrison]:33,[$.Hero]:34,[$.HillFort]:35,[$.Grail]:36,[$.HutOfMagi]:37,[$.IdolOfFortune]:38,[$.LeanTo]:39,[$.Blank40]:40,[$.LibraryOfEnlightenment]:41,[$.Lighthouse]:42,[$.MonolithOneWayEntrance]:43,[$.MonolithOneWayExit]:44,[$.MonolithTwoWay]:45,[$.MagicPlains1]:46,[$.SchoolOfMagic]:47,[$.MagicSpring]:48,[$.MagicWell]:49,[$.MarketOfTime]:50,[$.MercenaryCamp]:51,[$.Mermaid]:52,[$.Mine]:53,[$.Creature]:54,[$.MysticalGarden]:55,[$.Oasis]:56,[$.Obelisk]:57,[$.RedwoodObservatory]:58,[$.OceanBottle]:59,[$.PillarOfFire]:60,[$.StarAxis]:61,[$.Prison]:62,[$.Pyramid]:63,[$.WogObject]:63,[$.RallyFlag]:64,[$.RandomArt]:65,[$.RandomTreasureArt]:66,[$.RandomMinorArt]:67,[$.RandomMajorArt]:68,[$.RandomRelicArt]:69,[$.RandomHero]:70,[$.RandomCreature]:71,[$.RandomCreatureL1]:72,[$.RandomCreatureL2]:73,[$.RandomCreatureL3]:74,[$.RandomCreatureL4]:75,[$.RandomResource]:76,[$.RandomTown]:77,[$.RefugeeCamp]:78,[$.Resource]:79,[$.Sanctuary]:80,[$.Scholar]:81,[$.SeaChest]:82,[$.SeerHut]:83,[$.Crypt]:84,[$.Shipwreck]:85,[$.ShipwreckSurvivor]:86,[$.Shipyard]:87,[$.ShrineOfMagicIncantation]:88,[$.ShrineOfMagicGesture]:89,[$.ShrineOfMagicThought]:90,[$.Sign]:91,[$.Sirens]:92,[$.SpellScroll]:93,[$.Stables]:94,[$.Tavern]:95,[$.Temple]:96,[$.DenOfThieves]:97,[$.Town]:98,[$.TradingPost]:99,[$.LearningStone]:100,[$.TreasureChest]:101,[$.TreeOfKnowledge]:102,[$.SubterraneanGate]:103,[$.University]:104,[$.Wagon]:105,[$.WarMachineFactory]:106,[$.SchoolOfWar]:107,[$.WarriorsTomb]:108,[$.WaterWheel]:109,[$.WateringHole]:110,[$.Whirlpool]:111,[$.Windmill]:112,[$.WitchHut]:113,[$.ImpassableBrush]:114,[$.ImpassableBush]:115,[$.ImpassableCactus]:116,[$.ImpassableCanyon]:117,[$.ImpassableCrater]:118,[$.ImpassableDeadvegetation]:119,[$.ImpassableFlowers]:120,[$.ImpassableFrozenlike]:121,[$.ImpassableHedge]:122,[$.ImpassableHill]:123,[$.Hole]:124,[$.PassableKelp]:125,[$.ImpassableLake]:126,[$.ImpassableLavaflow]:127,[$.ImpassableLavalake]:128,[$.ImpassableMushrooms]:129,[$.ImpassableLog]:130,[$.ImpassableMandrake]:131,[$.ImpassableMoss]:132,[$.ImpassableMound]:133,[$.ImpassableMountain]:134,[$.ImpassableOaktrees]:135,[$.ImpassableOutcropping]:136,[$.ImpassablePinetrees]:137,[$.ImpassablePlant]:138,[$.Passable139]:139,[$.Passable140]:140,[$.Passable141]:141,[$.Passable142]:142,[$.ImpassableRiverdelta]:143,[$.Passable144]:144,[$.Passable145]:145,[$.Passable146]:146,[$.ImpassableRock]:147,[$.ImpassableSanddune]:148,[$.ImpassableSandpit]:149,[$.ImpassableShrub]:150,[$.ImpassableSkull]:151,[$.ImpassableStalagmite]:152,[$.ImpassableStump]:153,[$.ImpassableTarpit]:154,[$.ImpassableTrees]:155,[$.ImpassableVine]:156,[$.ImpassableVolcanicvent]:157,[$.ImpassableVolcano]:158,[$.ImpassableWillowtrees]:159,[$.ImpassableYuccatrees]:160,[$.ImpassableReef]:161,[$.RandomCreatureL5]:162,[$.RandomCreatureL6]:163,[$.RandomCreatureL7]:164,[$.ImpassableBrush2]:165,[$.ImpassableBush2]:166,[$.ImpassableCactus2]:167,[$.ImpassableCanyon2]:168,[$.ImpassableCrater2]:169,[$.ImpassableDeadvegetation2]:170,[$.ImpassableFlowers2]:171,[$.ImpassableFrozenlike2]:172,[$.ImpassableHedge2]:173,[$.ImpassableHill2]:174,[$.PassableHole2]:175,[$.PassableKelp2]:176,[$.ImpassableLake2]:177,[$.ImpassableLavaflow2]:178,[$.ImpassableLavalake2]:179,[$.ImpassableMushrooms2]:180,[$.ImpassableLog2]:181,[$.ImpassableMandrake2]:182,[$.ImpassableMoss2]:183,[$.ImpassableMound2]:184,[$.ImpassableMountain2]:185,[$.ImpassableOaktrees2]:186,[$.ImpassableOutcropping2]:187,[$.ImpassablePinetrees2]:188,[$.ImpassablePlant2]:189,[$.ImpassableRiverdelta2]:190,[$.ImpassableRock2]:191,[$.ImpassableSanddune2]:192,[$.ImpassableSandpit2]:193,[$.ImpassableShrub2]:194,[$.ImpassableSkull2]:195,[$.ImpassableStalagmite2]:196,[$.ImpassableStump2]:197,[$.ImpassableTarpit2]:198,[$.ImpassableTrees2]:199,[$.ImpassableVine2]:200,[$.ImpassableVolcanicvent2]:201,[$.ImpassableVolcano2]:202,[$.ImpassableWillowtrees2]:203,[$.ImpassableYuccatrees2]:204,[$.ImpassableReef2]:205,[$.ImpassableDeserthills]:206,[$.ImpassableDirthills]:207,[$.ImpassableGrasshills]:208,[$.ImpassableRoughhills]:209,[$.ImpassableSubterraneanrocks]:210,[$.ImpassableSwampFoliage]:211,[$.BorderGate]:212,[$.FreelancersGuild]:213,[$.HeroPlaceholder]:214,[$.QuestGuard]:215,[$.RandomDwelling]:216,[$.RandomDwellingLevel]:217,[$.RandomDwellingAlignment]:218,[$.Garrison2]:219,[$.AbandonedMine]:220,[$.TradingPostSnow]:221,[$.CloverField]:222,[$.CursedGround2]:223,[$.EvilFog]:224,[$.FavorableWinds]:225,[$.FieryFields]:226,[$.HolyGrounds]:227,[$.LucidPools]:228,[$.MagicClouds]:229,[$.MagicPlains2]:230,[$.Rocklands]:231},ae={[$.NoObj]:_.None,[$.None0]:_.ImpassableTerrain,[$.Blank40]:_.ImpassableTerrain,[$.ImpassableBrush]:_.ImpassableTerrain,[$.ImpassableBush]:_.ImpassableTerrain,[$.ImpassableCactus]:_.ImpassableTerrain,[$.ImpassableCanyon]:_.ImpassableTerrain,[$.ImpassableCrater]:_.ImpassableTerrain,[$.ImpassableDeadvegetation]:_.ImpassableTerrain,[$.ImpassableFlowers]:_.ImpassableTerrain,[$.ImpassableFrozenlike]:_.ImpassableTerrain,[$.ImpassableHedge]:_.ImpassableTerrain,[$.ImpassableHill]:_.ImpassableTerrain,[$.ImpassableLake]:_.ImpassableTerrain,[$.ImpassableLavaflow]:_.ImpassableTerrain,[$.ImpassableLavalake]:_.ImpassableTerrain,[$.ImpassableMushrooms]:_.ImpassableTerrain,[$.ImpassableLog]:_.ImpassableTerrain,[$.ImpassableMandrake]:_.ImpassableTerrain,[$.ImpassableMoss]:_.ImpassableTerrain,[$.ImpassableMound]:_.ImpassableTerrain,[$.ImpassableMountain]:_.ImpassableTerrain,[$.ImpassableOaktrees]:_.ImpassableTerrain,[$.ImpassableOutcropping]:_.ImpassableTerrain,[$.ImpassablePinetrees]:_.ImpassableTerrain,[$.ImpassablePlant]:_.ImpassableTerrain,[$.ImpassableRiverdelta]:_.ImpassableTerrain,[$.ImpassableRock]:_.ImpassableTerrain,[$.ImpassableSanddune]:_.ImpassableTerrain,[$.ImpassableSandpit]:_.ImpassableTerrain,[$.ImpassableShrub]:_.ImpassableTerrain,[$.ImpassableSkull]:_.ImpassableTerrain,[$.ImpassableStalagmite]:_.ImpassableTerrain,[$.ImpassableStump]:_.ImpassableTerrain,[$.ImpassableTarpit]:_.ImpassableTerrain,[$.ImpassableTrees]:_.ImpassableTerrain,[$.ImpassableVine]:_.ImpassableTerrain,[$.ImpassableVolcanicvent]:_.ImpassableTerrain,[$.ImpassableVolcano]:_.ImpassableTerrain,[$.ImpassableWillowtrees]:_.ImpassableTerrain,[$.ImpassableYuccatrees]:_.ImpassableTerrain,[$.ImpassableReef]:_.ImpassableTerrain,[$.ImpassableBrush2]:_.ImpassableTerrain,[$.ImpassableBush2]:_.ImpassableTerrain,[$.ImpassableCactus2]:_.ImpassableTerrain,[$.ImpassableCanyon2]:_.ImpassableTerrain,[$.ImpassableCrater2]:_.ImpassableTerrain,[$.ImpassableDeadvegetation2]:_.ImpassableTerrain,[$.ImpassableFlowers2]:_.ImpassableTerrain,[$.ImpassableFrozenlike2]:_.ImpassableTerrain,[$.ImpassableHedge2]:_.ImpassableTerrain,[$.ImpassableHill2]:_.ImpassableTerrain,[$.ImpassableLake2]:_.ImpassableTerrain,[$.ImpassableLavaflow2]:_.ImpassableTerrain,[$.ImpassableLavalake2]:_.ImpassableTerrain,[$.ImpassableMushrooms2]:_.ImpassableTerrain,[$.ImpassableLog2]:_.ImpassableTerrain,[$.ImpassableMandrake2]:_.ImpassableTerrain,[$.ImpassableMoss2]:_.ImpassableTerrain,[$.ImpassableMound2]:_.ImpassableTerrain,[$.ImpassableMountain2]:_.ImpassableTerrain,[$.ImpassableOaktrees2]:_.ImpassableTerrain,[$.ImpassableOutcropping2]:_.ImpassableTerrain,[$.ImpassablePinetrees2]:_.ImpassableTerrain,[$.ImpassablePlant2]:_.ImpassableTerrain,[$.ImpassableRiverdelta2]:_.ImpassableTerrain,[$.ImpassableRock2]:_.ImpassableTerrain,[$.ImpassableSanddune2]:_.ImpassableTerrain,[$.ImpassableSandpit2]:_.ImpassableTerrain,[$.ImpassableShrub2]:_.ImpassableTerrain,[$.ImpassableSkull2]:_.ImpassableTerrain,[$.ImpassableStalagmite2]:_.ImpassableTerrain,[$.ImpassableStump2]:_.ImpassableTerrain,[$.ImpassableTarpit2]:_.ImpassableTerrain,[$.ImpassableTrees2]:_.ImpassableTerrain,[$.ImpassableVine2]:_.ImpassableTerrain,[$.ImpassableVolcanicvent2]:_.ImpassableTerrain,[$.ImpassableVolcano2]:_.ImpassableTerrain,[$.ImpassableWillowtrees2]:_.ImpassableTerrain,[$.ImpassableYuccatrees2]:_.ImpassableTerrain,[$.ImpassableReef2]:_.ImpassableTerrain,[$.ImpassableDeserthills]:_.ImpassableTerrain,[$.ImpassableDirthills]:_.ImpassableTerrain,[$.ImpassableGrasshills]:_.ImpassableTerrain,[$.ImpassableRoughhills]:_.ImpassableTerrain,[$.ImpassableSubterraneanrocks]:_.ImpassableTerrain,[$.ImpassableSwampFoliage]:_.ImpassableTerrain,[$.AltarOfSacrifice]:_.Visitable,[$.AnchorPoint]:_.Visitable,[$.Arena]:_.Visitable,[$.BlackMarket]:_.Visitable,[$.Cartographer]:_.Visitable,[$.Buoy]:_.Visitable,[$.SwanPond]:_.Visitable,[$.CoverOfDarkness]:_.Visitable,[$.CreatureBank]:_.Visitable,[$.Corpse]:_.Visitable,[$.MarlettoTower]:_.Visitable,[$.DerelictShip]:_.Visitable,[$.DragonUtopia]:_.Visitable,[$.EyeOfMagi]:_.Visitable,[$.FaerieRing]:_.Visitable,[$.FountainOfFortune]:_.Visitable,[$.FountainOfYouth]:_.Visitable,[$.GardenOfRevelation]:_.Visitable,[$.HillFort]:_.Visitable,[$.HutOfMagi]:_.Visitable,[$.IdolOfFortune]:_.Visitable,[$.LeanTo]:_.Visitable,[$.LibraryOfEnlightenment]:_.Visitable,[$.SchoolOfMagic]:_.Visitable,[$.MagicSpring]:_.Visitable,[$.MagicWell]:_.Visitable,[$.MercenaryCamp]:_.Visitable,[$.Mermaid]:_.Visitable,[$.MysticalGarden]:_.Visitable,[$.Oasis]:_.Visitable,[$.Obelisk]:_.Visitable,[$.RedwoodObservatory]:_.Visitable,[$.PillarOfFire]:_.Visitable,[$.StarAxis]:_.Visitable,[$.RallyFlag]:_.Visitable,[$.Borderguard]:_.Visitable,[$.Keymaster]:_.Visitable,[$.RefugeeCamp]:_.Visitable,[$.Sanctuary]:_.Visitable,[$.Crypt]:_.Visitable,[$.Shipwreck]:_.Visitable,[$.Sirens]:_.Visitable,[$.Stables]:_.Visitable,[$.Tavern]:_.Visitable,[$.Temple]:_.Visitable,[$.DenOfThieves]:_.Visitable,[$.TradingPost]:_.Visitable,[$.LearningStone]:_.Visitable,[$.TreeOfKnowledge]:_.Visitable,[$.University]:_.Visitable,[$.Wagon]:_.Visitable,[$.WarMachineFactory]:_.Visitable,[$.SchoolOfWar]:_.Visitable,[$.WarriorsTomb]:_.Visitable,[$.WaterWheel]:_.Visitable,[$.WateringHole]:_.Visitable,[$.Whirlpool]:_.Visitable,[$.Windmill]:_.Visitable,[$.MarketOfTime]:_.Visitable,[$.DecorativeTown]:_.Visitable,[$.TradingPostSnow]:_.Visitable,[$.Pyramid]:_.Visitable,[$.BorderGate]:_.Visitable,[$.FreelancersGuild]:_.Visitable,[$.Artifact]:_.Artifact,[$.RandomArt]:_.Artifact,[$.RandomTreasureArt]:_.Artifact,[$.RandomMinorArt]:_.Artifact,[$.RandomMajorArt]:_.Artifact,[$.RandomRelicArt]:_.Artifact,[$.AbandonedMine]:_.AbandonedMine,[$.CreatureGenerator1]:_.Dwelling,[$.CreatureGenerator2]:_.Dwelling,[$.CreatureGenerator3]:_.Dwelling,[$.CreatureGenerator4]:_.Dwelling,[$.Event]:_.Event,[$.Garrison]:_.Garrison,[$.Garrison2]:_.Garrison,[$.Boat]:_.Boat,[$.CloverField]:_.PassableTerrain,[$.EvilFog]:_.PassableTerrain,[$.FavorableWinds]:_.PassableTerrain,[$.FieryFields]:_.PassableTerrain,[$.HolyGrounds]:_.PassableTerrain,[$.LucidPools]:_.PassableTerrain,[$.MagicClouds]:_.PassableTerrain,[$.Rocklands]:_.PassableTerrain,[$.CursedGround2]:_.PassableTerrain,[$.MagicPlains2]:_.PassableTerrain,[$.Passable139]:_.PassableTerrain,[$.Passable140]:_.PassableTerrain,[$.Passable141]:_.PassableTerrain,[$.Passable142]:_.PassableTerrain,[$.Passable144]:_.PassableTerrain,[$.Passable145]:_.PassableTerrain,[$.Passable146]:_.PassableTerrain,[$.Hole]:_.PassableTerrain,[$.CursedGround1]:_.PassableTerrain,[$.MagicPlains1]:_.PassableTerrain,[$.PassableKelp]:_.PassableTerrain,[$.PassableKelp2]:_.PassableTerrain,[$.PassableHole2]:_.PassableTerrain,[$.PandorasBox]:_.PandorasBox,[$.Grail]:_.Grail,[$.Hero]:_.Hero,[$.Lighthouse]:_.Lighthouse,[$.MonolithTwoWay]:_.Visitable,[$.MonolithOneWayEntrance]:_.Visitable,[$.MonolithOneWayExit]:_.Visitable,[$.Creature]:_.Creature,[$.RandomCreature]:_.Creature,[$.RandomCreatureL1]:_.Creature,[$.RandomCreatureL2]:_.Creature,[$.RandomCreatureL3]:_.Creature,[$.RandomCreatureL4]:_.Creature,[$.RandomCreatureL5]:_.Creature,[$.RandomCreatureL6]:_.Creature,[$.RandomCreatureL7]:_.Creature,[$.OceanBottle]:_.OceanBottle,[$.Prison]:_.Prison,[$.QuestGuard]:_.QuestGuard,[$.RandomDwelling]:_.RandomDwelling,[$.RandomDwellingLevel]:_.RandomDwellingLevel,[$.RandomDwellingAlignment]:_.RandomDwellingAlignment,[$.RandomHero]:_.RandomHero,[$.HeroPlaceholder]:_.PlaceholderHero,[$.Resource]:_.Resource,[$.RandomResource]:_.Resource,[$.Mine]:_.ResourceGenerator,[$.Scholar]:_.Scholar,[$.SeerHut]:_.SeersHut,[$.Shipyard]:_.Shipyard,[$.ShrineOfMagicIncantation]:_.Shrine,[$.ShrineOfMagicGesture]:_.Shrine,[$.ShrineOfMagicThought]:_.Shrine,[$.Sign]:_.Sign,[$.SpellScroll]:_.SpellScroll,[$.SubterraneanGate]:_.SubterraneanGate,[$.Town]:_.Town,[$.RandomTown]:_.Town,[$.WitchHut]:_.WitchHut,[$.Campfire]:_.Treasure,[$.Flotsam]:_.Treasure,[$.SeaChest]:_.Treasure,[$.ShipwreckSurvivor]:_.Treasure,[$.TreasureChest]:_.Treasure,[$.WogObject]:_.None};var re;!function(e){e.Towns="Towns",e.Creatures="Creatures",e.Heroes="Heroes",e.Artifacts="Artifacts",e.Treasure="Treasure"}(re||(re={}));const ne={[re.Towns]:1,[re.Creatures]:2,[re.Heroes]:3,[re.Artifacts]:4,[re.Treasure]:5};const le=(a,r)=>e(a,e=>e.reduce((e,a,n)=>{const l=r[n];for(const[r,n]of l)a&r&&e.push(n);return e},[]),e=>r.map(a=>{let r=0;for(const[n,l]of a)e.includes(l)&&(r|=n);return r}));var ie,se,oe;!function(e){e.Attack="Attack",e.Defence="Defence",e.SpellPower="SpellPower",e.Knowledge="Knowledge"}(ie||(ie={})),function(e){e.Pathfinding="Pathfinding",e.Archery="Archery",e.Logistics="Logistics",e.Scouting="Scouting",e.Diplomacy="Diplomacy",e.Navigation="Navigation",e.Leadership="Leadership",e.Wisdom="Wisdom",e.Mysticism="Mysticism",e.Luck="Luck",e.Ballistics="Ballistics",e.EagleEye="EagleEye",e.Necromancy="Necromancy",e.Estates="Estates",e.FireMagic="FireMagic",e.AirMagic="AirMagic",e.WaterMagic="WaterMagic",e.EarthMagic="EarthMagic",e.Scholar="Scholar",e.Tactics="Tactics",e.Artillery="Artillery",e.Learning="Learning",e.Offense="Offense",e.Armorer="Armorer",e.Intelligence="Intelligence",e.Sorcery="Sorcery",e.Resistance="Resistance",e.FirstAid="FirstAid"}(se||(se={})),function(e){e.Basic="Basic",e.Advanced="Advanced",e.Expert="Expert"}(oe||(oe={}));const te={[ie.Attack]:0,[ie.Defence]:1,[ie.SpellPower]:2,[ie.Knowledge]:3},me={[se.Pathfinding]:0,[se.Archery]:1,[se.Logistics]:2,[se.Scouting]:3,[se.Diplomacy]:4,[se.Navigation]:5,[se.Leadership]:6,[se.Wisdom]:7,[se.Mysticism]:8,[se.Luck]:9,[se.Ballistics]:10,[se.EagleEye]:11,[se.Necromancy]:12,[se.Estates]:13,[se.FireMagic]:14,[se.AirMagic]:15,[se.WaterMagic]:16,[se.EarthMagic]:17,[se.Scholar]:18,[se.Tactics]:19,[se.Artillery]:20,[se.Learning]:21,[se.Offense]:22,[se.Armorer]:23,[se.Intelligence]:24,[se.Sorcery]:25,[se.Resistance]:26,[se.FirstAid]:27},de=[[[1,se.Pathfinding],[2,se.Archery],[4,se.Logistics],[8,se.Scouting],[16,se.Diplomacy],[32,se.Navigation],[64,se.Leadership],[128,se.Wisdom]],[[1,se.Mysticism],[2,se.Luck],[4,se.Ballistics],[8,se.EagleEye],[16,se.Necromancy],[32,se.Estates],[64,se.FireMagic],[128,se.AirMagic]],[[1,se.WaterMagic],[2,se.EarthMagic],[4,se.Scholar],[8,se.Tactics],[16,se.Artillery],[32,se.Learning],[64,se.Offense],[128,se.Armorer]],[[1,se.Intelligence],[2,se.Sorcery],[4,se.Resistance],[8,se.FirstAid]]],ce=le(a(4),de),ue={[oe.Basic]:1,[oe.Advanced]:2,[oe.Expert]:3};var pe;!function(e){e.SummonBoat="SummonBoat",e.ScuttleBoat="ScuttleBoat",e.Visions="Visions",e.ViewEarth="ViewEarth",e.Disguise="Disguise",e.ViewAir="ViewAir",e.Fly="Fly",e.WaterWalk="WaterWalk",e.DimensionDoor="DimensionDoor",e.TownPortal="TownPortal",e.QuickSand="QuickSand",e.LandMine="LandMine",e.ForceField="ForceField",e.FireWall="FireWall",e.Earthquake="Earthquake",e.MagicArrow="MagicArrow",e.IceBolt="IceBolt",e.LightningBolt="LightningBolt",e.Implosion="Implosion",e.ChainLightning="ChainLightning",e.FrostRing="FrostRing",e.Fireball="Fireball",e.Inferno="Inferno",e.MeteorShower="MeteorShower",e.DeathRipple="DeathRipple",e.DestroyUndead="DestroyUndead",e.Armageddon="Armageddon",e.Shield="Shield",e.AirShield="AirShield",e.FireShield="FireShield",e.ProtectionFromAir="ProtectionFromAir",e.ProtectionFromFire="ProtectionFromFire",e.ProtectionFromWater="ProtectionFromWater",e.ProtectionFromEarth="ProtectionFromEarth",e.AntiMagic="AntiMagic",e.Dispel="Dispel",e.MagicMirror="MagicMirror",e.Cure="Cure",e.Resurrection="Resurrection",e.AnimateDead="AnimateDead",e.Sacrifice="Sacrifice",e.Bless="Bless",e.Curse="Curse",e.Bloodlust="Bloodlust",e.Precision="Precision",e.Weakness="Weakness",e.StoneSkin="StoneSkin",e.DisruptingRay="DisruptingRay",e.Prayer="Prayer",e.Mirth="Mirth",e.Sorrow="Sorrow",e.Fortune="Fortune",e.Misfortune="Misfortune",e.Haste="Haste",e.Slow="Slow",e.Slayer="Slayer",e.Frenzy="Frenzy",e.TitansLightningBolt="TitansLightningBolt",e.Counterstrike="Counterstrike",e.Berserk="Berserk",e.Hypnotize="Hypnotize",e.Forgetfulness="Forgetfulness",e.Blind="Blind",e.Teleport="Teleport",e.RemoveObstacle="RemoveObstacle",e.Clone="Clone",e.FireElemental="FireElemental",e.EarthElemental="EarthElemental",e.WaterElemental="WaterElemental",e.AirElemental="AirElemental",e.Stone="Stone",e.Poison="Poison",e.Bind="Bind",e.Disease="Disease",e.Paralyze="Paralyze",e.Aging="Aging",e.DeathCloud="DeathCloud",e.Thunderbolt="Thunderbolt",e.DragonflyDispel="DragonflyDispel",e.DeathStare="DeathStare",e.AcidBreath="AcidBreath"}(pe||(pe={}));const ge={[pe.SummonBoat]:0,[pe.ScuttleBoat]:1,[pe.Visions]:2,[pe.ViewEarth]:3,[pe.Disguise]:4,[pe.ViewAir]:5,[pe.Fly]:6,[pe.WaterWalk]:7,[pe.DimensionDoor]:8,[pe.TownPortal]:9,[pe.QuickSand]:10,[pe.LandMine]:11,[pe.ForceField]:12,[pe.FireWall]:13,[pe.Earthquake]:14,[pe.MagicArrow]:15,[pe.IceBolt]:16,[pe.LightningBolt]:17,[pe.Implosion]:18,[pe.ChainLightning]:19,[pe.FrostRing]:20,[pe.Fireball]:21,[pe.Inferno]:22,[pe.MeteorShower]:23,[pe.DeathRipple]:24,[pe.DestroyUndead]:25,[pe.Armageddon]:26,[pe.Shield]:27,[pe.AirShield]:28,[pe.FireShield]:29,[pe.ProtectionFromAir]:30,[pe.ProtectionFromFire]:31,[pe.ProtectionFromWater]:32,[pe.ProtectionFromEarth]:33,[pe.AntiMagic]:34,[pe.Dispel]:35,[pe.MagicMirror]:36,[pe.Cure]:37,[pe.Resurrection]:38,[pe.AnimateDead]:39,[pe.Sacrifice]:40,[pe.Bless]:41,[pe.Curse]:42,[pe.Bloodlust]:43,[pe.Precision]:44,[pe.Weakness]:45,[pe.StoneSkin]:46,[pe.DisruptingRay]:47,[pe.Prayer]:48,[pe.Mirth]:49,[pe.Sorrow]:50,[pe.Fortune]:51,[pe.Misfortune]:52,[pe.Haste]:53,[pe.Slow]:54,[pe.Slayer]:55,[pe.Frenzy]:56,[pe.TitansLightningBolt]:57,[pe.Counterstrike]:58,[pe.Berserk]:59,[pe.Hypnotize]:60,[pe.Forgetfulness]:61,[pe.Blind]:62,[pe.Teleport]:63,[pe.RemoveObstacle]:64,[pe.Clone]:65,[pe.FireElemental]:66,[pe.EarthElemental]:67,[pe.WaterElemental]:68,[pe.AirElemental]:69,[pe.Stone]:70,[pe.Poison]:71,[pe.Bind]:72,[pe.Disease]:73,[pe.Paralyze]:74,[pe.Aging]:75,[pe.DeathCloud]:76,[pe.Thunderbolt]:77,[pe.DragonflyDispel]:78,[pe.DeathStare]:79,[pe.AcidBreath]:80},he=[[[1,pe.SummonBoat],[2,pe.ScuttleBoat],[4,pe.Visions],[8,pe.ViewEarth],[16,pe.Disguise],[32,pe.ViewAir],[64,pe.Fly],[128,pe.WaterWalk]],[[1,pe.DimensionDoor],[2,pe.TownPortal],[4,pe.QuickSand],[8,pe.LandMine],[16,pe.ForceField],[32,pe.FireWall],[64,pe.Earthquake],[128,pe.MagicArrow]],[[1,pe.IceBolt],[2,pe.LightningBolt],[4,pe.Implosion],[8,pe.ChainLightning],[16,pe.FrostRing],[32,pe.Fireball],[64,pe.Inferno],[128,pe.MeteorShower]],[[1,pe.DeathRipple],[2,pe.DestroyUndead],[4,pe.Armageddon],[8,pe.Shield],[16,pe.AirShield],[32,pe.FireShield],[64,pe.ProtectionFromAir],[128,pe.ProtectionFromFire]],[[1,pe.ProtectionFromWater],[2,pe.ProtectionFromEarth],[4,pe.AntiMagic],[8,pe.Dispel],[16,pe.MagicMirror],[32,pe.Cure],[64,pe.Resurrection],[128,pe.AnimateDead]],[[1,pe.Sacrifice],[2,pe.Bless],[4,pe.Curse],[8,pe.Bloodlust],[16,pe.Precision],[32,pe.Weakness],[64,pe.StoneSkin],[128,pe.DisruptingRay]],[[1,pe.Prayer],[2,pe.Mirth],[4,pe.Sorrow],[8,pe.Fortune],[16,pe.Misfortune],[32,pe.Haste],[64,pe.Slow],[128,pe.Slayer]],[[1,pe.Frenzy],[2,pe.TitansLightningBolt],[4,pe.Counterstrike],[8,pe.Berserk],[16,pe.Hypnotize],[32,pe.Forgetfulness],[64,pe.Blind],[128,pe.Teleport]],[[1,pe.RemoveObstacle],[2,pe.Clone],[4,pe.FireElemental],[8,pe.EarthElemental],[16,pe.WaterElemental],[32,pe.AirElemental]]],be=le(a(9),he);var fe;!function(e){e.Wood="Wood",e.Mercury="Mercury",e.Ore="Ore",e.Sulfur="Sulfur",e.Crystal="Crystal",e.Gems="Gems",e.Gold="Gold"}(fe||(fe={}));const Se={[fe.Wood]:0,[fe.Mercury]:1,[fe.Ore]:2,[fe.Sulfur]:3,[fe.Crystal]:4,[fe.Gems]:5,[fe.Gold]:6};var Oe;!function(e){e.Red="Red",e.Blue="Blue",e.Tan="Tan",e.Green="Green",e.Orange="Orange",e.Purple="Purple",e.Teal="Teal",e.Pink="Pink",e.Neutral="Neutral"}(Oe||(Oe={}));const Ie={[Oe.Red]:0,[Oe.Blue]:1,[Oe.Tan]:2,[Oe.Green]:3,[Oe.Orange]:4,[Oe.Purple]:5,[Oe.Teal]:6,[Oe.Pink]:7,[Oe.Neutral]:255},Te=e=>e.get("format")===B.ROE,ye=e=>e.get("format")===B.SOD,Ce=e=>e.get("format")!==B.ROE,Me=r(n),De=l(i`attack`,i`defense`,i`spellPower`,i`knowledge`),ke=s(o,me),we=l(ke`type`,s(i,ue)`level`),Re=n,Ae=i,Ge=t(Te,i,m),Pe=t(Te,d,c),Be=i,He=i,ve=n,Le=s(i,Ie),Ee=s(Ge,q),Fe=s(Pe,Q),We=s(Ae,X),Ve=s(He,ge),Ne=s(Be,Se),xe=l(Fe`type`,m`quantity`),ze=u(xe,7),Ke=u(p,7),Ue=l(Ee`headwear`,Ee`shoulders`,Ee`rightHand`,Ee`leftHand`,Ee`torso`,Ee`rightRing`,Ee`leftRing`,Ee`feet`,Ee`misc1`,Ee`misc2`,Ee`misc3`,Ee`misc4`,Ee`device1`,Ee`device2`,Ee`device3`,Ee`device4`,t(ye,m),Ee`spellbook`,Ee`misc5`),qe=l(m`count`,u(Ee,g`count`)`artifacts`),je=l(Ue`worn`,qe`backpack`),Qe=s(o,Ie),Ye=l(h`hasHero`,n`mapSize`,h`hasTwoLevels`,Me`name`,Me`description`,s(i,L)`difficulty`,t(Ce,i)`masteryCap`),Je=l(t(Ce,o)`createHero`,t(Ce,o)`type`,o`x`,o`y`,o`z`),Xe=l(h`isRandom`,We`hero`,t(g`hero`.neq(Y.NONE),o)`face`,t(g`hero`.neq(Y.NONE),Me)`name`),Ze=l(h`isRandom`,We`hero`,o`face`,Me`name`),_e=t(Te,Xe,Ze),$e=l(We`hero`,Me`name`),ea=l(b(1),n`heroesCount`,u($e,g`heroesCount`)`heroes`),aa=l(h`canBeHuman`,h`canBeComputer`,s(i,F)`behavior`,t(ye,i)`allowedAlignments`,i`townTypes`,t(Ce,i)`townConflux`,h`hasRandomTown`,h`hasMainTown`,t(g`hasMainTown`,Je)`mainTown`,_e`startingHero`,t(e=>Ce(e)&&e.get("startingHero").hero!==Y.NONE,ea)`additionaInfo`);var ra;!function(e){e.LoseTown="LoseTown",e.LoseHero="LoseHero",e.Time="Time"}(ra||(ra={}));const na={[ra.LoseTown]:0,[ra.LoseHero]:1,[ra.Time]:2},la=l(i`x`,i`y`,i`z`),ia=l(m`days`),sa={[ra.LoseTown]:la,[ra.LoseHero]:la,[ra.Time]:ia};var oa;!function(e){e.AcquireArtifact="AcquireArtifact",e.AccumulateCreatures="AccumulateCreatures",e.AccumulateResources="AccumulateResources",e.UpgradeTown="UpgradeTown",e.BuildGrail="BuildGrail",e.DefeatHero="DefeatHero",e.CaptureTown="CaptureTown",e.DefeatMonster="DefeatMonster",e.FlagDwellings="FlagDwellings",e.FlagMines="FlagMines",e.TransportArtifact="TransportArtifact"}(oa||(oa={}));const ta={[oa.AcquireArtifact]:0,[oa.AccumulateCreatures]:1,[oa.AccumulateResources]:2,[oa.UpgradeTown]:3,[oa.BuildGrail]:4,[oa.DefeatHero]:5,[oa.CaptureTown]:6,[oa.DefeatMonster]:7,[oa.FlagDwellings]:8,[oa.FlagMines]:9,[oa.TransportArtifact]:10},ma=l(h`allowNormalWin`,h`appliesToComputer`,Ee`type`),da=l(h`allowNormalWin`,h`appliesToComputer`,Fe`type`,n`amount`),ca=l(h`allowNormalWin`,h`appliesToComputer`,Ne`resource`,n`amount`),ua=l(h`allowNormalWin`,h`appliesToComputer`,i`x`,i`y`,i`z`,s(i,V)`hallLevel`,s(i,x)`castleLevel`),pa=l(h`allowNormalWin`,h`appliesToComputer`,i`x`,i`y`,i`z`),ga=l(h`allowNormalWin`,h`appliesToComputer`),ha=l(h`allowNormalWin`,h`appliesToComputer`,i`type`,i`x`,i`y`,i`z`),ba={[oa.AcquireArtifact]:ma,[oa.AccumulateCreatures]:da,[oa.AccumulateResources]:ca,[oa.UpgradeTown]:ua,[oa.BuildGrail]:pa,[oa.DefeatHero]:pa,[oa.CaptureTown]:pa,[oa.DefeatHero]:pa,[oa.FlagDwellings]:ga,[oa.FlagMines]:ga,[oa.TransportArtifact]:ha},fa=l(Me`name`,Me`desciption`),Sa=l(We`hero`,i`face`,Me`name`,i`allowed_players`),Oa=l(n`count`,u(we,g`count`)`entries`),Ia=l(h`hasExperience`,t(g`hasExperience`,n)`experience`,h`hasSecondarySkills`,t(g`hasSecondarySkills`,Oa)`secondarySkills`,h`hasArtifacts`,t(g`hasArtifacts`,je)`artifacts`,h`hasBiography`,t(g`hasBiography`,Me)`biography`,s(i,K)`gender`,h`hasSpells`,t(g`hasSpells`,be)`spells`,h`hasPrimarySkills`,t(g`hasPrimarySkills`,De)`primarySkills`),Ta=l(h`hasSettings`,t(g`hasSettings`,Ia)`settings`),ya=l(s(i,ta)`winCondition`,f(g`winCondition`,ba)`winConditionData`,s(i,na)`loseCondition`,f(g`loseCondition`,sa)`loseConditionData`,i`teamsCount`,t(g`teamsCount`.gt(0),u(o,8))`teams`,a(e=>Te(e)?16:20)`availableHeroes`,t(Ce,n),t(ye,i)`customHeroesCount`,t(ye,u(Sa,g`customHeroesCount`))`customHeroes`,b(31),t(Ce,a(e=>ye(e)?18:17))`availableArtifacts`,t(ye,be)`availableSpells`,t(ye,ce)`availableSkills`,n`rumorsRount`,u(fa,g`rumorsRount`)`rumors`,t(ye,u(Ta,156))`heroSettings`);var Ca,Ma,Da;!function(e){e.Dirt="Dirt",e.Sand="Sand",e.Grass="Grass",e.Snow="Snow",e.Swamp="Swamp",e.Rough="Rough",e.Sub="Sub",e.Lava="Lava",e.Water="Water",e.Rock="Rock"}(Ca||(Ca={})),function(e){e.None="None",e.Clear="Clear",e.Icy="Icy",e.Muddy="Muddy",e.Lava="Lava"}(Ma||(Ma={})),function(e){e.None="None",e.Dirt="Dirt",e.Gravel="Gravel",e.Cobble="Cobble"}(Da||(Da={}));const ka={[Ca.Dirt]:0,[Ca.Sand]:1,[Ca.Grass]:2,[Ca.Snow]:3,[Ca.Swamp]:4,[Ca.Rough]:5,[Ca.Sub]:6,[Ca.Lava]:7,[Ca.Water]:8,[Ca.Rock]:9},wa={[Ma.None]:0,[Ma.Clear]:1,[Ma.Icy]:2,[Ma.Muddy]:3,[Ma.Lava]:4},Ra={[Da.None]:0,[Da.Dirt]:1,[Da.Gravel]:2,[Da.Cobble]:3};var Aa;!function(e){e.TerrainVertical="TerrainVertical",e.TerrainHorizontal="TerrainHorizontal",e.RiverVertical="RiverVertical",e.RiverHorizontal="RiverHorizontal",e.RoadVertical="RoadVertical",e.RoadHorizontal="RoadHorizontal"}(Aa||(Aa={}));const Ga=[[[1,Aa.TerrainVertical],[2,Aa.TerrainHorizontal],[4,Aa.RiverVertical],[8,Aa.RiverHorizontal],[16,Aa.RoadVertical],[32,Aa.RoadHorizontal]]],Pa=e=>l(s(o,e)`type`,o`sprite`),Ba=l(Pa(ka)`terrain`,Pa(wa)`river`,Pa(Ra)`road`,le(a(1),Ga)`mirror`);var Ha;!function(e){e.Random="Random",e.Castle="Castle",e.Rampart="Rampart",e.Tower="Tower",e.Inferno="Inferno",e.Necropolis="Necropolis",e.Dungeon="Dungeon",e.Stronghold="Stronghold",e.Fortress="Fortress",e.Conflux="Conflux",e.Neutral="Neutral"}(Ha||(Ha={}));const va={[Ha.Random]:-1,[Ha.Castle]:0,[Ha.Rampart]:1,[Ha.Tower]:2,[Ha.Inferno]:3,[Ha.Necropolis]:4,[Ha.Dungeon]:5,[Ha.Stronghold]:6,[Ha.Fortress]:7,[Ha.Conflux]:8},La=f(g`objectType`,{[$.Artifact]:s(n,q),[$.Creature]:s(n,Q),[$.RandomDwellingAlignment]:s(n,va)},n),Ea=l(Me`header`,a(6)`passable`,a(6)`active`,m`allowedLandscapes`,m`landscapeGroup`,s(n,ee)`objectType`,S(e=>{return function(e){return e in ae?ae[e]:_.None}(e.get("objectType"))})`metaType`,La`objectSubType`,s(i,ne)`objectGroup`,i`above`,b(16)),Fa=l(n`count`,u(Ea,g`count`)`entries`);var Wa,Va;!function(e){e.NONE="NONE",e.Experience="Experience",e.PrimarySkills="PrimarySkills",e.DefeatHero="DefeatHero",e.DefeatMonster="DefeatMonster",e.Artifacts="Artifacts",e.Creatures="Creatures",e.Resources="Resources",e.BeHero="BeHero",e.BePlayer="BePlayer"}(Wa||(Wa={})),function(e){e.NONE="NONE",e.Experience="Experience",e.SpellPoints="SpellPoints",e.Morale="Morale",e.Luck="Luck",e.Resource="Resource",e.PrimarySkill="PrimarySkill",e.SecondarySkill="SecondarySkill",e.Artifact="Artifact",e.Spell="Spell",e.Creature="Creature"}(Va||(Va={}));const Na={[Wa.NONE]:0,[Wa.Experience]:1,[Wa.PrimarySkills]:2,[Wa.DefeatHero]:3,[Wa.DefeatMonster]:4,[Wa.Artifacts]:5,[Wa.Creatures]:6,[Wa.Resources]:7,[Wa.BeHero]:8,[Wa.BePlayer]:9},xa={[Va.NONE]:0,[Va.Experience]:1,[Va.SpellPoints]:2,[Va.Morale]:3,[Va.Luck]:4,[Va.Resource]:5,[Va.PrimarySkill]:6,[Va.SecondarySkill]:7,[Va.Artifact]:8,[Va.Spell]:9,[Va.Creature]:10},za={[Wa.NONE]:O,[Wa.Experience]:Re,[Wa.PrimarySkills]:De,[Wa.DefeatHero]:ve,[Wa.DefeatMonster]:ve,[Wa.Resources]:Ke,[Wa.BeHero]:We,[Wa.BePlayer]:Le,[Wa.Creatures]:l(o`count`,u(xe,g`count`)`creatures`),[Wa.Artifacts]:l(o`count`,u(Ee,g`count`)`artifacts`)},Ka=l(Me`proposalMessage`,Me`progressMessage`,Me`completionMessage`),Ua=l(s(o,Na)`questType`,f(g`questType`,za)`objective`,t(g`questType`.neq(Wa.NONE),p)`deadline`,t(g`questType`.neq(Wa.NONE),Ka)`messages`),qa={[Va.NONE]:O,[Va.Experience]:Re,[Va.SpellPoints]:n,[Va.Artifact]:Ee,[Va.Luck]:o,[Va.Morale]:o,[Va.Spell]:Ve,[Va.Resource]:l(Ne`resource`,n`quantity`),[Va.PrimarySkill]:l(s(o,te)`skill`,o`bonus`),[Va.SecondarySkill]:we,[Va.Creature]:xe},ja=l(t(Te,Ee)`artifactType`,t(Ce,Ua)`quest`,s(o,xa)`rewardType`,f(g`rewardType`,qa)`reward`,b(2));var Qa;!function(e){e.VillageHall="VillageHall",e.TownHall="TownHall",e.CityHall="CityHall",e.Capitol="Capitol",e.Fort="Fort",e.Citadel="Citadel",e.Castle="Castle",e.Tavern="Tavern",e.Blacksmith="Blacksmith",e.Marketplace="Marketplace",e.ResourceSilo="ResourceSilo",e.ArtifactMerchants="ArtifactMerchants",e.MageGuild1="MageGuild1",e.MageGuild2="MageGuild2",e.MageGuild3="MageGuild3",e.MageGuild4="MageGuild4",e.MageGuild5="MageGuild5",e.Shipyard="Shipyard",e.Grail="Grail",e.Special1="Special1",e.Special2="Special2",e.Special3="Special3",e.Special4="Special4",e.Dwelling1="Dwelling1",e.Horde1="Horde1",e.DwellingUp1="DwellingUp1",e.Dwelling2="Dwelling2",e.Horde2="Horde2",e.DwellingUp2="DwellingUp2",e.Dwelling3="Dwelling3",e.Horde3="Horde3",e.DwellingUp3="DwellingUp3",e.Dwelling4="Dwelling4",e.Horde4="Horde4",e.DwellingUp4="DwellingUp4",e.Dwelling5="Dwelling5",e.Horde5="Horde5",e.DwellingUp5="DwellingUp5",e.Dwelling6="Dwelling6",e.DwellingUp6="DwellingUp6",e.Dwelling7="Dwelling7",e.DwellingUp7="DwellingUp7"}(Qa||(Qa={}));const Ya=[[[1,Qa.TownHall],[2,Qa.CityHall],[4,Qa.Capitol],[8,Qa.Fort],[16,Qa.Citadel],[32,Qa.Castle],[64,Qa.Tavern],[128,Qa.Blacksmith]],[[1,Qa.Marketplace],[2,Qa.ResourceSilo],[4,Qa.ArtifactMerchants],[8,Qa.MageGuild1],[16,Qa.MageGuild2],[32,Qa.MageGuild3],[64,Qa.MageGuild4],[128,Qa.MageGuild5]],[[1,Qa.Shipyard],[2,Qa.Grail],[4,Qa.Special1],[8,Qa.Special2],[16,Qa.Special3],[32,Qa.Special4],[64,Qa.Dwelling1],[128,Qa.DwellingUp1]],[[1,Qa.Horde1],[2,Qa.Dwelling2],[4,Qa.DwellingUp2],[8,Qa.Horde2],[16,Qa.Dwelling3],[32,Qa.Dwelling4],[64,Qa.Horde3],[128,Qa.Dwelling4]],[[1,Qa.DwellingUp4],[2,Qa.Horde4],[4,Qa.Dwelling5],[8,Qa.DwellingUp5],[16,Qa.Horde5],[32,Qa.Dwelling6],[64,Qa.DwellingUp6],[128,Qa.Dwelling7]],[[1,Qa.DwellingUp7]]],Ja=le(a(6),Ya),Xa=l(Me`name`,Me`message`,Ke`resources`,h`appliesToPlayers`,t(ye,h)`appliesToHuman`,h`appliesToComputer`,m`firstOccurence`,o`subsequentOccurences`,b(17),Ja`buildings`,u(m,7)`creatureQuantities`,b(4)),Za=l(t(Ce,n)`absodId`,Qe`owner`,o`hasName`,t(g`hasName`,Me)`name`,o`hasGarrison`,t(g`hasGarrison`,ze)`garrison`,o`formation`,h`buildingsCustomized`,t(g`buildingsCustomized`,l(Ja`built`,Ja`disabled`))`buildings`,t(g`buildingsCustomized`.eq(!1),h)`hasFort`,t(Ce,be)`mustHaveSpells`,be`mayHaveSpells`,n`eventCount`,u(Xa,g`eventCount`)`events`,t(ye,o)`alignment`,b(3));var _a;!function(e){e.Random="Random",e.PrimarySkill="PrimarySkill",e.SecondarySkill="SecondarySkill",e.Spell="Spell"}(_a||(_a={}));const $a={[_a.Random]:-1,[_a.PrimarySkill]:0,[_a.SecondarySkill]:1,[_a.Spell]:2},er=l(s(d,$a)`rewardType`,f(g`rewardType`,{[_a.PrimarySkill]:s(i,te),[_a.SecondarySkill]:s(i,me),[_a.Spell]:s(i,ge)},i)`rewardValue`,b(6)),ar=[[[1,Ha.Castle],[2,Ha.Rampart],[4,Ha.Tower],[8,Ha.Inferno],[16,Ha.Necropolis],[32,Ha.Dungeon],[64,Ha.Stronghold],[128,Ha.Fortress],[256,Ha.Conflux]]],rr=le(u(m,1),ar),nr=l(s(n,Ie)`owner`,l(n`castleAbsodId`,t(g`castleAbsodId`.eq(0),rr)`alignments`)`castle`,l(i`min`,i`max`)`level`),lr=l(s(n,Ie)`owner`,l(i`min`,i`max`)`level`),ir=l(s(n,Ie)`owner`,l(n`castleAbsodId`,t(g`castleAbsodId`.eq(0),rr)`alignments`)`castle`),sr=l(Me`message`,h`hasCreatures`,t(g`hasCreatures`,ze)`creatures`,b(4)),or=l(n`experience`,p`spellPoints`,d`morale`,d`luck`,Ke`resources`,De`primarySkills`,i`secondarySkillsCount`,u(we,g`secondarySkillsCount`)`secondarySkills`,i`artifactsCount`,u(Ee,g`artifactsCount`)`artifacts`,i`spellsCount`,u(Ve,g`spellsCount`)`spells`,i`creaturesCount`,u(xe,g`creaturesCount`)`creatures`,b(8));var tr;!function(e){e.Spread="Spread",e.Grouped="Grouped"}(tr||(tr={}));const mr={[tr.Spread]:0,[tr.Grouped]:1},dr=l(t(Ce,n)`absodId`,Qe`owner`,We`hero`,h`hasName`,t(g`hasName`,Me)`name`,t(ye,h)`hasExperience`,f(g`format`,{[B.ROE]:n,[B.AB]:n,[B.SOD]:t(g`hasExperience`,n)})`experience`,h`hasFace`,t(g`hasFace`,i)`face`,h`hasSecondarySkills`,t(g`hasSecondarySkills`,l(n`count`,u(we,g`count`)`skills`))`secondarySkills`,h`hasCreatures`,t(g`hasCreatures`,ze)`creatures`,s(i,mr)`formation`,h`hasArtifacts`,t(g`hasArtifacts`,je)`artifacts`,i`patrolRadius`,t(Ce,l(h`hasBiography`,t(g`hasBiography`,Me)`biography`))`biography`,t(Ce,s(i,K))`gender`,t(ye,h)`hasSpells`,f(g`format`,{[B.ROE]:O,[B.AB]:s(i,ge),[B.SOD]:t(g`hasSpells`,be,O)})`spells`,t(ye,h)`hasPrimarySkills`,t(g`hasPrimarySkills`,De)`primarySkills`,b(16)),cr=l(Qe`owner`,i`type`,t(g`type`.eq(255),i)`powerRating`),ur=l(h`hasGuardians`,t(g`hasGuardians`,sr)`guardians`,or`contents`);var pr;!function(e){e.Compliant="Compliant",e.Friendly="Friendly",e.Aggressive="Aggressive",e.Hostile="Hostile",e.Savage="Savage"}(pr||(pr={}));const gr={[pr.Compliant]:0,[pr.Friendly]:1,[pr.Aggressive]:2,[pr.Hostile]:3,[pr.Savage]:4},hr=l(Ke`resources`,Ee`artifact`),br=l(Me`message`,hr`treasure`),fr=l(t(Ce,n)`absodId`,m`quantity`,s(i,gr)`disposition`,h`hasMessageAndTreasure`,t(g`hasMessageAndTreasure`,br)`messageAndTreasure`,h`neverFlees`,h`doesNotGrow`,b(2)),Sr=l(h`hasGuardians`,t(g`hasGuardians`,sr)`guardians`,or`contents`,le(a(1),[[[1,Oe.Red],[2,Oe.Blue],[4,Oe.Tan],[8,Oe.Green],[16,Oe.Orange],[32,Oe.Purple],[64,Oe.Teal],[128,Oe.Pink]]])`appliesToPlayers`,h`appliesToComputer`,h`cancelAfterVisit`,b(4)),Or=l(Me`message`,b(4)),Ir=l(s(n,Ie)`owner`,ze`creatures`,t(Ce,i)`removableUnits`,b(8)),Tr=l(n`allowableRadius`),yr=l(n`owner`),Cr=l(h`hasGuardians`,t(g`hasGuardians`,sr)`guardians`),Mr=l(n`spell`),Dr=l(h`hasGuardians`,t(g`hasGuardians`,sr)`guardians`,s(n,ge)`spell`),kr=l(h`hasGuardians`,t(g`hasGuardians`,sr)`hasGuardians`,n`quantity`,b(4)),wr=l(ce`potentialSkills`),Rr={[_.PlaceholderHero]:cr,[_.QuestGuard]:Ua,[_.PandorasBox]:ur,[_.Sign]:Or,[_.OceanBottle]:Or,[_.Garrison]:Ir,[_.Event]:Sr,[_.Grail]:Tr,[_.Dwelling]:yr,[_.Lighthouse]:yr,[_.ResourceGenerator]:yr,[_.Shipyard]:yr,[_.AbandonedMine]:yr,[_.Boat]:O,[_.PassableTerrain]:O,[_.ImpassableTerrain]:O,[_.Visitable]:O,[_.Treasure]:O,[_.MonolithTwoWay]:O,[_.SubterraneanGate]:O,[_.Town]:Za,[_.RandomDwelling]:nr,[_.RandomDwellingAlignment]:lr,[_.RandomDwellingLevel]:ir,[_.Hero]:dr,[_.RandomHero]:dr,[_.Prison]:dr,[_.Creature]:fr,[_.Artifact]:Cr,[_.Shrine]:Mr,[_.SpellScroll]:Dr,[_.Resource]:kr,[_.WitchHut]:t(Ce,wr),[_.SeersHut]:ja,[_.Scholar]:er},Ar=l(S(g`attributes.metaType`)`type`,f(g`type`,Rr)`data`),Gr=S(e=>{const a=e.get("oaIndex");return e.get("objectAttributes").entries[a]}),Pr=l(i`x`,i`y`,i`z`,n`oaIndex`,Gr`attributes`,b(5),Ar`body`),Br=l(n`count`,u(Pr,g`count`)`entries`),Hr=l(Me`name`,Me`message`,Ke`resources`,h`appliesToPlayers`,t(ye,h)`appliesToHuman`,h`appliesToComputer`,m`firstOccurence`,i`subsequentOccurences`,b(17)),vr=l(n`count`,u(Hr,g`count`)`entries`),Lr=l(I(T.LE),s(n,H)`format`,Ye`info`,u(aa,8)`players`,ya`additionalInfo`,u(Ba,(function(e){const a=e.get("info");return a.mapSize*a.mapSize*(a.hasTwoLevels?2:1)}))`tiles`,Fa`objectAttributes`,Br`objectDetails`,vr`events`),Er=l(y()`name`,b(e=>16-(e.get("name").length+1)),n`offset`,n`size`,n,n`csize`,S(g`csize`.neq(0))`compressed`,C(g`offset`,t(g`compressed`,a(g`csize`),a(g`size`)))`content`),Fr=l(I(T.LE),M(y(),"LOD"),D(8),n`count`,D(92),u(Er,g`count`)`entries`),Wr=a(3),Vr=e=>{const a=e.get("index"),r=e.get("lineOffsets");return e.get("offset")+32+r[a]},Nr=(e,a,r,n)=>n.reduce((e,a)=>e+a.content.length,0)<e.get("width"),xr=l(o`code`,o`length`,f(g`code`,{255:a(e=>e.get("length")+1)},S(e=>new Array(e.get("length")+1).fill(e.get("code"))))`content`),zr=l(o`segment`,S(e=>e.get("segment")>>5)`code`,S(e=>1+(31&e.get("segment")))`length`,f(g`code`,{7:a(g`length`)},S(e=>new Array(e.get("length")).fill(e.get("code"))))`content`),Kr=(e,a)=>e.concat(a.reduce((e,a)=>e.concat(a.content),[])),Ur=l(n`size`,n`encoding`,n`fullWidth`,n`fullHeight`,n`width`,n`height`,p`left`,p`top`,f(g`encoding`,{0:a(e=>e.get("width")*e.get("height")),1:l(u(n,g`height`)`lineOffsets`,u(C(Vr,k(xr,Nr)),g`height`)`lines`),2:l(u(m,g`height`)`lineOffsets`,b(2),u(C(Vr,k(zr,Nr)),g`height`)`lines`),3:l(u(u(m,e=>Math.ceil(e.get("width")/32)),g`height`)`lineOffsets`,u(u(k(zr,Nr),e=>Math.ceil(e.get("width")/32))`line`,g`height`)`lines`)})`content`,f(g`encoding`,{0:S(g`content`),1:S(e=>e.get("content.lines").reduce(Kr,[])),2:S(e=>e.get("content.lines").reduce(Kr,[])),3:S(e=>e.get("content.lines").reduce((e,a)=>e.concat(a.reduce(Kr,[])),[]))})`pixels`),qr=l(n`blockId`,n`entriesCount`,n`unknown`,n`unknown`,u(w(13),g`entriesCount`)`filenames`,u(n,g`entriesCount`)`offsets`,u(C(e=>{const a=e.get("index"),r=e.get("offsets");return e.set("offset",r[a]),r[a]},Ur),g`entriesCount`)`files`),jr=l(I(T.LE),n`type`,n`width`,n`height`,n`blockCount`,u(Wr,256)`palette`,u(qr,g`blockCount`)`blocks`),Qr=a(3),Yr=l(I(T.LE),n`size`,n`width`,n`height`,S(e=>e.get("size")===e.get("width")*e.get("height"))`hasPalette`,t(g`hasPalette`,l(a(g`size`)`pixels`,u(Qr,256)`palette`))`paletteData`,S(e=>e.get("size")===e.get("width")*e.get("height")*3)`hasBgr`,t(g`hasBgr`,R(Qr))`bgr`);function Jr(e){return A(Lr,e)}function Xr(e){return Jr(G(e).buffer)}function Zr(e,a){return A(e,a)}export{Ha as Alignment,U as Artifact,E as Behavior,Qa as Building,N as CastleLevel,j as Creature,v as Difficulty,pr as Disposition,tr as Formation,z as Gender,P as H3M_MAX_PLAYERS,W as HallLevel,Y as Hero,J as HeroClass,ra as LoseCondition,B as MapFormat,_ as MetaType,re as ObjectGroup,$ as ObjectType,Oe as Player,ie as PrimarySkill,Va as QuestReward,Wa as QuestType,fe as Resource,Ma as River,Da as Road,_a as ScholarRaward,oe as SecondarySkillMastery,se as SecondarySkillType,pe as Spell,Ca as Terrain,Aa as TileMirror,oa as WinCondition,va as alignmentEnum,q as artifactEnum,F as behaviorEnum,x as castleLevelEnum,Q as creatureEnum,jr as defFile,L as difficultyEnum,gr as dispositioEnum,H as formatEnum,mr as formationEnum,K as genderEnum,V as hallLevelEnum,Z as heroClassEnum,X as heroEnum,Fr as lodFile,na as loseConditionsEnum,ne as objectGroupEnum,ee as objectTypeEnum,ae as objectTypeToMeta,Zr as parseAsset,Jr as parseH3M,Xr as parseH3MFile,Yr as pcxFile,Ie as playerEnum,te as primarySkillEnum,Na as questEnum,xa as questRewardEnum,Se as resourceEnum,wa as riversEnum,Ra as roadsEnum,$a as schoalrRewardEnum,me as secondarySkillEnum,ue as secondarySkillMasteryEnum,ce as skillsMask,ge as spellEnum,be as spellsMask,ka as terrainsEnum,ta as winConditionsEnum};